From 216d4f5c26d877f853c9ebdefe75549b7611ec86 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 11 Oct 2025 12:15:25 +0000 Subject: [PATCH 1/3] Initial plan From f994dd6f5e5612817285ddd7db7a13157e39452c Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 11 Oct 2025 12:28:34 +0000 Subject: [PATCH 2/3] Add PDF reader for CV section with react-pdf Co-authored-by: DamienDrozd <79458391+DamienDrozd@users.noreply.github.com> --- package-lock.json | 304 ++++++++++++++++++++- package.json | 4 +- public/media/Drozd_Damien_CV_FullStack.pdf | Bin 0 -> 330420 bytes public/pdf.worker.min.mjs | 28 ++ src/app/globals.css | 1 - src/components/CVSection.tsx | 144 +++++++++- 6 files changed, 464 insertions(+), 17 deletions(-) create mode 100644 public/media/Drozd_Damien_CV_FullStack.pdf create mode 100644 public/pdf.worker.min.mjs diff --git a/package-lock.json b/package-lock.json index 3a15d6a..fbe09c6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,9 +12,11 @@ "firebase": "^12.1.0", "next": "15.5.0", "nodemailer": "^7.0.5", + "pdfjs-dist": "^5.4.296", "postcss": "^8.5.6", "react": "19.1.0", - "react-dom": "19.1.0" + "react-dom": "19.1.0", + "react-pdf": "^10.2.0" }, "devDependencies": { "@eslint/eslintrc": "^3", @@ -2079,6 +2081,191 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@napi-rs/canvas": { + "version": "0.1.80", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas/-/canvas-0.1.80.tgz", + "integrity": "sha512-DxuT1ClnIPts1kQx8FBmkk4BQDTfI5kIzywAaMjQSXfNnra5UFU9PwurXrl+Je3bJ6BGsp/zmshVVFbCmyI+ww==", + "license": "MIT", + "optional": true, + "workspaces": [ + "e2e/*" + ], + "engines": { + "node": ">= 10" + }, + "optionalDependencies": { + "@napi-rs/canvas-android-arm64": "0.1.80", + "@napi-rs/canvas-darwin-arm64": "0.1.80", + "@napi-rs/canvas-darwin-x64": "0.1.80", + "@napi-rs/canvas-linux-arm-gnueabihf": "0.1.80", + "@napi-rs/canvas-linux-arm64-gnu": "0.1.80", + "@napi-rs/canvas-linux-arm64-musl": "0.1.80", + "@napi-rs/canvas-linux-riscv64-gnu": "0.1.80", + "@napi-rs/canvas-linux-x64-gnu": "0.1.80", + "@napi-rs/canvas-linux-x64-musl": "0.1.80", + "@napi-rs/canvas-win32-x64-msvc": "0.1.80" + } + }, + "node_modules/@napi-rs/canvas-android-arm64": { + "version": "0.1.80", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-android-arm64/-/canvas-android-arm64-0.1.80.tgz", + "integrity": "sha512-sk7xhN/MoXeuExlggf91pNziBxLPVUqF2CAVnB57KLG/pz7+U5TKG8eXdc3pm0d7Od0WreB6ZKLj37sX9muGOQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/canvas-darwin-arm64": { + "version": "0.1.80", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-darwin-arm64/-/canvas-darwin-arm64-0.1.80.tgz", + "integrity": "sha512-O64APRTXRUiAz0P8gErkfEr3lipLJgM6pjATwavZ22ebhjYl/SUbpgM0xcWPQBNMP1n29afAC/Us5PX1vg+JNQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/canvas-darwin-x64": { + "version": "0.1.80", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-darwin-x64/-/canvas-darwin-x64-0.1.80.tgz", + "integrity": "sha512-FqqSU7qFce0Cp3pwnTjVkKjjOtxMqRe6lmINxpIZYaZNnVI0H5FtsaraZJ36SiTHNjZlUB69/HhxNDT1Aaa9vA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/canvas-linux-arm-gnueabihf": { + "version": "0.1.80", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-arm-gnueabihf/-/canvas-linux-arm-gnueabihf-0.1.80.tgz", + "integrity": "sha512-eyWz0ddBDQc7/JbAtY4OtZ5SpK8tR4JsCYEZjCE3dI8pqoWUC8oMwYSBGCYfsx2w47cQgQCgMVRVTFiiO38hHQ==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/canvas-linux-arm64-gnu": { + "version": "0.1.80", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-arm64-gnu/-/canvas-linux-arm64-gnu-0.1.80.tgz", + "integrity": "sha512-qwA63t8A86bnxhuA/GwOkK3jvb+XTQaTiVML0vAWoHyoZYTjNs7BzoOONDgTnNtr8/yHrq64XXzUoLqDzU+Uuw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/canvas-linux-arm64-musl": { + "version": "0.1.80", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-arm64-musl/-/canvas-linux-arm64-musl-0.1.80.tgz", + "integrity": "sha512-1XbCOz/ymhj24lFaIXtWnwv/6eFHXDrjP0jYkc6iHQ9q8oXKzUX1Lc6bu+wuGiLhGh2GS/2JlfORC5ZcXimRcg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/canvas-linux-riscv64-gnu": { + "version": "0.1.80", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-riscv64-gnu/-/canvas-linux-riscv64-gnu-0.1.80.tgz", + "integrity": "sha512-XTzR125w5ZMs0lJcxRlS1K3P5RaZ9RmUsPtd1uGt+EfDyYMu4c6SEROYsxyatbbu/2+lPe7MPHOO/0a0x7L/gw==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/canvas-linux-x64-gnu": { + "version": "0.1.80", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-x64-gnu/-/canvas-linux-x64-gnu-0.1.80.tgz", + "integrity": "sha512-BeXAmhKg1kX3UCrJsYbdQd3hIMDH/K6HnP/pG2LuITaXhXBiNdh//TVVVVCBbJzVQaV5gK/4ZOCMrQW9mvuTqA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/canvas-linux-x64-musl": { + "version": "0.1.80", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-x64-musl/-/canvas-linux-x64-musl-0.1.80.tgz", + "integrity": "sha512-x0XvZWdHbkgdgucJsRxprX/4o4sEed7qo9rCQA9ugiS9qE2QvP0RIiEugtZhfLH3cyI+jIRFJHV4Fuz+1BHHMg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/canvas-win32-x64-msvc": { + "version": "0.1.80", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-win32-x64-msvc/-/canvas-win32-x64-msvc-0.1.80.tgz", + "integrity": "sha512-Z8jPsM6df5V8B1HrCHB05+bDiCxjE9QA//3YrkKIdVDEwn5RKaqOxCJDRJkl48cJbylcrJbW4HxZbTte8juuPg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, "node_modules/@napi-rs/wasm-runtime": { "version": "0.2.12", "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.12.tgz", @@ -3272,7 +3459,7 @@ "version": "19.1.10", "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.10.tgz", "integrity": "sha512-EhBeSYX0Y6ye8pNebpKrwFJq7BoQ8J5SO6NlvNwwHjSj6adXJViPQrKlsyPw7hLBLvckEMO1yxeGdR82YBBlDg==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "csstype": "^3.0.2" @@ -4309,6 +4496,15 @@ "node": ">=12" } }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/color": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", @@ -4378,7 +4574,7 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", - "dev": true, + "devOptional": true, "license": "MIT" }, "node_modules/damerau-levenshtein": { @@ -4503,6 +4699,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/detect-libc": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz", @@ -6205,7 +6410,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true, "license": "MIT" }, "node_modules/js-yaml": { @@ -6593,7 +6797,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, "license": "MIT", "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" @@ -6612,6 +6815,24 @@ "@jridgewell/sourcemap-codec": "^1.5.0" } }, + "node_modules/make-cancellable-promise": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/make-cancellable-promise/-/make-cancellable-promise-2.0.0.tgz", + "integrity": "sha512-3SEQqTpV9oqVsIWqAcmDuaNeo7yBO3tqPtqGRcKkEo0lrzD3wqbKG9mkxO65KoOgXqj+zH2phJ2LiAsdzlogSw==", + "license": "MIT", + "funding": { + "url": "https://github.com/wojtekmaj/make-cancellable-promise?sponsor=1" + } + }, + "node_modules/make-event-props": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/make-event-props/-/make-event-props-2.0.0.tgz", + "integrity": "sha512-G/hncXrl4Qt7mauJEXSg3AcdYzmpkIITTNl5I+rH9sog5Yw0kK6vseJjCaPfOXqOqQuPUP89Rkhfz5kPS8ijtw==", + "license": "MIT", + "funding": { + "url": "https://github.com/wojtekmaj/make-event-props?sponsor=1" + } + }, "node_modules/math-intrinsics": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", @@ -6622,6 +6843,23 @@ "node": ">= 0.4" } }, + "node_modules/merge-refs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-refs/-/merge-refs-2.0.0.tgz", + "integrity": "sha512-3+B21mYK2IqUWnd2EivABLT7ueDhb0b8/dGK8LoFQPrU61YITeCMn14F7y7qZafWNZhUEKb24cJdiT5Wxs3prg==", + "license": "MIT", + "funding": { + "url": "https://github.com/wojtekmaj/merge-refs?sponsor=1" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -7076,6 +7314,18 @@ "dev": true, "license": "MIT" }, + "node_modules/pdfjs-dist": { + "version": "5.4.296", + "resolved": "https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-5.4.296.tgz", + "integrity": "sha512-DlOzet0HO7OEnmUmB6wWGJrrdvbyJKftI1bhMitK7O2N8W2gc757yyYBbINy9IDafXAV9wmKr9t7xsTaNKRG5Q==", + "license": "Apache-2.0", + "engines": { + "node": ">=20.16.0 || >=22.3.0" + }, + "optionalDependencies": { + "@napi-rs/canvas": "^0.1.80" + } + }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -7238,6 +7488,35 @@ "dev": true, "license": "MIT" }, + "node_modules/react-pdf": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/react-pdf/-/react-pdf-10.2.0.tgz", + "integrity": "sha512-zk0DIL31oCh8cuQycM0SJKfwh4Onz0/Nwi6wTOjgtEjWGUY6eM+/vuzvOP3j70qtEULn7m1JtaeGzud1w5fY2Q==", + "license": "MIT", + "dependencies": { + "clsx": "^2.0.0", + "dequal": "^2.0.3", + "make-cancellable-promise": "^2.0.0", + "make-event-props": "^2.0.0", + "merge-refs": "^2.0.0", + "pdfjs-dist": "5.4.296", + "tiny-invariant": "^1.0.0", + "warning": "^4.0.0" + }, + "funding": { + "url": "https://github.com/wojtekmaj/react-pdf?sponsor=1" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/reflect.getprototypeof": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", @@ -7956,6 +8235,12 @@ "node": ">=18" } }, + "node_modules/tiny-invariant": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", + "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==", + "license": "MIT" + }, "node_modules/tinyglobby": { "version": "0.2.14", "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz", @@ -8237,6 +8522,15 @@ "uuid": "dist/bin/uuid" } }, + "node_modules/warning": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, "node_modules/web-vitals": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-4.2.4.tgz", diff --git a/package.json b/package.json index 0d85fd2..e3016e8 100644 --- a/package.json +++ b/package.json @@ -13,9 +13,11 @@ "firebase": "^12.1.0", "next": "15.5.0", "nodemailer": "^7.0.5", + "pdfjs-dist": "^5.4.296", "postcss": "^8.5.6", "react": "19.1.0", - "react-dom": "19.1.0" + "react-dom": "19.1.0", + "react-pdf": "^10.2.0" }, "devDependencies": { "@eslint/eslintrc": "^3", diff --git a/public/media/Drozd_Damien_CV_FullStack.pdf b/public/media/Drozd_Damien_CV_FullStack.pdf new file mode 100644 index 0000000000000000000000000000000000000000..c3dcada2f196fe7401d640784423975c7279f74d GIT binary patch literal 330420 zcmeFZby!u+`airj8`zX|=cc0h``(E$!{o@SRTHNbivu5Uwne~~Odu?Vd1to5N9sw-o&Y$^LSOQQ!sJoRD zmV^Y9_qL;(ttG-Sz}5!JkGz5k2=EEQ_@KNhP!p&S90uiw2|~@FyqZv9D6itpT|QwU zDDRz{%z8JMFhLkpN(#%?&E}>==>M+?%O7EDhm=MHi|=oVUkLgO1$Be|ohKxK6!#|m zk%tuQA9*5t!vDmB3kv=tPe4eJ@6S8|n5d|r= zDIh3pDxH!GFOAc? z?_mq&mACY^baA);gK?3%{p|rIM;C9TjJ!%Nmfp4sw$|=8$VYUc0!S~pZR=+5?En=N z`L$Yvt)(lLf0ng{g@vVs1>)wv?T&pYi2V685EmYV%i{rNI3IWd6qjpUjSj^FoU2hY zZ`{et`3$}S z9&HzC*Gk5Zc{=9opo5}vt6e3Dhl3vzU#%+!j9M^3ktFgjFVcH|R2eki8|O88KT7ltuXp6VF%KbA$s-CDQ{AYz6rv|fqoW!dPkP_;;flmDF7tnS zMsb&V2?5xRUfd;j4vdIm<8Jx+1fbD~e^AXh%Lqy!gC9gldQ zDk{7yz74&dR&O#u^a$;lT$Id7PUZ<-_f_HN=CsE%Cj?_@Mkqz}lrj%!0X7Z-C}yAy z=h*jP>^^1i>F|>e&oW+|kA__Z8#dj(8X#o~iMLi(fHe_nk9^I%Fh&uC0*W%=Z5gUf zFi{t3Ll;34fVT)nk!5>?>S@8h7)G23Qh<^Xht}tkKMkw2U@b-W$t4gB7xp0cerUZY z2#4@Id}o0=2h!og%?@SX!+I}+9}zi#Pofj;4V53DejRC)NVN(^lPA!keu}{?FQ34k#2VHUqJensGdR%@XN$B2(0do#EP zgVXVZHFl+XfP?UNBQ(3y7YU58q#u?LgyIv3h6CNeQ+~;F7o3)z+NANQe^zc0ESpInOklWNOB(*5D6tz?n@uHCweX*9s zHAXMRrm1&gZuKHwS-J2xUNPQ)R!5@ZO-xvQXC>UV6jObJhM zmRC=$m)h$#kykg%Q*ERkf^=?+O zX!OS1bcE2bAfuq6!|nw2Sl0CT^uff?c=@47BYqU(>i26X=hn(^ z6pmO&VRfe@jg;CP@fUjw`CR%iw;Z>Gw+ICE1!xCE27C+nd4ze!b;)!|bJl*Qi!O#v zkB)|3iQaf?KZ>iHxZ5o1GO9W*HqI(mnB0d#5@sNP%Qqt8Ce-09C+sP5*KXVbF-&Yd z1k(_hcMbTABU~$@&R@Y#1&bc0d5^Z6hk;4d2mV zH+#4K##w8>iEJl2tIjtaAFsm03&IEThAqcGbn$F-K?7%W?uizYiIix)N=ruasZ-b2M=;74NX z;jInq4Zp~+vCy$^c|YIAcBe%K)5T-rVOL{@kXsUIXlHoG@Ll1V zf@*$10Z9Q-{__I!e*gZb{VLX#R)&4|VkRCD_4xE#uN162UoIg#fQ!(;x(+>gJD=4GLe9F2z-)vK2@x$N@n5@kc&A@0fF zhj=$MnVMNrStZqcH5RfZo-JqVBpv8=k?LV*mz5t>K&a!*y?z=c!QdG?94Qi3_fJ$*Bn3CF?m7~qu47V+~iU^`)G#k6THcBx42w` zPTilGOubT_Q|*iUx?9Id>aby|dGJhfo$aglc`l;{?+uowcV_1rY1j;TMtSLGXfT*%{Y51!f$zTmq??d5@G@QV|BU(eaXwMbo%Nh7 zsZ^ist*zAw>vr{k?^%x}y()Rz-1l6@J|AubjlS6W`BnP&fWDQ3vOJ^9&e91&-_XCK=880Y#S;mwJj;OXYnRn+nK9kM?&< zVl{IffPY3Dp8qo|BSJm|f0RIgP{~a&$ z8amn_K|a5*(C=7R045BB!T*5zuRmQc0{Ci5s!9L|1q2Kr|A6ad93y07%(Zkhl~ivl z0w53o;HV&Hq3$U70O0E8jkv+kMt6;&kP!d{zy#0%egLqv_VUosRnh~HNmWrE>V?d7 zL;s$BOasW00APY!MGFf3o&SGC5mT`Bu#!p+y6>){gUTbTIPnfadopn=DBIJhmEVv4c&vJANl&&B5Ck#Bpv1J zXzPchCy_Lhi;t@#l0HGw#IClMUI2iKbHn$xwRS+#d`KDxp{FB{q$L0V1IPXkwACMI zZ(Dz4I{`r6-Qzyu7lX1{vqSksMd45tTR#_DZ*OibOKWFKgbnn@VJzM51Hi8`-#i5n z-sl#JRI)I?sIV|Mj0dUy-_rl`=5M+F*Tju&f6Z~I{fo^&r0;*{{r>FlJokJ6fFC1u zllVK&>KOnuMgjo&%3JU0scE&XpZ z{Fd|I6Mv|W=cc~jbO%+iwX^hb@rK?g)f(9)eGpKuUpgiCKRWS${NNv&^@nzF>Db!Y zA}7Ac{%?TvGDkOiq`BQ}9K9Xg-Jp(c|IWhy;bVVj!wvbXUn2>k!YhE-oCm-kB?iFX z-UFya*Z|lx8+ixxo84|>8UQyv&ya58SHDNn$os#X|8zo0KwhGFIod;S*z!7hP-`EA z?+uOY6E`O`01Lnahye9cnvfHZNM9#4|oTR0aL&%un4RHJHQ_B12_kPKoHO^5D|z1 zL-$dxhJ)q7nqXtF9T)+A0FD8tf%Cyt;1+N{cmli#{t7-tMMot< zg`#q!ileHa>Z4ktdZIo+jYZ8wEk$iW?LnPDT|(VMy+XT%MvcaaCWfYpW`t&s=7$!A zmWEc0R*%+;Hifo^_5&RqofMrFT?AbP{Vuu_dLVi%`U~`G^e*%d=qu>Q5D0_Ut zXhJL@-jFEBGssIwCuAJ5206jN#-PK1VJKl3W4K|2VWeS{V{~AQV{BlYW8z~nV~SyF zV%lKd$4tO1#B9MF#azQY$0ERD#gfF*!*arUh?Rj=h1H8ShjoaJjm>~9imi?9h#iWZ zf&B`50DB4h6o(Lp14kam6vqcA9;XDS3+FS=;jLS@SZ>MOGQQ<~EB;p5t?pY3w@z@0 zaCvZ5acyuzaG&Eg;Ev<&;$h-3h#`#rukniO+&Bk8g?p0RK6DGyX^X zV*(-qegaJbSAtlAa)LpEO+pAE3!x&R4PgXf0bw`c3K5uykw~7%nkby8kf@hvjToJn zl~|S7iTDX|CGiOH9tk0dAc+BqKgn~Fc9KO>FewYEDya);0_khgY0@(?8ZucjTe8Pw zRb=C2Kgp@cWyo#GW5}z?r^wGJpcIM}&J;-$jTG~gsFWO(+LV5j*_6GMU#W{- zx=y-nC<#;+>H^Jx_CWXOsp(bdedzP(N9fNPSQ+#g!WgO<<{7aV;f!{SPZ{4b?lI9Z zX)pybRWQvkV=}{;9hlRZ`o-C~nw^JL3sn`B34 zhqF7gzhEEZK;aPLaNu~(G0KU;Da`4}`GWHU7aEr+mm60;*GFy~Zdq<$?h5WD9#Wp$ zJYhVIJiEM1yvDpqy#2gad_sIKe1&|o{Dk~!{9*hp{0A@&m^JJ5 zIZ(Mv1x-a=B}wI@DvheOYMJVunuuDkT8}!8x-N1Kw|tx9HsW@R28xE7MvBJV9p*c3 zcN#STO;ybl&3P?WEl;ghZFFrd?dRI-I{Z38I{msty5_p&xRzzEkZF|Zv>B_JzuDkD z%6l&N+RgFIEzN5!&@2os$}KJ|H7)ZkkF8X#vaI&3<*n1LcWh*Ap4x2LO4=sdZrDlM zCEIPuO%5nPXtm$0heC=ZBQtgW2YT?@KM(F13*5gj= z?(hD=gVQ6*W6@L0Gu3ksp^hl_0(qHvHF*;w!PI*nHlIkJC0{Au=e{R?27a~v1paRR z@9%Tme|&!lzRgzQB0M7PB0B?bczW>MZK4$5}sL*t{6emdUQlp~-oYbC&Cv`zcR3 zuOXi$Kdk`0z_(z%(4ert2wqfHOj-P-__D;UWU*AIw5Lp@tgM{6JfQ-m!lz>ErRmGD zN`=a%D(q*dfX?GCkFKw8?BA@sHGezXZPY#4qun#o ztKK`%r_|ToFWcWaAUV)BC^pzU1RrXAC;YDAz0mvmVWHvr5#f=BQIXN6G10M>4-y|b z#-+#KOejqBO{z}5o4PagVOoFs(?`>fi=S*hZGLw7yg%bRb3Pk7hc*{8k3XNbK)sOv zh5bwQqVQt-lETvaW!>f373-CqRj<{HwTSgw>uDQw8)ciY&9*J2t+8#B?X?|`o%63z z-w3{C?XvCGeV6(Ee$QxcZ6C3JeGq#{aaeLBc=YyI>v-XZ>yPuFF((u!rKj-I{xid~ zjdQ;X$VJ8_`(?|O`qkXE>-F{ZE`TeG+=a3QknkFbAFgKsc>o6kg9?j^fq;yOgNd37 z%EZaW24!MrX6EN*X6NDHwl->822r|JQ|d0R$MBjOadKfB^szfKUifu6qDFq@ZX>OoB`|Lf<41 z3K$g)9fE<0g^kQmj}M@Lz+eq0yIK;epz%PZA%D)Co$|{QXU4Q zT+JI2oez6V0#=AHOe|6|atcaj7FITP4nZMd5xA(Byn>>VvWlvjuAaVuArie=+t}LK zJ2*OddHeYK`QHx+kBE$le)KpdIpt|;T6)H_%>07FqT-U$vhvrpb@dI6P0cNDyL)>3 z`UeJw#wRAHraylAJhQaCvbwguvAMOqe{gto{Nv}z>Di53AOQTUSied34{{M8w>D*yK9 z%V}|PO<$z%Y11nbYk~fBaFn^BvCE0;G~KPK(`~E$2stP+qG$o1Qi>*?np-~A&17ho zrPIEn?wgXT^B^=+G!gMyjKlo3v{~gTr9y)v982{F>iD`@cj^zu{32)Ndss=w=ot*G zS#(43wsWH9mUTK2tg*Un#arR0y6dt-ecHO%?09>Pmj{jyx>e{GP275mOxBXEfLPm`6pM{|Jd(ADOxBK>xCmo0#^d4hTFZ<@NM6x|4MxA@6a*l$pWm)U3omp`F)WwVeydRYQCQi+#i7?yP|%Lwo(Pf@#1a`#?ijE2$Mg30F6om;#^&gk+6B_#Sg zMuqXdv(`H457;)@UpPgmNjW|Dor%0!fd8qHIbO%ik6{%F6??Z0xz^q(v3XiAfxgx!Dp>)92ho2Mw^JRm-DOE#!g4@ zkXuX+tuUJKimVTtyplt3fTUA;9UNL?;2QV(M}<6od*&`~h4wh_%g4^t#M!3J#P1;Q9V zr0=~A<^G^2-Dr9BbMwoRTFV@lXKQs0-FPUkwnn@xbgmFTFkVsYpC${xPM}^szw|d2 zO>py!&049JiV77fEpKr>X*WCR!^PM!DE-$i+pKwFZ0vXO;~E%1Tm$>WA#cYgIyV}x zm>_8)?=2%}mhB@jJ41Z1suu8*72FQ^5bM%E zv(ws?H2}hJWg&^OG_obga^-z|(_(B>Q}M02Ryks`a8mk>SKJ@)eVT2UJY*st(dLuN z5tYyBrac19X`2#DQ*ylsOHGx95^8%0%qzwmd26OEw-P6WH9W(!C;0dvOg&b{j4H&r{e0t^-N>B%Zuqv?7`RPYg%3AH!bLbKBkR zC}XRh2H$LE@GAK$eZ6L0xMl5|e%&!9EmYFZF&-5_IoEJ1<7)bDe^`y;bTIf2NtVdvQqMrtfwSbV`Eq-@LRETTDubEYo)Ylo&&4>&MoM-hI^-e8`r zDdD!uZqYmnDdPN;q08E?r+g4~OUICE?D+uB7jEaGChbwbnn5lxFE6Irn@GTYp5qP5;)-4}#@ZTo~i1 z&8b~q9n+SpO~P;;MQntcrSgioFfexRs?!_Kv?dPJkBTRI>OwpRKEz_8YZ^B@lcL!u ztOXckF0ATg+9Zz>cs|r;ihf6)&)GdJbywnzoCZ#~BMEi5&z(DOw1zwl9NR*8{pUjH-s;$XskvF}#^X)mDm8DzCAX>1SR`TMVeN ze6%k-kFLUnYV$(M%=@naIiUxk@Cx<5dhx`SNndGgGoKfqTC^E{ZcE~Mnj(iO*Pv%2 z@$mw)r8}2+D+WRQ(hCVv5qM+Q$nDOB{8w$Vr4n3>x}k=wGy&PyK&1UG9_NItGS;bh zyekPW85$pw-m8P&)(X7+OJzEFGoFM8?nK;iLmr+N`?G?e2Ql6I5|MIjtPo#i>sSMC z%34{n5~m8Eg93z=)XD+^I~Aw$u?-i8EX{U3|!8FsBAp&H~)c^PPP*eDz!l;;M+4 z;mIFsicQv!=ikcCINGT65xg0vKnIlpPrrbT*x5a>Ef&dNVSdHL^^n|q5Y^VuQJ#yJ z-KM_x<9qkch8ju13NOV_m@0rT!?+WRKu35QNMNosdt(}~TDfL~4)r94W~FNhguzsS zpt&%CFv)EP16#I55(`;W8+?Cg_$1|NMNf<9hh5t`(H=Ls)iAYetz`J14xW4NmJFR* zH|%}hSlCMtDs>nhG)ye~9@@V8m7KseFe`mYoVwkKBc%Ba8{_qCCRg8_HI?R&7~m0k z|6;`Jp8g;5Jq1-Pxku8?P7eldd_5Ei>M;1~YSr$SaQoZxL&>-_i(qXzw3rJ{_*EHnyMaCYk9 z_wIS_da6x58&pqvs6C4G^Bfr!?ChTScFsvDzJ>bs_&2fY9PFdH@AkhxrERkdm8j^G z;z;T7dX|yHtx8a>QIQQFJWZgAzoSV5fSuoVV%blxkiqz(L?}$l>?Qep*E~wHs8?5@ z7U4!6=;I&t+QT4ygR#r zAz5EmchGC}fc+d<<*rK^^z6x+L5%ITmDq~LT!~W2QQEA4UckTPf?a*|d-pXEEPV}7 zRf!mnKUaPB%`7!jAk11k9gZ5CC`yAzjjtHkpU`F`A?jupGCi0Yivq)yy23?}ZQh4c z+Y2q8@g%U+z>MYN4ybXmK%uHkX8`8$5$e7SZRDQ1lGVYNY<%9QVhB}3w^J$^n&$bB z;krRy*Fd`Yx$8AhxAWo1j8>ACxGq|pk(@%5l_^>Em?`B`006IspKM$MJe@yguK~v~ z2>YTr$~Ev-fBov`yMu-h^o#HFSK}*G&hEM=?4G!{37JB9Ji7XN4i6q4;@u|f&TgWf zj_w*g4Y&pxq|bHQ4ML@?GTDzrV`x5T5I`4GEt5WlkA+WCgv zGM~2%f|eeu8f#sRiVNBZ?J_Xz3&t>&NgtB(H{v9Ccpy#v6YgRG?pyYp^TC@qsg(M-CiEPCcC^xAb`@tDp|o!ofu%g0Ihyq(TF8}Q zg|;56yuVMh%owYV)WGH4 zT^ed5ovKh|^^`ZSuO&$(dAXHaw;R87CfTwbkD)oF=JHvCh?Ya_1O!4r|ETdj$Av(w z#l-THc#eWbL23V#d($#IF@uu@`V=%y^G|2t<&^K+mh%amWL^yYh|7F+p^u@e-D?)> zzGGa&UvZ$#R8pkQ6xgDNhJ|oIv4vAlm<4q|RAt0YkL#`8liM|Tsto)s30|&}o13H}vR}oH^T4SA))hpLP9%U<27=QC4z)u1T zc)Kr;ll%QJMD0m8M^K++!!@9-cWm;dLDX{0Ln`#RGUwLpS9$s?fit|T4hOKBzJipq z1;K?f^#kcRo%9|8=m66>5K_fSX3{D`Nbng>7p;4Gl~K_W5A5Jl!t-6(9ob&b?K*BB1RUP18a3Z~E zKAyL?RzCFp+u&{MiLApjy#=-_yc4pcg5UCi%F6m^Ss~|zSEdQm&74LNRiyy}pwrBq z@7KUo=Xu;k9Kx4whv@S7$|_WxJRd(ah7TfZTHKIl=MwlJ*U-!~t@Wz86YmmL3w<=& zmX}nzr3Y{0(wXWvU7B>8Z;zgDoMH`r4EZRsbPeRj01LnAalLx=kjZxh(GRJnSUIXn z|GTc8(_0=Xd=1a9p-alWRl)7cX=AiEhwD!h`182@tgk%1oJ4j&bP!xDx*J@6nU;hz zP~FH>Iye`wl6_S#{exI~{?g>a0nFLW71T#_V-elIsiU5|?$ftBtK>}9Wzz4b&10m) zuh1^pQ0Q=tU%nifd)g-{Ix1b{P1MDz6E_xXz#DlDBwT?nodZJQV&6H#s}6pdxJ&6* zmshMApOuGVogOZ`yyGbl)xj9T3C}hVLJgKhrIYUsbbl@eJ*G_-*dEn(UMr>p78u9UA5Os?I`wS7`bq-XHL8&+8)K?+UhHde-3TO=W*WLHJ9s*gEsj%#P}y*x z_!?*)Gh;vdk|xw@?DYW3;n+7Te+e`z&D++ZU4o#sYXFJ97=J}yn&vWw@2@DQaTB~q zK8-MXm;i)&dyC*cwPf*NW#cn>%}K^dYm-Mtf^IO3Ye0fvEPOzM)&ZsWK5IW!k$qzX z-3tRHMo2*_me)jb$-$Z7OAXlDqPfs=Or|UV!jv2UGMBoL+vhk5`#MZ_R;TsILl$b2 zEGsz(-|B;bh5>In)XKY6wi$RymNR#h4ShKHKPKK3Q}d6-+zZ(=R~DWg_5F7SuOKO^5+OTfrl2d{jlb*0FhN zO%6n$rb18;M>JWJJ^O%T>4**zF;nyd8HsnHMFG^xvDNU!285C($SVw^TKdF!Nw;b) z+5?A=#8DtV;F~Evf;`^8Z|pvV;^z#&In*I~4ZN$qL^}SA&vyNqIrTNL_VH>qO`dA zd26k=SHnE!0ONN!2Z%<6vuS@0C%Xqc>+lzE)%>fs!VT}h{E7MgQO@z3kRy>Qj@Cb2 z)yMY{%_BDn_5N|M9Aq`v(70sWtKVN~ZQN%ACn+KPD(;-z+2d!~f$}ub)uJG;(zXZe zSh`nnNIOOIKFm$g=5vce(UY9?dJf^0Fb-_{PXarJP_wwE19lY=hIplsg((X)-EcJ{ zH3SEC2RYWr;InqD#;(#~sUfoyhQbz$6*M{Q>r)Ss8W~jsjE`~ z0xgHJ)9nljNi?auGjpJkWtgLvIB|X)>e!-wHx4ZfBCp3Zo)1XN+>tU? zX!DAqj}re;Y1bYXI-ig-T{NW9Ve~q#FQX!^3dY}!>#6VVMru~W%i0WXcj+jh=^8bE zTg&645)d0I$v=~2V#$=G6D*WV_0)pSIBia)09g6RQXc0Q=-2OZXu=*OBsi1nX1X#R zrO`_8dDC++Eoo%ssA#f{&5f9R){Fi7oBksESxoYj?9@hEc8RQ*J3HE?y_*P}YKPk{ ze8IQ$Eqd15DX-oLp`J#+7o%ME!S-@d%g(P7xc#v%DG5+b%aB^Qee6y=ACRt9Q1%)N&Ud1m=aN)P@lZ|7|*1&JzVaFjCi<0at z^&;emQP1Zad!ZBpXM+Nqa(oR)ub9+nK`5L{Rh=;8LxUe)`B-T@uoFeavp|gR zyxXw{q0Ob+P%zlRn+NR2Ko_N8f$l47bVm_<&$yoRqtPX;zX65D(p(%mY-I4j1>|h{ zm{vmC^uH4j0#J}U_?dEkZB_faxR$Da}M`KF0VqaI66}EL#3P=#;cBh z9O^Sadlr^XpJ5LGrh9z+lY5dClM>*)&U5z2we{(z7WugPxB|%mq>zWP4`ajbV4ZOj z1BS>oDdNsmM(N91ZM_@n+C7MpC>Ou@wFB|S24Ne`Jp&do33USV^^3CkugsMi+^WRrcvpEAV~ zYOSgEmwuH*3+C77t;_JixxZid+$({fq$bOr0z%P+Tp|)mAe-L-yBrFz10>{na8U~V zw<+1H_9eNMUobCtnxtf92=>JFKNH{Ou>+}l@V7yPOa?!ZJl$60n-VF?Y z^!+flr#a~ugouopg+m-*VV+&AmSCw82%Y@ay%I$rsMESaqhwn4||%PsqsMSuGE z&A?^}svCNHquf~j*fQxD4#zR;cmCa;pRCuwOFjTB_t(ZT{JWRqfBu3LD(ui6t#>ds zbrbz|m!WRioeOANZ+7PO|JvQ@oxHQLs^7HK_2%X2I_qk`vB$H##p&Cdn%X0!>7h*xAiRk?*5tQWRO@Am-`*J9-8>{oIrK8DFR=Ro0ZPcXX|osti!m2FobT`Mzyw zwmnr42{17Ai&#qtC?W_FBkO(zr$N)7tioJ8TCRQr7TX0^+HU*m;A*O67%vIg+zz*6 zBJp}hbTPjJo2LM78M=PTd8(Tzuk+r%D$qb^vcsCPy)=dJd|E7EqJ%b2|A=}gbNZDw zme=67yF;hTFEM{4a_VAKYCL~7%?#=Ay4bEfUVR1}GYX;YAOyw?qVjwj?=as3X`ktd zlvS;}9H`~mWKn*cSSE^;|JY8TxDm^?v5+@W)$xuUlIVZwsJaQSyi;V%>Ai{@fMdv8 z{s}W@jhyk-rL(cpA%*H!yon;&V$)sGt~n3f5aUM;^&Hxo@+b$NUlwvE95{J_YW#ilmQSWCMG#;^I)Nmm zV#{usmq+R@-uf*LL@kNY0xMaoL&hcbIeMa5 ziKD*w2-4TEpy7>|8145eddS5PH4&SyFIUYpruXXJ6RqGEzF%%(stOt?T}*N8Ds8mN zA*Wc*f6LJRsMW3H6a5HB?+d|O_&7XgU^`(?@iRZ6 z=W$wZ09$@54l*|APcdOPF>-hXoB1(aTmOw({pZNt|14^iL;@jbEd=PyVfm*<51Jku zw)u>mXkgn3BnETLUshcRJ7J_yR~o~1&5CORpXcXATg*=CuQ+7$mcSLq{Kuec(>TFCzof3HMjH za$n@0o!eJ(kx9Fv;bD0l4@eci5Cqub0+1U-{Vvn({pQBcp{-oq7>_t;Up8MTlUEpQ zU}wjON-r4=BPLoH4#>b#g;^ViRpnIlZsC3mcRDv_ij5ugeE6&CLtf=t;W0Lz{wy5x zG05SaLhxsXo1C{|43yPH;r9`PvO6pF)7h$aHI~H{Tg-*{n|!Kn56D!Fuou{}-NC$Y zPMDPTU4uaNb^XTPwi&E)@(rt14;$RpiC(XB=&G|F>{S$`wZ&s$KkXU@WEcRe!Z_cF z2dBk7xQ-9qRKl@Taz`2Kg^K5UjUrr)(@-I>uv@~Y2j$IA!!+B~^j;0*<&jBzo02eVTCzZsRsk>CCDliTj>23BJ~3YzU@e*VZm8`0Lp!%`+iuIpa-YV zS=9~vVi9Nm%ph(zid8%sJzs;kcf`Nsee9G7f?rCxU9VM^cL=j&fo1NYR#6$UJY1GZ zd@j$hf}~51zM@KgjfyE1_?6GCrzUS`>zRz@1>D^-R$_+RHAJ~$pI3Clz_A-7QZGEn z8u&+-whXA`to)brI_l2JSS$4>#-d5Lu6)Op9QGEb2renEWqv|JS**V!bi@HQsA0&@cWsYTG_M-TLE zK>xHw_xTzLu|~F&C>8n>Q_Q8?hX%`ucxg`@x+~?GScqDRe_H6ZJ$WZ>Y+}#2Cgi)T zpAi_72VR|M@2dL(Er(H0<)1E>(PE+_W2VAFFpweC<5vGFfcW2hU|=Y;5ANk%YW4Ia ztPocz71?kY;8F#n?lo+^@7@5Fhxl zQPHDnn$kaTAHZ$0lkgDj8arXX251o>AG<>~2|nz5b$e<$eO%JFef%^H`;gCy$dQqv zPZo89ysJ+G@O$;XmdzVl0mwq2;RDe4+zFoDv=5YyxP(Gn{iushxib+j&K=S->{Z-RWM$&1Zz~S60EeFHV4TXhWGkbF$2%Y+nVLc(v$@jm z#ppL#9rP@2IF-(y@j=a&pe;-k z$J2obtr;x9r`j|)gCo%NsLRXoL97(_18TPV1j6KEDS;nioC9?^F(Ls9>!Uha9*g`? z#$uI?RaDr+WPrkDRhZxGdxDRuULjc&L(4}Z7fHC4c5oEsXvp0vn6}8f=Z^-1v+Tii23-v(Ux-9or z3+KSge{YrfJ-i;nDWN-cNhD;#?7T_vn;b zP|9VSxI7kh&JYzq2(Kjjj|LI=EqBJadDAg|9j$$T=oeJ}dA63$pH6o?R1zg-zXBQC zGZSCS*^phua2qJYPpTQAh@XDrF5A_I?xFg_7+CLs`WIb@xbZOP+dGn=UworLdknS6 zCZka{{qg27=fun}XD<5cG~`Ou%)GDjHeOcdy+VdyKAvmijpdEQ(R2LQOQH zO3uW~(6Xa$&^m5F-gi$OzZ{0HE*}c>-?=Bfhx7pUrPgpyj#@^g0bgs6K^zPSaPZ5x zive*iywGej$@u!6drD$m5$xR49T<7*Fl~T(|6$6Pm|Y3&>1#@_C zTeeAT_Ei=T(D$&ixDn-^0y)$3SJc24P7={KjHSnwSo^#v+h0qQL8foE3!|77a|I!E;9{}_1ib7&v$8UHE_ViL}LU)z&P57=%lz$ z8?n>`GL)SZK90zsq1sbIiNLnGn*}15J`W|&6tn&)7RO5N`9ZER1yy7eNoca_w#NPM z{nDpC$bG#p=XV;a+w3~XCtOXaijo)jDYL!}#36dlaN@ZTe3?`~Vm92k7`tpzM}ho^4b# zPbe?3#vD3yk(4+TH6Oopcy8J2W?byy)oaa||Nk)e)=_PC`F9AZS}03KYsS>6-Ul=b4#v&U)vp`K@{XV6nIt zgq_@b@B1sC>)Hfcq^?-p0iS?F@~U11$tHGw2fBgTB`*z51(Yi}k<60c;Iq~V^ZgPt zfCJ3}Mpd#^f4kYio6(Dk6yn`|L#r@B3bBM3<5(Dfd|YL=vyI!^i!$D-X-O%n}_QLSu zQA={id+0JOO{v<=-IcbHAy-;u;gii-iMHwe00E1#)cdx!w+ST$OL=@9=xy4c#ar1= zmPA!`iy+;G*|r+~;E-e5pH*urKMDqelFbb6&+WMmrmc1SUbb;;c%q$$tpAX!u*+U8 z&yXf!F<%&;Ug0(Kou$nh1D3=qQjaf^k)x zzHfCI;~FYkic^-AMQ5LW+GBu&UqE(@{in8l7@Vwm)uIhVK(R(Op6;*P5S!2DoNf${=U>AeblL3>~JfA zrc`e8?j7UYg(YeKLY=7;|Wi9gtg$X*uIm8|!S^NGZIUV@N8atsAz$A)WqiW)8M{ZBRZP6Gz=bkTO|o_A+0^M!2GkCl=$jtCZu9Tl##Vn%u1Wsu2eI z-m9b}2S~k3Q2lQw`1|32@pA1~dMPpw*PY>)U{<@p2ub+>h49^L^53;?d9AxEpCvmy z5Vk&|Qyv%+71{H^`~j(B=*yJaiD?`%eDGR$QtTTo0Y$kfv3M8MUx27eV;i3)8yjW) z^%zk$DcVyGZ!unJR3$Xg|DKN$g;qk zR4(k718I`6vmK-uEYXd;SE9;)CQX+e3=A4w1R${S5BXE@g$DL49xXiei*8sEuL%Ck zO_7DuutkmXnezCY4*-}Szll8Bn0uq$9`~?uY)Y;GFj6}MvW2&ZFW6%Ol-uOH?nR8$ zG_B(Z^ga7SHLPQYg}S4Fh)y_}b=Sds$!6*M)J!{yAG~|VyXSlV^40MWq%2&P13n>)fIGNHBd>0sQVZG7$+pxdl=OSwKpxV0kyvam;VBYe$S{s&bfpiPF#+iFe5idbP1;* ziAEt^;p4(a8=Xh-DOF;2BVqTn$pAzEU>pG8g&igkg5O^_s|auvOwoWcKO_^}6Y#i@ zY97CJ!UW1An8Mgv=sA>2q^~-(qk9a0TUtXpgdPe~eo!xP5l4`SYNoq)k8V>u;0a^IUM+VP+zf zRcd&cC@>q)|1YOtg`aBQ%|f2U0Cx(kjZh^@`SdkYsoUjwJbc-3LnC1mzeJYNY52Bgp_>!{*3yw zO_DxC*a299u<16}7RB+P-_OdOx;|V66!URQ;_JnU_ib^t+dr0=-4$v7qL@X=gZGqC zi6!@bN@uwz<;O4+QO;bB)I_3r(}fFuhCUQYcYB}51Fp|`JB5XGe}z+btX{GFWu=e^ zhd@Nf-=jNOsyO|&t-534c#wyuyAOLKw&BrmZpB)&? zEbjwI`4dtEeVz^<8v(P)7 zHf~+L$2F+wCDO-M6a?*?N zq-<1fmw<^&NUUom9B}YaTywWa$XLo#`6ORf&*y%-OtvjlAo+ ztl>w}elfIQLm#YI97k-Z1r`Xt%QNK}eE**>R3|yJ<3OhXGqUKRLB2sfVX7@=qNvo= z)RpA7yh_+%;*w%U+wn{c{%Q%jIIosvR>H%>lfGN0^?#kSv%cKgz z)raxE3=0z!2Mqd9Ziy87r);B%PGHBR>;Qpa?KV)iBGG$!;eDcBNlEtsP(o77o4KN= z?~|Nff^Yx^9%^L7rs=!R=M`Bo=j^R%Od;S_;c04z(BF`?fPL2zh8tH+m&mwimUxkpIP@r)G(UtA zjdMvq;Yso^33w{L;=$-hBi=?`^5GHjV@GpQ$0d97I998hgpJxCOQuQk0guXQuC9N` z-X;qrmpRyMz3`LDkY7q=gT>LD;(Sgnd1W&7b9jH{mdkayuTWGPZBoBq&U_u?Fjn|Q z`@=#pUGQ~qu@`Gd^Mqgj*<=PfAAMTWu|6;+Wr85ug)CQo=V1t2p`ISm&@?;K)=*a2 zo-5%@bzm}dzdcb|J=5rnVwohb`Srt;>D86SayxjPUoS_PVg9XY_oIih;C*clE`#bk z4``X&XX}x2H9XdIcB-_9yhKBRt@)H|S|MlrPib0NVy|

;Two2Zr{Fy^=3gwSKiPAi$p!M^f^qaE8a=VLpUGoPW+uqQkv5lufU`?w`{Hs6s|AS`azhVsku?}S@{Rem8!Che%(dZ+(s#mG; z43X1gp>K=%Ts+q=CJi^m_N3is+XihJ{i^&)&`I;<>_@mkU0)Du*?h zDH@%MCPf}@TZtb&P&U--#*e8!a?j|w+(vi})i1hhK;op2tvebmYTDls=RW{VDLAt@0^uE&CdQ-US(;F zRh+z1wsVX8n}L1Kg_@h*y|+`LIbO37sIu<~nD~)yf~b-f`X%f^jk>w$+Lx(nMLglw z0EVF@Dw8wyE;X3yD^IS*f*l&RowU`@w_TqPdd;$*v9-KsrC#DOd_<;cdoEGzP}42&H)B_Kc3ButP24e*;d5`F6lVHO|G!j5Hq62aAH)lbVGv z<@~=_#lyr2Ey-5Q>k=Lp`a=7Q<0jk%+%YS7riM`N%E3C+fhZYFp^8n>_f;HoXc3l8 z`{=Y_hkbq8d%>EG>aR*eD7k$z`M({a~cmnL;hgnjQw& zO4F3#%6`A;nnOt?2rp;eV6`4DAdqE3p?>BQS34OcD@GsgOpPElaFs^^07+$LAEsgw z$DxwhwZcj8m{LIo3LXOnfpRlPgPviaf3I>^7OPKf@CfPe6(P^Pm`^df|EIMKOM5>T zex8ld$hzP&bF~Q4B7MsHjv}Y{0?1_;bEp*+7YY_2X9ufdc5pbHe2z?p`M07PQal42AC zR$3qdpw&3LHm+cHD+XVg*z-mgkn8t7DUy}6oUuVc@1I&P*xvq0Qzu34dZd5)y~3H{ zsIhR1@9a@vdo`$eIP&fgwbtjDj&ZkVQrTK@7q>M5WJYYZ9xN zJl*CVpCaJtsVM^hrk^unNn+&_&J+KyYS*cO6A_Kf2z;bbm_QoG?p!8-)YDyjAvS); zxXP6gk8@!*MRtT4sf1~}&fKfMZ<|LwH1+jX87m#MFE7eU_;miAO-r}^mW&>?XXxH66J|8$W8mAT0x5=TlV0;F( zxi1@=F~Y!qtuQO%3Ps{VcS{3yr8gWLzMf&Un=F_tZ%_+lC@%ocdO;FJZH33YMdlAA zpQ9UmKP>DXuc`uCT7_&|#;}IvyId!ag&g_;&v(K^%Bqxt>>ZwxhBUmyTX7N|M&)$b zx@xX7f&yy)&AkVBVO$~}n8X?-Pq(`7rwIt~DQaQTpbJLK1l9MRzHhSUTn=Ma@JQjC zz&KK9xl0Nzf*6Sb&e~>o@6g{F)d%_2N~UG{(pggg_xdB0C9p=%tBKt#BcIC(jXOW< zlU<%11)>S?_lNK7EG*6$*+WeiBShZvRR)L!DlIRk8TI zw>?!0VeS92Z(3ZBGKo|a={M!rlZ<{ZX`|WL$KilU25Z`f&0Mw9zv3Y5&T;>I8k4ZW ztX~wBt8Fs7gnc$1i_t)ouW0Yc1+}i?$z*Ol`w}YSX%q#Pp&7bHgk$t5d`chyM}~gx zkMp776Oq9+u}2*CU>(_hrGeyUR1uPWeFx^ad1Z=a$X2qtSF3j9cYcrp3>hggb1#7l z*NtJRpN)s(fxUZjW(aK>c6jTK^y8a$6y@jar=bi>-zkD~@#U0cnW?>}#L%Ab+$#q3 zpT*q$2O%<+KF(MPF1-;6{iS#*+(H@qC13`9Jt6+ zPk0aHB*IDw=U~qlDv-HH{mx-iHE?ttDMI{ICQFNymifVZdQW@+e2a-xPG2Y)v;Cb0 z=lVYz0kGclK?c}6BABiu(4Yb;tnPogx5yS;rF}Iw2(%|5+i2rd2ypLZU>c?sm5OP9 z5{I#px&DBuKn&ka69WS7{jd8u#$G16q%?He?KbwwUjWP=Yff$XPv@4?qknVHF#Znh zzXgXE#NNl*yi?5$k9?%e3?PgKrupHd@0-xAf5eT8aLW1;9TD05J`Ep9ML9zUm?>-@Nl6Yud#$Si^8Szv96xNCDJ$UxWndy9rTR@ew9tVTFjZnqv4aaByryW0lFhtE zrnP10sq};8w30OvYaUtE=Z~`Ao@&Z~SdXDKArCNndli|6z#vves-jeJ86Yq{d_7DI z)9i4+m8&BsOy@ft&j8tO)nO%%xB37e?6g}%TQeXVuAVqW1sAdl6wPRF;s@+0umbKZh z1&KHGru)WTVuV&3{X(0`iD4iwUbZl2%O) zD_vgg7pMjC>Y=i+AoPBudShpr+*t&)YWdYWUIRyC#jTv~PW?^CrjTYXsmBjZDZcHQ zLX<+IVRzKqA}}zb{oC-PjtAsd;WgmuH_@QZ0cUKiJ4PG>KgWT@_yIUj9uZJ zPI;Yrsg0(layZ&AM#>8{v&x2NtC3gK#CWx2c>a~ocPho)pwti|0stf(M71+y81Csf zPNZ#3y-tMqJTi%~;2?la(r3i&IO}=*(y<^S*9iAe1G8K^G`9Gimuh_3*MiN>>t3Z& ze8J3&eZl`3ZT$1IR5C^oj#KJnAE^{sAteosXX*~xj z>PA;uC3uwpTa-D&nge823&MLSYNuD>80QmPKm@6l6a2~>I#cWFrMQ7}KN-e*$e$FM z_9@eLzv&p-iyQhnNS;Wn{Km5>#Z&?NVMRlhw*gz`6zRGI{6VH9=f|WTW@Epk)&Ba? z-N(4X-rB9Hohe(W8oxdu>L<|UDzoG`H{UxaMu}af!9_O%XB?w+VGYAjMB9EFl{VKX1)0GAPHjvjUk~1)gNh+8{tM9iDhIc8170xzNa)z zghQF6p)i9lq%w>K5`u4ZBz(zHPpx5Dqr|POwzQ)}vW!?Z9N1rzz1q&JADO8b004^vQMQa+ z>_a^dV;J>*x0@*O6k(C;8>@;{QjG0_j+hik$1obfqR^3m@0fPpwXFWF%IuYV$NUSNP z&E&Yt2M)6(Z-_bKTWt0fN1Egv|+4G-(`L{#r^CCzTHnxHvmg03Zn; ziC~y=RV|${Z*!%|{+ZptwxA0G>@0oS>;aGLZmAlRQ^RrIt^Z2sVwdzU>_xT{-1T72 zLtzyHRhR}W0r2C32b)-h#ev(=hTgqs8^=w}rO%8+beO?Q zXyDeU!Sv=eq3?+C3vX8Mfu}NP=x%l=`_RZEeVY35r$>nA_lbmaJrxd@Ag+gq&BCi> zjFK+f?RQYA+Ry$iq#Uv1DJ zuhW>HriIe>io=@Qpdd(D(^a}tsKD|H{!1QslSfVkq06}IvJ4oAu){iUfy2Bmca8hNOB`l{X8+xx*Pe+EetQ;pY>&(UtAdJsphg!+u3(rZ zgqb?X>4Z{qo;gs4PG>}gPmQw&PdAIRH*ygGXMm+~$qjsd+CfRfn%8IsPtUzS0SLw% z1|>Vh^zbU$t=x3d5 zkuRl)ge+G9SLPr+7h3Oh;)zs>s+nkTVI6LM*B~9mN3Rh`q3DcG0dU+>cRRS)MI8=$ z9&4@+aER;uiol1opaK`%B7;O|D$6Z3#VV@=m9WJQb?j2_Y;#GlQzJ;tj%8|}9p80y ztXjT$o=TMqtZYgRlOv+cgrY8Y+MmQeIJqtl{S(~^0nD%BOXaOUXrvStrh{3iIHuo5 ziUMFmM#t>Y2S2JI-ts&WoObqD@1hb2AF~FpuLO8ZX(&rQ4jmB-y|MobP^8oRzp?9- zEPAUF(`oy9jWiw*6i1xiyFQ5qq>vcV0B~k%%RE_sK?2#}o57rk~OKuJ@URDN5oq zUxfbsIo5ymesk~QyH(5BBoVCUCB%{D^h>l>h>g33A8qgVHoCPd47R|8u`FA}ScB|Q zXo0j#t`rv4V}Ha`WH95dR}B3`L<}as-A(=C1Mn~_?bljR_b;U&SeYKM1*W&-BQ+m% z0!fx6vd_gZYxVCRuHJFT+iYZMpuf9FcT=w-!iCmeUlb>;0027Ku2T$@dQEi3hGrIg zPRn(QM}!B79N9ucksAEjXCLOaj@d2-8x^LVd~UjiETRsrK;oYGRZ*I$Ka%RWAS@l9~_UWiNA`6R#{v%cS&E;|~E7>>+7b+wJ+tmKSaP5k1s z(W51+J6GR3sef{r#N&ODWa^d5YvcYLPOYS!4zEm4`2zWjAWzSYJV->DUKi)6nyk0k za#jXKzZ+qSg12C#u`vv{r9PSoKF;G**v4yTrvsEUDEp!VcKG?U96}4E@8Iz>!`OYi zTXq>uBp?_ePQDtj$a3PV8%R%4kMN)6cJ>E35DgNMFS?Ry$wC+woy?oNw{OmC0hWPiT&W3h(?t0Fj0@iDj)yQ*=>QcvnY`fi3YR?b(dc& zw8~c*2aZINsN}EqVtcv|l7CMr&E>LHysC9R**t!0ucJRxgdxV^k9&VgM5e&tIbVtV z$|asxb8C;q@yBFhSK6icq$r6(@-#5rfn&>9=6P?z{Zg$vwL@wn>^$+&G`$Om8yICT zI)&GI;yCGb=2oddrONO<@68bcS7!o`^~oD}025y20}^TUnGS}JO8%YeDD}6fDg$ee zdMfC7w-b-l#v(9-aJm>y_6rsxdRdcHFX2!m+-NUU6&jpDy+5izaz70)N;~B@^$JIN z<1%Kmu3om;Xcfuy%VCXk(y0lA7XX<$8STOpQ`lpe&U)#Jn-c3=dp#>Ekb{000xg7$}YwFQH=0c-|<>P*mFQlrKc@yy8ymD*VN!IE-MJ z9Z^iXG_SC(a444^(T)aEMt&i0-86X99}vFa17^;_9&OgpBIODAy_$w)mfD$#j;Vf~ zoUp*v^n6;d@g6>vODB8jR{~NAD~7Ek4(#sj_kM2_%whzt2?hcVQ@U)+cA@D&oViMS z#AcNr{b1#zx2;d6muz3ShwYNp$j~R@KW@4}YPv>NG_~ERaJRi!&p+^p0fYM(;|?XA z2D{YK_eJiDv2qd_rXfd)sc>MpT9NKrf~S--2bic$EID@lMP}l9!|k}pd*-#o>TO(T zKMLM%rO1F4CWf#C`u&`ig*T0It&U9Dr91MAC(CR{+J-4f52ag_2*-Sw*&i8vl43*T z&+PmK9|tUX6GGj8B{%eaLtjjzkjO$gIJthTjTeR#kcD#gS|vY&0!C+V)$bkFQ_mwj zIVT84@&U$gg^eoe=@rK&@Ahp3NB8a^m>_)TJ%+k?a3dkqTI6>}>=@dx!d(M02KvPX zmBc7B!%^XxU`dReRqF4*`xFpln0lC4lU?1+`(c1Q&5r{F2EcpV1H(s#e6;pb>DUKb{=by_$ANdkgVQJ=UjdBL0w!)7E5%xgmAm|JuYukKjVo}=U3)d@;K9bq`1P`IAk4jAL5)VPN0S?s!lxlS1s#U=S`mMQFH}Mc zsa4bz$KW`%2uR`q0~pX?XzXV7<{glqhiU^v2lw%l*rk_qZ}-Ysz- z>$0&SQ#-oXIrmxOu#X`tiWfFji!?Hzr%eSAH0J+-xjX>?MnFDEtHN=2PwM@pLiy$K z=5c`Wuyhc5XG#+kj`7W*9t;xbpfOy`w!wZ#@*~oNC8%B479^1}zz)4ufUT%VCwwyI zk`JaIhSA_4D^mt@%V2O@;xqETYgKRlAg z7)9|0Uu)A`jcaXc@vGHgJbeRw@^<>VgMpy@h|+S~@a#(T5rfJ1?+h*b56uQq@wA*N zMeJZhc9uHDQc(!IBxr@cxAja}EUUTO9jR|{O(>Wmi4S%TPctNfUTgfwqx!Lw#Q|*W z+})0O#M3*ixU31@&y5w$C#r?tf8bCTVQi=obUdVLXjYZBJ+Q3#?1YkBd znn}|Zt^8${!t6f7K3p6;$-3crx}#g^22uo}!-%|#V!Nh6D3n zvd(99%uI>ti)Fn?=yb6|KC#rp zgmV{+bjS5bH~5agKu^g$&DSB*Zf&iZI~0ZhPb}T^%NRwq+9JBWy?=%Z|DU?{pW^TL zUQ^(BdJH*KQiIy6;vi=v#7-;d!`#eq^T1&X#+%|xiY$yT4n!+I-NcOh9Z@5IGG)&VZVQOTNl)f`V@2sV|tjra1$1y*R
    A~fXvM9L9v0%3)BZUJzow?Dzbwt%Od%`IwG^^}iooK={LT)?z@2}su z%*d!nO)57s41Crw_Hxs^sXEVtc2+KGOvcy6j*r$J2;61LZu)>3E9O5tqx896N95nD zN_%D|`$Y#0l$r_zr4E>dFtQi88`{oT zx0iJ0xv6-)8fv90^&`0rm}B!X%Sm+)8joBkf7?}*YH%5eV2`VW7sMTqy}*g-tpAuL z2XuD_S3zKA$JnSZ!PFmbcYiSD4G=5`0&|9w+_uHSaff#{t`XC9}v#0~(!X za{970dF1QYp$Q8OU8`IFJ=&ia%H>>*Zjr4`e!ht0j*n9% zu8+q)wGRZz);ryo2Y(s=6*=hv%l=tQvnRbmc3|043i*|AO01|6XxrQe3|O?|PTie4 z$k4_BD0m+fU6m%euth8El3$Fh>2Jr8IL(X#iuLY{VK$QrX3BZcuPl&qRe=W03)h>dNCkD9Qdf^aiz3O}rJGK55m>GTAjhqy%CA38aRtPG{dTIMh?lXR zfzRtU^3|*~Fs%{Wf89HAw6&{5oRWGNZi#~SwbGlo3|i-q!=UP0X(xA!2X9H%z9)3H z@MF&XJ+i-E6tD4nNq=?*r~DLqQK?f;A|eq^@|a+!!`!X6(cx>CW{#xd1@&az!F|MOaLlqhQHj!v!_Lm)59;p9c3nL$XH6mD zqzKfCl9}8_%&)k&N(L+hl{S;tTVyOLzj+iD*;2XMYl95@jBbBCsR;A3|Gr$2HyAB$ z6oct=Mv@i&uM6g1iMsxH{D>Xf$9y$yN;);|tUGlZQ690(Tv8Cg-;=~(%_p{dhBOO! z=_=u-{^W1c)a!2xj8Oc*n3N<0>@ur85BF7o`h2mc`P-=7kb|=fSH`fhBU&_L_xG|B zg966xoxFe_Krq5TNB1%{ERPRO{N)^}DWeW>DUC;Cj7N(T7Hyste0H$p@#V7`Bn#%l zlaxgg8{MsFVvs5Ojjn0-$tm2m&Y!l>DcAwrx5jDEq)FQ4^I_NE>Brfg;O~vUjV!wn z-soBjj?WiH%{dkhu6{v9`r=I9x)}tz@~$P=^~fz`gG7 zWBy|!o~Ms{m)7i5nHJnz6?*+fdiwUa7O23<XILOfh=72Zd*9vSeJ=T{`xV6%vq;AAxtLb% zI*H&`hu5lPVqtzoNDF=!4%2IbsYh87O%B~ElsOe&y*k6AaoE8UK_40=Fcl|e8cgyO zSi8$6Xp&*N|I1~-emurh#1l(gkDc3{lp*|r+50Kh^4_ofIrLeC@&i`tcLbut_1{Qs z@EJQI?wP{|PxiU%ozsks?8n0;h6zO16%_7E*j-2pMkW&SC~#eTC9EtHWuxVrHnXFg z7TW!lpeE!{bpPR6Ny3xIn6njDyB^E)_Le_MZz6rWmD)Q3aw@n=V019**Vvn4q^0(9 zJ8Z~}@)Uj@*qE!z z!Z52!vs%S}#3~T8$`?Qs21`;x`acXdMe^;#Ub7q18N`hgK7G;&Ow8xiILgSCG4r<8 zlaM6H(bV$9Me&4*Zs9N~O&9b|&jjdx+!6fiPi^^ktqf`8CS!L$jeKT_PH%5L4Z_)~ zIui^aN>autd%(x+;LyV!sog3TA##{$)S@`isbEAV;0dxuT!4X;|HB9W!oj3*pQa;m zPPrT1)5hXItOrEEqCp<}y%I_JIQh*d#V{3~b!g%0koHd8Fn#L_;8_+R6Nnw)-CI?y zIPB&S;__TjLK$D&HtNmGb=;FQd^kXlJj^J!$e}7YaGGLCXlT{*`i;*aOCq@pkp`m? z#gE8L;Kh`tP;`F?i8q&OZrZKSaCw#-Pitp?r8jLF5lAkb5LJ>+62?2{C6A}8g`{C4P}bj)cZ^$2Bd?KcSmP^$@2eTEjSVU2cb18|m$83s9Q zLjAE-5&knJ8*lM9#e;e03p-M6bHOjqA{&nEiIiRO?M3@{)0BFr?g88;(Hs;L--=+* z@NodHqUqx!z$E-#1cNttv)1v~vV(=;TiWY0R@Ek)m>?7)b(rBoYJS)9j5jpz`d4)= z*e_!J`bR;GUh3T%j*T#BSaF21S@<|fcc7OjVDDm@a=5r*s6qLKbsjJ9jDZ8~52iIc zNuN8PB4L}kl_zPcvS## z63oMOEZJW@;2(vA=SKF687@6)&pb5PbRe=(uc**Nf@L_X+ylKBNlgID3qo<{Z*TVn z=kDo)eQYna4Lg|zPDBCOC53(slKPW9qc$0j-FW@R__bu##o%`68c$N{OmtwXJH(_@$@jRoG0Z`w?7qignr8O-jVJfI&#w8#(xhg;Bu1hh1JVqcJqKzn)<^)N zp;%W)9^ro4F_jIX2*spFcFDUuS+2OkEgEZsBt;(r6IIP$YsQ(?uU5BOX}&|WuIb?% z(Htb#s%4{Z|GszHf4@Pu&X!R4Ye&QHb0$?BQ20A*kAP@xJFjq+b^&2NCem>0IlCKv zW0toO&tV0LONu8X`AOYpeWJaST5fTl21goJ))ZL1Wh{t@T4e_)H0yx5z4L*LjO&N% zo152<{N|TA20e-dMxtowOaNG@n%t_?@9d&ky?{Nk4#SXb6!4}O z?Y=Az@NM4B)`;fqS@fi@j9cQ}O~h950kmZ-g#8R%{(|1A2GM01Sj3(y!5& z_av^!Ex^ZiZ!pB-Hu#_mk%>xO1W95IGCk~)qG?X#{zM%#2){p)z&HHH6N(H-3usYh zkDPw{vUQ$&Gk4#WG33)}+^n$LQ0_B|5No*o=LEo>5Gj+qy+qbCXmJ)#yOHg>(hK4? zt8*}5mmw8?`uxn1UoJ>{U1t21SwydC6opkg@EE=LVYy&qPw!hmWQquuGuALO?WsaA z32sQ_Y{8sOlDYP*v%mTWzMz~Uhm6C~k>25;6B#`RG%MsKnpov=eoSXlUTVlJ3E>E(QEtRh^U`nZEa5qPF!U z8l}gHr%pdo;8SL`;vnD?Q1q2yVC~^^@tIxcdbtD(Siv{LVVbgc7YHEHqal*RCUMH2 z?^4ALn=w`Wc)6s<{4|z>%IefCO$i4pUNYF}e*dzWyQA+Z=f<1SK1?AnYkWs}?$V01 zRW^Lcyp=byETt#B zh)hFyH4YUgD%&m~;C&hTqM>7fK7p)PHN~f&`Zs*-!tg|`)9^qJ44yK5l>r}GvSIR+ zxc0d+31wKW@3<9Ymy3?b5gumLxnUhG@BFtpme?j{R}R#+wGulGBT8B_Z~$Qewvi

    ;0hof%wXvc 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 z

      z4)<5~b%e%*h`gbep2PlH@(pn3I)<+cYf3&?gi_ndi$>|hrMAm}R^<<-2bC^; z2{6xRnR9j)9+)n5Dq>e~OE`xY_Y({BP1xbAfqBljD%>gv%t1-Lg2zV(VXa(K{mxN& zuj8iUIX+|6U*!Y}$F2Ri6SN+L_x~d$0Sp%FD0{D8QYSPt)LZQ(62N*GT?QeQ5!Rt$ zktYv~McJ;77Ne`p&1Dmj$1mX8)`JHTP5lwzpytA9`lM$+iO7KoBt{`tc|{3L2X%)5ro0fd z+LPPe&z!E-xgSMUc@sLZ=cCNXI1_iF9F$spJ1seRcP73HTdFqCF`^gcSsfFz8=^@+ zB5#@e20n#x4QFn&oRoHWee?dtQKLmgvl2a4=&1*IxS|(>h@h0$pr_F^=R`M9-0T1>e&%EWffA+lB2!?QL@k8dnim3z zvg#?OH0`ep9cXSA=n3v>j}1JrKE!!nE4cQ2BY|1%fw-mGa}(@ti^nezDD&YhS@Gjq zT3Rp+u;9s9A~Ay{r5%%ct!jB~qdH}uUbwpFL{vRx#@Zqehd;!m6(@6`YfxhtJotYf zZZ9wJ(K*r@E0kX++>0fXAML4?n_UhEDzfa92@P1+t>lkXEbd6?e4g|PGQZC5NNKV^ zBpUR+4df!^9nRmfHXQjk^%PV3(rZ7?R;F}H zfc{vmoX_>|8&?kftYE(q(}yB5kAVa+n)&d1tP!dE1_r-@?XMvHQ{^|%ru`eBUHT22 zdI!#_f(1wUAf@|x!t$vv_3!H4X{3J+=!hD?C}m#+;J?W3F;=NlULc7Fr-@LP;-d*i$r<>LQQG~?gx_q9K8 z`2OkMuKi%)C!Q1QZ|i~jpc(Z4PdV=Y88-W$lQ;iwUjIY;13)H1?1QGr9pbS9u>0yPz~UN{evYR zF-0A3efjrB#un#tX}@{jeO;51xa8F|iGol->NCo2T}?Gm%_>i^j2Q7obN=GSXi@qB zG>GIa8pv>kA5YO_Ro9{E*tuIZ53b%Fr*V>ZfKgoz132EtVWSy7hLfaG#b)C@3`2%R zxHaC|7PZ+|9c%f|trtJIzMqZ2IOgG@>W^jGB z$cNPWQP#&X+{3ayoZ}t6$kG|9(j08^MG8*7n89^7x_V#ZS4v$5*4V#8QBAUtSZTVWDGaDMBkuLfRX$&AH=JnjLzPfS6X&eOhg%abnUp?pPw4MtKJ$ZcwBI#MmKdaRZ`gU6WAyEpbS1)-V>7|5Y@1vQvJrQw3u_ShU!XVVz(myZapPgslKSEy7~^pT6n>)Ff>E@1_AF*k;#f2orhAmw0Y0J z`p~Zrr;P1?xkUWUEgQV#auG;-)EIwMF?svQVD4eJWs>F2FqwuUKxoL#6 zv&WD>y6wDDmXSPL2r}kj7}~7E z4%RWj48F&OWIVA7M4xD?1t6wlGh{M!N;G&Eu2ZDA^$kl%A@^D^yuQ7z7wEp-KIafAu zDKq&Tm4^@=QAC0>jbpv_ChO@pQ~fP3FN0+<;Fk=q;sh0BUmBdJ3;L zH@IIp8_^JYkLqkP2?B9KN6z!GwZX-Y5p|N6 zTRhuqwU#2+=*@yO^F+FUOv$Ij&s_V7JE}JYKJXzb4crV65iNXQqdiCgy#RM?JG2Kj z^6TkCyKD0TvO{jKF)dFKPp=_iC&wFsbu=6VYKsrcMm^!LYO1bNa0xwVR!ip6H?Z_> z2CaQH6=U>|#Yy!A{Gt83x)bnKni=}o_8-KqJZdQgv*#A|G5!0HuSb-PaeIDcxJF-| zuH~L@Q>%-3{^$E0QI!+kQlAH^_r;y?n?I~L_MGq%J)lft$u75bi`{w2Mmshr$Qe0T z>`D#aW|7T2rz-e0H$Lpn1v0{XbZrNWi!hSp6?~y@mvDn1P)!Mto>0Cez@_I(=zZKF zkySnW)w;HWh(WxOl=?dzD;VqpDQJ*VkezFv3E6=Je$}Ta^Xu!z3>hgtr*Bs0qyl*2 z2#ZVCUlk}`J1M`sh5l(VxPnL5r@m#Aap^rYc)yRi`D*v2;G2Xn7G)=Kys~t^GsEo~ z-Yi@WhZj-y_3Z8@RRP+OU+C52BxNmCh6i`jIK7VMaWw=sqC9okn7#0$;(b$7g=XI7 zFc1!h^ZsDC)Vl=TLZEJwWQ_}~B=F7}q9JBC9cPtZ=r}TV#}T5BCyedP;UZ~pN|erI z)B~W0eLV2RNQ=*;mV6gHN!+nkn!McaIY_=sgUgO}K)E?n-8~Y*ZQ|pZtOVxxu*vjs z?M99XnXHHFp+kePb67UpVv#fRNt-21`>}K<%8yoAV^(KwUQ&T_fZ~9y1K!&Nf&_(iiAEad*Z)KD{omSd{b#rTOYOS;b)f&h z^!Fe6D9s=1d{12|`q+E(y{9-cUT)|1VknyoSRD3HHm1coIZG z&W{iWuqw}H#=Al2+eus{3Bt=BBG9p26TS7g8aC)J2qG@lqv27Zve;sAn306}muSg@ z7W-tF%Qm@h(1f(!C-|4!b$99%*yx1FngwPtgk}cgsCOsmZiCVd*7y)aOj`*11(ODB z`b(fx-%_+`9y-IBrbS_3)VZ(L&z61gleztp3a7g2Qo3`4EyzH_t58IP#s9tUH4SRt z#i894zs5x~A|t$?#fw&ga1bnT@~k-_Y2sC})%5J0kWV8Ra6rH;-M_>WA}FRJYOGS$ z8PDTeO%Z|>WgesjdN%itYeCWDoo~N^$Hm391&uE*Tyz>hF_G)RLwT&^aVm*?>P1A8RPSeel`oG(=*e-GszZW=hF=b}D}= zQ<1wBO#CiYC)L9vF^p>Sj#; z1~e15&igIaQ$+N0>zV`&MQOI~P^Ey;v1$!4swa1F?$POuk2j^opZSuH5`xm@({atXl z1q@F!(iuG`61a5|&~Y6dJcDI2z+5u#0zbT^RQ%=ROM{(+T-picb}l%B4P4H98*6?x z&3`>UfBl$S-%N9~p=8P%_jqc{f3+T+GPZ~pjj|6Pm~9KqEbMD}5fO5I8-e6=WuUVv z0^BP9r_{}>y473#o7x!!ue^xQ*>GnWDwN!Vr->zIn>m=kYOYnGQj`Zqkukp13-Ldw zdk>(d+IZbJAxP*T0ul*Lq99l(iiD0xSDF;*y-AVYO8^DM&_WeLK%`5R-UOtC8W0eW zB7xAGbV15@)_3OYdiI{X%eiOnWriU`GHYe6^{#il|ML8vSa}GVxB_yIp1&Q!WoFtC zXJJ}EUR4G)-^K)5qe2D7Mf8P}ObMj<$9Y?9Oe%(Hw77^DSO$5F=2-fc;KPooYYy?H zp8*2NB&bqa6~8D!1c|sC>1FuZRqD$tGV8DbjU3<=AU*kS!?k8jr%I>pi_qpq>qV;c zScZ!r*Pa1J+Io4bM)=pSYJJ{d9&f5O@KYkJ-DrssXd595N)j&u$GCH8se0o2s-=Bh zy6i)bFGfn{8SHiNJ^%K@_Hw-(lvHcSHH}a6t9cdC%;$^m4bksvRKKQ9W1d@(Q4A}4 zzicvvemy4(X8JMTU>a*@2l1%8#Aq*|vQFm%K%K(~P6CK^*h$TZn9jZ4$SvG}O)-PK#Cg8AaE; zfWz0M2rG8@J#lrsLh!Ab*26}NPrdbUD&~l`jT8OInvX9+1Zptsg`{YeOiu3Hpko8t z+>^M7o_28scTKIuSHk7*8!|Jzq*)#aCZpyO~A@=~& zlMngRhL1Dy-u2EjC0RQ^DedKkUx}p)xWo)zGFpCJq6$5Fl%wjJp{tU|lKCu&Toi2$ z5r_4iFT?KSl?UB-ijiSgc_TVarld)0zMKF)k-PL|jkkgvooE&XSnb)BJC<%#yrasA z(T;|?^-xX8_ghY*QTP`TcnF+JZs%uYBTKW-i>_A|XLxkVjkkD9j2p6TJ77GM8H_*E z8s;0{!m!)^T(GrzD6n(6+oO{{S1*+5Si@9ZJ$g|0{k#gLR-cTm7MhBW4OFKvMjyzz z5Di-Ra`pI;CPNqR4Bh8}4goeH>i5&5XpAZ`0qun>&Z3sOl0>A zPILdn)~o^-J?c#7TYBH|iR|8Sv5zuJwdayrQSVG2J0fVnuUE%u>~0We;v^lf&-cs4 z+j@{?9d@5NADAT;i}M^5*>9^bn=LEgRT<&YDSqy6ZE@lz91lLJ#Ih3n5C+O}oQ5CP z(kCKWN-blNIRxFR@Q+fN4Sthkn%ro6gg4^n&hPND8p*2S^=2t&TK7+6U^9bl3|Y~t zD8|G1%P++olz4fx8Ec|hq-<6GiFM*>yIVC8 zD}0@h2+8vd6mW?)mvnM{mO1k29ta~s;m`8-smTKB5_de$YtHkk&bdxcQ!o6SPygn5 zul>=FEXdXrD}5RADUJ8lC$S}B!aX*E=1&f2z$Sk-!^7{*f`K`6VtM(+^;oe3D+(Hm z3duAk8oIV3HYp1*VJ^y>&S=4+F1`ycej^%Nrvd7WBe;)QgZ8lo#{YLxJ^$1f{O|AY zzlNN|O#RqSQ@)mBJPeV`ZFQ%1HKm;uE+G7;e}m8Dh2&-0u)*$ga80pV!PMD?rGx*ax}=DTT40*_ ziU#Ya3(3RCSz+V>+6$Dg3`DP^SnT3K6d-Uch%@OIT_}Ex>+t8jb6V{M^W#5R7fnD} z>_fV#@^GTsPUd*=7aQRebDc*Ky>M1;PGxa|DVyyirxG@v2G=xc1|L%RswsyOaD`2F;TsrdXt!e9Q~ZruyurM$9e z%WTxUVyGt9e_FuNmn2mWI;^2{96L@9p}X@y8Qpd6kI*+CRwcwWuf*>C!ajvM{~nV6 z*Bv0+k{`TINSyDFF_(F4i(2=i=@y^qq}>xI1dgXf0p;eab4Oc$fj-ii??S%bDdoPq zaTNpicYn*=6ns{hth9tAaoyFFB3>nr)n9pvnNo0GfBd0#t6M`;PIyAPa-znx6}T)} zYz-+Ql~@lIgzH*7y}@WalDKcAx!_kC^RYW$zvd^~zz20Q50oV~CPLExM1zu}aO{54 z7?acKEqM0w^F_L4&|pFedjvWh&xZmda1Ql`@D?XWvn!3?4F)1b`qx#o{CUGWAw4TF zd_Zs6rv=Gs-|G{XtitabE(dWpPuK!M~WSaZYqBkDo253Mi+}sm~ zUbq(J_UE-GN+btCA|l$iDSLR==6DNBr=R*vX}ddKPn)k#YLv33ZGG4Wlkd15>jU&w z)5a^kd~@GmWWX{bNFyW1f{pAIVBG8GKcj2U-m*5QI1nAlM0ZzEL{ZjpvjPVuR_^?@Hf9?~T85Fzzq z?iIIs+fJJ_{7xKiipBqsl9cjL1#9BS?~*)rvdI7~Pdl789RtkRzD7Y-%g_6|-Fvwc zn)2n4<{EM<5raOXGc{!&g9YFshEuwFL*zWYrH8a6DA=pQ)5AFkg^ms=L zDmdgYXWqu(-y2cZ2G+hWaD4vvZqJSfqlaj=5vcm$*oGb?H8V--z=WDqlz+1Xn8=0y zqiwbSZcFX+i@@hIn^sRe<5Ky=Eyrka;GqH?(3%`Ov%X@?e3EKF=ZUo>NXq5OQYHSj zvU|d)cmaNaf6mGBtC);OE;oX7=}WVH!Y@E_qG!CNcpG)s-<27h!Z!^53$(tbZS-Qp zL+z5c8`b1S%^QwxzYV+*s8!LR=8Jk-=ek?&l|%saDXV5ISm_h4MM>8~D-_zhE?r0# zAjo78tYa5ulIupgDH>_Vn;!@!D3`B=ba$0faav2@hW3SIf4O%{TF>1FdqfXh%soMW zdL@27|L6)Xim%R@bg*3T<-1OA0+(!a4;ySPwgczc4bG-X(l-gY9TtV+p z1csRICg^*etKJI}jMtq{j%4Fru;4OwmZ zAM)t$VE!L7_ci~d(k}!W_<^_n*Ds}glX}ogTa$wsxwXTBE|GzUx5zn(iy>AGB%8+4 znQ-|=@iA}&nv-6f`*8NcU3-$GQrw5xd2M0DiTnybug+^0#K?FZ>Iai_dqadt;tp+Q)B+HoBQF6)9#(C+vHJj;N!WMpvx*)JrsQ$5TqI2NyOVB%6NgOR>oUi^2 zQyf&?=JjL*ZEHZ69S;+VOgh{ub64kDENe8$Ip2#*d9PvjM@I%PN>U#4&=O`@D2zGl z4}i9m7(f#9d8?+mKGH_GDR?Gc_kbuwlKKnuWF`7ukRr#&G)gNHoS&fD4f@?aRPY7x zY)})tr#?PNV#A5Ww9Q7Y0nTD_(wYT;7#pN3VtU)TGI3wV2hHh&PXFLvwrS1GKk_+v ztC^pOwa59b9eXbn8k&|B_#wcleQ2~0XpxCtSvq4sn-1UlINmsMzoLgt8u<(D^T6u! z!8C=hQ^N!kC$qhq9^AsGcSZbg3nMU?pPQ<&TjqHggc0u@(#+>4n`P0sqiyrPR8BJ9 z1}8i{Cw(p`-K>wXc@)P>y92dQmL|~qkz}#~*%gbX`q=9~snohfQwrYX;DkS?!2$y# zZ*-g7n3+N%66F|jD&nGFbqFc#aS~~*%XJ=l0;(r-DgBuI;#BSPY`2eqOunv6Zpbwx z3Aiiq5uH{WFO%6T>_AwHyBhQ=L%b0O(k~1T%ds8Q_hVapi2O3I;}q~Kz??8zIQ1{6 zO3$8tAOC$T9CKF$E#%J;j6Z4X$qid*d_PIsOG#~9xWWg)eT?^m)_@$e4Vj!S?B>Z` zZVoJ>FA+T>2$~h}L*`${D%$f8`AgcEC?WB3L(*>2C*2MZ{pik}x&^uANOPmNZ@Sy!e_OuF=CLD{XI6 z^Vt{{*KxL=UVOnjLtELob?tn49zb3fO4S7&;DfX%23eF(&1Ctuf;PJYJSW)jWqt?0 z@ekzBblF#8A9`{5SE9tp|LjRF#+3mQqA3CFRIxl`gDVS)+ZPFgaJH`G=|>q`DII6( zO{&}1)a8>V;fGseNBv&2Hl|gN`g9&I7A<;j z1|FRq_W<&gll~?R-3I|{p8*FQAA~!N963!_cWsSA)ZX0s>l371!AR};vww=8v z5G5SjqB1+gbsn@U$6l?+R->1Gue!JrdJGgoriZyUMykB%Ojiht@h2GJXXxx_)9$=s z5u-aR(SY4-N$E(ed60z#HNDVwJ9?Wpx)&MOgj(mRBN%0aV zo|(hd3FX7c=*jxIZ{Xd52bCU8j4k)$q{Wl8schR=_ioW&7kP3sP7Q`5 z2@gZPc1N+kZOf??>XZ9}8`ypY4T!jhVOsqm{Yqdq<<9Bx!df-pWm zU>KN@GK!qOtqt%7Er$ES{)E_Agw(UJqN3Zp3NsPmYNN%)RIPk*5HUiWgzKj6URwtK;wlXqeiDz7jv-9n>(6kRwWJ ziJj-WIN5y9E+(fB){d`U?qR5t+qv#;;xw*u05~PkSbo#1OK;oYm;n8UQ4gTWtPc%o zEHIlgI#h_D&cz+&zd*&9Q$6D)zmIS8w12;m)ZJ>Ik3y`#>03Tapqz~fcbQdMy&GWU zAyE{$#S*T095W$SL4^(Ej1)q$x2=k0-~5K$c9&FY^{>}PlLQ#<%t;H+F@vjsGO=IX zn;V*qKU;z+&(;I}+eQKZ`Tod%rH2Ab$NZ>D;4@*3`5qZytDzL&-u1Gdlz8jz_;_9# zMl}kNIF{H{>Um$M;^w!emkZ-Dyl)pG%@LMHx^~V%lRCb%g)?r#VSp#unD2!^`h`O| zV#?;#O>u4x^m8WBu|$H9G^peS|7VULzNdy4-;OrvE?&Nm^;z-R1nMC`Y;uf_BMgxT8LxH;F z9TzAf?|p7WRIUizpjES3+_JT`B@c_IXISt|{oAtERg*<>AoY=WR0=x$!K3Rubt{6n zQ-Xi~tl#^*w_6zT1y!u*$%{5DJZxXoQhpJPlC-#jeZgO0`r4%+Ix~ScMLch>_LT_F z3>mG!67`buM|3A94JcqH~ zA3o$eZ+zjqzP;`cp8WnAe8o)=l@Uhn;j`!s|6Ss8Pe1tKz$AD-$APeU5M+bCJOuat zqbC5I&U7QY#v}e=7S-z^YHBq6;@$J%)V1P0ya#N!&?};8hP*MCsDFMBt(j&zf@XTn|H0X17IfR_n9q>*7$Qk0bjmn9yge!DZ+ME}0ns5vIFLF8a z;|uF|Ua_K8TiJTprogh#MhgdD47patlzoUY5h4$%mUpe7EBv5r!Vdyg69Z~SV}ll0 z7?$}f(emOiP~lXzHSgTcI?tO&AFiUZ!3S_^r8<2}9_@NJdJ1LIM2o5%8|zgCO`HS5 zS&&Ou-BNjQB5|VPj6v<2i<#I=W&C!b@eAw<$7c~y+-z|1*wKdg)H<7Y2S|D2G3y3s zDw^5*D+;y$pH&NV3WJgfRB-fR`&K##Xv|I>I`#bv^ka3jm9$K{_z}8#v${EXwiV(d z4A>dg59QHN7u^P3s>DF~I79*$P{?x{-AF;Lvi@X-WQ5J0hETvF*P2%GIc{n?l2^dmRQD(p>YL8d~tn64m!gB%4x36jRWYt*+V-*#P6A*tD;%f8mt5}d*(OcR zxFBv4`)BMqf7Y)`_!3^o(x@LL+-W}@;#pTEg5=Ib4NC4OeZJ9d=d(`mm^>ININ20{ z%=hg1R25hDDmwEFX`>{#$^nq5fm;2k_gK}fzU!|zq&>SO(BYmq(oW*j>kI4t@_ZJ$ zoLO7+!4oIn&t=ur$(Cf%i+=)vOe#c5mnJ($#a`e0cKaLsuNZnDz~m|q07Y)48~4OB zq};cYX%#a#3DaKv9Gt)4&tA+JQBF-og8i!IDhqZ}x^u_+eOZ_!)*@DTdRn^W1x@KC zzIX!cTN+4BOf;_T4?xAewVrKesz7}hcej%^Y#0?R8hi1vR93m}^zpu_5R6_sV9^B_ zjd)qJ@N&mLkA0A~y>{yZ9(XL!h6>Ovr_53sU!)CVsD=j72apQRB=Do2_rGogg;(Yj ztVG00QzFkk>2HTteN;tn>bQ?)4=UQ`=VeHidGfjX@a*3fqQp=cndlIj6hlu_y_l~jIhza_!&ZU2>cPmJ*N z=;0@GD|5lkv#lR>(!1yoFL36(qBT`=?31#=bB1*~&4pV7VtYc{!b7KzZ=KT_f37mV zf0=LA-0Vy4g?H+L9G}p1yvB*V_{I9pEOIq86J%JWJ5t)=UZcyTyMu?vYntG)P$f=} zodlsFdp1P0g)r4w1N3J#{`JDVss{?g*xCb3l!1TFUyOguz43?Am`68UjOaxU9^M@U zDbuwc=`~POEI!gSVWq(YYiO=%`x%D1m7i%muS8%p7DR_CN&~t%Ss!20Thw!2(z`GV zwC2Qm$}z4IO-%;9TD>fxaL)JK2NzsDvB_#9i+C65g_u&n=s1803XOdo%TPX2{XnqC z%VBC(MqfbfHNoQtX#3CU3MBTslS;+j);M&#fP0ZE3lV1q00}T(UV9Muc;t=|0`U^?`BO#M7o75PL<$U;U3;$dJw*#@am*FZ^5VBj?6$D$59<1E z23`oHEYO|cK=!?v?9y|*B8c{oXjSY~r!)?Y_wJ^kr=0Owk@+#GX={I^H{FoIhxDvJ z7hTgCWPGpokS7ef>USTURnU{d+OzWdc?VY!Oj=V%lPg)_UtFFVAh&*L>^|Ran3vjo1Huay`tRJN#BX?uh zv%~^1KhE&S)LCZJmM?lanJxIap7pF0@yeV(HE9_c-^D2L3B%FW9P%p>YwCq-MTPvT zqOUDx;Px=KKb~@IBex8tX<>lfK_egO^h;#PcG7f5scn`*`KJ^Z3pVz-ru+j-*fcX> zyDg_3w)$~ZIzU%*e(dguV9#rUigMe~lD^f*xcC&jaxQZKf7?SCo8=1SD1?yxoF6AR z_P~-SPc3_%&22l+8I5WRo>isu$OBi~g~P8VWma4mr_JF0H85zP1>KQ|(1yF`7kE z!xRSZ%8V$5TD#jdN6E8>*#6kn{<9@c^q;PK@tq{@3yVK-q5C66)5pO)0_u{l+O>Wq zlY4Q~dYu)LReJ>IoFq3Ya`jIXO(#y24=69KJ>6BgYNnTcN+9ltqQK+{6RoTM3*~dG zMF9&|17#mUA1z3GG6nlN{f}e6H_yG#mF-;d^uhyh5@7VWPoJ0V&bD2@BqyW_o219bi@Ch{&Hkw^rNaLcllW&*1AZ_P1@0F zROgn_qJ1EWUK2#?#d*vOe(eaa`+Y?P<1CyRu{65}=!yMK8~!93ERH@c+vw#QNV)Hl zTd2oIe!vm<``0s5hg(vSZUl52nRX>M1Uej|Cyh&~Z4bMBdVEs>Ai~5w@d%Xw70uh8 ze{J1GT6JPnCEpCme2x2864w#s`8T8yF|-BwFod0e<(O;wEk92CYunQwBXIuYxU>Vvn!y#tH2zmZ zr_C_A)YKUzHa_dds|{?8b4UH^i7+@)VR`8BX2CtBd`|0e$stUosY zpitQSdEmoYc9UL(!OAQ~eqBj?2)+Vqzk0!U>_a1tSw>J!e`Q1o#49}HrnR{|F^AoK zyFA|IA!)K7&7V{FKYa$v5|wsRk6u@&k}o{Vx*-~VVJ>3ngPCy?1H6Cb%Y69Jx!1!D z-+;gv)m6}8`IE$s-zlO-l)N_uADea=$ruvs1Y5#7AYoXG14ya5t)j{PHNoPBZ;^4u z%4FeJwl0gf#V-`b>D_Kf7E@>IiE0GXt6Z&sfkHMbqFF3y3`KA zEG&s%6RaGqK6XZYX|$nFLHEO*AKo?n!H7+W7bbX4@Wu=LijXqA`^gt>@I3x(iQPe8 zp|UC_+eU~Ou^H%L@`4X}p2>9-I<~}pmZMb-^TMa={W3RdWDCWXIvbp)?s(Z|gcXx1c zO#odc#?UE5SB(XX01vyOD)HI9Yr|e}ee(!gy;#MtgnR0@(0#@79AY0If+sQb0ceoK z=T!PraGOyhJYMcxv|q|;=kvB}?>T%`My9Zp6`&Y6ot!FPKN%w-Dyn3iREvOfIK z(5<9=7Yv<@h%Jh=qV^kwc@b$2Vun4lK_A~aqBP8k&yvM ztZVezz19U=OXhR4?*lGpPb)8MtOAOQPITdMk0kVSuX)U<+UL~DY1yP%lo?J8O!ngk z3dObwa?+L2zE^K`d^7!hR9)47^T?#Nk?|GZUTc;sKfsPr|j77G$# zsDp6y5;S9EmnJTnvw<+ND4$*o**LvZmdKjBce3he#-5eN(y|?ViKZ_Yw~@h0Wz@x)|uf-z6T#%#8W0TL}=cUY&rdO zs1Ln#3aAI5`sD5?UF^iYyfu;axW%@-EOMfSnkhu7|{#C<-Y>t zC;8m}6g~b!6!~xdg{=PJ[j^v~*MWdE7h|IcN(|J3IG-gSBpJ9#WN&Q3wcfgXRD0t~BaAp5)tEMQ3d}&!(ul^3z#Vd)Dqq;5gOWy?K|7(=3z2r0_rO_vu zU^rPRMT_y!gnJjR=3bT1JXWy^t?Zj07%%zIqaATgW)ZRsFC=9X{G~jVPYq?Jk2X27 z9QK8~H~ljz(IoNTXHGYxZ%bz0D1SSGEb}dL3aoYM-;0EK=yfa5^-;AEL_@fo8?0w ziOOCn@_sC{dlaM66}L^QMWW{@oQYmOcX*WhVqCK_I0_m%B{i^H$7wcWk0b=QUK<

      {UOjDD!UJN$EPzJ1>aZYY}<~Wb%KE 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

      )@&e|Jrw`*rk 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.info(`Info: ${e}`)}function warn(e){Kt>=ie&&console.warn(`Warning: ${e}`)}function unreachable(e){throw new Error(e)}function assert(e,t){e||unreachable(t)}function createValidAbsoluteUrl(e,t=null,a=null){if(!e)return null;if(a&&"string"==typeof e){if(a.addDefaultProtocol&&e.startsWith("www.")){const t=e.match(/\./g);t?.length>=2&&(e=`http://${e}`)}if(a.tryConvertEncoding)try{e=stringToUTF8String(e)}catch{}}const r=t?URL.parse(e,t):URL.parse(e);return function _isValidProtocol(e){switch(e?.protocol){case"http:":case"https:":case"ftp:":case"mailto:":case"tel:":return!0;default:return!1}}(r)?r:null}function shadow(e,t,a,r=!1){Object.defineProperty(e,t,{value:a,enumerable:!r,configurable:!0,writable:!1});return a}const Jt=function BaseExceptionClosure(){function BaseException(e,t){this.message=e;this.name=t}BaseException.prototype=new Error;BaseException.constructor=BaseException;return BaseException}();class PasswordException extends Jt{constructor(e,t){super(e,"PasswordException");this.code=t}}class UnknownErrorException extends Jt{constructor(e,t){super(e,"UnknownErrorException");this.details=t}}class InvalidPDFException extends Jt{constructor(e){super(e,"InvalidPDFException")}}class ResponseException extends Jt{constructor(e,t,a){super(e,"ResponseException");this.status=t;this.missing=a}}class FormatError extends Jt{constructor(e){super(e,"FormatError")}}class AbortException extends Jt{constructor(e){super(e,"AbortException")}}function bytesToString(e){"object"==typeof e&&void 0!==e?.length||unreachable("Invalid argument for bytesToString");const t=e.length,a=8192;if(t>24&255,e>>16&255,e>>8&255,255&e)}function objectSize(e){return Object.keys(e).length}class FeatureTest{static get isLittleEndian(){return shadow(this,"isLittleEndian",function isLittleEndian(){const e=new Uint8Array(4);e[0]=1;return 1===new Uint32Array(e.buffer,0,1)[0]}())}static get isEvalSupported(){return shadow(this,"isEvalSupported",function isEvalSupported(){try{new Function("");return!0}catch{return!1}}())}static get isOffscreenCanvasSupported(){return shadow(this,"isOffscreenCanvasSupported","undefined"!=typeof OffscreenCanvas)}static get isImageDecoderSupported(){return shadow(this,"isImageDecoderSupported","undefined"!=typeof ImageDecoder)}static get platform(){const{platform:e,userAgent:t}=navigator;return shadow(this,"platform",{isAndroid:t.includes("Android"),isLinux:e.includes("Linux"),isMac:e.includes("Mac"),isWindows:e.includes("Win"),isFirefox:t.includes("Firefox")})}static get isCSSRoundSupported(){return shadow(this,"isCSSRoundSupported",globalThis.CSS?.supports?.("width: round(1.5px, 1px)"))}}const Yt=Array.from(Array(256).keys(),e=>e.toString(16).padStart(2,"0"));class Util{static makeHexColor(e,t,a){return`#${Yt[e]}${Yt[t]}${Yt[a]}`}static domMatrixToTransform(e){return[e.a,e.b,e.c,e.d,e.e,e.f]}static scaleMinMax(e,t){let a;if(e[0]){if(e[0]<0){a=t[0];t[0]=t[2];t[2]=a}t[0]*=e[0];t[2]*=e[0];if(e[3]<0){a=t[1];t[1]=t[3];t[3]=a}t[1]*=e[3];t[3]*=e[3]}else{a=t[0];t[0]=t[1];t[1]=a;a=t[2];t[2]=t[3];t[3]=a;if(e[1]<0){a=t[1];t[1]=t[3];t[3]=a}t[1]*=e[1];t[3]*=e[1];if(e[2]<0){a=t[0];t[0]=t[2];t[2]=a}t[0]*=e[2];t[2]*=e[2]}t[0]+=e[4];t[1]+=e[5];t[2]+=e[4];t[3]+=e[5]}static transform(e,t){return[e[0]*t[0]+e[2]*t[1],e[1]*t[0]+e[3]*t[1],e[0]*t[2]+e[2]*t[3],e[1]*t[2]+e[3]*t[3],e[0]*t[4]+e[2]*t[5]+e[4],e[1]*t[4]+e[3]*t[5]+e[5]]}static multiplyByDOMMatrix(e,t){return[e[0]*t.a+e[2]*t.b,e[1]*t.a+e[3]*t.b,e[0]*t.c+e[2]*t.d,e[1]*t.c+e[3]*t.d,e[0]*t.e+e[2]*t.f+e[4],e[1]*t.e+e[3]*t.f+e[5]]}static applyTransform(e,t,a=0){const r=e[a],i=e[a+1];e[a]=r*t[0]+i*t[2]+t[4];e[a+1]=r*t[1]+i*t[3]+t[5]}static applyTransformToBezier(e,t,a=0){const r=t[0],i=t[1],n=t[2],s=t[3],o=t[4],c=t[5];for(let t=0;t<6;t+=2){const l=e[a+t],h=e[a+t+1];e[a+t]=l*r+h*n+o;e[a+t+1]=l*i+h*s+c}}static applyInverseTransform(e,t){const a=e[0],r=e[1],i=t[0]*t[3]-t[1]*t[2];e[0]=(a*t[3]-r*t[2]+t[2]*t[5]-t[4]*t[3])/i;e[1]=(-a*t[1]+r*t[0]+t[4]*t[1]-t[5]*t[0])/i}static axialAlignedBoundingBox(e,t,a){const r=t[0],i=t[1],n=t[2],s=t[3],o=t[4],c=t[5],l=e[0],h=e[1],u=e[2],d=e[3];let f=r*l+o,g=f,p=r*u+o,m=p,b=s*h+c,y=b,w=s*d+c,x=w;if(0!==i||0!==n){const e=i*l,t=i*u,a=n*h,r=n*d;f+=a;m+=a;p+=r;g+=r;b+=e;x+=e;w+=t;y+=t}a[0]=Math.min(a[0],f,p,g,m);a[1]=Math.min(a[1],b,w,y,x);a[2]=Math.max(a[2],f,p,g,m);a[3]=Math.max(a[3],b,w,y,x)}static inverseTransform(e){const t=e[0]*e[3]-e[1]*e[2];return[e[3]/t,-e[1]/t,-e[2]/t,e[0]/t,(e[2]*e[5]-e[4]*e[3])/t,(e[4]*e[1]-e[5]*e[0])/t]}static singularValueDecompose2dScale(e,t){const a=e[0],r=e[1],i=e[2],n=e[3],s=a**2+r**2,o=a*i+r*n,c=i**2+n**2,l=(s+c)/2,h=Math.sqrt(l**2-(s*c-o**2));t[0]=Math.sqrt(l+h||1);t[1]=Math.sqrt(l-h||1)}static normalizeRect(e){const t=e.slice(0);if(e[0]>e[2]){t[0]=e[2];t[2]=e[0]}if(e[1]>e[3]){t[1]=e[3];t[3]=e[1]}return t}static intersect(e,t){const a=Math.max(Math.min(e[0],e[2]),Math.min(t[0],t[2])),r=Math.min(Math.max(e[0],e[2]),Math.max(t[0],t[2]));if(a>r)return null;const i=Math.max(Math.min(e[1],e[3]),Math.min(t[1],t[3])),n=Math.min(Math.max(e[1],e[3]),Math.max(t[1],t[3]));return i>n?null:[a,i,r,n]}static pointBoundingBox(e,t,a){a[0]=Math.min(a[0],e);a[1]=Math.min(a[1],t);a[2]=Math.max(a[2],e);a[3]=Math.max(a[3],t)}static rectBoundingBox(e,t,a,r,i){i[0]=Math.min(i[0],e,a);i[1]=Math.min(i[1],t,r);i[2]=Math.max(i[2],e,a);i[3]=Math.max(i[3],t,r)}static#e(e,t,a,r,i,n,s,o,c,l){if(c<=0||c>=1)return;const h=1-c,u=c*c,d=u*c,f=h*(h*(h*e+3*c*t)+3*u*a)+d*r,g=h*(h*(h*i+3*c*n)+3*u*s)+d*o;l[0]=Math.min(l[0],f);l[1]=Math.min(l[1],g);l[2]=Math.max(l[2],f);l[3]=Math.max(l[3],g)}static#t(e,t,a,r,i,n,s,o,c,l,h,u){if(Math.abs(c)<1e-12){Math.abs(l)>=1e-12&&this.#e(e,t,a,r,i,n,s,o,-h/l,u);return}const d=l**2-4*h*c;if(d<0)return;const f=Math.sqrt(d),g=2*c;this.#e(e,t,a,r,i,n,s,o,(-l+f)/g,u);this.#e(e,t,a,r,i,n,s,o,(-l-f)/g,u)}static bezierBoundingBox(e,t,a,r,i,n,s,o,c){c[0]=Math.min(c[0],e,s);c[1]=Math.min(c[1],t,o);c[2]=Math.max(c[2],e,s);c[3]=Math.max(c[3],t,o);this.#t(e,a,i,s,t,r,n,o,3*(3*(a-i)-e+s),6*(e-2*a+i),3*(a-e),c);this.#t(e,a,i,s,t,r,n,o,3*(3*(r-n)-t+o),6*(t-2*r+n),3*(r-t),c)}}const Zt=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,728,711,710,729,733,731,730,732,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8226,8224,8225,8230,8212,8211,402,8260,8249,8250,8722,8240,8222,8220,8221,8216,8217,8218,8482,64257,64258,321,338,352,376,381,305,322,339,353,382,0,8364];function stringToPDFString(e,t=!1){if(e[0]>="ï"){let a;if("þ"===e[0]&&"ÿ"===e[1]){a="utf-16be";e.length%2==1&&(e=e.slice(0,-1))}else if("ÿ"===e[0]&&"þ"===e[1]){a="utf-16le";e.length%2==1&&(e=e.slice(0,-1))}else"ï"===e[0]&&"»"===e[1]&&"¿"===e[2]&&(a="utf-8");if(a)try{const r=new TextDecoder(a,{fatal:!0}),i=stringToBytes(e),n=r.decode(i);return t||!n.includes("")?n:n.replaceAll(/\x1b[^\x1b]*(?:\x1b|$)/g,"")}catch(e){warn(`stringToPDFString: "${e}".`)}}const a=[];for(let r=0,i=e.length;rYt[e]).join("")}"function"!=typeof Promise.try&&(Promise.try=function(e,...t){return new Promise(a=>{a(e(...t))})});"function"!=typeof Math.sumPrecise&&(Math.sumPrecise=function(e){return e.reduce((e,t)=>e+t,0)});const ta=Symbol("CIRCULAR_REF"),aa=Symbol("EOF");let ra=Object.create(null),ia=Object.create(null),na=Object.create(null);class Name{constructor(e){this.name=e}static get(e){return ia[e]||=new Name(e)}}class Cmd{constructor(e){this.cmd=e}static get(e){return ra[e]||=new Cmd(e)}}const sa=function nonSerializableClosure(){return sa};class Dict{constructor(e=null){this._map=new Map;this.xref=e;this.objId=null;this.suppressEncryption=!1;this.__nonSerializable__=sa}assignXref(e){this.xref=e}get size(){return this._map.size}get(e,t,a){let r=this._map.get(e);if(void 0===r&&void 0!==t){r=this._map.get(t);void 0===r&&void 0!==a&&(r=this._map.get(a))}return r instanceof Ref&&this.xref?this.xref.fetch(r,this.suppressEncryption):r}async getAsync(e,t,a){let r=this._map.get(e);if(void 0===r&&void 0!==t){r=this._map.get(t);void 0===r&&void 0!==a&&(r=this._map.get(a))}return r instanceof Ref&&this.xref?this.xref.fetchAsync(r,this.suppressEncryption):r}getArray(e,t,a){let r=this._map.get(e);if(void 0===r&&void 0!==t){r=this._map.get(t);void 0===r&&void 0!==a&&(r=this._map.get(a))}r instanceof Ref&&this.xref&&(r=this.xref.fetch(r,this.suppressEncryption));if(Array.isArray(r)){r=r.slice();for(let e=0,t=r.length;e{unreachable("Should not call `set` on the empty dictionary.")};return shadow(this,"empty",e)}static merge({xref:e,dictArray:t,mergeSubDicts:a=!1}){const r=new Dict(e),i=new Map;for(const e of t)if(e instanceof Dict)for(const[t,r]of e._map){let e=i.get(t);if(void 0===e){e=[];i.set(t,e)}else if(!(a&&r instanceof Dict))continue;e.push(r)}for(const[t,a]of i){if(1===a.length||!(a[0]instanceof Dict)){r._map.set(t,a[0]);continue}const i=new Dict(e);for(const e of a)for(const[t,a]of e._map)i._map.has(t)||i._map.set(t,a);i.size>0&&r._map.set(t,i)}i.clear();return r.size>0?r:Dict.empty}clone(){const e=new Dict(this.xref);for(const t of this.getKeys())e.set(t,this.getRaw(t));return e}delete(e){this._map.delete(e)}}class Ref{constructor(e,t){this.num=e;this.gen=t}toString(){return 0===this.gen?`${this.num}R`:`${this.num}R${this.gen}`}static fromString(e){const t=na[e];if(t)return t;const a=/^(\d+)R(\d*)$/.exec(e);return a&&"0"!==a[1]?na[e]=new Ref(parseInt(a[1]),a[2]?parseInt(a[2]):0):null}static get(e,t){const a=0===t?`${e}R`:`${e}R${t}`;return na[a]||=new Ref(e,t)}}class RefSet{constructor(e=null){this._set=new Set(e?._set)}has(e){return this._set.has(e.toString())}put(e){this._set.add(e.toString())}remove(e){this._set.delete(e.toString())}[Symbol.iterator](){return this._set.values()}clear(){this._set.clear()}}class RefSetCache{constructor(){this._map=new Map}get size(){return this._map.size}get(e){return this._map.get(e.toString())}has(e){return this._map.has(e.toString())}put(e,t){this._map.set(e.toString(),t)}putAlias(e,t){this._map.set(e.toString(),this.get(t))}[Symbol.iterator](){return this._map.values()}clear(){this._map.clear()}*values(){yield*this._map.values()}*items(){for(const[e,t]of this._map)yield[Ref.fromString(e),t]}}function isName(e,t){return e instanceof Name&&(void 0===t||e.name===t)}function isCmd(e,t){return e instanceof Cmd&&(void 0===t||e.cmd===t)}function isDict(e,t){return e instanceof Dict&&(void 0===t||isName(e.get("Type"),t))}function isRefsEqual(e,t){return e.num===t.num&&e.gen===t.gen}class BaseStream{get length(){unreachable("Abstract getter `length` accessed")}get isEmpty(){unreachable("Abstract getter `isEmpty` accessed")}get isDataLoaded(){return shadow(this,"isDataLoaded",!0)}getByte(){unreachable("Abstract method `getByte` called")}getBytes(e){unreachable("Abstract method `getBytes` called")}async getImageData(e,t){return this.getBytes(e,t)}async asyncGetBytes(){unreachable("Abstract method `asyncGetBytes` called")}get isAsync(){return!1}get isAsyncDecoder(){return!1}get canAsyncDecodeImageFromBuffer(){return!1}async getTransferableImage(){return null}peekByte(){const e=this.getByte();-1!==e&&this.pos--;return e}peekBytes(e){const t=this.getBytes(e);this.pos-=t.length;return t}getUint16(){const e=this.getByte(),t=this.getByte();return-1===e||-1===t?-1:(e<<8)+t}getInt32(){return(this.getByte()<<24)+(this.getByte()<<16)+(this.getByte()<<8)+this.getByte()}getByteRange(e,t){unreachable("Abstract method `getByteRange` called")}getString(e){return bytesToString(this.getBytes(e))}skip(e){this.pos+=e||1}reset(){unreachable("Abstract method `reset` called")}moveStart(){unreachable("Abstract method `moveStart` called")}makeSubStream(e,t,a=null){unreachable("Abstract method `makeSubStream` called")}getBaseStreams(){return null}}const oa=/^[1-9]\.\d$/,ca=2**31-1,la=[1,0,0,1,0,0],ha=["ColorSpace","ExtGState","Font","Pattern","Properties","Shading","XObject"],ua=["ExtGState","Font","Properties","XObject"];function getLookupTableFactory(e){let t;return function(){if(e){t=Object.create(null);e(t);e=null}return t}}class MissingDataException extends Jt{constructor(e,t){super(`Missing data [${e}, ${t})`,"MissingDataException");this.begin=e;this.end=t}}class ParserEOFException extends Jt{constructor(e){super(e,"ParserEOFException")}}class XRefEntryException extends Jt{constructor(e){super(e,"XRefEntryException")}}class XRefParseException extends Jt{constructor(e){super(e,"XRefParseException")}}function arrayBuffersToBytes(e){const t=e.length;if(0===t)return new Uint8Array(0);if(1===t)return new Uint8Array(e[0]);let a=0;for(let r=0;r0,"The number should be a positive integer.");const a="M".repeat(e/1e3|0)+da[e%1e3/100|0]+da[10+(e%100/10|0)]+da[20+e%10];return t?a.toLowerCase():a}function log2(e){return e>0?Math.ceil(Math.log2(e)):0}function readInt8(e,t){return e[t]<<24>>24}function readInt16(e,t){return(e[t]<<24|e[t+1]<<16)>>16}function readUint16(e,t){return e[t]<<8|e[t+1]}function readUint32(e,t){return(e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3])>>>0}function isWhiteSpace(e){return 32===e||9===e||13===e||10===e}function isNumberArray(e,t){return Array.isArray(e)?(null===t||e.length===t)&&e.every(e=>"number"==typeof e):ArrayBuffer.isView(e)&&!(e instanceof BigInt64Array||e instanceof BigUint64Array)&&(null===t||e.length===t)}function lookupMatrix(e,t){return isNumberArray(e,6)?e:t}function lookupRect(e,t){return isNumberArray(e,4)?e:t}function lookupNormalRect(e,t){return isNumberArray(e,4)?Util.normalizeRect(e):t}function parseXFAPath(e){const t=/(.+)\[(\d+)\]$/;return e.split(".").map(e=>{const a=e.match(t);return a?{name:a[1],pos:parseInt(a[2],10)}:{name:e,pos:0}})}function escapePDFName(e){const t=[];let a=0;for(let r=0,i=e.length;r126||35===i||40===i||41===i||60===i||62===i||91===i||93===i||123===i||125===i||47===i||37===i){a"\n"===e?"\\n":"\r"===e?"\\r":`\\${e}`)}function _collectJS(e,t,a,r){if(!e)return;let i=null;if(e instanceof Ref){if(r.has(e))return;i=e;r.put(i);e=t.fetch(e)}if(Array.isArray(e))for(const i of e)_collectJS(i,t,a,r);else if(e instanceof Dict){if(isName(e.get("S"),"JavaScript")){const t=e.get("JS");let r;t instanceof BaseStream?r=t.getString():"string"==typeof t&&(r=t);r&&=stringToPDFString(r,!0).replaceAll("\0","");r&&a.push(r.trim())}_collectJS(e.getRaw("Next"),t,a,r)}i&&r.remove(i)}function collectActions(e,t,a){const r=Object.create(null),i=getInheritableProperty({dict:t,key:"AA",stopWhenFound:!1});if(i)for(let t=i.length-1;t>=0;t--){const n=i[t];if(n instanceof Dict)for(const t of n.getKeys()){const i=a[t];if(!i)continue;const s=[];_collectJS(n.getRaw(t),e,s,new RefSet);s.length>0&&(r[i]=s)}}if(t.has("A")){const a=[];_collectJS(t.get("A"),e,a,new RefSet);a.length>0&&(r.Action=a)}return objectSize(r)>0?r:null}const fa={60:"<",62:">",38:"&",34:""",39:"'"};function*codePointIter(e){for(let t=0,a=e.length;t55295&&(a<57344||a>65533)&&t++;yield a}}function encodeToXmlString(e){const t=[];let a=0;for(let r=0,i=e.length;r55295&&(i<57344||i>65533)&&r++;a=r+1}}if(0===t.length)return e;a: ${e}.`);return!1}return!0}function validateCSSFont(e){const t=new Set(["100","200","300","400","500","600","700","800","900","1000","normal","bold","bolder","lighter"]),{fontFamily:a,fontWeight:r,italicAngle:i}=e;if(!validateFontName(a,!0))return!1;const n=r?r.toString():"";e.fontWeight=t.has(n)?n:"400";const s=parseFloat(i);e.italicAngle=isNaN(s)||s<-90||s>90?"14":i.toString();return!0}function recoverJsURL(e){const t=new RegExp("^\\s*("+["app.launchURL","window.open","xfa.host.gotoURL"].join("|").replaceAll(".","\\.")+")\\((?:'|\")([^'\"]*)(?:'|\")(?:,\\s*(\\w+)\\)|\\))","i").exec(e);return t?.[2]?{url:t[2],newWindow:"app.launchURL"===t[1]&&"true"===t[3]}:null}function numberToString(e){if(Number.isInteger(e))return e.toString();const t=Math.round(100*e);return t%100==0?(t/100).toString():t%10==0?e.toFixed(1):e.toFixed(2)}function getNewAnnotationsMap(e){if(!e)return null;const t=new Map;for(const[a,r]of e){if(!a.startsWith(f))continue;let e=t.get(r.pageIndex);if(!e){e=[];t.set(r.pageIndex,e)}e.push(r)}return t.size>0?t:null}function stringToAsciiOrUTF16BE(e){return null==e||function isAscii(e){if("string"!=typeof e)return!1;return!e||/^[\x00-\x7F]*$/.test(e)}(e)?e:stringToUTF16String(e,!0)}function stringToUTF16HexString(e){const t=[];for(let a=0,r=e.length;a>8&255],Yt[255&r])}return t.join("")}function stringToUTF16String(e,t=!1){const a=[];t&&a.push("þÿ");for(let t=0,r=e.length;t>8&255),String.fromCharCode(255&r))}return a.join("")}function getRotationMatrix(e,t,a){switch(e){case 90:return[0,1,-1,0,t,0];case 180:return[-1,0,0,-1,t,a];case 270:return[0,-1,1,0,0,a];default:throw new Error("Invalid rotation")}}function getSizeInBytes(e){return Math.ceil(Math.ceil(Math.log2(1+e))/8)}class QCMS{static#a=null;static _memory=null;static _mustAddAlpha=!1;static _destBuffer=null;static _destOffset=0;static _destLength=0;static _cssColor="";static _makeHexColor=null;static get _memoryArray(){const e=this.#a;return e?.byteLength?e:this.#a=new Uint8Array(this._memory.buffer)}}let ga;const pa="undefined"!=typeof TextDecoder?new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}):{decode:()=>{throw Error("TextDecoder not available")}};"undefined"!=typeof TextDecoder&&pa.decode();let ma=null;function getUint8ArrayMemory0(){null!==ma&&0!==ma.byteLength||(ma=new Uint8Array(ga.memory.buffer));return ma}let ba=0;function passArray8ToWasm0(e,t){const a=t(1*e.length,1)>>>0;getUint8ArrayMemory0().set(e,a/1);ba=e.length;return a}const ya=Object.freeze({RGB8:0,0:"RGB8",RGBA8:1,1:"RGBA8",BGRA8:2,2:"BGRA8",Gray8:3,3:"Gray8",GrayA8:4,4:"GrayA8",CMYK:5,5:"CMYK"}),wa=Object.freeze({Perceptual:0,0:"Perceptual",RelativeColorimetric:1,1:"RelativeColorimetric",Saturation:2,2:"Saturation",AbsoluteColorimetric:3,3:"AbsoluteColorimetric"});function __wbg_get_imports(){const e={wbg:{}};e.wbg.__wbg_copyresult_b08ee7d273f295dd=function(e,t){!function copy_result(e,t){const{_mustAddAlpha:a,_destBuffer:r,_destOffset:i,_destLength:n,_memoryArray:s}=QCMS;if(t!==n)if(a)for(let a=e,n=e+t,o=i;a>>0,t>>>0)};e.wbg.__wbg_copyrgb_d60ce17bb05d9b67=function(e){!function copy_rgb(e){const{_destBuffer:t,_destOffset:a,_memoryArray:r}=QCMS;t[a]=r[e];t[a+1]=r[e+1];t[a+2]=r[e+2]}(e>>>0)};e.wbg.__wbg_makecssRGB_893bf0cd9fdb302d=function(e){!function make_cssRGB(e){const{_memoryArray:t}=QCMS;QCMS._cssColor=QCMS._makeHexColor(t[e],t[e+1],t[e+2])}(e>>>0)};e.wbg.__wbindgen_init_externref_table=function(){const e=ga.__wbindgen_export_0,t=e.grow(4);e.set(0,void 0);e.set(t+0,void 0);e.set(t+1,null);e.set(t+2,!0);e.set(t+3,!1)};e.wbg.__wbindgen_throw=function(e,t){throw new Error(function getStringFromWasm0(e,t){e>>>=0;return pa.decode(getUint8ArrayMemory0().subarray(e,e+t))}(e,t))};return e}function __wbg_finalize_init(e,t){ga=e.exports;__wbg_init.__wbindgen_wasm_module=t;ma=null;ga.__wbindgen_start();return ga}async function __wbg_init(e){if(void 0!==ga)return ga;void 0!==e&&(Object.getPrototypeOf(e)===Object.prototype?({module_or_path:e}=e):console.warn("using deprecated parameters for the initialization function; pass a single object instead"));const t=__wbg_get_imports();("string"==typeof e||"function"==typeof Request&&e instanceof Request||"function"==typeof URL&&e instanceof URL)&&(e=fetch(e));const{instance:a,module:r}=await async function __wbg_load(e,t){if("function"==typeof Response&&e instanceof Response){if("function"==typeof WebAssembly.instantiateStreaming)try{return await WebAssembly.instantiateStreaming(e,t)}catch(t){if("application/wasm"==e.headers.get("Content-Type"))throw t;console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",t)}const a=await e.arrayBuffer();return await WebAssembly.instantiate(a,t)}{const a=await WebAssembly.instantiate(e,t);return a instanceof WebAssembly.Instance?{instance:a,module:e}:a}}(await e,t);return __wbg_finalize_init(a,r)}class ColorSpace{static#r=new Uint8ClampedArray(3);constructor(e,t){this.name=e;this.numComps=t}getRgb(e,t,a=new Uint8ClampedArray(3)){this.getRgbItem(e,t,a,0);return a}getRgbHex(e,t){const a=this.getRgb(e,t,ColorSpace.#r);return Util.makeHexColor(a[0],a[1],a[2])}getRgbItem(e,t,a,r){unreachable("Should not call ColorSpace.getRgbItem")}getRgbBuffer(e,t,a,r,i,n,s){unreachable("Should not call ColorSpace.getRgbBuffer")}getOutputLength(e,t){unreachable("Should not call ColorSpace.getOutputLength")}isPassthrough(e){return!1}isDefaultDecode(e,t){return ColorSpace.isDefaultDecode(e,this.numComps)}fillRgb(e,t,a,r,i,n,s,o,c){const l=t*a;let h=null;const u=1<u&&"DeviceGray"!==this.name&&"DeviceRGB"!==this.name){const t=s<=8?new Uint8Array(u):new Uint16Array(u);for(let e=0;e=.99554525?1:MathClamp(1.055*e**(1/2.4)-.055,0,1)}#b(e){return e<0?-this.#b(-e):e>8?((e+16)/116)**3:e*CalRGBCS.#d}#y(e,t,a){if(0===e[0]&&0===e[1]&&0===e[2]){a[0]=t[0];a[1]=t[1];a[2]=t[2];return}const r=this.#b(0),i=(1-r)/(1-this.#b(e[0])),n=1-i,s=(1-r)/(1-this.#b(e[1])),o=1-s,c=(1-r)/(1-this.#b(e[2])),l=1-c;a[0]=t[0]*i+n;a[1]=t[1]*s+o;a[2]=t[2]*c+l}#w(e,t,a){if(1===e[0]&&1===e[2]){a[0]=t[0];a[1]=t[1];a[2]=t[2];return}const r=a;this.#f(CalRGBCS.#n,t,r);const i=CalRGBCS.#l;this.#g(e,r,i);this.#f(CalRGBCS.#s,i,a)}#x(e,t,a){const r=a;this.#f(CalRGBCS.#n,t,r);const i=CalRGBCS.#l;this.#p(e,r,i);this.#f(CalRGBCS.#s,i,a)}#i(e,t,a,r,i){const n=MathClamp(e[t]*i,0,1),s=MathClamp(e[t+1]*i,0,1),o=MathClamp(e[t+2]*i,0,1),c=1===n?1:n**this.GR,l=1===s?1:s**this.GG,h=1===o?1:o**this.GB,u=this.MXA*c+this.MXB*l+this.MXC*h,d=this.MYA*c+this.MYB*l+this.MYC*h,f=this.MZA*c+this.MZB*l+this.MZC*h,g=CalRGBCS.#h;g[0]=u;g[1]=d;g[2]=f;const p=CalRGBCS.#u;this.#w(this.whitePoint,g,p);const m=CalRGBCS.#h;this.#y(this.blackPoint,p,m);const b=CalRGBCS.#u;this.#x(CalRGBCS.#c,m,b);const y=CalRGBCS.#h;this.#f(CalRGBCS.#o,b,y);a[r]=255*this.#m(y[0]);a[r+1]=255*this.#m(y[1]);a[r+2]=255*this.#m(y[2])}getRgbItem(e,t,a,r){this.#i(e,t,a,r,1)}getRgbBuffer(e,t,a,r,i,n,s){const o=1/((1<this.amax||this.bmin>this.bmax){info("Invalid Range, falling back to defaults");this.amin=-100;this.amax=100;this.bmin=-100;this.bmax=100}}#S(e){return e>=6/29?e**3:108/841*(e-4/29)}#A(e,t,a,r){return a+e*(r-a)/t}#i(e,t,a,r,i){let n=e[t],s=e[t+1],o=e[t+2];if(!1!==a){n=this.#A(n,a,0,100);s=this.#A(s,a,this.amin,this.amax);o=this.#A(o,a,this.bmin,this.bmax)}s>this.amax?s=this.amax:sthis.bmax?o=this.bmax:ofunction qcms_convert_one(e,t,a){ga.qcms_convert_one(e,t,a)}(this.#k,255*e[t],a);break;case 3:r=ya.RGB8;this.#C=(e,t,a)=>function qcms_convert_three(e,t,a,r,i){ga.qcms_convert_three(e,t,a,r,i)}(this.#k,255*e[t],255*e[t+1],255*e[t+2],a);break;case 4:r=ya.CMYK;this.#C=(e,t,a)=>function qcms_convert_four(e,t,a,r,i,n){ga.qcms_convert_four(e,t,a,r,i,n)}(this.#k,255*e[t],255*e[t+1],255*e[t+2],255*e[t+3],a);break;default:throw new Error(`Unsupported number of components: ${a}`)}this.#k=function qcms_transformer_from_memory(e,t,a){const r=passArray8ToWasm0(e,ga.__wbindgen_malloc),i=ba;return ga.qcms_transformer_from_memory(r,i,t,a)>>>0}(e,r,wa.Perceptual);if(!this.#k)throw new Error("Failed to create ICC color space");IccColorSpace.#I||=new FinalizationRegistry(e=>{!function qcms_drop_transformer(e){ga.qcms_drop_transformer(e)}(e)});IccColorSpace.#I.register(this,this.#k)}getRgbHex(e,t){this.#C(e,t,!0);return QCMS._cssColor}getRgbItem(e,t,a,r){QCMS._destBuffer=a;QCMS._destOffset=r;QCMS._destLength=3;this.#C(e,t,!1);QCMS._destBuffer=null}getRgbBuffer(e,t,a,r,i,n,s){e=e.subarray(t,t+a*this.numComps);if(8!==n){const t=255/((1<=this.end?-1:this.bytes[this.pos++]}getBytes(e){const t=this.bytes,a=this.pos,r=this.end;if(!e)return t.subarray(a,r);let i=a+e;i>r&&(i=r);this.pos=i;return t.subarray(a,i)}getByteRange(e,t){e<0&&(e=0);t>this.end&&(t=this.end);return this.bytes.subarray(e,t)}reset(){this.pos=this.start}moveStart(){this.start=this.pos}makeSubStream(e,t,a=null){return new Stream(this.bytes.buffer,e,t,a)}}class StringStream extends Stream{constructor(e){super(stringToBytes(e))}}class NullStream extends Stream{constructor(){super(new Uint8Array(0))}}class ChunkedStream extends Stream{constructor(e,t,a){super(new Uint8Array(e),0,e,null);this.chunkSize=t;this._loadedChunks=new Set;this.numChunks=Math.ceil(e/t);this.manager=a;this.progressiveDataLength=0;this.lastSuccessfulEnsureByteChunk=-1}getMissingChunks(){const e=[];for(let t=0,a=this.numChunks;t=this.end?this.numChunks:Math.floor(t/this.chunkSize);for(let e=a;ethis.numChunks)&&t!==this.lastSuccessfulEnsureByteChunk){if(!this._loadedChunks.has(t))throw new MissingDataException(e,e+1);this.lastSuccessfulEnsureByteChunk=t}}ensureRange(e,t){if(e>=t)return;if(t<=this.progressiveDataLength)return;const a=Math.floor(e/this.chunkSize);if(a>this.numChunks)return;const r=Math.min(Math.floor((t-1)/this.chunkSize)+1,this.numChunks);for(let i=a;i=this.end)return-1;e>=this.progressiveDataLength&&this.ensureByte(e);return this.bytes[this.pos++]}getBytes(e){const t=this.bytes,a=this.pos,r=this.end;if(!e){r>this.progressiveDataLength&&this.ensureRange(a,r);return t.subarray(a,r)}let i=a+e;i>r&&(i=r);i>this.progressiveDataLength&&this.ensureRange(a,i);this.pos=i;return t.subarray(a,i)}getByteRange(e,t){e<0&&(e=0);t>this.end&&(t=this.end);t>this.progressiveDataLength&&this.ensureRange(e,t);return this.bytes.subarray(e,t)}makeSubStream(e,t,a=null){t?e+t>this.progressiveDataLength&&this.ensureRange(e,e+t):e>=this.progressiveDataLength&&this.ensureByte(e);function ChunkedStreamSubstream(){}ChunkedStreamSubstream.prototype=Object.create(this);ChunkedStreamSubstream.prototype.getMissingChunks=function(){const e=this.chunkSize,t=Math.floor(this.start/e),a=Math.floor((this.end-1)/e)+1,r=[];for(let e=t;e{const readChunk=({value:n,done:s})=>{try{if(s){const t=arrayBuffersToBytes(r);r=null;e(t);return}i+=n.byteLength;a.isStreamingSupported&&this.onProgress({loaded:i});r.push(n);a.read().then(readChunk,t)}catch(e){t(e)}};a.read().then(readChunk,t)}).then(t=>{this.aborted||this.onReceiveData({chunk:t,begin:e})})}requestAllChunks(e=!1){if(!e){const e=this.stream.getMissingChunks();this._requestChunks(e)}return this._loadedStreamCapability.promise}_requestChunks(e){const t=this.currRequestId++,a=new Set;this._chunksNeededByRequest.set(t,a);for(const t of e)this.stream.hasChunk(t)||a.add(t);if(0===a.size)return Promise.resolve();const r=Promise.withResolvers();this._promisesByRequest.set(t,r);const i=[];for(const e of a){let a=this._requestsByChunk.get(e);if(!a){a=[];this._requestsByChunk.set(e,a);i.push(e)}a.push(t)}if(i.length>0){const e=this.groupChunks(i);for(const t of e){const e=t.beginChunk*this.chunkSize,a=Math.min(t.endChunk*this.chunkSize,this.length);this.sendRequest(e,a).catch(r.reject)}}return r.promise.catch(e=>{if(!this.aborted)throw e})}getStream(){return this.stream}requestRange(e,t){t=Math.min(t,this.length);const a=this.getBeginChunk(e),r=this.getEndChunk(t),i=[];for(let e=a;ee-t);return this._requestChunks(t)}groupChunks(e){const t=[];let a=-1,r=-1;for(let i=0,n=e.length;i=0&&r+1!==n){t.push({beginChunk:a,endChunk:r+1});a=n}i+1===e.length&&t.push({beginChunk:a,endChunk:n+1});r=n}return t}onProgress(e){this.msgHandler.send("DocProgress",{loaded:this.stream.numChunksLoaded*this.chunkSize+e.loaded,total:this.length})}onReceiveData(e){const t=e.chunk,a=void 0===e.begin,r=a?this.progressiveDataLength:e.begin,i=r+t.byteLength,n=Math.floor(r/this.chunkSize),s=i0||o.push(a)}}}if(!this.disableAutoFetch&&0===this._requestsByChunk.size){let e;if(1===this.stream.numChunksLoaded){const t=this.stream.numChunks-1;this.stream.hasChunk(t)||(e=t)}else e=this.stream.nextEmptyChunk(s);Number.isInteger(e)&&this._requestChunks([e])}for(const e of o){const t=this._promisesByRequest.get(e);this._promisesByRequest.delete(e);t.resolve()}this.msgHandler.send("DocProgress",{loaded:this.stream.numChunksLoaded*this.chunkSize,total:this.length})}onError(e){this._loadedStreamCapability.reject(e)}getBeginChunk(e){return Math.floor(e/this.chunkSize)}getEndChunk(e){return Math.floor((e-1)/this.chunkSize)+1}abort(e){this.aborted=!0;this.pdfNetworkStream?.cancelAllRequests(e);for(const t of this._promisesByRequest.values())t.reject(e)}}function convertToRGBA(e){switch(e.kind){case k:return convertBlackAndWhiteToRGBA(e);case C:return function convertRGBToRGBA({src:e,srcPos:t=0,dest:a,destPos:r=0,width:i,height:n}){let s=0;const o=i*n*3,c=o>>2,l=new Uint32Array(e.buffer,t,c);if(FeatureTest.isLittleEndian){for(;s>>24|t<<8|4278190080;a[r+2]=t>>>16|i<<16|4278190080;a[r+3]=i>>>8|4278190080}for(let i=4*s,n=t+o;i>>8|255;a[r+2]=t<<16|i>>>16|255;a[r+3]=i<<8|255}for(let i=4*s,n=t+o;i>3,u=7&r,d=e.length;a=new Uint32Array(a.buffer);let f=0;for(let r=0;ra||t>a)return!0;const r=e*t;if(this._hasMaxArea)return r>this.MAX_AREA;if(r(this.MAX_AREA=this.#O**2)}static getReducePowerForJPX(e,t,a){const r=e*t,i=2**30/(4*a);if(!this.needsToBeResized(e,t))return r>i?Math.ceil(Math.log2(r/i)):0;const{MAX_DIM:n,MAX_AREA:s}=this,o=Math.max(e/n,t/n,Math.sqrt(r/Math.min(i,s)));return Math.ceil(Math.log2(o))}static get MAX_DIM(){return shadow(this,"MAX_DIM",this._guessMax(2048,65537,0,1))}static get MAX_AREA(){this._hasMaxArea=!0;return shadow(this,"MAX_AREA",this._guessMax(this.#O,this.MAX_DIM,128,0)**2)}static set MAX_AREA(e){if(e>=0){this._hasMaxArea=!0;shadow(this,"MAX_AREA",e)}}static setOptions({canvasMaxAreaInBytes:e=-1,isImageDecoderSupported:t=!1}){this._hasMaxArea||(this.MAX_AREA=e>>2);this.#M=t}static _areGoodDims(e,t){try{const a=new OffscreenCanvas(e,t),r=a.getContext("2d");r.fillRect(0,0,1,1);const i=r.getImageData(0,0,1,1).data[3];a.width=a.height=1;return 0!==i}catch{return!1}}static _guessMax(e,t,a,r){for(;e+a+1ca){const e=this.#D();if(e)return e}const r=this._encodeBMP();let i,n;if(await ImageResizer.canUseImageDecoder){i=new ImageDecoder({data:r,type:"image/bmp",preferAnimation:!1,transfer:[r.buffer]});n=i.decode().catch(e=>{warn(`BMP image decoding failed: ${e}`);return createImageBitmap(new Blob([this._encodeBMP().buffer],{type:"image/bmp"}))}).finally(()=>{i.close()})}else n=createImageBitmap(new Blob([r.buffer],{type:"image/bmp"}));const{MAX_AREA:s,MAX_DIM:o}=ImageResizer,c=Math.max(t/o,a/o,Math.sqrt(t*a/s)),l=Math.max(c,2),h=Math.round(10*(c+1.25))/10/l,u=Math.floor(Math.log2(h)),d=new Array(u+2).fill(2);d[0]=l;d.splice(-1,1,h/(1<>s,c=r>>s;let l,h=r;try{l=new Uint8Array(n)}catch{let e=Math.floor(Math.log2(n+1));for(;;)try{l=new Uint8Array(2**e-1);break}catch{e-=1}h=Math.floor((2**e-1)/(4*a));const t=a*h*4;t>s;e>3,s=a+3&-4;if(a!==s){const e=new Uint8Array(s*t);let r=0;for(let n=0,o=t*a;ni&&(r=i)}else{for(;!this.eof;)this.readBlock(t);r=this.bufferLength}this.pos=r;return this.buffer.subarray(a,r)}async getImageData(e,t){if(!this.canAsyncDecodeImageFromBuffer)return this.isAsyncDecoder?this.decodeImage(null,t):this.getBytes(e,t);const a=await this.stream.asyncGetBytes();return this.decodeImage(a,t)}reset(){this.pos=0}makeSubStream(e,t,a=null){if(void 0===t)for(;!this.eof;)this.readBlock();else{const a=e+t;for(;this.bufferLength<=a&&!this.eof;)this.readBlock()}return new Stream(this.buffer,e,t,a)}getBaseStreams(){return this.str?this.str.getBaseStreams():null}}class StreamsSequenceStream extends DecodeStream{constructor(e,t=null){e=e.filter(e=>e instanceof BaseStream);let a=0;for(const t of e)a+=t instanceof DecodeStream?t._rawMinBufferLength:t.length;super(a);this.streams=e;this._onError=t}readBlock(){const e=this.streams;if(0===e.length){this.eof=!0;return}const t=e.shift();let a;try{a=t.getBytes()}catch(e){if(this._onError){this._onError(e,t.dict?.objId);return}throw e}const r=this.bufferLength,i=r+a.length;this.ensureBuffer(i).set(a,r);this.bufferLength=i}getBaseStreams(){const e=[];for(const t of this.streams){const a=t.getBaseStreams();a&&e.push(...a)}return e.length>0?e:null}}class ColorSpaceUtils{static parse({cs:e,xref:t,resources:a=null,pdfFunctionFactory:r,globalColorSpaceCache:i,localColorSpaceCache:n,asyncIfNotCached:s=!1}){const o={xref:t,resources:a,pdfFunctionFactory:r,globalColorSpaceCache:i,localColorSpaceCache:n};let c,l,h;if(e instanceof Ref){l=e;const a=i.getByRef(l)||n.getByRef(l);if(a)return a;e=t.fetch(e)}if(e instanceof Name){c=e.name;const t=n.getByName(c);if(t)return t}try{h=this.#B(e,o)}catch(e){if(s&&!(e instanceof MissingDataException))return Promise.reject(e);throw e}if(c||l){n.set(c,l,h);l&&i.set(null,l,h)}return s?Promise.resolve(h):h}static#R(e,t){const{globalColorSpaceCache:a}=t;let r;if(e instanceof Ref){r=e;const t=a.getByRef(r);if(t)return t}const i=this.#B(e,t);r&&a.set(null,r,i);return i}static#B(e,t){const{xref:a,resources:r,pdfFunctionFactory:i,globalColorSpaceCache:n}=t;if((e=a.fetchIfRef(e))instanceof Name)switch(e.name){case"G":case"DeviceGray":return this.gray;case"RGB":case"DeviceRGB":return this.rgb;case"DeviceRGBA":return this.rgba;case"CMYK":case"DeviceCMYK":return this.cmyk;case"Pattern":return new PatternCS(null);default:if(r instanceof Dict){const a=r.get("ColorSpace");if(a instanceof Dict){const r=a.get(e.name);if(r){if(r instanceof Name)return this.#B(r,t);e=r;break}}}warn(`Unrecognized ColorSpace: ${e.name}`);return this.gray}if(Array.isArray(e)){const r=a.fetchIfRef(e[0]).name;let s,o,c,l,h,u;switch(r){case"G":case"DeviceGray":return this.gray;case"RGB":case"DeviceRGB":return this.rgb;case"CMYK":case"DeviceCMYK":return this.cmyk;case"CalGray":s=a.fetchIfRef(e[1]);l=s.getArray("WhitePoint");h=s.getArray("BlackPoint");u=s.get("Gamma");return new CalGrayCS(l,h,u);case"CalRGB":s=a.fetchIfRef(e[1]);l=s.getArray("WhitePoint");h=s.getArray("BlackPoint");u=s.getArray("Gamma");const d=s.getArray("Matrix");return new CalRGBCS(l,h,u,d);case"ICCBased":const f=e[1]instanceof Ref;if(f){const t=n.getByRef(e[1]);if(t)return t}const g=a.fetchIfRef(e[1]),p=g.dict;o=p.get("N");if(IccColorSpace.isUsable)try{const t=new IccColorSpace(g.getBytes(),"ICCBased",o);f&&n.set(null,e[1],t);return t}catch(t){if(t instanceof MissingDataException)throw t;warn(`ICCBased color space (${e[1]}): "${t}".`)}const m=p.getRaw("Alternate");if(m){const e=this.#R(m,t);if(e.numComps===o)return e;warn("ICCBased color space: Ignoring incorrect /Alternate entry.")}if(1===o)return this.gray;if(3===o)return this.rgb;if(4===o)return this.cmyk;break;case"Pattern":c=e[1]||null;c&&(c=this.#R(c,t));return new PatternCS(c);case"I":case"Indexed":c=this.#R(e[1],t);const b=MathClamp(a.fetchIfRef(e[2]),0,255),y=a.fetchIfRef(e[3]);return new IndexedCS(c,b,y);case"Separation":case"DeviceN":const w=a.fetchIfRef(e[1]);o=Array.isArray(w)?w.length:1;c=this.#R(e[2],t);const x=i.create(e[3]);return new AlternateCS(o,c,x);case"Lab":s=a.fetchIfRef(e[1]);l=s.getArray("WhitePoint");h=s.getArray("BlackPoint");const S=s.getArray("Range");return new LabCS(l,h,S);default:warn(`Unimplemented ColorSpace object: ${r}`);return this.gray}}warn(`Unrecognized ColorSpace object: ${e}`);return this.gray}static get gray(){return shadow(this,"gray",new DeviceGrayCS)}static get rgb(){return shadow(this,"rgb",new DeviceRgbCS)}static get rgba(){return shadow(this,"rgba",new DeviceRgbaCS)}static get cmyk(){if(CmykICCBasedCS.isUsable)try{return shadow(this,"cmyk",new CmykICCBasedCS)}catch{warn("CMYK fallback: DeviceCMYK")}return shadow(this,"cmyk",new DeviceCmykCS)}}class JpegError extends Jt{constructor(e){super(e,"JpegError")}}class DNLMarkerError extends Jt{constructor(e,t){super(e,"DNLMarkerError");this.scanLines=t}}class EOIMarkerError extends Jt{constructor(e){super(e,"EOIMarkerError")}}const Sa=new Uint8Array([0,1,8,16,9,2,3,10,17,24,32,25,18,11,4,5,12,19,26,33,40,48,41,34,27,20,13,6,7,14,21,28,35,42,49,56,57,50,43,36,29,22,15,23,30,37,44,51,58,59,52,45,38,31,39,46,53,60,61,54,47,55,62,63]),Aa=4017,ka=799,Ca=3406,va=2276,Fa=1567,Ia=3784,Ta=5793,Oa=2896;function buildHuffmanTable(e,t){let a,r,i=0,n=16;for(;n>0&&!e[n-1];)n--;const s=[{children:[],index:0}];let o,c=s[0];for(a=0;a0;)c=s.pop();c.index++;s.push(c);for(;s.length<=a;){s.push(o={children:[],index:0});c.children[c.index]=o.children;c=o}i++}if(a+10){g--;return f>>g&1}f=e[t++];if(255===f){const r=e[t++];if(r){if(220===r&&l){const r=readUint16(e,t+=2);t+=2;if(r>0&&r!==a.scanLines)throw new DNLMarkerError("Found DNL marker (0xFFDC) while parsing scan data",r)}else if(217===r){if(l){const e=y*(8===a.precision?8:0);if(e>0&&Math.round(a.scanLines/e)>=5)throw new DNLMarkerError("Found EOI marker (0xFFD9) while parsing scan data, possibly caused by incorrect `scanLines` parameter",e)}throw new EOIMarkerError("Found EOI marker (0xFFD9) while parsing scan data")}throw new JpegError(`unexpected marker ${(f<<8|r).toString(16)}`)}}g=7;return f>>>7}function decodeHuffman(e){let t=e;for(;;){t=t[readBit()];switch(typeof t){case"number":return t;case"object":continue}throw new JpegError("invalid huffman sequence")}}function receive(e){let t=0;for(;e>0;){t=t<<1|readBit();e--}return t}function receiveAndExtend(e){if(1===e)return 1===readBit()?1:-1;const t=receive(e);return t>=1<0){p--;return}let a=n;const r=s;for(;a<=r;){const r=decodeHuffman(e.huffmanTableAC),i=15&r,n=r>>4;if(0===i){if(n<15){p=receive(n)+(1<>4;if(0===i)if(l<15){p=receive(l)+(1<>4;if(0===r){if(n<15)break;i+=16;continue}i+=n;const s=Sa[i];e.blockData[t+s]=receiveAndExtend(r);i++}};let T,O=0;const M=1===w?r[0].blocksPerLine*r[0].blocksPerColumn:h*a.mcusPerColumn;let D,R;for(;O<=M;){const a=i?Math.min(M-O,i):M;if(a>0){for(S=0;S0?"unexpected":"excessive"} MCU data, current marker is: ${T.invalid}`);t=T.offset}if(!(T.marker>=65488&&T.marker<=65495))break;t+=2}return t-d}function quantizeAndInverse(e,t,a){const r=e.quantizationTable,i=e.blockData;let n,s,o,c,l,h,u,d,f,g,p,m,b,y,w,x,S;if(!r)throw new JpegError("missing required Quantization Table.");for(let e=0;e<64;e+=8){f=i[t+e];g=i[t+e+1];p=i[t+e+2];m=i[t+e+3];b=i[t+e+4];y=i[t+e+5];w=i[t+e+6];x=i[t+e+7];f*=r[e];if(0!==(g|p|m|b|y|w|x)){g*=r[e+1];p*=r[e+2];m*=r[e+3];b*=r[e+4];y*=r[e+5];w*=r[e+6];x*=r[e+7];n=Ta*f+128>>8;s=Ta*b+128>>8;o=p;c=w;l=Oa*(g-x)+128>>8;d=Oa*(g+x)+128>>8;h=m<<4;u=y<<4;n=n+s+1>>1;s=n-s;S=o*Ia+c*Fa+128>>8;o=o*Fa-c*Ia+128>>8;c=S;l=l+u+1>>1;u=l-u;d=d+h+1>>1;h=d-h;n=n+c+1>>1;c=n-c;s=s+o+1>>1;o=s-o;S=l*va+d*Ca+2048>>12;l=l*Ca-d*va+2048>>12;d=S;S=h*ka+u*Aa+2048>>12;h=h*Aa-u*ka+2048>>12;u=S;a[e]=n+d;a[e+7]=n-d;a[e+1]=s+u;a[e+6]=s-u;a[e+2]=o+h;a[e+5]=o-h;a[e+3]=c+l;a[e+4]=c-l}else{S=Ta*f+512>>10;a[e]=S;a[e+1]=S;a[e+2]=S;a[e+3]=S;a[e+4]=S;a[e+5]=S;a[e+6]=S;a[e+7]=S}}for(let e=0;e<8;++e){f=a[e];g=a[e+8];p=a[e+16];m=a[e+24];b=a[e+32];y=a[e+40];w=a[e+48];x=a[e+56];if(0!==(g|p|m|b|y|w|x)){n=Ta*f+2048>>12;s=Ta*b+2048>>12;o=p;c=w;l=Oa*(g-x)+2048>>12;d=Oa*(g+x)+2048>>12;h=m;u=y;n=4112+(n+s+1>>1);s=n-s;S=o*Ia+c*Fa+2048>>12;o=o*Fa-c*Ia+2048>>12;c=S;l=l+u+1>>1;u=l-u;d=d+h+1>>1;h=d-h;n=n+c+1>>1;c=n-c;s=s+o+1>>1;o=s-o;S=l*va+d*Ca+2048>>12;l=l*Ca-d*va+2048>>12;d=S;S=h*ka+u*Aa+2048>>12;h=h*Aa-u*ka+2048>>12;u=S;f=n+d;x=n-d;g=s+u;w=s-u;p=o+h;y=o-h;m=c+l;b=c-l;f<16?f=0:f>=4080?f=255:f>>=4;g<16?g=0:g>=4080?g=255:g>>=4;p<16?p=0:p>=4080?p=255:p>>=4;m<16?m=0:m>=4080?m=255:m>>=4;b<16?b=0:b>=4080?b=255:b>>=4;y<16?y=0:y>=4080?y=255:y>>=4;w<16?w=0:w>=4080?w=255:w>>=4;x<16?x=0:x>=4080?x=255:x>>=4;i[t+e]=f;i[t+e+8]=g;i[t+e+16]=p;i[t+e+24]=m;i[t+e+32]=b;i[t+e+40]=y;i[t+e+48]=w;i[t+e+56]=x}else{S=Ta*f+8192>>14;S=S<-2040?0:S>=2024?255:S+2056>>4;i[t+e]=S;i[t+e+8]=S;i[t+e+16]=S;i[t+e+24]=S;i[t+e+32]=S;i[t+e+40]=S;i[t+e+48]=S;i[t+e+56]=S}}}function buildComponentData(e,t){const a=t.blocksPerLine,r=t.blocksPerColumn,i=new Int16Array(64);for(let e=0;e=r)return null;const n=readUint16(e,t);if(n>=65472&&n<=65534)return{invalid:null,marker:n,offset:t};let s=readUint16(e,i);for(;!(s>=65472&&s<=65534);){if(++i>=r)return null;s=readUint16(e,i)}return{invalid:n.toString(16),marker:s,offset:i}}function prepareComponents(e){const t=Math.ceil(e.samplesPerLine/8/e.maxH),a=Math.ceil(e.scanLines/8/e.maxV);for(const r of e.components){const i=Math.ceil(Math.ceil(e.samplesPerLine/8)*r.h/e.maxH),n=Math.ceil(Math.ceil(e.scanLines/8)*r.v/e.maxV),s=t*r.h,o=64*(a*r.v)*(s+1);r.blockData=new Int16Array(o);r.blocksPerLine=i;r.blocksPerColumn=n}e.mcusPerLine=t;e.mcusPerColumn=a}function readDataBlock(e,t){const a=readUint16(e,t);let r=(t+=2)+a-2;const i=findNextFileMarker(e,r,t);if(i?.invalid){warn("readDataBlock - incorrect length, current marker is: "+i.invalid);r=i.offset}const n=e.subarray(t,r);return{appData:n,oldOffset:t,newOffset:t+n.length}}function skipData(e,t){const a=readUint16(e,t),r=(t+=2)+a-2,i=findNextFileMarker(e,r,t);return i?.invalid?i.offset:r}class JpegImage{constructor({decodeTransform:e=null,colorTransform:t=-1}={}){this._decodeTransform=e;this._colorTransform=t}static canUseImageDecoder(e,t=-1){let a=null,r=0,i=null,n=readUint16(e,r);r+=2;if(65496!==n)throw new JpegError("SOI not found");n=readUint16(e,r);r+=2;e:for(;65497!==n;){switch(n){case 65505:const{appData:t,oldOffset:s,newOffset:o}=readDataBlock(e,r);r=o;if(69===t[0]&&120===t[1]&&105===t[2]&&102===t[3]&&0===t[4]&&0===t[5]){if(a)throw new JpegError("Duplicate EXIF-blocks found.");a={exifStart:s+6,exifEnd:o}}n=readUint16(e,r);r+=2;continue;case 65472:case 65473:case 65474:i=e[r+7];break e;case 65535:255!==e[r]&&r--}r=skipData(e,r);n=readUint16(e,r);r+=2}return 4===i||3===i&&0===t?null:a||{}}parse(e,{dnlScanLines:t=null}={}){let a,r,i=0,n=null,s=null,o=0;const c=[],l=[],h=[];let u=readUint16(e,i);i+=2;if(65496!==u)throw new JpegError("SOI not found");u=readUint16(e,i);i+=2;e:for(;65497!==u;){let d,f,g;switch(u){case 65504:case 65505:case 65506:case 65507:case 65508:case 65509:case 65510:case 65511:case 65512:case 65513:case 65514:case 65515:case 65516:case 65517:case 65518:case 65519:case 65534:const{appData:p,newOffset:m}=readDataBlock(e,i);i=m;65504===u&&74===p[0]&&70===p[1]&&73===p[2]&&70===p[3]&&0===p[4]&&(n={version:{major:p[5],minor:p[6]},densityUnits:p[7],xDensity:p[8]<<8|p[9],yDensity:p[10]<<8|p[11],thumbWidth:p[12],thumbHeight:p[13],thumbData:p.subarray(14,14+3*p[12]*p[13])});65518===u&&65===p[0]&&100===p[1]&&111===p[2]&&98===p[3]&&101===p[4]&&(s={version:p[5]<<8|p[6],flags0:p[7]<<8|p[8],flags1:p[9]<<8|p[10],transformCode:p[11]});break;case 65499:const b=readUint16(e,i);i+=2;const y=b+i-2;let w;for(;i>4){if(t>>4!=1)throw new JpegError("DQT - invalid table spec");for(f=0;f<64;f++){w=Sa[f];a[w]=readUint16(e,i);i+=2}}else for(f=0;f<64;f++){w=Sa[f];a[w]=e[i++]}c[15&t]=a}break;case 65472:case 65473:case 65474:if(a)throw new JpegError("Only single frame JPEGs supported");i+=2;a={};a.extended=65473===u;a.progressive=65474===u;a.precision=e[i++];const x=readUint16(e,i);i+=2;a.scanLines=t||x;a.samplesPerLine=readUint16(e,i);i+=2;a.components=[];a.componentIds={};const S=e[i++];let k=0,C=0;for(d=0;d>4,n=15&e[i+1];k>4?l:h)[15&t]=buildHuffmanTable(a,n)}break;case 65501:i+=2;r=readUint16(e,i);i+=2;break;case 65498:const F=1===++o&&!t;i+=2;const T=e[i++],O=[];for(d=0;d>4];n.huffmanTableAC=l[15&s];O.push(n)}const M=e[i++],D=e[i++],R=e[i++];try{i+=decodeScan(e,i,a,O,r,M,D,R>>4,15&R,F)}catch(t){if(t instanceof DNLMarkerError){warn(`${t.message} -- attempting to re-parse the JPEG image.`);return this.parse(e,{dnlScanLines:t.scanLines})}if(t instanceof EOIMarkerError){warn(`${t.message} -- ignoring the rest of the image data.`);break e}throw t}break;case 65500:i+=4;break;case 65535:255!==e[i]&&i--;break;default:const N=findNextFileMarker(e,i-2,i-3);if(N?.invalid){warn("JpegImage.parse - unexpected data, current marker is: "+N.invalid);i=N.offset;break}if(!N||i>=e.length-1){warn("JpegImage.parse - reached the end of the image data without finding an EOI marker (0xFFD9).");break e}throw new JpegError("JpegImage.parse - unknown marker: "+u.toString(16))}u=readUint16(e,i);i+=2}if(!a)throw new JpegError("JpegImage.parse - no frame data found.");this.width=a.samplesPerLine;this.height=a.scanLines;this.jfif=n;this.adobe=s;this.components=[];for(const e of a.components){const t=c[e.quantizationId];t&&(e.quantizationTable=t);this.components.push({index:e.index,output:buildComponentData(0,e),scaleX:e.h/a.maxH,scaleY:e.v/a.maxV,blocksPerLine:e.blocksPerLine,blocksPerColumn:e.blocksPerColumn})}this.numComponents=this.components.length}_getLinearizedBlockData(e,t,a=!1){const r=this.width/e,i=this.height/t;let n,s,o,c,l,h,u,d,f,g,p,m=0;const b=this.components.length,y=e*t*b,w=new Uint8ClampedArray(y),x=new Uint32Array(e),S=4294967288;let k;for(u=0;u>8)+C[f+1];return w}get _isColorConversionNeeded(){return this.adobe?!!this.adobe.transformCode:3===this.numComponents?0!==this._colorTransform&&(82!==this.components[0].index||71!==this.components[1].index||66!==this.components[2].index):1===this._colorTransform}_convertYccToRgb(e){let t,a,r;for(let i=0,n=e.length;i4)throw new JpegError("Unsupported color mode");const n=this._getLinearizedBlockData(e,t,i);if(1===this.numComponents&&(a||r)){const e=n.length*(a?4:3),t=new Uint8ClampedArray(e);let r=0;if(a)!function grayToRGBA(e,t){if(FeatureTest.isLittleEndian)for(let a=0,r=e.length;a0&&(e=e.subarray(t));break}return e}decodeImage(e){if(this.eof)return this.buffer;e=this.#N(e||this.bytes);const t=new JpegImage(this.jpegOptions);t.parse(e);const a=t.getData({width:this.drawWidth,height:this.drawHeight,forceRGBA:this.forceRGBA,forceRGB:this.forceRGB,isSourcePDF:!0});this.buffer=a;this.bufferLength=a.length;this.eof=!0;return this.buffer}get canAsyncDecodeImageFromBuffer(){return this.stream.isAsync}async getTransferableImage(){if(!await JpegStream.canUseImageDecoder)return null;const e=this.jpegOptions;if(e.decodeTransform)return null;let t;try{const a=this.canAsyncDecodeImageFromBuffer&&await this.stream.asyncGetBytes()||this.bytes;if(!a)return null;let r=this.#N(a);const i=JpegImage.canUseImageDecoder(r,e.colorTransform);if(!i)return null;if(i.exifStart){r=r.slice();r.fill(0,i.exifStart,i.exifEnd)}t=new ImageDecoder({data:r,type:"image/jpeg",preferAnimation:!1});return(await t.decode()).image}catch(e){warn(`getTransferableImage - failed: "${e}".`);return null}finally{t?.close()}}}const Ma=async function OpenJPEG(e={}){var t=e,a="./this.program",quit_=(e,t)=>{throw t},r=import.meta.url;try{new URL(".",r).href}catch{}0;var i,n,s,o,c,l,h,u,d=console.log.bind(console),f=console.error.bind(console),g=!1,p=!1;function updateMemoryViews(){var e=o.buffer;c=new Int8Array(e);new Int16Array(e);l=new Uint8Array(e);new Uint16Array(e);h=new Int32Array(e);u=new Uint32Array(e);new Float32Array(e);new Float64Array(e);new BigInt64Array(e);new BigUint64Array(e)}class ExitStatus{name="ExitStatus";constructor(e){this.message=`Program terminated with exit(${e})`;this.status=e}}var m,callRuntimeCallbacks=e=>{for(;e.length>0;)e.shift()(t)},b=[],addOnPostRun=e=>b.push(e),y=[],addOnPreRun=e=>y.push(e),w=!0,x=0,S={},handleException=e=>{if(e instanceof ExitStatus||"unwind"==e)return i;quit_(0,e)},keepRuntimeAlive=()=>w||x>0,_proc_exit=e=>{i=e;if(!keepRuntimeAlive()){t.onExit?.(e);g=!0}quit_(0,new ExitStatus(e))},_exit=(e,t)=>{i=e;_proc_exit(e)},callUserCallback=e=>{if(!g)try{e();(()=>{if(!keepRuntimeAlive())try{_exit(i)}catch(e){handleException(e)}})()}catch(e){handleException(e)}},alignMemory=(e,t)=>Math.ceil(e/t)*t,growMemory=e=>{var t=(e-o.buffer.byteLength+65535)/65536|0;try{o.grow(t);updateMemoryViews();return 1}catch(e){}},k={},getEnvStrings=()=>{if(!getEnvStrings.strings){var e={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.language||"C").replace("-","_")+".UTF-8",_:a||"./this.program"};for(var t in k)void 0===k[t]?delete e[t]:e[t]=k[t];var r=[];for(var t in e)r.push(`${t}=${e[t]}`);getEnvStrings.strings=r}return getEnvStrings.strings},stringToUTF8=(e,t,a)=>((e,t,a,r)=>{if(!(r>0))return 0;for(var i=a,n=a+r-1,s=0;s=n)break;t[a++]=o}else if(o<=2047){if(a+1>=n)break;t[a++]=192|o>>6;t[a++]=128|63&o}else if(o<=65535){if(a+2>=n)break;t[a++]=224|o>>12;t[a++]=128|o>>6&63;t[a++]=128|63&o}else{if(a+3>=n)break;t[a++]=240|o>>18;t[a++]=128|o>>12&63;t[a++]=128|o>>6&63;t[a++]=128|63&o;s++}}t[a]=0;return a-i})(e,l,t,a),lengthBytesUTF8=e=>{for(var t=0,a=0;a=55296&&r<=57343){t+=4;++a}else t+=3}return t},C=[null,[],[]],v="undefined"!=typeof TextDecoder?new TextDecoder:void 0,UTF8ArrayToString=(e,t=0,a,r)=>{var i=((e,t,a,r)=>{var i=t+a;if(r)return i;for(;e[t]&&!(t>=i);)++t;return t})(e,t,a,r);if(i-t>16&&e.buffer&&v)return v.decode(e.subarray(t,i));for(var n="";t>10,56320|1023&l)}}else n+=String.fromCharCode((31&s)<<6|o)}else n+=String.fromCharCode(s)}return n},printChar=(e,t)=>{var a=C[e];if(0===t||10===t){(1===e?d:f)(UTF8ArrayToString(a));a.length=0}else a.push(t)},UTF8ToString=(e,t,a)=>e?UTF8ArrayToString(l,e,t,a):"";t.noExitRuntime&&(w=t.noExitRuntime);t.print&&(d=t.print);t.printErr&&(f=t.printErr);t.wasmBinary&&t.wasmBinary;t.arguments&&t.arguments;t.thisProgram&&(a=t.thisProgram);if(t.preInit){"function"==typeof t.preInit&&(t.preInit=[t.preInit]);for(;t.preInit.length>0;)t.preInit.shift()()}t.writeArrayToMemory=(e,t)=>{c.set(e,t)};var F,T={k:()=>function abort(e){t.onAbort?.(e);f(e="Aborted("+e+")");g=!0;e+=". Build with -sASSERTIONS for more info.";var a=new WebAssembly.RuntimeError(e);s?.(a);throw a}(""),j:()=>{w=!1;x=0},l:(e,t)=>{if(S[e]){clearTimeout(S[e].id);delete S[e]}if(!t)return 0;var a=setTimeout(()=>{delete S[e];callUserCallback(()=>m(e,performance.now()))},t);S[e]={id:a,timeout_ms:t};return 0},f:function _copy_pixels_1(e,a){e>>=2;const r=t.imageData=new Uint8ClampedArray(a),i=h.subarray(e,e+a);r.set(i)},e:function _copy_pixels_3(e,a,r,i){e>>=2;a>>=2;r>>=2;const n=t.imageData=new Uint8ClampedArray(3*i),s=h.subarray(e,e+i),o=h.subarray(a,a+i),c=h.subarray(r,r+i);for(let e=0;e>=2;a>>=2;r>>=2;i>>=2;const s=t.imageData=new Uint8ClampedArray(4*n),o=h.subarray(e,e+n),c=h.subarray(a,a+n),l=h.subarray(r,r+n),u=h.subarray(i,i+n);for(let e=0;e{var t=l.length,a=2147483648;if((e>>>=0)>a)return!1;for(var r=1;r<=4;r*=2){var i=t*(1+.2/r);i=Math.min(i,e+100663296);var n=Math.min(a,alignMemory(Math.max(e,i),65536));if(growMemory(n))return!0}return!1},o:(e,t)=>{var a=0,r=0;for(var i of getEnvStrings()){var n=t+a;u[e+r>>2]=n;a+=stringToUTF8(i,n,1/0)+1;r+=4}return 0},p:(e,t)=>{var a=getEnvStrings();u[e>>2]=a.length;var r=0;for(var i of a)r+=lengthBytesUTF8(i)+1;u[t>>2]=r;return 0},n:function _fd_seek(e,t,a,r){t=(i=t)<-9007199254740992||i>9007199254740992?NaN:Number(i);var i;return 70},b:(e,t,a,r)=>{for(var i=0,n=0;n>2],o=u[t+4>>2];t+=8;for(var c=0;c>2]=i;return 0},q:function _gray_to_rgba(e,a){e>>=2;const r=t.imageData=new Uint8ClampedArray(4*a),i=h.subarray(e,e+a);for(let e=0;e>=2;a>>=2;const i=t.imageData=new Uint8ClampedArray(4*r),n=h.subarray(e,e+r),s=h.subarray(a,a+r);for(let e=0;e>=2;a>>=2;r>>=2;const n=t.imageData=new Uint8ClampedArray(4*i),s=h.subarray(e,e+i),o=h.subarray(a,a+i),c=h.subarray(r,r+i);for(let e=0;e{t.instantiateWasm(e,(e,t)=>{a(receiveInstance(e))})})}();!function run(){!function preRun(){if(t.preRun){"function"==typeof t.preRun&&(t.preRun=[t.preRun]);for(;t.preRun.length;)addOnPreRun(t.preRun.shift())}callRuntimeCallbacks(y)}();function doRun(){t.calledRun=!0;if(!g){!function initRuntime(){p=!0;F.s()}();n?.(t);t.onRuntimeInitialized?.();!function postRun(){if(t.postRun){"function"==typeof t.postRun&&(t.postRun=[t.postRun]);for(;t.postRun.length;)addOnPostRun(t.postRun.shift())}callRuntimeCallbacks(b)}()}}if(t.setStatus){t.setStatus("Running...");setTimeout(()=>{setTimeout(()=>t.setStatus(""),1);doRun()},1)}else doRun()}();return p?t:new Promise((e,t)=>{n=e;s=t})};class JpxError extends Jt{constructor(e){super(e,"JpxError")}}class JpxImage{static#E=null;static#P=null;static#L=null;static#v=!0;static#_=!0;static#F=null;static setOptions({handler:e,useWasm:t,useWorkerFetch:a,wasmUrl:r}){this.#v=t;this.#_=a;this.#F=r;a||(this.#P=e)}static async#j(e){const t=`${this.#F}openjpeg_nowasm_fallback.js`;let a=null;try{a=(await import( +/*webpackIgnore: true*/ +/*@vite-ignore*/ +t)).default()}catch(e){warn(`JpxImage#getJsModule: ${e}`)}e(a)}static async#U(e,t,a){const r="openjpeg.wasm";try{this.#E||(this.#_?this.#E=await fetchBinaryData(`${this.#F}${r}`):this.#E=await this.#P.sendWithPromise("FetchBinaryData",{type:"wasmFactory",filename:r}));return a((await WebAssembly.instantiate(this.#E,t)).instance)}catch(t){warn(`JpxImage#instantiateWasm: ${t}`);this.#j(e);return null}finally{this.#P=null}}static async decode(e,{numComponents:t=4,isIndexedColormap:a=!1,smaskInData:r=!1,reducePower:i=0}={}){if(!this.#L){const{promise:e,resolve:t}=Promise.withResolvers(),a=[e];this.#v?a.push(Ma({warn,instantiateWasm:this.#U.bind(this,t)})):this.#j(t);this.#L=Promise.race(a)}const n=await this.#L;if(!n)throw new JpxError("OpenJPEG failed to initialize");let s;try{const o=e.length;s=n._malloc(o);n.writeArrayToMemory(e,s);if(n._jp2_decode(s,o,t>0?t:0,!!a,!!r,i)){const{errorMessages:e}=n;if(e){delete n.errorMessages;throw new JpxError(e)}throw new JpxError("Unknown error")}const{imageData:c}=n;n.imageData=null;return c}finally{s&&n._free(s)}}static cleanup(){this.#L=null}static parseImageProperties(e){let t=e.getByte();for(;t>=0;){const a=t;t=e.getByte();if(65361===(a<<8|t)){e.skip(4);const t=e.getInt32()>>>0,a=e.getInt32()>>>0,r=e.getInt32()>>>0,i=e.getInt32()>>>0;e.skip(16);return{width:t-r,height:a-i,bitsPerComponent:8,componentsCount:e.getUint16()}}}throw new JpxError("No size marker found in JPX stream")}}function addState(e,t,a,r,i){let n=e;for(let e=0,a=t.length-1;e1e3){l=Math.max(l,d);f+=u+2;d=0;u=0}h.push({transform:t,x:d,y:f,w:a.width,h:a.height});d+=a.width+2;u=Math.max(u,a.height)}const g=Math.max(l,d)+1,p=f+u+1,m=new Uint8Array(g*p*4),b=g<<2;for(let e=0;e=0;){t[n-4]=t[n];t[n-3]=t[n+1];t[n-2]=t[n+2];t[n-1]=t[n+3];t[n+a]=t[n+a-4];t[n+a+1]=t[n+a-3];t[n+a+2]=t[n+a-2];t[n+a+3]=t[n+a-1];n-=b}}const y={width:g,height:p};if(e.isOffscreenCanvasSupported){const e=new OffscreenCanvas(g,p);e.getContext("2d").putImageData(new ImageData(new Uint8ClampedArray(m.buffer),g,p),0,0);y.bitmap=e.transferToImageBitmap();y.data=null}else{y.kind=v;y.data=m}a.splice(n,4*c,Et);r.splice(n,4*c,[y,h]);return n+1});addState(Da,[pe,be,Dt,me],null,function iterateImageMaskGroup(e,t){const a=e.fnArray,r=(t-(e.iCurr-3))%4;switch(r){case 0:return a[t]===pe;case 1:return a[t]===be;case 2:return a[t]===Dt;case 3:return a[t]===me}throw new Error(`iterateImageMaskGroup - invalid pos: ${r}`)},function foundImageMaskGroup(e,t){const a=e.fnArray,r=e.argsArray,i=e.iCurr,n=i-3,s=i-2,o=i-1;let c=Math.floor((t-n)/4);if(c<10)return t-(t-n)%4;let l,h,u=!1;const d=r[o][0],f=r[s][0],g=r[s][1],p=r[s][2],m=r[s][3];if(g===p){u=!0;l=s+4;let e=o+4;for(let t=1;t=4&&a[n-4]===a[s]&&a[n-3]===a[o]&&a[n-2]===a[c]&&a[n-1]===a[l]&&r[n-4][0]===h&&r[n-4][1]===u){d++;f-=5}let g=f+4;for(let e=1;e{const t=e.argsArray,a=t[e.iCurr-1][0];if(a!==ve&&a!==Fe&&a!==Oe&&a!==Me&&a!==De&&a!==Be)return!0;const r=t[e.iCurr-2];return 1===r[0]&&0===r[1]&&0===r[2]&&1===r[3]},()=>!1,(e,t)=>{const{fnArray:a,argsArray:r}=e,i=e.iCurr,n=i-3,s=i-2,o=r[i-1],c=r[s],[,[l],h]=o;if(h){Util.scaleMinMax(c,h);for(let e=0,t=l.length;e=a)break}r=(r||Da)[e[t]];if(r&&!Array.isArray(r)){n.iCurr=t;t++;if(!r.checkFn||(0,r.checkFn)(n)){i=r;r=null}else r=null}else t++}this.state=r;this.match=i;this.lastProcessed=t}flush(){for(;this.match;){const e=this.queue.fnArray.length;this.lastProcessed=(0,this.match.processFn)(this.context,e);this.match=null;this.state=null;this._optimize()}}reset(){this.state=null;this.match=null;this.lastProcessed=0}}class OperatorList{static CHUNK_SIZE=1e3;static CHUNK_SIZE_ABOUT=this.CHUNK_SIZE-5;static isOffscreenCanvasSupported=!1;constructor(e=0,t){this._streamSink=t;this.fnArray=[];this.argsArray=[];this.optimizer=!t||e&d?new NullOptimizer(this):new QueueOptimizer(this);this.dependencies=new Set;this._totalLength=0;this.weight=0;this._resolved=t?null:Promise.resolve()}static setOptions({isOffscreenCanvasSupported:e}){this.isOffscreenCanvasSupported=e}get length(){return this.argsArray.length}get ready(){return this._resolved||this._streamSink.ready}get totalLength(){return this._totalLength+this.length}addOp(e,t){this.optimizer.push(e,t);this.weight++;this._streamSink&&(this.weight>=OperatorList.CHUNK_SIZE||this.weight>=OperatorList.CHUNK_SIZE_ABOUT&&(e===me||e===Le))&&this.flush()}addImageOps(e,t,a,r=!1){if(r){this.addOp(pe);this.addOp(ge,[[["SMask",!1]]])}void 0!==a&&this.addOp(St,["OC",a]);this.addOp(e,t);void 0!==a&&this.addOp(At,[]);r&&this.addOp(me)}addDependency(e){if(!this.dependencies.has(e)){this.dependencies.add(e);this.addOp(se,[e])}}addDependencies(e){for(const t of e)this.addDependency(t)}addOpList(e){if(e instanceof OperatorList){for(const t of e.dependencies)this.dependencies.add(t);for(let t=0,a=e.length;t>>0}function hexToStr(e,t){return 1===t?String.fromCharCode(e[0],e[1]):3===t?String.fromCharCode(e[0],e[1],e[2],e[3]):String.fromCharCode(...e.subarray(0,t+1))}function addHex(e,t,a){let r=0;for(let i=a;i>=0;i--){r+=e[i]+t[i];e[i]=255&r;r>>=8}}function incHex(e,t){let a=1;for(let r=t;r>=0&&a>0;r--){a+=e[r];e[r]=255&a;a>>=8}}const Ba=16;class BinaryCMapStream{constructor(e){this.buffer=e;this.pos=0;this.end=e.length;this.tmpBuf=new Uint8Array(19)}readByte(){return this.pos>=this.end?-1:this.buffer[this.pos++]}readNumber(){let e,t=0;do{const a=this.readByte();if(a<0)throw new FormatError("unexpected EOF in bcmap");e=!(128&a);t=t<<7|127&a}while(!e);return t}readSigned(){const e=this.readNumber();return 1&e?~(e>>>1):e>>>1}readHex(e,t){e.set(this.buffer.subarray(this.pos,this.pos+t+1));this.pos+=t+1}readHexNumber(e,t){let a;const r=this.tmpBuf;let i=0;do{const e=this.readByte();if(e<0)throw new FormatError("unexpected EOF in bcmap");a=!(128&e);r[i++]=127&e}while(!a);let n=t,s=0,o=0;for(;n>=0;){for(;o<8&&r.length>0;){s|=r[--i]<>=8;o-=8}}readHexSigned(e,t){this.readHexNumber(e,t);const a=1&e[t]?255:0;let r=0;for(let i=0;i<=t;i++){r=(1&r)<<8|e[i];e[i]=r>>1^a}}readString(){const e=this.readNumber(),t=new Array(e);for(let a=0;a=0;){const e=d>>5;if(7===e){switch(31&d){case 0:r.readString();break;case 1:n=r.readString()}continue}const a=!!(16&d),i=15&d;if(i+1>Ba)throw new Error("BinaryCMapReader.process: Invalid dataSize.");const f=1,g=r.readNumber();switch(e){case 0:r.readHex(s,i);r.readHexNumber(o,i);addHex(o,s,i);t.addCodespaceRange(i+1,hexToInt(s,i),hexToInt(o,i));for(let e=1;e=0;--i){r[a+i]=255&s;s>>=8}}}}class AsciiHexStream extends DecodeStream{constructor(e,t){t&&(t*=.5);super(t);this.str=e;this.dict=e.dict;this.firstDigit=-1}readBlock(){const e=this.str.getBytes(8e3);if(!e.length){this.eof=!0;return}const t=e.length+1>>1,a=this.ensureBuffer(this.bufferLength+t);let r=this.bufferLength,i=this.firstDigit;for(const t of e){let e;if(t>=48&&t<=57)e=15&t;else{if(!(t>=65&&t<=70||t>=97&&t<=102)){if(62===t){this.eof=!0;break}continue}e=9+(15&t)}if(i<0)i=e;else{a[r++]=i<<4|e;i=-1}}if(i>=0&&this.eof){a[r++]=i<<4;i=-1}this.firstDigit=i;this.bufferLength=r}}const Ra=-1,Na=[[-1,-1],[-1,-1],[7,8],[7,7],[6,6],[6,6],[6,5],[6,5],[4,0],[4,0],[4,0],[4,0],[4,0],[4,0],[4,0],[4,0],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2]],Ea=[[-1,-1],[12,-2],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[11,1792],[11,1792],[12,1984],[12,2048],[12,2112],[12,2176],[12,2240],[12,2304],[11,1856],[11,1856],[11,1920],[11,1920],[12,2368],[12,2432],[12,2496],[12,2560]],Pa=[[-1,-1],[-1,-1],[-1,-1],[-1,-1],[8,29],[8,29],[8,30],[8,30],[8,45],[8,45],[8,46],[8,46],[7,22],[7,22],[7,22],[7,22],[7,23],[7,23],[7,23],[7,23],[8,47],[8,47],[8,48],[8,48],[6,13],[6,13],[6,13],[6,13],[6,13],[6,13],[6,13],[6,13],[7,20],[7,20],[7,20],[7,20],[8,33],[8,33],[8,34],[8,34],[8,35],[8,35],[8,36],[8,36],[8,37],[8,37],[8,38],[8,38],[7,19],[7,19],[7,19],[7,19],[8,31],[8,31],[8,32],[8,32],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,12],[6,12],[6,12],[6,12],[6,12],[6,12],[6,12],[6,12],[8,53],[8,53],[8,54],[8,54],[7,26],[7,26],[7,26],[7,26],[8,39],[8,39],[8,40],[8,40],[8,41],[8,41],[8,42],[8,42],[8,43],[8,43],[8,44],[8,44],[7,21],[7,21],[7,21],[7,21],[7,28],[7,28],[7,28],[7,28],[8,61],[8,61],[8,62],[8,62],[8,63],[8,63],[8,0],[8,0],[8,320],[8,320],[8,384],[8,384],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[7,27],[7,27],[7,27],[7,27],[8,59],[8,59],[8,60],[8,60],[9,1472],[9,1536],[9,1600],[9,1728],[7,18],[7,18],[7,18],[7,18],[7,24],[7,24],[7,24],[7,24],[8,49],[8,49],[8,50],[8,50],[8,51],[8,51],[8,52],[8,52],[7,25],[7,25],[7,25],[7,25],[8,55],[8,55],[8,56],[8,56],[8,57],[8,57],[8,58],[8,58],[6,192],[6,192],[6,192],[6,192],[6,192],[6,192],[6,192],[6,192],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[8,448],[8,448],[8,512],[8,512],[9,704],[9,768],[8,640],[8,640],[8,576],[8,576],[9,832],[9,896],[9,960],[9,1024],[9,1088],[9,1152],[9,1216],[9,1280],[9,1344],[9,1408],[7,256],[7,256],[7,256],[7,256],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[6,16],[6,16],[6,16],[6,16],[6,16],[6,16],[6,16],[6,16],[6,17],[6,17],[6,17],[6,17],[6,17],[6,17],[6,17],[6,17],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[6,14],[6,14],[6,14],[6,14],[6,14],[6,14],[6,14],[6,14],[6,15],[6,15],[6,15],[6,15],[6,15],[6,15],[6,15],[6,15],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7]],La=[[-1,-1],[-1,-1],[12,-2],[12,-2],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[11,1792],[11,1792],[11,1792],[11,1792],[12,1984],[12,1984],[12,2048],[12,2048],[12,2112],[12,2112],[12,2176],[12,2176],[12,2240],[12,2240],[12,2304],[12,2304],[11,1856],[11,1856],[11,1856],[11,1856],[11,1920],[11,1920],[11,1920],[11,1920],[12,2368],[12,2368],[12,2432],[12,2432],[12,2496],[12,2496],[12,2560],[12,2560],[10,18],[10,18],[10,18],[10,18],[10,18],[10,18],[10,18],[10,18],[12,52],[12,52],[13,640],[13,704],[13,768],[13,832],[12,55],[12,55],[12,56],[12,56],[13,1280],[13,1344],[13,1408],[13,1472],[12,59],[12,59],[12,60],[12,60],[13,1536],[13,1600],[11,24],[11,24],[11,24],[11,24],[11,25],[11,25],[11,25],[11,25],[13,1664],[13,1728],[12,320],[12,320],[12,384],[12,384],[12,448],[12,448],[13,512],[13,576],[12,53],[12,53],[12,54],[12,54],[13,896],[13,960],[13,1024],[13,1088],[13,1152],[13,1216],[10,64],[10,64],[10,64],[10,64],[10,64],[10,64],[10,64],[10,64]],_a=[[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[11,23],[11,23],[12,50],[12,51],[12,44],[12,45],[12,46],[12,47],[12,57],[12,58],[12,61],[12,256],[10,16],[10,16],[10,16],[10,16],[10,17],[10,17],[10,17],[10,17],[12,48],[12,49],[12,62],[12,63],[12,30],[12,31],[12,32],[12,33],[12,40],[12,41],[11,22],[11,22],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[9,15],[9,15],[9,15],[9,15],[9,15],[9,15],[9,15],[9,15],[12,128],[12,192],[12,26],[12,27],[12,28],[12,29],[11,19],[11,19],[11,20],[11,20],[12,34],[12,35],[12,36],[12,37],[12,38],[12,39],[11,21],[11,21],[12,42],[12,43],[10,0],[10,0],[10,0],[10,0],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12]],ja=[[-1,-1],[-1,-1],[-1,-1],[-1,-1],[6,9],[6,8],[5,7],[5,7],[4,6],[4,6],[4,6],[4,6],[4,5],[4,5],[4,5],[4,5],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2]];class CCITTFaxDecoder{constructor(e,t={}){if("function"!=typeof e?.next)throw new Error('CCITTFaxDecoder - invalid "source" parameter.');this.source=e;this.eof=!1;this.encoding=t.K||0;this.eoline=t.EndOfLine||!1;this.byteAlign=t.EncodedByteAlign||!1;this.columns=t.Columns||1728;this.rows=t.Rows||0;this.eoblock=t.EndOfBlock??!0;this.black=t.BlackIs1||!1;this.codingLine=new Uint32Array(this.columns+1);this.refLine=new Uint32Array(this.columns+2);this.codingLine[0]=this.columns;this.codingPos=0;this.row=0;this.nextLine2D=this.encoding<0;this.inputBits=0;this.inputBuf=0;this.outputBits=0;this.rowsDone=!1;let a;for(;0===(a=this._lookBits(12));)this._eatBits(1);1===a&&this._eatBits(12);if(this.encoding>0){this.nextLine2D=!this._lookBits(1);this._eatBits(1)}}readNextChar(){if(this.eof)return-1;const e=this.refLine,t=this.codingLine,a=this.columns;let r,i,n,s,o;if(0===this.outputBits){this.rowsDone&&(this.eof=!0);if(this.eof)return-1;this.err=!1;let n,o,c;if(this.nextLine2D){for(s=0;t[s]=64);do{o+=c=this._getWhiteCode()}while(c>=64)}else{do{n+=c=this._getWhiteCode()}while(c>=64);do{o+=c=this._getBlackCode()}while(c>=64)}this._addPixels(t[this.codingPos]+n,i);t[this.codingPos]0?--r:++r;for(;e[r]<=t[this.codingPos]&&e[r]0?--r:++r;for(;e[r]<=t[this.codingPos]&&e[r]0?--r:++r;for(;e[r]<=t[this.codingPos]&&e[r]=64);else do{n+=c=this._getWhiteCode()}while(c>=64);this._addPixels(t[this.codingPos]+n,i);i^=1}}let l=!1;this.byteAlign&&(this.inputBits&=-8);if(this.eoblock||this.row!==this.rows-1){n=this._lookBits(12);if(this.eoline)for(;n!==Ra&&1!==n;){this._eatBits(1);n=this._lookBits(12)}else for(;0===n;){this._eatBits(1);n=this._lookBits(12)}if(1===n){this._eatBits(12);l=!0}else n===Ra&&(this.eof=!0)}else this.rowsDone=!0;if(!this.eof&&this.encoding>0&&!this.rowsDone){this.nextLine2D=!this._lookBits(1);this._eatBits(1)}if(this.eoblock&&l&&this.byteAlign){n=this._lookBits(12);if(1===n){this._eatBits(12);if(this.encoding>0){this._lookBits(1);this._eatBits(1)}if(this.encoding>=0)for(s=0;s<4;++s){n=this._lookBits(12);1!==n&&info("bad rtc code: "+n);this._eatBits(12);if(this.encoding>0){this._lookBits(1);this._eatBits(1)}}this.eof=!0}}else if(this.err&&this.eoline){for(;;){n=this._lookBits(13);if(n===Ra){this.eof=!0;return-1}if(n>>1==1)break;this._eatBits(1)}this._eatBits(12);if(this.encoding>0){this._eatBits(1);this.nextLine2D=!(1&n)}}this.outputBits=t[0]>0?t[this.codingPos=0]:t[this.codingPos=1];this.row++}if(this.outputBits>=8){o=1&this.codingPos?0:255;this.outputBits-=8;if(0===this.outputBits&&t[this.codingPos]n){o<<=n;1&this.codingPos||(o|=255>>8-n);this.outputBits-=n;n=0}else{o<<=this.outputBits;1&this.codingPos||(o|=255>>8-this.outputBits);n-=this.outputBits;this.outputBits=0;if(t[this.codingPos]0){o<<=n;n=0}}}while(n)}this.black&&(o^=255);return o}_addPixels(e,t){const a=this.codingLine;let r=this.codingPos;if(e>a[r]){if(e>this.columns){info("row is wrong length");this.err=!0;e=this.columns}1&r^t&&++r;a[r]=e}this.codingPos=r}_addPixelsNeg(e,t){const a=this.codingLine;let r=this.codingPos;if(e>a[r]){if(e>this.columns){info("row is wrong length");this.err=!0;e=this.columns}1&r^t&&++r;a[r]=e}else if(e0&&e=i){const t=a[e-i];if(t[0]===r){this._eatBits(r);return[!0,t[1],!0]}}}return[!1,0,!1]}_getTwoDimCode(){let e,t=0;if(this.eoblock){t=this._lookBits(7);e=Na[t];if(e?.[0]>0){this._eatBits(e[0]);return e[1]}}else{const e=this._findTableCode(1,7,Na);if(e[0]&&e[2])return e[1]}info("Bad two dim code");return Ra}_getWhiteCode(){let e,t=0;if(this.eoblock){t=this._lookBits(12);if(t===Ra)return 1;e=t>>5?Pa[t>>3]:Ea[t];if(e[0]>0){this._eatBits(e[0]);return e[1]}}else{let e=this._findTableCode(1,9,Pa);if(e[0])return e[1];e=this._findTableCode(11,12,Ea);if(e[0])return e[1]}info("bad white code");this._eatBits(1);return 1}_getBlackCode(){let e,t;if(this.eoblock){e=this._lookBits(13);if(e===Ra)return 1;t=e>>7?!(e>>9)&&e>>7?_a[(e>>1)-64]:ja[e>>7]:La[e];if(t[0]>0){this._eatBits(t[0]);return t[1]}}else{let e=this._findTableCode(2,6,ja);if(e[0])return e[1];e=this._findTableCode(7,12,_a,64);if(e[0])return e[1];e=this._findTableCode(10,13,La);if(e[0])return e[1]}info("bad black code");this._eatBits(1);return 1}_lookBits(e){let t;for(;this.inputBits>16-e;this.inputBuf=this.inputBuf<<8|t;this.inputBits+=8}return this.inputBuf>>this.inputBits-e&65535>>16-e}_eatBits(e){(this.inputBits-=e)<0&&(this.inputBits=0)}}class CCITTFaxStream extends DecodeStream{constructor(e,t,a){super(t);this.str=e;this.dict=e.dict;a instanceof Dict||(a=Dict.empty);const r={next:()=>e.getByte()};this.ccittFaxDecoder=new CCITTFaxDecoder(r,{K:a.get("K"),EndOfLine:a.get("EndOfLine"),EncodedByteAlign:a.get("EncodedByteAlign"),Columns:a.get("Columns"),Rows:a.get("Rows"),EndOfBlock:a.get("EndOfBlock"),BlackIs1:a.get("BlackIs1")})}readBlock(){for(;!this.eof;){const e=this.ccittFaxDecoder.readNextChar();if(-1===e){this.eof=!0;return}this.ensureBuffer(this.bufferLength+1);this.buffer[this.bufferLength++]=e}}}const Ua=new Int32Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Xa=new Int32Array([3,4,5,6,7,8,9,10,65547,65549,65551,65553,131091,131095,131099,131103,196643,196651,196659,196667,262211,262227,262243,262259,327811,327843,327875,327907,258,258,258]),qa=new Int32Array([1,2,3,4,65541,65543,131081,131085,196625,196633,262177,262193,327745,327777,393345,393409,459009,459137,524801,525057,590849,591361,657409,658433,724993,727041,794625,798721,868353,876545]),Ha=[new Int32Array([459008,524368,524304,524568,459024,524400,524336,590016,459016,524384,524320,589984,524288,524416,524352,590048,459012,524376,524312,589968,459028,524408,524344,590032,459020,524392,524328,59e4,524296,524424,524360,590064,459010,524372,524308,524572,459026,524404,524340,590024,459018,524388,524324,589992,524292,524420,524356,590056,459014,524380,524316,589976,459030,524412,524348,590040,459022,524396,524332,590008,524300,524428,524364,590072,459009,524370,524306,524570,459025,524402,524338,590020,459017,524386,524322,589988,524290,524418,524354,590052,459013,524378,524314,589972,459029,524410,524346,590036,459021,524394,524330,590004,524298,524426,524362,590068,459011,524374,524310,524574,459027,524406,524342,590028,459019,524390,524326,589996,524294,524422,524358,590060,459015,524382,524318,589980,459031,524414,524350,590044,459023,524398,524334,590012,524302,524430,524366,590076,459008,524369,524305,524569,459024,524401,524337,590018,459016,524385,524321,589986,524289,524417,524353,590050,459012,524377,524313,589970,459028,524409,524345,590034,459020,524393,524329,590002,524297,524425,524361,590066,459010,524373,524309,524573,459026,524405,524341,590026,459018,524389,524325,589994,524293,524421,524357,590058,459014,524381,524317,589978,459030,524413,524349,590042,459022,524397,524333,590010,524301,524429,524365,590074,459009,524371,524307,524571,459025,524403,524339,590022,459017,524387,524323,589990,524291,524419,524355,590054,459013,524379,524315,589974,459029,524411,524347,590038,459021,524395,524331,590006,524299,524427,524363,590070,459011,524375,524311,524575,459027,524407,524343,590030,459019,524391,524327,589998,524295,524423,524359,590062,459015,524383,524319,589982,459031,524415,524351,590046,459023,524399,524335,590014,524303,524431,524367,590078,459008,524368,524304,524568,459024,524400,524336,590017,459016,524384,524320,589985,524288,524416,524352,590049,459012,524376,524312,589969,459028,524408,524344,590033,459020,524392,524328,590001,524296,524424,524360,590065,459010,524372,524308,524572,459026,524404,524340,590025,459018,524388,524324,589993,524292,524420,524356,590057,459014,524380,524316,589977,459030,524412,524348,590041,459022,524396,524332,590009,524300,524428,524364,590073,459009,524370,524306,524570,459025,524402,524338,590021,459017,524386,524322,589989,524290,524418,524354,590053,459013,524378,524314,589973,459029,524410,524346,590037,459021,524394,524330,590005,524298,524426,524362,590069,459011,524374,524310,524574,459027,524406,524342,590029,459019,524390,524326,589997,524294,524422,524358,590061,459015,524382,524318,589981,459031,524414,524350,590045,459023,524398,524334,590013,524302,524430,524366,590077,459008,524369,524305,524569,459024,524401,524337,590019,459016,524385,524321,589987,524289,524417,524353,590051,459012,524377,524313,589971,459028,524409,524345,590035,459020,524393,524329,590003,524297,524425,524361,590067,459010,524373,524309,524573,459026,524405,524341,590027,459018,524389,524325,589995,524293,524421,524357,590059,459014,524381,524317,589979,459030,524413,524349,590043,459022,524397,524333,590011,524301,524429,524365,590075,459009,524371,524307,524571,459025,524403,524339,590023,459017,524387,524323,589991,524291,524419,524355,590055,459013,524379,524315,589975,459029,524411,524347,590039,459021,524395,524331,590007,524299,524427,524363,590071,459011,524375,524311,524575,459027,524407,524343,590031,459019,524391,524327,589999,524295,524423,524359,590063,459015,524383,524319,589983,459031,524415,524351,590047,459023,524399,524335,590015,524303,524431,524367,590079]),9],Wa=[new Int32Array([327680,327696,327688,327704,327684,327700,327692,327708,327682,327698,327690,327706,327686,327702,327694,0,327681,327697,327689,327705,327685,327701,327693,327709,327683,327699,327691,327707,327687,327703,327695,0]),5];class FlateStream extends DecodeStream{constructor(e,t){super(t);this.str=e;this.dict=e.dict;const a=e.getByte(),r=e.getByte();if(-1===a||-1===r)throw new FormatError(`Invalid header in flate stream: ${a}, ${r}`);if(8!=(15&a))throw new FormatError(`Unknown compression method in flate stream: ${a}, ${r}`);if(((a<<8)+r)%31!=0)throw new FormatError(`Bad FCHECK in flate stream: ${a}, ${r}`);if(32&r)throw new FormatError(`FDICT bit set in flate stream: ${a}, ${r}`);this.codeSize=0;this.codeBuf=0}async getImageData(e,t){const a=await this.asyncGetBytes();return a?a.length<=e?a:a.subarray(0,e):this.getBytes(e)}async asyncGetBytes(){this.str.reset();const e=this.str.getBytes();try{const{readable:t,writable:a}=new DecompressionStream("deflate"),r=a.getWriter();await r.ready;r.write(e).then(async()=>{await r.ready;await r.close()}).catch(()=>{});const i=[];let n=0;for await(const e of t){i.push(e);n+=e.byteLength}const s=new Uint8Array(n);let o=0;for(const e of i){s.set(e,o);o+=e.byteLength}return s}catch{this.str=new Stream(e,2,e.length,this.str.dict);this.reset();return null}}get isAsync(){return!0}getBits(e){const t=this.str;let a,r=this.codeSize,i=this.codeBuf;for(;r>e;this.codeSize=r-=e;return a}getCode(e){const t=this.str,a=e[0],r=e[1];let i,n=this.codeSize,s=this.codeBuf;for(;n>16,l=65535&o;if(c<1||n>c;this.codeSize=n-c;return l}generateHuffmanTable(e){const t=e.length;let a,r=0;for(a=0;ar&&(r=e[a]);const i=1<>=1}for(a=e;a>=1;if(0===t){let t;if(-1===(t=r.getByte())){this.#X("Bad block header in flate stream");return}let a=t;if(-1===(t=r.getByte())){this.#X("Bad block header in flate stream");return}a|=t<<8;if(-1===(t=r.getByte())){this.#X("Bad block header in flate stream");return}let i=t;if(-1===(t=r.getByte())){this.#X("Bad block header in flate stream");return}i|=t<<8;if(i!==(65535&~a)&&(0!==a||0!==i))throw new FormatError("Bad uncompressed block length in flate stream");this.codeBuf=0;this.codeSize=0;const n=this.bufferLength,s=n+a;e=this.ensureBuffer(s);this.bufferLength=s;if(0===a)-1===r.peekByte()&&(this.eof=!0);else{const t=r.getBytes(a);e.set(t,n);t.length0;)h[o++]=f}i=this.generateHuffmanTable(h.subarray(0,e));n=this.generateHuffmanTable(h.subarray(e,l))}}e=this.buffer;let s=e?e.length:0,o=this.bufferLength;for(;;){let t=this.getCode(i);if(t<256){if(o+1>=s){e=this.ensureBuffer(o+1);s=e.length}e[o++]=t;continue}if(256===t){this.bufferLength=o;return}t-=257;t=Xa[t];let r=t>>16;r>0&&(r=this.getBits(r));a=(65535&t)+r;t=this.getCode(n);t=qa[t];r=t>>16;r>0&&(r=this.getBits(r));const c=(65535&t)+r;if(o+a>=s){e=this.ensureBuffer(o+a);s=e.length}for(let t=0;t>9&127;this.clow=this.clow<<7&65535;this.ct-=7;this.a=32768}byteIn(){const e=this.data;let t=this.bp;if(255===e[t])if(e[t+1]>143){this.clow+=65280;this.ct=8}else{t++;this.clow+=e[t]<<9;this.ct=7;this.bp=t}else{t++;this.clow+=t65535){this.chigh+=this.clow>>16;this.clow&=65535}}readBit(e,t){let a=e[t]>>1,r=1&e[t];const i=za[a],n=i.qe;let s,o=this.a-n;if(this.chigh>15&1;this.clow=this.clow<<1&65535;this.ct--}while(!(32768&o));this.a=o;e[t]=a<<1|r;return s}}class Jbig2Error extends Jt{constructor(e){super(e,"Jbig2Error")}}class ContextCache{getContexts(e){return e in this?this[e]:this[e]=new Int8Array(65536)}}class DecodingContext{constructor(e,t,a){this.data=e;this.start=t;this.end=a}get decoder(){return shadow(this,"decoder",new ArithmeticDecoder(this.data,this.start,this.end))}get contextCache(){return shadow(this,"contextCache",new ContextCache)}}function decodeInteger(e,t,a){const r=e.getContexts(t);let i=1;function readBits(e){let t=0;for(let n=0;n>>0}const n=readBits(1),s=readBits(1)?readBits(1)?readBits(1)?readBits(1)?readBits(1)?readBits(32)+4436:readBits(12)+340:readBits(8)+84:readBits(6)+20:readBits(4)+4:readBits(2);let o;0===n?o=s:s>0&&(o=-s);return o>=-2147483648&&o<=ca?o:null}function decodeIAID(e,t,a){const r=e.getContexts("IAID");let i=1;for(let e=0;ee.y-t.y||e.x-t.x);const h=l.length,u=new Int8Array(h),d=new Int8Array(h),f=[];let g,p,m=0,b=0,y=0,w=0;for(p=0;p=v&&E=F){q=q<<1&m;for(p=0;p=0&&_=0){j=D[L][_];j&&(q|=j<=e?l<<=1:l=l<<1|S[o][c]}for(f=0;f=w||c<0||c>=y?l<<=1:l=l<<1|r[o][c]}const g=k.readBit(C,l);t[s]=g}}return S}function decodeTextRegion(e,t,a,r,i,n,s,o,c,l,h,u,d,f,g,p,m,b,y){if(e&&t)throw new Jbig2Error("refinement with Huffman is not supported");const w=[];let x,S;for(x=0;x1&&(i=e?y.readBits(b):decodeInteger(C,"IAIT",k));const n=s*v+i,F=e?f.symbolIDTable.decode(y):decodeIAID(C,k,c),T=t&&(e?y.readBit():decodeInteger(C,"IARI",k));let O=o[F],M=O[0].length,D=O.length;if(T){const e=decodeInteger(C,"IARDW",k),t=decodeInteger(C,"IARDH",k);M+=e;D+=t;O=decodeRefinement(M,D,g,O,(e>>1)+decodeInteger(C,"IARDX",k),(t>>1)+decodeInteger(C,"IARDY",k),!1,p,m)}let R=0;l?1&u?R=D-1:r+=D-1:u>1?r+=M-1:R=M-1;const N=n-(1&u?0:D-1),E=r-(2&u?M-1:0);let L,_,j;if(l)for(L=0;L>5&7;const c=[31&s];let l=t+6;if(7===s){o=536870911&readUint32(e,l-1);l+=3;let t=o+7>>3;c[0]=e[l++];for(;--t>0;)c.push(e[l++])}else if(5===s||6===s)throw new Jbig2Error("invalid referred-to flags");a.retainBits=c;let h=4;a.number<=256?h=1:a.number<=65536&&(h=2);const u=[];let d,f;for(d=0;d>>24&255;n[3]=t.height>>16&255;n[4]=t.height>>8&255;n[5]=255&t.height;for(d=l,f=e.length;d>2&3;e.huffmanDWSelector=t>>4&3;e.bitmapSizeSelector=t>>6&1;e.aggregationInstancesSelector=t>>7&1;e.bitmapCodingContextUsed=!!(256&t);e.bitmapCodingContextRetained=!!(512&t);e.template=t>>10&3;e.refinementTemplate=t>>12&1;l+=2;if(!e.huffman){c=0===e.template?4:1;s=[];for(o=0;o>2&3;h.stripSize=1<>4&3;h.transposed=!!(64&u);h.combinationOperator=u>>7&3;h.defaultPixelValue=u>>9&1;h.dsOffset=u<<17>>27;h.refinementTemplate=u>>15&1;if(h.huffman){const e=readUint16(r,l);l+=2;h.huffmanFS=3&e;h.huffmanDS=e>>2&3;h.huffmanDT=e>>4&3;h.huffmanRefinementDW=e>>6&3;h.huffmanRefinementDH=e>>8&3;h.huffmanRefinementDX=e>>10&3;h.huffmanRefinementDY=e>>12&3;h.huffmanRefinementSizeSelector=!!(16384&e)}if(h.refinement&&!h.refinementTemplate){s=[];for(o=0;o<2;o++){s.push({x:readInt8(r,l),y:readInt8(r,l+1)});l+=2}h.refinementAt=s}h.numberOfSymbolInstances=readUint32(r,l);l+=4;n=[h,a.referredTo,r,l,i];break;case 16:const d={},f=r[l++];d.mmr=!!(1&f);d.template=f>>1&3;d.patternWidth=r[l++];d.patternHeight=r[l++];d.maxPatternIndex=readUint32(r,l);l+=4;n=[d,a.number,r,l,i];break;case 22:case 23:const g={};g.info=readRegionSegmentInformation(r,l);l+=Ya;const p=r[l++];g.mmr=!!(1&p);g.template=p>>1&3;g.enableSkip=!!(8&p);g.combinationOperator=p>>4&7;g.defaultPixelValue=p>>7&1;g.gridWidth=readUint32(r,l);l+=4;g.gridHeight=readUint32(r,l);l+=4;g.gridOffsetX=4294967295&readUint32(r,l);l+=4;g.gridOffsetY=4294967295&readUint32(r,l);l+=4;g.gridVectorX=readUint16(r,l);l+=2;g.gridVectorY=readUint16(r,l);l+=2;n=[g,a.referredTo,r,l,i];break;case 38:case 39:const m={};m.info=readRegionSegmentInformation(r,l);l+=Ya;const b=r[l++];m.mmr=!!(1&b);m.template=b>>1&3;m.prediction=!!(8&b);if(!m.mmr){c=0===m.template?4:1;s=[];for(o=0;o>2&1;y.combinationOperator=w>>3&3;y.requiresBuffer=!!(32&w);y.combinationOperatorOverride=!!(64&w);n=[y];break;case 49:case 50:case 51:case 62:break;case 53:n=[a.number,r,l,i];break;default:throw new Jbig2Error(`segment type ${a.typeName}(${a.type}) is not implemented`)}const h="on"+a.typeName;h in t&&t[h].apply(t,n)}function processSegments(e,t){for(let a=0,r=e.length;a>3,a=new Uint8ClampedArray(t*e.height);e.defaultPixelValue&&a.fill(255);this.buffer=a}drawBitmap(e,t){const a=this.currentPageInfo,r=e.width,i=e.height,n=a.width+7>>3,s=a.combinationOperatorOverride?e.combinationOperator:a.combinationOperator,o=this.buffer,c=128>>(7&e.x);let l,h,u,d,f=e.y*n+(e.x>>3);switch(s){case 0:for(l=0;l>=1;if(!u){u=128;d++}}f+=n}break;case 2:for(l=0;l>=1;if(!u){u=128;d++}}f+=n}break;default:throw new Jbig2Error(`operator ${s} is not supported`)}}onImmediateGenericRegion(e,t,a,r){const i=e.info,n=new DecodingContext(t,a,r),s=decodeBitmap(e.mmr,i.width,i.height,e.template,e.prediction,null,e.at,n);this.drawBitmap(i,s)}onImmediateLosslessGenericRegion(){this.onImmediateGenericRegion(...arguments)}onSymbolDictionary(e,t,a,r,i,n){let s,o;if(e.huffman){s=function getSymbolDictionaryHuffmanTables(e,t,a){let r,i,n,s,o=0;switch(e.huffmanDHSelector){case 0:case 1:r=getStandardTable(e.huffmanDHSelector+4);break;case 3:r=getCustomHuffmanTable(o,t,a);o++;break;default:throw new Jbig2Error("invalid Huffman DH selector")}switch(e.huffmanDWSelector){case 0:case 1:i=getStandardTable(e.huffmanDWSelector+2);break;case 3:i=getCustomHuffmanTable(o,t,a);o++;break;default:throw new Jbig2Error("invalid Huffman DW selector")}if(e.bitmapSizeSelector){n=getCustomHuffmanTable(o,t,a);o++}else n=getStandardTable(1);s=e.aggregationInstancesSelector?getCustomHuffmanTable(o,t,a):getStandardTable(1);return{tableDeltaHeight:r,tableDeltaWidth:i,tableBitmapSize:n,tableAggregateInstances:s}}(e,a,this.customTables);o=new Reader(r,i,n)}let c=this.symbols;c||(this.symbols=c={});const l=[];for(const e of a){const t=c[e];t&&l.push(...t)}const h=new DecodingContext(r,i,n);c[t]=function decodeSymbolDictionary(e,t,a,r,i,n,s,o,c,l,h,u){if(e&&t)throw new Jbig2Error("symbol refinement with Huffman is not supported");const d=[];let f=0,g=log2(a.length+r);const p=h.decoder,m=h.contextCache;let b,y;if(e){b=getStandardTable(1);y=[];g=Math.max(g,1)}for(;d.length1)w=decodeTextRegion(e,t,r,f,0,i,1,a.concat(d),g,0,0,1,0,n,c,l,h,0,u);else{const e=decodeIAID(m,p,g),t=decodeInteger(m,"IARDX",p),i=decodeInteger(m,"IARDY",p);w=decodeRefinement(r,f,c,e=32){let a,r,s;switch(t){case 32:if(0===e)throw new Jbig2Error("no previous value in symbol ID table");r=i.readBits(2)+3;a=n[e-1].prefixLength;break;case 33:r=i.readBits(3)+3;a=0;break;case 34:r=i.readBits(7)+11;a=0;break;default:throw new Jbig2Error("invalid code length in symbol ID table")}for(s=0;s=0;m--){O=e?decodeMMRBitmap(T,c,l,!0):decodeBitmap(!1,c,l,a,!1,null,v,g);F[m]=O}for(M=0;M=0;b--){R^=F[b][M][D];N|=R<>8;_=u+M*d-D*f>>8;if(L>=0&&L+S<=r&&_>=0&&_+k<=i)for(m=0;m=i)){U=p[t];j=E[m];for(b=0;b=0&&e>1&7),c=1+(r>>4&7),l=[];let h,u,d=i;do{h=s.readBits(o);u=s.readBits(c);l.push(new HuffmanLine([d,h,u,0]));d+=1<>t&1;if(t<=0)this.children[a]=new HuffmanTreeNode(e);else{let r=this.children[a];r||(this.children[a]=r=new HuffmanTreeNode(null));r.buildTree(e,t-1)}}decodeNode(e){if(this.isLeaf){if(this.isOOB)return null;const t=e.readBits(this.rangeLength);return this.rangeLow+(this.isLowerRange?-t:t)}const t=this.children[e.readBit()];if(!t)throw new Jbig2Error("invalid Huffman data");return t.decodeNode(e)}}class HuffmanTable{constructor(e,t){t||this.assignPrefixCodes(e);this.rootNode=new HuffmanTreeNode(null);for(let t=0,a=e.length;t0&&this.rootNode.buildTree(a,a.prefixLength-1)}}decode(e){return this.rootNode.decodeNode(e)}assignPrefixCodes(e){const t=e.length;let a=0;for(let r=0;r=this.end)throw new Jbig2Error("end of data while reading bit");this.currentByte=this.data[this.position++];this.shift=7}const e=this.currentByte>>this.shift&1;this.shift--;return e}readBits(e){let t,a=0;for(t=e-1;t>=0;t--)a|=this.readBit()<=this.end?-1:this.data[this.position++]}}function getCustomHuffmanTable(e,t,a){let r=0;for(let i=0,n=t.length;i>a&1;a--}}if(r&&!o){const e=5;for(let t=0;t>>t&(1<0;if(e<256){d[0]=e;f=1}else{if(!(e>=258)){if(256===e){h=9;s=258;f=0;continue}this.eof=!0;delete this.lzwState;break}if(e=0;t--){d[t]=o[a];a=l[a]}}else d[f++]=d[0]}if(i){l[s]=u;c[s]=c[u]+1;o[s]=d[0];s++;h=s+n&s+n-1?h:0|Math.min(Math.log(s+n)/.6931471805599453+1,12)}u=e;g+=f;if(r15))throw new FormatError(`Unsupported predictor: ${r}`);this.readBlock=2===r?this.readBlockTiff:this.readBlockPng;this.str=e;this.dict=e.dict;const i=this.colors=a.get("Colors")||1,n=this.bits=a.get("BPC","BitsPerComponent")||8,s=this.columns=a.get("Columns")||1;this.pixBytes=i*n+7>>3;this.rowBytes=s*i*n+7>>3;return this}readBlockTiff(){const e=this.rowBytes,t=this.bufferLength,a=this.ensureBuffer(t+e),r=this.bits,i=this.colors,n=this.str.getBytes(e);this.eof=!n.length;if(this.eof)return;let s,o=0,c=0,l=0,h=0,u=t;if(1===r&&1===i)for(s=0;s>1;e^=e>>2;e^=e>>4;o=(1&e)<<7;a[u++]=e}else if(8===r){for(s=0;s>8&255;a[u++]=255&e}}else{const e=new Uint8Array(i+1),u=(1<>l-r)&u;l-=r;c=c<=8){a[f++]=c>>h-8&255;h-=8}}h>0&&(a[f++]=(c<<8-h)+(o&(1<<8-h)-1))}this.bufferLength+=e}readBlockPng(){const e=this.rowBytes,t=this.pixBytes,a=this.str.getByte(),r=this.str.getBytes(e);this.eof=!r.length;if(this.eof)return;const i=this.bufferLength,n=this.ensureBuffer(i+e);let s=n.subarray(i-e,i);0===s.length&&(s=new Uint8Array(e));let o,c,l,h=i;switch(a){case 0:for(o=0;o>1)+r[o];for(;o>1)+r[o]&255;h++}break;case 4:for(o=0;o0){const e=this.str.getBytes(r);t.set(e,a);a+=r}}else{r=257-r;t=this.ensureBuffer(a+r+1);t.fill(e[1],a,a+r);a+=r}this.bufferLength=a}}class Parser{constructor({lexer:e,xref:t,allowStreams:a=!1,recoveryMode:r=!1}){this.lexer=e;this.xref=t;this.allowStreams=a;this.recoveryMode=r;this.imageCache=Object.create(null);this._imageId=0;this.refill()}refill(){this.buf1=this.lexer.getObj();this.buf2=this.lexer.getObj()}shift(){if(this.buf2 instanceof Cmd&&"ID"===this.buf2.cmd){this.buf1=this.buf2;this.buf2=null}else{this.buf1=this.buf2;this.buf2=this.lexer.getObj()}}tryShift(){try{this.shift();return!0}catch(e){if(e instanceof MissingDataException)throw e;return!1}}getObj(e=null){const t=this.buf1;this.shift();if(t instanceof Cmd)switch(t.cmd){case"BI":return this.makeInlineImage(e);case"[":const a=[];for(;!isCmd(this.buf1,"]")&&this.buf1!==aa;)a.push(this.getObj(e));if(this.buf1===aa){if(this.recoveryMode)return a;throw new ParserEOFException("End of file inside array.")}this.shift();return a;case"<<":const r=new Dict(this.xref);for(;!isCmd(this.buf1,">>")&&this.buf1!==aa;){if(!(this.buf1 instanceof Name)){info("Malformed dictionary: key must be a name object");this.shift();continue}const t=this.buf1.name;this.shift();if(this.buf1===aa)break;r.set(t,this.getObj(e))}if(this.buf1===aa){if(this.recoveryMode)return r;throw new ParserEOFException("End of file inside dictionary.")}if(isCmd(this.buf2,"stream"))return this.allowStreams?this.makeStream(r,e):r;this.shift();return r;default:return t}if(Number.isInteger(t)){if(Number.isInteger(this.buf1)&&isCmd(this.buf2,"R")){const e=Ref.get(t,this.buf1);this.shift();this.shift();return e}return t}return"string"==typeof t&&e?e.decryptString(t):t}findDefaultInlineStreamEnd(e){const{knownCommands:t}=this.lexer,a=e.pos;let r,i,n=0;for(;-1!==(r=e.getByte());)if(0===n)n=69===r?1:0;else if(1===n)n=73===r?2:0;else if(32===r||10===r||13===r){i=e.pos;const a=e.peekBytes(15),s=a.length;if(0===s)break;for(let e=0;e127))){n=0;break}}if(2!==n)continue;if(!t){warn("findDefaultInlineStreamEnd - `lexer.knownCommands` is undefined.");continue}const o=new Lexer(new Stream(e.peekBytes(75)),t);o._hexStringWarn=()=>{};let c=0;for(;;){const e=o.getObj();if(e===aa){n=0;break}if(e instanceof Cmd){const a=t[e.cmd];if(!a){n=0;break}if(a.variableArgs?c<=a.numArgs:c===a.numArgs)break;c=0;continue}c++}if(2===n)break}else n=0;if(-1===r){warn("findDefaultInlineStreamEnd: Reached the end of the stream without finding a valid EI marker");if(i){warn('... trying to recover by using the last "EI" occurrence.');e.skip(-(e.pos-i))}}let s=4;e.skip(-s);r=e.peekByte();e.skip(s);isWhiteSpace(r)||s--;return e.pos-s-a}findDCTDecodeInlineStreamEnd(e){const t=e.pos;let a,r,i=!1;for(;-1!==(a=e.getByte());)if(255===a){switch(e.getByte()){case 0:break;case 255:e.skip(-1);break;case 217:i=!0;break;case 192:case 193:case 194:case 195:case 197:case 198:case 199:case 201:case 202:case 203:case 205:case 206:case 207:case 196:case 204:case 218:case 219:case 220:case 221:case 222:case 223:case 224:case 225:case 226:case 227:case 228:case 229:case 230:case 231:case 232:case 233:case 234:case 235:case 236:case 237:case 238:case 239:case 254:r=e.getUint16();r>2?e.skip(r-2):e.skip(-2)}if(i)break}const n=e.pos-t;if(-1===a){warn("Inline DCTDecode image stream: EOI marker not found, searching for /EI/ instead.");e.skip(-n);return this.findDefaultInlineStreamEnd(e)}this.inlineStreamSkipEI(e);return n}findASCII85DecodeInlineStreamEnd(e){const t=e.pos;let a;for(;-1!==(a=e.getByte());)if(126===a){const t=e.pos;a=e.peekByte();for(;isWhiteSpace(a);){e.skip();a=e.peekByte()}if(62===a){e.skip();break}if(e.pos>t){const t=e.peekBytes(2);if(69===t[0]&&73===t[1])break}}const r=e.pos-t;if(-1===a){warn("Inline ASCII85Decode image stream: EOD marker not found, searching for /EI/ instead.");e.skip(-r);return this.findDefaultInlineStreamEnd(e)}this.inlineStreamSkipEI(e);return r}findASCIIHexDecodeInlineStreamEnd(e){const t=e.pos;let a;for(;-1!==(a=e.getByte())&&62!==a;);const r=e.pos-t;if(-1===a){warn("Inline ASCIIHexDecode image stream: EOD marker not found, searching for /EI/ instead.");e.skip(-r);return this.findDefaultInlineStreamEnd(e)}this.inlineStreamSkipEI(e);return r}inlineStreamSkipEI(e){let t,a=0;for(;-1!==(t=e.getByte());)if(0===a)a=69===t?1:0;else if(1===a)a=73===t?2:0;else if(2===a)break}makeInlineImage(e){const t=this.lexer,a=t.stream,r=Object.create(null);let i;for(;!isCmd(this.buf1,"ID")&&this.buf1!==aa;){if(!(this.buf1 instanceof Name))throw new FormatError("Dictionary key must be a name object");const t=this.buf1.name;this.shift();if(this.buf1===aa)break;r[t]=this.getObj(e)}-1!==t.beginInlineImagePos&&(i=a.pos-t.beginInlineImagePos);const n=this.xref.fetchIfRef(r.F||r.Filter);let s;if(n instanceof Name)s=n.name;else if(Array.isArray(n)){const e=this.xref.fetchIfRef(n[0]);e instanceof Name&&(s=e.name)}const o=a.pos;let c,l;switch(s){case"DCT":case"DCTDecode":c=this.findDCTDecodeInlineStreamEnd(a);break;case"A85":case"ASCII85Decode":c=this.findASCII85DecodeInlineStreamEnd(a);break;case"AHx":case"ASCIIHexDecode":c=this.findASCIIHexDecodeInlineStreamEnd(a);break;default:c=this.findDefaultInlineStreamEnd(a)}if(c<1e3&&i>0){const e=a.pos;a.pos=t.beginInlineImagePos;l=function getInlineImageCacheKey(e){const t=[],a=e.length;let r=0;for(;r=r){let r=!1;for(const e of i){const t=e.length;let i=0;for(;i=n){r=!0;break}if(i>=t){if(isWhiteSpace(s[c+o+i])){info(`Found "${bytesToString([...a,...e])}" when searching for endstream command.`);r=!0}break}}if(r){t.pos+=c;return t.pos-e}}c++}t.pos+=o}return-1}makeStream(e,t){const a=this.lexer;let r=a.stream;a.skipToNextLine();const i=r.pos-1;let n=e.get("Length");if(!Number.isInteger(n)){info(`Bad length "${n&&n.toString()}" in stream.`);n=0}r.pos=i+n;a.nextChar();if(this.tryShift()&&isCmd(this.buf2,"endstream"))this.shift();else{n=this.#q(i);if(n<0)throw new FormatError("Missing endstream command.");a.nextChar();this.shift();this.shift()}this.shift();r=r.makeSubStream(i,n,e);t&&(r=t.createStream(r,n));r=this.filter(r,e,n);r.dict=e;return r}filter(e,t,a){let r=t.get("F","Filter"),i=t.get("DP","DecodeParms");if(r instanceof Name){Array.isArray(i)&&warn("/DecodeParms should not be an Array, when /Filter is a Name.");return this.makeFilter(e,r.name,a,i)}let n=a;if(Array.isArray(r)){const t=r,a=i;for(let s=0,o=t.length;s=48&&e<=57?15&e:e>=65&&e<=70||e>=97&&e<=102?9+(15&e):-1}class Lexer{constructor(e,t=null){this.stream=e;this.nextChar();this.strBuf=[];this.knownCommands=t;this._hexStringNumWarn=0;this.beginInlineImagePos=-1}nextChar(){return this.currentChar=this.stream.getByte()}peekChar(){return this.stream.peekByte()}getNumber(){let e=this.currentChar,t=!1,a=0,r=1;if(45===e){r=-1;e=this.nextChar();45===e&&(e=this.nextChar())}else 43===e&&(e=this.nextChar());if(10===e||13===e)do{e=this.nextChar()}while(10===e||13===e);if(46===e){a=10;e=this.nextChar()}if(e<48||e>57){const t=`Invalid number: ${String.fromCharCode(e)} (charCode ${e})`;if(isWhiteSpace(e)||40===e||60===e||-1===e){info(`Lexer.getNumber - "${t}".`);return 0}throw new FormatError(t)}let i=e-48,n=0,s=1;for(;(e=this.nextChar())>=0;)if(e>=48&&e<=57){const r=e-48;if(t)n=10*n+r;else{0!==a&&(a*=10);i=10*i+r}}else if(46===e){if(0!==a)break;a=1}else if(45===e)warn("Badly formatted number: minus sign in the middle");else{if(69!==e&&101!==e)break;e=this.peekChar();if(43===e||45===e){s=45===e?-1:1;this.nextChar()}else if(e<48||e>57)break;t=!0}0!==a&&(i/=a);t&&(i*=10**(s*n));return r*i}getString(){let e=1,t=!1;const a=this.strBuf;a.length=0;let r=this.nextChar();for(;;){let i=!1;switch(0|r){case-1:warn("Unterminated string");t=!0;break;case 40:++e;a.push("(");break;case 41:if(0===--e){this.nextChar();t=!0}else a.push(")");break;case 92:r=this.nextChar();switch(r){case-1:warn("Unterminated string");t=!0;break;case 110:a.push("\n");break;case 114:a.push("\r");break;case 116:a.push("\t");break;case 98:a.push("\b");break;case 102:a.push("\f");break;case 92:case 40:case 41:a.push(String.fromCharCode(r));break;case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:let e=15&r;r=this.nextChar();i=!0;if(r>=48&&r<=55){e=(e<<3)+(15&r);r=this.nextChar();if(r>=48&&r<=55){i=!1;e=(e<<3)+(15&r)}}a.push(String.fromCharCode(e));break;case 13:10===this.peekChar()&&this.nextChar();break;case 10:break;default:a.push(String.fromCharCode(r))}break;default:a.push(String.fromCharCode(r))}if(t)break;i||(r=this.nextChar())}return a.join("")}getName(){let e,t;const a=this.strBuf;a.length=0;for(;(e=this.nextChar())>=0&&!Qa[e];)if(35===e){e=this.nextChar();if(Qa[e]){warn("Lexer_getName: NUMBER SIGN (#) should be followed by a hexadecimal number.");a.push("#");break}const r=toHexDigit(e);if(-1!==r){t=e;e=this.nextChar();const i=toHexDigit(e);if(-1===i){warn(`Lexer_getName: Illegal digit (${String.fromCharCode(e)}) in hexadecimal number.`);a.push("#",String.fromCharCode(t));if(Qa[e])break;a.push(String.fromCharCode(e));continue}a.push(String.fromCharCode(r<<4|i))}else a.push("#",String.fromCharCode(e))}else a.push(String.fromCharCode(e));a.length>127&&warn(`Name token is longer than allowed by the spec: ${a.length}`);return Name.get(a.join(""))}_hexStringWarn(e){5!==this._hexStringNumWarn++?this._hexStringNumWarn>5||warn(`getHexString - ignoring invalid character: ${e}`):warn("getHexString - ignoring additional invalid characters.")}getHexString(){const e=this.strBuf;e.length=0;let t=this.currentChar,a=-1,r=-1;this._hexStringNumWarn=0;for(;;){if(t<0){warn("Unterminated hex string");break}if(62===t){this.nextChar();break}if(1!==Qa[t]){r=toHexDigit(t);if(-1===r)this._hexStringWarn(t);else if(-1===a)a=r;else{e.push(String.fromCharCode(a<<4|r));a=-1}t=this.nextChar()}else t=this.nextChar()}-1!==a&&e.push(String.fromCharCode(a<<4));return e.join("")}getObj(){let e=!1,t=this.currentChar;for(;;){if(t<0)return aa;if(e)10!==t&&13!==t||(e=!1);else if(37===t)e=!0;else if(1!==Qa[t])break;t=this.nextChar()}switch(0|t){case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:case 43:case 45:case 46:return this.getNumber();case 40:return this.getString();case 47:return this.getName();case 91:this.nextChar();return Cmd.get("[");case 93:this.nextChar();return Cmd.get("]");case 60:t=this.nextChar();if(60===t){this.nextChar();return Cmd.get("<<")}return this.getHexString();case 62:t=this.nextChar();if(62===t){this.nextChar();return Cmd.get(">>")}return Cmd.get(">");case 123:this.nextChar();return Cmd.get("{");case 125:this.nextChar();return Cmd.get("}");case 41:this.nextChar();throw new FormatError(`Illegal character: ${t}`)}let a=String.fromCharCode(t);if(t<32||t>127){const e=this.peekChar();if(e>=32&&e<=127){this.nextChar();return Cmd.get(a)}}const r=this.knownCommands;let i=void 0!==r?.[a];for(;(t=this.nextChar())>=0&&!Qa[t];){const e=a+String.fromCharCode(t);if(i&&void 0===r[e])break;if(128===a.length)throw new FormatError(`Command token too long: ${a.length}`);a=e;i=void 0!==r?.[a]}if("true"===a)return!0;if("false"===a)return!1;if("null"===a)return null;"BI"===a&&(this.beginInlineImagePos=this.stream.pos);return Cmd.get(a)}skipToNextLine(){let e=this.currentChar;for(;e>=0;){if(13===e){e=this.nextChar();10===e&&this.nextChar();break}if(10===e){this.nextChar();break}e=this.nextChar()}}}class Linearization{static create(e){function getInt(e,t,a=!1){const r=e.get(t);if(Number.isInteger(r)&&(a?r>=0:r>0))return r;throw new Error(`The "${t}" parameter in the linearization dictionary is invalid.`)}const t=new Parser({lexer:new Lexer(e),xref:null}),a=t.getObj(),r=t.getObj(),i=t.getObj(),n=t.getObj();let s,o;if(!(Number.isInteger(a)&&Number.isInteger(r)&&isCmd(i,"obj")&&n instanceof Dict&&"number"==typeof(s=n.get("Linearized"))&&s>0))return null;if((o=getInt(n,"L"))!==e.length)throw new Error('The "L" parameter in the linearization dictionary does not equal the stream length.');return{length:o,hints:function getHints(e){const t=e.get("H");let a;if(Array.isArray(t)&&(2===(a=t.length)||4===a)){for(let e=0;e0))throw new Error(`Hint (${e}) in the linearization dictionary is invalid.`)}return t}throw new Error("Hint array in the linearization dictionary is invalid.")}(n),objectNumberFirst:getInt(n,"O"),endFirst:getInt(n,"E"),numPages:getInt(n,"N"),mainXRefEntriesOffset:getInt(n,"T"),pageFirst:n.has("P")?getInt(n,"P",!0):0}}}const er=["Adobe-GB1-UCS2","Adobe-CNS1-UCS2","Adobe-Japan1-UCS2","Adobe-Korea1-UCS2","78-EUC-H","78-EUC-V","78-H","78-RKSJ-H","78-RKSJ-V","78-V","78ms-RKSJ-H","78ms-RKSJ-V","83pv-RKSJ-H","90ms-RKSJ-H","90ms-RKSJ-V","90msp-RKSJ-H","90msp-RKSJ-V","90pv-RKSJ-H","90pv-RKSJ-V","Add-H","Add-RKSJ-H","Add-RKSJ-V","Add-V","Adobe-CNS1-0","Adobe-CNS1-1","Adobe-CNS1-2","Adobe-CNS1-3","Adobe-CNS1-4","Adobe-CNS1-5","Adobe-CNS1-6","Adobe-GB1-0","Adobe-GB1-1","Adobe-GB1-2","Adobe-GB1-3","Adobe-GB1-4","Adobe-GB1-5","Adobe-Japan1-0","Adobe-Japan1-1","Adobe-Japan1-2","Adobe-Japan1-3","Adobe-Japan1-4","Adobe-Japan1-5","Adobe-Japan1-6","Adobe-Korea1-0","Adobe-Korea1-1","Adobe-Korea1-2","B5-H","B5-V","B5pc-H","B5pc-V","CNS-EUC-H","CNS-EUC-V","CNS1-H","CNS1-V","CNS2-H","CNS2-V","ETHK-B5-H","ETHK-B5-V","ETen-B5-H","ETen-B5-V","ETenms-B5-H","ETenms-B5-V","EUC-H","EUC-V","Ext-H","Ext-RKSJ-H","Ext-RKSJ-V","Ext-V","GB-EUC-H","GB-EUC-V","GB-H","GB-V","GBK-EUC-H","GBK-EUC-V","GBK2K-H","GBK2K-V","GBKp-EUC-H","GBKp-EUC-V","GBT-EUC-H","GBT-EUC-V","GBT-H","GBT-V","GBTpc-EUC-H","GBTpc-EUC-V","GBpc-EUC-H","GBpc-EUC-V","H","HKdla-B5-H","HKdla-B5-V","HKdlb-B5-H","HKdlb-B5-V","HKgccs-B5-H","HKgccs-B5-V","HKm314-B5-H","HKm314-B5-V","HKm471-B5-H","HKm471-B5-V","HKscs-B5-H","HKscs-B5-V","Hankaku","Hiragana","KSC-EUC-H","KSC-EUC-V","KSC-H","KSC-Johab-H","KSC-Johab-V","KSC-V","KSCms-UHC-H","KSCms-UHC-HW-H","KSCms-UHC-HW-V","KSCms-UHC-V","KSCpc-EUC-H","KSCpc-EUC-V","Katakana","NWP-H","NWP-V","RKSJ-H","RKSJ-V","Roman","UniCNS-UCS2-H","UniCNS-UCS2-V","UniCNS-UTF16-H","UniCNS-UTF16-V","UniCNS-UTF32-H","UniCNS-UTF32-V","UniCNS-UTF8-H","UniCNS-UTF8-V","UniGB-UCS2-H","UniGB-UCS2-V","UniGB-UTF16-H","UniGB-UTF16-V","UniGB-UTF32-H","UniGB-UTF32-V","UniGB-UTF8-H","UniGB-UTF8-V","UniJIS-UCS2-H","UniJIS-UCS2-HW-H","UniJIS-UCS2-HW-V","UniJIS-UCS2-V","UniJIS-UTF16-H","UniJIS-UTF16-V","UniJIS-UTF32-H","UniJIS-UTF32-V","UniJIS-UTF8-H","UniJIS-UTF8-V","UniJIS2004-UTF16-H","UniJIS2004-UTF16-V","UniJIS2004-UTF32-H","UniJIS2004-UTF32-V","UniJIS2004-UTF8-H","UniJIS2004-UTF8-V","UniJISPro-UCS2-HW-V","UniJISPro-UCS2-V","UniJISPro-UTF8-V","UniJISX0213-UTF32-H","UniJISX0213-UTF32-V","UniJISX02132004-UTF32-H","UniJISX02132004-UTF32-V","UniKS-UCS2-H","UniKS-UCS2-V","UniKS-UTF16-H","UniKS-UTF16-V","UniKS-UTF32-H","UniKS-UTF32-V","UniKS-UTF8-H","UniKS-UTF8-V","V","WP-Symbol"],tr=2**24-1;class CMap{constructor(e=!1){this.codespaceRanges=[[],[],[],[]];this.numCodespaceRanges=0;this._map=[];this.name="";this.vertical=!1;this.useCMap=null;this.builtInCMap=e}addCodespaceRange(e,t,a){this.codespaceRanges[e-1].push(t,a);this.numCodespaceRanges++}mapCidRange(e,t,a){if(t-e>tr)throw new Error("mapCidRange - ignoring data above MAX_MAP_RANGE.");for(;e<=t;)this._map[e++]=a++}mapBfRange(e,t,a){if(t-e>tr)throw new Error("mapBfRange - ignoring data above MAX_MAP_RANGE.");const r=a.length-1;for(;e<=t;){this._map[e++]=a;const t=a.charCodeAt(r)+1;t>255?a=a.substring(0,r-1)+String.fromCharCode(a.charCodeAt(r-1)+1)+"\0":a=a.substring(0,r)+String.fromCharCode(t)}}mapBfRangeToArray(e,t,a){if(t-e>tr)throw new Error("mapBfRangeToArray - ignoring data above MAX_MAP_RANGE.");const r=a.length;let i=0;for(;e<=t&&i>>0;const s=i[n];for(let e=0,t=s.length;e=t&&r<=i){a.charcode=r;a.length=n+1;return}}}a.charcode=0;a.length=1}getCharCodeLength(e){const t=this.codespaceRanges;for(let a=0,r=t.length;a=i&&e<=n)return a+1}}return 1}get length(){return this._map.length}get isIdentityCMap(){if("Identity-H"!==this.name&&"Identity-V"!==this.name)return!1;if(65536!==this._map.length)return!1;for(let e=0;e<65536;e++)if(this._map[e]!==e)return!1;return!0}}class IdentityCMap extends CMap{constructor(e,t){super();this.vertical=e;this.addCodespaceRange(t,0,65535)}mapCidRange(e,t,a){unreachable("should not call mapCidRange")}mapBfRange(e,t,a){unreachable("should not call mapBfRange")}mapBfRangeToArray(e,t,a){unreachable("should not call mapBfRangeToArray")}mapOne(e,t){unreachable("should not call mapCidOne")}lookup(e){return Number.isInteger(e)&&e<=65535?e:void 0}contains(e){return Number.isInteger(e)&&e<=65535}forEach(e){for(let t=0;t<=65535;t++)e(t,t)}charCodeOf(e){return Number.isInteger(e)&&e<=65535?e:-1}getMap(){const e=new Array(65536);for(let t=0;t<=65535;t++)e[t]=t;return e}get length(){return 65536}get isIdentityCMap(){unreachable("should not access .isIdentityCMap")}}function strToInt(e){let t=0;for(let a=0;a>>0}function expectString(e){if("string"!=typeof e)throw new FormatError("Malformed CMap: expected string.")}function expectInt(e){if(!Number.isInteger(e))throw new FormatError("Malformed CMap: expected int.")}function parseBfChar(e,t){for(;;){let a=t.getObj();if(a===aa)break;if(isCmd(a,"endbfchar"))return;expectString(a);const r=strToInt(a);a=t.getObj();expectString(a);const i=a;e.mapOne(r,i)}}function parseBfRange(e,t){for(;;){let a=t.getObj();if(a===aa)break;if(isCmd(a,"endbfrange"))return;expectString(a);const r=strToInt(a);a=t.getObj();expectString(a);const i=strToInt(a);a=t.getObj();if(Number.isInteger(a)||"string"==typeof a){const t=Number.isInteger(a)?String.fromCharCode(a):a;e.mapBfRange(r,i,t)}else{if(!isCmd(a,"["))break;{a=t.getObj();const n=[];for(;!isCmd(a,"]")&&a!==aa;){n.push(a);a=t.getObj()}e.mapBfRangeToArray(r,i,n)}}}throw new FormatError("Invalid bf range.")}function parseCidChar(e,t){for(;;){let a=t.getObj();if(a===aa)break;if(isCmd(a,"endcidchar"))return;expectString(a);const r=strToInt(a);a=t.getObj();expectInt(a);const i=a;e.mapOne(r,i)}}function parseCidRange(e,t){for(;;){let a=t.getObj();if(a===aa)break;if(isCmd(a,"endcidrange"))return;expectString(a);const r=strToInt(a);a=t.getObj();expectString(a);const i=strToInt(a);a=t.getObj();expectInt(a);const n=a;e.mapCidRange(r,i,n)}}function parseCodespaceRange(e,t){for(;;){let a=t.getObj();if(a===aa)break;if(isCmd(a,"endcodespacerange"))return;if("string"!=typeof a)break;const r=strToInt(a);a=t.getObj();if("string"!=typeof a)break;const i=strToInt(a);e.addCodespaceRange(a.length,r,i)}throw new FormatError("Invalid codespace range.")}function parseWMode(e,t){const a=t.getObj();Number.isInteger(a)&&(e.vertical=!!a)}function parseCMapName(e,t){const a=t.getObj();a instanceof Name&&(e.name=a.name)}async function parseCMap(e,t,a,r){let i,n;e:for(;;)try{const a=t.getObj();if(a===aa)break;if(a instanceof Name){"WMode"===a.name?parseWMode(e,t):"CMapName"===a.name&&parseCMapName(e,t);i=a}else if(a instanceof Cmd)switch(a.cmd){case"endcmap":break e;case"usecmap":i instanceof Name&&(n=i.name);break;case"begincodespacerange":parseCodespaceRange(e,t);break;case"beginbfchar":parseBfChar(e,t);break;case"begincidchar":parseCidChar(e,t);break;case"beginbfrange":parseBfRange(e,t);break;case"begincidrange":parseCidRange(e,t)}}catch(e){if(e instanceof MissingDataException)throw e;warn("Invalid cMap data: "+e);continue}!r&&n&&(r=n);return r?extendCMap(e,a,r):e}async function extendCMap(e,t,a){e.useCMap=await createBuiltInCMap(a,t);if(0===e.numCodespaceRanges){const t=e.useCMap.codespaceRanges;for(let a=0;aextendCMap(i,t,e));const n=new Lexer(new Stream(a));return parseCMap(i,n,t,null)}class CMapFactory{static async create({encoding:e,fetchBuiltInCMap:t,useCMap:a}){if(e instanceof Name)return createBuiltInCMap(e.name,t);if(e instanceof BaseStream){const r=await parseCMap(new CMap,new Lexer(e),t,a);return r.isIdentityCMap?createBuiltInCMap(r.name,t):r}throw new Error("Encoding required.")}}const ar=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclamsmall","Hungarumlautsmall","","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","questionsmall","","asuperior","bsuperior","centsuperior","dsuperior","esuperior","","","","isuperior","","","lsuperior","msuperior","nsuperior","osuperior","","","rsuperior","ssuperior","tsuperior","","ff","fi","fl","ffi","ffl","parenleftinferior","","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","exclamdownsmall","centoldstyle","Lslashsmall","","","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","","Dotaccentsmall","","","Macronsmall","","","figuredash","hypheninferior","","","Ogoneksmall","Ringsmall","Cedillasmall","","","","onequarter","onehalf","threequarters","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","","","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall"],rr=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclamsmall","Hungarumlautsmall","centoldstyle","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","","threequartersemdash","","questionsmall","","","","","Ethsmall","","","onequarter","onehalf","threequarters","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","","","","","","","ff","fi","fl","ffi","ffl","parenleftinferior","","parenrightinferior","Circumflexsmall","hypheninferior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","","","asuperior","centsuperior","","","","","Aacutesmall","Agravesmall","Acircumflexsmall","Adieresissmall","Atildesmall","Aringsmall","Ccedillasmall","Eacutesmall","Egravesmall","Ecircumflexsmall","Edieresissmall","Iacutesmall","Igravesmall","Icircumflexsmall","Idieresissmall","Ntildesmall","Oacutesmall","Ogravesmall","Ocircumflexsmall","Odieresissmall","Otildesmall","Uacutesmall","Ugravesmall","Ucircumflexsmall","Udieresissmall","","eightsuperior","fourinferior","threeinferior","sixinferior","eightinferior","seveninferior","Scaronsmall","","centinferior","twoinferior","","Dieresissmall","","Caronsmall","osuperior","fiveinferior","","commainferior","periodinferior","Yacutesmall","","dollarinferior","","","Thornsmall","","nineinferior","zeroinferior","Zcaronsmall","AEsmall","Oslashsmall","questiondownsmall","oneinferior","Lslashsmall","","","","","","","Cedillasmall","","","","","","OEsmall","figuredash","hyphensuperior","","","","","exclamdownsmall","","Ydieresissmall","","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","ninesuperior","zerosuperior","","esuperior","rsuperior","tsuperior","","","isuperior","ssuperior","dsuperior","","","","","","lsuperior","Ogoneksmall","Brevesmall","Macronsmall","bsuperior","nsuperior","msuperior","commasuperior","periodsuperior","Dotaccentsmall","Ringsmall","","","",""],ir=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quotesingle","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","grave","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","","Adieresis","Aring","Ccedilla","Eacute","Ntilde","Odieresis","Udieresis","aacute","agrave","acircumflex","adieresis","atilde","aring","ccedilla","eacute","egrave","ecircumflex","edieresis","iacute","igrave","icircumflex","idieresis","ntilde","oacute","ograve","ocircumflex","odieresis","otilde","uacute","ugrave","ucircumflex","udieresis","dagger","degree","cent","sterling","section","bullet","paragraph","germandbls","registered","copyright","trademark","acute","dieresis","notequal","AE","Oslash","infinity","plusminus","lessequal","greaterequal","yen","mu","partialdiff","summation","product","pi","integral","ordfeminine","ordmasculine","Omega","ae","oslash","questiondown","exclamdown","logicalnot","radical","florin","approxequal","Delta","guillemotleft","guillemotright","ellipsis","space","Agrave","Atilde","Otilde","OE","oe","endash","emdash","quotedblleft","quotedblright","quoteleft","quoteright","divide","lozenge","ydieresis","Ydieresis","fraction","currency","guilsinglleft","guilsinglright","fi","fl","daggerdbl","periodcentered","quotesinglbase","quotedblbase","perthousand","Acircumflex","Ecircumflex","Aacute","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Oacute","Ocircumflex","apple","Ograve","Uacute","Ucircumflex","Ugrave","dotlessi","circumflex","tilde","macron","breve","dotaccent","ring","cedilla","hungarumlaut","ogonek","caron"],nr=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","","endash","dagger","daggerdbl","periodcentered","","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","","questiondown","","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","","ring","cedilla","","hungarumlaut","ogonek","caron","emdash","","","","","","","","","","","","","","","","","AE","","ordfeminine","","","","","Lslash","Oslash","OE","ordmasculine","","","","","","ae","","","","dotlessi","","","lslash","oslash","oe","germandbls","","","",""],sr=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quotesingle","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","grave","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","bullet","Euro","bullet","quotesinglbase","florin","quotedblbase","ellipsis","dagger","daggerdbl","circumflex","perthousand","Scaron","guilsinglleft","OE","bullet","Zcaron","bullet","bullet","quoteleft","quoteright","quotedblleft","quotedblright","bullet","endash","emdash","tilde","trademark","scaron","guilsinglright","oe","bullet","zcaron","Ydieresis","space","exclamdown","cent","sterling","currency","yen","brokenbar","section","dieresis","copyright","ordfeminine","guillemotleft","logicalnot","hyphen","registered","macron","degree","plusminus","twosuperior","threesuperior","acute","mu","paragraph","periodcentered","cedilla","onesuperior","ordmasculine","guillemotright","onequarter","onehalf","threequarters","questiondown","Agrave","Aacute","Acircumflex","Atilde","Adieresis","Aring","AE","Ccedilla","Egrave","Eacute","Ecircumflex","Edieresis","Igrave","Iacute","Icircumflex","Idieresis","Eth","Ntilde","Ograve","Oacute","Ocircumflex","Otilde","Odieresis","multiply","Oslash","Ugrave","Uacute","Ucircumflex","Udieresis","Yacute","Thorn","germandbls","agrave","aacute","acircumflex","atilde","adieresis","aring","ae","ccedilla","egrave","eacute","ecircumflex","edieresis","igrave","iacute","icircumflex","idieresis","eth","ntilde","ograve","oacute","ocircumflex","otilde","odieresis","divide","oslash","ugrave","uacute","ucircumflex","udieresis","yacute","thorn","ydieresis"],or=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","universal","numbersign","existential","percent","ampersand","suchthat","parenleft","parenright","asteriskmath","plus","comma","minus","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","congruent","Alpha","Beta","Chi","Delta","Epsilon","Phi","Gamma","Eta","Iota","theta1","Kappa","Lambda","Mu","Nu","Omicron","Pi","Theta","Rho","Sigma","Tau","Upsilon","sigma1","Omega","Xi","Psi","Zeta","bracketleft","therefore","bracketright","perpendicular","underscore","radicalex","alpha","beta","chi","delta","epsilon","phi","gamma","eta","iota","phi1","kappa","lambda","mu","nu","omicron","pi","theta","rho","sigma","tau","upsilon","omega1","omega","xi","psi","zeta","braceleft","bar","braceright","similar","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Euro","Upsilon1","minute","lessequal","fraction","infinity","florin","club","diamond","heart","spade","arrowboth","arrowleft","arrowup","arrowright","arrowdown","degree","plusminus","second","greaterequal","multiply","proportional","partialdiff","bullet","divide","notequal","equivalence","approxequal","ellipsis","arrowvertex","arrowhorizex","carriagereturn","aleph","Ifraktur","Rfraktur","weierstrass","circlemultiply","circleplus","emptyset","intersection","union","propersuperset","reflexsuperset","notsubset","propersubset","reflexsubset","element","notelement","angle","gradient","registerserif","copyrightserif","trademarkserif","product","radical","dotmath","logicalnot","logicaland","logicalor","arrowdblboth","arrowdblleft","arrowdblup","arrowdblright","arrowdbldown","lozenge","angleleft","registersans","copyrightsans","trademarksans","summation","parenlefttp","parenleftex","parenleftbt","bracketlefttp","bracketleftex","bracketleftbt","bracelefttp","braceleftmid","braceleftbt","braceex","","angleright","integral","integraltp","integralex","integralbt","parenrighttp","parenrightex","parenrightbt","bracketrighttp","bracketrightex","bracketrightbt","bracerighttp","bracerightmid","bracerightbt",""],cr=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","a1","a2","a202","a3","a4","a5","a119","a118","a117","a11","a12","a13","a14","a15","a16","a105","a17","a18","a19","a20","a21","a22","a23","a24","a25","a26","a27","a28","a6","a7","a8","a9","a10","a29","a30","a31","a32","a33","a34","a35","a36","a37","a38","a39","a40","a41","a42","a43","a44","a45","a46","a47","a48","a49","a50","a51","a52","a53","a54","a55","a56","a57","a58","a59","a60","a61","a62","a63","a64","a65","a66","a67","a68","a69","a70","a71","a72","a73","a74","a203","a75","a204","a76","a77","a78","a79","a81","a82","a83","a84","a97","a98","a99","a100","","a89","a90","a93","a94","a91","a92","a205","a85","a206","a86","a87","a88","a95","a96","","","","","","","","","","","","","","","","","","","","a101","a102","a103","a104","a106","a107","a108","a112","a111","a110","a109","a120","a121","a122","a123","a124","a125","a126","a127","a128","a129","a130","a131","a132","a133","a134","a135","a136","a137","a138","a139","a140","a141","a142","a143","a144","a145","a146","a147","a148","a149","a150","a151","a152","a153","a154","a155","a156","a157","a158","a159","a160","a161","a163","a164","a196","a165","a192","a166","a167","a168","a169","a170","a171","a172","a173","a162","a174","a175","a176","a177","a178","a179","a193","a180","a199","a181","a200","a182","","a201","a183","a184","a197","a185","a194","a198","a186","a195","a187","a188","a189","a190","a191",""];function getEncoding(e){switch(e){case"WinAnsiEncoding":return sr;case"StandardEncoding":return nr;case"MacRomanEncoding":return ir;case"SymbolSetEncoding":return or;case"ZapfDingbatsEncoding":return cr;case"ExpertEncoding":return ar;case"MacExpertEncoding":return rr;default:return null}}const lr=getLookupTableFactory(function(e){e.A=65;e.AE=198;e.AEacute=508;e.AEmacron=482;e.AEsmall=63462;e.Aacute=193;e.Aacutesmall=63457;e.Abreve=258;e.Abreveacute=7854;e.Abrevecyrillic=1232;e.Abrevedotbelow=7862;e.Abrevegrave=7856;e.Abrevehookabove=7858;e.Abrevetilde=7860;e.Acaron=461;e.Acircle=9398;e.Acircumflex=194;e.Acircumflexacute=7844;e.Acircumflexdotbelow=7852;e.Acircumflexgrave=7846;e.Acircumflexhookabove=7848;e.Acircumflexsmall=63458;e.Acircumflextilde=7850;e.Acute=63177;e.Acutesmall=63412;e.Acyrillic=1040;e.Adblgrave=512;e.Adieresis=196;e.Adieresiscyrillic=1234;e.Adieresismacron=478;e.Adieresissmall=63460;e.Adotbelow=7840;e.Adotmacron=480;e.Agrave=192;e.Agravesmall=63456;e.Ahookabove=7842;e.Aiecyrillic=1236;e.Ainvertedbreve=514;e.Alpha=913;e.Alphatonos=902;e.Amacron=256;e.Amonospace=65313;e.Aogonek=260;e.Aring=197;e.Aringacute=506;e.Aringbelow=7680;e.Aringsmall=63461;e.Asmall=63329;e.Atilde=195;e.Atildesmall=63459;e.Aybarmenian=1329;e.B=66;e.Bcircle=9399;e.Bdotaccent=7682;e.Bdotbelow=7684;e.Becyrillic=1041;e.Benarmenian=1330;e.Beta=914;e.Bhook=385;e.Blinebelow=7686;e.Bmonospace=65314;e.Brevesmall=63220;e.Bsmall=63330;e.Btopbar=386;e.C=67;e.Caarmenian=1342;e.Cacute=262;e.Caron=63178;e.Caronsmall=63221;e.Ccaron=268;e.Ccedilla=199;e.Ccedillaacute=7688;e.Ccedillasmall=63463;e.Ccircle=9400;e.Ccircumflex=264;e.Cdot=266;e.Cdotaccent=266;e.Cedillasmall=63416;e.Chaarmenian=1353;e.Cheabkhasiancyrillic=1212;e.Checyrillic=1063;e.Chedescenderabkhasiancyrillic=1214;e.Chedescendercyrillic=1206;e.Chedieresiscyrillic=1268;e.Cheharmenian=1347;e.Chekhakassiancyrillic=1227;e.Cheverticalstrokecyrillic=1208;e.Chi=935;e.Chook=391;e.Circumflexsmall=63222;e.Cmonospace=65315;e.Coarmenian=1361;e.Csmall=63331;e.D=68;e.DZ=497;e.DZcaron=452;e.Daarmenian=1332;e.Dafrican=393;e.Dcaron=270;e.Dcedilla=7696;e.Dcircle=9401;e.Dcircumflexbelow=7698;e.Dcroat=272;e.Ddotaccent=7690;e.Ddotbelow=7692;e.Decyrillic=1044;e.Deicoptic=1006;e.Delta=8710;e.Deltagreek=916;e.Dhook=394;e.Dieresis=63179;e.DieresisAcute=63180;e.DieresisGrave=63181;e.Dieresissmall=63400;e.Digammagreek=988;e.Djecyrillic=1026;e.Dlinebelow=7694;e.Dmonospace=65316;e.Dotaccentsmall=63223;e.Dslash=272;e.Dsmall=63332;e.Dtopbar=395;e.Dz=498;e.Dzcaron=453;e.Dzeabkhasiancyrillic=1248;e.Dzecyrillic=1029;e.Dzhecyrillic=1039;e.E=69;e.Eacute=201;e.Eacutesmall=63465;e.Ebreve=276;e.Ecaron=282;e.Ecedillabreve=7708;e.Echarmenian=1333;e.Ecircle=9402;e.Ecircumflex=202;e.Ecircumflexacute=7870;e.Ecircumflexbelow=7704;e.Ecircumflexdotbelow=7878;e.Ecircumflexgrave=7872;e.Ecircumflexhookabove=7874;e.Ecircumflexsmall=63466;e.Ecircumflextilde=7876;e.Ecyrillic=1028;e.Edblgrave=516;e.Edieresis=203;e.Edieresissmall=63467;e.Edot=278;e.Edotaccent=278;e.Edotbelow=7864;e.Efcyrillic=1060;e.Egrave=200;e.Egravesmall=63464;e.Eharmenian=1335;e.Ehookabove=7866;e.Eightroman=8551;e.Einvertedbreve=518;e.Eiotifiedcyrillic=1124;e.Elcyrillic=1051;e.Elevenroman=8554;e.Emacron=274;e.Emacronacute=7702;e.Emacrongrave=7700;e.Emcyrillic=1052;e.Emonospace=65317;e.Encyrillic=1053;e.Endescendercyrillic=1186;e.Eng=330;e.Enghecyrillic=1188;e.Enhookcyrillic=1223;e.Eogonek=280;e.Eopen=400;e.Epsilon=917;e.Epsilontonos=904;e.Ercyrillic=1056;e.Ereversed=398;e.Ereversedcyrillic=1069;e.Escyrillic=1057;e.Esdescendercyrillic=1194;e.Esh=425;e.Esmall=63333;e.Eta=919;e.Etarmenian=1336;e.Etatonos=905;e.Eth=208;e.Ethsmall=63472;e.Etilde=7868;e.Etildebelow=7706;e.Euro=8364;e.Ezh=439;e.Ezhcaron=494;e.Ezhreversed=440;e.F=70;e.Fcircle=9403;e.Fdotaccent=7710;e.Feharmenian=1366;e.Feicoptic=996;e.Fhook=401;e.Fitacyrillic=1138;e.Fiveroman=8548;e.Fmonospace=65318;e.Fourroman=8547;e.Fsmall=63334;e.G=71;e.GBsquare=13191;e.Gacute=500;e.Gamma=915;e.Gammaafrican=404;e.Gangiacoptic=1002;e.Gbreve=286;e.Gcaron=486;e.Gcedilla=290;e.Gcircle=9404;e.Gcircumflex=284;e.Gcommaaccent=290;e.Gdot=288;e.Gdotaccent=288;e.Gecyrillic=1043;e.Ghadarmenian=1346;e.Ghemiddlehookcyrillic=1172;e.Ghestrokecyrillic=1170;e.Gheupturncyrillic=1168;e.Ghook=403;e.Gimarmenian=1331;e.Gjecyrillic=1027;e.Gmacron=7712;e.Gmonospace=65319;e.Grave=63182;e.Gravesmall=63328;e.Gsmall=63335;e.Gsmallhook=667;e.Gstroke=484;e.H=72;e.H18533=9679;e.H18543=9642;e.H18551=9643;e.H22073=9633;e.HPsquare=13259;e.Haabkhasiancyrillic=1192;e.Hadescendercyrillic=1202;e.Hardsigncyrillic=1066;e.Hbar=294;e.Hbrevebelow=7722;e.Hcedilla=7720;e.Hcircle=9405;e.Hcircumflex=292;e.Hdieresis=7718;e.Hdotaccent=7714;e.Hdotbelow=7716;e.Hmonospace=65320;e.Hoarmenian=1344;e.Horicoptic=1e3;e.Hsmall=63336;e.Hungarumlaut=63183;e.Hungarumlautsmall=63224;e.Hzsquare=13200;e.I=73;e.IAcyrillic=1071;e.IJ=306;e.IUcyrillic=1070;e.Iacute=205;e.Iacutesmall=63469;e.Ibreve=300;e.Icaron=463;e.Icircle=9406;e.Icircumflex=206;e.Icircumflexsmall=63470;e.Icyrillic=1030;e.Idblgrave=520;e.Idieresis=207;e.Idieresisacute=7726;e.Idieresiscyrillic=1252;e.Idieresissmall=63471;e.Idot=304;e.Idotaccent=304;e.Idotbelow=7882;e.Iebrevecyrillic=1238;e.Iecyrillic=1045;e.Ifraktur=8465;e.Igrave=204;e.Igravesmall=63468;e.Ihookabove=7880;e.Iicyrillic=1048;e.Iinvertedbreve=522;e.Iishortcyrillic=1049;e.Imacron=298;e.Imacroncyrillic=1250;e.Imonospace=65321;e.Iniarmenian=1339;e.Iocyrillic=1025;e.Iogonek=302;e.Iota=921;e.Iotaafrican=406;e.Iotadieresis=938;e.Iotatonos=906;e.Ismall=63337;e.Istroke=407;e.Itilde=296;e.Itildebelow=7724;e.Izhitsacyrillic=1140;e.Izhitsadblgravecyrillic=1142;e.J=74;e.Jaarmenian=1345;e.Jcircle=9407;e.Jcircumflex=308;e.Jecyrillic=1032;e.Jheharmenian=1355;e.Jmonospace=65322;e.Jsmall=63338;e.K=75;e.KBsquare=13189;e.KKsquare=13261;e.Kabashkircyrillic=1184;e.Kacute=7728;e.Kacyrillic=1050;e.Kadescendercyrillic=1178;e.Kahookcyrillic=1219;e.Kappa=922;e.Kastrokecyrillic=1182;e.Kaverticalstrokecyrillic=1180;e.Kcaron=488;e.Kcedilla=310;e.Kcircle=9408;e.Kcommaaccent=310;e.Kdotbelow=7730;e.Keharmenian=1364;e.Kenarmenian=1343;e.Khacyrillic=1061;e.Kheicoptic=998;e.Khook=408;e.Kjecyrillic=1036;e.Klinebelow=7732;e.Kmonospace=65323;e.Koppacyrillic=1152;e.Koppagreek=990;e.Ksicyrillic=1134;e.Ksmall=63339;e.L=76;e.LJ=455;e.LL=63167;e.Lacute=313;e.Lambda=923;e.Lcaron=317;e.Lcedilla=315;e.Lcircle=9409;e.Lcircumflexbelow=7740;e.Lcommaaccent=315;e.Ldot=319;e.Ldotaccent=319;e.Ldotbelow=7734;e.Ldotbelowmacron=7736;e.Liwnarmenian=1340;e.Lj=456;e.Ljecyrillic=1033;e.Llinebelow=7738;e.Lmonospace=65324;e.Lslash=321;e.Lslashsmall=63225;e.Lsmall=63340;e.M=77;e.MBsquare=13190;e.Macron=63184;e.Macronsmall=63407;e.Macute=7742;e.Mcircle=9410;e.Mdotaccent=7744;e.Mdotbelow=7746;e.Menarmenian=1348;e.Mmonospace=65325;e.Msmall=63341;e.Mturned=412;e.Mu=924;e.N=78;e.NJ=458;e.Nacute=323;e.Ncaron=327;e.Ncedilla=325;e.Ncircle=9411;e.Ncircumflexbelow=7754;e.Ncommaaccent=325;e.Ndotaccent=7748;e.Ndotbelow=7750;e.Nhookleft=413;e.Nineroman=8552;e.Nj=459;e.Njecyrillic=1034;e.Nlinebelow=7752;e.Nmonospace=65326;e.Nowarmenian=1350;e.Nsmall=63342;e.Ntilde=209;e.Ntildesmall=63473;e.Nu=925;e.O=79;e.OE=338;e.OEsmall=63226;e.Oacute=211;e.Oacutesmall=63475;e.Obarredcyrillic=1256;e.Obarreddieresiscyrillic=1258;e.Obreve=334;e.Ocaron=465;e.Ocenteredtilde=415;e.Ocircle=9412;e.Ocircumflex=212;e.Ocircumflexacute=7888;e.Ocircumflexdotbelow=7896;e.Ocircumflexgrave=7890;e.Ocircumflexhookabove=7892;e.Ocircumflexsmall=63476;e.Ocircumflextilde=7894;e.Ocyrillic=1054;e.Odblacute=336;e.Odblgrave=524;e.Odieresis=214;e.Odieresiscyrillic=1254;e.Odieresissmall=63478;e.Odotbelow=7884;e.Ogoneksmall=63227;e.Ograve=210;e.Ogravesmall=63474;e.Oharmenian=1365;e.Ohm=8486;e.Ohookabove=7886;e.Ohorn=416;e.Ohornacute=7898;e.Ohorndotbelow=7906;e.Ohorngrave=7900;e.Ohornhookabove=7902;e.Ohorntilde=7904;e.Ohungarumlaut=336;e.Oi=418;e.Oinvertedbreve=526;e.Omacron=332;e.Omacronacute=7762;e.Omacrongrave=7760;e.Omega=8486;e.Omegacyrillic=1120;e.Omegagreek=937;e.Omegaroundcyrillic=1146;e.Omegatitlocyrillic=1148;e.Omegatonos=911;e.Omicron=927;e.Omicrontonos=908;e.Omonospace=65327;e.Oneroman=8544;e.Oogonek=490;e.Oogonekmacron=492;e.Oopen=390;e.Oslash=216;e.Oslashacute=510;e.Oslashsmall=63480;e.Osmall=63343;e.Ostrokeacute=510;e.Otcyrillic=1150;e.Otilde=213;e.Otildeacute=7756;e.Otildedieresis=7758;e.Otildesmall=63477;e.P=80;e.Pacute=7764;e.Pcircle=9413;e.Pdotaccent=7766;e.Pecyrillic=1055;e.Peharmenian=1354;e.Pemiddlehookcyrillic=1190;e.Phi=934;e.Phook=420;e.Pi=928;e.Piwrarmenian=1363;e.Pmonospace=65328;e.Psi=936;e.Psicyrillic=1136;e.Psmall=63344;e.Q=81;e.Qcircle=9414;e.Qmonospace=65329;e.Qsmall=63345;e.R=82;e.Raarmenian=1356;e.Racute=340;e.Rcaron=344;e.Rcedilla=342;e.Rcircle=9415;e.Rcommaaccent=342;e.Rdblgrave=528;e.Rdotaccent=7768;e.Rdotbelow=7770;e.Rdotbelowmacron=7772;e.Reharmenian=1360;e.Rfraktur=8476;e.Rho=929;e.Ringsmall=63228;e.Rinvertedbreve=530;e.Rlinebelow=7774;e.Rmonospace=65330;e.Rsmall=63346;e.Rsmallinverted=641;e.Rsmallinvertedsuperior=694;e.S=83;e.SF010000=9484;e.SF020000=9492;e.SF030000=9488;e.SF040000=9496;e.SF050000=9532;e.SF060000=9516;e.SF070000=9524;e.SF080000=9500;e.SF090000=9508;e.SF100000=9472;e.SF110000=9474;e.SF190000=9569;e.SF200000=9570;e.SF210000=9558;e.SF220000=9557;e.SF230000=9571;e.SF240000=9553;e.SF250000=9559;e.SF260000=9565;e.SF270000=9564;e.SF280000=9563;e.SF360000=9566;e.SF370000=9567;e.SF380000=9562;e.SF390000=9556;e.SF400000=9577;e.SF410000=9574;e.SF420000=9568;e.SF430000=9552;e.SF440000=9580;e.SF450000=9575;e.SF460000=9576;e.SF470000=9572;e.SF480000=9573;e.SF490000=9561;e.SF500000=9560;e.SF510000=9554;e.SF520000=9555;e.SF530000=9579;e.SF540000=9578;e.Sacute=346;e.Sacutedotaccent=7780;e.Sampigreek=992;e.Scaron=352;e.Scarondotaccent=7782;e.Scaronsmall=63229;e.Scedilla=350;e.Schwa=399;e.Schwacyrillic=1240;e.Schwadieresiscyrillic=1242;e.Scircle=9416;e.Scircumflex=348;e.Scommaaccent=536;e.Sdotaccent=7776;e.Sdotbelow=7778;e.Sdotbelowdotaccent=7784;e.Seharmenian=1357;e.Sevenroman=8550;e.Shaarmenian=1351;e.Shacyrillic=1064;e.Shchacyrillic=1065;e.Sheicoptic=994;e.Shhacyrillic=1210;e.Shimacoptic=1004;e.Sigma=931;e.Sixroman=8549;e.Smonospace=65331;e.Softsigncyrillic=1068;e.Ssmall=63347;e.Stigmagreek=986;e.T=84;e.Tau=932;e.Tbar=358;e.Tcaron=356;e.Tcedilla=354;e.Tcircle=9417;e.Tcircumflexbelow=7792;e.Tcommaaccent=354;e.Tdotaccent=7786;e.Tdotbelow=7788;e.Tecyrillic=1058;e.Tedescendercyrillic=1196;e.Tenroman=8553;e.Tetsecyrillic=1204;e.Theta=920;e.Thook=428;e.Thorn=222;e.Thornsmall=63486;e.Threeroman=8546;e.Tildesmall=63230;e.Tiwnarmenian=1359;e.Tlinebelow=7790;e.Tmonospace=65332;e.Toarmenian=1337;e.Tonefive=444;e.Tonesix=388;e.Tonetwo=423;e.Tretroflexhook=430;e.Tsecyrillic=1062;e.Tshecyrillic=1035;e.Tsmall=63348;e.Twelveroman=8555;e.Tworoman=8545;e.U=85;e.Uacute=218;e.Uacutesmall=63482;e.Ubreve=364;e.Ucaron=467;e.Ucircle=9418;e.Ucircumflex=219;e.Ucircumflexbelow=7798;e.Ucircumflexsmall=63483;e.Ucyrillic=1059;e.Udblacute=368;e.Udblgrave=532;e.Udieresis=220;e.Udieresisacute=471;e.Udieresisbelow=7794;e.Udieresiscaron=473;e.Udieresiscyrillic=1264;e.Udieresisgrave=475;e.Udieresismacron=469;e.Udieresissmall=63484;e.Udotbelow=7908;e.Ugrave=217;e.Ugravesmall=63481;e.Uhookabove=7910;e.Uhorn=431;e.Uhornacute=7912;e.Uhorndotbelow=7920;e.Uhorngrave=7914;e.Uhornhookabove=7916;e.Uhorntilde=7918;e.Uhungarumlaut=368;e.Uhungarumlautcyrillic=1266;e.Uinvertedbreve=534;e.Ukcyrillic=1144;e.Umacron=362;e.Umacroncyrillic=1262;e.Umacrondieresis=7802;e.Umonospace=65333;e.Uogonek=370;e.Upsilon=933;e.Upsilon1=978;e.Upsilonacutehooksymbolgreek=979;e.Upsilonafrican=433;e.Upsilondieresis=939;e.Upsilondieresishooksymbolgreek=980;e.Upsilonhooksymbol=978;e.Upsilontonos=910;e.Uring=366;e.Ushortcyrillic=1038;e.Usmall=63349;e.Ustraightcyrillic=1198;e.Ustraightstrokecyrillic=1200;e.Utilde=360;e.Utildeacute=7800;e.Utildebelow=7796;e.V=86;e.Vcircle=9419;e.Vdotbelow=7806;e.Vecyrillic=1042;e.Vewarmenian=1358;e.Vhook=434;e.Vmonospace=65334;e.Voarmenian=1352;e.Vsmall=63350;e.Vtilde=7804;e.W=87;e.Wacute=7810;e.Wcircle=9420;e.Wcircumflex=372;e.Wdieresis=7812;e.Wdotaccent=7814;e.Wdotbelow=7816;e.Wgrave=7808;e.Wmonospace=65335;e.Wsmall=63351;e.X=88;e.Xcircle=9421;e.Xdieresis=7820;e.Xdotaccent=7818;e.Xeharmenian=1341;e.Xi=926;e.Xmonospace=65336;e.Xsmall=63352;e.Y=89;e.Yacute=221;e.Yacutesmall=63485;e.Yatcyrillic=1122;e.Ycircle=9422;e.Ycircumflex=374;e.Ydieresis=376;e.Ydieresissmall=63487;e.Ydotaccent=7822;e.Ydotbelow=7924;e.Yericyrillic=1067;e.Yerudieresiscyrillic=1272;e.Ygrave=7922;e.Yhook=435;e.Yhookabove=7926;e.Yiarmenian=1349;e.Yicyrillic=1031;e.Yiwnarmenian=1362;e.Ymonospace=65337;e.Ysmall=63353;e.Ytilde=7928;e.Yusbigcyrillic=1130;e.Yusbigiotifiedcyrillic=1132;e.Yuslittlecyrillic=1126;e.Yuslittleiotifiedcyrillic=1128;e.Z=90;e.Zaarmenian=1334;e.Zacute=377;e.Zcaron=381;e.Zcaronsmall=63231;e.Zcircle=9423;e.Zcircumflex=7824;e.Zdot=379;e.Zdotaccent=379;e.Zdotbelow=7826;e.Zecyrillic=1047;e.Zedescendercyrillic=1176;e.Zedieresiscyrillic=1246;e.Zeta=918;e.Zhearmenian=1338;e.Zhebrevecyrillic=1217;e.Zhecyrillic=1046;e.Zhedescendercyrillic=1174;e.Zhedieresiscyrillic=1244;e.Zlinebelow=7828;e.Zmonospace=65338;e.Zsmall=63354;e.Zstroke=437;e.a=97;e.aabengali=2438;e.aacute=225;e.aadeva=2310;e.aagujarati=2694;e.aagurmukhi=2566;e.aamatragurmukhi=2622;e.aarusquare=13059;e.aavowelsignbengali=2494;e.aavowelsigndeva=2366;e.aavowelsigngujarati=2750;e.abbreviationmarkarmenian=1375;e.abbreviationsigndeva=2416;e.abengali=2437;e.abopomofo=12570;e.abreve=259;e.abreveacute=7855;e.abrevecyrillic=1233;e.abrevedotbelow=7863;e.abrevegrave=7857;e.abrevehookabove=7859;e.abrevetilde=7861;e.acaron=462;e.acircle=9424;e.acircumflex=226;e.acircumflexacute=7845;e.acircumflexdotbelow=7853;e.acircumflexgrave=7847;e.acircumflexhookabove=7849;e.acircumflextilde=7851;e.acute=180;e.acutebelowcmb=791;e.acutecmb=769;e.acutecomb=769;e.acutedeva=2388;e.acutelowmod=719;e.acutetonecmb=833;e.acyrillic=1072;e.adblgrave=513;e.addakgurmukhi=2673;e.adeva=2309;e.adieresis=228;e.adieresiscyrillic=1235;e.adieresismacron=479;e.adotbelow=7841;e.adotmacron=481;e.ae=230;e.aeacute=509;e.aekorean=12624;e.aemacron=483;e.afii00208=8213;e.afii08941=8356;e.afii10017=1040;e.afii10018=1041;e.afii10019=1042;e.afii10020=1043;e.afii10021=1044;e.afii10022=1045;e.afii10023=1025;e.afii10024=1046;e.afii10025=1047;e.afii10026=1048;e.afii10027=1049;e.afii10028=1050;e.afii10029=1051;e.afii10030=1052;e.afii10031=1053;e.afii10032=1054;e.afii10033=1055;e.afii10034=1056;e.afii10035=1057;e.afii10036=1058;e.afii10037=1059;e.afii10038=1060;e.afii10039=1061;e.afii10040=1062;e.afii10041=1063;e.afii10042=1064;e.afii10043=1065;e.afii10044=1066;e.afii10045=1067;e.afii10046=1068;e.afii10047=1069;e.afii10048=1070;e.afii10049=1071;e.afii10050=1168;e.afii10051=1026;e.afii10052=1027;e.afii10053=1028;e.afii10054=1029;e.afii10055=1030;e.afii10056=1031;e.afii10057=1032;e.afii10058=1033;e.afii10059=1034;e.afii10060=1035;e.afii10061=1036;e.afii10062=1038;e.afii10063=63172;e.afii10064=63173;e.afii10065=1072;e.afii10066=1073;e.afii10067=1074;e.afii10068=1075;e.afii10069=1076;e.afii10070=1077;e.afii10071=1105;e.afii10072=1078;e.afii10073=1079;e.afii10074=1080;e.afii10075=1081;e.afii10076=1082;e.afii10077=1083;e.afii10078=1084;e.afii10079=1085;e.afii10080=1086;e.afii10081=1087;e.afii10082=1088;e.afii10083=1089;e.afii10084=1090;e.afii10085=1091;e.afii10086=1092;e.afii10087=1093;e.afii10088=1094;e.afii10089=1095;e.afii10090=1096;e.afii10091=1097;e.afii10092=1098;e.afii10093=1099;e.afii10094=1100;e.afii10095=1101;e.afii10096=1102;e.afii10097=1103;e.afii10098=1169;e.afii10099=1106;e.afii10100=1107;e.afii10101=1108;e.afii10102=1109;e.afii10103=1110;e.afii10104=1111;e.afii10105=1112;e.afii10106=1113;e.afii10107=1114;e.afii10108=1115;e.afii10109=1116;e.afii10110=1118;e.afii10145=1039;e.afii10146=1122;e.afii10147=1138;e.afii10148=1140;e.afii10192=63174;e.afii10193=1119;e.afii10194=1123;e.afii10195=1139;e.afii10196=1141;e.afii10831=63175;e.afii10832=63176;e.afii10846=1241;e.afii299=8206;e.afii300=8207;e.afii301=8205;e.afii57381=1642;e.afii57388=1548;e.afii57392=1632;e.afii57393=1633;e.afii57394=1634;e.afii57395=1635;e.afii57396=1636;e.afii57397=1637;e.afii57398=1638;e.afii57399=1639;e.afii57400=1640;e.afii57401=1641;e.afii57403=1563;e.afii57407=1567;e.afii57409=1569;e.afii57410=1570;e.afii57411=1571;e.afii57412=1572;e.afii57413=1573;e.afii57414=1574;e.afii57415=1575;e.afii57416=1576;e.afii57417=1577;e.afii57418=1578;e.afii57419=1579;e.afii57420=1580;e.afii57421=1581;e.afii57422=1582;e.afii57423=1583;e.afii57424=1584;e.afii57425=1585;e.afii57426=1586;e.afii57427=1587;e.afii57428=1588;e.afii57429=1589;e.afii57430=1590;e.afii57431=1591;e.afii57432=1592;e.afii57433=1593;e.afii57434=1594;e.afii57440=1600;e.afii57441=1601;e.afii57442=1602;e.afii57443=1603;e.afii57444=1604;e.afii57445=1605;e.afii57446=1606;e.afii57448=1608;e.afii57449=1609;e.afii57450=1610;e.afii57451=1611;e.afii57452=1612;e.afii57453=1613;e.afii57454=1614;e.afii57455=1615;e.afii57456=1616;e.afii57457=1617;e.afii57458=1618;e.afii57470=1607;e.afii57505=1700;e.afii57506=1662;e.afii57507=1670;e.afii57508=1688;e.afii57509=1711;e.afii57511=1657;e.afii57512=1672;e.afii57513=1681;e.afii57514=1722;e.afii57519=1746;e.afii57534=1749;e.afii57636=8362;e.afii57645=1470;e.afii57658=1475;e.afii57664=1488;e.afii57665=1489;e.afii57666=1490;e.afii57667=1491;e.afii57668=1492;e.afii57669=1493;e.afii57670=1494;e.afii57671=1495;e.afii57672=1496;e.afii57673=1497;e.afii57674=1498;e.afii57675=1499;e.afii57676=1500;e.afii57677=1501;e.afii57678=1502;e.afii57679=1503;e.afii57680=1504;e.afii57681=1505;e.afii57682=1506;e.afii57683=1507;e.afii57684=1508;e.afii57685=1509;e.afii57686=1510;e.afii57687=1511;e.afii57688=1512;e.afii57689=1513;e.afii57690=1514;e.afii57694=64298;e.afii57695=64299;e.afii57700=64331;e.afii57705=64287;e.afii57716=1520;e.afii57717=1521;e.afii57718=1522;e.afii57723=64309;e.afii57793=1460;e.afii57794=1461;e.afii57795=1462;e.afii57796=1467;e.afii57797=1464;e.afii57798=1463;e.afii57799=1456;e.afii57800=1458;e.afii57801=1457;e.afii57802=1459;e.afii57803=1474;e.afii57804=1473;e.afii57806=1465;e.afii57807=1468;e.afii57839=1469;e.afii57841=1471;e.afii57842=1472;e.afii57929=700;e.afii61248=8453;e.afii61289=8467;e.afii61352=8470;e.afii61573=8236;e.afii61574=8237;e.afii61575=8238;e.afii61664=8204;e.afii63167=1645;e.afii64937=701;e.agrave=224;e.agujarati=2693;e.agurmukhi=2565;e.ahiragana=12354;e.ahookabove=7843;e.aibengali=2448;e.aibopomofo=12574;e.aideva=2320;e.aiecyrillic=1237;e.aigujarati=2704;e.aigurmukhi=2576;e.aimatragurmukhi=2632;e.ainarabic=1593;e.ainfinalarabic=65226;e.aininitialarabic=65227;e.ainmedialarabic=65228;e.ainvertedbreve=515;e.aivowelsignbengali=2504;e.aivowelsigndeva=2376;e.aivowelsigngujarati=2760;e.akatakana=12450;e.akatakanahalfwidth=65393;e.akorean=12623;e.alef=1488;e.alefarabic=1575;e.alefdageshhebrew=64304;e.aleffinalarabic=65166;e.alefhamzaabovearabic=1571;e.alefhamzaabovefinalarabic=65156;e.alefhamzabelowarabic=1573;e.alefhamzabelowfinalarabic=65160;e.alefhebrew=1488;e.aleflamedhebrew=64335;e.alefmaddaabovearabic=1570;e.alefmaddaabovefinalarabic=65154;e.alefmaksuraarabic=1609;e.alefmaksurafinalarabic=65264;e.alefmaksurainitialarabic=65267;e.alefmaksuramedialarabic=65268;e.alefpatahhebrew=64302;e.alefqamatshebrew=64303;e.aleph=8501;e.allequal=8780;e.alpha=945;e.alphatonos=940;e.amacron=257;e.amonospace=65345;e.ampersand=38;e.ampersandmonospace=65286;e.ampersandsmall=63270;e.amsquare=13250;e.anbopomofo=12578;e.angbopomofo=12580;e.angbracketleft=12296;e.angbracketright=12297;e.angkhankhuthai=3674;e.angle=8736;e.anglebracketleft=12296;e.anglebracketleftvertical=65087;e.anglebracketright=12297;e.anglebracketrightvertical=65088;e.angleleft=9001;e.angleright=9002;e.angstrom=8491;e.anoteleia=903;e.anudattadeva=2386;e.anusvarabengali=2434;e.anusvaradeva=2306;e.anusvaragujarati=2690;e.aogonek=261;e.apaatosquare=13056;e.aparen=9372;e.apostrophearmenian=1370;e.apostrophemod=700;e.apple=63743;e.approaches=8784;e.approxequal=8776;e.approxequalorimage=8786;e.approximatelyequal=8773;e.araeaekorean=12686;e.araeakorean=12685;e.arc=8978;e.arighthalfring=7834;e.aring=229;e.aringacute=507;e.aringbelow=7681;e.arrowboth=8596;e.arrowdashdown=8675;e.arrowdashleft=8672;e.arrowdashright=8674;e.arrowdashup=8673;e.arrowdblboth=8660;e.arrowdbldown=8659;e.arrowdblleft=8656;e.arrowdblright=8658;e.arrowdblup=8657;e.arrowdown=8595;e.arrowdownleft=8601;e.arrowdownright=8600;e.arrowdownwhite=8681;e.arrowheaddownmod=709;e.arrowheadleftmod=706;e.arrowheadrightmod=707;e.arrowheadupmod=708;e.arrowhorizex=63719;e.arrowleft=8592;e.arrowleftdbl=8656;e.arrowleftdblstroke=8653;e.arrowleftoverright=8646;e.arrowleftwhite=8678;e.arrowright=8594;e.arrowrightdblstroke=8655;e.arrowrightheavy=10142;e.arrowrightoverleft=8644;e.arrowrightwhite=8680;e.arrowtableft=8676;e.arrowtabright=8677;e.arrowup=8593;e.arrowupdn=8597;e.arrowupdnbse=8616;e.arrowupdownbase=8616;e.arrowupleft=8598;e.arrowupleftofdown=8645;e.arrowupright=8599;e.arrowupwhite=8679;e.arrowvertex=63718;e.asciicircum=94;e.asciicircummonospace=65342;e.asciitilde=126;e.asciitildemonospace=65374;e.ascript=593;e.ascriptturned=594;e.asmallhiragana=12353;e.asmallkatakana=12449;e.asmallkatakanahalfwidth=65383;e.asterisk=42;e.asteriskaltonearabic=1645;e.asteriskarabic=1645;e.asteriskmath=8727;e.asteriskmonospace=65290;e.asterisksmall=65121;e.asterism=8258;e.asuperior=63209;e.asymptoticallyequal=8771;e.at=64;e.atilde=227;e.atmonospace=65312;e.atsmall=65131;e.aturned=592;e.aubengali=2452;e.aubopomofo=12576;e.audeva=2324;e.augujarati=2708;e.augurmukhi=2580;e.aulengthmarkbengali=2519;e.aumatragurmukhi=2636;e.auvowelsignbengali=2508;e.auvowelsigndeva=2380;e.auvowelsigngujarati=2764;e.avagrahadeva=2365;e.aybarmenian=1377;e.ayin=1506;e.ayinaltonehebrew=64288;e.ayinhebrew=1506;e.b=98;e.babengali=2476;e.backslash=92;e.backslashmonospace=65340;e.badeva=2348;e.bagujarati=2732;e.bagurmukhi=2604;e.bahiragana=12400;e.bahtthai=3647;e.bakatakana=12496;e.bar=124;e.barmonospace=65372;e.bbopomofo=12549;e.bcircle=9425;e.bdotaccent=7683;e.bdotbelow=7685;e.beamedsixteenthnotes=9836;e.because=8757;e.becyrillic=1073;e.beharabic=1576;e.behfinalarabic=65168;e.behinitialarabic=65169;e.behiragana=12409;e.behmedialarabic=65170;e.behmeeminitialarabic=64671;e.behmeemisolatedarabic=64520;e.behnoonfinalarabic=64621;e.bekatakana=12505;e.benarmenian=1378;e.bet=1489;e.beta=946;e.betasymbolgreek=976;e.betdagesh=64305;e.betdageshhebrew=64305;e.bethebrew=1489;e.betrafehebrew=64332;e.bhabengali=2477;e.bhadeva=2349;e.bhagujarati=2733;e.bhagurmukhi=2605;e.bhook=595;e.bihiragana=12403;e.bikatakana=12499;e.bilabialclick=664;e.bindigurmukhi=2562;e.birusquare=13105;e.blackcircle=9679;e.blackdiamond=9670;e.blackdownpointingtriangle=9660;e.blackleftpointingpointer=9668;e.blackleftpointingtriangle=9664;e.blacklenticularbracketleft=12304;e.blacklenticularbracketleftvertical=65083;e.blacklenticularbracketright=12305;e.blacklenticularbracketrightvertical=65084;e.blacklowerlefttriangle=9699;e.blacklowerrighttriangle=9698;e.blackrectangle=9644;e.blackrightpointingpointer=9658;e.blackrightpointingtriangle=9654;e.blacksmallsquare=9642;e.blacksmilingface=9787;e.blacksquare=9632;e.blackstar=9733;e.blackupperlefttriangle=9700;e.blackupperrighttriangle=9701;e.blackuppointingsmalltriangle=9652;e.blackuppointingtriangle=9650;e.blank=9251;e.blinebelow=7687;e.block=9608;e.bmonospace=65346;e.bobaimaithai=3610;e.bohiragana=12412;e.bokatakana=12508;e.bparen=9373;e.bqsquare=13251;e.braceex=63732;e.braceleft=123;e.braceleftbt=63731;e.braceleftmid=63730;e.braceleftmonospace=65371;e.braceleftsmall=65115;e.bracelefttp=63729;e.braceleftvertical=65079;e.braceright=125;e.bracerightbt=63742;e.bracerightmid=63741;e.bracerightmonospace=65373;e.bracerightsmall=65116;e.bracerighttp=63740;e.bracerightvertical=65080;e.bracketleft=91;e.bracketleftbt=63728;e.bracketleftex=63727;e.bracketleftmonospace=65339;e.bracketlefttp=63726;e.bracketright=93;e.bracketrightbt=63739;e.bracketrightex=63738;e.bracketrightmonospace=65341;e.bracketrighttp=63737;e.breve=728;e.brevebelowcmb=814;e.brevecmb=774;e.breveinvertedbelowcmb=815;e.breveinvertedcmb=785;e.breveinverteddoublecmb=865;e.bridgebelowcmb=810;e.bridgeinvertedbelowcmb=826;e.brokenbar=166;e.bstroke=384;e.bsuperior=63210;e.btopbar=387;e.buhiragana=12406;e.bukatakana=12502;e.bullet=8226;e.bulletinverse=9688;e.bulletoperator=8729;e.bullseye=9678;e.c=99;e.caarmenian=1390;e.cabengali=2458;e.cacute=263;e.cadeva=2330;e.cagujarati=2714;e.cagurmukhi=2586;e.calsquare=13192;e.candrabindubengali=2433;e.candrabinducmb=784;e.candrabindudeva=2305;e.candrabindugujarati=2689;e.capslock=8682;e.careof=8453;e.caron=711;e.caronbelowcmb=812;e.caroncmb=780;e.carriagereturn=8629;e.cbopomofo=12568;e.ccaron=269;e.ccedilla=231;e.ccedillaacute=7689;e.ccircle=9426;e.ccircumflex=265;e.ccurl=597;e.cdot=267;e.cdotaccent=267;e.cdsquare=13253;e.cedilla=184;e.cedillacmb=807;e.cent=162;e.centigrade=8451;e.centinferior=63199;e.centmonospace=65504;e.centoldstyle=63394;e.centsuperior=63200;e.chaarmenian=1401;e.chabengali=2459;e.chadeva=2331;e.chagujarati=2715;e.chagurmukhi=2587;e.chbopomofo=12564;e.cheabkhasiancyrillic=1213;e.checkmark=10003;e.checyrillic=1095;e.chedescenderabkhasiancyrillic=1215;e.chedescendercyrillic=1207;e.chedieresiscyrillic=1269;e.cheharmenian=1395;e.chekhakassiancyrillic=1228;e.cheverticalstrokecyrillic=1209;e.chi=967;e.chieuchacirclekorean=12919;e.chieuchaparenkorean=12823;e.chieuchcirclekorean=12905;e.chieuchkorean=12618;e.chieuchparenkorean=12809;e.chochangthai=3594;e.chochanthai=3592;e.chochingthai=3593;e.chochoethai=3596;e.chook=392;e.cieucacirclekorean=12918;e.cieucaparenkorean=12822;e.cieuccirclekorean=12904;e.cieuckorean=12616;e.cieucparenkorean=12808;e.cieucuparenkorean=12828;e.circle=9675;e.circlecopyrt=169;e.circlemultiply=8855;e.circleot=8857;e.circleplus=8853;e.circlepostalmark=12342;e.circlewithlefthalfblack=9680;e.circlewithrighthalfblack=9681;e.circumflex=710;e.circumflexbelowcmb=813;e.circumflexcmb=770;e.clear=8999;e.clickalveolar=450;e.clickdental=448;e.clicklateral=449;e.clickretroflex=451;e.club=9827;e.clubsuitblack=9827;e.clubsuitwhite=9831;e.cmcubedsquare=13220;e.cmonospace=65347;e.cmsquaredsquare=13216;e.coarmenian=1409;e.colon=58;e.colonmonetary=8353;e.colonmonospace=65306;e.colonsign=8353;e.colonsmall=65109;e.colontriangularhalfmod=721;e.colontriangularmod=720;e.comma=44;e.commaabovecmb=787;e.commaaboverightcmb=789;e.commaaccent=63171;e.commaarabic=1548;e.commaarmenian=1373;e.commainferior=63201;e.commamonospace=65292;e.commareversedabovecmb=788;e.commareversedmod=701;e.commasmall=65104;e.commasuperior=63202;e.commaturnedabovecmb=786;e.commaturnedmod=699;e.compass=9788;e.congruent=8773;e.contourintegral=8750;e.control=8963;e.controlACK=6;e.controlBEL=7;e.controlBS=8;e.controlCAN=24;e.controlCR=13;e.controlDC1=17;e.controlDC2=18;e.controlDC3=19;e.controlDC4=20;e.controlDEL=127;e.controlDLE=16;e.controlEM=25;e.controlENQ=5;e.controlEOT=4;e.controlESC=27;e.controlETB=23;e.controlETX=3;e.controlFF=12;e.controlFS=28;e.controlGS=29;e.controlHT=9;e.controlLF=10;e.controlNAK=21;e.controlNULL=0;e.controlRS=30;e.controlSI=15;e.controlSO=14;e.controlSOT=2;e.controlSTX=1;e.controlSUB=26;e.controlSYN=22;e.controlUS=31;e.controlVT=11;e.copyright=169;e.copyrightsans=63721;e.copyrightserif=63193;e.cornerbracketleft=12300;e.cornerbracketlefthalfwidth=65378;e.cornerbracketleftvertical=65089;e.cornerbracketright=12301;e.cornerbracketrighthalfwidth=65379;e.cornerbracketrightvertical=65090;e.corporationsquare=13183;e.cosquare=13255;e.coverkgsquare=13254;e.cparen=9374;e.cruzeiro=8354;e.cstretched=663;e.curlyand=8911;e.curlyor=8910;e.currency=164;e.cyrBreve=63185;e.cyrFlex=63186;e.cyrbreve=63188;e.cyrflex=63189;e.d=100;e.daarmenian=1380;e.dabengali=2470;e.dadarabic=1590;e.dadeva=2342;e.dadfinalarabic=65214;e.dadinitialarabic=65215;e.dadmedialarabic=65216;e.dagesh=1468;e.dageshhebrew=1468;e.dagger=8224;e.daggerdbl=8225;e.dagujarati=2726;e.dagurmukhi=2598;e.dahiragana=12384;e.dakatakana=12480;e.dalarabic=1583;e.dalet=1491;e.daletdagesh=64307;e.daletdageshhebrew=64307;e.dalethebrew=1491;e.dalfinalarabic=65194;e.dammaarabic=1615;e.dammalowarabic=1615;e.dammatanaltonearabic=1612;e.dammatanarabic=1612;e.danda=2404;e.dargahebrew=1447;e.dargalefthebrew=1447;e.dasiapneumatacyrilliccmb=1157;e.dblGrave=63187;e.dblanglebracketleft=12298;e.dblanglebracketleftvertical=65085;e.dblanglebracketright=12299;e.dblanglebracketrightvertical=65086;e.dblarchinvertedbelowcmb=811;e.dblarrowleft=8660;e.dblarrowright=8658;e.dbldanda=2405;e.dblgrave=63190;e.dblgravecmb=783;e.dblintegral=8748;e.dbllowline=8215;e.dbllowlinecmb=819;e.dbloverlinecmb=831;e.dblprimemod=698;e.dblverticalbar=8214;e.dblverticallineabovecmb=782;e.dbopomofo=12553;e.dbsquare=13256;e.dcaron=271;e.dcedilla=7697;e.dcircle=9427;e.dcircumflexbelow=7699;e.dcroat=273;e.ddabengali=2465;e.ddadeva=2337;e.ddagujarati=2721;e.ddagurmukhi=2593;e.ddalarabic=1672;e.ddalfinalarabic=64393;e.dddhadeva=2396;e.ddhabengali=2466;e.ddhadeva=2338;e.ddhagujarati=2722;e.ddhagurmukhi=2594;e.ddotaccent=7691;e.ddotbelow=7693;e.decimalseparatorarabic=1643;e.decimalseparatorpersian=1643;e.decyrillic=1076;e.degree=176;e.dehihebrew=1453;e.dehiragana=12391;e.deicoptic=1007;e.dekatakana=12487;e.deleteleft=9003;e.deleteright=8998;e.delta=948;e.deltaturned=397;e.denominatorminusonenumeratorbengali=2552;e.dezh=676;e.dhabengali=2471;e.dhadeva=2343;e.dhagujarati=2727;e.dhagurmukhi=2599;e.dhook=599;e.dialytikatonos=901;e.dialytikatonoscmb=836;e.diamond=9830;e.diamondsuitwhite=9826;e.dieresis=168;e.dieresisacute=63191;e.dieresisbelowcmb=804;e.dieresiscmb=776;e.dieresisgrave=63192;e.dieresistonos=901;e.dihiragana=12386;e.dikatakana=12482;e.dittomark=12291;e.divide=247;e.divides=8739;e.divisionslash=8725;e.djecyrillic=1106;e.dkshade=9619;e.dlinebelow=7695;e.dlsquare=13207;e.dmacron=273;e.dmonospace=65348;e.dnblock=9604;e.dochadathai=3598;e.dodekthai=3604;e.dohiragana=12393;e.dokatakana=12489;e.dollar=36;e.dollarinferior=63203;e.dollarmonospace=65284;e.dollaroldstyle=63268;e.dollarsmall=65129;e.dollarsuperior=63204;e.dong=8363;e.dorusquare=13094;e.dotaccent=729;e.dotaccentcmb=775;e.dotbelowcmb=803;e.dotbelowcomb=803;e.dotkatakana=12539;e.dotlessi=305;e.dotlessj=63166;e.dotlessjstrokehook=644;e.dotmath=8901;e.dottedcircle=9676;e.doubleyodpatah=64287;e.doubleyodpatahhebrew=64287;e.downtackbelowcmb=798;e.downtackmod=725;e.dparen=9375;e.dsuperior=63211;e.dtail=598;e.dtopbar=396;e.duhiragana=12389;e.dukatakana=12485;e.dz=499;e.dzaltone=675;e.dzcaron=454;e.dzcurl=677;e.dzeabkhasiancyrillic=1249;e.dzecyrillic=1109;e.dzhecyrillic=1119;e.e=101;e.eacute=233;e.earth=9793;e.ebengali=2447;e.ebopomofo=12572;e.ebreve=277;e.ecandradeva=2317;e.ecandragujarati=2701;e.ecandravowelsigndeva=2373;e.ecandravowelsigngujarati=2757;e.ecaron=283;e.ecedillabreve=7709;e.echarmenian=1381;e.echyiwnarmenian=1415;e.ecircle=9428;e.ecircumflex=234;e.ecircumflexacute=7871;e.ecircumflexbelow=7705;e.ecircumflexdotbelow=7879;e.ecircumflexgrave=7873;e.ecircumflexhookabove=7875;e.ecircumflextilde=7877;e.ecyrillic=1108;e.edblgrave=517;e.edeva=2319;e.edieresis=235;e.edot=279;e.edotaccent=279;e.edotbelow=7865;e.eegurmukhi=2575;e.eematragurmukhi=2631;e.efcyrillic=1092;e.egrave=232;e.egujarati=2703;e.eharmenian=1383;e.ehbopomofo=12573;e.ehiragana=12360;e.ehookabove=7867;e.eibopomofo=12575;e.eight=56;e.eightarabic=1640;e.eightbengali=2542;e.eightcircle=9319;e.eightcircleinversesansserif=10129;e.eightdeva=2414;e.eighteencircle=9329;e.eighteenparen=9349;e.eighteenperiod=9369;e.eightgujarati=2798;e.eightgurmukhi=2670;e.eighthackarabic=1640;e.eighthangzhou=12328;e.eighthnotebeamed=9835;e.eightideographicparen=12839;e.eightinferior=8328;e.eightmonospace=65304;e.eightoldstyle=63288;e.eightparen=9339;e.eightperiod=9359;e.eightpersian=1784;e.eightroman=8567;e.eightsuperior=8312;e.eightthai=3672;e.einvertedbreve=519;e.eiotifiedcyrillic=1125;e.ekatakana=12456;e.ekatakanahalfwidth=65396;e.ekonkargurmukhi=2676;e.ekorean=12628;e.elcyrillic=1083;e.element=8712;e.elevencircle=9322;e.elevenparen=9342;e.elevenperiod=9362;e.elevenroman=8570;e.ellipsis=8230;e.ellipsisvertical=8942;e.emacron=275;e.emacronacute=7703;e.emacrongrave=7701;e.emcyrillic=1084;e.emdash=8212;e.emdashvertical=65073;e.emonospace=65349;e.emphasismarkarmenian=1371;e.emptyset=8709;e.enbopomofo=12579;e.encyrillic=1085;e.endash=8211;e.endashvertical=65074;e.endescendercyrillic=1187;e.eng=331;e.engbopomofo=12581;e.enghecyrillic=1189;e.enhookcyrillic=1224;e.enspace=8194;e.eogonek=281;e.eokorean=12627;e.eopen=603;e.eopenclosed=666;e.eopenreversed=604;e.eopenreversedclosed=606;e.eopenreversedhook=605;e.eparen=9376;e.epsilon=949;e.epsilontonos=941;e.equal=61;e.equalmonospace=65309;e.equalsmall=65126;e.equalsuperior=8316;e.equivalence=8801;e.erbopomofo=12582;e.ercyrillic=1088;e.ereversed=600;e.ereversedcyrillic=1101;e.escyrillic=1089;e.esdescendercyrillic=1195;e.esh=643;e.eshcurl=646;e.eshortdeva=2318;e.eshortvowelsigndeva=2374;e.eshreversedloop=426;e.eshsquatreversed=645;e.esmallhiragana=12359;e.esmallkatakana=12455;e.esmallkatakanahalfwidth=65386;e.estimated=8494;e.esuperior=63212;e.eta=951;e.etarmenian=1384;e.etatonos=942;e.eth=240;e.etilde=7869;e.etildebelow=7707;e.etnahtafoukhhebrew=1425;e.etnahtafoukhlefthebrew=1425;e.etnahtahebrew=1425;e.etnahtalefthebrew=1425;e.eturned=477;e.eukorean=12641;e.euro=8364;e.evowelsignbengali=2503;e.evowelsigndeva=2375;e.evowelsigngujarati=2759;e.exclam=33;e.exclamarmenian=1372;e.exclamdbl=8252;e.exclamdown=161;e.exclamdownsmall=63393;e.exclammonospace=65281;e.exclamsmall=63265;e.existential=8707;e.ezh=658;e.ezhcaron=495;e.ezhcurl=659;e.ezhreversed=441;e.ezhtail=442;e.f=102;e.fadeva=2398;e.fagurmukhi=2654;e.fahrenheit=8457;e.fathaarabic=1614;e.fathalowarabic=1614;e.fathatanarabic=1611;e.fbopomofo=12552;e.fcircle=9429;e.fdotaccent=7711;e.feharabic=1601;e.feharmenian=1414;e.fehfinalarabic=65234;e.fehinitialarabic=65235;e.fehmedialarabic=65236;e.feicoptic=997;e.female=9792;e.ff=64256;e.f_f=64256;e.ffi=64259;e.f_f_i=64259;e.ffl=64260;e.f_f_l=64260;e.fi=64257;e.f_i=64257;e.fifteencircle=9326;e.fifteenparen=9346;e.fifteenperiod=9366;e.figuredash=8210;e.filledbox=9632;e.filledrect=9644;e.finalkaf=1498;e.finalkafdagesh=64314;e.finalkafdageshhebrew=64314;e.finalkafhebrew=1498;e.finalmem=1501;e.finalmemhebrew=1501;e.finalnun=1503;e.finalnunhebrew=1503;e.finalpe=1507;e.finalpehebrew=1507;e.finaltsadi=1509;e.finaltsadihebrew=1509;e.firsttonechinese=713;e.fisheye=9673;e.fitacyrillic=1139;e.five=53;e.fivearabic=1637;e.fivebengali=2539;e.fivecircle=9316;e.fivecircleinversesansserif=10126;e.fivedeva=2411;e.fiveeighths=8541;e.fivegujarati=2795;e.fivegurmukhi=2667;e.fivehackarabic=1637;e.fivehangzhou=12325;e.fiveideographicparen=12836;e.fiveinferior=8325;e.fivemonospace=65301;e.fiveoldstyle=63285;e.fiveparen=9336;e.fiveperiod=9356;e.fivepersian=1781;e.fiveroman=8564;e.fivesuperior=8309;e.fivethai=3669;e.fl=64258;e.f_l=64258;e.florin=402;e.fmonospace=65350;e.fmsquare=13209;e.fofanthai=3615;e.fofathai=3613;e.fongmanthai=3663;e.forall=8704;e.four=52;e.fourarabic=1636;e.fourbengali=2538;e.fourcircle=9315;e.fourcircleinversesansserif=10125;e.fourdeva=2410;e.fourgujarati=2794;e.fourgurmukhi=2666;e.fourhackarabic=1636;e.fourhangzhou=12324;e.fourideographicparen=12835;e.fourinferior=8324;e.fourmonospace=65300;e.fournumeratorbengali=2551;e.fouroldstyle=63284;e.fourparen=9335;e.fourperiod=9355;e.fourpersian=1780;e.fourroman=8563;e.foursuperior=8308;e.fourteencircle=9325;e.fourteenparen=9345;e.fourteenperiod=9365;e.fourthai=3668;e.fourthtonechinese=715;e.fparen=9377;e.fraction=8260;e.franc=8355;e.g=103;e.gabengali=2455;e.gacute=501;e.gadeva=2327;e.gafarabic=1711;e.gaffinalarabic=64403;e.gafinitialarabic=64404;e.gafmedialarabic=64405;e.gagujarati=2711;e.gagurmukhi=2583;e.gahiragana=12364;e.gakatakana=12460;e.gamma=947;e.gammalatinsmall=611;e.gammasuperior=736;e.gangiacoptic=1003;e.gbopomofo=12557;e.gbreve=287;e.gcaron=487;e.gcedilla=291;e.gcircle=9430;e.gcircumflex=285;e.gcommaaccent=291;e.gdot=289;e.gdotaccent=289;e.gecyrillic=1075;e.gehiragana=12370;e.gekatakana=12466;e.geometricallyequal=8785;e.gereshaccenthebrew=1436;e.gereshhebrew=1523;e.gereshmuqdamhebrew=1437;e.germandbls=223;e.gershayimaccenthebrew=1438;e.gershayimhebrew=1524;e.getamark=12307;e.ghabengali=2456;e.ghadarmenian=1394;e.ghadeva=2328;e.ghagujarati=2712;e.ghagurmukhi=2584;e.ghainarabic=1594;e.ghainfinalarabic=65230;e.ghaininitialarabic=65231;e.ghainmedialarabic=65232;e.ghemiddlehookcyrillic=1173;e.ghestrokecyrillic=1171;e.gheupturncyrillic=1169;e.ghhadeva=2394;e.ghhagurmukhi=2650;e.ghook=608;e.ghzsquare=13203;e.gihiragana=12366;e.gikatakana=12462;e.gimarmenian=1379;e.gimel=1490;e.gimeldagesh=64306;e.gimeldageshhebrew=64306;e.gimelhebrew=1490;e.gjecyrillic=1107;e.glottalinvertedstroke=446;e.glottalstop=660;e.glottalstopinverted=662;e.glottalstopmod=704;e.glottalstopreversed=661;e.glottalstopreversedmod=705;e.glottalstopreversedsuperior=740;e.glottalstopstroke=673;e.glottalstopstrokereversed=674;e.gmacron=7713;e.gmonospace=65351;e.gohiragana=12372;e.gokatakana=12468;e.gparen=9378;e.gpasquare=13228;e.gradient=8711;e.grave=96;e.gravebelowcmb=790;e.gravecmb=768;e.gravecomb=768;e.gravedeva=2387;e.gravelowmod=718;e.gravemonospace=65344;e.gravetonecmb=832;e.greater=62;e.greaterequal=8805;e.greaterequalorless=8923;e.greatermonospace=65310;e.greaterorequivalent=8819;e.greaterorless=8823;e.greateroverequal=8807;e.greatersmall=65125;e.gscript=609;e.gstroke=485;e.guhiragana=12368;e.guillemotleft=171;e.guillemotright=187;e.guilsinglleft=8249;e.guilsinglright=8250;e.gukatakana=12464;e.guramusquare=13080;e.gysquare=13257;e.h=104;e.haabkhasiancyrillic=1193;e.haaltonearabic=1729;e.habengali=2489;e.hadescendercyrillic=1203;e.hadeva=2361;e.hagujarati=2745;e.hagurmukhi=2617;e.haharabic=1581;e.hahfinalarabic=65186;e.hahinitialarabic=65187;e.hahiragana=12399;e.hahmedialarabic=65188;e.haitusquare=13098;e.hakatakana=12495;e.hakatakanahalfwidth=65418;e.halantgurmukhi=2637;e.hamzaarabic=1569;e.hamzalowarabic=1569;e.hangulfiller=12644;e.hardsigncyrillic=1098;e.harpoonleftbarbup=8636;e.harpoonrightbarbup=8640;e.hasquare=13258;e.hatafpatah=1458;e.hatafpatah16=1458;e.hatafpatah23=1458;e.hatafpatah2f=1458;e.hatafpatahhebrew=1458;e.hatafpatahnarrowhebrew=1458;e.hatafpatahquarterhebrew=1458;e.hatafpatahwidehebrew=1458;e.hatafqamats=1459;e.hatafqamats1b=1459;e.hatafqamats28=1459;e.hatafqamats34=1459;e.hatafqamatshebrew=1459;e.hatafqamatsnarrowhebrew=1459;e.hatafqamatsquarterhebrew=1459;e.hatafqamatswidehebrew=1459;e.hatafsegol=1457;e.hatafsegol17=1457;e.hatafsegol24=1457;e.hatafsegol30=1457;e.hatafsegolhebrew=1457;e.hatafsegolnarrowhebrew=1457;e.hatafsegolquarterhebrew=1457;e.hatafsegolwidehebrew=1457;e.hbar=295;e.hbopomofo=12559;e.hbrevebelow=7723;e.hcedilla=7721;e.hcircle=9431;e.hcircumflex=293;e.hdieresis=7719;e.hdotaccent=7715;e.hdotbelow=7717;e.he=1492;e.heart=9829;e.heartsuitblack=9829;e.heartsuitwhite=9825;e.hedagesh=64308;e.hedageshhebrew=64308;e.hehaltonearabic=1729;e.heharabic=1607;e.hehebrew=1492;e.hehfinalaltonearabic=64423;e.hehfinalalttwoarabic=65258;e.hehfinalarabic=65258;e.hehhamzaabovefinalarabic=64421;e.hehhamzaaboveisolatedarabic=64420;e.hehinitialaltonearabic=64424;e.hehinitialarabic=65259;e.hehiragana=12408;e.hehmedialaltonearabic=64425;e.hehmedialarabic=65260;e.heiseierasquare=13179;e.hekatakana=12504;e.hekatakanahalfwidth=65421;e.hekutaarusquare=13110;e.henghook=615;e.herutusquare=13113;e.het=1495;e.hethebrew=1495;e.hhook=614;e.hhooksuperior=689;e.hieuhacirclekorean=12923;e.hieuhaparenkorean=12827;e.hieuhcirclekorean=12909;e.hieuhkorean=12622;e.hieuhparenkorean=12813;e.hihiragana=12402;e.hikatakana=12498;e.hikatakanahalfwidth=65419;e.hiriq=1460;e.hiriq14=1460;e.hiriq21=1460;e.hiriq2d=1460;e.hiriqhebrew=1460;e.hiriqnarrowhebrew=1460;e.hiriqquarterhebrew=1460;e.hiriqwidehebrew=1460;e.hlinebelow=7830;e.hmonospace=65352;e.hoarmenian=1392;e.hohipthai=3627;e.hohiragana=12411;e.hokatakana=12507;e.hokatakanahalfwidth=65422;e.holam=1465;e.holam19=1465;e.holam26=1465;e.holam32=1465;e.holamhebrew=1465;e.holamnarrowhebrew=1465;e.holamquarterhebrew=1465;e.holamwidehebrew=1465;e.honokhukthai=3630;e.hookabovecomb=777;e.hookcmb=777;e.hookpalatalizedbelowcmb=801;e.hookretroflexbelowcmb=802;e.hoonsquare=13122;e.horicoptic=1001;e.horizontalbar=8213;e.horncmb=795;e.hotsprings=9832;e.house=8962;e.hparen=9379;e.hsuperior=688;e.hturned=613;e.huhiragana=12405;e.huiitosquare=13107;e.hukatakana=12501;e.hukatakanahalfwidth=65420;e.hungarumlaut=733;e.hungarumlautcmb=779;e.hv=405;e.hyphen=45;e.hypheninferior=63205;e.hyphenmonospace=65293;e.hyphensmall=65123;e.hyphensuperior=63206;e.hyphentwo=8208;e.i=105;e.iacute=237;e.iacyrillic=1103;e.ibengali=2439;e.ibopomofo=12583;e.ibreve=301;e.icaron=464;e.icircle=9432;e.icircumflex=238;e.icyrillic=1110;e.idblgrave=521;e.ideographearthcircle=12943;e.ideographfirecircle=12939;e.ideographicallianceparen=12863;e.ideographiccallparen=12858;e.ideographiccentrecircle=12965;e.ideographicclose=12294;e.ideographiccomma=12289;e.ideographiccommaleft=65380;e.ideographiccongratulationparen=12855;e.ideographiccorrectcircle=12963;e.ideographicearthparen=12847;e.ideographicenterpriseparen=12861;e.ideographicexcellentcircle=12957;e.ideographicfestivalparen=12864;e.ideographicfinancialcircle=12950;e.ideographicfinancialparen=12854;e.ideographicfireparen=12843;e.ideographichaveparen=12850;e.ideographichighcircle=12964;e.ideographiciterationmark=12293;e.ideographiclaborcircle=12952;e.ideographiclaborparen=12856;e.ideographicleftcircle=12967;e.ideographiclowcircle=12966;e.ideographicmedicinecircle=12969;e.ideographicmetalparen=12846;e.ideographicmoonparen=12842;e.ideographicnameparen=12852;e.ideographicperiod=12290;e.ideographicprintcircle=12958;e.ideographicreachparen=12867;e.ideographicrepresentparen=12857;e.ideographicresourceparen=12862;e.ideographicrightcircle=12968;e.ideographicsecretcircle=12953;e.ideographicselfparen=12866;e.ideographicsocietyparen=12851;e.ideographicspace=12288;e.ideographicspecialparen=12853;e.ideographicstockparen=12849;e.ideographicstudyparen=12859;e.ideographicsunparen=12848;e.ideographicsuperviseparen=12860;e.ideographicwaterparen=12844;e.ideographicwoodparen=12845;e.ideographiczero=12295;e.ideographmetalcircle=12942;e.ideographmooncircle=12938;e.ideographnamecircle=12948;e.ideographsuncircle=12944;e.ideographwatercircle=12940;e.ideographwoodcircle=12941;e.ideva=2311;e.idieresis=239;e.idieresisacute=7727;e.idieresiscyrillic=1253;e.idotbelow=7883;e.iebrevecyrillic=1239;e.iecyrillic=1077;e.ieungacirclekorean=12917;e.ieungaparenkorean=12821;e.ieungcirclekorean=12903;e.ieungkorean=12615;e.ieungparenkorean=12807;e.igrave=236;e.igujarati=2695;e.igurmukhi=2567;e.ihiragana=12356;e.ihookabove=7881;e.iibengali=2440;e.iicyrillic=1080;e.iideva=2312;e.iigujarati=2696;e.iigurmukhi=2568;e.iimatragurmukhi=2624;e.iinvertedbreve=523;e.iishortcyrillic=1081;e.iivowelsignbengali=2496;e.iivowelsigndeva=2368;e.iivowelsigngujarati=2752;e.ij=307;e.ikatakana=12452;e.ikatakanahalfwidth=65394;e.ikorean=12643;e.ilde=732;e.iluyhebrew=1452;e.imacron=299;e.imacroncyrillic=1251;e.imageorapproximatelyequal=8787;e.imatragurmukhi=2623;e.imonospace=65353;e.increment=8710;e.infinity=8734;e.iniarmenian=1387;e.integral=8747;e.integralbottom=8993;e.integralbt=8993;e.integralex=63733;e.integraltop=8992;e.integraltp=8992;e.intersection=8745;e.intisquare=13061;e.invbullet=9688;e.invcircle=9689;e.invsmileface=9787;e.iocyrillic=1105;e.iogonek=303;e.iota=953;e.iotadieresis=970;e.iotadieresistonos=912;e.iotalatin=617;e.iotatonos=943;e.iparen=9380;e.irigurmukhi=2674;e.ismallhiragana=12355;e.ismallkatakana=12451;e.ismallkatakanahalfwidth=65384;e.issharbengali=2554;e.istroke=616;e.isuperior=63213;e.iterationhiragana=12445;e.iterationkatakana=12541;e.itilde=297;e.itildebelow=7725;e.iubopomofo=12585;e.iucyrillic=1102;e.ivowelsignbengali=2495;e.ivowelsigndeva=2367;e.ivowelsigngujarati=2751;e.izhitsacyrillic=1141;e.izhitsadblgravecyrillic=1143;e.j=106;e.jaarmenian=1393;e.jabengali=2460;e.jadeva=2332;e.jagujarati=2716;e.jagurmukhi=2588;e.jbopomofo=12560;e.jcaron=496;e.jcircle=9433;e.jcircumflex=309;e.jcrossedtail=669;e.jdotlessstroke=607;e.jecyrillic=1112;e.jeemarabic=1580;e.jeemfinalarabic=65182;e.jeeminitialarabic=65183;e.jeemmedialarabic=65184;e.jeharabic=1688;e.jehfinalarabic=64395;e.jhabengali=2461;e.jhadeva=2333;e.jhagujarati=2717;e.jhagurmukhi=2589;e.jheharmenian=1403;e.jis=12292;e.jmonospace=65354;e.jparen=9381;e.jsuperior=690;e.k=107;e.kabashkircyrillic=1185;e.kabengali=2453;e.kacute=7729;e.kacyrillic=1082;e.kadescendercyrillic=1179;e.kadeva=2325;e.kaf=1499;e.kafarabic=1603;e.kafdagesh=64315;e.kafdageshhebrew=64315;e.kaffinalarabic=65242;e.kafhebrew=1499;e.kafinitialarabic=65243;e.kafmedialarabic=65244;e.kafrafehebrew=64333;e.kagujarati=2709;e.kagurmukhi=2581;e.kahiragana=12363;e.kahookcyrillic=1220;e.kakatakana=12459;e.kakatakanahalfwidth=65398;e.kappa=954;e.kappasymbolgreek=1008;e.kapyeounmieumkorean=12657;e.kapyeounphieuphkorean=12676;e.kapyeounpieupkorean=12664;e.kapyeounssangpieupkorean=12665;e.karoriisquare=13069;e.kashidaautoarabic=1600;e.kashidaautonosidebearingarabic=1600;e.kasmallkatakana=12533;e.kasquare=13188;e.kasraarabic=1616;e.kasratanarabic=1613;e.kastrokecyrillic=1183;e.katahiraprolongmarkhalfwidth=65392;e.kaverticalstrokecyrillic=1181;e.kbopomofo=12558;e.kcalsquare=13193;e.kcaron=489;e.kcedilla=311;e.kcircle=9434;e.kcommaaccent=311;e.kdotbelow=7731;e.keharmenian=1412;e.kehiragana=12369;e.kekatakana=12465;e.kekatakanahalfwidth=65401;e.kenarmenian=1391;e.kesmallkatakana=12534;e.kgreenlandic=312;e.khabengali=2454;e.khacyrillic=1093;e.khadeva=2326;e.khagujarati=2710;e.khagurmukhi=2582;e.khaharabic=1582;e.khahfinalarabic=65190;e.khahinitialarabic=65191;e.khahmedialarabic=65192;e.kheicoptic=999;e.khhadeva=2393;e.khhagurmukhi=2649;e.khieukhacirclekorean=12920;e.khieukhaparenkorean=12824;e.khieukhcirclekorean=12906;e.khieukhkorean=12619;e.khieukhparenkorean=12810;e.khokhaithai=3586;e.khokhonthai=3589;e.khokhuatthai=3587;e.khokhwaithai=3588;e.khomutthai=3675;e.khook=409;e.khorakhangthai=3590;e.khzsquare=13201;e.kihiragana=12365;e.kikatakana=12461;e.kikatakanahalfwidth=65399;e.kiroguramusquare=13077;e.kiromeetorusquare=13078;e.kirosquare=13076;e.kiyeokacirclekorean=12910;e.kiyeokaparenkorean=12814;e.kiyeokcirclekorean=12896;e.kiyeokkorean=12593;e.kiyeokparenkorean=12800;e.kiyeoksioskorean=12595;e.kjecyrillic=1116;e.klinebelow=7733;e.klsquare=13208;e.kmcubedsquare=13222;e.kmonospace=65355;e.kmsquaredsquare=13218;e.kohiragana=12371;e.kohmsquare=13248;e.kokaithai=3585;e.kokatakana=12467;e.kokatakanahalfwidth=65402;e.kooposquare=13086;e.koppacyrillic=1153;e.koreanstandardsymbol=12927;e.koroniscmb=835;e.kparen=9382;e.kpasquare=13226;e.ksicyrillic=1135;e.ktsquare=13263;e.kturned=670;e.kuhiragana=12367;e.kukatakana=12463;e.kukatakanahalfwidth=65400;e.kvsquare=13240;e.kwsquare=13246;e.l=108;e.labengali=2482;e.lacute=314;e.ladeva=2354;e.lagujarati=2738;e.lagurmukhi=2610;e.lakkhangyaothai=3653;e.lamaleffinalarabic=65276;e.lamalefhamzaabovefinalarabic=65272;e.lamalefhamzaaboveisolatedarabic=65271;e.lamalefhamzabelowfinalarabic=65274;e.lamalefhamzabelowisolatedarabic=65273;e.lamalefisolatedarabic=65275;e.lamalefmaddaabovefinalarabic=65270;e.lamalefmaddaaboveisolatedarabic=65269;e.lamarabic=1604;e.lambda=955;e.lambdastroke=411;e.lamed=1500;e.lameddagesh=64316;e.lameddageshhebrew=64316;e.lamedhebrew=1500;e.lamfinalarabic=65246;e.lamhahinitialarabic=64714;e.laminitialarabic=65247;e.lamjeeminitialarabic=64713;e.lamkhahinitialarabic=64715;e.lamlamhehisolatedarabic=65010;e.lammedialarabic=65248;e.lammeemhahinitialarabic=64904;e.lammeeminitialarabic=64716;e.largecircle=9711;e.lbar=410;e.lbelt=620;e.lbopomofo=12556;e.lcaron=318;e.lcedilla=316;e.lcircle=9435;e.lcircumflexbelow=7741;e.lcommaaccent=316;e.ldot=320;e.ldotaccent=320;e.ldotbelow=7735;e.ldotbelowmacron=7737;e.leftangleabovecmb=794;e.lefttackbelowcmb=792;e.less=60;e.lessequal=8804;e.lessequalorgreater=8922;e.lessmonospace=65308;e.lessorequivalent=8818;e.lessorgreater=8822;e.lessoverequal=8806;e.lesssmall=65124;e.lezh=622;e.lfblock=9612;e.lhookretroflex=621;e.lira=8356;e.liwnarmenian=1388;e.lj=457;e.ljecyrillic=1113;e.ll=63168;e.lladeva=2355;e.llagujarati=2739;e.llinebelow=7739;e.llladeva=2356;e.llvocalicbengali=2529;e.llvocalicdeva=2401;e.llvocalicvowelsignbengali=2531;e.llvocalicvowelsigndeva=2403;e.lmiddletilde=619;e.lmonospace=65356;e.lmsquare=13264;e.lochulathai=3628;e.logicaland=8743;e.logicalnot=172;e.logicalnotreversed=8976;e.logicalor=8744;e.lolingthai=3621;e.longs=383;e.lowlinecenterline=65102;e.lowlinecmb=818;e.lowlinedashed=65101;e.lozenge=9674;e.lparen=9383;e.lslash=322;e.lsquare=8467;e.lsuperior=63214;e.ltshade=9617;e.luthai=3622;e.lvocalicbengali=2444;e.lvocalicdeva=2316;e.lvocalicvowelsignbengali=2530;e.lvocalicvowelsigndeva=2402;e.lxsquare=13267;e.m=109;e.mabengali=2478;e.macron=175;e.macronbelowcmb=817;e.macroncmb=772;e.macronlowmod=717;e.macronmonospace=65507;e.macute=7743;e.madeva=2350;e.magujarati=2734;e.magurmukhi=2606;e.mahapakhhebrew=1444;e.mahapakhlefthebrew=1444;e.mahiragana=12414;e.maichattawalowleftthai=63637;e.maichattawalowrightthai=63636;e.maichattawathai=3659;e.maichattawaupperleftthai=63635;e.maieklowleftthai=63628;e.maieklowrightthai=63627;e.maiekthai=3656;e.maiekupperleftthai=63626;e.maihanakatleftthai=63620;e.maihanakatthai=3633;e.maitaikhuleftthai=63625;e.maitaikhuthai=3655;e.maitholowleftthai=63631;e.maitholowrightthai=63630;e.maithothai=3657;e.maithoupperleftthai=63629;e.maitrilowleftthai=63634;e.maitrilowrightthai=63633;e.maitrithai=3658;e.maitriupperleftthai=63632;e.maiyamokthai=3654;e.makatakana=12510;e.makatakanahalfwidth=65423;e.male=9794;e.mansyonsquare=13127;e.maqafhebrew=1470;e.mars=9794;e.masoracirclehebrew=1455;e.masquare=13187;e.mbopomofo=12551;e.mbsquare=13268;e.mcircle=9436;e.mcubedsquare=13221;e.mdotaccent=7745;e.mdotbelow=7747;e.meemarabic=1605;e.meemfinalarabic=65250;e.meeminitialarabic=65251;e.meemmedialarabic=65252;e.meemmeeminitialarabic=64721;e.meemmeemisolatedarabic=64584;e.meetorusquare=13133;e.mehiragana=12417;e.meizierasquare=13182;e.mekatakana=12513;e.mekatakanahalfwidth=65426;e.mem=1502;e.memdagesh=64318;e.memdageshhebrew=64318;e.memhebrew=1502;e.menarmenian=1396;e.merkhahebrew=1445;e.merkhakefulahebrew=1446;e.merkhakefulalefthebrew=1446;e.merkhalefthebrew=1445;e.mhook=625;e.mhzsquare=13202;e.middledotkatakanahalfwidth=65381;e.middot=183;e.mieumacirclekorean=12914;e.mieumaparenkorean=12818;e.mieumcirclekorean=12900;e.mieumkorean=12609;e.mieumpansioskorean=12656;e.mieumparenkorean=12804;e.mieumpieupkorean=12654;e.mieumsioskorean=12655;e.mihiragana=12415;e.mikatakana=12511;e.mikatakanahalfwidth=65424;e.minus=8722;e.minusbelowcmb=800;e.minuscircle=8854;e.minusmod=727;e.minusplus=8723;e.minute=8242;e.miribaarusquare=13130;e.mirisquare=13129;e.mlonglegturned=624;e.mlsquare=13206;e.mmcubedsquare=13219;e.mmonospace=65357;e.mmsquaredsquare=13215;e.mohiragana=12418;e.mohmsquare=13249;e.mokatakana=12514;e.mokatakanahalfwidth=65427;e.molsquare=13270;e.momathai=3617;e.moverssquare=13223;e.moverssquaredsquare=13224;e.mparen=9384;e.mpasquare=13227;e.mssquare=13235;e.msuperior=63215;e.mturned=623;e.mu=181;e.mu1=181;e.muasquare=13186;e.muchgreater=8811;e.muchless=8810;e.mufsquare=13196;e.mugreek=956;e.mugsquare=13197;e.muhiragana=12416;e.mukatakana=12512;e.mukatakanahalfwidth=65425;e.mulsquare=13205;e.multiply=215;e.mumsquare=13211;e.munahhebrew=1443;e.munahlefthebrew=1443;e.musicalnote=9834;e.musicalnotedbl=9835;e.musicflatsign=9837;e.musicsharpsign=9839;e.mussquare=13234;e.muvsquare=13238;e.muwsquare=13244;e.mvmegasquare=13241;e.mvsquare=13239;e.mwmegasquare=13247;e.mwsquare=13245;e.n=110;e.nabengali=2472;e.nabla=8711;e.nacute=324;e.nadeva=2344;e.nagujarati=2728;e.nagurmukhi=2600;e.nahiragana=12394;e.nakatakana=12490;e.nakatakanahalfwidth=65413;e.napostrophe=329;e.nasquare=13185;e.nbopomofo=12555;e.nbspace=160;e.ncaron=328;e.ncedilla=326;e.ncircle=9437;e.ncircumflexbelow=7755;e.ncommaaccent=326;e.ndotaccent=7749;e.ndotbelow=7751;e.nehiragana=12397;e.nekatakana=12493;e.nekatakanahalfwidth=65416;e.newsheqelsign=8362;e.nfsquare=13195;e.ngabengali=2457;e.ngadeva=2329;e.ngagujarati=2713;e.ngagurmukhi=2585;e.ngonguthai=3591;e.nhiragana=12435;e.nhookleft=626;e.nhookretroflex=627;e.nieunacirclekorean=12911;e.nieunaparenkorean=12815;e.nieuncieuckorean=12597;e.nieuncirclekorean=12897;e.nieunhieuhkorean=12598;e.nieunkorean=12596;e.nieunpansioskorean=12648;e.nieunparenkorean=12801;e.nieunsioskorean=12647;e.nieuntikeutkorean=12646;e.nihiragana=12395;e.nikatakana=12491;e.nikatakanahalfwidth=65414;e.nikhahitleftthai=63641;e.nikhahitthai=3661;e.nine=57;e.ninearabic=1641;e.ninebengali=2543;e.ninecircle=9320;e.ninecircleinversesansserif=10130;e.ninedeva=2415;e.ninegujarati=2799;e.ninegurmukhi=2671;e.ninehackarabic=1641;e.ninehangzhou=12329;e.nineideographicparen=12840;e.nineinferior=8329;e.ninemonospace=65305;e.nineoldstyle=63289;e.nineparen=9340;e.nineperiod=9360;e.ninepersian=1785;e.nineroman=8568;e.ninesuperior=8313;e.nineteencircle=9330;e.nineteenparen=9350;e.nineteenperiod=9370;e.ninethai=3673;e.nj=460;e.njecyrillic=1114;e.nkatakana=12531;e.nkatakanahalfwidth=65437;e.nlegrightlong=414;e.nlinebelow=7753;e.nmonospace=65358;e.nmsquare=13210;e.nnabengali=2467;e.nnadeva=2339;e.nnagujarati=2723;e.nnagurmukhi=2595;e.nnnadeva=2345;e.nohiragana=12398;e.nokatakana=12494;e.nokatakanahalfwidth=65417;e.nonbreakingspace=160;e.nonenthai=3603;e.nonuthai=3609;e.noonarabic=1606;e.noonfinalarabic=65254;e.noonghunnaarabic=1722;e.noonghunnafinalarabic=64415;e.nooninitialarabic=65255;e.noonjeeminitialarabic=64722;e.noonjeemisolatedarabic=64587;e.noonmedialarabic=65256;e.noonmeeminitialarabic=64725;e.noonmeemisolatedarabic=64590;e.noonnoonfinalarabic=64653;e.notcontains=8716;e.notelement=8713;e.notelementof=8713;e.notequal=8800;e.notgreater=8815;e.notgreaternorequal=8817;e.notgreaternorless=8825;e.notidentical=8802;e.notless=8814;e.notlessnorequal=8816;e.notparallel=8742;e.notprecedes=8832;e.notsubset=8836;e.notsucceeds=8833;e.notsuperset=8837;e.nowarmenian=1398;e.nparen=9385;e.nssquare=13233;e.nsuperior=8319;e.ntilde=241;e.nu=957;e.nuhiragana=12396;e.nukatakana=12492;e.nukatakanahalfwidth=65415;e.nuktabengali=2492;e.nuktadeva=2364;e.nuktagujarati=2748;e.nuktagurmukhi=2620;e.numbersign=35;e.numbersignmonospace=65283;e.numbersignsmall=65119;e.numeralsigngreek=884;e.numeralsignlowergreek=885;e.numero=8470;e.nun=1504;e.nundagesh=64320;e.nundageshhebrew=64320;e.nunhebrew=1504;e.nvsquare=13237;e.nwsquare=13243;e.nyabengali=2462;e.nyadeva=2334;e.nyagujarati=2718;e.nyagurmukhi=2590;e.o=111;e.oacute=243;e.oangthai=3629;e.obarred=629;e.obarredcyrillic=1257;e.obarreddieresiscyrillic=1259;e.obengali=2451;e.obopomofo=12571;e.obreve=335;e.ocandradeva=2321;e.ocandragujarati=2705;e.ocandravowelsigndeva=2377;e.ocandravowelsigngujarati=2761;e.ocaron=466;e.ocircle=9438;e.ocircumflex=244;e.ocircumflexacute=7889;e.ocircumflexdotbelow=7897;e.ocircumflexgrave=7891;e.ocircumflexhookabove=7893;e.ocircumflextilde=7895;e.ocyrillic=1086;e.odblacute=337;e.odblgrave=525;e.odeva=2323;e.odieresis=246;e.odieresiscyrillic=1255;e.odotbelow=7885;e.oe=339;e.oekorean=12634;e.ogonek=731;e.ogonekcmb=808;e.ograve=242;e.ogujarati=2707;e.oharmenian=1413;e.ohiragana=12362;e.ohookabove=7887;e.ohorn=417;e.ohornacute=7899;e.ohorndotbelow=7907;e.ohorngrave=7901;e.ohornhookabove=7903;e.ohorntilde=7905;e.ohungarumlaut=337;e.oi=419;e.oinvertedbreve=527;e.okatakana=12458;e.okatakanahalfwidth=65397;e.okorean=12631;e.olehebrew=1451;e.omacron=333;e.omacronacute=7763;e.omacrongrave=7761;e.omdeva=2384;e.omega=969;e.omega1=982;e.omegacyrillic=1121;e.omegalatinclosed=631;e.omegaroundcyrillic=1147;e.omegatitlocyrillic=1149;e.omegatonos=974;e.omgujarati=2768;e.omicron=959;e.omicrontonos=972;e.omonospace=65359;e.one=49;e.onearabic=1633;e.onebengali=2535;e.onecircle=9312;e.onecircleinversesansserif=10122;e.onedeva=2407;e.onedotenleader=8228;e.oneeighth=8539;e.onefitted=63196;e.onegujarati=2791;e.onegurmukhi=2663;e.onehackarabic=1633;e.onehalf=189;e.onehangzhou=12321;e.oneideographicparen=12832;e.oneinferior=8321;e.onemonospace=65297;e.onenumeratorbengali=2548;e.oneoldstyle=63281;e.oneparen=9332;e.oneperiod=9352;e.onepersian=1777;e.onequarter=188;e.oneroman=8560;e.onesuperior=185;e.onethai=3665;e.onethird=8531;e.oogonek=491;e.oogonekmacron=493;e.oogurmukhi=2579;e.oomatragurmukhi=2635;e.oopen=596;e.oparen=9386;e.openbullet=9702;e.option=8997;e.ordfeminine=170;e.ordmasculine=186;e.orthogonal=8735;e.oshortdeva=2322;e.oshortvowelsigndeva=2378;e.oslash=248;e.oslashacute=511;e.osmallhiragana=12361;e.osmallkatakana=12457;e.osmallkatakanahalfwidth=65387;e.ostrokeacute=511;e.osuperior=63216;e.otcyrillic=1151;e.otilde=245;e.otildeacute=7757;e.otildedieresis=7759;e.oubopomofo=12577;e.overline=8254;e.overlinecenterline=65098;e.overlinecmb=773;e.overlinedashed=65097;e.overlinedblwavy=65100;e.overlinewavy=65099;e.overscore=175;e.ovowelsignbengali=2507;e.ovowelsigndeva=2379;e.ovowelsigngujarati=2763;e.p=112;e.paampssquare=13184;e.paasentosquare=13099;e.pabengali=2474;e.pacute=7765;e.padeva=2346;e.pagedown=8671;e.pageup=8670;e.pagujarati=2730;e.pagurmukhi=2602;e.pahiragana=12401;e.paiyannoithai=3631;e.pakatakana=12497;e.palatalizationcyrilliccmb=1156;e.palochkacyrillic=1216;e.pansioskorean=12671;e.paragraph=182;e.parallel=8741;e.parenleft=40;e.parenleftaltonearabic=64830;e.parenleftbt=63725;e.parenleftex=63724;e.parenleftinferior=8333;e.parenleftmonospace=65288;e.parenleftsmall=65113;e.parenleftsuperior=8317;e.parenlefttp=63723;e.parenleftvertical=65077;e.parenright=41;e.parenrightaltonearabic=64831;e.parenrightbt=63736;e.parenrightex=63735;e.parenrightinferior=8334;e.parenrightmonospace=65289;e.parenrightsmall=65114;e.parenrightsuperior=8318;e.parenrighttp=63734;e.parenrightvertical=65078;e.partialdiff=8706;e.paseqhebrew=1472;e.pashtahebrew=1433;e.pasquare=13225;e.patah=1463;e.patah11=1463;e.patah1d=1463;e.patah2a=1463;e.patahhebrew=1463;e.patahnarrowhebrew=1463;e.patahquarterhebrew=1463;e.patahwidehebrew=1463;e.pazerhebrew=1441;e.pbopomofo=12550;e.pcircle=9439;e.pdotaccent=7767;e.pe=1508;e.pecyrillic=1087;e.pedagesh=64324;e.pedageshhebrew=64324;e.peezisquare=13115;e.pefinaldageshhebrew=64323;e.peharabic=1662;e.peharmenian=1402;e.pehebrew=1508;e.pehfinalarabic=64343;e.pehinitialarabic=64344;e.pehiragana=12410;e.pehmedialarabic=64345;e.pekatakana=12506;e.pemiddlehookcyrillic=1191;e.perafehebrew=64334;e.percent=37;e.percentarabic=1642;e.percentmonospace=65285;e.percentsmall=65130;e.period=46;e.periodarmenian=1417;e.periodcentered=183;e.periodhalfwidth=65377;e.periodinferior=63207;e.periodmonospace=65294;e.periodsmall=65106;e.periodsuperior=63208;e.perispomenigreekcmb=834;e.perpendicular=8869;e.perthousand=8240;e.peseta=8359;e.pfsquare=13194;e.phabengali=2475;e.phadeva=2347;e.phagujarati=2731;e.phagurmukhi=2603;e.phi=966;e.phi1=981;e.phieuphacirclekorean=12922;e.phieuphaparenkorean=12826;e.phieuphcirclekorean=12908;e.phieuphkorean=12621;e.phieuphparenkorean=12812;e.philatin=632;e.phinthuthai=3642;e.phisymbolgreek=981;e.phook=421;e.phophanthai=3614;e.phophungthai=3612;e.phosamphaothai=3616;e.pi=960;e.pieupacirclekorean=12915;e.pieupaparenkorean=12819;e.pieupcieuckorean=12662;e.pieupcirclekorean=12901;e.pieupkiyeokkorean=12658;e.pieupkorean=12610;e.pieupparenkorean=12805;e.pieupsioskiyeokkorean=12660;e.pieupsioskorean=12612;e.pieupsiostikeutkorean=12661;e.pieupthieuthkorean=12663;e.pieuptikeutkorean=12659;e.pihiragana=12404;e.pikatakana=12500;e.pisymbolgreek=982;e.piwrarmenian=1411;e.planckover2pi=8463;e.planckover2pi1=8463;e.plus=43;e.plusbelowcmb=799;e.pluscircle=8853;e.plusminus=177;e.plusmod=726;e.plusmonospace=65291;e.plussmall=65122;e.plussuperior=8314;e.pmonospace=65360;e.pmsquare=13272;e.pohiragana=12413;e.pointingindexdownwhite=9759;e.pointingindexleftwhite=9756;e.pointingindexrightwhite=9758;e.pointingindexupwhite=9757;e.pokatakana=12509;e.poplathai=3611;e.postalmark=12306;e.postalmarkface=12320;e.pparen=9387;e.precedes=8826;e.prescription=8478;e.primemod=697;e.primereversed=8245;e.product=8719;e.projective=8965;e.prolongedkana=12540;e.propellor=8984;e.propersubset=8834;e.propersuperset=8835;e.proportion=8759;e.proportional=8733;e.psi=968;e.psicyrillic=1137;e.psilipneumatacyrilliccmb=1158;e.pssquare=13232;e.puhiragana=12407;e.pukatakana=12503;e.pvsquare=13236;e.pwsquare=13242;e.q=113;e.qadeva=2392;e.qadmahebrew=1448;e.qafarabic=1602;e.qaffinalarabic=65238;e.qafinitialarabic=65239;e.qafmedialarabic=65240;e.qamats=1464;e.qamats10=1464;e.qamats1a=1464;e.qamats1c=1464;e.qamats27=1464;e.qamats29=1464;e.qamats33=1464;e.qamatsde=1464;e.qamatshebrew=1464;e.qamatsnarrowhebrew=1464;e.qamatsqatanhebrew=1464;e.qamatsqatannarrowhebrew=1464;e.qamatsqatanquarterhebrew=1464;e.qamatsqatanwidehebrew=1464;e.qamatsquarterhebrew=1464;e.qamatswidehebrew=1464;e.qarneyparahebrew=1439;e.qbopomofo=12561;e.qcircle=9440;e.qhook=672;e.qmonospace=65361;e.qof=1511;e.qofdagesh=64327;e.qofdageshhebrew=64327;e.qofhebrew=1511;e.qparen=9388;e.quarternote=9833;e.qubuts=1467;e.qubuts18=1467;e.qubuts25=1467;e.qubuts31=1467;e.qubutshebrew=1467;e.qubutsnarrowhebrew=1467;e.qubutsquarterhebrew=1467;e.qubutswidehebrew=1467;e.question=63;e.questionarabic=1567;e.questionarmenian=1374;e.questiondown=191;e.questiondownsmall=63423;e.questiongreek=894;e.questionmonospace=65311;e.questionsmall=63295;e.quotedbl=34;e.quotedblbase=8222;e.quotedblleft=8220;e.quotedblmonospace=65282;e.quotedblprime=12318;e.quotedblprimereversed=12317;e.quotedblright=8221;e.quoteleft=8216;e.quoteleftreversed=8219;e.quotereversed=8219;e.quoteright=8217;e.quoterightn=329;e.quotesinglbase=8218;e.quotesingle=39;e.quotesinglemonospace=65287;e.r=114;e.raarmenian=1404;e.rabengali=2480;e.racute=341;e.radeva=2352;e.radical=8730;e.radicalex=63717;e.radoverssquare=13230;e.radoverssquaredsquare=13231;e.radsquare=13229;e.rafe=1471;e.rafehebrew=1471;e.ragujarati=2736;e.ragurmukhi=2608;e.rahiragana=12425;e.rakatakana=12521;e.rakatakanahalfwidth=65431;e.ralowerdiagonalbengali=2545;e.ramiddlediagonalbengali=2544;e.ramshorn=612;e.ratio=8758;e.rbopomofo=12566;e.rcaron=345;e.rcedilla=343;e.rcircle=9441;e.rcommaaccent=343;e.rdblgrave=529;e.rdotaccent=7769;e.rdotbelow=7771;e.rdotbelowmacron=7773;e.referencemark=8251;e.reflexsubset=8838;e.reflexsuperset=8839;e.registered=174;e.registersans=63720;e.registerserif=63194;e.reharabic=1585;e.reharmenian=1408;e.rehfinalarabic=65198;e.rehiragana=12428;e.rekatakana=12524;e.rekatakanahalfwidth=65434;e.resh=1512;e.reshdageshhebrew=64328;e.reshhebrew=1512;e.reversedtilde=8765;e.reviahebrew=1431;e.reviamugrashhebrew=1431;e.revlogicalnot=8976;e.rfishhook=638;e.rfishhookreversed=639;e.rhabengali=2525;e.rhadeva=2397;e.rho=961;e.rhook=637;e.rhookturned=635;e.rhookturnedsuperior=693;e.rhosymbolgreek=1009;e.rhotichookmod=734;e.rieulacirclekorean=12913;e.rieulaparenkorean=12817;e.rieulcirclekorean=12899;e.rieulhieuhkorean=12608;e.rieulkiyeokkorean=12602;e.rieulkiyeoksioskorean=12649;e.rieulkorean=12601;e.rieulmieumkorean=12603;e.rieulpansioskorean=12652;e.rieulparenkorean=12803;e.rieulphieuphkorean=12607;e.rieulpieupkorean=12604;e.rieulpieupsioskorean=12651;e.rieulsioskorean=12605;e.rieulthieuthkorean=12606;e.rieultikeutkorean=12650;e.rieulyeorinhieuhkorean=12653;e.rightangle=8735;e.righttackbelowcmb=793;e.righttriangle=8895;e.rihiragana=12426;e.rikatakana=12522;e.rikatakanahalfwidth=65432;e.ring=730;e.ringbelowcmb=805;e.ringcmb=778;e.ringhalfleft=703;e.ringhalfleftarmenian=1369;e.ringhalfleftbelowcmb=796;e.ringhalfleftcentered=723;e.ringhalfright=702;e.ringhalfrightbelowcmb=825;e.ringhalfrightcentered=722;e.rinvertedbreve=531;e.rittorusquare=13137;e.rlinebelow=7775;e.rlongleg=636;e.rlonglegturned=634;e.rmonospace=65362;e.rohiragana=12429;e.rokatakana=12525;e.rokatakanahalfwidth=65435;e.roruathai=3619;e.rparen=9389;e.rrabengali=2524;e.rradeva=2353;e.rragurmukhi=2652;e.rreharabic=1681;e.rrehfinalarabic=64397;e.rrvocalicbengali=2528;e.rrvocalicdeva=2400;e.rrvocalicgujarati=2784;e.rrvocalicvowelsignbengali=2500;e.rrvocalicvowelsigndeva=2372;e.rrvocalicvowelsigngujarati=2756;e.rsuperior=63217;e.rtblock=9616;e.rturned=633;e.rturnedsuperior=692;e.ruhiragana=12427;e.rukatakana=12523;e.rukatakanahalfwidth=65433;e.rupeemarkbengali=2546;e.rupeesignbengali=2547;e.rupiah=63197;e.ruthai=3620;e.rvocalicbengali=2443;e.rvocalicdeva=2315;e.rvocalicgujarati=2699;e.rvocalicvowelsignbengali=2499;e.rvocalicvowelsigndeva=2371;e.rvocalicvowelsigngujarati=2755;e.s=115;e.sabengali=2488;e.sacute=347;e.sacutedotaccent=7781;e.sadarabic=1589;e.sadeva=2360;e.sadfinalarabic=65210;e.sadinitialarabic=65211;e.sadmedialarabic=65212;e.sagujarati=2744;e.sagurmukhi=2616;e.sahiragana=12373;e.sakatakana=12469;e.sakatakanahalfwidth=65403;e.sallallahoualayhewasallamarabic=65018;e.samekh=1505;e.samekhdagesh=64321;e.samekhdageshhebrew=64321;e.samekhhebrew=1505;e.saraaathai=3634;e.saraaethai=3649;e.saraaimaimalaithai=3652;e.saraaimaimuanthai=3651;e.saraamthai=3635;e.saraathai=3632;e.saraethai=3648;e.saraiileftthai=63622;e.saraiithai=3637;e.saraileftthai=63621;e.saraithai=3636;e.saraothai=3650;e.saraueeleftthai=63624;e.saraueethai=3639;e.saraueleftthai=63623;e.sarauethai=3638;e.sarauthai=3640;e.sarauuthai=3641;e.sbopomofo=12569;e.scaron=353;e.scarondotaccent=7783;e.scedilla=351;e.schwa=601;e.schwacyrillic=1241;e.schwadieresiscyrillic=1243;e.schwahook=602;e.scircle=9442;e.scircumflex=349;e.scommaaccent=537;e.sdotaccent=7777;e.sdotbelow=7779;e.sdotbelowdotaccent=7785;e.seagullbelowcmb=828;e.second=8243;e.secondtonechinese=714;e.section=167;e.seenarabic=1587;e.seenfinalarabic=65202;e.seeninitialarabic=65203;e.seenmedialarabic=65204;e.segol=1462;e.segol13=1462;e.segol1f=1462;e.segol2c=1462;e.segolhebrew=1462;e.segolnarrowhebrew=1462;e.segolquarterhebrew=1462;e.segoltahebrew=1426;e.segolwidehebrew=1462;e.seharmenian=1405;e.sehiragana=12379;e.sekatakana=12475;e.sekatakanahalfwidth=65406;e.semicolon=59;e.semicolonarabic=1563;e.semicolonmonospace=65307;e.semicolonsmall=65108;e.semivoicedmarkkana=12444;e.semivoicedmarkkanahalfwidth=65439;e.sentisquare=13090;e.sentosquare=13091;e.seven=55;e.sevenarabic=1639;e.sevenbengali=2541;e.sevencircle=9318;e.sevencircleinversesansserif=10128;e.sevendeva=2413;e.seveneighths=8542;e.sevengujarati=2797;e.sevengurmukhi=2669;e.sevenhackarabic=1639;e.sevenhangzhou=12327;e.sevenideographicparen=12838;e.seveninferior=8327;e.sevenmonospace=65303;e.sevenoldstyle=63287;e.sevenparen=9338;e.sevenperiod=9358;e.sevenpersian=1783;e.sevenroman=8566;e.sevensuperior=8311;e.seventeencircle=9328;e.seventeenparen=9348;e.seventeenperiod=9368;e.seventhai=3671;e.sfthyphen=173;e.shaarmenian=1399;e.shabengali=2486;e.shacyrillic=1096;e.shaddaarabic=1617;e.shaddadammaarabic=64609;e.shaddadammatanarabic=64606;e.shaddafathaarabic=64608;e.shaddakasraarabic=64610;e.shaddakasratanarabic=64607;e.shade=9618;e.shadedark=9619;e.shadelight=9617;e.shademedium=9618;e.shadeva=2358;e.shagujarati=2742;e.shagurmukhi=2614;e.shalshelethebrew=1427;e.shbopomofo=12565;e.shchacyrillic=1097;e.sheenarabic=1588;e.sheenfinalarabic=65206;e.sheeninitialarabic=65207;e.sheenmedialarabic=65208;e.sheicoptic=995;e.sheqel=8362;e.sheqelhebrew=8362;e.sheva=1456;e.sheva115=1456;e.sheva15=1456;e.sheva22=1456;e.sheva2e=1456;e.shevahebrew=1456;e.shevanarrowhebrew=1456;e.shevaquarterhebrew=1456;e.shevawidehebrew=1456;e.shhacyrillic=1211;e.shimacoptic=1005;e.shin=1513;e.shindagesh=64329;e.shindageshhebrew=64329;e.shindageshshindot=64300;e.shindageshshindothebrew=64300;e.shindageshsindot=64301;e.shindageshsindothebrew=64301;e.shindothebrew=1473;e.shinhebrew=1513;e.shinshindot=64298;e.shinshindothebrew=64298;e.shinsindot=64299;e.shinsindothebrew=64299;e.shook=642;e.sigma=963;e.sigma1=962;e.sigmafinal=962;e.sigmalunatesymbolgreek=1010;e.sihiragana=12375;e.sikatakana=12471;e.sikatakanahalfwidth=65404;e.siluqhebrew=1469;e.siluqlefthebrew=1469;e.similar=8764;e.sindothebrew=1474;e.siosacirclekorean=12916;e.siosaparenkorean=12820;e.sioscieuckorean=12670;e.sioscirclekorean=12902;e.sioskiyeokkorean=12666;e.sioskorean=12613;e.siosnieunkorean=12667;e.siosparenkorean=12806;e.siospieupkorean=12669;e.siostikeutkorean=12668;e.six=54;e.sixarabic=1638;e.sixbengali=2540;e.sixcircle=9317;e.sixcircleinversesansserif=10127;e.sixdeva=2412;e.sixgujarati=2796;e.sixgurmukhi=2668;e.sixhackarabic=1638;e.sixhangzhou=12326;e.sixideographicparen=12837;e.sixinferior=8326;e.sixmonospace=65302;e.sixoldstyle=63286;e.sixparen=9337;e.sixperiod=9357;e.sixpersian=1782;e.sixroman=8565;e.sixsuperior=8310;e.sixteencircle=9327;e.sixteencurrencydenominatorbengali=2553;e.sixteenparen=9347;e.sixteenperiod=9367;e.sixthai=3670;e.slash=47;e.slashmonospace=65295;e.slong=383;e.slongdotaccent=7835;e.smileface=9786;e.smonospace=65363;e.sofpasuqhebrew=1475;e.softhyphen=173;e.softsigncyrillic=1100;e.sohiragana=12381;e.sokatakana=12477;e.sokatakanahalfwidth=65407;e.soliduslongoverlaycmb=824;e.solidusshortoverlaycmb=823;e.sorusithai=3625;e.sosalathai=3624;e.sosothai=3595;e.sosuathai=3626;e.space=32;e.spacehackarabic=32;e.spade=9824;e.spadesuitblack=9824;e.spadesuitwhite=9828;e.sparen=9390;e.squarebelowcmb=827;e.squarecc=13252;e.squarecm=13213;e.squarediagonalcrosshatchfill=9641;e.squarehorizontalfill=9636;e.squarekg=13199;e.squarekm=13214;e.squarekmcapital=13262;e.squareln=13265;e.squarelog=13266;e.squaremg=13198;e.squaremil=13269;e.squaremm=13212;e.squaremsquared=13217;e.squareorthogonalcrosshatchfill=9638;e.squareupperlefttolowerrightfill=9639;e.squareupperrighttolowerleftfill=9640;e.squareverticalfill=9637;e.squarewhitewithsmallblack=9635;e.srsquare=13275;e.ssabengali=2487;e.ssadeva=2359;e.ssagujarati=2743;e.ssangcieuckorean=12617;e.ssanghieuhkorean=12677;e.ssangieungkorean=12672;e.ssangkiyeokkorean=12594;e.ssangnieunkorean=12645;e.ssangpieupkorean=12611;e.ssangsioskorean=12614;e.ssangtikeutkorean=12600;e.ssuperior=63218;e.sterling=163;e.sterlingmonospace=65505;e.strokelongoverlaycmb=822;e.strokeshortoverlaycmb=821;e.subset=8834;e.subsetnotequal=8842;e.subsetorequal=8838;e.succeeds=8827;e.suchthat=8715;e.suhiragana=12377;e.sukatakana=12473;e.sukatakanahalfwidth=65405;e.sukunarabic=1618;e.summation=8721;e.sun=9788;e.superset=8835;e.supersetnotequal=8843;e.supersetorequal=8839;e.svsquare=13276;e.syouwaerasquare=13180;e.t=116;e.tabengali=2468;e.tackdown=8868;e.tackleft=8867;e.tadeva=2340;e.tagujarati=2724;e.tagurmukhi=2596;e.taharabic=1591;e.tahfinalarabic=65218;e.tahinitialarabic=65219;e.tahiragana=12383;e.tahmedialarabic=65220;e.taisyouerasquare=13181;e.takatakana=12479;e.takatakanahalfwidth=65408;e.tatweelarabic=1600;e.tau=964;e.tav=1514;e.tavdages=64330;e.tavdagesh=64330;e.tavdageshhebrew=64330;e.tavhebrew=1514;e.tbar=359;e.tbopomofo=12554;e.tcaron=357;e.tccurl=680;e.tcedilla=355;e.tcheharabic=1670;e.tchehfinalarabic=64379;e.tchehinitialarabic=64380;e.tchehmedialarabic=64381;e.tcircle=9443;e.tcircumflexbelow=7793;e.tcommaaccent=355;e.tdieresis=7831;e.tdotaccent=7787;e.tdotbelow=7789;e.tecyrillic=1090;e.tedescendercyrillic=1197;e.teharabic=1578;e.tehfinalarabic=65174;e.tehhahinitialarabic=64674;e.tehhahisolatedarabic=64524;e.tehinitialarabic=65175;e.tehiragana=12390;e.tehjeeminitialarabic=64673;e.tehjeemisolatedarabic=64523;e.tehmarbutaarabic=1577;e.tehmarbutafinalarabic=65172;e.tehmedialarabic=65176;e.tehmeeminitialarabic=64676;e.tehmeemisolatedarabic=64526;e.tehnoonfinalarabic=64627;e.tekatakana=12486;e.tekatakanahalfwidth=65411;e.telephone=8481;e.telephoneblack=9742;e.telishagedolahebrew=1440;e.telishaqetanahebrew=1449;e.tencircle=9321;e.tenideographicparen=12841;e.tenparen=9341;e.tenperiod=9361;e.tenroman=8569;e.tesh=679;e.tet=1496;e.tetdagesh=64312;e.tetdageshhebrew=64312;e.tethebrew=1496;e.tetsecyrillic=1205;e.tevirhebrew=1435;e.tevirlefthebrew=1435;e.thabengali=2469;e.thadeva=2341;e.thagujarati=2725;e.thagurmukhi=2597;e.thalarabic=1584;e.thalfinalarabic=65196;e.thanthakhatlowleftthai=63640;e.thanthakhatlowrightthai=63639;e.thanthakhatthai=3660;e.thanthakhatupperleftthai=63638;e.theharabic=1579;e.thehfinalarabic=65178;e.thehinitialarabic=65179;e.thehmedialarabic=65180;e.thereexists=8707;e.therefore=8756;e.theta=952;e.theta1=977;e.thetasymbolgreek=977;e.thieuthacirclekorean=12921;e.thieuthaparenkorean=12825;e.thieuthcirclekorean=12907;e.thieuthkorean=12620;e.thieuthparenkorean=12811;e.thirteencircle=9324;e.thirteenparen=9344;e.thirteenperiod=9364;e.thonangmonthothai=3601;e.thook=429;e.thophuthaothai=3602;e.thorn=254;e.thothahanthai=3607;e.thothanthai=3600;e.thothongthai=3608;e.thothungthai=3606;e.thousandcyrillic=1154;e.thousandsseparatorarabic=1644;e.thousandsseparatorpersian=1644;e.three=51;e.threearabic=1635;e.threebengali=2537;e.threecircle=9314;e.threecircleinversesansserif=10124;e.threedeva=2409;e.threeeighths=8540;e.threegujarati=2793;e.threegurmukhi=2665;e.threehackarabic=1635;e.threehangzhou=12323;e.threeideographicparen=12834;e.threeinferior=8323;e.threemonospace=65299;e.threenumeratorbengali=2550;e.threeoldstyle=63283;e.threeparen=9334;e.threeperiod=9354;e.threepersian=1779;e.threequarters=190;e.threequartersemdash=63198;e.threeroman=8562;e.threesuperior=179;e.threethai=3667;e.thzsquare=13204;e.tihiragana=12385;e.tikatakana=12481;e.tikatakanahalfwidth=65409;e.tikeutacirclekorean=12912;e.tikeutaparenkorean=12816;e.tikeutcirclekorean=12898;e.tikeutkorean=12599;e.tikeutparenkorean=12802;e.tilde=732;e.tildebelowcmb=816;e.tildecmb=771;e.tildecomb=771;e.tildedoublecmb=864;e.tildeoperator=8764;e.tildeoverlaycmb=820;e.tildeverticalcmb=830;e.timescircle=8855;e.tipehahebrew=1430;e.tipehalefthebrew=1430;e.tippigurmukhi=2672;e.titlocyrilliccmb=1155;e.tiwnarmenian=1407;e.tlinebelow=7791;e.tmonospace=65364;e.toarmenian=1385;e.tohiragana=12392;e.tokatakana=12488;e.tokatakanahalfwidth=65412;e.tonebarextrahighmod=741;e.tonebarextralowmod=745;e.tonebarhighmod=742;e.tonebarlowmod=744;e.tonebarmidmod=743;e.tonefive=445;e.tonesix=389;e.tonetwo=424;e.tonos=900;e.tonsquare=13095;e.topatakthai=3599;e.tortoiseshellbracketleft=12308;e.tortoiseshellbracketleftsmall=65117;e.tortoiseshellbracketleftvertical=65081;e.tortoiseshellbracketright=12309;e.tortoiseshellbracketrightsmall=65118;e.tortoiseshellbracketrightvertical=65082;e.totaothai=3605;e.tpalatalhook=427;e.tparen=9391;e.trademark=8482;e.trademarksans=63722;e.trademarkserif=63195;e.tretroflexhook=648;e.triagdn=9660;e.triaglf=9668;e.triagrt=9658;e.triagup=9650;e.ts=678;e.tsadi=1510;e.tsadidagesh=64326;e.tsadidageshhebrew=64326;e.tsadihebrew=1510;e.tsecyrillic=1094;e.tsere=1461;e.tsere12=1461;e.tsere1e=1461;e.tsere2b=1461;e.tserehebrew=1461;e.tserenarrowhebrew=1461;e.tserequarterhebrew=1461;e.tserewidehebrew=1461;e.tshecyrillic=1115;e.tsuperior=63219;e.ttabengali=2463;e.ttadeva=2335;e.ttagujarati=2719;e.ttagurmukhi=2591;e.tteharabic=1657;e.ttehfinalarabic=64359;e.ttehinitialarabic=64360;e.ttehmedialarabic=64361;e.tthabengali=2464;e.tthadeva=2336;e.tthagujarati=2720;e.tthagurmukhi=2592;e.tturned=647;e.tuhiragana=12388;e.tukatakana=12484;e.tukatakanahalfwidth=65410;e.tusmallhiragana=12387;e.tusmallkatakana=12483;e.tusmallkatakanahalfwidth=65391;e.twelvecircle=9323;e.twelveparen=9343;e.twelveperiod=9363;e.twelveroman=8571;e.twentycircle=9331;e.twentyhangzhou=21316;e.twentyparen=9351;e.twentyperiod=9371;e.two=50;e.twoarabic=1634;e.twobengali=2536;e.twocircle=9313;e.twocircleinversesansserif=10123;e.twodeva=2408;e.twodotenleader=8229;e.twodotleader=8229;e.twodotleadervertical=65072;e.twogujarati=2792;e.twogurmukhi=2664;e.twohackarabic=1634;e.twohangzhou=12322;e.twoideographicparen=12833;e.twoinferior=8322;e.twomonospace=65298;e.twonumeratorbengali=2549;e.twooldstyle=63282;e.twoparen=9333;e.twoperiod=9353;e.twopersian=1778;e.tworoman=8561;e.twostroke=443;e.twosuperior=178;e.twothai=3666;e.twothirds=8532;e.u=117;e.uacute=250;e.ubar=649;e.ubengali=2441;e.ubopomofo=12584;e.ubreve=365;e.ucaron=468;e.ucircle=9444;e.ucircumflex=251;e.ucircumflexbelow=7799;e.ucyrillic=1091;e.udattadeva=2385;e.udblacute=369;e.udblgrave=533;e.udeva=2313;e.udieresis=252;e.udieresisacute=472;e.udieresisbelow=7795;e.udieresiscaron=474;e.udieresiscyrillic=1265;e.udieresisgrave=476;e.udieresismacron=470;e.udotbelow=7909;e.ugrave=249;e.ugujarati=2697;e.ugurmukhi=2569;e.uhiragana=12358;e.uhookabove=7911;e.uhorn=432;e.uhornacute=7913;e.uhorndotbelow=7921;e.uhorngrave=7915;e.uhornhookabove=7917;e.uhorntilde=7919;e.uhungarumlaut=369;e.uhungarumlautcyrillic=1267;e.uinvertedbreve=535;e.ukatakana=12454;e.ukatakanahalfwidth=65395;e.ukcyrillic=1145;e.ukorean=12636;e.umacron=363;e.umacroncyrillic=1263;e.umacrondieresis=7803;e.umatragurmukhi=2625;e.umonospace=65365;e.underscore=95;e.underscoredbl=8215;e.underscoremonospace=65343;e.underscorevertical=65075;e.underscorewavy=65103;e.union=8746;e.universal=8704;e.uogonek=371;e.uparen=9392;e.upblock=9600;e.upperdothebrew=1476;e.upsilon=965;e.upsilondieresis=971;e.upsilondieresistonos=944;e.upsilonlatin=650;e.upsilontonos=973;e.uptackbelowcmb=797;e.uptackmod=724;e.uragurmukhi=2675;e.uring=367;e.ushortcyrillic=1118;e.usmallhiragana=12357;e.usmallkatakana=12453;e.usmallkatakanahalfwidth=65385;e.ustraightcyrillic=1199;e.ustraightstrokecyrillic=1201;e.utilde=361;e.utildeacute=7801;e.utildebelow=7797;e.uubengali=2442;e.uudeva=2314;e.uugujarati=2698;e.uugurmukhi=2570;e.uumatragurmukhi=2626;e.uuvowelsignbengali=2498;e.uuvowelsigndeva=2370;e.uuvowelsigngujarati=2754;e.uvowelsignbengali=2497;e.uvowelsigndeva=2369;e.uvowelsigngujarati=2753;e.v=118;e.vadeva=2357;e.vagujarati=2741;e.vagurmukhi=2613;e.vakatakana=12535;e.vav=1493;e.vavdagesh=64309;e.vavdagesh65=64309;e.vavdageshhebrew=64309;e.vavhebrew=1493;e.vavholam=64331;e.vavholamhebrew=64331;e.vavvavhebrew=1520;e.vavyodhebrew=1521;e.vcircle=9445;e.vdotbelow=7807;e.vecyrillic=1074;e.veharabic=1700;e.vehfinalarabic=64363;e.vehinitialarabic=64364;e.vehmedialarabic=64365;e.vekatakana=12537;e.venus=9792;e.verticalbar=124;e.verticallineabovecmb=781;e.verticallinebelowcmb=809;e.verticallinelowmod=716;e.verticallinemod=712;e.vewarmenian=1406;e.vhook=651;e.vikatakana=12536;e.viramabengali=2509;e.viramadeva=2381;e.viramagujarati=2765;e.visargabengali=2435;e.visargadeva=2307;e.visargagujarati=2691;e.vmonospace=65366;e.voarmenian=1400;e.voicediterationhiragana=12446;e.voicediterationkatakana=12542;e.voicedmarkkana=12443;e.voicedmarkkanahalfwidth=65438;e.vokatakana=12538;e.vparen=9393;e.vtilde=7805;e.vturned=652;e.vuhiragana=12436;e.vukatakana=12532;e.w=119;e.wacute=7811;e.waekorean=12633;e.wahiragana=12431;e.wakatakana=12527;e.wakatakanahalfwidth=65436;e.wakorean=12632;e.wasmallhiragana=12430;e.wasmallkatakana=12526;e.wattosquare=13143;e.wavedash=12316;e.wavyunderscorevertical=65076;e.wawarabic=1608;e.wawfinalarabic=65262;e.wawhamzaabovearabic=1572;e.wawhamzaabovefinalarabic=65158;e.wbsquare=13277;e.wcircle=9446;e.wcircumflex=373;e.wdieresis=7813;e.wdotaccent=7815;e.wdotbelow=7817;e.wehiragana=12433;e.weierstrass=8472;e.wekatakana=12529;e.wekorean=12638;e.weokorean=12637;e.wgrave=7809;e.whitebullet=9702;e.whitecircle=9675;e.whitecircleinverse=9689;e.whitecornerbracketleft=12302;e.whitecornerbracketleftvertical=65091;e.whitecornerbracketright=12303;e.whitecornerbracketrightvertical=65092;e.whitediamond=9671;e.whitediamondcontainingblacksmalldiamond=9672;e.whitedownpointingsmalltriangle=9663;e.whitedownpointingtriangle=9661;e.whiteleftpointingsmalltriangle=9667;e.whiteleftpointingtriangle=9665;e.whitelenticularbracketleft=12310;e.whitelenticularbracketright=12311;e.whiterightpointingsmalltriangle=9657;e.whiterightpointingtriangle=9655;e.whitesmallsquare=9643;e.whitesmilingface=9786;e.whitesquare=9633;e.whitestar=9734;e.whitetelephone=9743;e.whitetortoiseshellbracketleft=12312;e.whitetortoiseshellbracketright=12313;e.whiteuppointingsmalltriangle=9653;e.whiteuppointingtriangle=9651;e.wihiragana=12432;e.wikatakana=12528;e.wikorean=12639;e.wmonospace=65367;e.wohiragana=12434;e.wokatakana=12530;e.wokatakanahalfwidth=65382;e.won=8361;e.wonmonospace=65510;e.wowaenthai=3623;e.wparen=9394;e.wring=7832;e.wsuperior=695;e.wturned=653;e.wynn=447;e.x=120;e.xabovecmb=829;e.xbopomofo=12562;e.xcircle=9447;e.xdieresis=7821;e.xdotaccent=7819;e.xeharmenian=1389;e.xi=958;e.xmonospace=65368;e.xparen=9395;e.xsuperior=739;e.y=121;e.yaadosquare=13134;e.yabengali=2479;e.yacute=253;e.yadeva=2351;e.yaekorean=12626;e.yagujarati=2735;e.yagurmukhi=2607;e.yahiragana=12420;e.yakatakana=12516;e.yakatakanahalfwidth=65428;e.yakorean=12625;e.yamakkanthai=3662;e.yasmallhiragana=12419;e.yasmallkatakana=12515;e.yasmallkatakanahalfwidth=65388;e.yatcyrillic=1123;e.ycircle=9448;e.ycircumflex=375;e.ydieresis=255;e.ydotaccent=7823;e.ydotbelow=7925;e.yeharabic=1610;e.yehbarreearabic=1746;e.yehbarreefinalarabic=64431;e.yehfinalarabic=65266;e.yehhamzaabovearabic=1574;e.yehhamzaabovefinalarabic=65162;e.yehhamzaaboveinitialarabic=65163;e.yehhamzaabovemedialarabic=65164;e.yehinitialarabic=65267;e.yehmedialarabic=65268;e.yehmeeminitialarabic=64733;e.yehmeemisolatedarabic=64600;e.yehnoonfinalarabic=64660;e.yehthreedotsbelowarabic=1745;e.yekorean=12630;e.yen=165;e.yenmonospace=65509;e.yeokorean=12629;e.yeorinhieuhkorean=12678;e.yerahbenyomohebrew=1450;e.yerahbenyomolefthebrew=1450;e.yericyrillic=1099;e.yerudieresiscyrillic=1273;e.yesieungkorean=12673;e.yesieungpansioskorean=12675;e.yesieungsioskorean=12674;e.yetivhebrew=1434;e.ygrave=7923;e.yhook=436;e.yhookabove=7927;e.yiarmenian=1397;e.yicyrillic=1111;e.yikorean=12642;e.yinyang=9775;e.yiwnarmenian=1410;e.ymonospace=65369;e.yod=1497;e.yoddagesh=64313;e.yoddageshhebrew=64313;e.yodhebrew=1497;e.yodyodhebrew=1522;e.yodyodpatahhebrew=64287;e.yohiragana=12424;e.yoikorean=12681;e.yokatakana=12520;e.yokatakanahalfwidth=65430;e.yokorean=12635;e.yosmallhiragana=12423;e.yosmallkatakana=12519;e.yosmallkatakanahalfwidth=65390;e.yotgreek=1011;e.yoyaekorean=12680;e.yoyakorean=12679;e.yoyakthai=3618;e.yoyingthai=3597;e.yparen=9396;e.ypogegrammeni=890;e.ypogegrammenigreekcmb=837;e.yr=422;e.yring=7833;e.ysuperior=696;e.ytilde=7929;e.yturned=654;e.yuhiragana=12422;e.yuikorean=12684;e.yukatakana=12518;e.yukatakanahalfwidth=65429;e.yukorean=12640;e.yusbigcyrillic=1131;e.yusbigiotifiedcyrillic=1133;e.yuslittlecyrillic=1127;e.yuslittleiotifiedcyrillic=1129;e.yusmallhiragana=12421;e.yusmallkatakana=12517;e.yusmallkatakanahalfwidth=65389;e.yuyekorean=12683;e.yuyeokorean=12682;e.yyabengali=2527;e.yyadeva=2399;e.z=122;e.zaarmenian=1382;e.zacute=378;e.zadeva=2395;e.zagurmukhi=2651;e.zaharabic=1592;e.zahfinalarabic=65222;e.zahinitialarabic=65223;e.zahiragana=12374;e.zahmedialarabic=65224;e.zainarabic=1586;e.zainfinalarabic=65200;e.zakatakana=12470;e.zaqefgadolhebrew=1429;e.zaqefqatanhebrew=1428;e.zarqahebrew=1432;e.zayin=1494;e.zayindagesh=64310;e.zayindageshhebrew=64310;e.zayinhebrew=1494;e.zbopomofo=12567;e.zcaron=382;e.zcircle=9449;e.zcircumflex=7825;e.zcurl=657;e.zdot=380;e.zdotaccent=380;e.zdotbelow=7827;e.zecyrillic=1079;e.zedescendercyrillic=1177;e.zedieresiscyrillic=1247;e.zehiragana=12380;e.zekatakana=12476;e.zero=48;e.zeroarabic=1632;e.zerobengali=2534;e.zerodeva=2406;e.zerogujarati=2790;e.zerogurmukhi=2662;e.zerohackarabic=1632;e.zeroinferior=8320;e.zeromonospace=65296;e.zerooldstyle=63280;e.zeropersian=1776;e.zerosuperior=8304;e.zerothai=3664;e.zerowidthjoiner=65279;e.zerowidthnonjoiner=8204;e.zerowidthspace=8203;e.zeta=950;e.zhbopomofo=12563;e.zhearmenian=1386;e.zhebrevecyrillic=1218;e.zhecyrillic=1078;e.zhedescendercyrillic=1175;e.zhedieresiscyrillic=1245;e.zihiragana=12376;e.zikatakana=12472;e.zinorhebrew=1454;e.zlinebelow=7829;e.zmonospace=65370;e.zohiragana=12382;e.zokatakana=12478;e.zparen=9397;e.zretroflexhook=656;e.zstroke=438;e.zuhiragana=12378;e.zukatakana=12474;e[".notdef"]=0;e.angbracketleftbig=9001;e.angbracketleftBig=9001;e.angbracketleftbigg=9001;e.angbracketleftBigg=9001;e.angbracketrightBig=9002;e.angbracketrightbig=9002;e.angbracketrightBigg=9002;e.angbracketrightbigg=9002;e.arrowhookleft=8618;e.arrowhookright=8617;e.arrowlefttophalf=8636;e.arrowleftbothalf=8637;e.arrownortheast=8599;e.arrownorthwest=8598;e.arrowrighttophalf=8640;e.arrowrightbothalf=8641;e.arrowsoutheast=8600;e.arrowsouthwest=8601;e.backslashbig=8726;e.backslashBig=8726;e.backslashBigg=8726;e.backslashbigg=8726;e.bardbl=8214;e.bracehtipdownleft=65079;e.bracehtipdownright=65079;e.bracehtipupleft=65080;e.bracehtipupright=65080;e.braceleftBig=123;e.braceleftbig=123;e.braceleftbigg=123;e.braceleftBigg=123;e.bracerightBig=125;e.bracerightbig=125;e.bracerightbigg=125;e.bracerightBigg=125;e.bracketleftbig=91;e.bracketleftBig=91;e.bracketleftbigg=91;e.bracketleftBigg=91;e.bracketrightBig=93;e.bracketrightbig=93;e.bracketrightbigg=93;e.bracketrightBigg=93;e.ceilingleftbig=8968;e.ceilingleftBig=8968;e.ceilingleftBigg=8968;e.ceilingleftbigg=8968;e.ceilingrightbig=8969;e.ceilingrightBig=8969;e.ceilingrightbigg=8969;e.ceilingrightBigg=8969;e.circledotdisplay=8857;e.circledottext=8857;e.circlemultiplydisplay=8855;e.circlemultiplytext=8855;e.circleplusdisplay=8853;e.circleplustext=8853;e.contintegraldisplay=8750;e.contintegraltext=8750;e.coproductdisplay=8720;e.coproducttext=8720;e.floorleftBig=8970;e.floorleftbig=8970;e.floorleftbigg=8970;e.floorleftBigg=8970;e.floorrightbig=8971;e.floorrightBig=8971;e.floorrightBigg=8971;e.floorrightbigg=8971;e.hatwide=770;e.hatwider=770;e.hatwidest=770;e.intercal=7488;e.integraldisplay=8747;e.integraltext=8747;e.intersectiondisplay=8898;e.intersectiontext=8898;e.logicalanddisplay=8743;e.logicalandtext=8743;e.logicalordisplay=8744;e.logicalortext=8744;e.parenleftBig=40;e.parenleftbig=40;e.parenleftBigg=40;e.parenleftbigg=40;e.parenrightBig=41;e.parenrightbig=41;e.parenrightBigg=41;e.parenrightbigg=41;e.prime=8242;e.productdisplay=8719;e.producttext=8719;e.radicalbig=8730;e.radicalBig=8730;e.radicalBigg=8730;e.radicalbigg=8730;e.radicalbt=8730;e.radicaltp=8730;e.radicalvertex=8730;e.slashbig=47;e.slashBig=47;e.slashBigg=47;e.slashbigg=47;e.summationdisplay=8721;e.summationtext=8721;e.tildewide=732;e.tildewider=732;e.tildewidest=732;e.uniondisplay=8899;e.unionmultidisplay=8846;e.unionmultitext=8846;e.unionsqdisplay=8852;e.unionsqtext=8852;e.uniontext=8899;e.vextenddouble=8741;e.vextendsingle=8739}),hr=getLookupTableFactory(function(e){e.space=32;e.a1=9985;e.a2=9986;e.a202=9987;e.a3=9988;e.a4=9742;e.a5=9990;e.a119=9991;e.a118=9992;e.a117=9993;e.a11=9755;e.a12=9758;e.a13=9996;e.a14=9997;e.a15=9998;e.a16=9999;e.a105=1e4;e.a17=10001;e.a18=10002;e.a19=10003;e.a20=10004;e.a21=10005;e.a22=10006;e.a23=10007;e.a24=10008;e.a25=10009;e.a26=10010;e.a27=10011;e.a28=10012;e.a6=10013;e.a7=10014;e.a8=10015;e.a9=10016;e.a10=10017;e.a29=10018;e.a30=10019;e.a31=10020;e.a32=10021;e.a33=10022;e.a34=10023;e.a35=9733;e.a36=10025;e.a37=10026;e.a38=10027;e.a39=10028;e.a40=10029;e.a41=10030;e.a42=10031;e.a43=10032;e.a44=10033;e.a45=10034;e.a46=10035;e.a47=10036;e.a48=10037;e.a49=10038;e.a50=10039;e.a51=10040;e.a52=10041;e.a53=10042;e.a54=10043;e.a55=10044;e.a56=10045;e.a57=10046;e.a58=10047;e.a59=10048;e.a60=10049;e.a61=10050;e.a62=10051;e.a63=10052;e.a64=10053;e.a65=10054;e.a66=10055;e.a67=10056;e.a68=10057;e.a69=10058;e.a70=10059;e.a71=9679;e.a72=10061;e.a73=9632;e.a74=10063;e.a203=10064;e.a75=10065;e.a204=10066;e.a76=9650;e.a77=9660;e.a78=9670;e.a79=10070;e.a81=9687;e.a82=10072;e.a83=10073;e.a84=10074;e.a97=10075;e.a98=10076;e.a99=10077;e.a100=10078;e.a101=10081;e.a102=10082;e.a103=10083;e.a104=10084;e.a106=10085;e.a107=10086;e.a108=10087;e.a112=9827;e.a111=9830;e.a110=9829;e.a109=9824;e.a120=9312;e.a121=9313;e.a122=9314;e.a123=9315;e.a124=9316;e.a125=9317;e.a126=9318;e.a127=9319;e.a128=9320;e.a129=9321;e.a130=10102;e.a131=10103;e.a132=10104;e.a133=10105;e.a134=10106;e.a135=10107;e.a136=10108;e.a137=10109;e.a138=10110;e.a139=10111;e.a140=10112;e.a141=10113;e.a142=10114;e.a143=10115;e.a144=10116;e.a145=10117;e.a146=10118;e.a147=10119;e.a148=10120;e.a149=10121;e.a150=10122;e.a151=10123;e.a152=10124;e.a153=10125;e.a154=10126;e.a155=10127;e.a156=10128;e.a157=10129;e.a158=10130;e.a159=10131;e.a160=10132;e.a161=8594;e.a163=8596;e.a164=8597;e.a196=10136;e.a165=10137;e.a192=10138;e.a166=10139;e.a167=10140;e.a168=10141;e.a169=10142;e.a170=10143;e.a171=10144;e.a172=10145;e.a173=10146;e.a162=10147;e.a174=10148;e.a175=10149;e.a176=10150;e.a177=10151;e.a178=10152;e.a179=10153;e.a193=10154;e.a180=10155;e.a199=10156;e.a181=10157;e.a200=10158;e.a182=10159;e.a201=10161;e.a183=10162;e.a184=10163;e.a197=10164;e.a185=10165;e.a194=10166;e.a198=10167;e.a186=10168;e.a195=10169;e.a187=10170;e.a188=10171;e.a189=10172;e.a190=10173;e.a191=10174;e.a89=10088;e.a90=10089;e.a93=10090;e.a94=10091;e.a91=10092;e.a92=10093;e.a205=10094;e.a85=10095;e.a206=10096;e.a86=10097;e.a87=10098;e.a88=10099;e.a95=10100;e.a96=10101;e[".notdef"]=0}),ur=getLookupTableFactory(function(e){e[63721]=169;e[63193]=169;e[63720]=174;e[63194]=174;e[63722]=8482;e[63195]=8482;e[63729]=9127;e[63730]=9128;e[63731]=9129;e[63740]=9131;e[63741]=9132;e[63742]=9133;e[63726]=9121;e[63727]=9122;e[63728]=9123;e[63737]=9124;e[63738]=9125;e[63739]=9126;e[63723]=9115;e[63724]=9116;e[63725]=9117;e[63734]=9118;e[63735]=9119;e[63736]=9120});function getUnicodeForGlyph(e,t){let a=t[e];if(void 0!==a)return a;if(!e)return-1;if("u"===e[0]){const t=e.length;let r;if(7===t&&"n"===e[1]&&"i"===e[2])r=e.substring(3);else{if(!(t>=5&&t<=7))return-1;r=e.substring(1)}if(r===r.toUpperCase()){a=parseInt(r,16);if(a>=0)return a}}return-1}const dr=[[0,127],[128,255],[256,383],[384,591],[592,687,7424,7551,7552,7615],[688,767,42752,42783],[768,879,7616,7679],[880,1023],[11392,11519],[1024,1279,1280,1327,11744,11775,42560,42655],[1328,1423],[1424,1535],[42240,42559],[1536,1791,1872,1919],[1984,2047],[2304,2431],[2432,2559],[2560,2687],[2688,2815],[2816,2943],[2944,3071],[3072,3199],[3200,3327],[3328,3455],[3584,3711],[3712,3839],[4256,4351,11520,11567],[6912,7039],[4352,4607],[7680,7935,11360,11391,42784,43007],[7936,8191],[8192,8303,11776,11903],[8304,8351],[8352,8399],[8400,8447],[8448,8527],[8528,8591],[8592,8703,10224,10239,10496,10623,11008,11263],[8704,8959,10752,11007,10176,10223,10624,10751],[8960,9215],[9216,9279],[9280,9311],[9312,9471],[9472,9599],[9600,9631],[9632,9727],[9728,9983],[9984,10175],[12288,12351],[12352,12447],[12448,12543,12784,12799],[12544,12591,12704,12735],[12592,12687],[43072,43135],[12800,13055],[13056,13311],[44032,55215],[55296,57343],[67840,67871],[19968,40959,11904,12031,12032,12255,12272,12287,13312,19903,131072,173791,12688,12703],[57344,63743],[12736,12783,63744,64255,194560,195103],[64256,64335],[64336,65023],[65056,65071],[65040,65055],[65104,65135],[65136,65279],[65280,65519],[65520,65535],[3840,4095],[1792,1871],[1920,1983],[3456,3583],[4096,4255],[4608,4991,4992,5023,11648,11743],[5024,5119],[5120,5759],[5760,5791],[5792,5887],[6016,6143],[6144,6319],[10240,10495],[40960,42127],[5888,5919,5920,5951,5952,5983,5984,6015],[66304,66351],[66352,66383],[66560,66639],[118784,119039,119040,119295,119296,119375],[119808,120831],[1044480,1048573],[65024,65039,917760,917999],[917504,917631],[6400,6479],[6480,6527],[6528,6623],[6656,6687],[11264,11359],[11568,11647],[19904,19967],[43008,43055],[65536,65663,65664,65791,65792,65855],[65856,65935],[66432,66463],[66464,66527],[66640,66687],[66688,66735],[67584,67647],[68096,68191],[119552,119647],[73728,74751,74752,74879],[119648,119679],[7040,7103],[7168,7247],[7248,7295],[43136,43231],[43264,43311],[43312,43359],[43520,43615],[65936,65999],[66e3,66047],[66208,66271,66176,66207,67872,67903],[127024,127135,126976,127023]];function getUnicodeRangeFor(e,t=-1){if(-1!==t){const a=dr[t];for(let r=0,i=a.length;r=a[r]&&e<=a[r+1])return t}for(let t=0,a=dr.length;t=a[r]&&e<=a[r+1])return t}return-1}const fr=new RegExp("^(\\s)|(\\p{Mn})|(\\p{Cf})$","u"),gr=new Map;const pr=!0,mr=1,br=2,yr=4,wr=32,xr=[".notdef",".null","nonmarkingreturn","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quotesingle","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","grave","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","Adieresis","Aring","Ccedilla","Eacute","Ntilde","Odieresis","Udieresis","aacute","agrave","acircumflex","adieresis","atilde","aring","ccedilla","eacute","egrave","ecircumflex","edieresis","iacute","igrave","icircumflex","idieresis","ntilde","oacute","ograve","ocircumflex","odieresis","otilde","uacute","ugrave","ucircumflex","udieresis","dagger","degree","cent","sterling","section","bullet","paragraph","germandbls","registered","copyright","trademark","acute","dieresis","notequal","AE","Oslash","infinity","plusminus","lessequal","greaterequal","yen","mu","partialdiff","summation","product","pi","integral","ordfeminine","ordmasculine","Omega","ae","oslash","questiondown","exclamdown","logicalnot","radical","florin","approxequal","Delta","guillemotleft","guillemotright","ellipsis","nonbreakingspace","Agrave","Atilde","Otilde","OE","oe","endash","emdash","quotedblleft","quotedblright","quoteleft","quoteright","divide","lozenge","ydieresis","Ydieresis","fraction","currency","guilsinglleft","guilsinglright","fi","fl","daggerdbl","periodcentered","quotesinglbase","quotedblbase","perthousand","Acircumflex","Ecircumflex","Aacute","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Oacute","Ocircumflex","apple","Ograve","Uacute","Ucircumflex","Ugrave","dotlessi","circumflex","tilde","macron","breve","dotaccent","ring","cedilla","hungarumlaut","ogonek","caron","Lslash","lslash","Scaron","scaron","Zcaron","zcaron","brokenbar","Eth","eth","Yacute","yacute","Thorn","thorn","minus","multiply","onesuperior","twosuperior","threesuperior","onehalf","onequarter","threequarters","franc","Gbreve","gbreve","Idotaccent","Scedilla","scedilla","Cacute","cacute","Ccaron","ccaron","dcroat"];function recoverGlyphName(e,t){if(void 0!==t[e])return e;const a=getUnicodeForGlyph(e,t);if(-1!==a)for(const e in t)if(t[e]===a)return e;info("Unable to recover a standard glyph name for: "+e);return e}function type1FontGlyphMapping(e,t,a){const r=Object.create(null);let i,n,s;const o=!!(e.flags&yr);if(e.isInternalFont){s=t;for(n=0;n=0?i:0}}else if(e.baseEncodingName){s=getEncoding(e.baseEncodingName);for(n=0;n=0?i:0}}else if(o)for(n in t)r[n]=t[n];else{s=nr;for(n=0;n=0?i:0}}const c=e.differences;let l;if(c)for(n in c){const e=c[n];i=a.indexOf(e);if(-1===i){l||(l=lr());const t=recoverGlyphName(e,l);t!==e&&(i=a.indexOf(t))}r[n]=i>=0?i:0}return r}function normalizeFontName(e){return e.replaceAll(/[,_]/g,"-").replaceAll(/\s/g,"")}const Sr=getLookupTableFactory(e=>{e[8211]=65074;e[8212]=65073;e[8229]=65072;e[8230]=65049;e[12289]=65041;e[12290]=65042;e[12296]=65087;e[12297]=65088;e[12298]=65085;e[12299]=65086;e[12300]=65089;e[12301]=65090;e[12302]=65091;e[12303]=65092;e[12304]=65083;e[12305]=65084;e[12308]=65081;e[12309]=65082;e[12310]=65047;e[12311]=65048;e[65103]=65076;e[65281]=65045;e[65288]=65077;e[65289]=65078;e[65292]=65040;e[65306]=65043;e[65307]=65044;e[65311]=65046;e[65339]=65095;e[65341]=65096;e[65343]=65075;e[65371]=65079;e[65373]=65080});const Ar=[".notdef","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","endash","dagger","daggerdbl","periodcentered","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","questiondown","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","ring","cedilla","hungarumlaut","ogonek","caron","emdash","AE","ordfeminine","Lslash","Oslash","OE","ordmasculine","ae","dotlessi","lslash","oslash","oe","germandbls","onesuperior","logicalnot","mu","trademark","Eth","onehalf","plusminus","Thorn","onequarter","divide","brokenbar","degree","thorn","threequarters","twosuperior","registered","minus","eth","multiply","threesuperior","copyright","Aacute","Acircumflex","Adieresis","Agrave","Aring","Atilde","Ccedilla","Eacute","Ecircumflex","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Ntilde","Oacute","Ocircumflex","Odieresis","Ograve","Otilde","Scaron","Uacute","Ucircumflex","Udieresis","Ugrave","Yacute","Ydieresis","Zcaron","aacute","acircumflex","adieresis","agrave","aring","atilde","ccedilla","eacute","ecircumflex","edieresis","egrave","iacute","icircumflex","idieresis","igrave","ntilde","oacute","ocircumflex","odieresis","ograve","otilde","scaron","uacute","ucircumflex","udieresis","ugrave","yacute","ydieresis","zcaron"],kr=[".notdef","space","exclamsmall","Hungarumlautsmall","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","questionsmall","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","fi","fl","ffi","ffl","parenleftinferior","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","exclamdownsmall","centoldstyle","Lslashsmall","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","Dotaccentsmall","Macronsmall","figuredash","hypheninferior","Ogoneksmall","Ringsmall","Cedillasmall","onequarter","onehalf","threequarters","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall"],Cr=[".notdef","space","dollaroldstyle","dollarsuperior","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","fi","fl","ffi","ffl","parenleftinferior","parenrightinferior","hyphensuperior","colonmonetary","onefitted","rupiah","centoldstyle","figuredash","hypheninferior","onequarter","onehalf","threequarters","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior"],vr=[".notdef","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","endash","dagger","daggerdbl","periodcentered","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","questiondown","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","ring","cedilla","hungarumlaut","ogonek","caron","emdash","AE","ordfeminine","Lslash","Oslash","OE","ordmasculine","ae","dotlessi","lslash","oslash","oe","germandbls","onesuperior","logicalnot","mu","trademark","Eth","onehalf","plusminus","Thorn","onequarter","divide","brokenbar","degree","thorn","threequarters","twosuperior","registered","minus","eth","multiply","threesuperior","copyright","Aacute","Acircumflex","Adieresis","Agrave","Aring","Atilde","Ccedilla","Eacute","Ecircumflex","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Ntilde","Oacute","Ocircumflex","Odieresis","Ograve","Otilde","Scaron","Uacute","Ucircumflex","Udieresis","Ugrave","Yacute","Ydieresis","Zcaron","aacute","acircumflex","adieresis","agrave","aring","atilde","ccedilla","eacute","ecircumflex","edieresis","egrave","iacute","icircumflex","idieresis","igrave","ntilde","oacute","ocircumflex","odieresis","ograve","otilde","scaron","uacute","ucircumflex","udieresis","ugrave","yacute","ydieresis","zcaron","exclamsmall","Hungarumlautsmall","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","commasuperior","threequartersemdash","periodsuperior","questionsmall","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","ffi","ffl","parenleftinferior","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","exclamdownsmall","centoldstyle","Lslashsmall","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","Dotaccentsmall","Macronsmall","figuredash","hypheninferior","Ogoneksmall","Ringsmall","Cedillasmall","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall","001.000","001.001","001.002","001.003","Black","Bold","Book","Light","Medium","Regular","Roman","Semibold"],Fr=391,Ir=[null,{id:"hstem",min:2,stackClearing:!0,stem:!0},null,{id:"vstem",min:2,stackClearing:!0,stem:!0},{id:"vmoveto",min:1,stackClearing:!0},{id:"rlineto",min:2,resetStack:!0},{id:"hlineto",min:1,resetStack:!0},{id:"vlineto",min:1,resetStack:!0},{id:"rrcurveto",min:6,resetStack:!0},null,{id:"callsubr",min:1,undefStack:!0},{id:"return",min:0,undefStack:!0},null,null,{id:"endchar",min:0,stackClearing:!0},null,null,null,{id:"hstemhm",min:2,stackClearing:!0,stem:!0},{id:"hintmask",min:0,stackClearing:!0},{id:"cntrmask",min:0,stackClearing:!0},{id:"rmoveto",min:2,stackClearing:!0},{id:"hmoveto",min:1,stackClearing:!0},{id:"vstemhm",min:2,stackClearing:!0,stem:!0},{id:"rcurveline",min:8,resetStack:!0},{id:"rlinecurve",min:8,resetStack:!0},{id:"vvcurveto",min:4,resetStack:!0},{id:"hhcurveto",min:4,resetStack:!0},null,{id:"callgsubr",min:1,undefStack:!0},{id:"vhcurveto",min:4,resetStack:!0},{id:"hvcurveto",min:4,resetStack:!0}],Tr=[null,null,null,{id:"and",min:2,stackDelta:-1},{id:"or",min:2,stackDelta:-1},{id:"not",min:1,stackDelta:0},null,null,null,{id:"abs",min:1,stackDelta:0},{id:"add",min:2,stackDelta:-1,stackFn(e,t){e[t-2]=e[t-2]+e[t-1]}},{id:"sub",min:2,stackDelta:-1,stackFn(e,t){e[t-2]=e[t-2]-e[t-1]}},{id:"div",min:2,stackDelta:-1,stackFn(e,t){e[t-2]=e[t-2]/e[t-1]}},null,{id:"neg",min:1,stackDelta:0,stackFn(e,t){e[t-1]=-e[t-1]}},{id:"eq",min:2,stackDelta:-1},null,null,{id:"drop",min:1,stackDelta:-1},null,{id:"put",min:2,stackDelta:-2},{id:"get",min:1,stackDelta:0},{id:"ifelse",min:4,stackDelta:-3},{id:"random",min:0,stackDelta:1},{id:"mul",min:2,stackDelta:-1,stackFn(e,t){e[t-2]=e[t-2]*e[t-1]}},null,{id:"sqrt",min:1,stackDelta:0},{id:"dup",min:1,stackDelta:1},{id:"exch",min:2,stackDelta:0},{id:"index",min:2,stackDelta:0},{id:"roll",min:3,stackDelta:-2},null,null,null,{id:"hflex",min:7,resetStack:!0},{id:"flex",min:13,resetStack:!0},{id:"hflex1",min:9,resetStack:!0},{id:"flex1",min:11,resetStack:!0}];class CFFParser{constructor(e,t,a){this.bytes=e.getBytes();this.properties=t;this.seacAnalysisEnabled=!!a}parse(){const e=this.properties,t=new CFF;this.cff=t;const a=this.parseHeader(),r=this.parseIndex(a.endPos),i=this.parseIndex(r.endPos),n=this.parseIndex(i.endPos),s=this.parseIndex(n.endPos),o=this.parseDict(i.obj.get(0)),c=this.createDict(CFFTopDict,o,t.strings);t.header=a.obj;t.names=this.parseNameIndex(r.obj);t.strings=this.parseStringIndex(n.obj);t.topDict=c;t.globalSubrIndex=s.obj;this.parsePrivateDict(t.topDict);t.isCIDFont=c.hasName("ROS");const l=c.getByName("CharStrings"),h=this.parseIndex(l).obj,u=c.getByName("FontMatrix");u&&(e.fontMatrix=u);const d=c.getByName("FontBBox");if(d){e.ascent=Math.max(d[3],d[1]);e.descent=Math.min(d[1],d[3]);e.ascentScaled=!0}let f,g;if(t.isCIDFont){const e=this.parseIndex(c.getByName("FDArray")).obj;for(let a=0,r=e.count;a=t)throw new FormatError("Invalid CFF header");if(0!==a){info("cff data is shifted");e=e.subarray(a);this.bytes=e}const r=e[0],i=e[1],n=e[2],s=e[3];return{obj:new CFFHeader(r,i,n,s),endPos:n}}parseDict(e){let t=0;function parseOperand(){let a=e[t++];if(30===a)return function parseFloatOperand(){let a="";const r=15,i=["0","1","2","3","4","5","6","7","8","9",".","E","E-",null,"-"],n=e.length;for(;t>4,o=15&n;if(s===r)break;a+=i[s];if(o===r)break;a+=i[o]}return parseFloat(a)}();if(28===a){a=readInt16(e,t);t+=2;return a}if(29===a){a=e[t++];a=a<<8|e[t++];a=a<<8|e[t++];a=a<<8|e[t++];return a}if(a>=32&&a<=246)return a-139;if(a>=247&&a<=250)return 256*(a-247)+e[t++]+108;if(a>=251&&a<=254)return-256*(a-251)-e[t++]-108;warn('CFFParser_parseDict: "'+a+'" is a reserved command.');return NaN}let a=[];const r=[];t=0;const i=e.length;for(;t10)return!1;let i=e.stackSize;const n=e.stack;let s=t.length;for(let o=0;o=4){i-=4;if(this.seacAnalysisEnabled){e.seac=n.slice(i,i+4);return!1}}l=Ir[c]}else if(c>=32&&c<=246){n[i]=c-139;i++}else if(c>=247&&c<=254){n[i]=c<251?(c-247<<8)+t[o]+108:-(c-251<<8)-t[o]-108;o++;i++}else if(255===c){n[i]=(t[o]<<24|t[o+1]<<16|t[o+2]<<8|t[o+3])/65536;o+=4;i++}else if(19===c||20===c){e.hints+=i>>1;if(0===e.hints){t.copyWithin(o-1,o,-1);o-=1;s-=1;continue}o+=e.hints+7>>3;i%=2;l=Ir[c]}else{if(10===c||29===c){const t=10===c?a:r;if(!t){l=Ir[c];warn("Missing subrsIndex for "+l.id);return!1}let s=32768;t.count<1240?s=107:t.count<33900&&(s=1131);const o=n[--i]+s;if(o<0||o>=t.count||isNaN(o)){l=Ir[c];warn("Out of bounds subrIndex for "+l.id);return!1}e.stackSize=i;e.callDepth++;if(!this.parseCharString(e,t.get(o),a,r))return!1;e.callDepth--;i=e.stackSize;continue}if(11===c){e.stackSize=i;return!0}if(0===c&&o===t.length){t[o-1]=14;l=Ir[14]}else{if(9===c){t.copyWithin(o-1,o,-1);o-=1;s-=1;continue}l=Ir[c]}}if(l){if(l.stem){e.hints+=i>>1;if(3===c||23===c)e.hasVStems=!0;else if(e.hasVStems&&(1===c||18===c)){warn("CFF stem hints are in wrong order");t[o-1]=1===c?3:23}}if("min"in l&&!e.undefStack&&i=2&&l.stem?i%=2:i>1&&warn("Found too many parameters for stack-clearing command");i>0&&(e.width=n[i-1])}if("stackDelta"in l){"stackFn"in l&&l.stackFn(n,i);i+=l.stackDelta}else if(l.stackClearing)i=0;else if(l.resetStack){i=0;e.undefStack=!1}else if(l.undefStack){i=0;e.undefStack=!0;e.firstStackClearing=!1}}}s=i.length){warn("Invalid fd index for glyph index.");u=!1}if(u){f=i[e].privateDict;d=f.subrsIndex}}else t&&(d=t);u&&(u=this.parseCharString(h,c,d,a));if(null!==h.width){const e=f.getByName("nominalWidthX");o[l]=e+h.width}else{const e=f.getByName("defaultWidthX");o[l]=e}null!==h.seac&&(s[l]=h.seac);u||e.set(l,new Uint8Array([14]))}return{charStrings:e,seacs:s,widths:o}}emptyPrivateDictionary(e){const t=this.createDict(CFFPrivateDict,[],e.strings);e.setByKey(18,[0,0]);e.privateDict=t}parsePrivateDict(e){if(!e.hasName("Private")){this.emptyPrivateDictionary(e);return}const t=e.getByName("Private");if(!Array.isArray(t)||2!==t.length){e.removeByName("Private");return}const a=t[0],r=t[1];if(0===a||r>=this.bytes.length){this.emptyPrivateDictionary(e);return}const i=r+a,n=this.bytes.subarray(r,i),s=this.parseDict(n),o=this.createDict(CFFPrivateDict,s,e.strings);e.privateDict=o;0===o.getByName("ExpansionFactor")&&o.setByName("ExpansionFactor",.06);if(!o.getByName("Subrs"))return;const c=o.getByName("Subrs"),l=r+c;if(0===c||l>=this.bytes.length){this.emptyPrivateDictionary(e);return}const h=this.parseIndex(l);o.subrsIndex=h.obj}parseCharsets(e,t,a,r){if(0===e)return new CFFCharset(!0,Dr.ISO_ADOBE,Ar);if(1===e)return new CFFCharset(!0,Dr.EXPERT,kr);if(2===e)return new CFFCharset(!0,Dr.EXPERT_SUBSET,Cr);const i=this.bytes,n=e,s=i[e++],o=[r?0:".notdef"];let c,l,h;t-=1;switch(s){case 0:for(h=0;h=65535){warn("Not enough space in charstrings to duplicate first glyph.");return}const e=this.charStrings.get(0);this.charStrings.add(e);this.isCIDFont&&this.fdSelect.fdSelect.push(this.fdSelect.fdSelect[0])}hasGlyphId(e){if(e<0||e>=this.charStrings.count)return!1;return this.charStrings.get(e).length>0}}class CFFHeader{constructor(e,t,a,r){this.major=e;this.minor=t;this.hdrSize=a;this.offSize=r}}class CFFStrings{constructor(){this.strings=[]}get(e){return e>=0&&e<=390?vr[e]:e-Fr<=this.strings.length?this.strings[e-Fr]:vr[0]}getSID(e){let t=vr.indexOf(e);if(-1!==t)return t;t=this.strings.indexOf(e);return-1!==t?t+Fr:-1}add(e){this.strings.push(e)}get count(){return this.strings.length}}class CFFIndex{constructor(){this.objects=[];this.length=0}add(e){this.length+=e.length;this.objects.push(e)}set(e,t){this.length+=t.length-this.objects[e].length;this.objects[e]=t}get(e){return this.objects[e]}get count(){return this.objects.length}}class CFFDict{constructor(e,t){this.keyToNameMap=e.keyToNameMap;this.nameToKeyMap=e.nameToKeyMap;this.defaults=e.defaults;this.types=e.types;this.opcodes=e.opcodes;this.order=e.order;this.strings=t;this.values=Object.create(null)}setByKey(e,t){if(!(e in this.keyToNameMap))return!1;if(0===t.length)return!0;for(const a of t)if(isNaN(a)){warn(`Invalid CFFDict value: "${t}" for key "${e}".`);return!0}const a=this.types[e];"num"!==a&&"sid"!==a&&"offset"!==a||(t=t[0]);this.values[e]=t;return!0}setByName(e,t){if(!(e in this.nameToKeyMap))throw new FormatError(`Invalid dictionary name "${e}"`);this.values[this.nameToKeyMap[e]]=t}hasName(e){return this.nameToKeyMap[e]in this.values}getByName(e){if(!(e in this.nameToKeyMap))throw new FormatError(`Invalid dictionary name ${e}"`);const t=this.nameToKeyMap[e];return t in this.values?this.values[t]:this.defaults[t]}removeByName(e){delete this.values[this.nameToKeyMap[e]]}static createTables(e){const t={keyToNameMap:{},nameToKeyMap:{},defaults:{},types:{},opcodes:{},order:[]};for(const a of e){const e=Array.isArray(a[0])?(a[0][0]<<8)+a[0][1]:a[0];t.keyToNameMap[e]=a[1];t.nameToKeyMap[a[1]]=e;t.types[e]=a[2];t.defaults[e]=a[3];t.opcodes[e]=Array.isArray(a[0])?a[0]:[a[0]];t.order.push(e)}return t}}const Or=[[[12,30],"ROS",["sid","sid","num"],null],[[12,20],"SyntheticBase","num",null],[0,"version","sid",null],[1,"Notice","sid",null],[[12,0],"Copyright","sid",null],[2,"FullName","sid",null],[3,"FamilyName","sid",null],[4,"Weight","sid",null],[[12,1],"isFixedPitch","num",0],[[12,2],"ItalicAngle","num",0],[[12,3],"UnderlinePosition","num",-100],[[12,4],"UnderlineThickness","num",50],[[12,5],"PaintType","num",0],[[12,6],"CharstringType","num",2],[[12,7],"FontMatrix",["num","num","num","num","num","num"],[.001,0,0,.001,0,0]],[13,"UniqueID","num",null],[5,"FontBBox",["num","num","num","num"],[0,0,0,0]],[[12,8],"StrokeWidth","num",0],[14,"XUID","array",null],[15,"charset","offset",0],[16,"Encoding","offset",0],[17,"CharStrings","offset",0],[18,"Private",["offset","offset"],null],[[12,21],"PostScript","sid",null],[[12,22],"BaseFontName","sid",null],[[12,23],"BaseFontBlend","delta",null],[[12,31],"CIDFontVersion","num",0],[[12,32],"CIDFontRevision","num",0],[[12,33],"CIDFontType","num",0],[[12,34],"CIDCount","num",8720],[[12,35],"UIDBase","num",null],[[12,37],"FDSelect","offset",null],[[12,36],"FDArray","offset",null],[[12,38],"FontName","sid",null]];class CFFTopDict extends CFFDict{static get tables(){return shadow(this,"tables",this.createTables(Or))}constructor(e){super(CFFTopDict.tables,e);this.privateDict=null}}const Mr=[[6,"BlueValues","delta",null],[7,"OtherBlues","delta",null],[8,"FamilyBlues","delta",null],[9,"FamilyOtherBlues","delta",null],[[12,9],"BlueScale","num",.039625],[[12,10],"BlueShift","num",7],[[12,11],"BlueFuzz","num",1],[10,"StdHW","num",null],[11,"StdVW","num",null],[[12,12],"StemSnapH","delta",null],[[12,13],"StemSnapV","delta",null],[[12,14],"ForceBold","num",0],[[12,17],"LanguageGroup","num",0],[[12,18],"ExpansionFactor","num",.06],[[12,19],"initialRandomSeed","num",0],[20,"defaultWidthX","num",0],[21,"nominalWidthX","num",0],[19,"Subrs","offset",null]];class CFFPrivateDict extends CFFDict{static get tables(){return shadow(this,"tables",this.createTables(Mr))}constructor(e){super(CFFPrivateDict.tables,e);this.subrsIndex=null}}const Dr={ISO_ADOBE:0,EXPERT:1,EXPERT_SUBSET:2};class CFFCharset{constructor(e,t,a,r){this.predefined=e;this.format=t;this.charset=a;this.raw=r}}class CFFEncoding{constructor(e,t,a,r){this.predefined=e;this.format=t;this.encoding=a;this.raw=r}}class CFFFDSelect{constructor(e,t){this.format=e;this.fdSelect=t}getFDIndex(e){return e<0||e>=this.fdSelect.length?-1:this.fdSelect[e]}}class CFFOffsetTracker{constructor(){this.offsets=Object.create(null)}isTracking(e){return e in this.offsets}track(e,t){if(e in this.offsets)throw new FormatError(`Already tracking location of ${e}`);this.offsets[e]=t}offset(e){for(const t in this.offsets)this.offsets[t]+=e}setEntryLocation(e,t,a){if(!(e in this.offsets))throw new FormatError(`Not tracking location of ${e}`);const r=a.data,i=this.offsets[e];for(let e=0,a=t.length;e>24&255;r[s]=l>>16&255;r[o]=l>>8&255;r[c]=255&l}}}class CFFCompiler{constructor(e){this.cff=e}compile(){const e=this.cff,t={data:[],length:0,add(e){try{this.data.push(...e)}catch{this.data=this.data.concat(e)}this.length=this.data.length}},a=this.compileHeader(e.header);t.add(a);const r=this.compileNameIndex(e.names);t.add(r);if(e.isCIDFont&&e.topDict.hasName("FontMatrix")){const t=e.topDict.getByName("FontMatrix");e.topDict.removeByName("FontMatrix");for(const a of e.fdArray){let e=t.slice(0);a.hasName("FontMatrix")&&(e=Util.transform(e,a.getByName("FontMatrix")));a.setByName("FontMatrix",e)}}const i=e.topDict.getByName("XUID");i?.length>16&&e.topDict.removeByName("XUID");e.topDict.setByName("charset",0);let n=this.compileTopDicts([e.topDict],t.length,e.isCIDFont);t.add(n.output);const s=n.trackers[0],o=this.compileStringIndex(e.strings.strings);t.add(o);const c=this.compileIndex(e.globalSubrIndex);t.add(c);if(e.encoding&&e.topDict.hasName("Encoding"))if(e.encoding.predefined)s.setEntryLocation("Encoding",[e.encoding.format],t);else{const a=this.compileEncoding(e.encoding);s.setEntryLocation("Encoding",[t.length],t);t.add(a)}const l=this.compileCharset(e.charset,e.charStrings.count,e.strings,e.isCIDFont);s.setEntryLocation("charset",[t.length],t);t.add(l);const h=this.compileCharStrings(e.charStrings);s.setEntryLocation("CharStrings",[t.length],t);t.add(h);if(e.isCIDFont){s.setEntryLocation("FDSelect",[t.length],t);const a=this.compileFDSelect(e.fdSelect);t.add(a);n=this.compileTopDicts(e.fdArray,t.length,!0);s.setEntryLocation("FDArray",[t.length],t);t.add(n.output);const r=n.trackers;this.compilePrivateDicts(e.fdArray,r,t)}this.compilePrivateDicts([e.topDict],[s],t);t.add([0]);return t.data}encodeNumber(e){return Number.isInteger(e)?this.encodeInteger(e):this.encodeFloat(e)}static get EncodeFloatRegExp(){return shadow(this,"EncodeFloatRegExp",/\.(\d*?)(?:9{5,20}|0{5,20})\d{0,2}(?:e(.+)|$)/)}encodeFloat(e){let t=e.toString();const a=CFFCompiler.EncodeFloatRegExp.exec(t);if(a){const r=parseFloat("1e"+((a[2]?+a[2]:0)+a[1].length));t=(Math.round(e*r)/r).toString()}let r,i,n="";for(r=0,i=t.length;r=-107&&e<=107?[e+139]:e>=108&&e<=1131?[247+((e-=108)>>8),255&e]:e>=-1131&&e<=-108?[251+((e=-e-108)>>8),255&e]:e>=-32768&&e<=32767?[28,e>>8&255,255&e]:[29,e>>24&255,e>>16&255,e>>8&255,255&e];return t}compileHeader(e){return[e.major,e.minor,4,e.offSize]}compileNameIndex(e){const t=new CFFIndex;for(const a of e){const e=Math.min(a.length,127);let r=new Array(e);for(let t=0;t"~"||"["===e||"]"===e||"("===e||")"===e||"{"===e||"}"===e||"<"===e||">"===e||"/"===e||"%"===e)&&(e="_");r[t]=e}r=r.join("");""===r&&(r="Bad_Font_Name");t.add(stringToBytes(r))}return this.compileIndex(t)}compileTopDicts(e,t,a){const r=[];let i=new CFFIndex;for(const n of e){if(a){n.removeByName("CIDFontVersion");n.removeByName("CIDFontRevision");n.removeByName("CIDFontType");n.removeByName("CIDCount");n.removeByName("UIDBase")}const e=new CFFOffsetTracker,s=this.compileDict(n,e);r.push(e);i.add(s);e.offset(t)}i=this.compileIndex(i,r);return{trackers:r,output:i}}compilePrivateDicts(e,t,a){for(let r=0,i=e.length;r>8&255,255&e])}else{i=new Uint8Array(1+2*n);i[0]=0;let t=0;const r=e.charset.length;let s=!1;for(let n=1;n>8&255;i[n+1]=255&o}}return this.compileTypedArray(i)}compileEncoding(e){return this.compileTypedArray(e.raw)}compileFDSelect(e){const t=e.format;let a,r;switch(t){case 0:a=new Uint8Array(1+e.fdSelect.length);a[0]=t;for(r=0;r>8&255,255&i,n];for(r=1;r>8&255,255&r,t);n=t}}const o=(s.length-3)/3;s[1]=o>>8&255;s[2]=255&o;s.push(r>>8&255,255&r);a=new Uint8Array(s)}return this.compileTypedArray(a)}compileTypedArray(e){return Array.from(e)}compileIndex(e,t=[]){const a=e.objects,r=a.length;if(0===r)return[0,0];const i=[r>>8&255,255&r];let n,s,o=1;for(n=0;n>8&255,255&c):3===s?i.push(c>>16&255,c>>8&255,255&c):i.push(c>>>24&255,c>>16&255,c>>8&255,255&c);a[n]&&(c+=a[n].length)}for(n=0;n=this.firstChar&&e<=this.lastChar?e:-1}amend(e){unreachable("Should not call amend()")}}class CFFFont{constructor(e,t){this.properties=t;const a=new CFFParser(e,t,pr);this.cff=a.parse();this.cff.duplicateFirstGlyph();const r=new CFFCompiler(this.cff);this.seacs=this.cff.seacs;try{this.data=r.compile()}catch{warn("Failed to compile font "+t.loadedName);this.data=e}this._createBuiltInEncoding()}get numGlyphs(){return this.cff.charStrings.count}getCharset(){return this.cff.charset.charset}getGlyphMapping(){const e=this.cff,t=this.properties,{cidToGidMap:a,cMap:r}=t,i=e.charset.charset;let n,s;if(t.composite){let t,o;if(a?.length>0){t=Object.create(null);for(let e=0,r=a.length;e=0){const r=a[t];r&&(i[e]=r)}}i.length>0&&(this.properties.builtInEncoding=i)}}function getFloat214(e,t){return readInt16(e,t)/16384}function getSubroutineBias(e){const t=e.length;let a=32768;t<1240?a=107:t<33900&&(a=1131);return a}function parseCmap(e,t,a){const r=1===readUint16(e,t+2)?readUint32(e,t+8):readUint32(e,t+16),i=readUint16(e,t+r);let n,s,o;if(4===i){readUint16(e,t+r+2);const a=readUint16(e,t+r+6)>>1;s=t+r+14;n=[];for(o=0;o>1;a0;)h.push({flags:n})}for(a=0;a>1;y=!0;break;case 4:s+=i.pop();moveTo(n,s);y=!0;break;case 5:for(;i.length>0;){n+=i.shift();s+=i.shift();lineTo(n,s)}break;case 6:for(;i.length>0;){n+=i.shift();lineTo(n,s);if(0===i.length)break;s+=i.shift();lineTo(n,s)}break;case 7:for(;i.length>0;){s+=i.shift();lineTo(n,s);if(0===i.length)break;n+=i.shift();lineTo(n,s)}break;case 8:for(;i.length>0;){l=n+i.shift();u=s+i.shift();h=l+i.shift();d=u+i.shift();n=h+i.shift();s=d+i.shift();bezierCurveTo(l,u,h,d,n,s)}break;case 10:m=i.pop();b=null;if(a.isCFFCIDFont){const e=a.fdSelect.getFDIndex(r);if(e>=0&&eMath.abs(s-t)?n+=i.shift():s+=i.shift();bezierCurveTo(l,u,h,d,n,s);break;default:throw new FormatError(`unknown operator: 12 ${w}`)}break;case 14:if(i.length>=4){const e=i.pop(),r=i.pop();s=i.pop();n=i.pop();t.save();t.translate(n,s);let o=lookupCmap(a.cmap,String.fromCharCode(a.glyphNameMap[nr[e]]));compileCharString(a.glyphs[o.glyphId],t,a,o.glyphId);t.restore();o=lookupCmap(a.cmap,String.fromCharCode(a.glyphNameMap[nr[r]]));compileCharString(a.glyphs[o.glyphId],t,a,o.glyphId)}return;case 19:case 20:o+=i.length>>1;c+=o+7>>3;y=!0;break;case 21:s+=i.pop();n+=i.pop();moveTo(n,s);y=!0;break;case 22:n+=i.pop();moveTo(n,s);y=!0;break;case 24:for(;i.length>2;){l=n+i.shift();u=s+i.shift();h=l+i.shift();d=u+i.shift();n=h+i.shift();s=d+i.shift();bezierCurveTo(l,u,h,d,n,s)}n+=i.shift();s+=i.shift();lineTo(n,s);break;case 25:for(;i.length>6;){n+=i.shift();s+=i.shift();lineTo(n,s)}l=n+i.shift();u=s+i.shift();h=l+i.shift();d=u+i.shift();n=h+i.shift();s=d+i.shift();bezierCurveTo(l,u,h,d,n,s);break;case 26:i.length%2&&(n+=i.shift());for(;i.length>0;){l=n;u=s+i.shift();h=l+i.shift();d=u+i.shift();n=h;s=d+i.shift();bezierCurveTo(l,u,h,d,n,s)}break;case 27:i.length%2&&(s+=i.shift());for(;i.length>0;){l=n+i.shift();u=s;h=l+i.shift();d=u+i.shift();n=h+i.shift();s=d;bezierCurveTo(l,u,h,d,n,s)}break;case 28:i.push(readInt16(e,c));c+=2;break;case 29:m=i.pop()+a.gsubrsBias;b=a.gsubrs[m];b&&parse(b);break;case 30:for(;i.length>0;){l=n;u=s+i.shift();h=l+i.shift();d=u+i.shift();n=h+i.shift();s=d+(1===i.length?i.shift():0);bezierCurveTo(l,u,h,d,n,s);if(0===i.length)break;l=n+i.shift();u=s;h=l+i.shift();d=u+i.shift();s=d+i.shift();n=h+(1===i.length?i.shift():0);bezierCurveTo(l,u,h,d,n,s)}break;case 31:for(;i.length>0;){l=n+i.shift();u=s;h=l+i.shift();d=u+i.shift();s=d+i.shift();n=h+(1===i.length?i.shift():0);bezierCurveTo(l,u,h,d,n,s);if(0===i.length)break;l=n;u=s+i.shift();h=l+i.shift();d=u+i.shift();n=h+i.shift();s=d+(1===i.length?i.shift():0);bezierCurveTo(l,u,h,d,n,s)}break;default:if(w<32)throw new FormatError(`unknown operator: ${w}`);if(w<247)i.push(w-139);else if(w<251)i.push(256*(w-247)+e[c++]+108);else if(w<255)i.push(256*-(w-251)-e[c++]-108);else{i.push((e[c]<<24|e[c+1]<<16|e[c+2]<<8|e[c+3])/65536);c+=4}}y&&(i.length=0)}}(e)}class Commands{cmds=[];transformStack=[];currentTransform=[1,0,0,1,0,0];add(e,t){if(t){const{currentTransform:a}=this;for(let e=0,r=t.length;e=0&&e2*readUint16(e,t)}const n=[];let s=i(t,0);for(let a=r;ae.getSize()+3&-4))}write(){const e=this.getSize(),t=new DataView(new ArrayBuffer(e)),a=e>131070,r=a?4:2,i=new DataView(new ArrayBuffer((this.glyphs.length+1)*r));a?i.setUint32(0,0):i.setUint16(0,0);let n=0,s=0;for(const e of this.glyphs){n+=e.write(n,t);n=n+3&-4;s+=r;a?i.setUint32(s,n):i.setUint16(s,n>>1)}return{isLocationLong:a,loca:new Uint8Array(i.buffer),glyf:new Uint8Array(t.buffer)}}scale(e){for(let t=0,a=this.glyphs.length;te.getSize()));return this.header.getSize()+e}write(e,t){if(!this.header)return 0;const a=e;e+=this.header.write(e,t);if(this.simple)e+=this.simple.write(e,t);else for(const a of this.composites)e+=a.write(e,t);return e-a}scale(e){if(!this.header)return;const t=(this.header.xMin+this.header.xMax)/2;this.header.scale(t,e);if(this.simple)this.simple.scale(t,e);else for(const a of this.composites)a.scale(t,e)}}class GlyphHeader{constructor({numberOfContours:e,xMin:t,yMin:a,xMax:r,yMax:i}){this.numberOfContours=e;this.xMin=t;this.yMin=a;this.xMax=r;this.yMax=i}static parse(e,t){return[10,new GlyphHeader({numberOfContours:t.getInt16(e),xMin:t.getInt16(e+2),yMin:t.getInt16(e+4),xMax:t.getInt16(e+6),yMax:t.getInt16(e+8)})]}getSize(){return 10}write(e,t){t.setInt16(e,this.numberOfContours);t.setInt16(e+2,this.xMin);t.setInt16(e+4,this.yMin);t.setInt16(e+6,this.xMax);t.setInt16(e+8,this.yMax);return 10}scale(e,t){this.xMin=Math.round(e+(this.xMin-e)*t);this.xMax=Math.round(e+(this.xMax-e)*t)}}class Contour{constructor({flags:e,xCoordinates:t,yCoordinates:a}){this.xCoordinates=t;this.yCoordinates=a;this.flags=e}}class SimpleGlyph{constructor({contours:e,instructions:t}){this.contours=e;this.instructions=t}static parse(e,t,a){const r=[];for(let i=0;i255?e+=2:o>0&&(e+=1);t=n;o=Math.abs(s-a);o>255?e+=2:o>0&&(e+=1);a=s}}return e}write(e,t){const a=e,r=[],i=[],n=[];let s=0,o=0;for(const a of this.contours){for(let e=0,t=a.xCoordinates.length;e=0?18:2;r.push(e)}else r.push(l)}s=c;const h=a.yCoordinates[e];l=h-o;if(0===l){t|=32;i.push(0)}else{const e=Math.abs(l);if(e<=255){t|=l>=0?36:4;i.push(e)}else i.push(l)}o=h;n.push(t)}t.setUint16(e,r.length-1);e+=2}t.setUint16(e,this.instructions.length);e+=2;if(this.instructions.length){new Uint8Array(t.buffer,0,t.buffer.byteLength).set(this.instructions,e);e+=this.instructions.length}for(const a of n)t.setUint8(e++,a);for(let a=0,i=r.length;a=-128&&this.argument1<=127&&this.argument2>=-128&&this.argument2<=127||(e+=2):this.argument1>=0&&this.argument1<=255&&this.argument2>=0&&this.argument2<=255||(e+=2);return e}write(e,t){const a=e;2&this.flags?this.argument1>=-128&&this.argument1<=127&&this.argument2>=-128&&this.argument2<=127||(this.flags|=1):this.argument1>=0&&this.argument1<=255&&this.argument2>=0&&this.argument2<=255||(this.flags|=1);t.setUint16(e,this.flags);t.setUint16(e+2,this.glyphIndex);e+=4;if(1&this.flags){if(2&this.flags){t.setInt16(e,this.argument1);t.setInt16(e+2,this.argument2)}else{t.setUint16(e,this.argument1);t.setUint16(e+2,this.argument2)}e+=4}else{t.setUint8(e,this.argument1);t.setUint8(e+1,this.argument2);e+=2}if(256&this.flags){t.setUint16(e,this.instructions.length);e+=2;if(this.instructions.length){new Uint8Array(t.buffer,0,t.buffer.byteLength).set(this.instructions,e);e+=this.instructions.length}}return e-a}scale(e,t){}}function writeInt16(e,t,a){e[t]=a>>8&255;e[t+1]=255&a}function writeInt32(e,t,a){e[t]=a>>24&255;e[t+1]=a>>16&255;e[t+2]=a>>8&255;e[t+3]=255&a}function writeData(e,t,a){if(a instanceof Uint8Array)e.set(a,t);else if("string"==typeof a)for(let r=0,i=a.length;ra;){a<<=1;r++}const i=a*t;return{range:i,entry:r,rangeShift:t*e-i}}toArray(){let e=this.sfnt;const t=this.tables,a=Object.keys(t);a.sort();const r=a.length;let i,n,s,o,c,l=12+16*r;const h=[l];for(i=0;i>>0;h.push(l)}const u=new Uint8Array(l);for(i=0;i>>0}writeInt32(u,l+4,e);writeInt32(u,l+8,h[i]);writeInt32(u,l+12,t[c].length);l+=16}return u}addTable(e,t){if(e in this.tables)throw new Error("Table "+e+" already exists");this.tables[e]=t}}const Hr=[4],Wr=[5],zr=[6],$r=[7],Gr=[8],Vr=[12,35],Kr=[14],Jr=[21],Yr=[22],Zr=[30],Qr=[31];class Type1CharString{constructor(){this.width=0;this.lsb=0;this.flexing=!1;this.output=[];this.stack=[]}convert(e,t,a){const r=e.length;let i,n,s,o=!1;for(let c=0;cr)return!0;const i=r-e;for(let e=i;e>8&255,255&t);else{t=65536*t|0;this.output.push(255,t>>24&255,t>>16&255,t>>8&255,255&t)}}this.output.push(...t);a?this.stack.splice(i,e):this.stack.length=0;return!1}}function isHexDigit(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function decrypt(e,t,a){if(a>=e.length)return new Uint8Array(0);let r,i,n=0|t;for(r=0;r>8;n=52845*(t+n)+22719&65535}return o}function isSpecial(e){return 47===e||91===e||93===e||123===e||125===e||40===e||41===e}class Type1Parser{constructor(e,t,a){if(t){const t=e.getBytes(),a=!((isHexDigit(t[0])||isWhiteSpace(t[0]))&&isHexDigit(t[1])&&isHexDigit(t[2])&&isHexDigit(t[3])&&isHexDigit(t[4])&&isHexDigit(t[5])&&isHexDigit(t[6])&&isHexDigit(t[7]));e=new Stream(a?decrypt(t,55665,4):function decryptAscii(e,t,a){let r=0|t;const i=e.length,n=new Uint8Array(i>>>1);let s,o;for(s=0,o=0;s>8;r=52845*(e+r)+22719&65535}}return n.slice(a,o)}(t,55665,4))}this.seacAnalysisEnabled=!!a;this.stream=e;this.nextChar()}readNumberArray(){this.getToken();const e=[];for(;;){const t=this.getToken();if(null===t||"]"===t||"}"===t)break;e.push(parseFloat(t||0))}return e}readNumber(){const e=this.getToken();return parseFloat(e||0)}readInt(){const e=this.getToken();return 0|parseInt(e||0,10)}readBoolean(){return"true"===this.getToken()?1:0}nextChar(){return this.currentChar=this.stream.getByte()}prevChar(){this.stream.skip(-2);return this.currentChar=this.stream.getByte()}getToken(){let e=!1,t=this.currentChar;for(;;){if(-1===t)return null;if(e)10!==t&&13!==t||(e=!1);else if(37===t)e=!0;else if(!isWhiteSpace(t))break;t=this.nextChar()}if(isSpecial(t)){this.nextChar();return String.fromCharCode(t)}let a="";do{a+=String.fromCharCode(t);t=this.nextChar()}while(t>=0&&!isWhiteSpace(t)&&!isSpecial(t));return a}readCharStrings(e,t){return-1===t?e:decrypt(e,4330,t)}extractFontProgram(e){const t=this.stream,a=[],r=[],i=Object.create(null);i.lenIV=4;const n={subrs:[],charstrings:[],properties:{privateData:i}};let s,o,c,l;for(;null!==(s=this.getToken());)if("/"===s){s=this.getToken();switch(s){case"CharStrings":this.getToken();this.getToken();this.getToken();this.getToken();for(;;){s=this.getToken();if(null===s||"end"===s)break;if("/"!==s)continue;const e=this.getToken();o=this.readInt();this.getToken();c=o>0?t.getBytes(o):new Uint8Array(0);l=n.properties.privateData.lenIV;const a=this.readCharStrings(c,l);this.nextChar();s=this.getToken();"noaccess"===s?this.getToken():"/"===s&&this.prevChar();r.push({glyph:e,encoded:a})}break;case"Subrs":this.readInt();this.getToken();for(;"dup"===this.getToken();){const e=this.readInt();o=this.readInt();this.getToken();c=o>0?t.getBytes(o):new Uint8Array(0);l=n.properties.privateData.lenIV;const r=this.readCharStrings(c,l);this.nextChar();s=this.getToken();"noaccess"===s&&this.getToken();a[e]=r}break;case"BlueValues":case"OtherBlues":case"FamilyBlues":case"FamilyOtherBlues":const e=this.readNumberArray();e.length>0&&e.length,0;break;case"StemSnapH":case"StemSnapV":n.properties.privateData[s]=this.readNumberArray();break;case"StdHW":case"StdVW":n.properties.privateData[s]=this.readNumberArray()[0];break;case"BlueShift":case"lenIV":case"BlueFuzz":case"BlueScale":case"LanguageGroup":n.properties.privateData[s]=this.readNumber();break;case"ExpansionFactor":n.properties.privateData[s]=this.readNumber()||.06;break;case"ForceBold":n.properties.privateData[s]=this.readBoolean()}}for(const{encoded:t,glyph:i}of r){const r=new Type1CharString,s=r.convert(t,a,this.seacAnalysisEnabled);let o=r.output;s&&(o=[14]);const c={glyphName:i,charstring:o,width:r.width,lsb:r.lsb,seac:r.seac};".notdef"===i?n.charstrings.unshift(c):n.charstrings.push(c);if(e.builtInEncoding){const t=e.builtInEncoding.indexOf(i);t>-1&&void 0===e.widths[t]&&t>=e.firstChar&&t<=e.lastChar&&(e.widths[t]=r.width)}}return n}extractFontHeader(e){let t;for(;null!==(t=this.getToken());)if("/"===t){t=this.getToken();switch(t){case"FontMatrix":const a=this.readNumberArray();e.fontMatrix=a;break;case"Encoding":const r=this.getToken();let i;if(/^\d+$/.test(r)){i=[];const e=0|parseInt(r,10);this.getToken();for(let a=0;a=i){s+=a;for(;s=0&&(r[e]=i)}}return type1FontGlyphMapping(e,r,a)}hasGlyphId(e){if(e<0||e>=this.numGlyphs)return!1;if(0===e)return!0;return this.charstrings[e-1].charstring.length>0}getSeacs(e){const t=[];for(let a=0,r=e.length;a0;e--)t[e]-=t[e-1];f.setByName(e,t)}n.topDict.privateDict=f;const p=new CFFIndex;for(h=0,u=r.length;h0&&e.toUnicode.amend(t)}class fonts_Glyph{constructor(e,t,a,r,i,n,s,o,c){this.originalCharCode=e;this.fontChar=t;this.unicode=a;this.accent=r;this.width=i;this.vmetric=n;this.operatorListId=s;this.isSpace=o;this.isInFont=c}get category(){return shadow(this,"category",function getCharUnicodeCategory(e){const t=gr.get(e);if(t)return t;const a=e.match(fr),r={isWhitespace:!!a?.[1],isZeroWidthDiacritic:!!a?.[2],isInvisibleFormatMark:!!a?.[3]};gr.set(e,r);return r}(this.unicode),!0)}}function int16(e,t){return(e<<8)+t}function writeSignedInt16(e,t,a){e[t+1]=a;e[t]=a>>>8}function signedInt16(e,t){const a=(e<<8)+t;return 32768&a?a-65536:a}function string16(e){return String.fromCharCode(e>>8&255,255&e)}function safeString16(e){e>32767?e=32767:e<-32768&&(e=-32768);return String.fromCharCode(e>>8&255,255&e)}function isTrueTypeCollectionFile(e){return"ttcf"===bytesToString(e.peekBytes(4))}function getFontFileType(e,{type:t,subtype:a,composite:r}){let i,n;if(function isTrueTypeFile(e){const t=e.peekBytes(4);return 65536===readUint32(t,0)||"true"===bytesToString(t)}(e)||isTrueTypeCollectionFile(e))i=r?"CIDFontType2":"TrueType";else if(function isOpenTypeFile(e){return"OTTO"===bytesToString(e.peekBytes(4))}(e))i=r?"CIDFontType2":"OpenType";else if(function isType1File(e){const t=e.peekBytes(2);return 37===t[0]&&33===t[1]||128===t[0]&&1===t[1]}(e))i=r?"CIDFontType0":"MMType1"===t?"MMType1":"Type1";else if(function isCFFFile(e){const t=e.peekBytes(4);return t[0]>=1&&t[3]>=1&&t[3]<=4}(e))if(r){i="CIDFontType0";n="CIDFontType0C"}else{i="MMType1"===t?"MMType1":"Type1";n="Type1C"}else{warn("getFontFileType: Unable to detect correct font file Type/Subtype.");i=t;n=a}return[i,n]}function applyStandardFontGlyphMap(e,t){for(const a in t)e[+a]=t[a]}function buildToFontChar(e,t,a){const r=[];let i;for(let a=0,n=e.length;aei[0][0]<=e&&e<=ei[0][1]||ei[1][0]<=e&&e<=ei[1][1];let u=null;for(const d in e){let f=e[d];if(!t(f))continue;if(l>h){c++;if(c>=ei.length){warn("Ran out of space in font private use area.");break}l=ei[c][0];h=ei[c][1]}const g=l++;0===f&&(f=a);let p=r.get(d);if("string"==typeof p)if(1===p.length)p=p.codePointAt(0);else{if(!u){u=new Map;for(let e=64256;e<=64335;e++){const t=String.fromCharCode(e).normalize("NFKD");t.length>1&&u.set(t,e)}}p=u.get(p)||p.codePointAt(0)}if(p&&!isInPrivateArea(p)&&!o.has(f)){n.set(p,f);o.add(f)}i[g]=f;s[d]=g}return{toFontChar:s,charCodeToGlyphId:i,toUnicodeExtraMap:n,nextAvailableFontCharCode:l}}function createCmapTable(e,t,a){const r=function getRanges(e,t,a){const r=[];for(const t in e)e[t]>=a||r.push({fontCharCode:0|t,glyphId:e[t]});if(t)for(const[e,i]of t)i>=a||r.push({fontCharCode:e,glyphId:i});0===r.length&&r.push({fontCharCode:0,glyphId:0});r.sort((e,t)=>e.fontCharCode-t.fontCharCode);const i=[],n=r.length;for(let e=0;e65535?2:1;let n,s,o,c,l="\0\0"+string16(i)+"\0\0"+string32(4+8*i);for(n=r.length-1;n>=0&&!(r[n][0]<=65535);--n);const h=n+1;r[n][0]<65535&&65535===r[n][1]&&(r[n][1]=65534);const u=r[n][1]<65535?1:0,d=h+u,f=OpenTypeFileBuilder.getSearchParams(d,2);let g,p,m,b,y="",w="",x="",S="",k="",C=0;for(n=0,s=h;n0){w+="ÿÿ";y+="ÿÿ";x+="\0";S+="\0\0"}const v="\0\0"+string16(2*d)+string16(f.range)+string16(f.entry)+string16(f.rangeShift)+w+"\0\0"+y+x+S+k;let F="",T="";if(i>1){l+="\0\0\n"+string32(4+8*i+4+v.length);F="";for(n=0,s=r.length;ne||!o)&&(o=e);c 123 are reserved for internal usage");s|=1<65535&&(c=65535)}else{o=0;c=255}const h=e.bbox||[0,0,0,0],u=a.unitsPerEm||(e.fontMatrix?1/Math.max(...e.fontMatrix.slice(0,4).map(Math.abs)):1e3),d=e.ascentScaled?1:u/ti,f=a.ascent||Math.round(d*(e.ascent||h[3]));let g=a.descent||Math.round(d*(e.descent||h[1]));g>0&&e.descent>0&&h[1]<0&&(g=-g);const p=a.yMax||f,m=-a.yMin||-g;return"\0$ô\0\0\0Š»\0\0\0ŒŠ»\0\0ß\x001\0\0\0\0"+String.fromCharCode(e.fixedPitch?9:0)+"\0\0\0\0\0\0"+string32(r)+string32(i)+string32(n)+string32(s)+"*21*"+string16(e.italicAngle?1:0)+string16(o||e.firstChar)+string16(c||e.lastChar)+string16(f)+string16(g)+"\0d"+string16(p)+string16(m)+"\0\0\0\0\0\0\0\0"+string16(e.xHeight)+string16(e.capHeight)+string16(0)+string16(o||e.firstChar)+"\0"}function createPostTable(e){return"\0\0\0"+string32(Math.floor(65536*e.italicAngle))+"\0\0\0\0"+string32(e.fixedPitch?1:0)+"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}function createPostscriptName(e){return e.replaceAll(/[^\x21-\x7E]|[[\](){}<>/%]/g,"").slice(0,63)}function createNameTable(e,t){t||(t=[[],[]]);const a=[t[0][0]||"Original licence",t[0][1]||e,t[0][2]||"Unknown",t[0][3]||"uniqueID",t[0][4]||e,t[0][5]||"Version 0.11",t[0][6]||createPostscriptName(e),t[0][7]||"Unknown",t[0][8]||"Unknown",t[0][9]||"Unknown"],r=[];let i,n,s,o,c;for(i=0,n=a.length;i0;if((s||o)&&"CIDFontType2"===a&&this.cidEncoding.startsWith("Identity-")){const a=e.cidToGidMap,r=[];applyStandardFontGlyphMap(r,_r());/Arial-?Black/i.test(t)?applyStandardFontGlyphMap(r,jr()):/Calibri/i.test(t)&&applyStandardFontGlyphMap(r,Ur());if(a){for(const e in r){const t=r[e];void 0!==a[t]&&(r[+e]=a[t])}a.length!==this.toUnicode.length&&e.hasIncludedToUnicodeMap&&this.toUnicode instanceof IdentityToUnicodeMap&&this.toUnicode.forEach(function(e,t){const i=r[e];void 0===a[i]&&(r[+e]=t)})}this.toUnicode instanceof IdentityToUnicodeMap||this.toUnicode.forEach(function(e,t){r[+e]=t});this.toFontChar=r;this.toUnicode=new ToUnicodeMap(r)}else if(/Symbol/i.test(r))this.toFontChar=buildToFontChar(or,lr(),this.differences);else if(/Dingbats/i.test(r))this.toFontChar=buildToFontChar(cr,hr(),this.differences);else if(s||o){const e=buildToFontChar(this.defaultEncoding,lr(),this.differences);"CIDFontType2"!==a||this.cidEncoding.startsWith("Identity-")||this.toUnicode instanceof IdentityToUnicodeMap||this.toUnicode.forEach(function(t,a){e[+t]=a});this.toFontChar=e}else{const e=lr(),a=[];this.toUnicode.forEach((t,r)=>{if(!this.composite){const a=getUnicodeForGlyph(this.differences[t]||this.defaultEncoding[t],e);-1!==a&&(r=a)}a[+t]=r});this.composite&&this.toUnicode instanceof IdentityToUnicodeMap&&/Tahoma|Verdana/i.test(t)&&applyStandardFontGlyphMap(a,_r());this.toFontChar=a}amendFallbackToUnicode(e);this.loadedName=r.split("-",1)[0]}checkAndRepair(e,t,a){const r=["OS/2","cmap","head","hhea","hmtx","maxp","name","post","loca","glyf","fpgm","prep","cvt ","CFF "];function readTables(e,t){const a=Object.create(null);a["OS/2"]=null;a.cmap=null;a.head=null;a.hhea=null;a.hmtx=null;a.maxp=null;a.name=null;a.post=null;for(let i=0;i>>0,r=e.getInt32()>>>0,i=e.getInt32()>>>0,n=e.pos;e.pos=e.start||0;e.skip(r);const s=e.getBytes(i);e.pos=n;if("head"===t){s[8]=s[9]=s[10]=s[11]=0;s[17]|=32}return{tag:t,checksum:a,length:i,offset:r,data:s}}function readOpenTypeHeader(e){return{version:e.getString(4),numTables:e.getUint16(),searchRange:e.getUint16(),entrySelector:e.getUint16(),rangeShift:e.getUint16()}}function sanitizeGlyph(e,t,a,r,i,n){const s={length:0,sizeOfInstructions:0};if(t<0||t>=e.length||a>e.length||a-t<=12)return s;const o=e.subarray(t,a),c=signedInt16(o[2],o[3]),l=signedInt16(o[4],o[5]),h=signedInt16(o[6],o[7]),u=signedInt16(o[8],o[9]);if(c>h){writeSignedInt16(o,2,h);writeSignedInt16(o,6,c)}if(l>u){writeSignedInt16(o,4,u);writeSignedInt16(o,8,l)}const d=signedInt16(o[0],o[1]);if(d<0){if(d<-1)return s;r.set(o,i);s.length=o.length;return s}let f,g=10,p=0;for(f=0;fo.length)return s;if(!n&&b>0){r.set(o.subarray(0,m),i);r.set([0,0],i+m);r.set(o.subarray(y,x),i+m+2);x-=b;o.length-x>3&&(x=x+3&-4);s.length=x;return s}if(o.length-x>3){x=x+3&-4;r.set(o.subarray(0,x),i);s.length=x;return s}r.set(o,i);s.length=o.length;return s}function readNameTable(e){const a=(t.start||0)+e.offset;t.pos=a;const r=[[],[]],i=[],n=e.length,s=a+n;if(0!==t.getUint16()||n<6)return[r,i];const o=t.getUint16(),c=t.getUint16();let l,h;for(l=0;ls)continue;t.pos=n;const o=e.name;if(e.encoding){let a="";for(let r=0,i=e.length;r0&&(l+=e-1)}}else{if(m||y){warn("TT: nested FDEFs not allowed");p=!0}m=!0;u=l;s=d.pop();t.functionsDefined[s]={data:c,i:l}}else if(!m&&!y){s=d.at(-1);if(isNaN(s))info("TT: CALL empty stack (or invalid entry).");else{t.functionsUsed[s]=!0;if(s in t.functionsStackDeltas){const e=d.length+t.functionsStackDeltas[s];if(e<0){warn("TT: CALL invalid functions stack delta.");t.hintsValid=!1;return}d.length=e}else if(s in t.functionsDefined&&!g.includes(s)){f.push({data:c,i:l,stackTop:d.length-1});g.push(s);o=t.functionsDefined[s];if(!o){warn("TT: CALL non-existent function");t.hintsValid=!1;return}c=o.data;l=o.i}}}if(!m&&!y){let t=0;e<=142?t=i[e]:e>=192&&e<=223?t=-1:e>=224&&(t=-2);if(e>=113&&e<=117){r=d.pop();isNaN(r)||(t=2*-r)}for(;t<0&&d.length>0;){d.pop();t++}for(;t>0;){d.push(NaN);t--}}}t.tooComplexToFollowFunctions=p;const w=[c];l>c.length&&w.push(new Uint8Array(l-c.length));if(u>h){warn("TT: complementing a missing function tail");w.push(new Uint8Array([34,45]))}!function foldTTTable(e,t){if(t.length>1){let a,r,i=0;for(a=0,r=t.length;a>>0,n=[];for(let t=0;t>>0);const s={ttcTag:t,majorVersion:a,minorVersion:r,numFonts:i,offsetTable:n};switch(a){case 1:return s;case 2:s.dsigTag=e.getInt32()>>>0;s.dsigLength=e.getInt32()>>>0;s.dsigOffset=e.getInt32()>>>0;return s}throw new FormatError(`Invalid TrueType Collection majorVersion: ${a}.`)}(e),i=t.split("+");let n;for(let s=0;s0||!(a.cMap instanceof IdentityCMap));if("OTTO"===n.version&&!t||!s.head||!s.hhea||!s.maxp||!s.post){c=new Stream(s["CFF "].data);o=new CFFFont(c,a);return this.convert(e,o,a)}delete s.glyf;delete s.loca;delete s.fpgm;delete s.prep;delete s["cvt "];this.isOpenType=!0}if(!s.maxp)throw new FormatError('Required "maxp" table is not found');t.pos=(t.start||0)+s.maxp.offset;let h=t.getInt32();const u=t.getUint16();if(65536!==h&&20480!==h){if(6===s.maxp.length)h=20480;else{if(!(s.maxp.length>=32))throw new FormatError('"maxp" table has a wrong version number');h=65536}!function writeUint32(e,t,a){e[t+3]=255&a;e[t+2]=a>>>8;e[t+1]=a>>>16;e[t]=a>>>24}(s.maxp.data,0,h)}if(a.scaleFactors?.length===u&&l){const{scaleFactors:e}=a,t=int16(s.head.data[50],s.head.data[51]),r=new GlyfTable({glyfTable:s.glyf.data,isGlyphLocationsLong:t,locaTable:s.loca.data,numGlyphs:u});r.scale(e);const{glyf:i,loca:n,isLocationLong:o}=r.write();s.glyf.data=i;s.loca.data=n;if(o!==!!t){s.head.data[50]=0;s.head.data[51]=o?1:0}const c=s.hmtx.data;for(let t=0;t>8&255;c[a+1]=255&r;writeSignedInt16(c,a+2,Math.round(e[t]*signedInt16(c[a+2],c[a+3])))}}let d=u+1,f=!0;if(d>65535){f=!1;d=u;warn("Not enough space in glyfs to duplicate first glyph.")}let g=0,p=0;if(h>=65536&&s.maxp.length>=32){t.pos+=8;if(t.getUint16()>2){s.maxp.data[14]=0;s.maxp.data[15]=2}t.pos+=4;g=t.getUint16();t.pos+=4;p=t.getUint16()}s.maxp.data[4]=d>>8;s.maxp.data[5]=255&d;const m=function sanitizeTTPrograms(e,t,a,r){const i={functionsDefined:[],functionsUsed:[],functionsStackDeltas:[],tooComplexToFollowFunctions:!1,hintsValid:!0};e&&sanitizeTTProgram(e,i);t&&sanitizeTTProgram(t,i);e&&function checkInvalidFunctions(e,t){if(!e.tooComplexToFollowFunctions)if(e.functionsDefined.length>t){warn("TT: more functions defined than expected");e.hintsValid=!1}else for(let a=0,r=e.functionsUsed.length;at){warn("TT: invalid function id: "+a);e.hintsValid=!1;return}if(e.functionsUsed[a]&&!e.functionsDefined[a]){warn("TT: undefined function: "+a);e.hintsValid=!1;return}}}(i,r);if(a&&1&a.length){const e=new Uint8Array(a.length+1);e.set(a.data);a.data=e}return i.hintsValid}(s.fpgm,s.prep,s["cvt "],g);if(!m){delete s.fpgm;delete s.prep;delete s["cvt "]}!function sanitizeMetrics(e,t,a,r,i,n){if(!t){a&&(a.data=null);return}e.pos=(e.start||0)+t.offset;e.pos+=4;e.pos+=2;e.pos+=2;e.pos+=2;e.pos+=2;e.pos+=2;e.pos+=2;e.pos+=2;e.pos+=2;e.pos+=2;const s=e.getUint16();e.pos+=8;e.pos+=2;let o=e.getUint16();if(0!==s){if(!(2&int16(r.data[44],r.data[45]))){t.data[22]=0;t.data[23]=0}}if(o>i){info(`The numOfMetrics (${o}) should not be greater than the numGlyphs (${i}).`);o=i;t.data[34]=(65280&o)>>8;t.data[35]=255&o}const c=i-o-(a.length-4*o>>1);if(c>0){const e=new Uint8Array(a.length+2*c);e.set(a.data);if(n){e[a.length]=a.data[2];e[a.length+1]=a.data[3]}a.data=e}}(t,s.hhea,s.hmtx,s.head,d,f);if(!s.head)throw new FormatError('Required "head" table is not found');!function sanitizeHead(e,t,a){const r=e.data,i=function int32(e,t,a,r){return(e<<24)+(t<<16)+(a<<8)+r}(r[0],r[1],r[2],r[3]);if(i>>16!=1){info("Attempting to fix invalid version in head table: "+i);r[0]=0;r[1]=1;r[2]=0;r[3]=0}const n=int16(r[50],r[51]);if(n<0||n>1){info("Attempting to fix invalid indexToLocFormat in head table: "+n);const e=t+1;if(a===e<<1){r[50]=0;r[51]=0}else{if(a!==e<<2)throw new FormatError("Could not fix indexToLocFormat: "+n);r[50]=0;r[51]=1}}}(s.head,u,l?s.loca.length:0);let b=Object.create(null);if(l){const e=int16(s.head.data[50],s.head.data[51]),t=function sanitizeGlyphLocations(e,t,a,r,i,n,s){let o,c,l;if(r){o=4;c=function fontItemDecodeLong(e,t){return e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3]};l=function fontItemEncodeLong(e,t,a){e[t]=a>>>24&255;e[t+1]=a>>16&255;e[t+2]=a>>8&255;e[t+3]=255&a}}else{o=2;c=function fontItemDecode(e,t){return e[t]<<9|e[t+1]<<1};l=function fontItemEncode(e,t,a){e[t]=a>>9&255;e[t+1]=a>>1&255}}const h=n?a+1:a,u=o*(1+h),d=new Uint8Array(u);d.set(e.data.subarray(0,u));e.data=d;const f=t.data,g=f.length,p=new Uint8Array(g);let m,b;const y=[];for(m=0,b=0;mg&&(e=g);y.push({index:m,offset:e,endOffset:0})}y.sort((e,t)=>e.offset-t.offset);for(m=0;me.index-t.index);for(m=0;ms&&(s=e.sizeOfInstructions);S+=t;l(d,b,S)}if(0===S){const e=new Uint8Array([0,1,0,0,0,0,0,0,0,0,0,0,0,0,49,0]);for(m=0,b=o;ma+S)t.data=p.subarray(0,a+S);else{t.data=new Uint8Array(a+S);t.data.set(p.subarray(0,S))}t.data.set(p.subarray(0,a),S);l(e.data,d.length-o,S+a)}else t.data=p.subarray(0,S);return{missingGlyphs:x,maxSizeOfInstructions:s}}(s.loca,s.glyf,u,e,m,f,p);b=t.missingGlyphs;if(h>=65536&&s.maxp.length>=32){s.maxp.data[26]=t.maxSizeOfInstructions>>8;s.maxp.data[27]=255&t.maxSizeOfInstructions}}if(!s.hhea)throw new FormatError('Required "hhea" table is not found');if(0===s.hhea.data[10]&&0===s.hhea.data[11]){s.hhea.data[10]=255;s.hhea.data[11]=255}const y={unitsPerEm:int16(s.head.data[18],s.head.data[19]),yMax:signedInt16(s.head.data[42],s.head.data[43]),yMin:signedInt16(s.head.data[38],s.head.data[39]),ascent:signedInt16(s.hhea.data[4],s.hhea.data[5]),descent:signedInt16(s.hhea.data[6],s.hhea.data[7]),lineGap:signedInt16(s.hhea.data[8],s.hhea.data[9])};this.ascent=y.ascent/y.unitsPerEm;this.descent=y.descent/y.unitsPerEm;this.lineGap=y.lineGap/y.unitsPerEm;if(this.cssFontInfo?.lineHeight){this.lineHeight=this.cssFontInfo.metrics.lineHeight;this.lineGap=this.cssFontInfo.metrics.lineGap}else this.lineHeight=this.ascent-this.descent+this.lineGap;s.post&&function readPostScriptTable(e,a,r){const i=(t.start||0)+e.offset;t.pos=i;const n=i+e.length,s=t.getInt32();t.skip(28);let o,c,l=!0;switch(s){case 65536:o=xr;break;case 131072:const e=t.getUint16();if(e!==r){l=!1;break}const i=[];for(c=0;c=32768){l=!1;break}i.push(e)}if(!l)break;const h=[],u=[];for(;t.pos65535)throw new FormatError("Max size of CID is 65,535");let i=-1;t?i=r:void 0!==e[r]&&(i=e[r]);i>=0&&i>>0;let h=!1;if(o?.platformId!==i||o?.encodingId!==n){if(0!==i||0!==n&&1!==n&&3!==n)if(1===i&&0===n)h=!0;else if(3!==i||1!==n||!r&&o){if(a&&3===i&&0===n){h=!0;let a=!0;if(e>3;e.push(r);a=Math.max(r,a)}const r=[];for(let e=0;e<=a;e++)r.push({firstCode:t.getUint16(),entryCount:t.getUint16(),idDelta:signedInt16(t.getByte(),t.getByte()),idRangePos:t.pos+t.getUint16()});for(let a=0;a<256;a++)if(0===e[a]){t.pos=r[0].idRangePos+2*a;f=t.getUint16();u.push({charCode:a,glyphId:f})}else{const i=r[e[a]];for(d=0;d>1;t.skip(6);const a=[];let r;for(r=0;r>1)-(e-r);i.offsetIndex=s;o=Math.max(o,s+i.end-i.start+1)}else i.offsetIndex=-1}const c=[];for(d=0;d>>0;for(d=0;d>>0,a=t.getInt32()>>>0;let r=t.getInt32()>>>0;for(let t=e;t<=a;t++)u.push({charCode:t,glyphId:r++})}}}u.sort((e,t)=>e.charCode-t.charCode);const g=[],p=new Set;for(const e of u){const{charCode:t}=e;if(!p.has(t)){p.add(t);g.push(e)}}return{platformId:o.platformId,encodingId:o.encodingId,mappings:g,hasShortCmap:h}}(s.cmap,t,this.isSymbolicFont,a.hasEncoding),r=e.platformId,i=e.encodingId,n=e.mappings;let o=[],c=!1;!a.hasEncoding||"MacRomanEncoding"!==a.baseEncodingName&&"WinAnsiEncoding"!==a.baseEncodingName||(o=getEncoding(a.baseEncodingName));if(a.hasEncoding&&!this.isSymbolicFont&&(3===r&&1===i||1===r&&0===i)){const e=lr();for(let t=0;t<256;t++){let s;s=void 0!==this.differences[t]?this.differences[t]:o.length&&""!==o[t]?o[t]:nr[t];if(!s)continue;const c=recoverGlyphName(s,e);let l;3===r&&1===i?l=e[c]:1===r&&0===i&&(l=ir.indexOf(c));if(void 0===l){if(!a.glyphNames&&a.hasIncludedToUnicodeMap&&!(this.toUnicode instanceof IdentityToUnicodeMap)){const e=this.toUnicode.get(t);e&&(l=e.codePointAt(0))}if(void 0===l)continue}for(const e of n)if(e.charCode===l){w[t]=e.glyphId;break}}}else if(0===r){for(const e of n)w[e.charCode]=e.glyphId;c=!0}else if(3===r&&0===i)for(const e of n){let t=e.charCode;t>=61440&&t<=61695&&(t&=255);w[t]=e.glyphId}else for(const e of n)w[e.charCode]=e.glyphId;if(a.glyphNames&&(o.length||this.differences.length))for(let e=0;e<256;++e){if(!c&&void 0!==w[e])continue;const t=this.differences[e]||o[e];if(!t)continue;const r=a.glyphNames.indexOf(t);r>0&&hasGlyph(r)&&(w[e]=r)}}0===w.length&&(w[0]=0);let x=d-1;f||(x=0);if(!a.cssFontInfo){const e=adjustMapping(w,hasGlyph,x,this.toUnicode);this.toFontChar=e.toFontChar;s.cmap={tag:"cmap",data:createCmapTable(e.charCodeToGlyphId,e.toUnicodeExtraMap,d)};s["OS/2"]&&function validateOS2Table(e,t){t.pos=(t.start||0)+e.offset;const a=t.getUint16();t.skip(60);const r=t.getUint16();if(a<4&&768&r)return!1;if(t.getUint16()>t.getUint16())return!1;t.skip(6);if(0===t.getUint16())return!1;e.data[8]=e.data[9]=0;return!0}(s["OS/2"],t)||(s["OS/2"]={tag:"OS/2",data:createOS2Table(a,e.charCodeToGlyphId,y)})}if(!l)try{c=new Stream(s["CFF "].data);o=new CFFParser(c,a,pr).parse();o.duplicateFirstGlyph();const e=new CFFCompiler(o);s["CFF "].data=e.compile()}catch{warn("Failed to compile font "+a.loadedName)}if(s.name){const[t,r]=readNameTable(s.name);s.name.data=createNameTable(e,t);this.psName=t[0][6]||null;a.composite||function adjustTrueTypeToUnicode(e,t,a){if(e.isInternalFont)return;if(e.hasIncludedToUnicodeMap)return;if(e.hasEncoding)return;if(e.toUnicode instanceof IdentityToUnicodeMap)return;if(!t)return;if(0===a.length)return;if(e.defaultEncoding===sr)return;for(const e of a)if(!isWinNameRecord(e))return;const r=sr,i=[],n=lr();for(const e in r){const t=r[e];if(""===t)continue;const a=n[t];void 0!==a&&(i[e]=String.fromCharCode(a))}i.length>0&&e.toUnicode.amend(i)}(a,this.isSymbolicFont,r)}else s.name={tag:"name",data:createNameTable(this.name)};const S=new OpenTypeFileBuilder(n.version);for(const e in s)S.addTable(e,s[e].data);return S.toArray()}convert(e,a,r){r.fixedPitch=!1;r.builtInEncoding&&function adjustType1ToUnicode(e,t){if(e.isInternalFont)return;if(e.hasIncludedToUnicodeMap)return;if(t===e.defaultEncoding)return;if(e.toUnicode instanceof IdentityToUnicodeMap)return;const a=[],r=lr();for(const i in t){if(e.hasEncoding&&(e.baseEncodingName||void 0!==e.differences[i]))continue;const n=getUnicodeForGlyph(t[i],r);-1!==n&&(a[i]=String.fromCharCode(n))}a.length>0&&e.toUnicode.amend(a)}(r,r.builtInEncoding);let i=1;a instanceof CFFFont&&(i=a.numGlyphs-1);const n=a.getGlyphMapping(r);let s=null,o=n,c=null;if(!r.cssFontInfo){s=adjustMapping(n,a.hasGlyphId.bind(a),i,this.toUnicode);this.toFontChar=s.toFontChar;o=s.charCodeToGlyphId;c=s.toUnicodeExtraMap}const l=a.numGlyphs;function getCharCodes(e,t){let a=null;for(const r in e)t===e[r]&&(a||=[]).push(0|r);return a}function createCharCode(e,t){for(const a in e)if(t===e[a])return 0|a;s.charCodeToGlyphId[s.nextAvailableFontCharCode]=t;return s.nextAvailableFontCharCode++}const h=a.seacs;if(s&&h?.length){const e=r.fontMatrix||t,i=a.getCharset(),o=Object.create(null);for(let t in h){t|=0;const a=h[t],r=nr[a[2]],c=nr[a[3]],l=i.indexOf(r),u=i.indexOf(c);if(l<0||u<0)continue;const d={x:a[0]*e[0]+a[1]*e[2]+e[4],y:a[0]*e[1]+a[1]*e[3]+e[5]},f=getCharCodes(n,t);if(f)for(const e of f){const t=s.charCodeToGlyphId,a=createCharCode(t,l),r=createCharCode(t,u);o[e]={baseFontCharCode:a,accentFontCharCode:r,accentOffset:d}}}r.seacMap=o}const u=r.fontMatrix?1/Math.max(...r.fontMatrix.slice(0,4).map(Math.abs)):1e3,d=new OpenTypeFileBuilder("OTTO");d.addTable("CFF ",a.data);d.addTable("OS/2",createOS2Table(r,o));d.addTable("cmap",createCmapTable(o,c,l));d.addTable("head","\0\0\0\0\0\0\0\0\0\0_<õ\0\0"+safeString16(u)+"\0\0\0\0ž\v~'\0\0\0\0ž\v~'\0\0"+safeString16(r.descent)+"ÿ"+safeString16(r.ascent)+string16(r.italicAngle?2:0)+"\0\0\0\0\0\0\0");d.addTable("hhea","\0\0\0"+safeString16(r.ascent)+safeString16(r.descent)+"\0\0ÿÿ\0\0\0\0\0\0"+safeString16(r.capHeight)+safeString16(Math.tan(r.italicAngle)*r.xHeight)+"\0\0\0\0\0\0\0\0\0\0\0\0"+string16(l));d.addTable("hmtx",function fontFieldsHmtx(){const e=a.charstrings,t=a.cff?a.cff.widths:null;let r="\0\0\0\0";for(let a=1,i=l;a=65520&&e<=65535?0:e>=62976&&e<=63743?ur()[e]||e:173===e?45:e}(a)}this.isType3Font&&(i=a);let h=null;if(this.seacMap?.[e]){l=!0;const t=this.seacMap[e];a=t.baseFontCharCode;h={fontChar:String.fromCodePoint(t.accentFontCharCode),offset:t.accentOffset}}let u="";"number"==typeof a&&(a<=1114111?u=String.fromCodePoint(a):warn(`charToGlyph - invalid fontCharCode: ${a}`));if(this.missingFile&&this.vertical&&1===u.length){const e=Sr()[u.charCodeAt(0)];e&&(u=c=String.fromCharCode(e))}n=new fonts_Glyph(e,u,c,h,r,o,i,t,l);return this._glyphCache[e]=n}charsToGlyphs(e){let t=this._charsCache[e];if(t)return t;t=[];if(this.cMap){const a=Object.create(null),r=e.length;let i=0;for(;it.length%2==1,r=this.toUnicode instanceof IdentityToUnicodeMap?e=>this.toUnicode.charCodeOf(e):e=>this.toUnicode.charCodeOf(String.fromCodePoint(e));for(let i=0,n=e.length;i55295&&(n<57344||n>65533)&&i++;if(this.toUnicode){const e=r(n);if(-1!==e){if(hasCurrentBufErrors()){t.push(a.join(""));a.length=0}for(let t=(this.cMap?this.cMap.getCharCodeLength(e):1)-1;t>=0;t--)a.push(String.fromCharCode(e>>8*t&255));continue}}if(!hasCurrentBufErrors()){t.push(a.join(""));a.length=0}a.push(String.fromCodePoint(n))}t.push(a.join(""));return t}}class ErrorFont{constructor(e){this.error=e;this.loadedName="g_font_error";this.missingFile=!0}charsToGlyphs(){return[]}encodeString(e){return[e]}exportData(){return{error:this.error}}}const ii=2,ni=3,si=4,oi=5,ci=6,li=7;class Pattern{constructor(){unreachable("Cannot initialize Pattern.")}static parseShading(e,t,a,r,i,n){const s=e instanceof BaseStream?e.dict:e,o=s.get("ShadingType");try{switch(o){case ii:case ni:return new RadialAxialShading(s,t,a,r,i,n);case si:case oi:case ci:case li:return new MeshShading(e,t,a,r,i,n);default:throw new FormatError("Unsupported ShadingType: "+o)}}catch(e){if(e instanceof MissingDataException)throw e;warn(e);return new DummyShading}}}class BaseShading{static SMALL_NUMBER=1e-6;getIR(){unreachable("Abstract method `getIR` called.")}}class RadialAxialShading extends BaseShading{constructor(e,t,a,r,i,n){super();this.shadingType=e.get("ShadingType");let s=0;this.shadingType===ii?s=4:this.shadingType===ni&&(s=6);this.coordsArr=e.getArray("Coords");if(!isNumberArray(this.coordsArr,s))throw new FormatError("RadialAxialShading: Invalid /Coords array.");const o=ColorSpaceUtils.parse({cs:e.getRaw("CS")||e.getRaw("ColorSpace"),xref:t,resources:a,pdfFunctionFactory:r,globalColorSpaceCache:i,localColorSpaceCache:n});this.bbox=lookupNormalRect(e.getArray("BBox"),null);let c=0,l=1;const h=e.getArray("Domain");isNumberArray(h,2)&&([c,l]=h);let u=!1,d=!1;const f=e.getArray("Extend");(function isBooleanArray(e,t){return Array.isArray(e)&&(null===t||e.length===t)&&e.every(e=>"boolean"==typeof e)})(f,2)&&([u,d]=f);if(!(this.shadingType!==ni||u&&d)){const[e,t,a,r,i,n]=this.coordsArr,s=Math.hypot(e-r,t-i);a<=n+s&&n<=a+s&&warn("Unsupported radial gradient.")}this.extendStart=u;this.extendEnd=d;const g=e.getRaw("Function"),p=r.create(g,!0),m=(l-c)/840,b=this.colorStops=[];if(c>=l||m<=0){info("Bad shading domain.");return}const y=new Float32Array(o.numComps),w=new Float32Array(1);let x=0;w[0]=c;p(w,0,y,0);const S=new Uint8ClampedArray(3);o.getRgb(y,0,S);let[k,C,v]=S;b.push([0,Util.makeHexColor(k,C,v)]);let F=1;w[0]=c+m;p(w,0,y,0);o.getRgb(y,0,S);let[T,O,M]=S,D=T-k+1,R=O-C+1,N=M-v+1,E=T-k-1,L=O-C-1,_=M-v-1;for(let e=2;e<840;e++){w[0]=c+e*m;p(w,0,y,0);o.getRgb(y,0,S);const[t,a,r]=S,i=e-x;D=Math.min(D,(t-k+1)/i);R=Math.min(R,(a-C+1)/i);N=Math.min(N,(r-v+1)/i);E=Math.max(E,(t-k-1)/i);L=Math.max(L,(a-C-1)/i);_=Math.max(_,(r-v-1)/i);if(!(E<=D&&L<=R&&_<=N)){const e=Util.makeHexColor(T,O,M);b.push([F/840,e]);D=t-T+1;R=a-O+1;N=r-M+1;E=t-T-1;L=a-O-1;_=r-M-1;x=F;k=T;C=O;v=M}F=e;T=t;O=a;M=r}b.push([1,Util.makeHexColor(T,O,M)]);let j="transparent";e.has("Background")&&(j=o.getRgbHex(e.get("Background"),0));if(!u){b.unshift([0,j]);b[1][0]+=BaseShading.SMALL_NUMBER}if(!d){b.at(-1)[0]-=BaseShading.SMALL_NUMBER;b.push([1,j])}this.colorStops=b}getIR(){const{coordsArr:e,shadingType:t}=this;let a,r,i,n,s;if(t===ii){r=[e[0],e[1]];i=[e[2],e[3]];n=null;s=null;a="axial"}else if(t===ni){r=[e[0],e[1]];i=[e[3],e[4]];n=e[2];s=e[5];a="radial"}else unreachable(`getPattern type unknown: ${t}`);return["RadialAxial",a,this.bbox,this.colorStops,r,i,n,s]}}class MeshStreamReader{constructor(e,t){this.stream=e;this.context=t;this.buffer=0;this.bufferLength=0;const a=t.numComps;this.tmpCompsBuf=new Float32Array(a);const r=t.colorSpace.numComps;this.tmpCsCompsBuf=t.colorFn?new Float32Array(r):this.tmpCompsBuf}get hasData(){if(this.stream.end)return this.stream.pos0)return!0;const e=this.stream.getByte();if(e<0)return!1;this.buffer=e;this.bufferLength=8;return!0}readBits(e){const{stream:t}=this;let{buffer:a,bufferLength:r}=this;if(32===e){if(0===r)return t.getInt32()>>>0;a=a<<24|t.getByte()<<16|t.getByte()<<8|t.getByte();const e=t.getByte();this.buffer=e&(1<>r)>>>0}if(8===e&&0===r)return t.getByte();for(;r>r}align(){this.buffer=0;this.bufferLength=0}readFlag(){return this.readBits(this.context.bitsPerFlag)}readCoordinate(){const{bitsPerCoordinate:e,decode:t}=this.context,a=this.readBits(e),r=this.readBits(e),i=e<32?1/((1<n?n:e;t=t>s?s:t;a=ae*i[t]):a;let s,o=-2;const c=[];for(const[e,t]of r.map((e,t)=>[e,t]).sort(([e],[t])=>e-t))if(-1!==e)if(e===o+1){s.push(n[t]);o+=1}else{o=e;s=[n[t]];c.push(e,s)}return c}(e),a=new Dict(null);a.set("BaseFont",Name.get(e));a.set("Type",Name.get("Font"));a.set("Subtype",Name.get("CIDFontType2"));a.set("Encoding",Name.get("Identity-H"));a.set("CIDToGIDMap",Name.get("Identity"));a.set("W",t);a.set("FirstChar",t[0]);a.set("LastChar",t.at(-2)+t.at(-1).length-1);const r=new Dict(null);a.set("FontDescriptor",r);const i=new Dict(null);i.set("Ordering","Identity");i.set("Registry","Adobe");i.set("Supplement",0);a.set("CIDSystemInfo",i);return a}class PostScriptParser{constructor(e){this.lexer=e;this.operators=[];this.token=null;this.prev=null}nextToken(){this.prev=this.token;this.token=this.lexer.getToken()}accept(e){if(this.token.type===e){this.nextToken();return!0}return!1}expect(e){if(this.accept(e))return!0;throw new FormatError(`Unexpected symbol: found ${this.token.type} expected ${e}.`)}parse(){this.nextToken();this.expect(en.LBRACE);this.parseBlock();this.expect(en.RBRACE);return this.operators}parseBlock(){for(;;)if(this.accept(en.NUMBER))this.operators.push(this.prev.value);else if(this.accept(en.OPERATOR))this.operators.push(this.prev.value);else{if(!this.accept(en.LBRACE))return;this.parseCondition()}}parseCondition(){const e=this.operators.length;this.operators.push(null,null);this.parseBlock();this.expect(en.RBRACE);if(this.accept(en.IF)){this.operators[e]=this.operators.length;this.operators[e+1]="jz"}else{if(!this.accept(en.LBRACE))throw new FormatError("PS Function: error parsing conditional.");{const t=this.operators.length;this.operators.push(null,null);const a=this.operators.length;this.parseBlock();this.expect(en.RBRACE);this.expect(en.IFELSE);this.operators[t]=this.operators.length;this.operators[t+1]="j";this.operators[e]=a;this.operators[e+1]="jz"}}}}const en={LBRACE:0,RBRACE:1,NUMBER:2,OPERATOR:3,IF:4,IFELSE:5};class PostScriptToken{static get opCache(){return shadow(this,"opCache",Object.create(null))}constructor(e,t){this.type=e;this.value=t}static getOperator(e){return PostScriptToken.opCache[e]||=new PostScriptToken(en.OPERATOR,e)}static get LBRACE(){return shadow(this,"LBRACE",new PostScriptToken(en.LBRACE,"{"))}static get RBRACE(){return shadow(this,"RBRACE",new PostScriptToken(en.RBRACE,"}"))}static get IF(){return shadow(this,"IF",new PostScriptToken(en.IF,"IF"))}static get IFELSE(){return shadow(this,"IFELSE",new PostScriptToken(en.IFELSE,"IFELSE"))}}class PostScriptLexer{constructor(e){this.stream=e;this.nextChar();this.strBuf=[]}nextChar(){return this.currentChar=this.stream.getByte()}getToken(){let e=!1,t=this.currentChar;for(;;){if(t<0)return aa;if(e)10!==t&&13!==t||(e=!1);else if(37===t)e=!0;else if(!isWhiteSpace(t))break;t=this.nextChar()}switch(0|t){case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:case 43:case 45:case 46:return new PostScriptToken(en.NUMBER,this.getNumber());case 123:this.nextChar();return PostScriptToken.LBRACE;case 125:this.nextChar();return PostScriptToken.RBRACE}const a=this.strBuf;a.length=0;a[0]=String.fromCharCode(t);for(;(t=this.nextChar())>=0&&(t>=65&&t<=90||t>=97&&t<=122);)a.push(String.fromCharCode(t));const r=a.join("");switch(r.toLowerCase()){case"if":return PostScriptToken.IF;case"ifelse":return PostScriptToken.IFELSE;default:return PostScriptToken.getOperator(r)}}getNumber(){let e=this.currentChar;const t=this.strBuf;t.length=0;t[0]=String.fromCharCode(e);for(;(e=this.nextChar())>=0&&(e>=48&&e<=57||45===e||46===e);)t.push(String.fromCharCode(e));const a=parseFloat(t.join(""));if(isNaN(a))throw new FormatError(`Invalid floating point number: ${a}`);return a}}class BaseLocalCache{constructor(e){this._onlyRefs=!0===e?.onlyRefs;if(!this._onlyRefs){this._nameRefMap=new Map;this._imageMap=new Map}this._imageCache=new RefSetCache}getByName(e){this._onlyRefs&&unreachable("Should not call `getByName` method.");const t=this._nameRefMap.get(e);return t?this.getByRef(t):this._imageMap.get(e)||null}getByRef(e){return this._imageCache.get(e)||null}set(e,t,a){unreachable("Abstract method `set` called.")}}class LocalImageCache extends BaseLocalCache{set(e,t=null,a){if("string"!=typeof e)throw new Error('LocalImageCache.set - expected "name" argument.');if(t){if(this._imageCache.has(t))return;this._nameRefMap.set(e,t);this._imageCache.put(t,a)}else this._imageMap.has(e)||this._imageMap.set(e,a)}}class LocalColorSpaceCache extends BaseLocalCache{set(e=null,t=null,a){if("string"!=typeof e&&!t)throw new Error('LocalColorSpaceCache.set - expected "name" and/or "ref" argument.');if(t){if(this._imageCache.has(t))return;null!==e&&this._nameRefMap.set(e,t);this._imageCache.put(t,a)}else this._imageMap.has(e)||this._imageMap.set(e,a)}}class LocalFunctionCache extends BaseLocalCache{constructor(e){super({onlyRefs:!0})}set(e=null,t,a){if(!t)throw new Error('LocalFunctionCache.set - expected "ref" argument.');this._imageCache.has(t)||this._imageCache.put(t,a)}}class LocalGStateCache extends BaseLocalCache{set(e,t=null,a){if("string"!=typeof e)throw new Error('LocalGStateCache.set - expected "name" argument.');if(t){if(this._imageCache.has(t))return;this._nameRefMap.set(e,t);this._imageCache.put(t,a)}else this._imageMap.has(e)||this._imageMap.set(e,a)}}class LocalTilingPatternCache extends BaseLocalCache{constructor(e){super({onlyRefs:!0})}set(e=null,t,a){if(!t)throw new Error('LocalTilingPatternCache.set - expected "ref" argument.');this._imageCache.has(t)||this._imageCache.put(t,a)}}class RegionalImageCache extends BaseLocalCache{constructor(e){super({onlyRefs:!0})}set(e=null,t,a){if(!t)throw new Error('RegionalImageCache.set - expected "ref" argument.');this._imageCache.has(t)||this._imageCache.put(t,a)}}class GlobalColorSpaceCache extends BaseLocalCache{constructor(e){super({onlyRefs:!0})}set(e=null,t,a){if(!t)throw new Error('GlobalColorSpaceCache.set - expected "ref" argument.');this._imageCache.has(t)||this._imageCache.put(t,a)}clear(){this._imageCache.clear()}}class GlobalImageCache{static NUM_PAGES_THRESHOLD=2;static MIN_IMAGES_TO_CACHE=10;static MAX_BYTE_SIZE=5e7;#H=new RefSet;constructor(){this._refCache=new RefSetCache;this._imageCache=new RefSetCache}get#W(){let e=0;for(const t of this._imageCache)e+=t.byteSize;return e}get#z(){return!(this._imageCache.size+e):null}class PDFFunction{static getSampleArray(e,t,a,r){let i,n,s=1;for(i=0,n=e.length;i>c)*h;l&=(1<0&&(d=n[u-1]);let f=a[1];u>1,c=r.length>>1,l=new PostScriptEvaluator(s),h=Object.create(null);let u=8192;const d=new Float32Array(c);return function constructPostScriptFn(e,t,a,r){let n,s,f="";const g=d;for(n=0;ne&&(s=e)}m[n]=s}if(u>0){u--;h[f]=m}a.set(m,r)}}}function isPDFFunction(e){let t;if(e instanceof Dict)t=e;else{if(!(e instanceof BaseStream))return!1;t=e.dict}return t.has("FunctionType")}class PostScriptStack{static MAX_STACK_SIZE=100;constructor(e){this.stack=e?Array.from(e):[]}push(e){if(this.stack.length>=PostScriptStack.MAX_STACK_SIZE)throw new Error("PostScript function stack overflow.");this.stack.push(e)}pop(){if(this.stack.length<=0)throw new Error("PostScript function stack underflow.");return this.stack.pop()}copy(e){if(this.stack.length+e>=PostScriptStack.MAX_STACK_SIZE)throw new Error("PostScript function stack overflow.");const t=this.stack;for(let a=t.length-e,r=e-1;r>=0;r--,a++)t.push(t[a])}index(e){this.push(this.stack[this.stack.length-e-1])}roll(e,t){const a=this.stack,r=a.length-e,i=a.length-1,n=r+(t-Math.floor(t/e)*e);for(let e=r,t=i;e0?t.push(s<>o);break;case"ceiling":s=t.pop();t.push(Math.ceil(s));break;case"copy":s=t.pop();t.copy(s);break;case"cos":s=t.pop();t.push(Math.cos(s%360/180*Math.PI));break;case"cvi":s=0|t.pop();t.push(s);break;case"cvr":break;case"div":o=t.pop();s=t.pop();t.push(s/o);break;case"dup":t.copy(1);break;case"eq":o=t.pop();s=t.pop();t.push(s===o);break;case"exch":t.roll(2,1);break;case"exp":o=t.pop();s=t.pop();t.push(s**o);break;case"false":t.push(!1);break;case"floor":s=t.pop();t.push(Math.floor(s));break;case"ge":o=t.pop();s=t.pop();t.push(s>=o);break;case"gt":o=t.pop();s=t.pop();t.push(s>o);break;case"idiv":o=t.pop();s=t.pop();t.push(s/o|0);break;case"index":s=t.pop();t.index(s);break;case"le":o=t.pop();s=t.pop();t.push(s<=o);break;case"ln":s=t.pop();t.push(Math.log(s));break;case"log":s=t.pop();t.push(Math.log10(s));break;case"lt":o=t.pop();s=t.pop();t.push(s=t?new AstLiteral(t):e.max<=t?e:new AstMin(e,t)}class PostScriptCompiler{compile(e,t,a){const r=[],i=[],n=t.length>>1,s=a.length>>1;let o,c,l,h,u,d,f,g,p=0;for(let e=0;et.min){o.unshift("Math.max(",n,", ");o.push(")")}if(s4){r=!0;t=0}else{r=!1;t=1}const c=[];for(n=0;n=0&&"ET"===nn[e];--e)nn[e]="EN";for(let e=n+1;e0&&(t=nn[n-1]);let a=u;e+1g&&isOdd(g)&&(m=g)}for(g=p;g>=m;--g){let e=-1;for(n=0,s=c.length;n=0){reverseValues(rn,e,n);e=-1}}else e<0&&(e=n);e>=0&&reverseValues(rn,e,c.length)}for(n=0,s=rn.length;n"!==e||(rn[n]="")}return createBidiText(rn.join(""),r)}class CssFontInfo{#E;#$;#G;static strings=["fontFamily","fontWeight","italicAngle"];static write(e){const t=new TextEncoder,a={};let r=0;for(const i of CssFontInfo.strings){const n=t.encode(e[i]);a[i]=n;r+=4+n.length}const i=new ArrayBuffer(r),n=new Uint8Array(i),s=new DataView(i);let o=0;for(const e of CssFontInfo.strings){const t=a[e],r=t.length;s.setUint32(o,r);n.set(t,o+4);o+=4+r}assert(o===i.byteLength,"CssFontInfo.write: Buffer overflow");return i}constructor(e){this.#E=e;this.#$=new DataView(this.#E);this.#G=new TextDecoder}#V(e){assert(e>a&3;return 0===r?void 0:2===r}get black(){return this.#ee(0)}get bold(){return this.#ee(1)}get disableFontFace(){return this.#ee(2)}get fontExtraProperties(){return this.#ee(3)}get isInvalidPDFjsFont(){return this.#ee(4)}get isType3Font(){return this.#ee(5)}get italic(){return this.#ee(6)}get missingFile(){return this.#ee(7)}get remeasure(){return this.#ee(8)}get vertical(){return this.#ee(9)}#te(e){assert(e!t.has(e.toLowerCase())).join(" ")}function generateFont({alias:e,local:t,path:a,fallback:r,style:i,ultimate:n},s,o,c=!0,l=!0,h=""){const u={style:null,ultimate:null};if(t){const e=h?` ${h}`:"";for(const a of t)s.push(`local(${a}${e})`)}if(e){const t=hn.get(e),n=h||function getStyleToAppend(e){switch(e){case on:return"Bold";case cn:return"Italic";case ln:return"Bold Italic";default:if("bold"===e?.weight)return"Bold";if("italic"===e?.style)return"Italic"}return""}(i);Object.assign(u,generateFont(t,s,o,c&&!r,l&&!a,n))}i&&(u.style=i);n&&(u.ultimate=n);if(c&&r){const e=hn.get(r),{ultimate:t}=generateFont(e,s,o,c,l&&!a,h);u.ultimate||=t}l&&a&&o&&s.push(`url(${o}${a})`);return u}function getFontSubstitution(e,t,a,r,i,n){if(r.startsWith("InvalidPDFjsFont_"))return null;"TrueType"!==n&&"Type1"!==n||!/^[A-Z]{6}\+/.test(r)||(r=r.slice(7));const s=r=normalizeFontName(r);let o=e.get(s);if(o)return o;let c=hn.get(r);if(!c)for(const[e,t]of un)if(r.startsWith(e)){r=`${t}${r.substring(e.length)}`;c=hn.get(r);break}let l=!1;if(!c){c=hn.get(i);l=!0}const h=`${t.getDocId()}_s${t.createFontId()}`;if(!c){if(!validateFontName(r)){warn(`Cannot substitute the font because of its name: ${r}`);e.set(s,null);return null}const t=/bold/gi.test(r),a=/oblique|italic/gi.test(r),i=t&&a&&ln||t&&on||a&&cn||sn;o={css:`"${getFamilyName(r)}",${h}`,guessFallback:!0,loadedName:h,baseFontName:r,src:`local(${r})`,style:i};e.set(s,o);return o}const u=[];l&&validateFontName(r)&&u.push(`local(${r})`);const{style:d,ultimate:f}=generateFont(c,u,a),g=null===f,p=g?"":`,${f}`;o={css:`"${getFamilyName(r)}",${h}${p}`,guessFallback:g,loadedName:h,baseFontName:r,src:u.join(","),style:d};e.set(s,o);return o}const dn=3285377520,fn=4294901760,gn=65535;class MurmurHash3_64{constructor(e){this.h1=e?4294967295&e:dn;this.h2=e?4294967295&e:dn}update(e){let t,a;if("string"==typeof e){t=new Uint8Array(2*e.length);a=0;for(let r=0,i=e.length;r>>8;t[a++]=255&i}}}else{if(!ArrayBuffer.isView(e))throw new Error("Invalid data format, must be a string or TypedArray.");t=e.slice();a=t.byteLength}const r=a>>2,i=a-4*r,n=new Uint32Array(t.buffer,0,r);let s=0,o=0,c=this.h1,l=this.h2;const h=3432918353,u=461845907,d=11601,f=13715;for(let e=0;e>>17;s=s*u&fn|s*f&gn;c^=s;c=c<<13|c>>>19;c=5*c+3864292196}else{o=n[e];o=o*h&fn|o*d&gn;o=o<<15|o>>>17;o=o*u&fn|o*f&gn;l^=o;l=l<<13|l>>>19;l=5*l+3864292196}s=0;switch(i){case 3:s^=t[4*r+2]<<16;case 2:s^=t[4*r+1]<<8;case 1:s^=t[4*r];s=s*h&fn|s*d&gn;s=s<<15|s>>>17;s=s*u&fn|s*f&gn;1&r?c^=s:l^=s}this.h1=c;this.h2=l}hexdigest(){let e=this.h1,t=this.h2;e^=t>>>1;e=3981806797*e&fn|36045*e&gn;t=4283543511*t&fn|(2950163797*(t<<16|e>>>16)&fn)>>>16;e^=t>>>1;e=444984403*e&fn|60499*e&gn;t=3301882366*t&fn|(3120437893*(t<<16|e>>>16)&fn)>>>16;e^=t>>>1;return(e>>>0).toString(16).padStart(8,"0")+(t>>>0).toString(16).padStart(8,"0")}}function resizeImageMask(e,t,a,r,i,n){const s=i*n;let o;o=t<=8?new Uint8Array(s):t<=16?new Uint16Array(s):new Uint32Array(s);const c=a/i,l=r/n;let h,u,d,f,g=0;const p=new Uint16Array(i),m=a;for(h=0;h0&&Number.isInteger(a.height)&&a.height>0&&(a.width!==f||a.height!==g)){warn("PDFImage - using the Width/Height of the image data, rather than the image dictionary.");f=a.width;g=a.height}else{const e="number"==typeof f&&f>0,t="number"==typeof g&&g>0;if(!e||!t){if(!a.fallbackDims)throw new FormatError(`Invalid image width: ${f} or height: ${g}`);warn("PDFImage - using the Width/Height of the parent image, for SMask/Mask data.");e||(f=a.fallbackDims.width);t||(g=a.fallbackDims.height)}}this.width=f;this.height=g;this.interpolate=h.get("I","Interpolate");this.imageMask=h.get("IM","ImageMask")||!1;this.matte=h.get("Matte")||!1;let p=a.bitsPerComponent;if(!p){p=h.get("BPC","BitsPerComponent");if(!p){if(!this.imageMask)throw new FormatError(`Bits per component missing in image: ${this.imageMask}`);p=1}}this.bpc=p;if(!this.imageMask){let i=h.getRaw("CS")||h.getRaw("ColorSpace");const n=!!i;if(n)this.jpxDecoderOptions?.smaskInData&&(i=Name.get("DeviceRGBA"));else if(this.jpxDecoderOptions)i=Name.get("DeviceRGBA");else switch(a.numComps){case 1:i=Name.get("DeviceGray");break;case 3:i=Name.get("DeviceRGB");break;case 4:i=Name.get("DeviceCMYK");break;default:throw new Error(`Images with ${a.numComps} color components not supported.`)}this.colorSpace=ColorSpaceUtils.parse({cs:i,xref:e,resources:r?t:null,pdfFunctionFactory:o,globalColorSpaceCache:c,localColorSpaceCache:l});this.numComps=this.colorSpace.numComps;if(this.jpxDecoderOptions){this.jpxDecoderOptions.numComponents=n?this.numComps:0;this.jpxDecoderOptions.isIndexedColormap="Indexed"===this.colorSpace.name}}this.decode=h.getArray("D","Decode");this.needsDecode=!1;if(this.decode&&(this.colorSpace&&!this.colorSpace.isDefaultDecode(this.decode,p)||s&&!ColorSpace.isDefaultDecode(this.decode,1))){this.needsDecode=!0;const e=(1<0,c=(r+7>>3)*i,l=e.getBytes(c),h=1===r&&1===i&&o===(0===l.length||!!(128&l[0]));if(h)return{isSingleOpaquePixel:h};if(t){if(ImageResizer.needsToBeResized(r,i)){const e=new Uint8ClampedArray(r*i*4);convertBlackAndWhiteToRGBA({src:l,dest:e,width:r,height:i,nonBlackColor:0,inverseDecode:o});return ImageResizer.createImage({kind:v,data:e,width:r,height:i,interpolate:n})}const e=new OffscreenCanvas(r,i),t=e.getContext("2d"),a=t.createImageData(r,i);convertBlackAndWhiteToRGBA({src:l,dest:a.data,width:r,height:i,nonBlackColor:0,inverseDecode:o});t.putImageData(a,0,0);return{data:null,width:r,height:i,interpolate:n,bitmap:e.transferToImageBitmap()}}const u=l.byteLength;let d;if(e instanceof DecodeStream&&(!o||c===u))d=l;else if(o){d=new Uint8Array(c);d.set(l);d.fill(255,u)}else d=new Uint8Array(l);if(o)for(let e=0;e>7&1;s[d+1]=u>>6&1;s[d+2]=u>>5&1;s[d+3]=u>>4&1;s[d+4]=u>>3&1;s[d+5]=u>>2&1;s[d+6]=u>>1&1;s[d+7]=1&u;d+=8}if(d>=1}}}}else{let a=0;u=0;for(d=0,h=n;d>r;i<0?i=0:i>l&&(i=l);s[d]=i;u&=(1<s[r+1]){t=255;break}}o[h]=t}}}if(o)for(h=0,d=3,u=t*r;h>3,h=t&&ImageResizer.needsToBeResized(a,r);if(!this.smask&&!this.mask&&"DeviceRGBA"===this.colorSpace.name){i.kind=v;const e=i.data=await this.getImageBytes(o*s*4,{});return t?h?ImageResizer.createImage(i,!1):this.createBitmap(v,a,r,e):i}if(!e){let e;"DeviceGray"===this.colorSpace.name&&1===c?e=k:"DeviceRGB"!==this.colorSpace.name||8!==c||this.needsDecode||(e=C);if(e&&!this.smask&&!this.mask&&a===s&&r===o){const n=await this.#ae(s,o);if(n)return n;const c=await this.getImageBytes(o*l,{});if(t)return h?ImageResizer.createImage({data:c,kind:e,width:a,height:r,interpolate:this.interpolate},this.needsDecode):this.createBitmap(e,s,o,c);i.kind=e;i.data=c;if(this.needsDecode){assert(e===k,"PDFImage.createImageData: The image must be grayscale.");const t=i.data;for(let e=0,a=t.length;e>3,s=await this.getImageBytes(r*n,{internal:!0}),o=this.getComponents(s);let c,l;if(1===i){l=a*r;if(this.needsDecode)for(c=0;c0&&r[0].count++}class TimeSlotManager{static TIME_SLOT_DURATION_MS=20;static CHECK_TIME_EVERY=100;constructor(){this.reset()}check(){if(++this.checkedo){const e="Image exceeded maximum allowed size and was removed.";if(!c)throw new Error(e);warn(e);return}let g;h.has("OC")&&(g=await this.parseMarkedContentProps(h.get("OC"),e));let p,m,b;if(h.get("IM","ImageMask")||!1){p=await PDFImage.createMask({image:t,isOffscreenCanvasSupported:l&&!this.parsingType3Font});if(p.isSingleOpaquePixel){m=_t;b=[];r.addImageOps(m,b,g);if(i){const e={fn:m,args:b,optionalContent:g};n.set(i,u,e);u&&this._regionalImageCache.set(null,u,e)}return}if(this.parsingType3Font){b=function compileType3Glyph({data:e,width:t,height:a}){if(t>1e3||a>1e3)return null;const r=new Uint8Array([0,2,4,0,1,0,5,4,8,10,0,8,0,2,1,0]),i=t+1,n=new Uint8Array(i*(a+1));let s,o,c;const l=t+7&-8,h=new Uint8Array(l*a);let u=0;for(const t of e){let e=128;for(;e>0;){h[u++]=t&e?0:255;e>>=1}}let d=0;u=0;if(0!==h[u]){n[0]=1;++d}for(o=1;o>2)+(h[u+1]?4:0)+(h[u-l+1]?8:0);if(r[e]){n[c+o]=r[e];++d}u++}if(h[u-l]!==h[u]){n[c+o]=h[u]?2:4;++d}if(d>1e3)return null}u=l*(a-1);c=s*i;if(0!==h[u]){n[c]=8;++d}for(o=1;o1e3)return null;const f=new Int32Array([0,i,-1,0,-i,0,0,0,1]),g=[],{a:p,b:m,c:b,d:y,e:w,f:x}=(new DOMMatrix).scaleSelf(1/t,-1/a).translateSelf(0,-a);for(s=0;d&&s<=a;s++){let e=s*i;const a=e+t;for(;e>4;n[e]&=l>>2|l<<2}r=e%i;o=e/i|0;g.push(Wt,p*r+b*o+w,m*r+y*o+x);n[e]||--d}while(c!==e);--s}return[qt,[new Float32Array(g)],new Float32Array([0,0,t,a])]}(p);if(b){r.addImageOps(jt,b,g);return}warn("Cannot compile Type3 glyph.");r.addImageOps(Dt,[p],g);return}const e=`mask_${this.idFactory.createObjId()}`;r.addDependency(e);p.dataLen=p.bitmap?p.width*p.height*4:p.data.length;this._sendImgData(e,p);m=Dt;b=[{data:e,width:p.width,height:p.height,interpolate:p.interpolate,count:1}];r.addImageOps(m,b,g);if(i){const t={objId:e,fn:m,args:b,optionalContent:g};n.set(i,u,t);u&&this._regionalImageCache.set(null,u,t)}return}const y=h.has("SMask")||h.has("Mask");if(a&&d+f<200&&!y){try{const i=new PDFImage({xref:this.xref,res:e,image:t,isInline:a,pdfFunctionFactory:this._pdfFunctionFactory,globalColorSpaceCache:this.globalColorSpaceCache,localColorSpaceCache:s});p=await i.createImageData(!0,!1);r.addImageOps(Nt,[p],g)}catch(e){const t=`Unable to decode inline image: "${e}".`;if(!c)throw new Error(t);warn(t)}return}let w=`img_${this.idFactory.createObjId()}`,x=!1,S=null;if(this.parsingType3Font)w=`${this.idFactory.getDocId()}_type3_${w}`;else if(i&&u){x=this.globalImageCache.shouldCache(u,this.pageIndex);if(x){assert(!a,"Cannot cache an inline image globally.");w=`${this.idFactory.getDocId()}_${w}`}}r.addDependency(w);m=Rt;b=[w,d,f];r.addImageOps(m,b,g,y);if(x){S={objId:w,fn:m,args:b,optionalContent:g,hasMask:y,byteSize:0};if(this.globalImageCache.hasDecodeFailed(u)){this.globalImageCache.setData(u,S);this._sendImgData(w,null,x);return}if(d*f>25e4||y){const e=await this.handler.sendWithPromise("commonobj",[w,"CopyLocalImage",{imageRef:u}]);if(e){this.globalImageCache.setData(u,S);this.globalImageCache.addByteSize(u,e);return}}}PDFImage.buildImage({xref:this.xref,res:e,image:t,isInline:a,pdfFunctionFactory:this._pdfFunctionFactory,globalColorSpaceCache:this.globalColorSpaceCache,localColorSpaceCache:s}).then(async e=>{p=await e.createImageData(!1,l);p.dataLen=p.bitmap?p.width*p.height*4:p.data.length;p.ref=u;x&&this.globalImageCache.addByteSize(u,p.dataLen);return this._sendImgData(w,p,x)}).catch(e=>{warn(`Unable to decode image "${w}": "${e}".`);u&&this.globalImageCache.addDecodeFailed(u);return this._sendImgData(w,null,x)});if(i){const e={objId:w,fn:m,args:b,optionalContent:g,hasMask:y};n.set(i,u,e);if(u){this._regionalImageCache.set(null,u,e);if(x){assert(S,"The global cache-data must be available.");this.globalImageCache.setData(u,S)}}}}handleSMask(e,t,a,r,i,n,s){const o=e.get("G"),c={subtype:e.get("S").name,backdrop:e.get("BC")},l=e.get("TR");if(isPDFFunction(l)){const e=this._pdfFunctionFactory.create(l),t=new Uint8Array(256),a=new Float32Array(1);for(let r=0;r<256;r++){a[0]=r/255;e(a,0,a,0);t[r]=255*a[0]|0}c.transferMap=t}return this.buildFormXObject(t,o,c,a,r,i.state.clone({newPath:!0}),n,s)}handleTransferFunction(e){let t;if(Array.isArray(e))t=e;else{if(!isPDFFunction(e))return null;t=[e]}const a=[];let r=0,i=0;for(const e of t){const t=this.xref.fetchIfRef(e);r++;if(isName(t,"Identity")){a.push(null);continue}if(!isPDFFunction(t))return null;const n=this._pdfFunctionFactory.create(t),s=new Uint8Array(256),o=new Float32Array(1);for(let e=0;e<256;e++){o[0]=e/255;n(o,0,o,0);s[e]=255*o[0]|0}a.push(s);i++}return 1!==r&&4!==r||0===i?null:a}handleTilingType(e,t,a,r,i,n,s,o){const c=new OperatorList,l=Dict.merge({xref:this.xref,dictArray:[i.get("Resources"),a]});return this.getOperatorList({stream:r,task:s,resources:l,operatorList:c}).then(function(){const a=c.getIR(),r=getTilingPatternIR(a,i,t);n.addDependencies(c.dependencies);n.addOp(e,r);i.objId&&o.set(null,i.objId,{operatorListIR:a,dict:i})}).catch(e=>{if(!(e instanceof AbortException)){if(!this.options.ignoreErrors)throw e;warn(`handleTilingType - ignoring pattern: "${e}".`)}})}async handleSetFont(e,t,a,r,i,n,s=null,o=null){const c=t?.[0]instanceof Name?t[0].name:null,l=await this.loadFont(c,a,e,i,s,o);l.font.isType3Font&&r.addDependencies(l.type3Dependencies);n.font=l.font;l.send(this.handler);return l.loadedName}handleText(e,t){const a=t.font,r=a.charsToGlyphs(e);if(a.data){(!!(t.textRenderingMode&S)||"Pattern"===t.fillColorSpace.name||a.disableFontFace)&&PartialEvaluator.buildFontPaths(a,r,this.handler,this.options)}return r}ensureStateFont(e){if(e.font)return;const t=new FormatError("Missing setFont (Tf) operator before text rendering operator.");if(!this.options.ignoreErrors)throw t;warn(`ensureStateFont: "${t}".`)}async setGState({resources:e,gState:t,operatorList:a,cacheKey:r,task:i,stateManager:n,localGStateCache:s,localColorSpaceCache:o,seenRefs:c}){const l=t.objId;let h=!0;const u=[];let d=Promise.resolve();for(const[r,s]of t)switch(r){case"Type":break;case"LW":if("number"!=typeof s){warn(`Invalid LW (line width): ${s}`);break}u.push([r,Math.abs(s)]);break;case"LC":case"LJ":case"ML":case"D":case"RI":case"FL":case"CA":case"ca":u.push([r,s]);break;case"Font":h=!1;d=d.then(()=>this.handleSetFont(e,null,s[0],a,i,n.state).then(function(e){a.addDependency(e);u.push([r,[e,s[1]]])}));break;case"BM":u.push([r,normalizeBlendMode(s)]);break;case"SMask":if(isName(s,"None")){u.push([r,!1]);break}if(s instanceof Dict){h=!1;d=d.then(()=>this.handleSMask(s,e,a,i,n,o,c));u.push([r,!0])}else warn("Unsupported SMask type");break;case"TR":const t=this.handleTransferFunction(s);u.push([r,t]);break;case"OP":case"op":case"OPM":case"BG":case"BG2":case"UCR":case"UCR2":case"TR2":case"HT":case"SM":case"SA":case"AIS":case"TK":info("graphic state operator "+r);break;default:info("Unknown graphic state operator "+r)}await d;u.length>0&&a.addOp(ge,[u]);h&&s.set(r,l,u)}loadFont(e,t,a,r,i=null,n=null){const errorFont=async()=>new TranslatedFont({loadedName:"g_font_error",font:new ErrorFont(`Font "${e}" is not available.`),dict:t});let s;if(t)t instanceof Ref&&(s=t);else{const t=a.get("Font");t&&(s=t.getRaw(e))}if(s){if(this.type3FontRefs?.has(s))return errorFont();if(this.fontCache.has(s))return this.fontCache.get(s);try{t=this.xref.fetchIfRef(s)}catch(e){warn(`loadFont - lookup failed: "${e}".`)}}if(!(t instanceof Dict)){if(!this.options.ignoreErrors&&!this.parsingType3Font){warn(`Font "${e}" is not available.`);return errorFont()}warn(`Font "${e}" is not available -- attempting to fallback to a default font.`);t=i||PartialEvaluator.fallbackFontDict}if(t.cacheKey&&this.fontCache.has(t.cacheKey))return this.fontCache.get(t.cacheKey);const{promise:o,resolve:c}=Promise.withResolvers();let l;try{l=this.preEvaluateFont(t);l.cssFontInfo=n}catch(e){warn(`loadFont - preEvaluateFont failed: "${e}".`);return errorFont()}const{descriptor:h,hash:u}=l,d=s instanceof Ref;let f;if(u&&h instanceof Dict){const e=h.fontAliases||=Object.create(null);if(e[u]){const t=e[u].aliasRef;if(d&&t&&this.fontCache.has(t)){this.fontCache.putAlias(s,t);return this.fontCache.get(s)}}else e[u]={fontID:this.idFactory.createFontId()};d&&(e[u].aliasRef=s);f=e[u].fontID}else f=this.idFactory.createFontId();assert(f?.startsWith("f"),'The "fontID" must be (correctly) defined.');if(d)this.fontCache.put(s,o);else{t.cacheKey=`cacheKey_${f}`;this.fontCache.put(t.cacheKey,o)}t.loadedName=`${this.idFactory.getDocId()}_${f}`;this.translateFont(l).then(async e=>{const i=new TranslatedFont({loadedName:t.loadedName,font:e,dict:t});if(e.isType3Font)try{await i.loadType3Data(this,a,r)}catch(e){throw new Error(`Type3 font load error: ${e}`)}c(i)}).catch(e=>{warn(`loadFont - translateFont failed: "${e}".`);c(new TranslatedFont({loadedName:t.loadedName,font:new ErrorFont(e?.message),dict:t}))});return o}buildPath(e,t,a){const{pathMinMax:r,pathBuffer:i}=a;switch(0|e){case Ce:{const e=a.currentPointX=t[0],n=a.currentPointY=t[1],s=t[2],o=t[3],c=e+s,l=n+o;0===s||0===o?i.push(Ht,e,n,Wt,c,l,$t):i.push(Ht,e,n,Wt,c,n,Wt,c,l,Wt,e,l,$t);Util.rectBoundingBox(e,n,c,l,r);break}case ye:{const e=a.currentPointX=t[0],n=a.currentPointY=t[1];i.push(Ht,e,n);Util.pointBoundingBox(e,n,r);break}case we:{const e=a.currentPointX=t[0],n=a.currentPointY=t[1];i.push(Wt,e,n);Util.pointBoundingBox(e,n,r);break}case xe:{const e=a.currentPointX,n=a.currentPointY,[s,o,c,l,h,u]=t;a.currentPointX=h;a.currentPointY=u;i.push(zt,s,o,c,l,h,u);Util.bezierBoundingBox(e,n,s,o,c,l,h,u,r);break}case Se:{const e=a.currentPointX,n=a.currentPointY,[s,o,c,l]=t;a.currentPointX=c;a.currentPointY=l;i.push(zt,e,n,s,o,c,l);Util.bezierBoundingBox(e,n,e,n,s,o,c,l,r);break}case Ae:{const e=a.currentPointX,n=a.currentPointY,[s,o,c,l]=t;a.currentPointX=c;a.currentPointY=l;i.push(zt,s,o,c,l,c,l);Util.bezierBoundingBox(e,n,s,o,c,l,c,l,r);break}case ke:i.push($t)}}_getColorSpace(e,t,a){return ColorSpaceUtils.parse({cs:e,xref:this.xref,resources:t,pdfFunctionFactory:this._pdfFunctionFactory,globalColorSpaceCache:this.globalColorSpaceCache,localColorSpaceCache:a,asyncIfNotCached:!0})}async _handleColorSpace(e){try{return await e}catch(e){if(e instanceof AbortException)return null;if(this.options.ignoreErrors){warn(`_handleColorSpace - ignoring ColorSpace: "${e}".`);return null}throw e}}parseShading({shading:e,resources:t,localColorSpaceCache:a,localShadingPatternCache:r}){let i,n=r.get(e);if(n)return n;try{i=Pattern.parseShading(e,this.xref,t,this._pdfFunctionFactory,this.globalColorSpaceCache,a).getIR()}catch(t){if(t instanceof AbortException)return null;if(this.options.ignoreErrors){warn(`parseShading - ignoring shading: "${t}".`);r.set(e,null);return null}throw t}n=`pattern_${this.idFactory.createObjId()}`;this.parsingType3Font&&(n=`${this.idFactory.getDocId()}_type3_${n}`);r.set(e,n);this.parsingType3Font?this.handler.send("commonobj",[n,"Pattern",i]):this.handler.send("obj",[n,this.pageIndex,"Pattern",i]);return n}handleColorN(e,t,a,r,i,n,s,o,c,l){const h=a.pop();if(h instanceof Name){const u=i.getRaw(h.name),d=u instanceof Ref&&c.getByRef(u);if(d)try{const i=r.base?r.base.getRgbHex(a,0):null,n=getTilingPatternIR(d.operatorListIR,d.dict,i);e.addOp(t,n);return}catch{}const f=this.xref.fetchIfRef(u);if(f){const i=f instanceof BaseStream?f.dict:f,h=i.get("PatternType");if(h===mn){const o=r.base?r.base.getRgbHex(a,0):null;return this.handleTilingType(t,o,n,f,i,e,s,c)}if(h===bn){const a=i.get("Shading"),r=this.parseShading({shading:a,resources:n,localColorSpaceCache:o,localShadingPatternCache:l});if(r){const a=lookupMatrix(i.getArray("Matrix"),null);e.addOp(t,["Shading",r,a])}return}throw new FormatError(`Unknown PatternType: ${h}`)}}throw new FormatError(`Unknown PatternName: ${h}`)}_parseVisibilityExpression(e,t,a){if(++t>10){warn("Visibility expression is too deeply nested");return}const r=e.length,i=this.xref.fetchIfRef(e[0]);if(!(r<2)&&i instanceof Name){switch(i.name){case"And":case"Or":case"Not":a.push(i.name);break;default:warn(`Invalid operator ${i.name} in visibility expression`);return}for(let i=1;i0)return{type:"OCMD",expression:t}}const t=a.get("OCGs");if(Array.isArray(t)||t instanceof Dict){const e=[];if(Array.isArray(t))for(const a of t)e.push(a.toString());else e.push(t.objId);return{type:r,ids:e,policy:a.get("P")instanceof Name?a.get("P").name:null,expression:null}}if(t instanceof Ref)return{type:r,id:t.toString()}}return null}getOperatorList({stream:e,task:t,resources:a,operatorList:r,initialState:i=null,fallbackFontDict:n=null,prevRefs:s=null}){const o=e.dict?.objId,c=new RefSet(s);if(o){if(s?.has(o))throw new Error(`getOperatorList - ignoring circular reference: ${o}`);c.put(o)}a||=Dict.empty;i||=new EvalState;if(!r)throw new Error('getOperatorList: missing "operatorList" parameter');const l=this,h=this.xref,u=new LocalImageCache,d=new LocalColorSpaceCache,f=new LocalGStateCache,g=new LocalTilingPatternCache,p=new Map,m=a.get("XObject")||Dict.empty,b=a.get("Pattern")||Dict.empty,y=new StateManager(i),w=new EvaluatorPreprocessor(e,h,y),x=new TimeSlotManager;function closePendingRestoreOPS(e){for(let e=0,t=w.savedStatesDepth;e{y.state.fillColorSpace=e||ColorSpaceUtils.gray}));return}case tt:{const t=l._getColorSpace(e[0],a,d);if(t instanceof ColorSpace){y.state.strokeColorSpace=t;continue}next(l._handleColorSpace(t).then(e=>{y.state.strokeColorSpace=e||ColorSpaceUtils.gray}));return}case nt:C=y.state.fillColorSpace;e=[C.getRgbHex(e,0)];i=ht;break;case rt:C=y.state.strokeColorSpace;e=[C.getRgbHex(e,0)];i=lt;break;case ct:y.state.fillColorSpace=ColorSpaceUtils.gray;e=[ColorSpaceUtils.gray.getRgbHex(e,0)];i=ht;break;case ot:y.state.strokeColorSpace=ColorSpaceUtils.gray;e=[ColorSpaceUtils.gray.getRgbHex(e,0)];i=lt;break;case dt:y.state.fillColorSpace=ColorSpaceUtils.cmyk;e=[ColorSpaceUtils.cmyk.getRgbHex(e,0)];i=ht;break;case ut:y.state.strokeColorSpace=ColorSpaceUtils.cmyk;e=[ColorSpaceUtils.cmyk.getRgbHex(e,0)];i=lt;break;case ht:y.state.fillColorSpace=ColorSpaceUtils.rgb;e=[ColorSpaceUtils.rgb.getRgbHex(e,0)];break;case lt:y.state.strokeColorSpace=ColorSpaceUtils.rgb;e=[ColorSpaceUtils.rgb.getRgbHex(e,0)];break;case st:C=y.state.patternFillColorSpace;if(!C){if(isNumberArray(e,null)){e=[ColorSpaceUtils.gray.getRgbHex(e,0)];i=ht;break}e=[];i=Xt;break}if("Pattern"===C.name){next(l.handleColorN(r,st,e,C,b,a,t,d,g,p));return}e=[C.getRgbHex(e,0)];i=ht;break;case it:C=y.state.patternStrokeColorSpace;if(!C){if(isNumberArray(e,null)){e=[ColorSpaceUtils.gray.getRgbHex(e,0)];i=lt;break}e=[];i=Ut;break}if("Pattern"===C.name){next(l.handleColorN(r,it,e,C,b,a,t,d,g,p));return}e=[C.getRgbHex(e,0)];i=lt;break;case ft:let T;try{const t=a.get("Shading");if(!t)throw new FormatError("No shading resource found");T=t.get(e[0].name);if(!T)throw new FormatError("No shading object found")}catch(e){if(e instanceof AbortException)continue;if(l.options.ignoreErrors){warn(`getOperatorList - ignoring Shading: "${e}".`);continue}throw e}const O=l.parseShading({shading:T,resources:a,localColorSpaceCache:d,localShadingPatternCache:p});if(!O)continue;e=[O];i=ft;break;case ge:F=e[0]instanceof Name;v=e[0].name;if(F){const t=f.getByName(v);if(t){t.length>0&&r.addOp(ge,[t]);e=null;continue}}next(new Promise(function(e,i){if(!F)throw new FormatError("GState must be referred to by name.");const n=a.get("ExtGState");if(!(n instanceof Dict))throw new FormatError("ExtGState should be a dictionary.");const s=n.get(v);if(!(s instanceof Dict))throw new FormatError("GState should be a dictionary.");l.setGState({resources:a,gState:s,operatorList:r,cacheKey:v,task:t,stateManager:y,localGStateCache:f,localColorSpaceCache:d,seenRefs:c}).then(e,i)}).catch(function(e){if(!(e instanceof AbortException)){if(!l.options.ignoreErrors)throw e;warn(`getOperatorList - ignoring ExtGState: "${e}".`)}}));return;case oe:{const[t]=e;if("number"!=typeof t){warn(`Invalid setLineWidth: ${t}`);continue}e[0]=Math.abs(t);break}case ue:{const t=e[1];if("number"!=typeof t){warn(`Invalid setDash: ${t}`);continue}const a=e[0];if(!Array.isArray(a)){warn(`Invalid setDash: ${a}`);continue}a.some(e=>"number"!=typeof e)&&(e[0]=a.filter(e=>"number"==typeof e));break}case ye:case we:case xe:case Se:case Ae:case ke:case Ce:l.buildPath(i,e,y.state);continue;case ve:case Fe:case Ie:case Te:case Oe:case Me:case De:case Be:case Re:{const{state:{pathBuffer:e,pathMinMax:t}}=y;i!==Fe&&i!==De&&i!==Be||e.push($t);if(0===e.length)r.addOp(jt,[i,[null],null]);else{r.addOp(jt,[i,[new Float32Array(e)],t.slice()]);e.length=0;t.set([1/0,1/0,-1/0,-1/0],0)}continue}case Ge:r.addOp(i,[new Float32Array(e)]);continue;case yt:case wt:case kt:case Ct:continue;case St:if(!(e[0]instanceof Name)){warn(`Expected name for beginMarkedContentProps arg0=${e[0]}`);r.addOp(St,["OC",null]);continue}if("OC"===e[0].name){next(l.parseMarkedContentProps(e[1],a).then(e=>{r.addOp(St,["OC",e])}).catch(e=>{if(!(e instanceof AbortException)){if(!l.options.ignoreErrors)throw e;warn(`getOperatorList - ignoring beginMarkedContentProps: "${e}".`);r.addOp(St,["OC",null])}}));return}e=[e[0].name,e[1]instanceof Dict?e[1].get("MCID"):null];break;default:if(null!==e){for(S=0,k=e.length;S{if(!(e instanceof AbortException)){if(!this.options.ignoreErrors)throw e;warn(`getOperatorList - ignoring errors during "${t.name}" task: "${e}".`);closePendingRestoreOPS()}})}getTextContent({stream:e,task:a,resources:r,stateManager:i=null,includeMarkedContent:n=!1,sink:s,seenStyles:o=new Set,viewBox:c,lang:l=null,markedContentData:h=null,disableNormalization:u=!1,keepWhiteSpace:d=!1,prevRefs:f=null,intersector:g=null}){const p=e.dict?.objId,m=new RefSet(f);if(p){if(f?.has(p))throw new Error(`getTextContent - ignoring circular reference: ${p}`);m.put(p)}r||=Dict.empty;i||=new StateManager(new TextState);n&&(h||={level:0});const b={items:[],styles:Object.create(null),lang:l},y={initialized:!1,str:[],totalWidth:0,totalHeight:0,width:0,height:0,vertical:!1,prevTransform:null,textAdvanceScale:0,spaceInFlowMin:0,spaceInFlowMax:0,trackingSpaceMin:1/0,negativeSpaceMax:-1/0,notASpace:-1/0,transform:null,fontName:null,hasEOL:!1},w=[" "," "];let x=0;function saveLastChar(e){const t=(x+1)%2,a=" "!==w[x]&&" "===w[t];w[x]=e;x=t;return!d&&a}function shouldAddWhitepsace(){return!d&&" "!==w[x]&&" "===w[(x+1)%2]}function resetLastChars(){w[0]=w[1]=" ";x=0}const S=this,k=this.xref,C=[];let v=null;const F=new LocalImageCache,T=new LocalGStateCache,O=new EvaluatorPreprocessor(e,k,i);let M;function pushWhitespace({width:e=0,height:t=0,transform:a=y.prevTransform,fontName:r=y.fontName}){g?.addExtraChar(" ");b.items.push({str:" ",dir:"ltr",width:e,height:t,transform:a,fontName:r,hasEOL:!1})}function getCurrentTextTransform(){const e=M.font,a=[M.fontSize*M.textHScale,0,0,M.fontSize,0,M.textRise];if(e.isType3Font&&(M.fontSize<=1||e.isCharBBox)&&!isArrayEqual(M.fontMatrix,t)){const t=e.bbox[3]-e.bbox[1];t>0&&(a[3]*=t*M.fontMatrix[3])}return Util.transform(M.ctm,Util.transform(M.textMatrix,a))}function ensureTextContentItem(){if(y.initialized)return y;const{font:e,loadedName:t}=M;if(!o.has(t)){o.add(t);b.styles[t]={fontFamily:e.fallbackName,ascent:e.ascent,descent:e.descent,vertical:e.vertical};if(S.options.fontExtraProperties&&e.systemFontInfo){const a=b.styles[t];a.fontSubstitution=e.systemFontInfo.css;a.fontSubstitutionLoadedName=e.systemFontInfo.loadedName}}y.fontName=t;const a=y.transform=getCurrentTextTransform();if(e.vertical){y.width=y.totalWidth=Math.hypot(a[0],a[1]);y.height=y.totalHeight=0;y.vertical=!0}else{y.width=y.totalWidth=0;y.height=y.totalHeight=Math.hypot(a[2],a[3]);y.vertical=!1}const r=Math.hypot(M.textLineMatrix[0],M.textLineMatrix[1]),i=Math.hypot(M.ctm[0],M.ctm[1]);y.textAdvanceScale=i*r;const{fontSize:n}=M;y.trackingSpaceMin=.102*n;y.notASpace=.03*n;y.negativeSpaceMax=-.2*n;y.spaceInFlowMin=.102*n;y.spaceInFlowMax=.6*n;y.hasEOL=!1;y.initialized=!0;return y}function updateAdvanceScale(){if(!y.initialized)return;const e=Math.hypot(M.textLineMatrix[0],M.textLineMatrix[1]),t=Math.hypot(M.ctm[0],M.ctm[1])*e;if(t!==y.textAdvanceScale){if(y.vertical){y.totalHeight+=y.height*y.textAdvanceScale;y.height=0}else{y.totalWidth+=y.width*y.textAdvanceScale;y.width=0}y.textAdvanceScale=t}}function runBidiTransform(e){let t=e.str.join("");u||(t=function normalizeUnicode(e){if(!Qt){Qt=/([\u00a0\u00b5\u037e\u0eb3\u2000-\u200a\u202f\u2126\ufb00-\ufb04\ufb06\ufb20-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufba1\ufba4-\ufba9\ufbae-\ufbb1\ufbd3-\ufbdc\ufbde-\ufbe7\ufbea-\ufbf8\ufbfc-\ufbfd\ufc00-\ufc5d\ufc64-\ufcf1\ufcf5-\ufd3d\ufd88\ufdf4\ufdfa-\ufdfb\ufe71\ufe77\ufe79\ufe7b\ufe7d]+)|(\ufb05+)/gu;ea=new Map([["ſt","ſt"]])}return e.replaceAll(Qt,(e,t,a)=>t?t.normalize("NFKC"):ea.get(a))}(t));const a=bidi(t,-1,e.vertical);return{str:a.str,dir:a.dir,width:Math.abs(e.totalWidth),height:Math.abs(e.totalHeight),transform:e.transform,fontName:e.fontName,hasEOL:e.hasEOL}}async function handleSetFont(e,i){const n=await S.loadFont(e,i,r,a);M.loadedName=n.loadedName;M.font=n.font;M.fontMatrix=n.font.fontMatrix||t}function applyInverseRotation(e,t,a){const r=Math.hypot(a[0],a[1]);return[(a[0]*e+a[1]*t)/r,(a[2]*e+a[3]*t)/r]}function compareWithLastPosition(e){const t=getCurrentTextTransform();let a=t[4],r=t[5];if(M.font?.vertical){if(ac[2]||r+ec[3])return!1}else if(a+ec[2]||rc[3])return!1;if(!M.font||!y.prevTransform)return!0;let i=y.prevTransform[4],n=y.prevTransform[5];if(i===a&&n===r)return!0;let s=-1;t[0]&&0===t[1]&&0===t[2]?s=t[0]>0?0:180:t[1]&&0===t[0]&&0===t[3]&&(s=t[1]>0?90:270);switch(s){case 0:break;case 90:[a,r]=[r,a];[i,n]=[n,i];break;case 180:[a,r,i,n]=[-a,-r,-i,-n];break;case 270:[a,r]=[-r,-a];[i,n]=[-n,-i];break;default:[a,r]=applyInverseRotation(a,r,t);[i,n]=applyInverseRotation(i,n,y.prevTransform)}if(M.font.vertical){const e=(n-r)/y.textAdvanceScale,t=a-i,s=Math.sign(y.height);if(e.5*y.width){appendEOL();return!0}resetLastChars();flushTextContentItem();return!0}if(Math.abs(t)>y.width){appendEOL();return!0}e<=s*y.notASpace&&resetLastChars();if(e<=s*y.trackingSpaceMin)if(shouldAddWhitepsace()){resetLastChars();flushTextContentItem();pushWhitespace({height:Math.abs(e)})}else y.height+=e;else if(!addFakeSpaces(e,y.prevTransform,s))if(0===y.str.length){resetLastChars();pushWhitespace({height:Math.abs(e)})}else y.height+=e;Math.abs(t)>.25*y.width&&flushTextContentItem();return!0}const o=(a-i)/y.textAdvanceScale,l=r-n,h=Math.sign(y.width);if(o.5*y.height){appendEOL();return!0}resetLastChars();flushTextContentItem();return!0}if(Math.abs(l)>y.height){appendEOL();return!0}o<=h*y.notASpace&&resetLastChars();if(o<=h*y.trackingSpaceMin)if(shouldAddWhitepsace()){resetLastChars();flushTextContentItem();pushWhitespace({width:Math.abs(o)})}else y.width+=o;else if(!addFakeSpaces(o,y.prevTransform,h))if(0===y.str.length){resetLastChars();pushWhitespace({width:Math.abs(o)})}else y.width+=o;Math.abs(l)>.25*y.height&&flushTextContentItem();return!0}function buildTextContentItem({chars:e,extraSpacing:t}){const a=M.font;if(!e){const e=M.charSpacing+t;e&&(a.vertical?M.translateTextMatrix(0,-e):M.translateTextMatrix(e*M.textHScale,0));d&&compareWithLastPosition(0);return}const r=a.charsToGlyphs(e),i=M.fontMatrix[0]*M.fontSize;for(let e=0,n=r.length;e0){const e=C.join("");C.length=0;buildTextContentItem({chars:e,extraSpacing:0})}break;case Ke:if(!i.state.font){S.ensureStateFont(i.state);continue}buildTextContentItem({chars:w[0],extraSpacing:0});break;case Ye:if(!i.state.font){S.ensureStateFont(i.state);continue}M.carriageReturn();buildTextContentItem({chars:w[0],extraSpacing:0});break;case Ze:if(!i.state.font){S.ensureStateFont(i.state);continue}M.wordSpacing=w[0];M.charSpacing=w[1];M.carriageReturn();buildTextContentItem({chars:w[2],extraSpacing:0});break;case bt:flushTextContentItem();v??=r.get("XObject")||Dict.empty;y=w[0]instanceof Name;p=w[0].name;if(y&&F.getByName(p))break;next(new Promise(function(e,t){if(!y)throw new FormatError("XObject must be referred to by name.");let f=v.getRaw(p);if(f instanceof Ref){if(F.getByRef(f)){e();return}if(S.globalImageCache.getData(f,S.pageIndex)){e();return}f=k.fetch(f)}if(!(f instanceof BaseStream))throw new FormatError("XObject should be a stream");const{dict:g}=f,b=g.get("Subtype");if(!(b instanceof Name))throw new FormatError("XObject should have a Name subtype");if("Form"!==b.name){F.set(p,g.objId,!0);e();return}const w=i.state.clone(),x=new StateManager(w),C=lookupMatrix(g.getArray("Matrix"),null);C&&x.transform(C);const T=g.get("Resources");enqueueChunk();const O={enqueueInvoked:!1,enqueue(e,t){this.enqueueInvoked=!0;s.enqueue(e,t)},get desiredSize(){return s.desiredSize??0},get ready(){return s.ready}};S.getTextContent({stream:f,task:a,resources:T instanceof Dict?T:r,stateManager:x,includeMarkedContent:n,sink:s&&O,seenStyles:o,viewBox:c,lang:l,markedContentData:h,disableNormalization:u,keepWhiteSpace:d,prevRefs:m}).then(function(){O.enqueueInvoked||F.set(p,g.objId,!0);e()},t)}).catch(function(e){if(!(e instanceof AbortException)){if(!S.options.ignoreErrors)throw e;warn(`getTextContent - ignoring XObject: "${e}".`)}}));return;case ge:y=w[0]instanceof Name;p=w[0].name;if(y&&T.getByName(p))break;next(new Promise(function(e,t){if(!y)throw new FormatError("GState must be referred to by name.");const a=r.get("ExtGState");if(!(a instanceof Dict))throw new FormatError("ExtGState should be a dictionary.");const i=a.get(p);if(!(i instanceof Dict))throw new FormatError("GState should be a dictionary.");const n=i.get("Font");if(n){flushTextContentItem();M.fontName=null;M.fontSize=n[1];handleSetFont(null,n[0]).then(e,t)}else{T.set(p,i.objId,!0);e()}}).catch(function(e){if(!(e instanceof AbortException)){if(!S.options.ignoreErrors)throw e;warn(`getTextContent - ignoring ExtGState: "${e}".`)}}));return;case xt:flushTextContentItem();if(n){h.level++;b.items.push({type:"beginMarkedContent",tag:w[0]instanceof Name?w[0].name:null})}break;case St:flushTextContentItem();if(n){h.level++;let e=null;w[1]instanceof Dict&&(e=w[1].get("MCID"));b.items.push({type:"beginMarkedContentProps",id:Number.isInteger(e)?`${S.idFactory.getPageObjId()}_mc${e}`:null,tag:w[0]instanceof Name?w[0].name:null})}break;case At:flushTextContentItem();if(n){if(0===h.level)break;h.level--;b.items.push({type:"endMarkedContent"})}break;case me:!e||e.font===M.font&&e.fontSize===M.fontSize&&e.fontName===M.fontName||flushTextContentItem()}if(b.items.length>=(s?.desiredSize??1)){g=!0;break}}if(g)next(yn);else{flushTextContentItem();enqueueChunk();e()}}).catch(e=>{if(!(e instanceof AbortException)){if(!this.options.ignoreErrors)throw e;warn(`getTextContent - ignoring errors during "${a.name}" task: "${e}".`);flushTextContentItem();enqueueChunk()}})}async extractDataStructures(e,t){const a=this.xref;let r;const i=this.readToUnicode(t.toUnicode);if(t.composite){const a=e.get("CIDSystemInfo");a instanceof Dict&&(t.cidSystemInfo={registry:stringToPDFString(a.get("Registry")),ordering:stringToPDFString(a.get("Ordering")),supplement:a.get("Supplement")});try{const t=e.get("CIDToGIDMap");t instanceof BaseStream&&(r=t.getBytes())}catch(e){if(!this.options.ignoreErrors)throw e;warn(`extractDataStructures - ignoring CIDToGIDMap data: "${e}".`)}}const n=[];let s,o=null;if(e.has("Encoding")){s=e.get("Encoding");if(s instanceof Dict){o=s.get("BaseEncoding");o=o instanceof Name?o.name:null;if(s.has("Differences")){const e=s.get("Differences");let t=0;for(const r of e){const e=a.fetchIfRef(r);if("number"==typeof e)t=e;else{if(!(e instanceof Name))throw new FormatError(`Invalid entry in 'Differences' array: ${e}`);n[t++]=e.name}}}}else if(s instanceof Name)o=s.name;else{const e="Encoding is not a Name nor a Dict";if(!this.options.ignoreErrors)throw new FormatError(e);warn(e)}"MacRomanEncoding"!==o&&"MacExpertEncoding"!==o&&"WinAnsiEncoding"!==o&&(o=null)}const c=!t.file||t.isInternalFont,l=Lr()[t.name];o&&c&&l&&(o=null);if(o)t.defaultEncoding=getEncoding(o);else{let e=!!(t.flags&yr);const a=!!(t.flags&wr);if("TrueType"===t.type&&e&&a&&0!==n.length){t.flags&=~yr;e=!1}s=nr;"TrueType"!==t.type||a||(s=sr);if(e||l){s=ir;c&&(/Symbol/i.test(t.name)?s=or:/Dingbats/i.test(t.name)?s=cr:/Wingdings/i.test(t.name)&&(s=sr))}t.defaultEncoding=s}t.differences=n;t.baseEncodingName=o;t.hasEncoding=!!o||n.length>0;t.dict=e;t.toUnicode=await i;const h=await this.buildToUnicode(t);t.toUnicode=h;r&&(t.cidToGidMap=this.readCidToGidMap(r,h));return t}_simpleFontToUnicode(e,t=!1){assert(!e.composite,"Must be a simple font.");const a=[],r=e.defaultEncoding.slice(),i=e.baseEncodingName,n=e.differences;for(const e in n){const t=n[e];".notdef"!==t&&(r[e]=t)}const s=lr();for(const n in r){let o=r[n];if(""===o)continue;let c=s[o];if(void 0!==c){a[n]=String.fromCharCode(c);continue}let l=0;switch(o[0]){case"G":3===o.length&&(l=parseInt(o.substring(1),16));break;case"g":5===o.length&&(l=parseInt(o.substring(1),16));break;case"C":case"c":if(o.length>=3&&o.length<=4){const a=o.substring(1);if(t){l=parseInt(a,16);break}l=+a;if(Number.isNaN(l)&&Number.isInteger(parseInt(a,16)))return this._simpleFontToUnicode(e,!0)}break;case"u":c=getUnicodeForGlyph(o,s);-1!==c&&(l=c);break;default:switch(o){case"f_h":case"f_t":case"T_h":a[n]=o.replaceAll("_","");continue}}if(l>0&&l<=1114111&&Number.isInteger(l)){if(i&&l===+n){const e=getEncoding(i);if(e&&(o=e[n])){a[n]=String.fromCharCode(s[o]);continue}}a[n]=String.fromCodePoint(l)}}return a}async buildToUnicode(e){e.hasIncludedToUnicodeMap=e.toUnicode?.length>0;if(e.hasIncludedToUnicodeMap){!e.composite&&e.hasEncoding&&(e.fallbackToUnicode=this._simpleFontToUnicode(e));return e.toUnicode}if(!e.composite)return new ToUnicodeMap(this._simpleFontToUnicode(e));if(e.composite&&(e.cMap.builtInCMap&&!(e.cMap instanceof IdentityCMap)||"Adobe"===e.cidSystemInfo?.registry&&("GB1"===e.cidSystemInfo.ordering||"CNS1"===e.cidSystemInfo.ordering||"Japan1"===e.cidSystemInfo.ordering||"Korea1"===e.cidSystemInfo.ordering))){const{registry:t,ordering:a}=e.cidSystemInfo,r=Name.get(`${t}-${a}-UCS2`),i=await CMapFactory.create({encoding:r,fetchBuiltInCMap:this._fetchBuiltInCMapBound,useCMap:null}),n=[],s=[];e.cMap.forEach(function(e,t){if(t>65535)throw new FormatError("Max size of CID is 65,535");const a=i.lookup(t);if(a){s.length=0;for(let e=0,t=a.length;e>1;(0!==i||t.has(n))&&(a[n]=i)}return a}extractWidths(e,t,a){const r=this.xref;let i=[],n=0;const s=[];let o;if(a.composite){const t=e.get("DW");n="number"==typeof t?Math.ceil(t):1e3;const c=e.get("W");if(Array.isArray(c))for(let e=0,t=c.length;e{const t=c.get(e),r=new OperatorList;return n.getOperatorList({stream:t,task:a,resources:l,operatorList:r}).then(()=>{switch(r.fnArray[0]){case et:this.#ne(r,b);break;case Qe:b||this.#se(r)}h[e]=r.getIR();for(const e of r.dependencies)i.add(e)}).catch(function(t){warn(`Type3 font resource "${e}" is not available.`);const a=new OperatorList;h[e]=a.getIR()})});this.#ie=o.then(()=>{r.charProcOperatorList=h;if(this._bbox){r.isCharBBox=!0;r.bbox=this._bbox}});return this.#ie}#ne(e,t=NaN){const a=Util.normalizeRect(e.argsArray[0].slice(2)),r=a[2]-a[0],i=a[3]-a[1],n=Math.hypot(r,i);if(0===r||0===i){e.fnArray.splice(0,1);e.argsArray.splice(0,1)}else if(0===t||Math.round(n/t)>=10){this._bbox??=[1/0,1/0,-1/0,-1/0];Util.rectBoundingBox(...a,this._bbox)}let s=0,o=e.length;for(;s=ye&&n<=Re;if(i.variableArgs)o>s&&info(`Command ${r}: expected [0, ${s}] args, but received ${o} args.`);else{if(o!==s){const e=this.nonProcessedArgs;for(;o>s;){e.push(t.shift());o--}for(;oEvaluatorPreprocessor.MAX_INVALID_PATH_OPS)throw new FormatError(`Invalid ${e}`);warn(`Skipping ${e}`);null!==t&&(t.length=0);continue}}this.preprocessCommand(n,t);e.fn=n;e.args=t;return!0}if(a===aa)return!1;if(null!==a){null===t&&(t=[]);t.push(a);if(t.length>33)throw new FormatError("Too many arguments")}}}preprocessCommand(e,t){switch(0|e){case pe:this.stateManager.save();break;case me:this.stateManager.restore();break;case be:this.stateManager.transform(t)}}}class DefaultAppearanceEvaluator extends EvaluatorPreprocessor{constructor(e){super(new StringStream(e))}parse(){const e={fn:0,args:[]},t={fontSize:0,fontName:"",fontColor:new Uint8ClampedArray(3)};try{for(;;){e.args.length=0;if(!this.read(e))break;if(0!==this.savedStatesDepth)continue;const{fn:a,args:r}=e;switch(0|a){case qe:const[e,a]=r;e instanceof Name&&(t.fontName=e.name);"number"==typeof a&&a>0&&(t.fontSize=a);break;case ht:ColorSpaceUtils.rgb.getRgbItem(r,0,t.fontColor,0);break;case ct:ColorSpaceUtils.gray.getRgbItem(r,0,t.fontColor,0);break;case dt:ColorSpaceUtils.cmyk.getRgbItem(r,0,t.fontColor,0)}}}catch(e){warn(`parseDefaultAppearance - ignoring errors: "${e}".`)}return t}}function parseDefaultAppearance(e){return new DefaultAppearanceEvaluator(e).parse()}class AppearanceStreamEvaluator extends EvaluatorPreprocessor{constructor(e,t,a,r){super(e);this.stream=e;this.evaluatorOptions=t;this.xref=a;this.globalColorSpaceCache=r;this.resources=e.dict?.get("Resources")}parse(){const e={fn:0,args:[]};let t={scaleFactor:1,fontSize:0,fontName:"",fontColor:new Uint8ClampedArray(3),fillColorSpace:ColorSpaceUtils.gray},a=!1;const r=[];try{for(;;){e.args.length=0;if(a||!this.read(e))break;const{fn:i,args:n}=e;switch(0|i){case pe:r.push({scaleFactor:t.scaleFactor,fontSize:t.fontSize,fontName:t.fontName,fontColor:t.fontColor.slice(),fillColorSpace:t.fillColorSpace});break;case me:t=r.pop()||t;break;case Ge:t.scaleFactor*=Math.hypot(n[0],n[1]);break;case qe:const[e,i]=n;e instanceof Name&&(t.fontName=e.name);"number"==typeof i&&i>0&&(t.fontSize=i*t.scaleFactor);break;case at:t.fillColorSpace=ColorSpaceUtils.parse({cs:n[0],xref:this.xref,resources:this.resources,pdfFunctionFactory:this._pdfFunctionFactory,globalColorSpaceCache:this.globalColorSpaceCache,localColorSpaceCache:this._localColorSpaceCache});break;case nt:t.fillColorSpace.getRgbItem(n,0,t.fontColor,0);break;case ht:ColorSpaceUtils.rgb.getRgbItem(n,0,t.fontColor,0);break;case ct:ColorSpaceUtils.gray.getRgbItem(n,0,t.fontColor,0);break;case dt:ColorSpaceUtils.cmyk.getRgbItem(n,0,t.fontColor,0);break;case Ke:case Je:case Ye:case Ze:a=!0}}}catch(e){warn(`parseAppearanceStream - ignoring errors: "${e}".`)}this.stream.reset();delete t.scaleFactor;delete t.fillColorSpace;return t}get _localColorSpaceCache(){return shadow(this,"_localColorSpaceCache",new LocalColorSpaceCache)}get _pdfFunctionFactory(){return shadow(this,"_pdfFunctionFactory",new PDFFunctionFactory({xref:this.xref,isEvalSupported:this.evaluatorOptions.isEvalSupported}))}}function getPdfColor(e,t){if(e[0]===e[1]&&e[1]===e[2]){return`${numberToString(e[0]/255)} ${t?"g":"G"}`}return Array.from(e,e=>numberToString(e/255)).join(" ")+" "+(t?"rg":"RG")}class FakeUnicodeFont{constructor(e,t){this.xref=e;this.widths=null;this.firstChar=1/0;this.lastChar=-1/0;this.fontFamily=t;const a=new OffscreenCanvas(1,1);this.ctxMeasure=a.getContext("2d",{willReadFrequently:!0});FakeUnicodeFont._fontNameId||(FakeUnicodeFont._fontNameId=1);this.fontName=Name.get(`InvalidPDFjsFont_${t}_${FakeUnicodeFont._fontNameId++}`)}get fontDescriptorRef(){if(!FakeUnicodeFont._fontDescriptorRef){const e=new Dict(this.xref);e.setIfName("Type","FontDescriptor");e.set("FontName",this.fontName);e.set("FontFamily","MyriadPro Regular");e.set("FontBBox",[0,0,0,0]);e.setIfName("FontStretch","Normal");e.set("FontWeight",400);e.set("ItalicAngle",0);FakeUnicodeFont._fontDescriptorRef=this.xref.getNewPersistentRef(e)}return FakeUnicodeFont._fontDescriptorRef}get descendantFontRef(){const e=new Dict(this.xref);e.set("BaseFont",this.fontName);e.setIfName("Type","Font");e.setIfName("Subtype","CIDFontType0");e.setIfName("CIDToGIDMap","Identity");e.set("FirstChar",this.firstChar);e.set("LastChar",this.lastChar);e.set("FontDescriptor",this.fontDescriptorRef);e.set("DW",1e3);const t=[],a=[...this.widths.entries()].sort();let r=null,i=null;for(const[e,n]of a)if(r)if(e===r+i.length)i.push(n);else{t.push(r,i);r=e;i=[n]}else{r=e;i=[n]}r&&t.push(r,i);e.set("W",t);const n=new Dict(this.xref);n.set("Ordering","Identity");n.set("Registry","Adobe");n.set("Supplement",0);e.set("CIDSystemInfo",n);return this.xref.getNewPersistentRef(e)}get baseFontRef(){const e=new Dict(this.xref);e.set("BaseFont",this.fontName);e.setIfName("Type","Font");e.setIfName("Subtype","Type0");e.setIfName("Encoding","Identity-H");e.set("DescendantFonts",[this.descendantFontRef]);e.setIfName("ToUnicode","Identity-H");return this.xref.getNewPersistentRef(e)}get resources(){const e=new Dict(this.xref),t=new Dict(this.xref);t.set(this.fontName.name,this.baseFontRef);e.set("Font",t);return e}_createContext(){this.widths=new Map;this.ctxMeasure.font=`1000px ${this.fontFamily}`;return this.ctxMeasure}createFontResources(e){const t=this._createContext();for(const a of e.split(/\r\n?|\n/))for(const e of a.split("")){const a=e.charCodeAt(0);if(this.widths.has(a))continue;const r=t.measureText(e),i=Math.ceil(r.width);this.widths.set(a,i);this.firstChar=Math.min(a,this.firstChar);this.lastChar=Math.max(a,this.lastChar)}return this.resources}static getFirstPositionInfo(e,t,i){const[n,s,o,c]=e;let l=o-n,h=c-s;t%180!=0&&([l,h]=[h,l]);const u=a*i;return{coords:[0,h+r*i-u],bbox:[0,0,l,h],matrix:0!==t?getRotationMatrix(t,h,u):void 0}}createAppearance(e,t,i,n,s,o){const c=this._createContext(),l=[];let h=-1/0;for(const t of e.split(/\r\n?|\n/)){l.push(t);const e=c.measureText(t).width;h=Math.max(h,e);for(const e of codePointIter(t)){const t=String.fromCodePoint(e);let a=this.widths.get(e);if(void 0===a){const r=c.measureText(t);a=Math.ceil(r.width);this.widths.set(e,a);this.firstChar=Math.min(e,this.firstChar);this.lastChar=Math.max(e,this.lastChar)}}}h*=n/1e3;const[u,d,f,g]=t;let p=f-u,m=g-d;i%180!=0&&([p,m]=[m,p]);let b=1;h>p&&(b=p/h);let y=1;const w=a*n,x=r*n,S=w*l.length;S>m&&(y=m/S);const k=n*Math.min(b,y),C=["q",`0 0 ${numberToString(p)} ${numberToString(m)} re W n`,"BT",`1 0 0 1 0 ${numberToString(m+x)} Tm 0 Tc ${getPdfColor(s,!0)}`,`/${this.fontName.name} ${numberToString(k)} Tf`],{resources:v}=this;if(1!==(o="number"==typeof o&&o>=0&&o<=1?o:1)){C.push("/R0 gs");const e=new Dict(this.xref),t=new Dict(this.xref);t.set("ca",o);t.set("CA",o);t.setIfName("Type","ExtGState");e.set("R0",t);v.set("ExtGState",e)}const F=numberToString(w);for(const e of l)C.push(`0 -${F} Td <${stringToUTF16HexString(e)}> Tj`);C.push("ET","Q");const T=C.join("\n"),O=new Dict(this.xref);O.setIfName("Subtype","Form");O.setIfName("Type","XObject");O.set("BBox",[0,0,p,m]);O.set("Length",T.length);O.set("Resources",v);if(i){const e=getRotationMatrix(i,p,m);O.set("Matrix",e)}const M=new StringStream(T);M.dict=O;return M}}const wn=["m/d","m/d/yy","mm/dd/yy","mm/yy","d-mmm","d-mmm-yy","dd-mmm-yy","yy-mm-dd","mmm-yy","mmmm-yy","mmm d, yyyy","mmmm d, yyyy","m/d/yy h:MM tt","m/d/yy HH:MM"],xn=["HH:MM","h:MM tt","HH:MM:ss","h:MM:ss tt"];class NameOrNumberTree{constructor(e,t,a){this.root=e;this.xref=t;this._type=a}getAll(){const e=new Map;if(!this.root)return e;const t=this.xref,a=new RefSet;a.put(this.root);const r=[this.root];for(;r.length>0;){const i=t.fetchIfRef(r.shift());if(!(i instanceof Dict))continue;if(i.has("Kids")){const e=i.get("Kids");if(!Array.isArray(e))continue;for(const t of e){if(a.has(t))throw new FormatError(`Duplicate entry in "${this._type}" tree.`);r.push(t);a.put(t)}continue}const n=i.get(this._type);if(Array.isArray(n))for(let a=0,r=n.length;a10){warn(`Search depth limit reached for "${this._type}" tree.`);return null}const i=a.get("Kids");if(!Array.isArray(i))return null;let n=0,s=i.length-1;for(;n<=s;){const r=n+s>>1,o=t.fetchIfRef(i[r]),c=o.get("Limits");if(et.fetchIfRef(c[1]))){a=o;break}n=r+1}}if(n>s)return null}const i=a.get(this._type);if(Array.isArray(i)){let a=0,r=i.length-2;for(;a<=r;){const n=a+r>>1,s=n+(1&n),o=t.fetchIfRef(i[s]);if(eo))return i[s+1];a=s+2}}}return null}get(e){return this.xref.fetchIfRef(this.getRaw(e))}}class NameTree extends NameOrNumberTree{constructor(e,t){super(e,t,"Names")}}class NumberTree extends NameOrNumberTree{constructor(e,t){super(e,t,"Nums")}}function clearGlobalCaches(){!function clearPatternCaches(){hi=Object.create(null)}();!function clearPrimitiveCaches(){ra=Object.create(null);ia=Object.create(null);na=Object.create(null)}();!function clearUnicodeCaches(){gr.clear()}();JpxImage.cleanup()}function pickPlatformItem(e){return e instanceof Dict?e.has("UF")?e.get("UF"):e.has("F")?e.get("F"):e.has("Unix")?e.get("Unix"):e.has("Mac")?e.get("Mac"):e.has("DOS")?e.get("DOS"):null:null}class FileSpec{#oe=!1;constructor(e,t,a=!1){if(e instanceof Dict){this.xref=t;this.root=e;e.has("FS")&&(this.fs=e.get("FS"));e.has("RF")&&warn("Related file specifications are not supported");a||(e.has("EF")?this.#oe=!0:warn("Non-embedded file specifications are not supported"))}}get filename(){let e="";const t=pickPlatformItem(this.root);t&&"string"==typeof t&&(e=stringToPDFString(t,!0).replaceAll("\\\\","\\").replaceAll("\\/","/").replaceAll("\\","/"));return shadow(this,"filename",e||"unnamed")}get content(){if(!this.#oe)return null;this._contentRef||=pickPlatformItem(this.root?.get("EF"));let e=null;if(this._contentRef){const t=this.xref.fetchIfRef(this._contentRef);t instanceof BaseStream?e=t.getBytes():warn("Embedded file specification points to non-existing/invalid content")}else warn("Embedded file specification does not have any content");return e}get description(){let e="";const t=this.root?.get("Desc");t&&"string"==typeof t&&(e=stringToPDFString(t));return shadow(this,"description",e)}get serializable(){return{rawFilename:this.filename,filename:(e=this.filename,e.substring(e.lastIndexOf("/")+1)),content:this.content,description:this.description};var e}}const Sn=0,An=-2,kn=-3,Cn=-4,vn=-5,Fn=-6,In=-9;function isWhitespace(e,t){const a=e[t];return" "===a||"\n"===a||"\r"===a||"\t"===a}class XMLParserBase{_resolveEntities(e){return e.replaceAll(/&([^;]+);/g,(e,t)=>{if("#x"===t.substring(0,2))return String.fromCodePoint(parseInt(t.substring(2),16));if("#"===t.substring(0,1))return String.fromCodePoint(parseInt(t.substring(1),10));switch(t){case"lt":return"<";case"gt":return">";case"amp":return"&";case"quot":return'"';case"apos":return"'"}return this.onResolveEntity(t)})}_parseContent(e,t){const a=[];let r=t;function skipWs(){for(;r"!==e[r]&&"/"!==e[r];)++r;const i=e.substring(t,r);skipWs();for(;r"!==e[r]&&"/"!==e[r]&&"?"!==e[r];){skipWs();let t="",i="";for(;r"!==e[a]&&"?"!==e[a]&&"/"!==e[a];)++a;const r=e.substring(t,a);!function skipWs(){for(;a"!==e[a+1]);)++a;return{name:r,value:e.substring(i,a),parsed:a-t}}parseXml(e){let t=0;for(;t",a);if(t<0){this.onError(In);return}this.onEndElement(e.substring(a,t));a=t+1;break;case"?":++a;const r=this._parseProcessingInstruction(e,a);if("?>"!==e.substring(a+r.parsed,a+r.parsed+2)){this.onError(kn);return}this.onPi(r.name,r.value);a+=r.parsed+2;break;case"!":if("--"===e.substring(a+1,a+3)){t=e.indexOf("--\x3e",a+3);if(t<0){this.onError(vn);return}this.onComment(e.substring(a+3,t));a=t+3}else if("[CDATA["===e.substring(a+1,a+8)){t=e.indexOf("]]>",a+8);if(t<0){this.onError(An);return}this.onCdata(e.substring(a+8,t));a=t+3}else{if("DOCTYPE"!==e.substring(a+1,a+8)){this.onError(Fn);return}{const r=e.indexOf("[",a+8);let i=!1;t=e.indexOf(">",a+8);if(t<0){this.onError(Cn);return}if(r>0&&t>r){t=e.indexOf("]>",a+8);if(t<0){this.onError(Cn);return}i=!0}const n=e.substring(a+8,t+(i?1:0));this.onDoctype(n);a=t+(i?2:1)}}break;default:const i=this._parseContent(e,a);if(null===i){this.onError(Fn);return}let n=!1;if("/>"===e.substring(a+i.parsed,a+i.parsed+2))n=!0;else if(">"!==e.substring(a+i.parsed,a+i.parsed+1)){this.onError(In);return}this.onBeginElement(i.name,i.attributes,n);a+=i.parsed+(n?2:1)}}else{for(;ae.textContent).join(""):this.nodeValue||""}get children(){return this.childNodes||[]}hasChildNodes(){return this.childNodes?.length>0}searchNode(e,t){if(t>=e.length)return this;const a=e[t];if(a.name.startsWith("#")&&t0){r.push([i,0]);i=i.childNodes[0]}else{if(0===r.length)return null;for(;0!==r.length;){const[e,t]=r.pop(),a=t+1;if(a");for(const t of this.childNodes)t.dump(e);e.push(``)}else this.nodeValue?e.push(`>${encodeToXmlString(this.nodeValue)}`):e.push("/>")}else e.push(encodeToXmlString(this.nodeValue))}}class SimpleXMLParser extends XMLParserBase{constructor({hasAttributes:e=!1,lowerCaseName:t=!1}){super();this._currentFragment=null;this._stack=null;this._errorCode=Sn;this._hasAttributes=e;this._lowerCaseName=t}parseFromString(e){this._currentFragment=[];this._stack=[];this._errorCode=Sn;this.parseXml(e);if(this._errorCode!==Sn)return;const[t]=this._currentFragment;return t?{documentElement:t}:void 0}onText(e){if(function isWhitespaceString(e){for(let t=0,a=e.length;t\\376\\377([^<]+)/g,function(e,t){const a=t.replaceAll(/\\([0-3])([0-7])([0-7])/g,function(e,t,a,r){return String.fromCharCode(64*t+8*a+1*r)}).replaceAll(/&(amp|apos|gt|lt|quot);/g,function(e,t){switch(t){case"amp":return"&";case"apos":return"'";case"gt":return">";case"lt":return"<";case"quot":return'"'}throw new Error(`_repair: ${t} isn't defined.`)}),r=[">"];for(let e=0,t=a.length;e=32&&t<127&&60!==t&&62!==t&&38!==t?r.push(String.fromCharCode(t)):r.push("&#x"+(65536+t).toString(16).substring(1)+";")}return r.join("")})}_getSequence(e){const t=e.nodeName;return"rdf:bag"!==t&&"rdf:seq"!==t&&"rdf:alt"!==t?null:e.childNodes.filter(e=>"rdf:li"===e.nodeName)}_parseArray(e){if(!e.hasChildNodes())return;const[t]=e.childNodes,a=this._getSequence(t)||[];this._metadataMap.set(e.nodeName,a.map(e=>e.textContent.trim()))}_parse(e){let t=e.documentElement;if("rdf:rdf"!==t.nodeName){t=t.firstChild;for(;t&&"rdf:rdf"!==t.nodeName;)t=t.nextSibling}if(t&&"rdf:rdf"===t.nodeName&&t.hasChildNodes())for(const e of t.childNodes)if("rdf:description"===e.nodeName)for(const t of e.childNodes){const e=t.nodeName;switch(e){case"#text":continue;case"dc:creator":case"dc:subject":this._parseArray(t);continue}this._metadataMap.set(e,t.textContent.trim())}}get serializable(){return{parsedData:this._metadataMap,rawData:this._data}}}const Tn=1,On=2,Mn=3,Dn=4,Bn=5;class StructTreeRoot{constructor(e,t,a){this.xref=e;this.dict=t;this.ref=a instanceof Ref?a:null;this.roleMap=new Map;this.structParentIds=null}init(){this.readRoleMap()}#ce(e,t,a){if(!(e instanceof Ref)||t<0)return;this.structParentIds||=new RefSetCache;let r=this.structParentIds.get(e);if(!r){r=[];this.structParentIds.put(e,r)}r.push([t,a])}addAnnotationIdToPage(e,t){this.#ce(e,t,Dn)}readRoleMap(){const e=this.dict.get("RoleMap");if(e instanceof Dict)for(const[t,a]of e)a instanceof Name&&this.roleMap.set(t,a.name)}static async canCreateStructureTree({catalogRef:e,pdfManager:t,newAnnotationsByPage:a}){if(!(e instanceof Ref)){warn("Cannot save the struct tree: no catalog reference.");return!1}let r=0,i=!0;for(const[e,n]of a){const{ref:a}=await t.getPage(e);if(!(a instanceof Ref)){warn(`Cannot save the struct tree: page ${e} has no ref.`);i=!0;break}for(const e of n)if(e.accessibilityData?.type){e.parentTreeId=r++;i=!1}}if(i){for(const e of a.values())for(const t of e)delete t.parentTreeId;return!1}return!0}static async createStructureTree({newAnnotationsByPage:e,xref:t,catalogRef:a,pdfManager:r,changes:i}){const n=await r.ensureCatalog("cloneDict"),s=new RefSetCache;s.put(a,n);const o=t.getNewTemporaryRef();n.set("StructTreeRoot",o);const c=new Dict(t);c.set("Type",Name.get("StructTreeRoot"));const l=t.getNewTemporaryRef();c.set("ParentTree",l);const h=[];c.set("K",h);s.put(o,c);const u=new Dict(t),d=[];u.set("Nums",d);const f=await this.#le({newAnnotationsByPage:e,structTreeRootRef:o,structTreeRoot:null,kids:h,nums:d,xref:t,pdfManager:r,changes:i,cache:s});c.set("ParentTreeNextKey",f);s.put(l,u);for(const[e,t]of s.items())i.put(e,{data:t})}async canUpdateStructTree({pdfManager:e,newAnnotationsByPage:t}){if(!this.ref){warn("Cannot update the struct tree: no root reference.");return!1}let a=this.dict.get("ParentTreeNextKey");if(!Number.isInteger(a)||a<0){warn("Cannot update the struct tree: invalid next key.");return!1}const r=this.dict.get("ParentTree");if(!(r instanceof Dict)){warn("Cannot update the struct tree: ParentTree isn't a dict.");return!1}const i=r.get("Nums");if(!Array.isArray(i)){warn("Cannot update the struct tree: nums isn't an array.");return!1}const n=new NumberTree(r,this.xref);for(const a of t.keys()){const{pageDict:t}=await e.getPage(a);if(!t.has("StructParents"))continue;const r=t.get("StructParents");if(!Number.isInteger(r)||!Array.isArray(n.get(r))){warn(`Cannot save the struct tree: page ${a} has a wrong id.`);return!1}}let s=!0;for(const[r,i]of t){const{pageDict:t}=await e.getPage(r);StructTreeRoot.#he({elements:i,xref:this.xref,pageDict:t,numberTree:n});for(const e of i)if(e.accessibilityData?.type){e.accessibilityData.structParent>=0||(e.parentTreeId=a++);s=!1}}if(s){for(const e of t.values())for(const t of e){delete t.parentTreeId;delete t.structTreeParent}return!1}return!0}async updateStructureTree({newAnnotationsByPage:e,pdfManager:t,changes:a}){const{ref:r,xref:i}=this,n=this.dict.clone(),s=new RefSetCache;s.put(r,n);let o,c=n.getRaw("ParentTree");if(c instanceof Ref)o=i.fetch(c);else{o=c;c=i.getNewTemporaryRef();n.set("ParentTree",c)}o=o.clone();s.put(c,o);let l=o.getRaw("Nums"),h=null;if(l instanceof Ref){h=l;l=i.fetch(h)}l=l.slice();h||o.set("Nums",l);const u=await StructTreeRoot.#le({newAnnotationsByPage:e,structTreeRootRef:r,structTreeRoot:this,kids:null,nums:l,xref:i,pdfManager:t,changes:a,cache:s});if(-1!==u){n.set("ParentTreeNextKey",u);h&&s.put(h,l);for(const[e,t]of s.items())a.put(e,{data:t})}}static async#le({newAnnotationsByPage:e,structTreeRootRef:t,structTreeRoot:a,kids:r,nums:i,xref:n,pdfManager:s,changes:o,cache:c}){const l=Name.get("OBJR");let h,u=-1;for(const[d,f]of e){const e=await s.getPage(d),{ref:g}=e,p=g instanceof Ref;for(const{accessibilityData:s,ref:m,parentTreeId:b,structTreeParent:y}of f){if(!s?.type)continue;const{structParent:f}=s;if(a&&Number.isInteger(f)&&f>=0){let t=(h||=new Map).get(d);if(void 0===t){t=new StructTreePage(a,e.pageDict).collectObjects(g);h.set(d,t)}const r=t?.get(f);if(r){const e=n.fetch(r).clone();StructTreeRoot.#ue(e,s);o.put(r,{data:e});continue}}u=Math.max(u,b);const w=n.getNewTemporaryRef(),x=new Dict(n);StructTreeRoot.#ue(x,s);await this.#de({structTreeParent:y,tagDict:x,newTagRef:w,structTreeRootRef:t,fallbackKids:r,xref:n,cache:c});const S=new Dict(n);x.set("K",S);S.set("Type",l);p&&S.set("Pg",g);S.set("Obj",m);c.put(w,x);i.push(b,w)}}return u+1}static#ue(e,{type:t,title:a,lang:r,alt:i,expanded:n,actualText:s}){e.set("S",Name.get(t));a&&e.set("T",stringToAsciiOrUTF16BE(a));r&&e.set("Lang",stringToAsciiOrUTF16BE(r));i&&e.set("Alt",stringToAsciiOrUTF16BE(i));n&&e.set("E",stringToAsciiOrUTF16BE(n));s&&e.set("ActualText",stringToAsciiOrUTF16BE(s))}static#he({elements:e,xref:t,pageDict:a,numberTree:r}){const i=new Map;for(const t of e)if(t.structTreeParentId){const e=parseInt(t.structTreeParentId.split("_mc")[1],10);let a=i.get(e);if(!a){a=[];i.set(e,a)}a.push(t)}const n=a.get("StructParents");if(!Number.isInteger(n))return;const s=r.get(n),updateElement=(e,a,r)=>{const n=i.get(e);if(n){const e=a.getRaw("P"),i=t.fetchIfRef(e);if(e instanceof Ref&&i instanceof Dict){const e={ref:r,dict:a};for(const t of n)t.structTreeParent=e}return!0}return!1};for(const e of s){if(!(e instanceof Ref))continue;const a=t.fetch(e),r=a.get("K");if(Number.isInteger(r))updateElement(r,a,e);else if(Array.isArray(r))for(let i of r){i=t.fetchIfRef(i);if(Number.isInteger(i)&&updateElement(i,a,e))break;if(!(i instanceof Dict))continue;if(!isName(i.get("Type"),"MCR"))break;const r=i.get("MCID");if(Number.isInteger(r)&&updateElement(r,a,e))break}}}static async#de({structTreeParent:e,tagDict:t,newTagRef:a,structTreeRootRef:r,fallbackKids:i,xref:n,cache:s}){let o,c=null;if(e){({ref:c}=e);o=e.dict.getRaw("P")||r}else o=r;t.set("P",o);const l=n.fetchIfRef(o);if(!l){i.push(a);return}let h=s.get(o);if(!h){h=l.clone();s.put(o,h)}const u=h.getRaw("K");let d=u instanceof Ref?s.get(u):null;if(!d){d=n.fetchIfRef(u);d=Array.isArray(d)?d.slice():[u];const e=n.getNewTemporaryRef();h.set("K",e);s.put(e,d)}const f=d.indexOf(c);d.splice(f>=0?f+1:d.length,0,a)}}class StructElementNode{constructor(e,t){this.tree=e;this.xref=e.xref;this.dict=t;this.kids=[];this.parseKids()}get role(){const e=this.dict.get("S"),t=e instanceof Name?e.name:"",{root:a}=this.tree;return a.roleMap.get(t)??t}parseKids(){let e=null;const t=this.dict.getRaw("Pg");t instanceof Ref&&(e=t.toString());const a=this.dict.get("K");if(Array.isArray(a))for(const t of a){const a=this.parseKid(e,this.xref.fetchIfRef(t));a&&this.kids.push(a)}else{const t=this.parseKid(e,a);t&&this.kids.push(t)}}parseKid(e,t){if(Number.isInteger(t))return this.tree.pageDict.objId!==e?null:new StructElement({type:Tn,mcid:t,pageObjId:e});if(!(t instanceof Dict))return null;const a=t.getRaw("Pg");a instanceof Ref&&(e=a.toString());const r=t.get("Type")instanceof Name?t.get("Type").name:null;if("MCR"===r){if(this.tree.pageDict.objId!==e)return null;const a=t.getRaw("Stm");return new StructElement({type:On,refObjId:a instanceof Ref?a.toString():null,pageObjId:e,mcid:t.get("MCID")})}if("OBJR"===r){if(this.tree.pageDict.objId!==e)return null;const a=t.getRaw("Obj");return new StructElement({type:Mn,refObjId:a instanceof Ref?a.toString():null,pageObjId:e})}return new StructElement({type:Bn,dict:t})}}class StructElement{constructor({type:e,dict:t=null,mcid:a=null,pageObjId:r=null,refObjId:i=null}){this.type=e;this.dict=t;this.mcid=a;this.pageObjId=r;this.refObjId=i;this.parentNode=null}}class StructTreePage{constructor(e,t){this.root=e;this.xref=e?.xref??null;this.rootDict=e?.dict??null;this.pageDict=t;this.nodes=[]}collectObjects(e){if(!(this.root&&this.rootDict&&e instanceof Ref))return null;const t=this.rootDict.get("ParentTree");if(!t)return null;const a=this.root.structParentIds?.get(e);if(!a)return null;const r=new Map,i=new NumberTree(t,this.xref);for(const[e]of a){const t=i.getRaw(e);t instanceof Ref&&r.set(e,t)}return r}parse(e){if(!(this.root&&this.rootDict&&e instanceof Ref))return;const t=this.rootDict.get("ParentTree");if(!t)return;const a=this.pageDict.get("StructParents"),r=this.root.structParentIds?.get(e);if(!Number.isInteger(a)&&!r)return;const i=new Map,n=new NumberTree(t,this.xref);if(Number.isInteger(a)){const e=n.get(a);if(Array.isArray(e))for(const t of e)t instanceof Ref&&this.addNode(this.xref.fetch(t),i)}if(r)for(const[e,t]of r){const a=n.get(e);if(a){const e=this.addNode(this.xref.fetchIfRef(a),i);1===e?.kids?.length&&e.kids[0].type===Mn&&(e.kids[0].type=t)}}}addNode(e,t,a=0){if(a>40){warn("StructTree MAX_DEPTH reached.");return null}if(!(e instanceof Dict))return null;if(t.has(e))return t.get(e);const r=new StructElementNode(this,e);t.set(e,r);const i=e.get("P");if(!(i instanceof Dict)||isName(i.get("Type"),"StructTreeRoot")){this.addTopLevelNode(e,r)||t.delete(e);return r}const n=this.addNode(i,t,a+1);if(!n)return r;let s=!1;for(const t of n.kids)if(t.type===Bn&&t.dict===e){t.parentNode=r;s=!0}s||t.delete(e);return r}addTopLevelNode(e,t){const a=this.rootDict.get("K");if(!a)return!1;if(a instanceof Dict){if(a.objId!==e.objId)return!1;this.nodes[0]=t;return!0}if(!Array.isArray(a))return!0;let r=!1;for(let i=0;i40){warn("StructTree too deep to be fully serialized.");return}const r=Object.create(null);r.role=e.role;r.children=[];t.children.push(r);let i=e.dict.get("Alt");"string"!=typeof i&&(i=e.dict.get("ActualText"));"string"==typeof i&&(r.alt=stringToPDFString(i));const n=e.dict.get("A");if(n instanceof Dict){const e=lookupNormalRect(n.getArray("BBox"),null);if(e)r.bbox=e;else{const e=n.get("Width"),t=n.get("Height");"number"==typeof e&&e>0&&"number"==typeof t&&t>0&&(r.bbox=[0,0,e,t])}}const s=e.dict.get("Lang");"string"==typeof s&&(r.lang=stringToPDFString(s));for(const t of e.kids){const e=t.type===Bn?t.parentNode:null;e?nodeToSerializable(e,r,a+1):t.type===Tn||t.type===On?r.children.push({type:"content",id:`p${t.pageObjId}_mc${t.mcid}`}):t.type===Mn?r.children.push({type:"object",id:t.refObjId}):t.type===Dn&&r.children.push({type:"annotation",id:`pdfjs_internal_id_${t.refObjId}`})}}const e=Object.create(null);e.children=[];e.role="Root";for(const t of this.nodes)t&&nodeToSerializable(t,e);return e}}const Rn=function _isValidExplicitDest(e,t,a){if(!Array.isArray(a)||a.length<2)return!1;const[r,i,...n]=a;if(!e(r)&&!Number.isInteger(r))return!1;if(!t(i))return!1;const s=n.length;let o=!0;switch(i.name){case"XYZ":if(s<2||s>3)return!1;break;case"Fit":case"FitB":return 0===s;case"FitH":case"FitBH":case"FitV":case"FitBV":if(s>1)return!1;break;case"FitR":if(4!==s)return!1;o=!1;break;default:return!1}for(const e of n)if(!("number"==typeof e||o&&null===e))return!1;return!0}.bind(null,e=>e instanceof Ref,isName);function fetchDest(e){e instanceof Dict&&(e=e.get("D"));return Rn(e)?e:null}function fetchRemoteDest(e){let t=e.get("D");if(t){t instanceof Name&&(t=t.name);if("string"==typeof t)return stringToPDFString(t,!0);if(Rn(t))return JSON.stringify(t)}return null}class Catalog{#fe=null;#ge=null;builtInCMapCache=new Map;fontCache=new RefSetCache;globalColorSpaceCache=new GlobalColorSpaceCache;globalImageCache=new GlobalImageCache;nonBlendModesSet=new RefSet;pageDictCache=new RefSetCache;pageIndexCache=new RefSetCache;pageKidsCountCache=new RefSetCache;standardFontDataCache=new Map;systemFontCache=new Map;constructor(e,t){this.pdfManager=e;this.xref=t;this.#ge=t.getCatalogObj();if(!(this.#ge instanceof Dict))throw new FormatError("Catalog object is not a dictionary.");this.toplevelPagesDict}cloneDict(){return this.#ge.clone()}get version(){const e=this.#ge.get("Version");if(e instanceof Name){if(oa.test(e.name))return shadow(this,"version",e.name);warn(`Invalid PDF catalog version: ${e.name}`)}return shadow(this,"version",null)}get lang(){const e=this.#ge.get("Lang");return shadow(this,"lang",e&&"string"==typeof e?stringToPDFString(e):null)}get needsRendering(){const e=this.#ge.get("NeedsRendering");return shadow(this,"needsRendering","boolean"==typeof e&&e)}get collection(){let e=null;try{const t=this.#ge.get("Collection");t instanceof Dict&&t.size>0&&(e=t)}catch(e){if(e instanceof MissingDataException)throw e;info("Cannot fetch Collection entry; assuming no collection is present.")}return shadow(this,"collection",e)}get acroForm(){let e=null;try{const t=this.#ge.get("AcroForm");t instanceof Dict&&t.size>0&&(e=t)}catch(e){if(e instanceof MissingDataException)throw e;info("Cannot fetch AcroForm entry; assuming no forms are present.")}return shadow(this,"acroForm",e)}get acroFormRef(){const e=this.#ge.getRaw("AcroForm");return shadow(this,"acroFormRef",e instanceof Ref?e:null)}get metadata(){const e=this.#ge.getRaw("Metadata");if(!(e instanceof Ref))return shadow(this,"metadata",null);let t=null;try{const a=this.xref.fetch(e,!this.xref.encrypt?.encryptMetadata);if(a instanceof BaseStream&&a.dict instanceof Dict){const e=a.dict.get("Type"),r=a.dict.get("Subtype");if(isName(e,"Metadata")&&isName(r,"XML")){const e=stringToUTF8String(a.getString());e&&(t=new MetadataParser(e).serializable)}}}catch(e){if(e instanceof MissingDataException)throw e;info(`Skipping invalid Metadata: "${e}".`)}return shadow(this,"metadata",t)}get markInfo(){let e=null;try{e=this.#pe()}catch(e){if(e instanceof MissingDataException)throw e;warn("Unable to read mark info.")}return shadow(this,"markInfo",e)}#pe(){const e=this.#ge.get("MarkInfo");if(!(e instanceof Dict))return null;const t={Marked:!1,UserProperties:!1,Suspects:!1};for(const a in t){const r=e.get(a);"boolean"==typeof r&&(t[a]=r)}return t}get structTreeRoot(){let e=null;try{e=this.#me()}catch(e){if(e instanceof MissingDataException)throw e;warn("Unable read to structTreeRoot info.")}return shadow(this,"structTreeRoot",e)}#me(){const e=this.#ge.getRaw("StructTreeRoot"),t=this.xref.fetchIfRef(e);if(!(t instanceof Dict))return null;const a=new StructTreeRoot(this.xref,t,e);a.init();return a}get toplevelPagesDict(){const e=this.#ge.get("Pages");if(!(e instanceof Dict))throw new FormatError("Invalid top-level pages dictionary.");return shadow(this,"toplevelPagesDict",e)}get documentOutline(){let e=null;try{e=this.#be()}catch(e){if(e instanceof MissingDataException)throw e;warn("Unable to read document outline.")}return shadow(this,"documentOutline",e)}#be(){let e=this.#ge.get("Outlines");if(!(e instanceof Dict))return null;e=e.getRaw("First");if(!(e instanceof Ref))return null;const t={items:[]},a=[{obj:e,parent:t}],r=new RefSet;r.put(e);const i=this.xref,n=new Uint8ClampedArray(3);for(;a.length>0;){const t=a.shift(),s=i.fetchIfRef(t.obj);if(null===s)continue;s.has("Title")||warn("Invalid outline item encountered.");const o={url:null,dest:null,action:null};Catalog.parseDestDictionary({destDict:s,resultObj:o,docBaseUrl:this.baseUrl,docAttachments:this.attachments});const c=s.get("Title"),l=s.get("F")||0,h=s.getArray("C"),u=s.get("Count");let d=n;!isNumberArray(h,3)||0===h[0]&&0===h[1]&&0===h[2]||(d=ColorSpaceUtils.rgb.getRgb(h,0));const f={action:o.action,attachment:o.attachment,dest:o.dest,url:o.url,unsafeUrl:o.unsafeUrl,newWindow:o.newWindow,setOCGState:o.setOCGState,title:"string"==typeof c?stringToPDFString(c):"",color:d,count:Number.isInteger(u)?u:void 0,bold:!!(2&l),italic:!!(1&l),items:[]};t.parent.items.push(f);e=s.getRaw("First");if(e instanceof Ref&&!r.has(e)){a.push({obj:e,parent:f});r.put(e)}e=s.getRaw("Next");if(e instanceof Ref&&!r.has(e)){a.push({obj:e,parent:t.parent});r.put(e)}}return t.items.length>0?t.items:null}get permissions(){let e=null;try{e=this.#ye()}catch(e){if(e instanceof MissingDataException)throw e;warn("Unable to read permissions.")}return shadow(this,"permissions",e)}#ye(){const e=this.xref.trailer.get("Encrypt");if(!(e instanceof Dict))return null;let t=e.get("P");if("number"!=typeof t)return null;t+=2**32;const a=[];for(const e in w){const r=w[e];t&r&&a.push(r)}return a}get optionalContentConfig(){let e=null;try{const t=this.#ge.get("OCProperties");if(!t)return shadow(this,"optionalContentConfig",null);const a=t.get("D");if(!a)return shadow(this,"optionalContentConfig",null);const r=t.get("OCGs");if(!Array.isArray(r))return shadow(this,"optionalContentConfig",null);const i=new RefSetCache;for(const e of r)e instanceof Ref&&!i.has(e)&&i.put(e,this.#we(e));e=this.#xe(a,i)}catch(e){if(e instanceof MissingDataException)throw e;warn(`Unable to read optional content config: ${e}`)}return shadow(this,"optionalContentConfig",e)}#we(e){const t=this.xref.fetch(e),a={id:e.toString(),name:null,intent:null,usage:{print:null,view:null},rbGroups:[]},r=t.get("Name");"string"==typeof r&&(a.name=stringToPDFString(r));let i=t.getArray("Intent");Array.isArray(i)||(i=[i]);i.every(e=>e instanceof Name)&&(a.intent=i.map(e=>e.name));const n=t.get("Usage");if(!(n instanceof Dict))return a;const s=a.usage,o=n.get("Print");if(o instanceof Dict){const e=o.get("PrintState");if(e instanceof Name)switch(e.name){case"ON":case"OFF":s.print={printState:e.name}}}const c=n.get("View");if(c instanceof Dict){const e=c.get("ViewState");if(e instanceof Name)switch(e.name){case"ON":case"OFF":s.view={viewState:e.name}}}return a}#xe(e,t){function parseOnOff(e){const a=[];if(Array.isArray(e))for(const r of e)r instanceof Ref&&t.has(r)&&a.push(r.toString());return a}function parseOrder(e,a=0){if(!Array.isArray(e))return null;const i=[];for(const n of e){if(n instanceof Ref&&t.has(n)){r.put(n);i.push(n.toString());continue}const e=parseNestedOrder(n,a);e&&i.push(e)}if(a>0)return i;const n=[];for(const[e]of t.items())r.has(e)||n.push(e.toString());n.length&&i.push({name:null,order:n});return i}function parseNestedOrder(e,t){if(++t>i){warn("parseNestedOrder - reached MAX_NESTED_LEVELS.");return null}const r=a.fetchIfRef(e);if(!Array.isArray(r))return null;const n=a.fetchIfRef(r[0]);if("string"!=typeof n)return null;const s=parseOrder(r.slice(1),t);return s?.length?{name:stringToPDFString(n),order:s}:null}const a=this.xref,r=new RefSet,i=10;!function parseRBGroups(e){if(Array.isArray(e))for(const r of e){const e=a.fetchIfRef(r);if(!Array.isArray(e)||!e.length)continue;const i=new Set;for(const a of e)if(a instanceof Ref&&t.has(a)&&!i.has(a.toString())){i.add(a.toString());t.get(a).rbGroups.push(i)}}}(e.get("RBGroups"));return{name:"string"==typeof e.get("Name")?stringToPDFString(e.get("Name")):null,creator:"string"==typeof e.get("Creator")?stringToPDFString(e.get("Creator")):null,baseState:e.get("BaseState")instanceof Name?e.get("BaseState").name:null,on:parseOnOff(e.get("ON")),off:parseOnOff(e.get("OFF")),order:parseOrder(e.get("Order")),groups:[...t]}}setActualNumPages(e=null){this.#fe=e}get hasActualNumPages(){return null!==this.#fe}get _pagesCount(){const e=this.toplevelPagesDict.get("Count");if(!Number.isInteger(e))throw new FormatError("Page count in top-level pages dictionary is not an integer.");return shadow(this,"_pagesCount",e)}get numPages(){return this.#fe??this._pagesCount}get destinations(){const e=this.#Se(),t=Object.create(null);for(const a of e)if(a instanceof NameTree)for(const[e,r]of a.getAll()){const a=fetchDest(r);a&&(t[stringToPDFString(e,!0)]=a)}else if(a instanceof Dict)for(const[e,r]of a){const a=fetchDest(r);a&&(t[stringToPDFString(e,!0)]||=a)}return shadow(this,"destinations",t)}getDestination(e){if(this.hasOwnProperty("destinations"))return this.destinations[e]??null;const t=this.#Se();for(const a of t)if(a instanceof NameTree||a instanceof Dict){const t=fetchDest(a.get(e));if(t)return t}if(t.length){const t=this.destinations[e];if(t)return t}return null}#Se(){const e=this.#ge.get("Names"),t=[];e?.has("Dests")&&t.push(new NameTree(e.getRaw("Dests"),this.xref));this.#ge.has("Dests")&&t.push(this.#ge.get("Dests"));return t}get pageLabels(){let e=null;try{e=this.#Ae()}catch(e){if(e instanceof MissingDataException)throw e;warn("Unable to read page labels.")}return shadow(this,"pageLabels",e)}#Ae(){const e=this.#ge.getRaw("PageLabels");if(!e)return null;const t=new Array(this.numPages);let a=null,r="";const i=new NumberTree(e,this.xref).getAll();let n="",s=1;for(let e=0,o=this.numPages;e=1))throw new FormatError("Invalid start in PageLabel dictionary.");s=e}else s=1}switch(a){case"D":n=s;break;case"R":case"r":n=toRomanNumerals(s,"r"===a);break;case"A":case"a":const e=26,t="a"===a?97:65,r=s-1;n=String.fromCharCode(t+r%e).repeat(Math.floor(r/e)+1);break;default:if(a)throw new FormatError(`Invalid style "${a}" in PageLabel dictionary.`);n=""}t[e]=r+n;s++}return t}get pageLayout(){const e=this.#ge.get("PageLayout");let t="";if(e instanceof Name)switch(e.name){case"SinglePage":case"OneColumn":case"TwoColumnLeft":case"TwoColumnRight":case"TwoPageLeft":case"TwoPageRight":t=e.name}return shadow(this,"pageLayout",t)}get pageMode(){const e=this.#ge.get("PageMode");let t="UseNone";if(e instanceof Name)switch(e.name){case"UseNone":case"UseOutlines":case"UseThumbs":case"FullScreen":case"UseOC":case"UseAttachments":t=e.name}return shadow(this,"pageMode",t)}get viewerPreferences(){const e=this.#ge.get("ViewerPreferences");if(!(e instanceof Dict))return shadow(this,"viewerPreferences",null);let t=null;for(const[a,r]of e){let e;switch(a){case"HideToolbar":case"HideMenubar":case"HideWindowUI":case"FitWindow":case"CenterWindow":case"DisplayDocTitle":case"PickTrayByPDFSize":"boolean"==typeof r&&(e=r);break;case"NonFullScreenPageMode":if(r instanceof Name)switch(r.name){case"UseNone":case"UseOutlines":case"UseThumbs":case"UseOC":e=r.name;break;default:e="UseNone"}break;case"Direction":if(r instanceof Name)switch(r.name){case"L2R":case"R2L":e=r.name;break;default:e="L2R"}break;case"ViewArea":case"ViewClip":case"PrintArea":case"PrintClip":if(r instanceof Name)switch(r.name){case"MediaBox":case"CropBox":case"BleedBox":case"TrimBox":case"ArtBox":e=r.name;break;default:e="CropBox"}break;case"PrintScaling":if(r instanceof Name)switch(r.name){case"None":case"AppDefault":e=r.name;break;default:e="AppDefault"}break;case"Duplex":if(r instanceof Name)switch(r.name){case"Simplex":case"DuplexFlipShortEdge":case"DuplexFlipLongEdge":e=r.name;break;default:e="None"}break;case"PrintPageRange":if(Array.isArray(r)&&r.length%2==0){r.every((e,t,a)=>Number.isInteger(e)&&e>0&&(0===t||e>=a[t-1])&&e<=this.numPages)&&(e=r)}break;case"NumCopies":Number.isInteger(r)&&r>0&&(e=r);break;default:warn(`Ignoring non-standard key in ViewerPreferences: ${a}.`);continue}if(void 0!==e){t??=Object.create(null);t[a]=e}else warn(`Bad value, for key "${a}", in ViewerPreferences: ${r}.`)}return shadow(this,"viewerPreferences",t)}get openAction(){const e=this.#ge.get("OpenAction"),t=Object.create(null);if(e instanceof Dict){const a=new Dict(this.xref);a.set("A",e);const r={url:null,dest:null,action:null};Catalog.parseDestDictionary({destDict:a,resultObj:r});Array.isArray(r.dest)?t.dest=r.dest:r.action&&(t.action=r.action)}else Rn(e)&&(t.dest=e);return shadow(this,"openAction",objectSize(t)>0?t:null)}get attachments(){const e=this.#ge.get("Names");let t=null;if(e instanceof Dict&&e.has("EmbeddedFiles")){const a=new NameTree(e.getRaw("EmbeddedFiles"),this.xref);for(const[e,r]of a.getAll()){const a=new FileSpec(r,this.xref);t??=Object.create(null);t[stringToPDFString(e,!0)]=a.serializable}}return shadow(this,"attachments",t)}get xfaImages(){const e=this.#ge.get("Names");let t=null;if(e instanceof Dict&&e.has("XFAImages")){const a=new NameTree(e.getRaw("XFAImages"),this.xref);for(const[e,r]of a.getAll())if(r instanceof BaseStream){t??=new Map;t.set(stringToPDFString(e,!0),r.getBytes())}}return shadow(this,"xfaImages",t)}#ke(){const e=this.#ge.get("Names");let t=null;function appendIfJavaScriptDict(e,a){if(!(a instanceof Dict))return;if(!isName(a.get("S"),"JavaScript"))return;let r=a.get("JS");if(r instanceof BaseStream)r=r.getString();else if("string"!=typeof r)return;r=stringToPDFString(r,!0).replaceAll("\0","");r&&(t||=new Map).set(e,r)}if(e instanceof Dict&&e.has("JavaScript")){const t=new NameTree(e.getRaw("JavaScript"),this.xref);for(const[e,a]of t.getAll())appendIfJavaScriptDict(stringToPDFString(e,!0),a)}const a=this.#ge.get("OpenAction");a&&appendIfJavaScriptDict("OpenAction",a);return t}get jsActions(){const e=this.#ke();let t=collectActions(this.xref,this.#ge,ae);if(e){t||=Object.create(null);for(const[a,r]of e)a in t?t[a].push(r):t[a]=[r]}return shadow(this,"jsActions",t)}async cleanup(e=!1){clearGlobalCaches();this.globalColorSpaceCache.clear();this.globalImageCache.clear(e);this.pageKidsCountCache.clear();this.pageIndexCache.clear();this.pageDictCache.clear();this.nonBlendModesSet.clear();for(const{dict:e}of await Promise.all(this.fontCache))delete e.cacheKey;this.fontCache.clear();this.builtInCMapCache.clear();this.standardFontDataCache.clear();this.systemFontCache.clear()}async getPageDict(e){const t=[this.toplevelPagesDict],a=new RefSet,r=this.#ge.getRaw("Pages");r instanceof Ref&&a.put(r);const i=this.xref,n=this.pageKidsCountCache,s=this.pageIndexCache,o=this.pageDictCache;let c=0;for(;t.length;){const r=t.pop();if(r instanceof Ref){const l=n.get(r);if(l>=0&&c+l<=e){c+=l;continue}if(a.has(r))throw new FormatError("Pages tree contains circular reference.");a.put(r);const h=await(o.get(r)||i.fetchAsync(r));if(h instanceof Dict){let t=h.getRaw("Type");t instanceof Ref&&(t=await i.fetchAsync(t));if(isName(t,"Page")||!h.has("Kids")){n.has(r)||n.put(r,1);s.has(r)||s.put(r,c);if(c===e)return[h,r];c++;continue}}t.push(h);continue}if(!(r instanceof Dict))throw new FormatError("Page dictionary kid reference points to wrong type of object.");const{objId:l}=r;let h=r.getRaw("Count");h instanceof Ref&&(h=await i.fetchAsync(h));if(Number.isInteger(h)&&h>=0){l&&!n.has(l)&&n.put(l,h);if(c+h<=e){c+=h;continue}}let u=r.getRaw("Kids");u instanceof Ref&&(u=await i.fetchAsync(u));if(!Array.isArray(u)){let t=r.getRaw("Type");t instanceof Ref&&(t=await i.fetchAsync(t));if(isName(t,"Page")||!r.has("Kids")){if(c===e)return[r,null];c++;continue}throw new FormatError("Page dictionary kids object is not an array.")}for(let e=u.length-1;e>=0;e--){const a=u[e];t.push(a);r===this.toplevelPagesDict&&a instanceof Ref&&!o.has(a)&&o.put(a,i.fetchAsync(a))}}throw new Error(`Page index ${e} not found.`)}async getAllPageDicts(e=!1){const{ignoreErrors:t}=this.pdfManager.evaluatorOptions,a=[{currentNode:this.toplevelPagesDict,posInKids:0}],r=new RefSet,i=this.#ge.getRaw("Pages");i instanceof Ref&&r.put(i);const n=new Map,s=this.xref,o=this.pageIndexCache;let c=0;function addPageDict(e,t){t&&!o.has(t)&&o.put(t,c);n.set(c++,[e,t])}function addPageError(a){if(a instanceof XRefEntryException&&!e)throw a;if(e&&t&&0===c){warn(`getAllPageDicts - Skipping invalid first page: "${a}".`);a=Dict.empty}n.set(c++,[a,null])}for(;a.length>0;){const e=a.at(-1),{currentNode:t,posInKids:i}=e;let n=t.getRaw("Kids");if(n instanceof Ref)try{n=await s.fetchAsync(n)}catch(e){addPageError(e);break}if(!Array.isArray(n)){addPageError(new FormatError("Page dictionary kids object is not an array."));break}if(i>=n.length){a.pop();continue}const o=n[i];let c;if(o instanceof Ref){if(r.has(o)){addPageError(new FormatError("Pages tree contains circular reference."));break}r.put(o);try{c=await s.fetchAsync(o)}catch(e){addPageError(e);break}}else c=o;if(!(c instanceof Dict)){addPageError(new FormatError("Page dictionary kid reference points to wrong type of object."));break}let l=c.getRaw("Type");if(l instanceof Ref)try{l=await s.fetchAsync(l)}catch(e){addPageError(e);break}isName(l,"Page")||!c.has("Kids")?addPageDict(c,o instanceof Ref?o:null):a.push({currentNode:c,posInKids:0});e.posInKids++}return n}getPageIndex(e){const t=this.pageIndexCache.get(e);if(void 0!==t)return Promise.resolve(t);const a=this.xref;let r=0;const next=t=>function pagesBeforeRef(t){let r,i=0;return a.fetchAsync(t).then(function(a){if(isRefsEqual(t,e)&&!isDict(a,"Page")&&!(a instanceof Dict&&!a.has("Type")&&a.has("Contents")))throw new FormatError("The reference does not point to a /Page dictionary.");if(!a)return null;if(!(a instanceof Dict))throw new FormatError("Node must be a dictionary.");r=a.getRaw("Parent");return a.getAsync("Parent")}).then(function(e){if(!e)return null;if(!(e instanceof Dict))throw new FormatError("Parent must be a dictionary.");return e.getAsync("Kids")}).then(function(e){if(!e)return null;const n=[];let s=!1;for(const r of e){if(!(r instanceof Ref))throw new FormatError("Kid must be a reference.");if(isRefsEqual(r,t)){s=!0;break}n.push(a.fetchAsync(r).then(function(e){if(!(e instanceof Dict))throw new FormatError("Kid node must be a dictionary.");e.has("Count")?i+=e.get("Count"):i++}))}if(!s)throw new FormatError("Kid reference not found in parent's kids.");return Promise.all(n).then(()=>[i,r])})}(t).then(t=>{if(!t){this.pageIndexCache.put(e,r);return r}const[a,i]=t;r+=a;return next(i)});return next(e)}get baseUrl(){const e=this.#ge.get("URI");if(e instanceof Dict){const t=e.get("Base");if("string"==typeof t){const e=createValidAbsoluteUrl(t,null,{tryConvertEncoding:!0});if(e)return shadow(this,"baseUrl",e.href)}}return shadow(this,"baseUrl",this.pdfManager.docBaseUrl)}static parseDestDictionary({destDict:e,resultObj:t,docBaseUrl:a=null,docAttachments:r=null}){if(!(e instanceof Dict)){warn("parseDestDictionary: `destDict` must be a dictionary.");return}let i,n,s=e.get("A");if(!(s instanceof Dict))if(e.has("Dest"))s=e.get("Dest");else{s=e.get("AA");s instanceof Dict&&(s.has("D")?s=s.get("D"):s.has("U")&&(s=s.get("U")))}if(s instanceof Dict){const e=s.get("S");if(!(e instanceof Name)){warn("parseDestDictionary: Invalid type in Action dictionary.");return}const a=e.name;switch(a){case"ResetForm":const e=s.get("Flags"),o=!(1&("number"==typeof e?e:0)),c=[],l=[];for(const e of s.get("Fields")||[])e instanceof Ref?l.push(e.toString()):"string"==typeof e&&c.push(stringToPDFString(e));t.resetForm={fields:c,refs:l,include:o};break;case"URI":i=s.get("URI");i instanceof Name&&(i="/"+i.name);break;case"GoTo":n=s.get("D");break;case"Launch":case"GoToR":const h=s.get("F");if(h instanceof Dict){const e=new FileSpec(h,null,!0),{rawFilename:t}=e.serializable;i=t}else"string"==typeof h&&(i=h);const u=fetchRemoteDest(s);u&&"string"==typeof i&&(i=i.split("#",1)[0]+"#"+u);const d=s.get("NewWindow");"boolean"==typeof d&&(t.newWindow=d);break;case"GoToE":const f=s.get("T");let g;if(r&&f instanceof Dict){const e=f.get("R"),t=f.get("N");isName(e,"C")&&"string"==typeof t&&(g=r[stringToPDFString(t,!0)])}if(g){t.attachment=g;const e=fetchRemoteDest(s);e&&(t.attachmentDest=e)}else warn('parseDestDictionary - unimplemented "GoToE" action.');break;case"Named":const p=s.get("N");p instanceof Name&&(t.action=p.name);break;case"SetOCGState":const m=s.get("State"),b=s.get("PreserveRB");if(!Array.isArray(m)||0===m.length)break;const y=[];for(const e of m)if(e instanceof Name)switch(e.name){case"ON":case"OFF":case"Toggle":y.push(e.name)}else e instanceof Ref&&y.push(e.toString());if(y.length!==m.length)break;t.setOCGState={state:y,preserveRB:"boolean"!=typeof b||b};break;case"JavaScript":const w=s.get("JS");let x;w instanceof BaseStream?x=w.getString():"string"==typeof w&&(x=w);const S=x&&recoverJsURL(stringToPDFString(x,!0));if(S){i=S.url;t.newWindow=S.newWindow;break}default:if("JavaScript"===a||"SubmitForm"===a)break;warn(`parseDestDictionary - unsupported action: "${a}".`)}}else e.has("Dest")&&(n=e.get("Dest"));if("string"==typeof i){const e=createValidAbsoluteUrl(i,a,{addDefaultProtocol:!0,tryConvertEncoding:!0});e&&(t.url=e.href);t.unsafeUrl=i}if(n){n instanceof Name&&(n=n.name);"string"==typeof n?t.dest=stringToPDFString(n,!0):Rn(n)&&(t.dest=n)}}}function mayHaveChildren(e){return e instanceof Ref||e instanceof Dict||e instanceof BaseStream||Array.isArray(e)}function addChildren(e,t){if(e instanceof Dict)e=e.getRawValues();else if(e instanceof BaseStream)e=e.dict.getRawValues();else if(!Array.isArray(e))return;for(const a of e)mayHaveChildren(a)&&t.push(a)}class ObjectLoader{refSet=new RefSet;constructor(e,t,a){this.dict=e;this.keys=t;this.xref=a}async load(){const{keys:e,dict:t}=this,a=[];for(const r of e){const e=t.getRaw(r);void 0!==e&&a.push(e)}await this.#Ce(a);this.refSet=null}async#Ce(e){const t=[],a=[];for(;e.length;){let r=e.pop();if(r instanceof Ref){if(this.refSet.has(r))continue;try{this.refSet.put(r);r=this.xref.fetch(r)}catch(e){if(!(e instanceof MissingDataException)){warn(`ObjectLoader.#walk - requesting all data: "${e}".`);await this.xref.stream.manager.requestAllChunks();return}t.push(r);a.push({begin:e.begin,end:e.end})}}if(r instanceof BaseStream){const e=r.getBaseStreams();if(e){let i=!1;for(const t of e)if(!t.isDataLoaded){i=!0;a.push({begin:t.start,end:t.end})}i&&t.push(r)}}addChildren(r,e)}if(a.length){await this.xref.stream.manager.requestRanges(a);for(const e of t)e instanceof Ref&&this.refSet.remove(e);await this.#Ce(t)}}static async load(e,t,a){if(a.stream.isDataLoaded)return;const r=new ObjectLoader(e,t,a);await r.load()}}const Nn=Symbol(),En=Symbol(),Pn=Symbol(),Ln=Symbol(),_n=Symbol(),jn=Symbol(),Un=Symbol(),Xn=Symbol(),qn=Symbol(),Hn=Symbol("content"),Wn=Symbol("data"),zn=Symbol(),$n=Symbol("extra"),Gn=Symbol(),Vn=Symbol(),Kn=Symbol(),Jn=Symbol(),Yn=Symbol(),Zn=Symbol(),Qn=Symbol(),es=Symbol(),ts=Symbol(),as=Symbol(),rs=Symbol(),is=Symbol(),ns=Symbol(),ss=Symbol(),os=Symbol(),cs=Symbol(),ls=Symbol(),hs=Symbol(),us=Symbol(),ds=Symbol(),fs=Symbol(),gs=Symbol(),ps=Symbol(),ms=Symbol(),bs=Symbol(),ys=Symbol(),ws=Symbol(),xs=Symbol(),Ss=Symbol(),As=Symbol(),ks=Symbol(),Cs=Symbol(),vs=Symbol("namespaceId"),Fs=Symbol("nodeName"),Is=Symbol(),Ts=Symbol(),Os=Symbol(),Ms=Symbol(),Ds=Symbol(),Bs=Symbol(),Rs=Symbol(),Ns=Symbol(),Es=Symbol("root"),Ls=Symbol(),_s=Symbol(),js=Symbol(),Us=Symbol(),Xs=Symbol(),qs=Symbol(),Hs=Symbol(),Ws=Symbol(),zs=Symbol(),$s=Symbol(),Gs=Symbol(),Vs=Symbol("uid"),Ks=Symbol(),Js={config:{id:0,check:e=>e.startsWith("http://www.xfa.org/schema/xci/")},connectionSet:{id:1,check:e=>e.startsWith("http://www.xfa.org/schema/xfa-connection-set/")},datasets:{id:2,check:e=>e.startsWith("http://www.xfa.org/schema/xfa-data/")},form:{id:3,check:e=>e.startsWith("http://www.xfa.org/schema/xfa-form/")},localeSet:{id:4,check:e=>e.startsWith("http://www.xfa.org/schema/xfa-locale-set/")},pdf:{id:5,check:e=>"http://ns.adobe.com/xdp/pdf/"===e},signature:{id:6,check:e=>"http://www.w3.org/2000/09/xmldsig#"===e},sourceSet:{id:7,check:e=>e.startsWith("http://www.xfa.org/schema/xfa-source-set/")},stylesheet:{id:8,check:e=>"http://www.w3.org/1999/XSL/Transform"===e},template:{id:9,check:e=>e.startsWith("http://www.xfa.org/schema/xfa-template/")},xdc:{id:10,check:e=>e.startsWith("http://www.xfa.org/schema/xdc/")},xdp:{id:11,check:e=>"http://ns.adobe.com/xdp/"===e},xfdf:{id:12,check:e=>"http://ns.adobe.com/xfdf/"===e},xhtml:{id:13,check:e=>"http://www.w3.org/1999/xhtml"===e},xmpmeta:{id:14,check:e=>"http://ns.adobe.com/xmpmeta/"===e}},Ys={pt:e=>e,cm:e=>e/2.54*72,mm:e=>e/25.4*72,in:e=>72*e,px:e=>e},Zs=/([+-]?\d+\.?\d*)(.*)/;function stripQuotes(e){return e.startsWith("'")||e.startsWith('"')?e.slice(1,-1):e}function getInteger({data:e,defaultValue:t,validate:a}){if(!e)return t;e=e.trim();const r=parseInt(e,10);return!isNaN(r)&&a(r)?r:t}function getFloat({data:e,defaultValue:t,validate:a}){if(!e)return t;e=e.trim();const r=parseFloat(e);return!isNaN(r)&&a(r)?r:t}function getKeyword({data:e,defaultValue:t,validate:a}){return e&&a(e=e.trim())?e:t}function getStringOption(e,t){return getKeyword({data:e,defaultValue:t[0],validate:e=>t.includes(e)})}function getMeasurement(e,t="0"){t||="0";if(!e)return getMeasurement(t);const a=e.trim().match(Zs);if(!a)return getMeasurement(t);const[,r,i]=a,n=parseFloat(r);if(isNaN(n))return getMeasurement(t);if(0===n)return 0;const s=Ys[i];return s?s(n):n}function getRatio(e){if(!e)return{num:1,den:1};const t=e.split(":",2).map(e=>parseFloat(e.trim())).filter(e=>!isNaN(e));1===t.length&&t.push(1);if(0===t.length)return{num:1,den:1};const[a,r]=t;return{num:a,den:r}}function getRelevant(e){return e?e.trim().split(/\s+/).map(e=>({excluded:"-"===e[0],viewname:e.substring(1)})):[]}class HTMLResult{static get FAILURE(){return shadow(this,"FAILURE",new HTMLResult(!1,null,null,null))}static get EMPTY(){return shadow(this,"EMPTY",new HTMLResult(!0,null,null,null))}constructor(e,t,a,r){this.success=e;this.html=t;this.bbox=a;this.breakNode=r}isBreak(){return!!this.breakNode}static breakNode(e){return new HTMLResult(!1,null,null,e)}static success(e,t=null){return new HTMLResult(!0,e,t,null)}}class FontFinder{constructor(e){this.fonts=new Map;this.cache=new Map;this.warned=new Set;this.defaultFont=null;this.add(e)}add(e,t=null){for(const t of e)this.addPdfFont(t);for(const e of this.fonts.values())e.regular||(e.regular=e.italic||e.bold||e.bolditalic);if(!t||0===t.size)return;const a=this.fonts.get("PdfJS-Fallback-PdfJS-XFA");for(const e of t)this.fonts.set(e,a)}addPdfFont(e){const t=e.cssFontInfo,a=t.fontFamily;let r=this.fonts.get(a);if(!r){r=Object.create(null);this.fonts.set(a,r);this.defaultFont||(this.defaultFont=r)}let i="";const n=parseFloat(t.fontWeight);0!==parseFloat(t.italicAngle)?i=n>=700?"bolditalic":"italic":n>=700&&(i="bold");if(!i){(e.name.includes("Bold")||e.psName?.includes("Bold"))&&(i="bold");(e.name.includes("Italic")||e.name.endsWith("It")||e.psName?.includes("Italic")||e.psName?.endsWith("It"))&&(i+="italic")}i||(i="regular");r[i]=e}getDefault(){return this.defaultFont}find(e,t=!0){let a=this.fonts.get(e)||this.cache.get(e);if(a)return a;const r=/,|-|_| |bolditalic|bold|italic|regular|it/gi;let i=e.replaceAll(r,"");a=this.fonts.get(i);if(a){this.cache.set(e,a);return a}i=i.toLowerCase();const n=[];for(const[e,t]of this.fonts.entries())e.replaceAll(r,"").toLowerCase().startsWith(i)&&n.push(t);if(0===n.length)for(const[,e]of this.fonts.entries())e.regular.name?.replaceAll(r,"").toLowerCase().startsWith(i)&&n.push(e);if(0===n.length){i=i.replaceAll(/psmt|mt/gi,"");for(const[e,t]of this.fonts.entries())e.replaceAll(r,"").toLowerCase().startsWith(i)&&n.push(t)}if(0===n.length)for(const e of this.fonts.values())e.regular.name?.replaceAll(r,"").toLowerCase().startsWith(i)&&n.push(e);if(n.length>=1){1!==n.length&&t&&warn(`XFA - Too many choices to guess the correct font: ${e}`);this.cache.set(e,n[0]);return n[0]}if(t&&!this.warned.has(e)){this.warned.add(e);warn(`XFA - Cannot find the font: ${e}`)}return null}}function selectFont(e,t){return"italic"===e.posture?"bold"===e.weight?t.bolditalic:t.italic:"bold"===e.weight?t.bold:t.regular}class text_FontInfo{constructor(e,t,a,r){this.lineHeight=a;this.paraMargin=t||{top:0,bottom:0,left:0,right:0};if(!e){[this.pdfFont,this.xfaFont]=this.defaultFont(r);return}this.xfaFont={typeface:e.typeface,posture:e.posture,weight:e.weight,size:e.size,letterSpacing:e.letterSpacing};const i=r.find(e.typeface);if(i){this.pdfFont=selectFont(e,i);this.pdfFont||([this.pdfFont,this.xfaFont]=this.defaultFont(r))}else[this.pdfFont,this.xfaFont]=this.defaultFont(r)}defaultFont(e){const t=e.find("Helvetica",!1)||e.find("Myriad Pro",!1)||e.find("Arial",!1)||e.getDefault();if(t?.regular){const e=t.regular;return[e,{typeface:e.cssFontInfo.fontFamily,posture:"normal",weight:"normal",size:10,letterSpacing:0}]}return[null,{typeface:"Courier",posture:"normal",weight:"normal",size:10,letterSpacing:0}]}}class FontSelector{constructor(e,t,a,r){this.fontFinder=r;this.stack=[new text_FontInfo(e,t,a,r)]}pushData(e,t,a){const r=this.stack.at(-1);for(const t of["typeface","posture","weight","size","letterSpacing"])e[t]||(e[t]=r.xfaFont[t]);for(const e of["top","bottom","left","right"])isNaN(t[e])&&(t[e]=r.paraMargin[e]);const i=new text_FontInfo(e,t,a||r.lineHeight,this.fontFinder);i.pdfFont||(i.pdfFont=r.pdfFont);this.stack.push(i)}popFont(){this.stack.pop()}topFont(){return this.stack.at(-1)}}class TextMeasure{constructor(e,t,a,r){this.glyphs=[];this.fontSelector=new FontSelector(e,t,a,r);this.extraHeight=0}pushData(e,t,a){this.fontSelector.pushData(e,t,a)}popFont(e){return this.fontSelector.popFont()}addPara(){const e=this.fontSelector.topFont();this.extraHeight+=e.paraMargin.top+e.paraMargin.bottom}addString(e){if(!e)return;const t=this.fontSelector.topFont(),a=t.xfaFont.size;if(t.pdfFont){const r=t.xfaFont.letterSpacing,i=t.pdfFont,n=i.lineHeight||1.2,s=t.lineHeight||Math.max(1.2,n)*a,o=n-(void 0===i.lineGap?.2:i.lineGap),c=Math.max(1,o)*a,l=a/1e3,h=i.defaultWidth||i.charsToGlyphs(" ")[0].width;for(const t of e.split(/[\u2029\n]/)){const e=i.encodeString(t).join(""),a=i.charsToGlyphs(e);for(const e of a){const t=e.width||h;this.glyphs.push([t*l+r,s,c,e.unicode,!1])}this.glyphs.push([0,0,0,"\n",!0])}this.glyphs.pop();return}for(const t of e.split(/[\u2029\n]/)){for(const e of t.split(""))this.glyphs.push([a,1.2*a,a,e,!1]);this.glyphs.push([0,0,0,"\n",!0])}this.glyphs.pop()}compute(e){let t=-1,a=0,r=0,i=0,n=0,s=0,o=!1,c=!0;for(let l=0,h=this.glyphs.length;le){r=Math.max(r,n);n=0;i+=s;s=m;t=-1;a=0;o=!0;c=!1}else{s=Math.max(m,s);a=n;n+=h;t=l}else if(n+h>e){i+=s;s=m;if(-1!==t){l=t;r=Math.max(r,a);n=0;t=-1;a=0}else{r=Math.max(r,n);n=h}o=!0;c=!1}else{n+=h;s=Math.max(m,s)}}r=Math.max(r,n);i+=s+this.extraHeight;return{width:1.02*r,height:i,isBroken:o}}}const Qs=/^[^.[]+/,eo=/^[^\]]+/,to=0,ao=1,ro=2,io=3,no=4,so=new Map([["$data",(e,t)=>e.datasets?e.datasets.data:e],["$record",(e,t)=>(e.datasets?e.datasets.data:e)[is]()[0]],["$template",(e,t)=>e.template],["$connectionSet",(e,t)=>e.connectionSet],["$form",(e,t)=>e.form],["$layout",(e,t)=>e.layout],["$host",(e,t)=>e.host],["$dataWindow",(e,t)=>e.dataWindow],["$event",(e,t)=>e.event],["!",(e,t)=>e.datasets],["$xfa",(e,t)=>e],["xfa",(e,t)=>e],["$",(e,t)=>t]]),oo=new WeakMap;function parseIndex(e){return"*"===(e=e.trim())?1/0:parseInt(e,10)||0}function parseExpression(e,t,a=!0){let r=e.match(Qs);if(!r)return null;let[i]=r;const n=[{name:i,cacheName:"."+i,index:0,js:null,formCalc:null,operator:to}];let s=i.length;for(;s0&&h.push(e)}if(0===h.length&&!o&&0===c){const a=t[cs]();if(!(t=a))return null;c=-1;e=[t];continue}e=isFinite(l)?h.filter(e=>le[l]):h.flat()}return 0===e.length?null:e}function createDataNode(e,t,a){const r=parseExpression(a);if(!r)return null;if(r.some(e=>e.operator===ao))return null;const i=so.get(r[0].name);let n=0;if(i){e=i(e,t);n=1}else e=t||e;for(let t=r.length;ne[Hs]()).join("")}get[ho](){const e=Object.getPrototypeOf(this);if(!e._attributes){const t=e._attributes=new Set;for(const e of Object.getOwnPropertyNames(this)){if(null===this[e]||this[e]instanceof XFAObject||this[e]instanceof XFAObjectArray)break;t.add(e)}}return shadow(this,ho,e._attributes)}[ys](e){let t=this;for(;t;){if(t===e)return!0;t=t[cs]()}return!1}[cs](){return this[Ao]}[os](){return this[cs]()}[is](e=null){return e?this[e]:this[uo]}[zn](){const e=Object.create(null);this[Hn]&&(e.$content=this[Hn]);for(const t of Object.getOwnPropertyNames(this)){const a=this[t];null!==a&&(a instanceof XFAObject?e[t]=a[zn]():a instanceof XFAObjectArray?a.isEmpty()||(e[t]=a.dump()):e[t]=a)}return e}[Gs](){return null}[zs](){return HTMLResult.EMPTY}*[ns](){for(const e of this[is]())yield e}*[mo](e,t){for(const a of this[ns]())if(!e||t===e.has(a[Fs])){const e=this[Yn](),t=a[zs](e);t.success||(this[$n].failingNode=a);yield t}}[Vn](){return null}[En](e,t){this[$n].children.push(e)}[Yn](){}[Ln]({filter:e=null,include:t=!0}){if(this[$n].generator){const e=this[Yn](),t=this[$n].failingNode[zs](e);if(!t.success)return t;t.html&&this[En](t.html,t.bbox);delete this[$n].failingNode}else this[$n].generator=this[mo](e,t);for(;;){const e=this[$n].generator.next();if(e.done)break;const t=e.value;if(!t.success)return t;t.html&&this[En](t.html,t.bbox)}this[$n].generator=null;return HTMLResult.EMPTY}[Us](e){this[Co]=new Set(Object.keys(e))}[yo](e){const t=this[ho],a=this[Co];return[...e].filter(e=>t.has(e)&&!a.has(e))}[Ls](e,t=new Set){for(const a of this[uo])a[ko](e,t)}[ko](e,t){const a=this[bo](e,t);a?this[co](a,e,t):this[Ls](e,t)}[bo](e,t){const{use:a,usehref:r}=this;if(!a&&!r)return null;let i=null,n=null,s=null,o=a;if(r){o=r;r.startsWith("#som(")&&r.endsWith(")")?n=r.slice(5,-1):r.startsWith(".#som(")&&r.endsWith(")")?n=r.slice(6,-1):r.startsWith("#")?s=r.slice(1):r.startsWith(".#")&&(s=r.slice(2))}else a.startsWith("#")?s=a.slice(1):n=a;this.use=this.usehref="";if(s)i=e.get(s);else{i=searchNode(e.get(Es),this,n,!0,!1);i&&(i=i[0])}if(!i){warn(`XFA - Invalid prototype reference: ${o}.`);return null}if(i[Fs]!==this[Fs]){warn(`XFA - Incompatible prototype: ${i[Fs]} !== ${this[Fs]}.`);return null}if(t.has(i)){warn("XFA - Cycle detected in prototypes use.");return null}t.add(i);const c=i[bo](e,t);c&&i[co](c,e,t);i[Ls](e,t);t.delete(i);return i}[co](e,t,a){if(a.has(e)){warn("XFA - Cycle detected in prototypes use.");return}!this[Hn]&&e[Hn]&&(this[Hn]=e[Hn]);new Set(a).add(e);for(const t of this[yo](e[Co])){this[t]=e[t];this[Co]&&this[Co].add(t)}for(const r of Object.getOwnPropertyNames(this)){if(this[ho].has(r))continue;const i=this[r],n=e[r];if(i instanceof XFAObjectArray){for(const e of i[uo])e[ko](t,a);for(let r=i[uo].length,s=n[uo].length;rXFAObject[fo](e)):"object"==typeof e&&null!==e?Object.assign({},e):e}[Xn](){const e=Object.create(Object.getPrototypeOf(this));for(const t of Object.getOwnPropertySymbols(this))try{e[t]=this[t]}catch{shadow(e,t,this[t])}e[Vs]=`${e[Fs]}${Fo++}`;e[uo]=[];for(const t of Object.getOwnPropertyNames(this)){if(this[ho].has(t)){e[t]=XFAObject[fo](this[t]);continue}const a=this[t];e[t]=a instanceof XFAObjectArray?new XFAObjectArray(a[xo]):null}for(const t of this[uo]){const a=t[Fs],r=t[Xn]();e[uo].push(r);r[Ao]=e;null===e[a]?e[a]=r:e[a][uo].push(r)}return e}[is](e=null){return e?this[uo].filter(t=>t[Fs]===e):this[uo]}[Zn](e){return this[e]}[Qn](e,t,a=!0){return Array.from(this[es](e,t,a))}*[es](e,t,a=!0){if("parent"!==e){for(const a of this[uo]){a[Fs]===e&&(yield a);a.name===e&&(yield a);(t||a[As]())&&(yield*a[es](e,t,!1))}a&&this[ho].has(e)&&(yield new XFAAttribute(this,e,this[e]))}else yield this[Ao]}}class XFAObjectArray{constructor(e=1/0){this[xo]=e;this[uo]=[]}get isXFAObject(){return!1}get isXFAObjectArray(){return!0}push(e){if(this[uo].length<=this[xo]){this[uo].push(e);return!0}warn(`XFA - node "${e[Fs]}" accepts no more than ${this[xo]} children`);return!1}isEmpty(){return 0===this[uo].length}dump(){return 1===this[uo].length?this[uo][0][zn]():this[uo].map(e=>e[zn]())}[Xn](){const e=new XFAObjectArray(this[xo]);e[uo]=this[uo].map(e=>e[Xn]());return e}get children(){return this[uo]}clear(){this[uo].length=0}}class XFAAttribute{constructor(e,t,a){this[Ao]=e;this[Fs]=t;this[Hn]=a;this[qn]=!1;this[Vs]="attribute"+Fo++}[cs](){return this[Ao]}[bs](){return!0}[ts](){return this[Hn].trim()}[Xs](e){e=e.value||"";this[Hn]=e.toString()}[Hs](){return this[Hn]}[ys](e){return this[Ao]===e||this[Ao][ys](e)}}class XmlObject extends XFAObject{constructor(e,t,a={}){super(e,t);this[Hn]="";this[go]=null;if("#text"!==t){const e=new Map;this[lo]=e;for(const[t,r]of Object.entries(a))e.set(t,new XFAAttribute(this,t,r));if(a.hasOwnProperty(Is)){const e=a[Is].xfa.dataNode;void 0!==e&&("dataGroup"===e?this[go]=!1:"dataValue"===e&&(this[go]=!0))}}this[qn]=!1}[$s](e){const t=this[Fs];if("#text"===t){e.push(encodeToXmlString(this[Hn]));return}const a=utf8StringToString(t),r=this[vs]===Io?"xfa:":"";e.push(`<${r}${a}`);for(const[t,a]of this[lo].entries()){const r=utf8StringToString(t);e.push(` ${r}="${encodeToXmlString(a[Hn])}"`)}null!==this[go]&&(this[go]?e.push(' xfa:dataNode="dataValue"'):e.push(' xfa:dataNode="dataGroup"'));if(this[Hn]||0!==this[uo].length){e.push(">");if(this[Hn])"string"==typeof this[Hn]?e.push(encodeToXmlString(this[Hn])):this[Hn][$s](e);else for(const t of this[uo])t[$s](e);e.push(``)}else e.push("/>")}[Ts](e){if(this[Hn]){const e=new XmlObject(this[vs],"#text");this[Pn](e);e[Hn]=this[Hn];this[Hn]=""}this[Pn](e);return!0}[Ms](e){this[Hn]+=e}[Gn](){if(this[Hn]&&this[uo].length>0){const e=new XmlObject(this[vs],"#text");this[Pn](e);e[Hn]=this[Hn];delete this[Hn]}}[zs](){return"#text"===this[Fs]?HTMLResult.success({name:"#text",value:this[Hn]}):HTMLResult.EMPTY}[is](e=null){return e?this[uo].filter(t=>t[Fs]===e):this[uo]}[Jn](){return this[lo]}[Zn](e){const t=this[lo].get(e);return void 0!==t?t:this[is](e)}*[es](e,t){const a=this[lo].get(e);a&&(yield a);for(const a of this[uo]){a[Fs]===e&&(yield a);t&&(yield*a[es](e,t))}}*[Kn](e,t){const a=this[lo].get(e);!a||t&&a[qn]||(yield a);for(const a of this[uo])yield*a[Kn](e,t)}*[rs](e,t,a){for(const r of this[uo]){r[Fs]!==e||a&&r[qn]||(yield r);t&&(yield*r[rs](e,t,a))}}[bs](){return null===this[go]?0===this[uo].length||this[uo][0][vs]===Js.xhtml.id:this[go]}[ts](){return null===this[go]?0===this[uo].length?this[Hn].trim():this[uo][0][vs]===Js.xhtml.id?this[uo][0][Hs]().trim():null:this[Hn].trim()}[Xs](e){e=e.value||"";this[Hn]=e.toString()}[zn](e=!1){const t=Object.create(null);e&&(t.$ns=this[vs]);this[Hn]&&(t.$content=this[Hn]);t.$name=this[Fs];t.children=[];for(const a of this[uo])t.children.push(a[zn](e));t.attributes=Object.create(null);for(const[e,a]of this[lo])t.attributes[e]=a[Hn];return t}}class ContentObject extends XFAObject{constructor(e,t){super(e,t);this[Hn]=""}[Ms](e){this[Hn]+=e}[Gn](){}}class OptionObject extends ContentObject{constructor(e,t,a){super(e,t);this[So]=a}[Gn](){this[Hn]=getKeyword({data:this[Hn],defaultValue:this[So][0],validate:e=>this[So].includes(e)})}[_n](e){super[_n](e);delete this[So]}}class StringObject extends ContentObject{[Gn](){this[Hn]=this[Hn].trim()}}class IntegerObject extends ContentObject{constructor(e,t,a,r){super(e,t);this[po]=a;this[vo]=r}[Gn](){this[Hn]=getInteger({data:this[Hn],defaultValue:this[po],validate:this[vo]})}[_n](e){super[_n](e);delete this[po];delete this[vo]}}class Option01 extends IntegerObject{constructor(e,t){super(e,t,0,e=>1===e)}}class Option10 extends IntegerObject{constructor(e,t){super(e,t,1,e=>0===e)}}function measureToString(e){return"string"==typeof e?"0px":Number.isInteger(e)?`${e}px`:`${e.toFixed(2)}px`}const Oo={anchorType(e,t){const a=e[os]();if(a&&(!a.layout||"position"===a.layout)){"transform"in t||(t.transform="");switch(e.anchorType){case"bottomCenter":t.transform+="translate(-50%, -100%)";break;case"bottomLeft":t.transform+="translate(0,-100%)";break;case"bottomRight":t.transform+="translate(-100%,-100%)";break;case"middleCenter":t.transform+="translate(-50%,-50%)";break;case"middleLeft":t.transform+="translate(0,-50%)";break;case"middleRight":t.transform+="translate(-100%,-50%)";break;case"topCenter":t.transform+="translate(-50%,0)";break;case"topRight":t.transform+="translate(-100%,0)"}}},dimensions(e,t){const a=e[os]();let r=e.w;const i=e.h;if(a.layout?.includes("row")){const t=a[$n],i=e.colSpan;let n;if(-1===i){n=Math.sumPrecise(t.columnWidths.slice(t.currentColumn));t.currentColumn=0}else{n=Math.sumPrecise(t.columnWidths.slice(t.currentColumn,t.currentColumn+i));t.currentColumn=(t.currentColumn+e.colSpan)%t.columnWidths.length}isNaN(n)||(r=e.w=n)}t.width=""!==r?measureToString(r):"auto";t.height=""!==i?measureToString(i):"auto"},position(e,t){const a=e[os]();if(!a?.layout||"position"===a.layout){t.position="absolute";t.left=measureToString(e.x);t.top=measureToString(e.y)}},rotate(e,t){if(e.rotate){"transform"in t||(t.transform="");t.transform+=`rotate(-${e.rotate}deg)`;t.transformOrigin="top left"}},presence(e,t){switch(e.presence){case"invisible":t.visibility="hidden";break;case"hidden":case"inactive":t.display="none"}},hAlign(e,t){if("para"===e[Fs])switch(e.hAlign){case"justifyAll":t.textAlign="justify-all";break;case"radix":t.textAlign="left";break;default:t.textAlign=e.hAlign}else switch(e.hAlign){case"left":t.alignSelf="start";break;case"center":t.alignSelf="center";break;case"right":t.alignSelf="end"}},margin(e,t){e.margin&&(t.margin=e.margin[Gs]().margin)}};function setMinMaxDimensions(e,t){if("position"===e[os]().layout){e.minW>0&&(t.minWidth=measureToString(e.minW));e.maxW>0&&(t.maxWidth=measureToString(e.maxW));e.minH>0&&(t.minHeight=measureToString(e.minH));e.maxH>0&&(t.maxHeight=measureToString(e.maxH))}}function layoutText(e,t,a,r,i,n){const s=new TextMeasure(t,a,r,i);"string"==typeof e?s.addString(e):e[Ds](s);return s.compute(n)}function layoutNode(e,t){let a=null,r=null,i=!1;if((!e.w||!e.h)&&e.value){let n=0,s=0;if(e.margin){n=e.margin.leftInset+e.margin.rightInset;s=e.margin.topInset+e.margin.bottomInset}let o=null,c=null;if(e.para){c=Object.create(null);o=""===e.para.lineHeight?null:e.para.lineHeight;c.top=""===e.para.spaceAbove?0:e.para.spaceAbove;c.bottom=""===e.para.spaceBelow?0:e.para.spaceBelow;c.left=""===e.para.marginLeft?0:e.para.marginLeft;c.right=""===e.para.marginRight?0:e.para.marginRight}let l=e.font;if(!l){const t=e[ls]();let a=e[cs]();for(;a&&a!==t;){if(a.font){l=a.font;break}a=a[cs]()}}const h=(e.w||t.width)-n,u=e[hs].fontFinder;if(e.value.exData&&e.value.exData[Hn]&&"text/html"===e.value.exData.contentType){const t=layoutText(e.value.exData[Hn],l,c,o,u,h);r=t.width;a=t.height;i=t.isBroken}else{const t=e.value[Hs]();if(t){const e=layoutText(t,l,c,o,u,h);r=e.width;a=e.height;i=e.isBroken}}null===r||e.w||(r+=n);null===a||e.h||(a+=s)}return{w:r,h:a,isBroken:i}}function computeBbox(e,t,a){let r;if(""!==e.w&&""!==e.h)r=[e.x,e.y,e.w,e.h];else{if(!a)return null;let i=e.w;if(""===i){if(0===e.maxW){const t=e[os]();i="position"===t.layout&&""!==t.w?0:e.minW}else i=Math.min(e.maxW,a.width);t.attributes.style.width=measureToString(i)}let n=e.h;if(""===n){if(0===e.maxH){const t=e[os]();n="position"===t.layout&&""!==t.h?0:e.minH}else n=Math.min(e.maxH,a.height);t.attributes.style.height=measureToString(n)}r=[e.x,e.y,i,n]}return r}function fixDimensions(e){const t=e[os]();if(t.layout?.includes("row")){const a=t[$n],r=e.colSpan;let i;i=-1===r?Math.sumPrecise(a.columnWidths.slice(a.currentColumn)):Math.sumPrecise(a.columnWidths.slice(a.currentColumn,a.currentColumn+r));isNaN(i)||(e.w=i)}t.layout&&"position"!==t.layout&&(e.x=e.y=0);"table"===e.layout&&""===e.w&&Array.isArray(e.columnWidths)&&(e.w=Math.sumPrecise(e.columnWidths))}function layoutClass(e){switch(e.layout){case"position":default:return"xfaPosition";case"lr-tb":return"xfaLrTb";case"rl-row":return"xfaRlRow";case"rl-tb":return"xfaRlTb";case"row":return"xfaRow";case"table":return"xfaTable";case"tb":return"xfaTb"}}function toStyle(e,...t){const a=Object.create(null);for(const r of t){const t=e[r];if(null!==t)if(Oo.hasOwnProperty(r))Oo[r](e,a);else if(t instanceof XFAObject){const e=t[Gs]();e?Object.assign(a,e):warn(`(DEBUG) - XFA - style for ${r} not implemented yet`)}}return a}function createWrapper(e,t){const{attributes:a}=t,{style:r}=a,i={name:"div",attributes:{class:["xfaWrapper"],style:Object.create(null)},children:[]};a.class.push("xfaWrapped");if(e.border){const{widths:a,insets:n}=e.border[$n];let s,o,c=n[0],l=n[3];const h=n[0]+n[2],u=n[1]+n[3];switch(e.border.hand){case"even":c-=a[0]/2;l-=a[3]/2;s=`calc(100% + ${(a[1]+a[3])/2-u}px)`;o=`calc(100% + ${(a[0]+a[2])/2-h}px)`;break;case"left":c-=a[0];l-=a[3];s=`calc(100% + ${a[1]+a[3]-u}px)`;o=`calc(100% + ${a[0]+a[2]-h}px)`;break;case"right":s=u?`calc(100% - ${u}px)`:"100%";o=h?`calc(100% - ${h}px)`:"100%"}const d=["xfaBorder"];isPrintOnly(e.border)&&d.push("xfaPrintOnly");const f={name:"div",attributes:{class:d,style:{top:`${c}px`,left:`${l}px`,width:s,height:o}},children:[]};for(const e of["border","borderWidth","borderColor","borderRadius","borderStyle"])if(void 0!==r[e]){f.attributes.style[e]=r[e];delete r[e]}i.children.push(f,t)}else i.children.push(t);for(const e of["background","backgroundClip","top","left","width","height","minWidth","minHeight","maxWidth","maxHeight","transform","transformOrigin","visibility"])if(void 0!==r[e]){i.attributes.style[e]=r[e];delete r[e]}i.attributes.style.position="absolute"===r.position?"absolute":"relative";delete r.position;if(r.alignSelf){i.attributes.style.alignSelf=r.alignSelf;delete r.alignSelf}return i}function fixTextIndent(e){const t=getMeasurement(e.textIndent,"0px");if(t>=0)return;const a="padding"+("left"===("right"===e.textAlign?"right":"left")?"Left":"Right"),r=getMeasurement(e[a],"0px");e[a]=r-t+"px"}function setAccess(e,t){switch(e.access){case"nonInteractive":t.push("xfaNonInteractive");break;case"readOnly":t.push("xfaReadOnly");break;case"protected":t.push("xfaDisabled")}}function isPrintOnly(e){return e.relevant.length>0&&!e.relevant[0].excluded&&"print"===e.relevant[0].viewname}function getCurrentPara(e){const t=e[ls]()[$n].paraStack;return t.length?t.at(-1):null}function setPara(e,t,a){if(a.attributes.class?.includes("xfaRich")){if(t){""===e.h&&(t.height="auto");""===e.w&&(t.width="auto")}const r=getCurrentPara(e);if(r){const e=a.attributes.style;e.display="flex";e.flexDirection="column";switch(r.vAlign){case"top":e.justifyContent="start";break;case"bottom":e.justifyContent="end";break;case"middle":e.justifyContent="center"}const t=r[Gs]();for(const[a,r]of Object.entries(t))a in e||(e[a]=r)}}}function setFontFamily(e,t,a,r){if(!a){delete r.fontFamily;return}const i=stripQuotes(e.typeface);r.fontFamily=`"${i}"`;const n=a.find(i);if(n){const{fontFamily:a}=n.regular.cssFontInfo;a!==i&&(r.fontFamily=`"${a}"`);const s=getCurrentPara(t);if(s&&""!==s.lineHeight)return;if(r.lineHeight)return;const o=selectFont(e,n);o&&(r.lineHeight=Math.max(1.2,o.lineHeight))}}function fixURL(e){const t=createValidAbsoluteUrl(e,null,{addDefaultProtocol:!0,tryConvertEncoding:!0});return t?t.href:null}function createLine(e,t){return{name:"div",attributes:{class:["lr-tb"===e.layout?"xfaLr":"xfaRl"]},children:t}}function flushHTML(e){if(!e[$n])return null;const t={name:"div",attributes:e[$n].attributes,children:e[$n].children};if(e[$n].failingNode){const a=e[$n].failingNode[Vn]();a&&(e.layout.endsWith("-tb")?t.children.push(createLine(e,[a])):t.children.push(a))}return 0===t.children.length?null:t}function addHTML(e,t,a){const r=e[$n],i=r.availableSpace,[n,s,o,c]=a;switch(e.layout){case"position":r.width=Math.max(r.width,n+o);r.height=Math.max(r.height,s+c);r.children.push(t);break;case"lr-tb":case"rl-tb":if(!r.line||1===r.attempt){r.line=createLine(e,[]);r.children.push(r.line);r.numberInLine=0}r.numberInLine+=1;r.line.children.push(t);if(0===r.attempt){r.currentWidth+=o;r.height=Math.max(r.height,r.prevHeight+c)}else{r.currentWidth=o;r.prevHeight=r.height;r.height+=c;r.attempt=0}r.width=Math.max(r.width,r.currentWidth);break;case"rl-row":case"row":{r.children.push(t);r.width+=o;r.height=Math.max(r.height,c);const e=measureToString(r.height);for(const t of r.children)t.attributes.style.height=e;break}case"table":case"tb":r.width=MathClamp(o,r.width,i.width);r.height+=c;r.children.push(t)}}function getAvailableSpace(e){const t=e[$n].availableSpace,a=e.margin?e.margin.topInset+e.margin.bottomInset:0,r=e.margin?e.margin.leftInset+e.margin.rightInset:0;switch(e.layout){case"lr-tb":case"rl-tb":return 0===e[$n].attempt?{width:t.width-r-e[$n].currentWidth,height:t.height-a-e[$n].prevHeight}:{width:t.width-r,height:t.height-a-e[$n].height};case"rl-row":case"row":return{width:Math.sumPrecise(e[$n].columnWidths.slice(e[$n].currentColumn)),height:t.height-r};case"table":case"tb":return{width:t.width-r,height:t.height-a-e[$n].height};default:return t}}function checkDimensions(e,t){if(null===e[ls]()[$n].firstUnsplittable)return!0;if(0===e.w||0===e.h)return!0;const a=e[os](),r=a[$n]?.attempt||0,[,i,n,s]=function getTransformedBBox(e){let t,a,r=""===e.w?NaN:e.w,i=""===e.h?NaN:e.h,[n,s]=[0,0];switch(e.anchorType||""){case"bottomCenter":[n,s]=[r/2,i];break;case"bottomLeft":[n,s]=[0,i];break;case"bottomRight":[n,s]=[r,i];break;case"middleCenter":[n,s]=[r/2,i/2];break;case"middleLeft":[n,s]=[0,i/2];break;case"middleRight":[n,s]=[r,i/2];break;case"topCenter":[n,s]=[r/2,0];break;case"topRight":[n,s]=[r,0]}switch(e.rotate||0){case 0:[t,a]=[-n,-s];break;case 90:[t,a]=[-s,n];[r,i]=[i,-r];break;case 180:[t,a]=[n,s];[r,i]=[-r,-i];break;case 270:[t,a]=[s,-n];[r,i]=[-i,r]}return[e.x+t+Math.min(0,r),e.y+a+Math.min(0,i),Math.abs(r),Math.abs(i)]}(e);switch(a.layout){case"lr-tb":case"rl-tb":return 0===r?e[ls]()[$n].noLayoutFailure?""!==e.w?Math.round(n-t.width)<=2:t.width>2:!(""!==e.h&&Math.round(s-t.height)>2)&&(""!==e.w?Math.round(n-t.width)<=2||0===a[$n].numberInLine&&t.height>2:t.width>2):!!e[ls]()[$n].noLayoutFailure||!(""!==e.h&&Math.round(s-t.height)>2)&&((""===e.w||Math.round(n-t.width)<=2||!a[Ss]())&&t.height>2);case"table":case"tb":return!!e[ls]()[$n].noLayoutFailure||(""===e.h||e[xs]()?(""===e.w||Math.round(n-t.width)<=2||!a[Ss]())&&t.height>2:Math.round(s-t.height)<=2);case"position":if(e[ls]()[$n].noLayoutFailure)return!0;if(""===e.h||Math.round(s+i-t.height)<=2)return!0;return s+i>e[ls]()[$n].currentContentArea.h;case"rl-row":case"row":return!!e[ls]()[$n].noLayoutFailure||(""===e.h||Math.round(s-t.height)<=2);default:return!0}}const Mo=Js.template.id,Do="http://www.w3.org/2000/svg",Bo=/^H(\d+)$/,Ro=new Set(["image/gif","image/jpeg","image/jpg","image/pjpeg","image/png","image/apng","image/x-png","image/bmp","image/x-ms-bmp","image/tiff","image/tif","application/octet-stream"]),No=[[[66,77],"image/bmp"],[[255,216,255],"image/jpeg"],[[73,73,42,0],"image/tiff"],[[77,77,0,42],"image/tiff"],[[71,73,70,56,57,97],"image/gif"],[[137,80,78,71,13,10,26,10],"image/png"]];function getBorderDims(e){if(!e||!e.border)return{w:0,h:0};const t=e.border[as]();return t?{w:t.widths[0]+t.widths[2]+t.insets[0]+t.insets[2],h:t.widths[1]+t.widths[3]+t.insets[1]+t.insets[3]}:{w:0,h:0}}function hasMargin(e){return e.margin&&(e.margin.topInset||e.margin.rightInset||e.margin.bottomInset||e.margin.leftInset)}function _setValue(e,t){if(!e.value){const t=new Value({});e[Pn](t);e.value=t}e.value[Xs](t)}function*getContainedChildren(e){for(const t of e[is]())t instanceof SubformSet?yield*t[ns]():yield t}function isRequired(e){return"error"===e.validate?.nullTest}function setTabIndex(e){for(;e;){if(!e.traversal){e[qs]=e[cs]()[qs];return}if(e[qs])return;let t=null;for(const a of e.traversal[is]())if("next"===a.operation){t=a;break}if(!t||!t.ref){e[qs]=e[cs]()[qs];return}const a=e[ls]();e[qs]=++a[qs];const r=a[_s](t.ref,e);if(!r)return;e=r[0]}}function applyAssist(e,t){const a=e.assist;if(a){const e=a[zs]();e&&(t.title=e);const r=a.role.match(Bo);if(r){const e="heading",a=r[1];t.role=e;t["aria-level"]=a}}if("table"===e.layout)t.role="table";else if("row"===e.layout)t.role="row";else{const a=e[cs]();"row"===a.layout&&(t.role="TH"===a.assist?.role?"columnheader":"cell")}}function ariaLabel(e){if(!e.assist)return null;const t=e.assist;return t.speak&&""!==t.speak[Hn]?t.speak[Hn]:t.toolTip?t.toolTip[Hn]:null}function valueToHtml(e){return HTMLResult.success({name:"div",attributes:{class:["xfaRich"],style:Object.create(null)},children:[{name:"span",attributes:{style:Object.create(null)},value:e}]})}function setFirstUnsplittable(e){const t=e[ls]();if(null===t[$n].firstUnsplittable){t[$n].firstUnsplittable=e;t[$n].noLayoutFailure=!0}}function unsetFirstUnsplittable(e){const t=e[ls]();t[$n].firstUnsplittable===e&&(t[$n].noLayoutFailure=!1)}function handleBreak(e){if(e[$n])return!1;e[$n]=Object.create(null);if("auto"===e.targetType)return!1;const t=e[ls]();let a=null;if(e.target){a=t[_s](e.target,e[cs]());if(!a)return!1;a=a[0]}const{currentPageArea:r,currentContentArea:i}=t[$n];if("pageArea"===e.targetType){a instanceof PageArea||(a=null);if(e.startNew){e[$n].target=a||r;return!0}if(a&&a!==r){e[$n].target=a;return!0}return!1}a instanceof ContentArea||(a=null);const n=a&&a[cs]();let s,o=n;if(e.startNew)if(a){const e=n.contentArea.children,t=e.indexOf(i),r=e.indexOf(a);-1!==t&&te;r[$n].noLayoutFailure=!0;const s=t[zs](a);e[En](s.html,s.bbox);r[$n].noLayoutFailure=i;t[os]=n}class AppearanceFilter extends StringObject{constructor(e){super(Mo,"appearanceFilter");this.id=e.id||"";this.type=getStringOption(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||""}}class Arc extends XFAObject{constructor(e){super(Mo,"arc",!0);this.circular=getInteger({data:e.circular,defaultValue:0,validate:e=>1===e});this.hand=getStringOption(e.hand,["even","left","right"]);this.id=e.id||"";this.startAngle=getFloat({data:e.startAngle,defaultValue:0,validate:e=>!0});this.sweepAngle=getFloat({data:e.sweepAngle,defaultValue:360,validate:e=>!0});this.use=e.use||"";this.usehref=e.usehref||"";this.edge=null;this.fill=null}[zs](){const e=this.edge||new Edge({}),t=e[Gs](),a=Object.create(null);"visible"===this.fill?.presence?Object.assign(a,this.fill[Gs]()):a.fill="transparent";a.strokeWidth=measureToString("visible"===e.presence?e.thickness:0);a.stroke=t.color;let r;const i={xmlns:Do,style:{width:"100%",height:"100%",overflow:"visible"}};if(360===this.sweepAngle)r={name:"ellipse",attributes:{xmlns:Do,cx:"50%",cy:"50%",rx:"50%",ry:"50%",style:a}};else{const e=this.startAngle*Math.PI/180,t=this.sweepAngle*Math.PI/180,n=this.sweepAngle>180?1:0,[s,o,c,l]=[50*(1+Math.cos(e)),50*(1-Math.sin(e)),50*(1+Math.cos(e+t)),50*(1-Math.sin(e+t))];r={name:"path",attributes:{xmlns:Do,d:`M ${s} ${o} A 50 50 0 ${n} 0 ${c} ${l}`,vectorEffect:"non-scaling-stroke",style:a}};Object.assign(i,{viewBox:"0 0 100 100",preserveAspectRatio:"none"})}const n={name:"svg",children:[r],attributes:i};if(hasMargin(this[cs]()[cs]()))return HTMLResult.success({name:"div",attributes:{style:{display:"inline",width:"100%",height:"100%"}},children:[n]});n.attributes.style.position="absolute";return HTMLResult.success(n)}}class Area extends XFAObject{constructor(e){super(Mo,"area",!0);this.colSpan=getInteger({data:e.colSpan,defaultValue:1,validate:e=>e>=1||-1===e});this.id=e.id||"";this.name=e.name||"";this.relevant=getRelevant(e.relevant);this.use=e.use||"";this.usehref=e.usehref||"";this.x=getMeasurement(e.x,"0pt");this.y=getMeasurement(e.y,"0pt");this.desc=null;this.extras=null;this.area=new XFAObjectArray;this.draw=new XFAObjectArray;this.exObject=new XFAObjectArray;this.exclGroup=new XFAObjectArray;this.field=new XFAObjectArray;this.subform=new XFAObjectArray;this.subformSet=new XFAObjectArray}*[ns](){yield*getContainedChildren(this)}[As](){return!0}[ms](){return!0}[En](e,t){const[a,r,i,n]=t;this[$n].width=Math.max(this[$n].width,a+i);this[$n].height=Math.max(this[$n].height,r+n);this[$n].children.push(e)}[Yn](){return this[$n].availableSpace}[zs](e){const t=toStyle(this,"position"),a={style:t,id:this[Vs],class:["xfaArea"]};isPrintOnly(this)&&a.class.push("xfaPrintOnly");this.name&&(a.xfaName=this.name);const r=[];this[$n]={children:r,width:0,height:0,availableSpace:e};const i=this[Ln]({filter:new Set(["area","draw","field","exclGroup","subform","subformSet"]),include:!0});if(!i.success){if(i.isBreak())return i;delete this[$n];return HTMLResult.FAILURE}t.width=measureToString(this[$n].width);t.height=measureToString(this[$n].height);const n={name:"div",attributes:a,children:r},s=[this.x,this.y,this[$n].width,this[$n].height];delete this[$n];return HTMLResult.success(n,s)}}class Assist extends XFAObject{constructor(e){super(Mo,"assist",!0);this.id=e.id||"";this.role=e.role||"";this.use=e.use||"";this.usehref=e.usehref||"";this.speak=null;this.toolTip=null}[zs](){return this.toolTip?.[Hn]||null}}class Barcode extends XFAObject{constructor(e){super(Mo,"barcode",!0);this.charEncoding=getKeyword({data:e.charEncoding?e.charEncoding.toLowerCase():"",defaultValue:"",validate:e=>["utf-8","big-five","fontspecific","gbk","gb-18030","gb-2312","ksc-5601","none","shift-jis","ucs-2","utf-16"].includes(e)||e.match(/iso-8859-\d{2}/)});this.checksum=getStringOption(e.checksum,["none","1mod10","1mod10_1mod11","2mod10","auto"]);this.dataColumnCount=getInteger({data:e.dataColumnCount,defaultValue:-1,validate:e=>e>=0});this.dataLength=getInteger({data:e.dataLength,defaultValue:-1,validate:e=>e>=0});this.dataPrep=getStringOption(e.dataPrep,["none","flateCompress"]);this.dataRowCount=getInteger({data:e.dataRowCount,defaultValue:-1,validate:e=>e>=0});this.endChar=e.endChar||"";this.errorCorrectionLevel=getInteger({data:e.errorCorrectionLevel,defaultValue:-1,validate:e=>e>=0&&e<=8});this.id=e.id||"";this.moduleHeight=getMeasurement(e.moduleHeight,"5mm");this.moduleWidth=getMeasurement(e.moduleWidth,"0.25mm");this.printCheckDigit=getInteger({data:e.printCheckDigit,defaultValue:0,validate:e=>1===e});this.rowColumnRatio=getRatio(e.rowColumnRatio);this.startChar=e.startChar||"";this.textLocation=getStringOption(e.textLocation,["below","above","aboveEmbedded","belowEmbedded","none"]);this.truncate=getInteger({data:e.truncate,defaultValue:0,validate:e=>1===e});this.type=getStringOption(e.type?e.type.toLowerCase():"",["aztec","codabar","code2of5industrial","code2of5interleaved","code2of5matrix","code2of5standard","code3of9","code3of9extended","code11","code49","code93","code128","code128a","code128b","code128c","code128sscc","datamatrix","ean8","ean8add2","ean8add5","ean13","ean13add2","ean13add5","ean13pwcd","fim","logmars","maxicode","msi","pdf417","pdf417macro","plessey","postauscust2","postauscust3","postausreplypaid","postausstandard","postukrm4scc","postusdpbc","postusimb","postusstandard","postus5zip","qrcode","rfid","rss14","rss14expanded","rss14limited","rss14stacked","rss14stackedomni","rss14truncated","telepen","ucc128","ucc128random","ucc128sscc","upca","upcaadd2","upcaadd5","upcapwcd","upce","upceadd2","upceadd5","upcean2","upcean5","upsmaxicode"]);this.upsMode=getStringOption(e.upsMode,["usCarrier","internationalCarrier","secureSymbol","standardSymbol"]);this.use=e.use||"";this.usehref=e.usehref||"";this.wideNarrowRatio=getRatio(e.wideNarrowRatio);this.encrypt=null;this.extras=null}}class Bind extends XFAObject{constructor(e){super(Mo,"bind",!0);this.match=getStringOption(e.match,["once","dataRef","global","none"]);this.ref=e.ref||"";this.picture=null}}class BindItems extends XFAObject{constructor(e){super(Mo,"bindItems");this.connection=e.connection||"";this.labelRef=e.labelRef||"";this.ref=e.ref||"";this.valueRef=e.valueRef||""}}class Bookend extends XFAObject{constructor(e){super(Mo,"bookend");this.id=e.id||"";this.leader=e.leader||"";this.trailer=e.trailer||"";this.use=e.use||"";this.usehref=e.usehref||""}}class BooleanElement extends Option01{constructor(e){super(Mo,"boolean");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}[zs](e){return valueToHtml(1===this[Hn]?"1":"0")}}class Border extends XFAObject{constructor(e){super(Mo,"border",!0);this.break=getStringOption(e.break,["close","open"]);this.hand=getStringOption(e.hand,["even","left","right"]);this.id=e.id||"";this.presence=getStringOption(e.presence,["visible","hidden","inactive","invisible"]);this.relevant=getRelevant(e.relevant);this.use=e.use||"";this.usehref=e.usehref||"";this.corner=new XFAObjectArray(4);this.edge=new XFAObjectArray(4);this.extras=null;this.fill=null;this.margin=null}[as](){if(!this[$n]){const e=this.edge.children.slice();if(e.length<4){const t=e.at(-1)||new Edge({});for(let a=e.length;a<4;a++)e.push(t)}const t=e.map(e=>e.thickness),a=[0,0,0,0];if(this.margin){a[0]=this.margin.topInset;a[1]=this.margin.rightInset;a[2]=this.margin.bottomInset;a[3]=this.margin.leftInset}this[$n]={widths:t,insets:a,edges:e}}return this[$n]}[Gs](){const{edges:e}=this[as](),t=e.map(e=>{const t=e[Gs]();t.color||="#000000";return t}),a=Object.create(null);this.margin&&Object.assign(a,this.margin[Gs]());"visible"===this.fill?.presence&&Object.assign(a,this.fill[Gs]());if(this.corner.children.some(e=>0!==e.radius)){const e=this.corner.children.map(e=>e[Gs]());if(2===e.length||3===e.length){const t=e.at(-1);for(let a=e.length;a<4;a++)e.push(t)}a.borderRadius=e.map(e=>e.radius).join(" ")}switch(this.presence){case"invisible":case"hidden":a.borderStyle="";break;case"inactive":a.borderStyle="none";break;default:a.borderStyle=t.map(e=>e.style).join(" ")}a.borderWidth=t.map(e=>e.width).join(" ");a.borderColor=t.map(e=>e.color).join(" ");return a}}class Break extends XFAObject{constructor(e){super(Mo,"break",!0);this.after=getStringOption(e.after,["auto","contentArea","pageArea","pageEven","pageOdd"]);this.afterTarget=e.afterTarget||"";this.before=getStringOption(e.before,["auto","contentArea","pageArea","pageEven","pageOdd"]);this.beforeTarget=e.beforeTarget||"";this.bookendLeader=e.bookendLeader||"";this.bookendTrailer=e.bookendTrailer||"";this.id=e.id||"";this.overflowLeader=e.overflowLeader||"";this.overflowTarget=e.overflowTarget||"";this.overflowTrailer=e.overflowTrailer||"";this.startNew=getInteger({data:e.startNew,defaultValue:0,validate:e=>1===e});this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null}}class BreakAfter extends XFAObject{constructor(e){super(Mo,"breakAfter",!0);this.id=e.id||"";this.leader=e.leader||"";this.startNew=getInteger({data:e.startNew,defaultValue:0,validate:e=>1===e});this.target=e.target||"";this.targetType=getStringOption(e.targetType,["auto","contentArea","pageArea"]);this.trailer=e.trailer||"";this.use=e.use||"";this.usehref=e.usehref||"";this.script=null}}class BreakBefore extends XFAObject{constructor(e){super(Mo,"breakBefore",!0);this.id=e.id||"";this.leader=e.leader||"";this.startNew=getInteger({data:e.startNew,defaultValue:0,validate:e=>1===e});this.target=e.target||"";this.targetType=getStringOption(e.targetType,["auto","contentArea","pageArea"]);this.trailer=e.trailer||"";this.use=e.use||"";this.usehref=e.usehref||"";this.script=null}[zs](e){this[$n]={};return HTMLResult.FAILURE}}class Button extends XFAObject{constructor(e){super(Mo,"button",!0);this.highlight=getStringOption(e.highlight,["inverted","none","outline","push"]);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null}[zs](e){const t=this[cs]()[cs](),a={name:"button",attributes:{id:this[Vs],class:["xfaButton"],style:{}},children:[]};for(const e of t.event.children){if("click"!==e.activity||!e.script)continue;const t=recoverJsURL(e.script[Hn]);if(!t)continue;const r=fixURL(t.url);r&&a.children.push({name:"a",attributes:{id:"link"+this[Vs],href:r,newWindow:t.newWindow,class:["xfaLink"],style:{}},children:[]})}return HTMLResult.success(a)}}class Calculate extends XFAObject{constructor(e){super(Mo,"calculate",!0);this.id=e.id||"";this.override=getStringOption(e.override,["disabled","error","ignore","warning"]);this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null;this.message=null;this.script=null}}class Caption extends XFAObject{constructor(e){super(Mo,"caption",!0);this.id=e.id||"";this.placement=getStringOption(e.placement,["left","bottom","inline","right","top"]);this.presence=getStringOption(e.presence,["visible","hidden","inactive","invisible"]);this.reserve=Math.ceil(getMeasurement(e.reserve));this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null;this.font=null;this.margin=null;this.para=null;this.value=null}[Xs](e){_setValue(this,e)}[as](e){if(!this[$n]){let{width:t,height:a}=e;switch(this.placement){case"left":case"right":case"inline":t=this.reserve<=0?t:this.reserve;break;case"top":case"bottom":a=this.reserve<=0?a:this.reserve}this[$n]=layoutNode(this,{width:t,height:a})}return this[$n]}[zs](e){if(!this.value)return HTMLResult.EMPTY;this[Rs]();const t=this.value[zs](e).html;if(!t){this[Bs]();return HTMLResult.EMPTY}const a=this.reserve;if(this.reserve<=0){const{w:t,h:a}=this[as](e);switch(this.placement){case"left":case"right":case"inline":this.reserve=t;break;case"top":case"bottom":this.reserve=a}}const r=[];"string"==typeof t?r.push({name:"#text",value:t}):r.push(t);const i=toStyle(this,"font","margin","visibility");switch(this.placement){case"left":case"right":this.reserve>0&&(i.width=measureToString(this.reserve));break;case"top":case"bottom":this.reserve>0&&(i.height=measureToString(this.reserve))}setPara(this,null,t);this[Bs]();this.reserve=a;return HTMLResult.success({name:"div",attributes:{style:i,class:["xfaCaption"]},children:r})}}class Certificate extends StringObject{constructor(e){super(Mo,"certificate");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}}class Certificates extends XFAObject{constructor(e){super(Mo,"certificates",!0);this.credentialServerPolicy=getStringOption(e.credentialServerPolicy,["optional","required"]);this.id=e.id||"";this.url=e.url||"";this.urlPolicy=e.urlPolicy||"";this.use=e.use||"";this.usehref=e.usehref||"";this.encryption=null;this.issuers=null;this.keyUsage=null;this.oids=null;this.signing=null;this.subjectDNs=null}}class CheckButton extends XFAObject{constructor(e){super(Mo,"checkButton",!0);this.id=e.id||"";this.mark=getStringOption(e.mark,["default","check","circle","cross","diamond","square","star"]);this.shape=getStringOption(e.shape,["square","round"]);this.size=getMeasurement(e.size,"10pt");this.use=e.use||"";this.usehref=e.usehref||"";this.border=null;this.extras=null;this.margin=null}[zs](e){const t=toStyle(this,"margin"),a=measureToString(this.size);t.width=t.height=a;let r,i,n;const s=this[cs]()[cs](),o=s.items.children.length&&s.items.children[0][zs]().html||[],c={on:(void 0!==o[0]?o[0]:"on").toString(),off:(void 0!==o[1]?o[1]:"off").toString()},l=(s.value?.[Hs]()||"off")===c.on||void 0,h=s[os](),u=s[Vs];let d;if(h instanceof ExclGroup){n=h[Vs];r="radio";i="xfaRadio";d=h[Wn]?.[Vs]||h[Vs]}else{r="checkbox";i="xfaCheckbox";d=s[Wn]?.[Vs]||s[Vs]}const f={name:"input",attributes:{class:[i],style:t,fieldId:u,dataId:d,type:r,checked:l,xfaOn:c.on,xfaOff:c.off,"aria-label":ariaLabel(s),"aria-required":!1}};n&&(f.attributes.name=n);if(isRequired(s)){f.attributes["aria-required"]=!0;f.attributes.required=!0}return HTMLResult.success({name:"label",attributes:{class:["xfaLabel"]},children:[f]})}}class ChoiceList extends XFAObject{constructor(e){super(Mo,"choiceList",!0);this.commitOn=getStringOption(e.commitOn,["select","exit"]);this.id=e.id||"";this.open=getStringOption(e.open,["userControl","always","multiSelect","onEntry"]);this.textEntry=getInteger({data:e.textEntry,defaultValue:0,validate:e=>1===e});this.use=e.use||"";this.usehref=e.usehref||"";this.border=null;this.extras=null;this.margin=null}[zs](e){const t=toStyle(this,"border","margin"),a=this[cs]()[cs](),r={fontSize:`calc(${a.font?.size||10}px * var(--total-scale-factor))`},i=[];if(a.items.children.length>0){const e=a.items;let t=0,n=0;if(2===e.children.length){t=e.children[0].save;n=1-t}const s=e.children[t][zs]().html,o=e.children[n][zs]().html;let c=!1;const l=a.value?.[Hs]()||"";for(let e=0,t=s.length;eMathClamp(parseInt(e.trim(),10),0,255)).map(e=>isNaN(e)?0:e);if(n.length<3)return{r:a,g:r,b:i};[a,r,i]=n;return{r:a,g:r,b:i}}(e.value):"";this.extras=null}[us](){return!1}[Gs](){return this.value?Util.makeHexColor(this.value.r,this.value.g,this.value.b):null}}class Comb extends XFAObject{constructor(e){super(Mo,"comb");this.id=e.id||"";this.numberOfCells=getInteger({data:e.numberOfCells,defaultValue:0,validate:e=>e>=0});this.use=e.use||"";this.usehref=e.usehref||""}}class Connect extends XFAObject{constructor(e){super(Mo,"connect",!0);this.connection=e.connection||"";this.id=e.id||"";this.ref=e.ref||"";this.usage=getStringOption(e.usage,["exportAndImport","exportOnly","importOnly"]);this.use=e.use||"";this.usehref=e.usehref||"";this.picture=null}}class ContentArea extends XFAObject{constructor(e){super(Mo,"contentArea",!0);this.h=getMeasurement(e.h);this.id=e.id||"";this.name=e.name||"";this.relevant=getRelevant(e.relevant);this.use=e.use||"";this.usehref=e.usehref||"";this.w=getMeasurement(e.w);this.x=getMeasurement(e.x,"0pt");this.y=getMeasurement(e.y,"0pt");this.desc=null;this.extras=null}[zs](e){const t={left:measureToString(this.x),top:measureToString(this.y),width:measureToString(this.w),height:measureToString(this.h)},a=["xfaContentarea"];isPrintOnly(this)&&a.push("xfaPrintOnly");return HTMLResult.success({name:"div",children:[],attributes:{style:t,class:a,id:this[Vs]}})}}class Corner extends XFAObject{constructor(e){super(Mo,"corner",!0);this.id=e.id||"";this.inverted=getInteger({data:e.inverted,defaultValue:0,validate:e=>1===e});this.join=getStringOption(e.join,["square","round"]);this.presence=getStringOption(e.presence,["visible","hidden","inactive","invisible"]);this.radius=getMeasurement(e.radius);this.stroke=getStringOption(e.stroke,["solid","dashDot","dashDotDot","dashed","dotted","embossed","etched","lowered","raised"]);this.thickness=getMeasurement(e.thickness,"0.5pt");this.use=e.use||"";this.usehref=e.usehref||"";this.color=null;this.extras=null}[Gs](){const e=toStyle(this,"visibility");e.radius=measureToString("square"===this.join?0:this.radius);return e}}class DateElement extends ContentObject{constructor(e){super(Mo,"date");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}[Gn](){const e=this[Hn].trim();this[Hn]=e?new Date(e):null}[zs](e){return valueToHtml(this[Hn]?this[Hn].toString():"")}}class DateTime extends ContentObject{constructor(e){super(Mo,"dateTime");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}[Gn](){const e=this[Hn].trim();this[Hn]=e?new Date(e):null}[zs](e){return valueToHtml(this[Hn]?this[Hn].toString():"")}}class DateTimeEdit extends XFAObject{constructor(e){super(Mo,"dateTimeEdit",!0);this.hScrollPolicy=getStringOption(e.hScrollPolicy,["auto","off","on"]);this.id=e.id||"";this.picker=getStringOption(e.picker,["host","none"]);this.use=e.use||"";this.usehref=e.usehref||"";this.border=null;this.comb=null;this.extras=null;this.margin=null}[zs](e){const t=toStyle(this,"border","font","margin"),a=this[cs]()[cs](),r={name:"input",attributes:{type:"text",fieldId:a[Vs],dataId:a[Wn]?.[Vs]||a[Vs],class:["xfaTextfield"],style:t,"aria-label":ariaLabel(a),"aria-required":!1}};if(isRequired(a)){r.attributes["aria-required"]=!0;r.attributes.required=!0}return HTMLResult.success({name:"label",attributes:{class:["xfaLabel"]},children:[r]})}}class Decimal extends ContentObject{constructor(e){super(Mo,"decimal");this.fracDigits=getInteger({data:e.fracDigits,defaultValue:2,validate:e=>!0});this.id=e.id||"";this.leadDigits=getInteger({data:e.leadDigits,defaultValue:-1,validate:e=>!0});this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}[Gn](){const e=parseFloat(this[Hn].trim());this[Hn]=isNaN(e)?null:e}[zs](e){return valueToHtml(null!==this[Hn]?this[Hn].toString():"")}}class DefaultUi extends XFAObject{constructor(e){super(Mo,"defaultUi",!0);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null}}class Desc extends XFAObject{constructor(e){super(Mo,"desc",!0);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.boolean=new XFAObjectArray;this.date=new XFAObjectArray;this.dateTime=new XFAObjectArray;this.decimal=new XFAObjectArray;this.exData=new XFAObjectArray;this.float=new XFAObjectArray;this.image=new XFAObjectArray;this.integer=new XFAObjectArray;this.text=new XFAObjectArray;this.time=new XFAObjectArray}}class DigestMethod extends OptionObject{constructor(e){super(Mo,"digestMethod",["","SHA1","SHA256","SHA512","RIPEMD160"]);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||""}}class DigestMethods extends XFAObject{constructor(e){super(Mo,"digestMethods",!0);this.id=e.id||"";this.type=getStringOption(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||"";this.digestMethod=new XFAObjectArray}}class Draw extends XFAObject{constructor(e){super(Mo,"draw",!0);this.anchorType=getStringOption(e.anchorType,["topLeft","bottomCenter","bottomLeft","bottomRight","middleCenter","middleLeft","middleRight","topCenter","topRight"]);this.colSpan=getInteger({data:e.colSpan,defaultValue:1,validate:e=>e>=1||-1===e});this.h=e.h?getMeasurement(e.h):"";this.hAlign=getStringOption(e.hAlign,["left","center","justify","justifyAll","radix","right"]);this.id=e.id||"";this.locale=e.locale||"";this.maxH=getMeasurement(e.maxH,"0pt");this.maxW=getMeasurement(e.maxW,"0pt");this.minH=getMeasurement(e.minH,"0pt");this.minW=getMeasurement(e.minW,"0pt");this.name=e.name||"";this.presence=getStringOption(e.presence,["visible","hidden","inactive","invisible"]);this.relevant=getRelevant(e.relevant);this.rotate=getInteger({data:e.rotate,defaultValue:0,validate:e=>e%90==0});this.use=e.use||"";this.usehref=e.usehref||"";this.w=e.w?getMeasurement(e.w):"";this.x=getMeasurement(e.x,"0pt");this.y=getMeasurement(e.y,"0pt");this.assist=null;this.border=null;this.caption=null;this.desc=null;this.extras=null;this.font=null;this.keep=null;this.margin=null;this.para=null;this.traversal=null;this.ui=null;this.value=null;this.setProperty=new XFAObjectArray}[Xs](e){_setValue(this,e)}[zs](e){setTabIndex(this);if("hidden"===this.presence||"inactive"===this.presence)return HTMLResult.EMPTY;fixDimensions(this);this[Rs]();const t=this.w,a=this.h,{w:r,h:i,isBroken:n}=layoutNode(this,e);if(r&&""===this.w){if(n&&this[os]()[Ss]()){this[Bs]();return HTMLResult.FAILURE}this.w=r}i&&""===this.h&&(this.h=i);setFirstUnsplittable(this);if(!checkDimensions(this,e)){this.w=t;this.h=a;this[Bs]();return HTMLResult.FAILURE}unsetFirstUnsplittable(this);const s=toStyle(this,"font","hAlign","dimensions","position","presence","rotate","anchorType","border","margin");setMinMaxDimensions(this,s);if(s.margin){s.padding=s.margin;delete s.margin}const o=["xfaDraw"];this.font&&o.push("xfaFont");isPrintOnly(this)&&o.push("xfaPrintOnly");const c={style:s,id:this[Vs],class:o};this.name&&(c.xfaName=this.name);const l={name:"div",attributes:c,children:[]};applyAssist(this,c);const h=computeBbox(this,l,e),u=this.value?this.value[zs](e).html:null;if(null===u){this.w=t;this.h=a;this[Bs]();return HTMLResult.success(createWrapper(this,l),h)}l.children.push(u);setPara(this,s,u);this.w=t;this.h=a;this[Bs]();return HTMLResult.success(createWrapper(this,l),h)}}class Edge extends XFAObject{constructor(e){super(Mo,"edge",!0);this.cap=getStringOption(e.cap,["square","butt","round"]);this.id=e.id||"";this.presence=getStringOption(e.presence,["visible","hidden","inactive","invisible"]);this.stroke=getStringOption(e.stroke,["solid","dashDot","dashDotDot","dashed","dotted","embossed","etched","lowered","raised"]);this.thickness=getMeasurement(e.thickness,"0.5pt");this.use=e.use||"";this.usehref=e.usehref||"";this.color=null;this.extras=null}[Gs](){const e=toStyle(this,"visibility");Object.assign(e,{linecap:this.cap,width:measureToString(this.thickness),color:this.color?this.color[Gs]():"#000000",style:""});if("visible"!==this.presence)e.style="none";else switch(this.stroke){case"solid":e.style="solid";break;case"dashDot":case"dashDotDot":case"dashed":e.style="dashed";break;case"dotted":e.style="dotted";break;case"embossed":e.style="ridge";break;case"etched":e.style="groove";break;case"lowered":e.style="inset";break;case"raised":e.style="outset"}return e}}class Encoding extends OptionObject{constructor(e){super(Mo,"encoding",["adbe.x509.rsa_sha1","adbe.pkcs7.detached","adbe.pkcs7.sha1"]);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||""}}class Encodings extends XFAObject{constructor(e){super(Mo,"encodings",!0);this.id=e.id||"";this.type=getStringOption(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||"";this.encoding=new XFAObjectArray}}class Encrypt extends XFAObject{constructor(e){super(Mo,"encrypt",!0);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.certificate=null}}class EncryptData extends XFAObject{constructor(e){super(Mo,"encryptData",!0);this.id=e.id||"";this.operation=getStringOption(e.operation,["encrypt","decrypt"]);this.target=e.target||"";this.use=e.use||"";this.usehref=e.usehref||"";this.filter=null;this.manifest=null}}class Encryption extends XFAObject{constructor(e){super(Mo,"encryption",!0);this.id=e.id||"";this.type=getStringOption(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||"";this.certificate=new XFAObjectArray}}class EncryptionMethod extends OptionObject{constructor(e){super(Mo,"encryptionMethod",["","AES256-CBC","TRIPLEDES-CBC","AES128-CBC","AES192-CBC"]);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||""}}class EncryptionMethods extends XFAObject{constructor(e){super(Mo,"encryptionMethods",!0);this.id=e.id||"";this.type=getStringOption(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||"";this.encryptionMethod=new XFAObjectArray}}class Event extends XFAObject{constructor(e){super(Mo,"event",!0);this.activity=getStringOption(e.activity,["click","change","docClose","docReady","enter","exit","full","indexChange","initialize","mouseDown","mouseEnter","mouseExit","mouseUp","postExecute","postOpen","postPrint","postSave","postSign","postSubmit","preExecute","preOpen","prePrint","preSave","preSign","preSubmit","ready","validationState"]);this.id=e.id||"";this.listen=getStringOption(e.listen,["refOnly","refAndDescendents"]);this.name=e.name||"";this.ref=e.ref||"";this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null;this.encryptData=null;this.execute=null;this.script=null;this.signData=null;this.submit=null}}class ExData extends ContentObject{constructor(e){super(Mo,"exData");this.contentType=e.contentType||"";this.href=e.href||"";this.id=e.id||"";this.maxLength=getInteger({data:e.maxLength,defaultValue:-1,validate:e=>e>=-1});this.name=e.name||"";this.rid=e.rid||"";this.transferEncoding=getStringOption(e.transferEncoding,["none","base64","package"]);this.use=e.use||"";this.usehref=e.usehref||""}[ps](){return"text/html"===this.contentType}[Ts](e){if("text/html"===this.contentType&&e[vs]===Js.xhtml.id){this[Hn]=e;return!0}if("text/xml"===this.contentType){this[Hn]=e;return!0}return!1}[zs](e){return"text/html"===this.contentType&&this[Hn]?this[Hn][zs](e):HTMLResult.EMPTY}}class ExObject extends XFAObject{constructor(e){super(Mo,"exObject",!0);this.archive=e.archive||"";this.classId=e.classId||"";this.codeBase=e.codeBase||"";this.codeType=e.codeType||"";this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null;this.boolean=new XFAObjectArray;this.date=new XFAObjectArray;this.dateTime=new XFAObjectArray;this.decimal=new XFAObjectArray;this.exData=new XFAObjectArray;this.exObject=new XFAObjectArray;this.float=new XFAObjectArray;this.image=new XFAObjectArray;this.integer=new XFAObjectArray;this.text=new XFAObjectArray;this.time=new XFAObjectArray}}class ExclGroup extends XFAObject{constructor(e){super(Mo,"exclGroup",!0);this.access=getStringOption(e.access,["open","nonInteractive","protected","readOnly"]);this.accessKey=e.accessKey||"";this.anchorType=getStringOption(e.anchorType,["topLeft","bottomCenter","bottomLeft","bottomRight","middleCenter","middleLeft","middleRight","topCenter","topRight"]);this.colSpan=getInteger({data:e.colSpan,defaultValue:1,validate:e=>e>=1||-1===e});this.h=e.h?getMeasurement(e.h):"";this.hAlign=getStringOption(e.hAlign,["left","center","justify","justifyAll","radix","right"]);this.id=e.id||"";this.layout=getStringOption(e.layout,["position","lr-tb","rl-row","rl-tb","row","table","tb"]);this.maxH=getMeasurement(e.maxH,"0pt");this.maxW=getMeasurement(e.maxW,"0pt");this.minH=getMeasurement(e.minH,"0pt");this.minW=getMeasurement(e.minW,"0pt");this.name=e.name||"";this.presence=getStringOption(e.presence,["visible","hidden","inactive","invisible"]);this.relevant=getRelevant(e.relevant);this.use=e.use||"";this.usehref=e.usehref||"";this.w=e.w?getMeasurement(e.w):"";this.x=getMeasurement(e.x,"0pt");this.y=getMeasurement(e.y,"0pt");this.assist=null;this.bind=null;this.border=null;this.calculate=null;this.caption=null;this.desc=null;this.extras=null;this.margin=null;this.para=null;this.traversal=null;this.validate=null;this.connect=new XFAObjectArray;this.event=new XFAObjectArray;this.field=new XFAObjectArray;this.setProperty=new XFAObjectArray}[ms](){return!0}[us](){return!0}[Xs](e){for(const t of this.field.children){if(!t.value){const e=new Value({});t[Pn](e);t.value=e}t.value[Xs](e)}}[Ss](){return this.layout.endsWith("-tb")&&0===this[$n].attempt&&this[$n].numberInLine>0||this[cs]()[Ss]()}[xs](){const e=this[os]();if(!e[xs]())return!1;if(void 0!==this[$n]._isSplittable)return this[$n]._isSplittable;if("position"===this.layout||this.layout.includes("row")){this[$n]._isSplittable=!1;return!1}if(e.layout?.endsWith("-tb")&&0!==e[$n].numberInLine)return!1;this[$n]._isSplittable=!0;return!0}[Vn](){return flushHTML(this)}[En](e,t){addHTML(this,e,t)}[Yn](){return getAvailableSpace(this)}[zs](e){setTabIndex(this);if("hidden"===this.presence||"inactive"===this.presence||0===this.h||0===this.w)return HTMLResult.EMPTY;fixDimensions(this);const t=[],a={id:this[Vs],class:[]};setAccess(this,a.class);this[$n]||=Object.create(null);Object.assign(this[$n],{children:t,attributes:a,attempt:0,line:null,numberInLine:0,availableSpace:{width:Math.min(this.w||1/0,e.width),height:Math.min(this.h||1/0,e.height)},width:0,height:0,prevHeight:0,currentWidth:0});const r=this[xs]();r||setFirstUnsplittable(this);if(!checkDimensions(this,e))return HTMLResult.FAILURE;const i=new Set(["field"]);if(this.layout.includes("row")){const e=this[os]().columnWidths;if(Array.isArray(e)&&e.length>0){this[$n].columnWidths=e;this[$n].currentColumn=0}}const n=toStyle(this,"anchorType","dimensions","position","presence","border","margin","hAlign"),s=["xfaExclgroup"],o=layoutClass(this);o&&s.push(o);isPrintOnly(this)&&s.push("xfaPrintOnly");a.style=n;a.class=s;this.name&&(a.xfaName=this.name);this[Rs]();const c="lr-tb"===this.layout||"rl-tb"===this.layout,l=c?2:1;for(;this[$n].attempte>=1||-1===e});this.h=e.h?getMeasurement(e.h):"";this.hAlign=getStringOption(e.hAlign,["left","center","justify","justifyAll","radix","right"]);this.id=e.id||"";this.locale=e.locale||"";this.maxH=getMeasurement(e.maxH,"0pt");this.maxW=getMeasurement(e.maxW,"0pt");this.minH=getMeasurement(e.minH,"0pt");this.minW=getMeasurement(e.minW,"0pt");this.name=e.name||"";this.presence=getStringOption(e.presence,["visible","hidden","inactive","invisible"]);this.relevant=getRelevant(e.relevant);this.rotate=getInteger({data:e.rotate,defaultValue:0,validate:e=>e%90==0});this.use=e.use||"";this.usehref=e.usehref||"";this.w=e.w?getMeasurement(e.w):"";this.x=getMeasurement(e.x,"0pt");this.y=getMeasurement(e.y,"0pt");this.assist=null;this.bind=null;this.border=null;this.calculate=null;this.caption=null;this.desc=null;this.extras=null;this.font=null;this.format=null;this.items=new XFAObjectArray(2);this.keep=null;this.margin=null;this.para=null;this.traversal=null;this.ui=null;this.validate=null;this.value=null;this.bindItems=new XFAObjectArray;this.connect=new XFAObjectArray;this.event=new XFAObjectArray;this.setProperty=new XFAObjectArray}[ms](){return!0}[Xs](e){_setValue(this,e)}[zs](e){setTabIndex(this);if(!this.ui){this.ui=new Ui({});this.ui[hs]=this[hs];this[Pn](this.ui);let e;switch(this.items.children.length){case 0:e=new TextEdit({});this.ui.textEdit=e;break;case 1:e=new CheckButton({});this.ui.checkButton=e;break;case 2:e=new ChoiceList({});this.ui.choiceList=e}this.ui[Pn](e)}if(!this.ui||"hidden"===this.presence||"inactive"===this.presence||0===this.h||0===this.w)return HTMLResult.EMPTY;this.caption&&delete this.caption[$n];this[Rs]();const t=this.caption?this.caption[zs](e).html:null,a=this.w,r=this.h;let i=0,n=0;if(this.margin){i=this.margin.leftInset+this.margin.rightInset;n=this.margin.topInset+this.margin.bottomInset}let s=null;if(""===this.w||""===this.h){let t=null,a=null,r=0,o=0;if(this.ui.checkButton)r=o=this.ui.checkButton.size;else{const{w:t,h:a}=layoutNode(this,e);if(null!==t){r=t;o=a}else o=function fonts_getMetrics(e,t=!1){let a=null;if(e){const t=stripQuotes(e.typeface),r=e[hs].fontFinder.find(t);a=selectFont(e,r)}if(!a)return{lineHeight:12,lineGap:2,lineNoGap:10};const r=e.size||10,i=a.lineHeight?Math.max(t?0:1.2,a.lineHeight):1.2,n=void 0===a.lineGap?.2:a.lineGap;return{lineHeight:i*r,lineGap:n*r,lineNoGap:Math.max(1,i-n)*r}}(this.font,!0).lineNoGap}s=getBorderDims(this.ui[as]());r+=s.w;o+=s.h;if(this.caption){const{w:i,h:n,isBroken:s}=this.caption[as](e);if(s&&this[os]()[Ss]()){this[Bs]();return HTMLResult.FAILURE}t=i;a=n;switch(this.caption.placement){case"left":case"right":case"inline":t+=r;break;case"top":case"bottom":a+=o}}else{t=r;a=o}if(t&&""===this.w){t+=i;this.w=Math.min(this.maxW<=0?1/0:this.maxW,this.minW+1e>=1&&e<=5});this.appearanceFilter=null;this.certificates=null;this.digestMethods=null;this.encodings=null;this.encryptionMethods=null;this.handler=null;this.lockDocument=null;this.mdp=null;this.reasons=null;this.timeStamp=null}}class Float extends ContentObject{constructor(e){super(Mo,"float");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}[Gn](){const e=parseFloat(this[Hn].trim());this[Hn]=isNaN(e)?null:e}[zs](e){return valueToHtml(null!==this[Hn]?this[Hn].toString():"")}}class template_Font extends XFAObject{constructor(e){super(Mo,"font",!0);this.baselineShift=getMeasurement(e.baselineShift);this.fontHorizontalScale=getFloat({data:e.fontHorizontalScale,defaultValue:100,validate:e=>e>=0});this.fontVerticalScale=getFloat({data:e.fontVerticalScale,defaultValue:100,validate:e=>e>=0});this.id=e.id||"";this.kerningMode=getStringOption(e.kerningMode,["none","pair"]);this.letterSpacing=getMeasurement(e.letterSpacing,"0");this.lineThrough=getInteger({data:e.lineThrough,defaultValue:0,validate:e=>1===e||2===e});this.lineThroughPeriod=getStringOption(e.lineThroughPeriod,["all","word"]);this.overline=getInteger({data:e.overline,defaultValue:0,validate:e=>1===e||2===e});this.overlinePeriod=getStringOption(e.overlinePeriod,["all","word"]);this.posture=getStringOption(e.posture,["normal","italic"]);this.size=getMeasurement(e.size,"10pt");this.typeface=e.typeface||"Courier";this.underline=getInteger({data:e.underline,defaultValue:0,validate:e=>1===e||2===e});this.underlinePeriod=getStringOption(e.underlinePeriod,["all","word"]);this.use=e.use||"";this.usehref=e.usehref||"";this.weight=getStringOption(e.weight,["normal","bold"]);this.extras=null;this.fill=null}[_n](e){super[_n](e);this[hs].usedTypefaces.add(this.typeface)}[Gs](){const e=toStyle(this,"fill"),t=e.color;if(t)if("#000000"===t)delete e.color;else if(!t.startsWith("#")){e.background=t;e.backgroundClip="text";e.color="transparent"}this.baselineShift&&(e.verticalAlign=measureToString(this.baselineShift));e.fontKerning="none"===this.kerningMode?"none":"normal";e.letterSpacing=measureToString(this.letterSpacing);if(0!==this.lineThrough){e.textDecoration="line-through";2===this.lineThrough&&(e.textDecorationStyle="double")}if(0!==this.overline){e.textDecoration="overline";2===this.overline&&(e.textDecorationStyle="double")}e.fontStyle=this.posture;e.fontSize=measureToString(.99*this.size);setFontFamily(this,this,this[hs].fontFinder,e);if(0!==this.underline){e.textDecoration="underline";2===this.underline&&(e.textDecorationStyle="double")}e.fontWeight=this.weight;return e}}class Format extends XFAObject{constructor(e){super(Mo,"format",!0);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null;this.picture=null}}class Handler extends StringObject{constructor(e){super(Mo,"handler");this.id=e.id||"";this.type=getStringOption(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||""}}class Hyphenation extends XFAObject{constructor(e){super(Mo,"hyphenation");this.excludeAllCaps=getInteger({data:e.excludeAllCaps,defaultValue:0,validate:e=>1===e});this.excludeInitialCap=getInteger({data:e.excludeInitialCap,defaultValue:0,validate:e=>1===e});this.hyphenate=getInteger({data:e.hyphenate,defaultValue:0,validate:e=>1===e});this.id=e.id||"";this.pushCharacterCount=getInteger({data:e.pushCharacterCount,defaultValue:3,validate:e=>e>=0});this.remainCharacterCount=getInteger({data:e.remainCharacterCount,defaultValue:3,validate:e=>e>=0});this.use=e.use||"";this.usehref=e.usehref||"";this.wordCharacterCount=getInteger({data:e.wordCharacterCount,defaultValue:7,validate:e=>e>=0})}}class Image extends StringObject{constructor(e){super(Mo,"image");this.aspect=getStringOption(e.aspect,["fit","actual","height","none","width"]);this.contentType=e.contentType||"";this.href=e.href||"";this.id=e.id||"";this.name=e.name||"";this.transferEncoding=getStringOption(e.transferEncoding,["base64","none","package"]);this.use=e.use||"";this.usehref=e.usehref||""}[zs](){if(this.contentType&&!Ro.has(this.contentType.toLowerCase()))return HTMLResult.EMPTY;let e=this[hs].images?.get(this.href);if(!e&&(this.href||!this[Hn]))return HTMLResult.EMPTY;e||"base64"!==this.transferEncoding||(e=function fromBase64Util(e){return Uint8Array.fromBase64?Uint8Array.fromBase64(e):stringToBytes(atob(e))}(this[Hn]));if(!e)return HTMLResult.EMPTY;if(!this.contentType){for(const[t,a]of No)if(e.length>t.length&&t.every((t,a)=>t===e[a])){this.contentType=a;break}if(!this.contentType)return HTMLResult.EMPTY}const t=new Blob([e],{type:this.contentType});let a;switch(this.aspect){case"fit":case"actual":break;case"height":a={height:"100%",objectFit:"fill"};break;case"none":a={width:"100%",height:"100%",objectFit:"fill"};break;case"width":a={width:"100%",objectFit:"fill"}}const r=this[cs]();return HTMLResult.success({name:"img",attributes:{class:["xfaImage"],style:a,src:URL.createObjectURL(t),alt:r?ariaLabel(r[cs]()):null}})}}class ImageEdit extends XFAObject{constructor(e){super(Mo,"imageEdit",!0);this.data=getStringOption(e.data,["link","embed"]);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.border=null;this.extras=null;this.margin=null}[zs](e){return"embed"===this.data?HTMLResult.success({name:"div",children:[],attributes:{}}):HTMLResult.EMPTY}}class Integer extends ContentObject{constructor(e){super(Mo,"integer");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}[Gn](){const e=parseInt(this[Hn].trim(),10);this[Hn]=isNaN(e)?null:e}[zs](e){return valueToHtml(null!==this[Hn]?this[Hn].toString():"")}}class Issuers extends XFAObject{constructor(e){super(Mo,"issuers",!0);this.id=e.id||"";this.type=getStringOption(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||"";this.certificate=new XFAObjectArray}}class Items extends XFAObject{constructor(e){super(Mo,"items",!0);this.id=e.id||"";this.name=e.name||"";this.presence=getStringOption(e.presence,["visible","hidden","inactive","invisible"]);this.ref=e.ref||"";this.save=getInteger({data:e.save,defaultValue:0,validate:e=>1===e});this.use=e.use||"";this.usehref=e.usehref||"";this.boolean=new XFAObjectArray;this.date=new XFAObjectArray;this.dateTime=new XFAObjectArray;this.decimal=new XFAObjectArray;this.exData=new XFAObjectArray;this.float=new XFAObjectArray;this.image=new XFAObjectArray;this.integer=new XFAObjectArray;this.text=new XFAObjectArray;this.time=new XFAObjectArray}[zs](){const e=[];for(const t of this[is]())e.push(t[Hs]());return HTMLResult.success(e)}}class Keep extends XFAObject{constructor(e){super(Mo,"keep",!0);this.id=e.id||"";const t=["none","contentArea","pageArea"];this.intact=getStringOption(e.intact,t);this.next=getStringOption(e.next,t);this.previous=getStringOption(e.previous,t);this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null}}class KeyUsage extends XFAObject{constructor(e){super(Mo,"keyUsage");const t=["","yes","no"];this.crlSign=getStringOption(e.crlSign,t);this.dataEncipherment=getStringOption(e.dataEncipherment,t);this.decipherOnly=getStringOption(e.decipherOnly,t);this.digitalSignature=getStringOption(e.digitalSignature,t);this.encipherOnly=getStringOption(e.encipherOnly,t);this.id=e.id||"";this.keyAgreement=getStringOption(e.keyAgreement,t);this.keyCertSign=getStringOption(e.keyCertSign,t);this.keyEncipherment=getStringOption(e.keyEncipherment,t);this.nonRepudiation=getStringOption(e.nonRepudiation,t);this.type=getStringOption(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||""}}class Line extends XFAObject{constructor(e){super(Mo,"line",!0);this.hand=getStringOption(e.hand,["even","left","right"]);this.id=e.id||"";this.slope=getStringOption(e.slope,["\\","/"]);this.use=e.use||"";this.usehref=e.usehref||"";this.edge=null}[zs](){const e=this[cs]()[cs](),t=this.edge||new Edge({}),a=t[Gs](),r=Object.create(null),i="visible"===t.presence?t.thickness:0;r.strokeWidth=measureToString(i);r.stroke=a.color;let n,s,o,c,l="100%",h="100%";if(e.w<=i){[n,s,o,c]=["50%",0,"50%","100%"];l=r.strokeWidth}else if(e.h<=i){[n,s,o,c]=[0,"50%","100%","50%"];h=r.strokeWidth}else"\\"===this.slope?[n,s,o,c]=[0,0,"100%","100%"]:[n,s,o,c]=[0,"100%","100%",0];const u={name:"svg",children:[{name:"line",attributes:{xmlns:Do,x1:n,y1:s,x2:o,y2:c,style:r}}],attributes:{xmlns:Do,width:l,height:h,style:{overflow:"visible"}}};if(hasMargin(e))return HTMLResult.success({name:"div",attributes:{style:{display:"inline",width:"100%",height:"100%"}},children:[u]});u.attributes.style.position="absolute";return HTMLResult.success(u)}}class Linear extends XFAObject{constructor(e){super(Mo,"linear",!0);this.id=e.id||"";this.type=getStringOption(e.type,["toRight","toBottom","toLeft","toTop"]);this.use=e.use||"";this.usehref=e.usehref||"";this.color=null;this.extras=null}[Gs](e){e=e?e[Gs]():"#FFFFFF";return`linear-gradient(${this.type.replace(/([RBLT])/," $1").toLowerCase()}, ${e}, ${this.color?this.color[Gs]():"#000000"})`}}class LockDocument extends ContentObject{constructor(e){super(Mo,"lockDocument");this.id=e.id||"";this.type=getStringOption(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||""}[Gn](){this[Hn]=getStringOption(this[Hn],["auto","0","1"])}}class Manifest extends XFAObject{constructor(e){super(Mo,"manifest",!0);this.action=getStringOption(e.action,["include","all","exclude"]);this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null;this.ref=new XFAObjectArray}}class Margin extends XFAObject{constructor(e){super(Mo,"margin",!0);this.bottomInset=getMeasurement(e.bottomInset,"0");this.id=e.id||"";this.leftInset=getMeasurement(e.leftInset,"0");this.rightInset=getMeasurement(e.rightInset,"0");this.topInset=getMeasurement(e.topInset,"0");this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null}[Gs](){return{margin:measureToString(this.topInset)+" "+measureToString(this.rightInset)+" "+measureToString(this.bottomInset)+" "+measureToString(this.leftInset)}}}class Mdp extends XFAObject{constructor(e){super(Mo,"mdp");this.id=e.id||"";this.permissions=getInteger({data:e.permissions,defaultValue:2,validate:e=>1===e||3===e});this.signatureType=getStringOption(e.signatureType,["filler","author"]);this.use=e.use||"";this.usehref=e.usehref||""}}class Medium extends XFAObject{constructor(e){super(Mo,"medium");this.id=e.id||"";this.imagingBBox=function getBBox(e){const t=-1;if(!e)return{x:t,y:t,width:t,height:t};const a=e.split(",",4).map(e=>getMeasurement(e.trim(),"-1"));if(a.length<4||a[2]<0||a[3]<0)return{x:t,y:t,width:t,height:t};const[r,i,n,s]=a;return{x:r,y:i,width:n,height:s}}(e.imagingBBox);this.long=getMeasurement(e.long);this.orientation=getStringOption(e.orientation,["portrait","landscape"]);this.short=getMeasurement(e.short);this.stock=e.stock||"";this.trayIn=getStringOption(e.trayIn,["auto","delegate","pageFront"]);this.trayOut=getStringOption(e.trayOut,["auto","delegate"]);this.use=e.use||"";this.usehref=e.usehref||""}}class Message extends XFAObject{constructor(e){super(Mo,"message",!0);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.text=new XFAObjectArray}}class NumericEdit extends XFAObject{constructor(e){super(Mo,"numericEdit",!0);this.hScrollPolicy=getStringOption(e.hScrollPolicy,["auto","off","on"]);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.border=null;this.comb=null;this.extras=null;this.margin=null}[zs](e){const t=toStyle(this,"border","font","margin"),a=this[cs]()[cs](),r={name:"input",attributes:{type:"text",fieldId:a[Vs],dataId:a[Wn]?.[Vs]||a[Vs],class:["xfaTextfield"],style:t,"aria-label":ariaLabel(a),"aria-required":!1}};if(isRequired(a)){r.attributes["aria-required"]=!0;r.attributes.required=!0}return HTMLResult.success({name:"label",attributes:{class:["xfaLabel"]},children:[r]})}}class Occur extends XFAObject{constructor(e){super(Mo,"occur",!0);this.id=e.id||"";this.initial=""!==e.initial?getInteger({data:e.initial,defaultValue:"",validate:e=>!0}):"";this.max=""!==e.max?getInteger({data:e.max,defaultValue:1,validate:e=>!0}):"";this.min=""!==e.min?getInteger({data:e.min,defaultValue:1,validate:e=>!0}):"";this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null}[_n](){const e=this[cs](),t=this.min;""===this.min&&(this.min=e instanceof PageArea||e instanceof PageSet?0:1);""===this.max&&(this.max=""===t?e instanceof PageArea||e instanceof PageSet?-1:1:this.min);-1!==this.max&&this.max!0});this.name=e.name||"";this.numbered=getInteger({data:e.numbered,defaultValue:1,validate:e=>!0});this.oddOrEven=getStringOption(e.oddOrEven,["any","even","odd"]);this.pagePosition=getStringOption(e.pagePosition,["any","first","last","only","rest"]);this.relevant=getRelevant(e.relevant);this.use=e.use||"";this.usehref=e.usehref||"";this.desc=null;this.extras=null;this.medium=null;this.occur=null;this.area=new XFAObjectArray;this.contentArea=new XFAObjectArray;this.draw=new XFAObjectArray;this.exclGroup=new XFAObjectArray;this.field=new XFAObjectArray;this.subform=new XFAObjectArray}[ks](){if(!this[$n]){this[$n]={numberOfUse:0};return!0}return!this.occur||-1===this.occur.max||this[$n].numberOfUsee.oddOrEven===t&&e.pagePosition===a);if(r)return r;r=this.pageArea.children.find(e=>"any"===e.oddOrEven&&e.pagePosition===a);if(r)return r;r=this.pageArea.children.find(e=>"any"===e.oddOrEven&&"any"===e.pagePosition);return r||this.pageArea.children[0]}}class Para extends XFAObject{constructor(e){super(Mo,"para",!0);this.hAlign=getStringOption(e.hAlign,["left","center","justify","justifyAll","radix","right"]);this.id=e.id||"";this.lineHeight=e.lineHeight?getMeasurement(e.lineHeight,"0pt"):"";this.marginLeft=e.marginLeft?getMeasurement(e.marginLeft,"0pt"):"";this.marginRight=e.marginRight?getMeasurement(e.marginRight,"0pt"):"";this.orphans=getInteger({data:e.orphans,defaultValue:0,validate:e=>e>=0});this.preserve=e.preserve||"";this.radixOffset=e.radixOffset?getMeasurement(e.radixOffset,"0pt"):"";this.spaceAbove=e.spaceAbove?getMeasurement(e.spaceAbove,"0pt"):"";this.spaceBelow=e.spaceBelow?getMeasurement(e.spaceBelow,"0pt"):"";this.tabDefault=e.tabDefault?getMeasurement(this.tabDefault):"";this.tabStops=(e.tabStops||"").trim().split(/\s+/).map((e,t)=>t%2==1?getMeasurement(e):e);this.textIndent=e.textIndent?getMeasurement(e.textIndent,"0pt"):"";this.use=e.use||"";this.usehref=e.usehref||"";this.vAlign=getStringOption(e.vAlign,["top","bottom","middle"]);this.widows=getInteger({data:e.widows,defaultValue:0,validate:e=>e>=0});this.hyphenation=null}[Gs](){const e=toStyle(this,"hAlign");""!==this.marginLeft&&(e.paddingLeft=measureToString(this.marginLeft));""!==this.marginRight&&(e.paddingRight=measureToString(this.marginRight));""!==this.spaceAbove&&(e.paddingTop=measureToString(this.spaceAbove));""!==this.spaceBelow&&(e.paddingBottom=measureToString(this.spaceBelow));if(""!==this.textIndent){e.textIndent=measureToString(this.textIndent);fixTextIndent(e)}this.lineHeight>0&&(e.lineHeight=measureToString(this.lineHeight));""!==this.tabDefault&&(e.tabSize=measureToString(this.tabDefault));this.tabStops.length;this.hyphenatation&&Object.assign(e,this.hyphenatation[Gs]());return e}}class PasswordEdit extends XFAObject{constructor(e){super(Mo,"passwordEdit",!0);this.hScrollPolicy=getStringOption(e.hScrollPolicy,["auto","off","on"]);this.id=e.id||"";this.passwordChar=e.passwordChar||"*";this.use=e.use||"";this.usehref=e.usehref||"";this.border=null;this.extras=null;this.margin=null}}class template_Pattern extends XFAObject{constructor(e){super(Mo,"pattern",!0);this.id=e.id||"";this.type=getStringOption(e.type,["crossHatch","crossDiagonal","diagonalLeft","diagonalRight","horizontal","vertical"]);this.use=e.use||"";this.usehref=e.usehref||"";this.color=null;this.extras=null}[Gs](e){e=e?e[Gs]():"#FFFFFF";const t=this.color?this.color[Gs]():"#000000",a="repeating-linear-gradient",r=`${e},${e} 5px,${t} 5px,${t} 10px`;switch(this.type){case"crossHatch":return`${a}(to top,${r}) ${a}(to right,${r})`;case"crossDiagonal":return`${a}(45deg,${r}) ${a}(-45deg,${r})`;case"diagonalLeft":return`${a}(45deg,${r})`;case"diagonalRight":return`${a}(-45deg,${r})`;case"horizontal":return`${a}(to top,${r})`;case"vertical":return`${a}(to right,${r})`}return""}}class Picture extends StringObject{constructor(e){super(Mo,"picture");this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||""}}class Proto extends XFAObject{constructor(e){super(Mo,"proto",!0);this.appearanceFilter=new XFAObjectArray;this.arc=new XFAObjectArray;this.area=new XFAObjectArray;this.assist=new XFAObjectArray;this.barcode=new XFAObjectArray;this.bindItems=new XFAObjectArray;this.bookend=new XFAObjectArray;this.boolean=new XFAObjectArray;this.border=new XFAObjectArray;this.break=new XFAObjectArray;this.breakAfter=new XFAObjectArray;this.breakBefore=new XFAObjectArray;this.button=new XFAObjectArray;this.calculate=new XFAObjectArray;this.caption=new XFAObjectArray;this.certificate=new XFAObjectArray;this.certificates=new XFAObjectArray;this.checkButton=new XFAObjectArray;this.choiceList=new XFAObjectArray;this.color=new XFAObjectArray;this.comb=new XFAObjectArray;this.connect=new XFAObjectArray;this.contentArea=new XFAObjectArray;this.corner=new XFAObjectArray;this.date=new XFAObjectArray;this.dateTime=new XFAObjectArray;this.dateTimeEdit=new XFAObjectArray;this.decimal=new XFAObjectArray;this.defaultUi=new XFAObjectArray;this.desc=new XFAObjectArray;this.digestMethod=new XFAObjectArray;this.digestMethods=new XFAObjectArray;this.draw=new XFAObjectArray;this.edge=new XFAObjectArray;this.encoding=new XFAObjectArray;this.encodings=new XFAObjectArray;this.encrypt=new XFAObjectArray;this.encryptData=new XFAObjectArray;this.encryption=new XFAObjectArray;this.encryptionMethod=new XFAObjectArray;this.encryptionMethods=new XFAObjectArray;this.event=new XFAObjectArray;this.exData=new XFAObjectArray;this.exObject=new XFAObjectArray;this.exclGroup=new XFAObjectArray;this.execute=new XFAObjectArray;this.extras=new XFAObjectArray;this.field=new XFAObjectArray;this.fill=new XFAObjectArray;this.filter=new XFAObjectArray;this.float=new XFAObjectArray;this.font=new XFAObjectArray;this.format=new XFAObjectArray;this.handler=new XFAObjectArray;this.hyphenation=new XFAObjectArray;this.image=new XFAObjectArray;this.imageEdit=new XFAObjectArray;this.integer=new XFAObjectArray;this.issuers=new XFAObjectArray;this.items=new XFAObjectArray;this.keep=new XFAObjectArray;this.keyUsage=new XFAObjectArray;this.line=new XFAObjectArray;this.linear=new XFAObjectArray;this.lockDocument=new XFAObjectArray;this.manifest=new XFAObjectArray;this.margin=new XFAObjectArray;this.mdp=new XFAObjectArray;this.medium=new XFAObjectArray;this.message=new XFAObjectArray;this.numericEdit=new XFAObjectArray;this.occur=new XFAObjectArray;this.oid=new XFAObjectArray;this.oids=new XFAObjectArray;this.overflow=new XFAObjectArray;this.pageArea=new XFAObjectArray;this.pageSet=new XFAObjectArray;this.para=new XFAObjectArray;this.passwordEdit=new XFAObjectArray;this.pattern=new XFAObjectArray;this.picture=new XFAObjectArray;this.radial=new XFAObjectArray;this.reason=new XFAObjectArray;this.reasons=new XFAObjectArray;this.rectangle=new XFAObjectArray;this.ref=new XFAObjectArray;this.script=new XFAObjectArray;this.setProperty=new XFAObjectArray;this.signData=new XFAObjectArray;this.signature=new XFAObjectArray;this.signing=new XFAObjectArray;this.solid=new XFAObjectArray;this.speak=new XFAObjectArray;this.stipple=new XFAObjectArray;this.subform=new XFAObjectArray;this.subformSet=new XFAObjectArray;this.subjectDN=new XFAObjectArray;this.subjectDNs=new XFAObjectArray;this.submit=new XFAObjectArray;this.text=new XFAObjectArray;this.textEdit=new XFAObjectArray;this.time=new XFAObjectArray;this.timeStamp=new XFAObjectArray;this.toolTip=new XFAObjectArray;this.traversal=new XFAObjectArray;this.traverse=new XFAObjectArray;this.ui=new XFAObjectArray;this.validate=new XFAObjectArray;this.value=new XFAObjectArray;this.variables=new XFAObjectArray}}class Radial extends XFAObject{constructor(e){super(Mo,"radial",!0);this.id=e.id||"";this.type=getStringOption(e.type,["toEdge","toCenter"]);this.use=e.use||"";this.usehref=e.usehref||"";this.color=null;this.extras=null}[Gs](e){e=e?e[Gs]():"#FFFFFF";const t=this.color?this.color[Gs]():"#000000";return`radial-gradient(circle at center, ${"toEdge"===this.type?`${e},${t}`:`${t},${e}`})`}}class Reason extends StringObject{constructor(e){super(Mo,"reason");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}}class Reasons extends XFAObject{constructor(e){super(Mo,"reasons",!0);this.id=e.id||"";this.type=getStringOption(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||"";this.reason=new XFAObjectArray}}class Rectangle extends XFAObject{constructor(e){super(Mo,"rectangle",!0);this.hand=getStringOption(e.hand,["even","left","right"]);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.corner=new XFAObjectArray(4);this.edge=new XFAObjectArray(4);this.fill=null}[zs](){const e=this.edge.children.length?this.edge.children[0]:new Edge({}),t=e[Gs](),a=Object.create(null);"visible"===this.fill?.presence?Object.assign(a,this.fill[Gs]()):a.fill="transparent";a.strokeWidth=measureToString("visible"===e.presence?e.thickness:0);a.stroke=t.color;const r=(this.corner.children.length?this.corner.children[0]:new Corner({}))[Gs](),i={name:"svg",children:[{name:"rect",attributes:{xmlns:Do,width:"100%",height:"100%",x:0,y:0,rx:r.radius,ry:r.radius,style:a}}],attributes:{xmlns:Do,style:{overflow:"visible"},width:"100%",height:"100%"}};if(hasMargin(this[cs]()[cs]()))return HTMLResult.success({name:"div",attributes:{style:{display:"inline",width:"100%",height:"100%"}},children:[i]});i.attributes.style.position="absolute";return HTMLResult.success(i)}}class RefElement extends StringObject{constructor(e){super(Mo,"ref");this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||""}}class Script extends StringObject{constructor(e){super(Mo,"script");this.binding=e.binding||"";this.contentType=e.contentType||"";this.id=e.id||"";this.name=e.name||"";this.runAt=getStringOption(e.runAt,["client","both","server"]);this.use=e.use||"";this.usehref=e.usehref||""}}class SetProperty extends XFAObject{constructor(e){super(Mo,"setProperty");this.connection=e.connection||"";this.ref=e.ref||"";this.target=e.target||""}}class SignData extends XFAObject{constructor(e){super(Mo,"signData",!0);this.id=e.id||"";this.operation=getStringOption(e.operation,["sign","clear","verify"]);this.ref=e.ref||"";this.target=e.target||"";this.use=e.use||"";this.usehref=e.usehref||"";this.filter=null;this.manifest=null}}class Signature extends XFAObject{constructor(e){super(Mo,"signature",!0);this.id=e.id||"";this.type=getStringOption(e.type,["PDF1.3","PDF1.6"]);this.use=e.use||"";this.usehref=e.usehref||"";this.border=null;this.extras=null;this.filter=null;this.manifest=null;this.margin=null}}class Signing extends XFAObject{constructor(e){super(Mo,"signing",!0);this.id=e.id||"";this.type=getStringOption(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||"";this.certificate=new XFAObjectArray}}class Solid extends XFAObject{constructor(e){super(Mo,"solid",!0);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null}[Gs](e){return e?e[Gs]():"#FFFFFF"}}class Speak extends StringObject{constructor(e){super(Mo,"speak");this.disable=getInteger({data:e.disable,defaultValue:0,validate:e=>1===e});this.id=e.id||"";this.priority=getStringOption(e.priority,["custom","caption","name","toolTip"]);this.rid=e.rid||"";this.use=e.use||"";this.usehref=e.usehref||""}}class Stipple extends XFAObject{constructor(e){super(Mo,"stipple",!0);this.id=e.id||"";this.rate=getInteger({data:e.rate,defaultValue:50,validate:e=>e>=0&&e<=100});this.use=e.use||"";this.usehref=e.usehref||"";this.color=null;this.extras=null}[Gs](e){const t=this.rate/100;return Util.makeHexColor(Math.round(e.value.r*(1-t)+this.value.r*t),Math.round(e.value.g*(1-t)+this.value.g*t),Math.round(e.value.b*(1-t)+this.value.b*t))}}class Subform extends XFAObject{constructor(e){super(Mo,"subform",!0);this.access=getStringOption(e.access,["open","nonInteractive","protected","readOnly"]);this.allowMacro=getInteger({data:e.allowMacro,defaultValue:0,validate:e=>1===e});this.anchorType=getStringOption(e.anchorType,["topLeft","bottomCenter","bottomLeft","bottomRight","middleCenter","middleLeft","middleRight","topCenter","topRight"]);this.colSpan=getInteger({data:e.colSpan,defaultValue:1,validate:e=>e>=1||-1===e});this.columnWidths=(e.columnWidths||"").trim().split(/\s+/).map(e=>"-1"===e?-1:getMeasurement(e));this.h=e.h?getMeasurement(e.h):"";this.hAlign=getStringOption(e.hAlign,["left","center","justify","justifyAll","radix","right"]);this.id=e.id||"";this.layout=getStringOption(e.layout,["position","lr-tb","rl-row","rl-tb","row","table","tb"]);this.locale=e.locale||"";this.maxH=getMeasurement(e.maxH,"0pt");this.maxW=getMeasurement(e.maxW,"0pt");this.mergeMode=getStringOption(e.mergeMode,["consumeData","matchTemplate"]);this.minH=getMeasurement(e.minH,"0pt");this.minW=getMeasurement(e.minW,"0pt");this.name=e.name||"";this.presence=getStringOption(e.presence,["visible","hidden","inactive","invisible"]);this.relevant=getRelevant(e.relevant);this.restoreState=getStringOption(e.restoreState,["manual","auto"]);this.scope=getStringOption(e.scope,["name","none"]);this.use=e.use||"";this.usehref=e.usehref||"";this.w=e.w?getMeasurement(e.w):"";this.x=getMeasurement(e.x,"0pt");this.y=getMeasurement(e.y,"0pt");this.assist=null;this.bind=null;this.bookend=null;this.border=null;this.break=null;this.calculate=null;this.desc=null;this.extras=null;this.keep=null;this.margin=null;this.occur=null;this.overflow=null;this.pageSet=null;this.para=null;this.traversal=null;this.validate=null;this.variables=null;this.area=new XFAObjectArray;this.breakAfter=new XFAObjectArray;this.breakBefore=new XFAObjectArray;this.connect=new XFAObjectArray;this.draw=new XFAObjectArray;this.event=new XFAObjectArray;this.exObject=new XFAObjectArray;this.exclGroup=new XFAObjectArray;this.field=new XFAObjectArray;this.proto=new XFAObjectArray;this.setProperty=new XFAObjectArray;this.subform=new XFAObjectArray;this.subformSet=new XFAObjectArray}[os](){const e=this[cs]();return e instanceof SubformSet?e[os]():e}[ms](){return!0}[Ss](){return this.layout.endsWith("-tb")&&0===this[$n].attempt&&this[$n].numberInLine>0||this[cs]()[Ss]()}*[ns](){yield*getContainedChildren(this)}[Vn](){return flushHTML(this)}[En](e,t){addHTML(this,e,t)}[Yn](){return getAvailableSpace(this)}[xs](){const e=this[os]();if(!e[xs]())return!1;if(void 0!==this[$n]._isSplittable)return this[$n]._isSplittable;if("position"===this.layout||this.layout.includes("row")){this[$n]._isSplittable=!1;return!1}if(this.keep&&"none"!==this.keep.intact){this[$n]._isSplittable=!1;return!1}if(e.layout?.endsWith("-tb")&&0!==e[$n].numberInLine)return!1;this[$n]._isSplittable=!0;return!0}[zs](e){setTabIndex(this);if(this.break){if("auto"!==this.break.after||""!==this.break.afterTarget){const e=new BreakAfter({targetType:this.break.after,target:this.break.afterTarget,startNew:this.break.startNew.toString()});e[hs]=this[hs];this[Pn](e);this.breakAfter.push(e)}if("auto"!==this.break.before||""!==this.break.beforeTarget){const e=new BreakBefore({targetType:this.break.before,target:this.break.beforeTarget,startNew:this.break.startNew.toString()});e[hs]=this[hs];this[Pn](e);this.breakBefore.push(e)}if(""!==this.break.overflowTarget){const e=new Overflow({target:this.break.overflowTarget,leader:this.break.overflowLeader,trailer:this.break.overflowTrailer});e[hs]=this[hs];this[Pn](e);this.overflow.push(e)}this[Ns](this.break);this.break=null}if("hidden"===this.presence||"inactive"===this.presence)return HTMLResult.EMPTY;(this.breakBefore.children.length>1||this.breakAfter.children.length>1)&&warn("XFA - Several breakBefore or breakAfter in subforms: please file a bug.");if(this.breakBefore.children.length>=1){const e=this.breakBefore.children[0];if(handleBreak(e))return HTMLResult.breakNode(e)}if(this[$n]?.afterBreakAfter)return HTMLResult.EMPTY;fixDimensions(this);const t=[],a={id:this[Vs],class:[]};setAccess(this,a.class);this[$n]||=Object.create(null);Object.assign(this[$n],{children:t,line:null,attributes:a,attempt:0,numberInLine:0,availableSpace:{width:Math.min(this.w||1/0,e.width),height:Math.min(this.h||1/0,e.height)},width:0,height:0,prevHeight:0,currentWidth:0});const r=this[ls](),i=r[$n].noLayoutFailure,n=this[xs]();n||setFirstUnsplittable(this);if(!checkDimensions(this,e))return HTMLResult.FAILURE;const s=new Set(["area","draw","exclGroup","field","subform","subformSet"]);if(this.layout.includes("row")){const e=this[os]().columnWidths;if(Array.isArray(e)&&e.length>0){this[$n].columnWidths=e;this[$n].currentColumn=0}}const o=toStyle(this,"anchorType","dimensions","position","presence","border","margin","hAlign"),c=["xfaSubform"],l=layoutClass(this);l&&c.push(l);a.style=o;a.class=c;this.name&&(a.xfaName=this.name);if(this.overflow){const t=this.overflow[as]();if(t.addLeader){t.addLeader=!1;handleOverflow(this,t.leader,e)}}this[Rs]();const h="lr-tb"===this.layout||"rl-tb"===this.layout,u=h?2:1;for(;this[$n].attempt=1){const e=this.breakAfter.children[0];if(handleBreak(e)){this[$n].afterBreakAfter=y;return HTMLResult.breakNode(e)}}delete this[$n];return y}}class SubformSet extends XFAObject{constructor(e){super(Mo,"subformSet",!0);this.id=e.id||"";this.name=e.name||"";this.relation=getStringOption(e.relation,["ordered","choice","unordered"]);this.relevant=getRelevant(e.relevant);this.use=e.use||"";this.usehref=e.usehref||"";this.bookend=null;this.break=null;this.desc=null;this.extras=null;this.occur=null;this.overflow=null;this.breakAfter=new XFAObjectArray;this.breakBefore=new XFAObjectArray;this.subform=new XFAObjectArray;this.subformSet=new XFAObjectArray}*[ns](){yield*getContainedChildren(this)}[os](){let e=this[cs]();for(;!(e instanceof Subform);)e=e[cs]();return e}[ms](){return!0}}class SubjectDN extends ContentObject{constructor(e){super(Mo,"subjectDN");this.delimiter=e.delimiter||",";this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}[Gn](){this[Hn]=new Map(this[Hn].split(this.delimiter).map(e=>{(e=e.split("=",2))[0]=e[0].trim();return e}))}}class SubjectDNs extends XFAObject{constructor(e){super(Mo,"subjectDNs",!0);this.id=e.id||"";this.type=getStringOption(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||"";this.subjectDN=new XFAObjectArray}}class Submit extends XFAObject{constructor(e){super(Mo,"submit",!0);this.embedPDF=getInteger({data:e.embedPDF,defaultValue:0,validate:e=>1===e});this.format=getStringOption(e.format,["xdp","formdata","pdf","urlencoded","xfd","xml"]);this.id=e.id||"";this.target=e.target||"";this.textEncoding=getKeyword({data:e.textEncoding?e.textEncoding.toLowerCase():"",defaultValue:"",validate:e=>["utf-8","big-five","fontspecific","gbk","gb-18030","gb-2312","ksc-5601","none","shift-jis","ucs-2","utf-16"].includes(e)||e.match(/iso-8859-\d{2}/)});this.use=e.use||"";this.usehref=e.usehref||"";this.xdpContent=e.xdpContent||"";this.encrypt=null;this.encryptData=new XFAObjectArray;this.signData=new XFAObjectArray}}class Template extends XFAObject{constructor(e){super(Mo,"template",!0);this.baseProfile=getStringOption(e.baseProfile,["full","interactiveForms"]);this.extras=null;this.subform=new XFAObjectArray}[Gn](){0===this.subform.children.length&&warn("XFA - No subforms in template node.");this.subform.children.length>=2&&warn("XFA - Several subforms in template node: please file a bug.");this[qs]=5e3}[xs](){return!0}[_s](e,t){return e.startsWith("#")?[this[ds].get(e.slice(1))]:searchNode(this,t,e,!0,!0)}*[Ws](){if(!this.subform.children.length)return HTMLResult.success({name:"div",children:[]});this[$n]={overflowNode:null,firstUnsplittable:null,currentContentArea:null,currentPageArea:null,noLayoutFailure:!1,pageNumber:1,pagePosition:"first",oddOrEven:"odd",blankOrNotBlank:"nonBlank",paraStack:[]};const e=this.subform.children[0];e.pageSet[jn]();const t=e.pageSet.pageArea.children,a={name:"div",children:[]};let r=null,i=null,n=null;if(e.breakBefore.children.length>=1){i=e.breakBefore.children[0];n=i.target}else if(e.subform.children.length>=1&&e.subform.children[0].breakBefore.children.length>=1){i=e.subform.children[0].breakBefore.children[0];n=i.target}else if(e.break?.beforeTarget){i=e.break;n=i.beforeTarget}else if(e.subform.children.length>=1&&e.subform.children[0].break?.beforeTarget){i=e.subform.children[0].break;n=i.beforeTarget}if(i){const e=this[_s](n,i[cs]());if(e instanceof PageArea){r=e;i[$n]={}}}r||=t[0];r[$n]={numberOfUse:1};const s=r[cs]();s[$n]={numberOfUse:1,pageIndex:s.pageArea.children.indexOf(r),pageSetIndex:0};let o,c=null,l=null,h=!0,u=0,d=0;for(;;){if(h)u=0;else{a.children.pop();if(3===++u){warn("XFA - Something goes wrong: please file a bug.");return a}}o=null;this[$n].currentPageArea=r;const t=r[zs]().html;a.children.push(t);if(c){this[$n].noLayoutFailure=!0;t.children.push(c[zs](r[$n].space).html);c=null}if(l){this[$n].noLayoutFailure=!0;t.children.push(l[zs](r[$n].space).html);l=null}const i=r.contentArea.children,n=t.children.filter(e=>e.attributes.class.includes("xfaContentarea"));h=!1;this[$n].firstUnsplittable=null;this[$n].noLayoutFailure=!1;const flush=t=>{const a=e[Vn]();if(a){h||=a.children?.length>0;n[t].children.push(a)}};for(let t=d,r=i.length;t0;n[t].children.push(u.html)}else!h&&a.children.length>1&&a.children.pop();return a}if(u.isBreak()){const e=u.breakNode;flush(t);if("auto"===e.targetType)continue;if(e.leader){c=this[_s](e.leader,e[cs]());c=c?c[0]:null}if(e.trailer){l=this[_s](e.trailer,e[cs]());l=l?l[0]:null}if("pageArea"===e.targetType){o=e[$n].target;t=1/0}else if(e[$n].target){o=e[$n].target;d=e[$n].index+1;t=1/0}else t=e[$n].index;continue}if(this[$n].overflowNode){const e=this[$n].overflowNode;this[$n].overflowNode=null;const a=e[as](),r=a.target;a.addLeader=null!==a.leader;a.addTrailer=null!==a.trailer;flush(t);const n=t;t=1/0;if(r instanceof PageArea)o=r;else if(r instanceof ContentArea){const e=i.indexOf(r);if(-1!==e)e>n?t=e-1:d=e;else{o=r[cs]();d=o.contentArea.children.indexOf(r)}}continue}flush(t)}this[$n].pageNumber+=1;o&&(o[ks]()?o[$n].numberOfUse+=1:o=null);r=o||r[ss]();yield null}}}class Text extends ContentObject{constructor(e){super(Mo,"text");this.id=e.id||"";this.maxChars=getInteger({data:e.maxChars,defaultValue:0,validate:e=>e>=0});this.name=e.name||"";this.rid=e.rid||"";this.use=e.use||"";this.usehref=e.usehref||""}[Nn](){return!0}[Ts](e){if(e[vs]===Js.xhtml.id){this[Hn]=e;return!0}warn(`XFA - Invalid content in Text: ${e[Fs]}.`);return!1}[Ms](e){this[Hn]instanceof XFAObject||super[Ms](e)}[Gn](){"string"==typeof this[Hn]&&(this[Hn]=this[Hn].replaceAll("\r\n","\n"))}[as](){return"string"==typeof this[Hn]?this[Hn].split(/[\u2029\u2028\n]/).filter(e=>!!e).join("\n"):this[Hn][Hs]()}[zs](e){if("string"==typeof this[Hn]){const e=valueToHtml(this[Hn]).html;if(this[Hn].includes("\u2029")){e.name="div";e.children=[];this[Hn].split("\u2029").map(e=>e.split(/[\u2028\n]/).flatMap(e=>[{name:"span",value:e},{name:"br"}])).forEach(t=>{e.children.push({name:"p",children:t})})}else if(/[\u2028\n]/.test(this[Hn])){e.name="div";e.children=[];this[Hn].split(/[\u2028\n]/).forEach(t=>{e.children.push({name:"span",value:t},{name:"br"})})}return HTMLResult.success(e)}return this[Hn][zs](e)}}class TextEdit extends XFAObject{constructor(e){super(Mo,"textEdit",!0);this.allowRichText=getInteger({data:e.allowRichText,defaultValue:0,validate:e=>1===e});this.hScrollPolicy=getStringOption(e.hScrollPolicy,["auto","off","on"]);this.id=e.id||"";this.multiLine=getInteger({data:e.multiLine,defaultValue:"",validate:e=>0===e||1===e});this.use=e.use||"";this.usehref=e.usehref||"";this.vScrollPolicy=getStringOption(e.vScrollPolicy,["auto","off","on"]);this.border=null;this.comb=null;this.extras=null;this.margin=null}[zs](e){const t=toStyle(this,"border","font","margin");let a;const r=this[cs]()[cs]();""===this.multiLine&&(this.multiLine=r instanceof Draw?1:0);a=1===this.multiLine?{name:"textarea",attributes:{dataId:r[Wn]?.[Vs]||r[Vs],fieldId:r[Vs],class:["xfaTextfield"],style:t,"aria-label":ariaLabel(r),"aria-required":!1}}:{name:"input",attributes:{type:"text",dataId:r[Wn]?.[Vs]||r[Vs],fieldId:r[Vs],class:["xfaTextfield"],style:t,"aria-label":ariaLabel(r),"aria-required":!1}};if(isRequired(r)){a.attributes["aria-required"]=!0;a.attributes.required=!0}return HTMLResult.success({name:"label",attributes:{class:["xfaLabel"]},children:[a]})}}class Time extends StringObject{constructor(e){super(Mo,"time");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}[Gn](){const e=this[Hn].trim();this[Hn]=e?new Date(e):null}[zs](e){return valueToHtml(this[Hn]?this[Hn].toString():"")}}class TimeStamp extends XFAObject{constructor(e){super(Mo,"timeStamp");this.id=e.id||"";this.server=e.server||"";this.type=getStringOption(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||""}}class ToolTip extends StringObject{constructor(e){super(Mo,"toolTip");this.id=e.id||"";this.rid=e.rid||"";this.use=e.use||"";this.usehref=e.usehref||""}}class Traversal extends XFAObject{constructor(e){super(Mo,"traversal",!0);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null;this.traverse=new XFAObjectArray}}class Traverse extends XFAObject{constructor(e){super(Mo,"traverse",!0);this.id=e.id||"";this.operation=getStringOption(e.operation,["next","back","down","first","left","right","up"]);this.ref=e.ref||"";this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null;this.script=null}get name(){return this.operation}[As](){return!1}}class Ui extends XFAObject{constructor(e){super(Mo,"ui",!0);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null;this.picture=null;this.barcode=null;this.button=null;this.checkButton=null;this.choiceList=null;this.dateTimeEdit=null;this.defaultUi=null;this.imageEdit=null;this.numericEdit=null;this.passwordEdit=null;this.signature=null;this.textEdit=null}[as](){if(void 0===this[$n]){for(const e of Object.getOwnPropertyNames(this)){if("extras"===e||"picture"===e)continue;const t=this[e];if(t instanceof XFAObject){this[$n]=t;return t}}this[$n]=null}return this[$n]}[zs](e){const t=this[as]();return t?t[zs](e):HTMLResult.EMPTY}}class Validate extends XFAObject{constructor(e){super(Mo,"validate",!0);this.formatTest=getStringOption(e.formatTest,["warning","disabled","error"]);this.id=e.id||"";this.nullTest=getStringOption(e.nullTest,["disabled","error","warning"]);this.scriptTest=getStringOption(e.scriptTest,["error","disabled","warning"]);this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null;this.message=null;this.picture=null;this.script=null}}class Value extends XFAObject{constructor(e){super(Mo,"value",!0);this.id=e.id||"";this.override=getInteger({data:e.override,defaultValue:0,validate:e=>1===e});this.relevant=getRelevant(e.relevant);this.use=e.use||"";this.usehref=e.usehref||"";this.arc=null;this.boolean=null;this.date=null;this.dateTime=null;this.decimal=null;this.exData=null;this.float=null;this.image=null;this.integer=null;this.line=null;this.rectangle=null;this.text=null;this.time=null}[Xs](e){const t=this[cs]();if(t instanceof Field&&t.ui?.imageEdit){if(!this.image){this.image=new Image({});this[Pn](this.image)}this.image[Hn]=e[Hn];return}const a=e[Fs];if(null===this[a]){for(const e of Object.getOwnPropertyNames(this)){const t=this[e];if(t instanceof XFAObject){this[e]=null;this[Ns](t)}}this[e[Fs]]=e;this[Pn](e)}else this[a][Hn]=e[Hn]}[Hs](){if(this.exData)return"string"==typeof this.exData[Hn]?this.exData[Hn].trim():this.exData[Hn][Hs]().trim();for(const e of Object.getOwnPropertyNames(this)){if("image"===e)continue;const t=this[e];if(t instanceof XFAObject)return(t[Hn]||"").toString().trim()}return null}[zs](e){for(const t of Object.getOwnPropertyNames(this)){const a=this[t];if(a instanceof XFAObject)return a[zs](e)}return HTMLResult.EMPTY}}class Variables extends XFAObject{constructor(e){super(Mo,"variables",!0);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.boolean=new XFAObjectArray;this.date=new XFAObjectArray;this.dateTime=new XFAObjectArray;this.decimal=new XFAObjectArray;this.exData=new XFAObjectArray;this.float=new XFAObjectArray;this.image=new XFAObjectArray;this.integer=new XFAObjectArray;this.manifest=new XFAObjectArray;this.script=new XFAObjectArray;this.text=new XFAObjectArray;this.time=new XFAObjectArray}[As](){return!0}}class TemplateNamespace{static[Ks](e,t){if(TemplateNamespace.hasOwnProperty(e)){const a=TemplateNamespace[e](t);a[Us](t);return a}}static appearanceFilter(e){return new AppearanceFilter(e)}static arc(e){return new Arc(e)}static area(e){return new Area(e)}static assist(e){return new Assist(e)}static barcode(e){return new Barcode(e)}static bind(e){return new Bind(e)}static bindItems(e){return new BindItems(e)}static bookend(e){return new Bookend(e)}static boolean(e){return new BooleanElement(e)}static border(e){return new Border(e)}static break(e){return new Break(e)}static breakAfter(e){return new BreakAfter(e)}static breakBefore(e){return new BreakBefore(e)}static button(e){return new Button(e)}static calculate(e){return new Calculate(e)}static caption(e){return new Caption(e)}static certificate(e){return new Certificate(e)}static certificates(e){return new Certificates(e)}static checkButton(e){return new CheckButton(e)}static choiceList(e){return new ChoiceList(e)}static color(e){return new Color(e)}static comb(e){return new Comb(e)}static connect(e){return new Connect(e)}static contentArea(e){return new ContentArea(e)}static corner(e){return new Corner(e)}static date(e){return new DateElement(e)}static dateTime(e){return new DateTime(e)}static dateTimeEdit(e){return new DateTimeEdit(e)}static decimal(e){return new Decimal(e)}static defaultUi(e){return new DefaultUi(e)}static desc(e){return new Desc(e)}static digestMethod(e){return new DigestMethod(e)}static digestMethods(e){return new DigestMethods(e)}static draw(e){return new Draw(e)}static edge(e){return new Edge(e)}static encoding(e){return new Encoding(e)}static encodings(e){return new Encodings(e)}static encrypt(e){return new Encrypt(e)}static encryptData(e){return new EncryptData(e)}static encryption(e){return new Encryption(e)}static encryptionMethod(e){return new EncryptionMethod(e)}static encryptionMethods(e){return new EncryptionMethods(e)}static event(e){return new Event(e)}static exData(e){return new ExData(e)}static exObject(e){return new ExObject(e)}static exclGroup(e){return new ExclGroup(e)}static execute(e){return new Execute(e)}static extras(e){return new Extras(e)}static field(e){return new Field(e)}static fill(e){return new Fill(e)}static filter(e){return new Filter(e)}static float(e){return new Float(e)}static font(e){return new template_Font(e)}static format(e){return new Format(e)}static handler(e){return new Handler(e)}static hyphenation(e){return new Hyphenation(e)}static image(e){return new Image(e)}static imageEdit(e){return new ImageEdit(e)}static integer(e){return new Integer(e)}static issuers(e){return new Issuers(e)}static items(e){return new Items(e)}static keep(e){return new Keep(e)}static keyUsage(e){return new KeyUsage(e)}static line(e){return new Line(e)}static linear(e){return new Linear(e)}static lockDocument(e){return new LockDocument(e)}static manifest(e){return new Manifest(e)}static margin(e){return new Margin(e)}static mdp(e){return new Mdp(e)}static medium(e){return new Medium(e)}static message(e){return new Message(e)}static numericEdit(e){return new NumericEdit(e)}static occur(e){return new Occur(e)}static oid(e){return new Oid(e)}static oids(e){return new Oids(e)}static overflow(e){return new Overflow(e)}static pageArea(e){return new PageArea(e)}static pageSet(e){return new PageSet(e)}static para(e){return new Para(e)}static passwordEdit(e){return new PasswordEdit(e)}static pattern(e){return new template_Pattern(e)}static picture(e){return new Picture(e)}static proto(e){return new Proto(e)}static radial(e){return new Radial(e)}static reason(e){return new Reason(e)}static reasons(e){return new Reasons(e)}static rectangle(e){return new Rectangle(e)}static ref(e){return new RefElement(e)}static script(e){return new Script(e)}static setProperty(e){return new SetProperty(e)}static signData(e){return new SignData(e)}static signature(e){return new Signature(e)}static signing(e){return new Signing(e)}static solid(e){return new Solid(e)}static speak(e){return new Speak(e)}static stipple(e){return new Stipple(e)}static subform(e){return new Subform(e)}static subformSet(e){return new SubformSet(e)}static subjectDN(e){return new SubjectDN(e)}static subjectDNs(e){return new SubjectDNs(e)}static submit(e){return new Submit(e)}static template(e){return new Template(e)}static text(e){return new Text(e)}static textEdit(e){return new TextEdit(e)}static time(e){return new Time(e)}static timeStamp(e){return new TimeStamp(e)}static toolTip(e){return new ToolTip(e)}static traversal(e){return new Traversal(e)}static traverse(e){return new Traverse(e)}static ui(e){return new Ui(e)}static validate(e){return new Validate(e)}static value(e){return new Value(e)}static variables(e){return new Variables(e)}}const Eo=Js.datasets.id;function createText(e){const t=new Text({});t[Hn]=e;return t}class Binder{constructor(e){this.root=e;this.datasets=e.datasets;this.data=e.datasets?.data||new XmlObject(Js.datasets.id,"data");this.emptyMerge=0===this.data[is]().length;this.root.form=this.form=e.template[Xn]()}_isConsumeData(){return!this.emptyMerge&&this._mergeMode}_isMatchTemplate(){return!this._isConsumeData()}bind(){this._bindElement(this.form,this.data);return this.form}getData(){return this.data}_bindValue(e,t,a){e[Wn]=t;if(e[us]())if(t[bs]()){const a=t[ts]();e[Xs](createText(a))}else if(e instanceof Field&&"multiSelect"===e.ui?.choiceList?.open){const a=t[is]().map(e=>e[Hn].trim()).join("\n");e[Xs](createText(a))}else this._isConsumeData()&&warn("XFA - Nodes haven't the same type.");else!t[bs]()||this._isMatchTemplate()?this._bindElement(e,t):warn("XFA - Nodes haven't the same type.")}_findDataByNameToConsume(e,t,a,r){if(!e)return null;let i,n;for(let r=0;r<3;r++){i=a[rs](e,!1,!0);for(;;){n=i.next().value;if(!n)break;if(t===n[bs]())return n}if(a[vs]===Js.datasets.id&&"data"===a[Fs])break;a=a[cs]()}if(!r)return null;i=this.data[rs](e,!0,!1);n=i.next().value;if(n)return n;i=this.data[Kn](e,!0);n=i.next().value;return n?.[bs]()?n:null}_setProperties(e,t){if(e.hasOwnProperty("setProperty"))for(const{ref:a,target:r,connection:i}of e.setProperty.children){if(i)continue;if(!a)continue;const n=searchNode(this.root,t,a,!1,!1);if(!n){warn(`XFA - Invalid reference: ${a}.`);continue}const[s]=n;if(!s[ys](this.data)){warn("XFA - Invalid node: must be a data node.");continue}const o=searchNode(this.root,e,r,!1,!1);if(!o){warn(`XFA - Invalid target: ${r}.`);continue}const[c]=o;if(!c[ys](e)){warn("XFA - Invalid target: must be a property or subproperty.");continue}const l=c[cs]();if(c instanceof SetProperty||l instanceof SetProperty){warn("XFA - Invalid target: cannot be a setProperty or one of its properties.");continue}if(c instanceof BindItems||l instanceof BindItems){warn("XFA - Invalid target: cannot be a bindItems or one of its properties.");continue}const h=s[Hs](),u=c[Fs];if(c instanceof XFAAttribute){const e=Object.create(null);e[u]=h;const t=Reflect.construct(Object.getPrototypeOf(l).constructor,[e]);l[u]=t[u];continue}if(c.hasOwnProperty(Hn)){c[Wn]=s;c[Hn]=h;c[Gn]()}else warn("XFA - Invalid node to use in setProperty")}}_bindItems(e,t){if(!e.hasOwnProperty("items")||!e.hasOwnProperty("bindItems")||e.bindItems.isEmpty())return;for(const t of e.items.children)e[Ns](t);e.items.clear();const a=new Items({}),r=new Items({});e[Pn](a);e.items.push(a);e[Pn](r);e.items.push(r);for(const{ref:i,labelRef:n,valueRef:s,connection:o}of e.bindItems.children){if(o)continue;if(!i)continue;const e=searchNode(this.root,t,i,!1,!1);if(e)for(const t of e){if(!t[ys](this.datasets)){warn(`XFA - Invalid ref (${i}): must be a datasets child.`);continue}const e=searchNode(this.root,t,n,!0,!1);if(!e){warn(`XFA - Invalid label: ${n}.`);continue}const[o]=e;if(!o[ys](this.datasets)){warn("XFA - Invalid label: must be a datasets child.");continue}const c=searchNode(this.root,t,s,!0,!1);if(!c){warn(`XFA - Invalid value: ${s}.`);continue}const[l]=c;if(!l[ys](this.datasets)){warn("XFA - Invalid value: must be a datasets child.");continue}const h=createText(o[Hs]()),u=createText(l[Hs]());a[Pn](h);a.text.push(h);r[Pn](u);r.text.push(u)}else warn(`XFA - Invalid reference: ${i}.`)}}_bindOccurrences(e,t,a){let r;if(t.length>1){r=e[Xn]();r[Ns](r.occur);r.occur=null}this._bindValue(e,t[0],a);this._setProperties(e,t[0]);this._bindItems(e,t[0]);if(1===t.length)return;const i=e[cs](),n=e[Fs],s=i[fs](e);for(let e=1,o=t.length;et.name===e.name).length:a[r].children.length;const n=a[fs](e)+1,s=t.initial-i;if(s){const t=e[Xn]();t[Ns](t.occur);t.occur=null;a[r].push(t);a[gs](n,t);for(let e=1;e0)this._bindOccurrences(r,[e[0]],null);else if(this.emptyMerge){const e=t[vs]===Eo?-1:t[vs],a=r[Wn]=new XmlObject(e,r.name||"root");t[Pn](a);this._bindElement(r,a)}continue}if(!r[ms]())continue;let e=!1,i=null,n=null,s=null;if(r.bind){switch(r.bind.match){case"none":this._setAndBind(r,t);continue;case"global":e=!0;break;case"dataRef":if(!r.bind.ref){warn(`XFA - ref is empty in node ${r[Fs]}.`);this._setAndBind(r,t);continue}n=r.bind.ref}r.bind.picture&&(i=r.bind.picture[Hn])}const[o,c]=this._getOccurInfo(r);if(n){s=searchNode(this.root,t,n,!0,!1);if(null===s){s=createDataNode(this.data,t,n);if(!s)continue;this._isConsumeData()&&(s[qn]=!0);this._setAndBind(r,s);continue}this._isConsumeData()&&(s=s.filter(e=>!e[qn]));s.length>c?s=s.slice(0,c):0===s.length&&(s=null);s&&this._isConsumeData()&&s.forEach(e=>{e[qn]=!0})}else{if(!r.name){this._setAndBind(r,t);continue}if(this._isConsumeData()){const a=[];for(;a.length0?a:null}else{s=t[rs](r.name,!1,this.emptyMerge).next().value;if(!s){if(0===o){a.push(r);continue}const e=t[vs]===Eo?-1:t[vs];s=r[Wn]=new XmlObject(e,r.name);this.emptyMerge&&(s[qn]=!0);t[Pn](s);this._setAndBind(r,s);continue}this.emptyMerge&&(s[qn]=!0);s=[s]}}s?this._bindOccurrences(r,s,i):o>0?this._setAndBind(r,t):a.push(r)}a.forEach(e=>e[cs]()[Ns](e))}}class DataHandler{constructor(e,t){this.data=t;this.dataset=e.datasets||null}serialize(e){const t=[[-1,this.data[is]()]];for(;t.length>0;){const a=t.at(-1),[r,i]=a;if(r+1===i.length){t.pop();continue}const n=i[++a[0]],s=e.get(n[Vs]);if(s)n[Xs](s);else{const t=n[Jn]();for(const a of t.values()){const t=e.get(a[Vs]);if(t){a[Xs](t);break}}}const o=n[is]();o.length>0&&t.push([-1,o])}const a=[''];if(this.dataset)for(const e of this.dataset[is]())"data"!==e[Fs]&&e[$s](a);this.data[$s](a);a.push("");return a.join("")}}const Po=Js.config.id;class Acrobat extends XFAObject{constructor(e){super(Po,"acrobat",!0);this.acrobat7=null;this.autoSave=null;this.common=null;this.validate=null;this.validateApprovalSignatures=null;this.submitUrl=new XFAObjectArray}}class Acrobat7 extends XFAObject{constructor(e){super(Po,"acrobat7",!0);this.dynamicRender=null}}class ADBE_JSConsole extends OptionObject{constructor(e){super(Po,"ADBE_JSConsole",["delegate","Enable","Disable"])}}class ADBE_JSDebugger extends OptionObject{constructor(e){super(Po,"ADBE_JSDebugger",["delegate","Enable","Disable"])}}class AddSilentPrint extends Option01{constructor(e){super(Po,"addSilentPrint")}}class AddViewerPreferences extends Option01{constructor(e){super(Po,"addViewerPreferences")}}class AdjustData extends Option10{constructor(e){super(Po,"adjustData")}}class AdobeExtensionLevel extends IntegerObject{constructor(e){super(Po,"adobeExtensionLevel",0,e=>e>=1&&e<=8)}}class Agent extends XFAObject{constructor(e){super(Po,"agent",!0);this.name=e.name?e.name.trim():"";this.common=new XFAObjectArray}}class AlwaysEmbed extends ContentObject{constructor(e){super(Po,"alwaysEmbed")}}class Amd extends StringObject{constructor(e){super(Po,"amd")}}class config_Area extends XFAObject{constructor(e){super(Po,"area");this.level=getInteger({data:e.level,defaultValue:0,validate:e=>e>=1&&e<=3});this.name=getStringOption(e.name,["","barcode","coreinit","deviceDriver","font","general","layout","merge","script","signature","sourceSet","templateCache"])}}class Attributes extends OptionObject{constructor(e){super(Po,"attributes",["preserve","delegate","ignore"])}}class AutoSave extends OptionObject{constructor(e){super(Po,"autoSave",["disabled","enabled"])}}class Base extends StringObject{constructor(e){super(Po,"base")}}class BatchOutput extends XFAObject{constructor(e){super(Po,"batchOutput");this.format=getStringOption(e.format,["none","concat","zip","zipCompress"])}}class BehaviorOverride extends ContentObject{constructor(e){super(Po,"behaviorOverride")}[Gn](){this[Hn]=new Map(this[Hn].trim().split(/\s+/).filter(e=>e.includes(":")).map(e=>e.split(":",2)))}}class Cache extends XFAObject{constructor(e){super(Po,"cache",!0);this.templateCache=null}}class Change extends Option01{constructor(e){super(Po,"change")}}class Common extends XFAObject{constructor(e){super(Po,"common",!0);this.data=null;this.locale=null;this.localeSet=null;this.messaging=null;this.suppressBanner=null;this.template=null;this.validationMessaging=null;this.versionControl=null;this.log=new XFAObjectArray}}class Compress extends XFAObject{constructor(e){super(Po,"compress");this.scope=getStringOption(e.scope,["imageOnly","document"])}}class CompressLogicalStructure extends Option01{constructor(e){super(Po,"compressLogicalStructure")}}class CompressObjectStream extends Option10{constructor(e){super(Po,"compressObjectStream")}}class Compression extends XFAObject{constructor(e){super(Po,"compression",!0);this.compressLogicalStructure=null;this.compressObjectStream=null;this.level=null;this.type=null}}class Config extends XFAObject{constructor(e){super(Po,"config",!0);this.acrobat=null;this.present=null;this.trace=null;this.agent=new XFAObjectArray}}class Conformance extends OptionObject{constructor(e){super(Po,"conformance",["A","B"])}}class ContentCopy extends Option01{constructor(e){super(Po,"contentCopy")}}class Copies extends IntegerObject{constructor(e){super(Po,"copies",1,e=>e>=1)}}class Creator extends StringObject{constructor(e){super(Po,"creator")}}class CurrentPage extends IntegerObject{constructor(e){super(Po,"currentPage",0,e=>e>=0)}}class Data extends XFAObject{constructor(e){super(Po,"data",!0);this.adjustData=null;this.attributes=null;this.incrementalLoad=null;this.outputXSL=null;this.range=null;this.record=null;this.startNode=null;this.uri=null;this.window=null;this.xsl=null;this.excludeNS=new XFAObjectArray;this.transform=new XFAObjectArray}}class Debug extends XFAObject{constructor(e){super(Po,"debug",!0);this.uri=null}}class DefaultTypeface extends ContentObject{constructor(e){super(Po,"defaultTypeface");this.writingScript=getStringOption(e.writingScript,["*","Arabic","Cyrillic","EastEuropeanRoman","Greek","Hebrew","Japanese","Korean","Roman","SimplifiedChinese","Thai","TraditionalChinese","Vietnamese"])}}class Destination extends OptionObject{constructor(e){super(Po,"destination",["pdf","pcl","ps","webClient","zpl"])}}class DocumentAssembly extends Option01{constructor(e){super(Po,"documentAssembly")}}class Driver extends XFAObject{constructor(e){super(Po,"driver",!0);this.name=e.name?e.name.trim():"";this.fontInfo=null;this.xdc=null}}class DuplexOption extends OptionObject{constructor(e){super(Po,"duplexOption",["simplex","duplexFlipLongEdge","duplexFlipShortEdge"])}}class DynamicRender extends OptionObject{constructor(e){super(Po,"dynamicRender",["forbidden","required"])}}class Embed extends Option01{constructor(e){super(Po,"embed")}}class config_Encrypt extends Option01{constructor(e){super(Po,"encrypt")}}class config_Encryption extends XFAObject{constructor(e){super(Po,"encryption",!0);this.encrypt=null;this.encryptionLevel=null;this.permissions=null}}class EncryptionLevel extends OptionObject{constructor(e){super(Po,"encryptionLevel",["40bit","128bit"])}}class Enforce extends StringObject{constructor(e){super(Po,"enforce")}}class Equate extends XFAObject{constructor(e){super(Po,"equate");this.force=getInteger({data:e.force,defaultValue:1,validate:e=>0===e});this.from=e.from||"";this.to=e.to||""}}class EquateRange extends XFAObject{constructor(e){super(Po,"equateRange");this.from=e.from||"";this.to=e.to||"";this._unicodeRange=e.unicodeRange||""}get unicodeRange(){const e=[],t=/U\+([0-9a-fA-F]+)/,a=this._unicodeRange;for(let r of a.split(",").map(e=>e.trim()).filter(e=>!!e)){r=r.split("-",2).map(e=>{const a=e.match(t);return a?parseInt(a[1],16):0});1===r.length&&r.push(r[0]);e.push(r)}return shadow(this,"unicodeRange",e)}}class Exclude extends ContentObject{constructor(e){super(Po,"exclude")}[Gn](){this[Hn]=this[Hn].trim().split(/\s+/).filter(e=>e&&["calculate","close","enter","exit","initialize","ready","validate"].includes(e))}}class ExcludeNS extends StringObject{constructor(e){super(Po,"excludeNS")}}class FlipLabel extends OptionObject{constructor(e){super(Po,"flipLabel",["usePrinterSetting","on","off"])}}class config_FontInfo extends XFAObject{constructor(e){super(Po,"fontInfo",!0);this.embed=null;this.map=null;this.subsetBelow=null;this.alwaysEmbed=new XFAObjectArray;this.defaultTypeface=new XFAObjectArray;this.neverEmbed=new XFAObjectArray}}class FormFieldFilling extends Option01{constructor(e){super(Po,"formFieldFilling")}}class GroupParent extends StringObject{constructor(e){super(Po,"groupParent")}}class IfEmpty extends OptionObject{constructor(e){super(Po,"ifEmpty",["dataValue","dataGroup","ignore","remove"])}}class IncludeXDPContent extends StringObject{constructor(e){super(Po,"includeXDPContent")}}class IncrementalLoad extends OptionObject{constructor(e){super(Po,"incrementalLoad",["none","forwardOnly"])}}class IncrementalMerge extends Option01{constructor(e){super(Po,"incrementalMerge")}}class Interactive extends Option01{constructor(e){super(Po,"interactive")}}class Jog extends OptionObject{constructor(e){super(Po,"jog",["usePrinterSetting","none","pageSet"])}}class LabelPrinter extends XFAObject{constructor(e){super(Po,"labelPrinter",!0);this.name=getStringOption(e.name,["zpl","dpl","ipl","tcpl"]);this.batchOutput=null;this.flipLabel=null;this.fontInfo=null;this.xdc=null}}class Layout extends OptionObject{constructor(e){super(Po,"layout",["paginate","panel"])}}class Level extends IntegerObject{constructor(e){super(Po,"level",0,e=>e>0)}}class Linearized extends Option01{constructor(e){super(Po,"linearized")}}class Locale extends StringObject{constructor(e){super(Po,"locale")}}class LocaleSet extends StringObject{constructor(e){super(Po,"localeSet")}}class Log extends XFAObject{constructor(e){super(Po,"log",!0);this.mode=null;this.threshold=null;this.to=null;this.uri=null}}class MapElement extends XFAObject{constructor(e){super(Po,"map",!0);this.equate=new XFAObjectArray;this.equateRange=new XFAObjectArray}}class MediumInfo extends XFAObject{constructor(e){super(Po,"mediumInfo",!0);this.map=null}}class config_Message extends XFAObject{constructor(e){super(Po,"message",!0);this.msgId=null;this.severity=null}}class Messaging extends XFAObject{constructor(e){super(Po,"messaging",!0);this.message=new XFAObjectArray}}class Mode extends OptionObject{constructor(e){super(Po,"mode",["append","overwrite"])}}class ModifyAnnots extends Option01{constructor(e){super(Po,"modifyAnnots")}}class MsgId extends IntegerObject{constructor(e){super(Po,"msgId",1,e=>e>=1)}}class NameAttr extends StringObject{constructor(e){super(Po,"nameAttr")}}class NeverEmbed extends ContentObject{constructor(e){super(Po,"neverEmbed")}}class NumberOfCopies extends IntegerObject{constructor(e){super(Po,"numberOfCopies",null,e=>e>=2&&e<=5)}}class OpenAction extends XFAObject{constructor(e){super(Po,"openAction",!0);this.destination=null}}class Output extends XFAObject{constructor(e){super(Po,"output",!0);this.to=null;this.type=null;this.uri=null}}class OutputBin extends StringObject{constructor(e){super(Po,"outputBin")}}class OutputXSL extends XFAObject{constructor(e){super(Po,"outputXSL",!0);this.uri=null}}class Overprint extends OptionObject{constructor(e){super(Po,"overprint",["none","both","draw","field"])}}class Packets extends StringObject{constructor(e){super(Po,"packets")}[Gn](){"*"!==this[Hn]&&(this[Hn]=this[Hn].trim().split(/\s+/).filter(e=>["config","datasets","template","xfdf","xslt"].includes(e)))}}class PageOffset extends XFAObject{constructor(e){super(Po,"pageOffset");this.x=getInteger({data:e.x,defaultValue:"useXDCSetting",validate:e=>!0});this.y=getInteger({data:e.y,defaultValue:"useXDCSetting",validate:e=>!0})}}class PageRange extends StringObject{constructor(e){super(Po,"pageRange")}[Gn](){const e=this[Hn].trim().split(/\s+/).map(e=>parseInt(e,10)),t=[];for(let a=0,r=e.length;a!1)}}class Pcl extends XFAObject{constructor(e){super(Po,"pcl",!0);this.name=e.name||"";this.batchOutput=null;this.fontInfo=null;this.jog=null;this.mediumInfo=null;this.outputBin=null;this.pageOffset=null;this.staple=null;this.xdc=null}}class Pdf extends XFAObject{constructor(e){super(Po,"pdf",!0);this.name=e.name||"";this.adobeExtensionLevel=null;this.batchOutput=null;this.compression=null;this.creator=null;this.encryption=null;this.fontInfo=null;this.interactive=null;this.linearized=null;this.openAction=null;this.pdfa=null;this.producer=null;this.renderPolicy=null;this.scriptModel=null;this.silentPrint=null;this.submitFormat=null;this.tagged=null;this.version=null;this.viewerPreferences=null;this.xdc=null}}class Pdfa extends XFAObject{constructor(e){super(Po,"pdfa",!0);this.amd=null;this.conformance=null;this.includeXDPContent=null;this.part=null}}class Permissions extends XFAObject{constructor(e){super(Po,"permissions",!0);this.accessibleContent=null;this.change=null;this.contentCopy=null;this.documentAssembly=null;this.formFieldFilling=null;this.modifyAnnots=null;this.plaintextMetadata=null;this.print=null;this.printHighQuality=null}}class PickTrayByPDFSize extends Option01{constructor(e){super(Po,"pickTrayByPDFSize")}}class config_Picture extends StringObject{constructor(e){super(Po,"picture")}}class PlaintextMetadata extends Option01{constructor(e){super(Po,"plaintextMetadata")}}class Presence extends OptionObject{constructor(e){super(Po,"presence",["preserve","dissolve","dissolveStructure","ignore","remove"])}}class Present extends XFAObject{constructor(e){super(Po,"present",!0);this.behaviorOverride=null;this.cache=null;this.common=null;this.copies=null;this.destination=null;this.incrementalMerge=null;this.layout=null;this.output=null;this.overprint=null;this.pagination=null;this.paginationOverride=null;this.script=null;this.validate=null;this.xdp=null;this.driver=new XFAObjectArray;this.labelPrinter=new XFAObjectArray;this.pcl=new XFAObjectArray;this.pdf=new XFAObjectArray;this.ps=new XFAObjectArray;this.submitUrl=new XFAObjectArray;this.webClient=new XFAObjectArray;this.zpl=new XFAObjectArray}}class Print extends Option01{constructor(e){super(Po,"print")}}class PrintHighQuality extends Option01{constructor(e){super(Po,"printHighQuality")}}class PrintScaling extends OptionObject{constructor(e){super(Po,"printScaling",["appdefault","noScaling"])}}class PrinterName extends StringObject{constructor(e){super(Po,"printerName")}}class Producer extends StringObject{constructor(e){super(Po,"producer")}}class Ps extends XFAObject{constructor(e){super(Po,"ps",!0);this.name=e.name||"";this.batchOutput=null;this.fontInfo=null;this.jog=null;this.mediumInfo=null;this.outputBin=null;this.staple=null;this.xdc=null}}class Range extends ContentObject{constructor(e){super(Po,"range")}[Gn](){this[Hn]=this[Hn].split(",",2).map(e=>e.split("-").map(e=>parseInt(e.trim(),10))).filter(e=>e.every(e=>!isNaN(e))).map(e=>{1===e.length&&e.push(e[0]);return e})}}class Record extends ContentObject{constructor(e){super(Po,"record")}[Gn](){this[Hn]=this[Hn].trim();const e=parseInt(this[Hn],10);!isNaN(e)&&e>=0&&(this[Hn]=e)}}class Relevant extends ContentObject{constructor(e){super(Po,"relevant")}[Gn](){this[Hn]=this[Hn].trim().split(/\s+/)}}class Rename extends ContentObject{constructor(e){super(Po,"rename")}[Gn](){this[Hn]=this[Hn].trim();(this[Hn].toLowerCase().startsWith("xml")||new RegExp("[\\p{L}_][\\p{L}\\d._\\p{M}-]*","u").test(this[Hn]))&&warn("XFA - Rename: invalid XFA name")}}class RenderPolicy extends OptionObject{constructor(e){super(Po,"renderPolicy",["server","client"])}}class RunScripts extends OptionObject{constructor(e){super(Po,"runScripts",["both","client","none","server"])}}class config_Script extends XFAObject{constructor(e){super(Po,"script",!0);this.currentPage=null;this.exclude=null;this.runScripts=null}}class ScriptModel extends OptionObject{constructor(e){super(Po,"scriptModel",["XFA","none"])}}class Severity extends OptionObject{constructor(e){super(Po,"severity",["ignore","error","information","trace","warning"])}}class SilentPrint extends XFAObject{constructor(e){super(Po,"silentPrint",!0);this.addSilentPrint=null;this.printerName=null}}class Staple extends XFAObject{constructor(e){super(Po,"staple");this.mode=getStringOption(e.mode,["usePrinterSetting","on","off"])}}class StartNode extends StringObject{constructor(e){super(Po,"startNode")}}class StartPage extends IntegerObject{constructor(e){super(Po,"startPage",0,e=>!0)}}class SubmitFormat extends OptionObject{constructor(e){super(Po,"submitFormat",["html","delegate","fdf","xml","pdf"])}}class SubmitUrl extends StringObject{constructor(e){super(Po,"submitUrl")}}class SubsetBelow extends IntegerObject{constructor(e){super(Po,"subsetBelow",100,e=>e>=0&&e<=100)}}class SuppressBanner extends Option01{constructor(e){super(Po,"suppressBanner")}}class Tagged extends Option01{constructor(e){super(Po,"tagged")}}class config_Template extends XFAObject{constructor(e){super(Po,"template",!0);this.base=null;this.relevant=null;this.startPage=null;this.uri=null;this.xsl=null}}class Threshold extends OptionObject{constructor(e){super(Po,"threshold",["trace","error","information","warning"])}}class To extends OptionObject{constructor(e){super(Po,"to",["null","memory","stderr","stdout","system","uri"])}}class TemplateCache extends XFAObject{constructor(e){super(Po,"templateCache");this.maxEntries=getInteger({data:e.maxEntries,defaultValue:5,validate:e=>e>=0})}}class Trace extends XFAObject{constructor(e){super(Po,"trace",!0);this.area=new XFAObjectArray}}class Transform extends XFAObject{constructor(e){super(Po,"transform",!0);this.groupParent=null;this.ifEmpty=null;this.nameAttr=null;this.picture=null;this.presence=null;this.rename=null;this.whitespace=null}}class Type extends OptionObject{constructor(e){super(Po,"type",["none","ascii85","asciiHex","ccittfax","flate","lzw","runLength","native","xdp","mergedXDP"])}}class Uri extends StringObject{constructor(e){super(Po,"uri")}}class config_Validate extends OptionObject{constructor(e){super(Po,"validate",["preSubmit","prePrint","preExecute","preSave"])}}class ValidateApprovalSignatures extends ContentObject{constructor(e){super(Po,"validateApprovalSignatures")}[Gn](){this[Hn]=this[Hn].trim().split(/\s+/).filter(e=>["docReady","postSign"].includes(e))}}class ValidationMessaging extends OptionObject{constructor(e){super(Po,"validationMessaging",["allMessagesIndividually","allMessagesTogether","firstMessageOnly","noMessages"])}}class Version extends OptionObject{constructor(e){super(Po,"version",["1.7","1.6","1.5","1.4","1.3","1.2"])}}class VersionControl extends XFAObject{constructor(e){super(Po,"VersionControl");this.outputBelow=getStringOption(e.outputBelow,["warn","error","update"]);this.sourceAbove=getStringOption(e.sourceAbove,["warn","error"]);this.sourceBelow=getStringOption(e.sourceBelow,["update","maintain"])}}class ViewerPreferences extends XFAObject{constructor(e){super(Po,"viewerPreferences",!0);this.ADBE_JSConsole=null;this.ADBE_JSDebugger=null;this.addViewerPreferences=null;this.duplexOption=null;this.enforce=null;this.numberOfCopies=null;this.pageRange=null;this.pickTrayByPDFSize=null;this.printScaling=null}}class WebClient extends XFAObject{constructor(e){super(Po,"webClient",!0);this.name=e.name?e.name.trim():"";this.fontInfo=null;this.xdc=null}}class Whitespace extends OptionObject{constructor(e){super(Po,"whitespace",["preserve","ltrim","normalize","rtrim","trim"])}}class Window extends ContentObject{constructor(e){super(Po,"window")}[Gn](){const e=this[Hn].split(",",2).map(e=>parseInt(e.trim(),10));if(e.some(e=>isNaN(e)))this[Hn]=[0,0];else{1===e.length&&e.push(e[0]);this[Hn]=e}}}class Xdc extends XFAObject{constructor(e){super(Po,"xdc",!0);this.uri=new XFAObjectArray;this.xsl=new XFAObjectArray}}class Xdp extends XFAObject{constructor(e){super(Po,"xdp",!0);this.packets=null}}class Xsl extends XFAObject{constructor(e){super(Po,"xsl",!0);this.debug=null;this.uri=null}}class Zpl extends XFAObject{constructor(e){super(Po,"zpl",!0);this.name=e.name?e.name.trim():"";this.batchOutput=null;this.flipLabel=null;this.fontInfo=null;this.xdc=null}}class ConfigNamespace{static[Ks](e,t){if(ConfigNamespace.hasOwnProperty(e))return ConfigNamespace[e](t)}static acrobat(e){return new Acrobat(e)}static acrobat7(e){return new Acrobat7(e)}static ADBE_JSConsole(e){return new ADBE_JSConsole(e)}static ADBE_JSDebugger(e){return new ADBE_JSDebugger(e)}static addSilentPrint(e){return new AddSilentPrint(e)}static addViewerPreferences(e){return new AddViewerPreferences(e)}static adjustData(e){return new AdjustData(e)}static adobeExtensionLevel(e){return new AdobeExtensionLevel(e)}static agent(e){return new Agent(e)}static alwaysEmbed(e){return new AlwaysEmbed(e)}static amd(e){return new Amd(e)}static area(e){return new config_Area(e)}static attributes(e){return new Attributes(e)}static autoSave(e){return new AutoSave(e)}static base(e){return new Base(e)}static batchOutput(e){return new BatchOutput(e)}static behaviorOverride(e){return new BehaviorOverride(e)}static cache(e){return new Cache(e)}static change(e){return new Change(e)}static common(e){return new Common(e)}static compress(e){return new Compress(e)}static compressLogicalStructure(e){return new CompressLogicalStructure(e)}static compressObjectStream(e){return new CompressObjectStream(e)}static compression(e){return new Compression(e)}static config(e){return new Config(e)}static conformance(e){return new Conformance(e)}static contentCopy(e){return new ContentCopy(e)}static copies(e){return new Copies(e)}static creator(e){return new Creator(e)}static currentPage(e){return new CurrentPage(e)}static data(e){return new Data(e)}static debug(e){return new Debug(e)}static defaultTypeface(e){return new DefaultTypeface(e)}static destination(e){return new Destination(e)}static documentAssembly(e){return new DocumentAssembly(e)}static driver(e){return new Driver(e)}static duplexOption(e){return new DuplexOption(e)}static dynamicRender(e){return new DynamicRender(e)}static embed(e){return new Embed(e)}static encrypt(e){return new config_Encrypt(e)}static encryption(e){return new config_Encryption(e)}static encryptionLevel(e){return new EncryptionLevel(e)}static enforce(e){return new Enforce(e)}static equate(e){return new Equate(e)}static equateRange(e){return new EquateRange(e)}static exclude(e){return new Exclude(e)}static excludeNS(e){return new ExcludeNS(e)}static flipLabel(e){return new FlipLabel(e)}static fontInfo(e){return new config_FontInfo(e)}static formFieldFilling(e){return new FormFieldFilling(e)}static groupParent(e){return new GroupParent(e)}static ifEmpty(e){return new IfEmpty(e)}static includeXDPContent(e){return new IncludeXDPContent(e)}static incrementalLoad(e){return new IncrementalLoad(e)}static incrementalMerge(e){return new IncrementalMerge(e)}static interactive(e){return new Interactive(e)}static jog(e){return new Jog(e)}static labelPrinter(e){return new LabelPrinter(e)}static layout(e){return new Layout(e)}static level(e){return new Level(e)}static linearized(e){return new Linearized(e)}static locale(e){return new Locale(e)}static localeSet(e){return new LocaleSet(e)}static log(e){return new Log(e)}static map(e){return new MapElement(e)}static mediumInfo(e){return new MediumInfo(e)}static message(e){return new config_Message(e)}static messaging(e){return new Messaging(e)}static mode(e){return new Mode(e)}static modifyAnnots(e){return new ModifyAnnots(e)}static msgId(e){return new MsgId(e)}static nameAttr(e){return new NameAttr(e)}static neverEmbed(e){return new NeverEmbed(e)}static numberOfCopies(e){return new NumberOfCopies(e)}static openAction(e){return new OpenAction(e)}static output(e){return new Output(e)}static outputBin(e){return new OutputBin(e)}static outputXSL(e){return new OutputXSL(e)}static overprint(e){return new Overprint(e)}static packets(e){return new Packets(e)}static pageOffset(e){return new PageOffset(e)}static pageRange(e){return new PageRange(e)}static pagination(e){return new Pagination(e)}static paginationOverride(e){return new PaginationOverride(e)}static part(e){return new Part(e)}static pcl(e){return new Pcl(e)}static pdf(e){return new Pdf(e)}static pdfa(e){return new Pdfa(e)}static permissions(e){return new Permissions(e)}static pickTrayByPDFSize(e){return new PickTrayByPDFSize(e)}static picture(e){return new config_Picture(e)}static plaintextMetadata(e){return new PlaintextMetadata(e)}static presence(e){return new Presence(e)}static present(e){return new Present(e)}static print(e){return new Print(e)}static printHighQuality(e){return new PrintHighQuality(e)}static printScaling(e){return new PrintScaling(e)}static printerName(e){return new PrinterName(e)}static producer(e){return new Producer(e)}static ps(e){return new Ps(e)}static range(e){return new Range(e)}static record(e){return new Record(e)}static relevant(e){return new Relevant(e)}static rename(e){return new Rename(e)}static renderPolicy(e){return new RenderPolicy(e)}static runScripts(e){return new RunScripts(e)}static script(e){return new config_Script(e)}static scriptModel(e){return new ScriptModel(e)}static severity(e){return new Severity(e)}static silentPrint(e){return new SilentPrint(e)}static staple(e){return new Staple(e)}static startNode(e){return new StartNode(e)}static startPage(e){return new StartPage(e)}static submitFormat(e){return new SubmitFormat(e)}static submitUrl(e){return new SubmitUrl(e)}static subsetBelow(e){return new SubsetBelow(e)}static suppressBanner(e){return new SuppressBanner(e)}static tagged(e){return new Tagged(e)}static template(e){return new config_Template(e)}static templateCache(e){return new TemplateCache(e)}static threshold(e){return new Threshold(e)}static to(e){return new To(e)}static trace(e){return new Trace(e)}static transform(e){return new Transform(e)}static type(e){return new Type(e)}static uri(e){return new Uri(e)}static validate(e){return new config_Validate(e)}static validateApprovalSignatures(e){return new ValidateApprovalSignatures(e)}static validationMessaging(e){return new ValidationMessaging(e)}static version(e){return new Version(e)}static versionControl(e){return new VersionControl(e)}static viewerPreferences(e){return new ViewerPreferences(e)}static webClient(e){return new WebClient(e)}static whitespace(e){return new Whitespace(e)}static window(e){return new Window(e)}static xdc(e){return new Xdc(e)}static xdp(e){return new Xdp(e)}static xsl(e){return new Xsl(e)}static zpl(e){return new Zpl(e)}}const Lo=Js.connectionSet.id;class ConnectionSet extends XFAObject{constructor(e){super(Lo,"connectionSet",!0);this.wsdlConnection=new XFAObjectArray;this.xmlConnection=new XFAObjectArray;this.xsdConnection=new XFAObjectArray}}class EffectiveInputPolicy extends XFAObject{constructor(e){super(Lo,"effectiveInputPolicy");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}}class EffectiveOutputPolicy extends XFAObject{constructor(e){super(Lo,"effectiveOutputPolicy");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}}class Operation extends StringObject{constructor(e){super(Lo,"operation");this.id=e.id||"";this.input=e.input||"";this.name=e.name||"";this.output=e.output||"";this.use=e.use||"";this.usehref=e.usehref||""}}class RootElement extends StringObject{constructor(e){super(Lo,"rootElement");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}}class SoapAction extends StringObject{constructor(e){super(Lo,"soapAction");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}}class SoapAddress extends StringObject{constructor(e){super(Lo,"soapAddress");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}}class connection_set_Uri extends StringObject{constructor(e){super(Lo,"uri");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}}class WsdlAddress extends StringObject{constructor(e){super(Lo,"wsdlAddress");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}}class WsdlConnection extends XFAObject{constructor(e){super(Lo,"wsdlConnection",!0);this.dataDescription=e.dataDescription||"";this.name=e.name||"";this.effectiveInputPolicy=null;this.effectiveOutputPolicy=null;this.operation=null;this.soapAction=null;this.soapAddress=null;this.wsdlAddress=null}}class XmlConnection extends XFAObject{constructor(e){super(Lo,"xmlConnection",!0);this.dataDescription=e.dataDescription||"";this.name=e.name||"";this.uri=null}}class XsdConnection extends XFAObject{constructor(e){super(Lo,"xsdConnection",!0);this.dataDescription=e.dataDescription||"";this.name=e.name||"";this.rootElement=null;this.uri=null}}class ConnectionSetNamespace{static[Ks](e,t){if(ConnectionSetNamespace.hasOwnProperty(e))return ConnectionSetNamespace[e](t)}static connectionSet(e){return new ConnectionSet(e)}static effectiveInputPolicy(e){return new EffectiveInputPolicy(e)}static effectiveOutputPolicy(e){return new EffectiveOutputPolicy(e)}static operation(e){return new Operation(e)}static rootElement(e){return new RootElement(e)}static soapAction(e){return new SoapAction(e)}static soapAddress(e){return new SoapAddress(e)}static uri(e){return new connection_set_Uri(e)}static wsdlAddress(e){return new WsdlAddress(e)}static wsdlConnection(e){return new WsdlConnection(e)}static xmlConnection(e){return new XmlConnection(e)}static xsdConnection(e){return new XsdConnection(e)}}const _o=Js.datasets.id;class datasets_Data extends XmlObject{constructor(e){super(_o,"data",e)}[ws](){return!0}}class Datasets extends XFAObject{constructor(e){super(_o,"datasets",!0);this.data=null;this.Signature=null}[Ts](e){const t=e[Fs];("data"===t&&e[vs]===_o||"Signature"===t&&e[vs]===Js.signature.id)&&(this[t]=e);this[Pn](e)}}class DatasetsNamespace{static[Ks](e,t){if(DatasetsNamespace.hasOwnProperty(e))return DatasetsNamespace[e](t)}static datasets(e){return new Datasets(e)}static data(e){return new datasets_Data(e)}}const jo=Js.localeSet.id;class CalendarSymbols extends XFAObject{constructor(e){super(jo,"calendarSymbols",!0);this.name="gregorian";this.dayNames=new XFAObjectArray(2);this.eraNames=null;this.meridiemNames=null;this.monthNames=new XFAObjectArray(2)}}class CurrencySymbol extends StringObject{constructor(e){super(jo,"currencySymbol");this.name=getStringOption(e.name,["symbol","isoname","decimal"])}}class CurrencySymbols extends XFAObject{constructor(e){super(jo,"currencySymbols",!0);this.currencySymbol=new XFAObjectArray(3)}}class DatePattern extends StringObject{constructor(e){super(jo,"datePattern");this.name=getStringOption(e.name,["full","long","med","short"])}}class DatePatterns extends XFAObject{constructor(e){super(jo,"datePatterns",!0);this.datePattern=new XFAObjectArray(4)}}class DateTimeSymbols extends ContentObject{constructor(e){super(jo,"dateTimeSymbols")}}class Day extends StringObject{constructor(e){super(jo,"day")}}class DayNames extends XFAObject{constructor(e){super(jo,"dayNames",!0);this.abbr=getInteger({data:e.abbr,defaultValue:0,validate:e=>1===e});this.day=new XFAObjectArray(7)}}class Era extends StringObject{constructor(e){super(jo,"era")}}class EraNames extends XFAObject{constructor(e){super(jo,"eraNames",!0);this.era=new XFAObjectArray(2)}}class locale_set_Locale extends XFAObject{constructor(e){super(jo,"locale",!0);this.desc=e.desc||"";this.name="isoname";this.calendarSymbols=null;this.currencySymbols=null;this.datePatterns=null;this.dateTimeSymbols=null;this.numberPatterns=null;this.numberSymbols=null;this.timePatterns=null;this.typeFaces=null}}class locale_set_LocaleSet extends XFAObject{constructor(e){super(jo,"localeSet",!0);this.locale=new XFAObjectArray}}class Meridiem extends StringObject{constructor(e){super(jo,"meridiem")}}class MeridiemNames extends XFAObject{constructor(e){super(jo,"meridiemNames",!0);this.meridiem=new XFAObjectArray(2)}}class Month extends StringObject{constructor(e){super(jo,"month")}}class MonthNames extends XFAObject{constructor(e){super(jo,"monthNames",!0);this.abbr=getInteger({data:e.abbr,defaultValue:0,validate:e=>1===e});this.month=new XFAObjectArray(12)}}class NumberPattern extends StringObject{constructor(e){super(jo,"numberPattern");this.name=getStringOption(e.name,["full","long","med","short"])}}class NumberPatterns extends XFAObject{constructor(e){super(jo,"numberPatterns",!0);this.numberPattern=new XFAObjectArray(4)}}class NumberSymbol extends StringObject{constructor(e){super(jo,"numberSymbol");this.name=getStringOption(e.name,["decimal","grouping","percent","minus","zero"])}}class NumberSymbols extends XFAObject{constructor(e){super(jo,"numberSymbols",!0);this.numberSymbol=new XFAObjectArray(5)}}class TimePattern extends StringObject{constructor(e){super(jo,"timePattern");this.name=getStringOption(e.name,["full","long","med","short"])}}class TimePatterns extends XFAObject{constructor(e){super(jo,"timePatterns",!0);this.timePattern=new XFAObjectArray(4)}}class TypeFace extends XFAObject{constructor(e){super(jo,"typeFace",!0);this.name=""|e.name}}class TypeFaces extends XFAObject{constructor(e){super(jo,"typeFaces",!0);this.typeFace=new XFAObjectArray}}class LocaleSetNamespace{static[Ks](e,t){if(LocaleSetNamespace.hasOwnProperty(e))return LocaleSetNamespace[e](t)}static calendarSymbols(e){return new CalendarSymbols(e)}static currencySymbol(e){return new CurrencySymbol(e)}static currencySymbols(e){return new CurrencySymbols(e)}static datePattern(e){return new DatePattern(e)}static datePatterns(e){return new DatePatterns(e)}static dateTimeSymbols(e){return new DateTimeSymbols(e)}static day(e){return new Day(e)}static dayNames(e){return new DayNames(e)}static era(e){return new Era(e)}static eraNames(e){return new EraNames(e)}static locale(e){return new locale_set_Locale(e)}static localeSet(e){return new locale_set_LocaleSet(e)}static meridiem(e){return new Meridiem(e)}static meridiemNames(e){return new MeridiemNames(e)}static month(e){return new Month(e)}static monthNames(e){return new MonthNames(e)}static numberPattern(e){return new NumberPattern(e)}static numberPatterns(e){return new NumberPatterns(e)}static numberSymbol(e){return new NumberSymbol(e)}static numberSymbols(e){return new NumberSymbols(e)}static timePattern(e){return new TimePattern(e)}static timePatterns(e){return new TimePatterns(e)}static typeFace(e){return new TypeFace(e)}static typeFaces(e){return new TypeFaces(e)}}const Uo=Js.signature.id;class signature_Signature extends XFAObject{constructor(e){super(Uo,"signature",!0)}}class SignatureNamespace{static[Ks](e,t){if(SignatureNamespace.hasOwnProperty(e))return SignatureNamespace[e](t)}static signature(e){return new signature_Signature(e)}}const Xo=Js.stylesheet.id;class Stylesheet extends XFAObject{constructor(e){super(Xo,"stylesheet",!0)}}class StylesheetNamespace{static[Ks](e,t){if(StylesheetNamespace.hasOwnProperty(e))return StylesheetNamespace[e](t)}static stylesheet(e){return new Stylesheet(e)}}const qo=Js.xdp.id;class xdp_Xdp extends XFAObject{constructor(e){super(qo,"xdp",!0);this.uuid=e.uuid||"";this.timeStamp=e.timeStamp||"";this.config=null;this.connectionSet=null;this.datasets=null;this.localeSet=null;this.stylesheet=new XFAObjectArray;this.template=null}[Os](e){const t=Js[e[Fs]];return t&&e[vs]===t.id}}class XdpNamespace{static[Ks](e,t){if(XdpNamespace.hasOwnProperty(e))return XdpNamespace[e](t)}static xdp(e){return new xdp_Xdp(e)}}const Ho=Js.xhtml.id,Wo=Symbol(),zo=new Set(["color","font","font-family","font-size","font-stretch","font-style","font-weight","margin","margin-bottom","margin-left","margin-right","margin-top","letter-spacing","line-height","orphans","page-break-after","page-break-before","page-break-inside","tab-interval","tab-stop","text-align","text-decoration","text-indent","vertical-align","widows","kerning-mode","xfa-font-horizontal-scale","xfa-font-vertical-scale","xfa-spacerun","xfa-tab-stops"]),$o=new Map([["page-break-after","breakAfter"],["page-break-before","breakBefore"],["page-break-inside","breakInside"],["kerning-mode",e=>"none"===e?"none":"normal"],["xfa-font-horizontal-scale",e=>`scaleX(${Math.max(0,parseInt(e)/100).toFixed(2)})`],["xfa-font-vertical-scale",e=>`scaleY(${Math.max(0,parseInt(e)/100).toFixed(2)})`],["xfa-spacerun",""],["xfa-tab-stops",""],["font-size",(e,t)=>measureToString(.99*(e=t.fontSize=Math.abs(getMeasurement(e))))],["letter-spacing",e=>measureToString(getMeasurement(e))],["line-height",e=>measureToString(getMeasurement(e))],["margin",e=>measureToString(getMeasurement(e))],["margin-bottom",e=>measureToString(getMeasurement(e))],["margin-left",e=>measureToString(getMeasurement(e))],["margin-right",e=>measureToString(getMeasurement(e))],["margin-top",e=>measureToString(getMeasurement(e))],["text-indent",e=>measureToString(getMeasurement(e))],["font-family",e=>e],["vertical-align",e=>measureToString(getMeasurement(e))]]),Go=/\s+/g,Vo=/[\r\n]+/g,Ko=/\r\n?/g;function mapStyle(e,t,a){const r=Object.create(null);if(!e)return r;const i=Object.create(null);for(const[t,a]of e.split(";").map(e=>e.split(":",2))){const e=$o.get(t);if(""===e)continue;let n=a;e&&(n="string"==typeof e?e:e(a,i));t.endsWith("scale")?r.transform=r.transform?`${r[t]} ${n}`:n:r[t.replaceAll(/-([a-zA-Z])/g,(e,t)=>t.toUpperCase())]=n}r.fontFamily&&setFontFamily({typeface:r.fontFamily,weight:r.fontWeight||"normal",posture:r.fontStyle||"normal",size:i.fontSize||0},t,t[hs].fontFinder,r);if(a&&r.verticalAlign&&"0px"!==r.verticalAlign&&r.fontSize){const e=.583,t=.333,a=getMeasurement(r.fontSize);r.fontSize=measureToString(a*e);r.verticalAlign=measureToString(Math.sign(getMeasurement(r.verticalAlign))*a*t)}a&&r.fontSize&&(r.fontSize=`calc(${r.fontSize} * var(--total-scale-factor))`);fixTextIndent(r);return r}const Jo=new Set(["body","html"]);class XhtmlObject extends XmlObject{constructor(e,t){super(Ho,t);this[Wo]=!1;this.style=e.style||""}[_n](e){super[_n](e);this.style=function checkStyle(e){return e.style?e.style.split(";").filter(e=>!!e.trim()).map(e=>e.split(":",2).map(e=>e.trim())).filter(([t,a])=>{"font-family"===t&&e[hs].usedTypefaces.add(a);return zo.has(t)}).map(e=>e.join(":")).join(";"):""}(this)}[Nn](){return!Jo.has(this[Fs])}[Ms](e,t=!1){if(t)this[Wo]=!0;else{e=e.replaceAll(Vo,"");this.style.includes("xfa-spacerun:yes")||(e=e.replaceAll(Go," "))}e&&(this[Hn]+=e)}[Ds](e,t=!0){const a=Object.create(null),r={top:NaN,bottom:NaN,left:NaN,right:NaN};let i=null;for(const[e,t]of this.style.split(";").map(e=>e.split(":",2)))switch(e){case"font-family":a.typeface=stripQuotes(t);break;case"font-size":a.size=getMeasurement(t);break;case"font-weight":a.weight=t;break;case"font-style":a.posture=t;break;case"letter-spacing":a.letterSpacing=getMeasurement(t);break;case"margin":const e=t.split(/ \t/).map(e=>getMeasurement(e));switch(e.length){case 1:r.top=r.bottom=r.left=r.right=e[0];break;case 2:r.top=r.bottom=e[0];r.left=r.right=e[1];break;case 3:r.top=e[0];r.bottom=e[2];r.left=r.right=e[1];break;case 4:r.top=e[0];r.left=e[1];r.bottom=e[2];r.right=e[3]}break;case"margin-top":r.top=getMeasurement(t);break;case"margin-bottom":r.bottom=getMeasurement(t);break;case"margin-left":r.left=getMeasurement(t);break;case"margin-right":r.right=getMeasurement(t);break;case"line-height":i=getMeasurement(t)}e.pushData(a,r,i);if(this[Hn])e.addString(this[Hn]);else for(const t of this[is]())"#text"!==t[Fs]?t[Ds](e):e.addString(t[Hn]);t&&e.popFont()}[zs](e){const t=[];this[$n]={children:t};this[Ln]({});if(0===t.length&&!this[Hn])return HTMLResult.EMPTY;let a;a=this[Wo]?this[Hn]?this[Hn].replaceAll(Ko,"\n"):void 0:this[Hn]||void 0;return HTMLResult.success({name:this[Fs],attributes:{href:this.href,style:mapStyle(this.style,this,this[Wo])},children:t,value:a})}}class A extends XhtmlObject{constructor(e){super(e,"a");this.href=fixURL(e.href)||""}}class B extends XhtmlObject{constructor(e){super(e,"b")}[Ds](e){e.pushFont({weight:"bold"});super[Ds](e);e.popFont()}}class Body extends XhtmlObject{constructor(e){super(e,"body")}[zs](e){const t=super[zs](e),{html:a}=t;if(!a)return HTMLResult.EMPTY;a.name="div";a.attributes.class=["xfaRich"];return t}}class Br extends XhtmlObject{constructor(e){super(e,"br")}[Hs](){return"\n"}[Ds](e){e.addString("\n")}[zs](e){return HTMLResult.success({name:"br"})}}class Html extends XhtmlObject{constructor(e){super(e,"html")}[zs](e){const t=[];this[$n]={children:t};this[Ln]({});if(0===t.length)return HTMLResult.success({name:"div",attributes:{class:["xfaRich"],style:{}},value:this[Hn]||""});if(1===t.length){const e=t[0];if(e.attributes?.class.includes("xfaRich"))return HTMLResult.success(e)}return HTMLResult.success({name:"div",attributes:{class:["xfaRich"],style:{}},children:t})}}class I extends XhtmlObject{constructor(e){super(e,"i")}[Ds](e){e.pushFont({posture:"italic"});super[Ds](e);e.popFont()}}class Li extends XhtmlObject{constructor(e){super(e,"li")}}class Ol extends XhtmlObject{constructor(e){super(e,"ol")}}class P extends XhtmlObject{constructor(e){super(e,"p")}[Ds](e){super[Ds](e,!1);e.addString("\n");e.addPara();e.popFont()}[Hs](){return this[cs]()[is]().at(-1)===this?super[Hs]():super[Hs]()+"\n"}}class Span extends XhtmlObject{constructor(e){super(e,"span")}}class Sub extends XhtmlObject{constructor(e){super(e,"sub")}}class Sup extends XhtmlObject{constructor(e){super(e,"sup")}}class Ul extends XhtmlObject{constructor(e){super(e,"ul")}}class XhtmlNamespace{static[Ks](e,t){if(XhtmlNamespace.hasOwnProperty(e))return XhtmlNamespace[e](t)}static a(e){return new A(e)}static b(e){return new B(e)}static body(e){return new Body(e)}static br(e){return new Br(e)}static html(e){return new Html(e)}static i(e){return new I(e)}static li(e){return new Li(e)}static ol(e){return new Ol(e)}static p(e){return new P(e)}static span(e){return new Span(e)}static sub(e){return new Sub(e)}static sup(e){return new Sup(e)}static ul(e){return new Ul(e)}}const Yo={config:ConfigNamespace,connection:ConnectionSetNamespace,datasets:DatasetsNamespace,localeSet:LocaleSetNamespace,signature:SignatureNamespace,stylesheet:StylesheetNamespace,template:TemplateNamespace,xdp:XdpNamespace,xhtml:XhtmlNamespace};class UnknownNamespace{constructor(e){this.namespaceId=e}[Ks](e,t){return new XmlObject(this.namespaceId,e,t)}}class Root extends XFAObject{constructor(e){super(-1,"root",Object.create(null));this.element=null;this[ds]=e}[Ts](e){this.element=e;return!0}[Gn](){super[Gn]();if(this.element.template instanceof Template){this[ds].set(Es,this.element);this.element.template[Ls](this[ds]);this.element.template[ds]=this[ds]}}}class Empty extends XFAObject{constructor(){super(-1,"",Object.create(null))}[Ts](e){return!1}}class Builder{constructor(e=null){this._namespaceStack=[];this._nsAgnosticLevel=0;this._namespacePrefixes=new Map;this._namespaces=new Map;this._nextNsId=Math.max(...Object.values(Js).map(({id:e})=>e));this._currentNamespace=e||new UnknownNamespace(++this._nextNsId)}buildRoot(e){return new Root(e)}build({nsPrefix:e,name:t,attributes:a,namespace:r,prefixes:i}){const n=null!==r;if(n){this._namespaceStack.push(this._currentNamespace);this._currentNamespace=this._searchNamespace(r)}i&&this._addNamespacePrefix(i);if(a.hasOwnProperty(Is)){const e=Yo.datasets,t=a[Is];let r=null;for(const[a,i]of Object.entries(t)){if(this._getNamespaceToUse(a)===e){r={xfa:i};break}}r?a[Is]=r:delete a[Is]}const s=this._getNamespaceToUse(e),o=s?.[Ks](t,a)||new Empty;o[ws]()&&this._nsAgnosticLevel++;(n||i||o[ws]())&&(o[Un]={hasNamespace:n,prefixes:i,nsAgnostic:o[ws]()});return o}isNsAgnostic(){return this._nsAgnosticLevel>0}_searchNamespace(e){let t=this._namespaces.get(e);if(t)return t;for(const[a,{check:r}]of Object.entries(Js))if(r(e)){t=Yo[a];if(t){this._namespaces.set(e,t);return t}break}t=new UnknownNamespace(++this._nextNsId);this._namespaces.set(e,t);return t}_addNamespacePrefix(e){for(const{prefix:t,value:a}of e){const e=this._searchNamespace(a);let r=this._namespacePrefixes.get(t);if(!r){r=[];this._namespacePrefixes.set(t,r)}r.push(e)}}_getNamespaceToUse(e){if(!e)return this._currentNamespace;const t=this._namespacePrefixes.get(e);if(t?.length>0)return t.at(-1);warn(`Unknown namespace prefix: ${e}.`);return null}clean(e){const{hasNamespace:t,prefixes:a,nsAgnostic:r}=e;t&&(this._currentNamespace=this._namespaceStack.pop());a&&a.forEach(({prefix:e})=>{this._namespacePrefixes.get(e).pop()});r&&this._nsAgnosticLevel--}}class XFAParser extends XMLParserBase{constructor(e=null,t=!1){super();this._builder=new Builder(e);this._stack=[];this._globalData={usedTypefaces:new Set};this._ids=new Map;this._current=this._builder.buildRoot(this._ids);this._errorCode=Sn;this._whiteRegex=/^\s+$/;this._nbsps=/\xa0+/g;this._richText=t}parse(e){this.parseXml(e);if(this._errorCode===Sn){this._current[Gn]();return this._current.element}}onText(e){e=e.replace(this._nbsps,e=>e.slice(1)+" ");this._richText||this._current[Nn]()?this._current[Ms](e,this._richText):this._whiteRegex.test(e)||this._current[Ms](e.trim())}onCdata(e){this._current[Ms](e)}_mkAttributes(e,t){let a=null,r=null;const i=Object.create({});for(const{name:n,value:s}of e)if("xmlns"===n)a?warn(`XFA - multiple namespace definition in <${t}>`):a=s;else if(n.startsWith("xmlns:")){const e=n.substring(6);r??=[];r.push({prefix:e,value:s})}else{const e=n.indexOf(":");if(-1===e)i[n]=s;else{const t=i[Is]??=Object.create(null),[a,r]=[n.slice(0,e),n.slice(e+1)];(t[a]||=Object.create(null))[r]=s}}return[a,r,i]}_getNameAndPrefix(e,t){const a=e.indexOf(":");return-1===a?[e,null]:[e.substring(a+1),t?"":e.substring(0,a)]}onBeginElement(e,t,a){const[r,i,n]=this._mkAttributes(t,e),[s,o]=this._getNameAndPrefix(e,this._builder.isNsAgnostic()),c=this._builder.build({nsPrefix:o,name:s,attributes:n,namespace:r,prefixes:i});c[hs]=this._globalData;if(a){c[Gn]();this._current[Ts](c)&&c[js](this._ids);c[_n](this._builder)}else{this._stack.push(this._current);this._current=c}}onEndElement(e){const t=this._current;if(t[ps]()&&"string"==typeof t[Hn]){const e=new XFAParser;e._globalData=this._globalData;const a=e.parse(t[Hn]);t[Hn]=null;t[Ts](a)}t[Gn]();this._current=this._stack.pop();this._current[Ts](t)&&t[js](this._ids);t[_n](this._builder)}onError(e){this._errorCode=e}}class XFAFactory{constructor(e){try{this.root=(new XFAParser).parse(XFAFactory._createDocument(e));const t=new Binder(this.root);this.form=t.bind();this.dataHandler=new DataHandler(this.root,t.getData());this.form[hs].template=this.form}catch(e){warn(`XFA - an error occurred during parsing and binding: ${e}`)}}isValid(){return!(!this.root||!this.form)}_createPagesHelper(){const e=this.form[Ws]();return new Promise((t,a)=>{const nextIteration=()=>{try{const a=e.next();a.done?t(a.value):setTimeout(nextIteration,0)}catch(e){a(e)}};setTimeout(nextIteration,0)})}async _createPages(){try{this.pages=await this._createPagesHelper();this.dims=this.pages.children.map(e=>{const{width:t,height:a}=e.attributes.style;return[0,0,parseInt(t),parseInt(a)]})}catch(e){warn(`XFA - an error occurred during layout: ${e}`)}}getBoundingBox(e){return this.dims[e]}async getNumPages(){this.pages||await this._createPages();return this.dims.length}setImages(e){this.form[hs].images=e}setFonts(e){this.form[hs].fontFinder=new FontFinder(e);const t=[];for(let e of this.form[hs].usedTypefaces){e=stripQuotes(e);this.form[hs].fontFinder.find(e)||t.push(e)}return t.length>0?t:null}appendFonts(e,t){this.form[hs].fontFinder.add(e,t)}async getPages(){this.pages||await this._createPages();const e=this.pages;this.pages=null;return e}serializeData(e){return this.dataHandler.serialize(e)}static _createDocument(e){return e["/xdp:xdp"]?Object.values(e).join(""):e["xdp:xdp"]}static getRichTextAsHtml(e){if(!e||"string"!=typeof e)return null;try{let t=new XFAParser(XhtmlNamespace,!0).parse(e);if(!["body","xhtml"].includes(t[Fs])){const e=XhtmlNamespace.body({});e[Pn](t);t=e}const a=t[zs]();if(!a.success)return null;const{html:r}=a,{attributes:i}=r;if(i){i.class&&(i.class=i.class.filter(e=>!e.startsWith("xfa")));i.dir="auto"}return{html:r,str:t[Hs]()}}catch(e){warn(`XFA - an error occurred during parsing of rich text: ${e}`)}return null}}class AnnotationFactory{static createGlobals(e){return Promise.all([e.ensureCatalog("acroForm"),e.ensureDoc("xfaDatasets"),e.ensureCatalog("structTreeRoot"),e.ensureCatalog("baseUrl"),e.ensureCatalog("attachments"),e.ensureCatalog("globalColorSpaceCache")]).then(([t,a,r,i,n,s])=>({pdfManager:e,acroForm:t instanceof Dict?t:Dict.empty,xfaDatasets:a,structTreeRoot:r,baseUrl:i,attachments:n,globalColorSpaceCache:s}),e=>{warn(`createGlobals: "${e}".`);return null})}static async create(e,t,a,r,i,n,s,o){const c=i?await this._getPageIndex(e,t,a.pdfManager):null;return a.pdfManager.ensure(this,"_create",[e,t,a,r,i,n,s,c,o])}static _create(e,t,a,r,i=!1,n=null,s=null,o=null,c=null){const l=e.fetchIfRef(t);if(!(l instanceof Dict))return;let h=l.get("Subtype");h=h instanceof Name?h.name:null;if(s&&!s.has(F[h.toUpperCase()]))return null;const{acroForm:u,pdfManager:d}=a,f=t instanceof Ref?t.toString():`annot_${r.createObjId()}`,g={xref:e,ref:t,dict:l,subtype:h,id:f,annotationGlobals:a,collectFields:i,orphanFields:n,needAppearances:!i&&!0===u.get("NeedAppearances"),pageIndex:o,evaluatorOptions:d.evaluatorOptions,pageRef:c};switch(h){case"Link":return new LinkAnnotation(g);case"Text":return new TextAnnotation(g);case"Widget":let e=getInheritableProperty({dict:l,key:"FT"});e=e instanceof Name?e.name:null;switch(e){case"Tx":return new TextWidgetAnnotation(g);case"Btn":return new ButtonWidgetAnnotation(g);case"Ch":return new ChoiceWidgetAnnotation(g);case"Sig":return new SignatureWidgetAnnotation(g)}warn(`Unimplemented widget field type "${e}", falling back to base field type.`);return new WidgetAnnotation(g);case"Popup":return new PopupAnnotation(g);case"FreeText":return new FreeTextAnnotation(g);case"Line":return new LineAnnotation(g);case"Square":return new SquareAnnotation(g);case"Circle":return new CircleAnnotation(g);case"PolyLine":return new PolylineAnnotation(g);case"Polygon":return new PolygonAnnotation(g);case"Caret":return new CaretAnnotation(g);case"Ink":return new InkAnnotation(g);case"Highlight":return new HighlightAnnotation(g);case"Underline":return new UnderlineAnnotation(g);case"Squiggly":return new SquigglyAnnotation(g);case"StrikeOut":return new StrikeOutAnnotation(g);case"Stamp":return new StampAnnotation(g);case"FileAttachment":return new FileAttachmentAnnotation(g);default:i||warn(h?`Unimplemented annotation type "${h}", falling back to base annotation.`:"Annotation is missing the required /Subtype.");return new Annotation(g)}}static async _getPageIndex(e,t,a){try{const r=await e.fetchIfRefAsync(t);if(!(r instanceof Dict))return-1;const i=r.getRaw("P");if(i instanceof Ref)try{return await a.ensureCatalog("getPageIndex",[i])}catch(e){info(`_getPageIndex -- not a valid page reference: "${e}".`)}if(r.has("Kids"))return-1;const n=await a.ensureDoc("numPages");for(let e=0;ee/255)||t}function getQuadPoints(e,t){const a=e.getArray("QuadPoints");if(!isNumberArray(a,null)||0===a.length||a.length%8>0)return null;const r=new Float32Array(a.length);for(let e=0,i=a.length;et[2]||gt[3]))return null;r.set([d,p,f,p,d,g,f,g],e)}return r}function getTransformMatrix(e,t,a){const r=new Float32Array([1/0,1/0,-1/0,-1/0]);Util.axialAlignedBoundingBox(t,a,r);const[i,n,s,o]=r;if(i===s||n===o)return[1,0,0,1,e[0],e[1]];const c=(e[2]-e[0])/(s-i),l=(e[3]-e[1])/(o-n);return[c,0,0,l,e[0]-i*c,e[1]-n*l]}class Annotation{constructor(e){const{dict:t,xref:a,annotationGlobals:r,ref:i,orphanFields:n}=e,s=n?.get(i);s&&t.set("Parent",s);this.setTitle(t.get("T"));this.setContents(t.get("Contents"));this.setModificationDate(t.get("M"));this.setFlags(t.get("F"));this.setRectangle(t.getArray("Rect"));this.setColor(t.getArray("C"));this.setBorderStyle(t);this.setAppearance(t);this.setOptionalContent(t);const o=t.get("MK");this.setBorderAndBackgroundColors(o);this.setRotation(o,t);this.ref=e.ref instanceof Ref?e.ref:null;this._streams=[];this.appearance&&this._streams.push(this.appearance);const c=!!(this.flags&L),l=!!(this.flags&_);this.data={annotationFlags:this.flags,borderStyle:this.borderStyle,color:this.color,backgroundColor:this.backgroundColor,borderColor:this.borderColor,rotation:this.rotation,contentsObj:this._contents,hasAppearance:!!this.appearance,id:e.id,modificationDate:this.modificationDate,rect:this.rectangle,subtype:e.subtype,hasOwnCanvas:!1,noRotate:!!(this.flags&N),noHTML:c&&l,isEditable:!1,structParent:-1};if(r.structTreeRoot){let a=t.get("StructParent");this.data.structParent=a=Number.isInteger(a)&&a>=0?a:-1;r.structTreeRoot.addAnnotationIdToPage(e.pageRef,a)}if(e.collectFields){const r=t.get("Kids");if(Array.isArray(r)){const e=[];for(const t of r)t instanceof Ref&&e.push(t.toString());0!==e.length&&(this.data.kidIds=e)}this.data.actions=collectActions(a,t,te);this.data.fieldName=this._constructFieldName(t);this.data.pageIndex=e.pageIndex}const h=t.get("IT");h instanceof Name&&(this.data.it=h.name);this._isOffscreenCanvasSupported=e.evaluatorOptions.isOffscreenCanvasSupported;this._fallbackFontDict=null;this._needAppearances=!1}_hasFlag(e,t){return!!(e&t)}_buildFlags(e,t){let{flags:a}=this;if(void 0===e){if(void 0===t)return;return t?a&~R:a&~D|R}if(e){a|=R;return t?a&~E|D:a&~D|E}a&=~(D|E);return t?a&~R:a|R}_isViewable(e){return!this._hasFlag(e,M)&&!this._hasFlag(e,E)}_isPrintable(e){return this._hasFlag(e,R)&&!this._hasFlag(e,D)&&!this._hasFlag(e,M)}mustBeViewed(e,t){const a=e?.get(this.data.id)?.noView;return void 0!==a?!a:this.viewable&&!this._hasFlag(this.flags,D)}mustBePrinted(e){const t=e?.get(this.data.id)?.noPrint;return void 0!==t?!t:this.printable}mustBeViewedWhenEditing(e,t=null){return e?!this.data.isEditable:!t?.has(this.data.id)}get viewable(){return null!==this.data.quadPoints&&(0===this.flags||this._isViewable(this.flags))}get printable(){return null!==this.data.quadPoints&&(0!==this.flags&&this._isPrintable(this.flags))}_parseStringHelper(e){const t="string"==typeof e?stringToPDFString(e):"";return{str:t,dir:t&&"rtl"===bidi(t).dir?"rtl":"ltr"}}setDefaultAppearance(e){const{dict:t,annotationGlobals:a}=e,r=getInheritableProperty({dict:t,key:"DA"})||a.acroForm.get("DA");this._defaultAppearance="string"==typeof r?r:"";this.data.defaultAppearanceData=parseDefaultAppearance(this._defaultAppearance)}setTitle(e){this._title=this._parseStringHelper(e)}setContents(e){this._contents=this._parseStringHelper(e)}setModificationDate(e){this.modificationDate="string"==typeof e?e:null}setFlags(e){this.flags=Number.isInteger(e)&&e>0?e:0;this.flags&M&&"Annotation"!==this.constructor.name&&(this.flags^=M)}hasFlag(e){return this._hasFlag(this.flags,e)}setRectangle(e){this.rectangle=lookupNormalRect(e,[0,0,0,0])}setColor(e){this.color=getRgbColor(e)}setLineEndings(e){this.lineEndings=["None","None"];if(Array.isArray(e)&&2===e.length)for(let t=0;t<2;t++){const a=e[t];if(a instanceof Name)switch(a.name){case"None":continue;case"Square":case"Circle":case"Diamond":case"OpenArrow":case"ClosedArrow":case"Butt":case"ROpenArrow":case"RClosedArrow":case"Slash":this.lineEndings[t]=a.name;continue}warn(`Ignoring invalid lineEnding: ${a}`)}}setRotation(e,t){this.rotation=0;let a=e instanceof Dict?e.get("R")||0:t.get("Rotate")||0;if(Number.isInteger(a)&&0!==a){a%=360;a<0&&(a+=360);a%90==0&&(this.rotation=a)}}setBorderAndBackgroundColors(e){if(e instanceof Dict){this.borderColor=getRgbColor(e.getArray("BC"),null);this.backgroundColor=getRgbColor(e.getArray("BG"),null)}else this.borderColor=this.backgroundColor=null}setBorderStyle(e){this.borderStyle=new AnnotationBorderStyle;if(e instanceof Dict)if(e.has("BS")){const t=e.get("BS");if(t instanceof Dict){const e=t.get("Type");if(!e||isName(e,"Border")){this.borderStyle.setWidth(t.get("W"),this.rectangle);this.borderStyle.setStyle(t.get("S"));this.borderStyle.setDashArray(t.getArray("D"))}}}else if(e.has("Border")){const t=e.getArray("Border");if(Array.isArray(t)&&t.length>=3){this.borderStyle.setHorizontalCornerRadius(t[0]);this.borderStyle.setVerticalCornerRadius(t[1]);this.borderStyle.setWidth(t[2],this.rectangle);4===t.length&&this.borderStyle.setDashArray(t[3],!0)}}else this.borderStyle.setWidth(0)}setAppearance(e){this.appearance=null;const t=e.get("AP");if(!(t instanceof Dict))return;const a=t.get("N");if(a instanceof BaseStream){this.appearance=a;return}if(!(a instanceof Dict))return;const r=e.get("AS");if(!(r instanceof Name&&a.has(r.name)))return;const i=a.get(r.name);i instanceof BaseStream&&(this.appearance=i)}setOptionalContent(e){this.oc=null;const t=e.get("OC");t instanceof Name?warn("setOptionalContent: Support for /Name-entry is not implemented."):t instanceof Dict&&(this.oc=t)}async loadResources(e,t){const a=await t.dict.getAsync("Resources");a&&await ObjectLoader.load(a,e,a.xref);return a}async getOperatorList(e,t,a,r){const{hasOwnCanvas:i,id:n,rect:o}=this.data;let c=this.appearance;const l=!!(i&&a&s);if(l&&(0===this.width||0===this.height)){this.data.hasOwnCanvas=!1;return{opList:new OperatorList,separateForm:!1,separateCanvas:!1}}if(!c){if(!l)return{opList:new OperatorList,separateForm:!1,separateCanvas:!1};c=new StringStream("");c.dict=new Dict}const h=c.dict,u=await this.loadResources(ha,c),d=lookupRect(h.getArray("BBox"),[0,0,1,1]),f=lookupMatrix(h.getArray("Matrix"),la),g=getTransformMatrix(o,d,f),p=new OperatorList;let m;this.oc&&(m=await e.parseMarkedContentProps(this.oc,null));void 0!==m&&p.addOp(St,["OC",m]);p.addOp(Ot,[n,o,g,f,l]);await e.getOperatorList({stream:c,task:t,resources:u,operatorList:p,fallbackFontDict:this._fallbackFontDict});p.addOp(Mt,[]);void 0!==m&&p.addOp(At,[]);this.reset();return{opList:p,separateForm:!1,separateCanvas:l}}async save(e,t,a,r){return null}get overlaysTextContent(){return!1}get hasTextContent(){return!1}async extractTextContent(e,t,a){if(!this.appearance)return;const r=await this.loadResources(ua,this.appearance),i=[],n=[];let s=null;const o={desiredSize:Math.Infinity,ready:!0,enqueue(e,t){for(const t of e.items)if(void 0!==t.str){s||=t.transform.slice(-2);n.push(t.str);if(t.hasEOL){i.push(n.join("").trimEnd());n.length=0}}}};await e.getTextContent({stream:this.appearance,task:t,resources:r,includeMarkedContent:!0,keepWhiteSpace:!0,sink:o,viewBox:a});this.reset();n.length&&i.push(n.join("").trimEnd());if(i.length>1||i[0]){const e=this.appearance.dict,t=lookupRect(e.getArray("BBox"),null),a=lookupMatrix(e.getArray("Matrix"),null);this.data.textPosition=this._transformPoint(s,t,a);this.data.textContent=i}}_transformPoint(e,t,a){const{rect:r}=this.data;t||=[0,0,1,1];a||=[1,0,0,1,0,0];const i=getTransformMatrix(r,t,a);i[4]-=r[0];i[5]-=r[1];const n=e.slice();Util.applyTransform(n,i);Util.applyTransform(n,a);return n}getFieldObject(){return this.data.kidIds?{id:this.data.id,actions:this.data.actions,name:this.data.fieldName,strokeColor:this.data.borderColor,fillColor:this.data.backgroundColor,type:"",kidIds:this.data.kidIds,page:this.data.pageIndex,rotation:this.rotation}:null}reset(){for(const e of this._streams)e.reset()}_constructFieldName(e){if(!e.has("T")&&!e.has("Parent")){warn("Unknown field name, falling back to empty field name.");return""}if(!e.has("Parent"))return stringToPDFString(e.get("T"));const t=[];e.has("T")&&t.unshift(stringToPDFString(e.get("T")));let a=e;const r=new RefSet;e.objId&&r.put(e.objId);for(;a.has("Parent");){a=a.get("Parent");if(!(a instanceof Dict)||a.objId&&r.has(a.objId))break;a.objId&&r.put(a.objId);a.has("T")&&t.unshift(stringToPDFString(a.get("T")))}return t.join(".")}get width(){return this.data.rect[2]-this.data.rect[0]}get height(){return this.data.rect[3]-this.data.rect[1]}}class AnnotationBorderStyle{constructor(){this.width=1;this.rawWidth=1;this.style=J;this.dashArray=[3];this.horizontalCornerRadius=0;this.verticalCornerRadius=0}setWidth(e,t=[0,0,0,0]){if(e instanceof Name)this.width=0;else if("number"==typeof e){if(e>0){this.rawWidth=e;const a=(t[2]-t[0])/2,r=(t[3]-t[1])/2;if(a>0&&r>0&&(e>a||e>r)){warn(`AnnotationBorderStyle.setWidth - ignoring width: ${e}`);e=1}}this.width=e}}setStyle(e){if(e instanceof Name)switch(e.name){case"S":this.style=J;break;case"D":this.style=Y;break;case"B":this.style=Z;break;case"I":this.style=Q;break;case"U":this.style=ee}}setDashArray(e,t=!1){if(Array.isArray(e)){let a=!0,r=!0;for(const t of e){if(!(+t>=0)){a=!1;break}t>0&&(r=!1)}if(0===e.length||a&&!r){this.dashArray=e;t&&this.setStyle(Name.get("D"))}else this.width=0}else e&&(this.width=0)}setHorizontalCornerRadius(e){Number.isInteger(e)&&(this.horizontalCornerRadius=e)}setVerticalCornerRadius(e){Number.isInteger(e)&&(this.verticalCornerRadius=e)}}class MarkupAnnotation extends Annotation{constructor(e){super(e);const{dict:t}=e;if(t.has("IRT")){const e=t.getRaw("IRT");this.data.inReplyTo=e instanceof Ref?e.toString():null;const a=t.get("RT");this.data.replyType=a instanceof Name?a.name:O}let a=null;if(this.data.replyType===T){const e=t.get("IRT");this.setTitle(e.get("T"));this.data.titleObj=this._title;this.setContents(e.get("Contents"));this.data.contentsObj=this._contents;if(e.has("CreationDate")){this.setCreationDate(e.get("CreationDate"));this.data.creationDate=this.creationDate}else this.data.creationDate=null;if(e.has("M")){this.setModificationDate(e.get("M"));this.data.modificationDate=this.modificationDate}else this.data.modificationDate=null;a=e.getRaw("Popup");if(e.has("C")){this.setColor(e.getArray("C"));this.data.color=this.color}else this.data.color=null}else{this.data.titleObj=this._title;this.setCreationDate(t.get("CreationDate"));this.data.creationDate=this.creationDate;a=t.getRaw("Popup");t.has("C")||(this.data.color=null)}this.data.popupRef=a instanceof Ref?a.toString():null;t.has("RC")&&(this.data.richText=XFAFactory.getRichTextAsHtml(t.get("RC")))}setCreationDate(e){this.creationDate="string"==typeof e?e:null}_setDefaultAppearance({xref:e,extra:t,strokeColor:a,fillColor:r,blendMode:i,strokeAlpha:n,fillAlpha:s,pointsCallback:o}){const c=this.data.rect=[1/0,1/0,-1/0,-1/0],l=["q"];t&&l.push(t);a&&l.push(`${a[0]} ${a[1]} ${a[2]} RG`);r&&l.push(`${r[0]} ${r[1]} ${r[2]} rg`);const h=this.data.quadPoints||Float32Array.from([this.rectangle[0],this.rectangle[3],this.rectangle[2],this.rectangle[3],this.rectangle[0],this.rectangle[1],this.rectangle[2],this.rectangle[1]]);for(let e=0,t=h.length;e"string"==typeof e).map(e=>stringToPDFString(e)):e instanceof Name?stringToPDFString(e.name):"string"==typeof e?stringToPDFString(e):null}hasFieldFlag(e){return!!(this.data.fieldFlags&e)}_isViewable(e){return!0}mustBeViewed(e,t){return t?this.viewable:super.mustBeViewed(e,t)&&!this._hasFlag(this.flags,E)}getRotationMatrix(e){let t=e?.get(this.data.id)?.rotation;void 0===t&&(t=this.rotation);return 0===t?la:getRotationMatrix(t,this.width,this.height)}getBorderAndBackgroundAppearances(e){let t=e?.get(this.data.id)?.rotation;void 0===t&&(t=this.rotation);if(!this.backgroundColor&&!this.borderColor)return"";const a=0===t||180===t?`0 0 ${this.width} ${this.height} re`:`0 0 ${this.height} ${this.width} re`;let r="";this.backgroundColor&&(r=`${getPdfColor(this.backgroundColor,!0)} ${a} f `);if(this.borderColor){r+=`${this.borderStyle.width||1} w ${getPdfColor(this.borderColor,!1)} ${a} S `}return r}async getOperatorList(e,t,a,r){if(a&l&&!(this instanceof SignatureWidgetAnnotation)&&!this.data.noHTML&&!this.data.hasOwnCanvas)return{opList:new OperatorList,separateForm:!0,separateCanvas:!1};if(!this._hasText)return super.getOperatorList(e,t,a,r);const i=await this._getAppearance(e,t,a,r);if(this.appearance&&null===i)return super.getOperatorList(e,t,a,r);const n=new OperatorList;if(!this._defaultAppearance||null===i)return{opList:n,separateForm:!1,separateCanvas:!1};const o=!!(this.data.hasOwnCanvas&&a&s),c=[0,0,this.width,this.height],h=getTransformMatrix(this.data.rect,c,[1,0,0,1,0,0]);let u;this.oc&&(u=await e.parseMarkedContentProps(this.oc,null));void 0!==u&&n.addOp(St,["OC",u]);n.addOp(Ot,[this.data.id,this.data.rect,h,this.getRotationMatrix(r),o]);const d=new StringStream(i);await e.getOperatorList({stream:d,task:t,resources:this._fieldResources.mergedResources,operatorList:n});n.addOp(Mt,[]);void 0!==u&&n.addOp(At,[]);return{opList:n,separateForm:!1,separateCanvas:o}}_getMKDict(e){const t=new Dict(null);e&&t.set("R",e);t.setIfArray("BC",getPdfColorArray(this.borderColor));t.setIfArray("BG",getPdfColorArray(this.backgroundColor));return t.size>0?t:null}amendSavedDict(e,t){}setValue(e,t,a,r){const{dict:i,ref:n}=function getParentToUpdate(e,t,a){const r=new RefSet,i=e,n={dict:null,ref:null};for(;e instanceof Dict&&!r.has(t);){r.put(t);if(e.has("T"))break;if(!((t=e.getRaw("Parent"))instanceof Ref))return n;e=a.fetch(t)}if(e instanceof Dict&&e!==i){n.dict=e;n.ref=t}return n}(e,this.ref,a);if(i){if(!r.has(n)){const e=i.clone();e.set("V",t);r.put(n,{data:e});return e}}else e.set("V",t);return null}async save(e,t,a,r){const i=a?.get(this.data.id),n=this._buildFlags(i?.noView,i?.noPrint);let s=i?.value,o=i?.rotation;if(s===this.data.fieldValue||void 0===s){if(!this._hasValueFromXFA&&void 0===o&&void 0===n)return;s||=this.data.fieldValue}if(void 0===o&&!this._hasValueFromXFA&&Array.isArray(s)&&Array.isArray(this.data.fieldValue)&&isArrayEqual(s,this.data.fieldValue)&&void 0===n)return;void 0===o&&(o=this.rotation);let l=null;if(!this._needAppearances){l=await this._getAppearance(e,t,c,a);if(null===l&&void 0===n)return}let h=!1;if(l?.needAppearances){h=!0;l=null}const{xref:u}=e,d=u.fetchIfRef(this.ref);if(!(d instanceof Dict))return;const f=new Dict(u);for(const e of d.getKeys())"AP"!==e&&f.set(e,d.getRaw(e));if(void 0!==n){f.set("F",n);if(null===l&&!h){const e=d.getRaw("AP");e&&f.set("AP",e)}}const g={path:this.data.fieldName,value:s},p=this.setValue(f,Array.isArray(s)?s.map(stringToAsciiOrUTF16BE):stringToAsciiOrUTF16BE(s),u,r);this.amendSavedDict(a,p||f);const m=this._getMKDict(o);m&&f.set("MK",m);r.put(this.ref,{data:f,xfa:g,needAppearances:h});if(null!==l){const e=u.getNewTemporaryRef(),t=new Dict(u);f.set("AP",t);t.set("N",e);const i=this._getSaveFieldResources(u),n=new StringStream(l),s=n.dict=new Dict(u);s.setIfName("Subtype","Form");s.set("Resources",i);const c=o%180==0?[0,0,this.width,this.height]:[0,0,this.height,this.width];s.set("BBox",c);const h=this.getRotationMatrix(a);h!==la&&s.set("Matrix",h);r.put(e,{data:n,xfa:null,needAppearances:!1})}f.set("M",`D:${getModificationDate()}`)}async _getAppearance(e,t,a,r){if(this.data.password)return null;const n=r?.get(this.data.id);let s,o;if(n){s=n.formattedValue||n.value;o=n.rotation}if(void 0===o&&void 0===s&&!this._needAppearances&&(!this._hasValueFromXFA||this.appearance))return null;const l=this.getBorderAndBackgroundAppearances(r);if(void 0===s){s=this.data.fieldValue;if(!s)return`/Tx BMC q ${l}Q EMC`}Array.isArray(s)&&1===s.length&&(s=s[0]);assert("string"==typeof s,"Expected `value` to be a string.");s=s.trimEnd();if(this.data.combo){const e=this.data.options.find(({exportValue:e})=>s===e);s=e?.displayValue||s}if(""===s)return`/Tx BMC q ${l}Q EMC`;void 0===o&&(o=this.rotation);let h,u=-1;if(this.data.multiLine){h=s.split(/\r\n?|\n/).map(e=>e.normalize("NFC"));u=h.length}else h=[s.replace(/\r\n?|\n/,"").normalize("NFC")];let{width:d,height:f}=this;90!==o&&270!==o||([d,f]=[f,d]);this._defaultAppearance||(this.data.defaultAppearanceData=parseDefaultAppearance(this._defaultAppearance="/Helvetica 0 Tf 0 g"));let g,p,m,b=await WidgetAnnotation._getFontData(e,t,this.data.defaultAppearanceData,this._fieldResources.mergedResources);const y=[];let w=!1;for(const e of h){const t=b.encodeString(e);t.length>1&&(w=!0);y.push(t.join(""))}if(w&&a&c)return{needAppearances:!0};if(w&&this._isOffscreenCanvasSupported){const a=this.data.comb?"monospace":"sans-serif",r=new FakeUnicodeFont(e.xref,a),i=r.createFontResources(h.join("")),n=i.getRaw("Font");if(this._fieldResources.mergedResources.has("Font")){const e=this._fieldResources.mergedResources.get("Font");for(const t of n.getKeys())e.set(t,n.getRaw(t))}else this._fieldResources.mergedResources.set("Font",n);const o=r.fontName.name;b=await WidgetAnnotation._getFontData(e,t,{fontName:o,fontSize:0},i);for(let e=0,t=y.length;e2)return`/Tx BMC q ${l}BT `+g+` 1 0 0 1 ${numberToString(2)} ${numberToString(C)} Tm (${escapeString(y[0])}) Tj ET Q EMC`;return`/Tx BMC q ${l}BT `+g+` 1 0 0 1 0 0 Tm ${this._renderText(y[0],b,p,d,k,{shift:0},2,C)} ET Q EMC`}static async _getFontData(e,t,a,r){const i=new OperatorList,n={font:null,clone(){return this}},{fontName:s,fontSize:o}=a;await e.handleSetFont(r,[s&&Name.get(s),o],null,i,t,n,null);return n.font}_getTextWidth(e,t){return Math.sumPrecise(t.charsToGlyphs(e).map(e=>e.width))/1e3}_computeFontSize(e,t,r,i,n){let{fontSize:s}=this.data.defaultAppearanceData,o=(s||12)*a,c=Math.round(e/o);if(!s){const roundWithTwoDigits=e=>Math.floor(100*e)/100;if(-1===n){const n=this._getTextWidth(r,i);s=roundWithTwoDigits(Math.min(e/a,t/n));c=1}else{const l=r.split(/\r\n?|\n/),h=[];for(const e of l){const t=i.encodeString(e).join(""),a=i.charsToGlyphs(t),r=i.getCharPositions(t);h.push({line:t,glyphs:a,positions:r})}const isTooBig=a=>{let r=0;for(const n of h){r+=this._splitLine(null,i,a,t,n).length*a;if(r>e)return!0}return!1};c=Math.max(c,n);for(;;){o=e/c;s=roundWithTwoDigits(o/a);if(!isTooBig(s))break;c++}}const{fontName:l,fontColor:h}=this.data.defaultAppearanceData;this._defaultAppearance=function createDefaultAppearance({fontSize:e,fontName:t,fontColor:a}){return`/${escapePDFName(t)} ${e} Tf ${getPdfColor(a,!0)}`}({fontSize:s,fontName:l,fontColor:h})}return[this._defaultAppearance,s,e/c]}_renderText(e,t,a,r,i,n,s,o){let c;if(1===i){c=(r-this._getTextWidth(e,t)*a)/2}else if(2===i){c=r-this._getTextWidth(e,t)*a-s}else c=s;const l=numberToString(c-n.shift);n.shift=c;return`${l} ${o=numberToString(o)} Td (${escapeString(e)}) Tj`}_getSaveFieldResources(e){const{localResources:t,appearanceResources:a,acroFormResources:r}=this._fieldResources,i=this.data.defaultAppearanceData?.fontName;if(!i)return t||Dict.empty;for(const e of[t,a])if(e instanceof Dict){const t=e.get("Font");if(t instanceof Dict&&t.has(i))return e}if(r instanceof Dict){const a=r.get("Font");if(a instanceof Dict&&a.has(i)){const r=new Dict(e);r.set(i,a.getRaw(i));const n=new Dict(e);n.set("Font",r);return Dict.merge({xref:e,dictArray:[n,t],mergeSubDicts:!0})}}return t||Dict.empty}getFieldObject(){return null}}class TextWidgetAnnotation extends WidgetAnnotation{constructor(e){super(e);const{dict:t}=e;if(t.has("PMD")){this.flags|=D;this.data.hidden=!0;warn("Barcodes are not supported")}this.data.hasOwnCanvas=this.data.readOnly&&!this.data.noHTML;this._hasText=!0;"string"!=typeof this.data.fieldValue&&(this.data.fieldValue="");let a=getInheritableProperty({dict:t,key:"Q"});(!Number.isInteger(a)||a<0||a>2)&&(a=null);this.data.textAlignment=a;let r=getInheritableProperty({dict:t,key:"MaxLen"});(!Number.isInteger(r)||r<0)&&(r=0);this.data.maxLen=r;this.data.multiLine=this.hasFieldFlag(X);this.data.comb=this.hasFieldFlag(K)&&!this.data.multiLine&&!this.data.password&&!this.hasFieldFlag($)&&0!==this.data.maxLen;this.data.doNotScroll=this.hasFieldFlag(V);const{data:{actions:i}}=this;if(!i)return;const n=/^AF(Date|Time)_(?:Keystroke|Format)(?:Ex)?\(['"]?([^'"]+)['"]?\);$/;let s=!1;(1===i.Format?.length&&1===i.Keystroke?.length&&n.test(i.Format[0])&&n.test(i.Keystroke[0])||0===i.Format?.length&&1===i.Keystroke?.length&&n.test(i.Keystroke[0])||0===i.Keystroke?.length&&1===i.Format?.length&&n.test(i.Format[0]))&&(s=!0);const o=[];i.Format&&o.push(...i.Format);i.Keystroke&&o.push(...i.Keystroke);if(s){delete i.Keystroke;i.Format=o}for(const e of o){const t=e.match(n);if(!t)continue;const a="Date"===t[1];let r=t[2];const i=parseInt(r,10);isNaN(i)||Math.floor(Math.log10(i))+1!==t[2].length||(r=(a?wn:xn)[i]??r);this.data.datetimeFormat=r;if(!s)break;if(a){if(/HH|MM|ss|h/.test(r)){this.data.datetimeType="datetime-local";this.data.timeStep=/ss/.test(r)?1:60}else this.data.datetimeType="date";break}this.data.datetimeType="time";this.data.timeStep=/ss/.test(r)?1:60;break}}get hasTextContent(){return!!this.appearance&&!this._needAppearances}_getCombAppearance(e,t,a,r,i,n,s,o,c,l,h){const u=i/this.data.maxLen,d=this.getBorderAndBackgroundAppearances(h),f=[],g=t.getCharPositions(a);for(const[e,t]of g)f.push(`(${escapeString(a.substring(e,t))}) Tj`);const p=f.join(` ${numberToString(u)} 0 Td `);return`/Tx BMC q ${d}BT `+e+` 1 0 0 1 ${numberToString(s)} ${numberToString(o+c)} Tm ${p} ET Q EMC`}_getMultilineAppearance(e,t,a,r,i,n,s,o,c,l,h,u){const d=[],f=i-2*o,g={shift:0};for(let e=0,n=t.length;er){c.push(e.substring(d,a));d=a;f=p;l=-1;u=-1}else{f+=p;l=a;h=i;u=t}else if(f+p>r)if(-1!==l){c.push(e.substring(d,h));d=h;t=u+1;l=-1;f=0}else{c.push(e.substring(d,a));d=a;f=p}else f+=p}dt?`\\${t}`:"\\s+");new RegExp(`^\\s*${n}\\s*$`).test(this.data.fieldValue)&&(this.data.textContent=this.data.fieldValue.split("\n"))}getFieldObject(){return{id:this.data.id,value:this.data.fieldValue,defaultValue:this.data.defaultFieldValue||"",multiline:this.data.multiLine,password:this.data.password,charLimit:this.data.maxLen,comb:this.data.comb,editable:!this.data.readOnly,hidden:this.data.hidden,name:this.data.fieldName,rect:this.data.rect,actions:this.data.actions,page:this.data.pageIndex,strokeColor:this.data.borderColor,fillColor:this.data.backgroundColor,rotation:this.rotation,datetimeFormat:this.data.datetimeFormat,hasDatetimeHTML:!!this.data.datetimeType,type:"text"}}}class ButtonWidgetAnnotation extends WidgetAnnotation{constructor(e){super(e);this.checkedAppearance=null;this.uncheckedAppearance=null;const t=this.hasFieldFlag(H),a=this.hasFieldFlag(W);this.data.checkBox=!t&&!a;this.data.radioButton=t&&!a;this.data.pushButton=a;this.data.isTooltipOnly=!1;if(this.data.checkBox)this._processCheckBox(e);else if(this.data.radioButton)this._processRadioButton(e);else if(this.data.pushButton){this.data.hasOwnCanvas=!0;this.data.noHTML=!1;this._processPushButton(e)}else warn("Invalid field flags for button widget annotation")}async getOperatorList(e,t,a,r){if(this.data.pushButton)return super.getOperatorList(e,t,a,!1,r);let i=null,n=null;if(r){const e=r.get(this.data.id);i=e?e.value:null;n=e?e.rotation:null}if(null===i&&this.appearance)return super.getOperatorList(e,t,a,r);null==i&&(i=this.data.checkBox?this.data.fieldValue===this.data.exportValue:this.data.fieldValue===this.data.buttonValue);const s=i?this.checkedAppearance:this.uncheckedAppearance;if(s){const i=this.appearance,o=lookupMatrix(s.dict.getArray("Matrix"),la);n&&s.dict.set("Matrix",this.getRotationMatrix(r));this.appearance=s;const c=super.getOperatorList(e,t,a,r);this.appearance=i;s.dict.set("Matrix",o);return c}return{opList:new OperatorList,separateForm:!1,separateCanvas:!1}}async save(e,t,a,r){this.data.checkBox?this._saveCheckbox(e,t,a,r):this.data.radioButton&&this._saveRadioButton(e,t,a,r)}async _saveCheckbox(e,t,a,r){if(!a)return;const i=a.get(this.data.id),n=this._buildFlags(i?.noView,i?.noPrint);let s=i?.rotation,o=i?.value;if(void 0===s&&void 0===n){if(void 0===o)return;if(this.data.fieldValue===this.data.exportValue===o)return}let c=e.xref.fetchIfRef(this.ref);if(!(c instanceof Dict))return;c=c.clone();void 0===s&&(s=this.rotation);void 0===o&&(o=this.data.fieldValue===this.data.exportValue);const l={path:this.data.fieldName,value:o?this.data.exportValue:""},h=Name.get(o?this.data.exportValue:"Off");this.setValue(c,h,e.xref,r);c.set("AS",h);c.set("M",`D:${getModificationDate()}`);void 0!==n&&c.set("F",n);const u=this._getMKDict(s);u&&c.set("MK",u);r.put(this.ref,{data:c,xfa:l,needAppearances:!1})}async _saveRadioButton(e,t,a,r){if(!a)return;const i=a.get(this.data.id),n=this._buildFlags(i?.noView,i?.noPrint);let s=i?.rotation,o=i?.value;if(void 0===s&&void 0===n){if(void 0===o)return;if(this.data.fieldValue===this.data.buttonValue===o)return}let c=e.xref.fetchIfRef(this.ref);if(!(c instanceof Dict))return;c=c.clone();void 0===o&&(o=this.data.fieldValue===this.data.buttonValue);void 0===s&&(s=this.rotation);const l={path:this.data.fieldName,value:o?this.data.buttonValue:""},h=Name.get(o?this.data.buttonValue:"Off");o&&this.setValue(c,h,e.xref,r);c.set("AS",h);c.set("M",`D:${getModificationDate()}`);void 0!==n&&c.set("F",n);const u=this._getMKDict(s);u&&c.set("MK",u);r.put(this.ref,{data:c,xfa:l,needAppearances:!1})}_getDefaultCheckedAppearance(e,t){const{width:a,height:r}=this,i=[0,0,a,r],n=.8*Math.min(a,r);let s,o;if("check"===t){s={width:.755*n,height:.705*n};o="3"}else if("disc"===t){s={width:.791*n,height:.705*n};o="l"}else unreachable(`_getDefaultCheckedAppearance - unsupported type: ${t}`);const c=`q BT /PdfJsZaDb ${n} Tf 0 g ${numberToString((a-s.width)/2)} ${numberToString((r-s.height)/2)} Td (${o}) Tj ET Q`,l=new Dict(e.xref);l.set("FormType",1);l.setIfName("Subtype","Form");l.setIfName("Type","XObject");l.set("BBox",i);l.set("Matrix",[1,0,0,1,0,0]);l.set("Length",c.length);const h=new Dict(e.xref),u=new Dict(e.xref);u.set("PdfJsZaDb",this.fallbackFontDict);h.set("Font",u);l.set("Resources",h);this.checkedAppearance=new StringStream(c);this.checkedAppearance.dict=l;this._streams.push(this.checkedAppearance)}_processCheckBox(e){const t=e.dict.get("AP");if(!(t instanceof Dict))return;const a=t.get("N");if(!(a instanceof Dict))return;const r=this._decodeFormValue(e.dict.get("AS"));"string"==typeof r&&(this.data.fieldValue=r);const i=null!==this.data.fieldValue&&"Off"!==this.data.fieldValue?this.data.fieldValue:"Yes",n=this._decodeFormValue(a.getKeys());if(0===n.length)n.push("Off",i);else if(1===n.length)"Off"===n[0]?n.push(i):n.unshift("Off");else if(n.includes(i)){n.length=0;n.push("Off",i)}else{const e=n.find(e=>"Off"!==e);n.length=0;n.push("Off",e)}n.includes(this.data.fieldValue)||(this.data.fieldValue="Off");this.data.exportValue=n[1];const s=a.get(this.data.exportValue);this.checkedAppearance=s instanceof BaseStream?s:null;const o=a.get("Off");this.uncheckedAppearance=o instanceof BaseStream?o:null;this.checkedAppearance?this._streams.push(this.checkedAppearance):this._getDefaultCheckedAppearance(e,"check");this.uncheckedAppearance&&this._streams.push(this.uncheckedAppearance);this._fallbackFontDict=this.fallbackFontDict;null===this.data.defaultFieldValue&&(this.data.defaultFieldValue="Off")}_processRadioButton(e){this.data.buttonValue=null;const t=e.dict.get("Parent");if(t instanceof Dict){this.parent=e.dict.getRaw("Parent");const a=t.get("V");a instanceof Name&&(this.data.fieldValue=this._decodeFormValue(a))}const a=e.dict.get("AP");if(!(a instanceof Dict))return;const r=a.get("N");if(!(r instanceof Dict))return;for(const e of r.getKeys())if("Off"!==e){this.data.buttonValue=this._decodeFormValue(e);break}const i=r.get(this.data.buttonValue);this.checkedAppearance=i instanceof BaseStream?i:null;const n=r.get("Off");this.uncheckedAppearance=n instanceof BaseStream?n:null;this.checkedAppearance?this._streams.push(this.checkedAppearance):this._getDefaultCheckedAppearance(e,"disc");this.uncheckedAppearance&&this._streams.push(this.uncheckedAppearance);this._fallbackFontDict=this.fallbackFontDict;null===this.data.defaultFieldValue&&(this.data.defaultFieldValue="Off")}_processPushButton(e){const{dict:t,annotationGlobals:a}=e;if(t.has("A")||t.has("AA")||this.data.alternativeText){this.data.isTooltipOnly=!t.has("A")&&!t.has("AA");Catalog.parseDestDictionary({destDict:t,resultObj:this.data,docBaseUrl:a.baseUrl,docAttachments:a.attachments})}else warn("Push buttons without action dictionaries are not supported")}getFieldObject(){let e,t="button";if(this.data.checkBox){t="checkbox";e=this.data.exportValue}else if(this.data.radioButton){t="radiobutton";e=this.data.buttonValue}return{id:this.data.id,value:this.data.fieldValue||"Off",defaultValue:this.data.defaultFieldValue,exportValues:e,editable:!this.data.readOnly,name:this.data.fieldName,rect:this.data.rect,hidden:this.data.hidden,actions:this.data.actions,page:this.data.pageIndex,strokeColor:this.data.borderColor,fillColor:this.data.backgroundColor,rotation:this.rotation,type:t}}get fallbackFontDict(){const e=new Dict;e.setIfName("BaseFont","ZapfDingbats");e.setIfName("Type","FallbackType");e.setIfName("Subtype","FallbackType");e.setIfName("Encoding","ZapfDingbatsEncoding");return shadow(this,"fallbackFontDict",e)}}class ChoiceWidgetAnnotation extends WidgetAnnotation{constructor(e){super(e);const{dict:t,xref:a}=e;this.indices=t.getArray("I");this.hasIndices=Array.isArray(this.indices)&&this.indices.length>0;this.data.options=[];const r=getInheritableProperty({dict:t,key:"Opt"});if(Array.isArray(r))for(let e=0,t=r.length;e=0&&t0&&(this.data.options=this.data.fieldValue.map(e=>({exportValue:e,displayValue:e})));this.data.combo=this.hasFieldFlag(z);this.data.multiSelect=this.hasFieldFlag(G);this._hasText=!0}getFieldObject(){const e=this.data.combo?"combobox":"listbox",t=this.data.fieldValue.length>0?this.data.fieldValue[0]:null;return{id:this.data.id,value:t,defaultValue:this.data.defaultFieldValue,editable:!this.data.readOnly,name:this.data.fieldName,rect:this.data.rect,numItems:this.data.fieldValue.length,multipleSelection:this.data.multiSelect,hidden:this.data.hidden,actions:this.data.actions,items:this.data.options,page:this.data.pageIndex,strokeColor:this.data.borderColor,fillColor:this.data.backgroundColor,rotation:this.rotation,type:e}}amendSavedDict(e,t){if(!this.hasIndices)return;let a=e?.get(this.data.id)?.value;Array.isArray(a)||(a=[a]);const r=[],{options:i}=this.data;for(let e=0,t=0,n=i.length;ea){a=r;t=e}}[f,g]=this._computeFontSize(e,c-4,t,d,-1)}const p=g*a,m=(p-g)/2,b=Math.floor(l/p);let y=0;if(u.length>0){const e=Math.min(...u),t=Math.max(...u);y=Math.max(0,t-b+1);y>e&&(y=e)}const w=Math.min(y+b+1,h),x=["/Tx BMC q",`1 1 ${c} ${l} re W n`];if(u.length){x.push("0.600006 0.756866 0.854904 rg");for(const e of u)y<=e&&ee.trimEnd());const{coords:e,bbox:t,matrix:r}=FakeUnicodeFont.getFirstPositionInfo(this.rectangle,this.rotation,a);this.data.textPosition=this._transformPoint(e,t,r)}if(this._isOffscreenCanvasSupported){const i=e.dict.get("CA"),n=new FakeUnicodeFont(r,"sans-serif");this.appearance=n.createAppearance(this._contents.str,this.rectangle,this.rotation,a,t,i);this._streams.push(this.appearance)}else warn("FreeTextAnnotation: OffscreenCanvas is not supported, annotation may not render correctly.")}}get hasTextContent(){return this._hasAppearance}static createNewDict(e,t,{apRef:a,ap:r}){const{color:i,date:n,fontSize:s,oldAnnotation:o,rect:c,rotation:l,user:h,value:u}=e,d=o||new Dict(t);d.setIfNotExists("Type",Name.get("Annot"));d.setIfNotExists("Subtype",Name.get("FreeText"));d.set(o?"M":"CreationDate",`D:${getModificationDate(n)}`);o&&d.delete("RC");d.setIfArray("Rect",c);const f=`/Helv ${s} Tf ${getPdfColor(i,!0)}`;d.set("DA",f);d.setIfDefined("Contents",stringToAsciiOrUTF16BE(u));d.setIfNotExists("F",4);d.setIfNotExists("Border",[0,0,0]);d.setIfNumber("Rotate",l);d.setIfDefined("T",stringToAsciiOrUTF16BE(h));if(a||r){const e=new Dict(t);d.set("AP",e);e.set("N",a||r)}return d}static async createNewAppearanceStream(e,t,r){const{baseFontRef:i,evaluator:n,task:s}=r,{color:o,fontSize:c,rect:l,rotation:h,value:u}=e;if(!o)return null;const d=new Dict(t),f=new Dict(t);if(i)f.set("Helv",i);else{const e=new Dict(t);e.setIfName("BaseFont","Helvetica");e.setIfName("Type","Font");e.setIfName("Subtype","Type1");e.setIfName("Encoding","WinAnsiEncoding");f.set("Helv",e)}d.set("Font",f);const g=await WidgetAnnotation._getFontData(n,s,{fontName:"Helv",fontSize:c},d),[p,m,b,y]=l;let w=b-p,x=y-m;h%180!=0&&([w,x]=[x,w]);const S=u.split("\n"),k=c/1e3;let C=-1/0;const v=[];for(let e of S){const t=g.encodeString(e);if(t.length>1)return null;e=t.join("");v.push(e);let a=0;const r=g.charsToGlyphs(e);for(const e of r)a+=e.width*k;C=Math.max(C,a)}let F=1;C>w&&(F=w/C);let T=1;const O=a*c,M=1*c,D=O*S.length;D>x&&(T=x/D);const R=c*Math.min(F,T);let N,E,L;switch(h){case 0:L=[1,0,0,1];E=[l[0],l[1],w,x];N=[l[0],l[3]-M];break;case 90:L=[0,1,-1,0];E=[l[1],-l[2],w,x];N=[l[1],-l[0]-M];break;case 180:L=[-1,0,0,-1];E=[-l[2],-l[3],w,x];N=[-l[2],-l[1]-M];break;case 270:L=[0,-1,1,0];E=[-l[3],l[0],w,x];N=[-l[3],l[2]-M]}const _=["q",`${L.join(" ")} 0 0 cm`,`${E.join(" ")} re W n`,"BT",`${getPdfColor(o,!0)}`,`0 Tc /Helv ${numberToString(R)} Tf`];_.push(`${N.join(" ")} Td (${escapeString(v[0])}) Tj`);const j=numberToString(O);for(let e=1,t=v.length;e{e.push(`${r[0]} ${r[1]} m`,`${r[2]} ${r[3]} l`,"S");return[t[0]-o,t[7]-o,t[2]+o,t[3]+o]}})}}}class SquareAnnotation extends MarkupAnnotation{constructor(e){super(e);const{dict:t,xref:a}=e;this.data.annotationType=F.SQUARE;this.data.hasOwnCanvas=this.data.noRotate;this.data.noHTML=!1;if(!this.appearance){const e=getPdfColorArray(this.color,[0,0,0]),r=t.get("CA"),i=getPdfColorArray(getRgbColor(t.getArray("IC"),null)),n=i?r:null;if(0===this.borderStyle.width&&!i)return;this._setDefaultAppearance({xref:a,extra:`${this.borderStyle.width} w`,strokeColor:e,fillColor:i,strokeAlpha:r,fillAlpha:n,pointsCallback:(e,t)=>{const a=t[4]+this.borderStyle.width/2,r=t[5]+this.borderStyle.width/2,n=t[6]-t[4]-this.borderStyle.width,s=t[3]-t[7]-this.borderStyle.width;e.push(`${a} ${r} ${n} ${s} re`);i?e.push("B"):e.push("S");return[t[0],t[7],t[2],t[3]]}})}}}class CircleAnnotation extends MarkupAnnotation{constructor(e){super(e);const{dict:t,xref:a}=e;this.data.annotationType=F.CIRCLE;if(!this.appearance){const e=getPdfColorArray(this.color,[0,0,0]),r=t.get("CA"),i=getPdfColorArray(getRgbColor(t.getArray("IC"),null)),n=i?r:null;if(0===this.borderStyle.width&&!i)return;const s=4/3*Math.tan(Math.PI/8);this._setDefaultAppearance({xref:a,extra:`${this.borderStyle.width} w`,strokeColor:e,fillColor:i,strokeAlpha:r,fillAlpha:n,pointsCallback:(e,t)=>{const a=t[0]+this.borderStyle.width/2,r=t[1]-this.borderStyle.width/2,n=t[6]-this.borderStyle.width/2,o=t[7]+this.borderStyle.width/2,c=a+(n-a)/2,l=r+(o-r)/2,h=(n-a)/2*s,u=(o-r)/2*s;e.push(`${c} ${o} m`,`${c+h} ${o} ${n} ${l+u} ${n} ${l} c`,`${n} ${l-u} ${c+h} ${r} ${c} ${r} c`,`${c-h} ${r} ${a} ${l-u} ${a} ${l} c`,`${a} ${l+u} ${c-h} ${o} ${c} ${o} c`,"h");i?e.push("B"):e.push("S");return[t[0],t[7],t[2],t[3]]}})}}}class PolylineAnnotation extends MarkupAnnotation{constructor(e){super(e);const{dict:t,xref:a}=e;this.data.annotationType=F.POLYLINE;this.data.hasOwnCanvas=this.data.noRotate;this.data.noHTML=!1;this.data.vertices=null;if(!(this instanceof PolygonAnnotation)){this.setLineEndings(t.getArray("LE"));this.data.lineEndings=this.lineEndings}const r=t.getArray("Vertices");if(!isNumberArray(r,null))return;const i=this.data.vertices=Float32Array.from(r);if(!this.appearance){const e=getPdfColorArray(this.color,[0,0,0]),r=t.get("CA");let n,s=getRgbColor(t.getArray("IC"),null);s&&(s=getPdfColorArray(s));n=s?this.color?s.every((t,a)=>t===e[a])?"f":"B":"f":"S";const o=this.borderStyle.width||1,c=2*o,l=[1/0,1/0,-1/0,-1/0];for(let e=0,t=i.length;e{for(let t=0,a=i.length;t{for(const t of this.data.inkLists){for(let a=0,r=t.length;a0){const e=new Dict(t);g.set("BS",e);e.set("W",d)}g.setIfArray("C",getPdfColorArray(n));g.setIfNumber("CA",o);if(r||a){const e=new Dict(t);g.set("AP",e);e.set("N",a||r)}return g}static async createNewAppearanceStream(e,t,a){if(e.outlines)return this.createNewAppearanceStreamForHighlight(e,t,a);const{color:r,rect:i,paths:n,thickness:s,opacity:o}=e;if(!r)return null;const c=[`${s} w 1 J 1 j`,`${getPdfColor(r,!1)}`];1!==o&&c.push("/R0 gs");for(const e of n.lines){c.push(`${numberToString(e[4])} ${numberToString(e[5])} m`);for(let t=6,a=e.length;t{e.push(`${t[0]} ${t[1]} m`,`${t[2]} ${t[3]} l`,`${t[6]} ${t[7]} l`,`${t[4]} ${t[5]} l`,"f");return[t[0],t[7],t[2],t[3]]}})}}else this.data.popupRef=null}get overlaysTextContent(){return!0}static createNewDict(e,t,{apRef:a,ap:r}){const{color:i,date:n,oldAnnotation:s,opacity:o,rect:c,rotation:l,user:h,quadPoints:u}=e,d=s||new Dict(t);d.setIfNotExists("Type",Name.get("Annot"));d.setIfNotExists("Subtype",Name.get("Highlight"));d.set(s?"M":"CreationDate",`D:${getModificationDate(n)}`);d.setIfArray("Rect",c);d.setIfNotExists("F",4);d.setIfNotExists("Border",[0,0,0]);d.setIfNumber("Rotate",l);d.setIfArray("QuadPoints",u);d.setIfArray("C",getPdfColorArray(i));d.setIfNumber("CA",o);d.setIfDefined("T",stringToAsciiOrUTF16BE(h));if(a||r){const e=new Dict(t);d.set("AP",e);e.set("N",a||r)}return d}static async createNewAppearanceStream(e,t,a){const{color:r,rect:i,outlines:n,opacity:s}=e;if(!r)return null;const o=[`${getPdfColor(r,!0)}`,"/R0 gs"],c=[];for(const e of n){c.length=0;c.push(`${numberToString(e[0])} ${numberToString(e[1])} m`);for(let t=2,a=e.length;t{e.push(`${t[4]} ${t[5]+1.3} m`,`${t[6]} ${t[7]+1.3} l`,"S");return[t[0],t[7],t[2],t[3]]}})}}else this.data.popupRef=null}get overlaysTextContent(){return!0}}class SquigglyAnnotation extends MarkupAnnotation{constructor(e){super(e);const{dict:t,xref:a}=e;this.data.annotationType=F.SQUIGGLY;if(this.data.quadPoints=getQuadPoints(t,null)){if(!this.appearance){const e=getPdfColorArray(this.color,[0,0,0]),r=t.get("CA");this._setDefaultAppearance({xref:a,extra:"[] 0 d 1 w",strokeColor:e,strokeAlpha:r,pointsCallback:(e,t)=>{const a=(t[1]-t[5])/6;let r=a,i=t[4];const n=t[5],s=t[6];e.push(`${i} ${n+r} m`);do{i+=2;r=0===r?a:0;e.push(`${i} ${n+r} l`)}while(i{e.push((t[0]+t[4])/2+" "+(t[1]+t[5])/2+" m",(t[2]+t[6])/2+" "+(t[3]+t[7])/2+" l","S");return[t[0],t[7],t[2],t[3]]}})}}else this.data.popupRef=null}get overlaysTextContent(){return!0}}class StampAnnotation extends MarkupAnnotation{#ve=null;constructor(e){super(e);this.data.annotationType=F.STAMP;this.data.hasOwnCanvas=this.data.noRotate;this.data.isEditable=!this.data.noHTML;this.data.noHTML=!1}mustBeViewedWhenEditing(e,t=null){if(e){if(!this.data.isEditable)return!0;this.#ve??=this.data.hasOwnCanvas;this.data.hasOwnCanvas=!0;return!0}if(null!==this.#ve){this.data.hasOwnCanvas=this.#ve;this.#ve=null}return!t?.has(this.data.id)}static async createImage(e,t){const{width:a,height:r}=e,i=new OffscreenCanvas(a,r),n=i.getContext("2d",{alpha:!0});n.drawImage(e,0,0);const s=n.getImageData(0,0,a,r).data,o=new Uint32Array(s.buffer),c=o.some(FeatureTest.isLittleEndian?e=>e>>>24!=255:e=>!!(255&~e));if(c){n.fillStyle="white";n.fillRect(0,0,a,r);n.drawImage(e,0,0)}const l=i.convertToBlob({type:"image/jpeg",quality:1}).then(e=>e.arrayBuffer()),h=Name.get("XObject"),u=Name.get("Image"),d=new Dict(t);d.set("Type",h);d.set("Subtype",u);d.set("BitsPerComponent",8);d.setIfName("ColorSpace","DeviceRGB");d.setIfName("Filter","DCTDecode");d.set("BBox",[0,0,a,r]);d.set("Width",a);d.set("Height",r);let f=null;if(c){const e=new Uint8Array(o.length);if(FeatureTest.isLittleEndian)for(let t=0,a=o.length;t>>24;else for(let t=0,a=o.length;t=0&&n<=1?n:null}}const Zo={get r(){return shadow(this,"r",new Uint8Array([7,12,17,22,7,12,17,22,7,12,17,22,7,12,17,22,5,9,14,20,5,9,14,20,5,9,14,20,5,9,14,20,4,11,16,23,4,11,16,23,4,11,16,23,4,11,16,23,6,10,15,21,6,10,15,21,6,10,15,21,6,10,15,21]))},get k(){return shadow(this,"k",new Int32Array([-680876936,-389564586,606105819,-1044525330,-176418897,1200080426,-1473231341,-45705983,1770035416,-1958414417,-42063,-1990404162,1804603682,-40341101,-1502002290,1236535329,-165796510,-1069501632,643717713,-373897302,-701558691,38016083,-660478335,-405537848,568446438,-1019803690,-187363961,1163531501,-1444681467,-51403784,1735328473,-1926607734,-378558,-2022574463,1839030562,-35309556,-1530992060,1272893353,-155497632,-1094730640,681279174,-358537222,-722521979,76029189,-640364487,-421815835,530742520,-995338651,-198630844,1126891415,-1416354905,-57434055,1700485571,-1894986606,-1051523,-2054922799,1873313359,-30611744,-1560198380,1309151649,-145523070,-1120210379,718787259,-343485551]))}};function calculateMD5(e,t,a){let r=1732584193,i=-271733879,n=-1732584194,s=271733878;const o=a+72&-64,c=new Uint8Array(o);let l,h;for(l=0;l>5&255;c[l++]=a>>13&255;c[l++]=a>>21&255;c[l++]=a>>>29&255;l+=3;const d=new Int32Array(16),{k:f,r:g}=Zo;for(l=0;l>>32-n)|0;a=r}r=r+a|0;i=i+o|0;n=n+u|0;s=s+p|0}return new Uint8Array([255&r,r>>8&255,r>>16&255,r>>>24&255,255&i,i>>8&255,i>>16&255,i>>>24&255,255&n,n>>8&255,n>>16&255,n>>>24&255,255&s,s>>8&255,s>>16&255,s>>>24&255])}function decodeString(e){try{return stringToUTF8String(e)}catch(t){warn(`UTF-8 decoding failed: "${t}".`);return e}}class DatasetXMLParser extends SimpleXMLParser{constructor(e){super(e);this.node=null}onEndElement(e){const t=super.onEndElement(e);if(t&&"xfa:datasets"===e){this.node=t;throw new Error("Aborting DatasetXMLParser.")}}}class DatasetReader{constructor(e){if(e.datasets)this.node=new SimpleXMLParser({hasAttributes:!0}).parseFromString(e.datasets).documentElement;else{const t=new DatasetXMLParser({hasAttributes:!0});try{t.parseFromString(e["xdp:xdp"])}catch{}this.node=t.node}}getValue(e){if(!this.node||!e)return"";const t=this.node.searchNode(parseXFAPath(e),0);if(!t)return"";const a=t.firstChild;return"value"===a?.nodeName?t.children.map(e=>decodeString(e.textContent)):decodeString(t.textContent)}}class SingleIntersector{#Ie;#Te=1/0;#Oe=1/0;#Me=-1/0;#De=-1/0;#Be=null;#Re=[];#Ne=[];#Ee=-1;#Pe=!1;constructor(e){this.#Ie=e;const t=e.data.quadPoints;if(t){for(let e=0,a=t.length;e8&&(this.#Be=t)}else[this.#Te,this.#Oe,this.#Me,this.#De]=e.data.rect}overlaps(e){return!(this.#Te>=e.#Me||this.#Me<=e.#Te||this.#Oe>=e.#De||this.#De<=e.#Oe)}#Le(e,t){if(this.#Te>=e||this.#Me<=e||this.#Oe>=t||this.#De<=t)return!1;const a=this.#Be;if(!a)return!0;if(this.#Ee>=0){const r=this.#Ee;if(!(a[r]>=e||a[r+2]<=e||a[r+5]>=t||a[r+1]<=t))return!0;this.#Ee=-1}for(let r=0,i=a.length;r=e||a[r+2]<=e||a[r+5]>=t||a[r+1]<=t)){this.#Ee=r;return!0}return!1}addGlyph(e,t,a){if(!this.#Le(e,t)){this.disableExtraChars();return!1}if(this.#Ne.length>0){this.#Re.push(this.#Ne.join(""));this.#Ne.length=0}this.#Re.push(a);this.#Pe=!0;return!0}addExtraChar(e){this.#Pe&&this.#Ne.push(e)}disableExtraChars(){if(this.#Pe){this.#Pe=!1;this.#Ne.length=0}}setText(){this.#Ie.data.overlaidText=this.#Re.join("")}}class Intersector{#_e=new Map;constructor(e){for(const t of e){if(!t.data.quadPoints&&!t.data.rect)continue;const e=new SingleIntersector(t);for(const[t,a]of this.#_e)t.overlaps(e)&&(a?a.add(e):this.#_e.set(t,new Set([e])));this.#_e.set(e,null)}}addGlyph(e,t,a,r){const i=e[4]+t/2,n=e[5]+a/2;let s;for(const[e,t]of this.#_e)s?s.has(e)?e.addGlyph(i,n,r):e.disableExtraChars():e.addGlyph(i,n,r)&&(s=t)}addExtraChar(e){for(const t of this.#_e.keys())t.addExtraChar(e)}setText(){for(const e of this.#_e.keys())e.setText()}}class Word64{constructor(e,t){this.high=0|e;this.low=0|t}and(e){this.high&=e.high;this.low&=e.low}xor(e){this.high^=e.high;this.low^=e.low}shiftRight(e){if(e>=32){this.low=this.high>>>e-32|0;this.high=0}else{this.low=this.low>>>e|this.high<<32-e;this.high=this.high>>>e|0}}rotateRight(e){let t,a;if(32&e){a=this.low;t=this.high}else{t=this.low;a=this.high}e&=31;this.low=t>>>e|a<<32-e;this.high=a>>>e|t<<32-e}not(){this.high=~this.high;this.low=~this.low}add(e){const t=(this.low>>>0)+(e.low>>>0);let a=(this.high>>>0)+(e.high>>>0);t>4294967295&&(a+=1);this.low=0|t;this.high=0|a}copyTo(e,t){e[t]=this.high>>>24&255;e[t+1]=this.high>>16&255;e[t+2]=this.high>>8&255;e[t+3]=255&this.high;e[t+4]=this.low>>>24&255;e[t+5]=this.low>>16&255;e[t+6]=this.low>>8&255;e[t+7]=255&this.low}assign(e){this.high=e.high;this.low=e.low}}const Qo={get k(){return shadow(this,"k",[new Word64(1116352408,3609767458),new Word64(1899447441,602891725),new Word64(3049323471,3964484399),new Word64(3921009573,2173295548),new Word64(961987163,4081628472),new Word64(1508970993,3053834265),new Word64(2453635748,2937671579),new Word64(2870763221,3664609560),new Word64(3624381080,2734883394),new Word64(310598401,1164996542),new Word64(607225278,1323610764),new Word64(1426881987,3590304994),new Word64(1925078388,4068182383),new Word64(2162078206,991336113),new Word64(2614888103,633803317),new Word64(3248222580,3479774868),new Word64(3835390401,2666613458),new Word64(4022224774,944711139),new Word64(264347078,2341262773),new Word64(604807628,2007800933),new Word64(770255983,1495990901),new Word64(1249150122,1856431235),new Word64(1555081692,3175218132),new Word64(1996064986,2198950837),new Word64(2554220882,3999719339),new Word64(2821834349,766784016),new Word64(2952996808,2566594879),new Word64(3210313671,3203337956),new Word64(3336571891,1034457026),new Word64(3584528711,2466948901),new Word64(113926993,3758326383),new Word64(338241895,168717936),new Word64(666307205,1188179964),new Word64(773529912,1546045734),new Word64(1294757372,1522805485),new Word64(1396182291,2643833823),new Word64(1695183700,2343527390),new Word64(1986661051,1014477480),new Word64(2177026350,1206759142),new Word64(2456956037,344077627),new Word64(2730485921,1290863460),new Word64(2820302411,3158454273),new Word64(3259730800,3505952657),new Word64(3345764771,106217008),new Word64(3516065817,3606008344),new Word64(3600352804,1432725776),new Word64(4094571909,1467031594),new Word64(275423344,851169720),new Word64(430227734,3100823752),new Word64(506948616,1363258195),new Word64(659060556,3750685593),new Word64(883997877,3785050280),new Word64(958139571,3318307427),new Word64(1322822218,3812723403),new Word64(1537002063,2003034995),new Word64(1747873779,3602036899),new Word64(1955562222,1575990012),new Word64(2024104815,1125592928),new Word64(2227730452,2716904306),new Word64(2361852424,442776044),new Word64(2428436474,593698344),new Word64(2756734187,3733110249),new Word64(3204031479,2999351573),new Word64(3329325298,3815920427),new Word64(3391569614,3928383900),new Word64(3515267271,566280711),new Word64(3940187606,3454069534),new Word64(4118630271,4000239992),new Word64(116418474,1914138554),new Word64(174292421,2731055270),new Word64(289380356,3203993006),new Word64(460393269,320620315),new Word64(685471733,587496836),new Word64(852142971,1086792851),new Word64(1017036298,365543100),new Word64(1126000580,2618297676),new Word64(1288033470,3409855158),new Word64(1501505948,4234509866),new Word64(1607167915,987167468),new Word64(1816402316,1246189591)])}};function ch(e,t,a,r,i){e.assign(t);e.and(a);i.assign(t);i.not();i.and(r);e.xor(i)}function maj(e,t,a,r,i){e.assign(t);e.and(a);i.assign(t);i.and(r);e.xor(i);i.assign(a);i.and(r);e.xor(i)}function sigma(e,t,a){e.assign(t);e.rotateRight(28);a.assign(t);a.rotateRight(34);e.xor(a);a.assign(t);a.rotateRight(39);e.xor(a)}function sigmaPrime(e,t,a){e.assign(t);e.rotateRight(14);a.assign(t);a.rotateRight(18);e.xor(a);a.assign(t);a.rotateRight(41);e.xor(a)}function littleSigma(e,t,a){e.assign(t);e.rotateRight(1);a.assign(t);a.rotateRight(8);e.xor(a);a.assign(t);a.shiftRight(7);e.xor(a)}function littleSigmaPrime(e,t,a){e.assign(t);e.rotateRight(19);a.assign(t);a.rotateRight(61);e.xor(a);a.assign(t);a.shiftRight(6);e.xor(a)}function calculateSHA512(e,t,a,r=!1){let i,n,s,o,c,l,h,u;if(r){i=new Word64(3418070365,3238371032);n=new Word64(1654270250,914150663);s=new Word64(2438529370,812702999);o=new Word64(355462360,4144912697);c=new Word64(1731405415,4290775857);l=new Word64(2394180231,1750603025);h=new Word64(3675008525,1694076839);u=new Word64(1203062813,3204075428)}else{i=new Word64(1779033703,4089235720);n=new Word64(3144134277,2227873595);s=new Word64(1013904242,4271175723);o=new Word64(2773480762,1595750129);c=new Word64(1359893119,2917565137);l=new Word64(2600822924,725511199);h=new Word64(528734635,4215389547);u=new Word64(1541459225,327033209)}const d=128*Math.ceil((a+17)/128),f=new Uint8Array(d);let g,p;for(g=0;g>>29&255;f[g++]=a>>21&255;f[g++]=a>>13&255;f[g++]=a>>5&255;f[g++]=a<<3&255;const b=new Array(80);for(g=0;g<80;g++)b[g]=new Word64(0,0);const{k:y}=Qo;let w=new Word64(0,0),x=new Word64(0,0),S=new Word64(0,0),k=new Word64(0,0),C=new Word64(0,0),v=new Word64(0,0),F=new Word64(0,0),T=new Word64(0,0);const O=new Word64(0,0),M=new Word64(0,0),D=new Word64(0,0),R=new Word64(0,0);let N,E;for(g=0;g>>t|e<<32-t}function calculate_sha256_ch(e,t,a){return e&t^~e&a}function calculate_sha256_maj(e,t,a){return e&t^e&a^t&a}function calculate_sha256_sigma(e){return rotr(e,2)^rotr(e,13)^rotr(e,22)}function calculate_sha256_sigmaPrime(e){return rotr(e,6)^rotr(e,11)^rotr(e,25)}function calculate_sha256_littleSigma(e){return rotr(e,7)^rotr(e,18)^e>>>3}function calculate_sha256_littleSigmaPrime(e){return rotr(e,17)^rotr(e,19)^e>>>10}function calculateSHA256(e,t,a){let r=1779033703,i=3144134277,n=1013904242,s=2773480762,o=1359893119,c=2600822924,l=528734635,h=1541459225;const u=64*Math.ceil((a+9)/64),d=new Uint8Array(u);let f,g;for(f=0;f>>29&255;d[f++]=a>>21&255;d[f++]=a>>13&255;d[f++]=a>>5&255;d[f++]=a<<3&255;const m=new Uint32Array(64),{k:b}=ec;for(f=0;f>24&255,r>>16&255,r>>8&255,255&r,i>>24&255,i>>16&255,i>>8&255,255&i,n>>24&255,n>>16&255,n>>8&255,255&n,s>>24&255,s>>16&255,s>>8&255,255&s,o>>24&255,o>>16&255,o>>8&255,255&o,c>>24&255,c>>16&255,c>>8&255,255&c,l>>24&255,l>>16&255,l>>8&255,255&l,h>>24&255,h>>16&255,h>>8&255,255&h])}class DecryptStream extends DecodeStream{constructor(e,t,a){super(t);this.str=e;this.dict=e.dict;this.decrypt=a;this.nextChunk=null;this.initialized=!1}readBlock(){let e;if(this.initialized)e=this.nextChunk;else{e=this.str.getBytes(512);this.initialized=!0}if(!e?.length){this.eof=!0;return}this.nextChunk=this.str.getBytes(512);const t=this.nextChunk?.length>0;e=(0,this.decrypt)(e,!t);const a=this.bufferLength,r=a+e.length;this.ensureBuffer(r).set(e,a);this.bufferLength=r}}class ARCFourCipher{constructor(e){this.a=0;this.b=0;const t=new Uint8Array(256),a=e.length;for(let e=0;e<256;++e)t[e]=e;for(let r=0,i=0;r<256;++r){const n=t[r];i=i+n+e[r%a]&255;t[r]=t[i];t[i]=n}this.s=t}encryptBlock(e){let t=this.a,a=this.b;const r=this.s,i=e.length,n=new Uint8Array(i);for(let s=0;st<128?t<<1:t<<1^27);constructor(){this.buffer=new Uint8Array(16);this.bufferPosition=0}_expandKey(e){unreachable("Cannot call `_expandKey` on the base class")}_decrypt(e,t){let a,r,i;const n=new Uint8Array(16);n.set(e);for(let e=0,a=this._keySize;e<16;++e,++a)n[e]^=t[a];for(let e=this._cyclesOfRepetition-1;e>=1;--e){a=n[13];n[13]=n[9];n[9]=n[5];n[5]=n[1];n[1]=a;a=n[14];r=n[10];n[14]=n[6];n[10]=n[2];n[6]=a;n[2]=r;a=n[15];r=n[11];i=n[7];n[15]=n[3];n[11]=a;n[7]=r;n[3]=i;for(let e=0;e<16;++e)n[e]=this._inv_s[n[e]];for(let a=0,r=16*e;a<16;++a,++r)n[a]^=t[r];for(let e=0;e<16;e+=4){const t=this._mix[n[e]],r=this._mix[n[e+1]],i=this._mix[n[e+2]],s=this._mix[n[e+3]];a=t^r>>>8^r<<24^i>>>16^i<<16^s>>>24^s<<8;n[e]=a>>>24&255;n[e+1]=a>>16&255;n[e+2]=a>>8&255;n[e+3]=255&a}}a=n[13];n[13]=n[9];n[9]=n[5];n[5]=n[1];n[1]=a;a=n[14];r=n[10];n[14]=n[6];n[10]=n[2];n[6]=a;n[2]=r;a=n[15];r=n[11];i=n[7];n[15]=n[3];n[11]=a;n[7]=r;n[3]=i;for(let e=0;e<16;++e){n[e]=this._inv_s[n[e]];n[e]^=t[e]}return n}_encrypt(e,t){const a=this._s;let r,i,n;const s=new Uint8Array(16);s.set(e);for(let e=0;e<16;++e)s[e]^=t[e];for(let e=1;e=r;--a)if(e[a]!==t){t=0;break}o-=t;n[n.length-1]=e.subarray(0,16-t)}}const c=new Uint8Array(o);for(let e=0,t=0,a=n.length;e=256&&(o=255&(27^o))}for(let t=0;t<4;++t){a[e]=r^=a[e-32];e++;a[e]=i^=a[e-32];e++;a[e]=n^=a[e-32];e++;a[e]=s^=a[e-32];e++}}return a}}class PDFBase{_hash(e,t,a){unreachable("Abstract method `_hash` called")}checkOwnerPassword(e,t,a,r){const i=new Uint8Array(e.length+56);i.set(e,0);i.set(t,e.length);i.set(a,e.length+t.length);return isArrayEqual(this._hash(e,i,a),r)}checkUserPassword(e,t,a){const r=new Uint8Array(e.length+8);r.set(e,0);r.set(t,e.length);return isArrayEqual(this._hash(e,r,[]),a)}getOwnerKey(e,t,a,r){const i=new Uint8Array(e.length+56);i.set(e,0);i.set(t,e.length);i.set(a,e.length+t.length);const n=this._hash(e,i,a);return new AES256Cipher(n).decryptBlock(r,!1,new Uint8Array(16))}getUserKey(e,t,a){const r=new Uint8Array(e.length+8);r.set(e,0);r.set(t,e.length);const i=this._hash(e,r,[]);return new AES256Cipher(i).decryptBlock(a,!1,new Uint8Array(16))}}class PDF17 extends PDFBase{_hash(e,t,a){return calculateSHA256(t,0,t.length)}}class PDF20 extends PDFBase{_hash(e,t,a){let r=calculateSHA256(t,0,t.length).subarray(0,32),i=[0],n=0;for(;n<64||i.at(-1)>n-32;){const t=e.length+r.length+a.length,s=new Uint8Array(t);let o=0;s.set(e,o);o+=e.length;s.set(r,o);o+=r.length;s.set(a,o);const c=new Uint8Array(64*t);for(let e=0,a=0;e<64;e++,a+=t)c.set(s,a);i=new AES128Cipher(r.subarray(0,16)).encrypt(c,r.subarray(16,32));const l=Math.sumPrecise(i.slice(0,16))%3;0===l?r=calculateSHA256(i,0,i.length):1===l?r=calculateSHA384(i,0,i.length):2===l&&(r=calculateSHA512(i,0,i.length));n++}return r.subarray(0,32)}}class CipherTransform{constructor(e,t){this.StringCipherConstructor=e;this.StreamCipherConstructor=t}createStream(e,t){const a=new this.StreamCipherConstructor;return new DecryptStream(e,t,function cipherTransformDecryptStream(e,t){return a.decryptBlock(e,t)})}decryptString(e){const t=new this.StringCipherConstructor;let a=stringToBytes(e);a=t.decryptBlock(a,!0);return bytesToString(a)}encryptString(e){const t=new this.StringCipherConstructor;if(t instanceof AESBaseCipher){const a=16-e.length%16;e+=String.fromCharCode(a).repeat(a);const r=new Uint8Array(16);crypto.getRandomValues(r);let i=stringToBytes(e);i=t.encrypt(i,r);const n=new Uint8Array(16+i.length);n.set(r);n.set(i,16);return bytesToString(n)}let a=stringToBytes(e);a=t.encrypt(a);return bytesToString(a)}}class CipherTransformFactory{static get _defaultPasswordBytes(){return shadow(this,"_defaultPasswordBytes",new Uint8Array([40,191,78,94,78,117,138,65,100,0,78,86,255,250,1,8,46,46,0,182,208,104,62,128,47,12,169,254,100,83,105,122]))}#je(e,t,a,r,i,n,s,o,c,l,h,u){if(t){const e=Math.min(127,t.length);t=t.subarray(0,e)}else t=[];const d=6===e?new PDF20:new PDF17;return d.checkUserPassword(t,o,s)?d.getUserKey(t,c,h):t.length&&d.checkOwnerPassword(t,r,n,a)?d.getOwnerKey(t,i,n,l):null}#Ue(e,t,a,r,i,n,s,o){const c=40+a.length+e.length,l=new Uint8Array(c);let h,u,d=0;if(t){u=Math.min(32,t.length);for(;d>8&255;l[d++]=i>>16&255;l[d++]=i>>>24&255;l.set(e,d);d+=e.length;if(n>=4&&!o){l.fill(255,d,d+4);d+=4}let f=calculateMD5(l,0,d);const g=s>>3;if(n>=3)for(h=0;h<50;++h)f=calculateMD5(f,0,g);const p=f.subarray(0,g);let m,b;if(n>=3){d=0;l.set(CipherTransformFactory._defaultPasswordBytes,d);d+=32;l.set(e,d);d+=e.length;m=new ARCFourCipher(p);b=m.encryptBlock(calculateMD5(l,0,d));u=p.length;const t=new Uint8Array(u);for(h=1;h<=19;++h){for(let e=0;er[t]===e)?p:null}#Xe(e,t,a,r){const i=new Uint8Array(32);let n=0;const s=Math.min(32,e.length);for(;n>3;if(a>=3)for(o=0;o<50;++o)c=calculateMD5(c,0,c.length);let h,u;if(a>=3){u=t;const e=new Uint8Array(l);for(o=19;o>=0;o--){for(let t=0;t>8&255;n[s++]=e>>16&255;n[s++]=255&t;n[s++]=t>>8&255;if(r){n[s++]=115;n[s++]=65;n[s++]=108;n[s++]=84}return calculateMD5(n,0,s).subarray(0,Math.min(i+5,16))}#He(e,t,a,r,i){if(!(t instanceof Name))throw new FormatError("Invalid crypt filter name.");const n=this,s=e.get(t.name),o=s?.get("CFM");if(!o||"None"===o.name)return function(){return new NullCipher};if("V2"===o.name)return function(){return new ARCFourCipher(n.#qe(a,r,i,!1))};if("AESV2"===o.name)return function(){return new AES128Cipher(n.#qe(a,r,i,!0))};if("AESV3"===o.name)return function(){return new AES256Cipher(i)};throw new FormatError("Unknown crypto method")}constructor(e,t,a){const r=e.get("Filter");if(!isName(r,"Standard"))throw new FormatError("unknown encryption method");this.filterName=r.name;this.dict=e;const i=e.get("V");if(!Number.isInteger(i)||1!==i&&2!==i&&4!==i&&5!==i)throw new FormatError("unsupported encryption algorithm");this.algorithm=i;let n=e.get("Length");if(!n)if(i<=3)n=40;else{const t=e.get("CF"),a=e.get("StmF");if(t instanceof Dict&&a instanceof Name){t.suppressEncryption=!0;const e=t.get(a.name);n=e?.get("Length")||128;n<40&&(n<<=3)}}if(!Number.isInteger(n)||n<40||n%8!=0)throw new FormatError("invalid key length");const s=stringToBytes(e.get("O")),o=stringToBytes(e.get("U")),c=s.subarray(0,32),l=o.subarray(0,32),h=e.get("P"),u=e.get("R"),d=(4===i||5===i)&&!1!==e.get("EncryptMetadata");this.encryptMetadata=d;const f=stringToBytes(t);let g,p;if(a){if(6===u)try{a=utf8StringToString(a)}catch{warn("CipherTransformFactory: Unable to convert UTF8 encoded password.")}g=stringToBytes(a)}if(5!==i)p=this.#Ue(f,g,c,l,h,u,n,d);else{const t=s.subarray(32,40),a=s.subarray(40,48),r=o.subarray(0,48),i=o.subarray(32,40),n=o.subarray(40,48),h=stringToBytes(e.get("OE")),d=stringToBytes(e.get("UE")),f=stringToBytes(e.get("Perms"));p=this.#je(u,g,c,t,a,r,l,i,n,h,d,f)}if(!p){if(!a)throw new PasswordException("No password given",Gt);const e=this.#Xe(g,c,u,n);p=this.#Ue(f,e,c,l,h,u,n,d)}if(!p)throw new PasswordException("Incorrect Password",Vt);if(4===i&&p.length<16){this.encryptionKey=new Uint8Array(16);this.encryptionKey.set(p)}else this.encryptionKey=p;if(i>=4){const t=e.get("CF");t instanceof Dict&&(t.suppressEncryption=!0);this.cf=t;this.stmf=e.get("StmF")||Name.get("Identity");this.strf=e.get("StrF")||Name.get("Identity");this.eff=e.get("EFF")||this.stmf}}createCipherTransform(e,t){if(4===this.algorithm||5===this.algorithm)return new CipherTransform(this.#He(this.cf,this.strf,e,t,this.encryptionKey),this.#He(this.cf,this.stmf,e,t,this.encryptionKey));const a=this.#qe(e,t,this.encryptionKey,!1),cipherConstructor=function(){return new ARCFourCipher(a)};return new CipherTransform(cipherConstructor,cipherConstructor)}}class XRef{constructor(e,t){this.stream=e;this.pdfManager=t;this.entries=[];this._xrefStms=new Set;this._cacheMap=new Map;this._pendingRefs=new RefSet;this._newPersistentRefNum=null;this._newTemporaryRefNum=null;this._persistentRefsCache=null}getNewPersistentRef(e){null===this._newPersistentRefNum&&(this._newPersistentRefNum=this.entries.length||1);const t=this._newPersistentRefNum++;this._cacheMap.set(t,e);return Ref.get(t,0)}getNewTemporaryRef(){if(null===this._newTemporaryRefNum){this._newTemporaryRefNum=this.entries.length||1;if(this._newPersistentRefNum){this._persistentRefsCache=new Map;for(let e=this._newTemporaryRefNum;e0;){const[s,o]=n;if(!Number.isInteger(s)||!Number.isInteger(o))throw new FormatError(`Invalid XRef range fields: ${s}, ${o}`);if(!Number.isInteger(a)||!Number.isInteger(r)||!Number.isInteger(i))throw new FormatError(`Invalid XRef entry fields length: ${s}, ${o}`);for(let n=t.entryNum;n=e.length);){a+=String.fromCharCode(r);r=e[t]}return a}function skipUntil(e,t,a){const r=a.length,i=e.length;let n=0;for(;t=r)break;t++;n++}return n}const e=/\b(endobj|\d+\s+\d+\s+obj|xref|trailer\s*<<)\b/g,t=/\b(startxref|\d+\s+\d+\s+obj)\b/g,a=/^(\d+)\s+(\d+)\s+obj\b/,r=new Uint8Array([116,114,97,105,108,101,114]),i=new Uint8Array([115,116,97,114,116,120,114,101,102]),n=new Uint8Array([47,88,82,101,102]);this.entries.length=0;this._cacheMap.clear();const s=this.stream;s.pos=0;const o=s.getBytes(),c=bytesToString(o),l=o.length;let h=s.start;const u=[],d=[];for(;h=l)break;f=o[h]}while(10!==f&&13!==f);continue}const g=readToken(o,h);let p;if(g.startsWith("xref")&&(4===g.length||/\s/.test(g[4]))){h+=skipUntil(o,h,r);u.push(h);h+=skipUntil(o,h,i)}else if(p=a.exec(g)){const t=0|p[1],a=0|p[2],r=h+g.length;let i,u=!1;if(this.entries[t]){if(this.entries[t].gen===a)try{new Parser({lexer:new Lexer(s.makeSubStream(r))}).getObj();u=!0}catch(e){e instanceof ParserEOFException?warn(`indexObjects -- checking object (${g}): "${e}".`):u=!0}}else u=!0;u&&(this.entries[t]={offset:h-s.start,gen:a,uncompressed:!0});e.lastIndex=r;const f=e.exec(c);if(f){i=e.lastIndex+1-h;if("endobj"!==f[1]){warn(`indexObjects: Found "${f[1]}" inside of another "obj", caused by missing "endobj" -- trying to recover.`);i-=f[1].length+1}}else i=l-h;const m=o.subarray(h,h+i),b=skipUntil(m,0,n);if(b0&&t[3]-t[1]>0)return t;warn(`Empty, or invalid, /${e} entry.`)}return null}get mediaBox(){return shadow(this,"mediaBox",this.#Ve("MediaBox")||tc)}get cropBox(){return shadow(this,"cropBox",this.#Ve("CropBox")||this.mediaBox)}get userUnit(){const e=this.pageDict.get("UserUnit");return shadow(this,"userUnit","number"==typeof e&&e>0?e:1)}get view(){const{cropBox:e,mediaBox:t}=this;if(e!==t&&!isArrayEqual(e,t)){const a=Util.intersect(e,t);if(a&&a[2]-a[0]>0&&a[3]-a[1]>0)return shadow(this,"view",a);warn("Empty /CropBox and /MediaBox intersection.")}return shadow(this,"view",t)}get rotate(){let e=this.#Ge("Rotate")||0;e%90!=0?e=0:e>=360?e%=360:e<0&&(e=(e%360+360)%360);return shadow(this,"rotate",e)}#Ke(e,t){if(!this.evaluatorOptions.ignoreErrors)throw e;warn(`getContentStream - ignoring sub-stream (${t}): "${e}".`)}async getContentStream(){const e=await this.pdfManager.ensure(this,"content");return e instanceof BaseStream?e:Array.isArray(e)?new StreamsSequenceStream(e,this.#Ke.bind(this)):new NullStream}get xfaData(){return shadow(this,"xfaData",this.xfaFactory?{bbox:this.xfaFactory.getBoundingBox(this.pageIndex)}:null)}async#Je(e,t,a){const r=[];for(const i of e)if(i.id){const e=Ref.fromString(i.id);if(!e){warn(`A non-linked annotation cannot be modified: ${i.id}`);continue}if(i.deleted){t.put(e,e);if(i.popupRef){const e=Ref.fromString(i.popupRef);e&&t.put(e,e)}continue}if(i.popup?.deleted){const e=Ref.fromString(i.popupRef);e&&t.put(e,e)}a?.put(e);i.ref=e;r.push(this.xref.fetchAsync(e).then(e=>{e instanceof Dict&&(i.oldAnnotation=e.clone())},()=>{warn(`Cannot fetch \`oldAnnotation\` for: ${e}.`)}));delete i.id}await Promise.all(r)}async saveNewAnnotations(e,t,a,r,i){if(this.xfaFactory)throw new Error("XFA: Cannot save new annotations.");const n=this.#$e(e),s=new RefSetCache,o=new RefSet;await this.#Je(a,s,o);const c=this.pageDict,l=this.annotations.filter(e=>!(e instanceof Ref&&s.has(e))),h=await AnnotationFactory.saveNewAnnotations(n,t,a,r,i);for(const{ref:e}of h.annotations)e instanceof Ref&&!o.has(e)&&l.push(e);const u=c.clone();u.set("Annots",l);i.put(this.ref,{data:u});for(const e of s)i.put(e,{data:null})}async save(e,t,a,r){const i=this.#$e(e),n=await this._parsedAnnotations,s=[];for(const e of n)s.push(e.save(i,t,a,r).catch(function(e){warn(`save - ignoring annotation data during "${t.name}" task: "${e}".`);return null}));return Promise.all(s)}async loadResources(e){await(this.#ze??=this.pdfManager.ensure(this,"resources"));await ObjectLoader.load(this.resources,e,this.xref)}async#Ye(e,t){const a=e?.get("Resources");if(!(a instanceof Dict&&a.size))return this.resources;await ObjectLoader.load(a,t,this.xref);return Dict.merge({xref:this.xref,dictArray:[a,this.resources],mergeSubDicts:!0})}async getOperatorList({handler:e,sink:t,task:a,intent:r,cacheKey:i,annotationStorage:c=null,modifiedIds:d=null}){const g=this.getContentStream(),p=this.loadResources(ha),m=this.#$e(e),b=this.xfaFactory?null:getNewAnnotationsMap(c),y=b?.get(this.pageIndex);let w=Promise.resolve(null),x=null;if(y){const e=this.pdfManager.ensureDoc("annotationGlobals");let t;const r=new Set;for(const{bitmapId:e,bitmap:t}of y)!e||t||r.has(e)||r.add(e);const{isOffscreenCanvasSupported:i}=this.evaluatorOptions;if(r.size>0){const e=y.slice();for(const[t,a]of c)t.startsWith(f)&&a.bitmap&&r.has(a.bitmapId)&&e.push(a);t=AnnotationFactory.generateImages(e,this.xref,i)}else t=AnnotationFactory.generateImages(y,this.xref,i);x=new RefSet;w=Promise.all([e,this.#Je(y,x,null)]).then(([e])=>e?AnnotationFactory.printNewAnnotations(e,m,a,y,t):null)}const S=Promise.all([g,p]).then(async([n])=>{const s=await this.#Ye(n.dict,ha),o=new OperatorList(r,t);e.send("StartRenderPage",{transparency:m.hasBlendModes(s,this.nonBlendModesSet),pageIndex:this.pageIndex,cacheKey:i});await m.getOperatorList({stream:n,task:a,resources:s,operatorList:o});return o});let[k,C,v]=await Promise.all([S,this._parsedAnnotations,w]);if(v){C=C.filter(e=>!(e.ref&&x.has(e.ref)));for(let e=0,t=v.length;ee.ref&&isRefsEqual(e.ref,a.refToReplace));if(r>=0){C.splice(r,1,a);v.splice(e--,1);t--}}}C=C.concat(v)}if(0===C.length||r&h){k.flush(!0);return{length:k.totalLength}}const F=!!(r&l),T=!!(r&u),O=!!(r&n),M=!!(r&s),D=!!(r&o),R=[];for(const e of C)(O||M&&e.mustBeViewed(c,F)&&e.mustBeViewedWhenEditing(T,d)||D&&e.mustBePrinted(c))&&R.push(e.getOperatorList(m,a,r,c).catch(function(e){warn(`getOperatorList - ignoring annotation data during "${a.name}" task: "${e}".`);return{opList:null,separateForm:!1,separateCanvas:!1}}));const N=await Promise.all(R);let E=!1,L=!1;for(const{opList:e,separateForm:t,separateCanvas:a}of N){k.addOpList(e);E||=t;L||=a}k.flush(!0,{form:E,canvas:L});return{length:k.totalLength}}async extractTextContent({handler:e,task:t,includeMarkedContent:a,disableNormalization:r,sink:i,intersector:n=null}){const s=this.getContentStream(),o=this.loadResources(ua),c=this.pdfManager.ensureCatalog("lang"),[l,,h]=await Promise.all([s,o,c]),u=await this.#Ye(l.dict,ua);return this.#$e(e).getTextContent({stream:l,task:t,resources:u,includeMarkedContent:a,disableNormalization:r,sink:i,viewBox:this.view,lang:h,intersector:n})}async getStructTree(){const e=await this.pdfManager.ensureCatalog("structTreeRoot");if(!e)return null;await this._parsedAnnotations;try{const t=await this.pdfManager.ensure(this,"_parseStructTree",[e]);return await this.pdfManager.ensure(t,"serializable")}catch(e){warn(`getStructTree: "${e}".`);return null}}_parseStructTree(e){const t=new StructTreePage(e,this.pageDict);t.parse(this.ref);return t}async getAnnotationsData(e,t,a){const r=await this._parsedAnnotations;if(0===r.length)return r;const i=[],c=[];let l;const h=!!(a&n),u=!!(a&s),d=!!(a&o),f=[];for(const a of r){const r=h||u&&a.viewable;(r||d&&a.printable)&&i.push(a.data);if(a.hasTextContent&&r){l??=this.#$e(e);c.push(a.extractTextContent(l,t,[-1/0,-1/0,1/0,1/0]).catch(function(e){warn(`getAnnotationsData - ignoring textContent during "${t.name}" task: "${e}".`)}))}else a.overlaysTextContent&&r&&f.push(a)}if(f.length>0){const a=new Intersector(f);c.push(this.extractTextContent({handler:e,task:t,includeMarkedContent:!1,disableNormalization:!1,sink:null,viewBox:this.view,lang:null,intersector:a}).then(()=>{a.setText()}))}await Promise.all(c);return i}get annotations(){const e=this.#Ge("Annots");return shadow(this,"annotations",Array.isArray(e)?e:[])}get _parsedAnnotations(){const e=this.pdfManager.ensure(this,"annotations").then(async e=>{if(0===e.length)return e;const[t,a]=await Promise.all([this.pdfManager.ensureDoc("annotationGlobals"),this.pdfManager.ensureDoc("fieldObjects")]);if(!t)return[];const r=a?.orphanFields,i=[];for(const a of e)i.push(AnnotationFactory.create(this.xref,a,t,this._localIdFactory,!1,r,null,this.ref).catch(function(e){warn(`_parsedAnnotations: "${e}".`);return null}));const n=[];let s,o;for(const e of await Promise.all(i))e&&(e instanceof WidgetAnnotation?(o||=[]).push(e):e instanceof PopupAnnotation?(s||=[]).push(e):n.push(e));o&&n.push(...o);s&&n.push(...s);return n});this.#We=!0;return shadow(this,"_parsedAnnotations",e)}get jsActions(){return shadow(this,"jsActions",collectActions(this.xref,this.pageDict,re))}async collectAnnotationsByType(e,t,a,r,i){const{pageIndex:n}=this;if(this.#We){const e=await this._parsedAnnotations;for(const{data:t}of e)if(!a||a.has(t.annotationType)){t.pageIndex=n;r.push(Promise.resolve(t))}return}const s=await this.pdfManager.ensure(this,"annotations");for(const o of s)r.push(AnnotationFactory.create(this.xref,o,i,this._localIdFactory,!1,null,a,this.ref).then(async a=>{if(!a)return null;a.data.pageIndex=n;if(a.hasTextContent&&a.viewable){const r=this.#$e(e);await a.extractTextContent(r,t,[-1/0,-1/0,1/0,1/0])}return a.data}).catch(function(e){warn(`collectAnnotationsByType: "${e}".`);return null}))}}const ac=new Uint8Array([37,80,68,70,45]),rc=new Uint8Array([115,116,97,114,116,120,114,101,102]),ic=new Uint8Array([101,110,100,111,98,106]);function find(e,t,a=1024,r=!1){const i=t.length,n=e.peekBytes(a),s=n.length-i;if(s<=0)return!1;if(r){const a=i-1;let r=n.length-1;for(;r>=a;){let s=0;for(;s=i){e.pos+=r-a;return!0}r--}}else{let a=0;for(;a<=s;){let r=0;for(;r=i){e.pos+=a;return!0}a++}}return!1}class PDFDocument{#Ze=new Map;#Qe=null;constructor(e,t){if(t.length<=0)throw new InvalidPDFException("The PDF file is empty, i.e. its size is zero bytes.");this.pdfManager=e;this.stream=t;this.xref=new XRef(t,e);const a={font:0};this._globalIdFactory=class{static getDocId(){return`g_${e.docId}`}static createFontId(){return"f"+ ++a.font}static createObjId(){unreachable("Abstract method `createObjId` called.")}static getPageObjId(){unreachable("Abstract method `getPageObjId` called.")}}}parse(e){this.xref.parse(e);this.catalog=new Catalog(this.pdfManager,this.xref)}get linearization(){let e=null;try{e=Linearization.create(this.stream)}catch(e){if(e instanceof MissingDataException)throw e;info(e)}return shadow(this,"linearization",e)}get startXRef(){const e=this.stream;let t=0;if(this.linearization){e.reset();if(find(e,ic)){e.skip(6);let a=e.peekByte();for(;isWhiteSpace(a);){e.pos++;a=e.peekByte()}t=e.pos-e.start}}else{const a=1024,r=rc.length;let i=!1,n=e.end;for(;!i&&n>0;){n-=a-r;n<0&&(n=0);e.pos=n;i=find(e,rc,a,!0)}if(i){e.skip(9);let a;do{a=e.getByte()}while(isWhiteSpace(a));let r="";for(;a>=32&&a<=57;){r+=String.fromCharCode(a);a=e.getByte()}t=parseInt(r,10);isNaN(t)&&(t=0)}}return shadow(this,"startXRef",t)}checkHeader(){const e=this.stream;e.reset();if(!find(e,ac))return;e.moveStart();e.skip(ac.length);let t,a="";for(;(t=e.getByte())>32&&a.length<7;)a+=String.fromCharCode(t);oa.test(a)?this.#Qe=a:warn(`Invalid PDF header version: ${a}`)}parseStartXRef(){this.xref.setStartXRef(this.startXRef)}get numPages(){let e=0;e=this.catalog.hasActualNumPages?this.catalog.numPages:this.xfaFactory?this.xfaFactory.getNumPages():this.linearization?this.linearization.numPages:this.catalog.numPages;return shadow(this,"numPages",e)}#et(e,t=0){return!!Array.isArray(e)&&e.every(e=>{if(!((e=this.xref.fetchIfRef(e))instanceof Dict))return!1;if(e.has("Kids")){if(++t>10){warn("#hasOnlyDocumentSignatures: maximum recursion depth reached");return!1}return this.#et(e.get("Kids"),t)}const a=isName(e.get("FT"),"Sig"),r=e.get("Rect"),i=Array.isArray(r)&&r.every(e=>0===e);return a&&i})}#tt(e,t,a=new RefSet){if(Array.isArray(e))for(let r of e){if(r instanceof Ref){if(a.has(r))continue;a.put(r)}r=this.xref.fetchIfRef(r);if(!(r instanceof Dict))continue;if(r.has("Kids")){this.#tt(r.get("Kids"),t,a);continue}if(!isName(r.get("FT"),"Sig"))continue;const e=r.get("V");if(!(e instanceof Dict))continue;const i=e.get("SubFilter");i instanceof Name&&t.add(i.name)}}get _xfaStreams(){const{acroForm:e}=this.catalog;if(!e)return null;const t=e.get("XFA"),a=new Map(["xdp:xdp","template","datasets","config","connectionSet","localeSet","stylesheet","/xdp:xdp"].map(e=>[e,null]));if(t instanceof BaseStream&&!t.isEmpty){a.set("xdp:xdp",t);return a}if(!Array.isArray(t)||0===t.length)return null;for(let e=0,r=t.length;el.handleSetFont(r,[Name.get(e),1],null,h,t,d,a,i).catch(e=>{warn(`loadXfaFonts: "${e}".`);return null}),f=[];for(const[e,t]of i){const a=t.get("FontDescriptor");if(!(a instanceof Dict))continue;let r=a.get("FontFamily");r=r.replaceAll(/[ ]+(\d)/g,"$1");const i={fontFamily:r,fontWeight:a.get("FontWeight"),italicAngle:-a.get("ItalicAngle")};validateCSSFont(i)&&f.push(parseFont(e,null,i))}await Promise.all(f);const g=this.xfaFactory.setFonts(u);if(!g)return;n.ignoreErrors=!0;f.length=0;u.length=0;const p=new Set;for(const e of g)getXfaFontName(`${e}-Regular`)||p.add(e);p.size&&g.push("PdfJS-Fallback");for(const e of g)if(!p.has(e))for(const t of[{name:"Regular",fontWeight:400,italicAngle:0},{name:"Bold",fontWeight:700,italicAngle:0},{name:"Italic",fontWeight:400,italicAngle:12},{name:"BoldItalic",fontWeight:700,italicAngle:12}]){const a=`${e}-${t.name}`;f.push(parseFont(a,getXfaFontDict(a),{fontFamily:e,fontWeight:t.fontWeight,italicAngle:t.italicAngle}))}await Promise.all(f);this.xfaFactory.appendFonts(u,p)}loadXfaResources(e,t){return Promise.all([this.#rt(e,t).catch(()=>{}),this.#at()])}serializeXfaData(e){return this.xfaFactory?this.xfaFactory.serializeData(e):null}get version(){return this.catalog.version||this.#Qe}get formInfo(){const e={hasFields:!1,hasAcroForm:!1,hasXfa:!1,hasSignatures:!1},{acroForm:t}=this.catalog;if(!t)return shadow(this,"formInfo",e);try{const a=t.get("Fields"),r=Array.isArray(a)&&a.length>0;e.hasFields=r;const i=t.get("XFA");e.hasXfa=Array.isArray(i)&&i.length>0||i instanceof BaseStream&&!i.isEmpty;const n=!!(1&t.get("SigFlags")),s=n&&this.#et(a);e.hasAcroForm=r&&!s;e.hasSignatures=n}catch(e){if(e instanceof MissingDataException)throw e;warn(`Cannot fetch form information: "${e}".`)}return shadow(this,"formInfo",e)}get documentInfo(){const{catalog:e,formInfo:t,xref:a}=this,r={PDFFormatVersion:this.version,Language:e.lang,EncryptFilterName:a.encrypt?.filterName??null,IsLinearized:!!this.linearization,IsAcroFormPresent:t.hasAcroForm,IsXFAPresent:t.hasXfa,IsCollectionPresent:!!e.collection,IsSignaturesPresent:t.hasSignatures};let i;try{i=a.trailer.get("Info")}catch(e){if(e instanceof MissingDataException)throw e;info("The document information dictionary is invalid.")}if(!(i instanceof Dict))return shadow(this,"documentInfo",r);for(const[e,t]of i){switch(e){case"Title":case"Author":case"Subject":case"Keywords":case"Creator":case"Producer":case"CreationDate":case"ModDate":if("string"==typeof t){r[e]=stringToPDFString(t);continue}break;case"Trapped":if(t instanceof Name){r[e]=t;continue}break;default:let a;switch(typeof t){case"string":a=stringToPDFString(t);break;case"number":case"boolean":a=t;break;default:t instanceof Name&&(a=t)}if(void 0===a){warn(`Bad value, for custom key "${e}", in Info: ${t}.`);continue}r.Custom??=Object.create(null);r.Custom[e]=a;continue}warn(`Bad value, for key "${e}", in Info: ${t}.`)}return shadow(this,"documentInfo",r)}get fingerprints(){const e="\0".repeat(16);function validate(t){return"string"==typeof t&&16===t.length&&t!==e}const t=this.xref.trailer.get("ID");let a,r;if(Array.isArray(t)&&validate(t[0])){a=stringToBytes(t[0]);t[1]!==t[0]&&validate(t[1])&&(r=stringToBytes(t[1]))}else a=calculateMD5(this.stream.getByteRange(0,1024),0,1024);return shadow(this,"fingerprints",[toHexUtil(a),r?toHexUtil(r):null])}async#it(e){const{catalog:t,linearization:a,xref:r}=this,i=Ref.get(a.objectNumberFirst,0);try{const e=await r.fetchAsync(i);if(e instanceof Dict){let a=e.getRaw("Type");a instanceof Ref&&(a=await r.fetchAsync(a));if(isName(a,"Page")||!e.has("Type")&&!e.has("Kids")&&e.has("Contents")){t.pageKidsCountCache.has(i)||t.pageKidsCountCache.put(i,1);t.pageIndexCache.has(i)||t.pageIndexCache.put(i,0);return[e,i]}}throw new FormatError("The Linearization dictionary doesn't point to a valid Page dictionary.")}catch(a){warn(`_getLinearizationPage: "${a.message}".`);return t.getPageDict(e)}}getPage(e){const t=this.#Ze.get(e);if(t)return t;const{catalog:a,linearization:r,xfaFactory:i}=this;let n;n=i?Promise.resolve([Dict.empty,null]):r?.pageFirst===e?this.#it(e):a.getPageDict(e);n=n.then(([t,r])=>new Page({pdfManager:this.pdfManager,xref:this.xref,pageIndex:e,pageDict:t,ref:r,globalIdFactory:this._globalIdFactory,fontCache:a.fontCache,builtInCMapCache:a.builtInCMapCache,standardFontDataCache:a.standardFontDataCache,globalColorSpaceCache:a.globalColorSpaceCache,globalImageCache:a.globalImageCache,systemFontCache:a.systemFontCache,nonBlendModesSet:a.nonBlendModesSet,xfaFactory:i}));this.#Ze.set(e,n);return n}async checkFirstPage(e=!1){if(!e)try{await this.getPage(0)}catch(e){if(e instanceof XRefEntryException){this.#Ze.delete(0);await this.cleanup();throw new XRefParseException}}}async checkLastPage(e=!1){const{catalog:t,pdfManager:a}=this;t.setActualNumPages();let r;try{await Promise.all([a.ensureDoc("xfaFactory"),a.ensureDoc("linearization"),a.ensureCatalog("numPages")]);if(this.xfaFactory)return;r=this.linearization?this.linearization.numPages:t.numPages;if(!Number.isInteger(r))throw new FormatError("Page count is not an integer.");if(r<=1)return;await this.getPage(r-1)}catch(i){this.#Ze.delete(r-1);await this.cleanup();if(i instanceof XRefEntryException&&!e)throw new XRefParseException;warn(`checkLastPage - invalid /Pages tree /Count: ${r}.`);let n;try{n=await t.getAllPageDicts(e)}catch(a){if(a instanceof XRefEntryException&&!e)throw new XRefParseException;t.setActualNumPages(1);return}for(const[e,[r,i]]of n){let n;if(r instanceof Error){n=Promise.reject(r);n.catch(()=>{})}else n=Promise.resolve(new Page({pdfManager:a,xref:this.xref,pageIndex:e,pageDict:r,ref:i,globalIdFactory:this._globalIdFactory,fontCache:t.fontCache,builtInCMapCache:t.builtInCMapCache,standardFontDataCache:t.standardFontDataCache,globalColorSpaceCache:this.globalColorSpaceCache,globalImageCache:t.globalImageCache,systemFontCache:t.systemFontCache,nonBlendModesSet:t.nonBlendModesSet,xfaFactory:null}));this.#Ze.set(e,n)}t.setActualNumPages(n.size)}}async fontFallback(e,t){const{catalog:a,pdfManager:r}=this;for(const i of await Promise.all(a.fontCache))if(i.loadedName===e){i.fallback(t,r.evaluatorOptions);return}}async cleanup(e=!1){return this.catalog?this.catalog.cleanup(e):clearGlobalCaches()}async#nt(e,t,a,r,i,n,s){const{xref:o}=this;if(!(a instanceof Ref)||n.has(a))return;n.put(a);const c=await o.fetchAsync(a);if(!(c instanceof Dict))return;let l=await c.getAsync("Subtype");l=l instanceof Name?l.name:null;if("Link"===l)return;if(c.has("T")){const t=stringToPDFString(await c.getAsync("T"));e=""===e?t:`${e}.${t}`}else{let a=c;for(;;){a=a.getRaw("Parent")||t;if(a instanceof Ref){if(n.has(a))break;a=await o.fetchAsync(a)}if(!(a instanceof Dict))break;if(a.has("T")){const t=stringToPDFString(await a.getAsync("T"));e=""===e?t:`${e}.${t}`;break}}}t&&!c.has("Parent")&&isName(c.get("Subtype"),"Widget")&&s.put(a,t);r.has(e)||r.set(e,[]);r.get(e).push(AnnotationFactory.create(o,a,i,null,!0,s,null,null).then(e=>e?.getFieldObject()).catch(function(e){warn(`#collectFieldObjects: "${e}".`);return null}));if(!c.has("Kids"))return;const h=await c.getAsync("Kids");if(Array.isArray(h))for(const t of h)await this.#nt(e,a,t,r,i,n,s)}get fieldObjects(){return shadow(this,"fieldObjects",this.pdfManager.ensureDoc("formInfo").then(async e=>{if(!e.hasFields)return null;const t=await this.annotationGlobals;if(!t)return null;const{acroForm:a}=t,r=new RefSet,i=Object.create(null),n=new Map,s=new RefSetCache;for(const e of a.get("Fields"))await this.#nt("",null,e,n,t,r,s);const o=[];for(const[e,t]of n)o.push(Promise.all(t).then(t=>{(t=t.filter(e=>!!e)).length>0&&(i[e]=t)}));await Promise.all(o);return{allFields:objectSize(i)>0?i:null,orphanFields:s}}))}get hasJSActions(){return shadow(this,"hasJSActions",this.pdfManager.ensureDoc("_parseHasJSActions"))}async _parseHasJSActions(){const[e,t]=await Promise.all([this.pdfManager.ensureCatalog("jsActions"),this.pdfManager.ensureDoc("fieldObjects")]);return!!e||!!t?.allFields&&Object.values(t.allFields).some(e=>e.some(e=>null!==e.actions))}get calculationOrderIds(){const e=this.catalog.acroForm?.get("CO");if(!Array.isArray(e)||0===e.length)return shadow(this,"calculationOrderIds",null);const t=[];for(const a of e)a instanceof Ref&&t.push(a.toString());return shadow(this,"calculationOrderIds",t.length?t:null)}get annotationGlobals(){return shadow(this,"annotationGlobals",AnnotationFactory.createGlobals(this.pdfManager))}}class BasePdfManager{constructor({docBaseUrl:e,docId:t,enableXfa:a,evaluatorOptions:r,handler:i,password:n}){this._docBaseUrl=function parseDocBaseUrl(e){if(e){const t=createValidAbsoluteUrl(e);if(t)return t.href;warn(`Invalid absolute docBaseUrl: "${e}".`)}return null}(e);this._docId=t;this._password=n;this.enableXfa=a;r.isOffscreenCanvasSupported&&=FeatureTest.isOffscreenCanvasSupported;r.isImageDecoderSupported&&=FeatureTest.isImageDecoderSupported;this.evaluatorOptions=Object.freeze(r);ImageResizer.setOptions(r);JpegStream.setOptions(r);OperatorList.setOptions(r);const s={...r,handler:i};JpxImage.setOptions(s);IccColorSpace.setOptions(s);CmykICCBasedCS.setOptions(s)}get docId(){return this._docId}get password(){return this._password}get docBaseUrl(){return this._docBaseUrl}ensureDoc(e,t){return this.ensure(this.pdfDocument,e,t)}ensureXRef(e,t){return this.ensure(this.pdfDocument.xref,e,t)}ensureCatalog(e,t){return this.ensure(this.pdfDocument.catalog,e,t)}getPage(e){return this.pdfDocument.getPage(e)}fontFallback(e,t){return this.pdfDocument.fontFallback(e,t)}cleanup(e=!1){return this.pdfDocument.cleanup(e)}async ensure(e,t,a){unreachable("Abstract method `ensure` called")}requestRange(e,t){unreachable("Abstract method `requestRange` called")}requestLoadedStream(e=!1){unreachable("Abstract method `requestLoadedStream` called")}sendProgressiveData(e){unreachable("Abstract method `sendProgressiveData` called")}updatePassword(e){this._password=e}terminate(e){unreachable("Abstract method `terminate` called")}}class LocalPdfManager extends BasePdfManager{constructor(e){super(e);const t=new Stream(e.source);this.pdfDocument=new PDFDocument(this,t);this._loadedStreamPromise=Promise.resolve(t)}async ensure(e,t,a){const r=e[t];return"function"==typeof r?r.apply(e,a):r}requestRange(e,t){return Promise.resolve()}requestLoadedStream(e=!1){return this._loadedStreamPromise}terminate(e){}}class NetworkPdfManager extends BasePdfManager{constructor(e){super(e);this.streamManager=new ChunkedStreamManager(e.source,{msgHandler:e.handler,length:e.length,disableAutoFetch:e.disableAutoFetch,rangeChunkSize:e.rangeChunkSize});this.pdfDocument=new PDFDocument(this,this.streamManager.getStream())}async ensure(e,t,a){try{const r=e[t];return"function"==typeof r?r.apply(e,a):r}catch(r){if(!(r instanceof MissingDataException))throw r;await this.requestRange(r.begin,r.end);return this.ensure(e,t,a)}}requestRange(e,t){return this.streamManager.requestRange(e,t)}requestLoadedStream(e=!1){return this.streamManager.requestAllChunks(e)}sendProgressiveData(e){this.streamManager.onReceiveData({chunk:e})}terminate(e){this.streamManager.abort(e)}}const nc=1,sc=2,oc=1,cc=2,lc=3,hc=4,uc=5,dc=6,fc=7,gc=8;function onFn(){}function wrapReason(e){if(e instanceof AbortException||e instanceof InvalidPDFException||e instanceof PasswordException||e instanceof ResponseException||e instanceof UnknownErrorException)return e;e instanceof Error||"object"==typeof e&&null!==e||unreachable('wrapReason: Expected "reason" to be a (possibly cloned) Error.');switch(e.name){case"AbortException":return new AbortException(e.message);case"InvalidPDFException":return new InvalidPDFException(e.message);case"PasswordException":return new PasswordException(e.message,e.code);case"ResponseException":return new ResponseException(e.message,e.status,e.missing);case"UnknownErrorException":return new UnknownErrorException(e.message,e.details)}return new UnknownErrorException(e.message,e.toString())}class MessageHandler{#st=new AbortController;constructor(e,t,a){this.sourceName=e;this.targetName=t;this.comObj=a;this.callbackId=1;this.streamId=1;this.streamSinks=Object.create(null);this.streamControllers=Object.create(null);this.callbackCapabilities=Object.create(null);this.actionHandler=Object.create(null);a.addEventListener("message",this.#ot.bind(this),{signal:this.#st.signal})}#ot({data:e}){if(e.targetName!==this.sourceName)return;if(e.stream){this.#ct(e);return}if(e.callback){const t=e.callbackId,a=this.callbackCapabilities[t];if(!a)throw new Error(`Cannot resolve callback ${t}`);delete this.callbackCapabilities[t];if(e.callback===nc)a.resolve(e.data);else{if(e.callback!==sc)throw new Error("Unexpected callback case");a.reject(wrapReason(e.reason))}return}const t=this.actionHandler[e.action];if(!t)throw new Error(`Unknown action from worker: ${e.action}`);if(e.callbackId){const a=this.sourceName,r=e.sourceName,i=this.comObj;Promise.try(t,e.data).then(function(t){i.postMessage({sourceName:a,targetName:r,callback:nc,callbackId:e.callbackId,data:t})},function(t){i.postMessage({sourceName:a,targetName:r,callback:sc,callbackId:e.callbackId,reason:wrapReason(t)})});return}e.streamId?this.#lt(e):t(e.data)}on(e,t){const a=this.actionHandler;if(a[e])throw new Error(`There is already an actionName called "${e}"`);a[e]=t}send(e,t,a){this.comObj.postMessage({sourceName:this.sourceName,targetName:this.targetName,action:e,data:t},a)}sendWithPromise(e,t,a){const r=this.callbackId++,i=Promise.withResolvers();this.callbackCapabilities[r]=i;try{this.comObj.postMessage({sourceName:this.sourceName,targetName:this.targetName,action:e,callbackId:r,data:t},a)}catch(e){i.reject(e)}return i.promise}sendWithStream(e,t,a,r){const i=this.streamId++,n=this.sourceName,s=this.targetName,o=this.comObj;return new ReadableStream({start:a=>{const c=Promise.withResolvers();this.streamControllers[i]={controller:a,startCall:c,pullCall:null,cancelCall:null,isClosed:!1};o.postMessage({sourceName:n,targetName:s,action:e,streamId:i,data:t,desiredSize:a.desiredSize},r);return c.promise},pull:e=>{const t=Promise.withResolvers();this.streamControllers[i].pullCall=t;o.postMessage({sourceName:n,targetName:s,stream:dc,streamId:i,desiredSize:e.desiredSize});return t.promise},cancel:e=>{assert(e instanceof Error,"cancel must have a valid reason");const t=Promise.withResolvers();this.streamControllers[i].cancelCall=t;this.streamControllers[i].isClosed=!0;o.postMessage({sourceName:n,targetName:s,stream:oc,streamId:i,reason:wrapReason(e)});return t.promise}},a)}#lt(e){const t=e.streamId,a=this.sourceName,r=e.sourceName,i=this.comObj,n=this,s=this.actionHandler[e.action],o={enqueue(e,n=1,s){if(this.isCancelled)return;const o=this.desiredSize;this.desiredSize-=n;if(o>0&&this.desiredSize<=0){this.sinkCapability=Promise.withResolvers();this.ready=this.sinkCapability.promise}i.postMessage({sourceName:a,targetName:r,stream:hc,streamId:t,chunk:e},s)},close(){if(!this.isCancelled){this.isCancelled=!0;i.postMessage({sourceName:a,targetName:r,stream:lc,streamId:t});delete n.streamSinks[t]}},error(e){assert(e instanceof Error,"error must have a valid reason");if(!this.isCancelled){this.isCancelled=!0;i.postMessage({sourceName:a,targetName:r,stream:uc,streamId:t,reason:wrapReason(e)})}},sinkCapability:Promise.withResolvers(),onPull:null,onCancel:null,isCancelled:!1,desiredSize:e.desiredSize,ready:null};o.sinkCapability.resolve();o.ready=o.sinkCapability.promise;this.streamSinks[t]=o;Promise.try(s,e.data,o).then(function(){i.postMessage({sourceName:a,targetName:r,stream:gc,streamId:t,success:!0})},function(e){i.postMessage({sourceName:a,targetName:r,stream:gc,streamId:t,reason:wrapReason(e)})})}#ct(e){const t=e.streamId,a=this.sourceName,r=e.sourceName,i=this.comObj,n=this.streamControllers[t],s=this.streamSinks[t];switch(e.stream){case gc:e.success?n.startCall.resolve():n.startCall.reject(wrapReason(e.reason));break;case fc:e.success?n.pullCall.resolve():n.pullCall.reject(wrapReason(e.reason));break;case dc:if(!s){i.postMessage({sourceName:a,targetName:r,stream:fc,streamId:t,success:!0});break}s.desiredSize<=0&&e.desiredSize>0&&s.sinkCapability.resolve();s.desiredSize=e.desiredSize;Promise.try(s.onPull||onFn).then(function(){i.postMessage({sourceName:a,targetName:r,stream:fc,streamId:t,success:!0})},function(e){i.postMessage({sourceName:a,targetName:r,stream:fc,streamId:t,reason:wrapReason(e)})});break;case hc:assert(n,"enqueue should have stream controller");if(n.isClosed)break;n.controller.enqueue(e.chunk);break;case lc:assert(n,"close should have stream controller");if(n.isClosed)break;n.isClosed=!0;n.controller.close();this.#ht(n,t);break;case uc:assert(n,"error should have stream controller");n.controller.error(wrapReason(e.reason));this.#ht(n,t);break;case cc:e.success?n.cancelCall.resolve():n.cancelCall.reject(wrapReason(e.reason));this.#ht(n,t);break;case oc:if(!s)break;const o=wrapReason(e.reason);Promise.try(s.onCancel||onFn,o).then(function(){i.postMessage({sourceName:a,targetName:r,stream:cc,streamId:t,success:!0})},function(e){i.postMessage({sourceName:a,targetName:r,stream:cc,streamId:t,reason:wrapReason(e)})});s.sinkCapability.reject(o);s.isCancelled=!0;delete this.streamSinks[t];break;default:throw new Error("Unexpected stream case")}}async#ht(e,t){await Promise.allSettled([e.startCall?.promise,e.pullCall?.promise,e.cancelCall?.promise]);delete this.streamControllers[t]}destroy(){this.#st?.abort();this.#st=null}}async function writeObject(e,t,a,{encrypt:r=null}){const i=r?.createCipherTransform(e.num,e.gen);a.push(`${e.num} ${e.gen} obj\n`);t instanceof Dict?await writeDict(t,a,i):t instanceof BaseStream?await writeStream(t,a,i):(Array.isArray(t)||ArrayBuffer.isView(t))&&await writeArray(t,a,i);a.push("\nendobj\n")}async function writeDict(e,t,a){t.push("<<");for(const r of e.getKeys()){t.push(` /${escapePDFName(r)} `);await writeValue(e.getRaw(r),t,a)}t.push(">>")}async function writeStream(e,t,a){let r=e.getBytes();const{dict:i}=e,[n,s]=await Promise.all([i.getAsync("Filter"),i.getAsync("DecodeParms")]),o=isName(Array.isArray(n)?await i.xref.fetchIfRefAsync(n[0]):n,"FlateDecode");if(r.length>=256||o)try{const e=new CompressionStream("deflate"),t=e.writable.getWriter();await t.ready;t.write(r).then(async()=>{await t.ready;await t.close()}).catch(()=>{});const a=await new Response(e.readable).arrayBuffer();r=new Uint8Array(a);let c,l;if(n){if(!o){c=Array.isArray(n)?[Name.get("FlateDecode"),...n]:[Name.get("FlateDecode"),n];s&&(l=Array.isArray(s)?[null,...s]:[null,s])}}else c=Name.get("FlateDecode");c&&i.set("Filter",c);l&&i.set("DecodeParms",l)}catch(e){info(`writeStream - cannot compress data: "${e}".`)}let c=bytesToString(r);a&&(c=a.encryptString(c));i.set("Length",c.length);await writeDict(i,t,a);t.push(" stream\n",c,"\nendstream")}async function writeArray(e,t,a){t.push("[");let r=!0;for(const i of e){r?r=!1:t.push(" ");await writeValue(i,t,a)}t.push("]")}async function writeValue(e,t,a){if(e instanceof Name)t.push(`/${escapePDFName(e.name)}`);else if(e instanceof Ref)t.push(`${e.num} ${e.gen} R`);else if(Array.isArray(e)||ArrayBuffer.isView(e))await writeArray(e,t,a);else if("string"==typeof e){a&&(e=a.encryptString(e));t.push(`(${escapeString(e)})`)}else"number"==typeof e?t.push(numberToString(e)):"boolean"==typeof e?t.push(e.toString()):e instanceof Dict?await writeDict(e,t,a):e instanceof BaseStream?await writeStream(e,t,a):null===e?t.push("null"):warn(`Unhandled value in writer: ${typeof e}, please file a bug.`)}function writeInt(e,t,a,r){for(let i=t+a-1;i>a-1;i--){r[i]=255&e;e>>=8}return a+t}function writeString(e,t,a){const r=e.length;for(let i=0;i1&&(n=a.documentElement.searchNode([i.at(-1)],0));n?n.childNodes=Array.isArray(r)?r.map(e=>new SimpleDOMNode("value",e)):[new SimpleDOMNode("#text",r)]:warn(`Node not found for path: ${t}`)}const r=[];a.documentElement.dump(r);return r.join("")}(r.fetchIfRef(t).getString(),a)}const i=new StringStream(e);i.dict=new Dict(r);i.dict.setIfName("Type","EmbeddedFile");a.put(t,{data:i})}function getIndexes(e){const t=[];for(const{ref:a}of e)a.num===t.at(-2)+t.at(-1)?t[t.length-1]+=1:t.push(a.num,1);return t}function computeIDs(e,t,a){if(Array.isArray(t.fileIds)&&t.fileIds.length>0){const r=function computeMD5(e,t){const a=Math.floor(Date.now()/1e3),r=t.filename||"",i=[a.toString(),r,e.toString(),...t.infoMap.values()],n=Math.sumPrecise(i.map(e=>e.length)),s=new Uint8Array(n);let o=0;for(const e of i)o=writeString(e,o,s);return bytesToString(calculateMD5(s,0,s.length))}(e,t);a.set("ID",[t.fileIds[0],r])}}async function incrementalUpdate({originalData:e,xrefInfo:t,changes:a,xref:r=null,hasXfa:i=!1,xfaDatasetsRef:n=null,hasXfaDatasetsEntry:s=!1,needAppearances:o,acroFormRef:c=null,acroForm:l=null,xfaData:h=null,useXrefStream:u=!1}){await async function updateAcroform({xref:e,acroForm:t,acroFormRef:a,hasXfa:r,hasXfaDatasetsEntry:i,xfaDatasetsRef:n,needAppearances:s,changes:o}){!r||i||n||warn("XFA - Cannot save it");if(!s&&(!r||!n||i))return;const c=t.clone();if(r&&!i){const e=t.get("XFA").slice();e.splice(2,0,"datasets");e.splice(3,0,n);c.set("XFA",e)}s&&c.set("NeedAppearances",!0);o.put(a,{data:c})}({xref:r,acroForm:l,acroFormRef:c,hasXfa:i,hasXfaDatasetsEntry:s,xfaDatasetsRef:n,needAppearances:o,changes:a});i&&updateXFA({xfaData:h,xfaDatasetsRef:n,changes:a,xref:r});const d=function getTrailerDict(e,t,a){const r=new Dict(null);r.set("Prev",e.startXRef);const i=e.newRef;if(a){t.put(i,{data:""});r.set("Size",i.num+1);r.setIfName("Type","XRef")}else r.set("Size",i.num);null!==e.rootRef&&r.set("Root",e.rootRef);null!==e.infoRef&&r.set("Info",e.infoRef);null!==e.encryptRef&&r.set("Encrypt",e.encryptRef);return r}(t,a,u),f=[],g=await async function writeChanges(e,t,a=[]){const r=[];for(const[i,{data:n}]of e.items())if(null!==n&&"string"!=typeof n){await writeObject(i,n,a,t);r.push({ref:i,data:a.join("")});a.length=0}else r.push({ref:i,data:n});return r.sort((e,t)=>e.ref.num-t.ref.num)}(a,r,f);let p=e.length;const m=e.at(-1);if(10!==m&&13!==m){f.push("\n");p+=1}for(const{data:e}of g)null!==e&&f.push(e);await(u?async function getXRefStreamTable(e,t,a,r,i){const n=[];let s=0,o=0;for(const{ref:e,data:r}of a){let a;s=Math.max(s,t);if(null!==r){a=Math.min(e.gen,65535);n.push([1,t,a]);t+=r.length}else{a=Math.min(e.gen+1,65535);n.push([0,0,a])}o=Math.max(o,a)}r.set("Index",getIndexes(a));const c=[1,getSizeInBytes(s),getSizeInBytes(o)];r.set("W",c);computeIDs(t,e,r);const l=Math.sumPrecise(c),h=new Uint8Array(l*n.length),u=new Stream(h);u.dict=r;let d=0;for(const[e,t,a]of n){d=writeInt(e,c[0],d,h);d=writeInt(t,c[1],d,h);d=writeInt(a,c[2],d,h)}await writeObject(e.newRef,u,i,{});i.push("startxref\n",t.toString(),"\n%%EOF\n")}(t,p,g,d,f):async function getXRefTable(e,t,a,r,i){i.push("xref\n");const n=getIndexes(a);let s=0;for(const{ref:e,data:r}of a){if(e.num===n[s]){i.push(`${n[s]} ${n[s+1]}\n`);s+=2}if(null!==r){i.push(`${t.toString().padStart(10,"0")} ${Math.min(e.gen,65535).toString().padStart(5,"0")} n\r\n`);t+=r.length}else i.push(`0000000000 ${Math.min(e.gen+1,65535).toString().padStart(5,"0")} f\r\n`)}computeIDs(t,e,r);i.push("trailer\n");await writeDict(r,i);i.push("\nstartxref\n",t.toString(),"\n%%EOF\n")}(t,p,g,d,f));const b=e.length+Math.sumPrecise(f.map(e=>e.length)),y=new Uint8Array(b);y.set(e);let w=e.length;for(const e of f)w=writeString(e,w,y);return y}class PDFWorkerStream{constructor(e){this._msgHandler=e;this._contentLength=null;this._fullRequestReader=null;this._rangeRequestReaders=[]}getFullReader(){assert(!this._fullRequestReader,"PDFWorkerStream.getFullReader can only be called once.");this._fullRequestReader=new PDFWorkerStreamReader(this._msgHandler);return this._fullRequestReader}getRangeReader(e,t){const a=new PDFWorkerStreamRangeReader(e,t,this._msgHandler);this._rangeRequestReaders.push(a);return a}cancelAllRequests(e){this._fullRequestReader?.cancel(e);for(const t of this._rangeRequestReaders.slice(0))t.cancel(e)}}class PDFWorkerStreamReader{constructor(e){this._msgHandler=e;this.onProgress=null;this._contentLength=null;this._isRangeSupported=!1;this._isStreamingSupported=!1;const t=this._msgHandler.sendWithStream("GetReader");this._reader=t.getReader();this._headersReady=this._msgHandler.sendWithPromise("ReaderHeadersReady").then(e=>{this._isStreamingSupported=e.isStreamingSupported;this._isRangeSupported=e.isRangeSupported;this._contentLength=e.contentLength})}get headersReady(){return this._headersReady}get contentLength(){return this._contentLength}get isStreamingSupported(){return this._isStreamingSupported}get isRangeSupported(){return this._isRangeSupported}async read(){const{value:e,done:t}=await this._reader.read();return t?{value:void 0,done:!0}:{value:e.buffer,done:!1}}cancel(e){this._reader.cancel(e)}}class PDFWorkerStreamRangeReader{constructor(e,t,a){this._msgHandler=a;this.onProgress=null;const r=this._msgHandler.sendWithStream("GetRangeReader",{begin:e,end:t});this._reader=r.getReader()}get isStreamingSupported(){return!1}async read(){const{value:e,done:t}=await this._reader.read();return t?{value:void 0,done:!0}:{value:e.buffer,done:!1}}cancel(e){this._reader.cancel(e)}}class WorkerTask{constructor(e){this.name=e;this.terminated=!1;this._capability=Promise.withResolvers()}get finished(){return this._capability.promise}finish(){this._capability.resolve()}terminate(){this.terminated=!0}ensureNotTerminated(){if(this.terminated)throw new Error("Worker task was terminated")}}class WorkerMessageHandler{static{"undefined"==typeof window&&!e&&"undefined"!=typeof self&&"function"==typeof self.postMessage&&"onmessage"in self&&this.initializeFromPort(self)}static setup(e,t){let a=!1;e.on("test",t=>{if(!a){a=!0;e.send("test",t instanceof Uint8Array)}});e.on("configure",e=>{!function setVerbosityLevel(e){Number.isInteger(e)&&(Kt=e)}(e.verbosity)});e.on("GetDocRequest",e=>this.createDocumentHandler(e,t))}static createDocumentHandler(e,t){let a,r=!1,i=null;const n=new Set,s=getVerbosityLevel(),{docId:o,apiVersion:c}=e,l="5.4.296";if(c!==l)throw new Error(`The API version "${c}" does not match the Worker version "${l}".`);const buildMsg=(e,t)=>`The \`${e}.prototype\` contains unexpected enumerable property "${t}", thus breaking e.g. \`for...in\` iteration of ${e}s.`;for(const e in{})throw new Error(buildMsg("Object",e));for(const e in[])throw new Error(buildMsg("Array",e));const h=o+"_worker";let u=new MessageHandler(h,o,t);function ensureNotTerminated(){if(r)throw new Error("Worker was terminated")}function startWorkerTask(e){n.add(e)}function finishWorkerTask(e){e.finish();n.delete(e)}async function loadDocument(e){await a.ensureDoc("checkHeader");await a.ensureDoc("parseStartXRef");await a.ensureDoc("parse",[e]);await a.ensureDoc("checkFirstPage",[e]);await a.ensureDoc("checkLastPage",[e]);const t=await a.ensureDoc("isPureXfa");if(t){const e=new WorkerTask("loadXfaResources");startWorkerTask(e);await a.ensureDoc("loadXfaResources",[u,e]);finishWorkerTask(e)}const[r,i]=await Promise.all([a.ensureDoc("numPages"),a.ensureDoc("fingerprints")]);return{numPages:r,fingerprints:i,htmlForXfa:t?await a.ensureDoc("htmlForXfa"):null}}function setupDoc(e){function onSuccess(e){ensureNotTerminated();u.send("GetDoc",{pdfInfo:e})}function onFailure(e){ensureNotTerminated();if(e instanceof PasswordException){const t=new WorkerTask(`PasswordException: response ${e.code}`);startWorkerTask(t);u.sendWithPromise("PasswordRequest",e).then(function({password:e}){finishWorkerTask(t);a.updatePassword(e);pdfManagerReady()}).catch(function(){finishWorkerTask(t);u.send("DocException",e)})}else u.send("DocException",wrapReason(e))}function pdfManagerReady(){ensureNotTerminated();loadDocument(!1).then(onSuccess,function(e){ensureNotTerminated();e instanceof XRefParseException?a.requestLoadedStream().then(function(){ensureNotTerminated();loadDocument(!0).then(onSuccess,onFailure)}):onFailure(e)})}ensureNotTerminated();(async function getPdfManager({data:e,password:t,disableAutoFetch:a,rangeChunkSize:r,length:n,docBaseUrl:s,enableXfa:c,evaluatorOptions:l}){const h={source:null,disableAutoFetch:a,docBaseUrl:s,docId:o,enableXfa:c,evaluatorOptions:l,handler:u,length:n,password:t,rangeChunkSize:r};if(e){h.source=e;return new LocalPdfManager(h)}const d=new PDFWorkerStream(u),f=d.getFullReader(),g=Promise.withResolvers();let p,m=[],b=0;f.headersReady.then(function(){if(f.isRangeSupported){h.source=d;h.length=f.contentLength;h.disableAutoFetch||=f.isStreamingSupported;p=new NetworkPdfManager(h);for(const e of m)p.sendProgressiveData(e);m=[];g.resolve(p);i=null}}).catch(function(e){g.reject(e);i=null});new Promise(function(e,t){const readChunk=function({value:e,done:a}){try{ensureNotTerminated();if(a){if(!p){const e=arrayBuffersToBytes(m);m=[];n&&e.length!==n&&warn("reported HTTP length is different from actual");h.source=e;p=new LocalPdfManager(h);g.resolve(p)}i=null;return}b+=e.byteLength;f.isStreamingSupported||u.send("DocProgress",{loaded:b,total:Math.max(b,f.contentLength||0)});p?p.sendProgressiveData(e):m.push(e);f.read().then(readChunk,t)}catch(e){t(e)}};f.read().then(readChunk,t)}).catch(function(e){g.reject(e);i=null});i=e=>{d.cancelAllRequests(e)};return g.promise})(e).then(function(e){if(r){e.terminate(new AbortException("Worker was terminated."));throw new Error("Worker was terminated")}a=e;a.requestLoadedStream(!0).then(e=>{u.send("DataLoaded",{length:e.bytes.byteLength})})}).then(pdfManagerReady,onFailure)}u.on("GetPage",function(e){return a.getPage(e.pageIndex).then(function(e){return Promise.all([a.ensure(e,"rotate"),a.ensure(e,"ref"),a.ensure(e,"userUnit"),a.ensure(e,"view")]).then(function([e,t,a,r]){return{rotate:e,ref:t,refStr:t?.toString()??null,userUnit:a,view:r}})})});u.on("GetPageIndex",function(e){const t=Ref.get(e.num,e.gen);return a.ensureCatalog("getPageIndex",[t])});u.on("GetDestinations",function(e){return a.ensureCatalog("destinations")});u.on("GetDestination",function(e){return a.ensureCatalog("getDestination",[e.id])});u.on("GetPageLabels",function(e){return a.ensureCatalog("pageLabels")});u.on("GetPageLayout",function(e){return a.ensureCatalog("pageLayout")});u.on("GetPageMode",function(e){return a.ensureCatalog("pageMode")});u.on("GetViewerPreferences",function(e){return a.ensureCatalog("viewerPreferences")});u.on("GetOpenAction",function(e){return a.ensureCatalog("openAction")});u.on("GetAttachments",function(e){return a.ensureCatalog("attachments")});u.on("GetDocJSActions",function(e){return a.ensureCatalog("jsActions")});u.on("GetPageJSActions",function({pageIndex:e}){return a.getPage(e).then(e=>a.ensure(e,"jsActions"))});u.on("GetAnnotationsByType",async function({types:e,pageIndexesToSkip:t}){const[r,i]=await Promise.all([a.ensureDoc("numPages"),a.ensureDoc("annotationGlobals")]);if(!i)return null;const n=[],s=[];let o=null;try{for(let c=0,l=r;ct&&t.collectAnnotationsByType(u,o,e,s,i)||[]))}await Promise.all(n);return(await Promise.all(s)).filter(e=>!!e)}finally{o&&finishWorkerTask(o)}});u.on("GetOutline",function(e){return a.ensureCatalog("documentOutline")});u.on("GetOptionalContentConfig",function(e){return a.ensureCatalog("optionalContentConfig")});u.on("GetPermissions",function(e){return a.ensureCatalog("permissions")});u.on("GetMetadata",function(e){return Promise.all([a.ensureDoc("documentInfo"),a.ensureCatalog("metadata")])});u.on("GetMarkInfo",function(e){return a.ensureCatalog("markInfo")});u.on("GetData",function(e){return a.requestLoadedStream().then(e=>e.bytes)});u.on("GetAnnotations",function({pageIndex:e,intent:t}){return a.getPage(e).then(function(a){const r=new WorkerTask(`GetAnnotations: page ${e}`);startWorkerTask(r);return a.getAnnotationsData(u,r,t).then(e=>{finishWorkerTask(r);return e},e=>{finishWorkerTask(r);throw e})})});u.on("GetFieldObjects",function(e){return a.ensureDoc("fieldObjects").then(e=>e?.allFields||null)});u.on("HasJSActions",function(e){return a.ensureDoc("hasJSActions")});u.on("GetCalculationOrderIds",function(e){return a.ensureDoc("calculationOrderIds")});u.on("SaveDocument",async function({isPureXfa:e,numPages:t,annotationStorage:r,filename:i}){const n=[a.requestLoadedStream(),a.ensureCatalog("acroForm"),a.ensureCatalog("acroFormRef"),a.ensureDoc("startXRef"),a.ensureDoc("xref"),a.ensureCatalog("structTreeRoot")],s=new RefSetCache,o=[],c=e?null:getNewAnnotationsMap(r),[l,h,d,f,g,p]=await Promise.all(n),m=g.trailer.getRaw("Root")||null;let b;if(c){p?await p.canUpdateStructTree({pdfManager:a,newAnnotationsByPage:c})&&(b=p):await StructTreeRoot.canCreateStructureTree({catalogRef:m,pdfManager:a,newAnnotationsByPage:c})&&(b=null);const e=AnnotationFactory.generateImages(r.values(),g,a.evaluatorOptions.isOffscreenCanvasSupported),t=void 0===b?o:[];for(const[r,i]of c)t.push(a.getPage(r).then(t=>{const a=new WorkerTask(`Save (editor): page ${r}`);startWorkerTask(a);return t.saveNewAnnotations(u,a,i,e,s).finally(function(){finishWorkerTask(a)})}));null===b?o.push(Promise.all(t).then(async()=>{await StructTreeRoot.createStructureTree({newAnnotationsByPage:c,xref:g,catalogRef:m,pdfManager:a,changes:s})})):b&&o.push(Promise.all(t).then(async()=>{await b.updateStructureTree({newAnnotationsByPage:c,pdfManager:a,changes:s})}))}if(e)o.push(a.ensureDoc("serializeXfaData",[r]));else for(let e=0;ee.needAppearances),S=h instanceof Dict&&h.get("XFA")||null;let k=null,C=!1;if(Array.isArray(S)){for(let e=0,t=S.length;e{g.resetNewTemporaryRef()})});u.on("GetOperatorList",function(e,t){const r=e.pageIndex;a.getPage(r).then(function(a){const i=new WorkerTask(`GetOperatorList: page ${r}`);startWorkerTask(i);const n=s>=ne?Date.now():0;a.getOperatorList({handler:u,sink:t,task:i,intent:e.intent,cacheKey:e.cacheKey,annotationStorage:e.annotationStorage,modifiedIds:e.modifiedIds}).then(function(e){finishWorkerTask(i);n&&info(`page=${r+1} - getOperatorList: time=${Date.now()-n}ms, len=${e.length}`);t.close()},function(e){finishWorkerTask(i);i.terminated||t.error(e)})})});u.on("GetTextContent",function(e,t){const{pageIndex:r,includeMarkedContent:i,disableNormalization:n}=e;a.getPage(r).then(function(e){const a=new WorkerTask("GetTextContent: page "+r);startWorkerTask(a);const o=s>=ne?Date.now():0;e.extractTextContent({handler:u,task:a,sink:t,includeMarkedContent:i,disableNormalization:n}).then(function(){finishWorkerTask(a);o&&info(`page=${r+1} - getTextContent: time=`+(Date.now()-o)+"ms");t.close()},function(e){finishWorkerTask(a);a.terminated||t.error(e)})})});u.on("GetStructTree",function(e){return a.getPage(e.pageIndex).then(e=>a.ensure(e,"getStructTree"))});u.on("FontFallback",function(e){return a.fontFallback(e.id,u)});u.on("Cleanup",function(e){return a.cleanup(!0)});u.on("Terminate",function(e){r=!0;const t=[];if(a){a.terminate(new AbortException("Worker was terminated."));const e=a.cleanup();t.push(e);a=null}else clearGlobalCaches();i?.(new AbortException("Worker was terminated."));for(const e of n){t.push(e.finished);e.terminate()}return Promise.all(t).then(function(){u.destroy();u=null})});u.on("Ready",function(t){setupDoc(e);e=null});return h}static initializeFromPort(e){const t=new MessageHandler("worker","main",e);this.setup(t,e);t.send("ready",null)}}globalThis.pdfjsWorker={WorkerMessageHandler};export{WorkerMessageHandler}; \ No newline at end of file diff --git a/src/app/globals.css b/src/app/globals.css index 76e2d9c..b0f44c4 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -3,7 +3,6 @@ @tailwind components; @tailwind utilities; - /* Styles personnalisés pour les couleurs de votre thème */ :root { --primary-bg: #000814; diff --git a/src/components/CVSection.tsx b/src/components/CVSection.tsx index e1f564e..ad2b9f1 100644 --- a/src/components/CVSection.tsx +++ b/src/components/CVSection.tsx @@ -1,17 +1,141 @@ -import Image from "next/image"; +'use client'; + +import { useState, useEffect } from 'react'; +import dynamic from 'next/dynamic'; + +// Import react-pdf dynamically with no SSR to avoid server-side rendering issues +const Document = dynamic( + () => import('react-pdf').then((mod) => mod.Document), + { ssr: false } +); + +const Page = dynamic( + () => import('react-pdf').then((mod) => mod.Page), + { ssr: false } +); export default function CVSection() { + const [numPages, setNumPages] = useState(0); + const [pageNumber, setPageNumber] = useState(1); + const [scale, setScale] = useState(1.0); + const [isClient, setIsClient] = useState(false); + + // Configure PDF.js worker only on the client side + useEffect(() => { + setIsClient(true); + + import('react-pdf').then((module) => { + const { pdfjs } = module; + pdfjs.GlobalWorkerOptions.workerSrc = '/pdf.worker.min.mjs'; + }); + }, []); + + function onDocumentLoadSuccess({ numPages }: { numPages: number }): void { + setNumPages(numPages); + } + + const zoomIn = () => setScale(prev => Math.min(prev + 0.2, 2.0)); + const zoomOut = () => setScale(prev => Math.max(prev - 0.2, 0.5)); + const resetZoom = () => setScale(1.0); + + // Don't render the PDF until we're on the client + if (!isClient) { + return ( +

      +

      Mon CV complet

      +
      +
      Chargement...
      +
      +
      + ); + } + return ( -
      +

      Mon CV complet

      -
      - CV Damien Drozd + + {/* PDF Controls */} + + + {/* PDF Viewer */} +
      + + Chargement du CV... +
      + } + error={ +
      + Erreur lors du chargement du PDF. Veuillez réessayer. +
      + } + > + +
      ); From a4446e701bba0c238fb2d4306738a111a1462248 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 11 Oct 2025 12:32:01 +0000 Subject: [PATCH 3/3] Fix initial render state - show 'Chargement...' before PDF loads Co-authored-by: DamienDrozd <79458391+DamienDrozd@users.noreply.github.com> --- src/components/CVSection.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/components/CVSection.tsx b/src/components/CVSection.tsx index ad2b9f1..f7448fc 100644 --- a/src/components/CVSection.tsx +++ b/src/components/CVSection.tsx @@ -60,17 +60,17 @@ export default function CVSection() {
      - Page {pageNumber} sur {numPages} + {numPages > 0 ? `Page ${pageNumber} sur ${numPages}` : 'Chargement...'}