From 19b95930dda9dbf9a9f34b6c92f40da82491fde3 Mon Sep 17 00:00:00 2001 From: testikun <320479488+testikun@users.noreply.github.com> Date: Mon, 28 Sep 2026 19:25:01 +0900 Subject: [PATCH 1/2] feat(web): replace generated files with an inline workspace explorer --- README.md | 6 +- THIRD_PARTY_NOTICES.md | 12 + bun.lock | 535 +- docs/research/README.md | 2 + .../WEB_WORKSPACE_FILES_2026-09-28.md | 65 + package.json | 15 +- tests/web/app-render.spec.ts | 295 +- tests/web/artifact-evidence.e2e.ts | 12 +- tests/web/evidence-view.spec.ts | 11 +- tests/web/generated-files.test.ts | 100 - .../web/interactive-terminal-recovery.spec.ts | 3 +- tests/web/interactive-terminal-ui.spec.ts | 3 +- tests/web/openpi-web.e2e.ts | 4 +- tests/web/playwright.config.ts | 1 + tests/web/review-panel.spec.ts | 6 +- tests/web/side-conversation-actions.spec.ts | 3 +- .../web/side-conversation-navigation.spec.ts | 3 +- tests/web/web-host.test.ts | 2 +- tests/web/workbar-performance.spec.ts | 3 +- tests/web/workspace-files.e2e.ts | 342 ++ tests/web/workspace-files.spec.ts | 261 + tests/web/workspace-files.test.ts | 164 + web/THIRD_PARTY_LICENSES.txt | 4543 +++++++++++++++++ web/dist/app-MermaidPreview.js | 44 + web/dist/app-abnfDiagram-O67JEVCF.js | 1 + web/dist/app-arc.js | 1 + web/dist/app-architecture-7GRP2DOG.js | 1 + web/dist/app-architectureDiagram-NJMV4G6O.js | 36 + web/dist/app-array.js | 1 + web/dist/app-blockDiagram-BEXU5L5S.js | 140 + web/dist/app-c4Diagram-YGBWAQC7.js | 38 + web/dist/app-channel.js | 1 + web/dist/app-chunk-2Q5K7J3B.js | 1 + web/dist/app-chunk-3FUC2YCW.js | 2 + web/dist/app-chunk-5DYCD2WN.js | 1 + web/dist/app-chunk-5VM5RSS4.js | 15 + web/dist/app-chunk-742MDFTN.js | 1 + web/dist/app-chunk-7INBJB4K.js | 62 + web/dist/app-chunk-7M6MHVWA.js | 213 + web/dist/app-chunk-7PRAP22T.js | 1 + web/dist/app-chunk-DUW6YSOI.js | 1 + web/dist/app-chunk-FOHPRMQF.js | 161 + web/dist/app-chunk-GTNCS2PH.js | 88 + web/dist/app-chunk-GWA4HPMP.js | 1 + web/dist/app-chunk-J5ZVWO5B.js | 1 + web/dist/app-chunk-JWPE2WC7.js | 1 + web/dist/app-chunk-MBY4JIJT.js | 72 + web/dist/app-chunk-NETBCI7D.js | 1 + web/dist/app-chunk-O7XYJQB3.js | 126 + web/dist/app-chunk-UA2S7LBM.js | 1 + web/dist/app-chunk-WEXAMYUT.js | 1 + web/dist/app-chunk-XXDRQBXY.js | 1 + web/dist/app-chunk-Y2CYZVJY.js | 1 + web/dist/app-chunk-Z7XXMR3K.js | 10 + web/dist/app-chunk-ZIGJFQKS.js | 2 + web/dist/app-classDiagram-v2-NBCMYWYE.js | 217 + web/dist/app-common.js | 5 + web/dist/app-cose-bilkent-JH36ORCC.js | 1 + web/dist/app-cynefin-OW5HDTMX.js | 1 + web/dist/app-cynefinDiagram-VND7K2PF.js | 62 + web/dist/app-cytoscape.esm.js | 321 ++ web/dist/app-dagre-6A5THRUB.js | 4 + web/dist/app-defaultLocale.js | 1 + web/dist/app-diagram-22UHCM2B.js | 200 + web/dist/app-diagram-3UASUU5V.js | 24 + web/dist/app-diagram-ATOU4E4O.js | 3 + web/dist/app-diagram-CDSNMT55.js | 30 + web/dist/app-diagram-MLGK6HIB.js | 24 + web/dist/app-diagram-MPIPVDR6.js | 41 + web/dist/app-dist.js | 1 + web/dist/app-ebnfDiagram-ZINNZB2B.js | 1 + web/dist/app-elk-276RUBZZ.js | 27 + web/dist/app-erDiagram-OPXOYQCR.js | 99 + web/dist/app-eventmodeling-NTZA5JFV.js | 1 + web/dist/app-exceljs.min-YQS1hkX3.js | 71 + web/dist/app-flowDiagram-KWPJA3E3.js | 1 + web/dist/app-ganttDiagram-FUAMR5RP.js | 292 ++ web/dist/app-gitGraph-4MIJSDKK.js | 1 + web/dist/app-gitGraphDiagram-X574FWY7.js | 106 + web/dist/app-graphlib.js | 1 + web/dist/app-info-A6RAGUB7.js | 1 + web/dist/app-infoDiagram-VRGFBTTK.js | 2 + web/dist/app-init.js | 1 + web/dist/app-ishikawaDiagram-OU5B5YK6.js | 70 + web/dist/app-journeyDiagram-ZHPQQLJL.js | 139 + web/dist/app-jsx-runtime.js | 1 + web/dist/app-kanban-definition-PNTS6WVX.js | 89 + web/dist/app-katex.js | 257 + web/dist/app-lib-BEFVOvM0.js | 56 + web/dist/app-line.js | 1 + web/dist/app-linear.js | 1 + web/dist/app-mermaid-parser.core.js | 7 + web/dist/app-mindmap-definition-NLK3R4M7.js | 96 + web/dist/app-office-worker-Cl1TeD02.js | 4 + web/dist/app-ordinal.js | 1 + web/dist/app-packet-AYTQ26CC.js | 1 + web/dist/app-path.js | 1 + web/dist/app-pdf.js | 54 + web/dist/app-pdf.worker.min.js | 1 + web/dist/app-pegDiagram-GJSIUBJH.js | 1 + web/dist/app-pie-WAS4IAKB.js | 1 + web/dist/app-pieDiagram-5QR66LMP.js | 39 + web/dist/app-quadrantDiagram-O4NWA36T.js | 7 + web/dist/app-radar-RG4KPBEZ.js | 1 + web/dist/app-railroad-74A4TZTK.js | 1 + web/dist/app-railroad-abnf-HS5TGJTU.js | 1 + web/dist/app-railroad-ebnf-LZEXJU2U.js | 1 + web/dist/app-railroad-peg-WCYAUIDC.js | 1 + web/dist/app-railroadDiagram-XR7U4H2S.js | 1 + web/dist/app-requirementDiagram-PLB6GJNP.js | 84 + web/dist/app-rolldown-runtime.js | 1 + web/dist/app-rough.esm.js | 1 + web/dist/app-sankeyDiagram-IPEJSGJF.js | 40 + web/dist/app-sequenceDiagram-PO4LG4MO.js | 169 + web/dist/app-sizeCapture-INFHLROL.js | 1 + web/dist/app-src.js | 1 + web/dist/app-stateDiagram-v2-GCMORJYK.js | 291 ++ web/dist/app-swimlanes-2SLR337P.js | 1 + web/dist/app-swimlanesDiagram-TC7HE7FX.js | 8 + web/dist/app-timeline-definition-EJHVYXUP.js | 120 + web/dist/app-treeView-Q6P3EWNA.js | 1 + web/dist/app-treemap-WGGIJYW6.js | 1 + web/dist/app-usecaseDiagram-POWQR4AR.js | 328 ++ web/dist/app-vennDiagram-UO4OBE2U.js | 34 + web/dist/app-wardley-WFR3VGLG.js | 1 + web/dist/app-wardleyDiagram-VNRHLVJA.js | 78 + web/dist/app-xychartDiagram-PMCCYNJV.js | 7 + web/dist/app.js | 136 +- web/dist/index.html | 2 + web/dist/pdf.worker.min.mjs | 29 + web/dist/styles.css | 3 +- web/host/artifacts.ts | 123 +- web/host/web-host.ts | 25 +- web/protocol/artifacts.ts | 14 + web/ui/src/app/App.tsx | 61 +- web/ui/src/components/Markdown.tsx | 51 +- web/ui/src/features/artifacts/Artifacts.tsx | 176 +- web/ui/src/features/artifacts/context.ts | 1 + web/ui/src/features/files/DocumentPreview.tsx | 364 ++ web/ui/src/features/files/FileContent.tsx | 140 + web/ui/src/features/files/FilesPanel.tsx | 553 ++ web/ui/src/features/files/InlineFileImage.tsx | 67 + web/ui/src/features/files/MermaidPreview.tsx | 183 + web/ui/src/features/files/files.css | 94 + web/ui/src/features/files/office-worker.ts | 192 + web/ui/src/features/files/preview-data.ts | 55 + web/ui/src/features/workbar/WorkbarPanel.tsx | 98 +- .../src/features/workbar/generated-files.ts | 61 - web/ui/src/features/workbar/workbar.css | 20 - web/ui/src/i18n.ts | 102 +- web/ui/src/protocol/client.ts | 31 +- web/vite.config.mjs | 4 + 152 files changed, 12759 insertions(+), 783 deletions(-) create mode 100644 docs/research/WEB_WORKSPACE_FILES_2026-09-28.md delete mode 100644 tests/web/generated-files.test.ts create mode 100644 tests/web/workspace-files.e2e.ts create mode 100644 tests/web/workspace-files.spec.ts create mode 100644 tests/web/workspace-files.test.ts create mode 100644 web/THIRD_PARTY_LICENSES.txt create mode 100644 web/dist/app-MermaidPreview.js create mode 100644 web/dist/app-abnfDiagram-O67JEVCF.js create mode 100644 web/dist/app-arc.js create mode 100644 web/dist/app-architecture-7GRP2DOG.js create mode 100644 web/dist/app-architectureDiagram-NJMV4G6O.js create mode 100644 web/dist/app-array.js create mode 100644 web/dist/app-blockDiagram-BEXU5L5S.js create mode 100644 web/dist/app-c4Diagram-YGBWAQC7.js create mode 100644 web/dist/app-channel.js create mode 100644 web/dist/app-chunk-2Q5K7J3B.js create mode 100644 web/dist/app-chunk-3FUC2YCW.js create mode 100644 web/dist/app-chunk-5DYCD2WN.js create mode 100644 web/dist/app-chunk-5VM5RSS4.js create mode 100644 web/dist/app-chunk-742MDFTN.js create mode 100644 web/dist/app-chunk-7INBJB4K.js create mode 100644 web/dist/app-chunk-7M6MHVWA.js create mode 100644 web/dist/app-chunk-7PRAP22T.js create mode 100644 web/dist/app-chunk-DUW6YSOI.js create mode 100644 web/dist/app-chunk-FOHPRMQF.js create mode 100644 web/dist/app-chunk-GTNCS2PH.js create mode 100644 web/dist/app-chunk-GWA4HPMP.js create mode 100644 web/dist/app-chunk-J5ZVWO5B.js create mode 100644 web/dist/app-chunk-JWPE2WC7.js create mode 100644 web/dist/app-chunk-MBY4JIJT.js create mode 100644 web/dist/app-chunk-NETBCI7D.js create mode 100644 web/dist/app-chunk-O7XYJQB3.js create mode 100644 web/dist/app-chunk-UA2S7LBM.js create mode 100644 web/dist/app-chunk-WEXAMYUT.js create mode 100644 web/dist/app-chunk-XXDRQBXY.js create mode 100644 web/dist/app-chunk-Y2CYZVJY.js create mode 100644 web/dist/app-chunk-Z7XXMR3K.js create mode 100644 web/dist/app-chunk-ZIGJFQKS.js create mode 100644 web/dist/app-classDiagram-v2-NBCMYWYE.js create mode 100644 web/dist/app-common.js create mode 100644 web/dist/app-cose-bilkent-JH36ORCC.js create mode 100644 web/dist/app-cynefin-OW5HDTMX.js create mode 100644 web/dist/app-cynefinDiagram-VND7K2PF.js create mode 100644 web/dist/app-cytoscape.esm.js create mode 100644 web/dist/app-dagre-6A5THRUB.js create mode 100644 web/dist/app-defaultLocale.js create mode 100644 web/dist/app-diagram-22UHCM2B.js create mode 100644 web/dist/app-diagram-3UASUU5V.js create mode 100644 web/dist/app-diagram-ATOU4E4O.js create mode 100644 web/dist/app-diagram-CDSNMT55.js create mode 100644 web/dist/app-diagram-MLGK6HIB.js create mode 100644 web/dist/app-diagram-MPIPVDR6.js create mode 100644 web/dist/app-dist.js create mode 100644 web/dist/app-ebnfDiagram-ZINNZB2B.js create mode 100644 web/dist/app-elk-276RUBZZ.js create mode 100644 web/dist/app-erDiagram-OPXOYQCR.js create mode 100644 web/dist/app-eventmodeling-NTZA5JFV.js create mode 100644 web/dist/app-exceljs.min-YQS1hkX3.js create mode 100644 web/dist/app-flowDiagram-KWPJA3E3.js create mode 100644 web/dist/app-ganttDiagram-FUAMR5RP.js create mode 100644 web/dist/app-gitGraph-4MIJSDKK.js create mode 100644 web/dist/app-gitGraphDiagram-X574FWY7.js create mode 100644 web/dist/app-graphlib.js create mode 100644 web/dist/app-info-A6RAGUB7.js create mode 100644 web/dist/app-infoDiagram-VRGFBTTK.js create mode 100644 web/dist/app-init.js create mode 100644 web/dist/app-ishikawaDiagram-OU5B5YK6.js create mode 100644 web/dist/app-journeyDiagram-ZHPQQLJL.js create mode 100644 web/dist/app-jsx-runtime.js create mode 100644 web/dist/app-kanban-definition-PNTS6WVX.js create mode 100644 web/dist/app-katex.js create mode 100644 web/dist/app-lib-BEFVOvM0.js create mode 100644 web/dist/app-line.js create mode 100644 web/dist/app-linear.js create mode 100644 web/dist/app-mermaid-parser.core.js create mode 100644 web/dist/app-mindmap-definition-NLK3R4M7.js create mode 100644 web/dist/app-office-worker-Cl1TeD02.js create mode 100644 web/dist/app-ordinal.js create mode 100644 web/dist/app-packet-AYTQ26CC.js create mode 100644 web/dist/app-path.js create mode 100644 web/dist/app-pdf.js create mode 100644 web/dist/app-pdf.worker.min.js create mode 100644 web/dist/app-pegDiagram-GJSIUBJH.js create mode 100644 web/dist/app-pie-WAS4IAKB.js create mode 100644 web/dist/app-pieDiagram-5QR66LMP.js create mode 100644 web/dist/app-quadrantDiagram-O4NWA36T.js create mode 100644 web/dist/app-radar-RG4KPBEZ.js create mode 100644 web/dist/app-railroad-74A4TZTK.js create mode 100644 web/dist/app-railroad-abnf-HS5TGJTU.js create mode 100644 web/dist/app-railroad-ebnf-LZEXJU2U.js create mode 100644 web/dist/app-railroad-peg-WCYAUIDC.js create mode 100644 web/dist/app-railroadDiagram-XR7U4H2S.js create mode 100644 web/dist/app-requirementDiagram-PLB6GJNP.js create mode 100644 web/dist/app-rolldown-runtime.js create mode 100644 web/dist/app-rough.esm.js create mode 100644 web/dist/app-sankeyDiagram-IPEJSGJF.js create mode 100644 web/dist/app-sequenceDiagram-PO4LG4MO.js create mode 100644 web/dist/app-sizeCapture-INFHLROL.js create mode 100644 web/dist/app-src.js create mode 100644 web/dist/app-stateDiagram-v2-GCMORJYK.js create mode 100644 web/dist/app-swimlanes-2SLR337P.js create mode 100644 web/dist/app-swimlanesDiagram-TC7HE7FX.js create mode 100644 web/dist/app-timeline-definition-EJHVYXUP.js create mode 100644 web/dist/app-treeView-Q6P3EWNA.js create mode 100644 web/dist/app-treemap-WGGIJYW6.js create mode 100644 web/dist/app-usecaseDiagram-POWQR4AR.js create mode 100644 web/dist/app-vennDiagram-UO4OBE2U.js create mode 100644 web/dist/app-wardley-WFR3VGLG.js create mode 100644 web/dist/app-wardleyDiagram-VNRHLVJA.js create mode 100644 web/dist/app-xychartDiagram-PMCCYNJV.js create mode 100644 web/dist/pdf.worker.min.mjs create mode 100644 web/ui/src/features/files/DocumentPreview.tsx create mode 100644 web/ui/src/features/files/FileContent.tsx create mode 100644 web/ui/src/features/files/FilesPanel.tsx create mode 100644 web/ui/src/features/files/InlineFileImage.tsx create mode 100644 web/ui/src/features/files/MermaidPreview.tsx create mode 100644 web/ui/src/features/files/files.css create mode 100644 web/ui/src/features/files/office-worker.ts create mode 100644 web/ui/src/features/files/preview-data.ts delete mode 100644 web/ui/src/features/workbar/generated-files.ts diff --git a/README.md b/README.md index fa433750..55852166 100644 --- a/README.md +++ b/README.md @@ -596,11 +596,13 @@ Web 设置页可以添加或编辑自定义模型、保存服务商 API Key。 输入 `/` 可查看原生发现的命令及不可用原因。`/openpi-setup` 使用原生配置回合;无参数的 `/ps`、`/lg`、`/subagents`、`/btw` 打开对应 Web 面板,不发送模型请求。这些面板快捷命令不接收参数或图片,带参时保留输入并提示。`/usage` 使用原生命令,在聊天中显示查询结果。运行中的回合显示“已处理”时间,结束后显示“用时”;时间从 Pi 实际开始执行计算,并随原生 Session 保存。没有可靠耗时记录的旧回合不推算补值。 -输入框支持直接粘贴受支持的图片和混合文字,读取期间保留发送等待状态。生成文件中的 PNG、JPEG、GIF、WebP 可在已有文件授权范围内预览(上限 20 MiB);SVG 与 HTML 不作为图片执行。Git、文件和子代理面板隐藏时会减少自动读取,重新打开时恢复更新。 +输入框支持直接粘贴受支持的图片和混合文字,读取期间保留发送等待状态。「文件」直接浏览工作区:右侧文件树、左侧原位预览,不为每个文件另开窗口。目录和文件名搜索可点击「加载更多」,长文本可按同一内容版本「继续读取」;展开位置、搜索词和阅读位置在面板内保留。文件树重新打开、窗口重新获得焦点或点击刷新时更新;文本有新版本时先提示,手动刷新后替换内容。 + +文件预览支持 Markdown(含 Mermaid 放大、表格和安全的内嵌 HTML)、代码语法高亮、CSV/TSV、PNG/JPEG/GIF/WebP、SVG/HTML 沙箱、PDF 分页,以及 DOCX 内容、XLSX 工作表、PPTX 文字与图片。Office 是内容预览,不保证与原软件的分页、主题、图表和动画一致;旧版二进制 Office 格式可下载后打开。文件读取和下载上限为 20 MiB,Office 解压、表格单元格与渲染时间另有资源上限。HTML/SVG 不执行脚本或加载外部资源;文件树显示但不跟随符号链接。Git、文件和子代理面板隐藏时会减少自动读取,重新打开时恢复更新。 长会话可向上加载更早的消息,通常按最多 20 个用户回合取页,同时保留 250 条/2 MiB 上限;单个过大的回合仍可分段找回。阅读窗口上限为 1000 条/8 MiB。加载和流式追加保持阅读位置;发送新消息或点击“跳至最新”返回当前尾部。单条超长用户或助手正文可按原生条目 ID 显式加载完整内容,每次最多读取 32,000 个字符;工具输出仍保持有界预览。运行中有草稿时同时提供发送和停止按钮,排队数来自 Pi;已接收不表示已经执行完成。 -变更面板默认展示 Git 未暂存变更,也可切换到暂存、分支或会话基线;输入框不再显示整个工作区的累计变更文件。新 Web 回合在对话中展示该轮期间的文件变化,审阅读取随 Pi Session 保存的有界 diff,不会用当前工作树冒充历史结果。此比较不能区分同一时间其他进程的改动;非 Git 工作区、过大的初始变更或超出记录上限时会标明无法验证或部分结果,旧回合不回填。手动变更面板的列表与逐文件 diff 分开加载,大型未跟踪文件不会阻止读取整个工作区;达到显示限额会标注截断。会话基线仍是有容量限制的附加视图,不能替代 Git。跨 worktree 的原生编辑记录可以在“生成文件”中查看;读取工作区外的文件需点击“只读打开此文件”,仅授权该文件,不放宽整个目录。 +变更面板默认展示 Git 未暂存变更,也可切换到暂存、分支或会话基线;输入框不再显示整个工作区的累计变更文件。新 Web 回合在对话中展示该轮期间的文件变化,审阅读取随 Pi Session 保存的有界 diff,不会用当前工作树冒充历史结果。此比较不能区分同一时间其他进程的改动;非 Git 工作区、过大的初始变更或超出记录上限时会标明无法验证或部分结果,旧回合不回填。手动变更面板的列表与逐文件 diff 分开加载,大型未跟踪文件不会阻止读取整个工作区;达到显示限额会标注截断。会话基线仍是有容量限制的附加视图,不能替代 Git。原生编辑记录保留在对话的工具证据中;读取工作区外的文件需点击“只读打开此文件”,仅授权该文件,不放宽整个目录。 内嵌浏览器采用 React + TypeScript 工具栏和原生 iframe,输入、滚动和选中文字由用户浏览器直接处理,不启动额外 Chromium 或传输视频。支持最多 8 个页内标签页、手动地址历史及重新打开。跨站网页的真实地址和历史无法完整读取;网页弹窗在外部浏览器打开,拒绝嵌入的站点需要外部打开。浏览器标签页随当前会话/工具的关闭而释放,工作台面板暂时隐藏时保留。路线切换与已放弃的视频试验见 [浏览器试用记录](docs/research/WEB_BROWSER_VIDEO_TRIAL_2026-09-28.md)。 在 Plan/Setup 原有工具范围内,模型调用 `ask_user` 时,发起任务的 Web 标签页会显示结构化问题卡片:选择选项、添加补充说明或填写自己的答案,复核后才提交给正在等待的工具调用。关闭卡片不会提交草稿;留空的自定义答案表示要求澄清问题。刷新同一标签可恢复尚未过期的提问(未提交草稿不持久化),其他标签不能代答。提问最多等待 15 分钟,停止运行、切换 Session 或关闭 Host 会取消等待;它不替代原生权限审批,也不意味着任意终端自定义界面已支持 Web。 diff --git a/THIRD_PARTY_NOTICES.md b/THIRD_PARTY_NOTICES.md index 2aeefabd..5dfd3573 100644 --- a/THIRD_PARTY_NOTICES.md +++ b/THIRD_PARTY_NOTICES.md @@ -2,6 +2,18 @@ ## Project origins and acknowledgments +The workspace Files explorer and preview interactions were informed by +[DSH-better-sidebar](https://github.com/omdsh-dev/DSH-better-sidebar), revision +`9b5834f74ad197534c821c35b8357edac1ad3919`. OpenPI uses its own Session-bound +file service and inline workbar layout; no DSH source is embedded. + +File preview bundles additionally include Mermaid, PDF.js, Mammoth, ExcelJS, +fflate, fast-xml-parser, highlight.js, DOMPurify and rehype-raw. Their licenses +and bundled dependency notices are reproduced in +[`web/THIRD_PARTY_LICENSES.txt`](web/THIRD_PARTY_LICENSES.txt), included in the +package alongside the Web assets. JSZip is used under its MIT option; +DOMPurify is used under its Apache-2.0 option. + OpenPI originated from [davis7dotsh/my-pi-setup](https://github.com/davis7dotsh/my-pi-setup) and is maintained as an independent distribution. Thanks to the original author for the starting point. Web workbench contributions include: diff --git a/bun.lock b/bun.lock index 138b40e4..e937c842 100644 --- a/bun.lock +++ b/bun.lock @@ -33,14 +33,23 @@ "@vitejs/plugin-react": "6.1.1", "@xterm/addon-fit": "0.11.0", "@xterm/xterm": "6.0.0", + "dompurify": "^3.4.16", "eventsource-parser": "4.1.0", + "exceljs": "4.4.0", + "fast-xml-parser": "^5.11.1", + "fflate": "^0.8.3", + "highlight.js": "^11.12.0", "i18next": "26.4.1", "jsdom": "30.0.1", "lucide-react": "1.39.0", + "mammoth": "1.13.0", + "mermaid": "12.0.0", + "pdfjs-dist": "6.3.289", "react": "19.2.8", "react-dom": "19.2.8", "react-i18next": "17.0.13", "react-markdown": "10.1.0", + "rehype-raw": "^7.0.0", "rehype-sanitize": "6.0.0", "remark-breaks": "4.0.0", "remark-gfm": "4.0.1", @@ -61,6 +70,8 @@ }, }, "packages": { + "@antfu/install-pkg": ["@antfu/install-pkg@2.1.0", "", { "dependencies": { "package-manager-detector": "^1.8.0", "tinyexec": "^1.3.1" } }, "sha512-sdg9NxU3zR4Mnawfbc/x6GB5Wf17WYud5qOuEuxXjaKpYpMkISSJEjItGebXJ2bQ4DIcly4NYH23mtkGJjvKUw=="], + "@anthropic-ai/sdk": ["@anthropic-ai/sdk@0.123.0", "", { "dependencies": { "json-schema-to-ts": "^3.1.1", "standardwebhooks": "^1.0.0" }, "peerDependencies": { "zod": "^3.25.0 || ^4.0.0" }, "optionalPeers": ["zod"], "bin": { "anthropic-ai-sdk": "bin/cli" } }, "sha512-Y9oX9mPNGZClHQOFqrWRk43Srcu/UHuPq3rfxxOq7JgW0gi+lJA2MAOK4Ul3k/+AUrwRWFJvd0tK3oC0Pw25dw=="], "@asamuzakjp/css-color": ["@asamuzakjp/css-color@6.0.7", "", { "dependencies": { "@csstools/css-calc": "^3.3.0", "@csstools/css-color-parser": "^4.1.10", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0", "lru-cache": "^11.5.2" } }, "sha512-vC/bk1Lz7Tn/EfU9/apOTBk80/8dyGyWMowPoV1tJ52muDGsDqt2HPT2klrFUiY60MQmQv9q8yIht15JnBgDGw=="], @@ -147,8 +158,20 @@ "@biomejs/cli-win32-x64": ["@biomejs/cli-win32-x64@2.5.8", "", { "os": "win32", "cpu": "x64" }, "sha512-I2czzXTY61f3nFJxXoMDq80t7MivxDEnCjE+8sDKoFfcKMaoQdkqhIFQ3KyY0XLzeSpUBYeNAXgD+iOV/BU0VA=="], + "@braintree/sanitize-url": ["@braintree/sanitize-url@7.1.2", "", {}, "sha512-jigsZK+sMF/cuiB7sERuo9V7N9jx+dhmHHnQyDSVdpZwVutaBu7WvNYqMDLSgFgfB30n452TP3vjDAvFC973mA=="], + "@bramus/specificity": ["@bramus/specificity@2.4.2", "", { "dependencies": { "css-tree": "^3.0.0" }, "bin": { "specificity": "bin/cli.js" } }, "sha512-ctxtJ/eA+t+6q2++vj5j7FYX3nRu311q1wfYH3xjlLOsczhlhxAg2FWNUXhpGvAw3BWo1xBcvOV6/YLc2r5FJw=="], + "@chevrotain/cst-dts-gen": ["@chevrotain/cst-dts-gen@11.1.2", "", { "dependencies": { "@chevrotain/gast": "11.1.2", "@chevrotain/types": "11.1.2", "lodash-es": "4.17.23" } }, "sha512-XTsjvDVB5nDZBQB8o0o/0ozNelQtn2KrUVteIHSlPd2VAV2utEb6JzyCJaJ8tGxACR4RiBNWy5uYUHX2eji88Q=="], + + "@chevrotain/gast": ["@chevrotain/gast@11.1.2", "", { "dependencies": { "@chevrotain/types": "11.1.2", "lodash-es": "4.17.23" } }, "sha512-Z9zfXR5jNZb1Hlsd/p+4XWeUFugrHirq36bKzPWDSIacV+GPSVXdk+ahVWZTwjhNwofAWg/sZg58fyucKSQx5g=="], + + "@chevrotain/regexp-to-ast": ["@chevrotain/regexp-to-ast@11.1.2", "", {}, "sha512-nMU3Uj8naWer7xpZTYJdxbAs6RIv/dxYzkYU8GSwgUtcAAlzjcPfX1w+RKRcYG8POlzMeayOQ/znfwxEGo5ulw=="], + + "@chevrotain/types": ["@chevrotain/types@11.1.2", "", {}, "sha512-U+HFai5+zmJCkK86QsaJtoITlboZHBqrVketcO2ROv865xfCMSFpELQoz1GkX5GzME8pTa+3kbKrZHQtI0gdbw=="], + + "@chevrotain/utils": ["@chevrotain/utils@11.1.2", "", {}, "sha512-4mudFAQ6H+MqBTfqLmU7G1ZwRzCLfJEooL/fsF6rCX5eePMbGhoy5n4g+G4vlh2muDcsCTJtL+uKbOzWxs5LHA=="], + "@csstools/color-helpers": ["@csstools/color-helpers@6.1.1", "", {}, "sha512-gLNsunvwf3mCi5u5o46/Z/JcJMnhbHSaZ69rkgPzNM3J4s8hWwpPUQB6/tt0EDFyCiWzxANlx+2LJwpYj4zS1w=="], "@csstools/css-calc": ["@csstools/css-calc@3.3.0", "", { "peerDependencies": { "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0" } }, "sha512-c5ihYsPkdG6JCkU2zTMm4+k6r7RXuGxtWYhu5DHMIiF1FHzrfmHL5so11AoFpUv/tu61xfcmT4AmKoFfMPoqdQ=="], @@ -249,6 +272,10 @@ "@exodus/bytes": ["@exodus/bytes@1.15.1", "", { "peerDependencies": { "@noble/hashes": "^1.8.0 || ^2.0.0" }, "optionalPeers": ["@noble/hashes"] }, "sha512-S6mL0yNB/Abt9Ei4tq8gDhcczc4S3+vQ4ra7vxnAf+YHC02srtqxKKZghx2Dq6p0e66THKwR6r8N6P95wEty7Q=="], + "@fast-csv/format": ["@fast-csv/format@4.3.5", "", { "dependencies": { "@types/node": "^14.0.1", "lodash.escaperegexp": "^4.1.2", "lodash.isboolean": "^3.0.3", "lodash.isequal": "^4.5.0", "lodash.isfunction": "^3.0.9", "lodash.isnil": "^4.0.0" } }, "sha512-8iRn6QF3I8Ak78lNAa+Gdl5MJJBM5vRHivFtMRUWINdevNo00K7OXxS2PshawLKTejVwieIlPmK5YlLu6w4u8A=="], + + "@fast-csv/parse": ["@fast-csv/parse@4.3.6", "", { "dependencies": { "@types/node": "^14.0.1", "lodash.escaperegexp": "^4.1.2", "lodash.groupby": "^4.6.0", "lodash.isfunction": "^3.0.9", "lodash.isnil": "^4.0.0", "lodash.isundefined": "^3.0.1", "lodash.uniq": "^4.5.0" } }, "sha512-uRsLYksqpbDmWaSmzvJcuApSEe38+6NQZBUsuAyMZKqHxH0g1wcJgsKUvN3WC8tewaqFjBMMGrkHmC+T7k8LvA=="], + "@formatjs/fast-memoize": ["@formatjs/fast-memoize@3.1.7", "", {}, "sha512-zXfhLpvA6T7+efdt9JLbBwZ00tT7NsBMDVnDu8rpHeNNv8KfRZAMo2gkG0k9lK/Nzc//3kJ9pImsfuJxk3KhUA=="], "@formatjs/icu-messageformat-parser": ["@formatjs/icu-messageformat-parser@3.5.17", "", { "dependencies": { "@formatjs/icu-skeleton-parser": "2.1.11" } }, "sha512-cN9jhVqT7u0K9tix43fhjoUwL0nazyW6zsNIXs2QdPADr+nurPfYyssUiMqcSCGlPcCiqnYVxgSn7zBSuI+5Bg=="], @@ -257,6 +284,10 @@ "@google/genai": ["@google/genai@1.52.0", "", { "dependencies": { "google-auth-library": "^10.3.0", "p-retry": "^4.6.2", "protobufjs": "^7.5.4", "ws": "^8.18.0" }, "peerDependencies": { "@modelcontextprotocol/sdk": "^1.25.2" }, "optionalPeers": ["@modelcontextprotocol/sdk"] }, "sha512-gwSvbpiN/17O9TbsqSsE/OzZcpv5Fo4RQjdngGgogtuB9RsyJ8ZHhX5KjHj1bp5N9snN2eK8LDGXSaWW2hof8Q=="], + "@iconify/types": ["@iconify/types@2.0.0", "", {}, "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg=="], + + "@iconify/utils": ["@iconify/utils@3.1.7", "", { "dependencies": { "@antfu/install-pkg": "^2.0.1", "@iconify/types": "^2.0.0", "import-meta-resolve": "^4.2.0" } }, "sha512-JZHlwdID+dy+lTgbYC8NEC4zeugqeYsc6jewvzb4c58kHauJn+X7rNwQjxz5p2qSjqaEeQoLkCIQ9v/H4PK0/w=="], + "@ioredis/commands": ["@ioredis/commands@1.10.0", "", {}, "sha512-UmeW7z4LfctwoQ5wkhVzgq8tXkreED2xZGpX+Bg+zA+WJFZCT6c062AfCK/Dfk81xZnnwdhJCUMkitihRaoC2Q=="], "@jridgewell/gen-mapping": ["@jridgewell/gen-mapping@0.3.13", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA=="], @@ -291,6 +322,8 @@ "@mariozechner/clipboard-win32-x64-msvc": ["@mariozechner/clipboard-win32-x64-msvc@0.3.9", "", { "os": "win32", "cpu": "x64" }, "sha512-ihQC3EufqEY81vhXBgVBtK4prL+wc62zJsSvxrgz7K1hsdt6OObz6v9p3Rn1OG3GJksTTKMJF0u/guMISHPhSA=="], + "@mermaid-js/parser": ["@mermaid-js/parser@2.0.0", "", { "dependencies": { "@chevrotain/types": "~11.1.2" } }, "sha512-K8BeapFUfrfxbRAUQAG5oBOCwo1+bNWzaVnPxTCutkfrTBn6T/j91FIhqxWJ32SUeQ9T3iy1zcmPZ5ROZEvDrg=="], + "@msgpackr-extract/msgpackr-extract-darwin-arm64": ["@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.4", "", { "os": "darwin", "cpu": "arm64" }, "sha512-LCkGo6JDfaBhgST7UpPWgNgLINpcpabaHfyz5OBx75nUYxBsaEPxjnyNjWpeb/xBup/682QnBfRBy2/LvPutZQ=="], "@msgpackr-extract/msgpackr-extract-darwin-x64": ["@msgpackr-extract/msgpackr-extract-darwin-x64@3.0.4", "", { "os": "darwin", "cpu": "x64" }, "sha512-zExlW9zUJKZH/tOtVMttwjKa4Xm/3KcNjnE3dPN92uCktwavMxpgCA3MoJK/DOnTWsQgo224OaST27/mPNAf+w=="], @@ -303,7 +336,31 @@ "@msgpackr-extract/msgpackr-extract-win32-x64": ["@msgpackr-extract/msgpackr-extract-win32-x64@3.0.4", "", { "os": "win32", "cpu": "x64" }, "sha512-CmCXPQrkbwExx3j946/PtHWHbYJiCRBRDl4BlkRQcJB/YOwQxJRTpoo7aTsortjgoJ1x7opzTSxn7C+ASSLVjQ=="], - "@nodable/entities": ["@nodable/entities@2.1.0", "", {}, "sha512-nyT7T3nbMyBI/lvr6L5TyWbFJAI9FTgVRakNoBqCD+PmID8DzFrrNdLLtHMwMszOtqZa8PAOV24ZqDnQrhQINA=="], + "@napi-rs/canvas": ["@napi-rs/canvas@1.0.9", "", { "optionalDependencies": { "@napi-rs/canvas-android-arm64": "1.0.9", "@napi-rs/canvas-darwin-arm64": "1.0.9", "@napi-rs/canvas-darwin-x64": "1.0.9", "@napi-rs/canvas-linux-arm-gnueabihf": "1.0.9", "@napi-rs/canvas-linux-arm64-gnu": "1.0.9", "@napi-rs/canvas-linux-arm64-musl": "1.0.9", "@napi-rs/canvas-linux-riscv64-gnu": "1.0.9", "@napi-rs/canvas-linux-x64-gnu": "1.0.9", "@napi-rs/canvas-linux-x64-musl": "1.0.9", "@napi-rs/canvas-win32-arm64-msvc": "1.0.9", "@napi-rs/canvas-win32-x64-msvc": "1.0.9" } }, "sha512-QviPdJImDi/jMAvBfqaw+19BndMd/sizXVW3NnpMd3VJGz++QXkOHcP9kWR/smHG0hNjHeyuHFyrx/5lD0oNcQ=="], + + "@napi-rs/canvas-android-arm64": ["@napi-rs/canvas-android-arm64@1.0.9", "", { "os": "android", "cpu": "arm64" }, "sha512-4LGXk2/0HVzE29K8SzML5WubgCp++B1FH3qgl35XmSZE+lLdr6P9VRQEnZ0MCLZMTSuJP41yyhtoiVNEuvrTIA=="], + + "@napi-rs/canvas-darwin-arm64": ["@napi-rs/canvas-darwin-arm64@1.0.9", "", { "os": "darwin", "cpu": "arm64" }, "sha512-YNdfLBzY0W/Pep9fo2L6RmoNlNksnn05LRnX66W63R3ij58S25QOTcjdtEt2v8+PnCESzqZsYzUo+QPeIR44NA=="], + + "@napi-rs/canvas-darwin-x64": ["@napi-rs/canvas-darwin-x64@1.0.9", "", { "os": "darwin", "cpu": "x64" }, "sha512-ceZQSknTEcy3dOXoekv59LTCkXjvnLsq+VW5PeNNDHEPQbRS5Ervkm1EaDa7WLAjiYWMLuSQTRTHao1dEX4prg=="], + + "@napi-rs/canvas-linux-arm-gnueabihf": ["@napi-rs/canvas-linux-arm-gnueabihf@1.0.9", "", { "os": "linux", "cpu": "arm" }, "sha512-XhfI0Wwv4llhd6nnWDtY3kQKjq0r+y1i91PlJlJI24ag2U9WrnwbG1qS3+fDLEyouwEVFchiKkTEHozK+5iUNA=="], + + "@napi-rs/canvas-linux-arm64-gnu": ["@napi-rs/canvas-linux-arm64-gnu@1.0.9", "", { "os": "linux", "cpu": "arm64" }, "sha512-012oiYtKaE7i9oxc8q7nraT7kDOpLcaCmFLzVe9Ty34RHDdoDzbWLrVh827CNxYh/EADX1eSikA3ymLjo/nNuw=="], + + "@napi-rs/canvas-linux-arm64-musl": ["@napi-rs/canvas-linux-arm64-musl@1.0.9", "", { "os": "linux", "cpu": "arm64" }, "sha512-Ls5UWYFFn63casTZEczbeyEg3vRDRkv9lscuGwfchtY5yLLQhgOB8SN4YGxmfJ5vTaBwZ2YUxBS3NtmjJmFXdA=="], + + "@napi-rs/canvas-linux-riscv64-gnu": ["@napi-rs/canvas-linux-riscv64-gnu@1.0.9", "", { "os": "linux", "cpu": "none" }, "sha512-hLKEGxV7ZiRHqndePTokgDMdBlo/rDfzg7P4p4QIv9pUhuYobnu3R2NIFLCRghG0nwfo+s2sw+c1xZFeCmEAsw=="], + + "@napi-rs/canvas-linux-x64-gnu": ["@napi-rs/canvas-linux-x64-gnu@1.0.9", "", { "os": "linux", "cpu": "x64" }, "sha512-6kaz3w0QMy77PDWk6rJ1ksIihdad3qzEyX2o2oGT8GwCaypfT5mhjr8buOO5hstyLxcWXDScuz56RsINLtBPIQ=="], + + "@napi-rs/canvas-linux-x64-musl": ["@napi-rs/canvas-linux-x64-musl@1.0.9", "", { "os": "linux", "cpu": "x64" }, "sha512-xrGvmS3v55hmZ86ls/kBLVNMUTYio3f6Ik0DireemG994VfPAwiA3ZXA0Uf1bByctkB3NQ1Sfb+H5bkdUnnzfQ=="], + + "@napi-rs/canvas-win32-arm64-msvc": ["@napi-rs/canvas-win32-arm64-msvc@1.0.9", "", { "os": "win32", "cpu": "arm64" }, "sha512-yjmVS3ArZeRVCP7jqbPq4rpZa/BhTeI7ELE2XqJg3snICQBDevLZyArxswHkiTnT34KRic33/4fLirrHI+SY8A=="], + + "@napi-rs/canvas-win32-x64-msvc": ["@napi-rs/canvas-win32-x64-msvc@1.0.9", "", { "os": "win32", "cpu": "x64" }, "sha512-QlSYQdMQslB81nlABo9wNfQ6npFhE7/O+saCZdqVGueGanyRk4jCogD5EwQenfP3kIq9e+mm6GreQBjX5MrA8g=="], + + "@nodable/entities": ["@nodable/entities@3.0.0", "", {}, "sha512-8L9xFeTYKhm49xfIypoe2W5wV1m/3Z58kT+7kR9A8OyFxcPduI4VmxaUMQyKYrRjUoLLSXv6EKKID5Tvj9cUVw=="], "@opentelemetry/api": ["@opentelemetry/api@1.9.0", "", {}, "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg=="], @@ -423,6 +480,68 @@ "@types/chai": ["@types/chai@5.2.3", "", { "dependencies": { "@types/deep-eql": "*", "assertion-error": "^2.0.1" } }, "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA=="], + "@types/d3": ["@types/d3@7.4.3", "", { "dependencies": { "@types/d3-array": "*", "@types/d3-axis": "*", "@types/d3-brush": "*", "@types/d3-chord": "*", "@types/d3-color": "*", "@types/d3-contour": "*", "@types/d3-delaunay": "*", "@types/d3-dispatch": "*", "@types/d3-drag": "*", "@types/d3-dsv": "*", "@types/d3-ease": "*", "@types/d3-fetch": "*", "@types/d3-force": "*", "@types/d3-format": "*", "@types/d3-geo": "*", "@types/d3-hierarchy": "*", "@types/d3-interpolate": "*", "@types/d3-path": "*", "@types/d3-polygon": "*", "@types/d3-quadtree": "*", "@types/d3-random": "*", "@types/d3-scale": "*", "@types/d3-scale-chromatic": "*", "@types/d3-selection": "*", "@types/d3-shape": "*", "@types/d3-time": "*", "@types/d3-time-format": "*", "@types/d3-timer": "*", "@types/d3-transition": "*", "@types/d3-zoom": "*" } }, "sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww=="], + + "@types/d3-array": ["@types/d3-array@3.2.2", "", {}, "sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw=="], + + "@types/d3-axis": ["@types/d3-axis@3.0.6", "", { "dependencies": { "@types/d3-selection": "*" } }, "sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw=="], + + "@types/d3-brush": ["@types/d3-brush@3.0.6", "", { "dependencies": { "@types/d3-selection": "*" } }, "sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A=="], + + "@types/d3-chord": ["@types/d3-chord@3.0.6", "", {}, "sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg=="], + + "@types/d3-color": ["@types/d3-color@3.1.3", "", {}, "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A=="], + + "@types/d3-contour": ["@types/d3-contour@3.0.6", "", { "dependencies": { "@types/d3-array": "*", "@types/geojson": "*" } }, "sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg=="], + + "@types/d3-delaunay": ["@types/d3-delaunay@6.0.4", "", {}, "sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw=="], + + "@types/d3-dispatch": ["@types/d3-dispatch@3.0.7", "", {}, "sha512-5o9OIAdKkhN1QItV2oqaE5KMIiXAvDWBDPrD85e58Qlz1c1kI/J0NcqbEG88CoTwJrYe7ntUCVfeUl2UJKbWgA=="], + + "@types/d3-drag": ["@types/d3-drag@3.0.7", "", { "dependencies": { "@types/d3-selection": "*" } }, "sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ=="], + + "@types/d3-dsv": ["@types/d3-dsv@3.0.7", "", {}, "sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g=="], + + "@types/d3-ease": ["@types/d3-ease@3.0.2", "", {}, "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA=="], + + "@types/d3-fetch": ["@types/d3-fetch@3.0.7", "", { "dependencies": { "@types/d3-dsv": "*" } }, "sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA=="], + + "@types/d3-force": ["@types/d3-force@3.0.10", "", {}, "sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw=="], + + "@types/d3-format": ["@types/d3-format@3.0.4", "", {}, "sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g=="], + + "@types/d3-geo": ["@types/d3-geo@3.1.1", "", { "dependencies": { "@types/geojson": "*" } }, "sha512-65Emv9fQiQQqphLlRkuQ5ypPsOmWPhtBGCMv61JDPEPMvsx+gzhGf74yw1a78xFKPj6zw4AgQICJoQv0vK9M2w=="], + + "@types/d3-hierarchy": ["@types/d3-hierarchy@3.1.7", "", {}, "sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg=="], + + "@types/d3-interpolate": ["@types/d3-interpolate@3.0.4", "", { "dependencies": { "@types/d3-color": "*" } }, "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA=="], + + "@types/d3-path": ["@types/d3-path@3.1.1", "", {}, "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg=="], + + "@types/d3-polygon": ["@types/d3-polygon@3.0.2", "", {}, "sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA=="], + + "@types/d3-quadtree": ["@types/d3-quadtree@3.0.6", "", {}, "sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg=="], + + "@types/d3-random": ["@types/d3-random@3.0.4", "", {}, "sha512-UHYId5WTCx4L4YNel7NU00XUXXgvgpgZOvp10PuvsQENjMDXhh2RyFc0KBjO7B45ne4Ha1yVH7ii0vnzKkuzWA=="], + + "@types/d3-scale": ["@types/d3-scale@4.0.9", "", { "dependencies": { "@types/d3-time": "*" } }, "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw=="], + + "@types/d3-scale-chromatic": ["@types/d3-scale-chromatic@3.1.0", "", {}, "sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ=="], + + "@types/d3-selection": ["@types/d3-selection@3.0.12", "", {}, "sha512-Qe/KWYhEiIIxGs7HrAAjMfShxKldx19SJtr5zu53f3afPsdZNz7HHtdTLXo/kqeiWNXVycI24kSnfzBYkTzpgw=="], + + "@types/d3-shape": ["@types/d3-shape@3.2.0", "", { "dependencies": { "@types/d3-path": "*" } }, "sha512-kVd74ta9eof3eJOvbNd1vGKS/XERRyQbT26Og63hIsvDO84cjD5gEOhsXf26w3FSoNlPVz84DOFcKv/oou+fMw=="], + + "@types/d3-time": ["@types/d3-time@3.0.4", "", {}, "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g=="], + + "@types/d3-time-format": ["@types/d3-time-format@4.0.3", "", {}, "sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg=="], + + "@types/d3-timer": ["@types/d3-timer@3.0.2", "", {}, "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw=="], + + "@types/d3-transition": ["@types/d3-transition@3.0.9", "", { "dependencies": { "@types/d3-selection": "*" } }, "sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg=="], + + "@types/d3-zoom": ["@types/d3-zoom@3.0.8", "", { "dependencies": { "@types/d3-interpolate": "*", "@types/d3-selection": "*" } }, "sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw=="], + "@types/debug": ["@types/debug@4.1.13", "", { "dependencies": { "@types/ms": "*" } }, "sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw=="], "@types/deep-eql": ["@types/deep-eql@4.0.2", "", {}, "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw=="], @@ -431,6 +550,8 @@ "@types/estree-jsx": ["@types/estree-jsx@1.0.5", "", { "dependencies": { "@types/estree": "*" } }, "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg=="], + "@types/geojson": ["@types/geojson@7946.0.16", "", {}, "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg=="], + "@types/hast": ["@types/hast@3.0.5", "", { "dependencies": { "@types/unist": "*" } }, "sha512-rp/ezSWaD1m44dPKICGhiskI13nVr7qTloFwDa/IYkhhf5nzwP+zIQcIJh3WIFSBOy/H1PzB40jPjMDksN4F+g=="], "@types/mdast": ["@types/mdast@4.0.4", "", { "dependencies": { "@types/unist": "*" } }, "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA=="], @@ -445,6 +566,8 @@ "@types/retry": ["@types/retry@0.12.0", "", {}, "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA=="], + "@types/trusted-types": ["@types/trusted-types@2.0.7", "", {}, "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw=="], + "@types/unist": ["@types/unist@3.0.3", "", {}, "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q=="], "@types/ws": ["@types/ws@8.18.1", "", { "dependencies": { "@types/node": "*" } }, "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg=="], @@ -491,6 +614,8 @@ "@ungap/structured-clone": ["@ungap/structured-clone@1.4.0", "", {}, "sha512-1mEZtMKPM09vDmQt5y7YvmN2+DFTP7Tg0EWXdic8/C6VRnpb33e4ghisCIE3WZjsE2N8mf+QV1Zqh7ZFYLWInQ=="], + "@upsetjs/venn.js": ["@upsetjs/venn.js@2.0.0", "", { "optionalDependencies": { "d3-selection": "^3.0.0", "d3-transition": "^3.0.1" } }, "sha512-WbBhLrooyePuQ1VZxrJjtLvTc4NVfpOyKx0sKqioq9bX1C1m7Jgykkn8gLrtwumBioXIqam8DLxp88Adbue6Hw=="], + "@vitejs/plugin-react": ["@vitejs/plugin-react@6.1.1", "", { "dependencies": { "@rolldown/pluginutils": "^1.0.1" }, "peerDependencies": { "@rolldown/plugin-babel": "^0.1.7 || ^0.2.0", "babel-plugin-react-compiler": "^1.0.0", "oxc-transform-react": "^0.145.0", "vite": "^8.0.0" }, "optionalPeers": ["@rolldown/plugin-babel", "babel-plugin-react-compiler", "oxc-transform-react"] }, "sha512-yxLaQV9gkhS8ezJqCM6+ndU7mDY6gqAg75NQ+0IjwEI8IYOmQCgkRwHKVSfWXW076DsqMo0Dk+0FK1U+M5RgFw=="], "@vitest/expect": ["@vitest/expect@4.1.10", "", { "dependencies": { "@standard-schema/spec": "^1.1.0", "@types/chai": "^5.2.2", "@vitest/spy": "4.1.10", "@vitest/utils": "4.1.10", "chai": "^6.2.2", "tinyrainbow": "^3.1.0" } }, "sha512-YsCn+qAk1GWjQOWFEsEcL2gNQ0zmVmQu3T03qP6UyjhtmdtwtbuI+DASn/7iQB3HGTXkdBwGddzxPlmiql5vlA=="], @@ -507,6 +632,8 @@ "@vitest/utils": ["@vitest/utils@4.1.10", "", { "dependencies": { "@vitest/pretty-format": "4.1.10", "convert-source-map": "^2.0.0", "tinyrainbow": "^3.1.0" } }, "sha512-fy9am/HWxbaGt/Sawrp90vt6Y6jQwf1RX77cz3uwoJwJVMli/e1IEwRPnMNJ7vKfPTwo0diXifkpPvwH9v7nGA=="], + "@xmldom/xmldom": ["@xmldom/xmldom@0.8.15", "", {}, "sha512-/5NV/vDALVFDXgLmfsy9TRCBlKwO2LNBFzpzvb9iIj+jR+eSc6DLYYvVOdivT/jm7MtU6TebYuRmzEOI7w40UA=="], + "@xterm/addon-fit": ["@xterm/addon-fit@0.11.0", "", {}, "sha512-jYcgT6xtVYhnhgxh3QgYDnnNMYTcf8ElbxxFzX0IZo+vabQqSPAjC3c1wJrKB5E19VwQei89QCiZZP86DCPF7g=="], "@xterm/xterm": ["@xterm/xterm@6.0.0", "", {}, "sha512-TQwDdQGtwwDt+2cgKDLn0IRaSxYu1tSUjgKarSDkUM0ZNiSRXFpjxEsvc/Zgc5kq5omJ+V0a8/kIM2WD3sMOYg=="], @@ -519,10 +646,20 @@ "ansi-styles": ["ansi-styles@5.2.0", "", {}, "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA=="], + "anynum": ["anynum@1.0.1", "", {}, "sha512-N6//FLET/tXYNM/F6ABca1oH6fWB+KlTt909Le28WMDBk8oaT4vY17DCrwg2MvmuqUKt3Ni4N5dGJ/EoBgcO6A=="], + + "archiver": ["archiver@5.3.2", "", { "dependencies": { "archiver-utils": "^2.1.0", "async": "^3.2.4", "buffer-crc32": "^0.2.1", "readable-stream": "^3.6.0", "readdir-glob": "^1.1.2", "tar-stream": "^2.2.0", "zip-stream": "^4.1.0" } }, "sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw=="], + + "archiver-utils": ["archiver-utils@2.1.0", "", { "dependencies": { "glob": "^7.1.4", "graceful-fs": "^4.2.0", "lazystream": "^1.0.0", "lodash.defaults": "^4.2.0", "lodash.difference": "^4.5.0", "lodash.flatten": "^4.4.0", "lodash.isplainobject": "^4.0.6", "lodash.union": "^4.6.0", "normalize-path": "^3.0.0", "readable-stream": "^2.0.0" } }, "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw=="], + + "argparse": ["argparse@1.0.10", "", { "dependencies": { "sprintf-js": "~1.0.2" } }, "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg=="], + "aria-query": ["aria-query@5.3.0", "", { "dependencies": { "dequal": "^2.0.3" } }, "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A=="], "assertion-error": ["assertion-error@2.0.1", "", {}, "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA=="], + "async": ["async@3.2.6", "", {}, "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA=="], + "axe-core": ["axe-core@4.13.0", "", {}, "sha512-UzGt8zg7Ny8djbYMhxl2zuEevVa7r2gJjYY5Lwr1xM7+XU2nd6CkIWFTVcCIbAP63vSz71NaVyyuSk9lHKcy0A=="], "bail": ["bail@2.0.2", "", {}, "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw=="], @@ -533,18 +670,36 @@ "bidi-js": ["bidi-js@1.0.3", "", { "dependencies": { "require-from-string": "^2.0.2" } }, "sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw=="], + "big-integer": ["big-integer@1.6.52", "", {}, "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg=="], + "bignumber.js": ["bignumber.js@9.3.1", "", {}, "sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ=="], + "binary": ["binary@0.3.0", "", { "dependencies": { "buffers": "~0.1.1", "chainsaw": "~0.1.0" } }, "sha512-D4H1y5KYwpJgK8wk1Cue5LLPgmwHKYSChkbspQg5JtVuR5ulGckxfR62H3AE9UDkdMC8yyXlqYihuz3Aqg2XZg=="], + + "bl": ["bl@4.1.0", "", { "dependencies": { "buffer": "^5.5.0", "inherits": "^2.0.4", "readable-stream": "^3.4.0" } }, "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w=="], + + "bluebird": ["bluebird@3.4.7", "", {}, "sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA=="], + "bowser": ["bowser@2.14.1", "", {}, "sha512-tzPjzCxygAKWFOJP011oxFHs57HzIhOEracIgAePE4pqB3LikALKnSzUyU4MGs9/iCEUuHlAJTjTc5M+u7YEGg=="], "brace-expansion": ["brace-expansion@5.0.9", "", { "dependencies": { "balanced-match": "^4.0.2" } }, "sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg=="], + "buffer": ["buffer@5.7.1", "", { "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" } }, "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ=="], + + "buffer-crc32": ["buffer-crc32@0.2.13", "", {}, "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ=="], + "buffer-equal-constant-time": ["buffer-equal-constant-time@1.0.1", "", {}, "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA=="], + "buffer-indexof-polyfill": ["buffer-indexof-polyfill@1.0.2", "", {}, "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A=="], + + "buffers": ["buffers@0.1.1", "", {}, "sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ=="], + "ccount": ["ccount@2.0.1", "", {}, "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg=="], "chai": ["chai@6.2.2", "", {}, "sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg=="], + "chainsaw": ["chainsaw@0.1.0", "", { "dependencies": { "traverse": ">=0.3.0 <0.4" } }, "sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ=="], + "chalk": ["chalk@5.6.2", "", {}, "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA=="], "character-entities": ["character-entities@2.0.2", "", {}, "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ=="], @@ -555,12 +710,28 @@ "character-reference-invalid": ["character-reference-invalid@2.0.1", "", {}, "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw=="], + "chevrotain": ["chevrotain@11.1.2", "", { "dependencies": { "@chevrotain/cst-dts-gen": "11.1.2", "@chevrotain/gast": "11.1.2", "@chevrotain/regexp-to-ast": "11.1.2", "@chevrotain/types": "11.1.2", "@chevrotain/utils": "11.1.2", "lodash-es": "4.17.23" } }, "sha512-opLQzEVriiH1uUQ4Kctsd49bRoFDXGGSC4GUqj7pGyxM3RehRhvTlZJc1FL/Flew2p5uwxa1tUDWKzI4wNM8pg=="], + "cluster-key-slot": ["cluster-key-slot@1.1.1", "", {}, "sha512-rwHwUfXL40Chm1r08yrhU3qpUvdVlgkKNeyeGPOxnW8/SyVDvgRaed/Uz54AqWNaTCAThlj6QAs3TZcKI0xDEw=="], "comma-separated-tokens": ["comma-separated-tokens@2.0.3", "", {}, "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg=="], + "commander": ["commander@8.3.0", "", {}, "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww=="], + + "compress-commons": ["compress-commons@4.1.2", "", { "dependencies": { "buffer-crc32": "^0.2.13", "crc32-stream": "^4.0.2", "normalize-path": "^3.0.0", "readable-stream": "^3.6.0" } }, "sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg=="], + + "concat-map": ["concat-map@0.0.1", "", {}, "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="], + "convert-source-map": ["convert-source-map@2.0.0", "", {}, "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg=="], + "core-util-is": ["core-util-is@1.0.3", "", {}, "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="], + + "cose-base": ["cose-base@1.0.3", "", { "dependencies": { "layout-base": "^1.0.0" } }, "sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg=="], + + "crc-32": ["crc-32@1.2.2", "", { "bin": { "crc32": "bin/crc32.njs" } }, "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ=="], + + "crc32-stream": ["crc32-stream@4.0.3", "", { "dependencies": { "crc-32": "^1.2.0", "readable-stream": "^3.4.0" } }, "sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw=="], + "cross-spawn": ["cross-spawn@7.0.6", "", { "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" } }, "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA=="], "css-mediaquery": ["css-mediaquery@0.1.2", "", {}, "sha512-COtn4EROW5dBGlE/4PiKnh6rZpAPxDeFLaEEwt4i10jpDMFt2EhQGS79QmmrO+iKCHv0PU/HrOWEhijFd1x99Q=="], @@ -569,16 +740,92 @@ "csstype": ["csstype@3.2.3", "", {}, "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ=="], + "cytoscape": ["cytoscape@3.34.3", "", {}, "sha512-yfYGhRcGAntq6YBD583j4n0Eg3jIxvWmZtz/5uz9UYkeIStSlMxuUja+ec5j3iBD8nv1rwaOAYMW09tBdkSeaQ=="], + + "cytoscape-cose-bilkent": ["cytoscape-cose-bilkent@4.1.0", "", { "dependencies": { "cose-base": "^1.0.0" }, "peerDependencies": { "cytoscape": "^3.2.0" } }, "sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ=="], + + "cytoscape-fcose": ["cytoscape-fcose@2.2.0", "", { "dependencies": { "cose-base": "^2.2.0" }, "peerDependencies": { "cytoscape": "^3.2.0" } }, "sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ=="], + + "d3": ["d3@7.9.0", "", { "dependencies": { "d3-array": "3", "d3-axis": "3", "d3-brush": "3", "d3-chord": "3", "d3-color": "3", "d3-contour": "4", "d3-delaunay": "6", "d3-dispatch": "3", "d3-drag": "3", "d3-dsv": "3", "d3-ease": "3", "d3-fetch": "3", "d3-force": "3", "d3-format": "3", "d3-geo": "3", "d3-hierarchy": "3", "d3-interpolate": "3", "d3-path": "3", "d3-polygon": "3", "d3-quadtree": "3", "d3-random": "3", "d3-scale": "4", "d3-scale-chromatic": "3", "d3-selection": "3", "d3-shape": "3", "d3-time": "3", "d3-time-format": "4", "d3-timer": "3", "d3-transition": "3", "d3-zoom": "3" } }, "sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA=="], + + "d3-array": ["d3-array@3.2.4", "", { "dependencies": { "internmap": "1 - 2" } }, "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg=="], + + "d3-axis": ["d3-axis@3.0.0", "", {}, "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw=="], + + "d3-brush": ["d3-brush@3.0.0", "", { "dependencies": { "d3-dispatch": "1 - 3", "d3-drag": "2 - 3", "d3-interpolate": "1 - 3", "d3-selection": "3", "d3-transition": "3" } }, "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ=="], + + "d3-chord": ["d3-chord@3.0.1", "", { "dependencies": { "d3-path": "1 - 3" } }, "sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g=="], + + "d3-color": ["d3-color@3.1.0", "", {}, "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA=="], + + "d3-contour": ["d3-contour@4.0.2", "", { "dependencies": { "d3-array": "^3.2.0" } }, "sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA=="], + + "d3-delaunay": ["d3-delaunay@6.0.4", "", { "dependencies": { "delaunator": "5" } }, "sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A=="], + + "d3-dispatch": ["d3-dispatch@3.0.1", "", {}, "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg=="], + + "d3-drag": ["d3-drag@3.0.0", "", { "dependencies": { "d3-dispatch": "1 - 3", "d3-selection": "3" } }, "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg=="], + + "d3-dsv": ["d3-dsv@3.0.1", "", { "dependencies": { "commander": "7", "iconv-lite": "0.6", "rw": "1" }, "bin": { "csv2json": "bin/dsv2json.js", "csv2tsv": "bin/dsv2dsv.js", "dsv2dsv": "bin/dsv2dsv.js", "dsv2json": "bin/dsv2json.js", "json2csv": "bin/json2dsv.js", "json2dsv": "bin/json2dsv.js", "json2tsv": "bin/json2dsv.js", "tsv2csv": "bin/dsv2dsv.js", "tsv2json": "bin/dsv2json.js" } }, "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q=="], + + "d3-ease": ["d3-ease@3.0.1", "", {}, "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w=="], + + "d3-fetch": ["d3-fetch@3.0.1", "", { "dependencies": { "d3-dsv": "1 - 3" } }, "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw=="], + + "d3-force": ["d3-force@3.0.0", "", { "dependencies": { "d3-dispatch": "1 - 3", "d3-quadtree": "1 - 3", "d3-timer": "1 - 3" } }, "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg=="], + + "d3-format": ["d3-format@3.1.2", "", {}, "sha512-AJDdYOdnyRDV5b6ArilzCPPwc1ejkHcoyFarqlPqT7zRYjhavcT3uSrqcMvsgh2CgoPbK3RCwyHaVyxYcP2Arg=="], + + "d3-geo": ["d3-geo@3.1.1", "", { "dependencies": { "d3-array": "2.5.0 - 3" } }, "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q=="], + + "d3-hierarchy": ["d3-hierarchy@3.1.2", "", {}, "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA=="], + + "d3-interpolate": ["d3-interpolate@3.0.1", "", { "dependencies": { "d3-color": "1 - 3" } }, "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g=="], + + "d3-path": ["d3-path@3.1.0", "", {}, "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ=="], + + "d3-polygon": ["d3-polygon@3.0.1", "", {}, "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg=="], + + "d3-quadtree": ["d3-quadtree@3.0.1", "", {}, "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw=="], + + "d3-random": ["d3-random@3.0.1", "", {}, "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ=="], + + "d3-sankey": ["d3-sankey@0.12.3", "", { "dependencies": { "d3-array": "1 - 2", "d3-shape": "^1.2.0" } }, "sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ=="], + + "d3-scale": ["d3-scale@4.0.2", "", { "dependencies": { "d3-array": "2.10.0 - 3", "d3-format": "1 - 3", "d3-interpolate": "1.2.0 - 3", "d3-time": "2.1.1 - 3", "d3-time-format": "2 - 4" } }, "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ=="], + + "d3-scale-chromatic": ["d3-scale-chromatic@3.1.0", "", { "dependencies": { "d3-color": "1 - 3", "d3-interpolate": "1 - 3" } }, "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ=="], + + "d3-selection": ["d3-selection@3.0.0", "", {}, "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ=="], + + "d3-shape": ["d3-shape@3.2.0", "", { "dependencies": { "d3-path": "^3.1.0" } }, "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA=="], + + "d3-time": ["d3-time@3.1.0", "", { "dependencies": { "d3-array": "2 - 3" } }, "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q=="], + + "d3-time-format": ["d3-time-format@4.1.0", "", { "dependencies": { "d3-time": "1 - 3" } }, "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg=="], + + "d3-timer": ["d3-timer@3.0.1", "", {}, "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA=="], + + "d3-transition": ["d3-transition@3.0.1", "", { "dependencies": { "d3-color": "1 - 3", "d3-dispatch": "1 - 3", "d3-ease": "1 - 3", "d3-interpolate": "1 - 3", "d3-timer": "1 - 3" }, "peerDependencies": { "d3-selection": "2 - 3" } }, "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w=="], + + "d3-zoom": ["d3-zoom@3.0.0", "", { "dependencies": { "d3-dispatch": "1 - 3", "d3-drag": "2 - 3", "d3-interpolate": "1 - 3", "d3-selection": "2 - 3", "d3-transition": "2 - 3" } }, "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw=="], + + "dagre-d3-es": ["dagre-d3-es@7.0.14", "", { "dependencies": { "d3": "^7.9.0", "lodash-es": "^4.17.21" } }, "sha512-P4rFMVq9ESWqmOgK+dlXvOtLwYg0i7u0HBGJER0LZDJT2VHIPAMZ/riPxqJceWMStH5+E61QxFra9kIS3AqdMg=="], + "data-uri-to-buffer": ["data-uri-to-buffer@4.0.1", "", {}, "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A=="], "data-urls": ["data-urls@7.0.0", "", { "dependencies": { "whatwg-mimetype": "^5.0.0", "whatwg-url": "^16.0.0" } }, "sha512-23XHcCF+coGYevirZceTVD7NdJOqVn+49IHyxgszm+JIiHLoB2TkmPtsYkNWT1pvRSGkc35L6NHs0yHkN2SumA=="], + "dayjs": ["dayjs@1.11.23", "", {}, "sha512-QDTCU0M0MxR3hQfnlDJfwekQiaanm1ubOD231u73WBckQ/fsamwRLiE2GBz6D3a/xF1NgfiDLJjXBa1hYOYTtQ=="], + "debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], "decimal.js": ["decimal.js@10.6.0", "", {}, "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg=="], "decode-named-character-reference": ["decode-named-character-reference@1.3.0", "", { "dependencies": { "character-entities": "^2.0.0" } }, "sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q=="], + "delaunator": ["delaunator@5.1.0", "", { "dependencies": { "robust-predicates": "^3.0.2" } }, "sha512-AGrQ4QSgssa1NGmWmLPqN5NY2KajF5MqxetNEO+o0n3ZwZZeTmt7bBnvzHWrmkZFxGgr4HdyFgelzgi06otLuQ=="], + "denque": ["denque@2.1.0", "", {}, "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw=="], "dequal": ["dequal@2.0.3", "", {}, "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA=="], @@ -589,18 +836,32 @@ "diff": ["diff@8.0.4", "", {}, "sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw=="], + "dingbat-to-unicode": ["dingbat-to-unicode@1.0.2", "", {}, "sha512-R0bRerYzy/EZP6QzD3Hkl6JjUDA1Mnn+pd928w0nWjPzihnbAR6dcjGJGiRyznj5E4S1duEKzWrTqw02DPcdzg=="], + "dom-accessibility-api": ["dom-accessibility-api@0.5.16", "", {}, "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg=="], + "dompurify": ["dompurify@3.4.16", "", { "optionalDependencies": { "@types/trusted-types": "^2.0.7" } }, "sha512-sqo+pNp3qRhCIpbgRi1y8Tgk27Bo2Ry7w0dC1NBeNTdZChWjz9Xb/KOoZbRP/R6pQZ80Qw8YhXw13hWWBbMRnQ=="], + + "duck": ["duck@0.1.12", "", { "dependencies": { "underscore": "^1.13.1" } }, "sha512-wkctla1O6VfP89gQ+J/yDesM0S7B7XLXjKGzXxMDVFg7uEn706niAtyYovKbyq1oT9YwDcly721/iUWoc8MVRg=="], + + "duplexer2": ["duplexer2@0.1.4", "", { "dependencies": { "readable-stream": "^2.0.2" } }, "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA=="], + "ecdsa-sig-formatter": ["ecdsa-sig-formatter@1.0.11", "", { "dependencies": { "safe-buffer": "^5.0.1" } }, "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ=="], "effect": ["effect@4.0.0-beta.103", "", { "dependencies": { "@standard-schema/spec": "^1.1.0", "fast-check": "^4.9.0", "find-my-way-ts": "^0.1.6", "ini": "^7.0.0", "kubernetes-types": "^1.30.0", "msgpackr": "^2.0.4", "multipasta": "^0.2.8", "toml": "^4.1.2", "uuid": "^14.0.1", "yaml": "^2.9.0" } }, "sha512-pE8TxF4m2tQzVI+77dIlm3s+81TACV1AiX1JEkvY+zVuxgQQ8aGSkqXNJF6b/ST+coCSk5cUdbULpQ7sm4oHyw=="], + "elkjs": ["elkjs@0.9.3", "", {}, "sha512-f/ZeWvW/BCXbhGEf1Ujp29EASo/lk1FDnETgNKwJrsVvGZhUWCZyg3xLJjAsxfOmt8KjswHmI5EwCQcPMpOYhQ=="], + + "end-of-stream": ["end-of-stream@1.4.5", "", { "dependencies": { "once": "^1.4.0" } }, "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg=="], + "enhanced-resolve": ["enhanced-resolve@5.24.5", "", { "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.3.3" } }, "sha512-L1l8TNvomm6UVW5B253AGxQagSQr+vGwhMlrrfRS2qmhx46AMpMVJKQYLvWYbysTMY8VoicOvzHzoHMbyzB+4A=="], "entities": ["entities@8.0.0", "", {}, "sha512-zwfzJecQ/Uej6tusMqwAqU/6KL2XaB2VZ2Jg54Je6ahNBGNH6Ek6g3jjNCF0fG9EWQKGZNddNjU5F1ZQn/sBnA=="], "es-module-lexer": ["es-module-lexer@2.3.1", "", {}, "sha512-shc1dbU90Yl/xq1QrC7QRtfcwURZuVRfPhZbDoldJ1cn1gzDvBaBWlv0eFolj5+0znnPJz5TXLxsN77X/12KTA=="], + "es-toolkit": ["es-toolkit@1.52.0", "", {}, "sha512-XTNEJQh1tY1ZJVcf6ayP/2n4ZPyaHlW2FWs7xvw5ddPuhUVjLD3olQVQS7kf58JbAB48iL0uL/jerTrjtV3lDA=="], + "esbuild": ["esbuild@0.28.1", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.28.1", "@esbuild/android-arm": "0.28.1", "@esbuild/android-arm64": "0.28.1", "@esbuild/android-x64": "0.28.1", "@esbuild/darwin-arm64": "0.28.1", "@esbuild/darwin-x64": "0.28.1", "@esbuild/freebsd-arm64": "0.28.1", "@esbuild/freebsd-x64": "0.28.1", "@esbuild/linux-arm": "0.28.1", "@esbuild/linux-arm64": "0.28.1", "@esbuild/linux-ia32": "0.28.1", "@esbuild/linux-loong64": "0.28.1", "@esbuild/linux-mips64el": "0.28.1", "@esbuild/linux-ppc64": "0.28.1", "@esbuild/linux-riscv64": "0.28.1", "@esbuild/linux-s390x": "0.28.1", "@esbuild/linux-x64": "0.28.1", "@esbuild/netbsd-arm64": "0.28.1", "@esbuild/netbsd-x64": "0.28.1", "@esbuild/openbsd-arm64": "0.28.1", "@esbuild/openbsd-x64": "0.28.1", "@esbuild/openharmony-arm64": "0.28.1", "@esbuild/sunos-x64": "0.28.1", "@esbuild/win32-arm64": "0.28.1", "@esbuild/win32-ia32": "0.28.1", "@esbuild/win32-x64": "0.28.1" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw=="], "escape-string-regexp": ["escape-string-regexp@5.0.0", "", {}, "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw=="], @@ -611,34 +872,48 @@ "eventsource-parser": ["eventsource-parser@4.1.0", "", {}, "sha512-+DHvQ1wLO//MK+1OZgcuXCbZFKgu3YjKPJt7n98rxX8vezL0ni+7s3ZQiM8bJkUEOk7MsuCycrPLj0FzUNf7Og=="], + "exceljs": ["exceljs@4.4.0", "", { "dependencies": { "archiver": "^5.0.0", "dayjs": "^1.8.34", "fast-csv": "^4.3.1", "jszip": "^3.10.1", "readable-stream": "^3.6.0", "saxes": "^5.0.1", "tmp": "^0.2.0", "unzipper": "^0.10.11", "uuid": "^8.3.0" } }, "sha512-XctvKaEMaj1Ii9oDOqbW/6e1gXknSY4g/aLCDicOXqBE4M0nRWkUu0PTp++UPNzoFY12BNHMfs/VadKIS6llvg=="], + "expect-type": ["expect-type@1.4.0", "", {}, "sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA=="], "extend": ["extend@3.0.2", "", {}, "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="], "fast-check": ["fast-check@4.9.0", "", { "dependencies": { "pure-rand": "^8.0.0" } }, "sha512-7ms6T7SybUev/PQITciI0yLM2pOSFy5zpG8Ty7tQofcVaQUvrMXp6CBwqF6fThLCLOrfBtuHAtwq6Yu4XPCllg=="], + "fast-csv": ["fast-csv@4.3.6", "", { "dependencies": { "@fast-csv/format": "4.3.5", "@fast-csv/parse": "4.3.6" } }, "sha512-2RNSpuwwsJGP0frGsOmTb9oUF+VkFSM4SyLTDgwf2ciHWTarN0lQTC+F2f/t5J9QjW+c65VFIAAu85GsvMIusw=="], + "fast-sha256": ["fast-sha256@1.3.0", "", {}, "sha512-n11RGP/lrWEFI/bWdygLxhI+pVeo1ZYIVwvvPkW7azl/rOy+F3HYRZ2K5zeE9mmkhQppyv9sQFx0JM9UabnpPQ=="], "fast-xml-builder": ["fast-xml-builder@1.2.0", "", { "dependencies": { "path-expression-matcher": "^1.5.0", "xml-naming": "^0.1.0" } }, "sha512-00aAWieqff+ZJhsXA4g1g7M8k+7AYoMUUHF+/zFb5U6Uv/P0Vl4QZo84/IcufzYalLuEj9928bXN9PbbFzMF0Q=="], - "fast-xml-parser": ["fast-xml-parser@5.7.3", "", { "dependencies": { "@nodable/entities": "^2.1.0", "fast-xml-builder": "^1.1.7", "path-expression-matcher": "^1.5.0", "strnum": "^2.2.3" }, "bin": { "fxparser": "src/cli/cli.js" } }, "sha512-C0AaNuC+mscy6vrAQKAc/rMq+zAPHodfHGZu4sGVehvAQt/JLG1O5zEcYcXSY5zSqr4YVgxsB+pHXTq0i7eDlg=="], + "fast-xml-parser": ["fast-xml-parser@5.11.1", "", { "dependencies": { "@nodable/entities": "^3.0.0", "fast-xml-builder": "^1.2.0", "is-unsafe": "^2.0.0", "path-expression-matcher": "^1.6.2", "strnum": "^2.4.2", "xml-naming": "^0.3.0" }, "bin": { "fxparser": "src/cli/cli.js" } }, "sha512-TBw6K/fxoQGGjCmZDw9w/ZwP3uDcnTM4YH/g+PFRWr8sbe5idXtxNN6vITh4+1ruCZaho6uBFurElsA7F0zzgw=="], "fdir": ["fdir@6.5.0", "", { "peerDependencies": { "picomatch": "^3 || ^4" } }, "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg=="], "fetch-blob": ["fetch-blob@3.2.0", "", { "dependencies": { "node-domexception": "^1.0.0", "web-streams-polyfill": "^3.0.3" } }, "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ=="], + "fflate": ["fflate@0.8.3", "", {}, "sha512-tbZNuJrLwGUp3zshBtdy4W+ORxZuIh8a5ilyIEQDC5rY1f3U20JMry0Ll3WBzU58EZKsEuJFXhb5gwv8CsPvgA=="], + "find-my-way-ts": ["find-my-way-ts@0.1.6", "", {}, "sha512-a85L9ZoXtNAey3Y6Z+eBWW658kO/MwR7zIafkIUPUMf3isZG0NCs2pjW2wtjxAKuJPxMAsHUIP4ZPGv0o5gyTA=="], "formdata-polyfill": ["formdata-polyfill@4.0.10", "", { "dependencies": { "fetch-blob": "^3.1.2" } }, "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g=="], + "fs-constants": ["fs-constants@1.0.0", "", {}, "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow=="], + + "fs.realpath": ["fs.realpath@1.0.0", "", {}, "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="], + "fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="], + "fstream": ["fstream@1.0.12", "", { "dependencies": { "graceful-fs": "^4.1.2", "inherits": "~2.0.0", "mkdirp": ">=0.5 0", "rimraf": "2" } }, "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg=="], + "gaxios": ["gaxios@7.1.4", "", { "dependencies": { "extend": "^3.0.2", "https-proxy-agent": "^7.0.1", "node-fetch": "^3.3.2" } }, "sha512-bTIgTsM2bWn3XklZISBTQX7ZSddGW+IO3bMdGaemHZ3tbqExMENHLx6kKZ/KlejgrMtj8q7wBItt51yegqalrA=="], "gcp-metadata": ["gcp-metadata@8.1.2", "", { "dependencies": { "gaxios": "^7.0.0", "google-logging-utils": "^1.0.0", "json-bigint": "^1.0.0" } }, "sha512-zV/5HKTfCeKWnxG0Dmrw51hEWFGfcF2xiXqcA3+J90WDuP0SvoiSO5ORvcBsifmx/FoIjgQN3oNOGaQ5PhLFkg=="], "get-east-asian-width": ["get-east-asian-width@1.6.0", "", {}, "sha512-QRbvDIbx6YklUe6RxeTeleMR0yv3cYH6PsPZHcnVn7xv7zO1BHN8r0XETu8n6Ye3Q+ahtSarc3WgtNWmehIBfA=="], + "glob": ["glob@7.2.3", "", { "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q=="], + "google-auth-library": ["google-auth-library@10.6.2", "", { "dependencies": { "base64-js": "^1.3.0", "ecdsa-sig-formatter": "^1.0.11", "gaxios": "^7.1.4", "gcp-metadata": "8.1.2", "google-logging-utils": "1.1.3", "jws": "^4.0.0" } }, "sha512-e27Z6EThmVNNvtYASwQxose/G57rkRuaRbQyxM2bvYLLX/GqWZ5chWq2EBoUchJbCc57eC9ArzO5wMsEmWftCw=="], "google-logging-utils": ["google-logging-utils@1.1.3", "", {}, "sha512-eAmLkjDjAFCVXg7A1unxHsLf961m6y17QFqXqAXGj/gVkKFrEICfStRfwUlGNfeCEjNRa32JEWOUTlYXPyyKvA=="], @@ -647,13 +922,25 @@ "grok-mermaid": ["grok-mermaid@0.2.2", "", {}, "sha512-XcJEP5dDC8liHBh52mlLjU18fNvu1ckFsu0QpIG3+APZ270fsj9wxpiA6cOURmbUEuoMVgjbC2+UYgTdCqqgzA=="], + "hachure-fill": ["hachure-fill@0.5.2", "", {}, "sha512-3GKBOn+m2LX9iq+JC1064cSFprJY4jL1jCXTcpnfER5HYE2l/4EfWSGzkPa/ZDBmYI0ZOEj5VHV/eKnPGkHuOg=="], + + "hast-util-from-parse5": ["hast-util-from-parse5@8.0.3", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", "devlop": "^1.0.0", "hastscript": "^9.0.0", "property-information": "^7.0.0", "vfile": "^6.0.0", "vfile-location": "^5.0.0", "web-namespaces": "^2.0.0" } }, "sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg=="], + + "hast-util-parse-selector": ["hast-util-parse-selector@4.0.0", "", { "dependencies": { "@types/hast": "^3.0.0" } }, "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A=="], + + "hast-util-raw": ["hast-util-raw@9.1.0", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", "@ungap/structured-clone": "^1.0.0", "hast-util-from-parse5": "^8.0.0", "hast-util-to-parse5": "^8.0.0", "html-void-elements": "^3.0.0", "mdast-util-to-hast": "^13.0.0", "parse5": "^7.0.0", "unist-util-position": "^5.0.0", "unist-util-visit": "^5.0.0", "vfile": "^6.0.0", "web-namespaces": "^2.0.0", "zwitch": "^2.0.0" } }, "sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw=="], + "hast-util-sanitize": ["hast-util-sanitize@5.0.2", "", { "dependencies": { "@types/hast": "^3.0.0", "@ungap/structured-clone": "^1.0.0", "unist-util-position": "^5.0.0" } }, "sha512-3yTWghByc50aGS7JlGhk61SPenfE/p1oaFeNwkOOyrscaOkMGrcW9+Cy/QAIOBpZxP1yqDIzFMR0+Np0i0+usg=="], "hast-util-to-jsx-runtime": ["hast-util-to-jsx-runtime@2.3.6", "", { "dependencies": { "@types/estree": "^1.0.0", "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", "comma-separated-tokens": "^2.0.0", "devlop": "^1.0.0", "estree-util-is-identifier-name": "^3.0.0", "hast-util-whitespace": "^3.0.0", "mdast-util-mdx-expression": "^2.0.0", "mdast-util-mdx-jsx": "^3.0.0", "mdast-util-mdxjs-esm": "^2.0.0", "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0", "style-to-js": "^1.0.0", "unist-util-position": "^5.0.0", "vfile-message": "^4.0.0" } }, "sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg=="], + "hast-util-to-parse5": ["hast-util-to-parse5@8.0.1", "", { "dependencies": { "@types/hast": "^3.0.0", "comma-separated-tokens": "^2.0.0", "devlop": "^1.0.0", "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0", "web-namespaces": "^2.0.0", "zwitch": "^2.0.0" } }, "sha512-MlWT6Pjt4CG9lFCjiz4BH7l9wmrMkfkJYCxFwKQic8+RTZgWPuWxwAfjJElsXkex7DJjfSJsQIt931ilUgmwdA=="], + "hast-util-whitespace": ["hast-util-whitespace@3.0.0", "", { "dependencies": { "@types/hast": "^3.0.0" } }, "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw=="], - "highlight.js": ["highlight.js@10.7.3", "", {}, "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A=="], + "hastscript": ["hastscript@9.0.1", "", { "dependencies": { "@types/hast": "^3.0.0", "comma-separated-tokens": "^2.0.0", "hast-util-parse-selector": "^4.0.0", "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0" } }, "sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w=="], + + "highlight.js": ["highlight.js@11.12.0", "", {}, "sha512-nbfWpyRMcMrPMmDwJB+dhX/eiaPKtc2RB+0QZskqJ3WjRA/FDS0e9hZrx8EC/lbEv8gXy98FcDbNa/dspAaJMg=="], "hosted-git-info": ["hosted-git-info@9.0.3", "", { "dependencies": { "lru-cache": "^11.1.0" } }, "sha512-Hc+ghLoSt6QaYZUv0WBiIvmMDZuZZ7oaDvdH8MbfOO4lOsxdXLEvuC6ePoGs9H1X9oCLyq6+NVN0MKqD+ydxyg=="], @@ -663,18 +950,34 @@ "html-url-attributes": ["html-url-attributes@3.0.1", "", {}, "sha512-ol6UPyBWqsrO6EJySPz2O7ZSr856WDrEzM5zMqp+FJJLGMW35cLYmmZnl0vztAZxRUoNZJFTCohfjuIJ8I4QBQ=="], + "html-void-elements": ["html-void-elements@3.0.0", "", {}, "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg=="], + "http-proxy-agent": ["http-proxy-agent@7.0.2", "", { "dependencies": { "agent-base": "^7.1.0", "debug": "^4.3.4" } }, "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig=="], "https-proxy-agent": ["https-proxy-agent@7.0.6", "", { "dependencies": { "agent-base": "^7.1.2", "debug": "4" } }, "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw=="], "i18next": ["i18next@26.4.1", "", { "peerDependencies": { "typescript": "^5 || ^6 || ^7" }, "optionalPeers": ["typescript"] }, "sha512-9YbX5E6gd1H+yaOSX3izCsPj5iWXyH7X4oC+iuHHJJw8AeHglzOK5SJf+1CHxaYKYigcea+8jvzSxqYx46YvyA=="], + "iconv-lite": ["iconv-lite@0.6.3", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw=="], + + "ieee754": ["ieee754@1.2.1", "", {}, "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="], + "ignore": ["ignore@7.0.5", "", {}, "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg=="], + "immediate": ["immediate@3.0.6", "", {}, "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ=="], + + "import-meta-resolve": ["import-meta-resolve@4.2.0", "", {}, "sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg=="], + + "inflight": ["inflight@1.0.6", "", { "dependencies": { "once": "^1.3.0", "wrappy": "1" } }, "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA=="], + + "inherits": ["inherits@2.0.4", "", {}, "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="], + "ini": ["ini@7.0.0", "", {}, "sha512-ifK0CgjALofS5bkrcTy4RaQ9Vx2Knf/eLeIO+NaswQEpH1UblrtTSCIvN71qQDMq0PeQ/SSPojvEJp9vvvfr+w=="], "inline-style-parser": ["inline-style-parser@0.2.7", "", {}, "sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA=="], + "internmap": ["internmap@2.0.3", "", {}, "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg=="], + "intl-messageformat": ["intl-messageformat@11.2.14", "", { "dependencies": { "@formatjs/fast-memoize": "3.1.7", "@formatjs/icu-messageformat-parser": "3.5.17" } }, "sha512-9f2VD1HFuxUvMw0RxsaP8WmMns6JRTnsNB/zghTFrp11ZktiXWwVDeZBPQchBKEmo+Gx/ZhxI7Qht7YglFD4PA=="], "invariant": ["invariant@2.2.4", "", { "dependencies": { "loose-envify": "^1.0.0" } }, "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA=="], @@ -693,6 +996,10 @@ "is-potential-custom-element-name": ["is-potential-custom-element-name@1.0.1", "", {}, "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ=="], + "is-unsafe": ["is-unsafe@2.0.2", "", {}, "sha512-HgbIHPBH0KHHCcjLfGsCvhtPTVxjaAZlXjwdz7/GQC40SjSe4sfQsar8J5VFo8JOSbarkpV0OLG95bbaNd9aAQ=="], + + "isarray": ["isarray@1.0.0", "", {}, "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="], + "isexe": ["isexe@2.0.0", "", {}, "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="], "jiti": ["jiti@2.7.0", "", { "bin": "lib/jiti-cli.mjs" }, "sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ=="], @@ -705,12 +1012,24 @@ "json-schema-to-ts": ["json-schema-to-ts@3.1.1", "", { "dependencies": { "@babel/runtime": "^7.18.3", "ts-algebra": "^2.0.0" } }, "sha512-+DWg8jCJG2TEnpy7kOm/7/AxaYoaRbjVB4LFZLySZlWn8exGs3A4OLJR966cVvU26N7X9TWxl+Jsw7dzAqKT6g=="], + "jszip": ["jszip@3.10.2", "", { "dependencies": { "lie": "~3.3.0", "pako": "~1.0.2", "readable-stream": "~2.3.6", "setimmediate": "^1.0.5" } }, "sha512-3l+rb15IOWtUhU0H5MFqES/T6Kh7abYwjosBey/vD6hDt8zoEffkSC5Ws5SGtgVw3gBx2NEbhTeSW1+kWkpyTQ=="], + "jwa": ["jwa@2.0.1", "", { "dependencies": { "buffer-equal-constant-time": "^1.0.1", "ecdsa-sig-formatter": "1.0.11", "safe-buffer": "^5.0.1" } }, "sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg=="], "jws": ["jws@4.0.1", "", { "dependencies": { "jwa": "^2.0.1", "safe-buffer": "^5.0.1" } }, "sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA=="], + "katex": ["katex@0.16.47", "", { "dependencies": { "commander": "^8.3.0" }, "bin": { "katex": "cli.js" } }, "sha512-Eeo8Ys1doU1z+x8AZsPpQu+p/QcZBI5PeOo7QGQdy2x2m0MU/hYagBbGOmXwr5KVbEfVuWv9LpnQWeehogurjg=="], + + "khroma": ["khroma@2.1.0", "", {}, "sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw=="], + "kubernetes-types": ["kubernetes-types@1.30.0", "", {}, "sha512-Dew1okvhM/SQcIa2rcgujNndZwU8VnSapDgdxlYoB84ZlpAD43U6KLAFqYo17ykSFGHNPrg0qry0bP+GJd9v7Q=="], + "layout-base": ["layout-base@1.0.2", "", {}, "sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg=="], + + "lazystream": ["lazystream@1.0.1", "", { "dependencies": { "readable-stream": "^2.0.5" } }, "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw=="], + + "lie": ["lie@3.3.0", "", { "dependencies": { "immediate": "~3.0.5" } }, "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ=="], + "lightningcss": ["lightningcss@1.33.0", "", { "dependencies": { "detect-libc": "^2.0.3" }, "optionalDependencies": { "lightningcss-android-arm64": "1.33.0", "lightningcss-darwin-arm64": "1.33.0", "lightningcss-darwin-x64": "1.33.0", "lightningcss-freebsd-x64": "1.33.0", "lightningcss-linux-arm-gnueabihf": "1.33.0", "lightningcss-linux-arm64-gnu": "1.33.0", "lightningcss-linux-arm64-musl": "1.33.0", "lightningcss-linux-x64-gnu": "1.33.0", "lightningcss-linux-x64-musl": "1.33.0", "lightningcss-win32-arm64-msvc": "1.33.0", "lightningcss-win32-x64-msvc": "1.33.0" } }, "sha512-WkUDrojuJs0xkgGf2udWxa3yGBRxPtxUkB79i6aCZLRgc7PM8fZe9TosfPDcvEpQZbuFASnHYmRLBLUbmLOIIA=="], "lightningcss-android-arm64": ["lightningcss-android-arm64@1.33.0", "", { "os": "android", "cpu": "arm64" }, "sha512-gEpRTalKdosp4Bb8qWtc2iOgE5SeIHlpS1up9bFq2wAyYhl1UdTObYiHe98zEM9SQvSoqQZ1IQD0JNpg3Ml5pg=="], @@ -735,12 +1054,44 @@ "lightningcss-win32-x64-msvc": ["lightningcss-win32-x64-msvc@1.33.0", "", { "os": "win32", "cpu": "x64" }, "sha512-OlEICDx/Xl0FqSp4bry8zFnCvGpig3Gl4gCquvYwHuqJKEC1+n9NgDniFvqHGmMv1ZkqDJrDqKKSykTDX+ehuA=="], + "listenercount": ["listenercount@1.0.1", "", {}, "sha512-3mk/Zag0+IJxeDrxSgaDPy4zZ3w05PRZeJNnlWhzFz5OkX49J4krc+A8X2d2M69vGMBEX0uyl8M+W+8gH+kBqQ=="], + + "lodash-es": ["lodash-es@4.17.23", "", {}, "sha512-kVI48u3PZr38HdYz98UmfPnXl2DXrpdctLrFLCd3kOx1xUkOmpFPx7gCWWM5MPkL/fD8zb+Ph0QzjGFs4+hHWg=="], + + "lodash.defaults": ["lodash.defaults@4.2.0", "", {}, "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ=="], + + "lodash.difference": ["lodash.difference@4.5.0", "", {}, "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA=="], + + "lodash.escaperegexp": ["lodash.escaperegexp@4.1.2", "", {}, "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw=="], + + "lodash.flatten": ["lodash.flatten@4.4.0", "", {}, "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g=="], + + "lodash.groupby": ["lodash.groupby@4.6.0", "", {}, "sha512-5dcWxm23+VAoz+awKmBaiBvzox8+RqMgFhi7UvX9DHZr2HdxHXM/Wrf8cfKpsW37RNrvtPn6hSwNqurSILbmJw=="], + + "lodash.isboolean": ["lodash.isboolean@3.0.3", "", {}, "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg=="], + + "lodash.isequal": ["lodash.isequal@4.5.0", "", {}, "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ=="], + + "lodash.isfunction": ["lodash.isfunction@3.0.9", "", {}, "sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw=="], + + "lodash.isnil": ["lodash.isnil@4.0.0", "", {}, "sha512-up2Mzq3545mwVnMhTDMdfoG1OurpA/s5t88JmQX809eH3C8491iu2sfKhTfhQtKY78oPNhiaHJUpT/dUDAAtng=="], + + "lodash.isplainobject": ["lodash.isplainobject@4.0.6", "", {}, "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA=="], + + "lodash.isundefined": ["lodash.isundefined@3.0.1", "", {}, "sha512-MXB1is3s899/cD8jheYYE2V9qTHwKvt+npCwpD+1Sxm3Q3cECXCiYHjeHWXNwr6Q0SOBPrYUDxendrO6goVTEA=="], + + "lodash.union": ["lodash.union@4.6.0", "", {}, "sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw=="], + + "lodash.uniq": ["lodash.uniq@4.5.0", "", {}, "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ=="], + "long": ["long@5.3.2", "", {}, "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA=="], "longest-streak": ["longest-streak@3.1.0", "", {}, "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g=="], "loose-envify": ["loose-envify@1.4.0", "", { "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" }, "bin": { "loose-envify": "cli.js" } }, "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q=="], + "lop": ["lop@0.4.2", "", { "dependencies": { "duck": "^0.1.12", "option": "~0.2.1", "underscore": "^1.13.1" } }, "sha512-RefILVDQ4DKoRZsJ4Pj22TxE3omDO47yFpkIBoDKzkqPRISs5U1cnAdg/5583YPkWPaLIYHOKRMQSvjFsO26cw=="], + "lru-cache": ["lru-cache@11.5.2", "", {}, "sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g=="], "lucide-react": ["lucide-react@1.39.0", "", { "peerDependencies": { "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-y8nXoEwvqqIsF927NBWXODa4bfMrcUeEb/9sgpwFqg0gUjgn3j5Hznk+v7STmPgZ2iQ11JKlbQGdFRuTOwvYkA=="], @@ -749,6 +1100,8 @@ "magic-string": ["magic-string@0.30.21", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="], + "mammoth": ["mammoth@1.13.0", "", { "dependencies": { "@xmldom/xmldom": "^0.8.6", "argparse": "~1.0.3", "base64-js": "^1.5.1", "dingbat-to-unicode": "^1.0.1", "jszip": "^3.7.1", "lop": "^0.4.2", "underscore": "^1.13.1", "xmlbuilder": "^10.0.0" }, "bin": { "mammoth": "bin/mammoth" } }, "sha512-2cawcYFcP7ISfXbBcL9lmVgTNWo88v/52ND1gnywHtVT/pX0//puPnf0iMPV9ZgmuvNOE+zkIhDgZ9M2c2dDDg=="], + "markdown-table": ["markdown-table@3.0.4", "", {}, "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw=="], "marked": ["marked@18.0.5", "", { "bin": "bin/marked.js" }, "sha512-S6GcvALHg6K4ohtu4E7x0a1AqhAjp6cV8KhLSyN9qVapnzJkusVBxZRcIU9AeYsbe6P1hKDusSbEOzGyyuce6w=="], @@ -787,6 +1140,8 @@ "mdn-data": ["mdn-data@2.27.1", "", {}, "sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ=="], + "mermaid": ["mermaid@12.0.0", "", { "dependencies": { "@braintree/sanitize-url": "^7.1.2", "@iconify/utils": "^3.0.2", "@mermaid-js/parser": "^2.0.0", "@types/d3": "^7.4.3", "@upsetjs/venn.js": "^2.0.0", "chevrotain": "~11.1.2", "cytoscape": "^3.34.0", "cytoscape-cose-bilkent": "^4.1.0", "cytoscape-fcose": "^2.2.0", "d3": "^7.9.0", "d3-sankey": "^0.12.3", "dagre-d3-es": "7.0.14", "dayjs": "^1.11.21", "dompurify": "^3.4.12", "elkjs": "^0.9.3", "es-toolkit": "^1.45.1", "katex": "^0.16.47", "khroma": "^2.1.0", "marked": "^16.3.0", "roughjs": "^4.6.6", "stylis": "^4.3.6", "ts-dedent": "^2.2.0", "uuid": "^11.1.0 || ^12 || ^13 || ^14.0.0" } }, "sha512-/wQXC9iBxoGV8p3erbvaXs9h77VyLDBH6GdayVjj3hEcSQhFU4N1WUhUppotCEqlIxI2pRMwjwBSwTB1MfZBgQ=="], + "micromark": ["micromark@4.0.2", "", { "dependencies": { "@types/debug": "^4.0.0", "debug": "^4.0.0", "decode-named-character-reference": "^1.0.0", "devlop": "^1.0.0", "micromark-core-commonmark": "^2.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-chunked": "^2.0.0", "micromark-util-combine-extensions": "^2.0.0", "micromark-util-decode-numeric-character-reference": "^2.0.0", "micromark-util-encode": "^2.0.0", "micromark-util-normalize-identifier": "^2.0.0", "micromark-util-resolve-all": "^2.0.0", "micromark-util-sanitize-uri": "^2.0.0", "micromark-util-subtokenize": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA=="], "micromark-core-commonmark": ["micromark-core-commonmark@2.0.3", "", { "dependencies": { "decode-named-character-reference": "^1.0.0", "devlop": "^1.0.0", "micromark-factory-destination": "^2.0.0", "micromark-factory-label": "^2.0.0", "micromark-factory-space": "^2.0.0", "micromark-factory-title": "^2.0.0", "micromark-factory-whitespace": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-chunked": "^2.0.0", "micromark-util-classify-character": "^2.0.0", "micromark-util-html-tag-name": "^2.0.0", "micromark-util-normalize-identifier": "^2.0.0", "micromark-util-resolve-all": "^2.0.0", "micromark-util-subtokenize": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg=="], @@ -847,6 +1202,8 @@ "minimatch": ["minimatch@10.2.5", "", { "dependencies": { "brace-expansion": "^5.0.5" } }, "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg=="], + "mkdirp": ["mkdirp@3.0.1", "", { "bin": { "mkdirp": "dist/cjs/src/bin.js" } }, "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg=="], + "ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], "msgpackr": ["msgpackr@2.0.5", "", { "optionalDependencies": { "msgpackr-extract": "^3.0.4" } }, "sha512-cef05H/dSYpLpqp3sj/qyZh5vhUYCalnaLO7j1yOmpsR0y/XwLVtK7r5gn+U/F7CTEfMowcGhlUQJDLcLf7jcA=="], @@ -867,24 +1224,40 @@ "node-pty": ["node-pty@1.2.0-beta.15", "", { "dependencies": { "node-addon-api": "^7.1.0" } }, "sha512-vORSzHXi4Ofl7HemVWpuudLqCPdaQb4LfpRCUpE5HPxhp4JYscl8zZwxh11p26v2wvW24WMwnMfLjhRLixrfxA=="], + "normalize-path": ["normalize-path@3.0.0", "", {}, "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="], + "obug": ["obug@2.1.4", "", {}, "sha512-4a+OsYv9UktOJKE+l1A4OufDgdRF9PifWj+tJnHURo/P+WOxpG4GzUFL9qCalmWauao6ogiG+QvnCovwPoyAWA=="], + "once": ["once@1.4.0", "", { "dependencies": { "wrappy": "1" } }, "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w=="], + "openai": ["openai@6.40.0", "", { "peerDependencies": { "ws": "^8.18.0", "zod": "^3.25 || ^4.0" }, "optionalPeers": ["ws", "zod"] }, "sha512-MWtTjd/gQt4jpbji61NTgFWJLoY/PdRJ6wG9/ZDRMYNMlBKrCrSlkLI+KgHP1vR1qT6LKSAyAqIxno6lcK9JiA=="], + "option": ["option@0.2.4", "", {}, "sha512-pkEqbDyl8ou5cpq+VsnQbe/WlEy5qS7xPzMS1U55OCG9KPvwFD46zDbxQIj3egJSFc3D+XhYOPUzz49zQAVy7A=="], + "p-retry": ["p-retry@4.6.2", "", { "dependencies": { "@types/retry": "0.12.0", "retry": "^0.13.1" } }, "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ=="], + "package-manager-detector": ["package-manager-detector@1.8.0", "", {}, "sha512-yQA4H19AmPEoMUeavPMDIe1higySl/gH/yaQrkT/s07Qp+7pp2hYz30N3z2l5BkjVkF9Ow6o0wjJamm2y7Sn0A=="], + + "pako": ["pako@1.0.11", "", {}, "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw=="], + "parse-entities": ["parse-entities@4.0.2", "", { "dependencies": { "@types/unist": "^2.0.0", "character-entities-legacy": "^3.0.0", "character-reference-invalid": "^2.0.0", "decode-named-character-reference": "^1.0.0", "is-alphanumerical": "^2.0.0", "is-decimal": "^2.0.0", "is-hexadecimal": "^2.0.0" } }, "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw=="], "parse5": ["parse5@8.0.1", "", { "dependencies": { "entities": "^8.0.0" } }, "sha512-z1e/HMG90obSGeidlli3hj7cbocou0/wa5HacvI3ASx34PecNjNQeaHNo5WIZpWofN9kgkqV1q5YvXe3F0FoPw=="], "partial-json": ["partial-json@0.1.7", "", {}, "sha512-Njv/59hHaokb/hRUjce3Hdv12wd60MtM9Z5Olmn+nehe0QDAsRtRbJPvJ0Z91TusF0SuZRIvnM+S4l6EIP8leA=="], - "path-expression-matcher": ["path-expression-matcher@1.5.0", "", {}, "sha512-cbrerZV+6rvdQrrD+iGMcZFEiiSrbv9Tfdkvnusy6y0x0GKBXREFg/Y65GhIfm0tnLntThhzCnfKwp1WRjeCyQ=="], + "path-data-parser": ["path-data-parser@0.1.0", "", {}, "sha512-NOnmBpt5Y2RWbuv0LMzsayp3lVylAHLPUTut412ZA3l+C4uw4ZVkQbjShYCQ8TCpUMdPapr4YjUqLYD6v68j+w=="], + + "path-expression-matcher": ["path-expression-matcher@1.6.2", "", {}, "sha512-enSlaiat05iasnzmgNxRj8reFdj3puY2QpNgP1aPIaVfT6nn9ICuPoFlKHk8EN22HcwewshO+mN2DGbkCEOtqQ=="], + + "path-is-absolute": ["path-is-absolute@1.0.1", "", {}, "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg=="], "path-key": ["path-key@3.1.1", "", {}, "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="], "pathe": ["pathe@2.0.3", "", {}, "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w=="], + "pdfjs-dist": ["pdfjs-dist@6.3.289", "", { "optionalDependencies": { "@napi-rs/canvas": "^1.0.0" } }, "sha512-ZHjSVpDa3D6izMq8/04lvkhkATUmL9px6ChPaXc1k6nU2Mrhlg1/7F0bdUqCwUjw3NsPTfPZsMDUU6ZIcRaeQw=="], + "picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="], "picomatch": ["picomatch@4.0.5", "", {}, "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A=="], @@ -893,10 +1266,16 @@ "playwright-core": ["playwright-core@1.62.1", "", { "bin": { "playwright-core": "cli.js" } }, "sha512-wPYSwEBJY9GHraISXqyqtx0na0LpO3XEX7jNDhntbex7tzUS7kLnZsOlFruFJB4Hi/rhDMjXGqHewDZ68nYZVw=="], + "points-on-curve": ["points-on-curve@0.2.0", "", {}, "sha512-0mYKnYYe9ZcqMCWhUjItv/oHjvgEsfKvnUTg8sAtnHr3GVy7rGkXCb6d5cSyqrWqL4k81b9CPg3urd+T7aop3A=="], + + "points-on-path": ["points-on-path@0.2.1", "", { "dependencies": { "path-data-parser": "0.1.0", "points-on-curve": "0.2.0" } }, "sha512-25ClnWWuw7JbWZcgqY/gJ4FQWadKxGWk+3kR/7kD0tCaDtPPMj7oHu2ToLaVhfpnHrZzYby2w6tUA0eOIuUg8g=="], + "postcss": ["postcss@8.5.25", "", { "dependencies": { "nanoid": "^3.3.16", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-DTPx3RWSSnWyzLxQnlH0rJP+EW5ekl16ZU4/psbIhA0e53kJfdgaN5vKM+xP7yJtXVu+nfdVFmlgFDEKAe4Pyw=="], "pretty-format": ["pretty-format@27.5.1", "", { "dependencies": { "ansi-regex": "^5.0.1", "ansi-styles": "^5.0.0", "react-is": "^17.0.1" } }, "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ=="], + "process-nextick-args": ["process-nextick-args@2.0.1", "", {}, "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="], + "proper-lockfile": ["proper-lockfile@4.1.2", "", { "dependencies": { "graceful-fs": "^4.2.4", "retry": "^0.12.0", "signal-exit": "^3.0.2" } }, "sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA=="], "property-information": ["property-information@7.2.0", "", {}, "sha512-IAtzIB6sUiWaJYrX9smp3V46pBGbBeLFRGdh25kg1334VcBlD8HzhPeNIWQH9zhGmo2itIe25EHt9dQP7G5hmg=="], @@ -917,10 +1296,16 @@ "react-markdown": ["react-markdown@10.1.0", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", "devlop": "^1.0.0", "hast-util-to-jsx-runtime": "^2.0.0", "html-url-attributes": "^3.0.0", "mdast-util-to-hast": "^13.0.0", "remark-parse": "^11.0.0", "remark-rehype": "^11.0.0", "unified": "^11.0.0", "unist-util-visit": "^5.0.0", "vfile": "^6.0.0" }, "peerDependencies": { "@types/react": ">=18", "react": ">=18" } }, "sha512-qKxVopLT/TyA6BX3Ue5NwabOsAzm0Q7kAPwq6L+wWDwisYs7R8vZ0nRXqq6rkueboxpkjvLGU9fWifiX/ZZFxQ=="], + "readable-stream": ["readable-stream@3.6.2", "", { "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" } }, "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA=="], + + "readdir-glob": ["readdir-glob@1.1.3", "", { "dependencies": { "minimatch": "^5.1.0" } }, "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA=="], + "redis-errors": ["redis-errors@1.2.0", "", {}, "sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w=="], "redis-parser": ["redis-parser@3.0.0", "", { "dependencies": { "redis-errors": "^1.0.0" } }, "sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A=="], + "rehype-raw": ["rehype-raw@7.0.0", "", { "dependencies": { "@types/hast": "^3.0.0", "hast-util-raw": "^9.0.0", "vfile": "^6.0.0" } }, "sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww=="], + "rehype-sanitize": ["rehype-sanitize@6.0.0", "", { "dependencies": { "@types/hast": "^3.0.0", "hast-util-sanitize": "^5.0.0" } }, "sha512-CsnhKNsyI8Tub6L4sm5ZFsme4puGfc6pYylvXo1AeqaGbjOYyzNv3qZPwvs0oMJ39eryyeOdmxwUIo94IpEhqg=="], "remark-breaks": ["remark-breaks@4.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-newline-to-break": "^2.0.0", "unified": "^11.0.0" } }, "sha512-IjEjJOkH4FuJvHZVIW0QCDWxcG96kCq7An/KVH2NfJe6rKZU2AsHeB3OEjPNRxi4QC34Xdx7I2KGYn6IpT7gxQ=="], @@ -937,16 +1322,28 @@ "retry": ["retry@0.12.0", "", {}, "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow=="], + "rimraf": ["rimraf@2.7.1", "", { "dependencies": { "glob": "^7.1.3" }, "bin": { "rimraf": "./bin.js" } }, "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w=="], + + "robust-predicates": ["robust-predicates@3.0.3", "", {}, "sha512-NS3levdsRIUOmiJ8FZWCP7LG3QpJyrs/TE0Zpf1yvZu8cAJJ6QMW92H1c7kWpdIHo8RvmLxN/o2JXTKHp74lUA=="], + "rolldown": ["rolldown@1.2.2", "", { "dependencies": { "@oxc-project/types": "=0.142.0", "@rolldown/pluginutils": "^1.0.0" }, "optionalDependencies": { "@rolldown/binding-android-arm64": "1.2.2", "@rolldown/binding-darwin-arm64": "1.2.2", "@rolldown/binding-darwin-x64": "1.2.2", "@rolldown/binding-freebsd-x64": "1.2.2", "@rolldown/binding-linux-arm-gnueabihf": "1.2.2", "@rolldown/binding-linux-arm64-gnu": "1.2.2", "@rolldown/binding-linux-arm64-musl": "1.2.2", "@rolldown/binding-linux-ppc64-gnu": "1.2.2", "@rolldown/binding-linux-s390x-gnu": "1.2.2", "@rolldown/binding-linux-x64-gnu": "1.2.2", "@rolldown/binding-linux-x64-musl": "1.2.2", "@rolldown/binding-openharmony-arm64": "1.2.2", "@rolldown/binding-win32-arm64-msvc": "1.2.2", "@rolldown/binding-win32-x64-msvc": "1.2.2" }, "bin": "bin/cli.mjs" }, "sha512-opwpo1tQBAcpSUJDt94B7hhLNGOKjCdE//XXjeLrnx9b83bjnw45tXdg1b09yEw/VLFBJGZpwRULMmOZo7ol+A=="], - "safe-buffer": ["safe-buffer@5.2.1", "", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="], + "roughjs": ["roughjs@4.6.6", "", { "dependencies": { "hachure-fill": "^0.5.2", "path-data-parser": "^0.1.0", "points-on-curve": "^0.2.0", "points-on-path": "^0.2.1" } }, "sha512-ZUz/69+SYpFN/g/lUlo2FXcIjRkSu3nDarreVdGGndHEBJ6cXPdKguS8JGxwj5HA5xIbVKSmLgr5b3AWxtRfvQ=="], + + "rw": ["rw@1.3.3", "", {}, "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ=="], - "saxes": ["saxes@6.0.0", "", { "dependencies": { "xmlchars": "^2.2.0" } }, "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA=="], + "safe-buffer": ["safe-buffer@5.1.2", "", {}, "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="], + + "safer-buffer": ["safer-buffer@2.1.2", "", {}, "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="], + + "saxes": ["saxes@5.0.1", "", { "dependencies": { "xmlchars": "^2.2.0" } }, "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw=="], "scheduler": ["scheduler@0.27.0", "", {}, "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q=="], "semver": ["semver@7.8.0", "", { "bin": "bin/semver.js" }, "sha512-AcM7dV/5ul4EekoQ29Agm5vri8JNqRyj39o0qpX6vDF2GZrtutZl5RwgD1XnZjiTAfncsJhMI48QQH3sN87YNA=="], + "setimmediate": ["setimmediate@1.0.5", "", {}, "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA=="], + "shebang-command": ["shebang-command@2.0.0", "", { "dependencies": { "shebang-regex": "^3.0.0" } }, "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA=="], "shebang-regex": ["shebang-regex@3.0.0", "", {}, "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="], @@ -959,6 +1356,8 @@ "space-separated-tokens": ["space-separated-tokens@2.0.2", "", {}, "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q=="], + "sprintf-js": ["sprintf-js@1.0.3", "", {}, "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g=="], + "stackback": ["stackback@0.0.2", "", {}, "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw=="], "standard-as-callback": ["standard-as-callback@2.1.0", "", {}, "sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A=="], @@ -967,9 +1366,11 @@ "std-env": ["std-env@4.2.0", "", {}, "sha512-oCUKSupKTHX53EyjDtuZQ64pjLJ6yYCtpmEw0goYxtjG9KpbRe8KAsl2tBUGU9DyMcJ0RwJ8GqJAFzMXcXW1Rw=="], + "string_decoder": ["string_decoder@1.3.0", "", { "dependencies": { "safe-buffer": "~5.2.0" } }, "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA=="], + "stringify-entities": ["stringify-entities@4.0.4", "", { "dependencies": { "character-entities-html4": "^2.0.0", "character-entities-legacy": "^3.0.0" } }, "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg=="], - "strnum": ["strnum@2.3.0", "", {}, "sha512-ums3KNd42PGyx5xaoVTO1mjU1bH3NpY4vsrVlnv9PNGqQj8wd7rJ6nEypLrJ7z5vxK5RP0yMLo6J/Gsm62DI5Q=="], + "strnum": ["strnum@2.4.2", "", { "dependencies": { "anynum": "^1.0.1" } }, "sha512-rDG3Ah4TV0k1hWvLSzkZtMmLN9+eS+h3knq4MP6A42Y3Yh5qGNnOUs1jJkoSr8FG5dsL28c7KgkIBzSEykqtuw=="], "style-to-js": ["style-to-js@1.1.21", "", { "dependencies": { "style-to-object": "1.0.14" } }, "sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ=="], @@ -977,12 +1378,16 @@ "styleq": ["styleq@0.2.1", "", {}, "sha512-L0TR0NQb+X4/ktDEKmjWyp27gla+LUYi/by5k5SjKXf6/pvZP7wbwEB5J+tqxdFVPgzbsuz+d4RTScO/QZquBw=="], + "stylis": ["stylis@4.4.0", "", {}, "sha512-5Z9ZpRzfuH6l/UAvCPAPUo3665Nk2wLaZU3x+TLHKVzIz33+sbJqbtrYoC3KD4/uVOr2Zp+L0LySezP9OHV9yA=="], + "symbol-tree": ["symbol-tree@3.2.4", "", {}, "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw=="], "tailwindcss": ["tailwindcss@4.3.3", "", {}, "sha512-gOhV3P7ufE62QDGg1zVaTgCR+EtPv92k2nIhVcVKcLmxT1sUBsQGhnZj175j+MqRt4zLF7ic+sCYjfhxMxj7YQ=="], "tapable": ["tapable@2.3.3", "", {}, "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A=="], + "tar-stream": ["tar-stream@2.2.0", "", { "dependencies": { "bl": "^4.0.3", "end-of-stream": "^1.4.1", "fs-constants": "^1.0.0", "inherits": "^2.0.3", "readable-stream": "^3.1.1" } }, "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ=="], + "tinybench": ["tinybench@2.9.0", "", {}, "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg=="], "tinyexec": ["tinyexec@1.3.0", "", {}, "sha512-QKAl9m8gWWGHV8jZcPeym6j+XULi6tOf1mT83WYJ4Lk2ytW/uwAWkrP0uFsdoYMdueVJ0qs26wZ+23xeB4ibNQ=="], @@ -995,24 +1400,32 @@ "tldts-core": ["tldts-core@7.4.11", "", {}, "sha512-CW3WN2rIIE/Of21mulhgnGOwoDyEFNygyIBOONSdyAuSATgMMUCpLeUlB+E8sAwA5xRV9hYPl+kyZ9citHCaKg=="], + "tmp": ["tmp@0.2.7", "", {}, "sha512-e0votIpp4Uo2AJYSzVHV6xCcawuiez3DzqDAbrTc3YxBkplN6e+dM13ZeIcZnDg/QpSuU2zfZ3rzwY8ukEnaXw=="], + "toml": ["toml@4.3.0", "", {}, "sha512-lVb8X9BsPVuH0M4BKeS91tXAmJvCjQ5UIyAbQFaxkKGyUFK2RPkhwaFSQH8vbpl1d23eu/IBH+dwVMHWaq9A5A=="], "tough-cookie": ["tough-cookie@6.0.2", "", { "dependencies": { "tldts": "^7.0.5" } }, "sha512-exgYmnmL/sJpR3upZfXG5PoatXQii55xAiXGXzY+sROLZ/Y+SLcp9PgJNI9Vz37HpQ74WvDcLT8eqm+kV3FzrA=="], "tr46": ["tr46@6.0.0", "", { "dependencies": { "punycode": "^2.3.1" } }, "sha512-bLVMLPtstlZ4iMQHpFHTR7GAGj2jxi8Dg0s2h2MafAE4uSWF98FC/3MomU51iQAMf8/qDUbKWf5GxuvvVcXEhw=="], + "traverse": ["traverse@0.3.9", "", {}, "sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ=="], + "trim-lines": ["trim-lines@3.0.1", "", {}, "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg=="], "trough": ["trough@2.2.0", "", {}, "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw=="], "ts-algebra": ["ts-algebra@2.0.0", "", {}, "sha512-FPAhNPFMrkwz76P7cdjdmiShwMynZYN6SgOujD1urY4oNm80Ou9oMdmbR45LotcKOXoy7wSmHkRFE6Mxbrhefw=="], + "ts-dedent": ["ts-dedent@2.3.0", "", {}, "sha512-JfJeIHke7y2egdGGgRAvpCwYFUsHlM2gPcrVOxFkznt/4uzQ7HFmvE63iFHVLBJNDuyDOQgijDK/tXH/f6Msjg=="], + "tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], "typebox": ["typebox@1.3.7", "", {}, "sha512-meKuifc33Pccx0O6PdIzYMq3Og8zvP4TIi/a+Bw3AEMZMxOD0+RHGQvpglEe6Zdy3wZ8nqn/j95h8LUZLk/6Hg=="], "typescript": ["typescript@7.0.2", "", { "optionalDependencies": { "@typescript/typescript-aix-ppc64": "7.0.2", "@typescript/typescript-darwin-arm64": "7.0.2", "@typescript/typescript-darwin-x64": "7.0.2", "@typescript/typescript-freebsd-arm64": "7.0.2", "@typescript/typescript-freebsd-x64": "7.0.2", "@typescript/typescript-linux-arm": "7.0.2", "@typescript/typescript-linux-arm64": "7.0.2", "@typescript/typescript-linux-loong64": "7.0.2", "@typescript/typescript-linux-mips64el": "7.0.2", "@typescript/typescript-linux-ppc64": "7.0.2", "@typescript/typescript-linux-riscv64": "7.0.2", "@typescript/typescript-linux-s390x": "7.0.2", "@typescript/typescript-linux-x64": "7.0.2", "@typescript/typescript-netbsd-arm64": "7.0.2", "@typescript/typescript-netbsd-x64": "7.0.2", "@typescript/typescript-openbsd-arm64": "7.0.2", "@typescript/typescript-openbsd-x64": "7.0.2", "@typescript/typescript-sunos-x64": "7.0.2", "@typescript/typescript-win32-arm64": "7.0.2", "@typescript/typescript-win32-x64": "7.0.2" }, "bin": { "tsc": "bin/tsc" } }, "sha512-8FYau96o3NKOhbjKi/qNvG/W5jhzxkbdm5sj9AbZ/5T5sWqn3hJgLfGx27sRKZWTvyzCP8dLRBTf5tBTSRVUNA=="], + "underscore": ["underscore@1.13.8", "", {}, "sha512-DXtD3ZtEQzc7M8m4cXotyHR+FAS18C64asBYY5vqZexfYryNNnDc02W4hKg3rdQuqOYas1jkseX0+nZXjTXnvQ=="], + "undici": ["undici@8.9.0", "", {}, "sha512-aWZpUj7XoGonMClx4gdDRfgBjqeA+F473aDmROQQbM9n6PRfK/u1q/a0X4wMTgcHfT8H6fpbt98PFuDUwFg2YA=="], "undici-types": ["undici-types@8.3.0", "", {}, "sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ=="], @@ -1029,12 +1442,18 @@ "unist-util-visit-parents": ["unist-util-visit-parents@6.0.2", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0" } }, "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ=="], + "unzipper": ["unzipper@0.10.14", "", { "dependencies": { "big-integer": "^1.6.17", "binary": "~0.3.0", "bluebird": "~3.4.1", "buffer-indexof-polyfill": "~1.0.0", "duplexer2": "~0.1.4", "fstream": "^1.0.12", "graceful-fs": "^4.2.2", "listenercount": "~1.0.1", "readable-stream": "~2.3.6", "setimmediate": "~1.0.4" } }, "sha512-ti4wZj+0bQTiX2KmKWuwj7lhV+2n//uXEotUmGuQqrbVZSEGFMbI68+c6JCQ8aAmUWYvtHEz2A8K6wXvueR/6g=="], + "use-sync-external-store": ["use-sync-external-store@1.6.0", "", { "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w=="], - "uuid": ["uuid@14.0.1", "", { "bin": "dist-node/bin/uuid" }, "sha512-6ZxzVpzDXDa3bJWaHilVayA+BH/1zmxCJoVgvmqJnid/gPoKHxUrS/aC/T6LGQtNHT+XHG9fXPJB4d+IrU30Ew=="], + "util-deprecate": ["util-deprecate@1.0.2", "", {}, "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="], + + "uuid": ["uuid@8.3.2", "", { "bin": { "uuid": "dist/bin/uuid" } }, "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg=="], "vfile": ["vfile@6.0.3", "", { "dependencies": { "@types/unist": "^3.0.0", "vfile-message": "^4.0.0" } }, "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q=="], + "vfile-location": ["vfile-location@5.0.3", "", { "dependencies": { "@types/unist": "^3.0.0", "vfile": "^6.0.0" } }, "sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg=="], + "vfile-message": ["vfile-message@4.0.3", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-stringify-position": "^4.0.0" } }, "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw=="], "vite": ["vite@8.2.0", "", { "dependencies": { "lightningcss": "^1.33.0", "picomatch": "^4.0.5", "postcss": "^8.5.23", "rolldown": "~1.2.0", "tinyglobby": "^0.2.17" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", "@vitejs/devtools": "^0.4.0", "esbuild": "^0.27.0 || ^0.28.0", "jiti": ">=1.21.0", "less": "^4.0.0", "sass": "^1.70.0", "sass-embedded": "^1.70.0", "stylus": ">=0.54.8", "sugarss": "^5.0.0", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@vitejs/devtools", "esbuild", "jiti", "less", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx"], "bin": "bin/vite.js" }, "sha512-pn+CFpM0lwDeKwmOq1ZaBK/9sjorZcgqxki6MbY/jPEVd9vichIlmlD4HmQ5wdP5EgqQCFRaACBxMC7uEGc6lQ=="], @@ -1043,6 +1462,8 @@ "w3c-xmlserializer": ["w3c-xmlserializer@5.0.0", "", { "dependencies": { "xml-name-validator": "^5.0.0" } }, "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA=="], + "web-namespaces": ["web-namespaces@2.0.1", "", {}, "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ=="], + "web-streams-polyfill": ["web-streams-polyfill@3.3.3", "", {}, "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw=="], "webidl-conversions": ["webidl-conversions@8.0.1", "", {}, "sha512-BMhLD/Sw+GbJC21C/UgyaZX41nPt8bUTg+jWyDeg7e7YN4xOM05YPSIXceACnXVtqyEw/LMClUQMtMZ+PGGpqQ=="], @@ -1055,24 +1476,42 @@ "why-is-node-running": ["why-is-node-running@2.3.0", "", { "dependencies": { "siginfo": "^2.0.0", "stackback": "0.0.2" }, "bin": "cli.js" }, "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w=="], + "wrappy": ["wrappy@1.0.2", "", {}, "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="], + "ws": ["ws@8.21.1", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": ">=5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-+0NTnW77fFN/DjQi6k/Sq/Yvk4Sgajw7urW8V+asjXnRgDs9gyGkdb7EzgfhA4goXsRIZKE28fzIXBHEzhuiWw=="], "xml-name-validator": ["xml-name-validator@5.0.0", "", {}, "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg=="], - "xml-naming": ["xml-naming@0.1.0", "", {}, "sha512-k8KO9hrMyNk6tUWqUfkTEZbezRRpONVOzUTnc97VnCvyj6Tf9lyUR9EDAIeiVLv56jsMcoXEwjW8Kv5yPY52lw=="], + "xml-naming": ["xml-naming@0.3.0", "", {}, "sha512-ghig2TBE/H11aOVgmahA3MhimvkBr6JIYknH/Dhdk10nXwdbIqBJsbfMxpvFPG8bAw77gN29aQWvKpmVoPlvPQ=="], + + "xmlbuilder": ["xmlbuilder@10.1.1", "", {}, "sha512-OyzrcFLL/nb6fMGHbiRDuPup9ljBycsdCypwuyg5AAHvyWzGfChJpCXMG88AGTIMFhGZ9RccFN1e6lhg3hkwKg=="], "xmlchars": ["xmlchars@2.2.0", "", {}, "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw=="], "yaml": ["yaml@2.9.0", "", { "bin": "bin.mjs" }, "sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA=="], + "zip-stream": ["zip-stream@4.1.1", "", { "dependencies": { "archiver-utils": "^3.0.4", "compress-commons": "^4.1.2", "readable-stream": "^3.6.0" } }, "sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ=="], + "zod": ["zod@4.4.3", "", {}, "sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ=="], "zustand": ["zustand@5.0.15", "", { "peerDependencies": { "@types/react": ">=18.0.0", "immer": ">=9.0.6", "react": ">=18.0.0", "use-sync-external-store": ">=1.2.0" }, "optionalPeers": ["@types/react", "immer", "react", "use-sync-external-store"] }, "sha512-MpSEjRiBkA9crSYeOUH32rJC7SVqAbm0Fqcqge/bUi2PPoLcBWKOsG+C8mevmpr8TwXHBVkChbbJiyvkE+i/3A=="], "zwitch": ["zwitch@2.0.4", "", {}, "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A=="], + "@antfu/install-pkg/tinyexec": ["tinyexec@1.3.1", "", {}, "sha512-GCvB3aoys96IuDFBMcTB46JOR6mdMtAToqwiW8JlWhsoh1mhHi/xn9ss/Dg7N555GiJyEt2qzoG/NHCwM6h1EA=="], + + "@aws-sdk/xml-builder/@nodable/entities": ["@nodable/entities@2.1.0", "", {}, "sha512-nyT7T3nbMyBI/lvr6L5TyWbFJAI9FTgVRakNoBqCD+PmID8DzFrrNdLLtHMwMszOtqZa8PAOV24ZqDnQrhQINA=="], + + "@aws-sdk/xml-builder/fast-xml-parser": ["fast-xml-parser@5.7.3", "", { "dependencies": { "@nodable/entities": "^2.1.0", "fast-xml-builder": "^1.1.7", "path-expression-matcher": "^1.5.0", "strnum": "^2.2.3" }, "bin": { "fxparser": "src/cli/cli.js" } }, "sha512-C0AaNuC+mscy6vrAQKAc/rMq+zAPHodfHGZu4sGVehvAQt/JLG1O5zEcYcXSY5zSqr4YVgxsB+pHXTq0i7eDlg=="], + + "@earendil-works/pi-coding-agent/highlight.js": ["highlight.js@10.7.3", "", {}, "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A=="], + "@effect/platform-node/undici": ["undici@8.10.0", "", {}, "sha512-HvltHd7avK13QIw/oLe4qoOLyoVSoafqJ2jYOrtMRBkbYT31eiBQ8O0ehRKZiEZCMEyLFQNIADpgCWC5fALvYQ=="], + "@fast-csv/format/@types/node": ["@types/node@14.18.63", "", {}, "sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ=="], + + "@fast-csv/parse/@types/node": ["@types/node@14.18.63", "", {}, "sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ=="], + "@google/genai/ws": ["ws@8.21.0", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": ">=5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g=="], "@tailwindcss/node/lightningcss": ["lightningcss@1.32.0", "", { "dependencies": { "detect-libc": "^2.0.3" }, "optionalDependencies": { "lightningcss-android-arm64": "1.32.0", "lightningcss-darwin-arm64": "1.32.0", "lightningcss-darwin-x64": "1.32.0", "lightningcss-freebsd-x64": "1.32.0", "lightningcss-linux-arm-gnueabihf": "1.32.0", "lightningcss-linux-arm64-gnu": "1.32.0", "lightningcss-linux-arm64-musl": "1.32.0", "lightningcss-linux-x64-gnu": "1.32.0", "lightningcss-linux-x64-musl": "1.32.0", "lightningcss-win32-arm64-msvc": "1.32.0", "lightningcss-win32-x64-msvc": "1.32.0" } }, "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ=="], @@ -1091,12 +1530,52 @@ "@testing-library/dom/@babel/runtime": ["@babel/runtime@7.29.7", "", {}, "sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw=="], + "archiver-utils/readable-stream": ["readable-stream@2.3.8", "", { "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA=="], + + "cytoscape-fcose/cose-base": ["cose-base@2.2.0", "", { "dependencies": { "layout-base": "^2.0.0" } }, "sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g=="], + + "d3-dsv/commander": ["commander@7.2.0", "", {}, "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw=="], + + "d3-sankey/d3-array": ["d3-array@2.12.1", "", { "dependencies": { "internmap": "^1.0.0" } }, "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ=="], + + "d3-sankey/d3-shape": ["d3-shape@1.3.7", "", { "dependencies": { "d3-path": "1" } }, "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw=="], + + "dagre-d3-es/lodash-es": ["lodash-es@4.18.1", "", {}, "sha512-J8xewKD/Gk22OZbhpOVSwcs60zhd95ESDwezOFuA3/099925PdHJ7OFHNTGtajL3AlZkykD32HykiMo+BIBI8A=="], + "data-urls/whatwg-url": ["whatwg-url@16.0.1", "", { "dependencies": { "@exodus/bytes": "^1.11.0", "tr46": "^6.0.0", "webidl-conversions": "^8.0.1" } }, "sha512-1to4zXBxmXHV3IiSSEInrreIlu02vUOvrhxJJH5vcxYTBDAx51cqZiKdyTxlecdKNSjj8EcxGBxNf6Vg+945gw=="], + "duplexer2/readable-stream": ["readable-stream@2.3.8", "", { "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA=="], + + "ecdsa-sig-formatter/safe-buffer": ["safe-buffer@5.2.1", "", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="], + + "effect/uuid": ["uuid@14.0.1", "", { "bin": "dist-node/bin/uuid" }, "sha512-6ZxzVpzDXDa3bJWaHilVayA+BH/1zmxCJoVgvmqJnid/gPoKHxUrS/aC/T6LGQtNHT+XHG9fXPJB4d+IrU30Ew=="], + + "fast-xml-builder/path-expression-matcher": ["path-expression-matcher@1.5.0", "", {}, "sha512-cbrerZV+6rvdQrrD+iGMcZFEiiSrbv9Tfdkvnusy6y0x0GKBXREFg/Y65GhIfm0tnLntThhzCnfKwp1WRjeCyQ=="], + + "fast-xml-builder/xml-naming": ["xml-naming@0.1.0", "", {}, "sha512-k8KO9hrMyNk6tUWqUfkTEZbezRRpONVOzUTnc97VnCvyj6Tf9lyUR9EDAIeiVLv56jsMcoXEwjW8Kv5yPY52lw=="], + + "glob/minimatch": ["minimatch@3.1.5", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w=="], + + "hast-util-raw/parse5": ["parse5@7.3.0", "", { "dependencies": { "entities": "^6.0.0" } }, "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw=="], + "hosted-git-info/lru-cache": ["lru-cache@11.4.0", "", {}, "sha512-W+R+kFL4HgVxONq2bhXPi3bGpzGe/yEhVOp233qw9wCRtgncJ15P3bC+e4zZMu4Cq7d+WAJjXGW0uUkifhcatA=="], + "jsdom/saxes": ["saxes@6.0.0", "", { "dependencies": { "xmlchars": "^2.2.0" } }, "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA=="], + "jsdom/undici": ["undici@8.10.0", "", {}, "sha512-HvltHd7avK13QIw/oLe4qoOLyoVSoafqJ2jYOrtMRBkbYT31eiBQ8O0ehRKZiEZCMEyLFQNIADpgCWC5fALvYQ=="], + "jszip/readable-stream": ["readable-stream@2.3.8", "", { "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA=="], + + "jwa/safe-buffer": ["safe-buffer@5.2.1", "", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="], + + "jws/safe-buffer": ["safe-buffer@5.2.1", "", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="], + + "lazystream/readable-stream": ["readable-stream@2.3.8", "", { "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA=="], + + "mermaid/marked": ["marked@16.4.2", "", { "bin": { "marked": "bin/marked.js" } }, "sha512-TI3V8YYWvkVf3KJe1dRkpnjs68JUPyEa5vjKrp1XEEJUAOaQc+Qj+L1qWbPd0SJuAdQkFU0h73sXXqwDYxsiDA=="], + + "mermaid/uuid": ["uuid@14.0.1", "", { "bin": "dist-node/bin/uuid" }, "sha512-6ZxzVpzDXDa3bJWaHilVayA+BH/1zmxCJoVgvmqJnid/gPoKHxUrS/aC/T6LGQtNHT+XHG9fXPJB4d+IrU30Ew=="], + "p-retry/retry": ["retry@0.13.1", "", {}, "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg=="], "parse-entities/@types/unist": ["@types/unist@2.0.11", "", {}, "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA=="], @@ -1107,6 +1586,18 @@ "react-i18next/@babel/runtime": ["@babel/runtime@7.29.7", "", {}, "sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw=="], + "readdir-glob/minimatch": ["minimatch@5.1.9", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw=="], + + "string_decoder/safe-buffer": ["safe-buffer@5.2.1", "", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="], + + "unzipper/readable-stream": ["readable-stream@2.3.8", "", { "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA=="], + + "zip-stream/archiver-utils": ["archiver-utils@3.0.4", "", { "dependencies": { "glob": "^7.2.3", "graceful-fs": "^4.2.0", "lazystream": "^1.0.0", "lodash.defaults": "^4.2.0", "lodash.difference": "^4.5.0", "lodash.flatten": "^4.4.0", "lodash.isplainobject": "^4.0.6", "lodash.union": "^4.6.0", "normalize-path": "^3.0.0", "readable-stream": "^3.6.0" } }, "sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw=="], + + "@aws-sdk/xml-builder/fast-xml-parser/path-expression-matcher": ["path-expression-matcher@1.5.0", "", {}, "sha512-cbrerZV+6rvdQrrD+iGMcZFEiiSrbv9Tfdkvnusy6y0x0GKBXREFg/Y65GhIfm0tnLntThhzCnfKwp1WRjeCyQ=="], + + "@aws-sdk/xml-builder/fast-xml-parser/strnum": ["strnum@2.3.0", "", {}, "sha512-ums3KNd42PGyx5xaoVTO1mjU1bH3NpY4vsrVlnv9PNGqQj8wd7rJ6nEypLrJ7z5vxK5RP0yMLo6J/Gsm62DI5Q=="], + "@tailwindcss/node/lightningcss/lightningcss-android-arm64": ["lightningcss-android-arm64@1.32.0", "", { "os": "android", "cpu": "arm64" }, "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg=="], "@tailwindcss/node/lightningcss/lightningcss-darwin-arm64": ["lightningcss-darwin-arm64@1.32.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ=="], @@ -1129,6 +1620,32 @@ "@tailwindcss/node/lightningcss/lightningcss-win32-x64-msvc": ["lightningcss-win32-x64-msvc@1.32.0", "", { "os": "win32", "cpu": "x64" }, "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q=="], + "archiver-utils/readable-stream/string_decoder": ["string_decoder@1.1.1", "", { "dependencies": { "safe-buffer": "~5.1.0" } }, "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg=="], + + "cytoscape-fcose/cose-base/layout-base": ["layout-base@2.0.1", "", {}, "sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg=="], + + "d3-sankey/d3-array/internmap": ["internmap@1.0.1", "", {}, "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw=="], + + "d3-sankey/d3-shape/d3-path": ["d3-path@1.0.9", "", {}, "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg=="], + + "duplexer2/readable-stream/string_decoder": ["string_decoder@1.1.1", "", { "dependencies": { "safe-buffer": "~5.1.0" } }, "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg=="], + + "glob/minimatch/brace-expansion": ["brace-expansion@1.1.21", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-9zeA+KLZNNzglF2TPKRQEDyx6Yby7daAkuy8MiPzpXPsYDWi/DRM8jmwUDxokQjYqBpv5DgPiwD4h4ZZSy1Ujw=="], + + "hast-util-raw/parse5/entities": ["entities@6.0.1", "", {}, "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g=="], + + "jszip/readable-stream/string_decoder": ["string_decoder@1.1.1", "", { "dependencies": { "safe-buffer": "~5.1.0" } }, "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg=="], + + "lazystream/readable-stream/string_decoder": ["string_decoder@1.1.1", "", { "dependencies": { "safe-buffer": "~5.1.0" } }, "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg=="], + "protobufjs/@types/node/undici-types": ["undici-types@6.21.0", "", {}, "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ=="], + + "readdir-glob/minimatch/brace-expansion": ["brace-expansion@2.1.7", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-uZbew1NqdmPDTMJ8ah1y+b+9QEJrfkXFk3RcTQw3X0jW/xRUvFKsg1CfQdSYGdTbXZWExtU3J3ccxtnfw1Fi0g=="], + + "unzipper/readable-stream/string_decoder": ["string_decoder@1.1.1", "", { "dependencies": { "safe-buffer": "~5.1.0" } }, "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg=="], + + "glob/minimatch/brace-expansion/balanced-match": ["balanced-match@1.0.2", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="], + + "readdir-glob/minimatch/brace-expansion/balanced-match": ["balanced-match@1.0.2", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="], } } diff --git a/docs/research/README.md b/docs/research/README.md index c3aae580..d1ef4c97 100644 --- a/docs/research/README.md +++ b/docs/research/README.md @@ -12,6 +12,8 @@ Research records preserve sourced investigation and distinguish observations, in - [`WEB_BROWSER_DSH_COMPARISON_2026-09-28.md`](WEB_BROWSER_DSH_COMPARISON_2026-09-28.md) - Web-only DSH iframe comparison, actual OpenPI input/paint observations, embedding limits and an isolated Chromium WebRTC transport experiment ([#597](https://github.com/openpi-dev/openpi/issues/597), [PR #598](https://github.com/openpi-dev/openpi/pull/598)). +- [`WEB_WORKSPACE_FILES_2026-09-28.md`](WEB_WORKSPACE_FILES_2026-09-28.md) — 工作区文件树、原位预览、显式继续加载、DSH 源码参考及验证边界([#597](https://github.com/openpi-dev/openpi/issues/597)、[PR #598](https://github.com/openpi-dev/openpi/pull/598))。 + - [`WEB_BROWSER_TEXT_INPUT_2026-09-27.md`](WEB_BROWSER_TEXT_INPUT_2026-09-27.md) - committed browser text, native editable-focus receipts, bounded admission, password exclusion, event-order regressions and local desktop observations ([#597](https://github.com/openpi-dev/openpi/issues/597), [PR #598](https://github.com/openpi-dev/openpi/pull/598)). - [`WEB_MODEL_ENTRY_2026-09-27.md`](WEB_MODEL_ENTRY_2026-09-27.md) - native unselected-model projection, actionable model configuration, search/return focus, and bounded responsive picker observations ([#597](https://github.com/openpi-dev/openpi/issues/597), [PR #598](https://github.com/openpi-dev/openpi/pull/598)). diff --git a/docs/research/WEB_WORKSPACE_FILES_2026-09-28.md b/docs/research/WEB_WORKSPACE_FILES_2026-09-28.md new file mode 100644 index 00000000..775f3c12 --- /dev/null +++ b/docs/research/WEB_WORKSPACE_FILES_2026-09-28.md @@ -0,0 +1,65 @@ +# 工作区文件与原位预览 + +- 状态:validated(限下述源码、Host、组件、Chromium 与本地无模型调用的原生会话验证)。不是 Benchmark 或设计 Decision。 +- 创建 / 验证日期:2026-09-28。 +- 源码边界:起始于 [PR #598](https://github.com/openpi-dev/openpi/pull/598) head `e526d11d22b1c7eaa35656b1c369b53766102d09`,独立分支 `codex/workspace-files`;最终接到浏览器提交 `79a4f63e317cb1f138884dafedbd73cc322fde2d`,兼容其原生 iframe,并合并双方 CSP 要求。 +- 关联讨论:[Issue #597](https://github.com/openpi-dev/openpi/issues/597)。 +- Supersedes:none;替换本次工作区的“生成文件”入口,不改写此前研究结论。 + +## 参考事实 + +阅读 [DSH-better-sidebar](https://github.com/omdsh-dev/DSH-better-sidebar/tree/9b5834f74ad197534c821c35b8357edac1ad3919) 的冻结版本 `9b5834f74ad197534c821c35b8357edac1ad3919`: + +- `src/fs-tree.ts` 单目录最多 1000 项;`src/fs-search.ts` 最多 200 个匹配、扫描 100000 项。达到上限时截断,没有继续加载游标。 +- 目录更新通过展开目录的 watcher 与约 150 ms debounce 合并,最多 64 个 watcher;Socket 生命周期清理。 +- 插件自己实现 Markdown、Mermaid、HTML、代码编辑等界面;图片、PDF、表格和 Office 的部分预览交给 DSH 宿主,不能当成可直接复制进 OpenPI 的完整浏览器组件。 +- HTML iframe 允许脚本及部分弹窗/下载能力。OpenPI 当前选择只读静态 HTML/SVG 沙箱,不提供同等脚本执行能力。 + +这些是参考源码观察,不是 OpenPI 的既有约束;本次没有复制 DSH 源码。 + +## 实现与所有权 + +“文件”使用活动 Pi Session 的 cwd 浏览磁盘,不再从 write/edit 结果拼出文件列表。文件编辑证据仍留在对话原有证据区。右侧文件树与左侧预览共处一个工作栏;切换文件不新增窗口或工具标签。窄面板选择文件后收起树,可通过按钮恢复。 + +生命周期沿用 Pi Session、WebHost 和已有 ArtifactReader:Session id 与原生 Session path 共同约束目录游标和文件授权。选择文件、搜索词、是否继续加载属于用户交互;作用域、版本一致性、并发、资源上限与清理由 Host 执行。不增加模型工具、模型路由、独立 Session 存储或用户配置项,也不替模型规定读哪些文件。 + +目录和搜索按最多 250 个匹配或 2000 个扫描项返回一页;不透明、单次使用的游标保留扫描位置,后续页追加,已有行不重新排序。游标最多 16 个、五分钟过期、关闭或切换时释放。搜索跳过 `.git` 与 `node_modules` 的递归,不自动跟随符号链接。目录身份或内容发生变化时明确要求刷新,不把混合结果当成完整列表。 + +长文本按最多 256 KiB / 5000 行续读;续读绑定首份内容 revision,并保留 UTF-8 字节边界。文件变更时保留正在阅读的文本,提示手动刷新。单文件读取/下载仍限 20 MiB。达到页尾、还有下一页、版本失效、读取失败是不同状态;取消后迟到结果不能进入新 Session。 + +文件树在打开、重新获得焦点、页面恢复可见及手动刷新时更新,没有常驻目录轮询。当前可见预览沿用有退避的轻量元数据检查,隐藏时停止;目录展开状态、搜索词和已加载页在同一面板内保留。未引入 watcher 服务或新的通用缓存层。 + +## 预览范围 + +| 格式 | 行为与边界 | +| --- | --- | +| Markdown | 表格、安全 HTML、相对路径栅格图、Mermaid;图表支持放大、缩放和拖动,Escape 只关闭图表。 | +| 代码 | 查看源代码、常用语言高亮;大文本跳过高亮以保留阅读响应。 | +| HTML / SVG | opaque-origin iframe 与限制性 CSP;不执行脚本、不加载远程资源、不提交表单。 | +| 图片 | PNG/JPEG/GIF/WebP,沿用类型嗅探与只读授权,适应宽度或原尺寸。 | +| CSV / TSV | 引号、转义与单元格换行,最多 500 行 / 50 列;公式作为文字。 | +| PDF | PDF.js 分页与缩放,渲染像素有界,不运行文档脚本。 | +| DOCX | Mammoth 内容转换;不保证 Word 分页或精确排版。 | +| XLSX | ExcelJS 工作表切换;最多 20 表、每表 500 行 / 50 列、总计 20000 单元格。 | +| PPTX | 有序幻灯片文字与内嵌图片;不保证主题、图表、动画或母版复现。 | + +Office 在 Worker 内处理,解压声明总量 40 MiB、单项 10 MiB、2000 个条目,处理超时 15 秒后终止;切换或卸载释放 Worker。旧版 `.doc/.xls/.ppt`、加密或无法解码的文件提示下载后打开。所有资源限制都是当前实现边界,不声称覆盖所有生产文档。 + +## 验证与消融 + +使用独立 worktree、Node 24.20.0、Bun 1.3.14、锁定依赖。本地原生实例的隔离 `PI_CODING_AGENT_DIR` 经 `scripts/provenance.mjs` 验证:checkout revision 与唯一 `pi list` OpenPI 来源相符。没有修改另一个浏览器任务的 checkout 或用户全局配置。原生 Session 使用无模型调用的本地夹具,实际打开 `AGENTS.md`,验证文件树与正文并排。 + +新增 Host 测试覆盖真正跨页的目录/搜索、Session path 与游标绑定、游标重放、目录变更、符号链接边界、UTF-8 完整续读和版本变更;组件测试覆盖同面板导航、加载次序、搜索取消、隐藏后恢复、目录消失与续读滚动。Chromium 使用真实生产静态文件和 WebHost,覆盖新增格式、Mermaid 标签与 Escape、HTML 隔离、暗/亮色、390px 布局与 axe。 + +消融实验:删除已被静态共享组件导入的 DocumentPreview 外层 lazy/Suspense,保留格式库在实际使用时的动态导入;五条文件组件测试仍通过,因此保留更小实现。移除旧 generated-files 派生列表、返回路由、组件、样式和对应旧测试;现有文件变更证据继续通过独立回归。 + +- 最终 `bun run check`:通过(构建仍提示部分格式库 chunk 超过 500 kB;重型格式库按需加载)。 +- 最终 `bun run test`:Node 1956 passed / 5 平台或条件 skip / 0 failed;Vitest 823 / 823 passed。 +- 文件专项 Chromium:3 / 3 passed,含真实文件证据、图片、全部新增格式、两页 PDF 与实际缩放、多图 Markdown、暗/亮色、移动布局和 axe。 +- 初次完整 Chromium:57 / 68 passed。11 条既有用例在未改动的 `e526d11` 源码和重建产物上全部重现相同失败,涉及旧英文工作区按钮名、归档夹具/行数、设置标题、模型选项焦点和 prompt recovery;不归因于文件实现,也没有将完整 E2E 宣称为通过。 +- 接入 `79a4f63` 后,显式排除上述 11 条已证实的基线失败,其余 Chromium 56 / 56 passed,包含最新原生 iframe 浏览器交互及文件预览。排除仅存在于本地验证命令,仓库没有禁用这些测试。 +- 修复过程中真实浏览器发现并修正了带点号的动态 chunk 静态路由、Mermaid 12 标签配置、图表 Escape 传播和 PDF 缩放被 CSS 压缩的问题。常规聊天 Markdown 的复制状态回归亦已修复。 + +日志凭据:`check-integrated.log`、`test-integrated.log`、`e2e-full.log`、`e2e-baseline2.log`、`e2e-integrated.log`、`e2e-verified.log`、`ablation3.log`;截图见 `browser-results-final/`。这些不是模型执行或正式性能测量。 + +本地证据身份:`openpi-workspace-files-20260928`。日志与截图保存在仓库外 `~/.local/state/openpi-workspace-files-20260928/`;公开可复现证据为本分支的测试与源代码。无模型推理能力、性能 Benchmark、Safari、真实读屏器或大型复杂 Office 文档验收声明。 diff --git a/package.json b/package.json index 909e0429..318fce43 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@tt-a1i/openpi", "version": "0.9.0", - "description": "OpenPI \u2014 a Pi-native multi-agent workbench with background execution, isolated subagents, replay-safe workflows, goals, tasks, and observable TUI", + "description": "OpenPI — a Pi-native multi-agent workbench with background execution, isolated subagents, replay-safe workflows, goals, tasks, and observable TUI", "license": "MIT", "author": "tt-a1i", "bin": { @@ -82,14 +82,23 @@ "@vitejs/plugin-react": "6.1.1", "@xterm/addon-fit": "0.11.0", "@xterm/xterm": "6.0.0", + "dompurify": "^3.4.16", "eventsource-parser": "4.1.0", + "exceljs": "4.4.0", + "fast-xml-parser": "^5.11.1", + "fflate": "^0.8.3", + "highlight.js": "^11.12.0", "i18next": "26.4.1", "jsdom": "30.0.1", "lucide-react": "1.39.0", + "mammoth": "1.13.0", + "mermaid": "12.0.0", + "pdfjs-dist": "6.3.289", "react": "19.2.8", "react-dom": "19.2.8", "react-i18next": "17.0.13", "react-markdown": "10.1.0", + "rehype-raw": "^7.0.0", "rehype-sanitize": "6.0.0", "remark-breaks": "4.0.0", "remark-gfm": "4.0.1", @@ -98,8 +107,8 @@ "typescript": "^7.0.2", "vite": "^8.2.0", "vitest": "4.1.10", - "zustand": "5.0.15", - "yaml": "2.9.0" + "yaml": "2.9.0", + "zustand": "5.0.15" }, "peerDependencies": { "@earendil-works/pi-ai": ">=0.85.1", diff --git a/tests/web/app-render.spec.ts b/tests/web/app-render.spec.ts index dc7a8d62..9fd09b7c 100644 --- a/tests/web/app-render.spec.ts +++ b/tests/web/app-render.spec.ts @@ -1314,279 +1314,6 @@ function activeSnapshot(): WebSnapshot { }; } -it.each([ - [false, false], - [true, false], - [true, true], -])( - "returns from a Files preview to the same list and outer opener (nested: %s, Tools navigation: %s)", - async (nested, viaTools) => { - const original = webStore.getState(); - const start = vi - .spyOn(original.actions, "start") - .mockImplementation(() => {}); - const stop = vi - .spyOn(original.actions, "stop") - .mockImplementation(() => {}); - const resolve = vi - .spyOn(WebClient.prototype, "resolveArtifact") - .mockImplementation(async (_session, reference) => ({ - handle: reference, - })); - const release = vi - .spyOn(WebClient.prototype, "releaseArtifact") - .mockResolvedValue({}); - const read = vi - .spyOn(WebClient.prototype, "artifactPreview") - .mockImplementation(async (sessionId, handle) => ({ - artifact: { - sessionId, - handle, - path: handle, - name: handle.split("/").at(-1)!, - revision: "a", - bytes: 32, - preview: "text", - }, - text: handle.endsWith("report.md") - ? "[Next file](./next.md)" - : "Nested file text", - truncated: false, - })); - const snapshot = activeSnapshot(); - snapshot.runtime.status = "idle"; - snapshot.selectedSession!.entries = [ - { - id: "write-call", - type: "message", - timestamp: snapshot.generatedAt, - message: { - role: "assistant", - content: "", - parts: [ - { - type: "toolCall", - id: "write-report", - name: "write", - arguments: '{"path":"report.md"}', - }, - ], - }, - }, - { - id: "write-result", - type: "message", - timestamp: snapshot.generatedAt, - message: { - role: "toolResult", - toolCallId: "write-report", - content: "saved", - isError: false, - }, - }, - ]; - webStore.setState({ - snapshot, - selectedPath: "/tmp/session", - selectedWorkspace: "/tmp", - workspaceDraft: false, - sessionSwitching: false, - liveRunning: false, - liveMessages: [], - activeTurn: null, - }); - const view = renderWithI18n(createElement(App)); - try { - const tools = screen.getByRole("button", { - name: i18n.t("openTools"), - }); - tools.focus(); - fireEvent.click(tools); - fireEvent.click( - screen.getByRole("button", { - name: new RegExp(i18n.t("generatedFiles"), "u"), - }), - ); - const files = view.container.querySelector( - ".generated-files-list", - )!; - files.scrollTop = 77; - const opener = within(files).getByRole("button", { name: /report.md/u }); - fireEvent.click(opener); - await screen.findByRole("button", { name: /Next file/u }); - expect(opener.isConnected).toBe(true); - expect( - view.container.querySelector(".workbar-panel")!.hidden, - ).toBe(true); - if (nested) { - fireEvent.click(screen.getByRole("button", { name: /Next file/u })); - await screen.findByText("Nested file text"); - } - if (viaTools) { - tools.focus(); - fireEvent.click(tools); - } else { - fireEvent.click( - screen.getByRole("button", { name: i18n.t("closePreview") }), - ); - } - await waitFor(() => - expect(document.activeElement).toBe(viaTools ? tools : opener), - ); - expect( - screen.queryByRole("button", { name: i18n.t("closePreview") }), - ).toBeNull(); - expect( - view.container.querySelector(".workbar-panel")!.hidden, - ).toBe(false); - expect(view.container.querySelector(".generated-files-list")).toBe(files); - expect(files.scrollTop).toBe(77); - fireEvent.keyDown(opener, { key: "Escape" }); - await waitFor(() => expect(document.activeElement).toBe(tools)); - } finally { - view.unmount(); - start.mockRestore(); - stop.mockRestore(); - resolve.mockRestore(); - release.mockRestore(); - read.mockRestore(); - webStore.setState(original, true); - } - }, -); - -it.each(["switching", "path"])( - "invalidates a Files preview without reopening its source across %s", - async (boundary) => { - const original = webStore.getState(); - const start = vi - .spyOn(original.actions, "start") - .mockImplementation(() => {}); - const stop = vi - .spyOn(original.actions, "stop") - .mockImplementation(() => {}); - const resolve = vi - .spyOn(WebClient.prototype, "resolveArtifact") - .mockResolvedValue({ handle: "report" }); - const release = vi - .spyOn(WebClient.prototype, "releaseArtifact") - .mockResolvedValue({}); - const read = vi - .spyOn(WebClient.prototype, "artifactPreview") - .mockResolvedValue({ - artifact: { - sessionId: "session", - handle: "report", - path: "/tmp/report.md", - name: "report.md", - revision: "a", - bytes: 4, - preview: "text", - }, - text: "File preview", - truncated: false, - }); - const snapshot = activeSnapshot(); - snapshot.runtime.status = "idle"; - snapshot.selectedSession!.entries = [ - { - id: "call", - type: "message", - timestamp: snapshot.generatedAt, - message: { - role: "assistant", - content: "", - parts: [ - { - type: "toolCall", - id: "write-report", - name: "write", - arguments: '{"path":"report.md"}', - }, - ], - }, - }, - { - id: "result", - type: "message", - timestamp: snapshot.generatedAt, - message: { - role: "toolResult", - toolCallId: "write-report", - content: "saved", - isError: false, - }, - }, - ]; - webStore.setState({ - snapshot, - selectedPath: "/tmp/session", - selectedWorkspace: "/tmp", - workspaceDraft: false, - sessionSwitching: false, - liveRunning: false, - liveMessages: [], - activeTurn: null, - }); - const view = renderWithI18n(createElement(App)); - try { - fireEvent.click( - screen.getByRole("button", { name: i18n.t("openTools") }), - ); - fireEvent.click( - screen.getByRole("button", { - name: new RegExp(i18n.t("generatedFiles"), "u"), - }), - ); - const files = view.container.querySelector( - ".generated-files-list", - )!; - fireEvent.click( - within(files).getByRole("button", { name: /report.md/u }), - ); - await screen.findByText("File preview"); - const sidebar = screen.getByRole("button", { - name: i18n.t("collapseSidebar"), - }); - sidebar.focus(); - act(() => - webStore.setState( - boundary === "switching" - ? { sessionSwitching: true } - : { - selectedPath: "/tmp/copied-session", - snapshot: { - ...snapshot, - selectedSession: { - ...snapshot.selectedSession!, - path: "/tmp/copied-session", - }, - }, - }, - ), - ); - expect(screen.queryByText("File preview")).toBeNull(); - expect(document.activeElement).toBe(sidebar); - expect( - view.container.querySelector(".workbar-panel")?.hidden ?? - true, - ).toBe(true); - await waitFor(() => expect(release).toHaveBeenCalled()); - expect( - screen.queryByRole("button", { name: i18n.t("closePreview") }), - ).toBeNull(); - } finally { - view.unmount(); - start.mockRestore(); - stop.mockRestore(); - resolve.mockRestore(); - release.mockRestore(); - read.mockRestore(); - webStore.setState(original, true); - } - }, -); - it("keeps background Session files, trajectory and activity scoped to the selected identity", async () => { const original = webStore.getState(); const start = vi @@ -1597,6 +1324,13 @@ it("keeps background Session files, trajectory and activity scoped to the select ok: false, reason: "not_git_repository", }); + const listing = vi + .spyOn(WebClient.prototype, "workspaceFiles") + .mockResolvedValue({ + path: ".", + entries: [{ name: "b.txt", path: "b.txt", kind: "file" }], + truncated: false, + }); const snapshot = activeSnapshot(); snapshot.currentSessionId = "active-a"; snapshot.currentSessionPath = "/tmp/a"; @@ -1725,12 +1459,18 @@ it("keeps background Session files, trajectory and activity scoped to the select fireEvent.click(screen.getByRole("button", { name: i18n.t("openTools") })); fireEvent.click( screen.getByRole("button", { - name: new RegExp(i18n.t("generatedFiles"), "u"), + name: new RegExp(i18n.t("files"), "u"), }), ); - const files = view.container.querySelector( - ".generated-files-list", - )!; + const files = view.container.querySelector(".file-tree")!; + await within(files).findByRole("button", { name: "b.txt" }); + expect(listing).toHaveBeenCalledWith( + "background-b", + "/tmp/b", + ".", + "", + expect.any(AbortSignal), + ); expect(files.textContent).toContain("b.txt"); expect(files.textContent).not.toContain("a.txt"); } finally { @@ -1738,6 +1478,7 @@ it("keeps background Session files, trajectory and activity scoped to the select start.mockRestore(); stop.mockRestore(); review.mockRestore(); + listing.mockRestore(); webStore.setState(original, true); } }); diff --git a/tests/web/artifact-evidence.e2e.ts b/tests/web/artifact-evidence.e2e.ts index 68e5d9db..06f0e63c 100644 --- a/tests/web/artifact-evidence.e2e.ts +++ b/tests/web/artifact-evidence.e2e.ts @@ -249,9 +249,7 @@ test("real file evidence, authenticated downloads, edits, refresh and failure st .getByRole("button", { name: /打开工具|Open tools/u, exact: true }) .click(); const workbar = page.locator(".workbar-panel"); - await workbar - .getByRole("button", { name: /^(生成文件|Generated files)/u }) - .click(); + await workbar.getByRole("button", { name: /^(文件|Files)/u }).click(); const generatedReport = workbar.getByRole("button", { name: /report space\.md/u, }); @@ -416,10 +414,18 @@ test("real file evidence, authenticated downloads, edits, refresh and failure st path, content: "# Latest report\nExternal revision", }); + await expect(artifactPanel).toContainText(/文件已更新|The file changed/u, { + timeout: 8_000, + }); + await expect( + page.getByRole("heading", { name: "Updated report" }), + ).toBeVisible(); + await page.getByRole("button", { name: /刷新文件|Refresh file/u }).click(); await expect( page.getByRole("heading", { name: "Latest report" }), ).toBeVisible({ timeout: 8_000 }); await rm(path); + await page.getByRole("button", { name: /刷新文件|Refresh file/u }).click(); await expect(artifactPanel).toContainText( /当前显示旧版预览|Showing an older preview/u, { timeout: 8_000 }, diff --git a/tests/web/evidence-view.spec.ts b/tests/web/evidence-view.spec.ts index 5615bff6..ce32390d 100644 --- a/tests/web/evidence-view.spec.ts +++ b/tests/web/evidence-view.spec.ts @@ -15,7 +15,7 @@ import { ArtifactProvider } from "../../web/ui/src/features/artifacts/Artifacts. import { ArtifactContext } from "../../web/ui/src/features/artifacts/context.ts"; import { ToolEvidence } from "../../web/ui/src/features/transcript/ToolEvidence.tsx"; import { WebClient } from "../../web/ui/src/protocol/client.ts"; -import "../../web/ui/src/i18n.ts"; +import { i18n } from "../../web/ui/src/i18n.ts"; import { installCheckVisibilityFixture } from "./check-visibility-fixture.ts"; installCheckVisibilityFixture(); @@ -297,7 +297,7 @@ it("keeps real relative paths intact even when they resemble encoded Windows lin } }); -it("polls metadata with backoff, rereads changes and refreshes, and stops on close", async () => { +it("polls metadata with backoff, retains changed text until refresh, and stops on close", async () => { vi.useFakeTimers(); const resolve = vi .spyOn(WebClient.prototype, "resolveArtifact") @@ -349,11 +349,12 @@ it("polls metadata with backoff, rereads changes and refreshes, and stops on clo await act(async () => { await vi.advanceTimersByTimeAsync(2_000); }); - expect(preview).toHaveBeenCalledTimes(2); + expect(preview).toHaveBeenCalledTimes(1); + expect(screen.getByText(i18n.t("filesContentChanged"))).toBeTruthy(); await act(async () => { fireEvent.click(screen.getByRole("button", { name: "Refresh file" })); }); - expect(preview).toHaveBeenCalledTimes(3); + expect(preview).toHaveBeenCalledTimes(2); expect(resolve).toHaveBeenCalledTimes(2); await act(async () => { fireEvent.click(screen.getByRole("button", { name: "Close preview" })); @@ -364,7 +365,7 @@ it("polls metadata with backoff, rereads changes and refreshes, and stops on clo await vi.advanceTimersByTimeAsync(60_000); }); expect(metadata).toHaveBeenCalledTimes(2); - expect(preview).toHaveBeenCalledTimes(3); + expect(preview).toHaveBeenCalledTimes(2); } finally { cleanup(); vi.useRealTimers(); diff --git a/tests/web/generated-files.test.ts b/tests/web/generated-files.test.ts deleted file mode 100644 index 0fbd75fb..00000000 --- a/tests/web/generated-files.test.ts +++ /dev/null @@ -1,100 +0,0 @@ -import assert from "node:assert/strict"; -import test from "node:test"; -import type { WebLiveMessage } from "../../web/protocol/types.ts"; -import { generatedFiles } from "../../web/ui/src/features/workbar/generated-files.ts"; - -function call( - id: string, - name: "write" | "edit", - path: string, - resolvedPath?: string, -): WebLiveMessage { - return { - role: "assistant", - content: "", - parts: [ - { - type: "toolCall", - id, - name, - arguments: JSON.stringify({ path }), - evidenceArguments: { - path, - ...(resolvedPath ? { resolvedPath } : {}), - }, - }, - ], - }; -} - -function result( - id: string, - isError: boolean, - change?: "created" | "overwritten" | "unchanged", -): WebLiveMessage { - return { - role: "toolResult", - toolName: "write", - toolCallId: id, - content: "", - isError, - ...(change ? { details: { change } } : {}), - }; -} - -test("generated files require paired successful write or edit evidence", () => { - const files = generatedFiles([ - call("write-ok", "write", "docs/report.md", "/repo/docs/report.md"), - result("write-ok", false, "created"), - call("edit-failed", "edit", "src/app.ts", "/repo/src/app.ts"), - result("edit-failed", true), - result("missing-call", false, "created"), - ]); - assert.deepEqual(files, [ - { - id: "write-ok", - path: "docs/report.md", - reference: "/repo/docs/report.md", - tool: "write", - change: "created", - }, - ]); -}); - -test("generated files deduplicate by resolved path and keep the latest result", () => { - const files = generatedFiles([ - call("write", "write", "report.md", "/repo/report.md"), - result("write", false, "created"), - call("edit", "edit", "report.md", "/repo/report.md"), - result("edit", false, "overwritten"), - ]); - assert.deepEqual(files, [ - { - id: "edit", - path: "report.md", - reference: "/repo/report.md", - tool: "edit", - change: "overwritten", - }, - ]); -}); - -test("generated files retain only the successful tool's recorded edit", () => { - const edit = { - ...result("edit", false), - details: { diff: "-before\n+after" }, - }; - const [file] = generatedFiles([ - call("edit", "edit", "/other/repo/file.ts"), - edit, - ]); - assert.equal(file?.diff, "-before\n+after"); - assert.equal(file?.diffTruncated, false); - assert.deepEqual( - generatedFiles([ - call("edit", "edit", "/other/repo/file.ts"), - { ...edit, isError: true }, - ]), - [], - ); -}); diff --git a/tests/web/interactive-terminal-recovery.spec.ts b/tests/web/interactive-terminal-recovery.spec.ts index fcc67cf4..0a4aee1a 100644 --- a/tests/web/interactive-terminal-recovery.spec.ts +++ b/tests/web/interactive-terminal-recovery.spec.ts @@ -578,9 +578,9 @@ it("keeps a pending restart modal and its workbar visible when Escape requests n requestedTool: "terminal", requestRevision: 0, sessionId: "a", + sessionPath: "/workspace/session.jsonl", cwd: "/workspace", capabilities: {}, - messages: [], review: { result: null, loading: false, @@ -589,7 +589,6 @@ it("keeps a pending restart modal and its workbar visible when Escape requests n }, conversationCollapsed: false, onRestoreConversation: () => {}, - onBeforeArtifactOpen: () => {}, onClose: () => { dismissWorkbar(); setVisible(false); diff --git a/tests/web/interactive-terminal-ui.spec.ts b/tests/web/interactive-terminal-ui.spec.ts index 0944a28d..66c2d6ba 100644 --- a/tests/web/interactive-terminal-ui.spec.ts +++ b/tests/web/interactive-terminal-ui.spec.ts @@ -156,16 +156,15 @@ it("keeps Escape in the terminal input while respecting child-consumed and heade sessionId: "a", cwd: "/workspace", capabilities: {}, - messages: [], review: { result: null, loading: false, error: null, refresh: async () => {}, }, + sessionPath: "/workspace/session.jsonl", conversationCollapsed: false, onRestoreConversation: () => {}, - onBeforeArtifactOpen: () => {}, onClose: close, }), ), diff --git a/tests/web/openpi-web.e2e.ts b/tests/web/openpi-web.e2e.ts index f004f425..82a76edc 100644 --- a/tests/web/openpi-web.e2e.ts +++ b/tests/web/openpi-web.e2e.ts @@ -640,7 +640,7 @@ test("desktop panes resize by pointer and collapse beyond their thresholds", asy await expect(page.locator('[data-pane-resizer="left"]')).toHaveCount(0); await page.getByRole("button", { name: "展开侧边栏", exact: true }).click(); - const workbar = await openWorkbarTool(page, "生成文件"); + const workbar = await openWorkbarTool(page, "文件"); const workbarHandle = page.getByRole("separator", { name: "调整工具栏宽度" }); await workbarHandle.focus(); await page.keyboard.press("ArrowLeft"); @@ -841,7 +841,7 @@ test("workbar exposes five tools and completes a side conversation lifecycle", a "变更", "终端", "浏览器", - "生成文件", + "文件", ]); await launcher.getByRole("button", { name: /^变更/u }).click(); const review = launcher.locator(".review-panel"); diff --git a/tests/web/playwright.config.ts b/tests/web/playwright.config.ts index 7a7d782a..9e8391ea 100644 --- a/tests/web/playwright.config.ts +++ b/tests/web/playwright.config.ts @@ -29,6 +29,7 @@ export default defineConfig({ "tests/web/session-observer.e2e.ts", "tests/web/git-review.e2e.ts", "tests/web/artifact-images.e2e.ts", + "tests/web/workspace-files.e2e.ts", "tests/web/artifact-evidence.e2e.ts", "tests/web/subagent-inspection.e2e.ts", ], diff --git a/tests/web/review-panel.spec.ts b/tests/web/review-panel.spec.ts index c182bac0..3d4b8721 100644 --- a/tests/web/review-panel.spec.ts +++ b/tests/web/review-panel.spec.ts @@ -171,9 +171,9 @@ it("returns to the original row and scroll position before Escape closes its Wor requestedTool: "review", requestRevision: 0, sessionId: "session-a", + sessionPath: "/workspace/session.jsonl", cwd: "/workspace", capabilities: {}, - messages: [], review: { result: { ok: true, snapshot }, loading: false, @@ -182,7 +182,6 @@ it("returns to the original row and scroll position before Escape closes its Wor }, conversationCollapsed: false, onRestoreConversation: () => {}, - onBeforeArtifactOpen: () => {}, onClose, }), ), @@ -223,9 +222,9 @@ it.each(["collapsed", "inactive tab", "inert"] as const)( requestedTool: launcherOpen ? "launcher" : "review", requestRevision: launcherOpen ? 1 : 0, sessionId: "session-a", + sessionPath: "/workspace/session.jsonl", cwd: "/workspace", capabilities: {}, - messages: [], review: { result: { ok: true, snapshot }, loading: false, @@ -234,7 +233,6 @@ it.each(["collapsed", "inactive tab", "inert"] as const)( }, conversationCollapsed: false, onRestoreConversation: () => {}, - onBeforeArtifactOpen: () => {}, onClose: () => {}, }), ), diff --git a/tests/web/side-conversation-actions.spec.ts b/tests/web/side-conversation-actions.spec.ts index f6122d2f..2df84ba2 100644 --- a/tests/web/side-conversation-actions.spec.ts +++ b/tests/web/side-conversation-actions.spec.ts @@ -55,6 +55,7 @@ function panel(running = false) { requestedTool: "side-conversation", requestRevision: 0, sessionId: "parent", + sessionPath: "/workspace/session.jsonl", cwd: "/workspace", capabilities: { subagents: { @@ -63,7 +64,6 @@ function panel(running = false) { omitted: 0, }, }, - messages: [], review: { result: null, loading: false, @@ -72,7 +72,6 @@ function panel(running = false) { }, conversationCollapsed: false, onRestoreConversation: () => {}, - onBeforeArtifactOpen: () => {}, onClose: () => {}, }), ), diff --git a/tests/web/side-conversation-navigation.spec.ts b/tests/web/side-conversation-navigation.spec.ts index b942ceca..4e904e57 100644 --- a/tests/web/side-conversation-navigation.spec.ts +++ b/tests/web/side-conversation-navigation.spec.ts @@ -47,6 +47,7 @@ function panel() { requestedTool: "side-conversation", requestRevision: 0, sessionId: "session-a", + sessionPath: "/workspace/session.jsonl", cwd: "/workspace", capabilities: { subagents: { @@ -55,7 +56,6 @@ function panel() { omitted: 0, }, }, - messages: [], review: { result: null, loading: false, @@ -64,7 +64,6 @@ function panel() { }, conversationCollapsed: false, onRestoreConversation: () => {}, - onBeforeArtifactOpen: () => {}, onClose: () => {}, }), ), diff --git a/tests/web/web-host.test.ts b/tests/web/web-host.test.ts index 65d86789..7549ce1a 100644 --- a/tests/web/web-host.test.ts +++ b/tests/web/web-host.test.ts @@ -335,7 +335,7 @@ test("serves workspaces through a runtime isolated from terminal sessions", asyn ); assert.match( page.headers.get("content-security-policy") || "", - /frame-src http: https:/u, + /frame-src http: https: 'self' blob:/u, ); assert.equal(page.headers.get("referrer-policy"), "no-referrer"); const pageHtml = await page.text(); diff --git a/tests/web/workbar-performance.spec.ts b/tests/web/workbar-performance.spec.ts index db8b7b54..298994b5 100644 --- a/tests/web/workbar-performance.spec.ts +++ b/tests/web/workbar-performance.spec.ts @@ -56,11 +56,11 @@ it("pauses side-conversation polling across hidden panels and inactive tabs, the requestedTool, requestRevision, sessionId: "session-a", + sessionPath: "/workspace/session.jsonl", cwd: "/workspace", capabilities: { subagents: { items: [detail], truncated: false, omitted: 0 }, }, - messages: [], review: { result: null, loading: false, @@ -69,7 +69,6 @@ it("pauses side-conversation polling across hidden panels and inactive tabs, the }, conversationCollapsed: false, onRestoreConversation: () => {}, - onBeforeArtifactOpen: () => {}, onClose: () => {}, onActiveToolChange: changes, }), diff --git a/tests/web/workspace-files.e2e.ts b/tests/web/workspace-files.e2e.ts new file mode 100644 index 00000000..d5f4d328 --- /dev/null +++ b/tests/web/workspace-files.e2e.ts @@ -0,0 +1,342 @@ +import { mkdir, mkdtemp, rm, writeFile } from "node:fs/promises"; +import { tmpdir } from "node:os"; +import { join } from "node:path"; +import { AxeBuilder } from "@axe-core/playwright"; +import { SessionManager } from "@earendil-works/pi-coding-agent"; +import { expect, test } from "@playwright/test"; +import ExcelJS from "exceljs"; +import { strToU8, zipSync } from "fflate"; +import { WebHost } from "../../web/host/web-host.ts"; +import { projectWebModelSearch } from "../../web/runtime/model-discovery.ts"; +import type { WebRuntimeController } from "../../web/runtime/types.ts"; + +function pdfFixture() { + const stream = "BT /F1 24 Tf 30 130 Td (OpenPI PDF preview) Tj ET"; + const objects = [ + "<< /Type /Catalog /Pages 2 0 R >>", + "<< /Type /Pages /Kids [3 0 R 6 0 R] /Count 2 >>", + "<< /Type /Page /Parent 2 0 R /MediaBox [0 0 400 200] /Resources << /Font << /F1 4 0 R >> >> /Contents 5 0 R >>", + "<< /Type /Font /Subtype /Type1 /BaseFont /Helvetica >>", + `<< /Length ${stream.length} >>\nstream\n${stream}\nendstream`, + "<< /Type /Page /Parent 2 0 R /MediaBox [0 0 400 200] /Resources << /Font << /F1 4 0 R >> >> /Contents 5 0 R >>", + ]; + let content = "%PDF-1.4\n"; + const offsets = [0]; + objects.forEach((object, index) => { + offsets.push(content.length); + content += `${index + 1} 0 obj\n${object}\nendobj\n`; + }); + const xref = content.length; + content += `xref\n0 7\n0000000000 65535 f \n${offsets + .slice(1) + .map((offset) => `${String(offset).padStart(10, "0")} 00000 n \n`) + .join("")}trailer\n<< /Size 7 /Root 1 0 R >>\nstartxref\n${xref}\n%%EOF`; + return content; +} + +test("workspace files stay beside previews, support rich documents and remain usable on mobile", async ({ + browser, +}, testInfo) => { + test.setTimeout(90_000); + const cwd = await mkdtemp(join(tmpdir(), "openpi-files-browser-")); + const manager = SessionManager.inMemory(cwd); + manager.appendMessage({ + role: "user", + content: "Inspect workspace files", + timestamp: Date.now(), + }); + const runtime: WebRuntimeController = { + cwd, + workspaceSelected: true, + sessionDirectory: cwd, + sessionManager: manager, + searchModels: (query, limit) => projectWebModelSearch([], query, limit), + isIdle: () => true, + getActiveTurn: () => undefined, + listModels: () => [], + setModel: async () => { + throw new Error("unused"); + }, + newSession: async () => ({ + cancelled: true, + sessionId: manager.getSessionId(), + }), + switchSession: async () => ({ cancelled: true }), + cancelTurn: async (options) => ({ ...options, state: "stale-turn" }), + subscribe: () => () => {}, + dispose: async () => {}, + sendPrompt: async () => { + throw new Error("unused"); + }, + }; + const host = new WebHost({ runtime }); + const context = await browser.newContext({ + viewport: { width: 1600, height: 1000 }, + locale: "zh-CN", + colorScheme: "light", + }); + const page = await context.newPage(); + // Keep the real host projection; only isolate theme preference from the developer's global setup. + await page.route("**/api/snapshot**", async (route) => { + const response = await route.fetch(); + const snapshot = await response.json(); + snapshot.preferences.theme = "system"; + await route.fulfill({ response, json: snapshot }); + }); + const errors: string[] = []; + page.on("pageerror", (error) => errors.push(error.message)); + try { + await mkdir(join(cwd, "src")); + await Promise.all([ + writeFile( + join(cwd, "README.md"), + "# OpenPI 文件工作区\n\n文件树始终在右侧,点击文件即可原位阅读。\n\n## Markdown 与图表\n\n```mermaid\ngraph LR\nA[文件树] --> B[原位预览]\nB --> C[继续阅读]\n```\n\n
更多说明安全的内嵌 HTML
\n\n## 数据预览\n\n| 格式 | 状态 |\n| --- | --- |\n| PDF | 支持 |\n| Office | 支持 |", + ), + writeFile( + join(cwd, "preview.html"), + '

HTML sandbox preview

', + ), + writeFile( + join(cwd, "data.csv"), + 'name,note\n"OpenPI, files","line 1\nline 2"\n" + + diff --git a/web/dist/pdf.worker.min.mjs b/web/dist/pdf.worker.min.mjs new file mode 100644 index 00000000..8a69d7e5 --- /dev/null +++ b/web/dist/pdf.worker.min.mjs @@ -0,0 +1,29 @@ +/** + * @licstart The following is the entire license notice for the + * JavaScript code in this page + * + * Copyright 2024 Mozilla Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * @licend The above is the entire license notice for the + * JavaScript code in this page + */ +/** + * pdfjsVersion = 6.3.289 + * pdfjsBuild = 1c8020a7d + */ +const e=!("object"!=typeof process||process+""!="[object process]"||process.versions.nw||process.versions.electron&&process.type&&"browser"!==process.type),t=[1/0,1/0,-1/0,-1/0],n=new Float32Array(t),a=[.001,0,0,.001,0,0],s=.35/1.35,r="http://www.w3.org/2000/svg",i=1,o=2,l=4,f=8,c=16,h=64,u=128,m=256,p="pdfjs_internal_editor_",d=3,g=9,b=13,w=15,j=101,k={PRINT:4,MODIFY_CONTENTS:8,COPY:16,MODIFY_ANNOTATIONS:32,FILL_INTERACTIVE_FORMS:256,COPY_FOR_ACCESSIBILITY:512,ASSEMBLE:1024,PRINT_HIGH_QUALITY:2048},y=1,q=2,v=3,S=0,x=4,C=1,F=2,T=3,R={TEXT:1,LINK:2,FREETEXT:3,LINE:4,SQUARE:5,CIRCLE:6,POLYGON:7,POLYLINE:8,HIGHLIGHT:9,UNDERLINE:10,SQUIGGLY:11,STRIKEOUT:12,STAMP:13,CARET:14,INK:15,POPUP:16,FILEATTACHMENT:17,SOUND:18,MOVIE:19,WIDGET:20,SCREEN:21,PRINTERMARK:22,TRAPNET:23,WATERMARK:24,THREED:25,REDACT:26,RICHMEDIA:27},O="Group",H="R",D=0,M=4,N=1,E=2,_=4,z=16,L=32,U=128,W=512,X=1,K=2,G=4096,V=8192,$=32768,Y=65536,J=131072,Q=1048576,Z=2097152,ee=8388608,te=16777216,ne=1,ae=2,se=3,re=4,ie=5,oe={E:"Mouse Enter",X:"Mouse Exit",D:"Mouse Down",U:"Mouse Up",Fo:"Focus",Bl:"Blur",PO:"PageOpen",PC:"PageClose",PV:"PageVisible",PI:"PageInvisible",K:"Keystroke",F:"Format",V:"Validate",C:"Calculate"},le={WC:"WillClose",WS:"WillSave",DS:"DidSave",WP:"WillPrint",DP:"DidPrint"},fe={O:"PageOpen",C:"PageClose"},ce=1,he=5,ue=1,me=2,pe=3,de=4,ge=5,be=6,we=7,je=8,ke=9,ye=10,qe=11,ve=12,Se=13,Ae=14,xe=15,Ce=16,Ie=17,Fe=18,Te=19,Re=20,Oe=21,He=22,Be=23,De=24,Me=25,Ne=26,Pe=27,Ee=28,_e=29,ze=30,Le=31,Ue=32,We=33,Xe=34,Ke=35,Ge=36,Ve=37,$e=38,Ye=39,Je=40,Qe=41,Ze=42,et=43,tt=44,nt=45,at=46,st=47,rt=48,it=49,ot=50,lt=51,ft=52,ct=53,ht=54,ut=55,mt=56,pt=57,dt=58,gt=59,bt=60,wt=61,jt=62,kt=63,yt=64,qt=65,vt=66,St=67,At=68,xt=69,Ct=70,It=71,Ft=72,Tt=73,Rt=74,Ot=75,Ht=76,Bt=77,Dt=80,Mt=81,Nt=83,Pt=84,Et=85,_t=86,zt=87,Lt=88,Ut=89,Wt=90,Xt=91,Kt=92,Gt=93,Vt=94,$t=0,Yt=1,Jt=2,Qt=3,Zt=4,en=1,tn=2;let nn=ce;function getVerbosityLevel(){return nn}function info(e){nn>=he&&console.info(`Info: ${e}`)}function warn(e){nn>=ce&&console.warn(`Warning: ${e}`)}function unreachable(e){throw new Error(e)}function assert(e,t){e||unreachable(t)}function createValidAbsoluteUrl(e,t=null,n=null){if(!e)return null;if(n&&"string"==typeof e){if(n.addDefaultProtocol&&e.startsWith("www.")){const t=e.match(/\./g);t?.length>=2&&(e=`http://${e}`)}if(n.tryConvertEncoding)try{e=stringToUTF8String(e)}catch{}}const a=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}}(a)?a:null}function shadow(e,t,n,a=!1){Object.defineProperty(e,t,{value:n,enumerable:!a,configurable:!0,writable:!1});return n}const an=function BaseExceptionClosure(){function BaseException(e,t){this.message=e;this.name=t}BaseException.prototype=new Error;BaseException.constructor=BaseException;return BaseException}();class PasswordException extends an{constructor(e,t){super(e,"PasswordException");this.code=t}}class UnknownErrorException extends an{constructor(e,t){super(e,"UnknownErrorException");this.details=t}}class InvalidPDFException extends an{constructor(e){super(e,"InvalidPDFException")}}class ResponseException extends an{constructor(e,t,n){super(e,"ResponseException");this.status=t;this.missing=n}}class FormatError extends an{constructor(e){super(e,"FormatError")}}class AbortException extends an{constructor(e){super(e,"AbortException")}}function bytesToString(e){"object"==typeof e&&void 0!==e?.length||unreachable("Invalid argument for bytesToString");const t=e.length,n=8192;if(tt.toString(16).padStart(2,"0")))}static makeHexColor(e,t,n){return`#${this.hexNums[e]}${this.hexNums[t]}${this.hexNums[n]}`}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,n=0){const a=e[n],s=e[n+1];e[n]=a*t[0]+s*t[2]+t[4];e[n+1]=a*t[1]+s*t[3]+t[5]}static applyTransformToBezier(e,t,n=0){const a=t[0],s=t[1],r=t[2],i=t[3],o=t[4],l=t[5];for(let t=0;t<6;t+=2){const f=e[n+t],c=e[n+t+1];e[n+t]=f*a+c*r+o;e[n+t+1]=f*s+c*i+l}}static applyInverseTransform(e,t){const n=e[0],a=e[1],s=t[0]*t[3]-t[1]*t[2];e[0]=(n*t[3]-a*t[2]+t[2]*t[5]-t[4]*t[3])/s;e[1]=(-n*t[1]+a*t[0]+t[4]*t[1]-t[5]*t[0])/s}static axialAlignedBoundingBox(e,t,n){const a=t[0],s=t[1],r=t[2],i=t[3],o=t[4],l=t[5],f=e[0],c=e[1],h=e[2],u=e[3];let m=a*f+o,p=m,d=a*h+o,g=d,b=i*c+l,w=b,j=i*u+l,k=j;if(0!==s||0!==r){const e=s*f,t=s*h,n=r*c,a=r*u;m+=n;g+=n;d+=a;p+=a;b+=e;k+=e;j+=t;w+=t}n[0]=Math.min(n[0],m,d,p,g);n[1]=Math.min(n[1],b,j,w,k);n[2]=Math.max(n[2],m,d,p,g);n[3]=Math.max(n[3],b,j,w,k)}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 n=e[0],a=e[1],s=e[2],r=e[3],i=n**2+a**2,o=n*s+a*r,l=s**2+r**2,f=(i+l)/2,c=Math.sqrt(f**2-(i*l-o**2));t[0]=Math.sqrt(f+c||1);t[1]=Math.sqrt(f-c||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 n=Math.max(Math.min(e[0],e[2]),Math.min(t[0],t[2])),a=Math.min(Math.max(e[0],e[2]),Math.max(t[0],t[2]));if(n>a)return null;const s=Math.max(Math.min(e[1],e[3]),Math.min(t[1],t[3])),r=Math.min(Math.max(e[1],e[3]),Math.max(t[1],t[3]));return s>r?null:[n,s,a,r]}static pointBoundingBox(e,t,n){n[0]=Math.min(n[0],e);n[1]=Math.min(n[1],t);n[2]=Math.max(n[2],e);n[3]=Math.max(n[3],t)}static rectBoundingBox(e,t,n,a,s){s[0]=Math.min(s[0],e,n);s[1]=Math.min(s[1],t,a);s[2]=Math.max(s[2],e,n);s[3]=Math.max(s[3],t,a)}static#e(e,t,n,a,s,r,i,o,l,f){if(l<=0||l>=1)return;const c=1-l,h=l*l,u=h*l,m=c*(c*(c*e+3*l*t)+3*h*n)+u*a,p=c*(c*(c*s+3*l*r)+3*h*i)+u*o;f[0]=Math.min(f[0],m);f[1]=Math.min(f[1],p);f[2]=Math.max(f[2],m);f[3]=Math.max(f[3],p)}static#t(e,t,n,a,s,r,i,o,l,f,c,h){if(Math.abs(l)<1e-12){Math.abs(f)>=1e-12&&this.#e(e,t,n,a,s,r,i,o,-c/f,h);return}const u=f**2-4*c*l;if(u<0)return;const m=Math.sqrt(u),p=2*l;this.#e(e,t,n,a,s,r,i,o,(-f+m)/p,h);this.#e(e,t,n,a,s,r,i,o,(-f-m)/p,h)}static bezierBoundingBox(e,t,n,a,s,r,i,o,l){l[0]=Math.min(l[0],e,i);l[1]=Math.min(l[1],t,o);l[2]=Math.max(l[2],e,i);l[3]=Math.max(l[3],t,o);this.#t(e,n,s,i,t,a,r,o,3*(3*(n-s)-e+i),6*(e-2*n+s),3*(n-e),l);this.#t(e,n,s,i,t,a,r,o,3*(3*(a-r)-t+o),6*(t-2*a+r),3*(a-t),l)}}function stringToUTF8String(e){return decodeURIComponent(escape(e))}function utf8StringToString(e){return unescape(encodeURIComponent(e))}function isArrayEqual(e,t){if(e.length!==t.length)return!1;for(let n=0,a=e.length;n[],makeMap=()=>new Map,makeObj=()=>Object.create(null),makeSet=()=>new Set;"function"!=typeof Iterator.prototype.join&&(Iterator.prototype.join=function(e){return[...this].join(e)});const on=Symbol("CIRCULAR_REF"),ln=Symbol("EOF");let fn=Object.create(null),cn=Object.create(null),hn=Object.create(null);class Name{constructor(e){this.name=e}static get(e){return cn[e]||=new Name(e)}}class Cmd{constructor(e){this.cmd=e}static get(e){return fn[e]||=new Cmd(e)}}const nonSerializable=()=>nonSerializable;class Dict{__nonSerializable__=nonSerializable;#n=new Map;objId=null;suppressEncryption=!1;xref;constructor(e=null){this.xref=e}assignXref(e){this.xref=e}get size(){return this.#n.size}#a(e,t,n){let a=this.#n.get(t);void 0===a&&void 0!==n&&(a=this.#n.get(n));return a instanceof Ref&&this.xref?e?this.xref.fetchAsync(a,this.suppressEncryption):this.xref.fetch(a,this.suppressEncryption):a}get(e,t){return this.#a(!1,e,t)}async getAsync(e,t){return this.#a(!0,e,t)}getArray(e,t){let n=this.#a(!1,e,t);if(Array.isArray(n)){n=n.slice();for(let e=0,t=n.length;e{unreachable("Should not call `set` on the empty dictionary.")};return shadow(this,"empty",e)}static merge({xref:e,dictArray:t,mergeSubDicts:n=!1}){const a=new Dict(e),s=new Map;for(const e of t)if(e instanceof Dict)for(const[t,a]of e.getRawEntries()){const e=s.getOrInsertComputed(t,makeArr);(!e.length||n&&a instanceof Dict)&&e.push(a)}for(const[t,n]of s){if(1===n.length||!(n[0]instanceof Dict)){a.set(t,n[0]);continue}const s=new Dict(e);for(const e of n)for(const[t,n]of e.getRawEntries())s.setIfNotExists(t,n);s.size>0&&a.set(t,s)}s.clear();return a.size>0?a:Dict.empty}clone(){const e=new Dict(this.xref);for(const[t,n]of this.#n)e.set(t,n);return e}delete(e){this.#n.delete(e)}}class Ref{#s;constructor(e,t,n){this.#s=e;this.num=t;this.gen=n}toString(){return this.#s}static fromString(e){const t=hn[e];if(t)return t;const n=/^(\d+)R(\d*)$/.exec(e);if(!n||"0"===n[1])return null;const a=parseInt(n[1],10),s=n[2]?parseInt(n[2],10):0;return hn[e]=new Ref(e,a,s)}static get(e,t){const n=0===t?`${e}R`:`${e}R${t}`;return hn[n]||=new Ref(n,e,t)}}class RefSet{#r=new Set;constructor(e=null){if(e)for(const t of e)this.#r.add(t)}has(e){return this.#r.has(e.toString())}put(e){this.#r.add(e.toString())}remove(e){this.#r.delete(e.toString())}[Symbol.iterator](){return this.#r.keys()}clear(){this.#r.clear()}}class RefMap{#n=new Map;get size(){return this.#n.size}get(e){return this.#n.get(e.toString())}has(e){return this.#n.has(e.toString())}put(e,t){this.#n.set(e.toString(),t)}putAlias(e,t){this.#n.set(e.toString(),this.get(t))}getOrPutComputed(e,t){const n=this.#n,a=e.toString();n.has(a)||n.set(a,t(e));return n.get(a)}[Symbol.iterator](){return this.#n.values()}clear(){this.#n.clear()}*values(){yield*this.#n.values()}*items(){for(const[e,t]of this.#n)yield[Ref.fromString(e),t]}*keys(){for(const e of this.#n.keys())yield Ref.fromString(e)}}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 isImageStream(){return!1}get canAsyncDecodeImageFromBuffer(){return!1}async getTransferableImage(e,t){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,n=null){unreachable("Abstract method `makeSubStream` called")}clone(){unreachable("Abstract method `clone` called")}getBaseStreams(){return null}getOriginalStream(){return this.stream?.getOriginalStream()||this}}const un=/\p{Cc}/u;function serializeFontFamily(e){if(function isCSSString(e){const t=e[0];if(e.length<2||'"'!==t&&"'"!==t||e.at(-1)!==t)return!1;const n=e.length-1;for(let a=1;a=n||un.test(e[a])))return!1}return!0}(e))return e;return`"${e.replaceAll(/["\\\p{Cc}]/gu,e=>'"'===e||"\\"===e?`\\${e}`:`\\${e.codePointAt(0).toString(16)} `)}"`}function stringToAsciiOrUTF16BE(e){return null==e||function isAscii(e){return"string"==typeof e&&(!e||/^[\x00-\x7F]*$/.test(e))}(e)?e:stringToUTF16String(e,!0)}function stringToUTF16HexString(e){const t=[];for(let n=0,a=e.length;n>8&255],Util.hexNums[255&a])}return t.join("")}function stringToUTF16String(e,t=!1){const n=[];t&&n.push("þÿ");for(let t=0,a=e.length;t>8&255),String.fromCharCode(255&a))}return n.join("")}const mn=[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],pn=Object.create(null);function stringToPDFString(e,t=!1){if(e[0]>="ï"){let n;if("þ"===e[0]&&"ÿ"===e[1]){n="utf-16be";e.length%2==1&&(e=e.slice(0,-1))}else if("ÿ"===e[0]&&"þ"===e[1]){n="utf-16le";e.length%2==1&&(e=e.slice(0,-1))}else"ï"===e[0]&&"»"===e[1]&&"¿"===e[2]&&(n="utf-8");if(n)try{const a=pn[n]??=new TextDecoder(n,{fatal:!0}),s=stringToBytes(e),r=a.decode(s);return t||!r.includes("")?r:r.replaceAll(/\x1b[^\x1b]*(?:\x1b|$)/g,"")}catch(e){warn(`stringToPDFString: "${e}".`)}}const n=[];for(let a=0,s=e.length;a0,"The number should be a positive integer.");const n="M".repeat(e/1e3|0)+kn[e%1e3/100|0]+kn[10+(e%100/10|0)]+kn[20+e%10];return t?n.toLowerCase():n}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 n=e.match(t);return n?{name:n[1],pos:parseInt(n[2],10)}:{name:e,pos:0}})}function escapePDFName(e){const t=[];let n=0;for(let a=0,s=e.length;a126||35===s||40===s||41===s||60===s||62===s||91===s||93===s||123===s||125===s||47===s||37===s){n"\n"===e?"\\n":"\r"===e?"\\r":`\\${e}`)}function _collectJS(e,t,n,a){if(!e)return;let s=null;if(e instanceof Ref){if(a.has(e))return;s=e;a.put(s);e=t.fetch(e)}if(Array.isArray(e))for(const s of e)_collectJS(s,t,n,a);else if(e instanceof Dict){if(isName(e.get("S"),"JavaScript")){const t=e.get("JS");let a;t instanceof BaseStream?a=t.getString():"string"==typeof t&&(a=t);a&&=stringToPDFString(a,!0).replaceAll("\0","");a&&n.push(a.trim())}_collectJS(e.getRaw("Next"),t,n,a)}s&&a.remove(s)}function collectActions(e,t,n){const a=new Map,s=getInheritableProperty({dict:t,key:"AA",stopWhenFound:!1});if(s)for(let t=s.length-1;t>=0;t--){const r=s[t];if(r instanceof Dict)for(const[t,s]of r.getRawEntries()){const r=n[t];if(!r)continue;const i=[];_collectJS(s,e,i,new RefSet);i.length>0&&a.set(r,i)}}if(t.has("A")){const n=[];_collectJS(t.get("A"),e,n,new RefSet);n.length>0&&a.set("Action",n)}return a.size?a:null}const yn={60:"<",62:">",38:"&",34:""",39:"'"};function*codePointIter(e){for(let t=0,n=e.length;t55295&&(n<57344||n>65533)&&t++;yield n}}function encodeToXmlString(e){const t=[];let n=0;for(let a=0,s=e.length;a65535&&a++;n=a+1}}if(0===t.length)return e;n: ${e}.`);return!1}return!0}function normalizeCSSFontFamily(e){return e.replaceAll(/( +)(\d)?/g,(e,t,n)=>n??" ")}function validateCSSFont(e){const t=new Set(["100","200","300","400","500","600","700","800","900","1000","normal","bold","bolder","lighter"]),{fontFamily:n,fontWeight:a,italicAngle:s}=e;if(!validateFontName(n,!0))return!1;const r=a?a.toString():"";e.fontWeight=t.has(r)?r:"400";const i=parseFloat(s);e.italicAngle=isNaN(i)||i<-90||i>90?"14":s.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[n,a]of e)n.startsWith(p)&&t.getOrInsertComputed(a.pageIndex,makeArr).push(a);return t.size>0?t:null}function getModificationDate(e=new Date){e instanceof Date||(e=new Date(e));return[e.getUTCFullYear().toString(),(e.getUTCMonth()+1).toString().padStart(2,"0"),e.getUTCDate().toString().padStart(2,"0"),e.getUTCHours().toString().padStart(2,"0"),e.getUTCMinutes().toString().padStart(2,"0"),e.getUTCSeconds().toString().padStart(2,"0")].join("")}function getRotationMatrix(e,t,n){switch(e){case 90:return[0,1,-1,0,t,0];case 180:return[-1,0,0,-1,t,n];case 270:return[0,-1,1,0,0,n];default:throw new Error("Invalid rotation")}}function getSizeInBytes(e){return Math.ceil(Math.ceil(Math.log2(1+e))/8)}const qn=1===new Uint8Array(new Uint32Array([1]).buffer)[0]?4278190080:255,vn=~qn;class QCMS{static#i=null;static _memory=null;static _destBuffer=null;static _destOffset=0;static _keepAlpha=!1;static get _memoryArray(){const e=this.#i;return e?.byteLength?e:this.#i=new Uint8Array(this._memory.buffer)}}const Sn=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"}),An=Object.freeze({Perceptual:0,0:"Perceptual",RelativeColorimetric:1,1:"RelativeColorimetric",Saturation:2,2:"Saturation",AbsoluteColorimetric:3,3:"AbsoluteColorimetric"});function qcms_convert_array(e,t,n){const a=passArray8ToWasm0(t,On.__wbindgen_malloc),s=Hn;On.qcms_convert_array(e,a,s,n)}function __wbg_get_imports(){return{__proto__:null,"./qcms_bg.js":{__proto__:null,__wbg___wbindgen_throw_344f42d3211c4765:function(e,t){throw new Error(function getStringFromWasm0(e,t){return function decodeText(e,t){Fn+=t;if(Fn>=In){Cn=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});Cn.decode();Fn=t}return Cn.decode(getUint8ArrayMemory0().subarray(e,e+t))}(e>>>0,t)}(e,t))},__wbg_copy_result_0d15f3bf9d9012ae:function(e,t){!function copy_result(e,t){const{_destBuffer:n,_destOffset:a,_keepAlpha:s,_memoryArray:r}=QCMS;if(!s){n.set(r.subarray(e,e+t),a);return}const i=t>>2,o=n.byteOffset+a;if(!(3&(o|e))){const t=new Uint32Array(n.buffer,o,i),a=new Uint32Array(QCMS._memory.buffer,e,i);for(let e=0;e>>0,t>>>0)},__wbindgen_init_externref_table:function(){const e=On.__wbindgen_externrefs,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)}}}}let xn=null;function getUint8ArrayMemory0(){null!==xn&&0!==xn.byteLength||(xn=new Uint8Array(On.memory.buffer));return xn}function passArray8ToWasm0(e,t){const n=t(1*e.length,1)>>>0;getUint8ArrayMemory0().set(e,n/1);Hn=e.length;return n}let Cn=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});Cn.decode();const In=2146435072;let Fn=0;let Tn,Rn,On,Hn=0;function __wbg_finalize_init(e,t){Rn=e;On=e.exports;Tn=t;xn=null;On.__wbindgen_start();return On}function MathClamp(e,t,n){return Math.min(Math.max(e,t),n)}function isDefaultDecodeHelper(e,t){if(!Array.isArray(e))return!0;const n=e.length;if(nt){info("Truncating too long decode map.");e.length=t}return!1}class ColorSpace{static#o=new Uint8ClampedArray(3);constructor(e,t){this.name=e;this.numComps=t}getRgb(e,t,n=new Uint8ClampedArray(3)){this.getRgbItem(e,t,n,0);return n}getRgbHex(e,t){const n=this.getRgb(e,t,ColorSpace.#o);return Util.makeHexColor(n[0],n[1],n[2])}getRgbItem(e,t,n,a){unreachable("Should not call ColorSpace.getRgbItem")}getRgbBuffer(e,t,n,a,s,r,i){unreachable("Should not call ColorSpace.getRgbBuffer")}getRgbItems(e,t,n,a,s){const{numComps:r}=this;for(let i=0,o=0;ih&&"DeviceGray"!==this.name&&"DeviceRGB"!==this.name){const t=i<=8?new Uint8Array(h):new Uint16Array(h);for(let e=0;e=.99554525?1:MathClamp(1.055*e**(1/2.4)-.055,0,1)}#q(e){return e<0?-this.#q(-e):e>8?((e+16)/116)**3:e*CalRGBCS.#b}#v(e,t,n){if(0===e[0]&&0===e[1]&&0===e[2]){n[0]=t[0];n[1]=t[1];n[2]=t[2];return}const a=this.#q(0),s=(1-a)/(1-this.#q(e[0])),r=1-s,i=(1-a)/(1-this.#q(e[1])),o=1-i,l=(1-a)/(1-this.#q(e[2])),f=1-l;n[0]=t[0]*s+r;n[1]=t[1]*i+o;n[2]=t[2]*l+f}#S(e,t,n){if(1===e[0]&&1===e[2]){n[0]=t[0];n[1]=t[1];n[2]=t[2];return}const a=n;this.#w(CalRGBCS.#c,t,a);const s=CalRGBCS.#p;this.#j(e,a,s);this.#w(CalRGBCS.#h,s,n)}#A(e,t,n){const a=n;this.#w(CalRGBCS.#c,t,a);const s=CalRGBCS.#p;this.#k(e,a,s);this.#w(CalRGBCS.#h,s,n)}#f(e,t,n,a,s){const r=MathClamp(e[t]*s,0,1),i=MathClamp(e[t+1]*s,0,1),o=MathClamp(e[t+2]*s,0,1),l=1===r?1:r**this.GR,f=1===i?1:i**this.GG,c=1===o?1:o**this.GB,h=this.MXA*l+this.MXB*f+this.MXC*c,u=this.MYA*l+this.MYB*f+this.MYC*c,m=this.MZA*l+this.MZB*f+this.MZC*c,p=CalRGBCS.#d;p[0]=h;p[1]=u;p[2]=m;const d=CalRGBCS.#g;this.#S(this.whitePoint,p,d);const g=CalRGBCS.#d;this.#v(this.blackPoint,d,g);const b=CalRGBCS.#g;this.#A(CalRGBCS.#m,g,b);const w=CalRGBCS.#d;this.#w(CalRGBCS.#u,b,w);n[a]=255*this.#y(w[0]);n[a+1]=255*this.#y(w[1]);n[a+2]=255*this.#y(w[2])}getRgbItem(e,t,n,a){this.#f(e,t,n,a,1)}getRgbBuffer(e,t,n,a,s,r,i){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}}#x(e){return e>=6/29?e**3:108/841*(e-4/29)}#C(e,t,n,a){return n+e*(a-n)/t}#f(e,t,n,a,s){let r=e[t],i=e[t+1],o=e[t+2];if(!1!==n){r=this.#C(r,n,0,100);i=this.#C(i,n,this.amin,this.amax);o=this.#C(o,n,this.bmin,this.bmax)}i>this.amax?i=this.amax:ithis.bmax?o=this.bmax:ofunction qcms_convert_one(e,t){return On.qcms_convert_one(e,t)>>>0}(this.#I,255*e[t]);break;case 3:a=Sn.RGB8;this.#F=(e,t)=>function qcms_convert_three(e,t,n,a){return On.qcms_convert_three(e,t,n,a)>>>0}(this.#I,255*e[t],255*e[t+1],255*e[t+2]);break;case 4:a=Sn.CMYK;this.#F=(e,t)=>function qcms_convert_four(e,t,n,a,s){return On.qcms_convert_four(e,t,n,a,s)>>>0}(this.#I,255*e[t],255*e[t+1],255*e[t+2],255*e[t+3]);break;default:throw new Error(`Unsupported number of components: ${n}`)}this.#I=function qcms_transformer_from_memory(e,t,n){const a=passArray8ToWasm0(e,On.__wbindgen_malloc),s=Hn;return On.qcms_transformer_from_memory(a,s,t,n)>>>0}(e,a,An.Perceptual);if(!this.#I)throw new Error("Failed to create ICC color space");IccColorSpace.#O||=new FinalizationRegistry(e=>{!function qcms_drop_transformer(e){On.qcms_drop_transformer(e)}(e)});IccColorSpace.#O.register(this,this.#I)}getRgbHex(e,t){const n=this.#F(e,t);return Util.makeHexColor(n>>16,n>>8&255,255&n)}getRgbItem(e,t,n,a){const s=this.#F(e,t);n[a]=s>>16;n[a+1]=s>>8&255;n[a+2]=255&s}getRgbItems(e,t,n,a,s){const{numComps:r}=this,i=t*r,o=new Uint8Array(i);for(let t=0;t=this.end?-1:this.bytes[this.pos++]}getBytes(e){const t=this.pos,n=e?Math.min(t+e,this.end):this.end;this.pos=n;return this.bytes.subarray(t,n)}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,n=null){return new Stream(this.bytes.buffer,e,t,n)}clone(){return new Stream(this.bytes.buffer,this.start,this.length,this.dict?.clone())}}class StringStream extends Stream{constructor(e,t=null){super(stringToBytes(e),NaN,NaN,t)}}class NullStream extends Stream{constructor(){super(new Uint8Array(0))}}class ChunkedStream extends Stream{progressiveDataLength=0;_lastSuccessfulEnsureByteChunk=-1;_loadedChunks=new Set;constructor(e,t,n){super(new Uint8Array(e),0,e,null);this.chunkSize=t;this.numChunks=Math.ceil(e/t);this.manager=n}getMissingChunks(){const e=[];for(let t=0,n=this.numChunks;t=this.end?this.numChunks:Math.floor(t/this.chunkSize);for(let e=n;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 n=Math.floor(e/this.chunkSize);if(n>this.numChunks)return;const a=Math.min(Math.floor((t-1)/this.chunkSize)+1,this.numChunks);for(let s=n;s=this.end)return-1;e>=this.progressiveDataLength&&this.ensureByte(e);return this.bytes[this.pos++]}getBytes(e){const t=this.pos,n=e?Math.min(t+e,this.end):this.end;n>this.progressiveDataLength&&this.ensureRange(t,n);this.pos=n;return this.bytes.subarray(t,n)}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,n=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),n=Math.floor((this.end-1)/e)+1,a=[];for(let e=t;e{s.push(e);return[]}).push(t)}if(s.length>0){const e=this.groupChunks(s);for(const t of e){const e=t.beginChunk*this.chunkSize,n=Math.min(t.endChunk*this.chunkSize,this.length);this.sendRequest(e,n).catch(a.reject)}}return a.promise.catch(e=>{if(!this.#B)throw e})}getStream(){return this.stream}requestRange(e,t){t=Math.min(t,this.length);const n=this.getBeginChunk(e),a=this.getEndChunk(t),s=[];for(let e=n;ee-t);return this._requestChunks(t)}groupChunks(e){const t=[];let n=-1,a=-1;for(let s=0,r=e.length;s=0&&a+1!==r){t.push({beginChunk:n,endChunk:a+1});n=r}s+1===e.length&&t.push({beginChunk:n,endChunk:r+1});a=r}return t}onReceiveData(e){const{chunkSize:t,length:n,stream:a}=this,s=e.chunk,r=void 0===e.begin,i=r?a.progressiveDataLength:e.begin,o=i+s.byteLength,l=Math.floor(i/t),f=o0||c.push(n)}}}if(!this.disableAutoFetch&&0===this._requestsByChunk.size){let e;if(1===a.numChunksLoaded){const t=a.numChunks-1;a.hasChunk(t)||(e=t)}else e=a.nextEmptyChunk(f);Number.isInteger(e)&&this._requestChunks([e])}for(const e of c){const t=this._promisesByRequest.get(e);this._promisesByRequest.delete(e);t.resolve()}this.msgHandler.send("DocProgress",{loaded:MathClamp(a.numChunksLoaded*t,a.progressiveDataLength,n),total:n})}getBeginChunk(e){return Math.floor(e/this.chunkSize)}getEndChunk(e){return Math.floor((e-1)/this.chunkSize)+1}abort(e){this.#B=!0;this.pdfStream?.cancelAllRequests(e);for(const t of this._promisesByRequest.values())t.reject(e);this.#D.reject(e)}}function convertToRGBA(e){switch(e.kind){case C:return convertBlackAndWhiteToRGBA(e);case F:return function convertRGBToRGBA({src:e,srcPos:t=0,dest:n,destPos:a=0,width:s,height:r}){let i=0;const o=s*r*3,l=o>>2,f=new Uint32Array(e.buffer,t,l),c=FeatureTest.isLittleEndian?4278190080:255;if(FeatureTest.isLittleEndian){for(;i>>24|t<<8|c;n[a+2]=t>>>16|s<<16|c;n[a+3]=s>>>8|c}for(let s=4*i,r=t+o;s>>8|c;n[a+2]=t<<16|s>>>16|c;n[a+3]=s<<8|c}for(let s=4*i,r=t+o;s>3,h=7&a,u=l^f,m=e.length;n=new Uint32Array(n.buffer);let p=0;for(let a=0;a>7&1)&u;n[p+1]=l^-(a>>6&1)&u;n[p+2]=l^-(a>>5&1)&u;n[p+3]=l^-(a>>4&1)&u;n[p+4]=l^-(a>>3&1)&u;n[p+5]=l^-(a>>2&1)&u;n[p+6]=l^-(a>>1&1)&u;n[p+7]=l^-(1&a)&u}if(0===h)continue;const a=t>7-e&1)&u}return{srcPos:t,destPos:p}}class ImageResizer{static#M=2048;static#N=FeatureTest.isImageDecoderSupported;constructor(e,t){this._imgData=e;this._isMask=t}static get canUseImageDecoder(){return shadow(this,"canUseImageDecoder",this.#N?ImageDecoder.isTypeSupported("image/bmp"):Promise.resolve(!1))}static needsToBeResized(e,t){if(e<=this.#M&&t<=this.#M)return!1;const{MAX_DIM:n}=this;if(e>n||t>n)return!0;const a=e*t;if(this._hasMaxArea)return a>this.MAX_AREA;if(a(this.MAX_AREA=this.#M**2)}static getReducePower(e,t,n=1/0){if(!Number.isInteger(e)||e<=0||!Number.isInteger(t)||t<=0)return 0;const a=e*t;if(!this.needsToBeResized(e,t))return a>n?Math.ceil(Math.log2(a/n)):0;const{MAX_DIM:s,MAX_AREA:r}=this,i=Math.max(e/s,t/s,Math.sqrt(a/Math.min(n,r)));return Math.max(0,Math.ceil(Math.log2(i)))}static getReducePowerForJPX(e,t,n){return this.getReducePower(e,t,2**30/(4*n))}static get MAX_DIM(){return shadow(this,"MAX_DIM",this._guessMax(2048,32768,0,1))}static get MAX_AREA(){this._hasMaxArea=!0;return shadow(this,"MAX_AREA",this._guessMax(this.#M,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.#N=t}static _areGoodDims(e,t){try{const n=new OffscreenCanvas(e,t),a=n.getContext("2d");a.fillRect(0,0,1,1);const s=a.getImageData(0,0,1,1).data[3];n.width=n.height=1;return 0!==s}catch{return!1}}static _guessMax(e,t,n,a){for(;e+n+1gn){const e=this.#P();if(e)return e}const a=this._encodeBMP();let s,r;if(await ImageResizer.canUseImageDecoder){s=new ImageDecoder({data:a,type:"image/bmp",preferAnimation:!1,transfer:[a.buffer]});r=s.decode().catch(e=>{warn(`BMP image decoding failed: ${e}`);return createImageBitmap(new Blob([this._encodeBMP().buffer],{type:"image/bmp"}))}).finally(()=>{s.close()})}else r=createImageBitmap(new Blob([a.buffer],{type:"image/bmp"}));const{MAX_AREA:i,MAX_DIM:o}=ImageResizer,l=Math.max(t/o,n/o,Math.sqrt(t*n/i)),f=Math.max(l,2),c=Math.round(10*(l+1.25))/10/f,h=Math.floor(Math.log2(c)),u=new Array(h+2).fill(2);u[0]=f;u.splice(-1,1,c/(1<>i,l=a>>i;let f,c=a;try{f=new Uint8Array(r)}catch{let e=Math.floor(Math.log2(r+1));for(;;)try{f=new Uint8Array(2**e-1);break}catch{e-=1}c=Math.floor((2**e-1)/(4*n));const t=n*c*4;t>i;e>3,i=n+3&-4;if(n!==i){const e=new Uint8Array(i*t);let a=0;for(let r=0,o=t*n;rs&&(a=s)}else{for(;!this.eof;)this.readBlock(t);a=this.bufferLength}this.pos=a;return this.buffer.subarray(n,a)}async getImageData(e,t){if(!this.canAsyncDecodeImageFromBuffer)return this.isAsyncDecoder?this.decodeImage(null,e,t):this.getBytes(e,t);const n=await this.stream.asyncGetBytes();return this.decodeImage(n,e,t)}async asyncGetBytesFromDecompressionStream(e){this.stream.reset();const t=this.stream.isAsync?await this.stream.asyncGetBytes():this.stream.getBytes();try{const{readable:n,writable:a}=new DecompressionStream(e),s=a.getWriter();await s.ready;s.write(t).then(async()=>{await s.ready;await s.close()}).catch(()=>{});const r=[];let i=0;for await(const e of n){r.push(e);i+=e.byteLength}const o=new Uint8Array(i);let l=0;for(const e of r){o.set(e,l);l+=e.byteLength}return{decompressed:o,compressed:t}}catch{return{decompressed:null,compressed:t}}}reset(){this.pos=0}makeSubStream(e,t,n=null){if(void 0===t)for(;!this.eof;)this.readBlock();else{const n=e+t;for(;this.bufferLength<=n&&!this.eof;)this.readBlock()}return new Stream(this.buffer,e,t,n)}clone(){for(;!this.eof;)this.readBlock();return new Stream(this.buffer,0,this.bufferLength,this.dict?.clone())}getBaseStreams(){return this.stream?this.stream.getBaseStreams():null}}class StreamsSequenceStream extends DecodeStream{constructor(e,t=null){e=e.filter(e=>e instanceof BaseStream&&!e.isImageStream);let n=0;for(const t of e)n+=t instanceof DecodeStream?t._rawMinBufferLength:t.length;super(n);this.streams=e;this._onError=t}readBlock(){const e=this.streams;if(0===e.length){this.eof=!0;return}const t=e.shift();let n;try{n=t.getBytes()}catch(e){if(this._onError){this._onError(e,t.dict?.objId);return}throw e}const a=this.bufferLength,s=a+n.length;this.ensureBuffer(s).set(n,a);this.bufferLength=s}getBaseStreams(){const e=[];for(const t of this.streams){const n=t.getBaseStreams();n&&e.push(...n)}return e.length>0?e:null}}class ColorSpaceUtils{static parse({cs:e,xref:t,resources:n=null,pdfFunctionFactory:a,globalColorSpaceCache:s,localColorSpaceCache:r,asyncIfNotCached:i=!1}){const o={xref:t,resources:n,pdfFunctionFactory:a,globalColorSpaceCache:s,localColorSpaceCache:r};let l,f,c;if(e instanceof Ref){f=e;const n=s.getByRef(f)||r.getByRef(f);if(n)return n;e=t.fetch(e)}if(e instanceof Name){l=e.name;const t=r.getByName(l);if(t)return t}try{c=this.#E(e,o)}catch(e){if(i&&!(e instanceof MissingDataException))return Promise.reject(e);throw e}if(l||f){r.set(l,f,c);f&&s.set(null,f,c)}return i?Promise.resolve(c):c}static#_(e,t){const{globalColorSpaceCache:n}=t;let a;if(e instanceof Ref){a=e;const t=n.getByRef(a);if(t)return t}const s=this.#E(e,t);a&&n.set(null,a,s);return s}static#E(e,t){const{xref:n,resources:a,pdfFunctionFactory:s,globalColorSpaceCache:r}=t;if((e=n.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(a instanceof Dict){const n=a.get("ColorSpace");if(n instanceof Dict){const a=n.get(e.name);if(a){if(a instanceof Name)return this.#E(a,t);e=a;break}}}warn(`Unrecognized ColorSpace: ${e.name}`);return this.gray}if(Array.isArray(e)){const a=n.fetchIfRef(e[0]).name;let i,o,l,f,c,h;switch(a){case"G":case"DeviceGray":return this.gray;case"RGB":case"DeviceRGB":return this.rgb;case"CMYK":case"DeviceCMYK":return this.cmyk;case"CalGray":i=n.fetchIfRef(e[1]);f=i.getArray("WhitePoint");c=i.getArray("BlackPoint");h=i.get("Gamma");return new CalGrayCS(f,c,h);case"CalRGB":i=n.fetchIfRef(e[1]);f=i.getArray("WhitePoint");c=i.getArray("BlackPoint");h=i.getArray("Gamma");const u=i.getArray("Matrix");return new CalRGBCS(f,c,h,u);case"ICCBased":const m=e[1]instanceof Ref;if(m){const t=r.getByRef(e[1]);if(t)return t}const p=n.fetchIfRef(e[1]),d=p.dict;o=d.get("N");if(IccColorSpace.isUsable)try{const t=new IccColorSpace(p.getBytes(),"ICCBased",o);m&&r.set(null,e[1],t);return t}catch(t){if(t instanceof MissingDataException)throw t;warn(`ICCBased color space (${e[1]}): "${t}".`)}const g=d.getRaw("Alternate");if(g){const e=this.#_(g,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":l=e[1]||null;l&&=this.#_(l,t);return new PatternCS(l);case"I":case"Indexed":l=this.#_(e[1],t);const b=MathClamp(n.fetchIfRef(e[2]),0,255),w=n.fetchIfRef(e[3]);return new IndexedCS(l,b,w);case"Separation":case"DeviceN":const j=n.fetchIfRef(e[1]);o=Array.isArray(j)?j.length:1;l=this.#_(e[2],t);const k=s.create(e[3]);return new AlternateCS(o,l,k);case"Lab":i=n.fetchIfRef(e[1]);f=i.getArray("WhitePoint");c=i.getArray("BlackPoint");const y=i.getArray("Range");return new LabCS(f,c,y);default:warn(`Unimplemented ColorSpace object: ${a}`);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 an{constructor(e){super(e,"JpegError")}}class DNLMarkerError extends an{constructor(e,t){super(e,"DNLMarkerError");this.scanLines=t}}class EOIMarkerError extends an{constructor(e){super(e,"EOIMarkerError")}}const Dn=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]),Mn=4017,Nn=799,Pn=3406,En=2276,_n=1567,zn=3784,Ln=5793,Un=2896;function buildHuffmanTable(e,t){let n,a,s=0,r=16;for(;r>0&&!e[r-1];)r--;const i=[{children:[],index:0}];let o,l=i[0];for(n=0;n0;)l=i.pop();l.index++;i.push(l);for(;i.length<=n;){i.push(o={children:[],index:0});l.children[l.index]=o.children;l=o}s++}if(n+10){d--;return p>>d&1}p=e[n++];if(255===p){const s=e[n++];if(s){if(220===s&&c){n+=2;const e=t.getUint16(n);n+=2;if(e>0&&e!==a.scanLines)throw new DNLMarkerError("Found DNL marker (0xFFDC) while parsing scan data",e)}else if(217===s){if(c){const e=j*(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 ${(p<<8|s).toString(16)}`)}}d=7;return p>>>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){g--;return}let n=i;const a=o;for(;n<=a;){const a=decodeHuffman(e.huffmanTableAC),s=15&a,r=a>>4;if(0===s){if(r<15){g=receive(r)+(1<>4;if(0===s)if(l<15){g=receive(l)+(1<>4;if(0===a){if(r<15)break;s+=16;continue}s+=r;const i=Dn[s];e.blockData[t+i]=receiveAndExtend(a);s++}};let F,T=0;const R=1===k?s[0].blocksPerLine*s[0].blocksPerColumn:h*a.mcusPerColumn;let O,H;for(;T<=R;){const a=r?Math.min(R-T,r):R;if(a>0){for(q=0;q0?"unexpected":"excessive"} MCU data, current marker is: ${F.invalid}`);n=F.offset}if(!(F.marker>=65488&&F.marker<=65495))break;n+=2}return n-m}function quantizeAndInverse(e,t,n){const a=e.quantizationTable,s=e.blockData;let r,i,o,l,f,c,h,u,m,p,d,g,b,w,j,k,y;if(!a)throw new JpegError("missing required Quantization Table.");for(let e=0;e<64;e+=8){m=s[t+e];p=s[t+e+1];d=s[t+e+2];g=s[t+e+3];b=s[t+e+4];w=s[t+e+5];j=s[t+e+6];k=s[t+e+7];m*=a[e];if(0!==(p|d|g|b|w|j|k)){p*=a[e+1];d*=a[e+2];g*=a[e+3];b*=a[e+4];w*=a[e+5];j*=a[e+6];k*=a[e+7];r=Ln*m+128>>8;i=Ln*b+128>>8;o=d;l=j;f=Un*(p-k)+128>>8;u=Un*(p+k)+128>>8;c=g<<4;h=w<<4;r=r+i+1>>1;i=r-i;y=o*zn+l*_n+128>>8;o=o*_n-l*zn+128>>8;l=y;f=f+h+1>>1;h=f-h;u=u+c+1>>1;c=u-c;r=r+l+1>>1;l=r-l;i=i+o+1>>1;o=i-o;y=f*En+u*Pn+2048>>12;f=f*Pn-u*En+2048>>12;u=y;y=c*Nn+h*Mn+2048>>12;c=c*Mn-h*Nn+2048>>12;h=y;n[e]=r+u;n[e+7]=r-u;n[e+1]=i+h;n[e+6]=i-h;n[e+2]=o+c;n[e+5]=o-c;n[e+3]=l+f;n[e+4]=l-f}else{y=Ln*m+512>>10;n[e]=y;n[e+1]=y;n[e+2]=y;n[e+3]=y;n[e+4]=y;n[e+5]=y;n[e+6]=y;n[e+7]=y}}for(let e=0;e<8;++e){m=n[e];p=n[e+8];d=n[e+16];g=n[e+24];b=n[e+32];w=n[e+40];j=n[e+48];k=n[e+56];if(0!==(p|d|g|b|w|j|k)){r=Ln*m+2048>>12;i=Ln*b+2048>>12;o=d;l=j;f=Un*(p-k)+2048>>12;u=Un*(p+k)+2048>>12;c=g;h=w;r=4112+(r+i+1>>1);i=r-i;y=o*zn+l*_n+2048>>12;o=o*_n-l*zn+2048>>12;l=y;f=f+h+1>>1;h=f-h;u=u+c+1>>1;c=u-c;r=r+l+1>>1;l=r-l;i=i+o+1>>1;o=i-o;y=f*En+u*Pn+2048>>12;f=f*Pn-u*En+2048>>12;u=y;y=c*Nn+h*Mn+2048>>12;c=c*Mn-h*Nn+2048>>12;h=y;m=r+u;k=r-u;p=i+h;j=i-h;d=o+c;w=o-c;g=l+f;b=l-f;m<16?m=0:m>=4080?m=255:m>>=4;p<16?p=0:p>=4080?p=255:p>>=4;d<16?d=0:d>=4080?d=255:d>>=4;g<16?g=0:g>=4080?g=255:g>>=4;b<16?b=0:b>=4080?b=255:b>>=4;w<16?w=0:w>=4080?w=255:w>>=4;j<16?j=0:j>=4080?j=255:j>>=4;k<16?k=0:k>=4080?k=255:k>>=4;s[t+e]=m;s[t+e+8]=p;s[t+e+16]=d;s[t+e+24]=g;s[t+e+32]=b;s[t+e+40]=w;s[t+e+48]=j;s[t+e+56]=k}else{y=Ln*m+8192>>14;y=y<-2040?0:y>=2024?255:y+2056>>4;s[t+e]=y;s[t+e+8]=y;s[t+e+16]=y;s[t+e+24]=y;s[t+e+32]=y;s[t+e+40]=y;s[t+e+48]=y;s[t+e+56]=y}}}function buildComponentData(e,t){const n=t.blocksPerLine,a=t.blocksPerColumn,s=new Int16Array(64);for(let e=0;e=s)return null;const i=t.getUint16(n);if(i>=65472&&i<=65534)return{invalid:null,marker:i,offset:n};let o=t.getUint16(r);for(;!(o>=65472&&o<=65534);){if(++r>=s)return null;o=t.getUint16(r)}return{invalid:i.toString(16),marker:o,offset:r}}function prepareComponents(e){const t=Math.ceil(e.samplesPerLine/8/e.maxH),n=Math.ceil(e.scanLines/8/e.maxV);for(const a of e.components){const s=Math.ceil(Math.ceil(e.samplesPerLine/8)*a.h/e.maxH),r=Math.ceil(Math.ceil(e.scanLines/8)*a.v/e.maxV),i=t*a.h,o=64*(n*a.v)*(i+1);a.blockData=new Int16Array(o);a.blocksPerLine=s;a.blocksPerColumn=r}e.mcusPerLine=t;e.mcusPerColumn=n}function readDataBlock(e,t,n){const a=t.getUint16(n);let s=(n+=2)+a-2;const r=findNextFileMarker(e,t,s,n);if(r?.invalid){warn("readDataBlock - incorrect length, current marker is: "+r.invalid);s=r.offset}const i=e.subarray(n,s);return{appData:i,oldOffset:n,newOffset:n+i.length}}function skipData(e,t,n){const a=t.getUint16(n),s=(n+=2)+a-2,r=findNextFileMarker(e,t,s,n);return r?.invalid?r.offset:s}class JpegImage{constructor(e){this._colorTransform=e?.colorTransform??-1}static canUseImageDecoder(e,t=-1){const n=new DataView(e.buffer,e.byteOffset,e.byteLength),a={width:0,height:0,exifStart:0,exifEnd:0};let s=0,r=null,i=n.getUint16(s);s+=2;if(65496!==i)throw new JpegError("SOI not found");i=n.getUint16(s);s+=2;e:for(;65497!==i;){switch(i){case 65505:const{appData:t,oldOffset:o,newOffset:l}=readDataBlock(e,n,s);s=l;if(69===t[0]&&120===t[1]&&105===t[2]&&102===t[3]&&0===t[4]&&0===t[5]){if(a.exifStart)throw new JpegError("Duplicate EXIF-blocks found.");a.exifStart=o+6;a.exifEnd=l}i=n.getUint16(s);s+=2;continue;case 65472:case 65473:case 65474:a.height=n.getUint16(s+3);a.width=n.getUint16(s+5);r=e[s+7];break e;case 65535:255!==e[s]&&s--}s=skipData(e,n,s);i=n.getUint16(s);s+=2}return 4===r||3===r&&0===t?null:a}parse(e,{dnlScanLines:t=null}={}){const n=new DataView(e.buffer,e.byteOffset,e.byteLength),a=e.length-1;let s,r,i=0,o=null,l=null,f=0;const c=[],h=[],u=[];let m=n.getUint16(i);i+=2;if(65496!==m)throw new JpegError("SOI not found");m=n.getUint16(i);i+=2;e:for(;65497!==m;){let p,d,g;switch(m){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:b,newOffset:w}=readDataBlock(e,n,i);i=w;65504===m&&74===b[0]&&70===b[1]&&73===b[2]&&70===b[3]&&0===b[4]&&(o={version:{major:b[5],minor:b[6]},densityUnits:b[7],xDensity:b[8]<<8|b[9],yDensity:b[10]<<8|b[11],thumbWidth:b[12],thumbHeight:b[13],thumbData:b.subarray(14,14+3*b[12]*b[13])});65518===m&&65===b[0]&&100===b[1]&&111===b[2]&&98===b[3]&&101===b[4]&&(l={version:b[5]<<8|b[6],flags0:b[7]<<8|b[8],flags1:b[9]<<8|b[10],transformCode:b[11]});break;case 65499:const j=n.getUint16(i);i+=2;const k=j+i-2;let y;for(;i>4){if(t>>4!=1)throw new JpegError("DQT - invalid table spec");for(d=0;d<64;d++){y=Dn[d];a[y]=n.getUint16(i);i+=2}}else for(d=0;d<64;d++){y=Dn[d];a[y]=e[i++]}c[15&t]=a}break;case 65472:case 65473:case 65474:if(s)throw new JpegError("Only single frame JPEGs supported");i+=2;s={};s.extended=65473===m;s.progressive=65474===m;s.precision=e[i++];const q=n.getUint16(i);i+=2;s.scanLines=t||q;s.samplesPerLine=n.getUint16(i);i+=2;s.components=[];s.componentIds={};const v=e[i++];let S=0,x=0;for(p=0;p>4,a=15&e[i+1];S>4?h:u)[15&t]=buildHuffmanTable(n,s)}break;case 65501:i+=2;r=n.getUint16(i);i+=2;break;case 65498:const F=1===++f&&!t;i+=2;const T=e[i++],R=[];for(p=0;p>4];a.huffmanTableAC=h[15&r];R.push(a)}const O=e[i++],H=e[i++],D=e[i++];try{i+=decodeScan(e,n,i,s,R,r,O,H,D>>4,15&D,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 M=findNextFileMarker(e,n,i-2,i-3);if(M?.invalid){warn("JpegImage.parse - unexpected data, current marker is: "+M.invalid);i=M.offset;break}if(!M||i>=a){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: "+m.toString(16))}if(i4)throw new JpegError("Unsupported color mode");const s=this.#z(e,t);if(1===this.numComponents&&(n||a)){const e=s.length*(n?4:3),t=new Uint8ClampedArray(e);let a=0;if(n)!function grayToRGBA(e,t){if(FeatureTest.isLittleEndian)for(let n=0,a=e.length;n0&&(e=e.subarray(t));break}return e}decodeImage(e){if(this.eof)return this.buffer;e=this.#L(e||this.bytes);const t=new JpegImage(this.jpegOptions);t.parse(e);const n=t.getData({width:this.drawWidth,height:this.drawHeight,forceRGBA:this.forceRGBA,forceRGB:this.forceRGB});this.buffer=n;this.bufferLength=n.length;this.eof=!0;return this.buffer}get canAsyncDecodeImageFromBuffer(){return this.stream.isAsync}async getTransferableImage(e,t){if(!await JpegStream.canUseImageDecoder)return null;const n=this.jpegOptions;let a;try{const s=this.canAsyncDecodeImageFromBuffer&&await this.stream.asyncGetBytes()||this.bytes;if(!s)return null;let r=this.#L(s);const i=JpegImage.canUseImageDecoder(r,n.colorTransform);if(!i)return null;const{width:o,height:l}=i,f=ImageResizer.getReducePower(o,l);if((o!==e||l!==t)&&(f||!l))return null;if(i.exifStart){r=r.slice();r.fill(0,i.exifStart,i.exifEnd)}const c={data:r,type:"image/jpeg",preferAnimation:!1};if(f){const e=2**f;c.desiredWidth=Math.ceil(o/e);c.desiredHeight=Math.ceil(l/e)}a=new ImageDecoder(c);return(await a.decode()).image}catch(e){warn(`getTransferableImage - failed: "${e}".`);return null}finally{a?.close()}}get isImageStream(){return!0}}function addState(e,t,n,a,s){let r=e;for(let e=0,n=t.length-1;e1e3){f=Math.max(f,u);m+=h+2;u=0;h=0}c.push({transform:t,x:u,y:m,w:n.width,h:n.height});u+=n.width+2;h=Math.max(h,n.height)}const p=Math.max(f,u)+1,d=m+h+1,g=new Uint8Array(p*d*4),b=p<<2;for(let e=0;e=0;){t[r-4]=t[r];t[r-3]=t[r+1];t[r-2]=t[r+2];t[r-1]=t[r+3];t[r+n]=t[r+n-4];t[r+n+1]=t[r+n-3];t[r+n+2]=t[r+n-2];t[r+n+3]=t[r+n-1];r-=b}}const w={width:p,height:d};if(e.isOffscreenCanvasSupported){const e=new OffscreenCanvas(p,d);e.getContext("2d").putImageData(new ImageData(new Uint8ClampedArray(g.buffer),p,d),0,0);w.bitmap=e.transferToImageBitmap();w.data=null}else{w.kind=T;w.data=g}n.splice(r,4*l,zt);a.splice(r,4*l,[w,c]);return r+1});addState(Wn,[ye,ve,Nt,qe],null,function iterateImageMaskGroup(e,t){const n=e.fnArray,a=(t-(e.iCurr-3))%4;switch(a){case 0:return n[t]===ye;case 1:return n[t]===ve;case 2:return n[t]===Nt;case 3:return n[t]===qe}throw new Error(`iterateImageMaskGroup - invalid pos: ${a}`)},function foundImageMaskGroup(e,t){const n=e.fnArray,a=e.argsArray,s=e.iCurr,r=s-3,i=s-2,o=s-1;let l=Math.floor((t-r)/4);if(l<10)return t-(t-r)%4;let f,c,h=!1;const u=a[o][0],m=a[i][0],p=a[i][1],d=a[i][2],g=a[i][3];if(p===d){h=!0;f=i+4;let e=o+4;for(let t=1;t=4&&n[r-4]===n[i]&&n[r-3]===n[o]&&n[r-2]===n[l]&&n[r-1]===n[f]&&a[r-4][0]===c&&a[r-4][1]===h){u++;m-=5}let p=m+4;for(let e=1;e{const t=e.argsArray,n=t[e.iCurr-1][0];if(n!==Re&&n!==Oe&&n!==De&&n!==Me&&n!==Ne&&n!==Pe)return!0;const a=t[e.iCurr-2];return 1===a[0]&&0===a[1]&&0===a[2]&&1===a[3]},()=>!1,(e,t)=>{const{fnArray:a,argsArray:s}=e,r=e.iCurr,i=r-3,o=r-2,l=s[r-1],f=s[o],[,[c],h]=l;if(h){const e=n.slice();Util.axialAlignedBoundingBox(h,f,e);h.set(e);for(let e=0,t=c.length;e=n)break}a=(a||Wn)[e[t]];if(a&&!Array.isArray(a)){r.iCurr=t;t++;if(!a.checkFn||(0,a.checkFn)(r)){s=a;a=null}else a=null}else t++}this.state=a;this.match=s;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&m?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===qe||e===Ue))&&this.flush()}addImageOps(e,t,n,a=!1){if(a){this.addOp(ye);this.addOp(ke,[[["SMask",!1]]])}void 0!==n&&this.addOp(Ct,["OC",n]);this.addOp(e,t);void 0!==n&&this.addOp(It,[]);a&&this.addOp(qe)}addDependency(e){if(!this.dependencies.has(e)){this.dependencies.add(e);this.addOp(ue,[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,n=e.length;t"boolean"==typeof e)})(m,2)&&([h,u]=m);this.extendStart=h;this.extendEnd=u;const p=e.getRaw("Function"),d=a.create(p,!0),g=840,b=(f-l)/g,w=this.colorStops=[];if(l>=f||b<=0){info("Bad shading domain.");return}const{numComps:j}=o,k=new Float32Array(1),y=getColorConversionBatchSize(g,j),q=new Float32Array(y*j),v=new Uint8ClampedArray(2520);for(let e=0;e{s[i++]=e[2*n];s[i++]=e[2*n+1];r[o++]=t[4*a];r[o++]=t[4*a+1];r[o++]=t[4*a+2];o++};for(const e of n){const t=e.coords,n=e.colors;if(e.type===y)for(let e=0,a=t.length;e0&&o.getRgbItems(F,N,v,E,1);const _=new Uint32Array(k);for(let e=0;e0)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:n,bufferLength:a}=this;if(32===e){if(0===a)return t.getInt32()>>>0;n=n<<24|t.getByte()<<16|t.getByte()<<8|t.getByte();const e=t.getByte();this.buffer=e&(1<>a)>>>0}if(8===e&&0===a)return t.getByte();for(;a>a}align(){this.buffer=0;this.bufferLength=0}readFlag(){return this.readBits(this.context.bitsPerFlag)}readCoordinate(){const{bitsPerCoordinate:e,decode:t}=this.context,n=this.readBits(e),a=this.readBits(e),s=e<32?1/((1<Array.from({length:e+1},(t,n)=>{const a=n/e,s=1-a;return new Float32Array([s**3,3*a*s**2,3*a**2*s,a**3])}))}class MeshShading extends BaseShading{static MIN_SPLIT_PATCH_CHUNKS_AMOUNT=3;static MAX_SPLIT_PATCH_CHUNKS_AMOUNT=20;static TRIANGLE_DENSITY=20;constructor(e,t,n,a,s,r){super();if(!(e instanceof BaseStream))throw new FormatError("Mesh data is not a stream");const i=e.dict;this.shadingType=i.get("ShadingType");this.bbox=lookupNormalRect(i.getArray("BBox"),null);const o=ColorSpaceUtils.parse({cs:i.getRaw("CS")||i.getRaw("ColorSpace"),xref:t,resources:n,pdfFunctionFactory:a,globalColorSpaceCache:s,localColorSpaceCache:r});this.background=i.has("Background")?o.getRgb(i.get("Background"),0):null;const l=i.getRaw("Function"),f=l?a.create(l,!0):null;this.coords=[];this.colors=[];this.figures=[];const c={bitsPerCoordinate:i.get("BitsPerCoordinate"),bitsPerComponent:i.get("BitsPerComponent"),bitsPerFlag:i.get("BitsPerFlag"),decode:i.getArray("Decode"),colorFn:f,colorSpace:o,numComps:f?1:o.numComps},h=new MeshStreamReader(e,c);let u=!1;switch(this.shadingType){case Vn:this._decodeType4Shading(h);break;case $n:const e=0|i.get("VerticesPerRow");if(e<2)throw new FormatError("Invalid VerticesPerRow");this._decodeType5Shading(h,e);break;case Yn:this._decodeType6Shading(h);u=!0;break;case Jn:this._decodeType7Shading(h);u=!0;break;default:unreachable("Unsupported mesh type.")}if(u){this._updateBounds();for(let e=0,t=this.figures.length;ei?i:t;n=n>o?o:n;a=a>>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,n){let a=0;for(let s=n;s>=0;s--){a+=e[s]+t[s];e[s]=255&a;a>>=8}}function incHex(e,t){let n=1;for(let a=t;a>=0&&n>0;a--){n+=e[a];e[a]=255&n;n>>=8}}const Zn=16;class BinaryCMapStream extends Stream{tmpBuf=new Uint8Array(19);constructor(e){super(e,0,e.length,null)}readNumber(){let e,t=0;do{const n=this.getByte();if(n<0)throw new FormatError("unexpected EOF in bcmap");e=!(128&n);t=t<<7|127&n}while(!e);return t}readSigned(){const e=this.readNumber();return 1&e?~(e>>>1):e>>>1}readHex(e,t){e.set(this.getBytes(t+1))}readHexNumber(e,t){let n;const a=this.tmpBuf;let s=0;do{const e=this.getByte();if(e<0)throw new FormatError("unexpected EOF in bcmap");n=!(128&e);a[s++]=127&e}while(!n);let r=t,i=0,o=0;for(;r>=0;){for(;o<8&&a.length>0;){i|=a[--s]<>=8;o-=8}}readHexSigned(e,t){this.readHexNumber(e,t);const n=1&e[t]?255:0;let a=0;for(let s=0;s<=t;s++){a=(1&a)<<8|e[s];e[s]=a>>1^n}}readString(){const e=this.readNumber(),t=new Array(e);for(let n=0;n=0;){const e=u>>5;if(7===e){switch(31&u){case 0:a.readString();break;case 1:r=a.readString()}continue}const n=!!(16&u),s=15&u;if(s+1>Zn)throw new Error("BinaryCMapReader.process: Invalid dataSize.");const m=1,p=a.readNumber();switch(e){case 0:a.readHex(i,s);a.readHexNumber(o,s);addHex(o,i,s);t.addCodespaceRange(s+1,hexToInt(i,s),hexToInt(o,s));for(let e=1;e=0;--s){a[n+s]=255&i;i>>=8}}}}class AsciiHexStream extends DecodeStream{constructor(e,t){t&&(t*=.5);super(t);this.stream=e;this.dict=e.dict;this.firstDigit=-1}readBlock(){const e=this.stream.getBytes(8e3);if(!e.length){this.eof=!0;return}const t=e.length+1>>1,n=this.ensureBuffer(this.bufferLength+t);let a=this.bufferLength,s=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(s<0)s=e;else{n[a++]=s<<4|e;s=-1}}if(s>=0&&this.eof){n[a++]=s<<4;s=-1}this.firstDigit=s;this.bufferLength=a}}let ea=(()=>{const e=Int32Array.from([256,402,436,468,500,534,566,598,630,662,694,726,758,790,822,854,886,920,952,984,1016,1048,1080]),t=Int32Array.from([1,2,3,4,0,5,17,6,16,7,8,9,10,11,12,13,14,15]),n=Int32Array.from([0,3,2,1,0,0,0,0,0,0,3,3,3,3,3,3]),a=Int32Array.from([0,0,0,0,-1,1,-2,2,-3,3,-1,1,-2,2,-3,3]),s=Int32Array.from([131072,131076,131075,196610,131072,131076,131075,262145,131072,131076,131075,196610,131072,131076,131075,262149]),r=Int32Array.from([1,5,9,13,17,25,33,41,49,65,81,97,113,145,177,209,241,305,369,497,753,1265,2289,4337,8433,16625]),i=Int32Array.from([2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,7,8,9,10,11,12,13,24]),o=Int16Array.from([0,0,0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,7,8,9,10,12,14,24]),l=Int16Array.from([0,0,0,0,0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,7,8,9,10,24]),f=new Int16Array(2816);!function unpackCommandLookupTable(e){const t=new Int32Array(24),n=new Int32Array(24);n[0]=2;for(let e=0;e<23;++e){t[e+1]=t[e]+(1<>6,r=-4;if(s>=2){s-=2;r=0}const i=(170064>>2*s&3)<<3|a>>3&7,f=(156228>>2*s&3)<<3|7&a,c=n[f],h=r+Math.min(c,5)-2,u=4*a;e[u]=o[i]|l[f]<<8;e[u+1]=t[i];e[u+2]=n[f];e[u+3]=h}}(f);function log2floor(e){let t=-1,n=16,a=e;for(;n>0;){let e=a>>n;if(0!==e){t+=n;a=e}n>>=1}return t+a}function calculateDistanceAlphabetSize(e,t,n){return 16+t+2*(n<>n),r=log2floor(s)-1;return((r-1<<1|s>>r&1)-1<=16){e.accumulator32=e.shortBuffer[e.halfOffset++]<<16|e.accumulator32>>>16;e.bitOffset-=16}if(0!==readFewBits(e,1)){const t=readFewBits(e,3);return 0===t?1:readFewBits(e,t)+(1<>>n.bitOffset;a+=255&s;const r=e[a]>>16,i=65535&e[a];if(r<=8){n.bitOffset+=r;return i}a+=i;a+=(s&(1<>>8;n.bitOffset+=8+(e[a]>>16);return 65535&e[a]}function readBlockLength(e,t,n){if(n.bitOffset>=16){n.accumulator32=n.shortBuffer[n.halfOffset++]<<16|n.accumulator32>>>16;n.bitOffset-=16}const a=readSymbol(e,t,n),s=i[a];if(n.bitOffset>=16){n.accumulator32=n.shortBuffer[n.halfOffset++]<<16|n.accumulator32>>>16;n.bitOffset-=16}return r[a]+(s<=16?readFewBits(n,s):readManyBits(n,s))}function moveToFront(e,t){let n=t;const a=e[n];for(;n>0;){e[n]=e[n-1];n--}e[0]=a}function readSimpleHuffmanCode(e,t,n,a,s){const r=new Int32Array(t),i=new Int32Array(4),o=1+log2floor(e-1),l=readFewBits(s,2)+1;for(let e=0;e=16){s.accumulator32=s.shortBuffer[s.halfOffset++]<<16|s.accumulator32>>>16;s.bitOffset-=16}const n=readFewBits(s,o);if(n>=t)return makeError(s,-15);i[e]=n}const f=function checkDupes(e,t,n){for(let a=0;a=16){i.accumulator32=i.shortBuffer[i.halfOffset++]<<16|i.accumulator32>>>16;i.bitOffset-=16}const a=i.accumulator32>>>i.bitOffset&15;i.bitOffset+=s[a]>>16;const r=65535&s[a];l[n]=r;if(0!==r){f-=32>>r;c++;if(f<=0)break}}if(0!==f&&1!==c)return makeError(i,-4);const h=function readHuffmanCodeLengths(e,t,n,a){let s=0,r=8,i=0,o=0,l=32768;const f=new Int32Array(33);buildHuffmanTable(f,f.length-1,5,e,18);for(;s0;){if(a.halfOffset>2030){const e=readMoreInput(a);if(e<0)return e}if(a.bitOffset>=16){a.accumulator32=a.shortBuffer[a.halfOffset++]<<16|a.accumulator32>>>16;a.bitOffset-=16}const e=a.accumulator32>>>a.bitOffset&31;a.bitOffset+=f[e]>>16;const c=65535&f[e];if(c<16){i=0;n[s++]=c;if(0!==c){r=c;l-=32768>>c}}else{const e=c-14;let f=0;16===c&&(f=r);if(o!==f){i=0;o=f}const h=i;if(i>0){i-=2;i<<=e}if(a.bitOffset>=16){a.accumulator32=a.shortBuffer[a.halfOffset++]<<16|a.accumulator32>>>16;a.bitOffset-=16}i+=readFewBits(a,e)+3;const u=i-h;if(s+u>t)return makeError(a,-2);for(let e=0;e2030){const e=readMoreInput(s);if(e<0)return e}if(s.bitOffset>=16){s.accumulator32=s.shortBuffer[s.halfOffset++]<<16|s.accumulator32>>>16;s.bitOffset-=16}const r=readFewBits(s,2);return 1===r?readSimpleHuffmanCode(e,t,n,a,s):readComplexHuffmanCode(t,r,n,a,s)}function decodeContextMap(t,n,a){let s;if(a.halfOffset>2030){s=readMoreInput(a);if(s<0)return s}const r=decodeVarLenUnsignedByte(a)+1;if(1===r){n.fill(0,0,t);return r}if(a.bitOffset>=16){a.accumulator32=a.shortBuffer[a.halfOffset++]<<16|a.accumulator32>>>16;a.bitOffset-=16}let i=0;0!==readFewBits(a,1)&&(i=readFewBits(a,4)+1);const o=r+i,l=e[o+31>>5],f=new Int32Array(l+1),c=f.length-1;s=readHuffmanCode(o,o,f,c,a);if(s<0)return s;let h=0;for(;h2030){s=readMoreInput(a);if(s<0)return s}if(a.bitOffset>=16){a.accumulator32=a.shortBuffer[a.halfOffset++]<<16|a.accumulator32>>>16;a.bitOffset-=16}const e=readSymbol(f,c,a);if(0===e){n[h]=0;h++}else if(e<=i){if(a.bitOffset>=16){a.accumulator32=a.shortBuffer[a.halfOffset++]<<16|a.accumulator32>>>16;a.bitOffset-=16}let s=(1<=t)return makeError(a,-3);n[h]=0;h++;s--}}else{n[h]=e-i;h++}}if(a.bitOffset>=16){a.accumulator32=a.shortBuffer[a.halfOffset++]<<16|a.accumulator32>>>16;a.bitOffset-=16}1===readFewBits(a,1)&&function inverseMoveToFrontTransform(e,t){const n=new Int32Array(256);for(let e=0;e<256;++e)n[e]=e;for(let a=0;a=16){e.accumulator32=e.shortBuffer[e.halfOffset++]<<16|e.accumulator32>>>16;e.bitOffset-=16}let r=readSymbol(e.blockTrees,2*t,e);const i=readBlockLength(e.blockTrees,2*t+1,e);1===r?r=a[s+1]+1:0===r?r=a[s]:r-=2;r>=n&&(r-=n);a[s]=a[s+1];a[s+1]=r;return i}function decodeLiteralBlockSwitch(e){e.literalBlockLength=decodeBlockTypeAndLength(e,0,e.numLiteralBlockTypes);const t=e.rings[5];e.contextMapSlice=t<<6;e.literalTreeIdx=255&e.contextMap[e.contextMapSlice];const n=e.contextModes[t];e.contextLookupOffset1=n<<9;e.contextLookupOffset2=e.contextLookupOffset1+256}function decodeCommandBlockSwitch(e){e.commandBlockLength=decodeBlockTypeAndLength(e,1,e.numCommandBlockTypes);e.commandTreeIdx=e.rings[7]}function decodeDistanceBlockSwitch(e){e.distanceBlockLength=decodeBlockTypeAndLength(e,2,e.numDistanceBlockTypes);e.distContextMapSlice=e.rings[9]<<2}function readNextMetablockHeader(e){if(0!==e.inputEnd){e.nextRunningState=10;e.runningState=12;return 0}e.literalTreeGroup=new Int32Array(0);e.commandTreeGroup=new Int32Array(0);e.distanceTreeGroup=new Int32Array(0);let t;if(e.halfOffset>2030){t=readMoreInput(e);if(t<0)return t}t=function decodeMetaBlockLength(e){if(e.bitOffset>=16){e.accumulator32=e.shortBuffer[e.halfOffset++]<<16|e.accumulator32>>>16;e.bitOffset-=16}e.inputEnd=readFewBits(e,1);e.metaBlockLength=0;e.isUncompressed=0;e.isMetadata=0;if(0!==e.inputEnd&&0!==readFewBits(e,1))return 0;const t=readFewBits(e,2)+4;if(7===t){e.isMetadata=1;if(0!==readFewBits(e,1))return makeError(e,-6);const t=readFewBits(e,2);if(0===t)return 0;for(let n=0;n=16){e.accumulator32=e.shortBuffer[e.halfOffset++]<<16|e.accumulator32>>>16;e.bitOffset-=16}const a=readFewBits(e,8);if(0===a&&n+1===t&&t>1)return makeError(e,-8);e.metaBlockLength+=a<<8*n}}else for(let n=0;n=16){e.accumulator32=e.shortBuffer[e.halfOffset++]<<16|e.accumulator32>>>16;e.bitOffset-=16}const a=readFewBits(e,4);if(0===a&&n+1===t&&t>4)return makeError(e,-8);e.metaBlockLength+=a<<4*n}e.metaBlockLength++;0===e.inputEnd&&(e.isUncompressed=readFewBits(e,1));return 0}(e);if(t<0)return t;if(0===e.metaBlockLength&&0===e.isMetadata)return 0;if(0!==e.isUncompressed||0!==e.isMetadata){t=jumpToByteBoundary(e);if(t<0)return t;0===e.isMetadata?e.runningState=6:e.runningState=5}else e.runningState=3;if(0!==e.isMetadata)return 0;e.expectedTotalSize+=e.metaBlockLength;e.expectedTotalSize>1<<30&&(e.expectedTotalSize=1<<30);e.ringBufferSizee.expectedTotalSize){const n=e.expectedTotalSize;for(;t>>1>n;)t>>=1;0===e.inputEnd&&t<16384&&e.maxRingBufferSize>=16384&&(t=16384)}if(t<=e.ringBufferSize)return;const n=new Int8Array(t+37),a=e.ringBuffer;0!==a.length&&n.set(a.subarray(0,e.ringBufferSize),0);e.ringBuffer=n;e.ringBufferSize=t}(e);return 0}function readMetablockPartition(e,t,n){let a=e.blockTrees[2*t];if(n<=1){e.blockTrees[2*t+1]=a;e.blockTrees[2*t+2]=a;return 1<<28}const s=n+2;let r=readHuffmanCode(s,s,e.blockTrees,2*t,e);if(r<0)return r;a+=r;e.blockTrees[2*t+1]=a;r=readHuffmanCode(26,26,e.blockTrees,2*t+1,e);if(r<0)return r;a+=r;e.blockTrees[2*t+2]=a;return readBlockLength(e.blockTrees,2*t+1,e)}function readMetablockHuffmanCodesAndContextMaps(e){e.numLiteralBlockTypes=decodeVarLenUnsignedByte(e)+1;let t=readMetablockPartition(e,0,e.numLiteralBlockTypes);if(t<0)return t;e.literalBlockLength=t;e.numCommandBlockTypes=decodeVarLenUnsignedByte(e)+1;t=readMetablockPartition(e,1,e.numCommandBlockTypes);if(t<0)return t;e.commandBlockLength=t;e.numDistanceBlockTypes=decodeVarLenUnsignedByte(e)+1;t=readMetablockPartition(e,2,e.numDistanceBlockTypes);if(t<0)return t;e.distanceBlockLength=t;if(e.halfOffset>2030){t=readMoreInput(e);if(t<0)return t}if(e.bitOffset>=16){e.accumulator32=e.shortBuffer[e.halfOffset++]<<16|e.accumulator32>>>16;e.bitOffset-=16}e.distancePostfixBits=readFewBits(e,2);e.numDirectDistanceCodes=readFewBits(e,4)<=16){e.accumulator32=e.shortBuffer[e.halfOffset++]<<16|e.accumulator32>>>16;e.bitOffset-=16}e.contextModes[n]=readFewBits(e,2);n++}if(e.halfOffset>2030){t=readMoreInput(e);if(t<0)return t}}const a=e.numLiteralBlockTypes<<6;e.contextMap=new Int8Array(a);t=decodeContextMap(a,e.contextMap,e);if(t<0)return t;const s=t;e.trivialLiteralContext=1;for(let t=0;t>6){e.trivialLiteralContext=0;break}e.distContextMap=new Int8Array(e.numDistanceBlockTypes<<2);t=decodeContextMap(e.numDistanceBlockTypes<<2,e.distContextMap,e);if(t<0)return t;const r=t;e.literalTreeGroup=new Int32Array(huffmanTreeGroupAllocSize(256,s));t=decodeHuffmanTreeGroup(256,256,s,e,e.literalTreeGroup);if(t<0)return t;e.commandTreeGroup=new Int32Array(huffmanTreeGroupAllocSize(704,e.numCommandBlockTypes));t=decodeHuffmanTreeGroup(704,704,e.numCommandBlockTypes,e,e.commandTreeGroup);if(t<0)return t;let i=calculateDistanceAlphabetSize(e.distancePostfixBits,e.numDirectDistanceCodes,24),o=i;if(1===e.isLargeWindow){i=calculateDistanceAlphabetSize(e.distancePostfixBits,e.numDirectDistanceCodes,62);t=calculateDistanceAlphabetLimit(e,2147483644,e.distancePostfixBits,e.numDirectDistanceCodes);if(t<0)return t;o=t}e.distanceTreeGroup=new Int32Array(huffmanTreeGroupAllocSize(o,r));t=decodeHuffmanTreeGroup(i,o,r,e,e.distanceTreeGroup);if(t<0)return t;!function calculateDistanceLut(e,t){const n=e.distExtraBits,a=e.distOffset,s=e.distancePostfixBits,r=e.numDirectDistanceCodes,i=1<>>e.bitOffset;e.bitOffset+=8;r--}if(0===r)return 0;const i=Math.min(halfAvailable(e),r>>1);if(i>0){const n=e.halfOffset<<1,a=i<<1;t.set(e.byteBuffer.subarray(n,n+a),s);s+=a;r-=a;e.halfOffset+=i}if(0===r)return 0;if(halfAvailable(e)>0){if(e.bitOffset>=16){e.accumulator32=e.shortBuffer[e.halfOffset++]<<16|e.accumulator32>>>16;e.bitOffset-=16}for(;0!==r;){t[s++]=e.accumulator32>>>e.bitOffset;e.bitOffset+=8;r--}return checkHealth(e,0)}for(;r>0;){const n=readInput(e,t,s,r);if(n<-1)return n;if(n<=0)return makeError(e,-16);s+=n;r-=n}return 0}(e,t,e.pos,a);if(n<0)return n;e.metaBlockLength-=a;e.pos+=a;if(e.pos===e.ringBufferSize){e.nextRunningState=6;e.runningState=12;return 0}n=reload(e);if(n<0)return n;e.runningState=2;return 0}function writeRingBuffer(e){const t=Math.min(e.outputLength-e.outputUsed,e.ringBufferBytesReady-e.ringBufferBytesWritten);if(0!==t){e.output.set(e.ringBuffer.subarray(e.ringBufferBytesWritten,e.ringBufferBytesWritten+t),e.outputOffset+e.outputUsed);e.outputUsed+=t;e.ringBufferBytesWritten+=t}return e.outputUsed>5]}function decodeHuffmanTreeGroup(e,t,n,a,s){let r=n;for(let i=0;i2147483644)return makeError(e,-9);const n=e.distance-e.maxDistance-1-e.cdTotalSize;if(n<0){const t=function initializeCompoundDictionaryCopy(e,t,n){-1===e.cdBlockBits&&function initializeCompoundDictionary(e){e.cdBlockMap=new Int8Array(256);let t=8;for(;e.cdTotalSize-1>>t;)t++;t-=8;e.cdBlockBits=t;let n=0,a=0;for(;n>t]=a;n+=1<>e.cdBlockBits];for(;t>=e.cdChunkOffsets[a+1];)a++;if(e.cdTotalSize>t+n)return makeError(e,-9);e.distRbIdx=e.distRbIdx+1&3;e.rings[e.distRbIdx]=e.distance;e.metaBlockLength-=n;e.cdBrIndex=a;e.cdBrOffset=t-e.cdChunkOffsets[a];e.cdBrLength=n;e.cdBrCopied=0;return 0}(e,-n-1,e.copyLength);if(t<0)return t;e.runningState=14}else{const a=u,s=e.copyLength;if(s>31)return makeError(e,-9);const r=p[s];if(0===r)return makeError(e,-9);let i=m[s];const o=n>>r;i+=(n&(1<=l.numTransforms)return makeError(e,-9);const f=function transformDictionaryWord(e,t,n,a,s,r,i){let o=t;const l=r.triplets,f=r.prefixSuffixStorage,c=r.prefixSuffixHeads,h=3*i,u=l[h],m=l[h+1],p=l[h+2];let d=c[u];const g=c[u+1];let b=c[p];const w=c[p+1];let j=m-11,k=m;(j<1||j>9)&&(j=0);(k<1||k>9)&&(k=0);for(;d!==g;)e[o++]=f[d++];let y=s;j>y&&(j=y);let q=a+j;y-=j;y-=k;let v=y;for(;v>0;){e[o++]=n[q++];v--}if(10===m||11===m){let t=o-y;10===m&&(y=1);for(;y>0;){const n=255&e[t];if(n<192){n>=97&&n<=122&&(e[t]=32^e[t]);t+=1;y-=1}else if(n<224){e[t+1]=32^e[t+1];t+=2;y-=2}else{e[t+2]=5^e[t+2];t+=3;y-=3}}}else if(21===m||22===m){let t=o-y;const n=r.params[i];let a=16777216-(32768&n)+(32767&n);for(;y>0;){let n=1;const s=255&e[t];if(s<128){a+=s;e[t]=127&a}else if(s<192);else if(s<224)if(y>=2){const r=e[t+1];a+=63&r|(31&s)<<6;e[t]=192|a>>6&31;e[t+1]=192&r|63&a;n=2}else n=y;else if(s<240)if(y>=3){const r=e[t+1],i=e[t+2];a+=63&i|(63&r)<<6|(15&s)<<12;e[t]=224|a>>12&15;e[t+1]=192&r|a>>6&63;e[t+2]=192&i|63&a;n=3}else n=y;else if(s<248)if(y>=4){const r=e[t+1],i=e[t+2],o=e[t+3];a+=63&o|(63&i)<<6|(63&r)<<12|(7&s)<<18;e[t]=240|a>>18&7;e[t+1]=192&r|a>>12&63;e[t+2]=192&i|a>>6&63;e[t+3]=192&o|63&a;n=4}else n=y;t+=n;y-=n;21===m&&(y=0)}}for(;b!==w;)e[o++]=f[b++];return o-t}(e.ringBuffer,e.pos,a,i,s,l,o);e.pos+=f;e.metaBlockLength-=f;if(e.pos>=t){e.nextRunningState=4;e.runningState=12;return 0}e.runningState=4}return 0}function copyFromCompoundDictionary(e,t){let n=e.pos;const a=n;for(;e.cdBrLength!==e.cdBrCopied;){const a=t-n,s=e.cdChunkOffsets[e.cdBrIndex+1]-e.cdChunkOffsets[e.cdBrIndex]-e.cdBrOffset;let r=e.cdBrLength-e.cdBrCopied;r>s&&(r=s);r>a&&(r=a);e.ringBuffer.set(e.cdChunks[e.cdBrIndex].subarray(e.cdBrOffset,e.cdBrOffset+r),n);n+=r;e.cdBrOffset+=r;e.cdBrCopied+=r;if(r===s){e.cdBrIndex++;e.cdBrOffset=0}if(n>=t)break}return n-a}function decompress(e){let t;if(0===e.runningState)return makeError(e,-25);if(e.runningState<0)return makeError(e,-28);if(11===e.runningState)return makeError(e,-22);if(1===e.runningState){const t=function decodeWindowBits(e){const t=e.isLargeWindow;e.isLargeWindow=0;if(e.bitOffset>=16){e.accumulator32=e.shortBuffer[e.halfOffset++]<<16|e.accumulator32>>>16;e.bitOffset-=16}if(0===readFewBits(e,1))return 16;let n=readFewBits(e,3);if(0!==n)return 17+n;n=readFewBits(e,3);if(0!==n){if(1===n){if(0===t)return-1;e.isLargeWindow=1;if(1===readFewBits(e,1))return-1;n=readFewBits(e,6);return n<10||n>30?-1:n}return 8+n}return 17}(e);if(-1===t)return makeError(e,-11);e.maxRingBufferSize=1<2030){t=readMoreInput(e);if(t<0)return t}0===e.commandBlockLength&&decodeCommandBlockSwitch(e);e.commandBlockLength--;if(e.bitOffset>=16){e.accumulator32=e.shortBuffer[e.halfOffset++]<<16|e.accumulator32>>>16;e.bitOffset-=16}const o=readSymbol(e.commandTreeGroup,e.commandTreeIdx,e)<<2,l=f[o],c=f[o+1],u=f[o+2];e.distanceCode=f[o+3];if(e.bitOffset>=16){e.accumulator32=e.shortBuffer[e.halfOffset++]<<16|e.accumulator32>>>16;e.bitOffset-=16}const m=255&l;e.insertLength=c+(m<=16?readFewBits(e,m):readManyBits(e,m));if(e.bitOffset>=16){e.accumulator32=e.shortBuffer[e.halfOffset++]<<16|e.accumulator32>>>16;e.bitOffset-=16}const p=l>>8;e.copyLength=u+(p<=16?readFewBits(e,p):readManyBits(e,p));e.j=0;e.runningState=7;continue;case 7:if(0!==e.trivialLiteralContext)for(;e.j2030){t=readMoreInput(e);if(t<0)return t}0===e.literalBlockLength&&decodeLiteralBlockSwitch(e);e.literalBlockLength--;if(e.bitOffset>=16){e.accumulator32=e.shortBuffer[e.halfOffset++]<<16|e.accumulator32>>>16;e.bitOffset-=16}i[e.pos]=readSymbol(e.literalTreeGroup,e.literalTreeIdx,e);e.pos++;e.j++;if(e.pos>=s){e.nextRunningState=7;e.runningState=12;break}}else{let n=255&i[e.pos-1&r],a=255&i[e.pos-2&r];for(;e.j2030){t=readMoreInput(e);if(t<0)return t}0===e.literalBlockLength&&decodeLiteralBlockSwitch(e);const r=h[e.contextLookupOffset1+n]|h[e.contextLookupOffset2+a],o=255&e.contextMap[e.contextMapSlice+r];e.literalBlockLength--;a=n;if(e.bitOffset>=16){e.accumulator32=e.shortBuffer[e.halfOffset++]<<16|e.accumulator32>>>16;e.bitOffset-=16}n=readSymbol(e.literalTreeGroup,o,e);i[e.pos]=n;e.pos++;e.j++;if(e.pos>=s){e.nextRunningState=7;e.runningState=12;break}}}if(7!==e.runningState)continue;e.metaBlockLength-=e.insertLength;if(e.metaBlockLength<=0){e.runningState=4;continue}let d=e.distanceCode;if(d<0)e.distance=e.rings[e.distRbIdx];else{if(e.halfOffset>2030){t=readMoreInput(e);if(t<0)return t}0===e.distanceBlockLength&&decodeDistanceBlockSwitch(e);e.distanceBlockLength--;if(e.bitOffset>=16){e.accumulator32=e.shortBuffer[e.halfOffset++]<<16|e.accumulator32>>>16;e.bitOffset-=16}const s=255&e.distContextMap[e.distContextMapSlice+d];d=readSymbol(e.distanceTreeGroup,s,e);if(d<16){const t=e.distRbIdx+n[d]&3;e.distance=e.rings[t]+a[d];if(e.distance<0)return makeError(e,-12)}else{const t=e.distExtraBits[d];let n;if(e.bitOffset+t<=32)n=readFewBits(e,t);else{if(e.bitOffset>=16){e.accumulator32=e.shortBuffer[e.halfOffset++]<<16|e.accumulator32>>>16;e.bitOffset-=16}n=t<=16?readFewBits(e,t):readManyBits(e,t)}e.distance=e.distOffset[d]+(n<e.maxDistance){e.runningState=9;continue}if(d>0){e.distRbIdx=e.distRbIdx+1&3;e.rings[e.distRbIdx]=e.distance}if(e.copyLength>e.metaBlockLength)return makeError(e,-9);e.j=0;e.runningState=8;continue;case 8:let g=e.pos-e.distance&r,b=e.pos;const w=e.copyLength-e.j,j=g+w,k=b+w;if(jb&&k>g){const e=w+3>>2;for(let t=0;t=s){e.nextRunningState=8;e.runningState=12;break}}8===e.runningState&&(e.runningState=4);continue;case 9:t=doUseDictionary(e,s);if(t<0)return t;continue;case 14:e.pos+=copyFromCompoundDictionary(e,s);if(e.pos>=s){e.nextRunningState=14;e.runningState=12;return 2}e.runningState=4;continue;case 5:for(;e.metaBlockLength>0;){if(e.halfOffset>2030){t=readMoreInput(e);if(t<0)return t}if(e.bitOffset>=16){e.accumulator32=e.shortBuffer[e.halfOffset++]<<16|e.accumulator32>>>16;e.bitOffset-=16}readFewBits(e,8);e.metaBlockLength--}e.runningState=2;continue;case 6:t=copyUncompressedData(e);if(t<0)return t;continue;case 12:e.ringBufferBytesReady=Math.min(e.pos,e.ringBufferSize);e.runningState=13;continue;case 13:t=writeRingBuffer(e);if(0!==t)return t;e.pos>=e.maxBackwardDistance&&(e.maxDistance=e.maxBackwardDistance);if(e.pos>=e.ringBufferSize){e.pos>e.ringBufferSize&&i.copyWithin(0,e.ringBufferSize,e.pos);e.pos=e.pos&r;e.ringBufferBytesWritten=0}e.runningState=e.nextRunningState;continue;default:return makeError(e,-28)}if(10!==e.runningState)return makeError(e,-29);if(e.metaBlockLength<0)return makeError(e,-10);t=jumpToByteBoundary(e);if(0!==t)return t;t=checkHealth(e,1);return 0!==t?t:1}const c=new function Transforms(e,t,n){this.numTransforms=0;this.triplets=new Int32Array(0);this.prefixSuffixStorage=new Int8Array(0);this.prefixSuffixHeads=new Int32Array(0);this.params=new Int16Array(0);this.numTransforms=e;this.triplets=new Int32Array(3*e);this.params=new Int16Array(e);this.prefixSuffixStorage=new Int8Array(t);this.prefixSuffixHeads=new Int32Array(n+1)}(121,167,50);!function unpackTransforms(e,t,n,a,s){const r=toUtf8Runes(a),i=r.length;let o=1,l=0;for(let n=0;n#\n#]# for # a # that #. # with #\'# from # by #. The # on # as # is #ing #\n\t#:#ed #(# at #ly #="# of the #. This #,# not #er #al #=\'#ful #ive #less #est #ize #ous #'," !! ! , *! &! \" ! ) * * - ! # ! #!*! + ,$ ! - % . / # 0 1 . \" 2 3!* 4% ! # / 5 6 7 8 0 1 & $ 9 + : ; < ' != > ?! 4 @ 4 2 & A *# ( B C& ) % ) !*# *-% A +! *. D! %' & E *6 F G% ! *A *% H! D I!+! J!+ K +- *4! A L!*4 M N +6 O!*% +.! K *G P +%( ! G *D +D Q +# *K!*G!+D!+# +G +A +4!+% +K!+4!*D!+K!*K");function getNextKey(e,t){let n=1<>=1;return(e&n-1)+n}function replicateValue(e,t,n,a,s){let r=a;for(;r>0;){r-=n;e[t+r]=s}}function nextTableBitSize(e,t,n){let a=t,s=1<0;){replicateValue(e,r+u,p,c,t<<16|i[m++]);u=getNextKey(u,t);o[t]--}}const d=h-1;let g=-1,b=r;p=1;for(let t=n+1;t<=15;++t){p<<=1;for(;o[t]>0;){if((u&d)!==g){b+=c;f=nextTableBitSize(o,t,n);c=1<>n),p,c,t-n<<16|i[m++]);u=getNextKey(u,t);o[t]--}}return h}function readMoreInput(e){if(0!==e.endOfStreamReached)return halfAvailable(e)>=-2?0:makeError(e,-16);const t=e.halfOffset<<1;let n=4096-t;e.byteBuffer.copyWithin(0,t,4096);e.halfOffset=0;for(;n<4096;){const t=4096-n,a=readInput(e,e.byteBuffer,n,t);if(a<-1)return a;if(a<=0){e.endOfStreamReached=1;e.tailBytes=n;n+=1;break}n+=a}!function bytesToNibbles(e,t){const n=e.byteBuffer,a=t>>1,s=e.shortBuffer;for(let e=0;e>3)-4;return n>e.tailBytes?makeError(e,-13):0!==t&&n!==e.tailBytes?makeError(e,-17):0}function readFewBits(e,t){const n=e.accumulator32>>>e.bitOffset&(1<>>16;e.bitOffset-=16;return n|readFewBits(e,t-16)<<16}function prepare(e){if(e.halfOffset>2030){const t=readMoreInput(e);if(0!==t)return t}let t=checkHealth(e,0);if(0!==t)return t;e.accumulator32=e.shortBuffer[e.halfOffset++]<<16|e.accumulator32>>>16;e.bitOffset-=16;e.accumulator32=e.shortBuffer[e.halfOffset++]<<16|e.accumulator32>>>16;e.bitOffset-=16;return 0}function reload(e){return 32===e.bitOffset?prepare(e):0}function jumpToByteBoundary(e){const t=32-e.bitOffset&7;if(0!==t){if(0!==readFewBits(e,t))return makeError(e,-5)}return 0}function halfAvailable(e){let t=2048;0!==e.endOfStreamReached&&(t=e.tailBytes+1>>1);return t-e.halfOffset}const h=new Int32Array(2048);!function unpackLookupTable(e,t,n){for(let t=0;t<256;++t){e[t]=63&t;e[512+t]=t>>2;e[1792+t]=2+(t>>6)}for(let n=0;n<128;++n)e[1024+n]=4*(t.charCodeAt(n)-32);for(let t=0;t<64;++t){e[1152+t]=1&t;e[1216+t]=2+(1&t)}let a=1280;for(let t=0;t<19;++t){const s=3&t,r=n.charCodeAt(t)-32;for(let t=0;t>1;for(let e=0;e!pfwp6s{8-ip<73s{je#+pllmpfbwmlmfwvafyfqlpfmwqffgeb`wjmwldjewkbqn2;s{`bnfkjooalogyllnuljgfbpzqjmdejoosfbhjmjw`lpw0s{8ib`hwbdpajwpqloofgjwhmftmfbq?"..dqltIPLMgvwzMbnfpbofzlv#olwpsbjmibyy`logfzfpejpkttt-qjphwbapsqfu23s{qjpf16s{Aovfgjmd033/abooelqgfbqmtjogal{-ebjqob`hufqpsbjqivmfwf`kje+"sj`hfujo\'+! tbqnolqgglfpsvoo/333jgfbgqbtkvdfpslwevmgavqmkqfe`foohfzpwj`hklvqolppevfo21s{pvjwgfboQPP!bdfgdqfzDFW!fbpfbjnpdjqobjgp;s{8mbuzdqjgwjsp :::tbqpobgz`bqp*8#~sksolpfmvooubpwtjmgQPP#tfbqqfozaffmpbnfgvhfmbpb`bsftjpkdvoeW109kjwppolwdbwfhj`haovqwkfz26s{$$*8*8!=npjftjmpajqgplqwafwbpffhW2;9lqgpwqffnboo53s{ebqnlupalzpX3^-$*8!SLPWafbqhjgp*8~~nbqzwfmg+VH*rvbgyk9\n.pjy....sqls$*8ojewW2:9uj`fbmgzgfaw=QPPsllomf`haoltW259gllqfuboW249ofwpebjolqbosloomlub`lopdfmf#lxplewqlnfwjooqlpp?k0=slvqebgfsjmh?wq=njmj*"+njmfyk9abqpkfbq33*8njoh#..=jqlmeqfggjphtfmwpljosvwp,ip,klozW119JPAMW139bgbnpffp?k1=iplm$/#$`lmwW129#QPPollsbpjbnllm?,s=plvoOJMFelqw`bqwW279?k2=;3s{"..?:s{8W379njhf975Ymj`fjm`kZlqhqj`fyk9\b$**8svqfnbdfsbqbwlmfalmg904Y\\le\\$^*8333/yk9\vwbmhzbqgaltoavpk965YIbub03s{\t~\t&@0&907YifeeF[SJ`bpkujpbdloepmltyk9rvfq-`pppj`hnfbwnjm-ajmggfookjqfsj`pqfmw905YKWWS.132elwltloeFMG#{al{967YALGZgj`h8\t~\tf{jw906Yubqpafbw$~*8gjfw:::8bmmf~~?,Xj^-Obmdhn.^tjqfwlzpbggppfbobof{8\t\n~f`klmjmf-lqd336*wlmziftppbmgofdpqlle333*#133tjmfdfbqgldpallwdbqz`vwpwzofwfnswjlm-{no`l`hdbmd\'+$-63s{Sk-Gnjp`bobmolbmgfphnjofqzbmvmj{gjp`*8~\tgvpw`ojs*-\t\t43s{.133GUGp4^=?wbsfgfnlj((*tbdffvqlskjolswpklofEBRpbpjm.15WobapsfwpVQO#avoh`llh8~\tKFBGX3^*baaqivbm+2:;ofpkwtjm?,j=plmzdvzpev`hsjsf.\t"331*mgltX2^8X^8\tOld#pbow\t\n\nabmdwqjnabwk*x\t33s{\t~*8hl9\0effpbg=p9,,#X^8wloosovd+*x\tx\t#-ip$133sgvboalbw-ISD*8\t~rvlw*8\t\t$*8\t\t~1327132613251324132;132:13131312131113101317131613151314131;131:130313021301130013071306130513041320132113221323133:133;133413351336133713301331133213332:::2::;2::42::52::62::72::02::12::22::32:;:2:;;2:;42:;52:;62:;72:;02:;12:;22:;32:4:2:4;2:442:452:462:472:402:412:422:432:5:2:5;2:542:552:562:572:502:512:522:532:6:2:6;2:642:652:662:672:602:612:622:632333231720:73333::::`lnln/Mpfpwffpwbsfqlwlglkb`f`bgbb/]lajfmg/Abbp/Aujgb`bpllwqlelqlplollwqb`vbogjilpjgldqbmwjslwfnbgfafbodlrv/Efpwlmbgbwqfpsl`l`bpbabilwlgbpjmlbdvbsvfpvmlpbmwfgj`fovjpfoobnbzlylmbbnlqsjpllaqb`oj`foolgjlpklqb`bpj<[<\\!sbqhpnlvpfNlpw#---?,bnlmdaqbjmalgz#mlmf8abpfg`bqqzgqbewqfefqsbdf\\klnf-nfwfqgfobzgqfbnsqlufiljmw?,wq=gqvdp?"..#bsqjojgfboboofmf{b`welqwk`lgfpoldj`Ujft#pffnpaobmhslqwp#+133pbufg\\ojmhdlbopdqbmwdqffhklnfpqjmdpqbwfg03s{8tklpfsbqpf+*8!#Aol`hojmv{ilmfpsj{fo$*8!=*8je+.ofewgbujgklqpfEl`vpqbjpfal{fpWqb`hfnfmw?,fn=abq!=-pq`>wltfqbow>!`baofkfmqz17s{8pfwvsjwbozpkbqsnjmlqwbpwftbmwpwkjp-qfpfwtkffodjqop,`pp,233&8`ovappwveeajaofulwfp#2333hlqfb~*8\tabmgprvfvf>#x~8;3s{8`hjmdx\t\n\nbkfbg`ol`hjqjpkojhf#qbwjlpwbwpElqn!zbkll*X3^8Balvwejmgp?,k2=gfavdwbphpVQO#>`foop~*+*821s{8sqjnfwfoopwvqmp3{533-isd!psbjmafb`kwb{fpnj`qlbmdfo..=?,djewppwfuf.ojmhalgz-~*8\t\nnlvmw#+2::EBR?,qldfqeqbmh@obpp1;s{8effgp?k2=?p`lwwwfpwp11s{8gqjmh*##oftjppkboo 30:8#elq#olufgtbpwf33s{8ib9npjnlm?elmwqfsoznffwpvmwfq`kfbswjdkwAqbmg*#">#gqfpp`ojspqllnplmhfznlajonbjm-Mbnf#sobwfevmmzwqffp`ln,!2-isdtnlgfsbqbnPWBQWofew#jggfm/#132*8\t~\telqn-ujqvp`kbjqwqbmptlqpwSbdfpjwjlmsbw`k?"..\tl.`b`ejqnpwlvqp/333#bpjbmj((*xbglaf$*X3^jg>23alwk8nfmv#-1-nj-smd!hfujm`lb`k@kjogaqv`f1-isdVQO*(-isdpvjwfpoj`fkbqqz213!#ptffwwq=\tmbnf>gjfdlsbdf#ptjpp..=\t\t eee8!=Old-`ln!wqfbwpkffw*#%%#27s{8poffsmwfmwejofgib9ojg>!`Mbnf!tlqpfpklwp.al{.gfowb\t%ow8afbqp97;Y?gbwb.qvqbo?,b=#psfmgabhfqpklsp>#!!8sks!=`wjlm20s{8aqjbmkfoolpjyf>l>&1E#iljmnbzaf?jnd#jnd!=/#eipjnd!#!*X3^NWlsAWzsf!mftozGbmph`yf`kwqbjohmltp?,k6=ebr!=yk.`m23*8\t.2!*8wzsf>aovfpwqvozgbujp-ip$8=\t?"pwffo#zlv#k1=\telqn#ifpvp233&#nfmv-\t\n\ttbofpqjphpvnfmwggjmda.ojhwfb`kdje!#ufdbpgbmphffpwjpkrjspvlnjplaqfgfpgffmwqfwlglpsvfgfb/]lpfpw/Mwjfmfkbpwblwqlpsbqwfglmgfmvfulkb`fqelqnbnjpnlnfilqnvmglbrv/Ag/Abpp/_olbzvgbef`kbwlgbpwbmwlnfmlpgbwlplwqbppjwjlnv`klbklqbovdbqnbzlqfpwlpklqbpwfmfqbmwfpelwlpfpwbpsb/Apmvfubpbovgelqlpnfgjlrvjfmnfpfpslgfq`kjofpfq/Muf`fpgf`jqilp/Efpwbqufmwbdqvslkf`klfoolpwfmdlbnjdl`lpbpmjufodfmwfnjpnbbjqfpivojlwfnbpkb`jbebulqivmjlojaqfsvmwlavfmlbvwlqbaqjoavfmbwf{wlnbqylpbafqojpwbovfdl`/_nlfmfqlivfdlsfq/Vkbafqfpwlzmvm`bnvifqubolqevfqbojaqldvpwbjdvboulwlp`bplpdv/Absvfglplnlpbujplvpwfggfafmml`kfavp`bebowbfvqlppfqjfgj`kl`vqpl`obuf`bpbpof/_msobylobqdllaqbpujpwbbslzlivmwlwqbwbujpwl`qfbq`bnslkfnlp`jm`l`bqdlsjplplqgfmkb`fm/Mqfbgjp`lsfgql`fq`bsvfgbsbsfonfmlq/Vwjo`obqlilqdf`boofslmfqwbqgfmbgjfnbq`bpjdvffoobppjdol`l`kfnlwlpnbgqf`obpfqfpwlmj/]lrvfgbsbpbqabm`lkjilpujbifsbaol/Epwfujfmfqfjmlgfibqelmgl`bmbomlqwfofwqb`bvpbwlnbqnbmlpovmfpbvwlpujoobufmglsfpbqwjslpwfmdbnbq`loofubsbgqfvmjglubnlpylmbpbnalpabmgbnbqjbbavplnv`kbpvajqqjlibujujqdqbgl`kj`bboo/Ailufmgj`kbfpwbmwbofppbojqpvfolsfplpejmfpoobnbavp`l/Epwboofdbmfdqlsobybkvnlqsbdbqivmwbglaofjpobpalopbab/]lkbaobov`kb/mqfbgj`fmivdbqmlwbpuboofboo/M`bqdbglolqbabilfpw/Edvpwlnfmwfnbqjlejqnb`lpwlej`kbsobwbkldbqbqwfpofzfpbrvfonvpflabpfpsl`lpnjwbg`jfol`kj`lnjfgldbmbqpbmwlfwbsbgfafpsobzbqfgfppjfwf`lqwf`lqfbgvgbpgfpflujfilgfpfbbdvbp%rvlw8glnbjm`lnnlmpwbwvpfufmwpnbpwfqpzpwfnb`wjlmabmmfqqfnlufp`qloovsgbwfdolabonfgjvnejowfqmvnafq`kbmdfqfpvowsvaoj`p`qffm`kllpfmlqnbowqbufojppvfpplvq`fwbqdfwpsqjmdnlgvofnlajofptjw`ksklwlpalqgfqqfdjlmjwpfoepl`jbob`wjuf`lovnmqf`lqgelooltwjwof=fjwkfqofmdwkebnjozeqjfmgobzlvwbvwklq`qfbwfqfujftpvnnfqpfqufqsobzfgsobzfqf{sbmgsloj`zelqnbwglvaofsljmwppfqjfpsfqplmojujmdgfpjdmnlmwkpelq`fpvmjrvftfjdkwsflsoffmfqdzmbwvqfpfbq`kejdvqfkbujmd`vpwlnleepfwofwwfqtjmgltpvanjwqfmgfqdqlvspvsolbgkfbowknfwklgujgflpp`klloevwvqfpkbgltgfabwfubovfpLaif`wlwkfqpqjdkwpofbdvf`kqlnfpjnsofmlwj`fpkbqfgfmgjmdpfbplmqfslqwlmojmfprvbqfavwwlmjnbdfpfmbaofnlujmdobwfpwtjmwfqEqbm`fsfqjlgpwqlmdqfsfbwOlmglmgfwbjoelqnfggfnbmgpf`vqfsbppfgwlddofsob`fpgfuj`fpwbwj``jwjfppwqfbnzfooltbwwb`hpwqffweojdkwkjggfmjmel!=lsfmfgvpfevouboofz`bvpfpofbgfqpf`qfwpf`lmggbnbdfpslqwpf{`fswqbwjmdpjdmfgwkjmdpfeef`wejfogppwbwfpleej`fujpvbofgjwlqulovnfQfslqwnvpfvnnlujfpsbqfmwb``fppnlpwoznlwkfq!#jg>!nbqhfwdqlvmg`kbm`fpvqufzafelqfpznalonlnfmwpsff`knlwjlmjmpjgfnbwwfq@fmwfqlaif`wf{jpwpnjggofFvqlsfdqltwkofdb`znbmmfqfmlvdk`bqffqbmptfqlqjdjmslqwbo`ojfmwpfof`wqbmgln`olpfgwlsj`p`lnjmdebwkfqlswjlmpjnsozqbjpfgfp`bsf`klpfm`kvq`kgfejmfqfbplm`lqmfqlvwsvwnfnlqzjeqbnfsloj`fnlgfopMvnafqgvqjmdleefqppwzofphjoofgojpwfg`boofgpjoufqnbqdjmgfofwfafwwfqaqltpfojnjwpDolabopjmdoftjgdfw`fmwfqavgdfwmltqbs`qfgjw`objnpfmdjmfpbefwz`klj`fpsjqjw.pwzofpsqfbgnbhjmdmffgfgqvppjbsofbpff{wfmwP`qjswaqlhfmbooltp`kbqdfgjujgfeb`wlqnfnafq.abpfgwkflqz`lmejdbqlvmgtlqhfgkfosfg@kvq`kjnsb`wpklvogbotbzpoldl!#alwwlnojpw!=*xubq#sqfej{lqbmdfKfbgfq-svpk+`lvsofdbqgfmaqjgdfobvm`kQfujftwbhjmdujpjlmojwwofgbwjmdAvwwlmafbvwzwkfnfpelqdlwPfbq`kbm`klqbonlpwolbgfg@kbmdfqfwvqmpwqjmdqfolbgNlajofjm`lnfpvssozPlvq`flqgfqpujftfg%maps8`lvqpfBalvw#jpobmg?kwno#`llhjfmbnf>!bnbylmnlgfqmbguj`fjm?,b=9#Wkf#gjboldklvpfpAFDJM#Nf{j`lpwbqwp`fmwqfkfjdkwbggjmdJpobmgbppfwpFnsjqfP`kllofeelqwgjqf`wmfbqoznbmvboPfof`w-\t\tLmfiljmfgnfmv!=SkjojsbtbqgpkbmgofjnslqwLeej`fqfdbqgphjoopmbwjlmPslqwpgfdqfftffhoz#+f-d-afkjmggl`wlqolddfgvmjwfg?,a=?,afdjmpsobmwpbppjpwbqwjpwjppvfg033s{`bmbgbbdfm`zp`kfnfqfnbjmAqbyjopbnsofoldl!=afzlmg.p`bofb``fswpfqufgnbqjmfEllwfq`bnfqb?,k2=\t\\elqn!ofbufppwqfpp!#,=\t-dje!#lmolbgolbgfqL{elqgpjpwfqpvqujuojpwfmefnbofGfpjdmpjyf>!bssfbowf{w!=ofufopwkbmhpkjdkfqelq`fgbmjnbobmzlmfBeqj`bbdqffgqf`fmwSflsof?aq#,=tlmgfqsqj`fpwvqmfg#x~8nbjm!=jmojmfpvmgbztqbs!=ebjofg`fmpvpnjmvwfafb`lmrvlwfp263s{fpwbwfqfnlwffnbjo!ojmhfgqjdkw8pjdmboelqnbo2-kwnopjdmvssqjm`feolbw9-smd!#elqvn-B``fppsbsfqpplvmgpf{wfmgKfjdkwpojgfqVWE.;!%bns8#Afelqf-#TjwkpwvgjlltmfqpnbmbdfsqlejwiRvfqzbmmvbosbqbnpalvdkwebnlvpdlldofolmdfqj((*#xjpqbfopbzjmdgf`jgfklnf!=kfbgfqfmpvqfaqbm`ksjf`fpaol`h8pwbwfgwls!=?qb`jmdqfpjyf..%dw8sb`jwzpf{vboavqfbv-isd!#23/333lawbjmwjwofpbnlvmw/#Jm`-`lnfgznfmv!#ozqj`pwlgbz-jmgffg`lvmwz\\oldl-EbnjozollhfgNbqhfwopf#jeSobzfqwvqhfz*8ubq#elqfpwdjujmdfqqlqpGlnbjm~fopfxjmpfqwAold?,ellwfqoldjm-ebpwfqbdfmwp?algz#23s{#3sqbdnbeqjgbzivmjlqgloobqsob`fg`lufqpsovdjm6/333#sbdf!=alpwlm-wfpw+bubwbqwfpwfg\\`lvmwelqvnpp`kfnbjmgf{/ejoofgpkbqfpqfbgfqbofqw+bssfbqPvanjwojmf!=algz!=\t)#WkfWklvdkpffjmdifqpfzMftp?,ufqjezf{sfqwjmivqztjgwk>@llhjfPWBQW#b`qlpp\\jnbdfwkqfbgmbwjufsl`hfwal{!=\tPzpwfn#Gbujg`bm`fqwbaofpsqlufgBsqjo#qfboozgqjufqjwfn!=nlqf!=albqgp`lolqp`bnsvpejqpw##X^8nfgjb-dvjwbqejmjpktjgwk9pkltfgLwkfq#-sks!#bppvnfobzfqptjoplmpwlqfpqfojfeptfgfm@vpwlnfbpjoz#zlvq#Pwqjmd\t\tTkjowbzolq`ofbq9qfplqweqfm`kwklvdk!*#(#!?algz=avzjmdaqbmgpNfnafqmbnf!=lssjmdpf`wlq6s{8!=upsb`fslpwfqnbilq#`leeffnbqwjmnbwvqfkbssfm?,mbu=hbmpbpojmh!=Jnbdfp>ebopftkjof#kpsb`f3%bns8#\t\tJm##sltfqSlophj.`lolqilqgbmAlwwlnPwbqw#.`lvmw1-kwnomftp!=32-isdLmojmf.qjdkwnjoofqpfmjlqJPAM#33/333#dvjgfpubovf*f`wjlmqfsbjq-{no!##qjdkwp-kwno.aol`hqfdF{s9klufqtjwkjmujqdjmsklmfp?,wq=vpjmd#\t\nubq#=$*8\t\n?,wg=\t?,wq=\tabkbpbaqbpjodbofdlnbdzbqslophjpqsphj4]4C5d\bTA\nzk\vBl\bQ\vUmGx\bSM\nmC\bTA\twQ\nd}\bW@\bTl\bTF\ti@\tcT\vBM\v|jBV\tqw\tcC\bWI\npa\tfM\n{Z{X\bTF\bVV\bVK\tmkF\t[]\bPm\bTv\nsI\vpg\t[I\bQpmx\v_W\n^M\npe\vQ}\vGu\nel\npeChBV\bTA\tSo\nzk\vGL\vxD\nd[JzMY\bQpli\nfl\npC{BNt\vwT\ti_\bTgQQ\n|p\vXN\bQS\vxDQC\bWZ\tpD\vVS\bTWNtYh\nzuKjN}\twr\tHa\n_D\tj`\vQ}\vWp\nxZ{c\tji\tBU\nbDa|\tTn\tpV\nZd\nmC\vEV{X\tc}\tTo\bWl\bUd\tIQ\tcg\vxs\nXW\twR\vek\tc}\t]y\tJn\nrp\neg\npV\nz\\{W\npl\nz\\\nzU\tPc\t`{\bV@\nc|\bRw\ti_\bVb\nwX\tHvSu\bTF\v_W\vWs\vsIm\nTT\ndc\tUS\t}f\tiZ\bWz\tc}MD\tBe\tiD\v@@\bTl\bPv\t}tSwM`\vnU\tkW\ved\nqo\vxY\tA|\bTz\vy`BRBM\tiaXU\nyun^\tfL\tiI\nXW\tfD\bWz\bW@\tyj\tm\tav\tBN\vb\\\tpD\bTf\nY[\tJn\bQy\t[^\vWc\vyuDlCJ\vWj\vHR\t`V\vuW\tQy\np@\vGuplJm\bW[\nLP\nxC\n`m\twQuiR\nbI\twQ\tBZ\tWVBR\npg\tcgtiCW\n_y\tRg\bQa\vQB\vWc\nYble\ngESu\nL[\tQ\tea\tdj\v]W\nb~M`\twL\bTV\bVH\nt\npl\t|bs_\bU|\bTaoQlvSkM`\bTv\vK}\nfl\tcCoQBR\tHk\t|d\bQp\tHK\tBZ\vHR\bPv\vLx\vEZ\bT\bTv\tiDoDMU\vwBSuk`St\ntC\tPl\tKg\noi\tjY\vxYh}\nzk\bWZ\tm\ve`\tTB\tfE\nzk\t`zYh\nV|\tHK\tAJ\tAJ\bUL\tp\\\tql\nYcKd\nfyYh\t[I\vDgJm\n]n\nlb\bUd\n{Z\tlu\tfsoQ\bTWJm\vwB\teaYhBC\tsb\tTn\nzU\n_y\vxY\tQ]\ngwmt\tO\\\ntb\bWW\bQy\tmI\tV[\ny\\\naB\vRb\twQ\n]QQJ\bWg\vWa\bQj\ntC\bVH\nYm\vxs\bVK\nel\bWI\vxYCq\ntR\vHV\bTl\bVw\tay\bQa\bVV\t}t\tdj\nr|\tp\\\twR\n{i\nTT\t[I\ti[\tAJ\vxs\v_W\td{\vQ}\tcg\tTz\tA|\tCj\vLmN}m\nbK\tdZ\tp\\\t`V\tsV\np@\tiD\twQ\vQ}\bTfkaJm\v@@\bV`\tzp\n@NSw\tiI\tcg\noiSu\bVwloCy\tc}\vb\\\tsUBA\bWI\bTf\nxS\tVp\nd|\bTV\vbC\tNoJu\nTC\t|`\n{Z\tD]\bU|\tc}lm\bTl\tBv\tPl\tc}\bQp\tm\nLk\tkj\n@NSbKO\tj_\tp\\\nzU\bTl\bTg\bWI\tcfXO\bWW\ndzli\tBN\nd[\bWOMD\vKC\tdj\tI_\bVV\ny\\\vLmxl\txB\tkV\vb\\\vJW\vVS\tVx\vxD\td{MD\bTa\t|`\vPzR}\vWsBM\nsICN\bTaJm\npe\ti_\npV\nrh\tRd\tHv\n~A\nxR\vWh\vWk\nxS\vAz\vwX\nbIoQ\tfw\nqI\nV|\nunz\vpg\td\\\voA{D\ti_xB\bT\t`Vqr\tTTg]CA\vuR\tVJ\tT`\npw\vRb\tI_\nCxRo\vsICjKh\tBv\tWVBBoD{D\nhcKm\v^R\tQE\n{I\np@\nc|Gt\tc}Dl\nzUqN\tsVk}\tHh\v|j\nqou|\tQ]\vekZM`St\npe\tdj\bVG\veE\tm\vWc|I\n[W\tfL\bT\tBZSu\vKaCqNtY[\nqI\bTv\tfM\ti@\t}fB\\\tQy\vBl\bWgXDkc\vx[\bVV\tQ]\ta\tPy\vxD\nfI\t}foD\tdj\tSGls\t~DCN\n{Z\t\\v\n_D\nhc\vx_C[\tAJ\nLM\tVxCI\tbj\tc^\tcF\ntCSx\twrXA\bU\\\t|a\vK\\\bTV\bVj\nd|\tfsCX\ntb\bRw\tVx\tAE\tA|\bTNt\vDg\tVc\bTld@\npo\tM\tcF\npe\tiZ\tBo\bSq\nfHl`\bTx\bWf\tHE\vF{\tcO\tfD\nlm\vfZ\nlm\veU\tdGBH\bTV\tSiMW\nwX\nz\\\t\\cCX\nd}\tl}\bQp\bTV\tF~\bQ\t`i\ng@nO\bUd\bTl\nL[\twQ\tji\ntC\t|J\nLU\naB\vxYKj\tAJuN\ti[\npeSk\vDg\vx]\bVb\bVV\nea\tkV\nqI\bTaSk\nAO\tpD\ntb\nts\nyi\bVg\ti_\v_W\nLkNt\tyj\tfMR\tiI\bTl\vwX\tsV\vMl\nyu\tAJ\bVjKO\tWV\vA}\vW\nrp\tiD\v|olv\vsIBM\td~\tCU\bVbeV\npC\vwT\tj`\tc}\vxs\vps\vvh\tWV\vGg\vAe\vVK\v]W\trg\vWcF`\tBr\vb\\\tdZ\bQp\nqIkF\nLk\vAR\bWI\bTg\tbs\tdw\n{L\n_y\tiZ\bTA\tlg\bVV\bTl\tdk\n`k\ta{\ti_{Awj\twN\v@@\bTe\ti_\n_D\twL\nAH\viK\vek\n[]\tp_\tyj\bTv\tUS\t[r\n{I\npsGt\vVK\nplS}\vWP\t|dMD\vHV\bTR}M`\bTV\bVHlvCh\bW[Ke\tR{\v^R\tab\tBZ\tVA\tB`\nd|\nhsKe\tBeOi\tR{\td\\nB\bWZ\tdZ\tVJOs\tmuQ\vhZQ@QQ\nfI\bW[B\\li\nzU\nMdM`\nxS\bVV\n\\}\vxD\tm\bTpIS\nc|\tkVi~\tV{\vhZ\t|b\bWt\n@R\voA\vnU\bWI\tea\tB`\tiD\tc}\tTzBR\vQBNj\tCP\t[I\bTv\t`WuN\vpg\vpg\vWc\tiT\tbs\twL\tU_\tc\\\t|h\vKa\tNr\tfL\nq|\nzu\nz\\\tNr\bUg\t|bm`\bTv\nyd\nrp\bWf\tUXBV\nzk\nd}\twQ\t}fCe\ved\bTW\bSB\nxU\tcn\bTb\ne\ta\\\tSG\bU|\npV\nN\\Kn\vnU\tAt\tpD\v^R\vIrb[\tR{\tdE\vxD\vWK\vWA\bQL\bW@Su\bUd\nDM\tPcCADloQ\tHswiub\na\bQpOb\nLP\bTlY[\vK}\tAJ\bQn^\vsA\bSM\nqM\bWZ\n^W\vz{S|\tfD\bVK\bTv\bPvBB\tCPdF\tid\vxsmx\vws\tcC\ntC\tycM`\vW\nrh\bQp\vxD\\o\nsI_k\nzukF\tfDXsXO\tjp\bTvBS{B\tBr\nzQ\nbI\tc{BDBVnO\bTF\tcaJd\tfL\tPV\tI_\nlK`o\twX\npa\tgu\bP}{^\bWf\n{I\tBN\npaKl\vpg\tcn\tfL\vvhCq\bTl\vnU\bSqCm\twR\bUJ\npe\nyd\nYgCy\vKW\tfD\neaoQ\tj_\tBvnM\vID\bTa\nzApl\n]n\bTa\tR{\tfr\n_y\bUg{Xkk\vxD|Ixl\nfyCe\vwB\nLk\vd]\noi\n}h\tQ]\npe\bVwHkOQ\nzk\tAJ\npV\bPv\ny\\\tA{Oi\bSBXA\veE\tjp\nq}\tiDqN\v^R\tm\tiZ\tBr\bVg\noi\n\\X\tU_\nc|\vHV\bTf\tTn\\N\\N\nuBlv\nyu\tTd\bTf\bPL\v]W\tdG\nA`\nw^\ngI\npe\tdw\nz\\ia\bWZ\tcFJm\n{Z\bWO_kDfRR\td\\\bVV\vxsBNtilm\tTd\t]y\vHV\tSo\v|jXX\tA|\vZ^\vGu\bTWM`kF\vhZ\vVK\tdG\vBl\tay\nxUqEnO\bVw\nqICX\ne\tPl\bWO\vLm\tdLuHCm\tdTfn\vwBka\vnU\n@M\nyT\tHv\t\\}Kh\td~Yhk}\neR\td\\\bWI\t|b\tHK\tiD\bTWMY\npl\bQ_\twr\vAx\tHE\bTg\bSqvp\vb\\\bWO\nOl\nsI\nfy\vID\t\\c\n{Z\n^~\npe\nAO\tTT\vxvk_\bWO\v|j\vwB\tQy\ti@\tPl\tHa\tdZk}ra\tUT\vJc\ved\np@\tQN\nd|\tkj\tHkM`\noi\twr\td\\\nlq\no_\nlb\nL[\tacBBBHCm\npl\tIQ\bVK\vxs\n`e\viK\npaOi\tUS\bTp\tfD\nPGkkXA\nz\\\neg\vWh\twRqN\nqS\tcnlo\nxS\n^W\tBU\nt\tHE\tp\\\tfF\tfw\bVV\bW@\tak\vVKls\tVJ\bVV\veE\\o\nyX\nYmM`lL\nd|\nzk\tA{sE\twQXT\nt\tPl\t]y\vwT{pMD\vb\\\tQ]Kj\tJn\nAH\vRb\tBU\tHK\t\\c\nfIm\nqM\n@R\tSo\noiBT\tHv\n_yKh\tBZ\t]i\bUJ\tV{Sr\nbI\vGg\ta_\bTR\nfI\nfl\t[K\tIIS|\vuW\tiI\bWI\nqI\v|jBV\bVg\bWZkF\vx]\bTA\tab\tfr\ti@\tJd\tJd\vps\nAO\bTaxu\tiD\nzk\t|d\t|`\bW[\tlP\tdG\bVV\vw}\vqO\ti[\bQ\bTz\vVF\twNts\tdw\bTv\neS\ngi\tNryS\npe\bVV\bSq\n`m\tyj\tBZ\vWX\bSB\tc\\\nUR\t[J\tc_nM\bWQ\vAx\nMd\tBrui\vxY\bSM\vWc\v|j\vxs\t}Q\tBO\bPL\bWW\tfM\nAO\tPc\veUe^\bTg\nqI\tac\bPv\tcFoQ\tQ\vhZka\nz\\\tiK\tBU\n`k\tCPS|M`\n{I\tS{_O\tBZZiSk\tps\tp\\\nYu\n]s\nxC\bWt\nbD\tkV\vGuyS\nqA\t[r\neKM`\tdZlL\bUg\bTl\nbD\tUS\vb\\\tpV\nccS\\\tct\t`z\bPL\vWs\nA`\neg\bSquECR\vDg\t`W\vz{\vWcSkSk\tbW\bUg\tea\nxZ\tiI\tUX\tVJ\nqn\tS{\vRb\bTQ\nplGt\vuWuj\npF\nqI\tfL\t[I\tiaXO\nyu\vDg\ved\tq{VG\bQka\tVj\tkV\txB\nd|\np@\tQN\tPc\tps]j\tkV\toU\bTp\nzUnB\vB]\ta{\bV@\n]nm`\tcz\tR{m`\bQa\vwT\bSMMYqN\tdj~s\vQ}MY\vMB\tBv\twR\bRg\vQ}\tql\vKC\nrmxuCC\vwB\vvh\tBqXq\npV\ti_ObuE\nbd\nqo\v{i\nC~\tBL\veEuH\bVjEyGz\vzR\v{i\tcf\n{Z\n]nXA\vGu\vnU\thS\vGI\nCc\tHE\bTA\tHBBHCj\nCc\bTF\tHE\nXI\tA{\bQ\tc\\\vmO\vWX\nfH\np@MY\bTF\nlK\tBt\nzU\tTTKm\vwT\npV\ndt\vyI\tVx\tQ\tRg\tTd\nzU\bRS\nLM\twAnM\tTn\ndS\t]g\nLc\vwB\t}t\t[I\tCPkX\vFm\vhZm\ti[\np@\vQ}\vW\t|d\nMO\nMd\tf_\tfD\tcJ\tHz\vRb\tio\tPyY[\nxU\tct\v@@\tww\bPvBMFF\ntbv|\vKm\tBq\tBqKh`o\nZdXU\ti]\t|`\tStB\\\bQ\v_W\tTJ\nqI\t|a\tA{\vuPMD\tPl\nxR\tfL\vws\tc{\td\\\bV`\neg\tHKkc\nd|\bVV\ny\\kc\ti]\bVG\t`V\tss\tI_\tAE\tbs\tdu\nel\tpD\vW\nqslv\bSMZi\vVKia\vQB\tQ\n{Z\bPt\vKl\nlK\nhs\ndS\bVKmf\nd^\tkV\tcO\nc|\bVH\t\\]\bTv\bSq\tmI\vDg\tVJ\tcn\ny\\\bVg\bTv\nyX\bTF\t]]\bTp\noi\nhs\veU\nBf\tdjMr\n|p\t\\g\t]r\bVb{D\nd[XN\tfM\tO\\s_\tcf\tiZXN\vWc\tqv\n`m\tU^oD\nd|\vGg\tdE\vwflou}\nd|oQ\t`iOi\vxD\ndZ\nCxYw\nzk\ntb\ngw\tyj\tB`\nyX\vps\ntC\vpP\vqw\bPu\bPX\tDm\npwNj\tss\taG\vxs\bPt\noLGz\tOk\ti@\ti]eC\tIQ\tii\tdj\v@J\t|duh\bWZ\veU\vnU\bTa\tcCg]\nzkYh\bVK\nLU\np@\ntb\ntR\tCj\vNP\ti@\bP{\n\\}\n{c\nwX\tfL\bVG\tc{\t|`\tAJ\t|C\tfDln\t|d\tbs\nqI{B\vAx\np@\nzk\vRbOs\vWSe^\vD_\tBv\vWd\bVb\vxs\veE\bRw\n]n\n|p\vg|\tfwkc\bTIka\n\\TSp\tju\vps\npeu|\vGr\bVe\tCU]MXU\vxD\bTa\tIQ\vWq\tCU\tam\tdj\bSoSw\vnUCh\tQ]s_\bPt\tfS\bTa\t\\}\n@OYc\tUZ\bTx\npe\vnU\nzU\t|}\tiD\nz\\\bSM\vxDBR\nzQ\tQN]MYh\nLP\vFm\vLXvc\vqlka\tHK\bVb\ntC\nCy\bTv\nuVoQ\t`z\t[I\tB`\vRb\tyj\tsb\vWs\bTl\tkV\ved\nelL\vxN\tm\nJn\tjY\vxD\bVb\bSq\vyu\twL\vXL\bTA\tpg\tAt\tnDXX\twR\npl\nhwyS\nps\tcO\bW[\v|jXN\tsV\tp\\\tBe\nb~\nAJ\n]ek`qN\tdw\tWV\tHE\vEVJz\tid\tB`\tzhE]\tfD\bTgqN\bTa\tjaCv\bSM\nhc\bUet_\tieg]\twQ\nPn\bVB\tjw\bVg\vbE\tBZ\vRH\bP{\tjp\n\\}\ta_\tcC\t|a\vD]\tBZ\ti[\tfD\vxW\no_\td\\\n_D\ntb\t\\c\tAJ\nlKoQlo\vLx\vM@\bWZKn\vpg\nTi\nIv\n|r\v@}JzLmWhk}ln\vxD\n]sgc\vps\tBr\bTW\vBMtZ\nBYDW\tjf\vSWC}\nqo\tdE\tmv\tIQ\bPP\bUblvBC\nzQ\t[I\vgl\nig\bUsBT\vbC\bSq\tsU\tiW\nJn\tSY\tHK\trg\npV\vID\v|jKO\t`S\t|a`vbmglfmujbqnbgqjgavp`bqjmj`jlwjfnslslqrvf`vfmwbfpwbglsvfgfmivfdlp`lmwqbfpw/Mmmlnaqfwjfmfmsfqejonbmfqbbnjdlp`jvgbg`fmwqlbvmrvfsvfgfpgfmwqlsqjnfqsqf`jlpfd/Vmavfmlpuloufqsvmwlppfnbmbkba/Abbdlpwlmvfulpvmjglp`bqolpfrvjslmj/]lpnv`klpbodvmb`lqqfljnbdfmsbqwjqbqqjabnbq/Abklnaqffnsoflufqgbg`bnajlnv`kbpevfqlmsbpbglo/Amfbsbqf`fmvfubp`vqplpfpwbabrvjfqlojaqlp`vbmwlb``fplnjdvfoubqjlp`vbwqlwjfmfpdqvslppfq/Mmfvqlsbnfgjlpeqfmwfb`fq`bgfn/Mplefqwb`l`kfpnlgfoljwbojbofwqbpbod/Vm`lnsqb`vbofpf{jpwf`vfqslpjfmglsqfmpboofdbqujbifpgjmfqlnvq`jbslgq/Msvfpwlgjbqjlsvfaolrvjfqfnbmvfosqlsjl`qjpjp`jfqwlpfdvqlnvfqwfevfmwf`fqqbqdqbmgffef`wlsbqwfpnfgjgbsqlsjbleqf`fwjfqqbf.nbjoubqjbpelqnbpevwvqllaifwlpfdvjqqjfpdlmlqnbpnjpnlp/Vmj`l`bnjmlpjwjlpqby/_mgfajglsqvfabwlofglwfm/Abifp/Vpfpsfql`l`jmblqjdfmwjfmgb`jfmwl`/Mgjykbaobqpfq/Abobwjmbevfqybfpwjoldvfqqbfmwqbq/E{jwlo/_sfybdfmgbu/Agflfujwbqsbdjmbnfwqlpibujfqsbgqfpe/M`jo`bafyb/Mqfbppbojgbfmu/Alibs/_mbavplpajfmfpwf{wlpoofubqsvfgbmevfqwf`ln/Vm`obpfpkvnbmlwfmjglajoablvmjgbgfpw/Mpfgjwbq`qfbgl2%bns8Kjpwlqz#>#mft#@fmwqbovsgbwfgPsf`jboMfwtlqhqfrvjqf`lnnfmwtbqmjmd@loofdfwlloabqqfnbjmpaf`bvpffof`wfgGfvwp`kejmbm`ftlqhfqprvj`hozafwtffmf{b`wozpfwwjmdgjpfbpfPl`jfwztfbslmpf{kjajw%ow8"..@lmwqlo`obppfp`lufqfglvwojmfbwwb`hpgfuj`fp+tjmgltsvqslpfwjwof>!Nlajof#hjoojmdpkltjmdJwbojbmgqlssfgkfbujozfeef`wp.2$^*8\t`lmejqn@vqqfmwbgubm`fpkbqjmdlsfmjmdgqbtjmdajoojlmlqgfqfgDfqnbmzqfobwfg?,elqn=jm`ovgftkfwkfqgfejmfgP`jfm`f`bwboldBqwj`ofavwwlmpobqdfpwvmjelqnilvqmfzpjgfabq@kj`bdlklojgbzDfmfqbosbppbdf/%rvlw8bmjnbwfeffojmdbqqjufgsbppjmdmbwvqboqlvdkoz-\t\tWkf#avw#mlwgfmpjwzAqjwbjm@kjmfpfob`h#lewqjavwfJqfobmg!#gbwb.eb`wlqpqf`fjufwkbw#jpOjaqbqzkvpabmgjm#eb`wbeebjqp@kbqofpqbgj`boaqlvdkwejmgjmdobmgjmd9obmd>!qfwvqm#ofbgfqpsobmmfgsqfnjvnsb`hbdfBnfqj`bFgjwjlm^%rvlw8Nfppbdfmffg#wlubovf>!`lnsof{ollhjmdpwbwjlmafojfufpnboofq.nlajofqf`lqgptbmw#wlhjmg#leEjqfel{zlv#bqfpjnjobqpwvgjfgnb{jnvnkfbgjmdqbsjgoz`ojnbwfhjmdglnfnfqdfgbnlvmwpelvmgfgsjlmffqelqnvobgzmbpwzklt#wl#Pvsslqwqfufmvff`lmlnzQfpvowpaqlwkfqplogjfqobqdfoz`boojmd-%rvlw8B``lvmwFgtbqg#pfdnfmwQlafqw#feelqwpSb`jej`ofbqmfgvs#tjwkkfjdkw9tf#kbufBmdfofpmbwjlmp\\pfbq`kbssojfgb`rvjqfnbppjufdqbmwfg9#ebopfwqfbwfgajddfpwafmfejwgqjujmdPwvgjfpnjmjnvnsfqkbspnlqmjmdpfoojmdjp#vpfgqfufqpfubqjbmw#qlof>!njppjmdb`kjfufsqlnlwfpwvgfmwplnflmff{wqfnfqfpwlqfalwwln9fuloufgboo#wkfpjwfnbsfmdojpktbz#wl##Bvdvpwpznalop@lnsbmznbwwfqpnvpj`bobdbjmpwpfqujmd~*+*8\tsbznfmwwqlvaof`lm`fsw`lnsbqfsbqfmwpsobzfqpqfdjlmpnlmjwlq#$$Wkf#tjmmjmdf{solqfbgbswfgDboofqzsqlgv`fbajojwzfmkbm`f`bqffqp*-#Wkf#`loof`wPfbq`k#bm`jfmwf{jpwfgellwfq#kbmgofqsqjmwfg`lmplofFbpwfqmf{slqwptjmgltp@kbmmfojoofdbomfvwqbopvddfpw\\kfbgfqpjdmjmd-kwno!=pfwwofgtfpwfqm`bvpjmd.tfahjw`objnfgIvpwj`f`kbswfquj`wjnpWklnbp#nlyjoobsqlnjpfsbqwjfpfgjwjlmlvwpjgf9ebopf/kvmgqfgLoznsj`\\avwwlmbvwklqpqfb`kfg`kqlmj`gfnbmgppf`lmgpsqlwf`wbglswfgsqfsbqfmfjwkfqdqfbwozdqfbwfqlufqboojnsqluf`lnnbmgpsf`jbopfbq`k-tlqpkjsevmgjmdwklvdkwkjdkfpwjmpwfbgvwjojwzrvbqwfq@vowvqfwfpwjmd`ofbqozf{slpfgAqltpfqojafqbo~#`bw`kSqlif`wf{bnsofkjgf+*8EolqjgbbmptfqpbooltfgFnsfqlqgfefmpfpfqjlvpeqffglnPfufqbo.avwwlmEvqwkfqlvw#le#">#mvoowqbjmfgGfmnbqhuljg+3*,boo-ipsqfufmwQfrvfpwPwfskfm\t\tTkfm#lapfquf?,k1=\tNlgfqm#sqlujgf!#bow>!alqgfqp-\t\tElq#\t\tNbmz#bqwjpwpsltfqfgsfqelqnej`wjlmwzsf#lenfgj`bowj`hfwplsslpfg@lvm`jotjwmfppivpwj`fDflqdf#Afodjvn---?,b=wtjwwfqmlwbaoztbjwjmdtbqebqf#Lwkfq#qbmhjmdskqbpfpnfmwjlmpvqujufp`klobq?,s=\t#@lvmwqzjdmlqfgolpp#leivpw#bpDflqdjbpwqbmdf?kfbg=?pwlssfg2$^*8\tjpobmgpmlwbaofalqgfq9ojpw#le`bqqjfg233/333?,k0=\t#pfufqboaf`lnfppfof`w#tfggjmd33-kwnonlmbq`klee#wkfwfb`kfqkjdkoz#ajloldzojef#lelq#fufmqjpf#le%qbrvl8sovplmfkvmwjmd+wklvdkGlvdobpiljmjmd`jq`ofpElq#wkfBm`jfmwUjfwmbnufkj`ofpv`k#bp`qzpwboubovf#>Tjmgltpfmilzfgb#pnboobppvnfg?b#jg>!elqfjdm#Boo#qjklt#wkfGjpsobzqfwjqfgkltfufqkjggfm8abwwofppffhjmd`bajmfwtbp#mlwollh#bw`lmgv`wdfw#wkfIbmvbqzkbssfmpwvqmjmdb9klufqLmojmf#Eqfm`k#ob`hjmdwzsj`bof{wqb`wfmfnjfpfufm#jedfmfqbwgf`jgfgbqf#mlw,pfbq`kafojfep.jnbdf9ol`bwfgpwbwj`-oldjm!=`lmufqwujlofmwfmwfqfgejqpw!=`jq`vjwEjmobmg`kfnjpwpkf#tbp23s{8!=bp#pv`kgjujgfg?,psbm=tjoo#afojmf#leb#dqfbwnzpwfqz,jmgf{-eboojmdgvf#wl#qbjotbz`loofdfnlmpwfqgfp`fmwjw#tjwkmv`ofbqIftjpk#sqlwfpwAqjwjpkeoltfqpsqfgj`wqfelqnpavwwlm#tkl#tbpof`wvqfjmpwbmwpvj`jgfdfmfqj`sfqjlgpnbqhfwpPl`jbo#ejpkjmd`lnajmfdqbskj`tjmmfqp?aq#,=?az#wkf#MbwvqboSqjub`z`llhjfplvw`lnfqfploufPtfgjpkaqjfeozSfqpjbmpl#nv`k@fmwvqzgfsj`wp`lovnmpklvpjmdp`qjswpmf{w#wlafbqjmdnbssjmdqfujpfgiRvfqz+.tjgwk9wjwof!=wllowjsPf`wjlmgfpjdmpWvqhjpkzlvmdfq-nbw`k+~*+*8\t\tavqmjmdlsfqbwfgfdqffpplvq`f>Qj`kbqg`olpfozsobpwj`fmwqjfp?,wq=\t`lolq9 vo#jg>!slppfppqloojmdskzpj`pebjojmdf{f`vwf`lmwfpwojmh#wlGfebvow?aq#,=\t9#wqvf/`kbqwfqwlvqjpn`obppj`sql`ffgf{sobjm?,k2=\tlmojmf-<{no#ufkfosjmdgjbnlmgvpf#wkfbjqojmffmg#..=*-bwwq+qfbgfqpklpwjmd eeeeeeqfbojyfUjm`fmwpjdmbop#pq`>!,Sqlgv`wgfpsjwfgjufqpfwfoojmdSvaoj`#kfog#jmIlpfsk#wkfbwqfbeef`wp?pwzof=b#obqdfglfpm$wobwfq/#Fofnfmwebuj`lm`qfbwlqKvmdbqzBjqslqwpff#wkfpl#wkbwNj`kbfoPzpwfnpSqldqbnp/#bmg##tjgwk>f%rvlw8wqbgjmdofew!=\tsfqplmpDlogfm#Beebjqpdqbnnbqelqnjmdgfpwqlzjgfb#le`bpf#lelogfpw#wkjp#jp-pq`#>#`bqwllmqfdjpwq@lnnlmpNvpojnpTkbw#jpjm#nbmznbqhjmdqfufbopJmgffg/frvbooz,pklt\\blvwgllqfp`bsf+Bvpwqjbdfmfwj`pzpwfn/Jm#wkf#pjwwjmdKf#boplJpobmgpB`bgfnz\t\n\n?"..Gbmjfo#ajmgjmdaol`h!=jnslpfgvwjojyfBaqbkbn+f{`fswxtjgwk9svwwjmd*-kwno+#X^8\tGBWBX#)hjw`kfmnlvmwfgb`wvbo#gjbof`wnbjmoz#\\aobmh$jmpwboof{sfqwpje+wzsfJw#bopl%`lsz8#!=Wfqnpalqm#jmLswjlmpfbpwfqmwbohjmd`lm`fqmdbjmfg#lmdljmdivpwjez`qjwj`peb`wlqzjwp#ltmbppbvowjmujwfgobpwjmdkjp#ltmkqfe>!,!#qfo>!gfufols`lm`fqwgjbdqbngloobqp`ovpwfqsksbo`lklo*8~*+*8vpjmd#b=?psbm=ufppfopqfujuboBggqfppbnbwfvqbmgqljgboofdfgjoomfpptbohjmd`fmwfqprvbojeznbw`kfpvmjejfgf{wjm`wGfefmpfgjfg#jm\t\n?"..#`vpwlnpojmhjmdOjwwof#Allh#lefufmjmdnjm-iptfbqjmdBoo#Qjd8\t~*+*8qbjpjmd#Bopl/#`qv`jbobalvw!=gf`obqf..=\t?p`ejqfel{bp#nv`kbssojfpjmgf{/#p/#avw#wzsf#>#\t\t?"..wltbqgpQf`lqgpSqjubwfElqfjdmSqfnjfq`klj`fpUjqwvboqfwvqmp@lnnfmwSltfqfgjmojmf8slufqwz`kbnafqOjujmd#ulovnfpBmwklmzoldjm!#QfobwfgF`lmlnzqfb`kfp`vwwjmddqbujwzojef#jm@kbswfq.pkbgltMlwbaof?,wg=\t#qfwvqmpwbgjvntjgdfwpubqzjmdwqbufopkfog#aztkl#bqftlqh#jmeb`vowzbmdvobqtkl#kbgbjqslqwwltm#le\t\tPlnf#$`oj`h$`kbqdfphfztlqgjw#tjoo`jwz#le+wkjp*8Bmgqft#vmjrvf#`kf`hfglq#nlqf033s{8#qfwvqm8qpjlm>!sovdjmptjwkjm#kfqpfoePwbwjlmEfgfqboufmwvqfsvaojpkpfmw#wlwfmpjlmb`wqfpp`lnf#wlejmdfqpGvhf#lesflsof/f{soljwtkbw#jpkbqnlmzb#nbilq!9!kwwsjm#kjp#nfmv!=\tnlmwkozleej`fq`lvm`jodbjmjmdfufm#jmPvnnbqzgbwf#leolzbowzejwmfppbmg#tbpfnsfqlqpvsqfnfPf`lmg#kfbqjmdQvppjbmolmdfpwBoafqwbobwfqbopfw#le#pnboo!=-bssfmggl#tjwkefgfqboabmh#leafmfbwkGfpsjwf@bsjwbodqlvmgp*/#bmg#sfq`fmwjw#eqln`olpjmd`lmwbjmJmpwfbgejewffmbp#tfoo-zbkll-qfpslmgejdkwfqlap`vqfqfeof`wlqdbmj`>#Nbwk-fgjwjmdlmojmf#sbggjmdb#tkloflmfqqlqzfbq#lefmg#le#abqqjfqtkfm#jwkfbgfq#klnf#leqfpvnfgqfmbnfgpwqlmd=kfbwjmdqfwbjmp`olvgeqtbz#le#Nbq`k#2hmltjmdjm#sbqwAfwtffmofpplmp`olpfpwujqwvboojmhp!=`qlppfgFMG#..=ebnlvp#btbqgfgOj`fmpfKfbowk#ebjqoz#tfbowkznjmjnboBeqj`bm`lnsfwfobafo!=pjmdjmdebqnfqpAqbpjo*gjp`vppqfsob`fDqfdlqzelmw#`lsvqpvfgbssfbqpnbhf#vsqlvmgfgalwk#leaol`hfgpbt#wkfleej`fp`lolvqpje+gl`vtkfm#kffmelq`fsvpk+evBvdvpw#VWE.;!=Ebmwbpzjm#nlpwjmivqfgVpvboozebqnjmd`olpvqflaif`w#gfefm`fvpf#le#Nfgj`bo?algz=\tfujgfmwaf#vpfghfz@lgfpj{wffmJpobnj` 333333fmwjqf#tjgfoz#b`wjuf#+wzsflelmf#`bm`lolq#>psfbhfqf{wfmgpSkzpj`pwfqqbjm?walgz=evmfqboujftjmdnjggof#`qj`hfwsqlskfwpkjewfggl`wlqpQvppfoo#wbqdfw`lnsb`wbodfaqbpl`jbo.avoh#lenbm#bmg?,wg=\t#kf#ofew*-ubo+*ebopf*8oldj`boabmhjmdklnf#wlmbnjmd#Bqjylmb`qfgjwp*8\t~*8\telvmgfqjm#wvqm@loojmpafelqf#Avw#wkf`kbqdfgWjwof!=@bswbjmpsfoofgdlggfppWbd#..=Bggjmd9avw#tbpQf`fmw#sbwjfmwab`h#jm>ebopf%Ojm`lomtf#hmlt@lvmwfqIvgbjpnp`qjsw#bowfqfg$^*8\t##kbp#wkfvm`ofbqFufmw$/alwk#jmmlw#boo\t\t?"..#sob`jmdkbqg#wl#`fmwfqplqw#le`ojfmwppwqffwpAfqmbqgbppfqwpwfmg#wlebmwbpzgltm#jmkbqalvqEqffglniftfoqz,balvw--pfbq`kofdfmgpjp#nbgfnlgfqm#lmoz#lmlmoz#wljnbdf!#ojmfbq#sbjmwfqbmg#mlwqbqfoz#b`qlmzngfojufqpklqwfq33%bns8bp#nbmztjgwk>!,)#?"X@wjwof#>le#wkf#oltfpw#sj`hfg#fp`bsfgvpfp#lesflsofp#Svaoj`Nbwwkftwb`wj`pgbnbdfgtbz#elqobtp#lefbpz#wl#tjmgltpwqlmd##pjnsof~`bw`k+pfufmwkjmelal{tfmw#wlsbjmwfg`jwjyfmJ#glm$wqfwqfbw-#Plnf#tt-!*8\talnajmdnbjowl9nbgf#jm-#Nbmz#`bqqjfpx~8tjtlqh#lepzmlmzngfefbwpebulqfglswj`bosbdfWqbvmofpp#pfmgjmdofew!=?`lnP`lqBoo#wkfiRvfqz-wlvqjpw@obppj`ebopf!#Tjokfonpvavqapdfmvjmfajpklsp-psojw+dolabo#elooltpalgz#lemlnjmbo@lmwb`wpf`vobqofew#wl`kjfeoz.kjggfm.abmmfq?,oj=\t\t-#Tkfm#jm#alwkgjpnjppF{solqfbotbzp#ujb#wkfpsb/]lotfoebqfqvojmd#bqqbmdf`bswbjmkjp#plmqvof#lekf#wllhjwpfoe/>3%bns8+`boofgpbnsofpwl#nbhf`ln,sbdNbqwjm#Hfmmfgzb``fswpevoo#lekbmgofgAfpjgfp,,..=?,baof#wlwbqdfwpfppfm`fkjn#wl#jwp#az#`lnnlm-njmfqbowl#wbhftbzp#wlp-lqd,obgujpfgsfmbowzpjnsof9je#wkfzOfwwfqpb#pklqwKfqafqwpwqjhfp#dqlvsp-ofmdwkeojdkwplufqobspoltoz#ofppfq#pl`jbo#?,s=\t\n\njw#jmwlqbmhfg#qbwf#levo=\t##bwwfnswsbjq#lenbhf#jwHlmwbhwBmwlmjlkbujmd#qbwjmdp#b`wjufpwqfbnpwqbssfg!*-`pp+klpwjofofbg#wlojwwof#dqlvsp/Sj`wvqf..=\t\t#qltp>!#laif`wjmufqpf?ellwfq@vpwlnU=?_,p`qploujmd@kbnafqpobufqztlvmgfgtkfqfbp">#$vmgelq#boosbqwoz#.qjdkw9Bqbajbmab`hfg#`fmwvqzvmjw#lenlajof.Fvqlsf/jp#klnfqjph#legfpjqfg@ojmwlm`lpw#lebdf#le#af`lnf#mlmf#les%rvlw8Njggof#fbg$*X3@qjwj`ppwvgjlp=%`lsz8dqlvs!=bppfnaonbhjmd#sqfppfgtjgdfw-sp9!#<#qfavjowaz#plnfElqnfq#fgjwlqpgfobzfg@bmlmj`kbg#wkfsvpkjmd`obpp>!avw#bqfsbqwjboAbazolmalwwln#`bqqjfq@lnnbmgjwp#vpfBp#tjwk`lvqpfpb#wkjqggfmlwfpbopl#jmKlvpwlm13s{8!=b``vpfgglvaof#dlbo#leEbnlvp#*-ajmg+sqjfpwp#Lmojmfjm#Ivozpw#(#!d`lmpvowgf`jnbokfosevoqfujufgjp#ufqzq$($jswolpjmd#efnbofpjp#boplpwqjmdpgbzp#lebqqjuboevwvqf#?laif`welq`jmdPwqjmd+!#,=\t\n\nkfqf#jpfm`lgfg-##Wkf#aboollmglmf#az,`lnnlmad`lolqobt#le#Jmgjbmbbuljgfgavw#wkf1s{#0s{irvfqz-bewfq#bsloj`z-nfm#bmgellwfq.>#wqvf8elq#vpfp`qffm-Jmgjbm#jnbdf#>ebnjoz/kwws9,,#%maps8gqjufqpfwfqmbopbnf#bpmlwj`fgujftfqp~*+*8\t#jp#nlqfpfbplmpelqnfq#wkf#mftjp#ivpw`lmpfmw#Pfbq`ktbp#wkftkz#wkfpkjssfgaq=?aq=tjgwk9#kfjdkw>nbgf#le`vjpjmfjp#wkbwb#ufqz#Bgnjqbo#ej{fg8mlqnbo#NjppjlmSqfpp/#lmwbqjl`kbqpfwwqz#wl#jmubgfg>!wqvf!psb`jmdjp#nlpwb#nlqf#wlwboozeboo#le~*8\t##jnnfmpfwjnf#jmpfw#lvwpbwjpezwl#ejmggltm#wlolw#le#Sobzfqpjm#Ivmfrvbmwvnmlw#wkfwjnf#wlgjpwbmwEjmmjpkpq`#>#+pjmdof#kfos#leDfqnbm#obt#bmgobafofgelqfpwp`llhjmdpsb`f!=kfbgfq.tfoo#bpPwbmofzaqjgdfp,dolabo@qlbwjb#Balvw#X3^8\t##jw/#bmgdqlvsfgafjmd#b*xwkqltkf#nbgfojdkwfqfwkj`boEEEEEE!alwwln!ojhf#b#fnsolzpojuf#jmbp#pffmsqjmwfqnlpw#leva.ojmhqfif`wpbmg#vpfjnbdf!=pv``ffgeffgjmdMv`ofbqjmelqnbwl#kfosTlnfm$pMfjwkfqNf{j`bmsqlwfjm?wbaof#az#nbmzkfbowkzobtpvjwgfujpfg-svpk+xpfoofqppjnsoz#Wkqlvdk-`llhjf#Jnbdf+logfq!=vp-ip!=#Pjm`f#vmjufqpobqdfq#lsfm#wl"..#fmgojfp#jm$^*8\t##nbqhfwtkl#jp#+!GLN@lnbmbdfglmf#elqwzsfle#Hjmdglnsqlejwpsqlslpfwl#pklt`fmwfq8nbgf#jwgqfppfgtfqf#jmnj{wvqfsqf`jpfbqjpjmdpq`#>#$nbhf#b#pf`vqfgAbswjpwulwjmd#\t\n\nubq#Nbq`k#1dqft#vs@ojnbwf-qfnlufphjoofgtbz#wkf?,kfbg=eb`f#leb`wjmd#qjdkw!=wl#tlqhqfgv`fpkbp#kbgfqf`wfgpklt+*8b`wjlm>allh#lebm#bqfb>>#!kww?kfbgfq\t?kwno=`lmelqneb`jmd#`llhjf-qfoz#lmklpwfg#-`vpwlnkf#tfmwavw#elqpsqfbg#Ebnjoz#b#nfbmplvw#wkfelqvnp-ellwbdf!=Nlajo@ofnfmwp!#jg>!bp#kjdkjmwfmpf..=?"..efnbof#jp#pffmjnsojfgpfw#wkfb#pwbwfbmg#kjpebpwfpwafpjgfpavwwlm\\alvmgfg!=?jnd#Jmelal{fufmwp/b#zlvmdbmg#bqfMbwjuf#`kfbsfqWjnflvwbmg#kbpfmdjmfptlm#wkf+nlpwozqjdkw9#ejmg#b#.alwwlnSqjm`f#bqfb#lenlqf#lepfbq`k\\mbwvqf/ofdboozsfqjlg/obmg#lelq#tjwkjmgv`fgsqlujmdnjppjofol`boozBdbjmpwwkf#tbzh%rvlw8s{8!=\tsvpkfg#babmglmmvnfqbo@fqwbjmJm#wkjpnlqf#jmlq#plnfmbnf#jpbmg/#jm`qltmfgJPAM#3.`qfbwfpL`wlafqnbz#mlw`fmwfq#obwf#jmGfefm`ffmb`wfgtjpk#wlaqlbgoz`llojmdlmolbg>jw-#Wkfqf`lufqNfnafqpkfjdkw#bppvnfp?kwno=\tsflsof-jm#lmf#>tjmgltellwfq\\b#dllg#qfhobnblwkfqp/wl#wkjp\\`llhjfsbmfo!=Olmglm/gfejmfp`qvpkfgabswjpn`lbpwbopwbwvp#wjwof!#nluf#wlolpw#jmafwwfq#jnsojfpqjuboqzpfqufqp#PzpwfnSfqkbspfp#bmg#`lmwfmgeoltjmdobpwfg#qjpf#jmDfmfpjpujft#leqjpjmd#pffn#wlavw#jm#ab`hjmdkf#tjoodjufm#bdjujmd#`jwjfp-eolt#le#Obwfq#boo#avwKjdktbzlmoz#azpjdm#lekf#glfpgjeefqpabwwfqz%bns8obpjmdofpwkqfbwpjmwfdfqwbhf#lmqfevpfg`boofg#>VP%bnsPff#wkfmbwjufpaz#wkjppzpwfn-kfbg#le9klufq/ofpajbmpvqmbnfbmg#boo`lnnlm,kfbgfq\\\\sbqbnpKbqubqg,sj{fo-qfnlubopl#olmdqlof#leiljmwozphzp`qbVmj`lgfaq#,=\tBwobmwbmv`ofvp@lvmwz/svqfoz#`lvmw!=fbpjoz#avjog#blm`oj`hb#djufmsljmwfqk%rvlw8fufmwp#fopf#x\tgjwjlmpmlt#wkf/#tjwk#nbm#tkllqd,Tfalmf#bmg`buboqzKf#gjfgpfbwwof33/333#xtjmgltkbuf#wlje+tjmgbmg#jwpplofoz#n%rvlw8qfmftfgGfwqljwbnlmdpwfjwkfq#wkfn#jmPfmbwlqVp?,b=?Hjmd#leEqbm`jp.sqlgv`kf#vpfgbqw#bmgkjn#bmgvpfg#azp`lqjmdbw#klnfwl#kbufqfobwfpjajojwzeb`wjlmAveebolojmh!=?tkbw#kfeqff#wl@jwz#le`lnf#jmpf`wlqp`lvmwfglmf#gbzmfqulvpprvbqf#~8je+dljm#tkbwjnd!#bojp#lmozpfbq`k,wvfpgbzollpfozPlolnlmpf{vbo#.#?b#kqnfgjvn!GL#MLW#Eqbm`f/tjwk#b#tbq#bmgpf`lmg#wbhf#b#=\t\t\tnbqhfw-kjdktbzglmf#jm`wjujwz!obpw!=laojdfgqjpf#wl!vmgfejnbgf#wl#Fbqoz#sqbjpfgjm#jwp#elq#kjpbwkofwfIvsjwfqZbkll"#wfqnfg#pl#nbmzqfbooz#p-#Wkf#b#tlnbmgjqf`w#qjdkw!#aj`z`ofb`jmd>!gbz#bmgpwbwjmdQbwkfq/kjdkfq#Leej`f#bqf#mltwjnfp/#tkfm#b#sbz#elqlm#wkjp.ojmh!=8alqgfqbqlvmg#bmmvbo#wkf#Mftsvw#wkf-`ln!#wbhjm#wlb#aqjfe+jm#wkfdqlvsp-8#tjgwkfmyznfppjnsof#jm#obwfxqfwvqmwkfqbszb#sljmwabmmjmdjmhp!=\t+*8!#qfb#sob`f_v330@bbalvw#bwq=\t\n\n``lvmw#djufp#b?P@QJSWQbjotbzwkfnfp,wlloal{AzJg+!{kvnbmp/tbw`kfpjm#plnf#je#+tj`lnjmd#elqnbwp#Vmgfq#avw#kbpkbmgfg#nbgf#azwkbm#jmefbq#legfmlwfg,jeqbnfofew#jmulowbdfjm#fb`kb%rvlw8abpf#leJm#nbmzvmgfqdlqfdjnfpb`wjlm#?,s=\t?vpwlnUb8%dw8?,jnslqwplq#wkbwnlpwoz#%bns8qf#pjyf>!?,b=?,kb#`obppsbppjufKlpw#>#TkfwkfqefqwjofUbqjlvp>X^8+ev`bnfqbp,=?,wg=b`wp#bpJm#plnf=\t\t?"lqdbmjp#?aq#,=Afjijmd`bwbo/Lgfvwp`kfvqlsfvfvphbqbdbfjodfpufmphbfpsb/]bnfmpbifvpvbqjlwqbabiln/E{j`ls/Mdjmbpjfnsqfpjpwfnbl`wvaqfgvqbmwfb/]bgjqfnsqfpbnlnfmwlmvfpwqlsqjnfqbwqbu/Epdqb`jbpmvfpwqbsql`fplfpwbglp`bojgbgsfqplmbm/Vnfqlb`vfqgln/Vpj`bnjfnaqllefqwbpbodvmlpsb/Apfpfifnsolgfqf`klbgfn/Mpsqjubglbdqfdbqfmob`fpslpjaofklwfofppfujoobsqjnfql/Vowjnlfufmwlpbq`kjul`vowvqbnvifqfpfmwqbgbbmvm`jlfnabqdlnfq`bgldqbmgfpfpwvgjlnfilqfpefaqfqlgjpf/]lwvqjpnl`/_gjdlslqwbgbfpsb`jlebnjojbbmwlmjlsfqnjwfdvbqgbqbodvmbpsqf`jlpbodvjfmpfmwjglujpjwbpw/Awvol`lml`fqpfdvmgl`lmpfileqbm`jbnjmvwlppfdvmgbwfmfnlpfef`wlpn/Mobdbpfpj/_mqfujpwbdqbmbgb`lnsqbqjmdqfpldbq`/Abb``j/_mf`vbglqrvjfmfpjm`ovplgfafq/Mnbwfqjbklnaqfpnvfpwqbslgq/Abnb/]bmb/Vowjnbfpwbnlplej`jbowbnajfmmjmd/Vmpbovglpslgfnlpnfilqbqslpjwjlmavpjmfppklnfsbdfpf`vqjwzobmdvbdfpwbmgbqg`bnsbjdmefbwvqfp`bwfdlqzf{wfqmbo`kjogqfmqfpfqufgqfpfbq`kf{`kbmdfebulqjwfwfnsobwfnjojwbqzjmgvpwqzpfquj`fpnbwfqjbosqlgv`wpy.jmgf{9`lnnfmwpplewtbqf`lnsofwf`bofmgbqsobwelqnbqwj`ofpqfrvjqfgnlufnfmwrvfpwjlmavjogjmdslojwj`pslppjaofqfojdjlmskzpj`boeffgab`hqfdjpwfqsj`wvqfpgjpbaofgsqlwl`lobvgjfm`fpfwwjmdpb`wjujwzfofnfmwpofbqmjmdbmzwkjmdbapwqb`wsqldqfpplufqujftnbdbyjmff`lmlnj`wqbjmjmdsqfppvqfubqjlvp#?pwqlmd=sqlsfqwzpklssjmdwldfwkfqbgubm`fgafkbujlqgltmolbgefbwvqfgellwaboopfof`wfgObmdvbdfgjpwbm`fqfnfnafqwqb`hjmdsbpptlqgnlgjejfgpwvgfmwpgjqf`wozejdkwjmdmlqwkfqmgbwbabpfefpwjuboaqfbhjmdol`bwjlmjmwfqmfwgqlsgltmsqb`wj`ffujgfm`fevm`wjlmnbqqjbdfqfpslmpfsqlaofnpmfdbwjufsqldqbnpbmbozpjpqfofbpfgabmmfq!=svq`kbpfsloj`jfpqfdjlmbo`qfbwjufbqdvnfmwallhnbqhqfefqqfq`kfnj`bogjujpjlm`booab`hpfsbqbwfsqlif`wp`lmeoj`wkbqgtbqfjmwfqfpwgfojufqznlvmwbjmlawbjmfg>#ebopf8elq+ubq#b``fswfg`bsb`jwz`lnsvwfqjgfmwjwzbjq`qbewfnsolzfgsqlslpfgglnfpwj`jm`ovgfpsqlujgfgklpsjwboufqwj`bo`loobspfbssqlb`ksbqwmfqpoldl!=?bgbvdkwfqbvwklq!#`vowvqboebnjojfp,jnbdfp,bppfnaozsltfqevowfb`kjmdejmjpkfggjpwqj`w`qjwj`bo`dj.ajm,svqslpfpqfrvjqfpfof`wjlmaf`lnjmdsqlujgfpb`bgfnj`f{fq`jpfb`wvbooznfgj`jmf`lmpwbmwb``jgfmwNbdbyjmfgl`vnfmwpwbqwjmdalwwln!=lapfqufg9#%rvlw8f{wfmgfgsqfujlvpPlewtbqf`vpwlnfqgf`jpjlmpwqfmdwkgfwbjofgpojdkwozsobmmjmdwf{wbqfb`vqqfm`zfufqzlmfpwqbjdkwwqbmpefqslpjwjufsqlgv`fgkfqjwbdfpkjssjmdbaplovwfqf`fjufgqfofubmwavwwlm!#ujlofm`fbmztkfqfafmfejwpobvm`kfgqf`fmwozboojbm`felooltfgnvowjsofavoofwjmjm`ovgfgl``vqqfgjmwfqmbo\'+wkjp*-qfsvaoj`=?wq=?wg`lmdqfppqf`lqgfgvowjnbwfplovwjlm?vo#jg>!gjp`lufqKlnf?,b=tfapjwfpmfwtlqhpbowklvdkfmwjqfoznfnlqjbonfppbdfp`lmwjmvfb`wjuf!=plnftkbwuj`wlqjbTfpwfqm##wjwof>!Ol`bwjlm`lmwqb`wujpjwlqpGltmolbgtjwklvw#qjdkw!=\tnfbpvqfptjgwk#>#ubqjbaofjmuloufgujqdjmjbmlqnboozkbssfmfgb``lvmwppwbmgjmdmbwjlmboQfdjpwfqsqfsbqfg`lmwqlopb``vqbwfajqwkgbzpwqbwfdzleej`jbodqbskj`p`qjnjmboslppjaoz`lmpvnfqSfqplmbopsfbhjmdubojgbwfb`kjfufg-isd!#,=nb`kjmfp?,k1=\t##hfztlqgpeqjfmgozaqlwkfqp`lnajmfglqjdjmbo`lnslpfgf{sf`wfgbgfrvbwfsbhjpwbmeloolt!#ubovbaof?,obafo=qfobwjufaqjmdjmdjm`qfbpfdlufqmlqsovdjmp,Ojpw#le#Kfbgfq!=!#mbnf>!#+%rvlw8dqbgvbwf?,kfbg=\t`lnnfq`fnbobzpjbgjqf`wlqnbjmwbjm8kfjdkw9p`kfgvof`kbmdjmdab`h#wl#`bwkloj`sbwwfqmp`lolq9# dqfbwfpwpvssojfpqfojbaof?,vo=\t\n\n?pfof`w#`jwjyfmp`olwkjmdtbw`kjmd?oj#jg>!psf`jej``bqqzjmdpfmwfm`f?`fmwfq=`lmwqbpwwkjmhjmd`bw`k+f*plvwkfqmNj`kbfo#nfq`kbmw`bqlvpfosbggjmd9jmwfqjlq-psojw+!ojybwjlmL`wlafq#*xqfwvqmjnsqlufg..%dw8\t\t`lufqbdf`kbjqnbm-smd!#,=pvaif`wpQj`kbqg#tkbwfufqsqlabaozqf`lufqzabpfabooivgdnfmw`lmmf`w--`pp!#,=#tfapjwfqfslqwfggfebvow!,=?,b=\tfof`wqj`p`lwobmg`qfbwjlmrvbmwjwz-#JPAM#3gjg#mlw#jmpwbm`f.pfbq`k.!#obmd>!psfbhfqp@lnsvwfq`lmwbjmpbq`kjufpnjmjpwfqqfb`wjlmgjp`lvmwJwbojbml`qjwfqjbpwqlmdoz9#$kwws9$p`qjsw$`lufqjmdleefqjmdbssfbqfgAqjwjpk#jgfmwjezEb`fallhmvnfqlvpufkj`ofp`lm`fqmpBnfqj`bmkbmgojmdgju#jg>!Tjoojbn#sqlujgfq\\`lmwfmwb``vqb`zpf`wjlm#bmgfqplmeof{jaof@bwfdlqzobtqfm`f?p`qjsw=obzlvw>!bssqlufg#nb{jnvnkfbgfq!=?,wbaof=Pfquj`fpkbnjowlm`vqqfmw#`bmbgjbm`kbmmfop,wkfnfp,,bqwj`oflswjlmboslqwvdboubovf>!!jmwfqubotjqfofppfmwjwofgbdfm`jfpPfbq`k!#nfbpvqfgwklvpbmgpsfmgjmd%kfoojs8mft#Gbwf!#pjyf>!sbdfMbnfnjggof!#!#,=?,b=kjggfm!=pfrvfm`fsfqplmbolufqeoltlsjmjlmpjoojmljpojmhp!=\t\n?wjwof=ufqpjlmppbwvqgbzwfqnjmbojwfnsqlsfmdjmffqpf`wjlmpgfpjdmfqsqlslpbo>!ebopf!Fpsb/]loqfofbpfppvanjw!#fq%rvlw8bggjwjlmpznswlnplqjfmwfgqfplvq`fqjdkw!=?sofbpvqfpwbwjlmpkjpwlqz-ofbujmd##alqgfq>`lmwfmwp`fmwfq!=-\t\tPlnf#gjqf`wfgpvjwbaofavodbqjb-pklt+*8gfpjdmfgDfmfqbo#`lm`fswpF{bnsofptjoojbnpLqjdjmbo!=?psbm=pfbq`k!=lsfqbwlqqfrvfpwpb#%rvlw8booltjmdGl`vnfmwqfujpjlm-#\t\tWkf#zlvqpfoe@lmwb`w#nj`kjdbmFmdojpk#`lovnajbsqjlqjwzsqjmwjmdgqjmhjmdeb`jojwzqfwvqmfg@lmwfmw#leej`fqpQvppjbm#dfmfqbwf.;;6:.2!jmgj`bwfebnjojbq#rvbojwznbqdjm93#`lmwfmwujftslqw`lmwb`wp.wjwof!=slqwbaof-ofmdwk#fojdjaofjmuloufpbwobmwj`lmolbg>!gfebvow-pvssojfgsbznfmwpdolppbqz\t\tBewfq#dvjgbm`f?,wg=?wgfm`lgjmdnjggof!=`bnf#wl#gjpsobzpp`lwwjpkilmbwkbmnbilqjwztjgdfwp-`ojmj`bowkbjobmgwfb`kfqp?kfbg=\t\nbeef`wfgpvsslqwpsljmwfq8wlPwqjmd?,pnboo=lhobklnbtjoo#af#jmufpwlq3!#bow>!klojgbzpQfplvq`foj`fmpfg#+tkj`k#-#Bewfq#`lmpjgfqujpjwjmdf{solqfqsqjnbqz#pfbq`k!#bmgqljg!rvj`hoz#nffwjmdpfpwjnbwf8qfwvqm#8`lolq9 #kfjdkw>bssqlubo/#%rvlw8#`kf`hfg-njm-ip!nbdmfwj`=?,b=?,kelqf`bpw-#Tkjof#wkvqpgbzgufqwjpf%fb`vwf8kbp@obppfubovbwflqgfqjmdf{jpwjmdsbwjfmwp#Lmojmf#`lolqbglLswjlmp!`bnsafoo?"..#fmg?,psbm=??aq#,=\t\\slsvspp`jfm`fp/%rvlw8#rvbojwz#Tjmgltp#bppjdmfgkfjdkw9#?a#`obppof%rvlw8#ubovf>!#@lnsbmzf{bnsofp?jeqbnf#afojfufpsqfpfmwpnbqpkboosbqw#le#sqlsfqoz*-\t\tWkf#wb{lmlnznv`k#le#?,psbm=\t!#gbwb.pqwvdv/Fpp`qlooWl#sqlif`w?kfbg=\tbwwlqmfzfnskbpjppslmplqpebm`zal{tlqog$p#tjogojef`kf`hfg>pfppjlmpsqldqbnns{8elmw.#Sqlif`wilvqmbopafojfufgub`bwjlmwklnsplmojdkwjmdbmg#wkf#psf`jbo#alqgfq>3`kf`hjmd?,walgz=?avwwlm#@lnsofwf`ofbqej{\t?kfbg=\tbqwj`of#?pf`wjlmejmgjmdpqlof#jm#slsvobq##L`wlafqtfapjwf#f{slpvqfvpfg#wl##`kbmdfplsfqbwfg`oj`hjmdfmwfqjmd`lnnbmgpjmelqnfg#mvnafqp##?,gju=`qfbwjmdlmPvanjwnbqzobmg`loofdfpbmbozwj`ojpwjmdp`lmwb`w-olddfgJmbgujplqzpjaojmdp`lmwfmw!p%rvlw8*p-#Wkjp#sb`hbdfp`kf`hal{pvddfpwpsqfdmbmwwlnlqqltpsb`jmd>j`lm-smdibsbmfpf`lgfabpfavwwlm!=dbnaojmdpv`k#bp#/#tkjof#?,psbm=#njpplvqjpslqwjmdwls92s{#-?,psbm=wfmpjlmptjgwk>!1obyzolbgmlufnafqvpfg#jm#kfjdkw>!`qjsw!=\t%maps8?,?wq=?wg#kfjdkw91,sqlgv`w`lvmwqz#jm`ovgf#ellwfq!#%ow8"..#wjwof!=?,irvfqz-?,elqn=\t+\vBl\bQ*+\vUmGx*kqubwphjjwbojbmlqln/Nm(ow/Pqh/Kf4K4]4C5dwbnaj/Emmlwj`jbpnfmpbifpsfqplmbpgfqf`klpmb`jlmbopfquj`jl`lmwb`wlvpvbqjlpsqldqbnbdlajfqmlfnsqfpbpbmvm`jlpubofm`jb`lolnajbgfpsv/Epgfslqwfpsqlzf`wlsqlgv`wls/Vaoj`lmlplwqlpkjpwlqjbsqfpfmwfnjoolmfpnfgjbmwfsqfdvmwbbmwfqjlqqf`vqplpsqlaofnbpbmwjbdlmvfpwqlplsjmj/_mjnsqjnjqnjfmwqbpbn/Eqj`bufmgfglqpl`jfgbgqfpsf`wlqfbojybqqfdjpwqlsbobaqbpjmwfq/Epfmwlm`fpfpsf`jbonjfnaqlpqfbojgbg`/_qglabybqbdlybs/Mdjmbppl`jbofpaolrvfbqdfpwj/_mborvjofqpjpwfnbp`jfm`jbp`lnsofwlufqpj/_m`lnsofwbfpwvgjlps/Vaoj`blaifwjulboj`bmwfavp`bglq`bmwjgbgfmwqbgbpb``jlmfpbq`kjulppvsfqjlqnbzlq/Abbofnbmjbevm`j/_m/Vowjnlpkb`jfmglbrvfoolpfgj`j/_mefqmbmglbnajfmwfeb`fallhmvfpwqbp`ojfmwfpsql`fplpabpwbmwfsqfpfmwbqfslqwbq`lmdqfplsvaoj`bq`lnfq`jl`lmwqbwli/_ufmfpgjpwqjwlw/E`mj`b`lmivmwlfmfqd/Abwqbabibqbpwvqjbpqf`jfmwfvwjojybqalofw/Ampboubglq`lqqf`wbwqbabilpsqjnfqlpmfdl`jlpojafqwbggfwboofpsbmwboobsq/_{jnlbonfq/Abbmjnbofprvj/Emfp`lqby/_mpf``j/_mavp`bmglls`jlmfpf{wfqjlq`lm`fswlwlgbu/Abdbofq/Abfp`qjajqnfgj`jmboj`fm`jb`lmpvowbbpsf`wlp`q/Awj`bg/_obqfpivpwj`jbgfafq/Mmsfq/Alglmf`fpjwbnbmwfmfqsfrvf/]lqf`jajgbwqjavmbowfmfqjef`bm`j/_m`bmbqjbpgfp`bqdbgjufqplpnboolq`bqfrvjfqfw/E`mj`lgfafq/Abujujfmgbejmbmybpbgfobmwfevm`jlmb`lmpfilpgje/A`jo`jvgbgfpbmwjdvbpbubmybgbw/Eqnjmlvmjgbgfpp/Mm`kfy`bnsb/]bplewlmj`qfujpwbp`lmwjfmfpf`wlqfpnlnfmwlpeb`vowbg`q/Egjwlgjufqpbppvsvfpwleb`wlqfppfdvmglpsfrvf/]b<_!?,pfof`w=Bvpwqbojb!#`obpp>!pjwvbwjlmbvwklqjwzelooltjmdsqjnbqjozlsfqbwjlm`kboofmdfgfufolsfgbmlmznlvpevm`wjlm#evm`wjlmp`lnsbmjfppwqv`wvqfbdqffnfmw!#wjwof>!slwfmwjbofgv`bwjlmbqdvnfmwppf`lmgbqz`lszqjdkwobmdvbdfpf{`ovpjuf`lmgjwjlm?,elqn=\tpwbwfnfmwbwwfmwjlmAjldqbskz~#fopf#x\tplovwjlmptkfm#wkf#Bmbozwj`pwfnsobwfpgbmdfqlvppbwfoojwfgl`vnfmwpsvaojpkfqjnslqwbmwsqlwlwzsfjmeovfm`f%qbrvl8?,feef`wjufdfmfqboozwqbmpelqnafbvwjevowqbmpslqwlqdbmjyfgsvaojpkfgsqlnjmfmwvmwjo#wkfwkvnambjoMbwjlmbo#-el`vp+*8lufq#wkf#njdqbwjlmbmmlvm`fgellwfq!=\tf{`fswjlmofpp#wkbmf{sfmpjufelqnbwjlmeqbnftlqhwfqqjwlqzmgj`bwjlm`vqqfmwoz`obppMbnf`qjwj`jpnwqbgjwjlmfopftkfqfBof{bmgfqbssljmwfgnbwfqjbopaqlbg`bpwnfmwjlmfgbeejojbwf?,lswjlm=wqfbwnfmwgjeefqfmw,gfebvow-Sqfpjgfmwlm`oj`h>!ajldqbskzlwkfqtjpfsfqnbmfmwEqbm/KbjpKlooztllgf{sbmpjlmpwbmgbqgp?,pwzof=\tqfgv`wjlmGf`fnafq#sqfefqqfg@bnaqjgdflsslmfmwpAvpjmfpp#`lmevpjlm=\t?wjwof=sqfpfmwfgf{sobjmfgglfp#mlw#tlqogtjgfjmwfqeb`fslpjwjlmpmftpsbsfq?,wbaof=\tnlvmwbjmpojhf#wkf#fppfmwjboejmbm`jbopfof`wjlmb`wjlm>!,babmglmfgFgv`bwjlmsbqpfJmw+pwbajojwzvmbaof#wl?,wjwof=\tqfobwjlmpMlwf#wkbwfeej`jfmwsfqelqnfgwtl#zfbqpPjm`f#wkfwkfqfelqftqbssfq!=bowfqmbwfjm`qfbpfgAbwwof#lesfq`fjufgwqzjmd#wlmf`fppbqzslqwqbzfgfof`wjlmpFojybafwk?,jeqbnf=gjp`lufqzjmpvqbm`fp-ofmdwk8ofdfmgbqzDfldqbskz`bmgjgbwf`lqslqbwfplnfwjnfppfquj`fp-jmkfqjwfg?,pwqlmd=@lnnvmjwzqfojdjlvpol`bwjlmp@lnnjwwffavjogjmdpwkf#tlqogml#olmdfqafdjmmjmdqfefqfm`f`bmmlw#afeqfrvfm`zwzsj`boozjmwl#wkf#qfobwjuf8qf`lqgjmdsqfpjgfmwjmjwjboozwf`kmjrvfwkf#lwkfqjw#`bm#aff{jpwfm`fvmgfqojmfwkjp#wjnfwfofsklmfjwfnp`lsfsqb`wj`fpbgubmwbdf*8qfwvqm#Elq#lwkfqsqlujgjmdgfnl`qb`zalwk#wkf#f{wfmpjufpveefqjmdpvsslqwfg`lnsvwfqp#evm`wjlmsqb`wj`bopbjg#wkbwjw#nbz#afFmdojpk?,eqln#wkf#p`kfgvofggltmolbgp?,obafo=\tpvpsf`wfgnbqdjm9#3psjqjwvbo?,kfbg=\t\tnj`qlplewdqbgvboozgjp`vppfgkf#af`bnff{f`vwjufirvfqz-ipklvpfklog`lmejqnfgsvq`kbpfgojwfqboozgfpwqlzfgvs#wl#wkfubqjbwjlmqfnbjmjmdjw#jp#mlw`fmwvqjfpIbsbmfpf#bnlmd#wkf`lnsofwfgbodlqjwknjmwfqfpwpqfafoojlmvmgfejmfgfm`lvqbdfqfpjybaofjmuloujmdpfmpjwjufvmjufqpbosqlujpjlm+bowklvdkefbwvqjmd`lmgv`wfg*/#tkj`k#`lmwjmvfg.kfbgfq!=Efaqvbqz#mvnfqlvp#lufqeolt9`lnslmfmweqbdnfmwpf{`foofmw`lopsbm>!wf`kmj`bomfbq#wkf#Bgubm`fg#plvq`f#lef{sqfppfgKlmd#Hlmd#Eb`fallhnvowjsof#nf`kbmjpnfofubwjlmleefmpjuf?,elqn=\t\npslmplqfggl`vnfmw-lq#%rvlw8wkfqf#bqfwklpf#tklnlufnfmwpsql`fppfpgjeej`vowpvanjwwfgqf`lnnfmg`lmujm`fgsqlnlwjmd!#tjgwk>!-qfsob`f+`obppj`bo`lbojwjlmkjp#ejqpwgf`jpjlmpbppjpwbmwjmgj`bwfgfulovwjlm.tqbssfq!fmlvdk#wlbolmd#wkfgfojufqfg..=\t?"..Bnfqj`bm#sqlwf`wfgMlufnafq#?,pwzof=?evqmjwvqfJmwfqmfw##lmaovq>!pvpsfmgfgqf`jsjfmwabpfg#lm#Nlqflufq/balojpkfg`loof`wfgtfqf#nbgffnlwjlmbofnfqdfm`zmbqqbwjufbgul`bwfps{8alqgfq`lnnjwwfggjq>!owq!fnsolzffpqfpfbq`k-#pfof`wfgpv``fpplq`vpwlnfqpgjpsobzfgPfswfnafqbgg@obpp+Eb`fallh#pvddfpwfgbmg#obwfqlsfqbwjmdfobalqbwfPlnfwjnfpJmpwjwvwf`fqwbjmozjmpwboofgelooltfqpIfqvpbofnwkfz#kbuf`lnsvwjmddfmfqbwfgsqlujm`fpdvbqbmwffbqajwqbqzqf`ldmjyftbmwfg#wls{8tjgwk9wkflqz#leafkbujlvqTkjof#wkffpwjnbwfgafdbm#wl#jw#af`bnfnbdmjwvgfnvpw#kbufnlqf#wkbmGjqf`wlqzf{wfmpjlmpf`qfwbqzmbwvqboozl``vqqjmdubqjbaofpdjufm#wkfsobwelqn-?,obafo=?ebjofg#wl`lnslvmgphjmgp#le#pl`jfwjfpbolmdpjgf#..%dw8\t\tplvwktfpwwkf#qjdkwqbgjbwjlmnbz#kbuf#vmfp`bsf+pslhfm#jm!#kqfe>!,sqldqbnnflmoz#wkf#`lnf#eqlngjqf`wlqzavqjfg#jmb#pjnjobqwkfz#tfqf?,elmw=?,Mlqtfdjbmpsf`jejfgsqlgv`jmdsbppfmdfq+mft#Gbwfwfnslqbqzej`wjlmboBewfq#wkffrvbwjlmpgltmolbg-qfdvobqozgfufolsfqbaluf#wkfojmhfg#wlskfmlnfmbsfqjlg#lewllowjs!=pvapwbm`fbvwlnbwj`bpsf`w#leBnlmd#wkf`lmmf`wfgfpwjnbwfpBjq#Elq`fpzpwfn#lelaif`wjufjnnfgjbwfnbhjmd#jwsbjmwjmdp`lmrvfqfgbqf#pwjoosql`fgvqfdqltwk#lekfbgfg#azFvqlsfbm#gjujpjlmpnlof`vofpeqbm`kjpfjmwfmwjlmbwwqb`wfg`kjogkllgbopl#vpfggfgj`bwfgpjmdbslqfgfdqff#leebwkfq#le`lmeoj`wp?,b=?,s=\t`bnf#eqlntfqf#vpfgmlwf#wkbwqf`fjujmdF{f`vwjuffufm#nlqfb``fpp#wl`lnnbmgfqSlojwj`bonvpj`jbmpgfoj`jlvpsqjplmfqpbgufmw#leVWE.;!#,=?"X@GBWBX!=@lmwb`wPlvwkfqm#ad`lolq>!pfqjfp#le-#Jw#tbp#jm#Fvqlsfsfqnjwwfgubojgbwf-bssfbqjmdleej`jboppfqjlvpoz.obmdvbdfjmjwjbwfgf{wfmgjmdolmd.wfqnjmeobwjlmpv`k#wkbwdfw@llhjfnbqhfg#az?,avwwlm=jnsofnfmwavw#jw#jpjm`qfbpfpgltm#wkf#qfrvjqjmdgfsfmgfmw..=\t?"..#jmwfqujftTjwk#wkf#`lsjfp#le`lmpfmpvptbp#avjowUfmfyvfob+elqnfqozwkf#pwbwfsfqplmmfopwqbwfdj`ebulvq#lejmufmwjlmTjhjsfgjb`lmwjmfmwujqwvbooztkj`k#tbpsqjm`jsof@lnsofwf#jgfmwj`bopklt#wkbwsqjnjwjufbtbz#eqlnnlof`vobqsqf`jpfozgjpploufgVmgfq#wkfufqpjlm>!=%maps8?,Jw#jp#wkf#Wkjp#jp#tjoo#kbuflqdbmjpnpplnf#wjnfEqjfgqj`ktbp#ejqpwwkf#lmoz#eb`w#wkbwelqn#jg>!sqf`fgjmdWf`kmj`boskzpj`jpwl``vqp#jmmbujdbwlqpf`wjlm!=psbm#jg>!plvdkw#wlafolt#wkfpvqujujmd~?,pwzof=kjp#gfbwkbp#jm#wkf`bvpfg#azsbqwjboozf{jpwjmd#vpjmd#wkftbp#djufmb#ojpw#leofufop#lemlwjlm#leLeej`jbo#gjpnjppfgp`jfmwjpwqfpfnaofpgvsoj`bwff{solpjufqf`lufqfgboo#lwkfqdboofqjfpxsbggjmd9sflsof#leqfdjlm#lebggqfppfpbppl`jbwfjnd#bow>!jm#nlgfqmpklvog#afnfwklg#leqfslqwjmdwjnfpwbnsmffgfg#wlwkf#Dqfbwqfdbqgjmdpffnfg#wlujftfg#bpjnsb`w#lmjgfb#wkbwwkf#Tlqogkfjdkw#lef{sbmgjmdWkfpf#bqf`vqqfmw!=`bqfevooznbjmwbjmp`kbqdf#le@obppj`bobggqfppfgsqfgj`wfgltmfqpkjs?gju#jg>!qjdkw!=\tqfpjgfm`fofbuf#wkf`lmwfmw!=bqf#lewfm##~*+*8\tsqlabaoz#Sqlefpplq.avwwlm!#qfpslmgfgpbzp#wkbwkbg#wl#afsob`fg#jmKvmdbqjbmpwbwvp#lepfqufp#bpVmjufqpbof{f`vwjlmbddqfdbwfelq#tkj`kjmef`wjlmbdqffg#wlkltfufq/#slsvobq!=sob`fg#lm`lmpwqv`wfof`wlqbopznalo#lejm`ovgjmdqfwvqm#wlbq`kjwf`w@kqjpwjbmsqfujlvp#ojujmd#jmfbpjfq#wlsqlefpplq\t%ow8"..#feef`w#lebmbozwj`ptbp#wbhfmtkfqf#wkfwllh#lufqafojfe#jmBeqjhbbmpbp#ebq#bpsqfufmwfgtlqh#tjwkb#psf`jbo?ejfogpfw@kqjpwnbpQfwqjfufg\t\tJm#wkf#ab`h#jmwlmlqwkfbpwnbdbyjmfp=?pwqlmd=`lnnjwwffdlufqmjmddqlvsp#lepwlqfg#jmfpwbaojpkb#dfmfqbojwp#ejqpwwkfjq#ltmslsvobwfgbm#laif`w@bqjaafbmboolt#wkfgjpwqj`wptjp`lmpjmol`bwjlm-8#tjgwk9#jmkbajwfgPl`jbojpwIbmvbqz#2?,ellwfq=pjnjobqoz`klj`f#lewkf#pbnf#psf`jej`#avpjmfpp#Wkf#ejqpw-ofmdwk8#gfpjqf#wlgfbo#tjwkpjm`f#wkfvpfqBdfmw`lm`fjufgjmgf{-sksbp#%rvlw8fmdbdf#jmqf`fmwoz/eft#zfbqptfqf#bopl\t?kfbg=\t?fgjwfg#azbqf#hmltm`jwjfp#jmb``fpphfz`lmgfnmfgbopl#kbufpfquj`fp/ebnjoz#leP`kllo#le`lmufqwfgmbwvqf#le#obmdvbdfnjmjpwfqp?,laif`w=wkfqf#jp#b#slsvobqpfrvfm`fpbgul`bwfgWkfz#tfqfbmz#lwkfqol`bwjlm>fmwfq#wkfnv`k#nlqfqfeof`wfgtbp#mbnfglqjdjmbo#b#wzsj`botkfm#wkfzfmdjmffqp`lvog#mlwqfpjgfmwptfgmfpgbzwkf#wkjqg#sqlgv`wpIbmvbqz#1tkbw#wkfzb#`fqwbjmqfb`wjlmpsql`fpplqbewfq#kjpwkf#obpw#`lmwbjmfg!=?,gju=\t?,b=?,wg=gfsfmg#lmpfbq`k!=\tsjf`fp#le`lnsfwjmdQfefqfm`fwfmmfppfftkj`k#kbp#ufqpjlm>?,psbm=#??,kfbgfq=djufp#wkfkjpwlqjbmubovf>!!=sbggjmd93ujft#wkbwwldfwkfq/wkf#nlpw#tbp#elvmgpvapfw#lebwwb`h#lm`kjogqfm/sljmwp#lesfqplmbo#slpjwjlm9boofdfgoz@ofufobmgtbp#obwfqbmg#bewfqbqf#djufmtbp#pwjoop`qloojmdgfpjdm#lenbhfp#wkfnv`k#ofppBnfqj`bmp-\t\tBewfq#/#avw#wkfNvpfvn#leolvjpjbmb+eqln#wkfnjmmfplwbsbqwj`ofpb#sql`fppGlnjmj`bmulovnf#leqfwvqmjmdgfefmpjuf33s{qjdknbgf#eqlnnlvpflufq!#pwzof>!pwbwfp#le+tkj`k#jp`lmwjmvfpEqbm`jp`lavjogjmd#tjwklvw#btjwk#plnftkl#tlvogb#elqn#leb#sbqw#leafelqf#jwhmltm#bp##Pfquj`fpol`bwjlm#bmg#lewfmnfbpvqjmdbmg#jw#jpsbsfqab`hubovfp#le\t?wjwof=>#tjmglt-gfwfqnjmffq%rvlw8#sobzfg#azbmg#fbqoz?,`fmwfq=eqln#wkjpwkf#wkqffsltfq#bmgle#%rvlw8jmmfqKWNO?b#kqfe>!z9jmojmf8@kvq`k#lewkf#fufmwufqz#kjdkleej`jbo#.kfjdkw9#`lmwfmw>!,`dj.ajm,wl#`qfbwfbeqjhbbmpfpsfqbmwleqbm/Kbjpobwujf)Mvojfwvuj)_(`f)Mwjmb(af)Mwjmb\fUh\fT{\fTN\n{I\np@Fr\vBl\bQ\tA{\vUmGx\tA{ypYA\0zX\bTV\bWl\bUdBM\vB{\npV\v@xB\\\np@DbGz\tal\npa\tfM\tuD\bV~mx\vQ}\ndS\tp\\\bVK\bS]\bU|oD\tkV\ved\vHR\nb~M`\nJpoD|Q\nLPSw\bTl\nAI\nxC\bWt\tBqF`Cm\vLm\tKx\t}t\bPv\ny\\\naB\tV\nZdXUli\tfr\ti@\tBHBDBV\t`V\n[]\tp_\tTn\n~A\nxR\tuD\t`{\bV@\tTn\tHK\tAJ\vxsZf\nqIZf\vBM\v|j\t}t\bSM\nmC\vQ}pfquj`jlpbqw/A`volbqdfmwjmbabq`folmb`vborvjfqsvaoj`bglsqlgv`wlpslo/Awj`bqfpsvfpwbtjhjsfgjbpjdvjfmwfa/Vprvfgb`lnvmjgbgpfdvqjgbgsqjm`jsbosqfdvmwbp`lmwfmjglqfpslmgfqufmfyvfobsqlaofnbpgj`jfnaqfqfob`j/_mmlujfnaqfpjnjobqfpsqlzf`wlpsqldqbnbpjmpwjwvwlb`wjujgbgfm`vfmwqbf`lmln/Abjn/Mdfmfp`lmwb`wbqgfp`bqdbqmf`fpbqjlbwfm`j/_mwfo/Eelml`lnjpj/_m`bm`jlmfp`bsb`jgbgfm`lmwqbqbm/Mojpjpebulqjwlpw/Eqnjmlpsqlujm`jbfwjrvfwbpfofnfmwlpevm`jlmfpqfpvowbgl`bq/M`wfqsqlsjfgbgsqjm`jsjlmf`fpjgbgnvmj`jsbo`qfb`j/_mgfp`bqdbpsqfpfm`jb`lnfq`jbolsjmjlmfpfifq`j`jlfgjwlqjbopbobnbm`bdlmy/Mofygl`vnfmwlsfo/A`vobqf`jfmwfpdfmfqbofpwbqqbdlmbsq/M`wj`bmlufgbgfpsqlsvfpwbsb`jfmwfpw/E`mj`bplaifwjulp`lmwb`wlp\fHB\fIk\fHn\fH^\fHS\fHc\fHU\fId\fHn\fH{\fHC\fHR\fHT\fHR\fHI\fHc\fHY\fHn\fH\\\fHU\fIk\fHy\fIg\fHd\fHy\fIm\fHw\fH\\\fHU\fHR\fH@\fHR\fHJ\fHy\fHU\fHR\fHT\fHA\fIl\fHU\fIm\fHc\fH\\\fHU\fIl\fHB\fId\fHn\fHJ\fHS\fHD\fH@\fHR\fHHgjsolgl`p\fHT\fHB\fHC\fH\\\fIn\fHF\fHD\fHR\fHB\fHF\fHH\fHR\fHG\fHS\fH\\\fHx\fHT\fHH\fHH\fH\\\fHU\fH^\fIg\fH{\fHU\fIm\fHj\fH@\fHR\fH\\\fHJ\fIk\fHZ\fHU\fIm\fHd\fHz\fIk\fH^\fHC\fHJ\fHS\fHy\fHR\fHB\fHY\fIk\fH@\fHH\fIl\fHD\fH@\fIl\fHv\fHB\fI`\fHH\fHT\fHR\fH^\fH^\fIk\fHz\fHp\fIe\fH@\fHB\fHJ\fHJ\fHH\fHI\fHR\fHD\fHU\fIl\fHZ\fHU\fH\\\fHi\fH^\fH{\fHy\fHA\fIl\fHD\fH{\fH\\\fHF\fHR\fHT\fH\\\fHR\fHH\fHy\fHS\fHc\fHe\fHT\fIk\fH{\fHC\fIl\fHU\fIn\fHm\fHj\fH{\fIk\fHs\fIl\fHB\fHz\fIg\fHp\fHy\fHR\fH\\\fHi\fHA\fIl\fH{\fHC\fIk\fHH\fIm\fHB\fHY\fIg\fHs\fHJ\fIk\fHn\fHi\fH{\fH\\\fH|\fHT\fIk\fHB\fIk\fH^\fH^\fH{\fHR\fHU\fHR\fH^\fHf\fHF\fH\\\fHv\fHR\fH\\\fH|\fHT\fHR\fHJ\fIk\fH\\\fHp\fHS\fHT\fHJ\fHS\fH^\fH@\fHn\fHJ\fH@\fHD\fHR\fHU\fIn\fHn\fH^\fHR\fHz\fHp\fIl\fHH\fH@\fHs\fHD\fHB\fHS\fH^\fHk\fHT\fIk\fHj\fHD\fIk\fHD\fHC\fHR\fHy\fIm\fH^\fH^\fIe\fH{\fHA\fHR\fH{\fH\\\fIk\fH^\fHp\fH{\fHU\fH\\\fHR\fHB\fH^\fH{\fIk\fHF\fIk\fHp\fHU\fHR\fHI\fHk\fHT\fIl\fHT\fHU\fIl\fHy\fH^\fHR\fHL\fIl\fHy\fHU\fHR\fHm\fHJ\fIn\fH\\\fHH\fHU\fHH\fHT\fHR\fHH\fHC\fHR\fHJ\fHj\fHC\fHR\fHF\fHR\fHy\fHy\fI`\fHD\fHZ\fHR\fHB\fHJ\fIk\fHz\fHC\fHU\fIl\fH\\\fHR\fHC\fHz\fIm\fHJ\fH^\fH{\fIl`bwfdlqjfpf{sfqjfm`f?,wjwof=\t@lszqjdkw#ibubp`qjsw`lmgjwjlmpfufqzwkjmd?s#`obpp>!wf`kmloldzab`hdqlvmg?b#`obpp>!nbmbdfnfmw%`lsz8#132ibubP`qjsw`kbqb`wfqpaqfbg`qvnawkfnpfoufpklqjylmwbodlufqmnfmw@bojelqmjbb`wjujwjfpgjp`lufqfgMbujdbwjlmwqbmpjwjlm`lmmf`wjlmmbujdbwjlmbssfbqbm`f?,wjwof=?n`kf`hal{!#wf`kmjrvfpsqlwf`wjlmbssbqfmwozbp#tfoo#bpvmw$/#$VB.qfplovwjlmlsfqbwjlmpwfofujpjlmwqbmpobwfgTbpkjmdwlmmbujdbwlq-#>#tjmglt-jnsqfppjlm%ow8aq%dw8ojwfqbwvqfslsvobwjlmad`lolq>! fpsf`jbooz#`lmwfmw>!sqlgv`wjlmmftpofwwfqsqlsfqwjfpgfejmjwjlmofbgfqpkjsWf`kmloldzSbqojbnfmw`lnsbqjplmvo#`obpp>!-jmgf{Le+!`lm`ovpjlmgjp`vppjlm`lnslmfmwpajloldj`boQfulovwjlm\\`lmwbjmfqvmgfqpwllgmlp`qjsw=?sfqnjppjlmfb`k#lwkfqbwnlpskfqf#lmel`vp>!?elqn#jg>!sql`fppjmdwkjp-ubovfdfmfqbwjlm@lmefqfm`fpvapfrvfmwtfoo.hmltmubqjbwjlmpqfsvwbwjlmskfmlnfmlmgjp`jsojmfoldl-smd!#+gl`vnfmw/alvmgbqjfpf{sqfppjlmpfwwofnfmwAb`hdqlvmglvw#le#wkffmwfqsqjpf+!kwwsp9!#vmfp`bsf+!sbpptlqg!#gfnl`qbwj`?b#kqfe>!,tqbssfq!=\tnfnafqpkjsojmdvjpwj`s{8sbggjmdskjolplskzbppjpwbm`fvmjufqpjwzeb`jojwjfpqf`ldmjyfgsqfefqfm`fje#+wzsflenbjmwbjmfgul`bavobqzkzslwkfpjp-pvanjw+*8%bns8maps8bmmlwbwjlmafkjmg#wkfElvmgbwjlmsvaojpkfq!bppvnswjlmjmwqlgv`fg`lqqvswjlmp`jfmwjpwpf{soj`jwozjmpwfbg#legjnfmpjlmp#lm@oj`h>!`lmpjgfqfggfsbqwnfmwl``vsbwjlmpllm#bewfqjmufpwnfmwsqlmlvm`fgjgfmwjejfgf{sfqjnfmwNbmbdfnfmwdfldqbskj`!#kfjdkw>!ojmh#qfo>!-qfsob`f+,gfsqfppjlm`lmefqfm`fsvmjpknfmwfojnjmbwfgqfpjpwbm`fbgbswbwjlmlsslpjwjlmtfoo#hmltmpvssofnfmwgfwfqnjmfgk2#`obpp>!3s{8nbqdjmnf`kbmj`bopwbwjpwj`p`fofaqbwfgDlufqmnfmw\t\tGvqjmd#wgfufolsfqpbqwjej`jbofrvjubofmwlqjdjmbwfg@lnnjppjlmbwwb`knfmw?psbm#jg>!wkfqf#tfqfMfgfqobmgpafzlmg#wkfqfdjpwfqfgilvqmbojpweqfrvfmwozboo#le#wkfobmd>!fm!#?,pwzof=\tbaplovwf8#pvsslqwjmdf{wqfnfoz#nbjmpwqfbn?,pwqlmd=#slsvobqjwzfnsolznfmw?,wbaof=\t#`lopsbm>!?,elqn=\t##`lmufqpjlmbalvw#wkf#?,s=?,gju=jmwfdqbwfg!#obmd>!fmSlqwvdvfpfpvapwjwvwfjmgjujgvbojnslppjaofnvowjnfgjbbonlpw#boos{#plojg# bsbqw#eqlnpvaif`w#wljm#Fmdojpk`qjwj`jyfgf{`fsw#elqdvjgfojmfplqjdjmboozqfnbqhbaofwkf#pf`lmgk1#`obpp>!?b#wjwof>!+jm`ovgjmdsbqbnfwfqpsqlkjajwfg>#!kwws9,,gj`wjlmbqzsfq`fswjlmqfulovwjlmelvmgbwjlms{8kfjdkw9pv``fppevopvsslqwfqpnjoofmmjvnkjp#ebwkfqwkf#%rvlw8ml.qfsfbw8`lnnfq`jbojmgvpwqjbofm`lvqbdfgbnlvmw#le#vmleej`jbofeej`jfm`zQfefqfm`fp`llqgjmbwfgjp`objnfqf{sfgjwjlmgfufolsjmd`bo`vobwfgpjnsojejfgofdjwjnbwfpvapwqjmd+3!#`obpp>!`lnsofwfozjoovpwqbwfejuf#zfbqpjmpwqvnfmwSvaojpkjmd2!#`obpp>!spz`kloldz`lmejgfm`fmvnafq#le#bapfm`f#leel`vpfg#lmiljmfg#wkfpwqv`wvqfpsqfujlvpoz=?,jeqbnf=lm`f#bdbjmavw#qbwkfqjnnjdqbmwple#`lvqpf/b#dqlvs#leOjwfqbwvqfVmojhf#wkf?,b=%maps8\tevm`wjlm#jw#tbp#wkf@lmufmwjlmbvwlnlajofSqlwfpwbmwbddqfppjufbewfq#wkf#Pjnjobqoz/!#,=?,gju=`loof`wjlm\tevm`wjlmujpjajojwzwkf#vpf#leulovmwffqpbwwqb`wjlmvmgfq#wkf#wkqfbwfmfg)?"X@GBWBXjnslqwbm`fjm#dfmfqbowkf#obwwfq?,elqn=\t?,-jmgf{Le+$j#>#38#j#?gjeefqfm`fgfulwfg#wlwqbgjwjlmppfbq`k#elqvowjnbwfozwlvqmbnfmwbwwqjavwfppl.`boofg#~\t?,pwzof=fubovbwjlmfnskbpjyfgb``fppjaof?,pf`wjlm=pv``fppjlmbolmd#tjwkNfbmtkjof/jmgvpwqjfp?,b=?aq#,=kbp#af`lnfbpsf`wp#leWfofujpjlmpveej`jfmwabphfwabooalwk#pjgfp`lmwjmvjmdbm#bqwj`of?jnd#bow>!bgufmwvqfpkjp#nlwkfqnbm`kfpwfqsqjm`jsofpsbqwj`vobq`lnnfmwbqzfeef`wp#legf`jgfg#wl!=?pwqlmd=svaojpkfqpIlvqmbo#legjeej`vowzeb`jojwbwfb``fswbaofpwzof-`pp!\nevm`wjlm#jmmlubwjlm=@lszqjdkwpjwvbwjlmptlvog#kbufavpjmfppfpGj`wjlmbqzpwbwfnfmwplewfm#vpfgsfqpjpwfmwjm#Ibmvbqz`lnsqjpjmd?,wjwof=\t\ngjsolnbwj``lmwbjmjmdsfqelqnjmdf{wfmpjlmpnbz#mlw#af`lm`fsw#le#lm`oj`h>!Jw#jp#boplejmbm`jbo#nbhjmd#wkfOv{fnalvqdbggjwjlmbobqf#`boofgfmdbdfg#jm!p`qjsw!*8avw#jw#tbpfof`wqlmj`lmpvanjw>!\t?"..#Fmg#fof`wqj`boleej`jboozpvddfpwjlmwls#le#wkfvmojhf#wkfBvpwqbojbmLqjdjmboozqfefqfm`fp\t?,kfbg=\tqf`ldmjpfgjmjwjbojyfojnjwfg#wlBof{bmgqjbqfwjqfnfmwBgufmwvqfpelvq#zfbqp\t\t%ow8"..#jm`qfbpjmdgf`lqbwjlmk0#`obpp>!lqjdjmp#lelaojdbwjlmqfdvobwjlm`obppjejfg+evm`wjlm+bgubmwbdfpafjmd#wkf#kjpwlqjbmp?abpf#kqfeqfsfbwfgoztjoojmd#wl`lnsbqbaofgfpjdmbwfgmlnjmbwjlmevm`wjlmbojmpjgf#wkfqfufobwjlmfmg#le#wkfp#elq#wkf#bvwklqjyfgqfevpfg#wlwbhf#sob`fbvwlmlnlvp`lnsqlnjpfslojwj`bo#qfpwbvqbmwwtl#le#wkfEfaqvbqz#1rvbojwz#leptelaif`w-vmgfqpwbmgmfbqoz#bootqjwwfm#azjmwfqujftp!#tjgwk>!2tjwkgqbtboeolbw9ofewjp#vpvbooz`bmgjgbwfpmftpsbsfqpnzpwfqjlvpGfsbqwnfmwafpw#hmltmsbqojbnfmwpvssqfppfg`lmufmjfmwqfnfnafqfggjeefqfmw#pzpwfnbwj`kbp#ofg#wlsqlsbdbmgb`lmwqloofgjmeovfm`fp`fqfnlmjbosql`objnfgSqlwf`wjlmoj#`obpp>!P`jfmwjej``obpp>!ml.wqbgfnbqhpnlqf#wkbm#tjgfpsqfbgOjafqbwjlmwllh#sob`fgbz#le#wkfbp#olmd#bpjnsqjplmfgBggjwjlmbo\t?kfbg=\t?nObalqbwlqzMlufnafq#1f{`fswjlmpJmgvpwqjboubqjfwz#leeolbw9#ofeGvqjmd#wkfbppfppnfmwkbuf#affm#gfbop#tjwkPwbwjpwj`pl``vqqfm`f,vo=?,gju=`ofbqej{!=wkf#svaoj`nbmz#zfbqptkj`k#tfqflufq#wjnf/pzmlmznlvp`lmwfmw!=\tsqfpvnbaozkjp#ebnjozvpfqBdfmw-vmf{sf`wfgjm`ovgjmd#`kboofmdfgb#njmlqjwzvmgfejmfg!afolmdp#wlwbhfm#eqlnjm#L`wlafqslpjwjlm9#pbjg#wl#afqfojdjlvp#Efgfqbwjlm#qltpsbm>!lmoz#b#eftnfbmw#wkbwofg#wl#wkf..=\t?gju#?ejfogpfw=Bq`kajpkls#`obpp>!mlafjmd#vpfgbssqlb`kfpsqjujofdfpmlp`qjsw=\tqfpvowp#jmnbz#af#wkfFbpwfq#fddnf`kbmjpnpqfbplmbaofSlsvobwjlm@loof`wjlmpfof`wfg!=mlp`qjsw=,jmgf{-sksbqqjubo#le.ippgh$**8nbmbdfg#wljm`lnsofwf`bpvbowjfp`lnsofwjlm@kqjpwjbmpPfswfnafq#bqjwknfwj`sql`fgvqfpnjdkw#kbufSqlgv`wjlmjw#bssfbqpSkjolplskzeqjfmgpkjsofbgjmd#wldjujmd#wkfwltbqg#wkfdvbqbmwffggl`vnfmwfg`lolq9 333ujgfl#dbnf`lnnjppjlmqfeof`wjmd`kbmdf#wkfbppl`jbwfgpbmp.pfqjelmhfzsqfpp8#sbggjmd9Kf#tbp#wkfvmgfqozjmdwzsj`booz#/#bmg#wkf#pq`Fofnfmwpv``fppjufpjm`f#wkf#pklvog#af#mfwtlqhjmdb``lvmwjmdvpf#le#wkfoltfq#wkbmpkltp#wkbw?,psbm=\t\n\n`lnsobjmwp`lmwjmvlvprvbmwjwjfpbpwqlmlnfqkf#gjg#mlwgvf#wl#jwpbssojfg#wlbm#bufqbdffeelqwp#wlwkf#evwvqfbwwfnsw#wlWkfqfelqf/`bsbajojwzQfsvaoj`bmtbp#elqnfgFof`wqlmj`hjolnfwfqp`kboofmdfpsvaojpkjmdwkf#elqnfqjmgjdfmlvpgjqf`wjlmppvapjgjbqz`lmpsjqb`zgfwbjop#lebmg#jm#wkfbeelqgbaofpvapwbm`fpqfbplm#elq`lmufmwjlmjwfnwzsf>!baplovwfozpvsslpfgozqfnbjmfg#bbwwqb`wjufwqbufoojmdpfsbqbwfozel`vpfp#lmfofnfmwbqzbssoj`baofelvmg#wkbwpwzofpkffwnbmvp`qjswpwbmgp#elq#ml.qfsfbw+plnfwjnfp@lnnfq`jbojm#Bnfqj`bvmgfqwbhfmrvbqwfq#lebm#f{bnsofsfqplmboozjmgf{-sks!owqOjfvwfmbmw\t?gju#jg>!wkfz#tlvogbajojwz#lenbgf#vs#lemlwfg#wkbw`ofbq#wkbwbqdvf#wkbwwl#bmlwkfq`kjogqfm$psvqslpf#leelqnvobwfgabpfg#vslmwkf#qfdjlmpvaif`w#lesbppfmdfqpslppfppjlm-\t\tJm#wkf#Afelqf#wkfbewfqtbqgp`vqqfmwoz#b`qlpp#wkfp`jfmwjej``lnnvmjwz-`bsjwbojpnjm#Dfqnbmzqjdkw.tjmdwkf#pzpwfnPl`jfwz#leslojwj`jbmgjqf`wjlm9tfmw#lm#wlqfnlubo#le#Mft#Zlqh#bsbqwnfmwpjmgj`bwjlmgvqjmd#wkfvmofpp#wkfkjpwlqj`bokbg#affm#bgfejmjwjufjmdqfgjfmwbwwfmgbm`f@fmwfq#elqsqlnjmfm`fqfbgzPwbwfpwqbwfdjfpavw#jm#wkfbp#sbqw#le`lmpwjwvwf`objn#wkbwobalqbwlqz`lnsbwjaofebjovqf#le/#pv`k#bp#afdbm#tjwkvpjmd#wkf#wl#sqlujgfefbwvqf#leeqln#tkj`k,!#`obpp>!dfloldj`bopfufqbo#legfojafqbwfjnslqwbmw#klogp#wkbwjmd%rvlw8#ubojdm>wlswkf#Dfqnbmlvwpjgf#lemfdlwjbwfgkjp#`bqffqpfsbqbwjlmjg>!pfbq`ktbp#`boofgwkf#elvqwkqf`qfbwjlmlwkfq#wkbmsqfufmwjlmtkjof#wkf#fgv`bwjlm/`lmmf`wjmdb``vqbwfoztfqf#avjowtbp#hjoofgbdqffnfmwpnv`k#nlqf#Gvf#wl#wkftjgwk9#233plnf#lwkfqHjmdgln#lewkf#fmwjqfebnlvp#elqwl#`lmmf`wlaif`wjufpwkf#Eqfm`ksflsof#bmgefbwvqfg!=jp#pbjg#wlpwqv`wvqboqfefqfmgvnnlpw#lewfmb#pfsbqbwf.=\t?gju#jg#Leej`jbo#tlqogtjgf-bqjb.obafowkf#sobmfwbmg#jw#tbpg!#ubovf>!ollhjmd#bwafmfej`jbobqf#jm#wkfnlmjwlqjmdqfslqwfgozwkf#nlgfqmtlqhjmd#lmbooltfg#wltkfqf#wkf#jmmlubwjuf?,b=?,gju=plvmgwqb`hpfbq`kElqnwfmg#wl#afjmsvw#jg>!lsfmjmd#leqfpwqj`wfgbglswfg#azbggqfppjmdwkfloldjbmnfwklgp#leubqjbmw#le@kqjpwjbm#ufqz#obqdfbvwlnlwjufaz#ebq#wkfqbmdf#eqlnsvqpvjw#leeloolt#wkfaqlvdkw#wljm#Fmdobmgbdqff#wkbwb``vpfg#le`lnfp#eqlnsqfufmwjmdgju#pwzof>kjp#lq#kfqwqfnfmglvpeqffgln#le`lm`fqmjmd3#2fn#2fn8Abphfwaboo,pwzof-`ppbm#fbqojfqfufm#bewfq,!#wjwof>!-`ln,jmgf{wbhjmd#wkfsjwwpavqdk`lmwfmw!=?p`qjsw=+ewvqmfg#lvwkbujmd#wkf?,psbm=\t#l``bpjlmboaf`bvpf#jwpwbqwfg#wlskzpj`booz=?,gju=\t##`qfbwfg#az@vqqfmwoz/#ad`lolq>!wbajmgf{>!gjpbpwqlvpBmbozwj`p#bopl#kbp#b=?gju#jg>!?,pwzof=\t?`boofg#elqpjmdfq#bmg-pq`#>#!,,ujlobwjlmpwkjp#sljmw`lmpwbmwozjp#ol`bwfgqf`lqgjmdpg#eqln#wkfmfgfqobmgpslqwvdv/Fp;N;};D;u;F5m4K4]4_7`gfpbqqlool`lnfmwbqjlfgv`b`j/_mpfswjfnaqfqfdjpwqbglgjqf``j/_mvaj`b`j/_msvaoj`jgbgqfpsvfpwbpqfpvowbglpjnslqwbmwfqfpfqubglpbqw/A`volpgjefqfmwfppjdvjfmwfpqfs/Vaoj`bpjwvb`j/_mnjmjpwfqjlsqjub`jgbggjqf`wlqjlelqnb`j/_mslaob`j/_msqfpjgfmwf`lmw','fmjglpb``fplqjlpwf`kmlqbwjsfqplmbofp`bwfdlq/Abfpsf`jbofpgjpslmjaofb`wvbojgbgqfefqfm`jbuboobglojgajaojlwf`bqfob`jlmfp`bofmgbqjlslo/Awj`bpbmwfqjlqfpgl`vnfmwlpmbwvqbofybnbwfqjbofpgjefqfm`jbf`lm/_nj`bwqbmpslqwfqlgq/Advfysbqwj`jsbqfm`vfmwqbmgjp`vpj/_mfpwqv`wvqbevmgb`j/_meqf`vfmwfpsfqnbmfmwfwlwbonfmwf!2s{#plojg# -dje!#bow>!wqbmpsbqfmwjmelqnbwjlmbssoj`bwjlm!#lm`oj`h>!fpwbaojpkfgbgufqwjpjmd-smd!#bow>!fmujqlmnfmwsfqelqnbm`fbssqlsqjbwf%bns8ngbpk8jnnfgjbwfoz?,pwqlmd=?,qbwkfq#wkbmwfnsfqbwvqfgfufolsnfmw`lnsfwjwjlmsob`fklogfqujpjajojwz9`lszqjdkw!=3!#kfjdkw>!fufm#wklvdkqfsob`fnfmwgfpwjmbwjlm@lqslqbwjlm?vo#`obpp>!Bppl`jbwjlmjmgjujgvbopsfqpsf`wjufpfwWjnflvw+vqo+kwws9,,nbwkfnbwj`pnbqdjm.wls9fufmwvbooz#gfp`qjswjlm*#ml.qfsfbw`loof`wjlmp-ISDwkvnasbqwj`jsbwf,kfbg=?algzeolbw9ofew8?oj#`obpp>!kvmgqfgp#le\t\tKltfufq/#`lnslpjwjlm`ofbq9alwk8`llsfqbwjlmtjwkjm#wkf#obafo#elq>!alqgfq.wls9Mft#Yfbobmgqf`lnnfmgfgsklwldqbskzjmwfqfpwjmd%ow8pvs%dw8`lmwqlufqpzMfwkfqobmgpbowfqmbwjufnb{ofmdwk>!ptjwyfqobmgGfufolsnfmwfppfmwjbooz\t\tBowklvdk#?,wf{wbqfb=wkvmgfqajqgqfsqfpfmwfg%bns8mgbpk8psf`vobwjlm`lnnvmjwjfpofdjpobwjlmfof`wqlmj`p\t\n?gju#jg>!joovpwqbwfgfmdjmffqjmdwfqqjwlqjfpbvwklqjwjfpgjpwqjavwfg5!#kfjdkw>!pbmp.pfqje8`bsbaof#le#gjpbssfbqfgjmwfqb`wjufollhjmd#elqjw#tlvog#afBedkbmjpwbmtbp#`qfbwfgNbwk-eollq+pvqqlvmgjmd`bm#bopl#aflapfqubwjlmnbjmwfmbm`ffm`lvmwfqfg?k1#`obpp>!nlqf#qf`fmwjw#kbp#affmjmubpjlm#le*-dfwWjnf+*evmgbnfmwboGfpsjwf#wkf!=?gju#jg>!jmpsjqbwjlmf{bnjmbwjlmsqfsbqbwjlmf{sobmbwjlm?jmsvw#jg>!?,b=?,psbm=ufqpjlmp#lejmpwqvnfmwpafelqf#wkf##>#$kwws9,,Gfp`qjswjlmqfobwjufoz#-pvapwqjmd+fb`k#le#wkff{sfqjnfmwpjmeovfmwjbojmwfdqbwjlmnbmz#sflsofgvf#wl#wkf#`lnajmbwjlmgl#mlw#kbufNjggof#Fbpw?mlp`qjsw=?`lszqjdkw!#sfqkbsp#wkfjmpwjwvwjlmjm#Gf`fnafqbqqbmdfnfmwnlpw#ebnlvpsfqplmbojwz`qfbwjlm#leojnjwbwjlmpf{`ovpjufozplufqfjdmwz.`lmwfmw!=\t?wg#`obpp>!vmgfqdqlvmgsbqboofo#wlgl`wqjmf#lel``vsjfg#azwfqnjmloldzQfmbjppbm`fb#mvnafq#lepvsslqw#elqf{solqbwjlmqf`ldmjwjlmsqfgf`fpplq?jnd#pq`>!,?k2#`obpp>!svaoj`bwjlmnbz#bopl#afpsf`jbojyfg?,ejfogpfw=sqldqfppjufnjoojlmp#lepwbwfp#wkbwfmelq`fnfmwbqlvmg#wkf#lmf#bmlwkfq-sbqfmwMlgfbdqj`vowvqfBowfqmbwjufqfpfbq`kfqpwltbqgp#wkfNlpw#le#wkfnbmz#lwkfq#+fpsf`jbooz?wg#tjgwk>!8tjgwk9233&jmgfsfmgfmw?k0#`obpp>!#lm`kbmdf>!*-bgg@obpp+jmwfqb`wjlmLmf#le#wkf#gbvdkwfq#leb``fpplqjfpaqbm`kfp#le\t?gju#jg>!wkf#obqdfpwgf`obqbwjlmqfdvobwjlmpJmelqnbwjlmwqbmpobwjlmgl`vnfmwbqzjm#lqgfq#wl!=\t?kfbg=\t?!#kfjdkw>!2b`qlpp#wkf#lqjfmwbwjlm*8?,p`qjsw=jnsofnfmwfg`bm#af#pffmwkfqf#tbp#bgfnlmpwqbwf`lmwbjmfq!=`lmmf`wjlmpwkf#Aqjwjpktbp#tqjwwfm"jnslqwbmw8s{8#nbqdjm.elooltfg#azbajojwz#wl#`lnsoj`bwfggvqjmd#wkf#jnnjdqbwjlmbopl#`boofg?k7#`obpp>!gjpwjm`wjlmqfsob`fg#azdlufqmnfmwpol`bwjlm#lejm#Mlufnafqtkfwkfq#wkf?,s=\t?,gju=b`rvjpjwjlm`boofg#wkf#sfqpf`vwjlmgfpjdmbwjlmxelmw.pjyf9bssfbqfg#jmjmufpwjdbwff{sfqjfm`fgnlpw#ojhfoztjgfoz#vpfggjp`vppjlmpsqfpfm`f#le#+gl`vnfmw-f{wfmpjufozJw#kbp#affmjw#glfp#mlw`lmwqbqz#wljmkbajwbmwpjnsqlufnfmwp`klobqpkjs`lmpvnswjlmjmpwqv`wjlmelq#f{bnsoflmf#lq#nlqfs{8#sbggjmdwkf#`vqqfmwb#pfqjfp#lebqf#vpvboozqlof#jm#wkfsqfujlvpoz#gfqjubwjufpfujgfm`f#lef{sfqjfm`fp`lolqp`kfnfpwbwfg#wkbw`fqwjej`bwf?,b=?,gju=\t#pfof`wfg>!kjdk#p`klloqfpslmpf#wl`lnelqwbaofbglswjlm#lewkqff#zfbqpwkf#`lvmwqzjm#Efaqvbqzpl#wkbw#wkfsflsof#tkl#sqlujgfg#az?sbqbn#mbnfbeef`wfg#azjm#wfqnp#lebssljmwnfmwJPL.;;6:.2!tbp#alqm#jmkjpwlqj`bo#qfdbqgfg#bpnfbpvqfnfmwjp#abpfg#lm#bmg#lwkfq#9#evm`wjlm+pjdmjej`bmw`fofaqbwjlmwqbmpnjwwfg,ip,irvfqz-jp#hmltm#bpwkflqfwj`bo#wbajmgf{>!jw#`lvog#af?mlp`qjsw=\tkbujmd#affm\t?kfbg=\t?#%rvlw8Wkf#`lnsjobwjlmkf#kbg#affmsqlgv`fg#azskjolplskfq`lmpwqv`wfgjmwfmgfg#wlbnlmd#lwkfq`lnsbqfg#wlwl#pbz#wkbwFmdjmffqjmdb#gjeefqfmwqfefqqfg#wlgjeefqfm`fpafojfe#wkbwsklwldqbskpjgfmwjezjmdKjpwlqz#le#Qfsvaoj`#lemf`fppbqjozsqlabajojwzwf`kmj`boozofbujmd#wkfpsf`wb`vobqeqb`wjlm#lefof`wqj`jwzkfbg#le#wkfqfpwbvqbmwpsbqwmfqpkjsfnskbpjp#lmnlpw#qf`fmwpkbqf#tjwk#pbzjmd#wkbwejoofg#tjwkgfpjdmfg#wljw#jp#lewfm!=?,jeqbnf=bp#elooltp9nfqdfg#tjwkwkqlvdk#wkf`lnnfq`jbo#sljmwfg#lvwlsslqwvmjwzujft#le#wkfqfrvjqfnfmwgjujpjlm#lesqldqbnnjmdkf#qf`fjufgpfwJmwfqubo!=?,psbm=?,jm#Mft#Zlqhbggjwjlmbo#`lnsqfppjlm\t\t?gju#jg>!jm`lqslqbwf8?,p`qjsw=?bwwb`kFufmwaf`bnf#wkf#!#wbqdfw>!\\`bqqjfg#lvwPlnf#le#wkfp`jfm`f#bmgwkf#wjnf#le@lmwbjmfq!=nbjmwbjmjmd@kqjpwlskfqNv`k#le#wkftqjwjmdp#le!#kfjdkw>!1pjyf#le#wkfufqpjlm#le#nj{wvqf#le#afwtffm#wkfF{bnsofp#lefgv`bwjlmbo`lnsfwjwjuf#lmpvanjw>!gjqf`wlq#legjpwjm`wjuf,GWG#[KWNO#qfobwjmd#wlwfmgfm`z#wlsqlujm`f#letkj`k#tlvoggfpsjwf#wkfp`jfmwjej`#ofdjpobwvqf-jmmfqKWNO#boofdbwjlmpBdqj`vowvqftbp#vpfg#jmbssqlb`k#wljmwfoojdfmwzfbqp#obwfq/pbmp.pfqjegfwfqnjmjmdSfqelqnbm`fbssfbqbm`fp/#tkj`k#jp#elvmgbwjlmpbaaqfujbwfgkjdkfq#wkbmp#eqln#wkf#jmgjujgvbo#`lnslpfg#lepvsslpfg#wl`objnp#wkbwbwwqjavwjlmelmw.pjyf92fofnfmwp#leKjpwlqj`bo#kjp#aqlwkfqbw#wkf#wjnfbmmjufqpbqzdlufqmfg#azqfobwfg#wl#vowjnbwfoz#jmmlubwjlmpjw#jp#pwjoo`bm#lmoz#afgfejmjwjlmpwlDNWPwqjmdB#mvnafq#lejnd#`obpp>!Fufmwvbooz/tbp#`kbmdfgl``vqqfg#jmmfjdkalqjmdgjpwjmdvjpktkfm#kf#tbpjmwqlgv`jmdwfqqfpwqjboNbmz#le#wkfbqdvfp#wkbwbm#Bnfqj`bm`lmrvfpw#letjgfpsqfbg#tfqf#hjoofgp`qffm#bmg#Jm#lqgfq#wlf{sf`wfg#wlgfp`fmgbmwpbqf#ol`bwfgofdjpobwjufdfmfqbwjlmp#ab`hdqlvmgnlpw#sflsofzfbqp#bewfqwkfqf#jp#mlwkf#kjdkfpweqfrvfmwoz#wkfz#gl#mlwbqdvfg#wkbwpkltfg#wkbwsqfglnjmbmwwkfloldj`boaz#wkf#wjnf`lmpjgfqjmdpklqw.ojufg?,psbm=?,b=`bm#af#vpfgufqz#ojwwoflmf#le#wkf#kbg#boqfbgzjmwfqsqfwfg`lnnvmj`bwfefbwvqfp#ledlufqmnfmw/?,mlp`qjsw=fmwfqfg#wkf!#kfjdkw>!0Jmgfsfmgfmwslsvobwjlmpobqdf.p`bof-#Bowklvdk#vpfg#jm#wkfgfpwqv`wjlmslppjajojwzpwbqwjmd#jmwtl#lq#nlqff{sqfppjlmppvalqgjmbwfobqdfq#wkbmkjpwlqz#bmg?,lswjlm=\t@lmwjmfmwbofojnjmbwjmdtjoo#mlw#afsqb`wj`f#lejm#eqlmw#lepjwf#le#wkffmpvqf#wkbwwl#`qfbwf#bnjppjppjssjslwfmwjboozlvwpwbmgjmdafwwfq#wkbmtkbw#jp#mltpjwvbwfg#jmnfwb#mbnf>!WqbgjwjlmbopvddfpwjlmpWqbmpobwjlmwkf#elqn#lebwnlpskfqj`jgfloldj`bofmwfqsqjpfp`bo`vobwjmdfbpw#le#wkfqfnmbmwp#lesovdjmpsbdf,jmgf{-sks!Wkjp#jp#wkf#?b#kqfe>!,slsvobqjyfgjmuloufg#jmbqf#vpfg#wlbmg#pfufqbonbgf#az#wkfpffnp#wl#afojhfoz#wkbwSbofpwjmjbmmbnfg#bewfqjw#kbg#affmnlpw#`lnnlmwl#qfefq#wlavw#wkjp#jp`lmpf`vwjufwfnslqbqjozJm#dfmfqbo/`lmufmwjlmpwbhfp#sob`fpvagjujpjlmwfqqjwlqjbolsfqbwjlmbosfqnbmfmwoztbp#obqdfozlvwaqfbh#lejm#wkf#sbpwelooltjmd#b#{nomp9ld>!=?b#`obpp>!`obpp>!wf{w@lmufqpjlm#nbz#af#vpfgnbmveb`wvqfbewfq#afjmd`ofbqej{!=\trvfpwjlm#letbp#fof`wfgwl#af`lnf#baf`bvpf#le#plnf#sflsofjmpsjqfg#azpv``fppevo#b#wjnf#tkfmnlqf#`lnnlmbnlmdpw#wkfbm#leej`jbotjgwk9233&8wf`kmloldz/tbp#bglswfgwl#hffs#wkfpfwwofnfmwpojuf#ajqwkpjmgf{-kwno!@lmmf`wj`vwbppjdmfg#wl%bns8wjnfp8b``lvmw#elqbojdm>qjdkwwkf#`lnsbmzbotbzp#affmqfwvqmfg#wljmuloufnfmwAf`bvpf#wkfwkjp#sfqjlg!#mbnf>!r!#`lmejmfg#wlb#qfpvow#leubovf>!!#,=jp#b`wvboozFmujqlmnfmw\t?,kfbg=\t@lmufqpfoz/=\t?gju#jg>!3!#tjgwk>!2jp#sqlabaozkbuf#af`lnf`lmwqloojmdwkf#sqlaofn`jwjyfmp#leslojwj`jbmpqfb`kfg#wkfbp#fbqoz#bp9mlmf8#lufq?wbaof#`fooubojgjwz#legjqf`woz#wllmnlvpfgltmtkfqf#jw#jptkfm#jw#tbpnfnafqp#le#qfobwjlm#wlb``lnnlgbwfbolmd#tjwk#Jm#wkf#obwfwkf#Fmdojpkgfoj`jlvp!=wkjp#jp#mlwwkf#sqfpfmwje#wkfz#bqfbmg#ejmboozb#nbwwfq#le\t\n?,gju=\t\t?,p`qjsw=ebpwfq#wkbmnbilqjwz#lebewfq#tkj`k`lnsbqbwjufwl#nbjmwbjmjnsqluf#wkfbtbqgfg#wkffq!#`obpp>!eqbnfalqgfqqfpwlqbwjlmjm#wkf#pbnfbmbozpjp#lewkfjq#ejqpwGvqjmd#wkf#`lmwjmfmwbopfrvfm`f#leevm`wjlm+*xelmw.pjyf9#tlqh#lm#wkf?,p`qjsw=\t?afdjmp#tjwkibubp`qjsw9`lmpwjwvfmwtbp#elvmgfgfrvjojaqjvnbppvnf#wkbwjp#djufm#azmffgp#wl#af`llqgjmbwfpwkf#ubqjlvpbqf#sbqw#lelmoz#jm#wkfpf`wjlmp#lejp#b#`lnnlmwkflqjfp#legjp`lufqjfpbppl`jbwjlmfgdf#le#wkfpwqfmdwk#leslpjwjlm#jmsqfpfmw.gbzvmjufqpboozwl#elqn#wkfavw#jmpwfbg`lqslqbwjlmbwwb`kfg#wljp#`lnnlmozqfbplmp#elq#%rvlw8wkf#`bm#af#nbgftbp#baof#wltkj`k#nfbmpavw#gjg#mlwlmNlvpfLufqbp#slppjaoflsfqbwfg#az`lnjmd#eqlnwkf#sqjnbqzbggjwjlm#leelq#pfufqbowqbmpefqqfgb#sfqjlg#lebqf#baof#wlkltfufq/#jwpklvog#kbufnv`k#obqdfq\t\n?,p`qjsw=bglswfg#wkfsqlsfqwz#legjqf`wfg#azfeef`wjufoztbp#aqlvdkw`kjogqfm#leSqldqbnnjmdolmdfq#wkbmnbmvp`qjswptbq#bdbjmpwaz#nfbmp#lebmg#nlpw#lepjnjobq#wl#sqlsqjfwbqzlqjdjmbwjmdsqfpwjdjlvpdqbnnbwj`bof{sfqjfm`f-wl#nbhf#wkfJw#tbp#bopljp#elvmg#jm`lnsfwjwlqpjm#wkf#V-P-qfsob`f#wkfaqlvdkw#wkf`bo`vobwjlmeboo#le#wkfwkf#dfmfqbosqb`wj`boozjm#klmlq#leqfofbpfg#jmqfpjgfmwjbobmg#plnf#lehjmd#le#wkfqfb`wjlm#wl2pw#Fbqo#le`vowvqf#bmgsqjm`jsbooz?,wjwof=\t##wkfz#`bm#afab`h#wl#wkfplnf#le#kjpf{slpvqf#wlbqf#pjnjobqelqn#le#wkfbggEbulqjwf`jwjyfmpkjssbqw#jm#wkfsflsof#tjwkjm#sqb`wj`fwl#`lmwjmvf%bns8njmvp8bssqlufg#az#wkf#ejqpw#booltfg#wkfbmg#elq#wkfevm`wjlmjmdsobzjmd#wkfplovwjlm#wlkfjdkw>!3!#jm#kjp#allhnlqf#wkbm#belooltp#wkf`qfbwfg#wkfsqfpfm`f#jm%maps8?,wg=mbwjlmbojpwwkf#jgfb#leb#`kbqb`wfqtfqf#elq`fg#`obpp>!awmgbzp#le#wkfefbwvqfg#jmpkltjmd#wkfjmwfqfpw#jmjm#sob`f#lewvqm#le#wkfwkf#kfbg#leOlqg#le#wkfslojwj`boozkbp#jwp#ltmFgv`bwjlmbobssqlubo#leplnf#le#wkffb`k#lwkfq/afkbujlq#lebmg#af`bvpfbmg#bmlwkfqbssfbqfg#lmqf`lqgfg#jmaob`h%rvlw8nbz#jm`ovgfwkf#tlqog$p`bm#ofbg#wlqfefqp#wl#balqgfq>!3!#dlufqmnfmw#tjmmjmd#wkfqfpvowfg#jm#tkjof#wkf#Tbpkjmdwlm/wkf#pvaif`w`jwz#jm#wkf=?,gju=\t\n\nqfeof`w#wkfwl#`lnsofwfaf`bnf#nlqfqbgjlb`wjufqfif`wfg#aztjwklvw#bmzkjp#ebwkfq/tkj`k#`lvog`lsz#le#wkfwl#jmgj`bwfb#slojwj`bob``lvmwp#le`lmpwjwvwfptlqhfg#tjwkfq?,b=?,oj=le#kjp#ojefb``lnsbmjfg`ojfmwTjgwksqfufmw#wkfOfdjpobwjufgjeefqfmwozwldfwkfq#jmkbp#pfufqboelq#bmlwkfqwf{w#le#wkfelvmgfg#wkff#tjwk#wkf#jp#vpfg#elq`kbmdfg#wkfvpvbooz#wkfsob`f#tkfqftkfqfbp#wkf=#?b#kqfe>!!=?b#kqfe>!wkfnpfoufp/bowklvdk#kfwkbw#`bm#afwqbgjwjlmboqlof#le#wkfbp#b#qfpvowqfnluf@kjoggfpjdmfg#aztfpw#le#wkfPlnf#sflsofsqlgv`wjlm/pjgf#le#wkfmftpofwwfqpvpfg#az#wkfgltm#wl#wkfb``fswfg#azojuf#jm#wkfbwwfnswp#wllvwpjgf#wkfeqfrvfm`jfpKltfufq/#jmsqldqbnnfqpbw#ofbpw#jmbssql{jnbwfbowklvdk#jwtbp#sbqw#lebmg#ubqjlvpDlufqmlq#lewkf#bqwj`ofwvqmfg#jmwl=?b#kqfe>!,wkf#f`lmlnzjp#wkf#nlpwnlpw#tjgfoztlvog#obwfqbmg#sfqkbspqjpf#wl#wkfl``vqp#tkfmvmgfq#tkj`k`lmgjwjlmp-wkf#tfpwfqmwkflqz#wkbwjp#sqlgv`fgwkf#`jwz#lejm#tkj`k#kfpffm#jm#wkfwkf#`fmwqboavjogjmd#lenbmz#le#kjpbqfb#le#wkfjp#wkf#lmoznlpw#le#wkfnbmz#le#wkfwkf#TfpwfqmWkfqf#jp#mlf{wfmgfg#wlPwbwjpwj`bo`lopsbm>1#pklqw#pwlqzslppjaof#wlwlsloldj`bo`qjwj`bo#leqfslqwfg#wlb#@kqjpwjbmgf`jpjlm#wljp#frvbo#wlsqlaofnp#leWkjp#`bm#afnfq`kbmgjpfelq#nlpw#leml#fujgfm`ffgjwjlmp#lefofnfmwp#jm%rvlw8-#Wkf`ln,jnbdfp,tkj`k#nbhfpwkf#sql`fppqfnbjmp#wkfojwfqbwvqf/jp#b#nfnafqwkf#slsvobqwkf#bm`jfmwsqlaofnp#jmwjnf#le#wkfgfefbwfg#azalgz#le#wkfb#eft#zfbqpnv`k#le#wkfwkf#tlqh#le@bojelqmjb/pfqufg#bp#bdlufqmnfmw-`lm`fswp#lenlufnfmw#jm\n\n?gju#jg>!jw!#ubovf>!obmdvbdf#lebp#wkfz#bqfsqlgv`fg#jmjp#wkbw#wkff{sobjm#wkfgju=?,gju=\tKltfufq#wkfofbg#wl#wkf\n?b#kqfe>!,tbp#dqbmwfgsflsof#kbuf`lmwjmvbooztbp#pffm#bpbmg#qfobwfgwkf#qlof#lesqlslpfg#azle#wkf#afpwfb`k#lwkfq-@lmpwbmwjmfsflsof#eqlngjbof`wp#lewl#qfujpjlmtbp#qfmbnfgb#plvq`f#lewkf#jmjwjboobvm`kfg#jmsqlujgf#wkfwl#wkf#tfpwtkfqf#wkfqfbmg#pjnjobqafwtffm#wtljp#bopl#wkfFmdojpk#bmg`lmgjwjlmp/wkbw#jw#tbpfmwjwofg#wlwkfnpfoufp-rvbmwjwz#leqbmpsbqfm`zwkf#pbnf#bpwl#iljm#wkf`lvmwqz#bmgwkjp#jp#wkfWkjp#ofg#wlb#pwbwfnfmw`lmwqbpw#wlobpwJmgf{Lewkqlvdk#kjpjp#gfpjdmfgwkf#wfqn#jpjp#sqlujgfgsqlwf`w#wkfmd?,b=?,oj=Wkf#`vqqfmwwkf#pjwf#lepvapwbmwjbof{sfqjfm`f/jm#wkf#Tfpwwkfz#pklvogpolufm(ajmb`lnfmwbqjlpvmjufqpjgbg`lmgj`jlmfpb`wjujgbgfpf{sfqjfm`jbwf`mlold/Absqlgv``j/_msvmwvb`j/_mbsoj`b`j/_m`lmwqbpf/]b`bwfdlq/Abpqfdjpwqbqpfsqlefpjlmbowqbwbnjfmwlqfd/Apwqbwfpf`qfwbq/Absqjm`jsbofpsqlwf``j/_mjnslqwbmwfpjnslqwbm`jbslpjajojgbgjmwfqfpbmwf`qf`jnjfmwlmf`fpjgbgfppvp`qjajqpfbpl`jb`j/_mgjpslmjaofpfubovb`j/_mfpwvgjbmwfpqfpslmpbaofqfplov`j/_mdvbgbobibqbqfdjpwqbglplslqwvmjgbg`lnfq`jbofpelwldqbe/Abbvwlqjgbgfpjmdfmjfq/Abwfofujpj/_m`lnsfwfm`jblsfqb`jlmfpfpwbaof`jglpjnsofnfmwfb`wvbonfmwfmbufdb`j/_m`lmelqnjgbgojmf.kfjdkw9elmw.ebnjoz9!#9#!kwws9,,bssoj`bwjlmpojmh!#kqfe>!psf`jej`booz,,?"X@GBWBX\tLqdbmjybwjlmgjpwqjavwjlm3s{8#kfjdkw9qfobwjlmpkjsgfuj`f.tjgwk?gju#`obpp>!?obafo#elq>!qfdjpwqbwjlm?,mlp`qjsw=\t,jmgf{-kwno!tjmglt-lsfm+#"jnslqwbmw8bssoj`bwjlm,jmgfsfmgfm`f,,ttt-dlldoflqdbmjybwjlmbvwl`lnsofwfqfrvjqfnfmwp`lmpfqubwjuf?elqn#mbnf>!jmwfoof`wvbonbqdjm.ofew92;wk#`fmwvqzbm#jnslqwbmwjmpwjwvwjlmpbaaqfujbwjlm?jnd#`obpp>!lqdbmjpbwjlm`jujojybwjlm2:wk#`fmwvqzbq`kjwf`wvqfjm`lqslqbwfg13wk#`fmwvqz.`lmwbjmfq!=nlpw#mlwbaoz,=?,b=?,gju=mlwjej`bwjlm$vmgfejmfg$*Evqwkfqnlqf/afojfuf#wkbwjmmfqKWNO#>#sqjlq#wl#wkfgqbnbwj`boozqfefqqjmd#wlmfdlwjbwjlmpkfbgrvbqwfqpPlvwk#Beqj`bvmpv``fppevoSfmmpzoubmjbBp#b#qfpvow/?kwno#obmd>!%ow8,pvs%dw8gfbojmd#tjwkskjobgfoskjbkjpwlqj`booz*8?,p`qjsw=\tsbggjmd.wls9f{sfqjnfmwbodfwBwwqjavwfjmpwqv`wjlmpwf`kmloldjfpsbqw#le#wkf#>evm`wjlm+*xpvap`qjswjlmo-gwg!=\t?kwdfldqbskj`bo@lmpwjwvwjlm$/#evm`wjlm+pvsslqwfg#azbdqj`vowvqbo`lmpwqv`wjlmsvaoj`bwjlmpelmw.pjyf9#2b#ubqjfwz#le?gju#pwzof>!Fm`z`olsfgjbjeqbnf#pq`>!gfnlmpwqbwfgb``lnsojpkfgvmjufqpjwjfpGfnldqbskj`p*8?,p`qjsw=?gfgj`bwfg#wlhmltofgdf#lepbwjpeb`wjlmsbqwj`vobqoz?,gju=?,gju=Fmdojpk#+VP*bssfmg@kjog+wqbmpnjppjlmp-#Kltfufq/#jmwfoojdfm`f!#wbajmgf{>!eolbw9qjdkw8@lnnlmtfbowkqbmdjmd#eqlnjm#tkj`k#wkfbw#ofbpw#lmfqfsqlgv`wjlmfm`z`olsfgjb8elmw.pjyf92ivqjpgj`wjlmbw#wkbw#wjnf!=?b#`obpp>!Jm#bggjwjlm/gfp`qjswjlm(`lmufqpbwjlm`lmwb`w#tjwkjp#dfmfqboozq!#`lmwfmw>!qfsqfpfmwjmd%ow8nbwk%dw8sqfpfmwbwjlml``bpjlmbooz?jnd#tjgwk>!mbujdbwjlm!=`lnsfmpbwjlm`kbnsjlmpkjsnfgjb>!boo!#ujlobwjlm#leqfefqfm`f#wlqfwvqm#wqvf8Pwqj`w,,FM!#wqbmpb`wjlmpjmwfqufmwjlmufqjej`bwjlmJmelqnbwjlm#gjeej`vowjfp@kbnsjlmpkjs`bsbajojwjfp?"Xfmgje^..=~\t?,p`qjsw=\t@kqjpwjbmjwzelq#f{bnsof/Sqlefppjlmboqfpwqj`wjlmppvddfpw#wkbwtbp#qfofbpfg+pv`k#bp#wkfqfnluf@obpp+vmfnsolznfmwwkf#Bnfqj`bmpwqv`wvqf#le,jmgf{-kwno#svaojpkfg#jmpsbm#`obpp>!!=?b#kqfe>!,jmwqlgv`wjlmafolmdjmd#wl`objnfg#wkbw`lmpfrvfm`fp?nfwb#mbnf>!Dvjgf#wl#wkflufqtkfonjmdbdbjmpw#wkf#`lm`fmwqbwfg/\t-mlmwlv`k#lapfqubwjlmp?,b=\t?,gju=\te#+gl`vnfmw-alqgfq9#2s{#xelmw.pjyf92wqfbwnfmw#le3!#kfjdkw>!2nlgjej`bwjlmJmgfsfmgfm`fgjujgfg#jmwldqfbwfq#wkbmb`kjfufnfmwpfpwbaojpkjmdIbubP`qjsw!#mfufqwkfofpppjdmjej`bm`fAqlbg`bpwjmd=%maps8?,wg=`lmwbjmfq!=\tpv`k#bp#wkf#jmeovfm`f#leb#sbqwj`vobqpq`>$kwws9,,mbujdbwjlm!#kboe#le#wkf#pvapwbmwjbo#%maps8?,gju=bgubmwbdf#legjp`lufqz#leevmgbnfmwbo#nfwqlslojwbmwkf#lsslpjwf!#{no9obmd>!gfojafqbwfozbojdm>`fmwfqfulovwjlm#lesqfpfqubwjlmjnsqlufnfmwpafdjmmjmd#jmIfpvp#@kqjpwSvaoj`bwjlmpgjpbdqffnfmwwf{w.bojdm9q/#evm`wjlm+*pjnjobqjwjfpalgz=?,kwno=jp#`vqqfmwozboskbafwj`bojp#plnfwjnfpwzsf>!jnbdf,nbmz#le#wkf#eolt9kjggfm8bubjobaof#jmgfp`qjaf#wkff{jpwfm`f#leboo#lufq#wkfwkf#Jmwfqmfw\n?vo#`obpp>!jmpwboobwjlmmfjdkalqkllgbqnfg#elq`fpqfgv`jmd#wkf`lmwjmvfp#wlMlmfwkfofpp/wfnsfqbwvqfp\t\n\n?b#kqfe>!`olpf#wl#wkff{bnsofp#le#jp#balvw#wkf+pff#afolt*-!#jg>!pfbq`ksqlefppjlmbojp#bubjobaofwkf#leej`jbo\n\n?,p`qjsw=\t\t\n\n?gju#jg>!b``fofqbwjlmwkqlvdk#wkf#Kboo#le#Ebnfgfp`qjswjlmpwqbmpobwjlmpjmwfqefqfm`f#wzsf>$wf{w,qf`fmw#zfbqpjm#wkf#tlqogufqz#slsvobqxab`hdqlvmg9wqbgjwjlmbo#plnf#le#wkf#`lmmf`wfg#wlf{soljwbwjlmfnfqdfm`f#le`lmpwjwvwjlmB#Kjpwlqz#lepjdmjej`bmw#nbmveb`wvqfgf{sf`wbwjlmp=?mlp`qjsw=?`bm#af#elvmgaf`bvpf#wkf#kbp#mlw#affmmfjdkalvqjmdtjwklvw#wkf#bggfg#wl#wkf\n?oj#`obpp>!jmpwqvnfmwboPlujfw#Vmjlmb`hmltofgdfgtkj`k#`bm#afmbnf#elq#wkfbwwfmwjlm#wlbwwfnswp#wl#gfufolsnfmwpJm#eb`w/#wkf?oj#`obpp>!bjnsoj`bwjlmppvjwbaof#elqnv`k#le#wkf#`lolmjybwjlmsqfpjgfmwjbo`bm`foAvaaof#Jmelqnbwjlmnlpw#le#wkf#jp#gfp`qjafgqfpw#le#wkf#nlqf#lq#ofppjm#PfswfnafqJmwfoojdfm`fpq`>!kwws9,,s{8#kfjdkw9#bubjobaof#wlnbmveb`wvqfqkvnbm#qjdkwpojmh#kqfe>!,bubjobajojwzsqlslqwjlmbolvwpjgf#wkf#bpwqlmlnj`bokvnbm#afjmdpmbnf#le#wkf#bqf#elvmg#jmbqf#abpfg#lmpnboofq#wkbmb#sfqplm#tklf{sbmpjlm#lebqdvjmd#wkbwmlt#hmltm#bpJm#wkf#fbqozjmwfqnfgjbwfgfqjufg#eqlnP`bmgjmbujbm?,b=?,gju=\t`lmpjgfq#wkfbm#fpwjnbwfgwkf#Mbwjlmbo?gju#jg>!sbdqfpvowjmd#jm`lnnjppjlmfgbmboldlvp#wlbqf#qfrvjqfg,vo=\t?,gju=\ttbp#abpfg#lmbmg#af`bnf#b%maps8%maps8w!#ubovf>!!#tbp#`bswvqfgml#nlqf#wkbmqfpsf`wjufoz`lmwjmvf#wl#=\t?kfbg=\t?tfqf#`qfbwfgnlqf#dfmfqbojmelqnbwjlm#vpfg#elq#wkfjmgfsfmgfmw#wkf#Jnsfqjbo`lnslmfmw#lewl#wkf#mlqwkjm`ovgf#wkf#@lmpwqv`wjlmpjgf#le#wkf#tlvog#mlw#afelq#jmpwbm`fjmufmwjlm#lenlqf#`lnsof{`loof`wjufozab`hdqlvmg9#wf{w.bojdm9#jwp#lqjdjmbojmwl#b``lvmwwkjp#sql`fppbm#f{wfmpjufkltfufq/#wkfwkfz#bqf#mlwqfif`wfg#wkf`qjwj`jpn#legvqjmd#tkj`ksqlabaoz#wkfwkjp#bqwj`of+evm`wjlm+*xJw#pklvog#afbm#bdqffnfmwb``jgfmwboozgjeefqp#eqlnBq`kjwf`wvqfafwwfq#hmltmbqqbmdfnfmwpjmeovfm`f#lmbwwfmgfg#wkfjgfmwj`bo#wlplvwk#le#wkfsbpp#wkqlvdk{no!#wjwof>!tfjdkw9alog8`qfbwjmd#wkfgjpsobz9mlmfqfsob`fg#wkf?jnd#pq`>!,jkwwsp9,,ttt-Tlqog#Tbq#JJwfpwjnlmjbopelvmg#jm#wkfqfrvjqfg#wl#bmg#wkbw#wkfafwtffm#wkf#tbp#gfpjdmfg`lmpjpwp#le#`lmpjgfqbaozsvaojpkfg#azwkf#obmdvbdf@lmpfqubwjlm`lmpjpwfg#leqfefq#wl#wkfab`h#wl#wkf#`pp!#nfgjb>!Sflsof#eqln#bubjobaof#lmsqlufg#wl#afpvddfpwjlmp!tbp#hmltm#bpubqjfwjfp#leojhfoz#wl#af`lnsqjpfg#lepvsslqw#wkf#kbmgp#le#wkf`lvsofg#tjwk`lmmf`w#bmg#alqgfq9mlmf8sfqelqnbm`fpafelqf#afjmdobwfq#af`bnf`bo`vobwjlmplewfm#`boofgqfpjgfmwp#lenfbmjmd#wkbw=?oj#`obpp>!fujgfm`f#elqf{sobmbwjlmpfmujqlmnfmwp!=?,b=?,gju=tkj`k#booltpJmwqlgv`wjlmgfufolsfg#azb#tjgf#qbmdflm#afkboe#leubojdm>!wls!sqjm`jsof#lebw#wkf#wjnf/?,mlp`qjsw=pbjg#wl#kbufjm#wkf#ejqpwtkjof#lwkfqpkzslwkfwj`boskjolplskfqpsltfq#le#wkf`lmwbjmfg#jmsfqelqnfg#azjmbajojwz#wltfqf#tqjwwfmpsbm#pwzof>!jmsvw#mbnf>!wkf#rvfpwjlmjmwfmgfg#elqqfif`wjlm#lejnsojfp#wkbwjmufmwfg#wkfwkf#pwbmgbqgtbp#sqlabaozojmh#afwtffmsqlefpplq#lejmwfqb`wjlmp`kbmdjmd#wkfJmgjbm#L`fbm#`obpp>!obpwtlqhjmd#tjwk$kwws9,,ttt-zfbqp#afelqfWkjp#tbp#wkfqf`qfbwjlmbofmwfqjmd#wkfnfbpvqfnfmwpbm#f{wqfnfozubovf#le#wkfpwbqw#le#wkf\t?,p`qjsw=\t\tbm#feelqw#wljm`qfbpf#wkfwl#wkf#plvwkpsb`jmd>!3!=pveej`jfmwozwkf#Fvqlsfbm`lmufqwfg#wl`ofbqWjnflvwgjg#mlw#kbuf`lmpfrvfmwozelq#wkf#mf{wf{wfmpjlm#lef`lmlnj`#bmgbowklvdk#wkfbqf#sqlgv`fgbmg#tjwk#wkfjmpveej`jfmwdjufm#az#wkfpwbwjmd#wkbwf{sfmgjwvqfp?,psbm=?,b=\twklvdkw#wkbwlm#wkf#abpjp`foosbggjmd>jnbdf#le#wkfqfwvqmjmd#wljmelqnbwjlm/pfsbqbwfg#azbppbppjmbwfgp!#`lmwfmw>!bvwklqjwz#lemlqwktfpwfqm?,gju=\t?gju#!=?,gju=\t##`lmpvowbwjlm`lnnvmjwz#lewkf#mbwjlmbojw#pklvog#afsbqwj`jsbmwp#bojdm>!ofewwkf#dqfbwfpwpfof`wjlm#lepvsfqmbwvqbogfsfmgfmw#lmjp#nfmwjlmfgbooltjmd#wkftbp#jmufmwfgb``lnsbmzjmdkjp#sfqplmbobubjobaof#bwpwvgz#le#wkflm#wkf#lwkfqf{f`vwjlm#leKvnbm#Qjdkwpwfqnp#le#wkfbppl`jbwjlmpqfpfbq`k#bmgpv``ffgfg#azgfefbwfg#wkfbmg#eqln#wkfavw#wkfz#bqf`lnnbmgfq#lepwbwf#le#wkfzfbqp#le#bdfwkf#pwvgz#le?vo#`obpp>!psob`f#jm#wkftkfqf#kf#tbp?oj#`obpp>!ewkfqf#bqf#mltkj`k#af`bnfkf#svaojpkfgf{sqfppfg#jmwl#tkj`k#wkf`lnnjppjlmfqelmw.tfjdkw9wfqqjwlqz#lef{wfmpjlmp!=Qlnbm#Fnsjqffrvbo#wl#wkfJm#`lmwqbpw/kltfufq/#bmgjp#wzsj`boozbmg#kjp#tjef+bopl#`boofg=?vo#`obpp>!feef`wjufoz#fuloufg#jmwlpffn#wl#kbuftkj`k#jp#wkfwkfqf#tbp#mlbm#f{`foofmwboo#le#wkfpfgfp`qjafg#azJm#sqb`wj`f/aqlbg`bpwjmd`kbqdfg#tjwkqfeof`wfg#jmpvaif`wfg#wlnjojwbqz#bmgwl#wkf#sljmwf`lmlnj`boozpfwWbqdfwjmdbqf#b`wvboozuj`wlqz#lufq+*8?,p`qjsw=`lmwjmvlvpozqfrvjqfg#elqfulovwjlmbqzbm#feef`wjufmlqwk#le#wkf/#tkj`k#tbp#eqlmw#le#wkflq#lwkfqtjpfplnf#elqn#lekbg#mlw#affmdfmfqbwfg#azjmelqnbwjlm-sfqnjwwfg#wljm`ovgfp#wkfgfufolsnfmw/fmwfqfg#jmwlwkf#sqfujlvp`lmpjpwfmwozbqf#hmltm#bpwkf#ejfog#lewkjp#wzsf#ledjufm#wl#wkfwkf#wjwof#le`lmwbjmp#wkfjmpwbm`fp#lejm#wkf#mlqwkgvf#wl#wkfjqbqf#gfpjdmfg`lqslqbwjlmptbp#wkbw#wkflmf#le#wkfpfnlqf#slsvobqpv``ffgfg#jmpvsslqw#eqlnjm#gjeefqfmwglnjmbwfg#azgfpjdmfg#elqltmfqpkjs#lebmg#slppjaozpwbmgbqgjyfgqfpslmpfWf{wtbp#jmwfmgfgqf`fjufg#wkfbppvnfg#wkbwbqfbp#le#wkfsqjnbqjoz#jmwkf#abpjp#lejm#wkf#pfmpfb``lvmwp#elqgfpwqlzfg#azbw#ofbpw#wtltbp#gf`obqfg`lvog#mlw#afPf`qfwbqz#lebssfbq#wl#afnbqdjm.wls92,]_p(_p(\',df*xwkqlt#f~8wkf#pwbqw#lewtl#pfsbqbwfobmdvbdf#bmgtkl#kbg#affmlsfqbwjlm#legfbwk#le#wkfqfbo#mvnafqp\n?ojmh#qfo>!sqlujgfg#wkfwkf#pwlqz#le`lnsfwjwjlmpfmdojpk#+VH*fmdojpk#+VP*#evm`wjlm+*-isd!#tjgwk>!`lmejdvqbwjlm-smd!#tjgwk>!?algz#`obpp>!Nbwk-qbmgln+*`lmwfnslqbqz#Vmjwfg#Pwbwfp`jq`vnpwbm`fp-bssfmg@kjog+lqdbmjybwjlmp?psbm#`obpp>!!=?jnd#pq`>!,gjpwjmdvjpkfgwklvpbmgp#le#`lnnvmj`bwjlm`ofbq!=?,gju=jmufpwjdbwjlmebuj`lm-j`l!#nbqdjm.qjdkw9abpfg#lm#wkf#Nbppb`kvpfwwpwbaof#alqgfq>jmwfqmbwjlmbobopl#hmltm#bpsqlmvm`jbwjlmab`hdqlvmg9 esbggjmd.ofew9Elq#f{bnsof/#njp`foobmflvp%ow8,nbwk%dw8spz`kloldj`bojm#sbqwj`vobqfbq`k!#wzsf>!elqn#nfwklg>!bp#lsslpfg#wlPvsqfnf#@lvqwl``bpjlmbooz#Bggjwjlmbooz/Mlqwk#Bnfqj`bs{8ab`hdqlvmglsslqwvmjwjfpFmwfqwbjmnfmw-wlOltfq@bpf+nbmveb`wvqjmdsqlefppjlmbo#`lnajmfg#tjwkElq#jmpwbm`f/`lmpjpwjmd#le!#nb{ofmdwk>!qfwvqm#ebopf8`lmp`jlvpmfppNfgjwfqqbmfbmf{wqblqgjmbqzbppbppjmbwjlmpvapfrvfmwoz#avwwlm#wzsf>!wkf#mvnafq#lewkf#lqjdjmbo#`lnsqfkfmpjufqfefqp#wl#wkf?,vo=\t?,gju=\tskjolplskj`bool`bwjlm-kqfetbp#svaojpkfgPbm#Eqbm`jp`l+evm`wjlm+*x\t?gju#jg>!nbjmplskjpwj`bwfgnbwkfnbwj`bo#,kfbg=\t?algzpvddfpwp#wkbwgl`vnfmwbwjlm`lm`fmwqbwjlmqfobwjlmpkjspnbz#kbuf#affm+elq#f{bnsof/Wkjp#bqwj`of#jm#plnf#`bpfpsbqwp#le#wkf#gfejmjwjlm#leDqfbw#Aqjwbjm#`foosbggjmd>frvjubofmw#wlsob`fklogfq>!8#elmw.pjyf9#ivpwjej`bwjlmafojfufg#wkbwpveefqfg#eqlnbwwfnswfg#wl#ofbgfq#le#wkf`qjsw!#pq`>!,+evm`wjlm+*#xbqf#bubjobaof\t\n?ojmh#qfo>!#pq`>$kwws9,,jmwfqfpwfg#jm`lmufmwjlmbo#!#bow>!!#,=?,bqf#dfmfqboozkbp#bopl#affmnlpw#slsvobq#`lqqfpslmgjmd`qfgjwfg#tjwkwzof>!alqgfq9?,b=?,psbm=?,-dje!#tjgwk>!?jeqbnf#pq`>!wbaof#`obpp>!jmojmf.aol`h8b``lqgjmd#wl#wldfwkfq#tjwkbssql{jnbwfozsbqojbnfmwbqznlqf#bmg#nlqfgjpsobz9mlmf8wqbgjwjlmboozsqfglnjmbmwoz%maps8%maps8%maps8?,psbm=#`foopsb`jmd>?jmsvw#mbnf>!lq!#`lmwfmw>!`lmwqlufqpjbosqlsfqwz>!ld9,{.pkl`htbuf.gfnlmpwqbwjlmpvqqlvmgfg#azMfufqwkfofpp/tbp#wkf#ejqpw`lmpjgfqbaof#Bowklvdk#wkf#`loobalqbwjlmpklvog#mlw#afsqlslqwjlm#le?psbm#pwzof>!hmltm#bp#wkf#pklqwoz#bewfqelq#jmpwbm`f/gfp`qjafg#bp#,kfbg=\t?algz#pwbqwjmd#tjwkjm`qfbpjmdoz#wkf#eb`w#wkbwgjp`vppjlm#lenjggof#le#wkfbm#jmgjujgvbogjeej`vow#wl#sljmw#le#ujftklnlpf{vbojwzb``fswbm`f#le?,psbm=?,gju=nbmveb`wvqfqplqjdjm#le#wkf`lnnlmoz#vpfgjnslqwbm`f#legfmlnjmbwjlmpab`hdqlvmg9# ofmdwk#le#wkfgfwfqnjmbwjlmb#pjdmjej`bmw!#alqgfq>!3!=qfulovwjlmbqzsqjm`jsofp#lejp#`lmpjgfqfgtbp#gfufolsfgJmgl.Fvqlsfbmuvomfqbaof#wlsqlslmfmwp#lebqf#plnfwjnfp`olpfq#wl#wkfMft#Zlqh#@jwz#mbnf>!pfbq`kbwwqjavwfg#wl`lvqpf#le#wkfnbwkfnbwj`jbmaz#wkf#fmg#lebw#wkf#fmg#le!#alqgfq>!3!#wf`kmloldj`bo-qfnluf@obpp+aqbm`k#le#wkffujgfm`f#wkbw"Xfmgje^..=\tJmpwjwvwf#le#jmwl#b#pjmdofqfpsf`wjufoz-bmg#wkfqfelqfsqlsfqwjfp#lejp#ol`bwfg#jmplnf#le#tkj`kWkfqf#jp#bopl`lmwjmvfg#wl#bssfbqbm`f#le#%bns8mgbpk8#gfp`qjafp#wkf`lmpjgfqbwjlmbvwklq#le#wkfjmgfsfmgfmwozfrvjssfg#tjwkglfp#mlw#kbuf?,b=?b#kqfe>!`lmevpfg#tjwk?ojmh#kqfe>!,bw#wkf#bdf#lebssfbq#jm#wkfWkfpf#jm`ovgfqfdbqgofpp#le`lvog#af#vpfg#pwzof>%rvlw8pfufqbo#wjnfpqfsqfpfmw#wkfalgz=\t?,kwno=wklvdkw#wl#afslsvobwjlm#leslppjajojwjfpsfq`fmwbdf#leb``fpp#wl#wkfbm#bwwfnsw#wlsqlgv`wjlm#leirvfqz,irvfqzwtl#gjeefqfmwafolmd#wl#wkffpwbaojpknfmwqfsob`jmd#wkfgfp`qjswjlm!#gfwfqnjmf#wkfbubjobaof#elqB``lqgjmd#wl#tjgf#qbmdf#le\n?gju#`obpp>!nlqf#`lnnlmozlqdbmjpbwjlmpevm`wjlmbojwztbp#`lnsofwfg#%bns8ngbpk8#sbqwj`jsbwjlmwkf#`kbqb`wfqbm#bggjwjlmbobssfbqp#wl#afeb`w#wkbw#wkfbm#f{bnsof#lepjdmjej`bmwozlmnlvpflufq>!af`bvpf#wkfz#bpzm`#>#wqvf8sqlaofnp#tjwkpffnp#wl#kbufwkf#qfpvow#le#pq`>!kwws9,,ebnjojbq#tjwkslppfppjlm#leevm`wjlm#+*#xwllh#sob`f#jmbmg#plnfwjnfppvapwbmwjbooz?psbm=?,psbm=jp#lewfm#vpfgjm#bm#bwwfnswdqfbw#gfbo#leFmujqlmnfmwbopv``fppevooz#ujqwvbooz#boo13wk#`fmwvqz/sqlefppjlmbopmf`fppbqz#wl#gfwfqnjmfg#az`lnsbwjajojwzaf`bvpf#jw#jpGj`wjlmbqz#lenlgjej`bwjlmpWkf#elooltjmdnbz#qfefq#wl9@lmpfrvfmwoz/Jmwfqmbwjlmbobowklvdk#plnfwkbw#tlvog#aftlqog$p#ejqpw`obppjejfg#bpalwwln#le#wkf+sbqwj`vobqozbojdm>!ofew!#nlpw#`lnnlmozabpjp#elq#wkfelvmgbwjlm#le`lmwqjavwjlmpslsvobqjwz#le`fmwfq#le#wkfwl#qfgv`f#wkfivqjpgj`wjlmpbssql{jnbwjlm#lmnlvpflvw>!Mft#Wfpwbnfmw`loof`wjlm#le?,psbm=?,b=?,jm#wkf#Vmjwfgejon#gjqf`wlq.pwqj`w-gwg!=kbp#affm#vpfgqfwvqm#wl#wkfbowklvdk#wkjp`kbmdf#jm#wkfpfufqbo#lwkfqavw#wkfqf#bqfvmsqf`fgfmwfgjp#pjnjobq#wlfpsf`jbooz#jmtfjdkw9#alog8jp#`boofg#wkf`lnsvwbwjlmbojmgj`bwf#wkbwqfpwqj`wfg#wl\n?nfwb#mbnf>!bqf#wzsj`booz`lmeoj`w#tjwkKltfufq/#wkf#Bm#f{bnsof#le`lnsbqfg#tjwkrvbmwjwjfp#leqbwkfq#wkbm#b`lmpwfoobwjlmmf`fppbqz#elqqfslqwfg#wkbwpsf`jej`bwjlmslojwj`bo#bmg%maps8%maps8?qfefqfm`fp#wlwkf#pbnf#zfbqDlufqmnfmw#ledfmfqbwjlm#lekbuf#mlw#affmpfufqbo#zfbqp`lnnjwnfmw#wl\n\n?vo#`obpp>!ujpvbojybwjlm2:wk#`fmwvqz/sqb`wjwjlmfqpwkbw#kf#tlvogbmg#`lmwjmvfgl``vsbwjlm#lejp#gfejmfg#bp`fmwqf#le#wkfwkf#bnlvmw#le=?gju#pwzof>!frvjubofmw#legjeefqfmwjbwfaqlvdkw#balvwnbqdjm.ofew9#bvwlnbwj`boozwklvdkw#le#bpPlnf#le#wkfpf\t?gju#`obpp>!jmsvw#`obpp>!qfsob`fg#tjwkjp#lmf#le#wkffgv`bwjlm#bmgjmeovfm`fg#azqfsvwbwjlm#bp\t?nfwb#mbnf>!b``lnnlgbwjlm?,gju=\t?,gju=obqdf#sbqw#leJmpwjwvwf#elqwkf#pl.`boofg#bdbjmpw#wkf#Jm#wkjp#`bpf/tbp#bssljmwfg`objnfg#wl#afKltfufq/#wkjpGfsbqwnfmw#lewkf#qfnbjmjmdfeef`w#lm#wkfsbqwj`vobqoz#gfbo#tjwk#wkf\t?gju#pwzof>!bonlpw#botbzpbqf#`vqqfmwozf{sqfppjlm#leskjolplskz#leelq#nlqf#wkbm`jujojybwjlmplm#wkf#jpobmgpfof`wfgJmgf{`bm#qfpvow#jm!#ubovf>!!#,=wkf#pwqv`wvqf#,=?,b=?,gju=Nbmz#le#wkfpf`bvpfg#az#wkfle#wkf#Vmjwfgpsbm#`obpp>!n`bm#af#wqb`fgjp#qfobwfg#wlaf`bnf#lmf#lejp#eqfrvfmwozojujmd#jm#wkfwkflqfwj`boozElooltjmd#wkfQfulovwjlmbqzdlufqmnfmw#jmjp#gfwfqnjmfgwkf#slojwj`bojmwqlgv`fg#jmpveej`jfmw#wlgfp`qjswjlm!=pklqw#pwlqjfppfsbqbwjlm#lebp#wl#tkfwkfqhmltm#elq#jwptbp#jmjwjboozgjpsobz9aol`hjp#bm#f{bnsofwkf#sqjm`jsbo`lmpjpwp#le#bqf`ldmjyfg#bp,algz=?,kwno=b#pvapwbmwjboqf`lmpwqv`wfgkfbg#le#pwbwfqfpjpwbm`f#wlvmgfqdqbgvbwfWkfqf#bqf#wtldqbujwbwjlmbobqf#gfp`qjafgjmwfmwjlmboozpfqufg#bp#wkf`obpp>!kfbgfqlsslpjwjlm#wlevmgbnfmwboozglnjmbwfg#wkfbmg#wkf#lwkfqboojbm`f#tjwktbp#elq`fg#wlqfpsf`wjufoz/bmg#slojwj`bojm#pvsslqw#lesflsof#jm#wkf13wk#`fmwvqz-bmg#svaojpkfgolbg@kbqwafbwwl#vmgfqpwbmgnfnafq#pwbwfpfmujqlmnfmwboejqpw#kboe#le`lvmwqjfp#bmgbq`kjwf`wvqboaf#`lmpjgfqfg`kbqb`wfqjyfg`ofbqJmwfqubobvwklqjwbwjufEfgfqbwjlm#letbp#pv``ffgfgbmg#wkfqf#bqfb#`lmpfrvfm`fwkf#Sqfpjgfmwbopl#jm`ovgfgeqff#plewtbqfpv``fppjlm#legfufolsfg#wkftbp#gfpwqlzfgbtbz#eqln#wkf8\t?,p`qjsw=\t?bowklvdk#wkfzelooltfg#az#bnlqf#sltfqevoqfpvowfg#jm#bVmjufqpjwz#leKltfufq/#nbmzwkf#sqfpjgfmwKltfufq/#plnfjp#wklvdkw#wlvmwjo#wkf#fmgtbp#bmmlvm`fgbqf#jnslqwbmwbopl#jm`ovgfp=?jmsvw#wzsf>wkf#`fmwfq#le#GL#MLW#BOWFQvpfg#wl#qfefqwkfnfp,wkbw#kbg#affmwkf#abpjp#elqkbp#gfufolsfgjm#wkf#pvnnfq`lnsbqbwjufozgfp`qjafg#wkfpv`k#bp#wklpfwkf#qfpvowjmdjp#jnslppjaofubqjlvp#lwkfqPlvwk#Beqj`bmkbuf#wkf#pbnffeef`wjufmfppjm#tkj`k#`bpf8#wf{w.bojdm9pwqv`wvqf#bmg8#ab`hdqlvmg9qfdbqgjmd#wkfpvsslqwfg#wkfjp#bopl#hmltmpwzof>!nbqdjmjm`ovgjmd#wkfabkbpb#Nfobzvmlqph#alhn/Iomlqph#mzmlqphpolufm)M(ajmbjmwfqmb`jlmbo`bojej`b`j/_m`lnvmj`b`j/_m`lmpwqv``j/_m!=?gju#`obpp>!gjpbnajdvbwjlmGlnbjmMbnf$/#$bgnjmjpwqbwjlmpjnvowbmflvpozwqbmpslqwbwjlmJmwfqmbwjlmbo#nbqdjm.alwwln9qfpslmpjajojwz?"Xfmgje^..=\t?,=?nfwb#mbnf>!jnsofnfmwbwjlmjmeqbpwqv`wvqfqfsqfpfmwbwjlmalqgfq.alwwln9?,kfbg=\t?algz=>kwws&0B&1E&1E?elqn#nfwklg>!nfwklg>!slpw!#,ebuj`lm-j`l!#~*8\t?,p`qjsw=\t-pfwBwwqjavwf+Bgnjmjpwqbwjlm>#mft#Bqqbz+*8?"Xfmgje^..=\tgjpsobz9aol`h8Vmelqwvmbwfoz/!=%maps8?,gju=,ebuj`lm-j`l!=>$pwzofpkffw$#jgfmwjej`bwjlm/#elq#f{bnsof/?oj=?b#kqfe>!,bm#bowfqmbwjufbp#b#qfpvow#lesw!=?,p`qjsw=\twzsf>!pvanjw!#\t+evm`wjlm+*#xqf`lnnfmgbwjlmelqn#b`wjlm>!,wqbmpelqnbwjlmqf`lmpwqv`wjlm-pwzof-gjpsobz#B``lqgjmd#wl#kjggfm!#mbnf>!bolmd#tjwk#wkfgl`vnfmw-algz-bssql{jnbwfoz#@lnnvmj`bwjlmpslpw!#b`wjlm>!nfbmjmd#%rvlw8..?"Xfmgje^..=Sqjnf#Njmjpwfq`kbqb`wfqjpwj`?,b=#?b#`obpp>wkf#kjpwlqz#le#lmnlvpflufq>!wkf#dlufqmnfmwkqfe>!kwwsp9,,tbp#lqjdjmbooztbp#jmwqlgv`fg`obppjej`bwjlmqfsqfpfmwbwjufbqf#`lmpjgfqfg?"Xfmgje^..=\t\tgfsfmgp#lm#wkfVmjufqpjwz#le#jm#`lmwqbpw#wl#sob`fklogfq>!jm#wkf#`bpf#lejmwfqmbwjlmbo#`lmpwjwvwjlmbopwzof>!alqgfq.9#evm`wjlm+*#xAf`bvpf#le#wkf.pwqj`w-gwg!=\t?wbaof#`obpp>!b``lnsbmjfg#azb``lvmw#le#wkf?p`qjsw#pq`>!,mbwvqf#le#wkf#wkf#sflsof#jm#jm#bggjwjlm#wlp*8#ip-jg#>#jg!#tjgwk>!233&!qfdbqgjmd#wkf#Qlnbm#@bwkloj`bm#jmgfsfmgfmwelooltjmd#wkf#-dje!#tjgwk>!2wkf#elooltjmd#gjp`qjnjmbwjlmbq`kbfloldj`bosqjnf#njmjpwfq-ip!=?,p`qjsw=`lnajmbwjlm#le#nbqdjmtjgwk>!`qfbwfFofnfmw+t-bwwb`kFufmw+?,b=?,wg=?,wq=pq`>!kwwsp9,,bJm#sbqwj`vobq/#bojdm>!ofew!#@yf`k#Qfsvaoj`Vmjwfg#Hjmdgln`lqqfpslmgfm`f`lm`ovgfg#wkbw-kwno!#wjwof>!+evm`wjlm#+*#x`lnfp#eqln#wkfbssoj`bwjlm#le?psbm#`obpp>!pafojfufg#wl#affnfmw+$p`qjsw$?,b=\t?,oj=\t?ojufqz#gjeefqfmw=?psbm#`obpp>!lswjlm#ubovf>!+bopl#hmltm#bp\n?oj=?b#kqfe>!=?jmsvw#mbnf>!pfsbqbwfg#eqlnqfefqqfg#wl#bp#ubojdm>!wls!=elvmgfq#le#wkfbwwfnswjmd#wl#`bqalm#gjl{jgf\t\t?gju#`obpp>!`obpp>!pfbq`k.,algz=\t?,kwno=lsslqwvmjwz#wl`lnnvmj`bwjlmp?,kfbg=\t?algz#pwzof>!tjgwk9Wj\rVSmd#Uj\rWkw`kbmdfp#jm#wkfalqgfq.`lolq9 3!#alqgfq>!3!#?,psbm=?,gju=?tbp#gjp`lufqfg!#wzsf>!wf{w!#*8\t?,p`qjsw=\t\tGfsbqwnfmw#le#f``ofpjbpwj`bowkfqf#kbp#affmqfpvowjmd#eqln?,algz=?,kwno=kbp#mfufq#affmwkf#ejqpw#wjnfjm#qfpslmpf#wlbvwlnbwj`booz#?,gju=\t\t?gju#jtbp#`lmpjgfqfgsfq`fmw#le#wkf!#,=?,b=?,gju=`loof`wjlm#le#gfp`fmgfg#eqlnpf`wjlm#le#wkfb``fsw.`kbqpfwwl#af#`lmevpfgnfnafq#le#wkf#sbggjmd.qjdkw9wqbmpobwjlm#lejmwfqsqfwbwjlm#kqfe>$kwws9,,tkfwkfq#lq#mlwWkfqf#bqf#boplwkfqf#bqf#nbmzb#pnboo#mvnafqlwkfq#sbqwp#lejnslppjaof#wl##`obpp>!avwwlmol`bwfg#jm#wkf-#Kltfufq/#wkfbmg#fufmwvboozBw#wkf#fmg#le#af`bvpf#le#jwpqfsqfpfmwp#wkf?elqn#b`wjlm>!#nfwklg>!slpw!jw#jp#slppjaofnlqf#ojhfoz#wlbm#jm`qfbpf#jmkbuf#bopl#affm`lqqfpslmgp#wlbmmlvm`fg#wkbwbojdm>!qjdkw!=nbmz#`lvmwqjfpelq#nbmz#zfbqpfbqojfpw#hmltmaf`bvpf#jw#tbpsw!=?,p`qjsw=#ubojdm>!wls!#jmkbajwbmwp#leelooltjmd#zfbq\t?gju#`obpp>!njoojlm#sflsof`lmwqlufqpjbo#`lm`fqmjmd#wkfbqdvf#wkbw#wkfdlufqmnfmw#bmgb#qfefqfm`f#wlwqbmpefqqfg#wlgfp`qjajmd#wkf#pwzof>!`lolq9bowklvdk#wkfqfafpw#hmltm#elqpvanjw!#mbnf>!nvowjsoj`bwjlmnlqf#wkbm#lmf#qf`ldmjwjlm#le@lvm`jo#le#wkffgjwjlm#le#wkf##?nfwb#mbnf>!Fmwfqwbjmnfmw#btbz#eqln#wkf#8nbqdjm.qjdkw9bw#wkf#wjnf#lejmufpwjdbwjlmp`lmmf`wfg#tjwkbmg#nbmz#lwkfqbowklvdk#jw#jpafdjmmjmd#tjwk#?psbm#`obpp>!gfp`fmgbmwp#le?psbm#`obpp>!j#bojdm>!qjdkw!?,kfbg=\t?algz#bpsf`wp#le#wkfkbp#pjm`f#affmFvqlsfbm#Vmjlmqfnjmjp`fmw#lenlqf#gjeej`vowUj`f#Sqfpjgfmw`lnslpjwjlm#lesbppfg#wkqlvdknlqf#jnslqwbmwelmw.pjyf922s{f{sobmbwjlm#lewkf#`lm`fsw#letqjwwfm#jm#wkf\n?psbm#`obpp>!jp#lmf#le#wkf#qfpfnaobm`f#wllm#wkf#dqlvmgptkj`k#`lmwbjmpjm`ovgjmd#wkf#gfejmfg#az#wkfsvaoj`bwjlm#lenfbmp#wkbw#wkflvwpjgf#le#wkfpvsslqw#le#wkf?jmsvw#`obpp>!?psbm#`obpp>!w+Nbwk-qbmgln+*nlpw#sqlnjmfmwgfp`qjswjlm#le@lmpwbmwjmlsoftfqf#svaojpkfg?gju#`obpp>!pfbssfbqp#jm#wkf2!#kfjdkw>!2!#nlpw#jnslqwbmwtkj`k#jm`ovgfptkj`k#kbg#affmgfpwqv`wjlm#lewkf#slsvobwjlm\t\n?gju#`obpp>!slppjajojwz#leplnfwjnfp#vpfgbssfbq#wl#kbufpv``fpp#le#wkfjmwfmgfg#wl#afsqfpfmw#jm#wkfpwzof>!`ofbq9a\t?,p`qjsw=\t?tbp#elvmgfg#jmjmwfqujft#tjwk\\jg!#`lmwfmw>!`bsjwbo#le#wkf\t?ojmh#qfo>!pqfofbpf#le#wkfsljmw#lvw#wkbw{NOKwwsQfrvfpwbmg#pvapfrvfmwpf`lmg#obqdfpwufqz#jnslqwbmwpsf`jej`bwjlmppvqeb`f#le#wkfbssojfg#wl#wkfelqfjdm#sloj`z\\pfwGlnbjmMbnffpwbaojpkfg#jmjp#afojfufg#wlJm#bggjwjlm#wlnfbmjmd#le#wkfjp#mbnfg#bewfqwl#sqlwf`w#wkfjp#qfsqfpfmwfgGf`obqbwjlm#lenlqf#feej`jfmw@obppjej`bwjlmlwkfq#elqnp#lekf#qfwvqmfg#wl?psbm#`obpp>!`sfqelqnbm`f#le+evm`wjlm+*#xje#bmg#lmoz#jeqfdjlmp#le#wkfofbgjmd#wl#wkfqfobwjlmp#tjwkVmjwfg#Mbwjlmppwzof>!kfjdkw9lwkfq#wkbm#wkfzsf!#`lmwfmw>!Bppl`jbwjlm#le\t?,kfbg=\t?algzol`bwfg#lm#wkfjp#qfefqqfg#wl+jm`ovgjmd#wkf`lm`fmwqbwjlmpwkf#jmgjujgvbobnlmd#wkf#nlpwwkbm#bmz#lwkfq,=\t?ojmh#qfo>!#qfwvqm#ebopf8wkf#svqslpf#lewkf#bajojwz#wl8`lolq9 eee~\t-\t?psbm#`obpp>!wkf#pvaif`w#legfejmjwjlmp#le=\t?ojmh#qfo>!`objn#wkbw#wkfkbuf#gfufolsfg?wbaof#tjgwk>!`fofaqbwjlm#leElooltjmd#wkf#wl#gjpwjmdvjpk?psbm#`obpp>!awbhfp#sob`f#jmvmgfq#wkf#mbnfmlwfg#wkbw#wkf=?"Xfmgje^..=\tpwzof>!nbqdjm.jmpwfbg#le#wkfjmwqlgv`fg#wkfwkf#sql`fpp#lejm`qfbpjmd#wkfgjeefqfm`fp#jmfpwjnbwfg#wkbwfpsf`jbooz#wkf,gju=?gju#jg>!tbp#fufmwvboozwkqlvdklvw#kjpwkf#gjeefqfm`fplnfwkjmd#wkbwpsbm=?,psbm=?,pjdmjej`bmwoz#=?,p`qjsw=\t\tfmujqlmnfmwbo#wl#sqfufmw#wkfkbuf#affm#vpfgfpsf`jbooz#elqvmgfqpwbmg#wkfjp#fppfmwjbooztfqf#wkf#ejqpwjp#wkf#obqdfpwkbuf#affm#nbgf!#pq`>!kwws9,,jmwfqsqfwfg#bppf`lmg#kboe#le`qloojmd>!ml!#jp#`lnslpfg#leJJ/#Kloz#Qlnbmjp#f{sf`wfg#wlkbuf#wkfjq#ltmgfejmfg#bp#wkfwqbgjwjlmbooz#kbuf#gjeefqfmwbqf#lewfm#vpfgwl#fmpvqf#wkbwbdqffnfmw#tjwk`lmwbjmjmd#wkfbqf#eqfrvfmwozjmelqnbwjlm#lmf{bnsof#jp#wkfqfpvowjmd#jm#b?,b=?,oj=?,vo=#`obpp>!ellwfqbmg#fpsf`jboozwzsf>!avwwlm!#?,psbm=?,psbm=tkj`k#jm`ovgfg=\t?nfwb#mbnf>!`lmpjgfqfg#wkf`bqqjfg#lvw#azKltfufq/#jw#jpaf`bnf#sbqw#lejm#qfobwjlm#wlslsvobq#jm#wkfwkf#`bsjwbo#letbp#leej`jbooztkj`k#kbp#affmwkf#Kjpwlqz#lebowfqmbwjuf#wlgjeefqfmw#eqlnwl#pvsslqw#wkfpvddfpwfg#wkbwjm#wkf#sql`fpp##?gju#`obpp>!wkf#elvmgbwjlmaf`bvpf#le#kjp`lm`fqmfg#tjwkwkf#vmjufqpjwzlsslpfg#wl#wkfwkf#`lmwf{w#le?psbm#`obpp>!swf{w!#mbnf>!r!\n\n?gju#`obpp>!wkf#p`jfmwjej`qfsqfpfmwfg#aznbwkfnbwj`jbmpfof`wfg#az#wkfwkbw#kbuf#affm=?gju#`obpp>!`gju#jg>!kfbgfqjm#sbqwj`vobq/`lmufqwfg#jmwl*8\t?,p`qjsw=\t?skjolplskj`bo#pqsphlkqubwphjwj\rVSmd#Uj\rWkw!kwws9,,!=?psbm#`obpp>!nfnafqp#le#wkf#tjmglt-ol`bwjlmufqwj`bo.bojdm9,b=##?b#kqfe>!?"gl`wzsf#kwno=nfgjb>!p`qffm!#?lswjlm#ubovf>!ebuj`lm-j`l!#,=\t\n\n?gju#`obpp>!`kbqb`wfqjpwj`p!#nfwklg>!dfw!#,algz=\t?,kwno=\tpklqw`vw#j`lm!#gl`vnfmw-tqjwf+sbggjmd.alwwln9qfsqfpfmwbwjufppvanjw!#ubovf>!bojdm>!`fmwfq!#wkqlvdklvw#wkf#p`jfm`f#ej`wjlm\t##?gju#`obpp>!pvanjw!#`obpp>!lmf#le#wkf#nlpw#ubojdm>!wls!=?tbp#fpwbaojpkfg*8\t?,p`qjsw=\tqfwvqm#ebopf8!=*-pwzof-gjpsobzaf`bvpf#le#wkf#gl`vnfmw-`llhjf?elqn#b`wjlm>!,~algzxnbqdjm938Fm`z`olsfgjb#leufqpjlm#le#wkf#-`qfbwfFofnfmw+mbnf!#`lmwfmw>!?,gju=\t?,gju=\t\tbgnjmjpwqbwjuf#?,algz=\t?,kwno=kjpwlqz#le#wkf#!=?jmsvw#wzsf>!slqwjlm#le#wkf#bp#sbqw#le#wkf#%maps8?b#kqfe>!lwkfq#`lvmwqjfp!=\t?gju#`obpp>!?,psbm=?,psbm=?Jm#lwkfq#tlqgp/gjpsobz9#aol`h8`lmwqlo#le#wkf#jmwqlgv`wjlm#le,=\t?nfwb#mbnf>!bp#tfoo#bp#wkf#jm#qf`fmw#zfbqp\t\n?gju#`obpp>!?,gju=\t\n?,gju=\tjmpsjqfg#az#wkfwkf#fmg#le#wkf#`lnsbwjaof#tjwkaf`bnf#hmltm#bp#pwzof>!nbqdjm9-ip!=?,p`qjsw=?#Jmwfqmbwjlmbo#wkfqf#kbuf#affmDfqnbm#obmdvbdf#pwzof>!`lolq9 @lnnvmjpw#Sbqwz`lmpjpwfmw#tjwkalqgfq>!3!#`foo#nbqdjmkfjdkw>!wkf#nbilqjwz#le!#bojdm>!`fmwfqqfobwfg#wl#wkf#nbmz#gjeefqfmw#Lqwklgl{#@kvq`kpjnjobq#wl#wkf#,=\t?ojmh#qfo>!ptbp#lmf#le#wkf#vmwjo#kjp#gfbwk~*+*8\t?,p`qjsw=lwkfq#obmdvbdfp`lnsbqfg#wl#wkfslqwjlmp#le#wkfwkf#Mfwkfqobmgpwkf#nlpw#`lnnlmab`hdqlvmg9vqo+bqdvfg#wkbw#wkfp`qloojmd>!ml!#jm`ovgfg#jm#wkfMlqwk#Bnfqj`bm#wkf#mbnf#le#wkfjmwfqsqfwbwjlmpwkf#wqbgjwjlmbogfufolsnfmw#le#eqfrvfmwoz#vpfgb#`loof`wjlm#leufqz#pjnjobq#wlpvqqlvmgjmd#wkff{bnsof#le#wkjpbojdm>!`fmwfq!=tlvog#kbuf#affmjnbdf\\`bswjlm#>bwwb`kfg#wl#wkfpvddfpwjmd#wkbwjm#wkf#elqn#le#jmuloufg#jm#wkfjp#gfqjufg#eqlnmbnfg#bewfq#wkfJmwqlgv`wjlm#wlqfpwqj`wjlmp#lm#pwzof>!tjgwk9#`bm#af#vpfg#wl#wkf#`qfbwjlm#lenlpw#jnslqwbmw#jmelqnbwjlm#bmgqfpvowfg#jm#wkf`loobspf#le#wkfWkjp#nfbmp#wkbwfofnfmwp#le#wkftbp#qfsob`fg#azbmbozpjp#le#wkfjmpsjqbwjlm#elqqfdbqgfg#bp#wkfnlpw#pv``fppevohmltm#bp#%rvlw8b#`lnsqfkfmpjufKjpwlqz#le#wkf#tfqf#`lmpjgfqfgqfwvqmfg#wl#wkfbqf#qfefqqfg#wlVmplvq`fg#jnbdf=\t\n?gju#`obpp>!`lmpjpwp#le#wkfpwlsSqlsbdbwjlmjmwfqfpw#jm#wkfbubjobajojwz#lebssfbqp#wl#kbuffof`wqlnbdmfwj`fmbaofPfquj`fp+evm`wjlm#le#wkfJw#jp#jnslqwbmw?,p`qjsw=?,gju=evm`wjlm+*xubq#qfobwjuf#wl#wkfbp#b#qfpvow#le#wkf#slpjwjlm#leElq#f{bnsof/#jm#nfwklg>!slpw!#tbp#elooltfg#az%bns8ngbpk8#wkfwkf#bssoj`bwjlmip!=?,p`qjsw=\tvo=?,gju=?,gju=bewfq#wkf#gfbwktjwk#qfpsf`w#wlpwzof>!sbggjmd9jp#sbqwj`vobqozgjpsobz9jmojmf8#wzsf>!pvanjw!#jp#gjujgfg#jmwl\bTA\nzk#+\vBl\bQ*qfpslmpbajojgbgbgnjmjpwqb`j/_mjmwfqmb`jlmbofp`lqqfpslmgjfmwf\fHe\fHF\fHC\fIg\fH{\fHF\fIn\fH\\\fIa\fHY\fHU\fHB\fHR\fH\\\fIk\fH^\fIg\fH{\fIg\fHn\fHv\fIm\fHD\fHR\fHY\fH^\fIk\fHy\fHS\fHD\fHT\fH\\\fHy\fHR\fH\\\fHF\fIm\fH^\fHS\fHT\fHz\fIg\fHp\fIk\fHn\fHv\fHR\fHU\fHS\fHc\fHA\fIk\fHp\fIk\fHn\fHZ\fHR\fHB\fHS\fH^\fHU\fHB\fHR\fH\\\fIl\fHp\fHR\fH{\fH\\\fHO\fH@\fHD\fHR\fHD\fIk\fHy\fIm\fHB\fHR\fH\\\fH@\fIa\fH^\fIe\fH{\fHB\fHR\fH^\fHS\fHy\fHB\fHU\fHS\fH^\fHR\fHF\fIo\fH[\fIa\fHL\fH@\fHN\fHP\fHH\fIk\fHA\fHR\fHp\fHF\fHR\fHy\fIa\fH^\fHS\fHy\fHs\fIa\fH\\\fIk\fHD\fHz\fHS\fH^\fHR\fHG\fHJ\fI`\fH\\\fHR\fHD\fHB\fHR\fHB\fH^\fIk\fHB\fHH\fHJ\fHR\fHD\fH@\fHR\fHp\fHR\fH\\\fHY\fHS\fHy\fHR\fHT\fHy\fIa\fHC\fIg\fHn\fHv\fHR\fHU\fHH\fIk\fHF\fHU\fIm\fHm\fHv\fH@\fHH\fHR\fHC\fHR\fHT\fHn\fHY\fHR\fHJ\fHJ\fIk\fHz\fHD\fIk\fHF\fHS\fHw\fH^\fIk\fHY\fHS\fHZ\fIk\fH[\fH\\\fHR\fHp\fIa\fHC\fHe\fHH\fIa\fHH\fH\\\fHB\fIm\fHn\fH@\fHd\fHJ\fIg\fHD\fIg\fHn\fHe\fHF\fHy\fH\\\fHO\fHF\fHN\fHP\fIk\fHn\fHT\fIa\fHI\fHS\fHH\fHG\fHS\fH^\fIa\fHB\fHB\fIm\fHz\fIa\fHC\fHi\fHv\fIa\fHw\fHR\fHw\fIn\fHs\fHH\fIl\fHT\fHn\fH{\fIl\fHH\fHp\fHR\fHc\fH{\fHR\fHY\fHS\fHA\fHR\fH{\fHt\fHO\fIa\fHs\fIk\fHJ\fIn\fHT\fH\\\fIk\fHJ\fHS\fHD\fIg\fHn\fHU\fHH\fIa\fHC\fHR\fHT\fIk\fHy\fIa\fHT\fH{\fHR\fHn\fHK\fIl\fHY\fHS\fHZ\fIa\fHY\fH\\\fHR\fHH\fIk\fHn\fHJ\fId\fHs\fIa\fHT\fHD\fHy\fIa\fHZ\fHR\fHT\fHR\fHB\fHD\fIk\fHi\fHJ\fHR\fH^\fHH\fH@\fHS\fHp\fH^\fIl\fHF\fIm\fH\\\fIn\fH[\fHU\fHS\fHn\fHJ\fIl\fHB\fHS\fHH\fIa\fH\\\fHy\fHY\fHS\fHH\fHR\fH\\\fIm\fHF\fHC\fIk\fHT\fIa\fHI\fHR\fHD\fHy\fH\\\fIg\fHM\fHP\fHB\fIm\fHy\fIa\fHH\fHC\fIg\fHp\fHD\fHR\fHy\fIo\fHF\fHC\fHR\fHF\fIg\fHT\fIa\fHs\fHt\fH\\\fIk\fH^\fIn\fHy\fHR\fH\\\fIa\fHC\fHY\fHS\fHv\fHR\fH\\\fHT\fIn\fHv\fHD\fHR\fHB\fIn\fH^\fIa\fHC\fHJ\fIk\fHz\fIk\fHn\fHU\fHB\fIk\fHZ\fHR\fHT\fIa\fHy\fIn\fH^\fHB\fId\fHn\fHD\fIk\fHH\fId\fHC\fHR\fH\\\fHp\fHS\fHT\fHy\fIkqpp({no!#wjwof>!.wzsf!#`lmwfmw>!wjwof!#`lmwfmw>!bw#wkf#pbnf#wjnf-ip!=?,p`qjsw=\t?!#nfwklg>!slpw!#?,psbm=?,b=?,oj=ufqwj`bo.bojdm9w,irvfqz-njm-ip!=-`oj`h+evm`wjlm+#pwzof>!sbggjmd.~*+*8\t?,p`qjsw=\t?,psbm=?b#kqfe>!?b#kqfe>!kwws9,,*8#qfwvqm#ebopf8wf{w.gf`lqbwjlm9#p`qloojmd>!ml!#alqgfq.`loobspf9bppl`jbwfg#tjwk#Abkbpb#JmglmfpjbFmdojpk#obmdvbdf?wf{w#{no9psb`f>-dje!#alqgfq>!3!?,algz=\t?,kwno=\tlufqeolt9kjggfm8jnd#pq`>!kwws9,,bggFufmwOjpwfmfqqfpslmpjaof#elq#p-ip!=?,p`qjsw=\t,ebuj`lm-j`l!#,=lsfqbwjmd#pzpwfn!#pwzof>!tjgwk92wbqdfw>!\\aobmh!=Pwbwf#Vmjufqpjwzwf{w.bojdm9ofew8\tgl`vnfmw-tqjwf+/#jm`ovgjmd#wkf#bqlvmg#wkf#tlqog*8\t?,p`qjsw=\t?!#pwzof>!kfjdkw98lufqeolt9kjggfmnlqf#jmelqnbwjlmbm#jmwfqmbwjlmbob#nfnafq#le#wkf#lmf#le#wkf#ejqpw`bm#af#elvmg#jm#?,gju=\t\n\n?,gju=\tgjpsobz9#mlmf8!=!#,=\t?ojmh#qfo>!\t##+evm`wjlm+*#xwkf#26wk#`fmwvqz-sqfufmwGfebvow+obqdf#mvnafq#le#Azybmwjmf#Fnsjqf-isdwkvnaofewubpw#nbilqjwz#lenbilqjwz#le#wkf##bojdm>!`fmwfq!=Vmjufqpjwz#Sqfppglnjmbwfg#az#wkfPf`lmg#Tlqog#Tbqgjpwqjavwjlm#le#pwzof>!slpjwjlm9wkf#qfpw#le#wkf#`kbqb`wfqjyfg#az#qfo>!mleloolt!=gfqjufp#eqln#wkfqbwkfq#wkbm#wkf#b#`lnajmbwjlm#lepwzof>!tjgwk9233Fmdojpk.psfbhjmd`lnsvwfq#p`jfm`falqgfq>!3!#bow>!wkf#f{jpwfm`f#leGfnl`qbwj`#Sbqwz!#pwzof>!nbqdjm.Elq#wkjp#qfbplm/-ip!=?,p`qjsw=\t\npAzWbdMbnf+p*X3^ip!=?,p`qjsw=\t?-ip!=?,p`qjsw=\tojmh#qfo>!j`lm!#$#bow>$$#`obpp>$elqnbwjlm#le#wkfufqpjlmp#le#wkf#?,b=?,gju=?,gju=,sbdf=\t##?sbdf=\t?gju#`obpp>!`lmwaf`bnf#wkf#ejqpwabkbpb#Jmglmfpjbfmdojpk#+pjnsof*"y"W"W"["Q"U"V"@=i=l<^<\\=n=m!?gju#jg>!ellwfq!=wkf#Vmjwfg#Pwbwfp?jnd#pq`>!kwws9,,-isdqjdkwwkvna-ip!=?,p`qjsw=\t?ol`bwjlm-sqlwl`loeqbnfalqgfq>!3!#p!#,=\t?nfwb#mbnf>!?,b=?,gju=?,gju=?elmw.tfjdkw9alog8%rvlw8#bmg#%rvlw8gfsfmgjmd#lm#wkf#nbqdjm938sbggjmd9!#qfo>!mleloolt!#Sqfpjgfmw#le#wkf#wtfmwjfwk#`fmwvqzfujpjlm=\t##?,sbdfJmwfqmfw#F{solqfqb-bpzm`#>#wqvf8\tjmelqnbwjlm#balvw?gju#jg>!kfbgfq!=!#b`wjlm>!kwws9,,?b#kqfe>!kwwsp9,,?gju#jg>!`lmwfmw!?,gju=\t?,gju=\t?gfqjufg#eqln#wkf#?jnd#pq`>$kwws9,,b``lqgjmd#wl#wkf#\t?,algz=\t?,kwno=\tpwzof>!elmw.pjyf9p`qjsw#obmdvbdf>!Bqjbo/#Kfoufwj`b/?,b=?psbm#`obpp>!?,p`qjsw=?p`qjsw#slojwj`bo#sbqwjfpwg=?,wq=?,wbaof=?kqfe>!kwws9,,ttt-jmwfqsqfwbwjlm#leqfo>!pwzofpkffw!#gl`vnfmw-tqjwf+$?`kbqpfw>!vwe.;!=\tafdjmmjmd#le#wkf#qfufbofg#wkbw#wkfwfofujpjlm#pfqjfp!#qfo>!mleloolt!=#wbqdfw>!\\aobmh!=`objnjmd#wkbw#wkfkwws&0B&1E&1Ettt-nbmjefpwbwjlmp#leSqjnf#Njmjpwfq#lejmeovfm`fg#az#wkf`obpp>!`ofbqej{!=,gju=\t?,gju=\t\twkqff.gjnfmpjlmbo@kvq`k#le#Fmdobmgle#Mlqwk#@bqlojmbprvbqf#hjolnfwqfp-bggFufmwOjpwfmfqgjpwjm`w#eqln#wkf`lnnlmoz#hmltm#bpSklmfwj`#Boskbafwgf`obqfg#wkbw#wkf`lmwqloofg#az#wkfAfmibnjm#Eqbmhojmqlof.sobzjmd#dbnfwkf#Vmjufqpjwz#lejm#Tfpwfqm#Fvqlsfsfqplmbo#`lnsvwfqSqlif`w#Dvwfmafqdqfdbqgofpp#le#wkfkbp#affm#sqlslpfgwldfwkfq#tjwk#wkf=?,oj=?oj#`obpp>!jm#plnf#`lvmwqjfpnjm-ip!=?,p`qjsw=le#wkf#slsvobwjlmleej`jbo#obmdvbdf?jnd#pq`>!jnbdfp,jgfmwjejfg#az#wkfmbwvqbo#qfplvq`fp`obppjej`bwjlm#le`bm#af#`lmpjgfqfgrvbmwvn#nf`kbmj`pMfufqwkfofpp/#wkfnjoojlm#zfbqp#bdl?,algz=\t?,kwno="y"W"W"["Q"U"V"@\twbhf#bgubmwbdf#lebmg/#b``lqgjmd#wlbwwqjavwfg#wl#wkfNj`qlplew#Tjmgltpwkf#ejqpw#`fmwvqzvmgfq#wkf#`lmwqlogju#`obpp>!kfbgfqpklqwoz#bewfq#wkfmlwbaof#f{`fswjlmwfmp#le#wklvpbmgppfufqbo#gjeefqfmwbqlvmg#wkf#tlqog-qfb`kjmd#njojwbqzjplobwfg#eqln#wkflsslpjwjlm#wl#wkfwkf#Log#WfpwbnfmwBeqj`bm#Bnfqj`bmpjmpfqwfg#jmwl#wkfpfsbqbwf#eqln#wkfnfwqlslojwbm#bqfbnbhfp#jw#slppjaofb`hmltofgdfg#wkbwbqdvbaoz#wkf#nlpwwzsf>!wf{w,`pp!=\twkf#JmwfqmbwjlmboB``lqgjmd#wl#wkf#sf>!wf{w,`pp!#,=\t`ljm`jgf#tjwk#wkfwtl.wkjqgp#le#wkfGvqjmd#wkjp#wjnf/gvqjmd#wkf#sfqjlgbmmlvm`fg#wkbw#kfwkf#jmwfqmbwjlmbobmg#nlqf#qf`fmwozafojfufg#wkbw#wkf`lmp`jlvpmfpp#bmgelqnfqoz#hmltm#bppvqqlvmgfg#az#wkfejqpw#bssfbqfg#jml``bpjlmbooz#vpfgslpjwjlm9baplovwf8!#wbqdfw>!\\aobmh!#slpjwjlm9qfobwjuf8wf{w.bojdm9`fmwfq8ib{,ojap,irvfqz,2-ab`hdqlvmg.`lolq9 wzsf>!bssoj`bwjlm,bmdvbdf!#`lmwfmw>!?nfwb#kwws.frvju>!Sqjub`z#Sloj`z?,b=f+!&0@p`qjsw#pq`>$!#wbqdfw>!\\aobmh!=Lm#wkf#lwkfq#kbmg/-isdwkvnaqjdkw1?,gju=?gju#`obpp>!?gju#pwzof>!eolbw9mjmfwffmwk#`fmwvqz?,algz=\t?,kwno=\t?jnd#pq`>!kwws9,,p8wf{w.bojdm9`fmwfqelmw.tfjdkw9#alog8#B``lqgjmd#wl#wkf#gjeefqfm`f#afwtffm!#eqbnfalqgfq>!3!#!#pwzof>!slpjwjlm9ojmh#kqfe>!kwws9,,kwno7,ollpf-gwg!=\tgvqjmd#wkjp#sfqjlg?,wg=?,wq=?,wbaof=`olpfoz#qfobwfg#wlelq#wkf#ejqpw#wjnf8elmw.tfjdkw9alog8jmsvw#wzsf>!wf{w!#?psbm#pwzof>!elmw.lmqfbgzpwbwf`kbmdf\n?gju#`obpp>!`ofbqgl`vnfmw-ol`bwjlm-#Elq#f{bnsof/#wkf#b#tjgf#ubqjfwz#le#?"GL@WZSF#kwno=\t?%maps8%maps8%maps8!=?b#kqfe>!kwws9,,pwzof>!eolbw9ofew8`lm`fqmfg#tjwk#wkf>kwws&0B&1E&1Ettt-jm#slsvobq#`vowvqfwzsf>!wf{w,`pp!#,=jw#jp#slppjaof#wl#Kbqubqg#Vmjufqpjwzwzofpkffw!#kqfe>!,wkf#nbjm#`kbqb`wfqL{elqg#Vmjufqpjwz##mbnf>!hfztlqgp!#`pwzof>!wf{w.bojdm9wkf#Vmjwfg#Hjmdglnefgfqbo#dlufqmnfmw?gju#pwzof>!nbqdjm#gfsfmgjmd#lm#wkf#gfp`qjswjlm#le#wkf?gju#`obpp>!kfbgfq-njm-ip!=?,p`qjsw=gfpwqv`wjlm#le#wkfpojdkwoz#gjeefqfmwjm#b``lqgbm`f#tjwkwfof`lnnvmj`bwjlmpjmgj`bwfp#wkbw#wkfpklqwoz#wkfqfbewfqfpsf`jbooz#jm#wkf#Fvqlsfbm#`lvmwqjfpKltfufq/#wkfqf#bqfpq`>!kwws9,,pwbwj`pvddfpwfg#wkbw#wkf!#pq`>!kwws9,,ttt-b#obqdf#mvnafq#le#Wfof`lnnvmj`bwjlmp!#qfo>!mleloolt!#wKloz#Qlnbm#Fnsfqlqbonlpw#f{`ovpjufoz!#alqgfq>!3!#bow>!Pf`qfwbqz#le#Pwbwf`vonjmbwjmd#jm#wkf@JB#Tlqog#Eb`wallhwkf#nlpw#jnslqwbmwbmmjufqpbqz#le#wkfpwzof>!ab`hdqlvmg.?oj=?fn=?b#kqfe>!,wkf#Bwobmwj`#L`fbmpwqj`woz#psfbhjmd/pklqwoz#afelqf#wkfgjeefqfmw#wzsfp#lewkf#Lwwlnbm#Fnsjqf=?jnd#pq`>!kwws9,,Bm#Jmwqlgv`wjlm#wl`lmpfrvfm`f#le#wkfgfsbqwvqf#eqln#wkf@lmefgfqbwf#Pwbwfpjmgjdfmlvp#sflsofpSql`ffgjmdp#le#wkfjmelqnbwjlm#lm#wkfwkflqjfp#kbuf#affmjmuloufnfmw#jm#wkfgjujgfg#jmwl#wkqffbgib`fmw#`lvmwqjfpjp#qfpslmpjaof#elqgjpplovwjlm#le#wkf`loobalqbwjlm#tjwktjgfoz#qfdbqgfg#bpkjp#`lmwfnslqbqjfpelvmgjmd#nfnafq#leGlnjmj`bm#Qfsvaoj`dfmfqbooz#b``fswfgwkf#slppjajojwz#lebqf#bopl#bubjobaofvmgfq#`lmpwqv`wjlmqfpwlqbwjlm#le#wkfwkf#dfmfqbo#svaoj`jp#bonlpw#fmwjqfozsbppfp#wkqlvdk#wkfkbp#affm#pvddfpwfg`lnsvwfq#bmg#ujgflDfqnbmj`#obmdvbdfp#b``lqgjmd#wl#wkf#gjeefqfmw#eqln#wkfpklqwoz#bewfqtbqgpkqfe>!kwwsp9,,ttt-qf`fmw#gfufolsnfmwAlbqg#le#Gjqf`wlqp?gju#`obpp>!pfbq`k#?b#kqfe>!kwws9,,Jm#sbqwj`vobq/#wkfNvowjsof#ellwmlwfplq#lwkfq#pvapwbm`fwklvpbmgp#le#zfbqpwqbmpobwjlm#le#wkf?,gju=\t?,gju=\t\t?b#kqfe>!jmgf{-skstbp#fpwbaojpkfg#jmnjm-ip!=?,p`qjsw=\tsbqwj`jsbwf#jm#wkfb#pwqlmd#jmeovfm`fpwzof>!nbqdjm.wls9qfsqfpfmwfg#az#wkfdqbgvbwfg#eqln#wkfWqbgjwjlmbooz/#wkfFofnfmw+!p`qjsw!*8Kltfufq/#pjm`f#wkf,gju=\t?,gju=\t?gju#ofew8#nbqdjm.ofew9sqlwf`wjlm#bdbjmpw38#ufqwj`bo.bojdm9Vmelqwvmbwfoz/#wkfwzsf>!jnbdf,{.j`lm,gju=\t?gju#`obpp>!#`obpp>!`ofbqej{!=?gju#`obpp>!ellwfq\n\n?,gju=\t\n\n?,gju=\twkf#nlwjlm#sj`wvqf<}=f!t0-lqd,2:::,{kwno!=?b#wbqdfw>!\\aobmh!#wf{w,kwno8#`kbqpfw>!#wbqdfw>!\\aobmh!=?wbaof#`foosbggjmd>!bvwl`lnsofwf>!lee!#wf{w.bojdm9#`fmwfq8wl#obpw#ufqpjlm#az#ab`hdqlvmg.`lolq9# !#kqfe>!kwws9,,ttt-,gju=?,gju=?gju#jg>?b#kqfe>! !#`obpp>!!=?jnd#pq`>!kwws9,,`qjsw!#pq`>!kwws9,,\t?p`qjsw#obmdvbdf>!,,FM!#!kwws9,,ttt-tfm`lgfVQJ@lnslmfmw+!#kqfe>!ibubp`qjsw9?gju#`obpp>!`lmwfmwgl`vnfmw-tqjwf+$?p`slpjwjlm9#baplovwf8p`qjsw#pq`>!kwws9,,#pwzof>!nbqdjm.wls9-njm-ip!=?,p`qjsw=\t?,gju=\t?gju#`obpp>!t0-lqd,2:::,{kwno!#\t\t?,algz=\t?,kwno=gjpwjm`wjlm#afwtffm,!#wbqdfw>!\\aobmh!=?ojmh#kqfe>!kwws9,,fm`lgjmd>!vwe.;!<=\tt-bggFufmwOjpwfmfq!kwws9,,ttt-j`lm!#kqfe>!kwws9,,#pwzof>!ab`hdqlvmg9wzsf>!wf{w,`pp!#,=\tnfwb#sqlsfqwz>!ld9w?jmsvw#wzsf>!wf{w!##pwzof>!wf{w.bojdm9wkf#gfufolsnfmw#le#wzofpkffw!#wzsf>!wfkwno8#`kbqpfw>vwe.;jp#`lmpjgfqfg#wl#afwbaof#tjgwk>!233&!#Jm#bggjwjlm#wl#wkf#`lmwqjavwfg#wl#wkf#gjeefqfm`fp#afwtffmgfufolsnfmw#le#wkf#Jw#jp#jnslqwbmw#wl#?,p`qjsw=\t\t?p`qjsw##pwzof>!elmw.pjyf92=?,psbm=?psbm#jg>daOjaqbqz#le#@lmdqfpp?jnd#pq`>!kwws9,,jnFmdojpk#wqbmpobwjlmB`bgfnz#le#P`jfm`fpgju#pwzof>!gjpsobz9`lmpwqv`wjlm#le#wkf-dfwFofnfmwAzJg+jg*jm#`lmivm`wjlm#tjwkFofnfmw+$p`qjsw$*8#?nfwb#sqlsfqwz>!ld9<}=f!wf{w!#mbnf>!=Sqjub`z#Sloj`z?,b=bgnjmjpwfqfg#az#wkffmbaofPjmdofQfrvfpwpwzof>%rvlw8nbqdjm9?,gju=?,gju=?,gju=?=?jnd#pq`>!kwws9,,j#pwzof>%rvlw8eolbw9qfefqqfg#wl#bp#wkf#wlwbo#slsvobwjlm#lejm#Tbpkjmdwlm/#G-@-#pwzof>!ab`hdqlvmg.bnlmd#lwkfq#wkjmdp/lqdbmjybwjlm#le#wkfsbqwj`jsbwfg#jm#wkfwkf#jmwqlgv`wjlm#lejgfmwjejfg#tjwk#wkfej`wjlmbo#`kbqb`wfq#L{elqg#Vmjufqpjwz#njpvmgfqpwbmgjmd#leWkfqf#bqf/#kltfufq/pwzofpkffw!#kqfe>!,@lovnajb#Vmjufqpjwzf{sbmgfg#wl#jm`ovgfvpvbooz#qfefqqfg#wljmgj`bwjmd#wkbw#wkfkbuf#pvddfpwfg#wkbwbeejojbwfg#tjwk#wkf`lqqfobwjlm#afwtffmmvnafq#le#gjeefqfmw=?,wg=?,wq=?,wbaof=Qfsvaoj`#le#Jqfobmg\t?,p`qjsw=\t?p`qjsw#vmgfq#wkf#jmeovfm`f`lmwqjavwjlm#wl#wkfLeej`jbo#tfapjwf#lekfbgrvbqwfqp#le#wkf`fmwfqfg#bqlvmg#wkfjnsoj`bwjlmp#le#wkfkbuf#affm#gfufolsfgEfgfqbo#Qfsvaoj`#leaf`bnf#jm`qfbpjmdoz`lmwjmvbwjlm#le#wkfMlwf/#kltfufq/#wkbwpjnjobq#wl#wkbw#le#`bsbajojwjfp#le#wkfb``lqgbm`f#tjwk#wkfsbqwj`jsbmwp#jm#wkfevqwkfq#gfufolsnfmwvmgfq#wkf#gjqf`wjlmjp#lewfm#`lmpjgfqfgkjp#zlvmdfq#aqlwkfq?,wg=?,wq=?,wbaof=?b#kwws.frvju>![.VB.skzpj`bo#sqlsfqwjfple#Aqjwjpk#@lovnajbkbp#affm#`qjwj`jyfg+tjwk#wkf#f{`fswjlmrvfpwjlmp#balvw#wkfsbppjmd#wkqlvdk#wkf3!#`foosbggjmd>!3!#wklvpbmgp#le#sflsofqfgjqf`wp#kfqf-#Elqkbuf#`kjogqfm#vmgfq&0F&0@,p`qjsw&0F!**8?b#kqfe>!kwws9,,ttt-?oj=?b#kqfe>!kwws9,,pjwf\\mbnf!#`lmwfmw>!wf{w.gf`lqbwjlm9mlmfpwzof>!gjpsobz9#mlmf?nfwb#kwws.frvju>![.mft#Gbwf+*-dfwWjnf+*#wzsf>!jnbdf,{.j`lm!?,psbm=?psbm#`obpp>!obmdvbdf>!ibubp`qjswtjmglt-ol`bwjlm-kqfe?b#kqfe>!ibubp`qjsw9..=\t?p`qjsw#wzsf>!w?b#kqfe>$kwws9,,ttt-klqw`vw#j`lm!#kqfe>!?,gju=\t?gju#`obpp>!?p`qjsw#pq`>!kwws9,,!#qfo>!pwzofpkffw!#w?,gju=\t?p`qjsw#wzsf>,b=#?b#kqfe>!kwws9,,#booltWqbmpsbqfm`z>![.VB.@lnsbwjaof!#`lmqfobwjlmpkjs#afwtffm\t?,p`qjsw=\t?p`qjsw#?,b=?,oj=?,vo=?,gju=bppl`jbwfg#tjwk#wkf#sqldqbnnjmd#obmdvbdf?,b=?b#kqfe>!kwws9,,?,b=?,oj=?oj#`obpp>!elqn#b`wjlm>!kwws9,,?gju#pwzof>!gjpsobz9wzsf>!wf{w!#mbnf>!r!?wbaof#tjgwk>!233&!#ab`hdqlvmg.slpjwjlm9!#alqgfq>!3!#tjgwk>!qfo>!pklqw`vw#j`lm!#k5=?vo=?oj=?b#kqfe>!##?nfwb#kwws.frvju>!`pp!#nfgjb>!p`qffm!#qfpslmpjaof#elq#wkf#!#wzsf>!bssoj`bwjlm,!#pwzof>!ab`hdqlvmg.kwno8#`kbqpfw>vwe.;!#booltwqbmpsbqfm`z>!pwzofpkffw!#wzsf>!wf\t?nfwb#kwws.frvju>!=?,psbm=?psbm#`obpp>!3!#`foopsb`jmd>!3!=8\t?,p`qjsw=\t?p`qjsw#plnfwjnfp#`boofg#wkfglfp#mlw#mf`fppbqjozElq#nlqf#jmelqnbwjlmbw#wkf#afdjmmjmd#le#?"GL@WZSF#kwno=?kwnosbqwj`vobqoz#jm#wkf#wzsf>!kjggfm!#mbnf>!ibubp`qjsw9uljg+3*8!feef`wjufmfpp#le#wkf#bvwl`lnsofwf>!lee!#dfmfqbooz#`lmpjgfqfg=?jmsvw#wzsf>!wf{w!#!=?,p`qjsw=\t?p`qjswwkqlvdklvw#wkf#tlqog`lnnlm#njp`lm`fswjlmbppl`jbwjlm#tjwk#wkf?,gju=\t?,gju=\t?gju#`gvqjmd#kjp#ojefwjnf/`lqqfpslmgjmd#wl#wkfwzsf>!jnbdf,{.j`lm!#bm#jm`qfbpjmd#mvnafqgjsolnbwj`#qfobwjlmpbqf#lewfm#`lmpjgfqfgnfwb#`kbqpfw>!vwe.;!#?jmsvw#wzsf>!wf{w!#f{bnsofp#jm`ovgf#wkf!=?jnd#pq`>!kwws9,,jsbqwj`jsbwjlm#jm#wkfwkf#fpwbaojpknfmw#le\t?,gju=\t?gju#`obpp>!%bns8maps8%bns8maps8wl#gfwfqnjmf#tkfwkfqrvjwf#gjeefqfmw#eqlnnbqhfg#wkf#afdjmmjmdgjpwbm`f#afwtffm#wkf`lmwqjavwjlmp#wl#wkf`lmeoj`w#afwtffm#wkftjgfoz#`lmpjgfqfg#wltbp#lmf#le#wkf#ejqpwtjwk#ubqzjmd#gfdqffpkbuf#psf`vobwfg#wkbw+gl`vnfmw-dfwFofnfmwsbqwj`jsbwjmd#jm#wkflqjdjmbooz#gfufolsfgfwb#`kbqpfw>!vwe.;!=#wzsf>!wf{w,`pp!#,=\tjmwfq`kbmdfbaoz#tjwknlqf#`olpfoz#qfobwfgpl`jbo#bmg#slojwj`bowkbw#tlvog#lwkfqtjpfsfqsfmgj`vobq#wl#wkfpwzof#wzsf>!wf{w,`ppwzsf>!pvanjw!#mbnf>!ebnjojfp#qfpjgjmd#jmgfufolsjmd#`lvmwqjfp`lnsvwfq#sqldqbnnjmdf`lmlnj`#gfufolsnfmwgfwfqnjmbwjlm#le#wkfelq#nlqf#jmelqnbwjlmlm#pfufqbo#l``bpjlmpslqwvdv/Fp#+Fvqlsfv*VWE.;!#pfwWjnflvw+evm`wjlm+*gjpsobz9jmojmf.aol`h8?jmsvw#wzsf>!pvanjw!#wzsf#>#$wf{w,ibubp`qj?jnd#pq`>!kwws9,,ttt-!#!kwws9,,ttt-t0-lqd,pklqw`vw#j`lm!#kqfe>!!#bvwl`lnsofwf>!lee!#?,b=?,gju=?gju#`obpp>?,b=?,oj=\t?oj#`obpp>!`pp!#wzsf>!wf{w,`pp!#?elqn#b`wjlm>!kwws9,,{w,`pp!#kqfe>!kwws9,,ojmh#qfo>!bowfqmbwf!#\t?p`qjsw#wzsf>!wf{w,#lm`oj`h>!ibubp`qjsw9+mft#Gbwf*-dfwWjnf+*~kfjdkw>!2!#tjgwk>!2!#Sflsof$p#Qfsvaoj`#le##?b#kqfe>!kwws9,,ttt-wf{w.gf`lqbwjlm9vmgfqwkf#afdjmmjmd#le#wkf#?,gju=\t?,gju=\t?,gju=\tfpwbaojpknfmw#le#wkf#?,gju=?,gju=?,gju=?,g ujftslqwxnjm.kfjdkw9\t?p`qjsw#pq`>!kwws9,,lswjlm=?lswjlm#ubovf>lewfm#qfefqqfg#wl#bp#,lswjlm=\t?lswjlm#ubov?"GL@WZSF#kwno=\t?"..XJmwfqmbwjlmbo#Bjqslqw=\t?b#kqfe>!kwws9,,ttt?,b=?b#kqfe>!kwws9,,t\fTL\fT^\fTE\fT^\fUh\fT{\fTN\roI\ro|\roL\ro{\roO\rov\rot\nAOGx\bTA\nzk#+\vUmGx*\fHD\fHS\fH\\\fIa\fHJ\fIk\fHZ\fHM\fHR\fHe\fHD\fH^\fIg\fHM\fHy\fIa\fH[\fIk\fHH\fIa\fH\\\fHp\fHR\fHD\fHy\fHR\fH\\\fIl\fHT\fHn\fH@\fHn\fHK\fHS\fHH\fHT\fIa\fHI\fHR\fHF\fHD\fHR\fHT\fIa\fHY\fIl\fHy\fHR\fH\\\fHT\fHn\fHT\fIa\fHy\fH\\\fHO\fHT\fHR\fHB\fH{\fIa\fH\\\fIl\fHv\fHS\fHs\fIa\fHL\fIg\fHn\fHY\fHS\fHp\fIa\fHr\fHR\fHD\fHi\fHB\fIk\fH\\\fHS\fHy\fHR\fHY\fHS\fHA\fHS\fHD\fIa\fHD\fH{\fHR\fHM\fHS\fHC\fHR\fHm\fHy\fIa\fHC\fIg\fHn\fHy\fHS\fHT\fIm\fH\\\fHy\fIa\fH[\fHR\fHF\fHU\fIm\fHm\fHv\fHH\fIl\fHF\fIa\fH\\\fH@\fHn\fHK\fHD\fHs\fHS\fHF\fIa\fHF\fHO\fIl\fHy\fIa\fH\\\fHS\fHy\fIk\fHs\fHF\fIa\fH\\\fHR\fH\\\fHn\fHA\fHF\fIa\fH\\\fHR\fHF\fIa\fHH\fHB\fHR\fH^\fHS\fHy\fIg\fHn\fH\\\fHG\fHP\fIa\fHH\fHR\fH\\\fHD\fHS\fH\\\fIa\fHB\fHR\fHO\fH^\fHS\fHB\fHS\fHs\fIk\fHMgfp`qjswjlm!#`lmwfmw>!gl`vnfmw-ol`bwjlm-sqlw-dfwFofnfmwpAzWbdMbnf+?"GL@WZSF#kwno=\t?kwno#?nfwb#`kbqpfw>!vwe.;!=9vqo!#`lmwfmw>!kwws9,,-`pp!#qfo>!pwzofpkffw!pwzof#wzsf>!wf{w,`pp!=wzsf>!wf{w,`pp!#kqfe>!t0-lqd,2:::,{kwno!#{nowzsf>!wf{w,ibubp`qjsw!#nfwklg>!dfw!#b`wjlm>!ojmh#qfo>!pwzofpkffw!##>#gl`vnfmw-dfwFofnfmwwzsf>!jnbdf,{.j`lm!#,=`foosbggjmd>!3!#`foops-`pp!#wzsf>!wf{w,`pp!#?,b=?,oj=?oj=?b#kqfe>!!#tjgwk>!2!#kfjdkw>!2!!=?b#kqfe>!kwws9,,ttt-pwzof>!gjpsobz9mlmf8!=bowfqmbwf!#wzsf>!bssoj.,,T0@,,GWG#[KWNO#2-3#foopsb`jmd>!3!#`foosbg#wzsf>!kjggfm!#ubovf>!,b=%maps8?psbm#qlof>!p\t?jmsvw#wzsf>!kjggfm!#obmdvbdf>!IbubP`qjsw!##gl`vnfmw-dfwFofnfmwpAd>!3!#`foopsb`jmd>!3!#zsf>!wf{w,`pp!#nfgjb>!wzsf>$wf{w,ibubp`qjsw$tjwk#wkf#f{`fswjlm#le#zsf>!wf{w,`pp!#qfo>!pw#kfjdkw>!2!#tjgwk>!2!#>$(fm`lgfVQJ@lnslmfmw+?ojmh#qfo>!bowfqmbwf!#\talgz/#wq/#jmsvw/#wf{wnfwb#mbnf>!qlalwp!#`lmnfwklg>!slpw!#b`wjlm>!=\t?b#kqfe>!kwws9,,ttt-`pp!#qfo>!pwzofpkffw!#?,gju=?,gju=?gju#`obppobmdvbdf>!ibubp`qjsw!=bqjb.kjggfm>!wqvf!=.[?qjsw!#wzsf>!wf{w,ibubpo>38~*+*8\t+evm`wjlm+*xab`hdqlvmg.jnbdf9#vqo+,b=?,oj=?oj=?b#kqfe>!k\n\n?oj=?b#kqfe>!kwws9,,bwlq!#bqjb.kjggfm>!wqv=#?b#kqfe>!kwws9,,ttt-obmdvbdf>!ibubp`qjsw!#,lswjlm=\t?lswjlm#ubovf,gju=?,gju=?gju#`obpp>qbwlq!#bqjb.kjggfm>!wqf>+mft#Gbwf*-dfwWjnf+*slqwvdv/Fp#+gl#Aqbpjo*!wf{w,?nfwb#kwws.frvju>!@lmwfqbmpjwjlmbo,,FM!#!kwws9?kwno#{nomp>!kwws9,,ttt.,,T0@,,GWG#[KWNO#2-3#WGWG,{kwno2.wqbmpjwjlmbo,,ttt-t0-lqd,WQ,{kwno2,sf#>#$wf{w,ibubp`qjsw$8?nfwb#mbnf>!gfp`qjswjlmsbqfmwMlgf-jmpfqwAfelqf?jmsvw#wzsf>!kjggfm!#mbip!#wzsf>!wf{w,ibubp`qj+gl`vnfmw*-qfbgz+evm`wjp`qjsw#wzsf>!wf{w,ibubpjnbdf!#`lmwfmw>!kwws9,,VB.@lnsbwjaof!#`lmwfmw>wno8#`kbqpfw>vwe.;!#,=\tojmh#qfo>!pklqw`vw#j`lm?ojmh#qfo>!pwzofpkffw!#?,p`qjsw=\t?p`qjsw#wzsf>>#gl`vnfmw-`qfbwfFofnfm?b#wbqdfw>!\\aobmh!#kqfe>#gl`vnfmw-dfwFofnfmwpAjmsvw#wzsf>!wf{w!#mbnf>b-wzsf#>#$wf{w,ibubp`qjmsvw#wzsf>!kjggfm!#mbnfkwno8#`kbqpfw>vwe.;!#,=gwg!=\t?kwno#{nomp>!kwws.,,T0@,,GWG#KWNO#7-32#WfmwpAzWbdMbnf+$p`qjsw$*jmsvw#wzsf>!kjggfm!#mbn?p`qjsw#wzsf>!wf{w,ibubp!#pwzof>!gjpsobz9mlmf8!=gl`vnfmw-dfwFofnfmwAzJg+>gl`vnfmw-`qfbwfFofnfmw+$#wzsf>$wf{w,ibubp`qjsw$jmsvw#wzsf>!wf{w!#mbnf>!g-dfwFofnfmwpAzWbdMbnf+pmj`bo!#kqfe>!kwws9,,ttt-@,,GWG#KWNO#7-32#Wqbmpjw?pwzof#wzsf>!wf{w,`pp!=\t\t?pwzof#wzsf>!wf{w,`pp!=jlmbo-gwg!=\t?kwno#{nomp>kwws.frvju>!@lmwfmw.Wzsfgjmd>!3!#`foopsb`jmd>!3!kwno8#`kbqpfw>vwe.;!#,=\t#pwzof>!gjpsobz9mlmf8!=??oj=?b#kqfe>!kwws9,,ttt-#wzsf>$wf{w,ibubp`qjsw$=&*&'&^&ˆŸా&ƭ&ƒ&)&^&%&'&‚&P&1&±&3&]&m&u&E&t&C&Ï&V&V&/&>&6&ྲྀ᝼o&p&@&E&M&P&x&@&F&e&Ì&7&:&(&D&0&C&)&.&F&-&1&(&L&F&1ɞ*Ϫ⇳&፲&K&;&)&E&H&P&0&?&9&V&&-&v&a&,&E&)&?&=&'&'&B&മ&ԃ&̖*&*8&%&%&&&%,)&š&>&†&7&]&F&2&>&J&6&n&2&%&?&Ž&2&6&J&g&-&0&,&*&J&*&O&)&6&(&<&B&N&.&P&@&2&.&W&M&%Լ„(,(<&,&Ϛ&ᣇ&-&,(%&(&%&(Ļ0&X&D&&j&'&J&(&.&B&3&Z&R&h&3&E&E&<Æ-͠ỳ&%8?&@&,&Z&@&0&J&,&^&x&_&6&C&6&Cܬ⨥&f&-&-&-&-&,&J&2&8&z&8&C&Y&8&-&d&ṸÌ-&7&1&F&7&t&W&7&I&.&.&^&=ྜ᧓&8(>&/&/&ݻ')'ၥ')'%@/&0&%оী*&*@&CԽהɴ׫4෗ܚӑ6඄&/Ÿ̃Z&*%ɆϿ&Ĵ&1¨ҴŴ",g,"AAAAKKLLKKKKKJJIHHIHHGGFF");!function setData(e,t){const n=m,a=p;for(let e=0;e=0)return t;e.runningState>=0&&(e.runningState=t);throw new Error("Brotli error code: "+t)}return function decode(e,t){let n=new State;n.input=new InputStream(e);initState(n);if(t){let e=t.customDictionary;e&&function attachDictionaryChunk(e,t){if(1!==e.runningState)return makeError(e,-24);if(0===e.cdNumChunks){e.cdChunks=new Array(16);e.cdChunkOffsets=new Int32Array(16);e.cdBlockBits=-1}if(15===e.cdNumChunks)return makeError(e,-27);e.cdChunks[e.cdNumChunks]=t;e.cdNumChunks++;e.cdTotalSize+=t.length;e.cdChunkOffsets[e.cdNumChunks]=e.cdTotalSize;return 0}(n,e)}let a=0,s=[];for(;;){let e=new Int8Array(16384);s.push(e);n.output=e;n.outputOffset=0;n.outputLength=16384;n.outputUsed=0;decompress(n);a+=n.outputUsed;if(n.outputUsed<16384)break}!function close(e){if(0===e.runningState)return makeError(e,-25);e.runningState>0&&(e.runningState=11);return 0}(n);!function closeInput(e){e.input=new InputStream(new Int8Array(0))}(n);let r=new Int8Array(a),i=0;for(let e=0;e{throw t},n=import.meta.url;try{new URL(".",n).href}catch{}0;console.log.bind(console);var a,s,r,i,o,l=console.error.bind(console),f=!1,c=!1;function updateMemoryViews(){var e=u.buffer;i=new Int8Array(e);new Int16Array(e);o=new Uint8Array(e);new Uint16Array(e);new Int32Array(e);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 h,u,callRuntimeCallbacks=e=>{for(;e.length>0;)e.shift()(t)},m=[],addOnPostRun=e=>m.push(e),p=[],addOnPreRun=e=>p.push(e),d=!0,g=0,b={},handleException=e=>{if(e instanceof ExitStatus||"unwind"==e)return a;quit_(0,e)},keepRuntimeAlive=()=>d||g>0,_proc_exit=e=>{a=e;if(!keepRuntimeAlive()){t.onExit?.(e);f=!0}quit_(0,new ExitStatus(e))},_exit=(e,t)=>{a=e;_proc_exit(e)},callUserCallback=e=>{if(!f)try{return e()}catch(e){handleException(e)}finally{(()=>{if(!keepRuntimeAlive())try{_exit(a)}catch(e){handleException(e)}})()}},alignMemory=(e,t)=>Math.ceil(e/t)*t,growMemory=e=>{var t=(e-u.buffer.byteLength+65535)/65536|0;try{u.grow(t);updateMemoryViews();return 1}catch(e){}};t.noExitRuntime&&(d=t.noExitRuntime);t.print&&t.print;t.printErr&&(l=t.printErr);t.wasmBinary&&t.wasmBinary;t.arguments&&t.arguments;t.thisProgram&&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)=>{i.set(e,t)};var w,j={e:()=>function abort(e){t.onAbort?.(e);l(e="Aborted("+e+")");f=!0;e+=". Build with -sASSERTIONS for more info.";var n=new WebAssembly.RuntimeError(e);r?.(n);throw n}(""),b:()=>{d=!1;g=0},c:(e,t)=>{if(b[e]){clearTimeout(b[e].id);delete b[e]}if(!t)return 0;var n=setTimeout(()=>{delete b[e];callUserCallback(()=>h(e,performance.now()))},t);b[e]={id:n,timeout_ms:t};return 0},g:function _createImageData(e){t.imageData=new Uint8Array(e)},d:e=>{var t=o.length,n=2147483648;if((e>>>=0)>n)return!1;for(var a=1;a<=4;a*=2){var s=t*(1+.2/a);s=Math.min(s,e+100663296);var r=Math.min(n,alignMemory(Math.max(e,s),65536));if(growMemory(r))return!0}return!1},a:_proc_exit,h:function _setImageData(e,n,a,s){if(a===n){t.imageData=new Uint8ClampedArray(o.subarray(e,e+a*s));return}const r=n*s,i=t.imageData=new Uint8ClampedArray(r);for(let t=e,s=0;s{t.instantiateWasm(e,(e,t)=>{n(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(p)}();function doRun(){t.calledRun=!0;if(!f){!function initRuntime(){c=!0;w.j()}();s?.(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(m)}()}}if(t.setStatus){t.setStatus("Running...");setTimeout(()=>{setTimeout(()=>t.setStatus(""),1);doRun()},1)}else doRun()}();return c?t:new Promise((e,t)=>{s=e;r=t})};class WasmImage{static#K=null;static#G=new Set;static#T=!0;static#V=!0;static#R=null;#$=null;#Y=null;_filename=null;_noWasmFilename=null;static setOptions({handler:e,useWasm:t,useWorkerFetch:n,wasmUrl:a}){WasmImage.#T=t;WasmImage.#V=n;WasmImage.#R=a;n||(WasmImage.#K=e)}static get instance(){unreachable("Abstract getter `instance` accessed")}static cleanup(){for(const e of WasmImage.#G)e.#Y=null}constructor(e=!1){e&&WasmImage.#G.add(this)}async#J(e){let t=null;try{t=(await import( +/*webpackIgnore: true*/ +/*@vite-ignore*/ +`${WasmImage.#R}${this._noWasmFilename}`)).default()}catch(e){warn(`#getJsModule: ${e}`)}e(t)}async#Q(e,t,n){try{this.#$||(WasmImage.#V?this.#$=await fetchBinaryData(`${WasmImage.#R}${this._filename}`):this.#$=await WasmImage.#K.sendWithPromise("FetchBinaryData",{kind:"wasmUrl",filename:this._filename}));return n((await WebAssembly.instantiate(this.#$,t)).instance)}catch(t){warn(`#instantiateWasm: ${t}`);this.#J(e);return null}}_getModule(e){if(!this.#Y){const{promise:t,resolve:n}=Promise.withResolvers(),a=[t];WasmImage.#T?a.push(e({warn,instantiateWasm:this.#Q.bind(this,n)})):this.#J(n);this.#Y=Promise.race(a)}return this.#Y}async decode(e,t){unreachable("Abstract method `decode` called")}}class Jbig2Error extends an{constructor(e){super(e,"Jbig2Error")}}class JBig2CCITTFaxImage extends WasmImage{_filename="jbig2.wasm";_noWasmFilename="jbig2_nowasm_fallback.js";static get instance(){return shadow(this,"instance",new JBig2CCITTFaxImage(!0))}async decode(e,t,n,a,s){const r=await this._getModule(ta);if(!r)throw new Jbig2Error("JBig2 failed to initialize");let i,o;try{const l=e.length;i=r._malloc(l);r.writeArrayToMemory(e,i);if(s)r._ccitt_decode(i,l,t,n,s.K,s.EndOfLine?1:0,s.EncodedByteAlign?1:0,s.BlackIs1?1:0,s.Columns,s.Rows);else{const e=a?a.length:0;if(e>0){o=r._malloc(e);r.writeArrayToMemory(a,o)}r._jbig2_decode(i,l,t,n,o,e)}if(!r.imageData)throw new Jbig2Error("Unknown error");const{imageData:f}=r;r.imageData=null;return f}finally{i&&r._free(i);o&&r._free(o)}}}class CCITTFaxStream extends DecodeStream{constructor(e,t,n){super(t);this.stream=e;this.maybeLength=t;this.dict=e.dict;n instanceof Dict||(n=Dict.empty);this.params={K:n.get("K")||0,EndOfLine:!!n.get("EndOfLine"),EncodedByteAlign:!!n.get("EncodedByteAlign"),Columns:n.get("Columns")||1728,Rows:n.get("Rows")||0,EndOfBlock:!!(n.get("EndOfBlock")??1),BlackIs1:!!n.get("BlackIs1")}}get bytes(){return shadow(this,"bytes",this.stream.getBytes(this.maybeLength))}get isImageStream(){return!0}get isAsyncDecoder(){return!0}async decodeImage(e,t,n){if(this.eof)return this.buffer;e??=this.stream.isAsync&&await this.stream.asyncGetBytes()||this.bytes;this.buffer=await JBig2CCITTFaxImage.instance.decode(e,this.dict.get("W","Width"),this.dict.get("H","Height"),null,this.params);this.bufferLength=this.buffer.length;this.eof=!0;return this.buffer}}const na=new Int32Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),aa=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]),sa=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]),ra=[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],ia=[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{#X=!0;constructor(e,t){super(t);this.stream=e;this.dict=e.dict;const n=e.getByte(),a=e.getByte();if(-1===n||-1===a)throw new FormatError(`Invalid header in flate stream: ${n}, ${a}`);if(8!=(15&n))throw new FormatError(`Unknown compression method in flate stream: ${n}, ${a}`);if(((n<<8)+a)%31!=0)throw new FormatError(`Bad FCHECK in flate stream: ${n}, ${a}`);if(32&a)throw new FormatError(`FDICT bit set in flate stream: ${n}, ${a}`);this.codeSize=0;this.codeBuf=0}async getImageData(e,t){const n=await this.asyncGetBytes();return n?n.length<=e?n:n.subarray(0,e):this.getBytes(e)}async asyncGetBytes(){const{decompressed:e,compressed:t}=await this.asyncGetBytesFromDecompressionStream("deflate");if(e)return e;this.#X=!1;this.stream=new Stream(t,2,t.length,this.stream.dict);this.reset();return null}get isAsync(){return this.#X}getBits(e){const t=this.stream;let n,a=this.codeSize,s=this.codeBuf;for(;a>e;this.codeSize=a-=e;return n}getCode(e){const t=this.stream,n=e[0],a=e[1];let s,r=this.codeSize,i=this.codeBuf;for(;r>16,f=65535&o;if(l<1||r>l;this.codeSize=r-l;return f}generateHuffmanTable(e){const t=e.length;let n,a=0;for(n=0;na&&(a=e[n]);const s=1<>=1}for(n=e;n>=1;if(0===t){let t;if(-1===(t=a.getByte())){this.#Z("Bad block header in flate stream");return}let n=t;if(-1===(t=a.getByte())){this.#Z("Bad block header in flate stream");return}n|=t<<8;if(-1===(t=a.getByte())){this.#Z("Bad block header in flate stream");return}let s=t;if(-1===(t=a.getByte())){this.#Z("Bad block header in flate stream");return}s|=t<<8;if(s!==(65535&~n)&&(0!==n||0!==s))throw new FormatError("Bad uncompressed block length in flate stream");this.codeBuf=0;this.codeSize=0;const r=this.bufferLength,i=r+n;e=this.ensureBuffer(i);this.bufferLength=i;if(0===n)-1===a.peekByte()&&(this.eof=!0);else{const t=a.getBytes(n);e.set(t,r);t.length0;)c[o++]=m}s=this.generateHuffmanTable(c.subarray(0,e));r=this.generateHuffmanTable(c.subarray(e,f))}}e=this.buffer;let i=e?e.length:0,o=this.bufferLength;for(;;){let t=this.getCode(s);if(t<256){if(o+1>=i){e=this.ensureBuffer(o+1);i=e.length}e[o++]=t;continue}if(256===t){this.bufferLength=o;return}t-=257;t=aa[t];let a=t>>16;a>0&&(a=this.getBits(a));n=(65535&t)+a;t=this.getCode(r);t=sa[t];a=t>>16;a>0&&(a=this.getBits(a));const l=(65535&t)+a;if(o+n>=i){e=this.ensureBuffer(o+n);i=e.length}for(let t=0;t=9&&151===e[0]&&74===e[1]&&66===e[2]&&50===e[3]&&13===e[4]&&10===e[5]&&26===e[6]&&10===e[7]){const t=2&e[8]?9:13;return e.subarray(t)}return e}async decodeImage(e,t,n){if(this.eof)return this.buffer;e=Jbig2Stream.stripFileHeader(e||this.bytes);let a=null;if(this.params instanceof Dict){const e=this.params.get("JBIG2Globals");e instanceof BaseStream&&(a=Jbig2Stream.stripFileHeader(e.getBytes()))}this.buffer=await JBig2CCITTFaxImage.instance.decode(e,this.dict.get("Width"),this.dict.get("Height"),a);this.bufferLength=this.buffer.length;this.eof=!0;return this.buffer}get canAsyncDecodeImageFromBuffer(){return this.stream.isAsync}}const oa=async function OpenJPEG(e={}){var t=e,n="./this.program",quit_=(e,t)=>{throw t},a=import.meta.url;try{new URL(".",a).href}catch{}0;var s,r,i,o,l,f,c,h=console.log.bind(console),u=console.error.bind(console),m=!1,p=!1;function updateMemoryViews(){var e=g.buffer;l=new Int8Array(e);new Int16Array(e);c=new Uint8Array(e);new Uint16Array(e);o=new Int32Array(e);f=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 d,g,callRuntimeCallbacks=e=>{for(;e.length>0;)e.shift()(t)},b=[],addOnPostRun=e=>b.push(e),w=[],addOnPreRun=e=>w.push(e),j=!0,k=0,y={},handleException=e=>{if(e instanceof ExitStatus||"unwind"==e)return s;quit_(0,e)},keepRuntimeAlive=()=>j||k>0,_proc_exit=e=>{s=e;if(!keepRuntimeAlive()){t.onExit?.(e);m=!0}quit_(0,new ExitStatus(e))},_exit=(e,t)=>{s=e;_proc_exit(e)},callUserCallback=e=>{if(!m)try{return e()}catch(e){handleException(e)}finally{(()=>{if(!keepRuntimeAlive())try{_exit(s)}catch(e){handleException(e)}})()}},alignMemory=(e,t)=>Math.ceil(e/t)*t,growMemory=e=>{var t=(e-g.buffer.byteLength+65535)/65536|0;try{g.grow(t);updateMemoryViews();return 1}catch(e){}},q={},getEnvStrings=()=>{if(!getEnvStrings.strings){var e={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(globalThis.navigator?.language??"C").replace("-","_")+".UTF-8",_:n||"./this.program"};for(var t in q)void 0===q[t]?delete e[t]:e[t]=q[t];var a=[];for(var t in e)a.push(`${t}=${e[t]}`);getEnvStrings.strings=a}return getEnvStrings.strings},stringToUTF8=(e,t,n)=>((e,t,n,a)=>{if(!(a>0))return 0;for(var s=n,r=n+a-1,i=0;i=r)break;t[n++]=o}else if(o<=2047){if(n+1>=r)break;t[n++]=192|o>>6;t[n++]=128|63&o}else if(o<=65535){if(n+2>=r)break;t[n++]=224|o>>12;t[n++]=128|o>>6&63;t[n++]=128|63&o}else{if(n+3>=r)break;t[n++]=240|o>>18;t[n++]=128|o>>12&63;t[n++]=128|o>>6&63;t[n++]=128|63&o;i++}}t[n]=0;return n-s})(e,c,t,n),lengthBytesUTF8=e=>{for(var t=0,n=0;n=55296&&a<=57343){t+=4;++n}else t+=3}return t},v=[null,[],[]],S=globalThis.TextDecoder&&new TextDecoder,UTF8ArrayToString=(e,t=0,n,a)=>{var s=((e,t,n,a)=>{var s=t+n;if(a)return s;for(;e[t]&&!(t>=s);)++t;return t})(e,t,n,a);if(s-t>16&&e.buffer&&S)return S.decode(e.subarray(t,s));for(var r="";t>10,56320|1023&f)}}else r+=String.fromCharCode((31&i)<<6|o)}else r+=String.fromCharCode(i)}return r},printChar=(e,t)=>{var n=v[e];if(0===t||10===t){(1===e?h:u)(UTF8ArrayToString(n));n.length=0}else n.push(t)},UTF8ToString=(e,t,n)=>e?UTF8ArrayToString(c,e,t,n):"";t.noExitRuntime&&(j=t.noExitRuntime);t.print&&(h=t.print);t.printErr&&(u=t.printErr);t.wasmBinary&&t.wasmBinary;t.arguments&&t.arguments;t.thisProgram&&(n=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)=>{l.set(e,t)};var x,C={m:()=>function abort(e){t.onAbort?.(e);u(e=`Aborted(${e})`);m=!0;e+=". Build with -sASSERTIONS for more info.";var n=new WebAssembly.RuntimeError(e);i?.(n);throw n}(""),l:()=>{j=!1;k=0},i:(e,t)=>{if(y[e]){clearTimeout(y[e].id);delete y[e]}if(!t)return 0;var n=setTimeout(()=>{delete y[e];callUserCallback(()=>d(e,performance.now()))},t);y[e]={id:n,timeout_ms:t};return 0},f:function _copy_pixels_1(e,n){e>>=2;const a=t.imageData=new Uint8ClampedArray(n),s=o.subarray(e,e+n);a.set(s)},e:function _copy_pixels_3(e,n,a,s){e>>=2;n>>=2;a>>=2;const r=t.imageData=new Uint8ClampedArray(3*s),i=o.subarray(e,e+s),l=o.subarray(n,n+s),f=o.subarray(a,a+s);for(let e=0;e>=2;n>>=2;a>>=2;s>>=2;const i=t.imageData=new Uint8ClampedArray(4*r),l=o.subarray(e,e+r),f=o.subarray(n,n+r),c=o.subarray(a,a+r),h=o.subarray(s,s+r);for(let e=0;e{var t=c.length,n=2147483648;if((e>>>=0)>n)return!1;for(var a=1;a<=4;a*=2){var s=t*(1+.2/a);s=Math.min(s,e+100663296);var r=Math.min(n,alignMemory(Math.max(e,s),65536));if(growMemory(r))return!0}return!1},o:(e,t)=>{var n=0,a=0;for(var s of getEnvStrings()){var r=t+n;f[e+a>>2]=r;n+=stringToUTF8(s,r,1/0)+1;a+=4}return 0},p:(e,t)=>{var n=getEnvStrings();f[e>>2]=n.length;var a=0;for(var s of n)a+=lengthBytesUTF8(s)+1;f[t>>2]=a;return 0},n:function _fd_seek(e,t,n,a){t=(s=t)<-9007199254740992||s>9007199254740992?NaN:Number(s);var s;return 70},b:(e,t,n,a)=>{for(var s=0,r=0;r>2],o=f[t+4>>2];t+=8;for(var l=0;l>2]=s;return 0},q:function _gray_to_rgba(e,n){e>>=2;const a=t.imageData=new Uint8ClampedArray(4*n),s=o.subarray(e,e+n);for(let e=0;e>=2;n>>=2;const s=t.imageData=new Uint8ClampedArray(4*a),r=o.subarray(e,e+a),i=o.subarray(n,n+a);for(let e=0;e>=2;n>>=2;a>>=2;const r=t.imageData=new Uint8ClampedArray(4*s),i=o.subarray(e,e+s),l=o.subarray(n,n+s),f=o.subarray(a,a+s);for(let e=0;e{t.instantiateWasm(e,(e,t)=>{n(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(w)}();function doRun(){t.calledRun=!0;if(!m){!function initRuntime(){p=!0;x.s()}();r?.(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)=>{r=e;i=t})};class JpxError extends an{constructor(e){super(e,"JpxError")}}class JpxImage extends WasmImage{_filename="openjpeg.wasm";_noWasmFilename="openjpeg_nowasm_fallback.js";static get instance(){return shadow(this,"instance",new JpxImage(!0))}async decode(e,{numComponents:t=4,isIndexedColormap:n=!1,smaskInData:a=!1,reducePower:s=0}={}){const r=await this._getModule(oa);if(!r)throw new JpxError("OpenJPEG failed to initialize");let i;try{const o=e.length;i=r._malloc(o);r.writeArrayToMemory(e,i);if(r._jp2_decode(i,o,t>0?t:0,!!n,!!a,s)){const{errorMessages:e}=r;if(e){delete r.errorMessages;throw new JpxError(e)}throw new JpxError("Unknown error")}const{imageData:l}=r;r.imageData=null;return l}finally{i&&r._free(i)}}static parseImageProperties(e){let t=e.getByte();for(;t>=0;){const n=t;t=e.getByte();if(65361===(n<<8|t)){e.skip(4);const t=e.getInt32()>>>0,n=e.getInt32()>>>0,a=e.getInt32()>>>0,s=e.getInt32()>>>0;e.skip(16);return{width:t-a,height:n-s,bitsPerComponent:8,componentsCount:e.getUint16()}}}throw new JpxError("No size marker found in JPX stream")}}class JpxStream extends DecodeStream{constructor(e,t){super(t);this.stream=e;this.dict=e.dict;this.maybeLength=t}get bytes(){return shadow(this,"bytes",this.stream.getBytes(this.maybeLength))}ensureBuffer(e){}get isAsyncDecoder(){return!0}async decodeImage(e,t,n){if(this.eof)return this.buffer;e||=this.bytes;this.buffer=await JpxImage.instance.decode(e,n);this.bufferLength=this.buffer.length;this.eof=!0;return this.buffer}get canAsyncDecodeImageFromBuffer(){return this.stream.isAsync}get isImageStream(){return!0}}class LZWStream extends DecodeStream{constructor(e,t,n){super(t);this.stream=e;this.dict=e.dict;this.cachedData=0;this.bitsCached=0;const a=4096,s={earlyChange:n,codeLength:9,nextCode:258,dictionaryValues:new Uint8Array(a),dictionaryLengths:new Uint16Array(a),dictionaryPrevCodes:new Uint16Array(a),currentSequence:new Uint8Array(a),currentSequenceLength:0};for(let e=0;e<256;++e){s.dictionaryValues[e]=e;s.dictionaryLengths[e]=1}this.lzwState=s}readBits(e){let t=this.bitsCached,n=this.cachedData;for(;t>>t&(1<0;if(e<256){u[0]=e;m=1}else{if(!(e>=258)){if(256===e){c=9;i=258;m=0;continue}this.eof=!0;delete this.lzwState;break}if(e=0;t--){u[t]=o[n];n=f[n]}}else u[m++]=u[0]}if(s){f[i]=h;l[i]=l[h]+1;o[i]=u[0];i++;c=i+r&i+r-1?c:0|Math.min(Math.log(i+r)/.6931471805599453+1,12)}h=e;p+=m;if(a15))throw new FormatError(`Unsupported predictor: ${a}`);this.readBlock=2===a?this.readBlockTiff:this.readBlockPng;this.stream=e;this.dict=e.dict;const s=this.colors=n.get("Colors")||1,r=this.bits=n.get("BPC","BitsPerComponent")||8,i=this.columns=n.get("Columns")||1;this.pixBytes=s*r+7>>3;this.rowBytes=i*s*r+7>>3;return this}readBlockTiff(){const e=this.rowBytes,t=this.bufferLength,n=this.ensureBuffer(t+e),a=this.bits,s=this.colors,r=this.stream.getBytes(e);this.eof=!r.length;if(this.eof)return;let i,o=0,l=0,f=0,c=0,h=t;if(1===a&&1===s)for(i=0;i>1;e^=e>>2;e^=e>>4;o=(1&e)<<7;n[h++]=e}else if(8===a){for(i=0;i>8&255;n[h++]=255&e}}else{const e=new Uint8Array(s+1),h=(1<>f-a)&h;f-=a;l=l<=8){n[m++]=l>>c-8&255;c-=8}}c>0&&(n[m++]=(l<<8-c)+(o&(1<<8-c)-1))}this.bufferLength+=e}readBlockPng(){const e=this.rowBytes,t=this.pixBytes,n=this.stream.getByte(),a=this.stream.getBytes(e);this.eof=!a.length;if(this.eof)return;const s=this.bufferLength,r=this.ensureBuffer(s+e);let i=r.subarray(s-e,s);0===i.length&&(i=new Uint8Array(e));let o,l,f,c=s;switch(n){case 0:for(o=0;o>1)+a[o];for(;o>1)+a[o]&255;c++}break;case 4:for(o=0;o0){const e=this.stream.getBytes(a);t.set(e,n);n+=a}}else{a=257-a;t=this.ensureBuffer(n+a+1);t.fill(e[1],n,n+a);n+=a}this.bufferLength=n}}class Parser{#ee=null;#te=0;constructor({lexer:e,xref:t,allowStreams:n=!1,recoveryMode:a=!1}){this.lexer=e;this.xref=t;this.allowStreams=n;this.recoveryMode=a;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 n=[];for(;!isCmd(this.buf1,"]")&&this.buf1!==ln;)n.push(this.getObj(e));if(this.buf1===ln){if(this.recoveryMode)return n;throw new ParserEOFException("End of file inside array.")}this.shift();return n;case"<<":const a=new Dict(this.xref);for(;!isCmd(this.buf1,">>")&&this.buf1!==ln;){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===ln)break;a.set(t,this.getObj(e))}if(this.buf1===ln){if(this.recoveryMode)return a;throw new ParserEOFException("End of file inside dictionary.")}if(isCmd(this.buf2,"stream"))return this.allowStreams?this.makeStream(a,e):a;this.shift();return a;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,n=e.pos;let a,s,r=0;for(;-1!==(a=e.getByte());)if(0===r)r=69===a?1:0;else if(1===r)r=73===a?2:0;else if(32===a||10===a||13===a){s=e.pos;const n=e.peekBytes(15),i=n.length;if(0===i)break;for(let e=0;e127))){r=0;break}}if(2!==r)continue;if(!t){warn("findDefaultInlineStreamEnd - `lexer.knownCommands` is undefined.");continue}const o=new Lexer(new Stream(e.peekBytes(75)),t);o._hexStringWarn=()=>{};let l=0;for(;;){const e=o.getObj();if(e===ln){r=0;break}if(e instanceof Cmd){const n=t[e.cmd];if(!n){r=0;break}if(n.variableArgs?l<=n.numArgs:l===n.numArgs)break;l=0;continue}l++}if(2===r)break}else r=0;if(-1===a){warn("findDefaultInlineStreamEnd: Reached the end of the stream without finding a valid EI marker");if(s){warn('... trying to recover by using the last "EI" occurrence.');e.skip(-(e.pos-s))}}let i=4;e.skip(-i);a=e.peekByte();e.skip(i);isWhiteSpace(a)||i--;return e.pos-i-n}findDCTDecodeInlineStreamEnd(e){const t=e.pos;let n,a,s=!1;for(;-1!==(n=e.getByte());)if(255===n){switch(e.getByte()){case 0:break;case 255:e.skip(-1);break;case 217:s=!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:a=e.getUint16();a>2?e.skip(a-2):e.skip(-2)}if(s)break}const r=e.pos-t;if(-1===n){warn("Inline DCTDecode image stream: EOI marker not found, searching for /EI/ instead.");e.skip(-r);return this.findDefaultInlineStreamEnd(e)}this.inlineStreamSkipEI(e);return r}findASCII85DecodeInlineStreamEnd(e){const t=e.pos;let n;for(;-1!==(n=e.getByte());)if(126===n){const t=e.pos;n=e.peekByte();for(;isWhiteSpace(n);){e.skip();n=e.peekByte()}if(62===n){e.skip();break}if(e.pos>t){const t=e.peekBytes(2);if(69===t[0]&&73===t[1])break}}const a=e.pos-t;if(-1===n){warn("Inline ASCII85Decode image stream: EOD marker not found, searching for /EI/ instead.");e.skip(-a);return this.findDefaultInlineStreamEnd(e)}this.inlineStreamSkipEI(e);return a}findASCIIHexDecodeInlineStreamEnd(e){const t=e.pos;let n;for(;-1!==(n=e.getByte())&&62!==n;);const a=e.pos-t;if(-1===n){warn("Inline ASCIIHexDecode image stream: EOD marker not found, searching for /EI/ instead.");e.skip(-a);return this.findDefaultInlineStreamEnd(e)}this.inlineStreamSkipEI(e);return a}inlineStreamSkipEI(e){let t,n=0;for(;-1!==(t=e.getByte());)if(0===n)n=69===t?1:0;else if(1===n)n=73===t?2:0;else if(2===n)break}makeInlineImage(e){const t=this.lexer,n=t.stream,a=new Dict(this.xref);let s;for(;!isCmd(this.buf1,"ID")&&this.buf1!==ln;){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===ln)break;a.set(t,this.getObj(e))}-1!==t.beginInlineImagePos&&(s=n.pos-t.beginInlineImagePos);const r=a.get("F","Filter");let i;if(r instanceof Name)i=r.name;else if(Array.isArray(r)){const e=this.#ne(r[0]);e instanceof Name&&(i=e.name)}const o=n.pos;let l,f;switch(i){case"DCT":case"DCTDecode":l=this.findDCTDecodeInlineStreamEnd(n);break;case"A85":case"ASCII85Decode":l=this.findASCII85DecodeInlineStreamEnd(n);break;case"AHx":case"ASCIIHexDecode":l=this.findASCIIHexDecodeInlineStreamEnd(n);break;default:l=this.findDefaultInlineStreamEnd(n)}if(l<1e3&&s>0){const e=n.pos;n.pos=t.beginInlineImagePos;f=function getInlineImageCacheKey(e){const t=[],n=e.length;let a=0;for(;aisName(this.#ne(e),"Crypt")):isName(e,"Crypt")}#se(e){const{stream:t}=this.lexer;t.pos=e;const n=new Uint8Array([101,110,100]),a=n.length,s=[new Uint8Array([115,116,114,101,97,109]),new Uint8Array([115,116,101,97,109]),new Uint8Array([115,116,114,101,97])],r=9-a;for(;t.pos=a){let a=!1;for(const e of s){const t=e.length;let s=0;for(;s=r){a=!0;break}if(s>=t){if(isWhiteSpace(i[l+o+s])){info(`Found "${bytesToString([...n,...e])}" when searching for endstream command.`);a=!0}break}}if(a){t.pos+=l;return t.pos-e}}l++}t.pos+=o}return-1}makeStream(e,t){const n=this.lexer;let a=n.stream;n.skipToNextLine();const s=a.pos-1;let r=e.get("Length");if(!Number.isInteger(r)){info(`Bad length "${r&&r.toString()}" in stream.`);r=0}a.pos=s+r;n.nextChar();if(this.tryShift()&&isCmd(this.buf2,"endstream"))this.shift();else{r=this.#se(s);if(r<0)throw new FormatError("Missing endstream command.");n.nextChar();this.shift();this.shift()}this.shift();a=a.makeSubStream(s,r,e);const i=e.get("F","Filter");t&&!this.#ae(i)&&(a=t.createStream(a,r));a=this.filter(a,e,r,t);a.dict=e;return a}filter(e,t,n,a=null){let s=t.get("F","Filter"),r=t.get("DP","DecodeParms");if(s instanceof Name){Array.isArray(r)&&warn("/DecodeParms should not be an Array, when /Filter is a Name.");return this.makeFilter(e,s.name,n,r,a)}let i=n;if(Array.isArray(s)){const t=s,n=r;for(let o=0,l=t.length;o=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=0,n=1;if(45===e){n=-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){t=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 a=e-48;for(;(e=this.nextChar())>=0;)if(e>=48&&e<=57){0!==t&&(t*=10);a=10*a+(e-48)}else if(46===e){if(0!==t)break;t=1}else{if(45!==e)break;warn("Badly formatted number: minus sign in the middle")}0!==t&&(a/=t);return n*a}getString(){let e=1,t=!1;const n=this.strBuf;n.length=0;let a=this.nextChar();for(;;){let s=!1;switch(0|a){case-1:warn("Unterminated string");t=!0;break;case 40:++e;n.push("(");break;case 41:if(0===--e){this.nextChar();t=!0}else n.push(")");break;case 92:a=this.nextChar();switch(a){case-1:warn("Unterminated string");t=!0;break;case 110:n.push("\n");break;case 114:n.push("\r");break;case 116:n.push("\t");break;case 98:n.push("\b");break;case 102:n.push("\f");break;case 92:case 40:case 41:n.push(String.fromCharCode(a));break;case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:let e=15&a;a=this.nextChar();s=!0;if(a>=48&&a<=55){e=(e<<3)+(15&a);a=this.nextChar();if(a>=48&&a<=55){s=!1;e=(e<<3)+(15&a)}}n.push(String.fromCharCode(e));break;case 13:10===this.peekChar()&&this.nextChar();break;case 10:break;default:n.push(String.fromCharCode(a))}break;default:n.push(String.fromCharCode(a))}if(t)break;s||(a=this.nextChar())}return n.join("")}getName(){let e,t;const n=this.strBuf;n.length=0;for(;(e=this.nextChar())>=0&&!la[e];)if(35===e){e=this.nextChar();if(la[e]){warn("Lexer_getName: NUMBER SIGN (#) should be followed by a hexadecimal number.");n.push("#");break}const a=toHexDigit(e);if(-1!==a){t=e;e=this.nextChar();const s=toHexDigit(e);if(-1===s){warn(`Lexer_getName: Illegal digit (${String.fromCharCode(e)}) in hexadecimal number.`);n.push("#",String.fromCharCode(t));if(la[e])break;n.push(String.fromCharCode(e));continue}n.push(String.fromCharCode(a<<4|s))}else n.push("#",String.fromCharCode(e))}else n.push(String.fromCharCode(e));n.length>127&&warn(`Name token is longer than allowed by the spec: ${n.length}`);return Name.get(n.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,n=-1,a=-1;this._hexStringNumWarn=0;for(;;){if(t<0){warn("Unterminated hex string");break}if(62===t){this.nextChar();break}if(1!==la[t]){a=toHexDigit(t);if(-1===a)this._hexStringWarn(t);else if(-1===n)n=a;else{e.push(String.fromCharCode(n<<4|a));n=-1}t=this.nextChar()}else t=this.nextChar()}-1!==n&&e.push(String.fromCharCode(n<<4));return e.join("")}getObj(){let e=!1,t=this.currentChar;for(;;){if(t<0)return ln;if(e)10!==t&&13!==t||(e=!1);else if(37===t)e=!0;else if(1!==la[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 n=String.fromCharCode(t);if(t<32||t>127){const e=this.peekChar();if(e>=32&&e<=127){this.nextChar();return Cmd.get(n)}}const a=this.knownCommands;let s=void 0!==a?.[n];for(;(t=this.nextChar())>=0&&!la[t];){const e=n+String.fromCharCode(t);if(s&&void 0===a[e])break;if(128===n.length)throw new FormatError(`Command token too long: ${n.length}`);n=e;s=void 0!==a?.[n]}if("true"===n)return!0;if("false"===n)return!1;if("null"===n)return null;"BI"===n&&(this.beginInlineImagePos=this.stream.pos);return Cmd.get(n)}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,n=!1){const a=e.get(t);if(Number.isInteger(a)&&(n?a>=0:a>0))return a;throw new Error(`The "${t}" parameter in the linearization dictionary is invalid.`)}const t=new Parser({lexer:new Lexer(e),xref:null}),n=t.getObj(),a=t.getObj(),s=t.getObj(),r=t.getObj();let i,o;if(!(Number.isInteger(n)&&Number.isInteger(a)&&isCmd(s,"obj")&&r instanceof Dict&&"number"==typeof(i=r.get("Linearized"))&&i>0))return null;if((o=getInt(r,"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 n;if(Array.isArray(t)&&(2===(n=t.length)||4===n)){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.")}(r),objectNumberFirst:getInt(r,"O"),endFirst:getInt(r,"E"),numPages:getInt(r,"N"),mainXRefEntriesOffset:getInt(r,"T"),pageFirst:r.has("P")?getInt(r,"P",!0):0}}}const fa=["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"],ca=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,n){this.codespaceRanges[e-1].push(t,n);this.numCodespaceRanges++}mapCidRange(e,t,n){if(t-e>ca)throw new Error("mapCidRange - ignoring data above MAX_MAP_RANGE.");for(;e<=t;)this._map[e++]=n++}mapBfRange(e,t,n){if(t-e>ca)throw new Error("mapBfRange - ignoring data above MAX_MAP_RANGE.");const a=n.length-1;for(;e<=t;){this._map[e++]=n;const t=n.charCodeAt(a)+1;t>255?n=n.substring(0,a-1)+String.fromCharCode(n.charCodeAt(a-1)+1)+"\0":n=n.substring(0,a)+String.fromCharCode(t)}}mapBfRangeToArray(e,t,n){if(t-e>ca)throw new Error("mapBfRangeToArray - ignoring data above MAX_MAP_RANGE.");const a=n.length;let s=0;for(;e<=t&&s>>0;const i=s[r];for(let e=0,t=i.length;e=t&&a<=s){n.charcode=a;n.length=r+1;return}}}n.charcode=0;n.length=1}getCharCodeLength(e){const t=this.codespaceRanges;for(let n=0,a=t.length;n=s&&e<=r)return n+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,n){unreachable("should not call mapCidRange")}mapBfRange(e,t,n){unreachable("should not call mapBfRange")}mapBfRangeToArray(e,t,n){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 n=0;n>>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 n=t.getObj();if(n===ln)break;if(isCmd(n,"endbfchar"))return;expectString(n);const a=strToInt(n);n=t.getObj();expectString(n);const s=n;e.mapOne(a,s)}}function parseBfRange(e,t){for(;;){let n=t.getObj();if(n===ln)break;if(isCmd(n,"endbfrange"))return;expectString(n);const a=strToInt(n);n=t.getObj();expectString(n);const s=strToInt(n);n=t.getObj();if(Number.isInteger(n)||"string"==typeof n){const t=Number.isInteger(n)?String.fromCharCode(n):n;e.mapBfRange(a,s,t)}else{if(!isCmd(n,"["))break;{n=t.getObj();const r=[];for(;!isCmd(n,"]")&&n!==ln;){r.push(n);n=t.getObj()}e.mapBfRangeToArray(a,s,r)}}}throw new FormatError("Invalid bf range.")}function parseCidChar(e,t){for(;;){let n=t.getObj();if(n===ln)break;if(isCmd(n,"endcidchar"))return;expectString(n);const a=strToInt(n);n=t.getObj();expectInt(n);const s=n;e.mapOne(a,s)}}function parseCidRange(e,t){for(;;){let n=t.getObj();if(n===ln)break;if(isCmd(n,"endcidrange"))return;expectString(n);const a=strToInt(n);n=t.getObj();expectString(n);const s=strToInt(n);n=t.getObj();expectInt(n);const r=n;e.mapCidRange(a,s,r)}}function parseCodespaceRange(e,t){for(;;){let n=t.getObj();if(n===ln)break;if(isCmd(n,"endcodespacerange"))return;if("string"!=typeof n)break;const a=strToInt(n);n=t.getObj();if("string"!=typeof n)break;const s=strToInt(n);e.addCodespaceRange(n.length,a,s)}throw new FormatError("Invalid codespace range.")}function parseWMode(e,t){const n=t.getObj();Number.isInteger(n)&&(e.vertical=!!n)}function parseCMapName(e,t){const n=t.getObj();n instanceof Name&&(e.name=n.name)}async function parseCMap(e,t,n,a){let s,r;e:for(;;)try{const n=t.getObj();if(n===ln)break;if(n instanceof Name){"WMode"===n.name?parseWMode(e,t):"CMapName"===n.name&&parseCMapName(e,t);s=n}else if(n instanceof Cmd)switch(n.cmd){case"endcmap":break e;case"usecmap":s instanceof Name&&(r=s.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}!a&&r&&(a=r);return a?extendCMap(e,n,a):e}async function extendCMap(e,t,n){e.useCMap=await createBuiltInCMap(n,t);if(0===e.numCodespaceRanges){const t=e.useCMap.codespaceRanges;for(let n=0;nextendCMap(s,t,e));const r=new Lexer(new Stream(n));return parseCMap(s,r,t,null)}class CMapFactory{static async create({encoding:e,fetchBuiltInCMap:t,useCMap:n}){if(e instanceof Name)return createBuiltInCMap(e.name,t);if(e instanceof BaseStream){if(e.isAsync){const t=await e.asyncGetBytes();t&&(e=new Stream(t,0,t.length,e.dict))}const a=await parseCMap(new CMap,new Lexer(e),t,n);return a.isIdentityCMap?createBuiltInCMap(a.name,t):a}throw new Error("Encoding required.")}}const ha=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","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"],ua=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","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","","","",""],ma=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","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"],pa=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","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","","","",""],da=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","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"],ga=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","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",""],ba=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","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 da;case"StandardEncoding":return pa;case"MacRomanEncoding":return ma;case"SymbolSetEncoding":return ga;case"ZapfDingbatsEncoding":return ba;case"ExpertEncoding":return ha;case"MacExpertEncoding":return ua;default:return null}}const wa=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}),ja=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}),ka=getLookupTableFactory(function(e){e[63721]=169;e[63193]=169;e[63720]=174;e[63194]=174;e[63722]=8482;e[63195]=8482;e[63718]=9168;e[63719]=9135;e[63733]=9134;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 n=t[e];if(void 0!==n)return n;if(!e)return-1;if("u"===e[0]){const t=e.length;let a;if(7===t&&"n"===e[1]&&"i"===e[2])a=e.substring(3);else{if(!(t>=5&&t<=7))return-1;a=e.substring(1)}if(a===a.toUpperCase()){n=parseInt(a,16);if(n>=0)return n}}return-1}const ya=[[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 n=ya[t];for(let a=0,s=n.length;a=n[a]&&e<=n[a+1])return t}for(let t=0,n=ya.length;t=n[a]&&e<=n[a+1])return t}return-1}const qa=/^(\s)|(\p{Mn})|(\p{Cf})$/u,va=new Map;const Sa=1,Aa=2,xa=4,Ca=32,Ia=[".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 n=getUnicodeForGlyph(e,t);if(-1!==n)for(const e in t)if(t[e]===n)return e;info("Unable to recover a standard glyph name for: "+e);return e}function type1FontGlyphMapping(e,t,n){const a=Object.create(null);let s,r,i;const o=!!(e.flags&xa);if(e.isInternalFont){i=t;for(r=0;r=0?s:0}}else if(e.baseEncodingName){i=getEncoding(e.baseEncodingName);for(r=0;r=0?s:0}}else if(o)for(r in t)a[r]=t[r];else{i=pa;for(r=0;r=0?s:0}}const l=e.differences;let f;if(l)for(r in l){const e=l[r];s=n.indexOf(e);if(-1===s){f??=wa();const t=recoverGlyphName(e,f);t!==e&&(s=n.indexOf(t))}a[r]=s>=0?s:0}return a}function normalizeFontName(e){return e.replaceAll(/[,_]/g,"-").replaceAll(/\s/g,"")}const Fa=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 Ta=[".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"],Ra=[".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"],Oa=[".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"];class DataBuilder{#re;#ie=1024;#oe=!1;#le=0;#fe;constructor({exactLength:e=0,minLength:t=0}){this.#oe=!!e;this.#ce(e||t)}#ce(e){if(this.#oe)this.#ie=e;else for(;this.#iethis.#ie&&this.#ce(t);this.#re.set(e,this.#le);this.#le=t}setInt16(e){const t=this.#le+2;!this.#oe&&t>this.#ie&&this.#ce(t);this.#fe.setInt16(this.#le,e);this.#le=t}setSafeInt16(e){const t=this.#le+2;!this.#oe&&t>this.#ie&&this.#ce(t);this.#fe.setInt16(this.#le,MathClamp(e,-32768,32767));this.#le=t}setInt32(e){const t=this.#le+4;!this.#oe&&t>this.#ie&&this.#ce(t);this.#fe.setInt32(this.#le,e);this.#le=t}}function looksLikeUnsigned16BitNegative(e){return e>32767&&e<=65535}function recoverSigned16BitBBox(e,t=!1){return Util.normalizeRect(e.map((e,n)=>(!t||n<2)&&looksLikeUnsigned16BitNegative(e)?e-65536:e))}const Ha=[".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"],Ba=391,Da=.039625,Ma=[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},{id:"return",min: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},{id:"vhcurveto",min:4,resetStack:!0},{id:"hvcurveto",min:4,resetStack:!0}],Na=[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,n){this.bytes=e.getBytes();this.properties=t;this.seacAnalysisEnabled=!!n}parse(){const e=this.properties,t=new CFF(this.bytes.length);this.cff=t;const n=this.parseHeader(),a=this.parseIndex(n.endPos),s=this.parseIndex(a.endPos),r=this.parseIndex(s.endPos),i=this.parseIndex(r.endPos),o=this.parseDict(s.obj.get(0)),l=this.createDict(CFFTopDict,o,t.strings);t.header=n.obj;t.names=this.parseNameIndex(a.obj);t.strings=this.parseStringIndex(r.obj);t.topDict=l;t.globalSubrIndex=i.obj;this.parsePrivateDict(t.topDict);t.isCIDFont=l.hasName("ROS");const f=l.getByName("CharStrings"),c=this.parseIndex(f).obj;t.charStringCount=c.count;const h=l.getByName("FontMatrix");h&&(e.fontMatrix=h);let u=l.getByName("FontBBox");const m=e.bbox?.some(e=>0!==e)?recoverSigned16BitBBox(e.bbox):null,p=u?.slice(0,2).some(looksLikeUnsigned16BitNegative),d=u?.some(looksLikeUnsigned16BitNegative);if(u?.every(e=>0===e)&&m){u=m;l.setByName("FontBBox",u)}else if(d){const t=recoverSigned16BitBBox(u),n=m&&e.bbox.some(e=>e<0)&&!e.bbox.some(looksLikeUnsigned16BitNegative)&&isArrayEqual(t,m);if(n||p){u=n?t:recoverSigned16BitBBox(u,!0);l.setByName("FontBBox",u)}}if(u?.some(e=>0!==e)){e.ascent=Math.max(u[3],u[1]);e.descent=Math.min(u[1],u[3]);e.ascentScaled=!0}let g,b;if(t.isCIDFont){const e=this.parseIndex(l.getByName("FDArray")).obj;for(let n=0,a=e.count;n=t)throw new FormatError("Invalid CFF header");if(0!==n){info("cff data is shifted");e=e.subarray(n);this.bytes=e}const a=e[0],s=e[1],r=e[2],i=e[3];return{obj:new CFFHeader(a,s,r,i),endPos:r}}parseDict(e){const t=new DataView(e.buffer,e.byteOffset,e.bytesLength);let n=0;function parseOperand(){let a=e[n++];if(30===a)return function parseFloatOperand(){let t="";const a=15,s=["0","1","2","3","4","5","6","7","8","9",".","E","E-",null,"-"],r=e.length;for(;n>4,o=15&r;if(i===a)break;t+=s[i];if(o===a)break;t+=s[o]}return parseFloat(t)}();if(28===a){a=t.getInt16(n);n+=2;return a}if(29===a){a=t.getInt32(n);n+=4;return a}if(a>=32&&a<=246)return a-139;if(a>=247&&a<=250)return 256*(a-247)+e[n++]+108;if(a>=251&&a<=254)return-256*(a-251)-e[n++]-108;warn(`CFFParser.parseDict: "${a}" is a reserved command.`);return NaN}let a=[];const s=[];n=0;const r=e.length;for(;n10)return!1;const s=new DataView(t.buffer,t.byteOffset,t.bytesLength);let r=e.stackSize;const i=e.stack;let o=t.length;for(let l=0;l=4){r-=4;if(this.seacAnalysisEnabled){e.seac=i.slice(r,r+4);return!1}}c=Ma[f]}else if(f>=32&&f<=246){i[r]=f-139;r++}else if(f>=247&&f<=254){i[r]=f<251?(f-247<<8)+t[l]+108:-(f-251<<8)-t[l]-108;l++;r++}else if(255===f){i[r]=s.getInt32(l)/65536;l+=4;r++}else if(19===f||20===f){e.hints+=r>>1;if(0===e.hints){t.copyWithin(l-1,l,-1);l-=1;o-=1;continue}l+=e.hints+7>>3;r%=2;c=Ma[f]}else{if(10===f||29===f){const t=10===f?n:a;if(!t){c=Ma[f];warn("Missing subrsIndex for "+c.id);return!1}let s=32768;t.count<1240?s=107:t.count<33900&&(s=1131);const o=i[--r]+s;if(o<0||o>=t.count||isNaN(o)){c=Ma[f];warn("Out of bounds subrIndex for "+c.id);return!1}e.stackSize=r;e.callDepth++;if(!this.parseCharString(e,t.get(o),n,a))return!1;e.callDepth--;r=e.stackSize;continue}if(11===f){e.stackSize=r;return!0}if(0===f&&l===t.length){t[l-1]=14;c=Ma[14]}else{if(9===f){t.copyWithin(l-1,l,-1);l-=1;o-=1;continue}c=Ma[f]}}if(c){if(c.stem){e.hints+=r>>1;if(3===f||23===f)e.hasVStems=!0;else if(e.hasVStems&&(1===f||18===f)){warn("CFF stem hints are in wrong order");t[l-1]=1===f?3:23}}if(r=2&&c.stem?r%=2:r>1&&warn("Found too many parameters for stack-clearing command");r>0&&(e.width=i[r-1])}if("stackDelta"in c){"stackFn"in c&&c.stackFn(i,r);r+=c.stackDelta}else(c.stackClearing||c.resetStack)&&(r=0)}}o=s.length){warn("Invalid fd index for glyph index.");h=!1}if(h){m=s[e].privateDict;u=m.subrsIndex}}else t&&(u=t);h&&=this.parseCharString(c,l,u,n);if(null!==c.width){const e=m.getByName("nominalWidthX");o[f]=e+c.width}else{const e=m.getByName("defaultWidthX");o[f]=e}null!==c.seac&&(i[f]=c.seac);h||e.set(f,new Uint8Array([14]))}return{charStrings:e,seacs:i,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 n=t[0],a=t[1];if(0===n||a>=this.bytes.length){this.emptyPrivateDictionary(e);return}if(a+n>this.bytes.length)throw new FormatError("CFF Private DICT extends past end of font");const s=a+n,r=this.bytes.subarray(a,s),i=this.parseDict(r),o=this.createDict(CFFPrivateDict,i,e.strings);e.privateDict=o;const l=o.getByName("BlueScale"),f=o.getByName("BlueShift"),c=o.getByName("BlueFuzz"),h=o.getByName("ExpansionFactor");if(0===l&&0===f&&0===c&&0===h){o.setByName("BlueScale",Da);o.setByName("BlueShift",7);o.setByName("BlueFuzz",1)}0===h&&o.setByName("ExpansionFactor",.06);if(l>0){let e=0;for(const t of[o.getByName("BlueValues"),o.getByName("OtherBlues")])if(t)for(let n=1;ne&&(e=t[n]);if(e>0){const t=1e5,n=.5/e,a=MathClamp(l,n<=Da?Math.ceil(n*t)/t:-1/0,Math.floor(t/e)/t);a!==l&&o.setByName("BlueScale",a)}}if(!o.getByName("Subrs"))return;const u=o.getByName("Subrs"),m=a+u;if(0===u||m>=this.bytes.length){this.emptyPrivateDictionary(e);return}const p=this.parseIndex(m);o.subrsIndex=p.obj}parseCharsets(e,t,n,a){if(0===e)return new CFFCharset(!0,_a.ISO_ADOBE,Ta);if(1===e)return new CFFCharset(!0,_a.EXPERT,Ra);if(2===e)return new CFFCharset(!0,_a.EXPERT_SUBSET,Oa);const{bytes:s}=this,r=s[e++],i=[a?0:".notdef"];let o,l,f;t-=1;switch(r){case 0:for(f=0;f=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,n,a){this.major=e;this.minor=t;this.hdrSize=n;this.offSize=a}}class CFFStrings{strings=[];get(e){return e>=0&&e<=390?Ha[e]:e-Ba<=this.strings.length?this.strings[e-Ba]:Ha[0]}getSID(e){let t=Ha.indexOf(e);if(-1!==t)return t;t=this.strings.indexOf(e);return-1!==t?t+Ba:-1}add(e){this.strings.push(e)}get count(){return this.strings.length}}class CFFIndex{objects=[];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 n of t)if(isNaN(n)){warn(`Invalid CFFDict value: "${t}" for key "${e}".`);return!0}const n=this.types[e];"num"!==n&&"sid"!==n&&"offset"!==n||(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 n of e){const e=Array.isArray(n[0])?(n[0][0]<<8)+n[0][1]:n[0];t.keyToNameMap[e]=n[1];t.nameToKeyMap[n[1]]=e;t.types[e]=n[2];t.defaults[e]=n[3];t.opcodes[e]=Array.isArray(n[0])?n[0]:[n[0]];t.order.push(e)}return t}}const Pa=[[[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(Pa))}constructor(e){super(CFFTopDict.tables,e);this.privateDict=null}}const Ea=[[6,"BlueValues","delta",null],[7,"OtherBlues","delta",null],[8,"FamilyBlues","delta",null],[9,"FamilyOtherBlues","delta",null],[[12,9],"BlueScale","num",Da],[[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(Ea))}constructor(e){super(CFFPrivateDict.tables,e);this.subrsIndex=null}}const _a={ISO_ADOBE:0,EXPERT:1,EXPERT_SUBSET:2};class CFFCharset{constructor(e,t,n){this.predefined=e;this.format=t;this.charset=n}}class CFFEncoding{constructor(e,t,n,a){this.predefined=e;this.format=t;this.encoding=n;this.raw=a}}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{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,n){if(!(e in this.offsets))throw new FormatError(`Not tracking location of ${e}`);const a=n.data,s=this.offsets[e];for(let e=0,n=t.length;e>24&255;a[i]=f>>16&255;a[o]=f>>8&255;a[l]=255&f}}}class CFFCompiler{constructor(e){this.cff=e}compile(){const e=this.cff,t=new DataBuilder({minLength:e.rawFileLength}),n=this.compileHeader(e.header);t.setArray(n);const a=this.compileNameIndex(e.names);t.setArray(a);if(e.isCIDFont&&e.topDict.hasName("FontMatrix")){const t=e.topDict.getByName("FontMatrix");e.topDict.removeByName("FontMatrix");for(const n of e.fdArray){let e=t.slice(0);n.hasName("FontMatrix")&&(e=Util.transform(e,n.getByName("FontMatrix")));n.setByName("FontMatrix",e)}}const s=e.topDict.getByName("XUID");s?.length>16&&e.topDict.removeByName("XUID");e.topDict.setByName("charset",0);let r=this.compileTopDicts([e.topDict],t.length,e.isCIDFont);t.setArray(r.output);const i=r.trackers[0],o=this.compileStringIndex(e.strings.strings);t.setArray(o);const l=this.compileIndex(e.globalSubrIndex);t.setArray(l);if(e.encoding&&e.topDict.hasName("Encoding"))if(e.encoding.predefined)i.setEntryLocation("Encoding",[e.encoding.format],t);else{const n=this.compileEncoding(e.encoding);i.setEntryLocation("Encoding",[t.length],t);t.setArray(n)}const f=this.compileCharset(e.charset,e.charStrings.count,e.strings,e.isCIDFont);i.setEntryLocation("charset",[t.length],t);t.setArray(f);const c=this.compileCharStrings(e.charStrings);i.setEntryLocation("CharStrings",[t.length],t);t.setArray(c);if(e.isCIDFont){i.setEntryLocation("FDSelect",[t.length],t);const n=this.compileFDSelect(e.fdSelect);t.setArray(n);r=this.compileTopDicts(e.fdArray,t.length,!0);i.setEntryLocation("FDArray",[t.length],t);t.setArray(r.output);const a=r.trackers;this.compilePrivateDicts(e.fdArray,a,t)}this.compilePrivateDicts([e.topDict],[i],t);t.setArray([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 n=CFFCompiler.EncodeFloatRegExp.exec(t);if(n){const a=parseFloat("1e"+((n[2]?+n[2]:0)+n[1].length));t=(Math.round(e*a)/a).toString()}let a,s,r="";for(a=0,s=t.length;a=-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 n of e){const e=Math.min(n.length,127);let a=new Array(e);for(let t=0;t"~"||"["===e||"]"===e||"("===e||")"===e||"{"===e||"}"===e||"<"===e||">"===e||"/"===e||"%"===e)&&(e="_");a[t]=e}a=a.join("");""===a&&(a="Bad_Font_Name");t.add(stringToBytes(a))}return this.compileIndex(t)}compileTopDicts(e,t,n){const a=[];let s=new CFFIndex;for(const r of e){if(n){r.removeByName("CIDFontVersion");r.removeByName("CIDFontRevision");r.removeByName("CIDFontType");r.removeByName("CIDCount");r.removeByName("UIDBase")}const e=new CFFOffsetTracker,i=this.compileDict(r,e);a.push(e);s.add(i);e.offset(t)}s=this.compileIndex(s,a);return{trackers:a,output:s}}compilePrivateDicts(e,t,n){for(let a=0,s=e.length;a>8&255,255&e])}else{s=new Uint8Array(1+2*r);let t=0;const a=e.charset.length;let i=!1;for(let r=1;r>8&255;s[r+1]=255&o}}return s}compileEncoding(e){return e.raw}compileFDSelect(e){const t=e.format;let n,a;switch(t){case 0:n=new Uint8Array(1+e.fdSelect.length);n[0]=t;n.set(e.fdSelect,1);break;case 3:const s=0;let r=e.fdSelect[0];const i=[t,0,0,s>>8&255,255&s,r];for(a=1;a>8&255,255&a,t);r=t}}const o=(i.length-3)/3;i[1]=o>>8&255;i[2]=255&o;i.push(a>>8&255,255&a);n=new Uint8Array(i)}return n}compileIndex(e,t=[]){const n=e.objects,a=n.length;if(0===a)return new Uint8Array(2);let s,r,i=1;for(s=0;s>8&255;o[l++]=255&a;o[l++]=r;let f=1;for(s=0;s>8&255;o[l++]=255&f}else if(3===r){o[l++]=f>>16&255;o[l++]=f>>8&255;o[l++]=255&f}else{o[l++]=f>>>24&255;o[l++]=f>>16&255;o[l++]=f>>8&255;o[l++]=255&f}n[s]&&(f+=n[s].length)}for(s=0;se.getSize()+3&-4))}write(){const e=this.getSize(),t=new DataView(new ArrayBuffer(e)),n=e>131070,a=n?4:2,s=new DataView(new ArrayBuffer((this.glyphs.length+1)*a));n?s.setUint32(0,0):s.setUint16(0,0);let r=0,i=0;for(const e of this.glyphs){r+=e.write(r,t);r=r+3&-4;i+=a;n?s.setUint32(i,r):s.setUint16(i,r>>1)}return{isLocationLong:n,loca:new Uint8Array(s.buffer),glyf:new Uint8Array(t.buffer)}}scale(e){for(let t=0,n=this.glyphs.length;te.getSize()));return this.header.getSize()+e}write(e,t){if(!this.header)return 0;const n=e;e+=this.header.write(e,t);if(this.simple)e+=this.simple.write(e,t);else for(const n of this.composites)e+=n.write(e,t);return e-n}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 n of this.composites)n.scale(t,e)}}class GlyphHeader{constructor({numberOfContours:e,xMin:t,yMin:n,xMax:a,yMax:s}){this.numberOfContours=e;this.xMin=t;this.yMin=n;this.xMax=a;this.yMax=s}static parse(e,t){return[Qa,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 Qa}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 Qa}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:n}){this.xCoordinates=t;this.yCoordinates=n;this.flags=e}}class SimpleGlyph{constructor({contours:e,instructions:t}){this.contours=e;this.instructions=t}static parse(e,t,n){const a=[];for(let s=0;s255?e+=2:o>0&&(e+=1);t=r;o=Math.abs(i-n);o>255?e+=2:o>0&&(e+=1);n=i}}return e}write(e,t){const n=e,a=[],s=[],r=[];let i=0,o=0;for(const n of this.contours){for(let e=0,t=n.xCoordinates.length;e=0?18:2;a.push(e)}else a.push(f)}i=l;const c=n.yCoordinates[e];f=c-o;if(0===f){t|=32;s.push(0)}else{const e=Math.abs(f);if(e<=255){t|=f>=0?36:4;s.push(e)}else s.push(f)}o=c;r.push(t)}t.setUint16(e,a.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 n of r)t.setUint8(e++,n);for(let n=0,s=a.length;n=-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 n=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(this.flags&Ja){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-n}scale(e,t){}}class ToUnicodeMap{constructor(e=[]){this._map=e}get length(){return this._map.length}forEach(e){for(const t in this._map)e(t,this._map[t].codePointAt(0))}has(e){return void 0!==this._map[e]}get(e){return this._map[e]}charCodeOf(e){const t=this._map;if(t.length<=65536)return t.indexOf(e);for(const n in t)if(t[n]===e)return 0|n;return-1}amend(e){for(const t in e)this._map[t]=e[t]}}class IdentityToUnicodeMap{constructor(e,t){this.firstChar=e;this.lastChar=t}get length(){return this.lastChar+1-this.firstChar}forEach(e){for(let t=this.firstChar,n=this.lastChar;t<=n;t++)e(t,t)}has(e){return this.firstChar<=e&&e<=this.lastChar}get(e){return this.firstChar<=e&&e<=this.lastChar?String.fromCharCode(e):void 0}charCodeOf(e){return Number.isInteger(e)&&e>=this.firstChar&&e<=this.lastChar?e:-1}amend(e){unreachable("Should not call amend()")}}class CFFFont{constructor(e,t){this.properties=t;const n=new CFFParser(e,t,!0);this.cff=n.parse();this.cff.duplicateFirstGlyph();const a=new CFFCompiler(this.cff);this.seacs=this.cff.seacs;try{this.data=a.compile()}catch(n){warn(`Failed to compile font "${t.loadedName}": "${n}".`);e.reset();this.data=e.getBytes()}this._createBuiltInEncoding()}get numGlyphs(){return this.cff.charStrings.count}getCharset(){return this.cff.charset.charset}getGlyphMapping(){const e=this.cff,t=this.properties,{cidToGidMap:n,cMap:a}=t,s=e.charset.charset;let r,i;if(t.composite){let t,o;if(n?.length>0){t=Object.create(null);for(let e=0,a=n.length;e=0){const a=n[t];a&&(s[e]=a)}}s.length>0&&(this.properties.builtInEncoding=s)}}class CSS_FONT_INFO{static strings=["fontFamily","fontWeight","italicAngle"]}class SYSTEM_FONT_INFO{static strings=["css","loadedName","baseFontName","src"]}class FONT_INFO{static bools=["black","bold","disableFontFace","fontExtraProperties","isInvalidPDFjsFont","isType3Font","italic","missingFile","remeasure","vertical"];static numbers=["ascent","defaultWidth","descent"];static strings=["fallbackName","loadedName","mimetype","name"];static OFFSET_NUMBERS=Math.ceil(2*this.bools.length/8);static OFFSET_BBOX=this.OFFSET_NUMBERS+8*this.numbers.length;static OFFSET_FONT_MATRIX=this.OFFSET_BBOX+1+8;static OFFSET_DEFAULT_VMETRICS=this.OFFSET_FONT_MATRIX+1+48;static OFFSET_STRINGS=this.OFFSET_DEFAULT_VMETRICS+1+6}class PATTERN_INFO{static KIND=0;static HAS_BBOX=1;static HAS_BACKGROUND=2;static SHADING_TYPE=3;static N_COORD=4;static N_COLOR=8;static N_STOP=12;static N_FIGURES=16}class InfoUtils{static get decoder(){return shadow(this,"decoder",new TextDecoder)}static get encoder(){return shadow(this,"encoder",new TextEncoder)}}function compileFontInfo(e){const t=e.systemFontInfo?function compileSystemFontInfo(e){const{encoder:t}=InfoUtils,n={};let a=0;for(const s of SYSTEM_FONT_INFO.strings){const r=t.encode(e[s]);n[s]=r;a+=4+r.length}a+=4;let s,r,i=1+a;if(e.style){s=t.encode(e.style.style);r=t.encode(e.style.weight);i+=4+s.length+4+r.length}const o=new ArrayBuffer(i),l=new Uint8Array(o),f=new DataView(o);let c=0;f.setUint8(c++,e.guessFallback?1:0);f.setUint32(c,0);c+=4;a=0;for(const e of SYSTEM_FONT_INFO.strings){const t=n[e],s=t.length;a+=4+s;f.setUint32(c,s);l.set(t,c+4);c+=4+s}f.setUint32(c-a-4,a);if(e.style){f.setUint32(c,s.length);l.set(s,c+4);c+=4+s.length;f.setUint32(c,r.length);l.set(r,c+4);c+=4+r.length}assert(c<=o.byteLength,"compileSystemFontInfo: Buffer overflow");return o.transferToFixedLength(c)}(e.systemFontInfo):null,n=e.cssFontInfo?function compileCssFontInfo(e){const{encoder:t}=InfoUtils,n={};let a=0;for(const s of CSS_FONT_INFO.strings){const r=t.encode(e[s]);n[s]=r;a+=4+r.length}const s=new ArrayBuffer(a),r=new Uint8Array(s),i=new DataView(s);let o=0;for(const e of CSS_FONT_INFO.strings){const t=n[e],a=t.length;i.setUint32(o,a);r.set(t,o+4);o+=4+a}assert(o===s.byteLength,"compileCssFontInfo: Buffer overflow");return s}(e.cssFontInfo):null,{encoder:a}=InfoUtils,s={};let r=0;for(const t of FONT_INFO.strings){s[t]=a.encode(e[t]);r+=4+s[t].length}const i=FONT_INFO.OFFSET_STRINGS+4+r+4+(t?.byteLength??0)+4+(n?.byteLength??0)+4+(e.data?.length??0),o=new ArrayBuffer(i),l=new Uint8Array(o),f=new DataView(o);let c=0;const h=FONT_INFO.bools.length;let u=0,m=0;for(let t=0;t=33900?32768:t<1240?107:1131}function parseCmap(e,t,n){const a=new DataView(e.buffer,e.byteOffset,e.byteLength),s=1===a.getUint16(t+2)?a.getUint32(t+8):a.getUint32(t+16),r=a.getUint16(t+s);let i,o,l;if(4===r){const e=a.getUint16(t+s+6)>>1;o=t+s+14;i=[];for(l=0;l>1;n0;)h.push({flags:o})}for(n=0;n>1;j=!0;break;case 4:i+=s.pop();moveTo(r,i);j=!0;break;case 5:for(;s.length>0;){r+=s.shift();i+=s.shift();lineTo(r,i)}break;case 6:for(;s.length>0;){r+=s.shift();lineTo(r,i);if(0===s.length)break;i+=s.shift();lineTo(r,i)}break;case 7:for(;s.length>0;){i+=s.shift();lineTo(r,i);if(0===s.length)break;r+=s.shift();lineTo(r,i)}break;case 8:for(;s.length>0;){c=r+s.shift();u=i+s.shift();h=c+s.shift();m=u+s.shift();r=h+s.shift();i=m+s.shift();bezierCurveTo(c,u,h,m,r,i)}break;case 10:b=s.pop();w=null;if(n.isCFFCIDFont){const e=n.fdSelect.getFDIndex(a);if(e>=0&&eMath.abs(i-t)?r+=s.shift():i+=s.shift();bezierCurveTo(c,u,h,m,r,i);break;default:throw new FormatError(`unknown operator: 12 ${k}`)}break;case 14:if(s.length>=4){const e=s.pop(),a=s.pop();i=s.pop();r=s.pop();t.save();t.translate(r,i);let o=lookupCmap(n.cmap,String.fromCharCode(n.glyphNameMap[pa[e]]));compileCharString(n.glyphs[o.glyphId],t,n,o.glyphId);t.restore();o=lookupCmap(n.cmap,String.fromCharCode(n.glyphNameMap[pa[a]]));compileCharString(n.glyphs[o.glyphId],t,n,o.glyphId)}return;case 19:case 20:o+=s.length>>1;f+=o+7>>3;j=!0;break;case 21:i+=s.pop();r+=s.pop();moveTo(r,i);j=!0;break;case 22:r+=s.pop();moveTo(r,i);j=!0;break;case 24:for(;s.length>2;){c=r+s.shift();u=i+s.shift();h=c+s.shift();m=u+s.shift();r=h+s.shift();i=m+s.shift();bezierCurveTo(c,u,h,m,r,i)}r+=s.shift();i+=s.shift();lineTo(r,i);break;case 25:for(;s.length>6;){r+=s.shift();i+=s.shift();lineTo(r,i)}c=r+s.shift();u=i+s.shift();h=c+s.shift();m=u+s.shift();r=h+s.shift();i=m+s.shift();bezierCurveTo(c,u,h,m,r,i);break;case 26:s.length%2&&(r+=s.shift());for(;s.length>0;){c=r;u=i+s.shift();h=c+s.shift();m=u+s.shift();r=h;i=m+s.shift();bezierCurveTo(c,u,h,m,r,i)}break;case 27:s.length%2&&(i+=s.shift());for(;s.length>0;){c=r+s.shift();u=i;h=c+s.shift();m=u+s.shift();r=h+s.shift();i=m;bezierCurveTo(c,u,h,m,r,i)}break;case 28:s.push(l.getInt16(f));f+=2;break;case 29:b=s.pop()+n.gsubrsBias;w=n.gsubrs[b];w&&parse(w);break;case 30:for(;s.length>0;){c=r;u=i+s.shift();h=c+s.shift();m=u+s.shift();r=h+s.shift();i=m+(1===s.length?s.shift():0);bezierCurveTo(c,u,h,m,r,i);if(0===s.length)break;c=r+s.shift();u=i;h=c+s.shift();m=u+s.shift();i=m+s.shift();r=h+(1===s.length?s.shift():0);bezierCurveTo(c,u,h,m,r,i)}break;case 31:for(;s.length>0;){c=r+s.shift();u=i;h=c+s.shift();m=u+s.shift();i=m+s.shift();r=h+(1===s.length?s.shift():0);bezierCurveTo(c,u,h,m,r,i);if(0===s.length)break;c=r;u=i+s.shift();h=c+s.shift();m=u+s.shift();r=h+s.shift();i=m+(1===s.length?s.shift():0);bezierCurveTo(c,u,h,m,r,i)}break;default:if(k<32)throw new FormatError(`unknown operator: ${k}`);if(k<247)s.push(k-139);else if(k<251)s.push(256*(k-247)+e[f++]+108);else if(k<255)s.push(256*-(k-251)-e[f++]-108);else{s.push(l.getInt32(f)/65536);f+=4}}j&&(s.length=0)}}(e)}class Commands{cmds=[];transformStack=[];currentTransform=[1,0,0,1,0,0];add(e,t){if(t){const{currentTransform:n}=this;for(let e=0,a=t.length;e{try{return this.compileGlyph(this.glyphs[n],n)}catch(e){return e}});this.#he.add(t);if(a instanceof Error)throw a;return function compileFontPathInfo(e){return e.slice().buffer}(a)}compileGlyph(e,t){if(!e?.length||14===e[0])return CompiledFont.NOOP;let n=this.fontMatrix;if(this.isCFFCIDFont){const e=this.fdSelect.getFDIndex(t);if(e>=0&&ee.getUint32(t)}else{s=2;r=(e,t)=>2*e.getUint16(t)}const i=[];let o=r(a,0);for(let n=s;nn;){n<<=1;a++}const s=n*t;return{range:s,entry:a,rangeShift:t*e-s}}toArray(){let e=this.sfnt;const t=this.#me,n=[...t.keys()].sort(),a=n.length;let s=12+16*a;const r=[s];for(let e=0;e>>0;r.push(s)}const i=new Uint8Array(s),o=new DataView(i.buffer);for(let e=0;e>>0}o.setInt32(s+4,l);o.setInt32(s+8,r[e]);o.setInt32(s+12,t.get(a).length);s+=16}this.#me.clear();return i}addTable(e,t){if(this.#me.has(e))throw new Error(`Table ${e} already exists`);this.#me.set(e,t)}}const ts=[4],ns=[5],as=[6],ss=[7],rs=[8],is=[12,35],os=[14],ls=[21],fs=[22],cs=[30],hs=[31];class Type1CharString{width=0;lsb=0;flexing=!1;output=[];stack=[];convert(e,t,n){const a=e.length;let s,r,i,o=!1;for(let l=0;la)return!0;const s=a-e;for(let e=s;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);n?this.stack.splice(s,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,n){if(n>=e.length)return new Uint8Array(0);let a,s,r=0|t;for(a=0;a>8;r=52845*(t+r)+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,n){if(t){const t=e.getBytes(),n=!((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(n?decrypt(t,55665,4):function decryptAscii(e,t,n){let a=0|t;const s=e.length,r=new Uint8Array(s>>>1);let i,o;for(i=0,o=0;i>8;a=52845*(e+a)+22719&65535}}return r.slice(n,o)}(t,55665,4))}this.seacAnalysisEnabled=!!n;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 n="";do{n+=String.fromCharCode(t);t=this.nextChar()}while(t>=0&&!isWhiteSpace(t)&&!isSpecial(t));return n}readCharStrings(e,t){return-1===t?e:decrypt(e,4330,t)}extractFontProgram(e){const t=this.stream,n=[],a=[],s=new Map([["lenIV",4]]),r={subrs:[],charstrings:[],properties:{privateData:s}};let i,o,l,f=!1,c=!1;for(;null!==(i=this.getToken());)if("/"===i){i=this.getToken();switch(i){case"CharStrings":if(c)break;c=!0;this.getToken();this.getToken();this.getToken();this.getToken();for(;;){i=this.getToken();if(null===i||"end"===i)break;if("/"!==i)continue;const e=this.getToken();o=this.readInt();this.getToken();l=o>0?t.getBytes(o):new Uint8Array(0);const n=this.readCharStrings(l,s.get("lenIV"));this.nextChar();i=this.getToken();"noaccess"===i?this.getToken():"/"===i&&this.prevChar();a.push({glyph:e,encoded:n})}break;case"Subrs":if(f)break;f=!0;this.readInt();this.getToken();for(;"dup"===this.getToken();){const e=this.readInt();o=this.readInt();this.getToken();l=o>0?t.getBytes(o):new Uint8Array(0);const a=this.readCharStrings(l,s.get("lenIV"));this.nextChar();i=this.getToken();"noaccess"===i&&this.getToken();n[e]=a}break;case"BlueValues":case"OtherBlues":case"FamilyBlues":case"FamilyOtherBlues":this.readNumberArray();0;break;case"StemSnapH":case"StemSnapV":s.set(i,this.readNumberArray());break;case"StdHW":case"StdVW":s.set(i,this.readNumberArray()[0]);break;case"BlueShift":case"lenIV":case"BlueFuzz":case"BlueScale":case"LanguageGroup":s.set(i,this.readNumber());break;case"ExpansionFactor":s.set(i,this.readNumber()||.06);break;case"ForceBold":s.set(i,this.readBoolean())}}for(const{encoded:t,glyph:s}of a){const a=new Type1CharString,i={glyphName:s,charstring:a.convert(t,n,this.seacAnalysisEnabled)?[14]:a.output,width:a.width,lsb:a.lsb,seac:a.seac};".notdef"===s?r.charstrings.unshift(i):r.charstrings.push(i);if(e.builtInEncoding){const t=e.builtInEncoding.indexOf(s);t>-1&&void 0===e.widths[t]&&t>=e.firstChar&&t<=e.lastChar&&(e.widths[t]=a.width)}}return r}extractCidKeyedFontProgram(e){const t=this.stream,n=new Map([["lenIV",4]]),a={subrs:[],charstrings:[],properties:{privateData:n}};let s=0,r=-1,i=1,o=0,l=-1,f=0,c=0,h=0,u=!1,m=!1;const p=[];function rememberToken(e){p.push(e);p.length>4&&p.shift()}let d;for(;null!==(d=this.getToken());){if("StartData"===d){const e=p.at(-3),t=p.at(-1);if("("!==p.at(-4)||")"!==p.at(-2)||"Binary"!==e&&"Hex"!==e||!/^\d+$/.test(t))return null;h=parseInt(t,10);if(h<=0)return null;u="Hex"===e;m=!0;break}rememberToken(d);if("/"===d){d=this.getToken();rememberToken(d);switch(d){case"FontMatrix":e.fontMatrix=this.readNumberArray();break;case"FontBBox":const t=this.readNumberArray();e.ascent=Math.max(t[3],t[1]);e.descent=Math.min(t[1],t[3]);e.ascentScaled=!0;break;case"CIDCount":s=this.readInt();break;case"CIDMapOffset":r=this.readInt();break;case"FDBytes":i=this.readInt();break;case"GDBytes":o=this.readInt();break;case"SubrMapOffset":l=this.readInt();break;case"SDBytes":f=this.readInt();break;case"SubrCount":c=this.readInt();break;case"BlueValues":case"OtherBlues":case"FamilyBlues":case"FamilyOtherBlues":this.readNumberArray();break;case"StemSnapH":case"StemSnapV":n.set(d,this.readNumberArray());break;case"StdHW":case"StdVW":n.set(d,this.readNumberArray()[0]);break;case"BlueShift":case"lenIV":case"BlueFuzz":case"BlueScale":case"LanguageGroup":n.set(d,this.readNumber());break;case"ExpansionFactor":n.set(d,this.readNumber()||.06);break;case"ForceBold":n.set(d,this.readBoolean())}}}if(!m||s<=0||r<0||i<0||i>4||o<1||o>4)return null;const g=t.end-t.pos;if(h>g)if(u){if(h>2*g)return null}else h=g;let b=t.getBytes(u?void 0:h);if(u){const e=new Uint8Array(h);let t=-1,n=0;for(let a=0,s=b.length;a>>0}if(r+(s+1)*j>b.length||c>0&&(l<0||f<1||f>4||l+(c+1)*f>b.length))return null;if(i>0)for(let e=0;e0){const e=new Array(c+1);for(let t=0;t<=c;t++)e[t]=readUint(l+t*f,f);for(let t=0;tb.length||aq&&t<=b.length){const e=this.readCharStrings(b.subarray(q,t),w),a=new Type1CharString,s=a.convert(e,k,this.seacAnalysisEnabled);y.push({glyphName:n,charstring:s?[14]:a.output,width:a.width,lsb:a.lsb,seac:a.seac})}else{const e=y[0];y.push({glyphName:n,charstring:e?.charstring.slice()||[139,14],width:e?.width||0,lsb:e?.lsb||0})}q=t}a.subrs=k;a.charstrings=y;return a}extractFontHeader(e){let t;for(;null!==(t=this.getToken());)if("/"===t){t=this.getToken();switch(t){case"FontMatrix":const n=this.readNumberArray();e.fontMatrix=n;break;case"Encoding":const a=this.getToken();let s;if(/^\d+$/.test(a)){s=[];const e=0|parseInt(a,10);this.getToken();for(let n=0;n=s){i+=n;for(;i=0&&(a[e]=s)}}return type1FontGlyphMapping(e,a,n)}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 n=0,a=e.length;n0;e--)t[e]-=t[e-1];h.setByName(e,t)}r.topDict.privateDict=h;const m=new CFFIndex;for(const e of a)m.add(e);h.subrsIndex=m;return new CFFCompiler(r).compile()}}const us=[[57344,63743],[1048576,1114109]],ms=1e3,ps=["ascent","bbox","black","bold","cssFontInfo","data","defaultVMetrics","defaultWidth","descent","disableFontFace","fallbackName","fontExtraProperties","fontMatrix","isInvalidPDFjsFont","isType3Font","italic","loadedName","mimetype","missingFile","name","remeasure","systemFontInfo","vertical"],ds=["cMap","composite","defaultEncoding","differences","isMonospace","isSerifFont","isSymbolicFont","seacMap","subtype","toFontChar","toUnicode","type","vmetrics","widths"];function adjustWidths(e){if(!e.fontMatrix)return;if(e.fontMatrix[0]===a[0])return;const t=.001/e.fontMatrix[0],n=e.widths;for(const e in n)n[e]*=t;e.defaultWidth*=t}function amendFallbackToUnicode(e){if(!e.fallbackToUnicode)return;if(e.toUnicode instanceof IdentityToUnicodeMap)return;const t=[];for(const n in e.fallbackToUnicode)e.toUnicode.has(n)||(t[n]=e.fallbackToUnicode[n]);t.length>0&&e.toUnicode.amend(t)}class fonts_Glyph{constructor(e,t,n,a,s,r,i,o,l){this.originalCharCode=e;this.fontChar=t;this.unicode=n;this.accent=a;this.width=s;this.vmetric=r;this.operatorListId=i;this.isSpace=o;this.isInFont=l}get category(){return shadow(this,"category",function getCharUnicodeCategory(e){const t=va.get(e);if(t)return t;const n=e.match(qa),a={isWhitespace:!!n?.[1],isZeroWidthDiacritic:!!n?.[2],isInvisibleFormatMark:!!n?.[3]};va.set(e,a);return a}(this.unicode),!0)}}function int16(e,t){return(e<<8)+t}function writeSignedInt16(e,t,n){e[t+1]=n;e[t]=n>>>8}function signedInt16(e,t){const n=(e<<8)+t;return 32768&n?n-65536:n}function writeUint32(e,t,n){e[t+3]=255&n;e[t+2]=n>>>8;e[t+1]=n>>>16;e[t]=n>>>24}function isTrueTypeCollectionFile(e){return"ttcf"===bytesToString(e.peekBytes(4))}function getFontFileType(e,{type:t,subtype:n,composite:a}){let s,r;if(function isTrueTypeFile(e){const t=bytesToString(e.peekBytes(4));return"\0\0\0"===t||"true"===t}(e)||isTrueTypeCollectionFile(e))s=a?"CIDFontType2":"TrueType";else if(function isOpenTypeFile(e){return"OTTO"===bytesToString(e.peekBytes(4))}(e))s=a?"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))s=a?"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(a){s="CIDFontType0";r="CIDFontType0C"}else{s="MMType1"===t?"MMType1":"Type1";r="Type1C"}else{warn("getFontFileType: Unable to detect correct font file Type/Subtype.");s=t;r=n}return[s,r]}function applyStandardFontGlyphMap(e,t){for(const n in t)e[+n]=t[n]}const gs=getLookupTableFactory(e=>{let t=3;for(const[n,a]of[[32,126],[161,254]])for(let s=n;s<=a;s++)e[t++]=ga[s]},!0);function buildToFontChar(e,t,n){const a=[];let s;for(let n=0,r=e.length;nus[0][0]<=e&&e<=us[0][1]||us[1][0]<=e&&e<=us[1][1];let h=null;for(const u in e){let m=e[u];if(!t(m))continue;if(f>c){l++;if(l>=us.length){warn("Ran out of space in font private use area.");break}f=us[l][0];c=us[l][1]}const p=f++;0===m&&(m=n);let d=a.get(u);if("string"==typeof d)if(1===d.length)d=d.codePointAt(0);else{if(!h){h=new Map;for(let e=64256;e<=64335;e++){const t=String.fromCharCode(e).normalize("NFKD");t.length>1&&h.set(t,e)}}d=h.get(d)||d.codePointAt(0)}if(d&&!isInPrivateArea(d)&&!o.has(m)){r.set(d,m);o.add(m)}s[p]=m;i[u]=p}return{toFontChar:i,charCodeToGlyphId:s,toUnicodeExtraMap:r,nextAvailableFontCharCode:f}}function createCmapTable(e,t,n){const a=function getRanges(e,t,n){const a=[];for(const t in e)e[t]>=n||a.push({fontCharCode:0|t,glyphId:e[t]});if(t)for(const[e,s]of t)s>=n||a.push({fontCharCode:e,glyphId:s});0===a.length&&a.push({fontCharCode:0,glyphId:0});a.sort((e,t)=>e.fontCharCode-t.fontCharCode);const s=[],r=a.length;for(let e=0;e65535;let r,i,o,l;for(r=a.length-1;r>=0&&!(a[r][0]<=65535);--r);const f=r+1;a[r][0]<65535&&65535===a[r][1]&&(a[r][1]=65534);const c=a[r][1]<65535?1:0,h=f+c,u=OpenTypeFileBuilder.getSearchParams(h,2),m=2*f+2*c,p=new DataBuilder({exactLength:m}),d=new DataBuilder({exactLength:m}),g=new DataBuilder({exactLength:m}),b=new DataBuilder({exactLength:m}),w=new DataBuilder({});let j=0,k=!1;for(r=0,i=f;r65535){k=!0;b.skip(2)}else b.setInt16(a);for(o=0,l=n.length;o0){d.setArray([255,255]);p.setArray([255,255]);g.setArray([0,1]);b.skip(2)}const y=new DataBuilder({exactLength:12+p.length+d.length+g.length+b.length+w.length});y.skip(2);y.setInt16(2*h);y.setInt16(u.range);y.setInt16(u.entry);y.setInt16(u.rangeShift);y.setArray(d.data);y.skip(2);y.setArray(p.data);y.setArray(g.data);y.setArray(b.data);y.setArray(w.data);const q=!k&&y.length+4<=65535,v=s||!q,S=(q?1:0)+(v?1:0);let x=null,C=null;if(v){x=new DataBuilder({});for(const e of a){let t=e[0];const n=e[2];let a=n[0];for(o=1,l=n.length;oe||!o)&&(o=e);l 123 are reserved for internal usage");i|=1<65535&&(l=65535)}else{o=0;l=255}const c=e.bbox||[0,0,0,0],h=n.unitsPerEm||(e.fontMatrix?1/Math.max(...e.fontMatrix.slice(0,4).map(Math.abs)):1e3),u=e.ascentScaled?1:h/ms,m=n.ascent||Math.round(u*(e.ascent||c[3]));let p=n.descent||Math.round(u*(e.descent||c[1]));p>0&&e.descent>0&&c[1]<0&&(p=-p);const d=n.yMax||m,g=-n.yMin||-p,b=new DataBuilder({exactLength:96});b.setArray([0,3]);b.setArray([2,36]);b.setArray([1,244]);b.setArray([0,5]);b.skip(2);b.setArray([2,138]);b.setArray([2,187]);b.skip(2);b.setArray([0,140]);b.setArray([2,138]);b.setArray([2,187]);b.skip(2);b.setArray([1,223]);b.setArray([0,49]);b.setArray([1,2]);b.skip(2);b.setArray([0,0,6,e.fixedPitch?9:0,0,0,0,0,0,0]);b.setInt32(a);b.setInt32(s);b.setInt32(r);b.setInt32(i);b.setArray([42,50,49,42]);b.setInt16(e.italicAngle?1:0);b.setInt16(o||e.firstChar);b.setInt16(l||e.lastChar);b.setInt16(m);b.setInt16(p);b.setArray([0,100]);b.setInt16(d);b.setInt16(g);b.skip(8);b.setInt16(e.xHeight);b.setInt16(e.capHeight);b.skip(2);b.setInt16(o||e.firstChar);b.setArray([0,3]);return b.data}function createPostTable(e){const t=new DataBuilder({exactLength:32});t.setArray([0,3,0,0]);t.setInt32(Math.floor(65536*e.italicAngle));t.skip(4);t.setInt32(e.fixedPitch?1:0);t.skip(16);return t.data}function createPostscriptName(e){return e.replaceAll(/[^\x21-\x7E]|[[\](){}<>/%]/g,"").slice(0,63)}function createNameTable(e,t){t||=[[],[]];const n=[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"],a=n.map(stringToBytes),s=new Array(n.length);let r,i,o,l,f;for(r=0,i=n.length;re.length))+Math.sumPrecise(a.map(e=>e.length))+Math.sumPrecise(s.map(e=>e.length))});b.skip(2);b.setInt16(g);b.setInt16(12*g+6);for(const e of p)b.setArray(e);for(const e of a)b.setArray(e);for(const e of s)b.setArray(e);return b.data}class Font{#be=new Map;#we=new Map;charProcOperatorList;constructor(e,t,n,a){this.name=e;this.psName=null;this.mimetype=null;this.disableFontFace=a.disableFontFace;this.fontExtraProperties=a.fontExtraProperties;this.loadedName=n.loadedName;this.isType3Font=n.isType3Font;this.missingFile=!1;this.cssFontInfo=n.cssFontInfo;let s=!!(n.flags&Aa);if(!s&&!n.isSimulatedFlags){const t=za(),n=Ua(),a=Wa();for(const r of e.split("+")){let e=normalizeFontName(r);e=t[e]||n[e]||e;e=e.split("-",1)[0];if(a[e]){s=!0;break}}}this.isSerifFont=s;this.isSymbolicFont=!!(n.flags&xa);this.isMonospace=!!(n.flags&Sa);let{type:r,subtype:i}=n;this.type=r;this.subtype=i;this.systemFontInfo=n.systemFontInfo;const o=e.match(/^InvalidPDFjsFont_(.*)_\d+$/);this.isInvalidPDFjsFont=!!o;this.isInvalidPDFjsFont?this.fallbackName=o[1]:this.isMonospace?this.fallbackName="monospace":this.isSerifFont?this.fallbackName="serif":this.fallbackName="sans-serif";if(this.systemFontInfo?.guessFallback){this.systemFontInfo.guessFallback=!1;this.systemFontInfo.css+=`,${this.fallbackName}`}this.differences=n.differences;this.widths=n.widths;this.defaultWidth=n.defaultWidth;this.composite=n.composite;this.cMap=n.cMap;this.capHeight=n.capHeight/ms;this.ascent=n.ascent/ms;this.descent=n.descent/ms;this.lineHeight=this.ascent-this.descent;this.fontMatrix=n.fontMatrix;this.bbox=n.bbox;this.defaultEncoding=n.defaultEncoding;this.toUnicode=n.toUnicode;this.toFontChar=[];if("Type3"===n.type){for(let e=0;e<256;e++)this.toFontChar[e]=this.differences[e]||n.defaultEncoding[e];return}this.cidEncoding=n.cidEncoding||"";this.vertical=!!n.vertical;if(this.vertical){this.vmetrics=n.vmetrics;this.defaultVMetrics=n.defaultVMetrics}if(!t||t.isEmpty){t&&warn('Font file is empty in "'+e+'" ('+this.loadedName+")");this.fallbackToSystemFont(n);return}[r,i]=getFontFileType(t,n);r===this.type&&i===this.subtype||info(`Inconsistent font file Type/SubType, expected: ${this.type}/${this.subtype} but found: ${r}/${i}.`);let l;try{switch(r){case"MMType1":info("MMType1 font ("+e+"), falling back to Type1.");case"Type1":case"CIDFontType0":this.mimetype="font/opentype";const a="Type1C"===i||"CIDFontType0C"===i?new CFFFont(t,n):new Type1Font(e,t,n);adjustWidths(n);l=this.convert(e,a,n);break;case"OpenType":case"TrueType":case"CIDFontType2":this.mimetype="font/opentype";l=this.checkAndRepair(e,t,n);adjustWidths(n);this.isOpenType&&(r="OpenType");break;default:throw new FormatError(`Font ${r} is not supported`)}}catch(e){warn(e);this.fallbackToSystemFont(n);return}amendFallbackToUnicode(n);this.data=l;this.type=r;this.subtype=i;this.fontMatrix=n.fontMatrix;this.widths=n.widths;this.defaultWidth=n.defaultWidth;this.toUnicode=n.toUnicode;this.seacMap=n.seacMap}get renderer(){return shadow(this,"renderer",FontRendererFactory.create(this,!0))}#je(e){const t=Object.create(null);for(const n of e){const e=this[n];void 0!==e&&(t[n]=e)}return t}exportData(){return{buffer:compileFontInfo(this.#je(ps)),charProcOperatorList:this.charProcOperatorList,extra:this.fontExtraProperties?this.#je(ds):void 0}}fallbackToSystemFont(e){this.missingFile=!0;const{name:t,type:n}=this;let a=normalizeFontName(t);const s=za(),r=Ua(),i=!!s[a],o=!(!r[a]||!s[r[a]]);a=s[a]||r[a]||a;const l=es()[a];if(l){isNaN(this.ascent)&&(this.ascent=l.ascent/ms);isNaN(this.descent)&&(this.descent=l.descent/ms);isNaN(this.capHeight)&&(this.capHeight=l.capHeight/ms)}this.bold=/bold/i.test(a);this.italic=/oblique|italic/i.test(a);this.black=/Black/.test(t);const f=/Narrow/.test(t);this.remeasure=(!i||f)&&Object.keys(this.widths).length>0;if((i||o)&&"CIDFontType2"===n&&this.cidEncoding.startsWith("Identity-")){const n=e.cidToGidMap,a=[];if(/Trebuchet/i.test(t)){applyStandardFontGlyphMap(a,Ka());applyStandardFontGlyphMap(a,Va())}else{applyStandardFontGlyphMap(a,Ga());/Arial-?Black/i.test(t)?applyStandardFontGlyphMap(a,$a()):/Calibri/i.test(t)&&applyStandardFontGlyphMap(a,Ya())}if(n){for(const e in a){const t=a[e];void 0!==n[t]&&(a[+e]=n[t])}n.length!==this.toUnicode.length&&e.hasIncludedToUnicodeMap&&this.toUnicode instanceof IdentityToUnicodeMap&&this.toUnicode.forEach(function(e,t){const s=a[e];void 0===n[s]&&(a[+e]=t)})}this.toUnicode instanceof IdentityToUnicodeMap||this.toUnicode.forEach(function(e,t){a[+e]=t});this.toFontChar=a;this.toUnicode=new ToUnicodeMap(a)}else if(/Symbol/i.test(a)){const e=this.composite&&this.cidEncoding.startsWith("Identity-");this.toFontChar=buildToFontChar(e?gs():ga,wa(),this.differences)}else if(/Dingbats/i.test(a))this.toFontChar=buildToFontChar(ba,ja(),this.differences);else if(i||o){const e=buildToFontChar(this.defaultEncoding,wa(),this.differences);"CIDFontType2"!==n||this.cidEncoding.startsWith("Identity-")||this.toUnicode instanceof IdentityToUnicodeMap||this.toUnicode.forEach(function(t,n){e[+t]=n});this.toFontChar=e}else{const e=wa(),n=[];this.toUnicode.forEach((t,a)=>{if(!this.composite){const n=getUnicodeForGlyph(this.differences[t]||this.defaultEncoding[t],e);-1!==n&&(a=n)}n[+t]=a});this.composite&&this.toUnicode instanceof IdentityToUnicodeMap&&/Tahoma|Verdana/i.test(t)&&applyStandardFontGlyphMap(n,Ga());this.toFontChar=n}amendFallbackToUnicode(e);this.loadedName=a.split("-",1)[0]}checkAndRepair(e,t,n){const a=["OS/2","cmap","head","hhea","hmtx","maxp","name","post","loca","glyf","fpgm","prep","cvt ","CFF "];function readTables(e,t){const n=Object.create(null);n["OS/2"]=null;n.cmap=null;n.head=null;n.hhea=null;n.hmtx=null;n.maxp=null;n.name=null;n.post=null;for(let s=0;s>>0,a=e.getInt32()>>>0,s=e.getInt32()>>>0,r=e.pos;e.pos=e.start||0;e.skip(a);const i=e.getBytes(s);e.pos=r;if("head"===t){i[8]=i[9]=i[10]=i[11]=0;i[17]|=32}return{tag:t,checksum:n,length:s,offset:a,data:i,view:"CFF "===t?null:new DataView(i.buffer,i.byteOffset,i.byteLength)}}function readOpenTypeHeader(e){return{version:e.getString(4),numTables:e.getUint16(),searchRange:e.getUint16(),entrySelector:e.getUint16(),rangeShift:e.getUint16()}}function sanitizeGlyph(e,t,n,a,s,r){const i={length:0,sizeOfInstructions:0};if(t<0||t>=e.length||n>e.length||n-t<=12)return i;const o=e.subarray(t,n),l=signedInt16(o[2],o[3]),f=signedInt16(o[4],o[5]),c=signedInt16(o[6],o[7]),h=signedInt16(o[8],o[9]);if(l>c){writeSignedInt16(o,2,c);writeSignedInt16(o,6,l)}if(f>h){writeSignedInt16(o,4,h);writeSignedInt16(o,8,f)}const u=signedInt16(o[0],o[1]);if(u<0){if(u<-1)return i;a.set(o,s);i.length=o.length;return i}let m,p=10,d=0;for(m=0;mo.length)return i;if(!r&&b>0){a.set(o.subarray(0,g),s);a.set([0,0],s+g);a.set(o.subarray(w,k),s+g+2);k-=b;o.length-k>3&&(k=k+3&-4);i.length=k;return i}if(o.length-k>3){k=k+3&-4;a.set(o.subarray(0,k),s);i.length=k;return i}a.set(o,s);i.length=o.length;return i}function readNameTable(e){const n=(t.start||0)+e.offset;t.pos=n;const a=[[],[]],s=[],r=e.length,i=n+r;if(0!==t.getUint16()||r<6)return[a,s];const o=t.getUint16(),l=t.getUint16();let f,c;for(f=0;fi)continue;t.pos=r;const o=e.name;if(e.encoding){let n="";for(let a=0,s=e.length;a0&&(f+=e-1)}}else{if(g||w){warn("TT: nested FDEFs not allowed");d=!0}g=!0;h=f;i=u.pop();t.functionsDefined[i]={data:l,i:f}}else if(!g&&!w){i=u.at(-1);if(isNaN(i))info("TT: CALL empty stack (or invalid entry).");else{t.functionsUsed[i]=!0;if(i in t.functionsStackDeltas){const e=u.length+t.functionsStackDeltas[i];if(e<0){warn("TT: CALL invalid functions stack delta.");t.hintsValid=!1;return}u.length=e}else if(i in t.functionsDefined&&!p.includes(i)){m.push({data:l,i:f,stackTop:u.length-1});p.push(i);o=t.functionsDefined[i];if(!o){warn("TT: CALL non-existent function");t.hintsValid=!1;return}l=o.data;f=o.i}}}if(!g&&!w){let t=0;e<=142?t=s[e]:e>=192&&e<=223?t=-1:e>=224&&(t=-2);if(e>=113&&e<=117){a=u.pop();isNaN(a)||(t=2*-a)}for(;t<0&&u.length>0;){u.pop();t++}for(;t>0;){u.push(NaN);t--}}}t.tooComplexToFollowFunctions=d;const j=[l];f>l.length&&j.push(new Uint8Array(f-l.length));if(h>c){warn("TT: complementing a missing function tail");j.push(new Uint8Array([34,45]))}!function foldTTTable(e,t){if(t.length>1){let n,a,s=0;for(n=0,a=t.length;n>>0,r=[];for(let t=0;t>>0);const i={ttcTag:t,majorVersion:n,minorVersion:a,numFonts:s,offsetTable:r};switch(n){case 1:return i;case 2:i.dsigTag=e.getInt32()>>>0;i.dsigLength=e.getInt32()>>>0;i.dsigOffset=e.getInt32()>>>0;return i}throw new FormatError(`Invalid TrueType Collection majorVersion: ${n}.`)}(e),s=t.split("+");let r;for(let i=0;i=32))throw new FormatError('"maxp" table has a wrong version number');c=65536}writeUint32(i.maxp.data,0,c)}let u=int16(i.head.data[50],i.head.data[51]);if(i.loca){const e=u?4*(h+1):2*(h+1);if(i.loca.length!==e){warn("Incorrect 'loca' table length -- attempting to fix it.");const n=Object.values(i).filter(Boolean).sort((e,t)=>e.offset-t.offset),a=n.indexOf(i.loca),s=n[a+1]||null;if(s&&i.loca.offset+e>8&255;o[n+1]=255&a;writeSignedInt16(o,n+2,Math.round(e[t]*signedInt16(o[n+2],o[n+3])))}}let m=h+1,p=!0;if(m>65535){p=!1;m=h;warn("Not enough space in glyfs to duplicate first glyph.")}let d=0,g=0;if(c>=65536&&i.maxp.length>=32){t.pos+=8;if(t.getUint16()>2){i.maxp.data[14]=0;i.maxp.data[15]=2}t.pos+=4;d=t.getUint16();t.pos+=4;g=t.getUint16()}else if(o&&20480===c){const e=new Uint8Array(32);writeUint32(e,0,65536);e[4]=h>>8&255;e[5]=255&h;e.fill(255,6,14);e[15]=2;e[28]=255;e[29]=255;e[31]=16;i.maxp.data=e;i.maxp.length=32;c=65536}i.maxp.data[4]=m>>8;i.maxp.data[5]=255&m;const b=function sanitizeTTPrograms(e,t,n,a){const s={functionsDefined:[],functionsUsed:[],functionsStackDeltas:[],tooComplexToFollowFunctions:!1,hintsValid:!0};e&&sanitizeTTProgram(e,s);t&&sanitizeTTProgram(t,s);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 n=0,a=e.functionsUsed.length;nt){warn("TT: invalid function id: "+n);e.hintsValid=!1;return}if(e.functionsUsed[n]&&!e.functionsDefined[n]){warn("TT: undefined function: "+n);e.hintsValid=!1;return}}}(s,a);if(n&&1&n.length){const e=new Uint8Array(n.length+1);e.set(n.data);n.data=e}return s.hintsValid}(i.fpgm,i.prep,i["cvt "],d);if(!b){delete i.fpgm;delete i.prep;delete i["cvt "]}!function sanitizeMetrics(e,t,n,a,s,r){if(!t){n&&(n.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 i=e.getUint16();e.pos+=8;e.pos+=2;let o=e.getUint16();if(0!==i){if(!(2&int16(a.data[44],a.data[45]))){t.data[22]=0;t.data[23]=0}}if(o>s){info(`The numOfMetrics (${o}) should not be greater than the numGlyphs (${s}).`);o=s;t.data[34]=(65280&o)>>8;t.data[35]=255&o}const l=s-o-(n.length-4*o>>1);if(l>0){const e=new Uint8Array(n.length+2*l);e.set(n.data);if(r){e[n.length]=n.data[2];e[n.length+1]=n.data[3]}n.data=e}}(t,i.hhea,i.hmtx,i.head,m,p);if(!i.head)throw new FormatError('Required "head" table is not found');!function sanitizeHead(e,t,n){const{data:a,view:s}=e,r=s.getInt32(0);if(r>>16!=1){info("Attempting to fix invalid version in head table: "+r);s.setInt32(0,65536)}const i=signedInt16(a[50],a[51]);if(i<0||i>1){info("Attempting to fix invalid indexToLocFormat in head table: "+i);const e=t+1;if(n===e<<1){a[50]=0;a[51]=0}else{if(n!==e<<2)throw new FormatError("Could not fix indexToLocFormat: "+i);a[50]=0;a[51]=1}}}(i.head,h,o?i.loca.length:0);let w=Object.create(null);if(o){const e=function sanitizeGlyphLocations(e,t,n,a,s,r,i){let o,l,f;if(a){o=4;l=function fontItemDecodeLong(e,t){return e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3]};f=function fontItemEncodeLong(e,t,n){e[t]=n>>>24&255;e[t+1]=n>>16&255;e[t+2]=n>>8&255;e[t+3]=255&n}}else{o=2;l=function fontItemDecode(e,t){return e[t]<<9|e[t+1]<<1};f=function fontItemEncode(e,t,n){e[t]=n>>9&255;e[t+1]=n>>1&255}}const c=r?n+1:n,h=o*(1+c),u=new Uint8Array(h);u.set(e.data.subarray(0,h));e.data=u;const m=t.data,p=m.length,d=new Uint8Array(p);let g,b;const w=[];for(g=0,b=0;gp&&(e=p);w.push({index:g,offset:e,endOffset:0})}w.sort((e,t)=>e.offset-t.offset);for(g=0;ge.index-t.index);for(g=0;g=0)continue;const i=[];let o=n+Qa;for(;o+4<=r;){const e=a.getUint16(o),t=a.getUint16(o+2);let n=4+(1&e?4:2);8&e?n+=2:64&e?n+=4:128&e&&(n+=8);i.push({gid:t,offset:o,size:n,flags:e});o+=n;if(!(32&e))break}i.length&&(s[e]=i)}const r=new Uint8Array(n),i=new Map;for(let e=0;e0;){const e=t.at(-1),a=s[e.node];if(!a||e.idx>=a.length){r[e.node]=2;t.pop();continue}const o=e.idx++,l=a[o].gid;if(!(l>=n||2===r[l]))if(0!==r[l])i.getOrInsertComputed(e.node,makeSet).add(o);else{r[l]=1;t.push({node:l,idx:0})}}}const o=new Set;for(const[n,r]of i){const i=s[n],l=[];for(let e=0;ei&&(i=e.sizeOfInstructions);q+=t;f(u,b,q)}if(0===q){const e=new Uint8Array([0,1,0,0,0,0,0,0,0,0,0,0,0,0,49,0]);for(g=0,b=o;gn+q)t.data=d.subarray(0,n+q);else{t.data=new Uint8Array(n+q);t.data.set(d.subarray(0,q))}t.data.set(d.subarray(0,n),q);f(e.data,u.length-o,q+n)}else t.data=d.subarray(0,q);return{missingGlyphs:y,maxSizeOfInstructions:i}}(i.loca,i.glyf,h,u,b,p,g);w=e.missingGlyphs;if(c>=65536&&i.maxp.length>=32){i.maxp.data[26]=e.maxSizeOfInstructions>>8;i.maxp.data[27]=255&e.maxSizeOfInstructions}}if(!i.hhea)throw new FormatError('Required "hhea" table is not found');if(0===i.hhea.data[10]&&0===i.hhea.data[11]){i.hhea.data[10]=255;i.hhea.data[11]=255}const j={unitsPerEm:int16(i.head.data[18],i.head.data[19]),yMax:signedInt16(i.head.data[42],i.head.data[43]),yMin:signedInt16(i.head.data[38],i.head.data[39]),ascent:signedInt16(i.hhea.data[4],i.hhea.data[5]),descent:signedInt16(i.hhea.data[6],i.hhea.data[7]),lineGap:signedInt16(i.hhea.data[8],i.hhea.data[9])};this.ascent=j.ascent/j.unitsPerEm;this.descent=j.descent/j.unitsPerEm;this.lineGap=j.lineGap/j.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;i.post&&function readPostScriptTable(e,n,a){const s=(t.start||0)+e.offset;t.pos=s;const r=s+e.length,i=t.getInt32();t.skip(28);let o,l,f=!0;switch(i){case 65536:o=Ia;break;case 131072:const e=t.getUint16();if(e!==a){f=!1;break}const s=[];for(l=0;l=32768){f=!1;break}s.push(e)}if(!f)break;const c=[];for(;t.pos65535)throw new FormatError("Max size of CID is 65,535");let s=-1;t?s=a:void 0!==e[a]&&(s=e[a]);s>=0&&s>>0;let c=!1;if(o?.platformId!==s||o?.encodingId!==r){if(0!==s||0!==r&&1!==r&&3!==r)if(1===s&&0===r)c=!0;else if(3!==s||1!==r||!a&&o){if(n&&3===s&&0===r){c=!0;let n=!0;if(e>3;e.push(a);n=Math.max(a,n)}const a=[];for(let e=0;e<=n;e++)a.push({firstCode:t.getUint16(),entryCount:t.getUint16(),idDelta:signedInt16(t.getByte(),t.getByte()),idRangePos:t.pos+t.getUint16()});for(let n=0;n<256;n++)if(0===e[n]){t.pos=a[0].idRangePos+2*n;m=t.getUint16();h.push({charCode:n,glyphId:m})}else{const s=a[e[n]];for(u=0;u>1;t.skip(6);const n=[];let a;for(a=0;a>1)-(e-a);s.offsetIndex=i;o=Math.max(o,i+s.end-s.start+1)}else s.offsetIndex=-1}const l=[];for(u=0;u>>0;for(u=0;u>>0,n=t.getInt32()>>>0;let a=t.getInt32()>>>0;for(let t=e;t<=n;t++)h.push({charCode:t,glyphId:a++})}}}const p=[],d=new Set;for(const e of h){const{charCode:t}=e;if(!d.has(t)){d.add(t);p.push(e)}}return{platformId:o.platformId,encodingId:o.encodingId,mappings:p.sort((e,t)=>e.charCode-t.charCode),hasShortCmap:c}}(i.cmap,t,this.isSymbolicFont,n.hasEncoding),a=e.platformId,s=e.encodingId,r=e.mappings;let o=[],l=!1;!n.hasEncoding||"MacRomanEncoding"!==n.baseEncodingName&&"WinAnsiEncoding"!==n.baseEncodingName||(o=getEncoding(n.baseEncodingName));if(n.hasEncoding&&!this.isSymbolicFont&&(3===a&&1===s||1===a&&0===s)){const e=wa();for(let t=0;t<256;t++){let i;i=void 0!==this.differences[t]?this.differences[t]:o.length&&""!==o[t]?o[t]:pa[t];if(!i)continue;const l=recoverGlyphName(i,e);let f;3===a&&1===s?f=e[l]:1===a&&0===s&&(f=ma.indexOf(l));if(void 0===f){if(!n.glyphNames&&n.hasIncludedToUnicodeMap&&!(this.toUnicode instanceof IdentityToUnicodeMap)){const e=this.toUnicode.get(t);e&&(f=e.codePointAt(0))}if(void 0===f)continue}for(const e of r)if(e.charCode===f){k[t]=e.glyphId;break}}}else if(0===a){for(const e of r)k[e.charCode]=e.glyphId;l=!0}else if(3===a&&0===s)for(const e of r){let t=e.charCode;t>=61440&&t<=61695&&(t&=255);k[t]=e.glyphId}else for(const e of r)k[e.charCode]=e.glyphId;if(n.glyphNames&&(o.length||this.differences.length))for(let e=0;e<256;++e){if(!l&&void 0!==k[e])continue;const t=this.differences[e]||o[e];if(!t)continue;const a=n.glyphNames.indexOf(t);a>0&&hasGlyph(a)&&(k[e]=a)}!n.isInternalFont&&void 0===k[0]&&hasGlyph(0)&&(k[0]=0)}0===k.length&&(k[0]=0);const y=p?m-1:0;if(!n.cssFontInfo){const e=adjustMapping(k,hasGlyph,y,this.toUnicode);this.toFontChar=e.toFontChar;i.cmap={tag:"cmap",data:createCmapTable(e.charCodeToGlyphId,e.toUnicodeExtraMap,m)};i["OS/2"]&&function validateOS2Table(e,t){t.pos=(t.start||0)+e.offset;const n=t.getUint16(),a=[78,86,96,96,96,100][n];if(void 0===a||e.lengtht.getUint16())return!1;t.skip(6);if(0===t.getUint16())return!1;e.data[8]=e.data[9]=0;return!0}(i["OS/2"],t)||(i["OS/2"]={tag:"OS/2",data:createOS2Table(n,e.charCodeToGlyphId,j)})}if(i.name){const[t,a]=readNameTable(i.name);i.name.data=createNameTable(e,t);this.psName=t[0][6]||null;n.composite||function adjustTrueTypeToUnicode(e,t,n){if(e.isInternalFont)return;if(e.hasIncludedToUnicodeMap)return;if(e.hasEncoding)return;if(e.toUnicode instanceof IdentityToUnicodeMap)return;if(!t)return;if(0===n.length)return;if(e.defaultEncoding===da)return;for(const e of n)if(!isWinNameRecord(e))return;const a=da,s=[],r=wa();for(const e in a){const t=a[e];if(""===t)continue;const n=r[t];void 0!==n&&(s[e]=String.fromCharCode(n))}s.length>0&&e.toUnicode.amend(s)}(n,this.isSymbolicFont,a)}else i.name={tag:"name",data:createNameTable(this.name)};const q=new OpenTypeFileBuilder(r.version);for(const e in i)q.addTable(e,i[e].data);return q.toArray()}convert(e,t,n){n.fixedPitch=!1;n.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 n=[],a=wa();for(const s in t){if(e.hasEncoding&&(e.baseEncodingName||void 0!==e.differences[s]))continue;const r=getUnicodeForGlyph(t[s],a);-1!==r&&(n[s]=String.fromCharCode(r))}n.length>0&&e.toUnicode.amend(n)}(n,n.builtInEncoding);const s=t instanceof CFFFont?t.numGlyphs-1:1,r=t.getGlyphMapping(n);let i=null,o=r,l=null;if(!n.cssFontInfo){i=adjustMapping(r,t.hasGlyphId.bind(t),s,this.toUnicode);this.toFontChar=i.toFontChar;o=i.charCodeToGlyphId;l=i.toUnicodeExtraMap}const f=t.numGlyphs;function getCharCodes(e,t){let n=null;for(const a in e)t===e[a]&&(n||=[]).push(0|a);return n}function createCharCode(e,t){for(const n in e)if(t===e[n])return 0|n;i.charCodeToGlyphId[i.nextAvailableFontCharCode]=t;return i.nextAvailableFontCharCode++}const c=t.seacs;if(i&&c?.length){const e=n.fontMatrix||a,s=t.getCharset(),o=Object.create(null);for(let t in c){t|=0;const n=c[t],a=pa[n[2]],l=pa[n[3]],f=s.indexOf(a),h=s.indexOf(l);if(f<0||h<0)continue;const u={x:n[0]*e[0]+n[1]*e[2]+e[4],y:n[0]*e[1]+n[1]*e[3]+e[5]},m=getCharCodes(r,t);if(m)for(const e of m){const t=i.charCodeToGlyphId,n=createCharCode(t,f),a=createCharCode(t,h);o[e]={baseFontCharCode:n,accentFontCharCode:a,accentOffset:u}}}n.seacMap=o}const h=n.fontMatrix?1/Math.max(...n.fontMatrix.slice(0,4).map(Math.abs)):1e3,u=new OpenTypeFileBuilder("OTTO");u.addTable("CFF ",t.data);u.addTable("OS/2",createOS2Table(n,o));u.addTable("cmap",createCmapTable(o,l,f));u.addTable("head",function fontTableHead(){const e=[0,0,0,0,158,11,126,39],t=new DataBuilder({exactLength:54});t.setArray([0,1,0,0]);t.setArray([0,0,16,0]);t.skip(4);t.setArray([95,15,60,245]);t.skip(2);t.setSafeInt16(h);t.setArray(e);t.setArray(e);t.skip(2);t.setSafeInt16(n.descent);t.setArray([15,255]);t.setSafeInt16(n.ascent);t.setInt16(n.italicAngle?2:0);t.setArray([0,17]);t.skip(6);return t.data}());u.addTable("hhea",function fontTableHhea(){const e=new DataBuilder({exactLength:36});e.setArray([0,1,0,0]);e.setSafeInt16(n.ascent);e.setSafeInt16(n.descent);e.skip(2);e.setArray([255,255]);e.skip(6);e.setSafeInt16(n.capHeight);e.setSafeInt16(Math.tan(n.italicAngle)*n.xHeight);e.skip(12);e.setInt16(f);return e.data}());u.addTable("hmtx",function fontTableHmtx(){const e=t.charstrings,n=t.cff?.widths??null,a=new DataBuilder({exactLength:4*f});a.skip(4);for(let t=1,s=f;t=65520&&e<=65535?0:e>=62976&&e<=63743?ka()[e]||e:173===e?45:e}(n)}this.isType3Font&&(s=n);let c=null;if(this.seacMap?.[e]){f=!0;const t=this.seacMap[e];n=t.baseFontCharCode;c={fontChar:String.fromCodePoint(t.accentFontCharCode),offset:t.accentOffset}}let h="";"number"==typeof n&&(n<=1114111?h=String.fromCodePoint(n):warn(`charToGlyph - invalid fontCharCode: ${n}`));if(this.missingFile&&this.vertical&&1===h.length){const e=Fa()[h.charCodeAt(0)];e&&(h=l=String.fromCharCode(e))}r=new fonts_Glyph(e,h,l,c,a,o,s,t,f);this.#we.set(e,r);return r}charsToGlyphs(e){let t=this.#be.get(e);if(t)return t;t=[];if(this.cMap){const n=Object.create(null),a=e.length;let s=0;for(;st.length%2==1,a=this.toUnicode instanceof IdentityToUnicodeMap?e=>this.toUnicode.charCodeOf(e):e=>this.toUnicode.charCodeOf(String.fromCodePoint(e));for(let s=0,r=e.length;s65535&&s++;if(this.toUnicode){const e=a(r);if(-1!==e){if(hasCurrentBufErrors()){t.push(n.join(""));n.length=0}for(let t=(this.cMap?this.cMap.getCharCodeLength(e):1)-1;t>=0;t--)n.push(String.fromCharCode(e>>8*t&255));continue}}if(!hasCurrentBufErrors()){t.push(n.join(""));n.length=0}n.push(String.fromCodePoint(r))}t.push(n.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 bs=[1.3877,1,1,1,.97801,.92482,.89552,.91133,.81988,.97566,.98152,.93548,.93548,1.2798,.85284,.92794,1,.96134,1.54657,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.82845,.82845,.85284,.85284,.85284,.75859,.92138,.83908,.7762,.73293,.87289,.73133,.7514,.81921,.87356,.95958,.59526,.75727,.69225,1.04924,.9121,.86943,.79795,.88198,.77958,.70864,.81055,.90399,.88653,.96017,.82577,.77892,.78257,.97507,1.54657,.97507,.85284,.89552,.90176,.88762,.8785,.75241,.8785,.90518,.95015,.77618,.8785,.88401,.91916,.86304,.88401,.91488,.8785,.8801,.8785,.8785,.91343,.7173,1.04106,.8785,.85075,.95794,.82616,.85162,.79492,.88331,1.69808,.88331,.85284,.97801,.89552,.91133,.89552,.91133,1.7801,.89552,1.24487,1.13254,1.12401,.96839,.85284,.68787,.70645,.85592,.90747,1.01466,1.0088,.90323,1,1.07463,1,.91056,.75806,1.19118,.96839,.78864,.82845,.84133,.75859,.83908,.83908,.83908,.83908,.83908,.83908,.77539,.73293,.73133,.73133,.73133,.73133,.95958,.95958,.95958,.95958,.88506,.9121,.86943,.86943,.86943,.86943,.86943,.85284,.87508,.90399,.90399,.90399,.90399,.77892,.79795,.90807,.88762,.88762,.88762,.88762,.88762,.88762,.8715,.75241,.90518,.90518,.90518,.90518,.88401,.88401,.88401,.88401,.8785,.8785,.8801,.8801,.8801,.8801,.8801,.90747,.89049,.8785,.8785,.8785,.8785,.85162,.8785,.85162,.83908,.88762,.83908,.88762,.83908,.88762,.73293,.75241,.73293,.75241,.73293,.75241,.73293,.75241,.87289,.83016,.88506,.93125,.73133,.90518,.73133,.90518,.73133,.90518,.73133,.90518,.73133,.90518,.81921,.77618,.81921,.77618,.81921,.77618,1,1,.87356,.8785,.91075,.89608,.95958,.88401,.95958,.88401,.95958,.88401,.95958,.88401,.95958,.88401,.76229,.90167,.59526,.91916,1,1,.86304,.69225,.88401,1,1,.70424,.79468,.91926,.88175,.70823,.94903,.9121,.8785,1,1,.9121,.8785,.87802,.88656,.8785,.86943,.8801,.86943,.8801,.86943,.8801,.87402,.89291,.77958,.91343,1,1,.77958,.91343,.70864,.7173,.70864,.7173,.70864,.7173,.70864,.7173,1,1,.81055,.75841,.81055,1.06452,.90399,.8785,.90399,.8785,.90399,.8785,.90399,.8785,.90399,.8785,.90399,.8785,.96017,.95794,.77892,.85162,.77892,.78257,.79492,.78257,.79492,.78257,.79492,.9297,.56892,.83908,.88762,.77539,.8715,.87508,.89049,1,1,.81055,1.04106,1.20528,1.20528,1,1.15543,.70674,.98387,.94721,1.33431,1.45894,.95161,1.06303,.83908,.80352,.57184,.6965,.56289,.82001,.56029,.81235,1.02988,.83908,.7762,.68156,.80367,.73133,.78257,.87356,.86943,.95958,.75727,.89019,1.04924,.9121,.7648,.86943,.87356,.79795,.78275,.81055,.77892,.9762,.82577,.99819,.84896,.95958,.77892,.96108,1.01407,.89049,1.02988,.94211,.96108,.8936,.84021,.87842,.96399,.79109,.89049,1.00813,1.02988,.86077,.87445,.92099,.84723,.86513,.8801,.75638,.85714,.78216,.79586,.87965,.94211,.97747,.78287,.97926,.84971,1.02988,.94211,.8801,.94211,.84971,.73133,1,1,1,1,1,1,1,1,1,1,1,1,.90264,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,1,1,1,1,1,1,1,1,1,1,.90518,1,1,1,1,1,1,1,1,1,1,1,1,.90548,1,1,1,1,1,1,.96017,.95794,.96017,.95794,.96017,.95794,.77892,.85162,1,1,.89552,.90527,1,.90363,.92794,.92794,.92794,.92794,.87012,.87012,.87012,.89552,.89552,1.42259,.71143,1.06152,1,1,1.03372,1.03372,.97171,1.4956,2.2807,.93835,.83406,.91133,.84107,.91133,1,1,1,.72021,1,1.23108,.83489,.88525,.88525,.81499,.90527,1.81055,.90527,1.81055,1.31006,1.53711,.94434,1.08696,1,.95018,.77192,.85284,.90747,1.17534,.69825,.9716,1.37077,.90747,.90747,.85356,.90747,.90747,1.44947,.85284,.8941,.8941,.70572,.8,.70572,.70572,.70572,.70572,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,.99862,.99862,1,1,1,1,1,1.08004,.91027,1,1,1,.99862,1,1,1,1,1,1,1,1,1,1,1,1,.90727,.90727,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],ws={lineHeight:1.2207,lineGap:.2207},js=[1.3877,1,1,1,.97801,.92482,.89552,.91133,.81988,.97566,.98152,.93548,.93548,1.2798,.85284,.92794,1,.96134,1.56239,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.82845,.82845,.85284,.85284,.85284,.75859,.92138,.83908,.7762,.71805,.87289,.73133,.7514,.81921,.87356,.95958,.59526,.75727,.69225,1.04924,.90872,.85938,.79795,.87068,.77958,.69766,.81055,.90399,.88653,.96068,.82577,.77892,.78257,.97507,1.529,.97507,.85284,.89552,.90176,.94908,.86411,.74012,.86411,.88323,.95015,.86411,.86331,.88401,.91916,.86304,.88401,.9039,.86331,.86331,.86411,.86411,.90464,.70852,1.04106,.86331,.84372,.95794,.82616,.84548,.79492,.88331,1.69808,.88331,.85284,.97801,.89552,.91133,.89552,.91133,1.7801,.89552,1.24487,1.13254,1.19129,.96839,.85284,.68787,.70645,.85592,.90747,1.01466,1.0088,.90323,1,1.07463,1,.91056,.75806,1.19118,.96839,.78864,.82845,.84133,.75859,.83908,.83908,.83908,.83908,.83908,.83908,.77539,.71805,.73133,.73133,.73133,.73133,.95958,.95958,.95958,.95958,.88506,.90872,.85938,.85938,.85938,.85938,.85938,.85284,.87068,.90399,.90399,.90399,.90399,.77892,.79795,.90807,.94908,.94908,.94908,.94908,.94908,.94908,.85887,.74012,.88323,.88323,.88323,.88323,.88401,.88401,.88401,.88401,.8785,.86331,.86331,.86331,.86331,.86331,.86331,.90747,.89049,.86331,.86331,.86331,.86331,.84548,.86411,.84548,.83908,.94908,.83908,.94908,.83908,.94908,.71805,.74012,.71805,.74012,.71805,.74012,.71805,.74012,.87289,.79538,.88506,.92726,.73133,.88323,.73133,.88323,.73133,.88323,.73133,.88323,.73133,.88323,.81921,.86411,.81921,.86411,.81921,.86411,1,1,.87356,.86331,.91075,.8777,.95958,.88401,.95958,.88401,.95958,.88401,.95958,.88401,.95958,.88401,.76467,.90167,.59526,.91916,1,1,.86304,.69225,.88401,1,1,.70424,.77312,.91926,.88175,.70823,.94903,.90872,.86331,1,1,.90872,.86331,.86906,.88116,.86331,.85938,.86331,.85938,.86331,.85938,.86331,.87402,.86549,.77958,.90464,1,1,.77958,.90464,.69766,.70852,.69766,.70852,.69766,.70852,.69766,.70852,1,1,.81055,.75841,.81055,1.06452,.90399,.86331,.90399,.86331,.90399,.86331,.90399,.86331,.90399,.86331,.90399,.86331,.96068,.95794,.77892,.84548,.77892,.78257,.79492,.78257,.79492,.78257,.79492,.9297,.56892,.83908,.94908,.77539,.85887,.87068,.89049,1,1,.81055,1.04106,1.20528,1.20528,1,1.15543,.70088,.98387,.94721,1.33431,1.45894,.95161,1.48387,.83908,.80352,.57118,.6965,.56347,.79179,.55853,.80346,1.02988,.83908,.7762,.67174,.86036,.73133,.78257,.87356,.86441,.95958,.75727,.89019,1.04924,.90872,.74889,.85938,.87891,.79795,.7957,.81055,.77892,.97447,.82577,.97466,.87179,.95958,.77892,.94252,.95612,.8753,1.02988,.92733,.94252,.87411,.84021,.8728,.95612,.74081,.8753,1.02189,1.02988,.84814,.87445,.91822,.84723,.85668,.86331,.81344,.87581,.76422,.82046,.96057,.92733,.99375,.78022,.95452,.86015,1.02988,.92733,.86331,.92733,.86015,.73133,1,1,1,1,1,1,1,1,1,1,1,1,.90631,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,1,1,1,1,1,1,1,1,1,1,.88323,1,1,1,1,1,1,1,1,1,1,1,1,.85174,1,1,1,1,1,1,.96068,.95794,.96068,.95794,.96068,.95794,.77892,.84548,1,1,.89552,.90527,1,.90363,.92794,.92794,.92794,.89807,.87012,.87012,.87012,.89552,.89552,1.42259,.71094,1.06152,1,1,1.03372,1.03372,.97171,1.4956,2.2807,.92972,.83406,.91133,.83326,.91133,1,1,1,.72021,1,1.23108,.83489,.88525,.88525,.81499,.90616,1.81055,.90527,1.81055,1.3107,1.53711,.94434,1.08696,1,.95018,.77192,.85284,.90747,1.17534,.69825,.9716,1.37077,.90747,.90747,.85356,.90747,.90747,1.44947,.85284,.8941,.8941,.70572,.8,.70572,.70572,.70572,.70572,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,.99862,.99862,1,1,1,1,1,1.08004,.91027,1,1,1,.99862,1,1,1,1,1,1,1,1,1,1,1,1,.90727,.90727,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],ks={lineHeight:1.2207,lineGap:.2207},ys=[1.3877,1,1,1,1.17223,1.1293,.89552,.91133,.80395,1.02269,1.15601,.91056,.91056,1.2798,.85284,.89807,1,.90861,1.39543,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.96309,.96309,.85284,.85284,.85284,.83319,.88071,.8675,.81552,.72346,.85193,.73206,.7522,.81105,.86275,.90685,.6377,.77892,.75593,1.02638,.89249,.84118,.77452,.85374,.75186,.67789,.79776,.88844,.85066,.94309,.77818,.7306,.76659,1.10369,1.38313,1.10369,1.06139,.89552,.8739,.9245,.9245,.83203,.9245,.85865,1.09842,.9245,.9245,1.03297,1.07692,.90918,1.03297,.94959,.9245,.92274,.9245,.9245,1.02933,.77832,1.20562,.9245,.8916,.98986,.86621,.89453,.79004,.94152,1.77256,.94152,.85284,.97801,.89552,.91133,.89552,.91133,1.91729,.89552,1.17889,1.13254,1.16359,.92098,.85284,.68787,.71353,.84737,.90747,1.0088,1.0044,.87683,1,1.09091,1,.92229,.739,1.15642,.92098,.76288,.80504,.80972,.75859,.8675,.8675,.8675,.8675,.8675,.8675,.76318,.72346,.73206,.73206,.73206,.73206,.90685,.90685,.90685,.90685,.86477,.89249,.84118,.84118,.84118,.84118,.84118,.85284,.84557,.88844,.88844,.88844,.88844,.7306,.77452,.86331,.9245,.9245,.9245,.9245,.9245,.9245,.84843,.83203,.85865,.85865,.85865,.85865,.82601,.82601,.82601,.82601,.94469,.9245,.92274,.92274,.92274,.92274,.92274,.90747,.86651,.9245,.9245,.9245,.9245,.89453,.9245,.89453,.8675,.9245,.8675,.9245,.8675,.9245,.72346,.83203,.72346,.83203,.72346,.83203,.72346,.83203,.85193,.8875,.86477,.99034,.73206,.85865,.73206,.85865,.73206,.85865,.73206,.85865,.73206,.85865,.81105,.9245,.81105,.9245,.81105,.9245,1,1,.86275,.9245,.90872,.93591,.90685,.82601,.90685,.82601,.90685,.82601,.90685,1.03297,.90685,.82601,.77896,1.05611,.6377,1.07692,1,1,.90918,.75593,1.03297,1,1,.76032,.9375,.98156,.93407,.77261,1.11429,.89249,.9245,1,1,.89249,.9245,.92534,.86698,.9245,.84118,.92274,.84118,.92274,.84118,.92274,.8667,.86291,.75186,1.02933,1,1,.75186,1.02933,.67789,.77832,.67789,.77832,.67789,.77832,.67789,.77832,1,1,.79776,.97655,.79776,1.23023,.88844,.9245,.88844,.9245,.88844,.9245,.88844,.9245,.88844,.9245,.88844,.9245,.94309,.98986,.7306,.89453,.7306,.76659,.79004,.76659,.79004,.76659,.79004,1.09231,.54873,.8675,.9245,.76318,.84843,.84557,.86651,1,1,.79776,1.20562,1.18622,1.18622,1,1.1437,.67009,.96334,.93695,1.35191,1.40909,.95161,1.48387,.8675,.90861,.6192,.7363,.64824,.82411,.56321,.85696,1.23516,.8675,.81552,.7286,.84134,.73206,.76659,.86275,.84369,.90685,.77892,.85871,1.02638,.89249,.75828,.84118,.85984,.77452,.76466,.79776,.7306,.90782,.77818,.903,.87291,.90685,.7306,.99058,1.03667,.94635,1.23516,.9849,.99058,.92393,.8916,.942,1.03667,.75026,.94635,1.0297,1.23516,.90918,.94048,.98217,.89746,.84153,.92274,.82507,.88832,.84438,.88178,1.03525,.9849,1.00225,.78086,.97248,.89404,1.23516,.9849,.92274,.9849,.89404,.73206,1,1,1,1,1,1,1,1,1,1,1,1,.89693,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,1,1,1,1,1,1,1,1,1,1,.85865,1,1,1,1,1,1,1,1,1,1,1,1,.90933,1,1,1,1,1,1,.94309,.98986,.94309,.98986,.94309,.98986,.7306,.89453,1,1,.89552,.90527,1,.90186,1.12308,1.12308,1.12308,1.12308,1.2566,1.2566,1.2566,.89552,.89552,1.42259,.68994,1.03809,1,1,1.0176,1.0176,1.11523,1.4956,2.01462,.97858,.82616,.91133,.83437,.91133,1,1,1,.70508,1,1.23108,.79801,.84426,.84426,.774,.90572,1.81055,.90749,1.81055,1.28809,1.55469,.94434,1.07806,1,.97094,.7589,.85284,.90747,1.19658,.69825,.97622,1.33512,.90747,.90747,.85284,.90747,.90747,1.44947,.85284,.8941,.8941,.70572,.8,.70572,.70572,.70572,.70572,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,.99862,.99862,1,1,1,1,1,1.0336,.91027,1,1,1,.99862,1,1,1,1,1,1,1,1,1,1,1,1,1.05859,1.05859,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],qs={lineHeight:1.2207,lineGap:.2207},vs=[1.3877,1,1,1,1.17223,1.1293,.89552,.91133,.80395,1.02269,1.15601,.91056,.91056,1.2798,.85284,.89807,1,.90861,1.39016,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.96309,.96309,.85284,.85284,.85284,.83319,.88071,.8675,.81552,.73834,.85193,.73206,.7522,.81105,.86275,.90685,.6377,.77892,.75593,1.02638,.89385,.85122,.77452,.86503,.75186,.68887,.79776,.88844,.85066,.94258,.77818,.7306,.76659,1.10369,1.39016,1.10369,1.06139,.89552,.8739,.86128,.94469,.8457,.94469,.89464,1.09842,.84636,.94469,1.03297,1.07692,.90918,1.03297,.95897,.94469,.9482,.94469,.94469,1.04692,.78223,1.20562,.94469,.90332,.98986,.86621,.90527,.79004,.94152,1.77256,.94152,.85284,.97801,.89552,.91133,.89552,.91133,1.91729,.89552,1.17889,1.13254,1.08707,.92098,.85284,.68787,.71353,.84737,.90747,1.0088,1.0044,.87683,1,1.09091,1,.92229,.739,1.15642,.92098,.76288,.80504,.80972,.75859,.8675,.8675,.8675,.8675,.8675,.8675,.76318,.73834,.73206,.73206,.73206,.73206,.90685,.90685,.90685,.90685,.86477,.89385,.85122,.85122,.85122,.85122,.85122,.85284,.85311,.88844,.88844,.88844,.88844,.7306,.77452,.86331,.86128,.86128,.86128,.86128,.86128,.86128,.8693,.8457,.89464,.89464,.89464,.89464,.82601,.82601,.82601,.82601,.94469,.94469,.9482,.9482,.9482,.9482,.9482,.90747,.86651,.94469,.94469,.94469,.94469,.90527,.94469,.90527,.8675,.86128,.8675,.86128,.8675,.86128,.73834,.8457,.73834,.8457,.73834,.8457,.73834,.8457,.85193,.92454,.86477,.9921,.73206,.89464,.73206,.89464,.73206,.89464,.73206,.89464,.73206,.89464,.81105,.84636,.81105,.84636,.81105,.84636,1,1,.86275,.94469,.90872,.95786,.90685,.82601,.90685,.82601,.90685,.82601,.90685,1.03297,.90685,.82601,.77741,1.05611,.6377,1.07692,1,1,.90918,.75593,1.03297,1,1,.76032,.90452,.98156,1.11842,.77261,1.11429,.89385,.94469,1,1,.89385,.94469,.95877,.86901,.94469,.85122,.9482,.85122,.9482,.85122,.9482,.8667,.90016,.75186,1.04692,1,1,.75186,1.04692,.68887,.78223,.68887,.78223,.68887,.78223,.68887,.78223,1,1,.79776,.92188,.79776,1.23023,.88844,.94469,.88844,.94469,.88844,.94469,.88844,.94469,.88844,.94469,.88844,.94469,.94258,.98986,.7306,.90527,.7306,.76659,.79004,.76659,.79004,.76659,.79004,1.09231,.54873,.8675,.86128,.76318,.8693,.85311,.86651,1,1,.79776,1.20562,1.18622,1.18622,1,1.1437,.67742,.96334,.93695,1.35191,1.40909,.95161,1.48387,.86686,.90861,.62267,.74359,.65649,.85498,.56963,.88254,1.23516,.8675,.81552,.75443,.84503,.73206,.76659,.86275,.85122,.90685,.77892,.85746,1.02638,.89385,.75657,.85122,.86275,.77452,.74171,.79776,.7306,.95165,.77818,.89772,.88831,.90685,.7306,.98142,1.02191,.96576,1.23516,.99018,.98142,.9236,.89258,.94035,1.02191,.78848,.96576,.9561,1.23516,.90918,.92578,.95424,.89746,.83969,.9482,.80113,.89442,.85208,.86155,.98022,.99018,1.00452,.81209,.99247,.89181,1.23516,.99018,.9482,.99018,.89181,.73206,1,1,1,1,1,1,1,1,1,1,1,1,.88844,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,1,1,1,1,1,1,1,1,1,1,.89464,1,1,1,1,1,1,1,1,1,1,1,1,.96766,1,1,1,1,1,1,.94258,.98986,.94258,.98986,.94258,.98986,.7306,.90527,1,1,.89552,.90527,1,.90186,1.12308,1.12308,1.12308,1.12308,1.2566,1.2566,1.2566,.89552,.89552,1.42259,.69043,1.03809,1,1,1.0176,1.0176,1.11523,1.4956,2.01462,.99331,.82616,.91133,.84286,.91133,1,1,1,.70508,1,1.23108,.79801,.84426,.84426,.774,.90527,1.81055,.90527,1.81055,1.28809,1.55469,.94434,1.07806,1,.97094,.7589,.85284,.90747,1.19658,.69825,.97622,1.33512,.90747,.90747,.85356,.90747,.90747,1.44947,.85284,.8941,.8941,.70572,.8,.70572,.70572,.70572,.70572,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,.99862,.99862,1,1,1,1,1,1.0336,.91027,1,1,1,.99862,1,1,1,1,1,1,1,1,1,1,1,1,1.05859,1.05859,1,1,1,1.07185,.99413,.96334,1.08065,1,1,1,1,1,1,1,1,1,1,1],Ss={lineHeight:1.2207,lineGap:.2207},As=[.76116,1,1,1.0006,.99998,.99974,.99973,.99973,.99982,.99977,1.00087,.99998,.99998,.99959,1.00003,1.0006,.99998,1.0006,1.0006,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99998,1,1.00003,1.00003,1.00003,1.00026,.9999,.99977,.99977,.99977,.99977,1.00001,1.00026,1.00022,.99977,1.0006,.99973,.99977,1.00026,.99999,.99977,1.00022,1.00001,1.00022,.99977,1.00001,1.00026,.99977,1.00001,1.00016,1.00001,1.00001,1.00026,.99998,1.0006,.99998,1.00003,.99973,.99998,.99973,1.00026,.99973,1.00026,.99973,.99998,1.00026,1.00026,1.0006,1.0006,.99973,1.0006,.99982,1.00026,1.00026,1.00026,1.00026,.99959,.99973,.99998,1.00026,.99973,1.00022,.99973,.99973,1,.99959,1.00077,.99959,1.00003,.99998,.99973,.99973,.99973,.99973,1.00077,.99973,.99998,1.00025,.99968,.99973,1.00003,1.00025,.60299,1.00024,1.06409,1,1,.99998,1,.99973,1.0006,.99998,1,.99936,.99973,1.00002,1.00002,1.00002,1.00026,.99977,.99977,.99977,.99977,.99977,.99977,1,.99977,1.00001,1.00001,1.00001,1.00001,1.0006,1.0006,1.0006,1.0006,.99977,.99977,1.00022,1.00022,1.00022,1.00022,1.00022,1.00003,1.00022,.99977,.99977,.99977,.99977,1.00001,1.00001,1.00026,.99973,.99973,.99973,.99973,.99973,.99973,.99982,.99973,.99973,.99973,.99973,.99973,1.0006,1.0006,1.0006,1.0006,1.00026,1.00026,1.00026,1.00026,1.00026,1.00026,1.00026,1.06409,1.00026,1.00026,1.00026,1.00026,1.00026,.99973,1.00026,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,1.03374,.99977,1.00026,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00022,1.00026,1.00022,1.00026,1.00022,1.00026,1.00022,1.00026,.99977,1.00026,.99977,1.00026,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.00042,.99973,.99973,1.0006,.99977,.99973,.99973,1.00026,1.0006,1.00026,1.0006,1.00026,1.03828,1.00026,.99999,1.00026,1.0006,.99977,1.00026,.99977,1.00026,.99977,1.00026,.9993,.9998,1.00026,1.00022,1.00026,1.00022,1.00026,1.00022,1.00026,1,1.00016,.99977,.99959,.99977,.99959,.99977,.99959,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00026,.99998,1.00026,.8121,1.00026,.99998,.99977,1.00026,.99977,1.00026,.99977,1.00026,.99977,1.00026,.99977,1.00026,.99977,1.00026,1.00016,1.00022,1.00001,.99973,1.00001,1.00026,1,1.00026,1,1.00026,1,1.0006,.99973,.99977,.99973,1,.99982,1.00022,1.00026,1.00001,.99973,1.00026,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,1.00034,.99977,1,.99997,1.00026,1.00078,1.00036,.99973,1.00013,1.0006,.99977,.99977,.99988,.85148,1.00001,1.00026,.99977,1.00022,1.0006,.99977,1.00001,.99999,.99977,1.00069,1.00022,.99977,1.00001,.99984,1.00026,1.00001,1.00024,1.00001,.9999,1,1.0006,1.00001,1.00041,.99962,1.00026,1.0006,.99995,1.00041,.99942,.99973,.99927,1.00082,.99902,1.00026,1.00087,1.0006,1.00069,.99973,.99867,.99973,.9993,1.00026,1.00049,1.00056,1,.99988,.99935,.99995,.99954,1.00055,.99945,1.00032,1.0006,.99995,1.00026,.99995,1.00032,1.00001,1.00008,.99971,1.00019,.9994,1.00001,1.0006,1.00044,.99973,1.00023,1.00047,1,.99942,.99561,.99989,1.00035,.99977,1.00035,.99977,1.00019,.99944,1.00001,1.00021,.99926,1.00035,1.00035,.99942,1.00048,.99999,.99977,1.00022,1.00035,1.00001,.99977,1.00026,.99989,1.00057,1.00001,.99936,1.00052,1.00012,.99996,1.00043,1,1.00035,.9994,.99976,1.00035,.99973,1.00052,1.00041,1.00119,1.00037,.99973,1.00002,.99986,1.00041,1.00041,.99902,.9996,1.00034,.99999,1.00026,.99999,1.00026,.99973,1.00052,.99973,1,.99973,1.00041,1.00075,.9994,1.0003,.99999,1,1.00041,.99955,1,.99915,.99973,.99973,1.00026,1.00119,.99955,.99973,1.0006,.99911,1.0006,1.00026,.99972,1.00026,.99902,1.00041,.99973,.99999,1,1,1.00038,1.0005,1.00016,1.00022,1.00016,1.00022,1.00016,1.00022,1.00001,.99973,1,1,.99973,1,1,.99955,1.0006,1.0006,1.0006,1.0006,1,1,1,.99973,.99973,.99972,1,1,1.00106,.99999,.99998,.99998,.99999,.99998,1.66475,1,.99973,.99973,1.00023,.99973,.99971,1.00047,1.00023,1,.99991,.99984,1.00002,1.00002,1.00002,1.00002,1,1,1,1,1,1,1,.99972,1,1.20985,1.39713,1.00003,1.00031,1.00015,1,.99561,1.00027,1.00031,1.00031,.99915,1.00031,1.00031,.99999,1.00003,.99999,.99999,1.41144,1.6,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.40579,1.40579,1.36625,.99999,1,.99861,.99861,1,1.00026,1.00026,1.00026,1.00026,.99972,.99999,.99999,.99999,.99999,1.40483,1,.99977,1.00054,1,1,.99953,.99962,1.00042,.9995,1,1,1,1,1,1,1,1,.99998,.99998,.99998,.99998,1,1,1,1,1,1,1,1,1,1,1],xs={lineHeight:1.2,lineGap:.2},Cs=[.76116,1,1,1.0006,.99998,.99974,.99973,.99973,.99982,.99977,1.00087,.99998,.99998,.99959,1.00003,1.0006,.99998,1.0006,1.0006,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99998,1,1.00003,1.00003,1.00003,1.00026,.9999,.99977,.99977,.99977,.99977,1.00001,1.00026,1.00022,.99977,1.0006,.99973,.99977,1.00026,.99999,.99977,1.00022,1.00001,1.00022,.99977,1.00001,1.00026,.99977,1.00001,1.00016,1.00001,1.00001,1.00026,.99998,1.0006,.99998,1.00003,.99973,.99998,.99973,1.00026,.99973,1.00026,.99973,.99998,1.00026,1.00026,1.0006,1.0006,.99973,1.0006,.99982,1.00026,1.00026,1.00026,1.00026,.99959,.99973,.99998,1.00026,.99973,1.00022,.99973,.99973,1,.99959,1.00077,.99959,1.00003,.99998,.99973,.99973,.99973,.99973,1.00077,.99973,.99998,1.00025,.99968,.99973,1.00003,1.00025,.60299,1.00024,1.06409,1,1,.99998,1,.99973,1.0006,.99998,1,.99936,.99973,1.00002,1.00002,1.00002,1.00026,.99977,.99977,.99977,.99977,.99977,.99977,1,.99977,1.00001,1.00001,1.00001,1.00001,1.0006,1.0006,1.0006,1.0006,.99977,.99977,1.00022,1.00022,1.00022,1.00022,1.00022,1.00003,1.00022,.99977,.99977,.99977,.99977,1.00001,1.00001,1.00026,.99973,.99973,.99973,.99973,.99973,.99973,.99982,.99973,.99973,.99973,.99973,.99973,1.0006,1.0006,1.0006,1.0006,1.00026,1.00026,1.00026,1.00026,1.00026,1.00026,1.00026,1.06409,1.00026,1.00026,1.00026,1.00026,1.00026,.99973,1.00026,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,1.0044,.99977,1.00026,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00022,1.00026,1.00022,1.00026,1.00022,1.00026,1.00022,1.00026,.99977,1.00026,.99977,1.00026,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,.99971,.99973,.99973,1.0006,.99977,.99973,.99973,1.00026,1.0006,1.00026,1.0006,1.00026,1.01011,1.00026,.99999,1.00026,1.0006,.99977,1.00026,.99977,1.00026,.99977,1.00026,.9993,.9998,1.00026,1.00022,1.00026,1.00022,1.00026,1.00022,1.00026,1,1.00016,.99977,.99959,.99977,.99959,.99977,.99959,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00026,.99998,1.00026,.8121,1.00026,.99998,.99977,1.00026,.99977,1.00026,.99977,1.00026,.99977,1.00026,.99977,1.00026,.99977,1.00026,1.00016,1.00022,1.00001,.99973,1.00001,1.00026,1,1.00026,1,1.00026,1,1.0006,.99973,.99977,.99973,1,.99982,1.00022,1.00026,1.00001,.99973,1.00026,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99977,1,1,1.00026,.99969,.99972,.99981,.9998,1.0006,.99977,.99977,1.00022,.91155,1.00001,1.00026,.99977,1.00022,1.0006,.99977,1.00001,.99999,.99977,.99966,1.00022,1.00032,1.00001,.99944,1.00026,1.00001,.99968,1.00001,1.00047,1,1.0006,1.00001,.99981,1.00101,1.00026,1.0006,.99948,.99981,1.00064,.99973,.99942,1.00101,1.00061,1.00026,1.00069,1.0006,1.00014,.99973,1.01322,.99973,1.00065,1.00026,1.00012,.99923,1,1.00064,1.00076,.99948,1.00055,1.00063,1.00007,.99943,1.0006,.99948,1.00026,.99948,.99943,1.00001,1.00001,1.00029,1.00038,1.00035,1.00001,1.0006,1.0006,.99973,.99978,1.00001,1.00057,.99989,.99967,.99964,.99967,.99977,.99999,.99977,1.00038,.99977,1.00001,.99973,1.00066,.99967,.99967,1.00041,.99998,.99999,.99977,1.00022,.99967,1.00001,.99977,1.00026,.99964,1.00031,1.00001,.99999,.99999,1,1.00023,1,1,.99999,1.00035,1.00001,.99999,.99973,.99977,.99999,1.00058,.99973,.99973,.99955,.9995,1.00026,1.00026,1.00032,.99989,1.00034,.99999,1.00026,1.00026,1.00026,.99973,.45998,.99973,1.00026,.99973,1.00001,.99999,.99982,.99994,.99996,1,1.00042,1.00044,1.00029,1.00023,.99973,.99973,1.00026,.99949,1.00002,.99973,1.0006,1.0006,1.0006,.99975,1.00026,1.00026,1.00032,.98685,.99973,1.00026,1,1,.99966,1.00044,1.00016,1.00022,1.00016,1.00022,1.00016,1.00022,1.00001,.99973,1,1,.99973,1,1,.99955,1.0006,1.0006,1.0006,1.0006,1,1,1,.99973,.99973,.99972,1,1,1.00106,.99999,.99998,.99998,.99999,.99998,1.66475,1,.99973,.99973,1,.99973,.99971,.99978,1,1,.99991,.99984,1.00002,1.00002,1.00002,1.00002,1.00098,1,1,1,1.00049,1,1,.99972,1,1.20985,1.39713,1.00003,1.00031,1.00015,1,.99561,1.00027,1.00031,1.00031,.99915,1.00031,1.00031,.99999,1.00003,.99999,.99999,1.41144,1.6,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.40579,1.40579,1.36625,.99999,1,.99861,.99861,1,1.00026,1.00026,1.00026,1.00026,.99972,.99999,.99999,.99999,.99999,1.40483,1,.99977,1.00054,1,1,.99953,.99962,1.00042,.9995,1,1,1,1,1,1,1,1,.99998,.99998,.99998,.99998,1,1,1,1,1,1,1,1,1,1,1],Is={lineHeight:1.35,lineGap:.2},Fs=[.76116,1,1,1.0006,1.0006,1.00006,.99973,.99973,.99982,1.00001,1.00043,.99998,.99998,.99959,1.00003,1.0006,.99998,1.0006,1.0006,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,1.0006,1,1.00003,1.00003,1.00003,.99973,.99987,1.00001,1.00001,.99977,.99977,1.00001,1.00026,1.00022,.99977,1.0006,1,1.00001,.99973,.99999,.99977,1.00022,1.00001,1.00022,.99977,1.00001,1.00026,.99977,1.00001,1.00016,1.00001,1.00001,1.00026,1.0006,1.0006,1.0006,.99949,.99973,.99998,.99973,.99973,1,.99973,.99973,1.0006,.99973,.99973,.99924,.99924,1,.99924,.99999,.99973,.99973,.99973,.99973,.99998,1,1.0006,.99973,1,.99977,1,1,1,1.00005,1.0009,1.00005,1.00003,.99998,.99973,.99973,.99973,.99973,1.0009,.99973,.99998,1.00025,.99968,.99973,1.00003,1.00025,.60299,1.00024,1.06409,1,1,.99998,1,.9998,1.0006,.99998,1,.99936,.99973,1.00002,1.00002,1.00002,1.00026,1.00001,1.00001,1.00001,1.00001,1.00001,1.00001,1,.99977,1.00001,1.00001,1.00001,1.00001,1.0006,1.0006,1.0006,1.0006,.99977,.99977,1.00022,1.00022,1.00022,1.00022,1.00022,1.00003,1.00022,.99977,.99977,.99977,.99977,1.00001,1.00001,1.00026,.99973,.99973,.99973,.99973,.99973,.99973,.99982,1,.99973,.99973,.99973,.99973,1.0006,1.0006,1.0006,1.0006,.99973,.99973,.99973,.99973,.99973,.99973,.99973,1.06409,1.00026,.99973,.99973,.99973,.99973,1,.99973,1,1.00001,.99973,1.00001,.99973,1.00001,.99973,.99977,1,.99977,1,.99977,1,.99977,1,.99977,1.0288,.99977,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00022,.99973,1.00022,.99973,1.00022,.99973,1.00022,.99973,.99977,.99973,.99977,.99973,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,.99924,1.0006,1.0006,.99946,1.00034,1,.99924,1.00001,1,1,.99973,.99924,.99973,.99924,.99973,1.06311,.99973,1.00024,.99973,.99924,.99977,.99973,.99977,.99973,.99977,.99973,1.00041,.9998,.99973,1.00022,.99973,1.00022,.99973,1.00022,.99973,1,1.00016,.99977,.99998,.99977,.99998,.99977,.99998,1.00001,1,1.00001,1,1.00001,1,1.00001,1,1.00026,1.0006,1.00026,.89547,1.00026,1.0006,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,1.00016,.99977,1.00001,1,1.00001,1.00026,1,1.00026,1,1.00026,1,.99924,.99973,1.00001,.99973,1,.99982,1.00022,1.00026,1.00001,1,1.00026,1.0006,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,1.00001,1,1.00054,.99977,1.00084,1.00007,.99973,1.00013,.99924,1.00001,1.00001,.99945,.91221,1.00001,1.00026,.99977,1.00022,1.0006,1.00001,1.00001,.99999,.99977,.99933,1.00022,1.00054,1.00001,1.00065,1.00026,1.00001,1.0001,1.00001,1.00052,1,1.0006,1.00001,.99945,.99897,.99968,.99924,1.00036,.99945,.99949,1,1.0006,.99897,.99918,.99968,.99911,.99924,1,.99962,1.01487,1,1.0005,.99973,1.00012,1.00043,1,.99995,.99994,1.00036,.99947,1.00019,1.00063,1.00025,.99924,1.00036,.99973,1.00036,1.00025,1.00001,1.00001,1.00027,1.0001,1.00068,1.00001,1.0006,1.0006,1,1.00008,.99957,.99972,.9994,.99954,.99975,1.00051,1.00001,1.00019,1.00001,1.0001,.99986,1.00001,1.00001,1.00038,.99954,.99954,.9994,1.00066,.99999,.99977,1.00022,1.00054,1.00001,.99977,1.00026,.99975,1.0001,1.00001,.99993,.9995,.99955,1.00016,.99978,.99974,1.00019,1.00022,.99955,1.00053,.99973,1.00089,1.00005,.99967,1.00048,.99973,1.00002,1.00034,.99973,.99973,.99964,1.00006,1.00066,.99947,.99973,.98894,.99973,1,.44898,1,.99946,1,1.00039,1.00082,.99991,.99991,.99985,1.00022,1.00023,1.00061,1.00006,.99966,.99973,.99973,.99973,1.00019,1.0008,1,.99924,.99924,.99924,.99983,1.00044,.99973,.99964,.98332,1,.99973,1,1,.99962,.99895,1.00016,.99977,1.00016,.99977,1.00016,.99977,1.00001,1,1,1,.99973,1,1,.99955,.99924,.99924,.99924,.99924,.99998,.99998,.99998,.99973,.99973,.99972,1,1,1.00267,.99999,.99998,.99998,1,.99998,1.66475,1,.99973,.99973,1.00023,.99973,1.00423,.99925,.99999,1,.99991,.99984,1.00002,1.00002,1.00002,1.00002,1.00049,1,1.00245,1,1,1,1,.96329,1,1.20985,1.39713,1.00003,.8254,1.00015,1,1.00035,1.00027,1.00031,1.00031,1.00003,1.00031,1.00031,.99999,1.00003,.99999,.99999,1.41144,1.6,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.40579,1.40579,1.36625,.99999,1,.99861,.99861,1,1.00026,1.00026,1.00026,1.00026,.95317,.99999,.99999,.99999,.99999,1.40483,1,.99977,1.00054,1,1,.99953,.99962,1.00042,.9995,1,1,1,1,1,1,1,1,.99998,.99998,.99998,.99998,1,1,1,1,1,1,1,1,1,1,1],Ts={lineHeight:1.35,lineGap:.2},Rs=[.76116,1,1,1.0006,1.0006,1.00006,.99973,.99973,.99982,1.00001,1.00043,.99998,.99998,.99959,1.00003,1.0006,.99998,1.0006,1.0006,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,1.0006,1,1.00003,1.00003,1.00003,.99973,.99987,1.00001,1.00001,.99977,.99977,1.00001,1.00026,1.00022,.99977,1.0006,1,1.00001,.99973,.99999,.99977,1.00022,1.00001,1.00022,.99977,1.00001,1.00026,.99977,1.00001,1.00016,1.00001,1.00001,1.00026,1.0006,1.0006,1.0006,.99949,.99973,.99998,.99973,.99973,1,.99973,.99973,1.0006,.99973,.99973,.99924,.99924,1,.99924,.99999,.99973,.99973,.99973,.99973,.99998,1,1.0006,.99973,1,.99977,1,1,1,1.00005,1.0009,1.00005,1.00003,.99998,.99973,.99973,.99973,.99973,1.0009,.99973,.99998,1.00025,.99968,.99973,1.00003,1.00025,.60299,1.00024,1.06409,1,1,.99998,1,.9998,1.0006,.99998,1,.99936,.99973,1.00002,1.00002,1.00002,1.00026,1.00001,1.00001,1.00001,1.00001,1.00001,1.00001,1,.99977,1.00001,1.00001,1.00001,1.00001,1.0006,1.0006,1.0006,1.0006,.99977,.99977,1.00022,1.00022,1.00022,1.00022,1.00022,1.00003,1.00022,.99977,.99977,.99977,.99977,1.00001,1.00001,1.00026,.99973,.99973,.99973,.99973,.99973,.99973,.99982,1,.99973,.99973,.99973,.99973,1.0006,1.0006,1.0006,1.0006,.99973,.99973,.99973,.99973,.99973,.99973,.99973,1.06409,1.00026,.99973,.99973,.99973,.99973,1,.99973,1,1.00001,.99973,1.00001,.99973,1.00001,.99973,.99977,1,.99977,1,.99977,1,.99977,1,.99977,1.04596,.99977,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00022,.99973,1.00022,.99973,1.00022,.99973,1.00022,.99973,.99977,.99973,.99977,.99973,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,.99924,1.0006,1.0006,1.00019,1.00034,1,.99924,1.00001,1,1,.99973,.99924,.99973,.99924,.99973,1.02572,.99973,1.00005,.99973,.99924,.99977,.99973,.99977,.99973,.99977,.99973,.99999,.9998,.99973,1.00022,.99973,1.00022,.99973,1.00022,.99973,1,1.00016,.99977,.99998,.99977,.99998,.99977,.99998,1.00001,1,1.00001,1,1.00001,1,1.00001,1,1.00026,1.0006,1.00026,.84533,1.00026,1.0006,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,1.00016,.99977,1.00001,1,1.00001,1.00026,1,1.00026,1,1.00026,1,.99924,.99973,1.00001,.99973,1,.99982,1.00022,1.00026,1.00001,1,1.00026,1.0006,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99928,1,.99977,1.00013,1.00055,.99947,.99945,.99941,.99924,1.00001,1.00001,1.0004,.91621,1.00001,1.00026,.99977,1.00022,1.0006,1.00001,1.00005,.99999,.99977,1.00015,1.00022,.99977,1.00001,.99973,1.00026,1.00001,1.00019,1.00001,.99946,1,1.0006,1.00001,.99978,1.00045,.99973,.99924,1.00023,.99978,.99966,1,1.00065,1.00045,1.00019,.99973,.99973,.99924,1,1,.96499,1,1.00055,.99973,1.00008,1.00027,1,.9997,.99995,1.00023,.99933,1.00019,1.00015,1.00031,.99924,1.00023,.99973,1.00023,1.00031,1.00001,.99928,1.00029,1.00092,1.00035,1.00001,1.0006,1.0006,1,.99988,.99975,1,1.00082,.99561,.9996,1.00035,1.00001,.99962,1.00001,1.00092,.99964,1.00001,.99963,.99999,1.00035,1.00035,1.00082,.99962,.99999,.99977,1.00022,1.00035,1.00001,.99977,1.00026,.9996,.99967,1.00001,1.00034,1.00074,1.00054,1.00053,1.00063,.99971,.99962,1.00035,.99975,.99977,.99973,1.00043,.99953,1.0007,.99915,.99973,1.00008,.99892,1.00073,1.00073,1.00114,.99915,1.00073,.99955,.99973,1.00092,.99973,1,.99998,1,1.0003,1,1.00043,1.00001,.99969,1.0003,1,1.00035,1.00001,.9995,1,1.00092,.99973,.99973,.99973,1.0007,.9995,1,.99924,1.0006,.99924,.99972,1.00062,.99973,1.00114,1.00073,1,.99955,1,1,1.00047,.99968,1.00016,.99977,1.00016,.99977,1.00016,.99977,1.00001,1,1,1,.99973,1,1,.99955,.99924,.99924,.99924,.99924,.99998,.99998,.99998,.99973,.99973,.99972,1,1,1.00267,.99999,.99998,.99998,1,.99998,1.66475,1,.99973,.99973,1.00023,.99973,.99971,.99925,1.00023,1,.99991,.99984,1.00002,1.00002,1.00002,1.00002,1,1,1,1,1,1,1,.96329,1,1.20985,1.39713,1.00003,.8254,1.00015,1,1.00035,1.00027,1.00031,1.00031,.99915,1.00031,1.00031,.99999,1.00003,.99999,.99999,1.41144,1.6,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.40579,1.40579,1.36625,.99999,1,.99861,.99861,1,1.00026,1.00026,1.00026,1.00026,.95317,.99999,.99999,.99999,.99999,1.40483,1,.99977,1.00054,1,1,.99953,.99962,1.00042,.9995,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],Os={lineHeight:1.2,lineGap:.2},Hs=[365,0,333,278,333,474,556,556,889,722,238,333,333,389,584,278,333,278,278,556,556,556,556,556,556,556,556,556,556,333,333,584,584,584,611,975,722,722,722,722,667,611,778,722,278,556,722,611,833,722,778,667,778,722,667,611,722,667,944,667,667,611,333,278,333,584,556,333,556,611,556,611,556,333,611,611,278,278,556,278,889,611,611,611,611,389,556,333,611,556,778,556,556,500,389,280,389,584,333,556,556,556,556,280,556,333,737,370,556,584,737,552,400,549,333,333,333,576,556,278,333,333,365,556,834,834,834,611,722,722,722,722,722,722,1e3,722,667,667,667,667,278,278,278,278,722,722,778,778,778,778,778,584,778,722,722,722,722,667,667,611,556,556,556,556,556,556,889,556,556,556,556,556,278,278,278,278,611,611,611,611,611,611,611,549,611,611,611,611,611,556,611,556,722,556,722,556,722,556,722,556,722,556,722,556,722,556,722,719,722,611,667,556,667,556,667,556,667,556,667,556,778,611,778,611,778,611,778,611,722,611,722,611,278,278,278,278,278,278,278,278,278,278,785,556,556,278,722,556,556,611,278,611,278,611,385,611,479,611,278,722,611,722,611,722,611,708,723,611,778,611,778,611,778,611,1e3,944,722,389,722,389,722,389,667,556,667,556,667,556,667,556,611,333,611,479,611,333,722,611,722,611,722,611,722,611,722,611,722,611,944,778,667,556,667,611,500,611,500,611,500,278,556,722,556,1e3,889,778,611,667,556,611,333,333,333,333,333,333,333,333,333,333,333,465,722,333,853,906,474,825,927,838,278,722,722,601,719,667,611,722,778,278,722,667,833,722,644,778,722,667,600,611,667,821,667,809,802,278,667,615,451,611,278,582,615,610,556,606,475,460,611,541,278,558,556,612,556,445,611,766,619,520,684,446,582,715,576,753,845,278,582,611,582,845,667,669,885,567,711,667,278,276,556,1094,1062,875,610,722,622,719,722,719,722,567,712,667,904,626,719,719,610,702,833,722,778,719,667,722,611,622,854,667,730,703,1005,1019,870,979,719,711,1031,719,556,618,615,417,635,556,709,497,615,615,500,635,740,604,611,604,611,556,490,556,875,556,615,581,833,844,729,854,615,552,854,583,556,556,611,417,552,556,278,281,278,969,906,611,500,615,556,604,778,611,487,447,944,778,944,778,944,778,667,556,333,333,556,1e3,1e3,552,278,278,278,278,500,500,500,556,556,350,1e3,1e3,240,479,333,333,604,333,167,396,556,556,1094,556,885,489,1115,1e3,768,600,834,834,834,834,1e3,500,1e3,500,1e3,500,500,494,612,823,713,584,549,713,979,722,274,549,549,583,549,549,604,584,604,604,708,625,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,729,604,604,354,354,1e3,990,990,990,990,494,604,604,604,604,354,1021,1052,917,750,750,531,656,594,510,500,750,750,611,611,333,333,333,333,333,333,333,333,222,222,333,333,333,333,333,333,333,333],Bs=[-1,-1,-1,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,161,162,163,164,165,166,167,168,169,170,171,172,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,402,506,507,508,509,510,511,536,537,538,539,710,711,713,728,729,730,731,732,733,900,901,902,903,904,905,906,908,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1138,1139,1168,1169,7808,7809,7810,7811,7812,7813,7922,7923,8208,8209,8211,8212,8213,8215,8216,8217,8218,8219,8220,8221,8222,8224,8225,8226,8230,8240,8242,8243,8249,8250,8252,8254,8260,8319,8355,8356,8359,8364,8453,8467,8470,8482,8486,8494,8539,8540,8541,8542,8592,8593,8594,8595,8596,8597,8616,8706,8710,8719,8721,8722,8730,8734,8735,8745,8747,8776,8800,8801,8804,8805,8962,8976,8992,8993,9472,9474,9484,9488,9492,9496,9500,9508,9516,9524,9532,9552,9553,9554,9555,9556,9557,9558,9559,9560,9561,9562,9563,9564,9565,9566,9567,9568,9569,9570,9571,9572,9573,9574,9575,9576,9577,9578,9579,9580,9600,9604,9608,9612,9616,9617,9618,9619,9632,9633,9642,9643,9644,9650,9658,9660,9668,9674,9675,9679,9688,9689,9702,9786,9787,9788,9792,9794,9824,9827,9829,9830,9834,9835,9836,61441,61442,61445,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],Ds=[365,0,333,278,333,474,556,556,889,722,238,333,333,389,584,278,333,278,278,556,556,556,556,556,556,556,556,556,556,333,333,584,584,584,611,975,722,722,722,722,667,611,778,722,278,556,722,611,833,722,778,667,778,722,667,611,722,667,944,667,667,611,333,278,333,584,556,333,556,611,556,611,556,333,611,611,278,278,556,278,889,611,611,611,611,389,556,333,611,556,778,556,556,500,389,280,389,584,333,556,556,556,556,280,556,333,737,370,556,584,737,552,400,549,333,333,333,576,556,278,333,333,365,556,834,834,834,611,722,722,722,722,722,722,1e3,722,667,667,667,667,278,278,278,278,722,722,778,778,778,778,778,584,778,722,722,722,722,667,667,611,556,556,556,556,556,556,889,556,556,556,556,556,278,278,278,278,611,611,611,611,611,611,611,549,611,611,611,611,611,556,611,556,722,556,722,556,722,556,722,556,722,556,722,556,722,556,722,740,722,611,667,556,667,556,667,556,667,556,667,556,778,611,778,611,778,611,778,611,722,611,722,611,278,278,278,278,278,278,278,278,278,278,782,556,556,278,722,556,556,611,278,611,278,611,396,611,479,611,278,722,611,722,611,722,611,708,723,611,778,611,778,611,778,611,1e3,944,722,389,722,389,722,389,667,556,667,556,667,556,667,556,611,333,611,479,611,333,722,611,722,611,722,611,722,611,722,611,722,611,944,778,667,556,667,611,500,611,500,611,500,278,556,722,556,1e3,889,778,611,667,556,611,333,333,333,333,333,333,333,333,333,333,333,333,722,333,854,906,473,844,930,847,278,722,722,610,671,667,611,722,778,278,722,667,833,722,657,778,718,667,590,611,667,822,667,829,781,278,667,620,479,611,278,591,620,621,556,610,479,492,611,558,278,566,556,603,556,450,611,712,605,532,664,409,591,704,578,773,834,278,591,611,591,834,667,667,886,614,719,667,278,278,556,1094,1042,854,622,719,677,719,722,708,722,614,722,667,927,643,719,719,615,687,833,722,778,719,667,722,611,677,781,667,729,708,979,989,854,1e3,708,719,1042,729,556,619,604,534,618,556,736,510,611,611,507,622,740,604,611,611,611,556,889,556,885,556,646,583,889,935,707,854,594,552,865,589,556,556,611,469,563,556,278,278,278,969,906,611,507,619,556,611,778,611,575,467,944,778,944,778,944,778,667,556,333,333,556,1e3,1e3,552,278,278,278,278,500,500,500,556,556,350,1e3,1e3,240,479,333,333,604,333,167,396,556,556,1104,556,885,516,1146,1e3,768,600,834,834,834,834,999,500,1e3,500,1e3,500,500,494,612,823,713,584,549,713,979,722,274,549,549,583,549,549,604,584,604,604,708,625,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,729,604,604,354,354,1e3,990,990,990,990,494,604,604,604,604,354,1021,1052,917,750,750,531,656,594,510,500,750,750,611,611,333,333,333,333,333,333,333,333,222,222,333,333,333,333,333,333,333,333],Ms=[-1,-1,-1,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,161,162,163,164,165,166,167,168,169,170,171,172,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,402,506,507,508,509,510,511,536,537,538,539,710,711,713,728,729,730,731,732,733,900,901,902,903,904,905,906,908,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1138,1139,1168,1169,7808,7809,7810,7811,7812,7813,7922,7923,8208,8209,8211,8212,8213,8215,8216,8217,8218,8219,8220,8221,8222,8224,8225,8226,8230,8240,8242,8243,8249,8250,8252,8254,8260,8319,8355,8356,8359,8364,8453,8467,8470,8482,8486,8494,8539,8540,8541,8542,8592,8593,8594,8595,8596,8597,8616,8706,8710,8719,8721,8722,8730,8734,8735,8745,8747,8776,8800,8801,8804,8805,8962,8976,8992,8993,9472,9474,9484,9488,9492,9496,9500,9508,9516,9524,9532,9552,9553,9554,9555,9556,9557,9558,9559,9560,9561,9562,9563,9564,9565,9566,9567,9568,9569,9570,9571,9572,9573,9574,9575,9576,9577,9578,9579,9580,9600,9604,9608,9612,9616,9617,9618,9619,9632,9633,9642,9643,9644,9650,9658,9660,9668,9674,9675,9679,9688,9689,9702,9786,9787,9788,9792,9794,9824,9827,9829,9830,9834,9835,9836,61441,61442,61445,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],Ns=[365,0,333,278,278,355,556,556,889,667,191,333,333,389,584,278,333,278,278,556,556,556,556,556,556,556,556,556,556,278,278,584,584,584,556,1015,667,667,722,722,667,611,778,722,278,500,667,556,833,722,778,667,778,722,667,611,722,667,944,667,667,611,278,278,278,469,556,333,556,556,500,556,556,278,556,556,222,222,500,222,833,556,556,556,556,333,500,278,556,500,722,500,500,500,334,260,334,584,333,556,556,556,556,260,556,333,737,370,556,584,737,552,400,549,333,333,333,576,537,278,333,333,365,556,834,834,834,611,667,667,667,667,667,667,1e3,722,667,667,667,667,278,278,278,278,722,722,778,778,778,778,778,584,778,722,722,722,722,667,667,611,556,556,556,556,556,556,889,500,556,556,556,556,278,278,278,278,556,556,556,556,556,556,556,549,611,556,556,556,556,500,556,500,667,556,667,556,667,556,722,500,722,500,722,500,722,500,722,625,722,556,667,556,667,556,667,556,667,556,667,556,778,556,778,556,778,556,778,556,722,556,722,556,278,278,278,278,278,278,278,222,278,278,733,444,500,222,667,500,500,556,222,556,222,556,281,556,400,556,222,722,556,722,556,722,556,615,723,556,778,556,778,556,778,556,1e3,944,722,333,722,333,722,333,667,500,667,500,667,500,667,500,611,278,611,354,611,278,722,556,722,556,722,556,722,556,722,556,722,556,944,722,667,500,667,611,500,611,500,611,500,222,556,667,556,1e3,889,778,611,667,500,611,278,333,333,333,333,333,333,333,333,333,333,333,667,278,789,846,389,794,865,775,222,667,667,570,671,667,611,722,778,278,667,667,833,722,648,778,725,667,600,611,667,837,667,831,761,278,667,570,439,555,222,550,570,571,500,556,439,463,555,542,222,500,492,548,500,447,556,670,573,486,603,374,550,652,546,728,779,222,550,556,550,779,667,667,843,544,708,667,278,278,500,1066,982,844,589,715,639,724,667,651,667,544,704,667,917,614,715,715,589,686,833,722,778,725,667,722,611,639,795,667,727,673,920,923,805,886,651,694,1022,682,556,562,522,493,553,556,688,465,556,556,472,564,686,550,556,556,556,500,833,500,835,500,572,518,830,851,621,736,526,492,752,534,556,556,556,378,496,500,222,222,222,910,828,556,472,565,500,556,778,556,492,339,944,722,944,722,944,722,667,500,333,333,556,1e3,1e3,552,222,222,222,222,333,333,333,556,556,350,1e3,1e3,188,354,333,333,500,333,167,365,556,556,1094,556,885,323,1083,1e3,768,600,834,834,834,834,1e3,500,998,500,1e3,500,500,494,612,823,713,584,549,713,979,719,274,549,549,584,549,549,604,584,604,604,708,625,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,729,604,604,354,354,1e3,990,990,990,990,494,604,604,604,604,354,1021,1052,917,750,750,531,656,594,510,500,750,750,500,500,333,333,333,333,333,333,333,333,222,222,294,294,324,324,316,328,398,285],Es=[-1,-1,-1,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,161,162,163,164,165,166,167,168,169,170,171,172,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,402,506,507,508,509,510,511,536,537,538,539,710,711,713,728,729,730,731,732,733,900,901,902,903,904,905,906,908,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1138,1139,1168,1169,7808,7809,7810,7811,7812,7813,7922,7923,8208,8209,8211,8212,8213,8215,8216,8217,8218,8219,8220,8221,8222,8224,8225,8226,8230,8240,8242,8243,8249,8250,8252,8254,8260,8319,8355,8356,8359,8364,8453,8467,8470,8482,8486,8494,8539,8540,8541,8542,8592,8593,8594,8595,8596,8597,8616,8706,8710,8719,8721,8722,8730,8734,8735,8745,8747,8776,8800,8801,8804,8805,8962,8976,8992,8993,9472,9474,9484,9488,9492,9496,9500,9508,9516,9524,9532,9552,9553,9554,9555,9556,9557,9558,9559,9560,9561,9562,9563,9564,9565,9566,9567,9568,9569,9570,9571,9572,9573,9574,9575,9576,9577,9578,9579,9580,9600,9604,9608,9612,9616,9617,9618,9619,9632,9633,9642,9643,9644,9650,9658,9660,9668,9674,9675,9679,9688,9689,9702,9786,9787,9788,9792,9794,9824,9827,9829,9830,9834,9835,9836,61441,61442,61445,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],_s=[365,0,333,278,278,355,556,556,889,667,191,333,333,389,584,278,333,278,278,556,556,556,556,556,556,556,556,556,556,278,278,584,584,584,556,1015,667,667,722,722,667,611,778,722,278,500,667,556,833,722,778,667,778,722,667,611,722,667,944,667,667,611,278,278,278,469,556,333,556,556,500,556,556,278,556,556,222,222,500,222,833,556,556,556,556,333,500,278,556,500,722,500,500,500,334,260,334,584,333,556,556,556,556,260,556,333,737,370,556,584,737,552,400,549,333,333,333,576,537,278,333,333,365,556,834,834,834,611,667,667,667,667,667,667,1e3,722,667,667,667,667,278,278,278,278,722,722,778,778,778,778,778,584,778,722,722,722,722,667,667,611,556,556,556,556,556,556,889,500,556,556,556,556,278,278,278,278,556,556,556,556,556,556,556,549,611,556,556,556,556,500,556,500,667,556,667,556,667,556,722,500,722,500,722,500,722,500,722,615,722,556,667,556,667,556,667,556,667,556,667,556,778,556,778,556,778,556,778,556,722,556,722,556,278,278,278,278,278,278,278,222,278,278,735,444,500,222,667,500,500,556,222,556,222,556,292,556,334,556,222,722,556,722,556,722,556,604,723,556,778,556,778,556,778,556,1e3,944,722,333,722,333,722,333,667,500,667,500,667,500,667,500,611,278,611,375,611,278,722,556,722,556,722,556,722,556,722,556,722,556,944,722,667,500,667,611,500,611,500,611,500,222,556,667,556,1e3,889,778,611,667,500,611,278,333,333,333,333,333,333,333,333,333,333,333,667,278,784,838,384,774,855,752,222,667,667,551,668,667,611,722,778,278,667,668,833,722,650,778,722,667,618,611,667,798,667,835,748,278,667,578,446,556,222,547,578,575,500,557,446,441,556,556,222,500,500,576,500,448,556,690,569,482,617,395,547,648,525,713,781,222,547,556,547,781,667,667,865,542,719,667,278,278,500,1057,1010,854,583,722,635,719,667,656,667,542,677,667,923,604,719,719,583,656,833,722,778,719,667,722,611,635,760,667,740,667,917,938,792,885,656,719,1010,722,556,573,531,365,583,556,669,458,559,559,438,583,688,552,556,542,556,500,458,500,823,500,573,521,802,823,625,719,521,510,750,542,556,556,556,365,510,500,222,278,222,906,812,556,438,559,500,552,778,556,489,411,944,722,944,722,944,722,667,500,333,333,556,1e3,1e3,552,222,222,222,222,333,333,333,556,556,350,1e3,1e3,188,354,333,333,500,333,167,365,556,556,1094,556,885,323,1073,1e3,768,600,834,834,834,834,1e3,500,1e3,500,1e3,500,500,494,612,823,713,584,549,713,979,719,274,549,549,583,549,549,604,584,604,604,708,625,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,729,604,604,354,354,1e3,990,990,990,990,494,604,604,604,604,354,1021,1052,917,750,750,531,656,594,510,500,750,750,500,500,333,333,333,333,333,333,333,333,222,222,294,294,324,324,316,328,398,285],zs=[-1,-1,-1,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,161,162,163,164,165,166,167,168,169,170,171,172,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,402,506,507,508,509,510,511,536,537,538,539,710,711,713,728,729,730,731,732,733,900,901,902,903,904,905,906,908,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1138,1139,1168,1169,7808,7809,7810,7811,7812,7813,7922,7923,8208,8209,8211,8212,8213,8215,8216,8217,8218,8219,8220,8221,8222,8224,8225,8226,8230,8240,8242,8243,8249,8250,8252,8254,8260,8319,8355,8356,8359,8364,8453,8467,8470,8482,8486,8494,8539,8540,8541,8542,8592,8593,8594,8595,8596,8597,8616,8706,8710,8719,8721,8722,8730,8734,8735,8745,8747,8776,8800,8801,8804,8805,8962,8976,8992,8993,9472,9474,9484,9488,9492,9496,9500,9508,9516,9524,9532,9552,9553,9554,9555,9556,9557,9558,9559,9560,9561,9562,9563,9564,9565,9566,9567,9568,9569,9570,9571,9572,9573,9574,9575,9576,9577,9578,9579,9580,9600,9604,9608,9612,9616,9617,9618,9619,9632,9633,9642,9643,9644,9650,9658,9660,9668,9674,9675,9679,9688,9689,9702,9786,9787,9788,9792,9794,9824,9827,9829,9830,9834,9835,9836,61441,61442,61445,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],Ls=[1.36898,1,1,.72706,.80479,.83734,.98894,.99793,.9897,.93884,.86209,.94292,.94292,1.16661,1.02058,.93582,.96694,.93582,1.19137,.99793,.99793,.99793,.99793,.99793,.99793,.99793,.99793,.99793,.99793,.78076,.78076,1.02058,1.02058,1.02058,.72851,.78966,.90838,.83637,.82391,.96376,.80061,.86275,.8768,.95407,1.0258,.73901,.85022,.83655,1.0156,.95546,.92179,.87107,.92179,.82114,.8096,.89713,.94438,.95353,.94083,.91905,.90406,.9446,.94292,1.18777,.94292,1.02058,.89903,.90088,.94938,.97898,.81093,.97571,.94938,1.024,.9577,.95933,.98621,1.0474,.97455,.98981,.9672,.95933,.9446,.97898,.97407,.97646,.78036,1.10208,.95442,.95298,.97579,.9332,.94039,.938,.80687,1.01149,.80687,1.02058,.80479,.99793,.99793,.99793,.99793,1.01149,1.00872,.90088,.91882,1.0213,.8361,1.02058,.62295,.54324,.89022,1.08595,1,1,.90088,1,.97455,.93582,.90088,1,1.05686,.8361,.99642,.99642,.99642,.72851,.90838,.90838,.90838,.90838,.90838,.90838,.868,.82391,.80061,.80061,.80061,.80061,1.0258,1.0258,1.0258,1.0258,.97484,.95546,.92179,.92179,.92179,.92179,.92179,1.02058,.92179,.94438,.94438,.94438,.94438,.90406,.86958,.98225,.94938,.94938,.94938,.94938,.94938,.94938,.9031,.81093,.94938,.94938,.94938,.94938,.98621,.98621,.98621,.98621,.93969,.95933,.9446,.9446,.9446,.9446,.9446,1.08595,.9446,.95442,.95442,.95442,.95442,.94039,.97898,.94039,.90838,.94938,.90838,.94938,.90838,.94938,.82391,.81093,.82391,.81093,.82391,.81093,.82391,.81093,.96376,.84313,.97484,.97571,.80061,.94938,.80061,.94938,.80061,.94938,.80061,.94938,.80061,.94938,.8768,.9577,.8768,.9577,.8768,.9577,1,1,.95407,.95933,.97069,.95933,1.0258,.98621,1.0258,.98621,1.0258,.98621,1.0258,.98621,1.0258,.98621,.887,1.01591,.73901,1.0474,1,1,.97455,.83655,.98981,1,1,.83655,.73977,.83655,.73903,.84638,1.033,.95546,.95933,1,1,.95546,.95933,.8271,.95417,.95933,.92179,.9446,.92179,.9446,.92179,.9446,.936,.91964,.82114,.97646,1,1,.82114,.97646,.8096,.78036,.8096,.78036,1,1,.8096,.78036,1,1,.89713,.77452,.89713,1.10208,.94438,.95442,.94438,.95442,.94438,.95442,.94438,.95442,.94438,.95442,.94438,.95442,.94083,.97579,.90406,.94039,.90406,.9446,.938,.9446,.938,.9446,.938,1,.99793,.90838,.94938,.868,.9031,.92179,.9446,1,1,.89713,1.10208,.90088,.90088,.90088,.90088,.90088,.90088,.90088,.90088,.90088,.90989,.9358,.91945,.83181,.75261,.87992,.82976,.96034,.83689,.97268,1.0078,.90838,.83637,.8019,.90157,.80061,.9446,.95407,.92436,1.0258,.85022,.97153,1.0156,.95546,.89192,.92179,.92361,.87107,.96318,.89713,.93704,.95638,.91905,.91709,.92796,1.0258,.93704,.94836,1.0373,.95933,1.0078,.95871,.94836,.96174,.92601,.9498,.98607,.95776,.95933,1.05453,1.0078,.98275,.9314,.95617,.91701,1.05993,.9446,.78367,.9553,1,.86832,1.0128,.95871,.99394,.87548,.96361,.86774,1.0078,.95871,.9446,.95871,.86774,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,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,.94083,.97579,.94083,.97579,.94083,.97579,.90406,.94039,.96694,1,.89903,1,1,1,.93582,.93582,.93582,1,.908,.908,.918,.94219,.94219,.96544,1,1.285,1,1,.81079,.81079,1,1,.74854,1,1,1,1,.99793,1,1,1,.65,1,1.36145,1,1,1,1,1,1,1,1,1,1,1,1.17173,1,.80535,.76169,1.02058,1.0732,1.05486,1,1,1.30692,1.08595,1.08595,1,1.08595,1.08595,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,1,1,1,1,1,1.16161,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],Us={lineHeight:1.2,lineGap:.2},Ws=[1.36898,1,1,.66227,.80779,.81625,.97276,.97276,.97733,.92222,.83266,.94292,.94292,1.16148,1.02058,.93582,.96694,.93582,1.17337,.97276,.97276,.97276,.97276,.97276,.97276,.97276,.97276,.97276,.97276,.78076,.78076,1.02058,1.02058,1.02058,.71541,.76813,.85576,.80591,.80729,.94299,.77512,.83655,.86523,.92222,.98621,.71743,.81698,.79726,.98558,.92222,.90637,.83809,.90637,.80729,.76463,.86275,.90699,.91605,.9154,.85308,.85458,.90531,.94292,1.21296,.94292,1.02058,.89903,1.18616,.99613,.91677,.78216,.91677,.90083,.98796,.9135,.92168,.95381,.98981,.95298,.95381,.93459,.92168,.91513,.92004,.91677,.95077,.748,1.04502,.91677,.92061,.94236,.89544,.89364,.9,.80687,.8578,.80687,1.02058,.80779,.97276,.97276,.97276,.97276,.8578,.99973,1.18616,.91339,1.08074,.82891,1.02058,.55509,.71526,.89022,1.08595,1,1,1.18616,1,.96736,.93582,1.18616,1,1.04864,.82711,.99043,.99043,.99043,.71541,.85576,.85576,.85576,.85576,.85576,.85576,.845,.80729,.77512,.77512,.77512,.77512,.98621,.98621,.98621,.98621,.95961,.92222,.90637,.90637,.90637,.90637,.90637,1.02058,.90251,.90699,.90699,.90699,.90699,.85458,.83659,.94951,.99613,.99613,.99613,.99613,.99613,.99613,.85811,.78216,.90083,.90083,.90083,.90083,.95381,.95381,.95381,.95381,.9135,.92168,.91513,.91513,.91513,.91513,.91513,1.08595,.91677,.91677,.91677,.91677,.91677,.89364,.92332,.89364,.85576,.99613,.85576,.99613,.85576,.99613,.80729,.78216,.80729,.78216,.80729,.78216,.80729,.78216,.94299,.76783,.95961,.91677,.77512,.90083,.77512,.90083,.77512,.90083,.77512,.90083,.77512,.90083,.86523,.9135,.86523,.9135,.86523,.9135,1,1,.92222,.92168,.92222,.92168,.98621,.95381,.98621,.95381,.98621,.95381,.98621,.95381,.98621,.95381,.86036,.97096,.71743,.98981,1,1,.95298,.79726,.95381,1,1,.79726,.6894,.79726,.74321,.81691,1.0006,.92222,.92168,1,1,.92222,.92168,.79464,.92098,.92168,.90637,.91513,.90637,.91513,.90637,.91513,.909,.87514,.80729,.95077,1,1,.80729,.95077,.76463,.748,.76463,.748,1,1,.76463,.748,1,1,.86275,.72651,.86275,1.04502,.90699,.91677,.90699,.91677,.90699,.91677,.90699,.91677,.90699,.91677,.90699,.91677,.9154,.94236,.85458,.89364,.85458,.90531,.9,.90531,.9,.90531,.9,1,.97276,.85576,.99613,.845,.85811,.90251,.91677,1,1,.86275,1.04502,1.18616,1.18616,1.18616,1.18616,1.18616,1.18616,1.18616,1.18616,1.18616,1.00899,1.30628,.85576,.80178,.66862,.7927,.69323,.88127,.72459,.89711,.95381,.85576,.80591,.7805,.94729,.77512,.90531,.92222,.90637,.98621,.81698,.92655,.98558,.92222,.85359,.90637,.90976,.83809,.94523,.86275,.83509,.93157,.85308,.83392,.92346,.98621,.83509,.92886,.91324,.92168,.95381,.90646,.92886,.90557,.86847,.90276,.91324,.86842,.92168,.99531,.95381,.9224,.85408,.92699,.86847,1.0051,.91513,.80487,.93481,1,.88159,1.05214,.90646,.97355,.81539,.89398,.85923,.95381,.90646,.91513,.90646,.85923,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,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,.9154,.94236,.9154,.94236,.9154,.94236,.85458,.89364,.96694,1,.89903,1,1,1,.91782,.91782,.91782,1,.896,.896,.896,.9332,.9332,.95973,1,1.26,1,1,.80479,.80178,1,1,.85633,1,1,1,1,.97276,1,1,1,.698,1,1.36145,1,1,1,1,1,1,1,1,1,1,1,1.14542,1,.79199,.78694,1.02058,1.03493,1.05486,1,1,1.23026,1.08595,1.08595,1,1.08595,1.08595,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,1,1,1,1,1,1.20006,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],Xs={lineHeight:1.2,lineGap:.2},Ks=[1.36898,1,1,.65507,.84943,.85639,.88465,.88465,.86936,.88307,.86948,.85283,.85283,1.06383,1.02058,.75945,.9219,.75945,1.17337,.88465,.88465,.88465,.88465,.88465,.88465,.88465,.88465,.88465,.88465,.75945,.75945,1.02058,1.02058,1.02058,.69046,.70926,.85158,.77812,.76852,.89591,.70466,.76125,.80094,.86822,.83864,.728,.77212,.79475,.93637,.87514,.8588,.76013,.8588,.72421,.69866,.77598,.85991,.80811,.87832,.78112,.77512,.8562,1.0222,1.18417,1.0222,1.27014,.89903,1.15012,.93859,.94399,.846,.94399,.81453,1.0186,.94219,.96017,1.03075,1.02175,.912,1.03075,.96998,.96017,.93859,.94399,.94399,.95493,.746,1.12658,.94578,.91,.979,.882,.882,.83,.85034,.83537,.85034,1.02058,.70869,.88465,.88465,.88465,.88465,.83537,.90083,1.15012,.9161,.94565,.73541,1.02058,.53609,.69353,.79519,1.08595,1,1,1.15012,1,.91974,.75945,1.15012,1,.9446,.73361,.9005,.9005,.9005,.62864,.85158,.85158,.85158,.85158,.85158,.85158,.773,.76852,.70466,.70466,.70466,.70466,.83864,.83864,.83864,.83864,.90561,.87514,.8588,.8588,.8588,.8588,.8588,1.02058,.85751,.85991,.85991,.85991,.85991,.77512,.76013,.88075,.93859,.93859,.93859,.93859,.93859,.93859,.8075,.846,.81453,.81453,.81453,.81453,.82424,.82424,.82424,.82424,.9278,.96017,.93859,.93859,.93859,.93859,.93859,1.08595,.8562,.94578,.94578,.94578,.94578,.882,.94578,.882,.85158,.93859,.85158,.93859,.85158,.93859,.76852,.846,.76852,.846,.76852,.846,.76852,.846,.89591,.8544,.90561,.94399,.70466,.81453,.70466,.81453,.70466,.81453,.70466,.81453,.70466,.81453,.80094,.94219,.80094,.94219,.80094,.94219,1,1,.86822,.96017,.86822,.96017,.83864,.82424,.83864,.82424,.83864,.82424,.83864,1.03075,.83864,.82424,.81402,1.02738,.728,1.02175,1,1,.912,.79475,1.03075,1,1,.79475,.83911,.79475,.66266,.80553,1.06676,.87514,.96017,1,1,.87514,.96017,.86865,.87396,.96017,.8588,.93859,.8588,.93859,.8588,.93859,.867,.84759,.72421,.95493,1,1,.72421,.95493,.69866,.746,.69866,.746,1,1,.69866,.746,1,1,.77598,.88417,.77598,1.12658,.85991,.94578,.85991,.94578,.85991,.94578,.85991,.94578,.85991,.94578,.85991,.94578,.87832,.979,.77512,.882,.77512,.8562,.83,.8562,.83,.8562,.83,1,.88465,.85158,.93859,.773,.8075,.85751,.8562,1,1,.77598,1.12658,1.15012,1.15012,1.15012,1.15012,1.15012,1.15313,1.15012,1.15012,1.15012,1.08106,1.03901,.85158,.77025,.62264,.7646,.65351,.86026,.69461,.89947,1.03075,.85158,.77812,.76449,.88836,.70466,.8562,.86822,.8588,.83864,.77212,.85308,.93637,.87514,.82352,.8588,.85701,.76013,.89058,.77598,.8156,.82565,.78112,.77899,.89386,.83864,.8156,.9486,.92388,.96186,1.03075,.91123,.9486,.93298,.878,.93942,.92388,.84596,.96186,.95119,1.03075,.922,.88787,.95829,.88,.93559,.93859,.78815,.93758,1,.89217,1.03737,.91123,.93969,.77487,.85769,.86799,1.03075,.91123,.93859,.91123,.86799,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,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,.87832,.979,.87832,.979,.87832,.979,.77512,.882,.9219,1,.89903,1,1,1,.87321,.87321,.87321,1,1.027,1.027,1.027,.86847,.86847,.79121,1,1.124,1,1,.73572,.73572,1,1,.85034,1,1,1,1,.88465,1,1,1,.669,1,1.36145,1,1,1,1,1,1,1,1,1,1,1,1.04828,1,.74948,.75187,1.02058,.98391,1.02119,1,1,1.06233,1.08595,1.08595,1,1.08595,1.08595,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,1,1,1,1,1,1.05233,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],Gs={lineHeight:1.2,lineGap:.2},Vs=[1.36898,1,1,.76305,.82784,.94935,.89364,.92241,.89073,.90706,.98472,.85283,.85283,1.0664,1.02058,.74505,.9219,.74505,1.23456,.92241,.92241,.92241,.92241,.92241,.92241,.92241,.92241,.92241,.92241,.74505,.74505,1.02058,1.02058,1.02058,.73002,.72601,.91755,.8126,.80314,.92222,.73764,.79726,.83051,.90284,.86023,.74,.8126,.84869,.96518,.91115,.8858,.79761,.8858,.74498,.73914,.81363,.89591,.83659,.89633,.85608,.8111,.90531,1.0222,1.22736,1.0222,1.27014,.89903,.90088,.86667,1.0231,.896,1.01411,.90083,1.05099,1.00512,.99793,1.05326,1.09377,.938,1.06226,1.00119,.99793,.98714,1.0231,1.01231,.98196,.792,1.19137,.99074,.962,1.01915,.926,.942,.856,.85034,.92006,.85034,1.02058,.69067,.92241,.92241,.92241,.92241,.92006,.9332,.90088,.91882,.93484,.75339,1.02058,.56866,.54324,.79519,1.08595,1,1,.90088,1,.95325,.74505,.90088,1,.97198,.75339,.91009,.91009,.91009,.66466,.91755,.91755,.91755,.91755,.91755,.91755,.788,.80314,.73764,.73764,.73764,.73764,.86023,.86023,.86023,.86023,.92915,.91115,.8858,.8858,.8858,.8858,.8858,1.02058,.8858,.89591,.89591,.89591,.89591,.8111,.79611,.89713,.86667,.86667,.86667,.86667,.86667,.86667,.86936,.896,.90083,.90083,.90083,.90083,.84224,.84224,.84224,.84224,.97276,.99793,.98714,.98714,.98714,.98714,.98714,1.08595,.89876,.99074,.99074,.99074,.99074,.942,1.0231,.942,.91755,.86667,.91755,.86667,.91755,.86667,.80314,.896,.80314,.896,.80314,.896,.80314,.896,.92222,.93372,.92915,1.01411,.73764,.90083,.73764,.90083,.73764,.90083,.73764,.90083,.73764,.90083,.83051,1.00512,.83051,1.00512,.83051,1.00512,1,1,.90284,.99793,.90976,.99793,.86023,.84224,.86023,.84224,.86023,.84224,.86023,1.05326,.86023,.84224,.82873,1.07469,.74,1.09377,1,1,.938,.84869,1.06226,1,1,.84869,.83704,.84869,.81441,.85588,1.08927,.91115,.99793,1,1,.91115,.99793,.91887,.90991,.99793,.8858,.98714,.8858,.98714,.8858,.98714,.894,.91434,.74498,.98196,1,1,.74498,.98196,.73914,.792,.73914,.792,1,1,.73914,.792,1,1,.81363,.904,.81363,1.19137,.89591,.99074,.89591,.99074,.89591,.99074,.89591,.99074,.89591,.99074,.89591,.99074,.89633,1.01915,.8111,.942,.8111,.90531,.856,.90531,.856,.90531,.856,1,.92241,.91755,.86667,.788,.86936,.8858,.89876,1,1,.81363,1.19137,.90088,.90088,.90088,.90088,.90088,.90088,.90088,.90088,.90088,.90388,1.03901,.92138,.78105,.7154,.86169,.80513,.94007,.82528,.98612,1.06226,.91755,.8126,.81884,.92819,.73764,.90531,.90284,.8858,.86023,.8126,.91172,.96518,.91115,.83089,.8858,.87791,.79761,.89297,.81363,.88157,.89992,.85608,.81992,.94307,.86023,.88157,.95308,.98699,.99793,1.06226,.95817,.95308,.97358,.928,.98088,.98699,.92761,.99793,.96017,1.06226,.986,.944,.95978,.938,.96705,.98714,.80442,.98972,1,.89762,1.04552,.95817,.99007,.87064,.91879,.88888,1.06226,.95817,.98714,.95817,.88888,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,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,.89633,1.01915,.89633,1.01915,.89633,1.01915,.8111,.942,.9219,1,.89903,1,1,1,.93173,.93173,.93173,1,1.06304,1.06304,1.06904,.89903,.89903,.80549,1,1.156,1,1,.76575,.76575,1,1,.72458,1,1,1,1,.92241,1,1,1,.619,1,1.36145,1,1,1,1,1,1,1,1,1,1,1,1.07257,1,.74705,.71119,1.02058,1.024,1.02119,1,1,1.1536,1.08595,1.08595,1,1.08595,1.08595,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,1,1,1,1,1,1.05638,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],$s={lineHeight:1.2,lineGap:.2},Ys=[1.76738,1,1,.99297,.9824,1.04016,1.06497,1.03424,.97529,1.17647,1.23203,1.1085,1.1085,1.16939,1.2107,.9754,1.21408,.9754,1.59578,1.03424,1.03424,1.03424,1.03424,1.03424,1.03424,1.03424,1.03424,1.03424,1.03424,.81378,.81378,1.2107,1.2107,1.2107,.71703,.97847,.97363,.88776,.8641,1.02096,.79795,.85132,.914,1.06085,1.1406,.8007,.89858,.83693,1.14889,1.09398,.97489,.92094,.97489,.90399,.84041,.95923,1.00135,1,1.06467,.98243,.90996,.99361,1.1085,1.56942,1.1085,1.2107,.74627,.94282,.96752,1.01519,.86304,1.01359,.97278,1.15103,1.01359,.98561,1.02285,1.02285,1.00527,1.02285,1.0302,.99041,1.0008,1.01519,1.01359,1.02258,.79104,1.16862,.99041,.97454,1.02511,.99298,.96752,.95801,.94856,1.16579,.94856,1.2107,.9824,1.03424,1.03424,1,1.03424,1.16579,.8727,1.3871,1.18622,1.10818,1.04478,1.2107,1.18622,.75155,.94994,1.28826,1.21408,1.21408,.91056,1,.91572,.9754,.64663,1.18328,1.24866,1.04478,1.14169,1.15749,1.17389,.71703,.97363,.97363,.97363,.97363,.97363,.97363,.93506,.8641,.79795,.79795,.79795,.79795,1.1406,1.1406,1.1406,1.1406,1.02096,1.09398,.97426,.97426,.97426,.97426,.97426,1.2107,.97489,1.00135,1.00135,1.00135,1.00135,.90996,.92094,1.02798,.96752,.96752,.96752,.96752,.96752,.96752,.93136,.86304,.97278,.97278,.97278,.97278,1.02285,1.02285,1.02285,1.02285,.97122,.99041,1,1,1,1,1,1.28826,1.0008,.99041,.99041,.99041,.99041,.96752,1.01519,.96752,.97363,.96752,.97363,.96752,.97363,.96752,.8641,.86304,.8641,.86304,.8641,.86304,.8641,.86304,1.02096,1.03057,1.02096,1.03517,.79795,.97278,.79795,.97278,.79795,.97278,.79795,.97278,.79795,.97278,.914,1.01359,.914,1.01359,.914,1.01359,1,1,1.06085,.98561,1.06085,1.00879,1.1406,1.02285,1.1406,1.02285,1.1406,1.02285,1.1406,1.02285,1.1406,1.02285,.97138,1.08692,.8007,1.02285,1,1,1.00527,.83693,1.02285,1,1,.83693,.9455,.83693,.90418,.83693,1.13005,1.09398,.99041,1,1,1.09398,.99041,.96692,1.09251,.99041,.97489,1.0008,.97489,1.0008,.97489,1.0008,.93994,.97931,.90399,1.02258,1,1,.90399,1.02258,.84041,.79104,.84041,.79104,.84041,.79104,.84041,.79104,1,1,.95923,1.07034,.95923,1.16862,1.00135,.99041,1.00135,.99041,1.00135,.99041,1.00135,.99041,1.00135,.99041,1.00135,.99041,1.06467,1.02511,.90996,.96752,.90996,.99361,.95801,.99361,.95801,.99361,.95801,1.07733,1.03424,.97363,.96752,.93506,.93136,.97489,1.0008,1,1,.95923,1.16862,1.15103,1.15103,1.01173,1.03959,.75953,.81378,.79912,1.15103,1.21994,.95161,.87815,1.01149,.81525,.7676,.98167,1.01134,1.02546,.84097,1.03089,1.18102,.97363,.88776,.85134,.97826,.79795,.99361,1.06085,.97489,1.1406,.89858,1.0388,1.14889,1.09398,.86039,.97489,1.0595,.92094,.94793,.95923,.90996,.99346,.98243,1.02112,.95493,1.1406,.90996,1.03574,1.02597,1.0008,1.18102,1.06628,1.03574,1.0192,1.01932,1.00886,.97531,1.0106,1.0008,1.13189,1.18102,1.02277,.98683,1.0016,.99561,1.07237,1.0008,.90434,.99921,.93803,.8965,1.23085,1.06628,1.04983,.96268,1.0499,.98439,1.18102,1.06628,1.0008,1.06628,.98439,.79795,1,1,1,1,1,1,1,1,1,1,1,1,1.09466,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,1,1,1,1,1,1,1,1,1,1,.97278,1,1,1,1,1,1,1,1,1,1,1,1,1.02065,1,1,1,1,1,1,1.06467,1.02511,1.06467,1.02511,1.06467,1.02511,.90996,.96752,1,1.21408,.89903,1,1,.75155,1.04394,1.04394,1.04394,1.04394,.98633,.98633,.98633,.73047,.73047,1.20642,.91211,1.25635,1.222,1.02956,1.03372,1.03372,.96039,1.24633,1,1.12454,.93503,1.03424,1.19687,1.03424,1,1,1,.771,1,1,1.15749,1.15749,1.15749,1.10948,.86279,.94434,.86279,.94434,.86182,1,1,1.16897,1,.96085,.90137,1.2107,1.18416,1.13973,.69825,.9716,2.10339,1.29004,1.29004,1.21172,1.29004,1.29004,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.42603,1,.99862,.99862,1,.87025,.87025,.87025,.87025,1.18874,1.42603,1,1.42603,1.42603,.99862,1,1,1,1,1,1.2886,1.04315,1.15296,1.34163,1,1,1,1.09193,1.09193,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],Js={lineHeight:1.33008,lineGap:0},Qs=[1.76738,1,1,.98946,1.03959,1.04016,1.02809,1.036,.97639,1.10953,1.23203,1.11144,1.11144,1.16939,1.21237,.9754,1.21261,.9754,1.59754,1.036,1.036,1.036,1.036,1.036,1.036,1.036,1.036,1.036,1.036,.81378,.81378,1.21237,1.21237,1.21237,.73541,.97847,.97363,.89723,.87897,1.0426,.79429,.85292,.91149,1.05815,1.1406,.79631,.90128,.83853,1.04396,1.10615,.97552,.94436,.97552,.88641,.80527,.96083,1.00135,1,1.06777,.9817,.91142,.99361,1.11144,1.57293,1.11144,1.21237,.74627,1.31818,1.06585,.97042,.83055,.97042,.93503,1.1261,.97042,.97922,1.14236,.94552,1.01054,1.14236,1.02471,.97922,.94165,.97042,.97042,1.0276,.78929,1.1261,.97922,.95874,1.02197,.98507,.96752,.97168,.95107,1.16579,.95107,1.21237,1.03959,1.036,1.036,1,1.036,1.16579,.87357,1.31818,1.18754,1.26781,1.05356,1.21237,1.18622,.79487,.94994,1.29004,1.24047,1.24047,1.31818,1,.91484,.9754,1.31818,1.1349,1.24866,1.05356,1.13934,1.15574,1.17389,.73541,.97363,.97363,.97363,.97363,.97363,.97363,.94385,.87897,.79429,.79429,.79429,.79429,1.1406,1.1406,1.1406,1.1406,1.0426,1.10615,.97552,.97552,.97552,.97552,.97552,1.21237,.97552,1.00135,1.00135,1.00135,1.00135,.91142,.94436,.98721,1.06585,1.06585,1.06585,1.06585,1.06585,1.06585,.96705,.83055,.93503,.93503,.93503,.93503,1.14236,1.14236,1.14236,1.14236,.93125,.97922,.94165,.94165,.94165,.94165,.94165,1.29004,.94165,.97922,.97922,.97922,.97922,.96752,.97042,.96752,.97363,1.06585,.97363,1.06585,.97363,1.06585,.87897,.83055,.87897,.83055,.87897,.83055,.87897,.83055,1.0426,1.0033,1.0426,.97042,.79429,.93503,.79429,.93503,.79429,.93503,.79429,.93503,.79429,.93503,.91149,.97042,.91149,.97042,.91149,.97042,1,1,1.05815,.97922,1.05815,.97922,1.1406,1.14236,1.1406,1.14236,1.1406,1.14236,1.1406,1.14236,1.1406,1.14236,.97441,1.04302,.79631,1.01582,1,1,1.01054,.83853,1.14236,1,1,.83853,1.09125,.83853,.90418,.83853,1.19508,1.10615,.97922,1,1,1.10615,.97922,1.01034,1.10466,.97922,.97552,.94165,.97552,.94165,.97552,.94165,.91602,.91981,.88641,1.0276,1,1,.88641,1.0276,.80527,.78929,.80527,.78929,.80527,.78929,.80527,.78929,1,1,.96083,1.05403,.95923,1.16862,1.00135,.97922,1.00135,.97922,1.00135,.97922,1.00135,.97922,1.00135,.97922,1.00135,.97922,1.06777,1.02197,.91142,.96752,.91142,.99361,.97168,.99361,.97168,.99361,.97168,1.23199,1.036,.97363,1.06585,.94385,.96705,.97552,.94165,1,1,.96083,1.1261,1.31818,1.31818,1.31818,1.31818,1.31818,1.31818,1.31818,1.31818,1.31818,.95161,1.27126,1.00811,.83284,.77702,.99137,.95253,1.0347,.86142,1.07205,1.14236,.97363,.89723,.86869,1.09818,.79429,.99361,1.05815,.97552,1.1406,.90128,1.06662,1.04396,1.10615,.84918,.97552,1.04694,.94436,.98015,.96083,.91142,1.00356,.9817,1.01945,.98999,1.1406,.91142,1.04961,.9898,1.00639,1.14236,1.07514,1.04961,.99607,1.02897,1.008,.9898,.95134,1.00639,1.11121,1.14236,1.00518,.97981,1.02186,1,1.08578,.94165,.99314,.98387,.93028,.93377,1.35125,1.07514,1.10687,.93491,1.04232,1.00351,1.14236,1.07514,.94165,1.07514,1.00351,.79429,1,1,1,1,1,1,1,1,1,1,1,1,1.09097,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,1,1,1,1,1,1,1,1,1,1,.93503,1,1,1,1,1,1,1,1,1,1,1,1,.96609,1,1,1,1,1,1,1.06777,1.02197,1.06777,1.02197,1.06777,1.02197,.91142,.96752,1,1.21261,.89903,1,1,.75155,1.04745,1.04745,1.04745,1.04394,.98633,.98633,.98633,.72959,.72959,1.20502,.91406,1.26514,1.222,1.02956,1.03372,1.03372,.96039,1.24633,1,1.09125,.93327,1.03336,1.16541,1.036,1,1,1,.771,1,1,1.15574,1.15574,1.15574,1.15574,.86364,.94434,.86279,.94434,.86224,1,1,1.16798,1,.96085,.90068,1.21237,1.18416,1.13904,.69825,.9716,2.10339,1.29004,1.29004,1.21339,1.29004,1.29004,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.42603,1,.99862,.99862,1,.87025,.87025,.87025,.87025,1.18775,1.42603,1,1.42603,1.42603,.99862,1,1,1,1,1,1.2886,1.04315,1.15296,1.34163,1,1,1,1.13269,1.13269,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],Zs={lineHeight:1.33008,lineGap:0},er=[1.76738,1,1,.98946,1.14763,1.05365,1.06234,.96927,.92586,1.15373,1.18414,.91349,.91349,1.07403,1.17308,.78383,1.20088,.78383,1.42531,.96927,.96927,.96927,.96927,.96927,.96927,.96927,.96927,.96927,.96927,.78383,.78383,1.17308,1.17308,1.17308,.77349,.94565,.94729,.85944,.88506,.9858,.74817,.80016,.88449,.98039,.95782,.69238,.89898,.83231,.98183,1.03989,.96924,.86237,.96924,.80595,.74524,.86091,.95402,.94143,.98448,.8858,.83089,.93285,1.0949,1.39016,1.0949,1.45994,.74627,1.04839,.97454,.97454,.87207,.97454,.87533,1.06151,.97454,1.00176,1.16484,1.08132,.98047,1.16484,1.02989,1.01054,.96225,.97454,.97454,1.06598,.79004,1.16344,1.00351,.94629,.9973,.91016,.96777,.9043,.91082,.92481,.91082,1.17308,.95748,.96927,.96927,1,.96927,.92481,.80597,1.04839,1.23393,1.1781,.9245,1.17308,1.20808,.63218,.94261,1.24822,1.09971,1.09971,1.04839,1,.85273,.78032,1.04839,1.09971,1.22326,.9245,1.09836,1.13525,1.15222,.70424,.94729,.94729,.94729,.94729,.94729,.94729,.85498,.88506,.74817,.74817,.74817,.74817,.95782,.95782,.95782,.95782,.9858,1.03989,.96924,.96924,.96924,.96924,.96924,1.17308,.96924,.95402,.95402,.95402,.95402,.83089,.86237,.88409,.97454,.97454,.97454,.97454,.97454,.97454,.92916,.87207,.87533,.87533,.87533,.87533,.93146,.93146,.93146,.93146,.93854,1.01054,.96225,.96225,.96225,.96225,.96225,1.24822,.8761,1.00351,1.00351,1.00351,1.00351,.96777,.97454,.96777,.94729,.97454,.94729,.97454,.94729,.97454,.88506,.87207,.88506,.87207,.88506,.87207,.88506,.87207,.9858,.95391,.9858,.97454,.74817,.87533,.74817,.87533,.74817,.87533,.74817,.87533,.74817,.87533,.88449,.97454,.88449,.97454,.88449,.97454,1,1,.98039,1.00176,.98039,1.00176,.95782,.93146,.95782,.93146,.95782,.93146,.95782,1.16484,.95782,.93146,.84421,1.12761,.69238,1.08132,1,1,.98047,.83231,1.16484,1,1,.84723,1.04861,.84723,.78755,.83231,1.23736,1.03989,1.01054,1,1,1.03989,1.01054,.9857,1.03849,1.01054,.96924,.96225,.96924,.96225,.96924,.96225,.92383,.90171,.80595,1.06598,1,1,.80595,1.06598,.74524,.79004,.74524,.79004,.74524,.79004,.74524,.79004,1,1,.86091,1.02759,.85771,1.16344,.95402,1.00351,.95402,1.00351,.95402,1.00351,.95402,1.00351,.95402,1.00351,.95402,1.00351,.98448,.9973,.83089,.96777,.83089,.93285,.9043,.93285,.9043,.93285,.9043,1.31868,.96927,.94729,.97454,.85498,.92916,.96924,.8761,1,1,.86091,1.16344,1.04839,1.04839,1.04839,1.04839,1.04839,1.04839,1.04839,1.04839,1.04839,.81965,.81965,.94729,.78032,.71022,.90883,.84171,.99877,.77596,1.05734,1.2,.94729,.85944,.82791,.9607,.74817,.93285,.98039,.96924,.95782,.89898,.98316,.98183,1.03989,.78614,.96924,.97642,.86237,.86075,.86091,.83089,.90082,.8858,.97296,1.01284,.95782,.83089,1.0976,1.04,1.03342,1.2,1.0675,1.0976,.98205,1.03809,1.05097,1.04,.95364,1.03342,1.05401,1.2,1.02148,1.0119,1.04724,1.0127,1.02732,.96225,.8965,.97783,.93574,.94818,1.30679,1.0675,1.11826,.99821,1.0557,1.0326,1.2,1.0675,.96225,1.0675,1.0326,.74817,1,1,1,1,1,1,1,1,1,1,1,1,1.03754,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,1,1,1,1,1,1,1,1,1,1,.87533,1,1,1,1,1,1,1,1,1,1,1,1,.98705,1,1,1,1,1,1,.98448,.9973,.98448,.9973,.98448,.9973,.83089,.96777,1,1.20088,.89903,1,1,.75155,.94945,.94945,.94945,.94945,1.12317,1.12317,1.12317,.67603,.67603,1.15621,.73584,1.21191,1.22135,1.06483,.94868,.94868,.95996,1.24633,1,1.07497,.87709,.96927,1.01473,.96927,1,1,1,.77295,1,1,1.09836,1.09836,1.09836,1.01522,.86321,.94434,.8649,.94434,.86182,1,1,1.083,1,.91578,.86438,1.17308,1.18416,1.14589,.69825,.97622,1.96791,1.24822,1.24822,1.17308,1.24822,1.24822,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.42603,1,.99862,.99862,1,.87025,.87025,.87025,.87025,1.17984,1.42603,1,1.42603,1.42603,.99862,1,1,1,1,1,1.2886,1.04315,1.15296,1.34163,1,1,1,1.10742,1.10742,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],tr={lineHeight:1.33008,lineGap:0},nr=[1.76738,1,1,.98594,1.02285,1.10454,1.06234,.96927,.92037,1.19985,1.2046,.90616,.90616,1.07152,1.1714,.78032,1.20088,.78032,1.40246,.96927,.96927,.96927,.96927,.96927,.96927,.96927,.96927,.96927,.96927,.78032,.78032,1.1714,1.1714,1.1714,.80597,.94084,.96706,.85944,.85734,.97093,.75842,.79936,.88198,.9831,.95782,.71387,.86969,.84636,1.07796,1.03584,.96924,.83968,.96924,.82826,.79649,.85771,.95132,.93119,.98965,.88433,.8287,.93365,1.08612,1.3638,1.08612,1.45786,.74627,.80499,.91484,1.05707,.92383,1.05882,.9403,1.12654,1.05882,1.01756,1.09011,1.09011,.99414,1.09011,1.034,1.01756,1.05356,1.05707,1.05882,1.04399,.84863,1.21968,1.01756,.95801,1.00068,.91797,.96777,.9043,.90351,.92105,.90351,1.1714,.85337,.96927,.96927,.99912,.96927,.92105,.80597,1.2434,1.20808,1.05937,.90957,1.1714,1.20808,.75155,.94261,1.24644,1.09971,1.09971,.84751,1,.85273,.78032,.61584,1.05425,1.17914,.90957,1.08665,1.11593,1.14169,.73381,.96706,.96706,.96706,.96706,.96706,.96706,.86035,.85734,.75842,.75842,.75842,.75842,.95782,.95782,.95782,.95782,.97093,1.03584,.96924,.96924,.96924,.96924,.96924,1.1714,.96924,.95132,.95132,.95132,.95132,.8287,.83968,.89049,.91484,.91484,.91484,.91484,.91484,.91484,.93575,.92383,.9403,.9403,.9403,.9403,.8717,.8717,.8717,.8717,1.00527,1.01756,1.05356,1.05356,1.05356,1.05356,1.05356,1.24644,.95923,1.01756,1.01756,1.01756,1.01756,.96777,1.05707,.96777,.96706,.91484,.96706,.91484,.96706,.91484,.85734,.92383,.85734,.92383,.85734,.92383,.85734,.92383,.97093,1.0969,.97093,1.05882,.75842,.9403,.75842,.9403,.75842,.9403,.75842,.9403,.75842,.9403,.88198,1.05882,.88198,1.05882,.88198,1.05882,1,1,.9831,1.01756,.9831,1.01756,.95782,.8717,.95782,.8717,.95782,.8717,.95782,1.09011,.95782,.8717,.84784,1.11551,.71387,1.09011,1,1,.99414,.84636,1.09011,1,1,.84636,1.0536,.84636,.94298,.84636,1.23297,1.03584,1.01756,1,1,1.03584,1.01756,1.00323,1.03444,1.01756,.96924,1.05356,.96924,1.05356,.96924,1.05356,.93066,.98293,.82826,1.04399,1,1,.82826,1.04399,.79649,.84863,.79649,.84863,.79649,.84863,.79649,.84863,1,1,.85771,1.17318,.85771,1.21968,.95132,1.01756,.95132,1.01756,.95132,1.01756,.95132,1.01756,.95132,1.01756,.95132,1.01756,.98965,1.00068,.8287,.96777,.8287,.93365,.9043,.93365,.9043,.93365,.9043,1.08571,.96927,.96706,.91484,.86035,.93575,.96924,.95923,1,1,.85771,1.21968,1.11437,1.11437,.93109,.91202,.60411,.84164,.55572,1.01173,.97361,.81818,.81818,.96635,.78032,.72727,.92366,.98601,1.03405,.77968,1.09799,1.2,.96706,.85944,.85638,.96491,.75842,.93365,.9831,.96924,.95782,.86969,.94152,1.07796,1.03584,.78437,.96924,.98715,.83968,.83491,.85771,.8287,.94492,.88433,.9287,1.0098,.95782,.8287,1.0625,.98248,1.03424,1.2,1.01071,1.0625,.95246,1.03809,1.04912,.98248,1.00221,1.03424,1.05443,1.2,1.04785,.99609,1.00169,1.05176,.99346,1.05356,.9087,1.03004,.95542,.93117,1.23362,1.01071,1.07831,1.02512,1.05205,1.03502,1.2,1.01071,1.05356,1.01071,1.03502,.75842,1,1,1,1,1,1,1,1,1,1,1,1,1.03719,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,1,1,1,1,1,1,1,1,1,1,.9403,1,1,1,1,1,1,1,1,1,1,1,1,1.04021,1,1,1,1,1,1,.98965,1.00068,.98965,1.00068,.98965,1.00068,.8287,.96777,1,1.20088,.89903,1,1,.75155,1.03077,1.03077,1.03077,1.03077,1.13196,1.13196,1.13196,.67428,.67428,1.16039,.73291,1.20996,1.22135,1.06483,.94868,.94868,.95996,1.24633,1,1.07497,.87796,.96927,1.01518,.96927,1,1,1,.77295,1,1,1.10539,1.10539,1.11358,1.06967,.86279,.94434,.86279,.94434,.86182,1,1,1.083,1,.91578,.86507,1.1714,1.18416,1.14589,.69825,.97622,1.9697,1.24822,1.24822,1.17238,1.24822,1.24822,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.42603,1,.99862,.99862,1,.87025,.87025,.87025,.87025,1.18083,1.42603,1,1.42603,1.42603,.99862,1,1,1,1,1,1.2886,1.04315,1.15296,1.34163,1,1,1,1.10938,1.10938,1,1,1,1.05425,1.09971,1.09971,1.09971,1,1,1,1,1,1,1,1,1,1,1],ar={lineHeight:1.33008,lineGap:0},sr=getLookupTableFactory(function(e){e["MyriadPro-Regular"]=e["PdfJS-Fallback-Regular"]={name:"LiberationSans-Regular",factors:Vs,baseWidths:_s,baseMapping:zs,metrics:$s};e["MyriadPro-Bold"]=e["PdfJS-Fallback-Bold"]={name:"LiberationSans-Bold",factors:Ls,baseWidths:Hs,baseMapping:Bs,metrics:Us};e["MyriadPro-It"]=e["MyriadPro-Italic"]=e["PdfJS-Fallback-Italic"]={name:"LiberationSans-Italic",factors:Ks,baseWidths:Ns,baseMapping:Es,metrics:Gs};e["MyriadPro-BoldIt"]=e["MyriadPro-BoldItalic"]=e["PdfJS-Fallback-BoldItalic"]={name:"LiberationSans-BoldItalic",factors:Ws,baseWidths:Ds,baseMapping:Ms,metrics:Xs};e.ArialMT=e.Arial=e["Arial-Regular"]={name:"LiberationSans-Regular",baseWidths:_s,baseMapping:zs};e["Arial-BoldMT"]=e["Arial-Bold"]={name:"LiberationSans-Bold",baseWidths:Hs,baseMapping:Bs};e["Arial-ItalicMT"]=e["Arial-Italic"]={name:"LiberationSans-Italic",baseWidths:Ns,baseMapping:Es};e["Arial-BoldItalicMT"]=e["Arial-BoldItalic"]={name:"LiberationSans-BoldItalic",baseWidths:Ds,baseMapping:Ms};e["Calibri-Regular"]={name:"LiberationSans-Regular",factors:vs,baseWidths:_s,baseMapping:zs,metrics:Ss};e["Calibri-Bold"]={name:"LiberationSans-Bold",factors:bs,baseWidths:Hs,baseMapping:Bs,metrics:ws};e["Calibri-Italic"]={name:"LiberationSans-Italic",factors:ys,baseWidths:Ns,baseMapping:Es,metrics:qs};e["Calibri-BoldItalic"]={name:"LiberationSans-BoldItalic",factors:js,baseWidths:Ds,baseMapping:Ms,metrics:ks};e["Segoeui-Regular"]={name:"LiberationSans-Regular",factors:nr,baseWidths:_s,baseMapping:zs,metrics:ar};e["Segoeui-Bold"]={name:"LiberationSans-Bold",factors:Ys,baseWidths:Hs,baseMapping:Bs,metrics:Js};e["Segoeui-Italic"]={name:"LiberationSans-Italic",factors:er,baseWidths:Ns,baseMapping:Es,metrics:tr};e["Segoeui-BoldItalic"]={name:"LiberationSans-BoldItalic",factors:Qs,baseWidths:Ds,baseMapping:Ms,metrics:Zs};e["Helvetica-Regular"]=e.Helvetica={name:"LiberationSans-Regular",factors:Rs,baseWidths:_s,baseMapping:zs,metrics:Os};e["Helvetica-Bold"]={name:"LiberationSans-Bold",factors:As,baseWidths:Hs,baseMapping:Bs,metrics:xs};e["Helvetica-Italic"]={name:"LiberationSans-Italic",factors:Fs,baseWidths:Ns,baseMapping:Es,metrics:Ts};e["Helvetica-BoldItalic"]={name:"LiberationSans-BoldItalic",factors:Cs,baseWidths:Ds,baseMapping:Ms,metrics:Is}});function getXfaFontName(e){const t=normalizeFontName(e);return sr()[t]}function getXfaFontDict(e){const t=function getXfaFontWidths(e){const t=getXfaFontName(e);if(!t)return null;const{baseWidths:n,baseMapping:a,factors:s}=t,r=s?n.map((e,t)=>e*s[t]):n;let i,o=-2;const l=[];for(const[e,t]of a.map((e,t)=>[e,t]).sort(([e],[t])=>e-t))if(-1!==e)if(e===o+1){i.push(r[t]);o+=1}else{o=e;i=[r[t]];l.push(e,i)}return l}(e),n=new Dict(null);n.set("BaseFont",Name.get(e));n.set("Type",Name.get("Font"));n.set("Subtype",Name.get("CIDFontType2"));n.set("Encoding",Name.get("Identity-H"));n.set("CIDToGIDMap",Name.get("Identity"));n.set("W",t);n.set("FirstChar",t[0]);n.set("LastChar",t.at(-2)+t.at(-1).length-1);const a=new Dict(null);n.set("FontDescriptor",a);const s=new Dict(null);s.set("Ordering","Identity");s.set("Registry","Adobe");s.set("Supplement",0);n.set("CIDSystemInfo",s);return n}const rr={number:0,lbrace:1,rbrace:2,true:3,false:4,add:5,sub:6,mul:7,div:8,idiv:9,mod:10,exp:11,eq:12,ne:13,gt:14,ge:15,lt:16,le:17,and:18,or:19,xor:20,bitshift:21,abs:22,neg:23,ceiling:24,floor:25,round:26,truncate:27,not:28,sqrt:29,sin:30,cos:31,ln:32,log:33,atan:34,cvi:35,cvr:36,dup:37,exch:38,pop:39,copy:40,index:41,roll:42,if:43,ifelse:44,eof:45,min:46,max:47};class Token{constructor(e,t=null){this.id=e;this.value=t}}class lexer_Lexer{static#ke=null;static#ye=null;static#qe(){const e=Object.create(null),t=Object.create(null);for(const[n,a]of Object.entries(rr)){if("number"===n)continue;const s=a>=rr.true&&a<=rr.ifelse,r=new Token(a,s?n:null);e[n]=r;s&&(t[n]=r)}this.#ke=e;this.#ye=t}constructor(e){lexer_Lexer.#ke||lexer_Lexer.#qe();this.data=e;this.pos=0;this.len=e.length;this._numberPattern=/[+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?/iy;this._identifierPattern=/[a-z]+/y}_skipComment(){const e=this.data.indexOf("\n",this.pos),t=this.data.indexOf("\r",this.pos),n=Math.min(e<0?this.len:e,t<0?this.len:t);this.pos=Math.min(n+1,this.len)}_getNumber(){this._numberPattern.lastIndex=this.pos;const e=this._numberPattern.exec(this.data);if(!e)return new Token(rr.number,0);const t=parseFloat(e[0]);if(!Number.isFinite(t))return new Token(rr.number,0);this.pos=this._numberPattern.lastIndex;return new Token(rr.number,t)}_getOperator(){this._identifierPattern.lastIndex=this.pos;const e=this._identifierPattern.exec(this.data);if(!e)return new Token(rr.number,0);this.pos=this._identifierPattern.lastIndex;const t=e[0],n=lexer_Lexer.#ye[t];return n||new Token(rr.number,0)}next(){for(;this.pos=48&&e<=57){this.pos--;return this._getNumber()}if(e>=97&&e<=122){this.pos--;return this._getOperator()}return new Token(rr.number,0)}}return lexer_Lexer.#ke.eof}}const ir=0,or=1,lr=2,fr=0,cr=1,hr=2,ur=3,mr=4,pr=5,dr=6,gr=7,br=8,wr=9,jr=10;class PsNode{constructor(e){this.type=e}}class PsProgram extends PsNode{constructor(e){super(fr);this.body=e}}class PsBlock extends PsNode{constructor(e){super(cr);this.instructions=e}}class PsNumber extends PsNode{constructor(e){super(hr);this.value=e}}class PsOperator extends PsNode{constructor(e){super(ur);this.op=e}}class PsIf extends PsNode{constructor(e){super(mr);this.then=e}}class PsIfElse extends PsNode{constructor(e,t){super(pr);this.then=e;this.otherwise=t}}class PsArgNode extends PsNode{constructor(e){super(dr);this.index=e;this.valueType=ir}}class PsConstNode extends PsNode{constructor(e){super(gr);this.value=e;this.valueType="boolean"==typeof e?or:ir}}class PsUnaryNode extends PsNode{constructor(e,t,n=lr){super(br);this.op=e;this.operand=t;this.valueType=n}}class PsBinaryNode extends PsNode{constructor(e,t,n,a=lr){super(wr);this.op=e;this.first=t;this.second=n;this.valueType=a}}class PsTernaryNode extends PsNode{constructor(e,t,n,a=lr){super(jr);this.cond=e;this.then=t;this.otherwise=n;this.valueType=a}}class ast_Parser{constructor(e){this.lexer=e;this._token=null}static _isRegularOperator(e){return e>=rr.true&&ekr)return null;const n=[];for(let e=0;e{if(!e||e.type===dr||e.type===gr)return;const n=t.get(e)??0;t.set(e,n+1);if(!(n>0))switch(e.type){case br:visit(e.operand);break;case wr:visit(e.first);visit(e.second);break;case jr:visit(e.cond);visit(e.then);visit(e.otherwise)}};for(const t of e)visit(t);for(const[e,n]of t)if(n>1){e.shared=!0;e.sharedCount=n}}_evalBlock(e,t){this._evalBlockFrom(e.instructions,0,t)}_evalBlockFrom(e,t,n){for(let a=t;akr&&(this._failed=!0);break;case ur:this._evalOp(t.op,n);break;case mr:{if(n.length<1){this._failed=!0;break}const s=n.pop(),r=n.slice();this._evalBlock(t.then,n);if(this._failed)break;if(n.length===r.length)for(let e=0;er.length){if(s.type===gr){if(!s.value){n.length=0;n.push(...r)}break}const t=n.slice();this._evalBlockFrom(e,a+1,t);if(this._failed)break;const i=r;this._evalBlockFrom(e,a+1,i);if(this._failed)break;if(t.length!==i.length){const e=new PsConstNode(0);for(;t.lengthkr&&(this._failed=!0);break;case rr.false:t.push(new PsConstNode(!1));t.length>kr&&(this._failed=!0);break;case rr.dup:if(t.length<1){this._failed=!0;break}t.push(t.at(-1));t.length>kr&&(this._failed=!0);break;case rr.exch:{if(t.length<2){this._failed=!0;break}const e=t.pop(),n=t.pop();t.push(e,n);break}case rr.pop:if(t.length<1){this._failed=!0;break}t.pop();break;case rr.copy:{if(t.length<1){this._failed=!0;break}const e=t.pop();if(e.type===gr){const n=0|e.value;if(0===n);else if(n<0||n>t.length)this._failed=!0;else{t.push(...t.slice(-n));t.length>kr&&(this._failed=!0)}}else this._failed=!0;break}case rr.index:{if(t.length<1){this._failed=!0;break}const e=t.pop();if(e.type===gr){const n=0|e.value;n<0||n>=t.length?this._failed=!0:t.push(t.at(-n-1))}else this._failed=!0;break}case rr.roll:{if(t.length<2){this._failed=!0;break}const e=t.pop(),n=t.pop();if(n.type===gr&&e.type===gr){const a=0|n.value;if(0===a);else if(a<0||a>t.length)this._failed=!0;else{const n=((0|e.value)%a+a)%a;if(n>0){const e=t.splice(-a,a);t.push(...e.slice(a-n),...e.slice(0,a-n))}}}else this._failed=!0;break}default:this._failed=!0}}_makeBinary(e,t,n){if(t.type===gr&&n.type===gr){const a=function _evalBinaryConst(e,t,n){switch(e){case rr.add:return t+n;case rr.sub:return t-n;case rr.mul:return t*n;case rr.div:return 0!==n?t/n:0;case rr.idiv:return 0!==n?Math.trunc(t/n):0;case rr.mod:return 0!==n?t-Math.trunc(t/n)*n:0;case rr.exp:{const e=t**n;return Number.isFinite(e)?e:void 0}case rr.atan:{let e=Math.atan2(t,n)*(180/Math.PI);e<0&&(e+=360);return e}case rr.eq:return t===n;case rr.ne:return t!==n;case rr.gt:return t>n;case rr.ge:return t>=n;case rr.lt:return t=0?t<>-n|0;case rr.min:return Math.min(t,n);case rr.max:return Math.max(t,n);default:return}}(e,n.value,t.value);if(void 0!==a)return new PsConstNode(a)}if(_nodesEqual(t,n))switch(e){case rr.sub:return new PsConstNode(0);case rr.xor:return new PsConstNode(t.valueType!==or&&0);case rr.and:case rr.or:case rr.min:case rr.max:return t;case rr.eq:case rr.ge:case rr.le:return new PsConstNode(!0);case rr.ne:case rr.gt:case rr.lt:return new PsConstNode(!1)}if(t.type===gr){const a=t.value;switch(e){case rr.add:case rr.sub:if(0===a)return n;break;case rr.mul:if(1===a)return n;if(0===a)return t;if(-1===a)return this._makeUnary(rr.neg,n);break;case rr.div:if(0!==a)return this._makeBinary(rr.mul,new PsConstNode(1/a),n);break;case rr.idiv:if(1===a)return n;break;case rr.exp:if(1===a)return n;if(-1===a)return this._makeBinary(rr.div,n,new PsConstNode(1));if(.5===a)return this._makeUnary(rr.sqrt,n);if(.25===a){const e=this._makeUnary(rr.sqrt,n);return this._makeUnary(rr.sqrt,e)}if(2===a)return this._makeBinary(rr.mul,n,n);if(3===a)return this._makeBinary(rr.mul,this._makeBinary(rr.mul,n,n),n);if(4===a){const e=this._makeBinary(rr.mul,n,n);return this._makeBinary(rr.mul,e,e)}if(0===a)return new PsConstNode(1);break;case rr.and:if(!0===a)return n;if(!1===a)return t;break;case rr.or:if(!1===a)return n;if(!0===a)return t;break;case rr.min:if(n.type===wr&&n.op===rr.max&&n.first.type===gr&&n.first.value>=a)return t;break;case rr.max:if(n.type===wr&&n.op===rr.min&&n.first.type===gr&&n.first.value<=a)return t}}if(n.type===gr){const a=n.value;switch(e){case rr.add:if(0===a)return t;break;case rr.sub:if(0===a)return this._makeUnary(rr.neg,t);break;case rr.mul:if(1===a)return t;if(0===a)return n;if(-1===a)return this._makeUnary(rr.neg,t);break;case rr.and:if(!0===a)return t;if(!1===a)return n;break;case rr.or:if(!1===a)return t;if(!0===a)return n}}return new PsBinaryNode(e,t,n,function _binaryValueType(e,t,n){switch(e){case rr.eq:case rr.ne:case rr.gt:case rr.ge:case rr.lt:case rr.le:return or;case rr.and:case rr.or:case rr.xor:return t===n&&t!==lr?t:lr;default:return ir}}(e,t.valueType,n.valueType))}_makeUnary(e,t){if(t.type===gr){const n=function _evalUnaryConst(e,t){switch(e){case rr.abs:return Math.abs(t);case rr.neg:return-t;case rr.ceiling:return Math.ceil(t);case rr.floor:return Math.floor(t);case rr.round:return Math.round(t);case rr.truncate:return Math.trunc(t);case rr.sqrt:{const e=Math.sqrt(t);return Number.isFinite(e)?e:void 0}case rr.sin:return Math.sin(t%360*Math.PI/180);case rr.cos:return Math.cos(t%360*Math.PI/180);case rr.ln:{const e=Math.log(t);return Number.isFinite(e)?e:void 0}case rr.log:{const e=Math.log10(t);return Number.isFinite(e)?e:void 0}case rr.cvi:return Math.trunc(t);case rr.cvr:return t;case rr.not:return"boolean"==typeof t?!t:~t;default:return}}(e,t.value);if(void 0!==n)return new PsConstNode(n)}if(e===rr.not&&t.type===wr){const e=PSStackToTree.#xe.get(t.op);if(void 0!==e)return new PsBinaryNode(e,t.first,t.second,or)}if(e===rr.neg&&t.type===wr&&t.op===rr.sub)return this._makeBinary(rr.sub,t.second,t.first);if(t.type===br){if(e===rr.neg&&t.op===rr.neg||e===rr.not&&t.op===rr.not)return t.operand;if(e===rr.abs&&t.op===rr.neg)return this._makeUnary(rr.abs,t.operand);if(PSStackToTree.#Ae.has(e)&&e===t.op)return t}return new PsUnaryNode(e,t,function _unaryValueType(e,t){return e===rr.not?t:ir}(e,t.valueType))}_makeTernary(e,t,n){if(e.type===gr)return e.value?t:n;if(_nodesEqual(t,n))return t;if(t.type===gr&&n.type===gr){if(!0===t.value&&!1===n.value)return e;if(!1===t.value&&!0===n.value)return this._makeUnary(rr.not,e)}if(e.type===wr){const{op:a,first:s,second:r}=e;if(a===rr.gt||a===rr.ge){if(_nodesEqual(t,s)&&_nodesEqual(n,r))return this._makeBinary(rr.min,s,r);if(_nodesEqual(t,r)&&_nodesEqual(n,s))return this._makeBinary(rr.max,s,r)}else if(a===rr.lt||a===rr.le){if(_nodesEqual(t,s)&&_nodesEqual(n,r))return this._makeBinary(rr.max,s,r);if(_nodesEqual(t,r)&&_nodesEqual(n,s))return this._makeBinary(rr.min,s,r)}}return new PsTernaryNode(e,t,n,t.valueType===n.valueType?t.valueType:lr)}}const yr=0,qr=1,vr=2,Sr=3,Ar=4,xr=5,Cr=6,Ir=7,Fr=8,Tr=9,Rr=10,Or=11,Hr=12,Dr=13,Mr=14,Nr=15,Pr=16,Er=17,_r=18,zr=19,Lr=20,Ur=21,Wr=22,Xr=23,Kr=24,Gr=25,Vr=26,$r=27,Yr=28,Jr=29,Qr=30,Zr=31,ei=32,ti=33,ni=34,ai=35,si=36,ri=37,ii=38,oi=39,li=40,fi=Math.PI/180,ci=180/Math.PI;class PsJsCompiler{static#Fe=new Float64Array(64);static#Te=new Float64Array(64);constructor(e,t){this.nIn=e.length>>1;this.nOut=t.length>>1;this.range=t;this.ir=[];this._tmpMap=new Map;this._nextTmp=0}_compileNode(e){if(e.shared){const t=this._tmpMap.get(e);if(void 0!==t){this.ir.push(li,t);return!0}if(!this._compileNodeImpl(e))return!1;const n=this._nextTmp++;this._tmpMap.set(e,n);this.ir.push(oi,n);return!0}return this._compileNodeImpl(e)}_compileNodeImpl(e){switch(e.type){case dr:this.ir.push(yr,e.index);return!0;case gr:{const t=e.value;this.ir.push(qr,"boolean"==typeof t?Number(t):t);return!0}case br:return this._compileUnary(e);case wr:return this._compileBinary(e);case jr:return this._compileTernary(e);default:return!1}}_compileUnary(e){const{op:t,operand:n,valueType:a}=e;if(t===rr.cvr)return this._compileNode(n);if(!this._compileNode(n))return!1;switch(t){case rr.abs:this.ir.push(xr);break;case rr.neg:this.ir.push(Cr);break;case rr.ceiling:this.ir.push(Ir);break;case rr.floor:this.ir.push(Fr);break;case rr.round:this.ir.push(Tr);break;case rr.truncate:this.ir.push(Rr);break;case rr.sqrt:this.ir.push(Dr);break;case rr.sin:this.ir.push(Mr);break;case rr.cos:this.ir.push(Nr);break;case rr.ln:this.ir.push(Pr);break;case rr.log:this.ir.push(Er);break;case rr.cvi:this.ir.push(_r);break;case rr.not:if(a===or)this.ir.push(Or);else{if(a!==ir)return!1;this.ir.push(Hr)}break;default:return!1}return!0}_compileBinary(e){const{op:t,first:n,second:a}=e;if(t===rr.bitshift){if(n.type!==gr||!Number.isInteger(n.value))return!1;if(!this._compileNode(a))return!1;this.ir.push(zr,n.value);return!0}if(!this._compileNode(a))return!1;if(!this._compileNode(n))return!1;switch(t){case rr.add:this.ir.push(Lr);break;case rr.sub:this.ir.push(Ur);break;case rr.mul:this.ir.push(Wr);break;case rr.div:this.ir.push(Xr);break;case rr.idiv:this.ir.push(Kr);break;case rr.mod:this.ir.push(Gr);break;case rr.exp:this.ir.push(Vr);break;case rr.eq:this.ir.push($r);break;case rr.ne:this.ir.push(Yr);break;case rr.gt:this.ir.push(Jr);break;case rr.ge:this.ir.push(Qr);break;case rr.lt:this.ir.push(Zr);break;case rr.le:this.ir.push(ei);break;case rr.and:this.ir.push(ti);break;case rr.or:this.ir.push(ni);break;case rr.xor:this.ir.push(ai);break;case rr.atan:this.ir.push(si);break;case rr.min:this.ir.push(ri);break;case rr.max:this.ir.push(ii);break;default:return!1}return!0}_compileTernary(e){if(!this._compileNode(e.cond))return!1;this.ir.push(Sr,0);const t=this.ir.length-1;if(!this._compileNode(e.then))return!1;this.ir.push(Ar,0);const n=this.ir.length-1;this.ir[t]=this.ir.length;if(!this._compileNode(e.otherwise))return!1;this.ir[n]=this.ir.length;return!0}compile(e){const t=(new PSStackToTree).evaluate(e,this.nIn);if(!t||t.length0?n<>-t:n;break}case Lr:{const e=l[--i];l[i-1]+=e;break}case Ur:{const e=l[--i];l[i-1]-=e;break}case Wr:{const e=l[--i];l[i-1]*=e;break}case Xr:{const e=l[--i];l[i-1]=0!==e?l[i-1]/e:0;break}case Kr:{const e=l[--i];l[i-1]=0!==e?Math.trunc(l[i-1]/e):0;break}case Gr:{const e=l[--i];l[i-1]=0!==e?l[i-1]%e:0;break}case Vr:{const e=l[--i];l[i-1]**=e;break}case $r:{const e=l[--i];l[i-1]=l[i-1]===e?1:0;break}case Yr:{const e=l[--i];l[i-1]=l[i-1]!==e?1:0;break}case Jr:{const e=l[--i];l[i-1]=l[i-1]>e?1:0;break}case Qr:{const e=l[--i];l[i-1]=l[i-1]>=e?1:0;break}case Zr:{const e=l[--i];l[i-1]=l[i-1]e?1:0;break}case rr.ge:{const e=t[--this.#Re];t[this.#Re-1]=t[this.#Re-1]>=e?1:0;break}case rr.lt:{const e=t[--this.#Re];t[this.#Re-1]=t[this.#Re-1]0?n<>-e;break}case rr.min:{const e=t[--this.#Re];t[this.#Re-1]=Math.min(t[this.#Re-1],e);break}case rr.max:{const e=t[--this.#Re];t[this.#Re-1]=Math.max(t[this.#Re-1],e);break}case rr.dup:this.#Oe(t[this.#Re-1]);break;case rr.exch:{const e=t[--this.#Re],n=t[--this.#Re];this.#Oe(e);this.#Oe(n);break}case rr.pop:this.#Re--;break;case rr.copy:{const e=Math.trunc(t[--this.#Re]),n=this.#Re-e;for(let a=0;a1&&0!==e){const a=(e%n+n)%n;if(0!==a){const e=this.#Re-n,s=t.slice(e,this.#Re);for(let r=0;r>1,s=n.length>>1,{instructions:r}=e.body;return(e,t,i,o)=>{this.#Re=0;for(let n=0;n=0?this.#Fe[l+e]:0;i[o+e]=MathClamp(t,n[2*e],n[2*e+1])}}}}const hi={if:4,else:5,end:11,select:27,call:16,local_get:32,local_set:33,local_tee:34,i32_const:65,i32_eqz:69,i32_and:113,i32_or:114,i32_xor:115,i32_shl:116,i32_shr_s:117,i32_trunc_f64_s:170,f64_const:68,f64_eq:97,f64_ne:98,f64_lt:99,f64_gt:100,f64_le:101,f64_ge:102,f64_abs:153,f64_neg:154,f64_ceil:155,f64_floor:156,f64_trunc:157,f64_nearest:158,f64_sqrt:159,f64_add:160,f64_sub:161,f64_mul:162,f64_div:163,f64_min:164,f64_max:165,f64_convert_i32_s:183,f64_store:57},ui=124,mi=1,pi=2,di=3,gi=5,bi=7,wi=10;function unsignedLEB128(e){const t=[];do{let n=127&e;0!==(e>>>=7)&&(n|=128);t.push(n)}while(0!==e);return t}function encodeASCIIString(e){return[...unsignedLEB128(e.length),...stringToBytes(e)]}function section(e,t){return[e,...unsignedLEB128(t.length),...t]}function vec(e){const t=unsignedLEB128(e.length);for(const n of e)if("number"!=typeof n)for(const e of n)t.push(e);else t.push(n);return t}const ji=[["sin","Math","sin",[ui],[ui]],["cos","Math","cos",[ui],[ui]],["atan2","Math","atan2",[ui,ui],[ui]],["log","Math","log",[ui],[ui]],["log10","Math","log10",[ui],[ui]],["pow","Math","pow",[ui,ui],[ui]]],ki={Math:Object.fromEntries(ji.map(([e])=>[e,Math[e]]))};class PsWasmCompiler{static#De=!1;static#Me=null;static#Ne=null;static#Pe=0;static#Ee=0;static#_e=null;static#ze=null;static#Le=null;static#Ue=null;static#We=null;static#Xe=null;static#Ke=null;static#Ge=null;static#Ce(){this.#Me=new Map([[rr.eq,hi.f64_eq],[rr.ne,hi.f64_ne],[rr.lt,hi.f64_lt],[rr.le,hi.f64_le],[rr.gt,hi.f64_gt],[rr.ge,hi.f64_ge]]);this.#Ne=Object.create(null);for(let e=0;e[96,...vec(e),...vec(t)]);this.#ze=new Uint8Array(section(pi,vec(ji.map(([,e,t],n)=>[...encodeASCIIString(e),...encodeASCIIString(t),0,...unsignedLEB128(n+1)]))));this.#Le=new Uint8Array(section(di,vec([[0]])));this.#Ue=new Uint8Array(section(gi,vec([[0,1]])));this.#We=new Uint8Array(section(bi,vec([[...encodeASCIIString("fn"),0,...unsignedLEB128(ji.length)],[...encodeASCIIString("mem"),2,0]])));this.#Xe=new Uint8Array([0,97,115,109,1,0,0,0]);const e=new ArrayBuffer(8);this.#Ke=new DataView(e);this.#Ge=new Uint8Array(e);this.#De=!0}constructor(e,t){PsWasmCompiler.#De||PsWasmCompiler.#Ce();this._nIn=e.length>>1;this._nOut=t.length>>1;this._range=t;this._code=[];this._nextLocal=this._nIn;this._freeLocals=[];this._sharedLocals=new Map}_allocLocal(){return this._freeLocals.pop()??this._nextLocal++}_releaseLocal(e){this._freeLocals.push(e)}_emitULEB128(e){do{let t=127&e;0!==(e>>>=7)&&(t|=128);this._code.push(t)}while(0!==e)}_emitSLEB128(e){for(;;){const t=127&e;if(0===(e>>=7)&&!(64&t)||-1===e&&64&t){this._code.push(t);return}this._code.push(128|t)}}_emitF64Const(e){this._code.push(hi.f64_const);PsWasmCompiler.#Ke.setFloat64(0,e,!0);for(let e=0;e<8;e++)this._code.push(PsWasmCompiler.#Ge[e])}_emitLocalGet(e){this._code.push(hi.local_get);this._emitULEB128(e)}_emitLocalSet(e){this._code.push(hi.local_set);this._emitULEB128(e)}_emitLocalTee(e){this._code.push(hi.local_tee);this._emitULEB128(e)}_compileNode(e){if(e.shared){const t=this._sharedLocals.get(e);if(void 0!==t){this._emitLocalGet(t.local);0===--t.remaining&&this._releaseLocal(t.local);return!0}if(!this._compileNodeImpl(e))return!1;const n=this._allocLocal();this._sharedLocals.set(e,{local:n,remaining:e.sharedCount-1});this._emitLocalTee(n);return!0}return this._compileNodeImpl(e)}_compileNodeImpl(e){switch(e.type){case dr:this._emitLocalGet(e.index);return!0;case gr:{let t=e.value;"boolean"==typeof t&&(t=t?1:0);this._emitF64Const(t);return!0}case br:return this._compileUnaryNode(e);case wr:return this._compileBinaryNode(e);case jr:return this._compileTernaryNode(e);default:return!1}}_compileSinCosNode(e){const t=this._allocLocal();try{if(!this._compileNode(e.operand))return!1;const n=this._code;this._emitLocalSet(t);this._emitLocalGet(t);this._emitLocalGet(t);this._emitF64Const(360);n.push(hi.f64_div,hi.f64_trunc);this._emitF64Const(360);n.push(hi.f64_mul,hi.f64_sub);this._emitF64Const(PsWasmCompiler.#Pe);n.push(hi.f64_mul,hi.call);this._emitULEB128(PsWasmCompiler.#Ne[e.op===rr.sin?"sin":"cos"]);return!0}finally{this._releaseLocal(t)}}_compileUnaryNode(e){const t=this._code;if(e.op===rr.sin||e.op===rr.cos)return this._compileSinCosNode(e);if(e.op===rr.not){if(e.valueType===or){if(!this._compileNodeAsBoolI32(e.operand))return!1;t.push(hi.i32_eqz,hi.f64_convert_i32_s);return!0}if(e.valueType===ir){if(!this._compileNode(e.operand))return!1;t.push(hi.i32_trunc_f64_s,hi.i32_const,127,hi.i32_xor,hi.f64_convert_i32_s);return!0}return!1}if(!this._compileNode(e.operand))return!1;switch(e.op){case rr.abs:t.push(hi.f64_abs);break;case rr.neg:t.push(hi.f64_neg);break;case rr.sqrt:t.push(hi.f64_sqrt);break;case rr.floor:t.push(hi.f64_floor);break;case rr.ceiling:t.push(hi.f64_ceil);break;case rr.round:this._emitF64Const(.5);t.push(hi.f64_add,hi.f64_floor);break;case rr.truncate:t.push(hi.f64_trunc);break;case rr.cvi:t.push(hi.i32_trunc_f64_s,hi.f64_convert_i32_s);break;case rr.cvr:break;case rr.ln:t.push(hi.call);this._emitULEB128(PsWasmCompiler.#Ne.log);break;case rr.log:t.push(hi.call);this._emitULEB128(PsWasmCompiler.#Ne.log10);break;default:return!1}return!0}_compileSafeDivNode(e,t){const n=this._allocLocal();try{if(!this._compileNode(t))return!1;if(!this._compileNode(e))return!1;const a=this._code;this._emitLocalTee(n);a.push(hi.f64_div);this._emitF64Const(0);this._emitLocalGet(n);this._emitF64Const(0);a.push(hi.f64_ne,hi.select);return!0}finally{this._releaseLocal(n)}}_compileSafeIdivNode(e,t){const n=this._allocLocal();try{if(!this._compileNode(t))return!1;if(!this._compileNode(e))return!1;const a=this._code;this._emitLocalTee(n);a.push(hi.f64_div,hi.f64_trunc);this._emitF64Const(0);this._emitLocalGet(n);this._emitF64Const(0);a.push(hi.f64_ne,hi.select);return!0}finally{this._releaseLocal(n)}}_compileBitshiftNode(e,t){if(e.type!==gr||!Number.isInteger(e.value))return!1;if(!this._compileNode(t))return!1;const n=this._code;n.push(hi.i32_trunc_f64_s);const a=e.value;if(a>0){n.push(hi.i32_const);this._emitSLEB128(a);n.push(hi.i32_shl)}else if(a<0){n.push(hi.i32_const);this._emitSLEB128(-a);n.push(hi.i32_shr_s)}n.push(hi.f64_convert_i32_s);return!0}_compileModNode(e,t){if(e.type===gr&&0===e.value){if(!this._compileNode(t))return!1;this._code.push(hi.drop);this._emitF64Const(0);return!0}const n=this._allocLocal();try{if(!this._compileNode(t))return!1;this._emitLocalTee(n);const a=this._code;if(e.type===gr){this._emitLocalGet(n);this._emitF64Const(e.value);a.push(hi.f64_div,hi.f64_trunc);this._emitF64Const(e.value);a.push(hi.f64_mul,hi.f64_sub)}else{const t=this._allocLocal();try{if(!this._compileNode(e))return!1;this._emitLocalSet(t);this._emitLocalGet(n);this._emitLocalGet(t);a.push(hi.f64_div,hi.f64_trunc);this._emitLocalGet(t);a.push(hi.f64_mul,hi.f64_sub);this._emitF64Const(0);this._emitLocalGet(t);this._emitF64Const(0);a.push(hi.f64_ne,hi.select)}finally{this._releaseLocal(t)}}return!0}finally{this._releaseLocal(n)}}_compileAtanNode(e,t){const n=this._allocLocal();try{if(!this._compileNode(t))return!1;if(!this._compileNode(e))return!1;const a=this._code;a.push(hi.call);this._emitULEB128(PsWasmCompiler.#Ne.atan2);this._emitF64Const(PsWasmCompiler.#Ee);a.push(hi.f64_mul);this._emitLocalTee(n);this._emitF64Const(0);a.push(hi.f64_lt,hi.if,ui);this._emitLocalGet(n);this._emitF64Const(360);a.push(hi.f64_add,hi.else);this._emitLocalGet(n);a.push(hi.end);return!0}finally{this._releaseLocal(n)}}_compileBitwiseNode(e,t,n){if(!this._compileBitwiseOperandI32(n))return!1;if(!this._compileBitwiseOperandI32(t))return!1;const a=this._code;switch(e){case rr.and:a.push(hi.i32_and);break;case rr.or:a.push(hi.i32_or);break;case rr.xor:a.push(hi.i32_xor);break;default:return!1}a.push(hi.f64_convert_i32_s);return!0}_compileBitwiseOperandI32(e){if(e.valueType===or)return this._compileNodeAsBoolI32(e);if(!this._compileNode(e))return!1;this._code.push(hi.i32_trunc_f64_s);return!0}_compileStandardBinaryNode(e,t,n){if(t!==n||t.type===dr||t.type===gr||t.shared){if(!this._compileNode(n))return!1;if(!this._compileNode(t))return!1}else{const e=this._allocLocal();try{if(!this._compileNode(t))return!1;this._emitLocalTee(e);this._emitLocalGet(e)}finally{this._releaseLocal(e)}}const a=this._code;switch(e){case rr.add:a.push(hi.f64_add);break;case rr.sub:a.push(hi.f64_sub);break;case rr.mul:a.push(hi.f64_mul);break;case rr.exp:a.push(hi.call);this._emitULEB128(PsWasmCompiler.#Ne.pow);break;case rr.eq:a.push(hi.f64_eq,hi.f64_convert_i32_s);break;case rr.ne:a.push(hi.f64_ne,hi.f64_convert_i32_s);break;case rr.lt:a.push(hi.f64_lt,hi.f64_convert_i32_s);break;case rr.le:a.push(hi.f64_le,hi.f64_convert_i32_s);break;case rr.gt:a.push(hi.f64_gt,hi.f64_convert_i32_s);break;case rr.ge:a.push(hi.f64_ge,hi.f64_convert_i32_s);break;case rr.min:a.push(hi.f64_min);break;case rr.max:a.push(hi.f64_max);break;default:return!1}return!0}_compileBinaryNode(e){const{op:t,first:n,second:a}=e;return t===rr.bitshift?this._compileBitshiftNode(n,a):t===rr.div?this._compileSafeDivNode(n,a):t===rr.idiv?this._compileSafeIdivNode(n,a):t===rr.mod?this._compileModNode(n,a):t===rr.atan?this._compileAtanNode(n,a):t===rr.and||t===rr.or||t===rr.xor?this._compileBitwiseNode(t,n,a):this._compileStandardBinaryNode(t,n,a)}_compileNodeAsBoolI32(e){if(e.type===wr){const t=PsWasmCompiler.#Me.get(e.op);if(void 0!==t){if(!this._compileNode(e.second))return!1;if(!this._compileNode(e.first))return!1;this._code.push(t);return!0}if(e.valueType===or&&(e.op===rr.and||e.op===rr.or||e.op===rr.xor)){if(!this._compileNodeAsBoolI32(e.second))return!1;if(!this._compileNodeAsBoolI32(e.first))return!1;switch(e.op){case rr.and:this._code.push(hi.i32_and);break;case rr.or:this._code.push(hi.i32_or);break;case rr.xor:this._code.push(hi.i32_xor)}return!0}}if(e.type===br&&e.op===rr.not&&e.valueType===or){if(!this._compileNodeAsBoolI32(e.operand))return!1;this._code.push(hi.i32_eqz);return!0}if(!this._compileNode(e))return!1;if(e.valueType===or)this._code.push(hi.i32_trunc_f64_s);else{this._emitF64Const(0);this._code.push(hi.f64_ne)}return!0}_compileTernaryNode(e){if(!this._compileNodeAsBoolI32(e.cond))return!1;this._code.push(hi.if,ui);if(!this._compileNode(e.then))return!1;this._code.push(hi.else);if(!this._compileNode(e.otherwise))return!1;this._code.push(hi.end);return!0}compile(e){const t=(new PSStackToTree).evaluate(e,this._nIn);if(!t||t.length0?[[...unsignedLEB128(s),ui]]:[]),l=o.length+n.length,f=new Uint8Array(section(wi,vec([[...unsignedLEB128(l),...o,...n]]))),c=PsWasmCompiler.#Xe,h=PsWasmCompiler.#ze,u=PsWasmCompiler.#Le,m=PsWasmCompiler.#Ue,p=PsWasmCompiler.#We,d=c.length+i.length+h.length+u.length+m.length+p.length+f.length,g=new Uint8Array(d);let b=0;g.set(c,b);b+=c.length;g.set(i,b);b+=i.length;g.set(h,b);b+=h.length;g.set(u,b);b+=u.length;g.set(m,b);b+=m.length;g.set(p,b);b+=p.length;g.set(f,b);return g}}function buildPostScriptWasmFunction(e,t,n){const a=function compilePostScriptToWasm(e,t,n){return new PsWasmCompiler(t,n).compile(parsePostScriptFunction(e))}(e,t,n);if(!a)return null;try{return function _makeWrapper(e,t,n){const{fn:a,mem:s}=e,r=new Float64Array(s.buffer,0,n);let i;switch(n){case 1:i=(e,t)=>{e[t]=r[0]};break;case 2:i=(e,t)=>{e[t]=r[0];e[t+1]=r[1]};break;case 3:i=(e,t)=>{e[t]=r[0];e[t+1]=r[1];e[t+2]=r[2]};break;case 4:i=(e,t)=>{e[t]=r[0];e[t+1]=r[1];e[t+2]=r[2];e[t+3]=r[3]};break;default:i=(e,t)=>{for(let a=0;a{a(e[t]);i(n,s)};case 2:return(e,t,n,s)=>{a(e[t],e[t+1]);i(n,s)};case 3:return(e,t,n,s)=>{a(e[t],e[t+1],e[t+2]);i(n,s)};case 4:return(e,t,n,s)=>{a(e[t],e[t+1],e[t+2],e[t+3]);i(n,s)};default:{const e=new Float64Array(t);return(n,s,r,o)=>{for(let a=0;a>1,n.length>>1)}catch{return null}}class BaseLocalCache{constructor(e){this._onlyRefs=!0===e?.onlyRefs;if(!this._onlyRefs){this._nameRefMap=new Map;this._imageMap=new Map}this._imageCache=new RefMap}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,n){unreachable("Abstract method `set` called.")}}class LocalImageCache extends BaseLocalCache{set(e,t=null,n){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,n)}else this._imageMap.has(e)||this._imageMap.set(e,n)}}class LocalColorSpaceCache extends BaseLocalCache{set(e=null,t=null,n){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,n)}else this._imageMap.has(e)||this._imageMap.set(e,n)}}class LocalFunctionCache extends BaseLocalCache{constructor(e){super({onlyRefs:!0})}set(e=null,t,n){if(!t)throw new Error('LocalFunctionCache.set - expected "ref" argument.');this._imageCache.has(t)||this._imageCache.put(t,n)}}class LocalGStateCache extends BaseLocalCache{set(e,t=null,n){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,n)}else this._imageMap.has(e)||this._imageMap.set(e,n)}}class LocalTilingPatternCache extends BaseLocalCache{constructor(e){super({onlyRefs:!0})}set(e=null,t,n){if(!t)throw new Error('LocalTilingPatternCache.set - expected "ref" argument.');this._imageCache.has(t)||this._imageCache.put(t,n)}}class RegionalImageCache extends BaseLocalCache{constructor(e){super({onlyRefs:!0})}set(e=null,t,n){if(!t)throw new Error('RegionalImageCache.set - expected "ref" argument.');this._imageCache.has(t)||this._imageCache.put(t,n)}}class GlobalColorSpaceCache extends BaseLocalCache{constructor(e){super({onlyRefs:!0})}set(e=null,t,n){if(!t)throw new Error('GlobalColorSpaceCache.set - expected "ref" argument.');this._imageCache.has(t)||this._imageCache.put(t,n)}clear(){this._imageCache.clear()}}class GlobalImageCache{static NUM_PAGES_THRESHOLD=2;static MIN_IMAGES_TO_CACHE=10;static MAX_BYTE_SIZE=5e7;#Ve=new RefSet;constructor(){this._refCache=new RefMap;this._imageCache=new RefMap}get#$e(){let e=0;for(const t of this._imageCache)e+=t.byteSize;return e}get#Ye(){return!(this._imageCache.size+e):null}class PDFFunction{static getSampleArray(e,t,n,a){let s=t;for(const t of e)s*=t;const r=new Array(s);let i=0,o=0;const l=1/(2**n-1),f=a.getBytes((s*n+7)/8);let c=0;for(let e=0;e>i)*l;o&=(1<0?r[h-1]:n[0],m=h{PsJsCompiler.execute(r,e,t,n,a)}:PSStackBasedInterpreter.build(s,t,n)}(r,a,s)}}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")}function textSinkWrapper(e){const t=e?null:Promise.resolve();return{enqueueInvoked:!1,enqueue(t,n){this.enqueueInvoked=!0;e?.enqueue(t,n)},get desiredSize(){return e?.desiredSize??100},get ready(){return e?.ready??t}}}function _parseVisibilityExpression(e,t,n,a){if(++n>10){warn("Visibility expression is too deeply nested");return}const s=t.length,r=e.fetchIfRef(t[0]);if(!(s<2)&&r instanceof Name){switch(r.name){case"And":case"Or":case"Not":a.push(r.name);break;default:warn(`Invalid operator ${r.name} in visibility expression`);return}for(let r=1;r0)return{type:"OCMD",expression:n}}const n=a.get("OCGs");if(Array.isArray(n)||n instanceof Dict){const e=[];if(Array.isArray(n))for(const t of n)e.push(t.toString());else e.push(n.objId);const t=a.get("P");return{type:s,ids:e,policy:t instanceof Name?t.name:null,expression:null}}if(n instanceof Ref)return{type:s,id:n.toString()}}return null}const Ai=["BN","BN","BN","BN","BN","BN","BN","BN","BN","S","B","S","WS","B","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","B","B","B","S","WS","ON","ON","ET","ET","ET","ON","ON","ON","ON","ON","ES","CS","ES","CS","CS","EN","EN","EN","EN","EN","EN","EN","EN","EN","EN","CS","ON","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","ON","ON","ON","BN","BN","BN","BN","BN","BN","B","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","CS","ON","ET","ET","ET","ET","ON","ON","ON","ON","L","ON","ON","BN","ON","ON","ET","ET","EN","EN","ON","L","ON","ON","ON","EN","L","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","L","L","L","L","L","L","L","L"],xi=["AN","AN","AN","AN","AN","AN","ON","ON","AL","ET","ET","AL","CS","AL","ON","ON","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","AL","AL","","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","AN","AN","AN","AN","AN","AN","AN","AN","AN","AN","ET","AN","AN","AL","AL","AL","NSM","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","NSM","NSM","NSM","NSM","NSM","NSM","NSM","AN","ON","NSM","NSM","NSM","NSM","NSM","NSM","AL","AL","NSM","NSM","ON","NSM","NSM","NSM","NSM","AL","AL","EN","EN","EN","EN","EN","EN","EN","EN","EN","EN","AL","AL","AL","AL","AL","AL"];function isOdd(e){return!!(1&e)}function isEven(e){return!(1&e)}function findUnequal(e,t,n){let a,s;for(a=t,s=e.length;a4){a=!0;t=0}else{a=!1;t=1}const l=[];for(r=0;r=0&&"ET"===Ii[e];--e)Ii[e]="EN";for(let e=r+1;e=0;e--){const n=Ii[e];if("L"===n){t="L";break}if("R"===n||"EN"===n||"AN"===n){t="R";break}}let n=h;for(let t=e;tp&&isOdd(p)&&(g=p)}for(p=d;p>=g;--p){let e=-1;for(r=0,i=l.length;r=0){reverseValues(Ci,e,r);e=-1}}else e<0&&(e=r);e>=0&&reverseValues(Ci,e,l.length)}for(r=0,i=Ci.length;r"!==e||(Ci[r]="")}return createBidiText(Ci.join(""),a)}const Fi={style:"normal",weight:"normal"},Ti={style:"normal",weight:"500"},Ri={style:"normal",weight:"bold"},Oi={style:"italic",weight:"normal"},Hi={style:"italic",weight:"bold"},Bi=new Map([["Times-Roman",{local:["Times New Roman","Times-Roman","Times","Liberation Serif","Nimbus Roman","Nimbus Roman L","Tinos","Thorndale","TeX Gyre Termes","FreeSerif","Linux Libertine O","Libertinus Serif","PT Astra Serif","DejaVu Serif","Bitstream Vera Serif","Ubuntu"],style:Fi,ultimate:"serif"}],["Times-Bold",{alias:"Times-Roman",style:Ri,ultimate:"serif"}],["Times-Italic",{alias:"Times-Roman",style:Oi,ultimate:"serif"}],["Times-BoldItalic",{alias:"Times-Roman",style:Hi,ultimate:"serif"}],["Helvetica",{local:["Helvetica","Helvetica Neue","Arial","Arial Nova","Liberation Sans","Arimo","Nimbus Sans","Nimbus Sans L","A030","TeX Gyre Heros","FreeSans","DejaVu Sans","Albany","Bitstream Vera Sans","Arial Unicode MS","Microsoft Sans Serif","Apple Symbols","Cantarell"],path:"LiberationSans-Regular.ttf",style:Fi,ultimate:"sans-serif"}],["Helvetica-Bold",{alias:"Helvetica",path:"LiberationSans-Bold.ttf",style:Ri,ultimate:"sans-serif"}],["Helvetica-Oblique",{alias:"Helvetica",path:"LiberationSans-Italic.ttf",style:Oi,ultimate:"sans-serif"}],["Helvetica-BoldOblique",{alias:"Helvetica",path:"LiberationSans-BoldItalic.ttf",style:Hi,ultimate:"sans-serif"}],["Courier",{local:["Courier","Courier New","Liberation Mono","Nimbus Mono","Nimbus Mono L","Cousine","Cumberland","TeX Gyre Cursor","FreeMono","Linux Libertine Mono O","Libertinus Mono"],style:Fi,ultimate:"monospace"}],["Courier-Bold",{alias:"Courier",style:Ri,ultimate:"monospace"}],["Courier-Oblique",{alias:"Courier",style:Oi,ultimate:"monospace"}],["Courier-BoldOblique",{alias:"Courier",style:Hi,ultimate:"monospace"}],["ArialBlack",{local:["Arial Black"],style:{style:"normal",weight:"900"},fallback:"Helvetica-Bold"}],["ArialBlack-Bold",{alias:"ArialBlack"}],["ArialBlack-Italic",{alias:"ArialBlack",style:{style:"italic",weight:"900"},fallback:"Helvetica-BoldOblique"}],["ArialBlack-BoldItalic",{alias:"ArialBlack-Italic"}],["ArialNarrow",{local:["Arial Narrow","Liberation Sans Narrow","Helvetica Condensed","Nimbus Sans Narrow","TeX Gyre Heros Cn"],style:Fi,fallback:"Helvetica"}],["ArialNarrow-Bold",{alias:"ArialNarrow",style:Ri,fallback:"Helvetica-Bold"}],["ArialNarrow-Italic",{alias:"ArialNarrow",style:Oi,fallback:"Helvetica-Oblique"}],["ArialNarrow-BoldItalic",{alias:"ArialNarrow",style:Hi,fallback:"Helvetica-BoldOblique"}],["Calibri",{local:["Calibri","Carlito"],style:Fi,fallback:"Helvetica"}],["Calibri-Bold",{alias:"Calibri",style:Ri,fallback:"Helvetica-Bold"}],["Calibri-Italic",{alias:"Calibri",style:Oi,fallback:"Helvetica-Oblique"}],["Calibri-BoldItalic",{alias:"Calibri",style:Hi,fallback:"Helvetica-BoldOblique"}],["Wingdings",{local:["Wingdings","URW Dingbats"],style:Fi}],["Wingdings-Regular",{alias:"Wingdings"}],["Wingdings-Bold",{alias:"Wingdings"}],["ËÎÌå",{local:["SimSun","SimSun Regular","NSimSun"],style:Fi,ultimate:"serif"}],["ºÚÌå",{local:["SimHei","SimHei Regular"],style:Fi,ultimate:"sans-serif"}],["¿¬Ìå",{local:["KaiTi","SimKai","SimKai Regular"],style:Fi,ultimate:"sans-serif"}],["·ÂËÎ",{local:["FangSong","SimFang","SimFang Regular"],style:Fi,ultimate:"serif"}],["¿¬Ìå_GB2312",{alias:"¿¬Ìå"}],["·ÂËÎ_GB2312",{alias:"·ÂËÎ"}],["Á¥Êé",{local:["SimLi","SimLi Regular"],style:Fi,ultimate:"serif"}],["ÐÂËÎ",{alias:"ËÎÌå"}],["HeiseiMin-W3",{local:["Hiragino Mincho ProN","Hiragino Mincho Pro","Yu Mincho","YuMincho","Source Han Serif JP","Noto Serif JP","Noto Serif CJK JP","IPAexMincho","IPAMincho","Takao Mincho","MS Mincho","MS PMincho"],style:Fi,ultimate:"serif"}],["HeiseiKakuGo-W5",{local:["Hiragino Kaku Gothic ProN","Hiragino Kaku Gothic Pro","Hiragino Sans","Yu Gothic","YuGothic","Source Han Sans JP","Noto Sans JP","Noto Sans CJK JP","IPAexGothic","IPAGothic","Takao Gothic","Meiryo","MS Gothic","MS PGothic"],style:Ti,ultimate:"sans-serif"}],["HeiseiMin-W3-Acro",{alias:"HeiseiMin-W3"}],["HeiseiKakuGo-W5-Acro",{alias:"HeiseiKakuGo-W5"}],["KozMinPro-Regular",{alias:"HeiseiMin-W3"}],["KozMinProVI-Regular",{alias:"HeiseiMin-W3"}],["KozMinPr6N-Regular",{alias:"HeiseiMin-W3"}],["KozGoPro-Regular",{alias:"HeiseiKakuGo-W5"}],["KozGoProVI-Regular",{alias:"HeiseiKakuGo-W5"}],["KozGoPr6N-Regular",{alias:"HeiseiKakuGo-W5"}],["STSong-Light",{local:["STSong","Songti SC","Source Han Serif SC","Source Han Serif CN","Noto Serif SC","Noto Serif CJK SC","AR PL UMing CN","SimSun","NSimSun"],style:Fi,ultimate:"serif"}],["STHeiti-Regular",{local:["STHeiti","Heiti SC","PingFang SC","Source Han Sans SC","Source Han Sans CN","Noto Sans SC","Noto Sans CJK SC","Microsoft YaHei","SimHei","WenQuanYi Zen Hei"],style:Fi,ultimate:"sans-serif"}],["STSongStd-Light",{alias:"STSong-Light"}],["AdobeSongStd-Light",{alias:"STSong-Light"}],["AdobeHeitiStd-Regular",{alias:"STHeiti-Regular"}],["AdobeKaitiStd-Regular",{alias:"¿¬Ìå"}],["AdobeFangsongStd-Regular",{alias:"·ÂËÎ"}],["MSung-Light",{local:["Songti TC","LiSong Pro","Source Han Serif TC","Source Han Serif TW","Noto Serif TC","Noto Serif CJK TC","AR PL UMing TW","PMingLiU","MingLiU","MingLiU_HKSCS"],style:Fi,ultimate:"serif"}],["MHei-Medium",{local:["Heiti TC","STHeiti","Source Han Sans TC","Source Han Sans TW","Noto Sans TC","Noto Sans CJK TC","PingFang TC","Microsoft JhengHei"],style:Ti,ultimate:"sans-serif"}],["MSungStd-Light",{alias:"MSung-Light"}],["AdobeMingStd-Light",{alias:"MSung-Light"}],["HYSMyeongJo-Medium",{local:["AppleMyungjo","Source Han Serif KR","Noto Serif KR","Noto Serif CJK KR","Nanum Myeongjo","Batang"],style:Ti,ultimate:"serif"}],["HYGoThic-Medium",{local:["Apple SD Gothic Neo","AppleGothic","Source Han Sans KR","Noto Sans KR","Noto Sans CJK KR","Nanum Gothic","Malgun Gothic","Dotum","Gulim"],style:Ti,ultimate:"sans-serif"}],["HYSMyeongJoStd-Medium",{alias:"HYSMyeongJo-Medium"}],["AdobeMyungjoStd-Medium",{alias:"HYSMyeongJo-Medium"}],["HYGoThic-Bold",{alias:"HYGoThic-Medium",style:Ri}],["AdobeGothicStd-Bold",{alias:"HYGoThic-Medium",style:Ri}]]),Di=new Map([["Arial-Black","ArialBlack"]]);function getFamilyName(e){const t=new Set(["thin","extralight","ultralight","demilight","semilight","light","book","regular","normal","medium","demibold","semibold","bold","extrabold","ultrabold","black","heavy","extrablack","ultrablack","roman","italic","oblique","ultracondensed","extracondensed","condensed","semicondensed","normal","semiexpanded","expanded","extraexpanded","ultraexpanded","bolditalic"]);return e.split(/[- ,+]+/g).filter(e=>!t.has(e.toLowerCase())).join(" ")}function generateFont({alias:e,local:t,path:n,fallback:a,style:s,ultimate:r},i,o,l=!0,f=!0,c=""){const h={style:null,ultimate:null};if(t){const e=c?` ${c}`:"";for(const n of t)i.push(`local(${n}${e})`)}if(e){const t=Bi.get(e),r=c||function getStyleToAppend(e){switch(e){case Ri:return"Bold";case Oi:return"Italic";case Hi:return"Bold Italic";default:if("bold"===e?.weight)return"Bold";if("italic"===e?.style)return"Italic"}return""}(s);Object.assign(h,generateFont(t,i,o,l&&!a,f&&!n,r))}s&&(h.style=s);r&&(h.ultimate=r);if(l&&a){const e=Bi.get(a),{ultimate:t}=generateFont(e,i,o,l,f&&!n,c);h.ultimate||=t}f&&n&&o&&i.push(`url(${o}${n})`);return h}function getFontSubstitution(e,t,n,a,s,r){if(a.startsWith("InvalidPDFjsFont_"))return null;"TrueType"!==r&&"Type1"!==r||!/^[A-Z]{6}\+/.test(a)||(a=a.slice(7));const i=a=normalizeFontName(a);let o=e.get(i);if(o)return o;let l=Bi.get(a);if(!l)for(const[e,t]of Di)if(a.startsWith(e)){a=`${t}${a.substring(e.length)}`;l=Bi.get(a);break}let f=!1;if(!l){l=Bi.get(s);f=!0}const c=`${t.getDocId()}_s${t.createFontId()}`;if(!l){if(!validateFontName(a)){warn(`Cannot substitute the font because of its name: ${a}`);e.set(i,null);return null}const t=/bold/i.test(a),n=/oblique|italic/i.test(a),s=t&&n&&Hi||t&&Ri||n&&Oi||Fi;o={css:`"${getFamilyName(a)}",${c}`,guessFallback:!0,loadedName:c,baseFontName:a,src:`local(${a})`,style:s};e.set(i,o);return o}const h=[];f&&validateFontName(a)&&h.push(`local(${a})`);const{style:u,ultimate:m}=generateFont(l,h,n),p=null===m,d=p?"":`,${m}`;o={css:`"${getFamilyName(a)}",${c}${d}`,guessFallback:p,loadedName:c,baseFontName:a,src:h.join(","),style:u};e.set(i,o);return o}const Mi=3285377520,Ni=4294901760,Pi=65535;class MurmurHash3_64{constructor(e){this.h1=e?4294967295&e:Mi;this.h2=e?4294967295&e:Mi}update(e){let t,n;if("string"==typeof e){t=new Uint8Array(2*e.length);n=0;for(let a=0,s=e.length;a>>8;t[n++]=255&s}}}else{if(!ArrayBuffer.isView(e))throw new Error("Invalid data format, must be a string or TypedArray.");t=e.slice();n=t.byteLength}const a=n>>2,s=n-4*a,r=new Uint32Array(t.buffer,0,a);let i=0,o=0,l=this.h1,f=this.h2;const c=3432918353,h=461845907,u=11601,m=13715;for(let e=0;e>>17;i=i*h&Ni|i*mΠl^=i;l=l<<13|l>>>19;l=5*l+3864292196}else{o=r[e];o=o*c&Ni|o*uΠo=o<<15|o>>>17;o=o*h&Ni|o*mΠf^=o;f=f<<13|f>>>19;f=5*f+3864292196}i=0;switch(s){case 3:i^=t[4*a+2]<<16;case 2:i^=t[4*a+1]<<8;case 1:i^=t[4*a];i=i*c&Ni|i*uΠi=i<<15|i>>>17;i=i*h&Ni|i*mΠ1&a?l^=i:f^=i}this.h1=l;this.h2=f}hexdigest(){let e=this.h1,t=this.h2;e^=t>>>1;e=3981806797*e&Ni|36045*eΠt=4283543511*t&Ni|(2950163797*(t<<16|e>>>16)&Ni)>>>16;e^=t>>>1;e=444984403*e&Ni|60499*eΠt=3301882366*t&Ni|(3120437893*(t<<16|e>>>16)&Ni)>>>16;e^=t>>>1;return(e>>>0).toString(16).padStart(8,"0")+(t>>>0).toString(16).padStart(8,"0")}}class PDFImage{constructor({xref:e,res:t,image:n,isInline:a=!1,smask:s=null,mask:r=null,isMask:i=!1,pdfFunctionFactory:o,globalColorSpaceCache:l,localColorSpaceCache:f}){this.image=n;const c=n.dict,h=c.get("F","Filter");let u;if(h instanceof Name)u=h.name;else if(Array.isArray(h)){const t=e.fetchIfRef(h[0]);t instanceof Name&&(u=t.name)}switch(u){case"JPXDecode":({width:n.width,height:n.height,componentsCount:n.numComps,bitsPerComponent:n.bitsPerComponent}=JpxImage.parseImageProperties(n.stream));n.stream.reset();const e=ImageResizer.getReducePowerForJPX(n.width,n.height,n.numComps);this.jpxDecoderOptions={numComponents:0,isIndexedColormap:!1,smaskInData:c.get("SMaskInData")>=1,reducePower:e};if(e){const t=2**e;n.width=Math.ceil(n.width/t);n.height=Math.ceil(n.height/t)}break;case"JBIG2Decode":n.bitsPerComponent=1;n.numComps=1}let m=c.get("W","Width"),p=c.get("H","Height");if(Number.isInteger(n.width)&&n.width>0&&Number.isInteger(n.height)&&n.height>0&&(n.width!==m||n.height!==p)){warn("PDFImage - using the Width/Height of the image data, rather than the image dictionary.");m=n.width;p=n.height}else{const e="number"==typeof m&&m>0,t="number"==typeof p&&p>0;if(!e||!t){if(!n.fallbackDims)throw new FormatError(`Invalid image width: ${m} or height: ${p}`);warn("PDFImage - using the Width/Height of the parent image, for SMask/Mask data.");e||(m=n.fallbackDims.width);t||(p=n.fallbackDims.height)}}this.width=m;this.height=p;this.interpolate=c.get("I","Interpolate");this.imageMask=c.get("IM","ImageMask")||!1;this.matte=c.get("Matte")||!1;let d=n.bitsPerComponent;if(!d){d=c.get("BPC","BitsPerComponent");if(!d){if(!this.imageMask)throw new FormatError(`Bits per component missing in image: ${this.imageMask}`);d=1}}this.bpc=d;if(this.imageMask)this.numComps=1;else{let s=c.getRaw("CS")||c.getRaw("ColorSpace");const r=!!s;if(this.jpxDecoderOptions?.smaskInData&&2===c.get("SMaskInData")){this.jpxPremultiplied=!0;if(this.matte){const n=ColorSpaceUtils.parse({cs:r?s:Name.get("DeviceRGB"),xref:e,resources:a?t:null,pdfFunctionFactory:o,globalColorSpaceCache:l,localColorSpaceCache:f});this.preblendMatte=n.getRgb(this.matte,0)}}if(r)this.jpxDecoderOptions?.smaskInData&&(s=Name.get("DeviceRGBA"));else if(this.jpxDecoderOptions)s=Name.get("DeviceRGBA");else switch(n.numComps){case 1:s=Name.get("DeviceGray");break;case 3:s=Name.get("DeviceRGB");break;case 4:s=Name.get("DeviceCMYK");break;default:throw new Error(`Images with ${n.numComps} color components not supported.`)}this.colorSpace=ColorSpaceUtils.parse({cs:s,xref:e,resources:a?t:null,pdfFunctionFactory:o,globalColorSpaceCache:l,localColorSpaceCache:f});this.numComps=this.colorSpace.numComps;if(this.jpxDecoderOptions){this.jpxDecoderOptions.numComponents=r?this.numComps:0;this.jpxDecoderOptions.isIndexedColormap="Indexed"===this.colorSpace.name}}this.decode=c.getArray("D","Decode");this.needsDecode=!1;if(this.decode&&(this.colorSpace&&!this.colorSpace.isDefaultDecode(this.decode,d)||i&&!ColorSpace.isDefaultDecode(this.decode,1))){this.needsDecode=!0;const e=(1<0,l=(a+7>>3)*s,f=await e.getImageData(l),c=1===a&&1===s&&o===(0===f.length||!!(128&f[0]));if(c)return{isSingleOpaquePixel:c};if(t){if(ImageResizer.needsToBeResized(a,s)){const e=new Uint8ClampedArray(a*s*4);convertBlackAndWhiteToRGBA({src:f,dest:e,width:a,height:s,nonBlackColor:0,inverseDecode:o});return ImageResizer.createImage({kind:T,data:e,width:a,height:s,interpolate:r})}const e=new OffscreenCanvas(a,s),t=e.getContext("2d"),n=t.createImageData(a,s);convertBlackAndWhiteToRGBA({src:f,dest:n.data,width:a,height:s,nonBlackColor:0,inverseDecode:o});t.putImageData(n,0,0);return{data:null,width:a,height:s,interpolate:r,bitmap:e.transferToImageBitmap()}}const h=f.byteLength;let u;if(e instanceof DecodeStream&&(!o||l===h))u=f;else if(o){u=new Uint8Array(l);u.set(f);u.fill(255,h)}else u=new Uint8Array(f);if(o)for(let e=0;e>7&1;i[u+1]=h>>6&1;i[u+2]=h>>5&1;i[u+3]=h>>4&1;i[u+4]=h>>3&1;i[u+5]=h>>2&1;i[u+6]=h>>1&1;i[u+7]=1&h;u+=8}if(u>=1}}}}else{let n=0;h=0;for(u=0,c=r;u>a,0,f);h&=(1<this.smask.fillGrayBuffer(e,{...a,destWidth:t,destHeight:n});else if(this.mask)if(this.mask instanceof PDFImage)r=(e,a)=>this.mask.fillGrayBuffer(e,{...a,invertOutput:!0,destWidth:t,destHeight:n});else{if(!Array.isArray(this.mask))throw new FormatError("Unknown mask format.");r=(e,{maxRows:n,offset:a,stride:r})=>{for(let i=0,o=t*n;ithis.mask[r+1]){t=255;break}}e[i*r+a]=t}}}else r=(e,{maxRows:n,offset:a,stride:s})=>{for(let r=0,i=t*n;r>3,c=t&&ImageResizer.needsToBeResized(n,a);if(!this.smask&&!this.mask&&"DeviceRGBA"===this.colorSpace.name){s.kind=T;const e=s.data=await this.getImageBytes(o*i*4,{internal:t&&c});if(this.jpxPremultiplied){const t=this.preblendMatte;PDFImage.#Je(e,e.length,t?.[0]??0,t?.[1]??0,t?.[2]??0)}return t?c?ImageResizer.createImage(s,!1):this.createBitmap(T,n,a,e):s}if(!e&&!this.smask&&!this.mask){let e;"DeviceGray"===this.colorSpace.name&&1===l?e=C:"DeviceRGB"!==this.colorSpace.name||8!==l||this.needsDecode||(e=F);if(e&&n===i&&a===o){const r=await this.#Qe(i,o);if(r)return r;const l=await this.getImageBytes(o*f,{internal:t&&c});if(t)return c?ImageResizer.createImage({data:l,kind:e,width:n,height:a,interpolate:this.interpolate},this.needsDecode):this.createBitmap(e,i,o,l);s.kind=e;s.data=l;if(this.needsDecode){assert(e===C,"PDFImage.createImageData: The image must be grayscale.");const t=s.data;for(let e=0,n=t.length;e>3,u=await this.getImageBytes(f*h,{internal:!0}),m=this.getComponents(u),p=t??l,d=n??f,g=p!==l||d!==f,b=void 0===s?d:Math.min(d,s);let w=l,j=0,k=null;if(g){w=p;j=f/d;const e=l/p;k=new Uint32Array(p);for(let t=0;t0&&a[0].count++}class TimeSlotManager{static TIME_SLOT_DURATION_MS=20;static CHECK_TIME_EVERY=100;constructor(){this.reset()}check(){if(++this.checked!isFinite(e))&&(m=null);l.has("OC")&&(h=await this.parseMarkedContentProps(l.get("OC"),e));void 0!==h&&a.addOp(Ct,["OC",h]);const p=l.get("Group");let d;const g=[f&&new Float32Array(f),!p&&m||null],b=l.get("Resources");if(p){u={matrix:f,bbox:m,smask:n,isolated:!1,knockout:!1,needsIsolation:!1,hasSoftMask:!1,isGray:!1};let t=null;if(isName(p.get("S"),"Transparency")){u.isolated=p.get("I")||!1;u.knockout=p.get("K")||!1;if(p.has("CS")){const n=this._getColorSpace(p.getRaw("CS"),e,i);t=n instanceof ColorSpace?n:await this._handleColorSpace(n)}}u.isGray=1===t?.numComps;if(n?.backdrop){t||=ColorSpaceUtils.rgb;n.backdrop=t.getRgbHex(n.backdrop,0)}else"Luminosity"===n?.subtype&&(n.backdrop="#000000");d=new CheckedOperatorList}else{d=a;a.addOp(Rt,g)}await this.getOperatorList({stream:t,task:s,resources:b instanceof Dict?b:e,operatorList:d,initialState:r,prevRefs:o});if(p){u.needsIsolation=d.needsIsolation||!!n;u.hasSoftMask=d.hasSoftMask||!!n;a.addOp(Ht,[u]);a.addOp(Rt,g);a.addOpList(d);a.addOp(Ot,[]);a.addOp(Bt,[u])}else a.addOp(Ot,[]);void 0!==h&&a.addOp(It,[])}_sendImgData(e,t,n=!1){const a=t?[t.bitmap||t.data.buffer]:null;return this.parsingType3Font||n?this.handler.send("commonobj",[e,"Image",t],a):this.handler.send("obj",[e,this.pageIndex,"Image",t],a)}async buildPaintImageXObject({resources:e,image:t,isInline:n=!1,operatorList:a,cacheKey:s,localImageCache:r,localColorSpaceCache:i}){const{maxImageSize:o,ignoreErrors:l,isOffscreenCanvasSupported:f}=this.options,{dict:c}=t,h=c.objId,u=c.get("W","Width"),m=c.get("H","Height");if(!u||"number"!=typeof u||!m||"number"!=typeof m){warn("Image dimensions are missing, or not numbers.");return}if(-1!==o&&u*m>o){const e="Image exceeded maximum allowed size and was removed.";if(!l)throw new Error(e);warn(e);return}let p;c.has("OC")&&(p=await this.parseMarkedContentProps(c.get("OC"),e));let d,g,b;if(c.get("IM","ImageMask")||!1){d=await PDFImage.createMask({image:t,isOffscreenCanvasSupported:f&&!this.parsingType3Font});if(d.isSingleOpaquePixel){g=Wt;b=[];a.addImageOps(g,b,p);if(s){const e={fn:g,args:b,optionalContent:p};r.set(s,h,e);h&&this._regionalImageCache.set(null,h,e)}return}if(this.parsingType3Font){b=function compileType3Glyph({data:e,width:t,height:n}){if(t>1e3||n>1e3)return null;const a=new Uint8Array([0,2,4,0,1,0,5,4,8,10,0,8,0,2,1,0]),s=t+1,r=new Uint8Array(s*(n+1));let i,o,l;const f=t+7&-8,c=new Uint8Array(f*n);let h=0;for(const t of e){let e=128;for(;e>0;){c[h++]=t&e?0:255;e>>=1}}let u=0;h=0;if(0!==c[h]){r[0]=1;++u}for(o=1;o>2)+(c[h+1]?4:0)+(c[h-f+1]?8:0);if(a[e]){r[l+o]=a[e];++u}h++}if(c[h-f]!==c[h]){r[l+o]=c[h]?2:4;++u}if(u>1e3)return null}h=f*(n-1);l=i*s;if(0!==c[h]){r[l]=8;++u}for(o=1;o1e3)return null;const m=new Int32Array([0,s,-1,0,-s,0,0,0,1]),p=[],{a:d,b:g,c:b,d:w,e:j,f:k}=(new DOMMatrix).scaleSelf(1/t,-1/n).translateSelf(0,-n);for(i=0;u&&i<=n;i++){let e=i*s;const n=e+t;for(;e>4;r[e]&=f>>2|f<<2}a=e%s;o=e/s|0;p.push(Yt,d*a+b*o+j,g*a+w*o+k);r[e]||--u}while(l!==e);--i}return[Vt,[new Float32Array(p)],new Float32Array([0,0,t,n])]}(d);if(b){a.addImageOps(Xt,b,p);return}warn("Cannot compile Type3 glyph.");a.addImageOps(Nt,[d],p);return}const e=`mask_${this.idFactory.createObjId()}`;a.addDependency(e);d.dataLen=d.bitmap?d.width*d.height*4:d.data.length;this._sendImgData(e,d);g=Nt;b=[{data:e,width:d.width,height:d.height,interpolate:d.interpolate,count:1}];a.addImageOps(g,b,p);if(s){const t={objId:e,fn:g,args:b,optionalContent:p};r.set(s,h,t);h&&this._regionalImageCache.set(null,h,t)}return}const w=c.has("SMask")||c.has("Mask");if(n&&u+m<200&&!w){try{const s=new PDFImage({xref:this.xref,res:e,image:t,isInline:n,pdfFunctionFactory:this._pdfFunctionFactory,globalColorSpaceCache:this.globalColorSpaceCache,localColorSpaceCache:i});d=await s.createImageData(!0,!1);a.addImageOps(_t,[d],p)}catch(e){const t=`Unable to decode inline image: "${e}".`;if(!l)throw new Error(t);warn(t)}return}let j=`img_${this.idFactory.createObjId()}`,k=!1,y=null;if(this.parsingType3Font)j=`${this.idFactory.getDocId()}_type3_${j}`;else if(s&&h){k=this.globalImageCache.shouldCache(h,this.pageIndex);if(k){assert(!n,"Cannot cache an inline image globally.");j=`${this.idFactory.getDocId()}_${j}`}}a.addDependency(j);g=Et;b=[j,u,m];a.addImageOps(g,b,p,w);if(k){y={objId:j,fn:g,args:b,optionalContent:p,hasMask:w,byteSize:0};if(this.globalImageCache.hasDecodeFailed(h)){this.globalImageCache.setData(h,y);this._sendImgData(j,null,k);return}if(u*m>25e4||w){const e=await this.handler.sendWithPromise("commonobj",[j,"CopyLocalImage",{imageRef:h}]);if(e){this.globalImageCache.setData(h,y);this.globalImageCache.addByteSize(h,e);return}}}PDFImage.buildImage({xref:this.xref,res:e,image:t,isInline:n,pdfFunctionFactory:this._pdfFunctionFactory,globalColorSpaceCache:this.globalColorSpaceCache,localColorSpaceCache:i}).then(async e=>{d=await e.createImageData(!1,f);d.dataLen=d.bitmap?d.width*d.height*4:d.data.length;d.ref=h;k&&this.globalImageCache.addByteSize(h,d.dataLen);return this._sendImgData(j,d,k)}).catch(e=>{warn(`Unable to decode image "${j}": "${e}".`);h&&this.globalImageCache.addDecodeFailed(h);return this._sendImgData(j,null,k)});if(s){const e={objId:j,fn:g,args:b,optionalContent:p,hasMask:w};r.set(s,h,e);if(h){this._regionalImageCache.set(null,h,e);if(k){assert(y,"The global cache-data must be available.");this.globalImageCache.setData(h,y)}}}}#Ze(e){const t=this._pdfFunctionFactory.create(e),n=new Float32Array(1);return Uint8Array.from({length:256},(e,a)=>{n[0]=a/255;t(n,0,n,0);return 255*n[0]|0})}handleSMask(e,t,n,a,s,r,i){const o=e.get("G"),l={subtype:e.get("S").name,backdrop:e.get("BC")},f=e.get("TR");isPDFFunction(f)&&(l.transferMap=this.#Ze(f));return this.buildFormXObject(t,o,l,n,a,s.state.clone({newPath:!0}),r,i)}handleTransferFunction(e){let t;if(Array.isArray(e))t=e.length>1&&e.every(t=>t===e[0])?[e[0]]:e;else{if(!isPDFFunction(e))return null;t=[e]}const n=[];let a=0,s=0;for(const e of t){const t=this.xref.fetchIfRef(e);a++;if(isName(t,"Identity"))n.push(null);else{if(!isPDFFunction(t))return null;n.push(this.#Ze(t));s++}}return 1!==a&&4!==a||0===s?null:n}handleTilingType(e,t,n,a,s,r,i,o,l){const f=new CheckedOperatorList,c=Dict.merge({xref:this.xref,dictArray:[s.get("Resources"),n]});return this.getOperatorList({stream:a,task:i,resources:c,operatorList:f,prevRefs:l}).then(function(){const n=f.getIR(),{needsIsolation:a}=f,i=getTilingPatternIR(n,s,t,a);r.addDependencies(f.dependencies);r.addOp(e,i);s.objId&&o.set(null,s.objId,{operatorListIR:n,needsIsolation:a,dict:s})}).catch(e=>{if(!(e instanceof AbortException)){if(!this.options.ignoreErrors)throw e;warn(`handleTilingType - ignoring pattern: "${e}".`)}})}async handleSetFont(e,t,n,a,s,r,i=null,o=null,l=null){const f=t?.[0]instanceof Name?t[0].name:null,c=await this.loadFont(f,n,e,s,i,o,l);c.font.isType3Font&&a.addDependencies(c.type3Dependencies);r.font=c.font;c.send(this.handler);return c.loadedName}handleText(e,t){const n=t.font,a=n.charsToGlyphs(e);if(n.data){(!!(t.textRenderingMode&x)||"Pattern"===t.fillColorSpace.name||"Pattern"===t.strokeColorSpace.name||n.disableFontFace)&&PartialEvaluator.buildFontPaths(n,a,this.handler,this.options)}return a}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:n,cacheKey:a,task:s,stateManager:r,localGStateCache:i,localColorSpaceCache:o,seenRefs:l}){const f=t.objId;let c=!0;const h=[];let u=Promise.resolve();for(const[a,i]of t)switch(a){case"Type":break;case"LW":if("number"!=typeof i){warn(`Invalid LW (line width): ${i}`);break}h.push([a,Math.abs(i)]);break;case"LC":case"LJ":case"ML":case"D":case"RI":case"FL":case"CA":case"ca":h.push([a,i]);break;case"Font":c=!1;u=u.then(()=>this.handleSetFont(e,null,i[0],n,s,r.state,null,null,l).then(function(e){n.addDependency(e);h.push([a,[e,i[1]]])}));break;case"BM":h.push([a,normalizeBlendMode(i)]);break;case"SMask":if(isName(i,"None")){h.push([a,!1]);break}if(i instanceof Dict){c=!1;u=u.then(()=>this.handleSMask(i,e,n,s,r,o,l));h.push([a,!0])}else warn("Unsupported SMask type");break;case"TR":if(t.has("TR2"))break;case"TR2":{const e=this.handleTransferFunction(i);h.push(["TR",e]);break}case"OP":case"op":case"OPM":case"BG":case"BG2":case"UCR":case"UCR2":case"HT":case"SM":case"SA":case"AIS":case"TK":info("graphic state operator "+a);break;default:info("Unknown graphic state operator "+a)}await u;h.length>0&&n.addOp(ke,[h]);c&&i.set(a,f,h)}loadFont(e,t,n,a,s=null,r=null,i=null){const errorFont=async()=>new TranslatedFont({loadedName:"g_font_error",font:new ErrorFont(`Font "${e}" is not available.`),dict:t});let o;if(t)t instanceof Ref&&(o=t);else{const t=n.get("Font");t&&(o=t.getRaw(e))}if(o){if(this.type3FontRefs?.has(o))return errorFont();if(this.fontCache.has(o))return this.fontCache.get(o);try{t=this.xref.fetchIfRef(o)}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=s||PartialEvaluator.fallbackFontDict}if(t.cacheKey&&this.fontCache.has(t.cacheKey))return this.fontCache.get(t.cacheKey);const{promise:l,resolve:f}=Promise.withResolvers();let c;try{c=this.preEvaluateFont(t);c.cssFontInfo=r}catch(e){warn(`loadFont - preEvaluateFont failed: "${e}".`);return errorFont()}const{descriptor:h,hash:u}=c,m=o instanceof Ref;let p;if(u&&h instanceof Dict){const e=h.fontAliases||=Object.create(null);if(e[u]){const t=e[u].aliasRef;if(m&&t&&this.fontCache.has(t)){this.fontCache.putAlias(o,t);return this.fontCache.get(o)}}else e[u]={fontID:this.idFactory.createFontId()};m&&(e[u].aliasRef=o);p=e[u].fontID}else p=this.idFactory.createFontId();assert(p?.startsWith("f"),'The "fontID" must be (correctly) defined.');if(m)this.fontCache.put(o,l);else{t.cacheKey=`cacheKey_${p}`;this.fontCache.put(t.cacheKey,l)}t.loadedName=`${this.idFactory.getDocId()}_${p}`;this.translateFont(c).then(async e=>{const s=new TranslatedFont({loadedName:t.loadedName,font:e,dict:t});if(e.isType3Font)try{await s.loadType3Data(this,n,a,i)}catch(e){throw new Error(`Type3 font load error: ${e}`)}f(s)}).catch(e=>{warn(`loadFont - translateFont failed: "${e}".`);f(new TranslatedFont({loadedName:t.loadedName,font:new ErrorFont(e?.message),dict:t}))});return l}buildPath(e,t,n){const{pathMinMax:a,pathBuffer:s}=n;switch(0|e){case Te:{const e=n.currentPointX=t[0],r=n.currentPointY=t[1],i=t[2],o=t[3],l=e+i,f=r+o;0===i||0===o?s.push($t,e,r,Yt,l,f,Zt):s.push($t,e,r,Yt,l,r,Yt,l,f,Yt,e,f,Zt);Util.rectBoundingBox(e,r,l,f,a);break}case Se:{const e=n.currentPointX=t[0],r=n.currentPointY=t[1];s.push($t,e,r);Util.pointBoundingBox(e,r,a);break}case Ae:{const e=n.currentPointX=t[0],r=n.currentPointY=t[1];s.push(Yt,e,r);Util.pointBoundingBox(e,r,a);break}case xe:{const e=n.currentPointX,r=n.currentPointY,[i,o,l,f,c,h]=t;n.currentPointX=c;n.currentPointY=h;s.push(Jt,i,o,l,f,c,h);Util.bezierBoundingBox(e,r,i,o,l,f,c,h,a);break}case Ce:{const e=n.currentPointX,r=n.currentPointY,[i,o,l,f]=t;n.currentPointX=l;n.currentPointY=f;s.push(Jt,e,r,i,o,l,f);Util.bezierBoundingBox(e,r,e,r,i,o,l,f,a);break}case Ie:{const e=n.currentPointX,r=n.currentPointY,[i,o,l,f]=t;n.currentPointX=l;n.currentPointY=f;s.push(Jt,i,o,l,f,l,f);Util.bezierBoundingBox(e,r,i,o,l,f,l,f,a);break}case Fe:s.push(Zt)}}_getColorSpace(e,t,n){return ColorSpaceUtils.parse({cs:e,xref:this.xref,resources:t,pdfFunctionFactory:this._pdfFunctionFactory,globalColorSpaceCache:this.globalColorSpaceCache,localColorSpaceCache:n,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:n,localShadingPatternCache:a}){let s,r=a.get(e);if(r)return r;try{s=Pattern.parseShading(e,this.xref,t,this._pdfFunctionFactory,this.globalColorSpaceCache,n).getIR()}catch(t){if(t instanceof AbortException)return null;if(this.options.ignoreErrors){warn(`parseShading - ignoring shading: "${t}".`);a.set(e,null);return null}throw t}r=`pattern_${this.idFactory.createObjId()}`;this.parsingType3Font&&(r=`${this.idFactory.getDocId()}_type3_${r}`);a.set(e,r);if(this.parsingType3Font){const e=function compilePatternInfo(e){let t,n=null,a=[],s=[],r=[],i=null,o=null;switch(e[0]){case"RadialAxial":t="axial"===e[1]?1:2;n=e[2];r=e[3];1===t?a.push(...e[4],...e[5]):a.push(e[4][0],e[4][1],e[6],e[5][0],e[5][1],e[7]);break;case"Mesh":t=3;i=e[1];a=e[2];s=e[3];n=e[6];o=e[7];break;default:throw new Error(`Unsupported pattern type: ${e[0]}`)}const l=Math.floor(a.length/2),f=Math.floor(s.length/4),c=r.length,h=new ArrayBuffer(20+8*l+4*f+8*c+(n?16:0)+(o?3:0)),u=new DataView(h),m=new Uint8Array(h);u.setUint8(PATTERN_INFO.KIND,t);u.setUint8(PATTERN_INFO.HAS_BBOX,n?1:0);u.setUint8(PATTERN_INFO.HAS_BACKGROUND,o?1:0);u.setUint8(PATTERN_INFO.SHADING_TYPE,i);u.setUint32(PATTERN_INFO.N_COORD,l,!0);u.setUint32(PATTERN_INFO.N_COLOR,f,!0);u.setUint32(PATTERN_INFO.N_STOP,c,!0);u.setUint32(PATTERN_INFO.N_FIGURES,0,!0);let p=20;new Float32Array(h,p,2*l).set(a);p+=8*l;m.set(s,p);p+=4*f;for(const[e,t]of r){u.setFloat32(p,e,!0);p+=4;u.setUint32(p,parseInt(t.slice(1),16),!0);p+=4}if(n)for(const e of n){u.setFloat32(p,e,!0);p+=4}o&&m.set(o,p);return h}(s);this.handler.send("commonobj",[r,"Pattern",e],[e])}else this.handler.send("obj",[r,this.pageIndex,"Pattern",s]);return r}handleColorN(e,t,n,a,s,r,i,o,l,f,c){const h=n.pop();if(h instanceof Name){const u=s.getRaw(h.name),m=u instanceof Ref&&l.getByRef(u);if(m)try{const s=a.base?a.base.getRgbHex(n,0):null,r=getTilingPatternIR(m.operatorListIR,m.dict,s,m.needsIsolation);e.addOp(t,r);return}catch{}const p=this.xref.fetchIfRef(u);if(p){const s=p instanceof BaseStream?p.dict:p,h=s.get("PatternType");if(h===_i){const o=a.base?a.base.getRgbHex(n,0):null;return this.handleTilingType(t,o,r,p,s,e,i,l,c)}if(h===zi){const n=s.get("Shading"),a=this.parseShading({shading:n,resources:r,localColorSpaceCache:o,localShadingPatternCache:f});if(a){const n=lookupMatrix(s.getArray("Matrix"),null);e.addOp(t,["Shading",a,n])}return}throw new FormatError(`Unknown PatternType: ${h}`)}}throw new FormatError(`Unknown PatternName: ${h}`)}async parseMarkedContentProps(e,t){return parseMarkedContentProps(this.xref,e,t)}async getOperatorList({stream:e,task:n,resources:a,operatorList:s,initialState:r=null,fallbackFontDict:i=null,prevRefs:o=null}){if(e.isAsync){const t=await e.asyncGetBytes();t&&(e=new Stream(t,0,t.length,e.dict))}const l=e.dict?.objId,f=new RefSet(o);if(l){if(o?.has(l))throw new Error(`getOperatorList - ignoring circular reference: ${l}`);f.put(l)}a||=Dict.empty;r||=new EvalState;if(!s)throw new Error('getOperatorList: missing "operatorList" parameter');const c=this,h=this.xref,u=new LocalImageCache,m=new LocalColorSpaceCache,p=new LocalGStateCache,d=new LocalTilingPatternCache,g=new Map,b=a.get("XObject")||Dict.empty,w=a.get("Pattern")||Dict.empty,j=new StateManager(r),k=new EvaluatorPreprocessor(e,h,j),y=new TimeSlotManager;let q=0;function closePendingRestoreOPS(e){for(let e=0,t=k.savedStatesDepth;e0;q--)s.addOp(It,[])}return new Promise(function promiseBody(e,r){const next=function(t){Promise.all([t,s.ready]).then(function(){try{promiseBody(e,r)}catch(e){r(e)}},r)};n.ensureNotTerminated();y.reset();const o={};let l,v,S,x;for(;!(l=y.check());){o.args=null;if(!k.read(o))break;let e=o.args,r=o.fn;switch(0|r){case vt:x=e[0]instanceof Name;S=e[0].name;if(x){const t=u.getByName(S);if(t){addCachedImageOps(s,t);e=null;continue}}next(new Promise(function(e,t){if(!x)throw new FormatError("XObject must be referred to by name.");let r=b.getRaw(S);if(r instanceof Ref){const t=u.getByRef(r)||c._regionalImageCache.getByRef(r)||c.globalImageCache.getData(r,c.pageIndex);if(t){addCachedImageOps(s,t);e();return}r=h.fetch(r)}if(!(r instanceof BaseStream))throw new FormatError("XObject should be a stream");const i=r.dict.get("Subtype");if(!(i instanceof Name))throw new FormatError("XObject should have a Name subtype");if("Form"!==i.name)if("Image"!==i.name){if("PS"!==i.name)throw new FormatError(`Unhandled XObject subtype ${i.name}`);info("Ignored XObject subtype PS");e()}else c.buildPaintImageXObject({resources:a,image:r,operatorList:s,cacheKey:S,localImageCache:u,localColorSpaceCache:m}).then(e,t);else{j.save();c.buildFormXObject(a,r,null,s,n,j.state.clone({newPath:!0}),m,f).then(function(){j.restore();e()},t)}}).catch(function(e){if(!(e instanceof AbortException)){if(!c.options.ignoreErrors)throw e;warn(`getOperatorList - ignoring XObject: "${e}".`)}}));return;case Ve:const o=e[1];next(c.handleSetFont(a,e,null,s,n,j.state,i,null,f).then(function(e){s.addDependency(e);s.addOp(Ve,[e,o])}));return;case qt:const l=e[0].cacheKey;if(l){const t=u.getByName(l);if(t){addCachedImageOps(s,t);e=null;continue}}next(c.buildPaintImageXObject({resources:a,image:e[0],isInline:!0,operatorList:s,cacheKey:l,localImageCache:u,localColorSpaceCache:m}));return;case tt:if(!j.state.font){c.ensureStateFont(j.state);continue}e[0]=c.handleText(e[0],j.state);break;case nt:if(!j.state.font){c.ensureStateFont(j.state);continue}const k=[],y=j.state;for(const t of e[0])"string"==typeof t?k.push(...c.handleText(t,y)):"number"==typeof t&&k.push(t);e[0]=k;r=tt;break;case at:if(!j.state.font){c.ensureStateFont(j.state);continue}s.addOp(et);e[0]=c.handleText(e[0],j.state);r=tt;break;case st:if(!j.state.font){c.ensureStateFont(j.state);continue}s.addOp(et);s.addOp(Xe,[e.shift()]);s.addOp(We,[e.shift()]);e[0]=c.handleText(e[0],j.state);r=tt;break;case $e:j.state.textRenderingMode=e[0];break;case lt:{const t=c._getColorSpace(e[0],a,m);if(t instanceof ColorSpace){j.state.fillColorSpace=t;continue}next(c._handleColorSpace(t).then(e=>{j.state.fillColorSpace=e||ColorSpaceUtils.gray}));return}case ot:{const t=c._getColorSpace(e[0],a,m);if(t instanceof ColorSpace){j.state.strokeColorSpace=t;continue}next(c._handleColorSpace(t).then(e=>{j.state.strokeColorSpace=e||ColorSpaceUtils.gray}));return}case ht:if(!isNumberArray(e,null))continue;v=j.state.fillColorSpace;e=[v.getRgbHex(e,0)];r=gt;break;case ft:if(!isNumberArray(e,null))continue;v=j.state.strokeColorSpace;e=[v.getRgbHex(e,0)];r=dt;break;case pt:if(!isNumberArray(e,null))continue;j.state.fillColorSpace=ColorSpaceUtils.gray;e=[ColorSpaceUtils.gray.getRgbHex(e,0)];r=gt;break;case mt:if(!isNumberArray(e,null))continue;j.state.strokeColorSpace=ColorSpaceUtils.gray;e=[ColorSpaceUtils.gray.getRgbHex(e,0)];r=dt;break;case wt:if(!isNumberArray(e,null))continue;j.state.fillColorSpace=ColorSpaceUtils.cmyk;e=[ColorSpaceUtils.cmyk.getRgbHex(e,0)];r=gt;break;case bt:if(!isNumberArray(e,null))continue;j.state.strokeColorSpace=ColorSpaceUtils.cmyk;e=[ColorSpaceUtils.cmyk.getRgbHex(e,0)];r=dt;break;case gt:if(!isNumberArray(e,null))continue;j.state.fillColorSpace=ColorSpaceUtils.rgb;e=[ColorSpaceUtils.rgb.getRgbHex(e,0)];break;case dt:if(!isNumberArray(e,null))continue;j.state.strokeColorSpace=ColorSpaceUtils.rgb;e=[ColorSpaceUtils.rgb.getRgbHex(e,0)];break;case ut:v=j.state.patternFillColorSpace;if(!v){if(isNumberArray(e,null)){e=[ColorSpaceUtils.gray.getRgbHex(e,0)];r=gt;break}e=[];r=Gt;break}if("Pattern"===v.name){if(!Array.isArray(e))continue;next(c.handleColorN(s,ut,e,v,w,a,n,m,d,g,f));return}if(!isNumberArray(e,null))continue;e=[v.getRgbHex(e,0)];r=gt;break;case ct:v=j.state.patternStrokeColorSpace;if(!v){if(isNumberArray(e,null)){e=[ColorSpaceUtils.gray.getRgbHex(e,0)];r=dt;break}e=[];r=Kt;break}if("Pattern"===v.name){if(!Array.isArray(e))continue;next(c.handleColorN(s,ct,e,v,w,a,n,m,d,g,f));return}if(!isNumberArray(e,null))continue;e=[v.getRgbHex(e,0)];r=dt;break;case jt:let C;try{const t=a.get("Shading");if(!t)throw new FormatError("No shading resource found");C=t.get(e[0].name);if(!C)throw new FormatError("No shading object found")}catch(e){if(e instanceof AbortException)continue;if(c.options.ignoreErrors){warn(`getOperatorList - ignoring Shading: "${e}".`);continue}throw e}const F=c.parseShading({shading:C,resources:a,localColorSpaceCache:m,localShadingPatternCache:g});if(!F)continue;e=[F];r=jt;break;case ke:x=e[0]instanceof Name;S=e[0].name;if(x){const t=p.getByName(S);if(t){t.length>0&&s.addOp(ke,[t]);e=null;continue}}next(new Promise(function(e,t){if(!x)throw new FormatError("GState must be referred to by name.");const r=a.get("ExtGState");if(!(r instanceof Dict))throw new FormatError("ExtGState should be a dictionary.");const i=r.get(S);if(!(i instanceof Dict))throw new FormatError("GState should be a dictionary.");c.setGState({resources:a,gState:i,operatorList:s,cacheKey:S,task:n,stateManager:j,localGStateCache:p,localColorSpaceCache:m,seenRefs:f}).then(e,t)}).catch(function(e){if(!(e instanceof AbortException)){if(!c.options.ignoreErrors)throw e;warn(`getOperatorList - ignoring ExtGState: "${e}".`)}}));return;case me:{const[t]=e;if("number"!=typeof t){warn(`Invalid setLineWidth: ${t}`);continue}e[0]=Math.abs(t);break}case be:{const t=e[1];if("number"!=typeof t){warn(`Invalid setDash: ${t}`);continue}const n=e[0];if(!Array.isArray(n)){warn(`Invalid setDash: ${n}`);continue}n.some(e=>"number"!=typeof e)&&(e[0]=n.filter(e=>"number"==typeof e));break}case Se:case Ae:case xe:case Ce:case Ie:case Fe:case Te:c.buildPath(r,e,j.state);continue;case Re:case Oe:case He:case Be:case De:case Me:case Ne:case Pe:case Ee:{const{state:{pathBuffer:e,pathMinMax:n}}=j;r!==Oe&&r!==Ne&&r!==Pe||e.push(Zt);if(0===e.length)s.addOp(Xt,[r,[null],null]);else{s.addOp(Xt,[r,[new Float32Array(e)],n.slice()]);e.length=0;n.set(t,0)}continue}case Ze:s.addOp(r,[new Float32Array(e)]);continue;case St:case At:case Ft:case Tt:continue;case Ct:q++;if(!(e[0]instanceof Name)){warn(`Expected name for beginMarkedContentProps arg0=${e[0]}`);s.addOp(Ct,["OC",null]);continue}if("OC"===e[0].name){next(c.parseMarkedContentProps(e[1],a).then(e=>{s.addOp(Ct,["OC",e])}).catch(e=>{if(!(e instanceof AbortException)){if(!c.options.ignoreErrors)throw e;warn(`getOperatorList - ignoring beginMarkedContentProps: "${e}".`);s.addOp(Ct,["OC",null])}}));return}e=[e[0].name,e[1]instanceof Dict?e[1].get("MCID"):null];break;case xt:if(e?.some(e=>e instanceof Dict)){warn(`getOperatorList - ignoring operator: ${r}`);continue}q++;break;case It:if(e?.some(e=>e instanceof Dict)){warn(`getOperatorList - ignoring operator: ${r}`);continue}if(0===q)continue;q--;break;default:if(e?.some(e=>e instanceof Dict)){warn(`getOperatorList - ignoring operator: ${r}`);continue}}s.addOp(r,e)}if(l)next(Wi);else{closePendingMarkedContentOPS();closePendingRestoreOPS();e()}}).catch(e=>{if(!(e instanceof AbortException)){if(!this.options.ignoreErrors)throw e;warn(`getOperatorList - ignoring errors during "${n.name}" task: "${e}".`);closePendingMarkedContentOPS();closePendingRestoreOPS()}})}async getTextContent({stream:e,task:t,resources:n,stateManager:s=null,includeMarkedContent:r=!1,sink:i,seenStyles:o=new Set,viewBox:l,lang:f=null,disableNormalization:c=!1,keepWhiteSpace:h=!1,prevRefs:u=null,intersector:m=null}){if(e.isAsync){const t=await e.asyncGetBytes();t&&(e=new Stream(t,0,t.length,e.dict))}i??=textSinkWrapper(null);const p=e.dict?.objId,d=new RefSet(u);if(p){if(u?.has(p))throw new Error(`getTextContent - ignoring circular reference: ${p}`);d.put(p)}n||=Dict.empty;s||=new StateManager(new TextState);let g=0,b=null;const w={items:[],styles:Object.create(null),lang:f},j={initialized:!1,str:[],totalWidth:0,totalHeight:0,width:0,height:0,vertical:!1,prevTransform:null,prevTextRise:0,textAdvanceScale:0,spaceInFlowMin:0,spaceInFlowMax:0,trackingSpaceMin:1/0,negativeSpaceMax:-1/0,notASpace:-1/0,transform:null,fontName:null,hasEOL:!1},k=[" "," "];let y=0;function saveLastChar(e){const t=(y+1)%2,n=" "!==k[y]&&" "===k[t];k[y]=e;y=t;return!h&&n}function shouldAddWhitepsace(){return!h&&" "!==k[y]&&" "===k[(y+1)%2]}function resetLastChars(){k[0]=k[1]=" ";y=0}const q=this,v=this.xref,S=[];let x=null;const C=new LocalImageCache,F=new LocalGStateCache,T=new EvaluatorPreprocessor(e,v,s);let R,O;function pushWhitespace({width:e=0,height:t=0,transform:n=j.prevTransform,fontName:a=j.fontName}){m?.addExtraChar(" ");w.items.push({str:" ",dir:"ltr",width:e,height:t,transform:n,fontName:a,hasEOL:!1})}function getCurrentTextTransform(){const e=R.font,t=[R.fontSize*R.textHScale,0,0,R.fontSize,0,R.textRise];if(e.isType3Font&&(R.fontSize<=1||e.isCharBBox)&&!isArrayEqual(R.fontMatrix,a)){const n=e.bbox[3]-e.bbox[1];n>0&&(t[3]*=n*R.fontMatrix[3])}return Util.transform(R.ctm,Util.transform(R.textMatrix,t))}function ensureTextContentItem(){if(j.initialized)return j;const{font:e,loadedName:t}=R;if(!o.has(t)){o.add(t);w.styles[t]={fontFamily:e.fallbackName,ascent:e.ascent,descent:e.descent,vertical:e.vertical};if(q.options.fontExtraProperties&&e.systemFontInfo){const n=w.styles[t];n.fontSubstitution=e.systemFontInfo.css;n.fontSubstitutionLoadedName=e.systemFontInfo.loadedName}}j.fontName=t;const n=j.transform=getCurrentTextTransform();if(e.vertical){j.width=j.totalWidth=Math.hypot(n[0],n[1]);j.height=j.totalHeight=0;j.vertical=!0}else{j.width=j.totalWidth=0;j.height=j.totalHeight=Math.hypot(n[2],n[3]);j.vertical=!1}const a=Math.hypot(R.textLineMatrix[0],R.textLineMatrix[1]),s=Math.hypot(R.ctm[0],R.ctm[1]);j.textAdvanceScale=s*a;const{fontSize:r}=R;j.trackingSpaceMin=.102*r;j.notASpace=.03*r;j.negativeSpaceMax=-.2*r;j.spaceInFlowMin=.102*r;j.spaceInFlowMax=.6*r;j.hasEOL=!1;j.initialized=!0;return j}function updateAdvanceScale(){if(!j.initialized)return;const e=Math.hypot(R.textLineMatrix[0],R.textLineMatrix[1]),t=Math.hypot(R.ctm[0],R.ctm[1])*e;if(t!==j.textAdvanceScale){if(j.vertical){j.totalHeight+=j.height*j.textAdvanceScale;j.height=0}else{j.totalWidth+=j.width*j.textAdvanceScale;j.width=0}j.textAdvanceScale=t}}function runBidiTransform(e){let t=e.str.join("");c||(t=function normalizeUnicode(e){if(!sn){sn=/([\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;rn=new Map([["ſt","ſt"]])}return e.replaceAll(sn,(e,t,n)=>t?t.normalize("NFKC"):rn.get(n))}(t));const n=bidi(t,-1,e.vertical);return{str:n.str,dir:n.dir,width:Math.abs(e.totalWidth),height:Math.abs(e.totalHeight),transform:e.transform,fontName:e.fontName,hasEOL:e.hasEOL}}async function handleSetFont(e,s){const r=await q.loadFont(e,s,n,t,null,null,d);R.loadedName=r.loadedName;R.font=r.font;R.fontMatrix=r.font.fontMatrix||a}function applyInverseRotation(e,t,n){const a=Math.hypot(n[0],n[1]);return[(n[0]*e+n[1]*t)/a,(n[2]*e+n[3]*t)/a]}function compareWithLastPosition(e){const t=getCurrentTextTransform();let n=t[4],a=t[5];if(R.font?.vertical){if(nl[2]||a+el[3])return!1}else if(n+el[2]||al[3])return!1;if(!R.font||!j.prevTransform)return!0;let s=j.prevTransform[4],r=j.prevTransform[5];if(s===n&&r===a)return!0;let i=-1;t[0]&&0===t[1]&&0===t[2]?i=t[0]>0?0:180:t[1]&&0===t[0]&&0===t[3]&&(i=t[1]>0?90:270);switch(i){case 0:break;case 90:[n,a]=[a,n];[s,r]=[r,s];break;case 180:[n,a,s,r]=[-n,-a,-s,-r];break;case 270:[n,a]=[-a,-n];[s,r]=[-r,-s];break;default:[n,a]=applyInverseRotation(n,a,t);[s,r]=applyInverseRotation(s,r,j.prevTransform)}if(R.font.vertical){const e=(r-a)/j.textAdvanceScale,t=n-s,i=Math.sign(j.height||j.totalHeight);if(e.5*j.width){appendEOL();return!0}resetLastChars();flushTextContentItem();return!0}if(Math.abs(t)>j.width){appendEOL();return!0}e<=i*j.notASpace&&resetLastChars();if(e<=i*j.trackingSpaceMin)if(shouldAddWhitepsace()){resetLastChars();flushTextContentItem();pushWhitespace({height:Math.abs(e)})}else j.height+=e;else if(!addFakeSpaces(e,j.prevTransform,i))if(0===j.str.length){resetLastChars();pushWhitespace({height:Math.abs(e)})}else j.height+=e;Math.abs(t)>.25*j.width&&flushTextContentItem();return!0}const o=(n-s)/j.textAdvanceScale,f=a-r,c=Math.sign(j.width||j.totalWidth);if(o.5*j.height){appendEOL();return!0}resetLastChars();flushTextContentItem();return!0}const h=R.textRise-j.prevTextRise,u=0===h?f:f-t[3]/R.fontSize*h;if(Math.abs(u)>j.height){appendEOL();return!0}o<=c*j.notASpace&&resetLastChars();if(o<=c*j.trackingSpaceMin)if(shouldAddWhitepsace()){resetLastChars();flushTextContentItem();pushWhitespace({width:Math.abs(o)})}else j.width+=o;else if(!addFakeSpaces(o,j.prevTransform,c))if(0===j.str.length){resetLastChars();pushWhitespace({width:Math.abs(o)})}else j.width+=o;Math.abs(f)>.25*j.height&&flushTextContentItem();return!0}function buildTextContentItem({chars:e,extraSpacing:t}){if(O!==R&&(O.fontSize!==R.fontSize||O.fontName!==R.fontName&&(O.font.name!==R.font.name||O.font.vertical!==R.font.vertical))){flushTextContentItem();O=R.clone()}const n=R.font,a=n.vertical?-R.charSpacing:R.charSpacing;if(!e){const e=a+t;e&&(n.vertical?R.translateTextMatrix(0,-e):R.translateTextMatrix(e*R.textHScale,0));h&&compareWithLastPosition(0);return}const s=n.charsToGlyphs(e),r=R.fontMatrix[0]*R.fontSize;for(let e=0,i=s.length;ee;g--)w.items.push({type:"endMarkedContent"})}}function enqueueChunk(e=!1){const t=w.items.length;if(0!==t&&!(e&&t<10)){i.enqueue(w,t);w.items=[];w.styles=Object.create(null)}}const H=new TimeSlotManager;return new Promise(function promiseBody(e,a){const next=function(t){enqueueChunk(!0);Promise.all([t,i.ready]).then(function(){try{promiseBody(e,a)}catch(e){a(e)}},a)};t.ensureNotTerminated();H.reset();const u={};let m,p,j,k=[];for(;!(m=H.check());){k.length=0;u.args=k;if(!T.read(u))break;R=s.state;O||=R.clone();const e=u.fn;k=u.args;switch(0|e){case Ve:const e=k[0].name,a=k[1];if(R.font&&e===R.fontName&&a===R.fontSize)break;R.fontName=e;R.fontSize=a;next(handleSetFont(e,null));return;case Ye:R.textRise=k[0];break;case Ke:R.textHScale=k[0]/100;break;case Ge:R.leading=k[0];break;case Je:R.translateTextLineMatrix(k[0],k[1]);R.textMatrix=R.textLineMatrix.slice();break;case Qe:R.leading=-k[1];R.translateTextLineMatrix(k[0],k[1]);R.textMatrix=R.textLineMatrix.slice();break;case et:R.carriageReturn();break;case Ze:R.setTextMatrix(k[0],k[1],k[2],k[3],k[4],k[5]);R.setTextLineMatrix(k[0],k[1],k[2],k[3],k[4],k[5]);updateAdvanceScale();break;case We:R.charSpacing=k[0];break;case Xe:R.wordSpacing=k[0];break;case Le:R.textMatrix=bn.slice();R.textLineMatrix=bn.slice();b=g;break;case Ue:if(null!==b){closePendingMarkedContentItems(b);b=null}break;case nt:if(!s.state.font){q.ensureStateFont(s.state);continue}const u=(R.font.vertical?1:-1)*R.fontSize/1e3;for(const e of k[0])if("string"==typeof e)S.push(e);else if("number"==typeof e&&0!==e){const t=S.join("");S.length=0;buildTextContentItem({chars:t,extraSpacing:e*u})}if(S.length>0){const e=S.join("");S.length=0;buildTextContentItem({chars:e,extraSpacing:0})}break;case tt:if(!s.state.font){q.ensureStateFont(s.state);continue}buildTextContentItem({chars:k[0],extraSpacing:0});break;case at:if(!s.state.font){q.ensureStateFont(s.state);continue}R.carriageReturn();buildTextContentItem({chars:k[0],extraSpacing:0});break;case st:if(!s.state.font){q.ensureStateFont(s.state);continue}R.wordSpacing=k[0];R.charSpacing=k[1];R.carriageReturn();buildTextContentItem({chars:k[2],extraSpacing:0});break;case vt:flushTextContentItem();x??=n.get("XObject")||Dict.empty;j=k[0]instanceof Name;p=k[0].name;if(j&&C.getByName(p))break;next(new Promise(function(e,a){if(!j)throw new FormatError("XObject must be referred to by name.");let u=x.getRaw(p);if(u instanceof Ref){if(C.getByRef(u)){e();return}if(q.globalImageCache.getData(u,q.pageIndex)){e();return}u=v.fetch(u)}if(!(u instanceof BaseStream))throw new FormatError("XObject should be a stream");const{dict:m}=u,g=m.get("Subtype");if(!(g instanceof Name))throw new FormatError("XObject should have a Name subtype");if("Form"!==g.name){C.set(p,m.objId,!0);e();return}const b=s.state.clone(),w=new StateManager(b),k=lookupMatrix(m.getArray("Matrix"),null);k&&w.transform(k);const y=m.get("Resources");enqueueChunk();const S=textSinkWrapper(i);q.getTextContent({stream:u,task:t,resources:y instanceof Dict?y:n,stateManager:w,includeMarkedContent:r,sink:S,seenStyles:o,viewBox:l,lang:f,disableNormalization:c,keepWhiteSpace:h,prevRefs:d}).then(function(){S.enqueueInvoked||C.set(p,m.objId,!0);e()},a)}).catch(function(e){if(!(e instanceof AbortException)){if(!q.options.ignoreErrors)throw e;warn(`getTextContent - ignoring XObject: "${e}".`)}}));return;case ke:j=k[0]instanceof Name;p=k[0].name;if(j&&F.getByName(p))break;next(new Promise(function(e,t){if(!j)throw new FormatError("GState must be referred to by name.");const a=n.get("ExtGState");if(!(a instanceof Dict))throw new FormatError("ExtGState should be a dictionary.");const s=a.get(p);if(!(s instanceof Dict))throw new FormatError("GState should be a dictionary.");const r=s.get("Font");if(r){flushTextContentItem();R.fontName=null;R.fontSize=r[1];handleSetFont(null,r[0]).then(e,t)}else{F.set(p,s.objId,!0);e()}}).catch(function(e){if(!(e instanceof AbortException)){if(!q.options.ignoreErrors)throw e;warn(`getTextContent - ignoring ExtGState: "${e}".`)}}));return;case xt:flushTextContentItem();if(r){g++;w.items.push({type:"beginMarkedContent",tag:k[0]instanceof Name?k[0].name:null})}break;case Ct:flushTextContentItem();if(r){g++;const e=k[1]instanceof Dict?k[1].get("MCID"):null;w.items.push({type:"beginMarkedContentProps",id:Number.isInteger(e)?`${q.idFactory.getPageObjId()}_mc${e}`:null,tag:k[0]instanceof Name?k[0].name:null})}break;case It:flushTextContentItem();if(r){if(0===g)break;g--;w.items.push({type:"endMarkedContent"})}}if(w.items.length>=i.desiredSize){m=!0;break}}if(m)next(Wi);else{flushTextContentItem();closePendingMarkedContentItems();enqueueChunk();e()}}).catch(e=>{if(!(e instanceof AbortException)){if(!this.options.ignoreErrors)throw e;warn(`getTextContent - ignoring errors during "${t.name}" task: "${e}".`);flushTextContentItem();closePendingMarkedContentItems();enqueueChunk()}})}async extractDataStructures(e,t){const n=this.xref;let a;const s=this.readToUnicode(t.toUnicode);if(t.composite){const n=e.get("CIDSystemInfo");n instanceof Dict&&!t.cidSystemInfo&&(t.cidSystemInfo={registry:stringToPDFString(n.get("Registry")),ordering:stringToPDFString(n.get("Ordering")),supplement:n.get("Supplement")});try{const t=e.get("CIDToGIDMap");t instanceof BaseStream&&(a=t.getBytes())}catch(e){if(!this.options.ignoreErrors)throw e;warn(`extractDataStructures - ignoring CIDToGIDMap data: "${e}".`)}}const r=[];let i,o=null;if(e.has("Encoding")){i=e.get("Encoding");if(i instanceof Dict){o=i.get("BaseEncoding");o=o instanceof Name?o.name:null;if(i.has("Differences")){const e=i.get("Differences");let t=0;for(const a of e){const e=n.fetchIfRef(a);if("number"==typeof e)t=e;else{if(!(e instanceof Name))throw new FormatError(`Invalid entry in 'Differences' array: ${e}`);r[t++]=e.name}}}}else if(i instanceof Name)o=i.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 l=!t.file||t.isInternalFont,f=Xa()[t.name];o&&l&&f&&(o=null);if("WinAnsiEncoding"===o&&l&&t.name?.charCodeAt(0)>=183){const e=t.name;if(["ËÎÌå","ºÚÌå","¿¬Ìå","·ÂËÎ","¿¬Ìå_GB2312","·ÂËÎ_GB2312","Á¥Êé","ÐÂËÎ","·ÂËÎÌå","С±êËÎ"].includes(e)){o=null;t.defaultEncoding="Adobe-GB1-UCS2";t.composite=!0;t.cidEncoding=Name.get("GBK-EUC-H");const e=await CMapFactory.create({encoding:t.cidEncoding,fetchBuiltInCMap:this._fetchBuiltInCMapBound,useCMap:null});t.cMap=e;t.vertical=t.cMap.vertical;t.cidSystemInfo={registry:"Adobe",ordering:"GB1",supplement:0}}}if(o)t.defaultEncoding=getEncoding(o);else{let e=!!(t.flags&xa);const n=!!(t.flags&Ca);if("TrueType"===t.type&&e&&n&&0!==r.length){t.flags&=~xa;e=!1}i=pa;"TrueType"!==t.type||n||(i=da);if(e||f){i=ma;l&&(/Symbol/i.test(t.name)?i=ga:/Dingbats/i.test(t.name)?i=ba:/Wingdings/i.test(t.name)&&(i=da))}t.defaultEncoding=i}t.differences=r;t.baseEncodingName=o;t.hasEncoding=!!o||r.length>0;t.dict=e;t.toUnicode=await s;const c=await this.buildToUnicode(t);t.toUnicode=c;a&&(t.cidToGidMap=this.readCidToGidMap(a,c));return t}_simpleFontToUnicode(e,t=!1){assert(!e.composite,"Must be a simple font.");const n=[],a=e.defaultEncoding.slice(),s=e.baseEncodingName,r=e.differences;for(const e in r){const t=r[e];".notdef"!==t&&(a[e]=t)}const i=wa();for(const r in a){let o=a[r];if(""===o)continue;let l=i[o];if(void 0!==l){n[r]=String.fromCharCode(l);continue}let f=0;switch(o[0]){case"G":3===o.length&&(f=parseInt(o.substring(1),16));break;case"g":5===o.length&&(f=parseInt(o.substring(1),16));break;case"C":case"c":if(o.length>=3&&o.length<=4){const n=o.substring(1);if(t){f=parseInt(n,16);break}f=+n;if(Number.isNaN(f)&&Number.isInteger(parseInt(n,16)))return this._simpleFontToUnicode(e,!0)}break;case"u":l=getUnicodeForGlyph(o,i);-1!==l&&(f=l);break;default:switch(o){case"f_h":case"f_t":case"T_h":n[r]=o.replaceAll("_","");continue}}if(f>0&&f<=1114111&&Number.isInteger(f)){if(s&&f===+r){const e=getEncoding(s);if(e&&(o=e[r])){n[r]=String.fromCharCode(i[o]);continue}}n[r]=String.fromCodePoint(f)}}return n}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:n}=e.cidSystemInfo,a=Name.get(`${t}-${n}-UCS2`),s=await CMapFactory.create({encoding:a,fetchBuiltInCMap:this._fetchBuiltInCMapBound,useCMap:null}),r=[],i=[];e.cMap.forEach(function(e,t){if(t>65535)throw new FormatError("Max size of CID is 65,535");const n=s.lookup(t);if(n){i.length=0;for(let e=0,t=n.length;e>1;(0!==s||t.has(r))&&(n[r]=s)}return n}extractWidths(e,t,n){const a=this.xref;let s=[],r=0;const i=[];let o;if(n.composite){const t=e.get("DW");r="number"==typeof t?Math.ceil(t):1e3;const l=e.get("W");if(Array.isArray(l))for(let e=0,t=l.length;e=10){this._bbox??=t.slice();Util.rectBoundingBox(...a,this._bbox)}let o=0,l=e.length;for(;o=Se&&r<=Ee;if(s.variableArgs)o>i&&info(`Command ${a}: expected [0, ${i}] args, but received ${o} args.`);else{if(o!==i){const e=this.nonProcessedArgs;for(;o>i;){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(r,t);e.fn=r;e.args=t;return!0}if(n===ln)return!1;if(null!==n){null===t&&(t=[]);t.push(n);if(t.length>33)throw new FormatError("Too many arguments")}}}preprocessCommand(e,t){switch(0|e){case ye:this.stateManager.save();break;case qe:this.stateManager.restore();break;case ve: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:n,args:a}=e;switch(0|n){case Ve:const[e,n]=a;e instanceof Name&&(t.fontName=e.name);"number"==typeof n&&n>0&&(t.fontSize=n);break;case gt:ColorSpaceUtils.rgb.getRgbItem(a,0,t.fontColor,0);break;case pt:ColorSpaceUtils.gray.getRgbItem(a,0,t.fontColor,0);break;case wt:ColorSpaceUtils.cmyk.getRgbItem(a,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,n){super(e);this.stream=e;this.xref=t;this.globalColorSpaceCache=n;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},n=!1;const a=[];try{for(;;){e.args.length=0;if(n||!this.read(e))break;const{fn:s,args:r}=e;switch(0|s){case ye:a.push({scaleFactor:t.scaleFactor,fontSize:t.fontSize,fontName:t.fontName,fontColor:t.fontColor.slice(),fillColorSpace:t.fillColorSpace});break;case qe:t=a.pop()||t;break;case Ze:const e=Util.transform(this.stateManager.state.ctm,r);t.scaleFactor*=Math.hypot(e[0],e[1]);break;case Ve:const[s,i]=r;s instanceof Name&&(t.fontName=s.name);"number"==typeof i&&i>0&&(t.fontSize=i);break;case lt:t.fillColorSpace=ColorSpaceUtils.parse({cs:r[0],xref:this.xref,resources:this.resources,pdfFunctionFactory:this._pdfFunctionFactory,globalColorSpaceCache:this.globalColorSpaceCache,localColorSpaceCache:this._localColorSpaceCache});break;case ht:t.fillColorSpace.getRgbItem(r,0,t.fontColor,0);break;case gt:ColorSpaceUtils.rgb.getRgbItem(r,0,t.fontColor,0);break;case pt:ColorSpaceUtils.gray.getRgbItem(r,0,t.fontColor,0);break;case wt:ColorSpaceUtils.cmyk.getRgbItem(r,0,t.fontColor,0);break;case tt:case nt:case at:case st:t.fontSize*=t.scaleFactor;n=!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}))}}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{static#st=1;constructor(e,t){this.xref=e;this.widths=null;this.firstChar=1/0;this.lastChar=-1/0;this.fontFamily=t;const n=new OffscreenCanvas(1,1);this.ctxMeasure=n.getContext("2d",{willReadFrequently:!0});this.fontName=Name.get(`InvalidPDFjsFont_${t}_${FakeUnicodeFont.#st++}`)}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=[],n=[...this.widths].sort();let a=null,s=null;for(const[e,r]of n)if(a)if(e===a+s.length)s.push(r);else{t.push(a,s);a=e;s=[r]}else{a=e;s=[r]}a&&t.push(a,s);e.set("W",t);const r=new Dict(this.xref);r.set("Ordering","Identity");r.set("Registry","Adobe");r.set("Supplement",0);e.set("CIDSystemInfo",r);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 n of e.split(/\r\n?|\n/))for(const e of n.split("")){const n=e.charCodeAt(0);if(this.widths.has(n))continue;const a=t.measureText(e),s=Math.ceil(a.width);this.widths.set(n,s);this.firstChar=Math.min(n,this.firstChar);this.lastChar=Math.max(n,this.lastChar)}return this.resources}static getFirstPositionInfo(e,t,n){const[a,s,r,i]=e;let o=r-a,l=i-s;t%180!=0&&([o,l]=[l,o]);const f=1.35*n;return{coords:[0,l+.35*n-f],bbox:[0,0,o,l],matrix:0!==t?getRotationMatrix(t,l,f):void 0}}createAppearance(e,t,n,a,s,r){const i=this._createContext(),o=[];let l=-1/0;for(const t of e.split(/\r\n?|\n/)){o.push(t);const e=i.measureText(t).width;l=Math.max(l,e);for(const e of codePointIter(t)){const t=String.fromCodePoint(e);let n=this.widths.get(e);if(void 0===n){const a=i.measureText(t);n=Math.ceil(a.width);this.widths.set(e,n);this.firstChar=Math.min(e,this.firstChar);this.lastChar=Math.max(e,this.lastChar)}}}l*=a/1e3;const[f,c,h,u]=t;let m=h-f,p=u-c;n%180!=0&&([m,p]=[p,m]);const d=l>m?m/l:1;let g=1;const b=1.35*a,w=.35*a,j=b*o.length;j>p&&(g=p/j);const k=a*Math.min(d,g),y=["q",`0 0 ${numberToString(m)} ${numberToString(p)} re W n`,"BT",`1 0 0 1 0 ${numberToString(p+w)} Tm 0 Tc ${getPdfColor(s,!0)}`,`/${this.fontName.name} ${numberToString(k)} Tf`],{resources:q}=this;if(1!==(r="number"==typeof r&&r>=0&&r<=1?r:1)){y.push("/R0 gs");const e=new Dict(this.xref),t=new Dict(this.xref);t.set("ca",r);t.set("CA",r);t.setIfName("Type","ExtGState");e.set("R0",t);q.set("ExtGState",e)}const v=numberToString(b);for(const e of o)y.push(`0 -${v} Td <${stringToUTF16HexString(e)}> Tj`);y.push("ET","Q");const S=y.join("\n"),x=new Dict(this.xref);x.setIfName("Subtype","Form");x.setIfName("Type","XObject");x.set("BBox",[0,0,m,p]);x.set("Length",S.length);x.set("Resources",q);if(n){const e=getRotationMatrix(n,m,p);x.set("Matrix",e)}return new StringStream(S,x)}}const Xi=["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"],Ki=["HH:MM","h:MM tt","HH:MM:ss","h:MM:ss tt"];class NameOrNumberTree{constructor(e,t,n){this.root=e;this.xref=t;this._type=n}getAll(e=!1){const t=new Map;if(!this.root)return t;const n=this.xref,a=new RefSet;this.root instanceof Ref&&a.put(this.root);const s=[this.root];for(const r of s){const i=n.fetchIfRef(r);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(t instanceof Ref){if(a.has(t))throw new FormatError(`Duplicate entry in "${this._type}" tree.`);a.put(t)}s.push(t)}continue}const o=i.get(this._type);if(Array.isArray(o))for(let a=0,s=o.length;a10){warn(`Search depth limit reached for "${this._type}" tree.`);return null}const s=n.get("Kids");if(!Array.isArray(s))return null;let r=0,i=s.length-1;for(;r<=i;){const a=r+i>>1,o=t.fetchIfRef(s[a]),l=o.get("Limits");if(et.fetchIfRef(l[1]))){n=o;break}r=a+1}}if(r>i)return null}const s=n.get(this._type);if(Array.isArray(s)){let n=0,a=s.length-2;for(;n<=a;){const r=n+a>>1,i=r+(1&r),o=t.fetchIfRef(s[i]);if(eo))return s[i+1];n=i+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(){Qn?.clear()}();!function clearPrimitiveCaches(){fn=Object.create(null);cn=Object.create(null);hn=Object.create(null)}();!function clearUnicodeCaches(){va.clear()}();WasmImage.cleanup()}class FileSpec{constructor(e){if(e instanceof Dict){this.root=e;e.has("RF")&&warn("Related file specifications are not supported")}}get filename(){const e=FileSpec.pickPlatformItem(this.root);return e&&"string"==typeof e?stringToPDFString(e,!0).replaceAll("\\\\","\\").replaceAll("\\/","/").replaceAll("\\","/"):""}get description(){const e=this.root?.get("Desc");return e&&"string"==typeof e?stringToPDFString(e):""}get serializable(){const{filename:e,description:t}=this;return{rawFilename:e,filename:(n=e,n.substring(n.lastIndexOf("/")+1))||"unnamed",description:t};var n}static pickPlatformItem(e,t=!1){if(e instanceof Dict)for(const n of["UF","F","Unix","Mac","DOS"])if(e.has(n))return t?e.getRaw(n):e.get(n);return null}static hasEmbeddedFile(e){return this.pickPlatformItem(e.get("EF"))instanceof BaseStream}static readContent(e){if(!(e instanceof Dict))return null;const t=this.pickPlatformItem(e.get("EF"));if(!(t instanceof BaseStream)){warn("Embedded file specification points to non-existing/invalid content");return null}return this.readStreamContent(t)}static readStreamContent(e){const t=e.dict?.xref?.encrypt;if(null===t?.encryptionKey)throw new PasswordException("No password given",en);return e.getBytes()}}const Gi=0,Vi=-2,$i=-3,Yi=-4,Ji=-5,Qi=-6,Zi=-9;function isWhitespace(e,t){const n=e[t];return" "===n||"\n"===n||"\r"===n||"\t"===n}class XMLParserBase{static get _entityRegex(){return shadow(this,"_entityRegex",/&(?:#x([^;&]+)|#([^;&]+)|([^;&]+));/g)}_resolveEntities(e){return e.replaceAll(XMLParserBase._entityRegex,(e,t,n,a)=>{if(t||n){const a=t?parseInt(t,16):parseInt(n,10);return a>=0&&a<=1114111?String.fromCodePoint(a):e}switch(a){case"lt":return"<";case"gt":return">";case"amp":return"&";case"quot":return'"';case"apos":return"'"}return this.onResolveEntity(a)})}_parseContent(e,t){const n=[];let a=t;function skipWs(){for(;a"!==e[a]&&"/"!==e[a];)++a;const s=e.substring(t,a);skipWs();for(;a"!==e[a]&&"/"!==e[a]&&"?"!==e[a];){skipWs();let t="",s="";for(;a"!==e[n]&&"?"!==e[n]&&"/"!==e[n];)++n;const a=e.substring(t,n);!function skipWs(){for(;n"!==e[n+1]);)++n;return{name:a,value:e.substring(s,n),parsed:n-t}}parseXml(e){let t=0;for(;t",n);if(t<0){this.onError(Zi);return}this.onEndElement(e.substring(n,t));n=t+1;break;case"?":++n;const a=this._parseProcessingInstruction(e,n);if("?>"!==e.substring(n+a.parsed,n+a.parsed+2)){this.onError($i);return}this.onPi(a.name,a.value);n+=a.parsed+2;break;case"!":if("--"===e.substring(n+1,n+3)){t=e.indexOf("--\x3e",n+3);if(t<0){this.onError(Ji);return}this.onComment(e.substring(n+3,t));n=t+3}else if("[CDATA["===e.substring(n+1,n+8)){t=e.indexOf("]]>",n+8);if(t<0){this.onError(Vi);return}this.onCdata(e.substring(n+8,t));n=t+3}else{if("DOCTYPE"!==e.substring(n+1,n+8)){this.onError(Qi);return}{const a=e.indexOf("[",n+8);let s=!1;t=e.indexOf(">",n+8);if(t<0){this.onError(Yi);return}if(a>0&&t>a){t=e.indexOf("]>",n+8);if(t<0){this.onError(Yi);return}s=!0}const r=e.substring(n+8,t+(s?1:0));this.onDoctype(r);n=t+(s?2:1)}}break;default:const s=this._parseContent(e,n);if(null===s){this.onError(Qi);return}let r=!1;if("/>"===e.substring(n+s.parsed,n+s.parsed+2))r=!0;else if(">"!==e.substring(n+s.parsed,n+s.parsed+1)){this.onError(Zi);return}this.onBeginElement(s.name,s.attributes,r);n+=s.parsed+(r?2:1)}}else{for(;ne.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 n=e[t];if(n.name.startsWith("#")&&t0){a.push([s,0]);s=s.childNodes[0]}else{if(0===a.length)return null;for(;0!==a.length;){const[e,t]=a.pop(),n=t+1;if(n");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=Gi;this._hasAttributes=e;this._lowerCaseName=t}parseFromString(e){this._currentFragment=[];this._stack=[];this._errorCode=Gi;this.parseXml(e);if(this._errorCode!==Gi)return;const[t]=this._currentFragment;return t?{documentElement:t}:void 0}onText(e){if(function isWhitespaceString(e){for(let t=0,n=e.length;t\\376\\377([^<]+)/g,function(e,t){const n=t.replaceAll(/\\([0-3])([0-7])([0-7])/g,function(e,t,n,a){return String.fromCharCode(64*t+8*n+1*a)}).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.`)}),a=[">"];for(let e=0,t=n.length;e=32&&t<127&&60!==t&&62!==t&&38!==t?a.push(String.fromCharCode(t)):a.push("&#x"+(65536+t).toString(16).substring(1)+";")}return a.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,n=this._getSequence(t)||[];this._metadataMap.set(e.nodeName,n.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}}}function getSoundFormat(e){if(!e||e.has("CO"))return null;const t=e.get("R");if(!Number.isInteger(t)||t<=0)return null;const n=e.get("C")??1;if(!Number.isInteger(n)||n<1||n>2)return null;const a=e.get("B")??8;if(8!==a&&16!==a)return null;const s=e.get("E");let r="Raw";void 0!==s&&(r=s instanceof Name?s.name:null);return"Raw"!==r&&"Signed"!==r?null:{channels:n,sampleRate:t,bitsPerSample:a,encoding:r}}const eo=[["RowSpan","rowSpan"],["ColSpan","colSpan"]],to=1,no=2,ao=3,so=4,ro=5;class StructTreeRoot{kidRefToPosition=void 0;parentTree=null;roleMap=new Map;structParentIds=null;constructor(e,t,n){this.xref=e;this.dict=t;this.ref=n instanceof Ref?n:null;const a=t.get("RoleMap");if(a instanceof Dict)for(const[e,t]of a)t instanceof Name&&this.roleMap.set(e,t.name);const s=t.getRaw("ParentTree");s&&(this.parentTree=new NumberTree(s,e))}getKidPosition(e){if(void 0===this.kidRefToPosition){const e=this.dict.get("K");if(Array.isArray(e)){const t=this.kidRefToPosition=new Map;for(let n=0,a=e.length;n=0||(e.parentTreeId=n++);i=!1}}if(i){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:n}){const{ref:a,xref:s}=this,r=this.dict.clone(),i=new RefMap;i.put(a,r);let o,l=r.getRaw("ParentTree");if(l instanceof Ref)o=s.fetch(l);else{o=l;l=s.getNewTemporaryRef();r.set("ParentTree",l)}o=o.clone();i.put(l,o);let f=o.getRaw("Nums"),c=null;if(f instanceof Ref){c=f;f=s.fetch(c)}f=f.slice();c||o.set("Nums",f);const h=await StructTreeRoot.#it({newAnnotationsByPage:e,structTreeRootRef:a,structTreeRoot:this,kids:null,nums:f,xref:s,pdfManager:t,changes:n,cache:i});if(-1!==h){r.set("ParentTreeNextKey",h);c&&i.put(c,f);for(const[e,t]of i.items())n.put(e,{data:t})}}static async#it({newAnnotationsByPage:e,structTreeRootRef:t,structTreeRoot:n,kids:a,nums:s,xref:r,pdfManager:i,changes:o,cache:l}){const f=Name.get("OBJR");let c,h=-1;for(const[u,m]of e){const e=await i.getPage(u),{ref:p}=e,d=p instanceof Ref;for(const{accessibilityData:i,ref:g,parentTreeId:b,structTreeParent:w}of m){if(!i?.type)continue;const{structParent:m}=i;if(n&&Number.isInteger(m)&&m>=0){let t=(c||=new Map).get(u);if(void 0===t){t=new StructTreePage(n,e.pageDict).collectObjects(p);c.set(u,t)}const a=t?.get(m);if(a){const e=r.fetch(a).clone();StructTreeRoot.#lt(e,i);o.put(a,{data:e});continue}}h=Math.max(h,b);const j=r.getNewTemporaryRef(),k=new Dict(r);StructTreeRoot.#lt(k,i);await this.#ft({structTreeParent:w,tagDict:k,newTagRef:j,structTreeRootRef:t,fallbackKids:a,xref:r,cache:l});const y=new Dict(r);k.set("K",y);y.set("Type",f);d&&y.set("Pg",p);y.set("Obj",g);l.put(j,k);s.push(b,j)}}return h+1}static#lt(e,{type:t,title:n,lang:a,alt:s,expanded:r,actualText:i}){e.set("S",Name.get(t));n&&e.set("T",stringToAsciiOrUTF16BE(n));a&&e.set("Lang",stringToAsciiOrUTF16BE(a));s&&e.set("Alt",stringToAsciiOrUTF16BE(s));r&&e.set("E",stringToAsciiOrUTF16BE(r));i&&e.set("ActualText",stringToAsciiOrUTF16BE(i))}static#ot({elements:e,xref:t,pageDict:n,numberTree:a}){const s=new Map;for(const t of e)if(t.structTreeParentId){const e=parseInt(t.structTreeParentId.split("_mc")[1],10);s.getOrInsertComputed(e,makeArr).push(t)}const r=n.get("StructParents");if(!Number.isInteger(r))return;const i=a.get(r),updateElement=(e,n,a)=>{const r=s.get(e);if(r){const e=n.getRaw("P"),s=t.fetchIfRef(e);if(e instanceof Ref&&s instanceof Dict){const e={ref:a,dict:n};for(const t of r)t.structTreeParent=e}return!0}return!1};for(const e of i){if(!(e instanceof Ref))continue;const n=t.fetch(e),a=n.get("K");if(Number.isInteger(a))updateElement(a,n,e);else if(Array.isArray(a))for(let s of a){s=t.fetchIfRef(s);if(Number.isInteger(s)&&updateElement(s,n,e))break;if(!(s instanceof Dict))continue;if(!isName(s.get("Type"),"MCR"))break;const a=s.get("MCID");if(Number.isInteger(a)&&updateElement(a,n,e))break}}}static async#ft({structTreeParent:e,tagDict:t,newTagRef:n,structTreeRootRef:a,fallbackKids:s,xref:r,cache:i}){let o,l=null;if(e){({ref:l}=e);o=e.dict.getRaw("P")||a}else o=a;t.set("P",o);const f=r.fetchIfRef(o);if(!f){s.push(n);return}const c=i.getOrPutComputed(o,()=>f.clone()),h=c.getRaw("K");let u=h instanceof Ref?i.get(h):null;if(!u){u=r.fetchIfRef(h);u=Array.isArray(u)?u.slice():[h];const e=r.getNewTemporaryRef();c.set("K",e);i.put(e,u)}const m=u.indexOf(l);u.splice(m>=0?m+1:u.length,0,n)}}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:n}=this.tree;return n.roleMap.get(t)??t}get mathML(){let e=this.dict.get("AF")||[];Array.isArray(e)||(e=[e]);for(let t of e){t=this.xref.fetchIfRef(t);if(!isDict(t,"Filespec")||!isName(t.get("AFRelationship"),"Supplement"))continue;const e=FileSpec.pickPlatformItem(t.get("EF"));if(e instanceof BaseStream&&isDict(e.dict,"EmbeddedFile")&&isName(e.dict.get("Subtype"),"application/mathml+xml"))return stringToUTF8String(e.getString())}for(const e of this.attributes)if(isName(e.get("O"),"MSFT_Office")){const t=e.get("MSFT_MathML");return t?stringToPDFString(t):null}return null}#ct(e,t){const n=[e],a=new RefSet;for(;n.length>0;){if((e=n.pop())instanceof Ref){if(a.has(e))continue;a.put(e);e=this.xref.fetch(e)}e instanceof BaseStream&&(e=e.dict);if(e instanceof Dict)t.push(e);else if(Array.isArray(e))for(let t=e.length-1;t>=0;t--)Number.isInteger(e[t])||n.push(e[t])}}get attributes(){const e=[],t=this.dict.getArray("C");if(void 0!==t){const n=this.tree.rootDict?.get("ClassMap");if(n instanceof Dict)for(const a of Array.isArray(t)?t:[t])a instanceof Name&&this.#ct(n.getRaw(a.name),e)}this.#ct(this.dict.getRaw("A"),e);return shadow(this,"attributes",e)}get tableAttributes(){const{role:e}=this;if("Table"!==e&&"TH"!==e&&"TD"!==e)return null;const t=new Map;for(const n of this.attributes)if(isName(n.get("O"),"Table"))if("Table"!==e){for(const[e,a]of eo){if(!n.has(e))continue;const s=n.get(e);Number.isInteger(s)&&s>1?t.set(a,s):t.delete(a)}if(n.has("Headers")){t.delete("headers");const e=n.getArray("Headers");if(Array.isArray(e)){const n=e.filter(e=>"string"==typeof e).map(stringToPDFString);n.length>0&&t.set("headers",n)}}if("TH"===e&&n.has("Scope")){t.delete("scope");const e=n.get("Scope");e instanceof Name&&["Row","Column","Both"].includes(e.name)&&t.set("scope",e.name)}if("TH"===e&&n.has("Short")){t.delete("short");const e=n.get("Short");"string"==typeof e&&e&&t.set("short",stringToPDFString(e))}}else if(n.has("Summary")){const e=n.get("Summary");"string"==typeof e&&e?t.set("summary",stringToPDFString(e)):t.delete("summary")}return t.size?t:null}parseKids(){let e=null;const t=this.dict.getRaw("Pg");t instanceof Ref&&(e=t.toString());const n=this.dict.get("K");if(Array.isArray(n))for(const t of n){const n=this.parseKid(e,this.xref.fetchIfRef(t));n&&this.kids.push(n)}else{const t=this.parseKid(e,n);t&&this.kids.push(t)}}parseKid(e,t){if(Number.isInteger(t))return this.tree.pageDict.objId!==e?null:new StructElement({type:to,mcid:t,pageObjId:e});if(!(t instanceof Dict))return null;const n=t.getRaw("Pg");n instanceof Ref&&(e=n.toString());const a=t.get("Type")instanceof Name?t.get("Type").name:null;if("MCR"===a){if(this.tree.pageDict.objId!==e)return null;const n=t.getRaw("Stm");return new StructElement({type:no,refObjId:n instanceof Ref?n.toString():null,pageObjId:e,mcid:t.get("MCID")})}if("OBJR"===a){if(this.tree.pageDict.objId!==e)return null;const n=t.getRaw("Obj");return new StructElement({type:ao,refObjId:n instanceof Ref?n.toString():null,pageObjId:e})}return new StructElement({type:ro,dict:t})}}class StructElement{constructor({type:e,dict:t=null,mcid:n=null,pageObjId:a=null,refObjId:s=null}){this.type=e;this.dict=t;this.mcid=n;this.pageObjId=a;this.refObjId=s;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 n=this.root.structParentIds?.get(e);if(!n)return null;const a=new Map,s=new NumberTree(t,this.xref);for(const[e]of n){const t=s.getRaw(e);t instanceof Ref&&a.set(e,t)}return a}parse(e){if(!(this.root&&this.rootDict&&e instanceof Ref))return;const{parentTree:t}=this.root;if(!t)return;const n=this.pageDict.get("StructParents"),a=this.root.structParentIds?.get(e);if(!Number.isInteger(n)&&!a)return;const s=new Map;if(Number.isInteger(n)){const e=t.get(n);if(Array.isArray(e))for(const t of e)t instanceof Ref&&this.addNode(this.xref.fetch(t),s)}if(a)for(const[e,n,r]of a){const a=t.get(e);if(!a)continue;const i=this.addNode(this.xref.fetchIfRef(a),s);if(i&&r)for(const e of i.kids)e.type===ao&&e.refObjId===r&&(e.type=n)}}addNode(e,t,n=0){if(n>40){warn("StructTree MAX_DEPTH reached.");return null}if(!(e instanceof Dict))return null;if(t.has(e))return t.get(e);const a=new StructElementNode(this,e);t.set(e,a);switch(a.role){case"L":case"LBody":case"LI":case"Table":case"THead":case"TBody":case"TFoot":case"TR":for(const e of a.kids)e.type===ro&&this.addNode(e.dict,t,n-1)}const s=e.get("P");if(!(s instanceof Dict)||isName(s.get("Type"),"StructTreeRoot")){this.addTopLevelNode(e,a)||t.delete(e);return a}const r=this.addNode(s,t,n+1);if(!r)return a;let i=!1;for(const t of r.kids)if(t.type===ro&&t.dict===e){t.parentNode=a;i=!0}i||t.delete(e);return a}addTopLevelNode(e,t){const n=this.root.getKidPosition(e.objId);if(isNaN(n))return!1;-1!==n&&(this.nodes[n]=t);return!0}get serializable(){function nodeToSerializable(e,t,n=0){if(n>40){warn("StructTree too deep to be fully serialized.");return}const a=Object.create(null);a.role=e.role;a.children=[];t.children.push(a);let s=e.dict.get("Alt");"string"!=typeof s&&(s=e.dict.get("ActualText"));"string"==typeof s&&(a.alt=stringToPDFString(s));const r=e.dict.get("ID");"TH"===a.role&&"string"==typeof r&&r&&(a.structId=stringToPDFString(r));e.tableAttributes?.forEach((e,t)=>{a[t]=e});if("Formula"===a.role)try{const{mathML:t}=e;t&&(a.mathML=t)}catch(e){if(e instanceof MissingDataException)throw e;warn(`Ignoring mathML: "${e}".`)}let i=null,o=null;for(const t of e.attributes){i=lookupNormalRect(t.getArray("BBox"),i);const e=t.get("Width"),n=t.get("Height");"number"==typeof e&&e>0&&"number"==typeof n&&n>0&&(o=[0,0,e,n])}(i||o)&&(a.bbox=i??o);const l=e.dict.get("Lang");"string"==typeof l&&(a.lang=stringToPDFString(l));for(const t of e.kids){const e=t.type===ro?t.parentNode:null;e?nodeToSerializable(e,a,n+1):t.type===to||t.type===no?a.children.push({type:"content",id:`p${t.pageObjId}_mc${t.mcid}`}):t.type===ao?a.children.push({type:"object",id:t.refObjId}):t.type===so&&a.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 io=function _isValidExplicitDest(e,t,n){if(!Array.isArray(n)||n.length<2)return!1;const[a,s,...r]=n;if(!e(a)&&!Number.isInteger(a))return!1;if(!t(s))return!1;const i=r.length;let o=!0;switch(s.name){case"XYZ":if(i<2||i>3)return!1;break;case"Fit":case"FitB":return 0===i;case"FitH":case"FitBH":case"FitV":case"FitBV":if(i>1)return!1;break;case"FitR":if(4!==i)return!1;o=!1;break;default:return!1}for(const e of r)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 io(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(io(t))return JSON.stringify(t)}return null}class Catalog{#ht=null;#ut=new RefMap;#mt=new Map;#pt=new Set;#dt=null;builtInCMapCache=new Map;fontCache=new RefMap;globalColorSpaceCache=new GlobalColorSpaceCache;globalImageCache=new GlobalImageCache;nonBlendModesSet=new RefSet;pageDictCache=new RefMap;pageIndexCache=new RefMap;pageKidsCountCache=new RefMap;standardFontDataCache=new Map;systemFontCache=new Map;constructor(e,t){this.pdfManager=e;this.xref=t;this.#dt=t.getCatalogObj();if(!(this.#dt instanceof Dict))throw new FormatError("Catalog object is not a dictionary.");this.toplevelPagesDict}cloneDict(){return this.#dt.clone()}getAttachmentIdForAnnotation(e,t=!1){let n=this.#ut.get(e);if(!n){const t=`attachmentRef:${e.toString()}`;n=t;let a=1;for(;this.#mt.has(n)||this.attachments?.has(n);)n=`${t}-${a++}`;this.#ut.put(e,n);this.#mt.set(n,e)}t&&this.#pt.add(n);return n}get version(){const e=this.#dt.get("Version");if(e instanceof Name){if(dn.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.#dt.get("Lang");return shadow(this,"lang",e&&"string"==typeof e?stringToPDFString(e):null)}get needsRendering(){const e=this.#dt.get("NeedsRendering");return shadow(this,"needsRendering","boolean"==typeof e&&e)}get collection(){let e=null;try{const t=this.#dt.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.#dt.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.#dt.getRaw("AcroForm");return shadow(this,"acroFormRef",e instanceof Ref?e:null)}get metadata(){const e=this.#dt.getRaw("Metadata");if(!(e instanceof Ref))return shadow(this,"metadata",null);let t=null;try{const n=this.xref.fetch(e,!this.xref.encrypt?.encryptMetadata);if(n instanceof BaseStream&&isDict(n.dict,"Metadata")&&isName(n.dict.get("Subtype"),"XML")){const e=stringToUTF8String(n.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.#gt()}catch(e){if(e instanceof MissingDataException)throw e;warn("Unable to read mark info.")}return shadow(this,"markInfo",e)}#gt(){const e=this.#dt.get("MarkInfo");if(!(e instanceof Dict))return null;const t=new Map;for(const n of["Marked","UserProperties","Suspects"]){const a=e.get(n);t.set(n,"boolean"==typeof a&&a)}return t}get hasStructTree(){return this.#dt.has("StructTreeRoot")}get structTreeRoot(){let e=null;try{e=this.#bt()}catch(e){if(e instanceof MissingDataException)throw e;warn("Unable read to structTreeRoot info.")}return shadow(this,"structTreeRoot",e)}#bt(){const e=this.#dt.getRaw("StructTreeRoot"),t=this.xref.fetchIfRef(e);return t instanceof Dict?new StructTreeRoot(this.xref,t,e):null}get toplevelPagesDict(){const e=this.#dt.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.#wt()}catch(e){if(e instanceof MissingDataException)throw e;warn("Unable to read document outline.")}return shadow(this,"documentOutline",e)}#wt(e={}){let t=this.#dt.get("Outlines");if(!(t instanceof Dict))return null;t=t.getRaw("First");if(!(t instanceof Ref))return null;const n={items:[]},a=[{obj:t,parent:n}],s=new RefSet;s.put(t);const r=this.xref,i=new Uint8ClampedArray(3);for(;a.length>0;){const n=a.shift(),o=r.fetchIfRef(n.obj);if(null===o)continue;o.has("Title")||warn("Invalid outline item encountered.");const l={url:null,dest:null,action:null};Catalog.parseDestDictionary({destDict:o,resultObj:l,docBaseUrl:this.baseUrl,docAttachments:this.attachments});const f=o.get("Title"),c=o.get("F")||0,h=o.getArray("C"),u=o.get("Count");let m=i;!isNumberArray(h,3)||0===h[0]&&0===h[1]&&0===h[2]||(m=ColorSpaceUtils.rgb.getRgb(h,0));const p={action:l.action,attachmentId:l.attachmentId,attachment:l.attachment,dest:l.dest,url:l.url,unsafeUrl:l.unsafeUrl,newWindow:l.newWindow,setOCGState:l.setOCGState,title:"string"==typeof f?stringToPDFString(f):"",color:m,count:Number.isInteger(u)?u:void 0,bold:!!(2&c),italic:!!(1&c),items:[]};e.keepRawDict&&(p.rawDict=o);n.parent.items.push(p);t=o.getRaw("First");if(t instanceof Ref&&!s.has(t)){a.push({obj:t,parent:p});s.put(t)}t=o.getRaw("Next");if(t instanceof Ref&&!s.has(t)){a.push({obj:t,parent:n.parent});s.put(t)}}return n.items.length>0?n.items:null}get documentOutlineForEditor(){let e=null;try{e=this.#wt({keepRawDict:!0})}catch(e){if(e instanceof MissingDataException)throw e;warn("Unable to read document outline.")}return shadow(this,"documentOutlineForEditor",e)}get permissions(){let e=null;try{e=this.#jt()}catch(e){if(e instanceof MissingDataException)throw e;warn("Unable to read permissions.")}return shadow(this,"permissions",e)}#jt(){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 n=new Set;for(const e of Object.values(k))t&e&&n.add(e);return n}get optionalContentConfig(){let e=null;try{const t=this.#dt.get("OCProperties");if(!t)return shadow(this,"optionalContentConfig",null);const n=t.get("D");if(!n)return shadow(this,"optionalContentConfig",null);const a=t.get("OCGs");if(!Array.isArray(a))return shadow(this,"optionalContentConfig",null);const s=new RefMap;for(const e of a)e instanceof Ref&&!s.has(e)&&s.put(e,this.#kt(e));e=this.#yt(n,s)}catch(e){if(e instanceof MissingDataException)throw e;warn(`Unable to read optional content config: ${e}`)}return shadow(this,"optionalContentConfig",e)}#kt(e){const t=this.xref.fetch(e),n={id:e.toString(),name:null,intent:null,usage:{print:null,view:null},rbGroups:[]},a=t.get("Name");"string"==typeof a&&(n.name=stringToPDFString(a));let s=t.getArray("Intent");Array.isArray(s)||(s=[s]);s.every(e=>e instanceof Name)&&(n.intent=s.map(e=>e.name));const r=t.get("Usage");if(!(r instanceof Dict))return n;const i=n.usage,o=r.get("Print");if(o instanceof Dict){const e=o.get("PrintState");if(e instanceof Name)switch(e.name){case"ON":case"OFF":i.print={printState:e.name}}}const l=r.get("View");if(l instanceof Dict){const e=l.get("ViewState");if(e instanceof Name)switch(e.name){case"ON":case"OFF":i.view={viewState:e.name}}}return n}#yt(e,t){function parseOnOff(e){const n=[];if(Array.isArray(e))for(const a of e)a instanceof Ref&&t.has(a)&&n.push(a.toString());return n}function parseOrder(e,n=0){if(!Array.isArray(e))return null;const s=[];for(const r of e){if(r instanceof Ref&&t.has(r)){a.put(r);s.push(r.toString());continue}const e=parseNestedOrder(r,n);e&&s.push(e)}if(n>0)return s;const r=[];for(const[e]of t.items())a.has(e)||r.push(e.toString());r.length&&s.push({name:null,order:r});return s}function parseNestedOrder(e,t){if(++t>s){warn("parseNestedOrder - reached MAX_NESTED_LEVELS.");return null}const a=n.fetchIfRef(e);if(!Array.isArray(a))return null;const r=n.fetchIfRef(a[0]);if("string"!=typeof r)return null;const i=parseOrder(a.slice(1),t);return i?.length?{name:stringToPDFString(r),order:i}:null}const n=this.xref,a=new RefSet,s=10;!function parseRBGroups(e){if(Array.isArray(e))for(const a of e){const e=n.fetchIfRef(a);if(!Array.isArray(e)||!e.length)continue;const s=new Set;for(const n of e)if(n instanceof Ref&&t.has(n)&&!s.has(n.toString())){s.add(n.toString());t.get(n).rbGroups.push(s)}}}(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.#ht=e}get hasActualNumPages(){return null!==this.#ht}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.#ht??this._pagesCount}get destinations(){const e=new Map;for(const t of this.#qt())if(t instanceof NameTree)for(const[n,a]of t.getAll()){const t=fetchDest(a);t&&e.set(stringToPDFString(n,!0),t)}else if(t instanceof Dict)for(const[n,a]of t){const t=fetchDest(a);t&&e.getOrInsert(stringToPDFString(n,!0),t)}return shadow(this,"destinations",e)}getDestination(e){if(Object.hasOwn(this,"destinations"))return this.destinations.get(e)??null;for(const t of this.#qt())if(t instanceof NameTree||t instanceof Dict){const n=fetchDest(t.get(e));if(n)return n}return this.destinations.get(e)??null}#qt(){const e=this.#dt.get("Names"),t=[];e?.has("Dests")&&t.push(new NameTree(e.getRaw("Dests"),this.xref));this.#dt.has("Dests")&&t.push(this.#dt.get("Dests"));return t}get rawPageLabels(){const e=this.#dt.getRaw("PageLabels");if(!e)return null;return new NumberTree(e,this.xref).getAll()}get pageLabels(){let e=null;try{e=this.#vt()}catch(e){if(e instanceof MissingDataException)throw e;warn("Unable to read page labels.")}return shadow(this,"pageLabels",e)}#vt(){const e=this.rawPageLabels;if(!e)return null;const t=new Array(this.numPages);let n=null,a="",s="",r=1;for(let i=0,o=this.numPages;i=1))throw new FormatError("Invalid start in PageLabel dictionary.");r=e}else r=1}switch(n){case"D":s=r;break;case"R":case"r":s=toRomanNumerals(r,"r"===n);break;case"A":case"a":const e=26,t=r-1;s=String.fromCharCode(n.charCodeAt(0)+t%e).repeat(Math.floor(t/e)+1);break;default:if(n)throw new FormatError(`Invalid style "${n}" in PageLabel dictionary.`);s=""}t[i]=a+s;r++}return t}get pageLayout(){const e=this.#dt.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.#dt.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.#dt.get("ViewerPreferences");if(!(e instanceof Dict))return shadow(this,"viewerPreferences",null);let t=null;for(const[n,a]of e){let e;switch(n){case"HideToolbar":case"HideMenubar":case"HideWindowUI":case"FitWindow":case"CenterWindow":case"DisplayDocTitle":case"PickTrayByPDFSize":"boolean"==typeof a&&(e=a);break;case"NonFullScreenPageMode":if(a instanceof Name)switch(a.name){case"UseNone":case"UseOutlines":case"UseThumbs":case"UseOC":e=a.name;break;default:e="UseNone"}break;case"Direction":if(a instanceof Name)switch(a.name){case"L2R":case"R2L":e=a.name;break;default:e="L2R"}break;case"ViewArea":case"ViewClip":case"PrintArea":case"PrintClip":if(a instanceof Name)switch(a.name){case"MediaBox":case"CropBox":case"BleedBox":case"TrimBox":case"ArtBox":e=a.name;break;default:e="CropBox"}break;case"PrintScaling":if(a instanceof Name)switch(a.name){case"None":case"AppDefault":e=a.name;break;default:e="AppDefault"}break;case"Duplex":if(a instanceof Name)switch(a.name){case"Simplex":case"DuplexFlipShortEdge":case"DuplexFlipLongEdge":e=a.name;break;default:e="None"}break;case"PrintPageRange":Array.isArray(a)&&a.length%2==0&&a.every((e,t,n)=>Number.isInteger(e)&&e>0&&(0===t||e>=n[t-1])&&e<=this.numPages)&&(e=a);break;case"NumCopies":Number.isInteger(a)&&a>0&&(e=a);break;default:warn(`Ignoring non-standard key in ViewerPreferences: ${n}.`);continue}void 0!==e?(t??=new Map).set(n,e):warn(`Bad value, for key "${n}", in ViewerPreferences: ${a}.`)}return shadow(this,"viewerPreferences",t)}get openAction(){const e=this.#dt.get("OpenAction"),t=new Map;if(e instanceof Dict){const n=new Dict(this.xref);n.set("A",e);const a={url:null,dest:null,action:null};Catalog.parseDestDictionary({destDict:n,resultObj:a});Array.isArray(a.dest)?t.set("dest",a.dest):a.action&&t.set("action",a.action)}else io(e)&&t.set("dest",e);return shadow(this,"openAction",t.size?t:null)}get attachments(){const e=this.#dt.get("Names");let t=null;if(e instanceof Dict&&e.has("EmbeddedFiles")){const n=new NameTree(e.getRaw("EmbeddedFiles"),this.xref);for(const[e,a]of n.getAll())(t??=new Map).set(stringToPDFString(e,!0),new FileSpec(a).serializable)}return shadow(this,"attachments",t)}#St(e){const t=this.#dt.get("Names");if(t instanceof Dict&&t.has("EmbeddedFiles")){const n=new NameTree(t.getRaw("EmbeddedFiles"),this.xref);for(const[t,a]of n.getAll())if(stringToPDFString(t,!0)===e)return FileSpec.readContent(a)}}attachmentContent(e){const t=this.#St(e);if(void 0!==t)return t;const n=this.#mt.get(e);if(n){const t=this.xref.fetch(n);if(t instanceof BaseStream){const n=FileSpec.readStreamContent(t);return this.#pt.has(e)?function soundStreamToWav(e,t){const n=getSoundFormat(e.dict);if(!n)return null;const{channels:a,sampleRate:s,bitsPerSample:r,encoding:i}=n,o=a*(r>>3),l=t.length-t.length%o;if(0===l)return null;const f=new Uint8Array(44+l),c=new DataView(f.buffer);f.set(stringToBytes("RIFF"),0);c.setUint32(4,36+l,!0);f.set(stringToBytes("WAVE"),8);f.set(stringToBytes("fmt "),12);c.setUint32(16,16,!0);c.setUint16(20,1,!0);c.setUint16(22,a,!0);c.setUint32(24,s,!0);c.setUint32(28,s*o,!0);c.setUint16(32,o,!0);c.setUint16(34,r,!0);f.set(stringToBytes("data"),36);c.setUint32(40,l,!0);if(16===r){const e="Signed"===i;for(let n=0;n=32768&&(a-=65536):a-=32768;c.setInt16(44+n,a,!0)}}else if("Signed"===i)for(let e=0;e=0&&l+f<=e){l+=f;continue}if(n.has(a))throw new FormatError("Pages tree contains circular reference.");n.put(a);const c=await(o.get(a)||s.fetchAsync(a));if(c instanceof Dict){let t=c.getRaw("Type");t instanceof Ref&&(t=await s.fetchAsync(t));if(isName(t,"Page")||!c.has("Kids")){r.has(a)||r.put(a,1);i.has(a)||i.put(a,l);if(l===e)return[c,a];l++;continue}}t.push(c);continue}if(!(a instanceof Dict))throw new FormatError("Page dictionary kid reference points to wrong type of object.");const{objId:f}=a;let c=a.getRaw("Count");c instanceof Ref&&(c=await s.fetchAsync(c));if(Number.isInteger(c)&&c>=0){f&&!r.has(f)&&r.put(f,c);if(l+c<=e){l+=c;continue}}let h=a.getRaw("Kids");h instanceof Ref&&(h=await s.fetchAsync(h));if(!Array.isArray(h)){let t=a.getRaw("Type");t instanceof Ref&&(t=await s.fetchAsync(t));if(isName(t,"Page")||!a.has("Kids")){if(l===e)return[a,null];l++;continue}throw new FormatError("Page dictionary kids object is not an array.")}for(let e=h.length-1;e>=0;e--){const n=h[e];t.push(n);a===this.toplevelPagesDict&&n instanceof Ref&&!o.has(n)&&o.put(n,s.fetchAsync(n))}}throw new Error(`Page index ${e} not found.`)}async getAllPageDicts(e=!1){const{ignoreErrors:t}=this.pdfManager.evaluatorOptions,n=[{currentNode:this.toplevelPagesDict,posInKids:0}],a=new RefSet,s=this.#dt.getRaw("Pages");s instanceof Ref&&a.put(s);const r=new Map,i=this.xref,o=this.pageIndexCache;let l=0;function addPageDict(e,t){t&&!o.has(t)&&o.put(t,l);r.set(l++,[e,t])}function addPageError(n){if(n instanceof XRefEntryException&&!e)throw n;if(e&&t&&0===l){warn(`getAllPageDicts - Skipping invalid first page: "${n}".`);n=Dict.empty}r.set(l++,[n,null])}for(;n.length>0;){const e=n.at(-1),{currentNode:t,posInKids:s}=e;let r=t.getRaw("Kids");if(r instanceof Ref)try{r=await i.fetchAsync(r)}catch(e){addPageError(e);break}if(!Array.isArray(r)){let e=t.getRaw("Type");if(e instanceof Ref)try{e=await i.fetchAsync(e)}catch(e){addPageError(e);break}if(isName(e,"Page")||!t.has("Kids")){addPageDict(t,null);break}addPageError(new FormatError("Page dictionary kids object is not an array."));break}if(s>=r.length){n.pop();continue}const o=r[s];let l;if(o instanceof Ref){if(a.has(o)){addPageError(new FormatError("Pages tree contains circular reference."));break}a.put(o);try{l=await i.fetchAsync(o)}catch(e){addPageError(e);break}}else l=o;if(!(l instanceof Dict)){addPageError(new FormatError("Page dictionary kid reference points to wrong type of object."));break}let f=l.getRaw("Type");if(f instanceof Ref)try{f=await i.fetchAsync(f)}catch(e){addPageError(e);break}isName(f,"Page")||!l.has("Kids")?addPageDict(l,o instanceof Ref?o:null):n.push({currentNode:l,posInKids:0});e.posInKids++}return r}async getPageIndex(e){const t=this.pageIndexCache.get(e);if(void 0!==t)return t;const n=this.xref;let a=0,s=e;const r=new RefSet;r.put(e);for(;;){const t=await n.fetchAsync(s);if(isRefsEqual(s,e)&&!isDict(t,"Page")&&!(t instanceof Dict&&!t.has("Type")&&t.has("Contents")))throw new FormatError("The reference does not point to a /Page dictionary.");if(!t)break;if(!(t instanceof Dict))throw new FormatError("Node must be a dictionary.");const i=t.getRaw("Parent");if(i instanceof Ref){if(r.has(i))throw new FormatError("Pages tree contains circular reference.");r.put(i)}const o=await t.getAsync("Parent");if(!o)break;if(!(o instanceof Dict))throw new FormatError("Parent must be a dictionary.");const l=await o.getAsync("Kids");if(!l)break;if(!Array.isArray(l))throw new FormatError("Kids must be an array.");const f=[];let c=!1;for(const e of l){if(!(e instanceof Ref))throw new FormatError("Kid must be a reference.");if(isRefsEqual(e,s)){c=!0;break}f.push(n.fetchAsync(e).then(e=>{if(!(e instanceof Dict))throw new FormatError("Kid node must be a dictionary.");if(e.has("Count")){const t=e.get("Count");if(Number.isInteger(t)&&t>=0){a+=t;return}throw new FormatError("Count must be a (positive) integer.")}a++}))}if(!c)throw new FormatError("Kid reference not found in parent's kids.");await Promise.all(f);s=i}this.pageIndexCache.put(e,a);return a}get baseUrl(){const e=this.#dt.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#xt(e,t){const n=e.fetchIfRef(t);if(!(n instanceof Dict))return null;let a=null;const s=n.getRaw("Pg");s instanceof Ref&&(a=s);if(!a){const s=[n],r=new RefSet;r.put(t);for(;s.length>0&&!a;){let t,n=s.shift().getRaw("K");if(n instanceof Ref){if(r.has(n))continue;r.put(n);n=e.fetch(n)}if(Array.isArray(n))t=n;else{if(!n)continue;t=[n]}for(const n of t){if(n instanceof Ref){if(r.has(n))continue;r.put(n)}const t=e.fetchIfRef(n);if(!(t instanceof Dict))continue;const i=t.getRaw("Pg");if(i instanceof Ref){a=i;break}s.push(t)}}}if(!a){const t=40;let s=n;for(let n=0;n=a?e[s-a]:0,h=t>0?e[o+r]:0,u=t>0&&r>=a?e[o+r-a]:0;i[0][r]=f;i[1][r]=f-c&255;i[2][r]=f-h&255;i[3][r]=f-(c+h>>1)&255;i[4][r]=f-paethPredictor(c,h,u)&255;for(let e=0;e<5;e++){const t=i[e][r];l[e]+=t<128?t:256-t}}let f=0;for(let e=1;e<5;e++)l[e]{try{await n.ready;await n.write(e);await n.ready;await n.close()}catch(e){await n.abort(e).catch(()=>{});throw e}})(),[s]=await Promise.all([new Response(t.readable).bytes(),a.then(()=>null)]);return s}(a)}catch{}if(!r)return createRawImage(e,a);a.setIfName("Filter","FlateDecode");const i=new Dict(a.xref);i.set("Predictor",15);i.set("Columns",t);i.set("Colors",s);i.set("BitsPerComponent",8);a.set("DecodeParms",i);return createRawImage(r,a)}async function createImage(e,t,{closeBitmap:n=!1}={}){const{width:a,height:s}=e;if(!Number.isInteger(a)||!Number.isInteger(s)||a<=0||s<=0){n&&e.close?.();throw new Error(`createImage: invalid bitmap dimensions ${a}x${s}`)}const r=new OffscreenCanvas(a,s),i=r.getContext("2d",{alpha:!0,willReadFrequently:!0});let o;try{i.drawImage(e,0,0);o=i.getImageData(0,0,a,s).data}finally{n&&e.close?.()}const l=new Uint32Array(o.buffer,o.byteOffset,o.byteLength>>2),f=FeatureTest.isLittleEndian,c=f?16777215:4294967040,h=new Set;let u=!1,m=!0;for(const e of l){if(255!=(f?e>>>24:255&e)){u=!0;break}if(m){h.add((e&c)>>>0);if(h.size>16384){m=!1;h.clear()}}}u&&(m=!0);const p=createImageDict(t,a,s,"DeviceRGB");let d,g=null;if(m){const e=new Uint8Array(a*s*3);for(let t=0,n=0,a=o.length;te.bytes()).then(e=>createRawImage(e,p))}let b=Promise.resolve(null),w=null;if(u){const e=new Uint8Array(l.length);if(f)for(let t=0,n=l.length;t>>24;else for(let t=0,n=l.length;te.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}},Al={pt:e=>e,cm:e=>e/2.54*72,mm:e=>e/25.4*72,in:e=>72*e,px:e=>e},xl=/([+-]?\d+\.?\d*)(.*)/;function stripQuotes(e){return e.startsWith("'")||e.startsWith('"')?e.slice(1,-1):e}function getInteger({data:e,defaultValue:t,validate:n}){if(!e)return t;e=e.trim();const a=parseInt(e,10);return!isNaN(a)&&n(a)?a:t}function getFloat({data:e,defaultValue:t,validate:n}){if(!e)return t;e=e.trim();const a=parseFloat(e);return!isNaN(a)&&n(a)?a:t}function getKeyword({data:e,defaultValue:t,validate:n}){return e&&n(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 n=e.trim().match(xl);if(!n)return getMeasurement(t);const[,a,s]=n,r=parseFloat(a);if(isNaN(r))return getMeasurement(t);if(0===r)return 0;const i=Al[s];return i?i(r):r}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[n,a]=t;return{num:n,den:a}}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,n,a){this.success=e;this.html=t;this.bbox=n;this.breakNode=a}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.italic||e.bold||e.bolditalic;if(!t||0===t.size)return;const n=this.fonts.get("PdfJS-Fallback-PdfJS-XFA");for(const e of t)this.fonts.set(e,n)}addPdfFont(e){const t=e.cssFontInfo,n=t.fontFamily,a=this.fonts.getOrInsertComputed(n,makeObj);this.defaultFont??=a;let s="";const r=parseFloat(t.fontWeight);0!==parseFloat(t.italicAngle)?s=r>=700?"bolditalic":"italic":r>=700&&(s="bold");if(!s){(e.name.includes("Bold")||e.psName?.includes("Bold"))&&(s="bold");(e.name.includes("Italic")||e.name.endsWith("It")||e.psName?.includes("Italic")||e.psName?.endsWith("It"))&&(s+="italic")}s||="regular";a[s]=e}getDefault(){return this.defaultFont}find(e,t=!0){let n=this.fonts.get(e)||this.cache.get(e);if(n)return n;const a=/[,\-_ ]|bolditalic|bold|italic|regular|it/gi;let s=e.replaceAll(a,"");n=this.fonts.get(s);if(n){this.cache.set(e,n);return n}s=s.toLowerCase();const r=[];for(const[e,t]of this.fonts)e.replaceAll(a,"").toLowerCase().startsWith(s)&&r.push(t);if(0===r.length)for(const e of this.fonts.values())e.regular.name?.replaceAll(a,"").toLowerCase().startsWith(s)&&r.push(e);if(0===r.length){s=s.replaceAll(/psmt|mt/gi,"");for(const[e,t]of this.fonts)e.replaceAll(a,"").toLowerCase().startsWith(s)&&r.push(t)}if(0===r.length)for(const e of this.fonts.values())e.regular.name?.replaceAll(a,"").toLowerCase().startsWith(s)&&r.push(e);if(r.length>=1){1!==r.length&&t&&warn(`XFA - Too many choices to guess the correct font: ${e}`);this.cache.set(e,r[0]);return r[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 FontInfo{constructor(e,t,n,a){this.lineHeight=n;this.paraMargin=t||{top:0,bottom:0,left:0,right:0};if(!e){[this.pdfFont,this.xfaFont]=this.defaultFont(a);return}this.xfaFont={typeface:e.typeface,posture:e.posture,weight:e.weight,size:e.size,letterSpacing:e.letterSpacing};const s=a.find(e.typeface);if(s){this.pdfFont=selectFont(e,s);this.pdfFont||([this.pdfFont,this.xfaFont]=this.defaultFont(a))}else[this.pdfFont,this.xfaFont]=this.defaultFont(a)}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,n,a){this.fontFinder=a;this.stack=[new FontInfo(e,t,n,a)]}pushData(e,t,n){const a=this.stack.at(-1);for(const t of["typeface","posture","weight","size","letterSpacing"])e[t]||=a.xfaFont[t];for(const e of["top","bottom","left","right"])isNaN(t[e])&&(t[e]=a.paraMargin[e]);const s=new FontInfo(e,t,n||a.lineHeight,this.fontFinder);s.pdfFont||=a.pdfFont;this.stack.push(s)}popFont(){this.stack.pop()}topFont(){return this.stack.at(-1)}}class TextMeasure{constructor(e,t,n,a){this.glyphs=[];this.fontSelector=new FontSelector(e,t,n,a);this.extraHeight=0}pushData(e,t,n){this.fontSelector.pushData(e,t,n)}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(),n=t.xfaFont.size;if(t.pdfFont){const a=t.xfaFont.letterSpacing,s=t.pdfFont,r=s.lineHeight||1.2,i=t.lineHeight||Math.max(1.2,r)*n,o=r-(void 0===s.lineGap?.2:s.lineGap),l=Math.max(1,o)*n,f=n/1e3,c=s.defaultWidth||s.charsToGlyphs(" ")[0].width;for(const t of e.split(/[\u2029\n]/)){const e=s.encodeString(t).join(""),n=s.charsToGlyphs(e);for(const e of n){const t=e.width||c;this.glyphs.push([t*f+a,i,l,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([n,1.2*n,n,e,!1]);this.glyphs.push([0,0,0,"\n",!0])}this.glyphs.pop()}compute(e){let t=-1,n=0,a=0,s=0,r=0,i=0,o=!1,l=!0;for(let f=0,c=this.glyphs.length;fe){a=Math.max(a,r);r=0;s+=i;i=g;t=-1;n=0;o=!0;l=!1}else{i=Math.max(g,i);n=r;r+=c;t=f}else if(r+c>e){s+=i;i=g;if(-1!==t){f=t;a=Math.max(a,n);r=0;t=-1;n=0}else{a=Math.max(a,r);r=c}o=!0;l=!1}else{r+=c;i=Math.max(g,i)}}a=Math.max(a,r);s+=i+this.extraHeight;return{width:1.02*a,height:s,isBroken:o}}}const Cl=/^[^.[]+/,Il=/^[^\]]+/,Fl=0,Tl=1,Rl=2,Hl=3,Bl=4,Dl=new Map([["$data",(e,t)=>e.datasets?e.datasets.data:e],["$record",(e,t)=>(e.datasets?e.datasets.data:e)[Ho]()[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]]),Ml=new WeakMap;function parseIndex(e){return"*"===(e=e.trim())?1/0:parseInt(e,10)||0}function parseExpression(e,t,n=!0){let a=e.match(Cl);if(!a)return null;let[s]=a;const r=[{name:s,cacheName:"."+s,index:0,js:null,formCalc:null,operator:Fl}];let i=s.length;for(;i0&&c.push(e)}if(0===c.length&&!o&&0===l){const n=t[No]();if(!(t=n))return null;l=-1;e=[t];continue}e=isFinite(f)?c.filter(e=>fe[f]):c.flat()}return 0===e.length?null:e}function createDataNode(e,t,n){const a=parseExpression(n);if(!a)return null;if(a.some(e=>e.operator===Tl))return null;const s=Dl.get(a[0].name);let r=0;if(s){e=s(e,t);r=1}else e=t||e;for(let t=a.length;re[bl]()).join("")}get[El](){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,El,e._attributes)}[Go](e){let t=this;for(;t;){if(t===e)return!0;t=t[No]()}return!1}[No](){return this[Jl]}[Mo](){return this[No]()}[jo](){const e=Object.create(null);this[bo]&&(e.$content=this[bo]);for(const t of Object.getOwnPropertyNames(this)){const n=this[t];null!==n&&(n instanceof XFAObject?e[t]=n[jo]():n instanceof XFAObjectArray?n.isEmpty()||(e[t]=n.dump()):e[t]=n)}return e}[yl](){return null}[jl](){return HTMLResult.EMPTY}*[Bo](){for(const e of this[Ho]())yield e}*[Xl](e,t){for(const n of this[Bo]())if(!e||t===e.has(n[tl])){const e=this[Ao](),t=n[jl](e);t.success||(this[ko].failingNode=n);yield t}}[qo](){return null}[lo](e,t){this[ko].children.push(e)}[Ao](){}[co]({filter:e=null,include:t=!0}){if(this[ko].generator){const e=this[Ao](),t=this[ko].failingNode[jl](e);if(!t.success)return t;t.html&&this[lo](t.html,t.bbox);delete this[ko].failingNode}else this[ko].generator=this[Xl](e,t);for(;;){const e=this[ko].generator.next();if(e.done)break;const t=e.value;if(!t.success)return t;t.html&&this[lo](t.html,t.bbox)}this[ko].generator=null;return HTMLResult.EMPTY}[pl](e){this[Zl]=new Set(Object.keys(e))}[Gl](e){const t=this[El],n=this[Zl];return e.keys().filter(e=>t.has(e)&&!n.has(e)).toArray()}[hl](e,t=new Set){for(const n of this[_l])n[Ql](e,t)}[Ql](e,t){const n=this[Kl](e,t);n?this[Nl](n,e,t):this[hl](e,t)}[Kl](e,t){const{use:n,usehref:a}=this;if(!n&&!a)return null;let s=null,r=null,i=null,o=n;if(a){o=a;a.startsWith("#som(")&&a.endsWith(")")?r=a.slice(5,-1):a.startsWith(".#som(")&&a.endsWith(")")?r=a.slice(6,-1):a.startsWith("#")?i=a.slice(1):a.startsWith(".#")&&(i=a.slice(2))}else n.startsWith("#")?i=n.slice(1):r=n;this.use=this.usehref="";if(i)s=e.get(i);else{s=searchNode(e.get(cl),this,r,!0,!1);s&&=s[0]}if(!s){warn(`XFA - Invalid prototype reference: ${o}.`);return null}if(s[tl]!==this[tl]){warn(`XFA - Incompatible prototype: ${s[tl]} !== ${this[tl]}.`);return null}if(t.has(s)){warn("XFA - Cycle detected in prototypes use.");return null}t.add(s);const l=s[Kl](e,t);l&&s[Nl](l,e,t);s[hl](e,t);t.delete(s);return s}[Nl](e,t,n){if(n.has(e)){warn("XFA - Cycle detected in prototypes use.");return}!this[bo]&&e[bo]&&(this[bo]=e[bo]);new Set(n).add(e);for(const t of this[Gl](e[Zl])){this[t]=e[t];this[Zl]&&this[Zl].add(t)}for(const a of Object.getOwnPropertyNames(this)){if(this[El].has(a))continue;const s=this[a],r=e[a];if(s instanceof XFAObjectArray){for(const e of s[_l])e[Ql](t,n);for(let a=s[_l].length,i=r[_l].length;aXFAObject[zl](e)):"object"==typeof e&&null!==e?Object.assign({},e):e}[po](){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[ql]=`${e[tl]}${tf++}`;e[_l]=[];for(const t of Object.getOwnPropertyNames(this)){if(this[El].has(t)){e[t]=XFAObject[zl](this[t]);continue}const n=this[t];e[t]=n instanceof XFAObjectArray?new XFAObjectArray(n[$l]):null}for(const t of this[_l]){const n=t[tl],a=t[po]();e[_l].push(a);a[Jl]=e;null===e[n]?e[n]=a:e[n][_l].push(a)}return e}[Ho](e=null){return e?this[_l].filter(t=>t[tl]===e):this[_l]}[xo](e){return this[e]}[Co](e,t,n=!0){return Array.from(this[Io](e,t,n))}*[Io](e,t,n=!0){if("parent"!==e){for(const n of this[_l]){n[tl]===e&&(yield n);n.name===e&&(yield n);(t||n[Jo]())&&(yield*n[Io](e,t,!1))}n&&this[El].has(e)&&(yield new XFAAttribute(this,e,this[e]))}else yield this[Jl]}}class XFAObjectArray{constructor(e=1/0){this[$l]=e;this[_l]=[]}get isXFAObject(){return!1}get isXFAObjectArray(){return!0}push(e){if(this[_l].length<=this[$l]){this[_l].push(e);return!0}warn(`XFA - node "${e[tl]}" accepts no more than ${this[$l]} children`);return!1}isEmpty(){return 0===this[_l].length}dump(){return 1===this[_l].length?this[_l][0][jo]():this[_l].map(e=>e[jo]())}[po](){const e=new XFAObjectArray(this[$l]);e[_l]=this[_l].map(e=>e[po]());return e}get children(){return this[_l]}clear(){this[_l].length=0}}class XFAAttribute{constructor(e,t,n){this[Jl]=e;this[tl]=t;this[bo]=n;this[go]=!1;this[ql]="attribute"+tf++}[No](){return this[Jl]}[Ko](){return!0}[Fo](){return this[bo].trim()}[dl](e){e=e.value||"";this[bo]=e.toString()}[bl](){return this[bo]}[Go](e){return this[Jl]===e||this[Jl][Go](e)}}class XmlObject extends XFAObject{constructor(e,t,n={}){super(e,t);this[bo]="";this[Ll]=null;if("#text"!==t){const e=new Map;this[Pl]=e;for(const[t,a]of Object.entries(n))e.set(t,new XFAAttribute(this,t,a));if(Object.hasOwn(n,nl)){const e=n[nl].xfa.dataNode;void 0!==e&&("dataGroup"===e?this[Ll]=!1:"dataValue"===e&&(this[Ll]=!0))}}this[go]=!1}[kl](e){const t=this[tl];if("#text"===t){e.push(encodeToXmlString(this[bo]));return}const n=utf8StringToString(t),a=this[el]===nf?"xfa:":"";e.push(`<${a}${n}`);for(const[t,n]of this[Pl]){const a=utf8StringToString(t);e.push(` ${a}="${encodeToXmlString(n[bo])}"`)}null!==this[Ll]&&(this[Ll]?e.push(' xfa:dataNode="dataValue"'):e.push(' xfa:dataNode="dataGroup"'));if(this[bo]||0!==this[_l].length){e.push(">");if(this[bo])"string"==typeof this[bo]?e.push(encodeToXmlString(this[bo])):this[bo][kl](e);else for(const t of this[_l])t[kl](e);e.push(``)}else e.push("/>")}[al](e){if(this[bo]){const e=new XmlObject(this[el],"#text");this[fo](e);e[bo]=this[bo];this[bo]=""}this[fo](e);return!0}[rl](e){this[bo]+=e}[yo](){if(this[bo]&&this[_l].length>0){const e=new XmlObject(this[el],"#text");this[fo](e);e[bo]=this[bo];delete this[bo]}}[jl](){return"#text"===this[tl]?HTMLResult.success({name:"#text",value:this[bo]}):HTMLResult.EMPTY}[So](){return this[Pl]}[xo](e){const t=this[Pl].get(e);return void 0!==t?t:this[Ho](e)}*[Io](e,t){const n=this[Pl].get(e);n&&(yield n);for(const n of this[_l]){n[tl]===e&&(yield n);t&&(yield*n[Io](e,t))}}*[vo](e,t){const n=this[Pl].get(e);!n||t&&n[go]||(yield n);for(const n of this[_l])yield*n[vo](e,t)}*[Oo](e,t,n){for(const a of this[_l]){a[tl]!==e||n&&a[go]||(yield a);t&&(yield*a[Oo](e,t,n))}}[Ko](){return null===this[Ll]?0===this[_l].length||this[_l][0][el]===Sl.xhtml.id:this[Ll]}[Fo](){return null===this[Ll]?0===this[_l].length?this[bo].trim():this[_l][0][el]===Sl.xhtml.id?this[_l][0][bl]().trim():null:this[bo].trim()}[dl](e){e=e.value||"";this[bo]=e.toString()}[jo](e=!1){const t=Object.create(null);e&&(t.$ns=this[el]);this[bo]&&(t.$content=this[bo]);t.$name=this[tl];t.children=[];for(const n of this[_l])t.children.push(n[jo](e));t.attributes=Object.create(null);for(const[e,n]of this[Pl])t.attributes[e]=n[bo];return t}}class ContentObject extends XFAObject{constructor(e,t){super(e,t);this[bo]=""}[rl](e){this[bo]+=e}[yo](){}}class OptionObject extends ContentObject{constructor(e,t,n){super(e,t);this[Yl]=n}[yo](){this[bo]=getKeyword({data:this[bo],defaultValue:this[Yl][0],validate:e=>this[Yl].includes(e)})}[ho](e){super[ho](e);delete this[Yl]}}class StringObject extends ContentObject{[yo](){this[bo]=this[bo].trim()}}class IntegerObject extends ContentObject{constructor(e,t,n,a){super(e,t);this[Wl]=n;this[ef]=a}[yo](){this[bo]=getInteger({data:this[bo],defaultValue:this[Wl],validate:this[ef]})}[ho](e){super[ho](e);delete this[Wl];delete this[ef]}}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 af={anchorType(e,t){const n=e[Mo]();if(n&&(!n.layout||"position"===n.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 n=e[Mo]();let a=e.w;const s=e.h;if(n.layout?.includes("row")){const t=n[ko],s=e.colSpan;let r;if(-1===s){r=Math.sumPrecise(t.columnWidths.slice(t.currentColumn));t.currentColumn=0}else{r=Math.sumPrecise(t.columnWidths.slice(t.currentColumn,t.currentColumn+s));t.currentColumn=(t.currentColumn+e.colSpan)%t.columnWidths.length}isNaN(r)||(a=e.w=r)}t.width=""!==a?measureToString(a):"auto";t.height=""!==s?measureToString(s):"auto"},position(e,t){const n=e[Mo]();if(!n?.layout||"position"===n.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[tl])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[yl]().margin)}};function setMinMaxDimensions(e,t){if("position"===e[Mo]().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,n,a,s,r){const i=new TextMeasure(t,n,a,s);"string"==typeof e?i.addString(e):e[il](i);return i.compute(r)}function layoutNode(e,t){let n=null,a=null,s=!1;if((!e.w||!e.h)&&e.value){let r=0,i=0;if(e.margin){r=e.margin.leftInset+e.margin.rightInset;i=e.margin.topInset+e.margin.bottomInset}let o=null,l=null;if(e.para){l=Object.create(null);o=""===e.para.lineHeight?null:e.para.lineHeight;l.top=""===e.para.spaceAbove?0:e.para.spaceAbove;l.bottom=""===e.para.spaceBelow?0:e.para.spaceBelow;l.left=""===e.para.marginLeft?0:e.para.marginLeft;l.right=""===e.para.marginRight?0:e.para.marginRight}let f=e.font;if(!f){const t=e[Po]();let n=e[No]();for(;n&&n!==t;){if(n.font){f=n.font;break}n=n[No]()}}const c=(e.w||t.width)-r,h=e[Eo].fontFinder;if(e.value.exData&&e.value.exData[bo]&&"text/html"===e.value.exData.contentType){const t=layoutText(e.value.exData[bo],f,l,o,h,c);a=t.width;n=t.height;s=t.isBroken}else{const t=e.value[bl]();if(t){const e=layoutText(t,f,l,o,h,c);a=e.width;n=e.height;s=e.isBroken}}null===a||e.w||(a+=r);null===n||e.h||(n+=i)}return{w:a,h:n,isBroken:s}}function computeBbox(e,t,n){let a;if(""!==e.w&&""!==e.h)a=[e.x,e.y,e.w,e.h];else{if(!n)return null;let s=e.w;if(""===s){if(0===e.maxW){const t=e[Mo]();s="position"===t.layout&&""!==t.w?0:e.minW}else s=Math.min(e.maxW,n.width);t.attributes.style.width=measureToString(s)}let r=e.h;if(""===r){if(0===e.maxH){const t=e[Mo]();r="position"===t.layout&&""!==t.h?0:e.minH}else r=Math.min(e.maxH,n.height);t.attributes.style.height=measureToString(r)}a=[e.x,e.y,s,r]}return a}function fixDimensions(e){const t=e[Mo]();if(t.layout?.includes("row")){const n=t[ko],a=e.colSpan;let s;s=-1===a?Math.sumPrecise(n.columnWidths.slice(n.currentColumn)):Math.sumPrecise(n.columnWidths.slice(n.currentColumn,n.currentColumn+a));isNaN(s)||(e.w=s)}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 n=Object.create(null);for(const a of t){const t=e[a];if(null!==t)if(Object.hasOwn(af,a))af[a](e,n);else if(t instanceof XFAObject){const e=t[yl]();e?Object.assign(n,e):warn(`(DEBUG) - XFA - style for ${a} not implemented yet`)}}return n}function createWrapper(e,t){const{attributes:n}=t,{style:a}=n,s={name:"div",attributes:{class:["xfaWrapper"],style:Object.create(null)},children:[]};n.class.push("xfaWrapped");if(e.border){const{widths:n,insets:r}=e.border[ko];let i,o,l=r[0],f=r[3];const c=r[0]+r[2],h=r[1]+r[3];switch(e.border.hand){case"even":l-=n[0]/2;f-=n[3]/2;i=`calc(100% + ${(n[1]+n[3])/2-h}px)`;o=`calc(100% + ${(n[0]+n[2])/2-c}px)`;break;case"left":l-=n[0];f-=n[3];i=`calc(100% + ${n[1]+n[3]-h}px)`;o=`calc(100% + ${n[0]+n[2]-c}px)`;break;case"right":i=h?`calc(100% - ${h}px)`:"100%";o=c?`calc(100% - ${c}px)`:"100%"}const u=["xfaBorder"];isPrintOnly(e.border)&&u.push("xfaPrintOnly");const m={name:"div",attributes:{class:u,style:{top:`${l}px`,left:`${f}px`,width:i,height:o}},children:[]};for(const e of["border","borderWidth","borderColor","borderRadius","borderStyle"])if(void 0!==a[e]){m.attributes.style[e]=a[e];delete a[e]}s.children.push(m,t)}else s.children.push(t);for(const e of["background","backgroundClip","top","left","width","height","minWidth","minHeight","maxWidth","maxHeight","transform","transformOrigin","visibility"])if(void 0!==a[e]){s.attributes.style[e]=a[e];delete a[e]}s.attributes.style.position="absolute"===a.position?"absolute":"relative";delete a.position;if(a.alignSelf){s.attributes.style.alignSelf=a.alignSelf;delete a.alignSelf}return s}function fixTextIndent(e){const t=getMeasurement(e.textIndent,"0px");if(t>=0)return;const n="padding"+("left"===("right"===e.textAlign?"right":"left")?"Left":"Right"),a=getMeasurement(e[n],"0px");e[n]=a-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[Po]()[ko].paraStack;return t.length?t.at(-1):null}function setPara(e,t,n){if(n.attributes.class?.includes("xfaRich")){if(t){""===e.h&&(t.height="auto");""===e.w&&(t.width="auto")}const a=getCurrentPara(e);if(a){const e=n.attributes.style;e.display="flex";e.flexDirection="column";switch(a.vAlign){case"top":e.justifyContent="start";break;case"bottom":e.justifyContent="end";break;case"middle":e.justifyContent="center"}const t=a[yl]();for(const[n,a]of Object.entries(t))n in e||(e[n]=a)}}}function setFontFamily(e,t,n,a){if(!n){delete a.fontFamily;return}const s=stripQuotes(e.typeface);a.fontFamily=serializeFontFamily(s);const r=n.find(s);if(r){const{fontFamily:n}=r.regular.cssFontInfo;n!==s&&(a.fontFamily=serializeFontFamily(n));const i=getCurrentPara(t);if(i&&""!==i.lineHeight)return;if(a.lineHeight)return;const o=selectFont(e,r);o&&(a.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[ko])return null;const t={name:"div",attributes:e[ko].attributes,children:e[ko].children};if(e[ko].failingNode){const n=e[ko].failingNode[qo]();n&&(e.layout.endsWith("-tb")?t.children.push(createLine(e,[n])):t.children.push(n))}return 0===t.children.length?null:t}function addHTML(e,t,n){const a=e[ko],s=a.availableSpace,[r,i,o,l]=n;switch(e.layout){case"position":a.width=Math.max(a.width,r+o);a.height=Math.max(a.height,i+l);a.children.push(t);break;case"lr-tb":case"rl-tb":if(!a.line||1===a.attempt){a.line=createLine(e,[]);a.children.push(a.line);a.numberInLine=0}a.numberInLine+=1;a.line.children.push(t);if(0===a.attempt){a.currentWidth+=o;a.height=Math.max(a.height,a.prevHeight+l)}else{a.currentWidth=o;a.prevHeight=a.height;a.height+=l;a.attempt=0}a.width=Math.max(a.width,a.currentWidth);break;case"rl-row":case"row":{a.children.push(t);a.width+=o;a.height=Math.max(a.height,l);const e=measureToString(a.height);for(const t of a.children)t.attributes.style.height=e;break}case"table":case"tb":a.width=MathClamp(o,a.width,s.width);a.height+=l;a.children.push(t)}}function getAvailableSpace(e){const t=e[ko].availableSpace,n=e.margin?e.margin.topInset+e.margin.bottomInset:0,a=e.margin?e.margin.leftInset+e.margin.rightInset:0;switch(e.layout){case"lr-tb":case"rl-tb":return 0===e[ko].attempt?{width:t.width-a-e[ko].currentWidth,height:t.height-n-e[ko].prevHeight}:{width:t.width-a,height:t.height-n-e[ko].height};case"rl-row":case"row":return{width:Math.sumPrecise(e[ko].columnWidths.slice(e[ko].currentColumn)),height:t.height-a};case"table":case"tb":return{width:t.width-a,height:t.height-n-e[ko].height};default:return t}}function checkDimensions(e,t){if(null===e[Po]()[ko].firstUnsplittable)return!0;if(0===e.w||0===e.h)return!0;const n=e[Mo](),a=n[ko]?.attempt||0,[,s,r,i]=function getTransformedBBox(e){let t,n,a=""===e.w?NaN:e.w,s=""===e.h?NaN:e.h,[r,i]=[0,0];switch(e.anchorType||""){case"bottomCenter":[r,i]=[a/2,s];break;case"bottomLeft":[r,i]=[0,s];break;case"bottomRight":[r,i]=[a,s];break;case"middleCenter":[r,i]=[a/2,s/2];break;case"middleLeft":[r,i]=[0,s/2];break;case"middleRight":[r,i]=[a,s/2];break;case"topCenter":[r,i]=[a/2,0];break;case"topRight":[r,i]=[a,0]}switch(e.rotate||0){case 0:[t,n]=[-r,-i];break;case 90:[t,n]=[-i,r];[a,s]=[s,-a];break;case 180:[t,n]=[r,i];[a,s]=[-a,-s];break;case 270:[t,n]=[i,-r];[a,s]=[-s,a]}return[e.x+t+Math.min(0,a),e.y+n+Math.min(0,s),Math.abs(a),Math.abs(s)]}(e);switch(n.layout){case"lr-tb":case"rl-tb":return 0===a?e[Po]()[ko].noLayoutFailure?""!==e.w?Math.round(r-t.width)<=2:t.width>2:!(""!==e.h&&Math.round(i-t.height)>2)&&(""!==e.w?Math.round(r-t.width)<=2||0===n[ko].numberInLine&&t.height>2:t.width>2):!!e[Po]()[ko].noLayoutFailure||!(""!==e.h&&Math.round(i-t.height)>2)&&((""===e.w||Math.round(r-t.width)<=2||!n[Yo]())&&t.height>2);case"table":case"tb":return!!e[Po]()[ko].noLayoutFailure||(""===e.h||e[$o]()?(""===e.w||Math.round(r-t.width)<=2||!n[Yo]())&&t.height>2:Math.round(i-t.height)<=2);case"position":if(e[Po]()[ko].noLayoutFailure)return!0;if(""===e.h||Math.round(i+s-t.height)<=2)return!0;return i+s>e[Po]()[ko].currentContentArea.h;case"rl-row":case"row":return!!e[Po]()[ko].noLayoutFailure||(""===e.h||Math.round(i-t.height)<=2);default:return!0}}const sf=Sl.template.id,rf=/^H(\d+)$/,of=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"]),lf=[[[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[Ro]();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[fo](t);e.value=t}e.value[dl](t)}function*getContainedChildren(e){for(const t of e[Ho]())t instanceof SubformSet?yield*t[Bo]():yield t}function isRequired(e){return"error"===e.validate?.nullTest}function setTabIndex(e){for(;e;){if(!e.traversal){e[gl]=e[No]()[gl];return}if(e[gl])return;let t=null;for(const n of e.traversal[Ho]())if("next"===n.operation){t=n;break}if(!t||!t.ref){e[gl]=e[No]()[gl];return}const n=e[Po]();e[gl]=++n[gl];const a=n[ul](t.ref,e);if(!a)return;e=a[0]}}function applyAssist(e,t){const n=e.assist;if(n){const e=n[jl]();e&&(t.title=e);const a=n.role.match(rf);if(a){const e="heading",n=a[1];t.role=e;t["aria-level"]=n}}if("table"===e.layout)t.role="table";else if("row"===e.layout)t.role="row";else{const n=e[No]();"row"===n.layout&&(t.role="TH"===n.assist?.role?"columnheader":"cell")}}function ariaLabel(e){if(!e.assist)return null;const t=e.assist;return t.speak&&""!==t.speak[bo]?t.speak[bo]:t.toolTip?t.toolTip[bo]: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[Po]();if(null===t[ko].firstUnsplittable){t[ko].firstUnsplittable=e;t[ko].noLayoutFailure=!0}}function unsetFirstUnsplittable(e){const t=e[Po]();t[ko].firstUnsplittable===e&&(t[ko].noLayoutFailure=!1)}function handleBreak(e){if(e[ko])return!1;e[ko]=Object.create(null);if("auto"===e.targetType)return!1;const t=e[Po]();let n=null;if(e.target){n=t[ul](e.target,e[No]());if(!n)return!1;n=n[0]}const{currentPageArea:a,currentContentArea:s}=t[ko];if("pageArea"===e.targetType){n instanceof PageArea||(n=null);if(e.startNew){e[ko].target=n||a;return!0}if(n&&n!==a){e[ko].target=n;return!0}return!1}n instanceof ContentArea||(n=null);const r=n&&n[No]();let i,o=r;if(e.startNew)if(n){const e=r.contentArea.children,t=e.indexOf(s),a=e.indexOf(n);-1!==t&&te;a[ko].noLayoutFailure=!0;const i=t[jl](n);e[lo](i.html,i.bbox);a[ko].noLayoutFailure=s;t[Mo]=r}class AppearanceFilter extends StringObject{constructor(e){super(sf,"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(sf,"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}[jl](){const e=this.edge||new Edge({}),t=e[yl](),n=Object.create(null);"visible"===this.fill?.presence?Object.assign(n,this.fill[yl]()):n.fill="transparent";n.strokeWidth=measureToString("visible"===e.presence?e.thickness:0);n.stroke=t.color;let a;const s={xmlns:r,style:{width:"100%",height:"100%",overflow:"visible"}};if(360===this.sweepAngle)a={name:"ellipse",attributes:{xmlns:r,cx:"50%",cy:"50%",rx:"50%",ry:"50%",style:n}};else{const e=this.startAngle*Math.PI/180,t=this.sweepAngle*Math.PI/180,i=this.sweepAngle>180?1:0,[o,l,f,c]=[50*(1+Math.cos(e)),50*(1-Math.sin(e)),50*(1+Math.cos(e+t)),50*(1-Math.sin(e+t))];a={name:"path",attributes:{xmlns:r,d:`M ${o} ${l} A 50 50 0 ${i} 0 ${f} ${c}`,vectorEffect:"non-scaling-stroke",style:n}};Object.assign(s,{viewBox:"0 0 100 100",preserveAspectRatio:"none"})}const i={name:"svg",children:[a],attributes:s};if(hasMargin(this[No]()[No]()))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 Area extends XFAObject{constructor(e){super(sf,"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}*[Bo](){yield*getContainedChildren(this)}[Jo](){return!0}[Xo](){return!0}[lo](e,t){const[n,a,s,r]=t;this[ko].width=Math.max(this[ko].width,n+s);this[ko].height=Math.max(this[ko].height,a+r);this[ko].children.push(e)}[Ao](){return this[ko].availableSpace}[jl](e){const t=toStyle(this,"position"),n={style:t,id:this[ql],class:["xfaArea"]};isPrintOnly(this)&&n.class.push("xfaPrintOnly");this.name&&(n.xfaName=this.name);const a=[];this[ko]={children:a,width:0,height:0,availableSpace:e};const s=this[co]({filter:new Set(["area","draw","field","exclGroup","subform","subformSet"]),include:!0});if(!s.success){if(s.isBreak())return s;delete this[ko];return HTMLResult.FAILURE}t.width=measureToString(this[ko].width);t.height=measureToString(this[ko].height);const r={name:"div",attributes:n,children:a},i=[this.x,this.y,this[ko].width,this[ko].height];delete this[ko];return HTMLResult.success(r,i)}}class Assist extends XFAObject{constructor(e){super(sf,"assist",!0);this.id=e.id||"";this.role=e.role||"";this.use=e.use||"";this.usehref=e.usehref||"";this.speak=null;this.toolTip=null}[jl](){return this.toolTip?.[bo]||null}}class Barcode extends XFAObject{constructor(e){super(sf,"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(sf,"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(sf,"bindItems");this.connection=e.connection||"";this.labelRef=e.labelRef||"";this.ref=e.ref||"";this.valueRef=e.valueRef||""}}class Bookend extends XFAObject{constructor(e){super(sf,"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(sf,"boolean");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}[jl](e){return valueToHtml(1===this[bo]?"1":"0")}}class Border extends XFAObject{constructor(e){super(sf,"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}[Ro](){if(!this[ko]){const e=this.edge.children.slice();if(e.length<4){const t=e.at(-1)||new Edge({});for(let n=e.length;n<4;n++)e.push(t)}const t=e.map(e=>e.thickness),n=[0,0,0,0];if(this.margin){n[0]=this.margin.topInset;n[1]=this.margin.rightInset;n[2]=this.margin.bottomInset;n[3]=this.margin.leftInset}this[ko]={widths:t,insets:n,edges:e}}return this[ko]}[yl](){const{edges:e}=this[Ro](),t=e.map(e=>{const t=e[yl]();t.color||="#000000";return t}),n=Object.create(null);this.margin&&Object.assign(n,this.margin[yl]());"visible"===this.fill?.presence&&Object.assign(n,this.fill[yl]());if(this.corner.children.some(e=>0!==e.radius)){const e=this.corner.children.map(e=>e[yl]());if(2===e.length||3===e.length){const t=e.at(-1);for(let n=e.length;n<4;n++)e.push(t)}n.borderRadius=e.map(e=>e.radius).join(" ")}switch(this.presence){case"invisible":case"hidden":n.borderStyle="";break;case"inactive":n.borderStyle="none";break;default:n.borderStyle=t.map(e=>e.style).join(" ")}n.borderWidth=t.map(e=>e.width).join(" ");n.borderColor=t.map(e=>e.color).join(" ");return n}}class Break extends XFAObject{constructor(e){super(sf,"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(sf,"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(sf,"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}[jl](e){this[ko]={};return HTMLResult.FAILURE}}class Button extends XFAObject{constructor(e){super(sf,"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}[jl](e){const t=this[No]()[No](),n={name:"button",attributes:{id:this[ql],class:["xfaButton"],style:{}},children:[]};for(const e of t.event.children){if("click"!==e.activity||!e.script)continue;const t=recoverJsURL(e.script[bo]);if(!t)continue;const a=fixURL(t.url);a&&n.children.push({name:"a",attributes:{id:"link"+this[ql],href:a,newWindow:t.newWindow,class:["xfaLink"],style:{}},children:[]})}return HTMLResult.success(n)}}class Calculate extends XFAObject{constructor(e){super(sf,"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(sf,"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}[dl](e){_setValue(this,e)}[Ro](e){if(!this[ko]){let{width:t,height:n}=e;switch(this.placement){case"left":case"right":case"inline":t=this.reserve<=0?t:this.reserve;break;case"top":case"bottom":n=this.reserve<=0?n:this.reserve}this[ko]=layoutNode(this,{width:t,height:n})}return this[ko]}[jl](e){if(!this.value)return HTMLResult.EMPTY;this[ll]();const t=this.value[jl](e).html;if(!t){this[ol]();return HTMLResult.EMPTY}const n=this.reserve;if(this.reserve<=0){const{w:t,h:n}=this[Ro](e);switch(this.placement){case"left":case"right":case"inline":this.reserve=t;break;case"top":case"bottom":this.reserve=n}}const a=[];"string"==typeof t?a.push({name:"#text",value:t}):a.push(t);const s=toStyle(this,"font","margin","visibility");switch(this.placement){case"left":case"right":this.reserve>0&&(s.width=measureToString(this.reserve));break;case"top":case"bottom":this.reserve>0&&(s.height=measureToString(this.reserve))}setPara(this,null,t);this[ol]();this.reserve=n;return HTMLResult.success({name:"div",attributes:{style:s,class:["xfaCaption"]},children:a})}}class Certificate extends StringObject{constructor(e){super(sf,"certificate");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}}class Certificates extends XFAObject{constructor(e){super(sf,"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(sf,"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}[jl](e){const t=toStyle(this,"margin"),n=measureToString(this.size);t.width=t.height=n;let a,s,r;const i=this[No]()[No](),o=i.items.children.length&&i.items.children[0][jl]().html||[],l={on:(void 0!==o[0]?o[0]:"on").toString(),off:(void 0!==o[1]?o[1]:"off").toString()},f=(i.value?.[bl]()||"off")===l.on||void 0,c=i[Mo](),h=i[ql];let u;if(c instanceof ExclGroup){r=c[ql];a="radio";s="xfaRadio";u=c[wo]?.[ql]||c[ql]}else{a="checkbox";s="xfaCheckbox";u=i[wo]?.[ql]||i[ql]}const m={name:"input",attributes:{class:[s],style:t,fieldId:h,dataId:u,type:a,checked:f,xfaOn:l.on,xfaOff:l.off,"aria-label":ariaLabel(i),"aria-required":!1}};r&&(m.attributes.name=r);if(isRequired(i)){m.attributes["aria-required"]=!0;m.attributes.required=!0}return HTMLResult.success({name:"label",attributes:{class:["xfaLabel"]},children:[m]})}}class ChoiceList extends XFAObject{constructor(e){super(sf,"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}[jl](e){const t=toStyle(this,"border","margin"),n=this[No]()[No](),a={fontSize:`calc(${n.font?.size||10}px * var(--total-scale-factor))`},s=[];if(n.items.children.length>0){const e=n.items;let t=0,r=0;if(2===e.children.length){t=e.children[0].save;r=1-t}const i=e.children[t][jl]().html,o=e.children[r][jl]().html;let l=!1;const f=n.value?.[bl]()||"";for(let e=0,t=i.length;e{e=parseInt(e.trim(),10);return isNaN(e)?0:MathClamp(e,0,255)});if(r.length<3)return{r:n,g:a,b:s};[n,a,s]=r;return{r:n,g:a,b:s}}(e.value):"";this.extras=null}[_o](){return!1}[yl](){return this.value?Util.makeHexColor(this.value.r,this.value.g,this.value.b):null}}class Comb extends XFAObject{constructor(e){super(sf,"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(sf,"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(sf,"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}[jl](e){const t={left:measureToString(this.x),top:measureToString(this.y),width:measureToString(this.w),height:measureToString(this.h)},n=["xfaContentarea"];isPrintOnly(this)&&n.push("xfaPrintOnly");return HTMLResult.success({name:"div",children:[],attributes:{style:t,class:n,id:this[ql]}})}}class Corner extends XFAObject{constructor(e){super(sf,"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}[yl](){const e=toStyle(this,"visibility");e.radius=measureToString("square"===this.join?0:this.radius);return e}}class DateElement extends ContentObject{constructor(e){super(sf,"date");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}[yo](){const e=this[bo].trim();this[bo]=e?new Date(e):null}[jl](e){return valueToHtml(this[bo]?this[bo].toString():"")}}class DateTime extends ContentObject{constructor(e){super(sf,"dateTime");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}[yo](){const e=this[bo].trim();this[bo]=e?new Date(e):null}[jl](e){return valueToHtml(this[bo]?this[bo].toString():"")}}class DateTimeEdit extends XFAObject{constructor(e){super(sf,"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}[jl](e){const t=toStyle(this,"border","font","margin"),n=this[No]()[No](),a={name:"input",attributes:{type:"text",fieldId:n[ql],dataId:n[wo]?.[ql]||n[ql],class:["xfaTextfield"],style:t,"aria-label":ariaLabel(n),"aria-required":!1}};if(isRequired(n)){a.attributes["aria-required"]=!0;a.attributes.required=!0}return HTMLResult.success({name:"label",attributes:{class:["xfaLabel"]},children:[a]})}}class Decimal extends ContentObject{constructor(e){super(sf,"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||""}[yo](){const e=parseFloat(this[bo].trim());this[bo]=isNaN(e)?null:e}[jl](e){return valueToHtml(null!==this[bo]?this[bo].toString():"")}}class DefaultUi extends XFAObject{constructor(e){super(sf,"defaultUi",!0);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null}}class Desc extends XFAObject{constructor(e){super(sf,"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(sf,"digestMethod",["","SHA1","SHA256","SHA512","RIPEMD160"]);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||""}}class DigestMethods extends XFAObject{constructor(e){super(sf,"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(sf,"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}[dl](e){_setValue(this,e)}[jl](e){setTabIndex(this);if("hidden"===this.presence||"inactive"===this.presence)return HTMLResult.EMPTY;fixDimensions(this);this[ll]();const t=this.w,n=this.h,{w:a,h:s,isBroken:r}=layoutNode(this,e);if(a&&""===this.w){if(r&&this[Mo]()[Yo]()){this[ol]();return HTMLResult.FAILURE}this.w=a}s&&""===this.h&&(this.h=s);setFirstUnsplittable(this);if(!checkDimensions(this,e)){this.w=t;this.h=n;this[ol]();return HTMLResult.FAILURE}unsetFirstUnsplittable(this);const i=toStyle(this,"font","hAlign","dimensions","position","presence","rotate","anchorType","border","margin");setMinMaxDimensions(this,i);if(i.margin){i.padding=i.margin;delete i.margin}const o=["xfaDraw"];this.font&&o.push("xfaFont");isPrintOnly(this)&&o.push("xfaPrintOnly");const l={style:i,id:this[ql],class:o};this.name&&(l.xfaName=this.name);const f={name:"div",attributes:l,children:[]};applyAssist(this,l);const c=computeBbox(this,f,e),h=this.value?this.value[jl](e).html:null;if(null===h){this.w=t;this.h=n;this[ol]();return HTMLResult.success(createWrapper(this,f),c)}f.children.push(h);setPara(this,i,h);this.w=t;this.h=n;this[ol]();return HTMLResult.success(createWrapper(this,f),c)}}class Edge extends XFAObject{constructor(e){super(sf,"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}[yl](){const e=toStyle(this,"visibility");Object.assign(e,{linecap:this.cap,width:measureToString(this.thickness),color:this.color?this.color[yl]():"#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(sf,"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(sf,"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(sf,"encrypt",!0);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.certificate=null}}class EncryptData extends XFAObject{constructor(e){super(sf,"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(sf,"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(sf,"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(sf,"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(sf,"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(sf,"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||""}[Wo](){return"text/html"===this.contentType}[al](e){if("text/html"===this.contentType&&e[el]===Sl.xhtml.id){this[bo]=e;return!0}if("text/xml"===this.contentType){this[bo]=e;return!0}return!1}[jl](e){return"text/html"===this.contentType&&this[bo]?this[bo][jl](e):HTMLResult.EMPTY}}class ExObject extends XFAObject{constructor(e){super(sf,"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(sf,"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}[Xo](){return!0}[_o](){return!0}[dl](e){for(const t of this.field.children){if(!t.value){const e=new Value({});t[fo](e);t.value=e}t.value[dl](e)}}[Yo](){return this.layout.endsWith("-tb")&&0===this[ko].attempt&&this[ko].numberInLine>0||this[No]()[Yo]()}[$o](){const e=this[Mo]();if(!e[$o]())return!1;if(void 0!==this[ko]._isSplittable)return this[ko]._isSplittable;if("position"===this.layout||this.layout.includes("row")){this[ko]._isSplittable=!1;return!1}if(e.layout?.endsWith("-tb")&&0!==e[ko].numberInLine)return!1;this[ko]._isSplittable=!0;return!0}[qo](){return flushHTML(this)}[lo](e,t){addHTML(this,e,t)}[Ao](){return getAvailableSpace(this)}[jl](e){setTabIndex(this);if("hidden"===this.presence||"inactive"===this.presence||0===this.h||0===this.w)return HTMLResult.EMPTY;fixDimensions(this);const t=[],n={id:this[ql],class:[]};setAccess(this,n.class);this[ko]||=Object.create(null);Object.assign(this[ko],{children:t,attributes:n,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 a=this[$o]();a||setFirstUnsplittable(this);if(!checkDimensions(this,e))return HTMLResult.FAILURE;const s=new Set(["field"]);if(this.layout.includes("row")){const e=this[Mo]().columnWidths;if(Array.isArray(e)&&e.length>0){this[ko].columnWidths=e;this[ko].currentColumn=0}}const r=toStyle(this,"anchorType","dimensions","position","presence","border","margin","hAlign"),i=["xfaExclgroup"],o=layoutClass(this);o&&i.push(o);isPrintOnly(this)&&i.push("xfaPrintOnly");n.style=r;n.class=i;this.name&&(n.xfaName=this.name);this[ll]();const l="lr-tb"===this.layout||"rl-tb"===this.layout,f=l?2:1;for(;this[ko].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}[Xo](){return!0}[dl](e){_setValue(this,e)}[jl](e){setTabIndex(this);if(!this.ui){this.ui=new Ui({});this.ui[Eo]=this[Eo];this[fo](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[fo](e)}if(!this.ui||"hidden"===this.presence||"inactive"===this.presence||0===this.h||0===this.w)return HTMLResult.EMPTY;this.caption&&delete this.caption[ko];this[ll]();const t=this.caption?this.caption[jl](e).html:null,n=this.w,a=this.h;let s=0,r=0;if(this.margin){s=this.margin.leftInset+this.margin.rightInset;r=this.margin.topInset+this.margin.bottomInset}let i=null;if(""===this.w||""===this.h){let t=null,n=null,a=0,o=0;if(this.ui.checkButton)a=o=this.ui.checkButton.size;else{const{w:t,h:n}=layoutNode(this,e);if(null!==t){a=t;o=n}else o=function fonts_getMetrics(e,t=!1){let n=null;if(e){const t=stripQuotes(e.typeface),a=e[Eo].fontFinder.find(t);n=selectFont(e,a)}if(!n)return{lineHeight:12,lineGap:2,lineNoGap:10};const a=e.size||10,s=n.lineHeight?Math.max(t?0:1.2,n.lineHeight):1.2,r=void 0===n.lineGap?.2:n.lineGap;return{lineHeight:s*a,lineGap:r*a,lineNoGap:Math.max(1,s-r)*a}}(this.font,!0).lineNoGap}i=getBorderDims(this.ui[Ro]());a+=i.w;o+=i.h;if(this.caption){const{w:s,h:r,isBroken:i}=this.caption[Ro](e);if(i&&this[Mo]()[Yo]()){this[ol]();return HTMLResult.FAILURE}t=s;n=r;switch(this.caption.placement){case"left":case"right":case"inline":t+=a;break;case"top":case"bottom":n+=o}}else{t=a;n=o}if(t&&""===this.w){t+=s;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(sf,"float");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}[yo](){const e=parseFloat(this[bo].trim());this[bo]=isNaN(e)?null:e}[jl](e){return valueToHtml(null!==this[bo]?this[bo].toString():"")}}class template_Font extends XFAObject{constructor(e){super(sf,"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}[ho](e){super[ho](e);this[Eo].usedTypefaces.add(this.typeface)}[yl](){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[Eo].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(sf,"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(sf,"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(sf,"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(sf,"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||""}[jl](){if(this.contentType&&!of.has(this.contentType.toLowerCase()))return HTMLResult.EMPTY;let e=this[Eo].images?.get(this.href);if(!e&&(this.href||!this[bo]))return HTMLResult.EMPTY;e||"base64"!==this.transferEncoding||(e=Uint8Array.fromBase64(this[bo]));if(!e)return HTMLResult.EMPTY;if(!this.contentType){for(const[t,n]of lf)if(e.length>t.length&&t.every((t,n)=>t===e[n])){this.contentType=n;break}if(!this.contentType)return HTMLResult.EMPTY}const t=new Blob([e],{type:this.contentType});let n;switch(this.aspect){case"fit":case"actual":break;case"height":n={height:"100%",objectFit:"fill"};break;case"none":n={width:"100%",height:"100%",objectFit:"fill"};break;case"width":n={width:"100%",objectFit:"fill"}}const a=this[No]();return HTMLResult.success({name:"img",attributes:{class:["xfaImage"],style:n,src:URL.createObjectURL(t),alt:a?ariaLabel(a[No]()):null}})}}class ImageEdit extends XFAObject{constructor(e){super(sf,"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}[jl](e){return"embed"===this.data?HTMLResult.success({name:"div",children:[],attributes:{}}):HTMLResult.EMPTY}}class Integer extends ContentObject{constructor(e){super(sf,"integer");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}[yo](){const e=parseInt(this[bo].trim(),10);this[bo]=isNaN(e)?null:e}[jl](e){return valueToHtml(null!==this[bo]?this[bo].toString():"")}}class Issuers extends XFAObject{constructor(e){super(sf,"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(sf,"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}[jl](){const e=[];for(const t of this[Ho]())e.push(t[bl]());return HTMLResult.success(e)}}class Keep extends XFAObject{constructor(e){super(sf,"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(sf,"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(sf,"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}[jl](){const e=this[No]()[No](),t=this.edge||new Edge({}),n=t[yl](),a=Object.create(null),s="visible"===t.presence?t.thickness:0;a.strokeWidth=measureToString(s);a.stroke=n.color;let i,o,l,f,c="100%",h="100%";if(e.w<=s){[i,o,l,f]=["50%",0,"50%","100%"];c=a.strokeWidth}else if(e.h<=s){[i,o,l,f]=[0,"50%","100%","50%"];h=a.strokeWidth}else"\\"===this.slope?[i,o,l,f]=[0,0,"100%","100%"]:[i,o,l,f]=[0,"100%","100%",0];const u={name:"svg",children:[{name:"line",attributes:{xmlns:r,x1:i,y1:o,x2:l,y2:f,style:a}}],attributes:{xmlns:r,width:c,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(sf,"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}[yl](e){e=e?e[yl]():"#FFFFFF";return`linear-gradient(${this.type.replace(/([RBLT])/," $1").toLowerCase()}, ${e}, ${this.color?this.color[yl]():"#000000"})`}}class LockDocument extends ContentObject{constructor(e){super(sf,"lockDocument");this.id=e.id||"";this.type=getStringOption(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||""}[yo](){this[bo]=getStringOption(this[bo],["auto","0","1"])}}class Manifest extends XFAObject{constructor(e){super(sf,"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(sf,"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}[yl](){return{margin:measureToString(this.topInset)+" "+measureToString(this.rightInset)+" "+measureToString(this.bottomInset)+" "+measureToString(this.leftInset)}}}class Mdp extends XFAObject{constructor(e){super(sf,"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(sf,"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 n=e.split(",",4).map(e=>getMeasurement(e.trim(),"-1"));if(n.length<4||n[2]<0||n[3]<0)return{x:t,y:t,width:t,height:t};const[a,s,r,i]=n;return{x:a,y:s,width:r,height:i}}(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(sf,"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(sf,"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}[jl](e){const t=toStyle(this,"border","font","margin"),n=this[No]()[No](),a={name:"input",attributes:{type:"text",fieldId:n[ql],dataId:n[wo]?.[ql]||n[ql],class:["xfaTextfield"],style:t,"aria-label":ariaLabel(n),"aria-required":!1}};if(isRequired(n)){a.attributes["aria-required"]=!0;a.attributes.required=!0}return HTMLResult.success({name:"label",attributes:{class:["xfaLabel"]},children:[a]})}}class Occur extends XFAObject{constructor(e){super(sf,"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}[ho](){const e=this[No](),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}[Qo](){if(!this[ko]){this[ko]={numberOfUse:0};return!0}return!this.occur||-1===this.occur.max||this[ko].numberOfUsee.oddOrEven===t&&e.pagePosition===n);if(a)return a;a=this.pageArea.children.find(e=>"any"===e.oddOrEven&&e.pagePosition===n);if(a)return a;a=this.pageArea.children.find(e=>"any"===e.oddOrEven&&"any"===e.pagePosition);return a||this.pageArea.children[0]}}class Para extends XFAObject{constructor(e){super(sf,"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}[yl](){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[yl]());return e}}class PasswordEdit extends XFAObject{constructor(e){super(sf,"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(sf,"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}[yl](e){e=e?e[yl]():"#FFFFFF";const t=this.color?this.color[yl]():"#000000",n="repeating-linear-gradient",a=`${e},${e} 5px,${t} 5px,${t} 10px`;switch(this.type){case"crossHatch":return`${n}(to top,${a}) ${n}(to right,${a})`;case"crossDiagonal":return`${n}(45deg,${a}) ${n}(-45deg,${a})`;case"diagonalLeft":return`${n}(45deg,${a})`;case"diagonalRight":return`${n}(-45deg,${a})`;case"horizontal":return`${n}(to top,${a})`;case"vertical":return`${n}(to right,${a})`}return""}}class Picture extends StringObject{constructor(e){super(sf,"picture");this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||""}}class Proto extends XFAObject{constructor(e){super(sf,"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(sf,"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}[yl](e){e=e?e[yl]():"#FFFFFF";const t=this.color?this.color[yl]():"#000000";return`radial-gradient(circle at center, ${"toEdge"===this.type?`${e},${t}`:`${t},${e}`})`}}class Reason extends StringObject{constructor(e){super(sf,"reason");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}}class Reasons extends XFAObject{constructor(e){super(sf,"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(sf,"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}[jl](){const e=this.edge.children.length?this.edge.children[0]:new Edge({}),t=e[yl](),n=Object.create(null);"visible"===this.fill?.presence?Object.assign(n,this.fill[yl]()):n.fill="transparent";n.strokeWidth=measureToString("visible"===e.presence?e.thickness:0);n.stroke=t.color;const a=(this.corner.children.length?this.corner.children[0]:new Corner({}))[yl](),s={name:"svg",children:[{name:"rect",attributes:{xmlns:r,width:"100%",height:"100%",x:0,y:0,rx:a.radius,ry:a.radius,style:n}}],attributes:{xmlns:r,style:{overflow:"visible"},width:"100%",height:"100%"}};if(hasMargin(this[No]()[No]()))return HTMLResult.success({name:"div",attributes:{style:{display:"inline",width:"100%",height:"100%"}},children:[s]});s.attributes.style.position="absolute";return HTMLResult.success(s)}}class RefElement extends StringObject{constructor(e){super(sf,"ref");this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||""}}class Script extends StringObject{constructor(e){super(sf,"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(sf,"setProperty");this.connection=e.connection||"";this.ref=e.ref||"";this.target=e.target||""}}class SignData extends XFAObject{constructor(e){super(sf,"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(sf,"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(sf,"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(sf,"solid",!0);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null}[yl](e){return e?e[yl]():"#FFFFFF"}}class Speak extends StringObject{constructor(e){super(sf,"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(sf,"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}[yl](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(sf,"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}[Mo](){const e=this[No]();return e instanceof SubformSet?e[Mo]():e}[Xo](){return!0}[Yo](){return this.layout.endsWith("-tb")&&0===this[ko].attempt&&this[ko].numberInLine>0||this[No]()[Yo]()}*[Bo](){yield*getContainedChildren(this)}[qo](){return flushHTML(this)}[lo](e,t){addHTML(this,e,t)}[Ao](){return getAvailableSpace(this)}[$o](){const e=this[Mo]();if(!e[$o]())return!1;if(void 0!==this[ko]._isSplittable)return this[ko]._isSplittable;if("position"===this.layout||this.layout.includes("row")){this[ko]._isSplittable=!1;return!1}if(this.keep&&"none"!==this.keep.intact){this[ko]._isSplittable=!1;return!1}if(e.layout?.endsWith("-tb")&&0!==e[ko].numberInLine)return!1;this[ko]._isSplittable=!0;return!0}[jl](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[Eo]=this[Eo];this[fo](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[Eo]=this[Eo];this[fo](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[Eo]=this[Eo];this[fo](e);this.overflow.push(e)}this[fl](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[ko]?.afterBreakAfter)return HTMLResult.EMPTY;fixDimensions(this);const t=[],n={id:this[ql],class:[]};setAccess(this,n.class);this[ko]||=Object.create(null);Object.assign(this[ko],{children:t,line:null,attributes:n,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 a=this[Po](),s=a[ko].noLayoutFailure,r=this[$o]();r||setFirstUnsplittable(this);if(!checkDimensions(this,e))return HTMLResult.FAILURE;const i=new Set(["area","draw","exclGroup","field","subform","subformSet"]);if(this.layout.includes("row")){const e=this[Mo]().columnWidths;if(Array.isArray(e)&&e.length>0){this[ko].columnWidths=e;this[ko].currentColumn=0}}const o=toStyle(this,"anchorType","dimensions","position","presence","border","margin","hAlign"),l=["xfaSubform"],f=layoutClass(this);f&&l.push(f);n.style=o;n.class=l;this.name&&(n.xfaName=this.name);if(this.overflow){const t=this.overflow[Ro]();if(t.addLeader){t.addLeader=!1;handleOverflow(this,t.leader,e)}}this[ll]();const c="lr-tb"===this.layout||"rl-tb"===this.layout,h=c?2:1;for(;this[ko].attempt=1){const e=this.breakAfter.children[0];if(handleBreak(e)){this[ko].afterBreakAfter=w;return HTMLResult.breakNode(e)}}delete this[ko];return w}}class SubformSet extends XFAObject{constructor(e){super(sf,"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}*[Bo](){yield*getContainedChildren(this)}[Mo](){let e=this[No]();for(;!(e instanceof Subform);)e=e[No]();return e}[Xo](){return!0}}class SubjectDN extends ContentObject{constructor(e){super(sf,"subjectDN");this.delimiter=e.delimiter||",";this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}[yo](){this[bo]=new Map(this[bo].split(this.delimiter).map(e=>{(e=e.split("=",2))[0]=e[0].trim();return e}))}}class SubjectDNs extends XFAObject{constructor(e){super(sf,"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(sf,"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(sf,"template",!0);this.baseProfile=getStringOption(e.baseProfile,["full","interactiveForms"]);this.extras=null;this.subform=new XFAObjectArray}[yo](){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[gl]=5e3}[$o](){return!0}[ul](e,t){return e.startsWith("#")?[this[zo].get(e.slice(1))]:searchNode(this,t,e,!0,!0)}*[wl](){if(!this.subform.children.length)return HTMLResult.success({name:"div",children:[]});this[ko]={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[uo]();const t=e.pageSet.pageArea.children,n={name:"div",children:[]};let a=null,s=null,r=null;if(e.breakBefore.children.length>=1){s=e.breakBefore.children[0];r=s.target}else if(e.subform.children.length>=1&&e.subform.children[0].breakBefore.children.length>=1){s=e.subform.children[0].breakBefore.children[0];r=s.target}else if(e.break?.beforeTarget){s=e.break;r=s.beforeTarget}else if(e.subform.children.length>=1&&e.subform.children[0].break?.beforeTarget){s=e.subform.children[0].break;r=s.beforeTarget}if(s){const e=this[ul](r,s[No]());if(e instanceof PageArea){a=e;s[ko]={}}}a||=t[0];a[ko]={numberOfUse:1};const i=a[No]();i[ko]={numberOfUse:1,pageIndex:i.pageArea.children.indexOf(a),pageSetIndex:0};let o,l=null,f=null,c=!0,h=0,u=0;for(;;){if(c)h=0;else{n.children.pop();if(3===++h){warn("XFA - Something goes wrong: please file a bug.");return n}}o=null;this[ko].currentPageArea=a;const t=a[jl]().html;n.children.push(t);if(l){this[ko].noLayoutFailure=!0;t.children.push(l[jl](a[ko].space).html);l=null}if(f){this[ko].noLayoutFailure=!0;t.children.push(f[jl](a[ko].space).html);f=null}const s=a.contentArea.children,r=t.children.filter(e=>e.attributes.class.includes("xfaContentarea"));c=!1;this[ko].firstUnsplittable=null;this[ko].noLayoutFailure=!1;const flush=t=>{const n=e[qo]();if(n){c||=n.children?.length>0;r[t].children.push(n)}};for(let t=u,a=s.length;t0;r[t].children.push(h.html)}else!c&&n.children.length>1&&n.children.pop();return n}if(h.isBreak()){const e=h.breakNode;flush(t);if("auto"===e.targetType)continue;if(e.leader){l=this[ul](e.leader,e[No]());l=l?l[0]:null}if(e.trailer){f=this[ul](e.trailer,e[No]());f=f?f[0]:null}if("pageArea"===e.targetType){o=e[ko].target;t=1/0}else if(e[ko].target){o=e[ko].target;u=e[ko].index+1;t=1/0}else t=e[ko].index;continue}if(this[ko].overflowNode){const e=this[ko].overflowNode;this[ko].overflowNode=null;const n=e[Ro](),a=n.target;n.addLeader=null!==n.leader;n.addTrailer=null!==n.trailer;flush(t);const r=t;t=1/0;if(a instanceof PageArea)o=a;else if(a instanceof ContentArea){const e=s.indexOf(a);if(-1!==e)e>r?t=e-1:u=e;else{o=a[No]();u=o.contentArea.children.indexOf(a)}}continue}flush(t)}this[ko].pageNumber+=1;o&&(o[Qo]()?o[ko].numberOfUse+=1:o=null);a=o||a[Do]();yield null}}}class Text extends ContentObject{constructor(e){super(sf,"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||""}[oo](){return!0}[al](e){if(e[el]===Sl.xhtml.id){this[bo]=e;return!0}warn(`XFA - Invalid content in Text: ${e[tl]}.`);return!1}[rl](e){this[bo]instanceof XFAObject||super[rl](e)}[yo](){"string"==typeof this[bo]&&(this[bo]=this[bo].replaceAll("\r\n","\n"))}[Ro](){return"string"==typeof this[bo]?this[bo].split(/[\u2029\u2028\n]/).filter(Boolean).join("\n"):this[bo][bl]()}[jl](e){if("string"==typeof this[bo]){const e=valueToHtml(this[bo]).html;if(this[bo].includes("\u2029")){e.name="div";e.children=[];this[bo].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[bo])){e.name="div";e.children=[];this[bo].split(/[\u2028\n]/).forEach(t=>{e.children.push({name:"span",value:t},{name:"br"})})}return HTMLResult.success(e)}return this[bo][jl](e)}}class TextEdit extends XFAObject{constructor(e){super(sf,"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}[jl](e){const t=toStyle(this,"border","font","margin");let n;const a=this[No]()[No]();""===this.multiLine&&(this.multiLine=a instanceof Draw?1:0);n=1===this.multiLine?{name:"textarea",attributes:{dataId:a[wo]?.[ql]||a[ql],fieldId:a[ql],class:["xfaTextfield"],style:t,"aria-label":ariaLabel(a),"aria-required":!1}}:{name:"input",attributes:{type:"text",dataId:a[wo]?.[ql]||a[ql],fieldId:a[ql],class:["xfaTextfield"],style:t,"aria-label":ariaLabel(a),"aria-required":!1}};if(isRequired(a)){n.attributes["aria-required"]=!0;n.attributes.required=!0}return HTMLResult.success({name:"label",attributes:{class:["xfaLabel"]},children:[n]})}}class Time extends StringObject{constructor(e){super(sf,"time");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}[yo](){const e=this[bo].trim();this[bo]=e?new Date(e):null}[jl](e){return valueToHtml(this[bo]?this[bo].toString():"")}}class TimeStamp extends XFAObject{constructor(e){super(sf,"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(sf,"toolTip");this.id=e.id||"";this.rid=e.rid||"";this.use=e.use||"";this.usehref=e.usehref||""}}class Traversal extends XFAObject{constructor(e){super(sf,"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(sf,"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}[Jo](){return!1}}class Ui extends XFAObject{constructor(e){super(sf,"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}[Ro](){if(void 0===this[ko]){for(const e of Object.getOwnPropertyNames(this)){if("extras"===e||"picture"===e)continue;const t=this[e];if(t instanceof XFAObject){this[ko]=t;return t}}this[ko]=null}return this[ko]}[jl](e){const t=this[Ro]();return t?t[jl](e):HTMLResult.EMPTY}}class Validate extends XFAObject{constructor(e){super(sf,"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(sf,"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}[dl](e){const t=this[No]();if(t instanceof Field&&t.ui?.imageEdit){if(!this.image){this.image=new Image({});this[fo](this.image)}this.image[bo]=e[bo];return}const n=e[tl];if(null===this[n]){for(const e of Object.getOwnPropertyNames(this)){const t=this[e];if(t instanceof XFAObject){this[e]=null;this[fl](t)}}this[e[tl]]=e;this[fo](e)}else this[n][bo]=e[bo]}[bl](){if(this.exData)return"string"==typeof this.exData[bo]?this.exData[bo].trim():this.exData[bo][bl]().trim();for(const e of Object.getOwnPropertyNames(this)){if("image"===e)continue;const t=this[e];if(t instanceof XFAObject)return(t[bo]||"").toString().trim()}return null}[jl](e){for(const t of Object.getOwnPropertyNames(this)){const n=this[t];if(n instanceof XFAObject)return n[jl](e)}return HTMLResult.EMPTY}}class Variables extends XFAObject{constructor(e){super(sf,"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}[Jo](){return!0}}class TemplateNamespace{static[vl](e,t){if(Object.hasOwn(TemplateNamespace,e)){const n=TemplateNamespace[e](t);n[pl](t);return n}}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 ff=Sl.datasets.id;function createText(e){const t=new Text({});t[bo]=e;return t}class Binder{constructor(e){this.root=e;this.datasets=e.datasets;this.data=e.datasets?.data||new XmlObject(ff,"data");this.emptyMerge=0===this.data[Ho]().length;this.root.form=this.form=e.template[po]()}_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,n){e[wo]=t;if(e[_o]())if(t[Ko]()){const n=t[Fo]();e[dl](createText(n))}else if(e instanceof Field&&"multiSelect"===e.ui?.choiceList?.open){const n=t[Ho]().map(e=>e[bo].trim()).join("\n");e[dl](createText(n))}else this._isConsumeData()&&warn("XFA - Nodes haven't the same type.");else!t[Ko]()||this._isMatchTemplate()?this._bindElement(e,t):warn("XFA - Nodes haven't the same type.")}_findDataByNameToConsume(e,t,n,a){if(!e)return null;let s,r;for(let a=0;a<3;a++){s=n[Oo](e,!1,!0);for(;;){r=s.next().value;if(!r)break;if(t===r[Ko]())return r}if(n[el]===ff&&"data"===n[tl])break;n=n[No]()}if(!a)return null;s=this.data[Oo](e,!0,!1);r=s.next().value;if(r)return r;s=this.data[vo](e,!0);r=s.next().value;return r?.[Ko]()?r:null}_setProperties(e,t){if(Object.hasOwn(e,"setProperty"))for(const{ref:n,target:a,connection:s}of e.setProperty.children){if(s)continue;if(!n)continue;const r=searchNode(this.root,t,n,!1,!1);if(!r){warn(`XFA - Invalid reference: ${n}.`);continue}const[i]=r;if(!i[Go](this.data)){warn("XFA - Invalid node: must be a data node.");continue}const o=searchNode(this.root,e,a,!1,!1);if(!o){warn(`XFA - Invalid target: ${a}.`);continue}const[l]=o;if(!l[Go](e)){warn("XFA - Invalid target: must be a property or subproperty.");continue}const f=l[No]();if(l instanceof SetProperty||f instanceof SetProperty){warn("XFA - Invalid target: cannot be a setProperty or one of its properties.");continue}if(l instanceof BindItems||f instanceof BindItems){warn("XFA - Invalid target: cannot be a bindItems or one of its properties.");continue}const c=i[bl](),h=l[tl];if(l instanceof XFAAttribute){const e=Object.create(null);e[h]=c;const t=Reflect.construct(Object.getPrototypeOf(f).constructor,[e]);f[h]=t[h];continue}if(Object.hasOwn(l,bo)){l[wo]=i;l[bo]=c;l[yo]()}else warn("XFA - Invalid node to use in setProperty")}}_bindItems(e,t){if(!Object.hasOwn(e,"items")||!Object.hasOwn(e,"bindItems")||e.bindItems.isEmpty())return;for(const t of e.items.children)e[fl](t);e.items.clear();const n=new Items({}),a=new Items({});e[fo](n);e.items.push(n);e[fo](a);e.items.push(a);for(const{ref:s,labelRef:r,valueRef:i,connection:o}of e.bindItems.children){if(o)continue;if(!s)continue;const e=searchNode(this.root,t,s,!1,!1);if(e)for(const t of e){if(!t[Go](this.datasets)){warn(`XFA - Invalid ref (${s}): must be a datasets child.`);continue}const e=searchNode(this.root,t,r,!0,!1);if(!e){warn(`XFA - Invalid label: ${r}.`);continue}const[o]=e;if(!o[Go](this.datasets)){warn("XFA - Invalid label: must be a datasets child.");continue}const l=searchNode(this.root,t,i,!0,!1);if(!l){warn(`XFA - Invalid value: ${i}.`);continue}const[f]=l;if(!f[Go](this.datasets)){warn("XFA - Invalid value: must be a datasets child.");continue}const c=createText(o[bl]()),h=createText(f[bl]());n[fo](c);n.text.push(c);a[fo](h);a.text.push(h)}else warn(`XFA - Invalid reference: ${s}.`)}}_bindOccurrences(e,t,n){let a;if(t.length>1){a=e[po]();a[fl](a.occur);a.occur=null}this._bindValue(e,t[0],n);this._setProperties(e,t[0]);this._bindItems(e,t[0]);if(1===t.length)return;const s=e[No](),r=e[tl],i=s[Lo](e);for(let e=1,o=t.length;et.name===e.name).length:n[a].children.length;const r=n[Lo](e)+1,i=t.initial-s;if(i){const t=e[po]();t[fl](t.occur);t.occur=null;n[a].push(t);n[Uo](r,t);for(let e=1;e0)this._bindOccurrences(a,[e[0]],null);else if(this.emptyMerge){const e=t[el]===ff?-1:t[el],n=a[wo]=new XmlObject(e,a.name||"root");t[fo](n);this._bindElement(a,n)}continue}if(!a[Xo]())continue;let e=!1,s=null,r=null,i=null;if(a.bind){switch(a.bind.match){case"none":this._setAndBind(a,t);continue;case"global":e=!0;break;case"dataRef":if(!a.bind.ref){warn(`XFA - ref is empty in node ${a[tl]}.`);this._setAndBind(a,t);continue}r=a.bind.ref}a.bind.picture&&(s=a.bind.picture[bo])}const[o,l]=this._getOccurInfo(a);if(r){i=searchNode(this.root,t,r,!0,!1);if(null===i){i=createDataNode(this.data,t,r);if(!i)continue;this._isConsumeData()&&(i[go]=!0);this._setAndBind(a,i);continue}this._isConsumeData()&&(i=i.filter(e=>!e[go]));i.length>l?i=i.slice(0,l):0===i.length&&(i=null);i&&this._isConsumeData()&&i.forEach(e=>{e[go]=!0})}else{if(!a.name){this._setAndBind(a,t);continue}if(this._isConsumeData()){const n=[];for(;n.length0?n:null}else{i=t[Oo](a.name,!1,this.emptyMerge).next().value;if(!i){if(0===o){n.push(a);continue}const e=t[el]===ff?-1:t[el];i=a[wo]=new XmlObject(e,a.name);this.emptyMerge&&(i[go]=!0);t[fo](i);this._setAndBind(a,i);continue}this.emptyMerge&&(i[go]=!0);i=[i]}}i?this._bindOccurrences(a,i,s):o>0?this._setAndBind(a,t):n.push(a)}n.forEach(e=>e[No]()[fl](e))}}class DataHandler{constructor(e,t){this.data=t;this.dataset=e.datasets||null}serialize(e){const t=[[-1,this.data[Ho]()]];for(;t.length>0;){const n=t.at(-1),[a,s]=n;if(a+1===s.length){t.pop();continue}const r=s[++n[0]],i=e.get(r[ql]);if(i)r[dl](i);else{const t=r[So]();for(const n of t.values()){const t=e.get(n[ql]);if(t){n[dl](t);break}}}const o=r[Ho]();o.length>0&&t.push([-1,o])}const n=[''];if(this.dataset)for(const e of this.dataset[Ho]())"data"!==e[tl]&&e[kl](n);this.data[kl](n);n.push("");return n.join("")}}const cf=Sl.config.id;class Acrobat extends XFAObject{constructor(e){super(cf,"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(cf,"acrobat7",!0);this.dynamicRender=null}}class ADBE_JSConsole extends OptionObject{constructor(e){super(cf,"ADBE_JSConsole",["delegate","Enable","Disable"])}}class ADBE_JSDebugger extends OptionObject{constructor(e){super(cf,"ADBE_JSDebugger",["delegate","Enable","Disable"])}}class AddSilentPrint extends Option01{constructor(e){super(cf,"addSilentPrint")}}class AddViewerPreferences extends Option01{constructor(e){super(cf,"addViewerPreferences")}}class AdjustData extends Option10{constructor(e){super(cf,"adjustData")}}class AdobeExtensionLevel extends IntegerObject{constructor(e){super(cf,"adobeExtensionLevel",0,e=>e>=1&&e<=8)}}class Agent extends XFAObject{constructor(e){super(cf,"agent",!0);this.name=e.name?e.name.trim():"";this.common=new XFAObjectArray}}class AlwaysEmbed extends ContentObject{constructor(e){super(cf,"alwaysEmbed")}}class Amd extends StringObject{constructor(e){super(cf,"amd")}}class config_Area extends XFAObject{constructor(e){super(cf,"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(cf,"attributes",["preserve","delegate","ignore"])}}class AutoSave extends OptionObject{constructor(e){super(cf,"autoSave",["disabled","enabled"])}}class Base extends StringObject{constructor(e){super(cf,"base")}}class BatchOutput extends XFAObject{constructor(e){super(cf,"batchOutput");this.format=getStringOption(e.format,["none","concat","zip","zipCompress"])}}class BehaviorOverride extends ContentObject{constructor(e){super(cf,"behaviorOverride")}[yo](){this[bo]=new Map(this[bo].trim().split(/\s+/).filter(e=>e.includes(":")).map(e=>e.split(":",2)))}}class Cache extends XFAObject{constructor(e){super(cf,"cache",!0);this.templateCache=null}}class Change extends Option01{constructor(e){super(cf,"change")}}class Common extends XFAObject{constructor(e){super(cf,"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(cf,"compress");this.scope=getStringOption(e.scope,["imageOnly","document"])}}class CompressLogicalStructure extends Option01{constructor(e){super(cf,"compressLogicalStructure")}}class CompressObjectStream extends Option10{constructor(e){super(cf,"compressObjectStream")}}class Compression extends XFAObject{constructor(e){super(cf,"compression",!0);this.compressLogicalStructure=null;this.compressObjectStream=null;this.level=null;this.type=null}}class Config extends XFAObject{constructor(e){super(cf,"config",!0);this.acrobat=null;this.present=null;this.trace=null;this.agent=new XFAObjectArray}}class Conformance extends OptionObject{constructor(e){super(cf,"conformance",["A","B"])}}class ContentCopy extends Option01{constructor(e){super(cf,"contentCopy")}}class Copies extends IntegerObject{constructor(e){super(cf,"copies",1,e=>e>=1)}}class Creator extends StringObject{constructor(e){super(cf,"creator")}}class CurrentPage extends IntegerObject{constructor(e){super(cf,"currentPage",0,e=>e>=0)}}class Data extends XFAObject{constructor(e){super(cf,"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(cf,"debug",!0);this.uri=null}}class DefaultTypeface extends ContentObject{constructor(e){super(cf,"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(cf,"destination",["pdf","pcl","ps","webClient","zpl"])}}class DocumentAssembly extends Option01{constructor(e){super(cf,"documentAssembly")}}class Driver extends XFAObject{constructor(e){super(cf,"driver",!0);this.name=e.name?e.name.trim():"";this.fontInfo=null;this.xdc=null}}class DuplexOption extends OptionObject{constructor(e){super(cf,"duplexOption",["simplex","duplexFlipLongEdge","duplexFlipShortEdge"])}}class DynamicRender extends OptionObject{constructor(e){super(cf,"dynamicRender",["forbidden","required"])}}class Embed extends Option01{constructor(e){super(cf,"embed")}}class config_Encrypt extends Option01{constructor(e){super(cf,"encrypt")}}class config_Encryption extends XFAObject{constructor(e){super(cf,"encryption",!0);this.encrypt=null;this.encryptionLevel=null;this.permissions=null}}class EncryptionLevel extends OptionObject{constructor(e){super(cf,"encryptionLevel",["40bit","128bit"])}}class Enforce extends StringObject{constructor(e){super(cf,"enforce")}}class Equate extends XFAObject{constructor(e){super(cf,"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(cf,"equateRange");this.from=e.from||"";this.to=e.to||"";this._unicodeRange=e.unicodeRange||""}get unicodeRange(){const e=[],t=/U\+([0-9a-fA-F]+)/,n=this._unicodeRange;for(let a of n.split(",").map(e=>e.trim()).filter(Boolean)){a=a.split("-",2).map(e=>{const n=e.match(t);return n?parseInt(n[1],16):0});1===a.length&&a.push(a[0]);e.push(a)}return shadow(this,"unicodeRange",e)}}class Exclude extends ContentObject{constructor(e){super(cf,"exclude")}[yo](){this[bo]=this[bo].trim().split(/\s+/).filter(e=>e&&["calculate","close","enter","exit","initialize","ready","validate"].includes(e))}}class ExcludeNS extends StringObject{constructor(e){super(cf,"excludeNS")}}class FlipLabel extends OptionObject{constructor(e){super(cf,"flipLabel",["usePrinterSetting","on","off"])}}class config_FontInfo extends XFAObject{constructor(e){super(cf,"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(cf,"formFieldFilling")}}class GroupParent extends StringObject{constructor(e){super(cf,"groupParent")}}class IfEmpty extends OptionObject{constructor(e){super(cf,"ifEmpty",["dataValue","dataGroup","ignore","remove"])}}class IncludeXDPContent extends StringObject{constructor(e){super(cf,"includeXDPContent")}}class IncrementalLoad extends OptionObject{constructor(e){super(cf,"incrementalLoad",["none","forwardOnly"])}}class IncrementalMerge extends Option01{constructor(e){super(cf,"incrementalMerge")}}class Interactive extends Option01{constructor(e){super(cf,"interactive")}}class Jog extends OptionObject{constructor(e){super(cf,"jog",["usePrinterSetting","none","pageSet"])}}class LabelPrinter extends XFAObject{constructor(e){super(cf,"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(cf,"layout",["paginate","panel"])}}class Level extends IntegerObject{constructor(e){super(cf,"level",0,e=>e>0)}}class Linearized extends Option01{constructor(e){super(cf,"linearized")}}class Locale extends StringObject{constructor(e){super(cf,"locale")}}class LocaleSet extends StringObject{constructor(e){super(cf,"localeSet")}}class Log extends XFAObject{constructor(e){super(cf,"log",!0);this.mode=null;this.threshold=null;this.to=null;this.uri=null}}class MapElement extends XFAObject{constructor(e){super(cf,"map",!0);this.equate=new XFAObjectArray;this.equateRange=new XFAObjectArray}}class MediumInfo extends XFAObject{constructor(e){super(cf,"mediumInfo",!0);this.map=null}}class config_Message extends XFAObject{constructor(e){super(cf,"message",!0);this.msgId=null;this.severity=null}}class Messaging extends XFAObject{constructor(e){super(cf,"messaging",!0);this.message=new XFAObjectArray}}class Mode extends OptionObject{constructor(e){super(cf,"mode",["append","overwrite"])}}class ModifyAnnots extends Option01{constructor(e){super(cf,"modifyAnnots")}}class MsgId extends IntegerObject{constructor(e){super(cf,"msgId",1,e=>e>=1)}}class NameAttr extends StringObject{constructor(e){super(cf,"nameAttr")}}class NeverEmbed extends ContentObject{constructor(e){super(cf,"neverEmbed")}}class NumberOfCopies extends IntegerObject{constructor(e){super(cf,"numberOfCopies",null,e=>e>=2&&e<=5)}}class OpenAction extends XFAObject{constructor(e){super(cf,"openAction",!0);this.destination=null}}class Output extends XFAObject{constructor(e){super(cf,"output",!0);this.to=null;this.type=null;this.uri=null}}class OutputBin extends StringObject{constructor(e){super(cf,"outputBin")}}class OutputXSL extends XFAObject{constructor(e){super(cf,"outputXSL",!0);this.uri=null}}class Overprint extends OptionObject{constructor(e){super(cf,"overprint",["none","both","draw","field"])}}class Packets extends StringObject{constructor(e){super(cf,"packets")}[yo](){"*"!==this[bo]&&(this[bo]=this[bo].trim().split(/\s+/).filter(e=>["config","datasets","template","xfdf","xslt"].includes(e)))}}class PageOffset extends XFAObject{constructor(e){super(cf,"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(cf,"pageRange")}[yo](){const e=this[bo].trim().split(/\s+/).map(e=>parseInt(e,10)),t=[];for(let n=0,a=e.length;n!1)}}class Pcl extends XFAObject{constructor(e){super(cf,"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(cf,"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(cf,"pdfa",!0);this.amd=null;this.conformance=null;this.includeXDPContent=null;this.part=null}}class Permissions extends XFAObject{constructor(e){super(cf,"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(cf,"pickTrayByPDFSize")}}class config_Picture extends StringObject{constructor(e){super(cf,"picture")}}class PlaintextMetadata extends Option01{constructor(e){super(cf,"plaintextMetadata")}}class Presence extends OptionObject{constructor(e){super(cf,"presence",["preserve","dissolve","dissolveStructure","ignore","remove"])}}class Present extends XFAObject{constructor(e){super(cf,"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(cf,"print")}}class PrintHighQuality extends Option01{constructor(e){super(cf,"printHighQuality")}}class PrintScaling extends OptionObject{constructor(e){super(cf,"printScaling",["appdefault","noScaling"])}}class PrinterName extends StringObject{constructor(e){super(cf,"printerName")}}class Producer extends StringObject{constructor(e){super(cf,"producer")}}class Ps extends XFAObject{constructor(e){super(cf,"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(cf,"range")}[yo](){this[bo]=this[bo].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(cf,"record")}[yo](){this[bo]=this[bo].trim();const e=parseInt(this[bo],10);!isNaN(e)&&e>=0&&(this[bo]=e)}}class Relevant extends ContentObject{constructor(e){super(cf,"relevant")}[yo](){this[bo]=this[bo].trim().split(/\s+/)}}class Rename extends ContentObject{constructor(e){super(cf,"rename")}[yo](){this[bo]=this[bo].trim();(this[bo].toLowerCase().startsWith("xml")||/[\p{L}_][\p{L}\d._\p{M}-]*/u.test(this[bo]))&&warn("XFA - Rename: invalid XFA name")}}class RenderPolicy extends OptionObject{constructor(e){super(cf,"renderPolicy",["server","client"])}}class RunScripts extends OptionObject{constructor(e){super(cf,"runScripts",["both","client","none","server"])}}class config_Script extends XFAObject{constructor(e){super(cf,"script",!0);this.currentPage=null;this.exclude=null;this.runScripts=null}}class ScriptModel extends OptionObject{constructor(e){super(cf,"scriptModel",["XFA","none"])}}class Severity extends OptionObject{constructor(e){super(cf,"severity",["ignore","error","information","trace","warning"])}}class SilentPrint extends XFAObject{constructor(e){super(cf,"silentPrint",!0);this.addSilentPrint=null;this.printerName=null}}class Staple extends XFAObject{constructor(e){super(cf,"staple");this.mode=getStringOption(e.mode,["usePrinterSetting","on","off"])}}class StartNode extends StringObject{constructor(e){super(cf,"startNode")}}class StartPage extends IntegerObject{constructor(e){super(cf,"startPage",0,e=>!0)}}class SubmitFormat extends OptionObject{constructor(e){super(cf,"submitFormat",["html","delegate","fdf","xml","pdf"])}}class SubmitUrl extends StringObject{constructor(e){super(cf,"submitUrl")}}class SubsetBelow extends IntegerObject{constructor(e){super(cf,"subsetBelow",100,e=>e>=0&&e<=100)}}class SuppressBanner extends Option01{constructor(e){super(cf,"suppressBanner")}}class Tagged extends Option01{constructor(e){super(cf,"tagged")}}class config_Template extends XFAObject{constructor(e){super(cf,"template",!0);this.base=null;this.relevant=null;this.startPage=null;this.uri=null;this.xsl=null}}class Threshold extends OptionObject{constructor(e){super(cf,"threshold",["trace","error","information","warning"])}}class To extends OptionObject{constructor(e){super(cf,"to",["null","memory","stderr","stdout","system","uri"])}}class TemplateCache extends XFAObject{constructor(e){super(cf,"templateCache");this.maxEntries=getInteger({data:e.maxEntries,defaultValue:5,validate:e=>e>=0})}}class Trace extends XFAObject{constructor(e){super(cf,"trace",!0);this.area=new XFAObjectArray}}class Transform extends XFAObject{constructor(e){super(cf,"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(cf,"type",["none","ascii85","asciiHex","ccittfax","flate","lzw","runLength","native","xdp","mergedXDP"])}}class Uri extends StringObject{constructor(e){super(cf,"uri")}}class config_Validate extends OptionObject{constructor(e){super(cf,"validate",["preSubmit","prePrint","preExecute","preSave"])}}class ValidateApprovalSignatures extends ContentObject{constructor(e){super(cf,"validateApprovalSignatures")}[yo](){this[bo]=this[bo].trim().split(/\s+/).filter(e=>["docReady","postSign"].includes(e))}}class ValidationMessaging extends OptionObject{constructor(e){super(cf,"validationMessaging",["allMessagesIndividually","allMessagesTogether","firstMessageOnly","noMessages"])}}class Version extends OptionObject{constructor(e){super(cf,"version",["1.7","1.6","1.5","1.4","1.3","1.2"])}}class VersionControl extends XFAObject{constructor(e){super(cf,"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(cf,"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(cf,"webClient",!0);this.name=e.name?e.name.trim():"";this.fontInfo=null;this.xdc=null}}class Whitespace extends OptionObject{constructor(e){super(cf,"whitespace",["preserve","ltrim","normalize","rtrim","trim"])}}class Window extends ContentObject{constructor(e){super(cf,"window")}[yo](){const e=this[bo].split(",",2).map(e=>parseInt(e.trim(),10));if(e.some(e=>isNaN(e)))this[bo]=[0,0];else{1===e.length&&e.push(e[0]);this[bo]=e}}}class Xdc extends XFAObject{constructor(e){super(cf,"xdc",!0);this.uri=new XFAObjectArray;this.xsl=new XFAObjectArray}}class Xdp extends XFAObject{constructor(e){super(cf,"xdp",!0);this.packets=null}}class Xsl extends XFAObject{constructor(e){super(cf,"xsl",!0);this.debug=null;this.uri=null}}class Zpl extends XFAObject{constructor(e){super(cf,"zpl",!0);this.name=e.name?e.name.trim():"";this.batchOutput=null;this.flipLabel=null;this.fontInfo=null;this.xdc=null}}class ConfigNamespace{static[vl](e,t){if(Object.hasOwn(ConfigNamespace,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 hf=Sl.connectionSet.id;class ConnectionSet extends XFAObject{constructor(e){super(hf,"connectionSet",!0);this.wsdlConnection=new XFAObjectArray;this.xmlConnection=new XFAObjectArray;this.xsdConnection=new XFAObjectArray}}class EffectiveInputPolicy extends XFAObject{constructor(e){super(hf,"effectiveInputPolicy");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}}class EffectiveOutputPolicy extends XFAObject{constructor(e){super(hf,"effectiveOutputPolicy");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}}class Operation extends StringObject{constructor(e){super(hf,"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(hf,"rootElement");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}}class SoapAction extends StringObject{constructor(e){super(hf,"soapAction");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}}class SoapAddress extends StringObject{constructor(e){super(hf,"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(hf,"uri");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}}class WsdlAddress extends StringObject{constructor(e){super(hf,"wsdlAddress");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}}class WsdlConnection extends XFAObject{constructor(e){super(hf,"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(hf,"xmlConnection",!0);this.dataDescription=e.dataDescription||"";this.name=e.name||"";this.uri=null}}class XsdConnection extends XFAObject{constructor(e){super(hf,"xsdConnection",!0);this.dataDescription=e.dataDescription||"";this.name=e.name||"";this.rootElement=null;this.uri=null}}class ConnectionSetNamespace{static[vl](e,t){if(Object.hasOwn(ConnectionSetNamespace,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 uf=Sl.datasets.id;class datasets_Data extends XmlObject{constructor(e){super(uf,"data",e)}[Vo](){return!0}}class Datasets extends XFAObject{constructor(e){super(uf,"datasets",!0);this.data=null;this.Signature=null}[al](e){const t=e[tl];("data"===t&&e[el]===uf||"Signature"===t&&e[el]===Sl.signature.id)&&(this[t]=e);this[fo](e)}}class DatasetsNamespace{static[vl](e,t){if(Object.hasOwn(DatasetsNamespace,e))return DatasetsNamespace[e](t)}static datasets(e){return new Datasets(e)}static data(e){return new datasets_Data(e)}}const mf=Sl.localeSet.id;class CalendarSymbols extends XFAObject{constructor(e){super(mf,"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(mf,"currencySymbol");this.name=getStringOption(e.name,["symbol","isoname","decimal"])}}class CurrencySymbols extends XFAObject{constructor(e){super(mf,"currencySymbols",!0);this.currencySymbol=new XFAObjectArray(3)}}class DatePattern extends StringObject{constructor(e){super(mf,"datePattern");this.name=getStringOption(e.name,["full","long","med","short"])}}class DatePatterns extends XFAObject{constructor(e){super(mf,"datePatterns",!0);this.datePattern=new XFAObjectArray(4)}}class DateTimeSymbols extends ContentObject{constructor(e){super(mf,"dateTimeSymbols")}}class Day extends StringObject{constructor(e){super(mf,"day")}}class DayNames extends XFAObject{constructor(e){super(mf,"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(mf,"era")}}class EraNames extends XFAObject{constructor(e){super(mf,"eraNames",!0);this.era=new XFAObjectArray(2)}}class locale_set_Locale extends XFAObject{constructor(e){super(mf,"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(mf,"localeSet",!0);this.locale=new XFAObjectArray}}class Meridiem extends StringObject{constructor(e){super(mf,"meridiem")}}class MeridiemNames extends XFAObject{constructor(e){super(mf,"meridiemNames",!0);this.meridiem=new XFAObjectArray(2)}}class Month extends StringObject{constructor(e){super(mf,"month")}}class MonthNames extends XFAObject{constructor(e){super(mf,"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(mf,"numberPattern");this.name=getStringOption(e.name,["full","long","med","short"])}}class NumberPatterns extends XFAObject{constructor(e){super(mf,"numberPatterns",!0);this.numberPattern=new XFAObjectArray(4)}}class NumberSymbol extends StringObject{constructor(e){super(mf,"numberSymbol");this.name=getStringOption(e.name,["decimal","grouping","percent","minus","zero"])}}class NumberSymbols extends XFAObject{constructor(e){super(mf,"numberSymbols",!0);this.numberSymbol=new XFAObjectArray(5)}}class TimePattern extends StringObject{constructor(e){super(mf,"timePattern");this.name=getStringOption(e.name,["full","long","med","short"])}}class TimePatterns extends XFAObject{constructor(e){super(mf,"timePatterns",!0);this.timePattern=new XFAObjectArray(4)}}class TypeFace extends XFAObject{constructor(e){super(mf,"typeFace",!0);this.name=""|e.name}}class TypeFaces extends XFAObject{constructor(e){super(mf,"typeFaces",!0);this.typeFace=new XFAObjectArray}}class LocaleSetNamespace{static[vl](e,t){if(Object.hasOwn(LocaleSetNamespace,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 pf=Sl.signature.id;class signature_Signature extends XFAObject{constructor(e){super(pf,"signature",!0)}}class SignatureNamespace{static[vl](e,t){if(Object.hasOwn(SignatureNamespace,e))return SignatureNamespace[e](t)}static signature(e){return new signature_Signature(e)}}const df=Sl.stylesheet.id;class Stylesheet extends XFAObject{constructor(e){super(df,"stylesheet",!0)}}class StylesheetNamespace{static[vl](e,t){if(Object.hasOwn(StylesheetNamespace,e))return StylesheetNamespace[e](t)}static stylesheet(e){return new Stylesheet(e)}}const gf=Sl.xdp.id;class xdp_Xdp extends XFAObject{constructor(e){super(gf,"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}[sl](e){const t=Sl[e[tl]];return t&&e[el]===t.id}}class XdpNamespace{static[vl](e,t){if(Object.hasOwn(XdpNamespace,e))return XdpNamespace[e](t)}static xdp(e){return new xdp_Xdp(e)}}const bf=Sl.xhtml.id,wf=Symbol(),jf=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"]),kf=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,10)/100).toFixed(2)})`],["xfa-font-vertical-scale",e=>`scaleY(${Math.max(0,parseInt(e,10)/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))]]),yf=/\s+/g,qf=/[\r\n]+/g,vf=/\r\n?/g;function mapStyle(e,t,n){const a=Object.create(null);if(!e)return a;const s=Object.create(null);for(const[t,n]of e.split(";").map(e=>e.split(":",2))){const e=kf.get(t);if(""===e)continue;let r=n;e&&(r="string"==typeof e?e:e(n,s));t.endsWith("scale")?a.transform=a.transform?`${a[t]} ${r}`:r:a[t.replaceAll(/-([a-z])/gi,(e,t)=>t.toUpperCase())]=r}a.fontFamily&&setFontFamily({typeface:a.fontFamily,weight:a.fontWeight||"normal",posture:a.fontStyle||"normal",size:s.fontSize||0},t,t[Eo].fontFinder,a);if(n&&a.verticalAlign&&"0px"!==a.verticalAlign&&a.fontSize){const e=.583,t=.333,n=getMeasurement(a.fontSize);a.fontSize=measureToString(n*e);a.verticalAlign=measureToString(Math.sign(getMeasurement(a.verticalAlign))*n*t)}n&&a.fontSize&&(a.fontSize=`calc(${a.fontSize} * var(--total-scale-factor))`);fixTextIndent(a);return a}const Sf=new Set(["body","html"]);class XhtmlObject extends XmlObject{constructor(e,t){super(bf,t);this[wf]=!1;this.style=e.style||""}[ho](e){super[ho](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,n])=>{"font-family"===t&&e[Eo].usedTypefaces.add(n);return jf.has(t)}).map(e=>e.join(":")).join(";"):""}(this)}[oo](){return!Sf.has(this[tl])}[rl](e,t=!1){if(t)this[wf]=!0;else{e=e.replaceAll(qf,"");this.style.includes("xfa-spacerun:yes")||(e=e.replaceAll(yf," "))}e&&(this[bo]+=e)}[il](e,t=!0){const n=Object.create(null),a={top:NaN,bottom:NaN,left:NaN,right:NaN};let s=null;for(const[e,t]of this.style.split(";").map(e=>e.split(":",2)))switch(e){case"font-family":n.typeface=stripQuotes(t);break;case"font-size":n.size=getMeasurement(t);break;case"font-weight":n.weight=t;break;case"font-style":n.posture=t;break;case"letter-spacing":n.letterSpacing=getMeasurement(t);break;case"margin":const e=t.split(/ \t/).map(getMeasurement);switch(e.length){case 1:a.top=a.bottom=a.left=a.right=e[0];break;case 2:a.top=a.bottom=e[0];a.left=a.right=e[1];break;case 3:a.top=e[0];a.bottom=e[2];a.left=a.right=e[1];break;case 4:a.top=e[0];a.left=e[1];a.bottom=e[2];a.right=e[3]}break;case"margin-top":a.top=getMeasurement(t);break;case"margin-bottom":a.bottom=getMeasurement(t);break;case"margin-left":a.left=getMeasurement(t);break;case"margin-right":a.right=getMeasurement(t);break;case"line-height":s=getMeasurement(t)}e.pushData(n,a,s);if(this[bo])e.addString(this[bo]);else for(const t of this[Ho]())"#text"!==t[tl]?t[il](e):e.addString(t[bo]);t&&e.popFont()}[jl](e){const t=[];this[ko]={children:t};this[co]({});if(0===t.length&&!this[bo])return HTMLResult.EMPTY;let n;n=this[wf]?this[bo]?this[bo].replaceAll(vf,"\n"):void 0:this[bo]||void 0;return HTMLResult.success({name:this[tl],attributes:{href:this.href,style:mapStyle(this.style,this,this[wf])},children:t,value:n})}}class A extends XhtmlObject{constructor(e){super(e,"a");this.href=fixURL(e.href)||""}}class B extends XhtmlObject{constructor(e){super(e,"b")}[il](e){e.pushFont({weight:"bold"});super[il](e);e.popFont()}}class Body extends XhtmlObject{constructor(e){super(e,"body")}[jl](e){const t=super[jl](e),{html:n}=t;if(!n)return HTMLResult.EMPTY;n.name="div";n.attributes.class=["xfaRich"];return t}}class Br extends XhtmlObject{constructor(e){super(e,"br")}[bl](){return"\n"}[il](e){e.addString("\n")}[jl](e){return HTMLResult.success({name:"br"})}}class Html extends XhtmlObject{constructor(e){super(e,"html")}[jl](e){const t=[];this[ko]={children:t};this[co]({});if(0===t.length)return HTMLResult.success({name:"div",attributes:{class:["xfaRich"],style:{}},value:this[bo]||""});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")}[il](e){e.pushFont({posture:"italic"});super[il](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")}[il](e){super[il](e,!1);e.addString("\n");e.addPara();e.popFont()}[bl](){return this[No]()[Ho]().at(-1)===this?super[bl]():super[bl]()+"\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[vl](e,t){if(Object.hasOwn(XhtmlNamespace,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 Af={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}[vl](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[zo]=e}[al](e){this.element=e;return!0}[yo](){super[yo]();if(this.element.template instanceof Template){this[zo].set(cl,this.element);this.element.template[hl](this[zo]);this.element.template[zo]=this[zo]}}}class Empty extends XFAObject{constructor(){super(-1,"",Object.create(null))}[al](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(Sl).map(({id:e})=>e));this._currentNamespace=e||new UnknownNamespace(++this._nextNsId)}buildRoot(e){return new Root(e)}build({nsPrefix:e,name:t,attributes:n,namespace:a,prefixes:s}){const r=null!==a;if(r){this._namespaceStack.push(this._currentNamespace);this._currentNamespace=this._searchNamespace(a)}s&&this._addNamespacePrefix(s);if(Object.hasOwn(n,nl)){const e=Af.datasets,t=n[nl];let a=null;for(const[n,s]of Object.entries(t)){if(this._getNamespaceToUse(n)===e){a={xfa:s};break}}a?n[nl]=a:delete n[nl]}const i=this._getNamespaceToUse(e),o=i?.[vl](t,n)||new Empty;o[Vo]()&&this._nsAgnosticLevel++;(r||s||o[Vo]())&&(o[mo]={hasNamespace:r,prefixes:s,nsAgnostic:o[Vo]()});return o}isNsAgnostic(){return this._nsAgnosticLevel>0}_searchNamespace(e){let t=this._namespaces.get(e);if(t)return t;for(const[n,{check:a}]of Object.entries(Sl))if(a(e)){t=Af[n];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:n}of e){const e=this._searchNamespace(n);this._namespacePrefixes.getOrInsertComputed(t,makeArr).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:n,nsAgnostic:a}=e;t&&(this._currentNamespace=this._namespaceStack.pop());n?.forEach(({prefix:e})=>{this._namespacePrefixes.get(e).pop()});a&&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=Gi;this._whiteRegex=/^\s+$/;this._nbsps=/\xa0+/g;this._richText=t}parse(e){this.parseXml(e);if(this._errorCode===Gi){this._current[yo]();return this._current.element}}onText(e){e=e.replace(this._nbsps,e=>e.slice(1)+" ");this._richText||this._current[oo]()?this._current[rl](e,this._richText):this._whiteRegex.test(e)||this._current[rl](e.trim())}onCdata(e){this._current[rl](e)}_mkAttributes(e,t){let n=null,a=null;const s=Object.create({});for(const{name:r,value:i}of e)if("xmlns"===r)n?warn(`XFA - multiple namespace definition in <${t}>`):n=i;else if(r.startsWith("xmlns:")){const e=r.substring(6);a??=[];a.push({prefix:e,value:i})}else{const e=r.indexOf(":");if(-1===e)s[r]=i;else{const t=s[nl]??=Object.create(null),[n,a]=[r.slice(0,e),r.slice(e+1)];(t[n]||=Object.create(null))[a]=i}}return[n,a,s]}_getNameAndPrefix(e,t){const n=e.indexOf(":");return-1===n?[e,null]:[e.substring(n+1),t?"":e.substring(0,n)]}onBeginElement(e,t,n){const[a,s,r]=this._mkAttributes(t,e),[i,o]=this._getNameAndPrefix(e,this._builder.isNsAgnostic()),l=this._builder.build({nsPrefix:o,name:i,attributes:r,namespace:a,prefixes:s});l[Eo]=this._globalData;if(n){l[yo]();this._current[al](l)&&l[ml](this._ids);l[ho](this._builder)}else{this._stack.push(this._current);this._current=l}}onEndElement(e){const t=this._current;if(t[Wo]()&&"string"==typeof t[bo]){const e=new XFAParser;e._globalData=this._globalData;const n=e.parse(t[bo]);t[bo]=null;t[al](n)}t[yo]();this._current=this._stack.pop();this._current[al](t)&&t[ml](this._ids);t[ho](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[Eo].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[wl]();return new Promise((t,n)=>{const nextIteration=()=>{try{const n=e.next();n.done?t(n.value):setTimeout(nextIteration,0)}catch(e){n(e)}};setTimeout(nextIteration,0)})}async _createPages(){try{this.pages=await this._createPagesHelper();this.dims=this.pages.children.map(e=>{const{width:t,height:n}=e.attributes.style;return[0,0,parseInt(t,10),parseInt(n,10)]})}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[Eo].images=e}setFonts(e){this.form[Eo].fontFinder=new FontFinder(e);const t=[];for(let e of this.form[Eo].usedTypefaces){e=stripQuotes(e);this.form[Eo].fontFinder.find(e)||t.push(e)}return t.length>0?t:null}appendFonts(e,t){this.form[Eo].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.get("/xdp:xdp")?e.values().join(""):e.get("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[tl])){const e=XhtmlNamespace.body({});e[fo](t);t=e}const n=t[jl]();if(!n.success)return null;const{html:a}=n,{attributes:s}=a;if(s){s.class&&=s.class.filter(e=>!e.startsWith("xfa"));s.dir="auto"}return{html:a,str:t[bl]()}}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,n,a,s,r,i])=>({pdfManager:e,catalog:e.pdfDocument.catalog,acroForm:t instanceof Dict?t:Dict.empty,xfaDatasets:n,structTreeRoot:a,baseUrl:s,attachments:r,globalColorSpaceCache:i}),e=>{warn(`createGlobals: "${e}".`);return null})}static async create(e,t,n,a,s,r,i,o){const l=s?await this._getPageIndex(e,t,n.pdfManager):null;return n.pdfManager.ensure(this,"_create",[e,t,n,a,s,r,i,l,o])}static _create(e,t,n,a,s=!1,r=null,i=null,o=null,l=null){const f=e.fetchIfRef(t);if(!(f instanceof Dict))return;let c=f.get("Subtype");c=c instanceof Name?c.name:null;if(i&&!i.has(R[c?.toUpperCase()]))return null;const{acroForm:h,pdfManager:u}=n,m=t instanceof Ref?t.toString():`annot_${a.createObjId()}`,p={xref:e,ref:t,dict:f,subtype:c,id:m,annotationGlobals:n,collectFields:s,orphanFields:r,needAppearances:!s&&!0===h.get("NeedAppearances"),pageIndex:o,evaluatorOptions:u.evaluatorOptions,pageRef:l};switch(c){case"Link":return new LinkAnnotation(p);case"Text":return new TextAnnotation(p);case"Widget":let e=getInheritableProperty({dict:f,key:"FT"});e=e instanceof Name?e.name:null;switch(e){case"Tx":return new TextWidgetAnnotation(p);case"Btn":return new ButtonWidgetAnnotation(p);case"Ch":return new ChoiceWidgetAnnotation(p);case"Sig":return new SignatureWidgetAnnotation(p)}warn(`Unimplemented widget field type "${e}", falling back to base field type.`);return new WidgetAnnotation(p);case"Popup":return new PopupAnnotation(p);case"FreeText":return new FreeTextAnnotation(p);case"Line":return new LineAnnotation(p);case"Square":return new SquareAnnotation(p);case"Circle":return new CircleAnnotation(p);case"PolyLine":return new PolylineAnnotation(p);case"Polygon":return new PolygonAnnotation(p);case"Caret":return new CaretAnnotation(p);case"Ink":return new InkAnnotation(p);case"Highlight":return new HighlightAnnotation(p);case"Underline":return new UnderlineAnnotation(p);case"Squiggly":return new SquigglyAnnotation(p);case"StrikeOut":return new StrikeOutAnnotation(p);case"Stamp":return new StampAnnotation(p);case"FileAttachment":return new FileAttachmentAnnotation(p);case"RichMedia":return new RichMediaAnnotation(p);case"Screen":return new ScreenAnnotation(p);case"Sound":return new SoundAnnotation(p);default:s||warn(c?`Unimplemented annotation type "${c}", falling back to base annotation.`:"Annotation is missing the required /Subtype.");return new Annotation(p)}}static async _getPageIndex(e,t,n){try{const a=await e.fetchIfRefAsync(t);if(!(a instanceof Dict))return-1;const s=a.getRaw("P");if(s instanceof Ref)try{return await n.ensureCatalog("getPageIndex",[s])}catch(e){info(`_getPageIndex -- not a valid page reference: "${e}".`)}if(a.has("Kids"))return-1;const r=await n.ensureDoc("numPages");for(let e=0;ee/255)||t}function getQuadPoints(e,t){const n=e.getArray("QuadPoints");if(!isNumberArray(n,null)||0===n.length||n.length%8>0)return null;const a=new Float32Array(n.length);for(let e=0,s=n.length;et[2]||pt[3]))return null;a.set([u,d,m,d,u,p,m,p],e)}return a}function getTransformMatrix(e,t,a){const s=n.slice();Util.axialAlignedBoundingBox(t,a,s);const[r,i,o,l]=s;if(r===o||i===l)return[1,0,0,1,e[0],e[1]];const f=(e[2]-e[0])/(o-r),c=(e[3]-e[1])/(l-i);return[f,0,0,c,e[0]-r*f,e[1]-i*c]}function writeLineToCurveToAppearance(e,t,n=!1){t.push(`${numberToString(e[4])} ${numberToString(e[5])} m`);for(let n=6,a=e.length;n=0?a:-1;t.structTreeRoot.addAnnotationIdToPage(e.pageRef,a,this.ref)}if(e.collectFields){const t=n.get("Kids");if(Array.isArray(t)){const e=[];for(const n of t)n instanceof Ref&&e.push(n.toString());0!==e.length&&(this.data.kidIds=e)}this.data.actions=collectActions(i,n,oe);this.data.fieldName=this._constructFieldName(n);this.data.pageIndex=e.pageIndex}const h=n.get("IT");h instanceof Name&&(this.data.it=h.name);this._isOffscreenCanvasSupported=e.evaluatorOptions.isOffscreenCanvasSupported;this._fallbackFontDict=null;this._needAppearances=!1}_getOperatorListNoAppearance(){return{opList:new OperatorList,separateForm:!1,separateCanvas:!1}}_hasFlag(e,t){return!!(e&t)}_buildFlags(e,t){let{flags:n}=this;if(void 0===e){if(void 0===t)return;return t?n&~_:n&~E|_}if(e){n|=_;return t?n&~L|E:n&~E|L}n&=~(E|L);return t?n&~_:n|_}_isViewable(e){return!this._hasFlag(e,N)&&!this._hasFlag(e,L)}_isPrintable(e){return this._hasFlag(e,_)&&!this._hasFlag(e,E)&&!this._hasFlag(e,N)}mustBeViewed(e,t){const n=e?.get(this.data.id)?.noView;return void 0!==n?!n:this.viewable&&!this._hasFlag(this.flags,E)}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:n}=e,a=getInheritableProperty({dict:t,key:"DA"})||n.acroForm.get("DA");this._defaultAppearance="string"==typeof a?a:"";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&N&&"Annotation"!==this.constructor.name&&(this.flags^=N)}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 n=e[t];if(n instanceof Name)switch(n.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]=n.name;continue}warn(`Ignoring invalid lineEnding: ${n}`)}}setRotation(e,t){this.rotation=0;let n=e instanceof Dict?e.get("R")||0:t.get("Rotate")||0;if(Number.isInteger(n)&&0!==n){n%=360;n<0&&(n+=360);n%90==0&&(this.rotation=n)}}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))if(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 0===t.length&&this.borderStyle.setWidth(0)}else this.borderStyle.setWidth(0)}setAppearance(e){const t=e.get("AP");if(!(t instanceof Dict))return;const n=t.get("N");if(n instanceof BaseStream){this.appearance=n;return}if(!(n instanceof Dict))return;const a=e.get("AS");if(!(a instanceof Name))return;const s=n.get(a.name);s instanceof BaseStream&&(this.appearance=s)}#It(e,t){if(t.has("OC"))try{this._oc=parseMarkedContentProps(e,t.get("OC"),null)}catch(e){if(e instanceof MissingDataException)throw e;warn(`#setOptionalContent: ${e}`)}}async loadResources(e,t){const n=await t.dict.getAsync("Resources");n&&await ObjectLoader.load(n,e,n.xref);return n}get _ownCanvasRequiresForms(){return!1}async getOperatorList(e,t,n,a){const{hasOwnCanvas:s,id:r,rect:i}=this.data;let l=this.appearance;const f=!!(s&&n&o&&(!this._ownCanvasRequiresForms||n&c));if(f&&(0===this.width||0===this.height)){this.data.hasOwnCanvas=!1;return this._getOperatorListNoAppearance()}if(!l){if(!f)return this._getOperatorListNoAppearance();l=new StringStream("",new Dict)}const h=l.dict,u=await this.loadResources(wn,l),m=lookupRect(h.getArray("BBox"),[0,0,this.width,this.height]),p=lookupMatrix(h.getArray("Matrix"),bn),d=getTransformMatrix(i,m,p),g=new OperatorList,b=this._oc;void 0!==b&&g.addOp(Ct,["OC",b]);g.addOp(Dt,[r,i,d,p,f]);await e.getOperatorList({stream:l,task:t,resources:u,operatorList:g,fallbackFontDict:this._fallbackFontDict});g.addOp(Mt,[]);void 0!==b&&g.addOp(It,[]);this.reset();return{opList:g,separateForm:!1,separateCanvas:f}}async save(e,t,n,a){return null}get overlaysTextContent(){return!1}get hasTextContent(){return!1}async extractTextContent(e,t,n){if(!this.appearance)return;const a=await this.loadResources(jn,this.appearance),s=[],r=[];let i=1/0,o=1/0,l=null;const f={desiredSize:Math.Infinity,ready:!0,enqueue(e,t){for(const t of e.items)if(void 0!==t.str){i=Math.min(i,t.transform[4]);o=Math.min(o,t.transform[5]);r.push(t.str);if(t.hasEOL){s.push(r.join("").trimEnd());r.length=0}}}};await e.getTextContent({stream:this.appearance,task:t,resources:a,includeMarkedContent:!0,keepWhiteSpace:!0,sink:f,viewBox:n});this.reset();i!==1/0&&(l=[i,o]);r.length&&s.push(r.join("").trimEnd());if(s.length>1||s[0]){const e=this.appearance.dict,t=lookupRect(e.getArray("BBox"),null),n=lookupMatrix(e.getArray("Matrix"),null);this.data.textPosition=this._transformPoint(l,t,n);this.data.textContent=s}}_transformPoint(e,t,n){const{rect:a}=this.data;t||=[0,0,1,1];n||=[1,0,0,1,0,0];const s=getTransformMatrix(a,t,n);s[4]-=a[0];s[5]-=a[1];const r=e.slice();Util.applyTransform(r,s);Util.applyTransform(r,n);return r}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 n=e;const a=new RefSet;e.objId&&a.put(e.objId);for(;n.has("Parent");){n=n.get("Parent");if(!(n instanceof Dict)||n.objId&&a.has(n.objId))break;n.objId&&a.put(n.objId);n.has("T")&&t.unshift(stringToPDFString(n.get("T")))}return t.join(".")}_getAttachmentId(e,t,n,a=!1){if(e instanceof Dict){t instanceof Ref||(t=FileSpec.pickPlatformItem(e.get("EF"),!0));return t instanceof Ref?n.catalog.getAttachmentIdForAnnotation(t,a):void 0}}get width(){return this.data.rect[2]-this.data.rect[0]}get height(){return this.data.rect[3]-this.data.rect[1]}}class AnnotationBorderStyle{width=1;rawWidth=1;style=ne;dashArray=[3];horizontalCornerRadius=0;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 n=(t[2]-t[0])/2,a=(t[3]-t[1])/2;if(n>0&&a>0&&(e>n||e>a)){warn(`AnnotationBorderStyle.setWidth - ignoring width: ${e}`);e=1}}this.width=e}}setStyle(e){if(e instanceof Name)switch(e.name){case"S":this.style=ne;break;case"D":this.style=ae;break;case"B":this.style=se;break;case"I":this.style=re;break;case"U":this.style=ie}}setDashArray(e,t=!1){if(Array.isArray(e)){let n=!0,a=!0;for(const t of e){if(!(+t>=0)){n=!1;break}t>0&&(a=!1)}if(0===e.length||n&&!a){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 n=t.get("RT");this.data.replyType=n instanceof Name?n.name:H}let n=null;if(this.data.replyType===O){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;n=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;n=t.getRaw("Popup");t.has("C")||(this.data.color=null)}this.data.popupRef=n instanceof Ref?n.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:n,strokeColor:a,fillColor:s,blendMode:r,strokeAlpha:i,fillAlpha:o,pointsCallback:l}){const f=this.data.rect=t.slice(),c=["q"];n&&c.push(n);a&&c.push(`${a[0]} ${a[1]} ${a[2]} RG`);s&&c.push(`${s[0]} ${s[1]} ${s[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;ethis._decodeFormValue(e)).filter(e=>null!==e);return t.length>0?t:null}return e instanceof Name?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,L)}getRotationMatrix(e){let t=e?.get(this.data.id)?.rotation;void 0===t&&(t=this.rotation);return 0===t?bn: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 n=0===t||180===t?`0 0 ${this.width} ${this.height} re`:`0 0 ${this.height} ${this.width} re`;let a="";this.backgroundColor&&(a=`${getPdfColor(this.backgroundColor,!0)} ${n} f `);if(this.borderColor){a+=`${this.borderStyle.width||1} w ${getPdfColor(this.borderColor,!1)} ${n} S `}return a}async getOperatorList(e,t,n,a){if(n&c&&!(this instanceof SignatureWidgetAnnotation)&&!this.data.noHTML&&!this.data.hasOwnCanvas){const e=this._getOperatorListNoAppearance();e.separateForm=!0;return e}if(!this._hasText)return super.getOperatorList(e,t,n,a);const s=await this._getAppearance(e,t,n,a);if(this.appearance&&null===s)return super.getOperatorList(e,t,n,a);const r=new OperatorList;if(!this._defaultAppearance||null===s)return{opList:r,separateForm:!1,separateCanvas:!1};const i=!!(this.data.hasOwnCanvas&&n&o),l=[0,0,this.width,this.height],f=getTransformMatrix(this.data.rect,l,[1,0,0,1,0,0]),h=this._oc;void 0!==h&&r.addOp(Ct,["OC",h]);r.addOp(Dt,[this.data.id,this.data.rect,f,this.getRotationMatrix(a),i]);const u=new StringStream(s);await e.getOperatorList({stream:u,task:t,resources:this._fieldResources.mergedResources,operatorList:r});r.addOp(Mt,[]);void 0!==h&&r.addOp(It,[]);return{opList:r,separateForm:!1,separateCanvas:i}}_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,n,a){const{dict:s,ref:r}=function getParentToUpdate(e,t,n){const a=new RefSet,s=e,r={dict:null,ref:null};for(;e instanceof Dict&&!a.has(t);){a.put(t);if(e.has("T"))break;if(!((t=e.getRaw("Parent"))instanceof Ref))return r;e=n.fetch(t)}if(e instanceof Dict&&e!==s){r.dict=e;r.ref=t}return r}(e,this.ref,n);if(s){if(!a.has(r)){const e=s.clone();e.set("V",t);a.put(r,{data:e});return e}}else e.set("V",t);return null}async save(e,t,n,a){const s=n?.get(this.data.id),r=this._buildFlags(s?.noView,s?.noPrint);let i=s?.value,o=s?.rotation;if(i===this.data.fieldValue||void 0===i){if(!this._hasValueFromXFA&&void 0===o&&void 0===r)return;i||=this.data.fieldValue}if(void 0===o&&!this._hasValueFromXFA&&Array.isArray(i)&&Array.isArray(this.data.fieldValue)&&isArrayEqual(i,this.data.fieldValue)&&void 0===r)return;void 0===o&&(o=this.rotation);let l=null;if(!this._needAppearances){l=await this._getAppearance(e,t,f,n);if(null===l&&void 0===r)return}let c=!1;if(l?.needAppearances){c=!0;l=null}const{xref:h}=e,u=h.fetchIfRef(this.ref);if(!(u instanceof Dict))return;const m=new Dict(h);for(const[e,t]of u.getRawEntries())"AP"!==e&&m.set(e,t);if(void 0!==r){m.set("F",r);if(null===l&&!c){const e=u.getRaw("AP");e&&m.set("AP",e)}}const p={path:this.data.fieldName,value:i},d=this.setValue(m,Array.isArray(i)?i.map(stringToAsciiOrUTF16BE):stringToAsciiOrUTF16BE(i),h,a);this.amendSavedDict(n,d||m);const g=this._getMKDict(o);g&&m.set("MK",g);a.put(this.ref,{data:m,xfa:p,needAppearances:c});if(null!==l){const e=h.getNewTemporaryRef(),t=new Dict(h);m.set("AP",t);t.set("N",e);const s=this._getSaveFieldResources(h),r=new Dict(h);r.setIfName("Subtype","Form");r.set("Resources",s);const i=o%180==0?[0,0,this.width,this.height]:[0,0,this.height,this.width];r.set("BBox",i);const f=new StringStream(l,r),c=this.getRotationMatrix(n);c!==bn&&r.set("Matrix",c);a.put(e,{data:f,xfa:null,needAppearances:!1})}m.set("M",`D:${getModificationDate()}`)}async _getAppearance(e,t,n,a){if(this.data.password)return null;const r=a?.get(this.data.id);let i,o;if(r){i=r.formattedValue||r.value;o=r.rotation}if(void 0===o&&void 0===i&&!this._needAppearances&&(!this._hasValueFromXFA||this.appearance))return null;const l=this.getBorderAndBackgroundAppearances(a);if(void 0===i){i=this.data.fieldValue;if(!i)return`/Tx BMC q ${l}Q EMC`}Array.isArray(i)&&1===i.length&&(i=i[0]);assert("string"==typeof i,"Expected `value` to be a string.");i=i.trimEnd();if(this.data.combo){const e=this.data.options.find(({exportValue:e})=>i===e);i=e?.displayValue||i}if(""===i)return`/Tx BMC q ${l}Q EMC`;void 0===o&&(o=this.rotation);let c,h=-1;if(this.data.multiLine){c=i.split(/\r\n?|\n/).map(e=>e.normalize("NFC"));h=c.length}else c=[i.replace(/\r\n?|\n/,"").normalize("NFC")];let{width:u,height:m}=this;90!==o&&270!==o||([u,m]=[m,u]);this._defaultAppearance||(this.data.defaultAppearanceData=parseDefaultAppearance(this._defaultAppearance="/Helvetica 0 Tf 0 g"));let p,d,g,b=await WidgetAnnotation._getFontData(e,t,this.data.defaultAppearanceData,this._fieldResources.mergedResources);const w=[];let j=!1;for(const e of c){const t=b.encodeString(e);t.length>1&&(j=!0);w.push(t.join(""))}if(j&&n&f)return{needAppearances:!0};if(j&&this._isOffscreenCanvasSupported){const n=this.data.comb?"monospace":"sans-serif",a=new FakeUnicodeFont(e.xref,n),s=a.createFontResources(c.join("")),r=s.getRaw("Font");if(this._fieldResources.mergedResources.has("Font")){const e=this._fieldResources.mergedResources.get("Font");for(const[t,n]of r.getRawEntries())e.set(t,n)}else this._fieldResources.mergedResources.set("Font",r);const o=a.fontName.name;b=await WidgetAnnotation._getFontData(e,t,{fontName:o,fontSize:0},s);for(let e=0,t=w.length;e2)return`/Tx BMC q ${l}BT `+p+` 1 0 0 1 ${numberToString(2)} ${numberToString(C)} Tm (${escapeString(w[0])}) Tj ET Q EMC`;return`/Tx BMC q ${l}BT `+p+` 1 0 0 1 0 0 Tm ${this._renderText(w[0],b,d,u,q,{shift:0},2,C)} ET Q EMC`}static async _getFontData(e,t,n,a){const s=new OperatorList,r={font:null,clone(){return this}},{fontName:i,fontSize:o}=n;await e.handleSetFont(a,[i&&Name.get(i),o],null,s,t,r,null);return r.font}_getTextWidth(e,t){return Math.sumPrecise(t.charsToGlyphs(e).map(e=>e.width))/1e3}_computeFontSize(e,t,n,a,s){let{fontSize:r}=this.data.defaultAppearanceData,i=1.35*(r||12),o=Math.round(e/i);if(!r){const roundWithTwoDigits=e=>Math.floor(100*e)/100;if(-1===s){const s=this._getTextWidth(n,a);r=roundWithTwoDigits(Math.min(e/1.35,t/s));o=1}else{const l=n.split(/\r\n?|\n/),f=[];for(const e of l){const t=a.encodeString(e).join(""),n=a.charsToGlyphs(t),s=a.getCharPositions(t);f.push({line:t,glyphs:n,positions:s})}const isTooBig=n=>{let s=0;for(const r of f){s+=this._splitLine(null,a,n,t,r).length*n;if(s>e)return!0}return!1};o=Math.max(o,s);for(;;){i=e/o;r=roundWithTwoDigits(i/1.35);if(!isTooBig(r))break;o++}}const{fontName:l,fontColor:f}=this.data.defaultAppearanceData;this._defaultAppearance=function createDefaultAppearance({fontSize:e,fontName:t,fontColor:n}){return`/${escapePDFName(t)} ${e} Tf ${getPdfColor(n,!0)}`}({fontSize:r,fontName:l,fontColor:f})}return[this._defaultAppearance,r,e/o]}_renderText(e,t,n,a,s,r,i,o){let l;if(1===s){l=(a-this._getTextWidth(e,t)*n)/2}else if(2===s){l=a-this._getTextWidth(e,t)*n-i}else l=i;const f=numberToString(l-r.shift);r.shift=l;return`${f} ${o=numberToString(o)} Td (${escapeString(e)}) Tj`}_getSaveFieldResources(e){const{localResources:t,appearanceResources:n,acroFormResources:a}=this._fieldResources,s=this.data.defaultAppearanceData?.fontName;if(!s)return t||Dict.empty;for(const e of[t,n])if(e instanceof Dict){const t=e.get("Font");if(t instanceof Dict&&t.has(s))return e}if(a instanceof Dict){const n=a.get("Font");if(n instanceof Dict&&n.has(s)){const a=new Dict(e);a.set(s,n.getRaw(s));const r=new Dict(e);r.set("Font",a);return Dict.merge({xref:e,dictArray:[r,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|=E;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 n=getInheritableProperty({dict:t,key:"Q"});(!Number.isInteger(n)||n<0||n>2)&&(n=null);this.data.textAlignment=n;let a=getInheritableProperty({dict:t,key:"MaxLen"});(!Number.isInteger(a)||a<0)&&(a=0);this.data.maxLen=a;this.data.multiLine=this.hasFieldFlag(G);this.data.comb=this.hasFieldFlag(te)&&!this.data.multiLine&&!this.data.password&&!this.hasFieldFlag(Q)&&0!==this.data.maxLen;this.data.doNotScroll=this.hasFieldFlag(ee);const{actions:s}=this.data;if(!s)return;const r=/^AF(Date|Time)_(?:Keystroke|Format)(?:Ex)?\(['"]?([^'"]+)['"]?\);$/;let i=!1;const o=s.get("Format"),l=s.get("Keystroke");(1===o?.length&&1===l?.length&&r.test(o[0])&&r.test(l[0])||0===o?.length&&1===l?.length&&r.test(l[0])||0===l?.length&&1===o?.length&&r.test(o[0]))&&(i=!0);const f=[];o&&f.push(...o);l&&f.push(...l);if(i){s.delete("Keystroke");s.set("Format",f)}for(const e of f){const t=e.match(r);if(!t)continue;const n="Date"===t[1];let a=t[2];const s=parseInt(a,10);isNaN(s)||Math.floor(Math.log10(s))+1!==t[2].length||(a=(n?Xi:Ki)[s]??a);this.data.datetimeFormat=a;if(!i)break;if(n){if(/HH|MM|ss|h/.test(a)){this.data.datetimeType="datetime-local";this.data.timeStep=/ss/.test(a)?1:60}else this.data.datetimeType="date";break}this.data.datetimeType="time";this.data.timeStep=/ss/.test(a)?1:60;break}}get hasTextContent(){return!!this.appearance&&!this._needAppearances}_getCombAppearance(e,t,n,a,s,r,i,o,l){const f=s/this.data.maxLen,c=this.getBorderAndBackgroundAppearances(l),h=t.getCharPositions(n).map(([e,s])=>{const r=n.substring(e,s);return{glyph:r,width:this._getTextWidth(r,t)*a}});o&&h.reverse();const u=f*h.length;let m=0;1===i?m+=Math.floor((s-u)/(2*f))*f:2===i&&(m+=s-u);const p=[];let d=0;for(let e=0,t=h.length;ea){l.push(e.substring(u,n));u=n;m=d;f=-1;h=-1}else{m+=d;f=n;c=s;h=t}else if(m+d>a)if(-1!==f){l.push(e.substring(u,c));u=c;t=h+1;f=-1;m=0}else{l.push(e.substring(u,n));u=n;m=d}else m+=d}ut?`\\${t}`:"\\s+");new RegExp(`^\\s*${r}\\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($),n=this.hasFieldFlag(Y);this.data.checkBox=!t&&!n;this.data.radioButton=t&&!n;this.data.pushButton=n;this.data.isTooltipOnly=!1;this.data.hasOwnCanvas=!0;this.data.noHTML=!1;this.data.checkBox?this._processCheckBox(e):this.data.radioButton?this._processRadioButton(e):this.data.pushButton?this._processPushButton(e):warn("Invalid field flags for button widget annotation")}get _ownCanvasRequiresForms(){return this.data.checkBox||this.data.radioButton}#Ft(e,t,n,a,s,r){if(!r)return this._getOperatorListNoAppearance();const i=this.appearance,o=lookupMatrix(r.dict.getArray("Matrix"),bn);s&&r.dict.set("Matrix",this.getRotationMatrix(a));this.appearance=r;const l=super.getOperatorList(e,t,n,a);this.appearance=i;r.dict.set("Matrix",o);return l}async getOperatorList(e,t,n,a){if(this.data.pushButton)return super.getOperatorList(e,t,n,!1,a);if(n&o&&n&c&&(this.data.checkBox||this.data.radioButton)){const setCanvasName=(e,t)=>{const n=e.fnArray.indexOf(Dt);-1!==n&&e.argsArray[n].push(t)},s=await this.#Ft(e,t,n,a,null,this.checkedAppearance);setCanvasName(s.opList,"checked");const r=await this.#Ft(e,t,n,a,null,this.uncheckedAppearance);setCanvasName(r.opList,"unchecked");s.opList.addOpList(r.opList);s.separateForm||=r.separateForm;s.separateCanvas||=r.separateCanvas;return s}let s=null,r=null;if(a){const e=a.get(this.data.id);s=e?e.value:null;r=e?e.rotation:null}if(null===s&&this.appearance)return super.getOperatorList(e,t,n,a);s??=this.data.checkBox?this.data.fieldValue===this.data.exportValue:this.data.fieldValue===this.data.buttonValue;return this.#Ft(e,t,n,a,r,s?this.checkedAppearance:this.uncheckedAppearance)}async save(e,t,n,a){this.data.checkBox?this._saveCheckbox(e,t,n,a):this.data.radioButton&&this._saveRadioButton(e,t,n,a)}async _saveCheckbox(e,t,n,a){if(!n)return;const s=n.get(this.data.id),r=this._buildFlags(s?.noView,s?.noPrint);let i=s?.rotation,o=s?.value;if(void 0===i&&void 0===r){if(void 0===o)return;if(this.data.fieldValue===this.data.exportValue===o)return}let l=e.xref.fetchIfRef(this.ref);if(!(l instanceof Dict))return;l=l.clone();void 0===i&&(i=this.rotation);void 0===o&&(o=this.data.fieldValue===this.data.exportValue);const f={path:this.data.fieldName,value:o?this.data.exportValue:""},c=Name.get(o?this._onStateName:"Off");this.setValue(l,c,e.xref,a);l.set("AS",c);l.set("M",`D:${getModificationDate()}`);void 0!==r&&l.set("F",r);const h=this._getMKDict(i);h&&l.set("MK",h);a.put(this.ref,{data:l,xfa:f,needAppearances:!1})}async _saveRadioButton(e,t,n,a){if(!n)return;const s=n.get(this.data.id),r=this._buildFlags(s?.noView,s?.noPrint);let i=s?.rotation,o=s?.value;if(void 0===i&&void 0===r){if(void 0===o)return;if(this.data.fieldValue===this.data.buttonValue===o)return}let l=e.xref.fetchIfRef(this.ref);if(!(l instanceof Dict))return;l=l.clone();void 0===o&&(o=this.data.fieldValue===this.data.buttonValue);void 0===i&&(i=this.rotation);const f={path:this.data.fieldName,value:o?this.data.buttonValue:""},c=Name.get(o?this._onStateName:"Off");o&&this.setValue(l,c,e.xref,a);l.set("AS",c);l.set("M",`D:${getModificationDate()}`);void 0!==r&&l.set("F",r);const h=this._getMKDict(i);h&&l.set("MK",h);a.put(this.ref,{data:l,xfa:f,needAppearances:!1})}_getDefaultCheckedAppearance(e,t){const{width:n,height:a}=this,s=[0,0,n,a],r=.8*Math.min(n,a);let i,o;if("check"===t){i={width:.755*r,height:.705*r};o="3"}else if("disc"===t){i={width:.791*r,height:.705*r};o="l"}else unreachable(`_getDefaultCheckedAppearance - unsupported type: ${t}`);const l=`q BT /PdfJsZaDb ${r} Tf 0 g ${numberToString((n-i.width)/2)} ${numberToString((a-i.height)/2)} Td (${o}) Tj ET Q`,f=new Dict(e.xref);f.set("FormType",1);f.setIfName("Subtype","Form");f.setIfName("Type","XObject");f.set("BBox",s);f.set("Matrix",[1,0,0,1,0,0]);f.set("Length",l.length);const c=new Dict(e.xref),h=new Dict(e.xref);h.set("PdfJsZaDb",this.fallbackFontDict);c.set("Font",h);f.set("Resources",c);this.checkedAppearance=new StringStream(l,f);this._streams.push(this.checkedAppearance)}_getOnStateName(e){const t=e.get("AP");if(!(t instanceof Dict))return null;const n=t.get("N");if(!(n instanceof Dict))return null;for(const e of n.getKeys())if("Off"!==e)return e;return null}_getExportValueForOptIndex(e,t,n){if(Number.isInteger(e)&&e>=0&&e"Off"!==e);r.length=0;r.push("Off",e)}const i=r[1];this._onStateName=i;const o=getInheritableProperty({dict:e.dict,key:"Opt"}),l=this._getOptInfo(e.dict,i,o,e.xref);this.data.exportValue=this._getExportValue(i,l,e.xref);r.includes(this.data.fieldValue)||this.data.fieldValue===this.data.exportValue||(this.data.fieldValue="Off");this.data.fieldValue=this._getExportValue(this.data.fieldValue,l,e.xref);this.data.defaultFieldValue=this._getExportValue(this.data.defaultFieldValue,l,e.xref);const f=n?.get(i);this.checkedAppearance=f instanceof BaseStream?f:null;const c=n?.get("Off");this.uncheckedAppearance=c instanceof BaseStream?c: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 n=t.get("V");n instanceof Name&&(this.data.fieldValue=this._decodeFormValue(n))}const n=e.dict.get("AP");if(!(n instanceof Dict))return;const a=n.get("N");if(!(a instanceof Dict))return;let s=null;for(const e of a.getKeys())if("Off"!==e){s=e;break}this._onStateName=s;const r=getInheritableProperty({dict:e.dict,key:"Opt"}),i=this._getOptInfo(e.dict,s,r,e.xref);this.data.buttonValue=this._getExportValue(s,i,e.xref);this.data.fieldValue=this._getExportValue(this.data.fieldValue,i,e.xref);this.data.defaultFieldValue=this._getExportValue(this.data.defaultFieldValue,i,e.xref);const o=a.get(s);this.checkedAppearance=o instanceof BaseStream?o:null;const l=a.get("Off");this.uncheckedAppearance=l instanceof BaseStream?l: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:n}=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:n.baseUrl,docAttachments:n.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:n}=e;this.indices=t.getArray("I");this.hasIndices=Array.isArray(this.indices)&&this.indices.length>0;this.data.options=[];const a=getInheritableProperty({dict:t,key:"Opt"});if(Array.isArray(a))for(let e=0,t=a.length;e=0&&t0&&(this.data.options=this.data.fieldValue.map(e=>({exportValue:e,displayValue:e})));this.data.combo=this.hasFieldFlag(J);this.data.multiSelect=this.hasFieldFlag(Z);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 n=e?.get(this.data.id)?.value;Array.isArray(n)||(n=[n]);const a=[],{options:s}=this.data;for(let e=0,t=0,r=s.length;en){n=a;t=e}}[u,m]=this._computeFontSize(e,o-4,t,h,-1)}const p=1.35*m,d=(p-m)/2,g=Math.floor(l/p);let b=0;if(c.length>0){const e=Math.min(...c);b=MathClamp(Math.max(...c)-g+1,0,e)}const w=Math.min(b+g+1,f),j=["/Tx BMC q",`1 1 ${o} ${l} re W n`];if(c.length){j.push("0.600006 0.756866 0.854904 rg");for(const e of c)b<=e&&ee.trimEnd());const{coords:e,bbox:t,matrix:n}=FakeUnicodeFont.getFirstPositionInfo(this.rectangle,this.rotation,a);this.data.textPosition=this._transformPoint(e,t,n)}if(this._isOffscreenCanvasSupported){const s=e.dict.get("CA"),r=new FakeUnicodeFont(n,"sans-serif");this.appearance=r.createAppearance(this._contents.str,this.rectangle,this.rotation,a,t,s);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:n,ap:a}){const{color:s,date:r,fontSize:i,oldAnnotation:o,rect:l,rotation:f,user:c,value:h}=e,u=o||new Dict(t);u.setIfNotExists("Type",Name.get("Annot"));u.setIfNotExists("Subtype",Name.get("FreeText"));u.set(o?"M":"CreationDate",`D:${getModificationDate(r)}`);o&&u.delete("RC");u.setIfArray("Rect",l);const m=`/Helv ${i} Tf ${getPdfColor(s,!0)}`;u.set("DA",m);u.setIfDefined("Contents",stringToAsciiOrUTF16BE(h));u.setIfNotExists("F",4);u.setIfNotExists("Border",[0,0,0]);u.setIfNumber("Rotate",f);u.setIfDefined("T",stringToAsciiOrUTF16BE(c));if(n||a){const e=new Dict(t);u.set("AP",e);e.set("N",n||a)}return u}static async createNewAppearanceStream(e,t,n){const{baseFontRef:a,evaluator:s,task:r}=n,{color:i,fontSize:o,rect:l,rotation:f,value:c}=e;if(!i)return null;const h=new Dict(t),u=new Dict(t);if(a)u.set("Helv",a);else{const e=new Dict(t);e.setIfName("BaseFont","Helvetica");e.setIfName("Type","Font");e.setIfName("Subtype","Type1");e.setIfName("Encoding","WinAnsiEncoding");u.set("Helv",e)}h.set("Font",u);const m=await WidgetAnnotation._getFontData(s,r,{fontName:"Helv",fontSize:o},h),[p,d,g,b]=l;let w=g-p,j=b-d;f%180!=0&&([w,j]=[j,w]);const k=c.split("\n"),y=o/1e3;let q=-1/0;const v=[];for(let e of k){const t=m.encodeString(e);if(t.length>1)return null;e=t.join("");v.push(e);let n=0;const a=m.charsToGlyphs(e);for(const e of a)n+=e.width*y;q=Math.max(q,n)}const S=q>w?w/q:1;let x=1;const C=1.35*o,F=1*o,T=C*k.length;T>j&&(x=j/T);const R=o*Math.min(S,x);let O,H,D;switch(f){case 0:D=[1,0,0,1];H=[l[0],l[1],w,j];O=[l[0],l[3]-F];break;case 90:D=[0,1,-1,0];H=[l[1],-l[2],w,j];O=[l[1],-l[0]-F];break;case 180:D=[-1,0,0,-1];H=[-l[2],-l[3],w,j];O=[-l[2],-l[1]-F];break;case 270:D=[0,-1,1,0];H=[-l[3],l[0],w,j];O=[-l[3],l[2]-F]}const M=["q",`${D.join(" ")} 0 0 cm`,`${H.join(" ")} re W n`,"BT",`${getPdfColor(i,!0)}`,`0 Tc /Helv ${numberToString(R)} Tf`];M.push(`${O.join(" ")} Td (${escapeString(v[0])}) Tj`);const N=numberToString(C);for(let e=1,t=v.length;e{e.push(`${a[0]} ${a[1]} m`,`${a[2]} ${a[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:n}=e;this.data.hasOwnCanvas=this.data.noRotate;this.data.noHTML=!1;if(!this.appearance){const e=getPdfColorArray(this.color,[0,0,0]),a=t.get("CA"),s=getPdfColorArray(getRgbColor(t.getArray("IC"),null)),r=s?a:null;if(0===this.borderStyle.width&&!s)return;this._setDefaultAppearance({xref:n,extra:`${this.borderStyle.width} w`,strokeColor:e,fillColor:s,strokeAlpha:a,fillAlpha:r,pointsCallback:(e,t)=>{const n=t[4]+this.borderStyle.width/2,a=t[5]+this.borderStyle.width/2,r=t[6]-t[4]-this.borderStyle.width,i=t[3]-t[7]-this.borderStyle.width;e.push(`${n} ${a} ${r} ${i} re`);s?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:n}=e;if(!this.appearance){const e=getPdfColorArray(this.color,[0,0,0]),a=t.get("CA"),s=getPdfColorArray(getRgbColor(t.getArray("IC"),null)),r=s?a:null;if(0===this.borderStyle.width&&!s)return;const i=4/3*Math.tan(Math.PI/8);this._setDefaultAppearance({xref:n,extra:`${this.borderStyle.width} w`,strokeColor:e,fillColor:s,strokeAlpha:a,fillAlpha:r,pointsCallback:(e,t)=>{const n=t[0]+this.borderStyle.width/2,a=t[1]-this.borderStyle.width/2,r=t[6]-this.borderStyle.width/2,o=t[7]+this.borderStyle.width/2,l=n+(r-n)/2,f=a+(o-a)/2,c=(r-n)/2*i,h=(o-a)/2*i;e.push(`${l} ${o} m`,`${l+c} ${o} ${r} ${f+h} ${r} ${f} c`,`${r} ${f-h} ${l+c} ${a} ${l} ${a} c`,`${l-c} ${a} ${n} ${f-h} ${n} ${f} c`,`${n} ${f+h} ${l-c} ${o} ${l} ${o} c`,"h");s?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:n,xref:a}=e;this.data.hasOwnCanvas=this.data.noRotate;this.data.noHTML=!1;this.data.vertices=null;if(!(this instanceof PolygonAnnotation)){this.setLineEndings(n.getArray("LE"));this.data.lineEndings=this.lineEndings}const s=n.getArray("Vertices");if(!isNumberArray(s,null))return;const r=this.data.vertices=Float32Array.from(s);if(!this.appearance){const e=getPdfColorArray(this.color,[0,0,0]),s=n.get("CA");let i,o=getRgbColor(n.getArray("IC"),null);o&&=getPdfColorArray(o);i=o?this.color?o.every((t,n)=>t===e[n])?"f":"B":"f":"S";const l=this.borderStyle.width||1,f=2*l,c=t.slice();for(let e=0,t=r.length;e{for(let t=0,n=r.length;t{for(const t of this.data.inkLists){for(let n=0,a=t.length;n0){const e=new Dict(t);p.set("BS",e);e.set("W",u)}p.setIfArray("C",getPdfColorArray(r));p.setIfNumber("CA",o);if(a||n){const e=new Dict(t);p.set("AP",e);e.set("N",n||a)}return p}static async createNewAppearanceStream(e,t,n){if(e.outlines)return this.createNewAppearanceStreamForHighlight(e,t,n);const{color:a,rect:s,paths:r,thickness:i,opacity:o}=e;if(!a)return null;const l=[`${i} w 1 J 1 j`,`${getPdfColor(a,!1)}`];1!==o&&l.push("/R0 gs");for(const e of r.lines)writeLineToCurveToAppearance(e,l,!0);l.push("S");const f=l.join("\n"),c=new Dict(t);c.set("FormType",1);c.setIfName("Subtype","Form");c.setIfName("Type","XObject");c.set("BBox",s);c.set("Length",f.length);if(1!==o){const e=new Dict(t),n=new Dict(t),a=new Dict(t);a.set("CA",o);a.setIfName("Type","ExtGState");n.set("R0",a);e.set("ExtGState",n);c.set("Resources",e)}return new StringStream(f,c)}static async createNewAppearanceStreamForHighlight(e,t,n){const{color:a,rect:s,outlines:{outline:r},opacity:i}=e;if(!a)return null;const o=[`${getPdfColor(a,!0)}`,"/R0 gs"];writeLineToCurveToAppearance(r,o);o.push("h f");const l=o.join("\n"),f=new Dict(t);f.set("FormType",1);f.setIfName("Subtype","Form");f.setIfName("Type","XObject");f.set("BBox",s);f.set("Length",l.length);const c=new Dict(t),h=new Dict(t);c.set("ExtGState",h);f.set("Resources",c);const u=new Dict(t);h.set("R0",u);u.setIfName("BM","Multiply");if(1!==i){u.set("ca",i);u.setIfName("Type","ExtGState")}return new StringStream(l,f)}}class HighlightAnnotation extends MarkupAnnotation{constructor(e){super(e);const{dict:t,xref:n}=e;this.data.isEditable=!this.data.noHTML;this.data.noHTML=!1;this.data.opacity=t.get("CA")||1;if(this.data.quadPoints=getQuadPoints(t,null)){if(!this.appearance){const e=getPdfColorArray(this.color,[1,1,0]),a=t.get("CA");this._setDefaultAppearance({xref:n,fillColor:e,blendMode:"Multiply",fillAlpha:a,pointsCallback:(e,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:n,ap:a}){const{color:s,date:r,oldAnnotation:i,opacity:o,rect:l,rotation:f,user:c,quadPoints:h}=e,u=i||new Dict(t);u.setIfNotExists("Type",Name.get("Annot"));u.setIfNotExists("Subtype",Name.get("Highlight"));u.set(i?"M":"CreationDate",`D:${getModificationDate(r)}`);u.setIfArray("Rect",l);u.setIfNotExists("F",4);u.setIfNotExists("Border",[0,0,0]);u.setIfNumber("Rotate",f);u.setIfArray("QuadPoints",h);u.setIfArray("C",getPdfColorArray(s));u.setIfNumber("CA",o);u.setIfDefined("T",stringToAsciiOrUTF16BE(c));if(n||a){const e=new Dict(t);u.set("AP",e);e.set("N",n||a)}return u}static async createNewAppearanceStream(e,t,n){const{color:a,rect:s,outlines:r,opacity:i}=e;if(!a)return null;const o=[`${getPdfColor(a,!0)}`,"/R0 gs"],l=[];for(const e of r){l.length=0;l.push(`${numberToString(e[0])} ${numberToString(e[1])} m`);for(let t=2,n=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:n}=e;if(this.data.quadPoints=getQuadPoints(t,null)){if(!this.appearance){const e=getPdfColorArray(this.color,[0,0,0]),a=t.get("CA");this._setDefaultAppearance({xref:n,extra:"[] 0 d 1 w",strokeColor:e,strokeAlpha:a,pointsCallback:(e,t)=>{const n=(t[1]-t[5])/6;let a=n,s=t[4];const r=t[5],i=t[6];e.push(`${s} ${r+a} m`);do{s+=2;a=0===a?n:0;e.push(`${s} ${r+a} l`)}while(s{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{#Tt=null;constructor(e){super(e);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.#Tt??=this.data.hasOwnCanvas;this.data.hasOwnCanvas=!0;return!0}if(null!==this.#Tt){this.data.hasOwnCanvas=this.#Tt;this.#Tt=null}return!t?.has(this.data.id)}static createNewDict(e,t,{apRef:n,ap:a}){const{date:s,oldAnnotation:r,rect:i,rotation:o,user:l}=e,f=r||new Dict(t);f.setIfNotExists("Type",Name.get("Annot"));f.setIfNotExists("Subtype",Name.get("Stamp"));f.set(r?"M":"CreationDate",`D:${getModificationDate(s)}`);f.setIfArray("Rect",i);f.setIfNotExists("F",4);f.setIfNotExists("Border",[0,0,0]);f.setIfNumber("Rotate",o);f.setIfDefined("T",stringToAsciiOrUTF16BE(l));if(n||a){const e=new Dict(t);f.set("AP",e);e.set("N",n||a)}return f}static async#Rt(e,t){const{areContours:n,color:a,rect:s,lines:r,thickness:i}=e;if(!a)return null;const o=[`${i} w 1 J 1 j`,`${getPdfColor(a,n)}`];for(const e of r)writeLineToCurveToAppearance(e,o,!0);o.push(n?"F":"S");const l=o.join("\n"),f=new Dict(t);f.set("FormType",1);f.setIfName("Subtype","Form");f.setIfName("Type","XObject");f.set("BBox",s);f.set("Length",l.length);return new StringStream(l,f)}static async createNewAppearanceStream(e,t,n){if(e.oldAnnotation)return null;if(e.isSignature)return this.#Rt(e,t);const{rotation:a}=e,{imageRef:s,width:r,height:i}=n.image,o=new Dict(t),l=new Dict(t);o.set("XObject",l);l.set("Im0",s);const f=`q ${r} 0 0 ${i} 0 0 cm /Im0 Do Q`,c=new Dict(t);c.set("FormType",1);c.setIfName("Subtype","Form");c.setIfName("Type","XObject");c.set("BBox",[0,0,r,i]);c.set("Resources",o);if(a){const e=getRotationMatrix(a,r,i);c.set("Matrix",e)}return new StringStream(f,c)}}class FileAttachmentAnnotation extends MarkupAnnotation{constructor(e){super(e);const{annotationGlobals:t,dict:n}=e,a=n.get("FS");this.data.hasOwnCanvas=this.data.noRotate;this.data.noHTML=!1;this.data.fileId=this._getAttachmentId(a,n.getRaw("FS"),t);this.data.file=new FileSpec(a).serializable;const s=n.get("Name");this.data.name=s instanceof Name?stringToPDFString(s.name):"PushPin";const r=n.get("ca");this.data.fillAlpha="number"==typeof r&&r>=0&&r<=1?r:null}}class MediaAnnotation extends Annotation{static#Ot=/^(?:video|audio)\//;constructor(e){super(e);this.data.noHTML=!0}_setMediaData({assetRef:e,assetDict:t,filename:n,contentType:a,wrapSound:s=!1},r){this.data.noHTML=!1;this.data.richMedia={fileId:this._getAttachmentId(t,e,r,s),filename:n,contentType:a}}static _getContentType(e,t,n=null){if("string"==typeof n&&MediaAnnotation.#Ot.test(n))return n;const a=FileSpec.pickPlatformItem(e.get("EF")),s=a instanceof BaseStream?a.dict?.get("Subtype"):null;if(s instanceof Name&&MediaAnnotation.#Ot.test(s.name))return s.name;const r=t.split(".").at(-1)?.toLowerCase();switch(r){case"mp4":case"m4v":return"video/mp4";case"webm":return"video/webm";case"ogv":return"video/ogg";case"mov":return"video/quicktime";case"mp3":return"audio/mpeg";case"m4a":return"audio/mp4";case"wav":return"audio/wav";case"oga":case"ogg":return"audio/ogg";default:return null}}}class RichMediaAnnotation extends MediaAnnotation{constructor(e){super(e);const{dict:t,xref:n,annotationGlobals:a}=e,s=t.get("RichMediaContent");if(!(s instanceof Dict))return;const r=RichMediaAnnotation.#Ht(s,n);r?this._setMediaData(r,a):warn("RichMedia annotation has no playable asset.")}static#Ht(e,t){const n=e.get("Configurations");if(!Array.isArray(n))return null;for(const e of n){const n=t.fetchIfRef(e);if(!(n instanceof Dict))continue;const a=n.get("Instances");if(Array.isArray(a))for(const e of a){const n=t.fetchIfRef(e);if(!(n instanceof Dict))continue;if(isName(n.get("Subtype"),"Flash"))continue;const a=n.getRaw("Asset"),s=t.fetchIfRef(a);if(!(s instanceof Dict))continue;if(!FileSpec.hasEmbeddedFile(s))continue;const{filename:r}=new FileSpec(s).serializable,i=MediaAnnotation._getContentType(s,r);if(i)return{assetRef:a instanceof Ref?a:null,assetDict:s,filename:r,contentType:i}}}return null}}class ScreenAnnotation extends MediaAnnotation{constructor(e){super(e);const{dict:t,xref:n,annotationGlobals:a}=e,s=ScreenAnnotation.#Ht(t,n);s&&this._setMediaData(s,a)}static#Ht(e,t){for(const n of this.#Bt(e)){const e=this.#Dt(n.get("R"),t,new RefSet);if(e)return e}return null}static*#Bt(e){const t=e.get("A");t instanceof Dict&&isName(t.get("S"),"Rendition")&&this.#Mt(t)&&(yield t);const n=e.get("AA");if(n instanceof Dict)for(const[,e]of n)e instanceof Dict&&isName(e.get("S"),"Rendition")&&this.#Mt(e)&&(yield e)}static#Mt(e){const t=e.get("OP");return void 0===t||t===D||t===M}static#Dt(e,t,n){if(!(e instanceof Dict))return null;const a=e.get("S");if(isName(a,"MR"))return this.#Nt(e.get("C"),t);if(isName(a,"SR")){const a=e.get("R");if(Array.isArray(a))for(const e of a){if(e instanceof Ref){if(n.has(e))continue;n.put(e)}const a=this.#Dt(t.fetchIfRef(e),t,n);if(a)return a}}return null}static#Nt(e,t){if(!(e instanceof Dict&&isName(e.get("S"),"MCD")))return null;const n=e.getRaw("D"),a=t.fetchIfRef(n),s=e.get("CT");let r,i,o="string"==typeof s?s:null;if(a instanceof BaseStream){r=a.dict;const t=e.get("N");i="string"==typeof t?stringToPDFString(t):"";if(!o){const e=a.dict.get("Subtype");e instanceof Name&&(o=e.name)}}else{if(!(a instanceof Dict))return null;if(!FileSpec.hasEmbeddedFile(a))return null;r=a;({filename:i}=new FileSpec(a).serializable)}const l=MediaAnnotation._getContentType(r,i,o);return l?{assetRef:n instanceof Ref?n:null,assetDict:r,filename:i,contentType:l}:null}}class SoundAnnotation extends MediaAnnotation{constructor(e){super(e);const{dict:t,xref:n,annotationGlobals:a}=e,s=t.getRaw("Sound");if(!(s instanceof Ref))return;let r;try{r=n.fetch(s)}catch(e){if(e instanceof MissingDataException)throw e;warn(`SoundAnnotation: "${e}".`);return}r instanceof BaseStream&&getSoundFormat(r.dict)&&this._setMediaData({assetRef:s,assetDict:r.dict,filename:"sound.wav",contentType:"audio/wav",wrapSound:!0},a)}}const xf={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,n){let a=1732584193,s=-271733879,r=-1732584194,i=271733878;const o=n+72&-64,l=new Uint8Array(o);let f,c;for(f=0;f>5&255;l[f++]=n>>13&255;l[f++]=n>>21&255;l[f++]=n>>>29&255;f+=3;const u=new Int32Array(16),{k:m,r:p}=xf;for(f=0;f>>32-r)|0;n=a}a=a+n|0;s=s+o|0;r=r+h|0;i=i+d|0}return new Uint8Array([255&a,a>>8&255,a>>16&255,a>>>24&255,255&s,s>>8&255,s>>16&255,s>>>24&255,255&r,r>>8&255,r>>16&255,r>>>24&255,255&i,i>>8&255,i>>16&255,i>>>24&255])}function decodeString(e){try{return stringToUTF8String(e)}catch(t){warn(`UTF-8 decoding failed: "${t}".`);return e}}class DatasetXMLParser extends SimpleXMLParser{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 n=t.firstChild;return"value"===n?.nodeName?t.children.map(e=>decodeString(e.textContent)):decodeString(t.textContent)}}class SingleIntersector{#Pt;minX=1/0;minY=1/0;maxX=-1/0;maxY=-1/0;#Et=null;#_t=[];#zt=[];#Lt=-1;#Ut=!1;constructor(e){this.#Pt=e;const t=e.data.quadPoints;if(t){for(let e=0,n=t.length;e8&&(this.#Et=t)}else[this.minX,this.minY,this.maxX,this.maxY]=e.data.rect}#Wt(e,t){if(this.minX>=e||this.maxX<=e||this.minY>=t||this.maxY<=t)return!1;const n=this.#Et;if(!n)return!0;if(this.#Lt>=0){const a=this.#Lt;if(!(n[a]>=e||n[a+2]<=e||n[a+5]>=t||n[a+1]<=t))return!0;this.#Lt=-1}for(let a=0,s=n.length;a=e||n[a+2]<=e||n[a+5]>=t||n[a+1]<=t)){this.#Lt=a;return!0}return!1}addGlyph(e,t,n){if(!this.#Wt(e,t)){this.disableExtraChars();return!1}if(this.#zt.length>0){this.#_t.push(this.#zt.join(""));this.#zt.length=0}this.#_t.push(n);this.#Ut=!0;return!0}addExtraChar(e){this.#Ut&&this.#zt.push(e)}disableExtraChars(){if(this.#Ut){this.#Ut=!1;this.#zt.length=0}}setText(){this.#Pt.data.overlaidText=this.#_t.join("")}}const Cf=64;class Intersector{#Xt=[];#Kt=[];#Gt;#Vt;#$t;#Yt;#Jt;#Qt;constructor(e){let t=1/0,n=1/0,a=-1/0,s=-1/0;const r=this.#Xt;for(const i of e){if(!i.data.quadPoints&&!i.data.rect)continue;const e=new SingleIntersector(i);r.push(e);t=Math.min(t,e.minX);n=Math.min(n,e.minY);a=Math.max(a,e.maxX);s=Math.max(s,e.maxY)}this.#Gt=t;this.#$t=n;this.#Vt=a;this.#Yt=s;this.#Jt=63/(a-t);this.#Qt=63/(s-n);for(const e of r){const t=this.#Zt(e.minX,e.minY),n=this.#Zt(e.maxX,e.maxY),a=(n-t)%Cf,s=Math.floor((n-t)/Cf);for(let n=t;n<=t+s*Cf;n+=Cf)for(let t=0;t<=a;t++)(this.#Kt[n+t]??=[]).push(e)}}#Zt(e,t){return Math.floor((e-this.#Gt)*this.#Jt)+Math.floor((t-this.#$t)*this.#Qt)*Cf}addGlyph(e,t,n,a){const s=e[4]+t/2,r=e[5]+n/2;if(sthis.#Vt||r>this.#Yt)return;const i=this.#Kt[this.#Zt(s,r)];if(i)for(const e of i)e.addGlyph(s,r,a)}addExtraChar(e){for(const t of this.#Xt)t.addExtraChar(e)}setText(){for(const e of this.#Xt)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){this.low=this.low>>>e|this.high<<32-e;this.high=this.high>>>e|0}rotateRight(e){let t,n;if(32&e){n=this.low;t=this.high}else{t=this.low;n=this.high}e&=31;this.low=t>>>e|n<<32-e;this.high=n>>>e|t<<32-e}not(){this.high=~this.high;this.low=~this.low}add(e){const t=(this.low>>>0)+(e.low>>>0);let n=(this.high>>>0)+(e.high>>>0);t>4294967295&&(n+=1);this.low=0|t;this.high=0|n}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 If={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,n,a,s){e.assign(t);e.and(n);s.assign(t);s.not();s.and(a);e.xor(s)}function maj(e,t,n,a,s){e.assign(t);e.and(n);s.assign(t);s.and(a);e.xor(s);s.assign(n);s.and(a);e.xor(s)}function sigma(e,t,n){e.assign(t);e.rotateRight(28);n.assign(t);n.rotateRight(34);e.xor(n);n.assign(t);n.rotateRight(39);e.xor(n)}function sigmaPrime(e,t,n){e.assign(t);e.rotateRight(14);n.assign(t);n.rotateRight(18);e.xor(n);n.assign(t);n.rotateRight(41);e.xor(n)}function littleSigma(e,t,n){e.assign(t);e.rotateRight(1);n.assign(t);n.rotateRight(8);e.xor(n);n.assign(t);n.shiftRight(7);e.xor(n)}function littleSigmaPrime(e,t,n){e.assign(t);e.rotateRight(19);n.assign(t);n.rotateRight(61);e.xor(n);n.assign(t);n.shiftRight(6);e.xor(n)}function calculateSHA512(e,t,n,a=!1){let s,r,i,o,l,f,c,h;if(a){s=new Word64(3418070365,3238371032);r=new Word64(1654270250,914150663);i=new Word64(2438529370,812702999);o=new Word64(355462360,4144912697);l=new Word64(1731405415,4290775857);f=new Word64(2394180231,1750603025);c=new Word64(3675008525,1694076839);h=new Word64(1203062813,3204075428)}else{s=new Word64(1779033703,4089235720);r=new Word64(3144134277,2227873595);i=new Word64(1013904242,4271175723);o=new Word64(2773480762,1595750129);l=new Word64(1359893119,2917565137);f=new Word64(2600822924,725511199);c=new Word64(528734635,4215389547);h=new Word64(1541459225,327033209)}const u=128*Math.ceil((n+17)/128),m=new Uint8Array(u);let p,d;for(p=0;p>>29&255;m[p++]=n>>21&255;m[p++]=n>>13&255;m[p++]=n>>5&255;m[p++]=n<<3&255;const b=new Array(80);for(p=0;p<80;p++)b[p]=new Word64(0,0);const{k:w}=If;let j=new Word64(0,0),k=new Word64(0,0),y=new Word64(0,0),q=new Word64(0,0),v=new Word64(0,0),S=new Word64(0,0),x=new Word64(0,0),C=new Word64(0,0);const F=new Word64(0,0),T=new Word64(0,0),R=new Word64(0,0),O=new Word64(0,0);let H,D;for(p=0;p>>t|e<<32-t}function calculate_sha256_ch(e,t,n){return e&t^~e&n}function calculate_sha256_maj(e,t,n){return e&t^e&n^t&n}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,n){let a=1779033703,s=3144134277,r=1013904242,i=2773480762,o=1359893119,l=2600822924,f=528734635,c=1541459225;const h=64*Math.ceil((n+9)/64),u=new Uint8Array(h);let m,p;for(m=0;m>>29&255;u[m++]=n>>21&255;u[m++]=n>>13&255;u[m++]=n>>5&255;u[m++]=n<<3&255;const g=new Uint32Array(64),{k:b}=Ff;for(m=0;m>24&255,a>>16&255,a>>8&255,255&a,s>>24&255,s>>16&255,s>>8&255,255&s,r>>24&255,r>>16&255,r>>8&255,255&r,i>>24&255,i>>16&255,i>>8&255,255&i,o>>24&255,o>>16&255,o>>8&255,255&o,l>>24&255,l>>16&255,l>>8&255,255&l,f>>24&255,f>>16&255,f>>8&255,255&f,c>>24&255,c>>16&255,c>>8&255,255&c])}class DecryptStream extends DecodeStream{#en=null;constructor(e,t,n){super(t);this.stream=e;this.dict=e.dict;this.decrypt=n}readBlock(){let e=this.#en??this.stream.getBytes(512);if(!e.length){this.eof=!0;return}this.#en=this.stream.getBytes(512);const t=this.#en.length>0;e=(0,this.decrypt)(e,!t);const n=this.bufferLength,a=n+e.length;this.ensureBuffer(a).set(e,n);this.bufferLength=a}getOriginalStream(){return this}}const Tf=new Set([160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8203,8239,8287,12288]),Rf=new Set([173,847,6150,6155,6156,6157,8203,8204,8205,8288,65024,65025,65026,65027,65028,65029,65030,65031,65032,65033,65034,65035,65036,65037,65038,65039,65279]);class ARCFourCipher{a=0;b=0;constructor(e){const t=new Uint8Array(256),n=e.length;for(let e=0;e<256;++e)t[e]=e;for(let a=0,s=0;a<256;++a){const r=t[a];s=s+r+e[a%n]&255;t[a]=t[s];t[s]=r}this.s=t}encryptBlock(e){let t=this.a,n=this.b;const a=this.s,s=e.length,r=new Uint8Array(s);for(let i=0;it<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 n,a,s;const r=new Uint8Array(16);r.set(e);for(let e=0,n=this._keySize;e<16;++e,++n)r[e]^=t[n];for(let e=this._cyclesOfRepetition-1;e>=1;--e){n=r[13];r[13]=r[9];r[9]=r[5];r[5]=r[1];r[1]=n;n=r[14];a=r[10];r[14]=r[6];r[10]=r[2];r[6]=n;r[2]=a;n=r[15];a=r[11];s=r[7];r[15]=r[3];r[11]=n;r[7]=a;r[3]=s;for(let e=0;e<16;++e)r[e]=this._inv_s[r[e]];for(let n=0,a=16*e;n<16;++n,++a)r[n]^=t[a];for(let e=0;e<16;e+=4){const t=this._mix[r[e]],a=this._mix[r[e+1]],s=this._mix[r[e+2]],i=this._mix[r[e+3]];n=t^a>>>8^a<<24^s>>>16^s<<16^i>>>24^i<<8;r[e]=n>>>24&255;r[e+1]=n>>16&255;r[e+2]=n>>8&255;r[e+3]=255&n}}n=r[13];r[13]=r[9];r[9]=r[5];r[5]=r[1];r[1]=n;n=r[14];a=r[10];r[14]=r[6];r[10]=r[2];r[6]=n;r[2]=a;n=r[15];a=r[11];s=r[7];r[15]=r[3];r[11]=n;r[7]=a;r[3]=s;for(let e=0;e<16;++e){r[e]=this._inv_s[r[e]];r[e]^=t[e]}return r}_encrypt(e,t){const n=this._s;let a,s,r;const i=new Uint8Array(16);i.set(e);for(let e=0;e<16;++e)i[e]^=t[e];for(let e=1;e=a;--n)if(e[n]!==t){t=0;break}o-=t;r[r.length-1]=e.subarray(0,16-t)}}const l=new Uint8Array(o);for(let e=0,t=0,n=r.length;e=256&&(o=255&(27^o))}for(let t=0;t<4;++t){n[e]=a^=n[e-32];e++;n[e]=s^=n[e-32];e++;n[e]=r^=n[e-32];e++;n[e]=i^=n[e-32];e++}}return n}}class PDFBase{_hash(e,t,n){unreachable("Abstract method `_hash` called")}checkOwnerPassword(e,t,n,a){const s=new Uint8Array(e.length+56);s.set(e,0);s.set(t,e.length);s.set(n,e.length+t.length);return isArrayEqual(this._hash(e,s,n),a)}checkUserPassword(e,t,n){const a=new Uint8Array(e.length+8);a.set(e,0);a.set(t,e.length);return isArrayEqual(this._hash(e,a,[]),n)}getOwnerKey(e,t,n,a){const s=new Uint8Array(e.length+56);s.set(e,0);s.set(t,e.length);s.set(n,e.length+t.length);const r=this._hash(e,s,n);return new AES256Cipher(r).decryptBlock(a,!1,new Uint8Array(16))}getUserKey(e,t,n){const a=new Uint8Array(e.length+8);a.set(e,0);a.set(t,e.length);const s=this._hash(e,a,[]);return new AES256Cipher(s).decryptBlock(n,!1,new Uint8Array(16))}}class PDF17 extends PDFBase{_hash(e,t,n){return calculateSHA256(t,0,t.length)}}class PDF20 extends PDFBase{_hash(e,t,n){let a=calculateSHA256(t,0,t.length).subarray(0,32),s=[0],r=0;for(;r<64||s.at(-1)>r-32;){const t=e.length+a.length+n.length,i=new Uint8Array(t);let o=0;i.set(e,o);o+=e.length;i.set(a,o);o+=a.length;i.set(n,o);const l=new Uint8Array(64*t);for(let e=0,n=0;e<64;e++,n+=t)l.set(i,n);s=new AES128Cipher(a.subarray(0,16)).encrypt(l,a.subarray(16,32));const f=Math.sumPrecise(s.slice(0,16))%3;0===f?a=calculateSHA256(s,0,s.length):1===f?a=calculateSHA384(s,0,s.length):2===f&&(a=calculateSHA512(s,0,s.length));r++}return a.subarray(0,32)}}class CipherTransform{#tn=new Map;embeddedFilterName=null;constructor(e,t=null,n=null){this.resolveCipher=e;this.streamFilterName=n;this.stringFilterName=t}#nn(e=null){const t=e instanceof Name?e.name:"__default__";return this.#tn.getOrInsertComputed(t,()=>this.resolveCipher(e))}createStream(e,t,n=null){const a=this.embeddedFilterName&&isDict(e.dict,"EmbeddedFile")?this.embeddedFilterName:this.streamFilterName,s=new(this.#nn(n||a));return new DecryptStream(e,t,function cipherTransformDecryptStream(e,t){return s.decryptBlock(e,t)})}decryptString(e){const t=new(this.#nn(this.stringFilterName));let n=stringToBytes(e);n=t.decryptBlock(n,!0);return bytesToString(n)}encryptString(e){const t=new(this.#nn(this.stringFilterName));if(t instanceof AESBaseCipher){const n=16-e.length%16;e+=String.fromCharCode(n).repeat(n);const a=new Uint8Array(16);crypto.getRandomValues(a);let s=stringToBytes(e);s=t.encrypt(s,a);const r=new Uint8Array(16+s.length);r.set(a);r.set(s,16);return bytesToString(r)}let n=stringToBytes(e);n=t.encrypt(n);return bytesToString(n)}}function utf8PasswordToBytes(e){try{e=utf8StringToString(e)}catch{warn("CipherTransformFactory: Unable to convert UTF8 encoded password.")}return stringToBytes(e)}class CipherTransformFactory{#an;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]))}#sn(e,t,n,a,s,r,i,o,l,f,c,h){if(t){const e=Math.min(127,t.length);t=t.subarray(0,e)}else t=[];const u=6===e?new PDF20:new PDF17;return u.checkUserPassword(t,o,i)?u.getUserKey(t,l,c):t.length&&u.checkOwnerPassword(t,a,r,n)?u.getOwnerKey(t,s,r,f):null}#rn(e,t,n,a,s,r,i,o){const l=40+n.length+e.length,f=new Uint8Array(l);let c,h,u=0;if(t){h=Math.min(32,t.length);for(;u>8&255;f[u++]=s>>16&255;f[u++]=s>>>24&255;f.set(e,u);u+=e.length;if(r>=4&&!o){f.fill(255,u,u+4);u+=4}let m=calculateMD5(f,0,u);const p=i>>3;if(r>=3)for(c=0;c<50;++c)m=calculateMD5(m,0,p);const d=m.subarray(0,p);let g,b;if(r>=3){u=0;f.set(CipherTransformFactory._defaultPasswordBytes,u);u+=32;f.set(e,u);u+=e.length;g=new ARCFourCipher(d);b=g.encryptBlock(calculateMD5(f,0,u));h=d.length;const t=new Uint8Array(h);for(c=1;c<=19;++c){for(let e=0;ea[t]===e)?d:null}#in(e,t,n,a){const s=new Uint8Array(32);let r=0;const i=Math.min(32,e.length);for(;r>3;if(n>=3)for(o=0;o<50;++o)l=calculateMD5(l,0,l.length);let c,h;if(n>=3){h=t;const e=new Uint8Array(f);for(o=19;o>=0;o--){for(let t=0;t>8&255;r[i++]=e>>16&255;r[i++]=255&t;r[i++]=t>>8&255;if(a){r[i++]=115;r[i++]=65;r[i++]=108;r[i++]=84}return calculateMD5(r,0,i).subarray(0,Math.min(s+5,16))}constructor(e,t,n){const a=e.get("Filter");if(!isName(a,"Standard"))throw new FormatError("unknown encryption method");this.filterName=a.name;this.dict=e;this.#an=t;const s=e.get("V");if(!Number.isInteger(s)||1!==s&&2!==s&&4!==s&&5!==s)throw new FormatError("unsupported encryption algorithm");this.algorithm=s;let r=e.get("Length");if(!r)if(s<=3)r=40;else{const t=e.get("CF"),n=e.get("StmF");if(t instanceof Dict&&n instanceof Name){t.suppressEncryption=!0;const e=t.get(n.name);r=e?.get("Length")||128;r<40&&(r<<=3)}}if(!Number.isInteger(r)||r<40||r%8!=0)throw new FormatError("invalid key length");let i=null,o=Name.get("Identity"),l=Name.get("Identity"),f=o;if(s>=4){i=e.get("CF");i instanceof Dict&&(i.suppressEncryption=!0);o=e.get("StmF")||Name.get("Identity");l=e.get("StrF")||Name.get("Identity");f=e.get("EFF")||o}this.cf=i;this.stmf=o;this.strf=l;this.eff=f;const c=stringToBytes(e.get("O")),h=stringToBytes(e.get("U")),u=c.subarray(0,32),m=h.subarray(0,32),p=e.get("P"),d=e.get("R"),g=(4===s||5===s)&&!1!==e.get("EncryptMetadata");this.encryptMetadata=g;const b=stringToBytes(t);let w,j,k;if(n)if(6===d){const e=function saslPrep(e){let t="";for(const n of e){const e=n.codePointAt(0);Tf.has(e)?t+=" ":Rf.has(e)||(t+=n)}return t.normalize("NFKC")}(n);w=utf8PasswordToBytes(e);e!==n&&(j=utf8PasswordToBytes(n))}else w=5===s?utf8PasswordToBytes(n):stringToBytes(n);if(5!==s)k=this.#rn(b,w,u,m,p,d,r,g);else{const t=c.subarray(32,40),n=c.subarray(40,48),a=h.subarray(0,48),s=h.subarray(32,40),r=h.subarray(40,48),i=stringToBytes(e.get("OE")),o=stringToBytes(e.get("UE")),l=stringToBytes(e.get("Perms"));for(const e of j?[w,j]:[w]){k=this.#sn(d,e,u,t,n,a,m,s,r,i,o,l);if(k)break}}if(!k){if(!n){if(this.algorithm>=4&&isName(this.stmf,"Identity")&&isName(this.strf,"Identity")){const e=this.cf?.get(this.eff.name),t=e?.get("AuthEvent");if(isName(t,"EFOpen")){this.encryptionKey=null;return}}throw new PasswordException("No password given",en)}const e=this.#in(w,u,d,r);k=this.#rn(b,e,u,m,p,d,r,g)}if(!k)throw new PasswordException("Incorrect Password",tn);if(4===s&&k.length<16){this.encryptionKey=new Uint8Array(16);this.encryptionKey.set(k)}else this.encryptionKey=k}setPassword(e){const t=new CipherTransformFactory(this.dict,this.#an,e);this.encryptionKey=t.encryptionKey}createCipherTransform(e,t){if(4===this.algorithm||5===this.algorithm){const n=new CipherTransform(n=>{if(!(n instanceof Name))throw new FormatError("Invalid crypt filter name.");const a=this.cf.get(n.name),s=a?.get("CFM");if(!s||"None"===s.name)return NullCipher;if(!this.encryptionKey)throw new PasswordException("No password given",en);if(5===this.algorithm||"AESV3"===s.name)return AES256Cipher.bind(null,this.encryptionKey);if("V2"===s.name)return ARCFourCipher.bind(null,this.#on(e,t,this.encryptionKey,!1));if("AESV2"===s.name)return AES128Cipher.bind(null,this.#on(e,t,this.encryptionKey,!0));throw new FormatError("Unknown crypto method")},this.strf,this.stmf);n.embeddedFilterName=this.eff;return n}return new CipherTransform(()=>ARCFourCipher.bind(null,this.#on(e,t,this.encryptionKey,!1)))}}class XRef{#ln=new Map;#fn=[];#cn=null;#hn=null;#un=!1;#mn=new RefSet;#pn=null;#dn=new Set;#gn=!0;#bn=new Set;constructor(e,t){this.stream=e;this.pdfManager=t}getNewPersistentRef(e){null===this.#cn&&(this.#cn=this.#fn.length||1);const t=this.#cn++;this.#ln.set(t,e);return Ref.get(t,0)}getNewTemporaryRef(){if(null===this.#hn){this.#hn=this.#fn.length||1;if(this.#cn){this.#pn=new Map;for(let e=this.#hn;e0;){const[i,o]=r;if(!Number.isInteger(i)||!Number.isInteger(o))throw new FormatError(`Invalid XRef range fields: ${i}, ${o}`);if(!Number.isInteger(n)||!Number.isInteger(a)||!Number.isInteger(s))throw new FormatError(`Invalid XRef entry fields length: ${i}, ${o}`);for(let r=t.entryNum;r=e.length);){n+=String.fromCharCode(a);a=e[t]}return n}function skipUntil(e,t,n){const a=n.length,s=e.length;let r=0;for(;t=a)break;t++;r++}return r}const e=/\b(endobj|\d+\s+\d+\s+obj|xref|trailer\s*<<)\b/g,t=/\b(startxref|\d+\s+\d+\s+obj)\b/g,n=/^(\d+)\s+(\d+)\s+obj\b/,a=new Uint8Array([116,114,97,105,108,101,114]),s=new Uint8Array([115,116,97,114,116,120,114,101,102]),r=new Uint8Array([47,88,82,101,102]);this.#fn.length=0;this.#ln.clear();const i=this.stream;i.pos=0;const o=i.getBytes(),l=bytesToString(o),f=o.length;let c=i.start;const h=[],u=[];for(;c=f)break;m=o[c]}while(10!==m&&13!==m);continue}const p=readToken(o,c);let d;if(p.startsWith("xref")&&(4===p.length||/\s/.test(p[4]))){c+=skipUntil(o,c,a);h.push(c);c+=skipUntil(o,c,s)}else if(d=n.exec(p)){const t=0|d[1],n=0|d[2],a=c+p.length;let s,h=!1;if(this.#fn[t]){if(this.#fn[t].gen===n)try{new Parser({lexer:new Lexer(i.makeSubStream(a))}).getObj();h=!0}catch(e){e instanceof ParserEOFException?warn(`indexObjects -- checking object (${p}): "${e}".`):h=!0}}else h=!0;h&&(this.#fn[t]={offset:c-i.start,gen:n,free:!1,uncompressed:!0});e.lastIndex=a;const m=e.exec(l);if(m){s=e.lastIndex+1-c;if("endobj"!==m[1]){warn(`indexObjects: Found "${m[1]}" inside of another "obj", caused by missing "endobj" -- trying to recover.`);s-=m[1].length+1}}else s=f-c;const g=o.subarray(c,c+s),b=skipUntil(g,0,r);if(b=t&&!this.#bn.has(e)&&n++;return n}getEntry(e){const t=this.#fn[e];return t&&!t.free&&t.offset?t:null}fetchIfRef(e,t=!1){return e instanceof Ref?this.fetch(e,t):e}fetch(e,t=!1){if(!(e instanceof Ref))throw new Error("ref object is not a reference");const n=e.num,a=this.#ln.get(n);if(void 0!==a){a instanceof Dict&&!a.objId&&(a.objId=e.toString());return a}let s=this.getEntry(n);if(null===s)return s;if(this.#mn.has(e)){this.#mn.remove(e);warn(`Ignoring circular reference: ${e}.`);return on}this.#mn.put(e);try{s=s.uncompressed?this.fetchUncompressed(e,s,t):this.fetchCompressed(e,s,t);this.#mn.remove(e)}catch(t){this.#mn.remove(e);throw t}s instanceof Dict?s.objId=e.toString():s instanceof BaseStream&&(s.dict.objId=e.toString());return s}fetchUncompressed(e,t,n=!1){const a=e.gen;let s=e.num;if(t.gen!==a){const r=`Inconsistent generation in XRef: ${e}`;if(this._generationFallback&&t.gen0&&t[3]-t[1]>0)return t;warn(`Empty, or invalid, /${e} entry.`)}return null}get mediaBox(){return shadow(this,"mediaBox",this.getBoundingBox("MediaBox")||Of)}get cropBox(){return shadow(this,"cropBox",this.getBoundingBox("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 n=Util.intersect(e,t);if(n&&n[2]-n[0]>0&&n[3]-n[1]>0)return shadow(this,"view",n);warn("Empty /CropBox and /MediaBox intersection.")}return shadow(this,"view",t)}get rotate(){let e=this.#jn("Rotate")||0;e%90!=0?e=0:e>=360?e%=360:e<0&&(e=(e%360+360)%360);return shadow(this,"rotate",e)}#kn(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");if(e instanceof BaseStream&&!e.isImageStream){if(e.isAsync){const t=await e.asyncGetBytes();if(t)return new Stream(t,0,t.length,e.dict)}return e}if(Array.isArray(e)){const t=[];for(let n=0,a=e.length;n{t&&(e[n]=new Stream(t,0,t.length,a.dict))}))}t.length>0&&await Promise.all(t);return new StreamsSequenceStream(e,this.#kn.bind(this))}return new NullStream}get xfaData(){return shadow(this,"xfaData",this.xfaFactory?{bbox:this.xfaFactory.getBoundingBox(this.pageIndex)}:null)}async#yn(e,t,n){const a=[];for(const s of e){if(!s.id)continue;const e=Ref.fromString(s.id);if(e)if(s.deleted){t.put(e);if(s.popupRef){const e=Ref.fromString(s.popupRef);e&&t.put(e)}}else{if(s.popup?.deleted){const e=Ref.fromString(s.popupRef);e&&t.put(e)}n?.put(e);s.ref=e;a.push(this.xref.fetchAsync(e).then(e=>{e instanceof Dict&&(s.oldAnnotation=e.clone())},()=>{warn(`Cannot fetch \`oldAnnotation\` for: ${e}.`)}));delete s.id}else warn(`A non-linked annotation cannot be modified: ${s.id}`)}await Promise.all(a)}async saveNewAnnotations(e,t,n,a,s){if(this.xfaFactory)throw new Error("XFA: Cannot save new annotations.");const r=this._createPartialEvaluator(e),i=new RefSet,o=new RefSet;await this.#yn(n,i,o);const l=this.pageDict,f=this.annotations.filter(e=>!(e instanceof Ref&&i.has(e))),c=await AnnotationFactory.saveNewAnnotations(r,this.xref,t,n,a,s);for(const{ref:e}of c.annotations)e instanceof Ref&&!o.has(e)&&f.push(e);const h=l.clone();h.set("Annots",f);s.put(this.ref,{data:h});for(const e of i)s.put(e,{data:null})}async save(e,t,n,a){const s=this._createPartialEvaluator(e),r=await this._parsedAnnotations,i=[];for(const e of r)i.push(e.save(s,t,n,a).catch(function(e){warn(`save - ignoring annotation data during "${t.name}" task: "${e}".`);return null}));return Promise.all(i)}async loadResources(e){await(this.#wn??=this.pdfManager.ensure(this,"resources"));await ObjectLoader.load(this.resources,e,this.xref)}async#qn(e,t){const n=e?.get("Resources");if(!(n instanceof Dict&&n.size))return this.resources;await ObjectLoader.load(n,t,this.xref);return Dict.merge({xref:this.xref,dictArray:[n,this.resources],mergeSubDicts:!0})}async getOperatorList({handler:e,sink:t,task:n,intent:a,cacheKey:s,pageIndex:r=this.pageIndex,annotationStorage:f=null,modifiedIds:m=null}){const d=this.getContentStream(),g=this.loadResources(wn),b=this._createPartialEvaluator(e,r),w=this.xfaFactory?null:getNewAnnotationsMap(f),j=w?.get(this.pageIndex);let k=Promise.resolve(null),y=null;if(j){const e=this.pdfManager.ensureDoc("annotationGlobals");let t;const a=new Set;for(const{bitmapId:e,bitmap:t}of j)!e||t||a.has(e)||a.add(e);const{isOffscreenCanvasSupported:s}=this.evaluatorOptions;if(a.size>0){const e=j.slice();for(const[t,n]of f)t.startsWith(p)&&n.bitmap&&a.has(n.bitmapId)&&e.push(n);t=AnnotationFactory.generateImages(e,this.xref,s)}else t=AnnotationFactory.generateImages(j,this.xref,s);y=new RefSet;k=Promise.all([e,this.#yn(j,y,null)]).then(([e])=>e?AnnotationFactory.printNewAnnotations(e,b,n,j,t):null)}const q=Promise.all([d,g]).then(async([i])=>{const o=await this.#qn(i.dict,wn),l=new OperatorList(a,t);e.send("StartRenderPage",{transparency:b.hasBlendModes(o,this.nonBlendModesSet),pageIndex:r,cacheKey:s});await b.getOperatorList({stream:i,task:n,resources:o,operatorList:l});return l});let[v,S,x]=await Promise.all([q,this._parsedAnnotations,k]);if(x){S=S.filter(e=>!(e.ref&&y.has(e.ref)));for(let e=0,t=x.length;ee.ref&&isRefsEqual(e.ref,n.refToReplace));if(a>=0){S.splice(a,1,n);x.splice(e--,1);t--}}}S=S.concat(x)}if(0===S.length||a&h){v.flush(!0);return{length:v.totalLength}}const C=!!(a&c),F=!!(a&u),T=!!(a&i),R=!!(a&o),O=!!(a&l),H=[];for(const e of S)(T||R&&e.mustBeViewed(f,C)&&e.mustBeViewedWhenEditing(F,m)||O&&e.mustBePrinted(f))&&H.push(e.getOperatorList(b,n,a,f).catch(function(e){warn(`getOperatorList - ignoring annotation data during "${n.name}" task: "${e}".`);return{opList:null,separateForm:!1,separateCanvas:!1}}));const D=await Promise.all(H);let M=!1,N=!1;for(const{opList:e,separateForm:t,separateCanvas:n}of D){v.addOpList(e);M||=t;N||=n}v.flush(!0,{form:M,canvas:N});return{length:v.totalLength}}async extractTextContent({handler:e,task:t,includeMarkedContent:n,disableNormalization:a,sink:s,intersector:r=null}){const i=this.getContentStream(),o=this.loadResources(jn),l=this.pdfManager.ensureCatalog("lang"),[f,,c]=await Promise.all([i,o,l]),h=await this.#qn(f.dict,jn);return this._createPartialEvaluator(e).getTextContent({stream:f,task:t,resources:h,includeMarkedContent:n,disableNormalization:a,sink:s,viewBox:this.view,lang:c,intersector:r})}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,n){const a=await this._parsedAnnotations;if(0===a.length)return a;const s=[],r=[];let f;const c=!!(n&i),h=!!(n&o),u=!!(n&l),m=[];for(const n of a){const a=c||h&&n.viewable;(a||u&&n.printable)&&s.push(n.data);if(n.hasTextContent&&a){f??=this._createPartialEvaluator(e);r.push(n.extractTextContent(f,t,[-1/0,-1/0,1/0,1/0]).catch(function(e){warn(`getAnnotationsData - ignoring textContent during "${t.name}" task: "${e}".`)}))}else n.overlaysTextContent&&a&&m.push(n)}if(m.length>0){const n=new Intersector(m);r.push(this.extractTextContent({handler:e,task:t,includeMarkedContent:!1,disableNormalization:!1,sink:null,intersector:n}).then(()=>{n.setText()}))}await Promise.all(r);return s}get annotations(){const e=this.#jn("Annots");return shadow(this,"annotations",Array.isArray(e)?e:[])}get _parsedAnnotations(){return shadow(this,"_parsedAnnotations",this.pdfManager.ensure(this,"annotations").then(async e=>{if(0===e.length)return e;const[t,n]=await Promise.all([this.pdfManager.ensureDoc("annotationGlobals"),this.pdfManager.ensureDoc("fieldObjects")]);if(!t)return[];const a=n?.orphanFields,s=[];for(const n of e)s.push(AnnotationFactory.create(this.xref,n,t,this._localIdFactory,!1,a,null,this.ref).catch(function(e){warn(`_parsedAnnotations: "${e}".`);return null}));const r=[];let i,o;for(const e of await Promise.all(s))e&&(e instanceof WidgetAnnotation?(o||=[]).push(e):e instanceof PopupAnnotation?(i||=[]).push(e):r.push(e));o&&r.push(...o);i&&r.push(...i);return r}))}get jsActions(){return shadow(this,"jsActions",collectActions(this.xref,this.pageDict,fe))}async collectAnnotationsByType(e,t,n,a,s){const{pageIndex:r}=this;if(Object.hasOwn(this,"_parsedAnnotations")){const e=await this._parsedAnnotations;for(const{data:t}of e)if(!n||n.has(t.annotationType)){t.pageIndex=r;a.push(Promise.resolve(t))}return}const i=await this.pdfManager.ensure(this,"annotations");let o;for(const l of i)a.push(AnnotationFactory.create(this.xref,l,s,this._localIdFactory,!1,null,n,this.ref).then(async n=>{if(!n)return null;n.data.pageIndex=r;if(n.hasTextContent&&n.viewable){o??=this._createPartialEvaluator(e);await n.extractTextContent(o,t,[-1/0,-1/0,1/0,1/0])}return n.data}).catch(function(e){warn(`collectAnnotationsByType: "${e}".`);return null}))}}const Hf=new Uint8Array([37,80,68,70,45]),Bf=new Uint8Array([115,116,97,114,116,120,114,101,102]),Df=new Uint8Array([101,110,100,111,98,106]);function find(e,t,n=1024,a=!1){const s=t.length,r=e.peekBytes(n),i=r.length-s;if(i<=0)return!1;if(a){const n=s-1;let a=r.length-1;for(;a>=n;){let i=0;for(;i=s){e.pos+=a-n;return!0}a--}}else{let n=0;for(;n<=i;){let a=0;for(;a=s){e.pos+=n;return!0}n++}}return!1}class PDFDocument{#vn=new Map;#Sn=null;#An=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 n={font:0};this._globalIdFactory=class{static getDocId(){return`g_${e.docId}`}static createFontId(){return"f"+ ++n.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,Df)){e.skip(6);let n=e.peekByte();for(;isWhiteSpace(n);){e.pos++;n=e.peekByte()}t=e.pos-e.start}}else{const n=1024,a=Bf.length;let s=!1,r=e.end;for(;!s&&r>0;){r-=n-a;r<0&&(r=0);e.pos=r;s=find(e,Bf,n,!0)}if(s){e.skip(9);let n;do{n=e.getByte()}while(isWhiteSpace(n));let a="";for(;n>=32&&n<=57;){a+=String.fromCharCode(n);n=e.getByte()}t=parseInt(a,10);isNaN(t)&&(t=0)}}return shadow(this,"startXRef",t)}checkHeader(){const e=this.stream;e.reset();if(!find(e,Hf))return;e.moveStart();e.skip(Hf.length);let t,n="";for(;(t=e.getByte())>32&&n.length<7;)n+=String.fromCharCode(t);dn.test(n)?this.#An=n:warn(`Invalid PDF header version: ${n}`)}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)}#xn(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.#xn(e.get("Kids"),t)}const n=isName(getInheritableProperty({dict:e,key:"FT"}),"Sig"),a=e.get("Rect"),s=Array.isArray(a)&&a.every(e=>0===e);return n&&s})}get _xfaStreams(){const{acroForm:e}=this.catalog;if(!e)return null;const t=e.get("XFA"),n=new Map(["xdp:xdp","template","datasets","config","connectionSet","localeSet","stylesheet","/xdp:xdp"].map(e=>[e,null]));if(t instanceof BaseStream&&!t.isEmpty){n.set("xdp:xdp",t);return n}if(!Array.isArray(t)||0===t.length)return null;for(let e=0,a=t.length;ef.handleSetFont(a,[Name.get(e),1],null,c,t,u,n,s).catch(e=>{warn(`loadXfaFonts: "${e}".`);return null}),m=[];for(const[e,t]of s){const n=t.get("FontDescriptor");if(!(n instanceof Dict))continue;const a={fontFamily:normalizeCSSFontFamily(n.get("FontFamily")),fontWeight:n.get("FontWeight"),italicAngle:-n.get("ItalicAngle")};validateCSSFont(a)&&m.push(parseFont(e,null,a))}await Promise.all(m);const p=this.xfaFactory.setFonts(h);if(!p)return;r.ignoreErrors=!0;m.length=0;h.length=0;const d=new Set;for(const e of p)getXfaFontName(`${e}-Regular`)||d.add(e);d.size&&p.push("PdfJS-Fallback");for(const e of p)if(!d.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 n=`${e}-${t.name}`;m.push(parseFont(n,getXfaFontDict(n),{fontFamily:e,fontWeight:t.fontWeight,italicAngle:t.italicAngle}))}await Promise.all(m);this.xfaFactory.appendFonts(h,d)}loadXfaResources(e,t){return Promise.all([this.#In(e,t).catch(()=>{}),this.#Cn()])}serializeXfaData(e){return this.xfaFactory?this.xfaFactory.serializeData(e):null}get version(){return this.catalog.version||this.#An}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 n=t.get("Fields"),a=Array.isArray(n)&&n.length>0;e.hasFields=a;const s=t.get("XFA");e.hasXfa=Array.isArray(s)&&s.length>0||s instanceof BaseStream&&!s.isEmpty;const r=!!(1&t.get("SigFlags")),i=r&&this.#xn(n);e.hasAcroForm=a&&!i;e.hasSignatures=r}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:n}=this,a={PDFFormatVersion:this.version,Language:e.lang,EncryptFilterName:n.encrypt?.filterName??null,IsLinearized:!!this.linearization,IsAcroFormPresent:t.hasAcroForm,IsXFAPresent:t.hasXfa,IsCollectionPresent:!!e.collection,IsSignaturesPresent:t.hasSignatures};let s;try{s=n.trailer.get("Info")}catch(e){if(e instanceof MissingDataException)throw e;info("The document information dictionary is invalid.")}if(!(s instanceof Dict))return shadow(this,"documentInfo",a);for(const[e,t]of s){switch(e){case"Title":case"Author":case"Subject":case"Keywords":case"Creator":case"Producer":case"CreationDate":case"ModDate":if("string"==typeof t){a[e]=stringToPDFString(t);continue}break;case"Trapped":if(t instanceof Name){a[e]=t;continue}break;default:let n;switch(typeof t){case"string":n=stringToPDFString(t);break;case"number":case"boolean":n=t;break;default:if(t instanceof Name){n=t;break}warn(`Bad value, for custom key "${e}", in Info: ${t}.`);continue}(a.Custom??=new Map).set(e,n);continue}warn(`Bad value, for key "${e}", in Info: ${t}.`)}return shadow(this,"documentInfo",a)}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 n,a;if(Array.isArray(t)&&validate(t[0])){n=stringToBytes(t[0]);t[1]!==t[0]&&validate(t[1])&&(a=stringToBytes(t[1]))}else n=calculateMD5(this.stream.getByteRange(0,1024),0,1024);return shadow(this,"fingerprints",[n.toHex(),a?.toHex()??null])}async#Fn(e){const{catalog:t,linearization:n,xref:a}=this,s=Ref.get(n.objectNumberFirst,0);try{const e=await a.fetchAsync(s);if(e instanceof Dict){let n=e.getRaw("Type");n instanceof Ref&&(n=await a.fetchAsync(n));if(isName(n,"Page")||!e.has("Type")&&!e.has("Kids")&&e.has("Contents")){t.pageKidsCountCache.has(s)||t.pageKidsCountCache.put(s,1);t.pageIndexCache.has(s)||t.pageIndexCache.put(s,0);return[e,s]}}throw new FormatError("The Linearization dictionary doesn't point to a valid Page dictionary.")}catch(n){warn(`_getLinearizationPage: "${n.message}".`);return t.getPageDict(e)}}getPage(e){const t=this.#vn.get(e);if(t)return t;const{catalog:n,linearization:a,xfaFactory:s}=this;let r;r=s?Promise.resolve([Dict.empty,null]):a?.pageFirst===e?this.#Fn(e):n.getPageDict(e);r=r.then(([t,a])=>new Page({pdfManager:this.pdfManager,xref:this.xref,pageIndex:e,pageDict:t,ref:a,globalIdFactory:this._globalIdFactory,fontCache:n.fontCache,builtInCMapCache:n.builtInCMapCache,standardFontDataCache:n.standardFontDataCache,globalColorSpaceCache:n.globalColorSpaceCache,globalImageCache:n.globalImageCache,systemFontCache:n.systemFontCache,nonBlendModesSet:n.nonBlendModesSet,xfaFactory:s}));this.#vn.set(e,r);return r}async checkFirstPage(e=!1){if(!e)try{await this.getPage(0)}catch(e){if(e instanceof XRefEntryException){this.#vn.delete(0);await this.cleanup();throw new XRefParseException}}}async checkLastPage(e=!1){const{catalog:t,pdfManager:n}=this;t.setActualNumPages();let a;try{await Promise.all([n.ensureDoc("xfaFactory"),n.ensureDoc("linearization"),n.ensureCatalog("numPages")]);if(this.xfaFactory)return;a=this.linearization?this.linearization.numPages:t.numPages;if(!Number.isInteger(a))throw new FormatError("Page count is not an integer.");if(a<=1)return;await this.getPage(a-1)}catch(s){this.#vn.delete(a-1);await this.cleanup();if(s instanceof XRefEntryException&&!e)throw new XRefParseException;warn(`checkLastPage - invalid /Pages tree /Count: ${a}.`);let r;try{r=await t.getAllPageDicts(e)}catch(n){if(n instanceof XRefEntryException&&!e)throw new XRefParseException;t.setActualNumPages(1);return}for(const[e,[a,s]]of r){let r;if(a instanceof Error){r=Promise.reject(a);r.catch(()=>{})}else r=Promise.resolve(new Page({pdfManager:n,xref:this.xref,pageIndex:e,pageDict:a,ref:s,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.#vn.set(e,r)}t.setActualNumPages(r.size)}}async fontFallback(e,t){const{catalog:n,pdfManager:a}=this;for(const s of await Promise.all(n.fontCache))if(s.loadedName===e){s.fallback(t,a.evaluatorOptions);return}}async cleanup(e=!1){return this.catalog?this.catalog.cleanup(e):clearGlobalCaches()}async#Tn(e,t,n,a,s,r,i){const{xref:o}=this;if(!(n instanceof Ref)||r.has(n))return;r.put(n);const l=await o.fetchAsync(n);if(!(l instanceof Dict))return;let f=await l.getAsync("Subtype");f=f instanceof Name?f.name:null;if("Link"===f)return;if(l.has("T")){const t=stringToPDFString(await l.getAsync("T"));e=""===e?t:`${e}.${t}`}else{let n=l;const a=new RefSet;for(;;){n=n.getRaw("Parent")||t;if(n instanceof Ref){if(r.has(n)||a.has(n))break;a.put(n);n=await o.fetchAsync(n)}if(!(n instanceof Dict))break;if(n.has("T")){const t=stringToPDFString(await n.getAsync("T"));e=""===e?t:`${e}.${t}`;break}}}t&&!l.has("Parent")&&isName(l.get("Subtype"),"Widget")&&i.put(n,t);a.getOrInsertComputed(e,makeArr).push(AnnotationFactory.create(o,n,s,null,!0,i,null,null).then(e=>e?.getFieldObject()).catch(function(e){warn(`#collectFieldObjects: "${e}".`);return null}));if(!l.has("Kids"))return;const c=await l.getAsync("Kids");if(Array.isArray(c))for(const t of c)await this.#Tn(e,n,t,a,s,r,i)}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:n}=t,a=new RefSet,s=new Map,r=new Map,i=new RefMap;for(const e of n.get("Fields"))await this.#Tn("",null,e,r,t,a,i);const o=[];for(const[e,t]of r)o.push(Promise.all(t).then(t=>{(t=t.filter(Boolean)).length>0&&s.set(e,t)}));await Promise.all(o);return{allFields:s.size?s:null,orphanFields:i}}))}async#Rn(e,t,n){if(Array.isArray(e))for(const a of e){if(a instanceof Ref){if(n.has(a))continue;n.put(a)}const e=await this.xref.fetchIfRefAsync(a);if(e instanceof Dict){if(isName(await e.getAsync("FT"),"Sig")){const n=await e.getAsync("V");if(n instanceof Dict){const s=await this.#On(e,n,a);s&&t.push(s)}}e.has("Kids")&&await this.#Rn(await e.getAsync("Kids"),t,n)}}}async#Hn(e,t){try{return this.stream.getByteRange(e,t)}catch(n){if(!(n instanceof MissingDataException))throw n;await this.pdfManager.requestRange(e,t);return this.#Hn(e,t)}}async#Bn(e,t){if(t>0)return!1;const n=this.stream.end;for(let t=e;t!Number.isInteger(e)||e<0))return null;const[s,r,i,o]=a,l=this.stream.end||0;if(0!==s||r<=0||s+r>i||i+o>l||0===l)return null;const f=await t.getAsync("Contents");if("string"!=typeof f||0===f.length)return null;const[c,h,u,m,p,d,g,b]=await Promise.all([t.getAsync("Filter"),t.getAsync("SubFilter"),e.getAsync("T"),t.getAsync("Name"),t.getAsync("Reason"),t.getAsync("Location"),t.getAsync("ContactInfo"),t.getAsync("M")]),w=c instanceof Name?c.name:null,j=h instanceof Name?h.name:null;let k=null;"adbe.pkcs7.detached"===j?k=0:"adbe.pkcs7.sha1"===j&&(k=1);return{id:`${n instanceof Ref?n.toString():"inline"}:${s}-${r}-${i}-${o}`,fieldName:"string"==typeof u?stringToPDFString(u):"",signerName:"string"==typeof m?stringToPDFString(m):null,reason:"string"==typeof p?stringToPDFString(p):null,location:"string"==typeof d?stringToPDFString(d):null,contactInfo:"string"==typeof g?stringToPDFString(g):null,signingTime:"string"==typeof b?b:null,filter:w,subFilter:j,signatureType:k,byteRange:a,pkcs7:stringToBytes(f),revisionIndex:0,parentId:null}}get signatures(){return shadow(this,"signatures",this.pdfManager.ensureDoc("formInfo").then(async e=>{if(!e.hasSignatures||!e.hasFields)return null;const t=await this.annotationGlobals;if(!t)return null;const n=t.acroForm.get("Fields"),a=[];await this.#Rn(n,a,new RefSet);await Promise.all(a.map(async e=>{const t=e.byteRange[2]+e.byteRange[3];e.modificationsAfterSignature=this.xref.countUpdatesAfter(t);e.coversWholeDocument=await this.#Bn(t,e.modificationsAfterSignature)}));a.sort((e,t)=>t.byteRange[2]+t.byteRange[3]-(e.byteRange[2]+e.byteRange[3]));for(let e=0,t=a.length;e=0;n--){const e=a[n];if(e.byteRange[2]+e.byteRange[3]>t.byteRange[2]+t.byteRange[3]){t.parentId=e.id;break}}}const s=new Map,r=a.map(e=>{const{pkcs7:t,...n}=e;s.set(e.id,{byteRange:e.byteRange,pkcs7:t});return n});this.#Sn=s;return r.length?r:null}))}async getSignatureData(e){await this.signatures;const t=this.#Sn?.get(e);if(!t)return null;const{byteRange:n,pkcs7:a}=t,[s,r,i,o]=n;return{data:await Promise.all([this.#Hn(s,s+r),this.#Hn(i,i+o)]),pkcs7:a}}get hasJSActions(){return shadow(this,"hasJSActions",Promise.all([this.pdfManager.ensureCatalog("jsActions"),this.pdfManager.ensureDoc("fieldObjects")]).then(([e,t])=>!!e||!!t?.allFields&&t.allFields.values().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 n of e)n instanceof Ref&&t.push(n.toString());return shadow(this,"calculationOrderIds",t.length?t:null)}get annotationGlobals(){return shadow(this,"annotationGlobals",AnnotationFactory.createGlobals(this.pdfManager))}async toJSObject(e,t=!0){throw new Error("Not implemented: toJSObject")}}class BasePdfManager{constructor({docBaseUrl:e,docId:t,enableXfa:n,evaluatorOptions:a,handler:s,password:r}){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=r;this.enableXfa=n;a.isOffscreenCanvasSupported&&=FeatureTest.isOffscreenCanvasSupported;a.isImageDecoderSupported&&=FeatureTest.isImageDecoderSupported;this.evaluatorOptions=Object.freeze(a);ImageResizer.setOptions(a);JpegStream.setOptions(a);OperatorList.setOptions(a);const i={...a,handler:s};IccColorSpace.setOptions(i);CmykICCBasedCS.setOptions(i);PDFFunctionFactory.setOptions(i);Pattern.setOptions(i);WasmImage.setOptions(i)}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)}ensureCatalog(e,t){return this.ensure(this.pdfDocument.catalog,e,t)}async initDocument(e){await this.ensureDoc("checkHeader");await this.ensureDoc("parseStartXRef");await this.ensureDoc("parse",[e]);await this.ensureDoc("checkFirstPage",[e]);await this.ensureDoc("checkLastPage",[e])}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,n){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;this.pdfDocument.xref.encrypt?.setPassword(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,n){const a=e[t];return"function"==typeof a?a.apply(e,n):a}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,n){try{const a=e[t];return"function"==typeof a?await a.apply(e,n):a}catch(a){if(!(a instanceof MissingDataException))throw a;await this.requestRange(a.begin,a.end);return this.ensure(e,t,n)}}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 Mf=1,Nf=2,Pf=1,Ef=2,_f=3,zf=4,Lf=5,Uf=6,Wf=7,Xf=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{#Dn=new AbortController;constructor(e,t,n){this.sourceName=e;this.targetName=t;this.comObj=n;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);n.addEventListener("message",this.#Mn.bind(this),{signal:this.#Dn.signal})}#Mn({data:e}){if(e.targetName!==this.sourceName)return;if(e.stream){this.#Nn(e);return}if(e.callback){const t=e.callbackId,n=this.callbackCapabilities[t];if(!n)throw new Error(`Cannot resolve callback ${t}`);delete this.callbackCapabilities[t];if(e.callback===Mf)n.resolve(e.data);else{if(e.callback!==Nf)throw new Error("Unexpected callback case");n.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 n=this.sourceName,a=e.sourceName,s=this.comObj;Promise.try(t,e.data).then(function(t){s.postMessage({sourceName:n,targetName:a,callback:Mf,callbackId:e.callbackId,data:t})},function(t){s.postMessage({sourceName:n,targetName:a,callback:Nf,callbackId:e.callbackId,reason:wrapReason(t)})});return}e.streamId?this.#Pn(e):t(e.data)}on(e,t){const n=this.actionHandler;if(n[e])throw new Error(`There is already an actionName called "${e}"`);n[e]=t}send(e,t,n){this.comObj.postMessage({sourceName:this.sourceName,targetName:this.targetName,action:e,data:t},n)}sendWithPromise(e,t,n){const a=this.callbackId++,s=Promise.withResolvers();this.callbackCapabilities[a]=s;try{this.comObj.postMessage({sourceName:this.sourceName,targetName:this.targetName,action:e,callbackId:a,data:t},n)}catch(e){s.reject(e)}return s.promise}sendWithStream(e,t,n,a){const s=this.streamId++,r=this.sourceName,i=this.targetName,o=this.comObj;return new ReadableStream({start:n=>{const l=Promise.withResolvers();this.streamControllers[s]={controller:n,startCall:l,pullCall:null,cancelCall:null,isClosed:!1};o.postMessage({sourceName:r,targetName:i,action:e,streamId:s,data:t,desiredSize:n.desiredSize},a);return l.promise},pull:e=>{const t=Promise.withResolvers();this.streamControllers[s].pullCall=t;o.postMessage({sourceName:r,targetName:i,stream:Uf,streamId:s,desiredSize:e.desiredSize});return t.promise},cancel:e=>{assert(e instanceof Error,"cancel must have a valid reason");const t=Promise.withResolvers();this.streamControllers[s].cancelCall=t;this.streamControllers[s].isClosed=!0;o.postMessage({sourceName:r,targetName:i,stream:Pf,streamId:s,reason:wrapReason(e)});return t.promise}},n)}#Pn(e){const t=e.streamId,n=this.sourceName,a=e.sourceName,s=this.comObj,r=this,i=this.actionHandler[e.action],o={enqueue(e,r=1,i){if(this.isCancelled)return;const o=this.desiredSize;this.desiredSize-=r;if(o>0&&this.desiredSize<=0){this.sinkCapability=Promise.withResolvers();this.ready=this.sinkCapability.promise}s.postMessage({sourceName:n,targetName:a,stream:zf,streamId:t,chunk:e},i)},close(){if(!this.isCancelled){this.isCancelled=!0;s.postMessage({sourceName:n,targetName:a,stream:_f,streamId:t});delete r.streamSinks[t]}},error(e){assert(e instanceof Error,"error must have a valid reason");if(!this.isCancelled){this.isCancelled=!0;s.postMessage({sourceName:n,targetName:a,stream:Lf,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(i,e.data,o).then(function(){s.postMessage({sourceName:n,targetName:a,stream:Xf,streamId:t,success:!0})},function(e){s.postMessage({sourceName:n,targetName:a,stream:Xf,streamId:t,reason:wrapReason(e)})})}#Nn(e){const t=e.streamId,n=this.sourceName,a=e.sourceName,s=this.comObj,r=this.streamControllers[t],i=this.streamSinks[t];switch(e.stream){case Xf:e.success?r.startCall.resolve():r.startCall.reject(wrapReason(e.reason));break;case Wf:e.success?r.pullCall.resolve():r.pullCall.reject(wrapReason(e.reason));break;case Uf:if(!i){s.postMessage({sourceName:n,targetName:a,stream:Wf,streamId:t,success:!0});break}i.desiredSize<=0&&e.desiredSize>0&&i.sinkCapability.resolve();i.desiredSize=e.desiredSize;Promise.try(i.onPull||onFn).then(function(){s.postMessage({sourceName:n,targetName:a,stream:Wf,streamId:t,success:!0})},function(e){s.postMessage({sourceName:n,targetName:a,stream:Wf,streamId:t,reason:wrapReason(e)})});break;case zf:assert(r,"enqueue should have stream controller");if(r.isClosed)break;r.controller.enqueue(e.chunk);break;case _f:assert(r,"close should have stream controller");if(r.isClosed)break;r.isClosed=!0;r.controller.close();this.#En(r,t);break;case Lf:assert(r,"error should have stream controller");r.controller.error(wrapReason(e.reason));this.#En(r,t);break;case Ef:e.success?r.cancelCall.resolve():r.cancelCall.reject(wrapReason(e.reason));this.#En(r,t);break;case Pf:if(!i)break;const o=wrapReason(e.reason);Promise.try(i.onCancel||onFn,o).then(function(){s.postMessage({sourceName:n,targetName:a,stream:Ef,streamId:t,success:!0})},function(e){s.postMessage({sourceName:n,targetName:a,stream:Ef,streamId:t,reason:wrapReason(e)})});i.sinkCapability.reject(o);i.isCancelled=!0;delete this.streamSinks[t];break;default:throw new Error("Unexpected stream case")}}async#En(e,t){await Promise.allSettled([e.startCall?.promise,e.pullCall?.promise,e.cancelCall?.promise]);delete this.streamControllers[t]}destroy(){this.#Dn?.abort();this.#Dn=null}}async function writeObject(e,t,n,{encrypt:a=null,encryptRef:s=null}){const r=a&&s!==e?a.createCipherTransform(e.num,e.gen):null;n.push(`${e.num} ${e.gen} obj\n`);await writeValue(t,n,r);n.push("\nendobj\n")}async function writeDict(e,t,n){t.push("<<");for(const[a,s]of e.getRawEntries()){t.push(` /${escapePDFName(a)} `);await writeValue(s,t,n)}t.push(">>")}async function writeValue(e,t,n){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 async function writeArray(e,t,n){t.push("[");for(let a=0,s=e.length;a=1e21)return BigInt(e).toString();const t=e.toFixed(10);let n=t.length;for(;"0"===t[n-1];)n--;"."===t[n-1]&&n--;return t.slice(0,n)}(e)):"boolean"==typeof e?t.push(e.toString()):e instanceof Dict?await writeDict(e,t,n):e instanceof BaseStream?await async function writeStream(e,t,n){(e=e.getOriginalStream()).reset();let a=e.getBytes();const{dict:s}=e,[r,i]=await Promise.all([s.getAsync("Filter"),s.getAsync("DecodeParms")]),o=Array.isArray(r)?await s.xref.fetchIfRefAsync(r[0]):r,l=isName(o,"FlateDecode"),f=isName(o,"DCTDecode")||isName(o,"JPXDecode")||isName(o,"JBIG2Decode")||isName(o,"CCITTFaxDecode")||isName(o,"LZWDecode");if(!(l||f||isName(o,"BrotliDecode"))&&a.length>=256)try{const e=new CompressionStream("deflate"),t=e.writable.getWriter();await t.ready;t.write(a).then(async()=>{await t.ready;await t.close()}).catch(()=>{});a=await new Response(e.readable).bytes();let n,o;if(r){if(!l){n=Array.isArray(r)?[Name.get("FlateDecode"),...r]:[Name.get("FlateDecode"),r];i&&(o=Array.isArray(i)?[null,...i]:[null,i])}}else n=Name.get("FlateDecode");n&&s.set("Filter",n);o&&s.set("DecodeParms",o)}catch(e){info(`writeStream - cannot compress data: "${e}".`)}let c=bytesToString(a);n&&(c=n.encryptString(c));s.set("Length",c.length);await writeDict(s,t,n);t.push(" stream\n",c,"\nendstream")}(e,t,n):null===e?t.push("null"):warn(`Unhandled value in writer: ${typeof e}, please file a bug.`)}function writeInt(e,t,n,a){for(let s=t+n-1;s>n-1;s--){a[s]=255&e;e>>=8}return n+t}function writeString(e,t,n){const a=e.length;for(let s=0;s1&&(r=n.documentElement.searchNode([s.at(-1)],0));r?r.childNodes=Array.isArray(a)?a.map(e=>new SimpleDOMNode("value",e)):[new SimpleDOMNode("#text",a)]:warn(`Node not found for path: ${t}`)}const a=[];n.documentElement.dump(a);return a.join("")}(a.fetchIfRef(t).getString(),n)}const s=new StringStream(e,new Dict(a));s.dict.setIfName("Type","EmbeddedFile");n.put(t,{data:s})}function getIndexes(e){const t=[];for(const{ref:n}of e)n.num===t.at(-2)+t.at(-1)?t[t.length-1]+=1:t.push(n.num,1);return t}function computeIDs(e,t,n){if(Array.isArray(t.fileIds)&&t.fileIds.length>0){const a=function computeMD5(e,t){const n=Math.floor(Date.now()/1e3),a=t.filename||"",s=[n.toString(),a,e.toString(),...t.infoMap.values()],r=Math.sumPrecise(s.map(e=>e.length)),i=new Uint8Array(r);let o=0;for(const e of s)o=writeString(e,o,i);return bytesToString(calculateMD5(i,0,i.length))}(e,t);n.set("ID",[t.fileIds[0]||a,a])}}async function incrementalUpdate({originalData:e,xrefInfo:t,changes:n,xref:a=null,hasXfa:s=!1,xfaDatasetsRef:r=null,hasXfaDatasetsEntry:i=!1,needAppearances:o,acroFormRef:l=null,acroForm:f=null,xfaData:c=null,useXrefStream:h=!1}){await async function updateAcroform({xref:e,acroForm:t,acroFormRef:n,hasXfa:a,hasXfaDatasetsEntry:s,xfaDatasetsRef:r,needAppearances:i,changes:o}){!a||s||r||warn("XFA - Cannot save it");if(!i&&(!a||!r||s))return;const l=t.clone();if(a&&!s){const e=t.get("XFA").slice();e.splice(2,0,"datasets");e.splice(3,0,r);l.set("XFA",e)}i&&l.set("NeedAppearances",!0);o.put(n,{data:l})}({xref:a,acroForm:f,acroFormRef:l,hasXfa:s,hasXfaDatasetsEntry:i,xfaDatasetsRef:r,needAppearances:o,changes:n});s&&updateXFA({xfaData:c,xfaDatasetsRef:r,changes:n,xref:a});const u=function getTrailerDict(e,t,n){const a=new Dict(null);a.setIfDefined("Prev",e?.startXRef);const s=e.newRef;if(n){t.put(s,{data:""});a.set("Size",s.num+1);a.setIfName("Type","XRef")}else a.set("Size",s.num);a.setIfDefined("Root",e?.rootRef);a.setIfDefined("Info",e?.infoRef);a.setIfDefined("Encrypt",e?.encryptRef);return a}(t,n,h),m=[],p=await async function writeChanges(e,t,n=[]){const a=[];for(const[s,{data:r,objStreamRef:i,index:o}]of e.items())if(i)a.push({ref:s,data:r,objStreamRef:i,index:o});else if(null!==r&&"string"!=typeof r){await writeObject(s,r,n,t);a.push({ref:s,data:n.join("")});n.length=0}else a.push({ref:s,data:r});return a.sort((e,t)=>e.ref.num-t.ref.num)}(n,a,m);let d=e.length;const g=e.at(-1);if(10!==g&&13!==g){m.push("\n");d+=1}for(const{data:e}of p)null!==e&&m.push(e);await(h?async function getXRefStreamTable(e,t,n,a,s){const r=[];let i=0,o=0;for(const{ref:e,data:a,objStreamRef:s,index:l}of n){let n;i=Math.max(i,t);if(s){n=l;r.push([2,s.num,n])}else if(null!==a){n=Math.min(e.gen,65535);r.push([1,t,n]);t+=a.length}else{n=Math.min(e.gen+1,65535);r.push([0,0,n])}o=Math.max(o,n)}a.set("Index",getIndexes(n));const l=[1,getSizeInBytes(i),getSizeInBytes(o)];a.set("W",l);computeIDs(t,e,a);const f=Math.sumPrecise(l),c=new Uint8Array(f*r.length),h=new Stream(c);h.dict=a;let u=0;for(const[e,t,n]of r){u=writeInt(e,l[0],u,c);u=writeInt(t,l[1],u,c);u=writeInt(n,l[2],u,c)}await writeObject(e.newRef,h,s,{});s.push("startxref\n",t.toString(),"\n%%EOF\n")}(t,d,p,u,m):async function getXRefTable(e,t,n,a,s){s.push("xref\n");const r=getIndexes(n);let i=0;for(const{ref:e,data:a}of n){if(e.num===r[i]){s.push(`${r[i]} ${r[i+1]}\n`);i+=2}if(null!==a){s.push(`${t.toString().padStart(10,"0")} ${Math.min(e.gen,65535).toString().padStart(5,"0")} n\r\n`);t+=a.length}else s.push(`0000000000 ${Math.min(e.gen+1,65535).toString().padStart(5,"0")} f\r\n`)}computeIDs(t,e,a);s.push("trailer\n");await writeDict(a,s,null);s.push("\nstartxref\n",t.toString(),"\n%%EOF\n")}(t,d,p,u,m));const b=e.length+Math.sumPrecise(m.map(e=>e.length)),w=new Uint8Array(b);w.set(e);let j=e.length;for(const e of m)j=writeString(e,j,w);return w}class PageData{constructor(e,t){this.page=e;this.documentData=t;this.annotations=null;this.pointingNamedDestinations=null;this.copyLevel=0;t.pagesMap.put(e.ref,this)}}class DocumentData{constructor(e){this.document=e;this.destinations=null;this.pageLabels=null;this.pagesMap=new RefMap;this.oldRefMapping=new RefMap;this.dedupNamedDestinations=new Map;this.usedNamedDestinations=new Set;this.postponedRefCopies=new RefMap;this.resourceStreamPromises=new Map;this.usedStructParents=new Set;this.oldStructParentMapping=new Map;this.structTreeRoot=null;this.parentTree=null;this.idTree=null;this.roleMap=null;this.classMap=null;this.namespaces=null;this.structTreeAF=null;this.structTreePronunciationLexicon=[];this.acroForm=null;this.acroFormDefaultAppearance="";this.acroFormDefaultResources=null;this.acroFormQ=0;this.hasSignatureAnnotations=!1;this.fieldToParent=new RefMap;this.outline=null;this.embeddedFiles=null}}class XRefWrapper{constructor(e,t){this.entries=e;this._getNewRef=t}getNewTemporaryRef(){return this._getNewRef()}countUpdatesAfter(e){return null}fetchIfRef(e){return e instanceof Ref?this.fetch(e):e}fetch(e){if(!(e instanceof Ref))throw new Error("ref object is not a reference");return this.entries[e.num]}async fetchIfRefAsync(e){return e instanceof Ref?this.fetchAsync(e):e}async fetchAsync(e){return this.fetch(e)}}class PDFEditor{isSingleFile=!1;#_n=null;#zn=null;#Ln=new Map;currentDocument=null;oldPages=[];newPages=[];xref=[null];xrefWrapper=new XRefWrapper(this.xref,()=>this.newRef);newRefCount=1;namesDict=null;version="1.7";pageLabels=null;namedDestinations=new Map;parentTree=new Map;structTreeKids=[];idTree=new Map;classMap=new Dict;roleMap=new Dict;namespaces=new Map;structTreeAF=[];structTreePronunciationLexicon=[];fields=[];acroFormDefaultAppearance="";acroFormDefaultResources=null;acroFormNeedAppearances=!1;acroFormSigFlags=0;acroFormCalculationOrder=null;acroFormQ=0;outlineItems=null;embeddedFiles=new Map;constructor({useObjectStreams:e=!0,title:t="",author:n=""}={}){[this.rootRef,this.rootDict]=this.newDict;[this.infoRef,this.infoDict]=this.newDict;[this.pagesRef,this.pagesDict]=this.newDict;this.useObjectStreams=e;this.objStreamRefs=e?new Set:null;this.title=t;this.author=n}get newRef(){return Ref.get(this.newRefCount++,0)}get newDict(){const e=this.newRef;return[e,this.xref[e.num]=new Dict]}async#Un(e,t){const n=this.newRef;this.xref[n.num]=await this.#Wn(e,!0,t);return n}cloneDict(e){const t=e.clone();t.xref=this.xrefWrapper;return t}async#Wn(e,t,n,a=new RefSet){if(e instanceof Ref){const{currentDocument:{fieldToParent:t,oldRefMapping:s}}=this,r=s.get(e);if(r)return r;const i=e;e=await n.fetchAsync(i);const o=s.get(i);if(o)return o;if("number"==typeof e)return e;if(e instanceof BaseStream&&this.#Xn(e.dict))return this.#Kn(i,e,n,a);const l=this.newRef;s.put(i,l);let f=!0;if(t.has(i)&&e instanceof Dict){(e=this.cloneDict(e)).delete("Parent");f=!1}this.xref[l.num]=await this.#Wn(e,f,n,a);return l}const s=[],{currentDocument:{postponedRefCopies:r}}=this;if(Array.isArray(e)){t&&(e=e.slice());for(let t=0,i=e.length;te[t]=n):s.push(this.#Wn(e[t],!0,n,a).then(n=>e[t]=n))}await Promise.all(s);return e}let i;if(e instanceof BaseStream){({dict:i}=e=e.getOriginalStream().clone());i.xref=this.xrefWrapper}else if(e instanceof Dict){t&&((e=e.clone()).xref=this.xrefWrapper);i=e}if(i){for(const[e,t]of i.getRawEntries()){const o=t instanceof Ref&&r.get(t);o?o.push(t=>i.set(e,t)):s.push(this.#Wn(t,!0,n,a).then(t=>i.set(e,t)))}await Promise.all(s)}return e}#Xn(e){const t=e.get("Subtype");return isName(t,"Image")||e.has("Length1")||isName(t,"Type1C")||isName(t,"CIDFontType0C")||isName(t,"OpenType")}#Gn(e){const t=e.getOriginalStream();t.reset();return t.getBytes()}async#Vn(e){const t=[];await writeValue(e,t,null);return t.join("")}#$n(e,t){const n=256,{length:a}=t,s=new MurmurHash3_64;s.update(e);s.update(`#${a}`);if(a<=1024)s.update(t);else{const e=Math.floor((a-n)/3);for(let r=0;r<4;r++){const i=Math.min(r*e,a-n);s.update(t.subarray(i,i+n))}}return s.hexdigest()}async#Kn(e,t,n,a){const{currentDocument:{oldRefMapping:s,resourceStreamPromises:r}}=this;if(a.has(e))return s.getOrPutComputed(e,()=>this.newRef);const i=e.toString(),o=r.get(i);if(o)return o;const l=new RefSet(a);l.put(e);const f=Promise.resolve().then(async()=>{const a=await this.#Wn(t,!0,n,l),r=s.get(e);if(r){this.xref[r.num]=a;return r}const i=await this.#Yn(a);s.put(e,i);return i});r.set(i,f);try{return await f}finally{r.get(i)===f&&r.delete(i)}}async#Yn(e){const t=await this.#Vn(e.dict),n=this.#Gn(e),a=this.#$n(t,n),s=this.#Ln.getOrInsertComputed(a,makeArr);for(const e of s)if(e.dictStr===t&&isArrayEqual(this.#Gn(e.stream),n))return e.ref;const r=this.newRef;this.xref[r.num]=e;s.push({ref:r,dictStr:t,stream:e});return r}async#Jn(e,t){if(e instanceof Ref){const n=await t.fetchAsync(e);return Array.isArray(n)?n:[e]}return Array.isArray(e)?e:[e]}async#Qn(e,t,n,a,s,r,i,o=new RefSet){const{currentDocument:{pagesMap:l,oldRefMapping:f}}=this,c=t.getRaw("Pg");if(c instanceof Ref&&!l.has(c))return null;const h=t.getRaw("K");if(h instanceof Ref&&o.has(h))return null;const u=await this.#Jn(h,n),m=[],p=[];for(let t of u){const c=t instanceof Ref?t:null;if(c){if(o.has(c))continue;o.put(c);t=await n.fetchAsync(c)}if("number"==typeof t){m.push(t);continue}if(!(t instanceof Dict))continue;const h=t.getRaw("Pg");if(h instanceof Ref&&!l.has(h))continue;const u=t.get("Type");if(!u||isName(u,"StructElem")){let e=!1;if(c&&a.has(c)){if(!isName(t.get("S"),"Link"))continue;e=!0}const l=await this.#Qn(c,t,n,a,s,r,i,o);if(l){p.push(m.length);m.push(l);c&&f.put(c,l);e&&this.xref[l.num].setIfName("S","Span")}continue}if(isName(u,"OBJR")){if(!c)continue;const a=t.getRaw("Obj");if(a instanceof Ref&&!f.get(a))continue;const s=f.get(c)||await this.#Wn(c,!0,n),r=this.xref[s.num].getRaw("Obj");if(r instanceof Ref){const t=this.xref[r.num];if(t instanceof Dict&&!t.has("StructParent")&&e){const n=this.parentTree.size;this.parentTree.set(n,[f,e]);t.set("StructParent",n)}}m.push(s);continue}if(isName(u,"MCR")){const e=await this.#Wn(c||t,!0,n);m.push(e);continue}if(c){const e=await this.#Wn(c,!0,n);m.push(e)}}if(0!==u.length&&0===m.length)return null;const d=this.newRef,g=this.xref[d.num]=this.cloneDict(t);g.delete("ID");g.delete("C");g.delete("K");g.delete("P");g.delete("S");await this.#Wn(g,!1,n);const b=t.get("C");if(b instanceof Name){const e=r.get(b.name);g.set("C",e?Name.get(e):b)}else if(Array.isArray(b)){const e=[];for(const t of b)if(t instanceof Name){const n=r.get(t.name);e.push(n?Name.get(n):t)}g.set("C",e)}const w=t.get("S");if(w instanceof Name){const e=i.get(w.name);g.set("S",e?Name.get(e):w)}const j=t.get("ID");if("string"==typeof j){const e=stringToPDFString(j,!1),t=s.get(e);g.set("ID",t?stringToAsciiOrUTF16BE(t):j)}let k=g.get("A");if(k){Array.isArray(k)||(k=[k]);for(let e of k){e=this.xrefWrapper.fetchIfRef(e);if(e instanceof Dict&&(isName(e.get("O"),"Table")&&e.has("Headers"))){const t=this.xrefWrapper.fetchIfRef(e.getRaw("Headers"));if(Array.isArray(t))for(let e=0,n=t.length;e1&&g.set("K",m);return d}#Zn({document:e,includePages:t,excludePages:n}){if(!e)return[];const compile=e=>{if(!e?.length)return null;const t=new Set,n=[];for(const a of e)Array.isArray(a)?n.push(a):t.add(a);return{indices:t,ranges:n}},matches=(e,{indices:t,ranges:n})=>t.has(e)||n.some(([t,n])=>e>=t&&e<=n),a=compile(t),s=compile(n),r=[];for(let t=0,n=e.numPages;t!(!e.document&&!e.image);for(let n=0;ne.insertAfter-t.insertAfter||e.i-t.i);if(0===n.length&&e.some(e=>hasContent(e)&&e.pageIndices)){const t=e.slice();let n=-1;for(const t of e)if(hasContent(t)&&t.pageIndices)for(const e of t.pageIndices)e>n&&(n=e);let s=0;for(const{i:e,insertAfter:r,count:i}of a){const a=Math.min(Math.max(r,-1)+s,n);for(let e=0;ee<=a)&&(t[e]={...n,pageIndices:n.pageIndices.map(e=>e>a?e+i:e)})}const o=[];for(let e=0;e{if(!hasContent(e)||e.pageIndices)return e;const n={...e,pageIndices:r[t]||[]};delete n.insertAfter;return n})}async extractPages(e,t,n,a,s){this.#zn=n;e=this.#ea(e);const r=[];let i=0;const reservePageSlot=e=>{if(!Number.isInteger(e)||e<0)throw new Error("extractPages: invalid page index.");if(void 0!==this.oldPages[e])throw new Error("extractPages: overlapping pageIndices.");this.oldPages[e]=null},o=[];t&&(this.#_n={handler:a,task:s,newAnnotationsByPage:getNewAnnotationsMap(t),imagesPromises:AnnotationFactory.generateImages(t.values(),this.xrefWrapper,!0)});const l=[];for(const t of e){const{document:e,image:n,includePages:a,excludePages:s,pageIndices:f}=t;if(n){if(f){i=-1;if(f.length>1)throw new Error("extractPages: too many pageIndices.")}let e;if(f?.length)e=f[0];else if(-1!==i)e=i++;else for(e=0;void 0!==this.oldPages[e];e++);reservePageSlot(e);l.push({image:n,slot:e});continue}if(!e)continue;f&&(i=-1);const c=this.#Zn({document:e,includePages:a,excludePages:s});if(f&&f.length>c.length)throw new Error("extractPages: too many pageIndices.");const h=new DocumentData(e);o.push(h);r.push(this.#ta(h));let u=0;for(const t of c){let n;f&&(n=f[u++]);if(void 0===n)if(-1!==i)n=i++;else for(n=0;void 0!==this.oldPages[n];n++);reservePageSlot(n);r.push(e.getPage(t).then(e=>{this.oldPages[n]=new PageData(e,h)}))}}await Promise.all(r);if(0===this.oldPages.length)throw new Error("extractPages: nothing to extract.");const f=new Map,c=new Set;for(let e=0,t=this.oldPages.length;e0?this.#la():null;for(let e=0,t=this.oldPages.length;ee.destinations=t),t.ensureCatalog("rawPageLabels").then(t=>e.pageLabels=t),t.ensureCatalog("structTreeRoot").then(t=>e.structTreeRoot=t),t.ensureCatalog("acroForm").then(t=>e.acroForm=t),t.ensureCatalog("documentOutlineForEditor").then(t=>e.outline=t),t.ensureCatalog("rawEmbeddedFiles").then(t=>e.embeddedFiles=t)]);const a=e.structTreeRoot;if(a){const t=a.dict,s=t.get("ParentTree");if(s){const t=new NumberTree(s,n);e.parentTree=t.getAll(!0)}const r=t.get("IDTree");if(r){const t=new NameTree(r,n);e.idTree=t.getAll(!0)}e.roleMap=t.get("RoleMap")||null;e.classMap=t.get("ClassMap")||null;let i=t.get("Namespaces")||null;i&&!Array.isArray(i)&&(i=[i]);e.namespaces=i;e.structTreeAF=t.get("AF")||null;e.structTreePronunciationLexicon=t.get("PronunciationLexicon")||null}}async#ra(e){const{page:{xref:t,annotations:n},documentData:{pagesMap:a,destinations:s,usedNamedDestinations:r,fieldToParent:i}}=e;if(!n)return;const o=[];let l=[],f=0,{hasSignatureAnnotations:c}=e.documentData;for(const e of n){const n=f++;o.push(t.fetchIfRefAsync(e).then(async t=>{if(!isName(t.get("Subtype"),"Link")){if(isName(t.get("Subtype"),"Widget")){c||=isName(getInheritableProperty({dict:t,key:"FT"}),"Sig");const n=t.getRaw("Parent")||null;i.put(e,n)}l[n]=e;return}const o=t.get("A");if(o instanceof Dict&&!isName(o.get("S"),"GoTo")){l[n]=e;return}const f=o instanceof Dict?o.get("D"):t.get("Dest");if(f&&(!Array.isArray(f)||f[0]instanceof Ref&&!a.has(f[0]))){if(f instanceof Name||"string"==typeof f){const t=stringToPDFString(f instanceof Name?f.name:f,!0);if(s.has(t)){l[n]=e;r.add(t)}}}else l[n]=e}))}await Promise.all(o);l=l.filter(Boolean);e.annotations=l.length>0?l:null;e.documentData.hasSignatureAnnotations||=c}#oa(e){for(const{postponedRefCopies:t,pagesMap:n}of e)for(const e of n.keys())t.put(e,[])}#ha(e){for(const{postponedRefCopies:t,oldRefMapping:n}of e){for(const[e,a]of t.items()){const t=n.get(e);for(const e of a)e(t)}t.clear()}}#ga(e,t,n=new RefSet){if(e instanceof Ref){if(!n.has(e)){n.put(e);this.#ga(this.xref[e.num],t,n)}return}if(Array.isArray(e)){for(const a of e)this.#ga(a,t,n);return}let a;e instanceof BaseStream?({dict:a}=e):e instanceof Dict&&(a=e);if(a){t(a);for(const e of a.getRawValues())this.#ga(e,t,n)}}async#ua(e){let t=0;const{parentTree:n}=this;for(let e=0,a=this.newPages.length;e{const l=e.get("StructParent")??e.get("StructParents");if("number"!=typeof l)return;i.add(l);let f=a.get(l);const c=f instanceof Ref?f:null;if(c){const e=o.fetch(c);Array.isArray(e)&&(f=e)}Array.isArray(f)&&f.every(e=>null===e)&&(f=null);if(!f){e.has("StructParent")?e.delete("StructParent"):e.delete("StructParents");return}let h=r.get(l);if(void 0===h){h=t++;r.set(l,h);n.set(h,[s,f])}e.has("StructParent")?e.set("StructParent",h):e.set("StructParents",h)},c)}const{structTreeKids:a,idTree:s,classMap:r,roleMap:i,namespaces:o,structTreeAF:l,structTreePronunciationLexicon:f}=this;for(const t of e){const{document:{xref:e},oldRefMapping:n,parentTree:c,usedStructParents:h,structTreeRoot:u,idTree:m,classMap:p,roleMap:d,namespaces:g,structTreeAF:b,structTreePronunciationLexicon:w}=t;if(!u)continue;this.currentDocument=t;const j=new RefSet;for(const[e,t]of c||[])!h.has(e)&&t instanceof Ref&&j.put(t);const k=new Map;for(const[e,t]of m||[]){let n=e;if(s.has(e))for(let t=1;;t++){const a=`${e}_${t}`;if(!s.has(a)){k.set(e,a);n=a;break}}s.set(n,t)}const y=new Map;if(p?.size>0)for(let[t,n]of p){n=await this.#Wn(n,!0,e);if(r.has(t))for(let e=1;;e++){const n=`${t}_${e}`;if(!r.has(n)){y.set(t,n);t=n;break}}r.set(t,n)}const q=new Map;if(d?.size>0)for(const[e,t]of d){const n=i.get(e);if(n){if(n!==t)for(let n=1;;n++){const a=`${e}_${n}`;if(!i.has(a)){q.set(e,a);i.set(a,t);break}}}else i.set(e,t)}if(g?.length>0)for(const t of g){const n=await e.fetchIfRefAsync(t);let a=n.get("NS");if(!a||o.has(a))continue;a=stringToPDFString(a,!1);const s=await this.#Wn(n,!0,e);o.set(a,s)}if(b)for(const t of b)l.push(await this.#Wn(t,!0,e));if(w)for(const t of w)f.push(await this.#Wn(t,!0,e));const v=u.dict.getRaw("K");if(!v)continue;const S=await this.#Jn(v,e);for(let t of S){const s=t instanceof Ref?t:null;t=await e.fetchIfRefAsync(t);if(!(t instanceof Dict))continue;let r=!1;if(s&&j.has(s)){if(!isName(t.get("S"),"Link"))continue;r=!0}const i=await this.#Qn(s,t,e,j,k,y,q);if(i){a.push(i);s&&n.put(s,i);r&&this.xref[i.num].setIfName("S","Span")}}for(const[e,t]of m||[]){const a=t instanceof Ref&&n.get(t),r=k.get(e)||e;a?s.set(r,a):s.delete(r)}}for(const[e,[t,a]]of n){if(!a){n.delete(e);continue}if(!Array.isArray(a)){const s=t.get(a);void 0===s?n.delete(e):n.set(e,s);continue}const s=a.map(e=>e instanceof Ref&&t.get(e)||null);0===s.length||s.every(e=>null===e)?n.delete(e):n.set(e,s)}this.currentDocument=null}#na(e){for(const t of e){if(!t.destinations)continue;const{destinations:e,pagesMap:n}=t,a=t.destinations=new Map;for(const[t,s]of e){const e=s[0],r=e instanceof Ref&&n.get(e);if(r){(r.pointingNamedDestinations||=new Set).add(t);a.set(t,s)}}}}#ia(){const{namedDestinations:e}=this,getUniqueDestinationName=t=>{if(!e.has(t))return t;for(let n=1;;n++){const a=`${t}_${n}`;if(!e.has(a))return a}};for(let t=0,n=this.oldPages.length;t{"string"==typeof a&&e.set(n,t.get(stringToPDFString(a,!0))||a)};for(const t of e){const e=this.xref[t.num];if(!isName(e.get("Subtype"),"Link"))continue;const n=e.get("A");if(n instanceof Dict&&n.has("D")){const e=n.get("D");fixDestination(n,"D",e);continue}const a=e.get("Dest");fixDestination(e,"Dest",a)}}#aa(e){const collect=(e,t,n)=>{for(const a of e){"string"==typeof a.dest&&t?.has(a.dest)&&n.add(a.dest);a.items.length>0&&collect(a.items,t,n)}};for(const t of e){const{outline:e,destinations:n,usedNamedDestinations:a}=t;e?.length&&collect(e,n,a)}}#wa(e,t){const{dest:n,action:a,url:s,unsafeUrl:r,attachment:i,setOCGState:o}=e;if(a||s||r||i||o)return!0;if(!n)return!1;if("string"==typeof n){const e=t.dedupNamedDestinations.get(n)||n;return this.namedDestinations.has(e)}return!!(Array.isArray(n)&&n[0]instanceof Ref)&&!!t.oldRefMapping.get(n[0])}#ja(e,t){const n=[];for(const a of e){const e=this.#ja(a.items,t),s=this.#wa(a,t);(s||e.length>0)&&n.push({...a,dest:s?a.dest:null,rawDict:s?a.rawDict:null,items:e,_documentData:t})}return n}#pa(e){const t=[];for(const n of e){const{outline:e}=n;e?.length&&t.push(...this.#ja(e,n))}this.outlineItems=t.length>0?t:null}async#ka(e,t){const{dest:n,rawDict:a}=t,s=t._documentData;if(n){if("string"==typeof n){const t=s.dedupNamedDestinations.get(n)||n;e.set("Dest",stringToAsciiOrUTF16BE(t))}else if(Array.isArray(n)){const t=n.slice();t[0]instanceof Ref&&(t[0]=s.oldRefMapping.get(t[0])||t[0]);e.set("Dest",t)}return}const r=a?.get("A");if(r instanceof Dict){this.currentDocument=s;const t=await this.#Un(r,s.document.xref);this.currentDocument=null;e.set("A",t)}}async#ya(){const{outlineItems:e}=this;if(!e?.length)return;const[t,n]=this.newDict;n.setIfName("Type","Outlines");const assignRefs=e=>{for(const t of e){[t._ref]=this.newDict;t.items.length>0&&assignRefs(t.items)}};assignRefs(e);const fillItems=async(e,t)=>{let n=0;for(let a=0;a0&&r.set("Prev",e[a-1]._ref);a0){r.set("First",s.items[0]._ref);r.set("Last",s.items.at(-1)._ref);const e=await fillItems(s.items,s._ref);void 0!==s.count&&r.set("Count",s.count<0?-e:e);n+=void 0!==s.count&&s.count<0?1:e+1}else n+=1;await this.#ka(r,s);const i=(s.bold?2:0)|(s.italic?1:0);0!==i&&r.set("F",i);!s.color||0===s.color[0]&&0===s.color[1]&&0===s.color[2]||r.set("C",[s.color[0]/255,s.color[1]/255,s.color[2]/255])}return n},a=await fillItems(e,t);n.set("First",e[0]._ref);n.set("Last",e.at(-1)._ref);n.set("Count",a);this.rootDict.set("Outlines",t)}async#ma(e){this.#qa(e);this.#va(e);this.#Sa(e);await this.#Aa(e);const t=this.fields;for(const n of e){let e=n.acroForm?.get("Fields")||null;!e&&n.fieldToParent.size>0&&(e=this.#xa(n.fieldToParent,n.document.xref));if(Array.isArray(e)&&e.length>0){this.currentDocument=n;await this.#Ca(t,e);this.currentDocument=null}}this.#Ia(e)}#Sa(e){let t=0,n=null;for(const a of e){const e=a.acroForm?.get("Q");if("number"==typeof e&&0!==e)if(n?.acroFormQ>0)a.acroFormQ=e;else if(0!==t){if(e!==t){n.acroFormQ||=t;a.acroFormQ=e;t=0}}else{t=e;n=a}}t>0&&(this.acroFormQ=t)}#qa(e){let t=0,n=!1;for(const a of e){if(!a.acroForm)continue;const e=a.acroForm.get("SigFlags");"number"==typeof e&&a.hasSignatureAnnotations&&(t|=e);!0===a.acroForm.get("NeedAppearances")&&(n=!0)}this.acroFormSigFlags=t;this.acroFormNeedAppearances=n}#Ia(e){const t=[];for(const n of e){const e=n.acroForm?.get("CO")||null;if(!Array.isArray(e))continue;const{oldRefMapping:a}=n;for(const n of e){const e=n instanceof Ref&&a.get(n);e&&t.push(e)}}this.acroFormCalculationOrder=t.length>0?t:null}#va(e){let t=null,n=null;for(const a of e){const e=a.acroForm?.get("DA")||null;if(e&&"string"==typeof e)if(n?.acroFormDefaultAppearance)a.acroFormDefaultAppearance=e;else if(t){if(e!==t){n.acroFormDefaultAppearance||=t;a.acroFormDefaultAppearance=e;t=null}}else{t=e;n=a}}t&&(this.acroFormDefaultAppearance=t)}async#Aa(e){let t=null,n=null,a=null;for(const s of e){const e=s.acroForm?.get("DR")||null;if(e&&e instanceof Dict)if(a?.acroFormDefaultResources)s.acroFormDefaultResources=e;else if(t){if(!deepCompare(t,e)){a.acroFormDefaultResources||=t;s.acroFormDefaultResources=e;t=null;n=null}}else{t=e;n=s.acroForm.getRaw("DR");a=s}}if(t){this.currentDocument=a;this.acroFormDefaultResources=await this.#Wn(n,!0,a.document.xref);this.currentDocument=null}}#xa(e,t){const n=[],a=new RefSet;for(const[s,r]of e.items()){if(!r){n.push(s);continue}let e=r,i=r;const o=new RefSet;for(;;){if(e instanceof Ref){if(o.has(e))break;o.put(e)}const n=t.fetchIfRef(e);if(!(n instanceof Dict))break;e=n.getRaw("Parent")||null;if(!e)break;i=e}if(i instanceof Ref&&!a.has(i)){n.push(i);a.put(i)}}return n}async#Ca(e,t){const n=new RefSet,a=[{kids:t,newKids:e,pos:0,oldParentRef:null,parentRef:null,parent:null}],{document:{xref:s},oldRefMapping:r,fieldToParent:i,acroFormDefaultAppearance:o,acroFormDefaultResources:l,acroFormQ:f}=this.currentDocument,c=[],h=[];for(;a.length>0;){const e=a.at(-1),{kids:t,newKids:u,parent:m,pos:p}=e;if(p===t.length){a.pop();if(0===u.length||!m)continue;const t=this.xref[e.parentRef.num]=this.cloneDict(m);t.delete("Parent");t.delete("Kids");await this.#Wn(t,!1,s);t.set("Kids",u);if(a.length>0){const n=a.at(-1);if(!n.parentRef&&n.oldParentRef){const e=n.parentRef=this.newRef;t.set("Parent",e);r.put(n.oldParentRef,e)}n.newKids.push(e.parentRef)}continue}const d=t[e.pos++];if(!(d instanceof Ref)||n.has(d))continue;n.put(d);const g=s.fetchIfRef(d);if(!(g instanceof Dict))continue;if(g.has("Kids")){const e=g.get("Kids");if(!Array.isArray(e))continue;a.push({kids:e,newKids:[],pos:0,oldParentRef:d,parentRef:null,parent:g});continue}if(!i.has(d))continue;const b=r.get(d);if(!b)continue;u.push(b);if(!e.parentRef&&e.oldParentRef){e.parentRef=this.newRef;r.put(e.oldParentRef,e.parentRef)}const w=this.xref[b.num];e.parentRef&&w.set("Parent",e.parentRef);o&&!w.has("DA")&&c.push(w);l&&!w.has("Kids")&&w.get("AP")instanceof Dict&&h.push(w);f&&!w.has("Q")&&w.set("Q",f)}for(const e of c){if(!isName(getInheritableProperty({dict:e,key:"FT"}),"Tx"))continue;getInheritableProperty({dict:e,key:"DA"})||e.set("DA",o)}const u=new Map,fixAppearanceResources=async e=>{let t=e.dict.getRaw("Resources");t&&=this.xrefWrapper.fetchIfRef(t);if(!(t instanceof Dict)){const t=await u.getOrInsertComputed(l,()=>this.#Un(l,s));e.dict.set("Resources",t);return}for(const[e,n]of l.getRawEntries()){if(t.has(e))continue;let a=n;n instanceof Ref?a=await this.#Wn(n,!0,s):(n instanceof Dict||n instanceof BaseStream||Array.isArray(n))&&(a=await u.getOrInsertComputed(n,()=>this.#Un(n,s)));t.set(e,a)}};for(const e of h){const t=e.get("AP");for(const[,e]of t)if(e instanceof BaseStream)await fixAppearanceResources(e);else if(e instanceof Dict)for(const[,t]of e)t instanceof BaseStream&&await fixAppearanceResources(t)}}async#sa(){if(!this.isSingleFile)return;const e=this.oldPages.find(e=>!!e);if(!e)return;const{documentData:{document:t,pageLabels:n}}=e;if(!n)return;const a=t.numPages,s=new Map,r=new Set(this.oldPages.filter(Boolean).map(({page:{pageIndex:e}})=>e));let i=null,o=-1;for(let e=0;e{const t=new Dict;t.setIfName("S","D");t.set("St",e+1);return t};i=null;const l=this.pageLabels=[];for(let e=0,t=this.oldPages.length;ee!==c[t])&&p.set(e,n)}const g=t.userUnit;1!==g&&p.set("UserUnit",g);p.setIfDict("Resources",await this.#Wn(h,!0,l));let b=null;if(a){const e=await this.#Wn(a,!0,l);this.#ba(e,i);Array.isArray(e)&&e.length>0&&(b=e)}const w=n.document===this.#zn?this.#_n?.newAnnotationsByPage?.get(t.pageIndex)?.filter(({copyLevel:e})=>(e??0)===r):null;if(w?.length){const{handler:e,task:n,imagesPromises:a}=this.#_n,s=new RefMap,r=await AnnotationFactory.saveNewAnnotations(t._createPartialEvaluator(e),this.xrefWrapper,n,w,a,s);for(const[e,{data:t}]of s.items())this.xref[e.num]=t;b||=[];for(const{ref:e}of r.annotations)b.push(e)}p.setIfArray("Annots",b);if(this.useObjectStreams){const e=this.newRefCount,t=[];for(let n=d;nt.count||n.count===t.count&&n.width*n.height>t.width*t.height)&&(t=n);return{width:t.width,height:t.height}}async#fa(e,t){const{width:n,height:a}=t,s=.1*n,r=Math.max(1,n-2*s),i=Math.max(1,a-2*s),o=this.newRefCount,{imageStream:l,smaskStream:f,width:c,height:h}=await createImage(e,this.xrefWrapper,{closeBitmap:!0}),u=Math.min(r/c,i/h),m=c*u,p=h*u,d=(n-m)/2,g=(a-p)/2;if(f){const e=this.newRef;this.xref[e.num]=f;l.dict.set("SMask",e)}const b=this.newRef;this.xref[b.num]=l;const w=new Dict(this.xrefWrapper);w.set("Im0",b);const j=new Dict(this.xrefWrapper);j.set("XObject",w);j.set("ProcSet",[Name.get("PDF"),Name.get("ImageC")]);const k=`q ${numberToString(m)} 0 0 ${numberToString(p)} ${numberToString(d)} ${numberToString(g)} cm /Im0 Do Q`,y=new StringStream(k,new Dict(this.xrefWrapper)),q=this.newRef;this.xref[q.num]=y;const v=this.newRef,S=this.xref[v.num]=new Dict(this.xrefWrapper);S.setIfName("Type","Page");S.set("MediaBox",[0,0,n,a]);S.set("Resources",j);S.set("Contents",q);if(this.useObjectStreams){const e=this.newRefCount,t=[];for(let n=o;n0;){const{dict:e,kids:t,parentRef:n}=s.pop();if(t.length<=16){e.set("Kids",t);for(const e of t)this.xref[e.num].set("Parent",n);continue}const a=Math.max(16,Math.ceil(t.length/16)),r=[];for(let e=0;eet?1:0:([e],[t])=>e-t),[a,s]=this.newDict,r=[{dict:s,entries:n,isRoot:!0}],i=t?"Names":"Nums";for(;r.length>0;){const{dict:e,entries:t,isRoot:n}=r.pop();if(t.length<=64){n||e.set("Limits",[t[0][0],t.at(-1)[0]]);e.set(i,t.flat());continue}const a=[],s=Math.max(64,Math.ceil(t.length/64));for(let e=0;e[stringToAsciiOrUTF16BE(e),t]),!0))}}#Ba(){const{structTreeKids:e}=this;if(!e?.length)return;const{rootDict:t}=this,n=this.newRef,a=this.xref[n.num]=new Dict;a.setIfName("Type","StructTreeRoot");a.setIfArray("K",e);for(const t of e){const e=this.xref[t.num],a=e.get("Type");a&&!isName(a,"StructElem")||e.set("P",n)}if(this.parentTree.size>0){const e=this.#Ta(Array.from(this.parentTree.entries()),!1);this.xref[e.num].setIfName("Type","ParentTree");a.set("ParentTree",e);let t=0;for(const e of this.parentTree.keys())t=Math.max(t,e+1);a.set("ParentTreeNextKey",t)}if(this.idTree.size>0){const e=this.#Ta(Array.from(this.idTree.entries()),!0);this.xref[e.num].setIfName("Type","IDTree");a.set("IDTree",e)}if(this.classMap.size>0){const e=this.newRef;this.xref[e.num]=this.classMap;a.set("ClassMap",e)}if(this.roleMap.size>0){const e=this.newRef;this.xref[e.num]=this.roleMap;a.set("RoleMap",e)}if(this.namespaces.size>0){const e=this.newRef;this.xref[e.num]=Array.from(this.namespaces.values());a.set("Namespaces",e)}if(this.structTreeAF.length>0){const e=this.newRef;this.xref[e.num]=this.structTreeAF;a.set("AF",e)}if(this.structTreePronunciationLexicon.length>0){const e=this.newRef;this.xref[e.num]=this.structTreePronunciationLexicon;a.set("PronunciationLexicon",e)}t.set("StructTreeRoot",n)}#Da(){if(0===this.fields.length)return;const{rootDict:e}=this,t=this.newRef,n=this.xref[t.num]=new Dict;e.set("AcroForm",t);n.set("Fields",this.fields);this.acroFormNeedAppearances&&n.set("NeedAppearances",!0);this.acroFormSigFlags>0&&n.set("SigFlags",this.acroFormSigFlags);n.setIfArray("CO",this.acroFormCalculationOrder);n.setIfDefined("DR",this.acroFormDefaultResources);this.acroFormDefaultAppearance&&n.set("DA",this.acroFormDefaultAppearance);this.acroFormQ>0&&n.set("Q",this.acroFormQ)}async#Ma(){const{rootDict:e}=this;e.setIfName("Type","Catalog");e.setIfName("Version",this.version);this.#Da();this.#Fa();this.#Ra();this.#Oa();this.#Ha();this.#Ba();await this.#ya()}#Na(){const e=new Map;if(this.isSingleFile){const t=this.oldPages.find(e=>!!e),{xref:{trailer:n}}=t.documentData.document,a=n.get("Info");for(const[t,n]of a||[])"string"==typeof n&&e.set(t,stringToPDFString(n))}e.delete("ModDate");e.set("CreationDate",getModificationDate());e.set("Creator","PDF.js");e.set("Producer","Firefox");this.author&&e.set("Author",this.author);this.title&&e.set("Title",this.title);for(const[t,n]of e)this.infoDict.set(t,stringToAsciiOrUTF16BE(n));return e}async#Pa(){if(!this.isSingleFile)return[null,null,null];const e=this.oldPages.find(e=>!!e),{documentData:t}=e,{document:{xref:{trailer:n,encrypt:a}}}=t;if(!n.has("Encrypt"))return[null,null,null];const s=n.get("Encrypt");if(!(s instanceof Dict))return[null,null,null];this.currentDocument=t;const r=[await this.#Un(s,n.xref),a,n.get("ID")];this.currentDocument=null;return r}async#Ea(){const e=new RefMap;e.put(Ref.get(0,65535),{data:null});for(let t=1,n=this.xref.length;t{this._contentLength=e.contentLength;this._isStreamingSupported=e.isStreamingSupported;this._isRangeSupported=e.isRangeSupported;this._headersCapability.resolve()},this._headersCapability.reject)}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 extends BasePDFStreamRangeReader{_reader=null;constructor(e,t,n){super(e,t,n);const{msgHandler:a}=e._source,s=a.sendWithStream("GetRangeReader",{begin:t,end:n});this._reader=s.getReader()}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{#Ua=Promise.withResolvers();terminated=!1;constructor(e){this.name=e}get finished(){return this.#Ua.promise}finish(){this.#Ua.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 n=!1;e.on("test",t=>{if(!n){n=!0;e.send("test",t instanceof Uint8Array)}});e.on("configure",e=>{!function setVerbosityLevel(e){Number.isInteger(e)&&(nn=e)}(e.verbosity)});e.on("GetDocRequest",e=>this.createDocumentHandler(e,t))}static createDocumentHandler(e,t){let n,a=!1,s=null;const r=new Set,i=getVerbosityLevel(),{docId:o,apiVersion:l}=e,f="6.3.289";if(l!==f)throw new Error(`The API version "${l}" does not match the Worker version "${f}".`);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 c=o+"_worker";let h=new MessageHandler(c,o,t);function ensureNotTerminated(){if(a)throw new Error("Worker was terminated")}function startWorkerTask(e){r.add(e)}function finishWorkerTask(e){e.finish();r.delete(e)}async function loadDocument(e){await n.initDocument(e);const t=await n.ensureDoc("isPureXfa");if(t){const e=new WorkerTask("loadXfaResources");startWorkerTask(e);await n.ensureDoc("loadXfaResources",[h,e]);finishWorkerTask(e)}const[a,s]=await Promise.all([n.ensureDoc("numPages"),n.ensureDoc("fingerprints")]);return{numPages:a,fingerprints:s,htmlForXfa:t?await n.ensureDoc("htmlForXfa"):null}}async function getPassword(e){const t=new WorkerTask(`PasswordException: response ${e.code}`);startWorkerTask(t);try{return(await h.sendWithPromise("PasswordRequest",e)).password}finally{Promise.resolve().then(()=>{finishWorkerTask(t)})}}function setupDoc(e){function onSuccess(e){ensureNotTerminated();h.send("GetDoc",{pdfInfo:e})}function onFailure(e){a||(e instanceof PasswordException?getPassword(e).then(e=>{n.updatePassword(e);pdfManagerReady()}).catch(()=>{h.send("DocException",e)}):h.send("DocException",wrapReason(e)))}function pdfManagerReady(){ensureNotTerminated();loadDocument(!1).then(onSuccess,function(e){ensureNotTerminated();e instanceof XRefParseException?n.requestLoadedStream().then(function(){ensureNotTerminated();loadDocument(!0).then(onSuccess,onFailure)},onFailure):onFailure(e)})}ensureNotTerminated();(async function getPdfManager({data:e,password:t,disableAutoFetch:n,rangeChunkSize:a,docBaseUrl:r,enableXfa:i,evaluatorOptions:l}){const f={source:null,disableAutoFetch:n,docBaseUrl:r,docId:o,enableXfa:i,evaluatorOptions:l,handler:h,length:0,password:t,rangeChunkSize:a};if(e){f.source=e;return new LocalPdfManager(f)}const c=new PDFWorkerStream({msgHandler:h}),u=c.getFullReader(),{promise:m,resolve:p,reject:d}=Promise.withResolvers();let g,b=[];s=e=>c.cancelAllRequests(e);u.headersReady.then(()=>{if(u.isRangeSupported){f.source=c;f.length=u.contentLength;f.disableAutoFetch||=u.isStreamingSupported;g=new NetworkPdfManager(f);for(const e of b)g.sendProgressiveData(e);b=null;p(g);s=null}}).catch(e=>{d(e);s=null});(async function readData(){let e=0;for(;;){const{value:t,done:n}=await u.read();ensureNotTerminated();if(n)break;e+=t.byteLength;u.isStreamingSupported||h.send("DocProgress",{loaded:e,total:u.contentLength});g?g.sendProgressiveData(t):b.push(t)}if(!g){f.source=arrayBuffersToBytes(b);b=null;g=new LocalPdfManager(f);p(g)}s=null})().catch(e=>{d(e);s=null});return m})(e).then(function(e){if(a){e.terminate(new AbortException("Worker was terminated."));throw new Error("Worker was terminated")}n=e;n.requestLoadedStream(!0).then(e=>{h.send("DataLoaded",{length:e.bytes.byteLength})},()=>{})}).then(pdfManagerReady,onFailure)}h.on("GetPage",async function({pageIndex:e}){const t=await n.getPage(e),[a,s,r,i]=await Promise.all([n.ensure(t,"rotate"),n.ensure(t,"ref"),n.ensure(t,"userUnit"),n.ensure(t,"view")]);return{rotate:a,ref:s,refStr:s?.toString()??null,userUnit:r,view:i}});h.on("GetPageIndex",function({num:e,gen:t}){return n.ensureCatalog("getPageIndex",[Ref.get(e,t)])});h.on("GetDestinations",function(){return n.ensureCatalog("destinations")});h.on("GetDestination",function({id:e}){return n.ensureCatalog("getDestination",[e])});h.on("GetPageLabels",function(){return n.ensureCatalog("pageLabels")});h.on("GetPageLayout",function(){return n.ensureCatalog("pageLayout")});h.on("GetPageMode",function(){return n.ensureCatalog("pageMode")});h.on("GetViewerPreferences",function(){return n.ensureCatalog("viewerPreferences")});h.on("GetOpenAction",function(){return n.ensureCatalog("openAction")});h.on("GetAttachments",function(){return n.ensureCatalog("attachments")});h.on("GetAttachmentContent",async function(e){let t;for(;;){const a=t?await getPassword(t):null;try{a&&n.updatePassword(a);return await n.ensureCatalog("attachmentContent",[e])}catch(e){if(e instanceof PasswordException){t=e;continue}throw e}}});h.on("GetDocJSActions",function(){return n.ensureCatalog("jsActions")});h.on("GetPageJSActions",async function({pageIndex:e}){const t=await n.getPage(e);return n.ensure(t,"jsActions")});h.on("GetAnnotationsByType",async function({types:e,pageIndexesToSkip:t}){const[a,s]=await Promise.all([n.ensureDoc("numPages"),n.ensureDoc("annotationGlobals")]);if(!s)return null;const r=[],i=[];let o=null;try{for(let l=0,f=a;lt.collectAnnotationsByType(h,o,e,i,s)))}await Promise.all(r);return(await Promise.all(i)).filter(Boolean)}finally{o&&finishWorkerTask(o)}});h.on("GetOutline",function(){return n.ensureCatalog("documentOutline")});h.on("GetOptionalContentConfig",function(){return n.ensureCatalog("optionalContentConfig")});h.on("GetPermissions",function(){return n.ensureCatalog("permissions")});h.on("GetMetadata",function(){return Promise.all([n.ensureDoc("documentInfo"),n.ensureCatalog("metadata"),n.ensureCatalog("hasStructTree")])});h.on("GetMarkInfo",function(){return n.ensureCatalog("markInfo")});h.on("GetData",async function(){return(await n.requestLoadedStream()).bytes});h.on("GetAnnotations",async function({pageIndex:e,intent:t}){const a=await n.getPage(e),s=new WorkerTask(`GetAnnotations: page ${e}`);startWorkerTask(s);try{return await a.getAnnotationsData(h,s,t)}finally{finishWorkerTask(s)}});h.on("GetFieldObjects",async function(){const e=await n.ensureDoc("fieldObjects");return e?.allFields||null});h.on("GetSignatures",function(){return n.ensureDoc("signatures")});h.on("GetSignatureData",function(e){return n.ensureDoc("getSignatureData",[e])});h.on("HasJSActions",function(){return n.ensureDoc("hasJSActions")});h.on("GetCalculationOrderIds",function(){return n.ensureDoc("calculationOrderIds")});h.on("ExtractPages",async function({pageInfos:e,annotationStorage:t}){if(!e){warn("extractPages: nothing to extract.");return null}Array.isArray(e)||(e=[e]);let a,s=0;for(const t of e)if(!t.image)if(null===t.document)t.document=n.pdfDocument;else if(ArrayBuffer.isView(t.document)){const e=new LocalPdfManager({source:t.document,docId:`${o}_extractPages_${s++}`,handler:h,password:t.password??null,evaluatorOptions:Object.assign({},n.evaluatorOptions)});let a=!1,r=!0;for(;;)try{await e.requestLoadedStream();await e.initDocument(a);break}catch(t){if(t instanceof XRefParseException){if(!1===a){a=!0;continue}r=!1;warn("extractPages: XRefParseException.")}else if(t instanceof PasswordException)try{const n=await getPassword(t);e.updatePassword(n)}catch{r=!1;warn("extractPages: invalid password.")}else{r=!1;warn("extractPages: invalid document.")}if(!r)break}r||(t.document=null);if(await e.ensureDoc("isPureXfa")){t.document=null;warn("extractPages does not support pure XFA documents.")}else t.document=e.pdfDocument}else warn("extractPages: invalid document.");try{const s=new PDFEditor;a=new WorkerTask(`ExtractPages: ${e.length} page(s)`);startWorkerTask(a);return await s.extractPages(e,t,n.pdfDocument,h,a)}catch(e){warn(`extractPages: "${e}".`);return null}finally{a&&finishWorkerTask(a)}});h.on("SaveDocument",async function({isPureXfa:e,numPages:t,annotationStorage:a,filename:s}){const r=[n.requestLoadedStream(),n.ensureCatalog("acroForm"),n.ensureCatalog("acroFormRef"),n.ensureDoc("startXRef"),n.ensureDoc("xref"),n.ensureCatalog("structTreeRoot")],i=new RefMap,o=[],l=e?null:getNewAnnotationsMap(a),[f,c,u,m,p,d]=await Promise.all(r),g=p.trailer.getRaw("Root")||null;let b;if(l){d?await d.canUpdateStructTree({pdfManager:n,newAnnotationsByPage:l})&&(b=d):await StructTreeRoot.canCreateStructureTree({catalogRef:g,pdfManager:n,newAnnotationsByPage:l})&&(b=null);const e=AnnotationFactory.generateImages(a.values(),p,n.evaluatorOptions.isOffscreenCanvasSupported),t=void 0===b?o:[];for(const[a,s]of l)t.push(n.getPage(a).then(t=>{const n=new WorkerTask(`Save (editor): page ${a}`);startWorkerTask(n);return t.saveNewAnnotations(h,n,s,e,i).finally(()=>{finishWorkerTask(n)})}));null===b?o.push(Promise.all(t).then(async()=>{await StructTreeRoot.createStructureTree({newAnnotationsByPage:l,xref:p,catalogRef:g,pdfManager:n,changes:i})})):b&&o.push(Promise.all(t).then(async()=>{await b.updateStructureTree({newAnnotationsByPage:l,pdfManager:n,changes:i})}))}if(e)o.push(n.ensureDoc("serializeXfaData",[a]));else for(let e=0;e{finishWorkerTask(n)})}));const w=await Promise.all(o);let j=null;if(e){j=w[0];if(!j)return f.bytes}else if(0===i.size)return f.bytes;const k=u&&c instanceof Dict&&i.values().some(e=>e.needAppearances),y=c instanceof Dict&&c.get("XFA")||null;let q=null,v=!1;if(Array.isArray(y)){for(let e=0,t=y.length;e{p.resetNewTemporaryRef()})});h.on("GetOperatorList",function({pageId:e,pageIndex:t,intent:a,cacheKey:s,annotationStorage:r,modifiedIds:o},l){n.getPage(e).then(function(e){const n=new WorkerTask(`GetOperatorList: page ${t}`);startWorkerTask(n);const f=i>=he?Date.now():0;e.getOperatorList({handler:h,sink:l,task:n,intent:a,cacheKey:s,annotationStorage:r,modifiedIds:o,pageIndex:t}).then(e=>{f&&info(`${n.name}; time=${Date.now()-f}ms, len=${e.length}`);l.close()},e=>{n.terminated||l.error(e)}).finally(()=>{finishWorkerTask(n)})})});h.on("GetTextContent",function({pageId:e,pageIndex:t,includeMarkedContent:a,disableNormalization:s},r){n.getPage(e).then(function(e){const n=new WorkerTask("GetTextContent: page "+t);startWorkerTask(n);const o=i>=he?Date.now():0;e.extractTextContent({handler:h,task:n,sink:r,includeMarkedContent:a,disableNormalization:s}).then(()=>{o&&info(`${n.name}; time=${Date.now()-o}ms`);r.close()},e=>{n.terminated||r.error(e)}).finally(()=>{finishWorkerTask(n)})})});h.on("GetStructTree",async function({pageIndex:e}){const t=await n.getPage(e);return n.ensure(t,"getStructTree")});h.on("FontFallback",function({id:e}){return n.fontFallback(e,h)});h.on("Cleanup",function(){return n.cleanup(!0)});h.on("Terminate",async function(){a=!0;const e=[];if(n){n.terminate(new AbortException("Worker was terminated."));const t=n.cleanup();e.push(t);n=null}else clearGlobalCaches();s?.(new AbortException("Worker was terminated."));for(const t of r){e.push(t.finished);t.terminate()}await Promise.all(e);h.destroy();h=null});h.on("Ready",function(){setupDoc(e);e=null});return c}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/web/dist/styles.css b/web/dist/styles.css index f6694f5b..1a54bfc0 100644 --- a/web/dist/styles.css +++ b/web/dist/styles.css @@ -1,3 +1,2 @@ -/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */ -@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-outline-style:solid;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0}}}@layer reset{:where(*){box-sizing:border-box;border:0 solid}:where(html){-webkit-text-size-adjust:100%;tab-size:4;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;line-height:1.5}@media (prefers-color-scheme:dark){:where(html){--lightningcss-light: ;--lightningcss-dark:initial}}:where(body){line-height:inherit;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0}:where(h1,h2,h3,h4,h5,h6){font-size:inherit;font-weight:inherit}:where(h1,h2,h3,h4,h5,h6,p,blockquote,figure,pre,dl,dd){margin:0}:where(a){color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}:where(b,strong){font-weight:bolder}:where(code,kbd,samp,pre){font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}:where(small){font-size:80%}:where(sub,sup){vertical-align:baseline;font-size:75%;line-height:0;position:relative}:where(sub){bottom:-.25em}:where(sup){top:-.5em}:where(ol,ul,menu){margin:0;padding:0;list-style:none}:where(img,svg,video,canvas,audio,iframe,embed,object){vertical-align:middle;display:block}:where(img,video){max-width:100%;height:auto}:where([data-astryx-aspect-ratio-override=cover],[data-astryx-aspect-ratio-override=contain])>:where(*){width:100%;height:100%}:where([data-astryx-aspect-ratio-override=cover])>:where(img,video){object-fit:cover}:where([data-astryx-aspect-ratio-override=contain])>:where(img,video){object-fit:contain}:where(button,input,optgroup,select,textarea){font:inherit;color:inherit;margin:0;padding:0}:where(button,[type=button],[type=reset],[type=submit]){appearance:button;background-color:#0000;background-image:none}:where(button,[role=button]){cursor:pointer}:where(:disabled,[aria-disabled=true]){cursor:default}:where(textarea){resize:vertical}:where(){opacity:1;color:var(--color-text-secondary,#9ca3af);-webkit-appearance:none}:where(fieldset){margin:0;padding:0}:where(legend){padding:0}:where(table){text-indent:0;border-color:inherit;border-collapse:collapse}:where(hr){height:0;color:inherit;border-top-width:1px}:where(summary){display:list-item}:where(dialog){outline:none;padding:0}:where([hidden]){display:none}:where(html){-webkit-tap-highlight-color:transparent}:where(html[data-theme=light]){--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:where(html[data-theme=dark]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:where(html:not([data-theme])){--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:where(html:not([data-theme])){--lightningcss-light: ;--lightningcss-dark:initial}}:where([data-astryx-media=dark]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:where([data-astryx-media=light]){--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@scope([data-astryx-theme=neutral]) to ([data-astryx-theme]){:where(h1,h2,h3,h4,h5,h6){font-family:var(--font-family-heading);color:var(--color-text-primary)}:where(h1){font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);line-height:1.3333}:where(h2){font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);line-height:1.4}:where(h3){font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);line-height:1.4118}:where(h4){font-size:var(--font-size-base);font-weight:var(--font-weight-bold);line-height:1.4286}:where(h5){font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);line-height:1.6667}:where(h6){font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);line-height:1.6}:where(p){font-family:var(--font-family-body);font-size:var(--font-size-base);font-weight:var(--font-weight-normal);color:var(--color-text-primary);line-height:1.4286}:where(small){font-size:var(--font-size-sm);font-weight:var(--font-weight-normal);color:var(--color-text-secondary);line-height:1.6667}:where(code,pre){font-family:var(--font-family-code);font-size:var(--font-size-base);line-height:1.4286}:where(hr){border:none;border-top:1px solid var(--color-border)}}}@layer theme{:root,:host{--container-xl:36rem;--font-weight-normal:var(--font-weight-normal);--font-weight-medium:var(--font-weight-medium);--font-weight-semibold:var(--font-weight-semibold);--font-weight-bold:var(--font-weight-bold);--default-font-family:var(--font-family-body);--default-mono-font-family:var(--font-family-code);--color-accent:var(--color-text-accent);--color-overlay:var(--color-overlay);--color-accent-muted:var(--color-accent-muted);--color-on-accent:var(--color-on-accent);--color-neutral:var(--color-neutral);--color-overlay-hover:var(--color-overlay-hover);--color-overlay-pressed:var(--color-overlay-pressed);--color-tint-hover:var(--color-tint-hover);--color-success:var(--color-success);--color-success-muted:var(--color-success-muted);--color-on-success:var(--color-on-success);--color-error:var(--color-error);--color-error-muted:var(--color-error-muted);--color-on-error:var(--color-on-error);--color-warning:var(--color-warning);--color-warning-muted:var(--color-warning-muted);--color-on-warning:var(--color-on-warning);--color-border:var(--color-border);--color-on-dark:var(--color-on-dark);--color-on-light:var(--color-on-light);--color-skeleton:var(--color-skeleton);--color-track:var(--color-track);--color-shadow:var(--color-shadow);--radius-none:var(--radius-none);--radius-full:var(--radius-full)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer astryx-base{@property --x---_avatar-group-overlap{syntax:"*";inherits:false}@property --x---_codeblock-gutter-width{syntax:"*";inherits:false}@property --x---_hover-delay{syntax:"*";inherits:false}@property --x---_tab-indicator-bottom{syntax:"*";inherits:false}@property --x---container-max-height{syntax:"*";inherits:false}@property --x---layout-content-width{syntax:"*";inherits:false}@property --x-126w13d{syntax:"*";inherits:false}@property --x-4drmnv{syntax:"*";inherits:false}@property --x-animationDelay{syntax:"*";inherits:false}@property --x-aspectRatio{syntax:"*";inherits:false}@property --x-backgroundColor{syntax:"*";inherits:false}@property --x-borderWidth{syntax:"*";inherits:false}@property --x-bottom{syntax:"*";inherits:false}@property --x-counterReset{syntax:"*";inherits:false}@property --x-fontSize{syntax:"*";inherits:false}@property --x-gap{syntax:"*";inherits:false}@property --x-gridAutoRows{syntax:"*";inherits:false}@property --x-gridTemplateColumns{syntax:"*";inherits:false}@property --x-height{syntax:"*";inherits:false}@property --x-inlineSize{syntax:"*";inherits:false}@property --x-insetInlineEnd{syntax:"*";inherits:false}@property --x-insetInlineStart{syntax:"*";inherits:false}@property --x-marginBlock{syntax:"*";inherits:false}@property --x-marginBlockEnd{syntax:"*";inherits:false}@property --x-marginBlockStart{syntax:"*";inherits:false}@property --x-marginInline{syntax:"*";inherits:false}@property --x-marginInlineEnd{syntax:"*";inherits:false}@property --x-marginInlineStart{syntax:"*";inherits:false}@property --x-maxHeight{syntax:"*";inherits:false}@property --x-maxWidth{syntax:"*";inherits:false}@property --x-minHeight{syntax:"*";inherits:false}@property --x-minWidth{syntax:"*";inherits:false}@property --x-paddingBlock{syntax:"*";inherits:false}@property --x-paddingInline{syntax:"*";inherits:false}@property --x-paddingInlineEnd{syntax:"*";inherits:false}@property --x-paddingInlineStart{syntax:"*";inherits:false}@property --x-qthpiu{syntax:"*";inherits:false}@property --x-sj6hyi{syntax:"*";inherits:false}@property --x-top{syntax:"*";inherits:false}@property --x-transform{syntax:"*";inherits:false}@property --x-WebkitLineClamp{syntax:"*";inherits:false}@property --x-width{syntax:"*";inherits:false}@property --x-1dd27dc{syntax:"*";inherits:true}@property --x-owu7oy{syntax:"*";inherits:true}@keyframes x188b6p3-B{0%{color:inherit}to{color:#0000}}@keyframes xuvekqa-B{0%{opacity:.3}50%{opacity:1}to{opacity:.3}}@keyframes x1tut0r7-B{0%{opacity:.3;transform:rotateX(52deg)scale(.86)}50%{opacity:1;transform:rotateX(0)scale(1)}to{opacity:.3;transform:rotateX(-52deg)scale(.86)}}@keyframes x13kz0yu-B{0%,to{opacity:1}50%{opacity:.5}}@keyframes x18re5ia-B{0%{opacity:0}to{opacity:1}}@keyframes xgnty7z-B{0%{opacity:.25}to{opacity:1}}@keyframes xtut5q7-B{0%{opacity:1}50%{opacity:.5}to{opacity:1}}@keyframes x1k48ry3-B{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes x11lauxq-B{0%{opacity:0;transform:translate(var(--dialog-dir-x,0px),var(--dialog-dir-y,16px)) scale(.95)}to{opacity:1;transform:translate(0)scale(1)}}@keyframes xu7jd1z-B{0%{opacity:0;transform:translateX(var(--spacing-2)) scale(.95)}to{opacity:1;transform:translate(0)scale(1)}}@keyframes xwmkjkf-B{0%{opacity:0;transform:translateX(calc(-1 * var(--spacing-2))) scale(.95)}to{opacity:1;transform:translate(0)scale(1)}}@keyframes x1ahk7ht-B{0%{opacity:0;transform:translateY(var(--spacing-2)) scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes xv1hr86-B{0%{opacity:0;transform:translateY(calc(-1 * var(--spacing-2))) scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes x1b6yrix-B{0%{opacity:0;transform:translateY(var(--spacing-2))}to{opacity:1;transform:translateY(0)}}@keyframes xiylxmw-B{0%{opacity:0;transform:translateY(calc(-1 * var(--spacing-2)))}to{opacity:1;transform:translateY(0)}}@keyframes xqng64z-B{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes x1c2q33o-B{0%{transform:translate(100%)}to{transform:translate(-250%)}}@keyframes xr3m334-B{0%{transform:translate(-100%)}to{transform:translate(250%)}}@keyframes x1xhkexc-B{0%{opacity:0;width:0;margin-inline-end:0}to{opacity:1;width:14px;margin-inline-end:var(--spacing-1)}}:root,.xafi2nm{--border-width:1px}:root,.xj0fimd{--color-accent:var(--lightningcss-light,#0064e0)var(--lightningcss-dark,#2694fe);--color-accent-muted:var(--lightningcss-light,#0082fb33)var(--lightningcss-dark,#0082fb3f);--color-on-accent:#fff;--color-neutral:var(--lightningcss-light,#0536591a)var(--lightningcss-dark,#dfe2e533);--color-background-surface:var(--lightningcss-light,#fff)var(--lightningcss-dark,#1f1f22);--color-background-body:var(--lightningcss-light,#f1f4f7)var(--lightningcss-dark,#111112);--color-overlay:var(--lightningcss-light,#01122866)var(--lightningcss-dark,#11111299);--color-overlay-hover:var(--lightningcss-light,#0536590c)var(--lightningcss-dark,#ffffff0c);--color-overlay-pressed:var(--lightningcss-light,#05365919)var(--lightningcss-dark,#ffffff19);--color-background-muted:var(--lightningcss-light,#0536590c)var(--lightningcss-dark,#1111127f);--color-text-primary:var(--lightningcss-light,#0a1317)var(--lightningcss-dark,#dfe2e5);--color-text-secondary:var(--lightningcss-light,#4e606f)var(--lightningcss-dark,#aaafb5);--color-text-disabled:var(--lightningcss-light,#a4b0bc)var(--lightningcss-dark,#6f747c);--color-text-accent:var(--lightningcss-light,#0064e0)var(--lightningcss-dark,#3e9efb);--color-on-dark:#fff;--color-on-light:#000;--color-icon-accent:var(--lightningcss-light,#0064e0)var(--lightningcss-dark,#2694fe);--color-icon-primary:var(--lightningcss-light,#0a1317)var(--lightningcss-dark,#dfe2e5);--color-icon-secondary:var(--lightningcss-light,#4e606f)var(--lightningcss-dark,#aaafb5);--color-icon-disabled:var(--lightningcss-light,#a4b0bc)var(--lightningcss-dark,#6f747c);--color-background-card:var(--lightningcss-light,#fff)var(--lightningcss-dark,#1f1f22);--color-background-popover:var(--lightningcss-light,#fff)var(--lightningcss-dark,#28292c);--color-background-inverted:var(--lightningcss-light,#0a1317)var(--lightningcss-dark,#fff);--color-background-error-inverted:var(--lightningcss-light,#aa071e)var(--lightningcss-dark,#e3193b);--color-success:#0d8626;--color-success-muted:var(--lightningcss-light,#0b991f33)var(--lightningcss-dark,#0b991f3f);--color-on-success:#fff;--color-error:var(--lightningcss-light,#e3193b)var(--lightningcss-dark,#f5394f);--color-error-muted:var(--lightningcss-light,#e3193b33)var(--lightningcss-dark,#f5394f3f);--color-on-error:#fff;--color-warning:var(--lightningcss-light,#e9af08)var(--lightningcss-dark,#f2c00b);--color-warning-muted:var(--lightningcss-light,#e2a40033)var(--lightningcss-dark,#e2a4003f);--color-on-warning:#0a1317;--color-border:var(--lightningcss-light,#05365919)var(--lightningcss-dark,#f2f4f619);--color-border-emphasized:var(--lightningcss-light,#ccd3db)var(--lightningcss-dark,#494d53);--color-skeleton:var(--lightningcss-light,#ccd3db)var(--lightningcss-dark,#5a5e66);--color-track:var(--lightningcss-light,#ccd3db)var(--lightningcss-dark,#5a5e66);--color-shadow:var(--lightningcss-light,#0536591a)var(--lightningcss-dark,#0000004d);--color-tint-hover:var(--lightningcss-light,#000)var(--lightningcss-dark,#fff);--color-background-blue:#0171e333;--color-border-blue:var(--lightningcss-light,#0064e0)var(--lightningcss-dark,#2694fe);--color-icon-blue:var(--lightningcss-light,#0064e0)var(--lightningcss-dark,#2694fe);--color-text-blue:var(--lightningcss-light,#042f97)var(--lightningcss-dark,#afd7ff);--color-background-cyan:#03a7d733;--color-border-cyan:var(--lightningcss-light,#089dd0)var(--lightningcss-dark,#0171a4);--color-icon-cyan:var(--lightningcss-light,#00acc1)var(--lightningcss-dark,#26c6da);--color-text-cyan:var(--lightningcss-light,#014975)var(--lightningcss-dark,#a1eef9);--color-background-gray:var(--lightningcss-light,#0a131733)var(--lightningcss-dark,#666a724c);--color-border-gray:var(--lightningcss-light,#647685)var(--lightningcss-dark,#748695);--color-icon-gray:var(--lightningcss-light,#4e606f)var(--lightningcss-dark,#aaafb5);--color-text-gray:var(--lightningcss-light,#0a1317)var(--lightningcss-dark,#e7eaed);--color-background-green:#24bb5e33;--color-border-green:var(--lightningcss-light,#0d8626)var(--lightningcss-dark,#0b991f);--color-icon-green:var(--lightningcss-light,#0d8626)var(--lightningcss-dark,#26a756);--color-text-green:var(--lightningcss-light,#09441f)var(--lightningcss-dark,#a5f690);--color-background-orange:#f2790233;--color-border-orange:var(--lightningcss-light,#eb6e00)var(--lightningcss-dark,#b34a01);--color-icon-orange:var(--lightningcss-light,#e9690b)var(--lightningcss-dark,#fb8c00);--color-text-orange:var(--lightningcss-light,#6b2203)var(--lightningcss-dark,#fdb876);--color-background-pink:#e638b333;--color-border-pink:var(--lightningcss-light,#f351c0)var(--lightningcss-dark,#c02294);--color-icon-pink:var(--lightningcss-light,#c2185b)var(--lightningcss-dark,#ec407a);--color-text-pink:var(--lightningcss-light,#650053)var(--lightningcss-dark,#feade3);--color-background-purple:#7952ff33;--color-border-purple:var(--lightningcss-light,#9081ff)var(--lightningcss-dark,#7340fe);--color-icon-purple:var(--lightningcss-light,#5b08d8)var(--lightningcss-dark,#7952ff);--color-text-purple:var(--lightningcss-light,#3e0697)var(--lightningcss-dark,#b3b0fe);--color-background-red:#e3193b33;--color-border-red:var(--lightningcss-light,#e3193b)var(--lightningcss-dark,#f5394f);--color-icon-red:var(--lightningcss-light,#d31130)var(--lightningcss-dark,#e3193b);--color-text-red:var(--lightningcss-light,#7b0210)var(--lightningcss-dark,#ffb2b8);--color-background-teal:#0db7af33;--color-border-teal:var(--lightningcss-light,#08a3a3)var(--lightningcss-dark,#08767d);--color-icon-teal:var(--lightningcss-light,#009688)var(--lightningcss-dark,#26a69a);--color-text-teal:var(--lightningcss-light,#083943)var(--lightningcss-dark,#40dccd);--color-background-yellow:#e2a40033;--color-border-yellow:var(--lightningcss-light,#c58600)var(--lightningcss-dark,#b47700);--color-icon-yellow:var(--lightningcss-light,#fbc02d)var(--lightningcss-dark,#ffee58);--color-text-yellow:var(--lightningcss-light,#753f07)var(--lightningcss-dark,#fbce03)}:root,.x14lkjui{--duration-fast-min:.13s;--duration-fast:.175s;--duration-fast-max:.23s;--duration-medium-min:.31s;--duration-medium:.41s;--duration-medium-max:.55s;--duration-slow-min:.73s;--duration-slow:.975s;--duration-slow-max:1.3s}:root,.xf09i69{--ease-standard:cubic-bezier(.24, 1, .4, 1)}:root,.xzxs3qz{--focus-outline-width:2px;--focus-outline-style:solid;--focus-outline-color:var(--color-accent);--focus-outline-offset:3px}:root,.x5tdzeq{--font-family-body:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-family-code:"SF Mono", Monaco, Consolas, monospace;--font-family-heading:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}:root,.x1q1ms06{--font-size-4xs:.375rem;--font-size-3xs:.4375rem;--font-size-2xs:.5rem;--font-size-xs:.625rem;--font-size-sm:.75rem;--font-size-base:.875rem;--font-size-lg:1.0625rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.8125rem;--font-size-4xl:2.1875rem;--font-size-5xl:2.625rem}:root,.x1ccmotb{--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700}:root,.xrw1vgx{--radius-none:0px;--radius-inner:4px;--radius-element:8px;--radius-container:12px;--radius-page:28px;--radius-chat:28px;--radius-full:9999px}:root,.xua8qm3{--shadow-low:0px 1px 1px var(--lightningcss-light,#0000001a)var(--lightningcss-dark,#0003), 0px 2px 8px var(--lightningcss-light,#0000001a)var(--lightningcss-dark,#0003);--shadow-med:0px 1px 2px var(--lightningcss-light,#0000001a)var(--lightningcss-dark,#0003), 0px 2px 12px var(--lightningcss-light,#0000001a)var(--lightningcss-dark,#0003);--shadow-high:0px 2px 2px var(--lightningcss-light,#0000001a)var(--lightningcss-dark,#0003), 0px 8px 24px var(--lightningcss-light,#0000001a)var(--lightningcss-dark,#0000004d);--shadow-inset-hover:inset 0px 0px 0px 2px var(--lightningcss-light,#05365926)var(--lightningcss-dark,#dfe2e533);--shadow-inset-selected:inset 0px 0px 0px 2px #0171e380;--shadow-inset-success:inset 0px 0px 0px 2px #26a7564d;--shadow-inset-warning:inset 0px 0px 0px 2px #e2a4004d;--shadow-inset-error:inset 0px 0px 0px 2px #e3193b4d}:root,.xkgjyic{--size-element-sm:28px;--size-element-md:32px;--size-element-lg:36px}:root,.x1kvdh9l{--spacing-0:0px;--spacing-0-5:2px;--spacing-1:4px;--spacing-1-5:6px;--spacing-2:8px;--spacing-3:12px;--spacing-4:16px;--spacing-5:20px;--spacing-6:24px;--spacing-7:28px;--spacing-8:32px;--spacing-9:36px;--spacing-10:40px;--spacing-11:44px;--spacing-12:48px}:root,.x1etlgq0{--text-heading-1-size:var(--font-size-2xl);--text-heading-1-weight:var(--font-weight-semibold);--text-heading-1-leading:1.3333;--text-heading-2-size:var(--font-size-xl);--text-heading-2-weight:var(--font-weight-semibold);--text-heading-2-leading:1.4;--text-heading-3-size:var(--font-size-lg);--text-heading-3-weight:var(--font-weight-semibold);--text-heading-3-leading:1.4118;--text-heading-4-size:var(--font-size-base);--text-heading-4-weight:var(--font-weight-semibold);--text-heading-4-leading:1.4286;--text-heading-5-size:var(--font-size-sm);--text-heading-5-weight:var(--font-weight-semibold);--text-heading-5-leading:1.6667;--text-heading-6-size:var(--font-size-xs);--text-heading-6-weight:var(--font-weight-semibold);--text-heading-6-leading:1.6;--text-body-size:var(--font-size-base);--text-body-weight:var(--font-weight-normal);--text-body-leading:1.4286;--text-large-size:var(--font-size-lg);--text-large-weight:var(--font-weight-semibold);--text-large-leading:1.4118;--text-label-size:var(--font-size-base);--text-label-weight:var(--font-weight-medium);--text-label-leading:1.4286;--text-code-size:var(--font-size-base);--text-code-weight:var(--font-weight-normal);--text-code-leading:1.4286;--text-supporting-size:var(--font-size-sm);--text-supporting-weight:var(--font-weight-normal);--text-supporting-leading:1.6667;--text-display-1-size:var(--font-size-5xl);--text-display-1-weight:var(--font-weight-normal);--text-display-1-leading:1.2381;--text-display-2-size:var(--font-size-4xl);--text-display-2-weight:var(--font-weight-normal);--text-display-2-leading:1.2571;--text-display-3-size:var(--font-size-3xl);--text-display-3-weight:var(--font-weight-normal);--text-display-3-leading:1.2414}.xlz5hwt{--_avatar-group-overlap:var(--x---_avatar-group-overlap)}.xdarwi0{--_avatar-radius:var(--radius-element)}.xeincmr{--_avatar-radius:var(--radius-full)}.x877142{--_avatar-radius:var(--radius-none)}.xh8ntw8{--_button-radius:calc(var(--radius-element) - var(--spacing-1))}.xcw7vlg{--_button-radius:max(var(--radius-element),calc(var(--_chat-composer-radius) - var(--_chat-composer-padding)))}.x1rjw8qi{--_button-radius:var(--radius-full)}.xw28qpl{--_card-elevation:0 0 transparent}.xnpe7fx{--_card-elevation:var(--shadow-high)}.x1nn8khe{--_card-elevation:var(--shadow-low)}.x1ovzxg0{--_card-elevation:var(--shadow-med)}.x2kkz0m{--_card-radius:var(--radius-container)}.xr9ms2c{--_card-ring:inset 0 0 0 2px var(--color-accent)}.xgwwt2v{--_card-ring:inset 0 0 0 2px var(--color-border-blue)}.xcdi0x3{--_card-ring:inset 0 0 0 2px var(--color-border-cyan)}.x1m1zkwp{--_card-ring:inset 0 0 0 2px var(--color-border-gray)}.x1485227{--_card-ring:inset 0 0 0 2px var(--color-border-green)}.x1cclxpp{--_card-ring:inset 0 0 0 2px var(--color-border-orange)}.xzs6dn4{--_card-ring:inset 0 0 0 2px var(--color-border-pink)}.x9zgi83{--_card-ring:inset 0 0 0 2px var(--color-border-purple)}.xo8718j{--_card-ring:inset 0 0 0 2px var(--color-border-red)}.xp4e5fy{--_card-ring:inset 0 0 0 2px var(--color-border-teal)}.x1glw7ee{--_card-ring:inset 0 0 0 2px var(--color-border-yellow)}.x3zsw4j{--_card-ring:inset 0 0 0 2px var(--selectable-card-ring-color)}.x18zce08{--_chat-composer-padding:var(--spacing-2)}.xk0ittl{--_chat-composer-padding:var(--spacing-3)}.xx161y6{--_chat-composer-radius:var(--radius-chat)}.xtk08jq{--_codeblock-gutter-width:var(--x---_codeblock-gutter-width)}.x9pmotm{--_conceal-opacity:0}.x1kgmhs9{--_conceal-opacity:1}.xvuvksw{--_dialog-radius:var(--radius-container)}.xgory14{--_dropdown-menu-padding:var(--spacing-1)}.x1fcsqxe{--_dropdown-menu-radius:var(--radius-container)}.x13l1x9d{--_fade-delay:0s}.x1832zxr{--_field-radius:var(--radius-element)}.xgzxwq1{--_focus-outline-offset:0}.x17wzz1v{--_focus-outline:none}.xhg274n{--_hover-delay:0s}.x8xu23y{--_hover-delay:var(--x---_hover-delay)}.xqwz7mz{--_hovercard-radius:var(--radius-container)}.xqxtgf4{--_input-clear-hit-content:none}.xtoycft{--_input-clear-hit-inset:0px}.xqlix59{--_item-description-color:var(--color-error)}.xufyqxy{--_item-label-color:var(--color-error)}.xiki222{--_popover-radius:var(--radius-container)}.xdjmrzf{--_reveal-delay-reduced:0s,0s}.x1dejzja{--_reveal-delay:0s,0s}.x1xiarpw{--_reveal-delay:0s,var(--duration-fast)}.xct0gwe{--_reveal-opacity:0}.x5setjs{--_reveal-opacity:1}.xp0pj8v{--_reveal-position:absolute}.x1r6s5ct{--_reveal-position:static}.x1f17rg1{--_section-padding-propagated:initial}.x2ccaqq{--_section-padding-propagated:var(--spacing-0-5)}.x7mo41q{--_section-padding-propagated:var(--spacing-0)}.xxa843v{--_section-padding-propagated:var(--spacing-1-5)}.x1j3iakl{--_section-padding-propagated:var(--spacing-1)}.x4h2jfd{--_section-padding-propagated:var(--spacing-10)}.xezgk69{--_section-padding-propagated:var(--spacing-2)}.x1wtz8uf{--_section-padding-propagated:var(--spacing-3)}.x5wdj8h{--_section-padding-propagated:var(--spacing-4)}.xgjndll{--_section-padding-propagated:var(--spacing-5)}.x15i4jqh{--_section-padding-propagated:var(--spacing-6)}.xmb9lpv{--_section-padding-propagated:var(--spacing-8)}.x18jk3ff{--_segmented-control-padding:var(--spacing-0-5)}.x9icjy1{--_segmented-control-radius:var(--radius-element)}.x69vvuq{--_spinner-box-size:calc(var(--_spinner-ring-diameter) + var(--_spinner-ring-stroke) * 2)}.x2lq4xu{--_spinner-ring-diameter:var(--spinner-diameter)}.x10qssua{--_spinner-ring-stroke:var(--spinner-stroke-width)}.xficto1{--_tab-indicator-bottom:calc(-1 * (var(--spacing-1) + var(--border-width)))}.xbrl7fg{--_tab-indicator-bottom:var(--x---_tab-indicator-bottom)}.x78b515{--_tab-strip-bleed:0px}.x1kdpo6e{--_textarea-inline-padding:var(--spacing-2)}.x1ur4yav{--_thumbnail-hit-inset:0px}.x87gnkx{--_toast-slide-y:calc(-1 * var(--spacing-2))}.x1heqljd{--_toast-slide-y:var(--spacing-2)}.x16bblx1{--button-focus-offset:var(--focus-outline-offset)}.x1v15ycx{--button-icon-only-aspect:1 / 1}.x1mtvhk1{--color-syntax-background:transparent}.x18nyedi{--container-max-height:var(--x---container-max-height)}.xax9j7h{--container-padding-block-end:0px}.x1omyuck{--container-padding-block-end:var(--astryx-card-padding-block-end,var(--astryx-card-padding,var(--spacing-4)))}.x1gvthzm{--container-padding-block-end:var(--astryx-dialog-padding-block-end,var(--astryx-dialog-padding,var(--spacing-4)))}.xek4msv{--container-padding-block-end:var(--astryx-section-padding-block-end,var(--_section-padding-propagated,var(--astryx-section-padding,var(--spacing-4))))}.xi9ns85{--container-padding-block-end:var(--layout-padding-inner-y,var(--spacing-4))}.x1xjq73n{--container-padding-block-end:var(--layout-padding-outer-y,var(--spacing-4))}.x1cao3zv{--container-padding-block-end:var(--spacing-0-5)}.xkunwnr{--container-padding-block-end:var(--spacing-0)}.xv53x8y{--container-padding-block-end:var(--spacing-1-5)}.x57a7ii{--container-padding-block-end:var(--spacing-1)}.x15vxphk{--container-padding-block-end:var(--spacing-10)}.x4bg2x9{--container-padding-block-end:var(--spacing-11)}.x186mjxr{--container-padding-block-end:var(--spacing-12)}.x1lsgcmx{--container-padding-block-end:var(--spacing-2)}.x1q3ppug{--container-padding-block-end:var(--spacing-3)}.x4hfsld{--container-padding-block-end:var(--spacing-4)}.xbib2ws{--container-padding-block-end:var(--spacing-5)}.x1q8d17g{--container-padding-block-end:var(--spacing-6)}.x1yqogew{--container-padding-block-end:var(--spacing-7)}.x8lgq76{--container-padding-block-end:var(--spacing-8)}.x1f7f9rt{--container-padding-block-end:var(--spacing-9)}.x1047aw6{--container-padding-block-start:0px}.x1rqz8me{--container-padding-block-start:var(--astryx-card-padding-block-start,var(--astryx-card-padding,var(--spacing-4)))}.x1g2kccc{--container-padding-block-start:var(--astryx-dialog-padding-block-start,var(--astryx-dialog-padding,var(--spacing-4)))}.xnw7zt4{--container-padding-block-start:var(--astryx-section-padding-block-start,var(--_section-padding-propagated,var(--astryx-section-padding,var(--spacing-4))))}.xjmgx01{--container-padding-block-start:var(--layout-padding-inner-y,var(--spacing-4))}.xzz8v79{--container-padding-block-start:var(--layout-padding-outer-y,var(--spacing-4))}.xvdf9ev{--container-padding-block-start:var(--spacing-0-5)}.x1i3qcxz{--container-padding-block-start:var(--spacing-0)}.x1kbx601{--container-padding-block-start:var(--spacing-1-5)}.xnsckjb{--container-padding-block-start:var(--spacing-1)}.x17h9kl7{--container-padding-block-start:var(--spacing-10)}.x1rdjxae{--container-padding-block-start:var(--spacing-11)}.xecwdl6{--container-padding-block-start:var(--spacing-12)}.xa8b4fq{--container-padding-block-start:var(--spacing-2)}.x11k4f5r{--container-padding-block-start:var(--spacing-3)}.xm01sq8{--container-padding-block-start:var(--spacing-4)}.xp8wdkl{--container-padding-block-start:var(--spacing-5)}.x1hmud4d{--container-padding-block-start:var(--spacing-6)}.x1c00sag{--container-padding-block-start:var(--spacing-7)}.xfv60at{--container-padding-block-start:var(--spacing-8)}.x14fzdu7{--container-padding-block-start:var(--spacing-9)}.xjsfl84{--container-padding-inline-end:0px}.x1ihxwbr{--container-padding-inline-end:var(--astryx-card-padding-inline-end,var(--astryx-card-padding-inline,var(--astryx-card-padding,var(--spacing-4))))}.x11h1f2o{--container-padding-inline-end:var(--astryx-dialog-padding-inline-end,var(--astryx-dialog-padding-inline,var(--astryx-dialog-padding,var(--spacing-4))))}.xu1wldr{--container-padding-inline-end:var(--astryx-section-padding-inline-end,var(--astryx-section-padding-inline,var(--_section-padding-propagated,var(--astryx-section-padding,var(--spacing-4)))))}.xikqloz{--container-padding-inline-end:var(--layout-padding-inner-x,var(--spacing-4))}.xqpvj4r{--container-padding-inline-end:var(--layout-padding-outer-x,var(--spacing-4))}.x1wz3t3y{--container-padding-inline-end:var(--spacing-0-5)}.x91ghl5{--container-padding-inline-end:var(--spacing-0)}.xntetml{--container-padding-inline-end:var(--spacing-1-5)}.x2oyxnl{--container-padding-inline-end:var(--spacing-1)}.xx5lg5w{--container-padding-inline-end:var(--spacing-10)}.x1nmgbqg{--container-padding-inline-end:var(--spacing-11)}.x1wsfsk2{--container-padding-inline-end:var(--spacing-12)}.xcas3b9{--container-padding-inline-end:var(--spacing-2)}.xu0ipoa{--container-padding-inline-end:var(--spacing-3)}.xs0pscg{--container-padding-inline-end:var(--spacing-4)}.xgkj7vj{--container-padding-inline-end:var(--spacing-5)}.x94cj42{--container-padding-inline-end:var(--spacing-6)}.x11tj35w{--container-padding-inline-end:var(--spacing-7)}.x1b9k1pi{--container-padding-inline-end:var(--spacing-8)}.x19w02kr{--container-padding-inline-end:var(--spacing-9)}.xrhngw9{--container-padding-inline-start:0px}.xjmlhfd{--container-padding-inline-start:var(--astryx-card-padding-inline-start,var(--astryx-card-padding-inline,var(--astryx-card-padding,var(--spacing-4))))}.x1tewnwq{--container-padding-inline-start:var(--astryx-dialog-padding-inline-start,var(--astryx-dialog-padding-inline,var(--astryx-dialog-padding,var(--spacing-4))))}.x19lemt0{--container-padding-inline-start:var(--astryx-section-padding-inline-start,var(--astryx-section-padding-inline,var(--_section-padding-propagated,var(--astryx-section-padding,var(--spacing-4)))))}.x408pgh{--container-padding-inline-start:var(--layout-padding-inner-x,var(--spacing-4))}.xdvaxxn{--container-padding-inline-start:var(--layout-padding-outer-x,var(--spacing-4))}.x14ws0sr{--container-padding-inline-start:var(--spacing-0-5)}.x1gu2k80{--container-padding-inline-start:var(--spacing-0)}.x176g23i{--container-padding-inline-start:var(--spacing-1-5)}.x1cvlban{--container-padding-inline-start:var(--spacing-1)}.xserb3f{--container-padding-inline-start:var(--spacing-10)}.xziclwo{--container-padding-inline-start:var(--spacing-11)}.x1iiwihq{--container-padding-inline-start:var(--spacing-12)}.x1xlrr2o{--container-padding-inline-start:var(--spacing-2)}.xfdwxua{--container-padding-inline-start:var(--spacing-3)}.x1dlhslv{--container-padding-inline-start:var(--spacing-4)}.x1s81nki{--container-padding-inline-start:var(--spacing-5)}.x1ep0dkj{--container-padding-inline-start:var(--spacing-6)}.x157xojc{--container-padding-inline-start:var(--spacing-7)}.xw1diwv{--container-padding-inline-start:var(--spacing-8)}.xraca2a{--container-padding-inline-start:var(--spacing-9)}.x1qfzo5y{--indicator-color:transparent}.x4906uf{--layout-content-width:var(--x---layout-content-width)}.x1qfll2g{--layout-padding-inner-x:initial}.x4poyjn{--layout-padding-inner-x:var(--astryx-card-padding-inline-start,var(--astryx-card-padding-inline,var(--astryx-card-padding,var(--spacing-4))))}.x2so38{--layout-padding-inner-x:var(--astryx-dialog-padding-inline-start,var(--astryx-dialog-padding-inline,var(--astryx-dialog-padding,var(--spacing-4))))}.x1v3gmnx{--layout-padding-inner-x:var(--astryx-section-padding-inline-start,var(--astryx-section-padding-inline,var(--_section-padding-propagated,var(--astryx-section-padding,var(--spacing-4)))))}.xlriy2h{--layout-padding-inner-x:var(--spacing-0-5)}.xj1bl4l{--layout-padding-inner-x:var(--spacing-0)}.xd38f90{--layout-padding-inner-x:var(--spacing-1-5)}.x6uuyak{--layout-padding-inner-x:var(--spacing-1)}.x1vf4qco{--layout-padding-inner-x:var(--spacing-10)}.xsmamsf{--layout-padding-inner-x:var(--spacing-11)}.x2xk2xj{--layout-padding-inner-x:var(--spacing-12)}.xxqksqd{--layout-padding-inner-x:var(--spacing-2)}.x1fyui2f{--layout-padding-inner-x:var(--spacing-3)}.x1i2ajwi{--layout-padding-inner-x:var(--spacing-4)}.x1tac27u{--layout-padding-inner-x:var(--spacing-5)}.x1ntgf3t{--layout-padding-inner-x:var(--spacing-6)}.xhjd9tl{--layout-padding-inner-x:var(--spacing-7)}.xn7c84u{--layout-padding-inner-x:var(--spacing-8)}.xeqkbsz{--layout-padding-inner-x:var(--spacing-9)}.xyvxpqs{--layout-padding-inner-y:initial}.x1u1kw4e{--layout-padding-inner-y:var(--astryx-card-padding-block-start,var(--astryx-card-padding,var(--spacing-4)))}.xinu7xd{--layout-padding-inner-y:var(--astryx-dialog-padding-block-start,var(--astryx-dialog-padding,var(--spacing-4)))}.x15yx5hm{--layout-padding-inner-y:var(--astryx-section-padding-block-start,var(--_section-padding-propagated,var(--astryx-section-padding,var(--spacing-4))))}.x180h0y5{--layout-padding-inner-y:var(--spacing-0-5)}.xwuefyo{--layout-padding-inner-y:var(--spacing-0)}.x1g8jpzm{--layout-padding-inner-y:var(--spacing-1-5)}.xmpug6m{--layout-padding-inner-y:var(--spacing-1)}.x18gbwmk{--layout-padding-inner-y:var(--spacing-10)}.x14zymzj{--layout-padding-inner-y:var(--spacing-11)}.xzfpkx9{--layout-padding-inner-y:var(--spacing-12)}.x1lksgje{--layout-padding-inner-y:var(--spacing-2)}.x4j7gld{--layout-padding-inner-y:var(--spacing-3)}.x1s3ehtl{--layout-padding-inner-y:var(--spacing-4)}.x1rj5eim{--layout-padding-inner-y:var(--spacing-5)}.x1ftgg6u{--layout-padding-inner-y:var(--spacing-6)}.x1ho74vh{--layout-padding-inner-y:var(--spacing-7)}.xm2cs6f{--layout-padding-inner-y:var(--spacing-8)}.x1vsq92b{--layout-padding-inner-y:var(--spacing-9)}.x1wbjvqu{--layout-padding-outer-x:0px}.xdt8ak2{--layout-padding-outer-x:initial}.x14rzhog{--layout-padding-outer-x:var(--astryx-card-padding-inline-start,var(--astryx-card-padding-inline,var(--astryx-card-padding,var(--spacing-4))))}.x1hsjncj{--layout-padding-outer-x:var(--astryx-dialog-padding-inline-start,var(--astryx-dialog-padding-inline,var(--astryx-dialog-padding,var(--spacing-4))))}.x15i0zw9{--layout-padding-outer-x:var(--astryx-section-padding-inline-start,var(--astryx-section-padding-inline,var(--_section-padding-propagated,var(--astryx-section-padding,var(--spacing-4)))))}.xihiwg7{--layout-padding-outer-x:var(--spacing-0-5)}.xswhm3q{--layout-padding-outer-x:var(--spacing-0)}.x1u93lgd{--layout-padding-outer-x:var(--spacing-1-5)}.xc96xmq{--layout-padding-outer-x:var(--spacing-1)}.x1jdf5a4{--layout-padding-outer-x:var(--spacing-10)}.x1hct0t0{--layout-padding-outer-x:var(--spacing-11)}.x11cyqoe{--layout-padding-outer-x:var(--spacing-12)}.x15dxnc0{--layout-padding-outer-x:var(--spacing-2)}.xadgj3j{--layout-padding-outer-x:var(--spacing-3)}.x1v56qcf{--layout-padding-outer-x:var(--spacing-4)}.x1nzs0gl{--layout-padding-outer-x:var(--spacing-5)}.x1c3n52a{--layout-padding-outer-x:var(--spacing-6)}.x1gfiokx{--layout-padding-outer-x:var(--spacing-7)}.x1t3kfz{--layout-padding-outer-x:var(--spacing-8)}.xzr4qsh{--layout-padding-outer-x:var(--spacing-9)}.xzxxx64{--layout-padding-outer-y:0px}.x1rs4lu4{--layout-padding-outer-y:initial}.xjej9fs{--layout-padding-outer-y:var(--astryx-card-padding-block-start,var(--astryx-card-padding,var(--spacing-4)))}.x1pui4bz{--layout-padding-outer-y:var(--astryx-dialog-padding-block-start,var(--astryx-dialog-padding,var(--spacing-4)))}.x1vw4zgg{--layout-padding-outer-y:var(--astryx-section-padding-block-start,var(--_section-padding-propagated,var(--astryx-section-padding,var(--spacing-4))))}.x1vj96e0{--layout-padding-outer-y:var(--spacing-0-5)}.x1mzf5mb{--layout-padding-outer-y:var(--spacing-0)}.xd3dqby{--layout-padding-outer-y:var(--spacing-1-5)}.x1gpfxoh{--layout-padding-outer-y:var(--spacing-1)}.x26l4wa{--layout-padding-outer-y:var(--spacing-10)}.x10zktp0{--layout-padding-outer-y:var(--spacing-11)}.x1yz3n6a{--layout-padding-outer-y:var(--spacing-12)}.x10pz7y9{--layout-padding-outer-y:var(--spacing-2)}.x1p6yq3h{--layout-padding-outer-y:var(--spacing-3)}.xx738ci{--layout-padding-outer-y:var(--spacing-4)}.x6yxws5{--layout-padding-outer-y:var(--spacing-5)}.x180vrwl{--layout-padding-outer-y:var(--spacing-6)}.x1q6rme1{--layout-padding-outer-y:var(--spacing-7)}.xid7e43{--layout-padding-outer-y:var(--spacing-8)}.x1t5kicu{--layout-padding-outer-y:var(--spacing-9)}.xnpej1e{--radius-element:var(--radius-full)}.x11rj6l1{--selectable-card-ring-color:var(--color-accent)}.xkce8z9{--separator-display:flex}.x1uzk0gl{--spinner-color:currentColor}.xt1b8mc{--spinner-color:var(--color-accent)}.x13u6jys{--spinner-color:var(--color-on-dark)}.x1jevo6s{--spinner-color:var(--color-text-secondary)}.x11wm0hx{--spinner-diameter:10px}.x15pu9g6{--spinner-diameter:14px}.x1w424tr{--spinner-diameter:18px}.x1orj1z9{--spinner-diameter:28px}.xls98ul{--spinner-stroke-width:2px}.xr0wkrm{--spinner-stroke-width:3px}.x7y2bof{--spinner-stroke-width:4px}.xbfzqbu{--spinner-track-color:currentColor}.x1ufpcf6{--spinner-track-color:var(--color-on-dark)}.xspt9s2{--spinner-track-color:var(--color-track)}.xpa4xmd{--tree-list-indent:var(--spacing-4)}.x1xbi2jf{--tree-list-row-gap:var(--spacing-0-5)}.x1wfyzv7:focus-within{--_fade-delay:0s}.xqchwus:focus-visible{--_focus-outline-offset:var(--focus-outline-offset)}.xqih627:focus-visible{--_focus-outline:var(--focus-outline-width) var(--focus-outline-style) var(--focus-outline-color)}.x1z42dm:focus-within{--_reveal-delay-reduced:0s,0s}.x1mjsb9v:focus-within{--_reveal-delay:0s,0s}.xi33vf3:focus-within{--_reveal-opacity:1}.xoa21yc:focus-within{--_reveal-position:static}.x11woleg:focus-visible,.x1my2cv6.x1my2cv6:hover:where(:not(:disabled,[aria-disabled=true])){--indicator-color:var(--color-accent)}.x158n88w:has(:focus-visible){--_tab-strip-bleed:calc(var(--focus-outline-width) + var(--focus-outline-offset))}.x1ibt0lz:first-child{--separator-display:none}.x1rht92:nth-child(2n){--table-row-overlay:var(--color-background-muted)}@media (any-pointer:coarse){.x1hl81f0.x1hl81f0{--_fade-delay:0s}}@media (pointer:coarse){.xp8r40j.xp8r40j{--_input-clear-hit-content:""}.x181bpwf.x181bpwf{--_input-clear-hit-inset:-2px}}@media (any-pointer:coarse){.xm1aeao.xm1aeao{--_reveal-delay-reduced:0s,0s}.x1pn63d7.x1pn63d7{--_reveal-delay:0s,0s}.xi7d7de.xi7d7de{--_reveal-opacity:1}.xarvkxi.xarvkxi{--_reveal-position:static}}@media (pointer:coarse){.x1h9khjt.x1h9khjt{--_thumbnail-hit-inset:-2px}}@media (hover:hover){.x1316hva.x1316hva.x1316hva:hover:where(:not(:disabled,[aria-disabled=true])){--_conceal-opacity:0}.xuzfaso.xuzfaso.xuzfaso:hover:where(:not(:disabled,[aria-disabled=true])){--_conceal-opacity:1}.xq03417.xq03417.xq03417:hover:where(:not(:disabled,[aria-disabled=true])){--_fade-delay:0s}.x14nxqze.x14nxqze.x14nxqze:hover:where(:not(:disabled,[aria-disabled=true])){--_fade-delay:var(--_hover-delay,0s)}.xap96qf.xap96qf.xap96qf:hover:where(:not(:disabled,[aria-disabled=true])){--_reveal-delay-reduced:0s,0s}.xvd8mm8.xvd8mm8.xvd8mm8:hover:where(:not(:disabled,[aria-disabled=true])){--_reveal-delay-reduced:var(--_hover-delay,0s),var(--_hover-delay,0s)}.x1t6fdr0.x1t6fdr0.x1t6fdr0:hover:where(:not(:disabled,[aria-disabled=true])){--_reveal-delay:0s,0s}.x1tx49wl.x1tx49wl.x1tx49wl:hover:where(:not(:disabled,[aria-disabled=true])){--_reveal-delay:0s,var(--duration-fast)}.xi1ebb6.xi1ebb6.xi1ebb6:hover:where(:not(:disabled,[aria-disabled=true])){--_reveal-delay:var(--_hover-delay,0s),var(--_hover-delay,0s)}.xfqgg65.xfqgg65.xfqgg65:hover:where(:not(:disabled,[aria-disabled=true])){--_reveal-opacity:0}.x2xrgwu.x2xrgwu.x2xrgwu:hover:where(:not(:disabled,[aria-disabled=true])){--_reveal-opacity:1}.x17ock8y.x17ock8y.x17ock8y:hover:where(:not(:disabled,[aria-disabled=true])){--_reveal-position:absolute}.x1or4zte.x1or4zte.x1or4zte:hover:where(:not(:disabled,[aria-disabled=true])){--_reveal-position:static}.xc01ov8.xc01ov8.xc01ov8:hover:where(:not(:disabled,[aria-disabled=true])){--table-row-overlay:var(--color-overlay-hover)}}.xln7xf2:not(#\#){font:inherit}.x15r89dc:not(#\#){grid-area:1/1}.x10a8y8t:not(#\#){inset:0}.x1anvkwx:not(#\#){inset:auto}.xh3736h:not(#\#){inset:unset}.xkdpibf:not(#\#){margin:-1px}.x1ghz6dp:not(#\#){margin:0}.xkib98w:not(#\#){margin:8px}.x1bpp3o7:not(#\#){margin:auto}.x1n5sqmh:not(#\#){margin:calc(-1 * (var(--spacing-2) - var(--spacing-1) + 1px))}.x1717udv:not(#\#){padding:0}.x1tamke2:not(#\#){padding:16px}.x1i3ajwb:not(#\#){padding:2px}.xfawy5m:not(#\#){padding:4px}.x1b50gpf:not(#\#){padding:calc(var(--_chat-composer-padding) - var(--border-width))}.x18oj4ui:not(#\#){padding:var(--_chat-composer-padding)}.xpoxszi:not(#\#){padding:var(--_segmented-control-padding)}.xtozwh:not(#\#){padding:var(--spacing-1) var(--spacing-2)}.x9epnlk:not(#\#){padding:var(--spacing-1)}.x15nmkw0:not(#\#){padding:var(--spacing-2) 0}.xlsj2fj:not(#\#){padding:var(--spacing-2)}.x1b2ylru:not(#\#){padding:var(--spacing-3)}.x1shk3sm:not(#\#){padding:var(--spacing-4)}.x1y5lnwp:focus:not(#\#){margin:0}.xg8s4dl:not(#\#):not(#\#){animation-range:cover}.x9r1u3d:not(#\#):not(#\#){border-color:#0000}.xad5do:not(#\#):not(#\#){border-color:var(--color-accent)}.x1touxvs:not(#\#):not(#\#){border-color:var(--color-background-surface)}.xlee4gx:not(#\#):not(#\#){border-color:var(--color-border-blue)}.xb1xfl:not(#\#):not(#\#){border-color:var(--color-border-cyan)}.xvy26l8:not(#\#):not(#\#){border-color:var(--color-border-emphasized)}.x1w9ec3u:not(#\#):not(#\#){border-color:var(--color-border-gray)}.xy90a9n:not(#\#):not(#\#){border-color:var(--color-border-green)}.xloqurj:not(#\#):not(#\#){border-color:var(--color-border-orange)}.x1czkbn8:not(#\#):not(#\#){border-color:var(--color-border-pink)}.xq98wne:not(#\#):not(#\#){border-color:var(--color-border-purple)}.xjqgoec:not(#\#):not(#\#){border-color:var(--color-border-red)}.x1r9gxr1:not(#\#):not(#\#){border-color:var(--color-border-teal)}.x1kpnwn1:not(#\#):not(#\#){border-color:var(--color-border-yellow)}.x14i3s5s:not(#\#):not(#\#){border-color:var(--color-border)}.x1ofxpqo:not(#\#):not(#\#){border-color:var(--color-error)}.x16m2moy:not(#\#):not(#\#){border-color:var(--color-success)}.xqcx1ss:not(#\#):not(#\#){border-color:var(--color-text-primary)}.x8wg1ba:not(#\#):not(#\#){border-color:var(--color-warning)}.x2u8bby:not(#\#):not(#\#){border-radius:0}.x1nj7uno:not(#\#):not(#\#){border-radius:1px}.x16rqkct:not(#\#):not(#\#){border-radius:50%}.xur7f20:not(#\#):not(#\#){border-radius:8px}.x1pjcqnp:not(#\#):not(#\#){border-radius:inherit}.x1ws5lxm:not(#\#):not(#\#){border-radius:max(0px,calc(var(--_dropdown-menu-radius,var(--spacing-2)) - var(--_dropdown-menu-padding,var(--spacing-1))))}.xc910v0:not(#\#):not(#\#){border-radius:max(0px,calc(var(--_segmented-control-radius) - var(--_segmented-control-padding)))}.xbc78cj:not(#\#):not(#\#){border-radius:var(--_avatar-radius)}.x1vf2byn:not(#\#):not(#\#){border-radius:var(--_banner-radius,var(--radius-container))}.x1jxw6zd:not(#\#):not(#\#){border-radius:var(--_button-radius,var(--radius-element))}.xy0xnkn:not(#\#):not(#\#){border-radius:var(--_button-radius,var(--radius-full))}.x153u1i6:not(#\#):not(#\#){border-radius:var(--_card-radius)}.x1xunbrq:not(#\#):not(#\#){border-radius:var(--_chat-composer-radius)}.xuacgfc:not(#\#):not(#\#){border-radius:var(--_dialog-radius)}.x1n97fys:not(#\#):not(#\#){border-radius:var(--_dropdown-menu-radius)}.xvdfih8:not(#\#):not(#\#){border-radius:var(--_field-radius)}.x7a53xk:not(#\#):not(#\#){border-radius:var(--_hovercard-radius)}.x11m9jtl:not(#\#):not(#\#){border-radius:var(--_popover-radius)}.x1hapoqb:not(#\#):not(#\#){border-radius:var(--_segmented-control-radius)}.xashgol:not(#\#):not(#\#){border-radius:var(--radius-chat)}.x1hviunn:not(#\#):not(#\#){border-radius:var(--radius-container)}.xh6dtrn:not(#\#):not(#\#){border-radius:var(--radius-element)}.xjspbzw:not(#\#):not(#\#){border-radius:var(--radius-full)}.xx3sua9:not(#\#):not(#\#){border-radius:var(--radius-inner)}.xwksslw:not(#\#):not(#\#){border-radius:var(--radius-none)}.xbsl7fq:not(#\#):not(#\#){border-style:dashed}.xng3xce:not(#\#):not(#\#){border-style:none}.x1y0btm7:not(#\#):not(#\#){border-style:solid}.xc342km:not(#\#):not(#\#){border-width:0}.xmkeg23:not(#\#):not(#\#){border-width:1px}.xdh2fpr:not(#\#):not(#\#){border-width:2px}.x1litavf:not(#\#):not(#\#){border-width:var(--border-width)}.x1mw0n95:not(#\#):not(#\#){border-width:var(--x-borderWidth)}.x1somy94:not(#\#):not(#\#){flex:0 0 0}.x3psx0u:not(#\#):not(#\#){flex:none}.x1cqoux5:not(#\#):not(#\#){flex:1 1 0}.x845mor:not(#\#):not(#\#){flex:1}.xfoc8du:not(#\#):not(#\#){flex:40px}.x12lumcd:not(#\#):not(#\#){flex:auto}.x98rzlu:not(#\#):not(#\#){flex:1}.xxhr3t:not(#\#):not(#\#){gap:0}.x1jnr06f:not(#\#):not(#\#){gap:4px}.x167g77z:not(#\#):not(#\#){gap:8px}.x14kbac9:not(#\#):not(#\#){gap:inherit}.x1lsbc85:not(#\#):not(#\#){gap:var(--spacing-0-5)}.xsn7fz1:not(#\#):not(#\#){gap:var(--spacing-0)}.x1s4dlld:not(#\#):not(#\#){gap:var(--spacing-1-5)}.xzye2dw:not(#\#):not(#\#){gap:var(--spacing-1)}.x3hoi3v:not(#\#):not(#\#){gap:var(--spacing-10)}.xpec5dj:not(#\#):not(#\#){gap:var(--spacing-2) var(--spacing-4)}.x1txdalj:not(#\#):not(#\#){gap:var(--spacing-2)}.xlaq8a2:not(#\#):not(#\#){gap:var(--spacing-3) var(--spacing-4)}.xjcht0a:not(#\#):not(#\#){gap:var(--spacing-3)}.x18g69wz:not(#\#):not(#\#){gap:var(--spacing-4)}.x9mgr7n:not(#\#):not(#\#){gap:var(--spacing-5)}.x1qh66ti:not(#\#):not(#\#){gap:var(--spacing-6)}.x4t41sb:not(#\#):not(#\#){gap:var(--spacing-8)}.x1pidvrl:not(#\#):not(#\#){gap:var(--x-gap)}.xgkxs2y:not(#\#):not(#\#){grid-column:1}.x1ms6mhf:not(#\#):not(#\#){grid-row:1}.x10no89f:not(#\#):not(#\#){inset-block:0}.x17y0mx6:not(#\#):not(#\#){inset-inline:0}.xe8uvvx:not(#\#):not(#\#){list-style:none}.x81ka23:not(#\#):not(#\#){margin-block:calc(-1 * (var(--spacing-3) - var(--spacing-2)))}.xhzvc8f:not(#\#):not(#\#){margin-block:calc(-1 * var(--spacing-2))}.xqixskq:not(#\#):not(#\#){margin-block:calc(var(--size-element-md) / 2 - var(--spacing-2) - var(--text-heading-2-size) * var(--text-heading-2-leading) / 2)}.xsq74q5:not(#\#):not(#\#){margin-block:var(--spacing-1)}.x1g06x3t:not(#\#):not(#\#){margin-block:var(--spacing-2)}.x1oqu0vw:not(#\#):not(#\#){margin-block:var(--x-marginBlock)}.xvueqy4:not(#\#):not(#\#){margin-inline:auto}.xi5l473:not(#\#):not(#\#){margin-inline:calc(-1 * (var(--_tab-strip-bleed)))}.xtedp8i:not(#\#):not(#\#){margin-inline:calc(-1 * var(--spacing-1))}.x1ho7dyk:not(#\#):not(#\#){margin-inline:calc(-1 * var(--spacing-2))}.x1ng9b9t:not(#\#):not(#\#){margin-inline:calc(-1 * var(--spacing-4))}.xhrcg97:not(#\#):not(#\#){margin-inline:var(--spacing-1)}.xvlecxo:not(#\#):not(#\#){margin-inline:var(--x-marginInline)}.x1a2a7pz:not(#\#):not(#\#){outline:none}.xaw4jrz:not(#\#):not(#\#){outline:var(--_focus-outline,none)}.xysyzu8:not(#\#):not(#\#){overflow:auto}.x7giv3:not(#\#):not(#\#){overflow:clip}.xb3r6kr:not(#\#):not(#\#){overflow:hidden}.x1rea2x4:not(#\#):not(#\#){overflow:visible}.xish69e:not(#\#):not(#\#){overscroll-behavior:contain}.x8du1vd:not(#\#):not(#\#){overscroll-behavior:none}.xt970qd:not(#\#):not(#\#){padding-block:0}.x1vn5h1t:not(#\#):not(#\#){padding-block:calc((var(--size-element-lg) - var(--spacing-5) - 2 * var(--border-width)) / 2)}.x1ioay2v:not(#\#):not(#\#){padding-block:calc((var(--size-element-md) - var(--spacing-5) - 2 * var(--border-width)) / 2)}.x1ecmfrv:not(#\#):not(#\#){padding-block:calc((var(--size-element-sm) - var(--spacing-5) - 2 * var(--border-width)) / 2)}.x1x7cmac:not(#\#):not(#\#){padding-block:calc(var(--spacing-1) - 1px)}.xwo4yc8:not(#\#):not(#\#){padding-block:calc(var(--tree-list-row-gap,0px) / 2)}.x13f7esw:not(#\#):not(#\#){padding-block:var(--spacing-0-5)}.x1hp7d8q:not(#\#):not(#\#){padding-block:var(--spacing-0)}.x1vofgu7:not(#\#):not(#\#){padding-block:var(--spacing-1-5)}.xu0wf1k:not(#\#):not(#\#){padding-block:var(--spacing-1)}.xce4md1:not(#\#):not(#\#){padding-block:var(--spacing-2)}.x8o8v82:not(#\#):not(#\#){padding-block:var(--spacing-3)}.x1na6nto:not(#\#):not(#\#){padding-block:var(--spacing-4)}.xq6koh6:not(#\#):not(#\#){padding-block:var(--spacing-6)}.xmfvnks:not(#\#):not(#\#){padding-block:var(--spacing-8)}.x1giekp1:not(#\#):not(#\#){padding-block:var(--x-paddingBlock)}.x1uameg1:not(#\#):not(#\#){padding-block:118px}.xnjsko4:not(#\#):not(#\#){padding-inline:0}.xx2oswg:not(#\#):not(#\#){padding-inline:calc(var(--spacing-1) - 1px)}.x2hg6jq:not(#\#):not(#\#){padding-inline:calc(var(--spacing-1) + var(--border-width))}.x1kpkw9v:not(#\#):not(#\#){padding-inline:var(--_tab-strip-bleed)}.x1w6f3ag:not(#\#):not(#\#){padding-inline:var(--_textarea-inline-padding)}.xkjnx3w:not(#\#):not(#\#){padding-inline:var(--spacing-0-5)}.x17a0aqu:not(#\#):not(#\#){padding-inline:var(--spacing-0)}.x4ezzuc:not(#\#):not(#\#){padding-inline:var(--spacing-1-5)}.x7a5moj:not(#\#):not(#\#){padding-inline:var(--spacing-1)}.xixulwi:not(#\#):not(#\#){padding-inline:var(--spacing-10)}.xf314gf:not(#\#):not(#\#){padding-inline:var(--spacing-2)}.xrrkdod:not(#\#):not(#\#){padding-inline:var(--spacing-3)}.x1pzlopt:not(#\#):not(#\#){padding-inline:var(--spacing-4)}.xzz68wx:not(#\#):not(#\#){padding-inline:var(--spacing-5)}.xm7rs69:not(#\#):not(#\#){padding-inline:var(--spacing-6)}.x6xnjw4:not(#\#):not(#\#){padding-inline:var(--spacing-8)}.x30g6up:not(#\#):not(#\#){padding-inline:var(--x-paddingInline)}.x1ku5rj1:not(#\#):not(#\#){place-items:center}.x1xif8ns:not(#\#):not(#\#){scroll-padding-inline:calc(var(--_tab-strip-bleed) + var(--spacing-8))}.xdf8p4l:not(#\#):not(#\#){scroll-padding-inline:var(--spacing-0-5)}.x9lgdif:not(#\#):not(#\#){scroll-padding-inline:var(--spacing-0)}.x1w8vatw:not(#\#):not(#\#){scroll-padding-inline:var(--spacing-1-5)}.x1u2972t:not(#\#):not(#\#){scroll-padding-inline:var(--spacing-1)}.xw959t8:not(#\#):not(#\#){scroll-padding-inline:var(--spacing-10)}.x1mfb6cv:not(#\#):not(#\#){scroll-padding-inline:var(--spacing-2)}.xpnzzb2:not(#\#):not(#\#){scroll-padding-inline:var(--spacing-3)}.x3m3szd:not(#\#):not(#\#){scroll-padding-inline:var(--spacing-4)}.x1vx7sv0:not(#\#):not(#\#){scroll-padding-inline:var(--spacing-5)}.x1mvw9yj:not(#\#):not(#\#){scroll-padding-inline:var(--spacing-6)}.x1xn2tv3:not(#\#):not(#\#){scroll-padding-inline:var(--spacing-8)}.xhfbhpw:not(#\#):not(#\#){scroll-snap-type:x mandatory}.x168l2et:not(#\#):not(#\#){scroll-snap-type:y mandatory}.xmqliwb:not(#\#):not(#\#){text-decoration:line-through}.x1hl2dhg:not(#\#):not(#\#){text-decoration:none}.x1bvjpef:not(#\#):not(#\#){text-decoration:underline}.xrg7dcy:not(#\#):not(#\#){transition:box-shadow var(--duration-fast) var(--ease-standard),border-color var(--duration-fast) var(--ease-standard)}.xb0j27v:not(#\#):not(#\#){transition:grid-template-rows var(--duration-medium) var(--ease-standard)}.xq2gx43:not(#\#):not(#\#){transition:none}.x1ey1afo:not(#\#):not(#\#){transition:opacity var(--duration-fast)}.x1ob6yzd:not(#\#):not(#\#){transition:transform var(--duration-fast) var(--ease-standard)}.x6q1khz:focus-within:not(#\#):not(#\#){border-color:var(--color-accent)}.xk2sxw7:focus-within:not(#\#):not(#\#){border-color:var(--color-error)}.xyq33ac:focus-within:not(#\#):not(#\#){border-color:var(--color-success)}.xa1yw2k:focus-within:not(#\#):not(#\#){border-color:var(--color-warning)}.xafswnp.xafswnp:where(.x1iwu4tg:has(:focus-visible) *):not(#\#):not(#\#){outline:var(--focus-outline-width) var(--focus-outline-style) var(--focus-outline-color)}.x1dordxg:focus-within:not(#\#):not(#\#){overflow:visible}.x16s19ga:has(:focus-visible):not(#\#):not(#\#){outline:var(--focus-outline-width) var(--focus-outline-style) var(--focus-outline-color)}.x64lkcz:focus:not(#\#):not(#\#){border-color:var(--color-error)}.x1lglk5v:focus:not(#\#):not(#\#){border-color:var(--color-success)}.x12sck4v:focus:not(#\#):not(#\#){border-color:var(--color-warning)}.x1uvtmcs:focus:not(#\#):not(#\#){outline:none}.xomzh7y:focus:not(#\#):not(#\#){overflow:visible}.xh2mrf5:focus:not(#\#):not(#\#){padding-block:var(--spacing-2)}.x1cf3d6k:focus:not(#\#):not(#\#){padding-inline:var(--spacing-4)}@media (forced-colors:active){.x1w1tqly.x1w1tqly:not(#\#):not(#\#){border-color:canvastext}.xmnqt3w.xmnqt3w:not(#\#):not(#\#){border-color:graytext}.xx61lck.xx61lck:not(#\#):not(#\#){border-style:solid}.x13rsnn2.x13rsnn2:not(#\#):not(#\#){border-width:1px}}@media (width<=480px){.x1a1jff.x1a1jff:not(#\#):not(#\#){gap:var(--spacing-4)}}@media (prefers-reduced-motion:reduce){.x9kvfbb.x9kvfbb:not(#\#):not(#\#){transition:none}}@media (hover:hover){.x1ozl1p1.x1ozl1p1.x1ozl1p1:where(.x1odsvnm:hover *):not(#\#):not(#\#){border-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.x1ozl1p1.x1ozl1p1.x1ozl1p1:where(.x1odsvnm:hover *):not(#\#):not(#\#){border-color:color-mix(in srgb,var(--color-accent),var(--color-tint-hover) 15%)}}.xilc7fp.xilc7fp.xilc7fp:where(.x1odsvnm:hover *):not(#\#):not(#\#){border-color:var(--color-border-emphasized)}@supports (color:color-mix(in lab, red, red)){.xilc7fp.xilc7fp.xilc7fp:where(.x1odsvnm:hover *):not(#\#):not(#\#){border-color:color-mix(in srgb,var(--color-border-emphasized),var(--color-tint-hover) 20%)}}.x61roa7.x61roa7.x61roa7:where(.x1odsvnm:hover *):not(#\#):not(#\#){border-color:var(--color-border)}.x1xwh4np.x1xwh4np.x1xwh4np:hover:where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#){border-color:var(--color-border-emphasized)}.x13nosk6.x13nosk6.x13nosk6:hover:where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#){text-decoration:underline}}.x1lugfcp:not(#\#):not(#\#):not(#\#){-webkit-appearance:none}.x67t5t6:not(#\#):not(#\#):not(#\#){-webkit-backdrop-filter:blur(12px)}.x1ua5tub:not(#\#):not(#\#):not(#\#){-webkit-box-orient:vertical}.x1yhjpo9:not(#\#):not(#\#):not(#\#){-webkit-line-clamp:var(--x-WebkitLineClamp)}.xiy8rlo:not(#\#):not(#\#):not(#\#){-webkit-mask-image:linear-gradient(#0000,#000 24px)}.x1bv1mxo:not(#\#):not(#\#):not(#\#){-webkit-mask-image:linear-gradient(#0000,#000 36px)}.xo9xo30:not(#\#):not(#\#):not(#\#){-webkit-mask-image:linear-gradient(#0000,#000 48px)}.xt2iwb0:not(#\#):not(#\#):not(#\#){-webkit-mask-image:linear-gradient(#0000,#0000)}.x5lxg6s:not(#\#):not(#\#):not(#\#){-webkit-overflow-scrolling:touch}.x1i10hfl:not(#\#):not(#\#):not(#\#){-webkit-tap-highlight-color:transparent}.xg7jpbn:not(#\#):not(#\#):not(#\#){-webkit-text-fill-color:transparent}.xpdipgo:not(#\#):not(#\#):not(#\#){-webkit-touch-callout:none}.x8gbvx8:not(#\#):not(#\#):not(#\#){align-content:flex-start}.x1pha0wt:not(#\#):not(#\#):not(#\#){align-items:baseline}.x6s0dn4:not(#\#):not(#\#):not(#\#){align-items:center}.xpqajaz:not(#\#):not(#\#):not(#\#){align-items:end}.xuk3077:not(#\#):not(#\#):not(#\#){align-items:flex-end}.x1cy8zhl:not(#\#):not(#\#):not(#\#){align-items:flex-start}.x7a106z:not(#\#):not(#\#):not(#\#){align-items:start}.x1qjc9v5:not(#\#):not(#\#):not(#\#){align-items:stretch}.xoi2r2e:not(#\#):not(#\#):not(#\#){align-self:baseline}.xamitd3:not(#\#):not(#\#):not(#\#){align-self:center}.xpvyfi4:not(#\#):not(#\#):not(#\#){align-self:flex-end}.xqcrz7y:not(#\#):not(#\#):not(#\#){align-self:flex-start}.x1y8v6su:not(#\#):not(#\#):not(#\#){align-self:start}.xkh2ocl:not(#\#):not(#\#):not(#\#){align-self:stretch}.x7dpabl:not(#\#):not(#\#):not(#\#){anchor-name:--outline-active}.x17yabm6:not(#\#):not(#\#):not(#\#){animation-delay:var(--duration-medium-min)}.xvo38ju:not(#\#):not(#\#):not(#\#){animation-delay:var(--x-animationDelay)}.xpz12be:not(#\#):not(#\#):not(#\#){animation-direction:alternate}.xmg6eyc:not(#\#):not(#\#):not(#\#){animation-duration:1.5s}.xjlvqhv:not(#\#):not(#\#):not(#\#){animation-duration:1ms}.x1c74tu6:not(#\#):not(#\#):not(#\#){animation-duration:2s}.xwms9i0:not(#\#):not(#\#):not(#\#){animation-duration:auto}.x9uej1z:not(#\#):not(#\#):not(#\#){animation-duration:var(--duration-fast-max)}.xb2rp9n:not(#\#):not(#\#):not(#\#){animation-duration:var(--duration-fast)}.xqgcaz:not(#\#):not(#\#):not(#\#){animation-duration:var(--duration-medium-max)}.x12wqnr7:not(#\#):not(#\#):not(#\#){animation-duration:var(--duration-medium)}.x14qxm4i:not(#\#):not(#\#):not(#\#){animation-duration:var(--duration-slow-min)}.xskzprw:not(#\#):not(#\#):not(#\#){animation-fill-mode:backwards}.x1u6ievf:not(#\#):not(#\#):not(#\#){animation-fill-mode:both}.x10e4vud:not(#\#):not(#\#):not(#\#){animation-fill-mode:forwards}.xa4qsjk:not(#\#):not(#\#):not(#\#){animation-iteration-count:infinite}.x1ewfqum:not(#\#):not(#\#):not(#\#){animation-name:x11lauxq-B}.xcx56e2:not(#\#):not(#\#):not(#\#){animation-name:x13kz0yu-B}.x1ffowhz:not(#\#):not(#\#):not(#\#){animation-name:x188b6p3-B}.xqcmdr3:not(#\#):not(#\#):not(#\#){animation-name:x18re5ia-B}.x3psbcj:not(#\#):not(#\#):not(#\#){animation-name:x1ahk7ht-B}.x1dvww92:not(#\#):not(#\#):not(#\#){animation-name:x1b6yrix-B}.x97zbip:not(#\#):not(#\#):not(#\#){animation-name:x1k48ry3-B}.x1gbn2au:not(#\#):not(#\#):not(#\#){animation-name:x1xhkexc-B}.xeuoslp:not(#\#):not(#\#):not(#\#){animation-name:xgnty7z-B}.x1srr2gu:not(#\#):not(#\#):not(#\#){animation-name:xiylxmw-B}.x1ka1v4i:not(#\#):not(#\#):not(#\#){animation-name:xqng64z-B}.xozk8ic:not(#\#):not(#\#):not(#\#){animation-name:xr3m334-B}.x1mta51n:not(#\#):not(#\#):not(#\#){animation-name:xtut5q7-B}.xck01x9:not(#\#):not(#\#):not(#\#){animation-name:xu7jd1z-B}.xl1vlw0:not(#\#):not(#\#):not(#\#){animation-name:xv1hr86-B}.x1i331go:not(#\#):not(#\#):not(#\#){animation-name:xwmkjkf-B}.x190lv1:not(#\#):not(#\#):not(#\#){animation-timeline:view(y)}.x4hg4is:not(#\#):not(#\#):not(#\#){animation-timing-function:ease-in-out}.x1esw782:not(#\#):not(#\#):not(#\#){animation-timing-function:linear}.x193epu2:not(#\#):not(#\#):not(#\#){animation-timing-function:steps(10,end)}.x128ha8g:not(#\#):not(#\#):not(#\#){animation-timing-function:var(--ease-standard)}.xjyslct:not(#\#):not(#\#):not(#\#){appearance:none}.x1plog1:not(#\#):not(#\#):not(#\#){aspect-ratio:1}.xioom0i:not(#\#):not(#\#):not(#\#){aspect-ratio:var(--button-icon-only-aspect)}.x10y9f9r:not(#\#):not(#\#):not(#\#){aspect-ratio:var(--x-aspectRatio)}.xvn2z4z:not(#\#):not(#\#):not(#\#){-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.xlp1x4z:not(#\#):not(#\#):not(#\#){backface-visibility:hidden}.xx83zyx:not(#\#):not(#\#):not(#\#){background-clip:padding-box}.x1rkw3yq:not(#\#):not(#\#):not(#\#){background-color:#fff9}.xtwfq29:not(#\#):not(#\#):not(#\#){background-color:currentColor}.xgcd1z6:not(#\#):not(#\#):not(#\#){background-color:inherit}.xcpsgoo:not(#\#):not(#\#):not(#\#){background-color:#00000080}.xjbqb8w:not(#\#):not(#\#):not(#\#){background-color:#0000}.xgcxg3y:not(#\#):not(#\#):not(#\#){background-color:var(--color-accent-muted)}.x1ewilqj:not(#\#):not(#\#):not(#\#){background-color:var(--color-accent)}.x1o0wnni:not(#\#):not(#\#):not(#\#){background-color:var(--color-background-blue)}.x1eiddq6:not(#\#):not(#\#):not(#\#){background-color:var(--color-background-body)}.x1de1mus:not(#\#):not(#\#):not(#\#){background-color:var(--color-background-card)}.x1rgj867:not(#\#):not(#\#):not(#\#){background-color:var(--color-background-cyan)}.x1l5t2a3:not(#\#):not(#\#):not(#\#){background-color:var(--color-background-error-inverted)}.xspzpui:not(#\#):not(#\#):not(#\#){background-color:var(--color-background-gray)}.x1sqjeoo:not(#\#):not(#\#):not(#\#){background-color:var(--color-background-green)}.xenstv7:not(#\#):not(#\#):not(#\#){background-color:var(--color-background-inverted)}.xwmxj5m:not(#\#):not(#\#):not(#\#){background-color:var(--color-background-muted)}.x1e9xt6e:not(#\#):not(#\#):not(#\#){background-color:var(--color-background-orange)}.xnpoty2:not(#\#):not(#\#):not(#\#){background-color:var(--color-background-pink)}.x1prclbq:not(#\#):not(#\#):not(#\#){background-color:var(--color-background-popover)}.x16i6n6f:not(#\#):not(#\#):not(#\#){background-color:var(--color-background-purple)}.x1cibrc5:not(#\#):not(#\#):not(#\#){background-color:var(--color-background-red)}.x10xzikg:not(#\#):not(#\#):not(#\#){background-color:var(--color-background-surface)}.x1jtji5o:not(#\#):not(#\#):not(#\#){background-color:var(--color-background-teal)}.x1bo7t0x:not(#\#):not(#\#):not(#\#){background-color:var(--color-background-yellow)}.x7njt3n:not(#\#):not(#\#):not(#\#){background-color:var(--color-border-emphasized)}.x1m4xfpy:not(#\#):not(#\#):not(#\#){background-color:var(--color-border)}.x1pritpl:not(#\#):not(#\#):not(#\#){background-color:var(--color-error-muted)}.x1pjz0fi:not(#\#):not(#\#):not(#\#){background-color:var(--color-error)}.xowkcby:not(#\#):not(#\#):not(#\#){background-color:var(--color-icon-primary)}.x1q5y3ey:not(#\#):not(#\#):not(#\#){background-color:var(--color-icon-secondary)}.x17x4s8c:not(#\#):not(#\#):not(#\#){background-color:var(--color-neutral)}.x1azo05:not(#\#):not(#\#):not(#\#){background-color:var(--color-on-accent)}.xfba6wv:not(#\#):not(#\#):not(#\#){background-color:var(--color-on-error)}.x9mohwv:not(#\#):not(#\#):not(#\#){background-color:var(--color-on-success)}.xmgwp2l:not(#\#):not(#\#):not(#\#){background-color:var(--color-on-warning)}.x1lmrjuc:not(#\#):not(#\#):not(#\#){background-color:var(--color-overlay-hover)}.xi89dp7:not(#\#):not(#\#):not(#\#){background-color:var(--color-overlay-pressed)}.x1u4601x:not(#\#):not(#\#):not(#\#){background-color:var(--color-overlay)}.xprdx6m:not(#\#):not(#\#):not(#\#){background-color:var(--color-skeleton)}.xu13z74:not(#\#):not(#\#):not(#\#){background-color:var(--color-success-muted)}.xdsz4j9:not(#\#):not(#\#):not(#\#){background-color:var(--color-success)}.xzyc27v:not(#\#):not(#\#):not(#\#){background-color:var(--color-syntax-background)}.x16fr6go:not(#\#):not(#\#):not(#\#){background-color:var(--color-text-disabled)}.x19aspcf:not(#\#):not(#\#):not(#\#){background-color:var(--color-text-primary)}.xdomwnj:not(#\#):not(#\#):not(#\#){background-color:var(--color-text-secondary)}.xdsb6cv:not(#\#):not(#\#):not(#\#){background-color:var(--color-track)}.x24i8r5:not(#\#):not(#\#):not(#\#){background-color:var(--color-warning-muted)}.x1q8g9m5:not(#\#):not(#\#):not(#\#){background-color:var(--color-warning)}.x1fd97le:not(#\#):not(#\#):not(#\#){background-color:var(--table-sticky-background,var(--color-background-card))}.xl8spv7:not(#\#):not(#\#):not(#\#){background-color:var(--x-backgroundColor)}.xafqdz2:not(#\#):not(#\#):not(#\#){background-image:linear-gradient(to bottom,var(--color-background-surface) 60%,transparent)}.x1vrk509:not(#\#):not(#\#):not(#\#){background-image:linear-gradient(var(--color-background-muted),var(--color-background-muted))}.x14bno8m:not(#\#):not(#\#):not(#\#){background-image:linear-gradient(var(--color-neutral),var(--color-neutral))}.x18o3ruo:not(#\#):not(#\#):not(#\#){background-image:none}.x1mwwwfo:not(#\#):not(#\#):not(#\#){border-collapse:collapse}.x16uus16:not(#\#):not(#\#):not(#\#){border-end-end-radius:0}.x1eprgri:not(#\#):not(#\#):not(#\#){border-end-end-radius:var(--_banner-radius,var(--radius-container))}.x6k0y1c:not(#\#):not(#\#):not(#\#){border-end-end-radius:var(--_chat-composer-radius)}.xoao14b:not(#\#):not(#\#):not(#\#){border-end-end-radius:var(--_field-radius)}.x14i3lts:not(#\#):not(#\#):not(#\#){border-end-end-radius:var(--radius-element)}.x1dgc8on:not(#\#):not(#\#):not(#\#){border-end-end-radius:var(--radius-full)}.x1whkvtz:not(#\#):not(#\#):not(#\#){border-end-end-radius:var(--radius-inner)}.xbiv7yw:not(#\#):not(#\#):not(#\#){border-end-start-radius:0}.x1k5g1gk:not(#\#):not(#\#):not(#\#){border-end-start-radius:var(--_banner-radius,var(--radius-container))}.xkvxy4d:not(#\#):not(#\#):not(#\#){border-end-start-radius:var(--_chat-composer-radius)}.xquck67:not(#\#):not(#\#):not(#\#){border-end-start-radius:var(--radius-element)}.x1wc3881:not(#\#):not(#\#):not(#\#){border-end-start-radius:var(--radius-full)}.xrfs2vl:not(#\#):not(#\#):not(#\#){border-end-start-radius:var(--radius-inner)}.xl0t3rv:not(#\#):not(#\#):not(#\#){border-inline-end-color:var(--color-border-emphasized)}.x1gejf6u:not(#\#):not(#\#):not(#\#){border-inline-end-color:var(--color-border)}.x18b5jzi:not(#\#):not(#\#):not(#\#){border-inline-end-style:solid}.x1lun4ml:not(#\#):not(#\#):not(#\#){border-inline-end-width:1px}.xw8tdv1:not(#\#):not(#\#):not(#\#){border-inline-end-width:var(--border-width)}.x14ydlgx:not(#\#):not(#\#):not(#\#){border-inline-start-color:var(--color-border-emphasized)}.x1j92z86:not(#\#):not(#\#):not(#\#){border-inline-start-color:var(--color-border)}.xrvmtm5:not(#\#):not(#\#):not(#\#){border-inline-start-color:var(--color-on-accent)}.x1t7ytsu:not(#\#):not(#\#):not(#\#){border-inline-start-style:solid}.xpilrb4:not(#\#):not(#\#):not(#\#){border-inline-start-width:1px}.xgbv0en:not(#\#):not(#\#):not(#\#){border-inline-start-width:var(--border-width)}.xtpqe59:not(#\#):not(#\#):not(#\#){border-inline-start-width:var(--spacing-0-5)}.x1gukg7c:not(#\#):not(#\#):not(#\#){border-spacing:0}.x1ga7v0g:not(#\#):not(#\#):not(#\#){border-start-end-radius:0}.x13nour3:not(#\#):not(#\#):not(#\#){border-start-end-radius:var(--_banner-radius,var(--radius-container))}.xzc3kxz:not(#\#):not(#\#):not(#\#){border-start-end-radius:var(--_chat-composer-radius)}.x1g2gkjz:not(#\#):not(#\#):not(#\#){border-start-end-radius:var(--_field-radius)}.xg0tfu:not(#\#):not(#\#):not(#\#){border-start-end-radius:var(--radius-chat)}.x7hs6f1:not(#\#):not(#\#):not(#\#){border-start-end-radius:var(--radius-container)}.x8agd5o:not(#\#):not(#\#):not(#\#){border-start-end-radius:var(--radius-full)}.x126per9:not(#\#):not(#\#):not(#\#){border-start-end-radius:var(--radius-inner)}.x15mokao:not(#\#):not(#\#):not(#\#){border-start-start-radius:0}.xwxb7qi:not(#\#):not(#\#):not(#\#){border-start-start-radius:var(--_banner-radius,var(--radius-container))}.xy7p8pm:not(#\#):not(#\#):not(#\#){border-start-start-radius:var(--_chat-composer-radius)}.x1n70msy:not(#\#):not(#\#):not(#\#){border-start-start-radius:var(--radius-chat)}.x81l70g:not(#\#):not(#\#):not(#\#){border-start-start-radius:var(--radius-container)}.x19415el:not(#\#):not(#\#):not(#\#){border-start-start-radius:var(--radius-full)}.x3qb8m:not(#\#):not(#\#):not(#\#){border-start-start-radius:var(--radius-inner)}.x183tx6i:not(#\#):not(#\#):not(#\#){border-start-start-radius:var(--radius-page)}.x1lp15jv:not(#\#):not(#\#):not(#\#){box-shadow:inset 0 0 0 1px var(--color-border-emphasized)}.x1er153n:not(#\#):not(#\#):not(#\#){box-shadow:inset 0 0 0 1px var(--color-border)}.x1iobdd1:not(#\#):not(#\#):not(#\#){box-shadow:inset 0 0 0 1px var(--color-text-primary)}.x1gnnqk1:not(#\#):not(#\#):not(#\#){box-shadow:none}.x1p8z4y0:not(#\#):not(#\#):not(#\#){box-shadow:var(--_card-ring,0 0 transparent),var(--_card-elevation,0 0 transparent)}.x1kcpxr7:not(#\#):not(#\#):not(#\#){box-shadow:var(--shadow-high)}.x1i5ehqx:not(#\#):not(#\#):not(#\#){box-shadow:var(--shadow-low)}.x14hfi27:not(#\#):not(#\#):not(#\#){box-shadow:var(--shadow-med)}.x9f619:not(#\#):not(#\#):not(#\#){box-sizing:border-box}.x1afcbsf:not(#\#):not(#\#):not(#\#){box-sizing:content-box}.xbuiw85:not(#\#):not(#\#):not(#\#){caret-color:#0000}.xxugrtn:not(#\#):not(#\#):not(#\#){caret-color:var(--color-accent)}.x1hyvwdk:not(#\#):not(#\#):not(#\#){clip-path:inset(50%)}.xzpqnlu:not(#\#):not(#\#):not(#\#){clip:rect(0,0,0,0)}.xntwwlm:not(#\#):not(#\#):not(#\#){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.x108lcm5:not(#\#):not(#\#):not(#\#){--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){.x108lcm5:not(#\#):not(#\#):not(#\#){--lightningcss-light: ;--lightningcss-dark:initial}}.x19aimcq:not(#\#):not(#\#):not(#\#){--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}.xj8ax7g:not(#\#):not(#\#):not(#\#){color:red}.x1heor9g:not(#\#):not(#\#):not(#\#){color:inherit}.x19co3pv:not(#\#):not(#\#):not(#\#){color:#0000}.x1gb3s7i:not(#\#):not(#\#):not(#\#){color:var(--_item-description-color,var(--color-text-secondary))}.x5tbw38:not(#\#):not(#\#):not(#\#){color:var(--_item-label-color,var(--color-text-primary))}.xqwr325:not(#\#):not(#\#):not(#\#){color:var(--color-accent)}.xrkvqaz:not(#\#):not(#\#):not(#\#){color:var(--color-background-surface)}.xjt36v0:not(#\#):not(#\#):not(#\#){color:var(--color-error)}.x1fns2mt:not(#\#):not(#\#):not(#\#){color:var(--color-icon-blue)}.x157w0xa:not(#\#):not(#\#):not(#\#){color:var(--color-icon-cyan)}.xqa6c3m:not(#\#):not(#\#):not(#\#){color:var(--color-icon-disabled)}.x1eyinzz:not(#\#):not(#\#):not(#\#){color:var(--color-icon-gray)}.xmxeech:not(#\#):not(#\#):not(#\#){color:var(--color-icon-green)}.xxu74a4:not(#\#):not(#\#):not(#\#){color:var(--color-icon-orange)}.x1kxxfg5:not(#\#):not(#\#):not(#\#){color:var(--color-icon-pink)}.xtbr613:not(#\#):not(#\#):not(#\#){color:var(--color-icon-primary)}.xzdw94u:not(#\#):not(#\#):not(#\#){color:var(--color-icon-purple)}.xeffzf7:not(#\#):not(#\#):not(#\#){color:var(--color-icon-red)}.xv9yike:not(#\#):not(#\#):not(#\#){color:var(--color-icon-secondary)}.x1f3zxcb:not(#\#):not(#\#):not(#\#){color:var(--color-icon-teal)}.x1g6zdft:not(#\#):not(#\#):not(#\#){color:var(--color-icon-yellow)}.x17wrial:not(#\#):not(#\#):not(#\#){color:var(--color-on-accent)}.x9e3rv5:not(#\#):not(#\#):not(#\#){color:var(--color-on-dark)}.x1m024r3:not(#\#):not(#\#):not(#\#){color:var(--color-on-error)}.xri61p4:not(#\#):not(#\#):not(#\#){color:var(--color-on-success)}.xrebv38:not(#\#):not(#\#):not(#\#){color:var(--color-on-warning)}.xtjic6:not(#\#):not(#\#):not(#\#){color:var(--color-success)}.x1mjzq1q:not(#\#):not(#\#):not(#\#){color:var(--color-syntax-comment)}.xdfisg:not(#\#):not(#\#):not(#\#){color:var(--color-syntax-variable)}.xjse4m1:not(#\#):not(#\#):not(#\#){color:var(--color-text-accent)}.x1vvqiwl:not(#\#):not(#\#):not(#\#){color:var(--color-text-blue)}.x1txnczv:not(#\#):not(#\#):not(#\#){color:var(--color-text-cyan)}.xnbbluu:not(#\#):not(#\#):not(#\#){color:var(--color-text-disabled)}.xru1t7f:not(#\#):not(#\#):not(#\#){color:var(--color-text-gray)}.xltfdvo:not(#\#):not(#\#):not(#\#){color:var(--color-text-green)}.xm47u9q:not(#\#):not(#\#):not(#\#){color:var(--color-text-orange)}.xiuofww:not(#\#):not(#\#):not(#\#){color:var(--color-text-pink)}.x1tgivj0:not(#\#):not(#\#):not(#\#){color:var(--color-text-primary)}.x1m9wyeb:not(#\#):not(#\#):not(#\#){color:var(--color-text-purple)}.x1joocv1:not(#\#):not(#\#):not(#\#){color:var(--color-text-red)}.xv1l7n4:not(#\#):not(#\#):not(#\#){color:var(--color-text-secondary)}.x9x0lbs:not(#\#):not(#\#):not(#\#){color:var(--color-text-teal)}.xdhq94a:not(#\#):not(#\#):not(#\#){color:var(--color-text-yellow)}.xs3pv69:not(#\#):not(#\#):not(#\#){color:var(--color-warning)}.xf5zn4v:not(#\#):not(#\#):not(#\#){column-gap:calc(var(--spacing-3) + var(--border-width) + var(--spacing-4))}.x1kihgfc:not(#\#):not(#\#):not(#\#){column-gap:var(--spacing-0-5)}.x1o57wo1:not(#\#):not(#\#):not(#\#){column-gap:var(--spacing-0)}.x1thn6ci:not(#\#):not(#\#):not(#\#){column-gap:var(--spacing-1-5)}.x1lfs0n9:not(#\#):not(#\#):not(#\#){column-gap:var(--spacing-1)}.x1p37tyl:not(#\#):not(#\#):not(#\#){column-gap:var(--spacing-10)}.xak3so:not(#\#):not(#\#):not(#\#){column-gap:var(--spacing-2)}.xewh9hi:not(#\#):not(#\#):not(#\#){column-gap:var(--spacing-3)}.xty4p9g:not(#\#):not(#\#):not(#\#){column-gap:var(--spacing-4)}.x1eqhezk:not(#\#):not(#\#):not(#\#){column-gap:var(--spacing-5)}.x3qlgwd:not(#\#):not(#\#):not(#\#){column-gap:var(--spacing-6)}.xicv188:not(#\#):not(#\#):not(#\#){column-gap:var(--spacing-8)}.xawy1a7:not(#\#):not(#\#):not(#\#){contain:layout style}.x12h1iku:not(#\#):not(#\#):not(#\#){container-type:inline-size}.xb5mbof:not(#\#):not(#\#):not(#\#){content-visibility:auto}.xfrknyr:not(#\#):not(#\#):not(#\#){counter-increment:astryx-list}.xif0320:not(#\#):not(#\#):not(#\#){counter-reset:astryx-list}.x1khind5:not(#\#):not(#\#):not(#\#){counter-reset:var(--x-counterReset)}.xicojor:not(#\#):not(#\#):not(#\#){cursor:col-resize}.xt0e3qv:not(#\#):not(#\#):not(#\#){cursor:default}.x7eptgl:not(#\#):not(#\#):not(#\#){cursor:ew-resize}.x1jm3nie:not(#\#):not(#\#):not(#\#){cursor:grab}.xi9pz9s:not(#\#):not(#\#):not(#\#){cursor:grabbing}.xmper1u:not(#\#):not(#\#):not(#\#){cursor:inherit}.x1ypdohk:not(#\#):not(#\#):not(#\#){cursor:pointer}.xyozgr7:not(#\#):not(#\#):not(#\#){cursor:row-resize}.x1ed109x:not(#\#):not(#\#):not(#\#){cursor:text}.x1huxd7x:not(#\#):not(#\#):not(#\#){cursor:zoom-in}.x104kibb:not(#\#):not(#\#):not(#\#){display:-webkit-box}.x1lliihq:not(#\#):not(#\#):not(#\#){display:block}.xjp7ctv:not(#\#):not(#\#):not(#\#){display:contents}.x78zum5:not(#\#):not(#\#):not(#\#){display:flex}.xrvj5dj:not(#\#):not(#\#):not(#\#){display:grid}.x1rg5ohu:not(#\#):not(#\#):not(#\#){display:inline-block}.x3nfvp2:not(#\#):not(#\#):not(#\#){display:inline-flex}.xwz0xwf:not(#\#):not(#\#):not(#\#){display:inline-grid}.xt0psk2:not(#\#):not(#\#):not(#\#){display:inline}.x1s85apg:not(#\#):not(#\#):not(#\#){display:none}.x11ke7fs:not(#\#):not(#\#):not(#\#){display:var(--separator-display)}.xbh8q5q:not(#\#):not(#\#):not(#\#){fill:none}.x1r8uery:not(#\#):not(#\#):not(#\#){flex-basis:0}.xrjwirl:not(#\#):not(#\#):not(#\#){flex-basis:196px}.xjpgo6f:not(#\#):not(#\#):not(#\#){flex-basis:200px}.xchdapg:not(#\#):not(#\#):not(#\#){flex-basis:300px}.xgualba:not(#\#):not(#\#):not(#\#){flex-basis:8rem}.xdl72j9:not(#\#):not(#\#):not(#\#){flex-basis:auto}.x3ieub6:not(#\#):not(#\#):not(#\#){flex-direction:column-reverse}.xdt5ytf:not(#\#):not(#\#):not(#\#){flex-direction:column}.x15zctf7:not(#\#):not(#\#):not(#\#){flex-direction:row-reverse}.x1q0g3np:not(#\#):not(#\#):not(#\#){flex-direction:row}.x1c4vz4f:not(#\#):not(#\#):not(#\#){flex-grow:0}.x1iyjqo2:not(#\#):not(#\#):not(#\#){flex-grow:1}.xgyuaek:not(#\#):not(#\#):not(#\#){flex-grow:2}.x2lah0s:not(#\#):not(#\#):not(#\#){flex-shrink:0}.xs83m0k:not(#\#):not(#\#):not(#\#){flex-shrink:1}.x1g3ib7:not(#\#):not(#\#):not(#\#){flex-shrink:10}.xozqiw3:not(#\#):not(#\#):not(#\#){flex-wrap:nowrap}.x8hhl5t:not(#\#):not(#\#):not(#\#){flex-wrap:wrap-reverse}.x1a02dak:not(#\#):not(#\#):not(#\#){flex-wrap:wrap}.xjb2p0i:not(#\#):not(#\#):not(#\#){font-family:inherit}.x9ynric:not(#\#):not(#\#):not(#\#){font-family:var(--font-family-body)}.x9m5x89:not(#\#):not(#\#):not(#\#){font-family:var(--font-family-code)}.x1g81bgm:not(#\#):not(#\#):not(#\#){font-family:var(--font-family-heading)}.xboafo0:not(#\#):not(#\#):not(#\#){font-size:.75rem}.x1603h9y:not(#\#):not(#\#):not(#\#){font-size:1.25rem}.xngnso2:not(#\#):not(#\#):not(#\#){font-size:1.5rem}.x1k6wstc:not(#\#):not(#\#):not(#\#){font-size:10px}.xfifm61:not(#\#):not(#\#):not(#\#){font-size:12px}.xif65rj:not(#\#):not(#\#):not(#\#){font-size:14px}.x1j61zf2:not(#\#):not(#\#):not(#\#){font-size:16px}.x1jchvi3:not(#\#):not(#\#):not(#\#){font-size:1rem}.xwsyq91:not(#\#):not(#\#):not(#\#){font-size:20px}.x1qlqyl8:not(#\#):not(#\#):not(#\#){font-size:inherit}.xhs0kqb:not(#\#):not(#\#):not(#\#){font-size:var(--font-size-2xl)}.x16a80zy:not(#\#):not(#\#):not(#\#){font-size:var(--font-size-2xs)}.x10srzze:not(#\#):not(#\#):not(#\#){font-size:var(--font-size-3xl)}.x10p7juq:not(#\#):not(#\#):not(#\#){font-size:var(--font-size-3xs)}.xqcvi3d:not(#\#):not(#\#):not(#\#){font-size:var(--font-size-4xl)}.xxc45ev:not(#\#):not(#\#):not(#\#){font-size:var(--font-size-4xs)}.x1j29vfg:not(#\#):not(#\#):not(#\#){font-size:var(--font-size-base)}.xc7cgfe:not(#\#):not(#\#):not(#\#){font-size:var(--font-size-lg)}.x1eqnyfr:not(#\#):not(#\#):not(#\#){font-size:var(--font-size-sm)}.x1wqms48:not(#\#):not(#\#):not(#\#){font-size:var(--font-size-xl)}.x51wmvv:not(#\#):not(#\#):not(#\#){font-size:var(--font-size-xs)}.xho7bvi:not(#\#):not(#\#):not(#\#){font-size:var(--spacing-4)}.xjm74w1:not(#\#):not(#\#):not(#\#){font-size:var(--text-body-size)}.xp03k98:not(#\#):not(#\#):not(#\#){font-size:var(--text-code-size)}.xsub3ws:not(#\#):not(#\#):not(#\#){font-size:var(--text-display-1-size)}.x1yego12:not(#\#):not(#\#):not(#\#){font-size:var(--text-display-2-size)}.xlgnzhf:not(#\#):not(#\#):not(#\#){font-size:var(--text-display-3-size)}.xcg7oai:not(#\#):not(#\#):not(#\#){font-size:var(--text-heading-1-size)}.x1xvnhcw:not(#\#):not(#\#):not(#\#){font-size:var(--text-heading-2-size)}.xii13ha:not(#\#):not(#\#):not(#\#){font-size:var(--text-heading-3-size)}.x8tkxat:not(#\#):not(#\#):not(#\#){font-size:var(--text-heading-4-size)}.xsgqta0:not(#\#):not(#\#):not(#\#){font-size:var(--text-heading-5-size)}.xw5ohdf:not(#\#):not(#\#):not(#\#){font-size:var(--text-heading-6-size)}.xcr08ib:not(#\#):not(#\#):not(#\#){font-size:var(--text-label-size)}.x18juvz8:not(#\#):not(#\#):not(#\#){font-size:var(--text-large-size)}.x141an7d:not(#\#):not(#\#):not(#\#){font-size:var(--text-supporting-size)}.xdmh292:not(#\#):not(#\#):not(#\#){font-size:var(--x-fontSize)}.x1j61x8r:not(#\#):not(#\#):not(#\#){font-style:normal}.xss6m8b:not(#\#):not(#\#):not(#\#){font-variant-numeric:tabular-nums}.xk50ysn:not(#\#):not(#\#):not(#\#){font-weight:500}.x1s688f:not(#\#):not(#\#):not(#\#){font-weight:600}.x1pd3egz:not(#\#):not(#\#):not(#\#){font-weight:inherit}.x1lvx875:not(#\#):not(#\#):not(#\#){font-weight:var(--font-weight-bold)}.x1e4wzip:not(#\#):not(#\#):not(#\#){font-weight:var(--font-weight-medium)}.x1sodnla:not(#\#):not(#\#):not(#\#){font-weight:var(--font-weight-normal)}.x2mo6ok:not(#\#):not(#\#):not(#\#){font-weight:var(--font-weight-semibold)}.xxovm9e:not(#\#):not(#\#):not(#\#){font-weight:var(--text-body-weight)}.xx3eeay:not(#\#):not(#\#):not(#\#){font-weight:var(--text-code-weight)}.x1txul5o:not(#\#):not(#\#):not(#\#){font-weight:var(--text-display-1-weight)}.x1y36c3f:not(#\#):not(#\#):not(#\#){font-weight:var(--text-display-2-weight)}.x1on40hk:not(#\#):not(#\#):not(#\#){font-weight:var(--text-display-3-weight)}.x1v68xuy:not(#\#):not(#\#):not(#\#){font-weight:var(--text-heading-1-weight)}.x12yy4cs:not(#\#):not(#\#):not(#\#){font-weight:var(--text-heading-2-weight)}.x1jcxfy8:not(#\#):not(#\#):not(#\#){font-weight:var(--text-heading-3-weight)}.x2hcmsi:not(#\#):not(#\#):not(#\#){font-weight:var(--text-heading-4-weight)}.xno150v:not(#\#):not(#\#):not(#\#){font-weight:var(--text-heading-5-weight)}.x1pw4frv:not(#\#):not(#\#):not(#\#){font-weight:var(--text-heading-6-weight)}.xmhvcl5:not(#\#):not(#\#):not(#\#){font-weight:var(--text-label-weight)}.x149oux8:not(#\#):not(#\#):not(#\#){font-weight:var(--text-large-weight)}.xv8on6e:not(#\#):not(#\#):not(#\#){font-weight:var(--text-supporting-weight)}.x1kzknox:not(#\#):not(#\#):not(#\#){forced-color-adjust:none}.xu6a5m6:not(#\#):not(#\#):not(#\#){grid-auto-columns:1fr}.x1mt1orb:not(#\#):not(#\#):not(#\#){grid-auto-flow:column}.xhij9v2:not(#\#):not(#\#):not(#\#){grid-auto-rows:var(--x-gridAutoRows)}.xcrlgei:not(#\#):not(#\#):not(#\#){grid-column-start:1}.x1agbcgv:not(#\#):not(#\#):not(#\#){grid-row-start:1}.x134kloy:not(#\#):not(#\#):not(#\#){grid-template-columns:1fr auto 1fr}.x52fmzj:not(#\#):not(#\#):not(#\#){grid-template-columns:1fr auto}.x1y6fwsi:not(#\#):not(#\#):not(#\#){grid-template-columns:1fr}.x1g3yg12:not(#\#):not(#\#):not(#\#){grid-template-columns:auto 1fr auto}.x1pmbctz:not(#\#):not(#\#):not(#\#){grid-template-columns:auto 1fr}.x1wthsqz:not(#\#):not(#\#):not(#\#){grid-template-columns:auto repeat(7,1fr)}.x1mzazjb:not(#\#):not(#\#):not(#\#){grid-template-columns:repeat(7,1fr)}.x189bvgu:not(#\#):not(#\#):not(#\#){grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.x1xx4m37:not(#\#):not(#\#):not(#\#){grid-template-columns:var(--_codeblock-gutter-width) 1fr}.xqketvx:not(#\#):not(#\#):not(#\#){grid-template-columns:var(--x-gridTemplateColumns)}.xihq33y:not(#\#):not(#\#):not(#\#){grid-template-rows:0fr}.x1tu4anv:not(#\#):not(#\#):not(#\#){grid-template-rows:1fr}.xy8nx85:not(#\#):not(#\#):not(#\#){grid-template-rows:repeat(6,1fr)}.xtijo5x:not(#\#):not(#\#):not(#\#){inset-inline-end:0}.xz03a8w:not(#\#):not(#\#):not(#\#){inset-inline-end:2px}.x1oinnt5:not(#\#):not(#\#):not(#\#){inset-inline-end:calc((var(--size-element-md) - 20px) / 2 - 1px)}.x8qlsd8:not(#\#):not(#\#):not(#\#){inset-inline-end:calc((var(--size-element-sm) - 20px) / 2 - 1px)}.x13oyzgk:not(#\#):not(#\#):not(#\#){inset-inline-end:var(--_textarea-inline-padding)}.xy3asu9:not(#\#):not(#\#):not(#\#){inset-inline-end:var(--spacing-1)}.x72tfeb:not(#\#):not(#\#):not(#\#){inset-inline-end:var(--spacing-2)}.x1mcfs9z:not(#\#):not(#\#):not(#\#){inset-inline-end:var(--spacing-3)}.xqxgn94:not(#\#):not(#\#):not(#\#){inset-inline-end:var(--x-insetInlineEnd)}.x1o0tod:not(#\#):not(#\#):not(#\#){inset-inline-start:0}.x9p6ekw:not(#\#):not(#\#):not(#\#){inset-inline-start:14px}.xaoy8p5:not(#\#):not(#\#):not(#\#){inset-inline-start:2px}.xbudbmw:not(#\#):not(#\#):not(#\#){inset-inline-start:50%}.x1kiyvbf:not(#\#):not(#\#):not(#\#){inset-inline-start:var(--_textarea-inline-padding)}.x1ybfrjj:not(#\#):not(#\#):not(#\#){inset-inline-start:var(--spacing-3)}.x1lxsm33:not(#\#):not(#\#):not(#\#){inset-inline-start:var(--x-insetInlineStart)}.xc8icb0:not(#\#):not(#\#):not(#\#){isolation:isolate}.xl56j7k:not(#\#):not(#\#):not(#\#){justify-content:center}.x13a6bvl:not(#\#):not(#\#):not(#\#){justify-content:flex-end}.x1nhvcw1:not(#\#):not(#\#):not(#\#){justify-content:flex-start}.x1l1ennw:not(#\#):not(#\#):not(#\#){justify-content:space-around}.x1qughib:not(#\#):not(#\#):not(#\#){justify-content:space-between}.xaw8158:not(#\#):not(#\#):not(#\#){justify-content:space-evenly}.x1o2pa38:not(#\#):not(#\#):not(#\#){justify-items:center}.x4xo5sw:not(#\#):not(#\#):not(#\#){justify-items:end}.x619ttb:not(#\#):not(#\#):not(#\#){justify-items:start}.xl4xnwh:not(#\#):not(#\#):not(#\#){justify-items:stretch}.x7v7x1q:not(#\#):not(#\#):not(#\#){justify-self:center}.x1lqcxt8:not(#\#):not(#\#):not(#\#){justify-self:start}.x14ju556:not(#\#):not(#\#):not(#\#){line-height:0}.xo5v014:not(#\#):not(#\#):not(#\#){line-height:1}.x19v9tvf:not(#\#):not(#\#):not(#\#){line-height:22px}.x15bjb6t:not(#\#):not(#\#):not(#\#){line-height:inherit}.x1ojctns:not(#\#):not(#\#):not(#\#){line-height:var(--spacing-4)}.x7acx1w:not(#\#):not(#\#):not(#\#){line-height:var(--spacing-5)}.xw6l6zx:not(#\#):not(#\#):not(#\#){line-height:var(--text-body-leading)}.x17iicif:not(#\#):not(#\#):not(#\#){line-height:var(--text-code-leading)}.x112ttwr:not(#\#):not(#\#):not(#\#){line-height:var(--text-display-1-leading)}.xh0iwvy:not(#\#):not(#\#):not(#\#){line-height:var(--text-display-2-leading)}.x1ujwuaq:not(#\#):not(#\#):not(#\#){line-height:var(--text-display-3-leading)}.xfmsba7:not(#\#):not(#\#):not(#\#){line-height:var(--text-heading-1-leading)}.x1cpk1wn:not(#\#):not(#\#):not(#\#){line-height:var(--text-heading-2-leading)}.xwjzt0u:not(#\#):not(#\#):not(#\#){line-height:var(--text-heading-3-leading)}.xqerer:not(#\#):not(#\#):not(#\#){line-height:var(--text-heading-4-leading)}.xo3gurs:not(#\#):not(#\#):not(#\#){line-height:var(--text-heading-5-leading)}.xeixjfn:not(#\#):not(#\#):not(#\#){line-height:var(--text-heading-6-leading)}.x1kq96og:not(#\#):not(#\#):not(#\#){line-height:var(--text-label-leading)}.xf74fhv:not(#\#):not(#\#):not(#\#){line-height:var(--text-large-leading)}.x1ltkj2j:not(#\#):not(#\#):not(#\#){line-height:var(--text-supporting-leading)}.x3ct3a4:not(#\#):not(#\#):not(#\#){list-style-type:none}.x14z9mp:not(#\#):not(#\#):not(#\#){margin-inline-end:0}.x1fcf3bl:not(#\#):not(#\#):not(#\#){margin-inline-end:calc(-1 * var(--container-padding-inline-end,0px))}.x1kpg4um:not(#\#):not(#\#):not(#\#){margin-inline-end:calc(-1 * var(--layout-padding-inner-x,var(--spacing-4)))}.xkd40ry:not(#\#):not(#\#):not(#\#){margin-inline-end:calc(-1 * var(--spacing-1))}.x3kzqx6:not(#\#):not(#\#):not(#\#){margin-inline-end:calc(-1 * var(--spacing-2))}.xmequkd:not(#\#):not(#\#):not(#\#){margin-inline-end:calc(var(--spacing-1) * -1)}.xnur1sd:not(#\#):not(#\#):not(#\#){margin-inline-end:var(--spacing-1)}.x1c9tiao:not(#\#):not(#\#):not(#\#){margin-inline-end:var(--x-marginInlineEnd)}.x1qfufaz:not(#\#):not(#\#):not(#\#){margin-inline-start:-8px}.x1lziwak:not(#\#):not(#\#):not(#\#){margin-inline-start:0}.xvc5jky:not(#\#):not(#\#):not(#\#){margin-inline-start:auto}.xd10s4z:not(#\#):not(#\#):not(#\#){margin-inline-start:calc(-1 * var(--border-width))}.xojxgvx:not(#\#):not(#\#):not(#\#){margin-inline-start:calc(-1 * var(--container-padding-inline-start,0px))}.x1wim8z0:not(#\#):not(#\#):not(#\#){margin-inline-start:calc(-1 * var(--layout-padding-inner-x,var(--spacing-4)))}.x1s1akpx:not(#\#):not(#\#):not(#\#){margin-inline-start:calc(-1 * var(--spacing-2))}.x1xrm450:not(#\#):not(#\#):not(#\#){margin-inline-start:calc(var(--spacing-2) - var(--spacing-1) + 1px)}.x12vn87o:not(#\#):not(#\#):not(#\#){margin-inline-start:var(--_tree-indent,0px)}.xladpz9:not(#\#):not(#\#):not(#\#){margin-inline-start:var(--spacing-0-5)}.x11g1kdw:not(#\#):not(#\#):not(#\#){margin-inline-start:var(--spacing-1)}.x1l10yog:not(#\#):not(#\#):not(#\#){margin-inline-start:var(--spacing-6)}.x4lel18:not(#\#):not(#\#):not(#\#){margin-inline-start:var(--x-marginInlineStart)}.xkm2don:not(#\#):not(#\#):not(#\#){-webkit-mask-image:linear-gradient(#0000,#000 24px);mask-image:linear-gradient(#0000,#000 24px)}.xw26lqc:not(#\#):not(#\#):not(#\#){-webkit-mask-image:linear-gradient(#0000,#000 36px);mask-image:linear-gradient(#0000,#000 36px)}.xr5yg4x:not(#\#):not(#\#):not(#\#){-webkit-mask-image:linear-gradient(#0000,#000 48px);mask-image:linear-gradient(#0000,#000 48px)}.xtdd0ob:not(#\#):not(#\#):not(#\#){-webkit-mask-image:linear-gradient(to left,transparent 0%,#0000004d 2px,black var(--spacing-1));-webkit-mask-image:linear-gradient(to left,transparent 0%,#0000004d 2px,black var(--spacing-1));-webkit-mask-image:linear-gradient(to left,transparent 0%,#0000004d 2px,black var(--spacing-1));mask-image:linear-gradient(to left,transparent 0%,#0000004d 2px,black var(--spacing-1))}.xoj6v2h:not(#\#):not(#\#):not(#\#){-webkit-mask-image:linear-gradient(to left,transparent var(--_tab-strip-bleed),black calc(var(--_tab-strip-bleed) + var(--spacing-8)));-webkit-mask-image:linear-gradient(to left,transparent var(--_tab-strip-bleed),black calc(var(--_tab-strip-bleed) + var(--spacing-8)));-webkit-mask-image:linear-gradient(to left,transparent var(--_tab-strip-bleed),black calc(var(--_tab-strip-bleed) + var(--spacing-8)));mask-image:linear-gradient(to left,transparent var(--_tab-strip-bleed),black calc(var(--_tab-strip-bleed) + var(--spacing-8)))}.x1b5cd1y:not(#\#):not(#\#):not(#\#){-webkit-mask-image:linear-gradient(to right,transparent 0%,#0000004d 2px,black var(--spacing-1),black calc(100% - var(--spacing-1)),#0000004d calc(100% - 2px),transparent 100%);-webkit-mask-image:linear-gradient(to right,transparent 0%,#0000004d 2px,black var(--spacing-1),black calc(100% - var(--spacing-1)),#0000004d calc(100% - 2px),transparent 100%);-webkit-mask-image:linear-gradient(to right,transparent 0%,#0000004d 2px,black var(--spacing-1),black calc(100% - var(--spacing-1)),#0000004d calc(100% - 2px),transparent 100%);mask-image:linear-gradient(to right,transparent 0%,#0000004d 2px,black var(--spacing-1),black calc(100% - var(--spacing-1)),#0000004d calc(100% - 2px),transparent 100%)}.x1ujl4f5:not(#\#):not(#\#):not(#\#){-webkit-mask-image:linear-gradient(to right,transparent 0%,#0000004d 2px,black var(--spacing-1));-webkit-mask-image:linear-gradient(to right,transparent 0%,#0000004d 2px,black var(--spacing-1));-webkit-mask-image:linear-gradient(to right,transparent 0%,#0000004d 2px,black var(--spacing-1));mask-image:linear-gradient(to right,transparent 0%,#0000004d 2px,black var(--spacing-1))}.xq05pg6:not(#\#):not(#\#):not(#\#){-webkit-mask-image:linear-gradient(to right,transparent var(--_tab-strip-bleed),black calc(var(--_tab-strip-bleed) + var(--spacing-8)),black calc(100% - calc(var(--_tab-strip-bleed) + var(--spacing-8))),transparent calc(100% - var(--_tab-strip-bleed)));-webkit-mask-image:linear-gradient(to right,transparent var(--_tab-strip-bleed),black calc(var(--_tab-strip-bleed) + var(--spacing-8)),black calc(100% - calc(var(--_tab-strip-bleed) + var(--spacing-8))),transparent calc(100% - var(--_tab-strip-bleed)));-webkit-mask-image:linear-gradient(to right,transparent var(--_tab-strip-bleed),black calc(var(--_tab-strip-bleed) + var(--spacing-8)),black calc(100% - calc(var(--_tab-strip-bleed) + var(--spacing-8))),transparent calc(100% - var(--_tab-strip-bleed)));mask-image:linear-gradient(to right,transparent var(--_tab-strip-bleed),black calc(var(--_tab-strip-bleed) + var(--spacing-8)),black calc(100% - calc(var(--_tab-strip-bleed) + var(--spacing-8))),transparent calc(100% - var(--_tab-strip-bleed)))}.x1hua2o0:not(#\#):not(#\#):not(#\#){-webkit-mask-image:linear-gradient(to right,transparent var(--_tab-strip-bleed),black calc(var(--_tab-strip-bleed) + var(--spacing-8)));-webkit-mask-image:linear-gradient(to right,transparent var(--_tab-strip-bleed),black calc(var(--_tab-strip-bleed) + var(--spacing-8)));-webkit-mask-image:linear-gradient(to right,transparent var(--_tab-strip-bleed),black calc(var(--_tab-strip-bleed) + var(--spacing-8)));mask-image:linear-gradient(to right,transparent var(--_tab-strip-bleed),black calc(var(--_tab-strip-bleed) + var(--spacing-8)))}.x1cb67k9:not(#\#):not(#\#):not(#\#){-webkit-mask-image:linear-gradient(#0000,#0000);mask-image:linear-gradient(#0000,#0000)}.xw4ya9i:not(#\#):not(#\#):not(#\#){-webkit-mask-image:none;mask-image:none}.x19kjcj4:not(#\#):not(#\#):not(#\#){object-fit:contain}.xl1xv1r:not(#\#):not(#\#):not(#\#){object-fit:cover}.x1xyvc85:not(#\#):not(#\#):not(#\#){opacity:.15}.xvpkmg4:not(#\#):not(#\#):not(#\#){opacity:.25}.xuzhngd:not(#\#):not(#\#):not(#\#){opacity:.3}.x3onkmb:not(#\#):not(#\#):not(#\#){opacity:.35}.xbyyjgo:not(#\#):not(#\#):not(#\#){opacity:.5}.x197sbye:not(#\#):not(#\#):not(#\#){opacity:.6}.xg01cxk:not(#\#):not(#\#):not(#\#){opacity:0}.x1hc1fzr:not(#\#):not(#\#):not(#\#){opacity:1}.x1wnsjo:not(#\#):not(#\#):not(#\#){opacity:var(--_conceal-opacity,1)}.xgsobzw:not(#\#):not(#\#):not(#\#){opacity:var(--_reveal-opacity,1)}.x1i7u4iq:not(#\#):not(#\#):not(#\#){opacity:var(--_toast-swipe-opacity,1)}.x1clqncf:not(#\#):not(#\#):not(#\#){order:-1}.x1g77sc7:not(#\#):not(#\#):not(#\#){order:0}.x1wfwxd8:not(#\#):not(#\#):not(#\#){outline-offset:0}.x1kvmbwa:not(#\#):not(#\#):not(#\#){outline-offset:var(--_focus-outline-offset,0)}.x1t137rt:not(#\#):not(#\#):not(#\#){outline-style:none}.x1k57tk5:not(#\#):not(#\#):not(#\#){outline-width:0}.x9y5y3v:not(#\#):not(#\#):not(#\#){overflow-clip-margin:1px}.xj0a0fe:not(#\#):not(#\#):not(#\#){overflow-wrap:anywhere}.x1mzt3pk:not(#\#):not(#\#):not(#\#){overflow-wrap:break-word}.x1h4wwuj:not(#\#):not(#\#):not(#\#){overflow-wrap:normal}.xyri2b:not(#\#):not(#\#):not(#\#){padding-inline-end:0}.x1g2apga:not(#\#):not(#\#):not(#\#){padding-inline-end:calc(var(--_textarea-inline-padding) + var(--spacing-12))}.xp2dy4z:not(#\#):not(#\#):not(#\#){padding-inline-end:calc(var(--_textarea-inline-padding) + var(--spacing-6))}.x12frdag:not(#\#):not(#\#):not(#\#){padding-inline-end:calc(var(--container-padding-inline-end) - var(--border-width))}.x1g0rcpp:not(#\#):not(#\#):not(#\#){padding-inline-end:max(var(--spacing-4),env(safe-area-inset-right,0px))}.x1by8st6:not(#\#):not(#\#):not(#\#){padding-inline-end:var(--astryx-dialog-padding-inline-end,var(--astryx-dialog-padding-inline,var(--astryx-dialog-padding,max(var(--spacing-4),env(safe-area-inset-right,0px)))))}.x17sfb9:not(#\#):not(#\#):not(#\#){padding-inline-end:var(--astryx-number-input-padding-inline-end,var(--astryx-number-input-padding-inline,var(--astryx-number-input-padding,var(--spacing-2))))}.x64h4k7:not(#\#):not(#\#):not(#\#){padding-inline-end:var(--container-padding-inline-end)}.x1peupej:not(#\#):not(#\#):not(#\#){padding-inline-end:var(--layout-padding-inner-x,var(--spacing-4))}.xpc6k2p:not(#\#):not(#\#):not(#\#){padding-inline-end:var(--layout-padding-outer-x,var(--spacing-4))}.x1le3yxw:not(#\#):not(#\#):not(#\#){padding-inline-end:var(--spacing-0-5)}.x1s0aq8i:not(#\#):not(#\#):not(#\#){padding-inline-end:var(--spacing-0)}.x17hk9do:not(#\#):not(#\#):not(#\#){padding-inline-end:var(--spacing-1-5)}.x1nryj5t:not(#\#):not(#\#):not(#\#){padding-inline-end:var(--spacing-1)}.x160ivqr:not(#\#):not(#\#):not(#\#){padding-inline-end:var(--spacing-10)}.x1djylfy:not(#\#):not(#\#):not(#\#){padding-inline-end:var(--spacing-2)}.x1t818jl:not(#\#):not(#\#):not(#\#){padding-inline-end:var(--spacing-3)}.xnjyzlh:not(#\#):not(#\#):not(#\#){padding-inline-end:var(--spacing-4)}.xdbrk9v:not(#\#):not(#\#):not(#\#){padding-inline-end:var(--spacing-5)}.x1we12cn:not(#\#):not(#\#):not(#\#){padding-inline-end:var(--spacing-6)}.x1q91b2g:not(#\#):not(#\#):not(#\#){padding-inline-end:var(--spacing-8)}.x120eax6:not(#\#):not(#\#):not(#\#){padding-inline-end:var(--x-paddingInlineEnd)}.x1c1uobl:not(#\#):not(#\#):not(#\#){padding-inline-start:0}.x1f43n9v:not(#\#):not(#\#):not(#\#){padding-inline-start:calc(16px + var(--spacing-1-5))}.x1b6te9z:not(#\#):not(#\#):not(#\#){padding-inline-start:calc(var(--_textarea-inline-padding) + var(--spacing-6))}.xs19ii7:not(#\#):not(#\#):not(#\#){padding-inline-start:calc(var(--container-padding-inline-start) - var(--border-width))}.x2a0j69:not(#\#):not(#\#):not(#\#){padding-inline-start:calc(var(--spacing-2) - var(--spacing-1) + 1px)}.xf4btlh:not(#\#):not(#\#):not(#\#){padding-inline-start:max(var(--spacing-4),env(safe-area-inset-left,0px))}.xqmdmw:not(#\#):not(#\#):not(#\#){padding-inline-start:var(--astryx-dialog-padding-inline-start,var(--astryx-dialog-padding-inline,var(--astryx-dialog-padding,max(var(--spacing-4),env(safe-area-inset-left,0px)))))}.x1jni19p:not(#\#):not(#\#):not(#\#){padding-inline-start:var(--astryx-number-input-padding-inline-start,var(--astryx-number-input-padding-inline,var(--astryx-number-input-padding,var(--spacing-2))))}.x1c35znw:not(#\#):not(#\#):not(#\#){padding-inline-start:var(--container-padding-inline-start)}.xwjyata:not(#\#):not(#\#):not(#\#){padding-inline-start:var(--layout-padding-inner-x,var(--spacing-4))}.x139j0dd:not(#\#):not(#\#):not(#\#){padding-inline-start:var(--layout-padding-outer-x,var(--spacing-4))}.x138rykx:not(#\#):not(#\#):not(#\#){padding-inline-start:var(--spacing-0-5)}.x18gyask:not(#\#):not(#\#):not(#\#){padding-inline-start:var(--spacing-0)}.xfti1ec:not(#\#):not(#\#):not(#\#){padding-inline-start:var(--spacing-1-5)}.x1vsv5vr:not(#\#):not(#\#):not(#\#){padding-inline-start:var(--spacing-1)}.xqp078j:not(#\#):not(#\#):not(#\#){padding-inline-start:var(--spacing-10)}.xc8afjc:not(#\#):not(#\#):not(#\#){padding-inline-start:var(--spacing-11)}.x19b7t93:not(#\#):not(#\#):not(#\#){padding-inline-start:var(--spacing-12)}.x12gdq22:not(#\#):not(#\#):not(#\#){padding-inline-start:var(--spacing-2)}.x126nfab:not(#\#):not(#\#):not(#\#){padding-inline-start:var(--spacing-3)}.x1rey3nv:not(#\#):not(#\#):not(#\#){padding-inline-start:var(--spacing-4)}.x1blguxw:not(#\#):not(#\#):not(#\#){padding-inline-start:var(--spacing-5)}.x31w388:not(#\#):not(#\#):not(#\#){padding-inline-start:var(--spacing-6)}.xchaq28:not(#\#):not(#\#):not(#\#){padding-inline-start:var(--spacing-7)}.x1j3hnjz:not(#\#):not(#\#):not(#\#){padding-inline-start:var(--spacing-8)}.xnvo3vl:not(#\#):not(#\#):not(#\#){padding-inline-start:var(--x-paddingInlineStart)}.x201tam:not(#\#):not(#\#):not(#\#){perspective:520px}.x67bb7w:not(#\#):not(#\#):not(#\#){pointer-events:auto}.x47corl:not(#\#):not(#\#):not(#\#){pointer-events:none}.x1tsffl5:not(#\#):not(#\#):not(#\#){position-anchor:--outline-active}.x10l6tqk:not(#\#):not(#\#):not(#\#){position:absolute}.xixxii4:not(#\#):not(#\#):not(#\#){position:fixed}.x1n2onr6:not(#\#):not(#\#):not(#\#){position:relative}.x1uhb9sk:not(#\#):not(#\#):not(#\#){position:static}.x7wzq59:not(#\#):not(#\#):not(#\#){position:sticky}.x1mf7ja4:not(#\#):not(#\#):not(#\#){position:var(--_reveal-position,static)}.xio8zfp:not(#\#):not(#\#):not(#\#){r:calc(var(--_spinner-ring-diameter) / 2)}.xtt52l0:not(#\#):not(#\#):not(#\#){resize:none}.x288g5:not(#\#):not(#\#):not(#\#){resize:vertical}.xajebq8:not(#\#):not(#\#):not(#\#){row-gap:calc(var(--spacing-1) - 1px)}.x1tw44j4:not(#\#):not(#\#):not(#\#){row-gap:var(--spacing-0-5)}.x6yxi7o:not(#\#):not(#\#):not(#\#){row-gap:var(--spacing-0)}.xhq53yo:not(#\#):not(#\#):not(#\#){row-gap:var(--spacing-1-5)}.x1ngg2t4:not(#\#):not(#\#):not(#\#){row-gap:var(--spacing-1)}.x1xpicb7:not(#\#):not(#\#):not(#\#){row-gap:var(--spacing-10)}.x1x7z4sm:not(#\#):not(#\#):not(#\#){row-gap:var(--spacing-2)}.x4olc9o:not(#\#):not(#\#):not(#\#){row-gap:var(--spacing-3)}.xtx9w7w:not(#\#):not(#\#):not(#\#){row-gap:var(--spacing-4)}.x1iu6piu:not(#\#):not(#\#):not(#\#){row-gap:var(--spacing-5)}.xczp1bk:not(#\#):not(#\#):not(#\#){row-gap:var(--spacing-6)}.xgx0vcf:not(#\#):not(#\#):not(#\#){row-gap:var(--spacing-8)}.xkcv6ua:not(#\#):not(#\#):not(#\#){scroll-behavior:smooth}.xrw9175:not(#\#):not(#\#):not(#\#){scroll-padding-block-end:48px}.x1hdbdi8:not(#\#):not(#\#):not(#\#){scroll-snap-align:center}.x1bhewko:not(#\#):not(#\#):not(#\#){scroll-snap-align:start}.x1rohswg:not(#\#):not(#\#):not(#\#){scrollbar-width:none}.x1vy8frr:not(#\#):not(#\#):not(#\#){stroke-dasharray:calc(var(--_spinner-ring-diameter) * 1.1781) calc(var(--_spinner-ring-diameter) * 1.9635)}.x1owpc8m:not(#\#):not(#\#):not(#\#){stroke-linecap:round}.x7bo2k:not(#\#):not(#\#):not(#\#){stroke-opacity:.3}.x1smxkh6:not(#\#):not(#\#):not(#\#){stroke-opacity:.302}.x1g350g8:not(#\#):not(#\#):not(#\#){stroke-opacity:1}.xgw3ha0:not(#\#):not(#\#):not(#\#){stroke-width:var(--_spinner-ring-stroke)}.xtve3lm:not(#\#):not(#\#):not(#\#){stroke:var(--spinner-color)}.xalkhop:not(#\#):not(#\#):not(#\#){stroke:var(--spinner-track-color)}.xeq4nuv:not(#\#):not(#\#):not(#\#){tab-size:2}.x1drmoe9:not(#\#):not(#\#):not(#\#){table-layout:auto}.x140o2bo:not(#\#):not(#\#):not(#\#){table-layout:fixed}.x2b8uid:not(#\#):not(#\#):not(#\#){text-align:center}.xp4054r:not(#\#):not(#\#):not(#\#){text-align:end}.x16tdsg8:not(#\#):not(#\#):not(#\#){text-align:inherit}.x1yc453h:not(#\#):not(#\#):not(#\#){text-align:start}.x1b2iylo:not(#\#):not(#\#):not(#\#){text-box-edge:cap alphabetic}.xwgcxoh:not(#\#):not(#\#):not(#\#){text-box-trim:trim-both}.xycaml9:not(#\#):not(#\#):not(#\#){-webkit-text-decoration-color:var(--color-border-emphasized);-webkit-text-decoration-color:var(--color-border-emphasized);-webkit-text-decoration-color:var(--color-border-emphasized);text-decoration-color:var(--color-border-emphasized)}.xujl8zx:not(#\#):not(#\#):not(#\#){text-decoration-line:underline}.xev0dqp:not(#\#):not(#\#):not(#\#){text-decoration-style:dashed}.xlyipyv:not(#\#):not(#\#):not(#\#){text-overflow:ellipsis}.xtvhhri:not(#\#):not(#\#):not(#\#){text-transform:uppercase}.xrys4gj:not(#\#):not(#\#):not(#\#){text-underline-offset:2px}.x11b3rvo:not(#\#):not(#\#):not(#\#){text-underline-offset:var(--spacing-0-5)}.x1w2vvpw:not(#\#):not(#\#):not(#\#){text-wrap:balance}.xebhuq6:not(#\#):not(#\#):not(#\#){text-wrap:nowrap}.x1fzhlzt:not(#\#):not(#\#):not(#\#){text-wrap:pretty}.xk4td0m:not(#\#):not(#\#):not(#\#){text-wrap:wrap}.x5ve5x3:not(#\#):not(#\#):not(#\#){touch-action:none}.x1bblx7b:not(#\#):not(#\#):not(#\#){touch-action:pan-x}.xx69xxh:not(#\#):not(#\#):not(#\#){touch-action:pan-y}.x1g0ag68:not(#\#):not(#\#):not(#\#){transform-origin:50%}.x1oyok0e:not(#\#):not(#\#):not(#\#){transform-style:preserve-3d}.x1c071of:not(#\#):not(#\#):not(#\#){transform:none}.x7p49u4:not(#\#):not(#\#):not(#\#){transform:rotate(0)}.x19jd1h0:not(#\#):not(#\#):not(#\#){transform:rotate(180deg)}.x1iffjtl:not(#\#):not(#\#):not(#\#){transform:rotate(90deg)}.x3oybdh:not(#\#):not(#\#):not(#\#){transform:scale(1)}.x11lhmoz:not(#\#):not(#\#):not(#\#){transform:translate(-50%,-50%)}.x1m9mm8y:not(#\#):not(#\#):not(#\#){transform:translate(-50%,50%)}.xv8yid9:not(#\#):not(#\#):not(#\#){transform:translate(25%,25%)}.x4v1no5:not(#\#):not(#\#):not(#\#){transform:translate(50%,50%)}.x5i6ehr:not(#\#):not(#\#):not(#\#){transform:translate(-100%)}.xuuh30:not(#\#):not(#\#):not(#\#){transform:translate(-50%)}.xbryuvx:not(#\#):not(#\#):not(#\#){transform:translate(0)}.xumwmo6:not(#\#):not(#\#):not(#\#){transform:translate(100%)}.xv5t66b:not(#\#):not(#\#):not(#\#){transform:translate(12px)}.x15481yp:not(#\#):not(#\#):not(#\#){transform:translate(14px)}.xitnhlw:not(#\#):not(#\#):not(#\#){transform:translate(50%)}.x105ttfm:not(#\#):not(#\#):not(#\#){transform:translateY(-100%)}.x19xzu86:not(#\#):not(#\#):not(#\#){transform:translateY(-3px)scale(.985)}.x1bvilyr:not(#\#):not(#\#):not(#\#){transform:translateY(-4px)}.x1cb1t30:not(#\#):not(#\#):not(#\#){transform:translateY(-50%)}.xp0htlv:not(#\#):not(#\#):not(#\#){transform:translateY(-6px)scale(.97)}.xnn1q72:not(#\#):not(#\#):not(#\#){transform:translateY(0)}.x1weeur4:not(#\#):not(#\#):not(#\#){transform:translateY(100%)}.x131p8rn:not(#\#):not(#\#):not(#\#){transform:translateY(50%)}.x149p1fo:not(#\#):not(#\#):not(#\#){transform:translateY(var(--_toast-swipe-exit-y,var(--_toast-swipe-y,var(--_toast-slide-y,var(--spacing-2))))) scale(var(--_toast-swipe-scale,1))}.x1qk3xlt:not(#\#):not(#\#):not(#\#){transform:translateY(var(--_toast-swipe-y,0px)) scale(var(--_toast-swipe-scale,1))}.x11wx31z:not(#\#):not(#\#):not(#\#){transform:var(--x-qthpiu)}.xsqj5wx:not(#\#):not(#\#):not(#\#){transform:var(--x-transform)}.xd00j3c:not(#\#):not(#\#):not(#\#){transition-behavior:allow-discrete}.x5h36tt:not(#\#):not(#\#):not(#\#){transition-delay:.15s}.x1ahifba:not(#\#):not(#\#):not(#\#){transition-delay:0s}.x4avkj2:not(#\#):not(#\#):not(#\#){transition-delay:var(--_fade-delay,0s)}.x1rq8cwj:not(#\#):not(#\#):not(#\#){transition-delay:var(--_reveal-delay,0s,0s)}.x10b1n17:not(#\#):not(#\#):not(#\#){transition-delay:var(--duration-fast)}.x11bq7d0:not(#\#):not(#\#):not(#\#){transition-duration:60ms}.xx6bhzk:not(#\#):not(#\#):not(#\#){transition-duration:.15s}.x13dflua:not(#\#):not(#\#):not(#\#){transition-duration:.2s}.xjd9b36:not(#\#):not(#\#):not(#\#){transition-duration:1ms}.x2rcmwa:not(#\#):not(#\#):not(#\#){transition-duration:var(--duration-fast-max)}.xkvfbh3:not(#\#):not(#\#):not(#\#){transition-duration:var(--duration-fast-min)}.x1tw3moq:not(#\#):not(#\#):not(#\#){transition-duration:var(--duration-fast),0s}.xuedmi6:not(#\#):not(#\#):not(#\#){transition-duration:var(--duration-fast)}.xgneliz:not(#\#):not(#\#):not(#\#){transition-duration:var(--duration-medium-min)}.x80gvsz:not(#\#):not(#\#):not(#\#){transition-duration:var(--duration-medium)}.x1eaenvl:not(#\#):not(#\#):not(#\#){transition-property:background-color,border-color,color}.xts7igz:not(#\#):not(#\#):not(#\#){transition-property:background-color,border-color}.x106061f:not(#\#):not(#\#):not(#\#){transition-property:background-color,box-shadow}.xzo0q3i:not(#\#):not(#\#):not(#\#){transition-property:background-color,color,border-color}.xs2xxs2:not(#\#):not(#\#):not(#\#){transition-property:background-color,color}.x1e8aii2:not(#\#):not(#\#):not(#\#){transition-property:background-color,opacity}.x15406qy:not(#\#):not(#\#):not(#\#){transition-property:background-color}.xrafxwg:not(#\#):not(#\#):not(#\#){transition-property:background-image,background-color,color,opacity,transform}.x12qzo2w:not(#\#):not(#\#):not(#\#){transition-property:background-image}.x1tv3a4w:not(#\#):not(#\#):not(#\#){transition-property:border-color,box-shadow,background-color}.x12zzom9:not(#\#):not(#\#):not(#\#){transition-property:border-color,box-shadow}.xshfolx:not(#\#):not(#\#):not(#\#){transition-property:border-color}.x16mfhj0:not(#\#):not(#\#):not(#\#){transition-property:box-shadow,border-color}.xkdsq27:not(#\#):not(#\#):not(#\#){transition-property:box-shadow}.x1vix5yk:not(#\#):not(#\#):not(#\#){transition-property:color,background-color,box-shadow}.x1gbuem2:not(#\#):not(#\#):not(#\#){transition-property:color,background-color}.x1jbe559:not(#\#):not(#\#):not(#\#){transition-property:color,font-weight}.x1mpt4pi:not(#\#):not(#\#):not(#\#){transition-property:color,-webkit-text-decoration,text-decoration}.xt3l3uh:not(#\#):not(#\#):not(#\#){transition-property:color}.xrgi2yo:not(#\#):not(#\#):not(#\#){transition-property:display}.xjshnde:not(#\#):not(#\#):not(#\#){transition-property:grid-template-rows,padding}.x1qn9uv2:not(#\#):not(#\#):not(#\#){transition-property:grid-template-rows}.x157bb6t:not(#\#):not(#\#):not(#\#){transition-property:-webkit-mask-image,mask-image}.x13b0p5u:not(#\#):not(#\#):not(#\#){transition-property:none}.x1wbls7o:not(#\#):not(#\#):not(#\#){transition-property:opacity,background-color,transform}.xnpjden:not(#\#):not(#\#):not(#\#){transition-property:opacity,background-color}.xsm4mo9:not(#\#):not(#\#):not(#\#){transition-property:opacity,display,overlay}.x1n1p2mu:not(#\#):not(#\#):not(#\#){transition-property:opacity,position}.x1apppo2:not(#\#):not(#\#):not(#\#){transition-property:opacity,transform,max-width}.x4bbghf:not(#\#):not(#\#):not(#\#){transition-property:opacity,transform,overlay,display}.x6o7n8i:not(#\#):not(#\#):not(#\#){transition-property:opacity,transform}.xxup5nn:not(#\#):not(#\#):not(#\#){transition-property:opacity,visibility,transform}.x1jl3cmp:not(#\#):not(#\#):not(#\#){transition-property:opacity,visibility}.x19991ni:not(#\#):not(#\#):not(#\#){transition-property:opacity}.x1xuz8iz:not(#\#):not(#\#):not(#\#){transition-property:top,height}.x18dpk69:not(#\#):not(#\#):not(#\#){transition-property:transform,background-color}.x12pfavo:not(#\#):not(#\#):not(#\#){transition-property:transform,color}.xwcsmn1:not(#\#):not(#\#):not(#\#){transition-property:transform,opacity}.xh3q6i0:not(#\#):not(#\#):not(#\#){transition-property:transform,width,height}.x11xpdln:not(#\#):not(#\#):not(#\#){transition-property:transform}.x74b7sa:not(#\#):not(#\#):not(#\#){transition-property:visibility}.xxrbq2n:not(#\#):not(#\#):not(#\#){transition-property:width}.xv2sgk5:not(#\#):not(#\#):not(#\#){transition-timing-function:cubic-bezier(.3,0,.6,.6)}.x9lcvmn:not(#\#):not(#\#):not(#\#){transition-timing-function:ease-out}.xcj1dhv:not(#\#):not(#\#):not(#\#){transition-timing-function:linear}.xlr8y92:not(#\#):not(#\#):not(#\#){transition-timing-function:var(--ease-standard)}.x3sa99s:not(#\#):not(#\#):not(#\#){translate:0 -50%}.x87ps6o:not(#\#):not(#\#):not(#\#){-webkit-user-select:none;user-select:none}.x11njtxf:not(#\#):not(#\#):not(#\#){vertical-align:baseline}.x3ajldb:not(#\#):not(#\#):not(#\#){vertical-align:bottom}.xxymvpz:not(#\#):not(#\#):not(#\#){vertical-align:middle}.x1v0h343:not(#\#):not(#\#):not(#\#){vertical-align:super}.x16dsc37:not(#\#):not(#\#):not(#\#){vertical-align:top}.xlshs6z:not(#\#):not(#\#):not(#\#){visibility:hidden}.xnpuxes:not(#\#):not(#\#):not(#\#){visibility:visible}.xeaf4i8:not(#\#):not(#\#):not(#\#){white-space:normal}.xuxw1ft:not(#\#):not(#\#):not(#\#){white-space:nowrap}.x126k92a:not(#\#):not(#\#):not(#\#){white-space:pre-wrap}.x1sdyfia:not(#\#):not(#\#):not(#\#){white-space:pre}.x1q1rmc8:not(#\#):not(#\#):not(#\#){will-change:transform,opacity}.x1so62im:not(#\#):not(#\#):not(#\#){will-change:transform}.x1yn0g08:not(#\#):not(#\#):not(#\#){word-break:break-all}.x13faqbe:not(#\#):not(#\#):not(#\#){word-break:break-word}.x1lldw8n:not(#\#):not(#\#):not(#\#){word-break:normal}.x1ja2u2z:not(#\#):not(#\#):not(#\#){z-index:0}.x1vjfegm:not(#\#):not(#\#):not(#\#){z-index:1}.xfo81ep:not(#\#):not(#\#):not(#\#){z-index:1000}.xhtitgo:not(#\#):not(#\#):not(#\#){z-index:2}.xzkaem6:not(#\#):not(#\#):not(#\#){z-index:3}.x6cuj84:not(#\#):not(#\#):not(#\#){z-index:500}.x1q2oy4v:not(#\#):not(#\#):not(#\#){z-index:9999}.x1v2claj.x1v2claj:where(.x84s7jz:focus-within *):not(#\#):not(#\#):not(#\#){opacity:1}.x3730vf.x3730vf:where(.x84s7jz:focus-within *):not(#\#):not(#\#):not(#\#){pointer-events:auto}.xuqivmr.xuqivmr:where(.x84s7jz:focus-within *):not(#\#):not(#\#):not(#\#){transform:translateY(0)}.x7v6acp.x7v6acp:where(.x84s7jz:focus-within *):not(#\#):not(#\#):not(#\#){visibility:visible}.x5um2zc.x5um2zc:where(.x1twag4g:first-child *):not(#\#):not(#\#):not(#\#),.x1se5z8o.x1se5z8o:where(.x1twag4g:last-child *):not(#\#):not(#\#):not(#\#){visibility:hidden}@supports (animation-timeline:view()){.x1iu2jvn.x1iu2jvn:not(#\#):not(#\#):not(#\#){animation-name:x1tut0r7-B}}.xfd3fxj:is([dir=rtl] *):not(#\#):not(#\#):not(#\#){animation-name:x1c2q33o-B}.x1vxsm5i:is([dir=rtl] *):not(#\#):not(#\#):not(#\#){animation-name:xu7jd1z-B}.x18lne9g:is([dir=rtl] *):not(#\#):not(#\#):not(#\#){animation-name:xwmkjkf-B}.x1spg45b.x1spg45b:hover:where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){background-color:var(--color-accent)}.x1rmb4wm:not(:has(~:not([popover]):not(template))):not(#\#):not(#\#):not(#\#){border-end-end-radius:var(--radius-element)}.xturttb:not(:has(~:not([popover]):not(template))):not(#\#):not(#\#):not(#\#){border-end-start-radius:var(--radius-element)}.x1tzxhge:not(:has(~:not([popover]):not(template))):not(#\#):not(#\#):not(#\#){border-start-end-radius:var(--radius-element)}.xuihb5h:focus-within:not(#\#):not(#\#):not(#\#){box-shadow:inset 0 0 0 2px var(--color-accent-muted)}.x15ysqaf:focus-within:not(#\#):not(#\#):not(#\#){box-shadow:none}.xyavpck:focus-within:not(#\#):not(#\#):not(#\#){box-shadow:var(--shadow-med)}.x10wafsz:focus-within:not(#\#):not(#\#):not(#\#){clip-path:none}.xy5bzlh.xy5bzlh:hover:where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){color:var(--color-icon-primary)}.x9o1np9.x9o1np9:hover:where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){color:var(--color-text-primary)}.x16khyan:is(:disabled,[aria-disabled=true]):not(#\#):not(#\#):not(#\#){cursor:default}.x1y40yee:popover-open:not(#\#):not(#\#):not(#\#){display:flex}.x1sik18w:not(:first-child):not(#\#):not(#\#):not(#\#){margin-inline-start:var(--_avatar-group-overlap)}.x1nwey30:is([dir=rtl] *):not(#\#):not(#\#):not(#\#){-webkit-mask-image:linear-gradient(to left,transparent var(--_tab-strip-bleed),black calc(var(--_tab-strip-bleed) + var(--spacing-8)));-webkit-mask-image:linear-gradient(to left,transparent var(--_tab-strip-bleed),black calc(var(--_tab-strip-bleed) + var(--spacing-8)));-webkit-mask-image:linear-gradient(to left,transparent var(--_tab-strip-bleed),black calc(var(--_tab-strip-bleed) + var(--spacing-8)));mask-image:linear-gradient(to left,transparent var(--_tab-strip-bleed),black calc(var(--_tab-strip-bleed) + var(--spacing-8)))}.x1rxa4r8:is([dir=rtl] *):not(#\#):not(#\#):not(#\#){-webkit-mask-image:linear-gradient(to right,transparent var(--_tab-strip-bleed),black calc(var(--_tab-strip-bleed) + var(--spacing-8)));-webkit-mask-image:linear-gradient(to right,transparent var(--_tab-strip-bleed),black calc(var(--_tab-strip-bleed) + var(--spacing-8)));-webkit-mask-image:linear-gradient(to right,transparent var(--_tab-strip-bleed),black calc(var(--_tab-strip-bleed) + var(--spacing-8)));mask-image:linear-gradient(to right,transparent var(--_tab-strip-bleed),black calc(var(--_tab-strip-bleed) + var(--spacing-8)))}.x1euntei:focus-within:not(#\#):not(#\#):not(#\#),.x25t5g8:focus-visible:not(#\#):not(#\#):not(#\#),.xof6bs:is(th:hover *):not(#\#):not(#\#):not(#\#){opacity:1}.xofkqq2:popover-open:not(#\#):not(#\#):not(#\#){opacity:1}.x1e0x2sz:focus-visible:not(#\#):not(#\#):not(#\#){outline-color:var(--color-error)}.xx47ajj:focus-visible:not(#\#):not(#\#):not(#\#){outline-color:var(--focus-outline-color)}.x7s97pk:focus-visible:not(#\#):not(#\#):not(#\#){outline-offset:2px}.x13aywxo:focus-visible:not(#\#):not(#\#):not(#\#){outline-offset:var(--button-focus-offset)}.x1vwwbsn:focus-visible:not(#\#):not(#\#):not(#\#),.xwz5zln.xwz5zln:where(.x1iwu4tg:has(:focus-visible) *):not(#\#):not(#\#):not(#\#){outline-offset:var(--focus-outline-offset)}.x1jhp3zv:focus-visible:not(#\#):not(#\#):not(#\#){outline-style:var(--focus-outline-style)}.x1vidyx5:focus-visible:not(#\#):not(#\#):not(#\#){outline-width:var(--focus-outline-width)}.x1n6uwha:is([dir=rtl] *):not(#\#):not(#\#):not(#\#){padding-inline-end:max(var(--spacing-4),env(safe-area-inset-left,0px))}.xtjjor6:is([dir=rtl] *):not(#\#):not(#\#):not(#\#){padding-inline-end:var(--astryx-dialog-padding-inline-end,var(--astryx-dialog-padding-inline,var(--astryx-dialog-padding,max(var(--spacing-4),env(safe-area-inset-left,0px)))))}.x19efkpl:is([dir=rtl] *):not(#\#):not(#\#):not(#\#){padding-inline-start:max(var(--spacing-4),env(safe-area-inset-right,0px))}.x1i7f2ot:is([dir=rtl] *):not(#\#):not(#\#):not(#\#){padding-inline-start:var(--astryx-dialog-padding-inline-start,var(--astryx-dialog-padding-inline,var(--astryx-dialog-padding,max(var(--spacing-4),env(safe-area-inset-right,0px)))))}.xbt4iw:focus-within:not(#\#):not(#\#):not(#\#){pointer-events:auto}.xo74pv5:focus-within:not(#\#):not(#\#):not(#\#){position:static}.x1mqgsch[data-astryx-scrolling]:not(#\#):not(#\#):not(#\#){scrollbar-width:none}.xaafvuh:is([dir=rtl] *):not(#\#):not(#\#):not(#\#){transform:scaleX(-1)rotate(0)}.x1nxqau:is([dir=rtl] *):not(#\#):not(#\#):not(#\#){transform:scaleX(-1)rotate(90deg)}.xgtlewx:is([dir=rtl] *):not(#\#):not(#\#):not(#\#){transform:scaleX(-1)}.x10fxb7p:is([dir=rtl] *):not(#\#):not(#\#):not(#\#){transform:translate(-25%,25%)}.xqgnvz5:is([dir=rtl] *):not(#\#):not(#\#):not(#\#){transform:translate(-50%,50%)}.xoffwj3:is([dir=rtl] *):not(#\#):not(#\#):not(#\#){transform:translate(50%,-50%)}.x1df3fe5:is([dir=rtl] *):not(#\#):not(#\#):not(#\#){transform:translate(-100%)}.xi9aj42:is([dir=rtl] *):not(#\#):not(#\#):not(#\#){transform:translate(-12px)}.x12xz5k6:is([dir=rtl] *):not(#\#):not(#\#):not(#\#){transform:translate(-14px)}.x36dvrd:is([dir=rtl] *):not(#\#):not(#\#):not(#\#){transform:translate(-50%)}.xttggg:is([dir=rtl] *):not(#\#):not(#\#):not(#\#){transform:translate(100%)}.x1nyx83j:is([dir=rtl] *):not(#\#):not(#\#):not(#\#){transform:translate(50%)}.x9cjr8z:popover-open:not(#\#):not(#\#):not(#\#){transform:translateY(0)}.x75qhwu:is([dir=rtl] *):not(#\#):not(#\#):not(#\#){transform:var(--x-sj6hyi)}.x1rm9qnc:focus-within:not(#\#):not(#\#):not(#\#){z-index:1}.x1btxeh5:has(input:focus-visible):not(#\#):not(#\#):not(#\#){box-shadow:inset 0 0 0 2px var(--color-accent)}.x92e2el:has(>[data-astryx-edge-comp]:last-child):not(#\#):not(#\#):not(#\#){margin-inline-end:var(--x-4drmnv)}.x1kftj4p:has(>[data-astryx-edge-comp]:first-child):not(#\#):not(#\#):not(#\#){margin-inline-start:var(--x-126w13d)}:is(.x1uy843r:has(:focus-visible):not(#\#):not(#\#):not(#\#),.xobxmqy:has(>:first-child:focus-visible):not(#\#):not(#\#):not(#\#)){outline-color:var(--focus-outline-color)}:is(.x1jumodi:has(:focus-visible):not(#\#):not(#\#):not(#\#),.x2vr5qc:has(>:first-child:focus-visible):not(#\#):not(#\#):not(#\#)){outline-offset:var(--focus-outline-offset)}:is(.xciu248:has(:focus-visible):not(#\#):not(#\#):not(#\#),.xfd04fr:has(>:first-child:focus-visible):not(#\#):not(#\#):not(#\#)){outline-style:var(--focus-outline-style)}:is(.x11j6mr8:has(:focus-visible):not(#\#):not(#\#):not(#\#),.xmmisi4:has(>:first-child:focus-visible):not(#\#):not(#\#):not(#\#)){outline-width:var(--focus-outline-width)}.xmnmr5y:has(.astryx-nav-icon):not(#\#):not(#\#):not(#\#){padding-inline-start:0}.x1xrp5p4:first-child:not(#\#):not(#\#):not(#\#){border-end-start-radius:var(--radius-element)}.xyf0ibl:first-child:not(#\#):not(#\#):not(#\#){border-inline-start-style:none}.x1pjv70x:first-child:not(#\#):not(#\#):not(#\#){border-inline-start-width:0}.x2qxyot:first-child:not(#\#):not(#\#):not(#\#){border-start-end-radius:var(--radius-element)}.x8eehn2:first-child:not(#\#):not(#\#):not(#\#){border-start-start-radius:var(--radius-element)}.x1pwwqoy:first-child:not(#\#):not(#\#):not(#\#){margin-inline-start:0}.x5uh4xs:first-child:not(#\#):not(#\#):not(#\#){padding-inline-start:max(var(--container-padding-inline-start,var(--spacing-2)),var(--spacing-2))}.x9bi00s:first-child:not(#\#):not(#\#):not(#\#){padding-inline-start:max(var(--container-padding-inline-start,var(--spacing-3)),var(--spacing-2))}.x18c6q21:first-child:not(#\#):not(#\#):not(#\#){padding-inline-start:max(var(--container-padding-inline-start,var(--spacing-4)),var(--spacing-2))}.x747jw7:last-child:not(#\#):not(#\#):not(#\#){border-end-end-radius:var(--radius-element)}.x1qlsc9e:last-child:not(#\#):not(#\#):not(#\#){border-inline-end-width:0}.x11xp8u1:last-child:not(#\#):not(#\#):not(#\#){border-start-end-radius:var(--radius-element)}.xbg7gas:last-child:not(#\#):not(#\#):not(#\#){padding-inline-end:max(var(--container-padding-inline-end,var(--spacing-2)),var(--spacing-2))}.xpilulx:last-child:not(#\#):not(#\#):not(#\#){padding-inline-end:max(var(--container-padding-inline-end,var(--spacing-3)),var(--spacing-2))}.x1wzlfcn:last-child:not(#\#):not(#\#):not(#\#){padding-inline-end:max(var(--container-padding-inline-end,var(--spacing-4)),var(--spacing-2))}.x1dnou9g:nth-child(2n):not(#\#):not(#\#):not(#\#){background-color:var(--color-background-muted)}.x1c52tdz:focus:not(#\#):not(#\#):not(#\#){background-color:var(--color-overlay-hover)}.x1rsz1da:focus:not(#\#):not(#\#):not(#\#){clip-path:none}.xodanix:focus:not(#\#):not(#\#):not(#\#){inset-inline-start:var(--spacing-2)}.x1xrnuwo:focus:not(#\#):not(#\#):not(#\#){position:fixed}.x1hbpcn8:focus:not(#\#):not(#\#):not(#\#){white-space:normal}.xjtnuge:active:not(#\#):not(#\#):not(#\#){background-color:var(--color-neutral)}.xuqm82a:active:not(#\#):not(#\#):not(#\#){background-image:none}.x1pdlv7q:active:not(#\#):not(#\#):not(#\#){transform:none}.xk4oym4:active:not(#\#):not(#\#):not(#\#){transform:scale(.98)}@media (prefers-reduced-motion:reduce){.x14q22ui.x14q22ui:not(#\#):not(#\#):not(#\#){animation-delay:0s}.xnh0sag.xnh0sag:not(#\#):not(#\#):not(#\#){animation-duration:3s}.x1aquc0h.x1aquc0h:not(#\#):not(#\#):not(#\#){animation-name:none}}@media (forced-colors:active){.x9yvj25.x9yvj25:not(#\#):not(#\#):not(#\#){background-color:canvas}.xwvh9j7.xwvh9j7:not(#\#):not(#\#):not(#\#){background-color:canvastext}}@media (prefers-contrast:more) and (not (forced-colors:active)){.x1j0df82.x1j0df82:not(#\#):not(#\#):not(#\#){background-color:var(--color-skeleton)}@supports (color:color-mix(in lab, red, red)){.x1j0df82.x1j0df82:not(#\#):not(#\#):not(#\#){background-color:color-mix(in srgb,var(--color-skeleton),var(--color-text-primary) 30%)}}}@media (forced-colors:active){.x1o55y2u.x1o55y2u:not(#\#):not(#\#):not(#\#){background-color:graytext}.x1jzqe4.x1jzqe4:not(#\#):not(#\#):not(#\#){background-color:highlight}.x1sir5s4.x1sir5s4:not(#\#):not(#\#):not(#\#){background-color:highlighttext}}@media (hover:hover){.x150ydqw.x150ydqw:not(#\#):not(#\#):not(#\#){background-color:#0000}}@media (forced-colors:active){.xs5hli.xs5hli:not(#\#):not(#\#):not(#\#){color:canvastext}.x1k5gbb1.x1k5gbb1:not(#\#):not(#\#):not(#\#){color:highlighttext}}@media (hover:hover){.x2dt3px.x2dt3px:not(#\#):not(#\#):not(#\#){cursor:zoom-in}.xqwu39o.xqwu39o:not(#\#):not(#\#):not(#\#){display:flex}}@media (width<=480px){.xedohl4.xedohl4:not(#\#):not(#\#):not(#\#){display:flex}}@media (pointer:coarse){.xhj50sb.xhj50sb:not(#\#):not(#\#):not(#\#){display:none}}@media (width<=480px){.x1rpgqan.x1rpgqan:not(#\#):not(#\#):not(#\#){flex-direction:column}}@media (pointer:coarse){.x6pjikd.x6pjikd:not(#\#):not(#\#):not(#\#){font-size:max(1rem,var(--text-body-size))}.xdk3u5w.xdk3u5w:not(#\#):not(#\#):not(#\#){font-size:max(1rem,var(--text-label-size))}.x1hsn8va.x1hsn8va:not(#\#):not(#\#):not(#\#){inset-inline-start:50%}.x1jymrmb.x1jymrmb:not(#\#):not(#\#):not(#\#){margin-inline-start:auto}}@media (forced-colors:active){.x1tbh5bv.x1tbh5bv:not(#\#):not(#\#):not(#\#){opacity:1}}@media (pointer:coarse){.xozvky.xozvky:not(#\#):not(#\#):not(#\#){order:1}}@media (prefers-reduced-motion:reduce){.xg83hb1.xg83hb1:not(#\#):not(#\#):not(#\#){scroll-behavior:auto}}@media (pointer:coarse){.x8i4i9p.x8i4i9p:not(#\#):not(#\#):not(#\#){transform:translate(-50%,-50%)}}@media (prefers-reduced-motion:reduce){.xwgk2z2.xwgk2z2:not(#\#):not(#\#):not(#\#){transition-delay:var(--_reveal-delay-reduced,0s,0s)}.xsagj69.xsagj69:not(#\#):not(#\#):not(#\#){transition-duration:.01ms}.xzg1mie.xzg1mie:not(#\#):not(#\#):not(#\#){transition-duration:10ms}.xsr0bmt.xsr0bmt:not(#\#):not(#\#):not(#\#){transition-duration:0s,0s}.x12w9bfk.x12w9bfk:not(#\#):not(#\#):not(#\#){transition-duration:0s}.x4wkmsb.x4wkmsb:not(#\#):not(#\#):not(#\#){transition-property:none}}.x1anq1lc.x1anq1lc:active:where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){background-color:var(--color-overlay-pressed)}.xzmimnh.xzmimnh:active:where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){background-image:linear-gradient(var(--color-overlay-pressed),var(--color-overlay-pressed)),linear-gradient(var(--color-neutral),var(--color-neutral))}.x7uyq82.x7uyq82:active:where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){background-image:linear-gradient(var(--color-overlay-pressed),var(--color-overlay-pressed))}@media (hover:hover) and (forced-colors:none){.xcgwt1n.xcgwt1n.xcgwt1n:where(.x1iwu4tg:hover *):not(#\#):not(#\#):not(#\#){background-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.xcgwt1n.xcgwt1n.xcgwt1n:where(.x1iwu4tg:hover *):not(#\#):not(#\#):not(#\#){background-color:color-mix(in srgb,var(--color-accent),var(--color-tint-hover) 15%)}}}@media (hover:hover){.x17srpfb.x17srpfb.x17srpfb:where(.x1odsvnm:hover *):not(#\#):not(#\#):not(#\#){background-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.x17srpfb.x17srpfb.x17srpfb:where(.x1odsvnm:hover *):not(#\#):not(#\#):not(#\#){background-color:color-mix(in srgb,var(--color-accent),var(--color-tint-hover) 15%)}}}@media (hover:hover) and (forced-colors:none){.x1a8ae7b.x1a8ae7b.x1a8ae7b:where(.x1iwu4tg:hover *):not(#\#):not(#\#):not(#\#){background-color:var(--color-background-gray)}@supports (color:color-mix(in lab, red, red)){.x1a8ae7b.x1a8ae7b.x1a8ae7b:where(.x1iwu4tg:hover *):not(#\#):not(#\#):not(#\#){background-color:color-mix(in srgb,var(--color-background-gray),var(--color-tint-hover) 5%)}}}@media (hover:hover){.xeultfy.xeultfy.xeultfy:where(.x1odsvnm:hover *):not(#\#):not(#\#):not(#\#){background-color:var(--color-background-surface)}@supports (color:color-mix(in lab, red, red)){.xeultfy.xeultfy.xeultfy:where(.x1odsvnm:hover *):not(#\#):not(#\#):not(#\#){background-color:color-mix(in srgb,var(--color-background-surface),var(--color-tint-hover) 5%)}}.xqxnq6d.xqxnq6d.xqxnq6d:where(.x1odsvnm:hover *):not(#\#):not(#\#):not(#\#){background-color:var(--color-background-muted)}.x1pe4z86.x1pe4z86.x1pe4z86:where(.x-default-marker:hover *):not(#\#):not(#\#):not(#\#){background-color:var(--color-icon-primary)}.x1a1zr74.x1a1zr74.x1a1zr74:where(.x1u3b27q:hover *):not(#\#):not(#\#):not(#\#){background-color:var(--color-overlay-hover)}.x1t9gxa6.x1t9gxa6.x1t9gxa6:where(.x-default-marker:hover *):not(#\#):not(#\#):not(#\#){color:var(--color-text-primary)}.xcwhr9z.xcwhr9z.xcwhr9z:where(.x84s7jz:hover *):not(#\#):not(#\#):not(#\#){opacity:1}.x8ydxbz.x8ydxbz.x8ydxbz:where(.x84s7jz:hover *):not(#\#):not(#\#):not(#\#){pointer-events:auto}.x17hxqr7.x17hxqr7.x17hxqr7:where(.x84s7jz:hover *):not(#\#):not(#\#):not(#\#){transform:translateY(0)}.xneequu.xneequu.xneequu:where(.x84s7jz:hover *):not(#\#):not(#\#):not(#\#){visibility:visible}}@supports (animation-timeline:view()){@media (prefers-reduced-motion:reduce){.xk3h8ob.xk3h8ob.xk3h8ob:not(#\#):not(#\#):not(#\#){animation-name:xuvekqa-B}}}@media (hover:hover){.xvxo0qp.xvxo0qp.xvxo0qp:hover:where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){background-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.xvxo0qp.xvxo0qp.xvxo0qp:hover:where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){background-color:color-mix(in srgb,var(--color-accent),var(--color-tint-hover) 15%)}}.x1pfkqlk.x1pfkqlk.x1pfkqlk:hover:where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){background-color:#0000}.xcu6dpe.xcu6dpe.xcu6dpe:hover:where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){background-color:var(--color-neutral)}.x1912f9e.x1912f9e.x1912f9e:hover:where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#):after,.xoevpu5.xoevpu5.xoevpu5:hover:where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){background-color:var(--color-overlay-hover)}.xmvprkv.xmvprkv.xmvprkv:hover:where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){background-image:linear-gradient(var(--color-overlay-hover),var(--color-overlay-hover))}.x1bm8j9m.x1bm8j9m.x1bm8j9m:hover:where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){background-image:none}.x1telqz2.x1telqz2.x1telqz2:hover:not(:focus-within):where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){box-shadow:inset 0 0 0 2px var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.x1telqz2.x1telqz2.x1telqz2:hover:not(:focus-within):where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--color-accent) 20%,transparent)}}.x1v5wwkd.x1v5wwkd.x1v5wwkd:hover:where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){box-shadow:inset 0 0 0 2px var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.x1v5wwkd.x1v5wwkd.x1v5wwkd:hover:where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--color-accent) 20%,transparent)}}.x1xqjsvb.x1xqjsvb.x1xqjsvb:hover:not(:focus-within):where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){box-shadow:inset 0 0 0 2px var(--color-border-emphasized)}@supports (color:color-mix(in lab, red, red)){.x1xqjsvb.x1xqjsvb.x1xqjsvb:hover:not(:focus-within):where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--color-border-emphasized) 30%,transparent)}}.x1s17dad.x1s17dad.x1s17dad:hover:not(:focus-within):where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){box-shadow:none}.x1bgmis8.x1bgmis8.x1bgmis8:hover:not(:focus-within):where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){box-shadow:var(--shadow-inset-error)}.x8wp45d.x8wp45d.x8wp45d:hover:not(:focus-within):where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){box-shadow:var(--shadow-inset-success)}.x9156jc.x9156jc.x9156jc:hover:not(:focus-within):where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){box-shadow:var(--shadow-inset-warning)}.x1ymidup.x1ymidup.x1ymidup:hover:where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){box-shadow:var(--shadow-med)}.x1rfoswn.x1rfoswn.x1rfoswn:hover:where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){color:var(--color-text-accent)}@supports (color:color-mix(in lab, red, red)){.x1rfoswn.x1rfoswn.x1rfoswn:hover:where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){color:color-mix(in srgb,var(--color-text-accent),var(--color-tint-hover) 15%)}}.xcunlro.xcunlro.xcunlro:hover:where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){color:var(--color-text-primary)}@supports (color:color-mix(in lab, red, red)){.xcunlro.xcunlro.xcunlro:hover:where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){color:color-mix(in srgb,var(--color-text-primary),var(--color-tint-hover) 15%)}}.x7jm8ul.x7jm8ul.x7jm8ul:hover:where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){color:var(--color-text-secondary)}@supports (color:color-mix(in lab, red, red)){.x7jm8ul.x7jm8ul.x7jm8ul:hover:where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){color:color-mix(in srgb,var(--color-text-secondary),var(--color-tint-hover) 15%)}}.xo5jvnm.xo5jvnm.xo5jvnm:hover:where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){color:var(--color-text-primary)}}@container (width<=399px){.x1alyx8p.x1alyx8p:not(#\#):not(#\#):not(#\#){flex-wrap:wrap}}@media (forced-colors:active){.x1vo6n7o.x1vo6n7o:active:not(#\#):not(#\#):not(#\#){background-color:highlight}}@media (hover:hover){.x1otsd3y.x1otsd3y.x1otsd3y:hover:where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){background-image:linear-gradient(var(--color-overlay-hover),var(--color-overlay-hover)),linear-gradient(var(--color-neutral),var(--color-neutral))}.xprvw0a.xprvw0a.xprvw0a:active:where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){background-color:var(--color-overlay-pressed)}.xo3fi6e.xo3fi6e.xo3fi6e:active:where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){background-image:linear-gradient(var(--color-overlay-pressed),var(--color-overlay-pressed)),linear-gradient(var(--color-neutral),var(--color-neutral))}.xetgvay.xetgvay.xetgvay:active:where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){background-image:linear-gradient(var(--color-overlay-pressed),var(--color-overlay-pressed))}@media (forced-colors:active){.x1d42zcn.x1d42zcn.x1d42zcn.x1d42zcn:hover:where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){background-color:highlight}}}.xib2hle:not(#\#):not(#\#):not(#\#):not(#\#){border-bottom-color:var(--color-border-emphasized)}.xw8gpjh:not(#\#):not(#\#):not(#\#):not(#\#){border-bottom-color:var(--color-border)}.x1q0q8m5:not(#\#):not(#\#):not(#\#):not(#\#){border-bottom-style:solid}.xso031l:not(#\#):not(#\#):not(#\#):not(#\#){border-bottom-width:1px}.xlxy82:not(#\#):not(#\#):not(#\#):not(#\#){border-bottom-width:2px}.x92x3c3:not(#\#):not(#\#):not(#\#):not(#\#){border-bottom-width:var(--border-width)}.x1mly77v:not(#\#):not(#\#):not(#\#):not(#\#){border-top-color:var(--color-border-emphasized)}.x1pc3f07:not(#\#):not(#\#):not(#\#):not(#\#){border-top-color:var(--color-border)}.x11npmm7:not(#\#):not(#\#):not(#\#):not(#\#){border-top-color:var(--color-on-accent)}.x13fuv20:not(#\#):not(#\#):not(#\#):not(#\#){border-top-style:solid}.x178xt8z:not(#\#):not(#\#):not(#\#):not(#\#){border-top-width:1px}.x11xkdxz:not(#\#):not(#\#):not(#\#):not(#\#){border-top-width:var(--border-width)}.x1ey2m1c:not(#\#):not(#\#):not(#\#):not(#\#){bottom:0}.x1c7jfne:not(#\#):not(#\#):not(#\#):not(#\#){bottom:2px}.xyi47jn:not(#\#):not(#\#):not(#\#):not(#\#){bottom:var(--_tab-indicator-bottom,-1px)}.x112dmjn:not(#\#):not(#\#):not(#\#):not(#\#){bottom:var(--spacing-1)}.x1nqzi6q:not(#\#):not(#\#):not(#\#):not(#\#){bottom:var(--x-bottom)}.xvle69y:not(#\#):not(#\#):not(#\#):not(#\#){height:.75rem}.xqtp20y:not(#\#):not(#\#):not(#\#):not(#\#){height:0}.xmll18r:not(#\#):not(#\#):not(#\#):not(#\#){height:1.25rem}.xam5rvr:not(#\#):not(#\#):not(#\#):not(#\#){height:1.5rem}.x5yr21d:not(#\#):not(#\#):not(#\#):not(#\#){height:100%}.xtdtrs8:not(#\#):not(#\#):not(#\#):not(#\#){height:100dvh}.xpyat2d:not(#\#):not(#\#):not(#\#):not(#\#){height:100px}.x1dr59a3:not(#\#):not(#\#):not(#\#):not(#\#){height:100vh}.x170jfvy:not(#\#):not(#\#):not(#\#):not(#\#){height:10px}.x1wkxgih:not(#\#):not(#\#):not(#\#):not(#\#){height:120px}.x1kpxq89:not(#\#):not(#\#):not(#\#):not(#\#){height:12px}.xhjk10j:not(#\#):not(#\#):not(#\#):not(#\#){height:140px}.x1v9usgg:not(#\#):not(#\#):not(#\#):not(#\#){height:14px}.x1ymw6g:not(#\#):not(#\#):not(#\#):not(#\#){height:160px}.xlup9mm:not(#\#):not(#\#):not(#\#):not(#\#){height:16px}.xmix8c7:not(#\#):not(#\#):not(#\#):not(#\#){height:18px}.xlzyvqe:not(#\#):not(#\#):not(#\#):not(#\#){height:1em}.xjm9jq1:not(#\#):not(#\#):not(#\#):not(#\#){height:1px}.x1l36t39:not(#\#):not(#\#):not(#\#):not(#\#){height:1rem}.x1qx5ct2:not(#\#):not(#\#):not(#\#):not(#\#){height:20px}.xxk0z11:not(#\#):not(#\#):not(#\#):not(#\#){height:24px}.x1fgtraw:not(#\#):not(#\#):not(#\#):not(#\#){height:28px}.x36qwtl:not(#\#):not(#\#):not(#\#):not(#\#){height:2px}.x10w6t97:not(#\#):not(#\#):not(#\#):not(#\#){height:32px}.xuoj239:not(#\#):not(#\#):not(#\#):not(#\#){height:3px}.x1vqgdyp:not(#\#):not(#\#):not(#\#):not(#\#){height:40px}.xsdox4t:not(#\#):not(#\#):not(#\#):not(#\#){height:48px}.xqu0tyb:not(#\#):not(#\#):not(#\#):not(#\#){height:4px}.xols6we:not(#\#):not(#\#):not(#\#):not(#\#){height:6px}.xwzfr38:not(#\#):not(#\#):not(#\#):not(#\#){height:80px}.xdk7pt:not(#\#):not(#\#):not(#\#):not(#\#){height:8px}.x1qjb5ga:not(#\#):not(#\#):not(#\#):not(#\#){height:anchor-size(--outline-active height,0px)}.xt7dq6l:not(#\#):not(#\#):not(#\#):not(#\#){height:auto}.xuk38ov:not(#\#):not(#\#):not(#\#):not(#\#){height:calc(100% - var(--tree-list-row-gap,0px) / 2)}.xs02d24:not(#\#):not(#\#):not(#\#):not(#\#){height:calc(100% + 1px)}.x12qplqi:not(#\#):not(#\#):not(#\#):not(#\#){height:calc(100% + var(--container-padding-block-start,0px) + var(--container-padding-block-end,0px))}.xpa73km:not(#\#):not(#\#):not(#\#):not(#\#){height:calc(100dvh - var(--_app-shell-header-height,0px))}.x1oglpa6:not(#\#):not(#\#):not(#\#):not(#\#){height:calc(max(1rem,var(--text-body-size)) * var(--text-body-leading));height:1lh}.x1tpcejd:not(#\#):not(#\#):not(#\#):not(#\#){height:calc(var(--_sheet-budget) + 48px)}.x1uiybsj:not(#\#):not(#\#):not(#\#):not(#\#){height:calc(var(--size-element-lg) - 4px)}.x102lyln:not(#\#):not(#\#):not(#\#):not(#\#){height:calc(var(--size-element-lg) - 8px)}.x184gfjb:not(#\#):not(#\#):not(#\#):not(#\#){height:calc(var(--size-element-md) - 4px)}.xrmxcn7:not(#\#):not(#\#):not(#\#):not(#\#){height:calc(var(--size-element-md) - 8px)}.x1u5rhrp:not(#\#):not(#\#):not(#\#):not(#\#){height:calc(var(--size-element-md) + var(--spacing-1))}.xzj98nu:not(#\#):not(#\#):not(#\#):not(#\#){height:calc(var(--size-element-sm) - 4px)}.xzydfjl:not(#\#):not(#\#):not(#\#):not(#\#){height:calc(var(--size-element-sm) - 8px)}.x1q370uo:not(#\#):not(#\#):not(#\#):not(#\#){height:calc(var(--text-body-size) * var(--text-body-leading))}.x14o5nre:not(#\#):not(#\#):not(#\#):not(#\#){height:calc(var(--text-supporting-size) * var(--text-supporting-leading))}.xw1wawg:not(#\#):not(#\#):not(#\#):not(#\#){height:36px}.xg7h5cd:not(#\#):not(#\#):not(#\#):not(#\#){height:fit-content}.xhovv34:not(#\#):not(#\#):not(#\#):not(#\#){height:var(--_progressbar-mark-height,8px)}.xsyqizj:not(#\#):not(#\#):not(#\#):not(#\#){height:var(--border-width)}.x5kfih4:not(#\#):not(#\#):not(#\#):not(#\#){height:var(--resize-handle-hit-area,16px)}.xssyfek:not(#\#):not(#\#):not(#\#):not(#\#){height:var(--size-element-lg)}.x1ueg155:not(#\#):not(#\#):not(#\#):not(#\#){height:var(--size-element-md)}.x6k0iem:not(#\#):not(#\#):not(#\#):not(#\#){height:var(--size-element-sm)}.x1b2l0oc:not(#\#):not(#\#):not(#\#):not(#\#){height:var(--spacing-0-5)}.xcenk2v:not(#\#):not(#\#):not(#\#):not(#\#){height:var(--spacing-1-5)}.x11c6zpc:not(#\#):not(#\#):not(#\#):not(#\#){height:var(--spacing-1)}.x1k15mir:not(#\#):not(#\#):not(#\#):not(#\#){height:var(--spacing-12)}.xoqw5ej:not(#\#):not(#\#):not(#\#):not(#\#){height:var(--spacing-2)}.x9gl9lo:not(#\#):not(#\#):not(#\#):not(#\#){height:var(--spacing-3)}.x6b6gus:not(#\#):not(#\#):not(#\#):not(#\#){height:var(--spacing-4)}.x1grt7ep:not(#\#):not(#\#):not(#\#):not(#\#){height:var(--spacing-5)}.xvpftlf:not(#\#):not(#\#):not(#\#):not(#\#){height:var(--spacing-6)}.x18to7ep:not(#\#):not(#\#):not(#\#):not(#\#){height:var(--spacing-8)}.x1w0ack5:not(#\#):not(#\#):not(#\#):not(#\#){height:var(--table-resize-height,100%)}.x1seg80s:not(#\#):not(#\#):not(#\#):not(#\#){height:var(--text-large-size)}.x15rwvks:not(#\#):not(#\#):not(#\#):not(#\#){height:var(--text-supporting-size)}.x16ye13r:not(#\#):not(#\#):not(#\#):not(#\#){height:var(--x-height)}.xm8gem:not(#\#):not(#\#):not(#\#):not(#\#){height:264px}.x6hpsvf:not(#\#):not(#\#):not(#\#):not(#\#){height:28px}.x1nrll8i:not(#\#):not(#\#):not(#\#):not(#\#){left:50%}.x1jyxor1:not(#\#):not(#\#):not(#\#):not(#\#){margin-bottom:-1px}.x1if0o47:not(#\#):not(#\#):not(#\#):not(#\#){margin-bottom:-48px}.xat24cr:not(#\#):not(#\#):not(#\#):not(#\#){margin-bottom:0}.xlgak1e:not(#\#):not(#\#):not(#\#):not(#\#){margin-bottom:calc(-1 * (max(var(--_tab-strip-bleed),calc(-1 * var(--_tab-indicator-bottom,-1px)))))}.x1z0f2p2:not(#\#):not(#\#):not(#\#):not(#\#){margin-bottom:calc(-1 * var(--_chat-composer-radius))}.x13i4uq0:not(#\#):not(#\#):not(#\#):not(#\#){margin-bottom:calc(-1 * var(--astryx-number-input-padding-block-end,var(--astryx-number-input-padding,var(--spacing-1))))}.x6h7pi7:not(#\#):not(#\#):not(#\#):not(#\#){margin-bottom:calc(-1 * var(--container-padding-block-end,0px))}.x1cdrix3:not(#\#):not(#\#):not(#\#):not(#\#){margin-bottom:calc(-1 * var(--radius-chat))}.xdrfirk:not(#\#):not(#\#):not(#\#):not(#\#){margin-bottom:calc(-1 * var(--spacing-1-5))}.xlstkdb:not(#\#):not(#\#):not(#\#):not(#\#){margin-bottom:var(--spacing-0-5)}.x14cgwvg:not(#\#):not(#\#):not(#\#):not(#\#){margin-bottom:var(--spacing-1)}.x1p37lm5:not(#\#):not(#\#):not(#\#):not(#\#){margin-bottom:var(--spacing-2)}.xep27e5:not(#\#):not(#\#):not(#\#):not(#\#){margin-bottom:var(--spacing-3)}.xwh1t77:not(#\#):not(#\#):not(#\#):not(#\#){margin-bottom:var(--spacing-4)}.x4d5cxa:not(#\#):not(#\#):not(#\#):not(#\#){margin-bottom:var(--spacing-6)}.xlm3tn6:not(#\#):not(#\#):not(#\#):not(#\#){margin-bottom:var(--x-marginBlockEnd)}.xdj266r:not(#\#):not(#\#):not(#\#):not(#\#){margin-top:0}.xr1yuqi:not(#\#):not(#\#):not(#\#):not(#\#){margin-top:auto}.xmqyaqf:not(#\#):not(#\#):not(#\#):not(#\#){margin-top:calc(-1 * (var(--_tab-strip-bleed)))}.xvyqdj1:not(#\#):not(#\#):not(#\#):not(#\#){margin-top:calc(-1 * anchor-size(height) - 8px)}.xckg3cf:not(#\#):not(#\#):not(#\#):not(#\#){margin-top:calc(-1 * var(--_chat-composer-radius))}.x5j3pgv:not(#\#):not(#\#):not(#\#):not(#\#){margin-top:calc(-1 * var(--astryx-number-input-padding-block-start,var(--astryx-number-input-padding,var(--spacing-1))))}.x1sa9bsh:not(#\#):not(#\#):not(#\#):not(#\#){margin-top:calc(-1 * var(--container-padding-block-start,0px))}.x1c40v9y:not(#\#):not(#\#):not(#\#):not(#\#){margin-top:calc(-1 * var(--spacing-1-5))}.x1ajqlyv:not(#\#):not(#\#):not(#\#):not(#\#){margin-top:calc(-1 * var(--spacing-2))}.x1233pnv:not(#\#):not(#\#):not(#\#):not(#\#){margin-top:calc((1em * var(--text-body-leading) - 6px) / 2)}.xjc2qm6:not(#\#):not(#\#):not(#\#):not(#\#){margin-top:var(--spacing-0-5)}.xcsaf9d:not(#\#):not(#\#):not(#\#):not(#\#){margin-top:var(--spacing-1)}.xtbrsbv:not(#\#):not(#\#):not(#\#):not(#\#){margin-top:var(--spacing-2)}.xj6sv8s:not(#\#):not(#\#):not(#\#):not(#\#){margin-top:var(--spacing-3)}.x1s1qpeq:not(#\#):not(#\#):not(#\#):not(#\#){margin-top:var(--spacing-4)}.x13rv44w:not(#\#):not(#\#):not(#\#):not(#\#){margin-top:var(--spacing-6)}.x1vhfslr:not(#\#):not(#\#):not(#\#):not(#\#){margin-top:var(--x-marginBlockStart)}.xmz0i5r:not(#\#):not(#\#):not(#\#):not(#\#){max-height:100%}.x1wj9ous:not(#\#):not(#\#):not(#\#):not(#\#){max-height:100dvh}.x18s7i0i:not(#\#):not(#\#):not(#\#):not(#\#){max-height:176px}.x1xiyphd:not(#\#):not(#\#):not(#\#):not(#\#){max-height:240px}.xuyqlj2:not(#\#):not(#\#):not(#\#):not(#\#){max-height:300px}.xbhvqqn:not(#\#):not(#\#):not(#\#):not(#\#){max-height:calc(100% - var(--spacing-3))}.x14bu9tk:not(#\#):not(#\#):not(#\#):not(#\#){max-height:calc(92dvh + 48px)}.xpnbb6b:not(#\#):not(#\#):not(#\#):not(#\#){max-height:min(480px,100vh - 32px)}.x7ab17h:not(#\#):not(#\#):not(#\#):not(#\#){max-height:none}.xenllk4:not(#\#):not(#\#):not(#\#):not(#\#){max-height:var(--container-max-height,none)}.x1jols5v:not(#\#):not(#\#):not(#\#):not(#\#){max-height:var(--x-maxHeight)}.x1m189uc:not(#\#):not(#\#):not(#\#):not(#\#){max-width:0}.x193iq5w:not(#\#):not(#\#):not(#\#):not(#\#){max-width:100%}.xlbgzzq:not(#\#):not(#\#):not(#\#):not(#\#){max-width:100dvw}.x55n99s:not(#\#):not(#\#):not(#\#):not(#\#){max-width:15em}.x1ncir08:not(#\#):not(#\#):not(#\#):not(#\#){max-width:200px}.xw5ewwj:not(#\#):not(#\#):not(#\#):not(#\#){max-width:300px}.x1x67gh:not(#\#):not(#\#):not(#\#):not(#\#){max-width:32px}.xxc7z9f:not(#\#):not(#\#):not(#\#):not(#\#){max-width:360px}.x1j9u4d2:not(#\#):not(#\#):not(#\#):not(#\#){max-width:400px}.x17fpy1y:not(#\#):not(#\#):not(#\#):not(#\#){max-width:480px}.xrlsmeg:not(#\#):not(#\#):not(#\#):not(#\#){max-width:600px}.x11gisft:not(#\#):not(#\#):not(#\#):not(#\#){max-width:640px}.x1ap80js:not(#\#):not(#\#):not(#\#):not(#\#){max-width:800px}.xq8v1hd:not(#\#):not(#\#):not(#\#):not(#\#){max-width:90%}.xl6temz:not(#\#):not(#\#):not(#\#):not(#\#){max-width:max(80%,280px)}.x1m1aaou:not(#\#):not(#\#):not(#\#):not(#\#){max-width:min(960px,calc(100dvw - var(--spacing-4)))}.x1x1rfll:not(#\#):not(#\#):not(#\#):not(#\#){max-width:none}.xjl2t3p:not(#\#):not(#\#):not(#\#):not(#\#){max-width:var(--layout-content-width,none)}.xf68679:not(#\#):not(#\#):not(#\#):not(#\#){max-width:var(--x-maxWidth)}.x2lwn1j:not(#\#):not(#\#):not(#\#):not(#\#){min-height:0}.x1us19tq:not(#\#):not(#\#):not(#\#):not(#\#){min-height:100%}.x1ov3xa9:not(#\#):not(#\#):not(#\#):not(#\#){min-height:100dvh}.xz65tgg:not(#\#):not(#\#):not(#\#):not(#\#){min-height:200px}.xisnujt:not(#\#):not(#\#):not(#\#):not(#\#){min-height:20px}.xe0957l:not(#\#):not(#\#):not(#\#):not(#\#){min-height:22px}.xjwf9q1:not(#\#):not(#\#):not(#\#):not(#\#){min-height:24px}.xe0p6wg:not(#\#):not(#\#):not(#\#):not(#\#){min-height:28px}.x21xpn4:not(#\#):not(#\#):not(#\#):not(#\#){min-height:32px}.x1xf4nls:not(#\#):not(#\#):not(#\#):not(#\#){min-height:var(--size-element-lg)}.x1uogy3y:not(#\#):not(#\#):not(#\#):not(#\#){min-height:var(--size-element-md)}.x1gdqauq:not(#\#):not(#\#):not(#\#):not(#\#){min-height:var(--size-element-sm)}.x175cymr:not(#\#):not(#\#):not(#\#):not(#\#){min-height:var(--spacing-2)}.ximsjs8:not(#\#):not(#\#):not(#\#):not(#\#){min-height:var(--spacing-7)}.xkoleio:not(#\#):not(#\#):not(#\#):not(#\#){min-height:var(--spacing-8)}.x82snj4:not(#\#):not(#\#):not(#\#):not(#\#){min-height:var(--x-minHeight)}.x1dg37ty:not(#\#):not(#\#):not(#\#):not(#\#){min-height:44px}.xeuugli:not(#\#):not(#\#):not(#\#):not(#\#){min-width:0}.x1i9suas:not(#\#):not(#\#):not(#\#):not(#\#){min-width:120px}.x1d77m7x:not(#\#):not(#\#):not(#\#):not(#\#){min-width:140px}.x5w4yej:not(#\#):not(#\#):not(#\#):not(#\#){min-width:160px}.xfb3i0g:not(#\#):not(#\#):not(#\#):not(#\#){min-width:180px}.xgomdpo:not(#\#):not(#\#):not(#\#):not(#\#){min-width:1rem}.x1jzhcrs:not(#\#):not(#\#):not(#\#):not(#\#){min-width:200px}.xt4ypqs:not(#\#):not(#\#):not(#\#):not(#\#){min-width:20px}.x12rczxh:not(#\#):not(#\#):not(#\#):not(#\#){min-width:220px}.xlm99nl:not(#\#):not(#\#):not(#\#):not(#\#){min-width:240px}.x1u2d2a2:not(#\#):not(#\#):not(#\#):not(#\#){min-width:280px}.x1fns5xo:not(#\#):not(#\#):not(#\#):not(#\#){min-width:40px}.x900493:not(#\#):not(#\#):not(#\#):not(#\#){min-width:48px}.x13n9wmd:not(#\#):not(#\#):not(#\#):not(#\#){min-width:4ch}.xfvyar9:not(#\#):not(#\#):not(#\#):not(#\#){min-width:60px}.xrzjruh:not(#\#):not(#\#):not(#\#):not(#\#){min-width:anchor-size(width)}.x8wyhu6:not(#\#):not(#\#):not(#\#):not(#\#){min-width:calc(anchor-size(width) + 16px)}.x1pshirs:not(#\#):not(#\#):not(#\#):not(#\#){min-width:fit-content}.x15mybvi:not(#\#):not(#\#):not(#\#):not(#\#){min-width:min(400px,calc(100% - var(--spacing-4)))}.x17ydmr0:not(#\#):not(#\#):not(#\#):not(#\#){min-width:var(--size-element-md)}.x1nkkqge:not(#\#):not(#\#):not(#\#):not(#\#){min-width:var(--size-element-sm)}.x18ki04u:not(#\#):not(#\#):not(#\#):not(#\#){min-width:var(--spacing-2)}.x16asifk:not(#\#):not(#\#):not(#\#):not(#\#){min-width:var(--spacing-5)}.xy8csz5:not(#\#):not(#\#):not(#\#):not(#\#){min-width:var(--spacing-7)}.xkj4a21:not(#\#):not(#\#):not(#\#):not(#\#){min-width:var(--x-minWidth)}.x1tutbut:not(#\#):not(#\#):not(#\#):not(#\#){min-width:44px}.xw2csxc:not(#\#):not(#\#):not(#\#):not(#\#){overflow-x:auto}.x6ikm8r:not(#\#):not(#\#):not(#\#):not(#\#){overflow-x:hidden}.x1odjw0f:not(#\#):not(#\#):not(#\#):not(#\#){overflow-y:auto}.x10wlt62:not(#\#):not(#\#):not(#\#):not(#\#){overflow-y:hidden}.x7p5m3t:not(#\#):not(#\#):not(#\#):not(#\#){overscroll-behavior-x:contain}.x18d9i69:not(#\#):not(#\#):not(#\#):not(#\#){padding-bottom:0}.x1j85h84:not(#\#):not(#\#):not(#\#):not(#\#){padding-bottom:1px}.x1wkw6tp:not(#\#):not(#\#):not(#\#):not(#\#){padding-bottom:calc(env(safe-area-inset-bottom,0px) + 48px)}.x9jihrk:not(#\#):not(#\#):not(#\#):not(#\#){padding-bottom:calc(var(--_chat-composer-padding) + var(--_chat-composer-radius))}.xbv1mwh:not(#\#):not(#\#):not(#\#):not(#\#){padding-bottom:calc(var(--container-padding-block-end) - var(--border-width))}.xxbfulo:not(#\#):not(#\#):not(#\#):not(#\#){padding-bottom:calc(var(--spacing-3) + var(--radius-chat))}.xwhchk8:not(#\#):not(#\#):not(#\#):not(#\#){padding-bottom:max(var(--_tab-strip-bleed),calc(-1 * var(--_tab-indicator-bottom,-1px)))}.xew4nw4:not(#\#):not(#\#):not(#\#):not(#\#){padding-bottom:max(var(--spacing-4),env(safe-area-inset-bottom,0px))}.xvpcij2:not(#\#):not(#\#):not(#\#):not(#\#){padding-bottom:var(--_chat-composer-padding)}.x1rgxemn:not(#\#):not(#\#):not(#\#):not(#\#){padding-bottom:var(--astryx-dialog-padding-block-end,var(--astryx-dialog-padding,max(var(--spacing-4),env(safe-area-inset-bottom,0px))))}.x3jnfsm:not(#\#):not(#\#):not(#\#):not(#\#){padding-bottom:var(--astryx-number-input-padding-block-end,var(--astryx-number-input-padding,var(--spacing-1)))}.xc1wllq:not(#\#):not(#\#):not(#\#):not(#\#){padding-bottom:var(--container-padding-block-end)}.xg476vw:not(#\#):not(#\#):not(#\#):not(#\#){padding-bottom:var(--layout-padding-inner-y,var(--spacing-4))}.xon7vh3:not(#\#):not(#\#):not(#\#):not(#\#){padding-bottom:var(--layout-padding-outer-y,var(--spacing-4))}.xij103a:not(#\#):not(#\#):not(#\#):not(#\#){padding-bottom:var(--spacing-0-5)}.x1l20ajd:not(#\#):not(#\#):not(#\#):not(#\#){padding-bottom:var(--spacing-0)}.x1opdxmq:not(#\#):not(#\#):not(#\#):not(#\#){padding-bottom:var(--spacing-1-5)}.xy143xn:not(#\#):not(#\#):not(#\#):not(#\#){padding-bottom:var(--spacing-1)}.x2izi54:not(#\#):not(#\#):not(#\#):not(#\#){padding-bottom:var(--spacing-10)}.x1wesfrj:not(#\#):not(#\#):not(#\#):not(#\#){padding-bottom:var(--spacing-2)}.xvmdzux:not(#\#):not(#\#):not(#\#):not(#\#){padding-bottom:var(--spacing-3)}.x1awphl8:not(#\#):not(#\#):not(#\#):not(#\#){padding-bottom:var(--spacing-4)}.x1hk98q:not(#\#):not(#\#):not(#\#):not(#\#){padding-bottom:var(--spacing-5)}.xjpqqx5:not(#\#):not(#\#):not(#\#):not(#\#){padding-bottom:var(--spacing-6)}.xekm6fs:not(#\#):not(#\#):not(#\#):not(#\#){padding-bottom:var(--spacing-7)}.x2oz4g1:not(#\#):not(#\#):not(#\#):not(#\#){padding-bottom:var(--spacing-8)}.xexx8yu:not(#\#):not(#\#):not(#\#):not(#\#){padding-top:0}.x1htvmrp:not(#\#):not(#\#):not(#\#):not(#\#){padding-top:calc(var(--_chat-composer-padding) + var(--_chat-composer-radius))}.x1enrzb7:not(#\#):not(#\#):not(#\#):not(#\#){padding-top:calc(var(--border-width) + var(--spacing-1))}.x1nex4ik:not(#\#):not(#\#):not(#\#):not(#\#){padding-top:calc(var(--container-padding-block-start) - var(--border-width))}.x1ak3mig:not(#\#):not(#\#):not(#\#):not(#\#){padding-top:calc(var(--spacing-1-5) + var(--spacing-2))}.x1vjezoa:not(#\#):not(#\#):not(#\#):not(#\#){padding-top:max(var(--spacing-4),env(safe-area-inset-top,0px))}.x2gtn7z:not(#\#):not(#\#):not(#\#):not(#\#){padding-top:var(--_chat-composer-padding)}.xlr2r7p:not(#\#):not(#\#):not(#\#):not(#\#){padding-top:var(--_tab-strip-bleed)}.x15ld1ci:not(#\#):not(#\#):not(#\#):not(#\#){padding-top:var(--astryx-dialog-padding-block-start,var(--astryx-dialog-padding,max(var(--spacing-4),env(safe-area-inset-top,0px))))}.x4kswst:not(#\#):not(#\#):not(#\#):not(#\#){padding-top:var(--astryx-number-input-padding-block-start,var(--astryx-number-input-padding,var(--spacing-1)))}.x14m0hsi:not(#\#):not(#\#):not(#\#):not(#\#){padding-top:var(--container-padding-block-start)}.xqty4a:not(#\#):not(#\#):not(#\#):not(#\#){padding-top:var(--layout-padding-inner-y,var(--spacing-4))}.x81pis9:not(#\#):not(#\#):not(#\#):not(#\#){padding-top:var(--layout-padding-outer-y,var(--spacing-4))}.xbx876j:not(#\#):not(#\#):not(#\#):not(#\#){padding-top:var(--spacing-0-5)}.x1ydh6w3:not(#\#):not(#\#):not(#\#):not(#\#){padding-top:var(--spacing-0)}.x1kwdpsa:not(#\#):not(#\#):not(#\#):not(#\#){padding-top:var(--spacing-1-5)}.xfsso4q:not(#\#):not(#\#):not(#\#):not(#\#){padding-top:var(--spacing-1)}.xk6660b:not(#\#):not(#\#):not(#\#):not(#\#){padding-top:var(--spacing-10)}.x1xye8es:not(#\#):not(#\#):not(#\#):not(#\#){padding-top:var(--spacing-2)}.x1vlblms:not(#\#):not(#\#):not(#\#):not(#\#){padding-top:var(--spacing-3)}.x1oa1p4a:not(#\#):not(#\#):not(#\#):not(#\#){padding-top:var(--spacing-4)}.xx7rijo:not(#\#):not(#\#):not(#\#):not(#\#){padding-top:var(--spacing-5)}.x1adxfkp:not(#\#):not(#\#):not(#\#):not(#\#){padding-top:var(--spacing-6)}.xoxd1wu:not(#\#):not(#\#):not(#\#):not(#\#){padding-top:var(--spacing-8)}.x13vifvy:not(#\#):not(#\#):not(#\#):not(#\#){top:0}.xuivejd:not(#\#):not(#\#):not(#\#):not(#\#){top:14px}.xs7f9wi:not(#\#):not(#\#):not(#\#):not(#\#){top:2px}.xwa60dl:not(#\#):not(#\#):not(#\#):not(#\#){top:50%}.x1ltwjim:not(#\#):not(#\#):not(#\#):not(#\#){top:anchor(--outline-active top,0px)}.x1nzz77m:not(#\#):not(#\#):not(#\#):not(#\#){top:calc((var(--size-element-md) - 20px) / 2 - 1px)}.xeqxqpg:not(#\#):not(#\#):not(#\#):not(#\#){top:calc((var(--size-element-sm) - 20px) / 2 - 1px)}.x7rbydg:not(#\#):not(#\#):not(#\#):not(#\#){top:calc(50% - 14px)}.x1oysc8t:not(#\#):not(#\#):not(#\#):not(#\#){top:calc(var(--size-element-lg) / 2 - 1px)}.xkmsrut:not(#\#):not(#\#):not(#\#):not(#\#){top:calc(var(--size-element-md) / 2 - 1px)}.x1968x6z:not(#\#):not(#\#):not(#\#):not(#\#){top:calc(var(--size-element-sm) / 2 - 1px)}.xht72ud:not(#\#):not(#\#):not(#\#):not(#\#){top:var(--_app-shell-header-height,0px)}.x8d4r5l:not(#\#):not(#\#):not(#\#):not(#\#){top:var(--spacing-1)}.xctzyg:not(#\#):not(#\#):not(#\#):not(#\#){top:var(--spacing-2)}.xyx6v2t:not(#\#):not(#\#):not(#\#):not(#\#){top:var(--spacing-3)}.xjbys53:not(#\#):not(#\#):not(#\#):not(#\#){top:var(--x-top)}.x1jw3ynk:not(#\#):not(#\#):not(#\#):not(#\#){width:.75rem}.xnalus7:not(#\#):not(#\#):not(#\#):not(#\#){width:0}.xwqq7k2:not(#\#):not(#\#):not(#\#):not(#\#){width:1.25rem}.xp8d6y2:not(#\#):not(#\#):not(#\#):not(#\#){width:1.5rem}.xh8yej3:not(#\#):not(#\#):not(#\#):not(#\#){width:100%}.x1o6l61p:not(#\#):not(#\#):not(#\#):not(#\#){width:100dvw}.xn9wirt:not(#\#):not(#\#):not(#\#):not(#\#){width:100vw}.x1fsd2vl:not(#\#):not(#\#):not(#\#):not(#\#){width:10px}.xsmyaan:not(#\#):not(#\#):not(#\#):not(#\#){width:12px}.x6jxa94:not(#\#):not(#\#):not(#\#):not(#\#){width:14px}.x1kky2od:not(#\#):not(#\#):not(#\#):not(#\#){width:16px}.xzjbwwf:not(#\#):not(#\#):not(#\#):not(#\#){width:180px}.x1xp8n7a:not(#\#):not(#\#):not(#\#):not(#\#){width:18px}.x15vhz18:not(#\#):not(#\#):not(#\#):not(#\#){width:1em}.x1i1rx1s:not(#\#):not(#\#):not(#\#):not(#\#){width:1px}.xcdlrvm:not(#\#):not(#\#):not(#\#):not(#\#){width:1rem}.x1oysuqx:not(#\#):not(#\#):not(#\#):not(#\#){width:200px}.xw4jnvo:not(#\#):not(#\#):not(#\#):not(#\#){width:20px}.xafpxmx:not(#\#):not(#\#):not(#\#):not(#\#){width:240px}.xvy4d1p:not(#\#):not(#\#):not(#\#):not(#\#){width:24px}.x1hfn5x7:not(#\#):not(#\#):not(#\#):not(#\#){width:260px}.xfo62xy:not(#\#):not(#\#):not(#\#):not(#\#){width:2px}.x1td3qas:not(#\#):not(#\#):not(#\#):not(#\#){width:32px}.x1g8rjiy:not(#\#):not(#\#):not(#\#):not(#\#){width:3px}.xz84dc7:not(#\#):not(#\#):not(#\#):not(#\#){width:40%}.x1l2rt3b:not(#\#):not(#\#):not(#\#):not(#\#){width:400px}.x100vrsf:not(#\#):not(#\#):not(#\#):not(#\#){width:40px}.x51ohtg:not(#\#):not(#\#):not(#\#):not(#\#){width:4px}.x1fu8urw:not(#\#):not(#\#):not(#\#):not(#\#){width:64px}.x1v4s8kt:not(#\#):not(#\#):not(#\#):not(#\#){width:6px}.x1xc55vz:not(#\#):not(#\#):not(#\#):not(#\#){width:8px}.x1xgy17j:not(#\#):not(#\#):not(#\#):not(#\#){width:anchor-size(width)}.x14atkfc:not(#\#):not(#\#):not(#\#):not(#\#){width:auto}.xx6qvi6:not(#\#):not(#\#):not(#\#):not(#\#){width:calc(100% + var(--container-padding-inline-start,0px) + var(--container-padding-inline-end,0px))}.x1y2t9nm:not(#\#):not(#\#):not(#\#):not(#\#){width:36px}.xeq5yr9:not(#\#):not(#\#):not(#\#):not(#\#){width:fit-content}.x63cpjl:not(#\#):not(#\#):not(#\#):not(#\#){width:var(--_progressbar-mark-width,2px)}.xjk4fl7:not(#\#):not(#\#):not(#\#):not(#\#){width:var(--border-width)}.xkhob8h:not(#\#):not(#\#):not(#\#):not(#\#){width:var(--resize-handle-hit-area,16px)}.x1m747yf:not(#\#):not(#\#):not(#\#):not(#\#){width:var(--size-element-lg)}.x805d0l:not(#\#):not(#\#):not(#\#):not(#\#){width:var(--size-element-md)}.x1fvqzum:not(#\#):not(#\#):not(#\#):not(#\#){width:var(--size-element-sm)}.x1wu31ai:not(#\#):not(#\#):not(#\#):not(#\#){width:var(--spacing-1-5)}.xx9zwd3:not(#\#):not(#\#):not(#\#):not(#\#){width:var(--spacing-1)}.xhgvbfk:not(#\#):not(#\#):not(#\#):not(#\#){width:var(--spacing-12)}.x1f0dxl5:not(#\#):not(#\#):not(#\#):not(#\#){width:var(--spacing-2)}.x1ad1g3v:not(#\#):not(#\#):not(#\#):not(#\#){width:var(--spacing-3)}.x12xnipv:not(#\#):not(#\#):not(#\#):not(#\#){width:var(--spacing-4)}.xfyiiit:not(#\#):not(#\#):not(#\#):not(#\#){width:var(--spacing-5)}.x1mtvzj0:not(#\#):not(#\#):not(#\#):not(#\#){width:var(--spacing-6)}.xgc8j7m:not(#\#):not(#\#):not(#\#):not(#\#){width:var(--spacing-8)}.xta46cu:not(#\#):not(#\#):not(#\#):not(#\#){width:var(--text-large-size)}.x5livx5:not(#\#):not(#\#):not(#\#):not(#\#){width:var(--text-supporting-size)}.x1uyokj7:not(#\#):not(#\#):not(#\#):not(#\#){width:var(--x-inlineSize)}.x5lhr3w:not(#\#):not(#\#):not(#\#):not(#\#){width:var(--x-width)}.x1wp2rvj.x1wp2rvj:where(.x139im0d:last-child *):not(#\#):not(#\#):not(#\#):not(#\#){border-bottom-width:0}.x132qfvm:focus-within:not(#\#):not(#\#):not(#\#):not(#\#){height:auto}.xsg11nj.xsg11nj:where(.x-default-marker:has(>.astryx-layout-footer:not([data-divider])) *):not(#\#):not(#\#):not(#\#):not(#\#){padding-bottom:0}.x1ioh5az.x1ioh5az:where(.x-default-marker:has(>.astryx-layout-header:not([data-divider])) *):not(#\#):not(#\#):not(#\#):not(#\#){padding-top:0}.x1kw28su:focus-within:not(#\#):not(#\#):not(#\#):not(#\#){padding-top:var(--spacing-1)}.x10okhzq:focus-within:not(#\#):not(#\#):not(#\#):not(#\#){width:auto}.x5du68j:has(~* [data-chat-name]):not(#\#):not(#\#):not(#\#):not(#\#){margin-top:var(--spacing-5)}.x1d9v4yf:first-child:not(#\#):not(#\#):not(#\#):not(#\#){border-top-style:none}.x1g31smg:first-child:not(#\#):not(#\#):not(#\#):not(#\#){border-top-width:0}.xkibk3:first-child:not(#\#):not(#\#):not(#\#):not(#\#){margin-top:calc(-1 * var(--container-padding-block-start,0px))}.x1vjq31q:first-child:not(#\#):not(#\#):not(#\#):not(#\#){padding-bottom:0}.xlayyun:last-child:not(#\#):not(#\#):not(#\#):not(#\#){margin-bottom:calc(-1 * var(--container-padding-block-end,0px))}.xup0pd7:last-child:not(#\#):not(#\#):not(#\#):not(#\#){padding-bottom:0}.x15cytp8:focus:not(#\#):not(#\#):not(#\#):not(#\#){height:auto}.x1rw3289:focus:not(#\#):not(#\#):not(#\#):not(#\#){top:var(--spacing-2)}.x1jqxupm:focus:not(#\#):not(#\#):not(#\#):not(#\#){width:auto}@media (pointer:coarse){.x80b3aj.x80b3aj:not(#\#):not(#\#):not(#\#):not(#\#){min-height:24px}.x17aqpur.x17aqpur:not(#\#):not(#\#):not(#\#):not(#\#),.xygd9yz.xygd9yz:not(#\#):not(#\#):not(#\#):not(#\#){min-height:44px}.xkagaj0.xkagaj0:not(#\#):not(#\#):not(#\#):not(#\#){min-width:24px}.x1xrq5m.x1xrq5m:not(#\#):not(#\#):not(#\#):not(#\#),.xngvp7v.xngvp7v:not(#\#):not(#\#):not(#\#):not(#\#){min-width:44px}.xijlfn0.xijlfn0:not(#\#):not(#\#):not(#\#):not(#\#){top:50%}}@starting-style{.x1sopeo2.x1sopeo2:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#){grid-template-rows:0fr}}.x1xsm0q9:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{inset:-14px}.xarstr8:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after,.xxx281p:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{inset:0}.xht581f:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{inset:var(--_input-clear-hit-inset)}.xeu5z55:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{inset:var(--_thumbnail-hit-inset)}@starting-style{.x4itv7f.x4itv7f:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#){opacity:0}.x6mt36l.x6mt36l:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#){transform:translate(-100%)}.x1yqmsfc.x1yqmsfc:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#){transform:translate(100%)}.xub2912.xub2912:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#){transform:translateY(-100%)}.x12p7p72.x12p7p72:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#){transform:translateY(-4px)}.xhbqy3z.xhbqy3z:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#){transform:translateY(100%)}.x6s140c.x6s140c:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#){transform:translateY(var(--_toast-slide-y,var(--spacing-2)))}.x1lymnkk.x1lymnkk:is([dir=rtl] *):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#){transform:translate(-100%)}.x14gflnl.x14gflnl:is([dir=rtl] *):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#){transform:translate(100%)}}.x1k48kgn:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after,.xxyica1:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{border-radius:inherit}.x17gn2l9:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{grid-column:1}.xd54j2p:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{inset-block:0}.xpsyfx0:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#)::-webkit-date-and-time-value{margin-block:0}.x1qqcexc:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#)::-webkit-date-and-time-value{margin-inline:0}.x1x4c3m6:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#)::-webkit-date-and-time-value{padding-block:0}.xtbxizx:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#)::-webkit-datetime-edit{padding-block:0}@starting-style{.x5rzir7.x5rzir7:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#){padding-bottom:0}}.xkqr7wz:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#)::-webkit-date-and-time-value{padding-inline:0}.xslb4at:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#)::-webkit-datetime-edit{padding-inline:0}.xvtkv6q:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{transition:background-color .15s,width .15s}.x17s1k9h:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{transition:opacity .15s}.x19ds33d:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{align-self:start}.x1abwkk1:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#)::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.xyhc2n1:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{background-color:#0000}.x1tzqye7:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{background-color:var(--color-accent)}.xnixb3f:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#)::backdrop{background-color:var(--color-overlay)}.x1i3206j:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{background-color:var(--indicator-color,transparent)}.x1uvfo0n:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{background-color:var(--table-row-overlay,transparent)}.xccdyz0:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{background-image:linear-gradient(to left,var(--color-shadow),transparent)}.x1ppu1g5:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{background-image:linear-gradient(to right,var(--color-shadow),transparent)}.xnnzo76:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{border-inline-start-color:var(--color-border)}.xvsnedh:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{border-inline-start-style:solid}.x1p96cux:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{border-inline-start-width:var(--border-width)}.xtkarl4:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{color:var(--color-syntax-punctuation)}.xnf3u0:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#)::placeholder{color:var(--color-text-disabled)}.xeyghm5:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#)::placeholder{color:var(--color-text-secondary)}.x1cpjm7i:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before,.x1s928wv:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{content:""}.x46gnpd:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{content:attr(data-line)}.xc2ndz5:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{content:counter(astryx-list) "."}.xh3pasq:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{content:var(--_input-clear-hit-content)}.xhkezso:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{display:block}.xolhmmf:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#)::-webkit-calendar-picker-indicator{display:none}.x3nzp0f:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{font-family:var(--font-family-code)}.xekda60:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{inset-inline-end:-2px}.x1unh1gc:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{inset-inline-end:0}.xvw6utc:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{inset-inline-start:-2px}.x1iygr5g:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{inset-inline-start:0}.x1km86hw:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{inset-inline-start:calc(var(--spacing-4) + var(--_codeblock-gutter-width) + var(--spacing-3))}.x15bqym3:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#)::-webkit-datetime-edit{line-height:inherit}.x1f74mqm:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#)::-webkit-date-and-time-value{line-height:inherit}.xph5o2a:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#)::backdrop{opacity:0}.xb3n6bw:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#)::backdrop{opacity:1}.xni466t:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#)::backdrop{opacity:var(--_sheet-scrim-opacity,1)}.x1c2idit:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{opacity:var(--table-sticky-shadow-end,0)}.x1sggmfs:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{opacity:var(--table-sticky-shadow-start,0)}.x2q1x1w:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after,.xkk1bqk:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{pointer-events:none}.x1hmns74:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before,.x1j6awrg:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{position:absolute}.x1wnbjh8:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{text-align:end}.x9rmy9g:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#)::-webkit-date-and-time-value{text-align:start}.x1fgylwi:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{transform-origin:top}.xgu12d:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{transform-origin:0}.x1e8txe:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{transform:scaleX(0)}.xp1ps4y:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{transform:scaleX(1)}.xb5f74o:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{transform:scaleY(0)}.xd30wvy:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{transform:scaleY(1)}.xvs0bi2:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{transform:translate(-100%)}.x1qyefdi:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{transform:translate(100%)}.x142juwg:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#)::backdrop{transition-behavior:allow-discrete}.xizoc3:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{transition-delay:var(--x-owu7oy)}.x1y1nw7a:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before,.x97pup0:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{transition-duration:var(--duration-fast)}.xft5bk6:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#)::backdrop,.xuhr57t:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{transition-duration:var(--duration-medium)}.x196sc62:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{transition-duration:var(--x-1dd27dc)}.x1ywzrc5:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after,.xxcwgru:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{transition-property:background-color}.xc0dz0a:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#)::backdrop{transition-property:opacity,display}.x167zut7:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#)::backdrop{transition-property:opacity}.x1hu8v7x:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{transition-property:transform}.x1cz9k3x:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#)::backdrop,.xyt8op7:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{transition-timing-function:linear}.x15h3t91:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#)::backdrop,.x1dlmc9c:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after,.xa5v58t:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{transition-timing-function:var(--ease-standard)}.x1rbqspl:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{-webkit-user-select:none;user-select:none}.xy5mcqj:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{z-index:-1}.xk7vujl:is([dir=rtl] *):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{background-image:linear-gradient(to left,var(--color-shadow),transparent)}.xlptwl5:is([dir=rtl] *):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{background-image:linear-gradient(to right,var(--color-shadow),transparent)}.xdq8fwl:is([dir=rtl] *):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{transform-origin:100%}.x1c108yo:is([dir=rtl] *):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{transform:translate(-100%)}.x12ayhd5:is([dir=rtl] *):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{transform:translate(100%)}.x1k7wiig:active:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{background-color:var(--color-overlay-pressed)}@media (prefers-reduced-motion:reduce){.xhhm9v0.xhhm9v0:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{transition-delay:0s}.x1viac0w.x1viac0w:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#)::backdrop{transition-duration:10ms}.x13sdc92.x13sdc92:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{transition-duration:0s}}.xe80sof:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{bottom:-2px}.x1xrz1ek:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{bottom:0}.xu6fald:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{height:var(--_sheet-keyboard-inset,0px)}.xec4aax:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#)::-webkit-date-and-time-value{min-height:0}.x51xajf:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{top:-2px}.x1m1drc7:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{top:0}.xkj6t0a:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{width:0}.xzkji8o:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{width:6px}.xi8c0p9:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{width:var(--indicator-width,1px)}@starting-style{.xxiuuzi.xxiuuzi:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#)::backdrop{opacity:0}}:root{--color-data-categorical-blue:#0171e3;--color-data-categorical-orange:#eb6e00;--color-data-categorical-purple:#6b1efd;--color-data-categorical-green:#0b991f;--color-data-categorical-pink:#f351c0;--color-data-categorical-cyan:#0171a4;--color-data-categorical-red:#f5394f;--color-data-categorical-teal:#08a3a3;--color-data-categorical-brown:#965e03;--color-data-categorical-indigo:#6f8aff;--color-data-neutral:var(--lightningcss-light,#8494a3)var(--lightningcss-dark,#8c939b);--color-data-blue-5:#02165e;--color-data-blue-4:#004cbc;--color-data-blue-3:#2694fe;--color-data-blue-2:#78beff;--color-data-blue-1:#dbecff;--color-data-shamrock-5:#0b603d;--color-data-shamrock-4:#138546;--color-data-shamrock-3:#24bb5e;--color-data-shamrock-2:#8ef7aa;--color-data-shamrock-1:#d6fee4;--color-data-orange-5:#a13f04;--color-data-orange-4:#d66100;--color-data-orange-3:#fd9537;--color-data-orange-2:#fdb876;--color-data-orange-1:#ffe6cf;--color-data-pink-5:#8e1073;--color-data-pink-4:#d123a1;--color-data-pink-3:#f989d3;--color-data-pink-2:#feade3;--color-data-pink-1:#fce3f4;--color-data-purple-5:#3e0697;--color-data-purple-4:#6b1efd;--color-data-purple-3:#9081ff;--color-data-purple-2:#b3b0fe;--color-data-purple-1:#e8e8fb;--color-data-red-5:#9d0519;--color-data-red-4:#d31130;--color-data-red-3:#fb7d87;--color-data-red-2:#ffb2b8;--color-data-red-1:#fee4e6;--color-data-teal-5:#08767d;--color-data-teal-4:#0c9293;--color-data-teal-3:#0db7af;--color-data-teal-2:#6ce6d8;--color-data-teal-1:#d7fcf8;--color-data-yellow-5:#8a5001;--color-data-yellow-4:#d69804;--color-data-yellow-3:#fbce03;--color-data-yellow-2:#fcec85;--color-data-yellow-1:#fdf6ba;--color-data-gray-5:var(--lightningcss-light,#25363f)var(--lightningcss-dark,#333338);--color-data-gray-4:var(--lightningcss-light,#5d6c7b)var(--lightningcss-dark,#666a72);--color-data-gray-3:var(--lightningcss-light,#afb9c4)var(--lightningcss-dark,#b2b8be);--color-data-gray-2:var(--lightningcss-light,#ccd3db)var(--lightningcss-dark,#d0d3d6);--color-data-gray-1:var(--lightningcss-light,#f1f4f7)var(--lightningcss-dark,#f2f4f6)}}@layer astryx-theme{:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}html[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@scope([data-astryx-theme=neutral]) to ([data-astryx-theme]){:scope{--font-size-4xs:.375rem;--font-size-3xs:.4375rem;--font-size-2xs:.5rem;--font-size-xs:.625rem;--font-size-sm:.75rem;--font-size-base:.875rem;--font-size-lg:1.0625rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.8125rem;--font-size-4xl:2.1875rem;--font-size-5xl:2.625rem;--text-heading-1-size:var(--font-size-2xl);--text-heading-1-weight:var(--font-weight-semibold);--text-heading-1-leading:1.3333;--text-heading-2-size:var(--font-size-xl);--text-heading-2-weight:var(--font-weight-semibold);--text-heading-2-leading:1.4;--text-heading-3-size:var(--font-size-lg);--text-heading-3-weight:var(--font-weight-bold);--text-heading-3-leading:1.4118;--text-heading-4-size:var(--font-size-base);--text-heading-4-weight:var(--font-weight-bold);--text-heading-4-leading:1.4286;--text-heading-5-size:var(--font-size-sm);--text-heading-5-weight:var(--font-weight-semibold);--text-heading-5-leading:1.6667;--text-heading-6-size:var(--font-size-xs);--text-heading-6-weight:var(--font-weight-semibold);--text-heading-6-leading:1.6;--text-body-size:var(--font-size-base);--text-body-weight:var(--font-weight-normal);--text-body-leading:1.4286;--text-large-size:var(--font-size-lg);--text-large-weight:var(--font-weight-semibold);--text-large-leading:1.4118;--text-label-size:var(--font-size-base);--text-label-weight:var(--font-weight-medium);--text-label-leading:1.4286;--text-code-size:var(--font-size-base);--text-code-weight:var(--font-weight-normal);--text-code-leading:1.4286;--text-supporting-size:var(--font-size-sm);--text-supporting-weight:var(--font-weight-normal);--text-supporting-leading:1.6667;--text-display-1-size:var(--font-size-5xl);--text-display-1-weight:var(--font-weight-normal);--text-display-1-leading:1.2381;--text-display-2-size:var(--font-size-4xl);--text-display-2-weight:var(--font-weight-normal);--text-display-2-leading:1.2571;--text-display-3-size:var(--font-size-3xl);--text-display-3-weight:var(--font-weight-normal);--text-display-3-leading:1.3793;--duration-fast-min:95ms;--duration-fast:.125s;--duration-fast-max:.165s;--duration-medium-min:.225s;--duration-medium:.3s;--duration-medium-max:.4s;--duration-slow-min:.525s;--duration-slow:.7s;--duration-slow-max:.935s;--font-family-body:Figtree, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-family-heading:Figtree, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-family-code:ui-monospace, "SF Mono", Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-syntax-keyword:var(--lightningcss-light,#700084)var(--lightningcss-dark,#efa8ff);--color-syntax-string:var(--lightningcss-light,#005600)var(--lightningcss-dark,#a6d2a2);--color-syntax-comment:var(--lightningcss-light,#737373)var(--lightningcss-dark,#a3a3a3);--color-syntax-number:var(--lightningcss-light,#6e3500)var(--lightningcss-dark,#ffb37f);--color-syntax-function:var(--lightningcss-light,#00458c)var(--lightningcss-dark,#a0caff);--color-syntax-type:var(--lightningcss-light,#700084)var(--lightningcss-dark,#efa8ff);--color-syntax-variable:var(--lightningcss-light,#171717)var(--lightningcss-dark,#e5e5e5);--color-syntax-operator:var(--lightningcss-light,#737373)var(--lightningcss-dark,#a3a3a3);--color-syntax-constant:var(--lightningcss-light,#6e3500)var(--lightningcss-dark,#ffb37f);--color-syntax-tag:var(--lightningcss-light,#89001a)var(--lightningcss-dark,#ffaeaa);--color-syntax-attribute:var(--lightningcss-light,#584400)var(--lightningcss-dark,#eec12f);--color-syntax-property:var(--lightningcss-light,#005348)var(--lightningcss-dark,#83dac9);--color-syntax-punctuation:var(--lightningcss-light,#6e6e6e)var(--lightningcss-dark,#a0a0a0);--color-syntax-background:var(--lightningcss-light,#fafafa)var(--lightningcss-dark,#0a0a0a);--color-background-surface:var(--lightningcss-light,#fff)var(--lightningcss-dark,#262626);--color-background-body:var(--lightningcss-light,#f1f1f1)var(--lightningcss-dark,#1b1b1b);--color-background-card:var(--lightningcss-light,#fff)var(--lightningcss-dark,#1b1b1b);--color-background-popover:var(--lightningcss-light,#fff)var(--lightningcss-dark,#1b1b1b);--color-background-muted:var(--lightningcss-light,#f1f1f1)var(--lightningcss-dark,#1b1b1b);--color-accent:var(--lightningcss-light,#262626)var(--lightningcss-dark,#ebebeb);--color-accent-muted:var(--lightningcss-light,#f1f1f1)var(--lightningcss-dark,#262626);--color-neutral:var(--lightningcss-light,#0000000f)var(--lightningcss-dark,#ffffff1a);--color-overlay:var(--lightningcss-light,#00000080)var(--lightningcss-dark,#000c);--color-overlay-hover:var(--lightningcss-light,#0000000d)var(--lightningcss-dark,#ffffff0d);--color-overlay-pressed:var(--lightningcss-light,#0000001a)var(--lightningcss-dark,#ffffff1a);--color-text-primary:var(--lightningcss-light,#171717)var(--lightningcss-dark,#fafafa);--color-text-secondary:var(--lightningcss-light,#525252)var(--lightningcss-dark,#a3a3a3);--color-text-disabled:var(--lightningcss-light,#a3a3a3)var(--lightningcss-dark,#525252);--color-text-accent:var(--lightningcss-light,#262626)var(--lightningcss-dark,#ebebeb);--color-on-dark:#fff;--color-on-light:#171717;--color-on-accent:var(--lightningcss-light,#fff)var(--lightningcss-dark,#171717);--color-on-success:var(--lightningcss-light,#fff)var(--lightningcss-dark,#171717);--color-on-error:var(--lightningcss-light,#fff)var(--lightningcss-dark,#171717);--color-on-warning:#171717;--color-icon-accent:var(--lightningcss-light,#262626)var(--lightningcss-dark,#ebebeb);--color-icon-primary:var(--lightningcss-light,#171717)var(--lightningcss-dark,#fafafa);--color-icon-secondary:var(--lightningcss-light,#737373)var(--lightningcss-dark,#a3a3a3);--color-icon-disabled:var(--lightningcss-light,#a3a3a3)var(--lightningcss-dark,#525252);--color-success:var(--lightningcss-light,#007004)var(--lightningcss-dark,#9fe59b);--color-error:var(--lightningcss-light,#a50c25)var(--lightningcss-dark,#ffc6c1);--color-warning:var(--lightningcss-light,#745b00)var(--lightningcss-dark,#fdcf4f);--color-success-muted:var(--lightningcss-light,#c5e5c0)var(--lightningcss-dark,#84c9803d);--color-error-muted:var(--lightningcss-light,#facecb)var(--lightningcss-dark,#ff9e973d);--color-warning-muted:var(--lightningcss-light,#f8da9d)var(--lightningcss-dark,#deb4333d);--color-border:var(--lightningcss-light,#00000014)var(--lightningcss-dark,#ffffff1a);--color-border-emphasized:var(--lightningcss-light,#d4d4d4)var(--lightningcss-dark,#525252);--color-skeleton:var(--lightningcss-light,#ebebeb)var(--lightningcss-dark,#525252);--color-shadow:var(--lightningcss-light,#0000001a)var(--lightningcss-dark,#0000004d);--color-tint-hover:var(--lightningcss-light,#000)var(--lightningcss-dark,#fff);--color-background-red:var(--lightningcss-light,#facecb)var(--lightningcss-dark,#ff9e973d);--color-border-red:var(--lightningcss-light,#e6bab8)var(--lightningcss-dark,#ff6f6c);--color-icon-red:var(--lightningcss-light,#89001a)var(--lightningcss-dark,#ff9e97);--color-text-red:var(--lightningcss-light,#89001a)var(--lightningcss-dark,#ffc6c1);--color-background-orange:var(--lightningcss-light,#fad0b5)var(--lightningcss-dark,#ffa2583d);--color-border-orange:var(--lightningcss-light,#e6bda2)var(--lightningcss-dark,#e2883e);--color-icon-orange:var(--lightningcss-light,#6e3500)var(--lightningcss-dark,#ffa258);--color-text-orange:var(--lightningcss-light,#6e3500)var(--lightningcss-dark,#ffc9a2);--color-background-yellow:var(--lightningcss-light,#f8da9d)var(--lightningcss-dark,#deb4333d);--color-border-yellow:var(--lightningcss-light,#e4c279)var(--lightningcss-dark,#c0990e);--color-icon-yellow:var(--lightningcss-light,#584400)var(--lightningcss-dark,#deb433);--color-text-yellow:var(--lightningcss-light,#584400)var(--lightningcss-dark,#fdcf4f);--color-background-green:var(--lightningcss-light,#c5e5c0)var(--lightningcss-dark,#84c9803d);--color-border-green:var(--lightningcss-light,#b2d1ac)var(--lightningcss-dark,#69ad67);--color-icon-green:var(--lightningcss-light,#0c5700)var(--lightningcss-dark,#84c980);--color-text-green:var(--lightningcss-light,#0c5700)var(--lightningcss-dark,#9fe59b);--color-background-teal:var(--lightningcss-light,#a5e3d6)var(--lightningcss-dark,#7ec6b83d);--color-border-teal:var(--lightningcss-light,#94d6c8)var(--lightningcss-dark,#63ab9d);--color-icon-teal:var(--lightningcss-light,#005348)var(--lightningcss-dark,#7ec6b8);--color-text-teal:var(--lightningcss-light,#005348)var(--lightningcss-dark,#99e2d3);--color-background-cyan:var(--lightningcss-light,#a3e0ef)var(--lightningcss-dark,#83c2d43d);--color-border-cyan:var(--lightningcss-light,#91d3e3)var(--lightningcss-dark,#67a7b8);--color-icon-cyan:var(--lightningcss-light,#00505f)var(--lightningcss-dark,#83c2d4);--color-text-cyan:var(--lightningcss-light,#00505f)var(--lightningcss-dark,#9edef0);--color-background-blue:var(--lightningcss-light,#c4ddfb)var(--lightningcss-dark,#9eb7ff3d);--color-border-blue:var(--lightningcss-light,#b1c9e7)var(--lightningcss-dark,#6d9cfe);--color-icon-blue:var(--lightningcss-light,#00458c)var(--lightningcss-dark,#9eb7ff);--color-text-blue:var(--lightningcss-light,#00458c)var(--lightningcss-dark,#c7d3ff);--color-background-purple:var(--lightningcss-light,#eccef3)var(--lightningcss-dark,#f297ff3d);--color-border-purple:var(--lightningcss-light,#d8bbdf)var(--lightningcss-dark,#dd74f0);--color-icon-purple:var(--lightningcss-light,#700084)var(--lightningcss-dark,#f297ff);--color-text-purple:var(--lightningcss-light,#700084)var(--lightningcss-dark,#fac1ff);--color-background-pink:var(--lightningcss-light,#fccadc)var(--lightningcss-dark,#ff99c33d);--color-border-pink:var(--lightningcss-light,#e7b7c8)var(--lightningcss-dark,#f273aa);--color-icon-pink:var(--lightningcss-light,#83004b)var(--lightningcss-dark,#ff99c3);--color-text-pink:var(--lightningcss-light,#83004b)var(--lightningcss-dark,#ffc3da);--color-background-gray:var(--lightningcss-light,#e5e5e5)var(--lightningcss-dark,var(--color-neutral));--color-border-gray:var(--lightningcss-light,#d4d4d4)var(--lightningcss-dark,#262626);--color-icon-gray:var(--lightningcss-light,#525252)var(--lightningcss-dark,#a3a3a3);--color-text-gray:var(--lightningcss-light,#262626)var(--lightningcss-dark,#e5e5e5);--radius-none:0px;--radius-inner:.375rem;--radius-element:.625rem;--radius-container:.75rem;--radius-page:1.75rem;--radius-full:9999px;--shadow-low:0 2px 4px var(--lightningcss-light,oklch(0% 0 0/.05))var(--lightningcss-dark,oklch(0% 0 0/.25)), 0 4px 8px var(--lightningcss-light,oklch(0% 0 0/.1))var(--lightningcss-dark,oklch(0% 0 0/.4)), inset 0 0 0 1px var(--lightningcss-light,#0000)var(--lightningcss-dark,oklch(100% 0 0/.08));--shadow-med:0 2px 4px var(--lightningcss-light,oklch(0% 0 0/.05))var(--lightningcss-dark,oklch(0% 0 0/.35)), 0 4px 12px var(--lightningcss-light,oklch(0% 0 0/.1))var(--lightningcss-dark,oklch(0% 0 0/.5)), inset 0 0 0 1px var(--lightningcss-light,#0000)var(--lightningcss-dark,oklch(100% 0 0/.12));--shadow-high:0 4px 6px var(--lightningcss-light,oklch(0% 0 0/.1))var(--lightningcss-dark,oklch(0% 0 0/.5)), 0 12px 24px var(--lightningcss-light,oklch(0% 0 0/.15))var(--lightningcss-dark,oklch(0% 0 0/.7)), inset 0 0 0 1px var(--lightningcss-light,#0000)var(--lightningcss-dark,oklch(100% 0 0/.15));--shadow-inset-hover:inset 0px 0px 0px 2px #0074e24d;--shadow-inset-selected:inset 0px 0px 0px 2px #0074e280;--shadow-inset-success:inset 0px 0px 0px 2px #1981004d;--shadow-inset-warning:inset 0px 0px 0px 2px #ffce2f4d;--shadow-inset-error:inset 0px 0px 0px 2px #e33f4a4d}.astryx-heading.level-1{font-family:var(--font-family-heading);font-size:var(--text-heading-1-size);font-weight:var(--text-heading-1-weight);line-height:var(--text-heading-1-leading)}.astryx-heading.level-2{font-family:var(--font-family-heading);font-size:var(--text-heading-2-size);font-weight:var(--text-heading-2-weight);line-height:var(--text-heading-2-leading)}.astryx-heading.level-3{font-family:var(--font-family-heading);font-size:var(--text-heading-3-size);font-weight:var(--text-heading-3-weight);line-height:var(--text-heading-3-leading)}.astryx-heading.level-4{font-family:var(--font-family-heading);font-size:var(--text-heading-4-size);font-weight:var(--text-heading-4-weight);line-height:var(--text-heading-4-leading)}.astryx-heading.level-5{font-family:var(--font-family-heading);font-size:var(--text-heading-5-size);font-weight:var(--text-heading-5-weight);line-height:var(--text-heading-5-leading)}.astryx-heading.level-6{font-family:var(--font-family-heading);font-size:var(--text-heading-6-size);font-weight:var(--text-heading-6-weight);line-height:var(--text-heading-6-leading)}.astryx-heading.display-1{font-family:var(--font-family-heading);font-size:var(--text-display-1-size);line-height:var(--text-display-1-leading)}.astryx-heading.display-2{font-family:var(--font-family-heading);font-size:var(--text-display-2-size);line-height:var(--text-display-2-leading)}.astryx-heading.display-3{font-family:var(--font-family-heading);font-size:var(--text-display-3-size);line-height:var(--text-display-3-leading)}.astryx-text.body{font-family:var(--font-family-body);font-size:var(--text-body-size);line-height:var(--text-body-leading)}.astryx-text.large{font-family:var(--font-family-body);font-size:var(--text-large-size);line-height:var(--text-large-leading)}.astryx-text.label{font-family:var(--font-family-body);font-size:var(--text-label-size);line-height:var(--text-label-leading)}.astryx-text.code{font-family:var(--font-family-code);font-size:var(--text-code-size);line-height:var(--text-code-leading)}.astryx-text.supporting{font-family:var(--font-family-body);font-size:var(--text-supporting-size);line-height:var(--text-supporting-leading)}.astryx-text.display-1{font-family:var(--font-family-heading);font-size:var(--text-display-1-size);line-height:var(--text-display-1-leading)}.astryx-text.display-2{font-family:var(--font-family-heading);font-size:var(--text-display-2-size);line-height:var(--text-display-2-leading)}.astryx-text.display-3{font-family:var(--font-family-heading);font-size:var(--text-display-3-size);line-height:var(--text-display-3-leading)}.astryx-button.destructive{background-color:var(--color-error-muted);color:var(--color-error)}.astryx-badge.info{color:var(--lightningcss-light,#fff)var(--lightningcss-dark,#171717);background-color:var(--lightningcss-light,#0074e2)var(--lightningcss-dark,#6d9cfe)}.astryx-badge.neutral{background-color:var(--color-background-gray);color:var(--color-text-gray)}.astryx-badge.success{color:var(--lightningcss-light,#fff)var(--lightningcss-dark,#171717);background-color:var(--lightningcss-light,#198100)var(--lightningcss-dark,#64af4c)}.astryx-badge.warning{color:#171717;background-color:#ffce2f}.astryx-badge.error{color:var(--lightningcss-light,#fff)var(--lightningcss-dark,#171717);background-color:var(--lightningcss-light,#c9303a)var(--lightningcss-dark,#ff705d)}.astryx-badge.red{background-color:var(--color-background-red);color:var(--color-text-red)}.astryx-badge.orange{background-color:var(--color-background-orange);color:var(--color-text-orange)}.astryx-badge.yellow{background-color:var(--color-background-yellow);color:var(--color-text-yellow)}.astryx-badge.green{background-color:var(--color-background-green);color:var(--color-text-green)}.astryx-badge.teal{background-color:var(--color-background-teal);color:var(--color-text-teal)}.astryx-badge.cyan{background-color:var(--color-background-cyan);color:var(--color-text-cyan)}.astryx-badge.blue{background-color:var(--color-background-blue);color:var(--color-text-blue)}.astryx-badge.purple{background-color:var(--color-background-purple);color:var(--color-text-purple)}.astryx-badge.pink{background-color:var(--color-background-pink);color:var(--color-text-pink)}.astryx-badge.gray{background-color:var(--color-background-gray);color:var(--color-text-gray)}.astryx-statusdot.success{background-color:var(--lightningcss-light,#198100)var(--lightningcss-dark,#64af4c)}.astryx-statusdot.warning{background-color:#ffce2f}.astryx-statusdot.error{background-color:var(--lightningcss-light,#c9303a)var(--lightningcss-dark,#ff705d)}.astryx-statusdot.accent{background-color:var(--lightningcss-light,#0074e2)var(--lightningcss-dark,#6d9cfe)}.astryx-banner.info{--color-accent-muted:var(--color-background-blue);--color-text-primary:var(--color-text-blue);--color-text-secondary:var(--color-text-blue);--color-accent:var(--color-text-blue)}.astryx-banner.success{--color-text-primary:var(--color-text-green);--color-text-secondary:var(--color-text-green);--color-success:var(--color-text-green)}.astryx-banner.warning{--color-text-primary:var(--color-text-yellow);--color-text-secondary:var(--color-text-yellow);--color-warning:var(--color-text-yellow)}.astryx-banner.error{--color-text-primary:var(--color-text-red);--color-text-secondary:var(--color-text-red);--color-error:var(--color-text-red)}.astryx-switch{--color-background-gray:var(--color-border-emphasized)}.astryx-progressbar{--color-background-muted:var(--color-border-emphasized)}.astryx-progressbar.accent{--color-accent:#0074e2}.astryx-progressbar.success{--color-success:#198100}.astryx-progressbar.warning{--color-warning:#ffce2f}.astryx-progressbar.error{--color-error:#c9303a}.astryx-card{--astryx-card-padding:var(--spacing-3)}.astryx-section{--astryx-section-padding:var(--spacing-3)}.astryx-text.primary,.astryx-heading.primary{color:var(--color-text-primary)}.astryx-text.secondary,.astryx-heading.secondary{color:var(--color-text-secondary)}.astryx-text.disabled,.astryx-heading.disabled{color:var(--color-text-disabled)}.astryx-text.placeholder,.astryx-heading.placeholder{color:var(--color-text-secondary)}.astryx-text.accent,.astryx-heading.accent{color:var(--color-text-accent)}.astryx-text.size-4xs{font-size:var(--font-size-4xs)}.astryx-text.size-3xs{font-size:var(--font-size-3xs)}.astryx-text.size-2xs{font-size:var(--font-size-2xs)}.astryx-text.xsm{font-size:var(--font-size-xs)}.astryx-text.sm{font-size:var(--font-size-sm)}.astryx-text.base{font-size:var(--font-size-base)}.astryx-text.lg{font-size:var(--font-size-lg)}.astryx-text.xl{font-size:var(--font-size-xl)}.astryx-text.size-2xl{font-size:var(--font-size-2xl)}.astryx-text.size-3xl{font-size:var(--font-size-3xl)}.astryx-text.size-4xl{font-size:var(--font-size-4xl)}}@scope([data-astryx-theme=neutral]) to ([data-astryx-theme]){[data-astryx-media=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-text-primary:var(--color-on-dark);--color-icon-primary:var(--color-on-dark);--color-accent:var(--color-on-dark)}[data-astryx-media=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-text-primary:var(--color-on-light);--color-icon-primary:var(--color-on-light);--color-accent:var(--color-on-light)}}}@layer components;@layer utilities{.collapse{visibility:collapse}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.block{display:block}.contents{display:contents}.hidden{display:none}.inline{display:inline}.grow{flex-grow:1}.resize{resize:both}.rounded{border-radius:.25rem}}.xterm{cursor:text;-webkit-user-select:none;user-select:none;position:relative}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{z-index:5;position:absolute;top:0}.xterm .xterm-helper-textarea{opacity:0;z-index:-5;white-space:nowrap;resize:none;border:0;width:0;height:0;margin:0;padding:0;position:absolute;top:0;left:-9999em;overflow:hidden}.xterm .composition-view{color:#fff;white-space:nowrap;z-index:1;background:#000;display:none;position:absolute}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{cursor:default;background-color:#000;position:absolute;inset:0;overflow-y:scroll}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;top:0;left:0}.xterm-char-measure-element{visibility:hidden;line-height:normal;display:inline-block;position:absolute;top:0;left:-9999em}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{z-index:10;color:#0000;pointer-events:none;position:absolute;inset:0}.xterm .xterm-accessibility-tree:not(.debug) ::selection{color:#0000}.xterm .xterm-accessibility-tree{-webkit-user-select:text;user-select:text;white-space:pre;font-family:monospace}.xterm .xterm-accessibility-tree>div{transform-origin:0;width:fit-content}.xterm .live-region{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{-webkit-text-decoration:underline double;text-decoration:underline double}.xterm-underline-3{-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.xterm-underline-4{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.xterm-underline-5{-webkit-text-decoration:underline dashed;text-decoration:underline dashed}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:underline overline}.xterm-overline.xterm-underline-2{-webkit-text-decoration:overline double underline;-webkit-text-decoration:overline double underline;-webkit-text-decoration:overline double underline;text-decoration:overline double underline}.xterm-overline.xterm-underline-3{-webkit-text-decoration:overline wavy underline;-webkit-text-decoration:overline wavy underline;-webkit-text-decoration:overline wavy underline;text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{-webkit-text-decoration:overline dotted underline;-webkit-text-decoration:overline dotted underline;-webkit-text-decoration:overline dotted underline;text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{-webkit-text-decoration:overline dashed underline;-webkit-text-decoration:overline dashed underline;-webkit-text-decoration:overline dashed underline;text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;pointer-events:none;position:absolute;top:0;right:0}.xterm-decoration-top{z-index:2;position:relative}.xterm .xterm-scrollable-element>.scrollbar{cursor:default}.xterm .xterm-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.xterm .xterm-scrollable-element>.visible{opacity:1;z-index:11;background:0 0;transition:opacity .1s linear}.xterm .xterm-scrollable-element>.invisible{opacity:0;pointer-events:none}.xterm .xterm-scrollable-element>.invisible.fade{transition:opacity .8s linear}.xterm .xterm-scrollable-element>.shadow{display:none;position:absolute}.xterm .xterm-scrollable-element>.shadow.top{width:100%;height:3px;box-shadow:var(--vscode-scrollbar-shadow,#000) 0 6px 6px -6px inset;display:block;top:0;left:3px}.xterm .xterm-scrollable-element>.shadow.left{width:3px;height:100%;box-shadow:var(--vscode-scrollbar-shadow,#000) 6px 0 6px -6px inset;display:block;top:3px;left:0}.xterm .xterm-scrollable-element>.shadow.top-left-corner{width:3px;height:3px;display:block;top:0;left:0}.xterm .xterm-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow,#000) 6px 0 6px -6px inset}.composer.composer-m02{border-radius:8px;min-width:0}.composer-toolbar[hidden]{display:none}.composer.composer-m02.is-dragging{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}@supports (color:color-mix(in lab, red, red)){.composer.composer-m02.is-dragging{box-shadow:0 0 0 2px color-mix(in oklch, var(--accent) 20%, transparent)}}.composer-m02 .composer-target{min-width:0;color:var(--muted);align-items:center;gap:6px;margin-bottom:10px;font-size:11px;line-height:1.4;display:flex}.composer-m02 .composer-target svg{flex:none;width:13px;height:13px}.composer-m02 .composer-target svg:nth-of-type(2){width:11px;height:11px;color:var(--subtle)}.composer-m02 .composer-target span,.composer-m02 .composer-target strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.composer-m02 .composer-target span{flex:0 auto}.composer-m02 .composer-target strong{color:var(--text);flex:0 auto;font-weight:600}.composer-attachments{flex-wrap:wrap;gap:7px;min-width:0;margin:0 0 9px;display:flex}.composer-attachment{border:1px solid var(--border);background:var(--sidebar);border-radius:7px;grid-template-columns:38px minmax(0,1fr) 22px;align-items:center;gap:7px;width:min(176px,50% - 4px);min-width:112px;height:48px;padding:5px;display:grid;position:relative}.composer-attachment img{object-fit:cover;background:var(--sidebar-hover);border-radius:5px;width:38px;height:38px}.composer-attachment>span{text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;overflow:hidden}.composer-attachment-remove{width:22px;height:22px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:4px;place-items:center;padding:0;display:grid}.composer-attachment-remove:hover{background:var(--sidebar-hover);color:var(--text)}.composer-attachment-remove svg{width:13px;height:13px}.composer-attachment-preview{cursor:zoom-in;background:0 0;border:0;border-radius:5px;width:38px;height:38px;padding:0;display:grid}.composer-attachment-preview:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.draft-image-preview{min-width:0;min-height:0}.draft-image-preview header{border-bottom:1px solid var(--border);align-items:center;gap:12px;min-width:0;padding:8px 12px;display:flex}.draft-image-preview header strong{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:13px;overflow:hidden}.draft-image-preview header button{width:32px;height:32px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:5px;flex:none;place-items:center;padding:0;display:grid}.draft-image-preview header button:hover{background:var(--sidebar-hover);color:var(--text)}.draft-image-preview header button svg{width:17px;height:17px}.draft-image-preview-modes{border:1px solid var(--border);border-radius:5px;flex:none;gap:2px;min-width:0;margin:0;padding:2px;display:flex}.draft-image-preview-modes button[aria-pressed=true]{background:var(--sidebar-hover);color:var(--text)}.draft-image-preview-modes button:disabled{opacity:.5;cursor:default}.draft-image-preview-body{background:var(--sidebar);grid-template:minmax(0,1fr)/minmax(0,1fr);place-items:center;min-width:0;height:min(64dvh,640px);min-height:0;padding:12px;display:grid;overflow:hidden}.draft-image-preview-body img{object-fit:contain;max-width:100%;max-height:100%;display:block}.draft-image-preview-body[data-mode=original]{overscroll-behavior:contain;display:block;overflow:auto}.draft-image-preview-body[data-mode=original] img{max-width:none;max-height:none}.draft-image-preview-body:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}.draft-image-preview-body .composer-attachment-error{margin:0}.composer-attachment-error{color:var(--error);margin:0 2px 8px;font-size:10.5px}.composer-drop-overlay{z-index:5;border:1px dashed var(--accent);background:var(--page);border-radius:7px;justify-content:center;align-items:center;gap:8px;display:flex;position:absolute;inset:6px}@supports (color:color-mix(in lab, red, red)){.composer-drop-overlay{background:color-mix(in oklch, var(--page) 92%, var(--accent))}}.composer-drop-overlay{color:var(--accent);pointer-events:none;font-size:12px;font-weight:600}.composer-drop-overlay svg{width:18px;height:18px}.composer-m02 .composer-toolbar{border-top:1px solid var(--border);justify-content:space-between;gap:8px;padding-top:7px}.composer-m02 .composer-toolbar-context{flex:none;width:34px;height:34px}.composer-m02 .composer-context-placeholder{width:34px;height:34px;display:block}.composer-m02 .composer-context-trigger{width:34px;height:34px;color:var(--muted);padding:0}.composer-m02 .composer-context-trigger svg{width:17px;height:17px}.composer-m02 .composer-toolbar-controls{flex:auto;justify-content:flex-end;align-items:center;gap:7px;min-width:0;display:flex}.composer-m02 .model-selector,.composer-m02 .model-selector>div{min-width:0}.composer-m02 .composer-hint[data-visible=true]{color:var(--muted);margin-top:5px;font-size:11px;line-height:1.4;display:block}.file-reference-heading{align-items:flex-start;gap:10px;display:flex}.file-reference-heading>svg{width:18px;height:18px;color:var(--muted);flex:none;margin-top:2px}.file-reference-heading p{color:var(--text);margin-top:3px}.file-reference-error{color:var(--error)!important}@media (width<=520px){.composer-m02 .composer-toolbar-controls{gap:3px}.composer-m02 .model-picker-wrap{flex:90px;min-width:0;max-width:100%}}.model-search-panel{flex-direction:column;display:flex}.model-search-options{overflow-y:auto}.model-search-input,.model-search-truncation,.model-search-status,.model-settings-command{flex-shrink:0}.model-settings-command{border:0;border-top:1px solid var(--border);width:100%;color:var(--text);text-align:left;font:inherit;cursor:pointer;background:0 0;align-items:center;gap:8px;margin-top:8px;padding:9px;display:flex}.model-settings-command:hover,.model-settings-command:focus-visible{background:var(--sidebar-hover)}.model-settings-command svg{flex:none;width:14px;height:14px}.session-sidebar .workspace-button{cursor:default;height:auto;min-height:38px}.session-sidebar .workspace-label{cursor:pointer;min-height:38px;padding:3px 0}.session-sidebar .workspace-label:disabled{cursor:default;color:inherit}.session-sidebar .workspace-identity{flex:1;min-width:0;padding:2px 0;display:grid}.session-sidebar .workspace-identity strong,.session-sidebar .workspace-identity small{min-width:0;line-height:1.3}.session-sidebar .workspace-identity strong{overflow-wrap:anywhere;white-space:normal}.session-sidebar .workspace-identity small{text-overflow:ellipsis;white-space:nowrap;color:var(--muted);-webkit-user-select:text;user-select:text;font-size:10px;overflow:hidden}.session-sidebar .is-active-workspace>.workspace-button{border-left:2px solid var(--text)}.session-sidebar .session{align-items:center;height:38px;min-height:38px;padding-top:6px;padding-bottom:6px}.session-sidebar .session-status,.session-sidebar .session-queue{flex:none;align-items:center;gap:3px;display:inline-flex}.session-sidebar .session-status{color:var(--text);font-variant-numeric:tabular-nums;gap:6px;font-size:10px}.session-sidebar .session-status svg{flex:none;width:12px;height:12px}.session-sidebar .session-running{color:var(--accent)}.session-sidebar .session-time{text-align:right;min-width:27px}.session-sidebar .session-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;line-height:1.35;overflow:hidden}.session-sidebar .session-time{line-height:1.7}.session-sidebar .session.active{box-shadow:inset 2px 0 0 var(--text);font-weight:600}.session-sidebar .session-row>.astryx-menu-trigger{top:5px}.sidebar-archive-actions{min-height:34px;color:var(--muted);flex:none;align-items:center;gap:8px;font-size:11px;display:flex}.sidebar-archive-more{margin:8px 0}.sidebar-scope-note p{margin:0 0 4px}.sidebar-dialog-path{overflow-wrap:anywhere;color:var(--muted);font-size:12px}.sidebar-dialog-error{color:var(--error)}.sidebar-footer{border-top:1px solid var(--border);flex:none;padding:7px 2px 1px}.sidebar-settings-button{width:100%;height:36px;color:var(--muted);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:6px;align-items:center;gap:9px;padding:0 10px;display:flex}.sidebar-settings-button:hover:not(:disabled){background:var(--sidebar-hover);color:var(--text)}.sidebar-settings-button:disabled{cursor:default;opacity:.45}.sidebar-settings-button svg{flex:none;width:16px;height:16px}.sidebar-settings-button span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}@media not all and (width<=760px){.sidebar-collapsed .sidebar-footer{width:40px;padding:7px 0 1px}.sidebar-collapsed .sidebar-settings-button{justify-content:center;width:40px;height:40px;padding:0}.sidebar-collapsed .sidebar-settings-button span{display:none}}.app-shell.with-review-panel{grid-template-columns:var(--sidebar-width) minmax(0, 1fr) var(--auxiliary-width)}.app-shell.with-review-panel.sidebar-collapsed{grid-template-columns:56px minmax(0, 1fr) var(--auxiliary-width)}.review-panel{border-left:1px solid var(--border);background:var(--page);min-width:0;height:100dvh;min-height:0;color:var(--text);flex-direction:column;display:flex}.review-panel.embedded{border-left:0;flex:1;height:100%}.review-heading{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:10px;min-height:64px;padding:14px 16px;display:flex}.review-heading h2,.review-heading h1{align-items:center;gap:8px;margin:0 0 4px;font-size:14px;display:flex}.review-heading h2 svg,.review-heading h1 svg{width:16px;height:16px}.review-heading small{color:var(--muted);font-size:10.5px}.review-close{flex:none}.review-heading-actions,.review-file-actions{flex:none;align-items:center;gap:2px;display:flex}.review-body{flex:1;min-height:0;padding:14px 16px 18px;overflow-y:auto}.review-summary{margin-bottom:12px}.review-summary-counts,.session-review-stats{font-variant-numeric:tabular-nums;flex:none;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.review-summary code{min-width:0;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.review-banner{margin:0 0 12px}.review-panel>.review-banner{flex:none;margin:0}.review-empty{min-height:180px}.review-loading{padding-top:2px}.review-loading-list{border:1px solid var(--border);border-radius:6px;gap:1px;display:grid;overflow:hidden}.session-review-list{border:1px solid var(--border);border-radius:6px;min-width:0;overflow:hidden}.session-review-list ul{margin:0;padding:4px;list-style:none}.session-review-list li{margin:0}.session-review-file{width:100%;min-width:0;min-height:38px;color:var(--text);cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:5px;align-items:center;gap:8px;padding:6px 8px;transition:background-color .12s,border-color .12s;display:flex}.session-review-file:hover{background:var(--sidebar-hover)}.session-review-file:active{border-color:var(--border-strong);background:var(--sidebar-active)}.session-review-file>svg{width:14px;height:14px;color:var(--muted);flex:none}.session-review-path{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font:11.5px ui-monospace,SFMono-Regular,Menlo,monospace;overflow:hidden}.session-review-stats{gap:7px;font-size:11px;display:flex}.session-review-more{border-top:1px solid var(--border)}.review-file-screen{flex:1;grid-template-rows:auto auto minmax(0,1fr);min-width:0;min-height:0;display:grid}.review-file-header{border-bottom:1px solid var(--border);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;min-height:52px;padding:6px 8px;display:grid}.review-file-heading{gap:1px;min-width:0;display:grid}.review-file-heading strong,.review-file-heading span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.review-file-heading strong{font-size:12px}.review-file-heading span{color:var(--muted);font:10px ui-monospace,SFMono-Regular,Menlo,monospace}.review-file-toolbar{border-bottom:1px solid var(--border);background:var(--sidebar);grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;min-width:0;min-height:40px;padding:6px 10px;display:grid}.review-file-context{align-items:center;gap:8px;min-width:0;display:flex}.review-file-context>span{color:var(--muted);text-transform:uppercase;flex:none;font-size:10px;font-weight:650}.review-file-context code{min-width:0;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:9.5px;overflow:hidden}.review-file-mode{border:1px solid var(--border-strong);background:var(--page);border-radius:5px;align-items:center;min-height:24px;padding:0 8px;font-size:10.5px;font-weight:600;display:inline-flex}.review-file-preview{background:var(--page);outline:none;min-width:0;min-height:0;overflow:auto}.review-file-diff{background:var(--page);width:max-content;min-width:100%;margin:0}.review-file-diff pre{tab-size:2;width:max-content;min-width:100%;margin:0;padding:8px 0 24px;font:11.5px/1.58 ui-monospace,SFMono-Regular,Menlo,monospace}.review-diff-line{white-space:pre;width:max-content;min-width:100%;display:flex}.review-diff-line[data-kind=added]{background:oklch(82% .08 153/.24)}.review-diff-line[data-kind=removed]{background:oklch(78% .1 28/.2)}.review-diff-line[data-kind=meta]{background:var(--sidebar);color:var(--muted);margin:7px 0 4px}.review-diff-gutter{border-right:1px solid var(--border);color:var(--subtle);text-align:right;-webkit-user-select:none;user-select:none;flex:none;padding-right:1ch}.review-diff-marker{width:2.2ch;color:var(--muted);text-align:center;-webkit-user-select:none;user-select:none;flex:none}.review-diff-line[data-kind=added] .review-diff-marker{color:var(--healthy)}.review-diff-line[data-kind=removed] .review-diff-marker{color:var(--error)}.review-diff-code{padding-right:20px}.review-hidden-lines{border-top:1px solid var(--border);color:var(--muted);margin:0;padding:8px 10px;font-size:11px}@media (width<=1100px){.app-shell.with-review-panel,.app-shell.with-review-panel.sidebar-collapsed{grid-template-columns:minmax(0,1fr)}.with-review-panel>.conversation-shell,.with-review-panel>.session-sidebar,.with-review-panel>.sidebar-expand{display:none}.review-panel{border-left:0;grid-column:1/-1}}@media (width<=560px){.review-file-toolbar{grid-template-columns:minmax(0,1fr) auto}.review-file-context code,.review-file-mode{display:none}}@media (prefers-reduced-motion:reduce){.session-review-file{transition:none}}.review-source-picker{border-bottom:1px solid var(--border);flex:none;justify-content:space-between;align-items:center;gap:8px;min-width:0;min-height:44px;padding:6px 10px;font-size:12px;display:flex}.review-source-picker label{align-items:center;gap:8px;min-width:0;display:flex}.review-source-picker select{min-width:0;color:var(--text);background:var(--sidebar);border:1px solid var(--border);border-radius:6px;padding:4px 8px}.review-source-actions{align-items:center;gap:6px;min-width:0;margin-left:auto;display:flex}.review-source-actions>button{flex:none}@media (width<=560px){.review-source-picker{flex-wrap:wrap}}.provider-settings-dialog{color:var(--text);border:1px solid var(--border)!important;background:var(--page)!important;border-radius:8px!important;width:min(1080px,100vw - 16px)!important;max-width:calc(100vw - 16px)!important;max-height:calc(100dvh - 16px)!important;padding:0!important;overflow:hidden!important;box-shadow:0 16px 48px oklch(20% .015 250/.22)!important}.provider-settings-dialog::backdrop{background:oklch(0% 0 0/.38)}.provider-settings-surface{background:var(--page);flex-direction:column;width:100%;height:min(84dvh,100dvh - 16px);min-height:0;display:flex;position:relative;overflow:hidden}.provider-settings-header{border-bottom:1px solid var(--border);flex:0 0 50px;align-items:center;min-width:0;min-height:50px;padding:0 52px 0 18px;display:flex;position:relative}.provider-settings-title{white-space:nowrap;flex:none;font-size:15px}.provider-settings-navigation{align-items:stretch;gap:2px;min-width:0;height:50px;margin-left:22px;display:flex;overflow:auto hidden}.provider-settings-mobile-picker{display:none}.provider-settings-tab{width:102px;min-width:102px;height:100%;color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:0;justify-content:center;align-items:center;gap:6px;padding:0 4px;font-size:12px;transition:color .15s;display:flex;position:relative}.provider-settings-tab:after{background:var(--accent);content:"";opacity:0;border-radius:2px 2px 0 0;width:24px;height:2px;transition:opacity .15s,transform .15s;position:absolute;bottom:0;left:50%;transform:translate(-50%)scaleX(.5)}.provider-settings-tab:hover,.provider-settings-tab[aria-selected=true]{color:var(--text)}.provider-settings-tab[aria-selected=true]{font-weight:650}.provider-settings-tab[aria-selected=true]:after{opacity:1;transform:translate(-50%)scaleX(1)}.provider-settings-tab svg{flex:none;width:15px;height:15px}.provider-settings-close{position:absolute;top:10px;right:14px}.provider-settings-main{flex:1;min-width:0;min-height:0;display:flex;overflow:hidden}.provider-settings-main>[role=tabpanel]{width:100%;min-width:0;min-height:0;animation:.16s ease-out settings-panel-in}.provider-settings-main>[hidden],.provider-status-section[hidden]{display:none}.settings-general-panel{width:min(680px,100%);height:100%;padding:26px clamp(18px,4vw,40px) 44px;overflow-y:auto}.settings-page-heading,.settings-detail-heading{justify-content:space-between;align-items:flex-start;gap:24px;min-width:0;display:flex}.settings-page-heading>div,.settings-detail-heading>div{min-width:0}.settings-page-heading h1,.settings-detail-heading h1{overflow-wrap:anywhere;margin:0;font-size:18px;line-height:1.3}.settings-page-heading p,.settings-detail-heading p{color:var(--muted);margin:6px 0 0;font-size:11px;line-height:1.55}.settings-detail-heading>div>span{color:var(--muted);text-transform:uppercase;font-size:10px;font-weight:650}.settings-detail-heading h1{margin-top:5px;font-size:20px}.settings-detail-heading code{color:var(--muted);overflow-wrap:anywhere;margin-top:5px;font-size:11px;display:block}.settings-section-block{margin-top:30px}.settings-section-block>h2,.settings-role-principles>h2,.settings-resource-groups h2{margin:0 0 5px;font-size:13px;font-weight:650}.settings-theme-options{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;width:min(420px,100%);padding:3px;display:grid}.settings-theme-option{min-width:0;min-height:44px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:5px;justify-content:center;align-items:center;gap:7px;padding:0 6px;font-size:12px;display:flex;position:relative}.settings-theme-option input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.settings-theme-option:not([data-selected=true]):not(:has(input:disabled)):hover{background:var(--sidebar-hover);color:var(--text)}.settings-theme-option:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:1px}.settings-theme-option[data-selected=true]{background:var(--sidebar-active);color:var(--accent);font-weight:650}.settings-theme-option:has(input:disabled){cursor:default;opacity:.55}.settings-theme-option svg{flex:none;width:15px;height:15px}.settings-chat-controls{width:min(420px,100%)}.settings-chat-controls>[class*=astryx-switch],.settings-slider-control,.settings-slider-control+.settings-slider-control{margin-top:12px}.settings-slider-heading{grid-template-columns:minmax(0,1fr) auto 28px;align-items:center;gap:8px;font-size:12px;display:grid}.settings-slider-heading output{color:var(--muted);font:11px ui-monospace,SFMono-Regular,Menlo,monospace}.settings-reset-button{width:28px;height:28px;color:var(--muted);background:0 0;border:1px solid #0000;border-radius:5px;place-items:center;padding:0;display:grid}.settings-reset-button svg{width:14px;height:14px}.settings-reset-button:hover:not(:disabled){background:var(--sidebar-hover);color:var(--text)}.settings-reset-button:disabled{opacity:.4;cursor:default}.settings-reset-button:focus-visible,.provider-settings-tab:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.settings-pending-hint{color:var(--muted);margin:12px 0 0;font-size:12px;line-height:1.5}.settings-fact-grid{border-top:1px solid var(--border);grid-template-columns:repeat(2,minmax(0,1fr));width:min(680px,100%);display:grid}.settings-fact-grid>div{border-bottom:1px solid var(--border);grid-template-columns:22px minmax(0,1fr);align-content:center;column-gap:8px;min-width:0;min-height:72px;padding:10px 12px 10px 2px;display:grid}.settings-fact-grid>div:nth-child(odd){border-right:1px solid var(--border)}.settings-fact-grid svg{width:15px;height:15px;color:var(--muted);grid-row:1/3;margin-top:2px}.settings-fact-grid span{color:var(--muted);font-size:10.5px}.settings-fact-grid strong{overflow-wrap:anywhere;min-width:0;font-size:11.5px}.settings-load-state,.settings-empty-detail{min-height:160px;color:var(--muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:7px;padding:20px;font-size:12px;display:flex}.settings-load-state.error strong{color:var(--error)}.settings-load-state button{border:1px solid var(--border-strong);background:var(--page);cursor:pointer;border-radius:5px;min-height:30px;margin-top:4px;padding:0 10px}.settings-load-state svg,.settings-empty-detail svg{width:20px;height:20px}.settings-spin{animation:.9s linear infinite settings-spin}@keyframes settings-spin{to{transform:rotate(360deg)}}.settings-split-panel{width:100%;min-width:0;height:100%;min-height:0;display:flex;overflow:hidden}.settings-resource-sidebar{border-right:1px solid var(--border);background:var(--sidebar);flex-direction:column;width:240px;min-width:240px;min-height:0;display:flex}.settings-resource-list{flex:1;min-height:0;padding:8px 6px;overflow-y:auto}.settings-resource-group+.settings-resource-group{margin-top:8px}.settings-sidebar-label{color:var(--settings-secondary-text);text-transform:uppercase;padding:4px 8px 7px;font-size:9.5px;font-weight:700;display:block}.settings-resource-item{width:100%;min-width:0;min-height:44px;color:var(--muted);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:5px;align-items:center;gap:9px;padding:6px 8px;display:flex}.settings-resource-item:hover,.settings-resource-item[aria-current=page]{background:var(--sidebar-hover);color:var(--text)}.settings-resource-item[aria-current=page]{background:var(--sidebar-active)}.settings-resource-item>svg{flex:none;width:15px;height:15px}.settings-resource-item>span{flex-direction:column;flex:1;min-width:0;display:flex}.settings-resource-item strong,.settings-resource-item small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.settings-resource-item strong{font-size:11.5px;font-weight:620}.settings-resource-item small{color:var(--settings-secondary-text);font-size:9.5px}.settings-resource-empty{color:var(--muted);padding:18px 10px;font-size:11px}.settings-sidebar-footer{border-top:1px solid var(--border);min-height:48px;color:var(--settings-secondary-text);flex:none;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px 8px 14px;font-size:9.5px;display:flex}.settings-sidebar-footer>span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.settings-sidebar-footer>button:not(.astryx-button){width:28px;height:28px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:5px;flex:none;place-items:center;display:grid}.settings-sidebar-footer>button:hover{background:var(--sidebar-hover);color:var(--text)}.settings-sidebar-footer svg{width:14px;height:14px}.settings-sidebar-footer-action{justify-content:flex-start;padding:8px}.settings-resource-detail{flex:1;min-width:0;min-height:0;padding:24px 20px 40px;overflow-y:auto}.settings-status-badge{border:1px solid var(--border);min-height:24px;color:var(--muted);white-space:nowrap;border-radius:4px;align-items:center;padding:0 8px;font-size:10px;display:inline-flex}.settings-status-badge.healthy{border-color:var(--healthy)}@supports (color:color-mix(in lab, red, red)){.settings-status-badge.healthy{border-color:color-mix(in oklch, var(--healthy) 32%, var(--border))}}.settings-status-badge.healthy{color:var(--healthy)}.settings-detail-metadata{border:1px solid var(--border);background:var(--border);border-radius:6px;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin:24px 0 0;display:grid;overflow:hidden}.settings-detail-metadata>div{background:var(--page);min-width:0;padding:12px}.settings-detail-metadata dt{color:var(--muted);font-size:10px}.settings-detail-metadata dd{overflow-wrap:anywhere;min-width:0;margin:4px 0 0;font-size:11.5px;font-weight:600}.settings-detail-metadata code,.settings-path-block code,.settings-resource-groups code{font:10.5px ui-monospace,SFMono-Regular,Menlo,monospace}.settings-path-block{border-top:1px solid var(--border);border-bottom:1px solid var(--border);gap:10px;margin-top:24px;padding:13px 2px;display:flex}.settings-path-block>svg{width:16px;height:16px;color:var(--muted);flex:none;margin-top:2px}.settings-path-block>div{flex-direction:column;gap:4px;min-width:0;display:flex}.settings-path-block strong{font-size:11px}.settings-path-block code{color:var(--muted);overflow-wrap:anywhere}.settings-subagents-panel{flex-direction:column;width:100%;height:100%;min-height:0;display:flex;overflow:hidden}.settings-subagent-summary{border-bottom:1px solid var(--border);background:var(--sidebar);flex:none;justify-content:space-between;align-items:center;gap:18px;min-height:68px;padding:10px 18px;display:flex}.settings-subagent-summary>div:first-child{flex-direction:column;min-width:0;display:flex}.settings-subagent-summary strong{font-size:11.5px}.settings-subagent-summary span{color:var(--muted);font-size:10px}.settings-subagent-metrics{flex:none;gap:14px;display:flex}.settings-subagent-split{flex:1}.settings-role-principles,.settings-resource-groups{margin-top:26px}.settings-role-principles>div{border-bottom:1px solid var(--border);grid-template-columns:22px minmax(0,1fr);gap:8px;padding:11px 2px;display:grid}.settings-role-principles svg{width:15px;height:15px;color:var(--muted)}.settings-role-principles p,.settings-resource-groups p{color:var(--muted);margin:0;font-size:11px;line-height:1.55}.settings-resource-groups>div{margin-top:22px}.settings-resource-groups ul{border-top:1px solid var(--border);margin:0;padding:0;list-style:none}.settings-resource-groups li{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;min-width:0;padding:10px 2px;display:flex}.settings-resource-groups li>div{flex-direction:column;gap:2px;min-width:0;display:flex}.settings-resource-groups li strong{font-size:11.5px}.settings-resource-groups li code{color:var(--muted);overflow-wrap:anywhere}.settings-resource-groups li>span{color:var(--muted);white-space:nowrap;flex:none;font-size:10px}.settings-global-error{border-top:1px solid var(--error);flex:none;padding:9px 16px}@supports (color:color-mix(in lab, red, red)){.settings-global-error{border-top:1px solid color-mix(in oklch, var(--error) 42%, var(--border))}}.settings-global-error{background:var(--page);color:var(--error);font-size:11px}.settings-global-status{border-top:1px solid var(--border);background:var(--healthy);flex:none;padding:8px 16px}@supports (color:color-mix(in lab, red, red)){.settings-global-status{background:color-mix(in oklch, var(--healthy) 8%, var(--page))}}.settings-global-status{color:var(--healthy);font-size:11px}.settings-summary-list{border-top:1px solid var(--border);max-width:560px;margin:0}.settings-summary-list>div{border-bottom:1px solid var(--border);grid-template-columns:150px minmax(0,1fr);align-items:baseline;gap:20px;min-height:48px;padding:13px 4px;display:grid}.settings-summary-list dt{color:var(--muted);font-size:11px}.settings-summary-list dd{overflow-wrap:anywhere;min-width:0;margin:0;font-size:12px;font-weight:600}.settings-runtime-action{margin-top:18px}.settings-models{display:flex;overflow:hidden}.settings-model-sidebar{border-right:1px solid var(--border);background:var(--sidebar);flex-direction:column;width:240px;min-width:240px;min-height:0;display:flex}.settings-model-list{flex:1;min-height:0;padding:8px 6px;overflow-y:auto}.settings-model-group{margin:0 0 8px}.settings-model-group h2{align-items:center;gap:6px;min-width:0;margin:0;padding:4px 8px;font-size:11px;font-weight:650;display:flex}.settings-model-group h2 svg{width:13px;height:13px;color:var(--muted);flex:none}.settings-model-group h2 span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.settings-model-group h2 small{min-width:18px;color:var(--settings-secondary-text);text-align:right;margin-left:auto;font-size:9.5px;font-weight:500}.settings-model-item,.settings-model-provider-link{width:100%;min-width:0;min-height:32px;color:var(--muted);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:5px;align-items:center;gap:8px;padding:0 8px;font-size:12px;display:flex}.settings-model-item{padding-left:26px}.settings-model-item:hover,.settings-model-item[aria-current=page]{background:var(--sidebar-hover);color:var(--text)}.settings-model-item[aria-current=page]{background:var(--sidebar-active);font-weight:650}.settings-model-item>span{flex-direction:column;flex:1;justify-content:center;min-width:0;display:flex}.settings-model-item strong,.settings-model-item small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.settings-model-item strong{font-size:11.5px;font-weight:580}.settings-model-item small{color:var(--settings-secondary-text);font:9.5px ui-monospace,SFMono-Regular,Menlo,monospace}.settings-model-item svg,.settings-model-provider-link svg{flex:none;width:14px;height:14px}.settings-model-provider-link{min-height:48px;color:var(--settings-secondary-text);border-top:1px solid var(--border);cursor:pointer;border-radius:0;flex:none;padding:0 14px}.settings-model-provider-link:hover{background:var(--sidebar-hover);color:var(--accent)}.settings-model-empty{color:var(--muted);padding:20px 10px;font-size:12px}.settings-model-detail{flex:1;min-width:0;min-height:0;padding:24px 20px 40px;overflow-y:auto}.settings-model-detail-heading{justify-content:space-between;align-items:flex-start;gap:24px;min-width:0;display:flex}.settings-model-detail-heading>div{min-width:0}.settings-model-detail-heading span{color:var(--muted);text-transform:uppercase;font-size:10px;font-weight:650}.settings-model-detail-heading h1{overflow-wrap:anywhere;margin:6px 0 4px;font-size:20px}.settings-model-detail-heading code{color:var(--muted);overflow-wrap:anywhere;font-size:11px}.settings-model-metadata{border:1px solid var(--border);background:var(--border);border-radius:6px;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin:24px 0 0;display:grid;overflow:hidden}.settings-model-metadata>div{background:var(--page);min-width:0;padding:12px}.settings-model-metadata dt{color:var(--muted);font-size:10px}.settings-model-metadata dd{overflow-wrap:anywhere;margin:4px 0 0;font:12px ui-monospace,SFMono-Regular,Menlo,monospace}.provider-status-detail{margin-top:26px}.provider-status-detail>.settings-form-field{margin-bottom:16px}.provider-detail-heading{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;padding-bottom:10px;display:flex}.provider-detail-heading>div{gap:2px;display:grid}.provider-detail-heading span{color:var(--muted);font-size:10px}.provider-detail-heading strong{font-size:13px}.provider-connection-card{border:1px solid var(--border);background:var(--page);border-radius:7px;margin-top:14px;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.provider-connection-card{background:color-mix(in oklch, var(--page) 86%, var(--sidebar))}}.provider-connection-card[data-configured=true]{border-color:var(--healthy)}@supports (color:color-mix(in lab, red, red)){.provider-connection-card[data-configured=true]{border-color:color-mix(in oklch, var(--healthy) 24%, var(--border))}}.provider-connection-state{grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:68px;padding:11px 13px;display:grid}.provider-connection-facts{border-top:1px solid var(--border);grid-template-columns:repeat(3,minmax(0,1fr));margin:0;display:grid}.provider-connection-facts>div{min-width:0;padding:11px 13px}.provider-connection-facts>div+div{border-left:1px solid var(--border)}.provider-connection-facts dt{color:var(--settings-secondary-text);font-size:9.5px}.provider-connection-facts dd{overflow-wrap:anywhere;margin:4px 0 0;font-size:11px;font-weight:600}.provider-refresh{border:1px solid var(--border-strong);background:var(--page);cursor:pointer;border-radius:6px;flex:none;align-items:center;gap:7px;min-height:32px;padding:0 10px;font-size:11px;display:inline-flex}.provider-refresh:hover:not(:disabled){background:var(--sidebar-hover)}.provider-refresh:disabled{cursor:default;opacity:.5}.provider-refresh svg{width:14px;height:14px}.provider-state-icon{color:var(--subtle)}.provider-state-icon.configured{color:var(--healthy)}.provider-state-icon svg{width:17px;height:17px}.provider-identity{flex-direction:column;gap:1px;min-width:0;display:flex}.provider-identity strong{overflow-wrap:anywhere;font-size:13px}.provider-identity>span{color:var(--muted);overflow-wrap:anywhere;font:10.5px ui-monospace,SFMono-Regular,Menlo,monospace}.provider-identity small{color:var(--muted);margin-top:3px;font-size:10.5px}.provider-state-label{color:var(--muted);white-space:nowrap;font-size:11px}.provider-state-label.configured{color:var(--healthy)}.provider-settings-state{min-height:150px;color:var(--muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:5px;display:flex}.provider-settings-state strong{color:var(--text)}.provider-settings-state.error strong{color:var(--error)}.provider-settings-state button{border:1px solid var(--border-strong);background:var(--page);border-radius:6px;min-height:32px;margin-top:8px;padding:0 12px}.provider-read-only{border-top:1px solid var(--border);color:var(--muted);gap:12px;margin-top:18px;padding:14px 0;display:flex}.provider-read-only>svg{flex:none;width:17px;height:17px;margin-top:2px}.provider-read-only strong{color:var(--text);font-size:11px}.provider-read-only p{margin:3px 0 0;font-size:10.5px;line-height:1.55}.provider-read-only small{color:var(--settings-secondary-text);margin-top:5px;font-size:9.5px;display:block}@keyframes settings-panel-in{0%{transform:translateY(3px)}to{transform:none}}@media (width<=760px){.provider-settings-dialog{width:calc(100vw - 8px)!important;max-width:calc(100vw - 8px)!important;max-height:calc(100dvh - 8px)!important}.provider-settings-surface{height:calc(100dvh - 8px)}.provider-settings-header{padding-left:8px}.provider-settings-title{display:none}.provider-settings-navigation{width:100%;margin-left:0;padding-right:34px}.provider-settings-tab{flex:1;width:auto;min-width:94px}.settings-general-panel{width:100%;padding:22px 16px 34px}.settings-page-heading,.settings-detail-heading{gap:12px}.settings-page-heading{align-items:center}.settings-fact-grid,.settings-detail-metadata{grid-template-columns:minmax(0,1fr)}.settings-fact-grid>div:nth-child(odd){border-right:0}.settings-split-panel{flex-direction:column}.settings-resource-sidebar{border-right:0;border-bottom:1px solid var(--border);width:100%;min-width:0;max-height:220px}.settings-resource-detail{padding:20px 16px 32px}.settings-subagent-summary{flex-direction:column;align-items:flex-start;gap:7px;min-height:78px;padding:10px 14px}.settings-subagent-metrics{justify-content:space-between;gap:8px;width:100%}.settings-subagent-split{min-height:0}.settings-resource-groups li{flex-direction:column;align-items:flex-start;gap:4px}.settings-models{flex-direction:column}.settings-model-sidebar{border-right:0;border-bottom:1px solid var(--border);width:100%;min-width:0;max-height:190px}.settings-model-detail{padding:20px 16px 32px}.settings-model-detail-heading{gap:12px}.settings-model-metadata{grid-template-columns:minmax(0,1fr)}.settings-summary-list>div{grid-template-columns:minmax(0,1fr);gap:4px}.provider-connection-state{grid-template-columns:22px minmax(0,1fr)}.provider-state-label{grid-column:2}.provider-connection-facts{grid-template-columns:minmax(0,1fr)}.provider-connection-facts>div+div{border-top:1px solid var(--border);border-left:0}}@media (width<=640px){.provider-settings-header{padding-left:14px;padding-right:52px}.provider-settings-navigation{display:none}.provider-settings-title{display:block}.provider-settings-mobile-picker{border:1px solid var(--border);background:var(--sidebar);width:100%;min-width:0;max-width:210px;height:32px;color:var(--text);font:inherit;border-radius:5px;margin-left:14px;padding:0 9px;font-size:16px;display:block}}@media (prefers-reduced-motion:reduce){.provider-settings-tab,.provider-settings-tab:after,.provider-settings-main>[role=tabpanel]{transition:none;animation:none}}.settings-edit-form{gap:12px;padding-block:16px;display:grid}.settings-edit-state{color:var(--muted);overflow-wrap:anywhere;margin:0;font-size:12px}.settings-model-item:disabled,.settings-model-provider-link:disabled,.provider-settings-close:disabled{opacity:.5;cursor:not-allowed}.settings-form-field{gap:6px;min-width:0;display:grid}.settings-form-field input,.settings-form-field select,.settings-form-field textarea{border:1px solid var(--border);width:100%;min-width:0;color:inherit;background:var(--page);font:inherit;border-radius:6px;padding:8px 10px}.settings-edit-form button{border:1px solid var(--border);border-radius:6px;justify-self:start;padding:8px 14px}.app-shell.with-workbar-panel{grid-template-columns:var(--sidebar-width) minmax(0, 1fr) var(--auxiliary-width)}.app-shell.with-workbar-panel.sidebar-collapsed{grid-template-columns:56px minmax(0, 1fr) var(--auxiliary-width)}.app-shell.with-workbar-panel.center-collapsed{grid-template-columns:var(--sidebar-width) minmax(0, 1fr)}.app-shell.with-workbar-panel.center-collapsed.sidebar-collapsed{grid-template-columns:56px minmax(0,1fr)}.app-shell.with-workbar-panel.center-collapsed>.conversation-shell{display:none}.workbar-panel{border-left:1px solid var(--border);background:var(--page);min-width:0;height:100dvh;min-height:0;color:var(--text);flex-direction:column;display:flex;overflow:hidden}.workbar-tabbar{border-bottom:1px solid var(--border);flex:none;justify-content:space-between;align-items:center;gap:8px;min-height:46px;padding:0 8px 0 10px;display:flex}.workbar-tabs,.workbar-tabbar-actions{align-items:center;gap:2px;min-width:0;display:flex}.workbar-tabs{scrollbar-width:none;flex:1;align-self:stretch;min-height:45px;overflow-x:auto}.workbar-tabs::-webkit-scrollbar{display:none}.workbar-tab{border-bottom:2px solid #0000;align-items:center;min-width:0;height:100%;display:flex;position:relative}.workbar-tab[data-active=true]{border-bottom-color:var(--accent)}.workbar-tab>button:first-child{min-width:0;height:100%;color:var(--muted);cursor:pointer;background:0 0;border:0;align-items:center;gap:7px;padding:0 26px 0 8px;display:flex}.workbar-tab[data-active=true]>button:first-child{color:var(--text)}.workbar-tab>button:first-child>svg,.workbar-tab-placeholder>svg{flex:none;width:14px;height:14px}.workbar-tab>button:first-child>span{text-overflow:ellipsis;white-space:nowrap;max-width:112px;font-size:11.5px;font-weight:560;overflow:hidden}.workbar-tab-close{width:20px;height:20px;color:var(--subtle);cursor:pointer;background:0 0;border:0;border-radius:4px;place-items:center;padding:0;display:grid;position:absolute;right:4px}.workbar-tab-close:hover{background:var(--sidebar-hover);color:var(--text)}.workbar-tab-close svg{width:12px;height:12px}.workbar-tab-placeholder{color:var(--muted);align-items:center;gap:7px;padding-left:7px;font-size:11.5px;display:inline-flex}.workbar-tabbar-actions{flex:none}.workbar-tabbar-actions .icon-button,.workbar-add-tab{width:30px;height:30px}.workbar-panels,.workbar-tool-panel{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.workbar-tool-panel[hidden]{display:none}.workbar-launcher{flex:1;place-items:center;min-height:0;padding:32px 24px;display:grid;overflow-y:auto}.workbar-launcher-list{width:min(100%,390px)}.workbar-launcher-list>button{border:0;border-bottom:1px solid var(--border);width:100%;min-height:58px;color:var(--text);text-align:left;cursor:pointer;background:0 0;grid-template-columns:20px minmax(0,1fr) 16px;align-items:center;gap:13px;padding:9px 8px;display:grid}.workbar-launcher-list>button:first-child{border-top:1px solid var(--border)}.workbar-launcher-list>button:hover,.workbar-launcher-list>button:focus-visible{background:var(--sidebar-hover)}.workbar-launcher-list>button>svg:first-child{width:17px;height:17px;color:var(--muted)}.workbar-launcher-list>button>svg:last-child{width:14px;height:14px;color:var(--subtle)}.workbar-launcher-list span,.workbar-resource-list span,.side-conversation-list span{gap:1px;min-width:0;display:grid}.workbar-launcher-list strong,.workbar-resource-list strong,.side-conversation-list strong{text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;font-weight:600;overflow:hidden}.workbar-launcher-list small,.workbar-resource-list small,.side-conversation-list small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;font-style:normal;overflow:hidden}.workbar-back,.workbar-detail-toolbar>button:first-child{min-height:32px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:5px;align-self:flex-start;align-items:center;gap:7px;padding:0 8px;font-size:11px;display:inline-flex}.workbar-back:hover,.workbar-detail-toolbar>button:first-child:hover{background:var(--sidebar-hover);color:var(--text)}.workbar-back svg,.workbar-detail-toolbar>button:first-child svg{width:14px;height:14px}.side-conversation-body{flex-direction:column;flex:1;min-height:0;display:flex}.side-conversation-body>.workbar-back{margin:10px 16px 0}.side-conversation-body>.subagent-detail{flex:1;min-height:0;padding:12px 16px;overflow:hidden}.side-conversation-body .subagent-task{border-bottom:1px solid var(--border);padding-bottom:8px}.side-conversation-body .subagent-task pre{color:var(--muted);background:0 0;border-radius:0;padding:0}.side-conversation-body .subagent-transcript{padding:4px 2px 12px 0}.side-conversation-body .subagent-footnote{flex:none}.side-conversation-list{flex:1;min-height:0;padding:26px 18px;overflow-y:auto}.side-conversation-intro,.workbar-empty{min-height:210px;color:var(--muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.side-conversation-intro>svg,.workbar-empty>svg{width:24px;height:24px;color:var(--subtle);margin-bottom:12px}.side-conversation-intro h3,.workbar-empty h3{color:var(--text);margin:0;font-size:13px;font-weight:620}.side-conversation-intro p,.workbar-empty p{max-width:300px;margin:5px 0 0;font-size:11px}.side-conversation-list ul,.workbar-resource-list ul{margin:0;padding:0;list-style:none}.side-conversation-list li>button,.workbar-resource-list li>button{border:0;border-bottom:1px solid var(--border);width:100%;min-width:0;min-height:52px;color:var(--text);text-align:left;cursor:pointer;background:0 0;grid-template-columns:minmax(0,1fr) 16px;align-items:center;gap:10px;padding:7px 8px;display:grid}.side-conversation-list li:first-child>button,.workbar-resource-list li:first-child>button{border-top:1px solid var(--border)}.side-conversation-list li>button:hover,.workbar-resource-list li>button:hover{background:var(--sidebar-hover)}.side-conversation-list li>button>svg,.workbar-resource-list li>button>svg:last-child{width:14px;height:14px;color:var(--subtle)}.side-conversation-composer{z-index:2;border-top:1px solid var(--border);background:var(--page);flex:none;gap:8px;padding:12px 14px 14px;display:grid;position:relative}.side-conversation-composer textarea{resize:vertical;border:1px solid var(--border-strong);background:var(--page);width:100%;min-height:68px;max-height:180px;color:var(--text);border-radius:7px;padding:9px 10px;font-size:12px;line-height:1.55}.side-conversation-composer>div{justify-content:flex-end;gap:8px;display:flex}.side-conversation-composer button{border:1px solid var(--text);background:var(--text);min-height:31px;color:var(--page);cursor:pointer;border-radius:6px;align-items:center;gap:6px;padding:0 10px;font-size:11px;display:inline-flex}.side-conversation-composer button.secondary{border-color:var(--border-strong);background:var(--page);color:var(--muted)}.side-conversation-composer button:disabled{opacity:.45;cursor:default}.side-conversation-composer button svg{width:13px;height:13px}.workbar-error{color:var(--error);overflow-wrap:anywhere;margin:8px 16px;font-size:11px}.workbar-resource-list{flex:1;min-height:0;padding:14px 16px 24px;overflow-y:auto}.workbar-resource-list li>button{grid-template-columns:18px minmax(0,1fr) 16px}.workbar-resource-list li>button>svg:first-child{width:15px;height:15px;color:var(--muted)}.generated-files-list li>button{grid-template-columns:18px minmax(0,1fr) auto 16px}.generated-files-list em{color:var(--muted);font-size:10px;font-style:normal}.terminal-workspace{background:#101316;flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.interactive-terminal{color:#d7dde3;background:#101316;flex:1;grid-template-rows:auto auto minmax(0,1fr);min-width:0;min-height:0;display:grid}.interactive-terminal-status{border-bottom:1px solid #2c3238;justify-content:space-between;align-items:center;gap:10px;min-width:0;min-height:36px;padding:5px 8px 5px 12px;font:10.5px ui-monospace,SFMono-Regular,Menlo,monospace;display:flex}.interactive-terminal-status>div{align-items:center;gap:8px;min-width:0;display:flex}.interactive-terminal-status>div>span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.terminal-status-dot{background:#77808a;border-radius:50%;flex:none;width:7px;height:7px}.terminal-status-dot.ready{background:#56d364}.terminal-status-dot.connecting,.terminal-status-dot.reconnecting,.terminal-status-dot.restarting{background:#e3b341}.terminal-status-dot.error{background:#ff7b72}.interactive-terminal-status>.interactive-terminal-actions{flex:none;gap:4px}.interactive-terminal-status button{color:#9da7b1;cursor:pointer;background:0 0;border:0;border-radius:5px;flex:none;place-items:center;width:26px;height:26px;padding:0;display:grid}.interactive-terminal-status button:hover{color:#fff;background:#23282e}.interactive-terminal-status button:disabled{opacity:.5;cursor:default}.openpi-dialog .terminal-restart-error{color:var(--error)}.interactive-terminal-status button svg{width:14px;height:14px}.interactive-terminal-notice{color:#9da7b1;min-height:0;padding:0 12px;font-size:10px}.interactive-terminal-notice:not(:empty){border-bottom:1px solid #2c3238;padding-top:5px;padding-bottom:5px}.interactive-terminal-notice .error{color:#ff9b93}.interactive-terminal-viewport{min-width:0;min-height:0;padding:8px 6px 6px 10px;overflow:hidden}.interactive-terminal-host,.interactive-terminal-host .xterm{width:100%;height:100%}.terminal-agent-activity{background:var(--page);max-height:38%;color:var(--text);border-top:1px solid #2c3238;flex:none;overflow:auto}.terminal-agent-activity>summary{cursor:pointer;grid-template-columns:16px minmax(0,1fr) auto 14px;align-items:center;gap:8px;min-height:38px;padding:6px 12px;font-size:11px;list-style:none;display:grid}.terminal-agent-activity>summary::-webkit-details-marker{display:none}.terminal-agent-activity>summary>svg{width:14px;height:14px}.terminal-agent-activity>summary>svg:last-child{transition:transform .12s}.terminal-agent-activity[open]>summary>svg:last-child{transform:rotate(90deg)}.terminal-agent-activity>summary small{color:var(--muted)}.terminal-agent-activity ul{margin:0;padding:0 10px 10px;list-style:none}.terminal-agent-activity li{border-top:1px solid var(--border);padding:7px 8px}.terminal-agent-activity li>span{gap:1px;min-width:0;display:grid}.terminal-agent-activity li strong{text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.terminal-agent-activity li small{color:var(--muted);font-size:10px}.browser-workspace,.browser-page{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.browser-pages{flex:1;min-height:0;display:flex;overflow:hidden}.browser-page[hidden]{display:none}.browser-tabs-header{border-bottom:1px solid var(--border);min-width:0;display:flex}.browser-tabs{min-width:0;display:flex;overflow-x:auto}.browser-tab{border-right:1px solid var(--border);flex:none;max-width:190px;display:flex}.browser-tab[data-active=true]{background:var(--sidebar-hover)}.browser-tab button,.browser-add-tab{min-width:0;color:var(--muted);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;gap:6px;padding:9px 6px;display:flex}.browser-tab button[role=tab]{padding-left:10px}.browser-tab button[aria-selected=true]{color:var(--text)}.browser-tab button span{text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.browser-tab svg,.browser-add-tab svg{flex-shrink:0;width:14px;height:14px}.browser-add-tab{flex-shrink:0;width:34px}.browser-add-tab:disabled{opacity:.4;cursor:default}.browser-direct-viewport{background:#fff;min-height:0;display:flex;overflow:hidden}.browser-direct-viewport>iframe{border:0;width:100%;height:100%}.browser-direct-viewport>.workbar-empty{color:#555;flex:1}.browser-notice{color:var(--muted);overflow-wrap:anywhere;margin:0;padding:6px 9px;font-size:10px;line-height:1.5}.browser-tool{flex:1;grid-template-rows:auto auto minmax(0,1fr) auto;min-width:0;min-height:0;display:grid}.browser-toolbar{border-bottom:1px solid var(--border);grid-template-columns:repeat(3,30px) minmax(0,1fr) repeat(2,30px);gap:5px;padding:8px;display:grid}.browser-toolbar button{width:30px;height:30px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:5px;place-items:center;padding:0;display:grid}.browser-toolbar button:hover:not(:disabled){background:var(--sidebar-hover);color:var(--text)}.browser-toolbar button:disabled{opacity:.35;cursor:default}.browser-toolbar button svg{width:14px;height:14px}.browser-toolbar input{border:1px solid var(--border);background:var(--sidebar);min-width:0;height:30px;color:var(--text);border-radius:5px;padding:0 9px;font-size:11px}@media (width<=1100px){.app-shell.with-workbar-panel,.app-shell.with-workbar-panel.sidebar-collapsed{grid-template-columns:minmax(0,1fr)}.with-workbar-panel>.conversation-shell,.with-workbar-panel>.session-sidebar,.with-workbar-panel>.sidebar-expand{display:none}.workbar-panel{border-left:0;grid-column:1/-1}}@media (width<=520px){.workbar-launcher,.workbar-resource-list,.side-conversation-list{padding-left:12px;padding-right:12px}.generated-files-list em{display:none}.generated-files-list li>button{grid-template-columns:18px minmax(0,1fr) 16px}}.generated-file-edit{margin:0 12px 12px;font-size:12px}.generated-file-edit summary{cursor:pointer;color:var(--muted)}.generated-file-edit pre{white-space:pre;background:var(--sidebar);border-radius:6px;max-height:360px;margin:8px 0;padding:10px;overflow:auto}.turn-elapsed-running{color:var(--muted);font-variant-numeric:tabular-nums}.turn-duration{color:var(--muted);font-variant-numeric:tabular-nums;align-items:center;gap:12px;margin:16px 0;font-size:11px;display:flex}.turn-duration:after{background:var(--border);content:"";flex:1;height:1px}.turn-changes{border:1px solid var(--border);background:var(--page);border-radius:8px;min-width:0;margin:10px 0 4px;overflow:hidden}.turn-changes-header{border-bottom:1px solid var(--border);grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:12px;min-width:0;padding:12px 16px;display:grid}.turn-changes-icon{background:var(--sidebar);width:38px;height:38px;color:var(--muted);border-radius:6px;place-items:center;display:grid}.turn-changes-icon svg{width:19px;height:19px}.turn-changes-summary{gap:2px;min-width:0;display:grid}.turn-changes-summary>strong{overflow-wrap:anywhere;font-size:14px;font-weight:650}.turn-changes-totals,.turn-changes-file-stats{white-space:nowrap;font-variant-numeric:tabular-nums;gap:7px;display:flex}.turn-changes-totals{font-size:13px}.turn-changes-review-button{border:1px solid var(--border-strong);background:var(--page);min-width:36px;min-height:32px;color:var(--text);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;padding:5px 10px;font-size:12px;display:inline-flex}.turn-changes-review-button:hover,.turn-changes-review-button:focus-visible{background:var(--sidebar-hover)}.turn-changes-review-button svg{width:16px;height:16px}.turn-changes-list{padding:6px 12px 10px}.turn-changes-file{width:100%;min-width:0;min-height:39px;color:var(--text);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:5px;justify-content:space-between;align-items:center;gap:12px;padding:5px 7px;display:flex}.turn-changes-file:hover,.turn-changes-file:focus-visible,.turn-changes-file[aria-pressed=true]{background:var(--sidebar-hover)}.turn-changes-path{min-width:0;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.turn-changes-path strong{color:var(--text);font-weight:550}.turn-changes-file-stats{flex:none;font-size:11px}.turn-changes-more{min-height:32px;color:var(--text);cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:3px 7px;font-size:12px;display:inline-flex}.turn-changes-more:hover{color:var(--accent)}.turn-changes-more svg{width:14px;height:14px}.turn-changes-more svg.up{transform:rotate(180deg)}.turn-changes-warning{color:var(--muted);margin:7px;font-size:12px}.turn-changes-unavailable{border-left:2px solid var(--border-strong);color:var(--muted);margin:10px 0 4px;padding:8px 10px;font-size:12px}.turn-changes-review{max-height:min(62vh,560px);padding:8px 12px 12px;overflow:auto}.turn-changes-review>p[role]{color:var(--muted);margin:8px;font-size:12px}.turn-changes-review>p[role] button{border:1px solid var(--border);background:var(--page);color:var(--text);cursor:pointer;border-radius:5px;padding:4px 8px}.turn-changes-review-files{border-bottom:1px solid var(--border);max-height:176px;display:grid;overflow-y:auto}.turn-changes-review .review-file-diff{margin-top:8px}@media (width<=560px){.turn-changes-header{grid-template-columns:32px minmax(0,1fr) auto;gap:8px;padding:10px}.turn-changes-icon{width:32px;height:32px}.turn-changes-list{padding:5px}.turn-changes-file{gap:6px}}.message-load-full{border:1px solid var(--border-strong);background:var(--page);min-height:30px;color:var(--text);cursor:pointer;border-radius:5px;align-items:center;margin:5px 0;padding:4px 9px;font-size:12px;display:inline-flex}.message-load-full:hover:not(:disabled):not([aria-disabled=true]){background:var(--sidebar-hover)}.message-load-full:disabled,.message-load-full[aria-disabled=true]{opacity:.6;cursor:default}.message-full-text:focus-visible{outline:2px solid var(--focus);outline-offset:3px}.composer-session-notice{border:1px solid var(--border);background:var(--page);color:var(--muted);border-radius:10px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;padding:8px 12px;font-size:12px;display:flex}.conversation .message-row.response .markdown{letter-spacing:.005em;font-weight:450;line-height:1.8}.conversation .message-row.response .message-content,.conversation .message-row.response>.message-actions{width:100%;max-width:100%}.conversation .message-row.assistant.final-response{padding-inline:0}.conversation .message-row.response .markdown p{margin-bottom:1.15em}.conversation .message-row.response .markdown :is(ul,ol){margin-bottom:1.15em;padding-left:1.65em}.conversation .message-row.response .markdown ul{list-style:outside}.conversation .message-row.response .markdown ol{list-style:decimal}.conversation .message-row.response .markdown .contains-task-list{list-style:none}.conversation .message-row.response .markdown li+li{margin-top:.55em}.conversation .message-row.response .markdown li>:is(p,ul,ol){margin-bottom:.55em}.conversation .message-row.response .markdown :is(h1,h2,h3,h4){margin-top:1.6em;margin-bottom:.65em;line-height:1.45}.conversation .message-row.response .markdown :not(pre)>code{background:var(--text);border:0;border-radius:.4em;padding:.08em .35em}@supports (color:color-mix(in lab, red, red)){.conversation .message-row.response .markdown :not(pre)>code{background:color-mix(in srgb, var(--text) 8%, var(--page))}}.conversation .message-row.response .markdown :not(pre)>code{color:var(--text);-webkit-box-decoration-break:clone;box-decoration-break:clone;font-size:.93em}.conversation .message-row.response .markdown pre code{font-size:.9em;line-height:1.65}.conversation .message-row.response .markdown :is(a,.artifact-link){text-align:start;text-decoration:none}.conversation .message-row.response .markdown :is(a,.artifact-link):hover{text-underline-offset:.18em;text-decoration:underline}.conversation .message-row.response .markdown .artifact-link-path{display:none}.conversation .message-row.response .markdown .artifact-link:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:3px}.conversation .message-row.user{padding-block:12px 24px}.conversation .message-row.user .message-body{background:var(--text);border-radius:22px;padding:12px 18px}@supports (color:color-mix(in lab, red, red)){.conversation .message-row.user .message-body{background:color-mix(in srgb, var(--text) 5%, var(--page))}}.conversation .message-row.user .message-body{box-shadow:none;line-height:1.75}.conversation-history{max-width:var(--conversation-content-width);color:var(--muted);flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 12px;margin:0 auto 12px;padding:8px 16px;font-size:12px;display:flex}.conversation-history p{text-align:center;width:100%;margin:0}.conversation-history button{border:1px solid var(--border-strong);background:var(--page);color:var(--text);cursor:pointer;border-radius:6px;padding:6px 12px}.conversation-history button:disabled{opacity:.6;cursor:default}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--page:#fff;--sidebar:#f4f6f5;--sidebar-hover:#e8eeeb;--sidebar-active:#dde9e4;--border:oklch(91.6% .009 248);--border-strong:oklch(86.8% .014 248);--text:oklch(26.2% .018 249);--muted:oklch(52.5% .019 249);--subtle:oklch(65.2% .016 249);--settings-secondary-text:#4d5a61;--accent:oklch(51.6% .151 253);--focus:oklch(61.8% .14 251);--healthy:oklch(53.6% .12 158);--error:oklch(49.7% .187 28);--warning:oklch(56.4% .126 74);--conversation-content-width:820px;--conversation-font-size:14px;--sidebar-width:280px;--auxiliary-width:520px}*{box-sizing:border-box}.handoff-instructions{white-space:pre-wrap;overflow-wrap:anywhere;margin:8px 0 12px;font-size:13px}.settings-interaction{flex-shrink:0;max-height:55dvh;padding:0 20px;overflow-y:auto}.settings-interaction .question-panel{width:100%;margin:12px 0}.settings-interaction>button{border:1px solid var(--border);border-radius:6px;margin:8px 0;padding:6px 10px}.handoff-instructions p+p{margin-top:6px}.command-feedback{border-left:2px solid var(--border-strong);color:var(--muted);white-space:pre-wrap;overflow-wrap:anywhere;padding:10px 12px;font-size:13px;line-height:1.6}.plan-mode-bar{width:min(100% - 32px,800px);color:var(--muted);justify-content:flex-end;align-items:center;gap:12px;margin:0 auto 6px;font-size:12px;display:flex}.plan-mode-bar button{border:1px solid var(--border);min-height:28px;color:var(--text);border-radius:6px;padding:4px 8px}html,body,#root{width:100%;height:100%;overflow:hidden}body{background-color:var(--sidebar);color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font:14px/1.5 ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}::selection{background:oklch(51.6% .151 253/.18)}button,input,textarea{font:inherit;letter-spacing:0}input,textarea{caret-color:var(--accent)}button{color:inherit}button:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--focus);outline-offset:2px}svg{fill:none;stroke:currentColor;stroke-width:1.8px;width:1em;height:1em;display:block}.app-shell{grid-template-columns:var(--sidebar-width) minmax(0, 1fr);width:100%;height:100dvh;transition:grid-template-columns .18s;display:grid;position:relative}.app-shell.sidebar-collapsed{grid-template-columns:56px minmax(0,1fr)}.app-shell.is-resizing{-webkit-user-select:none;user-select:none;transition:none}.pane-resizer{z-index:35;touch-action:none;cursor:col-resize;border:0;width:9px;height:auto;margin:0;position:absolute;top:0;bottom:0}.pane-resizer:after{content:"";background:0 0;width:1px;transition:background-color .12s;position:absolute;top:0;bottom:0;left:4px}.pane-resizer:hover:after,.pane-resizer:focus-visible:after,.app-shell.is-resizing .pane-resizer:after{background:var(--focus)}.pane-resizer.left{left:calc(var(--sidebar-width) - 4px)}.pane-resizer.right{right:calc(var(--auxiliary-width) - 4px)}.session-sidebar{z-index:20;border-right:1px solid var(--border);background:var(--sidebar);flex-direction:column;min-height:0;padding:8px 10px;display:flex;position:relative;overflow:hidden}.sidebar-brand{height:calc(var(--spacing-1) * 11);justify-content:space-between;align-items:center;padding:0 4px 0 6px;display:flex}.brand-lockup{color:var(--text);align-items:center;font-weight:700;line-height:1;display:inline-flex}.brand-lockup.compact{font-size:18px}.compact .pixel-mark{width:21px;height:21px;margin-left:2px;display:inline-block;position:relative}.compact .pixel-mark i{background:currentColor;width:6px;height:6px;display:block;position:absolute}.compact .pixel-mark i:first-child{top:0;left:0}.compact .pixel-mark i:nth-child(2){top:0;left:5px}.compact .pixel-mark i:nth-child(3){top:0;left:10px}.compact .pixel-mark i:nth-child(4){top:5px;left:0}.compact .pixel-mark i:nth-child(5){top:5px;left:10px}.compact .pixel-mark i:nth-child(6){top:10px;left:0}.compact .pixel-mark i:nth-child(7){top:10px;left:5px}.compact .pixel-mark i:nth-child(8){top:10px;left:15px}.compact .pixel-mark i:nth-child(9){top:15px;left:0}.compact .pixel-mark i:nth-child(10){top:15px;left:15px}.collapse-button,.icon-button,.workspace-action,.sidebar-expand{border-style:var(--tw-border-style);color:var(--muted);background-color:#0000;border-width:0;border-radius:6px;flex-shrink:0;place-items:center;transition:background-color .14s,color .14s;display:grid}.collapse-button{width:30px;height:30px}.collapse-button svg,.icon-button svg{width:18px;height:18px}.collapse-button:hover,.icon-button:hover,.workspace-action:hover,.sidebar-expand:hover{background:var(--sidebar-hover);color:var(--text)}.new-session-button{justify-content:center;align-items:center;gap:calc(var(--spacing-1) * 2);border:1px solid var(--border-strong);background:var(--page);border-radius:19px;flex-shrink:0;width:calc(100% - 4px);height:38px;margin:8px 2px 10px;font-weight:550;display:flex}.new-session-button:hover{background:oklch(99% .004 248);border-color:oklch(78% .018 248)}.new-session-button svg{width:17px;height:17px}.workspace-heading{min-height:calc(var(--spacing-1) * 8);justify-content:space-between;align-items:center;padding:0 4px 0 8px;display:flex}.workspace-heading-label{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;font-size:11px;font-weight:650}.workspace-actions{gap:calc(var(--spacing-1) * .5);display:flex}.icon-button{width:28px;height:28px}.session-search{align-items:center;gap:calc(var(--spacing-1) * 1.5);flex:1;min-width:0;display:none}.session-search>svg{width:14px;height:14px;color:var(--subtle)}.session-search input{border-style:var(--tw-border-style);outline-style:var(--tw-outline-style);min-width:0;height:28px;color:var(--text);background-color:#0000;border-width:0;outline-width:0;flex:1;font-size:12px}.session-search button{width:calc(var(--spacing-1) * 6);height:calc(var(--spacing-1) * 6);border-style:var(--tw-border-style);color:var(--subtle);background-color:#0000;border-width:0;place-items:center;display:grid}.session-search button svg{width:14px;height:14px}.workspace-heading.is-searching .session-search{display:flex}.workspace-heading.is-searching .workspace-heading-label,.workspace-heading.is-searching .workspace-actions{display:none}.workspace-tree{min-height:0;padding-block:var(--spacing-1);scrollbar-width:thin;scrollbar-color:oklch(58% .02 250/.45) transparent;flex:1;overflow-y:auto}.workspace-group{margin-bottom:3px}.workspace-button{min-width:0;height:34px;color:var(--muted);cursor:pointer;border-radius:6px;align-items:center;display:flex}.workspace-button:hover{background:var(--sidebar-hover);color:var(--text)}.workspace-label{border-style:var(--tw-border-style);text-align:left;background-color:#0000;border-width:0;flex:1;align-items:center;min-width:0;height:100%;display:flex}.workspace-toggle{height:100%;width:calc(var(--spacing-1) * 7);border-style:var(--tw-border-style);background-color:#0000;border-width:0;flex-shrink:0;place-items:center;display:grid}.workspace-chevron{font-size:15px;transition:transform .14s;display:block;transform:rotate(0)}.workspace-group.collapsed .workspace-chevron{transform:rotate(-90deg)}.workspace-button strong{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:12.5px;font-weight:600;overflow:hidden}.workspace-row-actions{align-items:center;display:flex}.workspace-action{width:27px;height:27px}.workspace-action svg{width:14px;height:14px}.menu-action-button{width:27px!important;min-width:27px!important;height:27px!important;color:var(--muted)!important;padding:0!important}.menu-action-button svg{width:14px;height:14px}.workspace-sessions{display:grid}.workspace-group.collapsed .workspace-sessions{display:none}.session-row{align-items:center;min-width:0;display:flex;position:relative}.session{align-items:center;gap:calc(var(--spacing-1) * 2);border-style:var(--tw-border-style);text-align:left;min-width:0;height:34px;color:var(--muted);background-color:#0000;border-width:0;border-radius:6px;flex:1;padding:0 8px 0 29px;display:flex}.session:hover{background:var(--sidebar-hover);color:var(--text)}.session.active{background:var(--sidebar-active);color:var(--text)}.session-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:12.5px;overflow:hidden}.session-time{color:inherit;flex:none;font-size:10.5px}.session-row>.astryx-menu-trigger{right:var(--spacing-1);opacity:0;pointer-events:none;position:absolute}.session-row:hover>.astryx-menu-trigger,.session-row:focus-within>.astryx-menu-trigger{opacity:1;pointer-events:auto}.session-row:hover .session-time,.session-row:focus-within .session-time{visibility:hidden}.empty{min-height:32px;color:var(--muted);padding:7px 10px 7px 29px;font-size:12px}.sidebar-expand{top:calc(var(--spacing-1) * 2);left:calc(var(--spacing-1) * 2);z-index:30;width:40px;height:40px;position:fixed}.sidebar-expand svg{width:19px;height:19px}@media not all and (width<=760px){.sidebar-collapsed .session-sidebar{align-items:center;padding:8px}.sidebar-collapsed .sidebar-brand,.sidebar-collapsed .workspace-heading,.sidebar-collapsed .workspace-tree,.sidebar-collapsed .session-view-switch,.sidebar-collapsed .sidebar-scope-note{display:none}.sidebar-collapsed .new-session-button{background:0 0;border-color:#0000;border-radius:6px;width:40px;height:40px;margin:48px 0 0;padding:0}.sidebar-collapsed .new-session-button span{display:none}.sidebar-collapsed .new-session-button:hover{background:var(--sidebar-hover)}}.conversation-shell{background:var(--page);grid-template-rows:auto minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);min-width:0;min-height:0;display:grid;position:relative;container:conversation-shell/inline-size}.conversation-shell.landing{grid-template-rows:auto auto minmax(0,1fr)}.landing .conversation{grid-area:3/1}.task-header{border-bottom:1px solid var(--border);align-items:center;gap:16px;min-width:0;min-height:64px;padding:10px 24px;display:flex}.task-header-menu{display:none}.task-identity{flex:1;min-width:0}.task-workspace{text-overflow:ellipsis;white-space:nowrap;max-width:100%;color:var(--muted);font-size:11px;line-height:1.4;display:block;overflow:hidden}.task-identity h1{text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:15px;font-weight:650;line-height:1.4;overflow:hidden}.task-header .connection-state{flex:none;display:inline-flex}.task-tools-trigger{width:30px;height:30px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;flex:0 0 30px;place-items:center;display:grid}.task-tools-trigger:hover:not(:disabled){background:var(--sidebar-hover);color:var(--text)}.task-tools-trigger:disabled{opacity:.4;cursor:default}.task-tools-trigger svg{width:17px;height:17px}.session-usage{min-width:0;color:var(--muted);font-variant-numeric:tabular-nums;border:0;flex:0 auto;align-items:center;gap:11px;margin:0;padding:0;font:10.5px ui-monospace,SFMono-Regular,Menlo,monospace;display:flex}.session-usage span{white-space:nowrap;align-items:center;gap:4px;display:inline-flex}.session-usage svg{stroke-width:1.9px;width:12px;height:12px}.session-usage b{color:var(--subtle);font-weight:400}.shell-state{width:min(780px,100% - 48px);min-width:0;color:var(--muted);flex-direction:column;justify-content:center;align-items:flex-start;gap:12px;margin:auto;display:flex}.shell-state h2,.shell-state p{margin:0;font-size:14px;font-weight:500}.shell-state button{border:1px solid var(--border-strong);background:var(--page);min-height:36px;color:var(--text);cursor:pointer;border-radius:6px;align-items:center;gap:7px;padding:0 12px;display:inline-flex}.shell-state button:hover{background:var(--sidebar-hover)}.shell-state button svg{width:15px;height:15px}.shell-loading .session-sidebar :is(.new-session-button,.workspace-heading,.session-view-switch,.workspace-tree),.conversation{scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:oklch(58% .02 250/.45) transparent;min-height:0;padding:8px 0 28px;overflow-y:auto}.landing-conversation{pointer-events:none;place-items:center;display:grid}.landing-welcome{text-align:center;padding:0 24px;transform:translateY(-180px)}.landing-brand{border-style:var(--tw-border-style);pointer-events:auto;background-color:#0000;border-width:0;justify-content:center;align-items:center;display:flex}.landing-brand .brand-lockup{align-items:flex-end;font-size:44px;animation:2.1s cubic-bezier(.22,1,.36,1) both brand-lockup}.landing-brand .brand-word{opacity:0;animation:2.1s cubic-bezier(.22,1,.36,1) both brand-word-slide;display:inline-block}.landing-brand .pixel-mark{width:66px;height:55px;margin-left:4px;animation:2.1s cubic-bezier(.22,1,.36,1) both pixel-nudge;display:inline-block;position:relative}.landing-brand .pixel-mark i{background-color:var(--piece,currentColor);border-radius:2px;width:11px;height:11px;animation:.35s cubic-bezier(.22,1,.36,1) both pixel-drop,2.1s both piece-to-ink;display:block;position:absolute}.landing-brand .pixel-mark i:after{content:"";border-radius:2px;animation:2.1s both piece-texture-fade;position:absolute;inset:0;box-shadow:inset 0 2px oklch(99% 0 0/.3),inset 0 -2px oklch(0% 0 0/.16),inset 2px 0 oklch(99% 0 0/.12),inset -2px 0 oklch(0% 0 0/.08)}.landing-brand .pixel-mark i:first-child{top:0;left:11px}.landing-brand .pixel-mark i:nth-child(2){top:0;left:22px}.landing-brand .pixel-mark i:nth-child(3){top:0;left:33px}.landing-brand .pixel-mark i:nth-child(4){top:11px;left:33px}.landing-brand .pixel-mark i:nth-child(5){top:11px;left:11px}.landing-brand .pixel-mark i:nth-child(6){top:22px;left:11px}.landing-brand .pixel-mark i:nth-child(7){top:22px;left:22px}.landing-brand .pixel-mark i:nth-child(8){top:33px;left:11px}.landing-brand .pixel-mark i:nth-child(9){top:22px;left:44px}.landing-brand .pixel-mark i:nth-child(10){top:33px;left:44px}.landing-brand .pixel-mark i:nth-child(11){top:44px;left:44px}.landing-brand .pixel-mark i:nth-child(12){top:44px;left:55px}.landing-brand .pixel-mark i:nth-child(13){top:44px;left:0}.landing-brand .pixel-mark i:nth-child(14){top:44px;left:11px}.landing-brand .pixel-mark i:nth-child(15){top:44px;left:22px}.landing-brand .pixel-mark i:nth-child(16){top:44px;left:33px}.landing-brand .pixel-mark i:nth-child(5),.landing-brand .pixel-mark i:nth-child(6),.landing-brand .pixel-mark i:nth-child(7),.landing-brand .pixel-mark i:nth-child(8){--piece:oklch(55% .105 37);animation-delay:.25s,0s}.landing-brand .pixel-mark i:first-child,.landing-brand .pixel-mark i:nth-child(2),.landing-brand .pixel-mark i:nth-child(3),.landing-brand .pixel-mark i:nth-child(4){--piece:oklch(52% .083 252);animation-delay:.5s,0s}.landing-brand .pixel-mark i:nth-child(9),.landing-brand .pixel-mark i:nth-child(10),.landing-brand .pixel-mark i:nth-child(11),.landing-brand .pixel-mark i:nth-child(12){--piece:oklch(66% .08 111);animation-delay:.75s,0s}.landing-brand .pixel-mark i:nth-child(13),.landing-brand .pixel-mark i:nth-child(14),.landing-brand .pixel-mark i:nth-child(15),.landing-brand .pixel-mark i:nth-child(16){--piece:oklch(69% .116 78)}.landing-brand .pixel-mark i:nth-child(11),.landing-brand .pixel-mark i:nth-child(12),.landing-brand .pixel-mark i:nth-child(13),.landing-brand .pixel-mark i:nth-child(14),.landing-brand .pixel-mark i:nth-child(15),.landing-brand .pixel-mark i:nth-child(16){opacity:0;animation:2.1s both pixel-doomed}.landing-brand .pixel-mark i:nth-child(11),.landing-brand .pixel-mark i:nth-child(12){animation-name:pixel-doomed-late}.landing-brand .pixel-mark i:nth-child(13){--dx:-12px;--rot:-22deg}.landing-brand .pixel-mark i:nth-child(14){--dx:-8px;--rot:-12deg}.landing-brand .pixel-mark i:nth-child(15){--dx:-3px;--rot:-5deg}.landing-brand .pixel-mark i:nth-child(16){--dx:3px;--rot:6deg}.landing-brand .pixel-mark i:nth-child(11){--dx:8px;--rot:14deg}.landing-brand .pixel-mark i:nth-child(12){--dx:13px;--rot:24deg}@keyframes pixel-drop{0%{opacity:0;transform:translateY(-40px)}to{opacity:1;transform:none}}@keyframes piece-to-ink{0%,72%{background-color:var(--piece,currentColor)}86%,to{background-color:currentColor}}@keyframes piece-texture-fade{0%,72%{opacity:1}86%,to{opacity:0}}@keyframes pixel-doomed{0%{opacity:0;transform:translateY(-40px)}13%,60%{opacity:1;transform:none}74%{opacity:.9;transform:translate(var(--dx), 14px) rotate(var(--rot)) scale(.85)}to{opacity:0;transform:translate(calc(var(--dx) * 2.5), 44px) rotate(calc(var(--rot) * 1.5)) scale(.5)}}@keyframes pixel-doomed-late{0%,33%{opacity:0;transform:translateY(-40px)}44%,60%{opacity:1;transform:none}74%{opacity:.9;transform:translate(var(--dx), 14px) rotate(var(--rot)) scale(.85)}to{opacity:0;transform:translate(calc(var(--dx) * 2.5), 44px) rotate(calc(var(--rot) * 1.5)) scale(.5)}}@keyframes brand-word-slide{0%,61.99%{opacity:0;transform:translate(-64px)}62%{opacity:1;transform:translate(2px)}70%,to{opacity:1;transform:none}}@keyframes brand-lockup{0%,56%{transform:translate(-52px)}64%{transform:translate(-38px)}90%,to{transform:none}}@keyframes pixel-nudge{0%,60%{transform:none}65%{transform:translateY(13px)}71%{transform:translateY(11px)}82%,to{transform:translate(-11px,11px)}}.conversation-turn{width:min(var(--conversation-content-width), calc(100% - 48px));margin:0 auto;padding:12px 0 30px;position:relative}.conversation-turn+.conversation-turn{border-top:1px solid var(--border);padding-top:26px}.turn-heading{min-height:24px;color:var(--muted);justify-content:flex-end;align-items:center;gap:12px;margin-bottom:8px;font-size:11.5px;display:flex}.turn-number{color:var(--muted);font-weight:650}.turn-state{white-space:nowrap;align-items:center;gap:7px;display:inline-flex}.turn-state.complete{color:var(--healthy)}.turn-state.failed{color:var(--error)}.turn-state.interrupted{color:var(--warning)}.turn-state.running{color:var(--accent)}.message-row{width:100%;margin:0;padding:10px 0;position:relative}.message-row.user{flex-direction:column;align-items:flex-end;padding:2px 0 18px;display:flex}.message-row.assistant{width:100%;padding:5px 0}.message-row.assistant.response{padding:10px 0}.message-row.assistant.final-response{margin-top:8px;padding:16px 0 10px}.message-row.detail-only{padding:4px 0}.conversation-turn>.process-sequence{width:100%;margin:7px 0}.provider-outcome{border-left:2px solid var(--border-strong);color:var(--muted);overflow-wrap:anywhere;padding:5px 12px;font-size:12px}.provider-outcome.failed{border-color:var(--error);color:var(--text)}.provider-outcome strong{font-size:12px;font-weight:650;display:block}.provider-outcome p{white-space:pre-wrap;margin:3px 0}.provider-outcome small{color:var(--muted);font-size:11px;display:block}.provider-outcome-actions{margin-top:8px}.provider-outcome-actions button{align-items:center;gap:calc(var(--spacing-1) * 1.5);border:1px solid var(--border-strong);background:var(--page);height:28px;color:var(--text);border-radius:5px;padding:0 10px;font-size:11.5px;display:inline-flex}.provider-outcome-actions button:hover:not(:disabled){background:var(--sidebar-hover)}.provider-outcome-actions button:disabled{opacity:.5;cursor:not-allowed}.provider-outcome-actions svg{width:13px;height:13px}.message-content{min-width:0;max-width:min(72%,620px)}.message-row.assistant .message-content{width:100%;max-width:none}.message-row.assistant.response .message-content{max-width:calc(var(--conversation-content-width) - 60px)}.message-row.assistant.response>.message-actions{width:min(calc(var(--conversation-content-width) - 60px), 100%)}.message-body{color:var(--text);font-size:var(--conversation-font-size);overflow-wrap:anywhere;white-space:pre-wrap;line-height:1.65}.message-row.user .message-body{background:var(--sidebar-active);border-radius:16px 16px 5px;padding:10px 15px;box-shadow:inset 0 0 0 1px oklch(72% .06 85/.18)}.message-attachments{flex-wrap:wrap;justify-content:flex-end;gap:7px;max-width:100%;margin-bottom:7px;display:flex}.message-attachment{border:1px solid var(--border);background:var(--sidebar);max-width:210px;min-height:40px;color:var(--muted);border-radius:8px;align-items:center;gap:8px;padding:5px 9px 5px 5px;font-size:11px;display:flex}.message-attachment img{object-fit:cover;background:var(--sidebar-hover);border-radius:5px;flex:none;width:42px;height:42px}.message-attachment>svg{flex:none;width:17px;height:17px;margin-left:4px}.message-attachment span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.markdown{color:var(--text);font-size:var(--conversation-font-size);overflow-wrap:anywhere;line-height:1.72}.markdown>:first-child{margin-top:0}.markdown>:last-child{margin-bottom:0}.markdown p{margin:0 0 14px}.markdown h1,.markdown h2,.markdown h3,.markdown h4{color:var(--text);margin:24px 0 10px;font-weight:650;line-height:1.3}.markdown h1{font-size:1.45em}.markdown h2{font-size:1.3em}.markdown h3{font-size:1.15em}.markdown ul,.markdown ol{margin:0 0 14px;padding-left:23px}.markdown li+li{margin-top:6px}.markdown li>:is(p,ul,ol){margin-bottom:7px}.markdown strong{font-weight:650}.markdown blockquote{border:1px solid var(--border-strong);color:var(--muted);background:oklch(97% .006 249);border-radius:6px;margin:0 0 12px;padding:8px 14px}.markdown hr{border:0;border-top:1px solid var(--border);margin:18px 0}.markdown a{color:var(--accent);text-underline-offset:2px;-webkit-text-decoration:underline oklch(51.6% .151 253/.35);text-decoration:underline oklch(51.6% .151 253/.35)}.markdown code{color:oklch(35% .02 249);background:oklch(95.5% .008 249);border:1px solid oklch(86.8% .014 248/.55);border-radius:5px;padding:2px 5px;font:.9em ui-monospace,SFMono-Regular,Menlo,monospace}.markdown-code-block{border:1px solid var(--border);background:oklch(96.8% .006 249/.9);border-radius:8px;max-width:100%;margin:0 0 14px;overflow:hidden}.markdown-code-toolbar{min-height:calc(var(--spacing-1) * 8);justify-content:flex-end;align-items:center;gap:calc(var(--spacing-1) * 2);border-bottom:1px solid var(--border);color:var(--muted);padding:3px 6px;font-size:11px;line-height:1.35;display:flex}.markdown-code-toolbar span{overflow-wrap:anywhere;min-width:0}.markdown-code-toolbar button{width:calc(var(--spacing-1) * 6);height:calc(var(--spacing-1) * 6);color:var(--muted);background:0 0;border:0;border-radius:5px;flex-shrink:0;place-items:center;display:grid}.markdown-code-toolbar button:hover:not(:disabled){background:var(--sidebar-hover);color:var(--text)}.markdown-code-toolbar button:disabled{cursor:wait;opacity:.55}.markdown-code-toolbar svg{width:13px;height:13px}.markdown-code-scroll{max-width:100%;overflow-x:auto}.markdown pre{background:0 0;border:0;width:max-content;min-width:100%;margin:0;padding:12px 14px}.markdown pre code{color:var(--text);white-space:pre;background:0 0;border:0;padding:0;font-size:12px}.markdown-table-scroll{max-width:100%;margin:0 0 14px;overflow-x:auto}.markdown table{border-collapse:collapse;width:max-content;min-width:100%;margin:0;font-size:.95em}.markdown th,.markdown td{border:1px solid var(--border);text-align:left;vertical-align:top;padding:7px 9px}.markdown th{background:oklch(96% .007 249);font-weight:650}.markdown input[type=checkbox]{accent-color:var(--accent);margin-right:7px}.message-details{width:min(var(--conversation-content-width), calc(100% - 4px));color:var(--muted);margin:4px auto}.message-details summary{min-height:calc(var(--spacing-1) * 9);align-items:center;gap:calc(var(--spacing-1) * 2);cursor:pointer;border-radius:7px;padding:5px 8px;font-size:12.5px;list-style:none;display:flex}.message-details summary::-webkit-details-marker{display:none}.process-sequence summary::-webkit-details-marker{display:none}.message-details summary:hover{color:var(--text);background:oklch(95% .008 249/.72)}.details-mark{border-bottom:1.5px solid;border-right:1.5px solid;flex:none;width:8px;height:8px;transition:transform .14s;transform:rotate(-45deg)}.message-details[open] .details-mark,.process-sequence[open]>summary .details-mark{transform:rotate(45deg)}.details-body{color:oklch(42% .018 249);white-space:pre-wrap;overflow-wrap:anywhere;margin:2px 8px 9px 38px;font-size:12px;line-height:1.6}.tool-icon{width:22px;height:22px;color:var(--healthy);background:var(--healthy);border-radius:6px;flex-shrink:0;place-items:center;display:grid}@supports (color:color-mix(in lab, red, red)){.tool-icon{background:color-mix(in oklch, var(--healthy) 10%, transparent)}}.tool-icon svg{width:13px;height:13px}.details-title{align-items:baseline;gap:calc(var(--spacing-1) * 2);flex:1;min-width:0;display:flex}.tool-name{color:var(--healthy);flex-shrink:0;font-size:12.5px;font-weight:650}.tool-summary{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--muted);font:11.5px ui-monospace,SFMono-Regular,Menlo,monospace;overflow:hidden}.tool-evidence{border:1px solid var(--border);background:oklch(97% .006 249/.75);border-radius:6px;max-height:440px;padding:9px 10px;overflow:auto}.status-mark{flex-shrink:0;width:14px;height:14px}.status-mark.done{color:var(--healthy)}.status-mark.error{color:var(--error)}.status-mark.warn{color:var(--warning)}.status-mark.running{justify-content:center;align-items:center;display:flex}.status-mark.running i,.activity-chip-dot,.conversation-running-dot{background:var(--accent);border-radius:50%;width:7px;height:7px;animation:1.5s ease-out infinite conversation-pulse}.tool-line.error :is(.tool-icon,.tool-name){color:var(--error)}.tool-line.error .tool-icon{background:oklch(50% .18 28/.09)}.tool-line.warn :is(.tool-icon,.tool-name){color:var(--warning)}.thinking-line .tool-icon{color:var(--muted);background:oklch(55% .02 249/.1)}.thinking-line .tool-name{color:var(--text);font-weight:600}.tool-line-empty{min-height:calc(var(--spacing-1) * 8);align-items:center;gap:calc(var(--spacing-1) * 2);color:var(--muted);padding:3px 8px;display:flex}.process-sequence{width:min(var(--conversation-content-width), calc(100% - 48px));border:1px solid var(--border);color:var(--muted);background:oklch(99% .004 249/.42);border-radius:7px;margin:7px auto;overflow:hidden}.process-sequence.error{border-color:var(--error)}@supports (color:color-mix(in lab, red, red)){.process-sequence.error{border-color:color-mix(in oklch, var(--error) 32%, var(--border))}}.process-sequence>summary{cursor:pointer;grid-template-columns:8px minmax(0,auto) minmax(0,1fr) 14px;align-items:center;gap:9px;min-height:42px;padding:6px 10px;font-size:12px;list-style:none;transition:background-color .14s,color .14s;display:grid;position:relative;overflow:hidden}.process-sequence>summary>*{z-index:1;position:relative}.process-sequence>summary:hover{color:var(--text);background:oklch(95% .008 249/.72)}.process-sequence-title{align-items:baseline;gap:8px;min-width:0;display:flex}.process-sequence-title strong{color:var(--text);white-space:nowrap;font-size:12.5px;font-weight:620}.process-sequence-title small{color:var(--muted);white-space:nowrap;font-size:11px}.process-sequence-preview{min-width:0;color:var(--subtle);text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;overflow:hidden}.process-sequence-body{opacity:0;grid-template-rows:0fr;transition:grid-template-rows .18s,opacity .14s;display:grid}.process-sequence-body>div{border-top:1px solid #0000;min-height:0;padding:0 10px;transition:border-color .14s,padding .18s;overflow:hidden}.process-sequence[open] .process-sequence-body{opacity:1;grid-template-rows:1fr}.process-sequence[open] .process-sequence-body>div{border-top-color:var(--border);padding-top:4px;padding-bottom:5px}.process-sequence-body .message-row{width:100%;padding:0}.process-step{min-width:0;position:relative;overflow:hidden}.process-step.running .message-details>summary,.process-step.running .tool-evidence-card>summary,.process-sequence.running>summary,.subagent-tool.running>summary,.subagent-thinking.running>summary{position:relative;overflow:hidden}.process-step.running .message-details>summary:after,.process-step.running .tool-evidence-card>summary:after,.process-sequence.running>summary:after,.subagent-tool.running>summary:after,.subagent-thinking.running>summary:after{z-index:0;pointer-events:none;content:"";background:linear-gradient(100deg, transparent 18%, var(--text) 45%, transparent 72%);position:absolute;inset:0}@supports (color:color-mix(in lab, red, red)){.process-step.running .message-details>summary:after,.process-step.running .tool-evidence-card>summary:after,.process-sequence.running>summary:after,.subagent-tool.running>summary:after,.subagent-thinking.running>summary:after{background:linear-gradient(100deg, transparent 18%, color-mix(in oklch, var(--text) 8%, transparent) 45%, transparent 72%)}}.process-step.running .message-details>summary:after,.process-step.running .tool-evidence-card>summary:after,.process-sequence.running>summary:after,.subagent-tool.running>summary:after,.subagent-thinking.running>summary:after{animation:1.8s ease-in-out infinite execution-shimmer;transform:translate(-115%)}.process-step.running .message-details>summary>*,.process-step.running .tool-evidence-card>summary>*,.subagent-tool.running>summary>*,.subagent-thinking.running>summary>*{z-index:1;position:relative}.activity-card{border:1px solid var(--border);background:oklch(99% .004 249/.6);border-radius:8px;overflow:hidden}.activity-card summary{min-height:44px;padding:7px 10px}.activity-card .details-mark{order:3}.activity-icon{border-radius:7px;flex-shrink:0;place-items:center;width:28px;height:28px;display:grid}.activity-icon svg{width:16px;height:16px}.activity-card.subagent .activity-icon{color:var(--accent);background:oklch(52% .15 253/.1)}.activity-card.workflow .activity-icon{color:oklch(55% .09 310);background:oklch(55% .09 310/.12)}.activity-main{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.activity-title,.activity-meta{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.activity-title{color:var(--text);font-weight:550}.activity-meta{color:var(--subtle);font-size:11px}.activity-card .details-body{margin-left:48px}.subagent-card-open{width:100%;min-height:60px;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;padding:12px;display:flex}.subagent-card-open:disabled{cursor:default}.subagent-card-open:not(:disabled):hover{background:var(--sidebar-hover)}.subagent-card-open:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.subagent-state{color:var(--muted);flex-shrink:0;font-size:11px}.subagent-state.running{color:var(--accent)}.subagent-state.done{color:var(--healthy)}.subagent-state.error,.subagent-state.interrupted{color:var(--error)}.subagent-receipt{border-top:1px solid var(--border);color:var(--muted);font-size:11px}.subagent-receipt>summary{cursor:pointer;min-height:0;padding:6px 12px}.subagent-receipt>p{margin:4px 12px}.subagent-receipt pre{white-space:pre-wrap;overflow-wrap:anywhere}.app-shell.with-subagent-panel{grid-template-columns:var(--sidebar-width) minmax(0,1fr) var(--auxiliary-width)}.app-shell.with-subagent-panel.sidebar-collapsed{grid-template-columns:56px minmax(0,1fr) var(--auxiliary-width)}.subagent-panel{min-width:0;height:100dvh;min-height:0;color:var(--text);background:var(--page);border-left:1px solid var(--border);flex-direction:column;display:flex;position:relative;overflow:hidden}.subagent-panel-heading{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;min-height:58px;padding:12px 20px;display:flex}.subagent-breadcrumb{align-items:center;gap:10px;min-width:0;display:flex}.subagent-panel-heading :is(h1,h2){white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:13px;font-weight:500;overflow:hidden}.subagent-breadcrumb>svg{width:17px;height:17px;color:var(--accent);flex-shrink:0}.subagent-list{flex:1;min-height:0;padding:24px;overflow-y:auto}.subagent-list-group{margin-bottom:30px}.subagent-list-group :is(h2,h3){color:var(--muted);align-items:center;gap:8px;margin:0 0 12px;font-size:12px;font-weight:400;display:flex}.subagent-list-group :is(h2,h3) span{color:var(--subtle)}.subagent-list-group>p,.subagent-list>p{color:var(--muted);margin:10px 0;font-size:12px}.subagent-task-row{border-radius:8px;min-height:58px}.subagent-task-end{color:var(--subtle);align-items:center;gap:12px;font-size:11px;display:flex}.subagent-task-end svg{width:14px;height:14px}.subagent-detail{flex-direction:column;flex:1;gap:12px;min-width:0;min-height:0;padding:24px;display:flex}.subagent-detail[hidden]{display:none}.subagent-detail-heading{justify-content:space-between;gap:12px;display:flex}.subagent-detail-heading h3{overflow-wrap:anywhere;margin:0 0 5px;font-size:14px;font-weight:500}.subagent-duration{color:var(--muted);margin-left:10px;font-size:11px}.subagent-metadata{color:var(--muted);overflow-wrap:anywhere;flex-wrap:wrap;gap:5px 12px;font-size:11px;display:flex}.subagent-metadata>span:last-child{white-space:nowrap;text-overflow:ellipsis;width:100%;overflow:hidden}.subagent-task{font-size:12px}.subagent-task summary{cursor:pointer;color:var(--muted)}.subagent-task pre{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--sidebar-hover);border-radius:8px;max-height:150px;margin:8px 0;padding:10px;overflow:auto}.subagent-transcript{overflow-wrap:anywhere;scrollbar-width:thin;flex-direction:column;flex:1;min-height:80px;padding-right:8px;display:flex;overflow-y:auto}.subagent-message{width:100%;margin:0 0 14px}.subagent-message:empty{display:none}.subagent-message.user{justify-content:flex-end;display:flex}.subagent-message.assistant{align-self:stretch}.subagent-user-message{white-space:pre-wrap;width:fit-content;max-width:min(82%,520px);font-size:var(--conversation-font-size);background:var(--sidebar-active);box-shadow:inset 0 0 0 1px var(--border-strong);border-radius:14px 14px 5px;margin:0;padding:9px 12px;line-height:1.65}@supports (color:color-mix(in lab, red, red)){.subagent-user-message{box-shadow:inset 0 0 0 1px color-mix(in oklch, var(--border-strong) 45%, transparent)}}.subagent-message.assistant>.markdown{font-size:var(--conversation-font-size)}.subagent-tool{border:1px solid var(--border);border-radius:8px;margin:8px 0;font-size:12px}.subagent-tool summary{cursor:pointer;justify-content:space-between;align-items:center;gap:10px;padding:10px;display:flex}.subagent-tool-label{color:var(--muted);margin:8px 10px;font-size:11px;display:block}.subagent-tool pre,.subagent-thinking pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:260px;margin:10px;font-size:12px;line-height:1.6;overflow:auto}.subagent-thinking{color:var(--muted);margin:10px 0;font-size:12px}.subagent-thinking summary{cursor:pointer}.subagent-final{border-top:1px solid var(--border);margin-top:12px;padding-top:12px}.subagent-final :is(h2,h3){color:var(--muted);margin:0 0 10px;font-size:12px}.subagent-live,.subagent-footnote{color:var(--muted);font-size:11px}.subagent-live{color:var(--accent)}.subagent-footnote{margin:0}@media (width<=1100px){.app-shell.with-subagent-panel,.app-shell.with-subagent-panel.sidebar-collapsed{grid-template-columns:minmax(0,1fr)}.with-subagent-panel>.conversation-shell,.with-subagent-panel>.session-sidebar,.with-subagent-panel>.sidebar-expand{display:none}.subagent-panel{border-left:0;grid-column:1/-1}.subagent-panel-heading{padding:12px 16px}.subagent-detail,.subagent-list{padding:20px 16px}.subagent-card-open{flex-wrap:wrap}}.plan-card{border:1px solid var(--border);background:var(--page);border-radius:8px;min-width:0;overflow:hidden}.plan-card-header{align-items:center;gap:4px;padding:4px 8px;display:flex}.plan-card-header button{min-height:36px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:5px}.plan-card-header button:hover{color:var(--text);background:var(--sidebar-hover)}.plan-card-header button:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}.plan-card-header svg{flex-shrink:0;width:15px;height:15px}.plan-card-toggle{text-align:left;flex:1;align-items:center;gap:8px;min-width:0;padding:6px 8px;font-size:12px;font-weight:600;display:flex}.plan-card-toggle>span:first-of-type{color:var(--text)}.plan-card-disclosure{margin-left:auto;font-size:11px;font-weight:400}.plan-card-copy{flex-shrink:0;place-items:center;width:36px;display:grid}.plan-card-body{padding:4px 16px 16px}.plan-card-note{color:var(--muted);margin:0 0 12px;font-size:12px;line-height:1.5}.plan-card-body>.markdown,.plan-card-body>.message-full-text>.markdown{overflow-x:auto}.plan-card .markdown ol{list-style-type:decimal}.plan-card .markdown ul{list-style-type:disc}.plan-card .markdown ul.contains-task-list{list-style-type:none}.plan-card-evidence{color:var(--muted);margin-top:16px;font-size:11px}.plan-card-evidence>summary{cursor:pointer;padding:4px 0}.plan-card-evidence pre{margin-top:8px}.plan-card-feedback{color:var(--muted);padding:0 16px 8px;font-size:11px;display:block}.activity-bar{gap:calc(var(--spacing-1) * 1.5);flex-wrap:wrap;width:100%;max-width:840px;margin-inline:auto;padding:0 15px 2px;display:flex}.activity-chip{align-items:center;gap:calc(var(--spacing-1) * 1.5);border:1px solid var(--border);min-width:0;max-width:320px;color:var(--muted);background:oklch(99% .004 249/.78);border-radius:999px;padding:3px 10px;font-size:11.5px;display:flex}.activity-chip>svg{width:12px;height:12px}.activity-chip-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.activity-chip.more{color:var(--muted)}.activity-chip.done>svg{color:var(--healthy)}.activity-chip.error>svg{color:var(--error)}.activity-chip.interrupted>svg{color:var(--warning)}.conversation-running{align-items:center;gap:calc(var(--spacing-1) * 2);width:min(840px,100% - 48px);color:var(--muted);margin-inline:auto;margin-bottom:18px;font-size:12px;display:flex}.jump-to-latest{z-index:12;border:1px solid var(--border-strong);background:var(--page);color:var(--text);cursor:pointer;border-radius:6px;align-items:center;gap:6px;padding:8px 10px;display:flex;position:absolute;bottom:150px;right:48px;box-shadow:0 4px 16px #0002}.jump-to-latest svg{width:14px;height:14px}.markdown-table-scroll:focus-visible,.markdown-code-scroll:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}@keyframes conversation-pulse{70%{box-shadow:0 0 0 6px oklch(52% .15 253/0)}to{box-shadow:0 0 oklch(52% .15 253/0)}}@keyframes execution-shimmer{to{transform:translate(115%)}}@media (prefers-reduced-motion:reduce){.process-sequence-body,.process-sequence-body>div,.process-sequence>summary{transition:none}.process-step.running .message-details>summary:after,.process-step.running .tool-evidence-card>summary:after,.process-sequence.running>summary:after,.subagent-tool.running>summary:after,.subagent-thinking.running>summary:after{content:none;animation:none}}.switching{align-items:center;display:flex}.message-actions{margin-top:var(--spacing-1);height:calc(var(--spacing-1) * 6);justify-content:flex-end;align-items:center;gap:var(--spacing-1);color:var(--subtle);opacity:0;font-size:10.5px;transition:opacity .12s;display:flex}.message-row:hover>.message-actions,.message-row:focus-within>.message-actions{opacity:1}.message-actions.copy-failed{opacity:1;flex-wrap:wrap;height:auto;min-height:24px}.copy-error{text-align:right;flex-basis:100%}.message-actions button{width:calc(var(--spacing-1) * 6);height:calc(var(--spacing-1) * 6);border-style:var(--tw-border-style);background-color:#0000;border-width:0;border-radius:5px;place-items:center;display:grid}.message-actions button:hover{color:var(--text);background:oklch(95% .008 249)}.message-actions svg{width:13px;height:13px}.message-editor{width:min(100%,620px);margin-left:auto}.message-editor textarea{resize:vertical;border:1px solid var(--border-strong);background:var(--page);border-radius:14px;outline:0;width:100%;min-height:52px;max-height:220px;padding:10px 14px}.message-row.user:has(.message-editor)>.message-content{display:none}.message-editor textarea:focus-visible{outline:2px solid var(--border-strong);outline-offset:2px}.message-edit-actions button:disabled{opacity:.45;cursor:not-allowed}.message-edit-actions{margin-top:calc(var(--spacing-1) * 2);justify-content:flex-end;gap:calc(var(--spacing-1) * 2);display:flex}.message-edit-actions button{border:1px solid var(--border-strong);background:var(--page);border-radius:15px;height:30px;padding:0 14px;font-size:12.5px}.message-edit-actions .confirm{border-color:var(--text);background:var(--text);color:var(--page)}.turn-rail{z-index:10;gap:calc(var(--spacing-1) * .5);border:1px solid #0000;border-radius:8px;flex-direction:column;width:16px;max-height:70%;padding:4px 2px;transition:width .16s,background-color .16s,border-color .16s;display:flex;position:absolute;top:50%;right:24px;overflow-y:auto;transform:translateY(-50%)}.turn-rail:hover,.turn-rail:focus-within{border-color:var(--border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:oklch(99% .004 249/.92);width:240px;padding:6px;box-shadow:0 12px 28px oklch(26% .02 249/.14)}.turn-tick{align-items:center;gap:calc(var(--spacing-1) * 2);border-style:var(--tw-border-style);background-color:#0000;border-width:0;border-radius:6px;width:100%;padding:3px 4px;display:flex}.turn-tick:hover{background:oklch(95% .008 249)}.turn-tick-mark{background:var(--subtle);border-radius:1px;flex:none;width:8px;height:2px}.turn-tick-label{text-align:left;text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--muted);font-size:12px;display:none;overflow:hidden}.turn-rail:hover .turn-tick-label,.turn-rail:focus-within .turn-tick-label{display:block}@container conversation-shell (width<=960px){.turn-rail,.session-usage span:nth-child(3){display:none}}.composer-dock{align-items:center;gap:calc(var(--spacing-1) * 2);flex-direction:column;padding:12px 24px 22px;display:flex}.composer-queue{border-bottom:1px solid var(--border);max-height:min(220px,30dvh);color:var(--text);margin:0 -13px 10px;padding:3px 12px 7px;font-size:12px;overflow:hidden auto}.composer-queue-row{width:100%;min-height:28px;color:var(--muted);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:4px;align-items:flex-start;gap:8px;padding:4px;display:flex}.composer-queue-row:hover{background:var(--sidebar-hover);color:var(--text)}.composer-queue-row:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}.composer-queue-row>svg{width:14px;height:14px;color:var(--subtle);flex:0 0 14px;margin-top:2px}.composer-queue-row>span{white-space:nowrap;text-overflow:ellipsis;min-width:0;line-height:20px;overflow:hidden}.composer-queue-row.expanded>span{white-space:pre-wrap;overflow-wrap:anywhere}.composer-queue small{color:var(--muted);padding:4px 4px 0 26px;display:block}.prompt-recovery{justify-content:space-between;align-items:center;gap:calc(var(--spacing-1) * 4);width:100%;max-width:840px;color:var(--text);background:oklch(98% .025 88);border:1px solid oklch(74% .11 78);border-radius:8px;margin-inline:auto;padding:10px 12px;font-size:12px;display:flex}.prompt-recovery>div:first-child{gap:calc(var(--spacing-1) * .5);flex-direction:column;min-width:0;display:flex}.prompt-recovery strong{font-size:13px}.prompt-recovery span{color:var(--muted)}.prompt-recovery-actions{align-items:center;gap:calc(var(--spacing-1) * 2);flex-shrink:0;display:flex}.prompt-recovery-actions button{border-style:var(--tw-border-style);color:var(--muted);background:0 0;border-width:0;border-radius:6px;padding:6px 9px}.prompt-recovery-actions button:hover:not(:disabled){color:var(--text);background:oklch(93% .025 82)}.prompt-recovery-actions button.primary{background:var(--text);color:var(--page)}.prompt-recovery-actions button:disabled{opacity:.55}.landing .composer-dock{z-index:10;inset-inline:0;align-items:stretch;width:100%;padding:0 24px;position:absolute;top:calc(50% - 81px);bottom:12px}.workspace-picker-row{align-items:center;width:100%;min-width:0;max-width:840px;margin-inline:auto;padding-left:15px;display:flex;position:relative}.workspace-picker{max-width:260px!important;height:36px!important;color:var(--text)!important;box-shadow:none!important;background:0 0!important;border-radius:18px!important}.workspace-picker:hover,.workspace-picker[aria-expanded=true]{background:var(--sidebar-active)!important}.workspace-picker svg{width:15px;height:15px}.composer{border:1px solid var(--border-strong);background:var(--page);border-radius:18px;flex-direction:column;width:100%;max-width:840px;min-height:118px;margin-inline:auto;padding:13px 13px 10px;transition:border-color .16s,box-shadow .16s;display:flex;position:relative;box-shadow:0 8px 26px oklch(42% .06 251/.1)}.dormant-overlay{z-index:10;border-style:var(--tw-border-style);background-color:#0000;border-width:0;border-radius:18px;position:absolute;inset:0}.composer:focus-within{border-color:oklch(84% .04 87);box-shadow:0 0 0 2px oklch(84% .04 87/.28),0 8px 26px oklch(40% .04 87/.1)}.composer.dormant{box-shadow:none;cursor:pointer;border-style:dashed}.composer.dormant:hover{border-color:oklch(66% .018 249)}.composer textarea{border-style:var(--tw-border-style);outline-style:var(--tw-outline-style);resize:none;width:100%;min-width:0;min-height:52px;max-height:220px;color:var(--text);background-color:#0000;border-width:0;outline-width:0;flex:none;padding:0 2px;font-size:14px;line-height:1.55}.landing .composer textarea{flex-shrink:1}@media (height<=600px){.landing .composer textarea{max-height:min(220px,max(64px,100dvh - 340px))}}.composer textarea::placeholder{color:var(--muted)}.slash-command-menu{z-index:30;border:1px solid var(--border-strong);background:var(--page);border-radius:8px;max-height:min(360px,48vh);position:absolute;bottom:calc(100% + 8px);left:0;right:0;overflow-y:auto;box-shadow:0 14px 34px oklch(26% .02 249/.18)}.landing .slash-command-menu{max-height:min(224px, 32vh, var(--slash-command-available-height,224px));top:calc(100% + 8px);bottom:auto}.landing .slash-command-menu[data-placement=above]{top:auto;bottom:calc(100% + 8px)}.slash-command-option{align-items:center;gap:calc(var(--spacing-1) * 3);border-style:var(--tw-border-style);text-align:left;width:100%;min-width:0;min-height:56px;color:var(--text);background:0 0;border-width:0;padding:8px 11px;display:flex}.slash-command-option+.slash-command-option{border-top:1px solid var(--border)}.slash-command-option[aria-selected=true]{background:var(--sidebar-active)}.slash-command-option:disabled{cursor:not-allowed;color:var(--subtle)}.slash-command-option:disabled[aria-selected=true]{background:var(--sidebar-hover)}.slash-command-icon{background:var(--sidebar);width:28px;height:28px;color:var(--muted);border-radius:6px;flex-shrink:0;place-items:center;display:grid}.slash-command-icon svg{width:15px;height:15px}.slash-command-copy{min-width:0;color:var(--muted);overflow-wrap:anywhere;flex-direction:column;flex:1;gap:2px;font-size:12px;line-height:1.35;display:flex}.slash-command-heading{align-items:baseline;column-gap:calc(var(--spacing-1) * 2);flex-wrap:wrap;min-width:0;display:flex}.slash-command-heading strong{color:var(--text);font:600 13px ui-monospace,SFMono-Regular,Menlo,monospace}.slash-command-heading>span{color:var(--subtle);font-size:11px}.slash-command-option:disabled .slash-command-heading strong{color:var(--muted)}.slash-command-support{max-width:132px;color:var(--subtle);text-align:right;flex-shrink:0;font-size:11px}.slash-command-state{min-height:58px;color:var(--muted);flex-direction:column;justify-content:center;gap:3px;padding:10px 13px;font-size:12px;display:flex}.slash-command-state strong{color:var(--text);font-weight:600}.slash-command-bounded{border-top:1px solid var(--border);color:var(--subtle);padding:7px 11px;font-size:11px}.composer-toolbar{margin-top:calc(var(--spacing-1) * 2);justify-content:flex-end;align-items:center;gap:calc(var(--spacing-1) * 2);min-width:0;display:flex}.model-picker-wrap{z-index:11;min-width:0;max-width:48%;position:relative}.model-picker{min-width:150px!important;max-width:100%!important;height:auto!important;min-height:34px!important;color:var(--muted)!important;box-shadow:none!important;background:0 0!important;padding:0 9px 0 10px!important}.model-picker-label,.model-menu-item-label{overflow-wrap:anywhere;white-space:normal;min-width:0;display:block}.model-picker:hover,.model-picker[aria-expanded=true]{color:var(--text)!important;background:oklch(97% .006 249)!important}.model-picker svg{width:14px;height:14px}.model-selector,.model-selector>div{min-width:150px;max-width:100%}.model-selector>div>button{min-width:0;max-width:100%;color:var(--muted);font:inherit;padding:0 9px 0 10px}.model-selector>div>button:hover,.model-selector>div>button[aria-expanded=true]{color:var(--text)}.model-search-panel{width:min(360px,100vw - 32px);max-height:min(420px,60dvh);color:var(--text);padding:8px;overflow:auto}.model-search-panel.searchable{min-height:156px}.model-search-truncation,.model-search-status{color:var(--muted);margin:3px 4px 8px;font-size:12px;line-height:1.45}.model-search-error{color:var(--error)}.model-search-retry{vertical-align:middle;width:28px;height:28px;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:4px;justify-content:center;align-items:center;margin-left:8px;display:inline-flex}.model-search-retry:hover,.model-search-retry:focus-visible{background:var(--sidebar-hover)}.model-search-retry svg{width:14px;height:14px}.model-search-input{align-items:center;gap:calc(var(--spacing-1) * 2);border:1px solid var(--border);background:var(--sidebar);border-radius:6px;min-height:34px;padding:0 9px;display:flex}.model-search-input svg{width:14px;height:14px;color:var(--muted);flex:none}.model-search-input input{width:100%;min-width:0;color:var(--text);font:inherit;background:0 0;border:0;outline:0;font-size:12px}.model-search-options{align-content:start;gap:2px;min-height:36px;margin-top:6px;display:grid}.model-search-option{justify-content:space-between;align-items:center;gap:calc(var(--spacing-1) * 3);width:100%;min-width:0;color:var(--text);text-align:left;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:5px;padding:8px 9px;display:flex}.model-search-option:hover,.model-search-option:focus-visible{background:var(--sidebar-hover);outline:0}.model-search-option svg{flex:none;width:14px;height:14px}.thinking-picker-wrap{z-index:11;flex:none;position:relative}.thinking-picker{width:34px!important;min-width:34px!important;height:34px!important;min-height:34px!important;color:var(--muted)!important;box-shadow:none!important;background:0 0!important;border-radius:50%!important;padding:0!important}.thinking-picker:hover,.thinking-picker[aria-expanded=true]{color:var(--text)!important;background:oklch(97% .006 249)!important}.thinking-picker:disabled{opacity:.55}.thinking-picker svg{width:17px;height:17px}.thinking-picker-wrap[data-level=off] .thinking-picker{color:var(--subtle)!important}.thinking-picker-wrap[data-level=minimal] .thinking-picker{color:oklch(58% .06 249)!important}.thinking-picker-wrap[data-level=low] .thinking-picker{color:oklch(55% .09 249)!important}.thinking-picker-wrap[data-level=medium] .thinking-picker{color:oklch(52% .11 168)!important}.thinking-picker-wrap[data-level=high] .thinking-picker{color:oklch(52% .13 74)!important}.thinking-picker-wrap[data-level=xhigh] .thinking-picker,.thinking-picker-wrap[data-level=max] .thinking-picker{color:oklch(48% .16 32)!important}.thinking-picker-wrap[data-warning=true] .thinking-picker{color:var(--warning)!important}.thinking-picker-wrap[data-pending=true] .thinking-picker{animation:1.1s ease-in-out infinite thinking-picker-pulse}@keyframes thinking-picker-pulse{0%,to{opacity:1}50%{opacity:.45}}.send-button{border-style:var(--tw-border-style);background:var(--sidebar);border-width:0;border-radius:50%;flex-shrink:0;place-items:center;width:34px;height:34px;transition:background-color .14s,transform .1s;display:grid}.send-button:hover:not(:disabled){background:var(--sidebar-hover)}.send-button:active:not(:disabled){transform:scale(.92)}.send-button:disabled{color:var(--subtle);opacity:.65}.send-button svg{width:17px;height:17px}.composer-hint{display:none}.notice{bottom:calc(var(--spacing-1) * 4);z-index:40;max-width:var(--container-xl);--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y);align-items:center;gap:calc(var(--spacing-1) * 3);background:var(--page);color:var(--error);border:1px solid oklch(70% .11 28);border-radius:6px;padding:9px 10px 9px 14px;font-size:12px;display:flex;position:absolute;left:50%;box-shadow:0 12px 32px oklch(26% .02 249/.18)}.notice button{width:calc(var(--spacing-1) * 6);height:calc(var(--spacing-1) * 6);border-style:var(--tw-border-style);background-color:#0000;border-width:0;place-items:center;display:grid}.notice svg{width:14px;height:14px}.mobile-header{display:none}.connection-state{align-items:center;gap:calc(var(--spacing-1) * 1.5);color:var(--healthy);font-size:11px}.connection-state:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.connection-state.reconnecting{color:var(--warning)}.connection-state.unavailable{color:var(--error)}.sidebar-scrim{display:none}.openpi-dialog{gap:calc(var(--spacing-1) * 4);color:var(--text);padding:20px;display:grid}.openpi-dialog strong{font-size:15px;font-weight:650}.openpi-dialog p{color:var(--muted);margin:0;font-size:13px;line-height:1.65}.openpi-dialog input{border:1px solid var(--border-strong);background:var(--page);border-radius:5px;width:100%;height:38px;padding:0 10px}.dialog-actions{justify-content:flex-end;gap:calc(var(--spacing-1) * 2);display:flex}.dialog-actions button{border:1px solid var(--border-strong);background:var(--page);border-radius:5px;height:34px;padding:0 13px}.dialog-actions .primary{border-color:var(--text);background:var(--text);color:var(--page)}.dialog-actions .danger{color:var(--error);border-color:oklch(80% .08 28)}@media (width<=760px){.app-shell,.app-shell.sidebar-collapsed{grid-template-columns:1fr}.task-header{gap:10px;padding:10px 12px}.task-header-menu{background:0 0;border:0;border-radius:6px;flex:0 0 34px;place-items:center;width:34px;height:34px;display:grid}.task-header-menu svg{width:19px;height:19px}.task-header-menu:hover{background:var(--sidebar-hover)}.session-usage{gap:7px}.session-usage span:nth-child(-n+3){display:none}.session-sidebar{visibility:hidden;border-right:1px solid var(--border);background:var(--sidebar);-webkit-backdrop-filter:none;backdrop-filter:none;width:min(86vw,300px);transition:transform .18s;position:fixed;inset:0 auto 0 0;transform:translate(-100%)}.session-sidebar:before{display:none}.sidebar-open .session-sidebar{visibility:visible;transform:translate(0)}.sidebar-expand{display:none}.sidebar-scrim{z-index:10;border-style:var(--tw-border-style);background:oklch(20% .02 249/.28);border-width:0;position:fixed;inset:0}.sidebar-open .sidebar-scrim{display:block}.mobile-header{pointer-events:none;z-index:10;display:block;position:absolute;inset:0}.mobile-header>button{pointer-events:auto;top:calc(var(--spacing-1) * 3);left:calc(var(--spacing-1) * 3);border-style:var(--tw-border-style);background:oklch(99% .004 249/.88);border-width:0;border-radius:6px;place-items:center;width:34px;height:34px;display:grid;position:fixed}.mobile-header>button svg{width:19px;height:19px}.mobile-header .connection-state{top:calc(var(--spacing-1) * 4);right:calc(var(--spacing-1) * 3);font-size:0;display:flex;position:absolute}.conversation-turn{width:calc(100% - 24px);padding-bottom:24px}.conversation-turn+.conversation-turn{padding-top:20px}.turn-heading{margin-bottom:10px}.message-row{width:100%}.message-row.assistant.final-response{padding-left:12px}.message-row.user .message-content{max-width:88%}.jump-to-latest{justify-content:center;width:38px;height:38px;padding:0;font-size:0;bottom:180px;left:12px;right:auto}.message-row.assistant{width:100%}.conversation-running{width:calc(100% - 24px)}.turn-rail{display:none}.composer-dock{padding:10px 12px 12px}.prompt-recovery{flex-direction:column;align-items:stretch}.prompt-recovery-actions{flex-wrap:wrap;justify-content:flex-end}.landing .composer-dock{padding:0 12px;top:calc(50% - 74px)}.landing-welcome{transform:translateY(-160px)}.composer{min-height:104px}.composer-m02 .model-picker{min-width:0!important}.composer-m02 .model-picker-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.slash-command-option{align-items:flex-start}.slash-command-support{max-width:96px}.notice{width:calc(100% - 24px);bottom:12px}}@media (width<=520px){.composer-toolbar{gap:5px}.model-picker-wrap{flex:auto;max-width:100%}.model-picker{min-width:0!important}}@media (any-pointer:coarse){.session-row>.astryx-menu-trigger{opacity:1;pointer-events:auto}.session-row .session-time{visibility:hidden}.message-actions{opacity:1}}@media (prefers-reduced-motion:reduce){.app-shell,.session-sidebar,.workspace-chevron,.message-actions,.turn-rail,.details-mark{transition:none}.conversation{scroll-behavior:auto}.landing-brand .brand-lockup,.landing-brand .brand-word,.landing-brand .pixel-mark,.landing-brand .pixel-mark i,.landing-brand .pixel-mark i:after{animation:none}.landing-brand .brand-word{opacity:1}.landing-brand .pixel-mark i{background-color:currentColor}.landing-brand .pixel-mark i:after{opacity:0}.status-mark.running i,.activity-chip-dot,.conversation-running-dot,.thinking-picker-wrap[data-pending=true] .thinking-picker{animation:none}}.question-panel{align-self:center;width:min(100% - 48px,840px);min-height:0;margin:8px auto}.landing:has(>.question-panel) .composer-dock{padding:12px 24px 16px;position:static}.landing:has(>.question-panel) .landing-welcome{display:none}.question-card{border:1px solid var(--border-strong);background:var(--page);max-height:min(440px,52dvh);color:var(--text);border-radius:18px;flex-direction:column;display:flex;overflow:clip}.question-card-header{flex-shrink:0;align-items:center;gap:12px;padding:8px 12px 2px 16px;display:flex}.question-eyebrow{color:var(--muted);align-items:center;gap:8px;font-size:13px;display:inline-flex}.question-eyebrow svg{width:16px;height:16px}.question-count{color:var(--muted);font-variant-numeric:tabular-nums;margin-left:auto;font-size:12px}.question-card-body{scrollbar-width:thin;min-height:0;padding:6px 16px;overflow-y:auto}.question-card h2{overflow-wrap:anywhere;margin:0 0 10px;font-size:14px;font-weight:600;line-height:1.5}.question-choices{border:0;gap:2px;min-width:0;margin:0;padding:0;display:grid}.question-choice{cursor:pointer;border-radius:8px;align-items:center;gap:10px;min-height:42px;padding:6px 8px 6px 0;transition:background-color .14s;display:flex;position:relative}.question-choice:hover{background:var(--text)}@supports (color:color-mix(in lab, red, red)){.question-choice:hover{background:color-mix(in oklch, var(--text) 4%, var(--page))}}.question-choice.is-selected{background:var(--accent)}@supports (color:color-mix(in lab, red, red)){.question-choice.is-selected{background:color-mix(in oklch, var(--accent) 7%, var(--page))}}:is(.question-choice:has(input:focus-visible),.question-custom:has(input:focus-visible)){outline:2px solid var(--focus);outline-offset:2px}.question-radio{z-index:1;opacity:0;width:100%;height:100%;cursor:inherit;margin:0;position:absolute;inset:0}.question-choice-number{border:1px solid var(--border-strong);background:var(--text);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.question-choice-number{background:color-mix(in oklch, var(--text) 3%, var(--page))}}.question-choice-number{color:var(--muted);font-size:13px;font-weight:500}.is-selected>.question-choice-number{border-color:var(--accent);color:var(--accent);background:var(--accent)}@supports (color:color-mix(in lab, red, red)){.is-selected>.question-choice-number{background:color-mix(in oklch, var(--accent) 10%, var(--page))}}.question-choice-copy{overflow-wrap:anywhere;gap:1px;min-width:0;line-height:1.4;display:grid}.question-choice-copy strong{font-size:13px;font-weight:550}.question-choice-copy>span,.question-help{color:var(--muted);font-size:12px;line-height:1.5}.question-extras{flex-wrap:wrap;align-items:baseline;gap:6px 16px;margin:4px 0 0 38px;display:flex}.question-note-toggle,.question-preview-disclosure summary{color:var(--muted);cursor:pointer;font-size:12px}.question-note-toggle{background:0 0;border:0;align-items:center;gap:5px;min-height:28px;padding:0;display:inline-flex}.question-note-toggle:hover:not(:disabled),.question-preview-disclosure summary:hover{color:var(--text)}.question-preview-disclosure{min-width:0}.question-preview-disclosure[open]{flex-basis:100%}.question-preview-disclosure summary{padding:5px 0}.question-notes{color:var(--muted);gap:4px;margin-top:6px;font-size:12px;display:grid}.question-notes textarea{resize:vertical;background:var(--page);width:100%;min-height:38px;max-height:140px;color:var(--text);border:1px solid var(--border-strong);border-radius:8px;padding:8px 10px;font-size:13px;line-height:1.5}.question-notes textarea::placeholder{color:var(--muted)}.question-preview{background:var(--text);max-height:140px;margin:4px 0;padding:8px;overflow:auto}@supports (color:color-mix(in lab, red, red)){.question-preview{background:color-mix(in oklch, var(--text) 4%, var(--page))}}.question-preview{white-space:pre-wrap;overflow-wrap:anywhere;border-radius:6px;font-size:12px;line-height:1.5}.question-card-footer{flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px 12px;padding:4px 16px 12px;display:flex}.question-custom{min-height:36px;color:var(--muted);cursor:pointer;border-radius:8px;align-items:center;gap:10px;font-size:13px;display:inline-flex;position:relative}.question-custom svg{width:14px;height:14px}.question-custom:hover,.question-custom.is-selected{color:var(--text)}.question-custom.is-disabled{opacity:.5;cursor:default}.question-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;margin-left:auto;display:flex}.question-primary,.question-secondary,.question-icon{cursor:pointer;border-radius:7px;justify-content:center;align-items:center;gap:8px;font-size:13px;font-weight:550;display:inline-flex}.question-primary,.question-secondary{border-radius:18px;min-height:32px;padding:5px 10px}.question-primary{background:var(--text);color:var(--page);border:1px solid var(--text)}.question-primary:hover:not(:disabled){opacity:.88}.question-secondary,.question-icon{color:var(--muted);background:0 0;border:1px solid #0000}.question-skip{border-color:var(--border-strong)}.question-secondary:hover:not(:disabled),.question-icon:hover:not(:disabled){color:var(--text);background:var(--text)}@supports (color:color-mix(in lab, red, red)){.question-secondary:hover:not(:disabled),.question-icon:hover:not(:disabled){background:color-mix(in oklch, var(--text) 6%, var(--page))}}.question-icon{flex-shrink:0;width:32px;height:32px}.question-card button svg,.question-receipt svg{width:16px;height:16px}.question-card button:disabled,.question-card fieldset:disabled{opacity:.5;cursor:default}.question-review-list{margin:8px 0 0;padding:0;list-style:none}.question-review-list li{align-items:flex-start;gap:12px;padding:6px 0;display:flex}.question-review-list li>div{flex:1;min-width:0}.question-review-label{color:var(--muted);font-size:12px}.question-review-list p{white-space:pre-wrap;overflow-wrap:anywhere;margin:2px 0 0;font-size:13px;line-height:1.5}.question-error{color:var(--error);margin-top:12px;font-size:12px;line-height:1.6}.question-receipt{border:1px solid var(--border);background:var(--page);color:var(--muted);border-radius:10px;align-items:center;gap:10px;padding:10px 14px;font-size:12px;display:flex}.question-receipt>span{flex:1}@media (width<=760px){.question-panel{width:calc(100% - 24px)}.question-card{max-height:54dvh}.question-card-header{padding:6px 8px 0 12px}.question-card-footer{padding:4px 12px 10px}.question-card-body{padding:4px 12px}.question-icon{width:40px;height:40px}.question-primary,.question-secondary,.question-custom,.question-note-toggle,.question-preview-disclosure summary{min-height:40px}.question-preview-disclosure summary{align-content:center}}@media (prefers-reduced-motion:reduce){.question-choice{transition:none}}:root[data-theme=mist]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--page:#f8fbfc;--sidebar:#eef3f5;--sidebar-hover:#e2ebee;--sidebar-active:#d8e6ea;--border:#dbe4e8;--border-strong:#c4d0d5;--text:#253239;--muted:#66757d;--subtle:#8a989e;--settings-secondary-text:#52636c;--accent:#347991;--focus:#3f879f;--healthy:#34825d;--error:#b94d50;--warning:#a86f22}:root[data-theme=rose]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--page:#fffafb;--sidebar:#f8eff1;--sidebar-hover:#f1e2e6;--sidebar-active:#ecd8dd;--border:#eadde0;--border-strong:#d8c2c8;--text:#392b2f;--muted:#79646a;--subtle:#9a858b;--settings-secondary-text:#654f56;--accent:#a64f68;--focus:#b45b73;--healthy:#42815e;--error:#b6474c;--warning:#a96d24}:root[data-theme=pine]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--page:#16201c;--sidebar:#1b2823;--sidebar-hover:#26362f;--sidebar-active:#30453b;--border:#35483f;--border-strong:#4a6257;--text:#edf3ef;--muted:#a8b7af;--subtle:#7f9188;--settings-secondary-text:#c2d0c8;--accent:#7bbf98;--focus:#86caa3;--healthy:#69ce94;--error:#ff9189;--warning:#e5bd63;--grid-minor:#9eb4a908;--grid-major:#9eb4a912;--grid-cross:#9eb4a91c}@media (prefers-color-scheme:dark){:root[data-theme=system]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--sidebar:#1d2024}:root[data-theme=system] body{background-image:none}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--page:#17191c;--sidebar:#1d2024;--sidebar-hover:#292d32;--sidebar-active:#30353b;--border:#353a40;--border-strong:#48515a;--text:#edf0f2;--muted:#a8b0b8;--subtle:#7f8993;--settings-secondary-text:#c3cbd3;--accent:#74a9e6;--focus:#78aee9;--healthy:#62c795;--error:#ff8c84;--warning:#e5b64f;--grid-minor:#87909908;--grid-major:#87909912;--grid-cross:#8790991c}:root:is([data-theme=dark],[data-theme=pine]) body{background-image:linear-gradient(var(--grid-minor) 1px, transparent 1px), linear-gradient(90deg, var(--grid-minor) 1px, transparent 1px)}:root:is([data-theme=dark],[data-theme=pine]) .session-sidebar{background:var(--sidebar);box-shadow:none;border-color:var(--border)}:root:is([data-theme=dark],[data-theme=pine]) .conversation-shell:not(.landing){background-image:none;background-color:var(--page)}:root:is([data-theme=dark],[data-theme=pine]) .details-body{color:var(--muted)}:root:is([data-theme=dark],[data-theme=pine]) :is(.markdown blockquote,.markdown code,.markdown-code-block,.markdown th,.tool-evidence,.process-sequence,.activity-card,.activity-chip,.mobile-header>button){background:var(--sidebar);color:var(--text);border-color:var(--border)}:root:is([data-theme=dark],[data-theme=pine]) :is(.new-session-button:hover,.message-details summary:hover,.process-sequence>summary:hover,.message-actions button:hover,.turn-tick:hover){background:var(--sidebar-hover);border-color:var(--border)}:root:is([data-theme=dark],[data-theme=pine]) :is(.turn-rail:hover,.turn-rail:focus-within){background:var(--page)}:root:is([data-theme=dark],[data-theme=pine]) .model-picker:hover,:root:is([data-theme=dark],[data-theme=pine]) .model-picker[aria-expanded=true],:root:is([data-theme=dark],[data-theme=pine]) .model-selector>div>button:hover,:root:is([data-theme=dark],[data-theme=pine]) .model-selector>div>button[aria-expanded=true]{background:var(--sidebar-hover)!important}:root:is([data-theme=dark],[data-theme=pine]) .slash-command-icon{background:var(--sidebar-hover)}:root:is([data-theme=dark],[data-theme=pine]) .thinking-picker:hover,:root:is([data-theme=dark],[data-theme=pine]) .thinking-picker[aria-expanded=true]{background:var(--sidebar-hover)!important}.session-view-switch{border:0;border:1px solid var(--border);border-radius:8px;gap:4px;min-width:0;margin:0 12px 8px;padding:4px;display:flex}.session-view-switch button{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:5px;flex:1;padding:6px 10px}.session-view-switch button[aria-pressed=true]{background:var(--sidebar-hover);font-weight:600}.sidebar-scope-note{color:var(--muted);margin:4px 18px 10px;font-size:12px;line-height:1.5}.inspection-panel{max-height:min(80dvh,760px);color:var(--text);padding:24px;overflow-y:auto}.inspection-heading{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.inspection-heading h2{margin:0;font-size:18px}.inspection-subtitle{color:var(--muted);overflow-wrap:anywhere;margin:6px 0 0;font-size:12px}.inspection-actions{flex-shrink:0;gap:6px;display:flex}.inspection-section{border-top:1px solid var(--border);margin-top:20px;padding-top:16px}.inspection-section h3{margin:0 0 12px;font-size:14px;font-weight:600}.inspection-section dl{grid-template-columns:100px minmax(0,1fr);gap:10px 16px;margin:0;font-size:13px;display:grid}.inspection-section dt{color:var(--muted)}.inspection-section dd{overflow-wrap:anywhere;margin:0}.inspection-section p{font-size:13px;line-height:1.6}.inspection-note,.inspection-updated{color:var(--muted);font-size:12px;line-height:1.6}.inspection-updated{margin:20px 0 0}.inspection-copy{border:1px solid var(--border);width:28px;height:28px;color:var(--muted);cursor:pointer;background:0 0;border-radius:5px;place-items:center;margin-left:6px;display:inline-grid}.inspection-copy:hover{background:var(--sidebar-hover);color:var(--text)}.inspection-copy:disabled{opacity:.45;cursor:default}.inspection-copy svg{width:14px;height:14px}.inspection-stream-heading{justify-content:space-between;align-items:center;gap:8px;display:flex}.inspection-stream-heading h3{margin:0}.inspection-setup{border-top:1px solid var(--border);margin-top:18px;padding-top:12px}.inspection-setup p{margin:0 0 6px}.inspection-warning{color:var(--text);border-left:2px solid var(--warning);overflow-wrap:anywhere;padding:8px 10px;font-size:13px}.inspection-provider-link{border:0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);text-align:left;cursor:pointer;background:0 0;justify-content:space-between;align-items:center;gap:16px;width:100%;margin-top:20px;padding:13px 0;display:flex}.inspection-provider-link:hover{color:var(--accent)}.inspection-provider-link>span{min-width:0;color:var(--text);flex-direction:column;gap:2px;display:flex}.inspection-provider-link small{color:var(--muted);font-size:11px;font-weight:400}.terminal-evidence{background:var(--sidebar-hover);border-radius:6px;max-width:100%;max-height:260px;padding:12px;overflow:auto}.terminal-evidence pre{white-space:pre;width:max-content;min-width:100%;margin:0;font-size:12px;line-height:1.6}.terminal-evidence:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}button.activity-chip{cursor:pointer;font:inherit}button.activity-chip:hover{filter:brightness(1.15)}@media (width<=600px){.inspection-panel{padding:18px}.inspection-section dl{grid-template-columns:72px minmax(0,1fr);gap:8px}}.conversation-view-row{align-items:center;gap:10px;min-width:0;padding:4px 24px;display:flex}.conversation-view-switch{z-index:15;background:var(--page);border:0;border-radius:8px;gap:4px;margin:0;padding:3px;display:flex;position:relative}.conversation-view-switch button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:7px 14px}.conversation-view-switch button[aria-pressed=true]{color:var(--text);background:var(--page);box-shadow:0 1px 3px #0001}.trajectory{flex-direction:column;padding:66px 28px 22px;display:flex;overflow:auto}.trajectory-heading h2{margin:0 0 8px;font-size:20px}.trajectory-heading p{color:var(--muted);margin:6px 0;font-size:12px}.trajectory-overview{flex-shrink:0;gap:6px;padding:14px 0;display:flex;overflow-x:auto}.trajectory-point{border:1px solid var(--border);height:30px;color:var(--muted);cursor:pointer;background:0 0;border-radius:50%;flex:0 0 30px}.trajectory-point.call{border-radius:6px}.trajectory-point[aria-pressed=true]{background:var(--text);color:var(--page)}.trajectory-body{grid-template-columns:minmax(200px,34%) minmax(0,1fr);align-items:start;gap:24px;display:grid}.trajectory-ledger ol{border-left:1px solid var(--border);margin:0;padding-left:24px}.trajectory-ledger li{color:var(--muted);padding:0 0 8px 2px;font-size:11px}.trajectory-record{text-align:left;width:100%;color:var(--text);cursor:pointer;overflow-wrap:anywhere;background:0 0;border:1px solid #0000;border-radius:8px;flex-direction:column;gap:5px;padding:10px;display:flex}.trajectory-record[aria-pressed=true]{border-color:var(--border);background:var(--sidebar-hover)}.trajectory-kind,.trajectory-preview,.trajectory-metadata{color:var(--muted);font-size:11px}.trajectory-preview{white-space:pre-wrap;max-height:40px;overflow:hidden}.trajectory-inspector{border:1px solid var(--border);overflow-wrap:anywhere;border-radius:12px;min-width:0;padding:20px;position:sticky;top:0}.trajectory-inspector h3{margin:0 0 12px}.trajectory-inspector h4{margin:20px 0 8px;font-size:12px}.trajectory-inspector p{font-size:12px}.trajectory-inspector pre{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--sidebar-hover);border-radius:6px;max-height:420px;padding:12px;font-size:12px;line-height:1.6;overflow:auto}.trajectory-warning{color:var(--warning);font-size:12px}.tool-evidence-card{border:1px solid var(--border);border-radius:8px;min-width:0;margin:8px 0;overflow:hidden}.tool-evidence-card>summary{cursor:pointer;align-items:center;gap:12px;padding:10px 12px;font-size:12px;display:flex}.tool-evidence-card>summary>span:not(.evidence-status):not(.evidence-summary-meta){text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.tool-evidence-card[data-state=failed] .tool-name,.tool-evidence-card[data-state=cancelled] .tool-name,.tool-evidence-card[data-state=timed_out] .tool-name{color:var(--error)}.evidence-status{color:var(--muted);flex-shrink:0;font-size:11px}.evidence-summary-meta{font-variant-numeric:tabular-nums;flex-shrink:0;gap:5px;font-size:11px;display:inline-flex}.review-additions{color:var(--healthy)}.review-deletions{color:var(--error)}.evidence-content{border-top:1px solid var(--border);overflow-wrap:anywhere;padding:12px;font-size:12px}.evidence-content pre{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--sidebar-hover);max-height:360px;padding:10px;line-height:1.65;overflow:auto}.evidence-content h4{margin:12px 0 6px}.evidence-content details>summary{cursor:pointer;padding:8px 0}.evidence-lines>span{white-space:pre;display:block}.evidence-line-number{min-width:4ch;color:var(--muted);-webkit-user-select:none;user-select:none;text-align:right;margin-right:2ch;display:inline-block}.diff-added{color:var(--text);background:#1ea0501f}.diff-removed{color:var(--text);background:#d23c3c1f}.evidence-warning{color:var(--warning)}.artifact-link{color:var(--accent);cursor:pointer;font:inherit;overflow-wrap:anywhere;background:0 0;border:0;padding:0;text-decoration:underline}.app-shell:has(>.artifact-panel){grid-template-columns:var(--sidebar-width) minmax(0,1fr) var(--auxiliary-width)}.app-shell.sidebar-collapsed:has(>.artifact-panel){grid-template-columns:56px minmax(0,1fr) var(--auxiliary-width)}.artifact-panel{border:0;border-left:1px solid var(--border);background:var(--page);min-width:0;height:100dvh;min-height:0;color:var(--text);flex-direction:column;display:flex;overflow:hidden}.artifact-panel header{border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;min-height:52px;padding:6px 8px 6px 12px;display:grid}.artifact-panel header>div{min-width:0}.artifact-panel header small,.artifact-panel h2{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.artifact-panel header small{color:var(--muted);font-size:10px}.artifact-panel h2{max-width:100%;margin:2px 0 0;font-size:12px}.artifact-panel-body{flex:1;min-width:0;min-height:0;padding:12px 14px 24px;overflow:auto}.artifact-panel p{overflow-wrap:anywhere;font-size:11px}.artifact-panel button:not(.artifact-link){border:1px solid var(--border);background:var(--page);min-height:30px;color:var(--text);cursor:pointer;border-radius:5px;justify-content:center;align-items:center;gap:6px;padding:5px 8px;display:inline-flex}.artifact-panel button:not(.artifact-link):hover{background:var(--sidebar-hover)}.artifact-panel button svg{width:15px;height:15px}.artifact-source{align-items:center;gap:6px;min-width:0;margin-top:12px;display:flex}.artifact-source code{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:10.5px;overflow:hidden}.artifact-session{color:var(--muted)}.artifact-panel button:disabled{opacity:.5;cursor:default}.artifact-panel pre{white-space:pre;width:max-content;min-width:100%;margin:0;padding:12px;font-size:11.5px;line-height:1.65;overflow:auto}.artifact-panel section[aria-label="File preview content"]{border:1px solid var(--border);background:var(--sidebar);border-radius:6px;min-width:0;overflow:auto}.artifact-actions{gap:8px;display:flex}.artifact-image-preview img{max-width:100%;height:auto}.artifact-panel details>summary{cursor:pointer;color:var(--muted);padding:8px 0;font-size:12px}.artifact-panel pre{font-size:13px}.artifact-panel section[aria-label="File preview content"]:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.artifact-revision{color:var(--muted)}.artifact-link-path{color:var(--muted);font-size:11px;text-decoration:none}@media (width<=1100px){.app-shell:has(>.artifact-panel){grid-template-columns:minmax(0,1fr)}.app-shell.sidebar-collapsed:has(>.artifact-panel){grid-template-columns:minmax(0,1fr)}:is(.app-shell:has(>.artifact-panel)>.conversation-shell,.app-shell:has(>.artifact-panel)>.session-sidebar,.app-shell:has(>.artifact-panel)>.sidebar-expand){display:none}.artifact-panel{border-left:0;grid-column:1/-1}}.trajectory-load{color:var(--text);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:6px;margin-bottom:12px;padding:10px}@media (width<=700px){.trajectory{padding:66px 16px 16px}.trajectory-body{grid-template-columns:1fr;gap:16px}.trajectory-ledger{max-height:200px;overflow:auto}.trajectory-inspector{padding:16px;position:static}}.conversation-shell.has-view:not(.landing){grid-template-rows:auto auto minmax(0,1fr) auto}.conversation-shell.has-view:has(>.question-panel){grid-template-rows:auto auto minmax(0,1fr) auto auto}.trajectory{padding-top:22px;overflow:hidden}.trajectory-heading{flex-shrink:0}.trajectory-body{flex:1;align-items:stretch;min-height:0;overflow:hidden}.trajectory-ledger{min-height:0;overflow:auto}.trajectory-inspector{min-height:0;position:static;overflow:auto}@media (width<=700px){.conversation-view-row{gap:4px;padding-left:60px}.conversation-view-switch button{padding:7px 8px}.trajectory{padding-top:16px}.trajectory-body{grid-template-rows:minmax(80px,30%) minmax(0,1fr)}.trajectory-ledger{max-height:none}}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0} +.files-workspace{grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr) clamp(170px,29%,270px);height:100%;min-height:0;display:grid;position:relative;overflow:hidden;container:files/inline-size}.files-workspace[data-tree-visible=false]{grid-template-columns:minmax(0,1fr)}.files-tree-container{border-left:1px solid var(--border);background:var(--page);grid-area:1/2;min-width:0;min-height:0}.files-tree-container[hidden]{display:none}.file-explorer{flex-direction:column;height:100%;min-height:0;display:flex}.file-explorer-heading{border-bottom:1px solid var(--border);align-items:center;gap:8px;min-height:48px;padding:4px 10px;display:flex}.file-explorer-heading>svg{width:15px;color:var(--muted);flex:none}.file-explorer-heading strong{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:12px;font-weight:550;overflow:hidden}.file-search{border:1px solid var(--border);color:var(--muted);border-radius:7px;align-items:center;gap:6px;margin:10px 8px 6px;padding:6px 8px;display:flex}.file-search:focus-within{border-color:var(--focus);outline:1px solid var(--focus)}.file-search svg{flex:none;width:14px;height:14px}.file-search input{width:100%;min-width:0;color:var(--text);background:0 0;border:0;outline:0;padding:0;font-size:12px}.file-search-progress{border-radius:50%;flex:none;width:5px;height:5px}.file-search-progress[data-loading]{background:var(--accent)}.file-tree{flex:1;min-height:0;padding:2px 5px 14px;overflow:auto}.file-tree ul{margin:0;padding:0;list-style:none}.file-tree-row{width:100%;min-height:32px;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:5px;align-items:center;gap:7px;padding:5px 8px;display:flex}.file-tree-row:hover{background:var(--sidebar-hover)}.file-tree-row[aria-current=true]{background:color-mix(in srgb,var(--accent) 11%,var(--page));box-shadow:inset 2px 0 var(--accent)}.file-tree-row:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}.file-tree-row:disabled{opacity:.5;cursor:not-allowed}.file-chevron{width:12px;height:12px;color:var(--muted);flex:none}.file-icon{width:16px;height:16px;color:var(--muted);flex:none}.file-icon-folder{color:var(--lightningcss-light,#a36a16)var(--lightningcss-dark,#dcae5d)}.file-icon-markdown,.file-icon-sheet{color:var(--lightningcss-light,#278044)var(--lightningcss-dark,#69bb83)}.file-icon-image{color:var(--lightningcss-light,#8b55ae)var(--lightningcss-dark,#c197dd)}.file-icon-code{color:var(--lightningcss-light,#357cb0)var(--lightningcss-dark,#83b7e0)}.file-icon-document{color:var(--lightningcss-light,#bc5953)var(--lightningcss-dark,#db8c83)}.file-tree-name{text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:1.6;overflow:hidden}.file-tree-name small{color:var(--muted);text-overflow:ellipsis;font-size:10px;display:block;overflow:hidden}.file-tree-note{color:var(--muted);overflow-wrap:anywhere;padding:8px 12px;font-size:11px}.files-preview-empty{text-align:center;color:var(--muted);flex-direction:column;grid-area:1/1;justify-content:center;align-items:center;padding:32px;display:flex}.files-preview-empty>svg{stroke-width:1.2px;opacity:.6;width:32px;height:32px}.files-preview-empty h3{color:var(--text);margin:14px 0 6px;font-size:14px;font-weight:500}.files-preview-empty p{max-width:260px;margin:0;font-size:12px;line-height:1.7}.files-tree-toggle{z-index:2;background:var(--page);position:absolute;top:8px;right:calc(clamp(170px,29%,270px) + 8px)}.files-workspace[data-tree-visible=false] .files-tree-toggle{right:8px}.artifact-panel.artifact-panel-embedded{border-left:0;grid-area:1/1;height:100%}.files-workspace .artifact-panel-embedded{position:relative}.files-workspace .artifact-panel-embedded>header{padding-right:44px}.files-workspace .artifact-panel-embedded>header>div{padding-right:96px}.files-workspace .artifact-panel-embedded .artifact-source{margin:0;position:absolute;top:10px;right:150px}.files-workspace .artifact-panel-embedded .artifact-source code{display:none}.files-workspace .artifact-panel-embedded .artifact-actions{gap:4px;margin:0;display:flex;position:absolute;top:10px;right:78px}.files-workspace .artifact-panel-embedded .artifact-actions button{gap:0;width:32px;height:30px;padding:5px;font-size:0}.files-workspace .artifact-panel-embedded .artifact-actions svg{flex:none}.artifact-panel-embedded .artifact-panel-body{padding:16px 20px 28px}.artifact-panel .markdown p{font-size:14px;line-height:1.75}.artifact-panel .markdown h1{font-size:28px;line-height:1.3}.artifact-panel .markdown h2{white-space:normal;margin:1.3em 0 .6em;font-size:22px}.file-preview-toolbar{flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 12px;display:flex}.file-preview-toolbar>span{color:var(--muted);margin-left:auto;font-size:11px}.file-preview-toolbar button[aria-pressed=true]{background:var(--sidebar-hover);border-color:var(--border-strong)}.file-preview-frame{border:1px solid var(--border);background:#fff;border-radius:6px;width:100%;height:70vh;min-height:360px;display:block}.file-code{border:1px solid var(--border);background:var(--sidebar);border-radius:6px;max-width:100%;overflow:auto}.file-code code{font:inherit}.file-code .hljs-keyword,.file-code .hljs-selector-tag{color:var(--lightningcss-light,#a32963)var(--lightningcss-dark,#ea98bc)}.file-code .hljs-string,.file-code .hljs-attr{color:var(--lightningcss-light,#27763e)var(--lightningcss-dark,#8fc98d)}.file-code .hljs-number,.file-code .hljs-literal{color:var(--lightningcss-light,#906113)var(--lightningcss-dark,#e6bb75)}.file-code .hljs-title,.file-code .hljs-built_in{color:var(--lightningcss-light,#246bb2)var(--lightningcss-dark,#87baf1)}.file-code .hljs-comment{color:var(--muted);font-style:italic}.file-table-scroll{border:1px solid var(--border);border-radius:6px;max-height:65vh;overflow:auto}.file-table{border-collapse:separate;border-spacing:0;white-space:pre-wrap;width:100%;font-size:12px}.file-table th{background:var(--sidebar);color:var(--muted);z-index:1;font-weight:500;position:sticky;top:0}.file-table td,.file-table th{border-right:1px solid var(--border);border-bottom:1px solid var(--border);text-align:left;overflow-wrap:anywhere;min-width:70px;max-width:360px;padding:7px 12px}.file-table tbody tr:hover{background:var(--sidebar-hover)}.file-table .file-row-number{width:35px;min-width:35px;color:var(--muted);text-align:right;background:var(--sidebar)}.file-sheet-tabs{gap:4px;padding:0 0 10px;display:flex;overflow:auto}.file-media-viewport{background:var(--sidebar);text-align:center;border-radius:6px;max-height:75vh;overflow:auto}.artifact-image-preview img{margin:auto;display:block}.artifact-image-preview[data-original=true] img{max-width:none}.file-pdf canvas{background:#fff;max-width:none;height:auto;margin:auto;display:block;box-shadow:0 2px 14px #0002}.file-diagram{margin:16px 0;padding-top:36px;position:relative}.file-diagram>img{object-fit:contain;cursor:zoom-in;width:100%;max-height:500px}.file-diagram>button{position:absolute;top:8px;right:8px}.file-diagram-dialog{z-index:100;border:1px solid var(--border);background:var(--page);width:1100px;max-width:calc(100vw - 40px);height:800px;max-height:calc(100dvh - 40px);color:var(--text);border-radius:12px;padding:12px;position:fixed;inset:20px}.file-diagram-dialog::backdrop{background:#0007}.file-diagram-dialog .file-media-viewport{cursor:grab;height:calc(100% - 45px);max-height:none}.file-diagram-dialog img{max-width:none}.file-inline-image{object-fit:contain;max-width:100%;max-height:600px}.file-tree-more{text-align:center;padding:10px 8px}.file-tree-more button{color:var(--text);border:1px solid var(--border);background:var(--page);cursor:pointer;border-radius:6px;padding:6px 14px;font-size:12px}.file-tree-more button:hover{background:var(--sidebar-hover)}.file-tree-more small{color:var(--muted);margin-top:4px;font-size:10px;display:block}.file-read-more{margin-top:12px}.file-preview-note{color:var(--muted);font-size:11px}@container files (width<=560px){.files-workspace>.files-tree-container{z-index:3;width:min(85%,270px);position:absolute;inset:0 0 0 auto;box-shadow:-8px 0 24px #0001}.files-workspace[data-preview-open=false]>.files-tree-container{width:100%;box-shadow:none;border:0;grid-column:1/-1;position:relative}.files-workspace>.files-preview-empty{display:none}.files-workspace>.artifact-panel-embedded{grid-column:1/-1}.files-workspace>.files-tree-toggle{z-index:4;border:1px solid var(--border);top:auto;bottom:12px;right:8px;box-shadow:0 2px 8px #0001}.artifact-panel-embedded .artifact-panel-body{padding:12px}}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-border-style:solid;--tw-outline-style:solid;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0}}}@layer reset{:where(*){box-sizing:border-box;border:0 solid}:where(html){-webkit-text-size-adjust:100%;tab-size:4;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;line-height:1.5}@media (prefers-color-scheme:dark){:where(html){--lightningcss-light: ;--lightningcss-dark:initial}}:where(body){line-height:inherit;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0}:where(h1,h2,h3,h4,h5,h6){font-size:inherit;font-weight:inherit}:where(h1,h2,h3,h4,h5,h6,p,blockquote,figure,pre,dl,dd){margin:0}:where(a){color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}:where(b,strong){font-weight:bolder}:where(code,kbd,samp,pre){font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}:where(small){font-size:80%}:where(sub,sup){vertical-align:baseline;font-size:75%;line-height:0;position:relative}:where(sub){bottom:-.25em}:where(sup){top:-.5em}:where(ol,ul,menu){margin:0;padding:0;list-style:none}:where(img,svg,video,canvas,audio,iframe,embed,object){vertical-align:middle;display:block}:where(img,video){max-width:100%;height:auto}:where([data-astryx-aspect-ratio-override=cover],[data-astryx-aspect-ratio-override=contain])>:where(*){width:100%;height:100%}:where([data-astryx-aspect-ratio-override=cover])>:where(img,video){object-fit:cover}:where([data-astryx-aspect-ratio-override=contain])>:where(img,video){object-fit:contain}:where(button,input,optgroup,select,textarea){font:inherit;color:inherit;margin:0;padding:0}:where(button,[type=button],[type=reset],[type=submit]){appearance:button;background-color:#0000;background-image:none}:where(button,[role=button]){cursor:pointer}:where(:disabled,[aria-disabled=true]){cursor:default}:where(textarea){resize:vertical}:where(){opacity:1;color:var(--color-text-secondary,#9ca3af);-webkit-appearance:none}:where(fieldset){margin:0;padding:0}:where(legend){padding:0}:where(table){text-indent:0;border-color:inherit;border-collapse:collapse}:where(hr){height:0;color:inherit;border-top-width:1px}:where(summary){display:list-item}:where(dialog){outline:none;padding:0}:where([hidden]){display:none}:where(html){-webkit-tap-highlight-color:transparent}:where(html[data-theme=light]){--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:where(html[data-theme=dark]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:where(html:not([data-theme])){--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:where(html:not([data-theme])){--lightningcss-light: ;--lightningcss-dark:initial}}:where([data-astryx-media=dark]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:where([data-astryx-media=light]){--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@scope([data-astryx-theme=neutral]) to ([data-astryx-theme]){:where(h1,h2,h3,h4,h5,h6){font-family:var(--font-family-heading);color:var(--color-text-primary)}:where(h1){font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);line-height:1.3333}:where(h2){font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);line-height:1.4}:where(h3){font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);line-height:1.4118}:where(h4){font-size:var(--font-size-base);font-weight:var(--font-weight-bold);line-height:1.4286}:where(h5){font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);line-height:1.6667}:where(h6){font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);line-height:1.6}:where(p){font-family:var(--font-family-body);font-size:var(--font-size-base);font-weight:var(--font-weight-normal);color:var(--color-text-primary);line-height:1.4286}:where(small){font-size:var(--font-size-sm);font-weight:var(--font-weight-normal);color:var(--color-text-secondary);line-height:1.6667}:where(code,pre){font-family:var(--font-family-code);font-size:var(--font-size-base);line-height:1.4286}:where(hr){border:none;border-top:1px solid var(--color-border)}}}@layer theme{:root,:host{--container-xl:36rem;--font-weight-normal:var(--font-weight-normal);--font-weight-medium:var(--font-weight-medium);--font-weight-semibold:var(--font-weight-semibold);--font-weight-bold:var(--font-weight-bold);--default-font-family:var(--font-family-body);--default-mono-font-family:var(--font-family-code);--color-accent:var(--color-text-accent);--color-overlay:var(--color-overlay);--color-accent-muted:var(--color-accent-muted);--color-on-accent:var(--color-on-accent);--color-neutral:var(--color-neutral);--color-overlay-hover:var(--color-overlay-hover);--color-overlay-pressed:var(--color-overlay-pressed);--color-tint-hover:var(--color-tint-hover);--color-success:var(--color-success);--color-success-muted:var(--color-success-muted);--color-on-success:var(--color-on-success);--color-error:var(--color-error);--color-error-muted:var(--color-error-muted);--color-on-error:var(--color-on-error);--color-warning:var(--color-warning);--color-warning-muted:var(--color-warning-muted);--color-on-warning:var(--color-on-warning);--color-border:var(--color-border);--color-on-dark:var(--color-on-dark);--color-on-light:var(--color-on-light);--color-skeleton:var(--color-skeleton);--color-track:var(--color-track);--color-shadow:var(--color-shadow);--radius-none:var(--radius-none);--radius-full:var(--radius-full)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer astryx-base{@property --x---_avatar-group-overlap{syntax:"*";inherits:false}@property --x---_codeblock-gutter-width{syntax:"*";inherits:false}@property --x---_hover-delay{syntax:"*";inherits:false}@property --x---_tab-indicator-bottom{syntax:"*";inherits:false}@property --x---container-max-height{syntax:"*";inherits:false}@property --x---layout-content-width{syntax:"*";inherits:false}@property --x-126w13d{syntax:"*";inherits:false}@property --x-4drmnv{syntax:"*";inherits:false}@property --x-animationDelay{syntax:"*";inherits:false}@property --x-aspectRatio{syntax:"*";inherits:false}@property --x-backgroundColor{syntax:"*";inherits:false}@property --x-borderWidth{syntax:"*";inherits:false}@property --x-bottom{syntax:"*";inherits:false}@property --x-counterReset{syntax:"*";inherits:false}@property --x-fontSize{syntax:"*";inherits:false}@property --x-gap{syntax:"*";inherits:false}@property --x-gridAutoRows{syntax:"*";inherits:false}@property --x-gridTemplateColumns{syntax:"*";inherits:false}@property --x-height{syntax:"*";inherits:false}@property --x-inlineSize{syntax:"*";inherits:false}@property --x-insetInlineEnd{syntax:"*";inherits:false}@property --x-insetInlineStart{syntax:"*";inherits:false}@property --x-marginBlock{syntax:"*";inherits:false}@property --x-marginBlockEnd{syntax:"*";inherits:false}@property --x-marginBlockStart{syntax:"*";inherits:false}@property --x-marginInline{syntax:"*";inherits:false}@property --x-marginInlineEnd{syntax:"*";inherits:false}@property --x-marginInlineStart{syntax:"*";inherits:false}@property --x-maxHeight{syntax:"*";inherits:false}@property --x-maxWidth{syntax:"*";inherits:false}@property --x-minHeight{syntax:"*";inherits:false}@property --x-minWidth{syntax:"*";inherits:false}@property --x-paddingBlock{syntax:"*";inherits:false}@property --x-paddingInline{syntax:"*";inherits:false}@property --x-paddingInlineEnd{syntax:"*";inherits:false}@property --x-paddingInlineStart{syntax:"*";inherits:false}@property --x-qthpiu{syntax:"*";inherits:false}@property --x-sj6hyi{syntax:"*";inherits:false}@property --x-top{syntax:"*";inherits:false}@property --x-transform{syntax:"*";inherits:false}@property --x-WebkitLineClamp{syntax:"*";inherits:false}@property --x-width{syntax:"*";inherits:false}@property --x-1dd27dc{syntax:"*";inherits:true}@property --x-owu7oy{syntax:"*";inherits:true}@keyframes x188b6p3-B{0%{color:inherit}to{color:#0000}}@keyframes xuvekqa-B{0%{opacity:.3}50%{opacity:1}to{opacity:.3}}@keyframes x1tut0r7-B{0%{opacity:.3;transform:rotateX(52deg)scale(.86)}50%{opacity:1;transform:rotateX(0)scale(1)}to{opacity:.3;transform:rotateX(-52deg)scale(.86)}}@keyframes x13kz0yu-B{0%,to{opacity:1}50%{opacity:.5}}@keyframes x18re5ia-B{0%{opacity:0}to{opacity:1}}@keyframes xgnty7z-B{0%{opacity:.25}to{opacity:1}}@keyframes xtut5q7-B{0%{opacity:1}50%{opacity:.5}to{opacity:1}}@keyframes x1k48ry3-B{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes x11lauxq-B{0%{opacity:0;transform:translate(var(--dialog-dir-x,0px),var(--dialog-dir-y,16px)) scale(.95)}to{opacity:1;transform:translate(0)scale(1)}}@keyframes xu7jd1z-B{0%{opacity:0;transform:translateX(var(--spacing-2)) scale(.95)}to{opacity:1;transform:translate(0)scale(1)}}@keyframes xwmkjkf-B{0%{opacity:0;transform:translateX(calc(-1 * var(--spacing-2))) scale(.95)}to{opacity:1;transform:translate(0)scale(1)}}@keyframes x1ahk7ht-B{0%{opacity:0;transform:translateY(var(--spacing-2)) scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes xv1hr86-B{0%{opacity:0;transform:translateY(calc(-1 * var(--spacing-2))) scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes x1b6yrix-B{0%{opacity:0;transform:translateY(var(--spacing-2))}to{opacity:1;transform:translateY(0)}}@keyframes xiylxmw-B{0%{opacity:0;transform:translateY(calc(-1 * var(--spacing-2)))}to{opacity:1;transform:translateY(0)}}@keyframes xqng64z-B{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes x1c2q33o-B{0%{transform:translate(100%)}to{transform:translate(-250%)}}@keyframes xr3m334-B{0%{transform:translate(-100%)}to{transform:translate(250%)}}@keyframes x1xhkexc-B{0%{opacity:0;width:0;margin-inline-end:0}to{opacity:1;width:14px;margin-inline-end:var(--spacing-1)}}:root,.xafi2nm{--border-width:1px}:root,.xj0fimd{--color-accent:var(--lightningcss-light,#0064e0)var(--lightningcss-dark,#2694fe);--color-accent-muted:var(--lightningcss-light,#0082fb33)var(--lightningcss-dark,#0082fb3f);--color-on-accent:#fff;--color-neutral:var(--lightningcss-light,#0536591a)var(--lightningcss-dark,#dfe2e533);--color-background-surface:var(--lightningcss-light,#fff)var(--lightningcss-dark,#1f1f22);--color-background-body:var(--lightningcss-light,#f1f4f7)var(--lightningcss-dark,#111112);--color-overlay:var(--lightningcss-light,#01122866)var(--lightningcss-dark,#11111299);--color-overlay-hover:var(--lightningcss-light,#0536590c)var(--lightningcss-dark,#ffffff0c);--color-overlay-pressed:var(--lightningcss-light,#05365919)var(--lightningcss-dark,#ffffff19);--color-background-muted:var(--lightningcss-light,#0536590c)var(--lightningcss-dark,#1111127f);--color-text-primary:var(--lightningcss-light,#0a1317)var(--lightningcss-dark,#dfe2e5);--color-text-secondary:var(--lightningcss-light,#4e606f)var(--lightningcss-dark,#aaafb5);--color-text-disabled:var(--lightningcss-light,#a4b0bc)var(--lightningcss-dark,#6f747c);--color-text-accent:var(--lightningcss-light,#0064e0)var(--lightningcss-dark,#3e9efb);--color-on-dark:#fff;--color-on-light:#000;--color-icon-accent:var(--lightningcss-light,#0064e0)var(--lightningcss-dark,#2694fe);--color-icon-primary:var(--lightningcss-light,#0a1317)var(--lightningcss-dark,#dfe2e5);--color-icon-secondary:var(--lightningcss-light,#4e606f)var(--lightningcss-dark,#aaafb5);--color-icon-disabled:var(--lightningcss-light,#a4b0bc)var(--lightningcss-dark,#6f747c);--color-background-card:var(--lightningcss-light,#fff)var(--lightningcss-dark,#1f1f22);--color-background-popover:var(--lightningcss-light,#fff)var(--lightningcss-dark,#28292c);--color-background-inverted:var(--lightningcss-light,#0a1317)var(--lightningcss-dark,#fff);--color-background-error-inverted:var(--lightningcss-light,#aa071e)var(--lightningcss-dark,#e3193b);--color-success:#0d8626;--color-success-muted:var(--lightningcss-light,#0b991f33)var(--lightningcss-dark,#0b991f3f);--color-on-success:#fff;--color-error:var(--lightningcss-light,#e3193b)var(--lightningcss-dark,#f5394f);--color-error-muted:var(--lightningcss-light,#e3193b33)var(--lightningcss-dark,#f5394f3f);--color-on-error:#fff;--color-warning:var(--lightningcss-light,#e9af08)var(--lightningcss-dark,#f2c00b);--color-warning-muted:var(--lightningcss-light,#e2a40033)var(--lightningcss-dark,#e2a4003f);--color-on-warning:#0a1317;--color-border:var(--lightningcss-light,#05365919)var(--lightningcss-dark,#f2f4f619);--color-border-emphasized:var(--lightningcss-light,#ccd3db)var(--lightningcss-dark,#494d53);--color-skeleton:var(--lightningcss-light,#ccd3db)var(--lightningcss-dark,#5a5e66);--color-track:var(--lightningcss-light,#ccd3db)var(--lightningcss-dark,#5a5e66);--color-shadow:var(--lightningcss-light,#0536591a)var(--lightningcss-dark,#0000004d);--color-tint-hover:var(--lightningcss-light,#000)var(--lightningcss-dark,#fff);--color-background-blue:#0171e333;--color-border-blue:var(--lightningcss-light,#0064e0)var(--lightningcss-dark,#2694fe);--color-icon-blue:var(--lightningcss-light,#0064e0)var(--lightningcss-dark,#2694fe);--color-text-blue:var(--lightningcss-light,#042f97)var(--lightningcss-dark,#afd7ff);--color-background-cyan:#03a7d733;--color-border-cyan:var(--lightningcss-light,#089dd0)var(--lightningcss-dark,#0171a4);--color-icon-cyan:var(--lightningcss-light,#00acc1)var(--lightningcss-dark,#26c6da);--color-text-cyan:var(--lightningcss-light,#014975)var(--lightningcss-dark,#a1eef9);--color-background-gray:var(--lightningcss-light,#0a131733)var(--lightningcss-dark,#666a724c);--color-border-gray:var(--lightningcss-light,#647685)var(--lightningcss-dark,#748695);--color-icon-gray:var(--lightningcss-light,#4e606f)var(--lightningcss-dark,#aaafb5);--color-text-gray:var(--lightningcss-light,#0a1317)var(--lightningcss-dark,#e7eaed);--color-background-green:#24bb5e33;--color-border-green:var(--lightningcss-light,#0d8626)var(--lightningcss-dark,#0b991f);--color-icon-green:var(--lightningcss-light,#0d8626)var(--lightningcss-dark,#26a756);--color-text-green:var(--lightningcss-light,#09441f)var(--lightningcss-dark,#a5f690);--color-background-orange:#f2790233;--color-border-orange:var(--lightningcss-light,#eb6e00)var(--lightningcss-dark,#b34a01);--color-icon-orange:var(--lightningcss-light,#e9690b)var(--lightningcss-dark,#fb8c00);--color-text-orange:var(--lightningcss-light,#6b2203)var(--lightningcss-dark,#fdb876);--color-background-pink:#e638b333;--color-border-pink:var(--lightningcss-light,#f351c0)var(--lightningcss-dark,#c02294);--color-icon-pink:var(--lightningcss-light,#c2185b)var(--lightningcss-dark,#ec407a);--color-text-pink:var(--lightningcss-light,#650053)var(--lightningcss-dark,#feade3);--color-background-purple:#7952ff33;--color-border-purple:var(--lightningcss-light,#9081ff)var(--lightningcss-dark,#7340fe);--color-icon-purple:var(--lightningcss-light,#5b08d8)var(--lightningcss-dark,#7952ff);--color-text-purple:var(--lightningcss-light,#3e0697)var(--lightningcss-dark,#b3b0fe);--color-background-red:#e3193b33;--color-border-red:var(--lightningcss-light,#e3193b)var(--lightningcss-dark,#f5394f);--color-icon-red:var(--lightningcss-light,#d31130)var(--lightningcss-dark,#e3193b);--color-text-red:var(--lightningcss-light,#7b0210)var(--lightningcss-dark,#ffb2b8);--color-background-teal:#0db7af33;--color-border-teal:var(--lightningcss-light,#08a3a3)var(--lightningcss-dark,#08767d);--color-icon-teal:var(--lightningcss-light,#009688)var(--lightningcss-dark,#26a69a);--color-text-teal:var(--lightningcss-light,#083943)var(--lightningcss-dark,#40dccd);--color-background-yellow:#e2a40033;--color-border-yellow:var(--lightningcss-light,#c58600)var(--lightningcss-dark,#b47700);--color-icon-yellow:var(--lightningcss-light,#fbc02d)var(--lightningcss-dark,#ffee58);--color-text-yellow:var(--lightningcss-light,#753f07)var(--lightningcss-dark,#fbce03)}:root,.x14lkjui{--duration-fast-min:.13s;--duration-fast:.175s;--duration-fast-max:.23s;--duration-medium-min:.31s;--duration-medium:.41s;--duration-medium-max:.55s;--duration-slow-min:.73s;--duration-slow:.975s;--duration-slow-max:1.3s}:root,.xf09i69{--ease-standard:cubic-bezier(.24, 1, .4, 1)}:root,.xzxs3qz{--focus-outline-width:2px;--focus-outline-style:solid;--focus-outline-color:var(--color-accent);--focus-outline-offset:3px}:root,.x5tdzeq{--font-family-body:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-family-code:"SF Mono", Monaco, Consolas, monospace;--font-family-heading:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}:root,.x1q1ms06{--font-size-4xs:.375rem;--font-size-3xs:.4375rem;--font-size-2xs:.5rem;--font-size-xs:.625rem;--font-size-sm:.75rem;--font-size-base:.875rem;--font-size-lg:1.0625rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.8125rem;--font-size-4xl:2.1875rem;--font-size-5xl:2.625rem}:root,.x1ccmotb{--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700}:root,.xrw1vgx{--radius-none:0px;--radius-inner:4px;--radius-element:8px;--radius-container:12px;--radius-page:28px;--radius-chat:28px;--radius-full:9999px}:root,.xua8qm3{--shadow-low:0px 1px 1px var(--lightningcss-light,#0000001a)var(--lightningcss-dark,#0003), 0px 2px 8px var(--lightningcss-light,#0000001a)var(--lightningcss-dark,#0003);--shadow-med:0px 1px 2px var(--lightningcss-light,#0000001a)var(--lightningcss-dark,#0003), 0px 2px 12px var(--lightningcss-light,#0000001a)var(--lightningcss-dark,#0003);--shadow-high:0px 2px 2px var(--lightningcss-light,#0000001a)var(--lightningcss-dark,#0003), 0px 8px 24px var(--lightningcss-light,#0000001a)var(--lightningcss-dark,#0000004d);--shadow-inset-hover:inset 0px 0px 0px 2px var(--lightningcss-light,#05365926)var(--lightningcss-dark,#dfe2e533);--shadow-inset-selected:inset 0px 0px 0px 2px #0171e380;--shadow-inset-success:inset 0px 0px 0px 2px #26a7564d;--shadow-inset-warning:inset 0px 0px 0px 2px #e2a4004d;--shadow-inset-error:inset 0px 0px 0px 2px #e3193b4d}:root,.xkgjyic{--size-element-sm:28px;--size-element-md:32px;--size-element-lg:36px}:root,.x1kvdh9l{--spacing-0:0px;--spacing-0-5:2px;--spacing-1:4px;--spacing-1-5:6px;--spacing-2:8px;--spacing-3:12px;--spacing-4:16px;--spacing-5:20px;--spacing-6:24px;--spacing-7:28px;--spacing-8:32px;--spacing-9:36px;--spacing-10:40px;--spacing-11:44px;--spacing-12:48px}:root,.x1etlgq0{--text-heading-1-size:var(--font-size-2xl);--text-heading-1-weight:var(--font-weight-semibold);--text-heading-1-leading:1.3333;--text-heading-2-size:var(--font-size-xl);--text-heading-2-weight:var(--font-weight-semibold);--text-heading-2-leading:1.4;--text-heading-3-size:var(--font-size-lg);--text-heading-3-weight:var(--font-weight-semibold);--text-heading-3-leading:1.4118;--text-heading-4-size:var(--font-size-base);--text-heading-4-weight:var(--font-weight-semibold);--text-heading-4-leading:1.4286;--text-heading-5-size:var(--font-size-sm);--text-heading-5-weight:var(--font-weight-semibold);--text-heading-5-leading:1.6667;--text-heading-6-size:var(--font-size-xs);--text-heading-6-weight:var(--font-weight-semibold);--text-heading-6-leading:1.6;--text-body-size:var(--font-size-base);--text-body-weight:var(--font-weight-normal);--text-body-leading:1.4286;--text-large-size:var(--font-size-lg);--text-large-weight:var(--font-weight-semibold);--text-large-leading:1.4118;--text-label-size:var(--font-size-base);--text-label-weight:var(--font-weight-medium);--text-label-leading:1.4286;--text-code-size:var(--font-size-base);--text-code-weight:var(--font-weight-normal);--text-code-leading:1.4286;--text-supporting-size:var(--font-size-sm);--text-supporting-weight:var(--font-weight-normal);--text-supporting-leading:1.6667;--text-display-1-size:var(--font-size-5xl);--text-display-1-weight:var(--font-weight-normal);--text-display-1-leading:1.2381;--text-display-2-size:var(--font-size-4xl);--text-display-2-weight:var(--font-weight-normal);--text-display-2-leading:1.2571;--text-display-3-size:var(--font-size-3xl);--text-display-3-weight:var(--font-weight-normal);--text-display-3-leading:1.2414}.xlz5hwt{--_avatar-group-overlap:var(--x---_avatar-group-overlap)}.xdarwi0{--_avatar-radius:var(--radius-element)}.xeincmr{--_avatar-radius:var(--radius-full)}.x877142{--_avatar-radius:var(--radius-none)}.xh8ntw8{--_button-radius:calc(var(--radius-element) - var(--spacing-1))}.xcw7vlg{--_button-radius:max(var(--radius-element),calc(var(--_chat-composer-radius) - var(--_chat-composer-padding)))}.x1rjw8qi{--_button-radius:var(--radius-full)}.xw28qpl{--_card-elevation:0 0 transparent}.xnpe7fx{--_card-elevation:var(--shadow-high)}.x1nn8khe{--_card-elevation:var(--shadow-low)}.x1ovzxg0{--_card-elevation:var(--shadow-med)}.x2kkz0m{--_card-radius:var(--radius-container)}.xr9ms2c{--_card-ring:inset 0 0 0 2px var(--color-accent)}.xgwwt2v{--_card-ring:inset 0 0 0 2px var(--color-border-blue)}.xcdi0x3{--_card-ring:inset 0 0 0 2px var(--color-border-cyan)}.x1m1zkwp{--_card-ring:inset 0 0 0 2px var(--color-border-gray)}.x1485227{--_card-ring:inset 0 0 0 2px var(--color-border-green)}.x1cclxpp{--_card-ring:inset 0 0 0 2px var(--color-border-orange)}.xzs6dn4{--_card-ring:inset 0 0 0 2px var(--color-border-pink)}.x9zgi83{--_card-ring:inset 0 0 0 2px var(--color-border-purple)}.xo8718j{--_card-ring:inset 0 0 0 2px var(--color-border-red)}.xp4e5fy{--_card-ring:inset 0 0 0 2px var(--color-border-teal)}.x1glw7ee{--_card-ring:inset 0 0 0 2px var(--color-border-yellow)}.x3zsw4j{--_card-ring:inset 0 0 0 2px var(--selectable-card-ring-color)}.x18zce08{--_chat-composer-padding:var(--spacing-2)}.xk0ittl{--_chat-composer-padding:var(--spacing-3)}.xx161y6{--_chat-composer-radius:var(--radius-chat)}.xtk08jq{--_codeblock-gutter-width:var(--x---_codeblock-gutter-width)}.x9pmotm{--_conceal-opacity:0}.x1kgmhs9{--_conceal-opacity:1}.xvuvksw{--_dialog-radius:var(--radius-container)}.xgory14{--_dropdown-menu-padding:var(--spacing-1)}.x1fcsqxe{--_dropdown-menu-radius:var(--radius-container)}.x13l1x9d{--_fade-delay:0s}.x1832zxr{--_field-radius:var(--radius-element)}.xgzxwq1{--_focus-outline-offset:0}.x17wzz1v{--_focus-outline:none}.xhg274n{--_hover-delay:0s}.x8xu23y{--_hover-delay:var(--x---_hover-delay)}.xqwz7mz{--_hovercard-radius:var(--radius-container)}.xqxtgf4{--_input-clear-hit-content:none}.xtoycft{--_input-clear-hit-inset:0px}.xqlix59{--_item-description-color:var(--color-error)}.xufyqxy{--_item-label-color:var(--color-error)}.xiki222{--_popover-radius:var(--radius-container)}.xdjmrzf{--_reveal-delay-reduced:0s,0s}.x1dejzja{--_reveal-delay:0s,0s}.x1xiarpw{--_reveal-delay:0s,var(--duration-fast)}.xct0gwe{--_reveal-opacity:0}.x5setjs{--_reveal-opacity:1}.xp0pj8v{--_reveal-position:absolute}.x1r6s5ct{--_reveal-position:static}.x1f17rg1{--_section-padding-propagated:initial}.x2ccaqq{--_section-padding-propagated:var(--spacing-0-5)}.x7mo41q{--_section-padding-propagated:var(--spacing-0)}.xxa843v{--_section-padding-propagated:var(--spacing-1-5)}.x1j3iakl{--_section-padding-propagated:var(--spacing-1)}.x4h2jfd{--_section-padding-propagated:var(--spacing-10)}.xezgk69{--_section-padding-propagated:var(--spacing-2)}.x1wtz8uf{--_section-padding-propagated:var(--spacing-3)}.x5wdj8h{--_section-padding-propagated:var(--spacing-4)}.xgjndll{--_section-padding-propagated:var(--spacing-5)}.x15i4jqh{--_section-padding-propagated:var(--spacing-6)}.xmb9lpv{--_section-padding-propagated:var(--spacing-8)}.x18jk3ff{--_segmented-control-padding:var(--spacing-0-5)}.x9icjy1{--_segmented-control-radius:var(--radius-element)}.x69vvuq{--_spinner-box-size:calc(var(--_spinner-ring-diameter) + var(--_spinner-ring-stroke) * 2)}.x2lq4xu{--_spinner-ring-diameter:var(--spinner-diameter)}.x10qssua{--_spinner-ring-stroke:var(--spinner-stroke-width)}.xficto1{--_tab-indicator-bottom:calc(-1 * (var(--spacing-1) + var(--border-width)))}.xbrl7fg{--_tab-indicator-bottom:var(--x---_tab-indicator-bottom)}.x78b515{--_tab-strip-bleed:0px}.x1kdpo6e{--_textarea-inline-padding:var(--spacing-2)}.x1ur4yav{--_thumbnail-hit-inset:0px}.x87gnkx{--_toast-slide-y:calc(-1 * var(--spacing-2))}.x1heqljd{--_toast-slide-y:var(--spacing-2)}.x16bblx1{--button-focus-offset:var(--focus-outline-offset)}.x1v15ycx{--button-icon-only-aspect:1 / 1}.x1mtvhk1{--color-syntax-background:transparent}.x18nyedi{--container-max-height:var(--x---container-max-height)}.xax9j7h{--container-padding-block-end:0px}.x1omyuck{--container-padding-block-end:var(--astryx-card-padding-block-end,var(--astryx-card-padding,var(--spacing-4)))}.x1gvthzm{--container-padding-block-end:var(--astryx-dialog-padding-block-end,var(--astryx-dialog-padding,var(--spacing-4)))}.xek4msv{--container-padding-block-end:var(--astryx-section-padding-block-end,var(--_section-padding-propagated,var(--astryx-section-padding,var(--spacing-4))))}.xi9ns85{--container-padding-block-end:var(--layout-padding-inner-y,var(--spacing-4))}.x1xjq73n{--container-padding-block-end:var(--layout-padding-outer-y,var(--spacing-4))}.x1cao3zv{--container-padding-block-end:var(--spacing-0-5)}.xkunwnr{--container-padding-block-end:var(--spacing-0)}.xv53x8y{--container-padding-block-end:var(--spacing-1-5)}.x57a7ii{--container-padding-block-end:var(--spacing-1)}.x15vxphk{--container-padding-block-end:var(--spacing-10)}.x4bg2x9{--container-padding-block-end:var(--spacing-11)}.x186mjxr{--container-padding-block-end:var(--spacing-12)}.x1lsgcmx{--container-padding-block-end:var(--spacing-2)}.x1q3ppug{--container-padding-block-end:var(--spacing-3)}.x4hfsld{--container-padding-block-end:var(--spacing-4)}.xbib2ws{--container-padding-block-end:var(--spacing-5)}.x1q8d17g{--container-padding-block-end:var(--spacing-6)}.x1yqogew{--container-padding-block-end:var(--spacing-7)}.x8lgq76{--container-padding-block-end:var(--spacing-8)}.x1f7f9rt{--container-padding-block-end:var(--spacing-9)}.x1047aw6{--container-padding-block-start:0px}.x1rqz8me{--container-padding-block-start:var(--astryx-card-padding-block-start,var(--astryx-card-padding,var(--spacing-4)))}.x1g2kccc{--container-padding-block-start:var(--astryx-dialog-padding-block-start,var(--astryx-dialog-padding,var(--spacing-4)))}.xnw7zt4{--container-padding-block-start:var(--astryx-section-padding-block-start,var(--_section-padding-propagated,var(--astryx-section-padding,var(--spacing-4))))}.xjmgx01{--container-padding-block-start:var(--layout-padding-inner-y,var(--spacing-4))}.xzz8v79{--container-padding-block-start:var(--layout-padding-outer-y,var(--spacing-4))}.xvdf9ev{--container-padding-block-start:var(--spacing-0-5)}.x1i3qcxz{--container-padding-block-start:var(--spacing-0)}.x1kbx601{--container-padding-block-start:var(--spacing-1-5)}.xnsckjb{--container-padding-block-start:var(--spacing-1)}.x17h9kl7{--container-padding-block-start:var(--spacing-10)}.x1rdjxae{--container-padding-block-start:var(--spacing-11)}.xecwdl6{--container-padding-block-start:var(--spacing-12)}.xa8b4fq{--container-padding-block-start:var(--spacing-2)}.x11k4f5r{--container-padding-block-start:var(--spacing-3)}.xm01sq8{--container-padding-block-start:var(--spacing-4)}.xp8wdkl{--container-padding-block-start:var(--spacing-5)}.x1hmud4d{--container-padding-block-start:var(--spacing-6)}.x1c00sag{--container-padding-block-start:var(--spacing-7)}.xfv60at{--container-padding-block-start:var(--spacing-8)}.x14fzdu7{--container-padding-block-start:var(--spacing-9)}.xjsfl84{--container-padding-inline-end:0px}.x1ihxwbr{--container-padding-inline-end:var(--astryx-card-padding-inline-end,var(--astryx-card-padding-inline,var(--astryx-card-padding,var(--spacing-4))))}.x11h1f2o{--container-padding-inline-end:var(--astryx-dialog-padding-inline-end,var(--astryx-dialog-padding-inline,var(--astryx-dialog-padding,var(--spacing-4))))}.xu1wldr{--container-padding-inline-end:var(--astryx-section-padding-inline-end,var(--astryx-section-padding-inline,var(--_section-padding-propagated,var(--astryx-section-padding,var(--spacing-4)))))}.xikqloz{--container-padding-inline-end:var(--layout-padding-inner-x,var(--spacing-4))}.xqpvj4r{--container-padding-inline-end:var(--layout-padding-outer-x,var(--spacing-4))}.x1wz3t3y{--container-padding-inline-end:var(--spacing-0-5)}.x91ghl5{--container-padding-inline-end:var(--spacing-0)}.xntetml{--container-padding-inline-end:var(--spacing-1-5)}.x2oyxnl{--container-padding-inline-end:var(--spacing-1)}.xx5lg5w{--container-padding-inline-end:var(--spacing-10)}.x1nmgbqg{--container-padding-inline-end:var(--spacing-11)}.x1wsfsk2{--container-padding-inline-end:var(--spacing-12)}.xcas3b9{--container-padding-inline-end:var(--spacing-2)}.xu0ipoa{--container-padding-inline-end:var(--spacing-3)}.xs0pscg{--container-padding-inline-end:var(--spacing-4)}.xgkj7vj{--container-padding-inline-end:var(--spacing-5)}.x94cj42{--container-padding-inline-end:var(--spacing-6)}.x11tj35w{--container-padding-inline-end:var(--spacing-7)}.x1b9k1pi{--container-padding-inline-end:var(--spacing-8)}.x19w02kr{--container-padding-inline-end:var(--spacing-9)}.xrhngw9{--container-padding-inline-start:0px}.xjmlhfd{--container-padding-inline-start:var(--astryx-card-padding-inline-start,var(--astryx-card-padding-inline,var(--astryx-card-padding,var(--spacing-4))))}.x1tewnwq{--container-padding-inline-start:var(--astryx-dialog-padding-inline-start,var(--astryx-dialog-padding-inline,var(--astryx-dialog-padding,var(--spacing-4))))}.x19lemt0{--container-padding-inline-start:var(--astryx-section-padding-inline-start,var(--astryx-section-padding-inline,var(--_section-padding-propagated,var(--astryx-section-padding,var(--spacing-4)))))}.x408pgh{--container-padding-inline-start:var(--layout-padding-inner-x,var(--spacing-4))}.xdvaxxn{--container-padding-inline-start:var(--layout-padding-outer-x,var(--spacing-4))}.x14ws0sr{--container-padding-inline-start:var(--spacing-0-5)}.x1gu2k80{--container-padding-inline-start:var(--spacing-0)}.x176g23i{--container-padding-inline-start:var(--spacing-1-5)}.x1cvlban{--container-padding-inline-start:var(--spacing-1)}.xserb3f{--container-padding-inline-start:var(--spacing-10)}.xziclwo{--container-padding-inline-start:var(--spacing-11)}.x1iiwihq{--container-padding-inline-start:var(--spacing-12)}.x1xlrr2o{--container-padding-inline-start:var(--spacing-2)}.xfdwxua{--container-padding-inline-start:var(--spacing-3)}.x1dlhslv{--container-padding-inline-start:var(--spacing-4)}.x1s81nki{--container-padding-inline-start:var(--spacing-5)}.x1ep0dkj{--container-padding-inline-start:var(--spacing-6)}.x157xojc{--container-padding-inline-start:var(--spacing-7)}.xw1diwv{--container-padding-inline-start:var(--spacing-8)}.xraca2a{--container-padding-inline-start:var(--spacing-9)}.x1qfzo5y{--indicator-color:transparent}.x4906uf{--layout-content-width:var(--x---layout-content-width)}.x1qfll2g{--layout-padding-inner-x:initial}.x4poyjn{--layout-padding-inner-x:var(--astryx-card-padding-inline-start,var(--astryx-card-padding-inline,var(--astryx-card-padding,var(--spacing-4))))}.x2so38{--layout-padding-inner-x:var(--astryx-dialog-padding-inline-start,var(--astryx-dialog-padding-inline,var(--astryx-dialog-padding,var(--spacing-4))))}.x1v3gmnx{--layout-padding-inner-x:var(--astryx-section-padding-inline-start,var(--astryx-section-padding-inline,var(--_section-padding-propagated,var(--astryx-section-padding,var(--spacing-4)))))}.xlriy2h{--layout-padding-inner-x:var(--spacing-0-5)}.xj1bl4l{--layout-padding-inner-x:var(--spacing-0)}.xd38f90{--layout-padding-inner-x:var(--spacing-1-5)}.x6uuyak{--layout-padding-inner-x:var(--spacing-1)}.x1vf4qco{--layout-padding-inner-x:var(--spacing-10)}.xsmamsf{--layout-padding-inner-x:var(--spacing-11)}.x2xk2xj{--layout-padding-inner-x:var(--spacing-12)}.xxqksqd{--layout-padding-inner-x:var(--spacing-2)}.x1fyui2f{--layout-padding-inner-x:var(--spacing-3)}.x1i2ajwi{--layout-padding-inner-x:var(--spacing-4)}.x1tac27u{--layout-padding-inner-x:var(--spacing-5)}.x1ntgf3t{--layout-padding-inner-x:var(--spacing-6)}.xhjd9tl{--layout-padding-inner-x:var(--spacing-7)}.xn7c84u{--layout-padding-inner-x:var(--spacing-8)}.xeqkbsz{--layout-padding-inner-x:var(--spacing-9)}.xyvxpqs{--layout-padding-inner-y:initial}.x1u1kw4e{--layout-padding-inner-y:var(--astryx-card-padding-block-start,var(--astryx-card-padding,var(--spacing-4)))}.xinu7xd{--layout-padding-inner-y:var(--astryx-dialog-padding-block-start,var(--astryx-dialog-padding,var(--spacing-4)))}.x15yx5hm{--layout-padding-inner-y:var(--astryx-section-padding-block-start,var(--_section-padding-propagated,var(--astryx-section-padding,var(--spacing-4))))}.x180h0y5{--layout-padding-inner-y:var(--spacing-0-5)}.xwuefyo{--layout-padding-inner-y:var(--spacing-0)}.x1g8jpzm{--layout-padding-inner-y:var(--spacing-1-5)}.xmpug6m{--layout-padding-inner-y:var(--spacing-1)}.x18gbwmk{--layout-padding-inner-y:var(--spacing-10)}.x14zymzj{--layout-padding-inner-y:var(--spacing-11)}.xzfpkx9{--layout-padding-inner-y:var(--spacing-12)}.x1lksgje{--layout-padding-inner-y:var(--spacing-2)}.x4j7gld{--layout-padding-inner-y:var(--spacing-3)}.x1s3ehtl{--layout-padding-inner-y:var(--spacing-4)}.x1rj5eim{--layout-padding-inner-y:var(--spacing-5)}.x1ftgg6u{--layout-padding-inner-y:var(--spacing-6)}.x1ho74vh{--layout-padding-inner-y:var(--spacing-7)}.xm2cs6f{--layout-padding-inner-y:var(--spacing-8)}.x1vsq92b{--layout-padding-inner-y:var(--spacing-9)}.x1wbjvqu{--layout-padding-outer-x:0px}.xdt8ak2{--layout-padding-outer-x:initial}.x14rzhog{--layout-padding-outer-x:var(--astryx-card-padding-inline-start,var(--astryx-card-padding-inline,var(--astryx-card-padding,var(--spacing-4))))}.x1hsjncj{--layout-padding-outer-x:var(--astryx-dialog-padding-inline-start,var(--astryx-dialog-padding-inline,var(--astryx-dialog-padding,var(--spacing-4))))}.x15i0zw9{--layout-padding-outer-x:var(--astryx-section-padding-inline-start,var(--astryx-section-padding-inline,var(--_section-padding-propagated,var(--astryx-section-padding,var(--spacing-4)))))}.xihiwg7{--layout-padding-outer-x:var(--spacing-0-5)}.xswhm3q{--layout-padding-outer-x:var(--spacing-0)}.x1u93lgd{--layout-padding-outer-x:var(--spacing-1-5)}.xc96xmq{--layout-padding-outer-x:var(--spacing-1)}.x1jdf5a4{--layout-padding-outer-x:var(--spacing-10)}.x1hct0t0{--layout-padding-outer-x:var(--spacing-11)}.x11cyqoe{--layout-padding-outer-x:var(--spacing-12)}.x15dxnc0{--layout-padding-outer-x:var(--spacing-2)}.xadgj3j{--layout-padding-outer-x:var(--spacing-3)}.x1v56qcf{--layout-padding-outer-x:var(--spacing-4)}.x1nzs0gl{--layout-padding-outer-x:var(--spacing-5)}.x1c3n52a{--layout-padding-outer-x:var(--spacing-6)}.x1gfiokx{--layout-padding-outer-x:var(--spacing-7)}.x1t3kfz{--layout-padding-outer-x:var(--spacing-8)}.xzr4qsh{--layout-padding-outer-x:var(--spacing-9)}.xzxxx64{--layout-padding-outer-y:0px}.x1rs4lu4{--layout-padding-outer-y:initial}.xjej9fs{--layout-padding-outer-y:var(--astryx-card-padding-block-start,var(--astryx-card-padding,var(--spacing-4)))}.x1pui4bz{--layout-padding-outer-y:var(--astryx-dialog-padding-block-start,var(--astryx-dialog-padding,var(--spacing-4)))}.x1vw4zgg{--layout-padding-outer-y:var(--astryx-section-padding-block-start,var(--_section-padding-propagated,var(--astryx-section-padding,var(--spacing-4))))}.x1vj96e0{--layout-padding-outer-y:var(--spacing-0-5)}.x1mzf5mb{--layout-padding-outer-y:var(--spacing-0)}.xd3dqby{--layout-padding-outer-y:var(--spacing-1-5)}.x1gpfxoh{--layout-padding-outer-y:var(--spacing-1)}.x26l4wa{--layout-padding-outer-y:var(--spacing-10)}.x10zktp0{--layout-padding-outer-y:var(--spacing-11)}.x1yz3n6a{--layout-padding-outer-y:var(--spacing-12)}.x10pz7y9{--layout-padding-outer-y:var(--spacing-2)}.x1p6yq3h{--layout-padding-outer-y:var(--spacing-3)}.xx738ci{--layout-padding-outer-y:var(--spacing-4)}.x6yxws5{--layout-padding-outer-y:var(--spacing-5)}.x180vrwl{--layout-padding-outer-y:var(--spacing-6)}.x1q6rme1{--layout-padding-outer-y:var(--spacing-7)}.xid7e43{--layout-padding-outer-y:var(--spacing-8)}.x1t5kicu{--layout-padding-outer-y:var(--spacing-9)}.xnpej1e{--radius-element:var(--radius-full)}.x11rj6l1{--selectable-card-ring-color:var(--color-accent)}.xkce8z9{--separator-display:flex}.x1uzk0gl{--spinner-color:currentColor}.xt1b8mc{--spinner-color:var(--color-accent)}.x13u6jys{--spinner-color:var(--color-on-dark)}.x1jevo6s{--spinner-color:var(--color-text-secondary)}.x11wm0hx{--spinner-diameter:10px}.x15pu9g6{--spinner-diameter:14px}.x1w424tr{--spinner-diameter:18px}.x1orj1z9{--spinner-diameter:28px}.xls98ul{--spinner-stroke-width:2px}.xr0wkrm{--spinner-stroke-width:3px}.x7y2bof{--spinner-stroke-width:4px}.xbfzqbu{--spinner-track-color:currentColor}.x1ufpcf6{--spinner-track-color:var(--color-on-dark)}.xspt9s2{--spinner-track-color:var(--color-track)}.xpa4xmd{--tree-list-indent:var(--spacing-4)}.x1xbi2jf{--tree-list-row-gap:var(--spacing-0-5)}.x1wfyzv7:focus-within{--_fade-delay:0s}.xqchwus:focus-visible{--_focus-outline-offset:var(--focus-outline-offset)}.xqih627:focus-visible{--_focus-outline:var(--focus-outline-width) var(--focus-outline-style) var(--focus-outline-color)}.x1z42dm:focus-within{--_reveal-delay-reduced:0s,0s}.x1mjsb9v:focus-within{--_reveal-delay:0s,0s}.xi33vf3:focus-within{--_reveal-opacity:1}.xoa21yc:focus-within{--_reveal-position:static}.x11woleg:focus-visible,.x1my2cv6.x1my2cv6:hover:where(:not(:disabled,[aria-disabled=true])){--indicator-color:var(--color-accent)}.x158n88w:has(:focus-visible){--_tab-strip-bleed:calc(var(--focus-outline-width) + var(--focus-outline-offset))}.x1ibt0lz:first-child{--separator-display:none}.x1rht92:nth-child(2n){--table-row-overlay:var(--color-background-muted)}@media (any-pointer:coarse){.x1hl81f0.x1hl81f0{--_fade-delay:0s}}@media (pointer:coarse){.xp8r40j.xp8r40j{--_input-clear-hit-content:""}.x181bpwf.x181bpwf{--_input-clear-hit-inset:-2px}}@media (any-pointer:coarse){.xm1aeao.xm1aeao{--_reveal-delay-reduced:0s,0s}.x1pn63d7.x1pn63d7{--_reveal-delay:0s,0s}.xi7d7de.xi7d7de{--_reveal-opacity:1}.xarvkxi.xarvkxi{--_reveal-position:static}}@media (pointer:coarse){.x1h9khjt.x1h9khjt{--_thumbnail-hit-inset:-2px}}@media (hover:hover){.x1316hva.x1316hva.x1316hva:hover:where(:not(:disabled,[aria-disabled=true])){--_conceal-opacity:0}.xuzfaso.xuzfaso.xuzfaso:hover:where(:not(:disabled,[aria-disabled=true])){--_conceal-opacity:1}.xq03417.xq03417.xq03417:hover:where(:not(:disabled,[aria-disabled=true])){--_fade-delay:0s}.x14nxqze.x14nxqze.x14nxqze:hover:where(:not(:disabled,[aria-disabled=true])){--_fade-delay:var(--_hover-delay,0s)}.xap96qf.xap96qf.xap96qf:hover:where(:not(:disabled,[aria-disabled=true])){--_reveal-delay-reduced:0s,0s}.xvd8mm8.xvd8mm8.xvd8mm8:hover:where(:not(:disabled,[aria-disabled=true])){--_reveal-delay-reduced:var(--_hover-delay,0s),var(--_hover-delay,0s)}.x1t6fdr0.x1t6fdr0.x1t6fdr0:hover:where(:not(:disabled,[aria-disabled=true])){--_reveal-delay:0s,0s}.x1tx49wl.x1tx49wl.x1tx49wl:hover:where(:not(:disabled,[aria-disabled=true])){--_reveal-delay:0s,var(--duration-fast)}.xi1ebb6.xi1ebb6.xi1ebb6:hover:where(:not(:disabled,[aria-disabled=true])){--_reveal-delay:var(--_hover-delay,0s),var(--_hover-delay,0s)}.xfqgg65.xfqgg65.xfqgg65:hover:where(:not(:disabled,[aria-disabled=true])){--_reveal-opacity:0}.x2xrgwu.x2xrgwu.x2xrgwu:hover:where(:not(:disabled,[aria-disabled=true])){--_reveal-opacity:1}.x17ock8y.x17ock8y.x17ock8y:hover:where(:not(:disabled,[aria-disabled=true])){--_reveal-position:absolute}.x1or4zte.x1or4zte.x1or4zte:hover:where(:not(:disabled,[aria-disabled=true])){--_reveal-position:static}.xc01ov8.xc01ov8.xc01ov8:hover:where(:not(:disabled,[aria-disabled=true])){--table-row-overlay:var(--color-overlay-hover)}}.xln7xf2:not(#\#){font:inherit}.x15r89dc:not(#\#){grid-area:1/1}.x10a8y8t:not(#\#){inset:0}.x1anvkwx:not(#\#){inset:auto}.xh3736h:not(#\#){inset:unset}.xkdpibf:not(#\#){margin:-1px}.x1ghz6dp:not(#\#){margin:0}.xkib98w:not(#\#){margin:8px}.x1bpp3o7:not(#\#){margin:auto}.x1n5sqmh:not(#\#){margin:calc(-1 * (var(--spacing-2) - var(--spacing-1) + 1px))}.x1717udv:not(#\#){padding:0}.x1tamke2:not(#\#){padding:16px}.x1i3ajwb:not(#\#){padding:2px}.xfawy5m:not(#\#){padding:4px}.x1b50gpf:not(#\#){padding:calc(var(--_chat-composer-padding) - var(--border-width))}.x18oj4ui:not(#\#){padding:var(--_chat-composer-padding)}.xpoxszi:not(#\#){padding:var(--_segmented-control-padding)}.xtozwh:not(#\#){padding:var(--spacing-1) var(--spacing-2)}.x9epnlk:not(#\#){padding:var(--spacing-1)}.x15nmkw0:not(#\#){padding:var(--spacing-2) 0}.xlsj2fj:not(#\#){padding:var(--spacing-2)}.x1b2ylru:not(#\#){padding:var(--spacing-3)}.x1shk3sm:not(#\#){padding:var(--spacing-4)}.x1y5lnwp:focus:not(#\#){margin:0}.xg8s4dl:not(#\#):not(#\#){animation-range:cover}.x9r1u3d:not(#\#):not(#\#){border-color:#0000}.xad5do:not(#\#):not(#\#){border-color:var(--color-accent)}.x1touxvs:not(#\#):not(#\#){border-color:var(--color-background-surface)}.xlee4gx:not(#\#):not(#\#){border-color:var(--color-border-blue)}.xb1xfl:not(#\#):not(#\#){border-color:var(--color-border-cyan)}.xvy26l8:not(#\#):not(#\#){border-color:var(--color-border-emphasized)}.x1w9ec3u:not(#\#):not(#\#){border-color:var(--color-border-gray)}.xy90a9n:not(#\#):not(#\#){border-color:var(--color-border-green)}.xloqurj:not(#\#):not(#\#){border-color:var(--color-border-orange)}.x1czkbn8:not(#\#):not(#\#){border-color:var(--color-border-pink)}.xq98wne:not(#\#):not(#\#){border-color:var(--color-border-purple)}.xjqgoec:not(#\#):not(#\#){border-color:var(--color-border-red)}.x1r9gxr1:not(#\#):not(#\#){border-color:var(--color-border-teal)}.x1kpnwn1:not(#\#):not(#\#){border-color:var(--color-border-yellow)}.x14i3s5s:not(#\#):not(#\#){border-color:var(--color-border)}.x1ofxpqo:not(#\#):not(#\#){border-color:var(--color-error)}.x16m2moy:not(#\#):not(#\#){border-color:var(--color-success)}.xqcx1ss:not(#\#):not(#\#){border-color:var(--color-text-primary)}.x8wg1ba:not(#\#):not(#\#){border-color:var(--color-warning)}.x2u8bby:not(#\#):not(#\#){border-radius:0}.x1nj7uno:not(#\#):not(#\#){border-radius:1px}.x16rqkct:not(#\#):not(#\#){border-radius:50%}.xur7f20:not(#\#):not(#\#){border-radius:8px}.x1pjcqnp:not(#\#):not(#\#){border-radius:inherit}.x1ws5lxm:not(#\#):not(#\#){border-radius:max(0px,calc(var(--_dropdown-menu-radius,var(--spacing-2)) - var(--_dropdown-menu-padding,var(--spacing-1))))}.xc910v0:not(#\#):not(#\#){border-radius:max(0px,calc(var(--_segmented-control-radius) - var(--_segmented-control-padding)))}.xbc78cj:not(#\#):not(#\#){border-radius:var(--_avatar-radius)}.x1vf2byn:not(#\#):not(#\#){border-radius:var(--_banner-radius,var(--radius-container))}.x1jxw6zd:not(#\#):not(#\#){border-radius:var(--_button-radius,var(--radius-element))}.xy0xnkn:not(#\#):not(#\#){border-radius:var(--_button-radius,var(--radius-full))}.x153u1i6:not(#\#):not(#\#){border-radius:var(--_card-radius)}.x1xunbrq:not(#\#):not(#\#){border-radius:var(--_chat-composer-radius)}.xuacgfc:not(#\#):not(#\#){border-radius:var(--_dialog-radius)}.x1n97fys:not(#\#):not(#\#){border-radius:var(--_dropdown-menu-radius)}.xvdfih8:not(#\#):not(#\#){border-radius:var(--_field-radius)}.x7a53xk:not(#\#):not(#\#){border-radius:var(--_hovercard-radius)}.x11m9jtl:not(#\#):not(#\#){border-radius:var(--_popover-radius)}.x1hapoqb:not(#\#):not(#\#){border-radius:var(--_segmented-control-radius)}.xashgol:not(#\#):not(#\#){border-radius:var(--radius-chat)}.x1hviunn:not(#\#):not(#\#){border-radius:var(--radius-container)}.xh6dtrn:not(#\#):not(#\#){border-radius:var(--radius-element)}.xjspbzw:not(#\#):not(#\#){border-radius:var(--radius-full)}.xx3sua9:not(#\#):not(#\#){border-radius:var(--radius-inner)}.xwksslw:not(#\#):not(#\#){border-radius:var(--radius-none)}.xbsl7fq:not(#\#):not(#\#){border-style:dashed}.xng3xce:not(#\#):not(#\#){border-style:none}.x1y0btm7:not(#\#):not(#\#){border-style:solid}.xc342km:not(#\#):not(#\#){border-width:0}.xmkeg23:not(#\#):not(#\#){border-width:1px}.xdh2fpr:not(#\#):not(#\#){border-width:2px}.x1litavf:not(#\#):not(#\#){border-width:var(--border-width)}.x1mw0n95:not(#\#):not(#\#){border-width:var(--x-borderWidth)}.x1somy94:not(#\#):not(#\#){flex:0 0 0}.x3psx0u:not(#\#):not(#\#){flex:none}.x1cqoux5:not(#\#):not(#\#){flex:1 1 0}.x845mor:not(#\#):not(#\#){flex:1}.xfoc8du:not(#\#):not(#\#){flex:40px}.x12lumcd:not(#\#):not(#\#){flex:auto}.x98rzlu:not(#\#):not(#\#){flex:1}.xxhr3t:not(#\#):not(#\#){gap:0}.x1jnr06f:not(#\#):not(#\#){gap:4px}.x167g77z:not(#\#):not(#\#){gap:8px}.x14kbac9:not(#\#):not(#\#){gap:inherit}.x1lsbc85:not(#\#):not(#\#){gap:var(--spacing-0-5)}.xsn7fz1:not(#\#):not(#\#){gap:var(--spacing-0)}.x1s4dlld:not(#\#):not(#\#){gap:var(--spacing-1-5)}.xzye2dw:not(#\#):not(#\#){gap:var(--spacing-1)}.x3hoi3v:not(#\#):not(#\#){gap:var(--spacing-10)}.xpec5dj:not(#\#):not(#\#){gap:var(--spacing-2) var(--spacing-4)}.x1txdalj:not(#\#):not(#\#){gap:var(--spacing-2)}.xlaq8a2:not(#\#):not(#\#){gap:var(--spacing-3) var(--spacing-4)}.xjcht0a:not(#\#):not(#\#){gap:var(--spacing-3)}.x18g69wz:not(#\#):not(#\#){gap:var(--spacing-4)}.x9mgr7n:not(#\#):not(#\#){gap:var(--spacing-5)}.x1qh66ti:not(#\#):not(#\#){gap:var(--spacing-6)}.x4t41sb:not(#\#):not(#\#){gap:var(--spacing-8)}.x1pidvrl:not(#\#):not(#\#){gap:var(--x-gap)}.xgkxs2y:not(#\#):not(#\#){grid-column:1}.x1ms6mhf:not(#\#):not(#\#){grid-row:1}.x10no89f:not(#\#):not(#\#){inset-block:0}.x17y0mx6:not(#\#):not(#\#){inset-inline:0}.xe8uvvx:not(#\#):not(#\#){list-style:none}.x81ka23:not(#\#):not(#\#){margin-block:calc(-1 * (var(--spacing-3) - var(--spacing-2)))}.xhzvc8f:not(#\#):not(#\#){margin-block:calc(-1 * var(--spacing-2))}.xqixskq:not(#\#):not(#\#){margin-block:calc(var(--size-element-md) / 2 - var(--spacing-2) - var(--text-heading-2-size) * var(--text-heading-2-leading) / 2)}.xsq74q5:not(#\#):not(#\#){margin-block:var(--spacing-1)}.x1g06x3t:not(#\#):not(#\#){margin-block:var(--spacing-2)}.x1oqu0vw:not(#\#):not(#\#){margin-block:var(--x-marginBlock)}.xvueqy4:not(#\#):not(#\#){margin-inline:auto}.xi5l473:not(#\#):not(#\#){margin-inline:calc(-1 * (var(--_tab-strip-bleed)))}.xtedp8i:not(#\#):not(#\#){margin-inline:calc(-1 * var(--spacing-1))}.x1ho7dyk:not(#\#):not(#\#){margin-inline:calc(-1 * var(--spacing-2))}.x1ng9b9t:not(#\#):not(#\#){margin-inline:calc(-1 * var(--spacing-4))}.xhrcg97:not(#\#):not(#\#){margin-inline:var(--spacing-1)}.xvlecxo:not(#\#):not(#\#){margin-inline:var(--x-marginInline)}.x1a2a7pz:not(#\#):not(#\#){outline:none}.xaw4jrz:not(#\#):not(#\#){outline:var(--_focus-outline,none)}.xysyzu8:not(#\#):not(#\#){overflow:auto}.x7giv3:not(#\#):not(#\#){overflow:clip}.xb3r6kr:not(#\#):not(#\#){overflow:hidden}.x1rea2x4:not(#\#):not(#\#){overflow:visible}.xish69e:not(#\#):not(#\#){overscroll-behavior:contain}.x8du1vd:not(#\#):not(#\#){overscroll-behavior:none}.xt970qd:not(#\#):not(#\#){padding-block:0}.x1vn5h1t:not(#\#):not(#\#){padding-block:calc((var(--size-element-lg) - var(--spacing-5) - 2 * var(--border-width)) / 2)}.x1ioay2v:not(#\#):not(#\#){padding-block:calc((var(--size-element-md) - var(--spacing-5) - 2 * var(--border-width)) / 2)}.x1ecmfrv:not(#\#):not(#\#){padding-block:calc((var(--size-element-sm) - var(--spacing-5) - 2 * var(--border-width)) / 2)}.x1x7cmac:not(#\#):not(#\#){padding-block:calc(var(--spacing-1) - 1px)}.xwo4yc8:not(#\#):not(#\#){padding-block:calc(var(--tree-list-row-gap,0px) / 2)}.x13f7esw:not(#\#):not(#\#){padding-block:var(--spacing-0-5)}.x1hp7d8q:not(#\#):not(#\#){padding-block:var(--spacing-0)}.x1vofgu7:not(#\#):not(#\#){padding-block:var(--spacing-1-5)}.xu0wf1k:not(#\#):not(#\#){padding-block:var(--spacing-1)}.xce4md1:not(#\#):not(#\#){padding-block:var(--spacing-2)}.x8o8v82:not(#\#):not(#\#){padding-block:var(--spacing-3)}.x1na6nto:not(#\#):not(#\#){padding-block:var(--spacing-4)}.xq6koh6:not(#\#):not(#\#){padding-block:var(--spacing-6)}.xmfvnks:not(#\#):not(#\#){padding-block:var(--spacing-8)}.x1giekp1:not(#\#):not(#\#){padding-block:var(--x-paddingBlock)}.x1uameg1:not(#\#):not(#\#){padding-block:118px}.xnjsko4:not(#\#):not(#\#){padding-inline:0}.xx2oswg:not(#\#):not(#\#){padding-inline:calc(var(--spacing-1) - 1px)}.x2hg6jq:not(#\#):not(#\#){padding-inline:calc(var(--spacing-1) + var(--border-width))}.x1kpkw9v:not(#\#):not(#\#){padding-inline:var(--_tab-strip-bleed)}.x1w6f3ag:not(#\#):not(#\#){padding-inline:var(--_textarea-inline-padding)}.xkjnx3w:not(#\#):not(#\#){padding-inline:var(--spacing-0-5)}.x17a0aqu:not(#\#):not(#\#){padding-inline:var(--spacing-0)}.x4ezzuc:not(#\#):not(#\#){padding-inline:var(--spacing-1-5)}.x7a5moj:not(#\#):not(#\#){padding-inline:var(--spacing-1)}.xixulwi:not(#\#):not(#\#){padding-inline:var(--spacing-10)}.xf314gf:not(#\#):not(#\#){padding-inline:var(--spacing-2)}.xrrkdod:not(#\#):not(#\#){padding-inline:var(--spacing-3)}.x1pzlopt:not(#\#):not(#\#){padding-inline:var(--spacing-4)}.xzz68wx:not(#\#):not(#\#){padding-inline:var(--spacing-5)}.xm7rs69:not(#\#):not(#\#){padding-inline:var(--spacing-6)}.x6xnjw4:not(#\#):not(#\#){padding-inline:var(--spacing-8)}.x30g6up:not(#\#):not(#\#){padding-inline:var(--x-paddingInline)}.x1ku5rj1:not(#\#):not(#\#){place-items:center}.x1xif8ns:not(#\#):not(#\#){scroll-padding-inline:calc(var(--_tab-strip-bleed) + var(--spacing-8))}.xdf8p4l:not(#\#):not(#\#){scroll-padding-inline:var(--spacing-0-5)}.x9lgdif:not(#\#):not(#\#){scroll-padding-inline:var(--spacing-0)}.x1w8vatw:not(#\#):not(#\#){scroll-padding-inline:var(--spacing-1-5)}.x1u2972t:not(#\#):not(#\#){scroll-padding-inline:var(--spacing-1)}.xw959t8:not(#\#):not(#\#){scroll-padding-inline:var(--spacing-10)}.x1mfb6cv:not(#\#):not(#\#){scroll-padding-inline:var(--spacing-2)}.xpnzzb2:not(#\#):not(#\#){scroll-padding-inline:var(--spacing-3)}.x3m3szd:not(#\#):not(#\#){scroll-padding-inline:var(--spacing-4)}.x1vx7sv0:not(#\#):not(#\#){scroll-padding-inline:var(--spacing-5)}.x1mvw9yj:not(#\#):not(#\#){scroll-padding-inline:var(--spacing-6)}.x1xn2tv3:not(#\#):not(#\#){scroll-padding-inline:var(--spacing-8)}.xhfbhpw:not(#\#):not(#\#){scroll-snap-type:x mandatory}.x168l2et:not(#\#):not(#\#){scroll-snap-type:y mandatory}.xmqliwb:not(#\#):not(#\#){text-decoration:line-through}.x1hl2dhg:not(#\#):not(#\#){text-decoration:none}.x1bvjpef:not(#\#):not(#\#){text-decoration:underline}.xrg7dcy:not(#\#):not(#\#){transition:box-shadow var(--duration-fast) var(--ease-standard),border-color var(--duration-fast) var(--ease-standard)}.xb0j27v:not(#\#):not(#\#){transition:grid-template-rows var(--duration-medium) var(--ease-standard)}.xq2gx43:not(#\#):not(#\#){transition:none}.x1ey1afo:not(#\#):not(#\#){transition:opacity var(--duration-fast)}.x1ob6yzd:not(#\#):not(#\#){transition:transform var(--duration-fast) var(--ease-standard)}.x6q1khz:focus-within:not(#\#):not(#\#){border-color:var(--color-accent)}.xk2sxw7:focus-within:not(#\#):not(#\#){border-color:var(--color-error)}.xyq33ac:focus-within:not(#\#):not(#\#){border-color:var(--color-success)}.xa1yw2k:focus-within:not(#\#):not(#\#){border-color:var(--color-warning)}.xafswnp.xafswnp:where(.x1iwu4tg:has(:focus-visible) *):not(#\#):not(#\#){outline:var(--focus-outline-width) var(--focus-outline-style) var(--focus-outline-color)}.x1dordxg:focus-within:not(#\#):not(#\#){overflow:visible}.x16s19ga:has(:focus-visible):not(#\#):not(#\#){outline:var(--focus-outline-width) var(--focus-outline-style) var(--focus-outline-color)}.x64lkcz:focus:not(#\#):not(#\#){border-color:var(--color-error)}.x1lglk5v:focus:not(#\#):not(#\#){border-color:var(--color-success)}.x12sck4v:focus:not(#\#):not(#\#){border-color:var(--color-warning)}.x1uvtmcs:focus:not(#\#):not(#\#){outline:none}.xomzh7y:focus:not(#\#):not(#\#){overflow:visible}.xh2mrf5:focus:not(#\#):not(#\#){padding-block:var(--spacing-2)}.x1cf3d6k:focus:not(#\#):not(#\#){padding-inline:var(--spacing-4)}@media (forced-colors:active){.x1w1tqly.x1w1tqly:not(#\#):not(#\#){border-color:canvastext}.xmnqt3w.xmnqt3w:not(#\#):not(#\#){border-color:graytext}.xx61lck.xx61lck:not(#\#):not(#\#){border-style:solid}.x13rsnn2.x13rsnn2:not(#\#):not(#\#){border-width:1px}}@media (width<=480px){.x1a1jff.x1a1jff:not(#\#):not(#\#){gap:var(--spacing-4)}}@media (prefers-reduced-motion:reduce){.x9kvfbb.x9kvfbb:not(#\#):not(#\#){transition:none}}@media (hover:hover){.x1ozl1p1.x1ozl1p1.x1ozl1p1:where(.x1odsvnm:hover *):not(#\#):not(#\#){border-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.x1ozl1p1.x1ozl1p1.x1ozl1p1:where(.x1odsvnm:hover *):not(#\#):not(#\#){border-color:color-mix(in srgb,var(--color-accent),var(--color-tint-hover) 15%)}}.xilc7fp.xilc7fp.xilc7fp:where(.x1odsvnm:hover *):not(#\#):not(#\#){border-color:var(--color-border-emphasized)}@supports (color:color-mix(in lab, red, red)){.xilc7fp.xilc7fp.xilc7fp:where(.x1odsvnm:hover *):not(#\#):not(#\#){border-color:color-mix(in srgb,var(--color-border-emphasized),var(--color-tint-hover) 20%)}}.x61roa7.x61roa7.x61roa7:where(.x1odsvnm:hover *):not(#\#):not(#\#){border-color:var(--color-border)}.x1xwh4np.x1xwh4np.x1xwh4np:hover:where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#){border-color:var(--color-border-emphasized)}.x13nosk6.x13nosk6.x13nosk6:hover:where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#){text-decoration:underline}}.x1lugfcp:not(#\#):not(#\#):not(#\#){-webkit-appearance:none}.x67t5t6:not(#\#):not(#\#):not(#\#){-webkit-backdrop-filter:blur(12px)}.x1ua5tub:not(#\#):not(#\#):not(#\#){-webkit-box-orient:vertical}.x1yhjpo9:not(#\#):not(#\#):not(#\#){-webkit-line-clamp:var(--x-WebkitLineClamp)}.xiy8rlo:not(#\#):not(#\#):not(#\#){-webkit-mask-image:linear-gradient(#0000,#000 24px)}.x1bv1mxo:not(#\#):not(#\#):not(#\#){-webkit-mask-image:linear-gradient(#0000,#000 36px)}.xo9xo30:not(#\#):not(#\#):not(#\#){-webkit-mask-image:linear-gradient(#0000,#000 48px)}.xt2iwb0:not(#\#):not(#\#):not(#\#){-webkit-mask-image:linear-gradient(#0000,#0000)}.x5lxg6s:not(#\#):not(#\#):not(#\#){-webkit-overflow-scrolling:touch}.x1i10hfl:not(#\#):not(#\#):not(#\#){-webkit-tap-highlight-color:transparent}.xg7jpbn:not(#\#):not(#\#):not(#\#){-webkit-text-fill-color:transparent}.xpdipgo:not(#\#):not(#\#):not(#\#){-webkit-touch-callout:none}.x8gbvx8:not(#\#):not(#\#):not(#\#){align-content:flex-start}.x1pha0wt:not(#\#):not(#\#):not(#\#){align-items:baseline}.x6s0dn4:not(#\#):not(#\#):not(#\#){align-items:center}.xpqajaz:not(#\#):not(#\#):not(#\#){align-items:end}.xuk3077:not(#\#):not(#\#):not(#\#){align-items:flex-end}.x1cy8zhl:not(#\#):not(#\#):not(#\#){align-items:flex-start}.x7a106z:not(#\#):not(#\#):not(#\#){align-items:start}.x1qjc9v5:not(#\#):not(#\#):not(#\#){align-items:stretch}.xoi2r2e:not(#\#):not(#\#):not(#\#){align-self:baseline}.xamitd3:not(#\#):not(#\#):not(#\#){align-self:center}.xpvyfi4:not(#\#):not(#\#):not(#\#){align-self:flex-end}.xqcrz7y:not(#\#):not(#\#):not(#\#){align-self:flex-start}.x1y8v6su:not(#\#):not(#\#):not(#\#){align-self:start}.xkh2ocl:not(#\#):not(#\#):not(#\#){align-self:stretch}.x7dpabl:not(#\#):not(#\#):not(#\#){anchor-name:--outline-active}.x17yabm6:not(#\#):not(#\#):not(#\#){animation-delay:var(--duration-medium-min)}.xvo38ju:not(#\#):not(#\#):not(#\#){animation-delay:var(--x-animationDelay)}.xpz12be:not(#\#):not(#\#):not(#\#){animation-direction:alternate}.xmg6eyc:not(#\#):not(#\#):not(#\#){animation-duration:1.5s}.xjlvqhv:not(#\#):not(#\#):not(#\#){animation-duration:1ms}.x1c74tu6:not(#\#):not(#\#):not(#\#){animation-duration:2s}.xwms9i0:not(#\#):not(#\#):not(#\#){animation-duration:auto}.x9uej1z:not(#\#):not(#\#):not(#\#){animation-duration:var(--duration-fast-max)}.xb2rp9n:not(#\#):not(#\#):not(#\#){animation-duration:var(--duration-fast)}.xqgcaz:not(#\#):not(#\#):not(#\#){animation-duration:var(--duration-medium-max)}.x12wqnr7:not(#\#):not(#\#):not(#\#){animation-duration:var(--duration-medium)}.x14qxm4i:not(#\#):not(#\#):not(#\#){animation-duration:var(--duration-slow-min)}.xskzprw:not(#\#):not(#\#):not(#\#){animation-fill-mode:backwards}.x1u6ievf:not(#\#):not(#\#):not(#\#){animation-fill-mode:both}.x10e4vud:not(#\#):not(#\#):not(#\#){animation-fill-mode:forwards}.xa4qsjk:not(#\#):not(#\#):not(#\#){animation-iteration-count:infinite}.x1ewfqum:not(#\#):not(#\#):not(#\#){animation-name:x11lauxq-B}.xcx56e2:not(#\#):not(#\#):not(#\#){animation-name:x13kz0yu-B}.x1ffowhz:not(#\#):not(#\#):not(#\#){animation-name:x188b6p3-B}.xqcmdr3:not(#\#):not(#\#):not(#\#){animation-name:x18re5ia-B}.x3psbcj:not(#\#):not(#\#):not(#\#){animation-name:x1ahk7ht-B}.x1dvww92:not(#\#):not(#\#):not(#\#){animation-name:x1b6yrix-B}.x97zbip:not(#\#):not(#\#):not(#\#){animation-name:x1k48ry3-B}.x1gbn2au:not(#\#):not(#\#):not(#\#){animation-name:x1xhkexc-B}.xeuoslp:not(#\#):not(#\#):not(#\#){animation-name:xgnty7z-B}.x1srr2gu:not(#\#):not(#\#):not(#\#){animation-name:xiylxmw-B}.x1ka1v4i:not(#\#):not(#\#):not(#\#){animation-name:xqng64z-B}.xozk8ic:not(#\#):not(#\#):not(#\#){animation-name:xr3m334-B}.x1mta51n:not(#\#):not(#\#):not(#\#){animation-name:xtut5q7-B}.xck01x9:not(#\#):not(#\#):not(#\#){animation-name:xu7jd1z-B}.xl1vlw0:not(#\#):not(#\#):not(#\#){animation-name:xv1hr86-B}.x1i331go:not(#\#):not(#\#):not(#\#){animation-name:xwmkjkf-B}.x190lv1:not(#\#):not(#\#):not(#\#){animation-timeline:view(y)}.x4hg4is:not(#\#):not(#\#):not(#\#){animation-timing-function:ease-in-out}.x1esw782:not(#\#):not(#\#):not(#\#){animation-timing-function:linear}.x193epu2:not(#\#):not(#\#):not(#\#){animation-timing-function:steps(10,end)}.x128ha8g:not(#\#):not(#\#):not(#\#){animation-timing-function:var(--ease-standard)}.xjyslct:not(#\#):not(#\#):not(#\#){appearance:none}.x1plog1:not(#\#):not(#\#):not(#\#){aspect-ratio:1}.xioom0i:not(#\#):not(#\#):not(#\#){aspect-ratio:var(--button-icon-only-aspect)}.x10y9f9r:not(#\#):not(#\#):not(#\#){aspect-ratio:var(--x-aspectRatio)}.xvn2z4z:not(#\#):not(#\#):not(#\#){-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.xlp1x4z:not(#\#):not(#\#):not(#\#){backface-visibility:hidden}.xx83zyx:not(#\#):not(#\#):not(#\#){background-clip:padding-box}.x1rkw3yq:not(#\#):not(#\#):not(#\#){background-color:#fff9}.xtwfq29:not(#\#):not(#\#):not(#\#){background-color:currentColor}.xgcd1z6:not(#\#):not(#\#):not(#\#){background-color:inherit}.xcpsgoo:not(#\#):not(#\#):not(#\#){background-color:#00000080}.xjbqb8w:not(#\#):not(#\#):not(#\#){background-color:#0000}.xgcxg3y:not(#\#):not(#\#):not(#\#){background-color:var(--color-accent-muted)}.x1ewilqj:not(#\#):not(#\#):not(#\#){background-color:var(--color-accent)}.x1o0wnni:not(#\#):not(#\#):not(#\#){background-color:var(--color-background-blue)}.x1eiddq6:not(#\#):not(#\#):not(#\#){background-color:var(--color-background-body)}.x1de1mus:not(#\#):not(#\#):not(#\#){background-color:var(--color-background-card)}.x1rgj867:not(#\#):not(#\#):not(#\#){background-color:var(--color-background-cyan)}.x1l5t2a3:not(#\#):not(#\#):not(#\#){background-color:var(--color-background-error-inverted)}.xspzpui:not(#\#):not(#\#):not(#\#){background-color:var(--color-background-gray)}.x1sqjeoo:not(#\#):not(#\#):not(#\#){background-color:var(--color-background-green)}.xenstv7:not(#\#):not(#\#):not(#\#){background-color:var(--color-background-inverted)}.xwmxj5m:not(#\#):not(#\#):not(#\#){background-color:var(--color-background-muted)}.x1e9xt6e:not(#\#):not(#\#):not(#\#){background-color:var(--color-background-orange)}.xnpoty2:not(#\#):not(#\#):not(#\#){background-color:var(--color-background-pink)}.x1prclbq:not(#\#):not(#\#):not(#\#){background-color:var(--color-background-popover)}.x16i6n6f:not(#\#):not(#\#):not(#\#){background-color:var(--color-background-purple)}.x1cibrc5:not(#\#):not(#\#):not(#\#){background-color:var(--color-background-red)}.x10xzikg:not(#\#):not(#\#):not(#\#){background-color:var(--color-background-surface)}.x1jtji5o:not(#\#):not(#\#):not(#\#){background-color:var(--color-background-teal)}.x1bo7t0x:not(#\#):not(#\#):not(#\#){background-color:var(--color-background-yellow)}.x7njt3n:not(#\#):not(#\#):not(#\#){background-color:var(--color-border-emphasized)}.x1m4xfpy:not(#\#):not(#\#):not(#\#){background-color:var(--color-border)}.x1pritpl:not(#\#):not(#\#):not(#\#){background-color:var(--color-error-muted)}.x1pjz0fi:not(#\#):not(#\#):not(#\#){background-color:var(--color-error)}.xowkcby:not(#\#):not(#\#):not(#\#){background-color:var(--color-icon-primary)}.x1q5y3ey:not(#\#):not(#\#):not(#\#){background-color:var(--color-icon-secondary)}.x17x4s8c:not(#\#):not(#\#):not(#\#){background-color:var(--color-neutral)}.x1azo05:not(#\#):not(#\#):not(#\#){background-color:var(--color-on-accent)}.xfba6wv:not(#\#):not(#\#):not(#\#){background-color:var(--color-on-error)}.x9mohwv:not(#\#):not(#\#):not(#\#){background-color:var(--color-on-success)}.xmgwp2l:not(#\#):not(#\#):not(#\#){background-color:var(--color-on-warning)}.x1lmrjuc:not(#\#):not(#\#):not(#\#){background-color:var(--color-overlay-hover)}.xi89dp7:not(#\#):not(#\#):not(#\#){background-color:var(--color-overlay-pressed)}.x1u4601x:not(#\#):not(#\#):not(#\#){background-color:var(--color-overlay)}.xprdx6m:not(#\#):not(#\#):not(#\#){background-color:var(--color-skeleton)}.xu13z74:not(#\#):not(#\#):not(#\#){background-color:var(--color-success-muted)}.xdsz4j9:not(#\#):not(#\#):not(#\#){background-color:var(--color-success)}.xzyc27v:not(#\#):not(#\#):not(#\#){background-color:var(--color-syntax-background)}.x16fr6go:not(#\#):not(#\#):not(#\#){background-color:var(--color-text-disabled)}.x19aspcf:not(#\#):not(#\#):not(#\#){background-color:var(--color-text-primary)}.xdomwnj:not(#\#):not(#\#):not(#\#){background-color:var(--color-text-secondary)}.xdsb6cv:not(#\#):not(#\#):not(#\#){background-color:var(--color-track)}.x24i8r5:not(#\#):not(#\#):not(#\#){background-color:var(--color-warning-muted)}.x1q8g9m5:not(#\#):not(#\#):not(#\#){background-color:var(--color-warning)}.x1fd97le:not(#\#):not(#\#):not(#\#){background-color:var(--table-sticky-background,var(--color-background-card))}.xl8spv7:not(#\#):not(#\#):not(#\#){background-color:var(--x-backgroundColor)}.xafqdz2:not(#\#):not(#\#):not(#\#){background-image:linear-gradient(to bottom,var(--color-background-surface) 60%,transparent)}.x1vrk509:not(#\#):not(#\#):not(#\#){background-image:linear-gradient(var(--color-background-muted),var(--color-background-muted))}.x14bno8m:not(#\#):not(#\#):not(#\#){background-image:linear-gradient(var(--color-neutral),var(--color-neutral))}.x18o3ruo:not(#\#):not(#\#):not(#\#){background-image:none}.x1mwwwfo:not(#\#):not(#\#):not(#\#){border-collapse:collapse}.x16uus16:not(#\#):not(#\#):not(#\#){border-end-end-radius:0}.x1eprgri:not(#\#):not(#\#):not(#\#){border-end-end-radius:var(--_banner-radius,var(--radius-container))}.x6k0y1c:not(#\#):not(#\#):not(#\#){border-end-end-radius:var(--_chat-composer-radius)}.xoao14b:not(#\#):not(#\#):not(#\#){border-end-end-radius:var(--_field-radius)}.x14i3lts:not(#\#):not(#\#):not(#\#){border-end-end-radius:var(--radius-element)}.x1dgc8on:not(#\#):not(#\#):not(#\#){border-end-end-radius:var(--radius-full)}.x1whkvtz:not(#\#):not(#\#):not(#\#){border-end-end-radius:var(--radius-inner)}.xbiv7yw:not(#\#):not(#\#):not(#\#){border-end-start-radius:0}.x1k5g1gk:not(#\#):not(#\#):not(#\#){border-end-start-radius:var(--_banner-radius,var(--radius-container))}.xkvxy4d:not(#\#):not(#\#):not(#\#){border-end-start-radius:var(--_chat-composer-radius)}.xquck67:not(#\#):not(#\#):not(#\#){border-end-start-radius:var(--radius-element)}.x1wc3881:not(#\#):not(#\#):not(#\#){border-end-start-radius:var(--radius-full)}.xrfs2vl:not(#\#):not(#\#):not(#\#){border-end-start-radius:var(--radius-inner)}.xl0t3rv:not(#\#):not(#\#):not(#\#){border-inline-end-color:var(--color-border-emphasized)}.x1gejf6u:not(#\#):not(#\#):not(#\#){border-inline-end-color:var(--color-border)}.x18b5jzi:not(#\#):not(#\#):not(#\#){border-inline-end-style:solid}.x1lun4ml:not(#\#):not(#\#):not(#\#){border-inline-end-width:1px}.xw8tdv1:not(#\#):not(#\#):not(#\#){border-inline-end-width:var(--border-width)}.x14ydlgx:not(#\#):not(#\#):not(#\#){border-inline-start-color:var(--color-border-emphasized)}.x1j92z86:not(#\#):not(#\#):not(#\#){border-inline-start-color:var(--color-border)}.xrvmtm5:not(#\#):not(#\#):not(#\#){border-inline-start-color:var(--color-on-accent)}.x1t7ytsu:not(#\#):not(#\#):not(#\#){border-inline-start-style:solid}.xpilrb4:not(#\#):not(#\#):not(#\#){border-inline-start-width:1px}.xgbv0en:not(#\#):not(#\#):not(#\#){border-inline-start-width:var(--border-width)}.xtpqe59:not(#\#):not(#\#):not(#\#){border-inline-start-width:var(--spacing-0-5)}.x1gukg7c:not(#\#):not(#\#):not(#\#){border-spacing:0}.x1ga7v0g:not(#\#):not(#\#):not(#\#){border-start-end-radius:0}.x13nour3:not(#\#):not(#\#):not(#\#){border-start-end-radius:var(--_banner-radius,var(--radius-container))}.xzc3kxz:not(#\#):not(#\#):not(#\#){border-start-end-radius:var(--_chat-composer-radius)}.x1g2gkjz:not(#\#):not(#\#):not(#\#){border-start-end-radius:var(--_field-radius)}.xg0tfu:not(#\#):not(#\#):not(#\#){border-start-end-radius:var(--radius-chat)}.x7hs6f1:not(#\#):not(#\#):not(#\#){border-start-end-radius:var(--radius-container)}.x8agd5o:not(#\#):not(#\#):not(#\#){border-start-end-radius:var(--radius-full)}.x126per9:not(#\#):not(#\#):not(#\#){border-start-end-radius:var(--radius-inner)}.x15mokao:not(#\#):not(#\#):not(#\#){border-start-start-radius:0}.xwxb7qi:not(#\#):not(#\#):not(#\#){border-start-start-radius:var(--_banner-radius,var(--radius-container))}.xy7p8pm:not(#\#):not(#\#):not(#\#){border-start-start-radius:var(--_chat-composer-radius)}.x1n70msy:not(#\#):not(#\#):not(#\#){border-start-start-radius:var(--radius-chat)}.x81l70g:not(#\#):not(#\#):not(#\#){border-start-start-radius:var(--radius-container)}.x19415el:not(#\#):not(#\#):not(#\#){border-start-start-radius:var(--radius-full)}.x3qb8m:not(#\#):not(#\#):not(#\#){border-start-start-radius:var(--radius-inner)}.x183tx6i:not(#\#):not(#\#):not(#\#){border-start-start-radius:var(--radius-page)}.x1lp15jv:not(#\#):not(#\#):not(#\#){box-shadow:inset 0 0 0 1px var(--color-border-emphasized)}.x1er153n:not(#\#):not(#\#):not(#\#){box-shadow:inset 0 0 0 1px var(--color-border)}.x1iobdd1:not(#\#):not(#\#):not(#\#){box-shadow:inset 0 0 0 1px var(--color-text-primary)}.x1gnnqk1:not(#\#):not(#\#):not(#\#){box-shadow:none}.x1p8z4y0:not(#\#):not(#\#):not(#\#){box-shadow:var(--_card-ring,0 0 transparent),var(--_card-elevation,0 0 transparent)}.x1kcpxr7:not(#\#):not(#\#):not(#\#){box-shadow:var(--shadow-high)}.x1i5ehqx:not(#\#):not(#\#):not(#\#){box-shadow:var(--shadow-low)}.x14hfi27:not(#\#):not(#\#):not(#\#){box-shadow:var(--shadow-med)}.x9f619:not(#\#):not(#\#):not(#\#){box-sizing:border-box}.x1afcbsf:not(#\#):not(#\#):not(#\#){box-sizing:content-box}.xbuiw85:not(#\#):not(#\#):not(#\#){caret-color:#0000}.xxugrtn:not(#\#):not(#\#):not(#\#){caret-color:var(--color-accent)}.x1hyvwdk:not(#\#):not(#\#):not(#\#){clip-path:inset(50%)}.xzpqnlu:not(#\#):not(#\#):not(#\#){clip:rect(0,0,0,0)}.xntwwlm:not(#\#):not(#\#):not(#\#){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.x108lcm5:not(#\#):not(#\#):not(#\#){--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){.x108lcm5:not(#\#):not(#\#):not(#\#){--lightningcss-light: ;--lightningcss-dark:initial}}.x19aimcq:not(#\#):not(#\#):not(#\#){--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}.xj8ax7g:not(#\#):not(#\#):not(#\#){color:red}.x1heor9g:not(#\#):not(#\#):not(#\#){color:inherit}.x19co3pv:not(#\#):not(#\#):not(#\#){color:#0000}.x1gb3s7i:not(#\#):not(#\#):not(#\#){color:var(--_item-description-color,var(--color-text-secondary))}.x5tbw38:not(#\#):not(#\#):not(#\#){color:var(--_item-label-color,var(--color-text-primary))}.xqwr325:not(#\#):not(#\#):not(#\#){color:var(--color-accent)}.xrkvqaz:not(#\#):not(#\#):not(#\#){color:var(--color-background-surface)}.xjt36v0:not(#\#):not(#\#):not(#\#){color:var(--color-error)}.x1fns2mt:not(#\#):not(#\#):not(#\#){color:var(--color-icon-blue)}.x157w0xa:not(#\#):not(#\#):not(#\#){color:var(--color-icon-cyan)}.xqa6c3m:not(#\#):not(#\#):not(#\#){color:var(--color-icon-disabled)}.x1eyinzz:not(#\#):not(#\#):not(#\#){color:var(--color-icon-gray)}.xmxeech:not(#\#):not(#\#):not(#\#){color:var(--color-icon-green)}.xxu74a4:not(#\#):not(#\#):not(#\#){color:var(--color-icon-orange)}.x1kxxfg5:not(#\#):not(#\#):not(#\#){color:var(--color-icon-pink)}.xtbr613:not(#\#):not(#\#):not(#\#){color:var(--color-icon-primary)}.xzdw94u:not(#\#):not(#\#):not(#\#){color:var(--color-icon-purple)}.xeffzf7:not(#\#):not(#\#):not(#\#){color:var(--color-icon-red)}.xv9yike:not(#\#):not(#\#):not(#\#){color:var(--color-icon-secondary)}.x1f3zxcb:not(#\#):not(#\#):not(#\#){color:var(--color-icon-teal)}.x1g6zdft:not(#\#):not(#\#):not(#\#){color:var(--color-icon-yellow)}.x17wrial:not(#\#):not(#\#):not(#\#){color:var(--color-on-accent)}.x9e3rv5:not(#\#):not(#\#):not(#\#){color:var(--color-on-dark)}.x1m024r3:not(#\#):not(#\#):not(#\#){color:var(--color-on-error)}.xri61p4:not(#\#):not(#\#):not(#\#){color:var(--color-on-success)}.xrebv38:not(#\#):not(#\#):not(#\#){color:var(--color-on-warning)}.xtjic6:not(#\#):not(#\#):not(#\#){color:var(--color-success)}.x1mjzq1q:not(#\#):not(#\#):not(#\#){color:var(--color-syntax-comment)}.xdfisg:not(#\#):not(#\#):not(#\#){color:var(--color-syntax-variable)}.xjse4m1:not(#\#):not(#\#):not(#\#){color:var(--color-text-accent)}.x1vvqiwl:not(#\#):not(#\#):not(#\#){color:var(--color-text-blue)}.x1txnczv:not(#\#):not(#\#):not(#\#){color:var(--color-text-cyan)}.xnbbluu:not(#\#):not(#\#):not(#\#){color:var(--color-text-disabled)}.xru1t7f:not(#\#):not(#\#):not(#\#){color:var(--color-text-gray)}.xltfdvo:not(#\#):not(#\#):not(#\#){color:var(--color-text-green)}.xm47u9q:not(#\#):not(#\#):not(#\#){color:var(--color-text-orange)}.xiuofww:not(#\#):not(#\#):not(#\#){color:var(--color-text-pink)}.x1tgivj0:not(#\#):not(#\#):not(#\#){color:var(--color-text-primary)}.x1m9wyeb:not(#\#):not(#\#):not(#\#){color:var(--color-text-purple)}.x1joocv1:not(#\#):not(#\#):not(#\#){color:var(--color-text-red)}.xv1l7n4:not(#\#):not(#\#):not(#\#){color:var(--color-text-secondary)}.x9x0lbs:not(#\#):not(#\#):not(#\#){color:var(--color-text-teal)}.xdhq94a:not(#\#):not(#\#):not(#\#){color:var(--color-text-yellow)}.xs3pv69:not(#\#):not(#\#):not(#\#){color:var(--color-warning)}.xf5zn4v:not(#\#):not(#\#):not(#\#){column-gap:calc(var(--spacing-3) + var(--border-width) + var(--spacing-4))}.x1kihgfc:not(#\#):not(#\#):not(#\#){column-gap:var(--spacing-0-5)}.x1o57wo1:not(#\#):not(#\#):not(#\#){column-gap:var(--spacing-0)}.x1thn6ci:not(#\#):not(#\#):not(#\#){column-gap:var(--spacing-1-5)}.x1lfs0n9:not(#\#):not(#\#):not(#\#){column-gap:var(--spacing-1)}.x1p37tyl:not(#\#):not(#\#):not(#\#){column-gap:var(--spacing-10)}.xak3so:not(#\#):not(#\#):not(#\#){column-gap:var(--spacing-2)}.xewh9hi:not(#\#):not(#\#):not(#\#){column-gap:var(--spacing-3)}.xty4p9g:not(#\#):not(#\#):not(#\#){column-gap:var(--spacing-4)}.x1eqhezk:not(#\#):not(#\#):not(#\#){column-gap:var(--spacing-5)}.x3qlgwd:not(#\#):not(#\#):not(#\#){column-gap:var(--spacing-6)}.xicv188:not(#\#):not(#\#):not(#\#){column-gap:var(--spacing-8)}.xawy1a7:not(#\#):not(#\#):not(#\#){contain:layout style}.x12h1iku:not(#\#):not(#\#):not(#\#){container-type:inline-size}.xb5mbof:not(#\#):not(#\#):not(#\#){content-visibility:auto}.xfrknyr:not(#\#):not(#\#):not(#\#){counter-increment:astryx-list}.xif0320:not(#\#):not(#\#):not(#\#){counter-reset:astryx-list}.x1khind5:not(#\#):not(#\#):not(#\#){counter-reset:var(--x-counterReset)}.xicojor:not(#\#):not(#\#):not(#\#){cursor:col-resize}.xt0e3qv:not(#\#):not(#\#):not(#\#){cursor:default}.x7eptgl:not(#\#):not(#\#):not(#\#){cursor:ew-resize}.x1jm3nie:not(#\#):not(#\#):not(#\#){cursor:grab}.xi9pz9s:not(#\#):not(#\#):not(#\#){cursor:grabbing}.xmper1u:not(#\#):not(#\#):not(#\#){cursor:inherit}.x1ypdohk:not(#\#):not(#\#):not(#\#){cursor:pointer}.xyozgr7:not(#\#):not(#\#):not(#\#){cursor:row-resize}.x1ed109x:not(#\#):not(#\#):not(#\#){cursor:text}.x1huxd7x:not(#\#):not(#\#):not(#\#){cursor:zoom-in}.x104kibb:not(#\#):not(#\#):not(#\#){display:-webkit-box}.x1lliihq:not(#\#):not(#\#):not(#\#){display:block}.xjp7ctv:not(#\#):not(#\#):not(#\#){display:contents}.x78zum5:not(#\#):not(#\#):not(#\#){display:flex}.xrvj5dj:not(#\#):not(#\#):not(#\#){display:grid}.x1rg5ohu:not(#\#):not(#\#):not(#\#){display:inline-block}.x3nfvp2:not(#\#):not(#\#):not(#\#){display:inline-flex}.xwz0xwf:not(#\#):not(#\#):not(#\#){display:inline-grid}.xt0psk2:not(#\#):not(#\#):not(#\#){display:inline}.x1s85apg:not(#\#):not(#\#):not(#\#){display:none}.x11ke7fs:not(#\#):not(#\#):not(#\#){display:var(--separator-display)}.xbh8q5q:not(#\#):not(#\#):not(#\#){fill:none}.x1r8uery:not(#\#):not(#\#):not(#\#){flex-basis:0}.xrjwirl:not(#\#):not(#\#):not(#\#){flex-basis:196px}.xjpgo6f:not(#\#):not(#\#):not(#\#){flex-basis:200px}.xchdapg:not(#\#):not(#\#):not(#\#){flex-basis:300px}.xgualba:not(#\#):not(#\#):not(#\#){flex-basis:8rem}.xdl72j9:not(#\#):not(#\#):not(#\#){flex-basis:auto}.x3ieub6:not(#\#):not(#\#):not(#\#){flex-direction:column-reverse}.xdt5ytf:not(#\#):not(#\#):not(#\#){flex-direction:column}.x15zctf7:not(#\#):not(#\#):not(#\#){flex-direction:row-reverse}.x1q0g3np:not(#\#):not(#\#):not(#\#){flex-direction:row}.x1c4vz4f:not(#\#):not(#\#):not(#\#){flex-grow:0}.x1iyjqo2:not(#\#):not(#\#):not(#\#){flex-grow:1}.xgyuaek:not(#\#):not(#\#):not(#\#){flex-grow:2}.x2lah0s:not(#\#):not(#\#):not(#\#){flex-shrink:0}.xs83m0k:not(#\#):not(#\#):not(#\#){flex-shrink:1}.x1g3ib7:not(#\#):not(#\#):not(#\#){flex-shrink:10}.xozqiw3:not(#\#):not(#\#):not(#\#){flex-wrap:nowrap}.x8hhl5t:not(#\#):not(#\#):not(#\#){flex-wrap:wrap-reverse}.x1a02dak:not(#\#):not(#\#):not(#\#){flex-wrap:wrap}.xjb2p0i:not(#\#):not(#\#):not(#\#){font-family:inherit}.x9ynric:not(#\#):not(#\#):not(#\#){font-family:var(--font-family-body)}.x9m5x89:not(#\#):not(#\#):not(#\#){font-family:var(--font-family-code)}.x1g81bgm:not(#\#):not(#\#):not(#\#){font-family:var(--font-family-heading)}.xboafo0:not(#\#):not(#\#):not(#\#){font-size:.75rem}.x1603h9y:not(#\#):not(#\#):not(#\#){font-size:1.25rem}.xngnso2:not(#\#):not(#\#):not(#\#){font-size:1.5rem}.x1k6wstc:not(#\#):not(#\#):not(#\#){font-size:10px}.xfifm61:not(#\#):not(#\#):not(#\#){font-size:12px}.xif65rj:not(#\#):not(#\#):not(#\#){font-size:14px}.x1j61zf2:not(#\#):not(#\#):not(#\#){font-size:16px}.x1jchvi3:not(#\#):not(#\#):not(#\#){font-size:1rem}.xwsyq91:not(#\#):not(#\#):not(#\#){font-size:20px}.x1qlqyl8:not(#\#):not(#\#):not(#\#){font-size:inherit}.xhs0kqb:not(#\#):not(#\#):not(#\#){font-size:var(--font-size-2xl)}.x16a80zy:not(#\#):not(#\#):not(#\#){font-size:var(--font-size-2xs)}.x10srzze:not(#\#):not(#\#):not(#\#){font-size:var(--font-size-3xl)}.x10p7juq:not(#\#):not(#\#):not(#\#){font-size:var(--font-size-3xs)}.xqcvi3d:not(#\#):not(#\#):not(#\#){font-size:var(--font-size-4xl)}.xxc45ev:not(#\#):not(#\#):not(#\#){font-size:var(--font-size-4xs)}.x1j29vfg:not(#\#):not(#\#):not(#\#){font-size:var(--font-size-base)}.xc7cgfe:not(#\#):not(#\#):not(#\#){font-size:var(--font-size-lg)}.x1eqnyfr:not(#\#):not(#\#):not(#\#){font-size:var(--font-size-sm)}.x1wqms48:not(#\#):not(#\#):not(#\#){font-size:var(--font-size-xl)}.x51wmvv:not(#\#):not(#\#):not(#\#){font-size:var(--font-size-xs)}.xho7bvi:not(#\#):not(#\#):not(#\#){font-size:var(--spacing-4)}.xjm74w1:not(#\#):not(#\#):not(#\#){font-size:var(--text-body-size)}.xp03k98:not(#\#):not(#\#):not(#\#){font-size:var(--text-code-size)}.xsub3ws:not(#\#):not(#\#):not(#\#){font-size:var(--text-display-1-size)}.x1yego12:not(#\#):not(#\#):not(#\#){font-size:var(--text-display-2-size)}.xlgnzhf:not(#\#):not(#\#):not(#\#){font-size:var(--text-display-3-size)}.xcg7oai:not(#\#):not(#\#):not(#\#){font-size:var(--text-heading-1-size)}.x1xvnhcw:not(#\#):not(#\#):not(#\#){font-size:var(--text-heading-2-size)}.xii13ha:not(#\#):not(#\#):not(#\#){font-size:var(--text-heading-3-size)}.x8tkxat:not(#\#):not(#\#):not(#\#){font-size:var(--text-heading-4-size)}.xsgqta0:not(#\#):not(#\#):not(#\#){font-size:var(--text-heading-5-size)}.xw5ohdf:not(#\#):not(#\#):not(#\#){font-size:var(--text-heading-6-size)}.xcr08ib:not(#\#):not(#\#):not(#\#){font-size:var(--text-label-size)}.x18juvz8:not(#\#):not(#\#):not(#\#){font-size:var(--text-large-size)}.x141an7d:not(#\#):not(#\#):not(#\#){font-size:var(--text-supporting-size)}.xdmh292:not(#\#):not(#\#):not(#\#){font-size:var(--x-fontSize)}.x1j61x8r:not(#\#):not(#\#):not(#\#){font-style:normal}.xss6m8b:not(#\#):not(#\#):not(#\#){font-variant-numeric:tabular-nums}.xk50ysn:not(#\#):not(#\#):not(#\#){font-weight:500}.x1s688f:not(#\#):not(#\#):not(#\#){font-weight:600}.x1pd3egz:not(#\#):not(#\#):not(#\#){font-weight:inherit}.x1lvx875:not(#\#):not(#\#):not(#\#){font-weight:var(--font-weight-bold)}.x1e4wzip:not(#\#):not(#\#):not(#\#){font-weight:var(--font-weight-medium)}.x1sodnla:not(#\#):not(#\#):not(#\#){font-weight:var(--font-weight-normal)}.x2mo6ok:not(#\#):not(#\#):not(#\#){font-weight:var(--font-weight-semibold)}.xxovm9e:not(#\#):not(#\#):not(#\#){font-weight:var(--text-body-weight)}.xx3eeay:not(#\#):not(#\#):not(#\#){font-weight:var(--text-code-weight)}.x1txul5o:not(#\#):not(#\#):not(#\#){font-weight:var(--text-display-1-weight)}.x1y36c3f:not(#\#):not(#\#):not(#\#){font-weight:var(--text-display-2-weight)}.x1on40hk:not(#\#):not(#\#):not(#\#){font-weight:var(--text-display-3-weight)}.x1v68xuy:not(#\#):not(#\#):not(#\#){font-weight:var(--text-heading-1-weight)}.x12yy4cs:not(#\#):not(#\#):not(#\#){font-weight:var(--text-heading-2-weight)}.x1jcxfy8:not(#\#):not(#\#):not(#\#){font-weight:var(--text-heading-3-weight)}.x2hcmsi:not(#\#):not(#\#):not(#\#){font-weight:var(--text-heading-4-weight)}.xno150v:not(#\#):not(#\#):not(#\#){font-weight:var(--text-heading-5-weight)}.x1pw4frv:not(#\#):not(#\#):not(#\#){font-weight:var(--text-heading-6-weight)}.xmhvcl5:not(#\#):not(#\#):not(#\#){font-weight:var(--text-label-weight)}.x149oux8:not(#\#):not(#\#):not(#\#){font-weight:var(--text-large-weight)}.xv8on6e:not(#\#):not(#\#):not(#\#){font-weight:var(--text-supporting-weight)}.x1kzknox:not(#\#):not(#\#):not(#\#){forced-color-adjust:none}.xu6a5m6:not(#\#):not(#\#):not(#\#){grid-auto-columns:1fr}.x1mt1orb:not(#\#):not(#\#):not(#\#){grid-auto-flow:column}.xhij9v2:not(#\#):not(#\#):not(#\#){grid-auto-rows:var(--x-gridAutoRows)}.xcrlgei:not(#\#):not(#\#):not(#\#){grid-column-start:1}.x1agbcgv:not(#\#):not(#\#):not(#\#){grid-row-start:1}.x134kloy:not(#\#):not(#\#):not(#\#){grid-template-columns:1fr auto 1fr}.x52fmzj:not(#\#):not(#\#):not(#\#){grid-template-columns:1fr auto}.x1y6fwsi:not(#\#):not(#\#):not(#\#){grid-template-columns:1fr}.x1g3yg12:not(#\#):not(#\#):not(#\#){grid-template-columns:auto 1fr auto}.x1pmbctz:not(#\#):not(#\#):not(#\#){grid-template-columns:auto 1fr}.x1wthsqz:not(#\#):not(#\#):not(#\#){grid-template-columns:auto repeat(7,1fr)}.x1mzazjb:not(#\#):not(#\#):not(#\#){grid-template-columns:repeat(7,1fr)}.x189bvgu:not(#\#):not(#\#):not(#\#){grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.x1xx4m37:not(#\#):not(#\#):not(#\#){grid-template-columns:var(--_codeblock-gutter-width) 1fr}.xqketvx:not(#\#):not(#\#):not(#\#){grid-template-columns:var(--x-gridTemplateColumns)}.xihq33y:not(#\#):not(#\#):not(#\#){grid-template-rows:0fr}.x1tu4anv:not(#\#):not(#\#):not(#\#){grid-template-rows:1fr}.xy8nx85:not(#\#):not(#\#):not(#\#){grid-template-rows:repeat(6,1fr)}.xtijo5x:not(#\#):not(#\#):not(#\#){inset-inline-end:0}.xz03a8w:not(#\#):not(#\#):not(#\#){inset-inline-end:2px}.x1oinnt5:not(#\#):not(#\#):not(#\#){inset-inline-end:calc((var(--size-element-md) - 20px) / 2 - 1px)}.x8qlsd8:not(#\#):not(#\#):not(#\#){inset-inline-end:calc((var(--size-element-sm) - 20px) / 2 - 1px)}.x13oyzgk:not(#\#):not(#\#):not(#\#){inset-inline-end:var(--_textarea-inline-padding)}.xy3asu9:not(#\#):not(#\#):not(#\#){inset-inline-end:var(--spacing-1)}.x72tfeb:not(#\#):not(#\#):not(#\#){inset-inline-end:var(--spacing-2)}.x1mcfs9z:not(#\#):not(#\#):not(#\#){inset-inline-end:var(--spacing-3)}.xqxgn94:not(#\#):not(#\#):not(#\#){inset-inline-end:var(--x-insetInlineEnd)}.x1o0tod:not(#\#):not(#\#):not(#\#){inset-inline-start:0}.x9p6ekw:not(#\#):not(#\#):not(#\#){inset-inline-start:14px}.xaoy8p5:not(#\#):not(#\#):not(#\#){inset-inline-start:2px}.xbudbmw:not(#\#):not(#\#):not(#\#){inset-inline-start:50%}.x1kiyvbf:not(#\#):not(#\#):not(#\#){inset-inline-start:var(--_textarea-inline-padding)}.x1ybfrjj:not(#\#):not(#\#):not(#\#){inset-inline-start:var(--spacing-3)}.x1lxsm33:not(#\#):not(#\#):not(#\#){inset-inline-start:var(--x-insetInlineStart)}.xc8icb0:not(#\#):not(#\#):not(#\#){isolation:isolate}.xl56j7k:not(#\#):not(#\#):not(#\#){justify-content:center}.x13a6bvl:not(#\#):not(#\#):not(#\#){justify-content:flex-end}.x1nhvcw1:not(#\#):not(#\#):not(#\#){justify-content:flex-start}.x1l1ennw:not(#\#):not(#\#):not(#\#){justify-content:space-around}.x1qughib:not(#\#):not(#\#):not(#\#){justify-content:space-between}.xaw8158:not(#\#):not(#\#):not(#\#){justify-content:space-evenly}.x1o2pa38:not(#\#):not(#\#):not(#\#){justify-items:center}.x4xo5sw:not(#\#):not(#\#):not(#\#){justify-items:end}.x619ttb:not(#\#):not(#\#):not(#\#){justify-items:start}.xl4xnwh:not(#\#):not(#\#):not(#\#){justify-items:stretch}.x7v7x1q:not(#\#):not(#\#):not(#\#){justify-self:center}.x1lqcxt8:not(#\#):not(#\#):not(#\#){justify-self:start}.x14ju556:not(#\#):not(#\#):not(#\#){line-height:0}.xo5v014:not(#\#):not(#\#):not(#\#){line-height:1}.x19v9tvf:not(#\#):not(#\#):not(#\#){line-height:22px}.x15bjb6t:not(#\#):not(#\#):not(#\#){line-height:inherit}.x1ojctns:not(#\#):not(#\#):not(#\#){line-height:var(--spacing-4)}.x7acx1w:not(#\#):not(#\#):not(#\#){line-height:var(--spacing-5)}.xw6l6zx:not(#\#):not(#\#):not(#\#){line-height:var(--text-body-leading)}.x17iicif:not(#\#):not(#\#):not(#\#){line-height:var(--text-code-leading)}.x112ttwr:not(#\#):not(#\#):not(#\#){line-height:var(--text-display-1-leading)}.xh0iwvy:not(#\#):not(#\#):not(#\#){line-height:var(--text-display-2-leading)}.x1ujwuaq:not(#\#):not(#\#):not(#\#){line-height:var(--text-display-3-leading)}.xfmsba7:not(#\#):not(#\#):not(#\#){line-height:var(--text-heading-1-leading)}.x1cpk1wn:not(#\#):not(#\#):not(#\#){line-height:var(--text-heading-2-leading)}.xwjzt0u:not(#\#):not(#\#):not(#\#){line-height:var(--text-heading-3-leading)}.xqerer:not(#\#):not(#\#):not(#\#){line-height:var(--text-heading-4-leading)}.xo3gurs:not(#\#):not(#\#):not(#\#){line-height:var(--text-heading-5-leading)}.xeixjfn:not(#\#):not(#\#):not(#\#){line-height:var(--text-heading-6-leading)}.x1kq96og:not(#\#):not(#\#):not(#\#){line-height:var(--text-label-leading)}.xf74fhv:not(#\#):not(#\#):not(#\#){line-height:var(--text-large-leading)}.x1ltkj2j:not(#\#):not(#\#):not(#\#){line-height:var(--text-supporting-leading)}.x3ct3a4:not(#\#):not(#\#):not(#\#){list-style-type:none}.x14z9mp:not(#\#):not(#\#):not(#\#){margin-inline-end:0}.x1fcf3bl:not(#\#):not(#\#):not(#\#){margin-inline-end:calc(-1 * var(--container-padding-inline-end,0px))}.x1kpg4um:not(#\#):not(#\#):not(#\#){margin-inline-end:calc(-1 * var(--layout-padding-inner-x,var(--spacing-4)))}.xkd40ry:not(#\#):not(#\#):not(#\#){margin-inline-end:calc(-1 * var(--spacing-1))}.x3kzqx6:not(#\#):not(#\#):not(#\#){margin-inline-end:calc(-1 * var(--spacing-2))}.xmequkd:not(#\#):not(#\#):not(#\#){margin-inline-end:calc(var(--spacing-1) * -1)}.xnur1sd:not(#\#):not(#\#):not(#\#){margin-inline-end:var(--spacing-1)}.x1c9tiao:not(#\#):not(#\#):not(#\#){margin-inline-end:var(--x-marginInlineEnd)}.x1qfufaz:not(#\#):not(#\#):not(#\#){margin-inline-start:-8px}.x1lziwak:not(#\#):not(#\#):not(#\#){margin-inline-start:0}.xvc5jky:not(#\#):not(#\#):not(#\#){margin-inline-start:auto}.xd10s4z:not(#\#):not(#\#):not(#\#){margin-inline-start:calc(-1 * var(--border-width))}.xojxgvx:not(#\#):not(#\#):not(#\#){margin-inline-start:calc(-1 * var(--container-padding-inline-start,0px))}.x1wim8z0:not(#\#):not(#\#):not(#\#){margin-inline-start:calc(-1 * var(--layout-padding-inner-x,var(--spacing-4)))}.x1s1akpx:not(#\#):not(#\#):not(#\#){margin-inline-start:calc(-1 * var(--spacing-2))}.x1xrm450:not(#\#):not(#\#):not(#\#){margin-inline-start:calc(var(--spacing-2) - var(--spacing-1) + 1px)}.x12vn87o:not(#\#):not(#\#):not(#\#){margin-inline-start:var(--_tree-indent,0px)}.xladpz9:not(#\#):not(#\#):not(#\#){margin-inline-start:var(--spacing-0-5)}.x11g1kdw:not(#\#):not(#\#):not(#\#){margin-inline-start:var(--spacing-1)}.x1l10yog:not(#\#):not(#\#):not(#\#){margin-inline-start:var(--spacing-6)}.x4lel18:not(#\#):not(#\#):not(#\#){margin-inline-start:var(--x-marginInlineStart)}.xkm2don:not(#\#):not(#\#):not(#\#){-webkit-mask-image:linear-gradient(#0000,#000 24px);mask-image:linear-gradient(#0000,#000 24px)}.xw26lqc:not(#\#):not(#\#):not(#\#){-webkit-mask-image:linear-gradient(#0000,#000 36px);mask-image:linear-gradient(#0000,#000 36px)}.xr5yg4x:not(#\#):not(#\#):not(#\#){-webkit-mask-image:linear-gradient(#0000,#000 48px);mask-image:linear-gradient(#0000,#000 48px)}.xtdd0ob:not(#\#):not(#\#):not(#\#){-webkit-mask-image:linear-gradient(to left,transparent 0%,#0000004d 2px,black var(--spacing-1));-webkit-mask-image:linear-gradient(to left,transparent 0%,#0000004d 2px,black var(--spacing-1));-webkit-mask-image:linear-gradient(to left,transparent 0%,#0000004d 2px,black var(--spacing-1));mask-image:linear-gradient(to left,transparent 0%,#0000004d 2px,black var(--spacing-1))}.xoj6v2h:not(#\#):not(#\#):not(#\#){-webkit-mask-image:linear-gradient(to left,transparent var(--_tab-strip-bleed),black calc(var(--_tab-strip-bleed) + var(--spacing-8)));-webkit-mask-image:linear-gradient(to left,transparent var(--_tab-strip-bleed),black calc(var(--_tab-strip-bleed) + var(--spacing-8)));-webkit-mask-image:linear-gradient(to left,transparent var(--_tab-strip-bleed),black calc(var(--_tab-strip-bleed) + var(--spacing-8)));mask-image:linear-gradient(to left,transparent var(--_tab-strip-bleed),black calc(var(--_tab-strip-bleed) + var(--spacing-8)))}.x1b5cd1y:not(#\#):not(#\#):not(#\#){-webkit-mask-image:linear-gradient(to right,transparent 0%,#0000004d 2px,black var(--spacing-1),black calc(100% - var(--spacing-1)),#0000004d calc(100% - 2px),transparent 100%);-webkit-mask-image:linear-gradient(to right,transparent 0%,#0000004d 2px,black var(--spacing-1),black calc(100% - var(--spacing-1)),#0000004d calc(100% - 2px),transparent 100%);-webkit-mask-image:linear-gradient(to right,transparent 0%,#0000004d 2px,black var(--spacing-1),black calc(100% - var(--spacing-1)),#0000004d calc(100% - 2px),transparent 100%);mask-image:linear-gradient(to right,transparent 0%,#0000004d 2px,black var(--spacing-1),black calc(100% - var(--spacing-1)),#0000004d calc(100% - 2px),transparent 100%)}.x1ujl4f5:not(#\#):not(#\#):not(#\#){-webkit-mask-image:linear-gradient(to right,transparent 0%,#0000004d 2px,black var(--spacing-1));-webkit-mask-image:linear-gradient(to right,transparent 0%,#0000004d 2px,black var(--spacing-1));-webkit-mask-image:linear-gradient(to right,transparent 0%,#0000004d 2px,black var(--spacing-1));mask-image:linear-gradient(to right,transparent 0%,#0000004d 2px,black var(--spacing-1))}.xq05pg6:not(#\#):not(#\#):not(#\#){-webkit-mask-image:linear-gradient(to right,transparent var(--_tab-strip-bleed),black calc(var(--_tab-strip-bleed) + var(--spacing-8)),black calc(100% - calc(var(--_tab-strip-bleed) + var(--spacing-8))),transparent calc(100% - var(--_tab-strip-bleed)));-webkit-mask-image:linear-gradient(to right,transparent var(--_tab-strip-bleed),black calc(var(--_tab-strip-bleed) + var(--spacing-8)),black calc(100% - calc(var(--_tab-strip-bleed) + var(--spacing-8))),transparent calc(100% - var(--_tab-strip-bleed)));-webkit-mask-image:linear-gradient(to right,transparent var(--_tab-strip-bleed),black calc(var(--_tab-strip-bleed) + var(--spacing-8)),black calc(100% - calc(var(--_tab-strip-bleed) + var(--spacing-8))),transparent calc(100% - var(--_tab-strip-bleed)));mask-image:linear-gradient(to right,transparent var(--_tab-strip-bleed),black calc(var(--_tab-strip-bleed) + var(--spacing-8)),black calc(100% - calc(var(--_tab-strip-bleed) + var(--spacing-8))),transparent calc(100% - var(--_tab-strip-bleed)))}.x1hua2o0:not(#\#):not(#\#):not(#\#){-webkit-mask-image:linear-gradient(to right,transparent var(--_tab-strip-bleed),black calc(var(--_tab-strip-bleed) + var(--spacing-8)));-webkit-mask-image:linear-gradient(to right,transparent var(--_tab-strip-bleed),black calc(var(--_tab-strip-bleed) + var(--spacing-8)));-webkit-mask-image:linear-gradient(to right,transparent var(--_tab-strip-bleed),black calc(var(--_tab-strip-bleed) + var(--spacing-8)));mask-image:linear-gradient(to right,transparent var(--_tab-strip-bleed),black calc(var(--_tab-strip-bleed) + var(--spacing-8)))}.x1cb67k9:not(#\#):not(#\#):not(#\#){-webkit-mask-image:linear-gradient(#0000,#0000);mask-image:linear-gradient(#0000,#0000)}.xw4ya9i:not(#\#):not(#\#):not(#\#){-webkit-mask-image:none;mask-image:none}.x19kjcj4:not(#\#):not(#\#):not(#\#){object-fit:contain}.xl1xv1r:not(#\#):not(#\#):not(#\#){object-fit:cover}.x1xyvc85:not(#\#):not(#\#):not(#\#){opacity:.15}.xvpkmg4:not(#\#):not(#\#):not(#\#){opacity:.25}.xuzhngd:not(#\#):not(#\#):not(#\#){opacity:.3}.x3onkmb:not(#\#):not(#\#):not(#\#){opacity:.35}.xbyyjgo:not(#\#):not(#\#):not(#\#){opacity:.5}.x197sbye:not(#\#):not(#\#):not(#\#){opacity:.6}.xg01cxk:not(#\#):not(#\#):not(#\#){opacity:0}.x1hc1fzr:not(#\#):not(#\#):not(#\#){opacity:1}.x1wnsjo:not(#\#):not(#\#):not(#\#){opacity:var(--_conceal-opacity,1)}.xgsobzw:not(#\#):not(#\#):not(#\#){opacity:var(--_reveal-opacity,1)}.x1i7u4iq:not(#\#):not(#\#):not(#\#){opacity:var(--_toast-swipe-opacity,1)}.x1clqncf:not(#\#):not(#\#):not(#\#){order:-1}.x1g77sc7:not(#\#):not(#\#):not(#\#){order:0}.x1wfwxd8:not(#\#):not(#\#):not(#\#){outline-offset:0}.x1kvmbwa:not(#\#):not(#\#):not(#\#){outline-offset:var(--_focus-outline-offset,0)}.x1t137rt:not(#\#):not(#\#):not(#\#){outline-style:none}.x1k57tk5:not(#\#):not(#\#):not(#\#){outline-width:0}.x9y5y3v:not(#\#):not(#\#):not(#\#){overflow-clip-margin:1px}.xj0a0fe:not(#\#):not(#\#):not(#\#){overflow-wrap:anywhere}.x1mzt3pk:not(#\#):not(#\#):not(#\#){overflow-wrap:break-word}.x1h4wwuj:not(#\#):not(#\#):not(#\#){overflow-wrap:normal}.xyri2b:not(#\#):not(#\#):not(#\#){padding-inline-end:0}.x1g2apga:not(#\#):not(#\#):not(#\#){padding-inline-end:calc(var(--_textarea-inline-padding) + var(--spacing-12))}.xp2dy4z:not(#\#):not(#\#):not(#\#){padding-inline-end:calc(var(--_textarea-inline-padding) + var(--spacing-6))}.x12frdag:not(#\#):not(#\#):not(#\#){padding-inline-end:calc(var(--container-padding-inline-end) - var(--border-width))}.x1g0rcpp:not(#\#):not(#\#):not(#\#){padding-inline-end:max(var(--spacing-4),env(safe-area-inset-right,0px))}.x1by8st6:not(#\#):not(#\#):not(#\#){padding-inline-end:var(--astryx-dialog-padding-inline-end,var(--astryx-dialog-padding-inline,var(--astryx-dialog-padding,max(var(--spacing-4),env(safe-area-inset-right,0px)))))}.x17sfb9:not(#\#):not(#\#):not(#\#){padding-inline-end:var(--astryx-number-input-padding-inline-end,var(--astryx-number-input-padding-inline,var(--astryx-number-input-padding,var(--spacing-2))))}.x64h4k7:not(#\#):not(#\#):not(#\#){padding-inline-end:var(--container-padding-inline-end)}.x1peupej:not(#\#):not(#\#):not(#\#){padding-inline-end:var(--layout-padding-inner-x,var(--spacing-4))}.xpc6k2p:not(#\#):not(#\#):not(#\#){padding-inline-end:var(--layout-padding-outer-x,var(--spacing-4))}.x1le3yxw:not(#\#):not(#\#):not(#\#){padding-inline-end:var(--spacing-0-5)}.x1s0aq8i:not(#\#):not(#\#):not(#\#){padding-inline-end:var(--spacing-0)}.x17hk9do:not(#\#):not(#\#):not(#\#){padding-inline-end:var(--spacing-1-5)}.x1nryj5t:not(#\#):not(#\#):not(#\#){padding-inline-end:var(--spacing-1)}.x160ivqr:not(#\#):not(#\#):not(#\#){padding-inline-end:var(--spacing-10)}.x1djylfy:not(#\#):not(#\#):not(#\#){padding-inline-end:var(--spacing-2)}.x1t818jl:not(#\#):not(#\#):not(#\#){padding-inline-end:var(--spacing-3)}.xnjyzlh:not(#\#):not(#\#):not(#\#){padding-inline-end:var(--spacing-4)}.xdbrk9v:not(#\#):not(#\#):not(#\#){padding-inline-end:var(--spacing-5)}.x1we12cn:not(#\#):not(#\#):not(#\#){padding-inline-end:var(--spacing-6)}.x1q91b2g:not(#\#):not(#\#):not(#\#){padding-inline-end:var(--spacing-8)}.x120eax6:not(#\#):not(#\#):not(#\#){padding-inline-end:var(--x-paddingInlineEnd)}.x1c1uobl:not(#\#):not(#\#):not(#\#){padding-inline-start:0}.x1f43n9v:not(#\#):not(#\#):not(#\#){padding-inline-start:calc(16px + var(--spacing-1-5))}.x1b6te9z:not(#\#):not(#\#):not(#\#){padding-inline-start:calc(var(--_textarea-inline-padding) + var(--spacing-6))}.xs19ii7:not(#\#):not(#\#):not(#\#){padding-inline-start:calc(var(--container-padding-inline-start) - var(--border-width))}.x2a0j69:not(#\#):not(#\#):not(#\#){padding-inline-start:calc(var(--spacing-2) - var(--spacing-1) + 1px)}.xf4btlh:not(#\#):not(#\#):not(#\#){padding-inline-start:max(var(--spacing-4),env(safe-area-inset-left,0px))}.xqmdmw:not(#\#):not(#\#):not(#\#){padding-inline-start:var(--astryx-dialog-padding-inline-start,var(--astryx-dialog-padding-inline,var(--astryx-dialog-padding,max(var(--spacing-4),env(safe-area-inset-left,0px)))))}.x1jni19p:not(#\#):not(#\#):not(#\#){padding-inline-start:var(--astryx-number-input-padding-inline-start,var(--astryx-number-input-padding-inline,var(--astryx-number-input-padding,var(--spacing-2))))}.x1c35znw:not(#\#):not(#\#):not(#\#){padding-inline-start:var(--container-padding-inline-start)}.xwjyata:not(#\#):not(#\#):not(#\#){padding-inline-start:var(--layout-padding-inner-x,var(--spacing-4))}.x139j0dd:not(#\#):not(#\#):not(#\#){padding-inline-start:var(--layout-padding-outer-x,var(--spacing-4))}.x138rykx:not(#\#):not(#\#):not(#\#){padding-inline-start:var(--spacing-0-5)}.x18gyask:not(#\#):not(#\#):not(#\#){padding-inline-start:var(--spacing-0)}.xfti1ec:not(#\#):not(#\#):not(#\#){padding-inline-start:var(--spacing-1-5)}.x1vsv5vr:not(#\#):not(#\#):not(#\#){padding-inline-start:var(--spacing-1)}.xqp078j:not(#\#):not(#\#):not(#\#){padding-inline-start:var(--spacing-10)}.xc8afjc:not(#\#):not(#\#):not(#\#){padding-inline-start:var(--spacing-11)}.x19b7t93:not(#\#):not(#\#):not(#\#){padding-inline-start:var(--spacing-12)}.x12gdq22:not(#\#):not(#\#):not(#\#){padding-inline-start:var(--spacing-2)}.x126nfab:not(#\#):not(#\#):not(#\#){padding-inline-start:var(--spacing-3)}.x1rey3nv:not(#\#):not(#\#):not(#\#){padding-inline-start:var(--spacing-4)}.x1blguxw:not(#\#):not(#\#):not(#\#){padding-inline-start:var(--spacing-5)}.x31w388:not(#\#):not(#\#):not(#\#){padding-inline-start:var(--spacing-6)}.xchaq28:not(#\#):not(#\#):not(#\#){padding-inline-start:var(--spacing-7)}.x1j3hnjz:not(#\#):not(#\#):not(#\#){padding-inline-start:var(--spacing-8)}.xnvo3vl:not(#\#):not(#\#):not(#\#){padding-inline-start:var(--x-paddingInlineStart)}.x201tam:not(#\#):not(#\#):not(#\#){perspective:520px}.x67bb7w:not(#\#):not(#\#):not(#\#){pointer-events:auto}.x47corl:not(#\#):not(#\#):not(#\#){pointer-events:none}.x1tsffl5:not(#\#):not(#\#):not(#\#){position-anchor:--outline-active}.x10l6tqk:not(#\#):not(#\#):not(#\#){position:absolute}.xixxii4:not(#\#):not(#\#):not(#\#){position:fixed}.x1n2onr6:not(#\#):not(#\#):not(#\#){position:relative}.x1uhb9sk:not(#\#):not(#\#):not(#\#){position:static}.x7wzq59:not(#\#):not(#\#):not(#\#){position:sticky}.x1mf7ja4:not(#\#):not(#\#):not(#\#){position:var(--_reveal-position,static)}.xio8zfp:not(#\#):not(#\#):not(#\#){r:calc(var(--_spinner-ring-diameter) / 2)}.xtt52l0:not(#\#):not(#\#):not(#\#){resize:none}.x288g5:not(#\#):not(#\#):not(#\#){resize:vertical}.xajebq8:not(#\#):not(#\#):not(#\#){row-gap:calc(var(--spacing-1) - 1px)}.x1tw44j4:not(#\#):not(#\#):not(#\#){row-gap:var(--spacing-0-5)}.x6yxi7o:not(#\#):not(#\#):not(#\#){row-gap:var(--spacing-0)}.xhq53yo:not(#\#):not(#\#):not(#\#){row-gap:var(--spacing-1-5)}.x1ngg2t4:not(#\#):not(#\#):not(#\#){row-gap:var(--spacing-1)}.x1xpicb7:not(#\#):not(#\#):not(#\#){row-gap:var(--spacing-10)}.x1x7z4sm:not(#\#):not(#\#):not(#\#){row-gap:var(--spacing-2)}.x4olc9o:not(#\#):not(#\#):not(#\#){row-gap:var(--spacing-3)}.xtx9w7w:not(#\#):not(#\#):not(#\#){row-gap:var(--spacing-4)}.x1iu6piu:not(#\#):not(#\#):not(#\#){row-gap:var(--spacing-5)}.xczp1bk:not(#\#):not(#\#):not(#\#){row-gap:var(--spacing-6)}.xgx0vcf:not(#\#):not(#\#):not(#\#){row-gap:var(--spacing-8)}.xkcv6ua:not(#\#):not(#\#):not(#\#){scroll-behavior:smooth}.xrw9175:not(#\#):not(#\#):not(#\#){scroll-padding-block-end:48px}.x1hdbdi8:not(#\#):not(#\#):not(#\#){scroll-snap-align:center}.x1bhewko:not(#\#):not(#\#):not(#\#){scroll-snap-align:start}.x1rohswg:not(#\#):not(#\#):not(#\#){scrollbar-width:none}.x1vy8frr:not(#\#):not(#\#):not(#\#){stroke-dasharray:calc(var(--_spinner-ring-diameter) * 1.1781) calc(var(--_spinner-ring-diameter) * 1.9635)}.x1owpc8m:not(#\#):not(#\#):not(#\#){stroke-linecap:round}.x7bo2k:not(#\#):not(#\#):not(#\#){stroke-opacity:.3}.x1smxkh6:not(#\#):not(#\#):not(#\#){stroke-opacity:.302}.x1g350g8:not(#\#):not(#\#):not(#\#){stroke-opacity:1}.xgw3ha0:not(#\#):not(#\#):not(#\#){stroke-width:var(--_spinner-ring-stroke)}.xtve3lm:not(#\#):not(#\#):not(#\#){stroke:var(--spinner-color)}.xalkhop:not(#\#):not(#\#):not(#\#){stroke:var(--spinner-track-color)}.xeq4nuv:not(#\#):not(#\#):not(#\#){tab-size:2}.x1drmoe9:not(#\#):not(#\#):not(#\#){table-layout:auto}.x140o2bo:not(#\#):not(#\#):not(#\#){table-layout:fixed}.x2b8uid:not(#\#):not(#\#):not(#\#){text-align:center}.xp4054r:not(#\#):not(#\#):not(#\#){text-align:end}.x16tdsg8:not(#\#):not(#\#):not(#\#){text-align:inherit}.x1yc453h:not(#\#):not(#\#):not(#\#){text-align:start}.x1b2iylo:not(#\#):not(#\#):not(#\#){text-box-edge:cap alphabetic}.xwgcxoh:not(#\#):not(#\#):not(#\#){text-box-trim:trim-both}.xycaml9:not(#\#):not(#\#):not(#\#){-webkit-text-decoration-color:var(--color-border-emphasized);-webkit-text-decoration-color:var(--color-border-emphasized);-webkit-text-decoration-color:var(--color-border-emphasized);text-decoration-color:var(--color-border-emphasized)}.xujl8zx:not(#\#):not(#\#):not(#\#){text-decoration-line:underline}.xev0dqp:not(#\#):not(#\#):not(#\#){text-decoration-style:dashed}.xlyipyv:not(#\#):not(#\#):not(#\#){text-overflow:ellipsis}.xtvhhri:not(#\#):not(#\#):not(#\#){text-transform:uppercase}.xrys4gj:not(#\#):not(#\#):not(#\#){text-underline-offset:2px}.x11b3rvo:not(#\#):not(#\#):not(#\#){text-underline-offset:var(--spacing-0-5)}.x1w2vvpw:not(#\#):not(#\#):not(#\#){text-wrap:balance}.xebhuq6:not(#\#):not(#\#):not(#\#){text-wrap:nowrap}.x1fzhlzt:not(#\#):not(#\#):not(#\#){text-wrap:pretty}.xk4td0m:not(#\#):not(#\#):not(#\#){text-wrap:wrap}.x5ve5x3:not(#\#):not(#\#):not(#\#){touch-action:none}.x1bblx7b:not(#\#):not(#\#):not(#\#){touch-action:pan-x}.xx69xxh:not(#\#):not(#\#):not(#\#){touch-action:pan-y}.x1g0ag68:not(#\#):not(#\#):not(#\#){transform-origin:50%}.x1oyok0e:not(#\#):not(#\#):not(#\#){transform-style:preserve-3d}.x1c071of:not(#\#):not(#\#):not(#\#){transform:none}.x7p49u4:not(#\#):not(#\#):not(#\#){transform:rotate(0)}.x19jd1h0:not(#\#):not(#\#):not(#\#){transform:rotate(180deg)}.x1iffjtl:not(#\#):not(#\#):not(#\#){transform:rotate(90deg)}.x3oybdh:not(#\#):not(#\#):not(#\#){transform:scale(1)}.x11lhmoz:not(#\#):not(#\#):not(#\#){transform:translate(-50%,-50%)}.x1m9mm8y:not(#\#):not(#\#):not(#\#){transform:translate(-50%,50%)}.xv8yid9:not(#\#):not(#\#):not(#\#){transform:translate(25%,25%)}.x4v1no5:not(#\#):not(#\#):not(#\#){transform:translate(50%,50%)}.x5i6ehr:not(#\#):not(#\#):not(#\#){transform:translate(-100%)}.xuuh30:not(#\#):not(#\#):not(#\#){transform:translate(-50%)}.xbryuvx:not(#\#):not(#\#):not(#\#){transform:translate(0)}.xumwmo6:not(#\#):not(#\#):not(#\#){transform:translate(100%)}.xv5t66b:not(#\#):not(#\#):not(#\#){transform:translate(12px)}.x15481yp:not(#\#):not(#\#):not(#\#){transform:translate(14px)}.xitnhlw:not(#\#):not(#\#):not(#\#){transform:translate(50%)}.x105ttfm:not(#\#):not(#\#):not(#\#){transform:translateY(-100%)}.x19xzu86:not(#\#):not(#\#):not(#\#){transform:translateY(-3px)scale(.985)}.x1bvilyr:not(#\#):not(#\#):not(#\#){transform:translateY(-4px)}.x1cb1t30:not(#\#):not(#\#):not(#\#){transform:translateY(-50%)}.xp0htlv:not(#\#):not(#\#):not(#\#){transform:translateY(-6px)scale(.97)}.xnn1q72:not(#\#):not(#\#):not(#\#){transform:translateY(0)}.x1weeur4:not(#\#):not(#\#):not(#\#){transform:translateY(100%)}.x131p8rn:not(#\#):not(#\#):not(#\#){transform:translateY(50%)}.x149p1fo:not(#\#):not(#\#):not(#\#){transform:translateY(var(--_toast-swipe-exit-y,var(--_toast-swipe-y,var(--_toast-slide-y,var(--spacing-2))))) scale(var(--_toast-swipe-scale,1))}.x1qk3xlt:not(#\#):not(#\#):not(#\#){transform:translateY(var(--_toast-swipe-y,0px)) scale(var(--_toast-swipe-scale,1))}.x11wx31z:not(#\#):not(#\#):not(#\#){transform:var(--x-qthpiu)}.xsqj5wx:not(#\#):not(#\#):not(#\#){transform:var(--x-transform)}.xd00j3c:not(#\#):not(#\#):not(#\#){transition-behavior:allow-discrete}.x5h36tt:not(#\#):not(#\#):not(#\#){transition-delay:.15s}.x1ahifba:not(#\#):not(#\#):not(#\#){transition-delay:0s}.x4avkj2:not(#\#):not(#\#):not(#\#){transition-delay:var(--_fade-delay,0s)}.x1rq8cwj:not(#\#):not(#\#):not(#\#){transition-delay:var(--_reveal-delay,0s,0s)}.x10b1n17:not(#\#):not(#\#):not(#\#){transition-delay:var(--duration-fast)}.x11bq7d0:not(#\#):not(#\#):not(#\#){transition-duration:60ms}.xx6bhzk:not(#\#):not(#\#):not(#\#){transition-duration:.15s}.x13dflua:not(#\#):not(#\#):not(#\#){transition-duration:.2s}.xjd9b36:not(#\#):not(#\#):not(#\#){transition-duration:1ms}.x2rcmwa:not(#\#):not(#\#):not(#\#){transition-duration:var(--duration-fast-max)}.xkvfbh3:not(#\#):not(#\#):not(#\#){transition-duration:var(--duration-fast-min)}.x1tw3moq:not(#\#):not(#\#):not(#\#){transition-duration:var(--duration-fast),0s}.xuedmi6:not(#\#):not(#\#):not(#\#){transition-duration:var(--duration-fast)}.xgneliz:not(#\#):not(#\#):not(#\#){transition-duration:var(--duration-medium-min)}.x80gvsz:not(#\#):not(#\#):not(#\#){transition-duration:var(--duration-medium)}.x1eaenvl:not(#\#):not(#\#):not(#\#){transition-property:background-color,border-color,color}.xts7igz:not(#\#):not(#\#):not(#\#){transition-property:background-color,border-color}.x106061f:not(#\#):not(#\#):not(#\#){transition-property:background-color,box-shadow}.xzo0q3i:not(#\#):not(#\#):not(#\#){transition-property:background-color,color,border-color}.xs2xxs2:not(#\#):not(#\#):not(#\#){transition-property:background-color,color}.x1e8aii2:not(#\#):not(#\#):not(#\#){transition-property:background-color,opacity}.x15406qy:not(#\#):not(#\#):not(#\#){transition-property:background-color}.xrafxwg:not(#\#):not(#\#):not(#\#){transition-property:background-image,background-color,color,opacity,transform}.x12qzo2w:not(#\#):not(#\#):not(#\#){transition-property:background-image}.x1tv3a4w:not(#\#):not(#\#):not(#\#){transition-property:border-color,box-shadow,background-color}.x12zzom9:not(#\#):not(#\#):not(#\#){transition-property:border-color,box-shadow}.xshfolx:not(#\#):not(#\#):not(#\#){transition-property:border-color}.x16mfhj0:not(#\#):not(#\#):not(#\#){transition-property:box-shadow,border-color}.xkdsq27:not(#\#):not(#\#):not(#\#){transition-property:box-shadow}.x1vix5yk:not(#\#):not(#\#):not(#\#){transition-property:color,background-color,box-shadow}.x1gbuem2:not(#\#):not(#\#):not(#\#){transition-property:color,background-color}.x1jbe559:not(#\#):not(#\#):not(#\#){transition-property:color,font-weight}.x1mpt4pi:not(#\#):not(#\#):not(#\#){transition-property:color,-webkit-text-decoration,text-decoration}.xt3l3uh:not(#\#):not(#\#):not(#\#){transition-property:color}.xrgi2yo:not(#\#):not(#\#):not(#\#){transition-property:display}.xjshnde:not(#\#):not(#\#):not(#\#){transition-property:grid-template-rows,padding}.x1qn9uv2:not(#\#):not(#\#):not(#\#){transition-property:grid-template-rows}.x157bb6t:not(#\#):not(#\#):not(#\#){transition-property:-webkit-mask-image,mask-image}.x13b0p5u:not(#\#):not(#\#):not(#\#){transition-property:none}.x1wbls7o:not(#\#):not(#\#):not(#\#){transition-property:opacity,background-color,transform}.xnpjden:not(#\#):not(#\#):not(#\#){transition-property:opacity,background-color}.xsm4mo9:not(#\#):not(#\#):not(#\#){transition-property:opacity,display,overlay}.x1n1p2mu:not(#\#):not(#\#):not(#\#){transition-property:opacity,position}.x1apppo2:not(#\#):not(#\#):not(#\#){transition-property:opacity,transform,max-width}.x4bbghf:not(#\#):not(#\#):not(#\#){transition-property:opacity,transform,overlay,display}.x6o7n8i:not(#\#):not(#\#):not(#\#){transition-property:opacity,transform}.xxup5nn:not(#\#):not(#\#):not(#\#){transition-property:opacity,visibility,transform}.x1jl3cmp:not(#\#):not(#\#):not(#\#){transition-property:opacity,visibility}.x19991ni:not(#\#):not(#\#):not(#\#){transition-property:opacity}.x1xuz8iz:not(#\#):not(#\#):not(#\#){transition-property:top,height}.x18dpk69:not(#\#):not(#\#):not(#\#){transition-property:transform,background-color}.x12pfavo:not(#\#):not(#\#):not(#\#){transition-property:transform,color}.xwcsmn1:not(#\#):not(#\#):not(#\#){transition-property:transform,opacity}.xh3q6i0:not(#\#):not(#\#):not(#\#){transition-property:transform,width,height}.x11xpdln:not(#\#):not(#\#):not(#\#){transition-property:transform}.x74b7sa:not(#\#):not(#\#):not(#\#){transition-property:visibility}.xxrbq2n:not(#\#):not(#\#):not(#\#){transition-property:width}.xv2sgk5:not(#\#):not(#\#):not(#\#){transition-timing-function:cubic-bezier(.3,0,.6,.6)}.x9lcvmn:not(#\#):not(#\#):not(#\#){transition-timing-function:ease-out}.xcj1dhv:not(#\#):not(#\#):not(#\#){transition-timing-function:linear}.xlr8y92:not(#\#):not(#\#):not(#\#){transition-timing-function:var(--ease-standard)}.x3sa99s:not(#\#):not(#\#):not(#\#){translate:0 -50%}.x87ps6o:not(#\#):not(#\#):not(#\#){-webkit-user-select:none;user-select:none}.x11njtxf:not(#\#):not(#\#):not(#\#){vertical-align:baseline}.x3ajldb:not(#\#):not(#\#):not(#\#){vertical-align:bottom}.xxymvpz:not(#\#):not(#\#):not(#\#){vertical-align:middle}.x1v0h343:not(#\#):not(#\#):not(#\#){vertical-align:super}.x16dsc37:not(#\#):not(#\#):not(#\#){vertical-align:top}.xlshs6z:not(#\#):not(#\#):not(#\#){visibility:hidden}.xnpuxes:not(#\#):not(#\#):not(#\#){visibility:visible}.xeaf4i8:not(#\#):not(#\#):not(#\#){white-space:normal}.xuxw1ft:not(#\#):not(#\#):not(#\#){white-space:nowrap}.x126k92a:not(#\#):not(#\#):not(#\#){white-space:pre-wrap}.x1sdyfia:not(#\#):not(#\#):not(#\#){white-space:pre}.x1q1rmc8:not(#\#):not(#\#):not(#\#){will-change:transform,opacity}.x1so62im:not(#\#):not(#\#):not(#\#){will-change:transform}.x1yn0g08:not(#\#):not(#\#):not(#\#){word-break:break-all}.x13faqbe:not(#\#):not(#\#):not(#\#){word-break:break-word}.x1lldw8n:not(#\#):not(#\#):not(#\#){word-break:normal}.x1ja2u2z:not(#\#):not(#\#):not(#\#){z-index:0}.x1vjfegm:not(#\#):not(#\#):not(#\#){z-index:1}.xfo81ep:not(#\#):not(#\#):not(#\#){z-index:1000}.xhtitgo:not(#\#):not(#\#):not(#\#){z-index:2}.xzkaem6:not(#\#):not(#\#):not(#\#){z-index:3}.x6cuj84:not(#\#):not(#\#):not(#\#){z-index:500}.x1q2oy4v:not(#\#):not(#\#):not(#\#){z-index:9999}.x1v2claj.x1v2claj:where(.x84s7jz:focus-within *):not(#\#):not(#\#):not(#\#){opacity:1}.x3730vf.x3730vf:where(.x84s7jz:focus-within *):not(#\#):not(#\#):not(#\#){pointer-events:auto}.xuqivmr.xuqivmr:where(.x84s7jz:focus-within *):not(#\#):not(#\#):not(#\#){transform:translateY(0)}.x7v6acp.x7v6acp:where(.x84s7jz:focus-within *):not(#\#):not(#\#):not(#\#){visibility:visible}.x5um2zc.x5um2zc:where(.x1twag4g:first-child *):not(#\#):not(#\#):not(#\#),.x1se5z8o.x1se5z8o:where(.x1twag4g:last-child *):not(#\#):not(#\#):not(#\#){visibility:hidden}@supports (animation-timeline:view()){.x1iu2jvn.x1iu2jvn:not(#\#):not(#\#):not(#\#){animation-name:x1tut0r7-B}}.xfd3fxj:is([dir=rtl] *):not(#\#):not(#\#):not(#\#){animation-name:x1c2q33o-B}.x1vxsm5i:is([dir=rtl] *):not(#\#):not(#\#):not(#\#){animation-name:xu7jd1z-B}.x18lne9g:is([dir=rtl] *):not(#\#):not(#\#):not(#\#){animation-name:xwmkjkf-B}.x1spg45b.x1spg45b:hover:where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){background-color:var(--color-accent)}.x1rmb4wm:not(:has(~:not([popover]):not(template))):not(#\#):not(#\#):not(#\#){border-end-end-radius:var(--radius-element)}.xturttb:not(:has(~:not([popover]):not(template))):not(#\#):not(#\#):not(#\#){border-end-start-radius:var(--radius-element)}.x1tzxhge:not(:has(~:not([popover]):not(template))):not(#\#):not(#\#):not(#\#){border-start-end-radius:var(--radius-element)}.xuihb5h:focus-within:not(#\#):not(#\#):not(#\#){box-shadow:inset 0 0 0 2px var(--color-accent-muted)}.x15ysqaf:focus-within:not(#\#):not(#\#):not(#\#){box-shadow:none}.xyavpck:focus-within:not(#\#):not(#\#):not(#\#){box-shadow:var(--shadow-med)}.x10wafsz:focus-within:not(#\#):not(#\#):not(#\#){clip-path:none}.xy5bzlh.xy5bzlh:hover:where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){color:var(--color-icon-primary)}.x9o1np9.x9o1np9:hover:where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){color:var(--color-text-primary)}.x16khyan:is(:disabled,[aria-disabled=true]):not(#\#):not(#\#):not(#\#){cursor:default}.x1y40yee:popover-open:not(#\#):not(#\#):not(#\#){display:flex}.x1sik18w:not(:first-child):not(#\#):not(#\#):not(#\#){margin-inline-start:var(--_avatar-group-overlap)}.x1nwey30:is([dir=rtl] *):not(#\#):not(#\#):not(#\#){-webkit-mask-image:linear-gradient(to left,transparent var(--_tab-strip-bleed),black calc(var(--_tab-strip-bleed) + var(--spacing-8)));-webkit-mask-image:linear-gradient(to left,transparent var(--_tab-strip-bleed),black calc(var(--_tab-strip-bleed) + var(--spacing-8)));-webkit-mask-image:linear-gradient(to left,transparent var(--_tab-strip-bleed),black calc(var(--_tab-strip-bleed) + var(--spacing-8)));mask-image:linear-gradient(to left,transparent var(--_tab-strip-bleed),black calc(var(--_tab-strip-bleed) + var(--spacing-8)))}.x1rxa4r8:is([dir=rtl] *):not(#\#):not(#\#):not(#\#){-webkit-mask-image:linear-gradient(to right,transparent var(--_tab-strip-bleed),black calc(var(--_tab-strip-bleed) + var(--spacing-8)));-webkit-mask-image:linear-gradient(to right,transparent var(--_tab-strip-bleed),black calc(var(--_tab-strip-bleed) + var(--spacing-8)));-webkit-mask-image:linear-gradient(to right,transparent var(--_tab-strip-bleed),black calc(var(--_tab-strip-bleed) + var(--spacing-8)));mask-image:linear-gradient(to right,transparent var(--_tab-strip-bleed),black calc(var(--_tab-strip-bleed) + var(--spacing-8)))}.x1euntei:focus-within:not(#\#):not(#\#):not(#\#),.x25t5g8:focus-visible:not(#\#):not(#\#):not(#\#),.xof6bs:is(th:hover *):not(#\#):not(#\#):not(#\#){opacity:1}.xofkqq2:popover-open:not(#\#):not(#\#):not(#\#){opacity:1}.x1e0x2sz:focus-visible:not(#\#):not(#\#):not(#\#){outline-color:var(--color-error)}.xx47ajj:focus-visible:not(#\#):not(#\#):not(#\#){outline-color:var(--focus-outline-color)}.x7s97pk:focus-visible:not(#\#):not(#\#):not(#\#){outline-offset:2px}.x13aywxo:focus-visible:not(#\#):not(#\#):not(#\#){outline-offset:var(--button-focus-offset)}.x1vwwbsn:focus-visible:not(#\#):not(#\#):not(#\#),.xwz5zln.xwz5zln:where(.x1iwu4tg:has(:focus-visible) *):not(#\#):not(#\#):not(#\#){outline-offset:var(--focus-outline-offset)}.x1jhp3zv:focus-visible:not(#\#):not(#\#):not(#\#){outline-style:var(--focus-outline-style)}.x1vidyx5:focus-visible:not(#\#):not(#\#):not(#\#){outline-width:var(--focus-outline-width)}.x1n6uwha:is([dir=rtl] *):not(#\#):not(#\#):not(#\#){padding-inline-end:max(var(--spacing-4),env(safe-area-inset-left,0px))}.xtjjor6:is([dir=rtl] *):not(#\#):not(#\#):not(#\#){padding-inline-end:var(--astryx-dialog-padding-inline-end,var(--astryx-dialog-padding-inline,var(--astryx-dialog-padding,max(var(--spacing-4),env(safe-area-inset-left,0px)))))}.x19efkpl:is([dir=rtl] *):not(#\#):not(#\#):not(#\#){padding-inline-start:max(var(--spacing-4),env(safe-area-inset-right,0px))}.x1i7f2ot:is([dir=rtl] *):not(#\#):not(#\#):not(#\#){padding-inline-start:var(--astryx-dialog-padding-inline-start,var(--astryx-dialog-padding-inline,var(--astryx-dialog-padding,max(var(--spacing-4),env(safe-area-inset-right,0px)))))}.xbt4iw:focus-within:not(#\#):not(#\#):not(#\#){pointer-events:auto}.xo74pv5:focus-within:not(#\#):not(#\#):not(#\#){position:static}.x1mqgsch[data-astryx-scrolling]:not(#\#):not(#\#):not(#\#){scrollbar-width:none}.xaafvuh:is([dir=rtl] *):not(#\#):not(#\#):not(#\#){transform:scaleX(-1)rotate(0)}.x1nxqau:is([dir=rtl] *):not(#\#):not(#\#):not(#\#){transform:scaleX(-1)rotate(90deg)}.xgtlewx:is([dir=rtl] *):not(#\#):not(#\#):not(#\#){transform:scaleX(-1)}.x10fxb7p:is([dir=rtl] *):not(#\#):not(#\#):not(#\#){transform:translate(-25%,25%)}.xqgnvz5:is([dir=rtl] *):not(#\#):not(#\#):not(#\#){transform:translate(-50%,50%)}.xoffwj3:is([dir=rtl] *):not(#\#):not(#\#):not(#\#){transform:translate(50%,-50%)}.x1df3fe5:is([dir=rtl] *):not(#\#):not(#\#):not(#\#){transform:translate(-100%)}.xi9aj42:is([dir=rtl] *):not(#\#):not(#\#):not(#\#){transform:translate(-12px)}.x12xz5k6:is([dir=rtl] *):not(#\#):not(#\#):not(#\#){transform:translate(-14px)}.x36dvrd:is([dir=rtl] *):not(#\#):not(#\#):not(#\#){transform:translate(-50%)}.xttggg:is([dir=rtl] *):not(#\#):not(#\#):not(#\#){transform:translate(100%)}.x1nyx83j:is([dir=rtl] *):not(#\#):not(#\#):not(#\#){transform:translate(50%)}.x9cjr8z:popover-open:not(#\#):not(#\#):not(#\#){transform:translateY(0)}.x75qhwu:is([dir=rtl] *):not(#\#):not(#\#):not(#\#){transform:var(--x-sj6hyi)}.x1rm9qnc:focus-within:not(#\#):not(#\#):not(#\#){z-index:1}.x1btxeh5:has(input:focus-visible):not(#\#):not(#\#):not(#\#){box-shadow:inset 0 0 0 2px var(--color-accent)}.x92e2el:has(>[data-astryx-edge-comp]:last-child):not(#\#):not(#\#):not(#\#){margin-inline-end:var(--x-4drmnv)}.x1kftj4p:has(>[data-astryx-edge-comp]:first-child):not(#\#):not(#\#):not(#\#){margin-inline-start:var(--x-126w13d)}:is(.x1uy843r:has(:focus-visible):not(#\#):not(#\#):not(#\#),.xobxmqy:has(>:first-child:focus-visible):not(#\#):not(#\#):not(#\#)){outline-color:var(--focus-outline-color)}:is(.x1jumodi:has(:focus-visible):not(#\#):not(#\#):not(#\#),.x2vr5qc:has(>:first-child:focus-visible):not(#\#):not(#\#):not(#\#)){outline-offset:var(--focus-outline-offset)}:is(.xciu248:has(:focus-visible):not(#\#):not(#\#):not(#\#),.xfd04fr:has(>:first-child:focus-visible):not(#\#):not(#\#):not(#\#)){outline-style:var(--focus-outline-style)}:is(.x11j6mr8:has(:focus-visible):not(#\#):not(#\#):not(#\#),.xmmisi4:has(>:first-child:focus-visible):not(#\#):not(#\#):not(#\#)){outline-width:var(--focus-outline-width)}.xmnmr5y:has(.astryx-nav-icon):not(#\#):not(#\#):not(#\#){padding-inline-start:0}.x1xrp5p4:first-child:not(#\#):not(#\#):not(#\#){border-end-start-radius:var(--radius-element)}.xyf0ibl:first-child:not(#\#):not(#\#):not(#\#){border-inline-start-style:none}.x1pjv70x:first-child:not(#\#):not(#\#):not(#\#){border-inline-start-width:0}.x2qxyot:first-child:not(#\#):not(#\#):not(#\#){border-start-end-radius:var(--radius-element)}.x8eehn2:first-child:not(#\#):not(#\#):not(#\#){border-start-start-radius:var(--radius-element)}.x1pwwqoy:first-child:not(#\#):not(#\#):not(#\#){margin-inline-start:0}.x5uh4xs:first-child:not(#\#):not(#\#):not(#\#){padding-inline-start:max(var(--container-padding-inline-start,var(--spacing-2)),var(--spacing-2))}.x9bi00s:first-child:not(#\#):not(#\#):not(#\#){padding-inline-start:max(var(--container-padding-inline-start,var(--spacing-3)),var(--spacing-2))}.x18c6q21:first-child:not(#\#):not(#\#):not(#\#){padding-inline-start:max(var(--container-padding-inline-start,var(--spacing-4)),var(--spacing-2))}.x747jw7:last-child:not(#\#):not(#\#):not(#\#){border-end-end-radius:var(--radius-element)}.x1qlsc9e:last-child:not(#\#):not(#\#):not(#\#){border-inline-end-width:0}.x11xp8u1:last-child:not(#\#):not(#\#):not(#\#){border-start-end-radius:var(--radius-element)}.xbg7gas:last-child:not(#\#):not(#\#):not(#\#){padding-inline-end:max(var(--container-padding-inline-end,var(--spacing-2)),var(--spacing-2))}.xpilulx:last-child:not(#\#):not(#\#):not(#\#){padding-inline-end:max(var(--container-padding-inline-end,var(--spacing-3)),var(--spacing-2))}.x1wzlfcn:last-child:not(#\#):not(#\#):not(#\#){padding-inline-end:max(var(--container-padding-inline-end,var(--spacing-4)),var(--spacing-2))}.x1dnou9g:nth-child(2n):not(#\#):not(#\#):not(#\#){background-color:var(--color-background-muted)}.x1c52tdz:focus:not(#\#):not(#\#):not(#\#){background-color:var(--color-overlay-hover)}.x1rsz1da:focus:not(#\#):not(#\#):not(#\#){clip-path:none}.xodanix:focus:not(#\#):not(#\#):not(#\#){inset-inline-start:var(--spacing-2)}.x1xrnuwo:focus:not(#\#):not(#\#):not(#\#){position:fixed}.x1hbpcn8:focus:not(#\#):not(#\#):not(#\#){white-space:normal}.xjtnuge:active:not(#\#):not(#\#):not(#\#){background-color:var(--color-neutral)}.xuqm82a:active:not(#\#):not(#\#):not(#\#){background-image:none}.x1pdlv7q:active:not(#\#):not(#\#):not(#\#){transform:none}.xk4oym4:active:not(#\#):not(#\#):not(#\#){transform:scale(.98)}@media (prefers-reduced-motion:reduce){.x14q22ui.x14q22ui:not(#\#):not(#\#):not(#\#){animation-delay:0s}.xnh0sag.xnh0sag:not(#\#):not(#\#):not(#\#){animation-duration:3s}.x1aquc0h.x1aquc0h:not(#\#):not(#\#):not(#\#){animation-name:none}}@media (forced-colors:active){.x9yvj25.x9yvj25:not(#\#):not(#\#):not(#\#){background-color:canvas}.xwvh9j7.xwvh9j7:not(#\#):not(#\#):not(#\#){background-color:canvastext}}@media (prefers-contrast:more) and (not (forced-colors:active)){.x1j0df82.x1j0df82:not(#\#):not(#\#):not(#\#){background-color:var(--color-skeleton)}@supports (color:color-mix(in lab, red, red)){.x1j0df82.x1j0df82:not(#\#):not(#\#):not(#\#){background-color:color-mix(in srgb,var(--color-skeleton),var(--color-text-primary) 30%)}}}@media (forced-colors:active){.x1o55y2u.x1o55y2u:not(#\#):not(#\#):not(#\#){background-color:graytext}.x1jzqe4.x1jzqe4:not(#\#):not(#\#):not(#\#){background-color:highlight}.x1sir5s4.x1sir5s4:not(#\#):not(#\#):not(#\#){background-color:highlighttext}}@media (hover:hover){.x150ydqw.x150ydqw:not(#\#):not(#\#):not(#\#){background-color:#0000}}@media (forced-colors:active){.xs5hli.xs5hli:not(#\#):not(#\#):not(#\#){color:canvastext}.x1k5gbb1.x1k5gbb1:not(#\#):not(#\#):not(#\#){color:highlighttext}}@media (hover:hover){.x2dt3px.x2dt3px:not(#\#):not(#\#):not(#\#){cursor:zoom-in}.xqwu39o.xqwu39o:not(#\#):not(#\#):not(#\#){display:flex}}@media (width<=480px){.xedohl4.xedohl4:not(#\#):not(#\#):not(#\#){display:flex}}@media (pointer:coarse){.xhj50sb.xhj50sb:not(#\#):not(#\#):not(#\#){display:none}}@media (width<=480px){.x1rpgqan.x1rpgqan:not(#\#):not(#\#):not(#\#){flex-direction:column}}@media (pointer:coarse){.x6pjikd.x6pjikd:not(#\#):not(#\#):not(#\#){font-size:max(1rem,var(--text-body-size))}.xdk3u5w.xdk3u5w:not(#\#):not(#\#):not(#\#){font-size:max(1rem,var(--text-label-size))}.x1hsn8va.x1hsn8va:not(#\#):not(#\#):not(#\#){inset-inline-start:50%}.x1jymrmb.x1jymrmb:not(#\#):not(#\#):not(#\#){margin-inline-start:auto}}@media (forced-colors:active){.x1tbh5bv.x1tbh5bv:not(#\#):not(#\#):not(#\#){opacity:1}}@media (pointer:coarse){.xozvky.xozvky:not(#\#):not(#\#):not(#\#){order:1}}@media (prefers-reduced-motion:reduce){.xg83hb1.xg83hb1:not(#\#):not(#\#):not(#\#){scroll-behavior:auto}}@media (pointer:coarse){.x8i4i9p.x8i4i9p:not(#\#):not(#\#):not(#\#){transform:translate(-50%,-50%)}}@media (prefers-reduced-motion:reduce){.xwgk2z2.xwgk2z2:not(#\#):not(#\#):not(#\#){transition-delay:var(--_reveal-delay-reduced,0s,0s)}.xsagj69.xsagj69:not(#\#):not(#\#):not(#\#){transition-duration:.01ms}.xzg1mie.xzg1mie:not(#\#):not(#\#):not(#\#){transition-duration:10ms}.xsr0bmt.xsr0bmt:not(#\#):not(#\#):not(#\#){transition-duration:0s,0s}.x12w9bfk.x12w9bfk:not(#\#):not(#\#):not(#\#){transition-duration:0s}.x4wkmsb.x4wkmsb:not(#\#):not(#\#):not(#\#){transition-property:none}}.x1anq1lc.x1anq1lc:active:where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){background-color:var(--color-overlay-pressed)}.xzmimnh.xzmimnh:active:where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){background-image:linear-gradient(var(--color-overlay-pressed),var(--color-overlay-pressed)),linear-gradient(var(--color-neutral),var(--color-neutral))}.x7uyq82.x7uyq82:active:where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){background-image:linear-gradient(var(--color-overlay-pressed),var(--color-overlay-pressed))}@media (hover:hover) and (forced-colors:none){.xcgwt1n.xcgwt1n.xcgwt1n:where(.x1iwu4tg:hover *):not(#\#):not(#\#):not(#\#){background-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.xcgwt1n.xcgwt1n.xcgwt1n:where(.x1iwu4tg:hover *):not(#\#):not(#\#):not(#\#){background-color:color-mix(in srgb,var(--color-accent),var(--color-tint-hover) 15%)}}}@media (hover:hover){.x17srpfb.x17srpfb.x17srpfb:where(.x1odsvnm:hover *):not(#\#):not(#\#):not(#\#){background-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.x17srpfb.x17srpfb.x17srpfb:where(.x1odsvnm:hover *):not(#\#):not(#\#):not(#\#){background-color:color-mix(in srgb,var(--color-accent),var(--color-tint-hover) 15%)}}}@media (hover:hover) and (forced-colors:none){.x1a8ae7b.x1a8ae7b.x1a8ae7b:where(.x1iwu4tg:hover *):not(#\#):not(#\#):not(#\#){background-color:var(--color-background-gray)}@supports (color:color-mix(in lab, red, red)){.x1a8ae7b.x1a8ae7b.x1a8ae7b:where(.x1iwu4tg:hover *):not(#\#):not(#\#):not(#\#){background-color:color-mix(in srgb,var(--color-background-gray),var(--color-tint-hover) 5%)}}}@media (hover:hover){.xeultfy.xeultfy.xeultfy:where(.x1odsvnm:hover *):not(#\#):not(#\#):not(#\#){background-color:var(--color-background-surface)}@supports (color:color-mix(in lab, red, red)){.xeultfy.xeultfy.xeultfy:where(.x1odsvnm:hover *):not(#\#):not(#\#):not(#\#){background-color:color-mix(in srgb,var(--color-background-surface),var(--color-tint-hover) 5%)}}.xqxnq6d.xqxnq6d.xqxnq6d:where(.x1odsvnm:hover *):not(#\#):not(#\#):not(#\#){background-color:var(--color-background-muted)}.x1pe4z86.x1pe4z86.x1pe4z86:where(.x-default-marker:hover *):not(#\#):not(#\#):not(#\#){background-color:var(--color-icon-primary)}.x1a1zr74.x1a1zr74.x1a1zr74:where(.x1u3b27q:hover *):not(#\#):not(#\#):not(#\#){background-color:var(--color-overlay-hover)}.x1t9gxa6.x1t9gxa6.x1t9gxa6:where(.x-default-marker:hover *):not(#\#):not(#\#):not(#\#){color:var(--color-text-primary)}.xcwhr9z.xcwhr9z.xcwhr9z:where(.x84s7jz:hover *):not(#\#):not(#\#):not(#\#){opacity:1}.x8ydxbz.x8ydxbz.x8ydxbz:where(.x84s7jz:hover *):not(#\#):not(#\#):not(#\#){pointer-events:auto}.x17hxqr7.x17hxqr7.x17hxqr7:where(.x84s7jz:hover *):not(#\#):not(#\#):not(#\#){transform:translateY(0)}.xneequu.xneequu.xneequu:where(.x84s7jz:hover *):not(#\#):not(#\#):not(#\#){visibility:visible}}@supports (animation-timeline:view()){@media (prefers-reduced-motion:reduce){.xk3h8ob.xk3h8ob.xk3h8ob:not(#\#):not(#\#):not(#\#){animation-name:xuvekqa-B}}}@media (hover:hover){.xvxo0qp.xvxo0qp.xvxo0qp:hover:where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){background-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.xvxo0qp.xvxo0qp.xvxo0qp:hover:where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){background-color:color-mix(in srgb,var(--color-accent),var(--color-tint-hover) 15%)}}.x1pfkqlk.x1pfkqlk.x1pfkqlk:hover:where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){background-color:#0000}.xcu6dpe.xcu6dpe.xcu6dpe:hover:where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){background-color:var(--color-neutral)}.x1912f9e.x1912f9e.x1912f9e:hover:where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#):after,.xoevpu5.xoevpu5.xoevpu5:hover:where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){background-color:var(--color-overlay-hover)}.xmvprkv.xmvprkv.xmvprkv:hover:where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){background-image:linear-gradient(var(--color-overlay-hover),var(--color-overlay-hover))}.x1bm8j9m.x1bm8j9m.x1bm8j9m:hover:where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){background-image:none}.x1telqz2.x1telqz2.x1telqz2:hover:not(:focus-within):where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){box-shadow:inset 0 0 0 2px var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.x1telqz2.x1telqz2.x1telqz2:hover:not(:focus-within):where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--color-accent) 20%,transparent)}}.x1v5wwkd.x1v5wwkd.x1v5wwkd:hover:where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){box-shadow:inset 0 0 0 2px var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.x1v5wwkd.x1v5wwkd.x1v5wwkd:hover:where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--color-accent) 20%,transparent)}}.x1xqjsvb.x1xqjsvb.x1xqjsvb:hover:not(:focus-within):where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){box-shadow:inset 0 0 0 2px var(--color-border-emphasized)}@supports (color:color-mix(in lab, red, red)){.x1xqjsvb.x1xqjsvb.x1xqjsvb:hover:not(:focus-within):where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--color-border-emphasized) 30%,transparent)}}.x1s17dad.x1s17dad.x1s17dad:hover:not(:focus-within):where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){box-shadow:none}.x1bgmis8.x1bgmis8.x1bgmis8:hover:not(:focus-within):where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){box-shadow:var(--shadow-inset-error)}.x8wp45d.x8wp45d.x8wp45d:hover:not(:focus-within):where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){box-shadow:var(--shadow-inset-success)}.x9156jc.x9156jc.x9156jc:hover:not(:focus-within):where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){box-shadow:var(--shadow-inset-warning)}.x1ymidup.x1ymidup.x1ymidup:hover:where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){box-shadow:var(--shadow-med)}.x1rfoswn.x1rfoswn.x1rfoswn:hover:where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){color:var(--color-text-accent)}@supports (color:color-mix(in lab, red, red)){.x1rfoswn.x1rfoswn.x1rfoswn:hover:where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){color:color-mix(in srgb,var(--color-text-accent),var(--color-tint-hover) 15%)}}.xcunlro.xcunlro.xcunlro:hover:where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){color:var(--color-text-primary)}@supports (color:color-mix(in lab, red, red)){.xcunlro.xcunlro.xcunlro:hover:where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){color:color-mix(in srgb,var(--color-text-primary),var(--color-tint-hover) 15%)}}.x7jm8ul.x7jm8ul.x7jm8ul:hover:where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){color:var(--color-text-secondary)}@supports (color:color-mix(in lab, red, red)){.x7jm8ul.x7jm8ul.x7jm8ul:hover:where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){color:color-mix(in srgb,var(--color-text-secondary),var(--color-tint-hover) 15%)}}.xo5jvnm.xo5jvnm.xo5jvnm:hover:where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){color:var(--color-text-primary)}}@container (width<=399px){.x1alyx8p.x1alyx8p:not(#\#):not(#\#):not(#\#){flex-wrap:wrap}}@media (forced-colors:active){.x1vo6n7o.x1vo6n7o:active:not(#\#):not(#\#):not(#\#){background-color:highlight}}@media (hover:hover){.x1otsd3y.x1otsd3y.x1otsd3y:hover:where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){background-image:linear-gradient(var(--color-overlay-hover),var(--color-overlay-hover)),linear-gradient(var(--color-neutral),var(--color-neutral))}.xprvw0a.xprvw0a.xprvw0a:active:where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){background-color:var(--color-overlay-pressed)}.xo3fi6e.xo3fi6e.xo3fi6e:active:where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){background-image:linear-gradient(var(--color-overlay-pressed),var(--color-overlay-pressed)),linear-gradient(var(--color-neutral),var(--color-neutral))}.xetgvay.xetgvay.xetgvay:active:where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){background-image:linear-gradient(var(--color-overlay-pressed),var(--color-overlay-pressed))}@media (forced-colors:active){.x1d42zcn.x1d42zcn.x1d42zcn.x1d42zcn:hover:where(:not(:disabled,[aria-disabled=true])):not(#\#):not(#\#):not(#\#){background-color:highlight}}}.xib2hle:not(#\#):not(#\#):not(#\#):not(#\#){border-bottom-color:var(--color-border-emphasized)}.xw8gpjh:not(#\#):not(#\#):not(#\#):not(#\#){border-bottom-color:var(--color-border)}.x1q0q8m5:not(#\#):not(#\#):not(#\#):not(#\#){border-bottom-style:solid}.xso031l:not(#\#):not(#\#):not(#\#):not(#\#){border-bottom-width:1px}.xlxy82:not(#\#):not(#\#):not(#\#):not(#\#){border-bottom-width:2px}.x92x3c3:not(#\#):not(#\#):not(#\#):not(#\#){border-bottom-width:var(--border-width)}.x1mly77v:not(#\#):not(#\#):not(#\#):not(#\#){border-top-color:var(--color-border-emphasized)}.x1pc3f07:not(#\#):not(#\#):not(#\#):not(#\#){border-top-color:var(--color-border)}.x11npmm7:not(#\#):not(#\#):not(#\#):not(#\#){border-top-color:var(--color-on-accent)}.x13fuv20:not(#\#):not(#\#):not(#\#):not(#\#){border-top-style:solid}.x178xt8z:not(#\#):not(#\#):not(#\#):not(#\#){border-top-width:1px}.x11xkdxz:not(#\#):not(#\#):not(#\#):not(#\#){border-top-width:var(--border-width)}.x1ey2m1c:not(#\#):not(#\#):not(#\#):not(#\#){bottom:0}.x1c7jfne:not(#\#):not(#\#):not(#\#):not(#\#){bottom:2px}.xyi47jn:not(#\#):not(#\#):not(#\#):not(#\#){bottom:var(--_tab-indicator-bottom,-1px)}.x112dmjn:not(#\#):not(#\#):not(#\#):not(#\#){bottom:var(--spacing-1)}.x1nqzi6q:not(#\#):not(#\#):not(#\#):not(#\#){bottom:var(--x-bottom)}.xvle69y:not(#\#):not(#\#):not(#\#):not(#\#){height:.75rem}.xqtp20y:not(#\#):not(#\#):not(#\#):not(#\#){height:0}.xmll18r:not(#\#):not(#\#):not(#\#):not(#\#){height:1.25rem}.xam5rvr:not(#\#):not(#\#):not(#\#):not(#\#){height:1.5rem}.x5yr21d:not(#\#):not(#\#):not(#\#):not(#\#){height:100%}.xtdtrs8:not(#\#):not(#\#):not(#\#):not(#\#){height:100dvh}.xpyat2d:not(#\#):not(#\#):not(#\#):not(#\#){height:100px}.x1dr59a3:not(#\#):not(#\#):not(#\#):not(#\#){height:100vh}.x170jfvy:not(#\#):not(#\#):not(#\#):not(#\#){height:10px}.x1wkxgih:not(#\#):not(#\#):not(#\#):not(#\#){height:120px}.x1kpxq89:not(#\#):not(#\#):not(#\#):not(#\#){height:12px}.xhjk10j:not(#\#):not(#\#):not(#\#):not(#\#){height:140px}.x1v9usgg:not(#\#):not(#\#):not(#\#):not(#\#){height:14px}.x1ymw6g:not(#\#):not(#\#):not(#\#):not(#\#){height:160px}.xlup9mm:not(#\#):not(#\#):not(#\#):not(#\#){height:16px}.xmix8c7:not(#\#):not(#\#):not(#\#):not(#\#){height:18px}.xlzyvqe:not(#\#):not(#\#):not(#\#):not(#\#){height:1em}.xjm9jq1:not(#\#):not(#\#):not(#\#):not(#\#){height:1px}.x1l36t39:not(#\#):not(#\#):not(#\#):not(#\#){height:1rem}.x1qx5ct2:not(#\#):not(#\#):not(#\#):not(#\#){height:20px}.xxk0z11:not(#\#):not(#\#):not(#\#):not(#\#){height:24px}.x1fgtraw:not(#\#):not(#\#):not(#\#):not(#\#){height:28px}.x36qwtl:not(#\#):not(#\#):not(#\#):not(#\#){height:2px}.x10w6t97:not(#\#):not(#\#):not(#\#):not(#\#){height:32px}.xuoj239:not(#\#):not(#\#):not(#\#):not(#\#){height:3px}.x1vqgdyp:not(#\#):not(#\#):not(#\#):not(#\#){height:40px}.xsdox4t:not(#\#):not(#\#):not(#\#):not(#\#){height:48px}.xqu0tyb:not(#\#):not(#\#):not(#\#):not(#\#){height:4px}.xols6we:not(#\#):not(#\#):not(#\#):not(#\#){height:6px}.xwzfr38:not(#\#):not(#\#):not(#\#):not(#\#){height:80px}.xdk7pt:not(#\#):not(#\#):not(#\#):not(#\#){height:8px}.x1qjb5ga:not(#\#):not(#\#):not(#\#):not(#\#){height:anchor-size(--outline-active height,0px)}.xt7dq6l:not(#\#):not(#\#):not(#\#):not(#\#){height:auto}.xuk38ov:not(#\#):not(#\#):not(#\#):not(#\#){height:calc(100% - var(--tree-list-row-gap,0px) / 2)}.xs02d24:not(#\#):not(#\#):not(#\#):not(#\#){height:calc(100% + 1px)}.x12qplqi:not(#\#):not(#\#):not(#\#):not(#\#){height:calc(100% + var(--container-padding-block-start,0px) + var(--container-padding-block-end,0px))}.xpa73km:not(#\#):not(#\#):not(#\#):not(#\#){height:calc(100dvh - var(--_app-shell-header-height,0px))}.x1oglpa6:not(#\#):not(#\#):not(#\#):not(#\#){height:calc(max(1rem,var(--text-body-size)) * var(--text-body-leading));height:1lh}.x1tpcejd:not(#\#):not(#\#):not(#\#):not(#\#){height:calc(var(--_sheet-budget) + 48px)}.x1uiybsj:not(#\#):not(#\#):not(#\#):not(#\#){height:calc(var(--size-element-lg) - 4px)}.x102lyln:not(#\#):not(#\#):not(#\#):not(#\#){height:calc(var(--size-element-lg) - 8px)}.x184gfjb:not(#\#):not(#\#):not(#\#):not(#\#){height:calc(var(--size-element-md) - 4px)}.xrmxcn7:not(#\#):not(#\#):not(#\#):not(#\#){height:calc(var(--size-element-md) - 8px)}.x1u5rhrp:not(#\#):not(#\#):not(#\#):not(#\#){height:calc(var(--size-element-md) + var(--spacing-1))}.xzj98nu:not(#\#):not(#\#):not(#\#):not(#\#){height:calc(var(--size-element-sm) - 4px)}.xzydfjl:not(#\#):not(#\#):not(#\#):not(#\#){height:calc(var(--size-element-sm) - 8px)}.x1q370uo:not(#\#):not(#\#):not(#\#):not(#\#){height:calc(var(--text-body-size) * var(--text-body-leading))}.x14o5nre:not(#\#):not(#\#):not(#\#):not(#\#){height:calc(var(--text-supporting-size) * var(--text-supporting-leading))}.xw1wawg:not(#\#):not(#\#):not(#\#):not(#\#){height:36px}.xg7h5cd:not(#\#):not(#\#):not(#\#):not(#\#){height:fit-content}.xhovv34:not(#\#):not(#\#):not(#\#):not(#\#){height:var(--_progressbar-mark-height,8px)}.xsyqizj:not(#\#):not(#\#):not(#\#):not(#\#){height:var(--border-width)}.x5kfih4:not(#\#):not(#\#):not(#\#):not(#\#){height:var(--resize-handle-hit-area,16px)}.xssyfek:not(#\#):not(#\#):not(#\#):not(#\#){height:var(--size-element-lg)}.x1ueg155:not(#\#):not(#\#):not(#\#):not(#\#){height:var(--size-element-md)}.x6k0iem:not(#\#):not(#\#):not(#\#):not(#\#){height:var(--size-element-sm)}.x1b2l0oc:not(#\#):not(#\#):not(#\#):not(#\#){height:var(--spacing-0-5)}.xcenk2v:not(#\#):not(#\#):not(#\#):not(#\#){height:var(--spacing-1-5)}.x11c6zpc:not(#\#):not(#\#):not(#\#):not(#\#){height:var(--spacing-1)}.x1k15mir:not(#\#):not(#\#):not(#\#):not(#\#){height:var(--spacing-12)}.xoqw5ej:not(#\#):not(#\#):not(#\#):not(#\#){height:var(--spacing-2)}.x9gl9lo:not(#\#):not(#\#):not(#\#):not(#\#){height:var(--spacing-3)}.x6b6gus:not(#\#):not(#\#):not(#\#):not(#\#){height:var(--spacing-4)}.x1grt7ep:not(#\#):not(#\#):not(#\#):not(#\#){height:var(--spacing-5)}.xvpftlf:not(#\#):not(#\#):not(#\#):not(#\#){height:var(--spacing-6)}.x18to7ep:not(#\#):not(#\#):not(#\#):not(#\#){height:var(--spacing-8)}.x1w0ack5:not(#\#):not(#\#):not(#\#):not(#\#){height:var(--table-resize-height,100%)}.x1seg80s:not(#\#):not(#\#):not(#\#):not(#\#){height:var(--text-large-size)}.x15rwvks:not(#\#):not(#\#):not(#\#):not(#\#){height:var(--text-supporting-size)}.x16ye13r:not(#\#):not(#\#):not(#\#):not(#\#){height:var(--x-height)}.xm8gem:not(#\#):not(#\#):not(#\#):not(#\#){height:264px}.x6hpsvf:not(#\#):not(#\#):not(#\#):not(#\#){height:28px}.x1nrll8i:not(#\#):not(#\#):not(#\#):not(#\#){left:50%}.x1jyxor1:not(#\#):not(#\#):not(#\#):not(#\#){margin-bottom:-1px}.x1if0o47:not(#\#):not(#\#):not(#\#):not(#\#){margin-bottom:-48px}.xat24cr:not(#\#):not(#\#):not(#\#):not(#\#){margin-bottom:0}.xlgak1e:not(#\#):not(#\#):not(#\#):not(#\#){margin-bottom:calc(-1 * (max(var(--_tab-strip-bleed),calc(-1 * var(--_tab-indicator-bottom,-1px)))))}.x1z0f2p2:not(#\#):not(#\#):not(#\#):not(#\#){margin-bottom:calc(-1 * var(--_chat-composer-radius))}.x13i4uq0:not(#\#):not(#\#):not(#\#):not(#\#){margin-bottom:calc(-1 * var(--astryx-number-input-padding-block-end,var(--astryx-number-input-padding,var(--spacing-1))))}.x6h7pi7:not(#\#):not(#\#):not(#\#):not(#\#){margin-bottom:calc(-1 * var(--container-padding-block-end,0px))}.x1cdrix3:not(#\#):not(#\#):not(#\#):not(#\#){margin-bottom:calc(-1 * var(--radius-chat))}.xdrfirk:not(#\#):not(#\#):not(#\#):not(#\#){margin-bottom:calc(-1 * var(--spacing-1-5))}.xlstkdb:not(#\#):not(#\#):not(#\#):not(#\#){margin-bottom:var(--spacing-0-5)}.x14cgwvg:not(#\#):not(#\#):not(#\#):not(#\#){margin-bottom:var(--spacing-1)}.x1p37lm5:not(#\#):not(#\#):not(#\#):not(#\#){margin-bottom:var(--spacing-2)}.xep27e5:not(#\#):not(#\#):not(#\#):not(#\#){margin-bottom:var(--spacing-3)}.xwh1t77:not(#\#):not(#\#):not(#\#):not(#\#){margin-bottom:var(--spacing-4)}.x4d5cxa:not(#\#):not(#\#):not(#\#):not(#\#){margin-bottom:var(--spacing-6)}.xlm3tn6:not(#\#):not(#\#):not(#\#):not(#\#){margin-bottom:var(--x-marginBlockEnd)}.xdj266r:not(#\#):not(#\#):not(#\#):not(#\#){margin-top:0}.xr1yuqi:not(#\#):not(#\#):not(#\#):not(#\#){margin-top:auto}.xmqyaqf:not(#\#):not(#\#):not(#\#):not(#\#){margin-top:calc(-1 * (var(--_tab-strip-bleed)))}.xvyqdj1:not(#\#):not(#\#):not(#\#):not(#\#){margin-top:calc(-1 * anchor-size(height) - 8px)}.xckg3cf:not(#\#):not(#\#):not(#\#):not(#\#){margin-top:calc(-1 * var(--_chat-composer-radius))}.x5j3pgv:not(#\#):not(#\#):not(#\#):not(#\#){margin-top:calc(-1 * var(--astryx-number-input-padding-block-start,var(--astryx-number-input-padding,var(--spacing-1))))}.x1sa9bsh:not(#\#):not(#\#):not(#\#):not(#\#){margin-top:calc(-1 * var(--container-padding-block-start,0px))}.x1c40v9y:not(#\#):not(#\#):not(#\#):not(#\#){margin-top:calc(-1 * var(--spacing-1-5))}.x1ajqlyv:not(#\#):not(#\#):not(#\#):not(#\#){margin-top:calc(-1 * var(--spacing-2))}.x1233pnv:not(#\#):not(#\#):not(#\#):not(#\#){margin-top:calc((1em * var(--text-body-leading) - 6px) / 2)}.xjc2qm6:not(#\#):not(#\#):not(#\#):not(#\#){margin-top:var(--spacing-0-5)}.xcsaf9d:not(#\#):not(#\#):not(#\#):not(#\#){margin-top:var(--spacing-1)}.xtbrsbv:not(#\#):not(#\#):not(#\#):not(#\#){margin-top:var(--spacing-2)}.xj6sv8s:not(#\#):not(#\#):not(#\#):not(#\#){margin-top:var(--spacing-3)}.x1s1qpeq:not(#\#):not(#\#):not(#\#):not(#\#){margin-top:var(--spacing-4)}.x13rv44w:not(#\#):not(#\#):not(#\#):not(#\#){margin-top:var(--spacing-6)}.x1vhfslr:not(#\#):not(#\#):not(#\#):not(#\#){margin-top:var(--x-marginBlockStart)}.xmz0i5r:not(#\#):not(#\#):not(#\#):not(#\#){max-height:100%}.x1wj9ous:not(#\#):not(#\#):not(#\#):not(#\#){max-height:100dvh}.x18s7i0i:not(#\#):not(#\#):not(#\#):not(#\#){max-height:176px}.x1xiyphd:not(#\#):not(#\#):not(#\#):not(#\#){max-height:240px}.xuyqlj2:not(#\#):not(#\#):not(#\#):not(#\#){max-height:300px}.xbhvqqn:not(#\#):not(#\#):not(#\#):not(#\#){max-height:calc(100% - var(--spacing-3))}.x14bu9tk:not(#\#):not(#\#):not(#\#):not(#\#){max-height:calc(92dvh + 48px)}.xpnbb6b:not(#\#):not(#\#):not(#\#):not(#\#){max-height:min(480px,100vh - 32px)}.x7ab17h:not(#\#):not(#\#):not(#\#):not(#\#){max-height:none}.xenllk4:not(#\#):not(#\#):not(#\#):not(#\#){max-height:var(--container-max-height,none)}.x1jols5v:not(#\#):not(#\#):not(#\#):not(#\#){max-height:var(--x-maxHeight)}.x1m189uc:not(#\#):not(#\#):not(#\#):not(#\#){max-width:0}.x193iq5w:not(#\#):not(#\#):not(#\#):not(#\#){max-width:100%}.xlbgzzq:not(#\#):not(#\#):not(#\#):not(#\#){max-width:100dvw}.x55n99s:not(#\#):not(#\#):not(#\#):not(#\#){max-width:15em}.x1ncir08:not(#\#):not(#\#):not(#\#):not(#\#){max-width:200px}.xw5ewwj:not(#\#):not(#\#):not(#\#):not(#\#){max-width:300px}.x1x67gh:not(#\#):not(#\#):not(#\#):not(#\#){max-width:32px}.xxc7z9f:not(#\#):not(#\#):not(#\#):not(#\#){max-width:360px}.x1j9u4d2:not(#\#):not(#\#):not(#\#):not(#\#){max-width:400px}.x17fpy1y:not(#\#):not(#\#):not(#\#):not(#\#){max-width:480px}.xrlsmeg:not(#\#):not(#\#):not(#\#):not(#\#){max-width:600px}.x11gisft:not(#\#):not(#\#):not(#\#):not(#\#){max-width:640px}.x1ap80js:not(#\#):not(#\#):not(#\#):not(#\#){max-width:800px}.xq8v1hd:not(#\#):not(#\#):not(#\#):not(#\#){max-width:90%}.xl6temz:not(#\#):not(#\#):not(#\#):not(#\#){max-width:max(80%,280px)}.x1m1aaou:not(#\#):not(#\#):not(#\#):not(#\#){max-width:min(960px,calc(100dvw - var(--spacing-4)))}.x1x1rfll:not(#\#):not(#\#):not(#\#):not(#\#){max-width:none}.xjl2t3p:not(#\#):not(#\#):not(#\#):not(#\#){max-width:var(--layout-content-width,none)}.xf68679:not(#\#):not(#\#):not(#\#):not(#\#){max-width:var(--x-maxWidth)}.x2lwn1j:not(#\#):not(#\#):not(#\#):not(#\#){min-height:0}.x1us19tq:not(#\#):not(#\#):not(#\#):not(#\#){min-height:100%}.x1ov3xa9:not(#\#):not(#\#):not(#\#):not(#\#){min-height:100dvh}.xz65tgg:not(#\#):not(#\#):not(#\#):not(#\#){min-height:200px}.xisnujt:not(#\#):not(#\#):not(#\#):not(#\#){min-height:20px}.xe0957l:not(#\#):not(#\#):not(#\#):not(#\#){min-height:22px}.xjwf9q1:not(#\#):not(#\#):not(#\#):not(#\#){min-height:24px}.xe0p6wg:not(#\#):not(#\#):not(#\#):not(#\#){min-height:28px}.x21xpn4:not(#\#):not(#\#):not(#\#):not(#\#){min-height:32px}.x1xf4nls:not(#\#):not(#\#):not(#\#):not(#\#){min-height:var(--size-element-lg)}.x1uogy3y:not(#\#):not(#\#):not(#\#):not(#\#){min-height:var(--size-element-md)}.x1gdqauq:not(#\#):not(#\#):not(#\#):not(#\#){min-height:var(--size-element-sm)}.x175cymr:not(#\#):not(#\#):not(#\#):not(#\#){min-height:var(--spacing-2)}.ximsjs8:not(#\#):not(#\#):not(#\#):not(#\#){min-height:var(--spacing-7)}.xkoleio:not(#\#):not(#\#):not(#\#):not(#\#){min-height:var(--spacing-8)}.x82snj4:not(#\#):not(#\#):not(#\#):not(#\#){min-height:var(--x-minHeight)}.x1dg37ty:not(#\#):not(#\#):not(#\#):not(#\#){min-height:44px}.xeuugli:not(#\#):not(#\#):not(#\#):not(#\#){min-width:0}.x1i9suas:not(#\#):not(#\#):not(#\#):not(#\#){min-width:120px}.x1d77m7x:not(#\#):not(#\#):not(#\#):not(#\#){min-width:140px}.x5w4yej:not(#\#):not(#\#):not(#\#):not(#\#){min-width:160px}.xfb3i0g:not(#\#):not(#\#):not(#\#):not(#\#){min-width:180px}.xgomdpo:not(#\#):not(#\#):not(#\#):not(#\#){min-width:1rem}.x1jzhcrs:not(#\#):not(#\#):not(#\#):not(#\#){min-width:200px}.xt4ypqs:not(#\#):not(#\#):not(#\#):not(#\#){min-width:20px}.x12rczxh:not(#\#):not(#\#):not(#\#):not(#\#){min-width:220px}.xlm99nl:not(#\#):not(#\#):not(#\#):not(#\#){min-width:240px}.x1u2d2a2:not(#\#):not(#\#):not(#\#):not(#\#){min-width:280px}.x1fns5xo:not(#\#):not(#\#):not(#\#):not(#\#){min-width:40px}.x900493:not(#\#):not(#\#):not(#\#):not(#\#){min-width:48px}.x13n9wmd:not(#\#):not(#\#):not(#\#):not(#\#){min-width:4ch}.xfvyar9:not(#\#):not(#\#):not(#\#):not(#\#){min-width:60px}.xrzjruh:not(#\#):not(#\#):not(#\#):not(#\#){min-width:anchor-size(width)}.x8wyhu6:not(#\#):not(#\#):not(#\#):not(#\#){min-width:calc(anchor-size(width) + 16px)}.x1pshirs:not(#\#):not(#\#):not(#\#):not(#\#){min-width:fit-content}.x15mybvi:not(#\#):not(#\#):not(#\#):not(#\#){min-width:min(400px,calc(100% - var(--spacing-4)))}.x17ydmr0:not(#\#):not(#\#):not(#\#):not(#\#){min-width:var(--size-element-md)}.x1nkkqge:not(#\#):not(#\#):not(#\#):not(#\#){min-width:var(--size-element-sm)}.x18ki04u:not(#\#):not(#\#):not(#\#):not(#\#){min-width:var(--spacing-2)}.x16asifk:not(#\#):not(#\#):not(#\#):not(#\#){min-width:var(--spacing-5)}.xy8csz5:not(#\#):not(#\#):not(#\#):not(#\#){min-width:var(--spacing-7)}.xkj4a21:not(#\#):not(#\#):not(#\#):not(#\#){min-width:var(--x-minWidth)}.x1tutbut:not(#\#):not(#\#):not(#\#):not(#\#){min-width:44px}.xw2csxc:not(#\#):not(#\#):not(#\#):not(#\#){overflow-x:auto}.x6ikm8r:not(#\#):not(#\#):not(#\#):not(#\#){overflow-x:hidden}.x1odjw0f:not(#\#):not(#\#):not(#\#):not(#\#){overflow-y:auto}.x10wlt62:not(#\#):not(#\#):not(#\#):not(#\#){overflow-y:hidden}.x7p5m3t:not(#\#):not(#\#):not(#\#):not(#\#){overscroll-behavior-x:contain}.x18d9i69:not(#\#):not(#\#):not(#\#):not(#\#){padding-bottom:0}.x1j85h84:not(#\#):not(#\#):not(#\#):not(#\#){padding-bottom:1px}.x1wkw6tp:not(#\#):not(#\#):not(#\#):not(#\#){padding-bottom:calc(env(safe-area-inset-bottom,0px) + 48px)}.x9jihrk:not(#\#):not(#\#):not(#\#):not(#\#){padding-bottom:calc(var(--_chat-composer-padding) + var(--_chat-composer-radius))}.xbv1mwh:not(#\#):not(#\#):not(#\#):not(#\#){padding-bottom:calc(var(--container-padding-block-end) - var(--border-width))}.xxbfulo:not(#\#):not(#\#):not(#\#):not(#\#){padding-bottom:calc(var(--spacing-3) + var(--radius-chat))}.xwhchk8:not(#\#):not(#\#):not(#\#):not(#\#){padding-bottom:max(var(--_tab-strip-bleed),calc(-1 * var(--_tab-indicator-bottom,-1px)))}.xew4nw4:not(#\#):not(#\#):not(#\#):not(#\#){padding-bottom:max(var(--spacing-4),env(safe-area-inset-bottom,0px))}.xvpcij2:not(#\#):not(#\#):not(#\#):not(#\#){padding-bottom:var(--_chat-composer-padding)}.x1rgxemn:not(#\#):not(#\#):not(#\#):not(#\#){padding-bottom:var(--astryx-dialog-padding-block-end,var(--astryx-dialog-padding,max(var(--spacing-4),env(safe-area-inset-bottom,0px))))}.x3jnfsm:not(#\#):not(#\#):not(#\#):not(#\#){padding-bottom:var(--astryx-number-input-padding-block-end,var(--astryx-number-input-padding,var(--spacing-1)))}.xc1wllq:not(#\#):not(#\#):not(#\#):not(#\#){padding-bottom:var(--container-padding-block-end)}.xg476vw:not(#\#):not(#\#):not(#\#):not(#\#){padding-bottom:var(--layout-padding-inner-y,var(--spacing-4))}.xon7vh3:not(#\#):not(#\#):not(#\#):not(#\#){padding-bottom:var(--layout-padding-outer-y,var(--spacing-4))}.xij103a:not(#\#):not(#\#):not(#\#):not(#\#){padding-bottom:var(--spacing-0-5)}.x1l20ajd:not(#\#):not(#\#):not(#\#):not(#\#){padding-bottom:var(--spacing-0)}.x1opdxmq:not(#\#):not(#\#):not(#\#):not(#\#){padding-bottom:var(--spacing-1-5)}.xy143xn:not(#\#):not(#\#):not(#\#):not(#\#){padding-bottom:var(--spacing-1)}.x2izi54:not(#\#):not(#\#):not(#\#):not(#\#){padding-bottom:var(--spacing-10)}.x1wesfrj:not(#\#):not(#\#):not(#\#):not(#\#){padding-bottom:var(--spacing-2)}.xvmdzux:not(#\#):not(#\#):not(#\#):not(#\#){padding-bottom:var(--spacing-3)}.x1awphl8:not(#\#):not(#\#):not(#\#):not(#\#){padding-bottom:var(--spacing-4)}.x1hk98q:not(#\#):not(#\#):not(#\#):not(#\#){padding-bottom:var(--spacing-5)}.xjpqqx5:not(#\#):not(#\#):not(#\#):not(#\#){padding-bottom:var(--spacing-6)}.xekm6fs:not(#\#):not(#\#):not(#\#):not(#\#){padding-bottom:var(--spacing-7)}.x2oz4g1:not(#\#):not(#\#):not(#\#):not(#\#){padding-bottom:var(--spacing-8)}.xexx8yu:not(#\#):not(#\#):not(#\#):not(#\#){padding-top:0}.x1htvmrp:not(#\#):not(#\#):not(#\#):not(#\#){padding-top:calc(var(--_chat-composer-padding) + var(--_chat-composer-radius))}.x1enrzb7:not(#\#):not(#\#):not(#\#):not(#\#){padding-top:calc(var(--border-width) + var(--spacing-1))}.x1nex4ik:not(#\#):not(#\#):not(#\#):not(#\#){padding-top:calc(var(--container-padding-block-start) - var(--border-width))}.x1ak3mig:not(#\#):not(#\#):not(#\#):not(#\#){padding-top:calc(var(--spacing-1-5) + var(--spacing-2))}.x1vjezoa:not(#\#):not(#\#):not(#\#):not(#\#){padding-top:max(var(--spacing-4),env(safe-area-inset-top,0px))}.x2gtn7z:not(#\#):not(#\#):not(#\#):not(#\#){padding-top:var(--_chat-composer-padding)}.xlr2r7p:not(#\#):not(#\#):not(#\#):not(#\#){padding-top:var(--_tab-strip-bleed)}.x15ld1ci:not(#\#):not(#\#):not(#\#):not(#\#){padding-top:var(--astryx-dialog-padding-block-start,var(--astryx-dialog-padding,max(var(--spacing-4),env(safe-area-inset-top,0px))))}.x4kswst:not(#\#):not(#\#):not(#\#):not(#\#){padding-top:var(--astryx-number-input-padding-block-start,var(--astryx-number-input-padding,var(--spacing-1)))}.x14m0hsi:not(#\#):not(#\#):not(#\#):not(#\#){padding-top:var(--container-padding-block-start)}.xqty4a:not(#\#):not(#\#):not(#\#):not(#\#){padding-top:var(--layout-padding-inner-y,var(--spacing-4))}.x81pis9:not(#\#):not(#\#):not(#\#):not(#\#){padding-top:var(--layout-padding-outer-y,var(--spacing-4))}.xbx876j:not(#\#):not(#\#):not(#\#):not(#\#){padding-top:var(--spacing-0-5)}.x1ydh6w3:not(#\#):not(#\#):not(#\#):not(#\#){padding-top:var(--spacing-0)}.x1kwdpsa:not(#\#):not(#\#):not(#\#):not(#\#){padding-top:var(--spacing-1-5)}.xfsso4q:not(#\#):not(#\#):not(#\#):not(#\#){padding-top:var(--spacing-1)}.xk6660b:not(#\#):not(#\#):not(#\#):not(#\#){padding-top:var(--spacing-10)}.x1xye8es:not(#\#):not(#\#):not(#\#):not(#\#){padding-top:var(--spacing-2)}.x1vlblms:not(#\#):not(#\#):not(#\#):not(#\#){padding-top:var(--spacing-3)}.x1oa1p4a:not(#\#):not(#\#):not(#\#):not(#\#){padding-top:var(--spacing-4)}.xx7rijo:not(#\#):not(#\#):not(#\#):not(#\#){padding-top:var(--spacing-5)}.x1adxfkp:not(#\#):not(#\#):not(#\#):not(#\#){padding-top:var(--spacing-6)}.xoxd1wu:not(#\#):not(#\#):not(#\#):not(#\#){padding-top:var(--spacing-8)}.x13vifvy:not(#\#):not(#\#):not(#\#):not(#\#){top:0}.xuivejd:not(#\#):not(#\#):not(#\#):not(#\#){top:14px}.xs7f9wi:not(#\#):not(#\#):not(#\#):not(#\#){top:2px}.xwa60dl:not(#\#):not(#\#):not(#\#):not(#\#){top:50%}.x1ltwjim:not(#\#):not(#\#):not(#\#):not(#\#){top:anchor(--outline-active top,0px)}.x1nzz77m:not(#\#):not(#\#):not(#\#):not(#\#){top:calc((var(--size-element-md) - 20px) / 2 - 1px)}.xeqxqpg:not(#\#):not(#\#):not(#\#):not(#\#){top:calc((var(--size-element-sm) - 20px) / 2 - 1px)}.x7rbydg:not(#\#):not(#\#):not(#\#):not(#\#){top:calc(50% - 14px)}.x1oysc8t:not(#\#):not(#\#):not(#\#):not(#\#){top:calc(var(--size-element-lg) / 2 - 1px)}.xkmsrut:not(#\#):not(#\#):not(#\#):not(#\#){top:calc(var(--size-element-md) / 2 - 1px)}.x1968x6z:not(#\#):not(#\#):not(#\#):not(#\#){top:calc(var(--size-element-sm) / 2 - 1px)}.xht72ud:not(#\#):not(#\#):not(#\#):not(#\#){top:var(--_app-shell-header-height,0px)}.x8d4r5l:not(#\#):not(#\#):not(#\#):not(#\#){top:var(--spacing-1)}.xctzyg:not(#\#):not(#\#):not(#\#):not(#\#){top:var(--spacing-2)}.xyx6v2t:not(#\#):not(#\#):not(#\#):not(#\#){top:var(--spacing-3)}.xjbys53:not(#\#):not(#\#):not(#\#):not(#\#){top:var(--x-top)}.x1jw3ynk:not(#\#):not(#\#):not(#\#):not(#\#){width:.75rem}.xnalus7:not(#\#):not(#\#):not(#\#):not(#\#){width:0}.xwqq7k2:not(#\#):not(#\#):not(#\#):not(#\#){width:1.25rem}.xp8d6y2:not(#\#):not(#\#):not(#\#):not(#\#){width:1.5rem}.xh8yej3:not(#\#):not(#\#):not(#\#):not(#\#){width:100%}.x1o6l61p:not(#\#):not(#\#):not(#\#):not(#\#){width:100dvw}.xn9wirt:not(#\#):not(#\#):not(#\#):not(#\#){width:100vw}.x1fsd2vl:not(#\#):not(#\#):not(#\#):not(#\#){width:10px}.xsmyaan:not(#\#):not(#\#):not(#\#):not(#\#){width:12px}.x6jxa94:not(#\#):not(#\#):not(#\#):not(#\#){width:14px}.x1kky2od:not(#\#):not(#\#):not(#\#):not(#\#){width:16px}.xzjbwwf:not(#\#):not(#\#):not(#\#):not(#\#){width:180px}.x1xp8n7a:not(#\#):not(#\#):not(#\#):not(#\#){width:18px}.x15vhz18:not(#\#):not(#\#):not(#\#):not(#\#){width:1em}.x1i1rx1s:not(#\#):not(#\#):not(#\#):not(#\#){width:1px}.xcdlrvm:not(#\#):not(#\#):not(#\#):not(#\#){width:1rem}.x1oysuqx:not(#\#):not(#\#):not(#\#):not(#\#){width:200px}.xw4jnvo:not(#\#):not(#\#):not(#\#):not(#\#){width:20px}.xafpxmx:not(#\#):not(#\#):not(#\#):not(#\#){width:240px}.xvy4d1p:not(#\#):not(#\#):not(#\#):not(#\#){width:24px}.x1hfn5x7:not(#\#):not(#\#):not(#\#):not(#\#){width:260px}.xfo62xy:not(#\#):not(#\#):not(#\#):not(#\#){width:2px}.x1td3qas:not(#\#):not(#\#):not(#\#):not(#\#){width:32px}.x1g8rjiy:not(#\#):not(#\#):not(#\#):not(#\#){width:3px}.xz84dc7:not(#\#):not(#\#):not(#\#):not(#\#){width:40%}.x1l2rt3b:not(#\#):not(#\#):not(#\#):not(#\#){width:400px}.x100vrsf:not(#\#):not(#\#):not(#\#):not(#\#){width:40px}.x51ohtg:not(#\#):not(#\#):not(#\#):not(#\#){width:4px}.x1fu8urw:not(#\#):not(#\#):not(#\#):not(#\#){width:64px}.x1v4s8kt:not(#\#):not(#\#):not(#\#):not(#\#){width:6px}.x1xc55vz:not(#\#):not(#\#):not(#\#):not(#\#){width:8px}.x1xgy17j:not(#\#):not(#\#):not(#\#):not(#\#){width:anchor-size(width)}.x14atkfc:not(#\#):not(#\#):not(#\#):not(#\#){width:auto}.xx6qvi6:not(#\#):not(#\#):not(#\#):not(#\#){width:calc(100% + var(--container-padding-inline-start,0px) + var(--container-padding-inline-end,0px))}.x1y2t9nm:not(#\#):not(#\#):not(#\#):not(#\#){width:36px}.xeq5yr9:not(#\#):not(#\#):not(#\#):not(#\#){width:fit-content}.x63cpjl:not(#\#):not(#\#):not(#\#):not(#\#){width:var(--_progressbar-mark-width,2px)}.xjk4fl7:not(#\#):not(#\#):not(#\#):not(#\#){width:var(--border-width)}.xkhob8h:not(#\#):not(#\#):not(#\#):not(#\#){width:var(--resize-handle-hit-area,16px)}.x1m747yf:not(#\#):not(#\#):not(#\#):not(#\#){width:var(--size-element-lg)}.x805d0l:not(#\#):not(#\#):not(#\#):not(#\#){width:var(--size-element-md)}.x1fvqzum:not(#\#):not(#\#):not(#\#):not(#\#){width:var(--size-element-sm)}.x1wu31ai:not(#\#):not(#\#):not(#\#):not(#\#){width:var(--spacing-1-5)}.xx9zwd3:not(#\#):not(#\#):not(#\#):not(#\#){width:var(--spacing-1)}.xhgvbfk:not(#\#):not(#\#):not(#\#):not(#\#){width:var(--spacing-12)}.x1f0dxl5:not(#\#):not(#\#):not(#\#):not(#\#){width:var(--spacing-2)}.x1ad1g3v:not(#\#):not(#\#):not(#\#):not(#\#){width:var(--spacing-3)}.x12xnipv:not(#\#):not(#\#):not(#\#):not(#\#){width:var(--spacing-4)}.xfyiiit:not(#\#):not(#\#):not(#\#):not(#\#){width:var(--spacing-5)}.x1mtvzj0:not(#\#):not(#\#):not(#\#):not(#\#){width:var(--spacing-6)}.xgc8j7m:not(#\#):not(#\#):not(#\#):not(#\#){width:var(--spacing-8)}.xta46cu:not(#\#):not(#\#):not(#\#):not(#\#){width:var(--text-large-size)}.x5livx5:not(#\#):not(#\#):not(#\#):not(#\#){width:var(--text-supporting-size)}.x1uyokj7:not(#\#):not(#\#):not(#\#):not(#\#){width:var(--x-inlineSize)}.x5lhr3w:not(#\#):not(#\#):not(#\#):not(#\#){width:var(--x-width)}.x1wp2rvj.x1wp2rvj:where(.x139im0d:last-child *):not(#\#):not(#\#):not(#\#):not(#\#){border-bottom-width:0}.x132qfvm:focus-within:not(#\#):not(#\#):not(#\#):not(#\#){height:auto}.xsg11nj.xsg11nj:where(.x-default-marker:has(>.astryx-layout-footer:not([data-divider])) *):not(#\#):not(#\#):not(#\#):not(#\#){padding-bottom:0}.x1ioh5az.x1ioh5az:where(.x-default-marker:has(>.astryx-layout-header:not([data-divider])) *):not(#\#):not(#\#):not(#\#):not(#\#){padding-top:0}.x1kw28su:focus-within:not(#\#):not(#\#):not(#\#):not(#\#){padding-top:var(--spacing-1)}.x10okhzq:focus-within:not(#\#):not(#\#):not(#\#):not(#\#){width:auto}.x5du68j:has(~* [data-chat-name]):not(#\#):not(#\#):not(#\#):not(#\#){margin-top:var(--spacing-5)}.x1d9v4yf:first-child:not(#\#):not(#\#):not(#\#):not(#\#){border-top-style:none}.x1g31smg:first-child:not(#\#):not(#\#):not(#\#):not(#\#){border-top-width:0}.xkibk3:first-child:not(#\#):not(#\#):not(#\#):not(#\#){margin-top:calc(-1 * var(--container-padding-block-start,0px))}.x1vjq31q:first-child:not(#\#):not(#\#):not(#\#):not(#\#){padding-bottom:0}.xlayyun:last-child:not(#\#):not(#\#):not(#\#):not(#\#){margin-bottom:calc(-1 * var(--container-padding-block-end,0px))}.xup0pd7:last-child:not(#\#):not(#\#):not(#\#):not(#\#){padding-bottom:0}.x15cytp8:focus:not(#\#):not(#\#):not(#\#):not(#\#){height:auto}.x1rw3289:focus:not(#\#):not(#\#):not(#\#):not(#\#){top:var(--spacing-2)}.x1jqxupm:focus:not(#\#):not(#\#):not(#\#):not(#\#){width:auto}@media (pointer:coarse){.x80b3aj.x80b3aj:not(#\#):not(#\#):not(#\#):not(#\#){min-height:24px}.x17aqpur.x17aqpur:not(#\#):not(#\#):not(#\#):not(#\#),.xygd9yz.xygd9yz:not(#\#):not(#\#):not(#\#):not(#\#){min-height:44px}.xkagaj0.xkagaj0:not(#\#):not(#\#):not(#\#):not(#\#){min-width:24px}.x1xrq5m.x1xrq5m:not(#\#):not(#\#):not(#\#):not(#\#),.xngvp7v.xngvp7v:not(#\#):not(#\#):not(#\#):not(#\#){min-width:44px}.xijlfn0.xijlfn0:not(#\#):not(#\#):not(#\#):not(#\#){top:50%}}@starting-style{.x1sopeo2.x1sopeo2:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#){grid-template-rows:0fr}}.x1xsm0q9:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{inset:-14px}.xarstr8:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after,.xxx281p:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{inset:0}.xht581f:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{inset:var(--_input-clear-hit-inset)}.xeu5z55:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{inset:var(--_thumbnail-hit-inset)}@starting-style{.x4itv7f.x4itv7f:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#){opacity:0}.x6mt36l.x6mt36l:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#){transform:translate(-100%)}.x1yqmsfc.x1yqmsfc:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#){transform:translate(100%)}.xub2912.xub2912:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#){transform:translateY(-100%)}.x12p7p72.x12p7p72:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#){transform:translateY(-4px)}.xhbqy3z.xhbqy3z:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#){transform:translateY(100%)}.x6s140c.x6s140c:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#){transform:translateY(var(--_toast-slide-y,var(--spacing-2)))}.x1lymnkk.x1lymnkk:is([dir=rtl] *):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#){transform:translate(-100%)}.x14gflnl.x14gflnl:is([dir=rtl] *):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#){transform:translate(100%)}}.x1k48kgn:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after,.xxyica1:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{border-radius:inherit}.x17gn2l9:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{grid-column:1}.xd54j2p:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{inset-block:0}.xpsyfx0:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#)::-webkit-date-and-time-value{margin-block:0}.x1qqcexc:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#)::-webkit-date-and-time-value{margin-inline:0}.x1x4c3m6:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#)::-webkit-date-and-time-value{padding-block:0}.xtbxizx:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#)::-webkit-datetime-edit{padding-block:0}@starting-style{.x5rzir7.x5rzir7:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#){padding-bottom:0}}.xkqr7wz:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#)::-webkit-date-and-time-value{padding-inline:0}.xslb4at:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#)::-webkit-datetime-edit{padding-inline:0}.xvtkv6q:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{transition:background-color .15s,width .15s}.x17s1k9h:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{transition:opacity .15s}.x19ds33d:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{align-self:start}.x1abwkk1:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#)::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.xyhc2n1:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{background-color:#0000}.x1tzqye7:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{background-color:var(--color-accent)}.xnixb3f:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#)::backdrop{background-color:var(--color-overlay)}.x1i3206j:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{background-color:var(--indicator-color,transparent)}.x1uvfo0n:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{background-color:var(--table-row-overlay,transparent)}.xccdyz0:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{background-image:linear-gradient(to left,var(--color-shadow),transparent)}.x1ppu1g5:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{background-image:linear-gradient(to right,var(--color-shadow),transparent)}.xnnzo76:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{border-inline-start-color:var(--color-border)}.xvsnedh:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{border-inline-start-style:solid}.x1p96cux:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{border-inline-start-width:var(--border-width)}.xtkarl4:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{color:var(--color-syntax-punctuation)}.xnf3u0:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#)::placeholder{color:var(--color-text-disabled)}.xeyghm5:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#)::placeholder{color:var(--color-text-secondary)}.x1cpjm7i:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before,.x1s928wv:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{content:""}.x46gnpd:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{content:attr(data-line)}.xc2ndz5:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{content:counter(astryx-list) "."}.xh3pasq:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{content:var(--_input-clear-hit-content)}.xhkezso:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{display:block}.xolhmmf:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#)::-webkit-calendar-picker-indicator{display:none}.x3nzp0f:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{font-family:var(--font-family-code)}.xekda60:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{inset-inline-end:-2px}.x1unh1gc:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{inset-inline-end:0}.xvw6utc:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{inset-inline-start:-2px}.x1iygr5g:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{inset-inline-start:0}.x1km86hw:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{inset-inline-start:calc(var(--spacing-4) + var(--_codeblock-gutter-width) + var(--spacing-3))}.x15bqym3:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#)::-webkit-datetime-edit{line-height:inherit}.x1f74mqm:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#)::-webkit-date-and-time-value{line-height:inherit}.xph5o2a:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#)::backdrop{opacity:0}.xb3n6bw:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#)::backdrop{opacity:1}.xni466t:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#)::backdrop{opacity:var(--_sheet-scrim-opacity,1)}.x1c2idit:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{opacity:var(--table-sticky-shadow-end,0)}.x1sggmfs:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{opacity:var(--table-sticky-shadow-start,0)}.x2q1x1w:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after,.xkk1bqk:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{pointer-events:none}.x1hmns74:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before,.x1j6awrg:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{position:absolute}.x1wnbjh8:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{text-align:end}.x9rmy9g:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#)::-webkit-date-and-time-value{text-align:start}.x1fgylwi:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{transform-origin:top}.xgu12d:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{transform-origin:0}.x1e8txe:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{transform:scaleX(0)}.xp1ps4y:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{transform:scaleX(1)}.xb5f74o:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{transform:scaleY(0)}.xd30wvy:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{transform:scaleY(1)}.xvs0bi2:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{transform:translate(-100%)}.x1qyefdi:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{transform:translate(100%)}.x142juwg:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#)::backdrop{transition-behavior:allow-discrete}.xizoc3:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{transition-delay:var(--x-owu7oy)}.x1y1nw7a:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before,.x97pup0:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{transition-duration:var(--duration-fast)}.xft5bk6:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#)::backdrop,.xuhr57t:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{transition-duration:var(--duration-medium)}.x196sc62:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{transition-duration:var(--x-1dd27dc)}.x1ywzrc5:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after,.xxcwgru:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{transition-property:background-color}.xc0dz0a:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#)::backdrop{transition-property:opacity,display}.x167zut7:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#)::backdrop{transition-property:opacity}.x1hu8v7x:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{transition-property:transform}.x1cz9k3x:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#)::backdrop,.xyt8op7:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{transition-timing-function:linear}.x15h3t91:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#)::backdrop,.x1dlmc9c:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after,.xa5v58t:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{transition-timing-function:var(--ease-standard)}.x1rbqspl:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{-webkit-user-select:none;user-select:none}.xy5mcqj:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{z-index:-1}.xk7vujl:is([dir=rtl] *):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{background-image:linear-gradient(to left,var(--color-shadow),transparent)}.xlptwl5:is([dir=rtl] *):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{background-image:linear-gradient(to right,var(--color-shadow),transparent)}.xdq8fwl:is([dir=rtl] *):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{transform-origin:100%}.x1c108yo:is([dir=rtl] *):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{transform:translate(-100%)}.x12ayhd5:is([dir=rtl] *):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{transform:translate(100%)}.x1k7wiig:active:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{background-color:var(--color-overlay-pressed)}@media (prefers-reduced-motion:reduce){.xhhm9v0.xhhm9v0:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{transition-delay:0s}.x1viac0w.x1viac0w:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#)::backdrop{transition-duration:10ms}.x13sdc92.x13sdc92:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{transition-duration:0s}}.xe80sof:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{bottom:-2px}.x1xrz1ek:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{bottom:0}.xu6fald:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{height:var(--_sheet-keyboard-inset,0px)}.xec4aax:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#)::-webkit-date-and-time-value{min-height:0}.x51xajf:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):before{top:-2px}.x1m1drc7:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{top:0}.xkj6t0a:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{width:0}.xzkji8o:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{width:6px}.xi8c0p9:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):after{width:var(--indicator-width,1px)}@starting-style{.xxiuuzi.xxiuuzi:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#)::backdrop{opacity:0}}:root{--color-data-categorical-blue:#0171e3;--color-data-categorical-orange:#eb6e00;--color-data-categorical-purple:#6b1efd;--color-data-categorical-green:#0b991f;--color-data-categorical-pink:#f351c0;--color-data-categorical-cyan:#0171a4;--color-data-categorical-red:#f5394f;--color-data-categorical-teal:#08a3a3;--color-data-categorical-brown:#965e03;--color-data-categorical-indigo:#6f8aff;--color-data-neutral:var(--lightningcss-light,#8494a3)var(--lightningcss-dark,#8c939b);--color-data-blue-5:#02165e;--color-data-blue-4:#004cbc;--color-data-blue-3:#2694fe;--color-data-blue-2:#78beff;--color-data-blue-1:#dbecff;--color-data-shamrock-5:#0b603d;--color-data-shamrock-4:#138546;--color-data-shamrock-3:#24bb5e;--color-data-shamrock-2:#8ef7aa;--color-data-shamrock-1:#d6fee4;--color-data-orange-5:#a13f04;--color-data-orange-4:#d66100;--color-data-orange-3:#fd9537;--color-data-orange-2:#fdb876;--color-data-orange-1:#ffe6cf;--color-data-pink-5:#8e1073;--color-data-pink-4:#d123a1;--color-data-pink-3:#f989d3;--color-data-pink-2:#feade3;--color-data-pink-1:#fce3f4;--color-data-purple-5:#3e0697;--color-data-purple-4:#6b1efd;--color-data-purple-3:#9081ff;--color-data-purple-2:#b3b0fe;--color-data-purple-1:#e8e8fb;--color-data-red-5:#9d0519;--color-data-red-4:#d31130;--color-data-red-3:#fb7d87;--color-data-red-2:#ffb2b8;--color-data-red-1:#fee4e6;--color-data-teal-5:#08767d;--color-data-teal-4:#0c9293;--color-data-teal-3:#0db7af;--color-data-teal-2:#6ce6d8;--color-data-teal-1:#d7fcf8;--color-data-yellow-5:#8a5001;--color-data-yellow-4:#d69804;--color-data-yellow-3:#fbce03;--color-data-yellow-2:#fcec85;--color-data-yellow-1:#fdf6ba;--color-data-gray-5:var(--lightningcss-light,#25363f)var(--lightningcss-dark,#333338);--color-data-gray-4:var(--lightningcss-light,#5d6c7b)var(--lightningcss-dark,#666a72);--color-data-gray-3:var(--lightningcss-light,#afb9c4)var(--lightningcss-dark,#b2b8be);--color-data-gray-2:var(--lightningcss-light,#ccd3db)var(--lightningcss-dark,#d0d3d6);--color-data-gray-1:var(--lightningcss-light,#f1f4f7)var(--lightningcss-dark,#f2f4f6)}}@layer astryx-theme{:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}html[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@scope([data-astryx-theme=neutral]) to ([data-astryx-theme]){:scope{--font-size-4xs:.375rem;--font-size-3xs:.4375rem;--font-size-2xs:.5rem;--font-size-xs:.625rem;--font-size-sm:.75rem;--font-size-base:.875rem;--font-size-lg:1.0625rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.8125rem;--font-size-4xl:2.1875rem;--font-size-5xl:2.625rem;--text-heading-1-size:var(--font-size-2xl);--text-heading-1-weight:var(--font-weight-semibold);--text-heading-1-leading:1.3333;--text-heading-2-size:var(--font-size-xl);--text-heading-2-weight:var(--font-weight-semibold);--text-heading-2-leading:1.4;--text-heading-3-size:var(--font-size-lg);--text-heading-3-weight:var(--font-weight-bold);--text-heading-3-leading:1.4118;--text-heading-4-size:var(--font-size-base);--text-heading-4-weight:var(--font-weight-bold);--text-heading-4-leading:1.4286;--text-heading-5-size:var(--font-size-sm);--text-heading-5-weight:var(--font-weight-semibold);--text-heading-5-leading:1.6667;--text-heading-6-size:var(--font-size-xs);--text-heading-6-weight:var(--font-weight-semibold);--text-heading-6-leading:1.6;--text-body-size:var(--font-size-base);--text-body-weight:var(--font-weight-normal);--text-body-leading:1.4286;--text-large-size:var(--font-size-lg);--text-large-weight:var(--font-weight-semibold);--text-large-leading:1.4118;--text-label-size:var(--font-size-base);--text-label-weight:var(--font-weight-medium);--text-label-leading:1.4286;--text-code-size:var(--font-size-base);--text-code-weight:var(--font-weight-normal);--text-code-leading:1.4286;--text-supporting-size:var(--font-size-sm);--text-supporting-weight:var(--font-weight-normal);--text-supporting-leading:1.6667;--text-display-1-size:var(--font-size-5xl);--text-display-1-weight:var(--font-weight-normal);--text-display-1-leading:1.2381;--text-display-2-size:var(--font-size-4xl);--text-display-2-weight:var(--font-weight-normal);--text-display-2-leading:1.2571;--text-display-3-size:var(--font-size-3xl);--text-display-3-weight:var(--font-weight-normal);--text-display-3-leading:1.3793;--duration-fast-min:95ms;--duration-fast:.125s;--duration-fast-max:.165s;--duration-medium-min:.225s;--duration-medium:.3s;--duration-medium-max:.4s;--duration-slow-min:.525s;--duration-slow:.7s;--duration-slow-max:.935s;--font-family-body:Figtree, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-family-heading:Figtree, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-family-code:ui-monospace, "SF Mono", Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-syntax-keyword:var(--lightningcss-light,#700084)var(--lightningcss-dark,#efa8ff);--color-syntax-string:var(--lightningcss-light,#005600)var(--lightningcss-dark,#a6d2a2);--color-syntax-comment:var(--lightningcss-light,#737373)var(--lightningcss-dark,#a3a3a3);--color-syntax-number:var(--lightningcss-light,#6e3500)var(--lightningcss-dark,#ffb37f);--color-syntax-function:var(--lightningcss-light,#00458c)var(--lightningcss-dark,#a0caff);--color-syntax-type:var(--lightningcss-light,#700084)var(--lightningcss-dark,#efa8ff);--color-syntax-variable:var(--lightningcss-light,#171717)var(--lightningcss-dark,#e5e5e5);--color-syntax-operator:var(--lightningcss-light,#737373)var(--lightningcss-dark,#a3a3a3);--color-syntax-constant:var(--lightningcss-light,#6e3500)var(--lightningcss-dark,#ffb37f);--color-syntax-tag:var(--lightningcss-light,#89001a)var(--lightningcss-dark,#ffaeaa);--color-syntax-attribute:var(--lightningcss-light,#584400)var(--lightningcss-dark,#eec12f);--color-syntax-property:var(--lightningcss-light,#005348)var(--lightningcss-dark,#83dac9);--color-syntax-punctuation:var(--lightningcss-light,#6e6e6e)var(--lightningcss-dark,#a0a0a0);--color-syntax-background:var(--lightningcss-light,#fafafa)var(--lightningcss-dark,#0a0a0a);--color-background-surface:var(--lightningcss-light,#fff)var(--lightningcss-dark,#262626);--color-background-body:var(--lightningcss-light,#f1f1f1)var(--lightningcss-dark,#1b1b1b);--color-background-card:var(--lightningcss-light,#fff)var(--lightningcss-dark,#1b1b1b);--color-background-popover:var(--lightningcss-light,#fff)var(--lightningcss-dark,#1b1b1b);--color-background-muted:var(--lightningcss-light,#f1f1f1)var(--lightningcss-dark,#1b1b1b);--color-accent:var(--lightningcss-light,#262626)var(--lightningcss-dark,#ebebeb);--color-accent-muted:var(--lightningcss-light,#f1f1f1)var(--lightningcss-dark,#262626);--color-neutral:var(--lightningcss-light,#0000000f)var(--lightningcss-dark,#ffffff1a);--color-overlay:var(--lightningcss-light,#00000080)var(--lightningcss-dark,#000c);--color-overlay-hover:var(--lightningcss-light,#0000000d)var(--lightningcss-dark,#ffffff0d);--color-overlay-pressed:var(--lightningcss-light,#0000001a)var(--lightningcss-dark,#ffffff1a);--color-text-primary:var(--lightningcss-light,#171717)var(--lightningcss-dark,#fafafa);--color-text-secondary:var(--lightningcss-light,#525252)var(--lightningcss-dark,#a3a3a3);--color-text-disabled:var(--lightningcss-light,#a3a3a3)var(--lightningcss-dark,#525252);--color-text-accent:var(--lightningcss-light,#262626)var(--lightningcss-dark,#ebebeb);--color-on-dark:#fff;--color-on-light:#171717;--color-on-accent:var(--lightningcss-light,#fff)var(--lightningcss-dark,#171717);--color-on-success:var(--lightningcss-light,#fff)var(--lightningcss-dark,#171717);--color-on-error:var(--lightningcss-light,#fff)var(--lightningcss-dark,#171717);--color-on-warning:#171717;--color-icon-accent:var(--lightningcss-light,#262626)var(--lightningcss-dark,#ebebeb);--color-icon-primary:var(--lightningcss-light,#171717)var(--lightningcss-dark,#fafafa);--color-icon-secondary:var(--lightningcss-light,#737373)var(--lightningcss-dark,#a3a3a3);--color-icon-disabled:var(--lightningcss-light,#a3a3a3)var(--lightningcss-dark,#525252);--color-success:var(--lightningcss-light,#007004)var(--lightningcss-dark,#9fe59b);--color-error:var(--lightningcss-light,#a50c25)var(--lightningcss-dark,#ffc6c1);--color-warning:var(--lightningcss-light,#745b00)var(--lightningcss-dark,#fdcf4f);--color-success-muted:var(--lightningcss-light,#c5e5c0)var(--lightningcss-dark,#84c9803d);--color-error-muted:var(--lightningcss-light,#facecb)var(--lightningcss-dark,#ff9e973d);--color-warning-muted:var(--lightningcss-light,#f8da9d)var(--lightningcss-dark,#deb4333d);--color-border:var(--lightningcss-light,#00000014)var(--lightningcss-dark,#ffffff1a);--color-border-emphasized:var(--lightningcss-light,#d4d4d4)var(--lightningcss-dark,#525252);--color-skeleton:var(--lightningcss-light,#ebebeb)var(--lightningcss-dark,#525252);--color-shadow:var(--lightningcss-light,#0000001a)var(--lightningcss-dark,#0000004d);--color-tint-hover:var(--lightningcss-light,#000)var(--lightningcss-dark,#fff);--color-background-red:var(--lightningcss-light,#facecb)var(--lightningcss-dark,#ff9e973d);--color-border-red:var(--lightningcss-light,#e6bab8)var(--lightningcss-dark,#ff6f6c);--color-icon-red:var(--lightningcss-light,#89001a)var(--lightningcss-dark,#ff9e97);--color-text-red:var(--lightningcss-light,#89001a)var(--lightningcss-dark,#ffc6c1);--color-background-orange:var(--lightningcss-light,#fad0b5)var(--lightningcss-dark,#ffa2583d);--color-border-orange:var(--lightningcss-light,#e6bda2)var(--lightningcss-dark,#e2883e);--color-icon-orange:var(--lightningcss-light,#6e3500)var(--lightningcss-dark,#ffa258);--color-text-orange:var(--lightningcss-light,#6e3500)var(--lightningcss-dark,#ffc9a2);--color-background-yellow:var(--lightningcss-light,#f8da9d)var(--lightningcss-dark,#deb4333d);--color-border-yellow:var(--lightningcss-light,#e4c279)var(--lightningcss-dark,#c0990e);--color-icon-yellow:var(--lightningcss-light,#584400)var(--lightningcss-dark,#deb433);--color-text-yellow:var(--lightningcss-light,#584400)var(--lightningcss-dark,#fdcf4f);--color-background-green:var(--lightningcss-light,#c5e5c0)var(--lightningcss-dark,#84c9803d);--color-border-green:var(--lightningcss-light,#b2d1ac)var(--lightningcss-dark,#69ad67);--color-icon-green:var(--lightningcss-light,#0c5700)var(--lightningcss-dark,#84c980);--color-text-green:var(--lightningcss-light,#0c5700)var(--lightningcss-dark,#9fe59b);--color-background-teal:var(--lightningcss-light,#a5e3d6)var(--lightningcss-dark,#7ec6b83d);--color-border-teal:var(--lightningcss-light,#94d6c8)var(--lightningcss-dark,#63ab9d);--color-icon-teal:var(--lightningcss-light,#005348)var(--lightningcss-dark,#7ec6b8);--color-text-teal:var(--lightningcss-light,#005348)var(--lightningcss-dark,#99e2d3);--color-background-cyan:var(--lightningcss-light,#a3e0ef)var(--lightningcss-dark,#83c2d43d);--color-border-cyan:var(--lightningcss-light,#91d3e3)var(--lightningcss-dark,#67a7b8);--color-icon-cyan:var(--lightningcss-light,#00505f)var(--lightningcss-dark,#83c2d4);--color-text-cyan:var(--lightningcss-light,#00505f)var(--lightningcss-dark,#9edef0);--color-background-blue:var(--lightningcss-light,#c4ddfb)var(--lightningcss-dark,#9eb7ff3d);--color-border-blue:var(--lightningcss-light,#b1c9e7)var(--lightningcss-dark,#6d9cfe);--color-icon-blue:var(--lightningcss-light,#00458c)var(--lightningcss-dark,#9eb7ff);--color-text-blue:var(--lightningcss-light,#00458c)var(--lightningcss-dark,#c7d3ff);--color-background-purple:var(--lightningcss-light,#eccef3)var(--lightningcss-dark,#f297ff3d);--color-border-purple:var(--lightningcss-light,#d8bbdf)var(--lightningcss-dark,#dd74f0);--color-icon-purple:var(--lightningcss-light,#700084)var(--lightningcss-dark,#f297ff);--color-text-purple:var(--lightningcss-light,#700084)var(--lightningcss-dark,#fac1ff);--color-background-pink:var(--lightningcss-light,#fccadc)var(--lightningcss-dark,#ff99c33d);--color-border-pink:var(--lightningcss-light,#e7b7c8)var(--lightningcss-dark,#f273aa);--color-icon-pink:var(--lightningcss-light,#83004b)var(--lightningcss-dark,#ff99c3);--color-text-pink:var(--lightningcss-light,#83004b)var(--lightningcss-dark,#ffc3da);--color-background-gray:var(--lightningcss-light,#e5e5e5)var(--lightningcss-dark,var(--color-neutral));--color-border-gray:var(--lightningcss-light,#d4d4d4)var(--lightningcss-dark,#262626);--color-icon-gray:var(--lightningcss-light,#525252)var(--lightningcss-dark,#a3a3a3);--color-text-gray:var(--lightningcss-light,#262626)var(--lightningcss-dark,#e5e5e5);--radius-none:0px;--radius-inner:.375rem;--radius-element:.625rem;--radius-container:.75rem;--radius-page:1.75rem;--radius-full:9999px;--shadow-low:0 2px 4px var(--lightningcss-light,oklch(0% 0 0/.05))var(--lightningcss-dark,oklch(0% 0 0/.25)), 0 4px 8px var(--lightningcss-light,oklch(0% 0 0/.1))var(--lightningcss-dark,oklch(0% 0 0/.4)), inset 0 0 0 1px var(--lightningcss-light,#0000)var(--lightningcss-dark,oklch(100% 0 0/.08));--shadow-med:0 2px 4px var(--lightningcss-light,oklch(0% 0 0/.05))var(--lightningcss-dark,oklch(0% 0 0/.35)), 0 4px 12px var(--lightningcss-light,oklch(0% 0 0/.1))var(--lightningcss-dark,oklch(0% 0 0/.5)), inset 0 0 0 1px var(--lightningcss-light,#0000)var(--lightningcss-dark,oklch(100% 0 0/.12));--shadow-high:0 4px 6px var(--lightningcss-light,oklch(0% 0 0/.1))var(--lightningcss-dark,oklch(0% 0 0/.5)), 0 12px 24px var(--lightningcss-light,oklch(0% 0 0/.15))var(--lightningcss-dark,oklch(0% 0 0/.7)), inset 0 0 0 1px var(--lightningcss-light,#0000)var(--lightningcss-dark,oklch(100% 0 0/.15));--shadow-inset-hover:inset 0px 0px 0px 2px #0074e24d;--shadow-inset-selected:inset 0px 0px 0px 2px #0074e280;--shadow-inset-success:inset 0px 0px 0px 2px #1981004d;--shadow-inset-warning:inset 0px 0px 0px 2px #ffce2f4d;--shadow-inset-error:inset 0px 0px 0px 2px #e33f4a4d}.astryx-heading.level-1{font-family:var(--font-family-heading);font-size:var(--text-heading-1-size);font-weight:var(--text-heading-1-weight);line-height:var(--text-heading-1-leading)}.astryx-heading.level-2{font-family:var(--font-family-heading);font-size:var(--text-heading-2-size);font-weight:var(--text-heading-2-weight);line-height:var(--text-heading-2-leading)}.astryx-heading.level-3{font-family:var(--font-family-heading);font-size:var(--text-heading-3-size);font-weight:var(--text-heading-3-weight);line-height:var(--text-heading-3-leading)}.astryx-heading.level-4{font-family:var(--font-family-heading);font-size:var(--text-heading-4-size);font-weight:var(--text-heading-4-weight);line-height:var(--text-heading-4-leading)}.astryx-heading.level-5{font-family:var(--font-family-heading);font-size:var(--text-heading-5-size);font-weight:var(--text-heading-5-weight);line-height:var(--text-heading-5-leading)}.astryx-heading.level-6{font-family:var(--font-family-heading);font-size:var(--text-heading-6-size);font-weight:var(--text-heading-6-weight);line-height:var(--text-heading-6-leading)}.astryx-heading.display-1{font-family:var(--font-family-heading);font-size:var(--text-display-1-size);line-height:var(--text-display-1-leading)}.astryx-heading.display-2{font-family:var(--font-family-heading);font-size:var(--text-display-2-size);line-height:var(--text-display-2-leading)}.astryx-heading.display-3{font-family:var(--font-family-heading);font-size:var(--text-display-3-size);line-height:var(--text-display-3-leading)}.astryx-text.body{font-family:var(--font-family-body);font-size:var(--text-body-size);line-height:var(--text-body-leading)}.astryx-text.large{font-family:var(--font-family-body);font-size:var(--text-large-size);line-height:var(--text-large-leading)}.astryx-text.label{font-family:var(--font-family-body);font-size:var(--text-label-size);line-height:var(--text-label-leading)}.astryx-text.code{font-family:var(--font-family-code);font-size:var(--text-code-size);line-height:var(--text-code-leading)}.astryx-text.supporting{font-family:var(--font-family-body);font-size:var(--text-supporting-size);line-height:var(--text-supporting-leading)}.astryx-text.display-1{font-family:var(--font-family-heading);font-size:var(--text-display-1-size);line-height:var(--text-display-1-leading)}.astryx-text.display-2{font-family:var(--font-family-heading);font-size:var(--text-display-2-size);line-height:var(--text-display-2-leading)}.astryx-text.display-3{font-family:var(--font-family-heading);font-size:var(--text-display-3-size);line-height:var(--text-display-3-leading)}.astryx-button.destructive{background-color:var(--color-error-muted);color:var(--color-error)}.astryx-badge.info{color:var(--lightningcss-light,#fff)var(--lightningcss-dark,#171717);background-color:var(--lightningcss-light,#0074e2)var(--lightningcss-dark,#6d9cfe)}.astryx-badge.neutral{background-color:var(--color-background-gray);color:var(--color-text-gray)}.astryx-badge.success{color:var(--lightningcss-light,#fff)var(--lightningcss-dark,#171717);background-color:var(--lightningcss-light,#198100)var(--lightningcss-dark,#64af4c)}.astryx-badge.warning{color:#171717;background-color:#ffce2f}.astryx-badge.error{color:var(--lightningcss-light,#fff)var(--lightningcss-dark,#171717);background-color:var(--lightningcss-light,#c9303a)var(--lightningcss-dark,#ff705d)}.astryx-badge.red{background-color:var(--color-background-red);color:var(--color-text-red)}.astryx-badge.orange{background-color:var(--color-background-orange);color:var(--color-text-orange)}.astryx-badge.yellow{background-color:var(--color-background-yellow);color:var(--color-text-yellow)}.astryx-badge.green{background-color:var(--color-background-green);color:var(--color-text-green)}.astryx-badge.teal{background-color:var(--color-background-teal);color:var(--color-text-teal)}.astryx-badge.cyan{background-color:var(--color-background-cyan);color:var(--color-text-cyan)}.astryx-badge.blue{background-color:var(--color-background-blue);color:var(--color-text-blue)}.astryx-badge.purple{background-color:var(--color-background-purple);color:var(--color-text-purple)}.astryx-badge.pink{background-color:var(--color-background-pink);color:var(--color-text-pink)}.astryx-badge.gray{background-color:var(--color-background-gray);color:var(--color-text-gray)}.astryx-statusdot.success{background-color:var(--lightningcss-light,#198100)var(--lightningcss-dark,#64af4c)}.astryx-statusdot.warning{background-color:#ffce2f}.astryx-statusdot.error{background-color:var(--lightningcss-light,#c9303a)var(--lightningcss-dark,#ff705d)}.astryx-statusdot.accent{background-color:var(--lightningcss-light,#0074e2)var(--lightningcss-dark,#6d9cfe)}.astryx-banner.info{--color-accent-muted:var(--color-background-blue);--color-text-primary:var(--color-text-blue);--color-text-secondary:var(--color-text-blue);--color-accent:var(--color-text-blue)}.astryx-banner.success{--color-text-primary:var(--color-text-green);--color-text-secondary:var(--color-text-green);--color-success:var(--color-text-green)}.astryx-banner.warning{--color-text-primary:var(--color-text-yellow);--color-text-secondary:var(--color-text-yellow);--color-warning:var(--color-text-yellow)}.astryx-banner.error{--color-text-primary:var(--color-text-red);--color-text-secondary:var(--color-text-red);--color-error:var(--color-text-red)}.astryx-switch{--color-background-gray:var(--color-border-emphasized)}.astryx-progressbar{--color-background-muted:var(--color-border-emphasized)}.astryx-progressbar.accent{--color-accent:#0074e2}.astryx-progressbar.success{--color-success:#198100}.astryx-progressbar.warning{--color-warning:#ffce2f}.astryx-progressbar.error{--color-error:#c9303a}.astryx-card{--astryx-card-padding:var(--spacing-3)}.astryx-section{--astryx-section-padding:var(--spacing-3)}.astryx-text.primary,.astryx-heading.primary{color:var(--color-text-primary)}.astryx-text.secondary,.astryx-heading.secondary{color:var(--color-text-secondary)}.astryx-text.disabled,.astryx-heading.disabled{color:var(--color-text-disabled)}.astryx-text.placeholder,.astryx-heading.placeholder{color:var(--color-text-secondary)}.astryx-text.accent,.astryx-heading.accent{color:var(--color-text-accent)}.astryx-text.size-4xs{font-size:var(--font-size-4xs)}.astryx-text.size-3xs{font-size:var(--font-size-3xs)}.astryx-text.size-2xs{font-size:var(--font-size-2xs)}.astryx-text.xsm{font-size:var(--font-size-xs)}.astryx-text.sm{font-size:var(--font-size-sm)}.astryx-text.base{font-size:var(--font-size-base)}.astryx-text.lg{font-size:var(--font-size-lg)}.astryx-text.xl{font-size:var(--font-size-xl)}.astryx-text.size-2xl{font-size:var(--font-size-2xl)}.astryx-text.size-3xl{font-size:var(--font-size-3xl)}.astryx-text.size-4xl{font-size:var(--font-size-4xl)}}@scope([data-astryx-theme=neutral]) to ([data-astryx-theme]){[data-astryx-media=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-text-primary:var(--color-on-dark);--color-icon-primary:var(--color-on-dark);--color-accent:var(--color-on-dark)}[data-astryx-media=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-text-primary:var(--color-on-light);--color-icon-primary:var(--color-on-light);--color-accent:var(--color-on-light)}}}@layer components;@layer utilities{.collapse{visibility:collapse}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.fixed{position:fixed}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.block{display:block}.contents{display:contents}.hidden{display:none}.inline{display:inline}.table{display:table}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.rounded{border-radius:.25rem}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}}.xterm{cursor:text;-webkit-user-select:none;user-select:none;position:relative}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{z-index:5;position:absolute;top:0}.xterm .xterm-helper-textarea{opacity:0;z-index:-5;white-space:nowrap;resize:none;border:0;width:0;height:0;margin:0;padding:0;position:absolute;top:0;left:-9999em;overflow:hidden}.xterm .composition-view{color:#fff;white-space:nowrap;z-index:1;background:#000;display:none;position:absolute}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{cursor:default;background-color:#000;position:absolute;inset:0;overflow-y:scroll}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;top:0;left:0}.xterm-char-measure-element{visibility:hidden;line-height:normal;display:inline-block;position:absolute;top:0;left:-9999em}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{z-index:10;color:#0000;pointer-events:none;position:absolute;inset:0}.xterm .xterm-accessibility-tree:not(.debug) ::selection{color:#0000}.xterm .xterm-accessibility-tree{-webkit-user-select:text;user-select:text;white-space:pre;font-family:monospace}.xterm .xterm-accessibility-tree>div{transform-origin:0;width:fit-content}.xterm .live-region{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{-webkit-text-decoration:underline double;text-decoration:underline double}.xterm-underline-3{-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.xterm-underline-4{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.xterm-underline-5{-webkit-text-decoration:underline dashed;text-decoration:underline dashed}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:underline overline}.xterm-overline.xterm-underline-2{-webkit-text-decoration:overline double underline;-webkit-text-decoration:overline double underline;-webkit-text-decoration:overline double underline;text-decoration:overline double underline}.xterm-overline.xterm-underline-3{-webkit-text-decoration:overline wavy underline;-webkit-text-decoration:overline wavy underline;-webkit-text-decoration:overline wavy underline;text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{-webkit-text-decoration:overline dotted underline;-webkit-text-decoration:overline dotted underline;-webkit-text-decoration:overline dotted underline;text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{-webkit-text-decoration:overline dashed underline;-webkit-text-decoration:overline dashed underline;-webkit-text-decoration:overline dashed underline;text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;pointer-events:none;position:absolute;top:0;right:0}.xterm-decoration-top{z-index:2;position:relative}.xterm .xterm-scrollable-element>.scrollbar{cursor:default}.xterm .xterm-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.xterm .xterm-scrollable-element>.visible{opacity:1;z-index:11;background:0 0;transition:opacity .1s linear}.xterm .xterm-scrollable-element>.invisible{opacity:0;pointer-events:none}.xterm .xterm-scrollable-element>.invisible.fade{transition:opacity .8s linear}.xterm .xterm-scrollable-element>.shadow{display:none;position:absolute}.xterm .xterm-scrollable-element>.shadow.top{width:100%;height:3px;box-shadow:var(--vscode-scrollbar-shadow,#000) 0 6px 6px -6px inset;display:block;top:0;left:3px}.xterm .xterm-scrollable-element>.shadow.left{width:3px;height:100%;box-shadow:var(--vscode-scrollbar-shadow,#000) 6px 0 6px -6px inset;display:block;top:3px;left:0}.xterm .xterm-scrollable-element>.shadow.top-left-corner{width:3px;height:3px;display:block;top:0;left:0}.xterm .xterm-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow,#000) 6px 0 6px -6px inset}.composer.composer-m02{border-radius:8px;min-width:0}.composer-toolbar[hidden]{display:none}.composer.composer-m02.is-dragging{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}@supports (color:color-mix(in lab, red, red)){.composer.composer-m02.is-dragging{box-shadow:0 0 0 2px color-mix(in oklch, var(--accent) 20%, transparent)}}.composer-m02 .composer-target{min-width:0;color:var(--muted);align-items:center;gap:6px;margin-bottom:10px;font-size:11px;line-height:1.4;display:flex}.composer-m02 .composer-target svg{flex:none;width:13px;height:13px}.composer-m02 .composer-target svg:nth-of-type(2){width:11px;height:11px;color:var(--subtle)}.composer-m02 .composer-target span,.composer-m02 .composer-target strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.composer-m02 .composer-target span{flex:0 auto}.composer-m02 .composer-target strong{color:var(--text);flex:0 auto;font-weight:600}.composer-attachments{flex-wrap:wrap;gap:7px;min-width:0;margin:0 0 9px;display:flex}.composer-attachment{border:1px solid var(--border);background:var(--sidebar);border-radius:7px;grid-template-columns:38px minmax(0,1fr) 22px;align-items:center;gap:7px;width:min(176px,50% - 4px);min-width:112px;height:48px;padding:5px;display:grid;position:relative}.composer-attachment img{object-fit:cover;background:var(--sidebar-hover);border-radius:5px;width:38px;height:38px}.composer-attachment>span{text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;overflow:hidden}.composer-attachment-remove{width:22px;height:22px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:4px;place-items:center;padding:0;display:grid}.composer-attachment-remove:hover{background:var(--sidebar-hover);color:var(--text)}.composer-attachment-remove svg{width:13px;height:13px}.composer-attachment-preview{cursor:zoom-in;background:0 0;border:0;border-radius:5px;width:38px;height:38px;padding:0;display:grid}.composer-attachment-preview:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.draft-image-preview{min-width:0;min-height:0}.draft-image-preview header{border-bottom:1px solid var(--border);align-items:center;gap:12px;min-width:0;padding:8px 12px;display:flex}.draft-image-preview header strong{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:13px;overflow:hidden}.draft-image-preview header button{width:32px;height:32px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:5px;flex:none;place-items:center;padding:0;display:grid}.draft-image-preview header button:hover{background:var(--sidebar-hover);color:var(--text)}.draft-image-preview header button svg{width:17px;height:17px}.draft-image-preview-modes{border:1px solid var(--border);border-radius:5px;flex:none;gap:2px;min-width:0;margin:0;padding:2px;display:flex}.draft-image-preview-modes button[aria-pressed=true]{background:var(--sidebar-hover);color:var(--text)}.draft-image-preview-modes button:disabled{opacity:.5;cursor:default}.draft-image-preview-body{background:var(--sidebar);grid-template:minmax(0,1fr)/minmax(0,1fr);place-items:center;min-width:0;height:min(64dvh,640px);min-height:0;padding:12px;display:grid;overflow:hidden}.draft-image-preview-body img{object-fit:contain;max-width:100%;max-height:100%;display:block}.draft-image-preview-body[data-mode=original]{overscroll-behavior:contain;display:block;overflow:auto}.draft-image-preview-body[data-mode=original] img{max-width:none;max-height:none}.draft-image-preview-body:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}.draft-image-preview-body .composer-attachment-error{margin:0}.composer-attachment-error{color:var(--error);margin:0 2px 8px;font-size:10.5px}.composer-drop-overlay{z-index:5;border:1px dashed var(--accent);background:var(--page);border-radius:7px;justify-content:center;align-items:center;gap:8px;display:flex;position:absolute;inset:6px}@supports (color:color-mix(in lab, red, red)){.composer-drop-overlay{background:color-mix(in oklch, var(--page) 92%, var(--accent))}}.composer-drop-overlay{color:var(--accent);pointer-events:none;font-size:12px;font-weight:600}.composer-drop-overlay svg{width:18px;height:18px}.composer-m02 .composer-toolbar{border-top:1px solid var(--border);justify-content:space-between;gap:8px;padding-top:7px}.composer-m02 .composer-toolbar-context{flex:none;width:34px;height:34px}.composer-m02 .composer-context-placeholder{width:34px;height:34px;display:block}.composer-m02 .composer-context-trigger{width:34px;height:34px;color:var(--muted);padding:0}.composer-m02 .composer-context-trigger svg{width:17px;height:17px}.composer-m02 .composer-toolbar-controls{flex:auto;justify-content:flex-end;align-items:center;gap:7px;min-width:0;display:flex}.composer-m02 .model-selector,.composer-m02 .model-selector>div{min-width:0}.composer-m02 .composer-hint[data-visible=true]{color:var(--muted);margin-top:5px;font-size:11px;line-height:1.4;display:block}.file-reference-heading{align-items:flex-start;gap:10px;display:flex}.file-reference-heading>svg{width:18px;height:18px;color:var(--muted);flex:none;margin-top:2px}.file-reference-heading p{color:var(--text);margin-top:3px}.file-reference-error{color:var(--error)!important}@media (width<=520px){.composer-m02 .composer-toolbar-controls{gap:3px}.composer-m02 .model-picker-wrap{flex:90px;min-width:0;max-width:100%}}.model-search-panel{flex-direction:column;display:flex}.model-search-options{overflow-y:auto}.model-search-input,.model-search-truncation,.model-search-status,.model-settings-command{flex-shrink:0}.model-settings-command{border:0;border-top:1px solid var(--border);width:100%;color:var(--text);text-align:left;font:inherit;cursor:pointer;background:0 0;align-items:center;gap:8px;margin-top:8px;padding:9px;display:flex}.model-settings-command:hover,.model-settings-command:focus-visible{background:var(--sidebar-hover)}.model-settings-command svg{flex:none;width:14px;height:14px}.session-sidebar .workspace-button{cursor:default;height:auto;min-height:38px}.session-sidebar .workspace-label{cursor:pointer;min-height:38px;padding:3px 0}.session-sidebar .workspace-label:disabled{cursor:default;color:inherit}.session-sidebar .workspace-identity{flex:1;min-width:0;padding:2px 0;display:grid}.session-sidebar .workspace-identity strong,.session-sidebar .workspace-identity small{min-width:0;line-height:1.3}.session-sidebar .workspace-identity strong{overflow-wrap:anywhere;white-space:normal}.session-sidebar .workspace-identity small{text-overflow:ellipsis;white-space:nowrap;color:var(--muted);-webkit-user-select:text;user-select:text;font-size:10px;overflow:hidden}.session-sidebar .is-active-workspace>.workspace-button{border-left:2px solid var(--text)}.session-sidebar .session{align-items:center;height:38px;min-height:38px;padding-top:6px;padding-bottom:6px}.session-sidebar .session-status,.session-sidebar .session-queue{flex:none;align-items:center;gap:3px;display:inline-flex}.session-sidebar .session-status{color:var(--text);font-variant-numeric:tabular-nums;gap:6px;font-size:10px}.session-sidebar .session-status svg{flex:none;width:12px;height:12px}.session-sidebar .session-running{color:var(--accent)}.session-sidebar .session-time{text-align:right;min-width:27px}.session-sidebar .session-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;line-height:1.35;overflow:hidden}.session-sidebar .session-time{line-height:1.7}.session-sidebar .session.active{box-shadow:inset 2px 0 0 var(--text);font-weight:600}.session-sidebar .session-row>.astryx-menu-trigger{top:5px}.sidebar-archive-actions{min-height:34px;color:var(--muted);flex:none;align-items:center;gap:8px;font-size:11px;display:flex}.sidebar-archive-more{margin:8px 0}.sidebar-scope-note p{margin:0 0 4px}.sidebar-dialog-path{overflow-wrap:anywhere;color:var(--muted);font-size:12px}.sidebar-dialog-error{color:var(--error)}.sidebar-footer{border-top:1px solid var(--border);flex:none;padding:7px 2px 1px}.sidebar-settings-button{width:100%;height:36px;color:var(--muted);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:6px;align-items:center;gap:9px;padding:0 10px;display:flex}.sidebar-settings-button:hover:not(:disabled){background:var(--sidebar-hover);color:var(--text)}.sidebar-settings-button:disabled{cursor:default;opacity:.45}.sidebar-settings-button svg{flex:none;width:16px;height:16px}.sidebar-settings-button span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}@media not all and (width<=760px){.sidebar-collapsed .sidebar-footer{width:40px;padding:7px 0 1px}.sidebar-collapsed .sidebar-settings-button{justify-content:center;width:40px;height:40px;padding:0}.sidebar-collapsed .sidebar-settings-button span{display:none}}.app-shell.with-review-panel{grid-template-columns:var(--sidebar-width) minmax(0, 1fr) var(--auxiliary-width)}.app-shell.with-review-panel.sidebar-collapsed{grid-template-columns:56px minmax(0, 1fr) var(--auxiliary-width)}.review-panel{border-left:1px solid var(--border);background:var(--page);min-width:0;height:100dvh;min-height:0;color:var(--text);flex-direction:column;display:flex}.review-panel.embedded{border-left:0;flex:1;height:100%}.review-heading{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:10px;min-height:64px;padding:14px 16px;display:flex}.review-heading h2,.review-heading h1{align-items:center;gap:8px;margin:0 0 4px;font-size:14px;display:flex}.review-heading h2 svg,.review-heading h1 svg{width:16px;height:16px}.review-heading small{color:var(--muted);font-size:10.5px}.review-close{flex:none}.review-heading-actions,.review-file-actions{flex:none;align-items:center;gap:2px;display:flex}.review-body{flex:1;min-height:0;padding:14px 16px 18px;overflow-y:auto}.review-summary{margin-bottom:12px}.review-summary-counts,.session-review-stats{font-variant-numeric:tabular-nums;flex:none;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.review-summary code{min-width:0;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.review-banner{margin:0 0 12px}.review-panel>.review-banner{flex:none;margin:0}.review-empty{min-height:180px}.review-loading{padding-top:2px}.review-loading-list{border:1px solid var(--border);border-radius:6px;gap:1px;display:grid;overflow:hidden}.session-review-list{border:1px solid var(--border);border-radius:6px;min-width:0;overflow:hidden}.session-review-list ul{margin:0;padding:4px;list-style:none}.session-review-list li{margin:0}.session-review-file{width:100%;min-width:0;min-height:38px;color:var(--text);cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:5px;align-items:center;gap:8px;padding:6px 8px;transition:background-color .12s,border-color .12s;display:flex}.session-review-file:hover{background:var(--sidebar-hover)}.session-review-file:active{border-color:var(--border-strong);background:var(--sidebar-active)}.session-review-file>svg{width:14px;height:14px;color:var(--muted);flex:none}.session-review-path{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font:11.5px ui-monospace,SFMono-Regular,Menlo,monospace;overflow:hidden}.session-review-stats{gap:7px;font-size:11px;display:flex}.session-review-more{border-top:1px solid var(--border)}.review-file-screen{flex:1;grid-template-rows:auto auto minmax(0,1fr);min-width:0;min-height:0;display:grid}.review-file-header{border-bottom:1px solid var(--border);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;min-height:52px;padding:6px 8px;display:grid}.review-file-heading{gap:1px;min-width:0;display:grid}.review-file-heading strong,.review-file-heading span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.review-file-heading strong{font-size:12px}.review-file-heading span{color:var(--muted);font:10px ui-monospace,SFMono-Regular,Menlo,monospace}.review-file-toolbar{border-bottom:1px solid var(--border);background:var(--sidebar);grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;min-width:0;min-height:40px;padding:6px 10px;display:grid}.review-file-context{align-items:center;gap:8px;min-width:0;display:flex}.review-file-context>span{color:var(--muted);text-transform:uppercase;flex:none;font-size:10px;font-weight:650}.review-file-context code{min-width:0;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:9.5px;overflow:hidden}.review-file-mode{border:1px solid var(--border-strong);background:var(--page);border-radius:5px;align-items:center;min-height:24px;padding:0 8px;font-size:10.5px;font-weight:600;display:inline-flex}.review-file-preview{background:var(--page);outline:none;min-width:0;min-height:0;overflow:auto}.review-file-diff{background:var(--page);width:max-content;min-width:100%;margin:0}.review-file-diff pre{tab-size:2;width:max-content;min-width:100%;margin:0;padding:8px 0 24px;font:11.5px/1.58 ui-monospace,SFMono-Regular,Menlo,monospace}.review-diff-line{white-space:pre;width:max-content;min-width:100%;display:flex}.review-diff-line[data-kind=added]{background:oklch(82% .08 153/.24)}.review-diff-line[data-kind=removed]{background:oklch(78% .1 28/.2)}.review-diff-line[data-kind=meta]{background:var(--sidebar);color:var(--muted);margin:7px 0 4px}.review-diff-gutter{border-right:1px solid var(--border);color:var(--subtle);text-align:right;-webkit-user-select:none;user-select:none;flex:none;padding-right:1ch}.review-diff-marker{width:2.2ch;color:var(--muted);text-align:center;-webkit-user-select:none;user-select:none;flex:none}.review-diff-line[data-kind=added] .review-diff-marker{color:var(--healthy)}.review-diff-line[data-kind=removed] .review-diff-marker{color:var(--error)}.review-diff-code{padding-right:20px}.review-hidden-lines{border-top:1px solid var(--border);color:var(--muted);margin:0;padding:8px 10px;font-size:11px}@media (width<=1100px){.app-shell.with-review-panel,.app-shell.with-review-panel.sidebar-collapsed{grid-template-columns:minmax(0,1fr)}.with-review-panel>.conversation-shell,.with-review-panel>.session-sidebar,.with-review-panel>.sidebar-expand{display:none}.review-panel{border-left:0;grid-column:1/-1}}@media (width<=560px){.review-file-toolbar{grid-template-columns:minmax(0,1fr) auto}.review-file-context code,.review-file-mode{display:none}}@media (prefers-reduced-motion:reduce){.session-review-file{transition:none}}.review-source-picker{border-bottom:1px solid var(--border);flex:none;justify-content:space-between;align-items:center;gap:8px;min-width:0;min-height:44px;padding:6px 10px;font-size:12px;display:flex}.review-source-picker label{align-items:center;gap:8px;min-width:0;display:flex}.review-source-picker select{min-width:0;color:var(--text);background:var(--sidebar);border:1px solid var(--border);border-radius:6px;padding:4px 8px}.review-source-actions{align-items:center;gap:6px;min-width:0;margin-left:auto;display:flex}.review-source-actions>button{flex:none}@media (width<=560px){.review-source-picker{flex-wrap:wrap}}.provider-settings-dialog{color:var(--text);border:1px solid var(--border)!important;background:var(--page)!important;border-radius:8px!important;width:min(1080px,100vw - 16px)!important;max-width:calc(100vw - 16px)!important;max-height:calc(100dvh - 16px)!important;padding:0!important;overflow:hidden!important;box-shadow:0 16px 48px oklch(20% .015 250/.22)!important}.provider-settings-dialog::backdrop{background:oklch(0% 0 0/.38)}.provider-settings-surface{background:var(--page);flex-direction:column;width:100%;height:min(84dvh,100dvh - 16px);min-height:0;display:flex;position:relative;overflow:hidden}.provider-settings-header{border-bottom:1px solid var(--border);flex:0 0 50px;align-items:center;min-width:0;min-height:50px;padding:0 52px 0 18px;display:flex;position:relative}.provider-settings-title{white-space:nowrap;flex:none;font-size:15px}.provider-settings-navigation{align-items:stretch;gap:2px;min-width:0;height:50px;margin-left:22px;display:flex;overflow:auto hidden}.provider-settings-mobile-picker{display:none}.provider-settings-tab{width:102px;min-width:102px;height:100%;color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:0;justify-content:center;align-items:center;gap:6px;padding:0 4px;font-size:12px;transition:color .15s;display:flex;position:relative}.provider-settings-tab:after{background:var(--accent);content:"";opacity:0;border-radius:2px 2px 0 0;width:24px;height:2px;transition:opacity .15s,transform .15s;position:absolute;bottom:0;left:50%;transform:translate(-50%)scaleX(.5)}.provider-settings-tab:hover,.provider-settings-tab[aria-selected=true]{color:var(--text)}.provider-settings-tab[aria-selected=true]{font-weight:650}.provider-settings-tab[aria-selected=true]:after{opacity:1;transform:translate(-50%)scaleX(1)}.provider-settings-tab svg{flex:none;width:15px;height:15px}.provider-settings-close{position:absolute;top:10px;right:14px}.provider-settings-main{flex:1;min-width:0;min-height:0;display:flex;overflow:hidden}.provider-settings-main>[role=tabpanel]{width:100%;min-width:0;min-height:0;animation:.16s ease-out settings-panel-in}.provider-settings-main>[hidden],.provider-status-section[hidden]{display:none}.settings-general-panel{width:min(680px,100%);height:100%;padding:26px clamp(18px,4vw,40px) 44px;overflow-y:auto}.settings-page-heading,.settings-detail-heading{justify-content:space-between;align-items:flex-start;gap:24px;min-width:0;display:flex}.settings-page-heading>div,.settings-detail-heading>div{min-width:0}.settings-page-heading h1,.settings-detail-heading h1{overflow-wrap:anywhere;margin:0;font-size:18px;line-height:1.3}.settings-page-heading p,.settings-detail-heading p{color:var(--muted);margin:6px 0 0;font-size:11px;line-height:1.55}.settings-detail-heading>div>span{color:var(--muted);text-transform:uppercase;font-size:10px;font-weight:650}.settings-detail-heading h1{margin-top:5px;font-size:20px}.settings-detail-heading code{color:var(--muted);overflow-wrap:anywhere;margin-top:5px;font-size:11px;display:block}.settings-section-block{margin-top:30px}.settings-section-block>h2,.settings-role-principles>h2,.settings-resource-groups h2{margin:0 0 5px;font-size:13px;font-weight:650}.settings-theme-options{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;width:min(420px,100%);padding:3px;display:grid}.settings-theme-option{min-width:0;min-height:44px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:5px;justify-content:center;align-items:center;gap:7px;padding:0 6px;font-size:12px;display:flex;position:relative}.settings-theme-option input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.settings-theme-option:not([data-selected=true]):not(:has(input:disabled)):hover{background:var(--sidebar-hover);color:var(--text)}.settings-theme-option:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:1px}.settings-theme-option[data-selected=true]{background:var(--sidebar-active);color:var(--accent);font-weight:650}.settings-theme-option:has(input:disabled){cursor:default;opacity:.55}.settings-theme-option svg{flex:none;width:15px;height:15px}.settings-chat-controls{width:min(420px,100%)}.settings-chat-controls>[class*=astryx-switch],.settings-slider-control,.settings-slider-control+.settings-slider-control{margin-top:12px}.settings-slider-heading{grid-template-columns:minmax(0,1fr) auto 28px;align-items:center;gap:8px;font-size:12px;display:grid}.settings-slider-heading output{color:var(--muted);font:11px ui-monospace,SFMono-Regular,Menlo,monospace}.settings-reset-button{width:28px;height:28px;color:var(--muted);background:0 0;border:1px solid #0000;border-radius:5px;place-items:center;padding:0;display:grid}.settings-reset-button svg{width:14px;height:14px}.settings-reset-button:hover:not(:disabled){background:var(--sidebar-hover);color:var(--text)}.settings-reset-button:disabled{opacity:.4;cursor:default}.settings-reset-button:focus-visible,.provider-settings-tab:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.settings-pending-hint{color:var(--muted);margin:12px 0 0;font-size:12px;line-height:1.5}.settings-fact-grid{border-top:1px solid var(--border);grid-template-columns:repeat(2,minmax(0,1fr));width:min(680px,100%);display:grid}.settings-fact-grid>div{border-bottom:1px solid var(--border);grid-template-columns:22px minmax(0,1fr);align-content:center;column-gap:8px;min-width:0;min-height:72px;padding:10px 12px 10px 2px;display:grid}.settings-fact-grid>div:nth-child(odd){border-right:1px solid var(--border)}.settings-fact-grid svg{width:15px;height:15px;color:var(--muted);grid-row:1/3;margin-top:2px}.settings-fact-grid span{color:var(--muted);font-size:10.5px}.settings-fact-grid strong{overflow-wrap:anywhere;min-width:0;font-size:11.5px}.settings-load-state,.settings-empty-detail{min-height:160px;color:var(--muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:7px;padding:20px;font-size:12px;display:flex}.settings-load-state.error strong{color:var(--error)}.settings-load-state button{border:1px solid var(--border-strong);background:var(--page);cursor:pointer;border-radius:5px;min-height:30px;margin-top:4px;padding:0 10px}.settings-load-state svg,.settings-empty-detail svg{width:20px;height:20px}.settings-spin{animation:.9s linear infinite settings-spin}@keyframes settings-spin{to{transform:rotate(360deg)}}.settings-split-panel{width:100%;min-width:0;height:100%;min-height:0;display:flex;overflow:hidden}.settings-resource-sidebar{border-right:1px solid var(--border);background:var(--sidebar);flex-direction:column;width:240px;min-width:240px;min-height:0;display:flex}.settings-resource-list{flex:1;min-height:0;padding:8px 6px;overflow-y:auto}.settings-resource-group+.settings-resource-group{margin-top:8px}.settings-sidebar-label{color:var(--settings-secondary-text);text-transform:uppercase;padding:4px 8px 7px;font-size:9.5px;font-weight:700;display:block}.settings-resource-item{width:100%;min-width:0;min-height:44px;color:var(--muted);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:5px;align-items:center;gap:9px;padding:6px 8px;display:flex}.settings-resource-item:hover,.settings-resource-item[aria-current=page]{background:var(--sidebar-hover);color:var(--text)}.settings-resource-item[aria-current=page]{background:var(--sidebar-active)}.settings-resource-item>svg{flex:none;width:15px;height:15px}.settings-resource-item>span{flex-direction:column;flex:1;min-width:0;display:flex}.settings-resource-item strong,.settings-resource-item small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.settings-resource-item strong{font-size:11.5px;font-weight:620}.settings-resource-item small{color:var(--settings-secondary-text);font-size:9.5px}.settings-resource-empty{color:var(--muted);padding:18px 10px;font-size:11px}.settings-sidebar-footer{border-top:1px solid var(--border);min-height:48px;color:var(--settings-secondary-text);flex:none;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px 8px 14px;font-size:9.5px;display:flex}.settings-sidebar-footer>span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.settings-sidebar-footer>button:not(.astryx-button){width:28px;height:28px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:5px;flex:none;place-items:center;display:grid}.settings-sidebar-footer>button:hover{background:var(--sidebar-hover);color:var(--text)}.settings-sidebar-footer svg{width:14px;height:14px}.settings-sidebar-footer-action{justify-content:flex-start;padding:8px}.settings-resource-detail{flex:1;min-width:0;min-height:0;padding:24px 20px 40px;overflow-y:auto}.settings-status-badge{border:1px solid var(--border);min-height:24px;color:var(--muted);white-space:nowrap;border-radius:4px;align-items:center;padding:0 8px;font-size:10px;display:inline-flex}.settings-status-badge.healthy{border-color:var(--healthy)}@supports (color:color-mix(in lab, red, red)){.settings-status-badge.healthy{border-color:color-mix(in oklch, var(--healthy) 32%, var(--border))}}.settings-status-badge.healthy{color:var(--healthy)}.settings-detail-metadata{border:1px solid var(--border);background:var(--border);border-radius:6px;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin:24px 0 0;display:grid;overflow:hidden}.settings-detail-metadata>div{background:var(--page);min-width:0;padding:12px}.settings-detail-metadata dt{color:var(--muted);font-size:10px}.settings-detail-metadata dd{overflow-wrap:anywhere;min-width:0;margin:4px 0 0;font-size:11.5px;font-weight:600}.settings-detail-metadata code,.settings-path-block code,.settings-resource-groups code{font:10.5px ui-monospace,SFMono-Regular,Menlo,monospace}.settings-path-block{border-top:1px solid var(--border);border-bottom:1px solid var(--border);gap:10px;margin-top:24px;padding:13px 2px;display:flex}.settings-path-block>svg{width:16px;height:16px;color:var(--muted);flex:none;margin-top:2px}.settings-path-block>div{flex-direction:column;gap:4px;min-width:0;display:flex}.settings-path-block strong{font-size:11px}.settings-path-block code{color:var(--muted);overflow-wrap:anywhere}.settings-subagents-panel{flex-direction:column;width:100%;height:100%;min-height:0;display:flex;overflow:hidden}.settings-subagent-summary{border-bottom:1px solid var(--border);background:var(--sidebar);flex:none;justify-content:space-between;align-items:center;gap:18px;min-height:68px;padding:10px 18px;display:flex}.settings-subagent-summary>div:first-child{flex-direction:column;min-width:0;display:flex}.settings-subagent-summary strong{font-size:11.5px}.settings-subagent-summary span{color:var(--muted);font-size:10px}.settings-subagent-metrics{flex:none;gap:14px;display:flex}.settings-subagent-split{flex:1}.settings-role-principles,.settings-resource-groups{margin-top:26px}.settings-role-principles>div{border-bottom:1px solid var(--border);grid-template-columns:22px minmax(0,1fr);gap:8px;padding:11px 2px;display:grid}.settings-role-principles svg{width:15px;height:15px;color:var(--muted)}.settings-role-principles p,.settings-resource-groups p{color:var(--muted);margin:0;font-size:11px;line-height:1.55}.settings-resource-groups>div{margin-top:22px}.settings-resource-groups ul{border-top:1px solid var(--border);margin:0;padding:0;list-style:none}.settings-resource-groups li{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;min-width:0;padding:10px 2px;display:flex}.settings-resource-groups li>div{flex-direction:column;gap:2px;min-width:0;display:flex}.settings-resource-groups li strong{font-size:11.5px}.settings-resource-groups li code{color:var(--muted);overflow-wrap:anywhere}.settings-resource-groups li>span{color:var(--muted);white-space:nowrap;flex:none;font-size:10px}.settings-global-error{border-top:1px solid var(--error);flex:none;padding:9px 16px}@supports (color:color-mix(in lab, red, red)){.settings-global-error{border-top:1px solid color-mix(in oklch, var(--error) 42%, var(--border))}}.settings-global-error{background:var(--page);color:var(--error);font-size:11px}.settings-global-status{border-top:1px solid var(--border);background:var(--healthy);flex:none;padding:8px 16px}@supports (color:color-mix(in lab, red, red)){.settings-global-status{background:color-mix(in oklch, var(--healthy) 8%, var(--page))}}.settings-global-status{color:var(--healthy);font-size:11px}.settings-summary-list{border-top:1px solid var(--border);max-width:560px;margin:0}.settings-summary-list>div{border-bottom:1px solid var(--border);grid-template-columns:150px minmax(0,1fr);align-items:baseline;gap:20px;min-height:48px;padding:13px 4px;display:grid}.settings-summary-list dt{color:var(--muted);font-size:11px}.settings-summary-list dd{overflow-wrap:anywhere;min-width:0;margin:0;font-size:12px;font-weight:600}.settings-runtime-action{margin-top:18px}.settings-models{display:flex;overflow:hidden}.settings-model-sidebar{border-right:1px solid var(--border);background:var(--sidebar);flex-direction:column;width:240px;min-width:240px;min-height:0;display:flex}.settings-model-list{flex:1;min-height:0;padding:8px 6px;overflow-y:auto}.settings-model-group{margin:0 0 8px}.settings-model-group h2{align-items:center;gap:6px;min-width:0;margin:0;padding:4px 8px;font-size:11px;font-weight:650;display:flex}.settings-model-group h2 svg{width:13px;height:13px;color:var(--muted);flex:none}.settings-model-group h2 span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.settings-model-group h2 small{min-width:18px;color:var(--settings-secondary-text);text-align:right;margin-left:auto;font-size:9.5px;font-weight:500}.settings-model-item,.settings-model-provider-link{width:100%;min-width:0;min-height:32px;color:var(--muted);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:5px;align-items:center;gap:8px;padding:0 8px;font-size:12px;display:flex}.settings-model-item{padding-left:26px}.settings-model-item:hover,.settings-model-item[aria-current=page]{background:var(--sidebar-hover);color:var(--text)}.settings-model-item[aria-current=page]{background:var(--sidebar-active);font-weight:650}.settings-model-item>span{flex-direction:column;flex:1;justify-content:center;min-width:0;display:flex}.settings-model-item strong,.settings-model-item small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.settings-model-item strong{font-size:11.5px;font-weight:580}.settings-model-item small{color:var(--settings-secondary-text);font:9.5px ui-monospace,SFMono-Regular,Menlo,monospace}.settings-model-item svg,.settings-model-provider-link svg{flex:none;width:14px;height:14px}.settings-model-provider-link{min-height:48px;color:var(--settings-secondary-text);border-top:1px solid var(--border);cursor:pointer;border-radius:0;flex:none;padding:0 14px}.settings-model-provider-link:hover{background:var(--sidebar-hover);color:var(--accent)}.settings-model-empty{color:var(--muted);padding:20px 10px;font-size:12px}.settings-model-detail{flex:1;min-width:0;min-height:0;padding:24px 20px 40px;overflow-y:auto}.settings-model-detail-heading{justify-content:space-between;align-items:flex-start;gap:24px;min-width:0;display:flex}.settings-model-detail-heading>div{min-width:0}.settings-model-detail-heading span{color:var(--muted);text-transform:uppercase;font-size:10px;font-weight:650}.settings-model-detail-heading h1{overflow-wrap:anywhere;margin:6px 0 4px;font-size:20px}.settings-model-detail-heading code{color:var(--muted);overflow-wrap:anywhere;font-size:11px}.settings-model-metadata{border:1px solid var(--border);background:var(--border);border-radius:6px;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin:24px 0 0;display:grid;overflow:hidden}.settings-model-metadata>div{background:var(--page);min-width:0;padding:12px}.settings-model-metadata dt{color:var(--muted);font-size:10px}.settings-model-metadata dd{overflow-wrap:anywhere;margin:4px 0 0;font:12px ui-monospace,SFMono-Regular,Menlo,monospace}.provider-status-detail{margin-top:26px}.provider-status-detail>.settings-form-field{margin-bottom:16px}.provider-detail-heading{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;padding-bottom:10px;display:flex}.provider-detail-heading>div{gap:2px;display:grid}.provider-detail-heading span{color:var(--muted);font-size:10px}.provider-detail-heading strong{font-size:13px}.provider-connection-card{border:1px solid var(--border);background:var(--page);border-radius:7px;margin-top:14px;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.provider-connection-card{background:color-mix(in oklch, var(--page) 86%, var(--sidebar))}}.provider-connection-card[data-configured=true]{border-color:var(--healthy)}@supports (color:color-mix(in lab, red, red)){.provider-connection-card[data-configured=true]{border-color:color-mix(in oklch, var(--healthy) 24%, var(--border))}}.provider-connection-state{grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:68px;padding:11px 13px;display:grid}.provider-connection-facts{border-top:1px solid var(--border);grid-template-columns:repeat(3,minmax(0,1fr));margin:0;display:grid}.provider-connection-facts>div{min-width:0;padding:11px 13px}.provider-connection-facts>div+div{border-left:1px solid var(--border)}.provider-connection-facts dt{color:var(--settings-secondary-text);font-size:9.5px}.provider-connection-facts dd{overflow-wrap:anywhere;margin:4px 0 0;font-size:11px;font-weight:600}.provider-refresh{border:1px solid var(--border-strong);background:var(--page);cursor:pointer;border-radius:6px;flex:none;align-items:center;gap:7px;min-height:32px;padding:0 10px;font-size:11px;display:inline-flex}.provider-refresh:hover:not(:disabled){background:var(--sidebar-hover)}.provider-refresh:disabled{cursor:default;opacity:.5}.provider-refresh svg{width:14px;height:14px}.provider-state-icon{color:var(--subtle)}.provider-state-icon.configured{color:var(--healthy)}.provider-state-icon svg{width:17px;height:17px}.provider-identity{flex-direction:column;gap:1px;min-width:0;display:flex}.provider-identity strong{overflow-wrap:anywhere;font-size:13px}.provider-identity>span{color:var(--muted);overflow-wrap:anywhere;font:10.5px ui-monospace,SFMono-Regular,Menlo,monospace}.provider-identity small{color:var(--muted);margin-top:3px;font-size:10.5px}.provider-state-label{color:var(--muted);white-space:nowrap;font-size:11px}.provider-state-label.configured{color:var(--healthy)}.provider-settings-state{min-height:150px;color:var(--muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:5px;display:flex}.provider-settings-state strong{color:var(--text)}.provider-settings-state.error strong{color:var(--error)}.provider-settings-state button{border:1px solid var(--border-strong);background:var(--page);border-radius:6px;min-height:32px;margin-top:8px;padding:0 12px}.provider-read-only{border-top:1px solid var(--border);color:var(--muted);gap:12px;margin-top:18px;padding:14px 0;display:flex}.provider-read-only>svg{flex:none;width:17px;height:17px;margin-top:2px}.provider-read-only strong{color:var(--text);font-size:11px}.provider-read-only p{margin:3px 0 0;font-size:10.5px;line-height:1.55}.provider-read-only small{color:var(--settings-secondary-text);margin-top:5px;font-size:9.5px;display:block}@keyframes settings-panel-in{0%{transform:translateY(3px)}to{transform:none}}@media (width<=760px){.provider-settings-dialog{width:calc(100vw - 8px)!important;max-width:calc(100vw - 8px)!important;max-height:calc(100dvh - 8px)!important}.provider-settings-surface{height:calc(100dvh - 8px)}.provider-settings-header{padding-left:8px}.provider-settings-title{display:none}.provider-settings-navigation{width:100%;margin-left:0;padding-right:34px}.provider-settings-tab{flex:1;width:auto;min-width:94px}.settings-general-panel{width:100%;padding:22px 16px 34px}.settings-page-heading,.settings-detail-heading{gap:12px}.settings-page-heading{align-items:center}.settings-fact-grid,.settings-detail-metadata{grid-template-columns:minmax(0,1fr)}.settings-fact-grid>div:nth-child(odd){border-right:0}.settings-split-panel{flex-direction:column}.settings-resource-sidebar{border-right:0;border-bottom:1px solid var(--border);width:100%;min-width:0;max-height:220px}.settings-resource-detail{padding:20px 16px 32px}.settings-subagent-summary{flex-direction:column;align-items:flex-start;gap:7px;min-height:78px;padding:10px 14px}.settings-subagent-metrics{justify-content:space-between;gap:8px;width:100%}.settings-subagent-split{min-height:0}.settings-resource-groups li{flex-direction:column;align-items:flex-start;gap:4px}.settings-models{flex-direction:column}.settings-model-sidebar{border-right:0;border-bottom:1px solid var(--border);width:100%;min-width:0;max-height:190px}.settings-model-detail{padding:20px 16px 32px}.settings-model-detail-heading{gap:12px}.settings-model-metadata{grid-template-columns:minmax(0,1fr)}.settings-summary-list>div{grid-template-columns:minmax(0,1fr);gap:4px}.provider-connection-state{grid-template-columns:22px minmax(0,1fr)}.provider-state-label{grid-column:2}.provider-connection-facts{grid-template-columns:minmax(0,1fr)}.provider-connection-facts>div+div{border-top:1px solid var(--border);border-left:0}}@media (width<=640px){.provider-settings-header{padding-left:14px;padding-right:52px}.provider-settings-navigation{display:none}.provider-settings-title{display:block}.provider-settings-mobile-picker{border:1px solid var(--border);background:var(--sidebar);width:100%;min-width:0;max-width:210px;height:32px;color:var(--text);font:inherit;border-radius:5px;margin-left:14px;padding:0 9px;font-size:16px;display:block}}@media (prefers-reduced-motion:reduce){.provider-settings-tab,.provider-settings-tab:after,.provider-settings-main>[role=tabpanel]{transition:none;animation:none}}.settings-edit-form{gap:12px;padding-block:16px;display:grid}.settings-edit-state{color:var(--muted);overflow-wrap:anywhere;margin:0;font-size:12px}.settings-model-item:disabled,.settings-model-provider-link:disabled,.provider-settings-close:disabled{opacity:.5;cursor:not-allowed}.settings-form-field{gap:6px;min-width:0;display:grid}.settings-form-field input,.settings-form-field select,.settings-form-field textarea{border:1px solid var(--border);width:100%;min-width:0;color:inherit;background:var(--page);font:inherit;border-radius:6px;padding:8px 10px}.settings-edit-form button{border:1px solid var(--border);border-radius:6px;justify-self:start;padding:8px 14px}.app-shell.with-workbar-panel{grid-template-columns:var(--sidebar-width) minmax(0, 1fr) var(--auxiliary-width)}.app-shell.with-workbar-panel.sidebar-collapsed{grid-template-columns:56px minmax(0, 1fr) var(--auxiliary-width)}.app-shell.with-workbar-panel.center-collapsed{grid-template-columns:var(--sidebar-width) minmax(0, 1fr)}.app-shell.with-workbar-panel.center-collapsed.sidebar-collapsed{grid-template-columns:56px minmax(0,1fr)}.app-shell.with-workbar-panel.center-collapsed>.conversation-shell{display:none}.workbar-panel{border-left:1px solid var(--border);background:var(--page);min-width:0;height:100dvh;min-height:0;color:var(--text);flex-direction:column;display:flex;overflow:hidden}.workbar-tabbar{border-bottom:1px solid var(--border);flex:none;justify-content:space-between;align-items:center;gap:8px;min-height:46px;padding:0 8px 0 10px;display:flex}.workbar-tabs,.workbar-tabbar-actions{align-items:center;gap:2px;min-width:0;display:flex}.workbar-tabs{scrollbar-width:none;flex:1;align-self:stretch;min-height:45px;overflow-x:auto}.workbar-tabs::-webkit-scrollbar{display:none}.workbar-tab{border-bottom:2px solid #0000;align-items:center;min-width:0;height:100%;display:flex;position:relative}.workbar-tab[data-active=true]{border-bottom-color:var(--accent)}.workbar-tab>button:first-child{min-width:0;height:100%;color:var(--muted);cursor:pointer;background:0 0;border:0;align-items:center;gap:7px;padding:0 26px 0 8px;display:flex}.workbar-tab[data-active=true]>button:first-child{color:var(--text)}.workbar-tab>button:first-child>svg,.workbar-tab-placeholder>svg{flex:none;width:14px;height:14px}.workbar-tab>button:first-child>span{text-overflow:ellipsis;white-space:nowrap;max-width:112px;font-size:11.5px;font-weight:560;overflow:hidden}.workbar-tab-close{width:20px;height:20px;color:var(--subtle);cursor:pointer;background:0 0;border:0;border-radius:4px;place-items:center;padding:0;display:grid;position:absolute;right:4px}.workbar-tab-close:hover{background:var(--sidebar-hover);color:var(--text)}.workbar-tab-close svg{width:12px;height:12px}.workbar-tab-placeholder{color:var(--muted);align-items:center;gap:7px;padding-left:7px;font-size:11.5px;display:inline-flex}.workbar-tabbar-actions{flex:none}.workbar-tabbar-actions .icon-button,.workbar-add-tab{width:30px;height:30px}.workbar-panels,.workbar-tool-panel{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.workbar-tool-panel[hidden]{display:none}.workbar-launcher{flex:1;place-items:center;min-height:0;padding:32px 24px;display:grid;overflow-y:auto}.workbar-launcher-list{width:min(100%,390px)}.workbar-launcher-list>button{border:0;border-bottom:1px solid var(--border);width:100%;min-height:58px;color:var(--text);text-align:left;cursor:pointer;background:0 0;grid-template-columns:20px minmax(0,1fr) 16px;align-items:center;gap:13px;padding:9px 8px;display:grid}.workbar-launcher-list>button:first-child{border-top:1px solid var(--border)}.workbar-launcher-list>button:hover,.workbar-launcher-list>button:focus-visible{background:var(--sidebar-hover)}.workbar-launcher-list>button>svg:first-child{width:17px;height:17px;color:var(--muted)}.workbar-launcher-list>button>svg:last-child{width:14px;height:14px;color:var(--subtle)}.workbar-launcher-list span,.workbar-resource-list span,.side-conversation-list span{gap:1px;min-width:0;display:grid}.workbar-launcher-list strong,.workbar-resource-list strong,.side-conversation-list strong{text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;font-weight:600;overflow:hidden}.workbar-launcher-list small,.workbar-resource-list small,.side-conversation-list small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;font-style:normal;overflow:hidden}.workbar-back,.workbar-detail-toolbar>button:first-child{min-height:32px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:5px;align-self:flex-start;align-items:center;gap:7px;padding:0 8px;font-size:11px;display:inline-flex}.workbar-back:hover,.workbar-detail-toolbar>button:first-child:hover{background:var(--sidebar-hover);color:var(--text)}.workbar-back svg,.workbar-detail-toolbar>button:first-child svg{width:14px;height:14px}.side-conversation-body{flex-direction:column;flex:1;min-height:0;display:flex}.side-conversation-body>.workbar-back{margin:10px 16px 0}.side-conversation-body>.subagent-detail{flex:1;min-height:0;padding:12px 16px;overflow:hidden}.side-conversation-body .subagent-task{border-bottom:1px solid var(--border);padding-bottom:8px}.side-conversation-body .subagent-task pre{color:var(--muted);background:0 0;border-radius:0;padding:0}.side-conversation-body .subagent-transcript{padding:4px 2px 12px 0}.side-conversation-body .subagent-footnote{flex:none}.side-conversation-list{flex:1;min-height:0;padding:26px 18px;overflow-y:auto}.side-conversation-intro,.workbar-empty{min-height:210px;color:var(--muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.side-conversation-intro>svg,.workbar-empty>svg{width:24px;height:24px;color:var(--subtle);margin-bottom:12px}.side-conversation-intro h3,.workbar-empty h3{color:var(--text);margin:0;font-size:13px;font-weight:620}.side-conversation-intro p,.workbar-empty p{max-width:300px;margin:5px 0 0;font-size:11px}.side-conversation-list ul,.workbar-resource-list ul{margin:0;padding:0;list-style:none}.side-conversation-list li>button,.workbar-resource-list li>button{border:0;border-bottom:1px solid var(--border);width:100%;min-width:0;min-height:52px;color:var(--text);text-align:left;cursor:pointer;background:0 0;grid-template-columns:minmax(0,1fr) 16px;align-items:center;gap:10px;padding:7px 8px;display:grid}.side-conversation-list li:first-child>button,.workbar-resource-list li:first-child>button{border-top:1px solid var(--border)}.side-conversation-list li>button:hover,.workbar-resource-list li>button:hover{background:var(--sidebar-hover)}.side-conversation-list li>button>svg,.workbar-resource-list li>button>svg:last-child{width:14px;height:14px;color:var(--subtle)}.side-conversation-composer{z-index:2;border-top:1px solid var(--border);background:var(--page);flex:none;gap:8px;padding:12px 14px 14px;display:grid;position:relative}.side-conversation-composer textarea{resize:vertical;border:1px solid var(--border-strong);background:var(--page);width:100%;min-height:68px;max-height:180px;color:var(--text);border-radius:7px;padding:9px 10px;font-size:12px;line-height:1.55}.side-conversation-composer>div{justify-content:flex-end;gap:8px;display:flex}.side-conversation-composer button{border:1px solid var(--text);background:var(--text);min-height:31px;color:var(--page);cursor:pointer;border-radius:6px;align-items:center;gap:6px;padding:0 10px;font-size:11px;display:inline-flex}.side-conversation-composer button.secondary{border-color:var(--border-strong);background:var(--page);color:var(--muted)}.side-conversation-composer button:disabled{opacity:.45;cursor:default}.side-conversation-composer button svg{width:13px;height:13px}.workbar-error{color:var(--error);overflow-wrap:anywhere;margin:8px 16px;font-size:11px}.workbar-resource-list{flex:1;min-height:0;padding:14px 16px 24px;overflow-y:auto}.workbar-resource-list li>button{grid-template-columns:18px minmax(0,1fr) 16px}.workbar-resource-list li>button>svg:first-child{width:15px;height:15px;color:var(--muted)}.terminal-workspace{background:#101316;flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.interactive-terminal{color:#d7dde3;background:#101316;flex:1;grid-template-rows:auto auto minmax(0,1fr);min-width:0;min-height:0;display:grid}.interactive-terminal-status{border-bottom:1px solid #2c3238;justify-content:space-between;align-items:center;gap:10px;min-width:0;min-height:36px;padding:5px 8px 5px 12px;font:10.5px ui-monospace,SFMono-Regular,Menlo,monospace;display:flex}.interactive-terminal-status>div{align-items:center;gap:8px;min-width:0;display:flex}.interactive-terminal-status>div>span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.terminal-status-dot{background:#77808a;border-radius:50%;flex:none;width:7px;height:7px}.terminal-status-dot.ready{background:#56d364}.terminal-status-dot.connecting,.terminal-status-dot.reconnecting,.terminal-status-dot.restarting{background:#e3b341}.terminal-status-dot.error{background:#ff7b72}.interactive-terminal-status>.interactive-terminal-actions{flex:none;gap:4px}.interactive-terminal-status button{color:#9da7b1;cursor:pointer;background:0 0;border:0;border-radius:5px;flex:none;place-items:center;width:26px;height:26px;padding:0;display:grid}.interactive-terminal-status button:hover{color:#fff;background:#23282e}.interactive-terminal-status button:disabled{opacity:.5;cursor:default}.openpi-dialog .terminal-restart-error{color:var(--error)}.interactive-terminal-status button svg{width:14px;height:14px}.interactive-terminal-notice{color:#9da7b1;min-height:0;padding:0 12px;font-size:10px}.interactive-terminal-notice:not(:empty){border-bottom:1px solid #2c3238;padding-top:5px;padding-bottom:5px}.interactive-terminal-notice .error{color:#ff9b93}.interactive-terminal-viewport{min-width:0;min-height:0;padding:8px 6px 6px 10px;overflow:hidden}.interactive-terminal-host,.interactive-terminal-host .xterm{width:100%;height:100%}.terminal-agent-activity{background:var(--page);max-height:38%;color:var(--text);border-top:1px solid #2c3238;flex:none;overflow:auto}.terminal-agent-activity>summary{cursor:pointer;grid-template-columns:16px minmax(0,1fr) auto 14px;align-items:center;gap:8px;min-height:38px;padding:6px 12px;font-size:11px;list-style:none;display:grid}.terminal-agent-activity>summary::-webkit-details-marker{display:none}.terminal-agent-activity>summary>svg{width:14px;height:14px}.terminal-agent-activity>summary>svg:last-child{transition:transform .12s}.terminal-agent-activity[open]>summary>svg:last-child{transform:rotate(90deg)}.terminal-agent-activity>summary small{color:var(--muted)}.terminal-agent-activity ul{margin:0;padding:0 10px 10px;list-style:none}.terminal-agent-activity li{border-top:1px solid var(--border);padding:7px 8px}.terminal-agent-activity li>span{gap:1px;min-width:0;display:grid}.terminal-agent-activity li strong{text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.terminal-agent-activity li small{color:var(--muted);font-size:10px}.browser-workspace,.browser-page{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.browser-pages{flex:1;min-height:0;display:flex;overflow:hidden}.browser-page[hidden]{display:none}.browser-tabs-header{border-bottom:1px solid var(--border);min-width:0;display:flex}.browser-tabs{min-width:0;display:flex;overflow-x:auto}.browser-tab{border-right:1px solid var(--border);flex:none;max-width:190px;display:flex}.browser-tab[data-active=true]{background:var(--sidebar-hover)}.browser-tab button,.browser-add-tab{min-width:0;color:var(--muted);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;gap:6px;padding:9px 6px;display:flex}.browser-tab button[role=tab]{padding-left:10px}.browser-tab button[aria-selected=true]{color:var(--text)}.browser-tab button span{text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.browser-tab svg,.browser-add-tab svg{flex-shrink:0;width:14px;height:14px}.browser-add-tab{flex-shrink:0;width:34px}.browser-add-tab:disabled{opacity:.4;cursor:default}.browser-direct-viewport{background:#fff;min-height:0;display:flex;overflow:hidden}.browser-direct-viewport>iframe{border:0;width:100%;height:100%}.browser-direct-viewport>.workbar-empty{color:#555;flex:1}.browser-notice{color:var(--muted);overflow-wrap:anywhere;margin:0;padding:6px 9px;font-size:10px;line-height:1.5}.browser-tool{flex:1;grid-template-rows:auto auto minmax(0,1fr) auto;min-width:0;min-height:0;display:grid}.browser-toolbar{border-bottom:1px solid var(--border);grid-template-columns:repeat(3,30px) minmax(0,1fr) repeat(2,30px);gap:5px;padding:8px;display:grid}.browser-toolbar button{width:30px;height:30px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:5px;place-items:center;padding:0;display:grid}.browser-toolbar button:hover:not(:disabled){background:var(--sidebar-hover);color:var(--text)}.browser-toolbar button:disabled{opacity:.35;cursor:default}.browser-toolbar button svg{width:14px;height:14px}.browser-toolbar input{border:1px solid var(--border);background:var(--sidebar);min-width:0;height:30px;color:var(--text);border-radius:5px;padding:0 9px;font-size:11px}@media (width<=1100px){.app-shell.with-workbar-panel,.app-shell.with-workbar-panel.sidebar-collapsed{grid-template-columns:minmax(0,1fr)}.with-workbar-panel>.conversation-shell,.with-workbar-panel>.session-sidebar,.with-workbar-panel>.sidebar-expand{display:none}.workbar-panel{border-left:0;grid-column:1/-1}}@media (width<=520px){.workbar-launcher,.workbar-resource-list,.side-conversation-list{padding-left:12px;padding-right:12px}}.turn-elapsed-running{color:var(--muted);font-variant-numeric:tabular-nums}.turn-duration{color:var(--muted);font-variant-numeric:tabular-nums;align-items:center;gap:12px;margin:16px 0;font-size:11px;display:flex}.turn-duration:after{background:var(--border);content:"";flex:1;height:1px}.turn-changes{border:1px solid var(--border);background:var(--page);border-radius:8px;min-width:0;margin:10px 0 4px;overflow:hidden}.turn-changes-header{border-bottom:1px solid var(--border);grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:12px;min-width:0;padding:12px 16px;display:grid}.turn-changes-icon{background:var(--sidebar);width:38px;height:38px;color:var(--muted);border-radius:6px;place-items:center;display:grid}.turn-changes-icon svg{width:19px;height:19px}.turn-changes-summary{gap:2px;min-width:0;display:grid}.turn-changes-summary>strong{overflow-wrap:anywhere;font-size:14px;font-weight:650}.turn-changes-totals,.turn-changes-file-stats{white-space:nowrap;font-variant-numeric:tabular-nums;gap:7px;display:flex}.turn-changes-totals{font-size:13px}.turn-changes-review-button{border:1px solid var(--border-strong);background:var(--page);min-width:36px;min-height:32px;color:var(--text);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;padding:5px 10px;font-size:12px;display:inline-flex}.turn-changes-review-button:hover,.turn-changes-review-button:focus-visible{background:var(--sidebar-hover)}.turn-changes-review-button svg{width:16px;height:16px}.turn-changes-list{padding:6px 12px 10px}.turn-changes-file{width:100%;min-width:0;min-height:39px;color:var(--text);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:5px;justify-content:space-between;align-items:center;gap:12px;padding:5px 7px;display:flex}.turn-changes-file:hover,.turn-changes-file:focus-visible,.turn-changes-file[aria-pressed=true]{background:var(--sidebar-hover)}.turn-changes-path{min-width:0;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.turn-changes-path strong{color:var(--text);font-weight:550}.turn-changes-file-stats{flex:none;font-size:11px}.turn-changes-more{min-height:32px;color:var(--text);cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:3px 7px;font-size:12px;display:inline-flex}.turn-changes-more:hover{color:var(--accent)}.turn-changes-more svg{width:14px;height:14px}.turn-changes-more svg.up{transform:rotate(180deg)}.turn-changes-warning{color:var(--muted);margin:7px;font-size:12px}.turn-changes-unavailable{border-left:2px solid var(--border-strong);color:var(--muted);margin:10px 0 4px;padding:8px 10px;font-size:12px}.turn-changes-review{max-height:min(62vh,560px);padding:8px 12px 12px;overflow:auto}.turn-changes-review>p[role]{color:var(--muted);margin:8px;font-size:12px}.turn-changes-review>p[role] button{border:1px solid var(--border);background:var(--page);color:var(--text);cursor:pointer;border-radius:5px;padding:4px 8px}.turn-changes-review-files{border-bottom:1px solid var(--border);max-height:176px;display:grid;overflow-y:auto}.turn-changes-review .review-file-diff{margin-top:8px}@media (width<=560px){.turn-changes-header{grid-template-columns:32px minmax(0,1fr) auto;gap:8px;padding:10px}.turn-changes-icon{width:32px;height:32px}.turn-changes-list{padding:5px}.turn-changes-file{gap:6px}}.message-load-full{border:1px solid var(--border-strong);background:var(--page);min-height:30px;color:var(--text);cursor:pointer;border-radius:5px;align-items:center;margin:5px 0;padding:4px 9px;font-size:12px;display:inline-flex}.message-load-full:hover:not(:disabled):not([aria-disabled=true]){background:var(--sidebar-hover)}.message-load-full:disabled,.message-load-full[aria-disabled=true]{opacity:.6;cursor:default}.message-full-text:focus-visible{outline:2px solid var(--focus);outline-offset:3px}.composer-session-notice{border:1px solid var(--border);background:var(--page);color:var(--muted);border-radius:10px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;padding:8px 12px;font-size:12px;display:flex}.conversation .message-row.response .markdown{letter-spacing:.005em;font-weight:450;line-height:1.8}.conversation .message-row.response .message-content,.conversation .message-row.response>.message-actions{width:100%;max-width:100%}.conversation .message-row.assistant.final-response{padding-inline:0}.conversation .message-row.response .markdown p{margin-bottom:1.15em}.conversation .message-row.response .markdown :is(ul,ol){margin-bottom:1.15em;padding-left:1.65em}.conversation .message-row.response .markdown ul{list-style:outside}.conversation .message-row.response .markdown ol{list-style:decimal}.conversation .message-row.response .markdown .contains-task-list{list-style:none}.conversation .message-row.response .markdown li+li{margin-top:.55em}.conversation .message-row.response .markdown li>:is(p,ul,ol){margin-bottom:.55em}.conversation .message-row.response .markdown :is(h1,h2,h3,h4){margin-top:1.6em;margin-bottom:.65em;line-height:1.45}.conversation .message-row.response .markdown :not(pre)>code{background:var(--text);border:0;border-radius:.4em;padding:.08em .35em}@supports (color:color-mix(in lab, red, red)){.conversation .message-row.response .markdown :not(pre)>code{background:color-mix(in srgb, var(--text) 8%, var(--page))}}.conversation .message-row.response .markdown :not(pre)>code{color:var(--text);-webkit-box-decoration-break:clone;box-decoration-break:clone;font-size:.93em}.conversation .message-row.response .markdown pre code{font-size:.9em;line-height:1.65}.conversation .message-row.response .markdown :is(a,.artifact-link){text-align:start;text-decoration:none}.conversation .message-row.response .markdown :is(a,.artifact-link):hover{text-underline-offset:.18em;text-decoration:underline}.conversation .message-row.response .markdown .artifact-link-path{display:none}.conversation .message-row.response .markdown .artifact-link:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:3px}.conversation .message-row.user{padding-block:12px 24px}.conversation .message-row.user .message-body{background:var(--text);border-radius:22px;padding:12px 18px}@supports (color:color-mix(in lab, red, red)){.conversation .message-row.user .message-body{background:color-mix(in srgb, var(--text) 5%, var(--page))}}.conversation .message-row.user .message-body{box-shadow:none;line-height:1.75}.conversation-history{max-width:var(--conversation-content-width);color:var(--muted);flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 12px;margin:0 auto 12px;padding:8px 16px;font-size:12px;display:flex}.conversation-history p{text-align:center;width:100%;margin:0}.conversation-history button{border:1px solid var(--border-strong);background:var(--page);color:var(--text);cursor:pointer;border-radius:6px;padding:6px 12px}.conversation-history button:disabled{opacity:.6;cursor:default}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--page:#fff;--sidebar:#f4f6f5;--sidebar-hover:#e8eeeb;--sidebar-active:#dde9e4;--border:oklch(91.6% .009 248);--border-strong:oklch(86.8% .014 248);--text:oklch(26.2% .018 249);--muted:oklch(52.5% .019 249);--subtle:oklch(65.2% .016 249);--settings-secondary-text:#4d5a61;--accent:oklch(51.6% .151 253);--focus:oklch(61.8% .14 251);--healthy:oklch(53.6% .12 158);--error:oklch(49.7% .187 28);--warning:oklch(56.4% .126 74);--conversation-content-width:820px;--conversation-font-size:14px;--sidebar-width:280px;--auxiliary-width:520px}*{box-sizing:border-box}.handoff-instructions{white-space:pre-wrap;overflow-wrap:anywhere;margin:8px 0 12px;font-size:13px}.settings-interaction{flex-shrink:0;max-height:55dvh;padding:0 20px;overflow-y:auto}.settings-interaction .question-panel{width:100%;margin:12px 0}.settings-interaction>button{border:1px solid var(--border);border-radius:6px;margin:8px 0;padding:6px 10px}.handoff-instructions p+p{margin-top:6px}.command-feedback{border-left:2px solid var(--border-strong);color:var(--muted);white-space:pre-wrap;overflow-wrap:anywhere;padding:10px 12px;font-size:13px;line-height:1.6}.plan-mode-bar{width:min(100% - 32px,800px);color:var(--muted);justify-content:flex-end;align-items:center;gap:12px;margin:0 auto 6px;font-size:12px;display:flex}.plan-mode-bar button{border:1px solid var(--border);min-height:28px;color:var(--text);border-radius:6px;padding:4px 8px}html,body,#root{width:100%;height:100%;overflow:hidden}body{background-color:var(--sidebar);color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font:14px/1.5 ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}::selection{background:oklch(51.6% .151 253/.18)}button,input,textarea{font:inherit;letter-spacing:0}input,textarea{caret-color:var(--accent)}button{color:inherit}button:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--focus);outline-offset:2px}svg{fill:none;stroke:currentColor;stroke-width:1.8px;width:1em;height:1em;display:block}.app-shell{grid-template-columns:var(--sidebar-width) minmax(0, 1fr);width:100%;height:100dvh;transition:grid-template-columns .18s;display:grid;position:relative}.app-shell.sidebar-collapsed{grid-template-columns:56px minmax(0,1fr)}.app-shell.is-resizing{-webkit-user-select:none;user-select:none;transition:none}.pane-resizer{z-index:35;touch-action:none;cursor:col-resize;border:0;width:9px;height:auto;margin:0;position:absolute;top:0;bottom:0}.pane-resizer:after{content:"";background:0 0;width:1px;transition:background-color .12s;position:absolute;top:0;bottom:0;left:4px}.pane-resizer:hover:after,.pane-resizer:focus-visible:after,.app-shell.is-resizing .pane-resizer:after{background:var(--focus)}.pane-resizer.left{left:calc(var(--sidebar-width) - 4px)}.pane-resizer.right{right:calc(var(--auxiliary-width) - 4px)}.session-sidebar{z-index:20;border-right:1px solid var(--border);background:var(--sidebar);flex-direction:column;min-height:0;padding:8px 10px;display:flex;position:relative;overflow:hidden}.sidebar-brand{height:calc(var(--spacing-1) * 11);justify-content:space-between;align-items:center;padding:0 4px 0 6px;display:flex}.brand-lockup{color:var(--text);align-items:center;font-weight:700;line-height:1;display:inline-flex}.brand-lockup.compact{font-size:18px}.compact .pixel-mark{width:21px;height:21px;margin-left:2px;display:inline-block;position:relative}.compact .pixel-mark i{background:currentColor;width:6px;height:6px;display:block;position:absolute}.compact .pixel-mark i:first-child{top:0;left:0}.compact .pixel-mark i:nth-child(2){top:0;left:5px}.compact .pixel-mark i:nth-child(3){top:0;left:10px}.compact .pixel-mark i:nth-child(4){top:5px;left:0}.compact .pixel-mark i:nth-child(5){top:5px;left:10px}.compact .pixel-mark i:nth-child(6){top:10px;left:0}.compact .pixel-mark i:nth-child(7){top:10px;left:5px}.compact .pixel-mark i:nth-child(8){top:10px;left:15px}.compact .pixel-mark i:nth-child(9){top:15px;left:0}.compact .pixel-mark i:nth-child(10){top:15px;left:15px}.collapse-button,.icon-button,.workspace-action,.sidebar-expand{border-style:var(--tw-border-style);color:var(--muted);background-color:#0000;border-width:0;border-radius:6px;flex-shrink:0;place-items:center;transition:background-color .14s,color .14s;display:grid}.collapse-button{width:30px;height:30px}.collapse-button svg,.icon-button svg{width:18px;height:18px}.collapse-button:hover,.icon-button:hover,.workspace-action:hover,.sidebar-expand:hover{background:var(--sidebar-hover);color:var(--text)}.new-session-button{justify-content:center;align-items:center;gap:calc(var(--spacing-1) * 2);border:1px solid var(--border-strong);background:var(--page);border-radius:19px;flex-shrink:0;width:calc(100% - 4px);height:38px;margin:8px 2px 10px;font-weight:550;display:flex}.new-session-button:hover{background:oklch(99% .004 248);border-color:oklch(78% .018 248)}.new-session-button svg{width:17px;height:17px}.workspace-heading{min-height:calc(var(--spacing-1) * 8);justify-content:space-between;align-items:center;padding:0 4px 0 8px;display:flex}.workspace-heading-label{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;font-size:11px;font-weight:650}.workspace-actions{gap:calc(var(--spacing-1) * .5);display:flex}.icon-button{width:28px;height:28px}.session-search{align-items:center;gap:calc(var(--spacing-1) * 1.5);flex:1;min-width:0;display:none}.session-search>svg{width:14px;height:14px;color:var(--subtle)}.session-search input{border-style:var(--tw-border-style);outline-style:var(--tw-outline-style);min-width:0;height:28px;color:var(--text);background-color:#0000;border-width:0;outline-width:0;flex:1;font-size:12px}.session-search button{width:calc(var(--spacing-1) * 6);height:calc(var(--spacing-1) * 6);border-style:var(--tw-border-style);color:var(--subtle);background-color:#0000;border-width:0;place-items:center;display:grid}.session-search button svg{width:14px;height:14px}.workspace-heading.is-searching .session-search{display:flex}.workspace-heading.is-searching .workspace-heading-label,.workspace-heading.is-searching .workspace-actions{display:none}.workspace-tree{min-height:0;padding-block:var(--spacing-1);scrollbar-width:thin;scrollbar-color:oklch(58% .02 250/.45) transparent;flex:1;overflow-y:auto}.workspace-group{margin-bottom:3px}.workspace-button{min-width:0;height:34px;color:var(--muted);cursor:pointer;border-radius:6px;align-items:center;display:flex}.workspace-button:hover{background:var(--sidebar-hover);color:var(--text)}.workspace-label{border-style:var(--tw-border-style);text-align:left;background-color:#0000;border-width:0;flex:1;align-items:center;min-width:0;height:100%;display:flex}.workspace-toggle{height:100%;width:calc(var(--spacing-1) * 7);border-style:var(--tw-border-style);background-color:#0000;border-width:0;flex-shrink:0;place-items:center;display:grid}.workspace-chevron{font-size:15px;transition:transform .14s;display:block;transform:rotate(0)}.workspace-group.collapsed .workspace-chevron{transform:rotate(-90deg)}.workspace-button strong{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:12.5px;font-weight:600;overflow:hidden}.workspace-row-actions{align-items:center;display:flex}.workspace-action{width:27px;height:27px}.workspace-action svg{width:14px;height:14px}.menu-action-button{width:27px!important;min-width:27px!important;height:27px!important;color:var(--muted)!important;padding:0!important}.menu-action-button svg{width:14px;height:14px}.workspace-sessions{display:grid}.workspace-group.collapsed .workspace-sessions{display:none}.session-row{align-items:center;min-width:0;display:flex;position:relative}.session{align-items:center;gap:calc(var(--spacing-1) * 2);border-style:var(--tw-border-style);text-align:left;min-width:0;height:34px;color:var(--muted);background-color:#0000;border-width:0;border-radius:6px;flex:1;padding:0 8px 0 29px;display:flex}.session:hover{background:var(--sidebar-hover);color:var(--text)}.session.active{background:var(--sidebar-active);color:var(--text)}.session-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:12.5px;overflow:hidden}.session-time{color:inherit;flex:none;font-size:10.5px}.session-row>.astryx-menu-trigger{right:var(--spacing-1);opacity:0;pointer-events:none;position:absolute}.session-row:hover>.astryx-menu-trigger,.session-row:focus-within>.astryx-menu-trigger{opacity:1;pointer-events:auto}.session-row:hover .session-time,.session-row:focus-within .session-time{visibility:hidden}.empty{min-height:32px;color:var(--muted);padding:7px 10px 7px 29px;font-size:12px}.sidebar-expand{top:calc(var(--spacing-1) * 2);left:calc(var(--spacing-1) * 2);z-index:30;width:40px;height:40px;position:fixed}.sidebar-expand svg{width:19px;height:19px}@media not all and (width<=760px){.sidebar-collapsed .session-sidebar{align-items:center;padding:8px}.sidebar-collapsed .sidebar-brand,.sidebar-collapsed .workspace-heading,.sidebar-collapsed .workspace-tree,.sidebar-collapsed .session-view-switch,.sidebar-collapsed .sidebar-scope-note{display:none}.sidebar-collapsed .new-session-button{background:0 0;border-color:#0000;border-radius:6px;width:40px;height:40px;margin:48px 0 0;padding:0}.sidebar-collapsed .new-session-button span{display:none}.sidebar-collapsed .new-session-button:hover{background:var(--sidebar-hover)}}.conversation-shell{background:var(--page);grid-template-rows:auto minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);min-width:0;min-height:0;display:grid;position:relative;container:conversation-shell/inline-size}.conversation-shell.landing{grid-template-rows:auto auto minmax(0,1fr)}.landing .conversation{grid-area:3/1}.task-header{border-bottom:1px solid var(--border);align-items:center;gap:16px;min-width:0;min-height:64px;padding:10px 24px;display:flex}.task-header-menu{display:none}.task-identity{flex:1;min-width:0}.task-workspace{text-overflow:ellipsis;white-space:nowrap;max-width:100%;color:var(--muted);font-size:11px;line-height:1.4;display:block;overflow:hidden}.task-identity h1{text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:15px;font-weight:650;line-height:1.4;overflow:hidden}.task-header .connection-state{flex:none;display:inline-flex}.task-tools-trigger{width:30px;height:30px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;flex:0 0 30px;place-items:center;display:grid}.task-tools-trigger:hover:not(:disabled){background:var(--sidebar-hover);color:var(--text)}.task-tools-trigger:disabled{opacity:.4;cursor:default}.task-tools-trigger svg{width:17px;height:17px}.session-usage{min-width:0;color:var(--muted);font-variant-numeric:tabular-nums;border:0;flex:0 auto;align-items:center;gap:11px;margin:0;padding:0;font:10.5px ui-monospace,SFMono-Regular,Menlo,monospace;display:flex}.session-usage span{white-space:nowrap;align-items:center;gap:4px;display:inline-flex}.session-usage svg{stroke-width:1.9px;width:12px;height:12px}.session-usage b{color:var(--subtle);font-weight:400}.shell-state{width:min(780px,100% - 48px);min-width:0;color:var(--muted);flex-direction:column;justify-content:center;align-items:flex-start;gap:12px;margin:auto;display:flex}.shell-state h2,.shell-state p{margin:0;font-size:14px;font-weight:500}.shell-state button{border:1px solid var(--border-strong);background:var(--page);min-height:36px;color:var(--text);cursor:pointer;border-radius:6px;align-items:center;gap:7px;padding:0 12px;display:inline-flex}.shell-state button:hover{background:var(--sidebar-hover)}.shell-state button svg{width:15px;height:15px}.shell-loading .session-sidebar :is(.new-session-button,.workspace-heading,.session-view-switch,.workspace-tree),.conversation{scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:oklch(58% .02 250/.45) transparent;min-height:0;padding:8px 0 28px;overflow-y:auto}.landing-conversation{pointer-events:none;place-items:center;display:grid}.landing-welcome{text-align:center;padding:0 24px;transform:translateY(-180px)}.landing-brand{border-style:var(--tw-border-style);pointer-events:auto;background-color:#0000;border-width:0;justify-content:center;align-items:center;display:flex}.landing-brand .brand-lockup{align-items:flex-end;font-size:44px;animation:2.1s cubic-bezier(.22,1,.36,1) both brand-lockup}.landing-brand .brand-word{opacity:0;animation:2.1s cubic-bezier(.22,1,.36,1) both brand-word-slide;display:inline-block}.landing-brand .pixel-mark{width:66px;height:55px;margin-left:4px;animation:2.1s cubic-bezier(.22,1,.36,1) both pixel-nudge;display:inline-block;position:relative}.landing-brand .pixel-mark i{background-color:var(--piece,currentColor);border-radius:2px;width:11px;height:11px;animation:.35s cubic-bezier(.22,1,.36,1) both pixel-drop,2.1s both piece-to-ink;display:block;position:absolute}.landing-brand .pixel-mark i:after{content:"";border-radius:2px;animation:2.1s both piece-texture-fade;position:absolute;inset:0;box-shadow:inset 0 2px oklch(99% 0 0/.3),inset 0 -2px oklch(0% 0 0/.16),inset 2px 0 oklch(99% 0 0/.12),inset -2px 0 oklch(0% 0 0/.08)}.landing-brand .pixel-mark i:first-child{top:0;left:11px}.landing-brand .pixel-mark i:nth-child(2){top:0;left:22px}.landing-brand .pixel-mark i:nth-child(3){top:0;left:33px}.landing-brand .pixel-mark i:nth-child(4){top:11px;left:33px}.landing-brand .pixel-mark i:nth-child(5){top:11px;left:11px}.landing-brand .pixel-mark i:nth-child(6){top:22px;left:11px}.landing-brand .pixel-mark i:nth-child(7){top:22px;left:22px}.landing-brand .pixel-mark i:nth-child(8){top:33px;left:11px}.landing-brand .pixel-mark i:nth-child(9){top:22px;left:44px}.landing-brand .pixel-mark i:nth-child(10){top:33px;left:44px}.landing-brand .pixel-mark i:nth-child(11){top:44px;left:44px}.landing-brand .pixel-mark i:nth-child(12){top:44px;left:55px}.landing-brand .pixel-mark i:nth-child(13){top:44px;left:0}.landing-brand .pixel-mark i:nth-child(14){top:44px;left:11px}.landing-brand .pixel-mark i:nth-child(15){top:44px;left:22px}.landing-brand .pixel-mark i:nth-child(16){top:44px;left:33px}.landing-brand .pixel-mark i:nth-child(5),.landing-brand .pixel-mark i:nth-child(6),.landing-brand .pixel-mark i:nth-child(7),.landing-brand .pixel-mark i:nth-child(8){--piece:oklch(55% .105 37);animation-delay:.25s,0s}.landing-brand .pixel-mark i:first-child,.landing-brand .pixel-mark i:nth-child(2),.landing-brand .pixel-mark i:nth-child(3),.landing-brand .pixel-mark i:nth-child(4){--piece:oklch(52% .083 252);animation-delay:.5s,0s}.landing-brand .pixel-mark i:nth-child(9),.landing-brand .pixel-mark i:nth-child(10),.landing-brand .pixel-mark i:nth-child(11),.landing-brand .pixel-mark i:nth-child(12){--piece:oklch(66% .08 111);animation-delay:.75s,0s}.landing-brand .pixel-mark i:nth-child(13),.landing-brand .pixel-mark i:nth-child(14),.landing-brand .pixel-mark i:nth-child(15),.landing-brand .pixel-mark i:nth-child(16){--piece:oklch(69% .116 78)}.landing-brand .pixel-mark i:nth-child(11),.landing-brand .pixel-mark i:nth-child(12),.landing-brand .pixel-mark i:nth-child(13),.landing-brand .pixel-mark i:nth-child(14),.landing-brand .pixel-mark i:nth-child(15),.landing-brand .pixel-mark i:nth-child(16){opacity:0;animation:2.1s both pixel-doomed}.landing-brand .pixel-mark i:nth-child(11),.landing-brand .pixel-mark i:nth-child(12){animation-name:pixel-doomed-late}.landing-brand .pixel-mark i:nth-child(13){--dx:-12px;--rot:-22deg}.landing-brand .pixel-mark i:nth-child(14){--dx:-8px;--rot:-12deg}.landing-brand .pixel-mark i:nth-child(15){--dx:-3px;--rot:-5deg}.landing-brand .pixel-mark i:nth-child(16){--dx:3px;--rot:6deg}.landing-brand .pixel-mark i:nth-child(11){--dx:8px;--rot:14deg}.landing-brand .pixel-mark i:nth-child(12){--dx:13px;--rot:24deg}@keyframes pixel-drop{0%{opacity:0;transform:translateY(-40px)}to{opacity:1;transform:none}}@keyframes piece-to-ink{0%,72%{background-color:var(--piece,currentColor)}86%,to{background-color:currentColor}}@keyframes piece-texture-fade{0%,72%{opacity:1}86%,to{opacity:0}}@keyframes pixel-doomed{0%{opacity:0;transform:translateY(-40px)}13%,60%{opacity:1;transform:none}74%{opacity:.9;transform:translate(var(--dx), 14px) rotate(var(--rot)) scale(.85)}to{opacity:0;transform:translate(calc(var(--dx) * 2.5), 44px) rotate(calc(var(--rot) * 1.5)) scale(.5)}}@keyframes pixel-doomed-late{0%,33%{opacity:0;transform:translateY(-40px)}44%,60%{opacity:1;transform:none}74%{opacity:.9;transform:translate(var(--dx), 14px) rotate(var(--rot)) scale(.85)}to{opacity:0;transform:translate(calc(var(--dx) * 2.5), 44px) rotate(calc(var(--rot) * 1.5)) scale(.5)}}@keyframes brand-word-slide{0%,61.99%{opacity:0;transform:translate(-64px)}62%{opacity:1;transform:translate(2px)}70%,to{opacity:1;transform:none}}@keyframes brand-lockup{0%,56%{transform:translate(-52px)}64%{transform:translate(-38px)}90%,to{transform:none}}@keyframes pixel-nudge{0%,60%{transform:none}65%{transform:translateY(13px)}71%{transform:translateY(11px)}82%,to{transform:translate(-11px,11px)}}.conversation-turn{width:min(var(--conversation-content-width), calc(100% - 48px));margin:0 auto;padding:12px 0 30px;position:relative}.conversation-turn+.conversation-turn{border-top:1px solid var(--border);padding-top:26px}.turn-heading{min-height:24px;color:var(--muted);justify-content:flex-end;align-items:center;gap:12px;margin-bottom:8px;font-size:11.5px;display:flex}.turn-number{color:var(--muted);font-weight:650}.turn-state{white-space:nowrap;align-items:center;gap:7px;display:inline-flex}.turn-state.complete{color:var(--healthy)}.turn-state.failed{color:var(--error)}.turn-state.interrupted{color:var(--warning)}.turn-state.running{color:var(--accent)}.message-row{width:100%;margin:0;padding:10px 0;position:relative}.message-row.user{flex-direction:column;align-items:flex-end;padding:2px 0 18px;display:flex}.message-row.assistant{width:100%;padding:5px 0}.message-row.assistant.response{padding:10px 0}.message-row.assistant.final-response{margin-top:8px;padding:16px 0 10px}.message-row.detail-only{padding:4px 0}.conversation-turn>.process-sequence{width:100%;margin:7px 0}.provider-outcome{border-left:2px solid var(--border-strong);color:var(--muted);overflow-wrap:anywhere;padding:5px 12px;font-size:12px}.provider-outcome.failed{border-color:var(--error);color:var(--text)}.provider-outcome strong{font-size:12px;font-weight:650;display:block}.provider-outcome p{white-space:pre-wrap;margin:3px 0}.provider-outcome small{color:var(--muted);font-size:11px;display:block}.provider-outcome-actions{margin-top:8px}.provider-outcome-actions button{align-items:center;gap:calc(var(--spacing-1) * 1.5);border:1px solid var(--border-strong);background:var(--page);height:28px;color:var(--text);border-radius:5px;padding:0 10px;font-size:11.5px;display:inline-flex}.provider-outcome-actions button:hover:not(:disabled){background:var(--sidebar-hover)}.provider-outcome-actions button:disabled{opacity:.5;cursor:not-allowed}.provider-outcome-actions svg{width:13px;height:13px}.message-content{min-width:0;max-width:min(72%,620px)}.message-row.assistant .message-content{width:100%;max-width:none}.message-row.assistant.response .message-content{max-width:calc(var(--conversation-content-width) - 60px)}.message-row.assistant.response>.message-actions{width:min(calc(var(--conversation-content-width) - 60px), 100%)}.message-body{color:var(--text);font-size:var(--conversation-font-size);overflow-wrap:anywhere;white-space:pre-wrap;line-height:1.65}.message-row.user .message-body{background:var(--sidebar-active);border-radius:16px 16px 5px;padding:10px 15px;box-shadow:inset 0 0 0 1px oklch(72% .06 85/.18)}.message-attachments{flex-wrap:wrap;justify-content:flex-end;gap:7px;max-width:100%;margin-bottom:7px;display:flex}.message-attachment{border:1px solid var(--border);background:var(--sidebar);max-width:210px;min-height:40px;color:var(--muted);border-radius:8px;align-items:center;gap:8px;padding:5px 9px 5px 5px;font-size:11px;display:flex}.message-attachment img{object-fit:cover;background:var(--sidebar-hover);border-radius:5px;flex:none;width:42px;height:42px}.message-attachment>svg{flex:none;width:17px;height:17px;margin-left:4px}.message-attachment span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.markdown{color:var(--text);font-size:var(--conversation-font-size);overflow-wrap:anywhere;line-height:1.72}.markdown>:first-child{margin-top:0}.markdown>:last-child{margin-bottom:0}.markdown p{margin:0 0 14px}.markdown h1,.markdown h2,.markdown h3,.markdown h4{color:var(--text);margin:24px 0 10px;font-weight:650;line-height:1.3}.markdown h1{font-size:1.45em}.markdown h2{font-size:1.3em}.markdown h3{font-size:1.15em}.markdown ul,.markdown ol{margin:0 0 14px;padding-left:23px}.markdown li+li{margin-top:6px}.markdown li>:is(p,ul,ol){margin-bottom:7px}.markdown strong{font-weight:650}.markdown blockquote{border:1px solid var(--border-strong);color:var(--muted);background:oklch(97% .006 249);border-radius:6px;margin:0 0 12px;padding:8px 14px}.markdown hr{border:0;border-top:1px solid var(--border);margin:18px 0}.markdown a{color:var(--accent);text-underline-offset:2px;-webkit-text-decoration:underline oklch(51.6% .151 253/.35);text-decoration:underline oklch(51.6% .151 253/.35)}.markdown code{color:oklch(35% .02 249);background:oklch(95.5% .008 249);border:1px solid oklch(86.8% .014 248/.55);border-radius:5px;padding:2px 5px;font:.9em ui-monospace,SFMono-Regular,Menlo,monospace}.markdown-code-block{border:1px solid var(--border);background:oklch(96.8% .006 249/.9);border-radius:8px;max-width:100%;margin:0 0 14px;overflow:hidden}.markdown-code-toolbar{min-height:calc(var(--spacing-1) * 8);justify-content:flex-end;align-items:center;gap:calc(var(--spacing-1) * 2);border-bottom:1px solid var(--border);color:var(--muted);padding:3px 6px;font-size:11px;line-height:1.35;display:flex}.markdown-code-toolbar span{overflow-wrap:anywhere;min-width:0}.markdown-code-toolbar button{width:calc(var(--spacing-1) * 6);height:calc(var(--spacing-1) * 6);color:var(--muted);background:0 0;border:0;border-radius:5px;flex-shrink:0;place-items:center;display:grid}.markdown-code-toolbar button:hover:not(:disabled){background:var(--sidebar-hover);color:var(--text)}.markdown-code-toolbar button:disabled{cursor:wait;opacity:.55}.markdown-code-toolbar svg{width:13px;height:13px}.markdown-code-scroll{max-width:100%;overflow-x:auto}.markdown pre{background:0 0;border:0;width:max-content;min-width:100%;margin:0;padding:12px 14px}.markdown pre code{color:var(--text);white-space:pre;background:0 0;border:0;padding:0;font-size:12px}.markdown-table-scroll{max-width:100%;margin:0 0 14px;overflow-x:auto}.markdown table{border-collapse:collapse;width:max-content;min-width:100%;margin:0;font-size:.95em}.markdown th,.markdown td{border:1px solid var(--border);text-align:left;vertical-align:top;padding:7px 9px}.markdown th{background:oklch(96% .007 249);font-weight:650}.markdown input[type=checkbox]{accent-color:var(--accent);margin-right:7px}.message-details{width:min(var(--conversation-content-width), calc(100% - 4px));color:var(--muted);margin:4px auto}.message-details summary{min-height:calc(var(--spacing-1) * 9);align-items:center;gap:calc(var(--spacing-1) * 2);cursor:pointer;border-radius:7px;padding:5px 8px;font-size:12.5px;list-style:none;display:flex}.message-details summary::-webkit-details-marker{display:none}.process-sequence summary::-webkit-details-marker{display:none}.message-details summary:hover{color:var(--text);background:oklch(95% .008 249/.72)}.details-mark{border-bottom:1.5px solid;border-right:1.5px solid;flex:none;width:8px;height:8px;transition:transform .14s;transform:rotate(-45deg)}.message-details[open] .details-mark,.process-sequence[open]>summary .details-mark{transform:rotate(45deg)}.details-body{color:oklch(42% .018 249);white-space:pre-wrap;overflow-wrap:anywhere;margin:2px 8px 9px 38px;font-size:12px;line-height:1.6}.tool-icon{width:22px;height:22px;color:var(--healthy);background:var(--healthy);border-radius:6px;flex-shrink:0;place-items:center;display:grid}@supports (color:color-mix(in lab, red, red)){.tool-icon{background:color-mix(in oklch, var(--healthy) 10%, transparent)}}.tool-icon svg{width:13px;height:13px}.details-title{align-items:baseline;gap:calc(var(--spacing-1) * 2);flex:1;min-width:0;display:flex}.tool-name{color:var(--healthy);flex-shrink:0;font-size:12.5px;font-weight:650}.tool-summary{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--muted);font:11.5px ui-monospace,SFMono-Regular,Menlo,monospace;overflow:hidden}.tool-evidence{border:1px solid var(--border);background:oklch(97% .006 249/.75);border-radius:6px;max-height:440px;padding:9px 10px;overflow:auto}.status-mark{flex-shrink:0;width:14px;height:14px}.status-mark.done{color:var(--healthy)}.status-mark.error{color:var(--error)}.status-mark.warn{color:var(--warning)}.status-mark.running{justify-content:center;align-items:center;display:flex}.status-mark.running i,.activity-chip-dot,.conversation-running-dot{background:var(--accent);border-radius:50%;width:7px;height:7px;animation:1.5s ease-out infinite conversation-pulse}.tool-line.error :is(.tool-icon,.tool-name){color:var(--error)}.tool-line.error .tool-icon{background:oklch(50% .18 28/.09)}.tool-line.warn :is(.tool-icon,.tool-name){color:var(--warning)}.thinking-line .tool-icon{color:var(--muted);background:oklch(55% .02 249/.1)}.thinking-line .tool-name{color:var(--text);font-weight:600}.tool-line-empty{min-height:calc(var(--spacing-1) * 8);align-items:center;gap:calc(var(--spacing-1) * 2);color:var(--muted);padding:3px 8px;display:flex}.process-sequence{width:min(var(--conversation-content-width), calc(100% - 48px));border:1px solid var(--border);color:var(--muted);background:oklch(99% .004 249/.42);border-radius:7px;margin:7px auto;overflow:hidden}.process-sequence.error{border-color:var(--error)}@supports (color:color-mix(in lab, red, red)){.process-sequence.error{border-color:color-mix(in oklch, var(--error) 32%, var(--border))}}.process-sequence>summary{cursor:pointer;grid-template-columns:8px minmax(0,auto) minmax(0,1fr) 14px;align-items:center;gap:9px;min-height:42px;padding:6px 10px;font-size:12px;list-style:none;transition:background-color .14s,color .14s;display:grid;position:relative;overflow:hidden}.process-sequence>summary>*{z-index:1;position:relative}.process-sequence>summary:hover{color:var(--text);background:oklch(95% .008 249/.72)}.process-sequence-title{align-items:baseline;gap:8px;min-width:0;display:flex}.process-sequence-title strong{color:var(--text);white-space:nowrap;font-size:12.5px;font-weight:620}.process-sequence-title small{color:var(--muted);white-space:nowrap;font-size:11px}.process-sequence-preview{min-width:0;color:var(--subtle);text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;overflow:hidden}.process-sequence-body{opacity:0;grid-template-rows:0fr;transition:grid-template-rows .18s,opacity .14s;display:grid}.process-sequence-body>div{border-top:1px solid #0000;min-height:0;padding:0 10px;transition:border-color .14s,padding .18s;overflow:hidden}.process-sequence[open] .process-sequence-body{opacity:1;grid-template-rows:1fr}.process-sequence[open] .process-sequence-body>div{border-top-color:var(--border);padding-top:4px;padding-bottom:5px}.process-sequence-body .message-row{width:100%;padding:0}.process-step{min-width:0;position:relative;overflow:hidden}.process-step.running .message-details>summary,.process-step.running .tool-evidence-card>summary,.process-sequence.running>summary,.subagent-tool.running>summary,.subagent-thinking.running>summary{position:relative;overflow:hidden}.process-step.running .message-details>summary:after,.process-step.running .tool-evidence-card>summary:after,.process-sequence.running>summary:after,.subagent-tool.running>summary:after,.subagent-thinking.running>summary:after{z-index:0;pointer-events:none;content:"";background:linear-gradient(100deg, transparent 18%, var(--text) 45%, transparent 72%);position:absolute;inset:0}@supports (color:color-mix(in lab, red, red)){.process-step.running .message-details>summary:after,.process-step.running .tool-evidence-card>summary:after,.process-sequence.running>summary:after,.subagent-tool.running>summary:after,.subagent-thinking.running>summary:after{background:linear-gradient(100deg, transparent 18%, color-mix(in oklch, var(--text) 8%, transparent) 45%, transparent 72%)}}.process-step.running .message-details>summary:after,.process-step.running .tool-evidence-card>summary:after,.process-sequence.running>summary:after,.subagent-tool.running>summary:after,.subagent-thinking.running>summary:after{animation:1.8s ease-in-out infinite execution-shimmer;transform:translate(-115%)}.process-step.running .message-details>summary>*,.process-step.running .tool-evidence-card>summary>*,.subagent-tool.running>summary>*,.subagent-thinking.running>summary>*{z-index:1;position:relative}.activity-card{border:1px solid var(--border);background:oklch(99% .004 249/.6);border-radius:8px;overflow:hidden}.activity-card summary{min-height:44px;padding:7px 10px}.activity-card .details-mark{order:3}.activity-icon{border-radius:7px;flex-shrink:0;place-items:center;width:28px;height:28px;display:grid}.activity-icon svg{width:16px;height:16px}.activity-card.subagent .activity-icon{color:var(--accent);background:oklch(52% .15 253/.1)}.activity-card.workflow .activity-icon{color:oklch(55% .09 310);background:oklch(55% .09 310/.12)}.activity-main{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.activity-title,.activity-meta{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.activity-title{color:var(--text);font-weight:550}.activity-meta{color:var(--subtle);font-size:11px}.activity-card .details-body{margin-left:48px}.subagent-card-open{width:100%;min-height:60px;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;padding:12px;display:flex}.subagent-card-open:disabled{cursor:default}.subagent-card-open:not(:disabled):hover{background:var(--sidebar-hover)}.subagent-card-open:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.subagent-state{color:var(--muted);flex-shrink:0;font-size:11px}.subagent-state.running{color:var(--accent)}.subagent-state.done{color:var(--healthy)}.subagent-state.error,.subagent-state.interrupted{color:var(--error)}.subagent-receipt{border-top:1px solid var(--border);color:var(--muted);font-size:11px}.subagent-receipt>summary{cursor:pointer;min-height:0;padding:6px 12px}.subagent-receipt>p{margin:4px 12px}.subagent-receipt pre{white-space:pre-wrap;overflow-wrap:anywhere}.app-shell.with-subagent-panel{grid-template-columns:var(--sidebar-width) minmax(0,1fr) var(--auxiliary-width)}.app-shell.with-subagent-panel.sidebar-collapsed{grid-template-columns:56px minmax(0,1fr) var(--auxiliary-width)}.subagent-panel{min-width:0;height:100dvh;min-height:0;color:var(--text);background:var(--page);border-left:1px solid var(--border);flex-direction:column;display:flex;position:relative;overflow:hidden}.subagent-panel-heading{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;min-height:58px;padding:12px 20px;display:flex}.subagent-breadcrumb{align-items:center;gap:10px;min-width:0;display:flex}.subagent-panel-heading :is(h1,h2){white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:13px;font-weight:500;overflow:hidden}.subagent-breadcrumb>svg{width:17px;height:17px;color:var(--accent);flex-shrink:0}.subagent-list{flex:1;min-height:0;padding:24px;overflow-y:auto}.subagent-list-group{margin-bottom:30px}.subagent-list-group :is(h2,h3){color:var(--muted);align-items:center;gap:8px;margin:0 0 12px;font-size:12px;font-weight:400;display:flex}.subagent-list-group :is(h2,h3) span{color:var(--subtle)}.subagent-list-group>p,.subagent-list>p{color:var(--muted);margin:10px 0;font-size:12px}.subagent-task-row{border-radius:8px;min-height:58px}.subagent-task-end{color:var(--subtle);align-items:center;gap:12px;font-size:11px;display:flex}.subagent-task-end svg{width:14px;height:14px}.subagent-detail{flex-direction:column;flex:1;gap:12px;min-width:0;min-height:0;padding:24px;display:flex}.subagent-detail[hidden]{display:none}.subagent-detail-heading{justify-content:space-between;gap:12px;display:flex}.subagent-detail-heading h3{overflow-wrap:anywhere;margin:0 0 5px;font-size:14px;font-weight:500}.subagent-duration{color:var(--muted);margin-left:10px;font-size:11px}.subagent-metadata{color:var(--muted);overflow-wrap:anywhere;flex-wrap:wrap;gap:5px 12px;font-size:11px;display:flex}.subagent-metadata>span:last-child{white-space:nowrap;text-overflow:ellipsis;width:100%;overflow:hidden}.subagent-task{font-size:12px}.subagent-task summary{cursor:pointer;color:var(--muted)}.subagent-task pre{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--sidebar-hover);border-radius:8px;max-height:150px;margin:8px 0;padding:10px;overflow:auto}.subagent-transcript{overflow-wrap:anywhere;scrollbar-width:thin;flex-direction:column;flex:1;min-height:80px;padding-right:8px;display:flex;overflow-y:auto}.subagent-message{width:100%;margin:0 0 14px}.subagent-message:empty{display:none}.subagent-message.user{justify-content:flex-end;display:flex}.subagent-message.assistant{align-self:stretch}.subagent-user-message{white-space:pre-wrap;width:fit-content;max-width:min(82%,520px);font-size:var(--conversation-font-size);background:var(--sidebar-active);box-shadow:inset 0 0 0 1px var(--border-strong);border-radius:14px 14px 5px;margin:0;padding:9px 12px;line-height:1.65}@supports (color:color-mix(in lab, red, red)){.subagent-user-message{box-shadow:inset 0 0 0 1px color-mix(in oklch, var(--border-strong) 45%, transparent)}}.subagent-message.assistant>.markdown{font-size:var(--conversation-font-size)}.subagent-tool{border:1px solid var(--border);border-radius:8px;margin:8px 0;font-size:12px}.subagent-tool summary{cursor:pointer;justify-content:space-between;align-items:center;gap:10px;padding:10px;display:flex}.subagent-tool-label{color:var(--muted);margin:8px 10px;font-size:11px;display:block}.subagent-tool pre,.subagent-thinking pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:260px;margin:10px;font-size:12px;line-height:1.6;overflow:auto}.subagent-thinking{color:var(--muted);margin:10px 0;font-size:12px}.subagent-thinking summary{cursor:pointer}.subagent-final{border-top:1px solid var(--border);margin-top:12px;padding-top:12px}.subagent-final :is(h2,h3){color:var(--muted);margin:0 0 10px;font-size:12px}.subagent-live,.subagent-footnote{color:var(--muted);font-size:11px}.subagent-live{color:var(--accent)}.subagent-footnote{margin:0}@media (width<=1100px){.app-shell.with-subagent-panel,.app-shell.with-subagent-panel.sidebar-collapsed{grid-template-columns:minmax(0,1fr)}.with-subagent-panel>.conversation-shell,.with-subagent-panel>.session-sidebar,.with-subagent-panel>.sidebar-expand{display:none}.subagent-panel{border-left:0;grid-column:1/-1}.subagent-panel-heading{padding:12px 16px}.subagent-detail,.subagent-list{padding:20px 16px}.subagent-card-open{flex-wrap:wrap}}.plan-card{border:1px solid var(--border);background:var(--page);border-radius:8px;min-width:0;overflow:hidden}.plan-card-header{align-items:center;gap:4px;padding:4px 8px;display:flex}.plan-card-header button{min-height:36px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:5px}.plan-card-header button:hover{color:var(--text);background:var(--sidebar-hover)}.plan-card-header button:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}.plan-card-header svg{flex-shrink:0;width:15px;height:15px}.plan-card-toggle{text-align:left;flex:1;align-items:center;gap:8px;min-width:0;padding:6px 8px;font-size:12px;font-weight:600;display:flex}.plan-card-toggle>span:first-of-type{color:var(--text)}.plan-card-disclosure{margin-left:auto;font-size:11px;font-weight:400}.plan-card-copy{flex-shrink:0;place-items:center;width:36px;display:grid}.plan-card-body{padding:4px 16px 16px}.plan-card-note{color:var(--muted);margin:0 0 12px;font-size:12px;line-height:1.5}.plan-card-body>.markdown,.plan-card-body>.message-full-text>.markdown{overflow-x:auto}.plan-card .markdown ol{list-style-type:decimal}.plan-card .markdown ul{list-style-type:disc}.plan-card .markdown ul.contains-task-list{list-style-type:none}.plan-card-evidence{color:var(--muted);margin-top:16px;font-size:11px}.plan-card-evidence>summary{cursor:pointer;padding:4px 0}.plan-card-evidence pre{margin-top:8px}.plan-card-feedback{color:var(--muted);padding:0 16px 8px;font-size:11px;display:block}.activity-bar{gap:calc(var(--spacing-1) * 1.5);flex-wrap:wrap;width:100%;max-width:840px;margin-inline:auto;padding:0 15px 2px;display:flex}.activity-chip{align-items:center;gap:calc(var(--spacing-1) * 1.5);border:1px solid var(--border);min-width:0;max-width:320px;color:var(--muted);background:oklch(99% .004 249/.78);border-radius:999px;padding:3px 10px;font-size:11.5px;display:flex}.activity-chip>svg{width:12px;height:12px}.activity-chip-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.activity-chip.more{color:var(--muted)}.activity-chip.done>svg{color:var(--healthy)}.activity-chip.error>svg{color:var(--error)}.activity-chip.interrupted>svg{color:var(--warning)}.conversation-running{align-items:center;gap:calc(var(--spacing-1) * 2);width:min(840px,100% - 48px);color:var(--muted);margin-inline:auto;margin-bottom:18px;font-size:12px;display:flex}.jump-to-latest{z-index:12;border:1px solid var(--border-strong);background:var(--page);color:var(--text);cursor:pointer;border-radius:6px;align-items:center;gap:6px;padding:8px 10px;display:flex;position:absolute;bottom:150px;right:48px;box-shadow:0 4px 16px #0002}.jump-to-latest svg{width:14px;height:14px}.markdown-table-scroll:focus-visible,.markdown-code-scroll:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}@keyframes conversation-pulse{70%{box-shadow:0 0 0 6px oklch(52% .15 253/0)}to{box-shadow:0 0 oklch(52% .15 253/0)}}@keyframes execution-shimmer{to{transform:translate(115%)}}@media (prefers-reduced-motion:reduce){.process-sequence-body,.process-sequence-body>div,.process-sequence>summary{transition:none}.process-step.running .message-details>summary:after,.process-step.running .tool-evidence-card>summary:after,.process-sequence.running>summary:after,.subagent-tool.running>summary:after,.subagent-thinking.running>summary:after{content:none;animation:none}}.switching{align-items:center;display:flex}.message-actions{margin-top:var(--spacing-1);height:calc(var(--spacing-1) * 6);justify-content:flex-end;align-items:center;gap:var(--spacing-1);color:var(--subtle);opacity:0;font-size:10.5px;transition:opacity .12s;display:flex}.message-row:hover>.message-actions,.message-row:focus-within>.message-actions{opacity:1}.message-actions.copy-failed{opacity:1;flex-wrap:wrap;height:auto;min-height:24px}.copy-error{text-align:right;flex-basis:100%}.message-actions button{width:calc(var(--spacing-1) * 6);height:calc(var(--spacing-1) * 6);border-style:var(--tw-border-style);background-color:#0000;border-width:0;border-radius:5px;place-items:center;display:grid}.message-actions button:hover{color:var(--text);background:oklch(95% .008 249)}.message-actions svg{width:13px;height:13px}.message-editor{width:min(100%,620px);margin-left:auto}.message-editor textarea{resize:vertical;border:1px solid var(--border-strong);background:var(--page);border-radius:14px;outline:0;width:100%;min-height:52px;max-height:220px;padding:10px 14px}.message-row.user:has(.message-editor)>.message-content{display:none}.message-editor textarea:focus-visible{outline:2px solid var(--border-strong);outline-offset:2px}.message-edit-actions button:disabled{opacity:.45;cursor:not-allowed}.message-edit-actions{margin-top:calc(var(--spacing-1) * 2);justify-content:flex-end;gap:calc(var(--spacing-1) * 2);display:flex}.message-edit-actions button{border:1px solid var(--border-strong);background:var(--page);border-radius:15px;height:30px;padding:0 14px;font-size:12.5px}.message-edit-actions .confirm{border-color:var(--text);background:var(--text);color:var(--page)}.turn-rail{z-index:10;gap:calc(var(--spacing-1) * .5);border:1px solid #0000;border-radius:8px;flex-direction:column;width:16px;max-height:70%;padding:4px 2px;transition:width .16s,background-color .16s,border-color .16s;display:flex;position:absolute;top:50%;right:24px;overflow-y:auto;transform:translateY(-50%)}.turn-rail:hover,.turn-rail:focus-within{border-color:var(--border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:oklch(99% .004 249/.92);width:240px;padding:6px;box-shadow:0 12px 28px oklch(26% .02 249/.14)}.turn-tick{align-items:center;gap:calc(var(--spacing-1) * 2);border-style:var(--tw-border-style);background-color:#0000;border-width:0;border-radius:6px;width:100%;padding:3px 4px;display:flex}.turn-tick:hover{background:oklch(95% .008 249)}.turn-tick-mark{background:var(--subtle);border-radius:1px;flex:none;width:8px;height:2px}.turn-tick-label{text-align:left;text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--muted);font-size:12px;display:none;overflow:hidden}.turn-rail:hover .turn-tick-label,.turn-rail:focus-within .turn-tick-label{display:block}@container conversation-shell (width<=960px){.turn-rail,.session-usage span:nth-child(3){display:none}}.composer-dock{align-items:center;gap:calc(var(--spacing-1) * 2);flex-direction:column;padding:12px 24px 22px;display:flex}.composer-queue{border-bottom:1px solid var(--border);max-height:min(220px,30dvh);color:var(--text);margin:0 -13px 10px;padding:3px 12px 7px;font-size:12px;overflow:hidden auto}.composer-queue-row{width:100%;min-height:28px;color:var(--muted);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:4px;align-items:flex-start;gap:8px;padding:4px;display:flex}.composer-queue-row:hover{background:var(--sidebar-hover);color:var(--text)}.composer-queue-row:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}.composer-queue-row>svg{width:14px;height:14px;color:var(--subtle);flex:0 0 14px;margin-top:2px}.composer-queue-row>span{white-space:nowrap;text-overflow:ellipsis;min-width:0;line-height:20px;overflow:hidden}.composer-queue-row.expanded>span{white-space:pre-wrap;overflow-wrap:anywhere}.composer-queue small{color:var(--muted);padding:4px 4px 0 26px;display:block}.prompt-recovery{justify-content:space-between;align-items:center;gap:calc(var(--spacing-1) * 4);width:100%;max-width:840px;color:var(--text);background:oklch(98% .025 88);border:1px solid oklch(74% .11 78);border-radius:8px;margin-inline:auto;padding:10px 12px;font-size:12px;display:flex}.prompt-recovery>div:first-child{gap:calc(var(--spacing-1) * .5);flex-direction:column;min-width:0;display:flex}.prompt-recovery strong{font-size:13px}.prompt-recovery span{color:var(--muted)}.prompt-recovery-actions{align-items:center;gap:calc(var(--spacing-1) * 2);flex-shrink:0;display:flex}.prompt-recovery-actions button{border-style:var(--tw-border-style);color:var(--muted);background:0 0;border-width:0;border-radius:6px;padding:6px 9px}.prompt-recovery-actions button:hover:not(:disabled){color:var(--text);background:oklch(93% .025 82)}.prompt-recovery-actions button.primary{background:var(--text);color:var(--page)}.prompt-recovery-actions button:disabled{opacity:.55}.landing .composer-dock{z-index:10;inset-inline:0;align-items:stretch;width:100%;padding:0 24px;position:absolute;top:calc(50% - 81px);bottom:12px}.workspace-picker-row{align-items:center;width:100%;min-width:0;max-width:840px;margin-inline:auto;padding-left:15px;display:flex;position:relative}.workspace-picker{max-width:260px!important;height:36px!important;color:var(--text)!important;box-shadow:none!important;background:0 0!important;border-radius:18px!important}.workspace-picker:hover,.workspace-picker[aria-expanded=true]{background:var(--sidebar-active)!important}.workspace-picker svg{width:15px;height:15px}.composer{border:1px solid var(--border-strong);background:var(--page);border-radius:18px;flex-direction:column;width:100%;max-width:840px;min-height:118px;margin-inline:auto;padding:13px 13px 10px;transition:border-color .16s,box-shadow .16s;display:flex;position:relative;box-shadow:0 8px 26px oklch(42% .06 251/.1)}.dormant-overlay{z-index:10;border-style:var(--tw-border-style);background-color:#0000;border-width:0;border-radius:18px;position:absolute;inset:0}.composer:focus-within{border-color:oklch(84% .04 87);box-shadow:0 0 0 2px oklch(84% .04 87/.28),0 8px 26px oklch(40% .04 87/.1)}.composer.dormant{box-shadow:none;cursor:pointer;border-style:dashed}.composer.dormant:hover{border-color:oklch(66% .018 249)}.composer textarea{border-style:var(--tw-border-style);outline-style:var(--tw-outline-style);resize:none;width:100%;min-width:0;min-height:52px;max-height:220px;color:var(--text);background-color:#0000;border-width:0;outline-width:0;flex:none;padding:0 2px;font-size:14px;line-height:1.55}.landing .composer textarea{flex-shrink:1}@media (height<=600px){.landing .composer textarea{max-height:min(220px,max(64px,100dvh - 340px))}}.composer textarea::placeholder{color:var(--muted)}.slash-command-menu{z-index:30;border:1px solid var(--border-strong);background:var(--page);border-radius:8px;max-height:min(360px,48vh);position:absolute;bottom:calc(100% + 8px);left:0;right:0;overflow-y:auto;box-shadow:0 14px 34px oklch(26% .02 249/.18)}.landing .slash-command-menu{max-height:min(224px, 32vh, var(--slash-command-available-height,224px));top:calc(100% + 8px);bottom:auto}.landing .slash-command-menu[data-placement=above]{top:auto;bottom:calc(100% + 8px)}.slash-command-option{align-items:center;gap:calc(var(--spacing-1) * 3);border-style:var(--tw-border-style);text-align:left;width:100%;min-width:0;min-height:56px;color:var(--text);background:0 0;border-width:0;padding:8px 11px;display:flex}.slash-command-option+.slash-command-option{border-top:1px solid var(--border)}.slash-command-option[aria-selected=true]{background:var(--sidebar-active)}.slash-command-option:disabled{cursor:not-allowed;color:var(--subtle)}.slash-command-option:disabled[aria-selected=true]{background:var(--sidebar-hover)}.slash-command-icon{background:var(--sidebar);width:28px;height:28px;color:var(--muted);border-radius:6px;flex-shrink:0;place-items:center;display:grid}.slash-command-icon svg{width:15px;height:15px}.slash-command-copy{min-width:0;color:var(--muted);overflow-wrap:anywhere;flex-direction:column;flex:1;gap:2px;font-size:12px;line-height:1.35;display:flex}.slash-command-heading{align-items:baseline;column-gap:calc(var(--spacing-1) * 2);flex-wrap:wrap;min-width:0;display:flex}.slash-command-heading strong{color:var(--text);font:600 13px ui-monospace,SFMono-Regular,Menlo,monospace}.slash-command-heading>span{color:var(--subtle);font-size:11px}.slash-command-option:disabled .slash-command-heading strong{color:var(--muted)}.slash-command-support{max-width:132px;color:var(--subtle);text-align:right;flex-shrink:0;font-size:11px}.slash-command-state{min-height:58px;color:var(--muted);flex-direction:column;justify-content:center;gap:3px;padding:10px 13px;font-size:12px;display:flex}.slash-command-state strong{color:var(--text);font-weight:600}.slash-command-bounded{border-top:1px solid var(--border);color:var(--subtle);padding:7px 11px;font-size:11px}.composer-toolbar{margin-top:calc(var(--spacing-1) * 2);justify-content:flex-end;align-items:center;gap:calc(var(--spacing-1) * 2);min-width:0;display:flex}.model-picker-wrap{z-index:11;min-width:0;max-width:48%;position:relative}.model-picker{min-width:150px!important;max-width:100%!important;height:auto!important;min-height:34px!important;color:var(--muted)!important;box-shadow:none!important;background:0 0!important;padding:0 9px 0 10px!important}.model-picker-label,.model-menu-item-label{overflow-wrap:anywhere;white-space:normal;min-width:0;display:block}.model-picker:hover,.model-picker[aria-expanded=true]{color:var(--text)!important;background:oklch(97% .006 249)!important}.model-picker svg{width:14px;height:14px}.model-selector,.model-selector>div{min-width:150px;max-width:100%}.model-selector>div>button{min-width:0;max-width:100%;color:var(--muted);font:inherit;padding:0 9px 0 10px}.model-selector>div>button:hover,.model-selector>div>button[aria-expanded=true]{color:var(--text)}.model-search-panel{width:min(360px,100vw - 32px);max-height:min(420px,60dvh);color:var(--text);padding:8px;overflow:auto}.model-search-panel.searchable{min-height:156px}.model-search-truncation,.model-search-status{color:var(--muted);margin:3px 4px 8px;font-size:12px;line-height:1.45}.model-search-error{color:var(--error)}.model-search-retry{vertical-align:middle;width:28px;height:28px;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:4px;justify-content:center;align-items:center;margin-left:8px;display:inline-flex}.model-search-retry:hover,.model-search-retry:focus-visible{background:var(--sidebar-hover)}.model-search-retry svg{width:14px;height:14px}.model-search-input{align-items:center;gap:calc(var(--spacing-1) * 2);border:1px solid var(--border);background:var(--sidebar);border-radius:6px;min-height:34px;padding:0 9px;display:flex}.model-search-input svg{width:14px;height:14px;color:var(--muted);flex:none}.model-search-input input{width:100%;min-width:0;color:var(--text);font:inherit;background:0 0;border:0;outline:0;font-size:12px}.model-search-options{align-content:start;gap:2px;min-height:36px;margin-top:6px;display:grid}.model-search-option{justify-content:space-between;align-items:center;gap:calc(var(--spacing-1) * 3);width:100%;min-width:0;color:var(--text);text-align:left;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:5px;padding:8px 9px;display:flex}.model-search-option:hover,.model-search-option:focus-visible{background:var(--sidebar-hover);outline:0}.model-search-option svg{flex:none;width:14px;height:14px}.thinking-picker-wrap{z-index:11;flex:none;position:relative}.thinking-picker{width:34px!important;min-width:34px!important;height:34px!important;min-height:34px!important;color:var(--muted)!important;box-shadow:none!important;background:0 0!important;border-radius:50%!important;padding:0!important}.thinking-picker:hover,.thinking-picker[aria-expanded=true]{color:var(--text)!important;background:oklch(97% .006 249)!important}.thinking-picker:disabled{opacity:.55}.thinking-picker svg{width:17px;height:17px}.thinking-picker-wrap[data-level=off] .thinking-picker{color:var(--subtle)!important}.thinking-picker-wrap[data-level=minimal] .thinking-picker{color:oklch(58% .06 249)!important}.thinking-picker-wrap[data-level=low] .thinking-picker{color:oklch(55% .09 249)!important}.thinking-picker-wrap[data-level=medium] .thinking-picker{color:oklch(52% .11 168)!important}.thinking-picker-wrap[data-level=high] .thinking-picker{color:oklch(52% .13 74)!important}.thinking-picker-wrap[data-level=xhigh] .thinking-picker,.thinking-picker-wrap[data-level=max] .thinking-picker{color:oklch(48% .16 32)!important}.thinking-picker-wrap[data-warning=true] .thinking-picker{color:var(--warning)!important}.thinking-picker-wrap[data-pending=true] .thinking-picker{animation:1.1s ease-in-out infinite thinking-picker-pulse}@keyframes thinking-picker-pulse{0%,to{opacity:1}50%{opacity:.45}}.send-button{border-style:var(--tw-border-style);background:var(--sidebar);border-width:0;border-radius:50%;flex-shrink:0;place-items:center;width:34px;height:34px;transition:background-color .14s,transform .1s;display:grid}.send-button:hover:not(:disabled){background:var(--sidebar-hover)}.send-button:active:not(:disabled){transform:scale(.92)}.send-button:disabled{color:var(--subtle);opacity:.65}.send-button svg{width:17px;height:17px}.composer-hint{display:none}.notice{bottom:calc(var(--spacing-1) * 4);z-index:40;max-width:var(--container-xl);--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y);align-items:center;gap:calc(var(--spacing-1) * 3);background:var(--page);color:var(--error);border:1px solid oklch(70% .11 28);border-radius:6px;padding:9px 10px 9px 14px;font-size:12px;display:flex;position:absolute;left:50%;box-shadow:0 12px 32px oklch(26% .02 249/.18)}.notice button{width:calc(var(--spacing-1) * 6);height:calc(var(--spacing-1) * 6);border-style:var(--tw-border-style);background-color:#0000;border-width:0;place-items:center;display:grid}.notice svg{width:14px;height:14px}.mobile-header{display:none}.connection-state{align-items:center;gap:calc(var(--spacing-1) * 1.5);color:var(--healthy);font-size:11px}.connection-state:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.connection-state.reconnecting{color:var(--warning)}.connection-state.unavailable{color:var(--error)}.sidebar-scrim{display:none}.openpi-dialog{gap:calc(var(--spacing-1) * 4);color:var(--text);padding:20px;display:grid}.openpi-dialog strong{font-size:15px;font-weight:650}.openpi-dialog p{color:var(--muted);margin:0;font-size:13px;line-height:1.65}.openpi-dialog input{border:1px solid var(--border-strong);background:var(--page);border-radius:5px;width:100%;height:38px;padding:0 10px}.dialog-actions{justify-content:flex-end;gap:calc(var(--spacing-1) * 2);display:flex}.dialog-actions button{border:1px solid var(--border-strong);background:var(--page);border-radius:5px;height:34px;padding:0 13px}.dialog-actions .primary{border-color:var(--text);background:var(--text);color:var(--page)}.dialog-actions .danger{color:var(--error);border-color:oklch(80% .08 28)}@media (width<=760px){.app-shell,.app-shell.sidebar-collapsed{grid-template-columns:1fr}.task-header{gap:10px;padding:10px 12px}.task-header-menu{background:0 0;border:0;border-radius:6px;flex:0 0 34px;place-items:center;width:34px;height:34px;display:grid}.task-header-menu svg{width:19px;height:19px}.task-header-menu:hover{background:var(--sidebar-hover)}.session-usage{gap:7px}.session-usage span:nth-child(-n+3){display:none}.session-sidebar{visibility:hidden;border-right:1px solid var(--border);background:var(--sidebar);-webkit-backdrop-filter:none;backdrop-filter:none;width:min(86vw,300px);transition:transform .18s;position:fixed;inset:0 auto 0 0;transform:translate(-100%)}.session-sidebar:before{display:none}.sidebar-open .session-sidebar{visibility:visible;transform:translate(0)}.sidebar-expand{display:none}.sidebar-scrim{z-index:10;border-style:var(--tw-border-style);background:oklch(20% .02 249/.28);border-width:0;position:fixed;inset:0}.sidebar-open .sidebar-scrim{display:block}.mobile-header{pointer-events:none;z-index:10;display:block;position:absolute;inset:0}.mobile-header>button{pointer-events:auto;top:calc(var(--spacing-1) * 3);left:calc(var(--spacing-1) * 3);border-style:var(--tw-border-style);background:oklch(99% .004 249/.88);border-width:0;border-radius:6px;place-items:center;width:34px;height:34px;display:grid;position:fixed}.mobile-header>button svg{width:19px;height:19px}.mobile-header .connection-state{top:calc(var(--spacing-1) * 4);right:calc(var(--spacing-1) * 3);font-size:0;display:flex;position:absolute}.conversation-turn{width:calc(100% - 24px);padding-bottom:24px}.conversation-turn+.conversation-turn{padding-top:20px}.turn-heading{margin-bottom:10px}.message-row{width:100%}.message-row.assistant.final-response{padding-left:12px}.message-row.user .message-content{max-width:88%}.jump-to-latest{justify-content:center;width:38px;height:38px;padding:0;font-size:0;bottom:180px;left:12px;right:auto}.message-row.assistant{width:100%}.conversation-running{width:calc(100% - 24px)}.turn-rail{display:none}.composer-dock{padding:10px 12px 12px}.prompt-recovery{flex-direction:column;align-items:stretch}.prompt-recovery-actions{flex-wrap:wrap;justify-content:flex-end}.landing .composer-dock{padding:0 12px;top:calc(50% - 74px)}.landing-welcome{transform:translateY(-160px)}.composer{min-height:104px}.composer-m02 .model-picker{min-width:0!important}.composer-m02 .model-picker-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.slash-command-option{align-items:flex-start}.slash-command-support{max-width:96px}.notice{width:calc(100% - 24px);bottom:12px}}@media (width<=520px){.composer-toolbar{gap:5px}.model-picker-wrap{flex:auto;max-width:100%}.model-picker{min-width:0!important}}@media (any-pointer:coarse){.session-row>.astryx-menu-trigger{opacity:1;pointer-events:auto}.session-row .session-time{visibility:hidden}.message-actions{opacity:1}}@media (prefers-reduced-motion:reduce){.app-shell,.session-sidebar,.workspace-chevron,.message-actions,.turn-rail,.details-mark{transition:none}.conversation{scroll-behavior:auto}.landing-brand .brand-lockup,.landing-brand .brand-word,.landing-brand .pixel-mark,.landing-brand .pixel-mark i,.landing-brand .pixel-mark i:after{animation:none}.landing-brand .brand-word{opacity:1}.landing-brand .pixel-mark i{background-color:currentColor}.landing-brand .pixel-mark i:after{opacity:0}.status-mark.running i,.activity-chip-dot,.conversation-running-dot,.thinking-picker-wrap[data-pending=true] .thinking-picker{animation:none}}.question-panel{align-self:center;width:min(100% - 48px,840px);min-height:0;margin:8px auto}.landing:has(>.question-panel) .composer-dock{padding:12px 24px 16px;position:static}.landing:has(>.question-panel) .landing-welcome{display:none}.question-card{border:1px solid var(--border-strong);background:var(--page);max-height:min(440px,52dvh);color:var(--text);border-radius:18px;flex-direction:column;display:flex;overflow:clip}.question-card-header{flex-shrink:0;align-items:center;gap:12px;padding:8px 12px 2px 16px;display:flex}.question-eyebrow{color:var(--muted);align-items:center;gap:8px;font-size:13px;display:inline-flex}.question-eyebrow svg{width:16px;height:16px}.question-count{color:var(--muted);font-variant-numeric:tabular-nums;margin-left:auto;font-size:12px}.question-card-body{scrollbar-width:thin;min-height:0;padding:6px 16px;overflow-y:auto}.question-card h2{overflow-wrap:anywhere;margin:0 0 10px;font-size:14px;font-weight:600;line-height:1.5}.question-choices{border:0;gap:2px;min-width:0;margin:0;padding:0;display:grid}.question-choice{cursor:pointer;border-radius:8px;align-items:center;gap:10px;min-height:42px;padding:6px 8px 6px 0;transition:background-color .14s;display:flex;position:relative}.question-choice:hover{background:var(--text)}@supports (color:color-mix(in lab, red, red)){.question-choice:hover{background:color-mix(in oklch, var(--text) 4%, var(--page))}}.question-choice.is-selected{background:var(--accent)}@supports (color:color-mix(in lab, red, red)){.question-choice.is-selected{background:color-mix(in oklch, var(--accent) 7%, var(--page))}}:is(.question-choice:has(input:focus-visible),.question-custom:has(input:focus-visible)){outline:2px solid var(--focus);outline-offset:2px}.question-radio{z-index:1;opacity:0;width:100%;height:100%;cursor:inherit;margin:0;position:absolute;inset:0}.question-choice-number{border:1px solid var(--border-strong);background:var(--text);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.question-choice-number{background:color-mix(in oklch, var(--text) 3%, var(--page))}}.question-choice-number{color:var(--muted);font-size:13px;font-weight:500}.is-selected>.question-choice-number{border-color:var(--accent);color:var(--accent);background:var(--accent)}@supports (color:color-mix(in lab, red, red)){.is-selected>.question-choice-number{background:color-mix(in oklch, var(--accent) 10%, var(--page))}}.question-choice-copy{overflow-wrap:anywhere;gap:1px;min-width:0;line-height:1.4;display:grid}.question-choice-copy strong{font-size:13px;font-weight:550}.question-choice-copy>span,.question-help{color:var(--muted);font-size:12px;line-height:1.5}.question-extras{flex-wrap:wrap;align-items:baseline;gap:6px 16px;margin:4px 0 0 38px;display:flex}.question-note-toggle,.question-preview-disclosure summary{color:var(--muted);cursor:pointer;font-size:12px}.question-note-toggle{background:0 0;border:0;align-items:center;gap:5px;min-height:28px;padding:0;display:inline-flex}.question-note-toggle:hover:not(:disabled),.question-preview-disclosure summary:hover{color:var(--text)}.question-preview-disclosure{min-width:0}.question-preview-disclosure[open]{flex-basis:100%}.question-preview-disclosure summary{padding:5px 0}.question-notes{color:var(--muted);gap:4px;margin-top:6px;font-size:12px;display:grid}.question-notes textarea{resize:vertical;background:var(--page);width:100%;min-height:38px;max-height:140px;color:var(--text);border:1px solid var(--border-strong);border-radius:8px;padding:8px 10px;font-size:13px;line-height:1.5}.question-notes textarea::placeholder{color:var(--muted)}.question-preview{background:var(--text);max-height:140px;margin:4px 0;padding:8px;overflow:auto}@supports (color:color-mix(in lab, red, red)){.question-preview{background:color-mix(in oklch, var(--text) 4%, var(--page))}}.question-preview{white-space:pre-wrap;overflow-wrap:anywhere;border-radius:6px;font-size:12px;line-height:1.5}.question-card-footer{flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px 12px;padding:4px 16px 12px;display:flex}.question-custom{min-height:36px;color:var(--muted);cursor:pointer;border-radius:8px;align-items:center;gap:10px;font-size:13px;display:inline-flex;position:relative}.question-custom svg{width:14px;height:14px}.question-custom:hover,.question-custom.is-selected{color:var(--text)}.question-custom.is-disabled{opacity:.5;cursor:default}.question-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;margin-left:auto;display:flex}.question-primary,.question-secondary,.question-icon{cursor:pointer;border-radius:7px;justify-content:center;align-items:center;gap:8px;font-size:13px;font-weight:550;display:inline-flex}.question-primary,.question-secondary{border-radius:18px;min-height:32px;padding:5px 10px}.question-primary{background:var(--text);color:var(--page);border:1px solid var(--text)}.question-primary:hover:not(:disabled){opacity:.88}.question-secondary,.question-icon{color:var(--muted);background:0 0;border:1px solid #0000}.question-skip{border-color:var(--border-strong)}.question-secondary:hover:not(:disabled),.question-icon:hover:not(:disabled){color:var(--text);background:var(--text)}@supports (color:color-mix(in lab, red, red)){.question-secondary:hover:not(:disabled),.question-icon:hover:not(:disabled){background:color-mix(in oklch, var(--text) 6%, var(--page))}}.question-icon{flex-shrink:0;width:32px;height:32px}.question-card button svg,.question-receipt svg{width:16px;height:16px}.question-card button:disabled,.question-card fieldset:disabled{opacity:.5;cursor:default}.question-review-list{margin:8px 0 0;padding:0;list-style:none}.question-review-list li{align-items:flex-start;gap:12px;padding:6px 0;display:flex}.question-review-list li>div{flex:1;min-width:0}.question-review-label{color:var(--muted);font-size:12px}.question-review-list p{white-space:pre-wrap;overflow-wrap:anywhere;margin:2px 0 0;font-size:13px;line-height:1.5}.question-error{color:var(--error);margin-top:12px;font-size:12px;line-height:1.6}.question-receipt{border:1px solid var(--border);background:var(--page);color:var(--muted);border-radius:10px;align-items:center;gap:10px;padding:10px 14px;font-size:12px;display:flex}.question-receipt>span{flex:1}@media (width<=760px){.question-panel{width:calc(100% - 24px)}.question-card{max-height:54dvh}.question-card-header{padding:6px 8px 0 12px}.question-card-footer{padding:4px 12px 10px}.question-card-body{padding:4px 12px}.question-icon{width:40px;height:40px}.question-primary,.question-secondary,.question-custom,.question-note-toggle,.question-preview-disclosure summary{min-height:40px}.question-preview-disclosure summary{align-content:center}}@media (prefers-reduced-motion:reduce){.question-choice{transition:none}}:root[data-theme=mist]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--page:#f8fbfc;--sidebar:#eef3f5;--sidebar-hover:#e2ebee;--sidebar-active:#d8e6ea;--border:#dbe4e8;--border-strong:#c4d0d5;--text:#253239;--muted:#66757d;--subtle:#8a989e;--settings-secondary-text:#52636c;--accent:#347991;--focus:#3f879f;--healthy:#34825d;--error:#b94d50;--warning:#a86f22}:root[data-theme=rose]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--page:#fffafb;--sidebar:#f8eff1;--sidebar-hover:#f1e2e6;--sidebar-active:#ecd8dd;--border:#eadde0;--border-strong:#d8c2c8;--text:#392b2f;--muted:#79646a;--subtle:#9a858b;--settings-secondary-text:#654f56;--accent:#a64f68;--focus:#b45b73;--healthy:#42815e;--error:#b6474c;--warning:#a96d24}:root[data-theme=pine]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--page:#16201c;--sidebar:#1b2823;--sidebar-hover:#26362f;--sidebar-active:#30453b;--border:#35483f;--border-strong:#4a6257;--text:#edf3ef;--muted:#a8b7af;--subtle:#7f9188;--settings-secondary-text:#c2d0c8;--accent:#7bbf98;--focus:#86caa3;--healthy:#69ce94;--error:#ff9189;--warning:#e5bd63;--grid-minor:#9eb4a908;--grid-major:#9eb4a912;--grid-cross:#9eb4a91c}@media (prefers-color-scheme:dark){:root[data-theme=system]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--sidebar:#1d2024}:root[data-theme=system] body{background-image:none}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--page:#17191c;--sidebar:#1d2024;--sidebar-hover:#292d32;--sidebar-active:#30353b;--border:#353a40;--border-strong:#48515a;--text:#edf0f2;--muted:#a8b0b8;--subtle:#7f8993;--settings-secondary-text:#c3cbd3;--accent:#74a9e6;--focus:#78aee9;--healthy:#62c795;--error:#ff8c84;--warning:#e5b64f;--grid-minor:#87909908;--grid-major:#87909912;--grid-cross:#8790991c}:root:is([data-theme=dark],[data-theme=pine]) body{background-image:linear-gradient(var(--grid-minor) 1px, transparent 1px), linear-gradient(90deg, var(--grid-minor) 1px, transparent 1px)}:root:is([data-theme=dark],[data-theme=pine]) .session-sidebar{background:var(--sidebar);box-shadow:none;border-color:var(--border)}:root:is([data-theme=dark],[data-theme=pine]) .conversation-shell:not(.landing){background-image:none;background-color:var(--page)}:root:is([data-theme=dark],[data-theme=pine]) .details-body{color:var(--muted)}:root:is([data-theme=dark],[data-theme=pine]) :is(.markdown blockquote,.markdown code,.markdown-code-block,.markdown th,.tool-evidence,.process-sequence,.activity-card,.activity-chip,.mobile-header>button){background:var(--sidebar);color:var(--text);border-color:var(--border)}:root:is([data-theme=dark],[data-theme=pine]) :is(.new-session-button:hover,.message-details summary:hover,.process-sequence>summary:hover,.message-actions button:hover,.turn-tick:hover){background:var(--sidebar-hover);border-color:var(--border)}:root:is([data-theme=dark],[data-theme=pine]) :is(.turn-rail:hover,.turn-rail:focus-within){background:var(--page)}:root:is([data-theme=dark],[data-theme=pine]) .model-picker:hover,:root:is([data-theme=dark],[data-theme=pine]) .model-picker[aria-expanded=true],:root:is([data-theme=dark],[data-theme=pine]) .model-selector>div>button:hover,:root:is([data-theme=dark],[data-theme=pine]) .model-selector>div>button[aria-expanded=true]{background:var(--sidebar-hover)!important}:root:is([data-theme=dark],[data-theme=pine]) .slash-command-icon{background:var(--sidebar-hover)}:root:is([data-theme=dark],[data-theme=pine]) .thinking-picker:hover,:root:is([data-theme=dark],[data-theme=pine]) .thinking-picker[aria-expanded=true]{background:var(--sidebar-hover)!important}.session-view-switch{border:0;border:1px solid var(--border);border-radius:8px;gap:4px;min-width:0;margin:0 12px 8px;padding:4px;display:flex}.session-view-switch button{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:5px;flex:1;padding:6px 10px}.session-view-switch button[aria-pressed=true]{background:var(--sidebar-hover);font-weight:600}.sidebar-scope-note{color:var(--muted);margin:4px 18px 10px;font-size:12px;line-height:1.5}.inspection-panel{max-height:min(80dvh,760px);color:var(--text);padding:24px;overflow-y:auto}.inspection-heading{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.inspection-heading h2{margin:0;font-size:18px}.inspection-subtitle{color:var(--muted);overflow-wrap:anywhere;margin:6px 0 0;font-size:12px}.inspection-actions{flex-shrink:0;gap:6px;display:flex}.inspection-section{border-top:1px solid var(--border);margin-top:20px;padding-top:16px}.inspection-section h3{margin:0 0 12px;font-size:14px;font-weight:600}.inspection-section dl{grid-template-columns:100px minmax(0,1fr);gap:10px 16px;margin:0;font-size:13px;display:grid}.inspection-section dt{color:var(--muted)}.inspection-section dd{overflow-wrap:anywhere;margin:0}.inspection-section p{font-size:13px;line-height:1.6}.inspection-note,.inspection-updated{color:var(--muted);font-size:12px;line-height:1.6}.inspection-updated{margin:20px 0 0}.inspection-copy{border:1px solid var(--border);width:28px;height:28px;color:var(--muted);cursor:pointer;background:0 0;border-radius:5px;place-items:center;margin-left:6px;display:inline-grid}.inspection-copy:hover{background:var(--sidebar-hover);color:var(--text)}.inspection-copy:disabled{opacity:.45;cursor:default}.inspection-copy svg{width:14px;height:14px}.inspection-stream-heading{justify-content:space-between;align-items:center;gap:8px;display:flex}.inspection-stream-heading h3{margin:0}.inspection-setup{border-top:1px solid var(--border);margin-top:18px;padding-top:12px}.inspection-setup p{margin:0 0 6px}.inspection-warning{color:var(--text);border-left:2px solid var(--warning);overflow-wrap:anywhere;padding:8px 10px;font-size:13px}.inspection-provider-link{border:0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);text-align:left;cursor:pointer;background:0 0;justify-content:space-between;align-items:center;gap:16px;width:100%;margin-top:20px;padding:13px 0;display:flex}.inspection-provider-link:hover{color:var(--accent)}.inspection-provider-link>span{min-width:0;color:var(--text);flex-direction:column;gap:2px;display:flex}.inspection-provider-link small{color:var(--muted);font-size:11px;font-weight:400}.terminal-evidence{background:var(--sidebar-hover);border-radius:6px;max-width:100%;max-height:260px;padding:12px;overflow:auto}.terminal-evidence pre{white-space:pre;width:max-content;min-width:100%;margin:0;font-size:12px;line-height:1.6}.terminal-evidence:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}button.activity-chip{cursor:pointer;font:inherit}button.activity-chip:hover{filter:brightness(1.15)}@media (width<=600px){.inspection-panel{padding:18px}.inspection-section dl{grid-template-columns:72px minmax(0,1fr);gap:8px}}.conversation-view-row{align-items:center;gap:10px;min-width:0;padding:4px 24px;display:flex}.conversation-view-switch{z-index:15;background:var(--page);border:0;border-radius:8px;gap:4px;margin:0;padding:3px;display:flex;position:relative}.conversation-view-switch button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:7px 14px}.conversation-view-switch button[aria-pressed=true]{color:var(--text);background:var(--page);box-shadow:0 1px 3px #0001}.trajectory{flex-direction:column;padding:66px 28px 22px;display:flex;overflow:auto}.trajectory-heading h2{margin:0 0 8px;font-size:20px}.trajectory-heading p{color:var(--muted);margin:6px 0;font-size:12px}.trajectory-overview{flex-shrink:0;gap:6px;padding:14px 0;display:flex;overflow-x:auto}.trajectory-point{border:1px solid var(--border);height:30px;color:var(--muted);cursor:pointer;background:0 0;border-radius:50%;flex:0 0 30px}.trajectory-point.call{border-radius:6px}.trajectory-point[aria-pressed=true]{background:var(--text);color:var(--page)}.trajectory-body{grid-template-columns:minmax(200px,34%) minmax(0,1fr);align-items:start;gap:24px;display:grid}.trajectory-ledger ol{border-left:1px solid var(--border);margin:0;padding-left:24px}.trajectory-ledger li{color:var(--muted);padding:0 0 8px 2px;font-size:11px}.trajectory-record{text-align:left;width:100%;color:var(--text);cursor:pointer;overflow-wrap:anywhere;background:0 0;border:1px solid #0000;border-radius:8px;flex-direction:column;gap:5px;padding:10px;display:flex}.trajectory-record[aria-pressed=true]{border-color:var(--border);background:var(--sidebar-hover)}.trajectory-kind,.trajectory-preview,.trajectory-metadata{color:var(--muted);font-size:11px}.trajectory-preview{white-space:pre-wrap;max-height:40px;overflow:hidden}.trajectory-inspector{border:1px solid var(--border);overflow-wrap:anywhere;border-radius:12px;min-width:0;padding:20px;position:sticky;top:0}.trajectory-inspector h3{margin:0 0 12px}.trajectory-inspector h4{margin:20px 0 8px;font-size:12px}.trajectory-inspector p{font-size:12px}.trajectory-inspector pre{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--sidebar-hover);border-radius:6px;max-height:420px;padding:12px;font-size:12px;line-height:1.6;overflow:auto}.trajectory-warning{color:var(--warning);font-size:12px}.tool-evidence-card{border:1px solid var(--border);border-radius:8px;min-width:0;margin:8px 0;overflow:hidden}.tool-evidence-card>summary{cursor:pointer;align-items:center;gap:12px;padding:10px 12px;font-size:12px;display:flex}.tool-evidence-card>summary>span:not(.evidence-status):not(.evidence-summary-meta){text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.tool-evidence-card[data-state=failed] .tool-name,.tool-evidence-card[data-state=cancelled] .tool-name,.tool-evidence-card[data-state=timed_out] .tool-name{color:var(--error)}.evidence-status{color:var(--muted);flex-shrink:0;font-size:11px}.evidence-summary-meta{font-variant-numeric:tabular-nums;flex-shrink:0;gap:5px;font-size:11px;display:inline-flex}.review-additions{color:var(--healthy)}.review-deletions{color:var(--error)}.evidence-content{border-top:1px solid var(--border);overflow-wrap:anywhere;padding:12px;font-size:12px}.evidence-content pre{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--sidebar-hover);max-height:360px;padding:10px;line-height:1.65;overflow:auto}.evidence-content h4{margin:12px 0 6px}.evidence-content details>summary{cursor:pointer;padding:8px 0}.evidence-lines>span{white-space:pre;display:block}.evidence-line-number{min-width:4ch;color:var(--muted);-webkit-user-select:none;user-select:none;text-align:right;margin-right:2ch;display:inline-block}.diff-added{color:var(--text);background:#1ea0501f}.diff-removed{color:var(--text);background:#d23c3c1f}.evidence-warning{color:var(--warning)}.artifact-link{color:var(--accent);cursor:pointer;font:inherit;overflow-wrap:anywhere;background:0 0;border:0;padding:0;text-decoration:underline}.app-shell:has(>.artifact-panel){grid-template-columns:var(--sidebar-width) minmax(0,1fr) var(--auxiliary-width)}.app-shell.sidebar-collapsed:has(>.artifact-panel){grid-template-columns:56px minmax(0,1fr) var(--auxiliary-width)}.artifact-panel{border:0;border-left:1px solid var(--border);background:var(--page);min-width:0;height:100dvh;min-height:0;color:var(--text);flex-direction:column;display:flex;overflow:hidden}.artifact-panel header{border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;min-height:52px;padding:6px 8px 6px 12px;display:grid}.artifact-panel header>div{min-width:0}.artifact-panel header small,.artifact-panel h2{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.artifact-panel header small{color:var(--muted);font-size:10px}.artifact-panel h2{max-width:100%;margin:2px 0 0;font-size:12px}.artifact-panel-body{flex:1;min-width:0;min-height:0;padding:12px 14px 24px;overflow:auto}.artifact-panel p{overflow-wrap:anywhere;font-size:11px}.artifact-panel button:not(.artifact-link){border:1px solid var(--border);background:var(--page);min-height:30px;color:var(--text);cursor:pointer;border-radius:5px;justify-content:center;align-items:center;gap:6px;padding:5px 8px;display:inline-flex}.artifact-panel button:not(.artifact-link):hover{background:var(--sidebar-hover)}.artifact-panel button svg{width:15px;height:15px}.artifact-source{align-items:center;gap:6px;min-width:0;margin-top:12px;display:flex}.artifact-source code{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:10.5px;overflow:hidden}.artifact-session{color:var(--muted)}.artifact-panel button:disabled{opacity:.5;cursor:default}.artifact-panel pre{white-space:pre;width:max-content;min-width:100%;margin:0;padding:12px;font-size:11.5px;line-height:1.65;overflow:auto}.artifact-panel section[aria-label="File preview content"]{border:1px solid var(--border);background:var(--sidebar);border-radius:6px;min-width:0;overflow:auto}.artifact-actions{gap:8px;display:flex}.artifact-image-preview img{max-width:100%;height:auto}.artifact-panel details>summary{cursor:pointer;color:var(--muted);padding:8px 0;font-size:12px}.artifact-panel pre{font-size:13px}.artifact-panel section[aria-label="File preview content"]:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.artifact-revision{color:var(--muted)}.artifact-link-path{color:var(--muted);font-size:11px;text-decoration:none}@media (width<=1100px){.app-shell:has(>.artifact-panel){grid-template-columns:minmax(0,1fr)}.app-shell.sidebar-collapsed:has(>.artifact-panel){grid-template-columns:minmax(0,1fr)}:is(.app-shell:has(>.artifact-panel)>.conversation-shell,.app-shell:has(>.artifact-panel)>.session-sidebar,.app-shell:has(>.artifact-panel)>.sidebar-expand){display:none}.artifact-panel{border-left:0;grid-column:1/-1}}.trajectory-load{color:var(--text);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:6px;margin-bottom:12px;padding:10px}@media (width<=700px){.trajectory{padding:66px 16px 16px}.trajectory-body{grid-template-columns:1fr;gap:16px}.trajectory-ledger{max-height:200px;overflow:auto}.trajectory-inspector{padding:16px;position:static}}.conversation-shell.has-view:not(.landing){grid-template-rows:auto auto minmax(0,1fr) auto}.conversation-shell.has-view:has(>.question-panel){grid-template-rows:auto auto minmax(0,1fr) auto auto}.trajectory{padding-top:22px;overflow:hidden}.trajectory-heading{flex-shrink:0}.trajectory-body{flex:1;align-items:stretch;min-height:0;overflow:hidden}.trajectory-ledger{min-height:0;overflow:auto}.trajectory-inspector{min-height:0;position:static;overflow:auto}@media (width<=700px){.conversation-view-row{gap:4px;padding-left:60px}.conversation-view-switch button{padding:7px 8px}.trajectory{padding-top:16px}.trajectory-body{grid-template-rows:minmax(80px,30%) minmax(0,1fr)}.trajectory-ledger{max-height:none}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0} /*$vite$:1*/ \ No newline at end of file diff --git a/web/host/artifacts.ts b/web/host/artifacts.ts index dbeafd6e..3bfd7a81 100644 --- a/web/host/artifacts.ts +++ b/web/host/artifacts.ts @@ -1,12 +1,12 @@ import { createHash, randomUUID } from "node:crypto"; +import { isUtf8 } from "node:buffer"; import { constants } from "node:fs"; -import { lstat, open, realpath, stat } from "node:fs/promises"; +import { lstat, open, opendir, realpath, stat } from "node:fs/promises"; import { basename, dirname, isAbsolute, parse, relative, resolve, sep } from "node:path"; -import { ARTIFACT_MAX_BYTES, ARTIFACT_PREVIEW_BYTES, ARTIFACT_PREVIEW_LINES, type ArtifactMetadata } from "../protocol/artifacts.ts"; +import { ARTIFACT_MAX_BYTES, ARTIFACT_PREVIEW_BYTES, ARTIFACT_PREVIEW_LINES, type ArtifactMetadata, type WorkspaceFileEntry } from "../protocol/artifacts.ts"; const MAX_HANDLES = 64; const MAX_READS = 4; -const TEXT_EXTENSIONS = /\.(?:txt|md|markdown|json|csv|tsv|log|html?|css|[cm]?[jt]sx?|py|rs|go|java|c|h|cpp|yaml|yml|toml|xml|svg|sh|sql|diff|patch)$/iu; export class ArtifactError extends Error { readonly code: string; @@ -25,17 +25,18 @@ function inside(root: string, path: string) { return part !== "" && part !== ".." && !part.startsWith(`..${sep}`) && !isAbsolute(part); } -interface Scope { sessionId: string; cwd: string } +interface Scope { sessionId: string; cwd: string; sessionPath?: string } interface Grant { scope: Scope; path: string; requested: string; readRoot: string; touched: number } function metadataIdentity(info: import("node:fs").BigIntStats) { return [info.dev, info.ino, info.size, info.mtimeNs, info.ctimeNs].join(":"); } -/** An explicit authenticated file-open request grants one read-only file. - * No directory grants, persistence, background reads, or model-facing tools. */ +/** Authenticated requests grant one read-only file or one scoped directory cursor. + * No persistence, background filesystem reads, or model-facing tools. */ export class ArtifactReader { private readonly handles = new Map(); + private readonly listings = new Map; checks: Map; next: IteratorResult; timer: ReturnType }>(); private scopeKey = ""; private reads = 0; private disposed = false; @@ -45,8 +46,8 @@ export class ArtifactReader { private scope() { const scope = this.currentScope(); if (this.disposed || !scope) throw denied(); - const key = `${scope.sessionId}\0${scope.cwd}`; - if (key !== this.scopeKey) { this.handles.clear(); this.scopeKey = key; } + const key = `${scope.sessionId}\0${scope.cwd}\0${scope.sessionPath ?? ""}`; + if (key !== this.scopeKey) { this.revoke(); this.scopeKey = key; } for (const [handle, grant] of this.handles) if (Date.now() - grant.touched > 120_000) this.handles.delete(handle); return scope; } @@ -59,7 +60,7 @@ export class ArtifactReader { return decoded; } - private async canonical(scope: Scope, requested: string, readRoot = scope.cwd) { + private async canonical(scope: Scope, requested: string, readRoot = scope.cwd, allowRoot = false) { const root = await realpath(readRoot); // Find the actual workspace boundary, including Windows short-name aliases // in any ancestor. Never follow a link below that boundary. @@ -92,13 +93,98 @@ export class ArtifactReader { throw error; } } - if (!reachedRoot || !inside(root, path)) throw denied(); + if (!reachedRoot || (!inside(root, path) && !(allowRoot && relative(root, path) === ""))) throw denied(); return { path, requested }; } private assertScope(scope: Scope) { const current = this.scope(); - if (current.sessionId !== scope.sessionId || current.cwd !== scope.cwd) throw denied(); + if (current.sessionId !== scope.sessionId || current.cwd !== scope.cwd || current.sessionPath !== scope.sessionPath) throw denied(); + } + + /** Paged reads retain one bounded cursor, never an unbounded recursive snapshot. */ + async listFiles(sessionId: string, reference = ".", query = "", sessionPath?: string, cursor?: string) { + const scope = this.scope(); + if (sessionId !== scope.sessionId || (sessionPath !== undefined && sessionPath !== scope.sessionPath)) throw denied(); + if (query.length > 200 || /[\x00-\x1f\x7f]/u.test(query)) throw denied(); + if (this.reads >= MAX_READS) throw new ArtifactError("ARTIFACT_BUSY", 429, "File reads are busy. Try again shortly."); + this.reads++; + let scan: AsyncGenerator | undefined; + try { + const root = await realpath(scope.cwd); + const base = await this.canonical(scope, resolve(root, this.decodeReference(reference)), scope.cwd, true); + const path = relative(root, base.path).split(sep).join("/") || "."; + const key = JSON.stringify([scope, path, query]); + const saved = cursor ? this.listings.get(cursor) : undefined; + if (cursor && (!saved || saved.key !== key)) throw new ArtifactError("ARTIFACT_EXPIRED", 410, "File list expired. Refresh the directory."); + if (saved && cursor) { clearTimeout(saved.timer); this.listings.delete(cursor); } + if (!saved && this.listings.size >= 16) throw new ArtifactError("ARTIFACT_LIMIT", 429, "Too many open file lists. Collapse a directory before continuing."); + const checks = saved?.checks ?? new Map(); + scan = saved?.scan ?? this.scanFiles(scope, root, base.path, query.trim().toLocaleLowerCase(), checks); + const entries: WorkspaceFileEntry[] = []; + let item = saved?.next ?? await scan.next(); + let visited = 0; + while (!item.done && entries.length < 250 && visited++ < 2_000) { + if (item.value) entries.push(item.value); + item = await scan.next(); + } + // Verify every directory touched by this page before exposing any names. + for (const [directory, before] of checks) { + const after = await this.canonical(scope, directory, scope.cwd, true); + const info = await lstat(after.path, { bigint: true }); + if (info.dev !== before.dev || info.ino !== before.ino || info.mtimeNs !== before.mtimeNs || after.path !== directory) throw new ArtifactError("ARTIFACT_CHANGED", 409, "Directory changed. Refresh to read its current entries."); + } + checks.clear(); + this.assertScope(scope); + let nextCursor: string | undefined; + if (!item.done) { + nextCursor = randomUUID(); + const token = nextCursor; + const timer = setTimeout(() => this.releaseListing(token), 300_000); + timer.unref(); + this.listings.set(token, { key, scan, checks, next: item, timer }); + } + entries.sort((a, b) => Number(b.kind === "directory") - Number(a.kind === "directory") || a.name.localeCompare(b.name, undefined, { numeric: true, sensitivity: "base" })); + return { path, entries, truncated: false, ...(nextCursor ? { nextCursor } : {}) }; + } catch (error) { await scan?.return(undefined); throw this.classify(error); } + finally { this.reads--; } + } + + private async *scanFiles(scope: Scope, root: string, base: string, needle: string, checks: Map): AsyncGenerator { + const queue = [base]; + while (queue.length) { + const directory = queue.shift()!; + const current = await this.canonical(scope, directory, scope.cwd, true); + const before = await lstat(current.path, { bigint: true }); + if (!before.isDirectory()) throw new ArtifactError("ARTIFACT_UNSUPPORTED", 415, "Choose a directory."); + const stream = await opendir(current.path); + try { + // Explicit read/close supports pausing across HTTP pages without the + // async iterator closing the directory at each page boundary. + for (;;) { + checks.set(current.path, before); + const entry = await stream.read(); + if (!entry) break; + const path = relative(root, resolve(current.path, entry.name)).split(sep).join("/"); + const kind = entry.isSymbolicLink() ? "symlink" : entry.isDirectory() ? "directory" : entry.isFile() ? "file" : "other"; + if (needle && kind === "directory" && ![".git", "node_modules"].includes(entry.name)) { + if (queue.length >= 10_000) throw new ArtifactError("ARTIFACT_LIMIT", 413, "Search is too broad. Search within a smaller directory."); + queue.push(resolve(current.path, entry.name)); + } + this.assertScope(scope); + yield !needle || entry.name.toLocaleLowerCase().includes(needle) ? { name: entry.name, path, kind } : null; + } + } finally { await stream.close(); } + if (!needle) break; + } + } + + releaseListing(cursor: string) { + const saved = this.listings.get(cursor); + if (!saved) return; + this.listings.delete(cursor); + clearTimeout(saved.timer); + void saved.scan.return(undefined).catch(() => undefined); } async resolveFile(sessionId: string, reference: string, parent?: string) { @@ -150,7 +236,8 @@ export class ArtifactReader { } catch (error) { throw this.classify(error); } } - async read(handle: string, sessionId: string, expectedRevision?: string) { + async read(handle: string, sessionId: string, expectedRevision?: string, offset = 0) { + if (!Number.isSafeInteger(offset) || offset < 0 || offset > ARTIFACT_MAX_BYTES || (offset > 0 && !expectedRevision)) throw denied(); const grant = this.requireGrant(handle, sessionId); if (this.reads >= MAX_READS) throw new ArtifactError("ARTIFACT_BUSY", 429, "File reads are busy. Try again shortly."); this.reads++; @@ -179,11 +266,13 @@ export class ArtifactReader { const bytes = buffer.subarray(0, length); const revision = createHash("sha256").update(bytes).digest("hex"); if (expectedRevision && revision !== expectedRevision) throw new ArtifactError("ARTIFACT_CHANGED", 409, "The file has a newer version. Refresh before downloading."); - const textual = (TEXT_EXTENSIONS.test(grant.path) || !basename(grant.path).includes(".")) && !bytes.subarray(0, ARTIFACT_PREVIEW_BYTES).includes(0); + const textual = !/\.(?:pdf|docx?|xlsx?|pptx?|png|jpe?g|gif|webp|zip)$/iu.test(grant.path) && !bytes.includes(0) && isUtf8(bytes); const artifact: ArtifactMetadata = { handle, sessionId, path: grant.path, name: basename(grant.path), revision, bytes: length, preview: textual ? "text" : "unsupported" }; - const lines = textual ? new TextDecoder("utf-8", { ignoreBOM: true }).decode(bytes.subarray(0, ARTIFACT_PREVIEW_BYTES), { stream: length > ARTIFACT_PREVIEW_BYTES }).split("\n") : undefined; + const lines = textual ? new TextDecoder("utf-8", { ignoreBOM: true }).decode(bytes.subarray(offset, offset + ARTIFACT_PREVIEW_BYTES), { stream: length > offset + ARTIFACT_PREVIEW_BYTES }).split("\n") : undefined; const text = lines?.slice(0, ARTIFACT_PREVIEW_LINES).join("\n"); - return { bytes, preview: { artifact, identity: metadataIdentity(after), text, truncated: textual && (length > ARTIFACT_PREVIEW_BYTES || (lines?.length ?? 0) > ARTIFACT_PREVIEW_LINES) } }; + const nextOffset = offset + Buffer.byteLength(text ?? ""); + const truncated = textual && nextOffset < length; + return { bytes, preview: { artifact, identity: metadataIdentity(after), text, truncated, ...(truncated ? { nextOffset } : {}) } }; } finally { await file.close(); } } catch (error) { throw this.classify(error); } finally { this.reads--; } @@ -202,6 +291,6 @@ export class ArtifactReader { return new ArtifactError("ARTIFACT_READ_ERROR", 500, "Unable to read this file."); } - dispose() { this.disposed = true; this.handles.clear(); } - revoke() { this.handles.clear(); } + dispose() { this.disposed = true; this.revoke(); } + revoke() { this.handles.clear(); for (const cursor of this.listings.keys()) this.releaseListing(cursor); } } diff --git a/web/host/web-host.ts b/web/host/web-host.ts index fbe72b86..ecf7f37d 100644 --- a/web/host/web-host.ts +++ b/web/host/web-host.ts @@ -308,7 +308,7 @@ export class WebHost { !this.adapter.isCurrentSession({ id: admission.sessionId, path: admission.sessionPath })) return undefined; return { ...turn, workspace: this.runtime.cwd, controllerId: admission.controllerId }; }, () => this.publish("questions_changed")); - this.artifacts = new ArtifactReader(() => this.runtime.workspaceSelected && !this.stopping ? { sessionId: this.runtime.sessionManager.getSessionId(), cwd: this.runtime.cwd } : undefined); + this.artifacts = new ArtifactReader(() => this.runtime.workspaceSelected && !this.stopping ? { sessionId: this.runtime.sessionManager.getSessionId(), sessionPath: this.runtime.sessionManager.getSessionFile() ?? `current:${this.runtime.sessionManager.getSessionId()}`, cwd: this.runtime.cwd } : undefined); this.requestedPort = options.port ?? 0; this.token = options.token ? Buffer.from(options.token, "hex") @@ -625,7 +625,7 @@ export class WebHost { "Content-Type": "text/html; charset=utf-8", "Cache-Control": "no-store", "Content-Security-Policy": - "default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob:; connect-src 'self'; frame-src http: https:; object-src 'none'; base-uri 'none'; frame-ancestors 'none'; form-action 'none'", + "default-src 'self'; script-src 'self'; worker-src 'self' blob:; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob:; connect-src 'self'; frame-src http: https: 'self' blob:; object-src 'none'; base-uri 'none'; frame-ancestors 'none'; form-action 'none'", "Referrer-Policy": "no-referrer", "Cross-Origin-Resource-Policy": "same-origin", "Cross-Origin-Opener-Policy": "same-origin", @@ -638,7 +638,9 @@ export class WebHost { if ( url.pathname === "/styles.css" || url.pathname === "/app.js" || - url.pathname === "/favicon.svg" + url.pathname === "/favicon.svg" || + /^\/app-[a-zA-Z0-9_.-]+\.js$/u.test(url.pathname) || + url.pathname === "/pdf.worker.min.mjs" ) { if (request.method !== "GET") return this.json(response, 405, { @@ -799,6 +801,19 @@ export class WebHost { const handle = await this.artifacts.resolveFile(body.sessionId, body.reference, body.parent); return this.json(response, 200, { handle }); } + if (url.pathname === "/api/artifacts/files") { + if (request.method === "DELETE") { + const cursor = url.searchParams.get("cursor"); + if (!cursor || cursor.length > 100) return this.json(response, 400, { error: "A file-list cursor is required" }); + this.artifacts.releaseListing(cursor); + return this.json(response, 200, { released: true }); + } + if (request.method !== "GET") return this.json(response, 405, { error: "Directory listing requires GET" }); + const sessionId = url.searchParams.get("sessionId"); + const sessionPath = url.searchParams.get("sessionPath"); + if (!sessionId || !sessionPath || sessionId.length > 128 || sessionPath.length > 4096) return this.json(response, 400, { error: "An exact Session is required" }); + return this.json(response, 200, await this.artifacts.listFiles(sessionId, url.searchParams.get("path") ?? ".", url.searchParams.get("query") ?? "", sessionPath, url.searchParams.get("cursor") ?? undefined)); + } if (url.pathname === "/api/artifacts/authorize-file") { if (request.method !== "POST") return this.json(response, 405, { error: "File authorization requires POST" }); const body = await this.readJson(request); @@ -821,7 +836,9 @@ export class WebHost { return this.json(response, 200, await this.artifacts.metadata(handle, sessionId)); const revision = url.searchParams.get("revision") ?? undefined; if (download && !/^[a-f0-9]{64}$/u.test(revision ?? "")) return this.json(response, 400, { error: "Download requires the preview content revision" }); - const result = await this.artifacts.read(handle, sessionId, revision); + const offset = Number(url.searchParams.get("offset") ?? 0); + if (!Number.isSafeInteger(offset) || offset < 0 || offset > 20 * 1024 * 1024) return this.json(response, 400, { error: "A bounded text offset is required" }); + const result = await this.artifacts.read(handle, sessionId, revision, offset); if (!download) return this.json(response, 200, result.preview); response.writeHead(200, { "Content-Type": "application/octet-stream", "Content-Length": result.bytes.length, diff --git a/web/protocol/artifacts.ts b/web/protocol/artifacts.ts index 80ba8ee0..5aaed8cc 100644 --- a/web/protocol/artifacts.ts +++ b/web/protocol/artifacts.ts @@ -15,6 +15,20 @@ export interface ArtifactPreview { artifact: ArtifactMetadata; text?: string; truncated: boolean; + nextOffset?: number; +} + +export interface WorkspaceFileEntry { + name: string; + path: string; + kind: "directory" | "file" | "symlink" | "other"; +} + +export interface WorkspaceFileListing { + path: string; + entries: WorkspaceFileEntry[]; + truncated: boolean; + nextCursor?: string; } /** Keep the original reference; URL resolution belongs to the Host. */ diff --git a/web/ui/src/app/App.tsx b/web/ui/src/app/App.tsx index 13f89ed0..a1d341e4 100644 --- a/web/ui/src/app/App.tsx +++ b/web/ui/src/app/App.tsx @@ -30,8 +30,8 @@ import { ProviderSettingsPage } from "../features/settings/ProviderSettingsPage. import { recordedSubagents } from "../features/subagents/recorded-subagents.ts"; import { SubagentPanel } from "../features/subagents/SubagentPanel.tsx"; import { Trajectory } from "../features/trajectory/Trajectory.tsx"; -import { Transcript } from "../features/transcript/Transcript.tsx"; import type { SessionReadingCache } from "../features/transcript/session-reading-state.ts"; +import { Transcript } from "../features/transcript/Transcript.tsx"; import { SessionUsageBar } from "../features/workbar/SessionUsageBar.tsx"; import type { WorkbarTool } from "../features/workbar/types.ts"; import { WorkbarPanel } from "../features/workbar/WorkbarPanel.tsx"; @@ -65,8 +65,6 @@ export function App() { const providerSettingsTrigger = useRef(null); const workbarReturnFocus = useRef(null); const artifactProvider = useRef(null); - const artifactOpenFromFiles = useRef(false); - const artifactReturn = useRef<"files" | null>(null); const readingCache = useMemo(() => new Map(), []); const questionWorkingCache = useMemo( () => new Map(), @@ -316,34 +314,6 @@ export function App() { active: workbarOpen && workbarActiveTool === "review", running: selectedRunning, }); - const workbarMessages = useMemo(() => { - const previewingFiles = - artifactPanelOpen && artifactReturn.current === "files"; - if (!(workbarOpen && workbarActiveTool === "files") && !previewingFiles) - return []; - return [ - ...(selected?.entries.flatMap((entry) => - entry.message ? [entry.message] : [], - ) ?? []), - ...state.liveMessages - .filter((entry) => - entry.optimistic - ? entry.optimistic.sessionId === selected?.id && - entry.optimistic.sessionPath === selected?.path - : controlled, - ) - .map((entry) => entry.message), - ]; - }, [ - workbarOpen, - workbarActiveTool, - artifactPanelOpen, - selected?.entries, - selected?.id, - selected?.path, - controlled, - state.liveMessages, - ]); const workbarBound = Boolean( workbarTarget && selected && @@ -361,7 +331,6 @@ export function App() { const openWorkbar = (tool: WorkbarTool = "launcher") => { if (!selected || state.sessionSwitching) return; if (artifactPanelOpen) { - artifactReturn.current = null; artifactProvider.current?.close({ restoreFocus: false }); } if (!workbarVisible) @@ -494,31 +463,14 @@ export function App() { subagentVisible || providerSettingsVisible, )} - onOpen={(nested) => { + onOpen={() => { setArtifactPanelOpen(true); - if (!nested) - artifactReturn.current = artifactOpenFromFiles.current - ? "files" - : null; - artifactOpenFromFiles.current = false; setSubagentTarget(null); setWorkbarOpen(false); setInspection(null); }} - onClose={(reason) => { + onClose={() => { setArtifactPanelOpen(false); - const target = artifactReturn.current; - artifactReturn.current = null; - if ( - reason === "user" && - target && - workbarBound && - !state.workspaceDraft && - !state.sessionSwitching - ) { - setWorkbarActiveTool("files"); - setWorkbarOpen(true); - } }} > { - artifactOpenFromFiles.current = true; - }} conversationCollapsed={centerCollapsed} onRestoreConversation={() => setCenterCollapsed(false)} onClose={closeWorkbar} diff --git a/web/ui/src/components/Markdown.tsx b/web/ui/src/components/Markdown.tsx index ae6feadc..bd917749 100644 --- a/web/ui/src/components/Markdown.tsx +++ b/web/ui/src/components/Markdown.tsx @@ -1,16 +1,30 @@ -import type { Element, Root } from "hast"; +import type { Element, Root, RootContent } from "hast"; import { Check, Clipboard } from "lucide-react"; import type { ComponentPropsWithoutRef } from "react"; -import { memo, useContext, useEffect, useRef, useState } from "react"; +import { + isValidElement, + lazy, + memo, + Suspense, + useContext, + useEffect, + useRef, + useState, +} from "react"; import { useTranslation } from "react-i18next"; import ReactMarkdown from "react-markdown"; +import rehypeRaw from "rehype-raw"; import rehypeSanitize from "rehype-sanitize"; import remarkBreaks from "remark-breaks"; import remarkGfm from "remark-gfm"; import { isLocalArtifactLink } from "../../../protocol/artifacts.ts"; import { ArtifactContext } from "../features/artifacts/context.ts"; +import { InlineFileImage } from "../features/files/InlineFileImage.tsx"; import { copyText } from "../lib/clipboard.ts"; -import type { RootContent } from "hast"; + +const MermaidPreview = lazy( + () => import("../features/files/MermaidPreview.tsx"), +); function labelTaskCheckboxes() { return (tree: Root) => { @@ -172,18 +186,38 @@ function CodeBlock({ ); } +function FileCodeBlock( + props: ComponentPropsWithoutRef<"pre"> & { node?: Element }, +) { + const child = props.children; + if ( + isValidElement<{ className?: string; children?: string }>(child) && + child.props.className === "language-mermaid" + ) + return ( + {child.props.children}}> + + + ); + return ; +} + export const Markdown = memo(function Markdown({ children, + filePreview = false, }: { children: string; + filePreview?: boolean; }) { const { t } = useTranslation(); const artifacts = useContext(ArtifactContext); + let imageCount = 0; return (
; if (isLocalArtifactLink(src ?? "")) return artifacts && !artifacts.disabled ? (
); return ( -
+
+
+ + +
{!image?.loaded &&

{t("readingFile")}

} - {image && ( - - setImage((current) => - current ? { ...current, loaded: true } : null, - ) - } - onError={() => setError(t("artifactImagePreviewFailed"))} - /> - )} +
+ {image && ( + + setImage((current) => + current ? { ...current, loaded: true } : null, + ) + } + onError={() => setError(t("artifactImagePreviewFailed"))} + /> + )} +
); } @@ -101,11 +121,22 @@ export const ArtifactProvider = forwardRef< sessionPath?: string; children?: ReactNode; disabled?: boolean; + embedded?: boolean; + active?: boolean; onOpen?: (nested: boolean) => void; onClose?: (reason: "user" | "context") => void; } >(function ArtifactProvider( - { sessionId, sessionPath, children, disabled = false, onOpen, onClose }, + { + sessionId, + sessionPath, + children, + disabled = false, + embedded = false, + active = true, + onOpen, + onClose, + }, ref, ) { const { t } = useTranslation(); @@ -124,6 +155,9 @@ export const ArtifactProvider = forwardRef< const [copyStatus, setCopyStatus] = useState<"copied" | "failed" | null>( null, ); + const [changed, setChanged] = useState(false); + const [readingMore, setReadingMore] = useState(false); + const moreAbort = useRef(null); const opener = useRef(null); const copyGeneration = useRef(0); const closeButton = useRef(null); @@ -168,6 +202,7 @@ export const ArtifactProvider = forwardRef< setError(null); setAccessDenied(false); setCopyStatus(null); + setChanged(false); nextParent.current = parent; setRequest({ reference, parent, sessionId, sessionPath }); }, @@ -186,6 +221,7 @@ export const ArtifactProvider = forwardRef< setRequest(null); setPreview(null); setCopyStatus(null); + moreAbort.current?.abort(); onClose?.(reason); if (focusReturnFrame.current !== null) window.cancelAnimationFrame(focusReturnFrame.current); @@ -222,13 +258,14 @@ export const ArtifactProvider = forwardRef< onClose?.("context"); }, [request, requestInScope, onClose]); useEffect(() => { - if (!request || !sessionId || !requestInScope) return; + if (!request || !sessionId || !requestInScope || !active) return; const controller = new AbortController(); let handle: string | undefined; let parent = request.parent; let timer: ReturnType | undefined; let stopped = false; let identity: string | undefined; + let readingText = false; let delay = 2_000; if (focusClose.current) { focusClose.current = false; @@ -274,6 +311,11 @@ export const ArtifactProvider = forwardRef< delay = Math.min(delay * 2, 30_000); return; } + if (readingText) { + if (!stopped) setChanged(true); + delay = 30_000; + return; + } } const next = await client.artifactPreview( sessionId, @@ -282,8 +324,19 @@ export const ArtifactProvider = forwardRef< ); if (!stopped) { identity = next.identity; + readingText = next.text !== undefined; delay = 2_000; - setPreview(next); + setPreview((current) => + current?.artifact.path === next.artifact.path && + current.artifact.revision === next.artifact.revision + ? { + ...next, + text: current.text, + truncated: current.truncated, + nextOffset: current.nextOffset, + } + : next, + ); setError(null); } } catch (reason) { @@ -315,6 +368,8 @@ export const ArtifactProvider = forwardRef< controller.abort(); clearTimeout(timer); downloadAbort.current?.abort(); + moreAbort.current?.abort(); + setReadingMore(false); setBusy(false); if (handle && handle !== nextParent.current) void client.releaseArtifact(sessionId, handle).catch(() => undefined); @@ -323,7 +378,7 @@ export const ArtifactProvider = forwardRef< for (const url of blobUrls.current) URL.revokeObjectURL(url); blobUrls.current.clear(); }; - }, [client, request, requestInScope, sessionId]); + }, [client, request, requestInScope, sessionId, active]); const context = useMemo(() => ({ open, disabled }), [open, disabled]); const path = preview?.artifact.path ?? request?.reference ?? ""; const name = preview?.artifact.name ?? path.split(/[\\/]/u).at(-1) ?? path; @@ -355,12 +410,44 @@ export const ArtifactProvider = forwardRef< if (!controller.signal.aborted) setBusy(false); } }; + const readMore = async () => { + if (!preview?.nextOffset || moreAbort.current) return; + const current = preview; + const controller = new AbortController(); + moreAbort.current = controller; + setReadingMore(true); + try { + const next = await client.artifactPreview( + current.artifact.sessionId, + current.artifact.handle, + controller.signal, + { offset: current.nextOffset!, revision: current.artifact.revision }, + ); + if (!controller.signal.aborted) + setPreview((value) => + value?.artifact.handle === current.artifact.handle && + value.artifact.revision === next.artifact.revision + ? { ...next, text: (value.text ?? "") + (next.text ?? "") } + : value, + ); + } catch (reason) { + if (!controller.signal.aborted) + setError( + reason instanceof Error ? reason.message : t("filesReadFailed"), + ); + } finally { + if (moreAbort.current === controller) { + moreAbort.current = null; + setReadingMore(false); + } + } + }; return ( {children} {request && requestInScope && (