thursday-agent 0.26.0 → 0.27.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/build-manifest.json +5 -5
- package/.next/prerender-manifest.json +3 -3
- package/.next/required-server-files.json +5 -5
- package/.next/server/app/_global-error/page/build-manifest.json +2 -2
- package/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page/build-manifest.json +2 -2
- package/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +2 -2
- package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/api/artifact/route.js +10 -10
- package/.next/server/app/api/artifact/route.js.nft.json +1 -1
- package/.next/server/app/api/bot/memory/files/route.js +1 -1
- package/.next/server/app/api/bot/memory/files/route.js.nft.json +1 -1
- package/.next/server/app/api/bot/memory/route.js +8 -8
- package/.next/server/app/api/bot/memory/route.js.nft.json +1 -1
- package/.next/server/app/api/bot/route.js +8 -8
- package/.next/server/app/api/bot/route.js.nft.json +1 -1
- package/.next/server/app/api/bot/thread/file/route.js +15 -15
- package/.next/server/app/api/bot/thread/file/route.js.nft.json +1 -1
- package/.next/server/app/api/bot/thread/route.js +5 -5
- package/.next/server/app/api/bot/thread/route.js.nft.json +1 -1
- package/.next/server/app/api/bot/tool-result/[id]/route.js +6 -6
- package/.next/server/app/api/bot/tool-result/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/config/route.js +3 -3
- package/.next/server/app/api/config/route.js.nft.json +1 -1
- package/.next/server/app/api/events/route.js +1 -1
- package/.next/server/app/api/events/route.js.nft.json +1 -1
- package/.next/server/app/api/favicon/[host]/route.js +4 -4
- package/.next/server/app/api/favicon/[host]/route.js.nft.json +1 -1
- package/.next/server/app/api/file/[...path]/route.js +4 -4
- package/.next/server/app/api/file/[...path]/route.js.nft.json +1 -1
- package/.next/server/app/api/llm-model/automatic/route.js +5 -5
- package/.next/server/app/api/llm-model/automatic/route.js.nft.json +1 -1
- package/.next/server/app/api/llm-model/catalog/[provider]/route.js +5 -5
- package/.next/server/app/api/llm-model/catalog/[provider]/route.js.nft.json +1 -1
- package/.next/server/app/api/llm-model/credits/[provider]/route.js +5 -5
- package/.next/server/app/api/llm-model/credits/[provider]/route.js.nft.json +1 -1
- package/.next/server/app/api/llm-model/route.js +6 -6
- package/.next/server/app/api/llm-model/route.js.nft.json +1 -1
- package/.next/server/app/api/llm-model/subscription/route.js +6 -6
- package/.next/server/app/api/llm-model/subscription/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/[name]/route.js +5 -5
- package/.next/server/app/api/mcp/[name]/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/oauth/callback/route.js +6 -6
- package/.next/server/app/api/mcp/oauth/callback/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/route.js +5 -5
- package/.next/server/app/api/mcp/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/tools/route.js +5 -5
- package/.next/server/app/api/mcp/tools/route.js.nft.json +1 -1
- package/.next/server/app/api/memory/edit/route.js +15 -15
- package/.next/server/app/api/memory/edit/route.js.nft.json +1 -1
- package/.next/server/app/api/memory/route.js +4 -4
- package/.next/server/app/api/memory/route.js.nft.json +1 -1
- package/.next/server/app/api/reach/route.js +18 -18
- package/.next/server/app/api/reach/route.js.nft.json +1 -1
- package/.next/server/app/api/routine/route.js +8 -8
- package/.next/server/app/api/routine/route.js.nft.json +1 -1
- package/.next/server/app/api/running/route.js +2 -2
- package/.next/server/app/api/running/route.js.nft.json +1 -1
- package/.next/server/app/api/signins/route.js +3 -3
- package/.next/server/app/api/signins/route.js.nft.json +1 -1
- package/.next/server/app/api/skills/[source]/[name]/route.js +6 -6
- package/.next/server/app/api/skills/[source]/[name]/route.js.nft.json +1 -1
- package/.next/server/app/api/skills/route.js +6 -6
- package/.next/server/app/api/skills/route.js.nft.json +1 -1
- package/.next/server/app/api/thursday/call/end/route.js +5 -5
- package/.next/server/app/api/thursday/call/end/route.js.nft.json +1 -1
- package/.next/server/app/api/thursday/call/plan/route.js +14 -14
- package/.next/server/app/api/thursday/call/plan/route.js.nft.json +1 -1
- package/.next/server/app/api/thursday/call/route.js +6 -6
- package/.next/server/app/api/thursday/call/route.js.nft.json +1 -1
- package/.next/server/app/api/thursday/settings/route.js +5 -5
- package/.next/server/app/api/thursday/settings/route.js.nft.json +1 -1
- package/.next/server/app/api/thursday/text/route.js +14 -14
- package/.next/server/app/api/thursday/text/route.js.nft.json +1 -1
- package/.next/server/app/api/thursday/tool-call/route.js +15 -15
- package/.next/server/app/api/thursday/tool-call/route.js.nft.json +1 -1
- package/.next/server/app/api/update/route.js +7 -7
- package/.next/server/app/api/update/route.js.nft.json +1 -1
- package/.next/server/app/api/workspace/files/route.js +6 -6
- package/.next/server/app/api/workspace/files/route.js.nft.json +1 -1
- package/.next/server/app/api/workspace/route.js +6 -6
- package/.next/server/app/api/workspace/route.js.nft.json +1 -1
- package/.next/server/app/artifact/[...path]/page/build-manifest.json +2 -2
- package/.next/server/app/artifact/[...path]/page/server-reference-manifest.json +11 -11
- package/.next/server/app/artifact/[...path]/page.js.nft.json +1 -1
- package/.next/server/app/artifact/[...path]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/favicon.ico/route.js +2 -2
- package/.next/server/app/favicon.ico/route.js.nft.json +1 -1
- package/.next/server/app/manifest.webmanifest/route.js +2 -2
- package/.next/server/app/manifest.webmanifest/route.js.nft.json +1 -1
- package/.next/server/app/page/build-manifest.json +2 -2
- package/.next/server/app/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/page/server-reference-manifest.json +184 -184
- package/.next/server/app/page.js +10 -10
- package/.next/server/app/page.js.nft.json +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__01jpmcj._.js +2 -2
- package/.next/server/chunks/[root-of-the-server]__03bjojd._.js +3 -3
- package/.next/server/chunks/{[root-of-the-server]__0wosonh._.js → [root-of-the-server]__05u-9a3._.js} +1 -1
- package/.next/server/chunks/{[root-of-the-server]__1dyse-1._.js → [root-of-the-server]__0_qe8iq._.js} +1 -1
- package/.next/server/chunks/[root-of-the-server]__0d-dfqm._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0jqidnu._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0mmynvy._.js +2 -2
- package/.next/server/chunks/[root-of-the-server]__0ncs9uu._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0qhf60h._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0sea36s._.js +4 -4
- package/.next/server/chunks/[root-of-the-server]__0zezbds._.js +2 -2
- package/.next/server/chunks/[root-of-the-server]__12hkdpz._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__13hng6h._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__14inehv._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__17kdjf6._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__17yv6lg._.js +2 -2
- package/.next/server/chunks/[root-of-the-server]__1_04mcf._.js +2 -2
- package/.next/server/chunks/{[root-of-the-server]__0b3_rzi._.js → [root-of-the-server]__1hjb8wf._.js} +1 -1
- package/.next/server/chunks/[root-of-the-server]__1jcu_e9._.js +2 -2
- package/.next/server/chunks/[root-of-the-server]__1jmr2ed._.js +3 -3
- package/.next/server/chunks/[root-of-the-server]__1ndi14y._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__1o7z93z._.js +2 -2
- package/.next/server/chunks/[root-of-the-server]__1onvx8x._.js +2 -2
- package/.next/server/chunks/_0-mqt2w._.js +1 -1
- package/.next/server/chunks/_04s1gb9._.js +30 -27
- package/.next/server/chunks/_06u9yo-._.js +1 -1
- package/.next/server/chunks/_08354bn._.js +33 -30
- package/.next/server/chunks/_083t_nr._.js +1 -1
- package/.next/server/chunks/_0c-s0ei._.js +1 -1
- package/.next/server/chunks/_0gifi_2._.js +2 -2
- package/.next/server/chunks/_0m3sdq8._.js +1 -1
- package/.next/server/chunks/_0pljp-1._.js +1 -1
- package/.next/server/chunks/_0wjia9n._.js +1 -1
- package/.next/server/chunks/_0wyh244._.js +33 -30
- package/.next/server/chunks/_0x2mdif._.js +1 -1
- package/.next/server/chunks/_1-sk_q4._.js +1 -1
- package/.next/server/chunks/_12a_gfz._.js +1 -1
- package/.next/server/chunks/_14-kmob._.js +1 -1
- package/.next/server/chunks/_16zct7w._.js +30 -27
- package/.next/server/chunks/_1823_7a._.js +4 -4
- package/.next/server/chunks/_1f_x75d._.js +1 -1
- package/.next/server/chunks/_1o2r4ja._.js +1 -1
- package/.next/server/chunks/_1q42187._.js +3 -3
- package/.next/server/chunks/_1ufbxe1._.js +1 -1
- package/.next/server/chunks/config_ts_1g4sz5o._.js +1 -1
- package/.next/server/chunks/features_14kex_m._.js +11 -11
- package/.next/server/chunks/features_bot_08z387_._.js +4 -4
- package/.next/server/chunks/features_memory_0__61kl._.js +1 -1
- package/.next/server/chunks/features_memory_1uqvksn._.js +1 -1
- package/.next/server/chunks/features_workspace_workspace_ts_13h82gv._.js +1 -1
- package/.next/server/chunks/features_workspace_workspace_ts_1iyjroj._.js +3 -3
- package/.next/server/chunks/ssr/{[root-of-the-server]__0x297x3._.js → [root-of-the-server]__03_9u5q._.js} +2 -2
- package/.next/server/chunks/ssr/{[root-of-the-server]__0653diy._.js → [root-of-the-server]__04ky8w1._.js} +2 -2
- package/.next/server/chunks/ssr/{[root-of-the-server]__1zlzs9j._.js → [root-of-the-server]__0crm8gr._.js} +2 -2
- package/.next/server/chunks/ssr/{[root-of-the-server]__02936mh._.js → [root-of-the-server]__0d3n8i_._.js} +2 -2
- package/.next/server/chunks/ssr/{[root-of-the-server]__0s8q44q._.js → [root-of-the-server]__0d4o9hs._.js} +2 -2
- package/.next/server/chunks/ssr/[root-of-the-server]__0id2dqb._.js +1 -1
- package/.next/server/chunks/ssr/{[root-of-the-server]__1s0etwd._.js → [root-of-the-server]__0q2c15o._.js} +2 -2
- package/.next/server/chunks/ssr/[root-of-the-server]__0t_oz3-._.js +6 -0
- package/.next/server/chunks/ssr/{[root-of-the-server]__16x99f1._.js → [root-of-the-server]__12r70jm._.js} +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__1867koj._.js +1 -1
- package/.next/server/chunks/ssr/{[root-of-the-server]__0glkz9k._.js → [root-of-the-server]__1fvh0zn._.js} +2 -2
- package/.next/server/chunks/ssr/[root-of-the-server]__1t38-p_._.js +1 -1
- package/.next/server/chunks/ssr/{[root-of-the-server]__1c1xyyb._.js → [root-of-the-server]__1uy0zqr._.js} +2 -2
- package/.next/server/chunks/ssr/_02uubus._.js +3 -0
- package/.next/server/chunks/ssr/_0692i-a._.js +3 -0
- package/.next/server/chunks/ssr/_079xt7h._.js +32 -29
- package/.next/server/chunks/ssr/_07g7ojr._.js +3 -0
- package/.next/server/chunks/ssr/_0ewhz_x._.js +3 -0
- package/.next/server/chunks/ssr/_0f3t9pm._.js +2 -2
- package/.next/server/chunks/ssr/_0gx6qzr._.js +57 -0
- package/.next/server/chunks/ssr/_0pjwmak._.js +6 -0
- package/.next/server/chunks/ssr/_0pnzfq1._.js +1 -1
- package/.next/server/chunks/ssr/_0px9eat._.js +3 -0
- package/.next/server/chunks/ssr/_0r2_l__._.js +3 -0
- package/.next/server/chunks/ssr/{_20_wc-g._.js → _0rcuovx._.js} +2 -2
- package/.next/server/chunks/ssr/_0uwhhcs._.js +3 -0
- package/.next/server/chunks/ssr/{_1wct0tm._.js → _128r03g._.js} +1 -1
- package/.next/server/chunks/ssr/_12c2n7f._.js +3 -0
- package/.next/server/chunks/ssr/{_12_ail7._.js → _14f64h2._.js} +1 -1
- package/.next/server/chunks/ssr/_17fa2ns._.js +162 -0
- package/.next/server/chunks/ssr/_1_px1o-._.js +3 -0
- package/.next/server/chunks/ssr/_1a_w_du._.js +1 -1
- package/.next/server/chunks/ssr/_1e_9qjr._.js +1 -1
- package/.next/server/chunks/ssr/_1f59vze._.js +57 -0
- package/.next/server/chunks/ssr/_1j5ohq5._.js +3 -0
- package/.next/server/chunks/ssr/{_0ingto_._.js → _1kj3d2q._.js} +2 -2
- package/.next/server/chunks/ssr/_1neoj22._.js +1 -1
- package/.next/server/chunks/ssr/_1ocl7u0._.js +3 -0
- package/.next/server/chunks/ssr/_1q9r6u6._.js +3 -0
- package/.next/server/chunks/ssr/{_0fvctar._.js → _1qqusa-._.js} +2 -2
- package/.next/server/chunks/ssr/_1soynbw._.js +2 -2
- package/.next/server/chunks/ssr/_1uok0wt._.js +3 -0
- package/.next/server/chunks/ssr/_1v1pcoh._.js +1 -1
- package/.next/server/chunks/ssr/_1xw9imq._.js +3 -0
- package/.next/server/chunks/ssr/{components_ui_markdown-body_tsx_0h7bkrz._.js → components_ui_markdown-body_tsx_08i96c6._.js} +2 -2
- package/.next/server/chunks/ssr/features_0rrgq_t._.js +1 -1
- package/.next/server/chunks/ssr/features_ai_components_model-picker_tsx_0ucb1y9._.js +1 -1
- package/.next/server/chunks/ssr/features_bot_0tb4ui-._.js +2 -2
- package/.next/server/chunks/ssr/features_bot_components_01ye2wp._.js +1 -1
- package/.next/server/chunks/ssr/features_bot_components_bot-setting_tsx_01ajft6._.js +2 -2
- package/.next/server/chunks/ssr/features_bot_components_thread-setting_tsx_0yae7zy._.js +1 -1
- package/.next/server/chunks/ssr/features_config_components_config-setting_tsx_0xfwqdg._.js +2 -2
- package/.next/server/chunks/ssr/features_connectors_components_mcp-setting_tsx_0jmbgvp._.js +1 -1
- package/.next/server/chunks/ssr/features_memory_components_memory-setting_tsx_0oa43sw._.js +2 -2
- package/.next/server/chunks/ssr/features_routine_components_routine-setting_tsx_055fknz._.js +1 -1
- package/.next/server/chunks/ssr/features_skills_components_skills-setting_tsx_1wtuuip._.js +1 -1
- package/.next/server/chunks/ssr/features_thursday_components_thursday-setting_tsx_1_6ydrc._.js +1 -1
- package/.next/server/chunks/ssr/{node_modules_193w7l8._.js → node_modules_02djdfa._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules_1bwlhwa._.js → node_modules_03ybg-h._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_01xoz64._.js → node_modules_066eqdg._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_20ifwl6._.js → node_modules_09605b3._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1yilsx4._.js → node_modules_0_c17cv._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_080f5gu._.js → node_modules_0a1-9-h._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_17c047f._.js → node_modules_0bfpl_c._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1pav8g4._.js → node_modules_0brchjo._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0gwiuga._.js → node_modules_0c0pgdi._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_02-zrtu._.js → node_modules_0ep265x._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0kqej10._.js → node_modules_0gzvt6a._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules_0i18max._.js → node_modules_0h4gjw5._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1m2_gxv._.js → node_modules_0iso-he._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0cda8i6._.js → node_modules_0jvqmb4._.js} +1 -1
- package/.next/server/chunks/ssr/node_modules_0kzgugm._.js +3 -0
- package/.next/server/chunks/ssr/{node_modules_0uvoegq._.js → node_modules_0l8gpkg._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_12ajdg8._.js → node_modules_0mlrvds._.js} +2 -2
- package/.next/server/chunks/ssr/node_modules_0nvqvnw._.js +7 -7
- package/.next/server/chunks/ssr/{node_modules_1s3j8gb._.js → node_modules_0ogtyfm._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules_1_xiwxs._.js → node_modules_0os_-0h._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1abjhxx._.js → node_modules_0p05zru._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1o-m6_3._.js → node_modules_0pf8124._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules_0eqvt2l._.js → node_modules_0pp3v4f._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules_0rzz90e._.js → node_modules_0r1vv13._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1kum1yu._.js → node_modules_0r9yw6x._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1yw5fq4._.js → node_modules_0rk1a3e._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1es3wjv._.js → node_modules_0sq1pa3._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules_1-cv1_p._.js → node_modules_0w-pjyz._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules_0g_yuwn._.js → node_modules_0yoh66_._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1s9agqr._.js → node_modules_10kn3ni._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules_1yajzrd._.js → node_modules_124ipg-._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0svoyrb._.js → node_modules_12_p7d0._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_203yqqb._.js → node_modules_12w12wr._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_17ks351._.js → node_modules_16kmp_v._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules_05qs8r_._.js → node_modules_16m_yhd._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_07dc1cr._.js → node_modules_171uvar._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0qsi9t2._.js → node_modules_19pn2ti._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0k9_jdk._.js → node_modules_1_ly5yy._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0o_gq58._.js → node_modules_1_wsn9q._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1u7wlaq._.js → node_modules_1djak6n._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules_08cq8i-._.js → node_modules_1e-oxmh._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_15x7int._.js → node_modules_1ed4zep._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules_1pkpq6d._.js → node_modules_1f2qlxm._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules_1aw7c9f._.js → node_modules_1fn72fs._.js} +2 -2
- package/.next/server/chunks/ssr/node_modules_1h9p77x._.js +7 -7
- package/.next/server/chunks/ssr/{node_modules_1ucf2fi._.js → node_modules_1hj0rvo._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_12pvysk._.js → node_modules_1jvkoqj._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0tq4-57._.js → node_modules_1jzofr8._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_08hfp3a._.js → node_modules_1maqy-g._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_071fb26._.js → node_modules_1oox5h1._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_0_jxnnn._.js → node_modules_1p56fwh._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_01yukzc._.js → node_modules_1prbr1-._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1hrbceb._.js → node_modules_1qfou69._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_11f1w-3._.js → node_modules_1qnosqe._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules_1kd_hpx._.js → node_modules_1rdpn6v._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_079iwnx._.js → node_modules_1v6m9sp._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1iapzqf._.js → node_modules_1z8ywx9._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1dim95c._.js → node_modules_1zzudo-._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_1_71wv3._.js → node_modules_2157u1j._.js} +2 -2
- package/.next/server/chunks/ssr/{node_modules_katex_dist_katex_mjs_1c5gb92._.js → node_modules_katex_dist_katex_mjs_12lynt6._.js} +1 -1
- package/.next/server/chunks/ssr/{node_modules_katex_dist_katex_mjs_1ocxq2z._.js → node_modules_katex_dist_katex_mjs_1vjoadq._.js} +1 -1
- package/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_1v93o68._.js +1 -1
- package/.next/server/middleware-build-manifest.js +5 -5
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +185 -185
- package/.next/static/chunks/051z85h3ofmif.js +1 -0
- package/.next/static/chunks/05722zc-sohb_.js +4 -0
- package/.next/static/chunks/07jo959manleh.js +1 -0
- package/.next/static/chunks/0_5a18_y41-_4.js +1 -0
- package/.next/static/chunks/0be7dgti95u_2.js +1 -0
- package/.next/static/chunks/0c28x0q2aqsbj.js +1 -0
- package/.next/static/chunks/0o_rabv5are-o.js +2 -0
- package/.next/static/chunks/{0776-hu4_eek7.js → 0wwq57j09skhy.js} +2 -2
- package/.next/static/chunks/0zm3urd75-zw5.js +1 -0
- package/.next/static/chunks/16hfi69t-6a4t.js +2 -0
- package/.next/static/chunks/1g58g8-daiwu5.js +3 -0
- package/.next/static/chunks/1i1u85j-_yb1n.js +15 -0
- package/.next/static/chunks/1kd2sxkkrae8e.js +1 -0
- package/.next/static/chunks/{3xloayc4c096r.js → 1n3a07w81jbc-.js} +1 -1
- package/.next/static/chunks/1nncyxatu7une.js +1 -0
- package/.next/static/chunks/1s5t41jiomssd.css +1 -0
- package/.next/static/chunks/1yl4mlpsw8e7h.js +1 -0
- package/.next/static/chunks/{33qtnlc00c9gq.js → 2gl-fo_rmmmq0.js} +1 -1
- package/.next/static/chunks/2h_sak2oi70qs.js +1 -0
- package/.next/static/chunks/2isg5redeg2bc.js +1 -0
- package/.next/static/chunks/{2fxn-xltgy2un.js → 2of2-kggzp-fk.js} +1 -1
- package/.next/static/chunks/2vmran3sacktz.js +1 -0
- package/.next/static/chunks/2w02v9g8o9-rz.js +1 -0
- package/.next/static/chunks/2wi2pcbjrqm86.js +1 -0
- package/.next/static/chunks/2xk8otp3gnzml.js +1 -0
- package/.next/static/chunks/2ym1hrikoit8p.js +1 -0
- package/.next/static/chunks/34d1f980dv5c6.js +18 -0
- package/.next/static/chunks/34zhr71217o1-.js +2 -0
- package/.next/static/chunks/{0o1r15rfncytn.js → 37r4l2878vybp.js} +1 -1
- package/.next/static/chunks/{2cz5734j90h5b.js → 3a-2z23puvz2z.js} +1 -1
- package/.next/static/chunks/3d55-y263hup9.js +1 -0
- package/.next/static/chunks/3dzrveotr82eu.js +39 -0
- package/.next/static/chunks/3fensfht8pxhl.js +55 -0
- package/.next/static/chunks/3k7fum0yljmyr.js +1 -0
- package/.next/static/chunks/3sawwm4vucnzn.js +1 -0
- package/.next/static/chunks/{0z0-g4k1hnpw2.js → 3u208m--8u1iq.js} +1 -1
- package/.next/static/chunks/{turbopack-1kym6rf88i5i0.js → turbopack-0ekrsq98buh0j.js} +1 -1
- package/README.md +18 -18
- package/bin/background.mjs +60 -32
- package/bin/print.mjs +82 -0
- package/bin/thursday.mjs +44 -13
- package/guide/bots.md +19 -3
- package/guide/calls.md +5 -2
- package/guide/memory.md +2 -1
- package/guide/setup.md +8 -6
- package/guide/trouble.md +4 -0
- package/package.json +11 -5
- package/public/voices/intro/awake-f4e02fad.ogg +0 -0
- package/seed-skills/concierge/travel/scripts/itinerary.mjs +2 -1
- package/server.js +1 -1
- package/skills/artifact/references/document.md +5 -2
- package/skills/artifact/runtime/document/markdown.mjs +14 -1
- package/skills/artifact/runtime/shell/head.html +1 -1
- package/skills/artifact/scripts/document.mjs +9 -3
- package/skills/browser/SKILL.md +17 -13
- package/.next/server/chunks/[root-of-the-server]__0ald4vb._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0srfj96._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__1kos36s._.js +0 -6
- package/.next/server/chunks/ssr/_024j8bs._.js +0 -3
- package/.next/server/chunks/ssr/_04jb10a._.js +0 -3
- package/.next/server/chunks/ssr/_059oyhd._.js +0 -3
- package/.next/server/chunks/ssr/_0d0uyl3._.js +0 -3
- package/.next/server/chunks/ssr/_0fk7dbp._.js +0 -88
- package/.next/server/chunks/ssr/_0gfa_rb._.js +0 -3
- package/.next/server/chunks/ssr/_0i7zd74._.js +0 -3
- package/.next/server/chunks/ssr/_0sp2z94._.js +0 -3
- package/.next/server/chunks/ssr/_1avnw03._.js +0 -57
- package/.next/server/chunks/ssr/_1bfrntd._.js +0 -6
- package/.next/server/chunks/ssr/_1cpvfkg._.js +0 -3
- package/.next/server/chunks/ssr/_1cqjpyq._.js +0 -3
- package/.next/server/chunks/ssr/_1khngyc._.js +0 -72
- package/.next/server/chunks/ssr/_1kyjimg._.js +0 -162
- package/.next/server/chunks/ssr/_1sw4r4m._.js +0 -6
- package/.next/server/chunks/ssr/_20004tu._.js +0 -57
- package/.next/server/chunks/ssr/node_modules_01alue6._.js +0 -3
- package/.next/server/chunks/ssr/node_modules_02n9-pb._.js +0 -3
- package/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_0zxr5sz._.js +0 -3
- package/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_trash_mjs_0px2gzr._.js +0 -3
- package/.next/static/chunks/02d9vhnz5mwvu.js +0 -1
- package/.next/static/chunks/06ff4fq0z4das.js +0 -1
- package/.next/static/chunks/09q9n7jrkm4c9.js +0 -39
- package/.next/static/chunks/0b3wt5kqs-mk2.js +0 -2
- package/.next/static/chunks/0blrj_tg1yur0.js +0 -1
- package/.next/static/chunks/0dn1ptom1ahgg.js +0 -18
- package/.next/static/chunks/0dq7uppta9s--.js +0 -1
- package/.next/static/chunks/0hoz2b--nhn4y.js +0 -1
- package/.next/static/chunks/0kfjtkez2xze2.js +0 -1
- package/.next/static/chunks/0mv2zywfzt83k.js +0 -4
- package/.next/static/chunks/0txtrhykehsd_.js +0 -55
- package/.next/static/chunks/17vs1vz7_4l4p.css +0 -1
- package/.next/static/chunks/1dnvf_117h4k3.js +0 -2
- package/.next/static/chunks/1irynso77np9t.js +0 -1
- package/.next/static/chunks/1sh_-w_keseat.js +0 -1
- package/.next/static/chunks/1z2_9pl3nezly.js +0 -3
- package/.next/static/chunks/23ty4edkuxirx.js +0 -1
- package/.next/static/chunks/2f1cnfz4h1e2x.js +0 -1
- package/.next/static/chunks/2jepcbdewlwlg.js +0 -1
- package/.next/static/chunks/2r_zq_knm0hph.js +0 -15
- package/.next/static/chunks/2yfmmo4qr_f-m.js +0 -1
- package/.next/static/chunks/3-xnkknav7azp.js +0 -1
- package/.next/static/chunks/38q31td1ecuay.js +0 -1
- package/.next/static/chunks/3n75-7grldc6f.js +0 -1
- package/.next/static/chunks/3ofr4htw4wpj3.js +0 -1
- package/.next/static/chunks/40bkw3zfenss4.js +0 -2
- package/public/voices/intro/awake-17dbafbf.ogg +0 -0
- package/public/voices/intro/models-d09ddc74.ogg +0 -0
- /package/.next/static/{YIQV0_9FZPTFUe9TCiVSF → 3_9hbwcAuWTSWCJSufp3d}/_buildManifest.js +0 -0
- /package/.next/static/{YIQV0_9FZPTFUe9TCiVSF → 3_9hbwcAuWTSWCJSufp3d}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{YIQV0_9FZPTFUe9TCiVSF → 3_9hbwcAuWTSWCJSufp3d}/_ssgManifest.js +0 -0
|
@@ -1,47 +1,50 @@
|
|
|
1
|
-
module.exports=[884780,a=>{"use strict";a.i(902157),a.i(912714);var b=a.i(750227),c=a.i(569572);(0,b.join)(c.APP_DIR,"guide");let d=".guide";a.s(["botGuideLine",0,()=>`How ${c.APP_NAME} itself works for the user — its screens and settings — is written under \`${d}/\` here, \`index.md\` first; read it only when the job is about the app.`,"guideLine",0,()=>`How ${c.APP_NAME} works for the person using it — its screens, its settings, what it connects to, what to do when something stops — is written under \`${d}/\` here, \`index.md\` first. Read it whenever an answer depends on how the app works: what can be asked for, where something is changed, a wish that needs a setting switched on, something that stopped or was refused. Answer from it rather than from what you assume.`])},738131,a=>a.a(async(b,c)=>{try{var d=a.i(527990),e=a.i(868468),f=a.i(569572),g=a.i(875931),h=a.i(938934),i=a.i(978876),j=a.i(375827),k=a.i(127507),l=a.i(467650),m=a.i(230161),n=a.i(138902),o=a.i(345846),p=a.i(617594),q=a.i(622547),r=a.i(128232),s=a.i(382442),t=a.i(451017),u=a.i(762008),v=a.i(547613),w=a.i(446957),x=a.i(138100),y=a.i(821415),z=a.i(706210),A=a.i(176668),B=a.i(293480),C=a.i(987674),D=a.i(182248),E=b([g,i,m,n,o,p,q,r,t,x]);async function F(b){let{listThreadOverview:c}=await a.A(343064),d=await c();if(!d.length)return"No thread has been started yet.";let e=d.map(a=>`"${a.label}" (${a.bot}, ${a.status})`).join(", ");return`There is no thread called "${b}". The latest are: ${e}. Call again with one of those labels.`}async function G(a,b){let c=[];for(let[a,e]of Object.entries(b)){let b=await (0,d.asSchema)(e.inputSchema).jsonSchema,f="string"==typeof e.description?e.description:"";c.push({name:a,tokens:(0,C.estimateTokens)(f)+(0,C.estimateTokens)(JSON.stringify(b))})}c.sort((a,b)=>b.tokens-a.tokens);let e=c.reduce((a,b)=>a+b.tokens,0);A.logger.debug(`${a} tools ${e} tokens over ${c.length} — ${c.map(a=>`${a.name} ${a.tokens}`).join(", ")}`)}async function H(a){let b=await I(a);return f.IS_DEV&&await G(a.target,b),b}async function I(b){if("memory-edit"===b.target)return(0,o.createMemoryTools)("user",null,{countReads:!1});let c=(0,o.createMemoryTools)("call","thursday"===b.target?b.callId??null:null),A=await (0,y.openWorkspace)();if("thursday"===b.target){var C;let k,m,n=b.readSkills?(0,t.createSkillTools)({sandbox:A,skills:await (0,x.loadSkills)(A)}):{},o=!!(b.written&&b.model&&(0,g.seesToolImages)(b.model));return{...c,...n,...(0,v.createWorkspaceTools)(A,{write:!1,timeoutMs:f.CALL_EXEC_TIMEOUT_MS}),...!1===b.webSearch?{}:await (0,q.createCallSearchTool)(A),...Object.fromEntries(Object.entries((C=b.callId,k=async b=>{let{resolveThread:c}=await a.A(343064);return(b.trim()?await c(b.trim()):null)??await F(b)},m=async(b,c,d)=>{let e=await a.A(763543);try{return await e.answerThread(b,c,"thursday",d)}catch(a){if((0,B.isPublicError)(a))return a.message;throw a}},{[u.TOOL_NAMES.thread_start]:(0,d.tool)({description:i.threadStartSpec.description,inputSchema:i.threadStartSpec.parameters,execute:async({bot:b,request:c,label:d})=>{let{findJobBot:e,listJobBots:f}=await a.A(276307),g=await e(b);if(!g||g.disabled){let a=(await f()).map(a=>a.name);return`There is no bot called "${b}". The bots are: ${a.join(", ")}. Nothing was started — call again with one of those.`}let{startThread:h}=await a.A(763543);return{threadId:await h({bot:g.name,request:c,label:d,callId:C,from:"thursday"}),bot:g.name,label:d,note:`${g.name} has "${d}". Its updates reach the conversation on their own. Anything further about this work — a correction, the next step once it finishes — is \`${u.TOOL_NAMES.thread_tell}\` with "${d}"; a question it asks is answered with \`${u.TOOL_NAMES.thread_answer}\`.`}}}),[u.TOOL_NAMES.thread_tell]:(0,d.tool)({description:i.threadTellSpec.description,inputSchema:i.threadTellSpec.parameters,execute:async({thread:a,words:b})=>{let c=await k(a);if("string"==typeof c)return c;if(!b.trim())return"Say what to pass on.";let d=await m(c.id,b.trim());return"string"==typeof d?d:d?.answered?{label:c.label,answered:d.answered,note:`${d.answered.bot} was waiting on a question, and took this as its answer.`}:{label:c.label,bot:d?.to??c.bot,status:"running",note:"running"===c.status?"The bot reads it before its next step.":"The bot picks the thread back up from there."}}}),[u.TOOL_NAMES.thread_answer]:(0,d.tool)({description:i.threadAnswerSpec.description,inputSchema:i.threadAnswerSpec.parameters,execute:async({thread:b,bot:c,answer:d})=>{let e=await k(b);if("string"==typeof e)return e;if(!d.trim())return"Say what the answer is.";let{findThreadRoom:f}=await a.A(343064),g=(await f(e.id))?.questions??[],h=g.find(a=>a.bot.toLowerCase()===c.trim().toLowerCase());if(!h)return g.length?`${c} is not asking anything in "${e.label}". Waiting there: ${g.map(a=>a.bot).join(", ")}. Call again with that bot.`:`No question is waiting in "${e.label}". To say something else to it, use \`${u.TOOL_NAMES.thread_tell}\`.`;let i=await m(e.id,d.trim(),h.bot);return"string"==typeof i?i:{label:e.label,answered:i?.answered??{bot:h.bot,question:h.text},note:`${h.bot} has the answer to its question and goes on from it.`}}}),[u.TOOL_NAMES.thread_status]:(0,d.tool)({description:i.threadStatusSpec.description,inputSchema:i.threadStatusSpec.parameters,execute:async({thread:b})=>{let{listThreadOverview:c,findThreadRoom:d}=await a.A(343064),g={now:(0,h.clockNow)()},i=a=>(0,e.formatDistanceToNowStrict)((0,z.toDate)(a),{addSuffix:!0});if(!(!b.trim()||"all"===b.trim().toLowerCase())){let a=await k(b);if("string"==typeof a)return a;let c=await d(a.id);return{...g,label:a.label,id:a.id,bot:a.bot,participants:c?.participants??[],questions:c?.questions??[],status:a.status,since:i(a.updatedAt),outcome:a.outcome,..."waiting"===a.status&&a.pending?.options.length?{options:a.pending.options}:{}}}let j=await c();return j.length?{...g,threads:j.map(a=>({id:a.id,label:a.label,bot:a.bot,status:a.status,participants:a.room.participants,questions:a.room.questions.map(a=>({...a,text:(0,D.clip)(a.text,f.PROMPT_LINE.threadStatus)})),since:i(a.updatedAt),...a.ask?{asking:a.ask.question,options:a.ask.options}:{},..."running"===a.status?{now:(0,w.threadActivity)(a.lines)}:{},...a.outcome&&"waiting"!==a.status?{outcome:(0,D.clip)(a.outcome,f.PROMPT_LINE.threadStatus)}:{}}))}:"No thread has been started yet."}}),[u.TOOL_NAMES.thread_cancel]:(0,d.tool)({description:i.threadCancelSpec.description,inputSchema:i.threadCancelSpec.parameters,execute:async({thread:b})=>{let c=await k(b);if("string"==typeof c)return c;let{cancelThread:d}=await a.A(763543);return await d(c.id),{label:c.label,status:"cancelled"}}}),[u.TOOL_NAMES.thread_show]:(0,d.tool)({description:i.threadShowSpec.description,inputSchema:i.threadShowSpec.parameters,execute:async({thread:b})=>{let c=await k(b);if("string"==typeof c)return c;let{appEvents:d}=await a.A(133300),{filesOnDisk:e}=await a.A(122690),{leadFirst:f,pathsIn:g,viewKindOf:h}=await a.A(394298),i=(await e(g(c.outcome??""),null)).filter(a=>"none"!==h(a));if(!i.length)return d.emit({type:"showThread",threadId:c.id}),{label:c.label,showing:"the thread"};let j=f(i);d.emit({type:"showFile",paths:j});let{markSeen:l}=await a.A(343064);return await l([c.id]),{label:c.label,showing:j[0]}}}),[u.TOOL_NAMES.thread_seen]:(0,d.tool)({description:i.threadSeenSpec.description,inputSchema:i.threadSeenSpec.parameters,execute:async({thread:b})=>{let c=await k(b);if("string"==typeof c)return c;let{markSeen:d}=await a.A(343064);return await d([c.id]),{label:c.label,seen:!0}}})})).filter(([a])=>!(b.phone&&a===u.TOOL_NAMES.thread_show))),...(0,p.createRoutineTools)(),...o?(0,l.createLookTool)():{},...b.written?{}:(0,j.callTools)()}}let E=await (0,x.loadSkills)(A,b.bot),G={...(0,y.jobShellEnv)(b.session),...(0,y.botShellEnv)(b.bot,(await (await a.A(276307)).findJobBot(b.bot))?.icon)},H=!!(b.model&&(0,g.seesToolImages)(b.model.ref));return{[u.TOOL_NAMES.memory_recall]:(0,o.createMemoryTools)("call",null,{tidies:!1})[u.TOOL_NAMES.memory_recall],...await (0,q.createSearchTool)(b.model,A),...(0,v.createWorkspaceTools)(A,{write:!0,env:G,guide:!0,bot:b.bot}),...await (0,n.createMcpTools)(b.bot,A),...(0,t.createSkillTools)({sandbox:A,skills:E,bot:b.bot}),...await (0,r.createSelfTools)(b.bot),...(0,k.createDeckTools)(A,b.bot,G,H),...H?(0,l.createLookTool)():{},...(0,s.createSignInTools)(A,b.bot,(0,y.jobShellEnv)(b.session)),...await (0,i.createThreadRecallTool)(b.bot,b.thread??null),...await (0,m.createMailTools)()}}[g,i,m,n,o,p,q,r,t,x]=E.then?(await E)():E,a.s(["loadTools",0,H]),c()}catch(a){c(a)}},!1),822164,a=>a.a(async(b,c)=>{try{a.i(569572);var d=a.i(725466),e=a.i(176668),f=a.i(293480);a.i(182248);var g=a.i(689656),h=b([d]);[d]=h.then?(await h)():h;let k={"x-ai":"spacexai","z-ai":"zai",mistralai:"mistral","meta-llama":"meta",qwen:"alibaba","bytedance-seed":"bytedance"},l=a=>{let b=a.slice(0,a.indexOf("/")).replace(/^~/,"");return k[b]??b};function i(a){if(null==a||""===a)return null;let b=Number(a);return!Number.isFinite(b)||b<0?null:Math.round(1e6*b*1e4)/1e4}async function j(){let a=await fetch("https://openrouter.ai/api/v1/models",{headers:{accept:"application/json"}}).catch(a=>{e.logger.warn({cause:a},"openrouter catalog unreachable"),(0,f.publicError)("Could not reach OpenRouter")});return a.ok||(0,f.publicError)(`OpenRouter answered ${a.status}`),((await a.json()).data??[]).filter(a=>!!a.id).map(a=>{let b,c,d,e;return{id:a.id,label:a.name||a.id,owner:l(a.id),type:(a.architecture?.output_modalities??[]).includes("text")?g.CATALOG_TEXT:null,tags:(a.supported_parameters??[]).includes("tools")?[g.CATALOG_TOOL_USE]:[],price:(b=i(a.pricing?.prompt),c=i(a.pricing?.completion),0===b&&0===c?{in:0,out:0,note:null,free:!0}:{in:b,out:c,note:null===b&&null===c?"per model it picks":null,free:!1}),retiring:!!a.expiration_date,contextWindow:"number"==typeof a.context_length&&a.context_length>0?a.context_length:null,efforts:(d=a.reasoning?.supported_efforts??[],(e=g.EFFORTS.filter(a=>d.includes(a))).length?e:null)}})}a.s(["fetchOpenRouterCatalog",0,j,"vendorOf",0,l]),c()}catch(a){c(a)}},!1),875931,a=>a.a(async(b,c)=>{try{var d=a.i(938537),e=a.i(674861),f=a.i(606016),g=a.i(388319),h=a.i(538177),i=a.i(767071),j=a.i(140358),k=a.i(873739),l=a.i(899042),m=a.i(345364),n=a.i(434451),o=a.i(655819),p=a.i(272380),q=a.i(652685),r=a.i(156956),s=a.i(47919),t=a.i(569572),u=a.i(688034),v=a.i(725466),w=a.i(176668),x=a.i(293480),y=a.i(182248),z=a.i(652619),A=a.i(689656),B=a.i(822164),C=b([v,z,B]);[v,z,B]=C.then?(await C)():C;let Q=/context[ _-]?(length|window)|maximum context|prompt is too long|too many (input )?tokens|input token count|exceeds? the (maximum|model'?s?) (context|input|prompt|number of tokens)|maximum prompt length|request (entity )?too large/i;function D(a){return E(a).some(a=>{let{statusCode:b,message:c,error:d}=a;if(void 0!==b&&400!==b&&413!==b)return!1;let e=q.APICallError.isInstance(a)?a.responseBody:null;return[c,d,e].some(a=>"string"==typeof a&&Q.test(a))})}let R=new Set([408,409,429]);function E(a){let b=[],c=[a];for(;c.length&&b.length<12;){let a=c.shift();!("object"!=typeof a||null===a||b.includes(a))&&(b.push(a),s.RetryError.isInstance(a)&&c.push(...a.errors),"cause"in a&&c.push(a.cause))}return b}let S=(a,b)=>({ref:a,model:b,searchTools:null}),T={};function F(a){if(null==a||""===a)return null;let b=Number(a);return Number.isFinite(b)?Math.round(1e6*b*1e4)/1e4:null}async function G(a){let b=T[a];if(b&&Date.now()-b.at<t.CATALOG_MS)return b.models;let c=("openrouter"===a?await (0,B.fetchOpenRouterCatalog)():await H()).sort((a,b)=>a.id.localeCompare(b.id));return T[a]={at:Date.now(),models:c},c}async function H(){let a=await fetch("https://ai-gateway.vercel.sh/v1/models",{headers:{accept:"application/json"}}).catch(a=>{w.logger.warn({cause:a},"gateway catalog unreachable"),(0,x.publicError)("Could not reach the gateway")});return a.ok||(0,x.publicError)(`The gateway answered ${a.status}`),((await a.json()).data??[]).filter(a=>!!a.id).map(a=>{let b,c;return{id:a.id,label:a.name||a.id,owner:a.owned_by||a.id.slice(0,a.id.indexOf("/")),type:a.type??null,tags:a.tags??[],price:function(a){let b=a.pricing??{},c=F(b.input),d=F(b.output);if((a.tags??[]).includes("free")||0===c)return{in:0,out:0,note:null,free:!0};let e=b.transcription_duration_cost_per_second??b.realtime_session_duration_cost_per_second;if(e)return{in:null,out:null,note:`$${e}/s`,free:!1};if(b.speech_input_character_cost)return{in:null,out:null,note:"per character",free:!1};let f=Array.isArray(b.video_duration_pricing)?b.video_duration_pricing[0]:null;if(f?.cost_per_second)return{in:null,out:null,note:`$${f.cost_per_second}/s ${f.resolution??""}`.trimEnd(),free:!1};let g=b.image?`$${b.image}/image`:b.image_dimension_quality_pricing?"per image, by size":null;return null===c&&null===d?{in:null,out:null,note:g,free:!1}:{in:c,out:d,note:b.input_tiers?"tiered":b.varies_by_provider?"varies":g&&"+ per image",free:!1}}(a),retiring:!!a.deprecated_at,contextWindow:"number"==typeof a.context_window&&a.context_window>0?a.context_window:null,efforts:(b=(a.reasoning_options??[]).find(a=>a?.type==="effort"),(c=A.EFFORTS.filter(a=>b?.values?.includes(a))).length?c:null)}})}async function I(a,b){if(b&&b>0)return b;let c=await J(a);return(0,A.compactAtFor)((0,A.contextWindowOf)(a.provider,a.model,c))}async function J(a){return(0,A.isCatalogProvider)(a.provider)?await G(a.provider).catch(()=>[]):[]}async function K(a,b){let c=b??A.effortSchema.safeParse(await (0,v.readConfig)(u.DEFAULT_EFFORT_KEY)).data;if(!c)return;let d=await J(a);return(0,A.effortsOf)(a.provider,a.model,d)?.includes(c)?c:void 0}async function L(a){return await G(a).then(a=>new Set(a.map(a=>a.id))).catch(()=>null)}async function M(a,b){if(!(0,A.isCatalogProvider)(a))return b;let c=await L(a);if(!c)return b;let d=b.filter(a=>c.has(a.id));return d.length>0?d:b}async function N(a){let{label:b,apiKeyName:c,signIn:q}=A.TEXT_MODEL_PROVIDERS[a.provider],t=await (0,v.readConfig)(c);return t||(0,x.publicError)(await (0,v.missingKeyWords)(c,q?`${b} is not signed in — sign in from Settings › API keys.`:`No ${b} key — add one in Settings › API keys.`)),function(a,b){switch(a.provider){case"openai":{let c=(0,m.createOpenAI)({apiKey:b});return{ref:a,model:c(a.model),searchTools:{search:c.tools.webSearch()}}}case"chatgpt":return{ref:a,model:(0,z.chatGptModel)(a.model),searchTools:{search:(0,z.chatGptSearch)()}};case"anthropic":{let c=(0,d.createAnthropic)({apiKey:b});return{ref:a,model:c(a.model),searchTools:{search:c.tools.webSearch_20260209()}}}case"google":{let c=(0,j.createGoogleGenerativeAI)({apiKey:b});return{ref:a,model:c(a.model),searchTools:{search:c.tools.googleSearch({})}}}case"xai":{let c=(0,o.createXai)({apiKey:b});return{ref:a,model:c(a.model),searchTools:{search:c.tools.webSearch()}}}case"mistral":return S(a,(0,l.createMistral)({apiKey:b})(a.model));case"deepseek":return S(a,(0,h.createDeepSeek)({apiKey:b})(a.model));case"groq":return S(a,(0,k.createGroq)({apiKey:b})(a.model));case"cerebras":return S(a,(0,e.createCerebras)({apiKey:b})(a.model));case"togetherai":return S(a,(0,n.createTogetherAI)({apiKey:b})(a.model));case"fireworks":return S(a,(0,i.createFireworks)({apiKey:b})(a.model));case"deepinfra":return S(a,(0,g.createDeepInfra)({apiKey:b})(a.model));case"cohere":return S(a,(0,f.createCohere)({apiKey:b})(a.model));case"vercel-ai-gateway":{let c=(0,r.createGateway)({apiKey:b});return{ref:a,model:c(a.model),searchTools:null}}case"openrouter":{var c;let d=(0,p.createOpenRouter)({apiKey:b});return{ref:a,model:(c=d(a.model),(0,s.wrapLanguageModel)({model:c,middleware:{specificationVersion:"v4",transformParams:async({params:a})=>a.reasoning&&"provider-default"!==a.reasoning?{...a,providerOptions:{...a.providerOptions,openrouter:{...a.providerOptions?.openrouter,reasoning:{effort:a.reasoning}}}}:a}})),searchTools:{search:d.tools.webSearch({})}}}default:(0,x.publicError)(`Not supported provider: ${String(a.provider)}`)}}(a,t)}async function O(a,{quiet:b=!1}={}){let c=async a=>(0,A.defaultModelOf)({defaultTier:"chatgpt"===a.id&&await (0,z.readChatGptPlan)()==="free"?"small":a.defaultTier,suggestModels:await M(a.id,a.suggestModels)}),d=a?A.TEXT_MODEL_PROVIDER_LIST.find(b=>b.id===a):void 0,e=["chatgpt","openai","xai"].map(a=>({...A.TEXT_MODEL_PROVIDERS[a],id:a}));if(d){let a=await c(d);if(a)return{provider:d.id,model:a}}let f=(0,A.parseTextModel)(await (0,v.readConfig)(u.DEFAULT_MODEL_KEY)??void 0);if(f){let{label:a,apiKeyName:b,signIn:c}=A.TEXT_MODEL_PROVIDERS[f.provider];if(await (0,v.readConfig)(b))return f;(0,x.publicError)(await (0,v.missingKeyWords)(b,c?`The default model is ${f.model} on ${a}, which is signed out — sign in again, or pick another in Settings › Models.`:`The default model is ${f.model}, and there is no ${a} key any more — add it in Settings › API keys, or pick another in Settings › Models.`))}for(let a of[...e,...A.TEXT_MODEL_PROVIDER_LIST]){if(!await (0,v.readConfig)(a.apiKeyName))continue;let d=await c(a);if(d)return b||w.logger.info(`no model set, falling back to ${a.id}/${d}`),{provider:a.id,model:d}}(0,x.publicError)("No model key is set — add one in Settings › API keys.")}async function P(a){let b=(0,A.parseMediaModel)(await (0,v.readConfig)(u.MEDIA_MODEL_KEYS[a]));if(!b){let b=await (0,v.readConfig)(A.MEDIA_MODEL_PROVIDERS.chatgpt.apiKeyName),c=b?(0,A.planMediaOf)(a,{plan:await (0,z.readChatGptPlan)()}):null;return c&&b?{ref:c,apiKey:b}:null}if(!(0,A.canMakeKind)(b.provider,a))return null;let c=await (0,v.readConfig)(A.MEDIA_MODEL_PROVIDERS[b.provider].apiKeyName);return c?{ref:b,apiKey:c}:null}a.s(["buildImageModel",0,function(a,b){switch(a.provider){case"openai":return(0,m.createOpenAI)({apiKey:b}).image(a.model);case"chatgpt":return(0,z.chatGptImageModel)(a.model);case"google":return(0,j.createGoogleGenerativeAI)({apiKey:b}).image(a.model);case"xai":return(0,o.createXai)({apiKey:b}).image(a.model);case"vercel-ai-gateway":return(0,r.createGateway)({apiKey:b}).image(a.model);default:(0,x.publicError)(`Not supported image provider: ${String(a.provider)}`)}},"buildSpeechModel",0,function(a,b){switch(a.provider){case"openai":return(0,m.createOpenAI)({apiKey:b}).speech(a.model);case"google":return(0,j.createGoogleGenerativeAI)({apiKey:b}).speech(a.model);case"xai":return(0,o.createXai)({apiKey:b}).speech();case"vercel-ai-gateway":return(0,r.createGateway)({apiKey:b}).speech(a.model);default:(0,x.publicError)(`Not supported speech provider: ${String(a.provider)}`)}},"buildTranscriptionModel",0,function(a,b){switch(a.provider){case"openai":return(0,m.createOpenAI)({apiKey:b}).transcription(a.model);case"google":return(0,j.createGoogleGenerativeAI)({apiKey:b}).transcription(a.model);case"xai":return(0,o.createXai)({apiKey:b}).transcription();case"vercel-ai-gateway":return(0,r.createGateway)({apiKey:b}).transcription(a.model);default:(0,x.publicError)(`Not supported transcription provider: ${String(a.provider)}`)}},"buildVideoModel",0,function(a,b){switch(a.provider){case"google":return(0,j.createGoogleGenerativeAI)({apiKey:b}).video(a.model);case"xai":return(0,o.createXai)({apiKey:b}).video(a.model);case"vercel-ai-gateway":return(0,r.createGateway)({apiKey:b}).video(a.model);default:(0,x.publicError)(`${a.provider} has no video model`)}},"compactBudget",0,I,"getTextModel",0,N,"isContextOverflow",0,D,"isKeyRefused",0,function(a){return E(a).some(a=>401===a.statusCode)},"isPlanSpent",0,function(a){return E(a).some(a=>{if(!q.APICallError.isInstance(a)||402!==a.statusCode)return!1;try{let{code:b}=JSON.parse(a.responseBody??"").error??{};return"string"==typeof b&&z.PLAN_SPENT_CODE.test(b)}catch{return!1}})},"isProviderRefusal",0,function(a){return!D(a)&&E(a).some(a=>{let{statusCode:b}=a;return"number"==typeof b&&b>=400&&b<500&&!R.has(b)})},"modelErrorToString",0,function(a){if(!q.APICallError.isInstance(a))return(0,y.errorToString)(a);let b=a.statusCode?`(${a.statusCode})`:"",c=a.responseBody?.trim(),d=c&&!(a.message&&c.includes(a.message))?(0,y.clip)(c,300):"";return[a.message,b,d].filter(Boolean).join(" ")},"promptCacheOptions",0,function(a,b){switch(a.provider){case"openai":case"chatgpt":return b?{openai:{promptCacheKey:b}}:{};case"anthropic":return{anthropic:{cacheControl:{type:"ephemeral"}}};case"vercel-ai-gateway":return{gateway:{caching:"auto"}};case"openrouter":return"anthropic"===(0,B.vendorOf)(a.model)?{openrouter:{cacheControl:{type:"ephemeral"}}}:{};default:return{}}},"resolveDefaultModel",0,O,"resolveMediaRef",0,P,"runEffort",0,K,"seesToolImages",0,function(a){let b="vercel-ai-gateway"===a.provider?A.VENDOR_PROVIDERS[a.model.split("/")[0]]:"openrouter"===a.provider?A.VENDOR_PROVIDERS[(0,B.vendorOf)(a.model)]:a.provider;return void 0!==b&&["openai","chatgpt","anthropic","google","xai"].includes(b)}]),c()}catch(a){c(a)}},!1),735502,a=>a.a(async(b,c)=>{try{var d=a.i(12208),e=a.i(569572),f=a.i(884780),g=a.i(762008),h=a.i(641301),i=a.i(221214),j=a.i(446957),k=a.i(636616),l=a.i(466497),m=a.i(109955),n=a.i(344853),o=a.i(947950),p=a.i(986743),q=a.i(661210),r=a.i(138100),s=a.i(684321),t=a.i(821415),u=a.i(706210),v=a.i(182248),w=a.i(644468),x=a.i(938934),y=b([i,n,o,p,r,w]);async function z(a,b,c,f){var k,l,m,y,z,D,E,F,G;let H,I,J,K,L,M,N,O,P,Q,R=await (0,t.openWorkspace)(),S=a.trim(),[T,U,V,W,X,Y,Z,$,_]=await Promise.all([(0,r.loadSkills)(R,S),(0,p.listNoteIndex)(),(0,w.listConnectedToolNames)(),(0,o.findPinnedTools)(S),(0,i.listJobBots)(),(0,h.listBotMemory)(S),(0,i.readBotMemoryOn)(),(0,t.readMachineTools)(R),(0,n.listBotWork)(S,c?.thread??null)]),aa=X.filter(a=>a.name!==S),ab=X.find(a=>a.name===S)??await (0,i.findJobBot)(S),ac=[(k=S,l=ab,m=c,I=(H=m?.owner??k)===k?"**You** coordinate this thread: its result goes from you to Thursday.":`**${H}** coordinates this thread and brings its result to Thursday.`,J=m?`
|
|
1
|
+
module.exports=[884780,a=>{"use strict";a.i(902157),a.i(912714);var b=a.i(750227),c=a.i(569572);(0,b.join)(c.APP_DIR,"guide");let d=".guide";a.s(["botGuideLine",0,()=>`How ${c.APP_NAME} itself works for the user — its screens and settings — is written under \`${d}/\` here, \`index.md\` first; read it only when the job is about the app.`,"guideLine",0,()=>`How ${c.APP_NAME} works for the person using it — its screens, its settings, what it connects to, what to do when something stops — is written under \`${d}/\` here, \`index.md\` first. Read it whenever an answer depends on how the app works: what can be asked for, where something is changed, a wish that needs a setting switched on, something that stopped or was refused. Answer from it rather than from what you assume.`])},738131,a=>a.a(async(b,c)=>{try{var d=a.i(527990),e=a.i(868468),f=a.i(569572),g=a.i(875931),h=a.i(938934),i=a.i(978876),j=a.i(375827),k=a.i(127507),l=a.i(467650),m=a.i(230161),n=a.i(138902),o=a.i(345846),p=a.i(617594),q=a.i(622547),r=a.i(128232),s=a.i(382442),t=a.i(451017),u=a.i(762008),v=a.i(547613),w=a.i(446957),x=a.i(138100),y=a.i(821415),z=a.i(706210),A=a.i(176668),B=a.i(293480),C=a.i(987674),D=a.i(182248),E=b([g,i,m,n,o,p,q,r,t,x]);async function F(b){let{listThreadOverview:c}=await a.A(343064),d=await c();if(!d.length)return"No thread has been started yet.";let e=d.map(a=>`"${a.label}" (${a.bot}, ${a.status})`).join(", ");return`There is no thread called "${b}". The latest are: ${e}. Call again with one of those labels.`}async function G(a,b){let c=[];for(let[a,e]of Object.entries(b)){let b=await (0,d.asSchema)(e.inputSchema).jsonSchema,f="string"==typeof e.description?e.description:"";c.push({name:a,tokens:(0,C.estimateTokens)(f)+(0,C.estimateTokens)(JSON.stringify(b))})}c.sort((a,b)=>b.tokens-a.tokens);let e=c.reduce((a,b)=>a+b.tokens,0);A.logger.debug(`${a} tools ${e} tokens over ${c.length} — ${c.map(a=>`${a.name} ${a.tokens}`).join(", ")}`)}async function H(a){let b=await I(a);return f.IS_DEV&&await G(a.target,b),b}async function I(b){if("memory-edit"===b.target)return(0,o.createMemoryTools)("user",null,{countReads:!1});let c=(0,o.createMemoryTools)("call","thursday"===b.target?b.callId??null:null),A=await (0,y.openWorkspace)();if("thursday"===b.target){var C;let k,m,n=b.readSkills?(0,t.createSkillTools)({sandbox:A,skills:await (0,x.loadSkills)(A)}):{},o=!!(b.written&&b.model&&(0,g.seesToolImages)(b.model));return{...c,...n,...(0,v.createWorkspaceTools)(A,{write:!1,timeoutMs:f.CALL_EXEC_TIMEOUT_MS}),...!1===b.webSearch?{}:await (0,q.createCallSearchTool)(A),...Object.fromEntries(Object.entries((C=b.callId,k=async b=>{let{resolveThread:c}=await a.A(343064);return(b.trim()?await c(b.trim()):null)??await F(b)},m=async(b,c,d)=>{let e=await a.A(763543);try{return await e.answerThread(b,c,"thursday",d)}catch(a){if((0,B.isPublicError)(a))return a.message;throw a}},{[u.TOOL_NAMES.thread_start]:(0,d.tool)({description:i.threadStartSpec.description,inputSchema:i.threadStartSpec.parameters,execute:async({bot:b,request:c,label:d})=>{let{findJobBot:e,listJobBots:f}=await a.A(276307),g=await e(b);if(!g||g.disabled){let a=(await f()).map(a=>a.name);return`There is no bot called "${b}". The bots are: ${a.join(", ")}. Nothing was started — call again with one of those.`}let{startThread:h}=await a.A(763543);return{threadId:await h({bot:g.name,request:c,label:d,callId:C,from:"thursday"}),bot:g.name,label:d,note:`${g.name} has "${d}". Its updates reach the conversation on their own. Anything further about this work — a correction, the next step once it finishes — is \`${u.TOOL_NAMES.thread_tell}\` with "${d}"; a question it asks is answered with \`${u.TOOL_NAMES.thread_answer}\`.`}}}),[u.TOOL_NAMES.thread_tell]:(0,d.tool)({description:i.threadTellSpec.description,inputSchema:i.threadTellSpec.parameters,execute:async({thread:a,words:b})=>{let c=await k(a);if("string"==typeof c)return c;if(!b.trim())return"Say what to pass on.";let d=await m(c.id,b.trim());return"string"==typeof d?d:d?.answered?{label:c.label,answered:d.answered,note:`${d.answered.bot} was waiting on a question, and took this as its answer.`}:{label:c.label,bot:d?.to??c.bot,status:"running",note:"running"===c.status?"The bot reads it before its next step.":"The bot picks the thread back up from there."}}}),[u.TOOL_NAMES.thread_answer]:(0,d.tool)({description:i.threadAnswerSpec.description,inputSchema:i.threadAnswerSpec.parameters,execute:async({thread:b,bot:c,answer:d})=>{let e=await k(b);if("string"==typeof e)return e;if(!d.trim())return"Say what the answer is.";let{findThreadRoom:f}=await a.A(343064),g=(await f(e.id))?.questions??[],h=g.find(a=>a.bot.toLowerCase()===c.trim().toLowerCase());if(!h)return g.length?`${c} is not asking anything in "${e.label}". Waiting there: ${g.map(a=>a.bot).join(", ")}. Call again with that bot.`:`No question is waiting in "${e.label}". To say something else to it, use \`${u.TOOL_NAMES.thread_tell}\`.`;let i=await m(e.id,d.trim(),h.bot);return"string"==typeof i?i:{label:e.label,answered:i?.answered??{bot:h.bot,question:h.text},note:`${h.bot} has the answer to its question and goes on from it.`}}}),[u.TOOL_NAMES.thread_status]:(0,d.tool)({description:i.threadStatusSpec.description,inputSchema:i.threadStatusSpec.parameters,execute:async({thread:b})=>{let{listThreadOverview:c,findThreadRoom:d}=await a.A(343064),g={now:(0,h.clockNow)()},i=a=>(0,e.formatDistanceToNowStrict)((0,z.toDate)(a),{addSuffix:!0});if(!(!b.trim()||"all"===b.trim().toLowerCase())){let a=await k(b);if("string"==typeof a)return a;let c=await d(a.id);return{...g,label:a.label,id:a.id,bot:a.bot,participants:c?.participants??[],questions:c?.questions??[],status:a.status,since:i(a.updatedAt),outcome:a.outcome,..."waiting"===a.status&&a.pending?.options.length?{options:a.pending.options}:{}}}let j=await c();return j.length?{...g,threads:j.map(a=>({id:a.id,label:a.label,bot:a.bot,status:a.status,participants:a.room.participants,questions:a.room.questions.map(a=>({...a,text:(0,D.clip)(a.text,f.PROMPT_LINE.threadStatus)})),since:i(a.updatedAt),...a.ask?{asking:a.ask.question,options:a.ask.options}:{},..."running"===a.status?{now:(0,w.threadActivity)(a.lines)}:{},...a.outcome&&"waiting"!==a.status?{outcome:(0,D.clip)(a.outcome,f.PROMPT_LINE.threadStatus)}:{}}))}:"No thread has been started yet."}}),[u.TOOL_NAMES.thread_cancel]:(0,d.tool)({description:i.threadCancelSpec.description,inputSchema:i.threadCancelSpec.parameters,execute:async({thread:b})=>{let c=await k(b);if("string"==typeof c)return c;let{cancelThread:d}=await a.A(763543);return await d(c.id),{label:c.label,status:"cancelled"}}}),[u.TOOL_NAMES.thread_show]:(0,d.tool)({description:i.threadShowSpec.description,inputSchema:i.threadShowSpec.parameters,execute:async({thread:b})=>{let c=await k(b);if("string"==typeof c)return c;let{appEvents:d}=await a.A(133300),{filesOnDisk:e}=await a.A(122690),{leadFirst:f,pathsIn:g,viewKindOf:h}=await a.A(394298),i=(await e(g(c.outcome??""),null)).filter(a=>"none"!==h(a));if(!i.length)return d.emit({type:"showThread",threadId:c.id}),{label:c.label,showing:"the thread"};let j=f(i);d.emit({type:"showFile",paths:j});let{markSeen:l}=await a.A(343064);return await l([c.id]),{label:c.label,showing:j[0]}}}),[u.TOOL_NAMES.thread_seen]:(0,d.tool)({description:i.threadSeenSpec.description,inputSchema:i.threadSeenSpec.parameters,execute:async({thread:b})=>{let c=await k(b);if("string"==typeof c)return c;let{markSeen:d}=await a.A(343064);return await d([c.id]),{label:c.label,seen:!0}}})})).filter(([a])=>!(b.phone&&a===u.TOOL_NAMES.thread_show))),...(0,p.createRoutineTools)(),...o?(0,l.createLookTool)():{},...b.written?{}:(0,j.callTools)()}}let E=await (0,x.loadSkills)(A,b.bot),G={...(0,y.jobShellEnv)(b.session),...(0,y.botShellEnv)(b.bot,(await (await a.A(276307)).findJobBot(b.bot))?.icon)},H=!!(b.model&&(0,g.seesToolImages)(b.model.ref));return{[u.TOOL_NAMES.memory_recall]:(0,o.createMemoryTools)("call",null,{tidies:!1})[u.TOOL_NAMES.memory_recall],...await (0,q.createSearchTool)(b.model,A),...(0,v.createWorkspaceTools)(A,{write:!0,env:G,guide:!0,bot:b.bot}),...await (0,n.createMcpTools)(b.bot,A),...(0,t.createSkillTools)({sandbox:A,skills:E,bot:b.bot}),...await (0,r.createSelfTools)(b.bot),...(0,k.createDeckTools)(A,b.bot,G,H),...H?(0,l.createLookTool)():{},...(0,s.createSignInTools)(A,b.bot,(0,y.jobShellEnv)(b.session)),...await (0,i.createThreadRecallTool)(b.bot,b.thread??null),...await (0,m.createMailTools)()}}[g,i,m,n,o,p,q,r,t,x]=E.then?(await E)():E,a.s(["loadTools",0,H]),c()}catch(a){c(a)}},!1),822164,a=>a.a(async(b,c)=>{try{a.i(569572);var d=a.i(725466),e=a.i(176668),f=a.i(293480);a.i(182248);var g=a.i(689656),h=b([d]);[d]=h.then?(await h)():h;let k={"x-ai":"spacexai","z-ai":"zai",mistralai:"mistral","meta-llama":"meta",qwen:"alibaba","bytedance-seed":"bytedance"},l=a=>{let b=a.slice(0,a.indexOf("/")).replace(/^~/,"");return k[b]??b};function i(a){if(null==a||""===a)return null;let b=Number(a);return!Number.isFinite(b)||b<0?null:Math.round(1e6*b*1e4)/1e4}async function j(){let a=await fetch("https://openrouter.ai/api/v1/models",{headers:{accept:"application/json"}}).catch(a=>{e.logger.warn({cause:a},"openrouter catalog unreachable"),(0,f.publicError)("Could not reach OpenRouter")});return a.ok||(0,f.publicError)(`OpenRouter answered ${a.status}`),((await a.json()).data??[]).filter(a=>!!a.id).map(a=>{let b,c,d,e;return{id:a.id,label:a.name||a.id,owner:l(a.id),type:(a.architecture?.output_modalities??[]).includes("text")?g.CATALOG_TEXT:null,tags:(a.supported_parameters??[]).includes("tools")?[g.CATALOG_TOOL_USE]:[],price:(b=i(a.pricing?.prompt),c=i(a.pricing?.completion),0===b&&0===c?{in:0,out:0,note:null,free:!0}:{in:b,out:c,note:null===b&&null===c?"per model it picks":null,free:!1}),retiring:!!a.expiration_date,contextWindow:"number"==typeof a.context_length&&a.context_length>0?a.context_length:null,efforts:(d=a.reasoning?.supported_efforts??[],(e=g.EFFORTS.filter(a=>d.includes(a))).length?e:null)}})}a.s(["fetchOpenRouterCatalog",0,j,"vendorOf",0,l]),c()}catch(a){c(a)}},!1),875931,a=>a.a(async(b,c)=>{try{var d=a.i(938537),e=a.i(674861),f=a.i(606016),g=a.i(388319),h=a.i(538177),i=a.i(767071),j=a.i(140358),k=a.i(873739),l=a.i(899042),m=a.i(345364),n=a.i(434451),o=a.i(655819),p=a.i(272380),q=a.i(652685),r=a.i(156956),s=a.i(47919),t=a.i(569572),u=a.i(688034),v=a.i(725466),w=a.i(176668),x=a.i(293480),y=a.i(182248),z=a.i(652619),A=a.i(689656),B=a.i(822164),C=b([v,z,B]);[v,z,B]=C.then?(await C)():C;let Q=/context[ _-]?(length|window)|maximum context|prompt is too long|too many (input )?tokens|input token count|exceeds? the (maximum|model'?s?) (context|input|prompt|number of tokens)|maximum prompt length|request (entity )?too large/i;function D(a){return E(a).some(a=>{let{statusCode:b,message:c,error:d}=a;if(void 0!==b&&400!==b&&413!==b)return!1;let e=q.APICallError.isInstance(a)?a.responseBody:null;return[c,d,e].some(a=>"string"==typeof a&&Q.test(a))})}let R=new Set([408,409,429]);function E(a){let b=[],c=[a];for(;c.length&&b.length<12;){let a=c.shift();!("object"!=typeof a||null===a||b.includes(a))&&(b.push(a),s.RetryError.isInstance(a)&&c.push(...a.errors),"cause"in a&&c.push(a.cause))}return b}let S=(a,b)=>({ref:a,model:b,searchTools:null}),T={};function F(a){if(null==a||""===a)return null;let b=Number(a);return Number.isFinite(b)?Math.round(1e6*b*1e4)/1e4:null}async function G(a){let b=T[a];if(b&&Date.now()-b.at<t.CATALOG_MS)return b.models;let c=("openrouter"===a?await (0,B.fetchOpenRouterCatalog)():await H()).sort((a,b)=>a.id.localeCompare(b.id));return T[a]={at:Date.now(),models:c},c}async function H(){let a=await fetch("https://ai-gateway.vercel.sh/v1/models",{headers:{accept:"application/json"}}).catch(a=>{w.logger.warn({cause:a},"gateway catalog unreachable"),(0,x.publicError)("Could not reach the gateway")});return a.ok||(0,x.publicError)(`The gateway answered ${a.status}`),((await a.json()).data??[]).filter(a=>!!a.id).map(a=>{let b,c;return{id:a.id,label:a.name||a.id,owner:a.owned_by||a.id.slice(0,a.id.indexOf("/")),type:a.type??null,tags:a.tags??[],price:function(a){let b=a.pricing??{},c=F(b.input),d=F(b.output);if((a.tags??[]).includes("free")||0===c)return{in:0,out:0,note:null,free:!0};let e=b.transcription_duration_cost_per_second??b.realtime_session_duration_cost_per_second;if(e)return{in:null,out:null,note:`$${e}/s`,free:!1};if(b.speech_input_character_cost)return{in:null,out:null,note:"per character",free:!1};let f=Array.isArray(b.video_duration_pricing)?b.video_duration_pricing[0]:null;if(f?.cost_per_second)return{in:null,out:null,note:`$${f.cost_per_second}/s ${f.resolution??""}`.trimEnd(),free:!1};let g=b.image?`$${b.image}/image`:b.image_dimension_quality_pricing?"per image, by size":null;return null===c&&null===d?{in:null,out:null,note:g,free:!1}:{in:c,out:d,note:b.input_tiers?"tiered":b.varies_by_provider?"varies":g&&"+ per image",free:!1}}(a),retiring:!!a.deprecated_at,contextWindow:"number"==typeof a.context_window&&a.context_window>0?a.context_window:null,efforts:(b=(a.reasoning_options??[]).find(a=>a?.type==="effort"),(c=A.EFFORTS.filter(a=>b?.values?.includes(a))).length?c:null)}})}async function I(a,b){if(b&&b>0)return b;let c=await J(a);return(0,A.compactAtFor)((0,A.contextWindowOf)(a.provider,a.model,c))}async function J(a){return(0,A.isCatalogProvider)(a.provider)?await G(a.provider).catch(()=>[]):[]}async function K(a,b){let c=b??A.effortSchema.safeParse(await (0,v.readConfig)(u.DEFAULT_EFFORT_KEY)).data;if(!c)return;let d=await J(a);return(0,A.effortsOf)(a.provider,a.model,d)?.includes(c)?c:void 0}async function L(a){return await G(a).then(a=>new Set(a.map(a=>a.id))).catch(()=>null)}async function M(a,b){if(!(0,A.isCatalogProvider)(a))return b;let c=await L(a);if(!c)return b;let d=b.filter(a=>c.has(a.id));return d.length>0?d:b}async function N(a){let{label:b,apiKeyName:c,signIn:q}=A.TEXT_MODEL_PROVIDERS[a.provider],t=await (0,v.readConfig)(c);return t||(0,x.publicError)(await (0,v.missingKeyWords)(c,q?`${b} is not signed in — sign in from Settings › API keys.`:`No ${b} key — add one in Settings › API keys.`)),function(a,b){switch(a.provider){case"openai":{let c=(0,m.createOpenAI)({apiKey:b});return{ref:a,model:c(a.model),searchTools:{search:c.tools.webSearch()}}}case"chatgpt":return{ref:a,model:(0,z.chatGptModel)(a.model),searchTools:{search:(0,z.chatGptSearch)()}};case"anthropic":{let c=(0,d.createAnthropic)({apiKey:b});return{ref:a,model:c(a.model),searchTools:{search:c.tools.webSearch_20260209()}}}case"google":{let c=(0,j.createGoogleGenerativeAI)({apiKey:b});return{ref:a,model:c(a.model),searchTools:{search:c.tools.googleSearch({})}}}case"xai":{let c=(0,o.createXai)({apiKey:b});return{ref:a,model:c(a.model),searchTools:{search:c.tools.webSearch()}}}case"mistral":return S(a,(0,l.createMistral)({apiKey:b})(a.model));case"deepseek":return S(a,(0,h.createDeepSeek)({apiKey:b})(a.model));case"groq":return S(a,(0,k.createGroq)({apiKey:b})(a.model));case"cerebras":return S(a,(0,e.createCerebras)({apiKey:b})(a.model));case"togetherai":return S(a,(0,n.createTogetherAI)({apiKey:b})(a.model));case"fireworks":return S(a,(0,i.createFireworks)({apiKey:b})(a.model));case"deepinfra":return S(a,(0,g.createDeepInfra)({apiKey:b})(a.model));case"cohere":return S(a,(0,f.createCohere)({apiKey:b})(a.model));case"vercel-ai-gateway":{let c=(0,r.createGateway)({apiKey:b});return{ref:a,model:c(a.model),searchTools:null}}case"openrouter":{var c;let d=(0,p.createOpenRouter)({apiKey:b});return{ref:a,model:(c=d(a.model),(0,s.wrapLanguageModel)({model:c,middleware:{specificationVersion:"v4",transformParams:async({params:a})=>a.reasoning&&"provider-default"!==a.reasoning?{...a,providerOptions:{...a.providerOptions,openrouter:{...a.providerOptions?.openrouter,reasoning:{effort:a.reasoning}}}}:a}})),searchTools:{search:d.tools.webSearch({})}}}default:(0,x.publicError)(`Not supported provider: ${String(a.provider)}`)}}(a,t)}async function O(a,{quiet:b=!1}={}){let c=async a=>(0,A.defaultModelOf)({defaultTier:"chatgpt"===a.id&&await (0,z.readChatGptPlan)()==="free"?"small":a.defaultTier,suggestModels:await M(a.id,a.suggestModels)}),d=a?A.TEXT_MODEL_PROVIDER_LIST.find(b=>b.id===a):void 0,e=["chatgpt","openai","xai"].map(a=>({...A.TEXT_MODEL_PROVIDERS[a],id:a}));if(d){let a=await c(d);if(a)return{provider:d.id,model:a}}let f=(0,A.parseTextModel)(await (0,v.readConfig)(u.DEFAULT_MODEL_KEY)??void 0);if(f){let{label:a,apiKeyName:b,signIn:c}=A.TEXT_MODEL_PROVIDERS[f.provider];if(await (0,v.readConfig)(b))return f;(0,x.publicError)(await (0,v.missingKeyWords)(b,c?`The default model is ${f.model} on ${a}, which is signed out — sign in again, or pick another in Settings › Models.`:`The default model is ${f.model}, and there is no ${a} key any more — add it in Settings › API keys, or pick another in Settings › Models.`))}for(let a of[...e,...A.TEXT_MODEL_PROVIDER_LIST]){if(!await (0,v.readConfig)(a.apiKeyName))continue;let d=await c(a);if(d)return b||w.logger.info(`no model set, falling back to ${a.id}/${d}`),{provider:a.id,model:d}}(0,x.publicError)("No model key is set — add one in Settings › API keys.")}async function P(a){let b=(0,A.parseMediaModel)(await (0,v.readConfig)(u.MEDIA_MODEL_KEYS[a]));if(!b){let b=await (0,v.readConfig)(A.MEDIA_MODEL_PROVIDERS.chatgpt.apiKeyName),c=b?(0,A.planMediaOf)(a,{plan:await (0,z.readChatGptPlan)()}):null;return c&&b?{ref:c,apiKey:b}:null}if(!(0,A.canMakeKind)(b.provider,a))return null;let c=await (0,v.readConfig)(A.MEDIA_MODEL_PROVIDERS[b.provider].apiKeyName);return c?{ref:b,apiKey:c}:null}a.s(["buildImageModel",0,function(a,b){switch(a.provider){case"openai":return(0,m.createOpenAI)({apiKey:b}).image(a.model);case"chatgpt":return(0,z.chatGptImageModel)(a.model);case"google":return(0,j.createGoogleGenerativeAI)({apiKey:b}).image(a.model);case"xai":return(0,o.createXai)({apiKey:b}).image(a.model);case"vercel-ai-gateway":return(0,r.createGateway)({apiKey:b}).image(a.model);default:(0,x.publicError)(`Not supported image provider: ${String(a.provider)}`)}},"buildSpeechModel",0,function(a,b){switch(a.provider){case"openai":return(0,m.createOpenAI)({apiKey:b}).speech(a.model);case"google":return(0,j.createGoogleGenerativeAI)({apiKey:b}).speech(a.model);case"xai":return(0,o.createXai)({apiKey:b}).speech();case"vercel-ai-gateway":return(0,r.createGateway)({apiKey:b}).speech(a.model);default:(0,x.publicError)(`Not supported speech provider: ${String(a.provider)}`)}},"buildTranscriptionModel",0,function(a,b){switch(a.provider){case"openai":return(0,m.createOpenAI)({apiKey:b}).transcription(a.model);case"google":return(0,j.createGoogleGenerativeAI)({apiKey:b}).transcription(a.model);case"xai":return(0,o.createXai)({apiKey:b}).transcription();case"vercel-ai-gateway":return(0,r.createGateway)({apiKey:b}).transcription(a.model);default:(0,x.publicError)(`Not supported transcription provider: ${String(a.provider)}`)}},"buildVideoModel",0,function(a,b){switch(a.provider){case"google":return(0,j.createGoogleGenerativeAI)({apiKey:b}).video(a.model);case"xai":return(0,o.createXai)({apiKey:b}).video(a.model);case"vercel-ai-gateway":return(0,r.createGateway)({apiKey:b}).video(a.model);default:(0,x.publicError)(`${a.provider} has no video model`)}},"compactBudget",0,I,"getTextModel",0,N,"isContextOverflow",0,D,"isKeyRefused",0,function(a){return E(a).some(a=>401===a.statusCode)},"isPlanSpent",0,function(a){return E(a).some(a=>{if(!q.APICallError.isInstance(a)||402!==a.statusCode)return!1;try{let{code:b}=JSON.parse(a.responseBody??"").error??{};return"string"==typeof b&&z.PLAN_SPENT_CODE.test(b)}catch{return!1}})},"isProviderRefusal",0,function(a){return!D(a)&&E(a).some(a=>{let{statusCode:b}=a;return"number"==typeof b&&b>=400&&b<500&&!R.has(b)})},"modelErrorToString",0,function(a){if(!q.APICallError.isInstance(a))return(0,y.errorToString)(a);let b=a.statusCode?`(${a.statusCode})`:"",c=a.responseBody?.trim(),d=c&&!(a.message&&c.includes(a.message))?(0,y.clip)(c,300):"";return[a.message,b,d].filter(Boolean).join(" ")},"promptCacheOptions",0,function(a,b){switch(a.provider){case"openai":case"chatgpt":return b?{openai:{promptCacheKey:b}}:{};case"anthropic":return{anthropic:{cacheControl:{type:"ephemeral"}}};case"vercel-ai-gateway":return{gateway:{caching:"auto"}};case"openrouter":return"anthropic"===(0,B.vendorOf)(a.model)?{openrouter:{cacheControl:{type:"ephemeral"}}}:{};default:return{}}},"resolveDefaultModel",0,O,"resolveMediaRef",0,P,"runEffort",0,K,"seesToolImages",0,function(a){let b="vercel-ai-gateway"===a.provider?A.VENDOR_PROVIDERS[a.model.split("/")[0]]:"openrouter"===a.provider?A.VENDOR_PROVIDERS[(0,B.vendorOf)(a.model)]:a.provider;return void 0!==b&&["openai","chatgpt","anthropic","google","xai"].includes(b)}]),c()}catch(a){c(a)}},!1),735502,a=>a.a(async(b,c)=>{try{var d=a.i(12208),e=a.i(569572),f=a.i(884780),g=a.i(762008),h=a.i(641301),i=a.i(221214),j=a.i(446957),k=a.i(636616),l=a.i(466497),m=a.i(109955),n=a.i(344853),o=a.i(947950),p=a.i(986743),q=a.i(661210),r=a.i(138100),s=a.i(684321),t=a.i(821415),u=a.i(706210),v=a.i(182248),w=a.i(644468),x=a.i(938934),y=b([i,n,o,p,r,w]);async function z(a,b,c,f){var k,l,m,y,z,D,E,F,G,H,I;let J,K,L,M,N,O,P,Q,R,S,T,U=await (0,t.openWorkspace)(),V=a.trim(),[W,X,Y,Z,$,_,aa,ab,ac,{notes:[ad]}]=await Promise.all([(0,r.loadSkills)(U,V),(0,p.listNoteIndex)(),(0,w.listConnectedToolNames)(),(0,o.findPinnedTools)(V),(0,i.listJobBots)(),(0,h.listBotMemory)(V),(0,i.readBotMemoryOn)(),(0,t.readMachineTools)(U),(0,n.listBotWork)(V,c?.thread??null),(0,p.readNotes)([q.PREFERENCES_NOTE],{touch:!1})]),ae=$.filter(a=>a.name!==V),af=$.find(a=>a.name===V)??await (0,i.findJobBot)(V),ag=[(k=V,l=af,m=c,K=(J=m?.owner??k)===k?"**You** coordinate this thread: its result goes from you to Thursday.":`**${J}** coordinates this thread and brings its result to Thursday.`,L=m?`
|
|
2
2
|
|
|
3
|
-
Current conversation: ${m.caller} → ${k}. Your final text goes back to ${m.caller}.`:"",
|
|
4
|
-
Others know you as: ${(0,j.rosterLine)(l)}`:"",
|
|
3
|
+
Current conversation: ${m.caller} → ${k}. Your final text goes back to ${m.caller}.`:"",M=l?`
|
|
4
|
+
Others know you as: ${(0,j.rosterLine)(l)}`:"",N=A(k,m)?"your tools, the other bots, this machine":`your tools, this machine, and the other bots through ${J}`,`You are ${k}, one of the bots in this thread. ${(0,x.todayLine)()}${M}
|
|
5
5
|
|
|
6
6
|
- **The user** — the one person all of this is for. They talk with Thursday by voice and follow this thread on their screen.
|
|
7
7
|
- **Thursday** — their personal assistant. She talks with them, hands bots the work that takes time, and tells them what comes back.
|
|
8
|
-
- ${
|
|
9
|
-
- **Everyone on it** keeps their own work and conversation; the others see only the messages sent to them.${
|
|
8
|
+
- ${K}
|
|
9
|
+
- **Everyone on it** keeps their own work and conversation; the others see only the messages sent to them.${L}
|
|
10
10
|
|
|
11
|
-
**The job is done, not described.** You are on the user's own computer, with a shell, files and the web, and how you get there is yours: when one way fails, try another; where no tool exists, write one — \`node\` is always here. Before deciding something cannot be done, look at what you have — ${
|
|
11
|
+
**The job is done, not described.** You are on the user's own computer, with a shell, files and the web, and how you get there is yours: when one way fails, try another; where no tool exists, write one — \`node\` is always here. Before deciding something cannot be done, look at what you have — ${N}. Bring back the thing itself — their account, their file, the real result — not a smaller, safer stand-in, and not a note on why not.
|
|
12
12
|
|
|
13
|
-
**Never present a guess as a result.** Thursday says what you return out loud, as fact: say which part is unverified and why.`),(
|
|
13
|
+
**Never present a guess as a result.** Thursday says what you return out loud, as fact: say which part is unverified and why.`),(y=X,z=ad??null,O=[...y].sort((a,b)=>Number((0,q.isAlwaysListed)(b.path))-Number((0,q.isAlwaysListed)(a.path))||(a.path<b.path?-1:+(a.path>b.path))),P=z?.facts.map(a=>`- ${a.text}`)??[],`## Thursday's memory of the user
|
|
14
14
|
|
|
15
|
-
What Thursday keeps from talking with them.
|
|
15
|
+
What Thursday keeps from talking with them. How they want things done is below: follow what bears on the work; how she talks to them is hers. For anything else about them the job needs, open its note with \`${g.TOOL_NAMES.memory_recall}\`; a fact marked \`said\` came from a call. What you learn about them goes in your answer — Thursday decides what to keep.
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
${q.PREFERENCES_NOTE}:
|
|
18
|
+
${P.length?P.join("\n"):"- (nothing yet)"}
|
|
18
19
|
|
|
19
|
-
|
|
20
|
+
Every other note — path — what it is about (facts)
|
|
21
|
+
|
|
22
|
+
${(0,x.noteLines)(O.filter(a=>a.path!==q.PREFERENCES_NOTE))}`),function(a,b){let c=new Set(b.map(a=>`${a.server}/${a.name}`)),d=a.filter(a=>!c.has(`${a.server}/${a.name}`));if(0===d.length)return"";let e=c.size?" The ones you already hold are in your tools instead.":"";return`## Connected tools
|
|
20
23
|
|
|
21
24
|
${(0,x.mcpToolLines)(d)}
|
|
22
25
|
|
|
23
|
-
Names only: \`${g.TOOL_NAMES.tool_search}\` returns what each one takes, \`${g.TOOL_NAMES.tool_call}\` runs one.${e}`}(
|
|
26
|
+
Names only: \`${g.TOOL_NAMES.tool_search}\` returns what each one takes, \`${g.TOOL_NAMES.tool_call}\` runs one.${e}`}(Y,Z),(D=W,0===D.length?"":`## Skills
|
|
24
27
|
|
|
25
28
|
Written-down ways of doing things. Open one with \`${g.TOOL_NAMES.load_skill}\` before a job it covers, unless its instructions are already in your conversation.
|
|
26
29
|
|
|
27
|
-
${(0,x.skillLines)(
|
|
30
|
+
${(0,x.skillLines)(D)}`),C(U.cwd,ab,f),aa?(E=(0,h.botMemoryFolder)(V),Q=(F=_).entries.length?[...F.entries].sort((a,b)=>a.file<b.file?-1:+(a.file>b.file)).map(({file:a,line:b,at:c})=>{let f=b?` — ${(0,v.clip)(b,e.PROMPT_LINE.botMemory)}`:"";return`- ${a}${f} \xb7 ${(0,d.format)((0,u.toDate)(c),"yyyy-MM-dd")}`}).join("\n"):"Empty.",R=F.total>F.entries.length?`
|
|
28
31
|
|
|
29
|
-
The newest ${
|
|
32
|
+
The newest ${F.entries.length} of ${F.total}; \`ls ${E}\` for the rest.`:"",`## Your memory
|
|
30
33
|
|
|
31
|
-
What you learned on your own earlier jobs, in \`${
|
|
34
|
+
What you learned on your own earlier jobs, in \`${E}/\`: one thing learned to a file, its first line saying what it holds, so a job opens only the one it needs; read by no other bot, up to ${e.BOT_MEMORY_LIMITS.files} files of ${e.BOT_MEMORY_LIMITS.chars.toLocaleString("en-US")} characters each. It is how you get better at this work. When a job teaches you something a later one would otherwise find out again — how a site signs in, the way through its screens, a command that turned out right — or the user asks you to remember how to work, keep it with the date it was true, and fix or delete what proved wrong. It holds how to work, not what a job was about: that is in your answer. No passwords, keys or codes.
|
|
32
35
|
|
|
33
|
-
${
|
|
36
|
+
${Q}${R}`):"",(G=`${(0,t.botFolder)(V)}/${e.PATHS.skills.own}`,`## Your own skills
|
|
34
37
|
|
|
35
|
-
A skill in \`${
|
|
38
|
+
A skill in \`${G}/\` is listed to you alone, and read on every step you take, so keep few. Write one only when the job is a kind that comes again — a routine runs it, or your other threads show the same kind of job — and doing it well took a way of working, not a fact your memory can hold. Before writing one, improve the one of yours that covers the job instead. Write it as the skill-creator skill says; the job you just did is its test, so validate it and run no test prompts. Say in one line of your answer which skill you wrote or changed. Any skill outside that folder changes only when the user asks.`),function(a,b){if(!b.open.length&&!b.recent.length)return"";let c=b=>{let c=b.said?` — ${(0,v.clip)(b.said,e.BOT_WORK.said)}`:"",d=b.said?(0,s.pathsIn)(b.said).slice(0,e.BOT_WORK.files):[],f=d.length?` \xb7 ${d.map(a=>`\`${a}\``).join(", ")}`:"";return`- ${b.cut?`[${(0,j.workHandle)(b.id)}] `:""}${(0,x.botWorkHead)(b,a)}${c}${f}`},d=(a,b)=>b.length?`${a}
|
|
36
39
|
${b.map(c).join("\n")}`:"",f=[...b.open,...b.recent].some(a=>a.cut)?` A line with an id in brackets was cut short: \`${g.TOOL_NAMES.thread_recall}\` opens that one whole, for when this job builds on it.`:"";return`## Your other threads
|
|
37
40
|
|
|
38
41
|
Your threads besides this one. You remember none of them here: each line is where it stands, your own last words there, and the files those words name.${f}
|
|
39
42
|
|
|
40
|
-
${[d("Open",b.open),d("Ended",b.recent)].filter(Boolean).join("\n")}`}(
|
|
43
|
+
${[d("Open",b.open),d("Ended",b.recent)].filter(Boolean).join("\n")}`}(V,ac),function(a,b,c){if(0===a.length)return"";let d=A(b,c)?`When part of the job is another bot's strength, bring it in with \`${g.TOOL_NAMES.send_message}\` rather than rebuilding it yourself.`:`When part of the job is another bot's strength, say so in your answer: ${c?.owner??"the coordinator"} brings them in.`;return`## Bots
|
|
41
44
|
|
|
42
45
|
${a.map(a=>`- **${a.name}** — ${(0,j.rosterLine)(a)}`).join("\n")}
|
|
43
46
|
|
|
44
|
-
These lines were written for the user: where one says "you", it means them. ${d}`}(
|
|
47
|
+
These lines were written for the user: where one says "you", it means them. ${d}`}(ae,V,c),(H=V,I=c,S=I?.caller??"whoever asked",T=`Write in the user's language, and name the paths of finished work. In Markdown, reference images by absolute route (\`/api/file/${e.PATHS.artifacts}/…\`).`,A(H,I)?`## Working together
|
|
45
48
|
|
|
46
49
|
Nobody sees your work but you, and you see only what others send you, so whatever crosses between you has to stand on its own. A request says what is wanted, what is already known or done, and where the files are; an answer gives exact values, file paths and what is still unverified. Tell a bot you handed work to when what it depends on changes: it reads that before its next step. End your turn when you have nothing more to do now: answers arrive as new messages and wake you. The bots you bring in answer only to you: when one needs another bot's work or something from the user, it says so in its answer, and you decide.
|
|
47
50
|
|
|
@@ -49,13 +52,13 @@ Before you hand anything out, check what each part needs that only the user know
|
|
|
49
52
|
|
|
50
53
|
While work you handed out is still out, your result waits for it: end your turn and each answer wakes you, with a line on what is still out; write the result once everything you asked for is in. Bring what you received together into one result for Thursday: what was done, where it is, what you decided that the request did not say, and what is still open, at the detail the user asked for. Every file you name in it is drawn under your words in the thread and waits in the screen's corner for the user to open, so name each one you want them to see — the page to read first, then the rest.
|
|
51
54
|
|
|
52
|
-
${
|
|
55
|
+
${T}`:`## Working together
|
|
53
56
|
|
|
54
|
-
Nobody sees your work but you: ${
|
|
57
|
+
Nobody sees your work but you: ${S} sees only your final text, so it has to stand on its own — exact values, file paths and what is still unverified. ${I?.owner??"The coordinator"} brings the other bots in, not you.
|
|
55
58
|
|
|
56
|
-
Your final text is your answer to ${
|
|
59
|
+
Your final text is your answer to ${S}, and all they see of your work: give them everything they need to carry on. When you cannot go on without something — from them, from another bot, or a fact only the user has, such as a date, a name, a place or an amount — end with that question instead of guessing it or leaving a blank; ${S} gets it for you, and their reply brings you back with all you have done still in front of you.
|
|
57
60
|
|
|
58
|
-
${
|
|
61
|
+
${T}`),B(V,b)].filter(Boolean).join("\n\n");return(0,x.logPromptSize)("bot",ag),{text:ag}}[i,n,o,p,r,w]=y.then?(await y)():y;let B=(a,b)=>{let c=b?.trim();return c?(0,k.findBotSeed)(a)?.systemPrompt.trim()===c||(0,l.wasSeedRole)(a,c)?`## Your role
|
|
59
62
|
|
|
60
63
|
What this bot is for, as the app sets it up. Where it and anything above disagree, it wins. The form it names is where to start: a job that asks for another — one page, slides, a sheet, a few lines — gets that one.
|
|
61
64
|
|
|
@@ -80,7 +83,7 @@ Your workspace, where \`${g.TOOL_NAMES.bash}\` runs. Everything you write goes i
|
|
|
80
83
|
|
|
81
84
|
Inside the workspace, set up whatever the job needs yourself; installing anything machine-wide waits for the user's yes. Never the directory above the workspace — it is the app's, not the user's; outside the workspace, only where the user pointed you.
|
|
82
85
|
|
|
83
|
-
${(0,f.botGuideLine)()}`};function A(a,b){return!b||(0,m.isCoordinatorSeat)(a,b.owner,b.caller)}a.s(["buildJoinOpening",0,function(a){if(!a.job)return[{type:"text",text:`You are ${a.bot}. The user writes to you in this thread, which ${a.coordinator} coordinates.`},{type:"text",text:`## The thread's first request
|
|
86
|
+
${(0,f.botGuideLine)()}`};function A(a,b){return!b||(0,m.isCoordinatorSeat)(a,b.owner,b.caller)}a.s(["REFLECT_NOTE",0,'The job is done and your answer has gone back. Look back over it once before you go. If it taught you how to work — the way through a site, a command that turned out right, a wrong turn and what got past it — that a later job would otherwise find out again, keep it as Your memory says: change the file that already covers it rather than add one, and fix or delete what this job proved wrong. If this kind of job comes again and a way of working carried it, improve or write a skill of your own as Your own skills says. Do no more of the job and send nothing: what you write now reaches nobody. With nothing worth keeping, answer "Nothing to keep." and stop.',"buildJoinOpening",0,function(a){if(!a.job)return[{type:"text",text:`You are ${a.bot}. The user writes to you in this thread, which ${a.coordinator} coordinates.`},{type:"text",text:`## The thread's first request
|
|
84
87
|
|
|
85
88
|
${a.request.trim()}`}];let{from:b}=a.job;return[{type:"text",text:`You are ${a.bot}. ${b} brings you into this thread, ${b===a.coordinator?"which they coordinate":`which ${a.coordinator} coordinates`}.`},{type:"text",text:`## ${b} → ${a.bot}: the job
|
|
86
89
|
|
|
@@ -95,7 +98,7 @@ Their own words, on top of the character above: how you talk to them, how much t
|
|
|
95
98
|
${a.trim()}`:"","thursdayIdentity",0,(a=new Date,b)=>`You are Thursday, this user's own: their friend first, and their assistant second — someone they call because they want to talk to you, who can also get whatever they need done in the background: your bots work on this computer, with a shell, a browser and their files, while you two keep talking, and what they make stays here as a page or a file. Named after Friday, the AI in *Iron Man*: a name, not a day of the week. ${((a=new Date)=>`**Now**: ${l(a)}`)(a)}${o(b)?`
|
|
96
99
|
${o(b)}`:""}
|
|
97
100
|
|
|
98
|
-
What they tell you is kept, so you know them better over time.`,"tidying",0,a=>({crowded:a.reduce((a,b)=>a+b.factCount,0)>d.MEMORY_LIMITS.facts,heavy:a.filter(a=>a.factCount>d.MEMORY_LIMITS.factsPerNote)}),"todayLine",0,(a=new Date)=>`**Today**: ${m(a)}, ${Intl.DateTimeFormat().resolvedOptions().timeZone} — \`date\` has the exact time`])},978876,a=>a.a(async(b,c)=>{try{var d=a.i(527990),e=a.i(794219),f=a.i(569572),g=a.i(938934),h=a.i(762008),i=a.i(446957),j=a.i(109955),k=a.i(344853),l=a.i(182248),m=b([k]);[k]=m.then?(await m)():m;let o=e.string().describe("Its label or id."),p={description:"Start a new thread: hand work to a bot. Returns a receipt at once; the work runs in the background and its updates reach the conversation on their own.",parameters:e.object({bot:e.string().describe("A name from the bot list."),request:e.string().describe("The whole of the work. The bot cannot hear the call, so everything it needs goes here — names, paths, what the user actually asked for — in their own language and their own words: it is the only language the bot has, and whatever it writes comes back to them. **Their request, never your reading of it**: a condition, a caution or a smaller goal they did not say is how work comes back as the wrong thing. When their words leave a real choice open, ask them on the call and put the answer here."),label:e.string().describe("Two or three words naming the thread, in the user's language. Used on screen and said out loud.")})},q={description:"Say something to a thread that exists. Its bot reads it with everything the thread already holds.",parameters:e.object({thread:o,words:e.string().describe("What to tell its bot, in the user's language and words.")})},r={description:`Answer a question a bot asked the user. Only for a question that is waiting; anything else said to a thread is \`${h.TOOL_NAMES.thread_tell}\`.`,parameters:e.object({thread:o,bot:e.string().describe("The bot that asked."),answer:e.string().describe("The user's answer, in their words.")})},s={description:`Read threads as they are now. "all" lists up to ${f.THREAD_STATUS_LIMIT}, running and waiting work before recent endings; a label or an id reads that one whole, with its result and any question waiting.`,parameters:e.object({thread:e.string().describe('"all", or one thread by its label or its id.')})},t={description:"Stop a thread now: its bot stops where it is. The thread is kept, and saying more to it later carries it on.",parameters:e.object({thread:o})},u={description:"Put a thread in front of the user on their screen: the file it made, or the thread itself when it made none. Showing it also counts as them having seen its result.",parameters:e.object({thread:o})},v={description:"Mark a thread's result as seen by the user. It leaves the work waiting on them.",parameters:e.object({thread:o})},w={description:"Hand part of the job to another bot, or put a question to the user through Thursday; the receipt comes back at once. A bot answers with the last words of its turn, which reach you later as a new message and start your next turn. Your own result reaches the user as the last words of your turn, so Thursday takes only
|
|
101
|
+
What they tell you is kept, so you know them better over time.`,"tidying",0,a=>({crowded:a.reduce((a,b)=>a+b.factCount,0)>d.MEMORY_LIMITS.facts,heavy:a.filter(a=>a.factCount>d.MEMORY_LIMITS.factsPerNote)}),"todayLine",0,(a=new Date)=>`**Today**: ${m(a)}, ${Intl.DateTimeFormat().resolvedOptions().timeZone} — \`date\` has the exact time`])},978876,a=>a.a(async(b,c)=>{try{var d=a.i(527990),e=a.i(794219),f=a.i(569572),g=a.i(938934),h=a.i(762008),i=a.i(446957),j=a.i(109955),k=a.i(344853),l=a.i(182248),m=b([k]);[k]=m.then?(await m)():m;let o=e.string().describe("Its label or id."),p={description:"Start a new thread: hand work to a bot. Returns a receipt at once; the work runs in the background and its updates reach the conversation on their own.",parameters:e.object({bot:e.string().describe("A name from the bot list."),request:e.string().describe("The whole of the work. The bot cannot hear the call, so everything it needs goes here — names, paths, what the user actually asked for — in their own language and their own words: it is the only language the bot has, and whatever it writes comes back to them. **Their request, never your reading of it**: a condition, a caution or a smaller goal they did not say is how work comes back as the wrong thing. When their words leave a real choice open, ask them on the call and put the answer here."),label:e.string().describe("Two or three words naming the thread, in the user's language. Used on screen and said out loud.")})},q={description:"Say something to a thread that exists. Its bot reads it with everything the thread already holds.",parameters:e.object({thread:o,words:e.string().describe("What to tell its bot, in the user's language and words.")})},r={description:`Answer a question a bot asked the user. Only for a question that is waiting; anything else said to a thread is \`${h.TOOL_NAMES.thread_tell}\`.`,parameters:e.object({thread:o,bot:e.string().describe("The bot that asked."),answer:e.string().describe("The user's answer, in their words.")})},s={description:`Read threads as they are now. "all" lists up to ${f.THREAD_STATUS_LIMIT}, running and waiting work before recent endings; a label or an id reads that one whole, with its result and any question waiting.`,parameters:e.object({thread:e.string().describe('"all", or one thread by its label or its id.')})},t={description:"Stop a thread now: its bot stops where it is. The thread is kept, and saying more to it later carries it on.",parameters:e.object({thread:o})},u={description:"Put a thread in front of the user on their screen: the file it made, or the thread itself when it made none. Showing it also counts as them having seen its result.",parameters:e.object({thread:o})},v={description:"Mark a thread's result as seen by the user. It leaves the work waiting on them.",parameters:e.object({thread:o})},w={description:"Hand part of the job to another bot, or put a question to the user through Thursday; the receipt comes back at once. A bot answers with the last words of its turn, which reach you later as a new message and start your next turn. Your own result reaches the user as the last words of your turn, so Thursday takes only a question that needs their answer.",parameters:j.RoomMessageSchema.extend({kind:j.RoomMessageSchema.shape.kind.describe("question to Thursday when only the user can answer: it ends your turn, and you continue when the answer arrives. message to a bot."),options:j.RoomMessageSchema.shape.options.describe("With a question, offer concise answer choices when useful. Omit for an open-ended question; the user can always type their own answer."),to:e.string().trim().min(1).describe("A bot from the roster, or Thursday for a question to the user."),text:e.string().trim().min(1).describe("Write the message and include the context the recipient needs. **What the user asked, never your reading of it**: a condition, a caution or a smaller goal they did not say is how work comes back as the wrong thing. A question to Thursday is put to the user word for word, on screen, on their phone and read aloud: write it to them."),why:e.string().trim().min(1).describe("What you need from them, in a few words, written for the user to read: they see who was brought in and what for."),after:j.RoomMessageSchema.shape.after.describe("Bots already working for you whose answers this work needs. It goes out with their answers attached once they are all back and you end the turn in which you read them, so hand it out now rather than holding it yourself. If an answer shows the work cannot go yet, send that bot more or ask the user in that turn, and it keeps waiting.")})},x={description:"Open one of your other threads whole: what you were asked there and your last words in full.",parameters:e.object({id:e.string().describe("The id in brackets on its line under Your other threads.")})};async function n(a,b){let c=await (0,k.listBotWork)(a,b),e=[...c.open,...c.recent];if(!e.some(a=>a.cut))return{};let j=new Set;return{[h.TOOL_NAMES.thread_recall]:(0,d.tool)({description:x.description,inputSchema:x.parameters,execute:async({id:b})=>{let c=b.trim().replace(/^\[|\]$/g,"").toLowerCase(),d=e.find(a=>c.length>=4&&(a.id.startsWith(c)||a.label.toLowerCase()===c));if(!d)return`No thread "${b}" on your list. The ids there: ${e.filter(a=>a.cut).map(a=>(0,i.workHandle)(a.id)).join(", ")}.`;if(!d.cut)return"Its line already shows all of it.";if(j.has(d.id))return"Already opened above, this turn.";if(j.size>=f.BOT_WORK.reads)return`${f.BOT_WORK.reads} threads are open already this turn. Carry on with what you have.`;j.add(d.id);let h=await (0,k.readBotAsk)(a,d),m=d.said??"";return[(0,g.botWorkHead)(d,a),h?`You were asked: ${(0,l.clip)(h,f.BOT_WORK.asked)}`:"",`Your last words there:
|
|
99
102
|
${m.length>f.BOT_WORK.readChars?`${m.slice(0,f.BOT_WORK.readChars)}
|
|
100
103
|
[Cut here; the files it names hold the rest.]`:m}`].filter(Boolean).join("\n\n")}})}}a.s(["createThreadRecallTool",0,n,"sendMessageSpec",0,w,"threadAnswerSpec",0,r,"threadCancelSpec",0,t,"threadSeenSpec",0,v,"threadShowSpec",0,u,"threadStartSpec",0,p,"threadStatusSpec",0,s,"threadTellSpec",0,q]),c()}catch(a){c(a)}},!1),375827,a=>{"use strict";var b=a.i(527990),c=a.i(794219),d=a.i(762008);let e=Object.keys({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:["####","...#",".##.","#...","####"],0:[".##.","#.##","#..#","##.#",".##."],1:[".#.","##.",".#.",".#.","###"],2:["###.","...#",".##.","#...","####"],3:["###.","...#",".##.","...#","###."],4:["#..#","#..#","####","...#","...#"],5:["####","#...","###.","...#","###."],6:[".##.","#...","###.","#..#",".##."],7:["####","...#","..#.",".#..",".#.."],8:[".##.","#..#",".##.","#..#",".##."],9:[".##.","#..#",".###","...#",".##."],"!":["#","#","#",".","#"],"?":["###.","...#",".##.","....",".#.."],".":[".",".",".",".","#"],",":["..","..","..",".#","#."],"'":["#","#",".",".","."],"-":["...","...","###","...","..."],"+":["...",".#.","###",".#.","..."],":":[".","#",".","#","."],"(":[".#","#.","#.","#.",".#"],")":["#.",".#",".#",".#","#."],"<":["..#",".#.","#..",".#.","..#"],">":["#..",".#.","..#",".#.","#.."],"^":[".#.","#.#","...","...","..."],"~":["....",".#.#","#.#.","....","...."],"♥":[".#.#.","#####","#####",".###.","..#.."]," ":["..","..","..","..",".."]}).filter(a=>!/^[A-Z0-9 ]$/.test(a)),f={description:`End the call.
|
|
101
104
|
|
|
@@ -123,7 +126,7 @@ Every command is a new shell: \`cd\`, exported variables and an activated venv a
|
|
|
123
126
|
Nothing is watching it. A command that stops to ask never gets an answer and is killed after ${e.EXEC_TIMEOUT_MS/1e3}s, so pass the flag that skips the question (\`-y\`, \`--yes\`, \`--no-input\`), and send anything genuinely long to the background with its output redirected to a file.
|
|
124
127
|
|
|
125
128
|
Keys are not in the environment: every variable named like a key, a token or a secret is removed before the shell starts. An empty one is not an unset one — say which it was, and ask for what a command needs.`;a.s(["createWorkspaceTools",0,(a,e)=>{let k=!0===e.guide,l=async a=>{let b=e.bot;if(!b)return{result:await a(),memory:null};let c=await (0,g.holdBotMemory)(b);return{result:await a(),memory:await (0,g.keepBotMemory)(b,c)}},m=(0,c.tool)({description:i.BASH?"Run a bash command.":"Run a command in sh: this machine has no bash, so bash-only syntax fails.",inputSchema:d.object({command:d.string(),description:d.string().nullish().describe("One short line for the user: what this command does and why. Shown on their screen while it runs — not a restatement of the command.")}),execute:async({command:b},{abortSignal:c})=>{let{result:d,memory:f}=await l(()=>a.exec(b,{signal:c,env:e.env,timeoutMs:e.timeoutMs})),g=f?{...d,memory:f}:d;return k?(k=!1,{...g,guide:j}):g}});if(!e.write)return{[f.TOOL_NAMES.bash]:m};let n=(0,c.tool)({description:"Write a whole file — what was there is gone. Parent directories are created.",inputSchema:d.object({path:d.string().describe("Relative to the working directory — under one of its folders — or absolute"),content:d.string(),description:d.string().nullish().describe("One short line for the user: what this file is. Shown on their screen next to the path.")}),execute:async({path:c,content:d})=>{let f,g=a.resolve(c),i=(0,h.writeRefusal)(g,e.bot);if(i)return i;let{memory:j}=await l(()=>a.writeFile(c,d));return j??`Wrote ${(f=(0,b.relative)(a.cwd,g))&&!f.startsWith("..")?f:g} (${d.split("\n").length} lines)`}});return{[f.TOOL_NAMES.bash]:m,[f.TOOL_NAMES.write_file]:n}}])},346580,a=>{"use strict";a.s(["asWords",0,function(a,b,c=a=>a){let d=[];for(let e of a){if("tool"===e.role)continue;if("system"===e.role){d.push(e);continue}if("user"===e.role){d.push("string"==typeof e.content?{role:"user",content:c(e.content)}:{...e,content:e.content.map(a=>"text"===a.type?{...a,text:c(a.text)}:a)});continue}let a="string"==typeof e.content?[{type:"text",text:e.content}]:e.content,f=a.flatMap(a=>"text"===a.type?[a.text]:[]).join("\n").trim()||a.flatMap(a=>"tool-call"===a.type?[b(a.toolName,a.input)]:[]).join("\n");if(!f)continue;let g=d.at(-1);g?.role==="assistant"&&"string"==typeof g.content?d[d.length-1]={role:"assistant",content:`${g.content}
|
|
126
|
-
${c(f)}`}:d.push({role:"assistant",content:c(f)})}return d}])},641301,a=>{"use strict";var b=a.i(912714),c=a.i(750227),d=a.i(569572),e=a.i(821415);let f=a=>`${(0,e.botFolder)(a)}/memory`;async function g(a,b=d.BOT_MEMORY_LIMITS.files){let i=f(a),j=(0,c.join)(e.WORKSPACE,i),k=(await h(j)).sort((a,b)=>b.info.mtimeMs-a.info.mtimeMs),m=await Promise.all(k.slice(0,b).map(async({name:a,info:b})=>({file:a,path:`${i}/${a}`,line:await l((0,c.join)(j,a)),at:new Date(b.mtimeMs),bytes:b.size})));return{folder:i,entries:m,total:k.length}}async function h(a){let d=await (0,b.readdir)(a).catch(()=>[]);return(await Promise.all(d.filter(a=>!a.startsWith(".")).map(async d=>{let e=await (0,b.stat)((0,c.join)(a,d)).catch(()=>null);return e?.isFile()?{name:d,info:e}:null}))).filter(a=>null!==a)}async function i(a){let g=(0,c.join)(e.WORKSPACE,f(a)),i=new Map;return await Promise.all((await h(g)).map(async({name:a,info:e})=>{let f=e.size>4*d.BOT_MEMORY_LIMITS.chars?null:await (0,b.readFile)((0,c.join)(g,a),"utf8").catch(()=>null);i.set(a,{text:null!==f&&k(f)<=d.BOT_MEMORY_LIMITS.chars?f:null,size:e.size,mtimeMs:e.mtimeMs,atime:e.atime,mtime:e.mtime})})),i}async function j(a,g){let i=f(a),j=(0,c.join)(e.WORKSPACE,i),{files:l,chars:m}=d.BOT_MEMORY_LIMITS,n=[],o=[],p=0;for(let{name:a,info:d}of(await h(j))){p+=1;let e=g.get(a);if(e&&e.size===d.size&&e.mtimeMs===d.mtimeMs)continue;let f=(0,c.join)(j,a),h=k(await (0,b.readFile)(f,"utf8").catch(()=>""));if(h<=m){e||o.push(a);continue}let l=`${h.toLocaleString("en-US")} characters, past the ${m.toLocaleString("en-US")} a memory file holds`;e?null!==e.text?(await (0,b.writeFile)(f,e.text),await (0,b.utimes)(f,e.atime,e.mtime),n.push(`Not kept: \`${i}/${a}\` came to ${l}, so it is back as it was. Write it again shorter.`)):n.push(`\`${i}/${a}\` is ${l}. Shorten it.`):(await (0,b.rm)(f,{force:!0}),p-=1,n.push(`Not kept: \`${i}/${a}\` came to ${l}, so it was removed. Write it again shorter.`))}if(p>l&&o.length){await Promise.all(o.map(a=>(0,b.rm)((0,c.join)(j,a),{force:!0})));let a=o.map(a=>`\`${i}/${a}\``).join(", ");n.push(`Not kept: your memory holds ${l} files at most and this made ${p}, so ${a} ${1===o.length?"was":"were"} removed. Delete or merge files no longer worth keeping, then write it again.`)}return n.length?n.join("\n"):null}let k=a=>[...a.trim()].length;async function l(a){let c=await (0,b.open)(a,"r").catch(()=>null);if(!c)return"";try{let a=Buffer.alloc(1024),{bytesRead:b}=await c.read(a,0,1024,0),d=a.toString("utf8",0,b).split("\n").map(a=>a.trim()).filter(Boolean);if("---"===d[0]){let a=d.find(a=>a.startsWith("description:"));if(a)return a.slice(12).trim().replace(/^["']|["']$/g,"");let b=d.indexOf("---",1);return b>0?(d[b+1]??"").replace(/^#+\s*/,""):""}return(d[0]??"").replace(/^#+\s*/,"")}finally{await c.close()}}a.s(["botMemoryFolder",0,f,"holdBotMemory",0,i,"keepBotMemory",0,j,"listBotMemory",0,g])},654034,a=>a.a(async(b,c)=>{try{var d=a.i(666680),e=a.i(47919),f=a.i(527990),g=a.i(569572),h=a.i(738131),i=a.i(875931),j=a.i(735502),k=a.i(978876),l=a.i(762008),m=a.i(346580),n=a.i(446957),o=a.i(487591),p=a.i(821415),q=a.i(176668),r=a.i(987674),s=a.i(221214),t=a.i(109955),u=a.i(344853),v=b([h,i,j,k,s,u]);[h,i,j,k,s,u]=v.then?(await v)():v;let B=g.BOT_RUN.steps;async function w(a,b){var c;let d,m,v,w,z,E,F,G,H,I=b.parent??null,J=await (0,s.findJobBot)(a.bot.trim()),K=J?.name??a.bot.trim(),L=a=>b.emit({...a,bot:K,parent:I});if(!J)return void await L({type:"error",message:`No bot named "${a.bot}". Use a name from the list.`,retry:!1});let M=a.messages,N=await A(J),O=b.threadId?await (0,u.findThread)(b.threadId):null,[P,{own:Q,artifacts:R}]=await Promise.all([b.threadId?(0,p.openJobScratch)(b.threadId,O?.label??"job"):null,(0,p.openBotFolders)(K)]),S=b.session??(b.threadId?(0,p.botBrowserSession)(b.threadId,K):null),[T,U]=await Promise.all([(0,j.loadBotPrompt)(K,J.systemPrompt,{thread:b.threadId??null,owner:b.owner,caller:b.caller},{scratch:P,own:Q,artifacts:R}),(0,h.loadTools)({target:"bot",bot:K,thread:b.threadId??null,session:S,model:N})]),V=Math.min(await (0,i.compactBudget)(N.ref,J.compactAt),b.contextBudget||1/0),W=await (0,i.runEffort)(N.ref,J.effort),X=(0,i.promptCacheOptions)(N.ref,b.threadId?D(b.threadId,K):null),Y=!1,Z=(0,t.isCoordinatorSeat)(K,b.owner,b.caller)?{...U,[l.TOOL_NAMES.send_message]:(0,f.tool)({description:k.sendMessageSpec.description,inputSchema:k.sendMessageSpec.parameters,execute:async(a,c)=>{let d=await b.send({...a,id:c.toolCallId});return"question"===a.kind&&(Y=!0),d}})}:U,$=new Set,_=(c=g.BOT_RUN.silenceMs,m=new AbortController,v=0,w=!1,z=()=>{clearTimeout(d),d=void 0,w||v>0||(d=setTimeout(()=>{m.abort(new DOMException(`The model sent nothing for ${Math.round(c/6e4)} minutes.`,"TimeoutError"))},c))},{signal:m.signal,touch:z,hold:()=>{v+=1,z()},release:()=>{v=Math.max(0,v-1),z()},end:()=>{w=!0,z()}});for(let[a,c]of Object.entries(Z)){let d=c.execute;d&&(c.execute=(c,e)=>{let f=(async()=>{b.signal?.throwIfAborted(),await L({type:"tool",id:e.toolCallId,name:a,input:c}),_.hold();try{b.signal?.throwIfAborted();let f=await d(c,e);if(f&&"object"==typeof f&&Symbol.asyncIterator in f){let a;for await(let b of f)a=b;f=a}return await L({type:"tool-result",id:e.toolCallId,name:a,output:f}),f}catch(b){throw await L({type:"tool-result",id:e.toolCallId,name:a,output:(0,i.modelErrorToString)(b),error:!0}),b}finally{_.release()}})();return $.add(f),f.finally(()=>$.delete(f)).catch(()=>{}),f})}let aa=Promise.resolve(),ab=()=>{},ac=0,ad=new e.ToolLoopAgent({model:N.model,instructions:T.text,tools:Z,reasoning:W,providerOptions:X,stopWhen:[(0,e.stepCountIs)(B),()=>Y],prepareStep:async({stepNumber:a,steps:c,messages:d})=>{await aa,b.signal?.throwIfAborted();let e={},f=(c.at(-1)?.usage.inputTokens??0)||d.reduce((a,b)=>a+(0,r.estimateTokens)("string"==typeof b.content?b.content:JSON.stringify(b.content))+4,0);ac=f;let g=d,h=b.compactNow?.()??!1;if((f>V||h)&&d.length>2){_.hold();let a=await y(N.model,Z,d,{signal:b.signal,budget:V,instructions:T.text,providerOptions:X}).finally(_.release);q.logger.debug(`compacted ${d.length} messages at ${f} tokens (budget ${V})`);let c=`${a.text}${await x(O?.id??null,d,P)}`;await L({type:"compact",text:c,usage:a.usage,messages:d.length,tokens:f}),g=[d[0],{role:"user",content:c}]}let i=a>0?await b.notes?.()??[]:[];return(i.length&&(g=[...g,...i.map(a=>({role:"user",content:a}))]),g===d)?e:{...e,messages:g}}}),ae=(E=[],F=[],G=!1,{push(a){let b=F.shift();b?b(a):E.push(a)},take(){let a=E.shift();return a?Promise.resolve(a):G?Promise.resolve(null):new Promise(a=>F.push(a))},end(){for(let a of(G=!0,F.splice(0)))a(null)}}),af=b.signal?AbortSignal.any([b.signal,_.signal]):_.signal;_.touch();let ag=new AbortController,ah=AbortSignal.any([af,ag.signal]);try{H=await ad.stream({messages:M,abortSignal:ah,onStepEnd:a=>{aa=new Promise(a=>{ab=a}),ae.push({messages:function(a){if(!a.toolResults.length)return a.response.messages;let b=new Map(a.toolResults.map(a=>[a.toolCallId,a.output]));return a.response.messages.map(a=>"tool"!==a.role?a:{...a,content:a.content.map(a=>{if("tool-result"!==a.type||!b.has(a.toolCallId))return a;let c=b.get(a.toolCallId);return{...a,output:"string"==typeof c?{type:"text",value:c}:{type:"json",value:c}}})})}(a),usage:C(a.usage)})}})}catch(a){throw _.end(),ag.abort(),await Promise.allSettled([...$]),a}let ai="",aj="",ak=null,al=a=>{q.logger.error(`${K}: the model run broke`,a);let b=(0,i.modelErrorToString)(a),c=!(0,i.isProviderRefusal)(a),d=(0,i.isKeyRefused)(a)?{refused:N.ref.provider}:{};if(!(0,i.isContextOverflow)(a))return{type:"error",message:b,retry:c,...d};let e=Math.floor(Math.min(V,ac||V)*g.BOT_RUN.overflowShrink);return{type:"error",message:b,budget:Math.max(n.COMPACT_AT_MIN,e),retry:c,...d}};af.addEventListener("abort",()=>{ae.end(),ab()},{once:!0});try{for await(let a of H.stream)switch(_.touch(),a.type){case"start-step":aj="",ai="";break;case"text-delta":ai+=a.text;break;case"text-end":{let a=ai.trim();if(ai="",!a)break;aj=[aj,a].filter(Boolean).join("\n\n"),await L({type:"text",text:a});break}case"tool-call":await L({type:"tool",id:a.toolCallId,name:a.toolName,input:a.input,providerExecuted:a.providerExecuted,providerOptions:a.providerMetadata});break;case"tool-result":await L({type:"tool-result",id:a.toolCallId,name:a.toolName,output:a.output});break;case"tool-error":await L({type:"tool-result",id:a.toolCallId,name:a.toolName,output:(0,i.modelErrorToString)(a.error),error:!0});break;case"finish-step":{ak=a.finishReason;let b=await ae.take();b&&await L({type:"step",...b,budget:V}),ab();break}case"abort":if(b.signal?.aborted)return;await L(al(a.reason??"The model stopped sending."));return;case"error":await L(al(a.error));return}}finally{ag.abort(),ae.end(),_.end(),ab(),await Promise.allSettled([...$]),S&&(0,o.renewSignIns)(S).catch(a=>q.logger.warn(`${K}: kept sign-ins were not renewed`,a))}try{await H.finalStep}catch(a){if(b.signal?.aborted)return;await L(al(a));return}"content-filter"===ak?await L({type:"error",message:"The provider's content filter stopped the response.",retry:!1}):await L({type:"turn-end",text:aj,stopped:!Y&&("length"===ak||"error"===ak||"tool-calls"===ak)})}async function x(a,b,c){try{let d=a?await (0,u.listWrittenPaths)(a):(0,u.writtenPathsIn)(b.map(a=>a.content)),e=await (0,p.filesOnDisk)(d,c);if(!e.length)return"";let f=e.slice(-g.BOT_RUN.compactFiles),h=e.length-f.length,i=f.map(a=>`- ${a}`);return h&&i.unshift(`- …and ${h} older ones`),`
|
|
129
|
+
${c(f)}`}:d.push({role:"assistant",content:c(f)})}return d}])},641301,a=>{"use strict";var b=a.i(912714),c=a.i(750227),d=a.i(569572),e=a.i(821415);let f=a=>`${(0,e.botFolder)(a)}/memory`;async function g(a,b=d.BOT_MEMORY_LIMITS.files){let i=f(a),j=(0,c.join)(e.WORKSPACE,i),k=(await h(j)).sort((a,b)=>b.info.mtimeMs-a.info.mtimeMs),m=await Promise.all(k.slice(0,b).map(async({name:a,info:b})=>({file:a,path:`${i}/${a}`,line:await l((0,c.join)(j,a)),at:new Date(b.mtimeMs),bytes:b.size})));return{folder:i,entries:m,total:k.length}}async function h(a){let d=await (0,b.readdir)(a).catch(()=>[]);return(await Promise.all(d.filter(a=>!a.startsWith(".")).map(async d=>{let e=await (0,b.stat)((0,c.join)(a,d)).catch(()=>null);return e?.isFile()?{name:d,info:e}:null}))).filter(a=>null!==a)}async function i(a){let g=(0,c.join)(e.WORKSPACE,f(a)),i=new Map;return await Promise.all((await h(g)).map(async({name:a,info:e})=>{let f=e.size>4*d.BOT_MEMORY_LIMITS.chars?null:await (0,b.readFile)((0,c.join)(g,a),"utf8").catch(()=>null);i.set(a,{text:null!==f&&k(f)<=d.BOT_MEMORY_LIMITS.chars?f:null,size:e.size,mtimeMs:e.mtimeMs,atime:e.atime,mtime:e.mtime})})),i}async function j(a,g){let i=f(a),j=(0,c.join)(e.WORKSPACE,i),{files:l,chars:m}=d.BOT_MEMORY_LIMITS,n=[],o=[],p=0;for(let{name:a,info:d}of(await h(j))){p+=1;let e=g.get(a);if(e&&e.size===d.size&&e.mtimeMs===d.mtimeMs)continue;let f=(0,c.join)(j,a),h=k(await (0,b.readFile)(f,"utf8").catch(()=>""));if(h<=m){e||o.push(a);continue}let l=`${h.toLocaleString("en-US")} characters, past the ${m.toLocaleString("en-US")} a memory file holds`;e?null!==e.text?(await (0,b.writeFile)(f,e.text),await (0,b.utimes)(f,e.atime,e.mtime),n.push(`Not kept: \`${i}/${a}\` came to ${l}, so it is back as it was. Write it again shorter.`)):n.push(`\`${i}/${a}\` is ${l}. Shorten it.`):(await (0,b.rm)(f,{force:!0}),p-=1,n.push(`Not kept: \`${i}/${a}\` came to ${l}, so it was removed. Write it again shorter.`))}if(p>l&&o.length){await Promise.all(o.map(a=>(0,b.rm)((0,c.join)(j,a),{force:!0})));let a=o.map(a=>`\`${i}/${a}\``).join(", ");n.push(`Not kept: your memory holds ${l} files at most and this made ${p}, so ${a} ${1===o.length?"was":"were"} removed. Delete or merge files no longer worth keeping, then write it again.`)}return n.length?n.join("\n"):null}let k=a=>[...a.trim()].length;async function l(a){let c=await (0,b.open)(a,"r").catch(()=>null);if(!c)return"";try{let a=Buffer.alloc(1024),{bytesRead:b}=await c.read(a,0,1024,0),d=a.toString("utf8",0,b).split("\n").map(a=>a.trim()).filter(Boolean);if("---"===d[0]){let a=d.find(a=>a.startsWith("description:"));if(a)return a.slice(12).trim().replace(/^["']|["']$/g,"");let b=d.indexOf("---",1);return b>0?(d[b+1]??"").replace(/^#+\s*/,""):""}return(d[0]??"").replace(/^#+\s*/,"")}finally{await c.close()}}a.s(["botMemoryFolder",0,f,"holdBotMemory",0,i,"keepBotMemory",0,j,"listBotMemory",0,g])},654034,a=>a.a(async(b,c)=>{try{var d=a.i(666680),e=a.i(47919),f=a.i(527990),g=a.i(569572),h=a.i(738131),i=a.i(875931),j=a.i(735502),k=a.i(978876),l=a.i(762008),m=a.i(346580),n=a.i(446957),o=a.i(487591),p=a.i(821415),q=a.i(176668),r=a.i(987674),s=a.i(221214),t=a.i(109955),u=a.i(344853),v=b([h,i,j,k,s,u]);[h,i,j,k,s,u]=v.then?(await v)():v;let B=g.BOT_RUN.steps;async function w(a,b){var c;let d,m,v,w,z,E,F,G,H,I=b.parent??null,J=await (0,s.findJobBot)(a.bot.trim()),K=J?.name??a.bot.trim(),L=a=>b.emit({...a,bot:K,parent:I});if(!J)return void await L({type:"error",message:`No bot named "${a.bot}". Use a name from the list.`,retry:!1});let M=a.messages,N=await A(J),O=b.threadId?await (0,u.findThread)(b.threadId):null,[P,{own:Q,artifacts:R}]=await Promise.all([b.threadId?(0,p.openJobScratch)(b.threadId,O?.label??"job"):null,(0,p.openBotFolders)(K)]),S=b.session??(b.threadId?(0,p.botBrowserSession)(b.threadId,K):null),[T,U]=await Promise.all([(0,j.loadBotPrompt)(K,J.systemPrompt,{thread:b.threadId??null,owner:b.owner,caller:b.caller},{scratch:P,own:Q,artifacts:R}),(0,h.loadTools)({target:"bot",bot:K,thread:b.threadId??null,session:S,model:N})]),V=Math.min(await (0,i.compactBudget)(N.ref,J.compactAt),b.contextBudget||1/0),W=await (0,i.runEffort)(N.ref,J.effort),X=(0,i.promptCacheOptions)(N.ref,b.threadId?D(b.threadId,K):null),Y=!1,Z=(0,t.isCoordinatorSeat)(K,b.owner,b.caller)?{...U,[l.TOOL_NAMES.send_message]:(0,f.tool)({description:k.sendMessageSpec.description,inputSchema:k.sendMessageSpec.parameters,execute:async(a,c)=>{let d=await b.send({...a,id:c.toolCallId});return"question"===a.kind&&(Y=!0),d}})}:U,$=new Set,_=(c=g.BOT_RUN.silenceMs,m=new AbortController,v=0,w=!1,z=()=>{clearTimeout(d),d=void 0,w||v>0||(d=setTimeout(()=>{m.abort(new DOMException(`The model sent nothing for ${Math.round(c/6e4)} minutes.`,"TimeoutError"))},c))},{signal:m.signal,touch:z,hold:()=>{v+=1,z()},release:()=>{v=Math.max(0,v-1),z()},end:()=>{w=!0,z()}});for(let[a,c]of Object.entries(Z)){let d=c.execute;d&&(c.execute=(c,e)=>{let f=(async()=>{b.signal?.throwIfAborted(),await L({type:"tool",id:e.toolCallId,name:a,input:c}),_.hold();try{b.signal?.throwIfAborted();let f=await d(c,e);if(f&&"object"==typeof f&&Symbol.asyncIterator in f){let a;for await(let b of f)a=b;f=a}return await L({type:"tool-result",id:e.toolCallId,name:a,output:f}),f}catch(b){throw await L({type:"tool-result",id:e.toolCallId,name:a,output:(0,i.modelErrorToString)(b),error:!0}),b}finally{_.release()}})();return $.add(f),f.finally(()=>$.delete(f)).catch(()=>{}),f})}let aa=Promise.resolve(),ab=()=>{},ac=0,ad=new e.ToolLoopAgent({model:N.model,instructions:T.text,tools:Z,reasoning:W,providerOptions:X,stopWhen:[(0,e.stepCountIs)(b.steps??B),()=>Y],prepareStep:async({stepNumber:a,steps:c,messages:d})=>{await aa,b.signal?.throwIfAborted();let e={},f=(c.at(-1)?.usage.inputTokens??0)||d.reduce((a,b)=>a+(0,r.estimateTokens)("string"==typeof b.content?b.content:JSON.stringify(b.content))+4,0);ac=f;let g=d,h=b.compactNow?.()??!1;if((f>V||h)&&d.length>2){_.hold();let a=await y(N.model,Z,d,{signal:b.signal,budget:V,instructions:T.text,providerOptions:X}).finally(_.release);q.logger.debug(`compacted ${d.length} messages at ${f} tokens (budget ${V})`);let c=`${a.text}${await x(O?.id??null,d,P)}`;await L({type:"compact",text:c,usage:a.usage,messages:d.length,tokens:f}),g=[d[0],{role:"user",content:c}]}let i=a>0?await b.notes?.()??[]:[];return(i.length&&(g=[...g,...i.map(a=>({role:"user",content:a}))]),g===d)?e:{...e,messages:g}}}),ae=(E=[],F=[],G=!1,{push(a){let b=F.shift();b?b(a):E.push(a)},take(){let a=E.shift();return a?Promise.resolve(a):G?Promise.resolve(null):new Promise(a=>F.push(a))},end(){for(let a of(G=!0,F.splice(0)))a(null)}}),af=b.signal?AbortSignal.any([b.signal,_.signal]):_.signal;_.touch();let ag=new AbortController,ah=AbortSignal.any([af,ag.signal]);try{H=await ad.stream({messages:M,abortSignal:ah,onStepEnd:a=>{aa=new Promise(a=>{ab=a}),ae.push({messages:function(a){if(!a.toolResults.length)return a.response.messages;let b=new Map(a.toolResults.map(a=>[a.toolCallId,a.output]));return a.response.messages.map(a=>"tool"!==a.role?a:{...a,content:a.content.map(a=>{if("tool-result"!==a.type||!b.has(a.toolCallId))return a;let c=b.get(a.toolCallId);return{...a,output:"string"==typeof c?{type:"text",value:c}:{type:"json",value:c}}})})}(a),usage:C(a.usage)})}})}catch(a){throw _.end(),ag.abort(),await Promise.allSettled([...$]),a}let ai="",aj="",ak=null,al=a=>{q.logger.error(`${K}: the model run broke`,a);let b=(0,i.modelErrorToString)(a),c=!(0,i.isProviderRefusal)(a),d=(0,i.isKeyRefused)(a)?{refused:N.ref.provider}:{};if(!(0,i.isContextOverflow)(a))return{type:"error",message:b,retry:c,...d};let e=Math.floor(Math.min(V,ac||V)*g.BOT_RUN.overflowShrink);return{type:"error",message:b,budget:Math.max(n.COMPACT_AT_MIN,e),retry:c,...d}};af.addEventListener("abort",()=>{ae.end(),ab()},{once:!0});try{for await(let a of H.stream)switch(_.touch(),a.type){case"start-step":aj="",ai="";break;case"text-delta":ai+=a.text;break;case"text-end":{let a=ai.trim();if(ai="",!a)break;aj=[aj,a].filter(Boolean).join("\n\n"),await L({type:"text",text:a});break}case"tool-call":await L({type:"tool",id:a.toolCallId,name:a.toolName,input:a.input,providerExecuted:a.providerExecuted,providerOptions:a.providerMetadata});break;case"tool-result":await L({type:"tool-result",id:a.toolCallId,name:a.toolName,output:a.output});break;case"tool-error":await L({type:"tool-result",id:a.toolCallId,name:a.toolName,output:(0,i.modelErrorToString)(a.error),error:!0});break;case"finish-step":{ak=a.finishReason;let b=await ae.take();b&&await L({type:"step",...b,budget:V}),ab();break}case"abort":if(b.signal?.aborted)return;await L(al(a.reason??"The model stopped sending."));return;case"error":await L(al(a.error));return}}finally{ag.abort(),ae.end(),_.end(),ab(),await Promise.allSettled([...$]),S&&(0,o.renewSignIns)(S).catch(a=>q.logger.warn(`${K}: kept sign-ins were not renewed`,a))}try{await H.finalStep}catch(a){if(b.signal?.aborted)return;await L(al(a));return}"content-filter"===ak?await L({type:"error",message:"The provider's content filter stopped the response.",retry:!1}):await L({type:"turn-end",text:aj,stopped:!Y&&("length"===ak||"error"===ak||"tool-calls"===ak)})}async function x(a,b,c){try{let d=a?await (0,u.listWrittenPaths)(a):(0,u.writtenPathsIn)(b.map(a=>a.content)),e=await (0,p.filesOnDisk)(d,c);if(!e.length)return"";let f=e.slice(-g.BOT_RUN.compactFiles),h=e.length-f.length,i=f.map(a=>`- ${a}`);return h&&i.unshift(`- …and ${h} older ones`),`
|
|
127
130
|
|
|
128
131
|
Files this job has on disk now — open one rather than fetching again what is in it:
|
|
129
132
|
${i.join("\n")}`}catch(a){return q.logger.warn("files under the summary could not be listed",a),""}}async function y(a,b,c,d){let e;try{return await z(a,b,c,d)}catch(a){if(d.signal?.aborted)throw a;e=a}if((0,i.isContextOverflow)(e)){let f=(0,m.asWords)(c,(a,b)=>`${a}: ${(0,u.argumentLine)(a,b)}`);try{return await z(a,b,f,d)}catch(a){if(d.signal?.aborted)throw a;e=a}}throw Error(`Could not compact the context (${(0,i.modelErrorToString)(e)}).`,{cause:e})}async function z(a,b,c,d){let f,{text:h,usage:i}=await (0,e.generateText)({model:a,instructions:d.instructions,tools:b,toolChoice:"none",messages:[...c,{role:"user",content:(f=(a=>{let{min:b,max:c,perTokens:d}=g.BOT_RUN.summaryWords;return Math.min(c,Math.max(b,Math.round(a/d)))})(d.budget),`Compact your context. The first message above — who handed you the job, and the job — stays exactly as it is. Everything after it is replaced by what you write now, and you carry on from that first message and this alone; nothing else above can be read again. Write it for a fresh copy of you that has your tools, your instructions and that first message, but has seen none of the rest.
|
|
@@ -140,8 +143,8 @@ Cover all of it, and prefer a fact over a description of a fact:
|
|
|
140
143
|
Plain text, under ${f} words. No preamble, no headings about the summary itself, no account of how you have been going.`)}],abortSignal:d.signal,timeout:g.BOT_RUN.silenceMs,providerOptions:d.providerOptions}),j=h.trim();if(!j)throw Error("The summary of the context came back empty, so there is nothing to carry on from.");return{text:`Everything between the first message and here was compacted. Below is your own summary of it; carry on from the first message and this.
|
|
141
144
|
|
|
142
145
|
${j}`,usage:C(i)}}let C=a=>({input:a.inputTokens??0,output:a.outputTokens??0,cacheRead:a.inputTokenDetails?.cacheReadTokens??0,cacheWrite:a.inputTokenDetails?.cacheWriteTokens??0}),D=(a,b)=>(0,d.createHash)("sha256").update(`${a}
|
|
143
|
-
${b}`).digest("hex").slice(0,32);function A(a,b={}){return a.provider&&a.model?(0,i.getTextModel)({provider:a.provider,model:a.model}):(0,i.resolveDefaultModel)(void 0,b).then(i.getTextModel)}a.s(["resolveModel",0,A,"resumeTranscript",0,function(a,b=new Map){let c=new Map,d=new Set;for(let b of a)if(("tool"===b.role||"assistant"===b.role)&&Array.isArray(b.content))for(let a of b.content)"tool-result"===a.type&&(c.has(a.toolCallId)||c.set(a.toolCallId,a),"assistant"===b.role&&d.add(a.toolCallId));let e=[],f=new Set;for(let g of a){if("tool"===g.role){let a=g.content.filter(a=>"tool-result"!==a.type);a.length&&e.push({...g,content:a});continue}if("assistant"!==g.role||"string"==typeof g.content){e.push(g);continue}let a=[],h=[];for(let e of g.content){if("tool-call"!==e.type){h.push(e);continue}if(f.has(e.toolCallId))continue;let g=e.input;if("string"==typeof g)try{g=JSON.parse(g)}catch{g=void 0}if(!e.toolCallId||void 0===g){h.push({type:"text",text:"A tool argument stream was interrupted before a complete call was recorded. Inspect the saved work before continuing."});continue}let i=e.toolName===l.TOOL_NAMES.send_message?b.get(e.toolCallId):void 0,j=c.get(e.toolCallId)??(i?{type:"tool-result",toolCallId:e.toolCallId,toolName:e.toolName,output:{type:"json",value:i}}:void 0);if(e.providerExecuted&&(!j||!d.has(e.toolCallId))){h.push({type:"text",text:j?`The provider operation ${e.toolName} returned this data before its native continuation was interrupted: ${JSON.stringify(j.output)}`:`The provider operation ${e.toolName} was interrupted without a recorded result. Its remote execution state is unknown.`});continue}f.add(e.toolCallId),h.push({...e,input:g}),d.has(e.toolCallId)||a.push(j??{type:"tool-result",toolCallId:e.toolCallId,toolName:e.toolName,output:{type:"text",value:"No result: execution was interrupted before a result was recorded. The outcome is unknown. Inspect the current state before repeating the action."}})}h.length&&e.push({...g,content:h}),a.length&&e.push({role:"tool",content:a})}return e},"runBot",0,w]),c()}catch(a){c(a)}},!1),674986,a=>a.a(async(b,c)=>{try{var d=a.i(136340),e=a.i(203469),f=a.i(569572),g=a.i(875931),h=a.i(735502),i=a.i(569549),j=a.i(684321),k=a.i(821415),l=a.i(956802),m=a.i(176668),n=a.i(293480),o=a.i(8412),p=a.i(182248),q=a.i(221214),r=a.i(654034),s=a.i(446957),t=a.i(839430),u=a.i(109955),v=a.i(344853),w=b([g,h,i,q,r,t,v]);[g,h,i,q,r,t,v]=w.then?(await w)():w;let
|
|
144
|
-
${b}`;async function x(a){let b=await (0,q.findJobBot)(a.bot);(!b||b.disabled)&&(0,n.publicError)("Choose an enabled bot.");let{from:c,routine:d,...e}={...a,bot:b.name},f=(0,h.buildThreadOpening)({bot:e.bot,request:e.request,from:c,routine:d}),g=await (0,v.insertThread)({...e,routineId:d?.id??null,startedBy:d?null:c,opening:f});return await z(g.id),g.id}async function y(a,b,c="user",d,e){let f=null;return await L(a,async()=>{let g=await (0,v.findThread)(a);if(g||(0,n.publicError)("No such thread."),d){let b=(await (0,t.listRoomWork)(a)).find(a=>a.bot.toLowerCase()===d.trim().toLowerCase());b&&b.bot!==u.ROOM_THURSDAY||(0,n.publicError)("Choose a participant in this thread."),d=b.bot}b.trim()===s.THREAD_CONTINUE&&(0,s.isAppStop)(g.pending)?(await (0,t.resumeRoom)(a),(await (0,t.listRoomWork)(a)).some(a=>"queued"===a.state)||(f=await (0,t.tellRoom)(a,"Continue from the saved conversation.","user"===c?u.ROOM_USER:u.ROOM_THURSDAY,d,void 0,!1))):f=await (0,t.tellRoom)(a,b,"user"===c?u.ROOM_USER:u.ROOM_THURSDAY,d,e)}),await z(a),f}async function z(a){await L(a,async()=>{for(let b=0;b<2;b++){let b;for(;b=await (0,t.claimRoomWork)(a);)!function(a){let b,c=new AbortController,d=new Promise(a=>{b=a});K.set(a.id,{threadId:a.threadId,stop:c,done:d}),A(a,c.signal).catch(b=>m.logger.error(`thread ${a.threadId}: participant`,b)).finally(()=>{K.delete(a.id),b(),z(a.threadId).catch(b=>m.logger.error(`thread ${a.threadId}: scheduling`,b))})}(b);await (0,t.settleRoom)(a)}})}async function A(a,b){let c=await B(a,b);if(c?.failure?.retry&&!b.aborted&&(await (0,t.noteRoomBreak)(a,c.failure.message),await (0,d.setTimeout)(f.BOT_RUN.retryMs,void 0,{signal:b}).catch(()=>{}),b.aborted||(c=await B(a,b,!1))),!c||b.aborted)return;let g=c.failure?.message,h=c.ending;if(g||!h||h.stopped){let b=g??"The turn was interrupted. Continue from the saved conversation.";L(a.threadId,async()=>{let d=(await (0,t.listRoomWork)(a.threadId)).find(b=>b.id===a.id);if(d?.state!=="running"||d.generation!==a.generation)return;let e=C(a.threadId);await (0,t.pauseRoom)(a.threadId,b,c.failure?.refused),await e}).catch(b=>m.logger.error(`thread ${a.threadId}: pausing`,b));return}await (0,t.finishRoomWork)(a,h.text);let n=await (0,v.findThread)(a.threadId);if(n?.status==="done"){let a=(0,p.plainText)(n.outcome??"").slice(0,f.FINISHED_NOTICE.words);e.presence.watching||await (0,i.isAnyCallLive)()||(0,l.desktopNotify)(n.label,a);let b=await (0,k.filesOnDisk)((0,j.pathsIn)(n.outcome??""),null);e.appEvents.emit({type:"finished",threadId:n.id,label:n.label,bot:n.bot,words:a,paths:(0,j.leadFirst)(b)})}}async function B(a,b,c=!0){let d=new O(a,b),e=null,f=null;try{let g=await (0,v.findThread)(a.threadId);if(!g)return null;if((await (0,t.listParticipantTranscript)(a.threadId,a.bot)).length||await (0,t.joinRoom)(a,b=>(0,h.buildJoinOpening)({bot:a.bot,coordinator:g.bot,job:b,request:g.request})),await (0,t.consumeRoomInbox)(a),c&&(0,u.isCoordinatorSeat)(a.bot,g.bot,a.caller)){let b=await (0,t.roomBoard)(a);b&&await (0,t.appendRoomMessage)(a.threadId,{bot:a.bot,parent:a.id,role:"user",content:b,hidden:!0})}let i=await (0,t.listParticipantTranscript)(a.threadId,a.bot);await (0,r.runBot)({bot:a.bot,messages:(0,r.resumeTranscript)(i,await (0,t.listRoomReceipts)(a.threadId,a.bot,i))},{signal:b,threadId:a.threadId,parent:a.id,caller:a.caller,owner:g.bot,contextBudget:await (0,t.roomContextBudget)(a.threadId,a.bot),compactNow:()=>M.delete(N(a.threadId,a.bot)),session:(0,k.botBrowserSession)(a.threadId,a.bot),notes:()=>(0,t.consumeRoomInbox)(a),send:async c=>{b.throwIfAborted();let d=c.to.trim();if(d.toLowerCase()===u.ROOM_THURSDAY.toLowerCase())d=u.ROOM_THURSDAY;else{let a=await (0,q.findJobBot)(d);(!a||a.disabled)&&(0,n.publicError)(`No enabled bot named "${d}".`),d=a.name}let e=await (0,t.sendRoomMessage)(a,{...c,to:d});return z(a.threadId).catch(a=>m.logger.error("room message scheduling",a)),e},emit:async c=>{(!b.aborted||"tool-result"===c.type)&&(await d.on(c),"step"===c.type&&await (0,v.addThreadUsage)(a.threadId,c.usage,a.bot===g.bot?{tokens:c.usage.input,budget:c.budget}:null),"compact"===c.type&&await (0,v.addThreadUsage)(a.threadId,c.usage),"turn-end"===c.type&&(e=c),"error"===c.type&&(f={message:c.message,retry:c.retry,refused:c.refused},c.budget&&await (0,t.lowerRoomContextBudget)(a,c.budget)))}})}catch(c){b.aborted||(m.logger.error(`thread ${a.threadId}: ${a.bot} broke`,c),f={message:(0,g.modelErrorToString)(c),retry:!(0,n.isPublicError)(c)&&!(0,g.isProviderRefusal)(c)})}return{ending:e,failure:f}}class O{work;signal;lane;assistant;tool;parts;calls;results;constructor(a,b){this.work=a,this.signal=b,this.lane=(0,p.PromiseChain)(),this.assistant=null,this.tool=null,this.parts={assistant:[],tool:[]},this.calls=new Set,this.results=new Set}async write(a,b,c=!1){let d={bot:this.work.bot,parent:this.work.id,role:b.role,content:b.content,compact:c,note:c};return null===a?(0,t.appendRoomMessage)(this.work.threadId,d):(await (0,v.upsertMessage)(this.work.threadId,a,d),a)}on(a){return this.lane(async()=>{if(!this.signal.aborted||"tool-result"===a.type)if("text"===a.type)this.parts.assistant.push({type:"text",text:a.text}),this.assistant=await this.write(this.assistant,{role:"assistant",content:this.parts.assistant});else if("tool"===a.type){if(this.calls.has(a.id)){let b=this.parts.assistant.find(b=>"tool-call"===b.type&&b.toolCallId===a.id);b&&"tool-call"===b.type&&a.providerOptions&&(b.providerOptions=a.providerOptions,this.assistant=await this.write(this.assistant,{role:"assistant",content:this.parts.assistant}));return}this.calls.add(a.id),this.parts.assistant.push({type:"tool-call",toolCallId:a.id,toolName:a.name,input:a.input,...a.providerExecuted?{providerExecuted:!0}:{},...a.providerOptions?{providerOptions:a.providerOptions}:{}}),this.assistant=await this.write(this.assistant,{role:"assistant",content:this.parts.assistant})}else if("tool-result"===a.type){if(this.results.has(a.id))return;this.results.add(a.id),this.parts.tool.push({type:"tool-result",toolCallId:a.id,toolName:a.name,output:a.error?{type:"error-text",value:String(a.output)}:"string"==typeof a.output?{type:"text",value:a.output}:{type:"json",value:a.output}}),this.tool=await this.write(this.tool,{role:"tool",content:this.parts.tool})}else if("step"===a.type){let b=[this.assistant,this.tool];for(let[c,d]of a.messages.entries())await this.write(b[c]??null,d);let c=b.slice(a.messages.length).filter(a=>null!==a);c.length&&await (0,v.deleteMessages)(this.work.threadId,c),this.assistant=this.tool=null,this.parts={assistant:[],tool:[]}}else"compact"===a.type&&await this.write(null,{role:"user",content:a.text},!0)})}}async function C(a){let b=[...K.values()].filter(b=>b.threadId===a);for(let a of b)a.stop.abort();await Promise.all(b.map(a=>a.done))}async function D(a){await L(a,async()=>{let b=await (0,v.findThread)(a);b||(0,n.publicError)("No such thread."),b.endedAt&&(0,n.publicError)("That thread has already ended."),await (0,t.cancelRoom)(a),await (0,v.updateThread)(a,{status:"cancelled",outcome:null,pending:null,seen:!0,endedAt:new Date}),await C(a),await (0,k.closeJobShell)(a)})}async function E(a){return L(a,()=>F(a))}async function F(a,b){let c=await (0,v.findThread)(a);await (0,t.cancelRoom)(a),await C(a),await (0,k.removeJobBrowsers)(a,b);let d=await (0,v.deleteThread)(a);return d&&c&&await (0,k.removeJobScratch)(a,c.label),d}async function G(a){let b,c=a?.getTime(),d=a=>void 0===c||(a.endedAt??a.updatedAt).getTime()<c,e=0,f=!1;for(let a of(await (0,v.listThreadFolders)()))("done"===a.status||"cancelled"===a.status)&&d(a)&&await L(a.id,async()=>{let c=await (0,v.findThread)(a.id);c?.status!=="done"&&c?.status!=="cancelled"||d(c)&&(f||(f=!0,b=await (0,k.listJobBrowsers)()??void 0),await F(a.id,b)&&(e+=1))});return b&&await (0,k.pruneJobFiles)(),e}async function H(){let a=Date.now()-f.WORKSPACE_KEEP.forMs,b=b=>("done"===b.status||"cancelled"===b.status)&&(b.endedAt??b.updatedAt).getTime()<a,c=new Set(await (0,k.listScratchFolders)()),d=[];for(let a of(await (0,v.listThreadFolders)())){let e=(0,k.jobScratch)(a.id,a.label);c.delete(e)&&b(a)&&await L(a.id,async()=>{let c=await (0,v.findThread)(a.id);c&&b(c)&&(await (0,k.closeHiddenBrowser)(a.id),await (0,k.removeJobScratch)(a.id,a.label),d.push(e))})}return d.push(...await (0,k.removeUnchangedFolders)([...c])),await (0,k.pruneJobFiles)(),d.length&&m.logger.info(`cleared ${d.length} old job folder(s): ${d.join(", ")}`),d}async function I(){for(let a of(await (0,v.listRunningThreadIds)()))await L(a,async()=>{[...K.values()].some(b=>b.threadId===a)||(await (0,v.findThread)(a))?.status==="running"&&await (0,t.pauseRoom)(a,"The server restarted. Resume from the saved conversation.")})}async function J(a){let b=await (0,v.listRunningThreadIds)();await Promise.all(b.map(b=>L(b,async()=>{(await (0,v.findThread)(b))?.status==="running"&&(await C(b),await (0,t.pauseRoom)(b,a))})))}a.s(["answerThread",0,y,"askCompact",0,function(a,b){M.add(N(a,b))},"cancelThread",0,D,"pauseThreads",0,J,"removeFinishedThreads",0,G,"removeThread",0,E,"startThread",0,x,"sweepJobFiles",0,H,"sweepThreads",0,I]),c()}catch(a){c(a)}},!1),317844,a=>a.a(async(b,c)=>{try{var d,e=a.i(106450),f=a.i(64203),g=a.i(569572),h=a.i(176668),i=a.i(182248),j=a.i(947950),k=a.i(899284),l=b([j]);[j]=l.then?(await l)():l;class m extends Error{serverName;authorizationUrl;constructor(a,b){super(`MCP server "${a}" requires authorization`),this.serverName=a,this.authorizationUrl=b,this.name="McpAuthRequiredError"}}class n{store;serverName;oauth;callbackUrl;clientName;lastAuthorizationUrl;constructor(a,b,c,d,e){this.store=a,this.serverName=b,this.oauth=c,this.callbackUrl=d,this.clientName=e}get redirectUrl(){return this.callbackUrl}get clientMetadata(){return{client_name:this.clientName,redirect_uris:[this.callbackUrl],grant_types:["authorization_code","refresh_token"],response_types:["code"],token_endpoint_auth_method:"client_secret_post"}}async persist(a){this.oauth={...this.oauth,...a},await this.store.saveOAuth(this.serverName,this.oauth)}clientInformation(){return this.oauth.clientInformation}async saveClientInformation(a){await this.persist({clientInformation:a})}tokens(){return this.oauth.tokens}async saveTokens(a){await this.persist({tokens:a})}authorizationServerInformation(){return this.oauth.authorizationServer}async saveAuthorizationServerInformation(a){await this.persist({authorizationServer:a})}codeVerifier(){if(!this.oauth.codeVerifier)throw Error("No code verifier saved");return this.oauth.codeVerifier}async saveCodeVerifier(a){await this.persist({codeVerifier:a})}state(){return crypto.randomUUID()}async saveState(a){await this.persist({state:a})}storedState(){return this.oauth.state}redirectToAuthorization(a){this.lastAuthorizationUrl=a}async invalidateCredentials(a){let b={...this.oauth};("all"===a||"client"===a)&&(b.clientInformation=void 0),("all"===a||"tokens"===a)&&(b.tokens=void 0),("all"===a||"verifier"===a)&&(b.codeVerifier=void 0),this.oauth=b,await this.store.saveOAuth(this.serverName,b)}}let o=globalThis;o.__thursdayMcpManager&&o.__thursdayMcpManager.dispose(),d={callbackUrl:new URL("/api/mcp/oauth/callback",g.APP_URL).href,clientName:g.APP_NAME},o.__thursdayMcpManager=new class a{store;sessions;connecting;callbackUrl;clientName;constructor(a,b){this.store=a,this.sessions=new Map,this.connecting=new Map,this.callbackUrl=b.callbackUrl,this.clientName=b.clientName??g.APP_NAME}async connect(a){let b=this.connecting.get(a);if(b)return b;let c=this.doConnect(a).finally(()=>this.connecting.delete(a));return this.connecting.set(a,c),c}async callTool(a,b,c,d){let f=await this.ensureClient(a);this.touch(a);try{let e=await f.callTool({name:b,arguments:c,options:d?{signal:d}:void 0});return this.touch(a),e}catch(b){var g;if(b instanceof e.UnauthorizedError)throw await this.closeSession(a),new m(a);throw d?.aborted||(g=b)instanceof Error&&"number"==typeof g.code||await this.closeSession(a,f),b}}async finishAuthorization(a){let b=a.get("state"),c=a.get("code");if(!b||!c)throw Error("OAuth callback is missing code or state");let d=await this.store.findByOAuthState(b);if(!d||!(0,k.isRemoteConfig)(d.config))throw Error("No server is waiting for this authorization");let f=this.providerFor(d),g=await (0,e.auth)(f,{serverUrl:d.config.url,authorizationCode:c,callbackState:b});if("AUTHORIZED"!==g)throw Error(`Token exchange ended in "${g}"`);return await f.invalidateCredentials("verifier"),await this.connect(d.name),d.name}async disconnect(a){await this.closeSession(a)}async dispose(){await Promise.all([...this.sessions.keys()].map(a=>this.closeSession(a)))}async doConnect(a){await this.closeSession(a);let b=await this.store.load(a);if(!b)throw Error(`Unknown MCP server "${a}"`);let c={},d=null;try{let e=await this.openClient(b,c);d=e;let f=(await e.listTools()).tools.map(a=>({name:a.name,description:a.description,inputSchema:a.inputSchema,outputSchema:a.outputSchema}));return this.adopt(a,e),d=null,await this.store.saveConnectionResult(a,{toolInfo:f,lastError:null}),h.logger.info(`mcp "${a}" connected — ${f.length} tools`),{status:"connected",tools:f}}catch(m){var f,g;let j;if(await d?.close().catch(()=>{}),m instanceof e.UnauthorizedError||m?.cause instanceof e.UnauthorizedError){let b=c.href;if(b)return await this.store.saveConnectionResult(a,{toolInfo:[],lastError:"Authorization required — finish sign-in in the opened tab"}),{status:"auth_required",authorizationUrl:b}}let l=(f=m,g=b,j=(0,i.errorToString)(f),(0,k.isRemoteConfig)(g.config)&&!g.oauth?.clientInformation&&/Invalid OAuth error response/.test(j)?`This server does not let an app register itself for sign-in, so it cannot be connected here. It answered: ${j}`:j);throw await this.store.saveConnectionResult(a,{toolInfo:[],lastError:l}),h.logger.warn(`mcp "${a}" failed — ${l}`),Error(l,{cause:m})}}async openClient(a,b={}){if((0,k.isRemoteConfig)(a.config)){let c=this.providerFor(a);try{return await (0,e.createMCPClient)({name:this.clientName,transport:{type:"http",url:a.config.url,headers:a.config.headers,authProvider:c,redirect:"follow"}})}finally{b.href=c.lastAuthorizationUrl?.href}}return(0,e.createMCPClient)({name:this.clientName,transport:new f.Experimental_StdioMCPTransport({command:a.config.command,args:a.config.args,env:a.config.env})})}providerFor(a){return new n(this.store,a.name,a.oauth??{},this.callbackUrl,this.clientName)}async ensureClient(a){let b=this.sessions.get(a);if(b)return b.client;let c=await this.connect(a);if("auth_required"===c.status)throw new m(a,c.authorizationUrl);let d=this.sessions.get(a);if(!d)throw Error(`Session for "${a}" vanished mid-connect`);return d.client}adopt(a,b){this.sessions.set(a,{client:b,idleTimer:this.armIdleTimer(a)})}touch(a){let b=this.sessions.get(a);b&&(clearTimeout(b.idleTimer),b.idleTimer=this.armIdleTimer(a))}armIdleTimer(a){let b=setTimeout(()=>{this.closeSession(a)},g.MCP_IDLE_MS);return b.unref?.(),b}async closeSession(a,b){let c=this.sessions.get(a);c&&(!b||c.client===b)&&(this.sessions.delete(a),clearTimeout(c.idleTimer),await c.client.close().catch(()=>{}))}}({load:a=>(0,j.findServer)(a),saveOAuth:(a,b)=>(0,j.saveOAuthData)(a,b),saveConnectionResult:(a,b)=>null===b.lastError?(0,j.syncServerTools)(a,b.toolInfo):(0,j.saveConnectionError)(a,b.lastError),findByOAuthState:a=>(0,j.findServerByOAuthState)(a)},d);let p=o.__thursdayMcpManager;a.s(["McpAuthRequiredError",0,m,"mcpManager",0,p]),c()}catch(a){c(a)}},!1),947950,a=>a.a(async(b,c)=>{try{var d=a.i(93321),e=a.i(351674),f=a.i(203469),g=a.i(184838),h=a.i(714428),i=a.i(688034),j=a.i(899284),k=a.i(293480),l=a.i(630189),m=b([g]);async function n(a){var b;let[c]=await g.database.select({name:h.mcpServerTable.name,config:h.mcpServerTable.config,lastError:h.mcpServerTable.lastError,toolsSyncedAt:h.mcpServerTable.toolsSyncedAt}).from(h.mcpServerTable).where((0,d.eq)(h.mcpServerTable.name,a));return c?{...c,config:(b=c.config,(0,j.isRemoteConfig)(b)?{url:b.url}:{command:b.command,args:b.args}),tools:await o(a)}:null}async function o(a){return g.database.select({id:h.mcpToolTable.id,name:h.mcpToolTable.name,description:h.mcpToolTable.description,inputSchema:h.mcpToolTable.inputSchema,outputSchema:h.mcpToolTable.outputSchema}).from(h.mcpToolTable).where((0,d.eq)(h.mcpToolTable.serverName,a)).orderBy(h.mcpToolTable.name)}[g]=m.then?(await m)():m;let A=a=>Object.fromEntries(Object.entries(a).map(([a,b])=>[a,(0,l.isSealed)(b)?b:(0,l.sealSecret)(b)])),B=a=>Object.fromEntries(Object.entries(a).map(([a,b])=>[a,(0,l.openSecret)(b)]));function p(a){try{return function(a){let{sealed:b,...c}=a;return b?{...JSON.parse((0,l.openSecret)(b)),...c}:c}(a)}catch(a){if(a instanceof l.UnreadableSecret)return null;throw a}}function q(a){let b,c,d=function(a){try{return(0,j.isRemoteConfig)(a)?a.headers?{...a,headers:B(a.headers)}:a:a.env?{...a,env:B(a.env)}:a}catch(a){if(a instanceof l.UnreadableSecret)return null;throw a}}(a.config);d||(0,k.publicError)((b=a.name,(0,i.lostWords)(`The key saved for "${b}"`,"Add it again under the same name, with its key: bots keep the tools they pinned.")));let e=a.oauth&&p(a.oauth);return a.oauth&&!e&&(0,k.publicError)((c=a.name,(0,i.lostWords)(`The sign-in saved for "${c}"`,"Reconnect to sign in again."))),{...a,config:d,oauth:e}}async function r(a){let[b]=await g.database.select({oauth:h.mcpServerTable.oauth}).from(h.mcpServerTable).where((0,d.eq)(h.mcpServerTable.name,a));return!(!b?.oauth||p(b.oauth))&&(await g.database.update(h.mcpServerTable).set({oauth:{state:b.oauth.state,authorizationServer:b.oauth.authorizationServer}}).where((0,d.eq)(h.mcpServerTable.name,a)),C(),!0)}async function s(a){let[b]=await g.database.select().from(h.mcpServerTable).where((0,d.eq)(h.mcpServerTable.name,a));return b?q(b):null}let C=()=>f.appEvents.emit({type:"mcp"});async function t(a){var b;let c=(b=a.config,(0,j.isRemoteConfig)(b)?b.headers?{...b,headers:A(b.headers)}:b:b.env?{...b,env:A(b.env)}:b);await g.database.insert(h.mcpServerTable).values({name:a.name,config:c,lastError:null}).onConflictDoUpdate({target:h.mcpServerTable.name,set:{config:c,lastError:null}}),C()}async function u(a,b){await g.database.transaction(async c=>{b.length&&await c.insert(h.mcpToolTable).values(b.map(b=>({...b,serverName:a}))).onConflictDoUpdate({target:[h.mcpToolTable.serverName,h.mcpToolTable.name],set:{description:v(h.mcpToolTable.description),inputSchema:v(h.mcpToolTable.inputSchema),outputSchema:v(h.mcpToolTable.outputSchema)}}),await c.delete(h.mcpToolTable).where(b.length?(0,d.and)((0,d.eq)(h.mcpToolTable.serverName,a),(0,d.notInArray)(h.mcpToolTable.name,b.map(a=>a.name))):(0,d.eq)(h.mcpToolTable.serverName,a)),await c.update(h.mcpServerTable).set({lastError:null,toolsSyncedAt:new Date}).where((0,d.eq)(h.mcpServerTable.name,a))}),C()}function v(a){return e.sql.raw(`excluded."${a.name}"`)}async function w(a,b){await g.database.update(h.mcpServerTable).set({lastError:b}).where((0,d.eq)(h.mcpServerTable.name,a)),C()}async function x(a,b){await g.database.update(h.mcpServerTable).set({oauth:b&&function(a){let{state:b,authorizationServer:c,...d}=a,e=Object.values(d).some(a=>void 0!==a);return{state:b,authorizationServer:c,...e&&{sealed:(0,l.sealSecret)(JSON.stringify(d))}}}(b)}).where((0,d.eq)(h.mcpServerTable.name,a)),C()}async function y(a){let[b]=await g.database.select().from(h.mcpServerTable).where(e.sql`json_extract(${h.mcpServerTable.oauth}, '$.state') = ${a}`);return b?q(b):null}async function z(a){let b=await g.database.delete(h.mcpServerTable).where((0,d.eq)(h.mcpServerTable.name,a)).returning();return b.length>0&&C(),b.length>0}a.s(["deleteServer",0,z,"findPinnedTools",0,function(a){return g.database.select({server:h.mcpToolTable.serverName,name:h.mcpToolTable.name,description:h.mcpToolTable.description,inputSchema:h.mcpToolTable.inputSchema}).from(h.botMcpToolTable).innerJoin(h.mcpToolTable,(0,d.eq)(h.botMcpToolTable.toolId,h.mcpToolTable.id)).where((0,d.eq)(h.botMcpToolTable.botName,a)).orderBy(h.mcpToolTable.serverName,h.mcpToolTable.name)},"findServer",0,s,"findServerByOAuthState",0,y,"findServerDetail",0,n,"findToolSchemas",0,function(a,b){return b.length?g.database.select({name:h.mcpToolTable.name,description:h.mcpToolTable.description,inputSchema:h.mcpToolTable.inputSchema}).from(h.mcpToolTable).where((0,d.and)((0,d.eq)(h.mcpToolTable.serverName,a),(0,d.inArray)(h.mcpToolTable.name,b))).orderBy(h.mcpToolTable.name):Promise.resolve([])},"forgetLostSignIn",0,r,"listServerNames",0,function(){return g.database.select({name:h.mcpServerTable.name}).from(h.mcpServerTable).orderBy(h.mcpServerTable.name)},"listToolNames",0,function(a){let b=g.database.select({server:h.mcpToolTable.serverName,name:h.mcpToolTable.name}).from(h.mcpToolTable);return a?b.where((0,d.eq)(h.mcpToolTable.serverName,a)).orderBy(h.mcpToolTable.name):b.orderBy(h.mcpToolTable.serverName,h.mcpToolTable.name)},"saveConnectionError",0,w,"saveOAuthData",0,x,"syncServerTools",0,u,"upsertServer",0,t]),c()}catch(a){c(a)}},!1),899284,a=>{"use strict";var b=a.i(794219),c=a.i(706210);let d=b.object({url:b.url(),headers:b.record(b.string(),b.string()).optional()}),e=b.object({command:b.string().min(1),args:b.array(b.string()).optional(),env:b.record(b.string(),b.string()).optional()}),f=b.union([d,e]),g=b.object({name:b.string(),description:b.string().optional(),inputSchema:b.looseObject({}).optional(),outputSchema:b.looseObject({}).optional()});b.object({clientInformation:b.looseObject({}).optional(),tokens:b.looseObject({}).optional(),authorizationServer:b.looseObject({}).optional(),codeVerifier:b.string().optional(),state:b.string().optional()});let h=b.object({name:b.string().min(1).max(40),config:f,toolCount:b.number().int(),lastError:b.string().nullish()}),i=g.extend({id:b.number().int(),description:b.string().nullish()});h.omit({toolCount:!0}).extend({tools:i.array().default([]),toolsSyncedAt:c.DateLikeSchema});let j=b.object({name:b.string().min(1,"Name is required").max(40).regex(/^[a-zA-Z0-9_-]+$/,"Only letters, numbers, - and _ are allowed"),config:f});b.union([b.object({mcpServers:b.record(b.string(),f)}),b.record(b.string(),f)]),a.s(["MCPServerFormSchema",0,j,"isRemoteConfig",0,function(a){return"url"in a}])},986743,a=>a.a(async(b,c)=>{try{var d=a.i(93321),e=a.i(530385),f=a.i(351674),g=a.i(203469);a.i(569572);var h=a.i(184838),i=a.i(714428),j=a.i(661210),k=b([h]);[h]=k.then?(await k)():k;let B=()=>g.appEvents.emit({type:"memory"});async function l(a,b,c={}){let[d]=await h.database.insert(i.memoryNoteTable).values({path:a,description:b,ownedByUser:c.ownedByUser??!1}).onConflictDoNothing({target:i.memoryNoteTable.path}).returning();return d&&B(),d??null}async function m(a,b){let[c]=await h.database.update(i.memoryNoteTable).set({...b,updatedAt:new Date}).where((0,d.eq)(i.memoryNoteTable.id,a)).returning();return c&&B(),c??null}async function n(a){let b=await h.database.delete(i.memoryNoteTable).where((0,d.eq)(i.memoryNoteTable.id,a)).returning({id:i.memoryNoteTable.id});return b.length>0&&B(),b.length>0}async function o(a,b){let[c]=await h.database.insert(i.memoryFactTable).values({noteId:a,text:b,source:"user"}).returning();return await r(a),B(),c}async function p(a,b,c){let e=await h.database.transaction(async e=>{let f=await e.update(i.memoryFactTable).set({isLatest:!1}).where((0,d.and)((0,d.eq)(i.memoryFactTable.id,b),(0,d.eq)(i.memoryFactTable.noteId,a),(0,d.eq)(i.memoryFactTable.isLatest,!0))).returning({id:i.memoryFactTable.id});if(0===f.length)return null;let[g]=await e.insert(i.memoryFactTable).values({noteId:a,text:c,source:"user"}).returning();return await e.update(i.memoryNoteTable).set({updatedAt:new Date}).where((0,d.eq)(i.memoryNoteTable.id,a)),g});return e&&B(),e}async function q(a,b){let c=await h.database.delete(i.memoryFactTable).where((0,d.and)((0,d.eq)(i.memoryFactTable.id,b),(0,d.eq)(i.memoryFactTable.noteId,a))).returning({id:i.memoryFactTable.id});return c.length>0&&(await r(a),B()),c.length>0}function r(a){return h.database.update(i.memoryNoteTable).set({updatedAt:new Date}).where((0,d.eq)(i.memoryNoteTable.id,a))}async function s(){for(let a of j.MEMORY_ALWAYS_LISTED){let b=j.MEMORY_PATHS.find(b=>b.path===a)?.of??a;await h.database.insert(i.memoryNoteTable).values({path:a,description:b}).onConflictDoUpdate({target:i.memoryNoteTable.path,set:{description:b}})}}async function t(a,b={}){let c=[...new Set(a.map(a=>a.trim()).filter(Boolean))];if(!c.length)return{notes:[],missing:[]};let g=await h.database.select({id:i.memoryNoteTable.id,path:i.memoryNoteTable.path,description:i.memoryNoteTable.description}).from(i.memoryNoteTable).where((0,d.inArray)(i.memoryNoteTable.path,c)),j=new Map(g.map(a=>[a.path,a])),k=c.filter(a=>!j.has(a));if(!g.length)return{notes:[],missing:k};let l=g.map(a=>a.id),m=await h.database.select({id:i.memoryFactTable.id,noteId:i.memoryFactTable.noteId,text:i.memoryFactTable.text,source:i.memoryFactTable.source,createdAt:i.memoryFactTable.createdAt,saidAt:i.callTable.startedAt}).from(i.memoryFactTable).leftJoin(i.callTable,(0,d.eq)(i.memoryFactTable.callId,i.callTable.id)).where((0,d.and)((0,d.eq)(i.memoryFactTable.isLatest,!0),(0,d.inArray)(i.memoryFactTable.noteId,l))).orderBy((0,e.asc)(i.memoryFactTable.id));return!1!==b.touch&&await h.database.update(i.memoryNoteTable).set({hits:f.sql`${i.memoryNoteTable.hits} + 1`,lastReadAt:new Date}).where((0,d.inArray)(i.memoryNoteTable.id,l)),{notes:c.flatMap(a=>{let b=j.get(a);return b?[{path:b.path,description:b.description,facts:m.filter(a=>a.noteId===b.id).map(a=>({id:a.id,text:a.text,...a.saidAt?{saidAt:a.saidAt}:{}}))}]:[]}),missing:k}}(0,d.inArray)(i.memoryNoteTable.path,j.MEMORY_ALWAYS_LISTED);let C=a=>a.toLowerCase().replace(/[\s.,!?…·'"`]/g,"");async function u(a,b,c,e,f){let g=await a.select({id:i.memoryFactTable.id,text:i.memoryFactTable.text}).from(i.memoryFactTable).where((0,d.and)((0,d.eq)(i.memoryFactTable.noteId,b),(0,d.eq)(i.memoryFactTable.isLatest,!0))),h=new Map(g.map(a=>[C(a.text),a]));for(let g of c){let c=g.text.trim();if(!c)continue;if(null!=g.replaces){let[j]=await a.select({id:i.memoryFactTable.id,text:i.memoryFactTable.text}).from(i.memoryFactTable).where((0,d.and)((0,d.eq)(i.memoryFactTable.id,g.replaces),(0,d.eq)(i.memoryFactTable.noteId,b),(0,d.eq)(i.memoryFactTable.isLatest,!0)));if(j){if(C(j.text)===C(c))continue;await a.update(i.memoryFactTable).set({isLatest:!1}).where((0,d.eq)(i.memoryFactTable.id,j.id)),h.delete(C(j.text));let[g]=await a.insert(i.memoryFactTable).values({noteId:b,text:c,source:e,callId:f}).returning({id:i.memoryFactTable.id});h.set(C(c),{...g,text:c});continue}}if(h.has(C(c)))continue;let[j]=await a.insert(i.memoryFactTable).values({noteId:b,text:c,source:e,callId:f}).returning({id:i.memoryFactTable.id});h.set(C(c),{...j,text:c})}await a.update(i.memoryNoteTable).set({updatedAt:new Date}).where((0,d.eq)(i.memoryNoteTable.id,b))}async function v(a,b,c,e=null){let f=a.trim();if(!await h.database.transaction(async a=>{let[g]=await a.select({id:i.memoryNoteTable.id}).from(i.memoryNoteTable).where((0,d.eq)(i.memoryNoteTable.path,f));return!!g&&(await u(a,g.id,b,c,e),!0)}))return null;let{notes:g}=await t([f],{touch:!1});return B(),g[0]??null}async function w(a,b,c,d,e=null){let f=a.trim();if(!await h.database.transaction(async a=>{let[g]=await a.insert(i.memoryNoteTable).values({path:f,description:b}).onConflictDoNothing({target:i.memoryNoteTable.path}).returning({id:i.memoryNoteTable.id});return!!g&&(await u(a,g.id,c,d,e),!0)}))return null;let{notes:g}=await t([f],{touch:!1});return B(),g[0]??null}async function x(a,b){let[c]=await h.database.update(i.memoryNoteTable).set({description:b,updatedAt:new Date}).where((0,d.eq)(i.memoryNoteTable.path,a.trim())).returning({id:i.memoryNoteTable.id});return c&&B(),!!c}async function y(){let[a,b]=await Promise.all([h.database.select({id:i.memoryNoteTable.id,path:i.memoryNoteTable.path,description:i.memoryNoteTable.description,hits:i.memoryNoteTable.hits,lastReadAt:i.memoryNoteTable.lastReadAt,createdAt:i.memoryNoteTable.createdAt}).from(i.memoryNoteTable),h.database.select({noteId:i.memoryFactTable.noteId,count:f.sql`count(*)`}).from(i.memoryFactTable).where((0,d.eq)(i.memoryFactTable.isLatest,!0)).groupBy(i.memoryFactTable.noteId)]),c=new Map(b.map(a=>[a.noteId,a.count]));return a.filter(a=>(0,j.isAlwaysListed)(a.path)||(c.get(a.id)??0)>0).sort((a,b)=>Number((0,j.isAlwaysListed)(b.path))-Number((0,j.isAlwaysListed)(a.path))||(0,j.recallScore)(b)-(0,j.recallScore)(a)).map(a=>({path:a.path,description:a.description,factCount:c.get(a.id)??0,lastSeenAt:a.lastReadAt??a.createdAt}))}async function z(a){let b=await h.database.transaction(async b=>{let c=await b.delete(i.memoryFactTable).where((0,d.eq)(i.memoryFactTable.id,a)).returning({noteId:i.memoryFactTable.noteId});if(0===c.length)return null;let e=c[0].noteId,[g]=await b.select({path:i.memoryNoteTable.path,ownedByUser:i.memoryNoteTable.ownedByUser}).from(i.memoryNoteTable).where((0,d.eq)(i.memoryNoteTable.id,e)),[h]=await b.select({count:f.sql`count(*)`}).from(i.memoryFactTable).where((0,d.and)((0,d.eq)(i.memoryFactTable.noteId,e),(0,d.eq)(i.memoryFactTable.isLatest,!0)));return h?.count!==0||!g||g.ownedByUser||(0,j.isAlwaysListed)(g.path)?(await b.update(i.memoryNoteTable).set({updatedAt:new Date}).where((0,d.eq)(i.memoryNoteTable.id,e)),{path:g?.path??"",noteGone:!1}):(await b.delete(i.memoryNoteTable).where((0,d.eq)(i.memoryNoteTable.id,e)),{path:g.path,noteGone:!0})});return b&&B(),b}async function A(){let a=await h.database.delete(i.memoryNoteTable).returning({id:i.memoryNoteTable.id});return await s(),a.length>0&&B(),a.length}a.s(["addFact",0,o,"createNote",0,l,"createNoteWithFacts",0,w,"deleteAllNotes",0,A,"deleteNote",0,n,"describeNote",0,x,"forgetFact",0,q,"forgetFactById",0,z,"listNoteIndex",0,y,"readNotes",0,t,"reviseFact",0,p,"updateNote",0,m,"writeFacts",0,v]),c()}catch(a){c(a)}},!1),661210,a=>{"use strict";var b=a.i(794219),c=a.i(569572),d=a.i(706210);let e=b.enum(["user","call","bot"]),f=b.string().trim().min(1,"A note needs a line saying what it is about").max(c.MEMORY_LIMITS.descriptionChars,`A note's line is one line: at most ${c.MEMORY_LIMITS.descriptionChars} characters`),g=b.object({id:b.number(),text:b.string(),source:e.nullish(),createdAt:d.DateLikeSchema});b.object({id:b.number(),path:b.string(),description:b.string(),ownedByUser:b.boolean(),hits:b.number(),lastReadAt:d.DateLikeSchema.nullable(),createdAt:d.DateLikeSchema,updatedAt:d.DateLikeSchema,factCount:b.number(),facts:g.array()});let h=[{path:"profile",of:"The user themselves — name, age, what they do, where they live, whatever else says who they are"},{path:"preferences",of:"How they want things done, and said — read whole on every call, so a rule for a particular situation goes here too"},{path:"people/",of:"Someone in their life, and what matters about them"},{path:"projects/",of:"Something with an end — a trip, a purchase, a deadline, a thing being built"},{path:"topics/",of:"Something ongoing that keeps coming back"}],i=h.filter(a=>!a.path.endsWith("/")).map(a=>a.path),j=h.filter(a=>a.path.endsWith("/")).map(a=>a.path.slice(0,-1)),k=RegExp(`^(?:${i.join("|")}|(?:${j.join("|")})/.+)$`);a.s(["MEMORY_ALWAYS_LISTED",0,i,"MEMORY_PATHS",0,h,"NoteLineSchema",0,f,"isAlwaysListed",0,a=>i.includes(a),"isMemoryPath",0,a=>k.test(a),"recallScore",0,function(a){let b=(0,d.toDate)(a.lastReadAt??a.createdAt),c=Math.max(0,(Date.now()-b.getTime())/864e5);return(a.hits+1)/(1+c)}])},936292,a=>{"use strict";var b=a.i(569572);async function c(a,c){if(null==a||!Number.isFinite(a))return!1;let d=Math.max(0,1e3*a);return!(c>=b.REACH.rateRetries)&&!(d>b.REACH.rateWaitMs)&&(await new Promise(a=>setTimeout(a,d)),!0)}a.s(["ChannelRefusal",0,class extends Error{token;constructor(a,b=0){super(a),this.token=b}},"waitOut",0,c])},465584,a=>{"use strict";function b(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var c=b(),d={exec:()=>null};function e(a){let b=[];return c=>{let d=Math.max(0,Math.min(3,c-1)),e=b[d];return e||(e=a(d),b[d]=e),e}}function f(a,b=""){let c="string"==typeof a?a:a.source,d={replace:(a,b)=>{let e="string"==typeof b?b:b.source;return e=e.replace(h.caret,"$1"),c=c.replace(a,e),d},getRegex:()=>new RegExp(c,b)};return d}var g=((a="")=>{try{return!!RegExp("(?<=1)(?<!1)"+a)}catch{return!1}})(),h={codeRemoveIndent:/^(?: {0,3}\t| {1,4})/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,endingSpaceTabChar:/[ \t]$/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,leadingSpaceTab:/^[ \t]+/,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,numericCharacterReference:/&#(?:(\d{1,7})|[Xx]([A-Fa-f0-9]{1,6}));/g,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:a=>RegExp(`^( {0,3}${a})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:e(a=>RegExp(`^ {0,${a}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`)),hrRegex:e(a=>RegExp(`^ {0,${a}}((?:-[ ]*){3,}|(?:_[ ]*){3,}|(?:\\*[ ]*){3,})(?:\\n+|$)`)),fencesBeginRegex:e(a=>RegExp(`^ {0,${a}}(?:\`\`\`|~~~)`)),headingBeginRegex:e(a=>RegExp(`^ {0,${a}}#`)),htmlBeginRegex:e(a=>RegExp(`^ {0,${a}}(?:</?(?:${r})(?: +|$|/?>)|<(?:script|pre|style|textarea|!--))`,"i")),blockquoteBeginRegex:e(a=>RegExp(`^ {0,${a}}>`))},i=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,j=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,k=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |fences|blockquote|heading|hr|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,l=f(k).replace(/bull/g,j).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}(?:\s|$)/).replace(/hr/g,/ {0,3}(?:(?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),m=f(k).replace(/bull/g,j).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}(?:\s|$)/).replace(/hr/g,/ {0,3}(?:(?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),n=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table|[ \t]+\n)[^\n]+)*)/,o=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,p=f(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",o).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),q=f(/^(bull)([ \t][^\n]*?)?(?:\n|$)/).replace(/bull/g,j).getRegex(),r="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",s=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,t=f("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n*|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>[^\\n]*\\n*|$)|<![A-Z][\\s\\S]*?(?:>[^\\n]*\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>[^\\n]*\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][a-z0-9-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][a-z0-9-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",s).replace("tag",r).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),u=a=>f(n).replace("hr",i).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace("list",a).replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",r).getRegex(),v=u(/ {0,3}(?:[*+-]|1[.)])[ \t]+[^ \t\n]/),w=u(/ {0,3}(?:[*+-]|\d{1,9}[.)])(?:[ \t]|\n|$)/),x={blockquote:f(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",w).getRegex(),code:/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,def:p,fences:/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,hr:i,html:t,lheading:l,list:q,newline:/^(?:[ \t]*(?:\n|$))+/,paragraph:v,table:d,text:/^[^\n]+/},y=f("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",i).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",r).getRegex(),z={...x,lheading:m,table:y,paragraph:f(n).replace("hr",i).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",y).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]+[^ \\t\\n]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",r).getRegex()},A={...x,html:f("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:\"[^\"]*\"|'[^']*'|\\s[^'\"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",s).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:d,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:f(n).replace("hr",i).replace("heading",` *#{1,6} *[^
|
|
146
|
+
${b}`).digest("hex").slice(0,32);function A(a,b={}){return a.provider&&a.model?(0,i.getTextModel)({provider:a.provider,model:a.model}):(0,i.resolveDefaultModel)(void 0,b).then(i.getTextModel)}a.s(["resolveModel",0,A,"resumeTranscript",0,function(a,b=new Map){let c=new Map,d=new Set;for(let b of a)if(("tool"===b.role||"assistant"===b.role)&&Array.isArray(b.content))for(let a of b.content)"tool-result"===a.type&&(c.has(a.toolCallId)||c.set(a.toolCallId,a),"assistant"===b.role&&d.add(a.toolCallId));let e=[],f=new Set;for(let g of a){if("tool"===g.role){let a=g.content.filter(a=>"tool-result"!==a.type);a.length&&e.push({...g,content:a});continue}if("assistant"!==g.role||"string"==typeof g.content){e.push(g);continue}let a=[],h=[];for(let e of g.content){if("tool-call"!==e.type){h.push(e);continue}if(f.has(e.toolCallId))continue;let g=e.input;if("string"==typeof g)try{g=JSON.parse(g)}catch{g=void 0}if(!e.toolCallId||void 0===g){h.push({type:"text",text:"A tool argument stream was interrupted before a complete call was recorded. Inspect the saved work before continuing."});continue}let i=e.toolName===l.TOOL_NAMES.send_message?b.get(e.toolCallId):void 0,j=c.get(e.toolCallId)??(i?{type:"tool-result",toolCallId:e.toolCallId,toolName:e.toolName,output:{type:"json",value:i}}:void 0);if(e.providerExecuted&&(!j||!d.has(e.toolCallId))){h.push({type:"text",text:j?`The provider operation ${e.toolName} returned this data before its native continuation was interrupted: ${JSON.stringify(j.output)}`:`The provider operation ${e.toolName} was interrupted without a recorded result. Its remote execution state is unknown.`});continue}f.add(e.toolCallId),h.push({...e,input:g}),d.has(e.toolCallId)||a.push(j??{type:"tool-result",toolCallId:e.toolCallId,toolName:e.toolName,output:{type:"text",value:"No result: execution was interrupted before a result was recorded. The outcome is unknown. Inspect the current state before repeating the action."}})}h.length&&e.push({...g,content:h}),a.length&&e.push({role:"tool",content:a})}return e},"runBot",0,w]),c()}catch(a){c(a)}},!1),674986,a=>a.a(async(b,c)=>{try{var d=a.i(136340),e=a.i(203469),f=a.i(569572),g=a.i(875931),h=a.i(735502),i=a.i(569549),j=a.i(684321),k=a.i(821415),l=a.i(956802),m=a.i(176668),n=a.i(293480),o=a.i(8412),p=a.i(182248),q=a.i(221214),r=a.i(654034),s=a.i(446957),t=a.i(839430),u=a.i(109955),v=a.i(344853),w=b([g,h,i,q,r,t,v]);[g,h,i,q,r,t,v]=w.then?(await w)():w;let M=globalThis.__roomRuns??=new Map,N=globalThis.__roomReflecting??=new Map,O=globalThis.__roomThreadLock??=(0,o.createKeyedLock)(),P=globalThis.__roomCompactAsked??=new Set,Q=(a,b)=>`${a}
|
|
147
|
+
${b}`;async function x(a){let b=await (0,q.findJobBot)(a.bot);(!b||b.disabled)&&(0,n.publicError)("Choose an enabled bot.");let{from:c,routine:d,...e}={...a,bot:b.name},f=(0,h.buildThreadOpening)({bot:e.bot,request:e.request,from:c,routine:d}),g=await (0,v.insertThread)({...e,routineId:d?.id??null,startedBy:d?null:c,opening:f});return await z(g.id),g.id}async function y(a,b,c="user",d,e){let f=null;return await O(a,async()=>{let g=await (0,v.findThread)(a);if(g||(0,n.publicError)("No such thread."),d){let b=(await (0,t.listRoomWork)(a)).find(a=>a.bot.toLowerCase()===d.trim().toLowerCase());b&&b.bot!==u.ROOM_THURSDAY||(0,n.publicError)("Choose a participant in this thread."),d=b.bot}b.trim()===s.THREAD_CONTINUE&&(0,s.isAppStop)(g.pending)?(await (0,t.resumeRoom)(a),(await (0,t.listRoomWork)(a)).some(a=>"queued"===a.state)||(f=await (0,t.tellRoom)(a,"Continue from the saved conversation.","user"===c?u.ROOM_USER:u.ROOM_THURSDAY,d,void 0,!1))):f=await (0,t.tellRoom)(a,b,"user"===c?u.ROOM_USER:u.ROOM_THURSDAY,d,e)}),await z(a),f}async function z(a){await O(a,async()=>{for(let b=0;b<2;b++){let b;for(;b=await (0,t.claimRoomWork)(a);)!function(a){let b;N.get(a.threadId)?.abort();let c=new AbortController,d=new Promise(a=>{b=a});M.set(a.id,{threadId:a.threadId,stop:c,done:d}),A(a,c.signal).catch(b=>m.logger.error(`thread ${a.threadId}: participant`,b)).finally(()=>{M.delete(a.id),b(),z(a.threadId).catch(b=>m.logger.error(`thread ${a.threadId}: scheduling`,b))})}(b);await (0,t.settleRoom)(a)}})}async function A(a,b){let c=await C(a,b);if(c?.failure?.retry&&!b.aborted&&(await (0,t.noteRoomBreak)(a,c.failure.message),await (0,d.setTimeout)(f.BOT_RUN.retryMs,void 0,{signal:b}).catch(()=>{}),b.aborted||(c=await C(a,b,!1))),!c||b.aborted)return;let g=c.failure?.message,h=c.ending;if(g||!h||h.stopped){let b=g??"The turn was interrupted. Continue from the saved conversation.";O(a.threadId,async()=>{let d=(await (0,t.listRoomWork)(a.threadId)).find(b=>b.id===a.id);if(d?.state!=="running"||d.generation!==a.generation)return;let e=D(a.threadId);await (0,t.pauseRoom)(a.threadId,b,c.failure?.refused),await e}).catch(b=>m.logger.error(`thread ${a.threadId}: pausing`,b));return}await (0,t.finishRoomWork)(a,h.text);let n=await (0,v.findThread)(a.threadId);if(n?.status==="done"){let a=(0,p.plainText)(n.outcome??"").slice(0,f.FINISHED_NOTICE.words);e.presence.watching||await (0,i.isAnyCallLive)()||(0,l.desktopNotify)(n.label,a);let b=await (0,k.filesOnDisk)((0,j.pathsIn)(n.outcome??""),null);e.appEvents.emit({type:"finished",threadId:n.id,label:n.label,bot:n.bot,words:a,paths:(0,j.leadFirst)(b)}),O(n.id,async()=>{(await (0,v.findThread)(n.id))?.status==="done"&&await (0,k.closeIdleBrowser)(n.id)}).catch(a=>m.logger.warn(`thread ${n.id}: closing its browsers`,a)),B(n.id,n.bot).catch(a=>m.logger.warn(`thread ${n.id}: looking back`,a))}}async function B(a,b){if(!await (0,q.readBotMemoryOn)())return;N.get(a)?.abort();let c=new AbortController;N.set(a,c);try{let d=new Map;for(let b of(await (0,t.listRoomWork)(a)))b.bot!==u.ROOM_THURSDAY&&d.set(b.bot,b);for(let e of d.values()){if(c.signal.aborted||(await (0,v.findThread)(a))?.status!=="done")return;let d=await (0,t.listParticipantTranscript)(a,e.bot);R(d)<f.BOT_REFLECT.minTools||await (0,r.runBot)({bot:e.bot,messages:[...(0,r.resumeTranscript)(d,await (0,t.listRoomReceipts)(a,e.bot,d)),{role:"user",content:h.REFLECT_NOTE}]},{signal:c.signal,threadId:a,parent:e.id,caller:e.bot===b?u.ROOM_THURSDAY:e.caller,owner:b,contextBudget:await (0,t.roomContextBudget)(a,e.bot),session:(0,k.botBrowserSession)(a,e.bot),steps:f.BOT_REFLECT.steps,send:async()=>(0,n.publicError)("The job is done: nothing is sent from here."),emit:async b=>{"step"===b.type&&await (0,v.addThreadUsage)(a,b.usage),"turn-end"===b.type&&m.logger.info(`${e.bot} looked back on ${a}: ${(0,p.plainText)(b.text).slice(0,300)}`),"error"===b.type&&m.logger.warn(`${e.bot} looking back: ${b.message}`)}})}}finally{N.get(a)===c&&N.delete(a)}}let R=a=>a.reduce((a,b)=>a+("assistant"===b.role&&Array.isArray(b.content)?b.content.filter(a=>"tool-call"===a.type).length:0),0);async function C(a,b,c=!0){let d=new S(a,b),e=null,f=null;try{let g=await (0,v.findThread)(a.threadId);if(!g)return null;if((await (0,t.listParticipantTranscript)(a.threadId,a.bot)).length||await (0,t.joinRoom)(a,b=>(0,h.buildJoinOpening)({bot:a.bot,coordinator:g.bot,job:b,request:g.request})),await (0,t.consumeRoomInbox)(a),c&&(0,u.isCoordinatorSeat)(a.bot,g.bot,a.caller)){let b=await (0,t.roomBoard)(a);b&&await (0,t.appendRoomMessage)(a.threadId,{bot:a.bot,parent:a.id,role:"user",content:b,hidden:!0})}let i=await (0,t.listParticipantTranscript)(a.threadId,a.bot);await (0,r.runBot)({bot:a.bot,messages:(0,r.resumeTranscript)(i,await (0,t.listRoomReceipts)(a.threadId,a.bot,i))},{signal:b,threadId:a.threadId,parent:a.id,caller:a.caller,owner:g.bot,contextBudget:await (0,t.roomContextBudget)(a.threadId,a.bot),compactNow:()=>P.delete(Q(a.threadId,a.bot)),session:(0,k.botBrowserSession)(a.threadId,a.bot),notes:()=>(0,t.consumeRoomInbox)(a),send:async c=>{b.throwIfAborted();let d=c.to.trim();if(d.toLowerCase()===u.ROOM_THURSDAY.toLowerCase())d=u.ROOM_THURSDAY;else{let a=await (0,q.findJobBot)(d);(!a||a.disabled)&&(0,n.publicError)(`No enabled bot named "${d}".`),d=a.name}let e=await (0,t.sendRoomMessage)(a,{...c,to:d});return z(a.threadId).catch(a=>m.logger.error("room message scheduling",a)),e},emit:async c=>{(!b.aborted||"tool-result"===c.type)&&(await d.on(c),"step"===c.type&&await (0,v.addThreadUsage)(a.threadId,c.usage,a.bot===g.bot?{tokens:c.usage.input,budget:c.budget}:null),"compact"===c.type&&await (0,v.addThreadUsage)(a.threadId,c.usage),"turn-end"===c.type&&(e=c),"error"===c.type&&(f={message:c.message,retry:c.retry,refused:c.refused},c.budget&&await (0,t.lowerRoomContextBudget)(a,c.budget)))}})}catch(c){b.aborted||(m.logger.error(`thread ${a.threadId}: ${a.bot} broke`,c),f={message:(0,g.modelErrorToString)(c),retry:!(0,n.isPublicError)(c)&&!(0,g.isProviderRefusal)(c)})}return{ending:e,failure:f}}class S{work;signal;lane;assistant;tool;parts;calls;results;constructor(a,b){this.work=a,this.signal=b,this.lane=(0,p.PromiseChain)(),this.assistant=null,this.tool=null,this.parts={assistant:[],tool:[]},this.calls=new Set,this.results=new Set}async write(a,b,c=!1){let d={bot:this.work.bot,parent:this.work.id,role:b.role,content:b.content,compact:c,note:c};return null===a?(0,t.appendRoomMessage)(this.work.threadId,d):(await (0,v.upsertMessage)(this.work.threadId,a,d),a)}on(a){return this.lane(async()=>{if(!this.signal.aborted||"tool-result"===a.type)if("text"===a.type)this.parts.assistant.push({type:"text",text:a.text}),this.assistant=await this.write(this.assistant,{role:"assistant",content:this.parts.assistant});else if("tool"===a.type){if(this.calls.has(a.id)){let b=this.parts.assistant.find(b=>"tool-call"===b.type&&b.toolCallId===a.id);b&&"tool-call"===b.type&&a.providerOptions&&(b.providerOptions=a.providerOptions,this.assistant=await this.write(this.assistant,{role:"assistant",content:this.parts.assistant}));return}this.calls.add(a.id),this.parts.assistant.push({type:"tool-call",toolCallId:a.id,toolName:a.name,input:a.input,...a.providerExecuted?{providerExecuted:!0}:{},...a.providerOptions?{providerOptions:a.providerOptions}:{}}),this.assistant=await this.write(this.assistant,{role:"assistant",content:this.parts.assistant})}else if("tool-result"===a.type){if(this.results.has(a.id))return;this.results.add(a.id),this.parts.tool.push({type:"tool-result",toolCallId:a.id,toolName:a.name,output:a.error?{type:"error-text",value:String(a.output)}:"string"==typeof a.output?{type:"text",value:a.output}:{type:"json",value:a.output}}),this.tool=await this.write(this.tool,{role:"tool",content:this.parts.tool})}else if("step"===a.type){let b=[this.assistant,this.tool];for(let[c,d]of a.messages.entries())await this.write(b[c]??null,d);let c=b.slice(a.messages.length).filter(a=>null!==a);c.length&&await (0,v.deleteMessages)(this.work.threadId,c),this.assistant=this.tool=null,this.parts={assistant:[],tool:[]}}else"compact"===a.type&&await this.write(null,{role:"user",content:a.text},!0)})}}async function D(a){N.get(a)?.abort();let b=[...M.values()].filter(b=>b.threadId===a);for(let a of b)a.stop.abort();await Promise.all(b.map(a=>a.done))}async function E(a){await O(a,async()=>{let b=await (0,v.findThread)(a);b||(0,n.publicError)("No such thread."),b.endedAt&&(0,n.publicError)("That thread has already ended."),await (0,t.cancelRoom)(a),await (0,v.updateThread)(a,{status:"cancelled",outcome:null,pending:null,seen:!0,endedAt:new Date}),await D(a),await (0,k.closeJobShell)(a)})}async function F(a){return O(a,()=>G(a))}async function G(a,b){let c=await (0,v.findThread)(a);await (0,t.cancelRoom)(a),await D(a),await (0,k.removeJobBrowsers)(a,b);let d=await (0,v.deleteThread)(a);return d&&c&&await (0,k.removeJobScratch)(a,c.label),d}async function H(a){let b,c=a?.getTime(),d=a=>void 0===c||(a.endedAt??a.updatedAt).getTime()<c,e=0,f=!1;for(let a of(await (0,v.listThreadFolders)()))("done"===a.status||"cancelled"===a.status)&&d(a)&&await O(a.id,async()=>{let c=await (0,v.findThread)(a.id);c?.status!=="done"&&c?.status!=="cancelled"||d(c)&&(f||(f=!0,b=await (0,k.listJobBrowsers)()??void 0),await G(a.id,b)&&(e+=1))});return b&&await (0,k.pruneJobFiles)(),e}async function I(){let a=await (0,v.listThreadFolders)(),b=await (0,k.listJobBrowsers)();if(!b?.length)return;let c=Date.now()-f.BROWSER_IDLE.closeAfterMs,d=a=>"running"!==a.status&&a.updatedAt.getTime()<c,e=new Set(b.map(a=>(0,k.threadOfBrowser)(a.name)));for(let c of a)e.has(c.id)&&d(c)&&await O(c.id,async()=>{let a=await (0,v.findThread)(c.id);a&&d(a)&&await (0,k.closeIdleBrowser)(c.id,b)})}async function J(){let a=Date.now()-f.WORKSPACE_KEEP.forMs,b=b=>("done"===b.status||"cancelled"===b.status)&&(b.endedAt??b.updatedAt).getTime()<a,c=new Set(await (0,k.listScratchFolders)()),d=[];for(let a of(await (0,v.listThreadFolders)())){let e=(0,k.jobScratch)(a.id,a.label);c.delete(e)&&b(a)&&await O(a.id,async()=>{let c=await (0,v.findThread)(a.id);c&&b(c)&&(await (0,k.closeHiddenBrowser)(a.id),await (0,k.removeJobScratch)(a.id,a.label),d.push(e))})}return d.push(...await (0,k.removeUnchangedFolders)([...c])),await (0,k.pruneJobFiles)(),d.length&&m.logger.info(`cleared ${d.length} old job folder(s): ${d.join(", ")}`),d}async function K(){for(let a of(await (0,v.listRunningThreadIds)()))await O(a,async()=>{[...M.values()].some(b=>b.threadId===a)||(await (0,v.findThread)(a))?.status==="running"&&await (0,t.pauseRoom)(a,"The server restarted. Resume from the saved conversation.")})}async function L(a){let b=await (0,v.listRunningThreadIds)();await Promise.all(b.map(b=>O(b,async()=>{(await (0,v.findThread)(b))?.status==="running"&&(await D(b),await (0,t.pauseRoom)(b,a))})))}a.s(["answerThread",0,y,"askCompact",0,function(a,b){P.add(Q(a,b))},"cancelThread",0,E,"closeIdleBrowsers",0,I,"pauseThreads",0,L,"removeFinishedThreads",0,H,"removeThread",0,F,"startThread",0,x,"sweepJobFiles",0,J,"sweepThreads",0,K]),c()}catch(a){c(a)}},!1),317844,a=>a.a(async(b,c)=>{try{var d,e=a.i(106450),f=a.i(64203),g=a.i(569572),h=a.i(176668),i=a.i(182248),j=a.i(947950),k=a.i(899284),l=b([j]);[j]=l.then?(await l)():l;class m extends Error{serverName;authorizationUrl;constructor(a,b){super(`MCP server "${a}" requires authorization`),this.serverName=a,this.authorizationUrl=b,this.name="McpAuthRequiredError"}}class n{store;serverName;oauth;callbackUrl;clientName;lastAuthorizationUrl;constructor(a,b,c,d,e){this.store=a,this.serverName=b,this.oauth=c,this.callbackUrl=d,this.clientName=e}get redirectUrl(){return this.callbackUrl}get clientMetadata(){return{client_name:this.clientName,redirect_uris:[this.callbackUrl],grant_types:["authorization_code","refresh_token"],response_types:["code"],token_endpoint_auth_method:"client_secret_post"}}async persist(a){this.oauth={...this.oauth,...a},await this.store.saveOAuth(this.serverName,this.oauth)}clientInformation(){return this.oauth.clientInformation}async saveClientInformation(a){await this.persist({clientInformation:a})}tokens(){return this.oauth.tokens}async saveTokens(a){await this.persist({tokens:a})}authorizationServerInformation(){return this.oauth.authorizationServer}async saveAuthorizationServerInformation(a){await this.persist({authorizationServer:a})}codeVerifier(){if(!this.oauth.codeVerifier)throw Error("No code verifier saved");return this.oauth.codeVerifier}async saveCodeVerifier(a){await this.persist({codeVerifier:a})}state(){return crypto.randomUUID()}async saveState(a){await this.persist({state:a})}storedState(){return this.oauth.state}redirectToAuthorization(a){this.lastAuthorizationUrl=a}async invalidateCredentials(a){let b={...this.oauth};("all"===a||"client"===a)&&(b.clientInformation=void 0),("all"===a||"tokens"===a)&&(b.tokens=void 0),("all"===a||"verifier"===a)&&(b.codeVerifier=void 0),this.oauth=b,await this.store.saveOAuth(this.serverName,b)}}let o=globalThis;o.__thursdayMcpManager&&o.__thursdayMcpManager.dispose(),d={callbackUrl:new URL("/api/mcp/oauth/callback",g.APP_URL).href,clientName:g.APP_NAME},o.__thursdayMcpManager=new class a{store;sessions;connecting;callbackUrl;clientName;constructor(a,b){this.store=a,this.sessions=new Map,this.connecting=new Map,this.callbackUrl=b.callbackUrl,this.clientName=b.clientName??g.APP_NAME}async connect(a){let b=this.connecting.get(a);if(b)return b;let c=this.doConnect(a).finally(()=>this.connecting.delete(a));return this.connecting.set(a,c),c}async callTool(a,b,c,d){let f=await this.ensureClient(a);this.touch(a);try{let e=await f.callTool({name:b,arguments:c,options:d?{signal:d}:void 0});return this.touch(a),e}catch(b){var g;if(b instanceof e.UnauthorizedError)throw await this.closeSession(a),new m(a);throw d?.aborted||(g=b)instanceof Error&&"number"==typeof g.code||await this.closeSession(a,f),b}}async finishAuthorization(a){let b=a.get("state"),c=a.get("code");if(!b||!c)throw Error("OAuth callback is missing code or state");let d=await this.store.findByOAuthState(b);if(!d||!(0,k.isRemoteConfig)(d.config))throw Error("No server is waiting for this authorization");let f=this.providerFor(d),g=await (0,e.auth)(f,{serverUrl:d.config.url,authorizationCode:c,callbackState:b});if("AUTHORIZED"!==g)throw Error(`Token exchange ended in "${g}"`);return await f.invalidateCredentials("verifier"),await this.connect(d.name),d.name}async disconnect(a){await this.closeSession(a)}async dispose(){await Promise.all([...this.sessions.keys()].map(a=>this.closeSession(a)))}async doConnect(a){await this.closeSession(a);let b=await this.store.load(a);if(!b)throw Error(`Unknown MCP server "${a}"`);let c={},d=null;try{let e=await this.openClient(b,c);d=e;let f=(await e.listTools()).tools.map(a=>({name:a.name,description:a.description,inputSchema:a.inputSchema,outputSchema:a.outputSchema}));return this.adopt(a,e),d=null,await this.store.saveConnectionResult(a,{toolInfo:f,lastError:null}),h.logger.info(`mcp "${a}" connected — ${f.length} tools`),{status:"connected",tools:f}}catch(m){var f,g;let j;if(await d?.close().catch(()=>{}),m instanceof e.UnauthorizedError||m?.cause instanceof e.UnauthorizedError){let b=c.href;if(b)return await this.store.saveConnectionResult(a,{toolInfo:[],lastError:"Authorization required — finish sign-in in the opened tab"}),{status:"auth_required",authorizationUrl:b}}let l=(f=m,g=b,j=(0,i.errorToString)(f),(0,k.isRemoteConfig)(g.config)&&!g.oauth?.clientInformation&&/Invalid OAuth error response/.test(j)?`This server does not let an app register itself for sign-in, so it cannot be connected here. It answered: ${j}`:j);throw await this.store.saveConnectionResult(a,{toolInfo:[],lastError:l}),h.logger.warn(`mcp "${a}" failed — ${l}`),Error(l,{cause:m})}}async openClient(a,b={}){if((0,k.isRemoteConfig)(a.config)){let c=this.providerFor(a);try{return await (0,e.createMCPClient)({name:this.clientName,transport:{type:"http",url:a.config.url,headers:a.config.headers,authProvider:c,redirect:"follow"}})}finally{b.href=c.lastAuthorizationUrl?.href}}return(0,e.createMCPClient)({name:this.clientName,transport:new f.Experimental_StdioMCPTransport({command:a.config.command,args:a.config.args,env:a.config.env})})}providerFor(a){return new n(this.store,a.name,a.oauth??{},this.callbackUrl,this.clientName)}async ensureClient(a){let b=this.sessions.get(a);if(b)return b.client;let c=await this.connect(a);if("auth_required"===c.status)throw new m(a,c.authorizationUrl);let d=this.sessions.get(a);if(!d)throw Error(`Session for "${a}" vanished mid-connect`);return d.client}adopt(a,b){this.sessions.set(a,{client:b,idleTimer:this.armIdleTimer(a)})}touch(a){let b=this.sessions.get(a);b&&(clearTimeout(b.idleTimer),b.idleTimer=this.armIdleTimer(a))}armIdleTimer(a){let b=setTimeout(()=>{this.closeSession(a)},g.MCP_IDLE_MS);return b.unref?.(),b}async closeSession(a,b){let c=this.sessions.get(a);c&&(!b||c.client===b)&&(this.sessions.delete(a),clearTimeout(c.idleTimer),await c.client.close().catch(()=>{}))}}({load:a=>(0,j.findServer)(a),saveOAuth:(a,b)=>(0,j.saveOAuthData)(a,b),saveConnectionResult:(a,b)=>null===b.lastError?(0,j.syncServerTools)(a,b.toolInfo):(0,j.saveConnectionError)(a,b.lastError),findByOAuthState:a=>(0,j.findServerByOAuthState)(a)},d);let p=o.__thursdayMcpManager;a.s(["McpAuthRequiredError",0,m,"mcpManager",0,p]),c()}catch(a){c(a)}},!1),947950,a=>a.a(async(b,c)=>{try{var d=a.i(93321),e=a.i(351674),f=a.i(203469),g=a.i(184838),h=a.i(714428),i=a.i(688034),j=a.i(899284),k=a.i(293480),l=a.i(630189),m=b([g]);async function n(a){var b;let[c]=await g.database.select({name:h.mcpServerTable.name,config:h.mcpServerTable.config,lastError:h.mcpServerTable.lastError,toolsSyncedAt:h.mcpServerTable.toolsSyncedAt}).from(h.mcpServerTable).where((0,d.eq)(h.mcpServerTable.name,a));return c?{...c,config:(b=c.config,(0,j.isRemoteConfig)(b)?{url:b.url}:{command:b.command,args:b.args}),tools:await o(a)}:null}async function o(a){return g.database.select({id:h.mcpToolTable.id,name:h.mcpToolTable.name,description:h.mcpToolTable.description,inputSchema:h.mcpToolTable.inputSchema,outputSchema:h.mcpToolTable.outputSchema}).from(h.mcpToolTable).where((0,d.eq)(h.mcpToolTable.serverName,a)).orderBy(h.mcpToolTable.name)}[g]=m.then?(await m)():m;let A=a=>Object.fromEntries(Object.entries(a).map(([a,b])=>[a,(0,l.isSealed)(b)?b:(0,l.sealSecret)(b)])),B=a=>Object.fromEntries(Object.entries(a).map(([a,b])=>[a,(0,l.openSecret)(b)]));function p(a){try{return function(a){let{sealed:b,...c}=a;return b?{...JSON.parse((0,l.openSecret)(b)),...c}:c}(a)}catch(a){if(a instanceof l.UnreadableSecret)return null;throw a}}function q(a){let b,c,d=function(a){try{return(0,j.isRemoteConfig)(a)?a.headers?{...a,headers:B(a.headers)}:a:a.env?{...a,env:B(a.env)}:a}catch(a){if(a instanceof l.UnreadableSecret)return null;throw a}}(a.config);d||(0,k.publicError)((b=a.name,(0,i.lostWords)(`The key saved for "${b}"`,"Add it again under the same name, with its key: bots keep the tools they pinned.")));let e=a.oauth&&p(a.oauth);return a.oauth&&!e&&(0,k.publicError)((c=a.name,(0,i.lostWords)(`The sign-in saved for "${c}"`,"Reconnect to sign in again."))),{...a,config:d,oauth:e}}async function r(a){let[b]=await g.database.select({oauth:h.mcpServerTable.oauth}).from(h.mcpServerTable).where((0,d.eq)(h.mcpServerTable.name,a));return!(!b?.oauth||p(b.oauth))&&(await g.database.update(h.mcpServerTable).set({oauth:{state:b.oauth.state,authorizationServer:b.oauth.authorizationServer}}).where((0,d.eq)(h.mcpServerTable.name,a)),C(),!0)}async function s(a){let[b]=await g.database.select().from(h.mcpServerTable).where((0,d.eq)(h.mcpServerTable.name,a));return b?q(b):null}let C=()=>f.appEvents.emit({type:"mcp"});async function t(a){var b;let c=(b=a.config,(0,j.isRemoteConfig)(b)?b.headers?{...b,headers:A(b.headers)}:b:b.env?{...b,env:A(b.env)}:b);await g.database.insert(h.mcpServerTable).values({name:a.name,config:c,lastError:null}).onConflictDoUpdate({target:h.mcpServerTable.name,set:{config:c,lastError:null}}),C()}async function u(a,b){await g.database.transaction(async c=>{b.length&&await c.insert(h.mcpToolTable).values(b.map(b=>({...b,serverName:a}))).onConflictDoUpdate({target:[h.mcpToolTable.serverName,h.mcpToolTable.name],set:{description:v(h.mcpToolTable.description),inputSchema:v(h.mcpToolTable.inputSchema),outputSchema:v(h.mcpToolTable.outputSchema)}}),await c.delete(h.mcpToolTable).where(b.length?(0,d.and)((0,d.eq)(h.mcpToolTable.serverName,a),(0,d.notInArray)(h.mcpToolTable.name,b.map(a=>a.name))):(0,d.eq)(h.mcpToolTable.serverName,a)),await c.update(h.mcpServerTable).set({lastError:null,toolsSyncedAt:new Date}).where((0,d.eq)(h.mcpServerTable.name,a))}),C()}function v(a){return e.sql.raw(`excluded."${a.name}"`)}async function w(a,b){await g.database.update(h.mcpServerTable).set({lastError:b}).where((0,d.eq)(h.mcpServerTable.name,a)),C()}async function x(a,b){await g.database.update(h.mcpServerTable).set({oauth:b&&function(a){let{state:b,authorizationServer:c,...d}=a,e=Object.values(d).some(a=>void 0!==a);return{state:b,authorizationServer:c,...e&&{sealed:(0,l.sealSecret)(JSON.stringify(d))}}}(b)}).where((0,d.eq)(h.mcpServerTable.name,a)),C()}async function y(a){let[b]=await g.database.select().from(h.mcpServerTable).where(e.sql`json_extract(${h.mcpServerTable.oauth}, '$.state') = ${a}`);return b?q(b):null}async function z(a){let b=await g.database.delete(h.mcpServerTable).where((0,d.eq)(h.mcpServerTable.name,a)).returning();return b.length>0&&C(),b.length>0}a.s(["deleteServer",0,z,"findPinnedTools",0,function(a){return g.database.select({server:h.mcpToolTable.serverName,name:h.mcpToolTable.name,description:h.mcpToolTable.description,inputSchema:h.mcpToolTable.inputSchema}).from(h.botMcpToolTable).innerJoin(h.mcpToolTable,(0,d.eq)(h.botMcpToolTable.toolId,h.mcpToolTable.id)).where((0,d.eq)(h.botMcpToolTable.botName,a)).orderBy(h.mcpToolTable.serverName,h.mcpToolTable.name)},"findServer",0,s,"findServerByOAuthState",0,y,"findServerDetail",0,n,"findToolSchemas",0,function(a,b){return b.length?g.database.select({name:h.mcpToolTable.name,description:h.mcpToolTable.description,inputSchema:h.mcpToolTable.inputSchema}).from(h.mcpToolTable).where((0,d.and)((0,d.eq)(h.mcpToolTable.serverName,a),(0,d.inArray)(h.mcpToolTable.name,b))).orderBy(h.mcpToolTable.name):Promise.resolve([])},"forgetLostSignIn",0,r,"listServerNames",0,function(){return g.database.select({name:h.mcpServerTable.name}).from(h.mcpServerTable).orderBy(h.mcpServerTable.name)},"listToolNames",0,function(a){let b=g.database.select({server:h.mcpToolTable.serverName,name:h.mcpToolTable.name}).from(h.mcpToolTable);return a?b.where((0,d.eq)(h.mcpToolTable.serverName,a)).orderBy(h.mcpToolTable.name):b.orderBy(h.mcpToolTable.serverName,h.mcpToolTable.name)},"saveConnectionError",0,w,"saveOAuthData",0,x,"syncServerTools",0,u,"upsertServer",0,t]),c()}catch(a){c(a)}},!1),899284,a=>{"use strict";var b=a.i(794219),c=a.i(706210);let d=b.object({url:b.url(),headers:b.record(b.string(),b.string()).optional()}),e=b.object({command:b.string().min(1),args:b.array(b.string()).optional(),env:b.record(b.string(),b.string()).optional()}),f=b.union([d,e]),g=b.object({name:b.string(),description:b.string().optional(),inputSchema:b.looseObject({}).optional(),outputSchema:b.looseObject({}).optional()});b.object({clientInformation:b.looseObject({}).optional(),tokens:b.looseObject({}).optional(),authorizationServer:b.looseObject({}).optional(),codeVerifier:b.string().optional(),state:b.string().optional()});let h=b.object({name:b.string().min(1).max(40),config:f,toolCount:b.number().int(),lastError:b.string().nullish()}),i=g.extend({id:b.number().int(),description:b.string().nullish()});h.omit({toolCount:!0}).extend({tools:i.array().default([]),toolsSyncedAt:c.DateLikeSchema});let j=b.object({name:b.string().min(1,"Name is required").max(40).regex(/^[a-zA-Z0-9_-]+$/,"Only letters, numbers, - and _ are allowed"),config:f});b.union([b.object({mcpServers:b.record(b.string(),f)}),b.record(b.string(),f)]),a.s(["MCPServerFormSchema",0,j,"isRemoteConfig",0,function(a){return"url"in a}])},986743,a=>a.a(async(b,c)=>{try{var d=a.i(93321),e=a.i(530385),f=a.i(351674),g=a.i(203469);a.i(569572);var h=a.i(184838),i=a.i(714428),j=a.i(661210),k=b([h]);[h]=k.then?(await k)():k;let B=()=>g.appEvents.emit({type:"memory"});async function l(a,b,c={}){let[d]=await h.database.insert(i.memoryNoteTable).values({path:a,description:b,ownedByUser:c.ownedByUser??!1}).onConflictDoNothing({target:i.memoryNoteTable.path}).returning();return d&&B(),d??null}async function m(a,b){let[c]=await h.database.update(i.memoryNoteTable).set({...b,updatedAt:new Date}).where((0,d.eq)(i.memoryNoteTable.id,a)).returning();return c&&B(),c??null}async function n(a){let b=await h.database.delete(i.memoryNoteTable).where((0,d.eq)(i.memoryNoteTable.id,a)).returning({id:i.memoryNoteTable.id});return b.length>0&&B(),b.length>0}async function o(a,b){let[c]=await h.database.insert(i.memoryFactTable).values({noteId:a,text:b,source:"user"}).returning();return await r(a),B(),c}async function p(a,b,c){let e=await h.database.transaction(async e=>{let f=await e.update(i.memoryFactTable).set({isLatest:!1}).where((0,d.and)((0,d.eq)(i.memoryFactTable.id,b),(0,d.eq)(i.memoryFactTable.noteId,a),(0,d.eq)(i.memoryFactTable.isLatest,!0))).returning({id:i.memoryFactTable.id});if(0===f.length)return null;let[g]=await e.insert(i.memoryFactTable).values({noteId:a,text:c,source:"user"}).returning();return await e.update(i.memoryNoteTable).set({updatedAt:new Date}).where((0,d.eq)(i.memoryNoteTable.id,a)),g});return e&&B(),e}async function q(a,b){let c=await h.database.delete(i.memoryFactTable).where((0,d.and)((0,d.eq)(i.memoryFactTable.id,b),(0,d.eq)(i.memoryFactTable.noteId,a))).returning({id:i.memoryFactTable.id});return c.length>0&&(await r(a),B()),c.length>0}function r(a){return h.database.update(i.memoryNoteTable).set({updatedAt:new Date}).where((0,d.eq)(i.memoryNoteTable.id,a))}async function s(){for(let a of j.MEMORY_ALWAYS_LISTED){let b=j.MEMORY_PATHS.find(b=>b.path===a)?.of??a;await h.database.insert(i.memoryNoteTable).values({path:a,description:b}).onConflictDoUpdate({target:i.memoryNoteTable.path,set:{description:b}})}}async function t(a,b={}){let c=[...new Set(a.map(a=>a.trim()).filter(Boolean))];if(!c.length)return{notes:[],missing:[]};let g=await h.database.select({id:i.memoryNoteTable.id,path:i.memoryNoteTable.path,description:i.memoryNoteTable.description}).from(i.memoryNoteTable).where((0,d.inArray)(i.memoryNoteTable.path,c)),j=new Map(g.map(a=>[a.path,a])),k=c.filter(a=>!j.has(a));if(!g.length)return{notes:[],missing:k};let l=g.map(a=>a.id),m=await h.database.select({id:i.memoryFactTable.id,noteId:i.memoryFactTable.noteId,text:i.memoryFactTable.text,source:i.memoryFactTable.source,createdAt:i.memoryFactTable.createdAt,saidAt:i.callTable.startedAt}).from(i.memoryFactTable).leftJoin(i.callTable,(0,d.eq)(i.memoryFactTable.callId,i.callTable.id)).where((0,d.and)((0,d.eq)(i.memoryFactTable.isLatest,!0),(0,d.inArray)(i.memoryFactTable.noteId,l))).orderBy((0,e.asc)(i.memoryFactTable.id));return!1!==b.touch&&await h.database.update(i.memoryNoteTable).set({hits:f.sql`${i.memoryNoteTable.hits} + 1`,lastReadAt:new Date}).where((0,d.inArray)(i.memoryNoteTable.id,l)),{notes:c.flatMap(a=>{let b=j.get(a);return b?[{path:b.path,description:b.description,facts:m.filter(a=>a.noteId===b.id).map(a=>({id:a.id,text:a.text,...a.saidAt?{saidAt:a.saidAt}:{}}))}]:[]}),missing:k}}(0,d.inArray)(i.memoryNoteTable.path,j.MEMORY_ALWAYS_LISTED);let C=a=>a.toLowerCase().replace(/[\s.,!?…·'"`]/g,"");async function u(a,b,c,e,f){let g=await a.select({id:i.memoryFactTable.id,text:i.memoryFactTable.text}).from(i.memoryFactTable).where((0,d.and)((0,d.eq)(i.memoryFactTable.noteId,b),(0,d.eq)(i.memoryFactTable.isLatest,!0))),h=new Map(g.map(a=>[C(a.text),a]));for(let g of c){let c=g.text.trim();if(!c)continue;if(null!=g.replaces){let[j]=await a.select({id:i.memoryFactTable.id,text:i.memoryFactTable.text}).from(i.memoryFactTable).where((0,d.and)((0,d.eq)(i.memoryFactTable.id,g.replaces),(0,d.eq)(i.memoryFactTable.noteId,b),(0,d.eq)(i.memoryFactTable.isLatest,!0)));if(j){if(C(j.text)===C(c))continue;await a.update(i.memoryFactTable).set({isLatest:!1}).where((0,d.eq)(i.memoryFactTable.id,j.id)),h.delete(C(j.text));let[g]=await a.insert(i.memoryFactTable).values({noteId:b,text:c,source:e,callId:f}).returning({id:i.memoryFactTable.id});h.set(C(c),{...g,text:c});continue}}if(h.has(C(c)))continue;let[j]=await a.insert(i.memoryFactTable).values({noteId:b,text:c,source:e,callId:f}).returning({id:i.memoryFactTable.id});h.set(C(c),{...j,text:c})}await a.update(i.memoryNoteTable).set({updatedAt:new Date}).where((0,d.eq)(i.memoryNoteTable.id,b))}async function v(a,b,c,e=null){let f=a.trim();if(!await h.database.transaction(async a=>{let[g]=await a.select({id:i.memoryNoteTable.id}).from(i.memoryNoteTable).where((0,d.eq)(i.memoryNoteTable.path,f));return!!g&&(await u(a,g.id,b,c,e),!0)}))return null;let{notes:g}=await t([f],{touch:!1});return B(),g[0]??null}async function w(a,b,c,d,e=null){let f=a.trim();if(!await h.database.transaction(async a=>{let[g]=await a.insert(i.memoryNoteTable).values({path:f,description:b}).onConflictDoNothing({target:i.memoryNoteTable.path}).returning({id:i.memoryNoteTable.id});return!!g&&(await u(a,g.id,c,d,e),!0)}))return null;let{notes:g}=await t([f],{touch:!1});return B(),g[0]??null}async function x(a,b){let[c]=await h.database.update(i.memoryNoteTable).set({description:b,updatedAt:new Date}).where((0,d.eq)(i.memoryNoteTable.path,a.trim())).returning({id:i.memoryNoteTable.id});return c&&B(),!!c}async function y(){let[a,b]=await Promise.all([h.database.select({id:i.memoryNoteTable.id,path:i.memoryNoteTable.path,description:i.memoryNoteTable.description,hits:i.memoryNoteTable.hits,lastReadAt:i.memoryNoteTable.lastReadAt,createdAt:i.memoryNoteTable.createdAt}).from(i.memoryNoteTable),h.database.select({noteId:i.memoryFactTable.noteId,count:f.sql`count(*)`}).from(i.memoryFactTable).where((0,d.eq)(i.memoryFactTable.isLatest,!0)).groupBy(i.memoryFactTable.noteId)]),c=new Map(b.map(a=>[a.noteId,a.count]));return a.filter(a=>(0,j.isAlwaysListed)(a.path)||(c.get(a.id)??0)>0).sort((a,b)=>Number((0,j.isAlwaysListed)(b.path))-Number((0,j.isAlwaysListed)(a.path))||(0,j.recallScore)(b)-(0,j.recallScore)(a)).map(a=>({path:a.path,description:a.description,factCount:c.get(a.id)??0,lastSeenAt:a.lastReadAt??a.createdAt}))}async function z(a){let b=await h.database.transaction(async b=>{let c=await b.delete(i.memoryFactTable).where((0,d.eq)(i.memoryFactTable.id,a)).returning({noteId:i.memoryFactTable.noteId});if(0===c.length)return null;let e=c[0].noteId,[g]=await b.select({path:i.memoryNoteTable.path,ownedByUser:i.memoryNoteTable.ownedByUser}).from(i.memoryNoteTable).where((0,d.eq)(i.memoryNoteTable.id,e)),[h]=await b.select({count:f.sql`count(*)`}).from(i.memoryFactTable).where((0,d.and)((0,d.eq)(i.memoryFactTable.noteId,e),(0,d.eq)(i.memoryFactTable.isLatest,!0)));return h?.count!==0||!g||g.ownedByUser||(0,j.isAlwaysListed)(g.path)?(await b.update(i.memoryNoteTable).set({updatedAt:new Date}).where((0,d.eq)(i.memoryNoteTable.id,e)),{path:g?.path??"",noteGone:!1}):(await b.delete(i.memoryNoteTable).where((0,d.eq)(i.memoryNoteTable.id,e)),{path:g.path,noteGone:!0})});return b&&B(),b}async function A(){let a=await h.database.delete(i.memoryNoteTable).returning({id:i.memoryNoteTable.id});return await s(),a.length>0&&B(),a.length}a.s(["addFact",0,o,"createNote",0,l,"createNoteWithFacts",0,w,"deleteAllNotes",0,A,"deleteNote",0,n,"describeNote",0,x,"forgetFact",0,q,"forgetFactById",0,z,"listNoteIndex",0,y,"readNotes",0,t,"reviseFact",0,p,"updateNote",0,m,"writeFacts",0,v]),c()}catch(a){c(a)}},!1),661210,a=>{"use strict";var b=a.i(794219),c=a.i(569572),d=a.i(706210);let e=b.enum(["user","call","bot"]),f=b.string().trim().min(1,"A note needs a line saying what it is about").max(c.MEMORY_LIMITS.descriptionChars,`A note's line is one line: at most ${c.MEMORY_LIMITS.descriptionChars} characters`),g=b.object({id:b.number(),text:b.string(),source:e.nullish(),createdAt:d.DateLikeSchema});b.object({id:b.number(),path:b.string(),description:b.string(),ownedByUser:b.boolean(),hits:b.number(),lastReadAt:d.DateLikeSchema.nullable(),createdAt:d.DateLikeSchema,updatedAt:d.DateLikeSchema,factCount:b.number(),facts:g.array()});let h="preferences",i=[{path:"profile",of:"The user themselves — name, age, what they do, where they live, whatever else says who they are"},{path:h,of:"How they want things done, and said — read whole on every call, so a rule for a particular situation goes here too"},{path:"people/",of:"Someone in their life, and what matters about them"},{path:"projects/",of:"Something with an end — a trip, a purchase, a deadline, a thing being built"},{path:"topics/",of:"Something ongoing that keeps coming back"}],j=i.filter(a=>!a.path.endsWith("/")).map(a=>a.path),k=i.filter(a=>a.path.endsWith("/")).map(a=>a.path.slice(0,-1)),l=RegExp(`^(?:${j.join("|")}|(?:${k.join("|")})/.+)$`);a.s(["MEMORY_ALWAYS_LISTED",0,j,"MEMORY_PATHS",0,i,"NoteLineSchema",0,f,"PREFERENCES_NOTE",0,h,"isAlwaysListed",0,a=>j.includes(a),"isMemoryPath",0,a=>l.test(a),"recallScore",0,function(a){let b=(0,d.toDate)(a.lastReadAt??a.createdAt),c=Math.max(0,(Date.now()-b.getTime())/864e5);return(a.hits+1)/(1+c)}])},936292,a=>{"use strict";var b=a.i(569572);async function c(a,c){if(null==a||!Number.isFinite(a))return!1;let d=Math.max(0,1e3*a);return!(c>=b.REACH.rateRetries)&&!(d>b.REACH.rateWaitMs)&&(await new Promise(a=>setTimeout(a,d)),!0)}a.s(["ChannelRefusal",0,class extends Error{token;constructor(a,b=0){super(a),this.token=b}},"waitOut",0,c])},465584,a=>{"use strict";function b(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var c=b(),d={exec:()=>null};function e(a){let b=[];return c=>{let d=Math.max(0,Math.min(3,c-1)),e=b[d];return e||(e=a(d),b[d]=e),e}}function f(a,b=""){let c="string"==typeof a?a:a.source,d={replace:(a,b)=>{let e="string"==typeof b?b:b.source;return e=e.replace(h.caret,"$1"),c=c.replace(a,e),d},getRegex:()=>new RegExp(c,b)};return d}var g=((a="")=>{try{return!!RegExp("(?<=1)(?<!1)"+a)}catch{return!1}})(),h={codeRemoveIndent:/^(?: {0,3}\t| {1,4})/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,endingSpaceTabChar:/[ \t]$/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,leadingSpaceTab:/^[ \t]+/,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,numericCharacterReference:/&#(?:(\d{1,7})|[Xx]([A-Fa-f0-9]{1,6}));/g,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:a=>RegExp(`^( {0,3}${a})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:e(a=>RegExp(`^ {0,${a}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`)),hrRegex:e(a=>RegExp(`^ {0,${a}}((?:-[ ]*){3,}|(?:_[ ]*){3,}|(?:\\*[ ]*){3,})(?:\\n+|$)`)),fencesBeginRegex:e(a=>RegExp(`^ {0,${a}}(?:\`\`\`|~~~)`)),headingBeginRegex:e(a=>RegExp(`^ {0,${a}}#`)),htmlBeginRegex:e(a=>RegExp(`^ {0,${a}}(?:</?(?:${r})(?: +|$|/?>)|<(?:script|pre|style|textarea|!--))`,"i")),blockquoteBeginRegex:e(a=>RegExp(`^ {0,${a}}>`))},i=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,j=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,k=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |fences|blockquote|heading|hr|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,l=f(k).replace(/bull/g,j).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}(?:\s|$)/).replace(/hr/g,/ {0,3}(?:(?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),m=f(k).replace(/bull/g,j).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}(?:\s|$)/).replace(/hr/g,/ {0,3}(?:(?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),n=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table|[ \t]+\n)[^\n]+)*)/,o=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,p=f(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",o).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),q=f(/^(bull)([ \t][^\n]*?)?(?:\n|$)/).replace(/bull/g,j).getRegex(),r="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",s=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,t=f("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n*|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>[^\\n]*\\n*|$)|<![A-Z][\\s\\S]*?(?:>[^\\n]*\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>[^\\n]*\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][a-z0-9-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][a-z0-9-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",s).replace("tag",r).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),u=a=>f(n).replace("hr",i).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace("list",a).replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",r).getRegex(),v=u(/ {0,3}(?:[*+-]|1[.)])[ \t]+[^ \t\n]/),w=u(/ {0,3}(?:[*+-]|\d{1,9}[.)])(?:[ \t]|\n|$)/),x={blockquote:f(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",w).getRegex(),code:/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,def:p,fences:/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,hr:i,html:t,lheading:l,list:q,newline:/^(?:[ \t]*(?:\n|$))+/,paragraph:v,table:d,text:/^[^\n]+/},y=f("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",i).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",r).getRegex(),z={...x,lheading:m,table:y,paragraph:f(n).replace("hr",i).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",y).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]+[^ \\t\\n]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",r).getRegex()},A={...x,html:f("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:\"[^\"]*\"|'[^']*'|\\s[^'\"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",s).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:d,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:f(n).replace("hr",i).replace("heading",` *#{1,6} *[^
|
|
145
148
|
]`).replace("lheading",l).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},B=/^( {2,}|\\)\n(?!\s*$)[ \t]*/,C=/[\p{P}\p{S}]/u,D=/[\s\p{P}\p{S}]/u,E=/[^\s\p{P}\p{S}]/u,F=f(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,D).getRegex(),G=/(?!~)[\p{P}\p{S}]/u,H=f(/link|precode-code|html/,"g").replace("link",/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",g?"(?<!`)()":"(^^|[^`])").replace("code",/(?<b>`+)[^`]+\k<b>(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),I=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,J=f(I,"u").replace(/punct/g,C).getRegex(),K=f(I,"u").replace(/punct/g,G).getRegex(),L=f(/^(?:\*+(?:((?!\*)(?!openQuote)punct)|([^\s*]))?)|^_+(?:((?!_)(?!openQuote)punct)|([^\s_]))?/,"u").replace(/openQuote/g,/[\p{Pi}\p{Ps}"']/u).replace(/punct/g,C).getRegex(),M="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",N=f(M,"gu").replace(/notPunctSpace/g,E).replace(/punctSpace/g,D).replace(/punct/g,C).getRegex(),O=f(M,"gu").replace(/notPunctSpace/g,/(?:[^\s\p{P}\p{S}]|~)/u).replace(/punctSpace/g,/(?!~)[\s\p{P}\p{S}]/u).replace(/punct/g,G).getRegex(),P=f("^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)[\\s](\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|(?:(?!\\*)punct|notPunctSpace)(\\*+)(?!\\*)(?=notPunctSpace)","gu").replace(/notPunctSpace/g,E).replace(/punctSpace/g,D).replace(/punct/g,C).getRegex(),Q=f("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,E).replace(/punctSpace/g,D).replace(/punct/g,C).getRegex(),R=f("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)[\\s](_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)|(?:(?!_)punct|notPunctSpace)(_+)(?!_)(?=notPunctSpace)","gu").replace(/notPunctSpace/g,E).replace(/punctSpace/g,D).replace(/punct/g,C).getRegex(),S=f(/^~~?(?:((?!~)punct)|[^\s~])/,"u").replace(/punct/g,C).getRegex(),T=f("^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)","gu").replace(/notPunctSpace/g,E).replace(/punctSpace/g,D).replace(/punct/g,C).getRegex(),U=f(/\\(punct)/,"gu").replace(/punct/g,C).getRegex(),V=f(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),W=f(s).replace("(?:-->|$)","-->").getRegex(),X=f("^comment|^</[a-zA-Z][a-zA-Z0-9-]*\\s*>|^<[a-zA-Z][a-zA-Z0-9-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment",W).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),Y=/\[(?:\\[\s\S]|[^\[\]\\])*\]/,Z=f(/(?:\[(?:brackets|\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/).replace("brackets",Y).getRegex(),$=f(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace("label",Z).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]+|(?=\))/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),_=f(/^!?\[(label)\]\[(ref)\]/).replace("label",Z).replace("ref",o).getRegex(),aa=f(/^!?\[(ref)\](?:\[\])?/).replace("ref",o).getRegex(),ab=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\]){1,999}/,ac=f(/(?:[^\[\]\\`]*(?:\[(?:brackets|\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\]))){0,999}?[^\[\]\\`]*?/).replace("brackets",Y).getRegex(),ad=f("reflink|nolink(?!\\()","g").replace("reflink",f(/^!?\[(label)\]\[(ref)\]/).replace("label",ac).replace("ref",ab).getRegex()).replace("nolink",f(/^!?\[(ref)\](?:\[\])?/).replace("ref",ab).getRegex()).getRegex(),ae=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,af=f(/(?:mailto:email|xmpp:email(?:\/[A-Za-z0-9@.]+)?)/).replace(/email/g,/[A-Za-z0-9._+-]+@[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![\w-])/).getRegex(),ag={_backpedal:d,anyPunctuation:U,autolink:V,blockSkip:H,br:B,code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,del:d,delLDelim:d,delRDelim:d,emStrongLDelim:J,emStrongRDelimAst:N,emStrongRDelimUnd:Q,escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,link:$,nolink:aa,punctuation:F,reflink:_,reflinkSearch:ad,tag:X,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,url:d},ah={...ag,emStrongLDelim:L,emStrongRDelimAst:P,emStrongRDelimUnd:R,link:f(/^!?\[(label)\]\((.*?)\)/).replace("label",Z).getRegex(),reflink:f(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",Z).getRegex()},ai={...ag,emStrongRDelimAst:O,emStrongLDelim:K,delLDelim:S,delRDelim:T,url:f(/^emailProtocol|^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("emailProtocol",af).replace("protocol",ae).replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![\w-])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:f(/^(?:[^a-zA-Z0-9](?=emailProtocol)|(`+|~+|[^`~])(?:(?=[`~])|(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9](?=emailProtocol)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@))))/).replace("protocol",ae).replace(/emailProtocol/g,/(?:mailto|xmpp):/).getRegex()},aj={...ai,br:f(B).replace("{2,}","*").getRegex(),text:f(ai.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},ak={normal:x,gfm:z,pedantic:A},al={normal:ag,gfm:ai,breaks:aj,pedantic:ah},am={"&":"&","<":"<",">":">",'"':""","'":"'"},an=a=>am[a];function ao(a,b){if(b){if(h.escapeTest.test(a))return a.replace(h.escapeReplace,an)}else if(h.escapeTestNoEncode.test(a))return a.replace(h.escapeReplaceNoEncode,an);return a}function ap(a){try{a=encodeURI(a).replace(h.percentDecode,"%")}catch{return null}return a}function aq(a,b){let c=a.replace(h.findPipe,(a,b,c)=>{let d=!1,e=b;for(;--e>=0&&"\\"===c[e];)d=!d;return d?"|":" |"}).split(h.splitPipe),d=0;if(c[0].trim()||c.shift(),c.length>0&&!c.at(-1)?.trim()&&c.pop(),b)if(c.length>b)c.splice(b);else for(;c.length<b;)c.push("");for(;d<c.length;d++)c[d]=c[d].trim().replace(h.slashPipe,"|");return c}function ar(a,b,c){let d=a.length;if(0===d)return"";let e=0;for(;e<d;){let f=a.charAt(d-e-1);if(f!==b||c)if(f!==b&&c)e++;else break;else e++}return a.slice(0,d-e)}function as(a){let b=a.split(`
|
|
146
149
|
`),c=b.length-1;for(;c>=0&&h.blankLine.test(b[c]);)c--;return b.length-c<=2?a:b.slice(0,c+1).join(`
|
|
147
150
|
`)}function at(a){return a.trim().toLowerCase().toUpperCase().toLowerCase()}function au(a,b=0){let c=b,d="";for(let b of a)if(" "===b){let a=4-c%4;d+=" ".repeat(a),c+=a}else d+=b,c++;return d}function av(a,b,c,d,e){let f=b.href,g=b.title||null,h=a[1].replace(e.other.outputLinkReplace,"$1"),i="!"===a[0].charAt(0);d.state.inLink=!0;let j=d.state.linkEmitted,k=d.state.inRawBlock;d.state.linkEmitted=!1;let l=d.inlineTokens(h),m=d.state.linkEmitted;if(d.state.linkEmitted=j,d.state.inLink=!1,!i){if(m){d.state.inRawBlock=k;return}d.state.linkEmitted=!0}return{type:i?"image":"link",raw:c,href:f,title:g,text:h,tokens:l}}function aw(a,b,c,d){if(!b.includes("<"))return!1;for(let e=0;e<b.length;e++){if("\\"===b[e]){e++;continue}if("`"===b[e]){let a=d.inline.code.exec(b.slice(e));if(a){e+=a[0].length-1;continue}}if("<"!==b[e])continue;let f=a.slice(c+e),g=d.inline.tag.exec(f)||d.inline.autolink.exec(f);if(g){if(g[0].length>b.length-e)return!0;e+=g[0].length-1}}return!1}var ax=class{options;rules;lexer;constructor(a){this.options=a||c}space(a){let b=this.rules.block.newline.exec(a);if(b&&b[0].length>0)return{type:"space",raw:b[0]}}code(a){let b=this.rules.block.code.exec(a);if(b){let a=this.options.pedantic?b[0]:as(b[0]),c=a.replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:a,codeBlockStyle:"indented",text:c}}}fences(a){let b=this.rules.block.fences.exec(a);if(b){let a=b[0],c=function(a,b,c){let d=a.match(c.other.indentCodeCompensation);if(null===d)return b;let e=d[1];return b.split(`
|
|
@@ -248,7 +251,7 @@ ${a}
|
|
|
248
251
|
${c}:`]}}({prompt:a}),w=[...u??[],...l??[]];return{args:{model:this.modelId,echo:s.echo,logit_bias:s.logitBias,suffix:s.suffix,user:s.user,max_tokens:d,temperature:e,top_p:h,frequency_penalty:j,presence_penalty:k,seed:n,...o?.[this.providerOptionsName],...o?.[f(this.providerOptionsName)],prompt:t,stop:w.length>0?w:void 0},warnings:r}}async doGenerate(a){let{args:b,warnings:d}=await this.getArgs(a),{responseHeaders:e,value:f,rawValue:g}=await (0,c.postJsonToApi)({url:this.config.url({path:"/completions",modelId:this.modelId}),headers:(0,c.combineHeaders)(this.config.headers?.(),a.headers),body:b,failedResponseHandler:this.failedResponseHandler,successfulResponseHandler:(0,c.createJsonResponseHandler)(y),abortSignal:a.abortSignal,fetch:this.config.fetch}),h=f.choices[0],i=[];return null!=h.text&&h.text.length>0&&i.push({type:"text",text:h.text}),{content:i,usage:t(f.usage),finishReason:{unified:u(h.finish_reason),raw:h.finish_reason},request:{body:b},response:{...(0,c.createLanguageModelResponseMetadata)(f),headers:e,body:g},warnings:d}}async doStream(a){let b,{args:d,warnings:e}=await this.getArgs(a),f={...d,stream:!0,stream_options:this.config.includeUsage?{include_usage:!0}:void 0},{responseHeaders:g,value:h}=await (0,c.postJsonToApi)({url:this.config.url({path:"/completions",modelId:this.modelId}),headers:(0,c.combineHeaders)(this.config.headers?.(),a.headers),body:f,failedResponseHandler:this.failedResponseHandler,successfulResponseHandler:(0,c.createEventSourceResponseHandler)(this.chunkSchema),abortSignal:a.abortSignal,fetch:this.config.fetch}),i={unified:"other",raw:void 0},j=!0;return{stream:h.pipeThrough(new TransformStream({start(a){a.enqueue({type:"stream-start",warnings:e})},transform(d,e){if(a.includeRawChunks&&e.enqueue({type:"raw",rawValue:d.rawValue}),!d.success){i={unified:"error",raw:void 0},e.enqueue({type:"error",error:d.error});return}let f=d.value;if("error"in f){i={unified:"error",raw:void 0},e.enqueue({type:"error",error:f.error});return}j&&(j=!1,e.enqueue({type:"response-metadata",...(0,c.createLanguageModelResponseMetadata)(f)}),e.enqueue({type:"text-start",id:"0"})),null!=f.usage&&(b=f.usage);let g=f.choices[0];g?.finish_reason!=null&&(i={unified:u(g.finish_reason),raw:g.finish_reason??void 0}),g?.text!=null&&e.enqueue({type:"text-delta",id:"0",delta:g.text})},flush(a){j||a.enqueue({type:"text-end",id:"0"}),a.enqueue({type:"finish",finishReason:i,usage:t(b)})}})),request:{body:f},response:{headers:g}}}};let x=e.z.looseObject({prompt_tokens:e.z.number(),completion_tokens:e.z.number(),total_tokens:e.z.number()}),y=e.z.object({id:e.z.string().nullish(),created:e.z.number().nullish(),model:e.z.string().nullish(),choices:e.z.array(e.z.object({text:e.z.string(),finish_reason:e.z.string()})),usage:x.nullish()}),z=a=>e.z.union([e.z.object({id:e.z.string().nullish(),created:e.z.number().nullish(),model:e.z.string().nullish(),choices:e.z.array(e.z.object({text:e.z.string(),finish_reason:e.z.string().nullish(),index:e.z.number()})),usage:x.nullish()}),a]),A=e.z.object({dimensions:e.z.number().optional(),user:e.z.string().optional()});var B=class a{get provider(){return this.config.provider}get maxEmbeddingsPerCall(){return this.config.maxEmbeddingsPerCall??2048}get supportsParallelCalls(){return this.config.supportsParallelCalls??!0}static[d.WORKFLOW_SERIALIZE](a){return(0,c.serializeModelOptions)({modelId:a.modelId,config:a.config})}static[d.WORKFLOW_DESERIALIZE](b){return new a(b.modelId,b.config)}constructor(a,b){this.specificationVersion="v4",this.modelId=a,this.config=b}get providerOptionsName(){return this.config.provider.split(".")[0].trim()}async doEmbed({values:a,headers:d,abortSignal:e,providerOptions:f}){let i=[],j=await (0,c.parseProviderOptions)({provider:"openai-compatible",providerOptions:f,schema:A});null!=j&&i.push({type:"deprecated",setting:"providerOptions key 'openai-compatible'",message:"Use 'openaiCompatible' instead."}),g({rawName:this.providerOptionsName,providerOptions:f,warnings:i});let k=Object.assign(j??{},await (0,c.parseProviderOptions)({provider:"openaiCompatible",providerOptions:f,schema:A})??{},await (0,c.parseProviderOptions)({provider:this.providerOptionsName,providerOptions:f,schema:A})??{});if(a.length>this.maxEmbeddingsPerCall)throw new b.TooManyEmbeddingValuesForCallError({provider:this.provider,modelId:this.modelId,maxEmbeddingsPerCall:this.maxEmbeddingsPerCall,values:a});let{responseHeaders:l,value:m,rawValue:n}=await (0,c.postJsonToApi)({url:this.config.url({path:"/embeddings",modelId:this.modelId}),headers:(0,c.combineHeaders)(this.config.headers?.(),d),body:{model:this.modelId,input:a,encoding_format:"float",dimensions:k.dimensions,user:k.user},failedResponseHandler:(0,c.createJsonErrorResponseHandler)(this.config.errorStructure??h),successfulResponseHandler:(0,c.createJsonResponseHandler)(C),abortSignal:e,fetch:this.config.fetch});return{warnings:i,embeddings:m.data.map(a=>a.embedding),usage:m.usage?{tokens:m.usage.prompt_tokens}:void 0,providerMetadata:m.providerMetadata,response:{headers:l,body:n}}}};let C=e.z.object({data:e.z.array(e.z.object({embedding:e.z.array(e.z.number())})),usage:e.z.object({prompt_tokens:e.z.number()}).nullish(),providerMetadata:e.z.record(e.z.string(),e.z.record(e.z.string(),e.z.any())).optional()});d.WORKFLOW_SERIALIZE,d.WORKFLOW_DESERIALIZE,e.z.object({data:e.z.array(e.z.object({b64_json:e.z.string()})),usage:e.z.object({input_tokens:e.z.number().nullish(),output_tokens:e.z.number().nullish(),total_tokens:e.z.number().nullish()}).nullish()});a.s(["OpenAICompatibleChatLanguageModel",0,m,"OpenAICompatibleCompletionLanguageModel",0,w,"OpenAICompatibleEmbeddingModel",0,B])},674861,a=>{"use strict";var b=a.i(652685),c=a.i(912735),d=a.i(527990),e=a.i(404989),f=a.i(53112);function g({rawFinishReason:a,hasText:b,responseFormatType:c}){return"json"===c&&"tool_calls"===a&&b}var h=class a extends e.OpenAICompatibleChatLanguageModel{static[c.WORKFLOW_SERIALIZE](a){return(0,d.serializeModelOptions)({modelId:a.modelId,config:a.config})}static[c.WORKFLOW_DESERIALIZE](b){return new a(b.modelId,b.config)}async doGenerate(a){let b=await super.doGenerate(a);return g({rawFinishReason:b.finishReason.raw,hasText:b.content.some(a=>"text"===a.type&&a.text.length>0),responseFormatType:a.responseFormat?.type})?{...b,content:b.content.filter(a=>"tool-call"!==a.type),finishReason:{...b.finishReason,unified:"stop"}}:b}async doStream(a){let b=await super.doStream(a),c=!1;return{...b,stream:b.stream.pipeThrough(new TransformStream({transform(b,d){("text-delta"===b.type&&b.delta.length>0&&(c=!0),"finish"===b.type&&g({rawFinishReason:b.finishReason.raw,hasText:c,responseFormatType:a.responseFormat?.type}))?d.enqueue({...b,finishReason:{...b.finishReason,unified:"stop"}}):a.responseFormat?.type==="json"&&c&&("tool-input-start"===b.type||"tool-input-delta"===b.type||"tool-input-end"===b.type||"tool-call"===b.type)||d.enqueue(b)}}))}}};let i={errorSchema:f.z.object({message:f.z.string(),type:f.z.string(),param:f.z.string(),code:f.z.string()}),errorToMessage:a=>a.message};function j(a){let{max_tokens:b,parallelToolCalls:c,topLogprobs:d,logitBias:e,serviceTier:f,reasoningFormat:g,promptCacheKey:h,...i}=a;return{...i,...void 0!==b&&{max_completion_tokens:b},...void 0!==c&&{parallel_tool_calls:c},...void 0!==d&&{top_logprobs:d},...void 0!==e&&{logit_bias:e},...void 0!==f&&{service_tier:f},...void 0!==g&&{reasoning_format:g},...void 0!==h&&{prompt_cache_key:h},messages:Array.isArray(a.messages)?a.messages.map(a=>{if(null==a||"object"!=typeof a||"assistant"!==a.role||!("reasoning_content"in a))return a;let{reasoning_content:b,...c}=a;return{...c,...!("reasoning"in c)&&void 0!==b?{reasoning:b}:{}}}):a.messages}}function k(a={}){let c=(0,d.withoutTrailingSlash)(a.baseURL??"https://api.cerebras.ai/v1"),e=()=>(0,d.withUserAgentSuffix)({Authorization:`Bearer ${(0,d.loadApiKey)({apiKey:a.apiKey,environmentVariableName:"CEREBRAS_API_KEY",description:"Cerebras API key"})}`,...a.headers},"ai-sdk-cerebras/3.0.60"),f=b=>new h(b,{provider:"cerebras.chat",url:({path:a})=>`${c}${a}`,headers:e,fetch:a.fetch,errorStructure:i,supportsStructuredOutputs:!0,transformRequestBody:j}),g=a=>f(a);return g.specificationVersion="v4",g.languageModel=f,g.chat=f,g.embeddingModel=a=>{throw new b.NoSuchModelError({modelId:a,modelType:"embeddingModel"})},g.textEmbeddingModel=g.embeddingModel,g.imageModel=a=>{throw new b.NoSuchModelError({modelId:a,modelType:"imageModel"})},g}k(),a.s(["createCerebras",0,k])},606016,a=>{"use strict";var b=a.i(652685),c=a.i(912735),d=a.i(527990),e=a.i(53112);let f=e.z.object({thinking:e.z.object({type:e.z.enum(["enabled","disabled"]).optional(),tokenBudget:e.z.number().optional()}).optional()}),g=e.z.object({detail:e.z.enum(["auto","low","high"]).optional()}),h=e.z.object({message:e.z.string()}),i=(0,d.createJsonErrorResponseHandler)({errorSchema:h,errorToMessage:a=>a.message});function j(a){if(null==a)return(0,d.createNullLanguageModelUsage)();let b=a.tokens,c=b.input_tokens,e=b.output_tokens;return{inputTokens:{total:c,noCache:c,cacheRead:void 0,cacheWrite:void 0},outputTokens:{total:e,text:e,reasoning:void 0},raw:a}}async function k(a){let c=[],e=[];for(let{role:f,content:h}of a)switch(f){case"system":c.push({role:"system",content:h});break;case"user":{let a=[],f=!1;for(let c of h)switch(c.type){case"text":c.text.length>0&&a.push({type:"text",text:c.text});break;case"file":{let h;if("image"===(0,d.getTopLevelMediaType)(c.mediaType)){f=!0;let e=function({part:a}){switch(a.data.type){case"url":return a.data.url.toString();case"data":return`data:${(0,d.resolveFullMediaType)({part:a})};base64,${(0,d.convertToBase64)(a.data.data)}`;case"reference":throw new b.UnsupportedFunctionalityError({functionality:"image file parts with provider references"});case"text":throw new b.UnsupportedFunctionalityError({functionality:"image file parts with text data"})}}({part:c}),h=await (0,d.parseProviderOptions)({provider:"cohere",providerOptions:c.providerOptions,schema:g})??{};a.push({type:"image_url",image_url:{url:e,...h.detail?{detail:h.detail}:{}}});break}switch(c.data.type){case"reference":throw new b.UnsupportedFunctionalityError({functionality:"file parts with provider references"});case"url":throw new b.UnsupportedFunctionalityError({functionality:"File URL data",message:"URLs should be downloaded by the AI SDK and not reach this point. This indicates a configuration issue."});case"text":h=c.data.text;break;case"data":h="string"==typeof c.data.data?c.data.data:new TextDecoder().decode(c.data.data)}e.push({data:{text:h,title:c.filename}})}}f?c.push({role:"user",content:a}):c.push({role:"user",content:a.map(a=>"text"===a.type?a.text:"").join("")});break}case"assistant":{let a="",b=[];for(let c of h)switch(c.type){case"text":a+=c.text;break;case"tool-call":b.push({id:c.toolCallId,type:"function",function:{name:c.toolName,arguments:JSON.stringify(c.input)}})}c.push({role:"assistant",content:b.length>0?void 0:a,tool_calls:b.length>0?b:void 0,tool_plan:void 0});break}case"tool":c.push(...h.filter(a=>"tool-approval-response"!==a.type).map(a=>{let b,c=a.output;switch(c.type){case"text":case"error-text":b=c.value;break;case"execution-denied":b=c.reason??"Tool call execution denied.";break;case"content":case"json":case"error-json":b=JSON.stringify(c.value)}return{role:"tool",content:b,tool_call_id:a.toolCallId}}));break;default:throw Error(`Unsupported role: ${f}`)}return{messages:c,documents:e,warnings:[]}}function l(a){switch(a){case"COMPLETE":case"STOP_SEQUENCE":return"stop";case"MAX_TOKENS":return"length";case"ERROR":return"error";case"TOOL_CALL":return"tool-calls";default:return"other"}}var m=class a{static[c.WORKFLOW_SERIALIZE](a){return(0,d.serializeModelOptions)({modelId:a.modelId,config:a.config})}static[c.WORKFLOW_DESERIALIZE](b){return new a(b.modelId,b.config)}constructor(a,b){this.specificationVersion="v4",this.supportedUrls={"image/*":[/^https?:\/\/.*$/]},this.modelId=a,this.config=b}get provider(){return this.config.provider}async getArgs({prompt:a,maxOutputTokens:c,temperature:e,topP:g,topK:h,frequencyPenalty:i,presencePenalty:j,stopSequences:l,responseFormat:m,seed:n,reasoning:o,tools:p,toolChoice:q,providerOptions:r}){let s=[],t=await (0,d.parseProviderOptions)({provider:"cohere",providerOptions:r,schema:f})??{},{messages:u,documents:v,warnings:w}=await k(a),{tools:x,toolChoice:y,toolWarnings:z}=function({tools:a,toolChoice:c}){a=a?.length?a:void 0;let d=[];if(null==a)return{tools:void 0,toolChoice:void 0,toolWarnings:d};let e=[];for(let b of a)"provider"===b.type?d.push({type:"unsupported",feature:`provider-defined tool ${b.id}`}):e.push({type:"function",function:{name:b.name,description:b.description,parameters:b.inputSchema}});if(null==c)return{tools:e,toolChoice:void 0,toolWarnings:d};let f=c.type;switch(f){case"auto":return{tools:e,toolChoice:void 0,toolWarnings:d};case"none":return{tools:e,toolChoice:"NONE",toolWarnings:d};case"required":return{tools:e,toolChoice:"REQUIRED",toolWarnings:d};case"tool":return{tools:e.filter(a=>a.function.name===c.toolName),toolChoice:"REQUIRED",toolWarnings:d};default:throw new b.UnsupportedFunctionalityError({functionality:`tool choice type: ${f}`})}}({tools:p,toolChoice:q});return s.push(...z,...w),{args:{model:this.modelId,frequency_penalty:i,presence_penalty:j,max_tokens:c,temperature:e,p:g,k:h,seed:n,stop_sequences:l,response_format:m?.type==="json"?{type:"json_object",json_schema:m.schema}:void 0,messages:u,tools:x,tool_choice:y,...v.length>0&&{documents:v},...function({reasoning:a,cohereOptions:b,warnings:c}){if(b.thinking)return{thinking:{type:b.thinking.type??"enabled",token_budget:b.thinking.tokenBudget}};if(!(0,d.isCustomReasoning)(a))return{};if("none"===a)return{thinking:{type:"disabled"}};let e=(0,d.mapReasoningToProviderBudget)({reasoning:a,maxOutputTokens:32768,maxReasoningBudget:32768,warnings:c});return null==e?{}:{thinking:{type:"enabled",token_budget:e}}}({reasoning:o,cohereOptions:t,warnings:s})},warnings:s}}async doGenerate(a){let{args:b,warnings:c}=await this.getArgs(a),{responseHeaders:e,value:f,rawValue:g}=await (0,d.postJsonToApi)({url:`${this.config.baseURL}/chat`,headers:(0,d.combineHeaders)(this.config.headers?.(),a.headers),body:b,failedResponseHandler:i,successfulResponseHandler:(0,d.createJsonResponseHandler)(o),abortSignal:a.abortSignal,fetch:this.config.fetch}),h=[];for(let a of f.message.content??[]){if("text"===a.type&&a.text.length>0){h.push({type:"text",text:a.text});continue}if("thinking"===a.type&&a.thinking.length>0){h.push({type:"reasoning",text:a.thinking});continue}}for(let a of f.message.citations??[])h.push({type:"source",sourceType:"document",id:this.config.generateId(),mediaType:"text/plain",title:a.sources[0]?.document?.title||"Document",providerMetadata:{cohere:{start:a.start,end:a.end,text:a.text,sources:a.sources,...a.type&&{citationType:a.type}}}});for(let a of f.message.tool_calls??[])h.push({type:"tool-call",toolCallId:a.id,toolName:a.function.name,input:a.function.arguments.replace(/^null$/,"{}")});return{content:h,finishReason:{unified:l(f.finish_reason),raw:f.finish_reason??void 0},usage:j(f.usage),request:{body:b},response:{id:f.generation_id??void 0,headers:e,body:g},warnings:c}}async doStream(a){let b,{args:c,warnings:e}=await this.getArgs(a),{responseHeaders:f,value:g}=await (0,d.postJsonToApi)({url:`${this.config.baseURL}/chat`,headers:(0,d.combineHeaders)(this.config.headers?.(),a.headers),body:{...c,stream:!0},failedResponseHandler:i,successfulResponseHandler:(0,d.createEventSourceResponseHandler)(p),abortSignal:a.abortSignal,fetch:this.config.fetch}),h={unified:"other",raw:void 0},k=null,m=!1;return{stream:g.pipeThrough(new TransformStream({start(a){a.enqueue({type:"stream-start",warnings:e})},async transform(c,e){if(a.includeRawChunks&&e.enqueue({type:"raw",rawValue:c.rawValue}),!c.success){h={unified:"error",raw:void 0},e.enqueue({type:"error",error:c.error});return}let f=c.value;switch(f.type){case"content-start":if("thinking"===f.delta.message.content.type){e.enqueue({type:"reasoning-start",id:String(f.index)}),m=!0;return}e.enqueue({type:"text-start",id:String(f.index)});return;case"content-delta":if("thinking"in f.delta.message.content)return void e.enqueue({type:"reasoning-delta",id:String(f.index),delta:f.delta.message.content.thinking});e.enqueue({type:"text-delta",id:String(f.index),delta:f.delta.message.content.text});return;case"content-end":if(m){e.enqueue({type:"reasoning-end",id:String(f.index)}),m=!1;return}e.enqueue({type:"text-end",id:String(f.index)});return;case"tool-call-start":{let a=f.delta.message.tool_calls.id,b=f.delta.message.tool_calls.function.name,c=f.delta.message.tool_calls.function.arguments;k={id:a,name:b,arguments:c,hasFinished:!1},e.enqueue({type:"tool-input-start",id:a,toolName:b}),c.length>0&&e.enqueue({type:"tool-input-delta",id:a,delta:c});return}case"tool-call-delta":if(k&&!k.hasFinished){let a=f.delta.message.tool_calls.function.arguments;k.arguments+=a,e.enqueue({type:"tool-input-delta",id:k.id,delta:a})}return;case"tool-call-end":k&&!k.hasFinished&&(e.enqueue({type:"tool-input-end",id:k.id}),e.enqueue({type:"tool-call",toolCallId:k.id,toolName:k.name,input:JSON.stringify(await (0,d.parseJSON)({text:k.arguments?.trim()||"{}"}))}),k.hasFinished=!0,k=null);return;case"message-start":e.enqueue({type:"response-metadata",id:f.id??void 0});return;case"message-end":h={unified:l(f.delta.finish_reason),raw:f.delta.finish_reason},b=f.delta.usage;return}},flush(a){a.enqueue({type:"finish",finishReason:h,usage:j(b)})}})),request:{body:{...c,stream:!0}},response:{headers:f}}}};let n=e.z.looseObject({billed_units:e.z.looseObject({input_tokens:e.z.number(),output_tokens:e.z.number()}).nullish(),tokens:e.z.looseObject({input_tokens:e.z.number(),output_tokens:e.z.number()}),cached_tokens:e.z.number().nullish()}),o=e.z.object({generation_id:e.z.string().nullish(),message:e.z.object({role:e.z.string(),content:e.z.array(e.z.union([e.z.object({type:e.z.literal("text"),text:e.z.string()}),e.z.object({type:e.z.literal("thinking"),thinking:e.z.string()})])).nullish(),tool_plan:e.z.string().nullish(),tool_calls:e.z.array(e.z.object({id:e.z.string(),type:e.z.literal("function"),function:e.z.object({name:e.z.string(),arguments:e.z.string()})})).nullish(),citations:e.z.array(e.z.object({start:e.z.number(),end:e.z.number(),text:e.z.string(),sources:e.z.array(e.z.object({type:e.z.string().optional(),id:e.z.string().optional(),document:e.z.object({id:e.z.string().optional(),text:e.z.string(),title:e.z.string()})})),type:e.z.string().optional()})).nullish()}),finish_reason:e.z.string(),usage:n}),p=e.z.discriminatedUnion("type",[e.z.object({type:e.z.literal("citation-start")}),e.z.object({type:e.z.literal("citation-end")}),e.z.object({type:e.z.literal("content-start"),index:e.z.number(),delta:e.z.object({message:e.z.object({content:e.z.union([e.z.object({type:e.z.literal("text"),text:e.z.string()}),e.z.object({type:e.z.literal("thinking"),thinking:e.z.string()})])})})}),e.z.object({type:e.z.literal("content-delta"),index:e.z.number(),delta:e.z.object({message:e.z.object({content:e.z.union([e.z.object({text:e.z.string()}),e.z.object({thinking:e.z.string()})])})})}),e.z.object({type:e.z.literal("content-end"),index:e.z.number()}),e.z.object({type:e.z.literal("message-start"),id:e.z.string().nullish()}),e.z.object({type:e.z.literal("message-end"),delta:e.z.object({finish_reason:e.z.string(),usage:n})}),e.z.object({type:e.z.literal("tool-plan-delta"),delta:e.z.object({message:e.z.object({tool_plan:e.z.string()})})}),e.z.object({type:e.z.literal("tool-call-start"),delta:e.z.object({message:e.z.object({tool_calls:e.z.object({id:e.z.string(),type:e.z.literal("function"),function:e.z.object({name:e.z.string(),arguments:e.z.string()})})})})}),e.z.object({type:e.z.literal("tool-call-delta"),delta:e.z.object({message:e.z.object({tool_calls:e.z.object({function:e.z.object({arguments:e.z.string()})})})})}),e.z.object({type:e.z.literal("tool-call-end")})]),q=e.z.object({inputType:e.z.enum(["search_document","search_query","classification","clustering"]).optional(),truncate:e.z.enum(["NONE","START","END"]).optional(),outputDimension:e.z.union([e.z.literal(256),e.z.literal(512),e.z.literal(1024),e.z.literal(1536)]).optional()});var r=class a{static[c.WORKFLOW_SERIALIZE](a){return(0,d.serializeModelOptions)({modelId:a.modelId,config:a.config})}static[c.WORKFLOW_DESERIALIZE](b){return new a(b.modelId,b.config)}constructor(a,b){this.specificationVersion="v4",this.maxEmbeddingsPerCall=96,this.supportsParallelCalls=!0,this.modelId=a,this.config=b}get provider(){return this.config.provider}async doEmbed({values:a,headers:c,abortSignal:e,providerOptions:f}){let g=await (0,d.parseProviderOptions)({provider:"cohere",providerOptions:f,schema:q});if(a.length>this.maxEmbeddingsPerCall)throw new b.TooManyEmbeddingValuesForCallError({provider:this.provider,modelId:this.modelId,maxEmbeddingsPerCall:this.maxEmbeddingsPerCall,values:a});let{responseHeaders:h,value:j,rawValue:k}=await (0,d.postJsonToApi)({url:`${this.config.baseURL}/embed`,headers:(0,d.combineHeaders)(this.config.headers?.(),c),body:{model:this.modelId,embedding_types:["float"],texts:a,input_type:g?.inputType??"search_query",truncate:g?.truncate,output_dimension:g?.outputDimension},failedResponseHandler:i,successfulResponseHandler:(0,d.createJsonResponseHandler)(s),abortSignal:e,fetch:this.config.fetch});return{warnings:[],embeddings:j.embeddings.float,usage:{tokens:j.meta.billed_units.input_tokens},response:{headers:h,body:k}}}};let s=e.z.object({embeddings:e.z.object({float:e.z.array(e.z.array(e.z.number()))}),meta:e.z.object({billed_units:e.z.object({input_tokens:e.z.number()})})}),t=(0,d.lazySchema)(()=>(0,d.zodSchema)(e.z.object({id:e.z.string().nullish(),results:e.z.array(e.z.object({index:e.z.number(),relevance_score:e.z.number()})),meta:e.z.any()}))),u=(0,d.lazySchema)(()=>(0,d.zodSchema)(e.z.object({maxTokensPerDoc:e.z.number().optional(),priority:e.z.number().optional()})));var v=class{constructor(a,b){this.specificationVersion="v4",this.modelId=a,this.config=b}get provider(){return this.config.provider}async doRerank({documents:a,headers:b,query:c,topN:e,abortSignal:f,providerOptions:g}){let h=await (0,d.parseProviderOptions)({provider:"cohere",providerOptions:g,schema:u}),j=[];"object"===a.type&&j.push({type:"compatibility",feature:"object documents",details:"Object documents are converted to strings."});let{responseHeaders:k,value:l,rawValue:m}=await (0,d.postJsonToApi)({url:`${this.config.baseURL}/rerank`,headers:(0,d.combineHeaders)(this.config.headers(),b),body:{model:this.modelId,query:c,documents:"text"===a.type?a.values:a.values.map(a=>JSON.stringify(a)),top_n:e,max_tokens_per_doc:h?.maxTokensPerDoc,priority:h?.priority},failedResponseHandler:i,successfulResponseHandler:(0,d.createJsonResponseHandler)(t),abortSignal:f,fetch:this.config.fetch});return{ranking:l.results.map(a=>({index:a.index,relevanceScore:a.relevance_score})),warnings:j,response:{id:l.id??void 0,headers:k,body:m}}}};function w(a={}){let c=(0,d.withoutTrailingSlash)(a.baseURL)??"https://api.cohere.com/v2",e=()=>(0,d.withUserAgentSuffix)({Authorization:`Bearer ${(0,d.loadApiKey)({apiKey:a.apiKey,environmentVariableName:"COHERE_API_KEY",description:"Cohere"})}`,...a.headers},"ai-sdk-cohere/4.0.53"),f=b=>new m(b,{provider:"cohere.chat",baseURL:c,headers:e,fetch:a.fetch,generateId:a.generateId??d.generateId}),g=b=>new r(b,{provider:"cohere.textEmbedding",baseURL:c,headers:e,fetch:a.fetch}),h=b=>new v(b,{provider:"cohere.reranking",baseURL:c,headers:e,fetch:a.fetch}),i=function(a){if(new.target)throw Error("The Cohere model function cannot be called with the new keyword.");return f(a)};return i.specificationVersion="v4",i.languageModel=f,i.embedding=g,i.embeddingModel=g,i.textEmbedding=g,i.textEmbeddingModel=g,i.reranking=h,i.rerankingModel=h,i.imageModel=a=>{throw new b.NoSuchModelError({modelId:a,modelType:"imageModel"})},i}w(),a.s(["createCohere",0,w])},388319,a=>{"use strict";var b=a.i(404989),c=a.i(912735),d=a.i(527990),e=a.i(53112);let f=(0,d.lazySchema)(()=>(0,d.zodSchema)(e.z.looseObject({negative_prompt:e.z.string().nullish(),num_inference_steps:e.z.number().nullish(),guidance_scale:e.z.number().nullish(),guidance:e.z.number().nullish(),response_format:e.z.enum(["b64_json"]).nullish(),quality:e.z.string().nullish(),style:e.z.string().nullish(),user:e.z.string().nullish()})));var g=class a{get supportsFileInputs(){return!!["stabilityai/sd3.5","black-forest-labs/FLUX-1.1-pro","black-forest-labs/FLUX-1-schnell","black-forest-labs/FLUX-1-dev","black-forest-labs/FLUX-pro","black-forest-labs/FLUX.1-Kontext-dev","black-forest-labs/FLUX.1-Kontext-pro","Qwen/Qwen-Image-Edit","stabilityai/sd3.5-medium","stabilityai/sdxl-turbo"].includes(this.modelId)||void 0}get supportsMaskInputs(){return this.supportsFileInputs}get provider(){return this.config.provider}static[c.WORKFLOW_SERIALIZE](a){return(0,d.serializeModelOptions)({modelId:a.modelId,config:a.config})}static[c.WORKFLOW_DESERIALIZE](b){return new a(b.modelId,b.config)}constructor(a,b){this.modelId=a,this.config=b,this.specificationVersion="v4",this.maxImagesPerCall=1}async doGenerate({prompt:a,n:b,size:c,aspectRatio:e,seed:g,providerOptions:m,headers:n,abortSignal:o,files:p,mask:q}){let r=[],s=this.config._internal?.currentDate?.()??new Date,t=await (0,d.parseProviderOptions)({provider:"deepinfra",providerOptions:m,schema:f});if(null!=p&&p.length>0){let{value:e,responseHeaders:f}=await (0,d.postFormDataToApi)({url:this.getEditUrl(),headers:(0,d.combineHeaders)(this.config.headers?.(),n),formData:(0,d.convertToFormData)({model:this.modelId,prompt:a,image:await Promise.all(p.map(a=>l(a))),mask:null!=q?await l(q):void 0,n:b,size:c,...t},{useArrayBrackets:!1}),failedResponseHandler:(0,d.createJsonErrorResponseHandler)({errorSchema:j,errorToMessage:a=>a.error?.message??"Unknown error"}),successfulResponseHandler:(0,d.createJsonResponseHandler)(k),abortSignal:o,fetch:this.config.fetch});return{images:e.data.map(a=>a.b64_json),warnings:r,response:{timestamp:s,modelId:this.modelId,headers:f}}}let u=c?.split("x"),{value:v,responseHeaders:w}=await (0,d.postJsonToApi)({url:`${this.config.baseURL}/${this.modelId}`,headers:(0,d.combineHeaders)(this.config.headers?.(),n),body:{prompt:a,num_images:b,...e&&{aspect_ratio:e},...u&&{width:u[0],height:u[1]},...null!=g&&{seed:g},...t},failedResponseHandler:(0,d.createJsonErrorResponseHandler)({errorSchema:h,errorToMessage:a=>a.detail.error}),successfulResponseHandler:(0,d.createJsonResponseHandler)(i),abortSignal:o,fetch:this.config.fetch});return{images:v.images.map(a=>a.replace(/^data:image\/\w+;base64,/,"")),warnings:r,response:{timestamp:s,modelId:this.modelId,headers:w}}}getEditUrl(){return`${this.config.baseURL.replace("/inference","/openai")}/images/edits`}};let h=e.z.object({detail:e.z.object({error:e.z.string()})}),i=e.z.object({images:e.z.array(e.z.string())}),j=e.z.object({error:e.z.object({message:e.z.string()}).optional()}),k=e.z.object({data:e.z.array(e.z.object({b64_json:e.z.string()}))});async function l(a){return"url"===a.type?(0,d.downloadBlob)(a.url):new Blob([a.data instanceof Uint8Array?a.data:(0,d.convertBase64ToUint8Array)(a.data)],{type:a.mediaType})}var m=class a extends b.OpenAICompatibleChatLanguageModel{static[c.WORKFLOW_SERIALIZE](a){return(0,d.serializeModelOptions)({modelId:a.modelId,config:a.config})}static[c.WORKFLOW_DESERIALIZE](b){return new a(b.modelId,b.config)}fixUsageForGeminiModels(a){if(!a||!a.completion_tokens_details?.reasoning_tokens)return a;let b=a.completion_tokens??0,c=a.completion_tokens_details.reasoning_tokens;return c>b?{...a,completion_tokens:b+c,total_tokens:null!=a.total_tokens?a.total_tokens+c:void 0}:a}async doGenerate(a){let b=await super.doGenerate(a);if(b.usage?.raw){let a=this.fixUsageForGeminiModels(b.usage.raw);if(a!==b.usage.raw){let c=a.prompt_tokens??0,d=a.completion_tokens??0,e=a.prompt_tokens_details?.cached_tokens??0,f=a.completion_tokens_details?.reasoning_tokens??0;return{...b,usage:{inputTokens:{total:c,noCache:c-e,cacheRead:e,cacheWrite:void 0},outputTokens:{total:d,text:d-f,reasoning:f},raw:a}}}}return b}async doStream(a){let b=await super.doStream(a),c=b.stream,d=this.fixUsageForGeminiModels.bind(this),e=new ReadableStream({async start(a){let b=c.getReader();try{for(;;){let{done:c,value:e}=await b.read();if(c)break;if("finish"===e.type&&e.usage?.raw){let b=d(e.usage.raw);if(b!==e.usage.raw){let c=b.prompt_tokens??0,d=b.completion_tokens??0,f=b.prompt_tokens_details?.cached_tokens??0,g=b.completion_tokens_details?.reasoning_tokens??0;a.enqueue({...e,usage:{inputTokens:{total:c,noCache:c-f,cacheRead:f,cacheWrite:void 0},outputTokens:{total:d,text:d-g,reasoning:g},raw:b}})}else a.enqueue(e)}else a.enqueue(e)}a.close()}catch(b){a.error(b)}}});return{...b,stream:e}}};function n(a={}){let c=(0,d.withoutTrailingSlash)(a.baseURL??"https://api.deepinfra.com/v1"),e=()=>(0,d.withUserAgentSuffix)({Authorization:`Bearer ${(0,d.loadApiKey)({apiKey:a.apiKey,environmentVariableName:"DEEPINFRA_API_KEY",description:"DeepInfra's API key"})}`,...a.headers},"ai-sdk-deepinfra/3.0.60"),f=b=>({provider:`deepinfra.${b}`,url:({path:a})=>`${c}/openai${a}`,headers:e,fetch:a.fetch}),h=a=>new m(a,{...f("chat"),supportsStructuredOutputs:!0}),i=a=>new b.OpenAICompatibleEmbeddingModel(a,f("embedding")),j=a=>new g(a,{...f("image"),baseURL:c?`${c}/inference`:"https://api.deepinfra.com/v1/inference"}),k=a=>h(a);return k.specificationVersion="v4",k.completionModel=a=>new b.OpenAICompatibleCompletionLanguageModel(a,f("completion")),k.chatModel=h,k.image=j,k.imageModel=j,k.languageModel=h,k.embeddingModel=i,k.textEmbeddingModel=i,k}n(),a.s(["createDeepInfra",0,n])},538177,a=>{"use strict";var b=a.i(652685),c=a.i(527990),d=a.i(912735),e=a.i(53112);let f=e.z.object({imageDetail:e.z.enum(["low","high","original","auto"]).optional(),fileData:e.z.literal(!0).optional()}),g=e.z.object({logprobs:e.z.boolean().optional(),topLogprobs:e.z.number().int().min(0).max(20).optional(),userId:e.z.string().regex(/^[a-zA-Z0-9_-]+$/,"userId must match /^[a-zA-Z0-9_-]+$/").max(512,"userId must be at most 512 characters long").optional(),thinking:e.z.object({type:e.z.enum(["adaptive","enabled","disabled"]).optional()}).optional(),reasoningEffort:e.z.enum(["low","medium","high","xhigh","max"]).optional(),strictJsonSchema:e.z.boolean().optional()}),h=e.z.object({name:e.z.string().optional()}).extend({prefix:e.z.literal(!0).optional()});function i(a){return a.includes("deepseek-v4")||a.startsWith("deepseek-flash")||a.startsWith("deepseek-pro")}let j=new Set(["image/gif","image/jpeg","image/jpg","image/png","image/webp"]);function k(a){let d=(0,c.resolveFullMediaType)({part:a});if(!j.has(d))throw new b.UnsupportedFunctionalityError({functionality:`DeepSeek image media type ${d}`,message:"DeepSeek supports JPEG, PNG, GIF, and WebP image inputs."});return d}function l({url:a,prompt:c}){if(a.length>8192)throw new b.InvalidPromptError({prompt:c,message:"DeepSeek image URLs must not exceed 8192 characters."})}async function m({prompt:a,responseFormat:d,modelId:e,providerOptionsName:g="deepseek",supportsAssistantPrefixCompletion:j=!1,supportsStructuredOutputs:n=!1}){let o=i(e),p=[],q=[];d?.type==="json"&&(null==d.schema?p.push({role:"system",content:"Return JSON."}):n||(p.push({role:"system",content:"Return JSON that conforms to the following schema: "+JSON.stringify(d.schema)}),q.push({type:"compatibility",feature:"responseFormat JSON schema",details:"JSON response schema is injected into the system message."})));let r=-1;for(let b=a.length-1;b>=0;b--)if("user"===a[b].role){r=b;break}let s=-1;for(let{role:d,content:e,providerOptions:i}of a){s++;let m=await (0,c.parseProviderOptions)({provider:g,providerOptions:i,schema:h});if(m?.prefix===!0&&"assistant"!==d)throw new b.InvalidPromptError({prompt:a,message:"DeepSeek assistant prefix completion requires `prefix: true` on an assistant message."});switch(d){case"system":p.push({role:"system",content:e,...m?.name!=null&&{name:m.name}});break;case"user":{if(!e.some(a=>"file"===a.type&&("reference"===a.data.type||"url"===a.data.type||"data"===a.data.type)&&"image"===(0,c.getTopLevelMediaType)(a.mediaType))){let a="";for(let b of e)"text"===b.type?a+=b.text:q.push({type:"unsupported",feature:`user message part type: ${b.type}`});p.push({role:"user",content:a,...m?.name!=null&&{name:m.name}});break}let d=[];for(let h of e)if("text"===h.type)d.push({type:"text",text:h.text});else if("file"===h.type&&"image"===(0,c.getTopLevelMediaType)(h.mediaType)){let e=await (0,c.parseProviderOptions)({provider:g,providerOptions:h.providerOptions,schema:f});if("reference"===h.data.type)d.push({type:"file",file_id:(0,c.resolveProviderReference)({reference:h.data.reference,provider:"deepseek"})});else if("url"===h.data.type||"data"===h.data.type){let f=k(h);if("url"===h.data.type){let c=h.data.url.toString();if(l({url:c,prompt:a}),e?.fileData===!0)throw new b.InvalidPromptError({prompt:a,message:"DeepSeek `fileData` image parts require inline data, not a URL."});d.push({type:"image_url",image_url:{url:c,...e?.imageDetail!=null&&{detail:e.imageDetail}}})}else{let g=`data:${"image/jpg"===f?"image/jpeg":f};base64,${(0,c.convertToBase64)(h.data.data)}`;if(e?.fileData===!0){if(null!=e.imageDetail)throw new b.InvalidPromptError({prompt:a,message:"DeepSeek `imageDetail` cannot be combined with `fileData`."});d.push({type:"file",file_data:g,...null!=h.filename&&{filename:h.filename}})}else d.push({type:"image_url",image_url:{url:g,...e?.imageDetail!=null&&{detail:e.imageDetail}}})}}else q.push({type:"unsupported",feature:`user message part type: ${h.type}`})}else q.push({type:"unsupported",feature:`user message part type: ${h.type}`});p.push({role:"user",content:d,...m?.name!=null&&{name:m.name}});break}case"assistant":{let c;if(m?.prefix===!0){if(s!==a.length-1)throw new b.InvalidPromptError({prompt:a,message:"DeepSeek assistant prefix completion requires the prefixed assistant message to be the final message."});if(!j)throw new b.UnsupportedFunctionalityError({functionality:"DeepSeek assistant prefix completion",message:"DeepSeek assistant prefix completion requires a beta base URL ending in `/beta`."})}let d="",f=[];for(let a of e)switch(a.type){case"text":d+=a.text;break;case"reasoning":if(s<=r&&!o)break;null==c?c=a.text:c+=a.text;break;case"tool-call":f.push({id:a.toolCallId,type:"function",function:{name:a.toolName,arguments:JSON.stringify(a.input)}})}p.push({role:"assistant",content:d,...m?.name!=null&&{name:m.name},...m?.prefix===!0&&{prefix:!0},reasoning_content:c??(o?"":void 0),tool_calls:f.length>0?f:void 0});break}case"tool":for(let b of(m?.name!=null&&q.push({type:"unsupported",feature:"message name on tool messages"}),e)){let d;if("tool-approval-response"===b.type)continue;let e=b.output;switch(e.type){case"text":case"error-text":d=e.value;break;case"execution-denied":d=e.reason??"Tool call execution denied.";break;case"json":case"error-json":d=JSON.stringify(e.value);break;case"content":if(!e.value.some(a=>"file"===a.type&&("reference"===a.data.type||"url"===a.data.type||"data"===a.data.type)&&"image"===(0,c.getTopLevelMediaType)(a.mediaType))){d=JSON.stringify(e.value);break}for(let b of(d=[],e.value))if("text"===b.type)d.push({type:"text",text:b.text});else if("file"===b.type&&("reference"===b.data.type||"url"===b.data.type||"data"===b.data.type)&&"image"===(0,c.getTopLevelMediaType)(b.mediaType)){let e;if("reference"===b.data.type){d.push({type:"file",file_id:(0,c.resolveProviderReference)({reference:b.data.reference,provider:"deepseek"})});continue}let h=await (0,c.parseProviderOptions)({provider:g,providerOptions:b.providerOptions,schema:f}),i=k(b);"url"===b.data.type?l({url:e=b.data.url.toString(),prompt:a}):e=`data:${"image/jpg"===i?"image/jpeg":i};base64,${(0,c.convertToBase64)(b.data.data)}`,d.push({type:"image_url",image_url:{url:e,...h?.imageDetail!=null&&{detail:h.imageDetail}}})}else q.push({type:"unsupported",feature:`tool result content part type: ${b.type}`})}p.push({role:"tool",tool_call_id:b.toolCallId,content:d})}break;default:q.push({type:"unsupported",feature:`message role: ${d}`})}}return{messages:p,warnings:q}}function n(a){if(null==a)return(0,c.createNullLanguageModelUsage)();let b=a.prompt_tokens??0,d=a.completion_tokens??0,e=a.prompt_cache_hit_tokens??a.prompt_tokens_details?.cached_tokens??0,f=a.completion_tokens_details?.reasoning_tokens??0;return{inputTokens:{total:b,noCache:b-e,cacheRead:e,cacheWrite:void 0},outputTokens:{total:d,text:Math.max(0,d-f),reasoning:f},raw:a}}let o=e.z.looseObject({prompt_tokens:e.z.number().nullish(),completion_tokens:e.z.number().nullish(),prompt_cache_hit_tokens:e.z.number().nullish(),prompt_cache_miss_tokens:e.z.number().nullish(),total_tokens:e.z.number().nullish(),prompt_tokens_details:e.z.looseObject({cached_tokens:e.z.number().nullish()}).nullish(),completion_tokens_details:e.z.looseObject({reasoning_tokens:e.z.number().nullish()}).nullish()}).nullish(),p=e.z.object({error:e.z.object({message:e.z.string(),type:e.z.string().nullish(),param:e.z.any().nullish(),code:e.z.union([e.z.string(),e.z.number()]).nullish()})}),q=e.z.object({token:e.z.string(),logprob:e.z.number(),bytes:e.z.array(e.z.number()).nullable(),top_logprobs:e.z.array(e.z.object({token:e.z.string(),logprob:e.z.number(),bytes:e.z.array(e.z.number()).nullable()}))}),r=e.z.object({content:e.z.array(q).nullish(),reasoning_content:e.z.array(q).nullish()}).nullish(),s=e.z.object({id:e.z.string().nullish(),created:e.z.number().nullish(),model:e.z.string().nullish(),object:e.z.literal("chat.completion").nullish(),system_fingerprint:e.z.string().nullish(),choices:e.z.array(e.z.object({index:e.z.number().nullish(),message:e.z.object({role:e.z.literal("assistant").nullish(),content:e.z.string().nullish(),reasoning_content:e.z.string().nullish(),tool_calls:e.z.array(e.z.object({id:e.z.string().nullish(),type:e.z.literal("function").nullish(),function:e.z.object({name:e.z.string(),arguments:e.z.string()})})).nullish()}),logprobs:r,finish_reason:e.z.string().nullish()})),usage:o}),t=(0,c.lazySchema)(()=>(0,c.zodSchema)(e.z.union([e.z.object({id:e.z.string().nullish(),created:e.z.number().nullish(),model:e.z.string().nullish(),object:e.z.literal("chat.completion.chunk").nullish(),system_fingerprint:e.z.string().nullish(),choices:e.z.array(e.z.object({index:e.z.number().nullish(),delta:e.z.object({role:e.z.enum(["assistant"]).nullish(),content:e.z.string().nullish(),reasoning_content:e.z.string().nullish(),tool_calls:e.z.array(e.z.object({index:e.z.number(),id:e.z.string().nullish(),type:e.z.literal("function").nullish(),function:e.z.object({name:e.z.string().nullish(),arguments:e.z.string().nullish()})})).nullish()}).nullish(),logprobs:r,finish_reason:e.z.string().nullish()})),usage:o}),p])));function u(a){switch(a){case"stop":return"stop";case"length":return"length";case"content_filter":return"content-filter";case"tool_calls":return"tool-calls";case"insufficient_system_resource":return"error";default:return"other"}}var v=class a{static[d.WORKFLOW_SERIALIZE](a){return(0,c.serializeModelOptions)({modelId:a.modelId,config:a.config})}static[d.WORKFLOW_DESERIALIZE](b){return new a(b.modelId,b.config)}constructor(a,b){this.specificationVersion="v4",this.supportedUrls={"image/*":[/^https?:\/\/.*$/]},this.modelId=a,this.config=b,this.failedResponseHandler=(0,c.createJsonErrorResponseHandler)({errorSchema:p,errorToMessage:a=>a.error.message})}get provider(){return this.config.provider}get providerOptionsName(){return this.config.provider.split(".")[0].trim()}async getArgs({prompt:a,maxOutputTokens:d,temperature:e,topP:f,topK:h,frequencyPenalty:j,presencePenalty:k,reasoning:l,providerOptions:n,stopSequences:o,responseFormat:p,seed:q,toolChoice:r,tools:s}){let t=await (0,c.parseProviderOptions)({provider:this.providerOptionsName,providerOptions:n,schema:g})??{},u=!0===this.config.supportsStructuredOutputs,v=!0===this.config.supportsPenaltySampling,{messages:w,warnings:x}=await m({prompt:a,responseFormat:p,modelId:this.modelId,providerOptionsName:this.providerOptionsName,supportsAssistantPrefixCompletion:this.config.supportsAssistantPrefixCompletion,supportsStructuredOutputs:u}),y=[...x];null!=h&&y.push({type:"unsupported",feature:"topK"}),null!=q&&y.push({type:"unsupported",feature:"seed"}),v||null==j||y.push({type:"deprecated",setting:"frequencyPenalty",message:"frequencyPenalty is deprecated by DeepSeek and has been omitted. Remove frequencyPenalty from the request."}),v||null==k||y.push({type:"deprecated",setting:"presencePenalty",message:"presencePenalty is deprecated by DeepSeek and has been omitted. Remove presencePenalty from the request."});let{tools:z,toolChoice:A,toolWarnings:B}=function({tools:a,toolChoice:c,supportsStrictToolCalls:d}){a=a?.length?a:void 0;let e=[];if(null==a)return{tools:void 0,toolChoice:void 0,toolWarnings:e};let f=a.filter(a=>"function"===a.type),g=f.some(a=>!0===a.strict);if(g&&!1===d)throw new b.UnsupportedFunctionalityError({functionality:"DeepSeek strict tool calls",message:"DeepSeek strict tool calls require a beta base URL ending in `/beta`."});if(g&&!0===d&&f.some(a=>!0!==a.strict))throw new b.UnsupportedFunctionalityError({functionality:"mixed DeepSeek strict and non-strict tool calls",message:"DeepSeek strict mode requires every function tool in the request to set `strict: true`."});let h=[];for(let b of a)"provider"===b.type?e.push({type:"unsupported",feature:`provider-defined tool ${b.id}`}):h.push({type:"function",function:{name:b.name,description:b.description,parameters:b.inputSchema,...null!=b.strict?{strict:b.strict}:{}}});if(null==c)return{tools:h,toolChoice:void 0,toolWarnings:e};let i=c?.type;switch(i){case"auto":case"none":case"required":return{tools:h,toolChoice:i,toolWarnings:e};case"tool":return{tools:h,toolChoice:{type:"function",function:{name:c.toolName}},toolWarnings:e};default:return{tools:h,toolChoice:void 0,toolWarnings:[...e,{type:"unsupported",feature:`tool choice type: ${i}`}]}}}({tools:s,toolChoice:r,supportsStrictToolCalls:this.config.supportsStrictToolCalls}),C=t.thinking?.type;"adaptive"===C&&y.push({type:"compatibility",feature:"thinking.type",details:'thinking.type "adaptive" is not a canonical DeepSeek value. mapped to "enabled".'});let D=!1===this.config.supportsThinking?void 0:null!=C?{type:"adaptive"===C?"enabled":C}:(0,c.isCustomReasoning)(l)?{type:"none"===l?"disabled":"enabled"}:void 0,E=!1!==this.config.supportsThinking&&D?.type!=="disabled"&&(null!=D||"deepseek-reasoner"===this.modelId||i(this.modelId));E&&null!=e&&y.push({type:"unsupported",feature:"temperature",details:"temperature has no effect when DeepSeek thinking is enabled. Set providerOptions.deepseek.thinking.type to 'disabled' to use temperature."}),E&&null!=f&&y.push({type:"unsupported",feature:"topP",details:"topP has no effect when DeepSeek thinking is enabled. Set providerOptions.deepseek.thinking.type to 'disabled' to use topP."});let F=null!=t.reasoningEffort?function({reasoningEffort:a,warnings:b}){let c="medium"===a?"high":"xhigh"===a?"max":a;return c!==a&&b.push({type:"compatibility",feature:"reasoningEffort",details:`reasoningEffort "${a}" is not a canonical DeepSeek value. mapped to "${c}".`}),c}({reasoningEffort:t.reasoningEffort,warnings:y}):(0,c.isCustomReasoning)(l)&&"none"!==l?(0,c.mapReasoningToProviderEffort)({reasoning:l,effortMap:{minimal:"low",low:"low",medium:"high",high:"high",xhigh:"max"},warnings:y}):void 0;return{args:{model:this.modelId,...(!0===t.logprobs||null!=t.topLogprobs)&&{logprobs:!0},...null!=t.topLogprobs&&{top_logprobs:t.topLogprobs},max_tokens:d,temperature:E?void 0:e,top_p:E?void 0:f,frequency_penalty:v?j:void 0,presence_penalty:v?k:void 0,response_format:p?.type==="json"?u&&null!=p.schema?{type:"json_schema",json_schema:{schema:p.schema,strict:t.strictJsonSchema??!0,name:p.name??"response",description:p.description}}:{type:"json_object"}:void 0,stop:o,messages:w,tools:z,tool_choice:A,thinking:D,...null!=t.userId&&{user_id:t.userId},...D?.type!=="disabled"&&null!=F&&{reasoning_effort:F}},warnings:[...y,...B]}}async doGenerate(a){let{args:d,warnings:e}=await this.getArgs({...a}),{responseHeaders:f,value:g,rawValue:h}=await (0,c.postJsonToApi)({url:this.config.url({path:"/chat/completions",modelId:this.modelId}),headers:(0,c.combineHeaders)(this.config.headers?.(),a.headers),body:d,failedResponseHandler:this.failedResponseHandler,successfulResponseHandler:(0,c.createJsonResponseHandler)(s),abortSignal:a.abortSignal,fetch:this.config.fetch}),i=g.choices[0];if(null==i)throw new b.InvalidResponseDataError({data:h,message:"Response did not contain any choices."});let j=[],k=i.message.reasoning_content;if(null!=k&&k.length>0&&j.push({type:"reasoning",text:k}),null!=i.message.tool_calls)for(let a of i.message.tool_calls)j.push({type:"tool-call",toolCallId:a.id||(0,c.generateId)(),toolName:a.function.name,input:a.function.arguments});let l=i.message.content;return null!=l&&l.length>0&&j.push({type:"text",text:l}),{content:j,finishReason:{unified:u(i.finish_reason),raw:i.finish_reason??void 0},usage:n(g.usage),providerMetadata:{[this.providerOptionsName]:{promptCacheHitTokens:g.usage?.prompt_cache_hit_tokens,promptCacheMissTokens:g.usage?.prompt_cache_miss_tokens,...null!=g.object&&{responseObject:g.object},...null!=i.index&&{choiceIndex:i.index},...null!=i.message.role&&{messageRole:i.message.role},...null!=i.message.tool_calls&&{toolCallTypes:i.message.tool_calls.map(a=>a.type).filter(a=>null!=a)},...null!=i.logprobs&&{logprobs:i.logprobs},...null!=g.system_fingerprint&&{systemFingerprint:g.system_fingerprint}}},request:{body:d},response:{...(0,c.createLanguageModelResponseMetadata)(g),headers:f,body:h},warnings:e}}async doStream(a){let b,d,e,f,g,h,{args:i,warnings:j}=await this.getArgs({...a}),k={...i,stream:!0,stream_options:{include_usage:!0}},{responseHeaders:l,value:m}=await (0,c.postJsonToApi)({url:this.config.url({path:"/chat/completions",modelId:this.modelId}),headers:(0,c.combineHeaders)(this.config.headers?.(),a.headers),body:k,failedResponseHandler:this.failedResponseHandler,successfulResponseHandler:(0,c.createEventSourceResponseHandler)(t),abortSignal:a.abortSignal,fetch:this.config.fetch}),o={unified:"other",raw:void 0},p=!0,q=this.providerOptionsName,r=!1,s=!1,v=new Map,w=[],x=[];return{stream:m.pipeThrough(new TransformStream({start(a){b=new c.StreamingToolCallTracker(a,{generateId:c.generateId}),a.enqueue({type:"stream-start",warnings:j})},transform(i,j){if(a.includeRawChunks&&j.enqueue({type:"raw",rawValue:i.rawValue}),!i.success){o={unified:"error",raw:void 0},j.enqueue({type:"error",error:i.error});return}let k=i.value;if("error"in k){var l;let a;o={unified:"error",raw:void 0},j.enqueue({type:"error",error:(l=k.error,a=function(a){var b,c;let d;if("insufficient_quota"===a.code||"insufficient_quota"===a.type)return{statusCode:429,isRetryable:!1};let e="number"==typeof(d="string"==typeof(b=a.code)&&/^\d{3}$/.test(b)?Number(b):b)&&Number.isInteger(d)&&d>=400&&d<=599?d:void 0;if(null!=e){return{statusCode:e,isRetryable:408===(c=e)||409===c||429===c||c>=500}}for(let b of[a.code,a.type])switch(b){case"rate_limit_exceeded":case"rate_limit_error":return{statusCode:429,isRetryable:!0};case"server_error":case"api_error":case"internal_server_error":return{statusCode:500,isRetryable:!0};case"overloaded_error":case"service_unavailable":return{statusCode:503,isRetryable:!0};case"timeout":case"timeout_error":return{statusCode:504,isRetryable:!0};case"authentication_error":case"invalid_api_key":return{statusCode:401,isRetryable:!1};case"permission_error":return{statusCode:403,isRetryable:!1};case"not_found_error":case"model_not_found":return{statusCode:404,isRetryable:!1};case"bad_request":case"context_length_exceeded":case"invalid_request_error":return{statusCode:400,isRetryable:!1}}return{}}(l),(0,c.createProviderStreamError)({message:l.message,type:l.type??void 0,code:l.code??void 0,...a,data:k}))});return}p&&(p=!1,j.enqueue({type:"response-metadata",...(0,c.createLanguageModelResponseMetadata)(k)})),null!=k.usage&&(g=k.usage),null!=k.object&&(d=k.object),null!=k.system_fingerprint&&(h=k.system_fingerprint);let m=k.choices[0];if(m?.index!=null&&(e=m.index),m?.finish_reason!=null&&(o={unified:u(m.finish_reason),raw:m.finish_reason}),m?.logprobs?.content!=null&&w.push(...m.logprobs.content),m?.logprobs?.reasoning_content!=null&&x.push(...m.logprobs.reasoning_content),m?.delta==null)return;let n=m.delta;null!=n.role&&(f=n.role);let q=n.reasoning_content;if(q&&(r||(j.enqueue({type:"reasoning-start",id:"reasoning-0"}),r=!0),j.enqueue({type:"reasoning-delta",id:"reasoning-0",delta:q})),n.content&&(s||(j.enqueue({type:"text-start",id:"txt-0"}),s=!0),r&&(j.enqueue({type:"reasoning-end",id:"reasoning-0"}),r=!1),j.enqueue({type:"text-delta",id:"txt-0",delta:n.content})),null!=n.tool_calls&&n.tool_calls.length>0)for(let a of(r&&(j.enqueue({type:"reasoning-end",id:"reasoning-0"}),r=!1),n.tool_calls))null!=a.type&&v.set(a.index,a.type),b.processDelta(a)},flush(a){r&&a.enqueue({type:"reasoning-end",id:"reasoning-0"}),s&&a.enqueue({type:"text-end",id:"txt-0"}),b.flush(),a.enqueue({type:"finish",finishReason:o,usage:n(g),providerMetadata:{[q]:{promptCacheHitTokens:g?.prompt_cache_hit_tokens??void 0,promptCacheMissTokens:g?.prompt_cache_miss_tokens??void 0,...null!=d&&{responseObject:d},...null!=e&&{choiceIndex:e},...null!=f&&{messageRole:f},...v.size>0&&{toolCallTypes:[...v.entries()].sort(([a],[b])=>a-b).map(([,a])=>a)},...(w.length>0||x.length>0)&&{logprobs:{...w.length>0&&{content:w},...x.length>0&&{reasoning_content:x}}},...null!=h&&{systemFingerprint:h}}}})}})),request:{body:k},response:{headers:l}}}};let w=(0,c.lazySchema)(()=>(0,c.zodSchema)(e.z.object({id:e.z.string(),object:e.z.literal("file").nullish(),bytes:e.z.number().int().nonnegative().nullish(),created_at:e.z.number().int().nonnegative().nullish(),filename:e.z.string().nullish(),purpose:e.z.literal("user_data").nullish(),expires_at:e.z.number().int().nonnegative().nullish()}))),x=(0,c.lazySchema)(()=>(0,c.zodSchema)(e.z.object({expiresAfter:e.z.number().int().min(3600).max(2592e3).optional()}))),y=(0,c.createJsonErrorResponseHandler)({errorSchema:p,errorToMessage:a=>a.error.message}),z=new Set(["image/gif","image/jpeg","image/jpg","image/png","image/webp"]),A=new Set(["","application/binary","application/octet-stream","binary/octet-stream","image","image/*"]),B=new Set(["gif","jpeg","jpg","png","webp"]);var C=class{get provider(){return this.config.provider}constructor(a){this.config=a,this.specificationVersion="v4"}async uploadFile({data:a,mediaType:d,filename:e,abortSignal:f,headers:g,providerOptions:h}){let i=await (0,c.parseProviderOptions)({provider:"deepseek",providerOptions:h,schema:x}),j=(0,c.convertInlineFileDataToUint8Array)(a);!function({fileBytes:a,mediaType:d,filename:e}){if(a.length>0x4000000)throw new b.InvalidArgumentError({argument:"data",message:`DeepSeek file uploads must not exceed 64 MiB (${0x4000000.toLocaleString("en-US")} bytes). Received ${a.length.toLocaleString("en-US")} bytes.`});if(null!=e){let a=Array.from(e).length;if(a>512)throw new b.InvalidArgumentError({argument:"filename",message:`DeepSeek filenames must not exceed 512 characters. Received ${a} characters.`})}let f=d.split(";",1)[0].trim().toLowerCase(),g=(0,c.detectMediaType)({data:a});if(null!=g&&!z.has(g))throw new b.InvalidArgumentError({argument:"data",message:`DeepSeek file uploads support JPEG, PNG, GIF, and WebP images. Detected unsupported file content type "${g}".`});if(!z.has(f)){if(!A.has(f))throw new b.InvalidArgumentError({argument:"mediaType",message:`DeepSeek file uploads support JPEG, PNG, GIF, and WebP images. Received unsupported media type "${d}".`});if(!(null!=g||function(a){if(null==a)return!1;let b=a.lastIndexOf(".");return -1!==b&&B.has(a.slice(b+1).toLowerCase())}(e)))throw new b.InvalidArgumentError({argument:"mediaType",message:`DeepSeek file uploads support JPEG, PNG, GIF, and WebP images. Provide a supported media type or a filename ending in .jpg, .jpeg, .png, .gif, or .webp. Received "${d}".`})}}({fileBytes:j,mediaType:d,filename:e});let k=new Blob([j],{type:d}),l=new FormData;null!=e?l.append("file",k,e):l.append("file",k),l.append("purpose","user_data"),i?.expiresAfter!=null&&(l.append("expires_after[anchor]","created_at"),l.append("expires_after[seconds]",String(i.expiresAfter)));let{value:m}=await (0,c.postFormDataToApi)({url:`${this.config.baseURL}/files`,headers:(0,c.combineHeaders)(this.config.headers(),g),formData:l,failedResponseHandler:y,successfulResponseHandler:(0,c.createJsonResponseHandler)(w),abortSignal:f,fetch:this.config.fetch});return{warnings:[],providerReference:{deepseek:m.id},...m.filename??e?{filename:m.filename??e}:{},...null!=d?{mediaType:d}:{},providerMetadata:{deepseek:{...null!=m.object?{object:m.object}:{},...null!=m.filename?{filename:m.filename}:{},...null!=m.purpose?{purpose:m.purpose}:{},...null!=m.bytes?{bytes:m.bytes}:{},...null!=m.created_at?{createdAt:m.created_at}:{},...null!=m.expires_at?{expiresAt:m.expires_at}:{}}}}}};function D(a={}){let d=(0,c.withoutTrailingSlash)(a.baseURL??"https://api.deepseek.com")??"https://api.deepseek.com",e=()=>(0,c.withUserAgentSuffix)({Authorization:`Bearer ${(0,c.loadApiKey)({apiKey:a.apiKey,environmentVariableName:"DEEPSEEK_API_KEY",description:"DeepSeek API key"})}`,...a.headers},"ai-sdk-deepseek/3.0.57"),f=b=>new v(b,{provider:"deepseek.chat",url:({path:a})=>`${d}${a}`,headers:e,fetch:a.fetch,supportsAssistantPrefixCompletion:d.endsWith("/beta"),supportsStrictToolCalls:d.endsWith("/beta")}),g=a=>f(a);return g.specificationVersion="v4",g.languageModel=f,g.chat=f,g.files=()=>new C({provider:"deepseek.files",baseURL:d,headers:e,fetch:a.fetch}),g.embeddingModel=a=>{throw new b.NoSuchModelError({modelId:a,modelType:"embeddingModel"})},g.textEmbeddingModel=g.embeddingModel,g.imageModel=a=>{throw new b.NoSuchModelError({modelId:a,modelType:"imageModel"})},g}D(),a.s(["createDeepSeek",0,D])},767071,a=>{"use strict";var b=a.i(912735),c=a.i(527990),d=a.i(53112),e=a.i(404989);let f=(0,c.lazySchema)(()=>(0,c.zodSchema)(d.z.object({request_id:d.z.string()}))),g=(0,c.lazySchema)(()=>(0,c.zodSchema)(d.z.object({id:d.z.string(),status:d.z.string(),result:d.z.object({sample:d.z.string().optional()}).nullable()}))),h=(0,c.lazySchema)(()=>(0,c.zodSchema)(d.z.looseObject({guidance_scale:d.z.number().optional(),num_inference_steps:d.z.number().int().optional(),output_format:d.z.enum(["jpeg","png"]).optional(),webhook_url:d.z.string().optional(),webhook_secret:d.z.string().optional(),prompt_upsampling:d.z.boolean().optional(),safety_tolerance:d.z.number().int().min(0).max(6).optional(),cfg_scale:d.z.number().optional(),steps:d.z.number().int().optional()}))),i={"accounts/fireworks/models/flux-1-dev-fp8":{urlFormat:"workflows"},"accounts/fireworks/models/flux-1-schnell-fp8":{urlFormat:"workflows"},"accounts/fireworks/models/flux-kontext-pro":{urlFormat:"workflows_async",supportsEditing:!0},"accounts/fireworks/models/flux-kontext-max":{urlFormat:"workflows_async",supportsEditing:!0},"accounts/fireworks/models/playground-v2-5-1024px-aesthetic":{urlFormat:"image_generation",supportsSize:!0},"accounts/fireworks/models/japanese-stable-diffusion-xl":{urlFormat:"image_generation",supportsSize:!0},"accounts/fireworks/models/playground-v2-1024px-aesthetic":{urlFormat:"image_generation",supportsSize:!0},"accounts/fireworks/models/stable-diffusion-xl-1024-v1-0":{urlFormat:"image_generation",supportsSize:!0},"accounts/fireworks/models/SSD-1B":{urlFormat:"image_generation",supportsSize:!0}};function j(a,b){switch(i[b]?.urlFormat){case"image_generation":return`${a}/image_generation/${b}`;case"workflows_async":return`${a}/workflows/${b}`;default:return`${a}/workflows/${b}/text_to_image`}}var k=class a{get supportsFileInputs(){return"accounts/fireworks/models/flux-kontext-pro"===this.modelId||"accounts/fireworks/models/flux-kontext-max"===this.modelId||!["accounts/fireworks/models/flux-1-dev-fp8","accounts/fireworks/models/flux-1-schnell-fp8","accounts/fireworks/models/playground-v2-5-1024px-aesthetic","accounts/fireworks/models/japanese-stable-diffusion-xl","accounts/fireworks/models/playground-v2-1024px-aesthetic","accounts/fireworks/models/SSD-1B","accounts/fireworks/models/stable-diffusion-xl-1024-v1-0"].includes(this.modelId)&&void 0}get supportsMaskInputs(){return null==this.supportsFileInputs&&void 0}get provider(){return this.config.provider}static[b.WORKFLOW_SERIALIZE](a){return(0,c.serializeModelOptions)({modelId:a.modelId,config:a.config})}static[b.WORKFLOW_DESERIALIZE](b){return new a(b.modelId,b.config)}constructor(a,b){this.modelId=a,this.config=b,this.specificationVersion="v4",this.maxImagesPerCall=1}async doGenerate({prompt:a,n:b,size:d,aspectRatio:e,seed:f,providerOptions:g,headers:k,abortSignal:l,files:m,mask:n}){let o,p=[],q=i[this.modelId];q?.supportsSize||null==d||p.push({type:"unsupported",feature:"size",details:"This model does not support the `size` option. Use `aspectRatio` instead."}),q?.supportsSize&&null!=e&&p.push({type:"unsupported",feature:"aspectRatio",details:"This model does not support the `aspectRatio` option."}),null!=m&&m.length>0&&(o=(0,c.convertImageModelFileToDataUri)(m[0]),m.length>1&&p.push({type:"other",message:"Fireworks only supports a single input image. Additional images are ignored."})),null!=n&&p.push({type:"unsupported",feature:"mask",details:"Fireworks Kontext models do not support explicit masks. Use the prompt to describe the areas to edit."});let r=d?.split("x"),s=this.config._internal?.currentDate?.()??new Date,t=(0,c.combineHeaders)(this.config.headers?.(),k),u=await (0,c.parseProviderOptions)({provider:"fireworks",providerOptions:g,schema:h})??{},v={prompt:a,aspect_ratio:e,seed:f,samples:b,...o&&{input_image:o},...r&&{width:r[0],height:r[1]},...u};if(q?.urlFormat==="workflows_async")return this.doGenerateAsync({body:v,headers:t,abortSignal:l,warnings:p,currentDate:s});let{value:w,responseHeaders:x}=await (0,c.postJsonToApi)({url:j(this.config.baseURL,this.modelId),headers:t,body:v,failedResponseHandler:(0,c.createStatusCodeErrorResponseHandler)(),successfulResponseHandler:(0,c.createBinaryResponseHandler)(),abortSignal:l,fetch:this.config.fetch});return{images:[w],warnings:p,response:{timestamp:s,modelId:this.modelId,headers:x}}}async doGenerateAsync({body:a,headers:b,abortSignal:d,warnings:e,currentDate:g}){let{value:h}=await (0,c.postJsonToApi)({url:j(this.config.baseURL,this.modelId),headers:b,body:a,failedResponseHandler:(0,c.createStatusCodeErrorResponseHandler)(),successfulResponseHandler:(0,c.createJsonResponseHandler)(f),abortSignal:d,fetch:this.config.fetch}),i=h.request_id,k=await this.pollForImageUrl({requestId:i,headers:b,abortSignal:d}),{value:l,responseHeaders:m}=await (0,c.getFromApi)({url:k,validateUrl:!0,credentialedOrigin:this.config.baseURL,trustedOrigin:this.config.baseURL,headers:b,abortSignal:d,failedResponseHandler:(0,c.createStatusCodeErrorResponseHandler)(),successfulResponseHandler:(0,c.createBinaryResponseHandler)(),fetch:this.config.fetch});return{images:[l],warnings:e,response:{timestamp:g,modelId:this.modelId,headers:m}}}async pollForImageUrl({requestId:a,headers:b,abortSignal:d}){var e,f;let h=this.config.pollIntervalMillis??500,i=this.config.pollTimeoutMillis??12e4,j=(e=this.config.baseURL,f=this.modelId,`${e}/workflows/${f}/get_result`),k=new AbortController,l=!1,m=setTimeout(()=>{l=!0,k.abort()},i),n=null==d?k.signal:AbortSignal.any([d,k.signal]);try{for(;;){let{value:d}=await (0,c.postJsonToApi)({url:j,headers:b,body:{id:a},failedResponseHandler:(0,c.createStatusCodeErrorResponseHandler)(),successfulResponseHandler:(0,c.createJsonResponseHandler)(g),abortSignal:n,fetch:this.config.fetch}),e=d.status;if("Ready"===e){let a=d.result?.sample;if("string"==typeof a)return a;throw Error("Fireworks poll response is Ready but missing result.sample")}if("Error"===e||"Failed"===e)throw Error(`Fireworks image generation failed with status: ${e}`);await (0,c.delay)(h,{abortSignal:n})}}catch(a){if(l)throw Error(`Fireworks image generation timed out after ${i}ms`);throw a}finally{clearTimeout(m)}}};let l={errorSchema:d.z.object({error:d.z.union([d.z.string(),d.z.object({message:d.z.string(),object:d.z.string().nullish(),type:d.z.string().nullish(),param:d.z.any().nullish(),code:d.z.union([d.z.string(),d.z.number()]).nullish()})])}),errorToMessage:a=>"string"==typeof a.error?a.error:a.error.message},m="https://api.fireworks.ai/inference/v1";function n(a={}){let b=(0,c.withoutTrailingSlash)(a.baseURL??m),d=()=>(0,c.withUserAgentSuffix)({Authorization:`Bearer ${(0,c.loadApiKey)({apiKey:a.apiKey,environmentVariableName:"FIREWORKS_API_KEY",description:"Fireworks API key"})}`,...a.headers},"ai-sdk-fireworks/3.0.63"),f=c=>({provider:`fireworks.${c}`,url:({path:a})=>`${b}${a}`,headers:d,fetch:a.fetch}),g=a=>new e.OpenAICompatibleChatLanguageModel(a,{...f("chat"),includeUsage:!0,errorStructure:l,supportsStructuredOutputs:!0,transformRequestBody:a=>{let b=a.thinking,c=a.reasoningHistory,d=a.promptCacheKey,e=a.serviceTier,{thinking:f,reasoningHistory:g,promptCacheKey:h,serviceTier:i,reasoning_effort:j,...k}=a;return{...k,...null!=j&&{reasoning_effort:"minimal"===j?"low":"xhigh"===j?"high":j},...void 0!==d&&{prompt_cache_key:d},...void 0!==e&&{service_tier:e},...b&&{thinking:{type:b.type,...void 0!==b.budgetTokens&&{budget_tokens:b.budgetTokens}}},...c&&{reasoning_history:c}}}}),h=a=>new e.OpenAICompatibleEmbeddingModel(a,{...f("embedding"),errorStructure:l}),i=a=>new k(a,{...f("image"),baseURL:b??m}),j=a=>g(a);return j.specificationVersion="v4",j.completionModel=a=>new e.OpenAICompatibleCompletionLanguageModel(a,{...f("completion"),includeUsage:!0,errorStructure:l}),j.chatModel=g,j.languageModel=g,j.embeddingModel=h,j.textEmbeddingModel=h,j.image=i,j.imageModel=i,j}n(),a.s(["createFireworks",0,n])},140358,a=>{"use strict";var b=a.i(527990),c=a.i(912735),d=a.i(235229),e=a.i(652685),f=a.i(53112);let g=(0,b.lazySchema)(()=>(0,b.zodSchema)(f.z.object({error:f.z.object({code:f.z.number().nullable(),message:f.z.string(),status:f.z.string(),details:f.z.array(f.z.unknown()).nullish()})}))),h=(0,b.createJsonErrorResponseHandler)({errorSchema:g,errorToMessage:a=>a.error.message}),i=f.z.union([f.z.object({text:f.z.string()}),f.z.object({inlineData:f.z.object({mimeType:f.z.string(),data:f.z.string()})}),f.z.object({fileData:f.z.object({fileUri:f.z.string(),mimeType:f.z.string()})})]),j=(0,b.lazySchema)(()=>(0,b.zodSchema)(f.z.object({outputDimensionality:f.z.number().optional(),taskType:f.z.enum(["SEMANTIC_SIMILARITY","CLASSIFICATION","CLUSTERING","RETRIEVAL_DOCUMENT","RETRIEVAL_QUERY","QUESTION_ANSWERING","FACT_VERIFICATION","CODE_RETRIEVAL_QUERY"]).optional(),content:f.z.array(f.z.array(i).min(1).nullable()).optional()})));var k=class a{static[c.WORKFLOW_SERIALIZE](a){return(0,b.serializeModelOptions)({modelId:a.modelId,config:a.config})}static[c.WORKFLOW_DESERIALIZE](b){return new a(b.modelId,b.config)}get provider(){return this.config.provider}constructor(a,c){this.specificationVersion="v4",this.maxEmbeddingsPerCall=100,this.supportsParallelCalls=!0,this[b.EXPERIMENTAL_EMBEDDING_MODEL_PROVIDER_OPTIONS_TRANSFORMER]=({providerOptions:a,values:b,startIndex:c,endIndex:d})=>{let e=a?.google?.content;return Array.isArray(e)?(n({multimodalContent:e,values:b}),{...a,google:{...a?.google,content:e.slice(c,d)}}):a},this.modelId=a,this.config=c}async doEmbed({values:a,headers:c,abortSignal:d,providerOptions:f}){let g=await (0,b.parseProviderOptions)({provider:"google",providerOptions:f,schema:j});if(a.length>this.maxEmbeddingsPerCall)throw new e.TooManyEmbeddingValuesForCallError({provider:this.provider,modelId:this.modelId,maxEmbeddingsPerCall:this.maxEmbeddingsPerCall,values:a});let i=(0,b.combineHeaders)(this.config.headers?await (0,b.resolve)(this.config.headers):void 0,c),k=g?.content;if(n({multimodalContent:k,values:a}),1===a.length){let c=k?.[0],e=a[0]?[{text:a[0]}]:[],f=null!=c?[...e,...c]:[{text:a[0]}],{responseHeaders:j,value:l,rawValue:n}=await (0,b.postJsonToApi)({url:`${this.config.baseURL}/models/${this.modelId}:embedContent`,headers:i,body:{model:`models/${this.modelId}`,content:{parts:f},outputDimensionality:g?.outputDimensionality,taskType:g?.taskType},failedResponseHandler:h,successfulResponseHandler:(0,b.createJsonResponseHandler)(m),abortSignal:d,fetch:this.config.fetch});return{warnings:[],embeddings:[l.embedding.values],usage:void 0,response:{headers:j,body:n}}}let{responseHeaders:o,value:p,rawValue:q}=await (0,b.postJsonToApi)({url:`${this.config.baseURL}/models/${this.modelId}:batchEmbedContents`,headers:i,body:{requests:a.map((a,b)=>{let c=k?.[b];return{model:`models/${this.modelId}`,content:{role:"user",parts:null!=c?[...a?[{text:a}]:[],...c]:[{text:a}]},outputDimensionality:g?.outputDimensionality,taskType:g?.taskType}})},failedResponseHandler:h,successfulResponseHandler:(0,b.createJsonResponseHandler)(l),abortSignal:d,fetch:this.config.fetch});return{warnings:[],embeddings:p.embeddings.map(a=>a.values),usage:void 0,response:{headers:o,body:q}}}};let l=(0,b.lazySchema)(()=>(0,b.zodSchema)(f.z.object({embeddings:f.z.array(f.z.object({values:f.z.array(f.z.number())}))}))),m=(0,b.lazySchema)(()=>(0,b.zodSchema)(f.z.object({embedding:f.z.object({values:f.z.array(f.z.number())})})));function n({multimodalContent:a,values:b}){if(null!=a&&a.length!==b.length)throw Error(`The number of multimodal content entries (${a.length}) must match the number of values (${b.length}).`)}function o(a){return a.includes("/")?a:`models/${a}`}function p(a){if(null==a)return(0,b.createNullLanguageModelUsage)();let c=a.promptTokenCount??0,d=a.candidatesTokenCount??0,e=a.toolUsePromptTokenCount??0,f=a.cachedContentTokenCount??0,g=a.thoughtsTokenCount??0,h=c+e;return{inputTokens:{total:h,noCache:h-f,cacheRead:f,cacheWrite:void 0},outputTokens:{total:d+g,text:d,reasoning:g},raw:a}}let q=f.z.object({language:f.z.string().describe("The programming language of the code."),code:f.z.string().describe("The code to be executed.")}),r=f.z.object({outcome:f.z.string().describe('The outcome of the execution (e.g., "OUTCOME_OK").'),output:f.z.string().describe("The output from the code execution.")}),s=(0,b.createProviderExecutedToolFactory)({id:"google.code_execution",inputSchema:q,outputSchema:r}),t=/^data:([^;,]+);base64,(.+)$/s;async function u(a,{abortSignal:b,maxBytes:c,supportedUrls:d={}}){let e=[];for(let f of a){if("assistant"===f.role){let a=[];for(let e of f.content)a.push("tool-result"===e.type?{...e,output:await v(e.output,{abortSignal:b,maxBytes:c,supportedUrls:d})}:e);e.push({...f,content:a});continue}if("tool"===f.role){let a=[];for(let e of f.content){if("tool-result"!==e.type){a.push(e);continue}a.push({...e,output:await v(e.output,{abortSignal:b,maxBytes:c,supportedUrls:d})})}e.push({...f,content:a});continue}e.push(f)}return e}async function v(a,{abortSignal:c,maxBytes:d,supportedUrls:e}){if("content"!==a.type)return a;let f=[];for(let g of a.value){if("file"!==g.type||"url"!==g.data.type||(0,b.isUrlSupported)({url:g.data.url.toString(),mediaType:g.mediaType,supportedUrls:e})){f.push(g);continue}let a=await (0,b.downloadBlob)(g.data.url.toString(),{abortSignal:c,maxBytes:d}),h=new Uint8Array(await a.arrayBuffer()),i=(0,b.detectMediaType)({data:h,topLevelType:"image"});f.push({...g,data:{type:"data",data:h},mediaType:i??(a.type&&!(0,b.isFullMediaType)(g.mediaType)?a.type:g.mediaType)})}return{...a,value:f}}function w(a){let{const:b,properties:c,items:d,additionalProperties:e,anyOf:f,oneOf:g,...h}=a;return{...h,...void 0!==b?{enum:[b]}:{},...null!=c?{properties:x(c)}:{},...null!=d?{items:Array.isArray(d)?d.map(y):y(d)}:{},...null!=e?{additionalProperties:"boolean"==typeof e?e:y(e)}:{},...null!=f?{anyOf:f.map(y)}:{},...null!=g?{oneOf:g.map(y)}:{},...null!=h.$defs?{$defs:x(h.$defs)}:{}}}function x(a){return Object.fromEntries(Object.entries(a).map(([a,b])=>[a,y(b)]))}function y(a){return"boolean"==typeof a?a:w(a)}let z=(0,b.lazySchema)(()=>(0,b.zodSchema)(f.z.object({responseModalities:f.z.array(f.z.enum(["TEXT","IMAGE"])).optional(),thinkingConfig:f.z.object({thinkingBudget:f.z.number().optional(),includeThoughts:f.z.boolean().optional(),thinkingLevel:f.z.enum(["minimal","low","medium","high"]).optional()}).optional(),cachedContent:f.z.string().optional(),structuredOutputs:f.z.boolean().optional(),safetySettings:f.z.array(f.z.object({category:f.z.enum(["HARM_CATEGORY_UNSPECIFIED","HARM_CATEGORY_HATE_SPEECH","HARM_CATEGORY_DANGEROUS_CONTENT","HARM_CATEGORY_HARASSMENT","HARM_CATEGORY_SEXUALLY_EXPLICIT","HARM_CATEGORY_CIVIC_INTEGRITY"]),threshold:f.z.enum(["HARM_BLOCK_THRESHOLD_UNSPECIFIED","BLOCK_LOW_AND_ABOVE","BLOCK_MEDIUM_AND_ABOVE","BLOCK_ONLY_HIGH","BLOCK_NONE","OFF"])})).optional(),threshold:f.z.enum(["HARM_BLOCK_THRESHOLD_UNSPECIFIED","BLOCK_LOW_AND_ABOVE","BLOCK_MEDIUM_AND_ABOVE","BLOCK_ONLY_HIGH","BLOCK_NONE","OFF"]).optional(),audioTimestamp:f.z.boolean().optional(),labels:f.z.record(f.z.string(),f.z.string()).optional(),mediaResolution:f.z.enum(["MEDIA_RESOLUTION_UNSPECIFIED","MEDIA_RESOLUTION_LOW","MEDIA_RESOLUTION_MEDIUM","MEDIA_RESOLUTION_HIGH"]).optional(),imageConfig:f.z.object({aspectRatio:f.z.enum(["1:1","2:3","3:2","3:4","4:3","4:5","5:4","9:16","16:9","21:9","1:8","8:1","1:4","4:1"]).optional(),imageSize:f.z.enum(["1K","2K","4K","512"]).optional(),personGeneration:f.z.enum(["PERSON_GENERATION_UNSPECIFIED","ALLOW_ALL","ALLOW_ADULT","ALLOW_NONE"]).optional(),prominentPeople:f.z.enum(["PROMINENT_PEOPLE_UNSPECIFIED","ALLOW_PROMINENT_PEOPLE","BLOCK_PROMINENT_PEOPLE"]).optional(),imageOutputOptions:f.z.object({mimeType:f.z.enum(["image/jpeg","image/png"]).optional(),compressionQuality:f.z.number().optional()}).optional()}).optional(),retrievalConfig:f.z.object({latLng:f.z.object({latitude:f.z.number(),longitude:f.z.number()}).optional()}).optional(),streamFunctionCallArguments:f.z.boolean().optional(),serviceTier:f.z.enum(["standard","flex","priority"]).optional(),sharedRequestType:f.z.enum(["priority","flex","standard"]).optional(),requestType:f.z.enum(["shared"]).optional()}))),A=/(^|\/)gemini-1(?:[.-]|$)/i,B=/(^|\/)gemini-2(?:[.-]|$)/i,C=/(^|\/)gemini-2\.5(?:[.-]|$)/i,D=/(^|\/)gemini-/i;function E(a){let b=D.test(a),c=B.test(a),d=A.test(a)||/(^|\/)gemini-pro(?:-vision)?$/i.test(a)||/(^|\/)gemini-robotics-er-1\.5(?:[.-]|$)/i.test(a),e=b&&!(d||c);return{supportsGemini2Tools:b&&!d||a.toLowerCase().includes("nano-banana"),supportsFileSearch:C.test(a)||e,usesGemini3Features:e}}function F(a){return{name:a.name,description:a.description??"",parametersJsonSchema:a.inputSchema}}var G=class{constructor(){this.accumulatedArgs={},this.jsonText="",this.pathStack=[],this.stringOpen=!1}processPartialArgs(a){let b="";for(let c of a){let a=c.jsonPath.replace(/^\$\./,"");if(!a)continue;let d=function(a){let b=[];for(let c of a.split(".")){let a=c.indexOf("[");if(-1===a)b.push(c);else for(let d of(a>0&&b.push(c.slice(0,a)),c.matchAll(/\[(\d+)\]/g)))b.push(parseInt(d[1],10))}return b}(a),e=function(a,b){let c=a;for(let a of b){if(null==c||"object"!=typeof c)return;let b=c;if(!H.call(b,a))return;c=b[a]}return c}(this.accumulatedArgs,d);if(null!=c.stringValue&&void 0!==e){let a=JSON.stringify(c.stringValue).slice(1,-1);J(this.accumulatedArgs,d,e+c.stringValue),b+=a;continue}let f=function(a){let b=a.stringValue??a.numberValue??a.boolValue;return null!=b?{value:b,json:JSON.stringify(b)}:"nullValue"in a?{value:null,json:"null"}:void 0}(c);null!=f&&(J(this.accumulatedArgs,d,f.value),b+=this.emitNavigationTo(d,c,f.json))}return this.jsonText+=b,{currentJSON:this.accumulatedArgs,textDelta:b}}finalize(){let a=JSON.stringify(this.accumulatedArgs);return{finalJSON:a,closingDelta:a.slice(this.jsonText.length)}}ensureRoot(){return 0===this.pathStack.length?(this.pathStack.push({segment:"",isArray:!1,childCount:0}),"{"):""}emitNavigationTo(a,b,c){let d="";this.stringOpen&&(d+='"',this.stringOpen=!1),d+=this.ensureRoot();let e=a.slice(0,-1),f=a[a.length-1],g=this.findCommonStackDepth(e);return d+=this.closeDownTo(g),d+=this.openDownTo(e,f),d+=this.emitLeaf(f,b,c)}findCommonStackDepth(a){let b=Math.min(this.pathStack.length-1,a.length),c=0;for(let d=0;d<b;d++)if(this.pathStack[d+1].segment===a[d])c++;else break;return c+1}closeDownTo(a){let b="";for(;this.pathStack.length>a;)b+=this.pathStack.pop().isArray?"]":"}";return b}openDownTo(a,b){let c="",d=this.pathStack.length-1;for(let e=d;e<a.length;e++){let d=a[e],f=this.pathStack[this.pathStack.length-1];f.childCount>0&&(c+=","),f.childCount++,"string"==typeof d&&(c+=`${JSON.stringify(d)}:`);let g="number"==typeof(e+1<a.length?a[e+1]:b);c+=g?"[":"{",this.pathStack.push({segment:d,isArray:g,childCount:0})}return c}emitLeaf(a,b,c){let d="",e=this.pathStack[this.pathStack.length-1];return e.childCount>0&&(d+=","),e.childCount++,"string"==typeof a&&(d+=`${JSON.stringify(a)}:`),null!=b.stringValue&&b.willContinue?(d+=c.slice(0,-1),this.stringOpen=!0):d+=c,d}};let H=Object.prototype.hasOwnProperty;function I(a,b,c){Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0})}function J(a,b,c){let d=a;for(let a=0;a<b.length-1;a++){var e;let c=b[a],f=b[a+1];e=d,H.call(e,c)&&null!=d[c]||I(d,c,"number"==typeof f?[]:{}),d=d[c]}I(d,b[b.length-1],c)}function K({finishReason:a,hasToolCalls:b}){switch(a){case"STOP":return b?"tool-calls":"stop";case"MAX_TOKENS":return"length";case"IMAGE_SAFETY":case"RECITATION":case"SAFETY":case"BLOCKLIST":case"PROHIBITED_CONTENT":case"SPII":return"content-filter";case"MALFORMED_FUNCTION_CALL":return"error";default:return"other"}}let L=["HARM_CATEGORY_HATE_SPEECH","HARM_CATEGORY_DANGEROUS_CONTENT","HARM_CATEGORY_HARASSMENT","HARM_CATEGORY_SEXUALLY_EXPLICIT"],M=/(^|\/)gemini-2\.5(?:[.-]|$)/i,N={"image/png":[/^gs:\/\/.*$/],"image/jpeg":[/^gs:\/\/.*$/],"image/webp":[/^gs:\/\/.*$/],"application/pdf":[/^gs:\/\/.*$/],"text/plain":[/^gs:\/\/.*$/]};var O=class a{static[c.WORKFLOW_SERIALIZE](a){return(0,b.serializeModelOptions)({modelId:a.modelId,config:a.config})}static[c.WORKFLOW_DESERIALIZE](b){return new a(b.modelId,b.config)}constructor(a,c){this.specificationVersion="v4",this.modelId=a,this.config=c,this.generateId=c.generateId??b.generateId}get provider(){return this.config.provider}get supportedUrls(){return this.config.supportedUrls?.()??{}}static async prepareRequest({modelId:a,config:c,options:{prompt:d,maxOutputTokens:f,temperature:g,topP:h,topK:i,frequencyPenalty:j,presencePenalty:k,stopSequences:l,responseFormat:m,seed:n,tools:o,toolChoice:p,reasoning:s,providerOptions:v,abortSignal:x},isStreaming:y=!1}){let A,B=[],C=c.provider.includes("vertex")?["googleVertex","vertex"]:["google"];for(let a of C)if(null!=(A=await (0,b.parseProviderOptions)({provider:a,providerOptions:v,schema:z})))break;null!=A||C.includes("google")||(A=await (0,b.parseProviderOptions)({provider:"google",providerOptions:v,schema:z}));let D=c.provider.startsWith("google.vertex.");o?.some(a=>"provider"===a.type&&"google.vertex_rag_store"===a.id)&&!D&&B.push({type:"other",message:`The 'vertex_rag_store' tool is only supported with the Google Vertex provider and might not be supported or could behave unexpectedly with the current Google provider (${c.provider}).`}),A?.streamFunctionCallArguments&&!D&&B.push({type:"other",message:`'streamFunctionCallArguments' is only supported on the Vertex AI API and will be ignored with the current Google provider (${c.provider}). See https://docs.cloud.google.com/vertex-ai/generative-ai/docs/multimodal/function-calling#streaming-fc`}),A?.serviceTier&&D&&B.push({type:"other",message:"'serviceTier' is a Gemini API option and is not supported on Vertex AI. Use 'sharedRequestType' (and optionally 'requestType') instead. See https://docs.cloud.google.com/vertex-ai/generative-ai/docs/priority-paygo"}),(A?.sharedRequestType||A?.requestType)&&!D&&B.push({type:"other",message:`'sharedRequestType' and 'requestType' are Vertex AI options and are ignored with the current Google provider (${c.provider}).`});let G=D&&(A?.sharedRequestType||A?.requestType)?{...A.sharedRequestType&&{"X-Vertex-AI-LLM-Shared-Request-Type":A.sharedRequestType},...A.requestType&&{"X-Vertex-AI-LLM-Request-Type":A.requestType}}:void 0,H=D?void 0:A?.serviceTier,I=A?.imageConfig;if(null!=I&&!D){let{personGeneration:a,prominentPeople:b,imageOutputOptions:d,...e}=I,f=Object.entries({personGeneration:a,prominentPeople:b,imageOutputOptions:d}).filter(([,a])=>null!=a).map(([a])=>`'imageConfig.${a}'`);f.length>0&&(B.push({type:"other",message:`${f.join(", ")} ${1===f.length?"is a Vertex AI option and is":"are Vertex AI options and are"} ignored with the current Google provider (${c.provider}).`}),I=e)}let J=a.toLowerCase().startsWith("gemma-"),K=!D&&M.test(a);K&&null!=j&&B.push({type:"unsupported",feature:"frequencyPenalty"}),K&&null!=k&&B.push({type:"unsupported",feature:"presencePenalty"});let{usesGemini3Features:O}=E(a),P=O&&c.downloadToolResultFiles?.supportsGoogleCloudStorageUrls?N:void 0,{contents:Q,systemInstruction:R}=function(a,c){let d=[],f=[],g=!0,h=c?.isGemmaModel??!1,i=c?.isGemini3Model??!1,j=c?.onWarning,k=c?.providerOptionsNames??["google"],l=!k.includes("google"),m=c?.supportsFunctionResponseParts??!0,n=c?.includeFunctionCallIds??!0,o=c?.supportedFunctionResponseUrls??{},p=!1,s=[],u=a=>(s.push(a),p=!0,"skip_thought_signature_validator"),v=a=>{for(let b of k){let c=a.providerOptions?.[b];if(null!=c)return c}return l?a.providerOptions?.google:a.providerOptions?.googleVertex??a.providerOptions?.vertex};for(let{role:c,content:h}of a)switch(c){case"system":if(!g)throw new e.UnsupportedFunctionalityError({functionality:"system messages are only supported at the beginning of the conversation"});d.push({text:h});break;case"user":{g=!1;let a=[];for(let c of h)switch(c.type){case"text":a.push({text:c.text});break;case"file":switch(c.data.type){case"url":a.push({fileData:{mimeType:(0,b.resolveFullMediaType)({part:c}),fileUri:"gs:"===c.data.url.protocol&&null!=c.data.originalUrl?c.data.originalUrl:c.data.url.toString()}});break;case"reference":if(l)throw new e.UnsupportedFunctionalityError({functionality:"file parts with provider references"});a.push({fileData:{mimeType:(0,b.resolveFullMediaType)({part:c}),fileUri:(0,b.resolveProviderReference)({reference:c.data.reference,provider:"google"})}});break;case"text":a.push({inlineData:{mimeType:(0,b.isFullMediaType)(c.mediaType)?c.mediaType:"text/plain",data:(0,b.convertToBase64)(new TextEncoder().encode(c.data.text))}});break;case"data":a.push({inlineData:{mimeType:(0,b.resolveFullMediaType)({part:c}),data:(0,b.convertToBase64)(c.data.data)}})}}f.push({role:"user",parts:a});break}case"assistant":{g=!1;let a=!1;f.push({role:"model",parts:h.map(c=>{let d=v(c),f=d?.thoughtSignature!=null?String(d.thoughtSignature):void 0;switch(c.type){case"text":return 0===c.text.length?void 0:{text:c.text,thoughtSignature:f};case"reasoning":return 0===c.text.length?void 0:{text:c.text,thought:!0,thoughtSignature:f};case"reasoning-file":switch(c.data.type){case"url":throw new e.UnsupportedFunctionalityError({functionality:"File data URLs in assistant messages are not supported"});case"data":return{inlineData:{mimeType:c.mediaType,data:(0,b.convertToBase64)(c.data.data)},thought:!0,thoughtSignature:f}}break;case"file":switch(c.data.type){case"url":throw new e.UnsupportedFunctionalityError({functionality:"File data URLs in assistant messages are not supported"});case"reference":if(l)throw new e.UnsupportedFunctionalityError({functionality:"file parts with provider references"});return{fileData:{mimeType:c.mediaType,fileUri:(0,b.resolveProviderReference)({reference:c.data.reference,provider:"google"})},...d?.thought===!0?{thought:!0}:{},thoughtSignature:f};case"text":return{inlineData:{mimeType:(0,b.isFullMediaType)(c.mediaType)?c.mediaType:"text/plain",data:(0,b.convertToBase64)(new TextEncoder().encode(c.data.text))},...d?.thought===!0?{thought:!0}:{},thoughtSignature:f};case"data":return{inlineData:{mimeType:c.mediaType,data:(0,b.convertToBase64)(c.data.data)},...d?.thought===!0?{thought:!0}:{},thoughtSignature:f}}break;case"tool-call":{if(!0===c.providerExecuted&&"code_execution"===c.toolName)return{executableCode:q.parse("string"==typeof c.input?(0,b.secureJsonParse)(c.input):c.input)};let e=d?.serverToolCallId!=null?String(d.serverToolCallId):void 0,g=d?.serverToolType!=null?String(d.serverToolType):void 0,h=null!=e&&null!=g,j=f??(i&&!(!h&&null==f&&a)?u(c.toolName):void 0);if(h||null==f||(a=!0),h)return{toolCall:{toolType:g,args:"string"==typeof c.input?(0,b.secureJsonParse)(c.input):c.input,id:e},thoughtSignature:j};return{functionCall:{...n&&null!=c.toolCallId?{id:c.toolCallId}:{},name:c.toolName,args:c.input},thoughtSignature:j}}case"tool-result":{if("code_execution"===c.toolName&&"json"===c.output.type)return{codeExecutionResult:r.parse(c.output.value)};let a=d?.serverToolCallId!=null?String(d.serverToolCallId):void 0,b=d?.serverToolType!=null?String(d.serverToolType):void 0;if(a&&b)return{toolResponse:{toolType:b,response:"json"===c.output.type?c.output.value:{},id:a},thoughtSignature:f};return}}}).filter(a=>void 0!==a)});break}case"tool":{g=!1;let a=[];for(let c of h){if("tool-approval-response"===c.type)continue;let d=v(c),e=d?.serverToolCallId!=null?String(d.serverToolCallId):void 0,g=d?.serverToolType!=null?String(d.serverToolType):void 0;if(e&&g){let a=d?.thoughtSignature!=null?String(d.thoughtSignature):void 0;if(f.length>0){let b=f[f.length-1];if("model"===b.role){b.parts.push({toolResponse:{toolType:g,response:"json"===c.output.type?c.output.value:{},id:e},thoughtSignature:a});continue}}}let h=c.output;if("content"===h.type)m?function(a,c,d,e,f=!0,g={}){let h=[],i=[];for(let a of d)switch(a.type){case"text":i.push(a.text);break;case"file":if("data"===a.data.type)h.push({inlineData:{mimeType:(0,b.resolveFullMediaType)({part:a}),data:(0,b.convertToBase64)(a.data.data)}});else if("url"===a.data.type){let c=a.data.url.toString(),d=function(a){let b=function(a){let b=t.exec(a);if(null!=b)return{mediaType:b[1],data:b[2]}}(a);if(null!=b)return{inlineData:{mimeType:b.mediaType,data:b.data}}}(c),e="gs:"===a.data.url.protocol&&null!=a.data.originalUrl?a.data.originalUrl:c;null!=d?h.push(d):(0,b.isFullMediaType)(a.mediaType)&&(0,b.isUrlSupported)({url:e,mediaType:a.mediaType,supportedUrls:g})?h.push({fileData:{mimeType:a.mediaType,fileUri:e}}):i.push(JSON.stringify(a))}else i.push(JSON.stringify(a));break;default:i.push(JSON.stringify(a))}a.push({functionResponse:{...f&&null!=e?{id:e}:{},name:c,response:{name:c,content:i.length>0?i.join("\n"):"Tool executed successfully."},...h.length>0?{parts:h}:{}}})}(a,c.toolName,h.value,c.toolCallId,n,o):function(a,c,d,e,f=!0){for(let g of d)switch(g.type){case"text":a.push({functionResponse:{...f&&null!=e?{id:e}:{},name:c,response:{name:c,content:g.text}}});break;case"file":if("data"===g.data.type){let c=(0,b.getTopLevelMediaType)(g.mediaType);a.push({inlineData:{mimeType:(0,b.resolveFullMediaType)({part:g}),data:(0,b.convertToBase64)(g.data.data)}},{text:`Tool executed successfully and returned this ${"image"===c?"image":"file"} as a response`})}else a.push({text:JSON.stringify(g)});break;default:a.push({text:JSON.stringify(g)})}}(a,c.toolName,h.value,c.toolCallId,n);else{var w;a.push({functionResponse:{...n&&null!=c.toolCallId?{id:c.toolCallId}:{},name:c.toolName,response:{name:c.toolName,content:"execution-denied"===h.type?h.reason??"Tool call execution denied.":!function a(b){return Array.isArray(b)?b.some(a):"object"==typeof b&&null!==b&&Object.entries(b).some(([b,c])=>"$ref"===b||a(c))}(w=h.value)?w:JSON.stringify(w)}}})}}f.push({role:"user",parts:a})}}if(h&&d.length>0&&f.length>0&&"user"===f[0].role){let a=d.map(a=>a.text).join("\n\n");f[0].parts.unshift({text:a+"\n\n"})}if(p&&null!=j){let a=Array.from(new Set(s));j({type:"other",message:`Replayed ${s.length} \`functionCall\` part(s) for a Gemini 3 model without a \`thoughtSignature\` (tools: ${a.map(a=>`\`${a}\``).join(", ")}). Injected the documented \`skip_thought_signature_validator\` sentinel to keep the request from failing with HTTP 400. The likely cause is application code that drops \`providerOptions.google.thoughtSignature\` when persisting or serializing assistant tool-call messages. See https://ai.google.dev/gemini-api/docs/thought-signatures.`})}return{systemInstruction:d.length>0&&!h?{parts:d}:void 0,contents:f}}(c.downloadToolResultFiles?await u(d,{abortSignal:x,maxBytes:c.downloadToolResultFiles.maxBytes,supportedUrls:P}):d,{isGemmaModel:J,isGemini3Model:O,onWarning:a=>B.push(a),providerOptionsNames:C,supportsFunctionResponseParts:O,includeFunctionCallIds:!D,supportedFunctionResponseUrls:P}),{tools:S,toolConfig:T,toolWarnings:U}=function({tools:a,toolChoice:b,modelId:c,isVertexProvider:d=!1}){a=a?.length?a:void 0;let f=[],{supportsGemini2Tools:g,supportsFileSearch:h,usesGemini3Features:i}=E(c);if(null==a)return{tools:void 0,toolConfig:void 0,toolWarnings:f};let j=a.some(a=>"function"===a.type),k=a.some(a=>"provider"===a.type);if(j&&k&&!i&&f.push({type:"unsupported",feature:"combination of function and provider-defined tools"}),k){let c=[];if(a.filter(a=>"provider"===a.type).forEach(a=>{switch(a.id){case"google.google_search":g?c.push({googleSearch:{...a.args}}):f.push({type:"unsupported",feature:`provider-defined tool ${a.id}`,details:"Google Search requires Gemini 2.0 or newer."});break;case"google.enterprise_web_search":g?c.push({enterpriseWebSearch:{}}):f.push({type:"unsupported",feature:`provider-defined tool ${a.id}`,details:"Enterprise Web Search requires Gemini 2.0 or newer."});break;case"google.url_context":g?c.push({urlContext:{}}):f.push({type:"unsupported",feature:`provider-defined tool ${a.id}`,details:"The URL context tool is not supported with other Gemini models than Gemini 2."});break;case"google.code_execution":g?c.push({codeExecution:{}}):f.push({type:"unsupported",feature:`provider-defined tool ${a.id}`,details:"The code execution tool is not supported with other Gemini models than Gemini 2."});break;case"google.file_search":h?c.push({fileSearch:{...a.args}}):f.push({type:"unsupported",feature:`provider-defined tool ${a.id}`,details:"The file search tool is only supported with Gemini 2.5 models and Gemini 3 models."});break;case"google.vertex_rag_store":g?c.push({retrieval:{vertex_rag_store:{rag_resources:{rag_corpus:a.args.ragCorpus},similarity_top_k:a.args.topK}}}):f.push({type:"unsupported",feature:`provider-defined tool ${a.id}`,details:"The RAG store tool is not supported with other Gemini models than Gemini 2."});break;case"google.google_maps":g?c.push({googleMaps:{}}):f.push({type:"unsupported",feature:`provider-defined tool ${a.id}`,details:"The Google Maps grounding tool is not supported with Gemini models other than Gemini 2 or newer."});break;default:f.push({type:"unsupported",feature:`provider-defined tool ${a.id}`})}}),j&&i&&c.length>0){let e=[];for(let b of a)"function"===b.type&&e.push(F(b));let g={functionCallingConfig:{mode:"VALIDATED"},...!d&&{includeServerSideToolInvocations:!0}};if(null!=b)switch(b.type){case"auto":break;case"none":g.functionCallingConfig={mode:"NONE"};break;case"required":g.functionCallingConfig={mode:"ANY"};break;case"tool":g.functionCallingConfig={mode:"ANY",allowedFunctionNames:[b.toolName]}}return{tools:[...c,{functionDeclarations:e}],toolConfig:g,toolWarnings:f}}return{tools:c.length>0?c:void 0,toolConfig:void 0,toolWarnings:f}}let l=[],m=!1;for(let b of a)"function"===b.type?(l.push(F(b)),!0===b.strict&&(m=!0)):f.push({type:"unsupported",feature:`function tool ${b.name}`});if(null==b)return{tools:[{functionDeclarations:l}],toolConfig:m?{functionCallingConfig:{mode:"VALIDATED"}}:void 0,toolWarnings:f};let n=b.type;switch(n){case"auto":return{tools:[{functionDeclarations:l}],toolConfig:{functionCallingConfig:{mode:m?"VALIDATED":"AUTO"}},toolWarnings:f};case"none":return{tools:[{functionDeclarations:l}],toolConfig:{functionCallingConfig:{mode:"NONE"}},toolWarnings:f};case"required":return{tools:[{functionDeclarations:l}],toolConfig:{functionCallingConfig:{mode:"ANY"}},toolWarnings:f};case"tool":return{tools:[{functionDeclarations:l}],toolConfig:{functionCallingConfig:{mode:"ANY",allowedFunctionNames:[b.toolName]}},toolWarnings:f};default:throw new e.UnsupportedFunctionalityError({functionality:`tool choice type: ${n}`})}}({tools:o,toolChoice:p,modelId:a,isVertexProvider:D}),V=(0,b.createToolNameMapping)({tools:o,providerToolNames:{"google.code_execution":"code_execution"}}),W=function({reasoning:a,modelId:c,warnings:d}){if((0,b.isCustomReasoning)(a))return E(c).usesGemini3Features&&!c.includes("gemini-3-pro-image")?function({reasoning:a,modelId:c,warnings:d}){let e=function(a){let b=a.split("/").at(-1)?.toLowerCase();if("gemini-flash-latest"===b)return"low";let c=/^gemini-(\d+)\.(\d+)-flash(?:$|-(?!lite(?:-|$)))/.exec(b??"");if(null==c)return"minimal";let d=Number(c[1]),e=Number(c[2]);return d>3||3===d&&e>=7?"low":"minimal"}(c);if("none"===a)return{thinkingLevel:e};let f=(0,b.mapReasoningToProviderEffort)({reasoning:a,effortMap:{minimal:e,low:"low",medium:"medium",high:"high",xhigh:"high"},warnings:d});if(null!=f)return{thinkingLevel:f}}({reasoning:a,modelId:c,warnings:d}):function({reasoning:a,modelId:c,warnings:d}){let e;if("none"===a)return{thinkingBudget:0};let f=(0,b.mapReasoningToProviderBudget)({reasoning:a,maxOutputTokens:65536,maxReasoningBudget:(e=c.toLowerCase()).includes("2.5-pro")||e.includes("gemini-3-pro-image")?32768:24576,minReasoningBudget:0,warnings:d});if(null!=f)return{thinkingBudget:f}}({reasoning:a,modelId:c,warnings:d})}({reasoning:s,modelId:a,warnings:B}),X=A?.thinkingConfig||W?{...W,...A?.thinkingConfig}:void 0,Y=y&&D?A?.streamFunctionCallArguments??!1:void 0,Z=A?.threshold,$=A?.safetySettings??(null!=Z?L.map(a=>({category:a,threshold:Z})):void 0),_=T||Y||A?.retrievalConfig?{...T,...Y&&{functionCallingConfig:{...T?.functionCallingConfig,streamFunctionCallArguments:!0}},...A?.retrievalConfig&&{retrievalConfig:A.retrievalConfig}}:void 0;return{args:{generationConfig:{maxOutputTokens:f,temperature:g,topK:i,topP:h,frequencyPenalty:K?void 0:j,presencePenalty:K?void 0:k,stopSequences:l,seed:n,responseMimeType:m?.type==="json"?"application/json":void 0,responseJsonSchema:m?.type==="json"&&null!=m.schema&&(A?.structuredOutputs??!0)?w(m.schema):void 0,...A?.audioTimestamp&&{audioTimestamp:A.audioTimestamp},responseModalities:A?.responseModalities,thinkingConfig:X,...A?.mediaResolution&&{mediaResolution:A.mediaResolution},...I&&{imageConfig:I}},contents:Q,systemInstruction:J?void 0:R,safetySettings:$,tools:S,toolConfig:_,cachedContent:A?.cachedContent,labels:A?.labels,serviceTier:H},warnings:[...B,...U],providerOptionsNames:C,extraHeaders:G,toolNameMapping:V}}getArgs(b,{isStreaming:c=!1}={}){return a.prepareRequest({modelId:this.modelId,config:this.config,options:b,isStreaming:c})}static convertGenerateContentResponse({config:a,response:b,warnings:c,providerOptionsNames:d,toolNameMapping:e}){let f,g,h=a=>Object.fromEntries(d.map(b=>[b,a])),i=b.candidates?.[0],j=b.promptFeedback?.blockReason,k=Z(j)?j:void 0,l=i?.finishReason==null&&null!=k,m=i?.finishReason??k,n=[],o=i?.content?.parts??[],q=b.usageMetadata;for(let b of o)if("executableCode"in b&&b.executableCode?.code){let c=a.generateId();f=c,n.push({type:"tool-call",toolCallId:c,toolName:e?.toCustomToolName("code_execution")??"code_execution",input:JSON.stringify(b.executableCode),providerExecuted:!0})}else if("codeExecutionResult"in b&&b.codeExecutionResult)n.push({type:"tool-result",toolCallId:f,toolName:e?.toCustomToolName("code_execution")??"code_execution",result:{outcome:b.codeExecutionResult.outcome,output:b.codeExecutionResult.output??""}});else if("text"in b&&null!=b.text){let a=b.thoughtSignature?h({thoughtSignature:b.thoughtSignature}):void 0;0===b.text.length?null!=a&&n.length>0&&(n[n.length-1].providerMetadata=a):n.push({type:!0===b.thought?"reasoning":"text",text:b.text,providerMetadata:a})}else if("functionCall"in b&&null!=b.functionCall.name)n.push({type:"tool-call",toolCallId:b.functionCall.id||a.generateId(),toolName:b.functionCall.name,input:JSON.stringify(b.functionCall.args??{}),providerMetadata:b.thoughtSignature?h({thoughtSignature:b.thoughtSignature}):void 0});else if("inlineData"in b){let a=!0===b.thought,c=!!b.thoughtSignature;n.push({type:a?"reasoning-file":"file",data:{type:"data",data:b.inlineData.data},mediaType:b.inlineData.mimeType,providerMetadata:c?h({thoughtSignature:b.thoughtSignature}):void 0})}else if("toolCall"in b&&b.toolCall){let c=b.toolCall.id||a.generateId();g=c,n.push({type:"tool-call",toolCallId:c,toolName:`server:${b.toolCall.toolType}`,input:JSON.stringify(b.toolCall.args??{}),providerExecuted:!0,dynamic:!0,providerMetadata:h(b.thoughtSignature?{thoughtSignature:b.thoughtSignature,serverToolCallId:c,serverToolType:b.toolCall.toolType}:{serverToolCallId:c,serverToolType:b.toolCall.toolType})})}else if("toolResponse"in b&&b.toolResponse){let c=g||b.toolResponse.id||a.generateId();n.push({type:"tool-result",toolCallId:c,toolName:`server:${b.toolResponse.toolType}`,result:b.toolResponse.response??{},providerMetadata:h(b.thoughtSignature?{thoughtSignature:b.thoughtSignature,serverToolCallId:c,serverToolType:b.toolResponse.toolType}:{serverToolCallId:c,serverToolType:b.toolResponse.toolType})}),g=void 0}for(let b of P({groundingMetadata:i?.groundingMetadata,generateId:a.generateId})??[])n.push(b);return{content:n,finishReason:{unified:l?"content-filter":K({finishReason:m,hasToolCalls:n.some(a=>"tool-call"===a.type&&!a.providerExecuted)}),raw:m},usage:p(q),warnings:c,providerMetadata:h({promptFeedback:b.promptFeedback??null,groundingMetadata:i?.groundingMetadata??null,urlContextMetadata:i?.urlContextMetadata??null,safetyRatings:i?.safetyRatings??null,usageMetadata:q??null,finishMessage:i?.finishMessage??null,serviceTier:q?.serviceTier??null}),response:{id:b.responseId??void 0}}}async doGenerate(c){let{args:d,warnings:e,providerOptionsNames:f,extraHeaders:g,toolNameMapping:i}=await this.getArgs(c),j=(0,b.combineHeaders)(this.config.headers?await (0,b.resolve)(this.config.headers):void 0,c.headers,g),{responseHeaders:k,value:l,rawValue:m}=await (0,b.postJsonToApi)({url:`${this.config.baseURL}/${o(this.modelId)}:generateContent`,headers:j,body:d,failedResponseHandler:h,successfulResponseHandler:(0,b.createJsonResponseHandler)(X),abortSignal:c.abortSignal,fetch:this.config.fetch}),n=a.convertGenerateContentResponse({config:this.config,response:l,warnings:e,providerOptionsNames:f,toolNameMapping:i});return{...n,request:{body:d},response:{...n.response,headers:k,body:m}}}async doStream(a){let c,d,e,f,{args:g,warnings:i,providerOptionsNames:j,extraHeaders:k,toolNameMapping:l}=await this.getArgs(a,{isStreaming:!0}),m=a=>Object.fromEntries(j.map(b=>[b,a])),n=(0,b.combineHeaders)(this.config.headers?await (0,b.resolve)(this.config.headers):void 0,a.headers,k),{responseHeaders:q,value:r}=await (0,b.postJsonToApi)({url:`${this.config.baseURL}/${o(this.modelId)}:streamGenerateContent?alt=sse`,headers:n,body:g,failedResponseHandler:h,successfulResponseHandler:(0,b.createEventSourceResponseHandler)(Y),abortSignal:a.abortSignal,fetch:this.config.fetch}),s={unified:"other",raw:void 0},t=null,u=null,v=null,w=null,x=null,y=this.config.generateId,z=!1,A=!1,B=null,C=null,D=0,E=new Set,F=[],H=a=>{let b=F.pop();if(null==b)return;let{finalJSON:c,closingDelta:d}=b.accumulator.finalize();d.length>0&&a.enqueue({type:"tool-input-delta",id:b.toolCallId,delta:d,providerMetadata:b.providerMetadata}),a.enqueue({type:"tool-input-end",id:b.toolCallId,providerMetadata:b.providerMetadata}),a.enqueue({type:"tool-call",toolCallId:b.toolCallId,toolName:b.toolName,input:c,providerMetadata:b.providerMetadata}),z=!0};return{stream:r.pipeThrough(new TransformStream({start(a){a.enqueue({type:"stream-start",warnings:i})},transform(b,g){if(a.includeRawChunks&&g.enqueue({type:"raw",rawValue:b.rawValue}),!b.success)return void g.enqueue({type:"error",error:b.error});let h=b.value;A||null==h.responseId||(A=!0,g.enqueue({type:"response-metadata",id:h.responseId}));let i=h.usageMetadata;null!=i&&(f=i),null!=h.promptFeedback&&null==c&&(t=h.promptFeedback,Z(h.promptFeedback.blockReason)&&(s={unified:"content-filter",raw:c=h.promptFeedback.blockReason}));let j=h.candidates?.[0];if(null!=j&&(null!=j.groundingMetadata&&(u=j.groundingMetadata),null!=j.urlContextMetadata&&(v=j.urlContextMetadata),null!=j.safetyRatings&&(w=j.safetyRatings),null!=j.finishMessage&&(x=j.finishMessage)),null!=c||null==j)return;let k=j.content,n=P({groundingMetadata:j.groundingMetadata,generateId:y});if(null!=n)for(let a of n)"url"!==a.sourceType||E.has(a.url)||(E.add(a.url),g.enqueue(a));if(null!=k){let a=k.parts??[];for(let b of a)if("executableCode"in b&&b.executableCode?.code){let a=y();d=a,g.enqueue({type:"tool-call",toolCallId:a,toolName:l.toCustomToolName("code_execution"),input:JSON.stringify(b.executableCode),providerExecuted:!0})}else if("codeExecutionResult"in b&&b.codeExecutionResult){let a=d;a&&g.enqueue({type:"tool-result",toolCallId:a,toolName:l.toCustomToolName("code_execution"),result:{outcome:b.codeExecutionResult.outcome,output:b.codeExecutionResult.output??""}})}else if("text"in b&&null!=b.text){let a=b.thoughtSignature?m({thoughtSignature:b.thoughtSignature}):void 0;0===b.text.length?null!=a&&null!==B&&g.enqueue({type:"text-delta",id:B,delta:"",providerMetadata:a}):!0===b.thought?(null!==B&&(g.enqueue({type:"text-end",id:B}),B=null),null===C&&(C=String(D++),g.enqueue({type:"reasoning-start",id:C,providerMetadata:a})),g.enqueue({type:"reasoning-delta",id:C,delta:b.text,providerMetadata:a})):(null!==C&&(g.enqueue({type:"reasoning-end",id:C}),C=null),null===B&&(B=String(D++),g.enqueue({type:"text-start",id:B,providerMetadata:a})),g.enqueue({type:"text-delta",id:B,delta:b.text,providerMetadata:a}))}else if("inlineData"in b){null!==B&&(g.enqueue({type:"text-end",id:B}),B=null),null!==C&&(g.enqueue({type:"reasoning-end",id:C}),C=null);let a=!0===b.thought,c=b.thoughtSignature?m({thoughtSignature:b.thoughtSignature}):void 0;g.enqueue({type:a?"reasoning-file":"file",mediaType:b.inlineData.mimeType,data:{type:"data",data:b.inlineData.data},providerMetadata:c})}else if("toolCall"in b&&b.toolCall){let a=b.toolCall.id||y();e=a;let c=m({...b.thoughtSignature?{thoughtSignature:b.thoughtSignature}:{},serverToolCallId:a,serverToolType:b.toolCall.toolType});g.enqueue({type:"tool-call",toolCallId:a,toolName:`server:${b.toolCall.toolType}`,input:JSON.stringify(b.toolCall.args??{}),providerExecuted:!0,dynamic:!0,providerMetadata:c})}else if("toolResponse"in b&&b.toolResponse){let a=e||b.toolResponse.id||y(),c=m({...b.thoughtSignature?{thoughtSignature:b.thoughtSignature}:{},serverToolCallId:a,serverToolType:b.toolResponse.toolType});g.enqueue({type:"tool-result",toolCallId:a,toolName:`server:${b.toolResponse.toolType}`,result:b.toolResponse.response??{},providerMetadata:c}),e=void 0}for(let b of a){if(!("functionCall"in b))continue;let a=b.thoughtSignature?m({thoughtSignature:b.thoughtSignature}):void 0,c=null!=b.functionCall.partialArgs||null!=b.functionCall.name&&!0===b.functionCall.willContinue,d=null==b.functionCall.name&&null==b.functionCall.args&&null==b.functionCall.partialArgs&&null==b.functionCall.willContinue,e=null!=b.functionCall.name&&null!=b.functionCall.args&&null==b.functionCall.partialArgs,f=null!=b.functionCall.name&&null==b.functionCall.args&&null==b.functionCall.partialArgs&&!0!==b.functionCall.willContinue;if(c){if(null!=b.functionCall.name){let c=b.functionCall.id||y(),d=new G;if(F.push({toolCallId:c,toolName:b.functionCall.name,accumulator:d,providerMetadata:a}),g.enqueue({type:"tool-input-start",id:c,toolName:b.functionCall.name,providerMetadata:a}),null!=b.functionCall.partialArgs){let e=b.functionCall.partialArgs,{textDelta:f}=d.processPartialArgs(e);f.length>0&&g.enqueue({type:"tool-input-delta",id:c,delta:f,providerMetadata:a}),!0!==b.functionCall.willContinue&&e.every(a=>!0!==a.willContinue)&&H(g)}}else if(null!=b.functionCall.partialArgs&&F.length>0){let c=F[F.length-1],d=b.functionCall.partialArgs,{textDelta:e}=c.accumulator.processPartialArgs(d);e.length>0&&g.enqueue({type:"tool-input-delta",id:c.toolCallId,delta:e,providerMetadata:a}),!0!==b.functionCall.willContinue&&d.every(a=>!0!==a.willContinue)&&H(g)}}else if(d&&F.length>0)H(g);else if(e){let c=b.functionCall.id||y(),d=b.functionCall.name,e="string"==typeof b.functionCall.args?b.functionCall.args:JSON.stringify(b.functionCall.args??{});g.enqueue({type:"tool-input-start",id:c,toolName:d,providerMetadata:a}),g.enqueue({type:"tool-input-delta",id:c,delta:e,providerMetadata:a}),g.enqueue({type:"tool-input-end",id:c,providerMetadata:a}),g.enqueue({type:"tool-call",toolCallId:c,toolName:d,input:e,providerMetadata:a}),z=!0}else if(f){let c=b.functionCall.id||y(),d=b.functionCall.name;g.enqueue({type:"tool-input-start",id:c,toolName:d,providerMetadata:a}),g.enqueue({type:"tool-input-end",id:c,providerMetadata:a}),g.enqueue({type:"tool-call",toolCallId:c,toolName:d,input:"{}",providerMetadata:a}),z=!0}}}null!=j.finishReason&&(s={unified:K({finishReason:j.finishReason,hasToolCalls:z}),raw:j.finishReason})},flush(a){null!==B&&a.enqueue({type:"text-end",id:B}),null!==C&&a.enqueue({type:"reasoning-end",id:C}),a.enqueue({type:"finish",finishReason:s,usage:p(f),providerMetadata:m({promptFeedback:t,groundingMetadata:u,urlContextMetadata:v,safetyRatings:w,usageMetadata:f??null,finishMessage:x,serviceTier:f?.serviceTier??null})})}})),response:{headers:q},request:{body:g}}}};function P({groundingMetadata:a,generateId:b}){if(!a?.groundingChunks)return;let c=[];for(let d of a.groundingChunks)if(null!=d.web)c.push({type:"source",sourceType:"url",id:b(),url:d.web.uri,title:d.web.title??void 0});else if(null!=d.image)c.push({type:"source",sourceType:"url",id:b(),url:d.image.sourceUri,title:d.image.title??void 0});else if(null!=d.retrievedContext){let a=d.retrievedContext.uri,e=d.retrievedContext.fileSearchStore;if(a&&(a.startsWith("http://")||a.startsWith("https://")))c.push({type:"source",sourceType:"url",id:b(),url:a,title:d.retrievedContext.title??void 0});else if(a){let e,f=d.retrievedContext.title??"Unknown Document",g="application/octet-stream";a.endsWith(".pdf")?g="application/pdf":a.endsWith(".txt")?g="text/plain":a.endsWith(".docx")?g="application/vnd.openxmlformats-officedocument.wordprocessingml.document":a.endsWith(".doc")?g="application/msword":a.match(/\.(md|markdown)$/)&&(g="text/markdown"),e=a.split("/").pop(),c.push({type:"source",sourceType:"document",id:b(),mediaType:g,title:f,filename:e})}else if(e){let a=d.retrievedContext.title??"Unknown Document";c.push({type:"source",sourceType:"document",id:b(),mediaType:"application/octet-stream",title:a,filename:e.split("/").pop()})}}else null!=d.maps&&d.maps.uri&&c.push({type:"source",sourceType:"url",id:b(),url:d.maps.uri,title:d.maps.title??void 0});return c.length>0?c:void 0}let Q=()=>f.z.object({webSearchQueries:f.z.array(f.z.string()).nullish(),imageSearchQueries:f.z.array(f.z.string()).nullish(),retrievalQueries:f.z.array(f.z.string()).nullish(),searchEntryPoint:f.z.object({renderedContent:f.z.string()}).nullish(),groundingChunks:f.z.array(f.z.object({web:f.z.object({uri:f.z.string(),title:f.z.string().nullish()}).nullish(),image:f.z.object({sourceUri:f.z.string(),imageUri:f.z.string(),title:f.z.string().nullish(),domain:f.z.string().nullish()}).nullish(),retrievedContext:f.z.object({uri:f.z.string().nullish(),title:f.z.string().nullish(),text:f.z.string().nullish(),fileSearchStore:f.z.string().nullish()}).nullish(),maps:f.z.object({uri:f.z.string().nullish(),title:f.z.string().nullish(),text:f.z.string().nullish(),placeId:f.z.string().nullish()}).nullish()})).nullish(),groundingSupports:f.z.array(f.z.object({segment:f.z.object({startIndex:f.z.number().nullish(),endIndex:f.z.number().nullish(),text:f.z.string().nullish()}).nullish(),segment_text:f.z.string().nullish(),groundingChunkIndices:f.z.array(f.z.number()).nullish(),supportChunkIndices:f.z.array(f.z.number()).nullish(),confidenceScores:f.z.array(f.z.number()).nullish(),confidenceScore:f.z.array(f.z.number()).nullish()})).nullish(),retrievalMetadata:f.z.union([f.z.object({webDynamicRetrievalScore:f.z.number()}),f.z.object({})]).nullish()}),R=f.z.object({jsonPath:f.z.string(),stringValue:f.z.string().nullish(),numberValue:f.z.number().nullish(),boolValue:f.z.boolean().nullish(),nullValue:f.z.unknown().nullish(),willContinue:f.z.boolean().nullish()}),S=()=>f.z.object({parts:f.z.array(f.z.union([f.z.object({functionCall:f.z.object({id:f.z.string().nullish(),name:f.z.string().nullish(),args:f.z.unknown().nullish(),partialArgs:f.z.array(R).nullish(),willContinue:f.z.boolean().nullish()}),thoughtSignature:f.z.string().nullish()}),f.z.object({inlineData:f.z.object({mimeType:f.z.string(),data:f.z.string()}),thought:f.z.boolean().nullish(),thoughtSignature:f.z.string().nullish()}),f.z.object({toolCall:f.z.object({toolType:f.z.string(),args:f.z.unknown().nullish(),id:f.z.string()}),thoughtSignature:f.z.string().nullish()}),f.z.object({toolResponse:f.z.object({toolType:f.z.string(),response:f.z.unknown().nullish(),id:f.z.string()}),thoughtSignature:f.z.string().nullish()}),f.z.object({executableCode:f.z.object({language:f.z.string(),code:f.z.string()}).nullish(),codeExecutionResult:f.z.object({outcome:f.z.string(),output:f.z.string().nullish()}).nullish(),text:f.z.string().nullish(),thought:f.z.boolean().nullish(),thoughtSignature:f.z.string().nullish()})])).nullish()}),T=()=>f.z.object({category:f.z.string().nullish(),probability:f.z.string().nullish(),probabilityScore:f.z.number().nullish(),severity:f.z.string().nullish(),severityScore:f.z.number().nullish(),blocked:f.z.boolean().nullish()}),U=f.z.array(f.z.object({modality:f.z.string(),tokenCount:f.z.number()}).loose()).nullish(),V=f.z.object({cachedContentTokenCount:f.z.number().nullish(),thoughtsTokenCount:f.z.number().nullish(),promptTokenCount:f.z.number().nullish(),candidatesTokenCount:f.z.number().nullish(),toolUsePromptTokenCount:f.z.number().nullish(),totalTokenCount:f.z.number().nullish(),trafficType:f.z.string().nullish(),serviceTier:f.z.string().nullish(),promptTokensDetails:U,cacheTokensDetails:U,candidatesTokensDetails:U,toolUsePromptTokensDetails:U}).loose(),W=()=>f.z.object({urlMetadata:f.z.array(f.z.object({retrievedUrl:f.z.string(),urlRetrievalStatus:f.z.string()})).nullish()}),X=(0,b.lazySchema)(()=>(0,b.zodSchema)(f.z.object({responseId:f.z.string().nullish(),candidates:f.z.array(f.z.object({content:S().nullish().or(f.z.object({}).strict()),finishReason:f.z.string().nullish(),finishMessage:f.z.string().nullish(),safetyRatings:f.z.array(T()).nullish(),groundingMetadata:Q().nullish(),urlContextMetadata:W().nullish()})).nullish(),usageMetadata:V.nullish(),promptFeedback:f.z.object({blockReason:f.z.string().nullish(),safetyRatings:f.z.array(T()).nullish()}).nullish()}))),Y=(0,b.lazySchema)(()=>(0,b.zodSchema)(f.z.object({responseId:f.z.string().nullish(),candidates:f.z.array(f.z.object({content:S().nullish(),finishReason:f.z.string().nullish(),finishMessage:f.z.string().nullish(),safetyRatings:f.z.array(T()).nullish(),groundingMetadata:Q().nullish(),urlContextMetadata:W().nullish()})).nullish(),usageMetadata:V.nullish(),promptFeedback:f.z.object({blockReason:f.z.string().nullish(),safetyRatings:f.z.array(T()).nullish()}).nullish()})));function Z(a){return null!=a&&""!==a&&"BLOCK_REASON_UNSPECIFIED"!==a&&"BLOCKED_REASON_UNSPECIFIED"!==a}let $=f.z.looseObject({searchTypes:f.z.object({webSearch:f.z.object({}).optional(),imageSearch:f.z.object({}).optional()}).optional(),timeRangeFilter:f.z.object({startTime:f.z.string(),endTime:f.z.string()}).optional()}),_=(0,b.createProviderExecutedToolFactory)({id:"google.google_search",inputSchema:(0,b.lazySchema)(()=>(0,b.zodSchema)(f.z.object({}))),outputSchema:(0,b.lazySchema)(()=>(0,b.zodSchema)(f.z.object({})))}),aa=(0,b.lazySchema)(()=>(0,b.zodSchema)(f.z.object({googleSearch:$.optional()}))),ab=new Set(["text","reasoning","source","tool-call","tool-result"]),ac=f.z.object({code:f.z.union([f.z.number(),f.z.string()]).nullish(),message:f.z.string().nullish(),status:f.z.string().nullish()}),ad=f.z.object({requestCount:f.z.union([f.z.string(),f.z.number()]).nullish(),successfulRequestCount:f.z.union([f.z.string(),f.z.number()]).nullish(),failedRequestCount:f.z.union([f.z.string(),f.z.number()]).nullish(),pendingRequestCount:f.z.union([f.z.string(),f.z.number()]).nullish()}),ae=f.z.object({responsesFile:f.z.string().nullish(),inlinedResponses:f.z.object({inlinedResponses:f.z.array(f.z.object({metadata:f.z.object({key:f.z.string()}),response:f.z.unknown().nullish(),error:ac.nullish()}))}).nullish()}),af=()=>f.z.object({name:f.z.string(),metadata:f.z.object({state:f.z.string().nullish(),createTime:f.z.string().nullish(),batchStats:ad.nullish(),output:ae.nullish()}).nullish(),done:f.z.boolean().nullish(),error:ac.nullish(),response:ae.nullish()}),ag=(0,b.lazySchema)(()=>(0,b.zodSchema)(af())),ah=(0,b.lazySchema)(()=>(0,b.zodSchema)(f.z.object({operations:f.z.array(af()).nullish(),nextPageToken:f.z.string().nullish()}))),ai=(0,b.lazySchema)(()=>(0,b.zodSchema)(f.z.object({}))),aj=(0,b.lazySchema)(()=>(0,b.zodSchema)(f.z.object({file:f.z.object({name:f.z.string(),expirationTime:f.z.string().nullish()})}))),ak=(0,b.lazySchema)(()=>(0,b.zodSchema)(f.z.object({key:f.z.string(),response:f.z.unknown().nullish(),error:ac.nullish()}))),al=(0,b.lazySchema)(()=>(0,b.zodSchema)(f.z.object({candidates:f.z.array(f.z.unknown()).nullish(),promptFeedback:f.z.object({blockReason:f.z.string().nullish()}).nullish()})));var am=class{constructor(a){this.specificationVersion="v4",this.provider=a.provider,this.batchConfig=a.config,this.supportedUrls=a.supportedUrls,this.batchGenerateId=a.config.generateId??b.generateId}async doStartBatch(a){let c;for(let b of a.requests){let a=b.type;if("text"!==a&&"image"!==a)throw new e.UnsupportedFunctionalityError({functionality:`batch request type: ${a}`,message:`The Google Batch API does not support batch requests with type "${a}".`})}let d=function(a){let b=a[0]?.modelId;if(null==b)throw new e.InvalidArgumentError({argument:"requests",message:"Google batches require at least one request."});for(let c of a)if(c.modelId!==b)throw new e.InvalidArgumentError({argument:"requests",message:"Google batches require every request to use the same model because the model is part of the batch endpoint."});return b}(a.requests),f=[],g=`ai-sdk-batch-${this.batchGenerateId()}`,i=[],j={batch:{displayName:g,...null!=a.webhookUrl&&{webhookConfig:{uris:[a.webhookUrl]}},inputConfig:{requests:{requests:i}}}},k=new TextEncoder,l=k.encode(JSON.stringify(j)).byteLength;for(let b of a.requests){let a="text"===b.type?await O.prepareRequest({modelId:b.modelId,config:this.batchConfig,options:b.options}):await this.prepareImageRequest(b),d={request:a.args,metadata:{key:b.id}};if(null==c){let e=l+k.encode(JSON.stringify(d)).byteLength+ +(i.length>0);if(e<2e7)i.push(d),l=e;else{for(let a of(c=[],i))c.push(JSON.stringify({key:a.metadata.key,request:a.request}),"\n");i.length=0,c.push(JSON.stringify({key:b.id,request:a.args}),"\n")}}else c.push(JSON.stringify({key:b.id,request:a.args}),"\n");for(let c of a.warnings)f.push({requestId:b.id,warning:c})}let m=await this.getHeaders(a.headers),n=`${this.batchConfig.baseURL}/${o(d)}:batchGenerateContent`;if(null==c){let{value:c}=await (0,b.postJsonToApi)({url:n,headers:m,body:j,failedResponseHandler:h,successfulResponseHandler:(0,b.createJsonResponseHandler)(ag),abortSignal:a.abortSignal,fetch:this.batchConfig.fetch});return{batchId:c.name,...an(c),warnings:f}}let p=new Blob(c,{type:"application/jsonl"});if(c.length=0,p.size>0x80000000)throw new e.InvalidArgumentError({argument:"requests",message:"Google batch input files must not exceed 2 GB."});let{value:q}=await (0,b.postJsonToApi)({url:`${this.getBaseOrigin()}/upload/v1beta/files`,headers:(0,b.combineHeaders)(m,{"X-Goog-Upload-Protocol":"resumable","X-Goog-Upload-Command":"start","X-Goog-Upload-Header-Content-Length":String(p.size),"X-Goog-Upload-Header-Content-Type":"application/jsonl"}),body:{file:{display_name:`${g}-input`}},failedResponseHandler:h,successfulResponseHandler:aq,abortSignal:a.abortSignal,fetch:this.batchConfig.fetch}),{value:r}=await (0,b.postToApi)({url:q,headers:{"X-Goog-Upload-Offset":"0","X-Goog-Upload-Command":"upload, finalize","Content-Type":"application/jsonl"},body:{content:p,values:{byteLength:p.size,mediaType:"application/jsonl"}},failedResponseHandler:h,successfulResponseHandler:(0,b.createJsonResponseHandler)(aj),abortSignal:a.abortSignal,fetch:this.batchConfig.fetch}),{value:s}=await (0,b.postJsonToApi)({url:n,headers:m,body:{batch:{displayName:g,...null!=a.webhookUrl&&{webhookConfig:{uris:[a.webhookUrl]}},inputConfig:{fileName:r.file.name}}},failedResponseHandler:h,successfulResponseHandler:(0,b.createJsonResponseHandler)(ag),abortSignal:a.abortSignal,fetch:this.batchConfig.fetch});return{batchId:s.name,...an(s),providerMetadata:{google:{inputFileId:r.file.name,...null!=r.file.expirationTime?{inputFileExpiresAt:r.file.expirationTime}:{}}},warnings:f}}async doGetBatchStatus(a){return an(await this.retrieveBatch(a))}async doCancelBatch(a){return await (0,b.postJsonToApi)({url:`${this.batchConfig.baseURL}/${a.batchId}:cancel`,headers:await this.getHeaders(a.headers),body:{},failedResponseHandler:h,successfulResponseHandler:(0,b.createJsonResponseHandler)(ai),abortSignal:a.abortSignal,fetch:this.batchConfig.fetch}),{}}async doListBatches(a){let c=new URL(`${this.batchConfig.baseURL}/batches`);null!=a.limit&&c.searchParams.set("pageSize",String(a.limit)),null!=a.cursor&&c.searchParams.set("pageToken",a.cursor);let{value:d}=await (0,b.getFromApi)({url:c.toString(),headers:await this.getHeaders(a.headers),failedResponseHandler:h,successfulResponseHandler:(0,b.createJsonResponseHandler)(ah),abortSignal:a.abortSignal,fetch:this.batchConfig.fetch,validateUrl:!1});return{batches:(d.operations??[]).map(a=>({batchId:a.name,...an(a)})),...null!=d.nextPageToken?{nextCursor:d.nextPageToken}:{}}}async doGetBatchResults(a){let c=await this.retrieveBatch(a),d=an(c);if("pending"===d.status)throw new e.InvalidArgumentError({argument:"batchId",message:`Google batch "${a.batchId}" is not complete.`});let f=c.metadata?.output?.inlinedResponses?.inlinedResponses??c.response?.inlinedResponses?.inlinedResponses;if(null!=f)return(0,b.convertAsyncIteratorToReadableStream)(this.iterateBatchResults(f.map(a=>({key:a.metadata.key,response:a.response,error:a.error}))));let g=c.metadata?.output?.responsesFile??c.response?.responsesFile;if(null==g){if("completed"===d.status)throw new e.InvalidResponseDataError({data:c,message:`Google batch "${a.batchId}" completed without batch output.`});return new ReadableStream({start(a){a.close()}})}let i=g.split("/").map(a=>encodeURIComponent(a)).join("/"),{value:j}=await (0,b.getFromApi)({url:`${this.getBaseOrigin()}/download/v1beta/${i}:download?alt=media`,headers:await this.getHeaders(a.headers),failedResponseHandler:h,successfulResponseHandler:(0,b.createJsonLinesResponseHandler)(ak),abortSignal:a.abortSignal,fetch:this.batchConfig.fetch,validateUrl:!1});return(0,b.convertAsyncIteratorToReadableStream)(this.iterateBatchResults(j))}async retrieveBatch(a){let{value:c}=await (0,b.getFromApi)({url:`${this.batchConfig.baseURL}/${a.batchId}`,headers:await this.getHeaders(a.headers),failedResponseHandler:h,successfulResponseHandler:(0,b.createJsonResponseHandler)(ag),abortSignal:a.abortSignal,fetch:this.batchConfig.fetch,validateUrl:!1});return c}async *iterateBatchResults(a){for await(let c of a){if(null!=c.error){let a=ap(c.error,"Google batch request failed."),b="CANCELLED"===c.error.status||"1"===String(c.error.code)?"cancelled":"failed";yield{type:"text",id:c.key,status:b,error:a};continue}if(null==c.response){yield{type:"text",id:c.key,status:"failed",error:{message:"Google returned a batch result without a response or error.",code:"invalid_batch_result"}};continue}let a=await (0,b.safeValidateTypes)({value:c.response,schema:al});if(a.success&&(null==a.value.candidates||0===a.value.candidates.length)){let b=a.value.promptFeedback??void 0,d=b?.blockReason??void 0;yield{type:"text",id:c.key,status:"failed",error:{message:null==d?"Google returned a batch response without any candidates.":`Google blocked the batch request (${d}).`,code:null==d?"invalid_response":"prompt_blocked",...null!=d?{type:d}:{}},...null!=b?{providerMetadata:{google:{promptFeedback:{blockReason:b.blockReason??null}}}}:{}};continue}let d=await (0,b.safeValidateTypes)({value:c.response,schema:X});if(!d.success){yield{type:"text",id:c.key,status:"failed",error:{message:"Google returned an invalid GenerateContent batch result.",code:"invalid_response"}};continue}let e=O.convertGenerateContentResponse({config:this.batchConfig,response:d.value,warnings:[],providerOptionsNames:["google"]}),f=function(a){let c=a.content.flatMap(a=>"file"===a.type&&a.mediaType.startsWith("image/")&&"data"===a.data.type?[(0,b.convertToBase64)(a.data.data)]:[]);if(0===c.length)return;let d=a.providerMetadata?.google??{};return{images:c,warnings:a.warnings,providerMetadata:{google:{...d,images:c.map(()=>({}))}},response:{timestamp:new Date,modelId:a.response?.modelId??"",headers:a.response?.headers},usage:{inputTokens:a.usage.inputTokens.total,outputTokens:a.usage.outputTokens.total,totalTokens:(a.usage.inputTokens.total??0)+(a.usage.outputTokens.total??0)}}}(e);if(null!=f){yield{type:"image",id:c.key,status:"succeeded",result:f};continue}let g=e.content.find(a=>!ab.has(a.type));if(null!=g){yield{type:"text",id:c.key,status:"failed",error:{message:`Google returned a "${g.type}" content block, but that content is not supported in AI SDK text batches.`,code:"unsupported_content"}};continue}yield{type:"text",id:c.key,status:"succeeded",result:e}}}async prepareImageRequest(a){let{prompt:c,n:d,size:f,aspectRatio:g,seed:h,files:i,mask:j,providerOptions:k}=a.options,l=[];if(null!=j)throw new e.UnsupportedFunctionalityError({functionality:"mask-based image editing in Google batches"});if(d>1)throw new e.UnsupportedFunctionalityError({functionality:"multiple images per Google batch request"});null!=f&&l.push({type:"unsupported",feature:"size",details:"This model does not support the `size` option. Use `aspectRatio` instead."});let m=[];for(let a of(null!=c&&m.push({type:"text",text:c}),i??[]))m.push("url"===a.type?{type:"file",data:{type:"url",url:new URL(a.url)},mediaType:"image/*"}:{type:"file",data:{type:"data",data:a.data},mediaType:a.mediaType});let n=await (0,b.parseProviderOptions)({provider:"google",providerOptions:k,schema:aa}),{responseModalities:o,imageConfig:p,...q}=await (0,b.parseProviderOptions)({provider:"google",providerOptions:k,schema:z})??{},r=await (0,b.parseProviderOptions)({provider:"google",providerOptions:{google:{...q,responseModalities:["IMAGE"],imageConfig:null!=g||null!=p?{...p,...null!=g?{aspectRatio:g}:{}}:void 0}},schema:z}),s=await O.prepareRequest({modelId:a.modelId,config:this.batchConfig,options:{prompt:[{role:"user",content:m}],seed:h,providerOptions:{google:r??{responseModalities:["IMAGE"]}},tools:n?.googleSearch!=null?[{type:"provider",id:"google.google_search",name:"google_search",args:n.googleSearch}]:void 0}});return{...s,warnings:[...l,...s.warnings]}}async getHeaders(a){return(0,b.combineHeaders)(this.batchConfig.headers?await (0,b.resolve)(this.batchConfig.headers):void 0,a)}getBaseOrigin(){return this.batchConfig.baseURL.replace(/\/v1beta$/,"")}};function an(a){var c;let d,e,f,g,h=a.metadata?.state??void 0,i=(c=a.metadata?.batchStats,d=ao(c?.requestCount),e=ao(c?.successfulRequestCount??0),f=ao(c?.failedRequestCount??0),g=ao(c?.pendingRequestCount??0),(0,b.normalizeBatchRequestCounts)({total:d,pending:g,completed:e,failed:f})),j=a.metadata?.createTime??void 0,k=null!=a.error?ap(a.error,"Google batch failed."):void 0;return{status:function({rawStatus:a,done:b,hasError:c}){if(c)return"failed";if(null==a)return b?"completed":"pending";switch(a.replace(/^(?:BATCH|JOB)_STATE_/,"")){case"SUCCEEDED":return"completed";case"FAILED":case"CANCELLED":case"EXPIRED":return"failed";default:return"pending"}}({rawStatus:h,done:a.done??void 0,hasError:null!=k}),...null!=h?{rawStatus:h}:{},...null!=i?{requestCounts:i}:{},...null!=k?{error:k}:{},...null!=j?{createdAt:j}:{}}}function ao(a){let b="string"==typeof a&&/^\d+$/.test(a)?Number(a):a;return"number"==typeof b&&Number.isSafeInteger(b)&&b>=0?b:void 0}function ap(a,b){return{message:a.message??b,...null!=a.status?{type:a.status}:{},...null!=a.code?{code:String(a.code)}:{}}}let aq=async({response:a})=>{let b=a.headers.get("x-goog-upload-url");if(null==b)throw new e.InvalidResponseDataError({data:a.headers,message:"Google did not return a resumable upload URL."});return{value:b}},ar=(0,b.createProviderExecutedToolFactory)({id:"google.enterprise_web_search",inputSchema:(0,b.lazySchema)(()=>(0,b.zodSchema)(f.z.object({}))),outputSchema:(0,b.lazySchema)(()=>(0,b.zodSchema)(f.z.object({})))});f.z.looseObject({fileSearchStoreNames:f.z.array(f.z.string()).describe("The names of the file_search_stores to retrieve from. Example: `fileSearchStores/my-file-search-store-123`"),topK:f.z.number().int().positive().describe("The number of file search retrieval chunks to retrieve.").optional(),metadataFilter:f.z.string().describe("Metadata filter to apply to the file search retrieval documents. See https://google.aip.dev/160 for the syntax of the filter expression.").optional()});let as=(0,b.createProviderExecutedToolFactory)({id:"google.file_search",inputSchema:(0,b.lazySchema)(()=>(0,b.zodSchema)(f.z.object({}))),outputSchema:(0,b.lazySchema)(()=>(0,b.zodSchema)(f.z.object({})))}),at={googleSearch:_,enterpriseWebSearch:ar,googleMaps:(0,b.createProviderExecutedToolFactory)({id:"google.google_maps",inputSchema:(0,b.lazySchema)(()=>(0,b.zodSchema)(f.z.object({}))),outputSchema:(0,b.lazySchema)(()=>(0,b.zodSchema)(f.z.object({})))}),urlContext:(0,b.createProviderExecutedToolFactory)({id:"google.url_context",inputSchema:(0,b.lazySchema)(()=>(0,b.zodSchema)(f.z.object({}))),outputSchema:(0,b.lazySchema)(()=>(0,b.zodSchema)(f.z.object({})))}),fileSearch:as,codeExecution:s,vertexRagStore:(0,b.createProviderExecutedToolFactory)({id:"google.vertex_rag_store",inputSchema:(0,b.lazySchema)(()=>(0,b.zodSchema)(f.z.object({}))),outputSchema:(0,b.lazySchema)(()=>(0,b.zodSchema)(f.z.object({})))})},au=new Set(["gemini-2.5-flash-image","gemini-3-pro-image-preview","gemini-3.1-flash-image-preview"]);var av=class a{static[c.WORKFLOW_SERIALIZE](a){return(0,b.serializeModelOptions)({modelId:a.modelId,config:a.config})}static[c.WORKFLOW_DESERIALIZE](b){return new a(b.modelId,{},b.config)}get maxImagesPerCall(){return null!=this.settings.maxImagesPerCall?this.settings.maxImagesPerCall:1}get supportsFileInputs(){return!!au.has(this.modelId)||void 0}get supportsMaskInputs(){return!0!==this.supportsFileInputs&&void 0}get provider(){return this.config.provider}constructor(a,b,c){this.modelId=a,this.settings=b,this.config=c,this.specificationVersion="v4"}async doGenerate(a){if(!this.modelId.startsWith("gemini-"))throw Error("Google image models other than Gemini are no longer supported. Use a model ID that starts with `gemini-`.");let{prompt:c,size:d,aspectRatio:e,seed:f,providerOptions:g,headers:h,abortSignal:i,files:j,mask:k}=a,l=[];if(null!=k)throw Error("Gemini image models do not support mask-based image editing.");null!=d&&l.push({type:"unsupported",feature:"size",details:"This model does not support the `size` option. Use `aspectRatio` instead."});let m=[];if(null!=c&&m.push({type:"text",text:c}),null!=j&&j.length>0)for(let a of j)"url"===a.type?m.push({type:"file",data:{type:"url",url:new URL(a.url)},mediaType:"image/*"}):m.push({type:"file",data:{type:"data",data:"string"==typeof a.data?a.data:new Uint8Array(a.data)},mediaType:a.mediaType});let n=[{role:"user",content:m}],o=await (0,b.parseProviderOptions)({provider:"google",providerOptions:g,schema:aa}),{googleSearch:p,responseModalities:q,imageConfig:r,...s}=g?.google??{},t=await new O(this.modelId,{provider:this.config.provider,baseURL:this.config.baseURL,headers:this.config.headers??{},fetch:this.config.fetch,generateId:this.config.generateId??b.generateId}).doGenerate({prompt:n,seed:f,providerOptions:{google:{...s,responseModalities:["IMAGE"],imageConfig:null!=e||null!=r?{...r,...null!=e?{aspectRatio:e}:{}}:void 0}},tools:o?.googleSearch!=null?[{type:"provider",id:"google.google_search",name:"google_search",args:o.googleSearch}]:void 0,headers:h,abortSignal:i}),u=this.config._internal?.currentDate?.()??new Date,v=[];for(let a of t.content)"file"===a.type&&a.mediaType.startsWith("image/")&&"data"===a.data.type&&v.push((0,b.convertToBase64)(a.data.data));let w=t.providerMetadata?.google??{};return{images:v,..."content-filter"===t.finishReason.unified?{isRetryable:!1}:{},warnings:l,providerMetadata:{google:{...w,finishReason:t.finishReason.raw??null,images:v.map(()=>({}))}},response:{timestamp:u,modelId:this.modelId,headers:t.response?.headers},usage:t.usage?{inputTokens:t.usage.inputTokens.total,outputTokens:t.usage.outputTokens.total,totalTokens:(t.usage.inputTokens.total??0)+(t.usage.outputTokens.total??0)}:void 0}}};function aw(a){let b=encodeURIComponent(a);return"."===b?"%252E":".."===b?"%252E%252E":b}var ax=class{get provider(){return this.config.provider}constructor(a){this.config=a,this.specificationVersion="v4"}async uploadFile(a){var c;let d=await (0,b.parseProviderOptions)({provider:"google",providerOptions:a.providerOptions,schema:az}),f=(0,b.combineHeaders)(this.config.headers(),a.headers),g=this.config.fetch??globalThis.fetch,i=[];null!=a.filename&&i.push({type:"unsupported",feature:"filename"});let j=(0,b.convertInlineFileDataToUint8Array)(a.data),k=a.mediaType,l=d?.displayName,m=await g(`${this.config.baseURL.replace(/\/v1beta$/,"")}/upload/v1beta/files`,{method:"POST",headers:{...f,"X-Goog-Upload-Protocol":"resumable","X-Goog-Upload-Command":"start","X-Goog-Upload-Header-Content-Length":String(j.length),"X-Goog-Upload-Header-Content-Type":k,"Content-Type":"application/json"},body:JSON.stringify({file:{...null!=l?{display_name:l}:{}}}),signal:a.abortSignal});if(!m.ok){let a=await m.text();throw new e.AISDKError({name:"GOOGLE_FILES_UPLOAD_ERROR",message:`Failed to initiate resumable upload: ${m.status} ${a}`})}let n=m.headers.get("x-goog-upload-url");if(!n)throw new e.AISDKError({name:"GOOGLE_FILES_UPLOAD_ERROR",message:"No upload URL returned from initiation request"});let o=await g(n,{method:"POST",headers:{"X-Goog-Upload-Offset":"0","X-Goog-Upload-Command":"upload, finalize"},body:(c=j).buffer instanceof ArrayBuffer?c:new Uint8Array(c),signal:a.abortSignal});if(!o.ok){let a=await o.text();throw new e.AISDKError({name:"GOOGLE_FILES_UPLOAD_ERROR",message:`Failed to upload file data: ${o.status} ${a}`})}let p=(await o.json()).file,q=d?.pollIntervalMs??2e3,r=d?.pollTimeoutMs??3e5,s=Date.now();for(;"PROCESSING"===p.state;){if(Date.now()-s>r)throw new e.AISDKError({name:"GOOGLE_FILES_UPLOAD_TIMEOUT",message:`File processing timed out after ${r}ms`});await (0,b.delay)(q,{abortSignal:a.abortSignal});let c=/^files\/([^/]+)$/.exec(p.name),d=null!=c?`files/${aw(c[1])}`:aw(p.name),{value:g}=await (0,b.getFromApi)({url:`${this.config.baseURL}/${d}`,validateUrl:!1,headers:(0,b.combineHeaders)(f),successfulResponseHandler:(0,b.createJsonResponseHandler)(ay),failedResponseHandler:h,abortSignal:a.abortSignal,fetch:this.config.fetch});p=g}if("FAILED"===p.state)throw new e.AISDKError({name:"GOOGLE_FILES_UPLOAD_FAILED",message:`File processing failed for ${p.name}`});return{warnings:i,providerReference:{google:p.uri},mediaType:p.mimeType??a.mediaType,providerMetadata:{google:{name:p.name,displayName:p.displayName,mimeType:p.mimeType,sizeBytes:p.sizeBytes,state:p.state,uri:p.uri,...null!=p.createTime?{createTime:p.createTime}:{},...null!=p.updateTime?{updateTime:p.updateTime}:{},...null!=p.expirationTime?{expirationTime:p.expirationTime}:{},...null!=p.sha256Hash?{sha256Hash:p.sha256Hash}:{}}}}}};let ay=(0,b.lazySchema)(()=>(0,b.zodSchema)(f.z.object({name:f.z.string(),displayName:f.z.string().nullish(),mimeType:f.z.string(),sizeBytes:f.z.string().nullish(),createTime:f.z.string().nullish(),updateTime:f.z.string().nullish(),expirationTime:f.z.string().nullish(),sha256Hash:f.z.string().nullish(),uri:f.z.string(),state:f.z.string()}))),az=(0,b.lazySchema)(()=>(0,b.zodSchema)(f.z.looseObject({displayName:f.z.string().nullish(),pollIntervalMs:f.z.number().positive().nullish(),pollTimeoutMs:f.z.number().positive().nullish()}))),aA=(0,b.lazySchema)(()=>(0,b.zodSchema)(f.z.looseObject({pollIntervalMs:f.z.number().positive().nullish(),pollTimeoutMs:f.z.number().positive().nullish(),personGeneration:f.z.enum(["dont_allow","allow_adult","allow_all"]).nullish(),negativePrompt:f.z.string().nullish(),referenceImages:f.z.array(f.z.object({bytesBase64Encoded:f.z.string().nullish(),gcsUri:f.z.string().nullish()})).nullish()})));function aB(a,c){return"url"===a.type?a.url.startsWith("gs://")?{gcsUri:a.url,mimeType:"image/png"}:void c.push({type:"unsupported",feature:"URL-based image input",details:"Google Generative AI video models require base64-encoded images or GCS URIs. URL will be ignored."}):{bytesBase64Encoded:"string"==typeof a.data?a.data:(0,b.convertUint8ArrayToBase64)(a.data),mimeType:a.mediaType||"image/png"}}var aC=class{get provider(){return this.config.provider}get maxVideosPerCall(){return 4}constructor(a,b){this.modelId=a,this.config=b,this.specificationVersion="v4"}async buildRequest(a){let c=[],d=await (0,b.parseProviderOptions)({provider:"google",providerOptions:a.providerOptions,schema:aA}),e=[{}],f=e[0];null!=a.prompt&&(f.prompt=a.prompt);let g=a.frameImages?.find(a=>"first_frame"===a.frameType)?.image??a.image;if(null!=g){let a=aB(g,c);null!=a&&(f.image=a)}let h=a.frameImages?.find(a=>"last_frame"===a.frameType)?.image;if(null!=h){let a=aB(h,c);null!=a&&(f.lastFrame=a)}let i=function(a){if(null==a.frameImages||!(a.frameImages.length>0))return null!=a.inputReferences&&a.inputReferences.length>0?a.inputReferences:void 0}(a);null!=i?f.referenceImages=i.flatMap(a=>{let b,d=null!=(b=aB(a,c))?{image:b,referenceType:"asset"}:void 0;return null!=d?[d]:[]}):d?.referenceImages!=null&&(f.referenceImages=d.referenceImages.map(a=>a.bytesBase64Encoded?{image:{bytesBase64Encoded:a.bytesBase64Encoded,mimeType:"image/png"},referenceType:"asset"}:a.gcsUri?{image:{gcsUri:a.gcsUri,mimeType:"image/png"},referenceType:"asset"}:a));let j={sampleCount:a.n};if(a.aspectRatio&&(j.aspectRatio=a.aspectRatio),a.resolution&&(j.resolution=({"1280x720":"720p","1920x1080":"1080p","3840x2160":"4k"})[a.resolution]||a.resolution),a.duration&&(j.durationSeconds=a.duration),a.seed&&(j.seed=a.seed),null!=d)for(let[a,b]of(void 0!==d.personGeneration&&null!==d.personGeneration&&(j.personGeneration=d.personGeneration),void 0!==d.negativePrompt&&null!==d.negativePrompt&&(j.negativePrompt=d.negativePrompt),Object.entries(d)))["pollIntervalMs","pollTimeoutMs","personGeneration","negativePrompt","referenceImages"].includes(a)||(j[a]=b);return{instances:e,parameters:j,warnings:c,googleOptions:d}}async buildCompletedResult(a,c,d,f){let g=a.response;if(!g?.generateVideoResponse?.generatedSamples||0===g.generateVideoResponse.generatedSamples.length)throw new e.AISDKError({name:"GOOGLE_VIDEO_GENERATION_ERROR",message:`No videos in response. Response: ${JSON.stringify(a)}`});let h=[],i=[],j=(await (0,b.resolve)(this.config.headers))?.["x-goog-api-key"];for(let a of g.generateVideoResponse.generatedSamples)if(a.video?.uri){let c=j&&(0,b.isSameOrigin)(a.video.uri,this.config.baseURL)?`${a.video.uri}${a.video.uri.includes("?")?"&":"?"}key=${j}`:a.video.uri;h.push({type:"url",url:c,mediaType:"video/mp4"}),i.push({uri:a.video.uri})}if(0===h.length)throw new e.AISDKError({name:"GOOGLE_VIDEO_GENERATION_ERROR",message:"No valid videos in response"});return{status:"completed",videos:h,warnings:d,response:{timestamp:f,modelId:this.modelId,headers:c},providerMetadata:{google:{videos:i}}}}async doStart(a){let c=this.config._internal?.currentDate?.()??new Date,{instances:d,parameters:f,warnings:g}=await this.buildRequest(a),{value:i,responseHeaders:j}=await (0,b.postJsonToApi)({url:`${this.config.baseURL}/models/${this.modelId}:predictLongRunning`,headers:(0,b.combineHeaders)(await (0,b.resolve)(this.config.headers),a.headers),body:{instances:d,parameters:f},successfulResponseHandler:(0,b.createJsonResponseHandler)(aD),failedResponseHandler:h,abortSignal:a.abortSignal,fetch:this.config.fetch}),k=i.name;if(!k)throw new e.AISDKError({name:"GOOGLE_VIDEO_GENERATION_ERROR",message:"No operation name returned from API"});return{operation:{operationName:k},warnings:g,response:{timestamp:c,modelId:this.modelId,headers:j}}}async doStatus(a){let c=this.config._internal?.currentDate?.()??new Date,{operationName:d}=a.operation,{value:e,responseHeaders:f}=await (0,b.getFromApi)({url:`${this.config.baseURL}/${d}`,validateUrl:!1,headers:(0,b.combineHeaders)(await (0,b.resolve)(this.config.headers),a.headers),successfulResponseHandler:(0,b.createJsonResponseHandler)(aD),failedResponseHandler:h,abortSignal:a.abortSignal,fetch:this.config.fetch});return e.done?e.error?{status:"error",error:`Video generation failed: ${e.error.message}`,response:{timestamp:c,modelId:this.modelId,headers:f}}:this.buildCompletedResult(e,f,[],c):{status:"pending",response:{timestamp:c,modelId:this.modelId,headers:f}}}};let aD=f.z.object({name:f.z.string().nullish(),done:f.z.boolean().nullish(),error:f.z.object({code:f.z.number().nullish(),message:f.z.string(),status:f.z.string().nullish()}).nullish(),response:f.z.object({generateVideoResponse:f.z.object({generatedSamples:f.z.array(f.z.object({video:f.z.object({uri:f.z.string().nullish()}).nullish()})).nullish()}).nullish()}).nullish()}),aE=(0,b.lazySchema)(()=>(0,b.zodSchema)(f.z.object({candidates:f.z.array(f.z.object({content:f.z.object({parts:f.z.array(f.z.object({inlineData:f.z.object({mimeType:f.z.string().nullish(),data:f.z.string().nullish()}).nullish()})).nullish()}).nullish()})).nullish()}))),aF=f.z.object({voiceName:f.z.string()}),aG=f.z.object({prebuiltVoiceConfig:aF,voice:f.z.never().optional()}),aH=f.z.object({speaker:f.z.string().min(1).optional(),style:f.z.string().optional()}),aI=(0,b.lazySchema)(()=>(0,b.zodSchema)(f.z.object({speechMetadata:aH.optional(),turns:f.z.array(f.z.object({text:f.z.string(),speechMetadata:aH.optional()})).min(1).optional(),multiSpeakerVoiceConfig:f.z.object({speakerVoiceConfigs:f.z.array(f.z.object({speaker:f.z.string(),voiceConfig:aG}))}).optional()}))),aJ="Kore";var aK=class a{static[c.WORKFLOW_SERIALIZE](a){return(0,b.serializeModelOptions)({modelId:a.modelId,config:a.config})}static[c.WORKFLOW_DESERIALIZE](b){return new a(b.modelId,b.config)}get provider(){return this.config.provider}constructor(a,b){this.modelId=a,this.config=b,this.specificationVersion="v4"}async getArgs({text:a,voice:c=aJ,outputFormat:d,instructions:f,speed:g,language:h,providerOptions:i}){let j,k=[],l=this.config.provider.includes("vertex")?["googleVertex","vertex"]:["google"];for(let a of l)if(null!=(j=await (0,b.parseProviderOptions)({provider:a,providerOptions:i,schema:aI})))break;null!=j||l.includes("google")||(j=await (0,b.parseProviderOptions)({provider:"google",providerOptions:i,schema:aI}));let m=!this.modelId.startsWith("gemini-2.5-")&&!this.modelId.startsWith("gemini-3.1-"),n=function({text:a,voice:b,providerOptions:c}){let d=c?.google,e=null!=d&&"object"==typeof d?d:void 0,f=e&&"turns"in e?e.turns:void 0,g=[];if(Array.isArray(f)&&f.length>0){for(let a of f){if(null==a||"object"!=typeof a||!("text"in a)||"string"!=typeof a.text)break;g.push(a.text)}g.length===f.length&&(a=g.join(""))}let h=e&&"multiSpeakerVoiceConfig"in e?e.multiSpeakerVoiceConfig:void 0,i=null!=h&&"object"==typeof h&&"speakerVoiceConfigs"in h&&Array.isArray(h.speakerVoiceConfigs)?h.speakerVoiceConfigs:[];return{text:a,usesCustomVoice:b?.startsWith("voice_")===!0||b?.startsWith("voicekey_")===!0||i.some(a=>null!=a&&"object"==typeof a&&"voiceConfig"in a&&null!=a.voiceConfig&&"object"==typeof a.voiceConfig&&"voice"in a.voiceConfig)}}({text:a,voice:c,providerOptions:{google:j}});if(n.usesCustomVoice)throw new e.InvalidArgumentError({argument:"voice",message:"Custom voices are not supported. Use a prebuilt voice instead."});let o=j?.multiSpeakerVoiceConfig,p=o?{multiSpeakerVoiceConfig:o}:{voiceConfig:{prebuiltVoiceConfig:{voiceName:c}}},q=a;null==f||m||(o?k.push({type:"unsupported",feature:"instructions",details:"Google Gemini TTS ignores `instructions` when `multiSpeakerVoiceConfig` is set, because prepending them would break multi-speaker transcript parsing."}):q=`${f}: ${a}`);let r=[{text:q}];if(m){if(j?.turns&&j.speechMetadata)throw new e.InvalidArgumentError({argument:"providerOptions",message:"Set speechMetadata on each turn when using turns."});j?.turns&&""!==a&&k.push({type:"unsupported",feature:"text",details:"Google TTS turns replace the top-level text."}),r=(j?.turns??[{text:a,speechMetadata:j?.speechMetadata}]).map(a=>{let b=a.speechMetadata?.style??f,c=a.speechMetadata?.speaker;if(o&&!o.speakerVoiceConfigs.some(a=>a.speaker===c))throw new e.InvalidArgumentError({argument:"speechMetadata.speaker",message:"Every multi-speaker turn must specify a speechMetadata.speaker matching a configured speaker."});return{text:a.text,...null!=b||null!=c?{speechMetadata:{style:b,speaker:c}}:{}}})}else if(j?.turns||j?.speechMetadata)throw new e.InvalidArgumentError({argument:"providerOptions",message:"Structured speech metadata and turns require Gemini 3.8 TTS."});if(0===n.text.length)throw new e.InvalidArgumentError({argument:"text",message:"Speech input must contain a non-empty transcript."});null!=g&&k.push({type:"unsupported",feature:"speed",details:"Google Gemini TTS models do not support the `speed` option. It was ignored."}),null!=h&&k.push({type:"unsupported",feature:"language",details:"Google Gemini TTS models do not support the `language` option. Language is detected automatically from the input text."});let s=m?{wav:"AUDIO_WAV","audio/wav":"AUDIO_WAV",pcm:"AUDIO_L16","audio/l16":"AUDIO_L16",mulaw:"AUDIO_MULAW","audio/mulaw":"AUDIO_MULAW",alaw:"AUDIO_ALAW","audio/alaw":"AUDIO_ALAW"}:{wav:"AUDIO_WAV",pcm:"AUDIO_L16"},t="wav";return null!=d&&Object.prototype.hasOwnProperty.call(s,d)?t=d:null!=d&&k.push({type:"unsupported",feature:"outputFormat",details:`Unsupported output format: ${d}. Using wav instead.`}),{requestBody:{contents:[{role:"user",parts:r}],generationConfig:{responseModalities:["AUDIO"],speechConfig:p,...m&&null!=d?{responseFormat:{audio:{mimeType:s[t]}}}:{}}},warnings:k,outputFormat:s[t],usesStructuredSpeech:m}}async doGenerate(a){var c,d;let e,f,g,i,j,k,l=this.config._internal?.currentDate?.()??new Date,{requestBody:m,warnings:n,outputFormat:o,usesStructuredSpeech:p}=await this.getArgs(a),{value:q,responseHeaders:r,rawValue:s}=await (0,b.postJsonToApi)({url:`${this.config.baseURL}/models/${this.modelId}:generateContent`,headers:(0,b.combineHeaders)(this.config.headers?await (0,b.resolve)(this.config.headers):void 0,a.headers),body:m,failedResponseHandler:h,successfulResponseHandler:(0,b.createJsonResponseHandler)(aE),abortSignal:a.abortSignal,fetch:this.config.fetch});for(let a of q.candidates??[]){for(let b of a.content?.parts??[])if(b.inlineData?.data){j=b.inlineData.data,k=b.inlineData.mimeType??void 0;break}if(null!=j)break}let t=function(a){if(null==a)return;let b=/rate=(\d+)/.exec(a);return b?Number.parseInt(b[1],10):void 0}(k)??24e3,u=null!=j?(0,b.convertBase64ToUint8Array)(j):new Uint8Array(0),v=/^audio\/(?:l16|pcm)(?:;|$)/i.test(k??"")||null==k&&!p,w="AUDIO_WAV"===o&&v&&u.length>0?(c=u,d=t,aL(g=new DataView(f=new ArrayBuffer(44+(e=c.length))),0,"RIFF"),g.setUint32(4,36+e,!0),aL(g,8,"WAVE"),aL(g,12,"fmt "),g.setUint32(16,16,!0),g.setUint16(20,1,!0),g.setUint16(22,1,!0),g.setUint32(24,d,!0),g.setUint32(28,2*d,!0),g.setUint16(32,2,!0),g.setUint16(34,16,!0),aL(g,36,"data"),g.setUint32(40,e,!0),(i=new Uint8Array(f)).set(c,44),i):u;return"AUDIO_L16"===o&&u.length>0&&!p&&n.push({type:"unsupported",feature:"outputFormat",details:`Returning raw PCM audio (signed 16-bit little-endian, mono, ${t} Hz). These bytes have no container header and are not directly playable; see providerMetadata.google for the sample rate and mime type.`}),{audio:w,warnings:n,request:{body:JSON.stringify(m)},response:{timestamp:l,modelId:this.modelId,headers:r,body:s},providerMetadata:{google:{sampleRate:t,mimeType:k??null}}}}};function aL(a,b,c){for(let d=0;d<c.length;d++)a.setUint8(b+d,c.charCodeAt(d))}function aM(a){if(null==a)return(0,b.createNullLanguageModelUsage)();let c=a.total_input_tokens??0,d=a.total_output_tokens??0,e=a.total_thought_tokens??0,f=a.total_cached_tokens??0;return{inputTokens:{total:a.total_input_tokens??void 0,noCache:null==a.total_input_tokens?void 0:c-f,cacheRead:a.total_cached_tokens??void 0,cacheWrite:void 0},outputTokens:{total:null==a.total_output_tokens&&null==a.total_thought_tokens?void 0:d+e,text:a.total_output_tokens??void 0,reasoning:a.total_thought_tokens??void 0},raw:a}}function aN(a){let b=a?.output_tokens_by_modality;if(null==b)return;let c={};for(let a of b)a?.modality!=null&&null!=a.tokens&&(c[a.modality]=a.tokens);return Object.keys(c).length>0?c:void 0}let aO={pdf:"application/pdf",txt:"text/plain",md:"text/markdown",markdown:"text/markdown",doc:"application/msword",docx:"application/vnd.openxmlformats-officedocument.wordprocessingml.document"};function aP(a){let b=a.toLowerCase();for(let[a,c]of Object.entries(aO))if(b.endsWith(`.${a}`))return c;return"application/octet-stream"}function aQ(a){let b=a.split("/"),c=b[b.length-1];return c&&c.length>0?c:void 0}function aR({block:a,generateId:b}){let c=[];switch(a.type){case"url_context_result":for(let d of a.result??[])d?.url!=null&&0!==d.url.length&&(null==d.status||"success"===d.status)&&c.push({type:"source",sourceType:"url",id:b(),url:d.url});break;case"google_search_result":for(let d of a.result??[]){let a=d?.url;null!=a&&0!==a.length&&c.push({type:"source",sourceType:"url",id:b(),url:a,...null!=d.title?{title:d.title}:{}})}break;case"google_maps_result":for(let d of a.result??[])for(let a of d.places??[])null!=a.url&&0!==a.url.length&&c.push({type:"source",sourceType:"url",id:b(),url:a.url,...null!=a.name?{title:a.name}:{}});break;case"file_search_result":for(let d of a.result??[]){if(null==d||"object"!=typeof d)continue;let a=d.url??d.document_uri??d.file_name;if(null==a||0===a.length)continue;if(a.startsWith("http://")||a.startsWith("https://")){c.push({type:"source",sourceType:"url",id:b(),url:a,...null!=d.title?{title:d.title}:{}});continue}let e=d.file_name??aQ(a),f=aP(a);c.push({type:"source",sourceType:"document",id:b(),mediaType:f,title:d.title??d.file_name??e??a,...null!=e?{filename:e}:{}})}}return c}function aS({annotations:a,generateId:b}){if(null==a)return[];let c=new Set,d=[];for(let e of a){let a=function({annotation:a,generateId:b}){switch(a.type){case"url_citation":if(null==a.url||0===a.url.length)return;return{type:"source",sourceType:"url",id:b(),url:a.url,...null!=a.title?{title:a.title}:{}};case"file_citation":{let c=a.url??a.document_uri??a.file_name;if(null==c||0===c.length)return;if(c.startsWith("http://")||c.startsWith("https://"))return{type:"source",sourceType:"url",id:b(),url:c,...null!=a.file_name?{title:a.file_name}:{}};let d=a.file_name??aQ(c),e=aP(c);return{type:"source",sourceType:"document",id:b(),mediaType:e,title:a.file_name??d??c,...null!=d?{filename:d}:{}}}case"place_citation":if(null==a.url||0===a.url.length)return;return{type:"source",sourceType:"url",id:b(),url:a.url,...null!=a.name?{title:a.name}:{}};default:return}}({annotation:e,generateId:b});if(null==a)continue;let f="url"===a.sourceType?`url:${a.url}`:`doc:${a.filename??a.title}`;c.has(f)||(c.add(f),d.push(a))}return d}function aT({status:a,hasFunctionCall:b}){switch(a){case"completed":return b?"tool-calls":"stop";case"requires_action":return"tool-calls";case"failed":return"error";case"incomplete":return"length";default:return"other"}}let aU=new Set(["google_search_call","code_execution_call","url_context_call","file_search_call","google_maps_call","mcp_server_tool_call"]),aV=new Set(["google_search_result","code_execution_result","url_context_result","file_search_result","google_maps_result","mcp_server_tool_result"]);function aW({warnings:a,generateId:c,includeRawChunks:d,serviceTier:e}){let f,g,h,i=e,j=!1,k=new Map,l=new Set;function m(a){return"url"===a.sourceType?`url:${a.url}`:`doc:${a.filename??a.title}`}return new TransformStream({start(b){b.enqueue({type:"stream-start",warnings:a})},transform(a,e){if(d&&e.enqueue({type:"raw",rawValue:a.rawValue}),!a.success){h="failed",e.enqueue({type:"error",error:a.error});return}let n=a.value,o=n.event_type;switch(o){case"interaction.created":{let a,b=n.interaction;f=b?.id!=null&&b.id.length>0?b.id:void 0;let c=b?.created;if("string"==typeof c){let b=new Date(c);Number.isNaN(b.getTime())||(a=b)}e.enqueue({type:"response-metadata",...null!=f?{id:f}:{},modelId:b?.model,...a?{timestamp:a}:{}});break}case"step.start":{let a=n.step,b=n.index,d=`${f??"interaction"}:${b}`,g=a?.type;if("model_output"===g){let f=a?.content?.[0];if(f?.type==="text")for(let a of(k.set(b,{kind:"text",id:d,emittedSourceKeys:new Set}),e.enqueue({type:"text-start",id:d}),aS({annotations:f.annotations,generateId:c}))){let b=m(a);l.has(b)||(l.add(b),e.enqueue(a))}else f?.type==="image"?k.set(b,{kind:"image",id:d,...null!=f.data?{data:f.data}:{},...null!=f.mime_type?{mimeType:f.mime_type}:{},...null!=f.uri?{uri:f.uri}:{}}):k.set(b,{kind:"pending_model_output",id:d})}else if("thought"===g){let c=a?.signature;if(k.set(b,{kind:"reasoning",id:d,...null!=c?{signature:c}:{}}),e.enqueue({type:"reasoning-start",id:d}),Array.isArray(a?.summary))for(let b of a.summary)b?.type==="text"&&"string"==typeof b.text&&e.enqueue({type:"reasoning-delta",id:d,delta:b.text})}else if("processing_call"===g||"processing_result"===g){let c={};a?.signature!=null&&(c.signature=a.signature),null!=f&&(c.interactionId=f),"processing_call"===g?c.processingId=a?.id||d:c.processingCallId=a?.call_id||d,k.set(b,{kind:"custom",id:d,customKind:`google.${g}`,google:c})}else if("function_call"===g){let c=a?.id||d,f=a?.name??"unknown";j=!0;let g={kind:"function_call",id:d,toolCallId:c,toolName:f,argumentsAccum:"",...a?.signature!=null?{signature:a.signature}:{}};k.set(b,g),e.enqueue({type:"tool-input-start",id:c,toolName:f})}else if(null!=g&&aU.has(g)){let c="mcp_server_tool_call"===g?a?.name??"mcp_server_tool":g.replace(/_call$/,""),e={kind:"builtin_tool_call",id:d,blockType:g,toolCallId:a?.id||d,toolName:c,arguments:a?.arguments??{},callEmitted:!1};k.set(b,e)}else if(null!=g&&aV.has(g)){let c="mcp_server_tool_result"===g?a?.name??"mcp_server_tool":g.replace(/_result$/,""),e={kind:"builtin_tool_result",id:d,blockType:g,callId:a?.call_id||d,toolName:c,result:a?.result??null,...a?.is_error!=null?{isError:a.is_error}:{},resultEmitted:!1};k.set(b,e)}else k.set(b,{kind:"unknown",id:d});break}case"step.delta":{let a=k.get(n.index);if(null==a)break;let b=n.delta?.type;if("pending_model_output"===a.kind&&("text"===b||"text_annotation"===b||"text_annotation_delta"===b)){let b={kind:"text",id:a.id,emittedSourceKeys:new Set};k.set(n.index,b),a=b,e.enqueue({type:"text-start",id:b.id})}if("image"===b&&("pending_model_output"===a.kind||"text"===a.kind||"image"===a.kind)){let b=n.delta,c={};null!=f&&(c.interactionId=f);let d=Object.keys(c).length>0?{google:c}:void 0;b?.data!=null&&b.data.length>0?e.enqueue({type:"file",mediaType:b.mime_type??"image/png",data:{type:"data",data:b.data},...d?{providerMetadata:d}:{}}):b?.uri!=null&&b.uri.length>0&&e.enqueue({type:"file",mediaType:b.mime_type??"image/png",data:{type:"url",url:new URL(b.uri)},...d?{providerMetadata:d}:{}}),"image"===a.kind&&(a.data=void 0,a.uri=void 0);break}if("video"===b&&("pending_model_output"===a.kind||"text"===a.kind)){let a=n.delta,b={};null!=f&&(b.interactionId=f);let c=Object.keys(b).length>0?{google:b}:void 0;a?.data!=null&&a.data.length>0?e.enqueue({type:"file",mediaType:a.mime_type??"video/mp4",data:{type:"data",data:a.data},...c?{providerMetadata:c}:{}}):a?.uri!=null&&a.uri.length>0&&e.enqueue({type:"file",mediaType:a.mime_type??"video/mp4",data:{type:"url",url:new URL(a.uri)},...c?{providerMetadata:c}:{}});break}let d=n.delta;if("custom"===a.kind&&(d?.type==="processing_call"||d?.type==="processing_result"))null!=d.signature&&(a.google.signature=d.signature),"processing_call"===d.type&&null!=d.id&&d.id.length>0&&(a.google.processingId=d.id),"processing_result"===d.type&&null!=d.call_id&&d.call_id.length>0&&(a.google.processingCallId=d.call_id);else if("text"===a.kind&&d?.type==="text"){let b=d.text??"";b.length>0&&e.enqueue({type:"text-delta",id:a.id,delta:b})}else if("text"===a.kind&&(d?.type==="text_annotation"||d?.type==="text_annotation_delta"))for(let b of aS({annotations:d.annotations,generateId:c})){let c=m(b);l.has(c)||(l.add(c),a.emittedSourceKeys.add(c),e.enqueue(b))}else if("image"===a.kind&&d?.type==="image")null!=d.data&&(a.data=d.data),null!=d.mime_type&&(a.mimeType=d.mime_type),null!=d.uri&&(a.uri=d.uri);else if("reasoning"===a.kind){if(d?.type==="thought_summary"){let b=d.content;b?.type==="text"&&"string"==typeof b.text&&e.enqueue({type:"reasoning-delta",id:a.id,delta:b.text})}else if(d?.type==="thought_signature"){let b=d.signature;null!=b&&(a.signature=b)}}else if("function_call"===a.kind&&d?.type==="arguments_delta"){let b="string"==typeof d.arguments?d.arguments:"";b.length>0&&(a.argumentsAccum+=b,e.enqueue({type:"tool-input-delta",id:a.toolCallId,delta:b})),null!=d.id&&d.id.length>0&&(a.toolCallId=d.id),null!=d.signature&&(a.signature=d.signature),j=!0}else"builtin_tool_call"===a.kind&&d?.type===a.blockType?(null!=d.id&&d.id.length>0&&(a.toolCallId=d.id),null!=d.arguments&&"object"==typeof d.arguments&&(a.arguments=d.arguments),null!=d.name&&"mcp_server_tool_call"===a.blockType&&(a.toolName=d.name)):"builtin_tool_result"===a.kind&&d?.type===a.blockType&&(null!=d.call_id&&d.call_id.length>0&&(a.callId=d.call_id),void 0!==d.result&&(a.result=d.result),null!=d.is_error&&(a.isError=d.is_error),null!=d.name&&"mcp_server_tool_result"===a.blockType&&(a.toolName=d.name));break}case"step.stop":{let a=k.get(n.index);if(null==a)break;if("text"===a.kind){let b=null!=f?{google:{interactionId:f}}:void 0;e.enqueue({type:"text-end",id:a.id,...b?{providerMetadata:b}:{}})}else if("reasoning"===a.kind){let b={};null!=a.signature&&(b.signature=a.signature),null!=f&&(b.interactionId=f);let c=Object.keys(b).length>0?{google:b}:void 0;e.enqueue({type:"reasoning-end",id:a.id,...c?{providerMetadata:c}:{}})}else if("image"===a.kind){let b={};null!=f&&(b.interactionId=f);let c=Object.keys(b).length>0?{google:b}:void 0;null!=a.data&&a.data.length>0?e.enqueue({type:"file",mediaType:a.mimeType??"image/png",data:{type:"data",data:a.data},...c?{providerMetadata:c}:{}}):null!=a.uri&&a.uri.length>0&&e.enqueue({type:"file",mediaType:a.mimeType??"image/png",data:{type:"url",url:new URL(a.uri)},...c?{providerMetadata:c}:{}})}else if("function_call"===a.kind){let b=a.argumentsAccum.length>0?a.argumentsAccum:"{}";e.enqueue({type:"tool-input-end",id:a.toolCallId});let c={};null!=a.signature&&(c.signature=a.signature),null!=f&&(c.interactionId=f);let d=Object.keys(c).length>0?{google:c}:void 0;e.enqueue({type:"tool-call",toolCallId:a.toolCallId,toolName:a.toolName,input:b,...d?{providerMetadata:d}:{}})}else if("custom"===a.kind)e.enqueue({type:"custom",kind:a.customKind,providerMetadata:{google:a.google}});else if("builtin_tool_call"!==a.kind||a.callEmitted){if("builtin_tool_result"===a.kind&&!a.resultEmitted)for(let b of(e.enqueue({type:"tool-result",toolCallId:a.callId,toolName:a.toolName,result:a.result??null}),a.resultEmitted=!0,aR({block:{type:a.blockType,call_id:a.callId,result:a.result},generateId:c}))){let a=m(b);l.has(a)||(l.add(a),e.enqueue(b))}}else e.enqueue({type:"tool-call",toolCallId:a.toolCallId,toolName:a.toolName,input:JSON.stringify(a.arguments??{}),providerExecuted:!0}),a.callEmitted=!0;k.delete(n.index);break}case"interaction.status_update":case"interaction.in_progress":case"interaction.requires_action":h=null!=n.status?n.status:"interaction.requires_action"===o?"requires_action":"in_progress";break;case"interaction.completed":{let a=n.interaction;a?.id!=null&&a.id.length>0&&(f=a.id),a?.status!=null&&(h=a.status),a?.usage!=null&&(g=a.usage),a?.service_tier!=null&&(i=a.service_tier);break}case"error":h="failed",e.enqueue({type:"error",error:(0,b.createProviderStreamError)({message:n.error?.message??"Unknown interaction error",type:n.event_type,code:n.error?.code??void 0,data:n})})}},flush(a){let b={unified:aT({status:h,hasFunctionCall:j}),raw:h},c=aN(g),d={google:{...null!=f?{interactionId:f}:{},...null!=i?{serviceTier:i}:{},...null!=c?{outputTokensByModality:c}:{}}};a.enqueue({type:"finish",finishReason:b,usage:aM(g),providerMetadata:d})}})}function aX({part:a,warnings:c,mediaResolution:d}){let e;if("text"===a.data.type)return{type:"text",text:a.data.text};switch((0,b.getTopLevelMediaType)(a.mediaType)){case"image":e="image";break;case"audio":e="audio";break;case"video":e="video";break;case"application":case"text":e="document";break;default:e=void 0}if(null==e)return void c.push({type:"other",message:`google.interactions: unsupported file media type "${a.mediaType}"; part dropped.`});let f=null!=d&&("image"===e||"video"===e)?{resolution:d}:{},g="video"===e?function({part:a,warnings:b}){let c=a.providerOptions?.google?.processing;return null==c?{}:"agentic"===c||"static"===c?{processing:c}:"object"!=typeof c||Array.isArray(c)||"static"!==c.type?(b.push({type:"other",message:'google.interactions: invalid providerOptions.google.processing on video file part; expected "agentic", "static", or a static processing configuration. Option dropped.'}),{}):{processing:{type:"static",..."number"==typeof c.startOffset?{start_offset:`${c.startOffset}s`}:{},..."number"==typeof c.endOffset?{end_offset:`${c.endOffset}s`}:{},..."number"==typeof c.fps?{fps:c.fps}:{}}}}({part:a,warnings:c}):{};switch(a.data.type){case"data":{let c=(0,b.resolveFullMediaType)({part:a});return{type:e,data:(0,b.convertToBase64)(a.data.data),mime_type:c,...f,...g}}case"url":return{type:e,uri:a.data.url.toString(),...(0,b.isFullMediaType)(a.mediaType)?{mime_type:a.mediaType}:{},...f,...g};case"reference":return{type:e,uri:(0,b.resolveProviderReference)({reference:a.data.reference,provider:"google"}),...(0,b.isFullMediaType)(a.mediaType)?{mime_type:a.mediaType}:{},...f,...g}}}let aY=()=>f.z.object({modality:f.z.string().nullish(),tokens:f.z.number().nullish()}).loose(),aZ=()=>f.z.object({total_input_tokens:f.z.number().nullish(),total_output_tokens:f.z.number().nullish(),total_thought_tokens:f.z.number().nullish(),total_cached_tokens:f.z.number().nullish(),total_tool_use_tokens:f.z.number().nullish(),total_tokens:f.z.number().nullish(),input_tokens_by_modality:f.z.array(aY()).nullish(),output_tokens_by_modality:f.z.array(aY()).nullish(),cached_tokens_by_modality:f.z.array(aY()).nullish(),tool_use_tokens_by_modality:f.z.array(aY()).nullish(),grounding_tool_count:f.z.array(f.z.object({type:f.z.string().nullish(),count:f.z.number().nullish()}).loose()).nullish()}).loose(),a$=()=>f.z.enum(["in_progress","requires_action","completed","failed","cancelled","incomplete"]),a_=()=>{let a=f.z.object({type:f.z.literal("url_citation"),url:f.z.string().nullish(),title:f.z.string().nullish(),start_index:f.z.number().nullish(),end_index:f.z.number().nullish()}).loose(),b=f.z.object({type:f.z.literal("file_citation"),file_name:f.z.string().nullish(),document_uri:f.z.string().nullish(),url:f.z.string().nullish(),page_number:f.z.number().nullish(),media_id:f.z.string().nullish(),start_index:f.z.number().nullish(),end_index:f.z.number().nullish(),custom_metadata:f.z.record(f.z.string(),f.z.unknown()).nullish()}).loose(),c=f.z.object({type:f.z.literal("place_citation"),name:f.z.string().nullish(),url:f.z.string().nullish(),place_id:f.z.string().nullish(),start_index:f.z.number().nullish(),end_index:f.z.number().nullish()}).loose();return f.z.union([a,b,c,f.z.object({type:f.z.string()}).loose()])},a0=()=>f.z.object({type:f.z.string(),text:f.z.string().nullish(),data:f.z.string().nullish(),mime_type:f.z.string().nullish()}).loose(),a1=()=>{let a=f.z.object({type:f.z.literal("text"),text:f.z.string(),annotations:f.z.array(a_()).nullish()}).loose(),b=f.z.object({type:f.z.literal("image"),data:f.z.string().nullish(),mime_type:f.z.string().nullish(),resolution:f.z.enum(["low","medium","high","ultra_high"]).nullish(),uri:f.z.string().nullish()}).loose(),c=f.z.object({type:f.z.literal("video"),data:f.z.string().nullish(),mime_type:f.z.string().nullish(),uri:f.z.string().nullish()}).loose();return f.z.union([a,b,c,f.z.object({type:f.z.string()}).loose()])},a2=["google_search_call","code_execution_call","url_context_call","file_search_call","google_maps_call","mcp_server_tool_call"],a3=["google_search_result","code_execution_result","url_context_result","file_search_result","google_maps_result","mcp_server_tool_result"],a4=()=>{let a=f.z.object({type:f.z.literal("user_input"),content:f.z.array(a1()).nullish()}).loose(),b=f.z.object({type:f.z.literal("model_output"),content:f.z.array(a1()).nullish()}).loose(),c=f.z.object({type:f.z.literal("function_call"),id:f.z.string(),name:f.z.string(),arguments:f.z.record(f.z.string(),f.z.unknown()).nullish(),signature:f.z.string().nullish()}).loose(),d=f.z.object({type:f.z.literal("thought"),signature:f.z.string().nullish(),summary:f.z.array(a0()).nullish()}).loose(),e=f.z.object({type:f.z.literal("processing_call"),id:f.z.string(),signature:f.z.string().nullish()}).loose(),g=f.z.object({type:f.z.literal("processing_result"),call_id:f.z.string(),signature:f.z.string().nullish()}).loose(),h=f.z.object({type:f.z.enum(a2),id:f.z.string(),arguments:f.z.record(f.z.string(),f.z.unknown()).nullish(),name:f.z.string().nullish(),server_name:f.z.string().nullish(),search_type:f.z.string().nullish(),signature:f.z.string().nullish()}).loose(),i=f.z.object({type:f.z.enum(a3),call_id:f.z.string(),result:f.z.unknown().nullish(),is_error:f.z.boolean().nullish(),name:f.z.string().nullish(),server_name:f.z.string().nullish(),signature:f.z.string().nullish()}).loose();return f.z.union([a,b,c,d,e,g,h,i,f.z.object({type:f.z.string()}).loose()])},a5=(0,b.lazySchema)(()=>(0,b.zodSchema)(f.z.object({id:f.z.string().nullish(),created:f.z.string().nullish(),updated:f.z.string().nullish(),status:a$(),model:f.z.string().nullish(),agent:f.z.string().nullish(),steps:f.z.array(a4()).nullish(),usage:aZ().nullish(),service_tier:f.z.string().nullish(),previous_interaction_id:f.z.string().nullish(),response_modalities:f.z.array(f.z.string()).nullish()}).loose())),a6=(0,b.lazySchema)(()=>{let a,c,d,e,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;return(0,b.zodSchema)((a=a$(),c=a_(),d=a0(),e=f.z.object({event_type:f.z.literal("interaction.created"),event_id:f.z.string().nullish(),interaction:f.z.object({id:f.z.string().nullish(),created:f.z.string().nullish(),model:f.z.string().nullish(),agent:f.z.string().nullish(),status:a.nullish()}).loose()}).loose(),g=f.z.object({event_type:f.z.literal("step.start"),event_id:f.z.string().nullish(),index:f.z.number(),step:a4()}).loose(),h=f.z.object({type:f.z.literal("text"),text:f.z.string()}).loose(),i=f.z.object({type:f.z.literal("thought_summary"),content:d.nullish()}).loose(),j=f.z.object({type:f.z.literal("thought_signature"),signature:f.z.string().nullish()}).loose(),k=f.z.object({type:f.z.literal("arguments_delta"),arguments:f.z.string().nullish(),id:f.z.string().nullish(),signature:f.z.string().nullish()}).loose(),l=f.z.object({type:f.z.enum(["text_annotation_delta","text_annotation"]),annotations:f.z.array(c).nullish()}).loose(),m=f.z.object({type:f.z.literal("image"),data:f.z.string().nullish(),mime_type:f.z.string().nullish(),resolution:f.z.enum(["low","medium","high","ultra_high"]).nullish(),uri:f.z.string().nullish()}).loose(),n=f.z.object({type:f.z.literal("video"),data:f.z.string().nullish(),mime_type:f.z.string().nullish(),uri:f.z.string().nullish()}).loose(),o=f.z.object({type:f.z.enum(a2),id:f.z.string().nullish(),arguments:f.z.record(f.z.string(),f.z.unknown()).nullish(),name:f.z.string().nullish(),server_name:f.z.string().nullish(),search_type:f.z.string().nullish(),signature:f.z.string().nullish()}).loose(),p=f.z.object({type:f.z.enum(a3),call_id:f.z.string().nullish(),result:f.z.unknown().nullish(),is_error:f.z.boolean().nullish(),name:f.z.string().nullish(),server_name:f.z.string().nullish(),signature:f.z.string().nullish()}).loose(),q=f.z.object({type:f.z.string()}).loose(),r=f.z.union([h,m,n,i,j,k,l,o,p,q]),s=f.z.object({event_type:f.z.literal("step.delta"),event_id:f.z.string().nullish(),index:f.z.number(),delta:r}).loose(),t=f.z.object({event_type:f.z.literal("step.stop"),event_id:f.z.string().nullish(),index:f.z.number()}).loose(),u=f.z.object({event_type:f.z.literal("interaction.status_update"),event_id:f.z.string().nullish(),interaction_id:f.z.string().nullish(),status:a.nullish()}).loose(),v=f.z.object({event_type:f.z.literal("interaction.in_progress"),event_id:f.z.string().nullish(),interaction_id:f.z.string().nullish(),status:a.nullish()}).loose(),w=f.z.object({event_type:f.z.literal("interaction.requires_action"),event_id:f.z.string().nullish(),interaction_id:f.z.string().nullish(),status:a.nullish()}).loose(),x=f.z.object({event_type:f.z.literal("interaction.completed"),event_id:f.z.string().nullish(),interaction:f.z.object({id:f.z.string().nullish(),status:a.nullish(),usage:aZ().nullish(),service_tier:f.z.string().nullish()}).loose()}).loose(),y=f.z.object({event_type:f.z.literal("error"),event_id:f.z.string().nullish(),error:f.z.object({code:f.z.string().nullish(),message:f.z.string().nullish()}).loose().nullish()}).loose(),z=f.z.object({event_type:f.z.string()}).loose(),f.z.union([e,g,s,t,u,v,w,x,y,z])))}),a7=(0,b.lazySchema)(()=>(0,b.zodSchema)(f.z.object({previousInteractionId:f.z.string().nullish(),store:f.z.boolean().nullish(),agent:f.z.string().nullish(),agentConfig:f.z.union([f.z.object({type:f.z.literal("dynamic")}).loose(),f.z.object({type:f.z.literal("deep-research"),thinkingSummaries:f.z.enum(["auto","none"]).nullish(),visualization:f.z.enum(["off","auto"]).nullish(),collaborativePlanning:f.z.boolean().nullish()})]).nullish(),thinkingLevel:f.z.enum(["minimal","low","medium","high"]).nullish(),thinkingSummaries:f.z.enum(["auto","none"]).nullish(),responseFormat:f.z.array(f.z.union([f.z.object({type:f.z.literal("text"),mimeType:f.z.string().nullish(),schema:f.z.unknown().nullish()}).loose(),f.z.object({type:f.z.literal("image"),mimeType:f.z.string().nullish(),aspectRatio:f.z.enum(["1:1","2:3","3:2","3:4","4:3","4:5","5:4","9:16","16:9","21:9","1:8","8:1","1:4","4:1"]).nullish(),imageSize:f.z.enum(["1K","2K","4K","512"]).nullish()}).loose(),f.z.object({type:f.z.literal("audio"),mimeType:f.z.string().nullish()}).loose(),f.z.object({type:f.z.literal("video"),aspectRatio:f.z.enum(["16:9","9:16"]).nullish(),resolution:f.z.enum(["360p","720p","1080p","4k"]).nullish(),duration:f.z.string().nullish(),delivery:f.z.enum(["inline","uri"]).nullish(),gcsUri:f.z.string().nullish()}).loose()])).nullish(),imageConfig:f.z.object({aspectRatio:f.z.enum(["1:1","2:3","3:2","3:4","4:3","4:5","5:4","9:16","16:9","21:9","1:8","8:1","1:4","4:1"]).nullish(),imageSize:f.z.enum(["1K","2K","4K","512"]).nullish()}).nullish(),mediaResolution:f.z.enum(["low","medium","high","ultra_high"]).nullish(),responseModalities:f.z.array(f.z.enum(["text","image","audio","video","document"])).nullish(),serviceTier:f.z.enum(["flex","standard","priority"]).nullish(),systemInstruction:f.z.string().nullish(),signature:f.z.string().nullish(),interactionId:f.z.string().nullish(),pollingTimeoutMs:f.z.number().int().positive().nullish(),background:f.z.boolean().nullish(),environment:f.z.union([f.z.string(),f.z.object({type:f.z.literal("remote"),sources:f.z.array(f.z.union([f.z.object({type:f.z.literal("gcs"),source:f.z.string(),target:f.z.string().nullish()}),f.z.object({type:f.z.literal("repository"),source:f.z.string(),target:f.z.string().nullish()}),f.z.object({type:f.z.literal("inline"),content:f.z.string(),target:f.z.string()})])).nullish(),network:f.z.union([f.z.literal("disabled"),f.z.object({allowlist:f.z.array(f.z.object({domain:f.z.string(),transform:f.z.array(f.z.record(f.z.string(),f.z.string())).nullish()}))})]).nullish()})]).nullish()})));function a8({signature:a,interactionId:b,processingId:c,processingCallId:d}){let e={};return null!=a&&(e.signature=a),null!=b&&(e.interactionId=b),null!=c&&(e.processingId=c),null!=d&&(e.processingCallId=d),Object.keys(e).length>0?{providerMetadata:{google:e}}:{}}let a9=new Set(["google_search_call","code_execution_call","url_context_call","file_search_call","google_maps_call","mcp_server_tool_call"]),ba=new Set(["google_search_result","code_execution_result","url_context_result","file_search_result","google_maps_result","mcp_server_tool_result"]);function bb({steps:a,generateId:b,interactionId:c}){let d=[],e=!1;if(null==a)return{content:d,hasFunctionCall:e};for(let f of a){if(null==f||"object"!=typeof f)continue;let a=f.type;if("string"==typeof a)switch(a){case"user_input":break;case"model_output":for(let a of f.content??[]){if(null==a||"object"!=typeof a)continue;let e=a.type;if("text"===e){let e=a.text??"",f=a.annotations;for(let a of(d.push({type:"text",text:e,...a8({interactionId:c})}),aS({annotations:f,generateId:b})))d.push(a)}else"image"===e?null!=a.data&&a.data.length>0?d.push({type:"file",mediaType:a.mime_type??"image/png",data:{type:"data",data:a.data},...a8({interactionId:c})}):null!=a.uri&&a.uri.length>0&&d.push({type:"file",mediaType:a.mime_type??"image/png",data:{type:"url",url:new URL(a.uri)},...a8({interactionId:c})}):"video"===e&&(null!=a.data&&a.data.length>0?d.push({type:"file",mediaType:a.mime_type??"video/mp4",data:{type:"data",data:a.data},...a8({interactionId:c})}):null!=a.uri&&a.uri.length>0&&d.push({type:"file",mediaType:a.mime_type??"video/mp4",data:{type:"url",url:new URL(a.uri)},...a8({interactionId:c})}))}break;case"thought":{let a=(Array.isArray(f.summary)?f.summary:[]).filter(a=>a?.type==="text"&&"string"==typeof a.text).map(a=>a.text).join("\n");d.push({type:"reasoning",text:a,...a8({signature:f.signature,interactionId:c})});break}case"processing_call":{let a=f.id||b();d.push({type:"custom",kind:"google.processing_call",...a8({signature:f.signature,interactionId:c,processingId:a})});break}case"processing_result":{let a=f.call_id||b();d.push({type:"custom",kind:"google.processing_result",...a8({signature:f.signature,interactionId:c,processingCallId:a})});break}case"function_call":e=!0,d.push({type:"tool-call",toolCallId:f.id,toolName:f.name,input:JSON.stringify(f.arguments??{}),...a8({signature:f.signature,interactionId:c})});break;default:if(a9.has(a)){let c="mcp_server_tool_call"===a?f.name??"mcp_server_tool":a.replace(/_call$/,""),e=JSON.stringify(f.arguments??{});d.push({type:"tool-call",toolCallId:f.id||b(),toolName:c,input:e,providerExecuted:!0})}else if(ba.has(a)){let c="mcp_server_tool_result"===a?f.name??"mcp_server_tool":a.replace(/_result$/,"");for(let a of(d.push({type:"tool-result",toolCallId:f.call_id||b(),toolName:c,result:f.result??null}),aR({block:f,generateId:b})))d.push(a)}}}return{content:d,hasFunctionCall:e}}async function bc({baseURL:a,interactionId:c,headers:d,fetch:e=globalThis.fetch}){if(null==c||0===c.length)return;let f=`${a}/interactions/${encodeURIComponent(c)}/cancel`;try{let a=await e(f,{method:"POST",headers:(0,b.withUserAgentSuffix)((0,b.combineHeaders)({"Content-Type":"application/json"},d),(0,b.getRuntimeEnvironmentUserAgent)()),body:"{}"});try{await a.text()}catch{}}catch{}}let bd=new Set(["completed","failed","cancelled","incomplete"]);function be(a){return null!=a&&bd.has(a)}async function bf({baseURL:a,interactionId:c,headers:d,fetch:e,abortSignal:f,initialDelayMs:g=1e3,maxDelayMs:i=1e4,timeoutMs:j=18e5}){if(null==c||0===c.length)throw Error("google.interactions: cannot poll a background interaction without an id. The POST response did not include an interaction id.");let k=Date.now(),l=g,m=`${a}/interactions/${encodeURIComponent(c)}`,n=()=>bc({baseURL:a,interactionId:c,headers:d,fetch:e});try{for(;;){if(f?.aborted)throw await n(),new DOMException("Polling was aborted","AbortError");if(Date.now()-k>j)throw Error(`google.interactions: timed out polling interaction ${c} after ${j}ms.`);await (0,b.delay)(l,{abortSignal:f});let{value:a,rawValue:g,responseHeaders:o}=await (0,b.getFromApi)({url:m,validateUrl:!1,headers:d,failedResponseHandler:h,successfulResponseHandler:(0,b.createJsonResponseHandler)(a5),abortSignal:f,fetch:e});if(be(a.status))return{response:a,rawResponse:g,responseHeaders:o};l=Math.min(2*l,i)}}catch(a){throw(0,b.isAbortError)(a)&&await n(),a}}var bg=class a{static[c.WORKFLOW_SERIALIZE](a){return{...(0,b.serializeModelOptions)({modelId:a.modelId,config:a.config}),agent:a.agent}}static[c.WORKFLOW_DESERIALIZE](b){return new a(null!=b.agent?{agent:b.agent}:b.modelId,b.config)}constructor(a,b){this.specificationVersion="v4","string"==typeof a?(this.modelId=a,this.agent=void 0):"managedAgent"in a?(this.modelId=a.managedAgent,this.agent=a.managedAgent):(this.modelId=a.agent,this.agent=a.agent),this.config=b}get provider(){return this.config.provider}get supportedUrls(){return this.config.supportedUrls?this.config.supportedUrls():{"image/*":[/^https?:\/\/.+/],"application/pdf":[/^https?:\/\/.+/],"audio/*":[/^https?:\/\/.+/],"video/*":[/^https?:\/\/(www\.)?youtube\.com\/watch\?v=.+/,/^https?:\/\/youtu\.be\/.+/,/^gs:\/\/.+/]}}async getArgs(a){let c,d,e,f,g,h=[],i=await (0,b.parseProviderOptions)({provider:"google",providerOptions:a.providerOptions,schema:a7}),j=null!=this.agent;if(j||(null!=a.frequencyPenalty&&h.push({type:"unsupported",feature:"frequencyPenalty"}),null!=a.presencePenalty&&h.push({type:"unsupported",feature:"presencePenalty"})),null!=a.tools&&a.tools.length>0){let b=function({tools:a,toolChoice:b}){let c,d=[],e=a?.length?a:void 0;if(null==e)return{tools:void 0,toolChoice:void 0,toolWarnings:d};let f=[];for(let a of e){if("function"===a.type){f.push({type:"function",name:a.name,description:a.description??"",parameters:a.inputSchema});continue}if("provider"===a.type){let b=a.args??{};switch(a.id){case"google.google_search":{let a,c=b.searchTypes;if(null!=c&&"object"==typeof c){let b=[];null!=c.webSearch&&b.push("web_search"),null!=c.imageSearch&&b.push("image_search"),b.length>0&&(a=b)}f.push({type:"google_search",...null!=a?{search_types:a}:{}});break}case"google.code_execution":f.push({type:"code_execution"});break;case"google.url_context":f.push({type:"url_context"});break;case"google.file_search":f.push({type:"file_search",...null!=b.fileSearchStoreNames?{file_search_store_names:b.fileSearchStoreNames}:{},...null!=b.topK?{top_k:b.topK}:{},...null!=b.metadataFilter?{metadata_filter:b.metadataFilter}:{}});break;case"google.google_maps":f.push({type:"google_maps",...null!=b.latitude?{latitude:b.latitude}:{},...null!=b.longitude?{longitude:b.longitude}:{},...null!=b.enableWidget?{enable_widget:b.enableWidget}:{}});break;case"google.computer_use":f.push({type:"computer_use",environment:b.environment??"browser",...null!=b.excludedPredefinedFunctions?{excludedPredefinedFunctions:b.excludedPredefinedFunctions}:{}});break;case"google.mcp_server":f.push({type:"mcp_server",...null!=b.name?{name:b.name}:{},...null!=b.url?{url:b.url}:{},...null!=b.headers?{headers:b.headers}:{},...null!=b.allowedTools?{allowed_tools:b.allowedTools}:{}});break;case"google.retrieval":{let a=b.vertexAiSearchConfig??void 0;f.push({type:"retrieval",...null!=b.retrievalTypes?{retrieval_types:b.retrievalTypes}:{retrieval_types:["vertex_ai_search"]},...null!=a?{vertex_ai_search_config:a}:{}});break}default:d.push({type:"unsupported",feature:`provider-defined tool ${a.id}`,details:`provider-defined tool ${a.id} is not supported by google.interactions; tool dropped.`})}continue}d.push({type:"unsupported",feature:`tool of type ${a.type}`,details:"Only function tools and google.* provider-defined tools are supported by google.interactions; tool dropped."})}let g=f.some(a=>"function"===a.type);if(null!=b&&g)switch(b.type){case"auto":c="auto";break;case"required":c="any";break;case"none":c="none";break;case"tool":c={allowed_tools:{mode:"validated",tools:[b.toolName]}}}return{tools:f.length>0?f:void 0,toolChoice:c,toolWarnings:d}}({tools:a.tools,toolChoice:a.toolChoice});c=b.tools,d=b.toolChoice,h.push(...b.toolWarnings)}let k=[];if(a.responseFormat?.type==="json")if(j)h.push({type:"other",message:"google.interactions: structured output (responseFormat) is not supported when an agent is set; responseFormat will be ignored."});else{let b={type:"text",mime_type:"application/json",...null!=a.responseFormat.schema?{schema:a.responseFormat.schema}:{}};k.push(b)}if(i?.responseFormat!=null)for(let a of i.responseFormat)"text"===a.type?k.push(bh({type:"text",mime_type:a.mimeType??void 0,schema:a.schema??void 0})):"image"===a.type?k.push(bh({type:"image",mime_type:a.mimeType??void 0,aspect_ratio:a.aspectRatio??void 0,image_size:a.imageSize??void 0})):"audio"===a.type?k.push(bh({type:"audio",mime_type:a.mimeType??void 0})):"video"===a.type&&k.push(bh({type:"video",aspect_ratio:a.aspectRatio??void 0,resolution:a.resolution??void 0,duration:a.duration??void 0,delivery:a.delivery??void 0,gcs_uri:a.gcsUri??void 0}));let{input:l,systemInstruction:m,warnings:n}=function({prompt:a,previousInteractionId:c,store:d,mediaResolution:e}){let f=[],g=null!=c&&!1===d,h=null!=c&&!1!==d;g&&f.push({type:"other",message:"google.interactions: providerOptions.google.previousInteractionId was set together with store: false. These are incoherent (the prior interaction cannot be referenced when nothing was stored on the server); the full history will be sent and previous_interaction_id will still be emitted."});let i=h?function({prompt:a,previousInteractionId:b}){let c=[],d=new Set;for(let e of a){if("assistant"===e.role){if(e.content.some(a=>a.providerOptions?.google?.interactionId===b)){for(let a of e.content)"tool-call"===a.type&&d.add(a.toolCallId);continue}c.push(e);continue}if("tool"===e.role){let a=e.content.filter(a=>"tool-result"!==a.type||!d.has(a.toolCallId));if(0===a.length)continue;c.push({...e,content:a});continue}c.push(e)}return c}({prompt:a,previousInteractionId:c}):a,j=[],k=[];for(let a of i)switch(a.role){case"system":j.push(a.content);break;case"user":{let b=[];for(let c of a.content)if("text"===c.type)b.push({type:"text",text:c.text});else if("file"===c.type){let a=aX({part:c,warnings:f,mediaResolution:e});null!=a&&b.push(a)}let c=function(a){if(a.length<2)return a;let b=[];for(let c of a){let a=b[b.length-1];if("text"===c.type&&null!=a&&"text"===a.type&&null==a.annotations&&null==c.annotations){let d={type:"text",text:`${a.text}
|
|
249
252
|
|
|
250
253
|
${c.text}`};b[b.length-1]=d;continue}b.push(c)}return b}(b);c.length>0&&k.push({type:"user_input",content:c});break}case"assistant":{let c=[],d=()=>{c.length>0&&(k.push({type:"model_output",content:c}),c=[])};for(let g of a.content)if("text"===g.type)c.push({type:"text",text:g.text});else if("reasoning"===g.type){d();let a=g.providerOptions?.google?.signature;k.push({type:"thought",...null!=a?{signature:a}:{},summary:g.text.length>0?[{type:"text",text:g.text}]:void 0})}else if("file"===g.type){let a=aX({part:g,warnings:f,mediaResolution:e});null!=a&&c.push(a)}else if("custom"===g.type){d();let a=g.providerOptions?.google,b="string"==typeof a?.signature?a.signature:void 0;"google.processing_call"===g.kind&&"string"==typeof a?.processingId?k.push({type:"processing_call",id:a.processingId,...null!=b?{signature:b}:{}}):"google.processing_result"===g.kind&&"string"==typeof a?.processingCallId?k.push({type:"processing_result",call_id:a.processingCallId,...null!=b?{signature:b}:{}}):f.push({type:"other",message:`google.interactions: unsupported or invalid custom assistant content part "${g.kind}"; part dropped.`})}else if("tool-call"===g.type){d();let a=g.providerOptions?.google?.signature,c="string"==typeof g.input?function(a){try{let c=(0,b.secureJsonParse)(a);if(null!=c&&"object"==typeof c&&!Array.isArray(c))return c;return{value:c}}catch{return{value:a}}}(g.input):g.input??{};k.push({type:"function_call",id:g.toolCallId,name:g.toolName,arguments:c,...null!=a?{signature:a}:{}})}else f.push({type:"other",message:`google.interactions: unsupported assistant content part type "${g.type}"; part dropped.`});d();break}case"tool":{let c=[];for(let d of a.content){if("tool-result"!==d.type){f.push({type:"other",message:`google.interactions: unsupported tool message part type "${d.type}"; part dropped.`});continue}let a=function({toolCallId:a,toolName:c,output:d,signature:e,warnings:f}){let g={type:"function_result",call_id:a,name:c,...null!=e?{signature:e}:{}};switch(d.type){case"text":return{...g,result:d.value};case"json":return{...g,result:JSON.stringify(d.value)};case"error-text":return{...g,is_error:!0,result:d.value};case"error-json":return{...g,is_error:!0,result:JSON.stringify(d.value)};case"execution-denied":return{...g,is_error:!0,result:d.reason??"Tool execution denied by user."};case"content":{let a=[];for(let c of d.value)if("text"===c.type)a.push({type:"text",text:c.text});else if("file"===c.type){if("image"!==(0,b.getTopLevelMediaType)(c.mediaType)){f.push({type:"other",message:`google.interactions: tool-result file with mediaType "${c.mediaType}" is not supported (Interactions \`function_result.result\` accepts only text and image content); part dropped.`});continue}let d=function({part:a,warnings:c}){switch(a.data.type){case"data":{let c=(0,b.isFullMediaType)(a.mediaType)?a.mediaType:(0,b.resolveFullMediaType)({part:{type:"file",mediaType:a.mediaType,data:a.data}});return{type:"image",data:(0,b.convertToBase64)(a.data.data),mime_type:c}}case"url":return{type:"image",uri:a.data.url.toString(),...(0,b.isFullMediaType)(a.mediaType)?{mime_type:a.mediaType}:{}};case"reference":return{type:"image",uri:(0,b.resolveProviderReference)({reference:a.data.reference,provider:"google"}),...(0,b.isFullMediaType)(a.mediaType)?{mime_type:a.mediaType}:{}};case"text":c.push({type:"other",message:'google.interactions: tool-result image part with `data.type === "text"` is not representable as an image; part dropped.'});return}}({part:c,warnings:f});null!=d&&a.push(d)}else f.push({type:"other",message:`google.interactions: tool-result content part type "${c.type}" is not supported; part dropped.`});return{...g,result:a}}}}({toolCallId:d.toolCallId,toolName:d.toolName,output:d.output,signature:d.providerOptions?.google?.signature,warnings:f});c.push(a)}c.length>0&&k.push({type:"user_input",content:c})}}return{input:k,systemInstruction:j.length>0?j.join("\n\n"):void 0,warnings:f}}({prompt:a.prompt,previousInteractionId:i?.previousInteractionId??void 0,store:i?.store??void 0,mediaResolution:i?.mediaResolution??void 0});h.push(...n);let o=m,p=i?.systemInstruction??void 0;if(null!=o&&null!=p?h.push({type:"other",message:"google.interactions: both AI SDK system message and providerOptions.google.systemInstruction were set; using the AI SDK system message."}):null==o&&null!=p&&(o=p),j){let b=[];null!=a.temperature&&b.push("temperature"),null!=a.topP&&b.push("topP"),null!=a.topK&&b.push("topK"),null!=a.frequencyPenalty&&b.push("frequencyPenalty"),null!=a.presencePenalty&&b.push("presencePenalty"),null!=a.seed&&b.push("seed"),null!=a.stopSequences&&a.stopSequences.length>0&&b.push("stopSequences"),null!=a.maxOutputTokens&&b.push("maxOutputTokens"),i?.thinkingLevel!=null&&b.push("thinkingLevel"),i?.thinkingSummaries!=null&&b.push("thinkingSummaries"),i?.imageConfig!=null&&b.push("imageConfig"),b.length>0&&h.push({type:"other",message:`google.interactions: ${b.join(", ")} ${1===b.length?"is":"are"} not supported when an agent is set; use providerOptions.google.agentConfig instead. Dropped from the request body.`}),e=void 0}else if(e=bh({temperature:a.temperature??void 0,top_p:a.topP??void 0,top_k:a.topK??void 0,seed:a.seed??void 0,stop_sequences:null!=a.stopSequences&&a.stopSequences.length>0?a.stopSequences:void 0,max_output_tokens:a.maxOutputTokens??void 0,thinking_level:i?.thinkingLevel??void 0,thinking_summaries:i?.thinkingSummaries??void 0,tool_choice:d}),i?.imageConfig!=null){let a=k.some(a=>"image"===a.type);h.push({type:"other",message:a?"google.interactions: providerOptions.google.imageConfig is deprecated and was ignored because providerOptions.google.responseFormat already supplies an image entry. Use responseFormat exclusively.":'google.interactions: providerOptions.google.imageConfig is deprecated. Use providerOptions.google.responseFormat with a { type: "image", ... } entry instead.'}),a||k.push({type:"image",mime_type:"image/png",...null!=i.imageConfig.aspectRatio?{aspect_ratio:i.imageConfig.aspectRatio}:{},...null!=i.imageConfig.imageSize?{image_size:i.imageConfig.imageSize}:{}})}if(j&&i?.agentConfig!=null){let a=i.agentConfig;"deep-research"===a.type?f=bh({type:"deep-research",thinking_summaries:a.thinkingSummaries??void 0,visualization:a.visualization??void 0,collaborative_planning:a.collaborativePlanning??void 0}):"dynamic"===a.type&&(f={type:"dynamic"})}if(i?.environment!=null)if(j)if("string"==typeof i.environment)g=i.environment;else{let a,b=i.environment,c=b.sources?.map(a=>"inline"===a.type?{type:"inline",content:a.content,target:a.target}:bh({type:a.type,source:a.source,target:a.target??void 0}));"disabled"===b.network?a="disabled":null!=b.network&&(a={allowlist:b.network.allowlist.map(a=>bh({domain:a.domain,transform:a.transform??void 0}))}),g=bh({type:"remote",sources:null!=c&&c.length>0?c:void 0,network:a})}else h.push({type:"other",message:"google.interactions: environment is only supported when an agent is set; environment will be omitted from the request body."});return{args:bh({...j?{agent:this.agent}:{model:this.modelId},input:l,system_instruction:o,tools:c,response_format:k.length>0?k:void 0,response_modalities:i?.responseModalities!=null?i.responseModalities:void 0,previous_interaction_id:i?.previousInteractionId??void 0,service_tier:i?.serviceTier??void 0,store:i?.store??void 0,generation_config:null!=e&&Object.keys(e).length>0?e:void 0,agent_config:f,environment:g,background:i?.background??void 0}),warnings:h,isAgent:j,isBackground:i?.background===!0,pollingTimeoutMs:i?.pollingTimeoutMs??void 0}}async doGenerate(a){let c,{args:d,warnings:e,isAgent:f,pollingTimeoutMs:g}=await this.getArgs(a),i=`${this.config.baseURL}/interactions`,j=(0,b.combineHeaders)(this.config.headers?await (0,b.resolve)(this.config.headers):void 0,a.headers),{responseHeaders:k,value:l,rawValue:m}=await (0,b.postJsonToApi)({url:i,headers:j,body:d,failedResponseHandler:h,successfulResponseHandler:(0,b.createJsonResponseHandler)(a5),abortSignal:a.abortSignal,fetch:this.config.fetch});if(f&&!be(l.status)){let b=await bf({baseURL:this.config.baseURL,interactionId:l.id,headers:j,fetch:this.config.fetch,abortSignal:a.abortSignal,timeoutMs:g});l=b.response,m=b.rawResponse,k=b.responseHeaders??k}let n="string"==typeof l.id&&l.id.length>0?l.id:void 0,{content:o,hasFunctionCall:p}=bb({steps:l.steps??null,generateId:this.config.generateId??b.generateId,interactionId:n}),q={unified:aT({status:l.status,hasFunctionCall:p}),raw:l.status},r=l.service_tier??k?.["x-gemini-service-tier"]??void 0,s=aN(l.usage),t={google:{...null!=n?{interactionId:n}:{},...null!=r?{serviceTier:r}:{},...null!=s?{outputTokensByModality:s}:{}}};if("string"==typeof l.created){let a=new Date(l.created);Number.isNaN(a.getTime())||(c=a)}return{content:o,finishReason:q,usage:aM(l.usage),warnings:e,providerMetadata:t,request:{body:d},response:{headers:k,body:m,...null!=n?{id:n}:{},...c?{timestamp:c}:{},modelId:l.model??void 0}}}async doStream(a){let{args:c,warnings:d,isBackground:e,pollingTimeoutMs:f}=await this.getArgs(a),g=`${this.config.baseURL}/interactions`,i=(0,b.combineHeaders)(this.config.headers?await (0,b.resolve)(this.config.headers):void 0,a.headers);if(e)return this.doStreamBackground({args:c,warnings:d,url:g,mergedHeaders:i,options:a,pollingTimeoutMs:f});let j={...c,stream:!0},{responseHeaders:k,value:l}=await (0,b.postJsonToApi)({url:g,headers:i,body:j,failedResponseHandler:h,successfulResponseHandler:(0,b.createEventSourceResponseHandler)(a6),abortSignal:a.abortSignal,fetch:this.config.fetch}),m=k?.["x-gemini-service-tier"],n=aW({warnings:d,generateId:this.config.generateId??b.generateId,includeRawChunks:a.includeRawChunks,serviceTier:m});return{stream:l.pipeThrough(n),request:{body:j},response:{headers:k}}}async doStreamBackground({args:a,warnings:c,url:d,mergedHeaders:e,options:f,pollingTimeoutMs:g}){let{responseHeaders:i,value:j}=await (0,b.postJsonToApi)({url:d,headers:e,body:a,failedResponseHandler:h,successfulResponseHandler:(0,b.createJsonResponseHandler)(a5),abortSignal:f.abortSignal,fetch:this.config.fetch}),k=j.id;if(null==k||0===k.length)throw Error("google.interactions: background POST response did not include an interaction id; cannot stream the result.");let l=i?.["x-gemini-service-tier"];if(be(j.status))return{stream:function({response:a,warnings:b,generateId:c,includeRawChunks:d,headerServiceTier:e}){return new ReadableStream({start(f){let g;f.enqueue({type:"stream-start",warnings:b});let h="string"==typeof a.id&&a.id.length>0?a.id:void 0,i=a.created;if("string"==typeof i){let a=new Date(i);Number.isNaN(a.getTime())||(g=a)}f.enqueue({type:"response-metadata",...null!=h?{id:h}:{},modelId:a.model??void 0,...g?{timestamp:g}:{}}),d&&f.enqueue({type:"raw",rawValue:a});let{content:j,hasFunctionCall:k}=bb({steps:a.steps??null,generateId:c,interactionId:h}),l=0,m=()=>`${h??"agent"}:${l++}`;for(let a of j)switch(a.type){case"text":{let b=m(),c=a.providerMetadata;f.enqueue({type:"text-start",id:b}),a.text.length>0&&f.enqueue({type:"text-delta",id:b,delta:a.text}),f.enqueue({type:"text-end",id:b,...c?{providerMetadata:c}:{}});break}case"reasoning":{let b=m(),c=a.providerMetadata;f.enqueue({type:"reasoning-start",id:b}),a.text.length>0&&f.enqueue({type:"reasoning-delta",id:b,delta:a.text}),f.enqueue({type:"reasoning-end",id:b,...c?{providerMetadata:c}:{}});break}case"tool-call":{let b=a.providerMetadata;f.enqueue({type:"tool-input-start",id:a.toolCallId,toolName:a.toolName,...a.providerExecuted?{providerExecuted:a.providerExecuted}:{}}),f.enqueue({type:"tool-input-delta",id:a.toolCallId,delta:a.input}),f.enqueue({type:"tool-input-end",id:a.toolCallId}),f.enqueue({type:"tool-call",toolCallId:a.toolCallId,toolName:a.toolName,input:a.input,...a.providerExecuted?{providerExecuted:a.providerExecuted}:{},...b?{providerMetadata:b}:{}});break}case"tool-result":f.enqueue({type:"tool-result",toolCallId:a.toolCallId,toolName:a.toolName,result:a.result});break;case"source":case"file":f.enqueue(a)}let n=a.service_tier??e,o={unified:aT({status:a.status,hasFunctionCall:k}),raw:a.status},p={google:{...null!=h?{interactionId:h}:{},...null!=n?{serviceTier:n}:{}}};f.enqueue({type:"finish",finishReason:o,usage:aM(a.usage),providerMetadata:p}),f.close()}})}({response:j,warnings:c,generateId:this.config.generateId??b.generateId,includeRawChunks:f.includeRawChunks,headerServiceTier:l}),request:{body:a},response:{headers:i}};let m=function({baseURL:a,interactionId:c,headers:d,fetch:e,abortSignal:f,maxRetries:g=3,retryDelayMs:i=500}){let j,k;if(0===c.length)throw Error("google.interactions: cannot stream a background interaction without an id.");let l={...d,accept:"text/event-stream"},m=!1,n=0,o=!1,p=new AbortController,q=()=>p.abort();null!=f&&(f.aborted?p.abort():f.addEventListener("abort",q,{once:!0}));let r=p.signal;async function s(){let d,f,{value:g}=await (0,b.getFromApi)({url:(d=`${a}/interactions/${encodeURIComponent(c)}`,f=new URLSearchParams({stream:"true"}),null!=j&&f.set("last_event_id",j),`${d}?${f.toString()}`),validateUrl:!1,headers:l,failedResponseHandler:h,successfulResponseHandler:(0,b.createEventSourceResponseHandler)(a6),abortSignal:r,fetch:e});return g.getReader()}return new ReadableStream({async start(h){try{for(;!m&&!r.aborted;){if(null==k)try{k=await s(),o=!1}catch(a){if((0,b.isAbortError)(a)||r.aborted||++n>=g)return void h.error(a);await (0,b.delay)(i*n,{abortSignal:r});continue}try{let{done:a,value:c}=await k.read();if(a){if(k=void 0,m)break;if(o)n=0;else{if(++n>=g)return void h.error(Error("google.interactions: SSE stream closed without producing any events."));await (0,b.delay)(i*n,{abortSignal:r})}continue}if(o=!0,c.success){let a=c.value;"string"==typeof a.event_id&&a.event_id.length>0&&(j=a.event_id),("interaction.completed"===a.event_type||"error"===a.event_type)&&(m=!0)}h.enqueue(c)}catch(a){if((0,b.isAbortError)(a)||r.aborted||(k=void 0,++n>=g))return void h.error(a);await (0,b.delay)(i*n,{abortSignal:r})}}h.close()}catch(a){h.error(a)}finally{null!=f&&f.removeEventListener("abort",q),k?.cancel().catch(()=>{}),k=void 0,r.aborted&&!m&&await bc({baseURL:a,interactionId:c,headers:d,fetch:e})}},cancel(){p.abort(),k?.cancel().catch(()=>{}),k=void 0}})}({baseURL:this.config.baseURL,interactionId:k,headers:e,fetch:this.config.fetch,abortSignal:f.abortSignal}),n=aW({warnings:c,generateId:this.config.generateId??b.generateId,includeRawChunks:f.includeRawChunks,serviceTier:l});return{stream:m.pipeThrough(n),request:{body:a},response:{headers:i}}}};function bh(a){let b={};for(let[c,d]of Object.entries(a))void 0!==d&&(b[c]=d);return b}function bi(a){let b=new URL(a),c=b.pathname.split("/"),d=c.at(-1);return("v1beta"===d||"v1alpha"===d)&&(c.pop(),b.pathname=c.join("/")||"/"),b}function bj(a,b){let c=bi(a);return c.protocol="https:"===c.protocol?"wss:":"ws:",c.pathname=`${c.pathname.replace(/\/$/,"")}/ws/${b}`,c}var bk=class{constructor(){this.turnCounter=0,this.inputTranscriptionCounter=0,this.inputTranscriptionBuffer="",this.inputTranscriptionBoundary="none",this.preserveInputTranscriptionAcrossTurnComplete=!1,this.hasAudio=!1,this.hasText=!1,this.hasTranscript=!1,this.turnClosed=!1,this.inputAudioRate=16e3}get responseId(){return`google-resp-${this.turnCounter}`}get itemId(){return`google-item-${this.turnCounter}`}beginTurnIfClosed(){this.turnClosed&&(this.turnCounter++,this.hasAudio=!1,this.hasText=!1,this.hasTranscript=!1,this.turnClosed=!1,this.preserveInputTranscriptionAcrossTurnComplete=!1)}accumulateInputTranscription({text:a,finished:b}){if(!a){!0===b&&this.finishInputTranscription();return}""!==this.inputTranscriptionBuffer&&("interrupted"===this.inputTranscriptionBoundary||"turn-complete"===this.inputTranscriptionBoundary&&null==b)&&this.finishInputTranscription(),this.inputTranscriptionBoundary="none",this.inputTranscriptionBuffer+=a;let c={itemId:`google-input-${this.inputTranscriptionCounter}`,transcript:this.inputTranscriptionBuffer};return!0===b&&this.finishInputTranscription(),c}finishInputTranscription(){""!==this.inputTranscriptionBuffer&&(this.inputTranscriptionCounter++,this.inputTranscriptionBuffer="")}parseServerEvent(a){if(null!=a.setupComplete)return{type:"session-created",raw:a};if(null!=a.toolCall)return this.beginTurnIfClosed(),(a.toolCall.functionCalls??[]).flatMap(b=>{let c=JSON.stringify(b.args??{});return[{type:"function-call-arguments-delta",responseId:this.responseId,itemId:this.itemId,callId:b.id,delta:c,raw:a},{type:"function-call-arguments-done",responseId:this.responseId,itemId:this.itemId,callId:b.id,name:b.name,arguments:c,raw:a}]});if(null!=a.toolCallCancellation)return{type:"custom",rawType:"toolCallCancellation",raw:a};if(null!=a.goAway)return{type:"custom",rawType:"goAway",raw:a};if(null!=a.sessionResumptionUpdate)return{type:"custom",rawType:"sessionResumptionUpdate",raw:a};if(null!=a.serverContent)return this.parseServerContent(a.serverContent,a);if(null!=a.inputTranscription){let b=this.accumulateInputTranscription(a.inputTranscription);if(null!=b)return{type:"input-transcription-completed",...b,raw:a}}return{type:"custom",rawType:String(Object.keys(a)[0]),raw:a}}parseServerContent(a,b){let c=[];if(a.interrupted&&(this.inputTranscriptionBoundary="interrupted",this.preserveInputTranscriptionAcrossTurnComplete=!0,this.turnClosed=!0,c.push({type:"speech-started",raw:b})),a.modelTurn?.parts)for(let d of(this.beginTurnIfClosed(),a.modelTurn.parts))d.inlineData?.data&&(this.hasAudio=!0,c.push({type:"audio-delta",responseId:this.responseId,itemId:this.itemId,delta:d.inlineData.data,raw:b})),d.text&&(this.hasText=!0,c.push({type:"text-delta",responseId:this.responseId,itemId:this.itemId,delta:d.text,raw:b}));if(a.outputTranscription?.text&&(this.hasTranscript=!0,c.push({type:"audio-transcript-delta",responseId:this.responseId,itemId:this.itemId,delta:a.outputTranscription.text,raw:b})),null!=a.inputTranscription){let d=this.accumulateInputTranscription(a.inputTranscription);null!=d&&c.push({type:"input-transcription-completed",...d,raw:b})}return(a.generationComplete&&c.push({type:"custom",rawType:"generationComplete",raw:b}),null!=a.interactionStatus&&c.push({type:"custom",rawType:"interactionStatus",raw:b}),a.waitingForInput&&c.push({type:"custom",rawType:"waitingForInput",raw:b}),a.turnComplete&&(this.hasAudio&&c.push({type:"audio-done",responseId:this.responseId,itemId:this.itemId,raw:b}),this.hasText&&c.push({type:"text-done",responseId:this.responseId,itemId:this.itemId,raw:b}),this.hasTranscript&&c.push({type:"audio-transcript-done",responseId:this.responseId,itemId:this.itemId,raw:b}),c.push({type:"response-done",responseId:this.responseId,status:"completed",raw:b}),this.turnClosed=!0,this.preserveInputTranscriptionAcrossTurnComplete?this.preserveInputTranscriptionAcrossTurnComplete=!1:"interrupted"!==this.inputTranscriptionBoundary&&(this.inputTranscriptionBoundary="turn-complete")),0===c.length)?{type:"custom",rawType:"serverContent",raw:b}:1===c.length?c[0]:c}serializeClientEvent(a,b){switch(a.type){case"session-update":return a.config.inputAudioFormat?.rate!=null&&(this.inputAudioRate=a.config.inputAudioFormat.rate),{setup:bm(a.config,b)};case"input-audio-append":return{realtimeInput:{audio:{data:a.audio,mimeType:`audio/pcm;rate=${this.inputAudioRate}`}}};case"input-audio-commit":return{realtimeInput:{audioStreamEnd:!0}};case"input-audio-clear":case"response-create":case"response-cancel":case"conversation-item-truncate":break;case"conversation-item-create":{let b=a.item;switch(b.type){case"text-message":return{realtimeInput:{text:b.text}};case"function-call-output":return bl(b);case"audio-message":return null}}}return null}};async function bl(a){var c;let d=await (0,b.safeParseJSON)({text:a.output}),e=d.success?"object"!=typeof(c=d.value)||null===c||Array.isArray(c)?{output:c}:c:{output:a.output};return{toolResponse:{functionResponses:[{id:a.callId,name:a.name,response:e}]}}}function bm(a,c){let d,e={model:o(c)},{google:f,...g}=a?.providerOptions??{},h=(0,b.isRecord)(f)?f:void 0,i={};a?.outputModalities!=null?i.responseModalities=a.outputModalities.map(a=>a.toUpperCase()):i.responseModalities=["AUDIO"],a?.voice!=null&&(i.speechConfig={voiceConfig:{prebuiltVoiceConfig:{voiceName:a.voice}}}),e.generationConfig=i,a?.instructions!=null&&(e.systemInstruction={parts:[{text:a.instructions}]}),a?.tools!=null&&a.tools.length>0&&(e.tools=[{functionDeclarations:a.tools.map(a=>({name:a.name,description:a.description,parametersJsonSchema:a.parameters,...h?.defaultToolBehavior!=null?{behavior:h.defaultToolBehavior}:{}}))}]),a?.inputAudioTranscription!=null&&(e.inputAudioTranscription={}),a?.outputAudioTranscription!=null&&(e.outputAudioTranscription={});let j=g.generationConfig,k=h?.thinkingConfig??((0,b.isRecord)(j)&&(0,b.isRecord)(j.thinkingConfig)?j.thinkingConfig:void 0),l=(d=c.split("/").at(-1)?.toLowerCase()??"",/^gemini-\d+\.\d+-live\b.*thinking/.test(d)&&k?.thinkingLevel==null&&k?.thinkingBudget==null)?{...k,thinkingLevel:"low"}:h?.thinkingConfig,m=()=>{if(null==l)return;let a=(0,b.isRecord)(e.generationConfig)?e.generationConfig:i;e.generationConfig={...a,thinkingConfig:l}};return a?.providerOptions==null||(Object.assign(e,g),h?.translationConfig!=null&&(e.generationConfig={...(0,b.isRecord)(e.generationConfig)?e.generationConfig:i,translationConfig:h.translationConfig})),m(),e}var bn=class{constructor(a,b){this.specificationVersion="v4",this.mapper=new bk,this.modelId=a,this.provider=b.provider,this.config=b}async doCreateClientSecret(a){let b,c=this.config.fetch??fetch,d=this.config.headers()["x-goog-api-key"];if(!d)throw Error("Google Generative AI API key is required for realtime token creation.");let e=Date.now(),f=(a.expiresAfterSeconds??60)*1e3,g=new Date(e+f).toISOString(),h=new Date(e+f+18e5).toISOString(),i=bm(a.sessionConfig,this.modelId),j=await c(`${((b=bi(this.config.baseURL)).pathname=`${b.pathname.replace(/\/$/,"")}/v1alpha/auth_tokens`,b.toString())}?key=${encodeURIComponent(d)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({uses:0,expireTime:h,newSessionExpireTime:g,bidiGenerateContentSetup:i})});if(!j.ok){let a=await j.text();throw Error(`Google realtime auth token request failed: ${j.status} ${a}`)}let k=await j.json();return{token:k.name,url:bj(this.config.baseURL,"google.ai.generativelanguage.v1alpha.GenerativeService.BidiGenerateContentConstrained").toString(),expiresAt:k.expireTime?Math.floor(new Date(k.expireTime).getTime()/1e3):void 0}}getWebSocketConfig(a){return{url:`${a.url}?access_token=${encodeURIComponent(a.token)}`}}parseServerEvent(a){return this.mapper.parseServerEvent(a)}serializeClientEvent(a){return this.mapper.serializeClientEvent(a,this.modelId)}buildSessionConfig(a){return bm(a,this.modelId)}};let bo=f.z.object({languageCodes:f.z.array(f.z.string()).optional(),customVocabulary:f.z.array(f.z.string()).optional(),wordTimestamp:f.z.boolean().optional(),diarization:f.z.boolean().optional(),mode:f.z.enum(["SMART","VERBATIM"]).optional()});function bp(a){return a.includes("-live")}var bq=class a{static[c.WORKFLOW_SERIALIZE](a){return(0,b.serializeModelOptions)({modelId:a.modelId,config:a.config})}static[c.WORKFLOW_DESERIALIZE](b){return new a(b.modelId,b.config)}get provider(){return this.config.provider}constructor(a,b){this.modelId=a,this.config=b,this.specificationVersion="v4"}async parseOptions(a){return(0,b.parseProviderOptions)({provider:"google",providerOptions:a,schema:bo})}async doGenerate(a){if(bp(this.modelId))throw new e.InvalidArgumentError({argument:"modelId",message:`Model '${this.modelId}' only supports streaming transcription. Use experimental_streamTranscribe, or a unary model such as 'gemini-3.5-transcribe'.`});let c=this.config._internal?.currentDate?.()??new Date,d=function(a){if(null==a)return;let b={};return null!=a.languageCodes&&(b.language_codes=a.languageCodes),null!=a.customVocabulary&&(b.custom_vocabulary=a.customVocabulary),(null!=a.mode||!0===a.diarization||!0===a.wordTimestamp)&&(b.mode={type:(a.mode??"VERBATIM").toLowerCase(),...!0===a.diarization?{diarization_mode:"speaker"}:{},...!0===a.wordTimestamp?{timestamp_granularities:["word"]}:{}}),Object.keys(b).length>0?b:void 0}(await this.parseOptions(a.providerOptions)),f={model:this.modelId,input:[{type:"audio",data:(0,b.convertToBase64)(a.audio),mime_type:a.mediaType}],...null!=d?{generation_config:{transcription_config:d}}:{}},{value:g,responseHeaders:i,rawValue:j}=await (0,b.postJsonToApi)({url:`${this.config.baseURL}/interactions`,headers:(0,b.combineHeaders)(this.config.headers?await (0,b.resolve)(this.config.headers):void 0,a.headers),body:f,failedResponseHandler:h,successfulResponseHandler:(0,b.createJsonResponseHandler)(bt),abortSignal:a.abortSignal,fetch:this.config.fetch}),k="",l=[];for(let a of g.steps??[])for(let b of a.content??[])if("text"===b.type&&null!=b.text)for(let a of(k+=b.text,b.annotations??[])){if("word_info"!==a.type)continue;let b=br(a.start_offset),c=br(a.end_offset);null!=a.text&&null!=b&&null!=c&&l.push({text:a.text,startSecond:b,endSecond:c})}return{text:k,segments:l,language:void 0,durationInSeconds:void 0,warnings:[],response:{timestamp:c,modelId:this.modelId,headers:i,body:j},...null!=g.usage?{providerMetadata:{google:{usage:g.usage}}}:{}}}async doStream(a){let c,d;if(!bp(this.modelId))throw new e.InvalidArgumentError({argument:"modelId",message:`Model '${this.modelId}' does not support streaming transcription. Use a live model such as 'gemini-3.5-transcribe-live'.`});let f=this.config._internal?.currentDate?.()??new Date,g=await this.parseOptions(a.providerOptions);var h,i,j=a.inputAudioFormat;if("audio/pcm"!==j.type||null!=j.rate&&16e3!==j.rate)throw new e.InvalidArgumentError({argument:"inputAudioFormat",message:"The Gemini Live transcription API only supports 16kHz 16-bit PCM input audio."});let k=(0,b.combineHeaders)(this.config.headers?await (0,b.resolve)(this.config.headers):void 0,a.headers);for(let[a,b]of Object.entries(k))"x-goog-api-key"===a.toLowerCase()&&null!=b&&(c=b);if(null==c)throw Error("Google Generative AI API key is required for streaming transcription.");let l=Object.fromEntries(Object.entries(k).filter(([a])=>"x-goog-api-key"!==a.toLowerCase())),m={model:o(this.modelId),inputAudioTranscription:function(a){if(null==a)return;let b={};return null!=a.languageCodes&&(b.languageCodes=a.languageCodes),null!=a.customVocabulary&&(b.customVocabulary=a.customVocabulary),null!=a.wordTimestamp&&(b.wordTimestamp=a.wordTimestamp),null!=a.diarization&&(b.diarization=a.diarization),null!=a.mode&&(b.mode=a.mode),Object.keys(b).length>0?b:void 0}(g)??{}};return{request:{body:m},response:{timestamp:f,modelId:this.modelId},stream:function({webSocket:a,url:c,headers:d,setup:e,inputAudioRate:f,finishGraceMs:g,warnings:h,audio:i,abortSignal:j,includeRawChunks:k}){let l=!1,m=()=>{};return new ReadableStream({start:n=>{let o,p,q,r,s,t,u=new Promise(a=>{q=a}),v=0,w="",x="",y="",z=!1,A=()=>`google-segment-${v}`,B=()=>{null!=t&&(clearTimeout(t),t=void 0)},C=()=>{!l&&z&&(B(),t=setTimeout(()=>{t=void 0,F()},g))};m=a=>{B(),null!=o?o.cancel().catch(()=>{}):i.cancel().catch(()=>{}),p?.close(a)};let D=a=>{l||(l=!0,m(),n.error(a))},E=()=>{if(""===w){if(""===y)return;w=y}y="",n.enqueue({type:"transcript-final",id:A(),text:w}),x+=""===x?w:` ${w}`,w="",v++},F=()=>{l||(E(),l=!0,n.enqueue({type:"finish",text:x,segments:[],language:r,durationInSeconds:void 0,...null!=s?{providerMetadata:{google:{usageMetadata:s}}}:{}}),n.close(),m(1e3))},G=async a=>{o=i.getReader();try{for(;;){let{done:c,value:d}=await o.read();if(c||l)break;a.send(JSON.stringify({realtimeInput:{audio:{data:(0,b.convertToBase64)(d),mimeType:`audio/pcm;rate=${f}`}}})),await (0,b.waitForWebSocketBufferDrain)(a)}}finally{o.releaseLock(),o=void 0}l||(a.send(JSON.stringify({realtimeInput:{audioStreamEnd:!0}})),z=!0,C())};p=(0,b.connectToWebSocket)({url:c,headers:d,webSocket:a,abortSignal:j,onAbort:D,onProcessingError:D,onOpen:a=>{n.enqueue({type:"stream-start",warnings:h}),a.send(JSON.stringify({setup:e})),u.then(()=>l?void 0:G(a)).catch(D)},onMessageText:async a=>{if(l)return;let c=await (0,b.safeParseJSON)({text:a});if(!c.success)return;let d=c.value;if(k&&n.enqueue({type:"raw",rawValue:d}),null!=d.setupComplete&&q(),null!=d.usageMetadata&&(s=d.usageMetadata),null!=d.error)return void D(Error(d.error.message??"Google Live API error"));let e=d.serverContent,f=e?.interimInputTranscription;f?.text&&(C(),y=f.text,n.enqueue({type:"transcript-partial",id:A(),text:f.text}));let g=e?.inputTranscription??d.inputTranscription;null!=g&&(null!=g.languageCode&&(r=g.languageCode),g.text&&(C(),y="",w+=g.text,n.enqueue({type:"transcript-delta",id:A(),delta:g.text})),!0===g.finished&&E()),e?.turnComplete&&E();let h=e?.interactionStatus;z&&("IDLE"===h||"REQUIRES_ACTION"===h||e?.turnComplete===!0&&null==h)&&F()},onSocketError:()=>{D(Error("Google Live transcription error"))},onClose:({code:a,reason:b})=>{if(!l){if(z)return void F();D(Error(`Google Live transcription WebSocket closed unexpectedly before finishing (code ${a??"unknown"}${b?`, reason: ${b}`:""}).`))}}})},cancel:()=>{l||(l=!0,m())}})}({webSocket:this.config.webSocket,url:(h=this.config.baseURL,i=c,(d=bj(h,"google.ai.generativelanguage.v1beta.GenerativeService.BidiGenerateContent")).searchParams.set("key",i),d),headers:l,setup:m,inputAudioRate:a.inputAudioFormat.rate??16e3,finishGraceMs:this.config._internal?.finishGraceMs??3e3,warnings:[],audio:a.audio,abortSignal:a.abortSignal,includeRawChunks:a.includeRawChunks})}}};function br(a){if(null==a)return;let b=Number.parseFloat(a);return Number.isFinite(b)?b:void 0}let bs=f.z.object({type:f.z.string().nullish(),text:f.z.string().nullish(),speaker:f.z.string().nullish(),start_offset:f.z.string().nullish(),end_offset:f.z.string().nullish()}),bt=f.z.object({status:f.z.string().nullish(),steps:f.z.array(f.z.object({type:f.z.string().nullish(),content:f.z.array(f.z.object({type:f.z.string().nullish(),text:f.z.string().nullish(),annotations:f.z.array(bs).nullish()})).nullish()})).nullish(),usage:f.z.record(f.z.string(),f.z.unknown()).nullish()}),bu=(0,b.lazySchema)(()=>(0,b.zodSchema)(f.z.object({echoTargetLanguage:f.z.boolean().optional()})));var bv=class a{static[c.WORKFLOW_SERIALIZE](a){return(0,b.serializeModelOptions)({modelId:a.modelId,config:a.config})}static[c.WORKFLOW_DESERIALIZE](b){return new a(b.modelId,b.config)}get provider(){return this.config.provider}constructor(a,b){this.specificationVersion="v4",this.modelId=a,this.config=b}async doStream(a){var c,d;let f,g;if(null==a.targetLanguage)throw new e.InvalidArgumentError({argument:"targetLanguage",message:`targetLanguage is required for translation model '${this.modelId}'.`});let h=this.config._internal?.currentDate?.()??new Date,i=await (0,b.parseProviderOptions)({provider:"google",providerOptions:a.providerOptions,schema:bu}),j=[];(function(a){if("audio/pcm"!==a.type||null!=a.rate&&16e3!==a.rate)throw new e.InvalidArgumentError({argument:"inputAudioFormat",message:"The Gemini Live translation API only supports 16kHz 16-bit PCM input audio."})})(a.inputAudioFormat),null!=a.sourceLanguage&&j.push({type:"unsupported",feature:"sourceLanguage",details:"The Gemini Live translation API auto-detects the source language and does not accept a source language."}),null!=a.outputAudioFormat&&j.push({type:"unsupported",feature:"outputAudioFormat",details:"The Gemini Live API always outputs 24kHz 16-bit PCM audio and does not accept an output audio format."});let k=(0,b.combineHeaders)(this.config.headers(),a.headers);for(let[a,b]of Object.entries(k))"x-goog-api-key"===a.toLowerCase()&&null!=b&&(f=b);if(null==f)throw Error("Google Generative AI API key is required for streaming translation.");let l=Object.fromEntries(Object.entries(k).filter(([a])=>"x-goog-api-key"!==a.toLowerCase())),m=function({modelId:a,targetLanguage:b,providerOptions:c}){return{model:o(a),generationConfig:{responseModalities:["AUDIO"],translationConfig:{targetLanguageCode:b,...c?.echoTargetLanguage!=null?{echoTargetLanguage:c.echoTargetLanguage}:{}}},inputAudioTranscription:{},outputAudioTranscription:{}}}({modelId:this.modelId,targetLanguage:a.targetLanguage,providerOptions:i});return{request:{body:m},response:{timestamp:h,modelId:this.modelId},stream:function({webSocket:a,url:c,headers:d,setup:e,inputAudioRate:f,finishGraceMs:g,warnings:h,audio:i,abortSignal:j,includeRawChunks:k}){let l=!1,m=()=>{};return new ReadableStream({start:n=>{let o,p,q,r,s,t=new Promise(a=>{q=a}),u=0,v="",w="",x="",y="",z=!1,A=!1,B=!1,C=0,D=()=>`google-item-${u}`,E=()=>{null!=s&&(clearTimeout(s),s=void 0)},F=()=>{l||null!=s||(s=setTimeout(()=>{s=void 0,I()},g))},G=()=>{A=!0,C=0,E()};m=a=>{E(),null!=o?o.cancel().catch(()=>{}):i.cancel().catch(()=>{}),p?.close(a)};let H=a=>{l||(l=!0,m(),n.error(a))},I=()=>{l||((""!==w||""!==y)&&J(),l=!0,n.enqueue({type:"finish",sourceText:v,outputText:x,usage:r}),n.close(),m(1e3))},J=()=>{""!==w&&(n.enqueue({type:"source-transcript-final",id:D(),text:w}),v+=w,w=""),""!==y&&(n.enqueue({type:"output-text-final",id:D(),text:y}),x+=y,y=""),u++},K=async a=>{o=i.getReader();try{for(;;){let{done:c,value:d}=await o.read();if(c||l)break;a.send(JSON.stringify({realtimeInput:{audio:{data:(0,b.convertToBase64)(d),mimeType:`audio/pcm;rate=${f}`}}})),await (0,b.waitForWebSocketBufferDrain)(a)}}finally{o.releaseLock(),o=void 0}l||(a.send(JSON.stringify({realtimeInput:{audioStreamEnd:!0}})),z=!0,B&&!A&&F())};p=(0,b.connectToWebSocket)({url:c,headers:d,webSocket:a,abortSignal:j,onAbort:H,onProcessingError:H,onOpen:a=>{n.enqueue({type:"stream-start",warnings:h}),a.send(JSON.stringify({setup:e})),t.then(()=>l?void 0:K(a)).catch(H)},onMessageText:async a=>{if(l)return;let c=await (0,b.safeParseJSON)({text:a});if(!c.success)return;let d=c.value;if(k&&n.enqueue({type:"raw",rawValue:d}),null!=d.setupComplete&&q(),null!=d.usageMetadata&&(r=function(a,b){let c=a?.inputAudioTokens,d=a?.outputAudioTokens;for(let a of b.promptTokensDetails??[])"AUDIO"===a.modality&&null!=a.tokenCount&&(c=(c??0)+a.tokenCount);for(let a of b.responseTokensDetails??[])"AUDIO"===a.modality&&null!=a.tokenCount&&(d=(d??0)+a.tokenCount);return null==c&&null==d?a:{...a,...null!=c?{inputAudioTokens:c}:{},...null!=d?{outputAudioTokens:d}:{}}}(r,d.usageMetadata)),null!=d.error)return void H(Error(d.error.message??"Google Live API error"));let e=d.serverContent?.inputTranscription?.text??d.inputTranscription?.text;e&&(G(),w+=e,n.enqueue({type:"source-transcript-delta",id:D(),delta:e}));let f=d.serverContent;if(null!=f){for(let a of f.modelTurn?.parts??[])if(a.inlineData?.data){n.enqueue({type:"audio",id:D(),audio:a.inlineData.data});let c=function(a){let c;try{c=(0,b.convertBase64ToUint8Array)(a)}catch{return}if(c.byteLength<2)return;let d=new DataView(c.buffer,c.byteOffset,c.byteLength),e=Math.floor(c.byteLength/2);for(let a=0;a<e;a++)if(Math.abs(d.getInt16(2*a,!0))>128)return;return e/24e3*1e3}(a.inlineData.data);if(z&&null!=c){if((C+=c)>=g)return void I()}else G()}f.outputTranscription?.text&&(G(),y+=f.outputTranscription.text,n.enqueue({type:"output-text-delta",id:D(),delta:f.outputTranscription.text})),f.turnComplete&&(J(),A=!1,B=!0,z&&F())}},onSocketError:()=>{H(Error("Google Live translation error"))},onClose:({code:a,reason:b})=>{if(!l){if(null!=s)return void I();H(Error(`Google Live translation WebSocket closed unexpectedly before finishing (code ${a??"unknown"}${b?`, reason: ${b}`:""}).`))}}})},cancel:()=>{l||(l=!0,m())}})}({webSocket:this.config.webSocket,url:(c=this.config.baseURL,d=f,(g=bj(c,"google.ai.generativelanguage.v1beta.GenerativeService.BidiGenerateContent")).searchParams.set("key",d),g),headers:l,setup:m,inputAudioRate:a.inputAudioFormat.rate??16e3,finishGraceMs:this.config._internal?.finishGraceMs??1e3,warnings:j,audio:a.audio,abortSignal:a.abortSignal,includeRawChunks:a.includeRawChunks})}}};let bw=/^https:\/\/generativelanguage\.googleapis\.com\/v1beta\/files\/.*$/,bx=["text/html","text/css","text/plain","text/xml","text/csv","text/rtf","text/javascript","application/json","application/pdf","image/bmp","image/jpeg","image/png","image/webp","video/mp4","video/mpeg","video/quicktime","video/avi","video/x-flv","video/mpg","video/webm","video/wmv","video/3gpp"],by=/^https:\/\/.*$/;function bz(a){return/(^|\/)gemini-/.test(a)&&!/(^|\/)gemini-2\.0/.test(a)}function bA(a={}){let c=(0,b.withoutTrailingSlash)(a.baseURL)??"https://generativelanguage.googleapis.com/v1beta",e=a.name??"google.generative-ai",f=()=>(0,b.withUserAgentSuffix)({"x-goog-api-key":(0,b.loadApiKey)({apiKey:a.apiKey,environmentVariableName:"GOOGLE_GENERATIVE_AI_API_KEY",description:"Google Generative AI"}),...a.headers},"ai-sdk-google/4.0.86"),g=(a,b=null==a||bz(a))=>({"*":[bw,RegExp(`^${c}/files/.*$`),RegExp("^https://(?:www\\.)?youtube\\.com/watch\\?v=[\\w-]+(?:&[\\w=&.-]*)?$"),RegExp("^https://youtu\\.be/[\\w-]+(?:\\?[\\w=&.-]*)?$")],...b?Object.fromEntries(bx.map(a=>[a,[by]])):{}}),h={provider:e,baseURL:c,headers:f,generateId:a.generateId??b.generateId,fetch:a.fetch},i=a=>new O(a,{...h,supportedUrls:()=>g(a)}),j=b=>new k(b,{provider:e,baseURL:c,headers:f,fetch:a.fetch}),l=(b,d={})=>new av(b,d,{provider:e,baseURL:c,headers:f,fetch:a.fetch}),m=d=>new aC(d,{provider:e,baseURL:c,headers:f,fetch:a.fetch,generateId:a.generateId??b.generateId}),n=b=>new bn(b,{provider:`${e}.realtime`,baseURL:c,headers:f,fetch:a.fetch}),o=b=>new bv(b,{provider:`${e}.speech-translation`,baseURL:c,headers:f,webSocket:a.webSocket}),p=b=>new aK(b,{provider:`${e}.speech`,baseURL:c,headers:f,fetch:a.fetch}),q=b=>new bq(b,{provider:`${e}.transcription`,baseURL:c,headers:f,fetch:a.fetch,webSocket:a.webSocket}),r=Object.assign(a=>n(a),{getToken:async a=>{let b=await n(a.model).doCreateClientSecret({sessionConfig:a.sessionConfig,expiresAfterSeconds:a.expiresAfterSeconds});return{token:b.token,url:b.url,expiresAt:b.expiresAt}}}),s=function(a){if(new.target)throw Error("The Google Generative AI model function cannot be called with the new keyword.");return i(a)};return s.specificationVersion="v4",s.languageModel=i,s.chat=i,s.generativeAI=i,s.evaluationModel=a=>new d.Experimental_EvaluationLanguageModel({model:i(a),provider:`${e.replace(/\.generative-ai$/,"")}.evaluation`}),s.experimental_batch=()=>new am({provider:`${e.replace(/\.generative-ai$/,"")}.batch`,config:h,supportedUrls:g(void 0,!1)}),s.embedding=j,s.embeddingModel=j,s.textEmbedding=j,s.textEmbeddingModel=j,s.image=l,s.imageModel=l,s.video=m,s.videoModel=m,s.experimental_realtime=r,s.files=()=>new ax({provider:e,baseURL:c,headers:f,fetch:a.fetch}),s.speech=p,s.speechModel=p,s.transcription=q,s.transcriptionModel=q,s.translation=o,s.speechTranslationModel=o,s.interactions=d=>new bg(d,{provider:`${e}.interactions`,baseURL:c,headers:f,generateId:a.generateId??b.generateId,fetch:a.fetch}),s.tools=at,s}bA(),a.s(["createGoogleGenerativeAI",0,bA])},873739,a=>{"use strict";var b=a.i(652685),c=a.i(527990),d=a.i(912735),e=a.i(53112);function f(a){if(null==a)return(0,c.createNullLanguageModelUsage)();let b=a.prompt_tokens??0,d=a.prompt_tokens_details?.cached_tokens??void 0,e=a.completion_tokens??0,f=a.completion_tokens_details?.reasoning_tokens??void 0,g=null!=f?Math.max(0,e-f):e;return{inputTokens:{total:b,noCache:null!=d?b-d:b,cacheRead:d,cacheWrite:void 0},outputTokens:{total:e,text:g,reasoning:f},raw:a}}let g=e.z.object({reasoningFormat:e.z.enum(["parsed","raw","hidden"]).optional(),reasoningEffort:e.z.enum(["none","default","low","medium","high"]).optional(),parallelToolCalls:e.z.boolean().optional(),user:e.z.string().optional(),structuredOutputs:e.z.boolean().optional(),strictJsonSchema:e.z.boolean().optional(),serviceTier:e.z.enum(["on_demand","performance","flex","auto"]).optional()}),h=e.z.object({error:e.z.object({message:e.z.string(),type:e.z.string()})}),i=(0,c.createJsonErrorResponseHandler)({errorSchema:h,errorToMessage:a=>a.error.message}),j=["openai/gpt-oss-20b","openai/gpt-oss-120b"];function k(a){switch(a){case"stop":return"stop";case"length":return"length";case"content_filter":return"content-filter";case"function_call":case"tool_calls":return"tool-calls";default:return"other"}}var l=class a{static[d.WORKFLOW_SERIALIZE](a){return(0,c.serializeModelOptions)({modelId:a.modelId,config:a.config})}static[d.WORKFLOW_DESERIALIZE](b){return new a(b.modelId,b.config)}constructor(a,b){this.specificationVersion="v4",this.supportedUrls={"image/*":[/^https?:\/\/.*$/]},this.modelId=a,this.config=b}get provider(){return this.config.provider}async getArgs({prompt:a,maxOutputTokens:d,temperature:e,topP:f,topK:h,frequencyPenalty:i,presencePenalty:k,stopSequences:l,responseFormat:m,seed:n,reasoning:o,tools:p,toolChoice:q,providerOptions:r}){let s=[],t=await (0,c.parseProviderOptions)({provider:"groq",providerOptions:r,schema:g}),u=t?.structuredOutputs??!0,v=t?.strictJsonSchema??!0;null!=h&&s.push({type:"unsupported",feature:"topK"}),m?.type!=="json"||null==m.schema||u||s.push({type:"unsupported",feature:"responseFormat",details:"JSON response format schema is only supported with structuredOutputs"});let{tools:w,toolChoice:x,toolWarnings:y}=function({tools:a,toolChoice:c,modelId:d}){a=a?.length?a:void 0;let e=[];if(null==a)return{tools:void 0,toolChoice:void 0,toolWarnings:e};let f=[];for(let b of a)if("provider"===b.type)if("groq.browser_search"===b.id)j.includes(d)?f.push({type:"browser_search"}):e.push({type:"unsupported",feature:`provider-defined tool ${b.id}`,details:`Browser search is only supported on the following models: ${j.join(", ")}. Current model: ${d}`});else e.push({type:"unsupported",feature:`provider-defined tool ${b.id}`});else f.push({type:"function",function:{name:b.name,description:b.description,parameters:b.inputSchema,...null!=b.strict?{strict:b.strict}:{}}});if(null==c)return{tools:f,toolChoice:void 0,toolWarnings:e};let g=c.type;switch(g){case"auto":case"none":case"required":return{tools:f,toolChoice:g,toolWarnings:e};case"tool":return{tools:f,toolChoice:{type:"function",function:{name:c.toolName}},toolWarnings:e};default:throw new b.UnsupportedFunctionalityError({functionality:`tool choice type: ${g}`})}}({tools:p,toolChoice:q,modelId:this.modelId}),z=t?.reasoningEffort;return null==z&&(0,c.isCustomReasoning)(o)&&("none"===o?"qwen/qwen3.6-27b"===this.modelId?z="none":s.push({type:"unsupported",feature:"reasoning",details:`reasoning "${o}" is not supported by this model.`}):z=(0,c.mapReasoningToProviderEffort)({reasoning:o,effortMap:{minimal:"low",low:"low",medium:"medium",high:"high",xhigh:"high"},warnings:s})),{args:{model:this.modelId,user:t?.user,parallel_tool_calls:t?.parallelToolCalls,max_tokens:d,temperature:e,top_p:f,frequency_penalty:i,presence_penalty:k,stop:l,seed:n,response_format:m?.type==="json"?u&&null!=m.schema?{type:"json_schema",json_schema:{schema:m.schema,strict:v,name:m.name??"response",description:m.description}}:{type:"json_object"}:void 0,reasoning_format:t?.reasoningFormat,reasoning_effort:z,service_tier:t?.serviceTier,messages:function(a){let d=[];for(let{role:e,content:f}of a)switch(e){case"system":d.push({role:"system",content:f});break;case"user":if(1===f.length&&"text"===f[0].type){d.push({role:"user",content:f[0].text});break}d.push({role:"user",content:f.map(a=>{switch(a.type){case"text":return{type:"text",text:a.text};case"file":switch(a.data.type){case"reference":throw new b.UnsupportedFunctionalityError({functionality:"file parts with provider references"});case"text":throw new b.UnsupportedFunctionalityError({functionality:"text file parts"});case"url":case"data":if("image"!==(0,c.getTopLevelMediaType)(a.mediaType))throw new b.UnsupportedFunctionalityError({functionality:"Non-image file content parts"});return{type:"image_url",image_url:{url:"url"===a.data.type?a.data.url.toString():`data:${(0,c.resolveFullMediaType)({part:a})};base64,${(0,c.convertToBase64)(a.data.data)}`}}}}})});break;case"assistant":{let a="",b="",c=[];for(let d of f)switch(d.type){case"reasoning":b+=d.text;break;case"text":a+=d.text;break;case"tool-call":c.push({id:d.toolCallId,type:"function",function:{name:d.toolName,arguments:JSON.stringify(d.input)}})}d.push({role:"assistant",content:a,...b.length>0?{reasoning:b}:null,...c.length>0?{tool_calls:c}:null});break}case"tool":for(let a of f){let b;if("tool-approval-response"===a.type)continue;let c=a.output;switch(c.type){case"text":case"error-text":b=c.value;break;case"execution-denied":b=c.reason??"Tool call execution denied.";break;case"content":case"json":case"error-json":b=JSON.stringify(c.value)}d.push({role:"tool",tool_call_id:a.toolCallId,content:b})}break;default:throw Error(`Unsupported role: ${e}`)}return d}(a),tools:w,tool_choice:x},warnings:[...s,...y]}}async doGenerate(a){let{args:d,warnings:e}=await this.getArgs(a),g=JSON.stringify(d),{responseHeaders:h,value:j,rawValue:l}=await (0,c.postJsonToApi)({url:this.config.url({path:"/chat/completions",modelId:this.modelId}),headers:(0,c.combineHeaders)(this.config.headers?.(),a.headers),body:d,failedResponseHandler:i,successfulResponseHandler:(0,c.createJsonResponseHandler)(m),abortSignal:a.abortSignal,fetch:this.config.fetch}),n=j.choices[0];if(null==n)throw new b.InvalidResponseDataError({data:l,message:"Response did not contain any choices."});let o=[],p=n.message.content;null!=p&&p.length>0&&o.push({type:"text",text:p});let q=n.message.reasoning;if(null!=q&&q.length>0&&o.push({type:"reasoning",text:q}),null!=n.message.tool_calls)for(let a of n.message.tool_calls)o.push({type:"tool-call",toolCallId:a.id||(0,c.generateId)(),toolName:a.function.name,input:a.function.arguments});return{content:o,finishReason:{unified:k(n.finish_reason),raw:n.finish_reason??void 0},usage:f(j.usage),response:{...(0,c.createLanguageModelResponseMetadata)(j),headers:h,body:l},warnings:e,request:{body:g}}}async doStream(a){let b,d,{args:e,warnings:g}=await this.getArgs(a),h={...e,stream:!0},{responseHeaders:j,value:l}=await (0,c.postJsonToApi)({url:this.config.url({path:"/chat/completions",modelId:this.modelId}),headers:(0,c.combineHeaders)(this.config.headers?.(),a.headers),body:h,failedResponseHandler:i,successfulResponseHandler:(0,c.createEventSourceResponseHandler)(n),abortSignal:a.abortSignal,fetch:this.config.fetch}),m={unified:"other",raw:void 0},o=!0,p=!1,q=!1;return{stream:l.pipeThrough(new TransformStream({start(a){b=new c.StreamingToolCallTracker(a,{generateId:c.generateId,typeValidation:"required"}),a.enqueue({type:"stream-start",warnings:g})},transform(e,f){if(a.includeRawChunks&&f.enqueue({type:"raw",rawValue:e.rawValue}),!e.success){m={unified:"error",raw:void 0},f.enqueue({type:"error",error:e.error});return}let g=e.value;if("error"in g){var h;m={unified:"error",raw:void 0},f.enqueue({type:"error",error:(h=g.error,(0,c.createProviderStreamError)({message:h.message,type:h.type,...function(a){switch(a){case"rate_limit_error":return{statusCode:429,isRetryable:!0};case"api_error":case"internal_server_error":case"server_error":return{statusCode:500,isRetryable:!0};case"overloaded_error":case"service_unavailable":return{statusCode:503,isRetryable:!0};case"timeout":case"timeout_error":return{statusCode:504,isRetryable:!0};case"authentication_error":case"invalid_api_key":return{statusCode:401,isRetryable:!1};case"permission_error":return{statusCode:403,isRetryable:!1};case"not_found_error":case"model_not_found":return{statusCode:404,isRetryable:!1};case"bad_request":case"context_length_exceeded":case"invalid_request_error":return{statusCode:400,isRetryable:!1};default:return{}}}(h.type),data:g}))});return}o&&(o=!1,f.enqueue({type:"response-metadata",...(0,c.createLanguageModelResponseMetadata)(g)})),g.x_groq?.usage!=null&&(d=g.x_groq.usage);let i=g.choices[0];if(i?.finish_reason!=null&&(m={unified:k(i.finish_reason),raw:i.finish_reason}),i?.delta==null)return;let j=i.delta;if(null!=j.reasoning&&j.reasoning.length>0&&(q||(f.enqueue({type:"reasoning-start",id:"reasoning-0"}),q=!0),f.enqueue({type:"reasoning-delta",id:"reasoning-0",delta:j.reasoning})),null!=j.content&&j.content.length>0&&(q&&(f.enqueue({type:"reasoning-end",id:"reasoning-0"}),q=!1),p||(f.enqueue({type:"text-start",id:"txt-0"}),p=!0),f.enqueue({type:"text-delta",id:"txt-0",delta:j.content})),null!=j.tool_calls&&j.tool_calls.length>0)for(let a of(q&&(f.enqueue({type:"reasoning-end",id:"reasoning-0"}),q=!1),j.tool_calls))b.processDelta(a)},flush(a){q&&a.enqueue({type:"reasoning-end",id:"reasoning-0"}),p&&a.enqueue({type:"text-end",id:"txt-0"}),b.flush(),a.enqueue({type:"finish",finishReason:m,usage:f(d)})}})),request:{body:JSON.stringify(h)},response:{headers:j}}}};let m=e.z.object({id:e.z.string().nullish(),created:e.z.number().nullish(),model:e.z.string().nullish(),choices:e.z.array(e.z.object({message:e.z.object({content:e.z.string().nullish(),reasoning:e.z.string().nullish(),tool_calls:e.z.array(e.z.object({id:e.z.string().nullish(),type:e.z.literal("function"),function:e.z.object({name:e.z.string(),arguments:e.z.string()})})).nullish()}),index:e.z.number(),finish_reason:e.z.string().nullish()})),usage:e.z.object({prompt_tokens:e.z.number().nullish(),completion_tokens:e.z.number().nullish(),total_tokens:e.z.number().nullish(),prompt_tokens_details:e.z.object({cached_tokens:e.z.number().nullish()}).nullish(),completion_tokens_details:e.z.object({reasoning_tokens:e.z.number().nullish()}).nullish()}).nullish()}),n=e.z.union([e.z.object({id:e.z.string().nullish(),created:e.z.number().nullish(),model:e.z.string().nullish(),choices:e.z.array(e.z.object({delta:e.z.object({content:e.z.string().nullish(),reasoning:e.z.string().nullish(),tool_calls:e.z.array(e.z.object({index:e.z.number(),id:e.z.string().nullish(),type:e.z.literal("function").optional(),function:e.z.object({name:e.z.string().nullish(),arguments:e.z.string().nullish()})})).nullish()}).nullish(),finish_reason:e.z.string().nullable().optional(),index:e.z.number()})),x_groq:e.z.object({usage:e.z.object({prompt_tokens:e.z.number().nullish(),completion_tokens:e.z.number().nullish(),total_tokens:e.z.number().nullish(),prompt_tokens_details:e.z.object({cached_tokens:e.z.number().nullish()}).nullish(),completion_tokens_details:e.z.object({reasoning_tokens:e.z.number().nullish()}).nullish()}).nullish()}).nullish()}),h]),o=(0,c.lazySchema)(()=>(0,c.zodSchema)(e.z.object({language:e.z.string().nullish(),prompt:e.z.string().nullish(),responseFormat:e.z.string().nullish(),temperature:e.z.number().min(0).max(1).nullish(),timestampGranularities:e.z.array(e.z.string()).nullish()})));var p=class a{get provider(){return this.config.provider}static[d.WORKFLOW_SERIALIZE](a){return(0,c.serializeModelOptions)({modelId:a.modelId,config:a.config})}static[d.WORKFLOW_DESERIALIZE](b){return new a(b.modelId,b.config)}constructor(a,b){this.modelId=a,this.config=b,this.specificationVersion="v4"}async getArgs({audio:a,mediaType:b,providerOptions:d}){let e=await (0,c.parseProviderOptions)({provider:"groq",providerOptions:d,schema:o}),f=new FormData,g=a instanceof Uint8Array?new Blob([a]):new Blob([(0,c.convertBase64ToUint8Array)(a)]);f.append("model",this.modelId);let h=(0,c.mediaTypeToExtension)(b);if(f.append("file",new File([g],"audio",{type:b}),`audio.${h}`),e){let a={language:e.language??void 0,prompt:e.prompt??void 0,response_format:e.responseFormat??void 0,temperature:e.temperature??void 0,timestamp_granularities:e.timestampGranularities??void 0};for(let b in a){let c=a[b];if(void 0!==c)if(Array.isArray(c))for(let a of c)f.append(`${b}[]`,String(a));else f.append(b,String(c))}}return{formData:f,responseFormat:e?.responseFormat,warnings:[]}}async doGenerate(a){let b=this.config._internal?.currentDate?.()??new Date,{formData:d,responseFormat:e,warnings:f}=await this.getArgs(a),g="text"===e?t:(0,c.createJsonResponseHandler)(q),{value:h,responseHeaders:j,rawValue:k}=await (0,c.postFormDataToApi)({url:this.config.url({path:"/audio/transcriptions",modelId:this.modelId}),headers:(0,c.combineHeaders)(this.config.headers?.(),a.headers),formData:d,failedResponseHandler:i,successfulResponseHandler:g,abortSignal:a.abortSignal,fetch:this.config.fetch});return{text:h.text,segments:h.segments?.map(a=>({text:a.text,startSecond:a.start,endSecond:a.end}))??h.words?.map(a=>({text:a.word,startSecond:a.start,endSecond:a.end}))??[],language:h.language??void 0,durationInSeconds:h.duration??void 0,warnings:f,response:{timestamp:b,modelId:this.modelId,headers:j,body:k}}}};let q=e.z.object({text:e.z.string(),x_groq:e.z.object({id:e.z.string()}),task:e.z.string().nullish(),language:e.z.string().nullish(),duration:e.z.number().nullish(),segments:e.z.array(e.z.object({id:e.z.number(),seek:e.z.number(),start:e.z.number(),end:e.z.number(),text:e.z.string(),tokens:e.z.array(e.z.number()),temperature:e.z.number(),avg_logprob:e.z.number(),compression_ratio:e.z.number(),no_speech_prob:e.z.number()})).nullish(),words:e.z.array(e.z.object({word:e.z.string(),start:e.z.number(),end:e.z.number()})).nullish()}),r=(0,c.createBinaryResponseHandler)(),s=new TextDecoder,t=async a=>{let{value:b,responseHeaders:c}=await r(a),d=s.decode(b);return{value:{text:d},rawValue:d,responseHeaders:c}},u={browserSearch:(0,c.createProviderExecutedToolFactory)({id:"groq.browser_search",inputSchema:(0,c.lazySchema)(()=>(0,c.zodSchema)(e.z.object({}))),outputSchema:(0,c.lazySchema)(()=>(0,c.zodSchema)(e.z.object({})))})};function v(a={}){let d=(0,c.withoutTrailingSlash)(a.baseURL)??"https://api.groq.com/openai/v1",e=()=>(0,c.withUserAgentSuffix)({Authorization:`Bearer ${(0,c.loadApiKey)({apiKey:a.apiKey,environmentVariableName:"GROQ_API_KEY",description:"Groq"})}`,...a.headers},"ai-sdk-groq/4.0.53"),f=b=>new l(b,{provider:"groq.chat",url:({path:a})=>`${d}${a}`,headers:e,fetch:a.fetch}),g=a=>{if(new.target)throw Error("The Groq model function cannot be called with the new keyword.");return f(a)},h=b=>new p(b,{provider:"groq.transcription",url:({path:a})=>`${d}${a}`,headers:e,fetch:a.fetch}),i=function(a){return g(a)};return i.specificationVersion="v4",i.languageModel=g,i.chat=f,i.embeddingModel=a=>{throw new b.NoSuchModelError({modelId:a,modelType:"embeddingModel"})},i.textEmbeddingModel=i.embeddingModel,i.imageModel=a=>{throw new b.NoSuchModelError({modelId:a,modelType:"imageModel"})},i.transcription=h,i.transcriptionModel=h,i.tools=u,i}v(),a.s(["createGroq",0,v])},899042,a=>{"use strict";var b=a.i(652685),c=a.i(527990),d=a.i(912735),e=a.i(53112);let f=e.z.object({messages:e.z.array(e.z.json()).nullish(),cached_tokens:e.z.number().nullish(),audio_tokens:e.z.number().nullish()}).catchall(e.z.json()),g=e.z.object({reasoning_tokens:e.z.number().nullish()}).catchall(e.z.json()),h=e.z.object({prompt_tokens:e.z.number(),completion_tokens:e.z.number(),total_tokens:e.z.number(),prompt_audio_seconds:e.z.number().nullish(),request_count:e.z.number().nullish(),service_tier:e.z.string().nullish(),num_cached_tokens:e.z.number().nullish(),prompt_tokens_details:f.nullish(),prompt_token_details:f.nullish(),completion_tokens_details:g.nullish()}).catchall(e.z.json());function i(a){if(null==a)return(0,c.createNullLanguageModelUsage)();let b=a.prompt_tokens,d=a.completion_tokens,e=a.num_cached_tokens??a.prompt_tokens_details?.cached_tokens??a.prompt_token_details?.cached_tokens??0;return{inputTokens:{total:b,noCache:b-e,cacheRead:e||void 0,cacheWrite:void 0},outputTokens:{total:d,text:d,reasoning:void 0},raw:a}}function j({part:a}){if("url"===a.data.type)return a.data.url.toString();if("data"===a.data.type)return`data:${(0,c.resolveFullMediaType)({part:a})};base64,${(0,c.convertToBase64)(a.data.data)}`;throw new b.UnsupportedFunctionalityError({functionality:`file part data type ${a.data.type}`})}function k(a){switch(a){case"stop":return"stop";case"length":case"model_length":return"length";case"tool_calls":return"tool-calls";case"error":return"error";default:return"other"}}let l=e.z.object({safePrompt:e.z.boolean().optional(),documentImageLimit:e.z.number().optional(),documentPageLimit:e.z.number().optional(),structuredOutputs:e.z.boolean().optional(),strictJsonSchema:e.z.boolean().optional(),parallelToolCalls:e.z.boolean().optional(),promptCacheKey:e.z.string().optional(),reasoningEffort:e.z.enum(["high","none"]).optional()}),m=e.z.object({object:e.z.literal("error"),message:e.z.string(),type:e.z.string(),param:e.z.string().nullable(),code:e.z.string().nullable()}),n=(0,c.createJsonErrorResponseHandler)({errorSchema:m,errorToMessage:a=>a.message}),o=new Set(["glm-5-2","labs-leanstral-1-5","labs-leanstral-1-5-1","magistral-medium-latest","magistral-small-latest","mistral-medium","mistral-medium-2604","mistral-medium-3","mistral-medium-3-5","mistral-medium-3.5","mistral-medium-latest","mistral-small-2603","mistral-small-latest","mistral-vibe-cli-fast","mistral-vibe-cli-latest","mistral-vibe-cli-with-tools","zai-glm-5-2"]);var p=class a{static[d.WORKFLOW_SERIALIZE](a){return(0,c.serializeModelOptions)({modelId:a.modelId,config:a.config})}static[d.WORKFLOW_DESERIALIZE](b){return new a(b.modelId,b.config)}constructor(a,b){this.specificationVersion="v4",this.supportedUrls={"application/pdf":[/^https:\/\/.*$/]},this.modelId=a,this.config=b,this.generateId=b.generateId??c.generateId}get provider(){return this.config.provider}async getArgs({prompt:a,maxOutputTokens:d,temperature:e,topP:f,topK:g,frequencyPenalty:h,presencePenalty:i,reasoning:k,stopSequences:m,responseFormat:n,seed:p,providerOptions:q,tools:r,toolChoice:s}){let t,u=[],v=await (0,c.parseProviderOptions)({provider:"mistral",providerOptions:q,schema:l})??{};null!=g&&u.push({type:"unsupported",feature:"topK"}),o.has(this.modelId)?t=v.reasoningEffort??((0,c.isCustomReasoning)(k)?"none"===k?"none":(0,c.mapReasoningToProviderEffort)({reasoning:k,effortMap:{minimal:"high",low:"high",medium:"high",high:"high",xhigh:"high"},warnings:u}):void 0):(0,c.isCustomReasoning)(k)&&u.push({type:"unsupported",feature:"reasoning",details:"This model does not support reasoning configuration."});let w=v.structuredOutputs??!0,x=v.strictJsonSchema??!1;n?.type!=="json"||w&&null!=n.schema||(a=(0,c.injectJsonInstructionIntoMessages)({messages:a,schema:n.schema}));let y={model:this.modelId,safe_prompt:v.safePrompt,max_tokens:d,temperature:e,top_p:f,...null!=h?{frequency_penalty:h}:{},...null!=i?{presence_penalty:i}:{},stop:m,random_seed:p,reasoning_effort:t,response_format:n?.type==="json"?w&&n?.schema!=null?{type:"json_schema",json_schema:{schema:n.schema,strict:x,name:n.name??"response",description:n.description}}:{type:"json_object"}:void 0,document_image_limit:v.documentImageLimit,document_page_limit:v.documentPageLimit,...void 0!==v.promptCacheKey?{prompt_cache_key:v.promptCacheKey}:{},messages:function(a){let d=[];for(let e=0;e<a.length;e++){let{role:f,content:g}=a[e],h=e===a.length-1;switch(f){case"system":d.push({role:"system",content:g});break;case"user":d.push({role:"user",content:g.map(a=>{switch(a.type){case"text":return{type:"text",text:a.text};case"file":switch(a.data.type){case"reference":throw new b.UnsupportedFunctionalityError({functionality:"file parts with provider references"});case"text":throw new b.UnsupportedFunctionalityError({functionality:"text file parts"});case"url":case"data":if("image"===(0,c.getTopLevelMediaType)(a.mediaType))return{type:"image_url",image_url:j({part:a})};if("data"===a.data.type){if("application/pdf"!==(0,c.resolveFullMediaType)({part:a}))throw new b.UnsupportedFunctionalityError({functionality:"Only images and PDF file parts are supported"})}else if("application/pdf"!==a.mediaType)throw new b.UnsupportedFunctionalityError({functionality:"Only images and PDF file parts are supported"});return{type:"document_url",document_url:j({part:a})}}}})});break;case"assistant":{let a="",b=!1,c=[],e=[];for(let d of g)switch(d.type){case"text":a+=d.text,c.push({type:"text",text:d.text});break;case"tool-call":e.push({id:d.toolCallId,type:"function",function:{name:d.toolName,arguments:JSON.stringify(d.input)}});break;case"reasoning":b=!0,c.push({type:"thinking",thinking:[{type:"text",text:d.text}],closed:!0});break;default:throw Error(`Unsupported content type in assistant message: ${d.type}`)}d.push({role:"assistant",content:b?c:a,prefix:!!h||void 0,tool_calls:e.length>0?e:void 0});break}case"tool":for(let a of g){let b;if("tool-approval-response"===a.type)continue;let c=a.output;switch(c.type){case"text":case"error-text":b=c.value;break;case"execution-denied":b=c.reason??"Tool call execution denied.";break;case"content":case"json":case"error-json":b=JSON.stringify(c.value)}d.push({role:"tool",name:a.toolName,tool_call_id:a.toolCallId,content:b})}break;default:throw Error(`Unsupported role: ${f}`)}}return d}(a)},{tools:z,toolChoice:A,toolWarnings:B}=function({tools:a,toolChoice:c}){a=a?.length?a:void 0;let d=[];if(null==a)return{tools:void 0,toolChoice:void 0,toolWarnings:d};let e=[];for(let b of a)"provider"===b.type?d.push({type:"unsupported",feature:`provider-defined tool ${b.id}`}):e.push({type:"function",function:{name:b.name,description:b.description,parameters:b.inputSchema,...null!=b.strict?{strict:b.strict}:{}}});if(null==c)return{tools:e,toolChoice:void 0,toolWarnings:d};let f=c.type;switch(f){case"auto":case"none":return{tools:e,toolChoice:f,toolWarnings:d};case"required":return{tools:e,toolChoice:"any",toolWarnings:d};case"tool":return{tools:e.filter(a=>a.function.name===c.toolName),toolChoice:"any",toolWarnings:d};default:throw new b.UnsupportedFunctionalityError({functionality:`tool choice type: ${f}`})}}({tools:r,toolChoice:s});return{args:{...y,tools:z,tool_choice:A,...null!=z&&void 0!==v.parallelToolCalls?{parallel_tool_calls:v.parallelToolCalls}:{}},warnings:[...u,...B]}}async doGenerate(a){let{args:b,warnings:d}=await this.getArgs(a),{responseHeaders:e,value:f,rawValue:g}=await (0,c.postJsonToApi)({url:`${this.config.baseURL}/chat/completions`,headers:(0,c.combineHeaders)(this.config.headers?.(),a.headers),body:b,failedResponseHandler:n,successfulResponseHandler:(0,c.createJsonResponseHandler)(t),abortSignal:a.abortSignal,fetch:this.config.fetch}),h=f.choices[0],j=[];if(null!=h.message.content&&Array.isArray(h.message.content))for(let a of h.message.content)if("thinking"===a.type){let b=q(a.thinking);b.length>0&&j.push({type:"reasoning",text:b})}else"text"===a.type&&a.text.length>0&&j.push({type:"text",text:a.text});else{let a=r(h.message.content);null!=a&&a.length>0&&j.push({type:"text",text:a})}if(null!=h.message.tool_calls)for(let a of h.message.tool_calls)j.push({type:"tool-call",toolCallId:a.id,toolName:a.function.name,input:a.function.arguments});return{content:j,finishReason:{unified:k(h.finish_reason),raw:h.finish_reason??void 0},usage:i(f.usage),request:{body:b},response:{...(0,c.createLanguageModelResponseMetadata)(f),headers:e,body:g},warnings:d}}async doStream(a){let b,d,{args:e,warnings:f}=await this.getArgs(a),g={...e,stream:!0},{responseHeaders:h,value:j}=await (0,c.postJsonToApi)({url:`${this.config.baseURL}/chat/completions`,headers:(0,c.combineHeaders)(this.config.headers?.(),a.headers),body:g,failedResponseHandler:n,successfulResponseHandler:(0,c.createEventSourceResponseHandler)(u),abortSignal:a.abortSignal,fetch:this.config.fetch}),l={unified:"other",raw:void 0},m=!0,o=!1,p=null,s=this.generateId;return{stream:j.pipeThrough(new TransformStream({start(a){b=new c.StreamingToolCallTracker(a,{generateId:s}),a.enqueue({type:"stream-start",warnings:f})},transform(e,f){if(a.includeRawChunks&&f.enqueue({type:"raw",rawValue:e.rawValue}),!e.success)return void f.enqueue({type:"error",error:e.error});let g=e.value;m&&(m=!1,f.enqueue({type:"response-metadata",...(0,c.createLanguageModelResponseMetadata)(g)})),null!=g.usage&&(d=g.usage);let h=g.choices[0],i=h.delta,j=r(i.content);if(null!=i.content&&Array.isArray(i.content)){for(let a of i.content)if("thinking"===a.type){let b=q(a.thinking);b.length>0&&(null==p&&(o&&(f.enqueue({type:"text-end",id:"0"}),o=!1),p=s(),f.enqueue({type:"reasoning-start",id:p})),f.enqueue({type:"reasoning-delta",id:p,delta:b}))}}if(null!=j&&j.length>0&&(o||(null!=p&&(f.enqueue({type:"reasoning-end",id:p}),p=null),f.enqueue({type:"text-start",id:"0"}),o=!0),f.enqueue({type:"text-delta",id:"0",delta:j})),i?.tool_calls!=null)for(let a of i.tool_calls)b.processDelta(a);null!=h.finish_reason&&(l={unified:k(h.finish_reason),raw:h.finish_reason})},flush(a){null!=p&&a.enqueue({type:"reasoning-end",id:p}),o&&a.enqueue({type:"text-end",id:"0"}),b.flush(),a.enqueue({type:"finish",finishReason:l,usage:i(d)})}})),request:{body:g},response:{headers:h}}}};function q(a){return a.filter(a=>"text"===a.type).map(a=>a.text).join("")}function r(a){if("string"==typeof a)return a;if(null==a)return;let b=[];for(let c of a){let{type:a}=c;switch(a){case"text":b.push(c.text);break;case"thinking":case"image_url":case"reference":break;default:throw Error(`Unsupported type: ${a}`)}}return b.length?b.join(""):void 0}let s=e.z.union([e.z.string(),e.z.array(e.z.discriminatedUnion("type",[e.z.object({type:e.z.literal("text"),text:e.z.string()}),e.z.object({type:e.z.literal("image_url"),image_url:e.z.union([e.z.string(),e.z.object({url:e.z.string(),detail:e.z.string().nullable()})])}),e.z.object({type:e.z.literal("reference"),reference_ids:e.z.array(e.z.union([e.z.string(),e.z.number()]))}),e.z.object({type:e.z.literal("thinking"),thinking:e.z.array(e.z.object({type:e.z.literal("text"),text:e.z.string()}))})]))]).nullish(),t=e.z.object({id:e.z.string().nullish(),created:e.z.number().nullish(),model:e.z.string().nullish(),choices:e.z.array(e.z.object({message:e.z.object({role:e.z.literal("assistant"),content:s,tool_calls:e.z.array(e.z.object({id:e.z.string(),function:e.z.object({name:e.z.string(),arguments:e.z.string()})})).nullish()}),index:e.z.number(),finish_reason:e.z.string().nullish()})),object:e.z.literal("chat.completion"),usage:h}),u=e.z.object({id:e.z.string().nullish(),created:e.z.number().nullish(),model:e.z.string().nullish(),choices:e.z.array(e.z.object({delta:e.z.object({role:e.z.enum(["assistant"]).optional(),content:s,tool_calls:e.z.array(e.z.object({index:e.z.number().nullish(),id:e.z.string().nullish(),function:e.z.object({name:e.z.string().nullish(),arguments:e.z.string().nullish()})})).nullish()}),finish_reason:e.z.string().nullish(),index:e.z.number()})),usage:h.nullish()}),v=e.z.object({metadata:e.z.record(e.z.string(),e.z.any()).optional(),outputDimension:e.z.number().int().positive().optional(),outputDtype:e.z.enum(["float","int8","uint8","binary","ubinary"]).optional()});var w=class a{get provider(){return this.config.provider}static[d.WORKFLOW_SERIALIZE](a){return(0,c.serializeModelOptions)({modelId:a.modelId,config:a.config})}static[d.WORKFLOW_DESERIALIZE](b){return new a(b.modelId,b.config)}constructor(a,b){this.specificationVersion="v4",this.maxEmbeddingsPerCall=32,this.supportsParallelCalls=!1,this.modelId=a,this.config=b}async doEmbed({values:a,abortSignal:d,headers:e,providerOptions:f}){if(a.length>this.maxEmbeddingsPerCall)throw new b.TooManyEmbeddingValuesForCallError({provider:this.provider,modelId:this.modelId,maxEmbeddingsPerCall:this.maxEmbeddingsPerCall,values:a});let g=await (0,c.parseProviderOptions)({provider:"mistral",providerOptions:f,schema:v})??{},{responseHeaders:h,value:i,rawValue:j}=await (0,c.postJsonToApi)({url:`${this.config.baseURL}/embeddings`,headers:(0,c.combineHeaders)(this.config.headers?.(),e),body:{model:this.modelId,input:a,metadata:g.metadata,output_dimension:g.outputDimension,output_dtype:g.outputDtype,encoding_format:"float"},failedResponseHandler:n,successfulResponseHandler:(0,c.createJsonResponseHandler)(x),abortSignal:d,fetch:this.config.fetch});return{warnings:[],embeddings:i.data.map(a=>a.embedding),usage:i.usage?{tokens:i.usage.prompt_tokens}:void 0,response:{headers:h,body:j}}}};let x=e.z.object({data:e.z.array(e.z.object({embedding:e.z.array(e.z.number())})),usage:e.z.object({prompt_tokens:e.z.number()}).nullish()}),y=e.z.object({refAudio:e.z.string().min(1).optional()});var z=class a{static[d.WORKFLOW_SERIALIZE](a){return(0,c.serializeModelOptions)({modelId:a.modelId,config:a.config})}static[d.WORKFLOW_DESERIALIZE](b){return new a(b.modelId,b.config)}get provider(){return this.config.provider}constructor(a,b){this.modelId=a,this.config=b,this.specificationVersion="v4"}async getArgs({text:a,voice:b,outputFormat:d="mp3",instructions:e,speed:f,language:g,providerOptions:h}){let i=[],j=await (0,c.parseProviderOptions)({provider:"mistral",providerOptions:h,schema:y}),k="mp3";["pcm","wav","mp3","flac","opus"].includes(d)?k=d:i.push({type:"unsupported",feature:"outputFormat",details:`Unsupported output format: ${d}. Using mp3 instead.`}),null!=e&&i.push({type:"unsupported",feature:"instructions",details:"Mistral speech models do not support the `instructions` option. Use a reference audio clip to guide delivery."}),null!=f&&i.push({type:"unsupported",feature:"speed",details:"Mistral speech models do not support the `speed` option. It was ignored."}),null!=g&&i.push({type:"unsupported",feature:"language",details:"Mistral speech models do not support the `language` option. Language is inferred from the input text and voice."});let l=j?.refAudio,m={model:this.modelId,input:a,voice_id:null==l?b:void 0,ref_audio:l,response_format:k,stream:!1};return{requestBody:m,requestBodyValues:{...m,ref_audio:null==l?void 0:"[redacted]"},warnings:i}}async doGenerate(a){let b=this.config._internal?.currentDate?.()??new Date,{requestBody:d,requestBodyValues:e,warnings:f}=await this.getArgs(a),{value:g,responseHeaders:h,rawValue:i}=await (0,c.postToApi)({url:`${this.config.baseURL}/audio/speech`,headers:(0,c.combineHeaders)({"Content-Type":"application/json"},this.config.headers?.(),a.headers),body:{content:JSON.stringify(d),values:e},failedResponseHandler:n,successfulResponseHandler:(0,c.createJsonResponseHandler)(A),abortSignal:a.abortSignal,fetch:this.config.fetch});return{audio:g.audio_data,warnings:f,request:{body:JSON.stringify(e)},response:{timestamp:b,modelId:this.modelId,headers:h,body:i}}}};let A=e.z.object({audio_data:e.z.string()}),B=(0,c.lazySchema)(()=>(0,c.zodSchema)(e.z.object({language:e.z.string().min(1).optional(),temperature:e.z.number().optional(),timestampGranularities:e.z.array(e.z.enum(["segment","word"])).min(1).optional(),diarize:e.z.boolean().optional(),contextBias:e.z.array(e.z.string().min(1).regex(/^[^\s,]+$/,"Context bias items must not contain commas or whitespace.")).max(100).optional()})));var C=class a{static[d.WORKFLOW_SERIALIZE](a){return(0,c.serializeModelOptions)({modelId:a.modelId,config:a.config})}static[d.WORKFLOW_DESERIALIZE](b){return new a(b.modelId,b.config)}get provider(){return this.config.provider}constructor(a,b){this.modelId=a,this.config=b,this.specificationVersion="v4"}async getArgs({audio:a,mediaType:d,providerOptions:e}){let f=await (0,c.parseProviderOptions)({provider:"mistral",providerOptions:e,schema:B});if(f?.language!=null&&null!=f.timestampGranularities)throw new b.InvalidArgumentError({argument:"providerOptions",message:"providerOptions.mistral.language cannot be combined with providerOptions.mistral.timestampGranularities"});let g=new FormData,h=a instanceof Uint8Array?new Blob([a]):new Blob([(0,c.convertBase64ToUint8Array)(a)]);return g.append("model",this.modelId),g.append("file",new File([h],"audio",{type:d}),`audio.${(0,c.mediaTypeToExtension)(d)}`),null!=f&&(D(g,"language",f.language),D(g,"temperature",f.temperature),D(g,"timestamp_granularities",f.timestampGranularities),D(g,"diarize",f.diarize),D(g,"context_bias",f.contextBias)),{formData:g,warnings:[]}}async doGenerate(a){let b=this.config._internal?.currentDate?.()??new Date,{formData:d,warnings:e}=await this.getArgs(a),{value:f,responseHeaders:g,rawValue:h}=await (0,c.postFormDataToApi)({url:`${this.config.baseURL}/audio/transcriptions`,headers:(0,c.combineHeaders)(this.config.headers?.(),a.headers),formData:d,failedResponseHandler:n,successfulResponseHandler:(0,c.createJsonResponseHandler)(E),abortSignal:a.abortSignal,fetch:this.config.fetch}),i=f.segments?.map(a=>({text:a.text,startSecond:a.start,endSecond:a.end}))??[],j={};null!=f.usage&&(j.usage={...null!=f.usage.prompt_tokens&&{promptTokens:f.usage.prompt_tokens},...null!=f.usage.completion_tokens&&{completionTokens:f.usage.completion_tokens},...null!=f.usage.total_tokens&&{totalTokens:f.usage.total_tokens},...null!=f.usage.prompt_audio_seconds&&{promptAudioSeconds:f.usage.prompt_audio_seconds},...null!=f.usage.request_count&&{requestCount:f.usage.request_count}});let k=f.segments?.filter(a=>null!=a.type||null!=a.score||null!=a.speaker_id).map(a=>({text:a.text,startSecond:a.start,endSecond:a.end,...null!=a.type&&{type:a.type},...null!=a.score&&{score:a.score},...null!=a.speaker_id&&{speakerId:a.speaker_id}}));return null!=k&&k.length>0&&(j.segments=k),{text:f.text,segments:i,language:f.language??void 0,durationInSeconds:f.usage?.prompt_audio_seconds??i.at(-1)?.endSecond??void 0,warnings:e,response:{timestamp:b,modelId:f.model,headers:g,body:h},...Object.keys(j).length>0&&{providerMetadata:{mistral:j}}}}};function D(a,b,c){if(null!=c){if(Array.isArray(c)){for(let d of c)a.append(b,d);return}a.append(b,String(c))}}let E=e.z.object({model:e.z.string(),text:e.z.string(),language:e.z.string().nullish(),segments:e.z.array(e.z.object({type:e.z.literal("transcription_segment").nullish(),text:e.z.string(),start:e.z.number(),end:e.z.number(),score:e.z.number().nullish(),speaker_id:e.z.string().nullish()})).nullish(),usage:e.z.object({prompt_tokens:e.z.number().nullish(),completion_tokens:e.z.number().nullish(),total_tokens:e.z.number().nullish(),prompt_audio_seconds:e.z.number().nullish(),request_count:e.z.number().nullish()}).nullish()});function F(a={}){let d=(0,c.withoutTrailingSlash)(a.baseURL)??"https://api.mistral.ai/v1",e=()=>(0,c.withUserAgentSuffix)({Authorization:`Bearer ${(0,c.loadApiKey)({apiKey:a.apiKey,environmentVariableName:"MISTRAL_API_KEY",description:"Mistral"})}`,...a.headers},"ai-sdk-mistral/4.0.55"),f=b=>new p(b,{provider:"mistral.chat",baseURL:d,headers:e,fetch:a.fetch,generateId:a.generateId}),g=b=>new w(b,{provider:"mistral.embedding",baseURL:d,headers:e,fetch:a.fetch}),h=b=>new z(b,{provider:"mistral.speech",baseURL:d,headers:e,fetch:a.fetch}),i=b=>new C(b,{provider:"mistral.transcription",baseURL:d,headers:e,fetch:a.fetch}),j=function(a){if(new.target)throw Error("The Mistral model function cannot be called with the new keyword.");return f(a)};return j.specificationVersion="v4",j.languageModel=f,j.chat=f,j.embedding=g,j.embeddingModel=g,j.textEmbedding=g,j.textEmbeddingModel=g,j.speech=h,j.speechModel=h,j.transcription=i,j.transcriptionModel=i,j.imageModel=a=>{throw new b.NoSuchModelError({modelId:a,modelType:"imageModel"})},j}F(),a.s(["createMistral",0,F])},106450,a=>{"use strict";let b;var c=a.i(925034),d=a.i(527990),e=a.i(794219),f=a.i(53112),g=a.i(652685);async function h(a){return(await b).getRandomValues(new Uint8Array(a))}async function i(a){let b="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._~",c=256-256%b.length,d="";for(;d.length<a;)for(let e of(await h(a-d.length)))e<c&&(d+=b[e%b.length]);return d}async function j(a){return await i(a)}async function k(a){return btoa(String.fromCharCode(...new Uint8Array(await (await b).subtle.digest("SHA-256",new TextEncoder().encode(a))))).replace(/\//g,"_").replace(/\+/g,"-").replace(/=/g,"")}async function l(a){if(a||(a=43),a<43||a>128)throw`Expected a length between 43 and 128. Received ${a}.`;let b=await j(a),c=await k(b);return{code_verifier:b,code_challenge:c}}b=globalThis.crypto?.webcrypto??globalThis.crypto??a.A(70729).then(a=>a.webcrypto);let m="2026-07-28",n="2025-11-25",o=[m,n,"2025-06-18","2025-03-26","2024-11-05"],p=f.z.optional(f.z.record(f.z.string(),f.z.unknown())),q=f.z.looseObject({name:f.z.string(),version:f.z.string(),title:f.z.optional(f.z.string())}),r=f.z.looseObject({_meta:f.z.optional(f.z.object({}).loose())}),s=r.extend({resultType:f.z.optional(f.z.string())}),t=f.z.object({method:f.z.string(),params:f.z.optional(r)}),u=f.z.object({applyDefaults:f.z.optional(f.z.boolean())}).loose(),v=f.z.looseObject({experimental:f.z.optional(f.z.object({}).loose()),logging:f.z.optional(f.z.object({}).loose()),completions:f.z.optional(f.z.object({}).loose()),prompts:f.z.optional(f.z.looseObject({listChanged:f.z.optional(f.z.boolean())})),resources:f.z.optional(f.z.looseObject({subscribe:f.z.optional(f.z.boolean()),listChanged:f.z.optional(f.z.boolean())})),tools:f.z.optional(f.z.looseObject({listChanged:f.z.optional(f.z.boolean())})),elicitation:f.z.optional(u)});f.z.object({elicitation:f.z.optional(u)}).loose();let w=s.extend({supportedVersions:f.z.array(f.z.string()),capabilities:v,instructions:f.z.optional(f.z.string()),ttlMs:f.z.optional(f.z.number()),cacheScope:f.z.optional(f.z.union([f.z.literal("public"),f.z.literal("private")]))}),x=s.extend({protocolVersion:f.z.string(),capabilities:v,serverInfo:q,instructions:f.z.optional(f.z.string())}),y=s.extend({nextCursor:f.z.optional(f.z.string())}),z=f.z.object({name:f.z.string(),title:f.z.optional(f.z.string()),description:f.z.optional(f.z.string()),inputSchema:f.z.looseObject({type:f.z.optional(f.z.unknown()),properties:f.z.optional(f.z.object({}).loose())}),outputSchema:f.z.optional(f.z.object({}).loose()),annotations:f.z.optional(f.z.object({title:f.z.optional(f.z.string()),readOnlyHint:f.z.optional(f.z.boolean()),destructiveHint:f.z.optional(f.z.boolean()),idempotentHint:f.z.optional(f.z.boolean()),openWorldHint:f.z.optional(f.z.boolean())}).loose()),_meta:p}).loose(),A=y.extend({tools:f.z.array(z)}),B=f.z.object({type:f.z.literal("text"),text:f.z.string()}).loose(),C=f.z.object({type:f.z.literal("image"),data:f.z.base64(),mimeType:f.z.string()}).loose(),D=f.z.object({uri:f.z.string(),name:f.z.string(),title:f.z.optional(f.z.string()),description:f.z.optional(f.z.string()),mimeType:f.z.optional(f.z.string()),size:f.z.optional(f.z.number())}).loose(),E=y.extend({resources:f.z.array(D)}),F=f.z.object({uri:f.z.string(),name:f.z.optional(f.z.string()),title:f.z.optional(f.z.string()),mimeType:f.z.optional(f.z.string())}).loose(),G=F.extend({text:f.z.string()}),H=F.extend({blob:f.z.base64()}),I=f.z.object({type:f.z.literal("resource"),resource:f.z.union([G,H])}).loose(),J=f.z.object({type:f.z.literal("resource_link"),uri:f.z.string(),name:f.z.string(),description:f.z.optional(f.z.string()),mimeType:f.z.optional(f.z.string())}).loose(),K=f.z.object({type:f.z.string()}).loose().refine(a=>!["text","image","resource","resource_link"].includes(a.type),{message:"Known content types must match their schema"}),L=s.extend({content:f.z.array(f.z.union([B,C,I,J,K])),structuredContent:f.z.optional(f.z.unknown()),isError:f.z.boolean().default(!1).optional()}),M=s.extend({content:f.z.never().optional(),structuredContent:f.z.json(),isError:f.z.boolean().default(!1).optional()}).transform(a=>({...a,content:[{type:"text",text:JSON.stringify(a.structuredContent)}]})).pipe(L),N=L.or(M).or(s.extend({toolResult:f.z.unknown().nonoptional()})),O=f.z.object({uriTemplate:f.z.string(),name:f.z.string(),title:f.z.optional(f.z.string()),description:f.z.optional(f.z.string()),mimeType:f.z.optional(f.z.string())}).loose(),P=s.extend({resourceTemplates:f.z.array(O)}),Q=s.extend({contents:f.z.array(f.z.union([G,H]))}),R=f.z.object({type:f.z.literal("ref/prompt"),name:f.z.string()}).loose(),S=f.z.object({type:f.z.literal("ref/resource"),uri:f.z.string()}).loose(),T=f.z.object({name:f.z.string(),value:f.z.string()}).loose();r.extend({ref:f.z.union([R,S]),argument:T,context:f.z.optional(f.z.object({arguments:f.z.record(f.z.string(),f.z.string())}).loose())});let U=s.extend({completion:f.z.object({values:f.z.array(f.z.string()).max(100),total:f.z.optional(f.z.number().int()),hasMore:f.z.optional(f.z.boolean())}).loose()}),V=f.z.object({name:f.z.string(),description:f.z.optional(f.z.string()),required:f.z.optional(f.z.boolean())}).loose(),W=f.z.object({name:f.z.string(),title:f.z.optional(f.z.string()),description:f.z.optional(f.z.string()),arguments:f.z.optional(f.z.array(V))}).loose(),X=y.extend({prompts:f.z.array(W)}),Y=f.z.object({role:f.z.union([f.z.literal("user"),f.z.literal("assistant")]),content:f.z.union([B,C,I,J])}).loose(),Z=s.extend({description:f.z.optional(f.z.string()),messages:f.z.array(Y)}),$=r.extend({message:f.z.string(),requestedSchema:f.z.unknown()}),_=t.extend({method:f.z.literal("elicitation/create"),params:$}),aa=s.extend({action:f.z.union([f.z.literal("accept"),f.z.literal("decline"),f.z.literal("cancel")]),content:f.z.optional(f.z.record(f.z.string(),f.z.unknown()))}),ab=f.z.object({jsonrpc:f.z.literal("2.0"),id:f.z.union([f.z.string(),f.z.number().int()])}).merge(t).strict(),ac=f.z.object({jsonrpc:f.z.literal("2.0"),id:f.z.union([f.z.string(),f.z.number().int()]),result:s}).strict(),ad=f.z.object({jsonrpc:f.z.literal("2.0"),id:f.z.optional(f.z.union([f.z.string(),f.z.number().int()])),error:f.z.object({code:f.z.number().int(),message:f.z.string(),data:f.z.optional(f.z.unknown())})}).strict(),ae=f.z.object({jsonrpc:f.z.literal("2.0")}).merge(f.z.object({method:f.z.string(),params:f.z.optional(r)})).strict(),af=f.z.union([ab,ae,ac,ad]);function ag(a){return af.parse(a)}async function ah(a){return ag(await (0,d.parseJSON)({text:a}))}let ai="vercel.ai.error.AI_MCPClientError",aj=Symbol.for(ai);var ak=class extends g.AISDKError{constructor({name:a="MCPClientError",message:b,cause:c,data:d,code:e,statusCode:f,url:g,responseBody:h}){super({name:a,message:b,cause:c}),this[aj]=!0,this.data=d,this.code=e,this.statusCode=f,this.url=g,this.responseBody=h}static isInstance(a){return g.AISDKError.hasMarker(a,ai)}};let al="2.0.63",am=f.z.string().url().superRefine((a,b)=>{if(!URL.canParse(a))return b.addIssue({code:f.z.ZodIssueCode.custom,message:"URL must be parseable",fatal:!0}),f.z.NEVER}).refine(a=>{let b=new URL(a);return"javascript:"!==b.protocol&&"data:"!==b.protocol&&"vbscript:"!==b.protocol},{message:"URL cannot use javascript:, data:, or vbscript: scheme"}),an=f.z.object({access_token:f.z.string(),id_token:f.z.string().optional(),token_type:f.z.string(),expires_in:f.z.number().optional(),scope:f.z.string().optional(),refresh_token:f.z.string().optional(),issuer:am.optional(),authorization_server:am.optional(),token_endpoint:am.optional()}).strip(),ao=f.z.looseObject({resource:f.z.string().url(),authorization_servers:f.z.array(am).optional(),jwks_uri:f.z.string().url().optional(),scopes_supported:f.z.array(f.z.string()).optional(),bearer_methods_supported:f.z.array(f.z.string()).optional(),resource_signing_alg_values_supported:f.z.array(f.z.string()).optional(),resource_name:f.z.string().optional(),resource_documentation:f.z.string().optional(),resource_policy_uri:f.z.string().url().optional(),resource_tos_uri:f.z.string().url().optional(),tls_client_certificate_bound_access_tokens:f.z.boolean().optional(),authorization_details_types_supported:f.z.array(f.z.string()).optional(),dpop_signing_alg_values_supported:f.z.array(f.z.string()).optional(),dpop_bound_access_tokens_required:f.z.boolean().optional()}),ap=f.z.looseObject({issuer:f.z.string(),authorization_endpoint:am,token_endpoint:am,registration_endpoint:am.optional(),authorization_response_iss_parameter_supported:f.z.boolean().optional(),client_id_metadata_document_supported:f.z.boolean().optional(),scopes_supported:f.z.array(f.z.string()).optional(),response_types_supported:f.z.array(f.z.string()),grant_types_supported:f.z.array(f.z.string()).optional(),code_challenge_methods_supported:f.z.array(f.z.string()).optional(),token_endpoint_auth_methods_supported:f.z.array(f.z.string()).optional(),token_endpoint_auth_signing_alg_values_supported:f.z.array(f.z.string()).optional()}),aq=f.z.looseObject({issuer:f.z.string(),authorization_endpoint:am,token_endpoint:am,userinfo_endpoint:am.optional(),jwks_uri:am,registration_endpoint:am.optional(),authorization_response_iss_parameter_supported:f.z.boolean().optional(),client_id_metadata_document_supported:f.z.boolean().optional(),scopes_supported:f.z.array(f.z.string()).optional(),response_types_supported:f.z.array(f.z.string()),grant_types_supported:f.z.array(f.z.string()).optional(),subject_types_supported:f.z.array(f.z.string()),id_token_signing_alg_values_supported:f.z.array(f.z.string()),claims_supported:f.z.array(f.z.string()).optional(),token_endpoint_auth_methods_supported:f.z.array(f.z.string()).optional()}).merge(ap.pick({code_challenge_methods_supported:!0})),ar=f.z.object({client_id:f.z.string(),client_secret:f.z.string().optional(),client_id_issued_at:f.z.number().optional(),client_secret_expires_at:f.z.number().optional(),issuer:am.optional(),authorization_server:am.optional(),token_endpoint:am.optional()}).strip(),as=f.z.object({redirect_uris:f.z.array(am),application_type:f.z.union([f.z.literal("native"),f.z.literal("web")]).optional(),token_endpoint_auth_method:f.z.string().optional(),grant_types:f.z.array(f.z.string()).optional(),response_types:f.z.array(f.z.string()).optional(),client_name:f.z.string().optional(),client_uri:am.optional(),logo_uri:am.optional(),scope:f.z.string().optional(),contacts:f.z.array(f.z.string()).optional(),tos_uri:am.optional(),policy_uri:f.z.string().optional(),jwks_uri:am.optional(),jwks:f.z.any().optional(),software_id:f.z.string().optional(),software_version:f.z.string().optional(),software_statement:f.z.string().optional()}).strip(),at=f.z.object({error:f.z.string(),error_description:f.z.string().optional(),error_uri:f.z.string().optional()}),au=as.merge(ar),av="vercel.ai.error.AI_MCPClientOAuthError",aw=Symbol.for(av);var ax=class extends g.AISDKError{constructor({name:a="MCPClientOAuthError",message:b,cause:c}){super({name:a,message:b,cause:c}),this[aw]=!0}static isInstance(a){return g.AISDKError.hasMarker(a,av)}},ay=class extends ax{static{this.errorCode="server_error"}},az=class extends ax{static{this.errorCode="invalid_client"}},aA=class extends ax{static{this.errorCode="invalid_grant"}},aB=class extends ax{static{this.errorCode="unauthorized_client"}};let aC={[ay.errorCode]:ay,[az.errorCode]:az,[aA.errorCode]:aA,[aB.errorCode]:aB};function aD(a){let b=a.href;return"/"===a.pathname&&b.endsWith("/")?b.slice(0,-1):b}var aE=class extends Error{constructor(a="Unauthorized"){super(a),this.name="UnauthorizedError"}};function aF(a){return new URL(a).href}function aG(a){let b=a.toLowerCase().replace(/\.+$/,"");return"localhost"===b||b.endsWith(".localhost")||"127.0.0.1"===b||"[::1]"===b||"::1"===b}function aH(a,{allowLoopback:b=!1}={}){if(!(b&&("http:"===a.protocol||"https:"===a.protocol)&&aG(a.hostname)))try{(0,d.validateDownloadUrl)(a.href)}catch(b){throw new ax({message:`OAuth endpoint URL is not allowed: ${a.href}`,cause:b})}}function aI(a){let b=new URL(a);return aG(b.hostname)?b.origin:void 0}function aJ(a,b){return{...a,issuer:b.issuer,authorization_server:b.authorizationServerUrl,token_endpoint:b.tokenEndpoint}}function aK(a,b){return{...a,issuer:b.issuer,authorization_server:b.authorizationServerUrl,token_endpoint:b.tokenEndpoint}}function aL(a){if(a?.authorization_server&&a.token_endpoint)return{issuer:a.issuer,authorizationServerUrl:aF(a.authorization_server),tokenEndpoint:aF(a.token_endpoint)}}async function aM({provider:a,clientInformation:b,tokens:c}){let d=aL(c);if(d)return d;let e=await a.authorizationServerInformation?.();return e?{issuer:e.issuer,authorizationServerUrl:aF(e.authorizationServerUrl),tokenEndpoint:aF(e.tokenEndpoint)}:aL(b)}async function aN({provider:a,clientInformation:b,authorizationServerInformation:c}){return a.saveAuthorizationServerInformation?(await a.saveAuthorizationServerInformation(c),!0):!!a.saveClientInformation&&(await a.saveClientInformation(aK(b,c)),!0)}function aO({storedAuthorizationServerInformation:a,currentAuthorizationServerInformation:b}){if(null!=a.issuer&&null!=b.issuer&&a.issuer!==b.issuer||a.authorizationServerUrl!==b.authorizationServerUrl||a.tokenEndpoint!==b.tokenEndpoint)throw new ax({message:"OAuth authorization server metadata does not match the metadata that issued the stored credentials"})}function aP(a){let b,c=a.headers.get("www-authenticate")??a.headers.get("WWW-Authenticate");if(!c)return{};let[d,e]=c.split(" ");if("bearer"!==d.toLowerCase()||!e)return{};let f=c.match(/(?:^|[,\s])resource_metadata="([^"]*)"/i),g=c.match(/(?:^|[,\s])scope="([^"]*)"/i)?.[1];try{b=f?new URL(f[1]):void 0}catch{}return{resourceMetadataUrl:b,scope:g}}async function aQ(a,b,c=fetch,e){try{return await (0,d.fetchUntrustedUrl)({url:a.href,fetch:async(a,f)=>(0,d.fetchWithValidatedEndpoint)({url:a,init:{...f,headers:new Headers(f?.headers).has("MCP-Protocol-Version")?b:void 0},fetch:c,trustedOrigin:e,redirect:"manual"}),headers:b,trustedOrigin:e,untrustedFirstHopHeaders:["mcp-protocol-version"]})}catch(d){if(d instanceof TypeError)if(b)return aQ(a,void 0,c,e);else return;throw d}}async function aR(a,b,c=fetch,d){return await aQ(a,{"MCP-Protocol-Version":b},c,d)}async function aS(a,b,c,d){var e,f;let g,h=new URL(a),i=d?.protocolVersion??"2026-07-28";d?.metadataUrl?g=new URL(d.metadataUrl):(g=new URL(function(a,b="",c={}){return b.endsWith("/")&&(b=b.slice(0,-1)),c.prependPathname?`${b}/.well-known/${a}`:`/.well-known/${a}${b}`}(b,h.pathname),d?.metadataServerUrl??h)).search=h.search;let j=await aR(g,i,c,d?.trustedOrigin);return!d?.metadataUrl&&(e=j,f=h.pathname,!e||e.status>=400&&e.status<500&&"/"!==f)&&(j=await aR(new URL(`/.well-known/${b}`,h),i,c,d?.trustedOrigin)),j}async function aT(a,b,c=fetch){let d=await aS(a,"oauth-protected-resource",c,{protocolVersion:b?.protocolVersion,metadataUrl:b?.resourceMetadataUrl,trustedOrigin:new URL(a).origin});if(!d||404===d.status)throw Error("Resource server does not implement OAuth 2.0 Protected Resource Metadata.");if(!d.ok)throw Error(`HTTP ${d.status} trying to load well-known OAuth protected resource metadata.`);return ao.parse(await d.json())}function aU(a,b){if(a.issuer!==b&&(b!==new URL(b).origin||a.issuer!==`${b}/`))throw new ax({message:`OAuth authorization server metadata issuer ${a.issuer} does not match expected issuer ${b}`})}async function aV(a,{fetchFn:b=fetch,protocolVersion:c=m,trustedOrigin:d}={}){let e={"MCP-Protocol-Version":c};for(let{url:c,type:f,expectedIssuer:g}of function(a){let b="string"==typeof a?new URL(a):a,c="/"!==b.pathname,d=b.origin,e=[];if(!c)return e.push({url:new URL("/.well-known/oauth-authorization-server",b.origin),type:"oauth",expectedIssuer:d}),e.push({url:new URL("/.well-known/openid-configuration",b.origin),type:"oidc",expectedIssuer:d}),e;let f=b.pathname;f.endsWith("/")&&(f=f.slice(0,-1));let g=`${b.origin}${f}`;return e.push({url:new URL(`/.well-known/oauth-authorization-server${f}`,b.origin),type:"oauth",expectedIssuer:g}),e.push({url:new URL("/.well-known/oauth-authorization-server",b.origin),type:"oauth",expectedIssuer:d}),e.push({url:new URL(`/.well-known/openid-configuration${f}`,b.origin),type:"oidc",expectedIssuer:g}),e.push({url:new URL(`${f}/.well-known/openid-configuration`,b.origin),type:"oidc",expectedIssuer:g}),e}(a)){let a=await aQ(c,e,b,d);if(a){if(!a.ok){if(a.status>=400&&a.status<500)continue;throw Error(`HTTP ${a.status} trying to load ${"oauth"===f?"OAuth":"OpenID provider"} metadata from ${c}`)}if("oauth"===f){let b=ap.parse(await a.json());return aU(b,g),b}{let b=aq.parse(await a.json());if(aU(b,g),!b.code_challenge_methods_supported?.includes("S256"))throw Error(`Incompatible OIDC provider at ${c}: does not support S256 code challenge method required by MCP specification`);return b}}}}async function aW(a,{metadata:b,clientInformation:c,redirectUrl:d,scope:e,state:f,resource:g}){let h,i="code",j="S256";if(b){if(h=new URL(b.authorization_endpoint),!b.response_types_supported.includes(i))throw Error(`Incompatible auth server: does not support response type ${i}`);if(!b.code_challenge_methods_supported||!b.code_challenge_methods_supported.includes(j))throw Error(`Incompatible auth server: does not support code challenge method ${j}`)}else h=new URL("/authorize",a);let k=await l(),m=k.code_verifier,n=k.code_challenge;return h.searchParams.set("response_type",i),h.searchParams.set("client_id",c.client_id),h.searchParams.set("code_challenge",n),h.searchParams.set("code_challenge_method",j),h.searchParams.set("redirect_uri",String(d)),f&&h.searchParams.set("state",f),e&&h.searchParams.set("scope",e),e?.includes("offline_access")&&h.searchParams.append("prompt","consent"),g&&h.searchParams.set("resource",aD(g)),{authorizationUrl:h,codeVerifier:m}}function aX(a,b){let c=void 0!==a.client_secret;return 0===b.length?c?"client_secret_post":"none":c&&b.includes("client_secret_basic")?"client_secret_basic":c&&b.includes("client_secret_post")?"client_secret_post":b.includes("none")?"none":c?"client_secret_post":"none"}function aY(a,b,c,d){let{client_id:e,client_secret:f}=b;switch(a){case"client_secret_basic":var g,h,i,j,k=e,l=f,m=c;if(!l)throw Error("client_secret_basic authentication requires a client_secret");let n=btoa(`${k}:${l}`);m.set("Authorization",`Basic ${n}`);return;case"client_secret_post":g=e,h=f,(i=d).set("client_id",g),h&&i.set("client_secret",h);return;case"none":j=e,d.set("client_id",j);return;default:throw Error(`Unsupported client authentication method: ${a}`)}}async function aZ(a){let b=a instanceof Response?a.status:void 0,c=a instanceof Response?await a.text():a;try{let{error:a,error_description:b,error_uri:e}=at.parse(await (0,d.parseJSON)({text:c}));return new(aC[a]||ay)({message:b||"",cause:e})}catch(a){return new ay({message:`${b?`HTTP ${b}: `:""}Invalid OAuth error response: ${a}. Raw body: ${c}`})}}async function a$(a,{metadata:b,clientInformation:c,authorizationCode:e,codeVerifier:f,redirectUri:g,resource:h,addClientAuthentication:i,fetchFn:j}){let k="authorization_code",l=b?.token_endpoint?new URL(b.token_endpoint):new URL("/token",a),m=aI(a);if(aH(l,{allowLoopback:l.origin===m}),b?.grant_types_supported&&!b.grant_types_supported.includes(k))throw Error(`Incompatible auth server: does not support grant type ${k}`);let n=new Headers({"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"}),o=new URLSearchParams({grant_type:k,code:e,code_verifier:f,redirect_uri:String(g)});i?await i(n,o,a,b):aY(aX(c,b?.token_endpoint_auth_methods_supported??[]),c,n,o),h&&o.set("resource",aD(h));let p=await (0,d.fetchWithValidatedEndpoint)({url:l,init:{method:"POST",headers:n,body:o},fetch:j,trustedOrigin:m});if(!p.ok)throw await aZ(p);return an.parse(await p.json())}async function a_(a,{metadata:b,clientInformation:c,refreshToken:e,resource:f,addClientAuthentication:g,fetchFn:h}){let i,j="refresh_token";if(b){if(i=new URL(b.token_endpoint),b.grant_types_supported&&!b.grant_types_supported.includes(j))throw Error(`Incompatible auth server: does not support grant type ${j}`)}else i=new URL("/token",a);let k=aI(a);aH(i,{allowLoopback:i.origin===k});let l=new Headers({"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"}),m=new URLSearchParams({grant_type:j,refresh_token:e});g?await g(l,m,a,b):aY(aX(c,b?.token_endpoint_auth_methods_supported??[]),c,l,m),f&&m.set("resource",aD(f));let n=await (0,d.fetchWithValidatedEndpoint)({url:i,init:{method:"POST",headers:l,body:m},fetch:h,trustedOrigin:k});if(!n.ok)throw await aZ(n);return an.parse({refresh_token:e,...await n.json()})}async function a0(a,{metadata:b,clientMetadata:c,fetchFn:e}){let f;if(b){if(!b.registration_endpoint)throw Error("Incompatible auth server: does not support dynamic client registration");f=new URL(b.registration_endpoint)}else f=new URL("/register",a);let g=aI(a);aH(f,{allowLoopback:f.origin===g});let h=c.application_type??(c.redirect_uris.every(a=>{let b=new URL(a);return("http:"===b.protocol||"https:"===b.protocol)&&aG(b.hostname)||"http:"!==b.protocol&&"https:"!==b.protocol})?"native":"web"),i=await (0,d.fetchWithValidatedEndpoint)({url:f,init:{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...c,application_type:h})},fetch:e,trustedOrigin:g});if(!i.ok)throw await aZ(i);return au.parse(await i.json())}async function a1(a,b){try{return await a3(a,b)}catch(c){if(c instanceof az||c instanceof aB){if(void 0!==b.authorizationCode||!await a.isClientInformationDynamicallyRegistered?.())throw c;return await a.invalidateCredentials?.("all"),await a3(a,b)}if(c instanceof aA)return await a.invalidateCredentials?.("tokens"),await a3(a,b);throw c}}async function a2(a,b,c){let d,e=((d=new URL("string"==typeof a?a:a.href)).hash="",d);if(b.validateResourceURL)return await b.validateResourceURL(e,c?.resource);if(c){if(!function({requestedResource:a,configuredResource:b}){let c=new URL("string"==typeof a?a:a.href),d=new URL("string"==typeof b?b:b.href);if(c.origin!==d.origin||c.pathname.length<d.pathname.length)return!1;let e=c.pathname.endsWith("/")?c.pathname:c.pathname+"/",f=d.pathname.endsWith("/")?d.pathname:d.pathname+"/";return e.startsWith(f)}({requestedResource:e,configuredResource:c.resource}))throw Error(`Protected resource ${c.resource} does not match expected ${e} (or origin)`);return new URL(c.resource)}}async function a3(a,{serverUrl:b,authorizationCode:c,callbackState:d,callbackIssuer:e,scope:f,resourceMetadataUrl:g,fetchFn:h}){var i;let j,k,l,m;!function(a,b){if(!b)return;let c=new URL(a).origin;if(b.origin!==c)throw new ax({message:`OAuth protected resource metadata URL ${b.href} must have the same origin as the MCP server URL ${c}`})}(b,g);try{(j=await aT(b,{resourceMetadataUrl:g},h)).authorization_servers&&j.authorization_servers.length>0&&(k=j.authorization_servers[0])}catch{}void 0!==c&&(l=await Promise.resolve(a.clientInformation()))&&(m=await aM({provider:a,clientInformation:l})),k||(k=m?.authorizationServerUrl??b);let n=new URL(b),o=new URL(k),p=n.origin,q=o.origin,r=q===p||aG(n.hostname)&&aG(o.hostname)?q:void 0;r||aH(new URL(k));let s=await a2(b,a,j);await a.validateAuthorizationServerURL?.(b,k);let t=await aV(k,{fetchFn:h,trustedOrigin:r}),u=(i=k,{issuer:t?.issuer??String(i),authorizationServerUrl:aF(i),tokenEndpoint:aF(t?.token_endpoint?new URL(t.token_endpoint):new URL("/token",i))}),v=a.clientMetadata,w=function({scope:a,resourceMetadata:b,clientMetadata:c}){if(a)return a;let d=b?.scopes_supported?.join(" ");return d||c.scope}({scope:f,resourceMetadata:j,clientMetadata:v});if(void 0===c&&(l=await Promise.resolve(a.clientInformation())),l?.issuer!=null){let b=m??await aM({provider:a,clientInformation:l});b&&aO({storedAuthorizationServerInformation:b,currentAuthorizationServerInformation:u})}if(!l){if(void 0!==c)throw Error("Existing OAuth client information is required when exchanging an authorization code");if(!a.saveClientInformation)throw Error("OAuth client information must be saveable for dynamic registration");l=aK(await a0(k,{metadata:t,clientMetadata:{...v,scope:w},fetchFn:h}),u),await a.saveClientInformation(l)}if(void 0!==c){if(a.storedState){let b=await a.storedState();if(void 0!==b&&b!==d)throw Error("OAuth state parameter mismatch - possible CSRF attack")}let b=m??await aM({provider:a,clientInformation:l});if(!b)throw new ax({message:"Stored OAuth authorization server metadata is required when exchanging an authorization code"});!function({callbackIssuer:a,expectedIssuer:b}){if(null!=a&&a!==b)throw new ax({message:`OAuth authorization response issuer ${a} does not match expected issuer ${b}`})}({callbackIssuer:e,expectedIssuer:b.issuer??t?.issuer??String(k)}),aO({storedAuthorizationServerInformation:b,currentAuthorizationServerInformation:u});let f=await a.codeVerifier(),g=await a$(k,{metadata:t,clientInformation:l,authorizationCode:c,codeVerifier:f,redirectUri:a.redirectUrl,resource:s,addClientAuthentication:a.addClientAuthentication,fetchFn:h});return await a.saveTokens(aJ(g,u)),"AUTHORIZED"}let x=await a.tokens();if(x?.refresh_token){let b=await aM({provider:a,clientInformation:l,tokens:x});b?aO({storedAuthorizationServerInformation:b,currentAuthorizationServerInformation:u}):await a.invalidateCredentials?.("tokens");try{if(b){let b=await a_(k,{metadata:t,clientInformation:l,refreshToken:x.refresh_token,resource:s,addClientAuthentication:a.addClientAuthentication,fetchFn:h});return await a.saveTokens(aJ(b,u)),"AUTHORIZED"}}catch(a){if(!(a instanceof ax)||a instanceof ay);else throw a}}let y=a.state?await a.state():void 0;y&&a.saveState&&await a.saveState(y);let{authorizationUrl:z,codeVerifier:A}=await aW(k,{metadata:t,clientInformation:l,state:y,redirectUrl:a.redirectUrl,scope:w,resource:s});if(!await aN({provider:a,clientInformation:l,authorizationServerInformation:u}))throw new ax({message:"OAuth authorization server metadata must be saveable before starting authorization"});return await a.saveCodeVerifier(A),await a.redirectToAuthorization(z),"REDIRECT"}var a4=class{constructor({url:a,headers:b,authProvider:c,redirect:d="error",fetch:e}){this.connected=!1,this.url=new URL(a),this.headers=b,this.authProvider=c,this.redirectMode=d,this.fetchFn=e??globalThis.fetch}setProtocolVersion(a){this.protocolVersion=a}async commonHeaders(a){let b={...this.headers,...a,"mcp-protocol-version":this.protocolVersion??"2025-11-25"};if(this.authProvider){let a=await this.authProvider.tokens();a?.access_token&&(b.Authorization=`Bearer ${a.access_token}`)}return(0,d.withUserAgentSuffix)(b,`ai-sdk/${al}`,(0,d.getRuntimeEnvironmentUserAgent)())}authorizeOnce(a,b){return this.authProvider?(this.authPromise||(this.authPromise=a1(this.authProvider,{serverUrl:this.url,resourceMetadataUrl:a,scope:b,fetchFn:this.fetchFn}).finally(()=>{this.authPromise=void 0})),this.authPromise):Promise.resolve("REDIRECT")}async accessTokenChanged(a){let b=(await this.authProvider?.tokens())?.access_token;return null!=b&&a!==`Bearer ${b}`}async start(){return new Promise((a,b)=>{if(this.connected)return a();this.abortController=new AbortController;let d=async(e=!1)=>{try{let f=await this.commonHeaders({Accept:"text/event-stream"}),g=await this.fetchFn(this.url.href,{headers:f,signal:this.abortController?.signal,redirect:this.redirectMode});if(401===g.status&&this.authProvider&&!e){let{resourceMetadataUrl:a,scope:c}=aP(g);this.resourceMetadataUrl=a;try{if(await this.authorizeOnce(this.resourceMetadataUrl,c)!=="AUTHORIZED"){let a=new aE;return this.onerror?.(a),b(a)}}catch(a){return this.onerror?.(a),b(a)}return d(!0)}if(!g.ok||!g.body){let a=`MCP SSE Transport Error: ${g.status} ${g.statusText}`;405===g.status&&(a+=". This server does not support SSE transport. Try using `http` transport instead");let c=new ak({message:a});return this.onerror?.(c),b(c)}let h=g.body.pipeThrough(new TextDecoderStream).pipeThrough(new c.EventSourceParserStream).getReader(),i=async()=>{try{for(;;){let{done:b,value:c}=await h.read();if(b){if(this.connected)throw this.connected=!1,new ak({message:"MCP SSE Transport Error: Connection closed unexpectedly"});return}let{event:d,data:e}=c;if("endpoint"===d){if(this.endpoint)continue;let b=new URL(e,this.url);if(b.origin!==this.url.origin)throw this.connected=!1,this.endpoint=void 0,this.sseConnection?.close(),this.abortController?.abort(),new ak({message:`MCP SSE Transport Error: Endpoint origin does not match connection origin: ${b.origin}`});this.endpoint=b,this.connected=!0,a()}else if(void 0===d||"message"===d)try{let a=await ah(e);this.onmessage?.(a)}catch(b){let a=new ak({message:"MCP SSE Transport Error: Failed to parse message",cause:b});this.onerror?.(a)}}}catch(a){if(a instanceof Error&&"AbortError"===a.name)return;this.onerror?.(a),b(a)}};this.sseConnection={close:()=>h.cancel()},i()}catch(a){if(a instanceof Error&&"AbortError"===a.name)return;this.onerror?.(a),b(a)}};d()})}async close(){this.connected=!1,this.endpoint=void 0,this.sseConnection?.close(),this.abortController?.abort(),this.onclose?.()}async send(a,b){if(b?.signal?.throwIfAborted(),!this.endpoint||!this.connected)throw new ak({message:"MCP SSE Transport Error: Not connected"});let c=this.endpoint,d=this.abortController?.signal,e=b?.signal==null?d:null==d?b.signal:AbortSignal.any([d,b.signal]),f=async(d=!1)=>{try{let b=await this.commonHeaders({"Content-Type":"application/json"}),g={method:"POST",headers:b,body:JSON.stringify(a),signal:e,redirect:this.redirectMode},h=await this.fetchFn(c.href,g);if(401===h.status&&this.authProvider&&!d){if(await this.accessTokenChanged(new Headers(b).get("authorization")??void 0))return f(!0);let{resourceMetadataUrl:a,scope:c}=aP(h);if(this.resourceMetadataUrl=a,await this.authorizeOnce(this.resourceMetadataUrl,c)!=="AUTHORIZED")throw new aE;return f(!0)}if(!h.ok){let a=await h.text().catch(()=>null);throw new ak({message:`MCP SSE Transport Error: POSTing to endpoint (HTTP ${h.status}): ${a}`,statusCode:h.status,url:c.href,responseBody:a??void 0})}}catch(a){if(b?.signal?.aborted)throw a;throw this.onerror?.(a),a}};await f()}};let a5=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/,a6=/^=\?base64\?.*\?=$/;function a7(a){return[...a].every(a=>{let b=a.charCodeAt(0);return 9===b||b>=32&&b<=126})&&a.trim()===a&&!a6.test(a)?a:`=?base64?${(0,d.convertUint8ArrayToBase64)(new TextEncoder().encode(a))}?=`}function a8(a){return void 0===a||"message"===a}var a9=class{constructor({url:a,headers:b,authProvider:c,redirect:d="error",initialSessionId:e,initialProtocolVersion:f,onSessionIdChange:g,onSessionExpired:h,terminateSessionOnClose:i=!0,fetch:j}){this.supportsProtocolVersionDiscovery=!0,this.supportsMcpToolParameterHeaders=!0,this.inboundReconnectAttempts=0,this.reconnectionOptions={initialReconnectionDelay:1e3,maxReconnectionDelay:3e4,reconnectionDelayGrowFactor:1.5,maxRetries:2},this.url=new URL(a),this.headers=b,this.authProvider=c,this.redirectMode=d,this.sessionId=e,this.protocolVersion=f??"2025-11-25",this.onSessionIdChange=g,this.onSessionExpired=h,this.terminateSessionOnClose=i,this.fetchFn=j??globalThis.fetch}setProtocolVersion(a){if(this.protocolVersion=a,this.abortController){if(this.isModernProtocol()){this.inboundSseConnection?.close(),this.inboundSseConnection=void 0;return}this.inboundSseConnection||this.startInboundSse()}}isModernProtocol(){return(this.protocolVersion??"2026-07-28")===m}async commonHeaders({base:a,includeSessionId:b=!0}){let c={...this.headers,...a,"mcp-protocol-version":this.protocolVersion??"2025-11-25"};if(!this.isModernProtocol()&&b&&this.sessionId&&(c["mcp-session-id"]=this.sessionId),this.authProvider){let a=await this.authProvider.tokens();a?.access_token&&(c.Authorization=`Bearer ${a.access_token}`)}return(0,d.withUserAgentSuffix)(c,`ai-sdk/${al}`,(0,d.getRuntimeEnvironmentUserAgent)())}setSessionId(a){this.sessionId!==a&&(this.sessionId=a,this.onSessionIdChange?.(a))}applySessionIdFromResponse(a){if(this.isModernProtocol())return;let b=a.headers.get("mcp-session-id");b&&this.setSessionId(b)}expireSessionId(a){this.sessionId===a&&this.setSessionId(void 0),this.onSessionExpired?.(a)}authorizeOnce(a,b){return this.authProvider?(this.authPromise||(this.authPromise=a1(this.authProvider,{serverUrl:this.url,resourceMetadataUrl:a,scope:b,fetchFn:this.fetchFn}).finally(()=>{this.authPromise=void 0})),this.authPromise):Promise.resolve("REDIRECT")}async start(){if(this.abortController)throw new ak({message:"MCP HTTP Transport Error: Transport already started. Note: client.connect() calls start() automatically."});this.abortController=new AbortController,null!=this.protocolVersion&&"2026-07-28"!==this.protocolVersion&&this.startInboundSse()}async close(a){this.inboundSseConnection?.close(),this.abortController?.abort();try{if(!this.isModernProtocol()&&this.sessionId&&this.terminateSessionOnClose&&this.abortController){a?.signal?.throwIfAborted();let b=await this.commonHeaders({base:{}});a?.signal?.throwIfAborted(),await this.fetchFn(this.url.href,{method:"DELETE",headers:b,signal:a?.signal,redirect:this.redirectMode}).catch(()=>void 0)}}catch{}this.onclose?.()}async send(a,b){b?.signal?.throwIfAborted();let d=this.abortController?.signal,e=b?.signal==null?d:null==d?b.signal:AbortSignal.any([d,b.signal]),f=async(d=!1)=>{try{let g="method"in a&&"initialize"===a.method,h=g?void 0:this.sessionId,i={method:"POST",headers:await this.commonHeaders({base:{"Content-Type":"application/json",Accept:"application/json, text/event-stream",...this.isModernProtocol()?b?.headers:{},...this.isModernProtocol()&&"method"in a&&"id"in a?this.getStandardRequestHeaders(a):{}},includeSessionId:!g}),body:JSON.stringify(a),signal:e,redirect:this.redirectMode},j=await this.fetchFn(this.url.href,i);if(this.applySessionIdFromResponse(j),401===j.status&&this.authProvider&&!d){let{resourceMetadataUrl:a,scope:b}=aP(j);this.resourceMetadataUrl=a;try{if(await this.authorizeOnce(this.resourceMetadataUrl,b)!=="AUTHORIZED")throw new aE}catch(a){throw this.onerror?.(a),a}return f(!0)}if(202===j.status){this.isModernProtocol()||this.inboundSseConnection||this.startInboundSse();return}if(!j.ok){let b=await j.text().catch(()=>null);if("id"in a&&null!=b){let c=await ah(b).catch(()=>void 0);if(null!=c&&"error"in c)return void this.onmessage?.(null==c.id?{...c,id:a.id}:c)}let c=`MCP HTTP Transport Error: POSTing to endpoint (HTTP ${j.status}): ${b}`;404===j.status&&(!this.isModernProtocol()&&h?(this.expireSessionId(h),c+=". The MCP session expired. Create a new client without `initialSessionId` to start a fresh session"):this.isModernProtocol()||(c+=". This server does not support HTTP transport. Try using `sse` transport instead"));let d=new ak({message:c,statusCode:j.status,url:this.url.href,responseBody:b??void 0});throw this.onerror?.(d),d}if(!("id"in a))return;let k=j.headers.get("content-type")||"";if(k.includes("application/json")){let a=await j.json();for(let b of Array.isArray(a)?a.map(a=>ag(a)):[ag(a)])this.onmessage?.(b);return}if(k.includes("text/event-stream")){if(!j.body){let a=new ak({message:"MCP HTTP Transport Error: text/event-stream response without body",statusCode:j.status,url:this.url.href});throw this.onerror?.(a),a}let a=j.body.pipeThrough(new TextDecoderStream).pipeThrough(new c.EventSourceParserStream).getReader();(async()=>{try{for(;;){let{done:b,value:c}=await a.read();if(b)return;let{event:d,data:e}=c;if(a8(d))try{let a=await ah(e);this.onmessage?.(a)}catch(b){let a=new ak({message:"MCP HTTP Transport Error: Failed to parse message",cause:b});this.onerror?.(a)}}}catch(a){if(b?.signal?.aborted||a instanceof Error&&"AbortError"===a.name)return;this.onerror?.(a)}})().catch(a=>{b?.signal?.aborted||a instanceof Error&&"AbortError"===a.name||this.onerror?.(a)});return}let l=new ak({message:`MCP HTTP Transport Error: Unexpected content type: ${k}`,statusCode:j.status,url:this.url.href});throw this.onerror?.(l),l}catch(a){if(b?.signal?.aborted)throw a;throw this.onerror?.(a),a}};await f()}getStandardRequestHeaders(a){let b={"Mcp-Method":a.method},c=a.params,d="resources/read"===a.method?c?.uri:"tools/call"===a.method||"prompts/get"===a.method?c?.name:void 0;return"string"==typeof d&&(b["Mcp-Name"]=a7(d)),b}getNextReconnectionDelay(a){let{initialReconnectionDelay:b,reconnectionDelayGrowFactor:c,maxReconnectionDelay:d}=this.reconnectionOptions;return Math.min(b*Math.pow(c,a),d)}scheduleInboundSseReconnection(){let{maxRetries:a}=this.reconnectionOptions;if(a>0&&this.inboundReconnectAttempts>=a)return void this.onerror?.(new ak({message:`MCP HTTP Transport Error: Maximum reconnection attempts (${a}) exceeded.`}));let b=this.getNextReconnectionDelay(this.inboundReconnectAttempts);this.inboundReconnectAttempts+=1,setTimeout(()=>{this.abortController?.signal.aborted||this.startInboundSse(!1,this.lastInboundEventId)},b)}startInboundSse(a=!1,b){this.isModernProtocol()||this.openInboundSse(a,b).catch(a=>{a instanceof Error&&"AbortError"===a.name||this.onerror?.(a)})}async openInboundSse(a=!1,b){if(!this.isModernProtocol())try{let d=this.sessionId,e=await this.commonHeaders({base:{Accept:"text/event-stream"}});b&&(e["last-event-id"]=b);let f=await this.fetchFn(this.url.href,{method:"GET",headers:e,signal:this.abortController?.signal,redirect:this.redirectMode});if(this.applySessionIdFromResponse(f),401===f.status&&this.authProvider&&!a){let{resourceMetadataUrl:a,scope:c}=aP(f);this.resourceMetadataUrl=a;try{if(await this.authorizeOnce(this.resourceMetadataUrl,c)!=="AUTHORIZED"){let a=new aE;this.onerror?.(a);return}}catch(a){this.onerror?.(a);return}return this.openInboundSse(!0,b)}if(405===f.status)return;if(!f.ok||!f.body){404===f.status&&d&&this.expireSessionId(d);let a=new ak({message:`MCP HTTP Transport Error: GET SSE failed: ${f.status} ${f.statusText}`,statusCode:f.status,url:this.url.href});this.onerror?.(a);return}let g=f.body.pipeThrough(new TextDecoderStream).pipeThrough(new c.EventSourceParserStream).getReader(),h=async()=>{try{for(;;){let{done:a,value:b}=await g.read();if(a)return;let{event:c,data:d,id:e}=b;if(e&&(this.lastInboundEventId=e),a8(c))try{let a=await ah(d);this.onmessage?.(a)}catch(b){let a=new ak({message:"MCP HTTP Transport Error: Failed to parse message",cause:b});this.onerror?.(a)}}}catch(a){if(a instanceof Error&&"AbortError"===a.name)return;this.onerror?.(a),this.abortController?.signal.aborted||this.scheduleInboundSseReconnection()}};this.inboundSseConnection={close:()=>{g.cancel().catch(a=>{a instanceof Error&&"AbortError"===a.name||this.onerror?.(a)})}},this.inboundReconnectAttempts=0,h().catch(a=>{a instanceof Error&&"AbortError"===a.name||(this.onerror?.(a),this.abortController?.signal.aborted||this.scheduleInboundSseReconnection())})}catch(a){if(a instanceof Error&&"AbortError"===a.name)return;this.onerror?.(a),this.abortController?.signal.aborted||this.scheduleInboundSseReconnection()}}};let ba=e.array(e.unknown()).transform(a=>a.filter(a=>"string"==typeof a)).optional().catch(void 0),bb=e.looseObject({connectDomains:ba,resourceDomains:ba,frameDomains:ba});e.looseObject({prefersBorder:e.boolean().optional().catch(void 0),csp:bb.optional().catch(void 0),permissions:e.record(e.string(),e.unknown()).optional().catch(void 0)});let bc=[-32020,-32021,-32022],bd=["ConnectionRefused","ConnectionClosed","FailedToOpenSocket","ECONNRESET","ECONNREFUSED","ETIMEDOUT","EPIPE"];function be(a){let b=function(a){if(null!=a&&"object"==typeof a&&"statusCode"in a&&"number"==typeof a.statusCode)return a.statusCode}(a);if(null!=b)return 408===b||409===b||429===b||b>=500;if(ak.isInstance(a)&&null!=a.code)return!1;let c=function(a){if(null!=a&&"object"==typeof a&&"code"in a&&"string"==typeof a.code)return a.code}(a);return null!=c&&bd.includes(c)}function bf({timeout:a,maxTotalTimeout:b}){return null==a?b:null==b?a:Math.min(a,b)}function bg(a,b){return null==b?a:new Promise((c,d)=>{let e=()=>{b.removeEventListener("abort",f)},f=()=>{e(),d(b.reason)};b.aborted?f():(b.addEventListener("abort",f,{once:!0}),a.then(a=>{e(),c(a)}).catch(a=>{e(),d(a)}))})}function bh({output:a}){return"content"in a&&Array.isArray(a.content)?{type:"content",value:a.content.map(a=>"text"===a.type&&"text"in a?{type:"text",text:a.text}:"image"===a.type&&"data"in a&&"mimeType"in a?{type:"file",mediaType:a.mimeType,data:{type:"data",data:a.data}}:{type:"text",text:JSON.stringify(a)})}:{type:"json",value:a}}async function bi(a){let b=new bj(a);return await b.init(),b}var bj=class{constructor({transport:a,name:b,clientName:c=b??"ai-sdk-mcp-client",version:d="1.0.0",onUncaughtError:e,maxRetries:f,capabilities:g,initialInitializeResult:h,initializationOptions:i,protocolVersionDiscovery:j=!0}){this.requestMessageId=0,this.responseHandlers=new Map,this.serverCapabilities={},this._serverInfo={name:"",version:""},this._initializeResult={protocolVersion:n,capabilities:{},serverInfo:this._serverInfo},this.protocolEra="legacy",this.protocolVersion=n,this.toolHeaderBindings=new Map,this.isClosed=!0,this.onUncaughtError=e,this.maxRetries=function(a){if(null==a)return 0;if(!Number.isInteger(a))throw new ak({message:"maxRetries must be an integer"});if(a<0)throw new ak({message:"maxRetries must be >= 0"});return a}(f),this.clientCapabilities=g??{},this.initialInitializeResult=h,this.initializationOptions=i,this.protocolVersionDiscovery=j,function(a){return"start"in a&&"function"==typeof a.start&&"send"in a&&"function"==typeof a.send&&"close"in a&&"function"==typeof a.close}(a)?this.transport=a:this.transport=function(a){switch(a.type){case"sse":return new a4(a);case"http":return new a9({...a,initialProtocolVersion:a.initialProtocolVersion??"2026-07-28"});default:throw new ak({message:"Unsupported or invalid transport configuration. If you are using a custom transport, make sure it implements the MCPTransport interface."})}}(a),this.transport.onclose=()=>this.onClose(),this.transport.onerror=a=>this.onError(a),this.transport.onmessage=a=>{"method"in a?"id"in a?this.onRequestMessage(a):this.onError(new ak({message:"Unsupported message type"})):this.onResponse(a)},this.clientInfo={name:c,version:d}}get serverInfo(){return this._serverInfo}get initializeResult(){return this._initializeResult}get instructions(){return this._serverInstructions}async init(){let a,b,c=this.initializationOptions?.signal,d=this.initializationOptions?bf(this.initializationOptions):void 0,e=null==d?void 0:new AbortController,f=null==c?e?.signal:null==e?c:AbortSignal.any([c,e.signal]);null!=d&&(a=setTimeout(()=>{b=new ak({message:`MCP client initialization timed out after ${d}ms`}),e?.abort(b)},d));try{if(this.isClosed=!1,f?.throwIfAborted(),await bg(this.transport.start(),f),this.initialInitializeResult){let a=x.parse(this.initialInitializeResult);return this.applyInitializeResult(a),this}if(this.protocolVersionDiscovery&&this.transport.supportsProtocolVersionDiscovery&&await this.tryProtocolDiscovery(f))return this;this.protocolEra="legacy",this.protocolVersion=n,this.setTransportProtocolVersion(this.protocolVersion);let a=await this.request({request:{method:"initialize",params:{protocolVersion:n,capabilities:this.clientCapabilities,clientInfo:this.clientInfo}},resultSchema:x,options:{signal:f}});if(void 0===a)throw new ak({message:"Server sent invalid initialize result"});return this.applyInitializeResult(a),await this.notification({method:"notifications/initialized"},{signal:f}),this}catch(a){try{await bg(this.transport.close({signal:f}),f)}catch{}if(this.onClose(),null!=b)throw b;if(c?.aborted)throw new ak({message:"MCP client initialization was aborted",cause:c.reason});throw a}finally{null!=a&&clearTimeout(a)}}async tryProtocolDiscovery(a){this.protocolEra="modern",this.protocolVersion=m,this.setTransportProtocolVersion(this.protocolVersion);try{let b=await this.request({request:{method:"server/discover"},resultSchema:w,options:{signal:a,timeout:1e3}});return this.applyDiscoverResult(b),!0}catch(a){if(ak.isInstance(a)&&null!=a.code&&bc.includes(a.code))throw a;return!1}}applyDiscoverResult(a){if(!a.supportedVersions.includes(this.protocolVersion))throw new ak({message:`Server does not support the requested protocol version: ${this.protocolVersion}`});let b=a._meta?.["io.modelcontextprotocol/serverInfo"];null!=b&&"object"==typeof b&&"name"in b&&"string"==typeof b.name&&"version"in b&&"string"==typeof b.version&&(this._serverInfo=b),this.serverCapabilities=a.capabilities,this._serverInstructions=a.instructions,this._initializeResult={protocolVersion:this.protocolVersion,capabilities:a.capabilities,serverInfo:this._serverInfo,instructions:a.instructions}}setTransportProtocolVersion(a){this.transport.setProtocolVersion?this.transport.setProtocolVersion(a):this.transport.protocolVersion=a}applyInitializeResult(a){if(!o.includes(a.protocolVersion))throw new ak({message:`Server's protocol version is not supported: ${a.protocolVersion}`});this.serverCapabilities=a.capabilities,this.protocolEra="legacy",this.protocolVersion=a.protocolVersion,this._serverInfo=a.serverInfo,this._initializeResult=a,this.setTransportProtocolVersion(a.protocolVersion),this._serverInstructions=a.instructions}async close(){this.isClosed||(await this.transport?.close(),this.onClose())}send(a,b){return null==b?this.transport.send(a):this.transport.send(a,b)}assertCapability(a){switch(a){case"initialize":case"server/discover":break;case"completion/complete":if(!this.serverCapabilities.completions)throw new ak({message:"Server does not support completions"});break;case"tools/list":case"tools/call":if(!this.serverCapabilities.tools)throw new ak({message:"Server does not support tools"});break;case"resources/list":case"resources/read":case"resources/templates/list":if(!this.serverCapabilities.resources)throw new ak({message:"Server does not support resources"});break;case"prompts/list":case"prompts/get":if(!this.serverCapabilities.prompts)throw new ak({message:"Server does not support prompts"});break;default:throw new ak({message:`Unsupported method: ${a}`})}}async request({request:a,resultSchema:b,options:c}){return new Promise((d,e)=>{let f;if(this.isClosed)return e(new ak({message:"Attempted to send a request from a closed client"}));this.assertCapability(a.method);let g=c?.signal;g?.throwIfAborted();let h=null==c?void 0:bf(c),i=null==h?void 0:new AbortController,j=null==g?i?.signal:null==i?g:AbortSignal.any([g,i.signal]),k=this.requestMessageId++,l="modern"===this.protocolEra?{...a,params:{...a.params,_meta:{...a.params?._meta,"io.modelcontextprotocol/protocolVersion":this.protocolVersion,"io.modelcontextprotocol/clientCapabilities":this.clientCapabilities,"io.modelcontextprotocol/clientInfo":this.clientInfo}}}:a,m={...l,jsonrpc:"2.0",id:k},n=this.getToolRequestHeaders(l),o=()=>{e(new ak({message:"Request was aborted",cause:g?.reason}))},p=()=>{this.responseHandlers.delete(k),g?.removeEventListener("abort",r),null!=f&&clearTimeout(f)},q=a=>{p(),e(a)},r=()=>{p(),o()};this.responseHandlers.set(k,a=>{if(g?.aborted)return p(),o();if(a instanceof Error)return q(a);try{if("modern"===this.protocolEra&&null==a.result.resultType)throw new ak({message:"Modern MCP result is missing resultType"});if("input_required"===a.result.resultType)throw new ak({message:"Server requested additional input, but multi round-trip requests are not supported yet"});let c=b.parse(a.result);p(),d(c)}catch(a){q(ak.isInstance(a)?a:new ak({message:"Failed to parse server response",cause:a}))}}),g?.addEventListener("abort",r,{once:!0}),null!=h&&(f=setTimeout(()=>{let a=new ak({message:`Request timed out after ${h}ms`});i?.abort(a),q(a)},h));let s={...null==j?{}:{signal:j},...null==n?{}:{headers:n}};(0===Object.keys(s).length?this.send(m):this.send(m,s)).catch(a=>{q(a)})})}async listTools({params:a,options:b}={}){let c=await this.request({request:{method:"tools/list",params:a},resultSchema:A,options:b});return this.prepareToolDefinitions(c,a?.cursor==null)}prepareToolDefinitions(a,b=!1){if("modern"!==this.protocolEra||!this.transport.supportsMcpToolParameterHeaders)return a;b&&this.toolHeaderBindings.clear();let c=a.tools.filter(a=>{let b=function(a){let b;if(!(0,d.isRecord)(a))return{success:!1,error:"inputSchema must be a JSON Schema object"};let c=[],e=new Set,f=(a,g,h)=>{if(null==b&&(0,d.isRecord)(a)){if("x-mcp-header"in a){if(!h||0===g.length){b="x-mcp-header is not on a statically reachable property";return}let d=a["x-mcp-header"];if("string"!=typeof d||!a5.test(d)){b="x-mcp-header must be a non-empty HTTP token";return}let f=d.toLowerCase();if(e.has(f)){b=`x-mcp-header value "${d}" is not unique`;return}let i=a.type;if("boolean"!==i&&"integer"!==i&&"string"!==i){b="x-mcp-header can only annotate boolean, integer, or string properties";return}e.add(f),c.push({headerName:d,path:g,valueType:i})}for(let[b,c]of Object.entries(a))if("x-mcp-header"!==b)if("properties"===b&&(0,d.isRecord)(c))for(let[a,b]of Object.entries(c))f(b,[...g,a],h);else f(c,g,!1)}};return f(a,[],!0),null==b?{success:!0,bindings:c}:{success:!1,error:b}}(a.inputSchema);return b.success?(this.toolHeaderBindings.set(a.name,b.bindings),!0):(this.onError(new ak({message:`Ignoring MCP tool "${a.name}": ${b.error}`})),!1)});return{...a,tools:c}}getToolRequestHeaders(a){if("modern"!==this.protocolEra||"tools/call"!==a.method||"string"!=typeof a.params?.name)return;let b=this.toolHeaderBindings.get(a.params.name);if(null==b||0===b.length)return;let c=a.params.arguments;if(!(null==c||"object"!=typeof c||Array.isArray(c)))try{return function({bindings:a,args:b}){let c={};for(let e of a){let a=function(a,b){let c=a;for(let a of b){if(!(0,d.isRecord)(c))return;c=c[a]}return c}(b,e.path);if(null!=a){if("string"===e.valueType&&"string"!=typeof a||"boolean"===e.valueType&&"boolean"!=typeof a||"integer"===e.valueType&&!Number.isSafeInteger(a))throw TypeError(`Tool argument "${e.path.join(".")}" does not match its x-mcp-header type`);c[`Mcp-Param-${e.headerName}`]=a7(String(a))}}return c}({bindings:b,args:c})}catch(b){throw new ak({message:`Failed to create MCP headers for tool "${a.params.name}"`,cause:b})}}async callToolWithRetry({options:a,execute:b}){return 0===this.maxRetries?b():(0,d.retryWithExponentialBackoff)({maxRetries:this.maxRetries,abortSignal:a?.signal,shouldRetry:be,createRetryError:({message:a,errors:b})=>new ak({message:a,cause:b[b.length-1]})})(b)}async callTool({name:a,arguments:b={},options:c}){return this.callToolWithRetry({options:c,execute:()=>this.request({request:{method:"tools/call",params:{name:a,arguments:b}},resultSchema:N,options:c})})}async listResourcesInternal({params:a,options:b}={}){return this.request({request:{method:"resources/list",params:a},resultSchema:E,options:b})}async readResourceInternal({uri:a,options:b}){return this.request({request:{method:"resources/read",params:{uri:a}},resultSchema:Q,options:b})}async listResourceTemplatesInternal({options:a}={}){return this.request({request:{method:"resources/templates/list"},resultSchema:P,options:a})}async listPromptsInternal({params:a,options:b}={}){return this.request({request:{method:"prompts/list",params:a},resultSchema:X,options:b})}async getPromptInternal({name:a,args:b,options:c}){return this.request({request:{method:"prompts/get",params:{name:a,arguments:b}},resultSchema:Z,options:c})}async completeInternal({options:a,...b}){return this.request({request:{method:"completion/complete",params:b},resultSchema:U,options:a})}async notification(a,b){let c={...a,jsonrpc:"2.0"};await bg(this.send(c,b?.signal==null?void 0:{signal:b.signal}),b?.signal)}async tools({schemas:a="automatic"}={}){let b=await this.listTools(),c=[...b.tools];for(;null!=b.nextCursor;)b=await this.listTools({params:{cursor:b.nextCursor}}),c.push(...b.tools);return this.toolsFromDefinitions({...b,tools:c},{schemas:a})}toolsFromDefinitions(a,{schemas:b="automatic"}={}){a=this.prepareToolDefinitions(a);let c=Object.create(null);for(let{name:e,title:f,description:h,inputSchema:i,annotations:j,_meta:k}of a.tools){let a=f??j?.title;if("automatic"!==b&&!Object.prototype.hasOwnProperty.call(b,e))continue;let l=this,m="automatic"!==b?b[e]?.outputSchema:void 0,n=function(a){var b,c;let d,e=(b=a._meta,d=b?.ui,(0,g.isJSONObject)(d)?d:void 0),f=e?.resourceUri??a._meta?.["ui/resourceUri"],h=Array.isArray(c=e?.visibility)?c.filter(a=>"model"===a||"app"===a):void 0;if(void 0!==f){if("string"!=typeof f||!f.startsWith("ui://"))throw Error(`Invalid MCP App resource URI: ${JSON.stringify(f)}`)}else if(null==e)return;return{...e,...null!=f?{resourceUri:f}:{},...null!=h?{visibility:h}:{}}}({_meta:k}),o={clientName:this.clientInfo.name,toolName:e,...null!=a?{title:a}:{},...null!=j?{annotations:{...null!=j.title?{title:j.title}:{},...null!=j.readOnlyHint?{readOnlyHint:j.readOnlyHint}:{},...null!=j.destructiveHint?{destructiveHint:j.destructiveHint}:{},...null!=j.idempotentHint?{idempotentHint:j.idempotentHint}:{},...null!=j.openWorldHint?{openWorldHint:j.openWorldHint}:{}}}:{},...n?.resourceUri!=null?{app:{...n,mimeType:"text/html;profile=mcp-app"}}:{}},p=async(a,b)=>{b?.abortSignal?.throwIfAborted();let c=await l.callTool({name:e,arguments:a,options:{signal:b?.abortSignal}});return c.isError?c:null!=m?l.extractStructuredContent(c,m,e):c};c[e]={..."automatic"===b?(0,d.dynamicTool)({description:h,title:a,metadata:o,inputSchema:(0,d.jsonSchema)({...i,properties:i.properties??{},additionalProperties:!1}),execute:p,toModelOutput:bh}):(0,d.tool)({description:h,title:a,metadata:o,inputSchema:b[e].inputSchema,...null!=m?{outputSchema:m}:{},execute:p,toModelOutput:bh}),_meta:k}}return c}async extractStructuredContent(a,b,c){if("structuredContent"in a&&null!=a.structuredContent){let e=await (0,d.safeValidateTypes)({value:a.structuredContent,schema:(0,d.asSchema)(b)});if(!e.success)throw new ak({message:`Tool "${c}" returned structuredContent that does not match the expected outputSchema`,cause:e.error});return e.value}if("content"in a&&Array.isArray(a.content)){let e=a.content.find(a=>"text"===a.type);if(e&&"text"in e){let a=await (0,d.safeParseJSON)({text:e.text,schema:b});if(!a.success)throw new ak({message:`Tool "${c}" returned content that does not match the expected outputSchema`,cause:a.error});return a.value}}throw new ak({message:`Tool "${c}" did not return structuredContent or parseable text content`})}listResources({params:a,options:b}={}){return this.listResourcesInternal({params:a,options:b})}readResource({uri:a,options:b}){return this.readResourceInternal({uri:a,options:b})}listResourceTemplates({options:a}={}){return this.listResourceTemplatesInternal({options:a})}experimental_listPrompts({params:a,options:b}={}){return this.listPromptsInternal({params:a,options:b})}experimental_getPrompt({name:a,arguments:b,options:c}){return this.getPromptInternal({name:a,args:b,options:c})}complete(a){return this.completeInternal(a)}onElicitationRequest(a,b){if(a!==_)throw new ak({message:"Unsupported request schema. Only ElicitationRequestSchema is supported."});this.elicitationRequestHandler=b}async onRequestMessage(a){try{if("ping"===a.method)return void await this.transport.send({jsonrpc:"2.0",id:a.id,result:{}});if("elicitation/create"!==a.method)return void await this.transport.send({jsonrpc:"2.0",id:a.id,error:{code:-32601,message:`Unsupported request method: ${a.method}`}});if(!this.elicitationRequestHandler)return void await this.transport.send({jsonrpc:"2.0",id:a.id,error:{code:-32601,message:"No elicitation handler registered on client"}});let b=_.safeParse({method:a.method,params:a.params});if(!b.success)return void await this.transport.send({jsonrpc:"2.0",id:a.id,error:{code:-32602,message:`Invalid elicitation request: ${b.error.message}`,data:b.error.issues}});try{let c=await this.elicitationRequestHandler(b.data),d=aa.parse(c);await this.transport.send({jsonrpc:"2.0",id:a.id,result:d})}catch(b){await this.transport.send({jsonrpc:"2.0",id:a.id,error:{code:-32603,message:b instanceof Error?b.message:"Failed to handle elicitation request"}}),this.onError(b)}}catch(a){this.onError(a)}}onClose(){if(this.isClosed)return;this.isClosed=!0;let a=new ak({message:"Connection closed"});for(let b of this.responseHandlers.values())b(a);this.responseHandlers.clear()}onError(a){this.onUncaughtError&&this.onUncaughtError(a)}onResponse(a){if(null==a.id)return void this.onError(new ak({message:`Protocol error: Received a response without a message ID: ${JSON.stringify(a)}`}));let b=Number(a.id),c=this.responseHandlers.get(b);if(void 0===c)throw new ak({message:`Protocol error: Received a response for an unknown message ID: ${JSON.stringify(a)}`});this.responseHandlers.delete(b),c("result"in a?a:new ak({message:a.error.message,code:a.error.code,data:a.error.data,cause:a.error}))}};new TextEncoder,a.s(["UnauthorizedError",0,aE,"auth",0,a1,"createMCPClient",0,bi],106450)},434451,a=>{"use strict";var b=a.i(404989),c=a.i(912735),d=a.i(527990),e=a.i(53112);let f=(0,d.lazySchema)(()=>(0,d.zodSchema)(e.z.object({error:e.z.object({message:e.z.string()})}))),g=(0,d.lazySchema)(()=>(0,d.zodSchema)(e.z.object({id:e.z.string().nullish(),model:e.z.string().nullish(),results:e.z.array(e.z.object({index:e.z.number(),relevance_score:e.z.number()})),usage:e.z.object({prompt_tokens:e.z.number(),completion_tokens:e.z.number(),total_tokens:e.z.number()})}))),h=(0,d.lazySchema)(()=>(0,d.zodSchema)(e.z.object({rankFields:e.z.array(e.z.string()).optional()})));var i=class{constructor(a,b){this.specificationVersion="v4",this.modelId=a,this.config=b}get provider(){return this.config.provider}async doRerank({documents:a,headers:b,query:c,topN:e,abortSignal:i,providerOptions:j}){let k=await (0,d.parseProviderOptions)({provider:"togetherai",providerOptions:j,schema:h}),{responseHeaders:l,value:m,rawValue:n}=await (0,d.postJsonToApi)({url:`${this.config.baseURL}/rerank`,headers:(0,d.combineHeaders)(this.config.headers(),b),body:{model:this.modelId,documents:a.values,query:c,top_n:e,rank_fields:k?.rankFields,return_documents:!1},failedResponseHandler:(0,d.createJsonErrorResponseHandler)({errorSchema:f,errorToMessage:a=>a.error.message}),successfulResponseHandler:(0,d.createJsonResponseHandler)(g),abortSignal:i,fetch:this.config.fetch});return{ranking:m.results.map(a=>({index:a.index,relevanceScore:a.relevance_score})),response:{id:m.id??void 0,modelId:m.model??void 0,headers:l,body:n}}}};let j=(0,d.lazySchema)(()=>(0,d.zodSchema)(e.z.looseObject({steps:e.z.number().nullish(),guidance:e.z.number().nullish(),negative_prompt:e.z.string().nullish(),disable_safety_checker:e.z.boolean().nullish()}))),k=new Set(["google/gemini-3-pro-image"]);var l=class a{get supportsFileInputs(){return!!["black-forest-labs/FLUX.1-kontext-pro","black-forest-labs/FLUX.1-kontext-max","black-forest-labs/FLUX.1-kontext-dev","black-forest-labs/FLUX.1-canny","black-forest-labs/FLUX.1-depth","black-forest-labs/FLUX.1-redux","black-forest-labs/FLUX.2-pro","black-forest-labs/FLUX.2-flex"].includes(this.modelId)||!["stabilityai/stable-diffusion-xl-base-1.0","black-forest-labs/FLUX.1-dev","black-forest-labs/FLUX.1-dev-lora","black-forest-labs/FLUX.1-schnell","black-forest-labs/FLUX.1.1-pro","black-forest-labs/FLUX.1-pro","black-forest-labs/FLUX.1-schnell-Free","black-forest-labs/FLUX.2-dev","google/gemini-3-pro-image"].includes(this.modelId)&&void 0}get supportsMaskInputs(){return null==this.supportsFileInputs&&void 0}get provider(){return this.config.provider}static[c.WORKFLOW_SERIALIZE](a){return(0,d.serializeModelOptions)({modelId:a.modelId,config:a.config})}static[c.WORKFLOW_DESERIALIZE](b){return new a(b.modelId,b.config)}constructor(a,b){this.modelId=a,this.config=b,this.specificationVersion="v4",this.maxImagesPerCall=1}async doGenerate({prompt:a,n:b,size:c,seed:e,providerOptions:f,headers:g,abortSignal:h,files:i,mask:l}){let o,p=[];if(null!=l)throw Error("Together AI does not support mask-based image editing. Use FLUX Kontext models (e.g., black-forest-labs/FLUX.1-kontext-pro) with a reference image and descriptive prompt instead.");null!=c&&p.push({type:"unsupported",feature:"aspectRatio",details:"This model does not support the `aspectRatio` option. Use `size` instead."});let q=this.config._internal?.currentDate?.()??new Date,r=await (0,d.parseProviderOptions)({provider:"togetherai",providerOptions:f,schema:j}),s=k.has(this.modelId),t={...r};s&&(delete t.steps,delete t.guidance,delete t.negative_prompt,delete t.disable_safety_checker,null!=e&&p.push({type:"unsupported",feature:"seed",details:`The ${this.modelId} model does not support the \`seed\` option.`})),null!=i&&i.length>0&&(o=(0,d.convertImageModelFileToDataUri)(i[0]),i.length>1&&p.push({type:"other",message:"Together AI only supports a single input image. Additional images are ignored."}));let u=c?.split("x"),{value:v,responseHeaders:w}=await (0,d.postJsonToApi)({url:`${this.config.baseURL}/images/generations`,headers:(0,d.combineHeaders)(this.config.headers?.(),g),body:{model:this.modelId,prompt:a,...null!=e&&!s?{seed:e}:{},...b>1?{n:b}:{},...u&&{width:parseInt(u[0]),height:parseInt(u[1])},...null!=o?{image_url:o}:{},response_format:"base64",...t},failedResponseHandler:(0,d.createJsonErrorResponseHandler)({errorSchema:n,errorToMessage:a=>a.error.message}),successfulResponseHandler:(0,d.createJsonResponseHandler)(m),abortSignal:h,fetch:this.config.fetch});return{images:v.data.map(a=>a.b64_json),warnings:p,response:{timestamp:q,modelId:this.modelId,headers:w}}}};let m=e.z.object({data:e.z.array(e.z.object({b64_json:e.z.string()}))}),n=e.z.object({error:e.z.object({message:e.z.string()})});function o(a={}){let c=(0,d.withoutTrailingSlash)(a.baseURL??"https://api.together.xyz/v1/"),e=()=>(0,d.withUserAgentSuffix)({Authorization:`Bearer ${(0,d.loadApiKey)({apiKey:a.apiKey??function(){if("u"<typeof process||"string"==typeof process.env.TOGETHER_API_KEY)return;let a=process.env.TOGETHER_AI_API_KEY;return"string"==typeof a&&console.warn("TOGETHER_AI_API_KEY is deprecated and will be removed in a future release. Please use TOGETHER_API_KEY instead."),a}(),environmentVariableName:"TOGETHER_API_KEY",description:"TogetherAI"})}`,...a.headers},"ai-sdk-togetherai/3.0.61"),f=b=>({provider:`togetherai.${b}`,url:({path:a})=>`${c}${a}`,headers:e,fetch:a.fetch}),g=a=>new b.OpenAICompatibleChatLanguageModel(a,{...f("chat"),includeUsage:!0,supportsStructuredOutputs:"deepseek-ai/DeepSeek-V4-Flash-0731"===a}),h=a=>new b.OpenAICompatibleEmbeddingModel(a,f("embedding")),j=a=>new l(a,{...f("image"),baseURL:c??"https://api.together.xyz/v1/"}),k=a=>new i(a,{...f("reranking"),baseURL:c??"https://api.together.xyz/v1/"}),m=a=>g(a);return m.specificationVersion="v4",m.completionModel=a=>new b.OpenAICompatibleCompletionLanguageModel(a,{...f("completion"),includeUsage:!0}),m.languageModel=g,m.chatModel=g,m.embeddingModel=h,m.textEmbeddingModel=h,m.image=j,m.imageModel=j,m.reranking=k,m.rerankingModel=k,m}o(),a.s(["createTogetherAI",0,o])},655819,a=>{"use strict";var b=a.i(652685),c=a.i(912735),d=a.i(527990),e=a.i(53112);let f=e.z.object({error:e.z.object({message:e.z.string(),type:e.z.string().nullish(),param:e.z.any().nullish(),code:e.z.union([e.z.string(),e.z.number()]).nullish()})}),g=e.z.object({code:e.z.string(),error:e.z.string()}),h=e.z.object({error:e.z.string()}),i=e.z.union([f,g,h]),j=(0,d.createJsonErrorResponseHandler)({errorSchema:i,errorToMessage:a=>"string"==typeof a.error?"code"in a?`${a.code}: ${a.error}`:a.error:a.error.message}),k=e.z.object({aspect_ratio:e.z.string().optional(),output_format:e.z.string().optional(),sync_mode:e.z.boolean().optional(),resolution:e.z.enum(["1k","2k"]).optional(),quality:e.z.enum(["low","medium","high"]).optional(),user:e.z.string().optional()});var l=class a{get supportsFileInputs(){return"grok-imagine-image"===this.modelId||"grok-imagine-image-pro"===this.modelId||void 0}get supportsMaskInputs(){return!0!==this.supportsFileInputs&&void 0}get provider(){return this.config.provider}static[c.WORKFLOW_SERIALIZE](a){return(0,d.serializeModelOptions)({modelId:a.modelId,config:a.config})}static[c.WORKFLOW_DESERIALIZE](b){return new a(b.modelId,b.config)}constructor(a,b){this.modelId=a,this.config=b,this.specificationVersion="v4",this.maxImagesPerCall=3}async doGenerate({prompt:a,n:b,size:c,aspectRatio:e,seed:f,providerOptions:g,headers:h,abortSignal:i,files:l,mask:n}){let o=[];null!=c&&o.push({type:"unsupported",feature:"size",details:"This model does not support the `size` option. Use `aspectRatio` instead."}),null!=f&&o.push({type:"unsupported",feature:"seed"}),null!=n&&o.push({type:"unsupported",feature:"mask"});let p=await (0,d.parseProviderOptions)({provider:"xai",providerOptions:g,schema:k}),q=null!=l&&l.length>0,r=q?l.map(a=>(0,d.convertImageModelFileToDataUri)(a)):[],s={model:this.modelId,prompt:a,n:b,response_format:"b64_json"};null!=e&&(s.aspect_ratio=e),p?.output_format!=null&&(s.output_format=p.output_format),p?.sync_mode!=null&&(s.sync_mode=p.sync_mode),p?.aspect_ratio!=null&&null==e&&(s.aspect_ratio=p.aspect_ratio),p?.resolution!=null&&(s.resolution=p.resolution),p?.quality!=null&&(s.quality=p.quality),p?.user!=null&&(s.user=p.user),1===r.length?s.image={url:r[0],type:"image_url"}:r.length>1&&(s.images=r.map(a=>({url:a,type:"image_url"})));let t=this.config.baseURL??"https://api.x.ai/v1",u=this.config._internal?.currentDate?.()??new Date,{value:v,responseHeaders:w}=await (0,d.postJsonToApi)({url:`${t}${q?"/images/edits":"/images/generations"}`,headers:(0,d.combineHeaders)(this.config.headers?.(),h),body:s,failedResponseHandler:j,successfulResponseHandler:(0,d.createJsonResponseHandler)(m),abortSignal:i,fetch:this.config.fetch});if(v.data.some(a=>!1===a.respect_moderation))throw Error("Image generation was blocked due to a content policy violation.");return{images:v.data.every(a=>null!=a.b64_json)?v.data.map(a=>a.b64_json):await Promise.all(v.data.map(a=>this.downloadImage(a.url,i))),warnings:o,response:{timestamp:u,modelId:this.modelId,headers:w},providerMetadata:{xai:{images:v.data.map(a=>({...a.revised_prompt?{revisedPrompt:a.revised_prompt}:{}})),...v.usage?.cost_in_usd_ticks!=null?{costInUsdTicks:v.usage.cost_in_usd_ticks}:{}}}}}async downloadImage(a,b){let{value:c}=await (0,d.getFromApi)({url:a,validateUrl:!0,trustedOrigin:this.config.baseURL,abortSignal:b,failedResponseHandler:(0,d.createStatusCodeErrorResponseHandler)(),successfulResponseHandler:(0,d.createBinaryResponseHandler)(),fetch:this.config.fetch});return c}};let m=e.z.object({data:e.z.array(e.z.object({url:e.z.string().nullish(),b64_json:e.z.string().nullish(),revised_prompt:e.z.string().nullish(),respect_moderation:e.z.boolean().nullish()})),usage:e.z.object({cost_in_usd_ticks:e.z.number().nullish()}).nullish()});function n({id:a,model:b,created:c,created_at:e}){return(0,d.createLanguageModelResponseMetadata)({id:a,model:b,created:c??e})}let o=(0,d.lazySchema)(()=>(0,d.zodSchema)(e.z.object({id:e.z.string(),object:e.z.string().nullish(),bytes:e.z.number().nullish(),created_at:e.z.number().nullish(),expires_at:e.z.number().nullish(),filename:e.z.string().nullish(),purpose:e.z.string().nullish(),status:e.z.string().nullish()}))),p=(0,d.lazySchema)(()=>(0,d.zodSchema)(e.z.object({id:e.z.string(),object:e.z.string().nullish(),deleted:e.z.boolean()}))),q=/^grok-4\.20(-\d{4})?-(non-)?reasoning$/,r=e.z.object({imageDetail:e.z.enum(["low","high","auto"]).optional()});async function s({prompt:a}){let c=[],e=[];for(let f of a)switch(f.role){case"system":c.push({role:"system",content:f.content});break;case"user":{let a=[];for(let c of f.content)switch(c.type){case"text":a.push({type:"input_text",text:c.text});break;case"file":switch(c.data.type){case"reference":a.push({type:"input_file",file_id:(0,d.resolveProviderReference)({reference:c.data.reference,provider:"xai"})});break;case"text":throw new b.UnsupportedFunctionalityError({functionality:"text file parts"});case"url":case"data":if("image"===(0,d.getTopLevelMediaType)(c.mediaType)){let b="url"===c.data.type?c.data.url.toString():`data:${(0,d.resolveFullMediaType)({part:c})};base64,${(0,d.convertToBase64)(c.data.data)}`,e=await (0,d.parseProviderOptions)({provider:"xai",providerOptions:c.providerOptions,schema:r});a.push({type:"input_image",image_url:b,...e?.imageDetail!=null&&{detail:e.imageDetail}})}else if("url"===c.data.type)a.push({type:"input_file",file_url:c.data.url.toString()});else throw new b.UnsupportedFunctionalityError({functionality:`file part media type ${c.mediaType} as inline data (xAI Responses requires a URL or a Files API reference for non-image files)`})}break;default:e.push({type:"other",message:"xAI Responses API does not support this content type in user messages"})}c.push({role:"user",content:a});break}case"assistant":for(let a of f.content)switch(a.type){case"text":{let b="string"==typeof a.providerOptions?.xai?.itemId?a.providerOptions.xai.itemId:void 0;c.push({role:"assistant",content:a.text,id:b});break}case"tool-call":{if(a.providerExecuted)break;let b="string"==typeof a.providerOptions?.xai?.itemId?a.providerOptions.xai.itemId:void 0;c.push({type:"function_call",id:b??a.toolCallId,call_id:a.toolCallId,name:a.toolName,arguments:JSON.stringify(a.input),status:"completed"});break}case"tool-result":break;case"reasoning":{let b="string"==typeof a.providerOptions?.xai?.itemId?a.providerOptions.xai.itemId:void 0,d="string"==typeof a.providerOptions?.xai?.reasoningEncryptedContent?a.providerOptions.xai.reasoningEncryptedContent:void 0;if(null!=b||null!=d){let e=[];a.text.length>0&&e.push({type:"summary_text",text:a.text}),c.push({type:"reasoning",id:b??"",summary:e,status:"completed",...null!=d&&{encrypted_content:d}})}else e.push({type:"other",message:"Reasoning parts without itemId or encrypted content cannot be sent back to xAI. Skipping."});break}case"reasoning-file":case"custom":case"file":e.push({type:"other",message:`xAI Responses API does not support ${a.type} in assistant messages`});break;default:e.push({type:"other",message:"xAI Responses API does not support this content type in assistant messages"})}break;case"tool":for(let a of f.content){let b;if("tool-approval-response"===a.type)continue;let e=a.output;switch(e.type){case"text":case"error-text":b=e.value;break;case"execution-denied":b=e.reason??"tool execution denied";break;case"json":case"error-json":b=JSON.stringify(e.value);break;case"content":for(let a of(b=[],e.value))switch(a.type){case"text":b.push({type:"input_text",text:a.text});break;case"file":"image"===(0,d.getTopLevelMediaType)(a.mediaType)&&("data"===a.data.type||"url"===a.data.type)&&b.push({type:"input_image",image_url:"url"===a.data.type?a.data.url.toString():`data:${(0,d.resolveFullMediaType)({part:a})};base64,${(0,d.convertToBase64)(a.data.data)}`})}break;default:b=""}c.push({type:"function_call_output",call_id:a.toolCallId,output:b})}break;default:e.push({type:"other",message:"unsupported message role"})}return{input:c,inputWarnings:e}}function t(a){let b=a.input_tokens_details?.cached_tokens??0,c=a.output_tokens_details?.reasoning_tokens??0,d=b<=a.input_tokens;return{inputTokens:{total:d?a.input_tokens:a.input_tokens+b,noCache:d?a.input_tokens-b:a.input_tokens,cacheRead:b,cacheWrite:void 0},outputTokens:{total:a.output_tokens,text:a.output_tokens-c,reasoning:c},raw:a}}function u(a){switch(a){case"stop":case"completed":return"stop";case"length":case"max_output_tokens":return"length";case"tool_calls":case"function_call":return"tool-calls";case"content_filter":return"content-filter";default:return"other"}}let v=e.z.union([e.z.object({type:e.z.literal("url_citation"),url:e.z.string(),title:e.z.string().optional()}),e.z.object({type:e.z.string()})]),w=e.z.object({type:e.z.string(),text:e.z.string().optional(),logprobs:e.z.array(e.z.any()).optional(),annotations:e.z.array(v).optional()}),x=e.z.object({type:e.z.string(),text:e.z.string()}),y=e.z.object({name:e.z.string().optional(),arguments:e.z.string().optional(),input:e.z.string().optional(),call_id:e.z.string().optional(),id:e.z.string(),status:e.z.string(),action:e.z.any().optional()}),z=e.z.object({type:e.z.literal("url"),url:e.z.string()}),A=e.z.discriminatedUnion("type",[e.z.object({type:e.z.literal("search"),query:e.z.string().nullish(),queries:e.z.array(e.z.string()).nullish(),sources:e.z.array(e.z.unknown()).nullish()}),e.z.object({type:e.z.literal("open_page"),url:e.z.string().nullish(),sources:e.z.array(e.z.unknown()).nullish()}),e.z.object({type:e.z.literal("find_in_page"),url:e.z.string().nullish(),pattern:e.z.string().nullish(),sources:e.z.array(e.z.unknown()).nullish()})]),B=e.z.object({name:e.z.string().optional(),arguments:e.z.string().optional(),output:e.z.string().optional(),error:e.z.string().optional(),id:e.z.string(),status:e.z.string(),server_label:e.z.string().optional()}),C=e.z.discriminatedUnion("type",[e.z.object({type:e.z.literal("web_search_call"),...y.shape}),e.z.object({type:e.z.literal("x_search_call"),...y.shape}),e.z.object({type:e.z.literal("code_interpreter_call"),...y.shape}),e.z.object({type:e.z.literal("code_execution_call"),...y.shape}),e.z.object({type:e.z.literal("view_image_call"),...y.shape}),e.z.object({type:e.z.literal("view_x_video_call"),...y.shape}),e.z.object({type:e.z.literal("file_search_call"),id:e.z.string(),status:e.z.string(),queries:e.z.array(e.z.string()).optional(),results:e.z.array(e.z.object({file_id:e.z.string(),filename:e.z.string(),score:e.z.number(),text:e.z.string()})).nullish()}),e.z.object({type:e.z.literal("image_generation_call"),id:e.z.string(),status:e.z.string(),prompt:e.z.string().nullish(),result:e.z.string().nullish()}),e.z.object({type:e.z.literal("custom_tool_call"),...y.shape}),e.z.object({type:e.z.literal("mcp_call"),...B.shape}),e.z.object({type:e.z.literal("message"),role:e.z.string(),content:e.z.array(w),id:e.z.string(),status:e.z.string()}),e.z.object({type:e.z.literal("function_call"),name:e.z.string(),arguments:e.z.string(),call_id:e.z.string(),id:e.z.string()}),e.z.object({type:e.z.literal("reasoning"),id:e.z.string(),summary:e.z.array(x),content:e.z.array(e.z.object({type:e.z.string(),text:e.z.string()})).nullish(),status:e.z.string(),encrypted_content:e.z.string().nullish()})]),D=e.z.object({input_tokens:e.z.number(),output_tokens:e.z.number(),total_tokens:e.z.number().optional(),input_tokens_details:e.z.object({cached_tokens:e.z.number().optional()}).catchall(e.z.json()).optional(),output_tokens_details:e.z.object({reasoning_tokens:e.z.number().optional()}).catchall(e.z.json()).optional(),num_sources_used:e.z.number().optional(),num_server_side_tools_used:e.z.number().optional(),cost_in_usd_ticks:e.z.number().nullish()}).catchall(e.z.json()),E=e.z.object({id:e.z.string().nullish(),created_at:e.z.number().nullish(),model:e.z.string().nullish(),object:e.z.literal("response"),output:e.z.array(C),usage:D.nullish(),status:e.z.string(),service_tier:e.z.string().nullish(),prompt_cache_key:e.z.string().nullish(),safety_identifier:e.z.string().nullish()}),F=e.z.union([e.z.object({type:e.z.literal("response.created"),response:E.partial({usage:!0,status:!0})}),e.z.object({type:e.z.literal("response.in_progress"),response:E.partial({usage:!0,status:!0})}),e.z.object({type:e.z.literal("response.output_item.added"),item:C,output_index:e.z.number()}),e.z.object({type:e.z.literal("response.output_item.done"),item:C,output_index:e.z.number()}),e.z.object({type:e.z.literal("response.content_part.added"),item_id:e.z.string(),output_index:e.z.number(),content_index:e.z.number(),part:w}),e.z.object({type:e.z.literal("response.content_part.done"),item_id:e.z.string(),output_index:e.z.number(),content_index:e.z.number(),part:w}),e.z.object({type:e.z.literal("response.output_text.delta"),item_id:e.z.string(),output_index:e.z.number(),content_index:e.z.number(),delta:e.z.string(),logprobs:e.z.array(e.z.any()).optional()}),e.z.object({type:e.z.literal("response.output_text.done"),item_id:e.z.string(),output_index:e.z.number(),content_index:e.z.number(),text:e.z.string(),logprobs:e.z.array(e.z.any()).optional(),annotations:e.z.array(v).optional()}),e.z.object({type:e.z.literal("response.output_text.annotation.added"),item_id:e.z.string(),output_index:e.z.number(),content_index:e.z.number(),annotation_index:e.z.number(),annotation:v}),e.z.object({type:e.z.literal("response.reasoning_summary_part.added"),item_id:e.z.string(),output_index:e.z.number(),summary_index:e.z.number(),part:x}),e.z.object({type:e.z.literal("response.reasoning_summary_part.done"),item_id:e.z.string(),output_index:e.z.number(),summary_index:e.z.number(),part:x}),e.z.object({type:e.z.literal("response.reasoning_summary_text.delta"),item_id:e.z.string(),output_index:e.z.number(),summary_index:e.z.number(),delta:e.z.string()}),e.z.object({type:e.z.literal("response.reasoning_summary_text.done"),item_id:e.z.string(),output_index:e.z.number(),summary_index:e.z.number(),text:e.z.string()}),e.z.object({type:e.z.literal("response.reasoning_text.delta"),item_id:e.z.string(),output_index:e.z.number(),content_index:e.z.number(),delta:e.z.string()}),e.z.object({type:e.z.literal("response.reasoning_text.done"),item_id:e.z.string(),output_index:e.z.number(),content_index:e.z.number(),text:e.z.string()}),e.z.object({type:e.z.literal("response.web_search_call.in_progress"),item_id:e.z.string(),output_index:e.z.number()}),e.z.object({type:e.z.literal("response.web_search_call.searching"),item_id:e.z.string(),output_index:e.z.number()}),e.z.object({type:e.z.literal("response.web_search_call.completed"),item_id:e.z.string(),output_index:e.z.number()}),e.z.object({type:e.z.literal("response.x_search_call.in_progress"),item_id:e.z.string(),output_index:e.z.number()}),e.z.object({type:e.z.literal("response.x_search_call.searching"),item_id:e.z.string(),output_index:e.z.number()}),e.z.object({type:e.z.literal("response.x_search_call.completed"),item_id:e.z.string(),output_index:e.z.number()}),e.z.object({type:e.z.literal("response.file_search_call.in_progress"),item_id:e.z.string(),output_index:e.z.number()}),e.z.object({type:e.z.literal("response.file_search_call.searching"),item_id:e.z.string(),output_index:e.z.number()}),e.z.object({type:e.z.literal("response.file_search_call.completed"),item_id:e.z.string(),output_index:e.z.number()}),e.z.object({type:e.z.literal("response.image_generation_call.in_progress"),item_id:e.z.string(),output_index:e.z.number()}),e.z.object({type:e.z.literal("response.image_generation_call.generating"),item_id:e.z.string(),output_index:e.z.number()}),e.z.object({type:e.z.literal("response.image_generation_call.completed"),item_id:e.z.string(),output_index:e.z.number()}),e.z.object({type:e.z.literal("response.code_execution_call.in_progress"),item_id:e.z.string(),output_index:e.z.number()}),e.z.object({type:e.z.literal("response.code_execution_call.executing"),item_id:e.z.string(),output_index:e.z.number()}),e.z.object({type:e.z.literal("response.code_execution_call.completed"),item_id:e.z.string(),output_index:e.z.number()}),e.z.object({type:e.z.literal("response.code_interpreter_call.in_progress"),item_id:e.z.string(),output_index:e.z.number()}),e.z.object({type:e.z.literal("response.code_interpreter_call.executing"),item_id:e.z.string(),output_index:e.z.number()}),e.z.object({type:e.z.literal("response.code_interpreter_call.interpreting"),item_id:e.z.string(),output_index:e.z.number()}),e.z.object({type:e.z.literal("response.code_interpreter_call.completed"),item_id:e.z.string(),output_index:e.z.number()}),e.z.object({type:e.z.literal("response.code_interpreter_call_code.delta"),item_id:e.z.string(),output_index:e.z.number(),delta:e.z.string()}),e.z.object({type:e.z.literal("response.code_interpreter_call_code.done"),item_id:e.z.string(),output_index:e.z.number(),code:e.z.string()}),e.z.object({type:e.z.literal("response.custom_tool_call_input.delta"),item_id:e.z.string(),output_index:e.z.number(),delta:e.z.string()}),e.z.object({type:e.z.literal("response.custom_tool_call_input.done"),item_id:e.z.string(),output_index:e.z.number(),input:e.z.string()}),e.z.object({type:e.z.literal("response.function_call_arguments.delta"),item_id:e.z.string(),output_index:e.z.number(),delta:e.z.string()}),e.z.object({type:e.z.literal("response.function_call_arguments.done"),item_id:e.z.string(),output_index:e.z.number(),arguments:e.z.string()}),e.z.object({type:e.z.literal("response.mcp_call.in_progress"),item_id:e.z.string(),output_index:e.z.number()}),e.z.object({type:e.z.literal("response.mcp_call.executing"),item_id:e.z.string(),output_index:e.z.number()}),e.z.object({type:e.z.literal("response.mcp_call.completed"),item_id:e.z.string(),output_index:e.z.number()}),e.z.object({type:e.z.literal("response.mcp_call.failed"),item_id:e.z.string(),output_index:e.z.number()}),e.z.object({type:e.z.literal("response.mcp_call_arguments.delta"),item_id:e.z.string(),output_index:e.z.number(),delta:e.z.string()}),e.z.object({type:e.z.literal("response.mcp_call_arguments.done"),item_id:e.z.string(),output_index:e.z.number(),arguments:e.z.string().optional()}),e.z.object({type:e.z.literal("response.mcp_call_output.delta"),item_id:e.z.string(),output_index:e.z.number(),delta:e.z.string()}),e.z.object({type:e.z.literal("response.mcp_call_output.done"),item_id:e.z.string(),output_index:e.z.number(),output:e.z.string().optional()}),e.z.object({type:e.z.literal("response.incomplete"),response:e.z.object({incomplete_details:e.z.object({reason:e.z.string()}).nullish(),usage:D.nullish(),service_tier:e.z.string().nullish(),prompt_cache_key:e.z.string().nullish(),safety_identifier:e.z.string().nullish()})}),e.z.object({type:e.z.literal("response.failed"),response:e.z.object({error:e.z.object({code:e.z.string().nullish(),message:e.z.string()}).nullish(),incomplete_details:e.z.object({reason:e.z.string()}).nullish(),usage:D.nullish()})}),e.z.object({type:e.z.literal("error"),code:e.z.string().nullish(),message:e.z.string(),param:e.z.string().nullish()}),e.z.object({type:e.z.literal("response.done"),response:E}),e.z.object({type:e.z.literal("response.completed"),response:E})]),G=e.z.object({reasoningEffort:e.z.enum(["none","low","medium","high","xhigh"]).optional(),reasoningSummary:e.z.enum(["auto","concise","detailed"]).optional(),logprobs:e.z.boolean().optional(),topLogprobs:e.z.number().int().min(0).max(8).optional(),minP:e.z.number().min(0).max(1).optional(),maxTurns:e.z.number().int().optional(),parallelToolCalls:e.z.boolean().optional(),promptCacheKey:e.z.string().optional(),safetyIdentifier:e.z.string().optional(),serviceTier:e.z.enum(["default","priority"]).optional(),store:e.z.boolean().optional(),previousResponseId:e.z.string().optional(),user:e.z.string().optional(),include:e.z.array(e.z.enum(["file_search_call.results","web_search_call.action.sources","code_interpreter_call.outputs","reasoning.encrypted_content","no_inline_citations"])).nullish()}),H=(0,d.lazySchema)(()=>(0,d.zodSchema)(e.z.object({vectorStoreIds:e.z.array(e.z.string()),maxNumResults:e.z.number().optional()}))),I=(0,d.lazySchema)(()=>(0,d.zodSchema)(e.z.object({queries:e.z.array(e.z.string()),results:e.z.array(e.z.object({fileId:e.z.string(),filename:e.z.string(),score:e.z.number().min(0).max(1),text:e.z.string()})).nullable()}))),J=(0,d.createProviderExecutedToolFactory)({id:"xai.file_search",inputSchema:(0,d.lazySchema)(()=>(0,d.zodSchema)(e.z.object({}))),outputSchema:I}),K=(0,d.lazySchema)(()=>(0,d.zodSchema)(e.z.object({action:e.z.enum(["auto","generate","edit"]).optional()}))),L=(0,d.lazySchema)(()=>(0,d.zodSchema)(e.z.object({}))),M=(0,d.lazySchema)(()=>(0,d.zodSchema)(e.z.object({result:e.z.string(),prompt:e.z.string().optional()}))),N=(0,d.createProviderExecutedToolFactory)({id:"xai.image_generation",inputSchema:L,outputSchema:M}),O=(0,d.lazySchema)(()=>(0,d.zodSchema)(e.z.object({serverUrl:e.z.string().describe("The URL of the MCP server"),serverLabel:e.z.string().optional().describe("A label for the MCP server"),serverDescription:e.z.string().optional().describe("Description of the MCP server"),allowedTools:e.z.array(e.z.string()).optional().describe("List of allowed tool names"),headers:e.z.record(e.z.string(),e.z.string()).optional().describe("Custom headers to send"),authorization:e.z.string().optional().describe("Authorization header value")}))),P=(0,d.lazySchema)(()=>(0,d.zodSchema)(e.z.object({name:e.z.string(),arguments:e.z.string(),result:e.z.unknown()}))),Q=(0,d.createProviderExecutedToolFactory)({id:"xai.mcp",inputSchema:(0,d.lazySchema)(()=>(0,d.zodSchema)(e.z.object({}))),outputSchema:P}),R=(0,d.lazySchema)(()=>(0,d.zodSchema)(e.z.object({allowedDomains:e.z.array(e.z.string()).max(5).optional(),excludedDomains:e.z.array(e.z.string()).max(5).optional(),enableImageSearch:e.z.boolean().optional(),enableImageUnderstanding:e.z.boolean().optional()}))),S=(0,d.lazySchema)(()=>(0,d.zodSchema)(e.z.object({action:e.z.discriminatedUnion("type",[e.z.object({type:e.z.literal("search"),query:e.z.string().optional(),queries:e.z.array(e.z.string()).optional()}),e.z.object({type:e.z.literal("openPage"),url:e.z.string().nullish()}),e.z.object({type:e.z.literal("findInPage"),url:e.z.string().nullish(),pattern:e.z.string().nullish()})]).optional(),sources:e.z.array(e.z.object({type:e.z.literal("url"),url:e.z.string()})).optional()}))),T=(0,d.createProviderExecutedToolFactory)({id:"xai.web_search",inputSchema:(0,d.lazySchema)(()=>(0,d.zodSchema)(e.z.object({}))),outputSchema:S}),U=(0,d.lazySchema)(()=>(0,d.zodSchema)(e.z.object({allowedXHandles:e.z.array(e.z.string()).max(10).optional(),excludedXHandles:e.z.array(e.z.string()).max(10).optional(),fromDate:e.z.string().optional(),toDate:e.z.string().optional(),enableImageUnderstanding:e.z.boolean().optional(),enableVideoUnderstanding:e.z.boolean().optional()}))),V=(0,d.lazySchema)(()=>(0,d.zodSchema)(e.z.object({query:e.z.string(),posts:e.z.array(e.z.object({author:e.z.string(),text:e.z.string(),url:e.z.string(),likes:e.z.number()}))}))),W=(0,d.createProviderExecutedToolFactory)({id:"xai.x_search",inputSchema:(0,d.lazySchema)(()=>(0,d.zodSchema)(e.z.object({}))),outputSchema:V});async function X({tools:a,toolChoice:c}){let e=a?.length?a:void 0,f=[];if(null==e)return{tools:void 0,toolChoice:void 0,toolWarnings:f};let g=[],h=new Map;for(let a of e)if(h.set(a.name,a),"provider"===a.type)switch(a.id){case"xai.web_search":{let b=await (0,d.validateTypes)({value:a.args,schema:R});g.push({type:"web_search",allowed_domains:b.allowedDomains,excluded_domains:b.excludedDomains,enable_image_search:b.enableImageSearch,enable_image_understanding:b.enableImageUnderstanding});break}case"xai.x_search":{let b=await (0,d.validateTypes)({value:a.args,schema:U});g.push({type:"x_search",allowed_x_handles:b.allowedXHandles,excluded_x_handles:b.excludedXHandles,from_date:b.fromDate,to_date:b.toDate,enable_image_understanding:b.enableImageUnderstanding,enable_video_understanding:b.enableVideoUnderstanding});break}case"xai.code_execution":g.push({type:"code_interpreter"});break;case"xai.view_image":g.push({type:"view_image"});break;case"xai.view_x_video":g.push({type:"view_x_video"});break;case"xai.image_generation":{let b=await (0,d.validateTypes)({value:a.args,schema:K});g.push({type:"image_generation",action:b.action});break}case"xai.file_search":{let b=await (0,d.validateTypes)({value:a.args,schema:H});g.push({type:"file_search",vector_store_ids:b.vectorStoreIds,max_num_results:b.maxNumResults});break}case"xai.mcp":{let b=await (0,d.validateTypes)({value:a.args,schema:O});g.push({type:"mcp",server_url:b.serverUrl,server_label:b.serverLabel,server_description:b.serverDescription,allowed_tools:b.allowedTools,headers:b.headers,authorization:b.authorization});break}default:f.push({type:"unsupported",feature:`provider-defined tool ${a.name}`})}else g.push({type:"function",name:a.name,description:a.description,parameters:a.inputSchema,...null!=a.strict?{strict:a.strict}:{}});if(null==c)return{tools:g,toolChoice:void 0,toolWarnings:f};let i=c.type;switch(i){case"auto":case"none":return{tools:g,toolChoice:i,toolWarnings:f};case"required":return{tools:g,toolChoice:"required",toolWarnings:f};case"tool":{let a=h.get(c.toolName);if(null==a)return{tools:g,toolChoice:void 0,toolWarnings:f};if("provider"===a.type)return f.push({type:"unsupported",feature:`toolChoice for server-side tool "${a.name}"`}),{tools:g,toolChoice:void 0,toolWarnings:f};return{tools:g,toolChoice:{type:"function",name:a.name},toolWarnings:f}}default:throw new b.UnsupportedFunctionalityError({functionality:`tool choice type: ${i}`})}}function Y({message:a,code:b,eventType:c,data:e}){var f,g;let h,i="number"==typeof(h="string"==typeof(f=b)&&/^\d{3}$/.test(f)?Number(f):f)&&Number.isInteger(h)&&h>=400&&h<=599?h:void 0;return(0,d.createProviderStreamError)({message:a,type:c,code:b??void 0,...null!=i?{statusCode:i,isRetryable:408===(g=i)||409===g||429===g||g>=500}:function(a){switch(a){case"rate_limit_exceeded":case"rate_limit_error":return{statusCode:429,isRetryable:!0};case"insufficient_quota":return{statusCode:429,isRetryable:!1};case"api_error":case"internal_server_error":case"server_error":return{statusCode:500,isRetryable:!0};case"overloaded_error":case"service_unavailable":return{statusCode:503,isRetryable:!0};case"timeout":case"timeout_error":return{statusCode:504,isRetryable:!0};case"authentication_error":case"invalid_api_key":return{statusCode:401,isRetryable:!1};case"permission_error":return{statusCode:403,isRetryable:!1};case"not_found_error":case"model_not_found":return{statusCode:404,isRetryable:!1};case"bad_request":case"context_length_exceeded":case"invalid_request_error":return{statusCode:400,isRetryable:!1};default:return{}}}(b),data:e})}let Z={"image/*":[/^https?:\/\/.*$/],"application/pdf":[/^https?:\/\/.*$/],"text/*":[/^https?:\/\/.*$/]};var $=class a{static[c.WORKFLOW_SERIALIZE](a){return(0,d.serializeModelOptions)({modelId:a.modelId,config:a.config})}static[c.WORKFLOW_DESERIALIZE](b){return new a(b.modelId,b.config)}constructor(a,b){this.specificationVersion="v4",this.supportedUrls=Z,this.modelId=a,this.config=b}get provider(){return this.config.provider}static async prepareRequest({modelId:a,options:{prompt:b,maxOutputTokens:c,temperature:e,topP:f,topK:g,frequencyPenalty:h,presencePenalty:i,stopSequences:j,seed:k,responseFormat:l,providerOptions:m,tools:n,toolChoice:o,reasoning:p}}){let r=[],t=await (0,d.parseProviderOptions)({provider:"xai",providerOptions:m,schema:G})??{};null!=h&&r.push({type:"unsupported",feature:"frequencyPenalty"}),null!=i&&r.push({type:"unsupported",feature:"presencePenalty"}),null!=j&&r.push({type:"unsupported",feature:"stopSequences"});let u=n?.find(a=>"provider"===a.type&&"xai.web_search"===a.id)?.name,v=n?.find(a=>"provider"===a.type&&"xai.x_search"===a.id)?.name,w=n?.find(a=>"provider"===a.type&&"xai.code_execution"===a.id)?.name,x=n?.find(a=>"provider"===a.type&&"xai.mcp"===a.id)?.name,y=n?.find(a=>"provider"===a.type&&"xai.file_search"===a.id)?.name,z=n?.find(a=>"provider"===a.type&&"xai.image_generation"===a.id)?.name,{input:A,inputWarnings:B}=await s({prompt:b,store:t.store??!0});r.push(...B);let{tools:C,toolChoice:D,toolWarnings:E}=await X({tools:n,toolChoice:o});r.push(...E);let F=t.include?[...t.include]:void 0;!1===t.store&&(F=null==F?["reasoning.encrypted_content"]:[...F,"reasoning.encrypted_content"]);let H=t.reasoningEffort;null==H&&(0,d.isCustomReasoning)(p)&&(q.test(a)?r.push({type:"unsupported",feature:"reasoning",details:`reasoning "${p}" is not supported by this model.`}):H="none"===p?"none":(0,d.mapReasoningToProviderEffort)({reasoning:p,effortMap:{minimal:"low",low:"low",medium:"medium",high:"high",xhigh:"grok-4.6"===a?"xhigh":"high"},warnings:r}));let I={model:a,input:A,logprobs:!0===t.logprobs||null!=t.topLogprobs||void 0,top_logprobs:t.topLogprobs,max_output_tokens:c,temperature:e,top_p:f,top_k:g,min_p:t.minP,seed:k,...l?.type==="json"&&{text:{format:null!=l.schema?{type:"json_schema",strict:!0,name:l.name??"response",description:l.description,schema:l.schema}:{type:"json_object"}}},...null!=H&&{reasoning:{effort:H}},...!1===t.store&&{store:t.store},...null!=F&&{include:F},...null!=t.previousResponseId&&{previous_response_id:t.previousResponseId},...null!=t.maxTurns&&{max_turns:t.maxTurns},...null!=t.parallelToolCalls&&{parallel_tool_calls:t.parallelToolCalls},...null!=t.promptCacheKey&&{prompt_cache_key:t.promptCacheKey},...null!=t.safetyIdentifier&&{safety_identifier:t.safetyIdentifier},...null!=t.serviceTier&&{service_tier:t.serviceTier},...null!=t.user&&{user:t.user}};return C&&C.length>0&&(I.tools=C),null!=D&&(I.tool_choice=D),{args:I,warnings:r,webSearchToolName:u,xSearchToolName:v,codeExecutionToolName:w,mcpToolName:x,fileSearchToolName:y,imageGenerationToolName:z}}getArgs(b){return a.prepareRequest({modelId:this.modelId,options:b})}async doGenerate(a){let{args:b,warnings:c,webSearchToolName:e,xSearchToolName:f,codeExecutionToolName:g,mcpToolName:h,fileSearchToolName:i,imageGenerationToolName:k}=await this.getArgs(a),{responseHeaders:l,value:m,rawValue:o}=await (0,d.postJsonToApi)({url:`${this.config.baseURL??"https://api.x.ai/v1"}/responses`,headers:(0,d.combineHeaders)(this.config.headers?.(),a.headers),body:b,failedResponseHandler:j,successfulResponseHandler:(0,d.createJsonResponseHandler)(E),abortSignal:a.abortSignal,fetch:this.config.fetch}),p=[],q=!1,r=["web_search","web_search_with_snippets","browse_page"],s=["x_user_search","x_keyword_search","x_semantic_search","x_thread_fetch"];for(let a of m.output){if("file_search_call"===a.type){let b=i??"file_search";p.push({type:"tool-call",toolCallId:a.id,toolName:b,input:"",providerExecuted:!0}),p.push({type:"tool-result",toolCallId:a.id,toolName:b,result:{queries:a.queries??[],results:a.results?.map(a=>({fileId:a.file_id,filename:a.filename,score:a.score,text:a.text}))??null}});continue}if("image_generation_call"===a.type){let b=k??"image_generation";p.push({type:"tool-call",toolCallId:a.id,toolName:b,input:"{}",providerExecuted:!0}),null!=a.result?p.push({type:"tool-result",toolCallId:a.id,toolName:b,result:{result:a.result,...null!=a.prompt&&{prompt:a.prompt}}}):p.push({type:"tool-result",toolCallId:a.id,toolName:b,isError:!0,result:`Image generation failed (status: ${a.status}).`});continue}if("web_search_call"===a.type||"x_search_call"===a.type||"code_interpreter_call"===a.type||"code_execution_call"===a.type||"view_image_call"===a.type||"view_x_video_call"===a.type||"custom_tool_call"===a.type||"mcp_call"===a.type){let b=a.name??"";r.includes(a.name??"")||"web_search_call"===a.type?b=e??"web_search":s.includes(a.name??"")||"x_search_call"===a.type?b=f??"x_search":"code_execution"===a.name||"code_interpreter_call"===a.type||"code_execution_call"===a.type?b=g??"code_execution":"mcp_call"===a.type&&(b=h??a.name??"mcp");let c="custom_tool_call"===a.type?a.input??"":(a.type,a.arguments??"");p.push({type:"tool-call",toolCallId:a.id,toolName:b,input:c,providerExecuted:!0}),"web_search_call"===a.type&&p.push({type:"tool-result",toolCallId:a.id,toolName:b,result:_(a.action)});continue}switch(a.type){case"message":for(let b of a.content)if(b.text&&p.push({type:"text",text:b.text}),b.annotations)for(let a of b.annotations)"url_citation"===a.type&&"url"in a&&p.push({type:"source",sourceType:"url",id:this.config.generateId(),url:a.url,title:a.title??a.url});break;case"function_call":q=!0,p.push({type:"tool-call",toolCallId:a.call_id,toolName:a.name,input:a.arguments});break;case"reasoning":{let b=(a.summary.length>0?a.summary.map(a=>a.text):(a.content??[]).map(a=>a.text)).filter(a=>a&&a.length>0).join("");if(b||a.encrypted_content){let c=a.encrypted_content||a.id;p.push({type:"reasoning",text:b,...c&&{providerMetadata:{xai:{...a.encrypted_content&&{reasoningEncryptedContent:a.encrypted_content},...a.id&&{itemId:a.id}}}}})}}}}return{content:p,finishReason:{unified:q?"tool-calls":u(m.status),raw:m.status??void 0},usage:m.usage?t(m.usage):{inputTokens:{total:0,noCache:0,cacheRead:0,cacheWrite:0},outputTokens:{total:0,text:0,reasoning:0}},...(m.usage?.cost_in_usd_ticks!=null||null!=m.service_tier||null!=m.prompt_cache_key||null!=m.safety_identifier)&&{providerMetadata:{xai:{...m.usage?.cost_in_usd_ticks!=null&&{costInUsdTicks:m.usage.cost_in_usd_ticks},...null!=m.service_tier&&{serviceTier:m.service_tier},...null!=m.prompt_cache_key&&{promptCacheKey:m.prompt_cache_key},...null!=m.safety_identifier&&{safetyIdentifier:m.safety_identifier}}}},request:{body:b},response:{...n(m),headers:l,body:o},warnings:c}}async doStream(a){let b,c,e,f,g,{args:h,warnings:i,webSearchToolName:k,xSearchToolName:l,codeExecutionToolName:m,mcpToolName:o,fileSearchToolName:p,imageGenerationToolName:q}=await this.getArgs(a),r={...h,stream:!0},{responseHeaders:s,value:v}=await (0,d.postJsonToApi)({url:`${this.config.baseURL??"https://api.x.ai/v1"}/responses`,headers:(0,d.combineHeaders)(this.config.headers?.(),a.headers),body:r,failedResponseHandler:j,successfulResponseHandler:(0,d.createEventSourceResponseHandler)(F),abortSignal:a.abortSignal,fetch:this.config.fetch}),w={unified:"other",raw:void 0},x=!1,y=!0,z={},A=new Set,B={},C={},D=this;return{stream:v.pipeThrough(new TransformStream({start(a){a.enqueue({type:"stream-start",warnings:i})},transform(d,h){if(a.includeRawChunks&&h.enqueue({type:"raw",rawValue:d.rawValue}),!d.success)return void h.enqueue({type:"error",error:d.error});let i=d.value;if("response.created"===i.type||"response.in_progress"===i.type){y&&(h.enqueue({type:"response-metadata",...n(i.response)}),y=!1);return}if("response.reasoning_summary_part.added"===i.type){let a=`reasoning-${i.item_id}`;null==C[i.item_id]&&(C[i.item_id]={},h.enqueue({type:"reasoning-start",id:a,providerMetadata:{xai:{itemId:i.item_id}}}))}if("response.reasoning_summary_text.delta"===i.type){let a=`reasoning-${i.item_id}`;h.enqueue({type:"reasoning-delta",id:a,delta:i.delta,providerMetadata:{xai:{itemId:i.item_id}}});return}if("response.reasoning_summary_text.done"===i.type)return;if("response.reasoning_text.delta"===i.type){let a=`reasoning-${i.item_id}`;null==C[i.item_id]&&(C[i.item_id]={},h.enqueue({type:"reasoning-start",id:a,providerMetadata:{xai:{itemId:i.item_id}}})),h.enqueue({type:"reasoning-delta",id:a,delta:i.delta,providerMetadata:{xai:{itemId:i.item_id}}});return}if("response.reasoning_text.done"!==i.type){if("response.output_text.delta"===i.type){let a=`text-${i.item_id}`;null==z[a]&&(z[a]={type:"text"},h.enqueue({type:"text-start",id:a})),h.enqueue({type:"text-delta",id:a,delta:i.delta});return}if("response.output_text.done"===i.type){if(i.annotations)for(let a of i.annotations)"url_citation"===a.type&&"url"in a&&h.enqueue({type:"source",sourceType:"url",id:D.config.generateId(),url:a.url,title:a.title??a.url});return}if("response.output_text.annotation.added"===i.type){let a=i.annotation;"url_citation"===a.type&&"url"in a&&h.enqueue({type:"source",sourceType:"url",id:D.config.generateId(),url:a.url,title:a.title??a.url});return}if("response.done"===i.type||"response.completed"===i.type||"response.incomplete"===i.type){let a=i.response;if(a.usage&&(b=t(a.usage),c=a.usage.cost_in_usd_ticks??void 0),e=a.service_tier??void 0,f=a.prompt_cache_key??void 0,g=a.safety_identifier??void 0,"response.incomplete"===i.type){let b="incomplete_details"in a?a.incomplete_details?.reason:void 0;w={unified:b?u(b):"other",raw:b??"incomplete"}}else"status"in a&&a.status&&(w={unified:x?"tool-calls":u(a.status),raw:a.status});return}if("response.failed"===i.type){let a=i.response.incomplete_details?.reason;w={unified:a?u(a):"error",raw:a??"error"},i.response.usage&&(b=t(i.response.usage)),null!=i.response.error&&h.enqueue({type:"error",error:Y({message:i.response.error.message,code:i.response.error.code,eventType:i.type,data:i})});return}if("error"===i.type)return void h.enqueue({type:"error",error:Y({message:i.message,code:i.code,eventType:i.type,data:i})});if("response.custom_tool_call_input.delta"!==i.type&&"response.custom_tool_call_input.done"!==i.type){if("response.function_call_arguments.delta"===i.type){let a=B[i.output_index];null!=a&&h.enqueue({type:"tool-input-delta",id:a.toolCallId,delta:i.delta});return}if("response.function_call_arguments.done"!==i.type){if("response.image_generation_call.in_progress"===i.type||"response.image_generation_call.generating"===i.type||"response.image_generation_call.completed"===i.type){if(!A.has(i.item_id)){A.add(i.item_id);let a=q??"image_generation";h.enqueue({type:"tool-input-start",id:i.item_id,toolName:a}),h.enqueue({type:"tool-input-delta",id:i.item_id,delta:"{}"}),h.enqueue({type:"tool-input-end",id:i.item_id}),h.enqueue({type:"tool-call",toolCallId:i.item_id,toolName:a,input:"{}",providerExecuted:!0})}return}if("response.output_item.added"===i.type||"response.output_item.done"===i.type){let a=i.item;if("reasoning"===a.type){if("response.output_item.done"===i.type){let b=`reasoning-${a.id}`;a.id in C||(C[a.id]={},h.enqueue({type:"reasoning-start",id:b,providerMetadata:{xai:{...a.id&&{itemId:a.id}}}})),h.enqueue({type:"reasoning-end",id:b,providerMetadata:{xai:{...a.encrypted_content&&{reasoningEncryptedContent:a.encrypted_content},...a.id&&{itemId:a.id}}}}),delete C[a.id]}return}if("file_search_call"===a.type){let b=p??"file_search";A.has(a.id)||(A.add(a.id),h.enqueue({type:"tool-input-start",id:a.id,toolName:b}),h.enqueue({type:"tool-input-delta",id:a.id,delta:""}),h.enqueue({type:"tool-input-end",id:a.id}),h.enqueue({type:"tool-call",toolCallId:a.id,toolName:b,input:"",providerExecuted:!0})),"response.output_item.done"===i.type&&h.enqueue({type:"tool-result",toolCallId:a.id,toolName:b,result:{queries:a.queries??[],results:a.results?.map(a=>({fileId:a.file_id,filename:a.filename,score:a.score,text:a.text}))??null}});return}if("image_generation_call"===a.type){let b=q??"image_generation";A.has(a.id)||(A.add(a.id),h.enqueue({type:"tool-input-start",id:a.id,toolName:b}),h.enqueue({type:"tool-input-delta",id:a.id,delta:"{}"}),h.enqueue({type:"tool-input-end",id:a.id}),h.enqueue({type:"tool-call",toolCallId:a.id,toolName:b,input:"{}",providerExecuted:!0})),"response.output_item.done"===i.type&&(null!=a.result?h.enqueue({type:"tool-result",toolCallId:a.id,toolName:b,result:{result:a.result,...null!=a.prompt&&{prompt:a.prompt}}}):h.enqueue({type:"tool-result",toolCallId:a.id,toolName:b,isError:!0,result:`Image generation failed (status: ${a.status}).`}));return}if("web_search_call"===a.type||"x_search_call"===a.type||"code_interpreter_call"===a.type||"code_execution_call"===a.type||"view_image_call"===a.type||"view_x_video_call"===a.type||"custom_tool_call"===a.type||"mcp_call"===a.type){let b=a.name??"";["web_search","web_search_with_snippets","browse_page"].includes(a.name??"")||"web_search_call"===a.type?b=k??"web_search":["x_user_search","x_keyword_search","x_semantic_search","x_thread_fetch"].includes(a.name??"")||"x_search_call"===a.type?b=l??"x_search":"code_execution"===a.name||"code_interpreter_call"===a.type||"code_execution_call"===a.type?b=m??"code_execution":"mcp_call"===a.type&&(b=o??a.name??"mcp");let c="custom_tool_call"===a.type?a.input??"":(a.type,a.arguments??"");("custom_tool_call"===a.type?"response.output_item.done"!==i.type:A.has(a.id))||A.has(a.id)||(A.add(a.id),h.enqueue({type:"tool-input-start",id:a.id,toolName:b}),h.enqueue({type:"tool-input-delta",id:a.id,delta:c}),h.enqueue({type:"tool-input-end",id:a.id}),h.enqueue({type:"tool-call",toolCallId:a.id,toolName:b,input:c,providerExecuted:!0})),"response.output_item.done"===i.type&&h.enqueue({type:"tool-result",toolCallId:a.id,toolName:b,result:"web_search_call"===a.type?_(a.action):{}});return}if("message"===a.type)for(let b of a.content){if(b.text&&b.text.length>0){let c=`text-${a.id}`;null==z[c]&&(z[c]={type:"text"},h.enqueue({type:"text-start",id:c}),h.enqueue({type:"text-delta",id:c,delta:b.text}))}if(b.annotations)for(let a of b.annotations)"url_citation"===a.type&&"url"in a&&h.enqueue({type:"source",sourceType:"url",id:D.config.generateId(),url:a.url,title:a.title??a.url})}else"function_call"===a.type&&("response.output_item.added"===i.type?(B[i.output_index]={toolName:a.name,toolCallId:a.call_id},h.enqueue({type:"tool-input-start",id:a.call_id,toolName:a.name})):"response.output_item.done"===i.type&&(x=!0,B[i.output_index]=void 0,h.enqueue({type:"tool-input-end",id:a.call_id}),h.enqueue({type:"tool-call",toolCallId:a.call_id,toolName:a.name,input:a.arguments})))}}}}},flush(a){for(let[b,c]of Object.entries(z))"text"===c.type&&a.enqueue({type:"text-end",id:b});a.enqueue({type:"finish",finishReason:w,usage:b??{inputTokens:{total:0,noCache:0,cacheRead:0,cacheWrite:0},outputTokens:{total:0,text:0,reasoning:0}},...(null!=c||null!=e||null!=f||null!=g)&&{providerMetadata:{xai:{...null!=c&&{costInUsdTicks:c},...null!=e&&{serviceTier:e},...null!=f&&{promptCacheKey:f},...null!=g&&{safetyIdentifier:g}}}}})}})),request:{body:r},response:{headers:s}}}};function _(a){let b=A.safeParse(a);if(!b.success)return{};let c=b.data,d=c.sources?.flatMap(a=>{let b=z.safeParse(a);return b.success?[b.data]:[]}),e=null!=d&&d.length>0?{sources:d}:{};switch(c.type){case"search":return{action:{type:"search",...null!=c.query&&{query:c.query},...null!=c.queries&&{queries:c.queries}},...e};case"open_page":return{action:{type:"openPage",url:c.url},...e};case"find_in_page":return{action:{type:"findInPage",url:c.url,pattern:c.pattern},...e}}}let aa=(0,d.lazySchema)(()=>(0,d.zodSchema)(e.z.object({inputFileExpiresAfter:e.z.number().int().min(3600).max(2592e3).optional()}))),ab=e.z.object({data:e.z.array(e.z.object({url:e.z.string().nullish(),b64_json:e.z.string().nullish(),revised_prompt:e.z.string().nullish(),respect_moderation:e.z.boolean().nullish()})),usage:e.z.object({cost_in_usd_ticks:e.z.number().nullish()}).nullish()}),ac=()=>e.z.object({batch_id:e.z.string(),name:e.z.string().nullish(),create_time:e.z.string().nullish(),expire_time:e.z.string().nullish(),cancel_time:e.z.string().nullish(),cancel_by_xai_message:e.z.string().nullish(),state:e.z.object({num_requests:e.z.number().nullish(),num_pending:e.z.number().nullish(),num_success:e.z.number().nullish(),num_error:e.z.number().nullish(),num_cancelled:e.z.number().nullish()}).nullish()}),ad=(0,d.lazySchema)(()=>(0,d.zodSchema)(ac())),ae=e.z.object({code:e.z.union([e.z.string(),e.z.number()]).nullish(),message:e.z.string().nullish()}),af=e.z.object({batch_request_id:e.z.string(),batch_result:e.z.object({response:e.z.object({chat_get_completion:e.z.unknown().nullish(),image_generation:e.z.unknown().nullish()}).nullish(),error:ae.nullish()}).nullish(),error_message:e.z.string().nullish()}),ag=e.z.object({id:e.z.string().nullish(),created:e.z.number().nullish(),model:e.z.string().nullish(),choices:e.z.array(e.z.object({message:e.z.object({role:e.z.enum(["assistant","tool"]),content:e.z.string().nullish(),reasoning_content:e.z.string().nullish(),tool_calls:e.z.array(e.z.object({id:e.z.string(),type:e.z.literal("function"),function:e.z.object({name:e.z.string(),arguments:e.z.string()})})).nullish()}),index:e.z.number(),finish_reason:e.z.string().nullish()})).nullish(),usage:e.z.object({prompt_tokens:e.z.number(),completion_tokens:e.z.number(),total_tokens:e.z.number(),cost_in_usd_ticks:e.z.number().nullish(),prompt_tokens_details:e.z.object({cached_tokens:e.z.number().nullish()}).nullish(),completion_tokens_details:e.z.object({reasoning_tokens:e.z.number().nullish()}).nullish()}).nullish(),citations:e.z.array(e.z.string().url()).nullish(),service_tier:e.z.string().nullish(),code:e.z.string().nullish(),error:e.z.string().nullish()}),ah=(0,d.lazySchema)(()=>(0,d.zodSchema)(e.z.object({results:e.z.array(af),pagination_token:e.z.string().nullish()}))),ai=(0,d.lazySchema)(()=>(0,d.zodSchema)(e.z.object({batches:e.z.array(ac()),pagination_token:e.z.string().nullish()})));var aj=class{constructor(a){this.options=a,this.specificationVersion="v4",this.supportedUrls=Z,this.provider=a.provider}async doStartBatch(a){for(let c of a.requests){let a=c.type;if("text"!==a&&"image"!==a)throw new b.UnsupportedFunctionalityError({functionality:`batch request type: ${a}`,message:`The xAI Batch API does not support batch requests with type "${a}".`})}let c=[],e=null==a.webhookUrl?[]:[{warning:{type:"unsupported",feature:"webhookUrl",details:"The xAI Batch API does not support per-batch webhook URLs."}}],f=await (0,d.parseProviderOptions)({provider:"xai",providerOptions:a.providerOptions,schema:aa});for(let b of a.requests){let a=await this.prepareRequest(b);for(let d of(c.push(JSON.stringify({custom_id:b.id,method:"POST",url:a.endpoint,body:a.body}),"\n"),a.warnings))e.push({requestId:b.id,warning:d})}let g=new Blob(c,{type:"application/jsonl"});c.length=0;let h=new FormData;f?.inputFileExpiresAfter!=null&&h.append("expires_after",String(f.inputFileExpiresAfter)),h.append("file",g,"batch.jsonl");let i=(0,d.combineHeaders)(this.options.config.headers?.(),a.headers),{value:k}=await (0,d.postFormDataToApi)({url:this.getUrl("/files"),headers:i,formData:h,failedResponseHandler:j,successfulResponseHandler:(0,d.createJsonResponseHandler)(o),abortSignal:a.abortSignal,fetch:this.options.config.fetch}),{value:l}=await (0,d.postJsonToApi)({url:this.getUrl("/batches"),headers:i,body:{name:"ai-sdk-text-batch",input_file_id:k.id},failedResponseHandler:j,successfulResponseHandler:(0,d.createJsonResponseHandler)(ad),abortSignal:a.abortSignal,fetch:this.options.config.fetch});return{batchId:l.batch_id,...ak(l),providerMetadata:{xai:{inputFileId:k.id,...null!=k.expires_at?{inputFileExpiresAt:new Date(1e3*k.expires_at).toISOString()}:{}}},warnings:e}}async doGetBatchStatus(a){return ak(await this.retrieveBatch(a))}async doCancelBatch(a){return await (0,d.postJsonToApi)({url:this.getUrl(`/batches/${encodeURIComponent(a.batchId)}:cancel`),headers:(0,d.combineHeaders)(this.options.config.headers?.(),a.headers),body:{},failedResponseHandler:j,successfulResponseHandler:(0,d.createJsonResponseHandler)(ad),abortSignal:a.abortSignal,fetch:this.options.config.fetch}),{}}async doListBatches(a){let b=new URL(this.getUrl("/batches"));null!=a.limit&&b.searchParams.set("limit",String(a.limit)),null!=a.cursor&&b.searchParams.set("pagination_token",a.cursor);let{value:c}=await (0,d.getFromApi)({url:b.toString(),headers:(0,d.combineHeaders)(this.options.config.headers?.(),a.headers),failedResponseHandler:j,successfulResponseHandler:(0,d.createJsonResponseHandler)(ai),abortSignal:a.abortSignal,fetch:this.options.config.fetch,validateUrl:!1});return{batches:c.batches.map(a=>({batchId:a.batch_id,...ak(a)})),...null!=c.pagination_token?{nextCursor:c.pagination_token}:{}}}async doGetBatchResults(a){if("pending"===ak(await this.retrieveBatch(a)).status)throw new b.InvalidArgumentError({argument:"batchId",message:`xAI batch "${a.batchId}" is not complete.`});return(0,d.convertAsyncIteratorToReadableStream)(this.iterateBatchResults(a))}async retrieveBatch(a){let{value:b}=await (0,d.getFromApi)({url:this.getUrl(`/batches/${encodeURIComponent(a.batchId)}`),headers:(0,d.combineHeaders)(this.options.config.headers?.(),a.headers),failedResponseHandler:j,successfulResponseHandler:(0,d.createJsonResponseHandler)(ad),abortSignal:a.abortSignal,fetch:this.options.config.fetch,validateUrl:!1});return b}async *iterateBatchResults(a){let b;do{let c=new URLSearchParams({limit:String(1e3)});null!=b&&c.set("pagination_token",b);let{value:e}=await (0,d.getFromApi)({url:this.getUrl(`/batches/${encodeURIComponent(a.batchId)}/results?${c}`),headers:(0,d.combineHeaders)(this.options.config.headers?.(),a.headers),failedResponseHandler:j,successfulResponseHandler:(0,d.createJsonResponseHandler)(ah),abortSignal:a.abortSignal,fetch:this.options.config.fetch,validateUrl:!1});for(let b of e.results)yield await this.convertBatchResult(b,a.abortSignal);b=e.pagination_token??void 0}while(null!=b)}async convertBatchResult(a,b){let c=a.batch_result?.error;if((a.error_message?.length??0)>0||c?.code!=null&&0!==c.code&&"0"!==c.code||c?.code==null&&(c?.message?.length??0)>0){var e,f;let b,d,g=(e=a,b=e.batch_result?.error,{message:e.error_message||b?.message||"xAI batch request failed.",...b?.code!=null&&0!==b.code&&"0"!==b.code?{code:String(b.code)}:{}});return{type:"text",id:a.batch_request_id,status:(d=String(f=c?.code).toLowerCase(),1===f||"1"===d||"cancelled"===d||"batch_cancelled"===d)?"cancelled":"failed",error:g}}let g=a.batch_result?.response;if(g?.chat_get_completion!=null){let b=await (0,d.safeValidateTypes)({value:g.chat_get_completion,schema:(0,d.zodSchema)(ag)});if(!b.success)return al(a.batch_request_id);let c=function(a){var b;let c,e,f,g;if(null!=a.error)return{success:!1,error:{message:a.error,...null!=a.code?{code:a.code}:{}}};let h=a.choices;if(null==h||0===h.length)return{success:!1,error:{message:"xAI returned a batch response without any choices.",code:"invalid_response"}};let i=[],j=new Set(h.filter(a=>"tool"===a.message.role).flatMap(a=>(a.message.tool_calls??[]).map(a=>a.id)));for(let a of h){if("tool"===a.message.role){if(null!=a.message.content)for(let b of a.message.tool_calls??[])i.push({type:"tool-result",toolCallId:b.id,toolName:b.function.name,result:a.message.content,dynamic:!0});continue}for(let b of(c=a,a.message.content&&i.push({type:"text",text:a.message.content}),a.message.reasoning_content&&i.push({type:"reasoning",text:a.message.reasoning_content}),a.message.tool_calls??[]))i.push({type:"tool-call",toolCallId:b.id,toolName:b.function.name,input:b.function.arguments,...j.has(b.id)?{providerExecuted:!0,dynamic:!0}:{}})}for(let b of a.citations??[])i.push({type:"source",sourceType:"url",id:b,url:b});return{success:!0,result:{content:i,finishReason:{unified:function(a){switch(a){case"stop":return"stop";case"length":return"length";case"tool_calls":case"function_call":return"tool-calls";case"content_filter":return"content-filter";default:return"other"}}(c?.finish_reason),raw:c?.finish_reason??void 0},usage:a.usage?(b=a.usage,e=b.prompt_tokens_details?.cached_tokens??0,f=b.completion_tokens_details?.reasoning_tokens??0,{inputTokens:{total:(g=e<=b.prompt_tokens)?b.prompt_tokens:b.prompt_tokens+e,noCache:g?b.prompt_tokens-e:b.prompt_tokens,cacheRead:e,cacheWrite:void 0},outputTokens:{total:b.completion_tokens+f,text:b.completion_tokens,reasoning:f},raw:b}):(0,d.createNullLanguageModelUsage)(),response:n(a),warnings:[],...(a.usage?.cost_in_usd_ticks!=null||null!=a.service_tier)&&{providerMetadata:{xai:{...a.usage?.cost_in_usd_ticks!=null?{costInUsdTicks:a.usage.cost_in_usd_ticks}:{},...null!=a.service_tier?{serviceTier:a.service_tier}:{}}}}}}}(b.value);return c.success?{type:"text",id:a.batch_request_id,status:"succeeded",result:c.result}:{type:"text",id:a.batch_request_id,status:"failed",error:c.error}}if(g?.image_generation!=null){let c=await (0,d.safeValidateTypes)({value:g.image_generation,schema:(0,d.zodSchema)(ab)});if(!c.success)return{type:"image",id:a.batch_request_id,status:"failed",error:{message:"xAI returned an invalid image batch result.",code:"invalid_response"}};if(c.value.data.some(a=>!1===a.respect_moderation))return{type:"image",id:a.batch_request_id,status:"failed",error:{message:"Image generation was blocked due to a content policy violation."}};let e=await this.convertImageBatchResponse(c.value,b);return{type:"image",id:a.batch_request_id,status:"succeeded",result:e}}return al(a.batch_request_id)}async prepareRequest(a){if("text"===a.type){let{args:b,warnings:c}=await $.prepareRequest({modelId:a.modelId,options:a.options});return{endpoint:"/v1/responses",body:b,warnings:c}}let{prompt:b,n:c,size:e,aspectRatio:f,seed:g,files:h,mask:i,providerOptions:j}=a.options,l=[];null!=e&&l.push({type:"unsupported",feature:"size",details:"This model does not support the `size` option. Use `aspectRatio` instead."}),null!=g&&l.push({type:"unsupported",feature:"seed"}),null!=i&&l.push({type:"unsupported",feature:"mask"});let m=await (0,d.parseProviderOptions)({provider:"xai",providerOptions:j,schema:k}),n=(h??[]).map(d.convertImageModelFileToDataUri),o={model:a.modelId,prompt:b,n:c,response_format:"b64_json"};return null!=f&&(o.aspect_ratio=f),m?.output_format!=null&&(o.output_format=m.output_format),m?.sync_mode!=null&&(o.sync_mode=m.sync_mode),m?.aspect_ratio!=null&&null==f&&(o.aspect_ratio=m.aspect_ratio),m?.resolution!=null&&(o.resolution=m.resolution),m?.quality!=null&&(o.quality=m.quality),m?.user!=null&&(o.user=m.user),1===n.length?o.image={url:n[0],type:"image_url"}:n.length>1&&(o.images=n.map(a=>({url:a,type:"image_url"}))),{endpoint:h?.length?"/v1/images/edits":"/v1/images/generations",body:o,warnings:l}}async convertImageBatchResponse(a,c){return{images:a.data.every(a=>null!=a.b64_json)?a.data.map(a=>a.b64_json):await Promise.all(a.data.map(async a=>{if(null!=a.b64_json)return(0,d.convertBase64ToUint8Array)(a.b64_json);if(null==a.url)throw new b.InvalidArgumentError({argument:"batchResult",message:"xAI returned an image without data or a URL."});let{value:e}=await (0,d.getFromApi)({url:a.url,validateUrl:!0,trustedOrigin:this.options.config.baseURL,abortSignal:c,failedResponseHandler:j,successfulResponseHandler:(0,d.createBinaryResponseHandler)(),fetch:this.options.config.fetch});return e})),warnings:[],response:{timestamp:new Date,modelId:"",headers:void 0},providerMetadata:{xai:{images:a.data.map(a=>null!=a.revised_prompt?{revisedPrompt:a.revised_prompt}:{}),...a.usage?.cost_in_usd_ticks!=null?{costInUsdTicks:a.usage.cost_in_usd_ticks}:{}}}}}getUrl(a){return`${this.options.config.baseURL??"https://api.x.ai/v1"}${a}`}};function ak(a){let b=(0,d.normalizeBatchRequestCounts)({total:a.state?.num_requests,pending:a.state?.num_pending,completed:a.state?.num_success,failed:a.state?.num_error!=null&&a.state?.num_cancelled!=null?a.state.num_error+a.state.num_cancelled:void 0}),c=null!=a.cancel_time||null!=a.cancel_by_xai_message,e=function(a){if(null==a)return!1;let b=Date.parse(a);return!Number.isNaN(b)&&b<=Date.now()}(a.expire_time);return{status:c||e?"failed":null!=b&&b.total>0&&0===b.pending?"completed":"pending",...null!=b?{requestCounts:b}:{},...c?{error:{message:a.cancel_by_xai_message??`xAI batch "${a.batch_id}" was cancelled.`,code:"batch_cancelled"}}:e?{error:{message:`xAI batch "${a.batch_id}" expired.`,code:"batch_expired"}}:{},...null!=a.create_time?{createdAt:a.create_time}:{},...null!=a.expire_time?{expiresAt:a.expire_time}:{}}}function al(a){return{type:"text",id:a,status:"failed",error:{message:"xAI returned an invalid Responses batch result.",code:"invalid_response"}}}function am(a){let b={};null!=a.instructions&&(b.instructions=a.instructions),null!=a.voice&&(b.voice=a.voice);let c={};if(null!=a.inputAudioFormat&&(c.input={format:{type:a.inputAudioFormat.type,...null!=a.inputAudioFormat.rate?{rate:a.inputAudioFormat.rate}:{}}}),null!=a.outputAudioFormat&&(c.output={format:{type:a.outputAudioFormat.type,...null!=a.outputAudioFormat.rate?{rate:a.outputAudioFormat.rate}:{}}}),Object.keys(c).length>0&&(b.audio=c),null!=a.turnDetection)if("disabled"===a.turnDetection.type)b.turn_detection=null;else{let c={type:"server_vad"};null!=a.turnDetection.threshold&&(c.threshold=a.turnDetection.threshold),null!=a.turnDetection.silenceDurationMs&&(c.silence_duration_ms=a.turnDetection.silenceDurationMs),null!=a.turnDetection.prefixPaddingMs&&(c.prefix_padding_ms=a.turnDetection.prefixPaddingMs),b.turn_detection=c}if(null!=a.tools&&a.tools.length>0&&(b.tools=a.tools.map(a=>({type:a.type,name:a.name,description:a.description,parameters:a.parameters}))),null!=a.providerOptions){let c=a.providerOptions;for(let[a,d]of(Array.isArray(c.tools)&&(b.tools=[...b.tools??[],...c.tools]),Object.entries(c)))"tools"!==a&&(b[a]=d)}return b}var an=class{constructor(a,b){this.specificationVersion="v4",this.modelId=a,this.provider=b.provider,this.config=b}async doCreateClientSecret(a){let b=this.config.fetch??fetch,c=`${this.config.baseURL}/realtime/client_secrets`,d={};null!=a.expiresAfterSeconds&&(d.expires_after={seconds:a.expiresAfterSeconds});let e=await b(c,{method:"POST",headers:{...this.config.headers(),"Content-Type":"application/json"},body:JSON.stringify(d)});if(!e.ok){let a=await e.text();throw Error(`xAI realtime client secret request failed: ${e.status} ${a}`)}let f=await e.json();return{token:f.value,url:`wss://${new URL(this.config.baseURL).host}/v1/realtime?model=${encodeURIComponent(this.modelId)}`,expiresAt:f.expires_at}}getWebSocketConfig(a){return{url:a.url,protocols:[`xai-client-secret.${a.token}`]}}parseServerEvent(a){let b=a.type;switch(b){case"session.created":return{type:"session-created",sessionId:a.session?.id,raw:a};case"session.updated":return{type:"session-updated",raw:a};case"conversation.created":case"mcp_list_tools.in_progress":case"mcp_list_tools.completed":case"mcp_list_tools.failed":case"response.mcp_call_arguments.delta":case"response.mcp_call_arguments.done":case"response.mcp_call.in_progress":case"response.mcp_call.completed":case"response.mcp_call.failed":default:return{type:"custom",rawType:b,raw:a};case"input_audio_buffer.speech_started":return{type:"speech-started",itemId:a.item_id,raw:a};case"input_audio_buffer.speech_stopped":return{type:"speech-stopped",itemId:a.item_id,raw:a};case"input_audio_buffer.committed":return{type:"audio-committed",itemId:a.item_id,previousItemId:a.previous_item_id,raw:a};case"conversation.item.added":return{type:"conversation-item-added",itemId:a.item?.id??a.item_id,item:a.item,raw:a};case"conversation.item.input_audio_transcription.completed":return{type:"input-transcription-completed",itemId:a.item_id,transcript:a.transcript??"",raw:a};case"response.created":return{type:"response-created",responseId:a.response?.id??a.response_id,raw:a};case"response.done":return{type:"response-done",responseId:a.response?.id??a.response_id,status:a.response?.status??"completed",raw:a};case"response.output_item.added":return{type:"output-item-added",responseId:a.response_id,itemId:a.item?.id??a.item_id,raw:a};case"response.output_item.done":return{type:"output-item-done",responseId:a.response_id,itemId:a.item?.id??a.item_id,raw:a};case"response.content_part.added":return{type:"content-part-added",responseId:a.response_id,itemId:a.item_id,raw:a};case"response.content_part.done":return{type:"content-part-done",responseId:a.response_id,itemId:a.item_id,raw:a};case"response.output_audio.delta":return{type:"audio-delta",responseId:a.response_id,itemId:a.item_id,delta:a.delta,raw:a};case"response.output_audio.done":return{type:"audio-done",responseId:a.response_id,itemId:a.item_id,raw:a};case"response.output_audio_transcript.delta":return{type:"audio-transcript-delta",responseId:a.response_id,itemId:a.item_id,delta:a.delta,raw:a};case"response.output_audio_transcript.done":return{type:"audio-transcript-done",responseId:a.response_id,itemId:a.item_id,transcript:a.transcript,raw:a};case"response.text.delta":return{type:"text-delta",responseId:a.response_id,itemId:a.item_id,delta:a.delta,raw:a};case"response.text.done":return{type:"text-done",responseId:a.response_id,itemId:a.item_id,text:a.text,raw:a};case"response.function_call_arguments.delta":return{type:"function-call-arguments-delta",responseId:a.response_id,itemId:a.item_id,callId:a.call_id,delta:a.delta,raw:a};case"response.function_call_arguments.done":return{type:"function-call-arguments-done",responseId:a.response_id,itemId:a.item_id,callId:a.call_id,name:a.name,arguments:a.arguments,raw:a};case"error":return{type:"error",message:a.error?.message??a.message??"Unknown error",code:a.error?.code??a.code,raw:a}}}serializeClientEvent(a){switch(a.type){case"session-update":return{type:"session.update",session:am(a.config)};case"input-audio-append":return{type:"input_audio_buffer.append",audio:a.audio};case"input-audio-commit":return{type:"input_audio_buffer.commit"};case"input-audio-clear":return{type:"input_audio_buffer.clear"};case"conversation-item-create":{let b=a.item;switch(b.type){case"text-message":return{type:"conversation.item.create",item:{type:"message",role:b.role,content:[{type:"input_text",text:b.text}]}};case"audio-message":return{type:"conversation.item.create",item:{type:"message",role:b.role,content:[{type:"input_audio",audio:b.audio}]}};case"function-call-output":return{type:"conversation.item.create",item:{type:"function_call_output",call_id:b.callId,output:b.output}}}break}case"conversation-item-truncate":break;case"response-create":return{type:"response.create",...null!=a.options?{response:{...null!=a.options.modalities?{modalities:a.options.modalities}:{},...null!=a.options.instructions?{instructions:a.options.instructions}:{}}}:{}};case"response-cancel":return{type:"response.cancel"}}}buildSessionConfig(a){return am(a)}};let ao=e.z.object({output:e.z.string().describe("the output of the code execution"),error:e.z.string().optional().describe("any error that occurred")}),ap=(0,d.createProviderExecutedToolFactory)({id:"xai.code_execution",inputSchema:e.z.object({}).describe("no input parameters"),outputSchema:ao}),aq=e.z.object({description:e.z.string().describe("description of the image"),objects:e.z.array(e.z.string()).optional().describe("objects detected in the image")}),ar=(0,d.createProviderExecutedToolFactory)({id:"xai.view_image",inputSchema:e.z.object({}).describe("no input parameters"),outputSchema:aq}),as=e.z.object({transcript:e.z.string().optional().describe("transcript of the video"),description:e.z.string().describe("description of the video content"),duration:e.z.number().optional().describe("duration in seconds")}),at=(0,d.createProviderExecutedToolFactory)({id:"xai.view_x_video",inputSchema:e.z.object({}).describe("no input parameters"),outputSchema:as}),au={codeExecution:(a={})=>ap(a),fileSearch:a=>J(a),imageGeneration:(a={})=>N(a),mcpServer:a=>Q(a),viewImage:(a={})=>ar(a),viewXVideo:(a={})=>at(a),webSearch:(a={})=>T(a),xSearch:(a={})=>W(a)},av=(0,d.lazySchema)(()=>(0,d.zodSchema)(e.z.looseObject({teamId:e.z.string().optional(),filePath:e.z.string().optional(),expiresAfter:e.z.number().int().min(3600).max(2592e3).optional()})));function aw(a){let b=encodeURIComponent(a);return"."===b?"%252E":".."===b?"%252E%252E":b}var ax=class{get provider(){return this.config.provider}constructor(a){this.config=a,this.specificationVersion="v4"}getFileId(a){let c=a.xai;if(null==c||""===c.trim())throw new b.InvalidArgumentError({argument:"file",message:"file reference is missing an 'xai' file id."});return c}getHeaders(a){return(0,d.combineHeaders)(this.config.headers(),a)}async uploadFile({data:a,mediaType:b,filename:c,abortSignal:e,headers:f,providerOptions:g}){let h,i;try{h=await (0,d.parseProviderOptions)({provider:"xai",providerOptions:g,schema:av})}catch(b){throw"stream"===a.type&&await a.stream.cancel(b).catch(()=>{}),b}let k=this.getHeaders(f),l=`${this.config.baseURL}/files`;if("stream"===a.type){let f=[];h?.expiresAfter!=null&&f.push({type:"field",name:"expires_after",value:String(h.expiresAfter)}),h?.teamId!=null&&f.push({type:"field",name:"team_id",value:h.teamId}),f.push({type:"file",name:"file",filename:c,mediaType:b,content:a.stream}),{value:i}=await (0,d.postMultipartStreamToApi)({url:l,headers:k,parts:f,failedResponseHandler:j,successfulResponseHandler:(0,d.createJsonResponseHandler)(o),abortSignal:e,fetch:this.config.fetch})}else{let f=new Blob([(0,d.convertInlineFileDataToUint8Array)(a)],{type:b}),g=new FormData;h?.expiresAfter!=null&&g.append("expires_after",String(h.expiresAfter)),h?.teamId!=null&&g.append("team_id",h.teamId),null!=c?g.append("file",f,c):g.append("file",f),{value:i}=await (0,d.postFormDataToApi)({url:l,headers:k,formData:g,failedResponseHandler:j,successfulResponseHandler:(0,d.createJsonResponseHandler)(o),abortSignal:e,fetch:this.config.fetch})}return{warnings:[],providerReference:{xai:i.id},...i.filename??c?{filename:i.filename??c}:{},...null!=b?{mediaType:b}:{},...null!=i.bytes?{byteSize:i.bytes}:{},...null!=i.created_at?{createdAt:new Date(1e3*i.created_at)}:{},...null!=i.expires_at?{expiresAt:new Date(1e3*i.expires_at)}:{},providerMetadata:{xai:this.toFileMetadata(i)}}}async getFileMetadata({file:a,abortSignal:b,headers:c}){let e=this.getFileId(a),{value:f}=await (0,d.getFromApi)({url:`${this.config.baseURL}/files/${aw(e)}`,headers:this.getHeaders(c),failedResponseHandler:j,successfulResponseHandler:(0,d.createJsonResponseHandler)(o),abortSignal:b,fetch:this.config.fetch,validateUrl:!1});return{warnings:[],providerReference:{xai:f.id},...null!=f.filename?{filename:f.filename}:{},...null!=f.bytes?{byteSize:f.bytes}:{},...null!=f.created_at?{createdAt:new Date(1e3*f.created_at)}:{},...null!=f.expires_at?{expiresAt:new Date(1e3*f.expires_at)}:{},providerMetadata:{xai:this.toFileMetadata(f)}}}async downloadFile({file:a,abortSignal:b,headers:c}){let e=this.getFileId(a),{value:f,responseHeaders:g}=await (0,d.getFromApi)({url:`${this.config.baseURL}/files/${aw(e)}/content`,headers:this.getHeaders(c),failedResponseHandler:j,successfulResponseHandler:(0,d.createBinaryStreamResponseHandler)(),abortSignal:b,fetch:this.config.fetch,validateUrl:!1}),h=g?.["content-type"]?.split(";")[0].trim();return{warnings:[],content:f,...h?{mediaType:h}:{}}}async deleteFile({file:a,abortSignal:b,headers:c}){let e=this.getFileId(a),{value:f}=await (0,d.deleteFromApi)({url:`${this.config.baseURL}/files/${aw(e)}`,headers:this.getHeaders(c),failedResponseHandler:j,successfulResponseHandler:(0,d.createJsonResponseHandler)(p),abortSignal:b,fetch:this.config.fetch});return{warnings:[],providerReference:{xai:f.id},deleted:f.deleted}}toFileMetadata(a){return{...null!=a.filename?{filename:a.filename}:{},...null!=a.purpose?{purpose:a.purpose}:{},...null!=a.bytes?{bytes:a.bytes}:{},...null!=a.created_at?{createdAt:a.created_at}:{},...null!=a.status?{status:a.status}:{},...null!=a.expires_at?{expiresAt:a.expires_at}:{}}}};let ay=e.z.string().min(1),az=e.z.enum(["480p","720p","1080p"]),aA=e.z.enum(["edit-video","extend-video","reference-to-video"]),aB=e.z.object({imageUrl:ay,timestampSeconds:e.z.number().positive()}),aC=e.z.object({filename:ay,expiresAfter:e.z.number().int().positive().max(2592e3).optional(),publicUrl:e.z.union([e.z.boolean(),e.z.object({expiresAfter:e.z.number().int().min(3600).max(2592e3).optional()})]).optional()}),aD={pollIntervalMs:e.z.number().positive().nullish(),pollTimeoutMs:e.z.number().positive().nullish(),resolution:az.nullish()},aE=e.z.looseObject({mode:aA.optional(),videoUrl:ay.optional(),referenceImageUrls:e.z.array(ay).min(1).max(7).optional(),referenceVoiceIds:e.z.array(ay).max(3).optional(),keyframes:e.z.array(aB).max(4).optional(),storageOptions:aC.optional(),user:e.z.string().optional(),...aD}),aF=(0,d.lazySchema)(()=>(0,d.zodSchema)(aE)),aG={"1920x1080":"1080p","1280x720":"720p","854x480":"480p","640x480":"480p"};function aH(a){return a.frameImages?.find(a=>"first_frame"===a.frameType)?.image}let aI=a=>null!=a.mediaType&&"video"===(0,d.getTopLevelMediaType)(a.mediaType),aJ=a=>null==a.mediaType||"image"===(0,d.getTopLevelMediaType)(a.mediaType),aK=a=>null!=a.mediaType&&"audio"===(0,d.getTopLevelMediaType)(a.mediaType);function aL(a){if("url"===a.type)return a.url;let b="string"==typeof a.data?a.data:(0,d.convertUint8ArrayToBase64)(a.data);return`data:${a.mediaType};base64,${b}`}function aM(a){return a.inputReferences?.some(aJ)??!1}function aN(a){return a.inputReferences?.some(aK)??!1}var aO=class{get provider(){return this.config.provider}constructor(a,b){this.modelId=a,this.config=b,this.specificationVersion="v4",this.maxVideosPerCall=1}async buildRequestBody(a){let b=[],c=await (0,d.parseProviderOptions)({provider:"xai",providerOptions:a.providerOptions,schema:aF}),e=function(a,b){if(b?.mode!=null)return b.mode;if(b?.videoUrl!=null)return"edit-video";let c=b?.referenceImageUrls!=null&&b.referenceImageUrls.length>0;if(aM(a)||aN(a)||c)return"reference-to-video"}(a,c),f="edit-video"===e,g="extend-video"===e,h="reference-to-video"===e;null!=a.fps&&b.push({type:"unsupported",feature:"fps",details:"xAI video models do not support custom FPS."}),null!=a.seed&&b.push({type:"unsupported",feature:"seed",details:"xAI video models do not support seed."}),null!=a.n&&a.n>1&&b.push({type:"unsupported",feature:"n",details:"xAI video models do not support generating multiple videos per call. Only 1 video will be generated."}),f&&null!=a.duration&&b.push({type:"unsupported",feature:"duration",details:"xAI video editing does not support custom duration."}),f&&null!=a.aspectRatio&&b.push({type:"unsupported",feature:"aspectRatio",details:"xAI video editing does not support custom aspect ratio."}),f&&(c?.resolution!=null||null!=a.resolution)&&b.push({type:"unsupported",feature:"resolution",details:"xAI video editing does not support custom resolution."}),g&&null!=a.aspectRatio&&b.push({type:"unsupported",feature:"aspectRatio",details:"xAI video extension does not support custom aspect ratio."}),g&&(c?.resolution!=null||null!=a.resolution)&&b.push({type:"unsupported",feature:"resolution",details:"xAI video extension does not support custom resolution."});let i={model:this.modelId,prompt:a.prompt},j=!f&&!g;if(f||null==a.duration||(i.duration=a.duration),f||g||null==a.aspectRatio||(i.aspect_ratio=a.aspectRatio),j&&c?.resolution!=null)i.resolution=c.resolution;else if(j&&null!=a.resolution){let c=aG[a.resolution];null!=c?i.resolution=c:b.push({type:"unsupported",feature:"resolution",details:`Unrecognized resolution "${a.resolution}". Use providerOptions.xai.resolution with "480p", "720p", or "1080p" instead.`})}if(null==a.generateAudio||f||g?null!=a.generateAudio&&b.push({type:"unsupported",feature:"generateAudio",details:`xAI ${f?"video editing":"video extension"} does not support generateAudio.`}):i.generate_audio=a.generateAudio,c?.storageOptions!=null){let{filename:a,expiresAfter:b,publicUrl:d}=c.storageOptions;i.storage_options={filename:a,...null!=b?{expires_after:b}:{},...null!=d?{public_url:"boolean"==typeof d?d:{...null!=d.expiresAfter?{expires_after:d.expiresAfter}:{}}}:{}}}c?.keyframes!=null&&c.keyframes.length>0&&("grok-imagine-video-1.5"!==this.modelId||f||g?b.push({type:"unsupported",feature:"keyframes",details:"grok-imagine-video-1.5"!==this.modelId?'xAI only supports keyframes with "grok-imagine-video-1.5".':`xAI ${f?"video editing":"video extension"} does not support keyframes.`}):i.keyframes=c.keyframes.map(a=>({image:{url:a.imageUrl},timestamp_s:a.timestampSeconds}))),f&&(i.video={url:c.videoUrl}),g&&(i.video={url:c.videoUrl});let k=aH(a)??a.image;if(null!=k)if(aI(k)){let c=null!=aH(a);b.push({type:"unsupported",feature:c?"frameImages":"image",details:'xAI does not accept a video as a start/frame image. The video was ignored. Use providerOptions.xai.mode "extend-video" to continue from a video instead.'})}else i.image={url:aL(k)};let l=a.frameImages?.find(a=>"last_frame"===a.frameType)?.image;if(null!=l&&("grok-imagine-video-1.5"!==this.modelId||f||g||aI(l)?b.push({type:"unsupported",feature:"frameImages",details:"grok-imagine-video-1.5"!==this.modelId?'xAI only supports last_frame with "grok-imagine-video-1.5". The last frame was ignored.':"xAI only accepts an image last_frame for video generation. The last frame was ignored."}):i.last_frame={url:aL(l)}),h){let d,e=function(a,b,c){if(null!=a.inputReferences&&a.inputReferences.length>0){let b=[];for(let d of a.inputReferences)if(!aK(d)){if(!aJ(d)){c.push({type:"unsupported",feature:"inputReferences",details:'xAI reference-to-video does not accept video references. The video reference was ignored. Use providerOptions.xai.mode "extend-video" to continue from a video.'});continue}b.push(d)}return b.length>0?b.map(a=>({url:aL(a)})):void 0}if(b?.referenceImageUrls!=null&&b.referenceImageUrls.length>0)return b.referenceImageUrls.map(a=>({url:a}))}(a,c,b),f=null!=(d=a.inputReferences?.filter(aK))&&d.length>0?d.map(a=>({url:aL(a)})):void 0;null!=e?i.reference_images=e:null==f&&b.push({type:"unsupported",feature:"referenceImages",details:"xAI reference-to-video requires at least one image reference. The video will be generated without reference images."});let g=[...f??[],...c?.referenceVoiceIds?.map(a=>({voice_id:a}))??[]];g.length>0&&(g.length>3&&b.push({type:"unsupported",feature:"inputReferences",details:"xAI reference-to-video supports at most 3 audio references. Only the first 3 were used."}),i.reference_audios=g.slice(0,3)),"1080p"===i.resolution&&(b.push({type:"unsupported",feature:"resolution",details:"xAI reference-to-video is limited to 720p. The request was downgraded from 1080p to 720p."}),i.resolution="720p")}if("1080p"===i.resolution&&"grok-imagine-video"===this.modelId&&b.push({type:"unsupported",feature:"resolution",details:'xAI model "grok-imagine-video" does not support 1080p. Use "grok-imagine-video-1.5" for 1080p, or a lower resolution. The request was sent with 1080p.'}),null!=a.inputReferences&&a.inputReferences.length>0&&!h&&b.push({type:"unsupported",feature:"inputReferences",details:aM(a)||aN(a)?"xAI only supports inputReferences for reference-to-video generation. The references were ignored.":"xAI reference-to-video requires at least one image or audio reference. The references were ignored."}),c?.referenceVoiceIds!=null&&c.referenceVoiceIds.length>0&&!h&&b.push({type:"unsupported",feature:"referenceVoiceIds",details:"xAI only supports reference voices for reference-to-video generation. The reference voices were ignored."}),g||c?.user===void 0||(i.user=c.user),null!=c)for(let[a,b]of Object.entries(c))["mode","pollIntervalMs","pollTimeoutMs","resolution","videoUrl","referenceImageUrls","referenceVoiceIds","keyframes","storageOptions","user"].includes(a)||(i[a]=b);return{body:i,warnings:b,xaiOptions:c,isEdit:f,isExtension:g,hasReferenceImages:h,effectiveMode:e}}async doStart(a){let c,e=this.config._internal?.currentDate?.()??new Date,{body:f,warnings:g,isEdit:h,isExtension:i}=await this.buildRequestBody(a),k=this.config.baseURL??"https://api.x.ai/v1";c=h?`${k}/videos/edits`:i?`${k}/videos/extensions`:`${k}/videos/generations`;let{value:l,responseHeaders:m}=await (0,d.postJsonToApi)({url:c,headers:(0,d.combineHeaders)(this.config.headers(),a.headers),body:f,failedResponseHandler:j,successfulResponseHandler:(0,d.createJsonResponseHandler)(aP),abortSignal:a.abortSignal,fetch:this.config.fetch}),n=l.request_id;if(!n)throw new b.AISDKError({name:"XAI_VIDEO_GENERATION_ERROR",message:"No request_id returned from xAI API."});return{operation:{requestId:n},warnings:g,response:{timestamp:e,modelId:this.modelId,headers:m}}}async doStatus(a){let b,c=this.config._internal?.currentDate?.()??new Date,{requestId:e}=a.operation,f=this.config.baseURL??"https://api.x.ai/v1",{value:g,responseHeaders:h}=await (0,d.getFromApi)({url:`${f}/videos/${"."===(b=encodeURIComponent(e))?"%252E":".."===b?"%252E%252E":b}`,validateUrl:!1,headers:(0,d.combineHeaders)(this.config.headers(),a.headers),successfulResponseHandler:aU,failedResponseHandler:j,abortSignal:a.abortSignal,fetch:this.config.fetch});if("expired"===g.status)return{status:"error",error:"Video generation request expired.",response:{timestamp:c,modelId:this.modelId,headers:h}};if("failed"===g.status){let a=g.error?.message??g.error?.code;return{status:"error",error:null!=a?`Video generation failed: ${a}`:"Video generation failed.",response:{timestamp:c,modelId:this.modelId,headers:h}}}if("done"===g.status||null==g.status&&g.video?.url){let a=g.video;if(a?.respect_moderation===!1)return{status:"error",error:"Video generation was blocked due to a content policy violation.",response:{timestamp:c,modelId:this.modelId,headers:h}};let b=a?.url??a?.file_output?.public_url??void 0;return b?{status:"completed",videos:[{type:"url",url:b,mediaType:"video/mp4"}],warnings:[],response:{timestamp:c,modelId:this.modelId,headers:h},providerMetadata:{xai:{requestId:e,videoUrl:b,...a?.duration!=null?{duration:a.duration}:{},...g.usage?.cost_in_usd_ticks!=null?{costInUsdTicks:g.usage.cost_in_usd_ticks}:{},...null!=g.progress?{progress:g.progress}:{},...a?.file_output!=null?{fileOutput:{fileId:a.file_output.file_id,filename:a.file_output.filename,...null!=a.file_output.expires_at?{expiresAt:a.file_output.expires_at}:{},...null!=a.file_output.public_url?{publicUrl:a.file_output.public_url}:{},...null!=a.file_output.public_url_error?{publicUrlError:a.file_output.public_url_error}:{},...null!=a.file_output.public_url_expires_at?{publicUrlExpiresAt:a.file_output.public_url_expires_at}:{}}}:{},...a?.storage_error!=null?{storageError:a.storage_error}:{}}}}:{status:"error",error:"Video generation completed but no video URL was returned.",response:{timestamp:c,modelId:this.modelId,headers:h}}}return{status:"pending",response:{timestamp:c,modelId:this.modelId,headers:h}}}};let aP=e.z.object({request_id:e.z.string().nullish()}),aQ=e.z.object({status:e.z.string().nullish(),video:e.z.object({url:e.z.string().nullish(),duration:e.z.number().nullish(),respect_moderation:e.z.boolean().nullish(),file_output:e.z.object({file_id:e.z.string(),filename:e.z.string(),expires_at:e.z.number().nullish(),public_url:e.z.string().nullish(),public_url_error:e.z.string().nullish(),public_url_expires_at:e.z.number().nullish()}).nullish(),storage_error:e.z.string().nullish()}).nullish(),model:e.z.string().nullish(),usage:e.z.object({cost_in_usd_ticks:e.z.number().nullish()}).nullish(),progress:e.z.number().nullish(),error:e.z.object({code:e.z.string().nullish(),message:e.z.string().nullish()}).nullish()}),aR=(0,d.createJsonResponseHandler)(aQ),aS=new TextDecoder;async function aT({response:a,url:c,requestBodyValues:e}){if(null==a.body)return"";let f=a.body.getReader(),g=[],h=0;try{for(;;){let{done:i,value:j}=await f.read();if(i)break;if((h+=j.length)>1048576)throw new b.APICallError({message:"xAI video status response exceeded 1048576 bytes",url:c,requestBodyValues:e,statusCode:a.status,responseHeaders:(0,d.extractResponseHeaders)(a)});g.push(j)}}finally{f.releaseLock()}let i=new Uint8Array(h),j=0;for(let a of g)i.set(a,j),j+=a.length;return aS.decode(i)}let aU=async a=>{if(202===a.response.status){let b=(0,d.extractResponseHeaders)(a.response),c=await aT(a);if(0===c.trim().length)return{responseHeaders:b,value:{status:"pending"}};let e=await (0,d.safeParseJSON)({text:c,schema:aQ});return{responseHeaders:b,value:e.success?e.value:{status:"pending"}}}return aR(a)},aV=(0,d.lazySchema)(()=>(0,d.zodSchema)(e.z.object({sampleRate:e.z.union([e.z.literal(8e3),e.z.literal(16e3),e.z.literal(22050),e.z.literal(24e3),e.z.literal(44100),e.z.literal(48e3)]).nullish(),bitRate:e.z.union([e.z.literal(32e3),e.z.literal(64e3),e.z.literal(96e3),e.z.literal(128e3),e.z.literal(192e3)]).nullish(),optimizeStreamingLatency:e.z.union([e.z.literal(0),e.z.literal(1),e.z.literal(2)]).nullish(),textNormalization:e.z.boolean().nullish(),withTimestamps:e.z.boolean().nullish(),replace:e.z.record(e.z.string(),e.z.string()).nullish()})));var aW=class a{static[c.WORKFLOW_SERIALIZE](a){return(0,d.serializeModelOptions)({modelId:a.modelId,config:a.config})}static[c.WORKFLOW_DESERIALIZE](b){return new a(b.modelId,b.config)}get provider(){return this.config.provider}constructor(a,b){this.modelId=a,this.config=b,this.specificationVersion="v4"}async getArgs({text:a,voice:b="eve",outputFormat:c="mp3",instructions:e,speed:f,language:g="auto",providerOptions:h}){let i=[],j=await (0,d.parseProviderOptions)({provider:"xai",providerOptions:h,schema:aV}),k="mp3";["mp3","wav","pcm","mulaw","alaw"].includes(c)?k=c:i.push({type:"unsupported",feature:"outputFormat",details:`Unsupported output format: ${c}. Using mp3 instead.`}),null!=e&&i.push({type:"unsupported",feature:"instructions",details:"xAI speech models do not support the `instructions` option. Use xAI speech tags in `text` to control delivery."});let l={codec:k};return j?.sampleRate!=null&&(l.sample_rate=j.sampleRate),j?.bitRate!=null&&("mp3"===k?l.bit_rate=j.bitRate:i.push({type:"unsupported",feature:"providerOptions",details:"xAI `bitRate` is supported only for mp3 output. It was ignored."})),{requestBody:{text:a,voice_id:b,language:g,output_format:l,speed:f,optimize_streaming_latency:j?.optimizeStreamingLatency,text_normalization:j?.textNormalization,with_timestamps:j?.withTimestamps,replace:j?.replace},warnings:i,withTimestamps:j?.withTimestamps===!0}}async doGenerate(a){let b,c,e=this.config._internal?.currentDate?.()??new Date,{requestBody:f,warnings:g,withTimestamps:h}=await this.getArgs(a),{value:i,responseHeaders:k,rawValue:l}=await (0,d.postJsonToApi)({url:`${this.config.baseURL}/tts`,headers:(0,d.combineHeaders)(this.config.headers?await (0,d.resolve)(this.config.headers):void 0,a.headers),body:f,failedResponseHandler:j,successfulResponseHandler:h?(0,d.createJsonResponseHandler)(aX):(0,d.createBinaryResponseHandler)(),abortSignal:a.abortSignal,fetch:this.config.fetch});b=i instanceof Uint8Array?i:null!=(c=i).audio?(0,d.convertBase64ToUint8Array)(c.audio):new Uint8Array(0);let m=k?.["x-trace-id"];return{audio:b,warnings:g,request:{body:JSON.stringify(f)},response:{timestamp:e,modelId:this.modelId,headers:k,body:l},providerMetadata:{xai:{...null!=m?{traceId:m}:{},...c?.duration!=null?{duration:c.duration}:{},...c?.content_type!=null?{contentType:c.content_type}:{},...c?.audio_timestamps!=null?{audioTimestamps:{graphChars:c.audio_timestamps.graph_chars,graphTimes:c.audio_timestamps.graph_times}}:{}}}}}};let aX=e.z.object({audio:e.z.string().nullish(),content_type:e.z.string().nullish(),duration:e.z.number().nullish(),audio_timestamps:e.z.object({graph_chars:e.z.array(e.z.string()),graph_times:e.z.array(e.z.tuple([e.z.number(),e.z.number()]))}).nullish()}),aY=(0,d.lazySchema)(()=>(0,d.zodSchema)(e.z.object({audioFormat:e.z.enum(["pcm","mulaw","alaw"]).nullish(),sampleRate:e.z.union([e.z.literal(8e3),e.z.literal(16e3),e.z.literal(22050),e.z.literal(24e3),e.z.literal(44100),e.z.literal(48e3)]).nullish(),language:e.z.string().nullish(),format:e.z.boolean().nullish(),multichannel:e.z.boolean().nullish(),channels:e.z.number().int().min(2).max(8).nullish(),diarize:e.z.boolean().nullish(),keyterm:e.z.union([e.z.string(),e.z.array(e.z.string())]).nullish(),fillerWords:e.z.boolean().nullish(),streaming:e.z.object({interimResults:e.z.boolean().optional(),endpointing:e.z.number().int().min(0).max(5e3).optional(),smartTurn:e.z.number().min(0).max(1).optional(),smartTurnTimeout:e.z.number().int().min(1).max(5e3).optional()}).optional()})));var aZ=class a{static[c.WORKFLOW_SERIALIZE](a){return(0,d.serializeModelOptions)({modelId:a.modelId,config:a.config})}static[c.WORKFLOW_DESERIALIZE](b){return new a(b.modelId,b.config)}get provider(){return this.config.provider}constructor(a,b){this.modelId=a,this.config=b,this.specificationVersion="v4"}async getArgs({audio:a,mediaType:b,providerOptions:c}){let e=await (0,d.parseProviderOptions)({provider:"xai",providerOptions:c,schema:aY}),f=new FormData;for(let[a,b]of Object.entries({audio_format:e?.audioFormat,sample_rate:e?.sampleRate,language:e?.language,format:e?.format,multichannel:e?.multichannel,channels:e?.channels,diarize:e?.diarize,filler_words:e?.fillerWords}))null!=b&&f.append(a,String(b));if(e?.keyterm!=null)for(let a of Array.isArray(e.keyterm)?e.keyterm:[e.keyterm])f.append("keyterm",a);let g=a instanceof Uint8Array?new Blob([a]):new Blob([(0,d.convertBase64ToUint8Array)(a)]),h=(0,d.mediaTypeToExtension)(b);return f.append("file",new File([g],"audio",{type:b}),`audio.${h}`),{formData:f,warnings:[]}}async doGenerate(a){let b=this.config._internal?.currentDate?.()??new Date,{formData:c,warnings:e}=await this.getArgs(a),{value:f,responseHeaders:g,rawValue:h}=await (0,d.postFormDataToApi)({url:`${this.config.baseURL??"https://api.x.ai/v1"}/stt`,headers:(0,d.combineHeaders)(this.config.headers?.(),a.headers),formData:c,failedResponseHandler:j,successfulResponseHandler:(0,d.createJsonResponseHandler)(a_),abortSignal:a.abortSignal,fetch:this.config.fetch});return{text:f.text,segments:f.words?.map(a=>({text:a.text,startSecond:a.start,endSecond:a.end}))??[],language:f.language||void 0,durationInSeconds:f.duration??void 0,warnings:e,response:{timestamp:b,modelId:this.modelId,headers:g,body:h}}}async doStream(a){var c;let e=this.config._internal?.currentDate?.()??new Date,f=[],g=await (0,d.parseProviderOptions)({provider:"xai",providerOptions:a.providerOptions,schema:aY});if(g?.multichannel===!0&&null==g.channels)throw new b.InvalidArgumentError({argument:"providerOptions",message:"providerOptions.xai.channels is required when providerOptions.xai.multichannel is true"});g?.format!=null&&f.push({type:"unsupported",feature:"providerOptions.xai.format",details:"xAI streaming transcription does not support format."}),g?.audioFormat==null&&"audio/pcm"!==(c=a.inputAudioFormat.type)&&"audio/pcmu"!==c&&"audio/pcma"!==c&&f.push({type:"other",message:`Unrecognized inputAudioFormat.type "${a.inputAudioFormat.type}"; falling back to raw PCM encoding. Use audio/pcm, audio/pcmu, or audio/pcma, or set providerOptions.xai.audioFormat explicitly.`});let h=function({baseURL:a,inputAudioFormat:b,providerOptions:c}){let e=(0,d.toWebSocketUrl)(`${a}/stt`);if(a$(e,"sample_rate",c?.sampleRate??b.rate),a$(e,"encoding",c?.audioFormat??function(a){switch(a){case"audio/pcmu":return"mulaw";case"audio/pcma":return"alaw";default:return"pcm"}}(b.type)),a$(e,"language",c?.language),a$(e,"diarize",c?.diarize),a$(e,"filler_words",c?.fillerWords),a$(e,"multichannel",c?.multichannel),a$(e,"channels",c?.channels),a$(e,"interim_results",c?.streaming?.interimResults),a$(e,"endpointing",c?.streaming?.endpointing),a$(e,"smart_turn",c?.streaming?.smartTurn),a$(e,"smart_turn_timeout",c?.streaming?.smartTurnTimeout),c?.keyterm!=null)for(let a of Array.isArray(c.keyterm)?c.keyterm:[c.keyterm])e.searchParams.append("keyterm",a);return e}({baseURL:this.config.baseURL??"https://api.x.ai/v1",inputAudioFormat:a.inputAudioFormat,providerOptions:g}),i=(0,d.combineHeaders)(this.config.headers?.(),a.headers);return{request:{body:h.toString()},response:{timestamp:e,modelId:this.modelId},stream:function({webSocket:a,url:b,headers:c,warnings:e,language:f,expectedDoneCount:g,audio:h,abortSignal:i,includeRawChunks:j}){let k=!1,l=()=>{};return new ReadableStream({start:m=>{let n,o,p,q=new Map,r=new Map,s=new Map;l=a=>{null!=o?o.cancel().catch(()=>{}):h.cancel().catch(()=>{}),p?.close(a)};let t=a=>{k||(k=!0,l(),m.error(a))},u=async a=>{o=h.getReader();try{for(;;){let{done:b,value:c}=await o.read();if(b||k)break;a.send(c instanceof Uint8Array?c:(0,d.convertBase64ToUint8Array)(c)),await (0,d.waitForWebSocketBufferDrain)(a)}}finally{o.releaseLock(),o=void 0}k||a.send(JSON.stringify({type:"audio.done"}))};p=(0,d.connectToWebSocket)({url:b,headers:c,webSocket:a,abortSignal:i,onAbort:t,onProcessingError:t,onMessageText:async a=>{let b=await (0,d.safeParseJSON)({text:a});if(!b.success)return;let c=b.value;switch(j&&m.enqueue({type:"raw",rawValue:c}),c.type){case"transcript.created":{m.enqueue({type:"stream-start",warnings:e});let a=p?.socket;if(null==a){t(Error("WebSocket is not connected."));break}u(a).catch(t);break}case"transcript.partial":{var h,i;let a=null==(h=c.channel_index)?void 0:`channel-${h}`,b=c.channel_index??0;if(c.is_final&&c.speech_final){let d={...null!=(i=c).start?{startSecond:i.start}:{},...null!=i.start&&null!=i.duration?{endSecond:i.start+i.duration}:{}};c.text&&r.set(b,[...r.get(b)??[],c.text]),s.delete(b),m.enqueue({type:"transcript-final",id:a,text:c.text??"",...d,channelIndex:c.channel_index})}else s.set(b,c.text??""),m.enqueue({type:"transcript-partial",id:a,text:c.text??"",startSecond:c.start,durationInSeconds:c.duration,channelIndex:c.channel_index});break}case"transcript.done":{let a=c.channel_index??0,b=[...r.get(a)??[],...s.get(a)?[s.get(a)]:[]].join(" ");q.set(a,c.text||b),n=c.duration??n,(()=>{if(k||q.size<g)return;k=!0;let a=[...q.entries()].sort(([a],[b])=>a-b).map(([,a])=>a).join("\n");m.enqueue({type:"finish",text:a,segments:[],language:f,durationInSeconds:n}),m.close(),l(1e3)})();break}case"error":t(Error(c.message??"xAI STT error"))}},onSocketError:()=>{t(Error("xAI streaming transcription error."+(null==a?" Note: the native WebSocket implementation in browsers, Node.js, Deno, and Bun cannot send the Authorization header required by xAI. Pass a header-capable WebSocket implementation (e.g. the 'ws' package) via createXai({ webSocket }).":"")))},onClose:()=>{k||(k=!0,l(),m.close())}})},cancel:()=>{k||(k=!0,l())}})}({webSocket:this.config.webSocket,url:h,headers:i,warnings:f,language:g?.language??void 0,expectedDoneCount:g?.multichannel===!0?g.channels:1,audio:a.audio,abortSignal:a.abortSignal,includeRawChunks:a.includeRawChunks})}}};function a$(a,b,c){null!=c&&a.searchParams.set(b,String(c))}let a_=e.z.object({text:e.z.string(),language:e.z.string().nullish(),duration:e.z.number().nullish(),words:e.z.array(e.z.object({text:e.z.string(),start:e.z.number(),end:e.z.number()})).nullish()});function a0(a={}){let c=(0,d.withoutTrailingSlash)(a.baseURL??"https://api.x.ai/v1"),e=()=>(0,d.withUserAgentSuffix)({Authorization:`Bearer ${(0,d.loadApiKey)({apiKey:a.apiKey,environmentVariableName:"XAI_API_KEY",description:"xAI API key"})}`,...a.headers},"ai-sdk-xai/5.0.13"),f=b=>new $(b,{provider:"xai.responses",baseURL:c,headers:e,generateId:d.generateId,fetch:a.fetch}),g=b=>new l(b,{provider:"xai.image",baseURL:c,headers:e,fetch:a.fetch}),h=b=>new aO(b,{provider:"xai.video",baseURL:c,headers:e,fetch:a.fetch}),i=b=>new an(b,{provider:"xai.realtime",baseURL:c??"https://api.x.ai/v1",headers:e,fetch:a.fetch}),j=()=>new aW("",{provider:"xai.speech",baseURL:c,headers:e,fetch:a.fetch}),k=()=>new aZ("",{provider:"xai.transcription",baseURL:c,headers:e,fetch:a.fetch,webSocket:a.webSocket}),m=Object.assign(a=>i(a),{getToken:async a=>{let b=await i(a.model).doCreateClientSecret({sessionConfig:a.sessionConfig,expiresAfterSeconds:a.expiresAfterSeconds});return{token:b.token,url:b.url,expiresAt:b.expiresAt}}}),n=a=>f(a);return n.specificationVersion="v4",n.languageModel=f,n.responses=f,n.embeddingModel=a=>{throw new b.NoSuchModelError({modelId:a,modelType:"embeddingModel"})},n.textEmbeddingModel=n.embeddingModel,n.imageModel=g,n.image=g,n.videoModel=h,n.video=h,n.experimental_realtime=m,n.speechModel=j,n.speech=j,n.transcriptionModel=k,n.transcription=k,n.files=()=>new ax({provider:"xai.files",baseURL:c,headers:e,fetch:a.fetch}),n.experimental_batch=()=>new aj({provider:"xai.batch",config:{provider:"xai.responses",baseURL:c,headers:e,generateId:d.generateId,fetch:a.fetch}}),n.tools=au,n}a0(),a.s(["createXai",0,a0])},23574,a=>{"use strict";let b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y;var z=a.i(792509);let A={EMPTY_STRING:"Address must be a non-empty string",FORBIDDEN_UNICODE:"Address contains forbidden Unicode characters",MULTIPLE_AT_CHAR:"Address cannot contain more than one @ character",MISSING_AT_CHAR:"Address must contain one @ character",EMPTY_LOCAL:"Address local part cannot be empty",ADDRESS_TOO_LONG:"Address too long",LOCAL_TOO_LONG:"Address local part too long",EMPTY_LOCAL_SEGMENT:"Address local part contains empty dot-separated segment",INVALID_LOCAL_CHARS:"Address local part contains invalid character",DOMAIN_NON_EMPTY_STRING:"Domain must be a non-empty string",DOMAIN_TOO_LONG:"Domain too long",DOMAIN_INVALID_UNICODE_CHARS:"Domain contains forbidden Unicode characters",DOMAIN_INVALID_CHARS:"Domain contains invalid character",DOMAIN_INVALID_TLDS_CHARS:"Domain contains invalid tld character",DOMAIN_SEGMENTS_COUNT:"Domain lacks the minimum required number of segments",DOMAIN_SEGMENTS_COUNT_MAX:"Domain contains too many segments",DOMAIN_FORBIDDEN_TLDS:"Domain uses forbidden TLD",DOMAIN_EMPTY_SEGMENT:"Domain contains empty dot-separated segment",DOMAIN_LONG_SEGMENT:"Domain contains dot-separated segment that is too long"};function B(a){return{code:a,error:A[a]}}let C=/[^\x00-\x7f]/,D=/[\x00-\x20@\:\/\\#!\$&\'\(\)\*\+,;=\?]/,E=/^[a-zA-Z](?:[a-zA-Z0-9\-]*[a-zA-Z0-9])?$/,F=/^[a-zA-Z0-9](?:[a-zA-Z0-9\-]*[a-zA-Z0-9])?$/,G=/^[a-zA-Z0-9_](?:[a-zA-Z0-9\-]*[a-zA-Z0-9])?$/,H=z.URL||URL;function I(a,b={}){if(!a)return B("DOMAIN_NON_EMPTY_STRING");if("string"!=typeof a)throw Error("Invalid input: domain must be a string");if(a.length>256)return B("DOMAIN_TOO_LONG");if(C.test(a)){if(!1===b.allowUnicode)return B("DOMAIN_INVALID_UNICODE_CHARS");a=a.normalize("NFC")}if(D.test(a))return B("DOMAIN_INVALID_CHARS");a=function(a){a.includes("%")&&(a=a.replace(/%/g,"%25"));try{return new H(`http://${a}`).host}catch(b){return a}}(a),b.allowFullyQualified&&"."===a[a.length-1]&&(a=a.slice(0,-1));let c=b.minDomainSegments||2,d=a.split(".");if(d.length<c)return B("DOMAIN_SEGMENTS_COUNT");if(b.maxDomainSegments&&d.length>b.maxDomainSegments)return B("DOMAIN_SEGMENTS_COUNT_MAX");let e=b.tlds;if(e){let a=d[d.length-1].toLowerCase();if(e.allow){if(!e.allow.has(a))return B("DOMAIN_FORBIDDEN_TLDS")}else if(e.deny.has(a))return B("DOMAIN_FORBIDDEN_TLDS")}for(let a=0;a<d.length;++a){let c=d[a];if(!c.length)return B("DOMAIN_EMPTY_SEGMENT");if(c.length>63)return B("DOMAIN_LONG_SEGMENT");if(a<d.length-1){if(b.allowUnderscore){if(!G.test(c))return B("DOMAIN_INVALID_CHARS")}else if(!F.test(c))return B("DOMAIN_INVALID_CHARS")}else if(!E.test(c))return B("DOMAIN_INVALID_TLDS_CHARS")}return null}function J(a,b){return!I(a,b)}function K(a){if(a){if("object"!=typeof a.tlds)throw Error("Invalid options: tlds must be a boolean or an object");if(a.tlds.allow){if(a.tlds.allow instanceof Set==!1)throw Error("Invalid options: tlds.allow must be a Set object or true");if(a.tlds.deny)throw Error("Invalid options: cannot specify both tlds.allow and tlds.deny lists")}else if(a.tlds.deny instanceof Set==!1)throw Error("Invalid options: tlds.deny must be a Set object")}}a.s(["analyzeDomain",0,I,"isDomainValid",0,J,"validateDomainOptions",0,K],615564);var L=a.i(224361);let M=/[^\x00-\x7f]/,N=new(L.TextEncoder||TextEncoder);function O(a,b){return Q(a,b)}function P(a,b){return!Q(a,b)}function Q(a,b={}){if("string"!=typeof a)throw Error("Invalid input: email must be a string");if(!a)return B("EMPTY_STRING");let c=!M.test(a);if(!c){if(!1===b.allowUnicode)return B("FORBIDDEN_UNICODE");a=a.normalize("NFC")}let d=a.split("@");if(2!==d.length)return d.length>2?B("MULTIPLE_AT_CHAR"):B("MISSING_AT_CHAR");let[e,f]=d;if(!e)return B("EMPTY_LOCAL");if(!b.ignoreLength){if(a.length>254)return B("ADDRESS_TOO_LONG");if(N.encode(e).length>64)return B("LOCAL_TOO_LONG")}return function(a,b){for(let d of a.split(".")){if(!d.length)return B("EMPTY_LOCAL_SEGMENT");if(b){if(!R.test(d))return B("INVALID_LOCAL_CHARS");continue}for(let a of d){var c;if(R.test(a))continue;let b=(c=a,Array.from(N.encode(c),a=>String.fromCharCode(a)).join(""));if(!S.test(b))return B("INVALID_LOCAL_CHARS")}}return null}(e,c)||I(f,b)}let R=/^[\w!#\$%&'\*\+\-/=\?\^`\{\|\}~]+$/,S=RegExp("(?:[\\xc2-\\xdf][\\x80-\\xbf])|(?:\\xe0[\\xa0-\\xbf][\\x80-\\xbf])|(?:[\\xe1-\\xec][\\x80-\\xbf]{2})|(?:\\xed[\\x80-\\x9f][\\x80-\\xbf])|(?:[\\xee-\\xef][\\x80-\\xbf]{2})|(?:\\xf0[\\x90-\\xbf][\\x80-\\xbf]{2})|(?:[\\xf1-\\xf3][\\x80-\\xbf]{3})|(?:\\xf4[\\x80-\\x8f][\\x80-\\xbf]{2})");a.s(["analyzeEmail",0,O,"isEmailValid",0,P],820124),a.i(356988),a.i(756808),a.i(518806),a.i(119867),a.i(894705),a.i(536048);var T=a.i(6498),T=T,T=T,U=a.i(813942),U=U;let V=(b={},d="["+(c="\\dA-Fa-f")+"]",f="!\\$&'\\(\\)\\*\\+,;=",i="["+(h=(e="\\w-\\.~")+(g="%"+c)+f+":@")+"]",b.ipv4address="(?:"+(j="(?:0{0,2}\\d|0?[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])")+"\\.){3}"+j,l="(?:"+(k=d+"{1,4}")+":"+k+"|"+b.ipv4address+")",m="(?:(?:"+k+":){0,1}"+k+")?::(?:"+k+":){3}"+l,n="(?:(?:"+k+":){0,2}"+k+")?::(?:"+k+":){2}"+l,o="(?:(?:"+k+":){0,3}"+k+")?::"+k+":"+l,b.ipv4Cidr="(?:\\d|[1-2]\\d|3[0-2])",b.ipv6Cidr="(?:0{0,2}\\d|0?[1-9]\\d|1[01]\\d|12[0-8])",b.ipv6address="(?:(?:"+k+":){6}"+l+"|"+("::(?:"+k)+":){5}"+l+"|"+("(?:"+k+")?::(?:"+k)+":){4}"+l+"|"+m+"|"+n+"|"+o+"|"+("(?:(?:"+k+":){0,4}"+k)+")?::"+l+"|"+("(?:(?:"+k+":){0,5}"+k)+")?::"+k+"|"+("(?:(?:"+k+":){0,6}")+k+")?::)",b.ipvFuture="v"+d+"+\\.["+e+f+":]+",b.scheme="[a-zA-Z][a-zA-Z\\d+-\\.]*",b.schemeRegex=new RegExp(b.scheme),r="(?:"+(p="["+e+g+f+":]*")+"@)?"+(q="(?:"+("\\[(?:"+b.ipv6address+"|"+b.ipvFuture+")\\]")+"|"+b.ipv4address+"|"+("["+e+g)+f+"]{1,255})")+"(?::\\d*)?",s="(?:"+p+"@)?("+q+")(?::\\d*)?",t=i+"*",w="\\/(?:"+(u=i+"+")+(v="(?:\\/"+t+")*")+")?",x=u+v,y="["+e+g+f+"@]+"+v,b.hierPart="(?:(?:\\/\\/"+r+v+")|"+w+"|"+x+"|"+("(?:\\/\\/\\/"+t)+v+"))",b.hierPartCapture="(?:(?:\\/\\/"+s+v+")|"+w+"|"+x+")",b.relativeRef="(?:(?:\\/\\/"+r+v+")|"+w+"|"+y+"|)",b.relativeRefCapture="(?:(?:\\/\\/"+s+v+")|"+w+"|"+y+"|)",b.query="["+h+"\\/\\?]*(?=#|$)",b.queryWithSquareBrackets="["+h+"\\[\\]\\/\\?]*(?=#|$)",b.fragment="["+h+"\\/\\?]*",b),W={v4Cidr:V.ipv4Cidr,v6Cidr:V.ipv6Cidr,ipv4:V.ipv4address,ipv6:V.ipv6address,ipvfuture:V.ipvFuture};function X(a){let b="(?:\\?"+(a.allowQuerySquareBrackets?V.queryWithSquareBrackets:V.query)+")?(?:#"+V.fragment+")?",c=a.domain?V.relativeRefCapture:V.relativeRef;if(a.relativeOnly)return Y(c+b);let d="";if(a.scheme){(0,T.default)(a.scheme instanceof RegExp||"string"==typeof a.scheme||Array.isArray(a.scheme),"scheme must be a RegExp, String, or Array");let b=[].concat(a.scheme);(0,T.default)(b.length>=1,"scheme must have at least 1 scheme specified");let c=[];for(let a=0;a<b.length;++a){let d=b[a];(0,T.default)(d instanceof RegExp||"string"==typeof d,"scheme at position "+a+" must be a RegExp or String"),d instanceof RegExp?c.push(d.source.toString()):((0,T.default)(V.schemeRegex.test(d),"scheme at position "+a+" must be a valid scheme"),c.push((0,U.default)(d)))}d=c.join("|")}let e="(?:"+(d?"(?:"+d+")":V.scheme)+":"+(a.domain?V.hierPartCapture:V.hierPart)+")";return Y((a.allowRelative?"(?:"+e+"|"+c+")":e)+b,d)}function Y(a,b=null){return{raw:a=`(?=.)(?!https?:/(?:$|[^/]))(?!https?:///)(?!https?:[^/])${a}`,regex:RegExp(`^${a}$`),scheme:b}}let Z=X({});a.s([],542335),a.i(542335),a.i(615564),a.i(820124);let $={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15},_=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,7,7,7,7,7,7,7,7,7,7,7,7,8,7,7,10,9,9,9,11,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,24,36,48,60,72,84,96,0,12,12,12,0,0,0,0,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,0,0,24,24,24,0,0,0,0,0,0,0,0,0,24,24,0,0,0,0,0,0,0,0,0,0,48,48,48,0,0,0,0,0,0,0,0,0,0,48,48,0,0,0,0,0,0,0,0,0,48,0,0,0,0,0,0,0,0,0,0,127,63,63,63,0,31,15,15,15,7,7,7];function aa(a,b){let c=$[a];return void 0===c?255:c<<b}a.s(["analyzeDomain",0,I,"analyzeEmail",0,O,"errorCodes",0,A,"ipRegex",0,function(a={}){let b=a.cidr||"optional";(0,T.default)(["required","optional","forbidden"].includes(b),"options.cidr must be one of required, optional, forbidden"),(0,T.default)(void 0===a.version||"string"==typeof a.version||Array.isArray(a.version),"options.version must be a string or an array of string");let c=a.version||["ipv4","ipv6","ipvfuture"];for(let a of(Array.isArray(c)||(c=[c]),(0,T.default)(c.length>=1,"options.version must have at least 1 version specified"),c))(0,T.default)("string"==typeof a&&a===a.toLowerCase(),"Invalid options.version value"),(0,T.default)(["ipv4","ipv6","ipvfuture"].includes(a),"options.version contains unknown version "+a+" - must be one of ipv4, ipv6, ipvfuture");let d=(c=Array.from(new Set(c))).map(a=>{if("forbidden"===b)return W[a];let c=`\\/${"ipv4"===a?W.v4Cidr:W.v6Cidr}`;return"required"===b?`${W[a]}${c}`:`${W[a]}(?:${c})?`}),e=`(?:${d.join("|")})`;return{cidr:b,versions:c,regex:RegExp(`^${e}$`),raw:e}},"isDomainValid",0,J,"isEmailValid",0,P,"uriDecode",0,function(a){let b=a.indexOf("%");if(-1===b)return a;let c="",d=0,e=0,f=b,g=12;for(;b>-1&&b<a.length;){let h=aa(a[b+1],4)|aa(a[b+2],0),i=_[h];if(g=_[256+g+i],e=e<<6|h&_[364+i],12===g){c+=a.slice(d,f),c+=e<=65535?String.fromCharCode(e):String.fromCharCode(55232+(e>>10),56320+(1023&e)),e=0,d=b+3,f=b=a.indexOf("%",d);continue}if(0===g||(b+=3)>=a.length||"%"!==a[b])return null}return c+a.slice(d)},"uriRegex",0,function(a={}){return a.scheme||a.allowRelative||a.relativeOnly||a.allowQuerySquareBrackets||a.domain?X(a):Z},"validateDomainOptions",0,K],23574)},83905,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.TLDS=void 0,c.TLDS=["AAA","AARP","ABB","ABBOTT","ABBVIE","ABC","ABLE","ABOGADO","ABUDHABI","AC","ACADEMY","ACCENTURE","ACCOUNTANT","ACCOUNTANTS","ACO","ACTOR","AD","ADS","ADULT","AE","AEG","AERO","AETNA","AF","AFL","AFRICA","AG","AGAKHAN","AGENCY","AI","AIG","AIRBUS","AIRFORCE","AIRTEL","AKDN","AL","ALIBABA","ALIPAY","ALLFINANZ","ALLSTATE","ALLY","ALSACE","ALSTOM","AM","AMAZON","AMERICANEXPRESS","AMERICANFAMILY","AMEX","AMFAM","AMICA","AMSTERDAM","ANALYTICS","ANDROID","ANQUAN","ANZ","AO","AOL","APARTMENTS","APP","APPLE","AQ","AQUARELLE","AR","ARAB","ARAMCO","ARCHI","ARMY","ARPA","ART","ARTE","AS","ASDA","ASIA","ASSOCIATES","AT","ATHLETA","ATTORNEY","AU","AUCTION","AUDI","AUDIBLE","AUDIO","AUSPOST","AUTHOR","AUTO","AUTOS","AW","AWS","AX","AXA","AZ","AZURE","BA","BABY","BAIDU","BANAMEX","BAND","BANK","BAR","BARCELONA","BARCLAYCARD","BARCLAYS","BAREFOOT","BARGAINS","BASEBALL","BASKETBALL","BAUHAUS","BAYERN","BB","BBC","BBT","BBVA","BCG","BCN","BD","BE","BEATS","BEAUTY","BEER","BERLIN","BEST","BESTBUY","BET","BF","BG","BH","BHARTI","BI","BIBLE","BID","BIKE","BING","BINGO","BIO","BIZ","BJ","BLACK","BLACKFRIDAY","BLOCKBUSTER","BLOG","BLOOMBERG","BLUE","BM","BMS","BMW","BN","BNPPARIBAS","BO","BOATS","BOEHRINGER","BOFA","BOM","BOND","BOO","BOOK","BOOKING","BOSCH","BOSTIK","BOSTON","BOT","BOUTIQUE","BOX","BR","BRADESCO","BRIDGESTONE","BROADWAY","BROKER","BROTHER","BRUSSELS","BS","BT","BUILD","BUILDERS","BUSINESS","BUY","BUZZ","BV","BW","BY","BZ","BZH","CA","CAB","CAFE","CAL","CALL","CALVINKLEIN","CAM","CAMERA","CAMP","CANON","CAPETOWN","CAPITAL","CAPITALONE","CAR","CARAVAN","CARDS","CARE","CAREER","CAREERS","CARS","CASA","CASE","CASH","CASINO","CAT","CATERING","CATHOLIC","CBA","CBN","CBRE","CC","CD","CENTER","CEO","CERN","CF","CFA","CFD","CG","CH","CHANEL","CHANNEL","CHARITY","CHASE","CHAT","CHEAP","CHINTAI","CHRISTMAS","CHROME","CHURCH","CI","CIPRIANI","CIRCLE","CISCO","CITADEL","CITI","CITIC","CITY","CK","CL","CLAIMS","CLEANING","CLICK","CLINIC","CLINIQUE","CLOTHING","CLOUD","CLUB","CLUBMED","CM","CN","CO","COACH","CODES","COFFEE","COLLEGE","COLOGNE","COM","COMMBANK","COMMUNITY","COMPANY","COMPARE","COMPUTER","COMSEC","CONDOS","CONSTRUCTION","CONSULTING","CONTACT","CONTRACTORS","COOKING","COOL","COOP","CORSICA","COUNTRY","COUPON","COUPONS","COURSES","CPA","CR","CREDIT","CREDITCARD","CREDITUNION","CRICKET","CROWN","CRS","CRUISE","CRUISES","CU","CUISINELLA","CV","CW","CX","CY","CYMRU","CYOU","CZ","DAD","DANCE","DATA","DATE","DATING","DATSUN","DAY","DCLK","DDS","DE","DEAL","DEALER","DEALS","DEGREE","DELIVERY","DELL","DELOITTE","DELTA","DEMOCRAT","DENTAL","DENTIST","DESI","DESIGN","DEV","DHL","DIAMONDS","DIET","DIGITAL","DIRECT","DIRECTORY","DISCOUNT","DISCOVER","DISH","DIY","DJ","DK","DM","DNP","DO","DOCS","DOCTOR","DOG","DOMAINS","DOT","DOWNLOAD","DRIVE","DTV","DUBAI","DUPONT","DURBAN","DVAG","DVR","DZ","EARTH","EAT","EC","ECO","EDEKA","EDU","EDUCATION","EE","EG","EMAIL","EMERCK","ENERGY","ENGINEER","ENGINEERING","ENTERPRISES","EPSON","EQUIPMENT","ER","ERICSSON","ERNI","ES","ESQ","ESTATE","ET","EU","EUROVISION","EUS","EVENTS","EXCHANGE","EXPERT","EXPOSED","EXPRESS","EXTRASPACE","FAGE","FAIL","FAIRWINDS","FAITH","FAMILY","FAN","FANS","FARM","FARMERS","FASHION","FAST","FEDEX","FEEDBACK","FERRARI","FERRERO","FI","FIDELITY","FIDO","FILM","FINAL","FINANCE","FINANCIAL","FIRE","FIRESTONE","FIRMDALE","FISH","FISHING","FIT","FITNESS","FJ","FK","FLICKR","FLIGHTS","FLIR","FLORIST","FLOWERS","FLY","FM","FO","FOO","FOOD","FOOTBALL","FORD","FOREX","FORSALE","FORUM","FOUNDATION","FOX","FR","FREE","FRESENIUS","FRL","FROGANS","FRONTIER","FTR","FUJITSU","FUN","FUND","FURNITURE","FUTBOL","FYI","GA","GAL","GALLERY","GALLO","GALLUP","GAME","GAMES","GAP","GARDEN","GAY","GB","GBIZ","GD","GDN","GE","GEA","GENT","GENTING","GEORGE","GF","GG","GGEE","GH","GI","GIFT","GIFTS","GIVES","GIVING","GL","GLASS","GLE","GLOBAL","GLOBO","GM","GMAIL","GMBH","GMO","GMX","GN","GODADDY","GOLD","GOLDPOINT","GOLF","GOODYEAR","GOOG","GOOGLE","GOP","GOT","GOV","GP","GQ","GR","GRAINGER","GRAPHICS","GRATIS","GREEN","GRIPE","GROCERY","GROUP","GS","GT","GU","GUCCI","GUGE","GUIDE","GUITARS","GURU","GW","GY","HAIR","HAMBURG","HANGOUT","HAUS","HBO","HDFC","HDFCBANK","HEALTH","HEALTHCARE","HELP","HELSINKI","HERE","HERMES","HIPHOP","HISAMITSU","HITACHI","HIV","HK","HKT","HM","HN","HOCKEY","HOLDINGS","HOLIDAY","HOMEDEPOT","HOMEGOODS","HOMES","HOMESENSE","HONDA","HORSE","HOSPITAL","HOST","HOSTING","HOT","HOTELS","HOTMAIL","HOUSE","HOW","HR","HSBC","HT","HU","HUGHES","HYATT","HYUNDAI","IBM","ICBC","ICE","ICU","ID","IE","IEEE","IFM","IKANO","IL","IM","IMAMAT","IMDB","IMMO","IMMOBILIEN","IN","INC","INDUSTRIES","INFINITI","INFO","ING","INK","INSTITUTE","INSURANCE","INSURE","INT","INTERNATIONAL","INTUIT","INVESTMENTS","IO","IPIRANGA","IQ","IR","IRISH","IS","ISMAILI","IST","ISTANBUL","IT","ITAU","ITV","JAGUAR","JAVA","JCB","JE","JEEP","JETZT","JEWELRY","JIO","JLL","JM","JMP","JNJ","JO","JOBS","JOBURG","JOT","JOY","JP","JPMORGAN","JPRS","JUEGOS","JUNIPER","KAUFEN","KDDI","KE","KERRYHOTELS","KERRYPROPERTIES","KFH","KG","KH","KI","KIA","KIDS","KIM","KINDLE","KITCHEN","KIWI","KM","KN","KOELN","KOMATSU","KOSHER","KP","KPMG","KPN","KR","KRD","KRED","KUOKGROUP","KW","KY","KYOTO","KZ","LA","LACAIXA","LAMBORGHINI","LAMER","LAND","LANDROVER","LANXESS","LASALLE","LAT","LATINO","LATROBE","LAW","LAWYER","LB","LC","LDS","LEASE","LECLERC","LEFRAK","LEGAL","LEGO","LEXUS","LGBT","LI","LIDL","LIFE","LIFEINSURANCE","LIFESTYLE","LIGHTING","LIKE","LILLY","LIMITED","LIMO","LINCOLN","LINK","LIVE","LIVING","LK","LLC","LLP","LOAN","LOANS","LOCKER","LOCUS","LOL","LONDON","LOTTE","LOTTO","LOVE","LPL","LPLFINANCIAL","LR","LS","LT","LTD","LTDA","LU","LUNDBECK","LUXE","LUXURY","LV","LY","MA","MADRID","MAIF","MAISON","MAKEUP","MAN","MANAGEMENT","MANGO","MAP","MARKET","MARKETING","MARKETS","MARRIOTT","MARSHALLS","MATTEL","MBA","MC","MCKINSEY","MD","ME","MED","MEDIA","MEET","MELBOURNE","MEME","MEMORIAL","MEN","MENU","MERCK","MERCKMSD","MG","MH","MIAMI","MICROSOFT","MIL","MINI","MINT","MIT","MITSUBISHI","MK","ML","MLB","MLS","MM","MMA","MN","MO","MOBI","MOBILE","MODA","MOE","MOI","MOM","MONASH","MONEY","MONSTER","MORMON","MORTGAGE","MOSCOW","MOTO","MOTORCYCLES","MOV","MOVIE","MP","MQ","MR","MS","MSD","MT","MTN","MTR","MU","MUSEUM","MUSIC","MV","MW","MX","MY","MZ","NA","NAB","NAGOYA","NAME","NAVY","NBA","NC","NE","NEC","NET","NETBANK","NETFLIX","NETWORK","NEUSTAR","NEW","NEWS","NEXT","NEXTDIRECT","NEXUS","NF","NFL","NG","NGO","NHK","NI","NICO","NIKE","NIKON","NINJA","NISSAN","NISSAY","NL","NO","NOKIA","NORTON","NOW","NOWRUZ","NOWTV","NP","NR","NRA","NRW","NTT","NU","NYC","NZ","OBI","OBSERVER","OFFICE","OKINAWA","OLAYAN","OLAYANGROUP","OLLO","OM","OMEGA","ONE","ONG","ONL","ONLINE","OOO","OPEN","ORACLE","ORANGE","ORG","ORGANIC","ORIGINS","OSAKA","OTSUKA","OTT","OVH","PA","PAGE","PANASONIC","PARIS","PARS","PARTNERS","PARTS","PARTY","PAY","PCCW","PE","PET","PF","PFIZER","PG","PH","PHARMACY","PHD","PHILIPS","PHONE","PHOTO","PHOTOGRAPHY","PHOTOS","PHYSIO","PICS","PICTET","PICTURES","PID","PIN","PING","PINK","PIONEER","PIZZA","PK","PL","PLACE","PLAY","PLAYSTATION","PLUMBING","PLUS","PM","PN","PNC","POHL","POKER","POLITIE","PORN","POST","PR","PRAXI","PRESS","PRIME","PRO","PROD","PRODUCTIONS","PROF","PROGRESSIVE","PROMO","PROPERTIES","PROPERTY","PROTECTION","PRU","PRUDENTIAL","PS","PT","PUB","PW","PWC","PY","QA","QPON","QUEBEC","QUEST","RACING","RADIO","RE","READ","REALESTATE","REALTOR","REALTY","RECIPES","RED","REDUMBRELLA","REHAB","REISE","REISEN","REIT","RELIANCE","REN","RENT","RENTALS","REPAIR","REPORT","REPUBLICAN","REST","RESTAURANT","REVIEW","REVIEWS","REXROTH","RICH","RICHARDLI","RICOH","RIL","RIO","RIP","RO","ROCKS","RODEO","ROGERS","ROOM","RS","RSVP","RU","RUGBY","RUHR","RUN","RW","RWE","RYUKYU","SA","SAARLAND","SAFE","SAFETY","SAKURA","SALE","SALON","SAMSCLUB","SAMSUNG","SANDVIK","SANDVIKCOROMANT","SANOFI","SAP","SARL","SAS","SAVE","SAXO","SB","SBI","SBS","SC","SCB","SCHAEFFLER","SCHMIDT","SCHOLARSHIPS","SCHOOL","SCHULE","SCHWARZ","SCIENCE","SCOT","SD","SE","SEARCH","SEAT","SECURE","SECURITY","SEEK","SELECT","SENER","SERVICES","SEVEN","SEW","SEX","SEXY","SFR","SG","SH","SHANGRILA","SHARP","SHELL","SHIA","SHIKSHA","SHOES","SHOP","SHOPPING","SHOUJI","SHOW","SI","SILK","SINA","SINGLES","SITE","SJ","SK","SKI","SKIN","SKY","SKYPE","SL","SLING","SM","SMART","SMILE","SN","SNCF","SO","SOCCER","SOCIAL","SOFTBANK","SOFTWARE","SOHU","SOLAR","SOLUTIONS","SONG","SONY","SOY","SPA","SPACE","SPORT","SPOT","SR","SRL","SS","ST","STADA","STAPLES","STAR","STATEBANK","STATEFARM","STC","STCGROUP","STOCKHOLM","STORAGE","STORE","STREAM","STUDIO","STUDY","STYLE","SU","SUCKS","SUPPLIES","SUPPLY","SUPPORT","SURF","SURGERY","SUZUKI","SV","SWATCH","SWISS","SX","SY","SYDNEY","SYSTEMS","SZ","TAB","TAIPEI","TALK","TAOBAO","TARGET","TATAMOTORS","TATAR","TATTOO","TAX","TAXI","TC","TCI","TD","TDK","TEAM","TECH","TECHNOLOGY","TEL","TEMASEK","TENNIS","TEVA","TF","TG","TH","THD","THEATER","THEATRE","TIAA","TICKETS","TIENDA","TIPS","TIRES","TIROL","TJ","TJMAXX","TJX","TK","TKMAXX","TL","TM","TMALL","TN","TO","TODAY","TOKYO","TOOLS","TOP","TORAY","TOSHIBA","TOTAL","TOURS","TOWN","TOYOTA","TOYS","TR","TRADE","TRADING","TRAINING","TRAVEL","TRAVELERS","TRAVELERSINSURANCE","TRUST","TRV","TT","TUBE","TUI","TUNES","TUSHU","TV","TVS","TW","TZ","UA","UBANK","UBS","UG","UK","UNICOM","UNIVERSITY","UNO","UOL","UPS","US","UY","UZ","VA","VACATIONS","VANA","VANGUARD","VC","VE","VEGAS","VENTURES","VERISIGN","VERSICHERUNG","VET","VG","VI","VIAJES","VIDEO","VIG","VIKING","VILLAS","VIN","VIP","VIRGIN","VISA","VISION","VIVA","VIVO","VLAANDEREN","VN","VODKA","VOLVO","VOTE","VOTING","VOTO","VOYAGE","VU","WALES","WALMART","WALTER","WANG","WANGGOU","WATCH","WATCHES","WEATHER","WEATHERCHANNEL","WEBCAM","WEBER","WEBSITE","WED","WEDDING","WEIBO","WEIR","WF","WHOSWHO","WIEN","WIKI","WILLIAMHILL","WIN","WINDOWS","WINE","WINNERS","WME","WOODSIDE","WORK","WORKS","WORLD","WOW","WS","WTC","WTF","XBOX","XEROX","XIHUAN","XIN","XN--11B4C3D","XN--1CK2E1B","XN--1QQW23A","XN--2SCRJ9C","XN--30RR7Y","XN--3BST00M","XN--3DS443G","XN--3E0B707E","XN--3HCRJ9C","XN--3PXU8K","XN--42C2D9A","XN--45BR5CYL","XN--45BRJ9C","XN--45Q11C","XN--4DBRK0CE","XN--4GBRIM","XN--54B7FTA0CC","XN--55QW42G","XN--55QX5D","XN--5SU34J936BGSG","XN--5TZM5G","XN--6FRZ82G","XN--6QQ986B3XL","XN--80ADXHKS","XN--80AO21A","XN--80AQECDR1A","XN--80ASEHDB","XN--80ASWG","XN--8Y0A063A","XN--90A3AC","XN--90AE","XN--90AIS","XN--9DBQ2A","XN--9ET52U","XN--9KRT00A","XN--B4W605FERD","XN--BCK1B9A5DRE4C","XN--C1AVG","XN--C2BR7G","XN--CCK2B3B","XN--CCKWCXETD","XN--CG4BKI","XN--CLCHC0EA0B2G2A9GCD","XN--CZR694B","XN--CZRS0T","XN--CZRU2D","XN--D1ACJ3B","XN--D1ALF","XN--E1A4C","XN--ECKVDTC9D","XN--EFVY88H","XN--FCT429K","XN--FHBEI","XN--FIQ228C5HS","XN--FIQ64B","XN--FIQS8S","XN--FIQZ9S","XN--FJQ720A","XN--FLW351E","XN--FPCRJ9C3D","XN--FZC2C9E2C","XN--FZYS8D69UVGM","XN--G2XX48C","XN--GCKR3F0F","XN--GECRJ9C","XN--GK3AT1E","XN--H2BREG3EVE","XN--H2BRJ9C","XN--H2BRJ9C8C","XN--HXT814E","XN--I1B6B1A6A2E","XN--IMR513N","XN--IO0A7I","XN--J1AEF","XN--J1AMH","XN--J6W193G","XN--JLQ480N2RG","XN--JVR189M","XN--KCRX77D1X4A","XN--KPRW13D","XN--KPRY57D","XN--KPUT3I","XN--L1ACC","XN--LGBBAT1AD8J","XN--MGB9AWBF","XN--MGBA3A3EJT","XN--MGBA3A4F16A","XN--MGBA7C0BBN0A","XN--MGBAAM7A8H","XN--MGBAB2BD","XN--MGBAH1A3HJKRD","XN--MGBAI9AZGQP6J","XN--MGBAYH7GPA","XN--MGBBH1A","XN--MGBBH1A71E","XN--MGBC0A9AZCG","XN--MGBCA7DZDO","XN--MGBCPQ6GPA1A","XN--MGBERP4A5D4AR","XN--MGBGU82A","XN--MGBI4ECEXP","XN--MGBPL2FH","XN--MGBT3DHD","XN--MGBTX2B","XN--MGBX4CD0AB","XN--MIX891F","XN--MK1BU44C","XN--MXTQ1M","XN--NGBC5AZD","XN--NGBE9E0A","XN--NGBRX","XN--NODE","XN--NQV7F","XN--NQV7FS00EMA","XN--NYQY26A","XN--O3CW4H","XN--OGBPF8FL","XN--OTU796D","XN--P1ACF","XN--P1AI","XN--PGBS0DH","XN--PSSY2U","XN--Q7CE6A","XN--Q9JYB4C","XN--QCKA1PMC","XN--QXA6A","XN--QXAM","XN--RHQV96G","XN--ROVU88B","XN--RVC1E0AM3E","XN--S9BRJ9C","XN--SES554G","XN--T60B56A","XN--TCKWE","XN--TIQ49XQYJ","XN--UNUP4Y","XN--VERMGENSBERATER-CTB","XN--VERMGENSBERATUNG-PWB","XN--VHQUV","XN--VUQ861B","XN--W4R85EL8FHU5DNRA","XN--W4RS40L","XN--WGBH1C","XN--WGBL6A","XN--XHQ521B","XN--XKC2AL3HYE2A","XN--XKC2DL3A5EE0H","XN--Y9A3AQ","XN--YFRO4I67O","XN--YGBI2AMMX","XN--ZFR164B","XXX","XYZ","YACHTS","YAHOO","YAMAXUN","YANDEX","YE","YODOBASHI","YOGA","YOKOHAMA","YOU","YOUTUBE","YT","YUN","ZA","ZAPPOS","ZARA","ZERO","ZIP","ZM","ZONE","ZUERICH","ZW"]},122335,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.tlds=void 0,c.tlds=new Set(a.r(83905).TLDS.map(a=>a.toLowerCase()))},681050,(a,b,c)=>{"use strict";let{assert:d,escapeRegex:e}=a.r(888690),{isDomainValid:f,isEmailValid:g,ipRegex:h,uriRegex:i}=a.r(23574),j=a.r(122335),k=a.r(63331),l=a.r(832612),m={tlds:j.tlds instanceof Set&&{tlds:{allow:j.tlds,deny:null}},base64Regex:{true:{true:/^(?:[\w\-]{2}[\w\-]{2})*(?:[\w\-]{2}==|[\w\-]{3}=)?$/,false:/^(?:[A-Za-z0-9+\/]{2}[A-Za-z0-9+\/]{2})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/},false:{true:/^(?:[\w\-]{2}[\w\-]{2})*(?:[\w\-]{2}(==)?|[\w\-]{3}=?)?$/,false:/^(?:[A-Za-z0-9+\/]{2}[A-Za-z0-9+\/]{2})*(?:[A-Za-z0-9+\/]{2}(==)?|[A-Za-z0-9+\/]{3}=?)?$/}},dataUriRegex:/^data:[\w+.-]+\/[\w+.-]+;((charset=[\w-]+|base64),)?(.*)$/,hexRegex:{withPrefix:/^0x[0-9a-f]+$/i,withOptionalPrefix:/^(?:0x)?[0-9a-f]+$/i,withoutPrefix:/^[0-9a-f]+$/i},ipRegex:h({cidr:"forbidden"}).regex,isoDurationRegex:/^P(?!$)(\d+Y)?(\d+M)?(\d+W)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?$/,guidBrackets:{"{":"}","[":"]","(":")","":""},guidVersions:{uuidv1:"1",uuidv2:"2",uuidv3:"3",uuidv4:"4",uuidv5:"5",uuidv6:"6",uuidv7:"7",uuidv8:"8"},guidSeparators:new Set([void 0,!0,!1,"-",":"]),normalizationForms:["NFC","NFD","NFKC","NFKD"]};b.exports=k.extend({type:"string",flags:{insensitive:{default:!1},truncate:{default:!1}},terms:{replacements:{init:null}},coerce:{from:"string",method(a,{schema:b,state:c,prefs:d}){let e=b.$_getRule("normalize");e&&(a=a.normalize(e.args.form));let f=b.$_getRule("case");f&&(a="upper"===f.args.direction?a.toLocaleUpperCase():a.toLocaleLowerCase());let g=b.$_getRule("trim");if(g&&g.args.enabled&&(a=a.trim()),b.$_terms.replacements)for(let c of b.$_terms.replacements)a=a.replace(c.pattern,c.replacement);let h=b.$_getRule("hex");if(h&&h.args.options.byteAligned&&a.length%2!=0&&(a=`0${a}`),b.$_getRule("isoDate")){let b=m.isoDate(a);b&&(a=b)}if(b._flags.truncate){let e=b.$_getRule("max");if(e){let f=e.args.limit;if(l.isResolvable(f)&&(f=f.resolve(a,c,d),!l.limit(f)))return{value:a,errors:b.$_createError("any.ref",f,{ref:e.args.limit,arg:"limit",reason:"must be a positive integer"},c,d)};a=a.slice(0,f)}}return{value:a}}},validate(a,{schema:b,error:c}){if("string"!=typeof a)return{value:a,errors:c("string.base")};if(""===a){let d=b.$_getRule("min");if(d&&0===d.args.limit)return;return{value:a,errors:c("string.empty")}}},jsonSchema(a,b,c,d){if(!a._valids?.has("")&&!a._flags.only){let c=a.$_getRule("min"),d=a.$_getRule("length");(!c||c.args.limit>0)&&(!d||d.args.limit>0)&&(b.minLength=1)}return b},rules:{alphanum:{method(){return this.$_addRule("alphanum")},validate:(a,b)=>/^[a-zA-Z0-9]+$/.test(a)?a:b.error("string.alphanum")},base64:{method(a={}){return l.assertOptions(a,["paddingRequired","urlSafe"]),d("boolean"==typeof(a={urlSafe:!1,paddingRequired:!0,...a}).paddingRequired,"paddingRequired must be boolean"),d("boolean"==typeof a.urlSafe,"urlSafe must be boolean"),this.$_addRule({name:"base64",args:{options:a}})},validate:(a,b,{options:c})=>m.base64Regex[c.paddingRequired][c.urlSafe].test(a)?a:b.error("string.base64"),jsonSchema:(a,b)=>(b.format="base64",b)},case:{method(a){return d(["lower","upper"].includes(a),"Invalid case:",a),this.$_addRule({name:"case",args:{direction:a}})},validate:(a,b,{direction:c})=>"lower"===c&&a===a.toLocaleLowerCase()||"upper"===c&&a===a.toLocaleUpperCase()?a:b.error(`string.${c}case`),convert:!0},creditCard:{method(){return this.$_addRule("creditCard")},validate(a,b){let c=a.length,d=0,e=1;for(;c--;){let b=a.charAt(c)*e;d+=b-(b>9)*9,e^=3}return d>0&&d%10==0?a:b.error("string.creditCard")}},dataUri:{method(a={}){return l.assertOptions(a,["paddingRequired"]),d("boolean"==typeof(a={paddingRequired:!0,...a}).paddingRequired,"paddingRequired must be boolean"),this.$_addRule({name:"dataUri",args:{options:a}})},validate(a,b,{options:c}){let d=a.match(m.dataUriRegex);return d&&(!d[2]||"base64"!==d[2]||m.base64Regex[c.paddingRequired].false.test(d[3]))?a:b.error("string.dataUri")},jsonSchema:(a,b)=>(b.format="data-uri",b)},domain:{method(a){a&&l.assertOptions(a,["allowFullyQualified","allowUnicode","allowUnderscore","maxDomainSegments","minDomainSegments","tlds"]);let b=m.addressOptions(a);return this.$_addRule({name:"domain",args:{options:a},address:b})},validate:(a,b,c,{address:d})=>f(a,d)?a:b.error("string.domain")},email:{method(a={}){l.assertOptions(a,["allowFullyQualified","allowUnicode","allowUnderscore","ignoreLength","maxDomainSegments","minDomainSegments","multiple","separator","tlds"]),d(void 0===a.multiple||"boolean"==typeof a.multiple,"multiple option must be an boolean");let b=m.addressOptions(a),c=RegExp(`\\s*[${a.separator?e(a.separator):","}]\\s*`);return this.$_addRule({name:"email",args:{options:a},regex:c,address:b})},validate(a,b,{options:c},{regex:d,address:e}){let f=c.multiple?a.split(d):[a],h=[];for(let a of f)g(a,e)||h.push(a);return h.length?b.error("string.email",{value:a,invalids:h}):a},jsonSchema:(a,b)=>(b.format="email",b)},guid:{alias:"uuid",method(a={}){let b,c;l.assertOptions(a,["version","separator","wrapper"]),d(void 0===a.wrapper||"boolean"==typeof a.wrapper||"string"==typeof a.wrapper&&"string"==typeof m.guidBrackets[a.wrapper],`"wrapper" must be true, false, or one of "${Object.keys(m.guidBrackets).filter(Boolean).join('", "')}"`);let f="";if(a.version){let b=[].concat(a.version);d(b.length>=1,"version must have at least 1 valid version specified");let c=new Set;for(let a=0;a<b.length;++a){let e=b[a];d("string"==typeof e,"version at position "+a+" must be a string");let g=m.guidVersions[e.toLowerCase()];d(g,"version at position "+a+" must be one of "+Object.keys(m.guidVersions).join(", ")),d(!c.has(g),"version at position "+a+" must not be a duplicate"),f+=g,c.add(g)}}d(m.guidSeparators.has(a.separator),'separator must be one of true, false, "-", or ":"');let g=void 0===a.separator?"[:-]?":!0===a.separator?"[:-]":!1===a.separator?"[]?":`\\${a.separator}`;void 0===a.wrapper?(b="[\\[{\\(]?",c="[\\]}\\)]?"):!0===a.wrapper?(b="[\\[{\\(]",c="[\\]}\\)]"):!1===a.wrapper?(b="",c=""):(b=e(a.wrapper),c=e(m.guidBrackets[a.wrapper]));let h=RegExp(`^(${b})[0-9A-F]{8}(${g})[0-9A-F]{4}\\2?[${f||"0-9A-F"}][0-9A-F]{3}\\2?[${f?"89AB":"0-9A-F"}][0-9A-F]{3}\\2?[0-9A-F]{12}(${c})$`,"i");return this.$_addRule({name:"guid",args:{options:a},regex:h})},validate(a,b,c,{regex:d}){let e=d.exec(a);if(!e)return b.error("string.guid");let f=e[1],g=e[e.length-1];return(f||g)&&m.guidBrackets[f]!==g?b.error("string.guid"):a},jsonSchema:(a,b)=>(b.format="uuid",b)},hex:{method(a={}){return l.assertOptions(a,["byteAligned","prefix"]),d("boolean"==typeof(a={byteAligned:!1,prefix:!1,...a}).byteAligned,"byteAligned must be boolean"),d("boolean"==typeof a.prefix||"optional"===a.prefix,'prefix must be boolean or "optional"'),this.$_addRule({name:"hex",args:{options:a}})},validate:(a,b,{options:c})=>("optional"===c.prefix?m.hexRegex.withOptionalPrefix:!0===c.prefix?m.hexRegex.withPrefix:m.hexRegex.withoutPrefix).test(a)?c.byteAligned&&a.length%2!=0?b.error("string.hexAlign"):a:b.error("string.hex"),jsonSchema:(a,b)=>(b.format="hex",b)},hostname:{method(){return this.$_addRule("hostname")},validate:(a,b)=>f(a,{minDomainSegments:1})||m.ipRegex.test(a)?a:b.error("string.hostname"),jsonSchema:(a,b)=>(b.format="hostname",b)},insensitive:{method(){return this.$_setFlag("insensitive",!0)}},ip:{method(a={}){l.assertOptions(a,["cidr","version"]);let{cidr:b,versions:c,regex:d}=h(a),e=a.version?c:void 0;return this.$_addRule({name:"ip",args:{options:{cidr:b,version:e}},regex:d})},validate:(a,b,{options:c},{regex:d})=>d.test(a)?a:c.version?b.error("string.ipVersion",{value:a,cidr:c.cidr,version:c.version}):b.error("string.ip",{value:a,cidr:c.cidr}),jsonSchema(a,b){let c=a.args.options.version;return c&&1===c.length?b.format=c[0]:b.format="ip",b}},isoDate:{method(){return this.$_addRule("isoDate")},validate:(a,{error:b})=>m.isoDate(a)?a:b("string.isoDate"),jsonSchema:(a,b)=>(b.format="date-time",b)},isoDuration:{method(){return this.$_addRule("isoDuration")},validate:(a,b)=>m.isoDurationRegex.test(a)?a:b.error("string.isoDuration"),jsonSchema:(a,b)=>(b.format="duration",b)},length:{method(a,b){return m.length(this,"length",a,"=",b)},validate(a,b,{limit:c,encoding:d},{name:e,operator:f,args:g}){let h=d?Buffer&&Buffer.byteLength(a,d):a.length;return l.compare(h,c,f)?a:b.error("string."+e,{limit:g.limit,value:a,encoding:d})},jsonSchema:(a,b)=>(b.minLength=a.args.limit,b.maxLength=a.args.limit,b),args:[{name:"limit",ref:!0,assert:l.limit,message:"must be a positive integer"},"encoding"]},lowercase:{method(){return this.case("lower")}},max:{method(a,b){return m.length(this,"max",a,"<=",b)},jsonSchema:(a,b)=>(b.maxLength=a.args.limit,b),args:["limit","encoding"]},min:{method(a,b){return m.length(this,"min",a,">=",b)},jsonSchema:(a,b)=>(a.args.limit>0&&(b.minLength=a.args.limit),b),args:["limit","encoding"]},normalize:{method(a="NFC"){return d(m.normalizationForms.includes(a),"normalization form must be one of "+m.normalizationForms.join(", ")),this.$_addRule({name:"normalize",args:{form:a}})},validate:(a,{error:b},{form:c})=>a===a.normalize(c)?a:b("string.normalize",{value:a,form:c}),convert:!0},pattern:{alias:"regex",method(a,b={}){d(a instanceof RegExp,"regex must be a RegExp"),d(!a.flags.includes("g")&&!a.flags.includes("y"),"regex should not use global or sticky mode"),"string"==typeof b&&(b={name:b}),l.assertOptions(b,["invert","name"]);let c="string.pattern"+(b.invert?".invert":"")+(b.name?".name":".base");return this.$_addRule({name:"pattern",args:{regex:a,options:b},errorCode:c})},validate:(a,b,{regex:c,options:d},{errorCode:e})=>c.test(a)^d.invert?a:b.error(e,{name:d.name,regex:c,value:a}),jsonSchema(a,b){let c=a.args.regex.source;return b.allOf?b.allOf.push({pattern:c}):void 0!==b.pattern?(b.allOf=[{pattern:b.pattern},{pattern:c}],delete b.pattern):b.pattern=c,b},args:["regex","options"],multi:!0},replace:{method(a,b){"string"==typeof a&&(a=RegExp(e(a),"g")),d(a instanceof RegExp,"pattern must be a RegExp"),d("string"==typeof b,"replacement must be a String");let c=this.clone();return c.$_terms.replacements||(c.$_terms.replacements=[]),c.$_terms.replacements.push({pattern:a,replacement:b}),c}},token:{method(){return this.$_addRule("token")},validate:(a,b)=>/^\w+$/.test(a)?a:b.error("string.token"),jsonSchema:(a,b)=>(b.format="token",b)},trim:{method(a=!0){return d("boolean"==typeof a,"enabled must be a boolean"),this.$_addRule({name:"trim",args:{enabled:a}})},validate:(a,b,{enabled:c})=>c&&a!==a.trim()?b.error("string.trim"):a,convert:!0},truncate:{method(a=!0){return d("boolean"==typeof a,"enabled must be a boolean"),this.$_setFlag("truncate",a)}},uppercase:{method(){return this.case("upper")}},uri:{method(a={}){l.assertOptions(a,["allowRelative","allowQuerySquareBrackets","domain","relativeOnly","scheme","encodeUri"]),a.domain&&l.assertOptions(a.domain,["allowFullyQualified","allowUnicode","maxDomainSegments","minDomainSegments","tlds"]);let{regex:b,scheme:c}=i(a),d=a.domain?m.addressOptions(a.domain):null;return this.$_addRule({name:"uri",args:{options:a},regex:b,domain:d,scheme:c})},validate(a,b,{options:c},{regex:d,domain:e,scheme:g}){if(["http:/","https:/"].includes(a))return b.error("string.uri");let h=d.exec(a);if(!h&&b.prefs.convert&&c.encodeUri){let b=encodeURI(a);(h=d.exec(b))&&(a=b)}if(h){let d=h[1]||h[2];return e&&(!c.allowRelative||d)&&!f(d,e)?b.error("string.domain",{value:d}):a}return c.relativeOnly?b.error("string.uriRelativeOnly"):c.scheme?b.error("string.uriCustomScheme",{scheme:g,value:a}):b.error("string.uri")},jsonSchema:(a,b)=>(b.format="uri",b)}},manifest:{build(a,b){if(b.replacements)for(let{pattern:c,replacement:d}of b.replacements)a=a.replace(c,d);return a}},messages:{"string.alphanum":"{{#label}} must only contain alpha-numeric characters","string.base":"{{#label}} must be a string","string.base64":"{{#label}} must be a valid base64 string","string.creditCard":"{{#label}} must be a credit card","string.dataUri":"{{#label}} must be a valid dataUri string","string.domain":"{{#label}} must contain a valid domain name","string.email":"{{#label}} must be a valid email","string.empty":"{{#label}} is not allowed to be empty","string.guid":"{{#label}} must be a valid GUID","string.hex":"{{#label}} must only contain hexadecimal characters","string.hexAlign":"{{#label}} hex decoded representation must be byte aligned","string.hostname":"{{#label}} must be a valid hostname","string.ip":"{{#label}} must be a valid ip address with a {{#cidr}} CIDR","string.ipVersion":"{{#label}} must be a valid ip address of one of the following versions {{#version}} with a {{#cidr}} CIDR","string.isoDate":"{{#label}} must be in iso format","string.isoDuration":"{{#label}} must be a valid ISO 8601 duration","string.length":"{{#label}} length must be {{#limit}} characters long","string.lowercase":"{{#label}} must only contain lowercase characters","string.max":"{{#label}} length must be less than or equal to {{#limit}} characters long","string.min":"{{#label}} length must be at least {{#limit}} characters long","string.normalize":"{{#label}} must be unicode normalized in the {{#form}} form","string.token":"{{#label}} must only contain alpha-numeric and underscore characters","string.pattern.base":"{{#label}} with value {:[.]} fails to match the required pattern: {{#regex}}","string.pattern.name":"{{#label}} with value {:[.]} fails to match the {{#name}} pattern","string.pattern.invert.base":"{{#label}} with value {:[.]} matches the inverted pattern: {{#regex}}","string.pattern.invert.name":"{{#label}} with value {:[.]} matches the inverted {{#name}} pattern","string.trim":"{{#label}} must not have leading or trailing whitespace","string.uri":"{{#label}} must be a valid uri","string.uriCustomScheme":"{{#label}} must be a valid uri with a scheme matching the {{#scheme}} pattern","string.uriRelativeOnly":"{{#label}} must be a valid relative uri","string.uppercase":"{{#label}} must only contain uppercase characters"}}),m.addressOptions=function(a){if(!a)return m.tlds||a;if(d(void 0===a.minDomainSegments||Number.isSafeInteger(a.minDomainSegments)&&a.minDomainSegments>0,"minDomainSegments must be a positive integer"),d(void 0===a.maxDomainSegments||Number.isSafeInteger(a.maxDomainSegments)&&a.maxDomainSegments>0,"maxDomainSegments must be a positive integer"),!1===a.tlds)return a;if(!0===a.tlds||void 0===a.tlds)return d(m.tlds,"Built-in TLD list disabled"),Object.assign({},a,m.tlds);d("object"==typeof a.tlds,"tlds must be true, false, or an object");let b=a.tlds.deny;if(b)return Array.isArray(b)&&(a=Object.assign({},a,{tlds:{deny:new Set(b)}})),d(a.tlds.deny instanceof Set,"tlds.deny must be an array, Set, or boolean"),d(!a.tlds.allow,"Cannot specify both tlds.allow and tlds.deny lists"),m.validateTlds(a.tlds.deny,"tlds.deny"),a;let c=a.tlds.allow;return c?!0===c?(d(m.tlds,"Built-in TLD list disabled"),Object.assign({},a,m.tlds)):(Array.isArray(c)&&(a=Object.assign({},a,{tlds:{allow:new Set(c)}})),d(a.tlds.allow instanceof Set,"tlds.allow must be an array, Set, or boolean"),m.validateTlds(a.tlds.allow,"tlds.allow"),a):{...a,tlds:!1}},m.validateTlds=function(a,b){for(let c of a)d(f(c,{minDomainSegments:1,maxDomainSegments:1}),`${b} must contain valid top level domain names`)},m.isoDate=function(a){if(!l.isIsoDate(a))return null;/T.*[+-]\d\d$/.test(a)&&(a+=":00");let b=new Date(a);return isNaN(b.getTime())?null:b.toISOString()},m.length=function(a,b,c,e,f){return d(!f||Buffer&&Buffer.isEncoding(f),"Invalid encoding:",f),a.$_addRule({name:b,method:"length",args:{limit:c,encoding:f},operator:e})}},965954,(a,b,c)=>{"use strict";let{assert:d}=a.r(888690),e=a.r(63331),f={};f.Map=class extends Map{slice(){return new f.Map(this)}},b.exports=e.extend({type:"symbol",terms:{map:{init:new f.Map}},coerce:{method(a,{schema:b,error:c}){let d=b.$_terms.map.get(a);return(d&&(a=d),b._flags.only&&"symbol"!=typeof a)?{value:a,errors:c("symbol.map",{map:b.$_terms.map})}:{value:a}}},validate(a,{error:b}){if("symbol"!=typeof a)return{value:a,errors:b("symbol.base")}},rules:{map:{method(a){a&&!a[Symbol.iterator]&&"object"==typeof a&&(a=Object.entries(a)),d(a&&a[Symbol.iterator],"Iterable must be an iterable or object");let b=this.clone(),c=[];for(let e of a){d(e&&e[Symbol.iterator],"Entry must be an iterable");let[a,f]=e;d("object"!=typeof a&&"function"!=typeof a&&"symbol"!=typeof a,"Key must not be of type object, function, or Symbol"),d("symbol"==typeof f,"Value must be a Symbol"),b.$_terms.map.set(a,f),c.push(f)}return b.valid(...c)}}},manifest:{build:(a,b)=>(b.map&&(a=a.map(b.map)),a)},jsonSchema(a,b,c,d){let e=a.$_terms.map;return e.size?{anyOf:Array.from(e.keys()).map(a=>({const:a}))}:{}},messages:{"symbol.base":"{{#label}} must be a symbol","symbol.map":"{{#label}} must be one of {{#map}}"}})},607620,(a,b,c)=>{"use strict";let{assert:d}=a.r(888690),e=a.r(63331),f=a.r(832612);b.exports=e.extend({type:"binary",coerce:{from:["string","object"],method(a,{schema:b}){if("string"==typeof a||null!==a&&"Buffer"===a.type)try{return{value:Buffer.from(a,b._flags.encoding)}}catch{}}},validate(a,{error:b}){if(!Buffer.isBuffer(a))return{value:a,errors:b("binary.base")}},jsonSchema:(a,b,c,d)=>(b.type="string",b.format="binary",b),rules:{encoding:{method(a){return d(Buffer.isEncoding(a),"Invalid encoding:",a),this.$_setFlag("encoding",a)}},length:{method(a){return this.$_addRule({name:"length",method:"length",args:{limit:a},operator:"="})},validate:(a,b,{limit:c},{name:d,operator:e,args:g})=>f.compare(a.length,c,e)?a:b.error("binary."+d,{limit:g.limit,value:a}),jsonSchema:(a,b)=>(b.minLength=a.args.limit,b.maxLength=a.args.limit,b),args:[{name:"limit",ref:!0,assert:f.limit,message:"must be a positive integer"}]},max:{method(a){return this.$_addRule({name:"max",method:"length",args:{limit:a},operator:"<="})},jsonSchema:(a,b)=>(b.maxLength=a.args.limit,b)},min:{method(a){return this.$_addRule({name:"min",method:"length",args:{limit:a},operator:">="})},jsonSchema:(a,b)=>(b.minLength=a.args.limit,b)}},cast:{string:{from:a=>Buffer.isBuffer(a),to:(a,b)=>a.toString()}},messages:{"binary.base":"{{#label}} must be a buffer or a string","binary.length":"{{#label}} must be {{#limit}} bytes","binary.max":"{{#label}} must be less than or equal to {{#limit}} bytes","binary.min":"{{#label}} must be at least {{#limit}} bytes"}})},555466,(a,b,c)=>{"use strict";let d,{assert:e,clone:f}=a.r(888690),g=a.r(176721),h=a.r(832612),i=a.r(610725),j=a.r(59019),k=a.r(689366),l=a.r(66125),m=a.r(725767),n=a.r(306544),o=a.r(371527),p={types:{alternatives:a.r(463866),any:a.r(63331),array:a.r(588035),boolean:a.r(46279),date:a.r(758977),function:a.r(239221),link:a.r(372780),number:a.r(395842),object:a.r(757024),string:a.r(681050),symbol:a.r(965954)},aliases:{alt:"alternatives",bool:"boolean",func:"function"}};p.types.binary=a.r(607620),p.root=function(){let a={_types:new Set(Object.keys(p.types))};for(let b of a._types)a[b]=function(...a){return e(!a.length||["alternatives","link","object"].includes(b),"The",b,"type does not allow arguments"),p.generate(this,p.types[b],a)};for(let b of["allow","custom","disallow","equal","exist","forbidden","invalid","not","only","optional","options","prefs","preferences","required","strip","valid","when"])a[b]=function(...a){return this.any()[b](...a)};for(let b of(Object.assign(a,p.methods),Object.keys(p.aliases))){let c=p.aliases[b];a[b]=a[c]}return a.x=a.expression,o.setup&&o.setup(a),a},p.methods={ValidationError:j.ValidationError,version:h.version,cache:g.provider,assert(a,b,...c){p.assert(a,b,!0,c)},attempt:(a,b,...c)=>p.assert(a,b,!1,c),build(a){return e("function"==typeof l.build,"Manifest functionality disabled"),l.build(this,a)},checkPreferences(a){h.checkPreferences(a)},compile(a,b){return i.compile(this,a,b)},defaults(a){e("function"==typeof a,"modifier must be a function");let b=Object.assign({},this);for(let c of b._types){let d=a(b[c]());e(h.isSchema(d),"modifier must return a valid schema object"),b[c]=function(...a){return p.generate(this,d,a)}}return b},expression:(...a)=>new n(...a),extend(...b){h.verifyFlat(b,"extend"),d=d||a.r(425471),e(b.length,"You need to provide at least one extension"),this.assert(b,d.extensions);let c=Object.assign({},this);for(let a of(c._types=new Set(c._types),b))for(let b of("function"==typeof a&&(a=a(c)),this.assert(a,d.extension),p.expandExtension(a,c))){e(void 0===c[b.type]||c._types.has(b.type),"Cannot override name",b.type);let a=b.base||this.any(),d=k.type(a,b);c._types.add(b.type),c[b.type]=function(...a){return p.generate(this,d,a)}}return c},isError:j.ValidationError.isError,isExpression:n.isTemplate,isRef:m.isRef,isSchema:h.isSchema,in:(...a)=>m.in(...a),override:h.symbols.override,ref:(...a)=>m.create(...a),types(){let a={};for(let b of this._types)a[b]=this[b]();for(let b of Object.keys(p.aliases))a[b]=this[b]();return a}},p.assert=function(a,b,c,d){let e=d[0]instanceof Error||"string"==typeof d[0]?d[0]:null,g=null!==e?d[1]:d[0],i=b.validate(a,h.preferences({errors:{stack:!0}},g||{})),k=i.error;if(!k)return i.value;if(e instanceof Error)throw e;let l=c&&"function"==typeof k.annotate?k.annotate():k.message;throw k instanceof j.ValidationError==!1&&(k=f(k)),k.message=e?`${e} ${l}`:l,k},p.generate=function(a,b,c){return(e(a,"Must be invoked on a Joi instance."),b.$_root=a,b._definition.args&&c.length)?b._definition.args(b,...c):b},p.expandExtension=function(a,b){if("string"==typeof a.type)return[a];let c=[];for(let d of b._types)if(a.type.test(d)){let e=Object.assign({},a);e.type=d,e.base=b[d](),c.push(e)}return c},b.exports=p.root()},640542,(a,b,c)=>{"use strict";let d="[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?",e=RegExp(`^${d}(?:\\.${d})+$`),f=RegExp(`^${d}(?:\\.${d})*$`);b.exports={DOMAIN_LABEL:d,DOMAIN_NAME:e,SELECTOR:f,TIMESTAMP:/^[0-9]{1,12}$/,BODY_LENGTH:/^[0-9]{1,76}$/,MAX_ARC_INSTANCE:50,ARC_HEADER_KEYS:["arc-seal","arc-message-signature","arc-authentication-results"]}},787767,(a,b,c)=>{"use strict";let{Buffer:d}=a.r(951615),e=a.r(162649),f=a.r(69127),g=a.r(495879).promises,h=a.r(666680),i=a.r(743698),j=a.r(958438),k=a.r(423986),{parseTagList:l}=k,m=a.r(596651),n=a.r(555466),{DOMAIN_NAME:o}=a.r(640542),p=n.string().base64({paddingRequired:!1}),q="From:Sender:Reply-To:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive:BIMI-Selector",r=`DKIM-Signature:Delivered-To:${q}`,s=["v","a","c","d","h","i","l","q","s","t","x","z","bh","b"],t=["i","a","c","d","h","l","q","s","t","x","z","bh","b"],u=["i","a","t","cv","d","s","b"],v={allowIcannDomains:!0,allowPrivateDomains:!0},w=a=>(a=(a||"").toString(),z.test(a))?a.split(".").map(a=>{if(!z.test(a))return a;try{return e.toASCII(a.normalize("NFC").toLowerCase())}catch(b){return a}}).join("."):a,x=a=>w((a||"").toString().trim()).toLowerCase().replace(/\.$/,""),y=async(a,b,c)=>(c=c||65536,"string"==typeof b&&(b=d.from(b)),new Promise((d,e)=>{if("function"==typeof b.on)b.pipe(a),b.on("error",e);else{let d=0,e=()=>{let f;return d>=b.length?a.end():(f=d+c>=b.length?b.slice(d):b.slice(d,d+c),d+=f.length,!1===a.write(f))?void a.once("drain",()=>e()):void setImmediate(e)};setImmediate(e)}a.on("end",d),a.on("finish",d),a.on("error",e)})),z=/[^\x00-\x7f]/,A=a=>z.test(a)?a.replace(/[A-Z]/g,a=>a.toLowerCase()):a.toLowerCase(),B=/^[\x21-\x39\x3b-\x7e]+[ \t\r\n]*:/,C=a=>B.test(a.length>1?`${a[0]}\r
|
|
251
|
-
${a[1]}`:a[0]),D=a=>a.split(":").map(a=>A(a.replace(/^[ \t]+|[ \t]+$/g,""))).filter(a=>a),E=D(q),F=(a,b,c)=>{let d=Error(a);return d.code=b,c?Object.assign(d,c):d},G=(a,...b)=>{for(let c of b)a.includes(c)||a.push(c);return a},H=new Map([["ENOTFOUND","no key"],["ENODATA","no key"],["EINVALIDVER","unknown key version"],["EINVALIDTYPE","unknown key type"],["EINVALIDVAL","invalid public key"],["EINVALIDHASH","inappropriate hash algorithm"],["EINVALIDSERVICE","key not for email"]]),I=(a,b,c,d)=>F(a,b,Object.assign(c?{rr:c}:{},d)),J=a=>("string"==typeof a?a:"").split(":").map(a=>a.trim().toLowerCase()).filter(a=>a),K=a=>{if("ed25519"!==a.asymmetricKeyType)try{return a.export({type:"pkcs1",format:"pem"})}catch(a){}return a.export({type:"spki",format:"pem"})},L=async(a,b,c,e,f)=>{let i,j,k;c=c||1024,e=e||g.resolve;let m=!!(f=f||{}).strict,n=await e(w(b),"TXT"),o=n&&[].concat(n[0]||[]).join("").replace(/\s+/g,"");if(!o)throw I("Missing key value","EINVALIDVAL");let q=[],r=(a,b,c)=>{if(m)throw I(a,b,o);G(q,c)},s=l(o,{strict:m}),t=s.parsed;s.syntaxErrors.length&&r(`Invalid key record syntax: ${s.syntaxErrors[0]}`,"EINVALIDVAL","key-syntax");let u=t.p?.value;if(!u)throw I("Missing key value","EINVALIDVAL",o);let v=p.validate(u);if(v.error)throw I("Invalid base64 format for public key","EINVALIDVAL",o,{details:v.error});if(t.v){let a=(t.v.value||"").toString();if("dkim1"!==a.toLowerCase().trim())throw I("Unknown key version","EINVALIDVER",o);("DKIM1"!==a||s.tags[0]?.name!=="v")&&r("DKIM1"!==a?"Unknown key version":"Key version tag is not the first tag","EINVALIDVER","key-v-syntax")}if(t.s){let a=J(t.s.value);if(!a.includes("email")&&!a.includes("*"))throw I("Key is not meant for email","EINVALIDSERVICE",o)}if(t.h&&f.hashAlgo&&!J(t.h.value).includes(f.hashAlgo.toLowerCase()))throw I(`Key does not allow ${f.hashAlgo}`,"EINVALIDHASH",o);let x=!!t.k&&(t.k.value||"").toString().toLowerCase().trim(),y=d.from(u,"base64"),z=[];for(let a of(32!==y.length||m&&"ed25519"!==x?(a=>{if(a.length<3||48!==a[0])return!1;let b=a[1]<128?2:2+(127&a[1]);return 2===a[b]})(y)?z.push({key:y,format:"der",type:"pkcs1"}):z.push({key:y,format:"der",type:"spki"}):z.push({key:d.concat([d.from("302A300506032B6570032100","hex"),y]),format:"der",type:"spki"}),z))try{let b=h.createPublicKey(a);k=K(b),i=b;break}catch(a){j=a}if(!i){let a=Error("Unknown key type",{cause:j});throw a.code="EINVALIDTYPE",a.rr=o,a}let A=i.asymmetricKeyType;if(!["rsa","ed25519"].includes(A)||x&&x!==A)throw I(`Unknown key type (${A})`,"EINVALIDTYPE",o);if(x||"rsa"===A||r(`Unknown key type (${A})`,"EINVALIDTYPE","key-type-inferred"),m&&"ed25519"===A&&32!==y.length)throw I("Invalid ed25519 public key","EINVALIDVAL",o);let B=i.asymmetricKeyDetails.modulusLength;if("rsa"===A&&B<c)throw I("RSA key too short","ESHORTKEY",o);let C=J(t.t?.value);return{publicKey:k,rr:o,modulusLength:B,keyType:A,flags:C,testing:C.includes("y"),warnings:q}},M=/^[!#$%&'*+\-.0-9A-Z^_`a-z{|}~]+$/,N=/^[!#$%&'*+\-.0-9A-Z^_`a-z{|}~@]+$/,O=/^[A-Za-z0-9!#$%&'*+\-/=?^_`{|}~]+(?:\.[A-Za-z0-9!#$%&'*+\-/=?^_`{|}~]+)*$/,P=/^"(?:[^"\\\r\n]|\\[\x20-\x7e\t])*"$/,Q=a=>(a||"").toString().replace(/[\x00-\x1F\x7F]+/g," ").replace(/\s+/g," ").trim(),R=a=>`"${a.replace(/["\\]/g,a=>`\\${a}`)}"`,S=(a,b)=>{if(!(a=Q(a)))return"";if(M.test(a))return a;let c=a.lastIndexOf("@");if(c>=0){let d=a.substring(0,c),e=a.substring(c+1);if(o.test(e)){if(!d||O.test(d)){if(b||N.test(a))return a}else if(b)return`${P.test(d)?d:R(d)}@${e}`}}return R(a)},T=a=>(a=Q(a).split(" ").map(a=>{if(400>=d.byteLength(a))return a;let b="";for(let c of a){if(d.byteLength(b+c)>400)break;b+=c}return b+"..."}).join(" ")).replace(/[\\()]/g,a=>`\\${a}`),U=a=>(a=w(a.toLowerCase().trim()).toLowerCase().trim()).replace(/\.+$/,""),V=(a,b,c)=>["rsa","ed25519"].includes(a)&&("sha256"===b||!!c&&"rsa"===a&&"sha1"===b);function W(a,b={}){let{requiredTags:c=[],allowedTags:d=null,caseSensitive:e=!1,strictMode:f=!1,allowDuplicateKeys:g=!0}=b,h=(a||"").replace(/[\x00-\x1F]+/g," ").replace(/\\r\\n/g,"").replace(/\\n/g,"").replace(/\r?\n/g,"").replace(/\s+/g," ").trim().split(";"),i=Object.create(null),j=[],k=[],l=[];for(let a of h){if(!(a=a.trim()))continue;let b=a.indexOf("=");if(-1===b){let b=`Malformed part (no equals sign): "${a}"`;if(k.push(b),f)break;continue}let c=a.substring(0,b).trim(),h=a.substring(b+1).trim(),m=e?c:c.toLowerCase();if(!/^[a-zA-Z0-9_-]+$/.test(c)){let a=`Invalid tag name: "${c}"`;if(k.push(a),f)break;continue}if(d&&!d.includes(m)){l.push(`Unknown/disallowed tag ignored: "${c}"`);continue}if(m in i){if(!g){let a=`Duplicate tag not allowed: "${c}"`;if(k.push(a),f)break;continue}Array.isArray(i[m])?i[m].push(h):i[m]=[i[m],h],l.push(`Duplicate tag "${c}" found`)}else i[m]=h;j.push([m,h])}for(let a of c)(e?a:a.toLowerCase())in i||k.push(`Missing required tag: "${a}"`);let m=j.map(([a,b])=>`${a}=${b}`).join("; ");return{tags:i,errors:k,warnings:l,isValid:0===k.length,sanitizedRecord:m,originalRecord:a}}function X(a){return(a||"").replace(/[^\x20-\x7E]/g,"")}b.exports={writeToStream:y,parseHeaders:a=>{let b=a.toString("binary").replace(/[\r\n]+$/,"").split(/\r?\n/).map(a=>[a]);if(1===b.length&&!b[0][0])return{parsed:[],original:a};for(let a=b.length-1;a>0;a--)C(b[a])||(b[a-1]=b[a-1].concat(b[a]),b.splice(a,1));return{parsed:b=b.map(a=>{let b,c=(a=a.join("\r\n")).match(/^[^:]+/);return c&&((b=c[0]).indexOf("\n")>=0&&(b=b.replace(/\r?\n/g,"")),c=A(b=b.replace(/^[ \t]+|[ \t]+$/g,""))),{key:c,casedKey:b,line:d.from(a,"binary")}}),original:a}},createError:F,addWarning:G,KEY_ERROR_COMMENTS:H,defaultDKIMFieldNames:q,defaultARCFieldNames:r,defaultASFieldNames:"ARC-Authentication-Results:ARC-Message-Signature:ARC-Seal",getSigningHeaderLines:(a,b,c)=>{b="string"==typeof b?D(b):E;let d=[];if(c){let c=[].concat(a);for(let a of b)for(let b=c.length-1;b>=0;b--){let e=c[b];if(a===e.key){d.push(e),c.splice(b,1);break}}}else for(let c=a.length-1;c>=0;c--){let e=a[c];b.includes(e.key)&&d.push(e)}return{keys:d.map(a=>a.casedKey).join(": "),headers:d}},formatSignatureHeaderLine:(a,b,c)=>{let d,e;switch(a=(a||"").toString().toUpperCase()){case"DKIM":e="DKIM-Signature",d=s,b=Object.assign({v:1,t:Math.floor(Date.now()/1e3),q:"dns/txt"},b);break;case"ARC":e="ARC-Message-Signature",d=t,b=Object.assign({t:Math.floor(Date.now()/1e3),q:"dns/txt"},b);break;case"AS":e="ARC-Seal",d=u,b=Object.assign({t:Math.floor(Date.now()/1e3)},b);break;default:throw Error("Unknown Signature type")}let g=`${e}: `+Object.keys(b).filter(a=>!1!==b[a]&&void 0!==b[a]&&null!==b[a]&&d.includes(a)).sort((a,b)=>d.indexOf(a)-d.indexOf(b)).map(d=>{let e=b[d];if("b"===d&&c&&e)return`${d}=${e}`.replace(/.{75}/g,"$& ").trim();if(["d","s"].includes(d)&&(e=w(e)),"i"===d&&"DKIM"===a){let a=(e=e.toString()).lastIndexOf("@");a>=0&&(e=e.substr(0,a+1)+w(e.substr(a+1)))}return`${d}=${e}`}).join("; ");return c?f.foldLines(g):g},parseDkimHeaders:k,parseTagList:l,getPublicKey:L,getPrivateKey:a=>{let b;return"string"==typeof a&&(a=d.from(a)),b=32===a.length?{key:a=d.concat([d.from("MC4CAQAwBQYDK2VwBCIEIA==","base64"),a]),format:"der",type:"pkcs8"}:{key:a,format:"pem"},h.createPrivateKey(b)},formatAuthHeaderRow:(a,b,c)=>{c=c||{};let e=[],f=((b=b||{}).result||"").toString().replace(/[^A-Za-z0-9-]+/g,"")||"none";for(let g of(e.push(`${a}=${f}`),b.underSized&&e.push(`(${T(`undersized signature: ${b.underSized} bytes unsigned`)})`),b.comment&&e.push(`(${T(b.comment)})`),["policy","smtp","body","header"]))if(b[g]&&"object"==typeof b[g])for(let a of Object.keys(b[g])){let f=b[g][a];if(!f||!["string","number","boolean"].includes(typeof f))continue;let h=S(f,c.strict);!h||d.byteLength(h)>900||e.push(`${g}.${a}=${h}`)}return e.join(" ")},escapeCommentValue:T,escapePropValue:S,formatAuthservId:(a,b)=>{let c=w(Q(a));if(c&&c.length<=900&&M.test(c))return c;if(!c||c.length>900||b){let b=TypeError(`Invalid authserv-id ${JSON.stringify((a||"").toString())}, expecting a host name`);throw b.code="EINVALIDAUTHSERVID",b}return R(c)},MAX_HEADER_VALUE_LENGTH:900,formatDotAtomOrQuoted:a=>(a=Q(a),O.test(a)?a:R(a)),fetch:a=>new Promise((b,c)=>{i.get(a,{headers:{"User-Agent":`mailauth/${j.version} (+${j.homepage}`}},a=>{let c=[],e=0;a.on("readable",()=>{let b;for(;null!==(b=a.read());)c.push(b),e+=b.length}),a.on("end",()=>{b({statusCode:a.statusCode,headers:a.headers,body:d.concat(c,e)})})}).on("error",c)}),validateAlgorithm:(a,b)=>{try{if(!a||!/^[^-]+-[^-]+$/.test(a))throw Error("Invalid algorithm format");let[c,d]=a.toLowerCase().split("-");if(!["rsa","ed25519"].includes(c)){let a=Error("Unknown signing algorithm");throw a.signAlgo=c,a}if(!V(c,d,!b)){let a=Error("Unknown hashing algorithm");throw a.hashAlgo=d,a}}catch(a){throw a.code="EINVALIDALGO",a}},splitAlgorithm:a=>{let b=(a||"").toString().split("-");return{signAlgo:b[0].toLowerCase().trim(),hashAlgo:b[b.length-1].toLowerCase().trim()}},isSupportedAlgorithm:V,createKeyCache:a=>{let b=new Map;return{resolver:a,get(c,d,e,f){let g=[!!(f=f||{}).strict,e||"",f.hashAlgo||"",d].join(":"),h=b.get(g);return h||((h=L(c,d,e,a,f)).catch(()=>!1),b.set(g,h)),h}}},getAlignment:(a,b,c)=>{if(c&&"object"==typeof c&&(c=c.strict),b=[].concat(b||[]).map(a=>"string"==typeof a?{domain:a}:a).sort((a,b)=>(a.underSized||0)-(b.underSized||0)),c){let c=U(a);if(!c)return!1;for(let a of b)if(U(a.domain)===c)return a;return!1}let d=U(m.getDomain(a,v)||a);if(!d)return!1;for(let a of b)if(U(m.getDomain(a.domain,v)||a.domain)===d)return a;return!1},formatRelaxedLine:(a,b)=>{let c=(a||"").toString("binary").replace(/\r?\n/g,"").replace(/^([^:]*):[ \t]*/,(a,b)=>A(b).replace(/^[ \t]+|[ \t]+$/g,"")+":").replace(/[ \t]+/g," ").replace(/^ | $/g,"")+(b||"");return d.from(c,"binary")},stripSignatureValue:(a,b)=>{let c=a.toString("binary"),e=c.indexOf(":"),f=e>=0?c.substring(0,e+1):"",g=(e>=0?c.substring(e+1):c).split(";");for(let a=g.length-1;a>=0;a--){let c=g[a].indexOf("=");if(c<0)continue;let e=d.from(g[a].substring(0,c),"binary").toString().replace(/\s+/g," ").trim();if((b?e:e.toLowerCase())==="b"){g[a]=g[a].substring(0,c+1);break}}return d.from(f+g.join(";"),"binary")},formatDomain:U,toALabel:w,normalizeDomainName:x,isSameOrSubdomain:(a,b)=>(a=x(a),b=x(b),!!a&&!!b&&(a===b||a.endsWith(`.${b}`))),getPtrHostname:a=>{let b=a.toByteArray();return 4===b.length?`${b.map(a=>a.toString(10)).reverse().join(".")}.in-addr.arpa`:`${b.flatMap(a=>a.toString(16).padStart(2,"0").split("")).reverse().join(".")}.ip6.arpa`},getCurTime:function(a){if(a){if("object"==typeof a&&"function"==typeof a.toISOString)return a;if("number"!=typeof a&&isNaN(a)){if("string"==typeof a){let b=new Date(a);if("Invalid Date"!==b.toString())return b}}else{let b=new Date(Number(a));if("Invalid Date"!==b.toString())return b}}return new Date},TLDTS_OPTS:v,validateTagValueRecord:function(a,b){let c={BIMI:{requiredTags:["v","l","a"],allowedTags:["v","l","a"],caseSensitive:!1,strictMode:!0,allowDuplicateKeys:!1,validators:{v:a=>/^BIMI\d+$/i.test(a)?null:`Version must match BIMI<digit>, got: ${a}`,l:a=>{if(!a.trim())return"Location cannot be empty";try{let b=new URL(a.trim());return"https:"!==b.protocol?"Location must use HTTPS protocol":null}catch(b){return`Invalid location URL: ${a}`}},a:a=>{if(!a.trim())return"Authority cannot be empty";try{let b=new URL(a.trim());return"https:"!==b.protocol?"Authority must use HTTPS protocol":null}catch(b){return`Invalid authority URL: ${a}`}}},mappers:{v:a=>X(a)}}}[b.toUpperCase()];if(!c)throw Error(`Unknown record type: ${b}`);let d=W(a,c);if(c.mappers)for(let[a,b]of Object.entries(c.mappers))d.tags&&a in d.tags&&(d.tags[a]=b(d.tags[a]));if(c.validators&&d.isValid){for(let[a,b]of Object.entries(c.validators))if(d.tags&&a in d.tags){let c=b(d.tags[a]);c&&d.errors.push(c)}d.isValid=0===d.errors.length}return d},parseTagValueRecord:W,convertToASCII:X}},480311,(a,b,c)=>{"use strict";let{Buffer:d}=a.r(951615),{parseHeaders:e}=a.r(787767),f=a.r(81111).Writable;b.exports={MessageParser:class extends f{constructor(a){super(a),this.byteLength=0,this.state="header",this.stateBytes=[],this.headerBytes=0,this.headers=!1,this.headerChunks=[]}async nextChunk(){}async finalChunk(){}async messageHeaders(){}async emitHeaders(a){this.state="body",a&&this.headerChunks.push(a),this.headers=e(d.concat(this.headerChunks)),await this.messageHeaders(this.headers)}async processChunk(a){if(a&&a.length){if("header"===this.state)for(let b=0;b<a.length;b++){let c=a[b];this.stateBytes.push(c),this.stateBytes.length>4&&(this.stateBytes=this.stateBytes.slice(-4)),this.headerBytes++;let d=this.stateBytes[this.stateBytes.length-1],e=this.stateBytes.length>1&&this.stateBytes[this.stateBytes.length-2],f=this.stateBytes.length>2&&this.stateBytes[this.stateBytes.length-3];if(10===d&&(10===e||13===e&&10===f||1===this.headerBytes||2===this.headerBytes&&13===e)){if(b===a.length-1)return void await this.emitHeaders(a);await this.emitHeaders(a.slice(0,b+1)),a=a.slice(b+1);break}}if("body"!==this.state)return void this.headerChunks.push(a);await this.nextChunk(a)}}*ensureLinebreaks(a){let b=0;for(let c=0;c<a.length;c++){let e=a[c];if(10===e&&13!==this.lastByte){let e;e=0===c||b===c?d.from("\r\n"):d.concat([a.slice(b,c),d.from("\r\n")]),yield e,b=c+1}this.lastByte=e}if(0===b)yield a;else if(b<a.length){let c=a.slice(b);yield c}}async writeAsync(a,b){if(a&&a.length)for(let c of("string"==typeof a&&(a=d.from(a,b)),this.ensureLinebreaks(a)))await this.processChunk(c),this.byteLength+=c.length}_write(a,b,c){this.writeAsync(a,b).then(()=>c()).catch(a=>c(a))}async finish(){this.headers||await this.emitHeaders(),await this.finalChunk()}_final(a){this.finish().then(()=>a()).catch(b=>a(b))}}}},879207,(a,b,c)=>{"use strict";let{Buffer:d}=a.r(951615);b.exports={MimeStructureStartFinder:class{constructor(){this.byteCache=[],this.matchFound=!1,this.noMatch=!1,this.lineStart=-1,this.prevChunks=0,this.mimeStructureStart=-1}setBoundary(a){this.boundary=(a||"").toString().trim(),this.boundaryBuf=Array.from(d.from(`--${this.boundary}`)),this.boundaryBufLen=this.boundaryBuf.length}update(a){if(!this.matchFound&&this.boundary){for(let b=0,c=a.length;b<c;b++){let c=a[b];if(10===c||13===c){if(!this.noMatch&&this.byteCache.length===this.boundaryBufLen){this.matchFound=!0,this.mimeStructureStart=this.lineStart;break}this.lineStart=-1,this.noMatch=!1,this.byteCache=[];continue}if(!this.noMatch){if(this.lineStart<0&&(this.lineStart=this.prevChunks+b),this.byteCache.length>=this.boundaryBufLen||this.boundaryBuf[this.byteCache.length]!==c){this.noMatch=!0;continue}this.byteCache[this.byteCache.length]=c}}this.prevChunks+=a.length}}getMimeStructureStart(){return this.boundary?(this.matchFound||this.noMatch||this.byteCache.length!==this.boundaryBufLen||(this.matchFound=!0,this.mimeStructureStart=this.lineStart),this.mimeStructureStart):0}}}},785791,(a,b,c)=>{"use strict";let{Buffer:d}=a.r(951615),e=d.alloc(1024);for(let a=0;a<e.length;a+=2)e[a]=13,e[a+1]=10;b.exports={CHAR_CR:13,CHAR_LF:10,CRLF:e.subarray(0,2),eachHeldLineBreak:(a,b)=>{for(;a>0;){let c=Math.min(a,512);b(e.subarray(0,2*c)),a-=c}}}},977152,(a,b,c)=>{"use strict";let{Buffer:d}=a.r(951615),e=a.r(666680),{MimeStructureStartFinder:f}=a.r(879207),{CHAR_CR:g,CHAR_LF:h,CRLF:i,eachHeldLineBreak:j}=a.r(785791);b.exports={SimpleHash:class{constructor(a,b){a=(a||"sha256").split("-").pop(),this.bodyHash=e.createHash(a),this.remainder=[],this.pendingLineBreaks=0,this.byteLength=0,this.canonicalizedLength=0,this.bodyHashedBytes=0,this.maxBodyLength=b,this.maxSizeReached=0===b,this.mimeStructureStartFinder=new f}setContentType(a){/^multipart\//i.test(a.value)&&a.params.boundary&&this.mimeStructureStartFinder.setBoundary(a.params.boundary)}_updateBodyHash(a){if(this.mimeStructureStartFinder.update(a),this.canonicalizedLength+=a.length,!this.maxSizeReached){if("number"==typeof this.maxBodyLength&&!isNaN(this.maxBodyLength)&&this.maxBodyLength>=0&&this.bodyHashedBytes+a.length>this.maxBodyLength){if(this.maxSizeReached=!0,this.bodyHashedBytes>=this.maxBodyLength)return;a=a.slice(0,this.maxBodyLength-this.bodyHashedBytes)}this.bodyHashedBytes+=a.length,this.bodyHash.update(a)}}update(a){if(!a||!a.length)return;this.byteLength+=a.length;let b=a.length;for(;b>=2&&a[b-2]===g&&a[b-1]===h;)b-=2;let c=b;for(;c>0&&(a[c-1]===h||a[c-1]===g);)c-=1;c&&(this._drainHeldLineEndings(),this._updateBodyHash(a.subarray(0,c))),c<a.length&&this._holdBack(a,c,b)}_holdBack(a,b,c){if(!this.remainder.length&&b===c){this.pendingLineBreaks+=(a.length-c)/2;return}this.remainder.push(a.subarray(b))}_drainHeldLineEndings(){for(let a of(j(this.pendingLineBreaks,a=>this._updateBodyHash(a)),this.pendingLineBreaks=0,this.remainder))this._updateBodyHash(a);this.remainder=[]}digest(a){let b=1===this.remainder.length?this.remainder[0]:d.concat(this.remainder),c=b.length;for(;c>0&&b[c-1]===h;)(c-=1)>0&&b[c-1]===g&&(c-=1);return c&&(j(this.pendingLineBreaks,a=>this._updateBodyHash(a)),this._updateBodyHash(b.subarray(0,c))),this.pendingLineBreaks=0,this._updateBodyHash(i),this.bodyHash.digest(a)}getMimeStructureStart(){return this.mimeStructureStartFinder.getMimeStructureStart()}}}},883283,(a,b,c)=>{"use strict";let{Buffer:d}=a.r(951615),e=a.r(666680),{MimeStructureStartFinder:f}=a.r(879207),{CHAR_CR:g,CHAR_LF:h,CRLF:i,eachHeldLineBreak:j}=a.r(785791);b.exports={RelaxedHash:class{constructor(a,b){a=(a||"sha256").split("-").pop().toLowerCase(),this.bodyHash=e.createHash(a),this.remainder=!1,this.byteLength=0,this.canonicalizedLength=0,this.bodyHashedBytes=0,this.maxBodyLength=b,this.maxSizeReached=0===b,this.pendingLineBreaks=0,this.mimeStructureStartFinder=new f}setContentType(a){/^multipart\//i.test(a.value)&&a.params.boundary&&this.mimeStructureStartFinder.setBoundary(a.params.boundary)}_updateBodyHash(a){if(this.mimeStructureStartFinder.update(a),this.canonicalizedLength+=a.length,!this.maxSizeReached){if("number"==typeof this.maxBodyLength&&!isNaN(this.maxBodyLength)&&this.maxBodyLength>=0&&this.bodyHashedBytes+a.length>this.maxBodyLength){if(this.maxSizeReached=!0,this.bodyHashedBytes>=this.maxBodyLength)return;a=a.subarray(0,this.maxBodyLength-this.bodyHashedBytes)}this.bodyHashedBytes+=a.length,this.bodyHash.update(a)}}_drainPendingEmptyLines(){j(this.pendingLineBreaks,a=>this._updateBodyHash(a)),this.pendingLineBreaks=0}_pushBodyHash(a){if(!a||!a.length)return;let b=a.length;for(;b>=2&&a[b-2]===g&&a[b-1]===h;)b-=2;if(!b){this.pendingLineBreaks+=a.length/2;return}this._drainPendingEmptyLines(),this.pendingLineBreaks=(a.length-b)/2,this._updateBodyHash(a.subarray(0,b))}fixLineBuffer(a){let b=d.alloc(2*a.length),c=b.length-1,e=!1,f=!1;for(let d=a.length-1;d>=0;d--){if(a[d]===h){b[c--]=h,b[c--]=g,d>0&&a[d-1]===g&&d--,e=!1,f=!1;continue}if(32===a[d]||9===a[d]){e&&(f=!0);continue}f&&(b[c--]=32,f=!1),e=!0,b[c--]=a[d]}return f&&e&&(b[c--]=32),b.subarray(c+1)}update(a,b){this.byteLength+=a&&a.length||0;let c=-1,e=!1,f=0;if(this.remainder&&this.remainder.length&&(a=a?d.concat([this.remainder,a]):this.remainder,this.remainder=!1),a&&a.length)for(let b=0;b<a.length;b++)switch(a[b]){case h:if(!e&&(b>=1&&a[b-1]!==g||0===b||b>=2&&a[b-1]===g&&32===a[b-2])&&(e=!0),e){if(c>=0&&c>=f){let b=a.subarray(f,c+1);this._pushBodyHash(b)}let d=a.subarray(c+1,b+1);this._pushBodyHash(this.fixLineBuffer(d)),e=!1,f=b+1}c=b;break;case 32:!e&&b&&32===a[b-1]&&(e=!0);break;case 9:e=!0}if(a&&f<a.length&&f!==c){let b=a.subarray(f,c+1);b.length&&this._pushBodyHash(b),f=c+1}if(a&&!b&&f<a.length&&(this.remainder=a.subarray(f)),b){let b=f&&a&&a.subarray(f)||a;b&&b.length&&this._pushBodyHash(e||32===b[b.length-1]?this.fixLineBuffer(b):b),this.canonicalizedLength&&this._updateBodyHash(i)}}digest(a){return this.update(null,!0),this.bodyHash.digest(a)}getMimeStructureStart(){return this.mimeStructureStartFinder.getMimeStructureStart()}}}},309878,(a,b,c)=>{"use strict";let{SimpleHash:d}=a.r(977152),{RelaxedHash:e}=a.r(883283),{Transform:f}=a.r(81111),g=(a,...b)=>{switch(a=(a||"simple/simple").toString().split("/").pop().toLowerCase().trim()){case"simple":return new d(...b);case"relaxed":return new e(...b);default:{let b=Error("Unknown body canonicalization");throw b.canonicalization=a,b}}};b.exports={dkimBody:g,BodyHashStream:class extends f{constructor(a,...b){super(),this.byteLength=0,this.hasher=g(a,...b),this.bodyHash=null}_transform(a,b,c){if(!a||!a.length)return c();"string"==typeof a&&(a=Buffer.from(a,b)),this.byteLength+=a.length,this.hasher.update(a),this.push(a),c()}_flush(a){this.bodyHash=this.hasher.digest("base64"),this.emit("hash",this.bodyHash),a()}}}},480511,(a,b,c)=>{"use strict";let{formatSignatureHeaderLine:d,getCurTime:e}=a.r(787767);b.exports={buildSignatureOpts:(a,b,c)=>{let{signingDomain:f,selector:g,algorithm:h,canonicalization:i,bodyHash:j,signTime:k,signature:l,instance:m,identity:n,bodyHashedBytes:o,expires:p,timestamp:q,expiration:r}=c||{},s={a:h,c:i,s:g,d:f,h:b.keys,bh:j};"number"==typeof o&&(s.l=o),m&&"ARC"===a?s.i=m:n&&"DKIM"===a&&(s.i=n),"number"==typeof q||!1===q?s.t=!1===q?null:q:s.t=Math.floor(e(k).getTime()/1e3),"number"==typeof r?s.x=r:!1!==r&&p&&(s.x=Math.floor(e(p).getTime()/1e3));let t=d(a,Object.assign({b:l||"a".repeat(73)},s),!0);return{opts:s,signatureHeaderLine:t}}}},524248,(a,b,c)=>{"use strict";let{Buffer:d}=a.r(951615),{formatRelaxedLine:e,stripSignatureValue:f}=a.r(787767),{buildSignatureOpts:g}=a.r(480511);b.exports={relaxedHeaders:(a,b,c)=>{let{signatureHeaderLine:h,strict:i}=c||{},j=[];for(let a of b.headers)j.push(e(a.line,"\r\n"));let k=!1;return h||({opts:k,signatureHeaderLine:h}=g(a,b,c)),j.push(f(e(h),i)),{canonicalizedHeader:d.concat(j),signatureHeaderLine:h,dkimHeaderOpts:k}}}},183781,(a,b,c)=>{"use strict";let{Buffer:d}=a.r(951615),{stripSignatureValue:e}=a.r(787767),{buildSignatureOpts:f}=a.r(480511),g=(a,b)=>d.from(a.toString("binary")+(b||""),"binary");b.exports={simpleHeaders:(a,b,c)=>{let{signatureHeaderLine:h,strict:i}=c||{},j=[];for(let a of b.headers)j.push(g(a.line,"\r\n"));let k=!1;return h||({opts:k,signatureHeaderLine:h}=f(a,b,c)),j.push(e(g(h),i)),{canonicalizedHeader:d.concat(j),signatureHeaderLine:h,dkimHeaderOpts:k}}}},649947,(a,b,c)=>{"use strict";let{relaxedHeaders:d}=a.r(524248),{simpleHeaders:e}=a.r(183781);b.exports={generateCanonicalizedHeader:(a,b,c)=>{let f=((c=c||{}).canonicalization||"simple/simple").toString().split("/").shift().toLowerCase().trim();switch(f){case"simple":return e(a,b,c);case"relaxed":return d(a,b,c);default:{let a=Error("Unknown header canonicalization");throw a.canonicalization=f,a}}}}},99691,(a,b,c)=>{"use strict";let{getSigningHeaderLines:d,formatSignatureHeaderLine:e,defaultDKIMFieldNames:f,defaultARCFieldNames:g,validateAlgorithm:h,getPrivateKey:i,getCurTime:j,toALabel:k,isSameOrSubdomain:l,addWarning:m,createError:n,splitAlgorithm:o}=a.r(787767),{DOMAIN_NAME:p,SELECTOR:q,MAX_ARC_INSTANCE:r,ARC_HEADER_KEYS:s}=a.r(640542),{MessageParser:t}=a.r(480311),{dkimBody:u}=a.r(309878),{generateCanonicalizedHeader:v}=a.r(649947),w=a.r(666680),x=/[^\x21-\x3a\x3c-\x7e]/,y=[...s,"authentication-results"],z=a=>(Array.isArray(a)&&(a=a.map(a=>(a||"").toString().trim()).filter(a=>a).join(":")),!!("string"==typeof a&&a.trim())&&a);b.exports={DkimSigner:class extends t{constructor(a){super();let{canonicalization:b,algorithm:c,signTime:d,headerList:e,signatureData:f,arc:g,bodyHash:h,headers:i,getARChain:j,getArcInstance:k,expires:l,strict:m}=a||{};this.algorithm=c||!1,this.canonicalization=b||"relaxed/relaxed",this.strict=!!m,this.errors=[],this.warnings=[],this.expires=l,this.signTime=d,this.headerList=z(e),this.signatureData=[].concat(f||[]).map(a=>(a.type="DKIM",a)),this.signatureHeaders=[],this.arc=Object.assign({chain:!1},g),this.getARChain=j,this.getArcInstance=k,this.arc.signingDomain&&this.arc.selector&&this.arc.privateKey&&this.signatureData.push({type:"ARC",signingDomain:this.arc.signingDomain,selector:this.arc.selector,privateKey:this.arc.privateKey,canonicalization:"relaxed/relaxed",algorithm:this.arc.algorithm||!1}),this.bodyHashes=new Map,this.bodyHash=h||null,this.headers=i,this.setupHashes()}warn(a){m(this.warnings,a)}violation(a,b,c){if(this.strict)throw n(a,b);this.warn(c)}getCanonicalization(a){let b=a?.canonicalization||this.canonicalization,c=b.split("/").shift().toLowerCase().trim(),d=(b.split("/")[1]||"simple").toLowerCase().trim();return{canonicalization:b,headerCanon:c,bodyCanon:d}}getAlgorithm(a){let b=(a?.algorithm||(a?.type==="ARC"?"":this.algorithm)||"").toLowerCase().trim(),{signAlgo:c,hashAlgo:d}=o(b);return{algorithm:b,signAlgo:c||!1,hashAlgo:d||"sha256"}}setupHashes(){for(let a of this.signatureData){if(!a.privateKey)continue;a.maxBodyLength="number"==typeof a.maxBodyLength&&a.maxBodyLength>=0?a.maxBodyLength:"";let{hashAlgo:b}=this.getAlgorithm(a),{bodyCanon:c}=this.getCanonicalization(a),d=`${c}:${b}:${a.maxBodyLength}`;this.bodyHashes.has(d)||this.bodyHashes.set(d,{bodyCanon:c,hashAlgo:b,hasher:null,hash:this.bodyHash})}}validateCanonicalization(a){try{let[b,c]=a.split("/");if(!["relaxed","simple"].includes(b)){let a=Error("Unknown header canonicalization");throw a.canonicalization=b,a}if(!["relaxed","simple"].includes(c)){let a=Error("Unknown body canonicalization");throw a.canonicalization=c,a}}catch(a){throw a.code="EINVALIDCANON",a}}validateSigningIdentifiers(a){for(let[b,c,d,e]of[["signingDomain","d=",p,"EINVALIDDOMAIN"],["selector","s=",q,"EINVALIDSELECTOR"]]){let f="string"==typeof a[b]?a[b].trim():"",g=k(f);if(!f||x.test(g)){let d=Error(f?`Invalid ${c} value ${JSON.stringify(a[b])}`:`Missing ${c} value`);throw d.code=e,d}d.test(g)||this.violation(`Invalid ${c} value ${JSON.stringify(a[b])}`,e,"signingDomain"===b?"d-syntax":"s-syntax")}}getIdentity(a){if("DKIM"!==a.type||!a.identity)return!1;let b=a.identity.toString().trim(),c=b.lastIndexOf("@"),d=c>=0?k(b.substring(c+1)):"";if(c<0||!d||/[\s;\x00-\x1f\x7f]/.test(b)){let b=Error(`Invalid identity ${JSON.stringify(a.identity)}`);throw b.code="EINVALIDIDENTITY",b}return l(d,a.signingDomain)||this.violation(`Identity domain is not the same as or a subdomain of ${a.signingDomain}`,"EINVALIDIDENTITY","identity-domain"),b}getTimestamps(){let a=Math.floor(j(this.signTime).getTime()/1e3),b=!!this.expires&&Math.floor(j(this.expires).getTime()/1e3),c=a=>Number.isInteger(a)&&a>=0&&a<=0xe8d4a50fff;return c(a)||(this.violation("Signing time can not be represented in a t= tag","EINVALIDTIME","invalid-signtime"),a=!1),!1===b||c(b)||(this.violation("Expiration time can not be represented in an x= tag","EINVALIDTIME","invalid-expiration"),b=!1),!1!==b&&!1!==a&&b<=a&&this.violation("Expiration time must be later than the signing time","EINVALIDTIME","invalid-expiration"),{timestamp:a,expiration:b}}async messageHeaders(a){if(this.headers=a,this.getARChain)try{this.arc.chain=this.getARChain(a),this.arc.chain?.length&&(this.arc.lastEntry=this.arc.chain[this.arc.chain.length-1])}catch(a){this.arc.error=a}for(let a of this.bodyHashes.keys()){let[b,c,d]=a.split(":");this.bodyHashes.get(a).hasher=u(b,c,!!d&&Number(d))}}async nextChunk(a){for(let b of this.bodyHashes.keys())this.bodyHashes.get(b).hasher&&this.bodyHashes.get(b).hasher.update(a)}async finalChunk(){if(this.headers){for(let a of this.bodyHashes.keys())this.bodyHashes.get(a).hasher&&(this.bodyHashes.get(a).hash=this.bodyHashes.get(a).hasher.digest("base64"));return this.finalize()}}getFieldNames(a){let b=z(a.headerList)||this.headerList||("ARC"===a.type?g:f);return"ARC"===a.type&&(b=b.split(":").filter(a=>!y.includes(a.trim().toLowerCase())).join(":")),b}async finalize(){for(let a of this.signatureData||[]){let b,c,f,g;if(!a.privateKey)continue;let j=(b,c)=>{this.errors.push(Object.assign({type:a.type,selector:a.selector,signingDomain:a.signingDomain},c||{},{err:b}))},k=d(this.headers.parsed,this.getFieldNames(a));if(!k.headers.some(a=>"from"===a.key)){let a=Error("Can not sign a message that has no From header");a.code="ENOFROM",j(a);continue}try{if(this.validateSigningIdentifiers(a),b=this.getIdentity(a),c=this.getTimestamps(),"ARC"===a.type&&(f=this.arc.instance||(this.getArcInstance?this.getArcInstance(this.headers):1),!Number.isInteger(f)||f<1||f>r)){let a=Error(`ARC instance ${f} is out of range (1-${r})`);throw a.code="EINVALIDINSTANCE",a}}catch(a){j(a);continue}let{algorithm:l,signAlgo:m,hashAlgo:n}=this.getAlgorithm(a),{canonicalization:o,bodyCanon:p}=this.getCanonicalization(a);try{this.validateCanonicalization(o)}catch(b){this.errors.push({algorithm:l,canonicalization:o,selector:a.selector,signingDomain:a.signingDomain,err:b});continue}try{g=i(a.privateKey)}catch(b){this.errors.push({selector:a.selector,signingDomain:a.signingDomain,err:b});continue}let q=`${p}:${n}:${a.maxBodyLength}`;try{let a=g.asymmetricKeyType;if(m&&a!==m){let b=Error(`Invalid key type: "${a}" (expecting "${m}")`);throw b.code="EINVALIDTYPE",b}if(!["rsa","ed25519"].includes(a)){let b=Error(`Unsupported key type: "${a}"`);throw b.code="EINVALIDTYPE",b}m||(m=a),l=`${m}-${n}`,"rsa"===a&&g.asymmetricKeyDetails?.modulusLength<1024&&this.violation(`RSA key too short (${g.asymmetricKeyDetails.modulusLength} bits, at least 1024 required)`,"ESHORTKEY","weak-key")}catch(b){this.errors.push({selector:a.selector,signingDomain:a.signingDomain,err:b});continue}try{if(this.strict&&"sha1"===n){let a=Error("rsa-sha1 is not allowed for signing");throw a.code="EINVALIDALGO",a}h(l,"ARC"===a.type),"sha1"===n&&this.warn("rsa-sha1")}catch(b){this.errors.push({algorithm:l,canonicalization:o,selector:a.selector,signingDomain:a.signingDomain,err:b});continue}let{canonicalizedHeader:s,dkimHeaderOpts:t}=v(a.type,k,Object.assign({},a,{instance:"ARC"===a.type&&f,identity:b,algorithm:l,canonicalization:this.getCanonicalization(a).canonicalization,signTime:this.signTime,expires:this.expires,timestamp:c.timestamp,expiration:c.expiration,bodyHash:this.bodyHashes.has(q)?this.bodyHashes.get(q).hash:null},"number"==typeof a.maxBodyLength?{bodyHashedBytes:this.bodyHashes.get(q).hasher.bodyHashedBytes,canonicalizedLength:this.bodyHashes.get(q).hasher.canonicalizedLength,sourceBodyLength:this.bodyHashes.get(q).hasher.byteLength}:{}));try{t.b=w.sign("rsa"===m?l:null,"rsa"===m?s:w.createHash("sha256").update(s).digest(),g).toString("base64");let b=e(a.type,t,!0);"ARC"===a.type?this.arc.messageSignature=b:this.signatureHeaders.push(b)}catch(b){this.errors.push({type:a.type,algorithm:l,selector:a.selector,signingDomain:a.signingDomain,err:b})}}}}}},833579,(a,b,c)=>{"use strict";let{writeToStream:d}=a.r(787767),{DkimSigner:e}=a.r(99691),{Transform:f}=a.r(81111),{Buffer:g}=a.r(951615),h=a=>a.length?a.join("\r\n")+"\r\n":"";b.exports={dkimSign:async(a,b)=>{let c=new e(b);return await d(c,a),{signatures:h(c.signatureHeaders),arc:c.arc,errors:c.errors,warnings:c.warnings}},DkimSignStream:class extends f{constructor(a){super(a),this.signer=new e(a),this.chunks=[],this.chunklen=0,this.errors=null,this.warnings=null,this.finished=!1,this.finishCb=null,this.signer.on("end",()=>this.finishStream()),this.signer.on("finish",()=>this.finishStream()),this.signer.on("error",a=>{this.finished=!0,this.destroy(a)})}finishStream(){if(this.finished||!this.finishCb)return;this.finished=!0;let a=this.finishCb;this.finishCb=null,this.errors=this.signer.errors,this.warnings=this.signer.warnings;let b=h(this.signer.signatureHeaders);b&&this.push(g.from(b)),this.push(g.concat(this.chunks,this.chunklen)),a()}_transform(a,b,c){return a&&a.length&&!this.finished?("string"==typeof a&&(a=g.from(a,b)),this.chunks.push(a),this.chunklen+=a.length,!1===this.signer.write(a))?this.signer.once("drain",c):void c():c()}_flush(a){if(this.finished)return a();this.finishCb=a,this.signer.end()}}}},459017,(a,b,c)=>{"use strict";let{Buffer:d}=a.r(951615),{isIP:e}=a.r(761095),{parseDkimHeaders:f,formatRelaxedLine:g,stripSignatureValue:h,formatAuthHeaderRow:i,formatSignatureHeaderLine:j,writeToStream:k,validateAlgorithm:l,createError:m,addWarning:n,KEY_ERROR_COMMENTS:o,splitAlgorithm:p,createKeyCache:q}=a.r(787767),{TIMESTAMP:r,BODY_LENGTH:s,MAX_ARC_INSTANCE:t,ARC_HEADER_KEYS:u}=a.r(640542),v=a.r(666680),{DkimSigner:w}=a.r(99691),x=["none","pass","fail"],y=/^[0-9]{1,2}$/,z="(?:[ \\t\\r\\n]|\\([^()\\\\]*\\))*",A=RegExp(`^${z}i${z}=${z}([0-9]{1,2})${z};`),B={"arc-seal":["a","b","cv","d","s"],"arc-message-signature":["a","b","bh","d","h","s"]},C={"arc-seal":[["t",r]],"arc-message-signature":[["t",r],["x",r],["l",s]]},D={"arc-seal":"as","arc-message-signature":"ams","arc-authentication-results":"aar"},E=a=>(a?.["arc-seal"]?.parsed?.cv?.value||"").toString().toLowerCase().trim(),F=(a,b)=>{let{highest:c,latestCv:d}=(a=>{let b=0,c=!1;for(let d of a?.parsed||[]){let a;if(!u.includes(d.key))continue;try{a=f(d.line)?.parsed}catch(a){continue}let e=a?.i?.value;"number"==typeof e&&Number.isInteger(e)&&!(e<1)&&(e>b&&(b=e,c=!1),e===b&&"arc-seal"===d.key&&"string"==typeof a?.cv?.value&&(c=a.cv.value.toLowerCase().trim()))}return{highest:b,latestCv:c}})(a),e=!!b?.length&&b[b.length-1];return e&&e.i>=c&&(c=e.i,d=E(e)||d),{highest:c,latestCv:d}},G=a=>`${a.parsed?.s?.value}._domainkey.${a.parsed?.d?.value}`,H=async(a,b)=>{let c,e,{strict:f,warnings:i,keyCache:j}=b||{},k=[];for(let b=0;b<a.length;b++){let d=b===a.length-1,e=a[b];if(k.push(g(e["arc-authentication-results"].original,"\r\n")),k.push(g(e["arc-message-signature"].original,"\r\n")),d){if(c=e["arc-seal"],!c.parsed?.s?.value||!c.parsed?.d?.value)throw m("Invalid ARC-Seal header","invalid_arc_seal");k.push(h(g(e["arc-seal"].original),f))}else k.push(g(e["arc-seal"].original,"\r\n"))}let o=(c.parsed?.a?.value||"").toString().toLowerCase().trim();try{l(o,!0)}catch(b){throw m(`i=${a.length} invalid seal algorithm`,"invalid_arc_seal")}let{signAlgo:q}=p(o),r=d.concat(k),s=G(c);try{let a=await j.get("AS",s,b?.minBitLength,{strict:f,hashAlgo:"sha256"});if(e=a?.publicKey,a?.keyType&&a.keyType!==q)throw m("Key type does not match the seal algorithm","EINVALIDKEYALGO");Array.isArray(i)&&n(i,...a?.warnings||[])}catch(a){throw a.queryDomain=s,a}let t=!1;try{t=v.verify("rsa"===q?"sha256":null,"rsa"===q?r:v.createHash("sha256").update(r).digest(),e,d.from(c.parsed?.b?.value||"","base64"))}catch(a){t=!1}if(!t)throw m(`i=${a.length} seal signature validation failed`,"failing_arc_seal");return!0},I=async(a,b,c)=>{let{instance:e,algorithm:f,selector:i,signingDomain:k,bodyHash:l,cv:m,signTime:n,privateKey:o}=c;e=e||1;let{signAlgo:q}=p(f);n=n||new Date;let r=[];if("pass"===m)for(let b=0;b<a.length;b++){let c=a[b];r.push(g(c["arc-authentication-results"].original,"\r\n")),r.push(g(c["arc-message-signature"].original,"\r\n")),r.push(g(c["arc-seal"].original,"\r\n"))}r.push(g(b["arc-authentication-results"],"\r\n")),r.push(g(b["arc-message-signature"],"\r\n"));let s={i:e,a:f,s:i,d:k,cv:m,bh:l};n&&(("string"==typeof n||"number"==typeof n)&&(n=new Date(n)),"[object Date]"===Object.prototype.toString.call(n)&&"Invalid Date"!==n.toString()&&(s.t=n=Math.floor(n.getTime()/1e3)));let t=j("AS",Object.assign({b:"a".repeat(73)},s),!0);r.push(h(g(t)));let u=d.concat(r);return s.b=v.sign("rsa"===q?f:null,"rsa"===q?u:v.createHash("sha256").update(u).digest(),o).toString("base64"),j("AS",s,!0)},J=async(a,b)=>{if(!a?.chain?.length)return!1;let c=a.chain;(b=Object.assign({},b)).keyCache||(b.keyCache=q(b.resolver));for(let a=0;a<c.length;a++){let b=c[a];if(b?.i!==a+1)throw m(`i=${b?.i} expected=${a+1}`,"invalid_arc_instance");for(let a of u)if(!b[a])throw m(`i=${b.i} no ${a} set`,"missing_arc_header");let d=E(b);if(d!==(0===a?"none":"pass"))throw m(`i=${b.i} cv=${d}`,"invalid_cv_value")}for(let a of c){let c=a["arc-seal"];c.parsed?.s?.value&&c.parsed?.d?.value&&b.keyCache.get("AS",G(c),b.minBitLength,{strict:b.strict,hashAlgo:"sha256"})}for(let a=c.length-1;a>=0;a--)await H(c.slice(0,a+1),b);return!0},K=(a,b,c)=>{if("arc-authentication-results"===a){let a=(c||"").toString("binary");a=a.substring(a.indexOf(":")+1);let b=A.exec(a);return b?b[1]:null}let d=(b?.tags||[]).find(a=>"i"===a.name);return d?d.value:null},L=(a,b,c,d)=>{let e=a[b],f=e.tags||[],g=[].concat(e.syntaxErrors||[]),h=new Map;for(let a of f)h.set(a.name,a.value);for(let a of B[b])h.has(a)||g.push(`missing ${a}=`);for(let[a,c]of C[b])h.has(a)&&!c.test(h.get(a))&&g.push(`invalid ${a}=`);if(c){if(g.length)throw m(`i=${a.i} ${D[b]} ${g[0]}`,"invalid_arc_tags");return}(g.length||f.some(a=>a.name!==a.name.toLowerCase()))&&d("arc-tag-syntax")},M=(a,b)=>{let c=!!(b=b||{}).strict,d=a=>{Array.isArray(b.warnings)&&n(b.warnings,a)},e=a&&a.parsed||[],g=new Map;for(let a of e)if(u.includes(a.key)){let b,e=f(a.line,{strict:c}),h=K(a.key,e,a.line),i="string"==typeof h&&y.test(h)&&Number(h)>=1&&Number(h)<=t;if(c){if(!i)throw m(`invalid ${D[a.key]} instance`,"invalid_arc_instance");b=Number(h)}else b=e?.parsed?.i?.value,i||d("arc-instance-syntax");if(b){if(g.has(b)){if(g.get(b)[a.key])throw m(`i=${b} multiple ${a.key} values`,"multiple_arc_keys")}else g.set(b,{i:b});g.get(b)[a.key]=e}}if(!(g=Array.from(g.values()).sort((a,b)=>a.i-b.i)).length)return!1;if(g.length>t)throw m(`chain-length=${g.length}`,"invalid_arc_count");for(let a=0;a<g.length;a++){let b=g[a],e=a===g.length-1;if(b.i!==a+1)throw m(`i=${b.i} expected=${a+1}`,"invalid_arc_instance");for(let a of u)if(!b[a])throw m(`i=${b.i} no ${a} set`,"missing_arc_header");L(b,"arc-seal",c,d),e&&L(b,"arc-message-signature",c,d);let f=E(b);if(0===a&&"none"!==f)throw m(`i=1 cv="${b["arc-seal"]?.parsed?.cv?.value}`,"invalid_cv_value");if(b["arc-seal"]?.parsed?.a&&!b["arc-seal"]?.parsed?.a?.value)throw m(`i=${b.i} empty a`,"invalid_a_value");if(!b["arc-seal"]?.parsed?.a?.value)throw m(`i=${b.i} missing a`,"missing_a_value");if(l(b["arc-seal"]?.parsed?.a?.value,!0),l(b["arc-message-signature"]?.parsed?.a?.value,!0),a>0&&"pass"!==f)throw m(`i=${b.i} cv=${b["arc-seal"]?.parsed?.cv?.value}`,"invalid_cv_value");if(b["arc-seal"]?.parsed?.h)throw m(`i=${b.i} unexpected as h`,"unexpected_as_h_value");let h=b["arc-message-signature"]?.parsed?.h?.value?.toString().trim().toLowerCase().split(":").map(a=>a.trim()).filter(a=>a);if(h?.some(a=>"arc-seal"===a))throw m(`i=${b.i} invalid ams h`,"invalid_ams_h_value")}return g},N=async(a,b)=>{let c=!!(b=b||{}).strict,d={result:"none"},f={status:d};Object.defineProperty(f,"chain",{enumerable:!1,configurable:!1,writable:!1,value:a.chain});let g=[].concat(a?.warnings||[]);try{if(a.error)throw a.error;if(await J(a,{resolver:b.resolver,minBitLength:b.minBitLength,strict:c,warnings:g,keyCache:a.keyCache?.resolver===b.resolver?a.keyCache:void 0})){if(f.i=a?.lastEntry?.i||!1,f.signature=a?.lastEntry?.messageSignature||!1,f?.signature?.status?.result!=="pass")throw m(`i=${f.i} no valid signature`,"missing_valid_ams");if(n(g,...f.signature.status.warnings||[]),f.authenticationResults=a?.lastEntry?.["arc-authentication-results"]?.parsed,f.authenticationResults){if(delete f.authenticationResults.i,delete f.authenticationResults.header,f.authenticationResults.value){let a=f.authenticationResults.value;delete f.authenticationResults.value,f.authenticationResults=Object.assign({mta:a},f.authenticationResults)}["arc","spf","dmarc"].forEach(a=>{if(f.authenticationResults[a]){let b=f.authenticationResults[a].value;delete f.authenticationResults[a].value,f.authenticationResults[a]=Object.assign({result:b},f.authenticationResults[a])}}),f.authenticationResults.dkim&&f.authenticationResults.dkim.length&&(f.authenticationResults.dkim=f.authenticationResults.dkim.map(a=>{let b=a.value;return delete a.value,Object.assign({result:b},a)}))}d.result="pass"}else f.i=0,d.result="none"}catch(b){switch(f.i=a?.lastEntry?.i||!1,d.result="fail",d.shouldSeal=["pass","none"].includes(E(a?.lastEntry)),b.code){case"invalid_arc_seal":case"failing_arc_seal":case"multiple_arc_keys":case"invalid_arc_count":case"invalid_arc_instance":case"missing_arc_header":case"invalid_cv_value":case"unexpected_as_h_value":case"invalid_ams_h_value":case"missing_valid_ams":case"invalid_arc_tags":d.comment=b.message.toLowerCase().replace(/["'()]/g," ").replace(/\s+/g," ").trim().substr(0,128);break;case"ENOTFOUND":case"ENODATA":case"EINVALIDVER":case"EINVALIDTYPE":case"EINVALIDVAL":case"EINVALIDHASH":case"EINVALIDSERVICE":b.queryDomain&&(d.comment=`${o.get(b.code)} for ${b.queryDomain}`);break;case"EINVALIDKEYALGO":b.queryDomain&&(d.comment=`inappropriate key algorithm for ${b.queryDomain}`);break;case"ESHORTKEY":d.policy={"dkim-rules":"weak-key"},b.queryDomain&&(d.comment=`weak key for ${b.queryDomain}`)}}if(c&&b.ip&&e(b.ip.toString())&&(d.smtp={"remote-ip":b.ip.toString()}),"none"!==d.result||c){if("pass"===d.result&&f.authenticationResults){let a=[`i=${f.i}`,!!f.authenticationResults.spf&&`spf=${f.authenticationResults.spf.result}`];if(f.authenticationResults.dkim&&f.authenticationResults.dkim.length)for(let b of f.authenticationResults.dkim)a.push(`dkim=${b.result}`),"string"==typeof b?.header?.i&&a.push(`dkdomain=${b.header.i.replace(/^@/,"")}`);f.authenticationResults.dmarc&&(a.push(`dmarc=${f.authenticationResults.dmarc.result}`),"string"==typeof f.authenticationResults.dmarc?.header?.from&&a.push(`fromdomain=${f.authenticationResults.dmarc.header.from}`)),d.comment=a.filter(a=>a).join(" ")}f.info=i("arc",d,{strict:c})}return g.length&&"fail"!==d.result&&(f.warnings=g),f},O=(a,b)=>({type:"ARC",selector:a?.selector,signingDomain:a?.signingDomain,err:b}),P=a=>null!=a&&!1!==a&&""!==a,Q=async(a,b)=>{let c,d,{headers:e,arc:g,seal:h}=b,i=h?.bodyHash,j=!!(b.strict||h?.strict),o=[],p=()=>n([].concat(c?.warnings||[]),...o),q=(a,b)=>({headers:[],errors:[O(h,m(a,b))],warnings:p()}),r=P(h.i);if(r){let a=Number(h.i);if(!Number.isInteger(a)||a<1||a>t)return q(`ARC instance ${JSON.stringify(h.i)} is out of range (1-${t})`,"EINVALIDINSTANCE");h.i=a}let s=!1;if(P(h.cv)&&(s=h.cv.toString().toLowerCase().trim(),!x.includes(s)))return q(`Invalid cv value ${JSON.stringify(h.cv)} (expecting "none", "pass" or "fail")`,"EINVALIDCV");let u=!1;if(h.algorithm){u=h.algorithm.toString().toLowerCase().trim();try{l(u,!0)}catch(a){return q(`Unsupported ARC algorithm ${JSON.stringify(h.algorithm)}`,"EINVALIDALGO")}}if(c=new w({headers:e,bodyHash:h.bodyHash,signTime:h.signTime,headerList:h.headerList,strict:j,arc:{instance:h.i,algorithm:u,signingDomain:h.signingDomain,selector:h.selector,privateKey:h.privateKey},getARChain:M,getArcInstance:a=>F(a,(g||c.arc)?.chain).highest+1}),a){await k(c,a);let{hashAlgo:b}=c.getAlgorithm(h),{bodyCanon:d}=c.getCanonicalization(h),f=`${d}:${b}:`;i=c.bodyHashes.get(f)?.hash,e=c.headers,g=g||c.arc}else await c.finalize();let{highest:v,latestCv:y}=F(e,g?.chain);if(!r){if(v>=t)return q(`Can not add ARC set i=${v+1}, the chain already has ${v} sets`,"EINVALIDINSTANCE");h.i=v+1}if("fail"===y)return q(`The newest ARC-Seal (i=${v}) has cv=fail, the chain can not be sealed again`,"EARCCHAINFAILED");if(h.i<=v)return q(`ARC instance ${h.i} already exists on the message (highest instance ${v})`,"EINVALIDINSTANCE");if(h.i!==v+1){if(j)return q(`ARC instance ${h.i} does not follow the highest existing instance ${v}`,"EINVALIDINSTANCE");n(o,"arc-instance-gap")}if(!s){if(1!==h.i)return q(`A cv value is required for ARC instance ${h.i}`,"EINVALIDCV");s="none"}if(1===h.i!=("none"===s)){if(j)return q(`cv=${s} is not valid for ARC instance ${h.i}`,"EINVALIDCV");n(o,"arc-cv-instance")}if("pass"===s&&h.i>1&&!g?.chain?.length)return q("cv=pass needs a valid ARC chain to seal","EINVALIDCV");let z=c.arc?.messageSignature;if(!z)return{headers:[],errors:c.errors,warnings:p()};let A=`ARC-Authentication-Results: i=${h.i}; ${h.authResults}`,B=(f(z)?.parsed?.a?.value||u||"rsa-sha256").toString().toLowerCase();try{d=await I(g?.chain||[],{"arc-authentication-results":A,"arc-message-signature":z},{instance:h.i,algorithm:B,signingDomain:h.signingDomain,selector:h.selector,bodyHash:i,cv:s,signTime:h.signTime,privateKey:h.privateKey})}catch(a){return{headers:[],errors:c.errors.concat(O(h,a)),warnings:p()}}return{headers:[d,z,A],errors:c.errors,warnings:p()}},R=async(a,b)=>{let{headers:c}=await Q(a,{seal:b});return c.length?d.from(c.join("\r\n")+"\r\n"):d.from("")};b.exports={getARChain:M,verifyASChain:J,arc:N,createSeal:Q,sealMessage:R}},283967,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.default=function a(b,c){let j=(c=c||{})._depth||0;if(j>50)return[];let n=new m(b).tokenize(),o=[],p=[],q=[];n.forEach(a=>{"operator"===a.type&&(","===a.value||";"===a.value)?(p.length&&o.push(p),p=[]):p.push(a)}),p.length&&o.push(p),o.forEach(b=>{let c=function(b,c){let j=!1,m="text",n=[],o={address:[],comment:[],group:[],text:[],textWasQuoted:[]},p=!1,q={address:"",comment:"",group:"",text:""};for(let a=0,c=b.length;a<c;a++){let c=b[a],d=a?b[a-1]:null;if("operator"===c.type)switch(c.value){case"<":m="address",p=!1;break;case"(":m="comment",p=!1;break;case":":m="group",j=!0,p=!1;break;case'"':p=!p,m="text";break;default:m="text",p=!1}else if(c.value){let e=a>1?b[a-2]:null,f=d?.type==="operator"&&'"'===d.value&&!!d.noBreak&&e?.type==="operator"&&'"'===e.value;"address"===m&&(c.value=c.value.replace(/^[^<]*<\s*/,""));let g=o[m];d&&d.noBreak&&g.length&&(")"!==d.value||"@"===q[m]||"@"===c.value.charAt(0))?(o[m][o[m].length-1]+=c.value,c.value&&(q[m]=c.value.charAt(c.value.length-1)),"text"===m&&p&&(o.textWasQuoted[o.textWasQuoted.length-1]=!0)):(o[m].push(c.value),q[m]=c.value.charAt(c.value.length-1),"text"===m&&o.textWasQuoted.push(p||f))}}if(!o.text.length&&o.comment.length&&(o.text=o.comment,o.comment=[]),j){o.text=o.text.join(" ");let b=[];o.group.length&&a(o.group.join(","),{_depth:c+1}).forEach(a=>{a.group?b=b.concat(a.group):b.push(a)}),n.push({name:o.text||"",group:b})}else{if(!o.address.length&&o.text.length){for(let a=o.text.length-1;a>=0;a--)if(!o.textWasQuoted[a]&&f.test(o.text[a])){o.address=o.text.splice(a,1),o.textWasQuoted.splice(a,1);break}if(!o.address.length){let a=!1;for(let b=o.text.length-1;b>=0;b--)if(!o.textWasQuoted[b]){let c=o.text[b],d=c,e=function(a){let b=a.length,c=0;for(;c<b;){for(;c<b&&i(a.charCodeAt(c));)c++;if(c>=b)break;let d=c,e=c;for(;e<b&&!i(a.charCodeAt(e));)e++;let f=l(a,d,e);if(f>=0){let b=-1;for(let c=e;c>d;c--)if(k(a,c)){b=c;break}let c=d;for(;b>=0&&f>=0;){if(f>c&&e>f+1&&b>f+1){for(let b=c;b<f;b++)if(k(a,b)){if(b>d)return b;let c=d;for(;c>0&&i(a.charCodeAt(c-1));)c--;return c}}f=l(a,c=f+1,e)}}c=e}return -1}(c);if(e>=0){h.lastIndex=e;let b=h.exec(c);b&&(o.address=[b[0].trim()],a=!0,d=c.slice(0,e)+" "+c.slice(e+b[0].length))}if(o.text[b]=d.trim(),a)break}}}!o.text.length&&o.comment.length&&(o.text=o.comment,o.comment=[]),o.address.length>1&&(o.text=o.text.concat(o.address.splice(1)));let a=!o.address.length&&o.textWasQuoted.some(a=>a);o.text=o.text.join(" "),o.address=o.address.join(" "),a&&o.text&&(o.address=function(a){let b=a.lastIndexOf("@");if(b<0)return a;let c=a.substr(0,b);return/^[^\s"(),:;<>@[\\\]]+$/.test(c)||/^"(?:[^"\\]|\\[\s\S])*"$/.test(c)?a:'"'+c.replace(/["\\]/g,"\\$&")+'"@'+a.substr(b+1)}(o.text),o.text=""),function(a){let b,c;if(!d.test(a.address))return;let h=a.address.match(e);if(h){if(!h[2])return;b=h[1],c=[h[2]]}else{if(a.address.indexOf('"')>=0)return;let d=a.address.split(/\s+/),e=d.findIndex(a=>f.test(a));if(e<0&&(e=d.findIndex(a=>g.test(a))),e<0)return;b=d.splice(e,1)[0],c=d}a.address=b,a.text=[a.text].concat(c).filter(a=>a).join(" ")}(o);let b={address:o.address||o.text||"",name:o.text||o.address||""};b.address===b.name&&(/@/.test(b.address||"")?b.name="":b.address=""),n.push(b)}return n}(b,j);for(let a=0;a<c.length;a++)q.push(c[a])});let r=[];for(let a=q.length-1;a>=0;a--){let b=q[a],c=r.length?r[r.length-1]:null;c&&""===b.address&&b.name&&!b.group&&c.address&&c.name?c.name=b.name+", "+c.name:r.push(b)}if(r.reverse(),q=r,c.flatten){let a=[],b=c=>{c.forEach(c=>{if(c.group)return b(c.group);a.push(c)})};return b(q),a}return q};let d=/\s/,e=/^("(?:[^"\\]|\\[\s\S])*"@\S+)(?:\s+([\s\S]+))?$/,f=/^[^@\s]+@[^@\s]+$/,g=/^[^@\s]+@\S+$/,h=/\s*\b[^@\s]+@[^\s]+\b\s*/y;function i(a){return 32===a||a>=9&&a<=13||160===a||5760===a||a>=8192&&a<=8202||8232===a||8233===a||8239===a||8287===a||12288===a||65279===a}function j(a){return a>=48&&a<=57||a>=65&&a<=90||a>=97&&a<=122||95===a}function k(a,b){return j(a.charCodeAt(b-1))!==j(a.charCodeAt(b))}function l(a,b,c){for(let d=b;d<c;d++)if(64===a.charCodeAt(d))return d;return -1}class m{constructor(a){this.str=(a||"").toString(),this.operatorCurrent="",this.operatorExpecting="",this.node=null,this.escaped=!1,this.inDomainLiteral=!1,this.list=[],this.operators={'"':'"',"(":")","<":">",",":"",":":";",";":""}}tokenize(){let a=[];for(let a=0,b=this.str.length;a<b;a++){let c=this.str.charAt(a),d=a<b-1?this.str.charAt(a+1):null;this.checkChar(c,d)}return this.list.forEach(b=>{b.value=(b.value||"").toString().trim(),b.value&&a.push(b)}),a}checkChar(a,b){if(this.escaped||this.operatorExpecting||(this.inDomainLiteral||"["!==a?this.inDomainLiteral&&("]"===a||","===a||";"===a)&&(this.inDomainLiteral=!1):this.inDomainLiteral=!0),this.escaped);else if(a===this.operatorExpecting){this.node={type:"operator",value:a},b&&![" "," ","\r","\n",",",";"].includes(b)&&(this.node.noBreak=!0),this.list.push(this.node),this.node=null,this.operatorExpecting="",this.escaped=!1;return}else if(!this.operatorExpecting&&!this.inDomainLiteral&&a in this.operators){this.node={type:"operator",value:a},this.list.push(this.node),this.node=null,this.operatorExpecting=this.operators[a],this.escaped=!1;return}else if(['"',"'"].includes(this.operatorExpecting)&&"\\"===a){this.escaped=!0;return}this.node||(this.node={type:"text",value:""},this.list.push(this.node)),"\n"===a&&(a=" "),(a.charCodeAt(0)>=33||[" "," "].includes(a))&&(this.node.value+=a),this.escaped=!1}}b.exports=c.default,Object.defineProperty(b.exports,"default",{value:c.default,enumerable:!1,writable:!0,configurable:!0})},419159,(a,b,c)=>{"use strict";let{Buffer:d}=a.r(951615),{getSigningHeaderLines:e,parseDkimHeaders:f,formatAuthHeaderRow:g,getAlignment:h,getCurTime:i,toALabel:j,normalizeDomainName:k,isSameOrSubdomain:l,addWarning:m,KEY_ERROR_COMMENTS:n,splitAlgorithm:o,isSupportedAlgorithm:p,createKeyCache:q}=a.r(787767),{DOMAIN_NAME:r,SELECTOR:s,TIMESTAMP:t,BODY_LENGTH:u}=a.r(640542),{MessageParser:v}=a.r(480311),{dkimBody:w}=a.r(309878),{generateCanonicalizedHeader:x}=a.r(649947),{getARChain:y}=a.r(459017),z=a.r(283967),A=a.r(666680),B=a.r(69127),C=/^[A-Za-z][A-Za-z0-9]*-[A-Za-z][A-Za-z0-9]*$/,D=/^(?:(?:[A-Za-z0-9!#$%&'*+\-/=?^_`{|}~]|[^\x00-\x7f])+(?:\.(?:[A-Za-z0-9!#$%&'*+\-/=?^_`{|}~]|[^\x00-\x7f])+)*|"(?:[^"\\\r\n]|\\.)*")$/,E=["v","a","b","bh","d","h","s"],F=a=>(a.split("/")[1]||"simple").toLowerCase().trim(),G=a=>(a||"").toString().split(":").map(a=>a.replace(/^[ \t\r\n]+|[ \t\r\n]+$/g,"").toLowerCase()).filter(a=>a);b.exports={DkimVerifier:class extends v{constructor(a){if(super(),this.options=a||{},this.resolver=this.options.resolver,this.minBitLength=this.options.minBitLength,this.strict=!!this.options.strict,this.rejectRsaSha1=this.strict||!!this.options.rejectRsaSha1,this.curTime=i(this.options.curTime),this.results=[],this.signatureHeaders=[],this.bodyHashes=new Map,this.headerFrom=[],this.fromFields=0,this.envelopeFrom=!1,this.arc={chain:!1,warnings:[]},this.keyCache=q(this.resolver),Object.defineProperty(this.arc,"keyCache",{value:this.keyCache,enumerable:!1,configurable:!0,writable:!0}),this.seal=this.options.seal,this.seal){let a="relaxed",b="sha256";this.sealBodyHashKey=`${a}:${b}:`,this.bodyHashes.set(this.sealBodyHashKey,w(a,b,!1))}}async messageHeaders(a){this.headers=a;try{this.arc.chain=y(a,{strict:this.strict,warnings:this.arc.warnings}),this.arc.chain?.length&&(this.arc.lastEntry=this.arc.chain[this.arc.chain.length-1])}catch(a){this.arc.error=a}this.signatureHeaders=a.parsed.filter(a=>"dkim-signature"===a.key).map(a=>{let b=f(a.line,{strict:this.strict});return b.type="DKIM",b});let b=a?.parsed?.filter(a=>"from"===a.key);for(let a of(this.fromFields=b.length,b)){let b=(a=a.line.toString()).indexOf(":");for(let c of(b>=0&&(a=a.substr(b+1)),z(a.trim())))for(let a of[].concat(c?.group||c||[]))a&&a.address&&this.headerFrom.push(a.address)}if(this.options.sender){let a=z(this.options.sender);this.envelopeFrom=!!a.length&&!!a[0].address&&a[0].address}else{let b=a.parsed.filter(a=>"return-path"===a.key).pop();if(b){let a=(b=b.line.toString()).indexOf(":");a>=0&&(b=b.substr(a+1));let c=z(b.trim());this.envelopeFrom=!!c.length&&!!c[0].address&&c[0].address}}if(this.arc.lastEntry){let a=this.arc.lastEntry["arc-message-signature"];a.type="ARC",this.signatureHeaders.push(a),this.strict||a.parsed?.c||(a.fallbackCanonicalization="relaxed/relaxed")}for(let a of this.signatureHeaders){if(this.prepareSignature(a),a.skip||a.invalid)continue;a.bodyHashKey=this.addBodyHash(a.bodyCanon,a.hashAlgo,a.maxBodyLength),a.fallbackCanonicalization&&(a.fallbackBodyHashKey=this.addBodyHash(F(a.fallbackCanonicalization),a.hashAlgo,a.maxBodyLength));let b=this.headers.parsed,c="function"==typeof b.findLast?b.findLast:b.find;"function"!=typeof b.findLast&&(b=[].concat(b).reverse());let d=c.call(b,a=>"content-type"===a.key);if(d){let a=d.line.toString();a.indexOf(":")>=0&&(a=a.substring(a.indexOf(":")+1).trim());let b=B.parseHeaderValue(a);for(let a of this.bodyHashes.values())a.setContentType(b)}}}addBodyHash(a,b,c){let d=[a,b,c].join(":");return this.bodyHashes.has(d)||this.bodyHashes.set(d,w(a,b,c)),d}prepareSignature(a){let b=this.strict,c="DKIM"===a.type;a.warnings=[];let e=(c,d)=>b?(a.invalid=c,!0):(d&&m(a.warnings,d),!1),f=new Map;for(let b of a.tags||[])f.set(b.name,b.value);let g=a.syntaxErrors||[],h=(a.tags||[]).some(a=>a.name!==a.name.toLowerCase()),i=a.parsed||{};a.algorithm=(i.a?.value||"").toString(),Object.assign(a,o(a.algorithm)),a.canonicalization=(i.c?.value||"").toString(),a.headerCanon=a.canonicalization.split("/").shift().toLowerCase().trim()||"simple",a.bodyCanon=F(a.canonicalization),a.signingDomain=(i.d?.value||"").toString(),a.selector=(i.s?.value||"").toString(),a.timestamp=i.t&&!isNaN(i.t.value)?new Date(1e3*i.t.value):null,a.expiration=i.x&&!isNaN(i.x.value)?new Date(1e3*i.x.value):null,a.maxBodyLength="number"!=typeof i.l?.value||isNaN(i.l.value)?"":i.l.value,c&&i.i&&"string"==typeof i.i.value?a.identity=(a=>{let b=d.from((a||"").toString().replace(/[ \t\r\n]+/g,""),"utf8"),c=[];for(let a=0;a<b.length;a++)61===b[a]&&a+2<b.length&&/^[0-9A-Fa-f]{2}$/.test(b.subarray(a+1,a+3).toString())?(c.push(parseInt(b.subarray(a+1,a+3).toString(),16)),a+=2):c.push(b[a]);return d.from(c).toString("utf8")})(i.i.value):c&&(a.identity=a.signingDomain?`@${a.signingDomain}`:"");let k=["relaxed","simple"];if(!p(a.signAlgo,a.hashAlgo,c)||b&&!C.test(a.algorithm)){a.skip="unknown algorithm";return}if(!k.includes(a.headerCanon)||!k.includes(a.bodyCanon)){a.skip="unknown canonicalization";return}if(!a.signingDomain||!a.selector){a.skip="signature missing required tag";return}if(c){if(g.length&&e("signature syntax error","tag-syntax"))return;h&&m(a.warnings,"tag-syntax");let b=E.filter(a=>!i[a]);if(b.length){if(e("signature missing required tag"))return;b.forEach(b=>{let c;return c=`missing-${b}`,m(a.warnings,c)})}if(i.v&&"1"!==f.get("v")&&e("incompatible version","invalid-v")||[["t",t],["x",t],["l",u]].some(([a,b])=>i[a]&&!b.test(f.get(a)||""))&&e("signature syntax error","tag-syntax")||i.h&&!G(i.h.value).length&&e("signature syntax error")||(!r.test(j(a.signingDomain))||!s.test(j(a.selector)))&&e("signature syntax error","tag-syntax")||i.q&&!(i.q.value||"").toString().split(":").map(a=>a.trim().toLowerCase()).includes("dns/txt")&&e("unsupported query method","query-method"))return;if(i.i){let b=a.identity,c=b.lastIndexOf("@"),d=c>=0?b.substring(0,c):"",f=c>=0?b.substring(c+1):"",g=c>=0&&(!d||D.test(d))&&r.test(j(f)),h=c>=0&&l(f,a.signingDomain);if((!g||!h)&&e(g?"domain mismatch":"signature syntax error","identity-domain"))return;a.identityDomain=f}if(a.timestamp&&a.expiration&&a.expiration<=a.timestamp){if(e("invalid expiration"))return;a.expiration.getTime()===a.timestamp.getTime()&&m(a.warnings,"invalid-expiration")}"sha1"===a.hashAlgo&&m(a.warnings,"rsa-sha1")}if(!(i.h?G(i.h.value):["from"]).includes("from")){a.invalid="From field not signed";return}}async nextChunk(a){for(let b of this.bodyHashes.values())b.update(a)}getSignatureTimeValid(a){return(!a.timestamp||!(a.timestamp>this.curTime))&&(!a.expiration||!(a.expiration<this.curTime))}getStatusHeader(a){let b={};if(this.strict&&"DKIM"===a.type){let c=a.identity||"",d=c.lastIndexOf("@");b.d=!!a.signingDomain&&j(a.signingDomain),b.i=!!c&&(d>=0?c.substring(0,d+1)+j(c.substring(d+1)):c)}else b.i=!!a.signingDomain&&`@${a.signingDomain}`;return b.s=a.selector,b.a=a.parsed?.a?.value,b.b=!!a.parsed?.b?.value&&`${a.parsed?.b?.value.toString().substr(0,8)}`,b}baseResult(a,b){return{id:a.parsed?.b?.value?A.createHash("sha256").update(d.from(a.parsed.b.value.toString(),"base64")).digest("hex"):A.randomUUID(),signingDomain:a.signingDomain,selector:a.selector,signature:a.parsed?.b?.value,algo:a.parsed?.a?.value,format:b}}async verifySignature(a,b){let c,f,g,i=b?a.fallbackCanonicalization:a.canonicalization,j=b?a.fallbackBodyHashKey:a.bodyHashKey,l=e(this.headers.parsed,a.parsed?.h?.value,!0),{canonicalizedHeader:o}=x(a.type,l,{signatureHeaderLine:a.original,canonicalization:i,instance:"ARC"===a.type&&a.parsed?.i?.value,strict:this.strict}),p={keys:l.keys,headers:l.headers.map(a=>a.line.toString()),canonicalizedHeader:o.toString("base64")},q={result:"neutral",comment:!1,header:this.getStatusHeader(a)};"DKIM"===a.type&&this.headerFrom?.length&&(q.aligned=h(this.headerFrom[0].split("@").pop(),[a.signingDomain])?.domain||!1);let r=this.bodyHashes.get(j),s=r?.hash,t=r?.mimeStructureStart,u=[].concat(a.warnings||[]);if(a.invalid)q.result="neutral",q.comment=a.invalid;else if(a.parsed?.bh?.value!==s)q.result=this.strict?"fail":"neutral",q.comment="body hash did not verify";else if(this.rejectRsaSha1&&"DKIM"===a.type&&"sha1"===a.hashAlgo)q.result="policy",q.comment="weak algorithm",q.policy={"dkim-rules":"weak-algorithm"};else try{let b=await this.keyCache.get(a.type,`${a.selector}._domainkey.${a.signingDomain}`,this.minBitLength,{strict:this.strict,hashAlgo:a.hashAlgo});c=b?.publicKey,f=b?.rr,g=b?.modulusLength,m(u,...b?.warnings||[]),b?.testing&&(q.testing=!0);let e=!1;if(this.strict&&b?.keyType&&b.keyType!==a.signAlgo?e="inappropriate key algorithm":b?.flags?.includes("s")&&a.identityDomain&&k(a.identityDomain)!==k(a.signingDomain)&&(this.strict?e="domain mismatch":m(u,"identity-domain")),e)q.result="neutral",q.comment=e;else try{q.result=A.verify("rsa"===a.signAlgo?a.algorithm:null,"rsa"===a.signAlgo?o:A.createHash("sha256").update(o).digest(),c,d.from(a.parsed?.b?.value||"","base64"))?"pass":"fail","fail"===q.result&&(q.comment="bad signature"),"pass"===q.result&&(a.expiration&&a.timestamp&&a.expiration<a.timestamp&&(q.result="neutral",q.comment="invalid expiration"),a.expiration&&a.expiration<this.curTime&&(q.result="neutral",q.comment="expired"))}catch(a){q.result="neutral",q.comment=a.message}}catch(a){a.rr&&(f=a.rr),n.has(a.code)?(q.result="neutral",q.comment=n.get(a.code)):"ESHORTKEY"===a.code?(q.result="policy",q.policy||(q.policy={}),q.policy["dkim-rules"]="weak-key"):(q.result="temperror",q.comment=`DNS failure: ${a.code||a.message}`)}u.length&&(q.warnings=u);let v=r?.bodyHashedBytes,w=r?.canonicalizedLength,y=r?.byteLength;b||(a.bodyHashedBytes=v,a.canonicalizedLength=w,a.sourceBodyLength=y);let z=Object.assign(this.baseResult(a,b?i:a.parsed?.c?.value),{bodyHash:s,bodyHashExpecting:a.parsed?.bh?.value,signingHeaders:p,status:q,signTime:a.timestamp&&!isNaN(a.timestamp)?a.timestamp.toISOString():null,expiresAfter:a.expiration&&!isNaN(a.expiration)?a.expiration.toISOString():null,signatureTimeValid:this.getSignatureTimeValid(a)});return"number"==typeof y&&(z.sourceBodyLength=y),"number"==typeof v&&(z.canonBodyLength=v),"number"==typeof w&&(z.canonBodyLengthTotal=w),"number"==typeof a.maxBodyLength?(z.canonBodyLengthLimited=!0,z.canonBodyLengthLimit=a.maxBodyLength,z.canonBodyLengthTotal>z.canonBodyLength&&(q.underSized=z.canonBodyLengthTotal-z.canonBodyLength)):z.canonBodyLengthLimited=!1,"number"==typeof t&&(z.mimeStructureStart=t),c&&(z.publicKey=c.toString()),g&&(z.modulusLength=g),f&&(z.rr=f),"boolean"==typeof z.status.comment&&delete z.status.comment,z}skippedSignatureResult(a){let b={result:"neutral",comment:a.skip,header:this.getStatusHeader(a)};return Object.assign(this.baseResult(a,a.parsed?.c?.value),{status:b})}async finalChunk(){try{if(!this.headers||!this.bodyHashes.size&&!this.signatureHeaders.some(a=>a.invalid||a.skip))return;for(let[a,b]of this.bodyHashes.entries())this.bodyHashes.get(a).hash=b.digest("base64"),this.bodyHashes.get(a).mimeStructureStart=b.getMimeStructureStart();for(let a of this.signatureHeaders){let b;if(a.skip){if(!this.strict||"DKIM"!==a.type)continue;b=this.skippedSignatureResult(a)}else if(b=await this.verifySignature(a),a.fallbackCanonicalization&&!a.invalid&&"pass"!==b.status.result){let c=await this.verifySignature(a,!0);"pass"===c.status.result&&(c.status.warnings=m([].concat(c.status.warnings||[]),"ams-c-default"),b=c)}switch(a.type){case"ARC":if(!this.arc.lastEntry)break;this.arc.lastEntry.messageSignature=b;break;default:this.results.push(b)}}}finally{this.results.length||this.results.push({status:{result:"none",comment:"message not signed"}}),this.results.forEach(a=>{a.info=g("dkim",a.status,{strict:this.strict})})}this.seal&&this.bodyHashes.has(this.sealBodyHashKey)&&"string"==typeof this.bodyHashes.get(this.sealBodyHashKey)?.hash&&(this.seal.bodyHash=this.bodyHashes.get(this.sealBodyHashKey).hash)}}}},90738,(a,b,c)=>{"use strict";let{writeToStream:d}=a.r(787767),{DkimVerifier:e}=a.r(419159);b.exports={dkimVerify:async(a,b)=>{let c=new e(b);await d(c,a);let f={headerFrom:c.headerFrom,fromFields:c.fromFields,envelopeFrom:c.envelopeFrom,results:c.results};return c.headers&&Object.defineProperty(f,"headers",{enumerable:!1,configurable:!1,writable:!1,value:c.headers}),c.arc&&Object.defineProperty(f,"arc",{enumerable:!1,configurable:!1,writable:!1,value:c.arc}),c.seal&&Object.defineProperty(f,"seal",{enumerable:!1,configurable:!1,writable:!1,value:c.seal}),f}}},272380,a=>{"use strict";var 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,A,B,C,D,E=a.i(634531),F=a.i(22372),G=a.i(53112),H=Object.defineProperty,I=Object.defineProperties,J=Object.getOwnPropertyDescriptors,K=Object.getOwnPropertySymbols,L=Object.prototype.hasOwnProperty,M=Object.prototype.propertyIsEnumerable,N=a=>{throw TypeError(a)},O=(a,b,c)=>b in a?H(a,b,{enumerable:!0,configurable:!0,writable:!0,value:c}):a[b]=c,P=(a,b)=>{for(var c in b||(b={}))L.call(b,c)&&O(a,c,b[c]);if(K)for(var c of K(b))M.call(b,c)&&O(a,c,b[c]);return a},Q=(a,b)=>I(a,J(b)),R=(a,b)=>{var c={};for(var d in a)L.call(a,d)&&0>b.indexOf(d)&&(c[d]=a[d]);if(null!=a&&K)for(var d of K(a))0>b.indexOf(d)&&M.call(a,d)&&(c[d]=a[d]);return c},S=(a,b,c)=>(b.has(a)||N("Cannot read from private field"),c?c.call(a):b.get(a)),T="vercel.ai.error",U=Symbol.for(T),V=class a extends(d=Error,c=U,d){constructor({name:a,message:b,cause:d}){super(b),this[c]=!0,this.name=a,this.cause=d}static isInstance(b){return a.hasMarker(b,T)}static hasMarker(a,b){let c=Symbol.for(b);return null!=a&&"object"==typeof a&&c in a&&"boolean"==typeof a[c]&&!0===a[c]}},W="AI_APICallError",X=`vercel.ai.error.${W}`,Y=Symbol.for(X),Z=class extends(f=V,e=Y,f){constructor({message:a,url:b,requestBodyValues:c,statusCode:d,responseHeaders:f,responseBody:g,cause:h,isRetryable:i=null!=d&&(408===d||409===d||429===d||d>=500),data:j}){super({name:W,message:a,cause:h}),this[e]=!0,this.url=b,this.requestBodyValues=c,this.statusCode=d,this.responseHeaders=f,this.responseBody=g,this.isRetryable=i,this.data=j}static isInstance(a){return V.hasMarker(a,X)}},$="AI_EmptyResponseBodyError",_=`vercel.ai.error.${$}`,aa=Symbol.for(_),ab=class extends(h=V,g=aa,h){constructor({message:a="Empty response body"}={}){super({name:$,message:a}),this[g]=!0}static isInstance(a){return V.hasMarker(a,_)}},ac=Symbol.for("vercel.ai.error.AI_EvaluationUnsupportedQuestionTypeError");function ad(a){return null==a?"unknown error":"string"==typeof a?a:a instanceof Error?a.toString():JSON.stringify(a)}var ae="AI_InvalidArgumentError",af=`vercel.ai.error.${ae}`,ag=Symbol.for(af),ah=class extends(j=V,i=ag,j){constructor({message:a,cause:b,argument:c}){super({name:ae,message:a,cause:b}),this[i]=!0,this.argument=c}static isInstance(a){return V.hasMarker(a,af)}},ai="AI_InvalidPromptError",aj=`vercel.ai.error.${ai}`,ak=Symbol.for(aj),al=class extends(l=V,k=ak,l){constructor({prompt:a,message:b,cause:c}){super({name:ai,message:`Invalid prompt: ${b}`,cause:c}),this[k]=!0,this.prompt=a}static isInstance(a){return V.hasMarker(a,aj)}},am="AI_InvalidResponseDataError",an=`vercel.ai.error.${am}`,ao=Symbol.for(an),ap=class extends(n=V,m=ao,n){constructor({data:a,message:b=`Invalid response data: ${JSON.stringify(a)}.`}){super({name:am,message:b}),this[m]=!0,this.data=a}static isInstance(a){return V.hasMarker(a,an)}},aq="AI_JSONParseError",ar=`vercel.ai.error.${aq}`,as=Symbol.for(ar),at=class extends(p=V,o=as,p){constructor({text:a,cause:b}){super({name:aq,message:`JSON parsing failed: Text: ${a}.
|
|
254
|
+
${a[1]}`:a[0]),D=a=>a.split(":").map(a=>A(a.replace(/^[ \t]+|[ \t]+$/g,""))).filter(a=>a),E=D(q),F=(a,b,c)=>{let d=Error(a);return d.code=b,c?Object.assign(d,c):d},G=(a,...b)=>{for(let c of b)a.includes(c)||a.push(c);return a},H=new Map([["ENOTFOUND","no key"],["ENODATA","no key"],["EINVALIDVER","unknown key version"],["EINVALIDTYPE","unknown key type"],["EINVALIDVAL","invalid public key"],["EINVALIDHASH","inappropriate hash algorithm"],["EINVALIDSERVICE","key not for email"]]),I=(a,b,c,d)=>F(a,b,Object.assign(c?{rr:c}:{},d)),J=a=>("string"==typeof a?a:"").split(":").map(a=>a.trim().toLowerCase()).filter(a=>a),K=a=>{if("ed25519"!==a.asymmetricKeyType)try{return a.export({type:"pkcs1",format:"pem"})}catch(a){}return a.export({type:"spki",format:"pem"})},L=async(a,b,c,e,f)=>{let i,j,k;c=c||1024,e=e||g.resolve;let m=!!(f=f||{}).strict,n=await e(w(b),"TXT"),o=n&&[].concat(n[0]||[]).join("").replace(/\s+/g,"");if(!o)throw I("Missing key value","EINVALIDVAL");let q=[],r=(a,b,c)=>{if(m)throw I(a,b,o);G(q,c)},s=l(o,{strict:m}),t=s.parsed;s.syntaxErrors.length&&r(`Invalid key record syntax: ${s.syntaxErrors[0]}`,"EINVALIDVAL","key-syntax");let u=t.p?.value;if(!u)throw I("Missing key value","EINVALIDVAL",o);let v=p.validate(u);if(v.error)throw I("Invalid base64 format for public key","EINVALIDVAL",o,{details:v.error});if(t.v){let a=(t.v.value||"").toString();if("dkim1"!==a.toLowerCase().trim())throw I("Unknown key version","EINVALIDVER",o);("DKIM1"!==a||s.tags[0]?.name!=="v")&&r("DKIM1"!==a?"Unknown key version":"Key version tag is not the first tag","EINVALIDVER","key-v-syntax")}if(t.s){let a=J(t.s.value);if(!a.includes("email")&&!a.includes("*"))throw I("Key is not meant for email","EINVALIDSERVICE",o)}if(t.h&&f.hashAlgo&&!J(t.h.value).includes(f.hashAlgo.toLowerCase()))throw I(`Key does not allow ${f.hashAlgo}`,"EINVALIDHASH",o);let x=!!t.k&&(t.k.value||"").toString().toLowerCase().trim(),y=d.from(u,"base64"),z=[];for(let a of(32!==y.length||m&&"ed25519"!==x?(a=>{if(a.length<3||48!==a[0])return!1;let b=a[1]<128?2:2+(127&a[1]);return 2===a[b]})(y)?z.push({key:y,format:"der",type:"pkcs1"}):z.push({key:y,format:"der",type:"spki"}):z.push({key:d.concat([d.from("302A300506032B6570032100","hex"),y]),format:"der",type:"spki"}),z))try{let b=h.createPublicKey(a);k=K(b),i=b;break}catch(a){j=a}if(!i){let a=Error("Unknown key type",{cause:j});throw a.code="EINVALIDTYPE",a.rr=o,a}let A=i.asymmetricKeyType;if(!["rsa","ed25519"].includes(A)||x&&x!==A)throw I(`Unknown key type (${A})`,"EINVALIDTYPE",o);if(x||"rsa"===A||r(`Unknown key type (${A})`,"EINVALIDTYPE","key-type-inferred"),m&&"ed25519"===A&&32!==y.length)throw I("Invalid ed25519 public key","EINVALIDVAL",o);let B=i.asymmetricKeyDetails.modulusLength;if("rsa"===A&&B<c)throw I("RSA key too short","ESHORTKEY",o);let C=J(t.t?.value);return{publicKey:k,rr:o,modulusLength:B,keyType:A,flags:C,testing:C.includes("y"),warnings:q}},M=/^[!#$%&'*+\-.0-9A-Z^_`a-z{|}~]+$/,N=/^[!#$%&'*+\-.0-9A-Z^_`a-z{|}~@]+$/,O=/^[A-Za-z0-9!#$%&'*+\-/=?^_`{|}~]+(?:\.[A-Za-z0-9!#$%&'*+\-/=?^_`{|}~]+)*$/,P=/^"(?:[^"\\\r\n]|\\[\x20-\x7e\t])*"$/,Q=a=>(a||"").toString().replace(/[\x00-\x1F\x7F]+/g," ").replace(/\s+/g," ").trim(),R=a=>`"${a.replace(/["\\]/g,a=>`\\${a}`)}"`,S=(a,b)=>{if(!(a=Q(a)))return"";if(M.test(a))return a;let c=a.lastIndexOf("@");if(c>=0){let d=a.substring(0,c),e=a.substring(c+1);if(o.test(e)){if(!d||O.test(d)){if(b||N.test(a))return a}else if(b)return`${P.test(d)?d:R(d)}@${e}`}}return R(a)},T=a=>(a=Q(a).split(" ").map(a=>{if(400>=d.byteLength(a))return a;let b="";for(let c of a){if(d.byteLength(b+c)>400)break;b+=c}return b+"..."}).join(" ")).replace(/[\\()]/g,a=>`\\${a}`),U=a=>(a=w(a.toLowerCase().trim()).toLowerCase().trim()).replace(/\.+$/,""),V=(a,b,c)=>["rsa","ed25519"].includes(a)&&("sha256"===b||!!c&&"rsa"===a&&"sha1"===b);function W(a,b={}){let{requiredTags:c=[],allowedTags:d=null,caseSensitive:e=!1,strictMode:f=!1,allowDuplicateKeys:g=!0}=b,h=(a||"").replace(/[\x00-\x1F]+/g," ").replace(/\\r\\n/g,"").replace(/\\n/g,"").replace(/\r?\n/g,"").replace(/\s+/g," ").trim().split(";"),i=Object.create(null),j=[],k=[],l=[];for(let a of h){if(!(a=a.trim()))continue;let b=a.indexOf("=");if(-1===b){let b=`Malformed part (no equals sign): "${a}"`;if(k.push(b),f)break;continue}let c=a.substring(0,b).trim(),h=a.substring(b+1).trim(),m=e?c:c.toLowerCase();if(!/^[a-zA-Z0-9_-]+$/.test(c)){let a=`Invalid tag name: "${c}"`;if(k.push(a),f)break;continue}if(d&&!d.includes(m)){l.push(`Unknown/disallowed tag ignored: "${c}"`);continue}if(m in i){if(!g){let a=`Duplicate tag not allowed: "${c}"`;if(k.push(a),f)break;continue}Array.isArray(i[m])?i[m].push(h):i[m]=[i[m],h],l.push(`Duplicate tag "${c}" found`)}else i[m]=h;j.push([m,h])}for(let a of c)(e?a:a.toLowerCase())in i||k.push(`Missing required tag: "${a}"`);let m=j.map(([a,b])=>`${a}=${b}`).join("; ");return{tags:i,errors:k,warnings:l,isValid:0===k.length,sanitizedRecord:m,originalRecord:a}}function X(a){return(a||"").replace(/[^\x20-\x7E]/g,"")}b.exports={writeToStream:y,parseHeaders:a=>{let b=a.toString("binary").replace(/[\r\n]+$/,"").split(/\r?\n/).map(a=>[a]);if(1===b.length&&!b[0][0])return{parsed:[],original:a};for(let a=b.length-1;a>0;a--)C(b[a])||(b[a-1]=b[a-1].concat(b[a]),b.splice(a,1));return{parsed:b=b.map(a=>{let b,c=(a=a.join("\r\n")).match(/^[^:]+/);return c&&((b=c[0]).indexOf("\n")>=0&&(b=b.replace(/\r?\n/g,"")),c=A(b=b.replace(/^[ \t]+|[ \t]+$/g,""))),{key:c,casedKey:b,line:d.from(a,"binary")}}),original:a}},createError:F,addWarning:G,KEY_ERROR_COMMENTS:H,defaultDKIMFieldNames:q,defaultARCFieldNames:r,defaultASFieldNames:"ARC-Authentication-Results:ARC-Message-Signature:ARC-Seal",getSigningHeaderLines:(a,b,c)=>{b="string"==typeof b?D(b):E;let d=[];if(c){let c=[].concat(a);for(let a of b)for(let b=c.length-1;b>=0;b--){let e=c[b];if(a===e.key){d.push(e),c.splice(b,1);break}}}else for(let c=a.length-1;c>=0;c--){let e=a[c];b.includes(e.key)&&d.push(e)}return{keys:d.map(a=>a.casedKey).join(": "),headers:d}},formatSignatureHeaderLine:(a,b,c)=>{let d,e;switch(a=(a||"").toString().toUpperCase()){case"DKIM":e="DKIM-Signature",d=s,b=Object.assign({v:1,t:Math.floor(Date.now()/1e3),q:"dns/txt"},b);break;case"ARC":e="ARC-Message-Signature",d=t,b=Object.assign({t:Math.floor(Date.now()/1e3),q:"dns/txt"},b);break;case"AS":e="ARC-Seal",d=u,b=Object.assign({t:Math.floor(Date.now()/1e3)},b);break;default:throw Error("Unknown Signature type")}let g=`${e}: `+Object.keys(b).filter(a=>!1!==b[a]&&void 0!==b[a]&&null!==b[a]&&d.includes(a)).sort((a,b)=>d.indexOf(a)-d.indexOf(b)).map(d=>{let e=b[d];if("b"===d&&c&&e)return`${d}=${e}`.replace(/.{75}/g,"$& ").trim();if(["d","s"].includes(d)&&(e=w(e)),"i"===d&&"DKIM"===a){let a=(e=e.toString()).lastIndexOf("@");a>=0&&(e=e.substr(0,a+1)+w(e.substr(a+1)))}return`${d}=${e}`}).join("; ");return c?f.foldLines(g):g},parseDkimHeaders:k,parseTagList:l,getPublicKey:L,getPrivateKey:a=>{let b;return"string"==typeof a&&(a=d.from(a)),b=32===a.length?{key:a=d.concat([d.from("MC4CAQAwBQYDK2VwBCIEIA==","base64"),a]),format:"der",type:"pkcs8"}:{key:a,format:"pem"},h.createPrivateKey(b)},formatAuthHeaderRow:(a,b,c)=>{c=c||{};let e=[],f=((b=b||{}).result||"").toString().replace(/[^A-Za-z0-9-]+/g,"")||"none";for(let g of(e.push(`${a}=${f}`),b.underSized&&e.push(`(${T(`undersized signature: ${b.underSized} bytes unsigned`)})`),b.comment&&e.push(`(${T(b.comment)})`),["policy","smtp","body","header"]))if(b[g]&&"object"==typeof b[g])for(let a of Object.keys(b[g])){let f=b[g][a];if(!f||!["string","number","boolean"].includes(typeof f))continue;let h=S(f,c.strict);!h||d.byteLength(h)>900||e.push(`${g}.${a}=${h}`)}return e.join(" ")},escapeCommentValue:T,escapePropValue:S,formatAuthservId:(a,b)=>{let c=w(Q(a));if(c&&c.length<=900&&M.test(c))return c;if(!c||c.length>900||b){let b=TypeError(`Invalid authserv-id ${JSON.stringify((a||"").toString())}, expecting a host name`);throw b.code="EINVALIDAUTHSERVID",b}return R(c)},MAX_HEADER_VALUE_LENGTH:900,formatDotAtomOrQuoted:a=>(a=Q(a),O.test(a)?a:R(a)),fetch:a=>new Promise((b,c)=>{i.get(a,{headers:{"User-Agent":`mailauth/${j.version} (+${j.homepage}`}},a=>{let c=[],e=0;a.on("readable",()=>{let b;for(;null!==(b=a.read());)c.push(b),e+=b.length}),a.on("end",()=>{b({statusCode:a.statusCode,headers:a.headers,body:d.concat(c,e)})})}).on("error",c)}),validateAlgorithm:(a,b)=>{try{if(!a||!/^[^-]+-[^-]+$/.test(a))throw Error("Invalid algorithm format");let[c,d]=a.toLowerCase().split("-");if(!["rsa","ed25519"].includes(c)){let a=Error("Unknown signing algorithm");throw a.signAlgo=c,a}if(!V(c,d,!b)){let a=Error("Unknown hashing algorithm");throw a.hashAlgo=d,a}}catch(a){throw a.code="EINVALIDALGO",a}},splitAlgorithm:a=>{let b=(a||"").toString().split("-");return{signAlgo:b[0].toLowerCase().trim(),hashAlgo:b[b.length-1].toLowerCase().trim()}},isSupportedAlgorithm:V,createKeyCache:a=>{let b=new Map;return{resolver:a,get(c,d,e,f){let g=[!!(f=f||{}).strict,e||"",f.hashAlgo||"",d].join(":"),h=b.get(g);return h||((h=L(c,d,e,a,f)).catch(()=>!1),b.set(g,h)),h}}},getAlignment:(a,b,c)=>{if(c&&"object"==typeof c&&(c=c.strict),b=[].concat(b||[]).map(a=>"string"==typeof a?{domain:a}:a).sort((a,b)=>(a.underSized||0)-(b.underSized||0)),c){let c=U(a);if(!c)return!1;for(let a of b)if(U(a.domain)===c)return a;return!1}let d=U(m.getDomain(a,v)||a);if(!d)return!1;for(let a of b)if(U(m.getDomain(a.domain,v)||a.domain)===d)return a;return!1},formatRelaxedLine:(a,b)=>{let c=(a||"").toString("binary").replace(/\r?\n/g,"").replace(/^([^:]*):[ \t]*/,(a,b)=>A(b).replace(/^[ \t]+|[ \t]+$/g,"")+":").replace(/[ \t]+/g," ").replace(/^ | $/g,"")+(b||"");return d.from(c,"binary")},stripSignatureValue:(a,b)=>{let c=a.toString("binary"),e=c.indexOf(":"),f=e>=0?c.substring(0,e+1):"",g=(e>=0?c.substring(e+1):c).split(";");for(let a=g.length-1;a>=0;a--){let c=g[a].indexOf("=");if(c<0)continue;let e=d.from(g[a].substring(0,c),"binary").toString().replace(/\s+/g," ").trim();if((b?e:e.toLowerCase())==="b"){g[a]=g[a].substring(0,c+1);break}}return d.from(f+g.join(";"),"binary")},formatDomain:U,toALabel:w,normalizeDomainName:x,isSameOrSubdomain:(a,b)=>(a=x(a),b=x(b),!!a&&!!b&&(a===b||a.endsWith(`.${b}`))),getPtrHostname:a=>{let b=a.toByteArray();return 4===b.length?`${b.map(a=>a.toString(10)).reverse().join(".")}.in-addr.arpa`:`${b.flatMap(a=>a.toString(16).padStart(2,"0").split("")).reverse().join(".")}.ip6.arpa`},getCurTime:function(a){if(a){if("object"==typeof a&&"function"==typeof a.toISOString)return a;if("number"!=typeof a&&isNaN(a)){if("string"==typeof a){let b=new Date(a);if("Invalid Date"!==b.toString())return b}}else{let b=new Date(Number(a));if("Invalid Date"!==b.toString())return b}}return new Date},TLDTS_OPTS:v,validateTagValueRecord:function(a,b){let c={BIMI:{requiredTags:["v","l","a"],allowedTags:["v","l","a"],caseSensitive:!1,strictMode:!0,allowDuplicateKeys:!1,validators:{v:a=>/^BIMI\d+$/i.test(a)?null:`Version must match BIMI<digit>, got: ${a}`,l:a=>{if(!a.trim())return"Location cannot be empty";try{let b=new URL(a.trim());return"https:"!==b.protocol?"Location must use HTTPS protocol":null}catch(b){return`Invalid location URL: ${a}`}},a:a=>{if(!a.trim())return"Authority cannot be empty";try{let b=new URL(a.trim());return"https:"!==b.protocol?"Authority must use HTTPS protocol":null}catch(b){return`Invalid authority URL: ${a}`}}},mappers:{v:a=>X(a)}}}[b.toUpperCase()];if(!c)throw Error(`Unknown record type: ${b}`);let d=W(a,c);if(c.mappers)for(let[a,b]of Object.entries(c.mappers))d.tags&&a in d.tags&&(d.tags[a]=b(d.tags[a]));if(c.validators&&d.isValid){for(let[a,b]of Object.entries(c.validators))if(d.tags&&a in d.tags){let c=b(d.tags[a]);c&&d.errors.push(c)}d.isValid=0===d.errors.length}return d},parseTagValueRecord:W,convertToASCII:X}},480311,(a,b,c)=>{"use strict";let{Buffer:d}=a.r(951615),{parseHeaders:e}=a.r(787767),f=a.r(81111).Writable;b.exports={MessageParser:class extends f{constructor(a){super(a),this.byteLength=0,this.state="header",this.stateBytes=[],this.headerBytes=0,this.headers=!1,this.headerChunks=[]}async nextChunk(){}async finalChunk(){}async messageHeaders(){}async emitHeaders(a){this.state="body",a&&this.headerChunks.push(a),this.headers=e(d.concat(this.headerChunks)),await this.messageHeaders(this.headers)}async processChunk(a){if(a&&a.length){if("header"===this.state)for(let b=0;b<a.length;b++){let c=a[b];this.stateBytes.push(c),this.stateBytes.length>4&&(this.stateBytes=this.stateBytes.slice(-4)),this.headerBytes++;let d=this.stateBytes[this.stateBytes.length-1],e=this.stateBytes.length>1&&this.stateBytes[this.stateBytes.length-2],f=this.stateBytes.length>2&&this.stateBytes[this.stateBytes.length-3];if(10===d&&(10===e||13===e&&10===f||1===this.headerBytes||2===this.headerBytes&&13===e)){if(b===a.length-1)return void await this.emitHeaders(a);await this.emitHeaders(a.slice(0,b+1)),a=a.slice(b+1);break}}if("body"!==this.state)return void this.headerChunks.push(a);await this.nextChunk(a)}}*ensureLinebreaks(a){let b=0;for(let c=0;c<a.length;c++){let e=a[c];if(10===e&&13!==this.lastByte){let e;e=0===c||b===c?d.from("\r\n"):d.concat([a.slice(b,c),d.from("\r\n")]),yield e,b=c+1}this.lastByte=e}if(0===b)yield a;else if(b<a.length){let c=a.slice(b);yield c}}async writeAsync(a,b){if(a&&a.length)for(let c of("string"==typeof a&&(a=d.from(a,b)),this.ensureLinebreaks(a)))await this.processChunk(c),this.byteLength+=c.length}_write(a,b,c){this.writeAsync(a,b).then(()=>c()).catch(a=>c(a))}async finish(){this.headers||await this.emitHeaders(),await this.finalChunk()}_final(a){this.finish().then(()=>a()).catch(b=>a(b))}}}},879207,(a,b,c)=>{"use strict";let{Buffer:d}=a.r(951615);b.exports={MimeStructureStartFinder:class{constructor(){this.byteCache=[],this.matchFound=!1,this.noMatch=!1,this.lineStart=-1,this.prevChunks=0,this.mimeStructureStart=-1}setBoundary(a){this.boundary=(a||"").toString().trim(),this.boundaryBuf=Array.from(d.from(`--${this.boundary}`)),this.boundaryBufLen=this.boundaryBuf.length}update(a){if(!this.matchFound&&this.boundary){for(let b=0,c=a.length;b<c;b++){let c=a[b];if(10===c||13===c){if(!this.noMatch&&this.byteCache.length===this.boundaryBufLen){this.matchFound=!0,this.mimeStructureStart=this.lineStart;break}this.lineStart=-1,this.noMatch=!1,this.byteCache=[];continue}if(!this.noMatch){if(this.lineStart<0&&(this.lineStart=this.prevChunks+b),this.byteCache.length>=this.boundaryBufLen||this.boundaryBuf[this.byteCache.length]!==c){this.noMatch=!0;continue}this.byteCache[this.byteCache.length]=c}}this.prevChunks+=a.length}}getMimeStructureStart(){return this.boundary?(this.matchFound||this.noMatch||this.byteCache.length!==this.boundaryBufLen||(this.matchFound=!0,this.mimeStructureStart=this.lineStart),this.mimeStructureStart):0}}}},785791,(a,b,c)=>{"use strict";let{Buffer:d}=a.r(951615),e=d.alloc(1024);for(let a=0;a<e.length;a+=2)e[a]=13,e[a+1]=10;b.exports={CHAR_CR:13,CHAR_LF:10,CRLF:e.subarray(0,2),eachHeldLineBreak:(a,b)=>{for(;a>0;){let c=Math.min(a,512);b(e.subarray(0,2*c)),a-=c}}}},977152,(a,b,c)=>{"use strict";let{Buffer:d}=a.r(951615),e=a.r(666680),{MimeStructureStartFinder:f}=a.r(879207),{CHAR_CR:g,CHAR_LF:h,CRLF:i,eachHeldLineBreak:j}=a.r(785791);b.exports={SimpleHash:class{constructor(a,b){a=(a||"sha256").split("-").pop(),this.bodyHash=e.createHash(a),this.remainder=[],this.pendingLineBreaks=0,this.byteLength=0,this.canonicalizedLength=0,this.bodyHashedBytes=0,this.maxBodyLength=b,this.maxSizeReached=0===b,this.mimeStructureStartFinder=new f}setContentType(a){/^multipart\//i.test(a.value)&&a.params.boundary&&this.mimeStructureStartFinder.setBoundary(a.params.boundary)}_updateBodyHash(a){if(this.mimeStructureStartFinder.update(a),this.canonicalizedLength+=a.length,!this.maxSizeReached){if("number"==typeof this.maxBodyLength&&!isNaN(this.maxBodyLength)&&this.maxBodyLength>=0&&this.bodyHashedBytes+a.length>this.maxBodyLength){if(this.maxSizeReached=!0,this.bodyHashedBytes>=this.maxBodyLength)return;a=a.slice(0,this.maxBodyLength-this.bodyHashedBytes)}this.bodyHashedBytes+=a.length,this.bodyHash.update(a)}}update(a){if(!a||!a.length)return;this.byteLength+=a.length;let b=a.length;for(;b>=2&&a[b-2]===g&&a[b-1]===h;)b-=2;let c=b;for(;c>0&&(a[c-1]===h||a[c-1]===g);)c-=1;c&&(this._drainHeldLineEndings(),this._updateBodyHash(a.subarray(0,c))),c<a.length&&this._holdBack(a,c,b)}_holdBack(a,b,c){if(!this.remainder.length&&b===c){this.pendingLineBreaks+=(a.length-c)/2;return}this.remainder.push(a.subarray(b))}_drainHeldLineEndings(){for(let a of(j(this.pendingLineBreaks,a=>this._updateBodyHash(a)),this.pendingLineBreaks=0,this.remainder))this._updateBodyHash(a);this.remainder=[]}digest(a){let b=1===this.remainder.length?this.remainder[0]:d.concat(this.remainder),c=b.length;for(;c>0&&b[c-1]===h;)(c-=1)>0&&b[c-1]===g&&(c-=1);return c&&(j(this.pendingLineBreaks,a=>this._updateBodyHash(a)),this._updateBodyHash(b.subarray(0,c))),this.pendingLineBreaks=0,this._updateBodyHash(i),this.bodyHash.digest(a)}getMimeStructureStart(){return this.mimeStructureStartFinder.getMimeStructureStart()}}}},883283,(a,b,c)=>{"use strict";let{Buffer:d}=a.r(951615),e=a.r(666680),{MimeStructureStartFinder:f}=a.r(879207),{CHAR_CR:g,CHAR_LF:h,CRLF:i,eachHeldLineBreak:j}=a.r(785791);b.exports={RelaxedHash:class{constructor(a,b){a=(a||"sha256").split("-").pop().toLowerCase(),this.bodyHash=e.createHash(a),this.remainder=!1,this.byteLength=0,this.canonicalizedLength=0,this.bodyHashedBytes=0,this.maxBodyLength=b,this.maxSizeReached=0===b,this.pendingLineBreaks=0,this.mimeStructureStartFinder=new f}setContentType(a){/^multipart\//i.test(a.value)&&a.params.boundary&&this.mimeStructureStartFinder.setBoundary(a.params.boundary)}_updateBodyHash(a){if(this.mimeStructureStartFinder.update(a),this.canonicalizedLength+=a.length,!this.maxSizeReached){if("number"==typeof this.maxBodyLength&&!isNaN(this.maxBodyLength)&&this.maxBodyLength>=0&&this.bodyHashedBytes+a.length>this.maxBodyLength){if(this.maxSizeReached=!0,this.bodyHashedBytes>=this.maxBodyLength)return;a=a.subarray(0,this.maxBodyLength-this.bodyHashedBytes)}this.bodyHashedBytes+=a.length,this.bodyHash.update(a)}}_drainPendingEmptyLines(){j(this.pendingLineBreaks,a=>this._updateBodyHash(a)),this.pendingLineBreaks=0}_pushBodyHash(a){if(!a||!a.length)return;let b=a.length;for(;b>=2&&a[b-2]===g&&a[b-1]===h;)b-=2;if(!b){this.pendingLineBreaks+=a.length/2;return}this._drainPendingEmptyLines(),this.pendingLineBreaks=(a.length-b)/2,this._updateBodyHash(a.subarray(0,b))}fixLineBuffer(a){let b=d.alloc(2*a.length),c=b.length-1,e=!1,f=!1;for(let d=a.length-1;d>=0;d--){if(a[d]===h){b[c--]=h,b[c--]=g,d>0&&a[d-1]===g&&d--,e=!1,f=!1;continue}if(32===a[d]||9===a[d]){e&&(f=!0);continue}f&&(b[c--]=32,f=!1),e=!0,b[c--]=a[d]}return f&&e&&(b[c--]=32),b.subarray(c+1)}update(a,b){this.byteLength+=a&&a.length||0;let c=-1,e=!1,f=0;if(this.remainder&&this.remainder.length&&(a=a?d.concat([this.remainder,a]):this.remainder,this.remainder=!1),a&&a.length)for(let b=0;b<a.length;b++)switch(a[b]){case h:if(!e&&(b>=1&&a[b-1]!==g||0===b||b>=2&&a[b-1]===g&&32===a[b-2])&&(e=!0),e){if(c>=0&&c>=f){let b=a.subarray(f,c+1);this._pushBodyHash(b)}let d=a.subarray(c+1,b+1);this._pushBodyHash(this.fixLineBuffer(d)),e=!1,f=b+1}c=b;break;case 32:!e&&b&&32===a[b-1]&&(e=!0);break;case 9:e=!0}if(a&&f<a.length&&f!==c){let b=a.subarray(f,c+1);b.length&&this._pushBodyHash(b),f=c+1}if(a&&!b&&f<a.length&&(this.remainder=a.subarray(f)),b){let b=f&&a&&a.subarray(f)||a;b&&b.length&&this._pushBodyHash(e||32===b[b.length-1]?this.fixLineBuffer(b):b),this.canonicalizedLength&&this._updateBodyHash(i)}}digest(a){return this.update(null,!0),this.bodyHash.digest(a)}getMimeStructureStart(){return this.mimeStructureStartFinder.getMimeStructureStart()}}}},309878,(a,b,c)=>{"use strict";let{SimpleHash:d}=a.r(977152),{RelaxedHash:e}=a.r(883283),{Transform:f}=a.r(81111),g=(a,...b)=>{switch(a=(a||"simple/simple").toString().split("/").pop().toLowerCase().trim()){case"simple":return new d(...b);case"relaxed":return new e(...b);default:{let b=Error("Unknown body canonicalization");throw b.canonicalization=a,b}}};b.exports={dkimBody:g,BodyHashStream:class extends f{constructor(a,...b){super(),this.byteLength=0,this.hasher=g(a,...b),this.bodyHash=null}_transform(a,b,c){if(!a||!a.length)return c();"string"==typeof a&&(a=Buffer.from(a,b)),this.byteLength+=a.length,this.hasher.update(a),this.push(a),c()}_flush(a){this.bodyHash=this.hasher.digest("base64"),this.emit("hash",this.bodyHash),a()}}}},480511,(a,b,c)=>{"use strict";let{formatSignatureHeaderLine:d,getCurTime:e}=a.r(787767);b.exports={buildSignatureOpts:(a,b,c)=>{let{signingDomain:f,selector:g,algorithm:h,canonicalization:i,bodyHash:j,signTime:k,signature:l,instance:m,identity:n,bodyHashedBytes:o,expires:p,timestamp:q,expiration:r}=c||{},s={a:h,c:i,s:g,d:f,h:b.keys,bh:j};"number"==typeof o&&(s.l=o),m&&"ARC"===a?s.i=m:n&&"DKIM"===a&&(s.i=n),"number"==typeof q||!1===q?s.t=!1===q?null:q:s.t=Math.floor(e(k).getTime()/1e3),"number"==typeof r?s.x=r:!1!==r&&p&&(s.x=Math.floor(e(p).getTime()/1e3));let t=d(a,Object.assign({b:l||"a".repeat(73)},s),!0);return{opts:s,signatureHeaderLine:t}}}},524248,(a,b,c)=>{"use strict";let{Buffer:d}=a.r(951615),{formatRelaxedLine:e,stripSignatureValue:f}=a.r(787767),{buildSignatureOpts:g}=a.r(480511);b.exports={relaxedHeaders:(a,b,c)=>{let{signatureHeaderLine:h,strict:i}=c||{},j=[];for(let a of b.headers)j.push(e(a.line,"\r\n"));let k=!1;return h||({opts:k,signatureHeaderLine:h}=g(a,b,c)),j.push(f(e(h),i)),{canonicalizedHeader:d.concat(j),signatureHeaderLine:h,dkimHeaderOpts:k}}}},183781,(a,b,c)=>{"use strict";let{Buffer:d}=a.r(951615),{stripSignatureValue:e}=a.r(787767),{buildSignatureOpts:f}=a.r(480511),g=(a,b)=>d.from(a.toString("binary")+(b||""),"binary");b.exports={simpleHeaders:(a,b,c)=>{let{signatureHeaderLine:h,strict:i}=c||{},j=[];for(let a of b.headers)j.push(g(a.line,"\r\n"));let k=!1;return h||({opts:k,signatureHeaderLine:h}=f(a,b,c)),j.push(e(g(h),i)),{canonicalizedHeader:d.concat(j),signatureHeaderLine:h,dkimHeaderOpts:k}}}},649947,(a,b,c)=>{"use strict";let{relaxedHeaders:d}=a.r(524248),{simpleHeaders:e}=a.r(183781);b.exports={generateCanonicalizedHeader:(a,b,c)=>{let f=((c=c||{}).canonicalization||"simple/simple").toString().split("/").shift().toLowerCase().trim();switch(f){case"simple":return e(a,b,c);case"relaxed":return d(a,b,c);default:{let a=Error("Unknown header canonicalization");throw a.canonicalization=f,a}}}}},99691,(a,b,c)=>{"use strict";let{getSigningHeaderLines:d,formatSignatureHeaderLine:e,defaultDKIMFieldNames:f,defaultARCFieldNames:g,validateAlgorithm:h,getPrivateKey:i,getCurTime:j,toALabel:k,isSameOrSubdomain:l,addWarning:m,createError:n,splitAlgorithm:o}=a.r(787767),{DOMAIN_NAME:p,SELECTOR:q,MAX_ARC_INSTANCE:r,ARC_HEADER_KEYS:s}=a.r(640542),{MessageParser:t}=a.r(480311),{dkimBody:u}=a.r(309878),{generateCanonicalizedHeader:v}=a.r(649947),w=a.r(666680),x=/[^\x21-\x3a\x3c-\x7e]/,y=[...s,"authentication-results"],z=a=>(Array.isArray(a)&&(a=a.map(a=>(a||"").toString().trim()).filter(a=>a).join(":")),!!("string"==typeof a&&a.trim())&&a);b.exports={DkimSigner:class extends t{constructor(a){super();let{canonicalization:b,algorithm:c,signTime:d,headerList:e,signatureData:f,arc:g,bodyHash:h,headers:i,getARChain:j,getArcInstance:k,expires:l,strict:m}=a||{};this.algorithm=c||!1,this.canonicalization=b||"relaxed/relaxed",this.strict=!!m,this.errors=[],this.warnings=[],this.expires=l,this.signTime=d,this.headerList=z(e),this.signatureData=[].concat(f||[]).map(a=>(a.type="DKIM",a)),this.signatureHeaders=[],this.arc=Object.assign({chain:!1},g),this.getARChain=j,this.getArcInstance=k,this.arc.signingDomain&&this.arc.selector&&this.arc.privateKey&&this.signatureData.push({type:"ARC",signingDomain:this.arc.signingDomain,selector:this.arc.selector,privateKey:this.arc.privateKey,canonicalization:"relaxed/relaxed",algorithm:this.arc.algorithm||!1}),this.bodyHashes=new Map,this.bodyHash=h||null,this.headers=i,this.setupHashes()}warn(a){m(this.warnings,a)}violation(a,b,c){if(this.strict)throw n(a,b);this.warn(c)}getCanonicalization(a){let b=a?.canonicalization||this.canonicalization,c=b.split("/").shift().toLowerCase().trim(),d=(b.split("/")[1]||"simple").toLowerCase().trim();return{canonicalization:b,headerCanon:c,bodyCanon:d}}getAlgorithm(a){let b=(a?.algorithm||(a?.type==="ARC"?"":this.algorithm)||"").toLowerCase().trim(),{signAlgo:c,hashAlgo:d}=o(b);return{algorithm:b,signAlgo:c||!1,hashAlgo:d||"sha256"}}setupHashes(){for(let a of this.signatureData){if(!a.privateKey)continue;a.maxBodyLength="number"==typeof a.maxBodyLength&&a.maxBodyLength>=0?a.maxBodyLength:"";let{hashAlgo:b}=this.getAlgorithm(a),{bodyCanon:c}=this.getCanonicalization(a),d=`${c}:${b}:${a.maxBodyLength}`;this.bodyHashes.has(d)||this.bodyHashes.set(d,{bodyCanon:c,hashAlgo:b,hasher:null,hash:this.bodyHash})}}validateCanonicalization(a){try{let[b,c]=a.split("/");if(!["relaxed","simple"].includes(b)){let a=Error("Unknown header canonicalization");throw a.canonicalization=b,a}if(!["relaxed","simple"].includes(c)){let a=Error("Unknown body canonicalization");throw a.canonicalization=c,a}}catch(a){throw a.code="EINVALIDCANON",a}}validateSigningIdentifiers(a){for(let[b,c,d,e]of[["signingDomain","d=",p,"EINVALIDDOMAIN"],["selector","s=",q,"EINVALIDSELECTOR"]]){let f="string"==typeof a[b]?a[b].trim():"",g=k(f);if(!f||x.test(g)){let d=Error(f?`Invalid ${c} value ${JSON.stringify(a[b])}`:`Missing ${c} value`);throw d.code=e,d}d.test(g)||this.violation(`Invalid ${c} value ${JSON.stringify(a[b])}`,e,"signingDomain"===b?"d-syntax":"s-syntax")}}getIdentity(a){if("DKIM"!==a.type||!a.identity)return!1;let b=a.identity.toString().trim(),c=b.lastIndexOf("@"),d=c>=0?k(b.substring(c+1)):"";if(c<0||!d||/[\s;\x00-\x1f\x7f]/.test(b)){let b=Error(`Invalid identity ${JSON.stringify(a.identity)}`);throw b.code="EINVALIDIDENTITY",b}return l(d,a.signingDomain)||this.violation(`Identity domain is not the same as or a subdomain of ${a.signingDomain}`,"EINVALIDIDENTITY","identity-domain"),b}getTimestamps(){let a=Math.floor(j(this.signTime).getTime()/1e3),b=!!this.expires&&Math.floor(j(this.expires).getTime()/1e3),c=a=>Number.isInteger(a)&&a>=0&&a<=0xe8d4a50fff;return c(a)||(this.violation("Signing time can not be represented in a t= tag","EINVALIDTIME","invalid-signtime"),a=!1),!1===b||c(b)||(this.violation("Expiration time can not be represented in an x= tag","EINVALIDTIME","invalid-expiration"),b=!1),!1!==b&&!1!==a&&b<=a&&this.violation("Expiration time must be later than the signing time","EINVALIDTIME","invalid-expiration"),{timestamp:a,expiration:b}}async messageHeaders(a){if(this.headers=a,this.getARChain)try{this.arc.chain=this.getARChain(a),this.arc.chain?.length&&(this.arc.lastEntry=this.arc.chain[this.arc.chain.length-1])}catch(a){this.arc.error=a}for(let a of this.bodyHashes.keys()){let[b,c,d]=a.split(":");this.bodyHashes.get(a).hasher=u(b,c,!!d&&Number(d))}}async nextChunk(a){for(let b of this.bodyHashes.keys())this.bodyHashes.get(b).hasher&&this.bodyHashes.get(b).hasher.update(a)}async finalChunk(){if(this.headers){for(let a of this.bodyHashes.keys())this.bodyHashes.get(a).hasher&&(this.bodyHashes.get(a).hash=this.bodyHashes.get(a).hasher.digest("base64"));return this.finalize()}}getFieldNames(a){let b=z(a.headerList)||this.headerList||("ARC"===a.type?g:f);return"ARC"===a.type&&(b=b.split(":").filter(a=>!y.includes(a.trim().toLowerCase())).join(":")),b}async finalize(){for(let a of this.signatureData||[]){let b,c,f,g;if(!a.privateKey)continue;let j=(b,c)=>{this.errors.push(Object.assign({type:a.type,selector:a.selector,signingDomain:a.signingDomain},c||{},{err:b}))},k=d(this.headers.parsed,this.getFieldNames(a));if(!k.headers.some(a=>"from"===a.key)){let a=Error("Can not sign a message that has no From header");a.code="ENOFROM",j(a);continue}try{if(this.validateSigningIdentifiers(a),b=this.getIdentity(a),c=this.getTimestamps(),"ARC"===a.type&&(f=this.arc.instance||(this.getArcInstance?this.getArcInstance(this.headers):1),!Number.isInteger(f)||f<1||f>r)){let a=Error(`ARC instance ${f} is out of range (1-${r})`);throw a.code="EINVALIDINSTANCE",a}}catch(a){j(a);continue}let{algorithm:l,signAlgo:m,hashAlgo:n}=this.getAlgorithm(a),{canonicalization:o,bodyCanon:p}=this.getCanonicalization(a);try{this.validateCanonicalization(o)}catch(b){this.errors.push({algorithm:l,canonicalization:o,selector:a.selector,signingDomain:a.signingDomain,err:b});continue}try{g=i(a.privateKey)}catch(b){this.errors.push({selector:a.selector,signingDomain:a.signingDomain,err:b});continue}let q=`${p}:${n}:${a.maxBodyLength}`;try{let a=g.asymmetricKeyType;if(m&&a!==m){let b=Error(`Invalid key type: "${a}" (expecting "${m}")`);throw b.code="EINVALIDTYPE",b}if(!["rsa","ed25519"].includes(a)){let b=Error(`Unsupported key type: "${a}"`);throw b.code="EINVALIDTYPE",b}m||(m=a),l=`${m}-${n}`,"rsa"===a&&g.asymmetricKeyDetails?.modulusLength<1024&&this.violation(`RSA key too short (${g.asymmetricKeyDetails.modulusLength} bits, at least 1024 required)`,"ESHORTKEY","weak-key")}catch(b){this.errors.push({selector:a.selector,signingDomain:a.signingDomain,err:b});continue}try{if(this.strict&&"sha1"===n){let a=Error("rsa-sha1 is not allowed for signing");throw a.code="EINVALIDALGO",a}h(l,"ARC"===a.type),"sha1"===n&&this.warn("rsa-sha1")}catch(b){this.errors.push({algorithm:l,canonicalization:o,selector:a.selector,signingDomain:a.signingDomain,err:b});continue}let{canonicalizedHeader:s,dkimHeaderOpts:t}=v(a.type,k,Object.assign({},a,{instance:"ARC"===a.type&&f,identity:b,algorithm:l,canonicalization:this.getCanonicalization(a).canonicalization,signTime:this.signTime,expires:this.expires,timestamp:c.timestamp,expiration:c.expiration,bodyHash:this.bodyHashes.has(q)?this.bodyHashes.get(q).hash:null},"number"==typeof a.maxBodyLength?{bodyHashedBytes:this.bodyHashes.get(q).hasher.bodyHashedBytes,canonicalizedLength:this.bodyHashes.get(q).hasher.canonicalizedLength,sourceBodyLength:this.bodyHashes.get(q).hasher.byteLength}:{}));try{t.b=w.sign("rsa"===m?l:null,"rsa"===m?s:w.createHash("sha256").update(s).digest(),g).toString("base64");let b=e(a.type,t,!0);"ARC"===a.type?this.arc.messageSignature=b:this.signatureHeaders.push(b)}catch(b){this.errors.push({type:a.type,algorithm:l,selector:a.selector,signingDomain:a.signingDomain,err:b})}}}}}},833579,(a,b,c)=>{"use strict";let{writeToStream:d}=a.r(787767),{DkimSigner:e}=a.r(99691),{Transform:f}=a.r(81111),{Buffer:g}=a.r(951615),h=a=>a.length?a.join("\r\n")+"\r\n":"";b.exports={dkimSign:async(a,b)=>{let c=new e(b);return await d(c,a),{signatures:h(c.signatureHeaders),arc:c.arc,errors:c.errors,warnings:c.warnings}},DkimSignStream:class extends f{constructor(a){super(a),this.signer=new e(a),this.chunks=[],this.chunklen=0,this.errors=null,this.warnings=null,this.finished=!1,this.finishCb=null,this.signer.on("end",()=>this.finishStream()),this.signer.on("finish",()=>this.finishStream()),this.signer.on("error",a=>{this.finished=!0,this.destroy(a)})}finishStream(){if(this.finished||!this.finishCb)return;this.finished=!0;let a=this.finishCb;this.finishCb=null,this.errors=this.signer.errors,this.warnings=this.signer.warnings;let b=h(this.signer.signatureHeaders);b&&this.push(g.from(b)),this.push(g.concat(this.chunks,this.chunklen)),a()}_transform(a,b,c){return a&&a.length&&!this.finished?("string"==typeof a&&(a=g.from(a,b)),this.chunks.push(a),this.chunklen+=a.length,!1===this.signer.write(a))?this.signer.once("drain",c):void c():c()}_flush(a){if(this.finished)return a();this.finishCb=a,this.signer.end()}}}},459017,(a,b,c)=>{"use strict";let{Buffer:d}=a.r(951615),{isIP:e}=a.r(761095),{parseDkimHeaders:f,formatRelaxedLine:g,stripSignatureValue:h,formatAuthHeaderRow:i,formatSignatureHeaderLine:j,writeToStream:k,validateAlgorithm:l,createError:m,addWarning:n,KEY_ERROR_COMMENTS:o,splitAlgorithm:p,createKeyCache:q}=a.r(787767),{TIMESTAMP:r,BODY_LENGTH:s,MAX_ARC_INSTANCE:t,ARC_HEADER_KEYS:u}=a.r(640542),v=a.r(666680),{DkimSigner:w}=a.r(99691),x=["none","pass","fail"],y=/^[0-9]{1,2}$/,z="(?:[ \\t\\r\\n]|\\([^()\\\\]*\\))*",A=RegExp(`^${z}i${z}=${z}([0-9]{1,2})${z};`),B={"arc-seal":["a","b","cv","d","s"],"arc-message-signature":["a","b","bh","d","h","s"]},C={"arc-seal":[["t",r]],"arc-message-signature":[["t",r],["x",r],["l",s]]},D={"arc-seal":"as","arc-message-signature":"ams","arc-authentication-results":"aar"},E=a=>(a?.["arc-seal"]?.parsed?.cv?.value||"").toString().toLowerCase().trim(),F=(a,b)=>{let{highest:c,latestCv:d}=(a=>{let b=0,c=!1;for(let d of a?.parsed||[]){let a;if(!u.includes(d.key))continue;try{a=f(d.line)?.parsed}catch(a){continue}let e=a?.i?.value;"number"==typeof e&&Number.isInteger(e)&&!(e<1)&&(e>b&&(b=e,c=!1),e===b&&"arc-seal"===d.key&&"string"==typeof a?.cv?.value&&(c=a.cv.value.toLowerCase().trim()))}return{highest:b,latestCv:c}})(a),e=!!b?.length&&b[b.length-1];return e&&e.i>=c&&(c=e.i,d=E(e)||d),{highest:c,latestCv:d}},G=a=>`${a.parsed?.s?.value}._domainkey.${a.parsed?.d?.value}`,H=async(a,b)=>{let c,e,{strict:f,warnings:i,keyCache:j}=b||{},k=[];for(let b=0;b<a.length;b++){let d=b===a.length-1,e=a[b];if(k.push(g(e["arc-authentication-results"].original,"\r\n")),k.push(g(e["arc-message-signature"].original,"\r\n")),d){if(c=e["arc-seal"],!c.parsed?.s?.value||!c.parsed?.d?.value)throw m("Invalid ARC-Seal header","invalid_arc_seal");k.push(h(g(e["arc-seal"].original),f))}else k.push(g(e["arc-seal"].original,"\r\n"))}let o=(c.parsed?.a?.value||"").toString().toLowerCase().trim();try{l(o,!0)}catch(b){throw m(`i=${a.length} invalid seal algorithm`,"invalid_arc_seal")}let{signAlgo:q}=p(o),r=d.concat(k),s=G(c);try{let a=await j.get("AS",s,b?.minBitLength,{strict:f,hashAlgo:"sha256"});if(e=a?.publicKey,a?.keyType&&a.keyType!==q)throw m("Key type does not match the seal algorithm","EINVALIDKEYALGO");Array.isArray(i)&&n(i,...a?.warnings||[])}catch(a){throw a.queryDomain=s,a}let t=!1;try{t=v.verify("rsa"===q?"sha256":null,"rsa"===q?r:v.createHash("sha256").update(r).digest(),e,d.from(c.parsed?.b?.value||"","base64"))}catch(a){t=!1}if(!t)throw m(`i=${a.length} seal signature validation failed`,"failing_arc_seal");return!0},I=async(a,b,c)=>{let{instance:e,algorithm:f,selector:i,signingDomain:k,bodyHash:l,cv:m,signTime:n,privateKey:o}=c;e=e||1;let{signAlgo:q}=p(f);n=n||new Date;let r=[];if("pass"===m)for(let b=0;b<a.length;b++){let c=a[b];r.push(g(c["arc-authentication-results"].original,"\r\n")),r.push(g(c["arc-message-signature"].original,"\r\n")),r.push(g(c["arc-seal"].original,"\r\n"))}r.push(g(b["arc-authentication-results"],"\r\n")),r.push(g(b["arc-message-signature"],"\r\n"));let s={i:e,a:f,s:i,d:k,cv:m,bh:l};n&&(("string"==typeof n||"number"==typeof n)&&(n=new Date(n)),"[object Date]"===Object.prototype.toString.call(n)&&"Invalid Date"!==n.toString()&&(s.t=n=Math.floor(n.getTime()/1e3)));let t=j("AS",Object.assign({b:"a".repeat(73)},s),!0);r.push(h(g(t)));let u=d.concat(r);return s.b=v.sign("rsa"===q?f:null,"rsa"===q?u:v.createHash("sha256").update(u).digest(),o).toString("base64"),j("AS",s,!0)},J=async(a,b)=>{if(!a?.chain?.length)return!1;let c=a.chain;(b=Object.assign({},b)).keyCache||(b.keyCache=q(b.resolver));for(let a=0;a<c.length;a++){let b=c[a];if(b?.i!==a+1)throw m(`i=${b?.i} expected=${a+1}`,"invalid_arc_instance");for(let a of u)if(!b[a])throw m(`i=${b.i} no ${a} set`,"missing_arc_header");let d=E(b);if(d!==(0===a?"none":"pass"))throw m(`i=${b.i} cv=${d}`,"invalid_cv_value")}for(let a of c){let c=a["arc-seal"];c.parsed?.s?.value&&c.parsed?.d?.value&&b.keyCache.get("AS",G(c),b.minBitLength,{strict:b.strict,hashAlgo:"sha256"})}for(let a=c.length-1;a>=0;a--)await H(c.slice(0,a+1),b);return!0},K=(a,b,c)=>{if("arc-authentication-results"===a){let a=(c||"").toString("binary");a=a.substring(a.indexOf(":")+1);let b=A.exec(a);return b?b[1]:null}let d=(b?.tags||[]).find(a=>"i"===a.name);return d?d.value:null},L=(a,b,c,d)=>{let e=a[b],f=e.tags||[],g=[].concat(e.syntaxErrors||[]),h=new Map;for(let a of f)h.set(a.name,a.value);for(let a of B[b])h.has(a)||g.push(`missing ${a}=`);for(let[a,c]of C[b])h.has(a)&&!c.test(h.get(a))&&g.push(`invalid ${a}=`);if(c){if(g.length)throw m(`i=${a.i} ${D[b]} ${g[0]}`,"invalid_arc_tags");return}(g.length||f.some(a=>a.name!==a.name.toLowerCase()))&&d("arc-tag-syntax")},M=(a,b)=>{let c=!!(b=b||{}).strict,d=a=>{Array.isArray(b.warnings)&&n(b.warnings,a)},e=a&&a.parsed||[],g=new Map;for(let a of e)if(u.includes(a.key)){let b,e=f(a.line,{strict:c}),h=K(a.key,e,a.line),i="string"==typeof h&&y.test(h)&&Number(h)>=1&&Number(h)<=t;if(c){if(!i)throw m(`invalid ${D[a.key]} instance`,"invalid_arc_instance");b=Number(h)}else b=e?.parsed?.i?.value,i||d("arc-instance-syntax");if(b){if(g.has(b)){if(g.get(b)[a.key])throw m(`i=${b} multiple ${a.key} values`,"multiple_arc_keys")}else g.set(b,{i:b});g.get(b)[a.key]=e}}if(!(g=Array.from(g.values()).sort((a,b)=>a.i-b.i)).length)return!1;if(g.length>t)throw m(`chain-length=${g.length}`,"invalid_arc_count");for(let a=0;a<g.length;a++){let b=g[a],e=a===g.length-1;if(b.i!==a+1)throw m(`i=${b.i} expected=${a+1}`,"invalid_arc_instance");for(let a of u)if(!b[a])throw m(`i=${b.i} no ${a} set`,"missing_arc_header");L(b,"arc-seal",c,d),e&&L(b,"arc-message-signature",c,d);let f=E(b);if(0===a&&"none"!==f)throw m(`i=1 cv="${b["arc-seal"]?.parsed?.cv?.value}`,"invalid_cv_value");if(b["arc-seal"]?.parsed?.a&&!b["arc-seal"]?.parsed?.a?.value)throw m(`i=${b.i} empty a`,"invalid_a_value");if(!b["arc-seal"]?.parsed?.a?.value)throw m(`i=${b.i} missing a`,"missing_a_value");if(l(b["arc-seal"]?.parsed?.a?.value,!0),l(b["arc-message-signature"]?.parsed?.a?.value,!0),a>0&&"pass"!==f)throw m(`i=${b.i} cv=${b["arc-seal"]?.parsed?.cv?.value}`,"invalid_cv_value");if(b["arc-seal"]?.parsed?.h)throw m(`i=${b.i} unexpected as h`,"unexpected_as_h_value");let h=b["arc-message-signature"]?.parsed?.h?.value?.toString().trim().toLowerCase().split(":").map(a=>a.trim()).filter(a=>a);if(h?.some(a=>"arc-seal"===a))throw m(`i=${b.i} invalid ams h`,"invalid_ams_h_value")}return g},N=async(a,b)=>{let c=!!(b=b||{}).strict,d={result:"none"},f={status:d};Object.defineProperty(f,"chain",{enumerable:!1,configurable:!1,writable:!1,value:a.chain});let g=[].concat(a?.warnings||[]);try{if(a.error)throw a.error;if(await J(a,{resolver:b.resolver,minBitLength:b.minBitLength,strict:c,warnings:g,keyCache:a.keyCache?.resolver===b.resolver?a.keyCache:void 0})){if(f.i=a?.lastEntry?.i||!1,f.signature=a?.lastEntry?.messageSignature||!1,f?.signature?.status?.result!=="pass")throw m(`i=${f.i} no valid signature`,"missing_valid_ams");if(n(g,...f.signature.status.warnings||[]),f.authenticationResults=a?.lastEntry?.["arc-authentication-results"]?.parsed,f.authenticationResults){if(delete f.authenticationResults.i,delete f.authenticationResults.header,f.authenticationResults.value){let a=f.authenticationResults.value;delete f.authenticationResults.value,f.authenticationResults=Object.assign({mta:a},f.authenticationResults)}["arc","spf","dmarc"].forEach(a=>{if(f.authenticationResults[a]){let b=f.authenticationResults[a].value;delete f.authenticationResults[a].value,f.authenticationResults[a]=Object.assign({result:b},f.authenticationResults[a])}}),f.authenticationResults.dkim&&f.authenticationResults.dkim.length&&(f.authenticationResults.dkim=f.authenticationResults.dkim.map(a=>{let b=a.value;return delete a.value,Object.assign({result:b},a)}))}d.result="pass"}else f.i=0,d.result="none"}catch(b){switch(f.i=a?.lastEntry?.i||!1,d.result="fail",d.shouldSeal=["pass","none"].includes(E(a?.lastEntry)),b.code){case"invalid_arc_seal":case"failing_arc_seal":case"multiple_arc_keys":case"invalid_arc_count":case"invalid_arc_instance":case"missing_arc_header":case"invalid_cv_value":case"unexpected_as_h_value":case"invalid_ams_h_value":case"missing_valid_ams":case"invalid_arc_tags":d.comment=b.message.toLowerCase().replace(/["'()]/g," ").replace(/\s+/g," ").trim().substr(0,128);break;case"ENOTFOUND":case"ENODATA":case"EINVALIDVER":case"EINVALIDTYPE":case"EINVALIDVAL":case"EINVALIDHASH":case"EINVALIDSERVICE":b.queryDomain&&(d.comment=`${o.get(b.code)} for ${b.queryDomain}`);break;case"EINVALIDKEYALGO":b.queryDomain&&(d.comment=`inappropriate key algorithm for ${b.queryDomain}`);break;case"ESHORTKEY":d.policy={"dkim-rules":"weak-key"},b.queryDomain&&(d.comment=`weak key for ${b.queryDomain}`)}}if(c&&b.ip&&e(b.ip.toString())&&(d.smtp={"remote-ip":b.ip.toString()}),"none"!==d.result||c){if("pass"===d.result&&f.authenticationResults){let a=[`i=${f.i}`,!!f.authenticationResults.spf&&`spf=${f.authenticationResults.spf.result}`];if(f.authenticationResults.dkim&&f.authenticationResults.dkim.length)for(let b of f.authenticationResults.dkim)a.push(`dkim=${b.result}`),"string"==typeof b?.header?.i&&a.push(`dkdomain=${b.header.i.replace(/^@/,"")}`);f.authenticationResults.dmarc&&(a.push(`dmarc=${f.authenticationResults.dmarc.result}`),"string"==typeof f.authenticationResults.dmarc?.header?.from&&a.push(`fromdomain=${f.authenticationResults.dmarc.header.from}`)),d.comment=a.filter(a=>a).join(" ")}f.info=i("arc",d,{strict:c})}return g.length&&"fail"!==d.result&&(f.warnings=g),f},O=(a,b)=>({type:"ARC",selector:a?.selector,signingDomain:a?.signingDomain,err:b}),P=a=>null!=a&&!1!==a&&""!==a,Q=async(a,b)=>{let c,d,{headers:e,arc:g,seal:h}=b,i=h?.bodyHash,j=!!(b.strict||h?.strict),o=[],p=()=>n([].concat(c?.warnings||[]),...o),q=(a,b)=>({headers:[],errors:[O(h,m(a,b))],warnings:p()}),r=P(h.i);if(r){let a=Number(h.i);if(!Number.isInteger(a)||a<1||a>t)return q(`ARC instance ${JSON.stringify(h.i)} is out of range (1-${t})`,"EINVALIDINSTANCE");h.i=a}let s=!1;if(P(h.cv)&&(s=h.cv.toString().toLowerCase().trim(),!x.includes(s)))return q(`Invalid cv value ${JSON.stringify(h.cv)} (expecting "none", "pass" or "fail")`,"EINVALIDCV");let u=!1;if(h.algorithm){u=h.algorithm.toString().toLowerCase().trim();try{l(u,!0)}catch(a){return q(`Unsupported ARC algorithm ${JSON.stringify(h.algorithm)}`,"EINVALIDALGO")}}if(c=new w({headers:e,bodyHash:h.bodyHash,signTime:h.signTime,headerList:h.headerList,strict:j,arc:{instance:h.i,algorithm:u,signingDomain:h.signingDomain,selector:h.selector,privateKey:h.privateKey},getARChain:M,getArcInstance:a=>F(a,(g||c.arc)?.chain).highest+1}),a){await k(c,a);let{hashAlgo:b}=c.getAlgorithm(h),{bodyCanon:d}=c.getCanonicalization(h),f=`${d}:${b}:`;i=c.bodyHashes.get(f)?.hash,e=c.headers,g=g||c.arc}else await c.finalize();let{highest:v,latestCv:y}=F(e,g?.chain);if(!r){if(v>=t)return q(`Can not add ARC set i=${v+1}, the chain already has ${v} sets`,"EINVALIDINSTANCE");h.i=v+1}if("fail"===y)return q(`The newest ARC-Seal (i=${v}) has cv=fail, the chain can not be sealed again`,"EARCCHAINFAILED");if(h.i<=v)return q(`ARC instance ${h.i} already exists on the message (highest instance ${v})`,"EINVALIDINSTANCE");if(h.i!==v+1){if(j)return q(`ARC instance ${h.i} does not follow the highest existing instance ${v}`,"EINVALIDINSTANCE");n(o,"arc-instance-gap")}if(!s){if(1!==h.i)return q(`A cv value is required for ARC instance ${h.i}`,"EINVALIDCV");s="none"}if(1===h.i!=("none"===s)){if(j)return q(`cv=${s} is not valid for ARC instance ${h.i}`,"EINVALIDCV");n(o,"arc-cv-instance")}if("pass"===s&&h.i>1&&!g?.chain?.length)return q("cv=pass needs a valid ARC chain to seal","EINVALIDCV");let z=c.arc?.messageSignature;if(!z)return{headers:[],errors:c.errors,warnings:p()};let A=`ARC-Authentication-Results: i=${h.i}; ${h.authResults}`,B=(f(z)?.parsed?.a?.value||u||"rsa-sha256").toString().toLowerCase();try{d=await I(g?.chain||[],{"arc-authentication-results":A,"arc-message-signature":z},{instance:h.i,algorithm:B,signingDomain:h.signingDomain,selector:h.selector,bodyHash:i,cv:s,signTime:h.signTime,privateKey:h.privateKey})}catch(a){return{headers:[],errors:c.errors.concat(O(h,a)),warnings:p()}}return{headers:[d,z,A],errors:c.errors,warnings:p()}},R=async(a,b)=>{let{headers:c}=await Q(a,{seal:b});return c.length?d.from(c.join("\r\n")+"\r\n"):d.from("")};b.exports={getARChain:M,verifyASChain:J,arc:N,createSeal:Q,sealMessage:R}},807232,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.default=function a(b,c){let j=(c=c||{})._depth||0;if(j>50)return[];let n=new m(b).tokenize(),o=[],p=[],q=[];n.forEach(a=>{"operator"===a.type&&(","===a.value||";"===a.value)?(p.length&&o.push(p),p=[]):p.push(a)}),p.length&&o.push(p),o.forEach(b=>{let c=function(b,c){let j=!1,m="text",n=[],o={address:[],comment:[],group:[],text:[],textWasQuoted:[]},p=!1,q={address:"",comment:"",group:"",text:""};for(let a=0,c=b.length;a<c;a++){let c=b[a],d=a?b[a-1]:null;if("operator"===c.type)switch(c.value){case"<":m="address",p=!1;break;case"(":m="comment",p=!1;break;case":":m="group",j=!0,p=!1;break;case'"':p=!p,m="text";break;default:m="text",p=!1}else if(c.value){let e=a>1?b[a-2]:null,f=d?.type==="operator"&&'"'===d.value&&!!d.noBreak&&e?.type==="operator"&&'"'===e.value;"address"===m&&(c.value=c.value.replace(/^[^<]*<\s*/,""));let g=o[m];d&&d.noBreak&&g.length&&(")"!==d.value||"@"===q[m]||"@"===c.value.charAt(0))?(o[m][o[m].length-1]+=c.value,c.value&&(q[m]=c.value.charAt(c.value.length-1)),"text"===m&&p&&(o.textWasQuoted[o.textWasQuoted.length-1]=!0)):(o[m].push(c.value),q[m]=c.value.charAt(c.value.length-1),"text"===m&&o.textWasQuoted.push(p||f))}}if(!o.text.length&&o.comment.length&&(o.text=o.comment,o.comment=[]),j){o.text=o.text.join(" ");let b=[];o.group.length&&a(o.group.join(","),{_depth:c+1}).forEach(a=>{a.group?b=b.concat(a.group):b.push(a)}),n.push({name:o.text||"",group:b})}else{if(!o.address.length&&o.text.length){for(let a=o.text.length-1;a>=0;a--)if(!o.textWasQuoted[a]&&f.test(o.text[a])){o.address=o.text.splice(a,1),o.textWasQuoted.splice(a,1);break}if(!o.address.length){let a=!1;for(let b=o.text.length-1;b>=0;b--)if(!o.textWasQuoted[b]){let c=o.text[b],d=c,e=function(a){let b=a.length,c=0;for(;c<b;){for(;c<b&&i(a.charCodeAt(c));)c++;if(c>=b)break;let d=c,e=c;for(;e<b&&!i(a.charCodeAt(e));)e++;let f=l(a,d,e);if(f>=0){let b=-1;for(let c=e;c>d;c--)if(k(a,c)){b=c;break}let c=d;for(;b>=0&&f>=0;){if(f>c&&e>f+1&&b>f+1){for(let b=c;b<f;b++)if(k(a,b)){if(b>d)return b;let c=d;for(;c>0&&i(a.charCodeAt(c-1));)c--;return c}}f=l(a,c=f+1,e)}}c=e}return -1}(c);if(e>=0){h.lastIndex=e;let b=h.exec(c);b&&(o.address=[b[0].trim()],a=!0,d=c.slice(0,e)+" "+c.slice(e+b[0].length))}if(o.text[b]=d.trim(),a)break}}}!o.text.length&&o.comment.length&&(o.text=o.comment,o.comment=[]),o.address.length>1&&(o.text=o.text.concat(o.address.splice(1)));let a=!o.address.length&&o.textWasQuoted.some(a=>a);o.text=o.text.join(" "),o.address=o.address.join(" "),a&&o.text&&(o.address=function(a){let b=a.lastIndexOf("@");if(b<0)return a;let c=a.substr(0,b);return/^[^\s"(),:;<>@[\\\]]+$/.test(c)||/^"(?:[^"\\]|\\[\s\S])*"$/.test(c)?a:'"'+c.replace(/["\\]/g,"\\$&")+'"@'+a.substr(b+1)}(o.text),o.text=""),function(a){let b,c;if(!d.test(a.address))return;let h=a.address.match(e);if(h){if(!h[2])return;b=h[1],c=[h[2]]}else{if(a.address.indexOf('"')>=0)return;let d=a.address.split(/\s+/),e=d.findIndex(a=>f.test(a));if(e<0&&(e=d.findIndex(a=>g.test(a))),e<0)return;b=d.splice(e,1)[0],c=d}a.address=b,a.text=[a.text].concat(c).filter(a=>a).join(" ")}(o);let b={address:o.address||o.text||"",name:o.text||o.address||""};b.address===b.name&&(/@/.test(b.address||"")?b.name="":b.address=""),n.push(b)}return n}(b,j);for(let a=0;a<c.length;a++)q.push(c[a])});let r=[];for(let a=q.length-1;a>=0;a--){let b=q[a],c=r.length?r[r.length-1]:null;c&&""===b.address&&b.name&&!b.group&&c.address&&c.name?c.name=b.name+", "+c.name:r.push(b)}if(r.reverse(),q=r,c.flatten){let a=[],b=c=>{c.forEach(c=>{if(c.group)return b(c.group);a.push(c)})};return b(q),a}return q};let d=/\s/,e=/^("(?:[^"\\]|\\[\s\S])*"@\S+)(?:\s+([\s\S]+))?$/,f=/^[^@\s]+@[^@\s]+$/,g=/^[^@\s]+@\S+$/,h=/\s*\b[^@\s]+@[^\s]+\b\s*/y;function i(a){return 32===a||a>=9&&a<=13||160===a||5760===a||a>=8192&&a<=8202||8232===a||8233===a||8239===a||8287===a||12288===a||65279===a}function j(a){return a>=48&&a<=57||a>=65&&a<=90||a>=97&&a<=122||95===a}function k(a,b){return j(a.charCodeAt(b-1))!==j(a.charCodeAt(b))}function l(a,b,c){for(let d=b;d<c;d++)if(64===a.charCodeAt(d))return d;return -1}class m{constructor(a){this.str=(a||"").toString(),this.operatorCurrent="",this.operatorExpecting="",this.node=null,this.escaped=!1,this.inDomainLiteral=!1,this.list=[],this.operators={'"':'"',"(":")","<":">",",":"",":":";",";":""}}tokenize(){let a=[];for(let a=0,b=this.str.length;a<b;a++){let c=this.str.charAt(a),d=a<b-1?this.str.charAt(a+1):null;this.checkChar(c,d)}return this.list.forEach(b=>{b.value=(b.value||"").toString().trim(),b.value&&a.push(b)}),a}checkChar(a,b){if(this.escaped||this.operatorExpecting||(this.inDomainLiteral||"["!==a?this.inDomainLiteral&&("]"===a||","===a||";"===a)&&(this.inDomainLiteral=!1):this.inDomainLiteral=!0),this.escaped);else if(a===this.operatorExpecting){this.node={type:"operator",value:a},b&&![" "," ","\r","\n",",",";"].includes(b)&&(this.node.noBreak=!0),this.list.push(this.node),this.node=null,this.operatorExpecting="",this.escaped=!1;return}else if(!this.operatorExpecting&&!this.inDomainLiteral&&a in this.operators){this.node={type:"operator",value:a},this.list.push(this.node),this.node=null,this.operatorExpecting=this.operators[a],this.escaped=!1;return}else if(['"',"'"].includes(this.operatorExpecting)&&"\\"===a){this.escaped=!0;return}this.node||(this.node={type:"text",value:""},this.list.push(this.node)),"\n"===a&&(a=" "),(a.charCodeAt(0)>=33||[" "," "].includes(a))&&(this.node.value+=a),this.escaped=!1}}b.exports=c.default,Object.defineProperty(b.exports,"default",{value:c.default,enumerable:!1,writable:!0,configurable:!0})},419159,(a,b,c)=>{"use strict";let{Buffer:d}=a.r(951615),{getSigningHeaderLines:e,parseDkimHeaders:f,formatAuthHeaderRow:g,getAlignment:h,getCurTime:i,toALabel:j,normalizeDomainName:k,isSameOrSubdomain:l,addWarning:m,KEY_ERROR_COMMENTS:n,splitAlgorithm:o,isSupportedAlgorithm:p,createKeyCache:q}=a.r(787767),{DOMAIN_NAME:r,SELECTOR:s,TIMESTAMP:t,BODY_LENGTH:u}=a.r(640542),{MessageParser:v}=a.r(480311),{dkimBody:w}=a.r(309878),{generateCanonicalizedHeader:x}=a.r(649947),{getARChain:y}=a.r(459017),z=a.r(807232),A=a.r(666680),B=a.r(69127),C=/^[A-Za-z][A-Za-z0-9]*-[A-Za-z][A-Za-z0-9]*$/,D=/^(?:(?:[A-Za-z0-9!#$%&'*+\-/=?^_`{|}~]|[^\x00-\x7f])+(?:\.(?:[A-Za-z0-9!#$%&'*+\-/=?^_`{|}~]|[^\x00-\x7f])+)*|"(?:[^"\\\r\n]|\\.)*")$/,E=["v","a","b","bh","d","h","s"],F=a=>(a.split("/")[1]||"simple").toLowerCase().trim(),G=a=>(a||"").toString().split(":").map(a=>a.replace(/^[ \t\r\n]+|[ \t\r\n]+$/g,"").toLowerCase()).filter(a=>a);b.exports={DkimVerifier:class extends v{constructor(a){if(super(),this.options=a||{},this.resolver=this.options.resolver,this.minBitLength=this.options.minBitLength,this.strict=!!this.options.strict,this.rejectRsaSha1=this.strict||!!this.options.rejectRsaSha1,this.curTime=i(this.options.curTime),this.results=[],this.signatureHeaders=[],this.bodyHashes=new Map,this.headerFrom=[],this.fromFields=0,this.envelopeFrom=!1,this.arc={chain:!1,warnings:[]},this.keyCache=q(this.resolver),Object.defineProperty(this.arc,"keyCache",{value:this.keyCache,enumerable:!1,configurable:!0,writable:!0}),this.seal=this.options.seal,this.seal){let a="relaxed",b="sha256";this.sealBodyHashKey=`${a}:${b}:`,this.bodyHashes.set(this.sealBodyHashKey,w(a,b,!1))}}async messageHeaders(a){this.headers=a;try{this.arc.chain=y(a,{strict:this.strict,warnings:this.arc.warnings}),this.arc.chain?.length&&(this.arc.lastEntry=this.arc.chain[this.arc.chain.length-1])}catch(a){this.arc.error=a}this.signatureHeaders=a.parsed.filter(a=>"dkim-signature"===a.key).map(a=>{let b=f(a.line,{strict:this.strict});return b.type="DKIM",b});let b=a?.parsed?.filter(a=>"from"===a.key);for(let a of(this.fromFields=b.length,b)){let b=(a=a.line.toString()).indexOf(":");for(let c of(b>=0&&(a=a.substr(b+1)),z(a.trim())))for(let a of[].concat(c?.group||c||[]))a&&a.address&&this.headerFrom.push(a.address)}if(this.options.sender){let a=z(this.options.sender);this.envelopeFrom=!!a.length&&!!a[0].address&&a[0].address}else{let b=a.parsed.filter(a=>"return-path"===a.key).pop();if(b){let a=(b=b.line.toString()).indexOf(":");a>=0&&(b=b.substr(a+1));let c=z(b.trim());this.envelopeFrom=!!c.length&&!!c[0].address&&c[0].address}}if(this.arc.lastEntry){let a=this.arc.lastEntry["arc-message-signature"];a.type="ARC",this.signatureHeaders.push(a),this.strict||a.parsed?.c||(a.fallbackCanonicalization="relaxed/relaxed")}for(let a of this.signatureHeaders){if(this.prepareSignature(a),a.skip||a.invalid)continue;a.bodyHashKey=this.addBodyHash(a.bodyCanon,a.hashAlgo,a.maxBodyLength),a.fallbackCanonicalization&&(a.fallbackBodyHashKey=this.addBodyHash(F(a.fallbackCanonicalization),a.hashAlgo,a.maxBodyLength));let b=this.headers.parsed,c="function"==typeof b.findLast?b.findLast:b.find;"function"!=typeof b.findLast&&(b=[].concat(b).reverse());let d=c.call(b,a=>"content-type"===a.key);if(d){let a=d.line.toString();a.indexOf(":")>=0&&(a=a.substring(a.indexOf(":")+1).trim());let b=B.parseHeaderValue(a);for(let a of this.bodyHashes.values())a.setContentType(b)}}}addBodyHash(a,b,c){let d=[a,b,c].join(":");return this.bodyHashes.has(d)||this.bodyHashes.set(d,w(a,b,c)),d}prepareSignature(a){let b=this.strict,c="DKIM"===a.type;a.warnings=[];let e=(c,d)=>b?(a.invalid=c,!0):(d&&m(a.warnings,d),!1),f=new Map;for(let b of a.tags||[])f.set(b.name,b.value);let g=a.syntaxErrors||[],h=(a.tags||[]).some(a=>a.name!==a.name.toLowerCase()),i=a.parsed||{};a.algorithm=(i.a?.value||"").toString(),Object.assign(a,o(a.algorithm)),a.canonicalization=(i.c?.value||"").toString(),a.headerCanon=a.canonicalization.split("/").shift().toLowerCase().trim()||"simple",a.bodyCanon=F(a.canonicalization),a.signingDomain=(i.d?.value||"").toString(),a.selector=(i.s?.value||"").toString(),a.timestamp=i.t&&!isNaN(i.t.value)?new Date(1e3*i.t.value):null,a.expiration=i.x&&!isNaN(i.x.value)?new Date(1e3*i.x.value):null,a.maxBodyLength="number"!=typeof i.l?.value||isNaN(i.l.value)?"":i.l.value,c&&i.i&&"string"==typeof i.i.value?a.identity=(a=>{let b=d.from((a||"").toString().replace(/[ \t\r\n]+/g,""),"utf8"),c=[];for(let a=0;a<b.length;a++)61===b[a]&&a+2<b.length&&/^[0-9A-Fa-f]{2}$/.test(b.subarray(a+1,a+3).toString())?(c.push(parseInt(b.subarray(a+1,a+3).toString(),16)),a+=2):c.push(b[a]);return d.from(c).toString("utf8")})(i.i.value):c&&(a.identity=a.signingDomain?`@${a.signingDomain}`:"");let k=["relaxed","simple"];if(!p(a.signAlgo,a.hashAlgo,c)||b&&!C.test(a.algorithm)){a.skip="unknown algorithm";return}if(!k.includes(a.headerCanon)||!k.includes(a.bodyCanon)){a.skip="unknown canonicalization";return}if(!a.signingDomain||!a.selector){a.skip="signature missing required tag";return}if(c){if(g.length&&e("signature syntax error","tag-syntax"))return;h&&m(a.warnings,"tag-syntax");let b=E.filter(a=>!i[a]);if(b.length){if(e("signature missing required tag"))return;b.forEach(b=>{let c;return c=`missing-${b}`,m(a.warnings,c)})}if(i.v&&"1"!==f.get("v")&&e("incompatible version","invalid-v")||[["t",t],["x",t],["l",u]].some(([a,b])=>i[a]&&!b.test(f.get(a)||""))&&e("signature syntax error","tag-syntax")||i.h&&!G(i.h.value).length&&e("signature syntax error")||(!r.test(j(a.signingDomain))||!s.test(j(a.selector)))&&e("signature syntax error","tag-syntax")||i.q&&!(i.q.value||"").toString().split(":").map(a=>a.trim().toLowerCase()).includes("dns/txt")&&e("unsupported query method","query-method"))return;if(i.i){let b=a.identity,c=b.lastIndexOf("@"),d=c>=0?b.substring(0,c):"",f=c>=0?b.substring(c+1):"",g=c>=0&&(!d||D.test(d))&&r.test(j(f)),h=c>=0&&l(f,a.signingDomain);if((!g||!h)&&e(g?"domain mismatch":"signature syntax error","identity-domain"))return;a.identityDomain=f}if(a.timestamp&&a.expiration&&a.expiration<=a.timestamp){if(e("invalid expiration"))return;a.expiration.getTime()===a.timestamp.getTime()&&m(a.warnings,"invalid-expiration")}"sha1"===a.hashAlgo&&m(a.warnings,"rsa-sha1")}if(!(i.h?G(i.h.value):["from"]).includes("from")){a.invalid="From field not signed";return}}async nextChunk(a){for(let b of this.bodyHashes.values())b.update(a)}getSignatureTimeValid(a){return(!a.timestamp||!(a.timestamp>this.curTime))&&(!a.expiration||!(a.expiration<this.curTime))}getStatusHeader(a){let b={};if(this.strict&&"DKIM"===a.type){let c=a.identity||"",d=c.lastIndexOf("@");b.d=!!a.signingDomain&&j(a.signingDomain),b.i=!!c&&(d>=0?c.substring(0,d+1)+j(c.substring(d+1)):c)}else b.i=!!a.signingDomain&&`@${a.signingDomain}`;return b.s=a.selector,b.a=a.parsed?.a?.value,b.b=!!a.parsed?.b?.value&&`${a.parsed?.b?.value.toString().substr(0,8)}`,b}baseResult(a,b){return{id:a.parsed?.b?.value?A.createHash("sha256").update(d.from(a.parsed.b.value.toString(),"base64")).digest("hex"):A.randomUUID(),signingDomain:a.signingDomain,selector:a.selector,signature:a.parsed?.b?.value,algo:a.parsed?.a?.value,format:b}}async verifySignature(a,b){let c,f,g,i=b?a.fallbackCanonicalization:a.canonicalization,j=b?a.fallbackBodyHashKey:a.bodyHashKey,l=e(this.headers.parsed,a.parsed?.h?.value,!0),{canonicalizedHeader:o}=x(a.type,l,{signatureHeaderLine:a.original,canonicalization:i,instance:"ARC"===a.type&&a.parsed?.i?.value,strict:this.strict}),p={keys:l.keys,headers:l.headers.map(a=>a.line.toString()),canonicalizedHeader:o.toString("base64")},q={result:"neutral",comment:!1,header:this.getStatusHeader(a)};"DKIM"===a.type&&this.headerFrom?.length&&(q.aligned=h(this.headerFrom[0].split("@").pop(),[a.signingDomain])?.domain||!1);let r=this.bodyHashes.get(j),s=r?.hash,t=r?.mimeStructureStart,u=[].concat(a.warnings||[]);if(a.invalid)q.result="neutral",q.comment=a.invalid;else if(a.parsed?.bh?.value!==s)q.result=this.strict?"fail":"neutral",q.comment="body hash did not verify";else if(this.rejectRsaSha1&&"DKIM"===a.type&&"sha1"===a.hashAlgo)q.result="policy",q.comment="weak algorithm",q.policy={"dkim-rules":"weak-algorithm"};else try{let b=await this.keyCache.get(a.type,`${a.selector}._domainkey.${a.signingDomain}`,this.minBitLength,{strict:this.strict,hashAlgo:a.hashAlgo});c=b?.publicKey,f=b?.rr,g=b?.modulusLength,m(u,...b?.warnings||[]),b?.testing&&(q.testing=!0);let e=!1;if(this.strict&&b?.keyType&&b.keyType!==a.signAlgo?e="inappropriate key algorithm":b?.flags?.includes("s")&&a.identityDomain&&k(a.identityDomain)!==k(a.signingDomain)&&(this.strict?e="domain mismatch":m(u,"identity-domain")),e)q.result="neutral",q.comment=e;else try{q.result=A.verify("rsa"===a.signAlgo?a.algorithm:null,"rsa"===a.signAlgo?o:A.createHash("sha256").update(o).digest(),c,d.from(a.parsed?.b?.value||"","base64"))?"pass":"fail","fail"===q.result&&(q.comment="bad signature"),"pass"===q.result&&(a.expiration&&a.timestamp&&a.expiration<a.timestamp&&(q.result="neutral",q.comment="invalid expiration"),a.expiration&&a.expiration<this.curTime&&(q.result="neutral",q.comment="expired"))}catch(a){q.result="neutral",q.comment=a.message}}catch(a){a.rr&&(f=a.rr),n.has(a.code)?(q.result="neutral",q.comment=n.get(a.code)):"ESHORTKEY"===a.code?(q.result="policy",q.policy||(q.policy={}),q.policy["dkim-rules"]="weak-key"):(q.result="temperror",q.comment=`DNS failure: ${a.code||a.message}`)}u.length&&(q.warnings=u);let v=r?.bodyHashedBytes,w=r?.canonicalizedLength,y=r?.byteLength;b||(a.bodyHashedBytes=v,a.canonicalizedLength=w,a.sourceBodyLength=y);let z=Object.assign(this.baseResult(a,b?i:a.parsed?.c?.value),{bodyHash:s,bodyHashExpecting:a.parsed?.bh?.value,signingHeaders:p,status:q,signTime:a.timestamp&&!isNaN(a.timestamp)?a.timestamp.toISOString():null,expiresAfter:a.expiration&&!isNaN(a.expiration)?a.expiration.toISOString():null,signatureTimeValid:this.getSignatureTimeValid(a)});return"number"==typeof y&&(z.sourceBodyLength=y),"number"==typeof v&&(z.canonBodyLength=v),"number"==typeof w&&(z.canonBodyLengthTotal=w),"number"==typeof a.maxBodyLength?(z.canonBodyLengthLimited=!0,z.canonBodyLengthLimit=a.maxBodyLength,z.canonBodyLengthTotal>z.canonBodyLength&&(q.underSized=z.canonBodyLengthTotal-z.canonBodyLength)):z.canonBodyLengthLimited=!1,"number"==typeof t&&(z.mimeStructureStart=t),c&&(z.publicKey=c.toString()),g&&(z.modulusLength=g),f&&(z.rr=f),"boolean"==typeof z.status.comment&&delete z.status.comment,z}skippedSignatureResult(a){let b={result:"neutral",comment:a.skip,header:this.getStatusHeader(a)};return Object.assign(this.baseResult(a,a.parsed?.c?.value),{status:b})}async finalChunk(){try{if(!this.headers||!this.bodyHashes.size&&!this.signatureHeaders.some(a=>a.invalid||a.skip))return;for(let[a,b]of this.bodyHashes.entries())this.bodyHashes.get(a).hash=b.digest("base64"),this.bodyHashes.get(a).mimeStructureStart=b.getMimeStructureStart();for(let a of this.signatureHeaders){let b;if(a.skip){if(!this.strict||"DKIM"!==a.type)continue;b=this.skippedSignatureResult(a)}else if(b=await this.verifySignature(a),a.fallbackCanonicalization&&!a.invalid&&"pass"!==b.status.result){let c=await this.verifySignature(a,!0);"pass"===c.status.result&&(c.status.warnings=m([].concat(c.status.warnings||[]),"ams-c-default"),b=c)}switch(a.type){case"ARC":if(!this.arc.lastEntry)break;this.arc.lastEntry.messageSignature=b;break;default:this.results.push(b)}}}finally{this.results.length||this.results.push({status:{result:"none",comment:"message not signed"}}),this.results.forEach(a=>{a.info=g("dkim",a.status,{strict:this.strict})})}this.seal&&this.bodyHashes.has(this.sealBodyHashKey)&&"string"==typeof this.bodyHashes.get(this.sealBodyHashKey)?.hash&&(this.seal.bodyHash=this.bodyHashes.get(this.sealBodyHashKey).hash)}}}},90738,(a,b,c)=>{"use strict";let{writeToStream:d}=a.r(787767),{DkimVerifier:e}=a.r(419159);b.exports={dkimVerify:async(a,b)=>{let c=new e(b);await d(c,a);let f={headerFrom:c.headerFrom,fromFields:c.fromFields,envelopeFrom:c.envelopeFrom,results:c.results};return c.headers&&Object.defineProperty(f,"headers",{enumerable:!1,configurable:!1,writable:!1,value:c.headers}),c.arc&&Object.defineProperty(f,"arc",{enumerable:!1,configurable:!1,writable:!1,value:c.arc}),c.seal&&Object.defineProperty(f,"seal",{enumerable:!1,configurable:!1,writable:!1,value:c.seal}),f}}},272380,a=>{"use strict";var 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,A,B,C,D,E=a.i(634531),F=a.i(22372),G=a.i(53112),H=Object.defineProperty,I=Object.defineProperties,J=Object.getOwnPropertyDescriptors,K=Object.getOwnPropertySymbols,L=Object.prototype.hasOwnProperty,M=Object.prototype.propertyIsEnumerable,N=a=>{throw TypeError(a)},O=(a,b,c)=>b in a?H(a,b,{enumerable:!0,configurable:!0,writable:!0,value:c}):a[b]=c,P=(a,b)=>{for(var c in b||(b={}))L.call(b,c)&&O(a,c,b[c]);if(K)for(var c of K(b))M.call(b,c)&&O(a,c,b[c]);return a},Q=(a,b)=>I(a,J(b)),R=(a,b)=>{var c={};for(var d in a)L.call(a,d)&&0>b.indexOf(d)&&(c[d]=a[d]);if(null!=a&&K)for(var d of K(a))0>b.indexOf(d)&&M.call(a,d)&&(c[d]=a[d]);return c},S=(a,b,c)=>(b.has(a)||N("Cannot read from private field"),c?c.call(a):b.get(a)),T="vercel.ai.error",U=Symbol.for(T),V=class a extends(d=Error,c=U,d){constructor({name:a,message:b,cause:d}){super(b),this[c]=!0,this.name=a,this.cause=d}static isInstance(b){return a.hasMarker(b,T)}static hasMarker(a,b){let c=Symbol.for(b);return null!=a&&"object"==typeof a&&c in a&&"boolean"==typeof a[c]&&!0===a[c]}},W="AI_APICallError",X=`vercel.ai.error.${W}`,Y=Symbol.for(X),Z=class extends(f=V,e=Y,f){constructor({message:a,url:b,requestBodyValues:c,statusCode:d,responseHeaders:f,responseBody:g,cause:h,isRetryable:i=null!=d&&(408===d||409===d||429===d||d>=500),data:j}){super({name:W,message:a,cause:h}),this[e]=!0,this.url=b,this.requestBodyValues=c,this.statusCode=d,this.responseHeaders=f,this.responseBody=g,this.isRetryable=i,this.data=j}static isInstance(a){return V.hasMarker(a,X)}},$="AI_EmptyResponseBodyError",_=`vercel.ai.error.${$}`,aa=Symbol.for(_),ab=class extends(h=V,g=aa,h){constructor({message:a="Empty response body"}={}){super({name:$,message:a}),this[g]=!0}static isInstance(a){return V.hasMarker(a,_)}},ac=Symbol.for("vercel.ai.error.AI_EvaluationUnsupportedQuestionTypeError");function ad(a){return null==a?"unknown error":"string"==typeof a?a:a instanceof Error?a.toString():JSON.stringify(a)}var ae="AI_InvalidArgumentError",af=`vercel.ai.error.${ae}`,ag=Symbol.for(af),ah=class extends(j=V,i=ag,j){constructor({message:a,cause:b,argument:c}){super({name:ae,message:a,cause:b}),this[i]=!0,this.argument=c}static isInstance(a){return V.hasMarker(a,af)}},ai="AI_InvalidPromptError",aj=`vercel.ai.error.${ai}`,ak=Symbol.for(aj),al=class extends(l=V,k=ak,l){constructor({prompt:a,message:b,cause:c}){super({name:ai,message:`Invalid prompt: ${b}`,cause:c}),this[k]=!0,this.prompt=a}static isInstance(a){return V.hasMarker(a,aj)}},am="AI_InvalidResponseDataError",an=`vercel.ai.error.${am}`,ao=Symbol.for(an),ap=class extends(n=V,m=ao,n){constructor({data:a,message:b=`Invalid response data: ${JSON.stringify(a)}.`}){super({name:am,message:b}),this[m]=!0,this.data=a}static isInstance(a){return V.hasMarker(a,an)}},aq="AI_JSONParseError",ar=`vercel.ai.error.${aq}`,as=Symbol.for(ar),at=class extends(p=V,o=as,p){constructor({text:a,cause:b}){super({name:aq,message:`JSON parsing failed: Text: ${a}.
|
|
252
255
|
Error message: ${ad(b)}`,cause:b}),this[o]=!0,this.text=a}static isInstance(a){return V.hasMarker(a,ar)}},au="AI_LoadAPIKeyError",av=`vercel.ai.error.${au}`,aw=Symbol.for(av),ax=class extends(r=V,q=aw,r){constructor({message:a}){super({name:au,message:a}),this[q]=!0}static isInstance(a){return V.hasMarker(a,av)}},ay="AI_LoadSettingError",az=`vercel.ai.error.${ay}`,aA=Symbol.for(az),aB=class extends(t=V,s=aA,t){constructor({message:a}){super({name:ay,message:a}),this[s]=!0}static isInstance(a){return V.hasMarker(a,az)}},aC="AI_NoContentGeneratedError",aD=`vercel.ai.error.${aC}`,aE=Symbol.for(aD),aF=class extends(v=V,u=aE,v){constructor({message:a="No content generated."}={}){super({name:aC,message:a}),this[u]=!0}static isInstance(a){return V.hasMarker(a,aD)}},aG=Symbol.for("vercel.ai.error.AI_NoSuchModelError");Symbol.for("vercel.ai.error.AI_NoSuchProviderReferenceError");Symbol.for("vercel.ai.error.AI_TooManyEmbeddingValuesForCallError");var aH="AI_TypeValidationError",aI=`vercel.ai.error.${aH}`,aJ=Symbol.for(aI),aK=class a extends(x=V,w=aJ,x){constructor({value:a,cause:b,context:c}){let d="Type validation failed";if((null==c?void 0:c.field)&&(d+=` for ${c.field}`),(null==c?void 0:c.entityName)||(null==c?void 0:c.entityId)){d+=" (";const a=[];c.entityName&&a.push(c.entityName),c.entityId&&a.push(`id: "${c.entityId}"`),d+=a.join(", "),d+=")"}super({name:aH,message:`${d}: Value: ${JSON.stringify(a)}.
|
|
253
256
|
Error message: ${ad(b)}`,cause:b}),this[w]=!0,this.value=a,this.context=c}static isInstance(a){return V.hasMarker(a,aI)}static wrap({value:b,cause:c,context:d}){var e,f,g;return a.isInstance(c)&&c.value===b&&(null==(e=c.context)?void 0:e.field)===(null==d?void 0:d.field)&&(null==(f=c.context)?void 0:f.entityName)===(null==d?void 0:d.entityName)&&(null==(g=c.context)?void 0:g.entityId)===(null==d?void 0:d.entityId)?c:new a({value:b,cause:c,context:d})}},aL="AI_UnsupportedFunctionalityError",aM=`vercel.ai.error.${aL}`,aN=Symbol.for(aM),aO=class extends(z=V,y=aN,z){constructor({functionality:a,message:b=`'${a}' functionality not supported.`}){super({name:aL,message:b}),this[y]=!0,this.functionality=a}static isInstance(a){return V.hasMarker(a,aM)}},aP=class extends Error{constructor(a,b){super(a),this.name="ParseError",this.type=b.type,this.field=b.field,this.value=b.value,this.line=b.line}};function aQ(a){}function aR(a,b,c){return 100===c&&97===a.charCodeAt(b+1)&&116===a.charCodeAt(b+2)&&97===a.charCodeAt(b+3)&&58===a.charCodeAt(b+4)}function aS(a,b,c){return 101===c&&118===a.charCodeAt(b+1)&&101===a.charCodeAt(b+2)&&110===a.charCodeAt(b+3)&&116===a.charCodeAt(b+4)&&58===a.charCodeAt(b+5)}var aT=class extends TransformStream{constructor({onError:a,onRetry:b,onComment:c,maxBufferSize:d}={}){let e;super({start(f){e=function(a){if("function"==typeof a)throw TypeError("`config` must be an object, got a function instead. Did you mean `createParser({onEvent: fn})`?");let{onEvent:b=aQ,onError:c=aQ,onRetry:d=aQ,onComment:e,maxBufferSize:f}=a,g=[],h=0,i=!0,j,k="",l=0,m,n=!1;function o(){void 0!==f&&(h+k.length<=f||(n=!0,g.length=0,h=0,j=void 0,k="",l=0,m=void 0,c(new aP(`Buffered data exceeded max buffer size of ${f} characters`,{type:"max-buffer-size-exceeded"}))))}function p(a){let c=0;if(-1===a.indexOf("\r")){let d=a.indexOf(`
|
|
254
257
|
`,c);for(;-1!==d;){if(c===d){l>0&&b({id:j,event:m,data:k}),j=void 0,k="",l=0,m=void 0,c=d+1,d=a.indexOf(`
|
|
@@ -411,7 +414,7 @@ upgrade: ${H}\r
|
|
|
411
414
|
${d} ${b}[${c}]${g}`).replace(/"\[(NaN|Symbol.*|-?Infinity|function.*|\(.*)]"/g,(a,b)=>b);i=`${i}
|
|
412
415
|
${b}`;for(let a=0;a<this.details.length;++a){let b=a+1;i=`${i}
|
|
413
416
|
[${b}] ${this.details[a].message}`}return i+g},f.safeStringify=function(a,b){return JSON.stringify(a,f.serializer(),b)},f.serializer=function(){let a=[],b=[],c=(c,d)=>b[0]===d?"[Circular ~]":"[Circular ~."+a.slice(0,b.indexOf(d)).join(".")+"]";return function(d,e){if(b.length>0){let f=b.indexOf(this);~f?(b.length=f+1,a.length=f+1,a[f]=d):(b.push(this),a.push(d)),~b.indexOf(e)&&(e=c.call(this,d,e))}else b.push(e);if(e){let a=e[f.annotations];if(a){if(Array.isArray(e)){let b=[];for(let c=0;c<e.length;++c)a.errors[c]&&b.push(`_$idx$_${a.errors[c].sort().join(", ")}_$end$_`),b.push(e[c]);e=b}else{for(let b of Object.keys(a.errors))e[`${b}_$key$_${a.errors[b].sort().join(", ")}_$end$_`]=e[b],e[b]=void 0;for(let b of Object.keys(a.missing))e[`_$miss$_${b}|${a.missing[b]}_$end$_`]="__missing__"}return e}}return e===1/0||e===-1/0||Number.isNaN(e)||"function"==typeof e||"symbol"==typeof e?"["+e.toString()+"]":e}}},59019,(a,b,c)=>{"use strict";let d=a.r(934674),e=a.r(832612),f=a.r(306544);c.Report=class{constructor(a,b,d,e,f,g,h){if(this.code=a,this.flags=e,this.messages=f,this.path=g.path,this.prefs=h,this.state=g,this.value=b,this.message=null,this.template=null,this.local=d||{},this.local.label=c.label(this.flags,this.state,this.prefs,this.messages),void 0===this.value||this.local.hasOwnProperty("value")||(this.local.value=this.value),this.path.length){const a=this.path[this.path.length-1];"object"!=typeof a&&(this.local.key=a)}}_setTemplate(a){if(this.template=a,!this.flags.label&&0===this.path.length){let a=this._template(this.template,"root");a&&(this.local.label=a)}}toString(){if(this.message)return this.message;let a=this.code;if(!this.prefs.errors.render)return this.code;let b=this._template(this.template)||this._template(this.prefs.messages)||this._template(this.messages);return void 0===b?`Error code "${a}" is not defined, your custom type is missing the correct messages definition`:(this.message=b.render(this.value,this.state,this.prefs,this.local,{errors:this.prefs.errors,messages:[this.prefs.messages,this.messages]}),this.prefs.errors.label||(this.message=this.message.replace(/^"" /,"").trim()),this.message)}_template(a,b){return c.template(this.value,a,b||this.code,this.state,this.prefs)}},c.path=function(a){let b="";for(let c of a)"object"!=typeof c&&("string"==typeof c?(b&&(b+="."),b+=c):b+=`[${c}]`);return b},c.template=function(a,b,c,d,g){if(!b)return;if(f.isTemplate(b))return"root"!==c?b:null;let h=g.errors.language;if(e.isResolvable(h)&&(h=h.resolve(a,d,g)),h&&b[h]){if(void 0!==b[h][c])return b[h][c];if(void 0!==b[h]["*"])return b[h]["*"]}return b[c]?b[c]:b["*"]},c.label=function(a,b,d,e){if(!d.errors.label)return"";if(a.label)return a.label;let f=b.path;"key"===d.errors.label&&b.path.length>1&&(f=b.path.slice(-1));let g=c.path(f);return g||c.template(null,d.messages,"root",b,d)||e&&c.template(null,e,"root",b,d)||"value"},c.process=function(a,b,d){if(!a)return null;let{override:e,message:f,details:g}=c.details(a);if(e)return e;if(d.errors.stack)return new c.ValidationError(f,g,b);let h=Error.stackTraceLimit;Error.stackTraceLimit=0;let i=new c.ValidationError(f,g,b);return Error.stackTraceLimit=h,i},c.details=function(a,b={}){let c=[],d=[];for(let e of a){if(e instanceof Error){if(!1!==b.override)return{override:e};let a=e.toString();c.push(a),d.push({message:a,type:"override",context:{error:e}});continue}let a=e.toString();c.push(a),d.push({message:a,path:e.path.filter(a=>"object"!=typeof a),type:e.code,context:e.local})}return c.length>1&&(c=[...new Set(c)]),{message:c.join(". "),details:d}},c.ValidationError=class extends Error{constructor(a,b,c){super(a),this._original=c,this.details=b}static isError(a){return a instanceof c.ValidationError}},c.ValidationError.prototype.isJoi=!0,c.ValidationError.prototype.name="ValidationError",c.ValidationError.prototype.annotate=d.error},725767,(a,b,c)=>{"use strict";let d,{assert:e,reach:f}=a.r(888690),g=a.r(832612),h={symbol:Symbol("ref"),defaults:{adjust:null,in:!1,iterables:null,map:null,separator:".",type:"value"}};c.create=function(a,b={}){e("string"==typeof a,"Invalid reference key:",a),g.assertOptions(b,["adjust","ancestor","in","iterables","map","prefix","render","separator"]),e(!b.prefix||"object"==typeof b.prefix,"options.prefix must be of type object");let c=Object.assign({},h.defaults,b);delete c.prefix;let d=c.separator,f=h.context(a,d,b.prefix);if(c.type=f.type,a=f.key,"value"===c.type)if(f.root&&(e(!d||a[0]!==d,"Cannot specify relative path with root prefix"),c.ancestor="root",a||(a=null)),d&&d===a)a=null,c.ancestor=0;else if(void 0!==c.ancestor)e(!d||!a||a[0]!==d,"Cannot combine prefix with ancestor option");else{let[b,e]=h.ancestor(a,d);e&&""===(a=a.slice(e))&&(a=null),c.ancestor=b}return c.path=d?null===a?[]:a.split(d):[a],new h.Ref(c)},c.in=function(a,b={}){return c.create(a,{...b,in:!0})},c.isRef=function(a){return!!a&&!!a[g.symbols.ref]},h.Ref=class{constructor(a){e("object"==typeof a,"Invalid reference construction"),g.assertOptions(a,["adjust","ancestor","in","iterables","map","path","render","separator","type","depth","key","root","display"]),e([!1,void 0].includes(a.separator)||"string"==typeof a.separator&&1===a.separator.length,"Invalid separator"),e(!a.adjust||"function"==typeof a.adjust,"options.adjust must be a function"),e(!a.map||Array.isArray(a.map),"options.map must be an array"),e(!a.map||!a.adjust,"Cannot set both map and adjust options"),Object.assign(this,h.defaults,a),e("value"===this.type||void 0===this.ancestor,"Non-value references cannot reference ancestors"),Array.isArray(this.map)&&(this.map=new Map(this.map)),this.depth=this.path.length,this.key=this.path.length?this.path.join(this.separator):null,this.root=this.path[0],this.updateDisplay()}resolve(a,b,c,d,f={}){return(e(!this.in||f.in,"Invalid in() reference usage"),"global"===this.type)?this._resolve(c.context,b,f):"local"===this.type?this._resolve(d,b,f):this.ancestor?"root"===this.ancestor?this._resolve(b.ancestors[b.ancestors.length-1],b,f):(e(this.ancestor<=b.ancestors.length,"Invalid reference exceeds the schema root:",this.display),this._resolve(b.ancestors[this.ancestor-1],b,f)):this._resolve(a,b,f)}_resolve(a,b,c){let d;if("value"===this.type&&b.mainstay.shadow&&!1!==c.shadow&&(d=b.mainstay.shadow.get(this.absolute(b))),void 0===d&&(d=f(a,this.path,{iterables:this.iterables,functions:!0})),this.adjust&&(d=this.adjust(d)),this.map){let a=this.map.get(d);void 0!==a&&(d=a)}return b.mainstay&&b.mainstay.tracer.resolve(b,this,d),d}toString(){return this.display}absolute(a){return[...a.path.slice(0,-this.ancestor),...this.path]}clone(){return new h.Ref(this)}describe(){let a={path:this.path};for(let b of("value"!==this.type&&(a.type=this.type),"."!==this.separator&&(a.separator=this.separator),"value"===this.type&&1!==this.ancestor&&(a.ancestor=this.ancestor),this.map&&(a.map=[...this.map]),["adjust","iterables","render"]))null!==this[b]&&void 0!==this[b]&&(a[b]=this[b]);return!1!==this.in&&(a.in=!0),{ref:a}}updateDisplay(){let a=null!==this.key?this.key:"";if("value"!==this.type){this.display=`ref:${this.type}:${a}`;return}if(!this.separator){this.display=`ref:${a}`;return}if(!this.ancestor){this.display=`ref:${this.separator}${a}`;return}if("root"===this.ancestor){this.display=`ref:root:${a}`;return}if(1===this.ancestor){this.display=`ref:${a||".."}`;return}let b=Array(this.ancestor+1).fill(this.separator).join("");this.display=`ref:${b}${a||""}`}},h.Ref.prototype[g.symbols.ref]=!0,c.build=function(a){return"value"===(a=Object.assign({},h.defaults,a)).type&&void 0===a.ancestor&&(a.ancestor=1),new h.Ref(a)},h.context=function(a,b,c={}){if(a=a.trim(),c){let d=void 0===c.global?"$":c.global;if(d!==b&&a.startsWith(d))return{key:a.slice(d.length),type:"global"};let e=void 0===c.local?"#":c.local;if(e!==b&&a.startsWith(e))return{key:a.slice(e.length),type:"local"};let f=void 0===c.root?"/":c.root;if(f!==b&&a.startsWith(f))return{key:a.slice(f.length),type:"value",root:!0}}return{key:a,type:"value"}},h.ancestor=function(a,b){if(!b||a[0]!==b)return[1,0];if(a[1]!==b)return[0,1];let c=2;for(;a[c]===b;)++c;return[c-1,c]},c.toSibling=0,c.toParent=1,c.Manager=class{constructor(){this.refs=[]}register(b,e){if(b){if(e=void 0===e?c.toParent:e,Array.isArray(b)){for(let a of b)this.register(a,e);return}if(g.isSchema(b)){for(let a of b._refs.refs)a.ancestor-e>=0&&this.refs.push({ancestor:a.ancestor-e,root:a.root});return}c.isRef(b)&&"value"===b.type&&b.ancestor-e>=0&&this.refs.push({ancestor:b.ancestor-e,root:b.root}),(d=d||a.r(306544)).isTemplate(b)&&this.register(b.refs(),e)}}get length(){return this.refs.length}clone(){let a=new c.Manager;return a.refs=this.refs.slice(),a}reset(){this.refs=[]}roots(){return this.refs.filter(a=>!a.ancestor).map(a=>a.root)}}},306544,(a,b,c)=>{"use strict";let{assert:d,clone:e,escapeHtml:f}=a.r(888690),g=a.r(818538),h=a.r(832612),i=a.r(59019),j=a.r(725767),k={symbol:Symbol("template"),opens:Array(1e3).join("\0"),closes:Array(1e3).join("\x01"),dateFormat:{date:Date.prototype.toDateString,iso:Date.prototype.toISOString,string:Date.prototype.toString,time:Date.prototype.toTimeString,utc:Date.prototype.toUTCString}};b.exports=k.Template=class{constructor(a,b){if(d("string"==typeof a,"Template source must be a string"),d(!a.includes("\0")&&!a.includes("\x01"),"Template source cannot contain reserved control characters"),this.source=a,this.rendered=a,this._template=null,b){const{functions:a,...c}=b;this._settings=Object.keys(c).length?e(c):void 0,this._functions=a,this._functions&&(d(Object.keys(this._functions).every(a=>"string"==typeof a),"Functions keys must be strings"),d(Object.values(this._functions).every(a=>"function"==typeof a),"Functions values must be functions"))}else this._settings=void 0,this._functions=void 0;this._parse()}_parse(){if(!this.source.includes("{"))return;let a=k.encode(this.source),b=k.split(a),c=!1,d=[],e=b.shift();for(let a of(e&&d.push(k.decode(e)),b)){let b="{"!==a[0],e=b?"}":"}}",f=a.indexOf(e);if(-1===f||"{"===a[1]){d.push(`{${k.decode(a)}`);continue}let g=a.slice(+!b,f),h=":"===g[0];h&&(g=g.slice(1));let i=this._ref(k.decode(g),{raw:b,wrapped:h});d.push(i),"string"!=typeof i&&(c=!0);let j=a.slice(f+e.length);j&&d.push(k.decode(j))}if(!c){this.rendered=d.join("");return}this._template=d}static date(a,b){return k.dateFormat[b.dateFormat].call(a)}describe(a={}){if(!this._settings&&a.compact)return this.source;let b={template:this.source};return this._settings&&(b.options=this._settings),this._functions&&(b.functions=this._functions),b}static build(a){return new k.Template(a.template,a.options||a.functions?{...a.options,functions:a.functions}:void 0)}isDynamic(){return!!this._template}static isTemplate(a){return!!a&&!!a[h.symbols.template]}refs(){if(!this._template)return;let a=[];for(let b of this._template)"string"!=typeof b&&a.push(...b.refs);return a}resolve(a,b,c,d){return this._template&&1===this._template.length?this._part(this._template[0],a,b,c,d,{}):this.render(a,b,c,d)}_part(a,...b){return a.ref?a.ref.resolve(...b):a.formula.evaluate(b)}render(a,b,c,d,e={}){if(!this.isDynamic())return this.rendered;let g=[];for(let h of this._template)if("string"==typeof h)g.push(h);else{let i=this._part(h,a,b,c,d,e),j=k.stringify(i,a,b,c,d,e);if(void 0!==j){let a=h.raw||!1===(e.errors&&e.errors.escapeHtml)?j:f(j);g.push(k.wrap(a,h.wrapped&&c.errors.wrap.label))}}return g.join("")}_ref(a,{raw:b,wrapped:c}){let d=[],e=a=>{let b=j.create(a,this._settings);return d.push(b),a=>{let c=b.resolve(...a);return void 0!==c?c:null}};try{let b=this._functions?{...k.functions,...this._functions}:k.functions;var f=new g.Parser(a,{reference:e,functions:b,constants:k.constants})}catch(b){throw b.message=`Invalid template variable "${a}" fails due to: ${b.message}`,b}if(f.single){if("reference"===f.single.type){let a=d[0];return{ref:a,raw:b,refs:d,wrapped:c||"local"===a.type&&"label"===a.key}}return k.stringify(f.single.value)}return{formula:f,raw:b,refs:d}}toString(){return this.source}},k.Template.prototype[h.symbols.template]=!0,k.Template.prototype.isImmutable=!0,k.encode=function(a){return a.replace(/\\(\{+)/g,(a,b)=>k.opens.slice(0,b.length)).replace(/\\(\}+)/g,(a,b)=>k.closes.slice(0,b.length))},k.decode=function(a){return a.replace(/\u0000/g,"{").replace(/\u0001/g,"}")},k.split=function(a){let b=[],c="";for(let d=0;d<a.length;++d){let e=a[d];if("{"===e){let e="";for(;d+1<a.length&&"{"===a[d+1];)e+="{",++d;b.push(c),c=e}else c+=e}return b.push(c),b},k.wrap=function(a,b){return b?1===b.length?`${b}${a}${b}`:`${b[0]}${a}${b[1]}`:a},k.stringify=function(a,b,c,d,e,f={}){let g=typeof a,h=d&&d.errors&&d.errors.wrap||{},i=!1;if(j.isRef(a)&&a.render&&(i=a.in,a=a.resolve(b,c,d,e,{in:a.in,...f})),null===a)return"null";if("string"===g)return k.wrap(a,f.arrayItems&&h.string);if("number"===g||"function"===g||"symbol"===g)return a.toString();if("object"!==g)return JSON.stringify(a);if(a instanceof Date)return k.Template.date(a,d);if(a instanceof Map){let b=[];for(let[c,d]of a.entries())b.push(`${c.toString()} -> ${d.toString()}`);a=b}if(!Array.isArray(a))return a.toString();let l=[];for(let g of a)l.push(k.stringify(g,b,c,d,e,{arrayItems:!0,...f}));return k.wrap(l.join(", "),!i&&h.array)},k.constants={true:!0,false:!1,null:null,second:1e3,minute:6e4,hour:36e5,day:864e5},k.functions={if:(a,b,c)=>a?b:c,length:a=>"string"==typeof a?a.length:a&&"object"==typeof a?Array.isArray(a)?a.length:Object.keys(a).length:null,msg(a){let[b,c,d,e,f]=this,g=f.messages;if(!g)return"";let h=i.template(b,g[0],a,c,d)||i.template(b,g[1],a,c,d);return h?h.render(b,c,d,e,f):""},number:a=>"number"==typeof a?a:"string"==typeof a?parseFloat(a):"boolean"==typeof a?+!!a:a instanceof Date?a.getTime():null}},329155,(a,b,c)=>{"use strict";let{assert:d,clone:e}=a.r(888690),f=a.r(306544);c.compile=function(a,b){if("string"==typeof a)return d(!b,"Cannot set single message string"),new f(a);if(f.isTemplate(a))return d(!b,"Cannot set single message template"),a;for(let c of(d("object"==typeof a&&!Array.isArray(a),"Invalid message options"),b=b?e(b):{},Object.keys(a))){let e=a[c];if("root"===c||f.isTemplate(e)){d("__proto__"!==c,"Cannot use __proto__ as a message code"),b[c]=e;continue}if("string"==typeof e){d("__proto__"!==c,"Cannot use __proto__ as a message code"),b[c]=new f(e);continue}d("object"==typeof e&&!Array.isArray(e),"Invalid message for",c);let g=Object.hasOwn(b,c)?b[c]:{};for(let a of(b[c]=g,Object.keys(e))){let b=e[a];if(d("__proto__"!==a,"Cannot use __proto__ as a message code"),"root"===a||f.isTemplate(b)){g[a]=b;continue}d("string"==typeof b,"Invalid message for",a,"in",c),g[a]=new f(b)}}return b},c.decompile=function(a){let b={};for(let c of Object.keys(a)){let d=a[c];if("root"===c){b.root=d;continue}if(f.isTemplate(d)){b[c]=d.describe({compact:!0});continue}for(let a of(b[c]={},Object.keys(d))){let e=d[a];if("root"===a){b[c].root=e;continue}b[c][a]=e.describe({compact:!0})}}return b},c.merge=function(a,b){if(!a)return c.compile(b);if(!b)return a;if("string"==typeof b)return new f(b);if(f.isTemplate(b))return b;let g=e(a);for(let a of Object.keys(b)){let c=b[a];if("root"===a||f.isTemplate(c)){d("__proto__"!==a,"Cannot use __proto__ as a message code"),g[a]=c;continue}if("string"==typeof c){d("__proto__"!==a,"Cannot use __proto__ as a message code"),g[a]=new f(c);continue}d("object"==typeof c&&!Array.isArray(c),"Invalid message for",a);let e=Object.hasOwn(g,a)?g[a]:{};for(let b of(g[a]=e,Object.keys(c))){let g=c[b];if(d("__proto__"!==b,"Cannot use __proto__ as a message code"),"root"===b||f.isTemplate(g)){e[b]=g;continue}d("string"==typeof g,"Invalid message for",b,"in",a),e[b]=new f(g)}}return g}},832612,(a,b,c)=>{"use strict";let d,e,{assert:f,AssertError:g}=a.r(888690),h=a.r(913472),i=/^(?:[-+]\d{2})?(?:\d{4}(?!\d{2}\b))(?:(-?)(?:(?:0[1-9]|1[0-2])(?:\1(?:[12]\d|0[1-9]|3[01]))?|W(?:[0-4]\d|5[0-2])(?:-?[1-7])?|(?:00[1-9]|0[1-9]\d|[12]\d{2}|3(?:[0-5]\d|6[1-6])))(?![T]$|[T][\d]+Z$)(?:[T\s](?:(?:(?:[01]\d|2[0-3])(?:(:?)[0-5]\d)?|24\:?00)(?:[.,]\d+(?!:))?)(?:\2[0-5]\d(?:[.,]\d+)?)?(?:[Z]|(?:[+-])(?:[01]\d|2[0-3])(?::?[0-5]\d)?)?)?)?$/;c.version=h.version,c.defaults={abortEarly:!0,allowUnknown:!1,artifacts:!1,cache:!0,context:null,convert:!0,dateFormat:"iso",errors:{escapeHtml:!1,label:"path",language:null,render:!0,stack:!1,wrap:{label:'"',array:"[]"}},externals:!0,messages:{},nonEnumerables:!1,noDefaults:!1,presence:"optional",skipFunctions:!1,stripUnknown:!1,warnings:!1},c.symbols={any:Symbol.for("@hapi/joi/schema"),arraySingle:Symbol("arraySingle"),deepDefault:Symbol("deepDefault"),errors:Symbol("errors"),literal:Symbol("literal"),override:Symbol("override"),parent:Symbol("parent"),prefs:Symbol("prefs"),ref:Symbol("ref"),template:Symbol("template"),values:Symbol("values")},c.assertOptions=function(a,b,c="Options"){f(a&&"object"==typeof a&&!Array.isArray(a),"Options must be of type object");let d=Object.keys(a).filter(a=>!b.includes(a));f(0===d.length,`${c} contain unknown keys: ${d}`)},c.checkPreferences=function(b){let c=(e=e||a.r(425471)).preferences.validate(b);if(c.error)throw new g([c.error.details[0].message])},c.compare=function(a,b,c){switch(c){case"=":return a===b;case">":return a>b;case"<":return a<b;case">=":return a>=b;case"<=":return a<=b}},c.default=function(a,b){return void 0===a?b:a},c.intersect=function(a,b){if("function"==typeof a.intersection)return a.intersection(b);let c=new Set;for(let d of a)b.has(d)&&c.add(d);return c},c.isIsoDate=function(a){return i.test(a)},c.isNumber=function(a){return"number"==typeof a&&!isNaN(a)},c.isResolvable=function(a){return!!a&&(a[c.symbols.ref]||a[c.symbols.template])},c.isSchema=function(a,b={}){let d=a&&a[c.symbols.any];return!!d&&(f(b.legacy||d.version===c.version,"Cannot mix different versions of joi schemas"),!0)},c.isValues=function(a){return a[c.symbols.values]},c.limit=function(a){return Number.isSafeInteger(a)&&a>=0},c.preferences=function(b,e){d=d||a.r(329155);let f=Object.assign({},b=b||{},e=e||{});return e.errors&&b.errors&&(f.errors=Object.assign({},b.errors,e.errors),f.errors.wrap=Object.assign({},b.errors.wrap,e.errors.wrap)),e.messages&&(f.messages=d.compile(e.messages,b.messages)),delete f[c.symbols.prefs],f},c.tryWithPath=function(a,b,c={}){try{return a()}catch(a){throw void 0!==a.path?a.path=b+"."+a.path:a.path=b,c.append&&(a.message=`${a.message} (${a.path})`),a}},c.validateArg=function(a,b,{assert:d,message:e}){if(c.isSchema(d)){let b=d.validate(a);if(b.error)return b.error.message}else if(!d(a))return b?`${b} ${e}`:e},c.verifyFlat=function(a,b){for(let c of a)f(!Array.isArray(c),"Method no longer accepts array arguments:",b)}},176721,(a,b,c)=>{"use strict";let{assert:d,clone:e}=a.r(888690),f=a.r(832612),g={max:1e3,supported:new Set(["undefined","boolean","number","string"])};c.provider={provision:a=>new g.Cache(a)},g.Cache=class{constructor(a={}){f.assertOptions(a,["max"]),d(void 0===a.max||a.max&&a.max>0&&isFinite(a.max),"Invalid max cache size"),this._max=a.max||g.max,this._map=new Map,this._list=new g.List}get length(){return this._map.size}set(a,b){if(null!==a&&!g.supported.has(typeof a))return;let c=this._map.get(a);if(c){c.value=b,this._list.first(c);return}c=this._list.unshift({key:a,value:b}),this._map.set(a,c),this._compact()}get(a){let b=this._map.get(a);if(b)return this._list.first(b),e(b.value)}_compact(){if(this._map.size>this._max){let a=this._list.pop();this._map.delete(a.key)}}},g.List=class{constructor(){this.tail=null,this.head=null}unshift(a){return a.next=null,a.prev=this.head,this.head&&(this.head.next=a),this.head=a,this.tail||(this.tail=a),a}first(a){a!==this.head&&(this._remove(a),this.unshift(a))}pop(){return this._remove(this.tail)}_remove(a){let{next:b,prev:c}=a;return b.prev=c,c&&(c.next=b),a===this.tail&&(this.tail=b),a.prev=null,a.next=null,a}}},610725,(a,b,c)=>{"use strict";let{assert:d}=a.r(888690),e=a.r(832612),f=a.r(725767),g={};c.schema=function(a,b,c={}){e.assertOptions(c,["appendPath","override"]);try{return g.schema(a,b,c)}catch(a){throw c.appendPath&&void 0!==a.path&&(a.message=`${a.message} (${a.path})`),a}},g.schema=function(a,b,c){d(void 0!==b,"Invalid undefined schema"),Array.isArray(b)&&(d(b.length,"Invalid empty array schema"),1===b.length&&(b=b[0]));let f=(b,...d)=>!1!==c.override?b.valid(a.override,...d):b.valid(...d);if(g.simple(b))return f(a,b);if("function"==typeof b)return a.custom(b);if(d("object"==typeof b,"Invalid schema content:",typeof b),e.isResolvable(b))return f(a,b);if(e.isSchema(b))return b;if(Array.isArray(b)){for(let c of b)if(!g.simple(c))return a.alternatives().try(...b);return f(a,...b)}return b instanceof RegExp?a.string().regex(b):b instanceof Date?f(a.date(),b):(d(Object.getPrototypeOf(b)===Object.getPrototypeOf({}),"Schema can only contain plain objects"),a.object().keys(b))},c.ref=function(a,b){return f.isRef(a)?a:f.create(a,b)},c.compile=function(a,b,f={}){e.assertOptions(f,["legacy"]);let h=b&&b[e.symbols.any];if(h)return d(f.legacy||h.version===e.version,"Cannot mix different versions of joi schemas:",h.version,e.version),b;if("object"!=typeof b||!f.legacy)return c.schema(a,b,{appendPath:!0});let i=g.walk(b);return i?i.compile(i.root,b):c.schema(a,b,{appendPath:!0})},g.walk=function(a){if("object"!=typeof a)return null;if(Array.isArray(a)){for(let b of a){let a=g.walk(b);if(a)return a}return null}let b=a[e.symbols.any];if(b)return{root:a[b.root],compile:b.compile};for(let b of(d(Object.getPrototypeOf(a)===Object.getPrototypeOf({}),"Schema can only contain plain objects"),Object.keys(a))){let c=g.walk(a[b]);if(c)return c}return null},g.simple=function(a){return null===a||["boolean","string","number"].includes(typeof a)},c.when=function(a,b,h){if(void 0===h&&(d(b&&"object"==typeof b,"Missing options"),h=b,b=f.create(".")),Array.isArray(h)&&(h={switch:h}),e.assertOptions(h,["is","not","then","otherwise","switch","break"]),e.isSchema(b))return d(void 0===h.is,'"is" can not be used with a schema condition'),d(void 0===h.not,'"not" can not be used with a schema condition'),d(void 0===h.switch,'"switch" can not be used with a schema condition'),g.condition(a,{is:b,then:h.then,otherwise:h.otherwise,break:h.break});if(d(f.isRef(b)||"string"==typeof b,"Invalid condition:",b),d(void 0===h.not||void 0===h.is,'Cannot combine "is" with "not"'),void 0===h.switch){let i=h;void 0!==h.not&&(i={is:h.not,then:h.otherwise,otherwise:h.then,break:h.break});let j=void 0!==i.is?a.$_compile(i.is):a.$_root.invalid(null,!1,0,"").required();return d(void 0!==i.then||void 0!==i.otherwise,'options must have at least one of "then", "otherwise", or "switch"'),d(void 0===i.break||void 0===i.then||void 0===i.otherwise,"Cannot specify then, otherwise, and break all together"),void 0===h.is||f.isRef(h.is)||e.isSchema(h.is)||(j=j.required()),g.condition(a,{ref:c.ref(b),is:j,then:i.then,otherwise:i.otherwise,break:i.break})}d(Array.isArray(h.switch),'"switch" must be an array'),d(void 0===h.is,'Cannot combine "switch" with "is"'),d(void 0===h.not,'Cannot combine "switch" with "not"'),d(void 0===h.then,'Cannot combine "switch" with "then"');let i={ref:c.ref(b),switch:[],break:h.break};for(let b=0;b<h.switch.length;++b){let c=h.switch[b],g=b===h.switch.length-1;e.assertOptions(c,g?["is","then","otherwise"]:["is","then"]),d(void 0!==c.is,'Switch statement missing "is"'),d(void 0!==c.then,'Switch statement missing "then"');let j={is:a.$_compile(c.is),then:a.$_compile(c.then)};if(f.isRef(c.is)||e.isSchema(c.is)||(j.is=j.is.required()),g){d(void 0===h.otherwise||void 0===c.otherwise,'Cannot specify "otherwise" inside and outside a "switch"');let b=void 0!==h.otherwise?h.otherwise:c.otherwise;void 0!==b&&(d(void 0===i.break,"Cannot specify both otherwise and break"),j.otherwise=a.$_compile(b))}i.switch.push(j)}return i},g.condition=function(a,b){for(let c of["then","otherwise"])void 0===b[c]?delete b[c]:b[c]=a.$_compile(b[c]);return b}},689366,(a,b,c)=>{"use strict";let{assert:d,clone:e}=a.r(888690),f=a.r(832612),g=a.r(329155),h={};c.type=function(a,b){let c=Object.getPrototypeOf(a),i=e(c),j=a._assign(Object.create(i)),k=Object.assign({},b);delete k.base,i._definition=k;let l=c._definition||{};k.messages=g.merge(l.messages,k.messages),k.properties=Object.assign({},l.properties,k.properties),j.type=k.type,k.flags=Object.assign({},l.flags,k.flags);let m=Object.assign({},l.terms);if(k.terms)for(let a of Object.keys(k.terms)){let b=k.terms[a];d(void 0===j.$_terms[a],"Invalid term override for",k.type,a),j.$_terms[a]=b.init,m[a]=b}k.terms=m,k.args||(k.args=l.args),k.prepare=h.prepare(k.prepare,l.prepare),k.coerce&&("function"==typeof k.coerce&&(k.coerce={method:k.coerce}),k.coerce.from&&!Array.isArray(k.coerce.from)&&(k.coerce={method:k.coerce.method,from:[].concat(k.coerce.from)})),k.coerce=h.coerce(k.coerce,l.coerce),k.validate=h.validate(k.validate,l.validate);let n=Object.assign({},l.rules);if(k.rules)for(let a of Object.keys(k.rules)){let b=k.rules[a];d("object"==typeof b,"Invalid rule definition for",k.type,a);let c=b.method;if(void 0===c&&(c=function(){return this.$_addRule(a)}),c&&(d(!i[a],"Rule conflict in",k.type,a),i[a]=c),d(!n[a],"Rule conflict in",k.type,a),n[a]=b,b.alias)for(let a of[].concat(b.alias))i[a]=b.method;b.args&&(b.argsByName=new Map,b.args=b.args.map(a=>("string"==typeof a&&(a={name:a}),d(!b.argsByName.has(a.name),"Duplicated argument name",a.name),f.isSchema(a.assert)&&(a.assert=a.assert.strict().label(a.name)),b.argsByName.set(a.name,a),a)))}k.rules=n,k.jsonSchema||(k.jsonSchema=l.jsonSchema);let o=Object.assign({},l.modifiers);if(k.modifiers)for(let a of Object.keys(k.modifiers)){d(!i[a],"Rule conflict in",k.type,a);let b=k.modifiers[a];d("function"==typeof b,"Invalid modifier definition for",k.type,a);let c=function(b){return this.rule({[a]:b})};i[a]=c,o[a]=b}if(k.modifiers=o,k.overrides){for(let a of(i._super=c,j.$_super={},Object.keys(k.overrides)))d(c[a],"Cannot override missing",a),k.overrides[a][f.symbols.parent]=c[a],j.$_super[a]=c[a].bind(j);Object.assign(i,k.overrides)}k.cast=Object.assign({},l.cast,k.cast);let p=Object.assign({},l.manifest,k.manifest);return p.build=h.build(k.manifest&&k.manifest.build,l.manifest&&l.manifest.build),k.manifest=p,k.rebuild=h.rebuild(k.rebuild,l.rebuild),j},h.build=function(a,b){return a&&b?function(c,d){return b(a(c,d),d)}:a||b},h.coerce=function(a,b){return a&&b?{from:a.from&&b.from?[...new Set([...a.from,...b.from])]:null,method(c,d){let e;if((!b.from||b.from.includes(typeof c))&&(e=b.method(c,d))){if(e.errors||void 0===e.value)return e;c=e.value}if(!a.from||a.from.includes(typeof c)){let b=a.method(c,d);if(b)return b}return e}}:a||b},h.prepare=function(a,b){return a&&b?function(c,d){let e=a(c,d);if(e){if(e.errors||void 0===e.value)return e;c=e.value}return b(c,d)||e}:a||b},h.rebuild=function(a,b){return a&&b?function(c){b(c),a(c)}:a||b},h.validate=function(a,b){return a&&b?function(c,d){let e=b(c,d);if(e){if(e.errors&&(!Array.isArray(e.errors)||e.errors.length))return e;c=e.value}return a(c,d)||e}:a||b}},66125,(a,b,c)=>{"use strict";let d,{assert:e,clone:f}=a.r(888690),g=a.r(832612),h=a.r(329155),i=a.r(725767),j=a.r(306544),k={};c.describe=function(a){let b=a._definition,c={type:a.type,flags:{},rules:[]};for(let b of Object.keys(a._flags))"_"!==b[0]&&(c.flags[b]=k.describe(a._flags[b]));for(let d of(Object.keys(c.flags).length||delete c.flags,a._preferences&&(c.preferences=f(a._preferences,{shallow:["messages"]}),delete c.preferences[g.symbols.prefs],c.preferences.messages&&(c.preferences.messages=h.decompile(c.preferences.messages))),a._valids&&(c.allow=a._valids.describe()),a._invalids&&(c.invalid=a._invalids.describe()),a._rules)){if(!1===b.rules[d.name].manifest)continue;let a={name:d.name};for(let c of Object.keys(b.modifiers))void 0!==d[c]&&(a[c]=k.describe(d[c]));if(d.args){for(let b of(a.args={},Object.keys(d.args))){let c=d.args[b];("options"!==b||Object.keys(c).length)&&(a.args[b]=k.describe(c,{assign:b}))}Object.keys(a.args).length||delete a.args}c.rules.push(a)}for(let d of(c.rules.length||delete c.rules,Object.keys(a.$_terms))){if("_"===d[0])continue;e(!c[d],"Cannot describe schema due to internal name conflict with",d);let f=a.$_terms[d];if(!f)continue;if(f instanceof Map){f.size&&(c[d]=[...f.entries()]);continue}if(g.isValues(f)){c[d]=f.describe();continue}e(b.terms[d],"Term",d,"missing configuration");let h=b.terms[d].manifest,i="object"==typeof h;if(!f.length&&!i)continue;let j=[];for(let a of f)j.push(k.describe(a));if(i){let{from:a,to:b}=h.mapped;for(let e of(c[d]={},j))c[d][e[b]]=e[a];continue}if("single"===h){e(1===j.length,"Term",d,"contains more than one item"),c[d]=j[0];continue}c[d]=j}return k.validate(a.$_root,c),c},k.describe=function(a,b={}){if(Array.isArray(a))return a.map(k.describe);if(a===g.symbols.deepDefault)return{special:"deep"};if("object"!=typeof a||null===a)return a;if("options"===b.assign)return f(a);if(Buffer&&Buffer.isBuffer(a))return{buffer:a.toString("binary")};if(a instanceof Date)return a.toISOString();if(a instanceof Error)return a;if(a instanceof RegExp)return"regex"===b.assign?a.toString():{regex:a.toString()};if(a[g.symbols.literal])return{function:a.literal};if("function"==typeof a.describe)return"ref"===b.assign?a.describe().ref:a.describe();let c={};for(let b of Object.keys(a)){let d=a[b];void 0!==d&&(c[b]=k.describe(d,{assign:b}))}return c},c.build=function(a,b){return new k.Builder(a).parse(b)},k.Builder=class{constructor(a){this.joi=a}parse(a){k.validate(this.joi,a);let b=this.joi[a.type]()._bare(),c=b._definition;if(a.flags)for(let d of Object.keys(a.flags)){let f=c.flags[d]&&c.flags[d].setter||d;e("function"==typeof b[f],"Invalid flag",d,"for type",a.type),b=b[f](this.build(a.flags[d]))}if(a.preferences&&(b=b.preferences(this.build(a.preferences))),a.allow&&(b=b.allow(...this.build(a.allow))),a.invalid&&(b=b.invalid(...this.build(a.invalid))),a.rules)for(let d of a.rules){e("function"==typeof b[d.name],"Invalid rule",d.name,"for type",a.type);let f=[];if(d.args){let b={};for(let a of Object.keys(d.args))b[a]=this.build(d.args[a],{assign:a});let g=Object.keys(b),h=c.rules[d.name].args;if(h)for(let{name:c}of(e(g.length<=h.length,"Invalid number of arguments for",a.type,d.name,"(expected up to",h.length,", found",g.length,")"),h))f.push(b[c]);else e(1===g.length,"Invalid number of arguments for",a.type,d.name,"(expected up to 1, found",g.length,")"),f.push(b[g[0]])}b=b[d.name](...f);let g={};for(let a of Object.keys(c.modifiers))void 0!==d[a]&&(g[a]=this.build(d[a]));Object.keys(g).length&&(b=b.rule(g))}let d={};for(let b of Object.keys(a)){if(["allow","flags","invalid","whens","preferences","rules","type"].includes(b))continue;e(c.terms[b],"Term",b,"missing configuration");let f=c.terms[b].manifest;if("schema"===f){d[b]=a[b].map(a=>this.parse(a));continue}if("values"===f){d[b]=a[b].map(a=>this.build(a));continue}if("single"===f){d[b]=this.build(a[b]);continue}if("object"==typeof f){for(let c of(d[b]={},Object.keys(a[b]))){let e=a[b][c];d[b][c]=this.parse(e)}continue}d[b]=this.build(a[b])}return a.whens&&(d.whens=a.whens.map(a=>this.build(a))),(b=c.manifest.build(b,d)).$_temp.ruleset=!1,b}build(a,b={}){if(null===a)return null;if(Array.isArray(a))return a.map(a=>this.build(a));if(a instanceof Error)return a;if("options"===b.assign)return f(a);if("regex"===b.assign)return k.regex(a);if("ref"===b.assign)return i.build(a);if("object"!=typeof a)return a;if(1===Object.keys(a).length){if(a.buffer)return e(Buffer,"Buffers are not supported"),Buffer&&Buffer.from(a.buffer,"binary");if(a.function)return{[g.symbols.literal]:!0,literal:a.function};if(a.override)return g.symbols.override;if(a.ref)return i.build(a.ref);if(a.regex)return k.regex(a.regex);if(a.special)return e(["deep"].includes(a.special),"Unknown special value",a.special),g.symbols.deepDefault;if(a.value)return f(a.value)}if(a.type)return this.parse(a);if(a.template)return j.build(a);let c={};for(let b of Object.keys(a))c[b]=this.build(a[b],{assign:b});return c}},k.regex=function(a){let b=a.lastIndexOf("/");return new RegExp(a.slice(1,b),a.slice(b+1))},k.validate=function(b,c){d=d||a.r(425471),b.assert(c,d.description)}},267513,(a,b,c)=>{"use strict";c.location=function(a=0){let b=Error.prepareStackTrace;Error.prepareStackTrace=(a,b)=>b;let c={};Error.captureStackTrace(c,this);let d=c.stack[a+1];return Error.prepareStackTrace=b,{filename:d.getFileName(),line:d.getLineNumber()}}},371527,(a,b,c)=>{"use strict";let{deepEqual:d}=a.r(888690),e=a.r(267513),f=a.r(59019),g={codes:{error:1,pass:2,full:3},labels:{0:"never used",1:"always error",2:"always pass"}};c.setup=function(a){let b=function(){return a._tracer=a._tracer||new g.Tracer,a._tracer};a.trace=b,a[Symbol.for("@hapi/lab/coverage/initialize")]=b,a.untrace=()=>{a._tracer=null}},c.location=function(a){return a.$_setFlag("_tracerLocation",e.location(2))},g.Tracer=class{constructor(){this.name="Joi",this._schemas=new Map}_register(a){let b=this._schemas.get(a);if(b)return b.store;let c=new g.Store(a),{filename:d,line:f}=a._flags._tracerLocation||e.location(5);return this._schemas.set(a,{filename:d,line:f,store:c}),c}_combine(a,b){for(let{store:c}of this._schemas.values())c._combine(a,b)}report(a){let b=[];for(let{filename:c,line:d,store:e}of this._schemas.values()){if(a&&a!==c)continue;let f=[],h=[];for(let[a,b]of e._sources.entries()){if(g.sub(b.paths,h))continue;if(!b.entry){f.push({status:"never reached",paths:[...b.paths]}),h.push(...b.paths);continue}for(let c of["valid","invalid"]){let d=a[`_${c}s`];if(!d)continue;let e=new Set(d._values),g=new Set(d._refs);for(let{value:a,ref:d}of b[c])e.delete(a),g.delete(d);(e.size||g.size)&&f.push({status:[...e,...[...g].map(a=>a.display)],rule:`${c}s`})}let c=a._rules.map(a=>a.name);for(let b of["default","failover"])void 0!==a._flags[b]&&c.push(b);for(let a of c){let c=g.labels[b.rule[a]||0];if(c){let d={rule:a,status:c};b.paths.size&&(d.paths=[...b.paths]),f.push(d)}}}f.length&&b.push({filename:c,line:d,missing:f,severity:"error",message:`Schema missing tests for ${f.map(g.message).join(", ")}`})}return b.length?b:null}},g.Store=class{constructor(a){this.active=!0,this._sources=new Map,this._combos=new Map,this._scan(a)}debug(a,b,c,d){a.mainstay.debug&&a.mainstay.debug.push({type:b,name:c,result:d,path:a.path})}entry(a,b){g.debug(b,{type:"entry"}),this._record(a,a=>{a.entry=!0})}filter(a,b,c,d){g.debug(b,{type:c,...d}),this._record(a,a=>{a[c].add(d)})}log(a,b,c,d,e){g.debug(b,{type:c,name:d,result:"full"===e?"pass":e}),this._record(a,a=>{a[c][d]=a[c][d]||0,a[c][d]|=g.codes[e]})}resolve(a,b,c){if(!a.mainstay.debug)return;let d={type:"resolve",ref:b.display,to:c,path:a.path};a.mainstay.debug.push(d)}value(a,b,c,e,f){if(!a.mainstay.debug||d(c,e))return;let g={type:"value",by:b,from:c,to:e,path:a.path};f&&(g.name=f),a.mainstay.debug.push(g)}_record(a,b){let c=this._sources.get(a);if(c)return void b(c);for(let c of this._combos.get(a))this._record(c,b)}_scan(a,b){let c=b||[],d=this._sources.get(a);d||(d={paths:new Set,entry:!1,rule:{},valid:new Set,invalid:new Set},this._sources.set(a,d)),c.length&&d.paths.add(c);let e=(a,b)=>{let d=g.id(a,b);this._scan(a,c.concat(d))};a.$_modify({each:e,ref:!1})}_combine(a,b){this._combos.set(a,b)}},g.message=function(a){let b=a.paths?f.path(a.paths[0])+(a.rule?":":""):"";return`${b}${a.rule||""} (${a.status})`},g.id=function(a,{source:b,name:c,path:d,key:e}){return a._flags.id?a._flags.id:e||((c=`@${c}`,"terms"===b)?[c,d[Math.min(d.length-1,1)]]:c)},g.sub=function(a,b){for(let c of a)for(let a of b)if(d(c.slice(0,a.length),a))return!0;return!1},g.debug=function(a,b){a.mainstay.debug&&(b.path=a.debug?[...a.path,a.debug]:a.path,a.mainstay.debug.push(b))}},385297,(a,b,c)=>{"use strict";let{assert:d}=a.r(888690),e=a.r(832612),f=a.r(725767),g={};c.Ids=g.Ids=class{constructor(){this._byId=new Map,this._byKey=new Map,this._schemaChain=!1}clone(){let a=new g.Ids;return this._byId.size&&(a._byId=new Map(this._byId)),this._byKey.size&&(a._byKey=new Map(this._byKey)),a._schemaChain=this._schemaChain,a}concat(a){for(let[b,c]of(a._schemaChain&&(this._schemaChain=!0),a._byId.entries()))d(!this._byKey.has(b),"Schema id conflicts with existing key:",b),this._byId.set(b,c);for(let[b,c]of a._byKey.entries())d(!this._byId.has(b),"Schema key conflicts with existing id:",b),this._byKey.set(b,c)}fork(a,b,c){let f=this._collect(a);f.push({schema:c});let h=f.shift(),i={id:h.id,schema:b(h.schema)};for(let a of(d(e.isSchema(i.schema),"adjuster function failed to return a joi schema type"),f))i={id:a.id,schema:g.fork(a.schema,i.id,i.schema)};return i.schema}labels(a,b=[]){let c=a[0],d=this._get(c);if(!d)return[...b,...a].join(".");let e=a.slice(1);return(b=[...b,d.schema._flags.label||c],e.length)?d.schema._ids.labels(e,b):b.join(".")}reach(a,b=[]){let c=a[0],e=this._get(c);d(e,"Schema does not contain path",[...b,...a].join("."));let f=a.slice(1);return f.length?e.schema._ids.reach(f,[...b,c]):e.schema}register(a,{key:b}={}){if(!a||!e.isSchema(a))return;(a.$_property("schemaChain")||a._ids._schemaChain)&&(this._schemaChain=!0);let c=a._flags.id;if(c){let b=this._byId.get(c);d(!b||b.schema===a,"Cannot add different schemas with the same id:",c),d(!this._byKey.has(c),"Schema id conflicts with existing key:",c),this._byId.set(c,{schema:a,id:c})}b&&(d(!this._byKey.has(b),"Schema already contains key:",b),d(!this._byId.has(b),"Schema key conflicts with existing id:",b),this._byKey.set(b,{schema:a,id:b}))}reset(){this._byId=new Map,this._byKey=new Map,this._schemaChain=!1}_collect(a,b=[],c=[]){let e=a[0],f=this._get(e);d(f,"Schema does not contain path",[...b,...a].join(".")),c=[f,...c];let g=a.slice(1);return g.length?f.schema._ids._collect(g,[...b,e],c):c}_get(a){return this._byId.get(a)||this._byKey.get(a)}},g.fork=function(a,b,d){let e=c.schema(a,{each:(a,{key:c})=>{if(b===(a._flags.id||c))return d},ref:!1});return e?e.$_mutateRebuild():a},c.schema=function(a,b){let c;for(let d of Object.keys(a._flags)){if("_"===d[0])continue;let e=g.scan(a._flags[d],{source:"flags",name:d},b);void 0!==e&&((c=c||a.clone())._flags[d]=e)}for(let d=0;d<a._rules.length;++d){let e=a._rules[d],f=g.scan(e.args,{source:"rules",name:e.name},b);if(void 0!==f){c=c||a.clone();let b=Object.assign({},e);b.args=f,c._rules[d]=b,c._singleRules.get(e.name)===e&&c._singleRules.set(e.name,b)}}for(let d of Object.keys(a.$_terms)){if("_"===d[0])continue;let e=g.scan(a.$_terms[d],{source:"terms",name:d},b);void 0!==e&&((c=c||a.clone()).$_terms[d]=e)}return c},g.scan=function(a,b,c,d,h){let i,j=d||[];if(null!==a&&"object"==typeof a){if(Array.isArray(a)){for(let d=0;d<a.length;++d){let e="terms"===b.source&&"keys"===b.name&&a[d].key,f=g.scan(a[d],b,c,[d,...j],e);void 0!==f&&((i=i||a.slice())[d]=f)}return i}if(!1!==c.schema&&e.isSchema(a)||!1!==c.ref&&f.isRef(a)){let d=c.each(a,{...b,path:j,key:h});if(d===a)return;return d}for(let d of Object.keys(a)){if("_"===d[0])continue;let e=g.scan(a[d],b,c,[d,...j],h);void 0!==e&&((i=i||Object.assign({},a))[d]=e)}return i}}},66136,(a,b,c)=>{"use strict";let{clone:d,reach:e}=a.r(888690),f=a.r(832612),g={value:Symbol("value")};b.exports=g.State=class{constructor(a,b,c){this.path=a,this.ancestors=b,this.mainstay=c.mainstay,this.schemas=c.schemas,this.debug=null}localize(a,b=null,c=null){let d=new g.State(a,b,this);return c&&d.schemas&&(d.schemas=[g.schemas(c),...d.schemas]),d}nest(a,b){let c=new g.State(this.path,this.ancestors,this);return c.schemas=c.schemas&&[g.schemas(a),...c.schemas],c.debug=b,c}shadow(a,b){this.mainstay.shadow=this.mainstay.shadow||new g.Shadow,this.mainstay.shadow.set(this.path,a,b)}snapshot(){this.mainstay.shadow&&(this._snapshot=d(this.mainstay.shadow.node(this.path))),this.mainstay.snapshot()}restore(){this.mainstay.shadow&&(this.mainstay.shadow.override(this.path,this._snapshot),this._snapshot=void 0),this.mainstay.restore()}commit(){this.mainstay.shadow&&(this.mainstay.shadow.override(this.path,this._snapshot),this._snapshot=void 0),this.mainstay.commit()}},g.schemas=function(a){return f.isSchema(a)?{schema:a}:a},g.Shadow=class{constructor(){this._values=null}set(a,b,c){if(!a.length||"strip"===c&&"number"==typeof a[a.length-1])return;this._values=this._values||new Map;let d=this._values;for(let b=0;b<a.length;++b){let c=a[b],e=d.get(c);e||(e=new Map,d.set(c,e)),d=e}d[g.value]=b}get(a){let b=this.node(a);if(b)return b[g.value]}node(a){if(this._values)return e(this._values,a,{iterables:!0})}override(a,b){if(!this._values)return;let c=a.slice(0,-1),d=a[a.length-1],f=e(this._values,c,{iterables:!0});b?f.set(d,b):f&&f.delete(d)}}},871197,(a,b,c)=>{"use strict";let{assert:d,clone:e,ignore:f,reach:g}=a.r(888690),h=a.r(832612),i=a.r(59019),j=a.r(66136),k={result:Symbol("result")};c.entry=function(a,b,c){let e=h.defaults;c&&(d(void 0===c.warnings,"Cannot override warnings preference in synchronous validation"),d(void 0===c.artifacts,"Cannot override artifacts preference in synchronous validation"),e=h.preferences(h.defaults,c));let f=k.entry(a,b,e);d(!f.mainstay.externals.length,"Schema with external rules must use validateAsync()");let g={value:f.value};return f.error&&(g.error=f.error),f.mainstay.warnings.length&&(g.warning=i.details(f.mainstay.warnings)),f.mainstay.debug&&(g.debug=f.mainstay.debug),f.mainstay.artifacts&&(g.artifacts=f.mainstay.artifacts),g},c.entryAsync=async function(a,b,c){let d=h.defaults;c&&(d=h.preferences(h.defaults,c));let e=k.entry(a,b,d),f=e.mainstay;if(e.error)throw f.debug&&(e.error.debug=f.debug),e.error;if(f.externals.length){let b=e.value,j=[];for(let e of f.externals){let l,m,n=e.state.path,o="link"===e.schema.type?f.links.get(e.schema):null,p=b,q=n.length?[b]:[],r=n.length?g(a,n):a;if(n.length){l=n[n.length-1];let a=b;for(let b of n.slice(0,-1))a=a[b],q.unshift(a);p=(m=q[0])[l]}try{let a=(a,b)=>(o||e.schema).$_createError(a,p,b,e.state,d),g=await e.method(p,{schema:e.schema,linked:o,state:e.state,prefs:c,original:r,error:a,errorsArray:k.errorsArray,warn:(a,b)=>f.warnings.push((o||e.schema).$_createError(a,p,b,e.state,d)),message:(a,b)=>(o||e.schema).$_createError("external",p,b,e.state,d,{messages:a})});if(void 0===g||g===p)continue;if(g instanceof i.Report){if(f.tracer.log(e.schema,e.state,"rule","external","error"),j.push(g),d.abortEarly)break;continue}if(Array.isArray(g)&&g[h.symbols.errors]){if(f.tracer.log(e.schema,e.state,"rule","external","error"),j.push(...g),d.abortEarly)break;continue}m?(f.tracer.value(e.state,"rule",p,g,"external"),m[l]=g):(f.tracer.value(e.state,"rule",b,g,"external"),b=g)}catch(a){throw d.errors.label&&(a.message+=` (${e.label})`),a}}if(e.value=b,j.length)throw e.error=i.process(j,a,d),f.debug&&(e.error.debug=f.debug),e.error}if(!d.warnings&&!d.debug&&!d.artifacts)return e.value;let j={value:e.value};return f.warnings.length&&(j.warning=i.details(f.warnings)),f.debug&&(j.debug=f.debug),f.artifacts&&(j.artifacts=f.artifacts),j},c.standard=function(a,b,d){let e=d?.libraryOptions;return b.isAsync()?c.entryAsync(a,b,e):c.entry(a,b,e)},k.Mainstay=class{constructor(a,b,c){this.externals=[],this.warnings=[],this.tracer=a,this.debug=b,this.links=c,this.shadow=null,this.artifacts=null,this._snapshots=[]}snapshot(){this._snapshots.push({externals:this.externals.length,warnings:this.warnings.length})}restore(){let a=this._snapshots.pop();this.externals.length=a.externals,this.warnings.length=a.warnings}commit(){this._snapshots.pop()}},k.entry=function(a,b,d){let{tracer:e,cleanup:f}=k.tracer(b,d),g=d.debug?[]:null,h=b._ids._schemaChain?new Map:null,l=new k.Mainstay(e,g,h),m=new j([],[],{mainstay:l,schemas:b._ids._schemaChain?[{schema:b}]:null}),n=c.validate(a,b,m,d);f&&b.$_root.untrace();let o=i.process(n.errors,a,d);return{value:n.value,error:o,mainstay:l}},k.tracer=function(a,b){return a.$_root._tracer?{tracer:a.$_root._tracer._register(a)}:b.debug?(d(a.$_root.trace,"Debug mode not supported"),{tracer:a.$_root.trace()._register(a),cleanup:!0}):{tracer:k.ignore}},c.validate=function(a,b,c,d,e={}){if(b.$_terms.whens&&(b=b._generate(a,c,d).schema),b._preferences&&(d=k.prefs(b,d)),b._cache&&d.cache){let d=b._cache.get(a);if(c.mainstay.tracer.debug(c,"validate","cached",!!d),d)return d}void 0!==b._flags.failover&&c.snapshot();let f=(e,f,g)=>b.$_createError(e,a,f,g||c,d),g={original:a,prefs:d,schema:b,state:c,error:f,errorsArray:k.errorsArray,warn:(a,b,d)=>c.mainstay.warnings.push(f(a,b,d)),message:(e,f)=>b.$_createError("custom",a,f,c,d,{messages:e})};c.mainstay.tracer.entry(b,c);let i=b._definition;if(i.prepare&&void 0!==a&&d.convert){let b=i.prepare(a,g);if(b){if(c.mainstay.tracer.value(c,"prepare",a,b.value),b.errors)return k.finalize(b.value,[].concat(b.errors),g);a=b.value}}if(i.coerce&&void 0!==a&&d.convert&&(!i.coerce.from||i.coerce.from.includes(typeof a))){let b=i.coerce.method(a,g);if(b){if(c.mainstay.tracer.value(c,"coerced",a,b.value),b.errors)return k.finalize(b.value,[].concat(b.errors),g);a=b.value}}let j=b._flags.empty;j&&j.$_match(k.trim(a,b),c.nest(j),h.defaults)&&(c.mainstay.tracer.value(c,"empty",a,void 0),a=void 0);let l=e.presence||b._flags.presence||(b._flags._endedSwitch?null:d.presence);if(void 0===a){if("forbidden"===l)return k.finalize(a,null,g);if("required"===l)return k.finalize(a,[b.$_createError("any.required",a,null,c,d)],g);if("optional"===l){if(b._flags.default!==h.symbols.deepDefault)return k.finalize(a,null,g);c.mainstay.tracer.value(c,"default",a,{}),a={}}}else if("forbidden"===l)return k.finalize(a,[b.$_createError("any.unknown",a,null,c,d)],g);let m=[];if(b._valids){let e=b._valids.get(a,c,d,b._flags.insensitive);if(e)return d.convert&&(c.mainstay.tracer.value(c,"valids",a,e.value),a=e.value),c.mainstay.tracer.filter(b,c,"valid",e),k.finalize(a,null,g);if(b._flags.only){let e=b.$_createError("any.only",a,{valids:b._valids.values({display:!0})},c,d);if(d.abortEarly)return k.finalize(a,[e],g);m.push(e)}}if(b._invalids){let e=b._invalids.get(a,c,d,b._flags.insensitive);if(e){c.mainstay.tracer.filter(b,c,"invalid",e);let f=b.$_createError("any.invalid",a,{invalids:b._invalids.values({display:!0})},c,d);if(d.abortEarly)return k.finalize(a,[f],g);m.push(f)}}if(i.validate){let b=i.validate(a,g);if(b&&(c.mainstay.tracer.value(c,"base",a,b.value),a=b.value,b.errors)){if(!Array.isArray(b.errors))return m.push(b.errors),k.finalize(a,m,g);if(b.errors.length)return m.push(...b.errors),k.finalize(a,m,g)}}return b._rules.length?k.rules(a,m,g):k.finalize(a,m,g)},k.rules=function(a,b,c){let{schema:d,state:e,prefs:f}=c;for(let g of d._rules){let i,j=d._definition.rules[g.method];if(j.convert&&f.convert){e.mainstay.tracer.log(d,e,"rule",g.name,"full");continue}let l=g.args;if(g._resolve.length)for(let b of(l=Object.assign({},l),g._resolve)){let c=j.argsByName.get(b),g=l[b].resolve(a,e,f),k=c.normalize?c.normalize(g):g,m=h.validateArg(k,null,c);if(m){i=d.$_createError("any.ref",g,{arg:b,ref:l[b],reason:m},e,f);break}l[b]=k}i=i||j.validate(a,c,l,g);let m=k.rule(i,g);if(m.errors){if(e.mainstay.tracer.log(d,e,"rule",g.name,"error"),g.warn){e.mainstay.warnings.push(...m.errors);continue}if(f.abortEarly)return k.finalize(a,m.errors,c);b.push(...m.errors)}else e.mainstay.tracer.log(d,e,"rule",g.name,"pass"),e.mainstay.tracer.value(e,"rule",a,m.value,g.name),a=m.value}return k.finalize(a,b,c)},k.rule=function(a,b){return a instanceof i.Report?(k.error(a,b),{errors:[a],value:null}):Array.isArray(a)&&a[h.symbols.errors]?(a.forEach(a=>k.error(a,b)),{errors:a,value:null}):{errors:null,value:a}},k.error=function(a,b){return b.message&&a._setTemplate(b.message),a},k.finalize=function(a,b,c){b=b||[];let{schema:e,state:f,prefs:g}=c;if(void 0!==e._flags.failover){let d=!1;if(b.length){let e=k.default("failover",void 0,b,c);void 0!==e&&(f.mainstay.tracer.value(f,"failover",a,e),a=e,b=[],d=!0)}d?f.restore():f.commit()}if(b.length&&e._flags.error)if("function"==typeof e._flags.error)for(let a of(Array.isArray(b=e._flags.error(b))||(b=[b]),b))d(a instanceof Error||a instanceof i.Report,"error() must return an Error object");else b=[e._flags.error];if(void 0===a){let d=k.default("default",a,b,c);f.mainstay.tracer.value(f,"default",a,d),a=d}if(e._flags.cast&&void 0!==a){let b=e._definition.cast[e._flags.cast];if(b.from(a)){let d=b.to(a,c);f.mainstay.tracer.value(f,"cast",a,d,e._flags.cast),a=d}}if(e.$_terms.externals&&g.externals&&!1!==g._externals)for(let{method:a}of e.$_terms.externals)f.mainstay.externals.push({method:a,schema:e,state:f,label:i.label(e._flags,f,g)});let h={value:a,errors:b.length?b:null};return e._flags.result&&(h.value="strip"===e._flags.result?void 0:c.original,f.mainstay.tracer.value(f,e._flags.result,a,h.value),f.shadow(a,e._flags.result)),e._cache&&!1!==g.cache&&!e._refs.length&&e._cache.set(c.original,h),void 0===a||h.errors||void 0===e._flags.artifact||(f.mainstay.artifacts=f.mainstay.artifacts||new Map,f.mainstay.artifacts.has(e._flags.artifact)||f.mainstay.artifacts.set(e._flags.artifact,[]),f.mainstay.artifacts.get(e._flags.artifact).push(f.path)),h},k.prefs=function(a,b){let c=b===h.defaults;return c&&a._preferences[h.symbols.prefs]?a._preferences[h.symbols.prefs]:(b=h.preferences(b,a._preferences),c&&(a._preferences[h.symbols.prefs]=b),b)},k.default=function(a,b,c,d){let{schema:f,state:g,prefs:i}=d,j=f._flags[a];if(i.noDefaults||void 0===j)return b;if(g.mainstay.tracer.log(f,g,"rule",a,"full"),!j)return j;if("function"==typeof j){let b=j.length?[e(g.ancestors[0]),d]:[];try{return j(...b)}catch(b){c.push(f.$_createError(`any.${a}`,null,{error:b},g,i));return}}return"object"!=typeof j?j:j[h.symbols.literal]?j.literal:h.isResolvable(j)?j.resolve(b,g,i):e(j)},k.trim=function(a,b){if("string"!=typeof a)return a;let c=b.$_getRule("trim");return c&&c.args.enabled?a.trim():a},k.ignore={active:!1,debug:f,entry:f,filter:f,log:f,resolve:f,value:f},k.errorsArray=function(){let a=[];return a[h.symbols.errors]=!0,a}},396751,(a,b,c)=>{"use strict";let{assert:d,deepEqual:e}=a.r(888690),f=a.r(832612),g={};b.exports=g.Values=class{constructor(a,b){this._values=new Set(a),this._refs=new Set(b),this._lowercase=g.lowercases(a),this._override=!1}get length(){return this._values.size+this._refs.size}add(a,b){if(f.isResolvable(a)){!this._refs.has(a)&&(this._refs.add(a),b&&b.register(a));return}this.has(a,null,null,!1)||(this._values.add(a),"string"==typeof a&&this._lowercase.set(a.toLowerCase(),a))}static merge(a,b,c){if(a=a||new g.Values,b){if(b._override)return b.clone();for(let c of[...b._values,...b._refs])a.add(c)}if(c)for(let b of[...c._values,...c._refs])a.remove(b);return a.length?a:null}remove(a){f.isResolvable(a)?this._refs.delete(a):(this._values.delete(a),"string"==typeof a&&this._lowercase.delete(a.toLowerCase()))}has(a,b,c,d){return!!this.get(a,b,c,d)}get(a,b,c,d){if(!this.length)return!1;if(this._values.has(a))return{value:a};if("string"==typeof a&&a&&d){let b=this._lowercase.get(a.toLowerCase());if(b)return{value:b}}if(!this._refs.size&&"object"!=typeof a)return!1;if("object"==typeof a){for(let b of this._values)if(e(b,a))return{value:b}}if(b)for(let f of this._refs){let g=f.resolve(a,b,c,null,{in:!0});if(void 0!==g){for(let b of f.in&&"object"==typeof g?Array.isArray(g)?g:Object.keys(g):[g])if(typeof b==typeof a){if(d&&a&&"string"==typeof a){if(b.toLowerCase()===a.toLowerCase())return{value:b,ref:f}}else if(e(b,a))return{value:b,ref:f}}}}return!1}override(){this._override=!0}values(a){if(a&&a.display){let a=[];for(let b of[...this._values,...this._refs])void 0!==b&&a.push(b);return a}return Array.from([...this._values,...this._refs])}clone(){let a=new g.Values(this._values,this._refs);return a._override=this._override,a}concat(a){d(!a._override,"Cannot concat override set of values");let b=new g.Values([...this._values,...a._values],[...this._refs,...a._refs]);return b._override=this._override,b}describe(){let a=[];for(let b of(this._override&&a.push({override:!0}),this._values.values()))a.push(b&&"object"==typeof b?{value:b}:b);for(let b of this._refs.values())a.push(b.describe());return a}},g.Values.prototype[f.symbols.values]=!0,g.Values.prototype.slice=g.Values.prototype.clone,g.lowercases=function(a){let b=new Map;if(a)for(let c of a)"string"==typeof c&&b.set(c.toLowerCase(),c);return b}},844364,(a,b,c)=>{"use strict";let{assert:d,clone:e,deepEqual:f,merge:g}=a.r(888690),h=a.r(176721),i=a.r(832612),j=a.r(610725),k=a.r(59019),l=a.r(689366),m=a.r(66125),n=a.r(329155),o=a.r(385297),p=a.r(725767),q=a.r(371527),r=a.r(871197),s=a.r(396751),t={standardTypes:new Set(["string","number","integer","boolean","object","array","null"]),jsonSchemaTarget:"draft-2020-12",primitiveTypes:new Set(["string","number","boolean"]),nullSchema:()=>({type:"null"})};t.Base=class{constructor(a){this.type=a,this.$_root=null,this._definition={},this._reset()}_reset(){this._ids=new o.Ids,this._preferences=null,this._refs=new p.Manager,this._cache=null,this._valids=null,this._invalids=null,this._flags={},this._rules=[],this._singleRules=new Map,this.$_terms={},this.$_temp={ruleset:null,whens:{}}}describe(){return d("function"==typeof m.describe,"Manifest functionality disabled"),m.describe(this)}$_jsonSchema(a,b={}){if(void 0!==b.target&&b.target!==t.jsonSchemaTarget)throw Error(`Unsupported JSON Schema target: ${b.target}`);let c=!b.$defs,d=b.$defs??{},e={},g="any"===this.type,h=this._flags.only,j=this._valids&&Array.from(this._valids._values).filter(a=>null!==a),k=!0;if(j&&j.length&&h&&!g){let a=new Set(j.map(a=>typeof a));k=a.has(this.type)||"date"===this.type&&a.has("object")}!g&&k&&t.standardTypes.has(this.type)&&(e.type=this.type),this._flags.description&&(e.description=this._flags.description),void 0!==this._flags.default&&"function"!=typeof this._flags.default&&(e.default=this._flags.default);let l={...b,$defs:d};for(let b of(this._definition.jsonSchema&&k&&(e=this._definition.jsonSchema(this,e,a,l)),this._rules)){let c=this._definition.rules[b.name];c.jsonSchema&&k&&!b._resolve.length&&(e=c.jsonSchema(b,e,h,a,l))}if(this.$_terms.shared)for(let b of this.$_terms.shared)d[b._flags.id]=b.$_jsonSchema(a,l);if(c&&Object.keys(d).length&&(e.$defs=d),this._valids){let a=j.filter(a=>"symbol"!=typeof a);if(a.length)if(this._flags.only){e.enum=a;let b=i.intersect(new Set(a.map(a=>typeof a)),t.primitiveTypes);if(b.size){let a=[...b];e.type=1===a.length?a[0]:a}}else{let b=a.filter(a=>typeof a!==this.type||g);b.length&&!(g&&!h)&&(e.anyOf||(e={anyOf:[e]}),e.anyOf.push({enum:b}))}}if(this._valids&&this._valids.has(null)&&!(g&&!h)&&(1===this._valids.length&&(g||h)?e.type="null":e.type?e.type=[e.type,"null"]:e.anyOf?e.anyOf.unshift(t.nullSchema()):e={anyOf:[t.nullSchema(),e]}),this.$_terms.whens){let b=this.clone();b.$_terms.whens=null;let c=[];for(let d of this.$_terms.whens){let e=d.is?[d]:d.switch;for(let d=0;d<e.length;++d){let f=e[d];f.then&&c.push(b.concat(f.then).$_jsonSchema(a,l)),f.otherwise&&c.push(b.concat(f.otherwise).$_jsonSchema(a,l)),f.then&&(d!==e.length-1||f.otherwise)||c.push(b.$_jsonSchema(a,l))}}let d=[];for(let a of c)d.some(b=>f(b,a))||d.push(a);return{anyOf:d}}return e}allow(...a){return i.verifyFlat(a,"allow"),this._values(a,"_valids")}alter(a){d(a&&"object"==typeof a&&!Array.isArray(a),"Invalid targets argument"),d(!this._inRuleset(),"Cannot set alterations inside a ruleset");let b=this.clone();for(let c of(b.$_terms.alterations=b.$_terms.alterations||[],Object.keys(a))){let e=a[c];d("function"==typeof e,"Alteration adjuster for",c,"must be a function"),b.$_terms.alterations.push({target:c,adjuster:e})}return b.$_temp.ruleset=!1,b}artifact(a){return d(void 0!==a,"Artifact cannot be undefined"),d(!this._cache,"Cannot set an artifact with a rule cache"),this.$_setFlag("artifact",a)}cast(a){return d(!1===a||"string"==typeof a,"Invalid to value"),d(!1===a||this._definition.cast[a],"Type",this.type,"does not support casting to",a),this.$_setFlag("cast",!1===a?void 0:a)}default(a,b){return this._default("default",a,b)}description(a){return d(a&&"string"==typeof a,"Description must be a non-empty string"),this.$_setFlag("description",a)}empty(a){let b=this.clone();return void 0!==a&&(a=b.$_compile(a,{override:!1})),b.$_setFlag("empty",a,{clone:!1})}error(a){return d(a,"Missing error"),d(a instanceof Error||"function"==typeof a,"Must provide a valid Error object or a function"),this.$_setFlag("error",a)}example(a,b={}){return d(void 0!==a,"Missing example"),i.assertOptions(b,["override"]),this._inner("examples",a,{single:!0,override:b.override})}external(a,b){return"object"==typeof a&&(d(!b,"Cannot combine options with description"),b=a.description,a=a.method),d("function"==typeof a,"Method must be a function"),d(void 0===b||b&&"string"==typeof b,"Description must be a non-empty string"),this._inner("externals",{method:a,description:b},{single:!0})}failover(a,b){return this._default("failover",a,b)}forbidden(){return this.presence("forbidden")}id(a){return a?(d("string"==typeof a,"id must be a non-empty string"),d(/^[^\.]+$/.test(a),"id cannot contain period character"),this.$_setFlag("id",a)):this.$_setFlag("id",void 0)}invalid(...a){return this._values(a,"_invalids")}label(a){return d(a&&"string"==typeof a,"Label name must be a non-empty string"),this.$_setFlag("label",a)}meta(a){return d(void 0!==a,"Meta cannot be undefined"),this._inner("metas",a,{single:!0})}note(...a){for(let b of(d(a.length,"Missing notes"),a))d(b&&"string"==typeof b,"Notes must be non-empty strings");return this._inner("notes",a)}only(a=!0){return d("boolean"==typeof a,"Invalid mode:",a),this.$_setFlag("only",a)}optional(){return this.presence("optional")}prefs(a){d(a,"Missing preferences"),d(void 0===a.context,"Cannot override context"),d(void 0===a.externals,"Cannot override externals"),d(void 0===a.warnings,"Cannot override warnings"),d(void 0===a.debug,"Cannot override debug"),i.checkPreferences(a);let b=this.clone();return b._preferences=i.preferences(b._preferences,a),b}presence(a){return d(["optional","required","forbidden"].includes(a),"Unknown presence mode",a),this.$_setFlag("presence",a)}raw(a=!0){return this.$_setFlag("result",a?"raw":void 0)}result(a){return d(["raw","strip"].includes(a),"Unknown result mode",a),this.$_setFlag("result",a)}required(){return this.presence("required")}strict(a){let b=this.clone();return b._preferences=i.preferences(b._preferences,{convert:void 0!==a&&!a}),b}strip(a=!0){return this.$_setFlag("result",a?"strip":void 0)}tag(...a){for(let b of(d(a.length,"Missing tags"),a))d(b&&"string"==typeof b,"Tags must be non-empty strings");return this._inner("tags",a)}unit(a){return d(a&&"string"==typeof a,"Unit name must be a non-empty string"),this.$_setFlag("unit",a)}valid(...a){i.verifyFlat(a,"valid");let b=this.allow(...a);return b.$_setFlag("only",!!b._valids,{clone:!1}),b}when(a,b){let c=this.clone();c.$_terms.whens||(c.$_terms.whens=[]);let e=j.when(c,a,b);if(!["any","link"].includes(c.type))for(let a of e.is?[e]:e.switch)d(!a.then||"any"===a.then.type||a.then.type===c.type,"Cannot combine",c.type,"with",a.then&&a.then.type),d(!a.otherwise||"any"===a.otherwise.type||a.otherwise.type===c.type,"Cannot combine",c.type,"with",a.otherwise&&a.otherwise.type);return c.$_terms.whens.push(e),c.$_mutateRebuild()}cache(a){d(!this._inRuleset(),"Cannot set caching inside a ruleset"),d(!this._cache,"Cannot override schema cache"),d(void 0===this._flags.artifact,"Cannot cache a rule with an artifact");let b=this.clone();return b._cache=a||h.provider.provision(),b.$_temp.ruleset=!1,b}clone(){let a=Object.create(Object.getPrototypeOf(this));return this._assign(a)}concat(a){d(i.isSchema(a),"Invalid schema object"),d("any"===this.type||"any"===a.type||a.type===this.type,"Cannot merge type",this.type,"with another type:",a.type),d(!this._inRuleset(),"Cannot concatenate onto a schema with open ruleset"),d(!a._inRuleset(),"Cannot concatenate a schema with open ruleset");let b=this.clone();if("any"===this.type&&"any"!==a.type){let c=a.clone();for(let a of Object.keys(b))"type"!==a&&(c[a]=b[a]);b=c}for(let c of(b._ids.concat(a._ids),b._refs.register(a,p.toSibling),b._preferences=b._preferences?i.preferences(b._preferences,a._preferences):a._preferences,b._valids=s.merge(b._valids,a._valids,a._invalids),b._invalids=s.merge(b._invalids,a._invalids,a._valids),a._singleRules.keys()))b._singleRules.has(c)&&(b._rules=b._rules.filter(a=>a.keep||a.name!==c),b._singleRules.delete(c));for(let c of a._rules)a._definition.rules[c.method].multi||b._singleRules.set(c.name,c),b._rules.push(c);if(b._flags.empty&&a._flags.empty){b._flags.empty=b._flags.empty.concat(a._flags.empty);let c=Object.assign({},a._flags);delete c.empty,g(b._flags,c)}else if(a._flags.empty){b._flags.empty=a._flags.empty;let c=Object.assign({},a._flags);delete c.empty,g(b._flags,c)}else g(b._flags,a._flags);for(let c of Object.keys(a.$_terms)){let d=a.$_terms[c];if(!d){b.$_terms[c]||(b.$_terms[c]=d);continue}if(!b.$_terms[c]){b.$_terms[c]=d.slice();continue}b.$_terms[c]=b.$_terms[c].concat(d)}return this.$_root._tracer&&this.$_root._tracer._combine(b,[this,a]),b.$_mutateRebuild()}extend(a){return d(!a.base,"Cannot extend type with another base"),l.type(this,a)}extract(a){return a=Array.isArray(a)?a:a.split("."),this._ids.reach(a)}fork(a,b){d(!this._inRuleset(),"Cannot fork inside a ruleset");let c=this;for(let d of[].concat(a))d=Array.isArray(d)?d:d.split("."),c=c._ids.fork(d,b,c);return c.$_temp.ruleset=!1,c}isAsync(){if(this.$_terms.externals?.length)return!0;if(this.$_terms.whens)for(let a of this.$_terms.whens){if(a.then?.isAsync()||a.otherwise?.isAsync())return!0;if(a.switch){for(let b of a.switch)if(b.then?.isAsync()||b.otherwise?.isAsync())return!0}}return!1}rule(a){let b=this._definition;i.assertOptions(a,Object.keys(b.modifiers)),d(!1!==this.$_temp.ruleset,"Cannot apply rules to empty ruleset or the last rule added does not support rule properties");let c=null===this.$_temp.ruleset?this._rules.length-1:this.$_temp.ruleset;d(c>=0&&c<this._rules.length,"Cannot apply rules to empty ruleset");let f=this.clone();for(let g=c;g<f._rules.length;++g){let c=f._rules[g],h=e(c);for(let e of Object.keys(a))b.modifiers[e](h,a[e]),d(h.name===c.name,"Cannot change rule name");f._rules[g]=h,f._singleRules.get(h.name)===c&&f._singleRules.set(h.name,h)}return f.$_temp.ruleset=!1,f.$_mutateRebuild()}get ruleset(){d(!this._inRuleset(),"Cannot start a new ruleset without closing the previous one");let a=this.clone();return a.$_temp.ruleset=a._rules.length,a}get $(){return this.ruleset}tailor(a){a=[].concat(a),d(!this._inRuleset(),"Cannot tailor inside a ruleset");let b=this;if(this.$_terms.alterations)for(let{target:c,adjuster:e}of this.$_terms.alterations)a.includes(c)&&(b=e(b),d(i.isSchema(b),"Alteration adjuster for",c,"failed to return a schema object"));return(b=b.$_modify({each:b=>b.tailor(a),ref:!1})).$_temp.ruleset=!1,b.$_mutateRebuild()}tracer(){return q.location?q.location(this):this}validate(a,b){return r.entry(a,this,b)}validateAsync(a,b){return r.entryAsync(a,this,b)}$_addRule(a){for(let b of("string"==typeof a&&(a={name:a}),d(a&&"object"==typeof a,"Invalid options"),d(a.name&&"string"==typeof a.name,"Invalid rule name"),Object.keys(a)))d("_"!==b[0],"Cannot set private rule properties");let b=Object.assign({},a);b._resolve=[],b.method=b.method||b.name;let c=this._definition.rules[b.method],e=b.args;d(c,"Unknown rule",b.method);let f=this.clone();if(e){let a=Object.keys(e);for(let g of(d(1===a.length||a.length===this._definition.rules[b.name].args.length,"Invalid rule definition for",this.type,b.name),a)){let a=e[g];if(c.argsByName){let h=c.argsByName.get(g);if(h.ref&&i.isResolvable(a))b._resolve.push(g),f.$_mutateRegister(a);else if(h.normalize&&(a=h.normalize(a),e[g]=a),h.assert){let b=i.validateArg(a,g,h);d(!b,b,"or reference")}}if(void 0===a){delete e[g];continue}e[g]=a}}return c.multi||(f._ruleRemove(b.name,{clone:!1}),f._singleRules.set(b.name,b)),!1===f.$_temp.ruleset&&(f.$_temp.ruleset=null),c.priority?f._rules.unshift(b):f._rules.push(b),f}$_compile(a,b){return j.schema(this.$_root,a,b)}$_createError(a,b,c,d,e,f={}){let g=!1!==f.flags?this._flags:{},h=f.messages?n.merge(this._definition.messages,f.messages):this._definition.messages;return new k.Report(a,b,c,g,h,d,e)}$_getFlag(a){return this._flags[a]}$_getRule(a){return this._singleRules.get(a)}$_mapLabels(a){return a=Array.isArray(a)?a:a.split("."),this._ids.labels(a)}$_match(a,b,c,d){(c=Object.assign({},c)).abortEarly=!0,c._externals=!1,b.snapshot();let e=!r.validate(a,this,b,c,d).errors;return b.restore(),e}$_modify(a){return i.assertOptions(a,["each","once","ref","schema"]),o.schema(this,a)||this}$_mutateRebuild(){d(!this._inRuleset(),"Cannot add this rule inside a ruleset"),this._refs.reset(),this._ids.reset();let a=(a,{source:b,name:c,path:d,key:e})=>{let f=this._definition[b][c]&&this._definition[b][c].register;!1!==f&&this.$_mutateRegister(a,{family:f,key:e})};return this.$_modify({each:a}),this._definition.rebuild&&this._definition.rebuild(this),this.$_temp.ruleset=!1,this}$_mutateRegister(a,{family:b,key:c}={}){this._refs.register(a,b),this._ids.register(a,{key:c})}$_property(a){return this._definition.properties[a]}$_reach(a){return this._ids.reach(a)}$_rootReferences(){return this._refs.roots()}$_setFlag(a,b,c={}){d("_"===a[0]||!this._inRuleset(),"Cannot set flag inside a ruleset");let e=this._definition.flags[a]||{};if(f(b,e.default)&&(b=void 0),f(b,this._flags[a]))return this;let g=!1!==c.clone?this.clone():this;return void 0!==b?(g._flags[a]=b,g.$_mutateRegister(b)):delete g._flags[a],"_"!==a[0]&&(g.$_temp.ruleset=!1),g}$_parent(a,...b){return this[a][i.symbols.parent].call(this,...b)}$_validate(a,b,c){return r.validate(a,this,b,c)}_assign(a){for(let b of(a.type=this.type,a.$_root=this.$_root,a.$_temp=Object.assign({},this.$_temp),a.$_temp.whens={},a._ids=this._ids.clone(),a._preferences=this._preferences,a._valids=this._valids&&this._valids.clone(),a._invalids=this._invalids&&this._invalids.clone(),a._rules=this._rules.slice(),a._singleRules=new Map(this._singleRules),a._refs=this._refs.clone(),a._flags=Object.assign({},this._flags),a._cache=null,a.$_terms={},Object.keys(this.$_terms)))a.$_terms[b]=this.$_terms[b]?this.$_terms[b].slice():null;if(a.$_super={},this.$_super)for(let b of Object.keys(this.$_super))a.$_super[b]=this._super[b].bind(a);return a}_bare(){let a=this.clone();a._reset();let b=a._definition.terms;for(let c of Object.keys(b)){let d=b[c];a.$_terms[c]=d.init}return a.$_mutateRebuild()}_default(a,b,c={}){return i.assertOptions(c,"literal"),d(void 0!==b,"Missing",a,"value"),d("function"==typeof b||!c.literal,"Only function value supports literal option"),"function"==typeof b&&c.literal&&(b={[i.symbols.literal]:!0,literal:b}),this.$_setFlag(a,b)}_generate(a,b,c){if(!this.$_terms.whens)return{schema:this};let d=[],e=[];for(let f=0;f<this.$_terms.whens.length;++f){let g=this.$_terms.whens[f];if(g.concat){d.push(g.concat),e.push(`${f}.concat`);continue}let h=g.ref?g.ref.resolve(a,b,c):a,i=g.is?[g]:g.switch,j=e.length;for(let j=0;j<i.length;++j){let{is:k,then:l,otherwise:m}=i[j],n=`${f}${g.switch?"."+j:""}`;if(k.$_match(h,b.nest(k,`${n}.is`),c)){if(l){let f=b.localize([...b.path,`${n}.then`],b.ancestors,b.schemas),{schema:g,id:h}=l._generate(a,f,c);d.push(g),e.push(`${n}.then${h?`(${h})`:""}`);break}}else if(m){let f=b.localize([...b.path,`${n}.otherwise`],b.ancestors,b.schemas),{schema:g,id:h}=m._generate(a,f,c);d.push(g),e.push(`${n}.otherwise${h?`(${h})`:""}`);break}}if(g.break&&e.length>j)break}let f=e.join(", ");if(b.mainstay.tracer.debug(b,"rule","when",f),!f)return{schema:this};if(!b.mainstay.tracer.active&&this.$_temp.whens[f])return{schema:this.$_temp.whens[f],id:f};let g=this;for(let e of(this._definition.generate&&(g=this._definition.generate(this,a,b,c)),d))g=g.concat(e);return this.$_root._tracer&&this.$_root._tracer._combine(g,[this,...d]),this.$_temp.whens[f]=g,{schema:g,id:f}}_inner(a,b,c={}){d(!this._inRuleset(),`Cannot set ${a} inside a ruleset`);let e=this.clone();return(!e.$_terms[a]||c.override)&&(e.$_terms[a]=[]),c.single?e.$_terms[a].push(b):e.$_terms[a].push(...b),e.$_temp.ruleset=!1,e}_inRuleset(){return null!==this.$_temp.ruleset&&!1!==this.$_temp.ruleset}_ruleRemove(a,b={}){if(!this._singleRules.has(a))return this;let c=!1!==b.clone?this.clone():this;c._singleRules.delete(a);let d=[];for(let b=0;b<c._rules.length;++b){let e=c._rules[b];if(e.name===a&&!e.keep){c._inRuleset()&&b<c.$_temp.ruleset&&--c.$_temp.ruleset;continue}d.push(e)}return c._rules=d,c}_values(a,b){i.verifyFlat(a,b.slice(1,-1));let c=this.clone(),e=a[0]===i.symbols.override;if(e&&(a=a.slice(1)),!c[b]&&a.length?c[b]=new s:e&&(c[b]=a.length?new s:null,c.$_mutateRebuild()),!c[b])return c;for(let f of(e&&c[b].override(),a)){d(void 0!==f,"Cannot call allow/valid/invalid with undefined"),d(f!==i.symbols.override,"Override must be the first value");let a="_invalids"===b?"_valids":"_invalids";c[a]&&(c[a].remove(f),c[a].length||(d("_valids"===b||!c._flags.only,"Setting invalid value",f,"leaves schema rejecting all values due to previous valid rule"),c[a]=null)),c[b].add(f,c._refs)}return c}get"~standard"(){let a=a=>({issues:k.ValidationError.isError(a)?a.details.map(({message:a,path:b})=>({message:a,path:b})):[{message:a.message}]}),b=a=>({value:a});return{version:1,vendor:"joi",validate:(c,d)=>{let e=r.standard(c,this,d);return e instanceof Promise?e.then(b,a):e.error?a(e.error):b(e.value)},jsonSchema:{input:a=>this.$_jsonSchema("input",a),output:a=>this.$_jsonSchema("output",a)}}}},t.Base.prototype[i.symbols.any]={version:i.version,compile:j.compile,root:"$_root"},t.Base.prototype.isImmutable=!0,t.Base.prototype.deny=t.Base.prototype.invalid,t.Base.prototype.disallow=t.Base.prototype.invalid,t.Base.prototype.equal=t.Base.prototype.valid,t.Base.prototype.exist=t.Base.prototype.required,t.Base.prototype.not=t.Base.prototype.invalid,t.Base.prototype.options=t.Base.prototype.prefs,t.Base.prototype.preferences=t.Base.prototype.prefs,b.exports=new t.Base},63331,(a,b,c)=>{"use strict";let{assert:d}=a.r(888690),e=a.r(844364),f=a.r(832612),g=a.r(329155);b.exports=e.extend({type:"any",flags:{only:{default:!1}},terms:{alterations:{init:null},examples:{init:null},externals:{init:null},metas:{init:[]},notes:{init:[]},shared:{init:null},tags:{init:[]},whens:{init:null}},rules:{custom:{method(a,b){return d("function"==typeof a,"Method must be a function"),d(void 0===b||b&&"string"==typeof b,"Description must be a non-empty string"),this.$_addRule({name:"custom",args:{method:a,description:b}})},validate(a,b,{method:c}){try{return c(a,b)}catch(a){return b.error("any.custom",{error:a})}},args:["method","description"],multi:!0},messages:{method(a){return this.prefs({messages:a})}},shared:{method(a){d(f.isSchema(a)&&a._flags.id,"Schema must be a schema with an id");let b=this.clone();return b.$_terms.shared=b.$_terms.shared||[],b.$_terms.shared.push(a),b.$_mutateRegister(a),b}},warning:{method(a,b){return d(a&&"string"==typeof a,"Invalid warning code"),this.$_addRule({name:"warning",args:{code:a,local:b},warn:!0})},validate:(a,b,{code:c,local:d})=>b.error(c,d),args:["code","local"],multi:!0}},modifiers:{keep(a,b=!0){a.keep=b},message(a,b){a.message=g.compile(b)},warn(a,b=!0){a.warn=b}},manifest:{build(a,b){for(let c of Object.keys(b)){let d=b[c];if(["examples","externals","metas","notes","tags"].includes(c)){for(let b of d)a=a[c.slice(0,-1)](b);continue}if("alterations"===c){let b={};for(let{target:a,adjuster:c}of d)b[a]=c;a=a.alter(b);continue}if("whens"===c){for(let b of d){let{ref:c,is:d,not:e,then:f,otherwise:g,concat:h}=b;a=h?a.concat(h):c?a.when(c,{is:d,not:e,then:f,otherwise:g,switch:b.switch,break:b.break}):a.when(d,{then:f,otherwise:g,break:b.break})}continue}if("shared"===c)for(let b of d)a=a.shared(b)}return a}},messages:{"any.custom":"{{#label}} failed custom validation because {{#error.message}}","any.default":"{{#label}} threw an error when running default method","any.failover":"{{#label}} threw an error when running failover method","any.invalid":"{{#label}} contains an invalid value","any.only":'{{#label}} must be {if(#valids.length == 1, "", "one of ")}{{#valids}}',"any.ref":"{{#label}} {{#arg}} references {{:#ref}} which {{#reason}}","any.required":"{{#label}} is required","any.unknown":"{{#label}} is not allowed"}})},463866,(a,b,c)=>{"use strict";let{assert:d,merge:e}=a.r(888690),f=a.r(63331),g=a.r(832612),h=a.r(610725),i=a.r(59019),j=a.r(725767),k={};b.exports=f.extend({type:"alternatives",flags:{match:{default:"any"}},terms:{matches:{init:[],register:j.toSibling}},args:(a,...b)=>1===b.length&&Array.isArray(b[0])?a.try(...b[0]):a.try(...b),validate(a,b){let{schema:c,error:d,state:f,prefs:g}=b;if(c._flags.match){let b=[],h=[];for(let d=0;d<c.$_terms.matches.length;++d){let e=c.$_terms.matches[d],i=f.nest(e.schema,`match.${d}`);i.snapshot();let j=e.schema.$_validate(a,i,g);j.errors?(h.push(j.errors),i.restore()):(b.push(j.value),i.commit())}if(0===b.length)return{errors:d("alternatives.any",{details:h.map(a=>i.details(a,{override:!1}))})};if("one"===c._flags.match)return 1===b.length?{value:b[0]}:{errors:d("alternatives.one")};if(b.length!==c.$_terms.matches.length)return{errors:d("alternatives.all",{details:h.map(a=>i.details(a,{override:!1}))})};let j=a=>a.$_terms.matches.some(a=>"object"===a.schema.type||"alternatives"===a.schema.type&&j(a.schema));return j(c)?{value:b.reduce((a,b)=>e(a,b,{mergeArrays:!1}))}:{value:b[b.length-1]}}let h=[];for(let b=0;b<c.$_terms.matches.length;++b){let d=c.$_terms.matches[b];if(d.schema){let c=f.nest(d.schema,`match.${b}`);c.snapshot();let e=d.schema.$_validate(a,c,g);if(!e.errors)return c.commit(),e;c.restore(),h.push({schema:d.schema,reports:e.errors});continue}let e=d.ref?d.ref.resolve(a,f,g):a,i=d.is?[d]:d.switch;for(let c=0;c<i.length;++c){let{is:h,then:j,otherwise:k}=i[c],l=`match.${b}${d.switch?"."+c:""}`;if(h.$_match(e,f.nest(h,`${l}.is`),g)){if(j)return j.$_validate(a,f.nest(j,`${l}.then`),g)}else if(k)return k.$_validate(a,f.nest(k,`${l}.otherwise`),g)}}return k.errors(h,b)},jsonSchema(a,b,c,d){let e=[];for(let b of a.$_terms.matches)if(b.schema)e.push(b.schema.$_jsonSchema(c,d));else for(let a of b.is?[b]:b.switch)a.then&&e.push(a.then.$_jsonSchema(c,d)),a.otherwise&&e.push(a.otherwise.$_jsonSchema(c,d));if(e.length){delete b.type;let c=a._flags.match??"any";"one"===c?b.oneOf=e:"all"===c?b.allOf=e:b.anyOf=e}return b},rules:{conditional:{method(a,b){d(!this._flags._endedSwitch,"Unreachable condition"),d(!this._flags.match,"Cannot combine match mode",this._flags.match,"with conditional rule"),d(void 0===b.break,"Cannot use break option with alternatives conditional");let c=this.clone(),e=h.when(c,a,b);for(let a of e.is?[e]:e.switch)if(a.then&&a.otherwise){c.$_setFlag("_endedSwitch",!0,{clone:!1});break}return c.$_terms.matches.push(e),c.$_mutateRebuild()}},match:{method(a){if(d(["any","one","all"].includes(a),"Invalid alternatives match mode",a),"any"!==a)for(let b of this.$_terms.matches)d(b.schema,"Cannot combine match mode",a,"with conditional rules");return this.$_setFlag("match",a)}},try:{method(...a){d(a.length,"Missing alternative schemas"),g.verifyFlat(a,"try"),d(!this._flags._endedSwitch,"Unreachable condition");let b=this.clone();for(let c of a)b.$_terms.matches.push({schema:b.$_compile(c)});return b.$_mutateRebuild()}}},overrides:{label(a){return this.$_parent("label",a).$_modify({each:(b,c)=>"is"!==c.path[0]&&"string"!=typeof b._flags.label?b.label(a):void 0,ref:!1})},isAsync(){if(this.$_terms.externals?.length)return!0;for(let a of this.$_terms.matches)if(a.schema?.isAsync()||a.then?.isAsync()||a.otherwise?.isAsync())return!0;return!1}},rebuild(a){a.$_modify({each:b=>{g.isSchema(b)&&"array"===b.type&&a.$_setFlag("_arrayItems",!0,{clone:!1})}})},manifest:{build(a,b){if(b.matches)for(let c of b.matches){let{schema:b,ref:d,is:e,not:f,then:g,otherwise:h}=c;a=b?a.try(b):d?a.conditional(d,{is:e,then:g,not:f,otherwise:h,switch:c.switch}):a.conditional(e,{then:g,otherwise:h})}return a}},messages:{"alternatives.all":"{{#label}} does not match all of the required types","alternatives.any":"{{#label}} does not match any of the allowed types","alternatives.match":"{{#label}} does not match any of the allowed types","alternatives.one":"{{#label}} matches more than one allowed type","alternatives.types":"{{#label}} must be one of {{#types}}"}}),k.errors=function(a,{error:b,state:c}){if(!a.length)return{errors:b("alternatives.any")};if(1===a.length)return{errors:a[0].reports};let d=new Set,e=[];for(let{reports:f,schema:g}of a){if(f.length>1)return k.unmatched(a,b);let h=f[0];if(h instanceof i.Report==!1)return k.unmatched(a,b);if(h.state.path.length!==c.path.length){e.push({type:g.type,report:h});continue}if("any.only"===h.code){for(let a of h.local.valids)d.add(a);continue}let[j,l]=h.code.split(".");"base"!==l?e.push({type:g.type,report:h}):"object.base"===h.code?d.add(h.local.type):d.add(j)}return e.length?1===e.length?{errors:e[0].report}:k.unmatched(a,b):{errors:b("alternatives.types",{types:[...d]})}},k.unmatched=function(a,b){let c=[];for(let b of a)c.push(...b.reports);return{errors:b("alternatives.match",i.details(c,{override:!1}))}}},588035,(a,b,c)=>{"use strict";let{assert:d,deepEqual:e,reach:f}=a.r(888690),g=a.r(63331),h=a.r(832612),i=a.r(610725),j={};b.exports=g.extend({type:"array",flags:{single:{default:!1},sparse:{default:!1}},terms:{items:{init:[],manifest:"schema"},ordered:{init:[],manifest:"schema"},_exclusions:{init:[]},_inclusions:{init:[]},_requireds:{init:[]}},coerce:{from:"object",method(a,{schema:b,state:c,prefs:d}){if(!Array.isArray(a))return;let e=b.$_getRule("sort");if(e)return j.sort(b,a,e.args.options,c,d)}},validate(a,{schema:b,error:c}){if(!Array.isArray(a)){if(b._flags.single){let b=[a];return b[h.symbols.arraySingle]=!0,{value:b}}return{errors:c("array.base")}}if(b.$_getRule("items")||b.$_terms.externals)return{value:a.slice()}},jsonSchema(a,b,c,d){let e=a.$_terms.ordered;if(e.length&&(b.prefixItems=e.map(a=>a.$_jsonSchema(c,d))),a.$_terms.items.length){let f;f=1===a.$_terms.items.length?a.$_terms.items[0].$_jsonSchema(c,d):{anyOf:a.$_terms.items.map(a=>a.$_jsonSchema(c,d))},e.length?(b.unevaluatedItems=f,j.setOrderedMinItems(b,e)):b.items=f}else e.length&&(b.unevaluatedItems=!1,j.setOrderedMinItems(b,e),b.maxItems=e.length);let f=[];for(let b of a._rules)"has"!==b.name||b.args.schema._refs.refs.length||f.push(b.args.schema.$_jsonSchema(c,d));if(f.length&&(1===f.length?b.contains=f[0]:b.allOf=f.map(a=>({contains:a}))),a._flags.single&&a.$_terms.items.length){let e;e=1===a.$_terms.items.length?a.$_terms.items[0].$_jsonSchema(c,d):{anyOf:a.$_terms.items.map(a=>a.$_jsonSchema(c,d))},b={anyOf:[b,e]}}return b},rules:{has:{method(a){a=this.$_compile(a,{appendPath:!0});let b=this.$_addRule({name:"has",args:{schema:a}});return b.$_mutateRegister(a),b},validate(a,{state:b,prefs:c,error:d},{schema:e}){let f=[a,...b.ancestors];for(let d=0;d<a.length;++d){let g=b.localize([...b.path,d],f,e);if(e.$_match(a[d],g,c))return a}let g=e._flags.label;return g?d("array.hasKnown",{patternLabel:g}):d("array.hasUnknown",null)},multi:!0},items:{method(...a){h.verifyFlat(a,"items");let b=this.$_addRule("items");for(let c=0;c<a.length;++c){let d=h.tryWithPath(()=>this.$_compile(a[c]),c,{append:!0});b.$_terms.items.push(d)}return b.$_mutateRebuild()},validate(a,{schema:b,error:c,state:d,prefs:e,errorsArray:f}){let g=b.$_terms._requireds.slice(),i=b.$_terms.ordered.slice(),k=[...b.$_terms._inclusions,...g],l=!a[h.symbols.arraySingle];delete a[h.symbols.arraySingle];let m=f(),n=a.length;for(let f=0;f<n;++f){let h=a[f],o=!1,p=!1,q=l?f:new Number(f),r=[...d.path,q];if(!b._flags.sparse&&void 0===h){if(m.push(c("array.sparse",{key:q,path:r,pos:f,value:void 0},d.localize(r))),e.abortEarly)return m;i.shift();continue}let s=[a,...d.ancestors];for(let a of b.$_terms._exclusions)if(a.$_match(h,d.localize(r,s,a),e,{presence:"ignore"})){if(m.push(c("array.excludes",{pos:f,value:h},d.localize(r))),e.abortEarly)return m;o=!0,i.shift();break}if(o)continue;if(b.$_terms.ordered.length){if(i.length){let g=i.shift(),k=g.$_validate(h,d.localize(r,s,g),e);if(k.errors){if(m.push(...k.errors),e.abortEarly)return m}else if("strip"===g._flags.result)j.fastSplice(a,f),--f,--n;else if(b._flags.sparse||void 0!==k.value)a[f]=k.value;else if(m.push(c("array.sparse",{key:q,path:r,pos:f,value:void 0},d.localize(r))),e.abortEarly)return m;continue}else if(!b.$_terms.items.length){if(m.push(c("array.orderedLength",{pos:f,limit:b.$_terms.ordered.length})),e.abortEarly)return m;break}}let t=[],u=g.length;for(let i=0;i<u;++i){let k=d.localize(r,s,g[i]);k.snapshot();let l=g[i].$_validate(h,k,e);if(t[i]=l,!l.errors){if(k.commit(),a[f]=l.value,p=!0,j.fastSplice(g,i),--i,--u,!b._flags.sparse&&void 0===l.value&&(m.push(c("array.sparse",{key:q,path:r,pos:f,value:void 0},d.localize(r))),e.abortEarly))return m;break}k.restore()}if(p)continue;let v=e.stripUnknown&&!!e.stripUnknown.arrays||!1;for(let i of(u=k.length,k)){let k,l=g.indexOf(i);if(-1!==l)k=t[l];else{let g=d.localize(r,s,i);if(g.snapshot(),!(k=i.$_validate(h,g,e)).errors){g.commit(),"strip"===i._flags.result?(j.fastSplice(a,f),--f,--n):b._flags.sparse||void 0!==k.value?a[f]=k.value:(m.push(c("array.sparse",{key:q,path:r,pos:f,value:void 0},d.localize(r))),o=!0),p=!0;break}g.restore()}if(1===u){if(v){j.fastSplice(a,f),--f,--n,p=!0;break}if(m.push(...k.errors),e.abortEarly)return m;o=!0;break}}if(!o&&(b.$_terms._inclusions.length||b.$_terms._requireds.length)&&!p){if(v){j.fastSplice(a,f),--f,--n;continue}if(m.push(c("array.includes",{pos:f,value:h},d.localize(r))),e.abortEarly)return m}}return g.length&&j.fillMissedErrors(b,m,g,a,d,e),i.length&&(j.fillOrderedErrors(b,m,i,a,d,e),m.length||j.fillDefault(i,a,d,e)),m.length?m:a},priority:!0,manifest:!1},length:{method(a){return this.$_addRule({name:"length",args:{limit:a},operator:"="})},validate:(a,b,{limit:c},{name:d,operator:e,args:f})=>h.compare(a.length,c,e)?a:b.error("array."+d,{limit:f.limit,value:a}),jsonSchema:(a,b)=>(b.minItems=a.args.limit,b.maxItems=a.args.limit,b),args:[{name:"limit",ref:!0,assert:h.limit,message:"must be a positive integer"}]},max:{method(a){return this.$_addRule({name:"max",method:"length",args:{limit:a},operator:"<="})},jsonSchema:(a,b)=>(b.maxItems=a.args.limit,b)},min:{method(a){return this.$_addRule({name:"min",method:"length",args:{limit:a},operator:">="})},jsonSchema:(a,b)=>(b.minItems=a.args.limit,b)},ordered:{method(...a){h.verifyFlat(a,"ordered");let b=this.$_addRule("items");for(let c=0;c<a.length;++c){let d=h.tryWithPath(()=>this.$_compile(a[c]),c,{append:!0});j.validateSingle(d,b),b.$_mutateRegister(d),b.$_terms.ordered.push(d)}return b.$_mutateRebuild()}},single:{method(a){let b=void 0===a||!!a;return d(!b||!this._flags._arrayItems,"Cannot specify single rule when array has array items"),this.$_setFlag("single",b)}},sort:{method(a={}){h.assertOptions(a,["by","order"]);let b={order:a.order||"ascending"};return a.by&&(b.by=i.ref(a.by,{ancestor:0}),d(!b.by.ancestor,"Cannot sort by ancestor")),this.$_addRule({name:"sort",args:{options:b}})},validate(a,{error:b,state:c,prefs:d,schema:e},{options:f}){let{value:g,errors:h}=j.sort(e,a,f,c,d);if(h)return h;for(let c=0;c<a.length;++c)if(a[c]!==g[c])return b("array.sort",{order:f.order,by:f.by?f.by.key:"value"});return a},convert:!0},sparse:{method(a){let b=void 0===a||!!a;return this._flags.sparse===b?this:(b?this.clone():this.$_addRule("items")).$_setFlag("sparse",b,{clone:!1})}},unique:{method(a,b={}){d(!a||"function"==typeof a||"string"==typeof a,"comparator must be a function or a string"),h.assertOptions(b,["ignoreUndefined","separator"]);let c={name:"unique",args:{options:b,comparator:a}};if(a)if("string"==typeof a){let d=h.default(b.separator,".");c.path=d?a.split(d):[a]}else c.comparator=a;return this.$_addRule(c)},validate(a,{state:b,error:c,schema:g},{comparator:h,options:i},{comparator:j,path:k}){let l={string:Object.create(null),number:Object.create(null),undefined:Object.create(null),boolean:Object.create(null),bigint:Object.create(null),object:new Map,function:new Map,custom:new Map},m=j||e,n=i.ignoreUndefined;for(let e=0;e<a.length;++e){let g=k?f(a[e],k):a[e],i=j?l.custom:l[typeof g];if(d(i,"Failed to find unique map container for type",typeof g),i instanceof Map){let d,f=i.entries();for(;!(d=f.next()).done;)if(m(d.value[0],g)){let f=b.localize([...b.path,e],[a,...b.ancestors]),g={pos:e,value:a[e],dupePos:d.value[1],dupeValue:a[d.value[1]]};return k&&(g.path=h),c("array.unique",g,f)}i.set(g,e)}else{if((!n||void 0!==g)&&void 0!==i[g]){let d={pos:e,value:a[e],dupePos:i[g],dupeValue:a[i[g]]};return k&&(d.path=h),c("array.unique",d,b.localize([...b.path,e],[a,...b.ancestors]))}i[g]=e}}return a},jsonSchema:(a,b)=>(a.args.comparator||(b.uniqueItems=!0),b),args:["comparator","options"],multi:!0}},overrides:{isAsync(){if(this.$_terms.externals?.length)return!0;for(let a of this.$_terms.items)if(a.isAsync())return!0;for(let a of this.$_terms.ordered)if(a.isAsync())return!0;return!1}},cast:{set:{from:Array.isArray,to:(a,b)=>new Set(a)}},rebuild(a){for(let b of(a.$_terms._inclusions=[],a.$_terms._exclusions=[],a.$_terms._requireds=[],a.$_terms.items))j.validateSingle(b,a),"required"===b._flags.presence?a.$_terms._requireds.push(b):"forbidden"===b._flags.presence?a.$_terms._exclusions.push(b):a.$_terms._inclusions.push(b);for(let b of a.$_terms.ordered)j.validateSingle(b,a)},manifest:{build:(a,b)=>(b.items&&(a=a.items(...b.items)),b.ordered&&(a=a.ordered(...b.ordered)),a)},messages:{"array.base":"{{#label}} must be an array","array.excludes":"{{#label}} contains an excluded value","array.hasKnown":"{{#label}} does not contain at least one required match for type {:#patternLabel}","array.hasUnknown":"{{#label}} does not contain at least one required match","array.includes":"{{#label}} does not match any of the allowed types","array.includesRequiredBoth":"{{#label}} does not contain {{#knownMisses}} and {{#unknownMisses}} other required value(s)","array.includesRequiredKnowns":"{{#label}} does not contain {{#knownMisses}}","array.includesRequiredUnknowns":"{{#label}} does not contain {{#unknownMisses}} required value(s)","array.length":"{{#label}} must contain {{#limit}} items","array.max":"{{#label}} must contain less than or equal to {{#limit}} items","array.min":"{{#label}} must contain at least {{#limit}} items","array.orderedLength":"{{#label}} must contain at most {{#limit}} items","array.sort":"{{#label}} must be sorted in {#order} order by {{#by}}","array.sort.mismatching":"{{#label}} cannot be sorted due to mismatching types","array.sort.unsupported":"{{#label}} cannot be sorted due to unsupported type {#type}","array.sparse":"{{#label}} must not be a sparse array item","array.unique":"{{#label}} contains a duplicate value"}}),j.setOrderedMinItems=function(a,b){let c=j.orderedMinItems(b);c&&(a.minItems=c)},j.orderedMinItems=function(a){for(let b=a.length-1;b>=0;--b)if("required"===a[b]._flags.presence)return b+1;return 0},j.fillMissedErrors=function(a,b,c,d,e,f){let g=[],h=0;for(let a of c){let b=a._flags.label;b?g.push(b):++h}g.length?h?b.push(a.$_createError("array.includesRequiredBoth",d,{knownMisses:g,unknownMisses:h},e,f)):b.push(a.$_createError("array.includesRequiredKnowns",d,{knownMisses:g},e,f)):b.push(a.$_createError("array.includesRequiredUnknowns",d,{unknownMisses:h},e,f))},j.fillOrderedErrors=function(a,b,c,d,e,f){let g=[];for(let a of c)"required"===a._flags.presence&&g.push(a);g.length&&j.fillMissedErrors(a,b,g,d,e,f)},j.fillDefault=function(a,b,c,d){let e=[],f=!0;for(let g=a.length-1;g>=0;--g){let h=a[g],i=[b,...c.ancestors],j=h.$_validate(void 0,c.localize(c.path,i,h),d).value;if(f){if(void 0===j)continue;f=!1}e.unshift(j)}e.length&&b.push(...e)},j.fastSplice=function(a,b){let c=b;for(;c<a.length;)a[c++]=a[c];--a.length},j.validateSingle=function(a,b){("array"===a.type||a._flags._arrayItems)&&(d(!b._flags.single,"Cannot specify array item with single rule enabled"),b.$_setFlag("_arrayItems",!0,{clone:!1}))},j.sort=function(a,b,c,d,e){let f="ascending"===c.order?1:-1,g=-1*f;try{return{value:b.slice().sort((h,i)=>{let k=j.compare(h,i,g,f);if(null!==k||(c.by&&(h=c.by.resolve(h,d,e),i=c.by.resolve(i,d,e)),null!==(k=j.compare(h,i,g,f))))return k;let l=typeof h;if(l!==typeof i)throw a.$_createError("array.sort.mismatching",b,null,d,e);if("number"!==l&&"string"!==l)throw a.$_createError("array.sort.unsupported",b,{type:l},d,e);return"number"===l?(h-i)*f:h<i?g:f})}}catch(a){return{errors:a}}},j.compare=function(a,b,c,d){return a===b?0:void 0===a?1:void 0===b?-1:null===a?d:null===b?c:null}},46279,(a,b,c)=>{"use strict";let{assert:d}=a.r(888690),e=a.r(63331),f=a.r(832612),g=a.r(396751),h={};h.isBool=function(a){return"boolean"==typeof a},b.exports=e.extend({type:"boolean",flags:{sensitive:{default:!1}},terms:{falsy:{init:null,manifest:"values"},truthy:{init:null,manifest:"values"}},coerce(a,{schema:b}){if("boolean"!=typeof a){if("string"==typeof a){let c=a.trim(),d=b._flags.sensitive?c:c.toLowerCase();a="true"===d||"false"!==d&&a}return"boolean"!=typeof a&&(a=b.$_terms.truthy&&b.$_terms.truthy.has(a,null,null,!b._flags.sensitive)||!(b.$_terms.falsy&&b.$_terms.falsy.has(a,null,null,!b._flags.sensitive))&&a),{value:a}}},validate(a,{error:b}){if("boolean"!=typeof a)return{value:a,errors:b("boolean.base")}},rules:{truthy:{method(...a){f.verifyFlat(a,"truthy");let b=this.clone();b.$_terms.truthy=b.$_terms.truthy||new g;for(let c=0;c<a.length;++c){let e=a[c];d(void 0!==e,"Cannot call truthy with undefined"),b.$_terms.truthy.add(e)}return b}},falsy:{method(...a){f.verifyFlat(a,"falsy");let b=this.clone();b.$_terms.falsy=b.$_terms.falsy||new g;for(let c=0;c<a.length;++c){let e=a[c];d(void 0!==e,"Cannot call falsy with undefined"),b.$_terms.falsy.add(e)}return b}},sensitive:{method(a=!0){return this.$_setFlag("sensitive",a)}}},cast:{number:{from:h.isBool,to:(a,b)=>+!!a},string:{from:h.isBool,to:(a,b)=>a?"true":"false"}},manifest:{build:(a,b)=>(b.truthy&&(a=a.truthy(...b.truthy)),b.falsy&&(a=a.falsy(...b.falsy)),a)},messages:{"boolean.base":"{{#label}} must be a boolean"}})},758977,(a,b,c)=>{"use strict";let{assert:d}=a.r(888690),e=a.r(63331),f=a.r(832612),g=a.r(306544),h={formats:["iso","javascript","unix"]};h.isDate=function(a){return a instanceof Date},b.exports=e.extend({type:"date",coerce:{from:["number","string"],method:(a,{schema:b})=>({value:h.parse(a,b._flags.format)||a})},validate(a,{schema:b,error:c,prefs:d}){if(a instanceof Date&&!isNaN(a.getTime()))return;let e=b._flags.format;return d.convert&&e&&"string"==typeof a?{value:a,errors:c("date.format",{format:e})}:{value:a,errors:c("date.base")}},jsonSchema:(a,b,c,d)=>(b.type="string",b.format="date-time",b),rules:{compare:{method:!1,validate(a,b,{date:c},{name:d,operator:e,args:g}){let h="now"===c?Date.now():c.getTime();return f.compare(a.getTime(),h,e)?a:b.error("date."+d,{limit:g.date,value:a})},args:[{name:"date",ref:!0,normalize:a=>"now"===a?a:h.parse(a),assert:a=>null!==a,message:"must have a valid date format"}]},format:{method(a){return d(h.formats.includes(a),"Unknown date format",a),this.$_setFlag("format",a)}},greater:{method(a){return this.$_addRule({name:"greater",method:"compare",args:{date:a},operator:">"})},jsonSchema(a,b){let c=a.args.date;return c instanceof Date&&(b["x-constraint"]={...b["x-constraint"],greater:c.toISOString()}),b}},iso:{method(){return this.format("iso")}},less:{method(a){return this.$_addRule({name:"less",method:"compare",args:{date:a},operator:"<"})},jsonSchema(a,b){let c=a.args.date;return c instanceof Date&&(b["x-constraint"]={...b["x-constraint"],less:c.toISOString()}),b}},max:{method(a){return this.$_addRule({name:"max",method:"compare",args:{date:a},operator:"<="})},jsonSchema(a,b){let c=a.args.date;return c instanceof Date&&(b["x-constraint"]={...b["x-constraint"],max:c.toISOString()}),b}},min:{method(a){return this.$_addRule({name:"min",method:"compare",args:{date:a},operator:">="})},jsonSchema(a,b){let c=a.args.date;return c instanceof Date&&(b["x-constraint"]={...b["x-constraint"],min:c.toISOString()}),b}},timestamp:{method(a="javascript"){return d(["javascript","unix"].includes(a),'"type" must be one of "javascript, unix"'),this.format(a)}}},cast:{number:{from:h.isDate,to:(a,b)=>a.getTime()},string:{from:h.isDate,to:(a,{prefs:b})=>g.date(a,b)}},messages:{"date.base":"{{#label}} must be a valid date","date.format":'{{#label}} must be in {msg("date.format." + #format) || #format} format',"date.greater":"{{#label}} must be greater than {{:#limit}}","date.less":"{{#label}} must be less than {{:#limit}}","date.max":"{{#label}} must be less than or equal to {{:#limit}}","date.min":"{{#label}} must be greater than or equal to {{:#limit}}","date.format.iso":"ISO 8601 date","date.format.javascript":"timestamp or number of milliseconds","date.format.unix":"timestamp or number of seconds"}}),h.parse=function(a,b){if(a instanceof Date)return a;if("string"!=typeof a&&(isNaN(a)||!isFinite(a))||/^\s*$/.test(a))return null;if("iso"===b)return f.isIsoDate(a)?h.date(a.toString()):null;let c=a;if("string"==typeof a&&/^[+-]?\d+(\.\d+)?$/.test(a)&&(a=parseFloat(a)),b){if("javascript"===b)return h.date(+a);if("unix"===b)return h.date(1e3*a);if("string"==typeof c)return null}return h.date(a)},h.date=function(a){let b=new Date(a);return isNaN(b.getTime())?null:b}},926487,(a,b,c)=>{"use strict";let{assert:d}=a.r(888690),e={};c.Sorter=class{constructor(){this._items=[],this.nodes=[]}add(a,b){let c=[].concat((b=b??{}).before??[]),e=[].concat(b.after??[]),f=b.group??"?",g=b.sort??0;for(let b of(d(!c.includes(f),`Item cannot come before itself: ${f}`),d(!c.includes("?"),"Item cannot come before unassociated items"),d(!e.includes(f),`Item cannot come after itself: ${f}`),d(!e.includes("?"),"Item cannot come after unassociated items"),Array.isArray(a)||(a=[a]),a)){let a={seq:this._items.length,sort:g,before:c,after:e,group:f,node:b};this._items.push(a)}return b.manual||d(this._sort(),"item","?"!==f?`added into group ${f}`:"","created a dependencies error"),this.nodes}merge(a){for(let b of(Array.isArray(a)||(a=[a]),a))if(b)for(let a of b._items)this._items.push(Object.assign({},a));this._items.sort(e.mergeSort);for(let a=0;a<this._items.length;++a)this._items[a].seq=a;return d(this._sort(),"merge created a dependencies error"),this.nodes}sort(){return d(this._sort(),"sort created a dependencies error"),this.nodes}_sort(){let a={},b=Object.create(null),c=Object.create(null);for(let d of this._items){let e=d.seq,f=d.group;for(let g of(c[f]=c[f]??[],c[f].push(e),a[e]=d.before,d.after))b[g]=b[g]??[],b[g].push(e)}for(let b in a){let d=[];for(let e in a[b]){let f=a[b][e];c[f]=c[f]??[],d.push(...c[f])}a[b]=d}for(let d in b)if(c[d])for(let e of c[d])a[e].push(...b[d]);let d={};for(let b in a)for(let c of a[b])d[c]=d[c]??[],d[c].push(b);let e={},f=[];for(let a=0;a<this._items.length;++a){let b=a;if(d[a]){b=null;for(let a=0;a<this._items.length;++a){if(!0===e[a])continue;d[a]||(d[a]=[]);let c=d[a].length,f=0;for(let b=0;b<c;++b)e[d[a][b]]&&++f;if(f===c){b=a;break}}}null!==b&&(e[b]=!0,f.push(b))}if(f.length!==this._items.length)return!1;let g={};for(let a of this._items)g[a.seq]=a;for(let a of(this._items=[],this.nodes=[],f)){let b=g[a];this.nodes.push(b.node),this._items.push(b)}return!0}},e.mergeSort=(a,b)=>a.sort===b.sort?0:a.sort<b.sort?-1:1},838832,(a,b,c)=>{"use strict";let{applyToDefaults:d,assert:e,clone:f}=a.r(888690),g=a.r(926487),h=a.r(63331),i=a.r(832612),j=a.r(610725),k=a.r(59019),l=a.r(725767),m=a.r(306544),n={renameDefaults:{alias:!1,multiple:!1,override:!1}};b.exports=h.extend({type:"_keys",properties:{typeof:"object"},flags:{unknown:{default:void 0}},terms:{dependencies:{init:null},keys:{init:null,manifest:{mapped:{from:"schema",to:"key"}}},patterns:{init:null},renames:{init:null}},args:(a,b)=>a.keys(b),jsonSchema(a,b,c,d){if(b.type="object",a.$_terms.keys){b.properties={};let e=[];for(let f of a.$_terms.keys){let a=f.schema.$_jsonSchema(c,d);b.properties[f.key]=a,f.schema._flags.id&&(d.$defs[f.schema._flags.id]=a),("required"===f.schema._flags.presence||"output"===c&&void 0!==f.schema._flags.default)&&e.push(f.key)}e.length&&(b.required=e.sort())}if(a.$_terms.patterns){let e={};for(let f of a.$_terms.patterns)f.regex?e[f.regex.source]=f.rule.$_jsonSchema(c,d):"any"===f.schema.type?b.additionalProperties=f.rule.$_jsonSchema(c,d):e[".*"]=f.rule.$_jsonSchema(c,d);Object.keys(e).length&&(b.patternProperties=e)}return void 0===b.additionalProperties&&!1==(!0===a._flags.unknown||void 0===a._flags.unknown&&!a.$_terms.keys&&!a.$_terms.patterns&&!a._flags.only)&&(b.additionalProperties=!1),b},validate(a,{schema:b,error:c,state:d,prefs:e}){if(!a||typeof a!==b.$_property("typeof")||Array.isArray(a))return{value:a,errors:c("object.base",{type:b.$_property("typeof")})};if(!b.$_terms.renames&&!b.$_terms.dependencies&&!b.$_terms.keys&&!b.$_terms.patterns&&!b.$_terms.externals)return;a=n.clone(a,e);let f=[];if(b.$_terms.renames&&!n.rename(b,a,d,e,f)||!b.$_terms.keys&&!b.$_terms.patterns&&!b.$_terms.dependencies)return{value:a,errors:f};let g=new Set(Object.keys(a));if(b.$_terms.keys){let c=[a,...d.ancestors];for(let h of b.$_terms.keys){let b=h.key,i=a[b];g.delete(b);let j=d.localize([...d.path,b],c,h),k=h.schema.$_validate(i,j,e);if(k.errors){if(e.abortEarly)return{value:a,errors:k.errors};void 0!==k.value&&(a[b]=k.value),f.push(...k.errors)}else"strip"===h.schema._flags.result||void 0===k.value&&void 0!==i?delete a[b]:void 0!==k.value&&(a[b]=k.value)}}if(g.size||b._flags._hasPatternMatch){let c=n.unknown(b,a,g,f,d,e);if(c)return c}if(b.$_terms.dependencies)for(let c of b.$_terms.dependencies){if(null!==c.key&&!1===n.isPresent(c.options)(c.key.resolve(a,d,e,null,{shadow:!1})))continue;let g=n.dependencies[c.rel](b,c,a,d,e);if(g){let c=b.$_createError(g.code,a,g.context,d,e);if(e.abortEarly)return{value:a,errors:c};f.push(c)}}return{value:a,errors:f}},rules:{and:{method(...a){return i.verifyFlat(a,"and"),n.dependency(this,"and",null,a)}},append:{method(a){return null==a||0===Object.keys(a).length?this:this.keys(a)}},assert:{method(a,b,c){m.isTemplate(a)||(a=j.ref(a)),e(void 0===c||"string"==typeof c,"Message must be a string"),b=this.$_compile(b,{appendPath:!0});let d=this.$_addRule({name:"assert",args:{subject:a,schema:b,message:c}});return d.$_mutateRegister(a),d.$_mutateRegister(b),d},validate(a,{error:b,prefs:c,state:d},{subject:e,schema:f,message:g}){let h=e.resolve(a,d,c),i=l.isRef(e)?e.absolute(d):[];return f.$_match(h,d.localize(i,[a,...d.ancestors],f),c)?a:b("object.assert",{subject:e,message:g})},args:["subject","schema","message"],multi:!0},instance:{method(a,b){return e("function"==typeof a,"constructor must be a function"),b=b||a.name,this.$_addRule({name:"instance",args:{constructor:a,name:b}})},validate:(a,b,{constructor:c,name:d})=>a instanceof c?a:b.error("object.instance",{type:d,value:a}),args:["constructor","name"]},keys:{method(a){e(void 0===a||"object"==typeof a,"Object schema must be a valid object"),e(!i.isSchema(a),"Object schema cannot be a joi schema");let b=this.clone();if(a)if(Object.keys(a).length)for(let c of(b.$_terms.keys=b.$_terms.keys?b.$_terms.keys.filter(b=>!a.hasOwnProperty(b.key)):new n.Keys,Object.keys(a)))i.tryWithPath(()=>b.$_terms.keys.push({key:c,schema:this.$_compile(a[c])}),c);else b.$_terms.keys=new n.Keys;else b.$_terms.keys=null;return b.$_mutateRebuild()}},length:{method(a){return this.$_addRule({name:"length",args:{limit:a},operator:"="})},validate:(a,b,{limit:c},{name:d,operator:e,args:f})=>i.compare(Object.keys(a).length,c,e)?a:b.error("object."+d,{limit:f.limit,value:a}),jsonSchema:(a,b)=>(b.minProperties=a.args.limit,b.maxProperties=a.args.limit,b),args:[{name:"limit",ref:!0,assert:i.limit,message:"must be a positive integer"}]},max:{method(a){return this.$_addRule({name:"max",method:"length",args:{limit:a},operator:"<="})},jsonSchema:(a,b)=>(b.maxProperties=a.args.limit,b)},min:{method(a){return this.$_addRule({name:"min",method:"length",args:{limit:a},operator:">="})},jsonSchema:(a,b)=>(b.minProperties=a.args.limit,b)},nand:{method(...a){return i.verifyFlat(a,"nand"),n.dependency(this,"nand",null,a)}},or:{method(...a){return i.verifyFlat(a,"or"),n.dependency(this,"or",null,a)}},oxor:{method(...a){return n.dependency(this,"oxor",null,a)}},pattern:{method(a,b,c={}){let d=a instanceof RegExp;d||(a=this.$_compile(a,{appendPath:!0})),e(void 0!==b,"Invalid rule"),i.assertOptions(c,["fallthrough","matches"]),d&&e(!a.flags.includes("g")&&!a.flags.includes("y"),"pattern should not use global or sticky mode"),b=this.$_compile(b,{appendPath:!0});let f=this.clone();f.$_terms.patterns=f.$_terms.patterns||[];let g={[d?"regex":"schema"]:a,rule:b};return c.matches&&(g.matches=this.$_compile(c.matches),"array"!==g.matches.type&&(g.matches=g.matches.$_root.array().items(g.matches)),f.$_mutateRegister(g.matches),f.$_setFlag("_hasPatternMatch",!0,{clone:!1})),c.fallthrough&&(g.fallthrough=!0),f.$_terms.patterns.push(g),f.$_mutateRegister(b),f}},ref:{method(){return this.$_addRule("ref")},validate:(a,b)=>l.isRef(a)?a:b.error("object.refType",{value:a})},regex:{method(){return this.$_addRule("regex")},validate:(a,b)=>a instanceof RegExp?a:b.error("object.regex",{value:a})},rename:{method(a,b,c={}){e("string"==typeof a||a instanceof RegExp,"Rename missing the from argument"),e("string"==typeof b||b instanceof m,"Invalid rename to argument"),e(b!==a,"Cannot rename key to same name:",a),i.assertOptions(c,["alias","ignoreUndefined","override","multiple"]);let f=this.clone();for(let b of(f.$_terms.renames=f.$_terms.renames||[],f.$_terms.renames))e(b.from!==a,"Cannot rename the same key multiple times");return b instanceof m&&f.$_mutateRegister(b),f.$_terms.renames.push({from:a,to:b,options:d(n.renameDefaults,c)}),f}},schema:{method(a="any"){return this.$_addRule({name:"schema",args:{type:a}})},validate:(a,b,{type:c})=>i.isSchema(a)&&("any"===c||a.type===c)?a:b.error("object.schema",{type:c})},unknown:{method(a){return this.$_setFlag("unknown",!1!==a)}},with:{method(a,b,c={}){return n.dependency(this,"with",a,b,c)}},without:{method(a,b,c={}){return n.dependency(this,"without",a,b,c)}},xor:{method(...a){return i.verifyFlat(a,"xor"),n.dependency(this,"xor",null,a)}}},overrides:{default(a,b){return void 0===a&&(a=i.symbols.deepDefault),this.$_parent("default",a,b)},isAsync(){if(this.$_terms.externals?.length)return!0;if(this.$_terms.keys?.length){for(let a of this.$_terms.keys)if(a.schema.isAsync())return!0}if(this.$_terms.patterns?.length){for(let a of this.$_terms.patterns)if(a.rule.isAsync())return!0}return!1}},rebuild(a){a.$_terms.keys&&(a.$_terms.keys=new n.Keys(...n.sortKeys(a.$_terms.keys)))},manifest:{build(a,b){if(b.keys&&(a=a.keys(b.keys)),b.dependencies)for(let{rel:c,key:d=null,peers:e,options:f}of b.dependencies)a=n.dependency(a,c,d,e,f);if(b.patterns)for(let{regex:c,schema:d,rule:e,fallthrough:f,matches:g}of b.patterns)a=a.pattern(c||d,e,{fallthrough:f,matches:g});if(b.renames)for(let{from:c,to:d,options:e}of b.renames)a=a.rename(c,d,e);return a}},messages:{"object.and":"{{#label}} contains {{#presentWithLabels}} without its required peers {{#missingWithLabels}}","object.assert":'{{#label}} is invalid because {if(#subject.key, `"` + #subject.key + `" failed to ` + (#message || "pass the assertion test"), #message || "the assertion failed")}',"object.base":"{{#label}} must be of type {{#type}}","object.instance":"{{#label}} must be an instance of {{:#type}}","object.length":'{{#label}} must have {{#limit}} key{if(#limit == 1, "", "s")}',"object.max":'{{#label}} must have less than or equal to {{#limit}} key{if(#limit == 1, "", "s")}',"object.min":'{{#label}} must have at least {{#limit}} key{if(#limit == 1, "", "s")}',"object.missing":"{{#label}} must contain at least one of {{#peersWithLabels}}","object.nand":"{{:#mainWithLabel}} must not exist simultaneously with {{#peersWithLabels}}","object.oxor":"{{#label}} contains a conflict between optional exclusive peers {{#peersWithLabels}}","object.pattern.match":"{{#label}} keys failed to match pattern requirements","object.refType":"{{#label}} must be a Joi reference","object.regex":"{{#label}} must be a RegExp object","object.rename.multiple":"{{#label}} cannot rename {{:#from}} because multiple renames are disabled and another key was already renamed to {{:#to}}","object.rename.override":"{{#label}} cannot rename {{:#from}} because override is disabled and target {{:#to}} exists","object.rename.proto":"{{#label}} cannot rename {{:#from}} because target {{:#to}} is a reserved key","object.schema":"{{#label}} must be a Joi schema of {{#type}} type","object.unknown":"{{#label}} is not allowed","object.with":"{{:#mainWithLabel}} missing required peer {{:#peerWithLabel}}","object.without":"{{:#mainWithLabel}} conflict with forbidden peer {{:#peerWithLabel}}","object.xor":"{{#label}} contains a conflict between exclusive peers {{#peersWithLabels}}"}}),n.clone=function(a,b){if("object"==typeof a){if(b.nonEnumerables)return f(a,{shallow:!0});let c=Object.getPrototypeOf(a),d=Object.create(c);return Object.assign(d,a),Object.getPrototypeOf(d)!==c&&Object.setPrototypeOf(d,c),d}let c=function(...b){return a.apply(this,b)};return c.prototype=f(a.prototype),Object.defineProperty(c,"name",{value:a.name,writable:!1}),Object.defineProperty(c,"length",{value:a.length,writable:!1}),Object.assign(c,a),c},n.dependency=function(a,b,c,d,f){e(null===c||"string"==typeof c,b,"key must be a strings"),f||(f=d.length>1&&"object"==typeof d[d.length-1]?d.pop():{}),i.assertOptions(f,["separator","isPresent"]),d=[].concat(d);let g=i.default(f.separator,"."),h=[];for(let a of d)e("string"==typeof a,b,"peers must be strings"),h.push(j.ref(a,{separator:g,ancestor:0,prefix:!1}));null!==c&&(c=j.ref(c,{separator:g,ancestor:0,prefix:!1}));let k=a.clone();return k.$_terms.dependencies=k.$_terms.dependencies||[],k.$_terms.dependencies.push(new n.Dependency(b,c,h,d,f)),k},n.dependencies={and(a,b,c,d,e){let f=[],g=[],h=b.peers.length,i=n.isPresent(b.options);for(let a of b.peers)!1===i(a.resolve(c,d,e,null,{shadow:!1}))?f.push(a.key):g.push(a.key);if(f.length!==h&&g.length!==h)return{code:"object.and",context:{present:g,presentWithLabels:n.keysToLabels(a,g),missing:f,missingWithLabels:n.keysToLabels(a,f)}}},nand(a,b,c,d,e){let f=[],g=n.isPresent(b.options);for(let a of b.peers)g(a.resolve(c,d,e,null,{shadow:!1}))&&f.push(a.key);if(f.length!==b.peers.length)return;let h=b.paths[0],i=b.paths.slice(1);return{code:"object.nand",context:{main:h,mainWithLabel:n.keysToLabels(a,h),peers:i,peersWithLabels:n.keysToLabels(a,i)}}},or(a,b,c,d,e){let f=n.isPresent(b.options);for(let a of b.peers)if(f(a.resolve(c,d,e,null,{shadow:!1})))return;return{code:"object.missing",context:{peers:b.paths,peersWithLabels:n.keysToLabels(a,b.paths)}}},oxor(a,b,c,d,e){let f=[],g=n.isPresent(b.options);for(let a of b.peers)g(a.resolve(c,d,e,null,{shadow:!1}))&&f.push(a.key);if(!f.length||1===f.length)return;let h={peers:b.paths,peersWithLabels:n.keysToLabels(a,b.paths)};return h.present=f,h.presentWithLabels=n.keysToLabels(a,f),{code:"object.oxor",context:h}},with(a,b,c,d,e){let f=n.isPresent(b.options);for(let g of b.peers)if(!1===f(g.resolve(c,d,e,null,{shadow:!1})))return{code:"object.with",context:{main:b.key.key,mainWithLabel:n.keysToLabels(a,b.key.key),peer:g.key,peerWithLabel:n.keysToLabels(a,g.key)}}},without(a,b,c,d,e){let f=n.isPresent(b.options);for(let g of b.peers)if(f(g.resolve(c,d,e,null,{shadow:!1})))return{code:"object.without",context:{main:b.key.key,mainWithLabel:n.keysToLabels(a,b.key.key),peer:g.key,peerWithLabel:n.keysToLabels(a,g.key)}}},xor(a,b,c,d,e){let f=[],g=n.isPresent(b.options);for(let a of b.peers)g(a.resolve(c,d,e,null,{shadow:!1}))&&f.push(a.key);if(1===f.length)return;let h={peers:b.paths,peersWithLabels:n.keysToLabels(a,b.paths)};return 0===f.length?{code:"object.missing",context:h}:(h.present=f,h.presentWithLabels=n.keysToLabels(a,f),{code:"object.xor",context:h})}},n.sortKeys=function(a,b=!0){let c=new g.Sorter;for(let d of a)i.tryWithPath(()=>c.add(d,{after:d.schema.$_rootReferences(),group:d.key,manual:b}),d.key);try{return c.sort()}catch{return n.sortKeys(a,!1)}},n.keysToLabels=function(a,b){return Array.isArray(b)?b.map(b=>a.$_mapLabels(b)):a.$_mapLabels(b)},n.isPresent=function(a){return"function"==typeof a.isPresent?a.isPresent:a=>void 0!==a},n.rename=function(a,b,c,d,e){let f={};for(let g of a.$_terms.renames){let h=[],i="string"!=typeof g.from;if(i)for(let a of Object.keys(b)){if(void 0===b[a]&&g.options.ignoreUndefined||a===g.to)continue;let c=g.from.exec(a);c&&h.push({from:a,to:g.to,match:c})}else Object.prototype.hasOwnProperty.call(b,g.from)&&(void 0!==b[g.from]||!g.options.ignoreUndefined)&&h.push(g);for(let j of h){let h=j.from,k=j.to;if(k instanceof m&&(k=k.render(b,c,d,j.match)),h!==k){if(!g.options.multiple&&f[k]&&(e.push(a.$_createError("object.rename.multiple",b,{from:h,to:k,pattern:i},c,d)),d.abortEarly)||Object.prototype.hasOwnProperty.call(b,k)&&!g.options.override&&!f[k]&&(e.push(a.$_createError("object.rename.override",b,{from:h,to:k,pattern:i},c,d)),d.abortEarly))return!1;if("__proto__"===k){if(e.push(a.$_createError("object.rename.proto",b,{from:h,to:k,pattern:i},c,d)),d.abortEarly)return!1;continue}void 0===b[h]?delete b[k]:b[k]=b[h],f[k]=!0,g.options.alias||delete b[h]}}}return!0},n.unknown=function(a,b,c,d,e,f){if(a.$_terms.patterns){let g=!1,h=a.$_terms.patterns.map(a=>{if(a.matches)return g=!0,[]}),i=[b,...e.ancestors];for(let g of c){let j=b[g],k=[...e.path,g];for(let l=0;l<a.$_terms.patterns.length;++l){let m=a.$_terms.patterns[l];if(m.regex){let a=m.regex.test(g);if(e.mainstay.tracer.debug(e,"rule",`pattern.${l}`,a?"pass":"error"),!a)continue}else if(!m.schema.$_match(g,e.nest(m.schema,`pattern.${l}`),f))continue;c.delete(g);let n=e.localize(k,i,{schema:m.rule,key:g}),o=m.rule.$_validate(j,n,f);if(o.errors){if(f.abortEarly)return{value:b,errors:o.errors};d.push(...o.errors)}if(m.matches&&h[l].push(g),b[g]=o.value,!m.fallthrough)break}}if(g)for(let c=0;c<h.length;++c){let g=h[c];if(!g)continue;let j=a.$_terms.patterns[c].matches,l=e.localize(e.path,i,j),m=j.$_validate(g,l,f);if(m.errors){let c=k.details(m.errors,{override:!1});c.matches=g;let h=a.$_createError("object.pattern.match",b,c,e,f);if(f.abortEarly)return{value:b,errors:h};d.push(h)}}}if(c.size&&(a.$_terms.keys||a.$_terms.patterns)){if(f.stripUnknown&&void 0===a._flags.unknown||f.skipFunctions){let a=!!f.stripUnknown&&(!0===f.stripUnknown||!!f.stripUnknown.objects);for(let d of c)a?(delete b[d],c.delete(d)):"function"==typeof b[d]&&c.delete(d)}if(!i.default(a._flags.unknown,f.allowUnknown))for(let g of c){let c=e.localize([...e.path,g],[]),h=a.$_createError("object.unknown",b[g],{child:g},c,f,{flags:!1});if(f.abortEarly)return{value:b,errors:h};d.push(h)}}},n.Dependency=class{constructor(a,b,c,d,e){this.rel=a,this.key=b,this.peers=c,this.paths=d,this.options=e}describe(){let a={rel:this.rel,peers:this.paths};return null!==this.key&&(a.key=this.key.key),"."!==this.peers[0].separator&&(a.options={...a.options,separator:this.peers[0].separator}),this.options.isPresent&&(a.options={...a.options,isPresent:this.options.isPresent}),a}},n.Keys=class extends Array{concat(a){let b=this.slice(),c=new Map;for(let a=0;a<b.length;++a)c.set(b[a].key,a);for(let d of a){let a=d.key,e=c.get(a);void 0!==e?b[e]={key:a,schema:b[e].schema.concat(d.schema)}:b.push(d)}return b}}},239221,(a,b,c)=>{"use strict";let{assert:d}=a.r(888690);b.exports=a.r(838832).extend({type:"function",properties:{typeof:"function"},rules:{arity:{method(a){return d(Number.isSafeInteger(a)&&a>=0,"n must be a positive integer"),this.$_addRule({name:"arity",args:{n:a}})},validate:(a,b,{n:c})=>a.length===c?a:b.error("function.arity",{n:c})},class:{method(){return this.$_addRule("class")},validate:(a,b)=>/^\s*class\s/.test(a.toString())?a:b.error("function.class",{value:a})},minArity:{method(a){return d(Number.isSafeInteger(a)&&a>0,"n must be a strict positive integer"),this.$_addRule({name:"minArity",args:{n:a}})},validate:(a,b,{n:c})=>a.length>=c?a:b.error("function.minArity",{n:c})},maxArity:{method(a){return d(Number.isSafeInteger(a)&&a>=0,"n must be a positive integer"),this.$_addRule({name:"maxArity",args:{n:a}})},validate:(a,b,{n:c})=>a.length<=c?a:b.error("function.maxArity",{n:c})}},messages:{"function.arity":"{{#label}} must have an arity of {{#n}}","function.class":"{{#label}} must be a class","function.maxArity":"{{#label}} must have an arity lesser or equal to {{#n}}","function.minArity":"{{#label}} must have an arity greater or equal to {{#n}}"}})},372780,(a,b,c)=>{"use strict";let{assert:d}=a.r(888690),e=a.r(63331),f=a.r(832612),g=a.r(610725),h=a.r(59019),i={};b.exports=e.extend({type:"link",properties:{schemaChain:!0},terms:{link:{init:null,manifest:"single",register:!1}},args:(a,b)=>a.ref(b),jsonSchema(a,b,c,d){if(!a.$_terms.link)return b;let{ref:e}=a.$_terms.link[0];return"root"===e.ancestor||e.ancestor>0?b.$ref=`#/${e.path.map(a=>`properties/${a}`).join("/")}`:1===e.path.length?b.$ref=`#/$defs/${e.path[0]}`:b.$ref=`#/${e.path.slice(1).map(a=>`properties/${a}`).join("/")}`,b},validate(a,{schema:b,state:c,prefs:e,error:f}){d(b.$_terms.link,"Uninitialized link schema");let g=b._flags.maxRecursion;if(void 0!==g&&c.schemas.filter(a=>a.schema===b).length>g)return{value:a,errors:f("link.maxRecursion",{limit:g})};let h=i.generate(b,a,c,e),j=b.$_terms.link[0].ref;try{return h.$_validate(a,c.nest(h,`link:${j.display}:${h.type}`),e)}catch(b){if(!(b instanceof RangeError))throw b;return{value:a,errors:f("link.depth")}}},generate:(a,b,c,d)=>i.generate(a,b,c,d),rules:{ref:{method(a){d(!this.$_terms.link,"Cannot reinitialize schema"),d("value"===(a=g.ref(a)).type||"local"===a.type,"Invalid reference type:",a.type),d("local"===a.type||"root"===a.ancestor||a.ancestor>0,"Link cannot reference itself");let b=this.clone();return b.$_terms.link=[{ref:a}],b}},relative:{method(a=!0){return this.$_setFlag("relative",a)}},maxRecursion:{method(a){return d(Number.isSafeInteger(a)&&a>=1,"limit must be a positive integer"),this.$_setFlag("maxRecursion",a)}}},messages:{"link.depth":"{{#label}} exceeds maximum recursion depth supported by the runtime","link.maxRecursion":"{{#label}} exceeds maximum recursion depth of {{#limit}}"},overrides:{concat(a){d(this.$_terms.link,"Uninitialized link schema"),d(f.isSchema(a),"Invalid schema object"),d("link"!==a.type,"Cannot merge type link with another link");let b=this.clone();return b.$_terms.whens||(b.$_terms.whens=[]),b.$_terms.whens.push({concat:a}),b.$_mutateRebuild()}},manifest:{build:(a,b)=>(d(b.link,"Invalid link description missing link"),a.ref(b.link))}}),i.generate=function(a,b,c,d){let e=c.mainstay.links.get(a);if(e)return e._generate(b,c,d).schema;let f=a.$_terms.link[0].ref,{perspective:g,path:h}=i.perspective(f,c);i.assert(g,"which is outside of schema boundaries",f,a,c,d);try{e=h.length?g.$_reach(h):g}catch{i.assert(!1,"to non-existing schema",f,a,c,d)}return i.assert("link"!==e.type,"which is another link",f,a,c,d),a._flags.relative||c.mainstay.links.set(a,e),e._generate(b,c,d).schema},i.perspective=function(a,b){if("local"===a.type){for(let{schema:c,key:d}of b.schemas){if((c._flags.id||d)===a.path[0])return{perspective:c,path:a.path.slice(1)};if(c.$_terms.shared){for(let b of c.$_terms.shared)if(b._flags.id===a.path[0])return{perspective:b,path:a.path.slice(1)}}}return{perspective:null,path:null}}return"root"===a.ancestor?{perspective:b.schemas[b.schemas.length-1].schema,path:a.path}:{perspective:b.schemas[a.ancestor]&&b.schemas[a.ancestor].schema,path:a.path}},i.assert=function(a,b,c,e,f,g){a||d(!1,`"${h.label(e._flags,f,g)}" contains link reference "${c.display}" ${b}`)}},395842,(a,b,c)=>{"use strict";let{assert:d}=a.r(888690),e=a.r(63331),f=a.r(832612),g={numberRx:/^\s*[+-]?(?:(?:\d+(?:\.\d*)?)|(?:\.\d+))(?:e([+-]?\d+))?\s*$/i,precisionRx:/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/,exponentialPartRegex:/[eE][+-]?\d+$/,leadingSignAndZerosRegex:/^[+-]?(0*)?/,dotRegex:/\./,trailingZerosRegex:/0+$/,decimalPlaces(a){let b=a.toString(),c=b.indexOf("."),d=b.indexOf("e");return(c<0?0:(d<0?b.length:d)-c-1)+(d<0?0:Math.max(0,-parseInt(b.slice(d+1))))}};b.exports=e.extend({type:"number",flags:{unsafe:{default:!1}},coerce:{from:"string",method(a,{schema:b,error:c}){if(!a.match(g.numberRx))return;let d={value:parseFloat(a=a.trim())};if(0===d.value&&(d.value=0),!b._flags.unsafe)if(a.match(/e/i))g.extractSignificantDigits(a)!==g.extractSignificantDigits(String(d.value))&&(d.errors=c("number.unsafe"));else{let b=d.value.toString();if(b.match(/e/i))return d;b!==g.normalizeDecimal(a)&&(d.errors=c("number.unsafe"))}return d}},validate(a,{schema:b,error:c,prefs:d}){if(a===1/0||a===-1/0)return{value:a,errors:c("number.infinity")};if(!f.isNumber(a))return{value:a,errors:c("number.base")};let e={value:a};if(d.convert){let a=b.$_getRule("precision");if(a){let b=Math.pow(10,a.args.limit);e.value=Math.round(e.value*b)/b}}return 0===e.value&&(e.value=0),!b._flags.unsafe&&(a>Number.MAX_SAFE_INTEGER||a<Number.MIN_SAFE_INTEGER)&&(e.errors=c("number.unsafe")),e},rules:{compare:{method:!1,validate:(a,b,{limit:c},{name:d,operator:e,args:g})=>f.compare(a,c,e)?a:b.error("number."+d,{limit:g.limit,value:a}),args:[{name:"limit",ref:!0,assert:f.isNumber,message:"must be a number"}]},greater:{method(a){return this.$_addRule({name:"greater",method:"compare",args:{limit:a},operator:">"})},jsonSchema:(a,b)=>(b.exclusiveMinimum=a.args.limit,b)},integer:{method(){return this.$_addRule("integer")},validate:(a,b)=>Math.trunc(a)-a==0?a:b.error("number.integer"),jsonSchema:(a,b)=>(b.type="integer",b)},less:{method(a){return this.$_addRule({name:"less",method:"compare",args:{limit:a},operator:"<"})},jsonSchema:(a,b)=>(b.exclusiveMaximum=a.args.limit,b)},max:{method(a){return this.$_addRule({name:"max",method:"compare",args:{limit:a},operator:"<="})},jsonSchema:(a,b)=>(b.maximum=a.args.limit,b)},min:{method(a){return this.$_addRule({name:"min",method:"compare",args:{limit:a},operator:">="})},jsonSchema:(a,b)=>(b.minimum=a.args.limit,b)},multiple:{method(a){let b="number"==typeof a?g.decimalPlaces(a):null,c=Math.pow(10,b);return this.$_addRule({name:"multiple",args:{base:a,baseDecimalPlace:b,pfactor:c}})},validate:(a,b,{base:c,baseDecimalPlace:d,pfactor:e},f)=>g.decimalPlaces(a)>d?b.error("number.multiple",{multiple:f.args.base,value:a}):Math.round(e*a)%Math.round(e*c)==0?a:b.error("number.multiple",{multiple:f.args.base,value:a}),jsonSchema:(a,b)=>(b.multipleOf=a.args.base,b),args:[{name:"base",ref:!0,assert:a=>"number"==typeof a&&isFinite(a)&&a>0,message:"must be a positive number"},"baseDecimalPlace","pfactor"],multi:!0},negative:{method(){return this.sign("negative")}},port:{method(){return this.$_addRule("port")},validate:(a,b)=>Number.isSafeInteger(a)&&a>=0&&a<=65535?a:b.error("number.port"),jsonSchema:(a,b)=>(b.type="integer",b.minimum=0,b.maximum=65535,b)},positive:{method(){return this.sign("positive")}},precision:{method(a){return d(Number.isSafeInteger(a),"limit must be an integer"),this.$_addRule({name:"precision",args:{limit:a}})},validate(a,b,{limit:c}){let d=a.toString().match(g.precisionRx);return Math.max((d[1]?d[1].length:0)-(d[2]?parseInt(d[2],10):0),0)<=c?a:b.error("number.precision",{limit:c,value:a})},convert:!0},sign:{method(a){return d(["negative","positive"].includes(a),"Invalid sign",a),this.$_addRule({name:"sign",args:{sign:a}})},validate:(a,b,{sign:c})=>"negative"===c&&a<0||"positive"===c&&a>0?a:b.error(`number.${c}`),jsonSchema:(a,b)=>("positive"===a.args.sign?b.exclusiveMinimum=0:b.exclusiveMaximum=0,b)},unsafe:{method(a=!0){return d("boolean"==typeof a,"enabled must be a boolean"),this.$_setFlag("unsafe",a)}}},cast:{string:{from:a=>"number"==typeof a,to:(a,b)=>a.toString()}},messages:{"number.base":"{{#label}} must be a number","number.greater":"{{#label}} must be greater than {{#limit}}","number.infinity":"{{#label}} cannot be infinity","number.integer":"{{#label}} must be an integer","number.less":"{{#label}} must be less than {{#limit}}","number.max":"{{#label}} must be less than or equal to {{#limit}}","number.min":"{{#label}} must be greater than or equal to {{#limit}}","number.multiple":"{{#label}} must be a multiple of {{#multiple}}","number.negative":"{{#label}} must be a negative number","number.port":"{{#label}} must be a valid port","number.positive":"{{#label}} must be a positive number","number.precision":"{{#label}} must have no more than {{#limit}} decimal places","number.unsafe":"{{#label}} must be a safe number"}}),g.extractSignificantDigits=function(a){return a.replace(g.exponentialPartRegex,"").replace(g.dotRegex,"").replace(g.trailingZerosRegex,"").replace(g.leadingSignAndZerosRegex,"")},g.normalizeDecimal=function(a){return((a=a.replace(/^\+/,"").replace(/\.0*$/,"").replace(/^(-?)\.([^\.]*)$/,"$10.$2").replace(/^(-?)0+([0-9])/,"$1$2")).includes(".")&&a.endsWith("0")&&(a=a.replace(/0+$/,"")),"-0"===a)?"0":a}},757024,(a,b,c)=>{"use strict";b.exports=a.r(838832).extend({type:"object",cast:{map:{from:a=>a&&"object"==typeof a,to:(a,b)=>new Map(Object.entries(a))}}})},592949,a=>{"use strict";let b;var c=a.i(687769),d=a.i(761095),e=a.i(857764);let f=/^xn--/,g=/[^\0-\x7F]/,h=/[\x2E\u3002\uFF0E\uFF61]/g,i={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},j=Math.floor,k=String.fromCharCode;function l(a){throw RangeError(i[a])}function m(a,b){let c=a.split("@"),d="";return c.length>1&&(d=c[0]+"@",a=c[1]),d+(function(a,b){let c=[],d=a.length;for(;d--;)c[d]=b(a[d]);return c})((a=a.replace(h,".")).split("."),b).join(".")}let n=function(a,b){return a+22+75*Number(a<26)-(Number(0!=b)<<5)},o=function(a,b,c){let d=0;for(a=c?j(a/700):a>>1,a+=j(a/b);a>455;d+=36)a=j(a/35);return j(d+36*a/(a+38))},p=function(a){let b=[],c=a.length,d=0,e=128,f=72,g=a.lastIndexOf("-");g<0&&(g=0);for(let c=0;c<g;++c)a.charCodeAt(c)>=128&&l("not-basic"),b.push(a.charCodeAt(c));for(let i=g>0?g+1:0;i<c;){let g=d;for(let b=1,e=36;;e+=36){var h;i>=c&&l("invalid-input");let g=(h=a.charCodeAt(i++))>=48&&h<58?26+(h-48):h>=65&&h<91?h-65:h>=97&&h<123?h-97:36;g>=36&&l("invalid-input"),g>j((0x7fffffff-d)/b)&&l("overflow"),d+=g*b;let k=e<=f?1:e>=f+26?26:e-f;if(g<k)break;let m=36-k;b>j(0x7fffffff/m)&&l("overflow"),b*=m}let k=b.length+1;f=o(d-g,k,0==g),j(d/k)>0x7fffffff-e&&l("overflow"),e+=j(d/k),d%=k,b.splice(d++,0,e)}return String.fromCodePoint(...b)},q=function(a){let b=[],c=function(a){let b=[],c=0,d=a.length;for(;c<d;){let e=a.charCodeAt(c++);if(e>=55296&&e<=56319&&c<d){let d=a.charCodeAt(c++);(64512&d)==56320?b.push(((1023&e)<<10)+(1023&d)+65536):(b.push(e),c--)}else b.push(e)}return b}(a),d=c.length,e=128,f=0,g=72;for(let a of c)a<128&&b.push(k(a));let h=b.length,i=h;for(h&&b.push("-");i<d;){let a=0x7fffffff;for(let b of c)b>=e&&b<a&&(a=b);let d=i+1;for(let m of(a-e>j((0x7fffffff-f)/d)&&l("overflow"),f+=(a-e)*d,e=a,c))if(m<e&&++f>0x7fffffff&&l("overflow"),m===e){let a=f;for(let c=36;;c+=36){let d=c<=g?1:c>=g+26?26:c-g;if(a<d)break;let e=a-d,f=36-d;b.push(k(n(d+e%f,0))),a=j(e/f)}b.push(k(n(a,0))),g=o(f,d,i===h),f=0,++i}++f,++e}return b.join("")},r=function(a){return m(a,function(a){return g.test(a)?"xn--"+q(a):a})},s=/^([a-zA-Z][a-zA-Z0-9+.-]*:)(?!\/\/)([\s\S]+)$/,t=/^[\x00-\x20]+|[\x00-\x20]+$/g,u=/^[\x00-\x20\u00a0\ufeff]+/,v=/^([a-zA-Z0-9+.-]+:)?[\\/]{2}([^\\/?#]*)/,w=/[\x00-\x20#/:<>?@[\\\]^|\x7f]/,x=/[\x00-\x1f\x7f]/;function y(a,b,c,f){let g=e.default.parse(a,b,f),h=v.exec(a.replace(u,""));if(h&&(h[1]||null!==g.hostname)){let a=h[2].slice(h[2].lastIndexOf("@")+1);if(!a||x.test(a)||(g.host||"").toLowerCase()!==r(a.toLowerCase())||"["===a.charAt(0)&&!d.default.isIPv6(a.slice(1,a.indexOf("]"))))throw c}else if(null!==g.hostname)throw c;let i=null===g.auth||void 0===g.auth?null:g.auth.split(":");return g.username=i?i.shift():null,g.password=i&&i.length?i.join(":"):null,g}function z(a){try{return decodeURIComponent(a)}catch(b){return a}}let A=(a,b)=>{let c,d;a=(a||"").replace(t,"");let f=s.exec(a),g=f?f[1]+"//"+f[2]:a;try{c=new URL(g)}catch(a){return y(g,b,a)}let h=function(a,b){let c=a||"";if(!c)return"";if("["===c.charAt(0)&&"]"===c.charAt(c.length-1))return c.slice(1,-1);let d=z(c),f=w.test(d)?"":e.default.domainToASCII(d);if(!f){let a;throw(a=TypeError("Invalid URL")).code="ERR_INVALID_URL",a.input=b,a}return f}(c.hostname,c.href),i=c.port||null,j=c.pathname||null,k=c.search||null,l=null,m=null,n=null;if((c.username||c.password)&&(l=(m=z(c.username))+(null!==(n=c.password?z(c.password):null)?":"+n:"")),b){let a=Object.create(null);c.searchParams.forEach((b,c)=>{if(Object.prototype.hasOwnProperty.call(a,c)){let d=a[c];Array.isArray(d)?d.push(b):a[c]=[d,b]}else a[c]=b}),d=a}else d=k?k.slice(1):null;return{protocol:c.protocol||null,host:c.host||null,hostname:h,port:i,pathname:j,search:k,path:(j||"")+(k||"")||null,href:c.href,auth:l,username:m,password:n,query:d}};var B=a.i(812057),C=a.i(902157),D=a.i(347299),E=a.i(743698),F=a.i(727028),G=a.i(81111);let H=class{constructor(a){this.options=a||{},this.cookies=[]}set(a,b){let c,e=A(b||""),f=this.parse(a);return f.domain?(c=f.domain.replace(/^\./,""),(e.hostname.length<c.length||0>c.indexOf(".")||c.endsWith(".")||d.default.isIP(e.hostname)||!("."+e.hostname).endsWith("."+c))&&(f.domain=e.hostname)):f.domain=e.hostname,f.path||(f.path=this.getPath(e.pathname)),f.expires||(f.expires=new Date(Date.now()+1e3*(Number(this.options.sessionTimeout||1800)||1800))),this.add(f)}get(a){return this.list(a).map(a=>a.name+"="+a.value).join("; ")}list(a){let b=[];for(let c=this.cookies.length-1;c>=0;c--){let d=this.cookies[c];if(this.isExpired(d)){this.cookies.splice(c,1);continue}this.match(d,a)&&b.unshift(d)}return b}parse(a){let b={};return(a||"").toString().split(";").forEach(a=>{let c,d=a.split("="),e=d.shift().trim().toLowerCase(),f=d.join("=").trim();if(e)switch(e){case"expires":{let a=new Date(f);"Invalid Date"!==a.toString()&&(b.expires=a);break}case"path":b.path=f;break;case"domain":(c=f.toLowerCase()).length&&"."!==c.charAt(0)&&(c="."+c),b.domain=c;break;case"max-age":b.expires=new Date(Date.now()+1e3*(Number(f)||0));break;case"secure":b.secure=!0;break;case"httponly":b.httponly=!0;break;default:b.name||(b.name=e,b.value=f)}}),b}match(a,b){let c=A(b||"");if(c.hostname!==a.domain&&("."!==a.domain.charAt(0)||("."+c.hostname).substr(-a.domain.length)!==a.domain))return!1;let d=c.pathname||"/",e=a.path;return!!(d===e||d.startsWith(e)&&(e.endsWith("/")||"/"===d.charAt(e.length)))&&(!a.secure||"https:"===c.protocol)}add(a){if(!a||!a.name)return!1;for(let b=0,c=this.cookies.length;b<c;b++)if(this.compare(this.cookies[b],a)){if(this.isExpired(a))return this.cookies.splice(b,1),!1;return this.cookies[b]=a,!0}return this.isExpired(a)||this.cookies.push(a),!0}compare(a,b){return a.name===b.name&&a.path===b.path&&a.domain===b.domain&&a.secure===b.secure&&a.httponly===b.httponly}isExpired(a){return a.expires&&a.expires<new Date||!a.value}getPath(a){let b=(a||"/").split("/");b.pop();let c=b.join("/").trim();return"/"!==c.charAt(0)?"/":c}},I="10.0.12",J="ECONNECTION",K="ENOAUTH",L="EOAUTH2",M="EMAXLIMIT",N="ESENDMAIL",O="ECONFIG",P="EPROXY",Q="EFILEACCESS",R="EURLACCESS",S="EFETCH",T=a=>"__proto__"===a,U=(a,b,c)=>(Object.keys(b||{}).forEach(d=>{T(d)||c&&c(d)||(a[d]=b[d])}),a),V=["ALPNProtocols","ca","cert","checkServerIdentity","ciphers","crl","dhparam","ecdhCurve","honorCipherOrder","key","maxVersion","minVersion","passphrase","pfx","rejectUnauthorized","secureContext","secureOptions","secureProtocol","servername","sessionIdContext","sigalgs"];function W(a){let b;try{b=A(a)}catch(a){return!1}return("http:"===b.protocol||"https:"===b.protocol)&&b}function X(a,b){let c,f,g;(b=b||{}).fetchRes=b.fetchRes||new G.PassThrough,b.cookies=b.cookies||new H,b.redirects=b.redirects||0,b.maxRedirects=isNaN(b.maxRedirects)?5:b.maxRedirects;let h=b.fetchRes,i=W(a);if(!i)return b.body&&"function"==typeof b.body.destroy&&(b.body.on("error",()=>!1),b.body.destroy()),setImmediate(()=>{let b=Error("Unsupported protocol for URL "+a);b.code=S,b.sourceUrl=a,h.emit("error",b)}),h;b.cookie&&([].concat(b.cookie||[]).forEach(c=>{b.cookies.set(c,a)}),b.cookie=!1);let j=(b.method||"").toString().trim().toUpperCase()||"GET",k=!1,l="https:"===i.protocol?E.default:D.default,m={"accept-encoding":"gzip,deflate","user-agent":"nodemailer/"+I};if(Object.keys(b.headers||{}).forEach(a=>{T(a.toLowerCase().trim())||(m[a.toLowerCase().trim()]=b.headers[a])}),b.userAgent&&(m["user-agent"]=b.userAgent),i.auth&&(m.Authorization="Basic "+Buffer.from(i.auth).toString("base64")),(c=b.cookies.get(a))&&(m.cookie=c),b.body){if(!1!==b.contentType&&(m["Content-Type"]=b.contentType||"application/x-www-form-urlencoded"),"function"==typeof b.body.pipe)m["Transfer-Encoding"]="chunked",(f=b.body).on("error",b=>{k||(k=!0,b.code=S,b.sourceUrl=a,h.emit("error",b))});else{if(b.body instanceof Buffer)f=b.body;else if("object"==typeof b.body)try{f=Buffer.from(Object.keys(b.body).map(a=>{let c=b.body[a].toString().trim();return encodeURIComponent(a)+"="+encodeURIComponent(c)}).join("&"))}catch(b){return k=!0,b.code=S,b.sourceUrl=a,setImmediate(()=>h.emit("error",b)),h}else f=Buffer.from(b.body.toString().trim());m["Content-Type"]=b.contentType||"application/x-www-form-urlencoded",m["Content-Length"]=f.length}j=(b.method||"").toString().trim().toUpperCase()||"POST"}let n={method:j,host:i.hostname,path:i.path,port:i.port?i.port:"https:"===i.protocol?443:80,headers:m,rejectUnauthorized:!0,agent:!1};b.tls&&Object.keys(b.tls).forEach(a=>{V.includes(a)&&(n[a]=b.tls[a])}),"https:"!==i.protocol||!i.hostname||i.hostname===n.host||d.default.isIP(i.hostname)||n.servername||(n.servername=i.hostname);try{g=l.request(n)}catch(b){return k=!0,setImmediate(()=>{b.code=S,b.sourceUrl=a,h.emit("error",b)}),h}let o=(b,c=a)=>{k||(k=!0,b.code=S,b.sourceUrl=c,h.emit("error",b),g.abort())},p="number"==typeof b.timeout&&b.timeout>=0?b.timeout:6e4;return p&&g.setTimeout(p,()=>o(Error("Request Timeout"))),g.on("error",a=>o(a)),g.on("response",c=>{let d;if(k)return;switch(c.headers["content-encoding"]){case"gzip":case"deflate":d=F.default.createUnzip()}if(c.headers["set-cookie"]&&[].concat(c.headers["set-cookie"]||[]).forEach(c=>{b.cookies.set(c,a)}),[301,302,303,307,308].includes(c.statusCode)&&c.headers.location){let d;if(b.redirects++,b.redirects>b.maxRedirects)return o(Error("Maximum redirect count exceeded"));b.method="GET",b.body=!1;try{d=((a,b)=>{try{return new URL(b,a).href}catch(c){return y(a,!1,c,!0),y(b,!1,c,!0),e.default.resolve(a,b)}})(a,c.headers.location)}catch(a){d=c.headers.location}let f=W(d);if(!f)return o(Error("Unsupported protocol for URL "+d),d);let h=f.hostname!==i.hostname,j="https:"===i.protocol&&"http:"===f.protocol;if(b.headers&&(h||j)){let a=["authorization","cookie","proxy-authorization"];Object.keys(b.headers).forEach(c=>{a.includes(c.toLowerCase())&&delete b.headers[c]})}return k=!0,c.resume(),g.abort(),X(d,b)}if(h.statusCode=c.statusCode,h.headers=c.headers,c.statusCode>=300&&!b.allowErrorResponse)return o(Error("Invalid status code "+c.statusCode));c.on("error",a=>o(a));let f="number"==typeof b.maxBytes&&b.maxBytes>0?b.maxBytes:0x4000000,j=d||c,l=0;j.on("data",a=>{(l+=a.length)<=f||k||(j.unpipe(h),o(Error("Response size exceeds the allowed "+f+" bytes")))}),d?(c.pipe(d).pipe(h),d.on("error",a=>o(a))):c.pipe(h)}),setImmediate(()=>{if(f)try{if("function"==typeof f.pipe)return f.pipe(g);g.write(f)}catch(a){return o(a)}g.end()}),h}X.Cookies=H,X.DEFAULT_TIMEOUT=6e4;var Y=a.i(495879),Z=a.i(660526);let $=0;try{b=Z.default.networkInterfaces()}catch(a){}let _=(a,c)=>{let d=Object.values(b||{}).flat();return!d.length||d.filter(a=>!a.internal||c).some(b=>b.family==="IPv"+a||b.family===a)},aa=(a,b,c,d)=>{if(!_(a,(c=c||{}).allowInternalNetworkInterfaces))return d(null,[]);(Y.default.Resolver?new Y.default.Resolver(c):Y.default)["resolve"+a](b,(a,b)=>{if(a){switch(a.code){case Y.default.NODATA:case Y.default.NOTFOUND:case Y.default.NOTIMP:case Y.default.SERVFAIL:case Y.default.CONNREFUSED:case Y.default.REFUSED:case"EAI_AGAIN":return d(null,[])}return d(a)}return d(null,Array.isArray(b)?b:[].concat(b||[]))})},ab=new Map,ac=(a,b)=>{if(!a)return Object.assign({},b||{});let c=a.addresses||[];return Object.assign({host:c.length>0?c[Math.floor(Math.random()*c.length)]:null,_addresses:c},b||{})},ad=a=>{let b={},c=A(a=a||"",!0);switch(c.protocol){case"smtp:":b.secure=!1;break;case"smtps:":b.secure=!0;break;case"direct:":b.direct=!0}return!isNaN(c.port)&&Number(c.port)&&(b.port=Number(c.port)),c.hostname&&(b.host=c.hostname),(c.username||c.password)&&(b.auth={user:c.username||"",pass:c.password||""}),Object.keys(c.query||{}).forEach(a=>{let d=b,e=a,f=c.query[a];switch(!isNaN(f)&&(f=Number(f)),f){case"true":f=!0;break;case"false":f=!1}if(0===a.indexOf("tls."))e=a.substr(4),b.tls||(b.tls={}),d=b.tls;else if(a.indexOf(".")>=0)return;T(e)||e in d||(d[e]=f)}),b},ae=(a,b)=>{var c;let d,e,f,g,h={},i=["trace","debug","info","warn","error","fatal"];if(!(a=a||{}).logger)return i.forEach(a=>{h[a]=()=>!1}),h;let j=!0===a.logger?(d=(c=i).reduce((a,b)=>Math.max(a,b.length),0),e=new Map,c.forEach(a=>{let b=a.toUpperCase();b.length<d&&(b+=" ".repeat(d-b.length)),e.set(a,b)}),f=(a,b,c,...d)=>{let f="";b&&("server"===b.tnx?f="S: ":"client"===b.tnx&&(f="C: "),b.sid&&(f="["+b.sid+"] "+f),b.cid&&(f="[#"+b.cid+"] "+f)),(c=B.default.format(c,...d)).split(/\r?\n/).forEach(b=>{console.log("[%s] %s %s",new Date().toISOString().substr(0,19).replace(/T/," "),e.get(a),f+b)})},g={},c.forEach(a=>{g[a]=f.bind(null,a)}),g):a.logger;return i.forEach(a=>{h[a]=(...c)=>{((a,b,c,d,e,...f)=>{let g=Object.assign({},c||{},d||{});delete g.level;let h=b;"function"!=typeof a[h]&&(h=["info","debug","log","trace","warn","error"].find(b=>"function"==typeof a[b])),h&&a[h](g,e,...f)})(j,a,b,"string"==typeof c[0]?void 0:c.shift(),...c)}}),h},af=(a,b)=>function(...c){let d=c.shift();d?b(d):a(...c)},ag=a=>{let b,c;if("string"!=typeof a||!a.startsWith("data:"))return null;let d=a.indexOf(",");if(-1===d)return null;let e=a.substring(d+1),f=a.substring(5,d).split(";");if(f.length>0){let a=f[f.length-1].toLowerCase().trim();["base64","utf8","utf-8"].includes(a)&&-1===a.indexOf("=")&&(b=a,f.pop())}let g=f.length>0?f.shift():"application/octet-stream",h={};for(let a=0;a<f.length;a++){let b=f[a],c=b.indexOf("=");if(c>0){let a=b.substring(0,c).trim(),d=b.substring(c+1).trim();a&&!T(a)&&(h[a]=d)}}try{if("base64"===b)c=Buffer.from(e,"base64");else try{c=Buffer.from(decodeURIComponent(e))}catch(a){c=Buffer.from(e)}}catch(a){c=Buffer.alloc(0)}return{data:c,encoding:b||null,contentType:g||"application/octet-stream",params:h}};function ah(a,b,c,d){let e;return d||"function"!=typeof c||(d=c,c=!1),c=c||{},d||(e=new Promise((a,b)=>{d=af(a,b)})),function(a,b,c,d){let e=a&&a[b]&&a[b].content||a[b],f=("object"==typeof a[b]&&a[b].encoding||"utf8").toString().toLowerCase().replace(/[-_\s]/g,"");if(!e)return d(null,e);if("object"==typeof e){if("function"==typeof e.pipe)return ak(e,(c,e)=>{if(c)return d(c);a[b].content?a[b].content=e:a[b]=e,d(null,e)});else if(/^data:/i.test(e.path||e.href)){let a=ag(e.path||e.href);return d(null,a&&a.data?a.data:Buffer.alloc(0))}else if(e.href||/^https?:\/\//i.test(e.path)){let a=e.href||e.path;return c.disableUrlAccess?setImmediate(()=>{let b=Error("Url access rejected for "+a);b.code=R,d(b)}):ak(X(a,{headers:e.httpHeaders,tls:e.tls}),d)}else if(e.path)return c.disableFileAccess?setImmediate(()=>{let a=Error("File access rejected for "+e.path);a.code=Q,d(a)}):ak(C.default.createReadStream(e.path),d)}"string"!=typeof a[b].content||["utf8","usascii","ascii"].includes(f)||(e=Buffer.from(a[b].content,f)),setImmediate(()=>d(null,e))}(a,b,c,d),e}let ai=function(...a){let b=a.shift()||{};return a.forEach(a=>{Object.keys(a||{}).forEach(c=>{T(c)||(["tls","auth"].includes(c)&&a[c]&&"object"==typeof a[c]?b[c]=U(b[c]||{},a[c]):b[c]=a[c])})}),b},aj=a=>{if(!/[^\x21-\x2A\x2C-\x3C\x3E-\x7E]/.test(a))return a;let b=Buffer.from(a),c="";for(let a=0,d=b.length;a<d;a++){let d=b[a];d<33||d>126||43===d||61===d?c+="+"+(d<16?"0":"")+d.toString(16).toUpperCase():c+=String.fromCharCode(d)}return c};function ak(a,b){let c=!1,d=[],e=0;a.on("error",a=>{c||(c=!0,b(a))}),a.on("readable",()=>{let b;for(;null!==(b=a.read());)d.push(b),e+=b.length}),a.on("end",()=>{let a;if(!c){c=!0;try{a=Buffer.concat(d,e)}catch(a){return b(a)}b(null,a)}})}var al=a.i(750227);let am="application/octet-stream",an=new Map([["application/acad","dwg"],["application/applixware","aw"],["application/arj","arj"],["application/atom+xml","xml"],["application/atomcat+xml","atomcat"],["application/atomsvc+xml","atomsvc"],["application/base64",["mm","mme"]],["application/binhex","hqx"],["application/binhex4","hqx"],["application/book",["book","boo"]],["application/ccxml+xml,","ccxml"],["application/cdf","cdf"],["application/cdmi-capability","cdmia"],["application/cdmi-container","cdmic"],["application/cdmi-domain","cdmid"],["application/cdmi-object","cdmio"],["application/cdmi-queue","cdmiq"],["application/clariscad","ccad"],["application/commonground","dp"],["application/cu-seeme","cu"],["application/davmount+xml","davmount"],["application/drafting","drw"],["application/dsptype","tsp"],["application/dssc+der","dssc"],["application/dssc+xml","xdssc"],["application/dxf","dxf"],["application/ecmascript",["js","es"]],["application/emma+xml","emma"],["application/envoy","evy"],["application/epub+zip","epub"],["application/excel",["xls","xl","xla","xlb","xlc","xld","xlk","xll","xlm","xlt","xlv","xlw"]],["application/exi","exi"],["application/font-tdpfr","pfr"],["application/fractals","fif"],["application/freeloader","frl"],["application/futuresplash","spl"],["application/geo+json","geojson"],["application/gnutar","tgz"],["application/groupwise","vew"],["application/hlp","hlp"],["application/hta","hta"],["application/hyperstudio","stk"],["application/i-deas","unv"],["application/iges",["iges","igs"]],["application/inf","inf"],["application/internet-property-stream","acx"],["application/ipfix","ipfix"],["application/java","class"],["application/java-archive","jar"],["application/java-byte-code","class"],["application/java-serialized-object","ser"],["application/java-vm","class"],["application/javascript","js"],["application/json","json"],["application/lha","lha"],["application/lzx","lzx"],["application/mac-binary","bin"],["application/mac-binhex","hqx"],["application/mac-binhex40","hqx"],["application/mac-compactpro","cpt"],["application/macbinary","bin"],["application/mads+xml","mads"],["application/marc","mrc"],["application/marcxml+xml","mrcx"],["application/mathematica","ma"],["application/mathml+xml","mathml"],["application/mbedlet","mbd"],["application/mbox","mbox"],["application/mcad","mcd"],["application/mediaservercontrol+xml","mscml"],["application/metalink4+xml","meta4"],["application/mets+xml","mets"],["application/mime","aps"],["application/mods+xml","mods"],["application/mp21","m21"],["application/mp4","mp4"],["application/mspowerpoint",["ppt","pot","pps","ppz"]],["application/msword",["doc","dot","w6w","wiz","word"]],["application/mswrite","wri"],["application/mxf","mxf"],["application/netmc","mcp"],["application/octet-stream",["*"]],["application/oda","oda"],["application/oebps-package+xml","opf"],["application/ogg","ogx"],["application/olescript","axs"],["application/onenote","onetoc"],["application/patch-ops-error+xml","xer"],["application/pdf","pdf"],["application/pgp-encrypted","asc"],["application/pgp-signature","pgp"],["application/pics-rules","prf"],["application/pkcs-12","p12"],["application/pkcs-crl","crl"],["application/pkcs10","p10"],["application/pkcs7-mime",["p7c","p7m"]],["application/pkcs7-signature","p7s"],["application/pkcs8","p8"],["application/pkix-attr-cert","ac"],["application/pkix-cert",["cer","crt"]],["application/pkix-crl","crl"],["application/pkix-pkipath","pkipath"],["application/pkixcmp","pki"],["application/plain","text"],["application/pls+xml","pls"],["application/postscript",["ps","ai","eps"]],["application/powerpoint","ppt"],["application/pro_eng",["part","prt"]],["application/prs.cww","cww"],["application/pskc+xml","pskcxml"],["application/rdf+xml","rdf"],["application/reginfo+xml","rif"],["application/relax-ng-compact-syntax","rnc"],["application/resource-lists+xml","rl"],["application/resource-lists-diff+xml","rld"],["application/ringing-tones","rng"],["application/rls-services+xml","rs"],["application/rsd+xml","rsd"],["application/rss+xml","xml"],["application/rtf",["rtf","rtx"]],["application/sbml+xml","sbml"],["application/scvp-cv-request","scq"],["application/scvp-cv-response","scs"],["application/scvp-vp-request","spq"],["application/scvp-vp-response","spp"],["application/sdp","sdp"],["application/sea","sea"],["application/set","set"],["application/set-payment-initiation","setpay"],["application/set-registration-initiation","setreg"],["application/shf+xml","shf"],["application/sla","stl"],["application/smil",["smi","smil"]],["application/smil+xml","smi"],["application/solids","sol"],["application/sounder","sdr"],["application/sparql-query","rq"],["application/sparql-results+xml","srx"],["application/srgs","gram"],["application/srgs+xml","grxml"],["application/sru+xml","sru"],["application/ssml+xml","ssml"],["application/step",["step","stp"]],["application/streamingmedia","ssm"],["application/tei+xml","tei"],["application/thraud+xml","tfi"],["application/timestamped-data","tsd"],["application/toolbook","tbk"],["application/vda","vda"],["application/vnd.3gpp.pic-bw-large","plb"],["application/vnd.3gpp.pic-bw-small","psb"],["application/vnd.3gpp.pic-bw-var","pvb"],["application/vnd.3gpp2.tcap","tcap"],["application/vnd.3m.post-it-notes","pwn"],["application/vnd.accpac.simply.aso","aso"],["application/vnd.accpac.simply.imp","imp"],["application/vnd.acucobol","acu"],["application/vnd.acucorp","atc"],["application/vnd.adobe.air-application-installer-package+zip","air"],["application/vnd.adobe.fxp","fxp"],["application/vnd.adobe.xdp+xml","xdp"],["application/vnd.adobe.xfdf","xfdf"],["application/vnd.ahead.space","ahead"],["application/vnd.airzip.filesecure.azf","azf"],["application/vnd.airzip.filesecure.azs","azs"],["application/vnd.amazon.ebook","azw"],["application/vnd.americandynamics.acc","acc"],["application/vnd.amiga.ami","ami"],["application/vnd.android.package-archive","apk"],["application/vnd.anser-web-certificate-issue-initiation","cii"],["application/vnd.anser-web-funds-transfer-initiation","fti"],["application/vnd.antix.game-component","atx"],["application/vnd.apple.installer+xml","mpkg"],["application/vnd.apple.mpegurl","m3u8"],["application/vnd.aristanetworks.swi","swi"],["application/vnd.audiograph","aep"],["application/vnd.blueice.multipass","mpm"],["application/vnd.bmi","bmi"],["application/vnd.businessobjects","rep"],["application/vnd.chemdraw+xml","cdxml"],["application/vnd.chipnuts.karaoke-mmd","mmd"],["application/vnd.cinderella","cdy"],["application/vnd.claymore","cla"],["application/vnd.cloanto.rp9","rp9"],["application/vnd.clonk.c4group","c4g"],["application/vnd.cluetrust.cartomobile-config","c11amc"],["application/vnd.cluetrust.cartomobile-config-pkg","c11amz"],["application/vnd.commonspace","csp"],["application/vnd.contact.cmsg","cdbcmsg"],["application/vnd.cosmocaller","cmc"],["application/vnd.crick.clicker","clkx"],["application/vnd.crick.clicker.keyboard","clkk"],["application/vnd.crick.clicker.palette","clkp"],["application/vnd.crick.clicker.template","clkt"],["application/vnd.crick.clicker.wordbank","clkw"],["application/vnd.criticaltools.wbs+xml","wbs"],["application/vnd.ctc-posml","pml"],["application/vnd.cups-ppd","ppd"],["application/vnd.curl.car","car"],["application/vnd.curl.pcurl","pcurl"],["application/vnd.data-vision.rdz","rdz"],["application/vnd.denovo.fcselayout-link","fe_launch"],["application/vnd.dna","dna"],["application/vnd.dolby.mlp","mlp"],["application/vnd.dpgraph","dpg"],["application/vnd.dreamfactory","dfac"],["application/vnd.dvb.ait","ait"],["application/vnd.dvb.service","svc"],["application/vnd.dynageo","geo"],["application/vnd.ecowin.chart","mag"],["application/vnd.enliven","nml"],["application/vnd.epson.esf","esf"],["application/vnd.epson.msf","msf"],["application/vnd.epson.quickanime","qam"],["application/vnd.epson.salt","slt"],["application/vnd.epson.ssf","ssf"],["application/vnd.eszigno3+xml","es3"],["application/vnd.ezpix-album","ez2"],["application/vnd.ezpix-package","ez3"],["application/vnd.fdf","fdf"],["application/vnd.fdsn.seed","seed"],["application/vnd.flographit","gph"],["application/vnd.fluxtime.clip","ftc"],["application/vnd.framemaker","fm"],["application/vnd.frogans.fnc","fnc"],["application/vnd.frogans.ltf","ltf"],["application/vnd.fsc.weblaunch","fsc"],["application/vnd.fujitsu.oasys","oas"],["application/vnd.fujitsu.oasys2","oa2"],["application/vnd.fujitsu.oasys3","oa3"],["application/vnd.fujitsu.oasysgp","fg5"],["application/vnd.fujitsu.oasysprs","bh2"],["application/vnd.fujixerox.ddd","ddd"],["application/vnd.fujixerox.docuworks","xdw"],["application/vnd.fujixerox.docuworks.binder","xbd"],["application/vnd.fuzzysheet","fzs"],["application/vnd.genomatix.tuxedo","txd"],["application/vnd.geogebra.file","ggb"],["application/vnd.geogebra.tool","ggt"],["application/vnd.geometry-explorer","gex"],["application/vnd.geonext","gxt"],["application/vnd.geoplan","g2w"],["application/vnd.geospace","g3w"],["application/vnd.gmx","gmx"],["application/vnd.google-earth.kml+xml","kml"],["application/vnd.google-earth.kmz","kmz"],["application/vnd.grafeq","gqf"],["application/vnd.groove-account","gac"],["application/vnd.groove-help","ghf"],["application/vnd.groove-identity-message","gim"],["application/vnd.groove-injector","grv"],["application/vnd.groove-tool-message","gtm"],["application/vnd.groove-tool-template","tpl"],["application/vnd.groove-vcard","vcg"],["application/vnd.hal+xml","hal"],["application/vnd.handheld-entertainment+xml","zmm"],["application/vnd.hbci","hbci"],["application/vnd.hhe.lesson-player","les"],["application/vnd.hp-hpgl",["hgl","hpg","hpgl"]],["application/vnd.hp-hpid","hpid"],["application/vnd.hp-hps","hps"],["application/vnd.hp-jlyt","jlt"],["application/vnd.hp-pcl","pcl"],["application/vnd.hp-pclxl","pclxl"],["application/vnd.hydrostatix.sof-data","sfd-hdstx"],["application/vnd.hzn-3d-crossword","x3d"],["application/vnd.ibm.minipay","mpy"],["application/vnd.ibm.modcap","afp"],["application/vnd.ibm.rights-management","irm"],["application/vnd.ibm.secure-container","sc"],["application/vnd.iccprofile","icc"],["application/vnd.igloader","igl"],["application/vnd.immervision-ivp","ivp"],["application/vnd.immervision-ivu","ivu"],["application/vnd.insors.igm","igm"],["application/vnd.intercon.formnet","xpw"],["application/vnd.intergeo","i2g"],["application/vnd.intu.qbo","qbo"],["application/vnd.intu.qfx","qfx"],["application/vnd.ipunplugged.rcprofile","rcprofile"],["application/vnd.irepository.package+xml","irp"],["application/vnd.is-xpr","xpr"],["application/vnd.isac.fcs","fcs"],["application/vnd.jam","jam"],["application/vnd.jcp.javame.midlet-rms","rms"],["application/vnd.jisp","jisp"],["application/vnd.joost.joda-archive","joda"],["application/vnd.kahootz","ktz"],["application/vnd.kde.karbon","karbon"],["application/vnd.kde.kchart","chrt"],["application/vnd.kde.kformula","kfo"],["application/vnd.kde.kivio","flw"],["application/vnd.kde.kontour","kon"],["application/vnd.kde.kpresenter","kpr"],["application/vnd.kde.kspread","ksp"],["application/vnd.kde.kword","kwd"],["application/vnd.kenameaapp","htke"],["application/vnd.kidspiration","kia"],["application/vnd.kinar","kne"],["application/vnd.koan","skp"],["application/vnd.kodak-descriptor","sse"],["application/vnd.las.las+xml","lasxml"],["application/vnd.llamagraphics.life-balance.desktop","lbd"],["application/vnd.llamagraphics.life-balance.exchange+xml","lbe"],["application/vnd.lotus-1-2-3","123"],["application/vnd.lotus-approach","apr"],["application/vnd.lotus-freelance","pre"],["application/vnd.lotus-notes","nsf"],["application/vnd.lotus-organizer","org"],["application/vnd.lotus-screencam","scm"],["application/vnd.lotus-wordpro","lwp"],["application/vnd.macports.portpkg","portpkg"],["application/vnd.mcd","mcd"],["application/vnd.medcalcdata","mc1"],["application/vnd.mediastation.cdkey","cdkey"],["application/vnd.mfer","mwf"],["application/vnd.mfmp","mfm"],["application/vnd.micrografx.flo","flo"],["application/vnd.micrografx.igx","igx"],["application/vnd.mif","mif"],["application/vnd.mobius.daf","daf"],["application/vnd.mobius.dis","dis"],["application/vnd.mobius.mbk","mbk"],["application/vnd.mobius.mqy","mqy"],["application/vnd.mobius.msl","msl"],["application/vnd.mobius.plc","plc"],["application/vnd.mobius.txf","txf"],["application/vnd.mophun.application","mpn"],["application/vnd.mophun.certificate","mpc"],["application/vnd.mozilla.xul+xml","xul"],["application/vnd.ms-artgalry","cil"],["application/vnd.ms-cab-compressed","cab"],["application/vnd.ms-excel",["xls","xla","xlc","xlm","xlt","xlw","xlb","xll"]],["application/vnd.ms-excel.addin.macroenabled.12","xlam"],["application/vnd.ms-excel.sheet.binary.macroenabled.12","xlsb"],["application/vnd.ms-excel.sheet.macroenabled.12","xlsm"],["application/vnd.ms-excel.template.macroenabled.12","xltm"],["application/vnd.ms-fontobject","eot"],["application/vnd.ms-htmlhelp","chm"],["application/vnd.ms-ims","ims"],["application/vnd.ms-lrm","lrm"],["application/vnd.ms-officetheme","thmx"],["application/vnd.ms-outlook","msg"],["application/vnd.ms-pki.certstore","sst"],["application/vnd.ms-pki.pko","pko"],["application/vnd.ms-pki.seccat","cat"],["application/vnd.ms-pki.stl","stl"],["application/vnd.ms-pkicertstore","sst"],["application/vnd.ms-pkiseccat","cat"],["application/vnd.ms-pkistl","stl"],["application/vnd.ms-powerpoint",["ppt","pot","pps","ppa","pwz"]],["application/vnd.ms-powerpoint.addin.macroenabled.12","ppam"],["application/vnd.ms-powerpoint.presentation.macroenabled.12","pptm"],["application/vnd.ms-powerpoint.slide.macroenabled.12","sldm"],["application/vnd.ms-powerpoint.slideshow.macroenabled.12","ppsm"],["application/vnd.ms-powerpoint.template.macroenabled.12","potm"],["application/vnd.ms-project","mpp"],["application/vnd.ms-word.document.macroenabled.12","docm"],["application/vnd.ms-word.template.macroenabled.12","dotm"],["application/vnd.ms-works",["wks","wcm","wdb","wps"]],["application/vnd.ms-wpl","wpl"],["application/vnd.ms-xpsdocument","xps"],["application/vnd.mseq","mseq"],["application/vnd.musician","mus"],["application/vnd.muvee.style","msty"],["application/vnd.neurolanguage.nlu","nlu"],["application/vnd.noblenet-directory","nnd"],["application/vnd.noblenet-sealer","nns"],["application/vnd.noblenet-web","nnw"],["application/vnd.nokia.configuration-message","ncm"],["application/vnd.nokia.n-gage.data","ngdat"],["application/vnd.nokia.n-gage.symbian.install","n-gage"],["application/vnd.nokia.radio-preset","rpst"],["application/vnd.nokia.radio-presets","rpss"],["application/vnd.nokia.ringing-tone","rng"],["application/vnd.novadigm.edm","edm"],["application/vnd.novadigm.edx","edx"],["application/vnd.novadigm.ext","ext"],["application/vnd.oasis.opendocument.chart","odc"],["application/vnd.oasis.opendocument.chart-template","otc"],["application/vnd.oasis.opendocument.database","odb"],["application/vnd.oasis.opendocument.formula","odf"],["application/vnd.oasis.opendocument.formula-template","odft"],["application/vnd.oasis.opendocument.graphics","odg"],["application/vnd.oasis.opendocument.graphics-template","otg"],["application/vnd.oasis.opendocument.image","odi"],["application/vnd.oasis.opendocument.image-template","oti"],["application/vnd.oasis.opendocument.presentation","odp"],["application/vnd.oasis.opendocument.presentation-template","otp"],["application/vnd.oasis.opendocument.spreadsheet","ods"],["application/vnd.oasis.opendocument.spreadsheet-template","ots"],["application/vnd.oasis.opendocument.text","odt"],["application/vnd.oasis.opendocument.text-master","odm"],["application/vnd.oasis.opendocument.text-template","ott"],["application/vnd.oasis.opendocument.text-web","oth"],["application/vnd.olpc-sugar","xo"],["application/vnd.oma.dd2+xml","dd2"],["application/vnd.openofficeorg.extension","oxt"],["application/vnd.openxmlformats-officedocument.presentationml.presentation","pptx"],["application/vnd.openxmlformats-officedocument.presentationml.slide","sldx"],["application/vnd.openxmlformats-officedocument.presentationml.slideshow","ppsx"],["application/vnd.openxmlformats-officedocument.presentationml.template","potx"],["application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","xlsx"],["application/vnd.openxmlformats-officedocument.spreadsheetml.template","xltx"],["application/vnd.openxmlformats-officedocument.wordprocessingml.document","docx"],["application/vnd.openxmlformats-officedocument.wordprocessingml.template","dotx"],["application/vnd.osgeo.mapguide.package","mgp"],["application/vnd.osgi.dp","dp"],["application/vnd.palm","pdb"],["application/vnd.pawaafile","paw"],["application/vnd.pg.format","str"],["application/vnd.pg.osasli","ei6"],["application/vnd.picsel","efif"],["application/vnd.pmi.widget","wg"],["application/vnd.pocketlearn","plf"],["application/vnd.powerbuilder6","pbd"],["application/vnd.previewsystems.box","box"],["application/vnd.proteus.magazine","mgz"],["application/vnd.publishare-delta-tree","qps"],["application/vnd.pvi.ptid1","ptid"],["application/vnd.quark.quarkxpress","qxd"],["application/vnd.realvnc.bed","bed"],["application/vnd.recordare.musicxml","mxl"],["application/vnd.recordare.musicxml+xml","musicxml"],["application/vnd.rig.cryptonote","cryptonote"],["application/vnd.rim.cod","cod"],["application/vnd.rn-realmedia","rm"],["application/vnd.rn-realplayer","rnx"],["application/vnd.route66.link66+xml","link66"],["application/vnd.sailingtracker.track","st"],["application/vnd.seemail","see"],["application/vnd.sema","sema"],["application/vnd.semd","semd"],["application/vnd.semf","semf"],["application/vnd.shana.informed.formdata","ifm"],["application/vnd.shana.informed.formtemplate","itp"],["application/vnd.shana.informed.interchange","iif"],["application/vnd.shana.informed.package","ipk"],["application/vnd.simtech-mindmapper","twd"],["application/vnd.smaf","mmf"],["application/vnd.smart.teacher","teacher"],["application/vnd.solent.sdkm+xml","sdkm"],["application/vnd.spotfire.dxp","dxp"],["application/vnd.spotfire.sfs","sfs"],["application/vnd.stardivision.calc","sdc"],["application/vnd.stardivision.draw","sda"],["application/vnd.stardivision.impress","sdd"],["application/vnd.stardivision.math","smf"],["application/vnd.stardivision.writer","sdw"],["application/vnd.stardivision.writer-global","sgl"],["application/vnd.stepmania.stepchart","sm"],["application/vnd.sun.xml.calc","sxc"],["application/vnd.sun.xml.calc.template","stc"],["application/vnd.sun.xml.draw","sxd"],["application/vnd.sun.xml.draw.template","std"],["application/vnd.sun.xml.impress","sxi"],["application/vnd.sun.xml.impress.template","sti"],["application/vnd.sun.xml.math","sxm"],["application/vnd.sun.xml.writer","sxw"],["application/vnd.sun.xml.writer.global","sxg"],["application/vnd.sun.xml.writer.template","stw"],["application/vnd.sus-calendar","sus"],["application/vnd.svd","svd"],["application/vnd.symbian.install","sis"],["application/vnd.syncml+xml","xsm"],["application/vnd.syncml.dm+wbxml","bdm"],["application/vnd.syncml.dm+xml","xdm"],["application/vnd.tao.intent-module-archive","tao"],["application/vnd.tmobile-livetv","tmo"],["application/vnd.trid.tpt","tpt"],["application/vnd.triscape.mxs","mxs"],["application/vnd.trueapp","tra"],["application/vnd.ufdl","ufd"],["application/vnd.uiq.theme","utz"],["application/vnd.umajin","umj"],["application/vnd.unity","unityweb"],["application/vnd.uoml+xml","uoml"],["application/vnd.vcx","vcx"],["application/vnd.visio","vsd"],["application/vnd.visionary","vis"],["application/vnd.vsf","vsf"],["application/vnd.wap.wbxml","wbxml"],["application/vnd.wap.wmlc","wmlc"],["application/vnd.wap.wmlscriptc","wmlsc"],["application/vnd.webturbo","wtb"],["application/vnd.wolfram.player","nbp"],["application/vnd.wordperfect","wpd"],["application/vnd.wqd","wqd"],["application/vnd.wt.stf","stf"],["application/vnd.xara",["web","xar"]],["application/vnd.xfdl","xfdl"],["application/vnd.yamaha.hv-dic","hvd"],["application/vnd.yamaha.hv-script","hvs"],["application/vnd.yamaha.hv-voice","hvp"],["application/vnd.yamaha.openscoreformat","osf"],["application/vnd.yamaha.openscoreformat.osfpvg+xml","osfpvg"],["application/vnd.yamaha.smaf-audio","saf"],["application/vnd.yamaha.smaf-phrase","spf"],["application/vnd.yellowriver-custom-menu","cmp"],["application/vnd.zul","zir"],["application/vnd.zzazz.deck+xml","zaz"],["application/vocaltec-media-desc","vmd"],["application/vocaltec-media-file","vmf"],["application/voicexml+xml","vxml"],["application/widget","wgt"],["application/winhlp","hlp"],["application/wordperfect",["wp","wp5","wp6","wpd"]],["application/wordperfect6.0",["w60","wp5"]],["application/wordperfect6.1","w61"],["application/wsdl+xml","wsdl"],["application/wspolicy+xml","wspolicy"],["application/x-123","wk1"],["application/x-7z-compressed","7z"],["application/x-abiword","abw"],["application/x-ace-compressed","ace"],["application/x-aim","aim"],["application/x-authorware-bin","aab"],["application/x-authorware-map","aam"],["application/x-authorware-seg","aas"],["application/x-bcpio","bcpio"],["application/x-binary","bin"],["application/x-binhex40","hqx"],["application/x-bittorrent","torrent"],["application/x-bsh",["bsh","sh","shar"]],["application/x-bytecode.elisp","elc"],["application/x-bytecode.python","pyc"],["application/x-bzip","bz"],["application/x-bzip2",["boz","bz2"]],["application/x-cdf","cdf"],["application/x-cdlink","vcd"],["application/x-chat",["cha","chat"]],["application/x-chess-pgn","pgn"],["application/x-cmu-raster","ras"],["application/x-cocoa","cco"],["application/x-compactpro","cpt"],["application/x-compress","z"],["application/x-compressed",["tgz","gz","z","zip"]],["application/x-conference","nsc"],["application/x-cpio","cpio"],["application/x-cpt","cpt"],["application/x-csh","csh"],["application/x-debian-package","deb"],["application/x-deepv","deepv"],["application/x-director",["dir","dcr","dxr"]],["application/x-doom","wad"],["application/x-dtbncx+xml","ncx"],["application/x-dtbook+xml","dtb"],["application/x-dtbresource+xml","res"],["application/x-dvi","dvi"],["application/x-elc","elc"],["application/x-envoy",["env","evy"]],["application/x-esrehber","es"],["application/x-excel",["xls","xla","xlb","xlc","xld","xlk","xll","xlm","xlt","xlv","xlw"]],["application/x-font-bdf","bdf"],["application/x-font-ghostscript","gsf"],["application/x-font-linux-psf","psf"],["application/x-font-otf","otf"],["application/x-font-pcf","pcf"],["application/x-font-snf","snf"],["application/x-font-ttf","ttf"],["application/x-font-type1","pfa"],["application/x-font-woff","woff"],["application/x-frame","mif"],["application/x-freelance","pre"],["application/x-futuresplash","spl"],["application/x-gnumeric","gnumeric"],["application/x-gsp","gsp"],["application/x-gss","gss"],["application/x-gtar","gtar"],["application/x-gzip",["gz","gzip"]],["application/x-hdf","hdf"],["application/x-helpfile",["help","hlp"]],["application/x-httpd-imap","imap"],["application/x-ima","ima"],["application/x-internet-signup",["ins","isp"]],["application/x-internett-signup","ins"],["application/x-inventor","iv"],["application/x-ip2","ip"],["application/x-iphone","iii"],["application/x-java-class","class"],["application/x-java-commerce","jcm"],["application/x-java-jnlp-file","jnlp"],["application/x-javascript","js"],["application/x-koan",["skd","skm","skp","skt"]],["application/x-ksh","ksh"],["application/x-latex",["latex","ltx"]],["application/x-lha","lha"],["application/x-lisp","lsp"],["application/x-livescreen","ivy"],["application/x-lotus","wq1"],["application/x-lotusscreencam","scm"],["application/x-lzh","lzh"],["application/x-lzx","lzx"],["application/x-mac-binhex40","hqx"],["application/x-macbinary","bin"],["application/x-magic-cap-package-1.0","mc$"],["application/x-mathcad","mcd"],["application/x-meme","mm"],["application/x-midi",["mid","midi"]],["application/x-mif","mif"],["application/x-mix-transfer","nix"],["application/x-mobipocket-ebook","prc"],["application/x-mplayer2","asx"],["application/x-ms-application","application"],["application/x-ms-wmd","wmd"],["application/x-ms-wmz","wmz"],["application/x-ms-xbap","xbap"],["application/x-msaccess","mdb"],["application/x-msbinder","obd"],["application/x-mscardfile","crd"],["application/x-msclip","clp"],["application/x-msdownload",["exe","dll"]],["application/x-msexcel",["xls","xla","xlw"]],["application/x-msmediaview",["mvb","m13","m14"]],["application/x-msmetafile","wmf"],["application/x-msmoney","mny"],["application/x-mspowerpoint","ppt"],["application/x-mspublisher","pub"],["application/x-msschedule","scd"],["application/x-msterminal","trm"],["application/x-mswrite","wri"],["application/x-navi-animation","ani"],["application/x-navidoc","nvd"],["application/x-navimap","map"],["application/x-navistyle","stl"],["application/x-netcdf",["cdf","nc"]],["application/x-newton-compatible-pkg","pkg"],["application/x-nokia-9000-communicator-add-on-software","aos"],["application/x-omc","omc"],["application/x-omcdatamaker","omcd"],["application/x-omcregerator","omcr"],["application/x-pagemaker",["pm4","pm5"]],["application/x-pcl","pcl"],["application/x-perfmon",["pma","pmc","pml","pmr","pmw"]],["application/x-pixclscript","plx"],["application/x-pkcs10","p10"],["application/x-pkcs12",["p12","pfx"]],["application/x-pkcs7-certificates",["p7b","spc"]],["application/x-pkcs7-certreqresp","p7r"],["application/x-pkcs7-mime",["p7m","p7c"]],["application/x-pkcs7-signature",["p7s","p7a"]],["application/x-pointplus","css"],["application/x-portable-anymap","pnm"],["application/x-project",["mpc","mpt","mpv","mpx"]],["application/x-qpro","wb1"],["application/x-rar-compressed","rar"],["application/x-rtf","rtf"],["application/x-sdp","sdp"],["application/x-sea","sea"],["application/x-seelogo","sl"],["application/x-sh","sh"],["application/x-shar",["shar","sh"]],["application/x-shockwave-flash","swf"],["application/x-silverlight-app","xap"],["application/x-sit","sit"],["application/x-sprite",["spr","sprite"]],["application/x-stuffit","sit"],["application/x-stuffitx","sitx"],["application/x-sv4cpio","sv4cpio"],["application/x-sv4crc","sv4crc"],["application/x-tar","tar"],["application/x-tbook",["sbk","tbk"]],["application/x-tcl","tcl"],["application/x-tex","tex"],["application/x-tex-tfm","tfm"],["application/x-texinfo",["texi","texinfo"]],["application/x-troff",["roff","t","tr"]],["application/x-troff-man","man"],["application/x-troff-me","me"],["application/x-troff-ms","ms"],["application/x-troff-msvideo","avi"],["application/x-ustar","ustar"],["application/x-visio",["vsd","vst","vsw"]],["application/x-vnd.audioexplosion.mzz","mzz"],["application/x-vnd.ls-xpix","xpix"],["application/x-vrml","vrml"],["application/x-wais-source",["src","wsrc"]],["application/x-winhelp","hlp"],["application/x-wintalk","wtk"],["application/x-world",["wrl","svr"]],["application/x-wpwin","wpd"],["application/x-wri","wri"],["application/x-x509-ca-cert",["cer","crt","der"]],["application/x-x509-user-cert","crt"],["application/x-xfig","fig"],["application/x-xpinstall","xpi"],["application/x-zip-compressed","zip"],["application/xcap-diff+xml","xdf"],["application/xenc+xml","xenc"],["application/xhtml+xml","xhtml"],["application/xml","xml"],["application/xml-dtd","dtd"],["application/xop+xml","xop"],["application/xslt+xml","xslt"],["application/xspf+xml","xspf"],["application/xv+xml","mxml"],["application/yang","yang"],["application/yin+xml","yin"],["application/ynd.ms-pkipko","pko"],["application/zip","zip"],["audio/adpcm","adp"],["audio/aiff",["aiff","aif","aifc"]],["audio/basic",["snd","au"]],["audio/it","it"],["audio/make",["funk","my","pfunk"]],["audio/make.my.funk","pfunk"],["audio/mid",["mid","rmi"]],["audio/midi",["midi","kar","mid"]],["audio/mod","mod"],["audio/mp4","mp4a"],["audio/mpeg",["mpga","mp3","m2a","mp2","mpa","mpg"]],["audio/mpeg3","mp3"],["audio/nspaudio",["la","lma"]],["audio/ogg","oga"],["audio/s3m","s3m"],["audio/tsp-audio","tsi"],["audio/tsplayer","tsp"],["audio/vnd.dece.audio","uva"],["audio/vnd.digital-winds","eol"],["audio/vnd.dra","dra"],["audio/vnd.dts","dts"],["audio/vnd.dts.hd","dtshd"],["audio/vnd.lucent.voice","lvp"],["audio/vnd.ms-playready.media.pya","pya"],["audio/vnd.nuera.ecelp4800","ecelp4800"],["audio/vnd.nuera.ecelp7470","ecelp7470"],["audio/vnd.nuera.ecelp9600","ecelp9600"],["audio/vnd.qcelp","qcp"],["audio/vnd.rip","rip"],["audio/voc","voc"],["audio/voxware","vox"],["audio/wav","wav"],["audio/webm","weba"],["audio/x-aac","aac"],["audio/x-adpcm","snd"],["audio/x-aiff",["aiff","aif","aifc"]],["audio/x-au","au"],["audio/x-gsm",["gsd","gsm"]],["audio/x-jam","jam"],["audio/x-liveaudio","lam"],["audio/x-mid",["mid","midi"]],["audio/x-midi",["midi","mid"]],["audio/x-mod","mod"],["audio/x-mpeg","mp2"],["audio/x-mpeg-3","mp3"],["audio/x-mpegurl","m3u"],["audio/x-mpequrl","m3u"],["audio/x-ms-wax","wax"],["audio/x-ms-wma","wma"],["audio/x-nspaudio",["la","lma"]],["audio/x-pn-realaudio",["ra","ram","rm","rmm","rmp"]],["audio/x-pn-realaudio-plugin",["ra","rmp","rpm"]],["audio/x-psid","sid"],["audio/x-realaudio","ra"],["audio/x-twinvq","vqf"],["audio/x-twinvq-plugin",["vqe","vql"]],["audio/x-vnd.audioexplosion.mjuicemediafile","mjf"],["audio/x-voc","voc"],["audio/x-wav","wav"],["audio/xm","xm"],["chemical/x-cdx","cdx"],["chemical/x-cif","cif"],["chemical/x-cmdf","cmdf"],["chemical/x-cml","cml"],["chemical/x-csml","csml"],["chemical/x-pdb",["pdb","xyz"]],["chemical/x-xyz","xyz"],["drawing/x-dwf","dwf"],["i-world/i-vrml","ivr"],["image/bmp",["bmp","bm"]],["image/cgm","cgm"],["image/cis-cod","cod"],["image/cmu-raster",["ras","rast"]],["image/fif","fif"],["image/florian",["flo","turbot"]],["image/g3fax","g3"],["image/gif","gif"],["image/ief",["ief","iefs"]],["image/jpeg",["jpeg","jpe","jpg","jfif","jfif-tbnl"]],["image/jutvision","jut"],["image/ktx","ktx"],["image/naplps",["nap","naplps"]],["image/pict",["pic","pict"]],["image/pipeg","jfif"],["image/pjpeg",["jfif","jpe","jpeg","jpg"]],["image/png",["png","x-png"]],["image/prs.btif","btif"],["image/svg+xml","svg"],["image/tiff",["tif","tiff"]],["image/vasa","mcf"],["image/vnd.adobe.photoshop","psd"],["image/vnd.dece.graphic","uvi"],["image/vnd.djvu","djvu"],["image/vnd.dvb.subtitle","sub"],["image/vnd.dwg",["dwg","dxf","svf"]],["image/vnd.dxf","dxf"],["image/vnd.fastbidsheet","fbs"],["image/vnd.fpx","fpx"],["image/vnd.fst","fst"],["image/vnd.fujixerox.edmics-mmr","mmr"],["image/vnd.fujixerox.edmics-rlc","rlc"],["image/vnd.ms-modi","mdi"],["image/vnd.net-fpx",["fpx","npx"]],["image/vnd.rn-realflash","rf"],["image/vnd.rn-realpix","rp"],["image/vnd.wap.wbmp","wbmp"],["image/vnd.xiff","xif"],["image/webp","webp"],["image/x-cmu-raster","ras"],["image/x-cmx","cmx"],["image/x-dwg",["dwg","dxf","svf"]],["image/x-freehand","fh"],["image/x-icon","ico"],["image/x-jg","art"],["image/x-jps","jps"],["image/x-niff",["niff","nif"]],["image/x-pcx","pcx"],["image/x-pict",["pct","pic"]],["image/x-portable-anymap","pnm"],["image/x-portable-bitmap","pbm"],["image/x-portable-graymap","pgm"],["image/x-portable-greymap","pgm"],["image/x-portable-pixmap","ppm"],["image/x-quicktime",["qif","qti","qtif"]],["image/x-rgb","rgb"],["image/x-tiff",["tif","tiff"]],["image/x-windows-bmp","bmp"],["image/x-xbitmap","xbm"],["image/x-xbm","xbm"],["image/x-xpixmap",["xpm","pm"]],["image/x-xwd","xwd"],["image/x-xwindowdump","xwd"],["image/xbm","xbm"],["image/xpm","xpm"],["message/rfc822",["eml","mht","mhtml","nws","mime"]],["model/iges",["iges","igs"]],["model/mesh","msh"],["model/vnd.collada+xml","dae"],["model/vnd.dwf","dwf"],["model/vnd.gdl","gdl"],["model/vnd.gtw","gtw"],["model/vnd.mts","mts"],["model/vnd.vtu","vtu"],["model/vrml",["vrml","wrl","wrz"]],["model/x-pov","pov"],["multipart/x-gzip","gzip"],["multipart/x-ustar","ustar"],["multipart/x-zip","zip"],["music/crescendo",["mid","midi"]],["music/x-karaoke","kar"],["paleovu/x-pv","pvu"],["text/asp","asp"],["text/calendar","ics"],["text/css","css"],["text/csv","csv"],["text/ecmascript","js"],["text/h323","323"],["text/html",["html","htm","stm","acgi","htmls","htx","shtml"]],["text/iuls","uls"],["text/javascript","js"],["text/mcf","mcf"],["text/n3","n3"],["text/pascal","pas"],["text/plain",["txt","bas","c","h","c++","cc","com","conf","cxx","def","f","f90","for","g","hh","idc","jav","java","list","log","lst","m","mar","pl","sdml","text"]],["text/plain-bas","par"],["text/prs.lines.tag","dsc"],["text/richtext",["rtx","rt","rtf"]],["text/scriplet","wsc"],["text/scriptlet","sct"],["text/sgml",["sgm","sgml"]],["text/tab-separated-values","tsv"],["text/troff","t"],["text/turtle","ttl"],["text/uri-list",["uni","unis","uri","uris"]],["text/vnd.abc","abc"],["text/vnd.curl","curl"],["text/vnd.curl.dcurl","dcurl"],["text/vnd.curl.mcurl","mcurl"],["text/vnd.curl.scurl","scurl"],["text/vnd.fly","fly"],["text/vnd.fmi.flexstor","flx"],["text/vnd.graphviz","gv"],["text/vnd.in3d.3dml","3dml"],["text/vnd.in3d.spot","spot"],["text/vnd.rn-realtext","rt"],["text/vnd.sun.j2me.app-descriptor","jad"],["text/vnd.wap.wml","wml"],["text/vnd.wap.wmlscript","wmls"],["text/webviewhtml","htt"],["text/x-asm",["asm","s"]],["text/x-audiosoft-intra","aip"],["text/x-c",["c","cc","cpp"]],["text/x-component","htc"],["text/x-fortran",["for","f","f77","f90"]],["text/x-h",["h","hh"]],["text/x-java-source",["java","jav"]],["text/x-java-source,java","java"],["text/x-la-asf","lsx"],["text/x-m","m"],["text/x-pascal","p"],["text/x-script","hlb"],["text/x-script.csh","csh"],["text/x-script.elisp","el"],["text/x-script.guile","scm"],["text/x-script.ksh","ksh"],["text/x-script.lisp","lsp"],["text/x-script.perl","pl"],["text/x-script.perl-module","pm"],["text/x-script.phyton","py"],["text/x-script.rexx","rexx"],["text/x-script.scheme","scm"],["text/x-script.sh","sh"],["text/x-script.tcl","tcl"],["text/x-script.tcsh","tcsh"],["text/x-script.zsh","zsh"],["text/x-server-parsed-html",["shtml","ssi"]],["text/x-setext","etx"],["text/x-sgml",["sgm","sgml"]],["text/x-speech",["spc","talk"]],["text/x-uil","uil"],["text/x-uuencode",["uu","uue"]],["text/x-vcalendar","vcs"],["text/x-vcard","vcf"],["text/xml","xml"],["video/3gpp","3gp"],["video/3gpp2","3g2"],["video/animaflex","afl"],["video/avi","avi"],["video/avs-video","avs"],["video/dl","dl"],["video/fli","fli"],["video/gl","gl"],["video/h261","h261"],["video/h263","h263"],["video/h264","h264"],["video/jpeg","jpgv"],["video/jpm","jpm"],["video/mj2","mj2"],["video/mp4","mp4"],["video/mpeg",["mpeg","mp2","mpa","mpe","mpg","mpv2","m1v","m2v","mp3"]],["video/msvideo","avi"],["video/ogg","ogv"],["video/quicktime",["mov","qt","moov"]],["video/vdo","vdo"],["video/vivo",["viv","vivo"]],["video/vnd.dece.hd","uvh"],["video/vnd.dece.mobile","uvm"],["video/vnd.dece.pd","uvp"],["video/vnd.dece.sd","uvs"],["video/vnd.dece.video","uvv"],["video/vnd.fvt","fvt"],["video/vnd.mpegurl","mxu"],["video/vnd.ms-playready.media.pyv","pyv"],["video/vnd.rn-realvideo","rv"],["video/vnd.uvvu.mp4","uvu"],["video/vnd.vivo",["viv","vivo"]],["video/vosaic","vos"],["video/webm","webm"],["video/x-amt-demorun","xdr"],["video/x-amt-showrun","xsr"],["video/x-atomic3d-feature","fmf"],["video/x-dl","dl"],["video/x-dv",["dif","dv"]],["video/x-f4v","f4v"],["video/x-fli","fli"],["video/x-flv","flv"],["video/x-gl","gl"],["video/x-isvideo","isu"],["video/x-la-asf",["lsf","lsx"]],["video/x-m4v","m4v"],["video/x-motion-jpeg","mjpg"],["video/x-mpeg",["mp3","mp2"]],["video/x-mpeq2a","mp2"],["video/x-ms-asf",["asf","asr","asx"]],["video/x-ms-asf-plugin","asx"],["video/x-ms-wm","wm"],["video/x-ms-wmv","wmv"],["video/x-ms-wmx","wmx"],["video/x-ms-wvx","wvx"],["video/x-msvideo","avi"],["video/x-qtc","qtc"],["video/x-scm","scm"],["video/x-sgi-movie",["movie","mv"]],["windows/metafile","wmf"],["www/mime","mime"],["x-conference/x-cooltalk","ice"],["x-music/x-midi",["mid","midi"]],["x-world/x-3dmf",["3dm","3dmf","qd3","qd3d"]],["x-world/x-svr","svr"],["x-world/x-vrml",["flr","vrml","wrl","wrz","xaf","xof"]],["x-world/x-vrt","vrt"],["xgl/drawing","xgz"],["xgl/movie","xmz"]]),ao=new Map([["123","application/vnd.lotus-1-2-3"],["323","text/h323"],["*","application/octet-stream"],["3dm","x-world/x-3dmf"],["3dmf","x-world/x-3dmf"],["3dml","text/vnd.in3d.3dml"],["3g2","video/3gpp2"],["3gp","video/3gpp"],["7z","application/x-7z-compressed"],["a","application/octet-stream"],["aab","application/x-authorware-bin"],["aac","audio/x-aac"],["aam","application/x-authorware-map"],["aas","application/x-authorware-seg"],["abc","text/vnd.abc"],["abw","application/x-abiword"],["ac","application/pkix-attr-cert"],["acc","application/vnd.americandynamics.acc"],["ace","application/x-ace-compressed"],["acgi","text/html"],["acu","application/vnd.acucobol"],["acx","application/internet-property-stream"],["adp","audio/adpcm"],["aep","application/vnd.audiograph"],["afl","video/animaflex"],["afp","application/vnd.ibm.modcap"],["ahead","application/vnd.ahead.space"],["ai","application/postscript"],["aif",["audio/aiff","audio/x-aiff"]],["aifc",["audio/aiff","audio/x-aiff"]],["aiff",["audio/aiff","audio/x-aiff"]],["aim","application/x-aim"],["aip","text/x-audiosoft-intra"],["air","application/vnd.adobe.air-application-installer-package+zip"],["ait","application/vnd.dvb.ait"],["ami","application/vnd.amiga.ami"],["ani","application/x-navi-animation"],["aos","application/x-nokia-9000-communicator-add-on-software"],["apk","application/vnd.android.package-archive"],["application","application/x-ms-application"],["apr","application/vnd.lotus-approach"],["aps","application/mime"],["arc","application/octet-stream"],["arj",["application/arj","application/octet-stream"]],["art","image/x-jg"],["asf","video/x-ms-asf"],["asm","text/x-asm"],["aso","application/vnd.accpac.simply.aso"],["asp","text/asp"],["asr","video/x-ms-asf"],["asx",["video/x-ms-asf","application/x-mplayer2","video/x-ms-asf-plugin"]],["atc","application/vnd.acucorp"],["atomcat","application/atomcat+xml"],["atomsvc","application/atomsvc+xml"],["atx","application/vnd.antix.game-component"],["au",["audio/basic","audio/x-au"]],["avi",["video/avi","video/msvideo","application/x-troff-msvideo","video/x-msvideo"]],["avs","video/avs-video"],["aw","application/applixware"],["axs","application/olescript"],["azf","application/vnd.airzip.filesecure.azf"],["azs","application/vnd.airzip.filesecure.azs"],["azw","application/vnd.amazon.ebook"],["bas","text/plain"],["bcpio","application/x-bcpio"],["bdf","application/x-font-bdf"],["bdm","application/vnd.syncml.dm+wbxml"],["bed","application/vnd.realvnc.bed"],["bh2","application/vnd.fujitsu.oasysprs"],["bin",["application/octet-stream","application/mac-binary","application/macbinary","application/x-macbinary","application/x-binary"]],["bm","image/bmp"],["bmi","application/vnd.bmi"],["bmp",["image/bmp","image/x-windows-bmp"]],["boo","application/book"],["book","application/book"],["box","application/vnd.previewsystems.box"],["boz","application/x-bzip2"],["bsh","application/x-bsh"],["btif","image/prs.btif"],["bz","application/x-bzip"],["bz2","application/x-bzip2"],["c",["text/plain","text/x-c"]],["c++","text/plain"],["c11amc","application/vnd.cluetrust.cartomobile-config"],["c11amz","application/vnd.cluetrust.cartomobile-config-pkg"],["c4g","application/vnd.clonk.c4group"],["cab","application/vnd.ms-cab-compressed"],["car","application/vnd.curl.car"],["cat",["application/vnd.ms-pkiseccat","application/vnd.ms-pki.seccat"]],["cc",["text/plain","text/x-c"]],["ccad","application/clariscad"],["cco","application/x-cocoa"],["ccxml","application/ccxml+xml,"],["cdbcmsg","application/vnd.contact.cmsg"],["cdf",["application/cdf","application/x-cdf","application/x-netcdf"]],["cdkey","application/vnd.mediastation.cdkey"],["cdmia","application/cdmi-capability"],["cdmic","application/cdmi-container"],["cdmid","application/cdmi-domain"],["cdmio","application/cdmi-object"],["cdmiq","application/cdmi-queue"],["cdx","chemical/x-cdx"],["cdxml","application/vnd.chemdraw+xml"],["cdy","application/vnd.cinderella"],["cer",["application/pkix-cert","application/x-x509-ca-cert"]],["cgm","image/cgm"],["cha","application/x-chat"],["chat","application/x-chat"],["chm","application/vnd.ms-htmlhelp"],["chrt","application/vnd.kde.kchart"],["cif","chemical/x-cif"],["cii","application/vnd.anser-web-certificate-issue-initiation"],["cil","application/vnd.ms-artgalry"],["cla","application/vnd.claymore"],["class",["application/octet-stream","application/java","application/java-byte-code","application/java-vm","application/x-java-class"]],["clkk","application/vnd.crick.clicker.keyboard"],["clkp","application/vnd.crick.clicker.palette"],["clkt","application/vnd.crick.clicker.template"],["clkw","application/vnd.crick.clicker.wordbank"],["clkx","application/vnd.crick.clicker"],["clp","application/x-msclip"],["cmc","application/vnd.cosmocaller"],["cmdf","chemical/x-cmdf"],["cml","chemical/x-cml"],["cmp","application/vnd.yellowriver-custom-menu"],["cmx","image/x-cmx"],["cod",["image/cis-cod","application/vnd.rim.cod"]],["com",["application/octet-stream","text/plain"]],["conf","text/plain"],["cpio","application/x-cpio"],["cpp","text/x-c"],["cpt",["application/mac-compactpro","application/x-compactpro","application/x-cpt"]],["crd","application/x-mscardfile"],["crl",["application/pkix-crl","application/pkcs-crl"]],["crt",["application/pkix-cert","application/x-x509-user-cert","application/x-x509-ca-cert"]],["cryptonote","application/vnd.rig.cryptonote"],["csh",["text/x-script.csh","application/x-csh"]],["csml","chemical/x-csml"],["csp","application/vnd.commonspace"],["css",["text/css","application/x-pointplus"]],["csv","text/csv"],["cu","application/cu-seeme"],["curl","text/vnd.curl"],["cww","application/prs.cww"],["cxx","text/plain"],["dae","model/vnd.collada+xml"],["daf","application/vnd.mobius.daf"],["davmount","application/davmount+xml"],["dcr","application/x-director"],["dcurl","text/vnd.curl.dcurl"],["dd2","application/vnd.oma.dd2+xml"],["ddd","application/vnd.fujixerox.ddd"],["deb","application/x-debian-package"],["deepv","application/x-deepv"],["def","text/plain"],["der","application/x-x509-ca-cert"],["dfac","application/vnd.dreamfactory"],["dif","video/x-dv"],["dir","application/x-director"],["dis","application/vnd.mobius.dis"],["djvu","image/vnd.djvu"],["dl",["video/dl","video/x-dl"]],["dll","application/x-msdownload"],["dms","application/octet-stream"],["dna","application/vnd.dna"],["doc","application/msword"],["docm","application/vnd.ms-word.document.macroenabled.12"],["docx","application/vnd.openxmlformats-officedocument.wordprocessingml.document"],["dot","application/msword"],["dotm","application/vnd.ms-word.template.macroenabled.12"],["dotx","application/vnd.openxmlformats-officedocument.wordprocessingml.template"],["dp",["application/commonground","application/vnd.osgi.dp"]],["dpg","application/vnd.dpgraph"],["dra","audio/vnd.dra"],["drw","application/drafting"],["dsc","text/prs.lines.tag"],["dssc","application/dssc+der"],["dtb","application/x-dtbook+xml"],["dtd","application/xml-dtd"],["dts","audio/vnd.dts"],["dtshd","audio/vnd.dts.hd"],["dump","application/octet-stream"],["dv","video/x-dv"],["dvi","application/x-dvi"],["dwf",["model/vnd.dwf","drawing/x-dwf"]],["dwg",["application/acad","image/vnd.dwg","image/x-dwg"]],["dxf",["application/dxf","image/vnd.dwg","image/vnd.dxf","image/x-dwg"]],["dxp","application/vnd.spotfire.dxp"],["dxr","application/x-director"],["ecelp4800","audio/vnd.nuera.ecelp4800"],["ecelp7470","audio/vnd.nuera.ecelp7470"],["ecelp9600","audio/vnd.nuera.ecelp9600"],["edm","application/vnd.novadigm.edm"],["edx","application/vnd.novadigm.edx"],["efif","application/vnd.picsel"],["ei6","application/vnd.pg.osasli"],["el","text/x-script.elisp"],["elc",["application/x-elc","application/x-bytecode.elisp"]],["eml","message/rfc822"],["emma","application/emma+xml"],["env","application/x-envoy"],["eol","audio/vnd.digital-winds"],["eot","application/vnd.ms-fontobject"],["eps","application/postscript"],["epub","application/epub+zip"],["es",["application/ecmascript","application/x-esrehber"]],["es3","application/vnd.eszigno3+xml"],["esf","application/vnd.epson.esf"],["etx","text/x-setext"],["evy",["application/envoy","application/x-envoy"]],["exe",["application/octet-stream","application/x-msdownload"]],["exi","application/exi"],["ext","application/vnd.novadigm.ext"],["ez2","application/vnd.ezpix-album"],["ez3","application/vnd.ezpix-package"],["f",["text/plain","text/x-fortran"]],["f4v","video/x-f4v"],["f77","text/x-fortran"],["f90",["text/plain","text/x-fortran"]],["fbs","image/vnd.fastbidsheet"],["fcs","application/vnd.isac.fcs"],["fdf","application/vnd.fdf"],["fe_launch","application/vnd.denovo.fcselayout-link"],["fg5","application/vnd.fujitsu.oasysgp"],["fh","image/x-freehand"],["fif",["application/fractals","image/fif"]],["fig","application/x-xfig"],["fli",["video/fli","video/x-fli"]],["flo",["image/florian","application/vnd.micrografx.flo"]],["flr","x-world/x-vrml"],["flv","video/x-flv"],["flw","application/vnd.kde.kivio"],["flx","text/vnd.fmi.flexstor"],["fly","text/vnd.fly"],["fm","application/vnd.framemaker"],["fmf","video/x-atomic3d-feature"],["fnc","application/vnd.frogans.fnc"],["for",["text/plain","text/x-fortran"]],["fpx",["image/vnd.fpx","image/vnd.net-fpx"]],["frl","application/freeloader"],["fsc","application/vnd.fsc.weblaunch"],["fst","image/vnd.fst"],["ftc","application/vnd.fluxtime.clip"],["fti","application/vnd.anser-web-funds-transfer-initiation"],["funk","audio/make"],["fvt","video/vnd.fvt"],["fxp","application/vnd.adobe.fxp"],["fzs","application/vnd.fuzzysheet"],["g","text/plain"],["g2w","application/vnd.geoplan"],["g3","image/g3fax"],["g3w","application/vnd.geospace"],["gac","application/vnd.groove-account"],["gdl","model/vnd.gdl"],["geo","application/vnd.dynageo"],["geojson","application/geo+json"],["gex","application/vnd.geometry-explorer"],["ggb","application/vnd.geogebra.file"],["ggt","application/vnd.geogebra.tool"],["ghf","application/vnd.groove-help"],["gif","image/gif"],["gim","application/vnd.groove-identity-message"],["gl",["video/gl","video/x-gl"]],["gmx","application/vnd.gmx"],["gnumeric","application/x-gnumeric"],["gph","application/vnd.flographit"],["gqf","application/vnd.grafeq"],["gram","application/srgs"],["grv","application/vnd.groove-injector"],["grxml","application/srgs+xml"],["gsd","audio/x-gsm"],["gsf","application/x-font-ghostscript"],["gsm","audio/x-gsm"],["gsp","application/x-gsp"],["gss","application/x-gss"],["gtar","application/x-gtar"],["gtm","application/vnd.groove-tool-message"],["gtw","model/vnd.gtw"],["gv","text/vnd.graphviz"],["gxt","application/vnd.geonext"],["gz",["application/x-gzip","application/x-compressed"]],["gzip",["multipart/x-gzip","application/x-gzip"]],["h",["text/plain","text/x-h"]],["h261","video/h261"],["h263","video/h263"],["h264","video/h264"],["hal","application/vnd.hal+xml"],["hbci","application/vnd.hbci"],["hdf","application/x-hdf"],["help","application/x-helpfile"],["hgl","application/vnd.hp-hpgl"],["hh",["text/plain","text/x-h"]],["hlb","text/x-script"],["hlp",["application/winhlp","application/hlp","application/x-helpfile","application/x-winhelp"]],["hpg","application/vnd.hp-hpgl"],["hpgl","application/vnd.hp-hpgl"],["hpid","application/vnd.hp-hpid"],["hps","application/vnd.hp-hps"],["hqx",["application/mac-binhex40","application/binhex","application/binhex4","application/mac-binhex","application/x-binhex40","application/x-mac-binhex40"]],["hta","application/hta"],["htc","text/x-component"],["htke","application/vnd.kenameaapp"],["htm","text/html"],["html","text/html"],["htmls","text/html"],["htt","text/webviewhtml"],["htx","text/html"],["hvd","application/vnd.yamaha.hv-dic"],["hvp","application/vnd.yamaha.hv-voice"],["hvs","application/vnd.yamaha.hv-script"],["i2g","application/vnd.intergeo"],["icc","application/vnd.iccprofile"],["ice","x-conference/x-cooltalk"],["ico","image/x-icon"],["ics","text/calendar"],["idc","text/plain"],["ief","image/ief"],["iefs","image/ief"],["ifm","application/vnd.shana.informed.formdata"],["iges",["application/iges","model/iges"]],["igl","application/vnd.igloader"],["igm","application/vnd.insors.igm"],["igs",["application/iges","model/iges"]],["igx","application/vnd.micrografx.igx"],["iif","application/vnd.shana.informed.interchange"],["iii","application/x-iphone"],["ima","application/x-ima"],["imap","application/x-httpd-imap"],["imp","application/vnd.accpac.simply.imp"],["ims","application/vnd.ms-ims"],["inf","application/inf"],["ins",["application/x-internet-signup","application/x-internett-signup"]],["ip","application/x-ip2"],["ipfix","application/ipfix"],["ipk","application/vnd.shana.informed.package"],["irm","application/vnd.ibm.rights-management"],["irp","application/vnd.irepository.package+xml"],["isp","application/x-internet-signup"],["isu","video/x-isvideo"],["it","audio/it"],["itp","application/vnd.shana.informed.formtemplate"],["iv","application/x-inventor"],["ivp","application/vnd.immervision-ivp"],["ivr","i-world/i-vrml"],["ivu","application/vnd.immervision-ivu"],["ivy","application/x-livescreen"],["jad","text/vnd.sun.j2me.app-descriptor"],["jam",["application/vnd.jam","audio/x-jam"]],["jar","application/java-archive"],["jav",["text/plain","text/x-java-source"]],["java",["text/plain","text/x-java-source,java","text/x-java-source"]],["jcm","application/x-java-commerce"],["jfif",["image/pipeg","image/jpeg","image/pjpeg"]],["jfif-tbnl","image/jpeg"],["jisp","application/vnd.jisp"],["jlt","application/vnd.hp-jlyt"],["jnlp","application/x-java-jnlp-file"],["joda","application/vnd.joost.joda-archive"],["jpe",["image/jpeg","image/pjpeg"]],["jpeg",["image/jpeg","image/pjpeg"]],["jpg",["image/jpeg","image/pjpeg"]],["jpgv","video/jpeg"],["jpm","video/jpm"],["jps","image/x-jps"],["js",["application/javascript","application/ecmascript","text/javascript","text/ecmascript","application/x-javascript"]],["json","application/json"],["jut","image/jutvision"],["kar",["audio/midi","music/x-karaoke"]],["karbon","application/vnd.kde.karbon"],["kfo","application/vnd.kde.kformula"],["kia","application/vnd.kidspiration"],["kml","application/vnd.google-earth.kml+xml"],["kmz","application/vnd.google-earth.kmz"],["kne","application/vnd.kinar"],["kon","application/vnd.kde.kontour"],["kpr","application/vnd.kde.kpresenter"],["ksh",["application/x-ksh","text/x-script.ksh"]],["ksp","application/vnd.kde.kspread"],["ktx","image/ktx"],["ktz","application/vnd.kahootz"],["kwd","application/vnd.kde.kword"],["la",["audio/nspaudio","audio/x-nspaudio"]],["lam","audio/x-liveaudio"],["lasxml","application/vnd.las.las+xml"],["latex","application/x-latex"],["lbd","application/vnd.llamagraphics.life-balance.desktop"],["lbe","application/vnd.llamagraphics.life-balance.exchange+xml"],["les","application/vnd.hhe.lesson-player"],["lha",["application/octet-stream","application/lha","application/x-lha"]],["lhx","application/octet-stream"],["link66","application/vnd.route66.link66+xml"],["list","text/plain"],["lma",["audio/nspaudio","audio/x-nspaudio"]],["log","text/plain"],["lrm","application/vnd.ms-lrm"],["lsf","video/x-la-asf"],["lsp",["application/x-lisp","text/x-script.lisp"]],["lst","text/plain"],["lsx",["video/x-la-asf","text/x-la-asf"]],["ltf","application/vnd.frogans.ltf"],["ltx","application/x-latex"],["lvp","audio/vnd.lucent.voice"],["lwp","application/vnd.lotus-wordpro"],["lzh",["application/octet-stream","application/x-lzh"]],["lzx",["application/lzx","application/octet-stream","application/x-lzx"]],["m",["text/plain","text/x-m"]],["m13","application/x-msmediaview"],["m14","application/x-msmediaview"],["m1v","video/mpeg"],["m21","application/mp21"],["m2a","audio/mpeg"],["m2v","video/mpeg"],["m3u",["audio/x-mpegurl","audio/x-mpequrl"]],["m3u8","application/vnd.apple.mpegurl"],["m4v","video/x-m4v"],["ma","application/mathematica"],["mads","application/mads+xml"],["mag","application/vnd.ecowin.chart"],["man","application/x-troff-man"],["map","application/x-navimap"],["mar","text/plain"],["mathml","application/mathml+xml"],["mbd","application/mbedlet"],["mbk","application/vnd.mobius.mbk"],["mbox","application/mbox"],["mc$","application/x-magic-cap-package-1.0"],["mc1","application/vnd.medcalcdata"],["mcd",["application/mcad","application/vnd.mcd","application/x-mathcad"]],["mcf",["image/vasa","text/mcf"]],["mcp","application/netmc"],["mcurl","text/vnd.curl.mcurl"],["mdb","application/x-msaccess"],["mdi","image/vnd.ms-modi"],["me","application/x-troff-me"],["meta4","application/metalink4+xml"],["mets","application/mets+xml"],["mfm","application/vnd.mfmp"],["mgp","application/vnd.osgeo.mapguide.package"],["mgz","application/vnd.proteus.magazine"],["mht","message/rfc822"],["mhtml","message/rfc822"],["mid",["audio/mid","audio/midi","music/crescendo","x-music/x-midi","audio/x-midi","application/x-midi","audio/x-mid"]],["midi",["audio/midi","music/crescendo","x-music/x-midi","audio/x-midi","application/x-midi","audio/x-mid"]],["mif",["application/vnd.mif","application/x-mif","application/x-frame"]],["mime",["message/rfc822","www/mime"]],["mj2","video/mj2"],["mjf","audio/x-vnd.audioexplosion.mjuicemediafile"],["mjpg","video/x-motion-jpeg"],["mlp","application/vnd.dolby.mlp"],["mm",["application/base64","application/x-meme"]],["mmd","application/vnd.chipnuts.karaoke-mmd"],["mme","application/base64"],["mmf","application/vnd.smaf"],["mmr","image/vnd.fujixerox.edmics-mmr"],["mny","application/x-msmoney"],["mod",["audio/mod","audio/x-mod"]],["mods","application/mods+xml"],["moov","video/quicktime"],["mov","video/quicktime"],["movie","video/x-sgi-movie"],["mp2",["video/mpeg","audio/mpeg","video/x-mpeg","audio/x-mpeg","video/x-mpeq2a"]],["mp3",["audio/mpeg","audio/mpeg3","video/mpeg","audio/x-mpeg-3","video/x-mpeg"]],["mp4",["video/mp4","application/mp4"]],["mp4a","audio/mp4"],["mpa",["video/mpeg","audio/mpeg"]],["mpc",["application/vnd.mophun.certificate","application/x-project"]],["mpe","video/mpeg"],["mpeg","video/mpeg"],["mpg",["video/mpeg","audio/mpeg"]],["mpga","audio/mpeg"],["mpkg","application/vnd.apple.installer+xml"],["mpm","application/vnd.blueice.multipass"],["mpn","application/vnd.mophun.application"],["mpp","application/vnd.ms-project"],["mpt","application/x-project"],["mpv","application/x-project"],["mpv2","video/mpeg"],["mpx","application/x-project"],["mpy","application/vnd.ibm.minipay"],["mqy","application/vnd.mobius.mqy"],["mrc","application/marc"],["mrcx","application/marcxml+xml"],["ms","application/x-troff-ms"],["mscml","application/mediaservercontrol+xml"],["mseq","application/vnd.mseq"],["msf","application/vnd.epson.msf"],["msg","application/vnd.ms-outlook"],["msh","model/mesh"],["msl","application/vnd.mobius.msl"],["msty","application/vnd.muvee.style"],["mts","model/vnd.mts"],["mus","application/vnd.musician"],["musicxml","application/vnd.recordare.musicxml+xml"],["mv","video/x-sgi-movie"],["mvb","application/x-msmediaview"],["mwf","application/vnd.mfer"],["mxf","application/mxf"],["mxl","application/vnd.recordare.musicxml"],["mxml","application/xv+xml"],["mxs","application/vnd.triscape.mxs"],["mxu","video/vnd.mpegurl"],["my","audio/make"],["mzz","application/x-vnd.audioexplosion.mzz"],["n-gage","application/vnd.nokia.n-gage.symbian.install"],["n3","text/n3"],["nap","image/naplps"],["naplps","image/naplps"],["nbp","application/vnd.wolfram.player"],["nc","application/x-netcdf"],["ncm","application/vnd.nokia.configuration-message"],["ncx","application/x-dtbncx+xml"],["ngdat","application/vnd.nokia.n-gage.data"],["nif","image/x-niff"],["niff","image/x-niff"],["nix","application/x-mix-transfer"],["nlu","application/vnd.neurolanguage.nlu"],["nml","application/vnd.enliven"],["nnd","application/vnd.noblenet-directory"],["nns","application/vnd.noblenet-sealer"],["nnw","application/vnd.noblenet-web"],["npx","image/vnd.net-fpx"],["nsc","application/x-conference"],["nsf","application/vnd.lotus-notes"],["nvd","application/x-navidoc"],["nws","message/rfc822"],["o","application/octet-stream"],["oa2","application/vnd.fujitsu.oasys2"],["oa3","application/vnd.fujitsu.oasys3"],["oas","application/vnd.fujitsu.oasys"],["obd","application/x-msbinder"],["oda","application/oda"],["odb","application/vnd.oasis.opendocument.database"],["odc","application/vnd.oasis.opendocument.chart"],["odf","application/vnd.oasis.opendocument.formula"],["odft","application/vnd.oasis.opendocument.formula-template"],["odg","application/vnd.oasis.opendocument.graphics"],["odi","application/vnd.oasis.opendocument.image"],["odm","application/vnd.oasis.opendocument.text-master"],["odp","application/vnd.oasis.opendocument.presentation"],["ods","application/vnd.oasis.opendocument.spreadsheet"],["odt","application/vnd.oasis.opendocument.text"],["oga","audio/ogg"],["ogv","video/ogg"],["ogx","application/ogg"],["omc","application/x-omc"],["omcd","application/x-omcdatamaker"],["omcr","application/x-omcregerator"],["onetoc","application/onenote"],["opf","application/oebps-package+xml"],["org","application/vnd.lotus-organizer"],["osf","application/vnd.yamaha.openscoreformat"],["osfpvg","application/vnd.yamaha.openscoreformat.osfpvg+xml"],["otc","application/vnd.oasis.opendocument.chart-template"],["otf","application/x-font-otf"],["otg","application/vnd.oasis.opendocument.graphics-template"],["oth","application/vnd.oasis.opendocument.text-web"],["oti","application/vnd.oasis.opendocument.image-template"],["otp","application/vnd.oasis.opendocument.presentation-template"],["ots","application/vnd.oasis.opendocument.spreadsheet-template"],["ott","application/vnd.oasis.opendocument.text-template"],["oxt","application/vnd.openofficeorg.extension"],["p","text/x-pascal"],["p10",["application/pkcs10","application/x-pkcs10"]],["p12",["application/pkcs-12","application/x-pkcs12"]],["p7a","application/x-pkcs7-signature"],["p7b","application/x-pkcs7-certificates"],["p7c",["application/pkcs7-mime","application/x-pkcs7-mime"]],["p7m",["application/pkcs7-mime","application/x-pkcs7-mime"]],["p7r","application/x-pkcs7-certreqresp"],["p7s",["application/pkcs7-signature","application/x-pkcs7-signature"]],["p8","application/pkcs8"],["par","text/plain-bas"],["part","application/pro_eng"],["pas","text/pascal"],["paw","application/vnd.pawaafile"],["pbd","application/vnd.powerbuilder6"],["pbm","image/x-portable-bitmap"],["pcf","application/x-font-pcf"],["pcl",["application/vnd.hp-pcl","application/x-pcl"]],["pclxl","application/vnd.hp-pclxl"],["pct","image/x-pict"],["pcurl","application/vnd.curl.pcurl"],["pcx","image/x-pcx"],["pdb",["application/vnd.palm","chemical/x-pdb"]],["pdf","application/pdf"],["pfa","application/x-font-type1"],["pfr","application/font-tdpfr"],["pfunk",["audio/make","audio/make.my.funk"]],["pfx","application/x-pkcs12"],["pgm",["image/x-portable-graymap","image/x-portable-greymap"]],["pgn","application/x-chess-pgn"],["pgp","application/pgp-signature"],["pic",["image/pict","image/x-pict"]],["pict","image/pict"],["pkg","application/x-newton-compatible-pkg"],["pki","application/pkixcmp"],["pkipath","application/pkix-pkipath"],["pko",["application/ynd.ms-pkipko","application/vnd.ms-pki.pko"]],["pl",["text/plain","text/x-script.perl"]],["plb","application/vnd.3gpp.pic-bw-large"],["plc","application/vnd.mobius.plc"],["plf","application/vnd.pocketlearn"],["pls","application/pls+xml"],["plx","application/x-pixclscript"],["pm",["text/x-script.perl-module","image/x-xpixmap"]],["pm4","application/x-pagemaker"],["pm5","application/x-pagemaker"],["pma","application/x-perfmon"],["pmc","application/x-perfmon"],["pml",["application/vnd.ctc-posml","application/x-perfmon"]],["pmr","application/x-perfmon"],["pmw","application/x-perfmon"],["png","image/png"],["pnm",["application/x-portable-anymap","image/x-portable-anymap"]],["portpkg","application/vnd.macports.portpkg"],["pot",["application/vnd.ms-powerpoint","application/mspowerpoint"]],["potm","application/vnd.ms-powerpoint.template.macroenabled.12"],["potx","application/vnd.openxmlformats-officedocument.presentationml.template"],["pov","model/x-pov"],["ppa","application/vnd.ms-powerpoint"],["ppam","application/vnd.ms-powerpoint.addin.macroenabled.12"],["ppd","application/vnd.cups-ppd"],["ppm","image/x-portable-pixmap"],["pps",["application/vnd.ms-powerpoint","application/mspowerpoint"]],["ppsm","application/vnd.ms-powerpoint.slideshow.macroenabled.12"],["ppsx","application/vnd.openxmlformats-officedocument.presentationml.slideshow"],["ppt",["application/vnd.ms-powerpoint","application/mspowerpoint","application/powerpoint","application/x-mspowerpoint"]],["pptm","application/vnd.ms-powerpoint.presentation.macroenabled.12"],["pptx","application/vnd.openxmlformats-officedocument.presentationml.presentation"],["ppz","application/mspowerpoint"],["prc","application/x-mobipocket-ebook"],["pre",["application/vnd.lotus-freelance","application/x-freelance"]],["prf","application/pics-rules"],["prt","application/pro_eng"],["ps","application/postscript"],["psb","application/vnd.3gpp.pic-bw-small"],["psd",["application/octet-stream","image/vnd.adobe.photoshop"]],["psf","application/x-font-linux-psf"],["pskcxml","application/pskc+xml"],["ptid","application/vnd.pvi.ptid1"],["pub","application/x-mspublisher"],["pvb","application/vnd.3gpp.pic-bw-var"],["pvu","paleovu/x-pv"],["pwn","application/vnd.3m.post-it-notes"],["pwz","application/vnd.ms-powerpoint"],["py","text/x-script.phyton"],["pya","audio/vnd.ms-playready.media.pya"],["pyc","application/x-bytecode.python"],["pyv","video/vnd.ms-playready.media.pyv"],["qam","application/vnd.epson.quickanime"],["qbo","application/vnd.intu.qbo"],["qcp","audio/vnd.qcelp"],["qd3","x-world/x-3dmf"],["qd3d","x-world/x-3dmf"],["qfx","application/vnd.intu.qfx"],["qif","image/x-quicktime"],["qps","application/vnd.publishare-delta-tree"],["qt","video/quicktime"],["qtc","video/x-qtc"],["qti","image/x-quicktime"],["qtif","image/x-quicktime"],["qxd","application/vnd.quark.quarkxpress"],["ra",["audio/x-realaudio","audio/x-pn-realaudio","audio/x-pn-realaudio-plugin"]],["ram","audio/x-pn-realaudio"],["rar","application/x-rar-compressed"],["ras",["image/cmu-raster","application/x-cmu-raster","image/x-cmu-raster"]],["rast","image/cmu-raster"],["rcprofile","application/vnd.ipunplugged.rcprofile"],["rdf","application/rdf+xml"],["rdz","application/vnd.data-vision.rdz"],["rep","application/vnd.businessobjects"],["res","application/x-dtbresource+xml"],["rexx","text/x-script.rexx"],["rf","image/vnd.rn-realflash"],["rgb","image/x-rgb"],["rif","application/reginfo+xml"],["rip","audio/vnd.rip"],["rl","application/resource-lists+xml"],["rlc","image/vnd.fujixerox.edmics-rlc"],["rld","application/resource-lists-diff+xml"],["rm",["application/vnd.rn-realmedia","audio/x-pn-realaudio"]],["rmi","audio/mid"],["rmm","audio/x-pn-realaudio"],["rmp",["audio/x-pn-realaudio-plugin","audio/x-pn-realaudio"]],["rms","application/vnd.jcp.javame.midlet-rms"],["rnc","application/relax-ng-compact-syntax"],["rng",["application/ringing-tones","application/vnd.nokia.ringing-tone"]],["rnx","application/vnd.rn-realplayer"],["roff","application/x-troff"],["rp","image/vnd.rn-realpix"],["rp9","application/vnd.cloanto.rp9"],["rpm","audio/x-pn-realaudio-plugin"],["rpss","application/vnd.nokia.radio-presets"],["rpst","application/vnd.nokia.radio-preset"],["rq","application/sparql-query"],["rs","application/rls-services+xml"],["rsd","application/rsd+xml"],["rt",["text/richtext","text/vnd.rn-realtext"]],["rtf",["application/rtf","text/richtext","application/x-rtf"]],["rtx",["text/richtext","application/rtf"]],["rv","video/vnd.rn-realvideo"],["s","text/x-asm"],["s3m","audio/s3m"],["saf","application/vnd.yamaha.smaf-audio"],["saveme","application/octet-stream"],["sbk","application/x-tbook"],["sbml","application/sbml+xml"],["sc","application/vnd.ibm.secure-container"],["scd","application/x-msschedule"],["scm",["application/vnd.lotus-screencam","video/x-scm","text/x-script.guile","application/x-lotusscreencam","text/x-script.scheme"]],["scq","application/scvp-cv-request"],["scs","application/scvp-cv-response"],["sct","text/scriptlet"],["scurl","text/vnd.curl.scurl"],["sda","application/vnd.stardivision.draw"],["sdc","application/vnd.stardivision.calc"],["sdd","application/vnd.stardivision.impress"],["sdkm","application/vnd.solent.sdkm+xml"],["sdml","text/plain"],["sdp",["application/sdp","application/x-sdp"]],["sdr","application/sounder"],["sdw","application/vnd.stardivision.writer"],["sea",["application/sea","application/x-sea"]],["see","application/vnd.seemail"],["seed","application/vnd.fdsn.seed"],["sema","application/vnd.sema"],["semd","application/vnd.semd"],["semf","application/vnd.semf"],["ser","application/java-serialized-object"],["set","application/set"],["setpay","application/set-payment-initiation"],["setreg","application/set-registration-initiation"],["sfd-hdstx","application/vnd.hydrostatix.sof-data"],["sfs","application/vnd.spotfire.sfs"],["sgl","application/vnd.stardivision.writer-global"],["sgm",["text/sgml","text/x-sgml"]],["sgml",["text/sgml","text/x-sgml"]],["sh",["application/x-shar","application/x-bsh","application/x-sh","text/x-script.sh"]],["shar",["application/x-bsh","application/x-shar"]],["shf","application/shf+xml"],["shtml",["text/html","text/x-server-parsed-html"]],["sid","audio/x-psid"],["sis","application/vnd.symbian.install"],["sit",["application/x-stuffit","application/x-sit"]],["sitx","application/x-stuffitx"],["skd","application/x-koan"],["skm","application/x-koan"],["skp",["application/vnd.koan","application/x-koan"]],["skt","application/x-koan"],["sl","application/x-seelogo"],["sldm","application/vnd.ms-powerpoint.slide.macroenabled.12"],["sldx","application/vnd.openxmlformats-officedocument.presentationml.slide"],["slt","application/vnd.epson.salt"],["sm","application/vnd.stepmania.stepchart"],["smf","application/vnd.stardivision.math"],["smi",["application/smil","application/smil+xml"]],["smil","application/smil"],["snd",["audio/basic","audio/x-adpcm"]],["snf","application/x-font-snf"],["sol","application/solids"],["spc",["text/x-speech","application/x-pkcs7-certificates"]],["spf","application/vnd.yamaha.smaf-phrase"],["spl",["application/futuresplash","application/x-futuresplash"]],["spot","text/vnd.in3d.spot"],["spp","application/scvp-vp-response"],["spq","application/scvp-vp-request"],["spr","application/x-sprite"],["sprite","application/x-sprite"],["src","application/x-wais-source"],["sru","application/sru+xml"],["srx","application/sparql-results+xml"],["sse","application/vnd.kodak-descriptor"],["ssf","application/vnd.epson.ssf"],["ssi","text/x-server-parsed-html"],["ssm","application/streamingmedia"],["ssml","application/ssml+xml"],["sst",["application/vnd.ms-pkicertstore","application/vnd.ms-pki.certstore"]],["st","application/vnd.sailingtracker.track"],["stc","application/vnd.sun.xml.calc.template"],["std","application/vnd.sun.xml.draw.template"],["step","application/step"],["stf","application/vnd.wt.stf"],["sti","application/vnd.sun.xml.impress.template"],["stk","application/hyperstudio"],["stl",["application/vnd.ms-pkistl","application/sla","application/vnd.ms-pki.stl","application/x-navistyle"]],["stm","text/html"],["stp","application/step"],["str","application/vnd.pg.format"],["stw","application/vnd.sun.xml.writer.template"],["sub","image/vnd.dvb.subtitle"],["sus","application/vnd.sus-calendar"],["sv4cpio","application/x-sv4cpio"],["sv4crc","application/x-sv4crc"],["svc","application/vnd.dvb.service"],["svd","application/vnd.svd"],["svf",["image/vnd.dwg","image/x-dwg"]],["svg","image/svg+xml"],["svr",["x-world/x-svr","application/x-world"]],["swf","application/x-shockwave-flash"],["swi","application/vnd.aristanetworks.swi"],["sxc","application/vnd.sun.xml.calc"],["sxd","application/vnd.sun.xml.draw"],["sxg","application/vnd.sun.xml.writer.global"],["sxi","application/vnd.sun.xml.impress"],["sxm","application/vnd.sun.xml.math"],["sxw","application/vnd.sun.xml.writer"],["t",["text/troff","application/x-troff"]],["talk","text/x-speech"],["tao","application/vnd.tao.intent-module-archive"],["tar","application/x-tar"],["tbk",["application/toolbook","application/x-tbook"]],["tcap","application/vnd.3gpp2.tcap"],["tcl",["text/x-script.tcl","application/x-tcl"]],["tcsh","text/x-script.tcsh"],["teacher","application/vnd.smart.teacher"],["tei","application/tei+xml"],["tex","application/x-tex"],["texi","application/x-texinfo"],["texinfo","application/x-texinfo"],["text",["application/plain","text/plain"]],["tfi","application/thraud+xml"],["tfm","application/x-tex-tfm"],["tgz",["application/gnutar","application/x-compressed"]],["thmx","application/vnd.ms-officetheme"],["tif",["image/tiff","image/x-tiff"]],["tiff",["image/tiff","image/x-tiff"]],["tmo","application/vnd.tmobile-livetv"],["torrent","application/x-bittorrent"],["tpl","application/vnd.groove-tool-template"],["tpt","application/vnd.trid.tpt"],["tr","application/x-troff"],["tra","application/vnd.trueapp"],["trm","application/x-msterminal"],["tsd","application/timestamped-data"],["tsi","audio/tsp-audio"],["tsp",["application/dsptype","audio/tsplayer"]],["tsv","text/tab-separated-values"],["ttf","application/x-font-ttf"],["ttl","text/turtle"],["turbot","image/florian"],["twd","application/vnd.simtech-mindmapper"],["txd","application/vnd.genomatix.tuxedo"],["txf","application/vnd.mobius.txf"],["txt","text/plain"],["ufd","application/vnd.ufdl"],["uil","text/x-uil"],["uls","text/iuls"],["umj","application/vnd.umajin"],["uni","text/uri-list"],["unis","text/uri-list"],["unityweb","application/vnd.unity"],["unv","application/i-deas"],["uoml","application/vnd.uoml+xml"],["uri","text/uri-list"],["uris","text/uri-list"],["ustar",["application/x-ustar","multipart/x-ustar"]],["utz","application/vnd.uiq.theme"],["uu",["application/octet-stream","text/x-uuencode"]],["uue","text/x-uuencode"],["uva","audio/vnd.dece.audio"],["uvh","video/vnd.dece.hd"],["uvi","image/vnd.dece.graphic"],["uvm","video/vnd.dece.mobile"],["uvp","video/vnd.dece.pd"],["uvs","video/vnd.dece.sd"],["uvu","video/vnd.uvvu.mp4"],["uvv","video/vnd.dece.video"],["vcd","application/x-cdlink"],["vcf","text/x-vcard"],["vcg","application/vnd.groove-vcard"],["vcs","text/x-vcalendar"],["vcx","application/vnd.vcx"],["vda","application/vda"],["vdo","video/vdo"],["vew","application/groupwise"],["vis","application/vnd.visionary"],["viv",["video/vivo","video/vnd.vivo"]],["vivo",["video/vivo","video/vnd.vivo"]],["vmd","application/vocaltec-media-desc"],["vmf","application/vocaltec-media-file"],["voc",["audio/voc","audio/x-voc"]],["vos","video/vosaic"],["vox","audio/voxware"],["vqe","audio/x-twinvq-plugin"],["vqf","audio/x-twinvq"],["vql","audio/x-twinvq-plugin"],["vrml",["model/vrml","x-world/x-vrml","application/x-vrml"]],["vrt","x-world/x-vrt"],["vsd",["application/vnd.visio","application/x-visio"]],["vsf","application/vnd.vsf"],["vst","application/x-visio"],["vsw","application/x-visio"],["vtu","model/vnd.vtu"],["vxml","application/voicexml+xml"],["w60","application/wordperfect6.0"],["w61","application/wordperfect6.1"],["w6w","application/msword"],["wad","application/x-doom"],["wav",["audio/wav","audio/x-wav"]],["wax","audio/x-ms-wax"],["wb1","application/x-qpro"],["wbmp","image/vnd.wap.wbmp"],["wbs","application/vnd.criticaltools.wbs+xml"],["wbxml","application/vnd.wap.wbxml"],["wcm","application/vnd.ms-works"],["wdb","application/vnd.ms-works"],["web","application/vnd.xara"],["weba","audio/webm"],["webm","video/webm"],["webp","image/webp"],["wg","application/vnd.pmi.widget"],["wgt","application/widget"],["wiz","application/msword"],["wk1","application/x-123"],["wks","application/vnd.ms-works"],["wm","video/x-ms-wm"],["wma","audio/x-ms-wma"],["wmd","application/x-ms-wmd"],["wmf",["windows/metafile","application/x-msmetafile"]],["wml","text/vnd.wap.wml"],["wmlc","application/vnd.wap.wmlc"],["wmls","text/vnd.wap.wmlscript"],["wmlsc","application/vnd.wap.wmlscriptc"],["wmv","video/x-ms-wmv"],["wmx","video/x-ms-wmx"],["wmz","application/x-ms-wmz"],["woff","application/x-font-woff"],["word","application/msword"],["wp","application/wordperfect"],["wp5",["application/wordperfect","application/wordperfect6.0"]],["wp6","application/wordperfect"],["wpd",["application/wordperfect","application/vnd.wordperfect","application/x-wpwin"]],["wpl","application/vnd.ms-wpl"],["wps","application/vnd.ms-works"],["wq1","application/x-lotus"],["wqd","application/vnd.wqd"],["wri",["application/mswrite","application/x-wri","application/x-mswrite"]],["wrl",["model/vrml","x-world/x-vrml","application/x-world"]],["wrz",["model/vrml","x-world/x-vrml"]],["wsc","text/scriplet"],["wsdl","application/wsdl+xml"],["wspolicy","application/wspolicy+xml"],["wsrc","application/x-wais-source"],["wtb","application/vnd.webturbo"],["wtk","application/x-wintalk"],["wvx","video/x-ms-wvx"],["x-png","image/png"],["x3d","application/vnd.hzn-3d-crossword"],["xaf","x-world/x-vrml"],["xap","application/x-silverlight-app"],["xar","application/vnd.xara"],["xbap","application/x-ms-xbap"],["xbd","application/vnd.fujixerox.docuworks.binder"],["xbm",["image/xbm","image/x-xbm","image/x-xbitmap"]],["xdf","application/xcap-diff+xml"],["xdm","application/vnd.syncml.dm+xml"],["xdp","application/vnd.adobe.xdp+xml"],["xdr","video/x-amt-demorun"],["xdssc","application/dssc+xml"],["xdw","application/vnd.fujixerox.docuworks"],["xenc","application/xenc+xml"],["xer","application/patch-ops-error+xml"],["xfdf","application/vnd.adobe.xfdf"],["xfdl","application/vnd.xfdl"],["xgz","xgl/drawing"],["xhtml","application/xhtml+xml"],["xif","image/vnd.xiff"],["xl","application/excel"],["xla",["application/vnd.ms-excel","application/excel","application/x-msexcel","application/x-excel"]],["xlam","application/vnd.ms-excel.addin.macroenabled.12"],["xlb",["application/excel","application/vnd.ms-excel","application/x-excel"]],["xlc",["application/vnd.ms-excel","application/excel","application/x-excel"]],["xld",["application/excel","application/x-excel"]],["xlk",["application/excel","application/x-excel"]],["xll",["application/excel","application/vnd.ms-excel","application/x-excel"]],["xlm",["application/vnd.ms-excel","application/excel","application/x-excel"]],["xls",["application/vnd.ms-excel","application/excel","application/x-msexcel","application/x-excel"]],["xlsb","application/vnd.ms-excel.sheet.binary.macroenabled.12"],["xlsm","application/vnd.ms-excel.sheet.macroenabled.12"],["xlsx","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"],["xlt",["application/vnd.ms-excel","application/excel","application/x-excel"]],["xltm","application/vnd.ms-excel.template.macroenabled.12"],["xltx","application/vnd.openxmlformats-officedocument.spreadsheetml.template"],["xlv",["application/excel","application/x-excel"]],["xlw",["application/vnd.ms-excel","application/excel","application/x-msexcel","application/x-excel"]],["xm","audio/xm"],["xml",["application/xml","text/xml","application/atom+xml","application/rss+xml"]],["xmz","xgl/movie"],["xo","application/vnd.olpc-sugar"],["xof","x-world/x-vrml"],["xop","application/xop+xml"],["xpi","application/x-xpinstall"],["xpix","application/x-vnd.ls-xpix"],["xpm",["image/xpm","image/x-xpixmap"]],["xpr","application/vnd.is-xpr"],["xps","application/vnd.ms-xpsdocument"],["xpw","application/vnd.intercon.formnet"],["xslt","application/xslt+xml"],["xsm","application/vnd.syncml+xml"],["xspf","application/xspf+xml"],["xsr","video/x-amt-showrun"],["xul","application/vnd.mozilla.xul+xml"],["xwd",["image/x-xwd","image/x-xwindowdump"]],["xyz",["chemical/x-xyz","chemical/x-pdb"]],["yang","application/yang"],["yin","application/yin+xml"],["z",["application/x-compressed","application/x-compress"]],["zaz","application/vnd.zzazz.deck+xml"],["zip",["application/zip","multipart/x-zip","application/x-zip-compressed","application/x-compressed"]],["zir","application/vnd.zul"],["zmm","application/vnd.handheld-entertainment+xml"],["zoo","application/octet-stream"],["zsh","text/x-script.zsh"]]);function ap(a){if(!a)return"bin";let b=a.toLowerCase().trim().split("/"),c=b.shift().trim(),d=b.join("/").trim();if(an.has(c+"/"+d)){let a=an.get(c+"/"+d);return Array.isArray(a)?a[0]:a}return"text"===c?"txt":"bin"}var aq=a.i(666680),ar=G;function as(a){return"string"==typeof a&&(a=Buffer.from(a,"utf-8")),a.toString("base64")}function at(a,b){if(a=(a||"").toString(),b=Math.max(Number(b)||76,1),a.length<=b)return a;let c=[],d=0,e=1024*b,f=RegExp(".{"+b+"}","g");for(;d<a.length;){let b=a.substr(d,e).replace(f,"$&\r\n").trim();c.push(b),d+=e}return c.join("\r\n").trim()}class au extends ar.Transform{constructor(a){super(),this.options=a||{},!1!==this.options.lineLength&&(this.options.lineLength=this.options.lineLength||76),this._curLine="",this._remainingBytes=!1,this.inputBytes=0,this.outputBytes=0}_transform(a,b,c){let d="buffer"!==b?Buffer.from(a,b):a;if(!d||!d.length)return void setImmediate(c);this.inputBytes+=d.length,this._remainingBytes&&this._remainingBytes.length&&(d=Buffer.concat([this._remainingBytes,d],this._remainingBytes.length+d.length),this._remainingBytes=!1),d.length%3?(this._remainingBytes=d.slice(d.length-d.length%3),d=d.slice(0,d.length-d.length%3)):this._remainingBytes=!1;let e=this._curLine+as(d);if(this.options.lineLength){let a=(e=at(e,this.options.lineLength)).lastIndexOf("\n");a<0?(this._curLine=e,e=""):a===e.length-1?this._curLine="":(this._curLine=e.substring(a+1),e=e.substring(0,a+1))}e&&(this.outputBytes+=e.length,this.push(Buffer.from(e,"ascii"))),setImmediate(c)}_flush(a){this._remainingBytes&&this._remainingBytes.length&&(this._curLine+=as(this._remainingBytes)),this._curLine&&(this._curLine=at(this._curLine,this.options.lineLength),this.outputBytes+=this._curLine.length,this.push(Buffer.from(this._curLine,"ascii")),this._curLine=""),a()}}a.s(["Encoder",0,au,"encode",0,as,"wrap",0,at],59480);var av=G;let aw=[[9],[10],[13],[32,60],[62,126]];function ax(a){let b;"string"==typeof a&&(a=Buffer.from(a,"utf-8"));let c="";for(let d=0,e=a.length;d<e;d++){if(function(a,b){for(let c=b.length-1;c>=0;c--){let d=b[c];if(d.length&&(1===d.length&&a===d[0]||2===d.length&&a>=d[0]&&a<=d[1]))return!0}return!1}(b=a[d],aw)&&(32!==b&&9!==b||d!==e-1&&10!==a[d+1]&&13!==a[d+1])){c+=String.fromCharCode(b);continue}c+="="+(b<16?"0":"")+b.toString(16).toUpperCase()}return c}function ay(a,b){let c,d,e;if(a=(a||"").toString(),b=Math.max(Number(b)||76,4),a.length<=b)return a;let f=0,g=a.length,h=Math.floor(b/3),i="";for(;f<g;){if(c=(e=a.substr(f,b)).match(/\r\n/)){i+=e=e.substr(0,c.index+c[0].length),f+=e.length;continue}if("\n"===e.substr(-1)){i+=e,f+=e.length;continue}if(c=e.substr(-h).match(/\n.*?$/)){i+=e=e.substr(0,e.length-(c[0].length-1)),f+=e.length;continue}if(e.length>b-h&&(c=e.substr(-h).match(/[ \t.,!?][^ \t.,!?]*$/)))e=e.substr(0,e.length-(c[0].length-1));else if(e.match(/[=][\da-f]{0,2}$/i))for((c=e.match(/[=][\da-f]{0,1}$/i))&&(e=e.substr(0,e.length-c[0].length));e.length>3&&e.length<g-f&&!e.match(/^(?:=[\da-f]{2}){1,4}$/i)&&(c=e.match(/[=][\da-f]{2}$/gi))&&!((d=parseInt(c[0].substr(1,2),16))<128)&&(e=e.substr(0,e.length-3),!(d>=192)););e.length||(e=a.substr(f,b)),f+e.length<g&&"\n"!==e.substr(-1)?(e.length===b&&e.match(/[=][\da-f]{2}$/i)?e=e.substr(0,e.length-3):e.length===b&&(e=e.substr(0,e.length-1)),f+=e.length,e+="=\r\n"):f+=e.length,i+=e}return i}class az extends av.Transform{constructor(a){super(),this.options=a||{},!1!==this.options.lineLength&&(this.options.lineLength=this.options.lineLength||76),this._curLine="",this.inputBytes=0,this.outputBytes=0}_transform(a,b,c){let d;if("buffer"!==b&&(a=Buffer.from(a,b)),!a||!a.length)return c();this.inputBytes+=a.length,this.options.lineLength?(d=(d=ay(d=this._curLine+ax(a),this.options.lineLength)).replace(/(^|\n)([^\n]*)$/,(a,b,c)=>(this._curLine=c,b)))&&(this.outputBytes+=d.length,this.push(d)):(d=ax(a),this.outputBytes+=d.length,this.push(d,"ascii")),c()}_flush(a){this._curLine&&(this.outputBytes+=this._curLine.length,this.push(this._curLine,"ascii")),a()}}function aA(a,b){return"string"==typeof a&&!(b?/[\x00-\x1f\x7f"\u0080-\uFFFF]/:/[\x00-\x08\x0b\x0c\x0e-\x1f\u0080-\uFFFF]/).test(a)}function aB(a){return'"'+(a||"").toString().replace(/["\\]/g,"\\$&")+'"'}function aC(a,b,c){let d;b=(b||"Q").toString().toUpperCase().trim().charAt(0);let e="UTF-8";if((c=c||0)&&c>7+e.length&&(c-=7+e.length),"Q"===b?d=ax(a).replace(/[^a-z0-9!*+\-/=]/gi,a=>{let b=a.charCodeAt(0).toString(16).toUpperCase();return" "===a?"_":"="+(1===b.length?"0"+b:b)}):"B"===b&&(d="string"==typeof a?a:a.toString("utf-8"),c=c?Math.max(3,(c-c%4)/4*3):0),c&&("B"!==b?d:as(a)).length>c)if("Q"===b)d=(function(a,b){let c,d,e,f,g,h=[];for(b=Math.max(b||0,12);a.length;){for((e=(c=a.substr(0,b)).match(/[=][0-9A-F]?$/i))&&(c=c.substr(0,e.index)),d=c.length?c:a.substr(0,b),g=!1;!g&&c.length;)g=!0,(e=a.substr(c.length).match(/^[=]([0-9A-F]{2})/i))&&(f=parseInt(e[1],16))<194&&f>127&&(c=c.substr(0,c.length-3),g=!1);c.length||(c=d),h.push(c),a=a.substr(c.length)}return h})(d,c).join("?= =?"+e+"?"+b+"?");else{let a=[],f="";for(let b=0,e=d.length;b<e;b++){let e=d.charAt(b);/[\ud800-\udbff]/.test(e)&&/[\udc00-\udfff]/.test(d.charAt(b+1))&&(e+=d.charAt(++b)),Buffer.byteLength(f+e)<=c||0===b?f+=e:(a.push(as(f)),f=e)}f&&a.push(as(f)),d=a.length>1?a.join("?= =?"+e+"?"+b+"?"):a.join("")}else"B"===b&&(d=as(a));return"=?"+e+"?"+b+"?"+d+("?="===d.substr(-2)?"":"?=")}function aD(a){let b=[];return Object.keys(a.params||{}).forEach(c=>{let d=a.params[c],e=c.replace(/[\x00-\x1f\x7f]/g,"");!aA(d,!0)||d.length>=75?(function(a,b,c){let d,e,f,g,h=[],i="string"==typeof b?b:(b||"").toString(),j=0;if(c=c||50,aA(b,!0)){if(i.length<=c)return[{key:a,value:i}];(i=i.replace(RegExp(".{"+c+"}","g"),a=>(h.push({line:a}),"")))&&h.push({line:i})}else{if(/[\uD800-\uDBFF]/.test(i)){let a=[];for(f=0,g=i.length;f<g;f++)d=i.charAt(f),/[\ud800-\udbff]/.test(d)&&/[\udc00-\udfff]/.test(i.charAt(f+1))?(a.push(d+=i.charAt(f+1)),f++):a.push(d);i=a}e="utf-8''";let a=!0;for(f=0,j=0,g=i.length;f<g;f++){if(d=i[f],a)d=aH(d);else if((d=" "===d?d:aH(d))!==i[f])if((aH(e)+d).length>=c)h.push({line:e,encoded:a}),e="",a=!0;else{a=!0,f=j,e="";continue}(e+d).length>=c?(h.push({line:e,encoded:a}),e=d=" "===i[f]?" ":aH(i[f]),d===i[f]?(a=!1,j=f-1):a=!0):e+=d}e&&h.push({line:e,encoded:a})}return h.map((b,c)=>({key:a+"*"+c+(b.encoded?"*":""),value:b.line}))})(e,d,50).forEach(a=>{/[\s"\\;:/=(),<>@[\]?]|^[-']|'$/.test(a.value)&&"*"!==a.key.substr(-1)?b.push(a.key+"="+JSON.stringify(a.value)):b.push(a.key+"="+a.value)}):/[\s'"\\;:/=(),<>@[\]?]|^-/.test(d)?b.push(e+"="+JSON.stringify(d)):b.push(e+"="+d)}),("string"==typeof a.value?a.value.replace(/[\x00-\x1f\x7f]/g,""):a.value)+(b.length?"; "+b.join("; "):"")}function aE(a){let b,c={value:"",params:{}},d=(a,b)=>{T(a)||(c.params[a]=b)},e=!1,f="",g="value",h=!1,i=!1;for(let j=0,k=a.length;j<k;j++)if(b=a.charAt(j),"key"===g){if("="===b){e=f.trim().toLowerCase(),g="value",f="";continue}f+=b}else{if(i)f+=b;else if("\\"===b){i=!0;continue}else h&&b===h?h=!1:h||'"'!==b?h||";"!==b?f+=b:(!1===e?c.value=f.trim():d(e,f.trim()),g="key",f=""):h=b;i=!1}return"value"===g?!1===e?c.value=f.trim():d(e,f.trim()):f.trim()&&d(f.trim().toLowerCase(),""),Object.keys(c.params).forEach(a=>{let b,d,e,f;if(e=a.match(/(\*(\d+)|\*(\d+)\*|\*)$/)){if(b=a.substr(0,e.index),d=Number(e[2]||e[3])||0,T(b))return void delete c.params[a];c.params[b]&&"object"==typeof c.params[b]||(c.params[b]={charset:!1,values:[]}),f=c.params[a],0===d&&"*"===e[0].substr(-1)&&(e=f.match(/^([^']*)'[^']*'(.*)$/))&&(c.params[b].charset=e[1]||"iso-8859-1",f=e[2]),c.params[b].values[d]=f,delete c.params[a]}}),Object.keys(c.params).forEach(a=>{let b;c.params[a]&&Array.isArray(c.params[a].values)&&(b=c.params[a].values.map(a=>a||"").join(""),c.params[a].charset?c.params[a]="=?"+c.params[a].charset+"?Q?"+b.replace(/[=?_\s]/g,a=>{let b=a.charCodeAt(0).toString(16);return" "===a?"_":"%"+(b.length<2?"0":"")+b}).replace(/%/g,"=")+"?=":c.params[a]=b)}),c}a.s(["Encoder",0,az,"encode",0,ax,"wrap",0,ay],674834);function aF(a){if(!a)return am;let b=al.default.parse(a),c=(b.ext.substr(1)||b.name||"").split("?").shift().trim().toLowerCase(),d=ao.has(c)?ao.get(c):am;return Array.isArray(d)?d[0]:d}function aG(a,b,c){let d,e;a=(a||"").toString(),b=b||76;let f=0,g=a.length,h="";for(;f<g;){if((d=a.substr(f,b)).length<b){h+=d;break}if(e=d.match(/^[^\n\r]*(\r?\n|\r)/)){h+=d=e[0],f+=d.length;continue}(e=d.match(/(\s+)[^\s]*$/))&&e[0].length-(c?(e[1]||"").length:0)<d.length?d=d.substr(0,d.length-(e[0].length-(c?(e[1]||"").length:0))):(e=a.substr(f+d.length).match(/^[^\s]+(\s*)/))&&(d+=e[0].substr(0,e[0].length-(c?0:(e[1]||"").length))),h+=d,(f+=d.length)<g&&(h+="\r\n")}return h}function aH(a){a=(a||"").toString();try{a=encodeURIComponent(a)}catch(b){a=encodeURIComponent(Buffer.from(a,"utf-8").toString("utf-8"))}return a.replace(/[\x00-\x1F *'()<>@,;:\\"[\]?=\u007F-\uFFFF]/g,a=>(function(a){let b="",c=a.charCodeAt(0).toString(16).toUpperCase();if(c.length%2&&(c="0"+c),c.length>2)for(let a=0,d=c.length/2;a<d;a++)b+="%"+c.substr(a,2);else b+="%"+c;return b})(a))}var aI=a.i(674834),aJ=a.i(59480);let aK=/\s/,aL=/^("(?:[^"\\]|\\[\s\S])*"@\S+)(?:\s+([\s\S]+))?$/,aM=/^[^@\s]+@[^@\s]+$/,aN=/^[^@\s]+@\S+$/,aO=/\s*\b[^@\s]+@[^\s]+\b\s*/y;function aP(a){return 32===a||a>=9&&a<=13||160===a||5760===a||a>=8192&&a<=8202||8232===a||8233===a||8239===a||8287===a||12288===a||65279===a}function aQ(a){return a>=48&&a<=57||a>=65&&a<=90||a>=97&&a<=122||95===a}function aR(a,b){return aQ(a.charCodeAt(b-1))!==aQ(a.charCodeAt(b))}function aS(a,b,c){for(let d=b;d<c;d++)if(64===a.charCodeAt(d))return d;return -1}class aT{constructor(a){this.str=(a||"").toString(),this.operatorCurrent="",this.operatorExpecting="",this.node=null,this.escaped=!1,this.inDomainLiteral=!1,this.list=[],this.operators={'"':'"',"(":")","<":">",",":"",":":";",";":""}}tokenize(){let a=[];for(let a=0,b=this.str.length;a<b;a++){let c=this.str.charAt(a),d=a<b-1?this.str.charAt(a+1):null;this.checkChar(c,d)}return this.list.forEach(b=>{b.value=(b.value||"").toString().trim(),b.value&&a.push(b)}),a}checkChar(a,b){if(this.escaped||this.operatorExpecting||(this.inDomainLiteral||"["!==a?this.inDomainLiteral&&("]"===a||","===a||";"===a)&&(this.inDomainLiteral=!1):this.inDomainLiteral=!0),this.escaped);else if(a===this.operatorExpecting){this.node={type:"operator",value:a},b&&![" "," ","\r","\n",",",";"].includes(b)&&(this.node.noBreak=!0),this.list.push(this.node),this.node=null,this.operatorExpecting="",this.escaped=!1;return}else if(!this.operatorExpecting&&!this.inDomainLiteral&&a in this.operators){this.node={type:"operator",value:a},this.list.push(this.node),this.node=null,this.operatorExpecting=this.operators[a],this.escaped=!1;return}else if(['"',"'"].includes(this.operatorExpecting)&&"\\"===a){this.escaped=!0;return}this.node||(this.node={type:"text",value:""},this.list.push(this.node)),"\n"===a&&(a=" "),(a.charCodeAt(0)>=33||[" "," "].includes(a))&&(this.node.value+=a),this.escaped=!1}}let aU=function a(b,c){let d=(c=c||{})._depth||0;if(d>50)return[];let e=new aT(b).tokenize(),f=[],g=[],h=[];e.forEach(a=>{"operator"===a.type&&(","===a.value||";"===a.value)?(g.length&&f.push(g),g=[]):g.push(a)}),g.length&&f.push(g),f.forEach(b=>{let c=function(b,c){let d=!1,e="text",f=[],g={address:[],comment:[],group:[],text:[],textWasQuoted:[]},h=!1,i={address:"",comment:"",group:"",text:""};for(let a=0,c=b.length;a<c;a++){let c=b[a],f=a?b[a-1]:null;if("operator"===c.type)switch(c.value){case"<":e="address",h=!1;break;case"(":e="comment",h=!1;break;case":":e="group",d=!0,h=!1;break;case'"':h=!h,e="text";break;default:e="text",h=!1}else if(c.value){let d=a>1?b[a-2]:null,j=f?.type==="operator"&&'"'===f.value&&!!f.noBreak&&d?.type==="operator"&&'"'===d.value;"address"===e&&(c.value=c.value.replace(/^[^<]*<\s*/,""));let k=g[e];f&&f.noBreak&&k.length&&(")"!==f.value||"@"===i[e]||"@"===c.value.charAt(0))?(g[e][g[e].length-1]+=c.value,c.value&&(i[e]=c.value.charAt(c.value.length-1)),"text"===e&&h&&(g.textWasQuoted[g.textWasQuoted.length-1]=!0)):(g[e].push(c.value),i[e]=c.value.charAt(c.value.length-1),"text"===e&&g.textWasQuoted.push(h||j))}}if(!g.text.length&&g.comment.length&&(g.text=g.comment,g.comment=[]),d){g.text=g.text.join(" ");let b=[];g.group.length&&a(g.group.join(","),{_depth:c+1}).forEach(a=>{a.group?b=b.concat(a.group):b.push(a)}),f.push({name:g.text||"",group:b})}else{if(!g.address.length&&g.text.length){for(let a=g.text.length-1;a>=0;a--)if(!g.textWasQuoted[a]&&aM.test(g.text[a])){g.address=g.text.splice(a,1),g.textWasQuoted.splice(a,1);break}if(!g.address.length){let a=!1;for(let b=g.text.length-1;b>=0;b--)if(!g.textWasQuoted[b]){let c=g.text[b],d=c,e=function(a){let b=a.length,c=0;for(;c<b;){for(;c<b&&aP(a.charCodeAt(c));)c++;if(c>=b)break;let d=c,e=c;for(;e<b&&!aP(a.charCodeAt(e));)e++;let f=aS(a,d,e);if(f>=0){let b=-1;for(let c=e;c>d;c--)if(aR(a,c)){b=c;break}let c=d;for(;b>=0&&f>=0;){if(f>c&&e>f+1&&b>f+1){for(let b=c;b<f;b++)if(aR(a,b)){if(b>d)return b;let c=d;for(;c>0&&aP(a.charCodeAt(c-1));)c--;return c}}f=aS(a,c=f+1,e)}}c=e}return -1}(c);if(e>=0){aO.lastIndex=e;let b=aO.exec(c);b&&(g.address=[b[0].trim()],a=!0,d=c.slice(0,e)+" "+c.slice(e+b[0].length))}if(g.text[b]=d.trim(),a)break}}}!g.text.length&&g.comment.length&&(g.text=g.comment,g.comment=[]),g.address.length>1&&(g.text=g.text.concat(g.address.splice(1)));let a=!g.address.length&&g.textWasQuoted.some(a=>a);g.text=g.text.join(" "),g.address=g.address.join(" "),a&&g.text&&(g.address=function(a){let b=a.lastIndexOf("@");if(b<0)return a;let c=a.substr(0,b);return/^[^\s"(),:;<>@[\\\]]+$/.test(c)||/^"(?:[^"\\]|\\[\s\S])*"$/.test(c)?a:'"'+c.replace(/["\\]/g,"\\$&")+'"@'+a.substr(b+1)}(g.text),g.text=""),function(a){let b,c;if(!aK.test(a.address))return;let d=a.address.match(aL);if(d){if(!d[2])return;b=d[1],c=[d[2]]}else{if(a.address.indexOf('"')>=0)return;let d=a.address.split(/\s+/),e=d.findIndex(a=>aM.test(a));if(e<0&&(e=d.findIndex(a=>aN.test(a))),e<0)return;b=d.splice(e,1)[0],c=d}a.address=b,a.text=[a.text].concat(c).filter(a=>a).join(" ")}(g);let b={address:g.address||g.text||"",name:g.text||g.address||""};b.address===b.name&&(/@/.test(b.address||"")?b.name="":b.address=""),f.push(b)}return f}(b,d);for(let a=0;a<c.length;a++)h.push(c[a])});let i=[];for(let a=h.length-1;a>=0;a--){let b=h[a],c=i.length?i[i.length-1]:null;c&&""===b.address&&b.name&&!b.group&&c.address&&c.name?c.name=b.name+", "+c.name:i.push(b)}if(i.reverse(),h=i,c.flatten){let a=[],b=c=>{c.forEach(c=>{if(c.group)return b(c.group);a.push(c)})};return b(h),a}return h};var aV=G;class aW extends aV.Transform{constructor(){super(),this.lastByte=!1}_transform(a,b,c){a.length&&(this.lastByte=a[a.length-1]),this.push(a),c()}_flush(a){return 10===this.lastByte||(13===this.lastByte?this.push(Buffer.from("\n")):this.push(Buffer.from("\r\n"))),a()}}var aX=G;class aY extends aX.Transform{constructor(a){super(a),this.lastByte=!1}_transform(a,b,c){let d,e=0;for(let b=0,c=a.length;b<c;b++)10===a[b]&&(b&&13!==a[b-1]||!b&&13!==this.lastByte)&&(b>e&&(d=a.slice(e,b),this.push(d)),this.push(Buffer.from("\r\n")),e=b+1);e&&e<a.length?(d=a.slice(e),this.push(d)):e||this.push(a),this.lastByte=a[a.length-1],c()}}var aZ=G;class a$ extends aZ.Transform{constructor(a){super(a)}_transform(a,b,c){let d,e=0;for(let b=0,c=a.length;b<c;b++)13===a[b]&&(d=a.slice(e,b),e=b+1,this.push(d));e&&e<a.length?(d=a.slice(e),this.push(d)):e||this.push(a),c()}}let a_=["From","Sender","To","Cc","Bcc","Reply-To","Date","References"],a0="[A-Za-z0-9!#$%&'*+\\-/=?^_`{|}~\\x80-\\uFFFF]",a1=RegExp("^"+a0+"+(?:\\."+a0+"+)*$"),a2=/^"(?:[^"\\]|\\[\s\S])*"$/,a3=/^[^\s"(),:;<>@[\\\]]+@[^\s"(),:;<>@[\\\]]+$/,a4=/[/\\?#%\x00-\x20\x7F]/;function a5(a){return a.replace(/[\x00-\x1f\x7f]+/g,"")}let a6=class a{constructor(a,b){this.nodeCounter=0,b=b||{},this.baseBoundary=a5(b.baseBoundary||aq.default.randomBytes(8).toString("hex")),this.boundaryPrefix=a5(b.boundaryPrefix||"--_NmP"),this.disableFileAccess=!!b.disableFileAccess,this.disableUrlAccess=!!b.disableUrlAccess,this.normalizeHeaderKey=b.normalizeHeaderKey,this.date=b.parentNode?null:new Date,this.rootNode=b.rootNode||this,this.keepBcc=!!b.keepBcc,b.filename&&(this.filename=b.filename,a||(a=aF(this.filename.split(".").pop()))),this.textEncoding=(b.textEncoding||"").toString().trim().charAt(0).toUpperCase(),this.parentNode=b.parentNode,this.hostname=b.hostname,this.newline=b.newline,this.childNodes=[],this._nodeId=++this.rootNode.nodeCounter,this._headers=[],this._isPlainText=!1,this._hasLongLines=!1,this._envelope=!1,this._raw=!1,this._transforms=[],this._processFuncs=[],a&&this.setHeader("Content-Type",a)}createChild(b,c){c||"object"!=typeof b||(c=b,b=void 0);let d=new a(b,c);return this.appendChild(d),d}appendChild(a){return a.parentNode&&a.parentNode!==this&&a.remove(),a.rootNode!==this.rootNode&&(a.rootNode=this.rootNode,a._nodeId=++this.rootNode.nodeCounter),a.parentNode=this,this.childNodes.push(a),a}replace(a){return a===this?this:(this.parentNode.childNodes.forEach((b,c)=>{b===this&&(a.rootNode=this.rootNode,a.parentNode=this.parentNode,a._nodeId=this._nodeId,this.rootNode=this,this.parentNode=void 0,a.parentNode.childNodes[c]=a)}),a)}remove(){if(!this.parentNode)return this;for(let a=this.parentNode.childNodes.length-1;a>=0;a--)if(this.parentNode.childNodes[a]===this)return this.parentNode.childNodes.splice(a,1),this.parentNode=void 0,this.rootNode=this,this}setHeader(a,b){let c=!1;if(!b&&a&&"object"==typeof a)return a.key&&"value"in a?this.setHeader(a.key,a.value):Array.isArray(a)?a.forEach(a=>{this.setHeader(a.key,a.value)}):Object.keys(a).forEach(b=>{this.setHeader(b,a[b])}),this;let d={key:a=this._normalizeHeaderKey(a),value:b};for(let b=0,e=this._headers.length;b<e;b++)this._headers[b].key===a&&(c?(this._headers.splice(b,1),b--,e--):(this._headers[b]=d,c=!0));return c||this._headers.push(d),this}addHeader(a,b){return!b&&a&&"object"==typeof a?a.key&&a.value?this.addHeader(a.key,a.value):Array.isArray(a)?a.forEach(a=>{this.addHeader(a.key,a.value)}):Object.keys(a).forEach(b=>{this.addHeader(b,a[b])}):Array.isArray(b)?b.forEach(b=>{this.addHeader(a,b)}):this._headers.push({key:this._normalizeHeaderKey(a),value:b}),this}getHeader(a){a=this._normalizeHeaderKey(a);for(let b=0,c=this._headers.length;b<c;b++)if(this._headers[b].key===a)return this._headers[b].value}setContent(a){if(this.content=a,"function"==typeof this.content.pipe)this._contentErrorHandler=a=>{this.content.removeListener("error",this._contentErrorHandler),this.content=a},this.content.once("error",this._contentErrorHandler);else if("string"==typeof this.content){var b;this._isPlainText=aA(this.content),this._isPlainText&&((b=this.content).length>131072||RegExp("^.{77,}","m").test(b))&&(this._hasLongLines=!0)}return this}build(a){let b;a||(b=new Promise((b,c)=>{a=af(b,c)}));let c=a,d=this.createReadStream(),e=[],f=0,g=!1;return d.on("readable",()=>{let a;for(;null!==(a=d.read());)e.push(a),f+=a.length}),d.once("error",a=>{if(!g)return g=!0,c(a)}),d.once("end",a=>{if(!g)return g=!0,a&&a.length&&(e.push(a),f+=a.length),c(null,Buffer.concat(e,f))}),b}getTransferEncoding(){let a=!1,b=(this.getHeader("Content-Type")||"").toString().toLowerCase().trim();return this.content&&((a=(this.getHeader("Content-Transfer-Encoding")||"").toString().toLowerCase().trim())&&["base64","quoted-printable"].includes(a)||(/^text\//i.test(b)?a=this._isPlainText&&!this._hasLongLines?"7bit":"string"==typeof this.content||this.content instanceof Buffer?"Q"===this._getTextEncoding(this.content)?"quoted-printable":"base64":"B"===this.textEncoding?"base64":"quoted-printable":/^(multipart|message)\//i.test(b)||(a=a||"base64"))),a}buildHeaders(){let a=this.getTransferEncoding(),b=[];if(a&&this.setHeader("Content-Transfer-Encoding",a),this.filename&&!this.getHeader("Content-Disposition")&&this.setHeader("Content-Disposition","attachment"),this.rootNode===this){this.getHeader("Date")||this.setHeader("Date",this.date.toUTCString().replace(/GMT/,"+0000")),this.messageId(),this.getHeader("MIME-Version")||this.setHeader("MIME-Version","1.0");for(let a=this._headers.length-2;a>=0;a--){let b=this._headers[a];"Content-Type"===b.key&&(this._headers.splice(a,1),this._headers.push(b))}}return this._headers.forEach(a=>{let c,d,e=a.key,f=a.value,g={};if(!f||"object"!=typeof f||a_.includes(e)||(U(g,f,a=>"value"===a),(f=(f.value||"").toString()).trim())){if(g.prepared)return void(g.foldLines?b.push(aG(e+": "+f)):b.push(e+": "+f));switch(a.key){case"Content-Disposition":c=aE(f),this.filename&&(c.params.filename=this.filename),f=aD(c);break;case"Content-Type":(c=aE(f)).value=(c.value||"").toString().replace(/[\x00-\x1f\x7f]/g,""),this._handleContentType(c),c.value.match(/^text\/plain\b/)&&"string"==typeof this.content&&/[\u0080-\uFFFF]/.test(this.content)&&(c.params.charset="utf-8"),f=aD(c),this.filename&&(((d=/[\x00-\x1f\x7f]/.test(this.filename)?aC(this.filename,this._getTextEncoding(this.filename),52):this._encodeWords(this.filename))!==this.filename||/[\s'"\\;:/=(),<>@[\]?]|^-/.test(d))&&(d=JSON.stringify(d)),f+="; name="+d);break;case"Bcc":if(!this.keepBcc)return}if(((f=this._encodeHeaderValue(e,f))||"").toString().trim()){if("function"==typeof this.normalizeHeaderKey){let a=this.normalizeHeaderKey(e,f),b="string"==typeof a?a.replace(/[\x00-\x1f\x7f]/g,""):"";b&&(e=b)}b.push(aG(e+": "+f,76))}}}),b.join("\r\n")}createReadStream(a){let b;a=a||{};let c=new G.PassThrough(a),d=c;this.stream(c,a,a=>{a?d.emit("error",a):c.end()});for(let a=0,c=this._transforms.length;a<c;a++)b="function"==typeof this._transforms[a]?this._transforms[a]():this._transforms[a],d.once("error",a=>{b.emit("error",a)}),d=d.pipe(b);b=new aW,d.once("error",a=>{b.emit("error",a)}),d=d.pipe(b);for(let a=0,c=this._processFuncs.length;a<c;a++)d=(b=this._processFuncs[a])(d);if(this.newline){let a=["win","windows","dos","\r\n"].includes(this.newline.toString().toLowerCase())?new aY:new a$,b=d.pipe(a);return d.on("error",a=>b.emit("error",a)),b}return d}transform(a){this._transforms.push(a)}processFunc(a){this._processFuncs.push(a)}stream(a,b,c){let d,e,f=this.getTransferEncoding(),g=!1,h=a=>{g||(g=!0,c(a))},i=()=>{let c=0,d=()=>{if(c>=this.childNodes.length)return a.write("\r\n--"+this.boundary+"--\r\n"),h();let e=this.childNodes[c++];a.write((c>1?"\r\n":"")+"--"+this.boundary+"\r\n"),e.stream(a,b,a=>{if(a)return h(a);setImmediate(d)})};if(!this.multipart)return h();setImmediate(d)},j=()=>{if(this.content){if("[object Error]"===Object.prototype.toString.call(this.content))return h(this.content);"function"==typeof this.content.pipe&&(this.content.removeListener("error",this._contentErrorHandler),this._contentErrorHandler=a=>h(a),this.content.once("error",this._contentErrorHandler));let c=()=>{["quoted-printable","base64"].includes(f)?((d=new("base64"===f?aJ:aI).Encoder(b)).pipe(a,{end:!1}),d.once("end",i),d.once("error",a=>h(a)),(e=this._getStream(this.content)).pipe(d)):((e=this._getStream(this.content)).pipe(a,{end:!1}),e.once("end",i)),e.once("error",a=>h(a))};if(this.content._resolve){let a=[],b=0,d=!1,e=this._getStream(this.content);e.on("error",a=>{d||(d=!0,h(a))}),e.on("readable",()=>{let c;for(;null!==(c=e.read());)a.push(c),b+=c.length}),e.on("end",()=>{d||(d=!0,this.content._resolve=!1,this.content._resolvedValue=Buffer.concat(a,b),setImmediate(c))})}else setImmediate(c);return}return setImmediate(i)};this._raw?setImmediate(()=>{if("[object Error]"===Object.prototype.toString.call(this._raw))return h(this._raw);"function"==typeof this._raw.pipe&&this._raw.removeListener("error",this._contentErrorHandler);let b=this._getStream(this._raw);b.pipe(a,{end:!1}),b.on("error",b=>a.emit("error",b)),b.on("end",i)}):(a.write(this.buildHeaders()+"\r\n\r\n"),setImmediate(j))}setEnvelope(a){let b;this._envelope={from:!1,to:[]},a.from&&(b=[],this._convertAddresses(this._parseEnvelopeAddresses(a.from),b),(b=b.filter(a=>a&&a.address)).length&&b[0]&&(this._envelope.from=b[0].address));let c=new Set,d=[];["to","cc","bcc"].forEach(b=>{a[b]&&this._convertAddresses(this._parseEnvelopeAddresses(a[b]),d,c)}),this._envelope.to=d.map(a=>a.address).filter(a=>a);let e=["to","cc","bcc","from"];return U(this._envelope,a,a=>e.includes(a)),this}getAddresses(){let a={},b=new Map;return this._headers.forEach(c=>{let d=c.key.toLowerCase();["from","sender","reply-to","to","cc","bcc"].includes(d)&&(Array.isArray(a[d])||(a[d]=[],b.set(d,new Set)),this._convertAddresses(this._parseAddresses(c.value),a[d],b.get(d)))}),a}getEnvelope(){if(this._envelope)return this._envelope;let a={from:!1,to:[]},b=new Set,c=[];return this._headers.forEach(d=>{let e=[];"From"===d.key||!a.from&&["Reply-To","Sender"].includes(d.key)?(this._convertAddresses(this._parseAddresses(d.value),e),e.length&&e[0]&&(a.from=e[0].address)):["To","Cc","Bcc"].includes(d.key)&&this._convertAddresses(this._parseAddresses(d.value),c,b)}),a.to=c.map(a=>a.address),a}messageId(){let a=this.getHeader("Message-ID");return a||(a=this._generateMessageId(),this.setHeader("Message-ID",a)),a}setRaw(a){return this._raw=a,this._raw&&"function"==typeof this._raw.pipe&&(this._contentErrorHandler=a=>{this._raw.removeListener("error",this._contentErrorHandler),this._raw=a},this._raw.once("error",this._contentErrorHandler)),this}_accessDisabled(a){let b=this;for(;b;){if(b[a])return!0;b=b.parentNode}return!1}_getStream(a){let b;return a._resolvedValue?(b=new G.PassThrough,setImmediate(()=>{try{b.end(a._resolvedValue)}catch(a){b.emit("error",a)}}),b):"function"==typeof a.pipe?a:a&&"string"==typeof a.path&&!a.href?this._accessDisabled("disableFileAccess")?(b=new G.PassThrough,setImmediate(()=>{let c=Error("File access rejected for "+a.path);c.code=Q,b.emit("error",c)}),b):C.default.createReadStream(a.path):a&&"string"==typeof a.href?this._accessDisabled("disableUrlAccess")?(b=new G.PassThrough,setImmediate(()=>{let c=Error("Url access rejected for "+a.href);c.code=R,b.emit("error",c)}),b):X(a.href,{headers:a.httpHeaders,tls:a.tls}):(b=new G.PassThrough,setImmediate(()=>{try{b.end(a||"")}catch(a){b.emit("error",a)}}),b)}_parseAddresses(a){let b=[],c=new WeakSet,d=[],e=a=>{c.has(a)||(c.add(a),d.push({list:a,pos:0}))};for(e(Array.isArray(a)?a:[a]);d.length;){let a=d[d.length-1];if(a.pos>=a.list.length){d.pop();continue}let c=a.list[a.pos++];if(Array.isArray(c)){e(c);continue}if(c&&c.address){let a=this._normalizeAddress(c.address);if(a===c.address&&"string"==typeof c.name){b.push(c);continue}let d=U({},c);d.address=a,d.name=c.name||"",b.push(d);continue}let f=this._normalizeParsedAddresses(aU(c));for(let a=0;a<f.length;a++)b.push(f[a])}return b}_normalizeParsedAddresses(a){return a.forEach(a=>{a.address?a.address=this._normalizeAddress(a.address):a.group&&this._normalizeParsedAddresses(a.group)}),a}_parseEnvelopeAddresses(a){return this._parseAddresses(a).map(a=>a.address||a.group||!a.name||/[\s@]/.test(a.name)?a:{address:this._normalizeAddress(a.name),name:""})}_normalizeHeaderKey(a){return a=(a||"").toString().replace(/\r?\n|\r/g," ").replace(/[\x00-\x1f\x7f]/g,"").trim().toLowerCase().replace(/^X-SMTPAPI$|^(MIME|DKIM|ARC|BIMI)\b|^[a-z]|-(SPF|FBL|ID|MD5)$|-[a-z]/gi,a=>a.toUpperCase()).replace(/^Content-Features$/i,"Content-features")}_handleContentType(a){if(this.contentType=a.value.trim().toLowerCase(),this.multipart=!!/^multipart\//i.test(this.contentType)&&this.contentType.substr(this.contentType.indexOf("/")+1),this.multipart){let b=a5(a.params.boundary||this.boundary||"");this.boundary=a.params.boundary=b||a5(this._generateBoundary())}else this.boundary=!1}_generateBoundary(){return a5(this.rootNode.boundaryPrefix+"-"+this.rootNode.baseBoundary)+"-Part_"+this._nodeId}_encodeHeaderValue(a,b){switch(a=this._normalizeHeaderKey(a)){case"From":case"Sender":case"To":case"Cc":case"Bcc":case"Reply-To":return this._convertAddresses(this._parseAddresses(b));case"Message-ID":case"In-Reply-To":case"Content-Id":return"<"!==(b=(b||"").toString().replace(/\r?\n|\r/g," ").replace(/[\x00-\x08\x0b\x0c\x0e-\x1f\x7f]/g,"")).charAt(0)&&(b="<"+b),">"!==b.charAt(b.length-1)&&(b+=">"),b;case"References":return(b=[].concat.apply([],[].concat(b||"").map(a=>(a=(a||"").toString().replace(/\r?\n|\r/g," ").replace(/[\x00-\x08\x0b\x0c\x0e-\x1f\x7f]/g,"").trim()).replace(/<[^>]*>/g,a=>a.replace(/\s/g,"")).split(/\s+/))).map(a=>("<"!==a.charAt(0)&&(a="<"+a),">"!==a.charAt(a.length-1)&&(a+=">"),a))).join(" ").trim();case"Date":if("[object Date]"===Object.prototype.toString.call(b))return b.toUTCString().replace(/GMT/,"+0000");return b=(b||"").toString().replace(/\r?\n|\r/g," "),this._encodeHeaderText(b);case"Content-Type":case"Content-Disposition":return(b||"").toString().replace(/\r?\n|\r/g," ");default:return b=(b||"").toString().replace(/\r?\n|\r/g," "),this._encodeHeaderText(b)}}_convertAddresses(a,b,c){let d=[];if(b=b||[],!c){c=new Set;for(let a=0;a<b.length;a++)c.add(b[a].address)}return[].concat(a||[]).forEach(a=>{if(a.address)a.address=this._normalizeAddress(a.address),a.name?d.push(`${this._encodeAddressName(a.name)} <${a.address}>`):d.push(a3.test(a.address)?a.address:`<${a.address}>`),c.has(a.address)||(c.add(a.address),b.push(a));else if(a.group){let e=(a.group.length?this._convertAddresses(a.group,b,c):"").trim();d.push(`${this._encodeAddressName(a.name)}:${e};`)}}),d.join(", ")}_normalizeAddress(a){if(!(a=(a||"").toString().replace(/[\x00-\x1F\x7F<>]+/g," ").trim()))return a;let b=a.lastIndexOf("@");if(b<0)return this._normalizeLocalPart(a);let c=a.substr(0,b),d=a.substr(b+1),g=d,h=/[\x80-\uFFFF]/.test(c);try{g=function(a,b){let c=b?e.default.domainToUnicode:e.default.domainToASCII;if("function"==typeof c&&!a4.test(a)){let b=c(a);if(b)return b}return b?m(a,function(a){return f.test(a)?p(a.slice(4).toLowerCase()):a}):r(a)}(d.toLowerCase(),h)}catch(a){}return`${this._normalizeLocalPart(c)}@${g}`}_normalizeLocalPart(a){return a1.test(a)||a2.test(a)?a:aB(a)}_encodeAddressName(a){if(!/^[\w ]*$/.test(a))if(/^[\x20-\x7e]*$/.test(a))return aB(a);else return aC(a,this._getTextEncoding(a),52);return a}_encodeHeaderText(a){return/[\x00-\x08\x0b\x0c\x0e-\x1f\x7f]/.test(a)?aC(a,this._getTextEncoding(a),52):this._encodeWords(a)}_encodeWords(a){return function(a,b,c,d){c=c||0;let e=a.match(/(?:^|\s)([^\s]*["\u0080-\uFFFF])/);if(!e)return a;if(d)return aC(a,b,c);let f=a.match(/(["\u0080-\uFFFF][^\s]*)[^"\u0080-\uFFFF]*$/);if(!f)return a;let g=e.index+(e[0].match(/[^\s]/)||{index:0}).index,h=f.index+(f[1]||"").length;return(g?a.substr(0,g):"")+aC(a.substring(g,h),b||"Q",c)+(h<a.length?a.substr(h):"")}(a,this._getTextEncoding(a),52,!0)}_getTextEncoding(a){if(a=(a||"").toString(),this.textEncoding)return this.textEncoding;let b=0,c=0;for(let d=0,e=a.length;d<e;d++){let e=a.charCodeAt(d);e>=0&&e<=8||11===e||12===e||e>=14&&e<=31||e>=128?b++:(e>=65&&e<=90||e>=97&&e<=122)&&c++}return b<c?"Q":"B"}_generateMessageId(){return"<"+[2,2,2,6].reduce((a,b)=>a+"-"+aq.default.randomBytes(b).toString("hex"),aq.default.randomBytes(4).toString("hex"))+"@"+(this.getEnvelope().from||this.hostname||"localhost").split("@").pop()+">"}};function a7(a){return"object"==typeof a&&!!(a.content||a.path||a.href||a.raw)}let a8=class{constructor(a){this.mail=a||{},this.message=!1}compile(){return this._alternatives=this.getAlternatives(),this._htmlNode=this._alternatives.filter(a=>/^text\/html\b/i.test(a.contentType)).pop(),this._attachments=this.getAttachments(!!this._htmlNode),this._useRelated=!!(this._htmlNode&&this._attachments.related.length),this._useAlternative=this._alternatives.length>1,this._useMixed=this._attachments.attached.length>1||this._alternatives.length&&1===this._attachments.attached.length,this.mail.raw?this.message=new a6("message/rfc822",{newline:this.mail.newline,disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess}).setRaw(this.mail.raw):this._useMixed?this.message=this._createMixed():this._useAlternative?this.message=this._createAlternative():this._useRelated?this.message=this._createRelated():this.message=this._createContentNode(!1,[].concat(this._alternatives||[]).concat(this._attachments.attached||[]).shift()||{contentType:"text/plain",content:""}),this.mail.headers&&this.message.addHeader(this.mail.headers),["from","sender","to","cc","bcc","reply-to","in-reply-to","references","subject","message-id","date"].forEach(a=>{let b=a.replace(/-(\w)/g,(a,b)=>b.toUpperCase());this.mail[b]&&this.message.setHeader(a,this.mail[b])}),this.mail.envelope&&this.message.setEnvelope(this.mail.envelope),this.message.messageId(),this.message}getAttachments(a){let b,c=[].concat(this.mail.attachments||[]).map((a,b)=>{/^data:/i.test(a.path||a.href)&&(a=this._processDataUrl(a));let c=a.contentType||aF(a.filename||a.path||a.href||"bin"),d=/^image\//i.test(c),e=/^message\//i.test(c),f={contentType:c,contentDisposition:a.contentDisposition||(e||d&&a.cid?"inline":"attachment"),contentTransferEncoding:"contentTransferEncoding"in a?a.contentTransferEncoding:e?"8bit":"base64"};return a.filename?f.filename=a.filename:!e&&!1!==a.filename&&(f.filename=(a.path||a.href||"").split(/[/\\]/).pop().split("?").shift()||"attachment-"+(b+1),0>f.filename.indexOf(".")&&(f.filename+="."+ap(f.contentType))),/^https?:\/\//i.test(a.path)&&(a.href=a.path,a.path=void 0),a.cid&&(f.cid=a.cid),a.raw?f.raw=a.raw:a.path?f.content={path:a.path}:a.href?f.content={href:a.href,httpHeaders:a.httpHeaders,tls:a.tls}:f.content=a.content||"",a.encoding&&(f.encoding=a.encoding),a.headers&&(f.headers=a.headers),f});return(this.mail.icalEvent&&((b=Object.assign({},this._getIcalEvent())).contentType="application/ics",b.headers||(b.headers={}),b.filename=b.filename||"invite.ics",b.headers["Content-Disposition"]="attachment",b.headers["Content-Transfer-Encoding"]="base64"),a)?{attached:c.filter(a=>!a.cid).concat(b||[]),related:c.filter(a=>!!a.cid)}:{attached:c.concat(b||[]),related:[]}}_getIcalEvent(){if(!this._icalEvent){let a;a=a7(this.mail.icalEvent)?U({},this.mail.icalEvent):{content:this.mail.icalEvent},/^data:/i.test(a.path||a.href)&&(a=this._processDataUrl(a)),/^https?:\/\//i.test(a.path)&&(a.href=a.path,a.path=void 0),!a.raw&&(a.path?(a.content={path:a.path},a.path=void 0):a.href&&(a.content={href:a.href,httpHeaders:a.httpHeaders,tls:a.tls},a.href=void 0)),a.content&&"object"==typeof a.content&&(a.content._resolve=!0),this._icalEvent=a}return this._icalEvent}getAlternatives(){let a,b,c,d,e,f=[];return this.mail.text&&((a=a7(this.mail.text)?this.mail.text:{content:this.mail.text}).contentType="text/plain; charset=utf-8"),this.mail.watchHtml&&((c=a7(this.mail.watchHtml)?this.mail.watchHtml:{content:this.mail.watchHtml}).contentType="text/watch-html; charset=utf-8"),this.mail.amp&&((d=a7(this.mail.amp)?this.mail.amp:{content:this.mail.amp}).contentType="text/x-amp-html; charset=utf-8"),this.mail.icalEvent&&((e=Object.assign({},this._getIcalEvent())).filename=!1,e.contentType="text/calendar; charset=utf-8; method="+(e.method||"PUBLISH").toString().trim().toUpperCase(),e.headers||(e.headers={})),this.mail.html&&((b=a7(this.mail.html)?this.mail.html:{content:this.mail.html}).contentType="text/html; charset=utf-8"),[].concat(a||[]).concat(c||[]).concat(d||[]).concat(b||[]).concat(e||[]).concat(this.mail.alternatives||[]).forEach(a=>{/^data:/i.test(a.path||a.href)&&(a=this._processDataUrl(a));let b={contentType:a.contentType||aF(a.filename||a.path||a.href||"txt"),contentTransferEncoding:a.contentTransferEncoding};a.filename&&(b.filename=a.filename),/^https?:\/\//i.test(a.path)&&(a.href=a.path,a.path=void 0),a.raw?b.raw=a.raw:a.path?b.content={path:a.path}:a.href?b.content={href:a.href,httpHeaders:a.httpHeaders,tls:a.tls}:b.content=a.content||"",a.encoding&&(b.encoding=a.encoding),a.headers&&(b.headers=a.headers),f.push(b)}),f}_createMixed(a){let b=a?a.createChild("multipart/mixed",{disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess,normalizeHeaderKey:this.mail.normalizeHeaderKey,newline:this.mail.newline}):new a6("multipart/mixed",{baseBoundary:this.mail.baseBoundary,textEncoding:this.mail.textEncoding,boundaryPrefix:this.mail.boundaryPrefix,disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess,normalizeHeaderKey:this.mail.normalizeHeaderKey,newline:this.mail.newline});return this._useAlternative?this._createAlternative(b):this._useRelated&&this._createRelated(b),[].concat(!this._useAlternative&&this._alternatives||[]).concat(this._attachments.attached||[]).forEach(a=>{this._useRelated&&a===this._htmlNode||this._createContentNode(b,a)}),b}_createAlternative(a){let b=a?a.createChild("multipart/alternative",{disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess,normalizeHeaderKey:this.mail.normalizeHeaderKey,newline:this.mail.newline}):new a6("multipart/alternative",{baseBoundary:this.mail.baseBoundary,textEncoding:this.mail.textEncoding,boundaryPrefix:this.mail.boundaryPrefix,disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess,normalizeHeaderKey:this.mail.normalizeHeaderKey,newline:this.mail.newline});return this._alternatives.forEach(a=>{this._useRelated&&this._htmlNode===a?this._createRelated(b):this._createContentNode(b,a)}),b}_createRelated(a){let b=a?a.createChild('multipart/related; type="text/html"',{disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess,normalizeHeaderKey:this.mail.normalizeHeaderKey,newline:this.mail.newline}):new a6('multipart/related; type="text/html"',{baseBoundary:this.mail.baseBoundary,textEncoding:this.mail.textEncoding,boundaryPrefix:this.mail.boundaryPrefix,disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess,normalizeHeaderKey:this.mail.normalizeHeaderKey,newline:this.mail.newline});return this._createContentNode(b,this._htmlNode),this._attachments.related.forEach(a=>this._createContentNode(b,a)),b}_createContentNode(a,b){(b=b||{}).content=b.content||"";let c=(b.encoding||"utf8").toString().toLowerCase().replace(/[-_\s]/g,""),d=a?a.createChild(b.contentType,{filename:b.filename,textEncoding:this.mail.textEncoding,disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess,normalizeHeaderKey:this.mail.normalizeHeaderKey,newline:this.mail.newline}):new a6(b.contentType,{filename:b.filename,baseBoundary:this.mail.baseBoundary,textEncoding:this.mail.textEncoding,boundaryPrefix:this.mail.boundaryPrefix,disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess,normalizeHeaderKey:this.mail.normalizeHeaderKey,newline:this.mail.newline});return b.headers&&d.addHeader(b.headers),b.cid&&d.setHeader("Content-Id","<"+b.cid.replace(/[<>]/g,"")+">"),b.contentTransferEncoding?d.setHeader("Content-Transfer-Encoding",b.contentTransferEncoding):this.mail.encoding&&/^text\//i.test(b.contentType)&&d.setHeader("Content-Transfer-Encoding",this.mail.encoding),(!/^text\//i.test(b.contentType)||b.contentDisposition)&&d.setHeader("Content-Disposition",b.contentDisposition||(b.cid&&/^image\//i.test(b.contentType)?"inline":"attachment")),"string"!=typeof b.content||["utf8","usascii","ascii"].includes(c)||(b.content=Buffer.from(b.content,c)),b.raw?d.setRaw(b.raw):d.setContent(b.content),d}_processDataUrl(a){let b,c=a.path||a.href;if(!c||"string"!=typeof c||!c.startsWith("data:"))return a;if(c.length>0x3200000){let b="application/octet-stream",d=c.indexOf(",");if(d>0&&d<200){let a=c.substring(5,d).split(";");a[0]&&a[0].includes("/")&&(b=a[0].trim())}return Object.assign(U({},a),{path:!1,href:!1,content:Buffer.alloc(0),contentType:a.contentType||b})}try{b=ag(c)}catch(b){return a}return b&&(a.content=b.data,a.contentType=a.contentType||b.contentType,"path"in a&&(a.path=!1),"href"in a&&(a.href=!1)),a}};var a9=G;class ba extends a9.Transform{constructor(a){super(a),this.lastBytes=Buffer.alloc(4),this.headersParsed=!1,this.headerBytes=0,this.headerChunks=[],this.rawHeaders=!1,this.bodySize=0}updateLastBytes(a){let b=this.lastBytes.length,c=Math.min(a.length,b);for(let a=0,d=b-c;a<d;a++)this.lastBytes[a]=this.lastBytes[a+c];for(let d=1;d<=c;d++)this.lastBytes[b-d]=a[a.length-d]}checkHeaders(a){if(this.headersParsed)return!0;let b=this.lastBytes.length,c=0;for(let d=0,e=this.lastBytes.length+a.length;d<e;d++)if(10===(d<b?this.lastBytes[d]:a[d-b])&&d){let e=d-1<b?this.lastBytes[d-1]:a[d-1-b],f=d>1&&(d-2<b?this.lastBytes[d-2]:a[d-2-b]);if(10===e||13===e&&10===f){this.headersParsed=!0,c=d-b+1,this.headerBytes+=c;break}}if(this.headersParsed){if(this.headerChunks.push(a.slice(0,c)),this.rawHeaders=Buffer.concat(this.headerChunks,this.headerBytes),this.headerChunks=null,this.emit("headers",this.parseHeaders()),a.length>c){let b=a.slice(c);this.bodySize+=b.length,setImmediate(()=>this.push(b))}return!1}return this.headerBytes+=a.length,this.headerChunks.push(a),this.updateLastBytes(a),!1}_transform(a,b,c){let d;if(!a||!a.length)return c();"string"==typeof a&&(a=Buffer.from(a,b));try{d=this.checkHeaders(a)}catch(a){return c(a)}d&&(this.bodySize+=a.length,this.push(a)),setImmediate(c)}_flush(a){this.headerChunks&&(this.rawHeaders=Buffer.concat(this.headerChunks,this.headerBytes),this.headerChunks=null,this.emit("headers",this.parseHeaders())),a()}parseHeaders(){let a=(this.rawHeaders||Buffer.alloc(0)).toString("binary").split(/\r?\n/),b=[];for(let c of a)b.length&&/^[ \t]/.test(c)?b[b.length-1]+="\n"+c:b.push(c);return b.filter(a=>/[^ \t\r]/.test(a)).map(a=>({key:a.substr(0,a.indexOf(":")).replace(/^[ \t]+|[ \t]+$/g,"").toLowerCase(),line:a}))}}var bb=G;let bc=Buffer.from("\r\n"),bd=Buffer.alloc(4096,bc);class be extends bb.Transform{constructor(a){super(),a=a||{},this.bodyHash=aq.default.createHash(a.hashAlgo||"sha256"),this.byteLength=0,this.debug=a.debug,this._debugBody=!!a.debug&&[],this._lineHasContent=!1,this._pendingWsp=!1,this._pendingCr=!1,this._pendingEmptyLines=0}_hashCanonical(a){a.length&&(this.bodyHash.update(a),this._debugBody&&this._debugBody.push(Buffer.from(a)))}_hashEmptyLines(){for(;this._pendingEmptyLines>0;){let a=Math.min(this._pendingEmptyLines,bd.length/2);this._hashCanonical(bd.subarray(0,2*a)),this._pendingEmptyLines-=a}}_emitContent(a,b,c){return this._lineHasContent||(this._pendingEmptyLines&&(this._hashCanonical(a.subarray(0,b)),b=0,this._hashEmptyLines()),this._lineHasContent=!0),this._pendingWsp&&(a[b++]=32,this._pendingWsp=!1),a[b++]=c,b}updateHash(a,b){let c=Buffer.allocUnsafe(2*a.length+2),d=0;for(let b=0;b<a.length;b++){let e=a[b];if(10===e){this._lineHasContent?(c[d++]=13,c[d++]=10,this._lineHasContent=!1):this._pendingEmptyLines++,this._pendingWsp=!1,this._pendingCr=!1;continue}this._pendingCr&&(d=this._emitContent(c,d,13),this._pendingCr=!1),13===e?this._pendingCr=!0:32===e||9===e?this._pendingWsp=!0:d=this._emitContent(c,d,e)}b&&this._pendingCr&&(d=this._emitContent(c,d,13),this._pendingCr=!1),this._hashCanonical(c.subarray(0,d))}_transform(a,b,c){if(!a||!a.length)return c();"string"==typeof a&&(a=Buffer.from(a,b)),this.updateHash(a),this.byteLength+=a.length,this.push(a),c()}_flush(a){this.updateHash(Buffer.alloc(0),!0),this._lineHasContent&&this._hashCanonical(bc),this.emit("hash",this.bodyHash.digest("base64"),!!this.debug&&Buffer.concat(this._debugBody)),a()}}function bf(a){let b=Error('Unsupported DKIM hash algorithm "'+a+'"');return b.code=O,b}function bg(a,b,c,d){var e,f,g,h,i;let j,k,l,m=bh(a,(d=d||{}).headerFieldNames||"From:Sender:Reply-To:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive",d.skipFields),n=(e=d.domainName,f=d.keySelector,g=m.fieldNames,h=b,i=c,aG("DKIM-Signature: "+["v=1","a=rsa-"+h,"c=relaxed/relaxed","d="+r((l=a=>(a||"").toString().replace(/[\x00-\x1f\x7f;=]/g,""))(e)),"q=dns/txt","s="+l(f),"bh="+i,"h="+l(g)].join("; "),76)+";\r\n b=");m.headers+="dkim-signature:"+bi(n);try{j=aq.default.createSign(("rsa-"+b).toUpperCase())}catch(a){throw bf(b)}j.update(m.headers,"latin1");try{k=j.sign(d.privateKey,"base64")}catch(a){return!1}return n+k.replace(/(^.{73}|.{75}(?!\r?\n|\r))/g,"$&\r\n ").trim()}function bh(a,b,c){let d=new Set,e=new Set,f=new Map;(c||"").toLowerCase().split(":").forEach(a=>{e.add(a.trim())}),(b||"").toLowerCase().split(":").filter(a=>!e.has(a.trim())).forEach(a=>{d.add(a.trim())});for(let b=a.length-1;b>=0;b--){let c=a[b];d.has(c.key)&&!f.has(c.key)&&f.set(c.key,bi(c.line))}let g=[],h=[];return d.forEach(a=>{f.has(a)&&(h.push(a),g.push(a+":"+f.get(a)))}),{headers:g.join("\r\n")+"\r\n",fieldNames:h.join(":")}}function bi(a){return a.substr(a.indexOf(":")+1).replace(/\r?\n/g,"").replace(/[ \t]+/g," ").replace(/^ | $/g,"")}bg.relaxedHeaders=bh,bg.unsupportedHashAlgoError=bf;class bj{constructor(a,b,c,d){this.options=a||{},this.keys=b,this.cacheTreshold=Number(this.options.cacheTreshold)||0xa00000,this.hashAlgo=this.options.hashAlgo||"sha256",this.cacheDir=this.options.cacheDir||!1,this.chunks=[],this.chunklen=0,this.readPos=0,this.cachePath=!!this.cacheDir&&al.default.join(this.cacheDir,"message."+Date.now()+"-"+aq.default.randomBytes(14).toString("hex")),this.cache=!1,this.headers=!1,this.bodyHash=!1,this.parser=!1,this.relaxedBody=!1,this.input=c,this.output=d,this.output.usingCache=!1,this.hasErrored=!1,this.input.on("error",a=>{this.hasErrored=!0,this.cleanup(),d.emit("error",a)})}cleanup(){this.cache&&this.cachePath&&C.default.unlink(this.cachePath,()=>!1)}createReadCache(){this.cache=C.default.createReadStream(this.cachePath),this.cache.once("error",a=>{this.cleanup(),this.output.emit("error",a)}),this.cache.once("close",()=>{this.cleanup()}),this.cache.pipe(this.output)}sendNextChunk(){if(this.hasErrored)return;if(this.readPos>=this.chunks.length)return this.cache?this.createReadCache():void this.output.end();let a=this.chunks[this.readPos++];!1===this.output.write(a)?this.output.once("drain",()=>{this.sendNextChunk()}):setImmediate(()=>this.sendNextChunk())}sendSignedOutput(){let a=0,b=()=>{let c;if(a>=this.keys.length){this.output.write(this.parser.rawHeaders),setImmediate(()=>this.sendNextChunk());return}let d=this.keys[a++];try{c=bg(this.headers,this.hashAlgo,this.bodyHash,{domainName:d.domainName,keySelector:d.keySelector,privateKey:d.privateKey,headerFieldNames:this.options.headerFieldNames,skipFields:this.options.skipFields})}catch(a){this.hasErrored=!0,this.cleanup(),this.output.emit("error",a);return}c&&this.output.write(Buffer.from(c+"\r\n")),setImmediate(b)};if(this.bodyHash&&this.headers)return b();this.output.write(this.parser.rawHeaders),this.sendNextChunk()}createWriteCache(){this.output.usingCache=!0,this.cache=C.default.createWriteStream(this.cachePath),this.cache.once("error",a=>{this.cleanup(),this.relaxedBody.unpipe(this.cache),this.relaxedBody.on("readable",()=>{for(;null!==this.relaxedBody.read(););}),this.hasErrored=!0,this.output.emit("error",a)}),this.cache.once("close",()=>{this.sendSignedOutput()}),this.relaxedBody.removeAllListeners("readable"),this.relaxedBody.pipe(this.cache)}signStream(){this.parser=new ba,this.relaxedBody=new be({hashAlgo:this.hashAlgo}),this.parser.on("headers",a=>{this.headers=a}),this.relaxedBody.on("hash",a=>{this.bodyHash=a}),this.relaxedBody.on("readable",()=>{let a;if(!this.cache){for(;null!==(a=this.relaxedBody.read());)if(this.chunks.push(a),this.chunklen+=a.length,this.chunklen>=this.cacheTreshold&&this.cachePath)return this.createWriteCache()}}),this.relaxedBody.on("end",()=>{this.cache||this.sendSignedOutput()}),this.parser.pipe(this.relaxedBody),setImmediate(()=>this.input.pipe(this.parser))}}let bk=class{constructor(a){this.options=a||{},this.keys=[].concat(this.options.keys||{domainName:a.domainName,keySelector:a.keySelector,privateKey:a.privateKey})}sign(a,b){let c=new G.PassThrough,d=a,e=!1;Buffer.isBuffer(a)?(e=a,d=new G.PassThrough):"string"==typeof a&&(e=Buffer.from(a),d=new G.PassThrough);let f=this.options;b&&Object.keys(b).length&&(f=U({},b),U(f,this.options));let g=new bj(f,this.keys,d,c);return setImmediate(()=>{try{g.signStream()}catch(a){c.emit("error",bg.unsupportedHashAlgoError(g.hashAlgo));return}e&&setImmediate(()=>{d.end(e)})}),c}};var bl=a.i(685560);let bm=function a(b,c,e,f,g){let h,i;"function"==typeof f&&(g=f,f={}),f=f||{};let j=g;if(!(c=Number(c)||0)||/[\r\n]/.test(e)){let a=Error("Invalid proxy destination");a.code=P,setImmediate(()=>j(a));return}let k=A(b),l={host:k.hostname,port:Number(k.port)?Number(k.port):"https:"===k.protocol?443:80};"https:"===k.protocol?(l.rejectUnauthorized=!1!==f.rejectUnauthorized,h=bl.default.connect.bind(bl.default)):h=d.default.connect.bind(d.default);let m=!1,n=a=>{if(!m){m=!0;try{i.destroy()}catch(a){}j(a)}},o=()=>{let a=Error("Proxy socket timed out");a.code="ETIMEDOUT",n(a)};(i=h(l,()=>{if(m)return;let a={Host:e+":"+c,Connection:"close"};k.auth&&(a["Proxy-Authorization"]="Basic "+Buffer.from(k.auth).toString("base64")),i.write("CONNECT "+e+":"+c+" HTTP/1.1\r\n"+Object.keys(a).map(b=>b+": "+a[b]).join("\r\n")+"\r\n\r\n");let b="",d=a=>{let c,e;if(!m){if(b+=a.toString("binary"),c=b.match(/\r\n\r\n/)){if(i.removeListener("data",d),e=b.substr(c.index+c[0].length),b=b.substr(0,c.index),e&&i.unshift(Buffer.from(e,"binary")),m=!0,!(c=b.match(/^HTTP\/\d+\.\d+ (\d+)/i))||"2"!==(c[1]||"").charAt(0)){try{i.destroy()}catch(a){}let a=Error("Invalid response from proxy"+(c&&": "+c[1]||""));return a.code=P,j(a)}return i.removeListener("error",n),i.removeListener("timeout",o),i.setTimeout(0),j(null,i)}if(b.length>65536){i.removeListener("data",d);let a=Error("Proxy response headers too large");return a.code=P,n(a)}}};i.on("data",d)})).setTimeout(a.timeout||3e4),i.on("timeout",o),i.once("error",n)},bn=(a,b)=>Object.prototype.hasOwnProperty.call(a,b);class bo{constructor(a,b){this.mailer=a,this.data={},this.message=null,b=b||{};const c=a.options||{},d=a._defaults||{};U(this.data,b),this.data.headers=this.data.headers||{},U(this.data,d,a=>bn(this.data,a)),U(this.data.headers,d.headers,a=>bn(this.data.headers,a)),["disableFileAccess","disableUrlAccess","normalizeHeaderKey","maxRecipients"].forEach(a=>{a in c&&(this.data[a]=c[a])}),["disableFileAccess","disableUrlAccess"].forEach(a=>{!(a in c)&&bn(d,a)&&(this.data[a]=this.data[a]||d[a])})}resolveContent(a,b,c,d){return d||"function"!=typeof c||(d=c,c=!1),c=c||{},ah(a,b,{disableFileAccess:this.data.disableFileAccess||c.disableFileAccess,disableUrlAccess:this.data.disableUrlAccess||c.disableUrlAccess},d)}resolveAll(a){let b=[[this.data,"html"],[this.data,"text"],[this.data,"watchHtml"],[this.data,"amp"],[this.data,"icalEvent"]];this.data.alternatives&&this.data.alternatives.length&&this.data.alternatives.forEach((a,c)=>{b.push([this.data.alternatives,c])}),this.data.attachments&&this.data.attachments.length&&this.data.attachments.forEach((a,c)=>{!a.filename&&(a.filename=(a.path||a.href||"").split(/[/\\]/).pop().split("?").shift()||"attachment-"+(c+1),0>a.filename.indexOf(".")&&(a.filename+="."+ap(a.contentType))),a.contentType||(a.contentType=aF(a.filename||a.path||a.href||"bin")),b.push([this.data.attachments,c])});let c=new a6;["from","to","cc","bcc","sender","replyTo"].forEach(a=>{let b;this.message?b=[].concat(c._parseAddresses(this.message.getHeader("replyTo"===a?"reply-to":a))||[]):this.data[a]&&(b=[].concat(c._parseAddresses(this.data[a])||[])),b&&b.length?this.data[a]=b:a in this.data&&(this.data[a]=null)}),["from","sender"].forEach(a=>{this.data[a]&&(this.data[a]=this.data[a].shift())});let d=0,e=()=>{if(d>=b.length)return a(null,this.data);let c=b[d++];if(!c[0]||!c[0][c[1]])return e();ah(...c,{disableFileAccess:this.data.disableFileAccess,disableUrlAccess:this.data.disableUrlAccess},(b,d)=>{if(b)return a(b);let f={content:d};c[0][c[1]]&&"object"==typeof c[0][c[1]]&&!Buffer.isBuffer(c[0][c[1]])&&U(f,c[0][c[1]],a=>a in f||["content","path","href","raw"].includes(a)),c[0][c[1]]=f,e()})};setImmediate(()=>e())}normalize(a){let b=this.message.getEnvelope(),c=this.message.messageId();this.resolveAll((d,e)=>d?a(d):(e.envelope=b,e.messageId=c,["html","text","watchHtml","amp"].forEach(a=>{e[a]&&e[a].content&&("string"==typeof e[a].content?e[a]=e[a].content:Buffer.isBuffer(e[a].content)&&(e[a]=e[a].content.toString()))}),e.icalEvent&&Buffer.isBuffer(e.icalEvent.content)&&(e.icalEvent.content=e.icalEvent.content.toString("base64"),e.icalEvent.encoding="base64"),e.alternatives&&e.alternatives.length&&e.alternatives.forEach(a=>{a&&a.content&&Buffer.isBuffer(a.content)&&(a.content=a.content.toString("base64"),a.encoding="base64")}),e.attachments&&e.attachments.length&&e.attachments.forEach(a=>{a&&a.content&&Buffer.isBuffer(a.content)&&(a.content=a.content.toString("base64"),a.encoding="base64")}),e.normalizedHeaders={},Object.keys(e.headers||{}).forEach(a=>{if(T(a))return;let b=[].concat(e.headers[a]||[]).shift();(b=b&&b.value||b)&&(["references","in-reply-to","message-id","content-id"].includes(a)&&(b=this.message._encodeHeaderValue(a,b)),e.normalizedHeaders[a]=b)}),e.list&&"object"==typeof e.list&&this._getListHeaders(e.list).forEach(a=>{e.normalizedHeaders[a.key]=a.value.map(a=>a&&a.value||a).join(", ")}),e.references&&(e.normalizedHeaders.references=this.message._encodeHeaderValue("references",e.references)),e.inReplyTo&&(e.normalizedHeaders["in-reply-to"]=this.message._encodeHeaderValue("in-reply-to",e.inReplyTo)),a(null,e)))}setMailerHeader(){this.message&&this.data.xMailer&&this.message.setHeader("X-Mailer",this.data.xMailer)}setPriorityHeaders(){if(this.message&&this.data.priority)switch((this.data.priority||"").toString().toLowerCase()){case"high":this.message.setHeader("X-Priority","1 (Highest)"),this.message.setHeader("X-MSMail-Priority","High"),this.message.setHeader("Importance","High");break;case"low":this.message.setHeader("X-Priority","5 (Lowest)"),this.message.setHeader("X-MSMail-Priority","Low"),this.message.setHeader("Importance","Low")}}setListHeaders(){this.message&&this.data.list&&"object"==typeof this.data.list&&this._getListHeaders(this.data.list).forEach(a=>{a.value.forEach(b=>{this.message.addHeader(a.key,b)})})}_getListHeaders(a){return Object.keys(a).map(b=>({key:"list-"+b.toLowerCase().trim(),value:[].concat(a[b]||[]).map(a=>({prepared:!0,foldLines:!0,value:[].concat(a||[]).map(a=>{if("string"==typeof a&&(a={url:a}),a&&a.url){let c=(a.comment||"").toString().replace(/\r?\n|\r/g," "),d=!aA(c)||/\x7f/.test(c);return"id"===b.toLowerCase().trim()?(c=d?aC(c):aB(c),(a.comment?c+" ":"")+this._formatListUrl(a.url).replace(/^<[^:]+:\/{0,2}/,"<")):(c=d?aC(c):c.replace(/[()\\]/g,"\\$&"),this._formatListUrl(a.url)+(a.comment?" ("+c+")":""))}return""}).filter(a=>a).join(", ")}))}))}_formatListUrl(a){return(a=a.replace(/[\x00-\x08\x0b\x0c\x0e-\x1f\x7f]/g,"").replace(/[\s<]+|[\s>]+/g,""),/^(https?|mailto|ftp):/.test(a))?"<"+a+">":/^[^@]+@[^@]+$/.test(a)?"<mailto:"+a+">":"<http://"+a+">"}}class bp extends c.EventEmitter{constructor(a,b,c){super(),this.options=b||{},this._defaults=c||{},this._defaultPlugins={compile:[(...a)=>this._convertDataImages(...a)],stream:[]},this._userPlugins={compile:[],stream:[]},this.meta=new Map,this.dkim=!!this.options.dkim&&new bk(this.options.dkim),this.transporter=a,this.transporter.mailer=this,this.logger=ae(this.options,{component:this.options.component||"mail"}),this.logger.debug({tnx:"create"},"Creating transport: %s",this.getVersionString()),"function"==typeof this.transporter.on&&(this.transporter.on("log",a=>{this.logger.debug({tnx:"transport"},"%s: %s",a.type,a.message)}),this.transporter.on("error",a=>{this.logger.error({err:a,tnx:"transport"},"Transport Error: %s",a.message),this.emit("error",a)}),this.transporter.on("idle",(...a)=>{this.emit("idle",...a)}),this.transporter.on("clear",(...a)=>{this.emit("clear",...a)})),["close","isIdle","verify"].forEach(a=>{this[a]=(...b)=>"function"==typeof this.transporter[a]?("verify"===a&&"function"==typeof this.getSocket&&(this.transporter.getSocket=this.getSocket,this.getSocket=!1),this.transporter[a](...b)):(this.logger.warn({tnx:"transport",methodName:a},"Non existing method %s called for transport",a),!1)}),this.options.proxy&&"string"==typeof this.options.proxy&&this.setupProxy(this.options.proxy)}use(a,b){return a=(a||"").toString(),this._userPlugins.hasOwnProperty(a)?this._userPlugins[a].push(b):this._userPlugins[a]=[b],this}sendMail(a,b=null){let c;b||(c=new Promise((a,c)=>{b=af(a,c)}));let d=b;"function"==typeof this.getSocket&&(this.transporter.getSocket=this.getSocket,this.getSocket=!1);let e=new bo(this,a);return this.logger.debug({tnx:"transport",name:this.transporter.name,version:this.transporter.version,action:"send"},"Sending mail using %s/%s",this.transporter.name,this.transporter.version),this._processPlugins("compile",e,a=>{let b;if(a)return this.logger.error({err:a,tnx:"plugin",action:"compile"},"PluginCompile Error: %s",a.message),d(a);try{e.message=new a8(e.data).compile(),e.setMailerHeader(),e.setPriorityHeaders(),e.setListHeaders(),b=e.message.getEnvelope().to.length}catch(a){return this.logger.error({err:a,tnx:"transport",action:"send"},"Compile Error: %s",a.message),d(a)}let c=void 0===e.data.maxRecipients?1e5:e.data.maxRecipients;if(c&&b>c){let a=Error(`Message has ${b} recipients, which is over the ${c} allowed by maxRecipients`);return a.code="EMAXRECIPIENTS",this.logger.error({err:a,tnx:"transport",action:"send"},"Send Error: %s",a.message),d(a)}this._processPlugins("stream",e,a=>{if(a)return this.logger.error({err:a,tnx:"plugin",action:"stream"},"PluginStream Error: %s",a.message),d(a);(e.data.dkim||this.dkim)&&e.message.processFunc(a=>{let b=e.data.dkim?new bk(e.data.dkim):this.dkim;return this.logger.debug({tnx:"DKIM",messageId:e.message.messageId(),dkimDomains:b.keys.map(a=>a.keySelector+"."+a.domainName).join(", ")},"Signing outgoing message with %s keys",b.keys.length),b.sign(a,e.data._dkim)}),this.transporter.send(e,(...a)=>{a[0]&&this.logger.error({err:a[0],tnx:"transport",action:"send"},"Send Error: %s",a[0].message),d(...a)})})}),c}getVersionString(){return B.default.format("%s (%s; +%s; %s/%s)","nodemailer",I,"https://nodemailer.com/",this.transporter.name,this.transporter.version)}_processPlugins(a,b,c){if(a=(a||"").toString(),!this._userPlugins.hasOwnProperty(a))return c();let d=this._userPlugins[a]||[],e=this._defaultPlugins[a]||[];if(d.length&&this.logger.debug({tnx:"transaction",pluginCount:d.length,step:a},"Using %s plugins for %s",d.length,a),d.length+e.length===0)return c();let f=0,g="default",h=()=>{let a="default"===g?e:d;if(f>=a.length)if("default"!==g||!d.length)return c();else g="user",f=0,a=d;(0,a[f++])(b,a=>{if(a)return c(a);h()})};h()}setupProxy(a){let b=A(a);this.getSocket=(a,c)=>{let e=b.protocol.replace(/:$/,"").toLowerCase();if(this.meta.has("proxy_handler_"+e))return this.meta.get("proxy_handler_"+e)(b,a,c);switch(e){case"http":case"https":bm(b.href,a.port,a.host,this.options.tls||{},(a,b)=>a?c(a):c(null,{connection:b}));return;case"socks":case"socks5":case"socks4":case"socks4a":{if(!this.meta.has("proxy_socks_module")){let a=Error("Socks module not loaded");return a.code=P,c(a)}let e=d=>{let e=!!this.meta.get("proxy_socks_module").SocksClient,f=e?this.meta.get("proxy_socks_module").SocksClient:this.meta.get("proxy_socks_module"),g=Number(b.protocol.replace(/\D/g,""))||5,h={proxy:{ipaddress:d,port:Number(b.port),type:g},[e?"destination":"target"]:{host:a.host,port:a.port},command:"connect"};if(b.username||b.password){let a=b.username||"",c=b.password||"";e?(h.proxy.userId=a,h.proxy.password=c):4===g?h.userid=a:h.authentication={username:a,password:c}}f.createConnection(h,(a,b)=>a?c(a):c(null,{connection:b.socket||b}))};if(d.default.isIP(b.hostname))return e(b.hostname);return Y.default.resolve(b.hostname,(a,b)=>{if(a)return c(a);e(Array.isArray(b)?b[0]:b)})}}let f=Error("Unknown proxy configuration");f.code=P,c(f)}}_convertDataImages(a,b){if(!this.options.attachDataUrls&&!a.data.attachDataUrls||!a.data.html)return b();a.resolveContent(a.data,"html",{disableFileAccess:a.data.disableFileAccess,disableUrlAccess:a.data.disableUrlAccess},(c,d)=>{if(c)return b(c);let e=0;d=(d||"").toString().replace(/(<img\b[^<>]{0,1024} src\s{0,20}=[\s"']{0,20})(data:([^;]+);[^"'>\s]+)/gi,(b,c,d,f)=>{let g=aq.default.randomBytes(10).toString("hex")+"@localhost";return a.data.attachments||(a.data.attachments=[]),Array.isArray(a.data.attachments)||(a.data.attachments=[].concat(a.data.attachments||[])),a.data.attachments.push({path:d,cid:g,filename:"image-"+ ++e+"."+ap(f)}),c+"cid:"+g}),a.data.html=d,b()})}set(a,b){return this.meta.set(a,b)}get(a){return this.meta.get(a)}}var bq=c,br=c,bs=G;let bt=Buffer.from("\n"),bu=Buffer.from("\n."),bv=Buffer.from("\r"),bw=Buffer.from(".");class bx extends bs.Transform{constructor(a){super(a),this.options=a||{},this.inByteCount=0,this.outByteCount=0,this.lastByte=!1}_transform(a,b,c){let d,e=[],f=0,g,h,i=0;if(!a||!a.length)return c();for("string"==typeof a&&(a=Buffer.from(a)),this.inByteCount+=a.length,g=0,h=a.length;g<h;g++){let b=a[g],c=g?a[g-1]:this.lastByte,h=!1;13===c&&10!==b?h=46===b?bu:bt:10===b&&13!==c?h=bv:46===b&&(10===c||!1===c)&&(h=bw),h&&(g>i&&(d=a.slice(i,g),e.push(d),f+=d.length),e.push(h),f+=h.length,i=g)}e.length?(i<a.length&&(d=a.slice(i),e.push(d),f+=d.length),this.outByteCount+=f,this.push(Buffer.concat(e,f))):(this.outByteCount+=a.length,this.push(a)),this.lastByte=a[a.length-1],c()}_flush(a){let b;b=10===this.lastByte?Buffer.from(".\r\n"):13===this.lastByte?Buffer.from("\n.\r\n"):Buffer.from("\r\n.\r\n"),this.outByteCount+=b.length,this.push(b),a()}}let by=()=>{};function bz(a){if(!a)return a;let b=Buffer.from(a,"binary").toString("utf8");return b.includes("�")?a:b}function bA(a){return/^\d+-/.test(a)}class bB extends br.EventEmitter{constructor(a){for(const b of(super(a),this.id=aq.default.randomBytes(8).toString("base64").replace(/\W/g,""),this.stage="init",this.options=a||{},this.options.requireTLS&&(this.options.ignoreTLS||this.options.opportunisticTLS)&&(this.options=Object.assign({},this.options,{ignoreTLS:!1,opportunisticTLS:!1})),this.secureConnection=!!this.options.secure,this.alreadySecured=!!this.options.secured,this.port=Number(this.options.port)||(this.secureConnection?465:587),this.host=this.options.host||"localhost",this.servername=this.options.servername?this.options.servername:!d.default.isIP(this.host)&&this.host,this.allowInternalNetworkInterfaces=this.options.allowInternalNetworkInterfaces||!1,void 0===this.options.secure&&465===this.port&&(this.secureConnection=!0),this.name=(this.options.name||this._getHostname()).toString().replace(/[\r\n]+/g,""),this.logger=ae(this.options,{component:this.options.component||"smtp-connection",sid:this.id}),this.customAuth=new Map,Object.keys(this.options.customAuth||{}))){const a=(b||"").toString().trim().toUpperCase();a&&this.customAuth.set(a,this.options.customAuth[b])}this.version=I,this.authenticated=!1,this.destroyed=!1,this.secure=!!this.secureConnection,this._remainder="",this._responseQueue=[],this._responsePartial=!1,this.lastServerResponse=!1,this._socket=!1,this._supportedAuth=[],this.allowsAuth=!1,this._envelope=!1,this._supportedExtensions=[],this._maxAllowedSize=0,this._responseActions=[],this._recipientQueue=[],this._greetingTimeout=!1,this._connectionTimeout=!1,this._destroyed=!1,this._closing=!1,this._currentDataStream=!1,this._pendingSend=!1,this._connectCallback=!1,this._onSocketData=a=>this._onData(a),this._onSocketError=a=>this._onError(a,"ESOCKET",!1,"CONN"),this._onSocketClose=()=>this._onClose(),this._onSocketEnd=()=>this._onEnd(),this._onSocketTimeout=()=>this._onTimeout(),this._onConnectionSocketError=a=>this._onConnectionError(a,"ESOCKET"),this._connectionAttemptId=0}connect(a){if("function"==typeof a){this._connectCallback=a,this.once("connect",()=>{this._connectCallback=!1,this.logger.debug({tnx:"smtp"},"SMTP handshake finished"),a()});let b=this._isDestroyedMessage("connect");if(b)return a(this._formatError(b,"ECONNECTION",!1,"CONN"))}let b={port:this.port,host:this.host,allowInternalNetworkInterfaces:this.allowInternalNetworkInterfaces,timeout:this.options.dnsTimeout||3e4};if(this.options.localAddress&&(b.localAddress=this.options.localAddress),this.options.connection){this._socket=this.options.connection,this._setupConnectionHandlers(),this.secureConnection&&!this.alreadySecured?setImmediate(()=>this._upgradeConnection(a=>{a?this._onError(Error("Error initiating TLS - "+(a.message||a)),"ETLS",!1,"CONN"):this._onConnect()})):setImmediate(()=>this._onConnect());return}return this.options.socket?(this._socket=this.options.socket,this._resolveAndConnect(b,a=>{try{this._socket.connect(this.port,this.host,()=>{if(this._socket.setKeepAlive(!0),this.secureConnection&&!this.alreadySecured)return this._upgradeConnection(a=>{a?this._onError(Error("Error initiating TLS - "+(a.message||a)),"ETLS",!1,"CONN"):this._onConnect()});this._onConnect()}),this._setupConnectionHandlers()}catch(a){setImmediate(()=>this._onError(a,"ECONNECTION",!1,"CONN"));return}})):(this.secureConnection&&(Object.assign(b,this.options.tls||{}),this.servername&&!b.servername&&(b.servername=this.servername)),this._resolveAndConnect(b,a=>{this._fallbackAddresses=(a._addresses||[]).filter(a=>a!==b.host),this._connectOpts=Object.assign({},b),this._connectToHost(b,this.secureConnection)}))}_resolveAndConnect(a,b){return((a,b)=>{let c;if(!(a=a||{}).host&&a.servername&&(a.host=a.servername),!a.host||d.default.isIP(a.host))return b(null,ac({addresses:[a.host]},{servername:a.servername||!1,cached:!1}));let e=a.host,f=a.servername||e;if(ab.has(a.host)){c=ab.get(a.host);let d=Date.now();if(d-$>3e4){for(let[a,b]of($=d,ab.entries()))b.expires&&b.expires<d&&ab.delete(a);if(ab.size>1e3){let a=Math.floor(100);Array.from(ab.keys()).slice(0,a).forEach(a=>ab.delete(a))}}if(!c.expires||c.expires>=d)return b(null,ac(c.value,{servername:f,cached:!0}))}let g=[],h=[],i=null,j=null;aa(4,a.host,a,(d,k)=>{d?i=d:g=k||[],aa(6,e,a,(d,k)=>{d?j=d:h=k||[];let l=g.concat(h);if(l.length){let c={addresses:l};return ab.set(e,{value:c,expires:Date.now()+(a.dnsTtl||3e5)}),b(null,ac(c,{servername:f,cached:!1}))}if(i&&j&&c)return ab.set(e,{value:c.value,expires:Date.now()+(a.dnsTtl||3e5)}),b(null,ac(c.value,{servername:f,cached:!0,error:i}));try{Y.default.lookup(e,{all:!0},(d,g)=>{if(d)return c?(ab.set(e,{value:c.value,expires:Date.now()+(a.dnsTtl||3e5)}),b(null,ac(c.value,{servername:f,cached:!0,error:d}))):b(d);let h=g?g.filter(a=>_(a.family)).map(a=>a.address):[];if(g&&g.length&&!h.length&&console.warn(`Failed to resolve IPv${g[0].family} addresses with current network`),!h.length&&c)return b(null,ac(c.value,{servername:f,cached:!0}));let i={addresses:h.length?h:[e]};return ab.set(e,{value:i,expires:Date.now()+(a.dnsTtl||3e5)}),b(null,ac(i,{servername:f,cached:!1}))})}catch(d){if(c)return ab.set(e,{value:c.value,expires:Date.now()+(a.dnsTtl||3e5)}),b(null,ac(c.value,{servername:f,cached:!0,error:d}));return b(i||j||d)}})})})(a,(c,d)=>{if(c)return setImmediate(()=>this._onError(c,"EDNS",!1,"CONN"));for(let b of(this.logger.debug({tnx:"dns",source:a.host,resolved:d.host,cached:!!d.cached},"Resolved %s as %s [cache %s]",a.host,d.host,d.cached?"hit":"miss"),Object.keys(d)))"_"!==b.charAt(0)&&d[b]&&(a[b]=d[b]);b(d)})}_connectToHost(a,b){if(this._destroyed||this._closing)return;this._connectionAttemptId++;let c=this._connectionAttemptId,e=b?bl.default.connect:d.default.connect;try{this._socket=e(a,()=>{this._connectionAttemptId===c&&(this._socket.setKeepAlive(!0),this._onConnect())}),this._setupConnectionHandlers()}catch(a){setImmediate(()=>this._onError(a,"ECONNECTION",!1,"CONN"));return}}_setupConnectionHandlers(){this._connectionTimeout=setTimeout(()=>{this._onConnectionError("Connection timeout","ETIMEDOUT")},this.options.connectionTimeout||12e4),this._socket.on("error",this._onConnectionSocketError)}_onConnectionError(a,b){if(clearTimeout(this._connectionTimeout),!(this._fallbackAddresses&&this._fallbackAddresses.length&&"init"===this.stage&&!this._destroyed))return void this._onError(a,b,!1,"CONN");let c=this._fallbackAddresses.shift();if(this.logger.info({tnx:"network",failedHost:this._connectOpts.host,nextHost:c,error:a.message||a},"Connection to %s failed, trying %s",this._connectOpts.host,c),this._socket){try{this._socket.removeListener("error",this._onConnectionSocketError),this._socket.on("error",by),this._socket.destroy()}catch(a){}this._socket=null}this._connectOpts.host=c,this._connectToHost(this._connectOpts,this.secureConnection)}quit(){this._sendCommand("QUIT"),this._responseActions.push(this.close)}close(){if(clearTimeout(this._connectionTimeout),clearTimeout(this._greetingTimeout),this._responseActions=[],this._closing)return;this._closing=!0;let a="init"===this.stage?"destroy":"end";this.logger.debug({tnx:"smtp"},'Closing connection to the server using "%s"',a);let b=this._socket&&this._socket.socket||this._socket;if(this._currentDataStream){try{this._currentDataStream.unpipe(this._socket)}catch(a){}this._currentDataStream=!1}if(this._pendingSend){let{stream:a,onStreamError:b}=this._pendingSend;a&&(a.removeListener("error",b),a.on("error",by)),this._pendingSend=!1}if(b&&!b.destroyed)try{b.setTimeout(0),b.removeListener("data",this._onSocketData),b.removeListener("timeout",this._onSocketTimeout),b.removeListener("close",this._onSocketClose),b.removeListener("end",this._onSocketEnd),b.removeListener("error",this._onSocketError),b.removeListener("error",this._onConnectionSocketError),b.on("error",by),b[a]()}catch(a){}this._destroy()}login(a,b){let c=this._isDestroyedMessage("login");if(c)return b(this._formatError(c,"ECONNECTION",!1,"API"));this._auth=a||{},this._authMethod=(this._auth.method||"").toString().trim().toUpperCase()||!1;let d=!!this._auth.oauth2||this.customAuth.has("XOAUTH2");if(this._authMethod||!this._auth.oauth2||this._auth.credentials){if(!this._authMethod||"XOAUTH2"===this._authMethod&&!this._auth.oauth2){let a=this._supportedAuth.find(a=>"XOAUTH2"!==a||d);this._authMethod=(a||"PLAIN").toUpperCase().trim()}}else this._authMethod="XOAUTH2";if(("XOAUTH2"!==this._authMethod||this.customAuth.has("XOAUTH2"))&&(!this._auth.credentials||!this._auth.credentials.user||!this._auth.credentials.pass))if(!(this._auth.user&&this._auth.pass||this.customAuth.has(this._authMethod)))return b(this._formatError('Missing credentials for "'+this._authMethod+'"',"EAUTH",!1,"API"));else this._auth.credentials={user:this._auth.user,pass:this._auth.pass,options:this._auth.options};if(this.customAuth.has(this._authMethod)){let a,c=this.customAuth.get(this._authMethod),d=!1,e=()=>{d||(d=!0,this.logger.info({tnx:"smtp",username:this._auth.user,action:"authenticated",method:this._authMethod},"User %s authenticated",JSON.stringify(this._auth.user)),this.authenticated=!0,b(null,!0))},f=c=>{d||(d=!0,b(this._formatError(c,"EAUTH",a,"AUTH "+this._authMethod)))},g=(b,c)=>{let d;return c||(d=new Promise((a,b)=>{c=af(a,b)})),this._responseActions.push(d=>{a=d;let e=d.match(/^(\d+)(?:\s(\d+\.\d+\.\d+))?\s/),f={command:b,response:d};e?(f.status=Number(e[1])||0,e[2]&&(f.code=e[2]),f.text=d.substr(e[0].length)):(f.text=d,f.status=0),c(null,f)}),setImmediate(()=>this._sendCommand(b)),d},h=c({auth:this._auth,method:this._authMethod,extensions:[].concat(this._supportedExtensions),authMethods:[].concat(this._supportedAuth),maxAllowedSize:this._maxAllowedSize||!1,sendCommand:g,resolve:e,reject:f});h&&"function"==typeof h.catch&&h.then(e).catch(f);return}switch(this._authMethod){case"XOAUTH2":this._handleXOauth2Token(!1,b);return;case"LOGIN":this._responseActions.push(a=>{this._actionAUTH_LOGIN_USER(a,b)}),this._sendCommand("AUTH LOGIN");return;case"PLAIN":this._responseActions.push(a=>{this._actionAUTHComplete(a,b)}),this._sendCommand("AUTH PLAIN "+Buffer.from("\0"+this._auth.credentials.user+"\0"+this._auth.credentials.pass,"utf-8").toString("base64"),"AUTH PLAIN "+Buffer.from("\0"+this._auth.credentials.user+"\0/* secret */","utf-8").toString("base64"));return;case"CRAM-MD5":this._responseActions.push(a=>{this._actionAUTH_CRAM_MD5(a,b)}),this._sendCommand("AUTH CRAM-MD5");return}return b(this._formatError('Unknown authentication method "'+this._authMethod+'"',"EAUTH",!1,"API"))}send(a,b,c){let d=!1,e=(a,b)=>{d||(d=!0,this._pendingSend&&this._pendingSend.callback===e&&(this._pendingSend=!1),c(a,b))};if(!b)return e(this._formatError("Empty message","EMESSAGE",!1,"API"));let f=this._isDestroyedMessage("send message");if(f)return e(this._formatError(f,"ECONNECTION",!1,"API"));if(this._maxAllowedSize&&a.size>this._maxAllowedSize)return void setImmediate(()=>{e(this._formatError("Message size larger than allowed "+this._maxAllowedSize,"EMESSAGE",!1,"MAIL FROM"))});let g={callback:e,stream:!1,onStreamError:a=>e(this._formatError(a,"ESTREAM",!1,"API"))};"function"==typeof b.on&&(g.stream=b,g.stream.on("error",g.onStreamError)),this._pendingSend=g;let h=Date.now();this._setEnvelope(a,(a,c)=>{if(a){let c=new G.PassThrough;return"function"==typeof b.pipe?b.pipe(c):(c.write(b),c.end()),e(a)}let d=Date.now(),f=this._createSendStream((a,b)=>a?e(a):(c.envelopeTime=d-h,c.messageTime=Date.now()-d,c.messageSize=f.outByteCount,c.response=b,e(null,c)));"function"==typeof b.pipe?b.pipe(f):(f.write(b),f.end())})}reset(a){let b=this._isDestroyedMessage("reset");if(b)return a(this._formatError(b,"ECONNECTION",!1,"API"));this._sendCommand("RSET"),this._responseActions.push(b=>"2"!==b.charAt(0)?a(this._formatError("Could not reset session state. response="+b,"EPROTOCOL",b,"RSET")):(this._envelope=!1,a(null,!0)))}_onConnect(){let a=this._socket;(clearTimeout(this._connectionTimeout),this.logger.info({tnx:"network",localAddress:a.localAddress,localPort:a.localPort,remoteAddress:a.remoteAddress,remotePort:a.remotePort},"%s established to %s:%s",this.secure?"Secure connection":"Connection",a.remoteAddress,a.remotePort),this._destroyed)?this.close():(this.stage="connected",a.removeListener("data",this._onSocketData),a.removeListener("timeout",this._onSocketTimeout),a.removeListener("close",this._onSocketClose),a.removeListener("end",this._onSocketEnd),a.removeListener("error",this._onConnectionSocketError),a.removeListener("error",this._onSocketError),a.on("error",this._onSocketError),a.on("data",this._onSocketData),a.once("close",this._onSocketClose),a.once("end",this._onSocketEnd),a.setTimeout(this.options.socketTimeout||6e5),a.on("timeout",this._onSocketTimeout),this._greetingTimeout=setTimeout(()=>{this._socket&&!this._destroyed&&this._responseActions[0]===this._actionGreeting&&this._onError("Greeting never received","ETIMEDOUT",!1,"CONN")},this.options.greetingTimeout||3e4),this._responseActions.push(this._actionGreeting),a.resume())}_onData(a){if(this._destroyed||!a||!a.length)return;let b=this.options.maxResponseSize||1048576,c=a.toString("binary");if(!c.includes("\n"))return(this._remainder+=c,this._remainder.length>b)?this._onResponseTooLarge():void 0;let d=(this._remainder+c).split(/\r?\n/);this._remainder=d.pop();for(let a=0,c=d.length;a<c;a++)if(this._responsePartial?this._responseQueue[this._responseQueue.length-1]+="\n"+d[a]:this._responseQueue.push(d[a]),this._responsePartial=bA(d[a]),this._responsePartial&&this._responseQueue[this._responseQueue.length-1].length>b)return this._onResponseTooLarge();if(this._remainder.length>b)return this._onResponseTooLarge();this._responsePartial||this._processResponse()}_onResponseTooLarge(){this._remainder="",this._responseQueue=[],this._responsePartial=!1,this._onError(Error("Server response exceeds maximum allowed size"),"EPROTOCOL",!1,"CONN")}_onError(a,b,c,d){if(clearTimeout(this._connectionTimeout),clearTimeout(this._greetingTimeout),this._destroyed)return;["ETIMEDOUT","ESOCKET","ECONNECTION"].includes((a=this._formatError(a,b,c,d)).code)?this.logger.warn(c,a.message):this.logger.error(c,a.message);let e=this._pendingSend;this.emit("error",a),this.close(),e&&e.callback(a)}_formatError(a,b,c,d){let e;e=/Error\]$/i.test(Object.prototype.toString.call(a))?a:Error(a),b&&"Error"!==b&&(e.code=b),c&&(e.response=c,e.message+=": "+c);let f="string"==typeof c&&Number((c.match(/^\d+/)||[])[0])||!1;return f&&(e.responseCode=f),d&&(e.command=d),e}_onClose(){let a=!1;this._remainder&&this._remainder.trim()&&(this.lastServerResponse=a=bz(this._remainder.trim()),(this.options.debug||this.options.transactionLog)&&this.logger.debug({tnx:"server"},a)),this.logger.info({tnx:"network"},"Connection closed");let b=!!("string"==typeof a&&/^[45]\d{2}[ -]/.test(a))&&a;if(this.upgrading&&!this._destroyed)return this._onError(Error("Connection closed unexpectedly"),"ETLS",b,"CONN");if(!b&&this._responseActions[0]===this._actionGreeting&&this._connectCallback&&!this._destroyed){let a=this._connectCallback;this._connectCallback=!1;let b=this._formatError(Error("Connection closed unexpectedly"),"ECONNECTION",!1,"CONN");this.logger.warn({tnx:"network"},b.message),a(b),this.close();return}if(b||this._responseActions[0]!==this.close&&!this._destroyed)return this._onError(Error("Connection closed unexpectedly"),"ECONNECTION",b,"CONN");this._destroy()}_onEnd(){this._socket&&!this._socket.destroyed&&this._socket.end()}_onTimeout(){return this._onError(Error("Timeout"),"ETIMEDOUT",!1,"CONN")}_destroy(){this._destroyed||(this._destroyed=!0,this.destroyed=!0,clearTimeout(this._connectionTimeout),clearTimeout(this._greetingTimeout),this._connectionTimeout=!1,this._greetingTimeout=!1,this.emit("end"))}_upgradeConnection(a){this._remainder="",this._responseQueue=[],this._responsePartial=!1;let b=this._socket;b.removeListener("data",this._onSocketData),b.removeListener("timeout",this._onSocketTimeout);let c=Object.assign({socket:b,host:this.host},this.options.tls||{});this.servername&&!c.servername&&(c.servername=this.servername);let d=()=>{b.removeListener("close",this._onSocketClose),b.removeListener("end",this._onSocketEnd),b.removeListener("error",this._onSocketError),b.removeListener("error",this._onConnectionSocketError)};this.upgrading=!0;try{this._socket=bl.default.connect(c,()=>(this.secure=!0,this.upgrading=!1,this._socket.on("data",this._onSocketData),d(),a(null,!0)))}catch(b){return d(),a(b)}this._socket.on("error",this._onSocketError),this._socket.once("close",this._onSocketClose),this._socket.once("end",this._onSocketEnd),this._socket.setTimeout(this.options.socketTimeout||6e5),this._socket.on("timeout",this._onSocketTimeout),b.resume()}_processResponse(){if(!this._responseQueue.length)return!1;let a=(this._responseQueue.shift()||"").toString();if(!a.trim())return void setImmediate(()=>this._processResponse());if(bA(a.slice(a.lastIndexOf("\n")+1)))return void this._responseQueue.unshift(a);let b=this.lastServerResponse=bz(a);(this.options.debug||this.options.transactionLog)&&this.logger.debug({tnx:"server"},b.replace(/\r?\n$/,""));let c=this._responseActions.shift();if("function"!=typeof c)return this._onError(Error("Unexpected Response"),"EPROTOCOL",b,"CONN");c.call(this,b),setImmediate(()=>this._processResponse())}_sendCommand(a,b){if(this._destroyed)return;let c=this._socket;if(c.destroyed)return this.close();(this.options.debug||this.options.transactionLog)&&this.logger.debug({tnx:"client"},(b||a||"").toString().replace(/\r?\n$/,"")),c.write(Buffer.from(a+"\r\n","utf-8"))}_setEnvelope(a,b){let c=[],d=!1;if(this._envelope=a||{},this._envelope.from=(this._envelope.from&&this._envelope.from.address||this._envelope.from||"").toString().trim(),this._envelope.to=[].concat(this._envelope.to||[]).map(a=>(a&&a.address||a||"").toString().trim()),!this._envelope.to.length)return b(this._formatError("No recipients defined","EENVELOPE",!1,"API"));if(this._envelope.from&&/[\r\n<>]/.test(this._envelope.from))return b(this._formatError("Invalid sender "+JSON.stringify(this._envelope.from),"EENVELOPE",!1,"API"));/[\x80-\uFFFF]/.test(this._envelope.from)&&(d=!0);for(let a=0,c=this._envelope.to.length;a<c;a++){if(!this._envelope.to[a]||/[\r\n<>]/.test(this._envelope.to[a]))return b(this._formatError("Invalid recipient "+JSON.stringify(this._envelope.to[a]),"EENVELOPE",!1,"API"));/[\x80-\uFFFF]/.test(this._envelope.to[a])&&(d=!0)}if(this._envelope.rcptQueue=[].concat(this._envelope.to||[]),this._envelope.rejected=[],this._envelope.rejectedErrors=[],this._envelope.accepted=[],this._envelope.dsn)try{this._envelope.dsn=this._setDsnEnvelope(this._envelope.dsn)}catch(a){return b(this._formatError("Invalid DSN "+a.message,"EENVELOPE",!1,"API"))}if(this._envelope.requireTLSExtensionEnabled){if(!this.secure)return b(this._formatError("REQUIRETLS can only be used over TLS connections (RFC 8689)","EREQUIRETLS",!1,"MAIL FROM"));if(!this._supportedExtensions.includes("REQUIRETLS"))return b(this._formatError("Server does not support REQUIRETLS extension (RFC 8689)","EREQUIRETLS",!1,"MAIL FROM"))}if(this._responseActions.push(a=>{this._actionMAIL(a,b)}),d&&this._supportedExtensions.includes("SMTPUTF8")&&(c.push("SMTPUTF8"),this._usingSmtpUtf8=!0),this._envelope.use8BitMime&&this._supportedExtensions.includes("8BITMIME")&&(c.push("BODY=8BITMIME"),this._using8BitMime=!0),this._envelope.size&&this._supportedExtensions.includes("SIZE")){let a=Number(this._envelope.size)||0;a>0&&c.push("SIZE="+a)}this._envelope.dsn&&this._supportedExtensions.includes("DSN")&&(this._envelope.dsn.ret&&c.push("RET="+aj(this._envelope.dsn.ret)),this._envelope.dsn.envid&&c.push("ENVID="+aj(this._envelope.dsn.envid))),this._envelope.requireTLSExtensionEnabled&&c.push("REQUIRETLS"),this._sendCommand("MAIL FROM:<"+this._envelope.from+">"+(c.length?" "+c.join(" "):""))}_setDsnEnvelope(a){let b=(a.ret||a.return||"").toString().toUpperCase()||null;if(b)switch(b){case"HDRS":case"HEADERS":b="HDRS";break;case"FULL":case"BODY":b="FULL"}if(b&&!["FULL","HDRS"].includes(b))throw Error("ret: "+JSON.stringify(b));let c=(a.envid||a.id||"").toString()||null,d=a.notify||null;if(d){"string"==typeof d&&(d=d.split(","));let a=["NEVER","SUCCESS","FAILURE","DELAY"];if((d=d.map(a=>a.trim().toUpperCase())).filter(b=>!a.includes(b)).length||d.length>1&&d.includes("NEVER"))throw Error("notify: "+JSON.stringify(d.join(",")));d=d.join(",")}let e=(a.recipient||a.orcpt||"").toString()||null;return e&&0>e.indexOf(";")&&(e="rfc822;"+e),{ret:b,envid:c,notify:d,orcpt:e}}_getDsnRcptToArgs(){let a=this._envelope,b=[];return a.dsn&&this._supportedExtensions.includes("DSN")&&(a.dsn.notify&&b.push("NOTIFY="+aj(a.dsn.notify)),a.dsn.orcpt&&b.push("ORCPT="+aj(a.dsn.orcpt))),b.length?" "+b.join(" "):""}_createSendStream(a){let b=this._envelope,c=new bx;if(this.options.lmtp?b.accepted.forEach((c,d)=>{let e=d===b.accepted.length-1;this._responseActions.push(b=>{this._actionLMTPStream(c,e,b,a)})}):this._responseActions.push(b=>{this._actionSMTPStream(b,a)}),this._currentDataStream=c,c.pipe(this._socket,{end:!1}),this.options.debug){let a=new G.PassThrough;a.on("readable",()=>{let b;for(;b=a.read();)this.logger.debug({tnx:"message"},b.toString("binary").replace(/\r?\n$/,""))}),c.pipe(a)}return c.once("end",()=>{this._currentDataStream===c&&(this._currentDataStream=!1),this.logger.info({tnx:"message",inByteCount:c.inByteCount,outByteCount:c.outByteCount},"<%s bytes encoded mime message (source size %s bytes)>",c.outByteCount,c.inByteCount)}),c}_actionGreeting(a){(clearTimeout(this._greetingTimeout),"220"!==a.substr(0,3))?this._onError(Error("Invalid greeting. response="+a),"EPROTOCOL",a,"CONN"):this.options.lmtp?(this._responseActions.push(this._actionLHLO),this._sendCommand("LHLO "+this.name)):(this._responseActions.push(this._actionEHLO),this._sendCommand("EHLO "+this.name))}_actionLHLO(a){"2"!==a.charAt(0)?this._onError(Error("Invalid LHLO. response="+a),"EPROTOCOL",a,"LHLO"):this._actionEHLO(a)}_actionEHLO(a){let b;if("421"===a.substr(0,3))return void this._onError(Error("Server terminates connection. response="+a),"ECONNECTION",a,"EHLO");if("2"!==a.charAt(0))return this.options.requireTLS?void this._onError(Error("EHLO failed but HELO does not support required STARTTLS. response="+a),"ECONNECTION",a,"EHLO"):(this._responseActions.push(this._actionHELO),void this._sendCommand("HELO "+this.name));if(this._ehloLines=a.split(/\r?\n/).map(a=>a.replace(/^\d+[ -]/,"").trim()).filter(a=>a).slice(1),!this.secure&&!this.options.ignoreTLS&&(/[ -]STARTTLS\b/im.test(a)||this.options.requireTLS)){this._sendCommand("STARTTLS"),this._responseActions.push(this._actionSTARTTLS);return}/[ -]SMTPUTF8\b/im.test(a)&&this._supportedExtensions.push("SMTPUTF8"),/[ -]DSN\b/im.test(a)&&this._supportedExtensions.push("DSN"),/[ -]8BITMIME\b/im.test(a)&&this._supportedExtensions.push("8BITMIME"),/[ -]REQUIRETLS\b/im.test(a)&&this._supportedExtensions.push("REQUIRETLS"),/[ -]PIPELINING\b/im.test(a)&&this._supportedExtensions.push("PIPELINING"),/[ -]AUTH\b/i.test(a)&&(this.allowsAuth=!0),/[ -]AUTH(?:(\s+|=)[^\n]*\s+|\s+|=)PLAIN/i.test(a)&&this._supportedAuth.push("PLAIN"),/[ -]AUTH(?:(\s+|=)[^\n]*\s+|\s+|=)LOGIN/i.test(a)&&this._supportedAuth.push("LOGIN"),/[ -]AUTH(?:(\s+|=)[^\n]*\s+|\s+|=)CRAM-MD5/i.test(a)&&this._supportedAuth.push("CRAM-MD5"),/[ -]AUTH(?:(\s+|=)[^\n]*\s+|\s+|=)XOAUTH2/i.test(a)&&this._supportedAuth.push("XOAUTH2"),(b=a.match(/[ -]SIZE(?:[ \t]+(\d+))?/im))&&(this._supportedExtensions.push("SIZE"),this._maxAllowedSize=Number(b[1])||0),this.emit("connect")}_actionHELO(a){"2"!==a.charAt(0)?this._onError(Error("Invalid HELO. response="+a),"EPROTOCOL",a,"HELO"):(this.allowsAuth=!0,this.emit("connect"))}_actionSTARTTLS(a){if("2"!==a.charAt(0)){if(this.options.opportunisticTLS){this.logger.info({tnx:"smtp"},"Failed STARTTLS upgrade, continuing unencrypted"),this.emit("connect");return}this._onError(Error("Error upgrading connection with STARTTLS"),"ETLS",a,"STARTTLS");return}this._upgradeConnection((a,b)=>{a?this._onError(Error("Error initiating TLS - "+(a.message||a)),"ETLS",!1,"STARTTLS"):(this.logger.info({tnx:"smtp"},"Connection upgraded with STARTTLS"),b?this.options.lmtp?(this._responseActions.push(this._actionLHLO),this._sendCommand("LHLO "+this.name)):(this._responseActions.push(this._actionEHLO),this._sendCommand("EHLO "+this.name)):this.emit("connect"))})}_actionAUTH_LOGIN_USER(a,b){/^334[ -]/.test(a)?(this._responseActions.push(a=>{this._actionAUTH_LOGIN_PASS(a,b)}),this._sendCommand(Buffer.from(this._auth.credentials.user+"","utf-8").toString("base64"))):b(this._formatError('Invalid login sequence while waiting for "334 VXNlcm5hbWU6"',"EAUTH",a,"AUTH LOGIN"))}_actionAUTH_CRAM_MD5(a,b){let c=a.match(/^334\s+(.+)$/);if(!c)return b(this._formatError("Invalid login sequence while waiting for server challenge string","EAUTH",a,"AUTH CRAM-MD5"));let d=Buffer.from(c[1],"base64").toString("ascii"),e=aq.default.createHmac("md5",this._auth.credentials.pass);e.update(d);let f=this._auth.credentials.user+" "+e.digest("hex");this._responseActions.push(a=>{this._actionAUTH_CRAM_MD5_PASS(a,b)}),this._sendCommand(Buffer.from(f).toString("base64"),Buffer.from(this._auth.credentials.user+" /* secret */").toString("base64"))}_actionAUTH_CRAM_MD5_PASS(a,b){if(!a.match(/^235\s+/))return b(this._formatError('Invalid login sequence while waiting for "235"',"EAUTH",a,"AUTH CRAM-MD5"));this.logger.info({tnx:"smtp",username:this._auth.user,action:"authenticated",method:this._authMethod},"User %s authenticated",JSON.stringify(this._auth.user)),this.authenticated=!0,b(null,!0)}_actionAUTH_LOGIN_PASS(a,b){if(!/^334[ -]/.test(a))return b(this._formatError('Invalid login sequence while waiting for "334 UGFzc3dvcmQ6"',"EAUTH",a,"AUTH LOGIN"));this._responseActions.push(a=>{this._actionAUTHComplete(a,b)}),this._sendCommand(Buffer.from((this._auth.credentials.pass||"").toString(),"utf-8").toString("base64"),Buffer.from("/* secret */","utf-8").toString("base64"))}_actionAUTHComplete(a,b,c){if(c||"function"!=typeof b||(c=b,b=!1),"334"===a.substr(0,3)){this._responseActions.push(a=>{b||"XOAUTH2"!==this._authMethod?this._actionAUTHComplete(a,!0,c):setImmediate(()=>this._handleXOauth2Token(!0,c))}),this._sendCommand("");return}if("2"!==a.charAt(0))return this.logger.info({tnx:"smtp",username:this._auth.user,action:"authfail",method:this._authMethod},"User %s failed to authenticate",JSON.stringify(this._auth.user)),c(this._formatError("Invalid login","EAUTH",a,"AUTH "+this._authMethod));this.logger.info({tnx:"smtp",username:this._auth.user,action:"authenticated",method:this._authMethod},"User %s authenticated",JSON.stringify(this._auth.user)),this.authenticated=!0,c(null,!0)}_actionMAIL(a,b){let c=this._envelope;if(2!==Number(a.charAt(0))){let d=this._usingSmtpUtf8&&/^550 /.test(a)&&/[\x80-\uFFFF]/.test(c.from)?"Internationalized mailbox name not allowed":"Mail command failed";return b(this._formatError(d,"EENVELOPE",a,"MAIL FROM"))}if(!c.rcptQueue.length)return b(this._formatError("Can't send mail - no recipients defined","EENVELOPE",!1,"API"));this._recipientQueue=[];let d=this._supportedExtensions.includes("PIPELINING");do{let a=c.rcptQueue.shift();this._recipientQueue.push(a),this._responseActions.push(a=>{this._actionRCPT(a,b)}),this._sendCommand("RCPT TO:<"+a+">"+this._getDsnRcptToArgs())}while(d&&c.rcptQueue.length)}_actionRCPT(a,b){let c,d=this._envelope,e=this._recipientQueue.shift();if(2!==Number(a.charAt(0))){let b=this._usingSmtpUtf8&&/^553 /.test(a)&&/[\x80-\uFFFF]/.test(e)?"Internationalized mailbox name not allowed":"Recipient command failed";d.rejected.push(e),(c=this._formatError(b,"EENVELOPE",a,"RCPT TO")).recipient=e,d.rejectedErrors.push(c)}else d.accepted.push(e);if(d.rcptQueue.length||this._recipientQueue.length){if(d.rcptQueue.length){let a=d.rcptQueue.shift();this._recipientQueue.push(a),this._responseActions.push(a=>{this._actionRCPT(a,b)}),this._sendCommand("RCPT TO:<"+a+">"+this._getDsnRcptToArgs())}}else if(d.rejected.length<d.to.length)this._responseActions.push(a=>{this._actionDATA(a,b)}),this._sendCommand("DATA");else{let e=d.rejectedErrors.find(a=>a.responseCode&&a.responseCode<500),f=e?.response??a;return(c=this._formatError("Can't send mail - all recipients were rejected","EENVELOPE",f,"RCPT TO")).rejected=d.rejected,c.rejectedErrors=d.rejectedErrors,b(c)}}_actionDATA(a,b){let c=this._envelope;if(!/^[23]/.test(a))return b(this._formatError("Data command failed","EENVELOPE",a,"DATA"));let d={accepted:c.accepted,rejected:c.rejected};this._ehloLines&&this._ehloLines.length&&(d.ehlo=this._ehloLines),c.rejectedErrors.length&&(d.rejectedErrors=c.rejectedErrors),b(null,d)}_actionSMTPStream(a,b){return 2!==Number(a.charAt(0))?b(this._formatError("Message failed","EMESSAGE",a,"DATA")):b(null,a)}_actionLMTPStream(a,b,c,d){let e,f=this._envelope;if(2!==Number(c.charAt(0))){(e=this._formatError("Message failed for recipient "+a,"EMESSAGE",c,"DATA")).recipient=a,f.rejected.push(a),f.rejectedErrors.push(e);for(let b=0,c=f.accepted.length;b<c;b++)f.accepted[b]===a&&f.accepted.splice(b,1)}if(b)return d(null,c)}_handleXOauth2Token(a,b){this._auth.oauth2.getToken(a,(c,d)=>{if(c)return this.logger.info({tnx:"smtp",username:this._auth.user,action:"authfail",method:this._authMethod},"User %s failed to authenticate",JSON.stringify(this._auth.user)),b(this._formatError(c,"EAUTH",!1,"AUTH XOAUTH2"));this._responseActions.push(c=>{this._actionAUTHComplete(c,a,b)}),this._sendCommand("AUTH XOAUTH2 "+this._auth.oauth2.buildXOAuth2Token(d),"AUTH XOAUTH2 "+this._auth.oauth2.buildXOAuth2Token("/* secret */"))})}_isDestroyedMessage(a){if(this._destroyed)return"Cannot "+a+" - smtp connection is already destroyed.";if(this._socket){if(this._socket.destroyed)return"Cannot "+a+" - smtp connection socket is already destroyed.";if(!this._socket.writable)return"Cannot "+a+" - smtp connection socket is already half-closed."}}_getHostname(){let a;try{a=Z.default.hostname()||""}catch(b){a="localhost"}return(!a||0>a.indexOf("."))&&(a="[127.0.0.1]"),a.match(/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/)&&(a="["+a+"]"),a}}var bC=G;class bD extends bC.Stream{constructor(a,b){if(super(),this.options=a||{},this.configError=!1,a&&a.serviceClient){if(!a.privateKey||!a.user){const a=Error('Options "privateKey" and "user" are required for service account!');a.code=L,this.configError=a}const b=Math.min(Math.max(Number(this.options.serviceRequestTimeout)||0,0),3600);this.options.serviceRequestTimeout=b||300}if(this.logger=ae({logger:b},{component:this.options.component||"OAuth2"}),this.provisionCallback="function"==typeof this.options.provisionCallback&&this.options.provisionCallback,this.options.accessUrl=this.options.accessUrl||"https://accounts.google.com/o/oauth2/token",this.options.customHeaders=this.options.customHeaders||{},this.options.customParams=this.options.customParams||{},this.accessToken=this.options.accessToken||!1,this.options.expires&&Number(this.options.expires))this.expires=this.options.expires;else{const a=Math.max(Number(this.options.timeout)||0,0);this.expires=a&&Date.now()+1e3*a||0}this.renewing=!1,this.renewalQueue=[]}getToken(a,b){if(this.configError)return b(this.configError);if(!a&&this.accessToken&&(!this.expires||this.expires>Date.now()))return this.logger.debug({tnx:"OAUTH2",user:this.options.user,action:"reuse"},"Reusing existing access token for %s",this.options.user),b(null,this.accessToken);if(!this.provisionCallback&&!this.options.refreshToken&&!this.options.serviceClient){if(this.accessToken)return this.logger.debug({tnx:"OAUTH2",user:this.options.user,action:"reuse"},"Reusing existing access token (no refresh capability) for %s",this.options.user),b(null,this.accessToken);this.logger.error({tnx:"OAUTH2",user:this.options.user,action:"renew"},"Cannot renew access token for %s: No refresh mechanism available",this.options.user);let a=Error("Can't create new access token for user");return a.code=L,b(a)}if(this.renewing)return void this.renewalQueue.push({renew:a,callback:b});this.renewing=!0;let c=(a,c)=>{this.renewalQueue.forEach(b=>b.callback(a,c)),this.renewalQueue=[],this.renewing=!1,a?this.logger.error({err:a,tnx:"OAUTH2",user:this.options.user,action:"renew"},"Failed generating new Access Token for %s",this.options.user):this.logger.info({tnx:"OAUTH2",user:this.options.user,action:"renew"},"Generated new Access Token for %s",this.options.user),b(a,c)};this.provisionCallback?this.provisionCallback(this.options.user,!!a,(a,b,d)=>{!a&&b&&(this.accessToken=b,this.expires=d||0),c(a,b)}):this.generateToken(c)}updateToken(a,b){this.accessToken=a,b=Math.max(Number(b)||0,0),this.expires=b&&Date.now()+1e3*b||0,this.emit("token",{user:this.options.user,accessToken:a||"",expires:this.expires})}generateToken(a){let b,c;if(this.options.serviceClient){let d,e=Math.floor(Date.now()/1e3),f={iss:this.options.serviceClient,scope:this.options.scope||"https://mail.google.com/",sub:this.options.user,aud:this.options.accessUrl,iat:e,exp:e+this.options.serviceRequestTimeout};try{d=this.jwtSignRS256(f)}catch(c){let b=Error("Can't generate token. Check your auth options");return b.code=L,a(b)}b={grant_type:"urn:ietf:params:oauth:grant-type:jwt-bearer",assertion:d},c={grant_type:"urn:ietf:params:oauth:grant-type:jwt-bearer",assertion:f}}else{if(!this.options.refreshToken){let b=Error("Can't create new access token for user");return b.code=L,a(b)}b={client_id:this.options.clientId||"",client_secret:this.options.clientSecret||"",refresh_token:this.options.refreshToken,grant_type:"refresh_token"},c={client_id:this.options.clientId||"",client_secret:(this.options.clientSecret||"").substr(0,6)+"...",refresh_token:(this.options.refreshToken||"").substr(0,6)+"...",grant_type:"refresh_token"}}Object.assign(b,this.options.customParams),Object.assign(c,this.options.customParams),this.logger.debug({tnx:"OAUTH2",user:this.options.user,action:"generate"},"Requesting token using: %s",JSON.stringify(c)),this.postRequest(this.options.accessUrl,b,this.options,(b,c)=>{let d;if(b)return a(b);try{d=JSON.parse(c.toString())}catch(b){return a(b)}if(!d||"object"!=typeof d){this.logger.debug({tnx:"OAUTH2",user:this.options.user,action:"post"},"Response: %s",(c||"").toString());let b=Error("Invalid authentication response");return b.code=L,a(b)}let e=Object.assign({},d);if(e.access_token&&(e.access_token=(e.access_token||"").toString().substr(0,6)+"..."),this.logger.debug({tnx:"OAUTH2",user:this.options.user,action:"post"},"Response: %s",JSON.stringify(e)),d.error){let b=d.error;d.error_description&&(b+=": "+d.error_description),d.error_uri&&(b+=" ("+d.error_uri+")");let c=Error(b);return c.code=L,a(c)}if(d.access_token)return this.updateToken(d.access_token,d.expires_in),a(null,this.accessToken);let f=Error("No access token");return f.code=L,a(f)})}buildXOAuth2Token(a){let b=["user="+(this.options.user||""),"auth=Bearer "+(a||this.accessToken),"",""];return Buffer.from(b.join("\x01"),"utf-8").toString("base64")}postRequest(a,b,c,d){let e=!1,f=[],g=0,h={method:"post",headers:c.customHeaders,body:b,allowErrorResponse:!0,timeout:c.requestTimeout};/^https:/i.test(a)&&(h.tls=Object.assign({rejectUnauthorized:!0},c.tls||{}));let i=X(a,h);i.on("readable",()=>{let a;for(;null!==(a=i.read());)f.push(a),g+=a.length}),i.once("error",a=>{if(!e)return e=!0,d(a)}),i.once("end",()=>{if(!e)return e=!0,d(null,Buffer.concat(f,g))})}toBase64URL(a){return"string"==typeof a&&(a=Buffer.from(a)),a.toString("base64").replace(/[=]+/g,"").replace(/\+/g,"-").replace(/\//g,"_")}jwtSignRS256(a){let b=['{"alg":"RS256","typ":"JWT"}',JSON.stringify(a)].map(a=>this.toBase64URL(a)).join("."),c=aq.default.createSign("RSA-SHA256").update(b).sign(this.options.privateKey);return b+"."+this.toBase64URL(c)}}var bE=c;class bF extends bE.EventEmitter{constructor(a){if(super(),this.pool=a,this.options=a.options,this.logger=this.pool.logger,this.options.auth)switch((this.options.auth.type||"").toString().toUpperCase()){case"OAUTH2":{const a=new bD(this.options.auth,this.logger);a.provisionCallback=this.pool.mailer&&this.pool.mailer.get("oauth2_provision_cb")||a.provisionCallback,this.auth={type:"OAUTH2",user:this.options.auth.user,oauth2:a,method:"XOAUTH2"},a.on("token",a=>this.pool.mailer.emit("token",a)),a.on("error",a=>this._fail(a));break}default:if(!this.options.auth.user&&!this.options.auth.pass)break;this.auth={type:(this.options.auth.type||"").toString().toUpperCase()||"LOGIN",user:this.options.auth.user,credentials:{user:this.options.auth.user||"",pass:this.options.auth.pass,options:this.options.auth.options},method:(this.options.auth.method||"").trim().toUpperCase()||this.options.authMethod||!1}}this._connection=!1,this._connected=!1,this.messages=0,this.available=!0,this._failed=!1}_fail(a){this._failed||(this._failed=!0,this.emit("error",a))}connect(a){this.pool.getSocket(this.options,(b,c)=>{if(b)return this._fail(b),a(b);let d=!1,e=this.options;c&&c.connection&&(this.logger.info({tnx:"proxy",remoteAddress:c.connection.remoteAddress,remotePort:c.connection.remotePort,destHost:e.host||"",destPort:e.port||"",action:"connected"},"Using proxied socket from %s:%s to %s:%s",c.connection.remoteAddress,c.connection.remotePort,e.host||"",e.port||""),e=Object.assign(ai(!1,e),c)),this.connection=new bB(e),this.connection.on("error",b=>{if(this._fail(b),!d)return d=!0,a(b)}),this.connection.once("end",()=>{this.close(),d=!0}),this.connection.connect(b=>{if(!d){if(b){d=!0;return}if(!this.auth||!this.connection.allowsAuth&&!e.forceAuth)return d=!0,this._connected=!0,a(null,!0);this.connection.login(this.auth,b=>{if(!d){if(d=!0,b)return this.connection.close(),this._fail(b),a(b);this._connected=!0,a(null,!0)}})}})})}send(a,b){if(!this._connected)return this.connect(c=>c?b(c):this.send(a,b));let c=a.message.getEnvelope(),d=a.message.messageId(),e=[].concat(c.to||[]);e.length>3&&e.push("...and "+e.splice(2).length+" more"),this.logger.info({tnx:"send",messageId:d,cid:this.id},"Sending message %s using #%s to <%s>",d,this.id,e.join(", ")),a.data.dsn&&(c.dsn=a.data.dsn),a.data.requireTLSExtensionEnabled&&(c.requireTLSExtensionEnabled=a.data.requireTLSExtensionEnabled),this.connection.send(c,a.message.createReadStream(),(a,e)=>{if(this.messages++,a)return this.connection.close(),this._fail(a),b(a);e.envelope={from:c.from,to:c.to},e.messageId=d,setImmediate(()=>{if(this.messages>=this.options.maxMessages){let a=Error("Resource exhausted");a.code=M,this.connection.close(),this._fail(a)}else this.pool._checkRateLimit(()=>{this.available=!0,this.emit("available")})}),b(null,e)})}close(){this._connected=!1,this.auth&&this.auth.oauth2&&this.auth.oauth2.removeAllListeners(),this.connection&&this.connection.close(),this.emit("close")}}let bG={126:{description:"126 Mail (NetEase)",host:"smtp.126.com",port:465,secure:!0},163:{description:"163 Mail (NetEase)",host:"smtp.163.com",port:465,secure:!0},"1und1":{description:"1&1 Mail (German hosting provider)",host:"smtp.1und1.de",port:465,secure:!0,authMethod:"LOGIN"},Aliyun:{description:"Alibaba Cloud Mail",domains:["aliyun.com"],host:"smtp.aliyun.com",port:465,secure:!0},AliyunQiye:{description:"Alibaba Cloud Enterprise Mail",host:"smtp.qiye.aliyun.com",port:465,secure:!0},AOL:{description:"AOL Mail",domains:["aol.com"],host:"smtp.aol.com",port:587},Aruba:{description:"Aruba PEC (Italian email provider)",domains:["aruba.it","pec.aruba.it"],aliases:["Aruba PEC"],host:"smtps.aruba.it",port:465,secure:!0,authMethod:"LOGIN"},Bluewin:{description:"Bluewin (Swiss email provider)",host:"smtpauths.bluewin.ch",domains:["bluewin.ch"],port:465},BOL:{description:"BOL Mail (Brazilian provider)",domains:["bol.com.br"],host:"smtp.bol.com.br",port:587,requireTLS:!0},DebugMail:{description:"DebugMail (email testing service)",host:"debugmail.io",port:25},Disroot:{description:"Disroot (privacy-focused provider)",domains:["disroot.org"],host:"disroot.org",port:587,secure:!1,authMethod:"LOGIN"},DynectEmail:{description:"Dyn Email Delivery",aliases:["Dynect"],host:"smtp.dynect.net",port:25},ElasticEmail:{description:"Elastic Email",aliases:["Elastic Email"],host:"smtp.elasticemail.com",port:465,secure:!0},Ethereal:{description:"Ethereal Email (email testing service)",aliases:["ethereal.email"],host:"smtp.ethereal.email",port:587},FastMail:{description:"FastMail",domains:["fastmail.com","fastmail.fm"],host:"smtp.fastmail.com",port:465,secure:!0},"Feishu Mail":{description:"Feishu Mail (Lark)",aliases:["Feishu","FeishuMail"],domains:["www.feishu.cn"],host:"smtp.feishu.cn",port:465,secure:!0},"Forward Email":{description:"Forward Email (email forwarding service)",aliases:["FE","ForwardEmail"],domains:["forwardemail.net"],host:"smtp.forwardemail.net",port:465,secure:!0},GandiMail:{description:"Gandi Mail",aliases:["Gandi","Gandi Mail"],host:"mail.gandi.net",port:587},Gmail:{description:"Gmail",aliases:["Google Mail"],domains:["gmail.com","googlemail.com"],host:"smtp.gmail.com",port:465,secure:!0},GmailWorkspace:{description:"Gmail Workspace",aliases:["Google Workspace Mail"],host:"smtp-relay.gmail.com",port:465,secure:!0},GMX:{description:"GMX Mail",domains:["gmx.com","gmx.net","gmx.de"],host:"mail.gmx.com",port:587},Godaddy:{description:"GoDaddy Email (US)",host:"smtpout.secureserver.net",port:25},GodaddyAsia:{description:"GoDaddy Email (Asia)",host:"smtp.asia.secureserver.net",port:25},GodaddyEurope:{description:"GoDaddy Email (Europe)",host:"smtp.europe.secureserver.net",port:25},"hot.ee":{description:"Hot.ee (Estonian email provider)",host:"mail.hot.ee"},Hotmail:{description:"Outlook.com / Hotmail",aliases:["Outlook","Outlook.com","Hotmail.com"],domains:["hotmail.com","outlook.com"],host:"smtp-mail.outlook.com",port:587},iCloud:{description:"iCloud Mail",aliases:["Me","Mac"],domains:["icloud.com","me.com","mac.com"],host:"smtp.mail.me.com",port:587},Infomaniak:{description:"Infomaniak Mail (Swiss hosting provider)",host:"mail.infomaniak.com",domains:["ik.me","ikmail.com","etik.com"],port:587},KolabNow:{description:"KolabNow (secure email service)",domains:["kolabnow.com"],aliases:["Kolab"],host:"smtp.kolabnow.com",port:465,secure:!0,authMethod:"LOGIN"},Loopia:{description:"Loopia (Swedish hosting provider)",host:"mailcluster.loopia.se",port:465},Loops:{description:"Loops",host:"smtp.loops.so",port:587},"mail.ee":{description:"Mail.ee (Estonian email provider)",host:"smtp.mail.ee"},"Mail.ru":{description:"Mail.ru",host:"smtp.mail.ru",port:465,secure:!0},"Mailcatch.app":{description:"Mailcatch (email testing service)",host:"sandbox-smtp.mailcatch.app",port:2525},Maildev:{description:"MailDev (local email testing)",port:1025,ignoreTLS:!0},MailerSend:{description:"MailerSend",host:"smtp.mailersend.net",port:587},Mailgun:{description:"Mailgun",host:"smtp.mailgun.org",port:465,secure:!0},Mailjet:{description:"Mailjet",host:"in.mailjet.com",port:587},Mailosaur:{description:"Mailosaur (email testing service)",host:"mailosaur.io",port:25},Mailtrap:{description:"Mailtrap",host:"live.smtp.mailtrap.io",port:587},Mandrill:{description:"Mandrill (by Mailchimp)",host:"smtp.mandrillapp.com",port:587},Naver:{description:"Naver Mail (Korean email provider)",host:"smtp.naver.com",port:587},OhMySMTP:{description:"OhMySMTP (email delivery service)",host:"smtp.ohmysmtp.com",port:587,secure:!1},One:{description:"One.com Email",host:"send.one.com",port:465,secure:!0},OpenMailBox:{description:"OpenMailBox",aliases:["OMB","openmailbox.org"],host:"smtp.openmailbox.org",port:465,secure:!0},Outlook365:{description:"Microsoft 365 / Office 365",host:"smtp.office365.com",port:587,secure:!1},Postmark:{description:"Postmark",aliases:["PostmarkApp"],host:"smtp.postmarkapp.com",port:2525},Proton:{description:"Proton Mail",aliases:["ProtonMail","Proton.me","Protonmail.com","Protonmail.ch"],domains:["proton.me","protonmail.com","pm.me","protonmail.ch"],host:"smtp.protonmail.ch",port:587,requireTLS:!0},"qiye.aliyun":{description:"Alibaba Mail Enterprise Edition",host:"smtp.mxhichina.com",port:"465",secure:!0},QQ:{description:"QQ Mail",domains:["qq.com"],host:"smtp.qq.com",port:465,secure:!0},QQex:{description:"QQ Enterprise Mail",aliases:["QQ Enterprise"],domains:["exmail.qq.com"],host:"smtp.exmail.qq.com",port:465,secure:!0},Resend:{description:"Resend",host:"smtp.resend.com",port:465,secure:!0},Runbox:{description:"Runbox (Norwegian email provider)",domains:["runbox.com"],host:"smtp.runbox.com",port:465,secure:!0},SendCloud:{description:"SendCloud (Chinese email delivery)",host:"smtp.sendcloud.net",port:2525},SendGrid:{description:"SendGrid",host:"smtp.sendgrid.net",port:587},SendinBlue:{description:"Brevo (formerly Sendinblue)",aliases:["Brevo"],host:"smtp-relay.brevo.com",port:587},SendPulse:{description:"SendPulse",host:"smtp-pulse.com",port:465,secure:!0},SES:{description:"AWS SES US East (N. Virginia)",host:"email-smtp.us-east-1.amazonaws.com",port:465,secure:!0},"SES-AP-NORTHEAST-1":{description:"AWS SES Asia Pacific (Tokyo)",host:"email-smtp.ap-northeast-1.amazonaws.com",port:465,secure:!0},"SES-AP-NORTHEAST-2":{description:"AWS SES Asia Pacific (Seoul)",host:"email-smtp.ap-northeast-2.amazonaws.com",port:465,secure:!0},"SES-AP-NORTHEAST-3":{description:"AWS SES Asia Pacific (Osaka)",host:"email-smtp.ap-northeast-3.amazonaws.com",port:465,secure:!0},"SES-AP-SOUTH-1":{description:"AWS SES Asia Pacific (Mumbai)",host:"email-smtp.ap-south-1.amazonaws.com",port:465,secure:!0},"SES-AP-SOUTHEAST-1":{description:"AWS SES Asia Pacific (Singapore)",host:"email-smtp.ap-southeast-1.amazonaws.com",port:465,secure:!0},"SES-AP-SOUTHEAST-2":{description:"AWS SES Asia Pacific (Sydney)",host:"email-smtp.ap-southeast-2.amazonaws.com",port:465,secure:!0},"SES-CA-CENTRAL-1":{description:"AWS SES Canada (Central)",host:"email-smtp.ca-central-1.amazonaws.com",port:465,secure:!0},"SES-EU-CENTRAL-1":{description:"AWS SES Europe (Frankfurt)",host:"email-smtp.eu-central-1.amazonaws.com",port:465,secure:!0},"SES-EU-NORTH-1":{description:"AWS SES Europe (Stockholm)",host:"email-smtp.eu-north-1.amazonaws.com",port:465,secure:!0},"SES-EU-WEST-1":{description:"AWS SES Europe (Ireland)",host:"email-smtp.eu-west-1.amazonaws.com",port:465,secure:!0},"SES-EU-WEST-2":{description:"AWS SES Europe (London)",host:"email-smtp.eu-west-2.amazonaws.com",port:465,secure:!0},"SES-EU-WEST-3":{description:"AWS SES Europe (Paris)",host:"email-smtp.eu-west-3.amazonaws.com",port:465,secure:!0},"SES-SA-EAST-1":{description:"AWS SES South America (São Paulo)",host:"email-smtp.sa-east-1.amazonaws.com",port:465,secure:!0},"SES-US-EAST-1":{description:"AWS SES US East (N. Virginia)",host:"email-smtp.us-east-1.amazonaws.com",port:465,secure:!0},"SES-US-EAST-2":{description:"AWS SES US East (Ohio)",host:"email-smtp.us-east-2.amazonaws.com",port:465,secure:!0},"SES-US-GOV-EAST-1":{description:"AWS SES GovCloud (US-East)",host:"email-smtp.us-gov-east-1.amazonaws.com",port:465,secure:!0},"SES-US-GOV-WEST-1":{description:"AWS SES GovCloud (US-West)",host:"email-smtp.us-gov-west-1.amazonaws.com",port:465,secure:!0},"SES-US-WEST-1":{description:"AWS SES US West (N. California)",host:"email-smtp.us-west-1.amazonaws.com",port:465,secure:!0},"SES-US-WEST-2":{description:"AWS SES US West (Oregon)",host:"email-smtp.us-west-2.amazonaws.com",port:465,secure:!0},Seznam:{description:"Seznam Email (Czech email provider)",aliases:["Seznam Email"],domains:["seznam.cz","email.cz","post.cz","spoluzaci.cz"],host:"smtp.seznam.cz",port:465,secure:!0},SMTP2GO:{description:"SMTP2GO",host:"mail.smtp2go.com",port:2525},Sparkpost:{description:"SparkPost",aliases:["SparkPost","SparkPost Mail"],domains:["sparkpost.com"],host:"smtp.sparkpostmail.com",port:587,secure:!1},Tipimail:{description:"Tipimail (email delivery service)",host:"smtp.tipimail.com",port:587},TurboSMTP:{description:"TurboSMTP",host:"pro.turbo-smtp.com",port:465,secure:!0},"TurboSMTP-EU":{description:"TurboSMTP (EU region)",host:"pro.eu.turbo-smtp.com",port:465,secure:!0},Tutanota:{description:"Tutanota (Tuta Mail)",domains:["tutanota.com","tuta.com","tutanota.de","tuta.io"],host:"smtp.tutanota.com",port:465,secure:!0},Yahoo:{description:"Yahoo Mail",domains:["yahoo.com"],host:"smtp.mail.yahoo.com",port:465,secure:!0},Yandex:{description:"Yandex Mail",domains:["yandex.ru"],host:"smtp.yandex.ru",port:465,secure:!0},Zimbra:{description:"Zimbra Mail Server",aliases:["Zimbra Collaboration"],host:"smtp.zimbra.com",port:587,requireTLS:!0},Zoho:{description:"Zoho Mail",host:"smtp.zoho.com",port:465,secure:!0,authMethod:"LOGIN"}},bH={};function bI(a){return a.replace(/[^a-zA-Z0-9.-]/g,"").toLowerCase()}function bJ(a){return bH[a=bI(a.split("@").pop())]||!1}Object.keys(bG).forEach(a=>{var b;let c,d=bG[a],e=(c={},Object.keys(b=d).forEach(a=>{["domains","aliases"].includes(a)||(c[a]=b[a])}),c);bH[bI(a)]=e,[].concat(d.aliases||[]).forEach(a=>{bH[bI(a)]=e}),[].concat(d.domains||[]).forEach(a=>{bH[bI(a)]=e})});class bK extends bq.EventEmitter{constructor(a){let b;super(),"string"==typeof(a=a||{})&&(a={url:a});let c=a.service;"function"==typeof a.getSocket&&(this.getSocket=a.getSocket),a.url&&(b=ad(a.url),c=c||b.service),this.options=ai(!1,a,b,c&&bJ(c)),this.options.maxConnections=this.options.maxConnections||5,this.options.maxMessages=this.options.maxMessages||100,this.options.maxRequeues="number"==typeof this.options.maxRequeues?this.options.maxRequeues:5,this.logger=ae(this.options,{component:this.options.component||"smtp-pool"}),this.name="SMTP (pool)",this.version=I+"[client:"+I+"]",this._rateLimit={counter:0,timeout:null,waiting:[],checkpoint:!1,delta:Number(this.options.rateDelta)||1e3,limit:Number(this.options.rateLimit)||0},this._closed=!1,this._queue=[],this._connections=[],this._connectionCounter=0,this.idling=!0,setImmediate(()=>{this.idling&&this.emit("idle")})}getSocket(a,b){setImmediate(()=>b(null,!1))}send(a,b){if(this._closed){let a=Error("Connection pool was closed");return a.code=J,setImmediate(()=>b(a)),!1}return this._queue.push({mail:a,requeueAttempts:0,callback:b}),this.idling&&this._queue.length>=this.options.maxConnections&&(this.idling=!1),setImmediate(()=>this._processMessages()),!0}close(){let a,b=this._connections.length;if(this._closed=!0,this._clearRateLimit(),!b&&!this._queue.length)return;for(let c=b-1;c>=0;c--)this._connections[c]&&this._connections[c].available&&((a=this._connections[c]).close(),this.logger.info({tnx:"connection",cid:a.id,action:"removed"},"Connection #%s removed",a.id));if(b&&!this._connections.length&&this.logger.debug({tnx:"connection"},"All connections removed"),!this._queue.length)return;let c=()=>{if(!this._queue.length)return void this.logger.debug({tnx:"connection"},"Pending queue entries cleared");let a=this._queue.shift();if(a&&"function"==typeof a.callback)try{a.callback(Error("Connection pool was closed"))}catch(a){this.logger.error({err:a,tnx:"callback"},"Callback error: %s",a.message)}setImmediate(c)};setImmediate(c)}_processMessages(){if(this._closed)return;if(!this._queue.length){this.idling||(this.idling=!0,this.emit("idle"));return}let a=this._connections.find(a=>a.available);if(!a&&this._connections.length<this.options.maxConnections&&(a=this._createConnection()),!a){this.idling=!1;return}!this.idling&&this._queue.length<this.options.maxConnections&&(this.idling=!0,this.emit("idle"));let b=a.queueEntry=this._queue.shift();b.messageId=(a.queueEntry.mail.message.getHeader("message-id")||"").replace(/[<>\s]/g,""),a.available=!1,this.logger.debug({tnx:"pool",cid:a.id,messageId:b.messageId,action:"assign"},"Assigned message <%s> to #%s (%s)",b.messageId,a.id,a.messages+1),this._rateLimit.limit&&(this._rateLimit.counter++,this._rateLimit.checkpoint||(this._rateLimit.checkpoint=Date.now())),a.send(b.mail,(c,d)=>{if(b===a.queueEntry){try{b.callback(c,d)}catch(b){this.logger.error({err:b,tnx:"callback",cid:a.id},"Callback error for #%s: %s",a.id,b.message)}a.queueEntry=!1}})}_createConnection(){let a=new bF(this);return a.id=++this._connectionCounter,this.logger.info({tnx:"pool",cid:a.id,action:"conection"},"Created new pool resource #%s",a.id),a.on("available",()=>{this.logger.debug({tnx:"connection",cid:a.id,action:"available"},"Connection #%s became available",a.id),this._closed?this.close():this._processMessages()}),a.once("error",b=>{if(b.code!==M?this.logger.warn({err:b,tnx:"pool",cid:a.id},"Pool Error for #%s: %s",a.id,b.message):this.logger.debug({tnx:"pool",cid:a.id,action:"maxlimit"},"Max messages limit exchausted for #%s",a.id),a.queueEntry){try{a.queueEntry.callback(b)}catch(b){this.logger.error({err:b,tnx:"callback",cid:a.id},"Callback error for #%s: %s",a.id,b.message)}a.queueEntry=!1}this._removeConnection(a),this._continueProcessing()}),a.once("close",()=>{this.logger.info({tnx:"connection",cid:a.id,action:"closed"},"Connection #%s was closed",a.id),this._removeConnection(a),a.queueEntry?setTimeout(()=>{let b=0;a.queueEntry&&(this._shouldRequeuOnConnectionClose(a.queueEntry)?b=this._requeueEntryOnConnectionClose(a):this._failDeliveryOnConnectionClose(a)),b?setTimeout(()=>this._continueProcessing(),b):this._continueProcessing()},50):(this._closed||!this.idling||this._connections.length||this.emit("clear"),this._continueProcessing())}),this._connections.push(a),a}_shouldRequeuOnConnectionClose(a){return this.options.maxRequeues<0||a.requeueAttempts<this.options.maxRequeues}_failDeliveryOnConnectionClose(a){if(a.queueEntry&&a.queueEntry.callback){try{let b=Error("Reached maximum number of retries after connection was closed");b.code=J,a.queueEntry.callback(b)}catch(b){this.logger.error({err:b,tnx:"callback",messageId:a.queueEntry.messageId,cid:a.id},"Callback error for #%s: %s",a.id,b.message)}a.queueEntry=!1}}_requeueEntryOnConnectionClose(a){let b=Math.min(50*2**a.queueEntry.requeueAttempts,2e3);return a.queueEntry.requeueAttempts+=1,this.logger.debug({tnx:"pool",cid:a.id,messageId:a.queueEntry.messageId,action:"requeue"},"Re-queued message <%s> for #%s. Attempt: #%s",a.queueEntry.messageId,a.id,a.queueEntry.requeueAttempts),this._queue.unshift(a.queueEntry),a.queueEntry=!1,b}_continueProcessing(){this._closed?this.close():setTimeout(()=>this._processMessages(),100)}_removeConnection(a){let b=this._connections.indexOf(a);-1!==b&&this._connections.splice(b,1)}_checkRateLimit(a){if(!this._rateLimit.limit)return a();let b=Date.now();return this._rateLimit.counter<this._rateLimit.limit?a():(this._rateLimit.waiting.push(a),this._rateLimit.checkpoint<=b-this._rateLimit.delta)?this._clearRateLimit():void(!this._rateLimit.timeout&&(this._rateLimit.timeout=setTimeout(()=>this._clearRateLimit(),this._rateLimit.delta-(b-this._rateLimit.checkpoint)),this._rateLimit.checkpoint=b))}_clearRateLimit(){for(clearTimeout(this._rateLimit.timeout),this._rateLimit.timeout=null,this._rateLimit.counter=0,this._rateLimit.checkpoint=!1;this._rateLimit.waiting.length;)setImmediate(this._rateLimit.waiting.shift())}isIdle(){return this.idling}verify(a){let b;a||(b=new Promise((b,c)=>{a=af(b,c)}));let c=a,d=new bF(this).auth;return this.getSocket(this.options,(a,b)=>{if(a)return c(a);let e=this.options;b&&b.connection&&(this.logger.info({tnx:"proxy",remoteAddress:b.connection.remoteAddress,remotePort:b.connection.remotePort,destHost:e.host||"",destPort:e.port||"",action:"connected"},"Using proxied socket from %s:%s to %s:%s",b.connection.remoteAddress,b.connection.remotePort,e.host||"",e.port||""),e=Object.assign(ai(!1,e),b));let f=new bB(e),g=!1;f.once("error",a=>{if(!g)return g=!0,f.close(),c(a)}),f.once("end",()=>{if(!g)return g=!0,c(Error("Connection closed"))});let h=()=>{if(!g)return g=!0,f.quit(),c(null,!0)};f.connect(a=>{if(!g){if(a)return g=!0,f.close(),c(a);if(d&&(f.allowsAuth||e.forceAuth))f.login(d,a=>{if(!g){if(a)return g=!0,f.close(),c(a);h()}});else if(!d&&f.allowsAuth&&e.forceAuth){let a=Error("Authentication info was not provided");return a.code=K,g=!0,f.close(),c(a)}else h()}})}),b}}var bL=c;class bM extends bL.EventEmitter{constructor(a){let b;super(),"string"==typeof(a=a||{})&&(a={url:a});let c=a.service;"function"==typeof a.getSocket&&(this.getSocket=a.getSocket),a.url&&(b=ad(a.url),c=c||b.service),this.options=ai(!1,a,b,c&&bJ(c)),this.logger=ae(this.options,{component:this.options.component||"smtp-transport"}),this.name="SMTP",this.version=I+"[client:"+I+"]",this.options.auth&&(this.auth=this.getAuth({}))}getSocket(a,b){setImmediate(()=>b(null,!1))}getAuth(a){if(!a)return this.auth&&this.auth.oauth2&&this.mailer&&(this.auth.oauth2.provisionCallback=this.mailer.get("oauth2_provision_cb")||this.auth.oauth2.provisionCallback),this.auth;let b=Object.assign({},this.options.auth&&"object"==typeof this.options.auth?this.options.auth:{},"object"==typeof a?a:{});if(0===Object.keys(b).length)return!1;if("OAUTH2"!==(b.type||"").toString().toUpperCase())return{type:(b.type||"").toString().toUpperCase()||"LOGIN",user:b.user,credentials:{user:b.user||"",pass:b.pass,options:b.options},method:(b.method||"").trim().toUpperCase()||this.options.authMethod||!1};{if(!b.service&&!b.user)return!1;let a=new bD(b,this.logger);return a.provisionCallback=this.mailer&&this.mailer.get("oauth2_provision_cb")||a.provisionCallback,a.on("token",a=>this.mailer.emit("token",a)),a.on("error",a=>this.emit("error",a)),{type:"OAUTH2",user:b.user,oauth2:a,method:"XOAUTH2"}}}send(a,b){this.getSocket(this.options,(c,d)=>{let e;if(c)return b(c);let f=!1,g=this.options;d&&d.connection&&(this.logger.info({tnx:"proxy",remoteAddress:d.connection.remoteAddress,remotePort:d.connection.remotePort,destHost:g.host||"",destPort:g.port||"",action:"connected"},"Using proxied socket from %s:%s to %s:%s",d.connection.remoteAddress,d.connection.remotePort,g.host||"",g.port||""),g=Object.assign(ai(!1,g),d));let h=new bB(g),i=()=>{e&&e!==this.auth&&e.oauth2&&e.oauth2.removeAllListeners(),e=null};h.once("error",a=>{if(!f)return f=!0,i(),h.close(),b(a)});let j=()=>{let c=a.message.getEnvelope(),d=a.message.messageId(),e=[].concat(c.to||[]);e.length>3&&e.push("...and "+e.splice(2).length+" more"),a.data.dsn&&(c.dsn=a.data.dsn),a.data.requireTLSExtensionEnabled&&(c.requireTLSExtensionEnabled=a.data.requireTLSExtensionEnabled),this.logger.info({tnx:"send",messageId:d},"Sending message %s to <%s>",d,e.join(", ")),h.send(c,a.message.createReadStream(),(a,e)=>{if(!f){if(f=!0,i(),h.close(),a)return this.logger.error({err:a,tnx:"send"},"Send error for %s: %s",d,a.message),b(a);e.envelope={from:c.from,to:c.to},e.messageId=d;try{return b(null,e)}catch(a){this.logger.error({err:a,tnx:"callback"},"Callback error for %s: %s",d,a.message)}}})};h.connect(c=>{if(!f){if(c)return f=!0,h.close(),b(c);(e=this.getAuth(a.data.auth))&&(h.allowsAuth||g.forceAuth)?h.login(e,a=>{if(i(),!f){if(a)return f=!0,h.close(),b(a);j()}}):j()}})})}verify(a){let b;a||(b=new Promise((b,c)=>{a=af(b,c)}));let c=a;return this.getSocket(this.options,(a,b)=>{let d;if(a)return c(a);let e=this.options;b&&b.connection&&(this.logger.info({tnx:"proxy",remoteAddress:b.connection.remoteAddress,remotePort:b.connection.remotePort,destHost:e.host||"",destPort:e.port||"",action:"connected"},"Using proxied socket from %s:%s to %s:%s",b.connection.remoteAddress,b.connection.remotePort,e.host||"",e.port||""),e=Object.assign(ai(!1,e),b));let f=new bB(e),g=!1,h=()=>{d&&d!==this.auth&&d.oauth2&&d.oauth2.removeAllListeners(),d=null};f.once("error",a=>{if(!g)return g=!0,h(),f.close(),c(a)}),f.once("end",()=>{if(!g)return g=!0,h(),c(Error("Connection closed"))});let i=()=>{if(!g)return g=!0,h(),f.quit(),c(null,!0)};f.connect(a=>{if(!g){if(a)return g=!0,f.close(),c(a);if((d=this.getAuth({}))&&(f.allowsAuth||e.forceAuth))f.login(d,a=>{if(h(),!g){if(a)return g=!0,f.close(),c(a);i()}});else if(!d&&f.allowsAuth&&e.forceAuth){let a=Error("Authentication info was not provided");return a.code=K,g=!0,h(),f.close(),c(a)}else i()}})}),b}close(){this.auth&&this.auth.oauth2&&this.auth.oauth2.removeAllListeners(),this.emit("close")}}var bN=a.i(874533);let bO=class{constructor(a){a=a||{},this._spawn=bN.spawn,this.options=a,this.name="Sendmail",this.version=I,this.path="sendmail",this.args=!1,this.logger=ae(this.options,{component:this.options.component||"sendmail"}),"string"==typeof a?this.path=a:"object"==typeof a&&(a.path&&(this.path=a.path),Array.isArray(a.args)&&(this.args=a.args)),this.winbreak=["win","windows","dos","\r\n"].includes((a.newline||"").toString().toLowerCase())}send(a,b){let c,d;a.message.keepBcc=!0;let e=a.message.getEnvelope(),f=a.message.messageId();if([].concat(e.from||[]).concat(e.to||[]).some(a=>/^"?-/.test(a))){let a=Error("Can not send mail. Invalid envelope addresses.");return a.code=N,b(a)}let g=this.args?["-i"].concat(this.args).concat(e.to):["-i"].concat(e.from?["-f",e.from]:[]).concat(e.to),h=a=>{if(!c&&(c=!0,"function"==typeof b))return a?b(a):b(null,{envelope:e,messageId:f,response:"Messages queued for delivery"})};try{d=this._spawn(this.path,g)}catch(a){return this.logger.error({err:a,tnx:"spawn",messageId:f},"Error occurred while spawning sendmail. %s",a.message),h(a)}if(d){d.on("error",a=>{this.logger.error({err:a,tnx:"spawn",messageId:f},"Error occurred when sending message %s. %s",f,a.message),h(a)}),d.once("exit",a=>{if(!a)return h();let b=Error(127===a?"Sendmail command not found, process exited with code "+a:"Sendmail exited with code "+a);b.code=N,this.logger.error({err:b,tnx:"stdin",messageId:f},"Error sending message %s to sendmail. %s",f,b.message),h(b)}),d.once("close",h),d.stdin.on("error",a=>{this.logger.error({err:a,tnx:"stdin",messageId:f},"Error occurred when piping message %s to sendmail. %s",f,a.message),h(a)});let b=[].concat(e.to||[]);b.length>3&&b.push("...and "+b.splice(2).length+" more"),this.logger.info({tnx:"send",messageId:f},"Sending message %s to <%s>",f,b.join(", "));let c=a.message.createReadStream(),g=c;this.options.newline&&(g=c.pipe(this.winbreak?new aY:new a$),c.once("error",a=>g.emit("error",a))),g.once("error",a=>{this.logger.error({err:a,tnx:"stdin",messageId:f},"Error occurred when generating message %s. %s",f,a.message),d.kill("SIGINT"),h(a)}),g.pipe(d.stdin)}else{let a=Error("sendmail was not found");return a.code=N,h(a)}}},bP=class{constructor(a){a=a||{},this.options=a,this.name="StreamTransport",this.version=I,this.logger=ae(this.options,{component:this.options.component||"stream-transport"}),this.winbreak=["win","windows","dos","\r\n"].includes((a.newline||"").toString().toLowerCase())}send(a,b){a.message.keepBcc=!0;let c=a.message.getEnvelope(),d=a.message.messageId(),e=[].concat(c.to||[]);e.length>3&&e.push("...and "+e.splice(2).length+" more"),this.logger.info({tnx:"send",messageId:d},"Sending message %s to <%s> using %s line breaks",d,e.join(", "),this.winbreak?"<CR><LF>":"<LF>"),setImmediate(()=>{let e;try{if(e=a.message.createReadStream(),this.options.newline){let a=e;e=a.pipe(this.winbreak?new aY:new a$),a.once("error",a=>e.emit("error",a))}}catch(a){return this.logger.error({err:a,tnx:"send",messageId:d},"Creating send stream failed for %s. %s",d,a.message),b(a)}if(!this.options.buffer)return e.once("error",a=>{this.logger.error({err:a,tnx:"send",messageId:d},"Failed creating message for %s. %s",d,a.message)}),b(null,{envelope:c,messageId:d,message:e});let f=[],g=0;e.on("readable",()=>{let a;for(;null!==(a=e.read());)f.push(a),g+=a.length}),e.once("error",a=>(this.logger.error({err:a,tnx:"send",messageId:d},"Failed creating message for %s. %s",d,a.message),b(a))),e.on("end",()=>b(null,{envelope:c,messageId:d,message:Buffer.concat(f,g)}))})}},bQ=class{constructor(a){a=a||{},this.options=a,this.name="JSONTransport",this.version=I,this.logger=ae(this.options,{component:this.options.component||"json-transport"})}send(a,b){a.message.keepBcc=!0;let c=a.message.getEnvelope(),d=a.message.messageId(),e=[].concat(c.to||[]);e.length>3&&e.push("...and "+e.splice(2).length+" more"),this.logger.info({tnx:"send",messageId:d},"Composing JSON structure of %s to <%s>",d,e.join(", ")),setImmediate(()=>{a.normalize((a,e)=>a?(this.logger.error({err:a,tnx:"send",messageId:d},"Failed building JSON structure for %s. %s",d,a.message),b(a)):(delete e.envelope,delete e.normalizedHeaders,b(null,{envelope:c,messageId:d,message:this.options.skipEncoding?e:JSON.stringify(e)})))})}};var bR=c;function bS(a){return a&&"object"==typeof a&&!a.code&&(a.code="ESES"),a}class bT extends bR.default{constructor(a){if(super(),!a||!a.SES||!a.SES.sesClient){const a=Error("Missing SES configuration, expecting { sesClient, SendEmailCommand } from @aws-sdk/client-sesv2, see https://nodemailer.com/transports/ses/");throw a.code=O,a}this.options=a,this.ses=this.options.SES,this.name="SESTransport",this.version=I,this.logger=ae(this.options,{component:this.options.component||"ses-transport"})}getRegion(a){return this.ses.sesClient.config&&"function"==typeof this.ses.sesClient.config.region?void this.ses.sesClient.config.region().then(b=>a(null,b),b=>a(b)):a(null,!1)}send(a,b){let c=a.message._headers.find(a=>/^from$/i.test(a.key));if(c){let a=new a6("text/plain");c=a._convertAddresses(a._parseAddresses(c.value))}let d=a.message.getEnvelope(),e=a.message.messageId(),f=[].concat(d.to||[]);f.length>3&&f.push("...and "+f.splice(2).length+" more"),this.logger.info({tnx:"send",messageId:e},"Sending message %s to <%s>",e,f.join(", ")),setImmediate(()=>{var f;let g,h,i,j;return f=(f,g)=>{if(f)return this.logger.error({err:f,tnx:"send",messageId:e},"Failed creating message for %s. %s",e,f.message),b(f);let h=U({Content:{Raw:{Data:g}},FromEmailAddress:c||d.from,Destination:{ToAddresses:d.to}},a.data.ses);this.getRegion((a,c)=>{let f;(a||!c)&&(c="us-east-1");try{let a=new this.ses.SendEmailCommand(h);f=this.ses.sesClient.send(a)}catch(a){bS(a),this.logger.error({err:a,tnx:"send"},"Send error for %s: %s",e,a.message),setImmediate(()=>b(a));return}f.then(a=>{"us-east-1"===c&&(c="email");let e={envelope:{from:d.from,to:d.to},messageId:"<"+a.MessageId+(/@/.test(a.MessageId)?"":"@"+c+".amazonses.com")+">",response:a.MessageId,raw:g};setImmediate(()=>b(null,e))}).catch(a=>{bS(a),this.logger.error({err:a,tnx:"send"},"Send error for %s: %s",e,a.message),setImmediate(()=>b(a))})})},a.data._dkim||(a.data._dkim={}),a.data._dkim.skipFields&&"string"==typeof a.data._dkim.skipFields?a.data._dkim.skipFields+=":date:message-id":a.data._dkim.skipFields="date:message-id",h=(g=a.message.createReadStream()).pipe(new aY),i=[],j=0,void(h.on("readable",()=>{let a;for(;null!==(a=h.read());)i.push(a),j+=a.length}),g.once("error",a=>h.emit("error",a)),h.once("error",a=>f(a)),h.once("end",()=>f(null,Buffer.concat(i,j))))})}verify(a){let b;a||(b=new Promise((b,c)=>{a=af(b,c)}));let c=a,d=a=>a&&!["InvalidParameterValue","MessageRejected"].includes(a.code||a.Code||a.name)?c(bS(a)):c(null,!0),e={Content:{Raw:{Data:Buffer.from("From: <invalid@invalid>\r\nTo: <invalid@invalid>\r\n Subject: Invalid\r\n\r\nInvalid")}},FromEmailAddress:"invalid@invalid",Destination:{ToAddresses:["invalid@invalid"]}};return this.getRegion(()=>{let a;try{let b=new this.ses.SendEmailCommand(e);a=this.ses.sesClient.send(b)}catch(a){setImmediate(()=>d(a));return}a.then(()=>setImmediate(()=>d(null))).catch(a=>setImmediate(()=>d(a)))}),b}}(process.env.ETHEREAL_API||"https://api.nodemailer.com").replace(/\/+$/,""),(process.env.ETHEREAL_WEB||"https://ethereal.email").replace(/\/+$/,""),(process.env.ETHEREAL_API_KEY||"").replace(/\s*/g,""),["true","yes","y","1"].includes((process.env.ETHEREAL_CACHE||"yes").toString().trim().toLowerCase()),a.s(["createTransport",0,function(a,b){let c;if("object"==typeof a&&"function"!=typeof a.send||"string"==typeof a&&/^(smtps?|direct):/i.test(a)){let b="string"==typeof a?a:a.url;if(b){let d=ad(b);c="object"==typeof a?ai(!1,U({},a,a=>"url"===a),d):d}else c=a;if(c.pool)a=new bK(c);else if(c.sendmail)a=new bO(c);else if(c.streamTransport)a=new bP(c);else if(c.jsonTransport)a=new bQ(c);else if(c.SES){let b=c.SES;if(b.ses&&b.aws){let a=Error("Using legacy SES configuration, expecting @aws-sdk/client-sesv2, see https://nodemailer.com/transports/ses/");throw a.code=O,a}a=new bT(c)}else a=new bM(c)}return new bp(a,c,b)}],592949)},382982,a=>{"use strict";a.i(71065);var b=a.i(990658),c=a.i(809111);let d=new Uint8Array([1,2,1,1,1,1,1,1,1,1,1,1,0,2,2,2,0,2,2,0,2,0,0,1,0,0,2,1,1,1,1,1,1,0,0,0,1,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,1,1,0,0,2,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,0,1,1,0,0,0,0,0,0,1,1,1,0,2,0,0,0,0,0,0,0,2,0,2,2,0,0,2,2,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,2,1,1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,2,2,0,0,0,0,0,2,0,0,0,2,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,0,0,2,0,0,0,0,2,1,1,1,1,1,1,1,1,1,0,1,1,0,0,0,0,1,0,2,2,0,0,0,2,0,1,1,0,2,0,2,2,0,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,0,0,0,0,1,0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,2,2,0,2,2,0,0,0,0,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,2,2,0,2,2,2,2,0,0,0,0,2,0,0,0,0,0,0,0,2,2,0,0,0,2,2,1,1,1,1,1,2,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,2,2,0,0,2,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,2,2,1,2,1,1,1,2,1,1,1,1,1,0,1,1,1,1,2,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,2,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,0,0,0,0]),e=new Uint16Array([0,0,0,10,11,18,106,111,117,124,130,136,145,146,147,148,149,150,151,153,154,155,157,159,227,240,242,243,244,259,266,267,270,271,272,275,277,296,297,299,308,313,330,331,334,336,337,339,373,374,376,379,380,384,386,390,393,425,428,441,442,450,451,453,463,477,478,479,480,489,490,527,532,548,568,574,616,617,644,671,672,820,826,829,830,831,836,841,850,872,873,874,875,876,877,878,896,898,899,902,904,905,907,909,924,939,944,945,947,948,949,950,951,953,956,961,962,963,965,966,969,972,973,974,987,989,1001,1012,1020,1022,1063,1066,1070,1071,1073,1076,1087,1089,1099,1101,1107,1109,1110,1112,1115,1116,1117,1170,1172,1174,1194,1195,1196,1197,1199,1210,1241,1252,1264,1273,1280,1285,1298,1309,1322,1323,1334,1368,1369,1370,1385,1400,1472,1473,1475,1476,1510,1511,1512,1513,1516,1520,1523,1525,1554,1555,1563,1564,1565,1566,1568,1570,1571,1573,1574,1575,1586,1587,1588,1589,1590,1591,1592,1593,1594,1595,1596,1597,1598,1599,1601,1602,1603,2057,2060,2061,2063,2070,2077,2087,2091,2102,2103,2104,2116,2117,2119,2121,2122,2129,2130,2132,2133,2135,2136,2137,2138,2139,2213,2215,2236,2237,2238,2240,2266,2267,2318,2319,2321,2328,2334,2344,2354,2407,2408,2409,2419,2433,2434,2437,2444,2445,2453,2454,2455,2456,2457,2468,2469,2470,2472,2473,2474,2483,2495,2501,2533,2537,2539,2540,2542,2543,2554,2555,2557,2565,2572,2578,2583,2584,2590,2593,2599,2606,2607,2614,2622,2623,2624,2662,2668,2683,2684,2689,2707,2738,2756,2758,2761,2769,2771,2778,2830,2854,2855,2856,2857,2858,2859,2860,2867,2868,2869,2870,2871,2872,2874,2875,2879,2959,2972,2973,3410,3414,3428,3480,3508,3530,3588,3610,3625,3688,3739,3777,3813,3838,3980,4026,4077,4096,4130,4145,4165,4195,4226,4249,4280,4310,4342,4369,4444,4466,4504,4514,4548,4567,4593,4635,4685,4711,4780,4781,4783,4806,4829,4865,4896,4913,4970,4983,5007,5036,5038,5072,5088,5116,5421,5430,5439,5446,5463,5467,5473,5512,5514,5521,5528,5537,5544,5545,5546,5558,5561,5576,5577,5586,5587,5596,5605,5611,5613,5614,5615,5652,5653,5655,5663,5670,5683,5687,5689,5690,5696,5703,5717,5727,5732,5740,5748,5754,5755,5759,5761,5762,5774,5846,5847,5848,5849,5851,5852,5855,5857,5860,5864,5865,5866,5872,5873,5874,5876,5878,5880,5881,5882,5885,5887,5890,5891,5893,6091,6098,6099,6100,6110,6115,6132,6146,6155,6156,6157,6161,6162,6164,6166,6172,6173,6176,6177,6179,6180,6181,7081,7084,7088,7106,7115,7118,7125,7126,7128,7129,7130,7132,7184,7185,7188,7189,7306,7307,7318,7329,7336,7339,7348,7349,7350,7365,7420,7612,7614,7615,7617,7622,7635,7650,7657,7666,7669,7672,7679,7687,7691,7692,7693,7707,7711,7720,7721,7722,7726,7761,7762,7780,7787,7795,7796,7801,7809,7853,7854,7860,7863,7875,7880,7881,7884,7886,7921,7922,7928,7935,7936,7945,7954,7969,7973,7974,8026,8027,8032,8034,8037,8039,8040,8041,8050,8064,8072,8086,8098,8099,8101,8103,8125,8136,8142,8143,8155,8167,8254,8266,8274,8277,8283,8308,8311,8312,8313,8314,8316,8319,8322,8333,8335,8337,8365,8440,8447,8451,8452,8461,8483,8484,8489,8490,8569,8571,8573,8582,8586,8592,8598,8604,8614,8619,8620,8638,8649,8654,8659,8669,8675,8679,8685,8691,10300,10301,10302,10309,10311]),f=new Uint8Array([3,3,3,3,3,3,3,3,5,8,8,2,2,3,3,3,3,3,8,5,5,5,5,5,3,3,5,5,9,12,19,8,19,8,11,9,9,8,7,7,6,8,9,16,10,7,7,11,8,6,6,9,7,11,7,14,4,4,4,4,4,4,10,7,6,6,6,6,10,10,6,10,10,22,11,9,10,10,10,9,10,8,7,7,7,8,21,13,11,11,9,10,9,13,10,8,8,9,12,9,7,10,7,7,13,7,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,8,6,3,3,3,3,3,3,2,5,3,3,3,7,2,2,2,2,2,2,3,3,3,1,1,7,8,5,2,2,7,2,2,1,4,1,11,9,9,5,5,8,5,5,5,5,5,5,5,3,3,3,3,3,5,11,9,9,13,7,14,7,6,6,6,7,6,6,6,6,6,10,7,11,9,4,4,4,4,4,6,6,6,6,13,6,8,7,10,9,9,7,9,8,9,8,7,10,6,9,8,10,10,7,8,1,9,10,12,12,12,10,9,9,10,10,9,9,1,1,5,3,3,3,3,3,3,3,3,3,3,3,3,6,6,6,4,3,3,3,7,4,4,4,3,3,6,7,3,4,1,2,2,2,6,1,2,2,2,2,2,12,5,3,8,9,13,4,4,13,9,9,11,7,3,12,9,2,2,2,3,3,3,3,3,8,2,2,3,3,3,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,4,3,7,10,15,7,15,15,20,15,9,10,10,12,14,14,14,12,12,12,12,12,14,14,10,10,10,10,14,9,9,9,10,14,14,14,13,13,9,9,9,9,9,9,7,8,6,8,8,6,8,13,8,8,6,13,8,11,13,8,6,13,8,6,9,10,10,12,14,14,14,12,12,12,12,14,14,10,10,10,10,9,9,9,10,14,14,11,13,13,9,9,9,9,9,9,2,6,9,2,2,3,3,3,3,3,3,3,3,3,4,4,4,2,3,3,3,3,3,3,7,7,2,3,2,2,5,3,3,3,3,3,3,4,2,2,2,2,2,2,3,3,3,3,3,3,3,4,5,7,4,2,2,12,8,10,8,10,7,18,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,2,2,3,3,3,5,5,3,8,8,6,8,6,6,4,6,7,7,7,10,11,2,5,5,3,3,3,3,3,3,5,5,6,11,10,7,7,7,4,4,4,2,3,3,3,3,3,2,2,7,5,5,3,3,3,3,3,3,3,3,7,7,7,11,7,6,9,6,6,8,10,8,6,8,13,4,4,4,4,4,10,8,11,8,8,8,10,10,7,10,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,5,5,5,5,5,5,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,7,10,13,7,8,7,11,8,8,6,9,8,8,6,6,6,8,8,6,6,6,6,6,9,7,6,4,4,4,4,4,4,4,6,6,6,9,7,8,10,8,8,2,3,3,3,3,3,2,8,9,9,2,2,2,3,3,3,2,3,3,3,9,2,2,3,3,3,3,3,3,5,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,12,5,5,3,5,4,2,3,2,4,3,9,2,2,2,2,2,5,5,3,8,8,13,6,10,9,4,7,9,11,2,3,7,3,3,4,1,3,4,2,9,3,3,12,5,3,7,10,10,7,4,4,6,14,7,9,7,13,2,2,2,2,2,2,3,3,3,3,3,8,15,4,4,2,3,3,3,7,4,9,9,2,3,3,3,5,3,2,2,7,2,7,6,6,7,2,4,2,2,2,2,2,2,8,8,8,9,5,2,3,3,3,3,3,3,10,7,4,4,4,4,3,4,2,3,3,3,3,3,10,7,4,4,4,4,2,3,3,3,3,10,7,4,4,4,4,3,9,6,6,6,9,13,9,2,2,2,8,7,9,5,3,3,3,5,5,13,12,9,10,7,8,7,6,8,6,11,12,7,9,10,4,4,7,8,11,6,7,9,8,7,10,8,9,15,7,8,5,4,7,2,3,3,3,2,14,10,2,14,10,2,14,3,9,13,13,10,14,16,17,11,2,14,2,14,3,9,13,10,14,16,17,11,14,10,14,2,7,3,10,7,14,10,2,14,10,9,9,17,6,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,10,10,10,12,9,4,10,10,11,8,8,8,7,9,5,3,3,3,3,3,3,3,3,5,8,4,4,4,4,4,4,6,16,3,3,14,3,14,2,14,9,13,10,10,14,16,17,11,6,9,10,10,12,14,14,14,12,12,12,12,14,14,10,10,10,10,14,9,9,9,10,14,14,14,9,9,9,9,9,9,2,14,9,13,10,10,14,16,17,11,6,2,14,9,17,13,10,10,14,16,17,11,6,2,14,9,13,10,14,16,17,11,2,14,9,13,10,16,11,2,14,10,19,7,2,14,9,13,10,19,10,7,14,16,17,11,6,2,14,9,13,10,19,7,14,16,17,11,2,14,9,13,17,13,10,10,14,16,17,11,6,3,2,14,9,13,10,10,14,16,17,11,6,9,10,12,14,14,14,12,12,12,12,12,14,14,14,10,10,10,14,9,9,9,9,14,14,14,13,13,14,9,9,9,9,9,9,4,11,2,14,9,13,17,13,10,19,10,7,14,16,17,11,6,2,14,9,13,17,13,10,19,10,7,14,16,17,11,6,2,9,10,10,7,17,3,3,12,12,16,15,15,12,14,14,14,20,20,13,12,12,12,12,12,12,20,25,14,14,12,12,10,10,10,10,9,9,9,25,4,9,17,10,7,14,16,21,13,13,14,20,14,13,17,24,9,12,13,25,13,21,20,17,9,9,9,9,9,9,12,17,4,4,9,9,9,10,10,12,14,14,14,12,12,12,12,12,14,14,10,10,10,10,14,9,9,9,10,14,14,14,13,13,9,9,9,9,9,9,1,5,8,7,11,11,1,3,3,3,5,3,3,4,8,9,10,14,14,12,12,12,12,14,14,10,10,10,10,14,9,9,9,10,14,14,14,13,13,9,9,9,9,9,7,4,4,4,4,4,4,4,4,4,7,4,9,12,6,14,4,12,7,2,2,1,2,7,6,4,4,4,6,8,8,7,4,5,6,3,3,3,3,4,16,8,5,4,3,3,3,5,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,11,12,7,7,13,9,10,17,12,8,9,7,8,5,12,10,13,14,5,5,5,13,5,5,5,3,3,3,5,16,5,5,5,5,7,12,14,8,12,8,10,12,9,11,7,9,7,10,7,13,9,7,12,8,17,7,7,16,10,13,13,8,10,10,14,17,7,16,16,15,8,10,10,12,17,17,7,17,14,7,10,17,8,7,7,7,8,15,15,7,14,10,10,10,11,11,7,7,13,8,10,7,16,7,8,7,14,17,12,10,11,21,8,9,7,13,9,8,13,6,12,7,6,13,10,10,10,8,18,9,17,13,10,12,6,13,6,11,8,13,10,13,18,13,11,13,8,16,7,10,8,16,12,10,8,8,14,11,8,15,8,8,7,7,12,7,8,9,14,15,8,9,10,9,15,7,8,8,12,13,9,10,15,13,7,10,10,20,7,6,9,6,6,14,11,14,11,12,9,10,16,16,12,7,11,28,8,11,10,7,21,8,7,9,4,4,4,17,7,8,6,9,6,6,13,6,6,6,6,18,20,14,8,11,12,9,10,13,15,15,19,8,9,12,7,10,16,12,9,9,9,14,12,11,9,12,11,18,9,9,9,10,7,7,16,8,9,7,13,12,10,14,18,7,8,11,7,7,8,8,13,7,7,7,11,15,13,11,7,8,15,11,7,8,18,14,13,18,15,10,12,12,9,7,11,11,8,7,10,8,14,12,10,18,7,10,9,7,8,13,10,14,10,8,8,23,7,7,11,12,12,17,7,7,11,11,17,16,16,7,8,11,14,14,8,10,7,7,16,16,13,9,11,9,15,15,11,11,7,7,14,7,9,7,7,16,10,13,10,11,14,7,11,10,11,7,11,10,11,15,11,15,10,12,10,14,13,11,11,12,13,10,7,13,10,16,12,21,9,10,10,7,11,14,17,7,7,8,11,12,8,15,14,14,8,17,12,10,10,7,9,11,7,10,7,11,18,7,11,7,12,11,8,8,14,12,7,8,15,3,7,7,5,2,9,2,2,2,2,2,2,2,3,3,3,3,3,3,3,2,5,3,3,3,3,3,3,4,4,3,3,3,3,3,3,5,11,6,4,7,10,7,7,11,1,10,2,2,3,3,3,3,3,3,3,3,5,7,3,5,6,3,3,5,2,2,5,3,4,13,11,3,3,6,3,5,14,2,2,3,8,2,2,12,5,18,5,3,3,3,16,5,5,5,10,7,13,12,13,9,12,14,19,9,9,21,9,9,10,6,9,6,15,10,6,12,8,6,10,15,4,4,6,6,9,9,12,16,14,23,7,7,7,14,9,7,7,11,14,10,7,10,10,10,12,6,11,10,13,11,15,11,7,12,10,3,7,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,4,3,7,2,5,5,3,3,5,5,5,5,7,6,6,6,4,4,4,4,4,4,6,6,6,6,6,7,10,2,2,2,5,5,5,5,3,3,3,3,3,5,5,10,9,11,8,7,12,8,9,7,6,13,11,6,13,7,9,9,4,4,4,4,4,6,10,7,8,13,8,8,9,14,7,8,10,7,7,7,9,6,9,7,2,12,5,3,3,13,4,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,4,5,5,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,8,4,4,4,4,4,4,4,4,4,4,4,4,9,3,3,3,3,3,3,3,3,3,3,4,2,2,2,5,3,3,3,3,3,3,3,3,4,4,1,7,6,4,12,3,3,3,3,3,8,7,3,3,3,3,3,3,4,4,11,14,2,8,3,5,5,8,10,8,6,4,7,17,7,4,5,2,6,3,2,2,12,5,5,3,15,13,8,11,2,2,3,3,3,3,3,3,3,3,4,4,5,3,3,3,3,4,18,2,12,5,3,3,3,3,3,5,16,8,8,9,6,6,4,4,4,4,31,6,6,10,11,21,10,9,7,10,7,7,2,4,4,4,4,6,5,3,3,4,3,3,3,3,3,3,3,3,3,6,6,6,2,2,2,5,3,3,3,7,7,4,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,8,2,3,3,3,3,3,5,9,11,3,3,3,3,4,4,3,3,3,3,3,5,10,9,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,2,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,11,10,10,10,10,10,11,10,11,10,11,10,9,9,11,3,3,3,3,3,3,5,3,7,8,8,7,6,6,11,4,4,4,7,8,9,9,2,3,7,4,4,2,5,5,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,2,2,5,5,5,5,5,3,3,5,5,5,7,7,6,6,6,4,4,4,4,4,4,4,4,4,4,6,6,8,8,1,2,2,2,2,2,2,3,3,3,3,3,3,3,4,4,6,9,12,3,7,10,7,2,2,3,3,3,3,3,4,3,3,2,2,2,2,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,8,8,6,6,8,6,7,4,4,4,4,4,4,6,7,5,5,20,19,8,10,9,7,10,6,8,11,6,6,6,6,13,12,8,6,7,14,11,9,2,5,3,6,2,3,2,2,2,2,2,2,2,5,4,3,7,6,4,7,4,3,6,4,7,2,7,7,7,5,5,5,5,3,3,3,3,3,3,3,3,3,5,9,10,10,11,7,8,20,7,8,9,8,12,6,6,6,8,9,8,12,6,6,8,13,10,12,6,6,7,7,9,6,4,4,4,4,4,4,10,6,6,6,7,14,11,10,7,8,10,8,11,14,11,11,9,7,9,8,11,9,17,10,9,2,2,2,9,3,3,3,3,15,14,9,5,5,2,8,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,15,12,22,19,17,18,18,19,21,7,16,16,5,5,5,5,5,5,5,5,5,5,5,7,5,5,5,5,5,5,5,5,5,5,5,9,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,7,16,11,11,7,7,7,7,17,7,8,12,15,9,19,7,19,8,21,11,12,19,14,22,7,7,7,7,7,7,7,7,7,7,7,16,16,19,24,12,7,14,7,12,7,8,10,10,13,7,12,12,7,7,10,18,15,12,16,7,14,12,17,10,16,17,12,17,25,7,7,7,13,6,9,6,9,18,6,6,11,20,10,6,6,6,6,6,6,17,6,6,6,15,6,6,6,6,6,8,14,11,12,11,15,13,19,17,21,7,18,8,13,13,8,12,8,6,6,13,6,15,15,16,6,6,16,6,6,6,14,6,18,6,6,6,17,18,9,13,15,8,19,8,15,15,18,14,16,4,4,4,4,4,4,4,4,4,4,4,4,6,11,10,11,6,21,23,12,17,12,11,14,13,22,15,15,11,12,14,12,7,12,8,12,14,12,18,10,8,16,19,17,12,14,15,8,19,17,12,13,13,15,18,13,23,24,23,21,17,24,8,21,8,14,14,16,20,14,8,8,15,20,8,19,21,9,8,13,12,13,15,11,8,11,9,9,8,11,8,21,14,21,15,15,13,7,19,7,7,7,7,7,7,16,12,17,18,7,7,11,11,7,9,9,2,2,3,3,2,2,2,3,3,3,3,3,3,3,3,3,3,4,5,5,5,5,5,5,5,5,3,3,10,10,7,9,7,7,7,6,8,6,6,6,6,6,6,6,7,6,8,6,6,9,7,7,7,4,4,4,4,4,4,4,4,8,9,8,7,8,7,8,10,7,5,5,5,5,5,5,3,9,7,7,8,6,6,6,6,6,6,6,6,9,6,6,9,11,13,7,8,9,9,5,5,5,7,8,6,6,6,6,6,6,6,7,8,9,7,10,9,10,7,8,5,5,5,5,5,5,7,7,9,8,7,7,6,6,6,6,6,6,10,6,6,6,6,6,6,6,6,6,6,6,9,10,4,4,4,4,8,7,7,10,10,9,8,8,15,9,8,8,8,8,8,9,10,9,10,7,8,13,5,5,5,5,5,3,3,7,7,8,6,6,6,4,4,11,9,7,8,9,10,7,5,5,5,5,5,3,3,7,6,6,13,7,9,8,7,5,5,5,5,5,5,5,5,3,3,3,3,7,8,7,8,13,6,6,6,6,6,6,6,6,6,6,6,6,6,6,8,8,6,6,6,6,7,6,7,6,6,9,7,4,4,4,4,4,4,4,7,8,7,8,9,8,8,8,7,10,7,8,5,5,5,5,5,5,5,5,3,7,7,7,7,9,7,10,9,6,6,6,6,6,8,8,6,6,6,7,6,6,6,9,9,4,4,13,7,10,9,9,12,7,8,8,10,8,8,8,8,8,8,5,5,5,5,3,7,7,11,7,9,8,8,6,6,10,6,8,8,8,6,7,6,6,12,4,4,4,4,4,4,4,4,4,9,8,8,16,8,9,8,7,5,5,5,5,5,3,3,7,7,7,10,15,8,9,8,9,9,6,6,6,6,6,6,7,4,8,7,8,8,7,8,11,8,5,5,5,5,5,3,7,7,6,11,16,7,6,4,4,4,4,9,9,8,8,8,13,12,8,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,11,7,8,8,9,13,7,7,7,9,8,8,9,12,7,12,7,12,8,7,10,12,9,9,6,6,8,8,6,6,6,6,6,6,6,9,8,9,11,8,6,6,6,6,6,12,7,6,6,6,9,7,7,6,6,6,6,6,11,9,6,6,6,6,6,7,9,4,4,4,4,4,4,4,4,9,9,9,9,7,7,7,7,7,11,7,7,8,8,8,8,8,8,9,8,9,9,7,7,11,11,7,12,8,8,8,8,8,7,8,8,8,8,8,13,12,8,8,8,8,7,7,7,9,5,5,5,5,5,5,5,3,3,7,7,11,7,8,8,8,6,6,6,6,6,6,6,6,6,6,6,10,11,6,7,9,4,4,4,4,4,4,9,9,8,9,8,8,8,7,7,5,5,5,5,5,5,5,5,5,5,3,3,11,7,7,7,9,6,6,11,8,10,6,6,6,12,8,8,7,6,6,8,7,4,4,4,4,4,4,4,4,9,10,9,9,8,10,9,11,8,5,5,5,7,6,6,8,7,4,4,4,4,8,7,7,8,7,8,8,5,5,5,5,7,7,8,8,8,6,6,6,6,6,10,8,9,13,6,7,6,6,8,7,8,4,4,4,4,11,8,8,8,10,5,5,8,7,8,13,8,7,6,8,6,9,7,8,7,5,5,5,5,5,5,3,3,7,8,9,6,4,8,10,10,8,12,9,13,2,7,5,5,5,5,5,7,7,10,6,6,6,6,6,6,6,8,4,4,9,8,8,8,14,8,8,8,9,8,5,5,5,5,5,3,3,9,6,6,6,6,10,12,6,6,6,6,6,6,6,4,4,4,4,11,8,7,8,8,8,5,5,3,3,3,3,7,7,6,8,6,8,11,7,6,6,6,7,4,8,11,9,10,5,5,5,3,3,3,7,7,8,9,8,15,9,6,6,6,6,6,6,11,11,4,4,4,4,4,7,9,9,10,8,7,5,5,5,5,5,5,3,3,8,6,6,6,6,6,6,6,6,6,9,7,4,4,4,4,4,9,9,8,8,10,13,5,5,5,3,17,7,7,7,7,7,8,6,8,13,6,6,6,6,6,6,6,6,4,4,4,9,10,8,8,8,5,5,5,5,3,7,7,7,8,8,6,6,6,8,8,8,9,10,8,4,8,10,9,8,8,8,9,13,10,5,5,5,5,5,5,5,5,5,5,3,3,7,8,9,9,7,7,7,10,9,9,8,9,8,8,8,6,6,6,6,6,6,6,6,6,6,6,6,6,8,12,6,6,6,6,6,6,6,6,6,12,4,4,4,4,4,4,4,4,4,4,4,11,8,8,9,9,10,8,9,7,7,5,5,5,5,5,5,3,7,8,7,6,6,8,6,6,10,4,7,8,9,12,8,7,7,5,5,5,5,5,5,3,3,7,14,7,9,8,8,6,6,8,12,12,6,6,7,7,10,4,4,4,4,4,9,9,14,9,13,8,7,5,5,5,6,6,6,7,4,8,7,5,5,5,5,5,5,5,5,3,3,7,7,7,8,6,6,6,6,6,6,12,6,6,6,6,4,4,9,9,8,8,11,7,7,7,5,5,5,3,9,8,6,6,7,4,4,4,4,4,4,8,8,11,5,5,5,7,7,7,9,6,6,6,6,6,6,9,8,4,4,4,4,7,12,9,8,8,8,7,10,10,5,5,5,5,5,5,5,3,11,14,8,7,8,8,6,6,6,6,6,8,7,6,6,6,7,6,8,9,4,4,4,7,8,9,7,9,7,7,9,8,5,5,5,5,5,5,5,5,5,11,3,9,7,7,12,14,8,6,6,12,11,8,6,6,6,6,6,6,6,6,6,15,7,4,4,4,16,9,9,9,8,9,9,9,9,9,8,8,8,13,11,8,5,5,5,5,3,7,6,6,8,8,8,6,6,7,10,7,4,4,4,4,9,7,8,7,7,7,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,7,7,7,9,6,6,6,6,6,8,8,7,7,9,6,6,6,7,6,6,6,6,6,15,4,4,4,4,4,8,8,7,8,12,9,8,8,8,8,8,9,8,8,10,8,8,8,8,16,9,10,2,5,5,5,5,5,5,5,9,7,6,8,9,4,4,4,4,4,7,8,8,8,9,8,11,10,5,5,5,5,3,7,8,6,6,6,6,6,8,6,6,6,6,4,12,10,12,7,7,7,7,7,7,7,5,5,5,5,3,3,7,7,10,8,9,7,6,10,7,6,6,4,4,8,9,7,9,9,9,9,8,8,8,8,10,5,5,5,5,5,5,8,7,6,6,6,10,6,7,10,7,4,4,4,4,4,4,4,12,9,10,7,7,10,8,10,5,12,9,6,6,6,6,6,7,6,4,4,4,10,9,9,8,7,7,5,5,5,5,5,5,3,3,13,7,7,9,7,7,7,8,9,9,7,8,6,6,6,6,6,6,6,6,6,6,6,6,6,7,13,9,15,15,4,4,4,4,4,10,10,9,8,9,8,8,9,7,8,7,8,5,5,7,6,6,6,4,4,4,7,8,11,8,5,5,5,5,5,5,5,7,6,6,6,6,6,6,9,11,10,7,4,4,4,9,8,8,5,5,5,5,5,9,9,6,6,6,6,6,6,6,9,9,4,4,4,4,8,8,8,9,9,8,8,8,13,2,4,2,7,5,5,5,5,5,5,9,9,6,6,6,6,10,8,8,8,6,6,6,4,4,9,8,10,8,9,8,8,8,9,8,8,5,3,3,3,11,6,6,6,7,6,6,6,4,4,9,8,5,5,5,5,5,3,11,8,6,6,6,6,6,9,7,4,4,14,10,9,8,12,8,8,8,11,15,8,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,11,11,11,10,10,7,7,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,5,5,5,5,5,5,5,5,3,3,3,7,11,7,7,11,11,7,8,9,10,7,7,9,9,9,9,7,7,10,8,13,8,8,8,8,11,10,6,6,8,10,11,14,14,6,6,6,6,6,6,9,11,7,7,6,8,12,11,11,6,6,10,6,6,6,6,6,10,7,7,6,6,11,6,6,6,11,8,9,7,6,10,11,9,10,11,7,11,8,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,8,6,6,8,9,10,9,6,6,6,10,6,6,6,6,11,10,11,10,9,8,7,7,7,7,11,14,8,10,9,9,8,8,7,11,8,8,8,11,11,10,10,9,10,8,11,10,8,11,9,12,8,10,8,11,8,9,9,11,11,10,11,13,8,7,8,8,9,7,8,8,8,8,7,8,2,2,2,2,2,2,2,4,4,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,4,2,3,3,3,3,3,3,3,3,8,6,4,4,4,11,7,11,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,5,5,5,5,3,3,3,3,8,7,7,8,8,4,8,7,7,7,9,7,8,9,8,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,6,3,3,3,3,3,3,3,3,4,2,2,3,3,3,3,3,3,4,5,5,3,3,8,8,6,9,4,4,10,7,3,3,3,2,5,3,3,3,3,3,3,3,3,3,3,3,3,4,3,2,2,2,3,3,3,3,3,4,10,2,3,3,3,3,3,3,3,4,2,3,3,3,3,3,3,3,3,2,2,3,3,3,5,2,4,2,6,2,2,9,5,5,3,3,3,3,3,3,3,5,5,5,9,8,7,9,6,6,11,4,4,4,4,4,4,4,4,6,6,7,7,11,8,8,6,5,11,2,3,3,3,3,3,3,3,3,3,3,3,3,3,4,2,2,3,3,3,3,3,3,6,4,4,4,4,3,3,3,3,5,7,2,3,3,3,3,3,8,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,6,4,4,4,4,2,2,3,3,3,3,3,3,3,4,3,3,3,3,3,3,3,3,3,3,3,3,4,2,2,3,3,3,3,3,3,2,3,3,3,3,3,6,3,3,8,10,3,4,4,1,1,1,1,1,1,1,8,9,10,7,7,1,14,18,13,18,13,10,10,16,13,18,16,13,16,18,13,22,16,16,16,14,21,16,9,14,16,9,9,14,10,10,14,12,14,19,12,11,18,13,17,15,15,15,15,16,14,13,19,18,15,19,18,12,18,12,11,20,14,15,10,17,17,16,19,20,21,15,13,16,15,15,15,1,1,3,8,7,7,8,8,8,1,6,1,1,6,3,3,4,7,3,3,5,5,4,4,4,4,4,2,7,7,8,12,3,4,5,1,3,4,4,10,4,3,3,3,8,7,7,2,2,2,2,2,2,2,2,2,12,9,20,7,5,5,5,9,13,5,5,5,5,5,3,3,3,16,5,5,5,13,7,8,8,11,8,7,9,7,11,12,9,9,8,8,11,10,14,7,12,10,11,13,7,9,11,17,17,14,13,7,8,7,10,10,7,16,13,7,8,17,12,9,8,6,7,10,6,6,12,6,8,10,8,8,8,6,8,6,14,6,6,6,13,6,10,6,6,7,14,8,6,6,10,11,10,9,9,7,7,6,6,6,9,9,7,9,10,9,13,12,4,4,4,4,4,4,4,4,4,4,6,6,6,8,8,6,8,9,10,9,7,10,10,8,7,8,7,10,12,9,8,15,8,7,8,8,7,7,15,13,7,10,9,14,18,16,7,24,7,8,10,11,16,8,14,7,9,9,9,13,19,14,15,14,11,7,13,9,10,7,13,9,10,11,12,8,9,2,3,5,8,7,4,4,15,10,5,3,3,3,3,3,5,4,4,4,2,2,2,2,2,1,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,2,2,2,3,3,3,3,3,3,3,3,3,3,4,2,12,5,3,8,10,15,6,7,2,3,2,5,5,12,2,5,5,5,5,2,2,5,5,12,9,5,2,2,9,5,5,12,12,5,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,9,12,5,8,8,9,5,5,5,8,19,7,16,15,14,9,9,9,9,7,11,11,11,7,14,10,10,5,5,5,5,5,5,5,5,5,15,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,9,9,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,14,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,15,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,5,5,5,5,5,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,9,9,12,9,9,12,12,12,15,7,11,7,14,11,18,13,8,18,15,18,12,14,12,8,8,8,8,9,9,9,12,7,10,10,8,8,12,12,12,7,12,12,9,7,7,7,7,7,8,15,12,9,10,10,7,10,10,13,11,10,9,22,11,9,8,8,8,8,8,13,18,13,9,15,19,9,7,7,10,7,7,7,11,8,13,17,7,7,10,10,10,7,20,16,7,7,7,7,7,7,11,21,12,12,13,11,14,16,8,8,13,11,7,7,13,7,7,14,15,15,6,6,6,6,6,6,6,6,6,6,13,10,18,6,6,6,6,6,6,6,6,6,11,8,8,12,12,11,11,8,12,9,9,9,13,13,9,9,9,9,9,9,6,10,12,6,6,6,6,17,11,7,7,7,7,14,14,12,6,7,7,6,6,15,10,13,10,6,8,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,13,9,9,15,13,6,12,12,6,19,11,10,7,7,16,8,19,17,9,9,9,9,9,6,6,6,10,8,16,8,6,6,9,6,6,6,6,6,6,6,6,8,8,8,6,7,6,6,6,6,6,6,6,6,6,6,6,14,6,6,6,6,20,6,9,6,14,9,9,9,6,9,8,8,12,9,8,8,8,8,7,8,12,7,8,8,8,6,8,6,6,6,6,6,6,6,9,8,8,6,6,13,9,12,13,12,14,13,12,11,11,6,8,8,8,6,13,12,11,11,12,6,11,12,11,13,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,15,6,6,6,6,6,6,6,13,6,6,6,6,6,6,6,6,6,6,6,6,6,8,8,8,8,6,18,6,12,13,13,13,9,10,15,9,12,6,6,6,6,6,6,6,6,9,15,10,9,10,13,9,19,8,18,17,10,10,8,8,6,6,6,6,6,6,10,14,8,16,16,9,8,15,8,8,10,12,14,7,7,8,8,7,7,7,7,8,13,13,11,9,9,9,12,10,17,8,11,9,7,7,14,8,14,14,7,7,7,7,7,7,14,7,7,7,7,7,10,10,8,14,7,7,7,7,8,8,8,8,8,17,9,7,15,7,8,12,7,9,14,7,7,7,9,13,8,14,7,16,18,13,15,14,12,13,10,15,9,7,7,7,10,13,15,15,9,9,9,9,19,11,7,11,11,13,8,8,8,8,7,12,19,17,9,9,13,7,7,7,9,7,7,7,12,13,15,10,8,8,14,15,12,13,13,8,12,14,7,11,7,14,15,13,12,8,8,8,8,11,13,15,15,8,13,12,8,8,8,13,10,16,14,11,8,8,12,12,9,15,15,12,12,13,8,8,9,12,13,9,8,8,8,8,8,8,8,8,8,8,8,11,12,11,7,14,7,13,13,13,12,18,16,7,12,11,10,10,15,9,9,9,21,7,7,7,11,16,8,8,11,11,7,7,7,7,7,19,7,7,7,7,7,7,7,7,7,12,8,9,12,14,11,9,9,9,22,12,3,3,4,8,8,15,4,2,2,5,5,3,3,3,3,3,3,6,6,4,4,4,12,7,10,2,3,3,3,3,3,3,3,6,7,3,7,5,14,4,4,7,8,10,4,1,3,3,6,2,4,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,4,2,2,5,3,4,2,2,2,2,2,2,11,5,5,5,11,5,5,3,5,5,5,5,11,14,13,9,11,9,12,8,11,11,8,11,16,9,9,7,10,9,12,8,15,6,7,6,6,13,10,8,11,8,6,6,6,12,16,6,11,7,8,9,18,6,6,9,4,4,6,13,6,6,6,6,8,8,9,16,7,7,14,7,8,8,8,7,7,7,7,7,7,15,13,7,10,7,7,10,12,16,15,7,9,9,14,11,11,10,9,10,8,12,7,8,7,7,10,12,7,12,8,7,2,3,3,3,3,3,3,3,3,3,3,5,3,3,5,5,5,10,4,8,7,10,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,7,4,5,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,5,5,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,6,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,9,8,2,2,2,8,12,7,7,5,5,5,5,5,5,5,5,5,5,5,5,8,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,5,7,11,9,8,8,8,7,8,9,7,7,9,7,7,7,10,7,7,10,9,10,6,6,6,6,6,6,15,7,8,9,9,8,6,6,10,9,6,8,13,9,7,6,6,6,6,6,6,12,6,6,7,6,7,6,6,6,10,10,7,6,6,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,14,6,6,7,7,9,6,6,6,6,9,9,8,9,10,9,8,9,12,7,7,7,8,7,10,12,11,9,10,7,7,7,9,10,10,8,12,9,7,7,9,8,8,8,10,7,7,8,9,9,7,7,7,8,2,4,6,3,4,2,3,3,3,3,2,3,3,3,3,3,3,3,3,4,4,4,4,5,5,3,3,3,3,3,3,3,3,5,8,6,4,7,3,3,3,3,3,3,3,12,3,3,3,3,3,3,4,4,2,3,5,3,4,7,3,3,3,3,3,3,4,3,3,3,3,3,3,3,4,3,3,6,4,3,4,2,2,2,5,3,3,3,3,3,5,4,4,4,4,7,6,8,9,2,2,2,2,3,3,3,5,7,2,3,3,8,7,7,2,2,8,5,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,8,8,7,7,6,10,6,9,7,11,4,6,8,8,7,8,4,5,5,5,5,3,3,11,8,9,6,6,8,7,4,4,7,8,7,2,2,3,3,3,3,4,3,3,3,3,3,3,3,3,7,2,2,5,3,3,2,3,3,3,3,3,3,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,12,5,5,3,3,3,5,10,12,6,15,4,6,6,7,14,9,3,3,3,3,3,8,2,2,3,5,5,3,3,3,3,3,3,8,8,8,7,5,8,4,6,11,2,2,6,7,3,3,2,9,8,5,5,3,3,3,5,5,7,7,6,6,10,6,8,6,8,9,7,4,4,4,4,7,6,6,7,7,10,9,8,11,8,3,3,3,3,3,4,4,2,3,3,3,3,3,7,6,2,5,6,7,6,4,8,9,11,2,2,3,3,3,3,3,3,3,2,2,5,3,3,3,3,3,9,9,6,4,8,7,7,5,9,8,6,2,8,7,8,5,5,5,5,5,3,3,3,16,8,7,7,7,8,7,7,7,7,9,6,9,6,10,7,7,7,6,10,8,9,11,11,8,4,4,10,8,8,6,9,6,11,8,8,8,15,7,8,9,5,3,3,3,3,3,5,11,2,2,3,8,9,10,3,2,2,2,2,2,2,3,6,4,2,2,3,3,3,3,3,3,3,3,3,3,4,4,2,3,3,3,3,3,3,3,11,5,3,3,3,3,3,3,3,3,6,7,4,4,2,3,3,3,3,3,3,3,3,12,7,4,12,4,6,5,4,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,2,3,3,3,3,3,3,3,3,4,4,11,10,6,4,6,10,8,3,3,3,3,3,3,3,3,5,4,4,4,2,2,2,2,2,2,2,2,5,3,4,4,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,10,5,5,5,5,5,5,3,3,3,3,3,3,3,3,7,8,8,7,13,12,10,10,8,8,7,7,9,12,11,6,6,8,8,9,7,7,7,10,15,10,4,4,4,4,4,11,8,8,9,7,9,14,14,12,2,2,2,2,2,2,2,3,3,3,3,3,12,5,5,5,11,10,7,9,3,8,7,3,15,13,11,4,4,2,2,2,19,7,5,5,3,3,3,3,3,3,3,5,22,18,6,14,17,4,4,19,16,18,2,3,3,7,2,3,2,3,3,6,4,2,3,3,2,5,3,3,3,3,3,3,3,9,9,2,3,2,2,2,3,3,3,5,7,14,7,7,12,9,13,6,11,6,10,9,7,7,8,12,12,8,8,8,10,7,7,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,5,8,10,7,8,11,8,12,9,4,14,7,7,9,13,2,3,3,3,3,3,3,2,3,3,3,1,2,2,3,3,3,3,3,3,5,2,2,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,8,4,4,4,3,2,3,3,3,3,5,2,2,2,2,5,5,5,5,3,3,3,3,3,3,3,3,3,7,7,7,7,7,8,8,8,8,8,12,9,8,8,9,8,6,17,6,6,6,8,8,6,6,6,6,6,6,6,6,6,6,6,7,4,4,8,8,9,9,9,7,7,7,7,7,7,7,9,9,9,7,8,8,8,10,7,13,10,8,9,3,3,5,13,3,3,3,3,3,7,7,6,6,10,13,11,11,8,8,9,8,9,9,10,10,10,11,10,10,13,13,16,15,11,12,9,9,10,9,11,10,9,9,14,7,8,3,10,7,7,3,2,2,2,5,3,3,3,3,3,3,3,3,3,3,3,3,6,7,2,2,3,3,3,3,3,3,3,3,4,11,6,7,4,6,2,2,3,3,3,1,3,3,3,3,3,3,6,4,4,2,2,2,3,3,3,3,4,4,6,6,6,6,5,4,4,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,9,11,6,10,9,12,7,7,11,14,9,7,12,3,3,7,12,11,12,7,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,9,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,3,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,11,5,5,5,5,5,5,5,5,11,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,5,5,5,5,5,3,3,3,5,5,5,5,5,5,5,5,5,5,5,3,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,5,5,5,5,5,5,5,5,5,5,5,5,5,3,10,3,3,3,11,3,5,9,11,8,12,14,9,7,8,7,7,11,11,7,7,10,9,8,10,9,7,7,7,7,7,7,8,8,7,11,8,8,8,7,7,10,8,7,13,12,7,17,10,8,8,11,7,11,11,14,7,11,7,8,6,9,20,8,7,9,16,7,10,6,11,10,8,9,7,16,11,11,9,8,9,8,8,8,11,8,15,8,8,9,7,8,8,11,10,7,5,7,10,10,15,7,7,7,8,7,8,8,10,11,10,10,10,11,11,7,8,6,8,8,8,10,6,8,6,6,7,8,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,16,6,15,6,7,11,11,7,9,10,11,13,10,6,16,8,10,12,11,6,6,6,6,6,6,6,10,6,10,7,7,7,7,11,7,11,6,6,6,6,6,6,17,7,7,6,6,12,22,6,6,6,6,6,8,6,6,6,6,7,6,6,5,6,6,8,11,6,9,14,11,9,11,7,7,8,6,6,6,8,10,9,6,6,6,6,9,7,6,6,6,6,6,15,6,4,4,4,6,4,17,8,11,6,6,9,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,6,6,6,6,10,6,10,6,6,6,6,12,8,6,6,6,6,6,6,6,6,6,9,6,6,6,6,18,6,6,6,8,9,10,7,8,9,10,11,7,13,6,8,8,6,6,14,7,7,7,7,10,7,14,9,6,6,9,15,9,7,14,6,11,14,13,7,12,8,7,7,7,7,7,12,7,10,9,16,6,8,6,5,17,6,8,10,4,6,4,10,15,17,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,8,4,4,11,7,4,4,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,19,17,6,10,11,6,6,6,6,18,6,6,11,4,4,4,5,6,6,6,9,5,6,4,6,6,4,6,6,6,6,10,6,6,4,6,6,10,6,10,6,6,6,6,11,6,6,10,6,6,8,6,6,6,8,6,11,4,11,9,10,9,11,4,8,4,11,12,7,9,8,6,7,7,8,12,12,11,13,10,11,7,7,7,9,7,11,10,7,7,7,16,11,10,11,17,9,9,8,8,7,7,7,9,7,7,7,14,7,13,9,11,10,14,10,10,12,11,10,7,10,5,14,8,8,8,9,7,8,7,7,9,8,7,8,7,7,7,7,7,7,7,11,8,10,8,7,8,14,11,8,9,9,9,8,24,10,10,12,7,7,15,11,8,8,12,11,8,9,9,7,8,9,10,11,10,11,7,12,7,7,11,9,8,14,13,12,8,11,10,8,8,7,7,14,9,10,8,9,11,7,14,8,8,13,8,8,12,7,10,14,14,11,9,10,9,9,7,7,11,11,13,9,13,5,5,5,7,9,5,11,12,14,8,7,7,11,10,9,7,8,8,7,10,11,11,5,5,7,5,5,5,7,7,15,7,7,8,7,15,12,12,10,7,8,7,11,7,7,7,23,11,8,8,11,10,7,8,11,7,19,7,7,6,9,9,9,11,3,4,7,8,6,6,4,10,8,2,2]),g=new Uint16Array([0,0,0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,12,1,1,1,1,1,17,1,1,1,12,1,12,1,12,13,1,1,1,1,12,1,12,1,1,1,1,1,14,21,1,1,1,1,1,1,1,19,12,1,1,1,1,1,1,1,20,1,1,1,16,18,1,1,15,1,1,1,1,12,1,1,1,1,1,1,1,1,22,1,1,1,1,12,1,1,1,1,1,1,1,1,12,12,12,12,12,12,12,12,12,12,12,12,1,24,25,26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,1,12,12,12,12,1,32,0,0,0,1,1,1,1,35,34,1,1,1,1,1,33,1,1,1,1,37,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,38,0,0,0,0,39,40,0,0,0,0,12,1,1,12,1,1,1,1,43,44,44,44,43,44,43,43,45,44,43,44,43,43,43,43,43,43,45,43,43,43,43,43,43,44,46,46,44,43,43,43,43,43,12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,49,51,49,49,49,51,49,50,49,52,49,50,50,49,49,49,50,52,50,52,49,50,50,12,54,54,53,55,50,52,49,49,47,48,56,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,59,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,1,66,67,12,1,1,65,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,78,0,0,0,0,0,0,0,0,0,0,0,0,0,76,79,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,77,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,12,1,1,1,1,89,1,91,1,1,1,1,1,1,1,1,94,1,1,1,1,1,1,1,1,1,1,1,1,0,1,97,97,1,1,12,1,100,1,1,1,1,1,1,1,98,1,99,1,101,1,1,1,1,1,102,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,110,111,1,1,1,1,1,1,113,113,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,121,122,1,1,1,1,1,1,1,1,1,1,1,1,1,122,1,1,1,1,1,1,1,1,1,1,122,1,1,1,1,1,1,1,1,1,126,123,125,120,1,124,1,1,114,1,1,1,1,117,1,127,1,1,1,1,1,1,119,1,108,1,109,1,12,128,106,1,112,1,1,1,1,1,107,115,1,12,12,12,118,116,1,1,1,1,1,1,0,0,0,0,1,12,12,1,1,1,1,1,12,134,1,1,1,1,1,1,1,1,1,1,1,12,136,1,1,1,1,1,1,1,1,137,138,12,12,135,133,44,44,140,49,49,139,142,141,1,1,0,0,0,0,0,0,0,0,0,0,0,0,145,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,143,0,0,0,0,1,0,144,132,1,0,1,1,12,12,1,1,1,1,1,0,0,0,0,0,0,0,1,148,147,20,1,1,12,12,1,20,12,12,1,1,1,1,1,134,1,1,152,1,1,1,1,153,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,1,1,136,1,1,152,1,1,1,1,153,1,1,134,1,1,1,152,1,1,1,1,153,1,1,134,1,1,1,1,1,1,1,1,134,1,1,1,1,1,1,1,1,1,1,1,160,1,1,1,152,1,1,1,1,1,153,1,1,160,1,1,1,1,1,1,1,1,1,1,134,1,1,1,1,152,1,1,1,1,153,1,1,1,134,1,1,152,1,1,1,1,164,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,1,167,1,1,160,1,1,1,1,1,152,1,1,1,1,1,153,1,1,160,1,1,1,1,1,152,1,1,1,1,1,153,1,154,158,158,12,1,12,166,1,1,1,1,1,158,158,158,154,1,1,1,157,158,161,165,1,1,1,1,157,157,1,1,156,154,154,157,170,156,170,1,1,168,1,156,155,157,1,1,1,1,157,1,159,1,1,1,12,1,162,1,162,1,1,1,162,161,163,169,156,154,1,1,1,1,1,1,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,173,172,173,172,172,172,172,174,174,172,173,172,173,172,172,12,1,12,12,12,12,1,12,12,12,12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,12,1,1,1,1,1,1,12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,196,1,1,1,1,12,202,203,204,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,12,1,1,1,1,1,1,1,1,151,1,1,1,1,1,1,1,1,1,1,1,199,1,1,1,186,1,1,1,1,210,1,1,207,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,12,1,1,1,1,1,12,1,1,1,1,1,1,1,1,177,193,1,1,1,189,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,184,1,1,1,1,1,1,1,194,1,1,1,1,198,1,1,1,1,171,1,1,192,1,1,1,195,1,1,1,12,1,1,1,1,1,1,1,1,1,1,1,1,182,1,12,1,1,12,1,1,1,1,185,1,1,1,191,1,12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,12,1,1,211,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,197,1,1,1,1,1,12,1,1,1,1,1,1,1,1,176,12,1,1,1,179,12,1,1,1,1,1,1,1,201,1,1,1,1,1,1,1,1,1,1,178,1,1,1,1,1,1,1,206,1,1,1,183,1,1,1,190,1,12,1,187,12,1,1,1,1,1,1,1,1,1,1,194,1,1,1,1,181,1,1,1,1,1,1,1,1,1,1,1,1,1,1,175,1,1,1,1,1,1,1,1,1,1,188,1,1,1,1,1,1,1,1,1,1,1,208,1,1,1,1,1,1,1,1,1,1,12,1,209,1,1,12,1,1,1,1,180,1,1,1,188,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,12,1,1,1,200,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,12,12,1,1,1,1,1,1,1,1,1,205,1,1,12,1,1,1,12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,221,0,0,0,0,0,222,0,0,0,0,0,0,1,12,1,1,1,226,1,1,1,0,227,224,225,1,1,1,1,1,1,232,1,234,1,1,1,1,1,1,1,1,1,1,1,230,1,1,1,1,1,236,1,1,12,1,12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,235,1,1,1,12,1,1,1,1,231,1,1,1,229,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,233,1,1,1,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,1,12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,242,13,1,1,1,12,12,239,240,1,1,1,1,241,1,1,12,1,1,1,1,1,1,1,243,1,1,12,16,1,1,1,1,1,1,244,1,1,1,12,12,1,1,1,1,1,1,244,12,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,253,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,257,257,1,0,0,0,0,0,1,12,0,0,0,0,0,0,0,0,172,262,263,1,12,1,1,1,1,12,265,1,1,264,1,1,267,1,1,1,1,1,1,0,1,1,1,271,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,12,1,0,1,0,0,0,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,12,0,282,0,0,283,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,12,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,59,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,1,1,0,307,0,0,0,0,0,0,0,0,0,309,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,12,1,1,1,1,1,1,1,1,1,12,1,1,1,1,1,325,325,326,325,0,188,1,1,13,321,1,319,0,0,0,0,0,0,0,322,1,1,327,1,207,1,1,1,1,320,1,317,1,323,1,315,1,324,1,316,1,1,1,1,1,1,1,12,1,1,1,1,12,318,318,1,1,1,186,1,1,12,1,1,1,1,1,1,1,1,1,1,12,1,1,1,1,12,1,1,1,1,314,1,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,330,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,267,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,370,370,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,362,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,0,1,338,349,1,1,337,372,1,343,1,1,335,367,1,1,353,334,339,1,1,1,346,377,355,1,1,1,1,1,1,356,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,0,365,369,0,0,79,1,1,0,363,340,376,341,344,351,1,366,0,1,0,79,360,358,1,0,0,1,1,1,0,0,0,0,379,1,1,350,1,79,1,0,1,1,1,382,1,0,0,79,357,0,1,336,1,1,1,0,1,1,359,1,0,1,1,1,0,1,384,347,1,1,0,1,0,0,375,0,1,1,1,79,368,1,1,364,361,1,1,1,1,1,1,1,1,1,1,1,342,1,1,1,1,1,1,1,1,1,1,1,374,0,79,1,1,1,1,0,1,1,1,1,1,1,0,0,1,1,378,1,1,1,0,0,381,0,0,0,1,354,1,0,79,380,1,0,0,0,0,383,1,1,0,0,1,0,1,0,352,0,348,0,1,1,1,0,1,1,0,371,345,373,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,12,1,1,1,12,399,399,1,1,12,12,1,399,1,1,12,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,411,1,1,0,1,1,1,1,207,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,429,429,1,1,0,0,315,1,1,1,1,1,1,1,1,1,1,1,1,12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,442,1,441,1,1,1,1,1,1,1,1,1,446,1,12,12,1,1,1,1,1,12,1,1,1,1,454,1,1,1,456,1,1,1,1,1,1,1,1,1,1,453,1,448,1,1,1,1,435,1,1,1,1,1,1,1,1,449,12,1,1,1,1,455,1,1,1,450,444,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,315,1,432,1,1,12,452,1,1,315,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,437,1,1,1,1,1,1,1,1,1,1,1,455,1,1,1,1,315,1,451,1,1,1,445,439,1,1,1,1,1,440,1,457,443,1,1,1,1,1,438,1,1,1,1,1,1,1,1,1,433,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,447,1,1,1,1,1,1,1,1,1,1,1,1,436,1,1,1,1,1,434,1,221,458,1,1,1,1,1,12,1,1,1,1,12,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,1,0,0,1,0,1,0,1,1,0,0,0,464,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,12,1,67,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,468,0,468,468,468,468,468,468,468,0,468,468,468,468,468,1,468,468,468,0,468,468,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,473,472,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,477,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,470,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,471,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,479,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,468,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,476,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,469,0,0,480,475,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,474,0,0,0,0,0,0,0,0,0,0,0,0,0,468,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,469,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,468,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,478,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,12,1,1,1,1,1,1,1,1,1,1,1,1,490,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,201,201,1,494,1,1,1,493,1,1,1,1,489,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,491,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,495,1,1,492,1,1,1,1,1,1,1,1,370,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,496,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,507,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,1,0,0,0,1,0,0,0,1,0,0,1,0,0,1,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,1,0,1,0,0,12,1,509,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,12,12,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,1,0,0,0,0,0,0,0,1,0,0,1,0,1,1,1,1,0,0,0,1,0,0,0,1,59,1,1,12,12,12,12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,528,1,1,1,1,1,1,1,529,1,1,1,1,1,1,1,527,1,1,12,1,1,531,240,1,1,12,12,1,1,12,1,12,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,535,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,1,1,1,541,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,132,1,12,546,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,107,1,1,12,1,1,1,12,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,551,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,144,1,1,1,229,1,1,12,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,1,576,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,221,1,326,1,1,1,1,1,1,1,1,1,0,0,581,1,1,1,1,0,583,0,79,0,582,0,1,1,1,0,1,1,1,1,1,1,12,0,0,0,1,0,1,0,0,0,0,0,0,590,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,585,585,0,589,587,585,585,585,585,585,591,585,585,595,585,585,585,585,585,585,585,585,585,585,592,589,585,585,589,585,585,585,585,585,585,585,585,585,585,585,585,585,587,585,585,585,585,585,593,585,585,585,585,585,585,0,0,0,1,594,1,1,1,1,588,1,1,1,1,1,586,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,12,599,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,1,12,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,12,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,12,1,1,12,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,64,279,305,410,537,0,4,68,237,255,281,306,332,386,412,0,501,521,538,601,9,0,60,88,396,408,428,579,0,499,520,534,616,0,30,6,0,463,502,606,564,70,0,7,284,256,387,465,415,540,79,602,0,580,308,417,467,9,105,287,508,6,30,0,310,79,389,79,485,10,6,131,249,274,0,617,511,0,567,0,63,6,6,252,95,2,431,397,409,600,0,6,0,6,285,103,6,565,503,542,0,466,388,272,286,8,71,104,603,545,390,311,299,418,146,74,289,549,512,605,568,333,328,481,6,75,149,11,0,250,524,550,569,516,554,574,615,36,6,261,294,331,303,219,30,530,557,219,41,217,266,295,304,405,422,483,273,0,73,566,0,402,416,298,79,248,79,0,584,548,506,291,420,79,391,385,0,0,0,9,559,575,218,0,423,406,533,518,577,619,85,219,42,296,394,424,573,0,513,292,275,79,216,80,28,388,30,6,392,329,302,608,596,526,553,515,0,259,81,30,404,421,0,30,425,0,220,597,519,9,407,426,219,249,86,223,598,578,561,484,427,395,251,228,87,58,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,624,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,413,0,0,0,0,0,0,0,0,82,0,129,0,0,84,552,0,0,0,0,0,0,0,27,0,555,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,413,0,0,0,0,505,0,258,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,293,0,0,0,0,0,0,0,621,0,0,0,0,0,620,0,0,0,0,0,0,0,0,0,0,0,0,0,0,393,0,0,0,486,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,69,0,0,0,0,0,0,497,0,0,0,0,0,0,403,0,0,0,0,0,0,0,0,0,0,0,0,0,212,0,0,0,0,0,0,0,0,0,0,0,517,0,0,0,0,0,0,0,0,0,0,0,0,498,0,0,0,0,0,0,0,0,0,0,0,0,0,0,270,280,0,0,0,0,0,532,276,0,0,0,0,0,0,0,0,0,0,0,0,0,514,0,0,0,0,0,0,0,0,0,0,0,459,0,0,0,313,0,0,0,0,0,0,254,0,0,0,0,0,0,23,0,0,0,0,572,0,0,0,0,604,523,0,0,0,0,245,0,0,0,0,0,0,461,0,0,482,0,0,0,0,0,61,0,0,0,268,57,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,247,0,0,0,0,0,278,614,0,72,0,0,0,0,0,0,0,0,0,623,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,150,0,277,0,0,0,0,0,0,571,0,0,0,0,0,0,525,0,0,0,0,0,0,0,0,0,570,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,62,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,214,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,84,0,504,0,0,0,0,0,558,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,84,83,0,0,0,0,0,0,0,0,0,0,0,0,488,0,487,0,0,0,0,0,0,0,0,0,0,260,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,460,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,539,0,0,0,0,0,0,0,0,297,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,69,238,0,0,0,0,0,0,0,0,0,0,84,0,610,0,0,556,0,0,0,0,0,0,0,0,0,246,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,613,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,522,0,0,0,84,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,500,0,618,0,0,430,0,0,0,0,0,0,0,0,0,0,0,0,401,0,0,0,547,0,93,0,0,0,0,0,0,0,0,0,0,31,0,0,0,0,0,0,29,92,0,0,0,0,0,0,0,0,0,0,0,0,290,0,0,0,215,0,0,0,0,0,0,562,0,0,0,0,130,0,0,0,0,0,563,0,0,0,0,0,0,0,413,419,0,0,0,0,0,0,0,0,0,0,0,0,0,0,398,0,312,0,0,0,0,0,5,0,0,0,0,0,0,0,300,0,0,0,0,0,0,0,0,0,0,0,0,0,536,0,0,0,414,0,0,400,0,0,0,0,0,0,607,0,0,0,543,0,0,90,0,544,0,0,0,0,0,0,0,0,0,0,510,462,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,269,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,413,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,612,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,611,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,622,0,0,0,0,0,560,0,0,0,0,0,0,0,0,0,0,301,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,609,0,0,213,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,627,627,627,627,627,627,627,626,628]),h="orgmilcomschnetedugovdrrformsfeedbackofficialaccoorgmilschnetgovmagazinemediaunioncargopilotgroupcaarespressworksaerodromeworkinggroupair-traffic-controlaircraftaccident-preventioneducatormarketplaceambulanceinsurancecateringairportrepbodyenginesoftwaremodellingair-surveillanceconsultingchartertrainermaintenanceservicesdesignflightskydivingfreightassociationstudentgroundhandlingdgcafuelclubtaxicrewshowballooningexpresstraderbrokerauthoragentsairtrafficjournalistsafetyconsultantmicrolightaccident-investigationparachutingequipmentproductionfederationrecreationscientistnavigationengineertradingglidingleasingresearchpassenger-associationentertainmentparaglidinghangglidingaerobaticrotorcraftemergencycertificationgovernmentaeroclubexchangelogisticschampionshiphomebuiltcouncilconferencecontrolairlinecivilaviationjournalorgcomnetedugovcoorgcomnomnetobjofforgcomnetuwukiloappsframerorgmilcomnetedugovcoradioorgcomnetcommuneedogpbcoitgvorgedugov*spreviewfrontendrelayononstagingupid*mtls*privatelinktypedreamdeveloperbravemochawindsurfaivenmirenupsunwnextbegetngrokclerkwale2bwebcsbrunputerflutterflowspawnbaseshiptodaymagicpatternsnetlifyondigitaloceanrailwayhostedclaudehasurabotdashvercelgithubluyanigadgetreplitcloudflaretelebitedgecomputeevervaultexponyatnoopencrpplxzeaburwasmerframerzeropsrocketpreviewconvexmedusajsspritesonherculeseasypanelstreamlitglideossnowflakemesserliloginlinehackclubcodepennorthflankbase44corespeedleapcellngrok-freeclerkstagelovableon-fleek*us-west-3ap-south-2us-central-2us-central-1eu-central-1ap-south-1us-west-2us-east-2eu-north-1ap-north-1us-west-1us-east-1*rcloudintsegorgmilcomgobbetnetintedugovturmusicasenasamutualcoopip6uriurnin-addre164homeirisgovdixdaemoncloudnssthwien*inexexkunden4accogvormymyspreadshop4lima2ixortsinfofuturecmsfuturehosting12hpprivfuturemailinglima-cityfunkfeuer123webseitednshomemelmyspreadshopcloudletswasantqldvicactnswtascatholicwasaqldvictasidwasantozqldorgcomvicasnactnetedugovnswtasconfcomairflowlambda-urltransfer-webappairflowtransfer-webapptransfer-webapptransfer-webapp-fipstransfer-webappeu-west-3ap-south-2eu-south-2eu-central-2ap-southeast-3ap-southeast-4ap-northeast-3eu-central-1mx-central-1me-central-1ca-central-1il-central-1ap-northeast-1ap-southeast-1me-south-1af-south-1eu-south-1ap-south-1ap-southeast-7us-west-2eu-west-2us-east-2eu-north-1ap-southeast-2ap-northeast-2ap-southeast-5us-gov-west-1us-gov-east-1ca-west-1us-west-1eu-west-1us-east-1ap-east-1sa-east-1privatenotebookstudiolabelingnotebookstudionotebooknotebook-fipslabelingnotebookstudionotebook-fipsnotebookstudio-fipsnotebook-fipsnotebookstudionotebook-fipsnotebookstudioeu-west-3ap-south-2eu-south-2eu-central-2ap-southeast-3ap-southeast-4ap-northeast-3eu-central-1me-central-1ca-central-1il-central-1ap-northeast-1ap-southeast-1me-south-1af-south-1eu-south-1ap-south-1us-west-2eu-west-2us-east-2eu-north-1ap-southeast-2ap-northeast-2experimentsus-gov-west-1us-gov-east-1ca-west-1us-west-1eu-west-1us-east-1ap-east-1sa-east-1onrepostsagemakercopporgmilcompronetintedugovbiznameinfoshoprsorgmilcomnetedugovbrendlyresolvenzauscotvstoreorgcomnetedugovbizinfoidacaicoittvorgmilcomschnetedugovinfocloudezproxysiteacmymyspreadshopkuleuvenwebhostingtransurl123websitecloudnsinterhostsolutionsddns5476103298edgfacbmlonihkjutwvqpsryxzbarsycoororgcomedumyftpno-iporxcloud-ipfor-somemmafanfor-morewebhopselfipjozidyndnscloudnsdscloudfor-thefor-betteractivetrailcoeconorestooteorgcomeconeteduassurmoneyafricaarchitectesrestaurantloisirstourismavocatsinfoagrounivcoorgcomnetedugoviatvdeportesaludtksatorgmilcomwebgobnetinteducienciaboliviarevistacooperativaempresanombreindustriamusicapatriamedicinademocraciapoliticapuebloindigenaplurinacionalarteblogwikiinfoagrotransportenoticiasprofesionalacademiaeconomiaecologiamovimientotecnologianaturalsimplesitecepesebamapadfmgalampbacscpirngorotomtrjspaprrprrsesmscepesebamapadfmgalampbacscpirngorotomtrjspaprrprrsesms*biaamfmtcmptvfeirasampajampanatalbelemananiradiog12medindfndbmdtrdthepoaggfjdfdefinfenflegsegongengcngorgzlgslglogppgmillelqslcimcomnomadmjabimbbibbsbabcrectecsjcetcpscpvhudieticriapipsiecnbiorioecogeoteoodoproatoartfstmatvetdetbetnetcntnotfotgrueduajuespappreptmpemparqsrvadvdevgovntrturagrjorfarjusmusdesvixxyzcozfozslzbhzmaringasantamariacampinagrandegoianiasorocabafloripasaobernardocuritibaboavistarecifeaparecidasaogoncasalvadorcuiabamorenamacapalondrinacontagemsocialfortalmaceioleilaoosascoriobranconiteroi9guacutcheblogflogvlogwikitaxicoopmanauspalmascaxiasjoinvillebaruericampinassantoandreribeiraoriopretoweorgcomnetedugovv0windsurfshiptodaycloudsitecoaccoorgnetgovofmilcomgovmediatechzacoorgcomnetedugsjgovmydnspenfnlabnbmbgcbcqconcontnuyksknsmyspreadshopno-ipawdevboxbarsyonidatemfuinabusavinstanceseceuguukussryzespawncsxcloud-ipmyphotosfantasyleaguetwmailcleverappsscrappingccwucloudnsftpaccessgame-serverccgovobjectsrmalpgcust*svcalp1aeappenginermalpgmyspreadshop4lima2ixsquare7cloudscale123websitefirenet12hpflowgotdnslinkyard-cloudcloudnslima-citydnskingobjectstorageedaccogoorusorgcomnetinteduaéroportxn--aroport-byaassogouvcomilgobgovcloudnses-1eu-west-1us-east-1euvipit1eurarubait1s3lbwebsites3websiteru-spbru-mskelasticcsrunstnukukcaukusnl-ams-1fr-par-1fr-par-2functionsnodess3ddlwhmrdbfnck8sifrs3-websitecockpitscblmgdbdtwhkafkpubprivs3ddlwhmrdbk8sifrs3-websitecockpitscblmgdbdtwhkafks3ddlrdbk8sifrs3-websitecockpitscblmgdbdtwhkafkk8sscalebookpl-wawfr-parnl-amsbaremetalsmartlabelinginstancesdechk2kuleuvenlaravelvoorloperurownoxazapscwhstgrvaporonline-serverobservablehqelementorantagonistreclaimjoteluluencowaydiademjelasticmatlabmagentositetrendhostingaxarnetperspectajenv-arubajelejoteravendbemergenttrafficplexconvexkeliwebserveboltbegetcdnstaticson-rancherprimetelonstackitunison-servicesdnshomelinkyardbarsyjelecloudnscocomnetgovmycn-northwest-1cn-north-1s3s3-accesspoints3-websites3s3-accesspointrdsdualstacks3-deprecatedemrappui-prods3-websiteemrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apis3s3-accesspoints3s3-accesspointrdsdualstackemrappui-prods3-websiteemrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apicn-northwest-1cn-north-1cn-northwest-1ebcomputeelbcn-north-1airflowcn-northwest-1cn-north-1oncn-northwest-1cn-north-1amazonawssagemakeramazonwebservicesdirectasgdsdhehahljlnmhbacscahqhshhihnlnynsnmofjbjzjxjtjhkcqtwgsjssxnxjxgxxzgz網絡网络公司orgmilcomnetedugovxn--55qx5dcanva-appsxn--io0a7iquickconnectcanvasitekhsjxn--od0algcanva-codemyqnapcloudsrvrlessclustersrealtimestorageleadpagescarrdcrdorgmilcomnomnetedugovhidnssupabaserdpareplmypiumsoxmitotaplpagesfirewalledreplitowodevwebview-assetsvfswebview-assetss3s3-accesspointdualstackemrappui-prods3-websiteaws-cloud9emrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apicloud9eu-west-3ap-south-2eu-south-2eu-central-2ap-southeast-3ap-southeast-4ap-northeast-3eu-central-1me-central-1ca-central-1il-central-1ap-northeast-1ap-southeast-1me-south-1af-south-1eu-south-1ap-south-1ap-southeast-7us-west-2eu-west-2us-east-2eu-north-1ap-southeast-2ap-northeast-2ap-southeast-5ca-west-1us-west-1eu-west-1us-east-1ap-east-1sa-east-1s3s3-accesspointdualstackemrappui-prods3-websiteaws-cloud9emrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apicloud9s3s3-accesspointdualstackanalytics-gatewayemrappui-prods3-websiteaws-cloud9emrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apicloud9s3s3-accesspointdualstackemrappui-prods3-websiteemrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apis3s3-accesspointdualstacks3-deprecateds3-websites3-object-lambdaexecute-apis3s3-accesspoints3-websites3-accesspoint-fipss3-fipss3s3-accesspointdualstackemrappui-prods3-websites3-accesspoint-fipsaws-cloud9s3-fipsemrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apicloud9s3s3-accesspointdualstackemrappui-prods3-websites3-accesspoint-fipss3-fipsemrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apis3s3-accesspointdualstacks3-deprecatedanalytics-gatewayemrappui-prods3-websiteaws-cloud9emrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apicloud9vfss3s3-accesspointdualstackemrappui-prods3-websiteaws-cloud9emrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apicloud9eu-west-3ap-south-2eu-central-2ap-southeast-3ap-southeast-4ap-northeast-3eu-central-1mx-central-1me-central-1ca-central-1il-central-1ap-northeast-1us-northeast-1ap-southeast-1me-south-1af-south-1ap-south-1ap-southeast-7us-west-2eu-west-2ap-east-2us-east-2ap-southeast-2ap-northeast-2ap-southeast-5us-gov-west-1us-gov-east-1ap-southeast-6ca-west-1us-west-1eu-west-1us-east-1ap-east-1sa-east-1mrapaccesspoints3s3-accesspointdualstacks3-deprecatedanalytics-gatewayemrappui-prods3-websites3-accesspoint-fipsaws-cloud9s3-fipsemrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apicloud9s3s3-accesspointdualstacks3-deprecatedanalytics-gatewayemrappui-prods3-websites3-accesspoint-fipsaws-cloud9s3-fipsemrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apicloud9s3eu-west-3ap-south-2eu-south-2computes3-ap-northeast-2elbrdss3-ap-east-1s3-sa-east-1s3-us-gov-west-1s3-eu-central-1s3-ca-central-1eu-central-2ap-southeast-3ap-southeast-4ap-northeast-3s3-website-us-west-2s3-website-eu-west-1s3-external-1eu-central-1me-central-1ca-central-1il-central-1s3-us-west-1s3-eu-west-1s3-website-sa-east-1s3-website-ap-southeast-2ap-northeast-1ap-southeast-1s3-us-west-2s3-eu-west-2me-south-1af-south-1eu-south-1ap-south-1us-west-2eu-west-2us-east-2s3-website-ap-southeast-1s3-1s3-globals3-ap-northeast-3eu-north-1airflowap-southeast-2s3-us-gov-east-1s3-fips-us-gov-east-1s3-me-south-1s3-ap-south-1ap-northeast-2s3-website-us-west-1ap-southeast-5s3-eu-north-1s3-ap-southeast-1s3-website-us-gov-west-1compute-1s3-eu-west-3us-gov-west-1s3-website-ap-northeast-1us-gov-east-1s3-fips-us-gov-west-1s3-website-us-east-1s3-ap-southeast-2ca-west-1us-west-1eu-west-1us-east-1ap-east-1sa-east-1s3-us-east-2s3-ap-northeast-1authauthauth-fipsauth-fipseu-west-3ap-south-2eu-south-2eu-central-2ap-southeast-3ap-southeast-4ap-northeast-3eu-central-1mx-central-1me-central-1ca-central-1il-central-1ap-northeast-1ap-southeast-1me-south-1af-south-1eu-south-1ap-south-1ap-southeast-7us-west-2eu-west-2us-east-2eu-north-1ap-southeast-2ap-northeast-2ap-southeast-5us-gov-west-1us-gov-east-1ca-west-1us-west-1eu-west-1us-east-1ap-east-1sa-east-1rframeservicesbuilderstg-builderdev-builder*ociocpocsazuregcpawsdemoinstanceeu-west-3eu-south-2ap-southeast-3ap-northeast-3eu-central-1me-central-1ca-central-1il-central-1ap-northeast-1ap-southeast-1me-south-1af-south-1eu-south-1ap-south-1ap-southeast-7us-west-2eu-west-2us-east-2eu-north-1ap-southeast-2ap-northeast-2ap-southeast-5us-gov-west-1us-gov-east-1us-west-1eu-west-1us-east-1ap-east-1sa-east-1previeweu-4us-4us-1eu-1us-2eu-2us-3eu-3appscomputepaasrag-cloudrag-cloud-chjcloudjcloud-ver-jpcdemonodebalancermembersipeuxvsoncillaocelotonzayalilynxsphinxfentigercustomercaracalo365cloudstaticxendevapp001testcode-builder-stgplatformmediasiteprojedrydpagesjsx0desazacncoitrueu4uhkukgrbrushatenadiarymyspreadshopfrom-flfrom-wvwebspace-hosttheworkpchatenablogcursorusercontentservesarcasmapplinzisakuratanwixsiteappchizigiizeis-into-carsdnsiskinkyadobeaemcloudis-a-therapistpgfogmyvncdojinis-an-actress1kappfldrvkozowqa2jpnmexprgmrfirewall-gatewaydynnscafjsfbsbxooguyfrom-gawoltlab-demois-a-anarchistwiardwebteaches-yogadattowebtb-hostinglive-websiteservegamegotpantheonfrom-nhsubsc-payfrom-ohvipsinaappfrom-cadyndns-officehomelinuxfrom-mahercules-appservebbsstreakusercontentfrom-okfrom-wyfastly-terrariumis-a-llamaqualyhqportalserveexchangeon-vaporvivenushopciscofreakgrayjayleaguesmetaaiusercontentfrom-iais-a-libertariansaves-the-whalestaveusercontentyolasiteoperaunitepoint2thisis-a-catererclaudeusercontentlinodeusercontentfrom-vagithubusercontentsells-for-lesshosteurcanva-appsplaystation-cloudddnsfreefrom-pafrom-prfrom-waddnskingoutsystemscloudhotelwithflightmydattois-a-nascarfanmydbserverminiserverdamnserverservehumouris-a-playerfrom-nvfrom-nmemergentagentgentappsamplifyappfrom-kyis-an-accountantnfshostserveircfrom-akpythonanywherestackhero-networkpostman-echolikescandydyndns-mailobservableusercontentserveftpfreeboxosfrom-utcdn77-storageamazonawsneat-urldyndns-serverlinodeis-a-teacherfrom-vtgleezemythic-beastsus1-pleniteu1-plenitla1-plenitpaywhirlservecounterstrikejdevcloudhealth-carereformis-into-animegoogleapisis-a-painterafricaisa-hockeynutatmetais-an-actora2hostedis-a-democratdatadetectest-le-patrondigitaloceanspacesis-a-designeris-a-hunterlinodeobjectstemp-dnsissmarterthanyoufrom-arsimplesiteevennodetownnews-stagingis-a-liberalgooglecodejelasticservemp3qualyhqpartnerdyndns-free1cooldnsest-a-la-masiondrayddnsdynuddnsfrom-orfrom-miis-a-bloggerfrom-himydobisscanvacodeis-an-engineerest-a-la-maisonupsunappdevinappswafflecellmyasustorwpenginepoweredfrom-ctservep2psame-appmyshopblocksthingdustdatalikes-piediscordsezis-with-thebandlpusercontentis-leetshopitsite3utilitiesis-a-personaltrainersinaappladeskis-a-cheflogoipselfipbase44-sandboxnospamproxyalibabacloudcsmesswithdnsauthgearappsiamallamawithgooglelutrausercontentmochausercontentframercanvasmytabitdyndns-homew-credentialless-staticblitzcpserverdiscordsaysis-a-nurseappspotatlassian-isolated-3premotewdfrom-mtwixstudiocode0emm180rmyactivedirectoryawsappsmytuleapdnsabrpolyspaceqbuserrenderbuiltwithdarkboutirgotdnsabrdnsdopaascanva-hosted-embedawsglobalacceleratorhomesecuritypcmyiphostditchyouripclever-clouddyndns-ipon-aptibleis-a-musicianhosted-by-filessecuritytacticsappspaceusercontenthomeunixstrapiappsame-previewcf-ipfsmycloudnaselasticbeanstalkis-certifieddontexistkasserverik-serverdrive-platformatlassian-3pfirebaseappherokuappawsapprunnerbarsycenteris-a-cubicle-slaveservehttpmyshopifyis-a-guruquicksytessiiitesorsitesmagicpatternsappis-a-cpameteorappfrom-wiis-a-rockstarbumbleshrimpdattolocaldatabricksappsreadthedocs-hostedfrom-rifamilydsdyndns-picsplesknsbplaceddnsaliasdynaliasdyndns-remotedoomdnsip-ddnsblogdnsis-a-doctorroutingthecloudamazoncognitobarsyonlinedsmynasddnsgurucloudflare-ipfsdeus-canvasfrom-idsmushcdnpagespeedmobilizerdyndns-at-homeunusualpersonhosted-by-previderis-a-republicandyn-o-saurstreamlitappworkisboringonthewificprapidqualifioappis-uberleetis-slickgetmyipwpdevcloudtypeformdyndns-at-workgentlentapismynascloudw-corp-staticblitzfrom-ingeekgalaxyservebeerfrom-mdonrenderspace-to-rentaivencloudappspacehostedwafaicloudcodespotblogspotatlassian-3p-us-gov-modfrom-ndfrom-msis-a-techieis-a-studentcustomer-ociis-a-photographerdurumisfrom-ksmassivegriddyndns-wikiis-an-entertaineris-a-hard-workermysecuritycamerafrom-mnrackmazedyndns-blogis-a-bulls-fanwritesthisblogfreemyipsimple-urlfrom-sdreservdauthgear-stagingest-mon-blogueuris-into-gamesrice-labsxtooldevicesakurawebis-an-anarchistoraclecloudappsdyndns-worksells-for-urhcloudfrom-dcfastvps-serverwpmucdnis-a-geekscrysecfrom-txis-into-cartoonsmodelscapetrycloudflarelocaltonetstreak-linkbalena-devicesfrom-njforgeblocksfreebox-oswebadorsitefrom-ncdoesntexisthobby-sitestreaklinkshomesecuritymacownprovidertuleap-partnersdattorelaywphostedmailservequakeis-a-socialistservehalflifepivohostingdynuhostingquipelementsw-staticblitzdyndns-webfrom-deproject-studyaliases121is-not-certifiedhercules-devis-a-financialadvisorservepicsis-a-greenloseyouripfrom-ilwithyoutubemwcloudnonprodwiredbladehostingdnsdojofrom-tnpixolinomyqnapcloudis-an-artisthostedpiis-a-landscaperauiusercontentoaiusercontenton-forgeis-a-conservativedreamhostersnet-freaksapps-1and1is-goneencoreapifastly-edgefrom-nesalesforcefrom-scdeployagentoraclegovcloudappsfrom-alis-a-lawyercechirevultrobjectsstufftoreadisa-geekddnsgeeklovableprojecttry-snowplowfrom-moblogsyteis-a-bookkeepernogmyforumravendbmyboxdeelementoredsaacficogoorinforgcomgobnatneteduidstoreorgcomnetintedudevnomepublorgcomneteduathgovtestscalculatorspaynowinfoquizzesresearchedcloudnsfunnelsassessmentsjscaleforcetmacltdorgmilcompronetgovbizpresseklogesrsccloudcustomfltusrcloude4corealmgovmunicontentproxy9metacentrumdyndyndyndnsdynpagespages-researchitionoccustomercomymyspreadshopipv64diskussionsbereich4limacomrub2ixfirewall-gatewayddnssspdnsbarsykeymachinesquare7myhome-serverspeedpartnercommunity-proschuldockxenonconnectgünstigliefernbwcloud-os-instancedyndnssecmy-routerxn--gnstigliefern-wobin-butterl-o-g-i-nisteingeekin-dslin-berlinin-brbfuettertdasnetzleitungsenin-vpnlcube-serverdyn-ip24logoipdyn-berlinruhr-uni-bochum12hpgoipsrvdnsfruskygit-repossvn-reposinternet-dnsgünstigbestellenhome-webserverxn--gnstigbestellen-zvbbplacedheimdnscosidnswebspaceconfiglima-citydyndns1istmeinvirtualuserschulplattformmy-gatewayddnsseclebtimnetztest-iservmein-iservvirtual-userhome64iservschuletaifun-dnstraeumtgeradeschulserverdynamisches-dns123webseitednshomehs-heilbronndnsupdaterbssgraphicdwadpdwdaepeweaawapaafpfwfabwbpbacwcpcciwebuserapiobjectsidsiskospockkimodorikerbonesteamsparisjanewaypicardglobaltarpitreedpikekiraworfsulukirkarchertuckerhackercanarywesleystagingprereleaset3r2lpbravepanelngrokiservstglclcrmerpflypagesbarsyvivenushoplocalcertlocalplayerbearbloggatewaydeno-stagingis-not-ais-a-goodbotdashvercelmocha-sandboxplatter-appreplitgithubpreviewworkersinbrowserevervaultis-ahrsndenoxmitmodxmyaddrstorageapipayloadgrebedocruncontainersstgstagelclstageloginlineis-a-fullstackcodepenleapcellngrok-freeis-coolstoragewebharemediatechlibp2pdiscourseimaginecomyspreadshopstoreregbiz123hjemmesidefirmcoorgcomnetedugovsldorgmilcomwebgobartnetedugovtmorgpolcomsocartnetedugovassoagrondiscoodontk12medcuegyecpaabgengorgmilgalsaltulcomadmesmgobpubdocmonfindgnriouioproartlatvetnetfotedulojgovntrturibrbarxxxofficialbasechefprofmktgpsictechinfoarqtcontdentrrpppsiqgit-pagesritmedfieorgcomlibprieduaipgovriikmeactvsportorgmilcomscieunnetedugovnameinfopintouchtawktotawkmyspreadshoporgcomnomgobedu123miwebcomputeorgcomnetedugovbiznameinfocognito-idpeusc-de-east-1onjelasticnxaspdnsbarsydirectwpdeuxfleurstransurldogadoprvwcloudnsamazonwebservicesdnshomeuserpartycokoobinmkmfidymyspreadshopalandkapsiikixn--hkkinen-5wacloudplatformhäkkinen123kotisivuidacorgmilcompronetedugovbiznameinforadioorgcomneteduuserexperts-comptablestmmyspreadshopgretaprdcomnomynhccifbxoshuissier-justicenotairesaeroportfreeboxoson-webavocatassoportgouvkdnschirurgiens-dentistes-en-franceavouesfbx-os123sitewebveterinairechirurgiens-dentistespharmacienchambagrimedecinfreebox-osdediboxgoupilemszicpyicpvicppleysheezypagesedugovcnpyorgcomcybllcpvtnetedugovtnxonlineschooldaemond6atcopanelorgnetplybotdashstackitkaasorgmilcomnetedugovbizmodltdorgcomedugovcoorgcomneteduappwriteacorgcomnetedugovcloudtranslateusercontentorgcomnetedumobiassoorgcomnetedugovbarsysimplesitediscourseindorgmilcomgobneteduorgcomwebnetedugovguaminfonxhra教育敎育網絡网絡组織組織网络網络组织組织公司政府個人个人箇人ltdorgcomincneteduidvgovxn--uc0ay4axn--55qx5dxn--mk0axixn--io0a7ixn--uc0atvxn--zf0avxxn--lcvr32dxn--od0algxn--wcvs22dxn--gmqw5axn--od0aq3bxn--mxtq1mxn--ciqpnxn--tn0agxn--gmq050iorgmilcomgobneteduiservwp2tempurlmircloudfreesitewpmudevmyfastgadgetcloudaccessjelehalfboltfastvpsemergenteasypanelopencraftizcombrendlynamefromrtpersoadultmedorgpolrelcomproartnetedufirminfoassoshopcoopgouvtmcomediahotelforumvideosportorgsexagrargameslakaseroticaerotikatozsdereklamcasino2000filmsuliinfoboltshopprivnewsszexcityutazasjogaszkonyveloingatlaneacaicogoormyᬩᬮᬶmilwebschnetkopbizzonedesaponpesxn--9tfkymyspreadshopgovmytabittabitorderravpageaccok12idforgnetgovmuniltdplcaccotttvorgcomnetmeca6g5gpgamubacaicniocoukuptverdruscsdelhiindorgmilcomwebnicfingenpronetintedugovresbizbiharbarsyinternetbusinessschooltravelsupabasealumnigujaratfirminfoaeropostbankcoopindevscloudnsno-ipbarsybarrell-of-knowledgebarrel-of-knowledgensupdategroks-thisdnsupdatefor-ourknowsitalldvrcammittwalddynamic-dnsv-infowebhopselfipdyndnshere-for-moreilovecollegemayfirstforumzcloudnsmittwaldservertypo3servergroks-theeusekd1cdndyndnsidrawsainaueuapjpusstagemocksysdevicesclientcustreservdcustdevdisrecprodtestingcobeebyteutwenteboxfusebravepstmndedynngrokorgmilcomnomnetedugovqcxqzzbarsythingdustmo-siemensrb-hostingfh-muenstergitbookbluebitecloudbeesusercontentnodeartkiloappsforgerockdarklangresinstagingapigeebubbleb-datascryptedhypernodedappnodepantheonsitegitlabgithubkeeneticvirtualservercleverappshostyhostingon-rioedugitticketstelebitwixstudioon-k3sicp0icp12038jeleqotolairbubbleappsmyaddrstolosmyrdbxwebflowdrive-platformbeagleboardhasura-applolipopdefinimavaporcloudmusicianwebflowtestazurecontainerresindevicereadthedocsloginlineeditorxmoonscalesandcatsbasicserverwebthingsbrowsersafetymarkbeebyteappbitbucketidaccovistablogorgschnetgovxn--mgba3a4f16axn--mgba3a4fraarvanedgeايرانایرانjclaspeziapdudcefegelemeperetevebacanatavaparasabgagfgogrgpgalclblimfmrmcbmbvbfclcmcvcrcpcchlimifibicivipirisimncnbnanenrnpntnnolomobocoaogorosopotoptvtatctbtmtltotpusulunutpspapaqsvpvvvtvavvrtrsrprgrfrcrbrarorkrvstsssbscsmsispzczbzbozen-suedtirolmyspreadshopxn--bulsan-sdtirol-nsbxn--valledaoste-ebbtrentinoaltoadigetrentin-sued-tirolxn--forlcesena-c8axn--forl-cesena-fcbxn--bozen-sdtirol-2obtriestetrentinsuedtiroltrentino-s-tirollecceudineaostesienaparmaluccapaviagenoapaduaaostamonzaabruzzoternirietiturinmilanbozenlaziofermoleccocuneonuoropratola-speziavdataaligfvgpugmolcalcamlomumbsicpmnvenvaoedugovabrsarmaremrbastoslazibxosfirenzetrentinosüdtirolval-d-aostavalle-aostamessinacremonaravennatoscanatrentin-suedtirolbolognacalabriaurbinopesarofriuli-v-giuliaogliastraxn--valle-aoste-ebblaquilaandriatranibarlettasyncloudxn--valle-d-aoste-ehbaostavalleyvalled-aostatrentino-alto-adigevallee-d-aostexn--balsan-sdtirol-nsbpistoiasicilialucaniacataniaiserniaperugiabresciaveneziagorizialiguriaimperiabulsan-suedtirolbalsan-suedtirolbarlettatraniandriaxn--trentino-sdtirol-szbforlì-cesenatuscanyvallée-d-aostemantovavallée-aostecasertapiemontevalleaostaval-daostafriulivgiuliatrevisoforli-cesenavalléedaosteferrarapescaravald-aostatrentino-altoadigefriuli-vegiuliavallee-aostecarboniaiglesiastarantomediocampidanovalleedaostetrentinosud-tirolcampobassotrentinsüd-tiroltrentinosüd-tirolmonzabrianzatrentino-südtirolxn--trentino-sd-tirol-c3bpotenzacosenzavicenzaemiliaromagnavenicefrosinonemarchepordenonetrentinosued-tirolvaresemolisevalléeaostefriuli-veneziagiuliabasilicatalatinaanconasavonaveronamodenabiellabolzano-altoadigepugliafoggiaumbriatrentino-stirolgenovapadovamateranovararagusapiacenzatrentinostirolvalleeaostetempio-olbiasudsardegnatrentinsudtirolmassa-carrarafriuliveneziagiuliatrentinosuedtirolandria-barletta-tranitrapanixn--cesenaforl-i8amaceratacaltanissettaascoli-picenobrindisicarraramassacagliaririmininapolivibo-valentiachietibulsan-sudtirolbalsan-sudtiroltrentino-a-adigebulsanbalsaniglesiascarboniamilanotorinoteramodell-ogliastraarezzotrentinoalto-adigerovigotrentovenetoiglesias-carboniatrentino-sud-tirolaltoadigereggio-emiliareggio-calabriasardegnatranibarlettaandriapiedmontxn--sdtirol-n2amedio-campidanotrentino-süd-tirolfriuli-vgiuliafriuli-ve-giuliaromeennaromapisa32-b16-b64-blodiastibarineencomonaplesforlicesenailiadboxosalessandriasicilytrani-barletta-andriaxn--trentin-sdtirol-7vbpesarourbinotrentinsued-tirolcesena-forliforlìcesenaemilia-romagnamonzaebrianzaxn--trentinsdtirol-nsbtrentinos-tiroltrentinsüdtirolvalledaostaolbia-tempiocampidanomediovibovalentiasassarivalle-daostalombardysud-sardegnafriulivegiuliareggioemiliamonzaedellabrianzaalto-adigevercellitrentin-sudtiroltraniandriabarlettatrentino-sudtirolascolipicenobozen-südtirolfriulive-giuliaflorencexn--cesena-forl-mcbcarbonia-iglesiasaosta-valleycarrara-massadellogliastratrentinoa-adigexn--valleaoste-e7apesaro-urbinoxn--trentinosdtirol-7vbxn--trentin-sd-tirol-rzbxn--trentinsd-tirol-6vbtrani-andria-barlettatrentin-süd-tirolxn--trentinosd-tirol-rzbgrossetomonza-e-della-brianzasüdtirolreggiocalabriatrentinoaadigetrentin-südtirolverbano-cusio-ossolafriuliv-giuliaverbaniacampaniatrentino-aadigefriulivenezia-giuliasardiniaandriabarlettatranibarletta-trani-andriacatanzarooristanourbino-pesarocesena-forlìvalle-d-aostacampidano-medio123homepagesiracusatempioolbiasuedtirollombardiaavellinocesenaforlìtrentinofriuli-venezia-giuliabozen-sudtirolandria-trani-barlettabulsan-südtirolbalsan-südtirolmonza-brianzabolzanotrentino-sued-tirolbellunosalernolivornocrotonesondriodnshometrentinsud-tirolmassacarraratrentin-sud-tiroltrentino-suedtirolviterbobergamocesenaforliolbiatempiopalermobeneventoagrigentoofcoorgnetfmaitvphdengorgmilcomschnetedugovperagrikanieasukehandachitatokaiaisaikonanoharuamaobuhigashiuraowariasahiinuyamatobishimaiwakurashitarainazawatoyonegamagorimihamatoyotataharakariyayatomioguchikomakimiyoshinishiotokonamekiyosuchiryutoyohashiokazakiisshikikasugaikotakiratoeianjotogofusosetohazutsushimashinshirotakahamanisshinshikatsuhekinantoyokawaichinomiyatoyoakeodateogataakitaikawakyowahonjoogayurihonjonoshirokamiokakatagamimitanegojomeyokotekosakadaisenkazunonikahohonjyomoriyoshimisatohappoukamikoanihachirogatahigashinarusesembokufujisatokitaakitaitayanagiowanitakkomutsutsurutahirosakigonoheoirasetowadamisawanohejiaomorishingohiranairokunohehashikamitsugarushichinohehachinohenakadomarisannohekuroishisakaeisumiasahiotakiinzaiabikomatsudoyachiyomutsuzawakujukuriomigawakashiwatoganemihamanaritasakuranagaramobarahanamigawachoshishiroichoseikozakishisuikatorimidorichonankyonanfuttsuonjukufunabashinagareyamanodasosatakochuotohnoshourayasukimitsuyokaichibayotsukaidosodegauratateyamakamagayayokoshibahikariyachimatakatsuuratomisatokisarazukamogawaichikawanarashinoichinomiyashimofusaminamibososhirakoichiharaoamishirasatoikatahonaiainansaijoseiyoiyoozuuwajimaniihamanamikatamasakiuchikokihokutobetoonshikokuchuomatsuyamaimabarikamijimakumakogenyawatahamamatsunosabaeikedaobamasakaifukuiohionotsurugamihamawakasaminamiechizeneiheijikatsuyamatakahamaechizensoedaukihaomutaokawanishiogoribuzenonojosueumiokiotochikugosasagurisaigawamizumakishinyoshitomikurumekurateyamadakasuganakamamiyamanogatatakatahakataiizukakawaratagawakasuyaashiyainatsukimunakataminamitsuikishonaikurogifukuchikeisenhigashimiyakoshinguyukuhashiokagakiyamekogaongausuikahotohochuotoyotsumiyawakadazaifuhisayamatachiaraiyanagawanakagawahirokawachikujochikushinochikuhochikuzennamieotamaokumashowateneiiwakikoorinangoononishigoshimogoomotegomishimafukushimaasakawakagamiishishirakawaiitatefutabahiratayugawahanawakitakatakawamatakunimiyabukibandaihigashihironoyamatomiharuyamatsuriaizubangedatesomaaizuwakamatsuyanaizuaizumisatonishiaizuizumizakikitashiobarataishinkaneyamakoriyamainawashirotanagurafurudonosamegawasukagawaishikawatamakawaikedaogakitaruiginanenahashimahichisonakatsugawaibigawashirakawamizunamiminokamomitakekawauesekigaharatomikasakahogikitagatayamagatatajimianpachimotosuyaotsukakamigaharahidakanisekitokigujominogodoyorogifukasamatsutakayamawanouchihigashishirakawakasaharashimonitatsumagoichiyodakannakanrashowameiwakiryuotaoratomiokafujiokaitakuranaganoharahigashiagatsumatakasakishibukawaminakamikatashinatsukiyonokawabanumataannakaoizumimidorishintoisesakiuenoyoshiokakusatsutakayamanakanojonanmokutamamuratatebayashimaebashiotakekaitadaiwahongofuchukuietajimashobaramiharahatsukaichihigashihiroshimamiyoshikumanokurenakasakaseraseranishiasaminamifukuyamashinichionomichiosakikamijimajinsekikogentakeharaotobenanaeikedatohmaozoraobiraabirakyowaeniwataikibibaisharirebunerimohiroooketootarupippunishiokoppechitosefurubirahakodateshiranukakitahiroshimakushiroobihironanporoiwamizawaniikappukunneppufukushimanakasatsunaitoyourakuromatsunaiakabirakamisunagawashibechaurakawakamifuranonakatombetsuasahikawashimokawakayabeokoppebiratoriabashirisaromaatsumanumatahidakabifukamukawamikasahorokanaitoyotomisarufutsuhigashikawaishikarikitamiyoichiesashiiwanaitomariminamifuranoakkeshifuranotoyakoyakumootoineppushikaoishiraoinemuronayorohaboroashorobihororishirifujiutashinaihokutotakasuebetsuurausuassabukikonaishimamakinaiedatetoyabieinikiesanuryuoumuteshikagarikubetsuashibetsukimobetsuaibetsutobetsusobetsuembetsushimizuchippubetsurishirihokuryuhoronobeshintokutsubetsushibetsuhonbetsumombetsutsukigatakuriyamakoshimizushiriuchikutchanmurorannoboribetsukamishihorowassamushinshinotsukembuchiwakkanaikamoenaikiyosatotakinoueshikabesunagawafukagawanakagawatakikawakamikawahigashikagurahamatonbetsumatsumaemoseushirankoshishakotanimakanemashikeotofuketomakomaisandatambaitamiawajikasaiasagoshisoonoakoyashirotoyookaminamiawajiinagawafukusakitakasagokamigorikasugaharimayokawaashiyahimejiakashitaishiaogakisannantakinosumototakarazukanishinomiyashingugoshikinishiwakiyokatakaaioimikisayoyabukawanishiamagasakisasayamashinonsenkakogawaichikawakamikawatatsunotsukubaiwamaogawaasahisakaitokaioaraiitakobandodaigosuifuinaamikasumigaurakashimaomitamayachiyoshimodatetomobetoridehitachinakainashikisakuragawakasamayawaramoriyahitachiomiyanamegatayamagatahitachikamisuushikutakahagiibarakitonekoganakasowayukimihojosomitoryugasakishimotsumafujishirotsuchiurachikuseihitachiotashirosatotamatsukuriuchiharashikahakuinanaotsubatawajimakahokukawakitatsurugikaganominotosuzuuchinadakomatsuanamizunakanotohakusannonoichikanazawaiwateshiwafudaikawaimoriokaofunatohanamakikuzumakikitakamininohekunoheyamadayahabasumitaichinosekitanohatahiraizumirikuzentakatajobojiotsuchihironomiyakoiwaizumikarumaiichinohenodakujitonooshushizukuishifujisawamizusawakamaishikanegasakimannoutazukotohiraayagawazentsujihigashikagawauchinomikanonjisanukimarugamemitoyotakamatsutadotsunaoshimatonoshoakuneamamiizumihiokiyusuikinkoisasookouyamanakatanekagoshimakanoyaisenkawanabeminamitanemakurazakitarumizunishinoomotematsumotosatsumasendaioimatsudaayaseebinamiurazushinakaiodawaraiseharasagamiharahakoneaikawakaiseiatsugitsukuihadanoyamatoyamakitazamaoisochigasakininomiyayokosukakamakuraminamiashigarafujisawasamukawakiyokawahiratsukayugawaraokawaumajikochitsunootoyoakiinonishitosayasudahidakamiharasakawaniyodogawahigashitsunokagamigeiseisusakiotsukinaharisukumomurototosakamiochitoyotosashimizumotoyamanankokunakamurakitagawayusuharaogunichoyoukiasoutoozugyokutoamakusamifunetakamoriyamagaminamataminamiogunikikuchisumotoyamatonagasumashikiaraokumamotokamiamakusanishiharayatsushiroayabeseikasakyoideineujinakagyokameokakyotangokyotanabekyotambaminamiyamashiroyamashinatanabeyawatawazukaminaminantanmiyazuhigashiyamafukuchiyamakitamukokamojoyokizumaizuruujitawaraoyamazakinagaokakyokumiyamakawagoeinabeshimameiwaasahitaikiudonoisetsukisosakikuwanamihamamiyamasuzukatamakimisuginabarikumanokomonominamiisewataraitobakiwatakikihotadomatsusakayokkaichikameyamaureshinoishinomakishichikashukuohirataiwaosakizaohigashimatsushimashikamaiwanumashibataogawaraonagawakawasakiseminemarumoriminamisanrikukakudamuratawakuyatomiyanatoriwataritagajomisatotomekamirifushiroishimatsushimayamamotoshiogamafurukawahyugaebinotsunosaitoayakushimanobeokakitauramiyazakitakazakigokaseshiibamimatashintomikunitomikitakatakobayashikawaminamitakaharukijotakanabemiyakonojonishimeranichinankitagawakadogawamorotsukakisofukushimaminamimakisakaeobuseikedaogawamiasaokayaasahiotakiotarichinoinaomichikumakomaganechikuhokukaruizawayasuokaooshikaikusakaminamiaikitogakushimatsukawakawakamitateshinatakamorikitaaikishiojirimiyadahakubaiizunaiijimaiiyamamiyotasuzakayasakatoguraookuwanagawaminowahirayayamagataminamiminowafujimiomachisakakitakaginaganonakanosakuhokomoronagisoshinanomachiwadauedaiidaharasuwatomiachiaokianankisosakunozawaonsenagematsutakayamashimosuwamatsumotoyamanouchinakagawamochizukiazuminotatsunoobamaomuraseihiunzenosetofutsuikichijiwanagasakiisahayahasamisaikaikawatanasasebohiradokuchinotsugototogitsutsushimashimabarashinkamigotomatsuurayamazoekashibaikomakawaitenrioyodosangokoryoudaojiikarugayamatokoriyamatenkawakatsuragikurotakikawakamimiyakemitsuetakatorikamikitayamayamatotakadahegurishinjokanmakisakuraitawaramotogoseoudanarasoniandokawanishishimoichihigashiyoshinokashiharashimokitayamanosegawayoshinomintsivorytopazsakuragehirnsumomoaseinetopalmail-boxmokurenyoitamuikaojiyagosensanjoaganomyokoseiroagaomishibataniigatanagaokamurakamiuonumayuzawakariwatagamitainaitsunanminamiuonumatochioyahikojoetsuseiroukamosadoizumozakitokamachiitoigawasekikawakashiwazakitsubamemitsukekokonoesaikiusukibeppuusahimeshimakunisakihasamataketatsukumihitaoitahijikusuyufukujukamitsuebungoonobungotakadaibaraniimibizentsuyamaokayamakasaokahayashimayakagemaniwaakaiwamisakishinjotamanotakahashikibichuowakesojanagishookumenannishiawakurakurashikiasakuchisetouchikagaminosatoshotomigusukunakagusukuyaeseizenaurumaiheyaaguniogiminanjokinminamidaitokitanakagusukuyonaguniokinawaishigakikunigamiurasoekadenataramahiraraginozataketomishimojizamamitonakiitomanhigashimotobuyonabarugushikamionnanahanagohaebarukumejimakitadaitonakijinnishiharayomitanginowantokashikiishikawaikedasuitaminohizuminishisakaikananabenodaitoosakasayamayaokishiwadatadaokakaizukatondabayashichihayaakasakakumatorikadomasayamahigashiosakashijonawatehirakatataishimisakitajirihannansennankatanotoyonominatosettsuhigashiyodogawaibarakinosekitachuohigashisumiyoshifujiiderakashiwaraizumiotsutoyonakamatsubaramoriguchiizumisanoshimamototakatsukineyagawahabikinotakaishikawachinaganoyoshinogarikamiminearitaouchiimarihizenogikashimaariakekiyamafukudomikitagatakitahataomachigenkaikanzakinishiaritakyuragisagataratosutakushiroishikaratsuhamatamakouhokukawagoeyoshidasatteogoseirumaasakaurawaogawaniizaomiyayoriiotakishikihonjooganohannohanyuinasaitamaokegawaarakawayoshikawayokozehasudasayamahidakafukayachichibuiwatsukiryokamiyoshimikamiizumifujimiwarabiranzanmiyoshiminanoyashiosakadosugitomisatohigashichichibutodasokakukiyonokazoshiraokakasukabekounosukawajimatsurugashimamiyashirokitamotohatoyamamoroyamahatogayakumagayakawaguchinagatorokamisatomatsubushinamegawatokigawakamikawafujiminohigashimatsuyamakoshigayatokorozawas3isk01isk02ryuohkoseikonanaishorittotakashimamaibarahikonetorahimenishiazaikokagamokotoyasuotsukusatsunagahamamoriyamatoyosatotakatsukinotogawaomihachimanhigashiomiakagiunnanizumogotsuamayatsukakakinokimatsuehamadamasudahikawahikimiokuizumoyasugiyakumomisatotamayuohdahigashiizumookinoshimanishinoshimatsuwanoshimaneshimadafujiedayoshidashimodagotembaiwataatamikosaiyaizuitoizumishimahaibaramakinoharaomaezakikawanehonkannamisusonohigashiizufukuroinumazukawazufujiaraishizuokahamamatsushimizuizunokunimatsuzakimorimachiminamiizunishiizukikugawakakegawafujikawafujinomiyaujiietsugaoyamayaitaohiranikkoashikagakuroisokanumasakurashioyakarasuyamamotegiichikaikaminokawatochigihagamokanogisanobatonasumibunasushiobaranishikatautsunomiyaiwafunemashikoshimotsukeohtawaratakanezawaitanokomatsushimatokushimaichibaminamiaizumiwajikikainanmiyoshinarutomimamugiananmatsushigesanagochishishikuinakagawamachidachiyodakomaefussainagitaitochofufuchuomeotahigashiyamatotoshimaokutamaaogashimakodairaedogawaarakawahachiojishinagawatachikawashibuyasuginamihinodekiyosesumidaoshimanerimamitakahamuraadachinakanomizuhobunkyomegurominatokoganeihigashikurumekokubunjihigashimurayamamusashimurayamatamakitahinochuokotokatsushikakouzushimaogasawaraakishimakunitachishinjukusetagayamusashinohachijoitabashiakirunohinoharachizunanbukotouramisasawakasayonagokogehinoyazutottorinichinansakaiminatokawaharaoyabetairainamiasahinantoimizufuchutakaokakurobeyamadajohanatoyamatonaminyuzenfunahashinakaniikawanamerikawaunazukitogahimiuozufukumitsutateyamakamiichiiwadearidayuasainamitaijikatsuragiaridagawatanabemihamahidakakainankiminomisatoshingushirahamakamitondayurakozakoyagobokitayamawakayamakudoyamahashimotokushimotokozagawahirogawakinokawanachikatsuurarsuseroeoishidasagaeoguniasahinagaitendonanyoobanazawanishikawasakataohkuratozawamikawamamurogawayamagatafunagatatakahatashonaishinjokahokuiideyuzakawanishitsuruokakaminoyamayamanobeshiratakamurayamanakayamakaneyamahigashineyonezawasakegawamitouubeyuuabushimonosekitabuseoshimatoyotaiwakunihikarishunannagatohagihofukudamatsutokuyamashowadoshitsurunanbukoshukaiminami-alpsnirasakikosugeotsukioshinohokutominobuyamanashifuefukichuokofuichikawamisatoyamanakakonakamichitabayamanishikatsuranarusawafujikawahayakawafujiyoshidafujikawaguchikouenohara長野京都岐阜大阪三重群馬千葉滋賀佐賀奈良adednelgaccogogror秋田愛知高知埼玉沖縄栃木熊本岩手青森山梨新潟島根鳥取長崎香川宮城石川大分宮崎茨城山口兵庫山形徳島広島福島福岡岡山富山静岡愛媛福井東京xn--4it168dhatenadiaryxn--vgu402ckawaiishophatenablogcocottenamaste北海道penneehimeiwateversestabachibashigagonnagunmapermahaccaakitaosakauh-ohblushkochiaichifukuikuroncapooitigohyogotokyokyotopunyuthickcheap0t00g00j0mie2-ddaapyawjg0amfemsubxiiboomoobutchueekpgwrgrherskrboyrdyupperunderflierchipsmydnsheavyangryhippygirlyrulez神奈川鹿児島和歌山bambinaxn--nit225kokayamasaitamaxn--k7yn95exn--1lqs03nsapporoparasitelolipopmcxn--efvn9sniigatafukuokatokushimafukushimahiroshimakagoshimafakefurokinawaxn--8pvr4ucoolblogxn--0trq7p7nnkawasakinagasakimiyazakichilloutxn--8ltr62kxn--klty5xpeeweezombiecutegirlxn--rny31hxn--uuwu58axn--ntso0iqx3axn--djrs72d6uytoyamanikitanyantakagawamimozanagoyaboyfriendxn--2m4a15egreaterchowderegoismyamagatafashionstorexn--elqq16hxn--pssu33lsendaimiyagixn--rht27zpecoriaomorisaloonwatsonvivianxn--djty4knobushipigboatnaganopinokoxn--f6qx53asadistvelvetsecretxn--5js045dchicappayamanashiibarakidigickgirlfriendxn--1lqs71dmongolianxn--c3s14mxn--qqqt11mtochigixn--5rtq34kparallelo0o0mondkobesagabonadecaoitanarafoolkilldecimainhiholomosblokilociaoundopupugifutankcrapflopnooroopsmodsholyjeezstripperpepperbittershizuokaxn--rht3dkitakyushureadymadeicurusversusmatrixxn--rht61ehungryfloppygloomycrankyhandcraftedlittlestarxn--klt787dxn--kltx9awhitesnowsunnydaytottorilovepoptheshopbuyshopxn--5rtp49cxn--d5qv7z876cwebaccelxn--kbrq7oxn--4pvxsxn--1ctwolovesickkumamotocatfoodxn--tor131oyokohamawakayamatonkotsuxn--ehqz56nxn--uist22hxn--6btw5axn--kltp7dyamaguchifrenchkisspussycatxn--4it797kxn--uisz3gbabybluexn--zbx025dnetgamersxn--7t0a264ckanagawaxn--6orx2rishikawaxn--ntsq17ghalfmoonschoolbusjellybeanxn--mkru45iusercontentlolitapunkxn--32vp30hsakurastoragehokkaidoshimanecandypopbabymilksupersaleweblikeraindropbackdropwebsozaikikirarahateblodaynightmeneacsccogoormobiinfoaeusxxorgmilcomnetedugovorgcomnetedugovbizinfotmprdorgmilcomnomedugovassnotairespresseassocoopgouvveterinairemedecinpharmaciensorgnetedugovtraorgcomedurepgovmeneperekgacscaiiocogoitoresmshsseoulbusanulsandaeguc01milvkimmvchungnamjeonnamjeonbukeliv-dnsgyeonggijejueliv-cdnincheondaejeongangwongyeongbukgwangjuchungbukgyeongnameliv-apicoeduindorgcomembnetedugovorgmilcomnetedugovjcloudorgcomnetintedugovperbnrinfocooyorgcomnetedugovethipfscanvamypepethw3sstorachakeeneticjoinmcinbrowserdwebcyonnftstoragemyfritzaemewphlxachotelltdorgcomwebsocschngonetintedugrpgovassnomgacsccoorgnetedugovbizinfo123websiteidorgmilcomasnnetedugovconfidmedorgcomplcschnetedugovaccoorgnetgovpresstmassoirseproxaccosoundcasthoptocraftvp4c66orgnetedugovitsmcdirmyboxbarsyedgestacksynologylogintoopencloudnohostwebhopdiskstationi234tcp4hoocgroknoipprivmydsddnsdnsforlohmustransipdscloudfilegear-sgbrasiliafilegearframerbarsybarsyonlinecoprdorgmilcomnomedugovinforgcomnetedugovnameacprorgcomartnetedugovpresseinfoassoinstgouvorgnycedugovbarsydscloudjuorgcomnetedugovminisiteaccoororgcomnetgovorgmilcompronetintedugovbizmuseumnameinfoaerocoopaccoorgcomnetintedugovbizcooporgcomgobneteduorgmilcomnetedugovbiznameaccoorgmilneteduadvgovcoorgcomnetaltgovforgotherhiskeeneticispmanagernomassoprod5476132eastasiacentraluswesteuropewestus2eastus2pnortheurope-01newzealandnorth-01southindia-01southcentralus2-01norwaywest-01eastus2-01westus2-01australiaeast-01italynorth-01israelnorthwest-01swedencentral-01westeurope-01centraluseuap-01taiwannorthwest-01uaecentral-01northcentralusstage-01israelcentral-01mexicocentral-01canadacentral-01austriaeast-01germanywestcentral-01francecentral-01ukwest-01denmarkeast-01polandcentral-01eastus-01westus-01swedensouth-01eastus3-01westus3-01brazilsouth-01centralus-01francesouth-01australiacentral-01westindia-01uaenorth-01jioindiacentral-01canadaeast-01belgiumcentral-01spaincentral-01koreacentral-01chilecentral-01qatarcentral-01westcentralus-01eastus2euap-01norwayeast-01southafricanorth-01brazilsoutheast-01germanynorth-01switzerlandnorth-01switzerlandwest-01japanwest-01southafricawest-01japaneast-01eastasia-01indiasouthcentral-01taiwannorth-01centralindia-01uksouth-01southcentralus-01northcentralus-01eastasiastage-01indonesiacentral-01australiacentral2-01australiasoutheast-01malaysiawest-01koreasouth-01southeastasia-01southeastus5-01northeastus5-01jioindiawest-01rucdnwest1-usfra1-desandboxjls-sto1jls-sto3jls-sto2aglobalabglobalsslmapprodfreetlsmapvpslon-1lon-2ny-1fr-1sg-1ny-2paassnwebpaashostingjelasticnordeste-idcsocuserpagescwebfileblobservicebuscoreatlricnjsjelasticwebsitestoragesezagbinruhuukjptsmyspreadshopmynetnameakamaiorigin-stagingfrom-coipv64dynv6cdn77serveblogadobeaemcloudhicamsprytdnsupno-ipownipde5ovhicpfirewall-gatewaysytesmypsxbarsyusgovcloudapimyamazemyradwebakamaihdsaveincloudfastlylbfrom-lasubsc-paysquare7in-the-bandblackbaudcdnhomelinuxoninfernoctfcloudservebbsdns-dynamiccloudfrontakamai-stagingipifonyham-radio-opsenseeringclickrisingcommunity-profrom-nylocalcertgrafana-devedgesuite-stagingcloudflareanycasteating-organicatlassian-devmydattofeste-iplocaltotorprojectknx-serveredgekeycloudflareglobalcloudyclustercasacamserveftpakamaized-stagingakamaiorigindns-cloudmyeffectboomlabotdashbuyshousestwmailhetemlazure-mobilein-dslthruhereredirectmedynuddnsbouncemesupabaseluyanicloudappakamaicloudfunctionsdebiannhlfanpgafanstatic-accessin-vpnmysynologymafeloappudohomeftptrafficmanagersiteleafseidatmemsetcloudflarecloudaccesskeyword-onazure-apiis-a-chefdoes-itgets-itwebhopselfiphomeipkicks-assedgesuitewindowsserver-ontunnelmolemydissentscrapper-sitecloudflarecnuni5srcfggffiobbzabchrsndenodynuopikddnsvpndnsakadnselastxkinghostvps-hostfastlyhomeunixazureedgeshopselectdontexistmyfritzcloudjiffyalwaysdatasells-itsquaresbroke-itazurefddattolocalat-band-campmeinforumfamilydsazurestaticappsdefinimabplaceddnsaliasdynaliasnow-dnsblogdnsroutingthecloudendofinternetdsmynasakamaiedgemymediapcadobeio-staticakamaiedge-stagingakamaihd-stagingddns-ipprivatizehealthinsurancelive-onkrellianschokokeksmassivegridmysecuritycamerarackmazeserveminecraftfrom-azis-a-geekakamaizedmoonscaleoffice-on-theusgovtrafficmanageradobeioruntimeedgekey-stagingreserve-onlinechannelsdvrdnsdojousgovcloudappcdn77-sslapps-1and1podzoneazurewebsitesdynathomescaleforceyandexcloudvusercontentisa-geekcdn-edgescoaemalcesappwriteazimuthtlonarvobuiltwithrocketnoticeablestorecomwebrecnetperotherfirminfoartslgdloncogoiltdorgmilcolcomplcschgenngonetedugovbiznamefirmmobiacincoorgmilcomnomwebgobnetintedubizinfocomyspreadshopdemongovtransurl123websitehosting-clusterkhplaycistrongsnesosvalervålerxn--vler-qoaossandeheroysandeherøybøboheroyherøyxn--hery-iraxn--b-5gavalerbøboxn--b-5gasandesandexn--hery-iraxn--vler-qoavålerhåreålaahavaofsfvfhlolnlalrlhmfmtmahcostntbuåstrmreigersundmyspreadshopgálsáeidsvolltingvollgildeskalflorøvadsøvardøvanylvenxn--bhccavuotna-k7astrandaxn--kvnangen-k0axn--sknland-fxaxn--mosjen-eyarakkestadhyllestadnannestadvevelstadvaapstenordre-landsondre-landsøndre-landtjieltexn--vrggt-xqadsør-aurdalsor-aurdalheradstordmoldefordeførdeseljefedjeryggehemnexn--krehamn-dxasognegranesøgnebrynetjomevallebykletokkegiskedovretjømehobølvoldasaudatolgasømnaviknadønnasomnadonnatranafrananesnaraumasmolatrænafrænalesjasmølaørstaorstahitrafloraaukraloppafrøyarissasnasahalsagalsaromsaraisaráisafroyasnåsagronghobolfjelltydalårdalardalaskimharamkraanghkekråanghkesorumbarumhurumbærumsørummodumsálátbálátfrognbjugnvåganvagangulenskienløtenlotenstrynvefsnxn--merker-kuaskaunsveiobømlobomloskjåkvardoflorovadsosalatbalatsálatklæbuklabuselbubarduulvikskjakklepprisørxn--nttery-byaeflåeidflahofmilgolholsellomskifetvikdepvgsfhsaskerrisorhamarasnesåsnesrørosrorosxn--slat-5namasoynaroyvaroyluroydyroyaskoyradoyandoyrodoymeloyradøyandøyrødøymeløyaskøylurøydyrøymåsøyværøynærøyhoylandethøylandetdivtasvuodnalørenskoglorenskognesoddtangenxn--tjme-hraxn--smla-hraxn--stjrdal-s1aunjargalillehammerunjárgaxn--hamary-fyadavvenjargaxn--bearalvhki-y4a123hjemmesidegjerdrumxn--brnnysund-m8acxn--tnsberg-q1axn--mlatvuopmi-s4axn--snsa-roaxn--skierv-utaxn--brum-voatysfjordkvafjordeidfjordkvæfjordsongdalenmjondalenmjøndalenxn--gls-elackragerogáŋgaviikagangaviikasørreisasorreisasør-varangersor-varangerxn--risr-iraskiervaxn--frna-woaxn--trna-woakvinesdalleksvikleirvikrøyrvikroyrviksvelvikvenneslaevje-og-hornnessandnessjøenmarnardalvindafjordsandefjordenebakksnillfjordullensvangxn--trany-yuabrønnøysundnamsskoganaustevollxn--stjrdalshalsen-sqbnord-aurdalnord-frontrøgstadtrogstadgrimstadflakstadgjerstadxn--sandy-yuaxn--leagaviika-52bnore-og-uvdalvegarsheixn--rlingen-mxaxn--ggaviika-8ya47hvegårsheikarlsoykvitsoymasfjordenhamaroyinderoyosteroydavvenjárgasauheradguovdageaidnuxn--vre-eiker-k8abronnoysiellakkrødsheradkrodsheradkvinnheradbrønnøyxn--mtta-vrjjat-k7afxn--lrenskog-54akvitsøyvárggátkarlsøyosterøyinderøyhamarøybronnoysundxn--aurskog-hland-jnbbahccavuotnabáhccavuotnagiehtavuoatnastor-elvdalmidtre-gauldalxn--gildeskl-g0akarasjokevenassixn--bievt-0qaxn--yer-znalebesbynessebyxn--hbmer-xqamalselvmålselvxn--unjrga-rtamøre-og-romsdalmore-og-romsdalhareidmelandørlandorlandstrandålgårdsolundalgardafjordåfjorddielddanuorrikautokeinoxn--stre-toten-zcbskodjeaejriestangeliernebamblestokkefauskesnåasesnaasekongsvingerlangevagberlevagxn--flor-jrahattfjelldalostre-totenøstre-totenvestfoldxn--mely-iraálaheadjualaheadjunordreisaxn--troms-zuaxn--lgrd-poacporsangerflatangerstavangerleikangerbremangersamnangergieldakarasjohkaxn--rdy-0nabfrostautsirasnoasatromsaxn--sr-aurdal-l8aflekkefjordjølsterjolsteraremarkhedmarknååmesjevuemienaamesjevuemiexn--vard-jrarollagmeråkermerakerorskogørskogxn--bdddj-mrabdákŋoluoktaxn--osyro-wuaaknoluoktatrysilskjervøymandaljondalbindalrindalmeldalsuldalorkdalsigdalalvdallærdalhurdalsirdalverdallerdallardaloppdalåseralaseralhadselkragerødivttasvuotnaoverhallasteinkjerxn--hnefoss-q1askedsmokorsettromsøxn--dyry-iravestre-totenmuseumxn--sandnessjen-ogbrahkkeravjufylkesbiblbájddarbajddarxn--laheadju-7yarennesøyxn--koluokta-7ya57hxn--hgebostad-g3aleirfjordstorfjordbalsfjordbåtsfjordbatsfjordmuosátbievátloabátkárášjohkanøtterøyxn--mjndalen-64anordkappláhppilahppialstahaugsiljanverranrøykenroykenhaldenlyngenbergenhortenhønefosshonefosstroandinbeiarnvarggatosoyroosøyrotromsoidrettmuosatbievatruovatloabatvoagattynsetnessetxn--indery-fyaskánitskanitraholtråholtxn--ystre-slidre-ujbandebusarpsborgbearduxn--karlsy-fyahordalandjorpelandjørpelanddeatnuringsakersør-odalsor-odalxn--slt-elabringerikeaudnedalnittedalnissedalhemsedalslattumsurnadalxn--blt-elabelverumstjørdalnaustdalhjartdalgjøvikfyresdalhasviknarviklarvikgjovikmalvikgamviklenvikporsgrunnstjordalengerdaldrobakdrøbakxn--msy-ula0hvestvagoyxn--vgan-qoaxn--ryken-vuaxn--lten-graxn--stfold-9xaxn--hpmir-xqaxn--lury-iramálatvuopmimalatvuopmitysværkirkenesbirkenesmoskenesbáidárxn--fjord-lraxn--rdal-poabahcavuotnabáhcavuotnaxn--frde-gralindåsbearalvahkixn--hobl-iraráhkkerávjuxn--loabt-0qavågåáltábodøsundlundraderådeetnetimeholeauregrueoddavagavegaranatanaarnasolasulaaltalekafusavangbergkvamåmliamlibokntinnroangranosenoslobodorøstroststatåmotamotivguprivøyeroyerliermossvossxn--nvuotna-hwalusterlunnermarkerhábmerhabmerhvalerfjalerxn--rholt-mratysvarbaidarfitjargaularhápmirhapmirmelhusfosnesøksnesoksnestysneshemnesevenesflesbergeidsbergtonsbergtønsberglindasxn--sndre-land-0cbnamsosxn--srum-graøystre-slidreoystre-slidrevestre-slidretrondheimbalestrandxn--langevg-jxaaustrheimxn--skjk-soavagsoyaveroysandoykarmoyfinnoytranoyvestbytranbysykkylvenxn--hyanger-q1aspjelkavikandasuoloxn--fl-ziaxn--drbak-wuastathellexn--sr-varanger-ggbtelemarkxn--bhcavuotna-s4axn--porsgu-sta26fčáhcesuolocahcesuoloakrehamnåkrehamnsandøykarmøyfinnøytranøyvågsøyaverøynamdalseidxn--lesund-huabadaddjaxn--vegrshei-c0axn--btsfjord-9zagildeskålporsanguxn--trgstad-r1anávuotnanavuotnahammerfestxn--sgne-graxn--brnny-wuacibestadharstadnarviikaevenáššivestnesgjemnessandnesagdenesrennesoyxn--avery-yuaxn--tysvr-vrabearalváhkikongsbergspydebergrandabergxn--andy-iradavvesiidaxn--krdsherad-m8aporsáŋgufredrikstadbjerkreimringeburennebuaurskog-holandnotteroyxn--vgsy-qoa0jxn--rmskog-byaskierváivelandbyglandfrolandaurlandforsandxn--bjddar-ptamidsundålesundalesundfetsundfarsundovre-eikerøvre-eikerakershusxn--moreke-juasørfoldøstfoldostfoldsorfoldhøyangerhoyangerlevangerorkangertanangerxn--vestvgy-ixa6olillesandulsteinxn--rennesy-v1agranvinskjervoyxn--klbu-woalavagisxn--h-2faxn--ryrvik-byakafjordkåfjordseljordfolkebiblxn--gjvik-wuajevnakerxn--kfjord-iuabudejjuxn--kranghke-b0axn--davvenjrga-y4axn--rland-uuaxn--ldingen-q1axn--mlselv-iuaxn--rady-iraxn--linds-prabrumunddalxn--ygarden-p1amo-i-ranaeidskogrømskogromskoghjelmelandxn--finny-yuaxn--sr-odal-q1axn--skjervy-v1aballangenkvanangenkvænangengratangenxn--hmmrfeasta-s4acvossevangensuohkanxn--rde-ulaxn--mli-tlaxn--ksnes-uuanordlandskanlandskånlandsortlandfuoiskuxn--rros-graxn--hcesuolo-7ya35bxn--eveni-0qa01gagaivuotnagáivuotnaxn--seral-lradrammenmodalenmosjoenjan-mayentorskensteigengloppenxn--snes-poamatta-varjjatxn--sr-fron-q1aomasvuotnajessheimbådåddjåxn--krager-gyaxn--kvfjord-nxaxn--asky-iraxn--snase-nraxn--bidr-5nacholtålenxn--vads-jraxn--jlster-byamosjøenxn--rst-0nastavernxn--ostery-fyaxn--oppegrd-ixaxn--sknit-yqaxn--risa-5naoppegårdskiptvetrendalenholtalenxn--mot-tlaxn--lhppi-xqaxn--holtlen-hxaxn--srreisa-q1akopervikxn--muost-0qaxn--bmlo-grahokksundkvalsundegersundxn--karmy-yuaullensakerxn--hylandet-54axn--kvitsy-fyaxn--bod-2nalangevågberlevågkristiansandxn--rsta-frahornindalstjørdalshalsenstjordalshalsensandnessjoenhámmárfeastaxn--lrdal-srasør-fronsor-fronnord-odalkristiansundmátta-várjjatvestvågøynesoddennotoddenbuskerudøygardenoygardensalangenlavangenralingenrælingenlodingenlødingenleaŋgaviikalaakesvuemieleangaviikauenorgexn--srfold-byaaskvollxn--rskog-uuaxn--nry-yla5gxn--vry-yla5ghammarfeastaxn--rhkkervju-01afxn--givuotna-8yakommunekrokstadelvanedre-eikerhagebostadhægebostadxn--berlevg-jxakviteseidxn--s-1faxn--l-1faxn--nmesjevuemie-tcbafuosskomoårekemoarekexn--lt-liacxn--jrpeland-54asvalbardoppegardholmestrandtvedestrandsogndalsokndalarendalsunndalfolldalxn--krjohka-hwab49jlyngdaletnedalnorddalsaltdalgausdalskedsmovaksdalgjesdalstordalxn--frya-hraaarbortedrangedalxn--smna-graaurskog-hølandxn--vg-yiabtjeldsundhaugesundlindesnesxn--mre-og-romsdal-qqbxn--dnna-gradyntmpheremerseineshacknetenterprisecloudmineaccomaorimāoriorgmilcriiwigennetschoolhealthkiwigovtgeekxn--mori-qsacloudnsparliamentcomedorgcompronetedugovmuseumwebsitekinservicebarsywebsitebuildereerobookheimdnsleapcelleero-stagetechcrscsslorigingohomecdbedeeeiemesecabgngilnlalplchfisiincnnoroptatitmtltruauhulumkdkukskjplvtrgrfrkrhrusesismycynzcznetinteduassoososcloudstgbetaaezaeuhkusjshatenadiarycdn77hoptozaptois-a-knightmyftpno-ipjpnddnssdpdnsspdnsbarsysweetpepperis-a-bruinsfanis-very-sweetservegameis-a-soxfanhomelinuxcdn77-secureservebbsmisconfusedwebredirectblogsitefreedesktopcouchpotatofriestoolforgeaccesscamis-lostreadmyblogsmall-webfedorapeopleserveftpis-a-celticsfanmywirepotagertwmailin-dslsellsyourhomeread-booksfreeddnscable-modemis-savednflfanufcfanmlbfanstuff-4-saleendoftheinternetin-vpnmy-firewallhomeftpis-localis-a-chefboldlygoingnowherewebhopselfipkicks-assroxatunkcamdvrfedoraprojectgotdnsdvrdnsdyndnspubtlspimientahomeunixdontexistfedorainfracloudwmflabsfspagesbmoattachmentsteckidsfamilydsdnsaliasdynaliasnow-dnscloudnsdoomdnsduckdnsblogdnshomednsroutingthecloudendofinternetdsmynasip-dynamicpoivronhttpbinmyfirewallis-very-evilmysecuritycamerais-a-linux-userwmcloudis-a-geektuxfamilyis-a-candidatedoesntexistis-very-badhobby-sitegame-hostaltervistais-foundis-a-patsfandnsdojohepforgepodzonedynservcollegefanis-very-goodfrom-meis-very-niceisa-geeknerdpolacmedsldingorgcomnomgobabonetedupleskaemhlxmyboxrockyprvcydeuxfleurspdnscodebergheyflowstatichostorgmilcomnomgobneteduorgcomeduiorgmilcomngonetedugovcloudns1337ngrokacorggogfamcomwebgobnetedugokgopgkpgovgosbizpasaugumicsopozpapuwmwsrprusiskwpspkppspkmpspokeoiawsawifoumsdnskokwpmuppuppsppiwwiwoowuzswkzoschrzpisdnwzmiuwwitdpssewsseumigugimoirmpinbwinbwiihupporzgwgriwupowwskrwioswuozstarostwokonsulattmpccopruszkowmyspreadshopostrodakartuzyopolegminamediaustkazgorajgoraolawailawalomzawloclradombytomjaworznotargilubinkoninzagantorunkutnokepnonakloczestsopotsanokturekplockslasksklepzarowlukowmedaidgdaorgmilrelcomnomatmgsmartneteduelkgovwawsossexbiztgorysejnytychypomorzeboleslawiechomesklepsdscloudunicloudzakopanelegnicarawa-mazbydgoszczswidnikkrasnikwloclawekbielawamragowograjeworealestatebeskidykaszubymalopolskaprzeworskswiebodzinlecznadfirmaszkolawarmiagdyniamiastakazimierz-dolnymalborkswidnicadlugolekaostrolekapodlasieelblagtravelsimplesitezachpomormielecszczecinnieruchomosciwalbrzychlezajsklublinbedzinpoznanwielunmielnooleckostarachowicedkontopowiatwroclawrybniksuwalkileborkslupskgdanskostrowwlkptarnobrzegtourismwegrowkrakowglogowyou2pilanysamailwrocinfoagroautobeepshoppriviqhslapypiszlodzcfolksecommerce-shopmazurypulawyskoczowrzeszowpomorskiezgierzkaliszolkuszlowiczostrowiecsosnowiecmazowszewodzislawbialowiezazgorzeleckatowicepabianicejelenia-gorawolominkarpaczsieradznowarudaczeladzkonskowolaskierniewiceswinoujscieturystykabieszczadycieszynketrzynolsztynbialystokbabia-goraprochowicewarszawastalowa-wolapolkowicegorlicegliwiceponiatowalimanowalubartowaugustowkobierzyceopocznognieznoszczytnokolobrzegshoparenapodhalebielskoklodzkostargardatwithplayitownnamecoorgnetedugovacorgcomproestnetedugovbiznameislaprofinforechtngrokmedaaaacacpaenglawjurbarbarsykeeneticavocatacctcloudnsorgcomsecplonetedugov123paginaweborgcomnetintedugovnomepublidkinbarsygovx443cloudnsorgmilcomnetedugovcooporgmilcomschnetedugovnamecomcannetlibassoaemclantmcontstoreorgcomnomrecwwwbarsyfirminfoshopartsstackitmyddnswebspacelima-cityacincooxorgedugovbarsybrendlyhbvpsvpsspectrumlandinghostingacppmordoviamcprecbgorgmilcomspbnetintedumsknovgovbirrasmcdirmytismircloudvladimirnalchikadygeyamarinepyatigorskmyjinobashkiriaeurodirvladikavkazna4ugroznykustanaikalmykiacldmaildagestaniranbuildcloudcanvaliaravalwixdevelopmentappwritemigrationneedleverceldatabasestackitcodereplravendbonporterlovableaccoorgmilnetgovcoopmedorgcompubschnetedugovservicemecomygovorggovtvmedorgcomnetedugovinfoedgfacbmlonihkutwpsryxzbdtmacfhppmyspreadshopbrandpartiorgcomfhvpress123minsidaitcouldbeworlanbibkommunalforbundfhskiopsyskomvuxkomforbnaturbruksgymnloginlineorgcomnetedugovenscaledeuusentsurgebotdaorgmilcomnetgovnowteleporthashbangplatformlovablebarsyshopwarebasehoplixbarsyonlinemsf5gitappgitpagewawamscofigma-govcaffeinefigmacanvasoltstscwputerbarsysupportchatgptsquareomniweopensocialcpanelplaycodenotionnovecorewpsquaredpreviewjelecyonbyensrhtfastvpspieboxconvexjouwwebheyflowplatformshloginlinemadethissourcecraftclouderaorgorgcomartedugouvunivmeorgcomnetedugovsurveysstatichfheiyuxs4allprojectmyfastubervibehostapp-ionosdeployagentmecoorgcomschnetedugovbizcncostoreorgmilcomneteduembaixadaconsuladokiraranohoprincipesaotomeheliohobarsystorebaseshopwaresellfyaiabkhaziavologdamordoviapenzalenugsochinavoiexnetspbmsknovnorth-kazakhstanashgabadkareliaarmeniageorgiavladimirnalchikivanovobukharaadygeyakhakassiakalugakrasnodarjambylaktyubinsktroitskbryanskobninskkurganazerbaijanpokrovskbashkiriatselinogradvladikavkazmurmansktulatuvamangyshlaktashkentchimkentgroznykaragandatermezarkhangelskkustanaikalmykiabalashoveast-kazakhstankaracoldagestantogliattibarsyredorgcomgobedumirenknightpointaccoorgjelasticdiscoursecleverappsschacmiincogoornetonlineshopcogoorgmilcomwebnicnetintedugovbiznametestcoorgmilcomnomnetedugovorangecloudpersoindorgcomfinnatnetgovensmincomtourismintlinfox0611oyaorgmilcomnetedugovquickconnectvpnplusnettprequalifymeaddrmyaddrntdllwadlnctvavdrk12orgmilpolbeltelcomwebgennetedutskkepgovbbsbiznameinfocoorgmilcompronetedugovbiznameinfobetter-thanworse-thansakurafromdyndnson-the-webmymailerorgmilurlcomneteduidvgovmydnsgameclubebizmeneacsccogotvorhotelmilmobiinfovodteiflgplkmsmsbcckhincndnvncoztltmkckppzpdprvcvkvlvcrkrkscxuzchernovtsyrivneyaltaodesavolynrovnolutskltdinforgcomnetedugovbizvinnicazhitomirternopilpoltavakropyvnytskyizaporizhzhiasevastopolsebastopoluzhgoroduzhhorodkharkovkharkivvinnytsiakhmelnytskyizaporizhzhecrimeaodessazhytomyrnikolaevcherkassydonetskluganskluhanskkirovogradivano-frankivskchernivtsikrymkievkyivlvivsumyzakarpattiamykolaivcherkasychernigovkhersonchernihivdnipropetrovskdnepropetrovskkhmelnitskiyneacsccogoorusorgmilcomedugovmyspreadshopadimono-ipbarsybarsyonlinelayershiftnh-servretrosnubapicampaignservicelugaffinitylotteryweeklylotteryraffleentrygluglugsmeaccoindependent-inquestnimsitecopropymntltdorgplcschnetgovnhsbarsyindependent-commissionindependent-reviewpolicepublic-inquiryindependent-panelconnhospindependent-inquiryroyal-commissionoraclegovcloudappscck12libaws-govccphxcclibpvtparochchtrcck12libcceatonk12coglibtecgendstmusann-arborwashtenawcck12glghcck12sealibforksolympiabainbridge-islkeyporthoquiamyarrow-pointcentraliaport-townsendsequimport-ludlowrentonsilverdalebremertonredmondsheltonbellevueport-orchardport-angeleskingstonchehalisaberdeengig-harborseattlepoulsboidmdndsddemenegacalamaiavawapailalflnmdcncscohnhmihiviwiriinmntnmocoutvtctmtgunjokakwvnvprarorasmskstxwynykyazisadninsnngosrvis-bymircloudservernamepointtoenscaledland-4-salefreeddnsstuff-4-saleazure-apinoipdatabricksappscloudnsgolffanheliohostazurewebsitesgvorgmilcomgubneteducoorgcomnetd0egvorgmilcomnetedugovmydnsiacostoree12orgmilcomnomwebgobbibrectecnetintedugovraremprendefirminfoartseducok12orgcomnethidnsidacaiiosonlahanamhanoicamauhueorgcompronetintedugovbizbacninhtayninhhoabinhnamdinhtravinhhaiphongvinhlonghaiduongquangnamquangtrithuathienhuequangninhbacgianghaugiangquangbinhsoctrangbentrethanhphohochiminhdanangkontumhatinhkhanhhoathanhhoahealthgialailaocaiyenbaibackanngheanlonganphuyenphuthocanthodaklakdongnainameinfovinhphucdongthapkiengiangtiengiangquangngailaichaulangsonlamdongdaknonghagiangangiangcaobangbinhduongninhthuanbinhthuanbaclieuthaibinhninhbinhbinhdinhtuyenquanghungyenbaria-vungtauthainguyendienbienbinhphuocschbizputerimagine-proxyorgcomnetedugovcloud66advisormypetsdyndnsxn--8dbq2axn--4dbgdty6cxn--5dbhl8dxn--hebda8bxn--80auxn--d1atxn--c1avgxn--o1acxn--o1achxn--90azhxn--55qx5dxn--uc0atvxn--od0algxn--wcvs22dxn--gmqw5axn--mxtq1mxn--12c1fe0brxn--h3cuzk1dixn--12co0c3b4evaxn--12cfi8ixb8lxn--o3cyx2axn--m3ch0j3axn--j1adpxn--90amcxn--90a1afxn--h1ahnxn--j1ael8bxn--h1alizxn--c1avgxn--j1aefxn--80aaa0cvacxn--41acaffeineexeopentunnelbotdashtelebitorgtmaccoagricorgmilnomwebnicngonetaltedugovlawnisschoolgrondaraccoorgmilcomschnetedugovbizinfoprg1-zeropstritonstackitlimazeropsaccoorgmilgovяспборгкоммскбизмирсамаракрымсочиакодпроргобрупрצהלממשלישובאקדמיהองค์กรธุรกิจรัฐบาลศึกษาทหารเน็ต教育網絡組織公司政府個人닷넷한국澳门新闻澳門联通家電嘉里招聘通販닷컴삼성コムგეбгрфеюadcdbdgdidmdsdtdaebedeeegeiejekemenepereseveyegabacalamanauavapaqasazacfbfafgfnfpfwftfbgcgagggegkgngmgsgpgvgtgugilmlnlalclglplsltlhmimjmkmmmomambmcmdmfmgmzmpmsmtmgbbblbsbecccacnclcmcvctcscmhkhghchbhthphshlinikifigiaibicivisikninhnmncnbngnsnpnvntnjoionomobocoaofodorosotoptstttytatbtetgtithtmtltrusuvuaucueuguhulumunufjdjbjtjsjlkmkhkfkdkcktkukskpkgpmpnpkpjpgqaqmqiqsvtvcvbvmvlvrwpwtwzwbwcwawgwkwmwtrsrprgrfrercrbrarnrmrlrkrirhrwsusrssspsgsesbsaslsmsissxmxaxcxuypysylymykygybycyuztzsznzmzkzdzczbzazελευ世界台灣购物公益点看臺灣网络書籍在线网站手机机构大拿游戏信息台湾谷歌慈善商标香港中国餐厅网址中國商城食品微博政务移动集团公司八卦商店健康网店政府时尚佛山中信娱乐广东企业homedepotengineeringاماراتrepublicankuokgroupversicherungchannelcitadelxn--pgbs0dhxn--b4w605ferdstatebankwebsitexn--mgb9awbf亚马逊淡马锡alibabaxn--ngbc5azdxn--mgbbh1axn--45br5cyltoshibabuildworldcloudtradeguideplacespacedancemoviephoneprimesmilebiblestyleappleazurestoreskypegripexn--l1accdrivelottehorsehouseleasechasereisestadahondaomegaaetnaamicaninjanokiamediadeltavodkaedekaosakapizzaslingemailgmailtirolshelltmallfinallegaltotalhotelamfamforumrehabmusicciticricohcoachwatchboschearthfaithirishmiamiarchidubaiguccipraxiみんなストアセールcanonsalononionnikonepsonkoelngreensevencrownikanoradioaudioweiboglobopromogalloyahoociscorodeovideomangobingotokyovolvolottokyotophotosmartsportquesttrusthyattjetztadultcymrubaidutushuxn--kprw13dubankclickblackmerckgroupsharpcheapnowtvxn--h2brj9cקוםհայоргсрбмонкомбелмкдқазрусукрمصرقطرعربكومdadcfdmedwedredphdthdbidpidkrdmsdltdiceonewmeglemoerwecfageacbanbambaaaammakianraspacpaaxawtfbcgaegongingaigvigorgdogdhlmilrilonlaolloluoljllcalgalnflafltelsrlfrllplkimibmcamcombommomifmabbjcbscbwebcabnabtabmlbpubabcbbcnecincpncllcstcwtcpwcnyckfhbzhovhmoiskiobisbitcifyituipinvinwinxincbnbcnmanfangdnmenrenkpnmtnyunrunfununobiojioriohbogmofooboooooacoecoceongoproartistottnttbbtcateatlatvetpetbetnethktmitfitintjothotgotdotbotprueduicujnjyouinknhktdkappsapgapmapdnptopgopllpjmpzipvipripesqtrvdtvitvdevmovgovhivnrwlawsewnewbmwwownowhowdvrftrmtrsfrbarcartvscrseusawsupsubssbsadsddsldssasbmsmlsxxxboxfoxgmxtjxsextaxbuyflydiysoyjoyskypaydaygayxyzanzbizwebersenerpokerlameractortatarsolarລາວคอมไทยtourslocusnexuslexusgiftsbeatsboatspartspressglassswissकॉमनेटtiresgivescodeshomesgamestunesshoescardswalesloansvegastoolsdealsautosparisファッションworkssucksrocksxeroxforexfedexpartylillymoneystudyrugbytoraytoday中文网xn--unup4y天主教飞利浦新加坡enterprises我爱你嘉里大酒店christmasxn--fct429kholdingsxn--8y0a063axn--mgbx4cd0ablifestyleabogadoallstatenetbankكاثوليكxn--s9brj9cxn--gk3at1ebestbuycharityxn--55qx5dmicrosoftpropertybasketballhomegoodscorsicajewelrygallerygrocerysurgerycountrybrusselsverisignferreroxn--czr694bhdfcbankcommbanksoftbankپاكستانپاکستانnextdirectالسعوديهالعليانxn--h2brj9c8cxn--80adxhksshikshaxn--mgbai9azgqp6jcuisinellabarclayscatholicxn--kpry57dcompanyxn--xhq521bblackfridayxn--mgba3a3ejtsandvikxn--d1acj3bacademydownloadمليسياxn--j1amhxn--w4r85el8fhu5dnraipirangaathletaxn--fhbeixn--mgbqly7cvafrzuerichxn--c2br7gஇலங்கைcontractorsxn--io0a7igraphicsinsurancetemasekxn--xkc2al3hye2amotorcyclesphotographydirectoryplumbingxn--vhquvclothingtrainingcleaningwilliamhilllightingxn--mgba3a4f16ashoppingcateringeducationokinawapicturesventuresproductionsxn--9et52uwalmartഭാരതംsupportrealestatecapitalonexn--nqv7fs00emaauspostfloristdentistxn--qxamgodaddybradescobargainsmitsubishikerryhotelsxn--9dbq2axn--3pxu8kimmobilienxn--fjq720axn--mgbtx2bholidaymckinseymadridbusinessbuildershelsinkixn--4gbrimмоскваالسعودیةcoffeedegreelacaixapartnersalsaceofficeabbvievoyageorangegeorgeonlinechromemobilekindlegoogleoraclecircleschulesecureinsurexn--mgba7c0bbn0aestatexn--mgbc0a9azcgcruisehangoutxn--vuq861bxn--42c2d9arexrothfirestoneuniversityxn--nnx388alifeinsuranceextraspaceонлайнvermögensberatersoftwarexn--fiqs8sxn--mgbab2bdxn--w4rs40ltiendaभारतम्africatoyotaotsukasakuracameracreditcardnagoyaconsultingnetworkjunipertheatermonsterprogressivepioneerxn--55qw42gracingdatingvotingvikinglivinggivingxn--bck1b9a5dre4cbrotherweatherjoburgفلسطينlplfinancialxn--clchc0ea0b2g2a9gcdfutbolschoolsocialglobaldentalwoodsidechanelairtelmatteltravelrealtorwebcamstreamభారత్unicomalstomxn--nodexn--6frz82gmuseumfurniturexn--rvc1e0am3exn--mix891faccenturexn--11b4c3dismailineustardiscountquebeccomsecclinicservicesxn--y9a3aqxn--c1avgswatchchurchsearchالاردنmarketingcontacthealthmonashshoujisanofitaipeiamericanexpresssuzukiアマゾンクラウドポイントbhartiグーグルxn--mgberp4a5d4armemorialxn--1qqw23alondonmormoninstitutevisionbostonnortoncouponmaisonamazonvirginberlindesigndurbanolayannissananquanxihuanhitachikaufengardenreisenbayerntechnologydatsunxn--90a3aclatinocasinostudiophysioxn--ngbe9e0apharmacytattootaobaoaramcoexpertreportabbottdirectselectimamatfairwindspictettargetmarketintuittravelersinsurancecreditdupontryukyusuppliesxn--tckwebnpparibasschmidtmerckmsdyodobashirestaurantbridgestonecricketxn--fpcrj9c3dbostikbroadwayattorneylefrakemerckxn--fiq228c5hscareersfarmerswinnersflowersxn--wgbh1cguitarsxn--54b7fta0ccxn--p1acfmakeupgalluplandroverxn--kcrx77d1x4agoldpointbauhausxn--mgbayh7gpahiphopplaystationxn--mgba3a4fraxn--eckvdtc9dhyundaixn--gckr3f0fistanbulticketsmarketsflightschintaireviewsxn--3e0b707ewindowsxn--fiqz9sfinancialxn--fzys8d69uvgmابوظبيdiscoverreviewবাংলাxn--5su34j936bgsgmoscowobserverapartmentsдетиارامكوсайтeurovisionxn--i1b6b1a6a2exn--xkc2dl3a5ee0hتونسموقعبارتڀارتشبكةعمانبيتكعراقreadkredbondlandbandfundfoodprodgoldfordtubecafesafelifeggeeieeefreefagepagegugezonewinememenamegamesaleablebikenikelikecarecbreherefiresaveloveliveblueartedatesitevotecaseluxebofamodaltdaasdatiaayogasinavanashiaasiajavabbvatevavivadatazaraarpacasavisasncfprofmaifsurfgolfdvagsongbingpingwangkpmggoogblogpohlfailcooldellcalldeallidlsarlfilmteamroomfarmimdbarabclubhdfcicbchsbcgmbhrichtechfishdishcashminiernikddiaudiwikimobitaxicitikiwidesiqponskinloanakdnwienopenporncerntownimmolimoolloinfonicofidolegosaxozeroaerovivoautovotomotofastbestresthostpostnextlgbtchatseatgiftmeetdietreitmintrentgentspotscotguruitausohumenucyoubanklinkpinkdclktalksilkbookseekworkrsvpaarpjeepshopcoophelpcamppccwshowbeerstarruhrflirweirhaircarsparsjprshausplusnewstipstoysjobskidsfanspicsdocsxboxamexsexynavycitysonyarmyallybabyplaydeliverybuzzgbizlamborghiniphilipsලංකාಭಾರತfitnessexpresslanxesspfizercenterwalterlawyersoccercareerkosherbrokerlockerdealerdoctorauthorxn--mgbqly7c0a67fbcvermögensberatungjaguarxn--pssy2uxn--hxt814eflickrrepairrogersairbusxn--mgbai9a5eva00beventsyachtsxn--t60b56aভাৰতভারতभारतभारोतviajeshermeshughesxn--j1aefसंगठनvillasଭାରତclaimshotelsભારતzapposphotosjuegoscondostatamotorsgratistennisਭਾਰਤtkmaxxtjmaxxschaeffleryandexxn--80aswgrealtysafetybeautyluxuryxn--3ds443gsupplyfamilyxn--o3cw4hhockeysydneyxn--90aenissayalipayenergycomputeragencyxn--rovu88b電訊盈科xn--gecrj9cstatefarmaccountantaquarelleolayangroup香格里拉xn--p1ai组织机构xn--1ck2e1bxn--mgbt3dhdschwarzموريتانياabudhabinowruzkomatsufujitsuhospitalxn--80asehdbxn--mgbtf8flxn--j6w193gxn--yfro4i67oprudentialxn--flw351ecruisescoursesrecipesxn--e1a4cferrarixn--ses554gxn--wgbl6awatchesstaplessinglesxn--mgbcpq6gpa1axn--otu796dpropertiescreditunionxn--mgbah1a3hjkrdstockholmhisamitsuالسعوديةstcgroupdomainsoriginscouponsbloombergclubmedfroganslimitedxn--80aqecdr1aexposedinternationalequipmentbarclaycardxn--q7ce6axn--mgbi4ecexpprotectionassociatesconstructionxn--cck2b3bxn--45q11candroidfoundationישראלxn--mgbca7dzdocliniqueboutiqueengineerxn--qxa6asystemsfirmdalefashionauctionxn--nqv7finfinitirentalsreliancetradingweddingfishinghostinggentingbookingcookingxn--3hcrj9cgraingerxn--czrs0tdemocratsamsungyokohamaxn--h2breg3evexn--nyqy26alundbeckmelbournevacationssolutionsfrontierxn--vermgensberatung-pwbmanagementxn--cg4bkixn--mgb2ddeslincolnhamburgsandvikcoromantblockbusterairforcebarefootxn--4dbrk0ceinvestmentsfeedbackcommunityxn--ngbrxالبحرينdiamondsamsterdamhealthcareredumbrellaxn--mxtq1mxn--2scrj9cagakhanxn--mgbpl2fhкатоликcaravanசிங்கப்பூர்richardlimortgageamericanfamilyxn--fzc2c9e2cscholarshipssaarlandxn--imr513nvlaanderensamsclubgoodyearkitchenஇந்தியாweatherchannelallfinanzxn--kput3iالسعودیۃxn--90aisxn--efvy88hالجزائرxn--mgbaam7a8hexchangejpmorganxn--tiq49xqyjfidelitysecurityxn--mk1bu44cwanggouxn--fiq64bxn--6qq986b3xlxn--mgbbh1a71exn--80ao21amarshallsxn--5tzm5gtravelerspanasoniclatrobeyoutubeaccountantsxn--rhqv96gxn--cckwcxetdanalyticsxn--ygbi2ammxبازاربھارتسوريةorganicfreseniusسورياxn--9krt00axn--qcka1pmcxn--jlq480n2rgdeloittesciencefinancexn--jvr189mxn--30rr7yhomesensehotmailbaseballfootballleclercboehringerxn--q9jyb4cxn--mix082fاليمنهمراهpolitieسودانايرانایرانnetflixyamaxunxn--lgbbat1ad8jcollegestoragecapetowncolognekerrypropertiesxn--mgbgu82axn--ogbpf8flxn--czru2dwhoswhociprianilasallexn--g2xx48cforsalebanamexaudiblexn--vermgensberater-ctbxn--zfr164bericssonvanguardxn--45brj9cindustriestheatremarriottxn--3bst00mcomparexn--mgberp4a5d4a87gcapitaldigitalالمغربbarcelonashangrilaxn--d1alfcalvinkleinwwwcitysapporokawasakinagoyasendaikobekitakyushuyokohamackjp",i=d.length,j=f.length,k=new Uint32Array(j),l=new Uint32Array(j),m=new Int32Array(i).fill(-1);for(let a=0,b=0;a<i;a+=1)for(let c=e[a];c<e[a+1];c+=1){k[c]=b;let d=b+f[c],e=5381;for(let a=d-1;a>=b;a-=1)e=33*e^h.charCodeAt(a);l[c]=e>>>0,1===f[c]&&42===h.charCodeAt(b)&&(m[a]=c),b=d}let n=-1,o=0,p=0;function q(a,b,c,d){if(f[a]!==d)return!1;let e=k[a];for(let a=0;a<d;a+=1)if(h.charCodeAt(e+a)!==b.charCodeAt(c+a))return!1;return!0}function r(a,b,c,d,f){let g=e[a],h=e[a+1];for(;g<h;){let a=g+h>>>1,e=l[a];if(e<b)g=a+1;else if(e>b)h=a;else{for(let e=a;e>=g&&l[e]===b;e-=1)if(q(e,c,d,f))return e;for(let e=a+1;e<h&&l[e]===b;e+=1)if(q(e,c,d,f))return e;break}}return -1}function s(a,b,c){let e=b,f=a.length,h=5381;n=-1;for(let b=a.length-1;b>=0;b-=1){let i=a.charCodeAt(b);if(46===i){let i=b+1,j=r(e,h>>>0,a,i,f-i);if(-1===j&&(j=m[e]),-1===j)return -1!==n;(d[e=g[j]]&c)!=0&&(n=e,o=i,p=f),f=b,h=5381}else h=33*h^i}let i=r(e,h>>>0,a,0,f);return -1===i&&(i=m[e]),-1!==i&&(d[e=g[i]]&c)!=0&&(n=e,o=0,p=f),-1!==n}function t(a,b,e){if((0,c.fastPathLookup)(a,b,e))return;let f=2*!!b.allowPrivateDomains|!!b.allowIcannDomains;if(s(a,629,f)){e.isIcann=(1&d[n])!=0,e.isPrivate=(2&d[n])!=0,e.publicSuffix=a.slice(p+1);return}if(s(a,625,f)){e.isIcann=(1&d[n])!=0,e.isPrivate=(2&d[n])!=0,e.publicSuffix=a.slice(o);return}e.isIcann=!1,e.isPrivate=!1;let g=a.lastIndexOf(".");e.publicSuffix=-1===g?a:a.slice(g+1)}let u=(0,b.getEmptyResult)();a.s(["getDomain",0,function(a,c){return(0,b.resetResult)(u),(0,b.parseImpl)(a,3,t,c,u).domain}],382982)},695932,(a,b,c)=>{"use strict";var d,e=a.r(500874),f=e.Buffer,g={};for(d in e)e.hasOwnProperty(d)&&"SlowBuffer"!==d&&"Buffer"!==d&&(g[d]=e[d]);var h=g.Buffer={};for(d in f)f.hasOwnProperty(d)&&"allocUnsafe"!==d&&"allocUnsafeSlow"!==d&&(h[d]=f[d]);if(g.Buffer.prototype=f.prototype,h.from&&h.from!==Uint8Array.from||(h.from=function(a,b,c){if("number"==typeof a)throw TypeError('The "value" argument must not be of type number. Received type '+typeof a);if(a&&void 0===a.length)throw TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof a);return f(a,b,c)}),h.alloc||(h.alloc=function(a,b,c){if("number"!=typeof a)throw TypeError('The "size" argument must be of type number. Received type '+typeof a);if(a<0||a>=2*0x40000000)throw RangeError('The value "'+a+'" is invalid for option "size"');var d=f(a);return b&&0!==b.length?"string"==typeof c?d.fill(b,c):d.fill(b):d.fill(0),d}),!g.kStringMaxLength)try{g.kStringMaxLength=process.binding("buffer").kStringMaxLength}catch(a){}!g.constants&&(g.constants={MAX_LENGTH:g.kMaxLength},g.kStringMaxLength&&(g.constants.MAX_STRING_LENGTH=g.kStringMaxLength)),b.exports=g},777305,(a,b,c)=>{"use strict";function d(a,b){this.encoder=a,this.addBOM=!0}function e(a,b){this.decoder=a,this.pass=!1,this.options=b||{}}c.PrependBOM=d,d.prototype.write=function(a){return this.addBOM&&(a="\uFEFF"+a,this.addBOM=!1),this.encoder.write(a)},d.prototype.end=function(){return this.encoder.end()},c.StripBOM=e,e.prototype.write=function(a){var b=this.decoder.write(a);return this.pass||!b||("\uFEFF"===b[0]&&(b=b.slice(1),"function"==typeof this.options.stripBOM&&this.options.stripBOM()),this.pass=!0),b},e.prototype.end=function(){return this.decoder.end()}},898123,(a,b,c)=>{"use strict";var d=void 0===Object.hasOwn?Function.call.bind(Object.prototype.hasOwnProperty):Object.hasOwn;b.exports=function(a,b){for(var c in b)d(b,c)&&(a[c]=b[c])}},360730,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});let d=a.r(500874),e={INVALID_ENCODING:"Invalid encoding provided. Please specify a valid encoding the internal Node.js Buffer supports.",INVALID_SMARTBUFFER_SIZE:"Invalid size provided. Size must be a valid integer greater than zero.",INVALID_SMARTBUFFER_BUFFER:"Invalid Buffer provided in SmartBufferOptions.",INVALID_SMARTBUFFER_OBJECT:"Invalid SmartBufferOptions object supplied to SmartBuffer constructor or factory methods.",INVALID_OFFSET:"An invalid offset value was provided.",INVALID_OFFSET_NON_NUMBER:"An invalid offset value was provided. A numeric value is required.",INVALID_LENGTH:"An invalid length value was provided.",INVALID_LENGTH_NON_NUMBER:"An invalid length value was provived. A numeric value is required.",INVALID_TARGET_OFFSET:"Target offset is beyond the bounds of the internal SmartBuffer data.",INVALID_TARGET_LENGTH:"Specified length value moves cursor beyong the bounds of the internal SmartBuffer data.",INVALID_READ_BEYOND_BOUNDS:"Attempted to read beyond the bounds of the managed data.",INVALID_WRITE_BEYOND_BOUNDS:"Attempted to write beyond the bounds of the managed data."};function f(a){var b;return"number"==typeof a&&isFinite(a)&&"number"==typeof(b=a)&&isFinite(b)&&Math.floor(b)===b}function g(a,b){if("number"==typeof a){if(!f(a)||a<0)throw Error(b?e.INVALID_OFFSET:e.INVALID_LENGTH)}else throw Error(b?e.INVALID_OFFSET_NON_NUMBER:e.INVALID_LENGTH_NON_NUMBER)}c.ERRORS=e,c.checkEncoding=function(a){if(!d.Buffer.isEncoding(a))throw Error(e.INVALID_ENCODING)},c.isFiniteInteger=f,c.checkLengthValue=function(a){g(a,!1)},c.checkOffsetValue=function(a){g(a,!0)},c.checkTargetOffset=function(a,b){if(a<0||a>b.length)throw Error(e.INVALID_TARGET_OFFSET)},c.bigIntAndBufferInt64Check=function(a){if("u"<typeof BigInt)throw Error("Platform does not support JS BigInt type.");if(void 0===d.Buffer.prototype[a])throw Error(`Platform does not support Buffer.prototype.${a}.`)}},948648,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});let d=a.r(360730);c.SmartBuffer=class a{constructor(b){if(this.length=0,this._encoding="utf8",this._writeOffset=0,this._readOffset=0,a.isSmartBufferOptions(b))if(b.encoding&&(d.checkEncoding(b.encoding),this._encoding=b.encoding),b.size)if(d.isFiniteInteger(b.size)&&b.size>0)this._buff=Buffer.allocUnsafe(b.size);else throw Error(d.ERRORS.INVALID_SMARTBUFFER_SIZE);else if(b.buff)if(Buffer.isBuffer(b.buff))this._buff=b.buff,this.length=b.buff.length;else throw Error(d.ERRORS.INVALID_SMARTBUFFER_BUFFER);else this._buff=Buffer.allocUnsafe(4096);else{if(void 0!==b)throw Error(d.ERRORS.INVALID_SMARTBUFFER_OBJECT);this._buff=Buffer.allocUnsafe(4096)}}static fromSize(a,b){return new this({size:a,encoding:b})}static fromBuffer(a,b){return new this({buff:a,encoding:b})}static fromOptions(a){return new this(a)}static isSmartBufferOptions(a){return a&&(void 0!==a.encoding||void 0!==a.size||void 0!==a.buff)}readInt8(a){return this._readNumberValue(Buffer.prototype.readInt8,1,a)}readInt16BE(a){return this._readNumberValue(Buffer.prototype.readInt16BE,2,a)}readInt16LE(a){return this._readNumberValue(Buffer.prototype.readInt16LE,2,a)}readInt32BE(a){return this._readNumberValue(Buffer.prototype.readInt32BE,4,a)}readInt32LE(a){return this._readNumberValue(Buffer.prototype.readInt32LE,4,a)}readBigInt64BE(a){return d.bigIntAndBufferInt64Check("readBigInt64BE"),this._readNumberValue(Buffer.prototype.readBigInt64BE,8,a)}readBigInt64LE(a){return d.bigIntAndBufferInt64Check("readBigInt64LE"),this._readNumberValue(Buffer.prototype.readBigInt64LE,8,a)}writeInt8(a,b){return this._writeNumberValue(Buffer.prototype.writeInt8,1,a,b),this}insertInt8(a,b){return this._insertNumberValue(Buffer.prototype.writeInt8,1,a,b)}writeInt16BE(a,b){return this._writeNumberValue(Buffer.prototype.writeInt16BE,2,a,b)}insertInt16BE(a,b){return this._insertNumberValue(Buffer.prototype.writeInt16BE,2,a,b)}writeInt16LE(a,b){return this._writeNumberValue(Buffer.prototype.writeInt16LE,2,a,b)}insertInt16LE(a,b){return this._insertNumberValue(Buffer.prototype.writeInt16LE,2,a,b)}writeInt32BE(a,b){return this._writeNumberValue(Buffer.prototype.writeInt32BE,4,a,b)}insertInt32BE(a,b){return this._insertNumberValue(Buffer.prototype.writeInt32BE,4,a,b)}writeInt32LE(a,b){return this._writeNumberValue(Buffer.prototype.writeInt32LE,4,a,b)}insertInt32LE(a,b){return this._insertNumberValue(Buffer.prototype.writeInt32LE,4,a,b)}writeBigInt64BE(a,b){return d.bigIntAndBufferInt64Check("writeBigInt64BE"),this._writeNumberValue(Buffer.prototype.writeBigInt64BE,8,a,b)}insertBigInt64BE(a,b){return d.bigIntAndBufferInt64Check("writeBigInt64BE"),this._insertNumberValue(Buffer.prototype.writeBigInt64BE,8,a,b)}writeBigInt64LE(a,b){return d.bigIntAndBufferInt64Check("writeBigInt64LE"),this._writeNumberValue(Buffer.prototype.writeBigInt64LE,8,a,b)}insertBigInt64LE(a,b){return d.bigIntAndBufferInt64Check("writeBigInt64LE"),this._insertNumberValue(Buffer.prototype.writeBigInt64LE,8,a,b)}readUInt8(a){return this._readNumberValue(Buffer.prototype.readUInt8,1,a)}readUInt16BE(a){return this._readNumberValue(Buffer.prototype.readUInt16BE,2,a)}readUInt16LE(a){return this._readNumberValue(Buffer.prototype.readUInt16LE,2,a)}readUInt32BE(a){return this._readNumberValue(Buffer.prototype.readUInt32BE,4,a)}readUInt32LE(a){return this._readNumberValue(Buffer.prototype.readUInt32LE,4,a)}readBigUInt64BE(a){return d.bigIntAndBufferInt64Check("readBigUInt64BE"),this._readNumberValue(Buffer.prototype.readBigUInt64BE,8,a)}readBigUInt64LE(a){return d.bigIntAndBufferInt64Check("readBigUInt64LE"),this._readNumberValue(Buffer.prototype.readBigUInt64LE,8,a)}writeUInt8(a,b){return this._writeNumberValue(Buffer.prototype.writeUInt8,1,a,b)}insertUInt8(a,b){return this._insertNumberValue(Buffer.prototype.writeUInt8,1,a,b)}writeUInt16BE(a,b){return this._writeNumberValue(Buffer.prototype.writeUInt16BE,2,a,b)}insertUInt16BE(a,b){return this._insertNumberValue(Buffer.prototype.writeUInt16BE,2,a,b)}writeUInt16LE(a,b){return this._writeNumberValue(Buffer.prototype.writeUInt16LE,2,a,b)}insertUInt16LE(a,b){return this._insertNumberValue(Buffer.prototype.writeUInt16LE,2,a,b)}writeUInt32BE(a,b){return this._writeNumberValue(Buffer.prototype.writeUInt32BE,4,a,b)}insertUInt32BE(a,b){return this._insertNumberValue(Buffer.prototype.writeUInt32BE,4,a,b)}writeUInt32LE(a,b){return this._writeNumberValue(Buffer.prototype.writeUInt32LE,4,a,b)}insertUInt32LE(a,b){return this._insertNumberValue(Buffer.prototype.writeUInt32LE,4,a,b)}writeBigUInt64BE(a,b){return d.bigIntAndBufferInt64Check("writeBigUInt64BE"),this._writeNumberValue(Buffer.prototype.writeBigUInt64BE,8,a,b)}insertBigUInt64BE(a,b){return d.bigIntAndBufferInt64Check("writeBigUInt64BE"),this._insertNumberValue(Buffer.prototype.writeBigUInt64BE,8,a,b)}writeBigUInt64LE(a,b){return d.bigIntAndBufferInt64Check("writeBigUInt64LE"),this._writeNumberValue(Buffer.prototype.writeBigUInt64LE,8,a,b)}insertBigUInt64LE(a,b){return d.bigIntAndBufferInt64Check("writeBigUInt64LE"),this._insertNumberValue(Buffer.prototype.writeBigUInt64LE,8,a,b)}readFloatBE(a){return this._readNumberValue(Buffer.prototype.readFloatBE,4,a)}readFloatLE(a){return this._readNumberValue(Buffer.prototype.readFloatLE,4,a)}writeFloatBE(a,b){return this._writeNumberValue(Buffer.prototype.writeFloatBE,4,a,b)}insertFloatBE(a,b){return this._insertNumberValue(Buffer.prototype.writeFloatBE,4,a,b)}writeFloatLE(a,b){return this._writeNumberValue(Buffer.prototype.writeFloatLE,4,a,b)}insertFloatLE(a,b){return this._insertNumberValue(Buffer.prototype.writeFloatLE,4,a,b)}readDoubleBE(a){return this._readNumberValue(Buffer.prototype.readDoubleBE,8,a)}readDoubleLE(a){return this._readNumberValue(Buffer.prototype.readDoubleLE,8,a)}writeDoubleBE(a,b){return this._writeNumberValue(Buffer.prototype.writeDoubleBE,8,a,b)}insertDoubleBE(a,b){return this._insertNumberValue(Buffer.prototype.writeDoubleBE,8,a,b)}writeDoubleLE(a,b){return this._writeNumberValue(Buffer.prototype.writeDoubleLE,8,a,b)}insertDoubleLE(a,b){return this._insertNumberValue(Buffer.prototype.writeDoubleLE,8,a,b)}readString(a,b){let c;"number"==typeof a?(d.checkLengthValue(a),c=Math.min(a,this.length-this._readOffset)):(b=a,c=this.length-this._readOffset),void 0!==b&&d.checkEncoding(b);let e=this._buff.slice(this._readOffset,this._readOffset+c).toString(b||this._encoding);return this._readOffset+=c,e}insertString(a,b,c){return d.checkOffsetValue(b),this._handleString(a,!0,b,c)}writeString(a,b,c){return this._handleString(a,!1,b,c)}readStringNT(a){void 0!==a&&d.checkEncoding(a);let b=this.length;for(let a=this._readOffset;a<this.length;a++)if(0===this._buff[a]){b=a;break}let c=this._buff.slice(this._readOffset,b);return this._readOffset=b+1,c.toString(a||this._encoding)}insertStringNT(a,b,c){return d.checkOffsetValue(b),this.insertString(a,b,c),this.insertUInt8(0,b+a.length),this}writeStringNT(a,b,c){return this.writeString(a,b,c),this.writeUInt8(0,"number"==typeof b?b+a.length:this.writeOffset),this}readBuffer(a){void 0!==a&&d.checkLengthValue(a);let b="number"==typeof a?a:this.length,c=Math.min(this.length,this._readOffset+b),e=this._buff.slice(this._readOffset,c);return this._readOffset=c,e}insertBuffer(a,b){return d.checkOffsetValue(b),this._handleBuffer(a,!0,b)}writeBuffer(a,b){return this._handleBuffer(a,!1,b)}readBufferNT(){let a=this.length;for(let b=this._readOffset;b<this.length;b++)if(0===this._buff[b]){a=b;break}let b=this._buff.slice(this._readOffset,a);return this._readOffset=a+1,b}insertBufferNT(a,b){return d.checkOffsetValue(b),this.insertBuffer(a,b),this.insertUInt8(0,b+a.length),this}writeBufferNT(a,b){return void 0!==b&&d.checkOffsetValue(b),this.writeBuffer(a,b),this.writeUInt8(0,"number"==typeof b?b+a.length:this._writeOffset),this}clear(){return this._writeOffset=0,this._readOffset=0,this.length=0,this}remaining(){return this.length-this._readOffset}get readOffset(){return this._readOffset}set readOffset(a){d.checkOffsetValue(a),d.checkTargetOffset(a,this),this._readOffset=a}get writeOffset(){return this._writeOffset}set writeOffset(a){d.checkOffsetValue(a),d.checkTargetOffset(a,this),this._writeOffset=a}get encoding(){return this._encoding}set encoding(a){d.checkEncoding(a),this._encoding=a}get internalBuffer(){return this._buff}toBuffer(){return this._buff.slice(0,this.length)}toString(a){let b="string"==typeof a?a:this._encoding;return d.checkEncoding(b),this._buff.toString(b,0,this.length)}destroy(){return this.clear(),this}_handleString(a,b,c,e){let f=this._writeOffset,g=this._encoding;"number"==typeof c?f=c:"string"==typeof c&&(d.checkEncoding(c),g=c),"string"==typeof e&&(d.checkEncoding(e),g=e);let h=Buffer.byteLength(a,g);return b?this.ensureInsertable(h,f):this._ensureWriteable(h,f),this._buff.write(a,f,h,g),b?this._writeOffset+=h:"number"==typeof c?this._writeOffset=Math.max(this._writeOffset,f+h):this._writeOffset+=h,this}_handleBuffer(a,b,c){let d="number"==typeof c?c:this._writeOffset;return b?this.ensureInsertable(a.length,d):this._ensureWriteable(a.length,d),a.copy(this._buff,d),b?this._writeOffset+=a.length:"number"==typeof c?this._writeOffset=Math.max(this._writeOffset,d+a.length):this._writeOffset+=a.length,this}ensureReadable(a,b){let c=this._readOffset;if(void 0!==b&&(d.checkOffsetValue(b),c=b),c<0||c+a>this.length)throw Error(d.ERRORS.INVALID_READ_BEYOND_BOUNDS)}ensureInsertable(a,b){d.checkOffsetValue(b),this._ensureCapacity(this.length+a),b<this.length&&this._buff.copy(this._buff,b+a,b,this._buff.length),b+a>this.length?this.length=b+a:this.length+=a}_ensureWriteable(a,b){let c="number"==typeof b?b:this._writeOffset;this._ensureCapacity(c+a),c+a>this.length&&(this.length=c+a)}_ensureCapacity(a){let b=this._buff.length;if(a>b){let c=this._buff,d=3*b/2+1;d<a&&(d=a),this._buff=Buffer.allocUnsafe(d),c.copy(this._buff,0,0,b)}}_readNumberValue(a,b,c){this.ensureReadable(b,c);let d=a.call(this._buff,"number"==typeof c?c:this._readOffset);return void 0===c&&(this._readOffset+=b),d}_insertNumberValue(a,b,c,e){return d.checkOffsetValue(e),this.ensureInsertable(b,e),a.call(this._buff,c,e),this._writeOffset+=b,this}_writeNumberValue(a,b,c,e){if("number"==typeof e){if(e<0)throw Error(d.ERRORS.INVALID_WRITE_BEYOND_BOUNDS);d.checkOffsetValue(e)}let f="number"==typeof e?e:this._writeOffset;return this._ensureWriteable(b,f),a.call(this._buff,c,f),"number"==typeof e?this._writeOffset=Math.max(this._writeOffset,f+b):this._writeOffset+=b,this}}},435416,(a,b,c)=>{"use strict";var d,e,f,g,h,i,j,k,l,m,n,o;Object.defineProperty(c,"__esModule",{value:!0}),c.SOCKS5_NO_ACCEPTABLE_AUTH=c.SOCKS5_CUSTOM_AUTH_END=c.SOCKS5_CUSTOM_AUTH_START=c.SOCKS_INCOMING_PACKET_SIZES=c.SocksClientState=c.Socks5Response=c.Socks5HostType=c.Socks5Auth=c.Socks4Response=c.SocksCommand=c.ERRORS=c.DEFAULT_TIMEOUT=void 0,c.DEFAULT_TIMEOUT=3e4,c.ERRORS={InvalidSocksCommand:"An invalid SOCKS command was provided. Valid options are connect, bind, and associate.",InvalidSocksCommandForOperation:"An invalid SOCKS command was provided. Only a subset of commands are supported for this operation.",InvalidSocksCommandChain:"An invalid SOCKS command was provided. Chaining currently only supports the connect command.",InvalidSocksClientOptionsDestination:"An invalid destination host was provided.",InvalidSocksClientOptionsExistingSocket:"An invalid existing socket was provided. This should be an instance of stream.Duplex.",InvalidSocksClientOptionsProxy:"Invalid SOCKS proxy details were provided.",InvalidSocksClientOptionsTimeout:"An invalid timeout value was provided. Please enter a value above 0 (in ms).",InvalidSocksClientOptionsProxiesLength:"At least two socks proxies must be provided for chaining.",InvalidSocksClientOptionsCustomAuthRange:"Custom auth must be a value between 0x80 and 0xFE.",InvalidSocksClientOptionsCustomAuthOptions:"When a custom_auth_method is provided, custom_auth_request_handler, custom_auth_response_size, and custom_auth_response_handler must also be provided and valid.",NegotiationError:"Negotiation error",SocketClosed:"Socket closed",ProxyConnectionTimedOut:"Proxy connection timed out",InternalError:"SocksClient internal error (this should not happen)",InvalidSocks4HandshakeResponse:"Received invalid Socks4 handshake response",Socks4ProxyRejectedConnection:"Socks4 Proxy rejected connection",InvalidSocks4IncomingConnectionResponse:"Socks4 invalid incoming connection response",Socks4ProxyRejectedIncomingBoundConnection:"Socks4 Proxy rejected incoming bound connection",InvalidSocks5InitialHandshakeResponse:"Received invalid Socks5 initial handshake response",InvalidSocks5IntiailHandshakeSocksVersion:"Received invalid Socks5 initial handshake (invalid socks version)",InvalidSocks5InitialHandshakeNoAcceptedAuthType:"Received invalid Socks5 initial handshake (no accepted authentication type)",InvalidSocks5InitialHandshakeUnknownAuthType:"Received invalid Socks5 initial handshake (unknown authentication type)",Socks5AuthenticationFailed:"Socks5 Authentication failed",InvalidSocks5FinalHandshake:"Received invalid Socks5 final handshake response",InvalidSocks5FinalHandshakeRejected:"Socks5 proxy rejected connection",InvalidSocks5IncomingConnectionResponse:"Received invalid Socks5 incoming connection response",Socks5ProxyRejectedIncomingBoundConnection:"Socks5 Proxy rejected incoming bound connection"},c.SOCKS_INCOMING_PACKET_SIZES={Socks5InitialHandshakeResponse:2,Socks5UserPassAuthenticationResponse:2,Socks5ResponseHeader:5,Socks5ResponseIPv4:10,Socks5ResponseIPv6:22,Socks5ResponseHostname:a=>a+7,Socks4Response:8},(j=d||(c.SocksCommand=d={}))[j.connect=1]="connect",j[j.bind=2]="bind",j[j.associate=3]="associate",(k=e||(c.Socks4Response=e={}))[k.Granted=90]="Granted",k[k.Failed=91]="Failed",k[k.Rejected=92]="Rejected",k[k.RejectedIdent=93]="RejectedIdent",(l=f||(c.Socks5Auth=f={}))[l.NoAuth=0]="NoAuth",l[l.GSSApi=1]="GSSApi",l[l.UserPass=2]="UserPass",c.SOCKS5_CUSTOM_AUTH_START=128,c.SOCKS5_CUSTOM_AUTH_END=254,c.SOCKS5_NO_ACCEPTABLE_AUTH=255,(m=g||(c.Socks5Response=g={}))[m.Granted=0]="Granted",m[m.Failure=1]="Failure",m[m.NotAllowed=2]="NotAllowed",m[m.NetworkUnreachable=3]="NetworkUnreachable",m[m.HostUnreachable=4]="HostUnreachable",m[m.ConnectionRefused=5]="ConnectionRefused",m[m.TTLExpired=6]="TTLExpired",m[m.CommandNotSupported=7]="CommandNotSupported",m[m.AddressNotSupported=8]="AddressNotSupported",(n=h||(c.Socks5HostType=h={}))[n.IPv4=1]="IPv4",n[n.Hostname=3]="Hostname",n[n.IPv6=4]="IPv6",(o=i||(c.SocksClientState=i={}))[o.Created=0]="Created",o[o.Connecting=1]="Connecting",o[o.Connected=2]="Connected",o[o.SentInitialHandshake=3]="SentInitialHandshake",o[o.ReceivedInitialHandshakeResponse=4]="ReceivedInitialHandshakeResponse",o[o.SentAuthentication=5]="SentAuthentication",o[o.ReceivedAuthenticationResponse=6]="ReceivedAuthenticationResponse",o[o.SentFinalHandshake=7]="SentFinalHandshake",o[o.ReceivedFinalResponse=8]="ReceivedFinalResponse",o[o.BoundWaitingForConnection=9]="BoundWaitingForConnection",o[o.Established=10]="Established",o[o.Disconnected=11]="Disconnected",o[o.Error=99]="Error"},564939,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.SocksClientError=void 0,c.shuffleArray=function(a){for(let b=a.length-1;b>0;b--){let c=Math.floor(Math.random()*(b+1));[a[b],a[c]]=[a[c],a[b]]}},c.SocksClientError=class extends Error{constructor(a,b){super(a),this.options=b}}},610199,a=>{"use strict";var b=function(a,c){return(b=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(a,b){a.__proto__=b}||function(a,b){for(var c in b)Object.prototype.hasOwnProperty.call(b,c)&&(a[c]=b[c])})(a,c)};function c(a,c){if("function"!=typeof c&&null!==c)throw TypeError("Class extends value "+String(c)+" is not a constructor or null");function d(){this.constructor=a}b(a,c),a.prototype=null===c?Object.create(c):(d.prototype=c.prototype,new d)}var d=function(){return(d=Object.assign||function(a){for(var b,c=1,d=arguments.length;c<d;c++)for(var e in b=arguments[c])Object.prototype.hasOwnProperty.call(b,e)&&(a[e]=b[e]);return a}).apply(this,arguments)};function e(a,b){var c={};for(var d in a)Object.prototype.hasOwnProperty.call(a,d)&&0>b.indexOf(d)&&(c[d]=a[d]);if(null!=a&&"function"==typeof Object.getOwnPropertySymbols)for(var e=0,d=Object.getOwnPropertySymbols(a);e<d.length;e++)0>b.indexOf(d[e])&&Object.prototype.propertyIsEnumerable.call(a,d[e])&&(c[d[e]]=a[d[e]]);return c}function f(a,b,c,d){var e,f=arguments.length,g=f<3?b:null===d?d=Object.getOwnPropertyDescriptor(b,c):d;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)g=Reflect.decorate(a,b,c,d);else for(var h=a.length-1;h>=0;h--)(e=a[h])&&(g=(f<3?e(g):f>3?e(b,c,g):e(b,c))||g);return f>3&&g&&Object.defineProperty(b,c,g),g}function g(a,b){return function(c,d){b(c,d,a)}}function h(a,b,c,d,e,f){function g(a){if(void 0!==a&&"function"!=typeof a)throw TypeError("Function expected");return a}for(var h,i=d.kind,j="getter"===i?"get":"setter"===i?"set":"value",k=!b&&a?d.static?a:a.prototype:null,l=b||(k?Object.getOwnPropertyDescriptor(k,d.name):{}),m=!1,n=c.length-1;n>=0;n--){var o={};for(var p in d)o[p]="access"===p?{}:d[p];for(var p in d.access)o.access[p]=d.access[p];o.addInitializer=function(a){if(m)throw TypeError("Cannot add initializers after decoration has completed");f.push(g(a||null))};var q=(0,c[n])("accessor"===i?{get:l.get,set:l.set}:l[j],o);if("accessor"===i){if(void 0===q)continue;if(null===q||"object"!=typeof q)throw TypeError("Object expected");(h=g(q.get))&&(l.get=h),(h=g(q.set))&&(l.set=h),(h=g(q.init))&&e.unshift(h)}else(h=g(q))&&("field"===i?e.unshift(h):l[j]=h)}k&&Object.defineProperty(k,d.name,l),m=!0}function i(a,b,c){for(var d=arguments.length>2,e=0;e<b.length;e++)c=d?b[e].call(a,c):b[e].call(a);return d?c:void 0}function j(a){return"symbol"==typeof a?a:"".concat(a)}function k(a,b,c){return"symbol"==typeof b&&(b=b.description?"[".concat(b.description,"]"):""),Object.defineProperty(a,"name",{configurable:!0,value:c?"".concat(c," ",b):b})}function l(a,b){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(a,b)}function m(a,b,c,d){return new(c||(c=Promise))(function(e,f){function g(a){try{i(d.next(a))}catch(a){f(a)}}function h(a){try{i(d.throw(a))}catch(a){f(a)}}function i(a){var b;a.done?e(a.value):((b=a.value)instanceof c?b:new c(function(a){a(b)})).then(g,h)}i((d=d.apply(a,b||[])).next())})}function n(a,b){var c,d,e,f={label:0,sent:function(){if(1&e[0])throw e[1];return e[1]},trys:[],ops:[]},g=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return g.next=h(0),g.throw=h(1),g.return=h(2),"function"==typeof Symbol&&(g[Symbol.iterator]=function(){return this}),g;function h(h){return function(i){var j=[h,i];if(c)throw TypeError("Generator is already executing.");for(;g&&(g=0,j[0]&&(f=0)),f;)try{if(c=1,d&&(e=2&j[0]?d.return:j[0]?d.throw||((e=d.return)&&e.call(d),0):d.next)&&!(e=e.call(d,j[1])).done)return e;switch(d=0,e&&(j=[2&j[0],e.value]),j[0]){case 0:case 1:e=j;break;case 4:return f.label++,{value:j[1],done:!1};case 5:f.label++,d=j[1],j=[0];continue;case 7:j=f.ops.pop(),f.trys.pop();continue;default:if(!(e=(e=f.trys).length>0&&e[e.length-1])&&(6===j[0]||2===j[0])){f=0;continue}if(3===j[0]&&(!e||j[1]>e[0]&&j[1]<e[3])){f.label=j[1];break}if(6===j[0]&&f.label<e[1]){f.label=e[1],e=j;break}if(e&&f.label<e[2]){f.label=e[2],f.ops.push(j);break}e[2]&&f.ops.pop(),f.trys.pop();continue}j=b.call(a,f)}catch(a){j=[6,a],d=0}finally{c=e=0}if(5&j[0])throw j[1];return{value:j[0]?j[1]:void 0,done:!0}}}}var o=Object.create?function(a,b,c,d){void 0===d&&(d=c);var e=Object.getOwnPropertyDescriptor(b,c);(!e||("get"in e?!b.__esModule:e.writable||e.configurable))&&(e={enumerable:!0,get:function(){return b[c]}}),Object.defineProperty(a,d,e)}:function(a,b,c,d){void 0===d&&(d=c),a[d]=b[c]};function p(a,b){for(var c in a)"default"===c||Object.prototype.hasOwnProperty.call(b,c)||o(b,a,c)}function q(a){var b="function"==typeof Symbol&&Symbol.iterator,c=b&&a[b],d=0;if(c)return c.call(a);if(a&&"number"==typeof a.length)return{next:function(){return a&&d>=a.length&&(a=void 0),{value:a&&a[d++],done:!a}}};throw TypeError(b?"Object is not iterable.":"Symbol.iterator is not defined.")}function r(a,b){var c="function"==typeof Symbol&&a[Symbol.iterator];if(!c)return a;var d,e,f=c.call(a),g=[];try{for(;(void 0===b||b-- >0)&&!(d=f.next()).done;)g.push(d.value)}catch(a){e={error:a}}finally{try{d&&!d.done&&(c=f.return)&&c.call(f)}finally{if(e)throw e.error}}return g}function s(){for(var a=[],b=0;b<arguments.length;b++)a=a.concat(r(arguments[b]));return a}function t(){for(var a=0,b=0,c=arguments.length;b<c;b++)a+=arguments[b].length;for(var d=Array(a),e=0,b=0;b<c;b++)for(var f=arguments[b],g=0,h=f.length;g<h;g++,e++)d[e]=f[g];return d}function u(a,b,c){if(c||2==arguments.length)for(var d,e=0,f=b.length;e<f;e++)!d&&e in b||(d||(d=Array.prototype.slice.call(b,0,e)),d[e]=b[e]);return a.concat(d||Array.prototype.slice.call(b))}function v(a){return this instanceof v?(this.v=a,this):new v(a)}function w(a,b,c){if(!Symbol.asyncIterator)throw TypeError("Symbol.asyncIterator is not defined.");var d,e=c.apply(a,b||[]),f=[];return d=Object.create(("function"==typeof AsyncIterator?AsyncIterator:Object).prototype),g("next"),g("throw"),g("return",function(a){return function(b){return Promise.resolve(b).then(a,j)}}),d[Symbol.asyncIterator]=function(){return this},d;function g(a,b){e[a]&&(d[a]=function(b){return new Promise(function(c,d){f.push([a,b,c,d])>1||h(a,b)})},b&&(d[a]=b(d[a])))}function h(a,b){try{var c;(c=e[a](b)).value instanceof v?Promise.resolve(c.value.v).then(i,j):k(f[0][2],c)}catch(a){k(f[0][3],a)}}function i(a){h("next",a)}function j(a){h("throw",a)}function k(a,b){a(b),f.shift(),f.length&&h(f[0][0],f[0][1])}}function x(a){var b,c;return b={},d("next"),d("throw",function(a){throw a}),d("return"),b[Symbol.iterator]=function(){return this},b;function d(d,e){b[d]=a[d]?function(b){return(c=!c)?{value:v(a[d](b)),done:!1}:e?e(b):b}:e}}function y(a){if(!Symbol.asyncIterator)throw TypeError("Symbol.asyncIterator is not defined.");var b,c=a[Symbol.asyncIterator];return c?c.call(a):(a=q(a),b={},d("next"),d("throw"),d("return"),b[Symbol.asyncIterator]=function(){return this},b);function d(c){b[c]=a[c]&&function(b){return new Promise(function(d,e){var f,g,h;f=d,g=e,h=(b=a[c](b)).done,Promise.resolve(b.value).then(function(a){f({value:a,done:h})},g)})}}}function z(a,b){return Object.defineProperty?Object.defineProperty(a,"raw",{value:b}):a.raw=b,a}var A=Object.create?function(a,b){Object.defineProperty(a,"default",{enumerable:!0,value:b})}:function(a,b){a.default=b},B=function(a){return(B=Object.getOwnPropertyNames||function(a){var b=[];for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[b.length]=c);return b})(a)};function C(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c=B(a),d=0;d<c.length;d++)"default"!==c[d]&&o(b,a,c[d]);return A(b,a),b}function D(a){return a&&a.__esModule?a:{default:a}}function E(a,b,c,d){if("a"===c&&!d)throw TypeError("Private accessor was defined without a getter");if("function"==typeof b?a!==b||!d:!b.has(a))throw TypeError("Cannot read private member from an object whose class did not declare it");return"m"===c?d:"a"===c?d.call(a):d?d.value:b.get(a)}function F(a,b,c,d,e){if("m"===d)throw TypeError("Private method is not writable");if("a"===d&&!e)throw TypeError("Private accessor was defined without a setter");if("function"==typeof b?a!==b||!e:!b.has(a))throw TypeError("Cannot write private member to an object whose class did not declare it");return"a"===d?e.call(a,c):e?e.value=c:b.set(a,c),c}function G(a,b){if(null===b||"object"!=typeof b&&"function"!=typeof b)throw TypeError("Cannot use 'in' operator on non-object");return"function"==typeof a?b===a:a.has(b)}function H(a,b,c){if(null!=b){var d,e;if("object"!=typeof b&&"function"!=typeof b)throw TypeError("Object expected.");if(c){if(!Symbol.asyncDispose)throw TypeError("Symbol.asyncDispose is not defined.");d=b[Symbol.asyncDispose]}if(void 0===d){if(!Symbol.dispose)throw TypeError("Symbol.dispose is not defined.");d=b[Symbol.dispose],c&&(e=d)}if("function"!=typeof d)throw TypeError("Object not disposable.");e&&(d=function(){try{e.call(this)}catch(a){return Promise.reject(a)}}),a.stack.push({value:b,dispose:d,async:c})}else c&&a.stack.push({async:!0});return b}var I="function"==typeof SuppressedError?SuppressedError:function(a,b,c){var d=Error(c);return d.name="SuppressedError",d.error=a,d.suppressed=b,d};function J(a){function b(b){a.error=a.hasError?new I(b,a.error,"An error was suppressed during disposal."):b,a.hasError=!0}var c,d=0;return function e(){for(;c=a.stack.pop();)try{if(!c.async&&1===d)return d=0,a.stack.push(c),Promise.resolve().then(e);if(c.dispose){var f=c.dispose.call(c.value);if(c.async)return d|=2,Promise.resolve(f).then(e,function(a){return b(a),e()})}else d|=1}catch(a){b(a)}if(1===d)return a.hasError?Promise.reject(a.error):Promise.resolve();if(a.hasError)throw a.error}()}function K(a,b){return"string"==typeof a&&/^\.\.?\//.test(a)?a.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i,function(a,c,d,e,f){return c?b?".jsx":".js":!d||e&&f?d+e+"."+f.toLowerCase()+"js":a}):a}let L={__extends:c,__assign:d,__rest:e,__decorate:f,__param:g,__esDecorate:h,__runInitializers:i,__propKey:j,__setFunctionName:k,__metadata:l,__awaiter:m,__generator:n,__createBinding:o,__exportStar:p,__values:q,__read:r,__spread:s,__spreadArrays:t,__spreadArray:u,__await:v,__asyncGenerator:w,__asyncDelegator:x,__asyncValues:y,__makeTemplateObject:z,__importStar:C,__importDefault:D,__classPrivateFieldGet:E,__classPrivateFieldSet:F,__classPrivateFieldIn:G,__addDisposableResource:H,__disposeResources:J,__rewriteRelativeImportExtension:K};a.s(["__addDisposableResource",0,H,"__assign",()=>d,"__asyncDelegator",0,x,"__asyncGenerator",0,w,"__asyncValues",0,y,"__await",0,v,"__awaiter",0,m,"__classPrivateFieldGet",0,E,"__classPrivateFieldIn",0,G,"__classPrivateFieldSet",0,F,"__createBinding",0,o,"__decorate",0,f,"__disposeResources",0,J,"__esDecorate",0,h,"__exportStar",0,p,"__extends",0,c,"__generator",0,n,"__importDefault",0,D,"__importStar",0,C,"__makeTemplateObject",0,z,"__metadata",0,l,"__param",0,g,"__propKey",0,j,"__read",0,r,"__rest",0,e,"__rewriteRelativeImportExtension",0,K,"__runInitializers",0,i,"__setFunctionName",0,k,"__spread",0,s,"__spreadArray",0,u,"__spreadArrays",0,t,"__values",0,q,"default",0,L])},753194,a=>{"use strict";var b,c;class d{static isArrayBuffer(a){return"[object ArrayBuffer]"===Object.prototype.toString.call(a)}static toArrayBuffer(a){return this.isArrayBuffer(a)?a:a.byteLength===a.buffer.byteLength||0===a.byteOffset&&a.byteLength===a.buffer.byteLength?a.buffer:this.toUint8Array(a.buffer).slice(a.byteOffset,a.byteOffset+a.byteLength).buffer}static toUint8Array(a){return this.toView(a,Uint8Array)}static toView(a,b){if(a.constructor===b)return a;if(this.isArrayBuffer(a))return new b(a);if(this.isArrayBufferView(a))return new b(a.buffer,a.byteOffset,a.byteLength);throw TypeError("The provided value is not of type '(ArrayBuffer or ArrayBufferView)'")}static isBufferSource(a){return this.isArrayBufferView(a)||this.isArrayBuffer(a)}static isArrayBufferView(a){return ArrayBuffer.isView(a)||a&&this.isArrayBuffer(a.buffer)}static isEqual(a,b){let c=d.toUint8Array(a),e=d.toUint8Array(b);if(c.length!==e.byteLength)return!1;for(let a=0;a<c.length;a++)if(c[a]!==e[a])return!1;return!0}static concat(...a){let b;b=!Array.isArray(a[0])||a[1]instanceof Function?Array.isArray(a[0])&&a[1]instanceof Function?a[0]:a[a.length-1]instanceof Function?a.slice(0,a.length-1):a:a[0];let c=0;for(let a of b)c+=a.byteLength;let d=new Uint8Array(c),e=0;for(let a of b){let b=this.toUint8Array(a);d.set(b,e),e+=b.length}return a[a.length-1]instanceof Function?this.toView(d,a[a.length-1]):d.buffer}}let e="string",f=/^[0-9a-f\s]+$/i,g=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,h=/^[a-zA-Z0-9-_]+$/;class i{static fromString(a){let b=unescape(encodeURIComponent(a)),c=new Uint8Array(b.length);for(let a=0;a<b.length;a++)c[a]=b.charCodeAt(a);return c.buffer}static toString(a){let b=d.toUint8Array(a),c="";for(let a=0;a<b.length;a++)c+=String.fromCharCode(b[a]);return decodeURIComponent(escape(c))}}class j{static toString(a,b=!1){let c=d.toArrayBuffer(a),e=new DataView(c),f="";for(let a=0;a<c.byteLength;a+=2)f+=String.fromCharCode(e.getUint16(a,b));return f}static fromString(a,b=!1){let c=new ArrayBuffer(2*a.length),d=new DataView(c);for(let c=0;c<a.length;c++)d.setUint16(2*c,a.charCodeAt(c),b);return c}}class k{static isHex(a){return typeof a===e&&f.test(a)}static isBase64(a){return typeof a===e&&g.test(a)}static isBase64Url(a){return typeof a===e&&h.test(a)}static ToString(a,b="utf8"){let c=d.toUint8Array(a);switch(b.toLowerCase()){case"utf8":return this.ToUtf8String(c);case"binary":return this.ToBinary(c);case"hex":return this.ToHex(c);case"base64":return this.ToBase64(c);case"base64url":return this.ToBase64Url(c);case"utf16le":return j.toString(c,!0);case"utf16":case"utf16be":return j.toString(c);default:throw Error(`Unknown type of encoding '${b}'`)}}static FromString(a,b="utf8"){if(!a)return new ArrayBuffer(0);switch(b.toLowerCase()){case"utf8":return this.FromUtf8String(a);case"binary":return this.FromBinary(a);case"hex":return this.FromHex(a);case"base64":return this.FromBase64(a);case"base64url":return this.FromBase64Url(a);case"utf16le":return j.fromString(a,!0);case"utf16":case"utf16be":return j.fromString(a);default:throw Error(`Unknown type of encoding '${b}'`)}}static ToBase64(a){let b=d.toUint8Array(a);return"u">typeof btoa?btoa(this.ToString(b,"binary")):Buffer.from(b).toString("base64")}static FromBase64(a){let b=this.formatString(a);if(!b)return new ArrayBuffer(0);if(!k.isBase64(b))throw TypeError("Argument 'base64Text' is not Base64 encoded");return"u">typeof atob?this.FromBinary(atob(b)):new Uint8Array(Buffer.from(b,"base64")).buffer}static FromBase64Url(a){let b=this.formatString(a);if(!b)return new ArrayBuffer(0);if(!k.isBase64Url(b))throw TypeError("Argument 'base64url' is not Base64Url encoded");return this.FromBase64(this.Base64Padding(b.replace(/\-/g,"+").replace(/\_/g,"/")))}static ToBase64Url(a){return this.ToBase64(a).replace(/\+/g,"-").replace(/\//g,"_").replace(/\=/g,"")}static FromUtf8String(a,b=k.DEFAULT_UTF8_ENCODING){switch(b){case"ascii":return this.FromBinary(a);case"utf8":return i.fromString(a);case"utf16":case"utf16be":return j.fromString(a);case"utf16le":case"usc2":return j.fromString(a,!0);default:throw Error(`Unknown type of encoding '${b}'`)}}static ToUtf8String(a,b=k.DEFAULT_UTF8_ENCODING){switch(b){case"ascii":return this.ToBinary(a);case"utf8":return i.toString(a);case"utf16":case"utf16be":return j.toString(a);case"utf16le":case"usc2":return j.toString(a,!0);default:throw Error(`Unknown type of encoding '${b}'`)}}static FromBinary(a){let b=a.length,c=new Uint8Array(b);for(let d=0;d<b;d++)c[d]=a.charCodeAt(d);return c.buffer}static ToBinary(a){let b=d.toUint8Array(a),c="";for(let a=0;a<b.length;a++)c+=String.fromCharCode(b[a]);return c}static ToHex(a){let b=d.toUint8Array(a),c="",e=b.length;for(let a=0;a<e;a++){let d=b[a];d<16&&(c+="0"),c+=d.toString(16)}return c}static FromHex(a){let b=this.formatString(a);if(!b)return new ArrayBuffer(0);if(!k.isHex(b))throw TypeError("Argument 'hexString' is not HEX encoded");b.length%2&&(b=`0${b}`);let c=new Uint8Array(b.length/2);for(let a=0;a<b.length;a+=2){let d=b.slice(a,a+2);c[a/2]=parseInt(d,16)}return c.buffer}static ToUtf16String(a,b=!1){return j.toString(a,b)}static FromUtf16String(a,b=!1){return j.fromString(a,b)}static Base64Padding(a){let b=4-a.length%4;if(b<4)for(let c=0;c<b;c++)a+="=";return a}static formatString(a){return(null==a?void 0:a.replace(/[\n\r\t ]/g,""))||""}}function l(a,b){let c=0;if(1===a.length)return a[0];for(let d=a.length-1;d>=0;d--)c+=a[a.length-1-d]*Math.pow(2,b*d);return c}function m(a,b,c=-1){let d=a,e=0,f=Math.pow(2,b);for(let g=1;g<8;g++){if(a<f){let a;if(c<0)a=new ArrayBuffer(g),e=g;else{if(c<g)return new ArrayBuffer(0);a=new ArrayBuffer(c),e=c}let f=new Uint8Array(a);for(let a=g-1;a>=0;a--){let c=Math.pow(2,a*b);f[e-a-1]=Math.floor(d/c),d-=f[e-a-1]*c}return a}f*=Math.pow(2,b)}return new ArrayBuffer(0)}function n(...a){let b=0,c=0;for(let c of a)b+=c.length;let d=new Uint8Array(new ArrayBuffer(b));for(let b of a)d.set(b,c),c+=b.length;return d}function o(){let a=new Uint8Array(this.valueHex);if(this.valueHex.byteLength>=2){let b=255===a[0]&&128&a[1],c=0===a[0]&&(128&a[1])==0;(b||c)&&this.warnings.push("Needlessly long format")}let b=new Uint8Array(new ArrayBuffer(this.valueHex.byteLength));for(let a=0;a<this.valueHex.byteLength;a++)b[a]=0;b[0]=128&a[0];let c=l(b,8),d=new Uint8Array(new ArrayBuffer(this.valueHex.byteLength));for(let b=0;b<this.valueHex.byteLength;b++)d[b]=a[b];return d[0]&=127,l(d,8)-c}function p(a,b){let c=a.toString(10);if(b<c.length)return"";let d=b-c.length,e=Array.from({length:d});for(let a=0;a<d;a++)e[a]="0";return e.join("").concat(c)}function q(){if("u"<typeof BigInt)throw Error("BigInt is not defined. Your environment doesn't implement BigInt.")}function r(a){let b=0,c=0;for(let c=0;c<a.length;c++)b+=a[c].byteLength;let d=new Uint8Array(b);for(let b=0;b<a.length;b++){let e=a[b];d.set(new Uint8Array(e),c),c+=e.byteLength}return d.buffer}function s(a,b,c,d){return b instanceof Uint8Array?b.byteLength?c<0?(a.error="Wrong parameter: inputOffset less than zero",!1):d<0?(a.error="Wrong parameter: inputLength less than zero",!1):!(b.byteLength-c-d<0)||(a.error="End of input reached before message was fully decoded (inconsistent offset and length values)",!1):(a.error="Wrong parameter: inputBuffer has zero length",!1):(a.error="Wrong parameter: inputBuffer must be 'Uint8Array'",!1)}k.DEFAULT_UTF8_ENCODING="utf8";class t{constructor(){this.items=[]}write(a){this.items.push(a)}final(){return r(this.items)}}let u=[new Uint8Array([1])],v="0123456789",w="name",x="valueHexView",y=new ArrayBuffer(0),z=new Uint8Array(0),A="EndOfContent",B="OCTET STRING",C="BIT STRING";function D(a){var b;return(b=class extends a{get valueHex(){return this.valueHexView.slice().buffer}set valueHex(a){this.valueHexView=new Uint8Array(a)}constructor(...a){var b;super(...a);const c=a[0]||{};this.isHexOnly=null!=(b=c.isHexOnly)&&b,this.valueHexView=c.valueHex?d.toUint8Array(c.valueHex):z}fromBER(a,b,c,d){let e=a instanceof ArrayBuffer?new Uint8Array(a):a;if(!s(this,e,b,c))return -1;let f=b+c;return(this.valueHexView=e.subarray(b,f),this.valueHexView.length)?(this.blockLength=c,f):(this.warnings.push("Zero buffer length"),b)}toBER(a=!1){return this.isHexOnly?a?new ArrayBuffer(this.valueHexView.byteLength):this.valueHexView.byteLength===this.valueHexView.buffer.byteLength?this.valueHexView.buffer:this.valueHexView.slice().buffer:(this.error="Flag 'isHexOnly' is not set, abort",y)}toJSON(){return{...super.toJSON(),isHexOnly:this.isHexOnly,valueHex:k.ToHex(this.valueHexView)}}}).NAME="hexBlock",b}class E{static blockName(){return this.NAME}get valueBeforeDecode(){return this.valueBeforeDecodeView.slice().buffer}set valueBeforeDecode(a){this.valueBeforeDecodeView=new Uint8Array(a)}constructor({blockLength:a=0,error:b="",warnings:c=[],valueBeforeDecode:e=z}={}){this.blockLength=a,this.error=b,this.warnings=c,this.valueBeforeDecodeView=d.toUint8Array(e)}toJSON(){return{blockName:this.constructor.NAME,blockLength:this.blockLength,error:this.error,warnings:this.warnings,valueBeforeDecode:k.ToHex(this.valueBeforeDecodeView)}}}E.NAME="baseBlock";class F extends E{fromBER(a,b,c,d){throw TypeError("User need to make a specific function in a class which extends 'ValueBlock'")}toBER(a,b){throw TypeError("User need to make a specific function in a class which extends 'ValueBlock'")}}F.NAME="valueBlock";class G extends D(E){constructor({idBlock:a={}}={}){var b,c,e,f;super(),a?(this.isHexOnly=null!=(b=a.isHexOnly)&&b,this.valueHexView=a.valueHex?d.toUint8Array(a.valueHex):z,this.tagClass=null!=(c=a.tagClass)?c:-1,this.tagNumber=null!=(e=a.tagNumber)?e:-1,this.isConstructed=null!=(f=a.isConstructed)&&f):(this.tagClass=-1,this.tagNumber=-1,this.isConstructed=!1)}toBER(a=!1){let b=0;switch(this.tagClass){case 1:b|=0;break;case 2:b|=64;break;case 3:b|=128;break;case 4:b|=192;break;default:return this.error="Unknown tag class",y}if(this.isConstructed&&(b|=32),this.tagNumber<31&&!this.isHexOnly){let c=new Uint8Array(1);if(!a){let a=this.tagNumber;a&=31,b|=a,c[0]=b}return c.buffer}if(!this.isHexOnly){let c=m(this.tagNumber,7),d=new Uint8Array(c),e=c.byteLength,f=new Uint8Array(e+1);if(f[0]=31|b,!a){for(let a=0;a<e-1;a++)f[a+1]=128|d[a];f[e]=d[e-1]}return f.buffer}let c=new Uint8Array(this.valueHexView.byteLength+1);if(c[0]=31|b,!a){let a=this.valueHexView;for(let b=0;b<a.length-1;b++)c[b+1]=128|a[b];c[this.valueHexView.byteLength]=a[a.length-1]}return c.buffer}fromBER(a,b,c){let e=d.toUint8Array(a);if(!s(this,e,b,c))return -1;let f=e.subarray(b,b+c);if(0===f.length)return this.error="Zero buffer length",-1;switch(192&f[0]){case 0:this.tagClass=1;break;case 64:this.tagClass=2;break;case 128:this.tagClass=3;break;case 192:this.tagClass=4;break;default:return this.error="Unknown tag class",-1}this.isConstructed=(32&f[0])==32,this.isHexOnly=!1;let g=31&f[0];if(31!==g)this.tagNumber=g,this.blockLength=1;else{let a=0;for(;;){let b=a+1;if(b>=f.length)return this.error="End of input reached before message was fully decoded",-1;if(a++,(128&f[b])==0)break}this.blockLength=a+1;let b=this.valueHexView=new Uint8Array(a);for(let c=0;c<a;c++)b[c]=127&f[c+1];this.blockLength<=9?this.tagNumber=l(b,7):(this.isHexOnly=!0,this.warnings.push("Tag too long, represented as hex-coded"))}if(1===this.tagClass&&this.isConstructed)switch(this.tagNumber){case 1:case 2:case 5:case 6:case 9:case 13:case 14:case 23:case 24:case 31:case 32:case 33:case 34:return this.error="Constructed encoding used for primitive type",-1}return b+this.blockLength}toJSON(){return{...super.toJSON(),tagClass:this.tagClass,tagNumber:this.tagNumber,isConstructed:this.isConstructed}}}G.NAME="identificationBlock";class H extends E{constructor({lenBlock:a={}}={}){var b,c,d;super(),this.isIndefiniteForm=null!=(b=a.isIndefiniteForm)&&b,this.longFormUsed=null!=(c=a.longFormUsed)&&c,this.length=null!=(d=a.length)?d:0}fromBER(a,b,c){let e=d.toUint8Array(a);if(!s(this,e,b,c))return -1;let f=e.subarray(b,b+c);if(0===f.length)return this.error="Zero buffer length",-1;if(255===f[0])return this.error="Length block 0xFF is reserved by standard",-1;if(this.isIndefiniteForm=128===f[0],this.isIndefiniteForm)return this.blockLength=1,b+this.blockLength;if(this.longFormUsed=!!(128&f[0]),!1===this.longFormUsed)return this.length=f[0],this.blockLength=1,b+this.blockLength;let g=127&f[0];if(g>8)return this.error="Too big integer",-1;if(g+1>f.length)return this.error="End of input reached before message was fully decoded",-1;let h=b+1,i=e.subarray(h,h+g);return 0===i[g-1]&&this.warnings.push("Needlessly long encoded length"),this.length=l(i,8),this.longFormUsed&&this.length<=127&&this.warnings.push("Unnecessary usage of long length form"),this.blockLength=g+1,b+this.blockLength}toBER(a=!1){let b,c;if(this.length>127&&(this.longFormUsed=!0),this.isIndefiniteForm)return b=new ArrayBuffer(1),!1===a&&((c=new Uint8Array(b))[0]=128),b;if(this.longFormUsed){let d=m(this.length,8);if(d.byteLength>127)return this.error="Too big length",y;if(b=new ArrayBuffer(d.byteLength+1),a)return b;let e=new Uint8Array(d);(c=new Uint8Array(b))[0]=128|d.byteLength;for(let a=0;a<d.byteLength;a++)c[a+1]=e[a];return b}return b=new ArrayBuffer(1),!1===a&&((c=new Uint8Array(b))[0]=this.length),b}toJSON(){return{...super.toJSON(),isIndefiniteForm:this.isIndefiniteForm,longFormUsed:this.longFormUsed,length:this.length}}}H.NAME="lengthBlock";let I={};class J extends E{constructor({name:a="",optional:b=!1,primitiveSchema:c,...d}={},e){super(d),this.name=a,this.optional=b,c&&(this.primitiveSchema=c),this.idBlock=new G(d),this.lenBlock=new H(d),this.valueBlock=e?new e(d):new F(d)}fromBER(a,b,c,d){let e=this.valueBlock.fromBER(a,b,this.lenBlock.isIndefiniteForm?c:this.lenBlock.length,d);return -1===e?this.error=this.valueBlock.error:(this.idBlock.error.length||(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length||(this.blockLength+=this.lenBlock.blockLength),this.valueBlock.error.length||(this.blockLength+=this.valueBlock.blockLength)),e}toBER(a,b){let c=b||new t;b||function a(b){var c;if(b instanceof I.Constructed)for(let c of b.valueBlock.value)a(c)&&(b.lenBlock.isIndefiniteForm=!0);return!!(null==(c=b.lenBlock)?void 0:c.isIndefiniteForm)}(this);let d=this.idBlock.toBER(a);if(c.write(d),this.lenBlock.isIndefiniteForm)c.write(new Uint8Array([128]).buffer),this.valueBlock.toBER(a,c),c.write(new ArrayBuffer(2));else{let b=this.valueBlock.toBER(a);this.lenBlock.length=b.byteLength;let d=this.lenBlock.toBER(a);c.write(d),c.write(b)}return b?y:c.final()}toJSON(){let a={...super.toJSON(),idBlock:this.idBlock.toJSON(),lenBlock:this.lenBlock.toJSON(),valueBlock:this.valueBlock.toJSON(),name:this.name,optional:this.optional};return this.primitiveSchema&&(a.primitiveSchema=this.primitiveSchema.toJSON()),a}toString(a="ascii"){return"ascii"===a?this.onAsciiEncoding():k.ToHex(this.toBER())}onAsciiEncoding(){let a=this.constructor.NAME,b=k.ToHex(this.valueBlock.valueBeforeDecodeView);return`${a} : ${b}`}isEqual(a){if(this===a)return!0;if(!(a instanceof this.constructor))return!1;let b=this.toBER(),c=a.toBER();if(b.byteLength!==c.byteLength)return!1;let d=new Uint8Array(b),e=new Uint8Array(c);for(let a=0;a<d.length;a++)if(d[a]!==e[a])return!1;return!0}}J.NAME="BaseBlock";class K extends J{getValue(){return this.valueBlock.value}setValue(a){this.valueBlock.value=a}constructor({value:a="",...b}={},c){super(b,c),a&&this.fromString(a)}fromBER(a,b,c){let d=this.valueBlock.fromBER(a,b,this.lenBlock.isIndefiniteForm?c:this.lenBlock.length);return -1===d?this.error=this.valueBlock.error:(this.fromBuffer(this.valueBlock.valueHexView),this.idBlock.error.length||(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length||(this.blockLength+=this.lenBlock.blockLength),this.valueBlock.error.length||(this.blockLength+=this.valueBlock.blockLength)),d}onAsciiEncoding(){return`${this.constructor.NAME} : '${this.valueBlock.value}'`}}K.NAME="BaseStringBlock";class L extends D(F){constructor({isHexOnly:a=!0,...b}={}){super(b),this.isHexOnly=a}}L.NAME="PrimitiveValueBlock";class M extends J{constructor(a={}){super(a,L),this.idBlock.isConstructed=!1}}function N(a={}){var b,c,d;return{depth:0,maxDepth:null!=(b=a.maxDepth)?b:100,nodesCount:0,maxNodes:null!=(c=a.maxNodes)?c:1e4,maxContentLength:null!=(d=a.maxContentLength)?d:0x1000000}}function O(a,b,c,d){let e=d.depth+1;if(e>d.maxDepth){let a;return(a=new J({},F)).error="Maximum ASN.1 nesting depth exceeded",{offset:-1,result:a}}d.depth=e;try{return P(a,b,c,d)}finally{d.depth-=1}}function P(a,b=0,c=a.length,d=N()){let e=b,f=new J({},F),g=new E;if(!s(g,a,b,c))return f.error=g.error,{offset:-1,result:f};if(!a.subarray(b,b+c).length)return f.error="Zero buffer length",{offset:-1,result:f};let h=function(a){if(a.nodesCount+=1,a.nodesCount>a.maxNodes)return"Maximum ASN.1 node count exceeded"}(d);if(h)return f.error=h,{offset:-1,result:f};let i=f.idBlock.fromBER(a,b,c);if(f.idBlock.warnings.length&&f.warnings.concat(f.idBlock.warnings),-1===i)return f.error=f.idBlock.error,{offset:-1,result:f};if(b=i,c-=f.idBlock.blockLength,i=f.lenBlock.fromBER(a,b,c),f.lenBlock.warnings.length&&f.warnings.concat(f.lenBlock.warnings),-1===i)return f.error=f.lenBlock.error,{offset:-1,result:f};b=i,c-=f.lenBlock.blockLength;let j=f.lenBlock.isIndefiniteForm?c:f.lenBlock.length,k=function(a,b){if(a>b.maxContentLength)return"Maximum ASN.1 content length exceeded"}(j,d);if(k)return f.error=k,{offset:-1,result:f};if(!f.idBlock.isConstructed&&f.lenBlock.isIndefiniteForm)return f.error="Indefinite length form used for primitive encoding form",{offset:-1,result:f};let l=J;if(1===f.idBlock.tagClass){if(f.idBlock.tagNumber>=37&&!1===f.idBlock.isHexOnly)return f.error="UNIVERSAL 37 and upper tags are reserved by ASN.1 standard",{offset:-1,result:f};switch(f.idBlock.tagNumber){case 0:if(f.idBlock.isConstructed&&f.lenBlock.length>0)return f.error="Type [UNIVERSAL 0] is reserved",{offset:-1,result:f};l=I.EndOfContent;break;case 1:l=I.Boolean;break;case 2:l=I.Integer;break;case 3:l=I.BitString;break;case 4:l=I.OctetString;break;case 5:l=I.Null;break;case 6:l=I.ObjectIdentifier;break;case 10:l=I.Enumerated;break;case 12:l=I.Utf8String;break;case 13:l=I.RelativeObjectIdentifier;break;case 14:l=I.TIME;break;case 15:return f.error="[UNIVERSAL 15] is reserved by ASN.1 standard",{offset:-1,result:f};case 16:l=I.Sequence;break;case 17:l=I.Set;break;case 18:l=I.NumericString;break;case 19:l=I.PrintableString;break;case 20:l=I.TeletexString;break;case 21:l=I.VideotexString;break;case 22:l=I.IA5String;break;case 23:l=I.UTCTime;break;case 24:l=I.GeneralizedTime;break;case 25:l=I.GraphicString;break;case 26:l=I.VisibleString;break;case 27:l=I.GeneralString;break;case 28:l=I.UniversalString;break;case 29:l=I.CharacterString;break;case 30:l=I.BmpString;break;case 31:l=I.DATE;break;case 32:l=I.TimeOfDay;break;case 33:l=I.DateTime;break;case 34:l=I.Duration;break;default:{let a=f.idBlock.isConstructed?new I.Constructed:new I.Primitive;a.idBlock=f.idBlock,a.lenBlock=f.lenBlock,a.warnings=f.warnings,f=a}}}else l=f.idBlock.isConstructed?I.Constructed:I.Primitive;return i=(f=function(a,b){if(a instanceof b)return a;let c=new b;return c.idBlock=a.idBlock,c.lenBlock=a.lenBlock,c.warnings=a.warnings,c.valueBeforeDecodeView=a.valueBeforeDecodeView,c}(f,l)).fromBER(a,b,j,d),f.valueBeforeDecodeView=a.subarray(e,e+f.blockLength),{offset:i,result:f}}I.Primitive=M,M.NAME="PRIMITIVE";class Q extends F{constructor({value:a=[],isIndefiniteForm:b=!1,...c}={}){super(c),this.value=a,this.isIndefiniteForm=b}fromBER(a,b,c,e){var f,g;let h=d.toUint8Array(a),i=null!=e?e:N();if(!s(this,h,b,c))return -1;if(this.valueBeforeDecodeView=h.subarray(b,b+c),0===this.valueBeforeDecodeView.length)return this.warnings.push("Zero buffer length"),b;let j=b;for(;f=this.isIndefiniteForm,g=c,(f?1:g)>0;){let a=O(h,j,c,i);if(-1===a.offset)return this.error=a.result.error,this.warnings.concat(a.result.warnings),-1;if(j=a.offset,this.blockLength+=a.result.blockLength,c-=a.result.blockLength,this.value.push(a.result),this.isIndefiniteForm&&a.result.constructor.NAME===A)break}return this.isIndefiniteForm&&(this.value[this.value.length-1].constructor.NAME===A?this.value.pop():this.warnings.push("No EndOfContent block encoded")),j}toBER(a,b){let c=b||new t;for(let b=0;b<this.value.length;b++)this.value[b].toBER(a,c);return b?y:c.final()}toJSON(){let a={...super.toJSON(),isIndefiniteForm:this.isIndefiniteForm,value:[]};for(let b of this.value)a.value.push(b.toJSON());return a}}Q.NAME="ConstructedValueBlock";class R extends J{constructor(a={}){super(a,Q),this.idBlock.isConstructed=!0}fromBER(a,b,c,d){this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm;let e=this.valueBlock.fromBER(a,b,this.lenBlock.isIndefiniteForm?c:this.lenBlock.length,d);return -1===e?this.error=this.valueBlock.error:(this.idBlock.error.length||(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length||(this.blockLength+=this.lenBlock.blockLength),this.valueBlock.error.length||(this.blockLength+=this.valueBlock.blockLength)),e}onAsciiEncoding(){let a=[];for(let b of this.valueBlock.value)a.push(b.toString("ascii").split("\n").map(a=>` ${a}`).join("\n"));let b=3===this.idBlock.tagClass?`[${this.idBlock.tagNumber}]`:this.constructor.NAME;return a.length?`${b} :
|
|
414
|
-
${a.join("\n")}`:`${b} :`}}I.Constructed=R,R.NAME="CONSTRUCTED";class S extends F{fromBER(a,b,c){return b}toBER(a){return y}}S.override="EndOfContentValueBlock";class T extends J{constructor(a={}){super(a,S),this.idBlock.tagClass=1,this.idBlock.tagNumber=0}}I.EndOfContent=T,T.NAME=A;class U extends J{constructor(a={}){super(a,F),this.idBlock.tagClass=1,this.idBlock.tagNumber=5}fromBER(a,b,c){return(this.lenBlock.length>0&&this.warnings.push("Non-zero length of value block for Null type"),this.idBlock.error.length||(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length||(this.blockLength+=this.lenBlock.blockLength),this.blockLength+=c,b+c>a.byteLength)?(this.error="End of input reached before message was fully decoded (inconsistent offset and length values)",-1):b+c}toBER(a,b){let c=new ArrayBuffer(2);if(!a){let a=new Uint8Array(c);a[0]=5,a[1]=0}return b&&b.write(c),c}onAsciiEncoding(){return`${this.constructor.NAME}`}}I.Null=U,U.NAME="NULL";class V extends D(F){get value(){for(let a of this.valueHexView)if(a>0)return!0;return!1}set value(a){this.valueHexView[0]=255*!!a}constructor({value:a,...b}={}){super(b),b.valueHex?this.valueHexView=d.toUint8Array(b.valueHex):this.valueHexView=new Uint8Array(1),a&&(this.value=a)}fromBER(a,b,c){let e=d.toUint8Array(a);return s(this,e,b,c)?(this.valueHexView=e.subarray(b,b+c),c>1&&this.warnings.push("Boolean value encoded in more then 1 octet"),this.isHexOnly=!0,o.call(this),this.blockLength=c,b+c):-1}toBER(){return this.valueHexView.slice()}toJSON(){return{...super.toJSON(),value:this.value}}}V.NAME="BooleanValueBlock";class W extends J{getValue(){return this.valueBlock.value}setValue(a){this.valueBlock.value=a}constructor(a={}){super(a,V),this.idBlock.tagClass=1,this.idBlock.tagNumber=1}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.getValue}`}}I.Boolean=W,W.NAME="BOOLEAN";class X extends D(Q){constructor({isConstructed:a=!1,...b}={}){super(b),this.isConstructed=a}fromBER(a,b,c,d){let e=0;if(this.isConstructed){if(this.isHexOnly=!1,-1===(e=Q.prototype.fromBER.call(this,a,b,c,d)))return e;for(let a=0;a<this.value.length;a++){let b=this.value[a].constructor.NAME;if(b===A)if(!this.isIndefiniteForm)return this.error="EndOfContent is unexpected, OCTET STRING may consists of OCTET STRINGs only",-1;else break;if(b!==B)return this.error="OCTET STRING may consists of OCTET STRINGs only",-1}}else this.isHexOnly=!0,e=super.fromBER(a,b,c),this.blockLength=c;return e}toBER(a,b){return this.isConstructed?Q.prototype.toBER.call(this,a,b):a?new ArrayBuffer(this.valueHexView.byteLength):this.valueHexView.slice().buffer}toJSON(){return{...super.toJSON(),isConstructed:this.isConstructed}}}X.NAME="OctetStringValueBlock";class Y extends J{constructor({idBlock:a={},lenBlock:b={},...c}={}){var d;null!=c.isConstructed||(c.isConstructed=!!(null==(d=c.value)?void 0:d.length)),super({idBlock:{isConstructed:c.isConstructed,...a},lenBlock:{...b,isIndefiniteForm:!!c.isIndefiniteForm},...c},X),this.idBlock.tagClass=1,this.idBlock.tagNumber=4}fromBER(a,b,c,d){if(this.valueBlock.isConstructed=this.idBlock.isConstructed,this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm,0===c)return 0===this.idBlock.error.length&&(this.blockLength+=this.idBlock.blockLength),0===this.lenBlock.error.length&&(this.blockLength+=this.lenBlock.blockLength),b;if(!this.valueBlock.isConstructed){let e=(a instanceof ArrayBuffer?new Uint8Array(a):a).subarray(b,b+c);try{if(e.byteLength){let a=null!=d?d:N(),b=O(e,0,e.byteLength,a);-1!==b.offset&&b.offset===c&&(this.valueBlock.value=[b.result])}}catch{}}return super.fromBER(a,b,c,d)}onAsciiEncoding(){if(this.valueBlock.isConstructed||this.valueBlock.value&&this.valueBlock.value.length)return R.prototype.onAsciiEncoding.call(this);let a=this.constructor.NAME,b=k.ToHex(this.valueBlock.valueHexView);return`${a} : ${b}`}getValue(){if(!this.idBlock.isConstructed)return this.valueBlock.valueHexView.slice().buffer;let a=[];for(let c of this.valueBlock.value)c instanceof b&&a.push(c.valueBlock.valueHexView);return d.concat(a)}}I.OctetString=b=Y,Y.NAME=B;class Z extends D(Q){constructor({unusedBits:a=0,isConstructed:b=!1,...c}={}){super(c),this.unusedBits=a,this.isConstructed=b,this.blockLength=this.valueHexView.byteLength}fromBER(a,b,c,e){if(!c)return b;let f=-1;if(this.isConstructed){if(-1===(f=Q.prototype.fromBER.call(this,a,b,c,e)))return f;for(let a of this.value){let b=a.constructor.NAME;if(b===A)if(!this.isIndefiniteForm)return this.error="EndOfContent is unexpected, BIT STRING may consists of BIT STRINGs only",-1;else break;if(b!==C)return this.error="BIT STRING may consists of BIT STRINGs only",-1;let c=a.valueBlock;if(this.unusedBits>0&&c.unusedBits>0)return this.error='Using of "unused bits" inside constructive BIT STRING allowed for least one only',-1;this.unusedBits=c.unusedBits}return f}let g=d.toUint8Array(a);if(!s(this,g,b,c))return -1;let h=g.subarray(b,b+c);if(this.unusedBits=h[0],this.unusedBits>7)return this.error="Unused bits for BitString must be in range 0-7",-1;if(!this.unusedBits){let a=h.subarray(1);try{if(a.byteLength){let b=null!=e?e:N(),d=O(a,0,a.byteLength,b);-1!==d.offset&&d.offset===c-1&&(this.value=[d.result])}}catch{}}return this.valueHexView=h.subarray(1),this.blockLength=h.length,b+c}toBER(a,b){if(this.isConstructed)return Q.prototype.toBER.call(this,a,b);if(a)return new ArrayBuffer(this.valueHexView.byteLength+1);if(!this.valueHexView.byteLength){let a=new Uint8Array(1);return a[0]=0,a.buffer}let c=new Uint8Array(this.valueHexView.length+1);return c[0]=this.unusedBits,c.set(this.valueHexView,1),c.buffer}toJSON(){return{...super.toJSON(),unusedBits:this.unusedBits,isConstructed:this.isConstructed}}}Z.NAME="BitStringValueBlock";class $ extends J{constructor({idBlock:a={},lenBlock:b={},...c}={}){var d;null!=c.isConstructed||(c.isConstructed=!!(null==(d=c.value)?void 0:d.length)),super({idBlock:{isConstructed:c.isConstructed,...a},lenBlock:{...b,isIndefiniteForm:!!c.isIndefiniteForm},...c},Z),this.idBlock.tagClass=1,this.idBlock.tagNumber=3}fromBER(a,b,c,d){return this.valueBlock.isConstructed=this.idBlock.isConstructed,this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm,super.fromBER(a,b,c,d)}onAsciiEncoding(){if(this.valueBlock.isConstructed||this.valueBlock.value&&this.valueBlock.value.length)return R.prototype.onAsciiEncoding.call(this);{let a=[];for(let b of this.valueBlock.valueHexView)a.push(b.toString(2).padStart(8,"0"));let b=a.join(""),c=this.constructor.NAME,d=b.substring(0,b.length-this.valueBlock.unusedBits);return`${c} : ${d}`}}}function _(a){if(a>=u.length)for(let b=u.length;b<=a;b++){let a=new Uint8Array([0]),c=u[b-1].slice(0);for(let b=c.length-1;b>=0;b--){let d=new Uint8Array([(c[b]<<1)+a[0]]);a[0]=d[0]/10,c[b]=d[0]%10}a[0]>0&&(c=n(a,c)),u.push(c)}return u[a]}I.BitString=$,$.NAME=C;class aa extends D(F){setValueHex(){this.valueHexView.length>=4?(this.warnings.push("Too big Integer for decoding, hex only"),this.isHexOnly=!0,this._valueDec=0):(this.isHexOnly=!1,this.valueHexView.length>0&&(this._valueDec=o.call(this)))}constructor({value:a,...b}={}){super(b),this._valueDec=0,b.valueHex&&this.setValueHex(),void 0!==a&&(this.valueDec=a)}set valueDec(a){this._valueDec=a,this.isHexOnly=!1,this.valueHexView=new Uint8Array(function(a){let b=a<0?-1*a:a,c=128;for(let d=1;d<8;d++){if(b<=c){if(a<0){let a=m(c-b,8,d),e=new Uint8Array(a);return e[0]|=128,a}let e=m(b,8,d),f=new Uint8Array(e);if(128&f[0]){let a=e.slice(0),b=new Uint8Array(a);f=new Uint8Array(e=new ArrayBuffer(e.byteLength+1));for(let c=0;c<a.byteLength;c++)f[c+1]=b[c];f[0]=0}return e}c*=256}return new ArrayBuffer(0)}(a))}get valueDec(){return this._valueDec}fromDER(a,b,c,d=0){let e=this.fromBER(a,b,c);if(-1===e)return e;let f=this.valueHexView;return 0===f[0]&&(128&f[1])!=0?this.valueHexView=f.subarray(1):0!==d&&f.length<d&&(d-f.length>1&&(d=f.length+1),this.valueHexView=f.subarray(d-f.length)),e}toDER(a=!1){let b=this.valueHexView;switch(!0){case(128&b[0])!=0:{let a=new Uint8Array(this.valueHexView.length+1);a[0]=0,a.set(b,1),this.valueHexView=a}break;case 0===b[0]&&(128&b[1])==0:this.valueHexView=this.valueHexView.subarray(1)}return this.toBER(a)}fromBER(a,b,c){let d=super.fromBER(a,b,c);return -1===d||this.setValueHex(),d}toBER(a){return a?new ArrayBuffer(this.valueHexView.length):this.valueHexView.slice().buffer}toJSON(){return{...super.toJSON(),valueDec:this.valueDec}}toString(){let a,b=8*this.valueHexView.length-1,c=new Uint8Array(8*this.valueHexView.length/3),d=0,e=this.valueHexView,f="",g=!1;for(let g=e.byteLength-1;g>=0;g--){a=e[g];for(let e=0;e<8;e++)(1&a)==1&&(d===b?(c=function(a,b){let c,d=0,e=new Uint8Array(a),f=new Uint8Array(b),g=e.slice(0),h=g.length-1,i=f.slice(0),j=i.length-1,k=0;for(let a=j;a>=0;a--,k++)!0==(c=g[h-k]-i[j-k]-d)<0?(d=1,g[h-k]=c+10):(d=0,g[h-k]=c);if(d>0)for(let a=h-j+1;a>=0;a--,k++)if((c=g[h-k]-d)<0)d=1,g[h-k]=c+10;else{d=0,g[h-k]=c;break}return g.slice()}(_(d),c),f="-"):c=function(a,b){let c=new Uint8Array([0]),d=new Uint8Array(a),e=new Uint8Array(b),f=d.slice(0),g=f.length-1,h=e.slice(0),i=h.length-1,j=0,k=i<g?g:i,l=0;for(let a=k;a>=0;a--,l++)j=!0==l<h.length?f[g-l]+h[i-l]+c[0]:f[g-l]+c[0],c[0]=j/10,!0==l>=f.length?f=n(new Uint8Array([j%10]),f):f[g-l]=j%10;return c[0]>0&&(f=n(c,f)),f}(c,_(d))),d++,a>>=1}for(let a=0;a<c.length;a++)c[a]&&(g=!0),g&&(f+=v.charAt(c[a]));return!1===g&&(f+=v.charAt(0)),f}}aa.NAME="IntegerValueBlock",Object.defineProperty(aa.prototype,"valueHex",{set:function(a){this.valueHexView=new Uint8Array(a),this.setValueHex()},get:function(){return this.valueHexView.slice().buffer}});class ab extends J{constructor(a={}){super(a,aa),this.idBlock.tagClass=1,this.idBlock.tagNumber=2}toBigInt(){return q(),BigInt(this.valueBlock.toString())}static fromBigInt(a){q();let b=BigInt(a),e=new t,f=b.toString(16).replace(/^-/,""),g=new Uint8Array(k.FromHex(f));if(b<0){let a=new Uint8Array(g.length+(128&g[0]?1:0));a[0]|=128;let c=BigInt(`0x${k.ToHex(a)}`)+b,f=d.toUint8Array(k.FromHex(c.toString(16)));f[0]|=128,e.write(f)}else 128&g[0]&&e.write(new Uint8Array([0])),e.write(g);return new c({valueHex:e.final()})}convertToDER(){let a=new c({valueHex:this.valueBlock.valueHexView});return a.valueBlock.toDER(),a}convertFromDER(){return new c({valueHex:0===this.valueBlock.valueHexView[0]?this.valueBlock.valueHexView.subarray(1):this.valueBlock.valueHexView})}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()}`}}I.Integer=c=ab,ab.NAME="INTEGER";class ac extends ab{constructor(a={}){super(a),this.idBlock.tagClass=1,this.idBlock.tagNumber=10}}I.Enumerated=ac,ac.NAME="ENUMERATED";class ad extends D(F){constructor({valueDec:a=-1,isFirstSid:b=!1,...c}={}){super(c),this.valueDec=a,this.isFirstSid=b}fromBER(a,b,c){if(!c)return b;let e=d.toUint8Array(a);if(!s(this,e,b,c))return -1;let f=e.subarray(b,b+c);this.valueHexView=new Uint8Array(c);for(let a=0;a<c&&(this.valueHexView[a]=127&f[a],this.blockLength++,(128&f[a])!=0);a++);let g=new Uint8Array(this.blockLength);for(let a=0;a<this.blockLength;a++)g[a]=this.valueHexView[a];return(this.valueHexView=g,(128&f[this.blockLength-1])!=0)?(this.error="End of input reached before message was fully decoded",-1):(0===this.valueHexView[0]&&this.warnings.push("Needlessly long format of SID encoding"),this.blockLength<=8?this.valueDec=l(this.valueHexView,7):(this.isHexOnly=!0,this.warnings.push("Too big SID for decoding, hex only")),b+this.blockLength)}set valueBigInt(a){q();let b=BigInt(a).toString(2);for(;b.length%7;)b="0"+b;let c=new Uint8Array(b.length/7);for(let a=0;a<c.length;a++)c[a]=parseInt(b.slice(7*a,7*a+7),2)+128*(a+1<c.length);this.fromBER(c.buffer,0,c.length)}toBER(a){if(this.isHexOnly){if(a)return new ArrayBuffer(this.valueHexView.byteLength);let b=this.valueHexView,c=new Uint8Array(this.blockLength);for(let a=0;a<this.blockLength-1;a++)c[a]=128|b[a];return c[this.blockLength-1]=b[this.blockLength-1],c.buffer}let b=m(this.valueDec,7);if(0===b.byteLength)return this.error="Error during encoding SID value",y;let c=new Uint8Array(b.byteLength);if(!a){let a=new Uint8Array(b),d=b.byteLength-1;for(let b=0;b<d;b++)c[b]=128|a[b];c[d]=a[d]}return c}toString(){let a="";if(this.isHexOnly)a=k.ToHex(this.valueHexView);else if(this.isFirstSid){let b=this.valueDec;this.valueDec<=39?a="0.":this.valueDec<=79?(a="1.",b-=40):(a="2.",b-=80),a+=b.toString()}else a=this.valueDec.toString();return a}toJSON(){return{...super.toJSON(),valueDec:this.valueDec,isFirstSid:this.isFirstSid}}}ad.NAME="sidBlock";class ae extends F{constructor({value:a="",...b}={}){super(b),this.value=[],a&&this.fromString(a)}fromBER(a,b,c){let d=b;for(;c>0;){let b=new ad;if(-1===(d=b.fromBER(a,d,c))){this.blockLength=0,this.error=b.error;break}0===this.value.length&&(b.isFirstSid=!0),this.blockLength+=b.blockLength,c-=b.blockLength,this.value.push(b)}return d}toBER(a){let b=[];for(let c=0;c<this.value.length;c++){let d=this.value[c].toBER(a);if(0===d.byteLength)return this.error=this.value[c].error,y;b.push(d)}return r(b)}fromString(a){this.value=[];let b=0,c=0,d="",e=!1;do if(d=-1===(c=a.indexOf(".",b))?a.substring(b):a.substring(b,c),b=c+1,e){let a=this.value[0],b=0;switch(a.valueDec){case 0:break;case 1:b=40;break;case 2:b=80;break;default:this.value=[];return}let c=parseInt(d,10);if(isNaN(c))return;a.valueDec=c+b,e=!1}else{let a=new ad;if(d>Number.MAX_SAFE_INTEGER)q(),a.valueBigInt=BigInt(d);else if(a.valueDec=parseInt(d,10),isNaN(a.valueDec))return;this.value.length||(a.isFirstSid=!0,e=!0),this.value.push(a)}while(-1!==c)}toString(){let a="",b=!1;for(let c=0;c<this.value.length;c++){b=this.value[c].isHexOnly;let d=this.value[c].toString();0!==c&&(a=`${a}.`),b?(d=`{${d}}`,this.value[c].isFirstSid?a=`2.{${d} - 80}`:a+=d):a+=d}return a}toJSON(){let a={...super.toJSON(),value:this.toString(),sidArray:[]};for(let b=0;b<this.value.length;b++)a.sidArray.push(this.value[b].toJSON());return a}}ae.NAME="ObjectIdentifierValueBlock";class af extends J{getValue(){return this.valueBlock.toString()}setValue(a){this.valueBlock.fromString(a)}constructor(a={}){super(a,ae),this.idBlock.tagClass=1,this.idBlock.tagNumber=6}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()||"empty"}`}toJSON(){return{...super.toJSON(),value:this.getValue()}}}I.ObjectIdentifier=af,af.NAME="OBJECT IDENTIFIER";class ag extends D(E){constructor({valueDec:a=0,...b}={}){super(b),this.valueDec=a}fromBER(a,b,c){if(0===c)return b;let e=d.toUint8Array(a);if(!s(this,e,b,c))return -1;let f=e.subarray(b,b+c);this.valueHexView=new Uint8Array(c);for(let a=0;a<c&&(this.valueHexView[a]=127&f[a],this.blockLength++,(128&f[a])!=0);a++);let g=new Uint8Array(this.blockLength);for(let a=0;a<this.blockLength;a++)g[a]=this.valueHexView[a];return(this.valueHexView=g,(128&f[this.blockLength-1])!=0)?(this.error="End of input reached before message was fully decoded",-1):(0===this.valueHexView[0]&&this.warnings.push("Needlessly long format of SID encoding"),this.blockLength<=8?this.valueDec=l(this.valueHexView,7):(this.isHexOnly=!0,this.warnings.push("Too big SID for decoding, hex only")),b+this.blockLength)}toBER(a){if(this.isHexOnly){if(a)return new ArrayBuffer(this.valueHexView.byteLength);let b=this.valueHexView,c=new Uint8Array(this.blockLength);for(let a=0;a<this.blockLength-1;a++)c[a]=128|b[a];return c[this.blockLength-1]=b[this.blockLength-1],c.buffer}let b=m(this.valueDec,7);if(0===b.byteLength)return this.error="Error during encoding SID value",y;let c=new Uint8Array(b.byteLength);if(!a){let a=new Uint8Array(b),d=b.byteLength-1;for(let b=0;b<d;b++)c[b]=128|a[b];c[d]=a[d]}return c.buffer}toString(){return this.isHexOnly?k.ToHex(this.valueHexView):this.valueDec.toString()}toJSON(){return{...super.toJSON(),valueDec:this.valueDec}}}ag.NAME="relativeSidBlock";class ah extends F{constructor({value:a="",...b}={}){super(b),this.value=[],a&&this.fromString(a)}fromBER(a,b,c){let d=b;for(;c>0;){let b=new ag;if(-1===(d=b.fromBER(a,d,c))){this.blockLength=0,this.error=b.error;break}this.blockLength+=b.blockLength,c-=b.blockLength,this.value.push(b)}return d}toBER(a,b){let c=[];for(let b=0;b<this.value.length;b++){let d=this.value[b].toBER(a);if(0===d.byteLength)return this.error=this.value[b].error,y;c.push(d)}return r(c)}fromString(a){this.value=[];let b=0,c=0,d="";do{d=-1===(c=a.indexOf(".",b))?a.substring(b):a.substring(b,c),b=c+1;let e=new ag;if(e.valueDec=parseInt(d,10),isNaN(e.valueDec))break;this.value.push(e)}while(-1!==c)return!0}toString(){let a="",b=!1;for(let c=0;c<this.value.length;c++){b=this.value[c].isHexOnly;let d=this.value[c].toString();0!==c&&(a=`${a}.`),b?a+=d=`{${d}}`:a+=d}return a}toJSON(){let a={...super.toJSON(),value:this.toString(),sidArray:[]};for(let b=0;b<this.value.length;b++)a.sidArray.push(this.value[b].toJSON());return a}}ah.NAME="RelativeObjectIdentifierValueBlock";class ai extends J{getValue(){return this.valueBlock.toString()}setValue(a){this.valueBlock.fromString(a)}constructor(a={}){super(a,ah),this.idBlock.tagClass=1,this.idBlock.tagNumber=13}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()||"empty"}`}toJSON(){return{...super.toJSON(),value:this.getValue()}}}I.RelativeObjectIdentifier=ai,ai.NAME="RelativeObjectIdentifier";class aj extends R{constructor(a={}){super(a),this.idBlock.tagClass=1,this.idBlock.tagNumber=16}}I.Sequence=aj,aj.NAME="SEQUENCE";class ak extends R{constructor(a={}){super(a),this.idBlock.tagClass=1,this.idBlock.tagNumber=17}}I.Set=ak,ak.NAME="SET";class al extends D(F){constructor({...a}={}){super(a),this.isHexOnly=!0,this.value=""}toJSON(){return{...super.toJSON(),value:this.value}}}al.NAME="StringValueBlock";class am extends al{}am.NAME="SimpleStringValueBlock";class an extends K{constructor({...a}={}){super(a,am)}fromBuffer(a){this.valueBlock.value=String.fromCharCode.apply(null,d.toUint8Array(a))}fromString(a){let b=a.length,c=this.valueBlock.valueHexView=new Uint8Array(b);for(let d=0;d<b;d++)c[d]=a.charCodeAt(d);this.valueBlock.value=a}}an.NAME="SIMPLE STRING";class ao extends an{fromBuffer(a){this.valueBlock.valueHexView=d.toUint8Array(a);try{this.valueBlock.value=k.ToUtf8String(a)}catch(b){this.warnings.push(`Error during "decodeURIComponent": ${b}, using raw string`),this.valueBlock.value=k.ToBinary(a)}}fromString(a){this.valueBlock.valueHexView=new Uint8Array(k.FromUtf8String(a)),this.valueBlock.value=a}}ao.NAME="Utf8StringValueBlock";class ap extends ao{constructor(a={}){super(a),this.idBlock.tagClass=1,this.idBlock.tagNumber=12}}I.Utf8String=ap,ap.NAME="UTF8String";class aq extends an{fromBuffer(a){this.valueBlock.value=k.ToUtf16String(a),this.valueBlock.valueHexView=d.toUint8Array(a)}fromString(a){this.valueBlock.value=a,this.valueBlock.valueHexView=new Uint8Array(k.FromUtf16String(a))}}aq.NAME="BmpStringValueBlock";class ar extends aq{constructor({...a}={}){super(a),this.idBlock.tagClass=1,this.idBlock.tagNumber=30}}I.BmpString=ar,ar.NAME="BMPString";class as extends an{fromBuffer(a){let b=ArrayBuffer.isView(a)?a.slice().buffer:a.slice(0),c=new Uint8Array(b);for(let a=0;a<c.length;a+=4)c[a]=c[a+3],c[a+1]=c[a+2],c[a+2]=0,c[a+3]=0;this.valueBlock.value=String.fromCharCode.apply(null,new Uint32Array(b))}fromString(a){let b=a.length,c=this.valueBlock.valueHexView=new Uint8Array(4*b);for(let d=0;d<b;d++){let b=new Uint8Array(m(a.charCodeAt(d),8));if(b.length>4)continue;let e=4-b.length;for(let a=b.length-1;a>=0;a--)c[4*d+a+e]=b[a]}this.valueBlock.value=a}}as.NAME="UniversalStringValueBlock";class at extends as{constructor({...a}={}){super(a),this.idBlock.tagClass=1,this.idBlock.tagNumber=28}}I.UniversalString=at,at.NAME="UniversalString";class au extends an{constructor(a={}){super(a),this.idBlock.tagClass=1,this.idBlock.tagNumber=18}}I.NumericString=au,au.NAME="NumericString";class av extends an{constructor(a={}){super(a),this.idBlock.tagClass=1,this.idBlock.tagNumber=19}}I.PrintableString=av,av.NAME="PrintableString";class aw extends an{constructor(a={}){super(a),this.idBlock.tagClass=1,this.idBlock.tagNumber=20}}I.TeletexString=aw,aw.NAME="TeletexString";class ax extends an{constructor(a={}){super(a),this.idBlock.tagClass=1,this.idBlock.tagNumber=21}}I.VideotexString=ax,ax.NAME="VideotexString";class ay extends an{constructor(a={}){super(a),this.idBlock.tagClass=1,this.idBlock.tagNumber=22}}I.IA5String=ay,ay.NAME="IA5String";class az extends an{constructor(a={}){super(a),this.idBlock.tagClass=1,this.idBlock.tagNumber=25}}I.GraphicString=az,az.NAME="GraphicString";class aA extends an{constructor(a={}){super(a),this.idBlock.tagClass=1,this.idBlock.tagNumber=26}}I.VisibleString=aA,aA.NAME="VisibleString";class aB extends an{constructor(a={}){super(a),this.idBlock.tagClass=1,this.idBlock.tagNumber=27}}I.GeneralString=aB,aB.NAME="GeneralString";class aC extends an{constructor(a={}){super(a),this.idBlock.tagClass=1,this.idBlock.tagNumber=29}}I.CharacterString=aC,aC.NAME="CharacterString";class aD extends aA{constructor({value:a,valueDate:b,...c}={}){if(super(c),this.year=0,this.month=0,this.day=0,this.hour=0,this.minute=0,this.second=0,a){this.fromString(a),this.valueBlock.valueHexView=new Uint8Array(a.length);for(let b=0;b<a.length;b++)this.valueBlock.valueHexView[b]=a.charCodeAt(b)}b&&(this.fromDate(b),this.valueBlock.valueHexView=new Uint8Array(this.toBuffer())),this.idBlock.tagClass=1,this.idBlock.tagNumber=23}fromBuffer(a){this.fromString(String.fromCharCode.apply(null,d.toUint8Array(a)))}toBuffer(){let a=this.toString(),b=new ArrayBuffer(a.length),c=new Uint8Array(b);for(let b=0;b<a.length;b++)c[b]=a.charCodeAt(b);return b}fromDate(a){this.year=a.getUTCFullYear(),this.month=a.getUTCMonth()+1,this.day=a.getUTCDate(),this.hour=a.getUTCHours(),this.minute=a.getUTCMinutes(),this.second=a.getUTCSeconds()}toDate(){return new Date(Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second))}fromString(a){let b=/(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})Z/ig.exec(a);if(null===b){this.error="Wrong input string for conversion";return}let c=parseInt(b[1],10);c>=50?this.year=1900+c:this.year=2e3+c,this.month=parseInt(b[2],10),this.day=parseInt(b[3],10),this.hour=parseInt(b[4],10),this.minute=parseInt(b[5],10),this.second=parseInt(b[6],10)}toString(a="iso"){if("iso"===a){let a=Array(7);return a[0]=p(this.year<2e3?this.year-1900:this.year-2e3,2),a[1]=p(this.month,2),a[2]=p(this.day,2),a[3]=p(this.hour,2),a[4]=p(this.minute,2),a[5]=p(this.second,2),a[6]="Z",a.join("")}return super.toString(a)}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.toDate().toISOString()}`}toJSON(){return{...super.toJSON(),year:this.year,month:this.month,day:this.day,hour:this.hour,minute:this.minute,second:this.second}}}I.UTCTime=aD,aD.NAME="UTCTime";class aE extends aD{constructor(a={}){super(a),null!=this.millisecond||(this.millisecond=0),this.idBlock.tagClass=1,this.idBlock.tagNumber=24}fromDate(a){super.fromDate(a),this.millisecond=a.getUTCMilliseconds()}toDate(){return new Date(Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second,this.millisecond))}fromString(a){let b,c=!1,d="",e="",f=0,g=0,h=0;if("Z"===a[a.length-1])d=a.substring(0,a.length-1),c=!0;else{if(isNaN(new Number(a[a.length-1]).valueOf()))throw Error("Wrong input string for conversion");d=a}if(c){if(-1!==d.indexOf("+")||-1!==d.indexOf("-"))throw Error("Wrong input string for conversion")}else{let a=1,b=d.indexOf("+"),c="";if(-1===b&&(b=d.indexOf("-"),a=-1),-1!==b){if(c=d.substring(b+1),d=d.substring(0,b),2!==c.length&&4!==c.length)throw Error("Wrong input string for conversion");let e=parseInt(c.substring(0,2),10);if(isNaN(e.valueOf()))throw Error("Wrong input string for conversion");if(g=a*e,4===c.length){if(isNaN((e=parseInt(c.substring(2,4),10)).valueOf()))throw Error("Wrong input string for conversion");h=a*e}}}let i=d.indexOf(".");if(-1===i&&(i=d.indexOf(",")),-1!==i){let a=new Number(`0${d.substring(i)}`);if(isNaN(a.valueOf()))throw Error("Wrong input string for conversion");f=a.valueOf(),e=d.substring(0,i)}else e=d;switch(!0){case 8===e.length:if(b=/(\d{4})(\d{2})(\d{2})/ig,-1!==i)throw Error("Wrong input string for conversion");break;case 10===e.length:if(b=/(\d{4})(\d{2})(\d{2})(\d{2})/ig,-1!==i){let a=60*f;this.minute=Math.floor(a),a=60*(a-this.minute),this.second=Math.floor(a),a=1e3*(a-this.second),this.millisecond=Math.floor(a)}break;case 12===e.length:if(b=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})/ig,-1!==i){let a=60*f;this.second=Math.floor(a),a=1e3*(a-this.second),this.millisecond=Math.floor(a)}break;case 14===e.length:if(b=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/ig,-1!==i){let a=1e3*f;this.millisecond=Math.floor(a)}break;default:throw Error("Wrong input string for conversion")}let j=b.exec(e);if(null===j)throw Error("Wrong input string for conversion");for(let a=1;a<j.length;a++)switch(a){case 1:this.year=parseInt(j[a],10);break;case 2:this.month=parseInt(j[a],10);break;case 3:this.day=parseInt(j[a],10);break;case 4:this.hour=parseInt(j[a],10)+g;break;case 5:this.minute=parseInt(j[a],10)+h;break;case 6:this.second=parseInt(j[a],10);break;default:throw Error("Wrong input string for conversion")}if(!1===c){let a=new Date(this.year,this.month,this.day,this.hour,this.minute,this.second,this.millisecond);this.year=a.getUTCFullYear(),this.month=a.getUTCMonth(),this.day=a.getUTCDay(),this.hour=a.getUTCHours(),this.minute=a.getUTCMinutes(),this.second=a.getUTCSeconds(),this.millisecond=a.getUTCMilliseconds()}}toString(a="iso"){if("iso"===a){let a=[];return a.push(p(this.year,4)),a.push(p(this.month,2)),a.push(p(this.day,2)),a.push(p(this.hour,2)),a.push(p(this.minute,2)),a.push(p(this.second,2)),0!==this.millisecond&&(a.push("."),a.push(p(this.millisecond,3))),a.push("Z"),a.join("")}return super.toString(a)}toJSON(){return{...super.toJSON(),millisecond:this.millisecond}}}I.GeneralizedTime=aE,aE.NAME="GeneralizedTime";class aF extends ap{constructor(a={}){super(a),this.idBlock.tagClass=1,this.idBlock.tagNumber=31}}I.DATE=aF,aF.NAME="DATE";class aG extends ap{constructor(a={}){super(a),this.idBlock.tagClass=1,this.idBlock.tagNumber=32}}I.TimeOfDay=aG,aG.NAME="TimeOfDay";class aH extends ap{constructor(a={}){super(a),this.idBlock.tagClass=1,this.idBlock.tagNumber=33}}I.DateTime=aH,aH.NAME="DateTime";class aI extends ap{constructor(a={}){super(a),this.idBlock.tagClass=1,this.idBlock.tagNumber=34}}I.Duration=aI,aI.NAME="Duration";class aJ extends ap{constructor(a={}){super(a),this.idBlock.tagClass=1,this.idBlock.tagNumber=14}}I.TIME=aJ,aJ.NAME="TIME";class aK{constructor({name:a="",optional:b=!1}={}){this.name=a,this.optional=b}}class aL extends aK{constructor({value:a=[],...b}={}){super(b),this.value=a}}class aM extends aK{constructor({value:a=new aK,local:b=!1,...c}={}){super(c),this.value=a,this.local=b}}function aN(a,b,c){if(c instanceof aL){for(let d of c.value)if(aN(a,b,d).verified)return{verified:!0,result:a};{let a={verified:!1,result:{error:"Wrong values for Choice type"}};return c.hasOwnProperty(w)&&(a.name=c.name),a}}if(c instanceof aK)return c.hasOwnProperty(w)&&(a[c.name]=b),{verified:!0,result:a};if(a instanceof Object==!1)return{verified:!1,result:{error:"Wrong root object"}};if(b instanceof Object==!1)return{verified:!1,result:{error:"Wrong ASN.1 data"}};if(c instanceof Object==!1||"idBlock"in c==!1||"fromBER"in c.idBlock==!1||"toBER"in c.idBlock==!1)return{verified:!1,result:{error:"Wrong ASN.1 schema"}};let d=c.idBlock.toBER(!1);if(0===d.byteLength)return{verified:!1,result:{error:"Error encoding idBlock for ASN.1 schema"}};if(-1===c.idBlock.fromBER(d,0,d.byteLength))return{verified:!1,result:{error:"Error decoding idBlock for ASN.1 schema"}};if(!1===c.idBlock.hasOwnProperty("tagClass"))return{verified:!1,result:{error:"Wrong ASN.1 schema"}};if(c.idBlock.tagClass!==b.idBlock.tagClass)return{verified:!1,result:a};if(!1===c.idBlock.hasOwnProperty("tagNumber"))return{verified:!1,result:{error:"Wrong ASN.1 schema"}};if(c.idBlock.tagNumber!==b.idBlock.tagNumber)return{verified:!1,result:a};if(!1===c.idBlock.hasOwnProperty("isConstructed"))return{verified:!1,result:{error:"Wrong ASN.1 schema"}};if(c.idBlock.isConstructed!==b.idBlock.isConstructed)return{verified:!1,result:a};if(!("isHexOnly"in c.idBlock))return{verified:!1,result:{error:"Wrong ASN.1 schema"}};if(c.idBlock.isHexOnly!==b.idBlock.isHexOnly)return{verified:!1,result:a};if(c.idBlock.isHexOnly){if(x in c.idBlock==!1)return{verified:!1,result:{error:"Wrong ASN.1 schema"}};let d=c.idBlock.valueHexView,e=b.idBlock.valueHexView;if(d.length!==e.length)return{verified:!1,result:a};for(let b=0;b<d.length;b++)if(d[b]!==e[1])return{verified:!1,result:a}}if(c.name&&(c.name=c.name.replace(/^\s+|\s+$/g,""),c.name&&(a[c.name]=b)),c instanceof I.Constructed){let d=0,e={verified:!1,result:{error:"Unknown error"}},f=c.valueBlock.value.length;if(f>0&&c.valueBlock.value[0]instanceof aM&&(f=b.valueBlock.value.length),0===f)return{verified:!0,result:a};if(0===b.valueBlock.value.length&&0!==c.valueBlock.value.length){let b=!0;for(let a=0;a<c.valueBlock.value.length;a++)b=b&&(c.valueBlock.value[a].optional||!1);return b?{verified:!0,result:a}:(c.name&&(c.name=c.name.replace(/^\s+|\s+$/g,""),c.name&&delete a[c.name]),a.error="Inconsistent object length",{verified:!1,result:a})}for(let g=0;g<f;g++)if(g-d>=b.valueBlock.value.length){if(!1===c.valueBlock.value[g].optional){let b={verified:!1,result:a};return a.error="Inconsistent length between ASN.1 data and schema",c.name&&(c.name=c.name.replace(/^\s+|\s+$/g,""),c.name&&(delete a[c.name],b.name=c.name)),b}}else if(c.valueBlock.value[0]instanceof aM){if(!1===(e=aN(a,b.valueBlock.value[g],c.valueBlock.value[0].value)).verified)if(!c.valueBlock.value[0].optional)return c.name&&(c.name=c.name.replace(/^\s+|\s+$/g,""),c.name&&delete a[c.name]),e;else d++;if(w in c.valueBlock.value[0]&&c.valueBlock.value[0].name.length>0){let d={};void 0===(d="local"in c.valueBlock.value[0]&&c.valueBlock.value[0].local?b:a)[c.valueBlock.value[0].name]&&(d[c.valueBlock.value[0].name]=[]),d[c.valueBlock.value[0].name].push(b.valueBlock.value[g])}}else if(!1===(e=aN(a,b.valueBlock.value[g-d],c.valueBlock.value[g])).verified)if(!c.valueBlock.value[g].optional)return c.name&&(c.name=c.name.replace(/^\s+|\s+$/g,""),c.name&&delete a[c.name]),e;else d++;if(!1===e.verified){let b={verified:!1,result:a};return c.name&&(c.name=c.name.replace(/^\s+|\s+$/g,""),c.name&&(delete a[c.name],b.name=c.name)),b}return{verified:!0,result:a}}if(c.primitiveSchema&&x in b.valueBlock){let d=P(b.valueBlock.valueHexView);if(-1===d.offset){let b={verified:!1,result:d.result};return c.name&&(c.name=c.name.replace(/^\s+|\s+$/g,""),c.name&&(delete a[c.name],b.name=c.name)),b}return aN(a,d.result,c.primitiveSchema)}return{verified:!0,result:a}}a.s(["Any",0,aK,"BaseBlock",0,J,"BaseStringBlock",0,K,"BitString",0,$,"BmpString",0,ar,"Boolean",0,W,"CharacterString",0,aC,"Choice",0,aL,"Constructed",0,R,"DATE",0,aF,"DEFAULT_MAX_CONTENT_LENGTH",0,0x1000000,"DEFAULT_MAX_DEPTH",0,100,"DEFAULT_MAX_NODES",0,1e4,"DateTime",0,aH,"Duration",0,aI,"EndOfContent",0,T,"Enumerated",0,ac,"GeneralString",0,aB,"GeneralizedTime",0,aE,"GraphicString",0,az,"HexBlock",0,D,"IA5String",0,ay,"Integer",0,ab,"Null",0,U,"NumericString",0,au,"ObjectIdentifier",0,af,"OctetString",0,Y,"Primitive",0,M,"PrintableString",0,av,"RawData",0,class{get data(){return this.dataView.slice().buffer}set data(a){this.dataView=d.toUint8Array(a)}constructor({data:a=z}={}){this.dataView=d.toUint8Array(a)}fromBER(a,b,c){let e=b+c;return this.dataView=d.toUint8Array(a).subarray(b,e),e}toBER(a){return this.dataView.slice().buffer}},"RelativeObjectIdentifier",0,ai,"Repeated",0,aM,"Sequence",0,aj,"Set",0,ak,"TIME",0,aJ,"TeletexString",0,aw,"TimeOfDay",0,aG,"UTCTime",0,aD,"UniversalString",0,at,"Utf8String",0,ap,"ValueBlock",0,F,"VideotexString",0,ax,"ViewWriter",0,t,"VisibleString",0,aA,"compareSchema",0,aN,"fromBER",0,function(a,b={}){if(!a.byteLength){let a=new J({},F);return a.error="Input buffer has zero length",{offset:-1,result:a}}return P(d.toUint8Array(a).slice(),0,a.byteLength,N(b))},"verifySchema",0,function(a,b){if(b instanceof Object==!1)return{verified:!1,result:{error:"Wrong ASN.1 schema type"}};let c=P(d.toUint8Array(a));return -1===c.offset?{verified:!1,result:c.result}:aN(c.result,c.result,b)}],753194)},132701,(a,b,c)=>{"use strict";function d(a){return Object.prototype.toString.call(a)}function e(a){return a===DataView||a.prototype instanceof DataView}function f(a){let b=m(a),c=new Uint8Array(b.byteLength);return c.set(b),c}function g(a){return"[object ArrayBuffer]"===d(a)}function h(a){return"u">typeof SharedArrayBuffer&&"[object SharedArrayBuffer]"===d(a)}function i(a){return g(a)||h(a)}function j(a){return!!ArrayBuffer.isView(a)||!!a&&"object"==typeof a&&"number"==typeof a.byteOffset&&"number"==typeof a.byteLength&&i(a.buffer)}function k(a){return i(a)||j(a)}function l(a){if(!k(a))throw TypeError("Expected ArrayBuffer, SharedArrayBuffer, or ArrayBufferView")}function m(a){return(l(a),i(a))?new Uint8Array(a):new Uint8Array(a.buffer,a.byteOffset,a.byteLength)}Object.defineProperty(c,"__esModule",{value:!0}),c.isArrayBuffer=g,c.isSharedArrayBuffer=h,c.isArrayBufferLike=i,c.isArrayBufferView=j,c.isBufferSource=k,c.assertBufferSource=l,c.toUint8Array=m,c.toUint8ArrayCopy=function(a){return f(a)},c.toArrayBuffer=function(a){if(l(a),g(a))return a;let b=new ArrayBuffer(a.byteLength);return new Uint8Array(b).set(m(a)),b},c.toArrayBufferLike=function(a){return(l(a),i(a))?a:0===a.byteOffset&&a.byteLength===a.buffer.byteLength?a.buffer:f(a).buffer},c.toView=n,c.toViewCopy=function(a,b){return n(f(a),b)};function n(a,b){if(l(a),ArrayBuffer.isView(a)&&a.constructor===b)return a;let c=m(a),d=e(b)?1:b.BYTES_PER_ELEMENT??1;if(c.byteOffset%d!=0||c.byteLength%d!=0)throw RangeError(`Cannot create ${b.name} over unaligned byte range`);return e(b)?new b(c.buffer,c.byteOffset,c.byteLength):new b(c.buffer,c.byteOffset,c.byteLength/d)}},38836,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.concatToUint8Array=e,c.concat=function(a,b,...c){let f,g;"function"==typeof b?(f=Array.from(a),g=b):(0,d.isBufferSource)(a)?f=[a,b,...c].filter(d.isBufferSource):(f=Array.from(a),b&&f.push(b),f.push(...c));let h=e(f);return g?(0,d.toView)(h,g):h.buffer};let d=a.r(132701);function e(a){let b=[],c=0;for(let e of a){let a=(0,d.toUint8Array)(e);b.push(a),c+=a.byteLength}let e=new Uint8Array(c),f=0;for(let a of b)e.set(a,f),f+=a.byteLength;return e}},481112,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.equal=function(a,b,c={}){let e=(0,d.toUint8Array)(a),f=(0,d.toUint8Array)(b);if(!c.constantTime&&e.byteLength!==f.byteLength)return!1;let g=Math.max(e.byteLength,f.byteLength),h=e.byteLength^f.byteLength;for(let a=0;a<g;a++)h|=(e[a]??0)^(f[a]??0);return 0===h};let d=a.r(132701)},725277,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.indexOf=i,c.lastIndexOf=function(a,b,c){var f;let i,j,k=(0,d.toUint8Array)(a),l=g(b,c),[m,n]=(f=k.byteLength,i=e(c?.start,f,f),i>=(j=e(c?.end,0,f))?[j,i]:[i,i]);if(0===l.byteLength)return n;let o=n-l.byteLength;if(o<m)return -1;for(let a=o;a>=m;a--)if(h(k,l,a))return a;return -1},c.includes=function(a,b,c){return -1!==i(a,b,c)},c.startsWith=function(a,b,c){let e=(0,d.toUint8Array)(a),f=g(b,c);return!(f.byteLength>e.byteLength)&&h(e,f,0)},c.endsWith=function(a,b,c){let e=(0,d.toUint8Array)(a),f=g(b,c);return!(f.byteLength>e.byteLength)&&h(e,f,e.byteLength-f.byteLength)},c.slice=function(a,b,c){let e=(0,d.toUint8Array)(a),g=f(b,0,e.byteLength),h=f(c,e.byteLength,e.byteLength);return h<=g?e.subarray(g,g):e.subarray(g,h)},c.tail=function(a,b){let c=(0,d.toUint8Array)(a),e=Number.isFinite(b)?Math.max(0,Math.trunc(b)):0;return e>=c.byteLength?c:c.subarray(c.byteLength-e)},c.copy=function(a){return(0,d.toUint8ArrayCopy)(a)},c.compare=function(a,b){let c=(0,d.toUint8Array)(a),e=(0,d.toUint8Array)(b),f=Math.min(c.byteLength,e.byteLength);for(let a=0;a<f;a++){if(c[a]<e[a])return -1;if(c[a]>e[a])return 1}return c.byteLength<e.byteLength?-1:+(c.byteLength>e.byteLength)};let d=a.r(132701);function e(a,b,c){let d=Number.isFinite(a)?Math.trunc(a):b;return d<=0?0:d>=c?c:d}function f(a,b,c){let d=Number.isFinite(a)?Math.trunc(a):b;return d<0?Math.max(c+d,0):d>c?c:d}function g(a,b){if("string"==typeof a)return b?.encoding==="utf8"?new TextEncoder().encode(a):function(a){let b=new Uint8Array(a.length);for(let c=0;c<a.length;c++)b[c]=255&a.charCodeAt(c);return b}(a);return(0,d.toUint8Array)(a)}function h(a,b,c){for(let d=0;d<b.byteLength;d++)if(a[c+d]!==b[d])return!1;return!0}function i(a,b,c){var f;let i,j,k=(0,d.toUint8Array)(a),l=g(b,c),[m,n]=(f=k.byteLength,i=e(c?.start,0,f),(j=e(c?.end,f,f))>=i?[i,j]:[i,i]);if(0===l.byteLength)return m;let o=n-l.byteLength;if(o<m)return -1;for(let a=m;a<=o;a++)if(h(k,l,a))return a;return -1}},315902,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.tail=c.startsWith=c.slice=c.lastIndexOf=c.indexOf=c.includes=c.endsWith=c.copy=c.compare=c.equal=c.concatToUint8Array=c.concat=c.toViewCopy=c.toView=c.toUint8ArrayCopy=c.toUint8Array=c.toArrayBufferLike=c.toArrayBuffer=c.isSharedArrayBuffer=c.isBufferSource=c.isArrayBufferView=c.isArrayBufferLike=c.isArrayBuffer=c.assertBufferSource=void 0;var d=a.r(132701);Object.defineProperty(c,"assertBufferSource",{enumerable:!0,get:function(){return d.assertBufferSource}}),Object.defineProperty(c,"isArrayBuffer",{enumerable:!0,get:function(){return d.isArrayBuffer}}),Object.defineProperty(c,"isArrayBufferLike",{enumerable:!0,get:function(){return d.isArrayBufferLike}}),Object.defineProperty(c,"isArrayBufferView",{enumerable:!0,get:function(){return d.isArrayBufferView}}),Object.defineProperty(c,"isBufferSource",{enumerable:!0,get:function(){return d.isBufferSource}}),Object.defineProperty(c,"isSharedArrayBuffer",{enumerable:!0,get:function(){return d.isSharedArrayBuffer}}),Object.defineProperty(c,"toArrayBuffer",{enumerable:!0,get:function(){return d.toArrayBuffer}}),Object.defineProperty(c,"toArrayBufferLike",{enumerable:!0,get:function(){return d.toArrayBufferLike}}),Object.defineProperty(c,"toUint8Array",{enumerable:!0,get:function(){return d.toUint8Array}}),Object.defineProperty(c,"toUint8ArrayCopy",{enumerable:!0,get:function(){return d.toUint8ArrayCopy}}),Object.defineProperty(c,"toView",{enumerable:!0,get:function(){return d.toView}}),Object.defineProperty(c,"toViewCopy",{enumerable:!0,get:function(){return d.toViewCopy}});var e=a.r(38836);Object.defineProperty(c,"concat",{enumerable:!0,get:function(){return e.concat}}),Object.defineProperty(c,"concatToUint8Array",{enumerable:!0,get:function(){return e.concatToUint8Array}});var f=a.r(481112);Object.defineProperty(c,"equal",{enumerable:!0,get:function(){return f.equal}});var g=a.r(725277);Object.defineProperty(c,"compare",{enumerable:!0,get:function(){return g.compare}}),Object.defineProperty(c,"copy",{enumerable:!0,get:function(){return g.copy}}),Object.defineProperty(c,"endsWith",{enumerable:!0,get:function(){return g.endsWith}}),Object.defineProperty(c,"includes",{enumerable:!0,get:function(){return g.includes}}),Object.defineProperty(c,"indexOf",{enumerable:!0,get:function(){return g.indexOf}}),Object.defineProperty(c,"lastIndexOf",{enumerable:!0,get:function(){return g.lastIndexOf}}),Object.defineProperty(c,"slice",{enumerable:!0,get:function(){return g.slice}}),Object.defineProperty(c,"startsWith",{enumerable:!0,get:function(){return g.startsWith}}),Object.defineProperty(c,"tail",{enumerable:!0,get:function(){return g.tail}})},306188,(a,b,c)=>{"use strict";var d,e,f,g;Object.defineProperty(c,"__esModule",{value:!0}),c.AsnPropTypes=c.AsnTypeTypes=void 0,(f=d||(c.AsnTypeTypes=d={}))[f.Sequence=0]="Sequence",f[f.Set=1]="Set",f[f.Choice=2]="Choice",(g=e||(c.AsnPropTypes=e={}))[g.Any=1]="Any",g[g.Boolean=2]="Boolean",g[g.OctetString=3]="OctetString",g[g.BitString=4]="BitString",g[g.Integer=5]="Integer",g[g.Enumerated=6]="Enumerated",g[g.ObjectIdentifier=7]="ObjectIdentifier",g[g.Utf8String=8]="Utf8String",g[g.BmpString=9]="BmpString",g[g.UniversalString=10]="UniversalString",g[g.NumericString=11]="NumericString",g[g.PrintableString=12]="PrintableString",g[g.TeletexString=13]="TeletexString",g[g.VideotexString=14]="VideotexString",g[g.IA5String=15]="IA5String",g[g.GraphicString=16]="GraphicString",g[g.VisibleString=17]="VisibleString",g[g.GeneralString=18]="GeneralString",g[g.CharacterString=19]="CharacterString",g[g.UTCTime=20]="UTCTime",g[g.GeneralizedTime=21]="GeneralizedTime",g[g.DATE=22]="DATE",g[g.TimeOfDay=23]="TimeOfDay",g[g.DateTime=24]="DateTime",g[g.Duration=25]="Duration",g[g.TIME=26]="TIME",g[g.Null=27]="Null"},823901,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.BitString=void 0;let d=a.r(610199).__importStar(a.r(753194)),e=a.r(315902);class f{unusedBits=0;value=new ArrayBuffer(0);constructor(a,b=0){if(a)if("number"==typeof a)this.fromNumber(a);else if((0,e.isBufferSource)(a))this.unusedBits=b,this.value=(0,e.toArrayBuffer)(a);else throw TypeError("Unsupported type of 'params' argument for BitString")}fromASN(a){if(!(a instanceof d.BitString))throw TypeError("Argument 'asn' is not instance of ASN.1 BitString");return this.unusedBits=a.valueBlock.unusedBits,this.value=(0,e.toArrayBuffer)(a.valueBlock.valueHex),this}toASN(){return new d.BitString({unusedBits:this.unusedBits,valueHex:this.value})}toSchema(a){return new d.BitString({name:a})}toNumber(){let a="";for(let b of new Uint8Array(this.value))a+=b.toString(2).padStart(8,"0");return a=a.split("").reverse().join(""),this.unusedBits&&(a=a.slice(this.unusedBits).padStart(this.unusedBits,"0")),parseInt(a,2)}fromNumber(a){let b=a.toString(2),c=b.length+7>>3;this.unusedBits=(c<<3)-b.length;let d=new Uint8Array(c);b=b.padStart(c<<3,"0").split("").reverse().join("");let e=0;for(;e<c;)d[e]=parseInt(b.slice(e<<3,(e<<3)+8),2),e++;this.value=d.buffer}}c.BitString=f},417967,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.OctetString=void 0;let d=a.r(610199).__importStar(a.r(753194)),e=a.r(315902);c.OctetString=class{buffer;get byteLength(){return this.buffer.byteLength}get byteOffset(){return 0}constructor(a){"number"==typeof a?this.buffer=new ArrayBuffer(a):(0,e.isBufferSource)(a)?this.buffer=(0,e.toArrayBuffer)(a):Array.isArray(a)?this.buffer=new Uint8Array(a).buffer:this.buffer=new ArrayBuffer(0)}fromASN(a){if(!(a instanceof d.OctetString))throw TypeError("Argument 'asn' is not instance of ASN.1 OctetString");return this.buffer=(0,e.toArrayBuffer)(a.valueBlock.valueHex),this}toASN(){return new d.OctetString({valueHex:this.buffer})}toSchema(a){return new d.OctetString({name:a})}}},121329,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});let d=a.r(610199);d.__exportStar(a.r(823901),c),d.__exportStar(a.r(417967),c)},510022,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.AsnNullConverter=c.AsnGeneralizedTimeConverter=c.AsnUTCTimeConverter=c.AsnCharacterStringConverter=c.AsnGeneralStringConverter=c.AsnVisibleStringConverter=c.AsnGraphicStringConverter=c.AsnIA5StringConverter=c.AsnVideotexStringConverter=c.AsnTeletexStringConverter=c.AsnPrintableStringConverter=c.AsnNumericStringConverter=c.AsnUniversalStringConverter=c.AsnBmpStringConverter=c.AsnUtf8StringConverter=c.AsnConstructedOctetStringConverter=c.AsnOctetStringConverter=c.AsnBooleanConverter=c.AsnObjectIdentifierConverter=c.AsnBitStringConverter=c.AsnIntegerBigIntConverter=c.AsnIntegerArrayBufferConverter=c.AsnEnumeratedConverter=c.AsnIntegerConverter=c.AsnAnyConverter=void 0,c.defaultConverter=function(a){switch(a){case f.AsnPropTypes.Any:return c.AsnAnyConverter;case f.AsnPropTypes.BitString:return c.AsnBitStringConverter;case f.AsnPropTypes.BmpString:return c.AsnBmpStringConverter;case f.AsnPropTypes.Boolean:return c.AsnBooleanConverter;case f.AsnPropTypes.CharacterString:return c.AsnCharacterStringConverter;case f.AsnPropTypes.Enumerated:return c.AsnEnumeratedConverter;case f.AsnPropTypes.GeneralString:return c.AsnGeneralStringConverter;case f.AsnPropTypes.GeneralizedTime:return c.AsnGeneralizedTimeConverter;case f.AsnPropTypes.GraphicString:return c.AsnGraphicStringConverter;case f.AsnPropTypes.IA5String:return c.AsnIA5StringConverter;case f.AsnPropTypes.Integer:return c.AsnIntegerConverter;case f.AsnPropTypes.Null:return c.AsnNullConverter;case f.AsnPropTypes.NumericString:return c.AsnNumericStringConverter;case f.AsnPropTypes.ObjectIdentifier:return c.AsnObjectIdentifierConverter;case f.AsnPropTypes.OctetString:return c.AsnOctetStringConverter;case f.AsnPropTypes.PrintableString:return c.AsnPrintableStringConverter;case f.AsnPropTypes.TeletexString:return c.AsnTeletexStringConverter;case f.AsnPropTypes.UTCTime:return c.AsnUTCTimeConverter;case f.AsnPropTypes.UniversalString:return c.AsnUniversalStringConverter;case f.AsnPropTypes.Utf8String:return c.AsnUtf8StringConverter;case f.AsnPropTypes.VideotexString:return c.AsnVideotexStringConverter;case f.AsnPropTypes.VisibleString:return c.AsnVisibleStringConverter;default:return null}};let d=a.r(610199).__importStar(a.r(753194)),e=a.r(315902),f=a.r(306188),g=a.r(121329);function h(a){return{fromASN:a=>a.valueBlock.value,toASN:b=>new a({value:b})}}c.AsnAnyConverter={fromASN:a=>a instanceof d.Null?null:(0,e.toArrayBuffer)(a.valueBeforeDecodeView),toASN:a=>{if(null===a)return new d.Null;let b=d.fromBER(a);if(b.result.error)throw Error(b.result.error);return b.result}},c.AsnIntegerConverter={fromASN:a=>a.valueBlock.valueHexView.byteLength>=4?a.valueBlock.toString():a.valueBlock.valueDec,toASN:a=>new d.Integer({value:+a})},c.AsnEnumeratedConverter={fromASN:a=>a.valueBlock.valueDec,toASN:a=>new d.Enumerated({value:a})},c.AsnIntegerArrayBufferConverter={fromASN:a=>(0,e.toArrayBuffer)(a.valueBlock.valueHexView),toASN:a=>new d.Integer({valueHex:a})},c.AsnIntegerBigIntConverter={fromASN:a=>a.toBigInt(),toASN:a=>d.Integer.fromBigInt(a)},c.AsnBitStringConverter={fromASN:a=>(0,e.toArrayBuffer)(a.valueBlock.valueHexView),toASN:a=>new d.BitString({valueHex:a})},c.AsnObjectIdentifierConverter={fromASN:a=>a.valueBlock.toString(),toASN:a=>new d.ObjectIdentifier({value:a})},c.AsnBooleanConverter={fromASN:a=>a.valueBlock.value,toASN:a=>new d.Boolean({value:a})},c.AsnOctetStringConverter={fromASN:a=>(0,e.toArrayBuffer)(a.valueBlock.valueHexView),toASN:a=>new d.OctetString({valueHex:a})},c.AsnConstructedOctetStringConverter={fromASN:a=>new g.OctetString(a.getValue()),toASN:a=>a.toASN()},c.AsnUtf8StringConverter=h(d.Utf8String),c.AsnBmpStringConverter=h(d.BmpString),c.AsnUniversalStringConverter=h(d.UniversalString),c.AsnNumericStringConverter=h(d.NumericString),c.AsnPrintableStringConverter=h(d.PrintableString),c.AsnTeletexStringConverter=h(d.TeletexString),c.AsnVideotexStringConverter=h(d.VideotexString),c.AsnIA5StringConverter=h(d.IA5String),c.AsnGraphicStringConverter=h(d.GraphicString),c.AsnVisibleStringConverter=h(d.VisibleString),c.AsnGeneralStringConverter=h(d.GeneralString),c.AsnCharacterStringConverter=h(d.CharacterString),c.AsnUTCTimeConverter={fromASN:a=>a.toDate(),toASN:a=>new d.UTCTime({valueDate:a})},c.AsnGeneralizedTimeConverter={fromASN:a=>a.toDate(),toASN:a=>new d.GeneralizedTime({valueDate:a})},c.AsnNullConverter={fromASN:()=>null,toASN:()=>new d.Null}},770040,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.isConvertible=function a(b){return"function"==typeof b&&b.prototype?!!b.prototype.toASN&&!!b.prototype.fromASN||a(b.prototype):!!(b&&"object"==typeof b&&"toASN"in b&&"fromASN"in b)},c.isTypeOfArray=function a(b){if(b){let c=Object.getPrototypeOf(b);return c?.prototype?.constructor===Array||a(c)}return!1},c.isArrayEqual=function(a,b){if(!(a&&b)||a.byteLength!==b.byteLength)return!1;let c=new Uint8Array(a),d=new Uint8Array(b);for(let b=0;b<a.byteLength;b++)if(c[b]!==d[b])return!1;return!0}},695093,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.AsnSchemaStorage=void 0;let d=a.r(610199).__importStar(a.r(753194)),e=a.r(306188),f=a.r(770040);class g{items=new WeakMap;has(a){return this.items.has(a)}get(a,b=!1){let c=this.items.get(a);if(!c)throw Error(`Cannot get schema for '${a.prototype.constructor.name}' target`);if(b&&!c.schema)throw Error(`Schema '${a.prototype.constructor.name}' doesn't contain ASN.1 schema. Call 'AsnSchemaStorage.cache'.`);return c}cache(a){let b=this.get(a);b.schema||(b.schema=this.create(a,!0))}createDefault(a){let b={type:e.AsnTypeTypes.Sequence,items:{}},c=this.findParentSchema(a);return c&&(Object.assign(b,c),b.items=Object.assign({},b.items,c.items)),b}create(a,b){let c=this.items.get(a)||this.createDefault(a),g=[];for(let a in c.items){let h,i=c.items[a],j=b?a:"";if("number"==typeof i.type){let a=e.AsnPropTypes[i.type],b=d[a];if(!b)throw Error(`Cannot get ASN1 class by name '${a}'`);h=new b({name:j})}else(0,f.isConvertible)(i.type)?h=new i.type().toSchema(j):i.optional?this.get(i.type).type===e.AsnTypeTypes.Choice?h=new d.Any({name:j}):(h=this.create(i.type,!1)).name=j:h=new d.Any({name:j});let k=!!i.optional||void 0!==i.defaultValue;if(i.repeated&&(h.name="",h=new("set"===i.repeated?d.Set:d.Sequence)({name:"",value:[new d.Repeated({name:j,value:h})]})),null!==i.context&&void 0!==i.context)if(i.implicit)if("number"==typeof i.type||(0,f.isConvertible)(i.type)){let a=i.repeated?d.Constructed:d.Primitive;g.push(new a({name:j,optional:k,idBlock:{tagClass:3,tagNumber:i.context}}))}else{this.cache(i.type);let a=!!i.repeated,b=a?h:this.get(i.type,!0).schema;b="valueBlock"in b?b.valueBlock.value:b.value,g.push(new d.Constructed({name:a?"":j,optional:k,idBlock:{tagClass:3,tagNumber:i.context},value:b}))}else g.push(new d.Constructed({optional:k,idBlock:{tagClass:3,tagNumber:i.context},value:[h]}));else h.optional=k,g.push(h)}switch(c.type){case e.AsnTypeTypes.Sequence:return new d.Sequence({value:g,name:""});case e.AsnTypeTypes.Set:return new d.Set({value:g,name:""});case e.AsnTypeTypes.Choice:return new d.Choice({value:g,name:""});default:throw Error("Unsupported ASN1 type in use")}}set(a,b){return this.items.set(a,b),this}findParentSchema(a){let b=Object.getPrototypeOf(a);return b?this.items.get(b)||this.findParentSchema(b):null}}c.AsnSchemaStorage=g},844987,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.schemaStorage=void 0,c.schemaStorage=new(a.r(695093)).AsnSchemaStorage},589896,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.AsnProp=c.AsnSequenceType=c.AsnSetType=c.AsnChoiceType=c.AsnType=void 0;let d=a.r(610199).__importStar(a.r(510022)),e=a.r(306188),f=a.r(844987);c.AsnType=a=>b=>{let c;f.schemaStorage.has(b)?c=f.schemaStorage.get(b):(c=f.schemaStorage.createDefault(b),f.schemaStorage.set(b,c)),Object.assign(c,a)},c.AsnChoiceType=()=>(0,c.AsnType)({type:e.AsnTypeTypes.Choice}),c.AsnSetType=a=>(0,c.AsnType)({type:e.AsnTypeTypes.Set,...a}),c.AsnSequenceType=a=>(0,c.AsnType)({type:e.AsnTypeTypes.Sequence,...a}),c.AsnProp=a=>(b,c)=>{let e;f.schemaStorage.has(b.constructor)?e=f.schemaStorage.get(b.constructor):(e=f.schemaStorage.createDefault(b.constructor),f.schemaStorage.set(b.constructor,e));let g=Object.assign({},a);if("number"==typeof g.type&&!g.converter){let e=d.defaultConverter(a.type);if(!e)throw Error(`Cannot get default converter for property '${c}' of ${b.constructor.name}`);g.converter=e}g.raw=a.raw,e.items[c]=g}},248050,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.AsnSchemaValidationError=void 0,c.AsnSchemaValidationError=class extends Error{schemas=[]}},249220,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),a.r(610199).__exportStar(a.r(248050),c)},672411,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.AsnParser=void 0;let d=a.r(610199),e=d.__importStar(a.r(753194)),f=a.r(315902),g=a.r(306188),h=d.__importStar(a.r(510022)),i=a.r(249220),j=a.r(770040),k=a.r(844987);c.AsnParser=class{static parse(a,b,c){let d=e.fromBER((0,f.toArrayBuffer)(a),c?.berOptions);if(d.result.error)throw Error(d.result.error);return this.fromASN(d.result,b,c)}static fromASN(a,b,c){try{if((0,j.isConvertible)(b))return new b().fromASN(a);let d=k.schemaStorage.get(b);k.schemaStorage.cache(b);let e=d.schema,f=this.handleChoiceTypes(a,d,b,e,c);if(f?.result)return f.result;f?.targetSchema&&(e=f.targetSchema);let g=this.handleSequenceTypes(a,d,b,e),h=new b;if((0,j.isTypeOfArray)(b))return this.handleArrayTypes(a,d,b,c);return this.processSchemaItems(d,g,h,c),h}catch(a){throw a instanceof i.AsnSchemaValidationError&&a.schemas.push(b.name),a}}static handleChoiceTypes(a,b,c,d,f){if(a.constructor===e.Constructed&&b.type===g.AsnTypeTypes.Choice&&3===a.idBlock.tagClass)for(let d in b.items){let h=b.items[d];if(h.context===a.idBlock.tagNumber&&h.implicit&&"function"==typeof h.type&&k.schemaStorage.has(h.type)){let b=k.schemaStorage.get(h.type);if(b&&b.type===g.AsnTypeTypes.Sequence){let b=new e.Sequence;if("value"in a.valueBlock&&Array.isArray(a.valueBlock.value)&&"value"in b.valueBlock){b.valueBlock.value=a.valueBlock.value;let e=this.fromASN(b,h.type,f),g=new c;return g[d]=e,{result:g}}}}}else if(a.constructor===e.Constructed&&b.type!==g.AsnTypeTypes.Choice){let c=new e.Constructed({idBlock:{tagClass:3,tagNumber:a.idBlock.tagNumber},value:b.schema.valueBlock.value});for(let c in b.items)delete a[c];return{targetSchema:c}}return null}static handleSequenceTypes(a,b,c,d){if(b.type===g.AsnTypeTypes.Sequence){let b=e.compareSchema({},a,d);if(!b.verified)throw new i.AsnSchemaValidationError(`Data does not match to ${c.name} ASN1 schema.${b.result.error?` ${b.result.error}`:""}`);return b}{let b=e.compareSchema({},a,d);if(!b.verified)throw new i.AsnSchemaValidationError(`Data does not match to ${c.name} ASN1 schema.${b.result.error?` ${b.result.error}`:""}`);return b}}static processRepeatedField(a,b,c){let d=a.slice(b);if(1===d.length&&"Sequence"===d[0].constructor.name){let a=d[0];a.valueBlock&&a.valueBlock.value&&Array.isArray(a.valueBlock.value)&&(d=a.valueBlock.value)}if("number"!=typeof c.type)return d.filter(a=>a&&a.valueBlock).map(a=>{try{return this.fromASN(a,c.type)}catch{return}}).filter(a=>void 0!==a);{let a=h.defaultConverter(c.type);if(!a)throw Error(`No converter for ASN.1 type ${c.type}`);return d.filter(a=>a&&a.valueBlock).map(b=>{try{return a.fromASN(b)}catch{return}}).filter(a=>void 0!==a)}}static processPrimitiveField(a,b){let c=h.defaultConverter(b.type);if(!c)throw Error(`No converter for ASN.1 type ${b.type}`);return c.fromASN(a)}static isOptionalChoiceField(a){return a.optional&&"function"==typeof a.type&&k.schemaStorage.has(a.type)&&k.schemaStorage.get(a.type).type===g.AsnTypeTypes.Choice}static processOptionalChoiceField(a,b){try{let c=this.fromASN(a,b.type);return{processed:!0,value:c}}catch(a){if(a instanceof i.AsnSchemaValidationError&&/Wrong values for Choice type/.test(a.message))return{processed:!1};throw a}}static handleArrayTypes(a,b,c,d){if(!("value"in a.valueBlock&&Array.isArray(a.valueBlock.value)))throw Error("Cannot get items from the ASN.1 parsed value. ASN.1 object is not constructed.");let e=b.itemType;if("number"!=typeof e)return c.from(a.valueBlock.value,a=>this.fromASN(a,e,d));{let b=h.defaultConverter(e);if(!b)throw Error(`Cannot get default converter for array item of ${c.name} ASN1 schema`);return c.from(a.valueBlock.value,a=>b.fromASN(a))}}static processSchemaItems(a,b,c,d){for(let e in a.items){let f,g=b.result[e];if(!g)continue;let h=a.items[e],i=h.type;(f="number"==typeof i||(0,j.isConvertible)(i)?this.processPrimitiveSchemaItem(g,h,i,d):this.processComplexSchemaItem(g,h,i,d))&&"object"==typeof f&&"value"in f&&"raw"in f?(c[e]=f.value,c[`${e}Raw`]=f.raw):c[e]=f}}static processPrimitiveSchemaItem(a,b,c,d){let e=b.converter??((0,j.isConvertible)(c)?new c:null);if(!e)throw Error("Converter is empty");return b.repeated?this.processRepeatedPrimitiveItem(a,b,e,d):this.processSinglePrimitiveItem(a,b,c,e,d)}static processRepeatedPrimitiveItem(a,b,c,d){if(!b.implicit)return Array.from(a,a=>c.fromASN(a));{let f=new("sequence"===b.repeated?e.Sequence:e.Set);f.valueBlock=a.valueBlock;let g=e.fromBER(f.toBER(!1),d?.berOptions);if(-1===g.offset)throw Error(`Cannot parse the child item. ${g.result.error}`);if(!("value"in g.result.valueBlock&&Array.isArray(g.result.valueBlock.value)))throw Error("Cannot get items from the ASN.1 parsed value. ASN.1 object is not constructed.");return Array.from(g.result.valueBlock.value,a=>c.fromASN(a))}}static processSinglePrimitiveItem(a,b,c,d,f){let h=a;if(b.implicit){let a;if((0,j.isConvertible)(c))a=new c().toSchema("");else{let b=g.AsnPropTypes[c],d=e[b];if(!d)throw Error(`Cannot get '${b}' class from asn1js module`);a=new d}a.valueBlock=h.valueBlock,h=e.fromBER(a.toBER(!1),f?.berOptions).result}return d.fromASN(h)}static processComplexSchemaItem(a,b,c,d){if(b.repeated){if(!Array.isArray(a))throw Error("Cannot get list of items from the ASN.1 parsed value. ASN.1 value should be iterable.");return Array.from(a,a=>this.fromASN(a,c,d))}{let e=this.handleImplicitTagging(a,b,c);if(this.isOptionalChoiceField(b))try{return this.fromASN(e,c,d)}catch(a){if(a instanceof i.AsnSchemaValidationError&&/Wrong values for Choice type/.test(a.message))return;throw a}{let f=this.fromASN(e,c,d);return b.raw?{value:f,raw:a.valueBeforeDecodeView}:f}}}static handleImplicitTagging(a,b,c){if(b.implicit&&"number"==typeof b.context){let b=k.schemaStorage.get(c);if(b.type===g.AsnTypeTypes.Sequence){let b=new e.Sequence;if("value"in a.valueBlock&&Array.isArray(a.valueBlock.value)&&"value"in b.valueBlock)return b.valueBlock.value=a.valueBlock.value,b}else if(b.type===g.AsnTypeTypes.Set){let b=new e.Set;if("value"in a.valueBlock&&Array.isArray(a.valueBlock.value)&&"value"in b.valueBlock)return b.valueBlock.value=a.valueBlock.value,b}}return a}}},54567,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.AsnSerializer=void 0;let d=a.r(610199),e=d.__importStar(a.r(753194)),f=a.r(315902),g=d.__importStar(a.r(510022)),h=a.r(306188),i=a.r(770040),j=a.r(844987);c.AsnSerializer=class a{static serialize(a){return a instanceof e.BaseBlock?a.toBER(!1):this.toASN(a).toBER(!1)}static toASN(b){let c;if(b&&"object"==typeof b&&(0,i.isConvertible)(b))return b.toASN();if(!(b&&"object"==typeof b))throw TypeError("Parameter 1 should be type of Object.");let d=b.constructor,k=j.schemaStorage.get(d);j.schemaStorage.cache(d);let l=[];if(k.itemType){if(!Array.isArray(b))throw TypeError("Parameter 1 should be type of Array.");if("number"==typeof k.itemType){let a=g.defaultConverter(k.itemType);if(!a)throw Error(`Cannot get default converter for array item of ${d.name} ASN1 schema`);l=b.map(b=>a.toASN(b))}else l=b.map(a=>this.toAsnItem({type:k.itemType},"[]",d,a))}else for(let c in k.items){let g=k.items[c],h=b[c];if(void 0===h||g.defaultValue===h||"object"==typeof g.defaultValue&&"object"==typeof h&&(0,i.isArrayEqual)(this.serialize(g.defaultValue),this.serialize(h)))continue;let j=a.toAsnItem(g,c,d,h);if("number"==typeof g.context)if(g.implicit)if(!g.repeated&&("number"==typeof g.type||(0,i.isConvertible)(g.type))){let a={};a.valueHex=j instanceof e.Null?(0,f.toArrayBuffer)(j.valueBeforeDecodeView):j.valueBlock.toBER(),l.push(new e.Primitive({optional:g.optional,idBlock:{tagClass:3,tagNumber:g.context},...a}))}else l.push(new e.Constructed({optional:g.optional,idBlock:{tagClass:3,tagNumber:g.context},value:j.valueBlock.value}));else l.push(new e.Constructed({optional:g.optional,idBlock:{tagClass:3,tagNumber:g.context},value:[j]}));else g.repeated?l=l.concat(j):l.push(j)}switch(k.type){case h.AsnTypeTypes.Sequence:c=new e.Sequence({value:l});break;case h.AsnTypeTypes.Set:c=new e.Set({value:l});break;case h.AsnTypeTypes.Choice:if(!l[0])throw Error(`Schema '${d.name}' has wrong data. Choice cannot be empty.`);c=l[0]}return c}static toAsnItem(a,b,c,d){let f;if("number"==typeof a.type){let g=a.converter;if(!g)throw Error(`Property '${b}' doesn't have converter for type ${h.AsnPropTypes[a.type]} in schema '${c.name}'`);if(a.repeated){if(!Array.isArray(d))throw TypeError("Parameter 'objProp' should be type of Array.");let b=Array.from(d,a=>g.toASN(a));f=new("sequence"===a.repeated?e.Sequence:e.Set)({value:b})}else f=g.toASN(d)}else if(a.repeated){if(!Array.isArray(d))throw TypeError("Parameter 'objProp' should be type of Array.");let b=Array.from(d,a=>this.toASN(a));f=new("sequence"===a.repeated?e.Sequence:e.Set)({value:b})}else f=this.toASN(d);return f}}},457902,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.AsnArray=void 0,c.AsnArray=class extends Array{constructor(a=[]){if("number"==typeof a)super(a);else for(const b of(super(),a))this.push(b)}}},316676,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.AsnConvert=void 0;let d=a.r(610199).__importStar(a.r(753194)),e=a.r(315902),f=a.r(672411),g=a.r(54567);c.AsnConvert=class a{static serialize(a){return g.AsnSerializer.serialize(a)}static parse(a,b,c){return f.AsnParser.parse(a,b,c)}static toString(b,c){let f=(0,e.isBufferSource)(b)?(0,e.toArrayBuffer)(b):a.serialize(b),g=d.fromBER(f,c?.berOptions);if(-1===g.offset)throw Error(`Cannot decode ASN.1 data. ${g.result.error}`);return g.result.toString()}}},950383,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.AsnSerializer=c.AsnParser=c.AsnPropTypes=c.AsnTypeTypes=c.AsnSetType=c.AsnSequenceType=c.AsnChoiceType=c.AsnType=c.AsnProp=void 0;let d=a.r(610199);d.__exportStar(a.r(510022),c),d.__exportStar(a.r(121329),c);var e=a.r(589896);Object.defineProperty(c,"AsnProp",{enumerable:!0,get:function(){return e.AsnProp}}),Object.defineProperty(c,"AsnType",{enumerable:!0,get:function(){return e.AsnType}}),Object.defineProperty(c,"AsnChoiceType",{enumerable:!0,get:function(){return e.AsnChoiceType}}),Object.defineProperty(c,"AsnSequenceType",{enumerable:!0,get:function(){return e.AsnSequenceType}}),Object.defineProperty(c,"AsnSetType",{enumerable:!0,get:function(){return e.AsnSetType}});var f=a.r(306188);Object.defineProperty(c,"AsnTypeTypes",{enumerable:!0,get:function(){return f.AsnTypeTypes}}),Object.defineProperty(c,"AsnPropTypes",{enumerable:!0,get:function(){return f.AsnPropTypes}});var g=a.r(672411);Object.defineProperty(c,"AsnParser",{enumerable:!0,get:function(){return g.AsnParser}});var h=a.r(54567);Object.defineProperty(c,"AsnSerializer",{enumerable:!0,get:function(){return h.AsnSerializer}}),d.__exportStar(a.r(249220),c),d.__exportStar(a.r(457902),c),d.__exportStar(a.r(316676),c)},209903,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.binary=void 0,c.encode=e,c.decode=f,c.is=g;let d=a.r(315902);function e(a){let b=(0,d.toUint8Array)(a),c="";for(let a of b)c+=String.fromCharCode(a);return c}function f(a){let b=new Uint8Array(a.length);for(let c=0;c<a.length;c++)b[c]=255&a.charCodeAt(c);return b}function g(a){return"string"==typeof a}c.binary={encode:e,decode:f,is:g}},87340,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.hex=c.formats=void 0,c.normalize=i,c.is=j,c.encode=k,c.decode=l,c.parse=m,c.format=n;let d=a.r(315902),e=/^[0-9a-f]$/i,f=[" "," ","\n","\r",":","-","."];function g(a){return a.replace(/[^0-9a-f]/gi,"")}function h(a,b){if(!b)return a.join("");if(!Number.isInteger(b.size)||b.size<1)throw RangeError("Hex group size must be a positive integer");let c=[];for(let d=0;d<a.length;d+=b.size)c.push(a.slice(d,d+b.size).join(""));return c.join(b.separator)}function i(a,b={}){return function(a,b){let c=b.allowPrefix??!0,d=[..."none"===b.separators?[]:!b.separators||"common"===b.separators?f:b.separators].sort((a,b)=>b.length-a.length);for(let a of d)if(!a)throw TypeError("Hex separators must be non-empty strings");let g=a.trim();if(/^0x/i.test(g)){if(!c)throw TypeError("Hexadecimal text must not include a 0x prefix");g=g.slice(2)}let h="",i=!1;for(let a=0;a<g.length;){let c=g[a]??"";if(e.test(c)){h+=c,i=!1,a+=1;continue}let f=function(a,b,c){for(let d of c)if(a.startsWith(d,b))return d}(g,a,d);if(!f)throw TypeError("Input is not valid hexadecimal text");if(b.strict&&(i||0===h.length))throw TypeError("Hexadecimal text contains misplaced separators");i=!0,a+=f.length}if(b.strict&&i&&h.length>0)throw TypeError("Hexadecimal text must not end with a separator");if(h.length%2!=0){if(!b.allowOddLength)throw TypeError("Hexadecimal text must contain an even number of characters");h=`0${h}`}return h.toLowerCase()}(a,b)}function j(a,b={}){if("string"!=typeof a)return!1;try{return i(a,b),!0}catch{return!1}}function k(a,b={}){let c=(0,d.toUint8Array)(a),e=b.case??"lower",f=Array.from(c,a=>{let b=a.toString(16).padStart(2,"0");return"upper"===e?b.toUpperCase():b}),g="";if(b.line){let a=b.line.bytesPerLine;if(!Number.isInteger(a)||a<1)throw RangeError("Hex bytesPerLine must be a positive integer");let c=b.line.separator??"\n",d=[];for(let c=0;c<f.length;c+=a)d.push(h(f.slice(c,c+a),b.group));g=d.join(c)}else g=h(f,b.group);return`${b.prefix??""}${g}`}function l(a,b={}){let c=i(a,b),d=new Uint8Array(c.length/2);for(let a=0;a<c.length;a+=2)d[a/2]=Number.parseInt(c.slice(a,a+2),16);return d}function m(a,b={}){let c=i(a,b);return{bytes:l(c),format:function(a){let b,c,d=a.trim(),e=/^0x/i.test(d)?"0x":"",f=e?d.slice(2):d,h=function(a){let b=/\r\n|\n/.exec(a);if(b)return"\r\n"===b[0]?"\r\n":"\n"}(f),i=f.split(/\r\n|\n/).filter(a=>a.length>0),j=function(a){let b=a.match(/[0-9A-Fa-f]+|[^0-9A-Fa-f]+/g)??[];if(b.length<3)return;let c=b.filter((a,b)=>b%2==0),d=b.filter((a,b)=>b%2==1),e=d[0];if(!e||d.some(a=>a!==e)||c.some(a=>0===a.length||a.length%2!=0))return;let f=c[0]?.length??0;if(!(!f||c.slice(0,-1).some(a=>a.length!==f))&&!((c[c.length-1]?.length??0)>f))return{size:f/2,separator:e}}(i[0]?.trim()??""),k={case:(b=/[A-F]/.test(d),c=/[a-f]/.test(d),b&&!c?"upper":"lower"),prefix:e};if(j&&(k.group=j),h&&i.length>1){let a=g(i[0]??"").length/2;a>0&&i.slice(0,-1).every(b=>g(b).length/2===a)&&(k.line={bytesPerLine:a,separator:h})}return k}(a),normalized:c}}function n(a,b){return k(a,b)}c.formats={compact:Object.freeze({}),upper:Object.freeze({case:"upper"}),colon:Object.freeze({group:{size:1,separator:":"}}),colonUpper:Object.freeze({case:"upper",group:{size:1,separator:":"}}),groupsOf4:Object.freeze({group:{size:4,separator:" "}}),prefixed:Object.freeze({prefix:"0x"})},c.hex={encode:k,decode:l,format:n,formats:c.formats,is:j,normalize:i,parse:m}},536723,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.utf8=void 0,c.encode=e,c.decode=f;let d=a.r(315902);function e(a){return new TextEncoder().encode(a)}function f(a){return new TextDecoder("utf-8",{fatal:!1}).decode((0,d.toUint8Array)(a))}c.utf8={encode:e,decode:f}},708415,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.utf16=void 0,c.encode=e,c.decode=f;let d=a.r(315902);function e(a,b={}){let c=new ArrayBuffer(2*a.length),d=new DataView(c);for(let c=0;c<a.length;c++)d.setUint16(2*c,a.charCodeAt(c),b.littleEndian??!1);return new Uint8Array(c)}function f(a,b={}){let c=(0,d.toArrayBuffer)(a),e=new DataView(c),g="";for(let a=0;a<c.byteLength;a+=2)g+=String.fromCharCode(e.getUint16(a,b.littleEndian??!1));return g}c.utf16={encode:e,decode:f}},620902,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.base64=void 0,c.normalize=h,c.pad=i,c.is=j,c.encode=k,c.decode=l;let d=a.r(315902),e=a.r(209903),f=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/;function g(){return globalThis.Buffer}function h(a){return a.replace(/[\n\r\t ]/g,"")}function i(a){let b=a.length%4;return b?a+"=".repeat(4-b):a}function j(a){if("string"!=typeof a)return!1;let b=h(a);return""===b||f.test(b)}function k(a,b){let c=(0,d.toUint8Array)(a),f=g();return f?f.from(c).toString("base64"):btoa((0,e.encode)(c))}function l(a,b){let c=h(a);if(!j(c))throw TypeError("Input is not valid Base64 text");let d=g();return d?new Uint8Array(d.from(c,"base64")):(0,e.decode)(atob(c))}c.base64={encode:k,decode:l,is:j,normalize:h,pad:i}},525774,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.base64url=void 0,c.normalize=f,c.is=g,c.encode=h,c.decode=i;let d=a.r(620902),e=/^[A-Za-z0-9_-]*$/;function f(a){return a.replace(/[\n\r\t ]/g,"")}function g(a){return"string"==typeof a&&e.test(f(a))}function h(a,b){return d.base64.encode(a).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/g,"")}function i(a,b){let c=f(a);if(!g(c))throw TypeError("Input is not valid Base64Url text");return d.base64.decode(d.base64.pad(c.replace(/-/g,"+").replace(/_/g,"/")))}c.base64url={encode:h,decode:i,is:g,normalize:f}},156334,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.base64url=c.base64=c.utf16=c.utf8=c.hex=c.binary=void 0;let d=a.r(610199);c.binary=d.__importStar(a.r(209903)),c.hex=d.__importStar(a.r(87340)),c.utf8=d.__importStar(a.r(536723)),c.utf16=d.__importStar(a.r(708415)),c.base64=d.__importStar(a.r(620902)),c.base64url=d.__importStar(a.r(525774))},963545,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.IpConverter=void 0;let d=a.r(156334);c.IpConverter=class{static isIPv4(a){return/^(\d{1,3}\.){3}\d{1,3}$/.test(a)}static parseIPv4(a){let b=a.split(".");if(4!==b.length)throw Error("Invalid IPv4 address");return b.map(a=>{let b=parseInt(a,10);if(isNaN(b)||b<0||b>255)throw Error("Invalid IPv4 address part");return b})}static parseIPv6(a){let b=this.expandIPv6(a).split(":");if(8!==b.length)throw Error("Invalid IPv6 address");return b.reduce((a,b)=>{let c=parseInt(b,16);if(isNaN(c)||c<0||c>65535)throw Error("Invalid IPv6 address part");return a.push(c>>8&255),a.push(255&c),a},[])}static expandIPv6(a){if(!a.includes("::"))return a;let b=a.split("::");if(b.length>2)throw Error("Invalid IPv6 address");let c=b[0]?b[0].split(":"):[],d=b[1]?b[1].split(":"):[],e=8-(c.length+d.length);if(e<0)throw Error("Invalid IPv6 address");return[...c,...Array(e).fill("0"),...d].join(":")}static formatIPv6(a){let b=[];for(let c=0;c<16;c+=2)b.push((a[c]<<8|a[c+1]).toString(16));return this.compressIPv6(b.join(":"))}static compressIPv6(a){let b=a.split(":"),c=-1,d=0,e=-1,f=0;for(let a=0;a<b.length;a++)"0"===b[a]?(-1===e&&(e=a),f++):(f>d&&(c=e,d=f),e=-1,f=0);if(f>d&&(c=e,d=f),d>1){let a=b.slice(0,c).join(":"),e=b.slice(c+d).join(":");return`${a}::${e}`}return a}static parseCIDR(a){let[b,c]=a.split("/"),d=parseInt(c,10);if(this.isIPv4(b)){if(d<0||d>32)throw Error("Invalid IPv4 prefix length");return[this.parseIPv4(b),d]}if(d<0||d>128)throw Error("Invalid IPv6 prefix length");return[this.parseIPv6(b),d]}static decodeIP(a){if(64===a.length&&0===parseInt(a,16))return"::/0";if(16!==a.length)return a;let b=parseInt(a.slice(8),16).toString(2).split("").reduce((a,b)=>a+ +b,0),c=a.slice(0,8).replace(/(.{2})/g,a=>`${parseInt(a,16)}.`);return c=c.slice(0,-1),`${c}/${b}`}static toString(a){let b=new Uint8Array(a);if(4===b.length)return Array.from(b).join(".");if(16===b.length)return this.formatIPv6(b);if(8===b.length||32===b.length){let a=b.length/2,c=b.slice(0,a),d=b.slice(a);if(b.every(a=>0===a))return 8===b.length?"0.0.0.0/0":"::/0";let e=d.reduce((a,b)=>a+(b.toString(2).match(/1/g)||[]).length,0);if(8===b.length){let a=Array.from(c).join(".");return`${a}/${e}`}{let a=this.formatIPv6(c);return`${a}/${e}`}}return this.decodeIP(d.hex.encode(a))}static fromString(a){if(a.includes("/")){let[b,c]=this.parseCIDR(a),d=new Uint8Array(b.length),e=c;for(let a=0;a<d.length;a++)e>=8?(d[a]=255,e-=8):e>0&&(d[a]=255<<8-e,e=0);let f=new Uint8Array(2*b.length);return f.set(b,0),f.set(d,b.length),f.buffer}return new Uint8Array(this.isIPv4(a)?this.parseIPv4(a):this.parseIPv6(a)).buffer}}},202500,(a,b,c)=>{"use strict";var d,e,f;Object.defineProperty(c,"__esModule",{value:!0}),c.Name=c.RDNSequence=c.RelativeDistinguishedName=c.AttributeTypeAndValue=c.AttributeValue=c.DirectoryString=void 0;let g=a.r(610199),h=a.r(950383),i=a.r(156334),j=class{teletexString;printableString;universalString;utf8String;bmpString;constructor(a={}){Object.assign(this,a)}toString(){return this.bmpString||this.printableString||this.teletexString||this.universalString||this.utf8String||""}};c.DirectoryString=j,g.__decorate([(0,h.AsnProp)({type:h.AsnPropTypes.TeletexString})],j.prototype,"teletexString",void 0),g.__decorate([(0,h.AsnProp)({type:h.AsnPropTypes.PrintableString})],j.prototype,"printableString",void 0),g.__decorate([(0,h.AsnProp)({type:h.AsnPropTypes.UniversalString})],j.prototype,"universalString",void 0),g.__decorate([(0,h.AsnProp)({type:h.AsnPropTypes.Utf8String})],j.prototype,"utf8String",void 0),g.__decorate([(0,h.AsnProp)({type:h.AsnPropTypes.BmpString})],j.prototype,"bmpString",void 0),c.DirectoryString=j=g.__decorate([(0,h.AsnType)({type:h.AsnTypeTypes.Choice})],j);let k=class extends j{ia5String;anyValue;constructor(a={}){super(a),Object.assign(this,a)}toString(){return this.ia5String||(this.anyValue?i.hex.encode(this.anyValue):super.toString())}};c.AttributeValue=k,g.__decorate([(0,h.AsnProp)({type:h.AsnPropTypes.IA5String})],k.prototype,"ia5String",void 0),g.__decorate([(0,h.AsnProp)({type:h.AsnPropTypes.Any})],k.prototype,"anyValue",void 0),c.AttributeValue=k=g.__decorate([(0,h.AsnType)({type:h.AsnTypeTypes.Choice})],k);class l{type="";value=new k;constructor(a={}){Object.assign(this,a)}}c.AttributeTypeAndValue=l,g.__decorate([(0,h.AsnProp)({type:h.AsnPropTypes.ObjectIdentifier})],l.prototype,"type",void 0),g.__decorate([(0,h.AsnProp)({type:k})],l.prototype,"value",void 0);let m=d=class extends h.AsnArray{constructor(a){super(a),Object.setPrototypeOf(this,d.prototype)}};c.RelativeDistinguishedName=m,c.RelativeDistinguishedName=m=d=g.__decorate([(0,h.AsnType)({type:h.AsnTypeTypes.Set,itemType:l})],m);let n=e=class extends h.AsnArray{constructor(a){super(a),Object.setPrototypeOf(this,e.prototype)}};c.RDNSequence=n,c.RDNSequence=n=e=g.__decorate([(0,h.AsnType)({type:h.AsnTypeTypes.Sequence,itemType:m})],n);let o=f=class extends n{constructor(a){super(a),Object.setPrototypeOf(this,f.prototype)}};c.Name=o,c.Name=o=f=g.__decorate([(0,h.AsnType)({type:h.AsnTypeTypes.Sequence})],o)},952352,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.GeneralName=c.EDIPartyName=c.OtherName=c.AsnIpConverter=void 0;let d=a.r(610199),e=a.r(950383),f=a.r(963545),g=a.r(202500);c.AsnIpConverter={fromASN:a=>f.IpConverter.toString(e.AsnOctetStringConverter.fromASN(a)),toASN:a=>e.AsnOctetStringConverter.toASN(f.IpConverter.fromString(a))};class h{typeId="";value=new ArrayBuffer(0);constructor(a={}){Object.assign(this,a)}}c.OtherName=h,d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.ObjectIdentifier})],h.prototype,"typeId",void 0),d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.Any,context:0})],h.prototype,"value",void 0);class i{nameAssigner;partyName=new g.DirectoryString;constructor(a={}){Object.assign(this,a)}}c.EDIPartyName=i,d.__decorate([(0,e.AsnProp)({type:g.DirectoryString,optional:!0,context:0,implicit:!0})],i.prototype,"nameAssigner",void 0),d.__decorate([(0,e.AsnProp)({type:g.DirectoryString,context:1,implicit:!0})],i.prototype,"partyName",void 0);let j=class{otherName;rfc822Name;dNSName;x400Address;directoryName;ediPartyName;uniformResourceIdentifier;iPAddress;registeredID;constructor(a={}){Object.assign(this,a)}};c.GeneralName=j,d.__decorate([(0,e.AsnProp)({type:h,context:0,implicit:!0})],j.prototype,"otherName",void 0),d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.IA5String,context:1,implicit:!0})],j.prototype,"rfc822Name",void 0),d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.IA5String,context:2,implicit:!0})],j.prototype,"dNSName",void 0),d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.Any,context:3,implicit:!0})],j.prototype,"x400Address",void 0),d.__decorate([(0,e.AsnProp)({type:g.Name,context:4,implicit:!1})],j.prototype,"directoryName",void 0),d.__decorate([(0,e.AsnProp)({type:i,context:5})],j.prototype,"ediPartyName",void 0),d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.IA5String,context:6,implicit:!0})],j.prototype,"uniformResourceIdentifier",void 0),d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.OctetString,context:7,implicit:!0,converter:c.AsnIpConverter})],j.prototype,"iPAddress",void 0),d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.ObjectIdentifier,context:8,implicit:!0})],j.prototype,"registeredID",void 0),c.GeneralName=j=d.__decorate([(0,e.AsnType)({type:e.AsnTypeTypes.Choice})],j)},153602,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.id_ce=c.id_ad_caRepository=c.id_ad_timeStamping=c.id_ad_caIssuers=c.id_ad_ocsp=c.id_qt_unotice=c.id_qt_csp=c.id_ad=c.id_kp=c.id_qt=c.id_pe=c.id_pkix=void 0,c.id_pkix="1.3.6.1.5.5.7",c.id_pe=`${c.id_pkix}.1`,c.id_qt=`${c.id_pkix}.2`,c.id_kp=`${c.id_pkix}.3`,c.id_ad=`${c.id_pkix}.48`,c.id_qt_csp=`${c.id_qt}.1`,c.id_qt_unotice=`${c.id_qt}.2`,c.id_ad_ocsp=`${c.id_ad}.1`,c.id_ad_caIssuers=`${c.id_ad}.2`,c.id_ad_timeStamping=`${c.id_ad}.3`,c.id_ad_caRepository=`${c.id_ad}.5`,c.id_ce="2.5.29"},574055,(a,b,c)=>{"use strict";var d;Object.defineProperty(c,"__esModule",{value:!0}),c.AuthorityInfoAccessSyntax=c.AccessDescription=c.id_pe_authorityInfoAccess=void 0;let e=a.r(610199),f=a.r(950383),g=a.r(952352),h=a.r(153602);c.id_pe_authorityInfoAccess=`${h.id_pe}.1`;class i{accessMethod="";accessLocation=new g.GeneralName;constructor(a={}){Object.assign(this,a)}}c.AccessDescription=i,e.__decorate([(0,f.AsnProp)({type:f.AsnPropTypes.ObjectIdentifier})],i.prototype,"accessMethod",void 0),e.__decorate([(0,f.AsnProp)({type:g.GeneralName})],i.prototype,"accessLocation",void 0);let j=d=class extends f.AsnArray{constructor(a){super(a),Object.setPrototypeOf(this,d.prototype)}};c.AuthorityInfoAccessSyntax=j,c.AuthorityInfoAccessSyntax=j=d=e.__decorate([(0,f.AsnType)({type:f.AsnTypeTypes.Sequence,itemType:i})],j)},612963,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.AuthorityKeyIdentifier=c.KeyIdentifier=c.id_ce_authorityKeyIdentifier=void 0;let d=a.r(610199),e=a.r(950383),f=a.r(952352),g=a.r(153602);c.id_ce_authorityKeyIdentifier=`${g.id_ce}.35`;class h extends e.OctetString{}c.KeyIdentifier=h;class i{keyIdentifier;authorityCertIssuer;authorityCertSerialNumber;constructor(a={}){a&&Object.assign(this,a)}}c.AuthorityKeyIdentifier=i,d.__decorate([(0,e.AsnProp)({type:h,context:0,optional:!0,implicit:!0})],i.prototype,"keyIdentifier",void 0),d.__decorate([(0,e.AsnProp)({type:f.GeneralName,context:1,optional:!0,implicit:!0,repeated:"sequence"})],i.prototype,"authorityCertIssuer",void 0),d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.Integer,context:2,optional:!0,implicit:!0,converter:e.AsnIntegerArrayBufferConverter})],i.prototype,"authorityCertSerialNumber",void 0)},961439,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.BasicConstraints=c.id_ce_basicConstraints=void 0;let d=a.r(610199),e=a.r(950383),f=a.r(153602);c.id_ce_basicConstraints=`${f.id_ce}.19`;class g{cA=!1;pathLenConstraint;constructor(a={}){Object.assign(this,a)}}c.BasicConstraints=g,d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.Boolean,defaultValue:!1})],g.prototype,"cA",void 0),d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.Integer,optional:!0})],g.prototype,"pathLenConstraint",void 0)},843977,(a,b,c)=>{"use strict";var d;Object.defineProperty(c,"__esModule",{value:!0}),c.GeneralNames=void 0;let e=a.r(610199),f=a.r(950383),g=a.r(952352),h=d=class extends f.AsnArray{constructor(a){super(a),Object.setPrototypeOf(this,d.prototype)}};c.GeneralNames=h,c.GeneralNames=h=d=e.__decorate([(0,f.AsnType)({type:f.AsnTypeTypes.Sequence,itemType:g.GeneralName})],h)},943148,(a,b,c)=>{"use strict";var d;Object.defineProperty(c,"__esModule",{value:!0}),c.CertificateIssuer=c.id_ce_certificateIssuer=void 0;let e=a.r(610199),f=a.r(950383),g=a.r(843977),h=a.r(153602);c.id_ce_certificateIssuer=`${h.id_ce}.29`;let i=d=class extends g.GeneralNames{constructor(a){super(a),Object.setPrototypeOf(this,d.prototype)}};c.CertificateIssuer=i,c.CertificateIssuer=i=d=e.__decorate([(0,f.AsnType)({type:f.AsnTypeTypes.Sequence})],i)},550409,(a,b,c)=>{"use strict";var d;Object.defineProperty(c,"__esModule",{value:!0}),c.CertificatePolicies=c.PolicyInformation=c.PolicyQualifierInfo=c.Qualifier=c.UserNotice=c.NoticeReference=c.DisplayText=c.id_ce_certificatePolicies_anyPolicy=c.id_ce_certificatePolicies=void 0;let e=a.r(610199),f=a.r(950383),g=a.r(153602);c.id_ce_certificatePolicies=`${g.id_ce}.32`,c.id_ce_certificatePolicies_anyPolicy=`${c.id_ce_certificatePolicies}.0`;let h=class{ia5String;visibleString;bmpString;utf8String;constructor(a={}){Object.assign(this,a)}toString(){return this.ia5String||this.visibleString||this.bmpString||this.utf8String||""}};c.DisplayText=h,e.__decorate([(0,f.AsnProp)({type:f.AsnPropTypes.IA5String})],h.prototype,"ia5String",void 0),e.__decorate([(0,f.AsnProp)({type:f.AsnPropTypes.VisibleString})],h.prototype,"visibleString",void 0),e.__decorate([(0,f.AsnProp)({type:f.AsnPropTypes.BmpString})],h.prototype,"bmpString",void 0),e.__decorate([(0,f.AsnProp)({type:f.AsnPropTypes.Utf8String})],h.prototype,"utf8String",void 0),c.DisplayText=h=e.__decorate([(0,f.AsnType)({type:f.AsnTypeTypes.Choice})],h);class i{organization=new h;noticeNumbers=[];constructor(a={}){Object.assign(this,a)}}c.NoticeReference=i,e.__decorate([(0,f.AsnProp)({type:h})],i.prototype,"organization",void 0),e.__decorate([(0,f.AsnProp)({type:f.AsnPropTypes.Integer,repeated:"sequence"})],i.prototype,"noticeNumbers",void 0);class j{noticeRef;explicitText;constructor(a={}){Object.assign(this,a)}}c.UserNotice=j,e.__decorate([(0,f.AsnProp)({type:i,optional:!0})],j.prototype,"noticeRef",void 0),e.__decorate([(0,f.AsnProp)({type:h,optional:!0})],j.prototype,"explicitText",void 0);let k=class{cPSuri;userNotice;constructor(a={}){Object.assign(this,a)}};c.Qualifier=k,e.__decorate([(0,f.AsnProp)({type:f.AsnPropTypes.IA5String})],k.prototype,"cPSuri",void 0),e.__decorate([(0,f.AsnProp)({type:j})],k.prototype,"userNotice",void 0),c.Qualifier=k=e.__decorate([(0,f.AsnType)({type:f.AsnTypeTypes.Choice})],k);class l{policyQualifierId="";qualifier=new ArrayBuffer(0);constructor(a={}){Object.assign(this,a)}}c.PolicyQualifierInfo=l,e.__decorate([(0,f.AsnProp)({type:f.AsnPropTypes.ObjectIdentifier})],l.prototype,"policyQualifierId",void 0),e.__decorate([(0,f.AsnProp)({type:f.AsnPropTypes.Any})],l.prototype,"qualifier",void 0);class m{policyIdentifier="";policyQualifiers;constructor(a={}){Object.assign(this,a)}}c.PolicyInformation=m,e.__decorate([(0,f.AsnProp)({type:f.AsnPropTypes.ObjectIdentifier})],m.prototype,"policyIdentifier",void 0),e.__decorate([(0,f.AsnProp)({type:l,repeated:"sequence",optional:!0})],m.prototype,"policyQualifiers",void 0);let n=d=class extends f.AsnArray{constructor(a){super(a),Object.setPrototypeOf(this,d.prototype)}};c.CertificatePolicies=n,c.CertificatePolicies=n=d=e.__decorate([(0,f.AsnType)({type:f.AsnTypeTypes.Sequence,itemType:m})],n)},165526,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.CRLNumber=c.id_ce_cRLNumber=void 0;let d=a.r(610199),e=a.r(950383),f=a.r(153602);c.id_ce_cRLNumber=`${f.id_ce}.20`;let g=class{value;constructor(a=0){this.value=a}};c.CRLNumber=g,d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.Integer})],g.prototype,"value",void 0),c.CRLNumber=g=d.__decorate([(0,e.AsnType)({type:e.AsnTypeTypes.Choice})],g)},547156,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.BaseCRLNumber=c.id_ce_deltaCRLIndicator=void 0;let d=a.r(610199),e=a.r(950383),f=a.r(153602),g=a.r(165526);c.id_ce_deltaCRLIndicator=`${f.id_ce}.27`;let h=class extends g.CRLNumber{};c.BaseCRLNumber=h,c.BaseCRLNumber=h=d.__decorate([(0,e.AsnType)({type:e.AsnTypeTypes.Choice})],h)},466622,(a,b,c)=>{"use strict";var d,e,f;Object.defineProperty(c,"__esModule",{value:!0}),c.CRLDistributionPoints=c.DistributionPoint=c.DistributionPointName=c.Reason=c.ReasonFlags=c.id_ce_cRLDistributionPoints=void 0;let g=a.r(610199),h=a.r(950383),i=a.r(202500),j=a.r(952352),k=a.r(153602);c.id_ce_cRLDistributionPoints=`${k.id_ce}.31`,(f=e||(c.ReasonFlags=e={}))[f.unused=1]="unused",f[f.keyCompromise=2]="keyCompromise",f[f.cACompromise=4]="cACompromise",f[f.affiliationChanged=8]="affiliationChanged",f[f.superseded=16]="superseded",f[f.cessationOfOperation=32]="cessationOfOperation",f[f.certificateHold=64]="certificateHold",f[f.privilegeWithdrawn=128]="privilegeWithdrawn",f[f.aACompromise=256]="aACompromise";class l extends h.BitString{toJSON(){let a=[],b=this.toNumber();return b&e.aACompromise&&a.push("aACompromise"),b&e.affiliationChanged&&a.push("affiliationChanged"),b&e.cACompromise&&a.push("cACompromise"),b&e.certificateHold&&a.push("certificateHold"),b&e.cessationOfOperation&&a.push("cessationOfOperation"),b&e.keyCompromise&&a.push("keyCompromise"),b&e.privilegeWithdrawn&&a.push("privilegeWithdrawn"),b&e.superseded&&a.push("superseded"),b&e.unused&&a.push("unused"),a}toString(){return`[${this.toJSON().join(", ")}]`}}c.Reason=l;let m=class{fullName;nameRelativeToCRLIssuer;constructor(a={}){Object.assign(this,a)}};c.DistributionPointName=m,g.__decorate([(0,h.AsnProp)({type:j.GeneralName,context:0,repeated:"sequence",implicit:!0})],m.prototype,"fullName",void 0),g.__decorate([(0,h.AsnProp)({type:i.RelativeDistinguishedName,context:1,implicit:!0})],m.prototype,"nameRelativeToCRLIssuer",void 0),c.DistributionPointName=m=g.__decorate([(0,h.AsnType)({type:h.AsnTypeTypes.Choice})],m);class n{distributionPoint;reasons;cRLIssuer;constructor(a={}){Object.assign(this,a)}}c.DistributionPoint=n,g.__decorate([(0,h.AsnProp)({type:m,context:0,optional:!0})],n.prototype,"distributionPoint",void 0),g.__decorate([(0,h.AsnProp)({type:l,context:1,optional:!0,implicit:!0})],n.prototype,"reasons",void 0),g.__decorate([(0,h.AsnProp)({type:j.GeneralName,context:2,optional:!0,repeated:"sequence",implicit:!0})],n.prototype,"cRLIssuer",void 0);let o=d=class extends h.AsnArray{constructor(a){super(a),Object.setPrototypeOf(this,d.prototype)}};c.CRLDistributionPoints=o,c.CRLDistributionPoints=o=d=g.__decorate([(0,h.AsnType)({type:h.AsnTypeTypes.Sequence,itemType:n})],o)},249980,(a,b,c)=>{"use strict";var d;Object.defineProperty(c,"__esModule",{value:!0}),c.FreshestCRL=c.id_ce_freshestCRL=void 0;let e=a.r(610199),f=a.r(950383),g=a.r(153602),h=a.r(466622);c.id_ce_freshestCRL=`${g.id_ce}.46`;let i=d=class extends h.CRLDistributionPoints{constructor(a){super(a),Object.setPrototypeOf(this,d.prototype)}};c.FreshestCRL=i,c.FreshestCRL=i=d=e.__decorate([(0,f.AsnType)({type:f.AsnTypeTypes.Sequence,itemType:h.DistributionPoint})],i)},132562,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.IssuingDistributionPoint=c.id_ce_issuingDistributionPoint=void 0;let d=a.r(610199),e=a.r(950383),f=a.r(153602),g=a.r(466622);c.id_ce_issuingDistributionPoint=`${f.id_ce}.28`;class h{static ONLY=!1;distributionPoint;onlyContainsUserCerts=h.ONLY;onlyContainsCACerts=h.ONLY;onlySomeReasons;indirectCRL=h.ONLY;onlyContainsAttributeCerts=h.ONLY;constructor(a={}){Object.assign(this,a)}}c.IssuingDistributionPoint=h,d.__decorate([(0,e.AsnProp)({type:g.DistributionPointName,context:0,optional:!0})],h.prototype,"distributionPoint",void 0),d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.Boolean,context:1,defaultValue:h.ONLY,implicit:!0})],h.prototype,"onlyContainsUserCerts",void 0),d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.Boolean,context:2,defaultValue:h.ONLY,implicit:!0})],h.prototype,"onlyContainsCACerts",void 0),d.__decorate([(0,e.AsnProp)({type:g.Reason,context:3,optional:!0,implicit:!0})],h.prototype,"onlySomeReasons",void 0),d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.Boolean,context:4,defaultValue:h.ONLY,implicit:!0})],h.prototype,"indirectCRL",void 0),d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.Boolean,context:5,defaultValue:h.ONLY,implicit:!0})],h.prototype,"onlyContainsAttributeCerts",void 0)},449018,(a,b,c)=>{"use strict";var d,e;Object.defineProperty(c,"__esModule",{value:!0}),c.CRLReason=c.CRLReasons=c.id_ce_cRLReasons=void 0;let f=a.r(610199),g=a.r(950383),h=a.r(153602);c.id_ce_cRLReasons=`${h.id_ce}.21`,(e=d||(c.CRLReasons=d={}))[e.unspecified=0]="unspecified",e[e.keyCompromise=1]="keyCompromise",e[e.cACompromise=2]="cACompromise",e[e.affiliationChanged=3]="affiliationChanged",e[e.superseded=4]="superseded",e[e.cessationOfOperation=5]="cessationOfOperation",e[e.certificateHold=6]="certificateHold",e[e.removeFromCRL=8]="removeFromCRL",e[e.privilegeWithdrawn=9]="privilegeWithdrawn",e[e.aACompromise=10]="aACompromise";let i=class{reason=d.unspecified;constructor(a=d.unspecified){this.reason=a}toJSON(){return d[this.reason]}toString(){return this.toJSON()}};c.CRLReason=i,f.__decorate([(0,g.AsnProp)({type:g.AsnPropTypes.Enumerated})],i.prototype,"reason",void 0),c.CRLReason=i=f.__decorate([(0,g.AsnType)({type:g.AsnTypeTypes.Choice})],i)},750120,(a,b,c)=>{"use strict";var d;Object.defineProperty(c,"__esModule",{value:!0}),c.id_kp_OCSPSigning=c.id_kp_timeStamping=c.id_kp_emailProtection=c.id_kp_codeSigning=c.id_kp_clientAuth=c.id_kp_serverAuth=c.anyExtendedKeyUsage=c.ExtendedKeyUsage=c.id_ce_extKeyUsage=void 0;let e=a.r(610199),f=a.r(950383),g=a.r(153602);c.id_ce_extKeyUsage=`${g.id_ce}.37`;let h=d=class extends f.AsnArray{constructor(a){super(a),Object.setPrototypeOf(this,d.prototype)}};c.ExtendedKeyUsage=h,c.ExtendedKeyUsage=h=d=e.__decorate([(0,f.AsnType)({type:f.AsnTypeTypes.Sequence,itemType:f.AsnPropTypes.ObjectIdentifier})],h),c.anyExtendedKeyUsage=`${c.id_ce_extKeyUsage}.0`,c.id_kp_serverAuth=`${g.id_kp}.1`,c.id_kp_clientAuth=`${g.id_kp}.2`,c.id_kp_codeSigning=`${g.id_kp}.3`,c.id_kp_emailProtection=`${g.id_kp}.4`,c.id_kp_timeStamping=`${g.id_kp}.8`,c.id_kp_OCSPSigning=`${g.id_kp}.9`},854367,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.InhibitAnyPolicy=c.id_ce_inhibitAnyPolicy=void 0;let d=a.r(610199),e=a.r(950383),f=a.r(153602);c.id_ce_inhibitAnyPolicy=`${f.id_ce}.54`;let g=class{value;constructor(a=new ArrayBuffer(0)){this.value=a}};c.InhibitAnyPolicy=g,d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.Integer,converter:e.AsnIntegerArrayBufferConverter})],g.prototype,"value",void 0),c.InhibitAnyPolicy=g=d.__decorate([(0,e.AsnType)({type:e.AsnTypeTypes.Choice})],g)},791798,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.InvalidityDate=c.id_ce_invalidityDate=void 0;let d=a.r(610199),e=a.r(950383),f=a.r(153602);c.id_ce_invalidityDate=`${f.id_ce}.24`;let g=class{value=new Date;constructor(a){a&&(this.value=a)}};c.InvalidityDate=g,d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.GeneralizedTime})],g.prototype,"value",void 0),c.InvalidityDate=g=d.__decorate([(0,e.AsnType)({type:e.AsnTypeTypes.Choice})],g)},312973,(a,b,c)=>{"use strict";var d;Object.defineProperty(c,"__esModule",{value:!0}),c.IssueAlternativeName=c.id_ce_issuerAltName=void 0;let e=a.r(610199),f=a.r(950383),g=a.r(843977),h=a.r(153602);c.id_ce_issuerAltName=`${h.id_ce}.18`;let i=d=class extends g.GeneralNames{constructor(a){super(a),Object.setPrototypeOf(this,d.prototype)}};c.IssueAlternativeName=i,c.IssueAlternativeName=i=d=e.__decorate([(0,f.AsnType)({type:f.AsnTypeTypes.Sequence})],i)},446423,(a,b,c)=>{"use strict";var d,e;Object.defineProperty(c,"__esModule",{value:!0}),c.KeyUsage=c.KeyUsageFlags=c.id_ce_keyUsage=void 0;let f=a.r(950383),g=a.r(153602);c.id_ce_keyUsage=`${g.id_ce}.15`,(e=d||(c.KeyUsageFlags=d={}))[e.digitalSignature=1]="digitalSignature",e[e.nonRepudiation=2]="nonRepudiation",e[e.keyEncipherment=4]="keyEncipherment",e[e.dataEncipherment=8]="dataEncipherment",e[e.keyAgreement=16]="keyAgreement",e[e.keyCertSign=32]="keyCertSign",e[e.cRLSign=64]="cRLSign",e[e.encipherOnly=128]="encipherOnly",e[e.decipherOnly=256]="decipherOnly";class h extends f.BitString{toJSON(){let a=this.toNumber(),b=[];return a&d.cRLSign&&b.push("crlSign"),a&d.dataEncipherment&&b.push("dataEncipherment"),a&d.decipherOnly&&b.push("decipherOnly"),a&d.digitalSignature&&b.push("digitalSignature"),a&d.encipherOnly&&b.push("encipherOnly"),a&d.keyAgreement&&b.push("keyAgreement"),a&d.keyCertSign&&b.push("keyCertSign"),a&d.keyEncipherment&&b.push("keyEncipherment"),a&d.nonRepudiation&&b.push("nonRepudiation"),b}toString(){return`[${this.toJSON().join(", ")}]`}}c.KeyUsage=h},499778,(a,b,c)=>{"use strict";var d;Object.defineProperty(c,"__esModule",{value:!0}),c.NameConstraints=c.GeneralSubtrees=c.GeneralSubtree=c.id_ce_nameConstraints=void 0;let e=a.r(610199),f=a.r(950383),g=a.r(952352),h=a.r(153602);c.id_ce_nameConstraints=`${h.id_ce}.30`;class i{base=new g.GeneralName;minimum=0;maximum;constructor(a={}){Object.assign(this,a)}}c.GeneralSubtree=i,e.__decorate([(0,f.AsnProp)({type:g.GeneralName})],i.prototype,"base",void 0),e.__decorate([(0,f.AsnProp)({type:f.AsnPropTypes.Integer,context:0,defaultValue:0,implicit:!0})],i.prototype,"minimum",void 0),e.__decorate([(0,f.AsnProp)({type:f.AsnPropTypes.Integer,context:1,optional:!0,implicit:!0})],i.prototype,"maximum",void 0);let j=d=class extends f.AsnArray{constructor(a){super(a),Object.setPrototypeOf(this,d.prototype)}};c.GeneralSubtrees=j,c.GeneralSubtrees=j=d=e.__decorate([(0,f.AsnType)({type:f.AsnTypeTypes.Sequence,itemType:i})],j);class k{permittedSubtrees;excludedSubtrees;constructor(a={}){Object.assign(this,a)}}c.NameConstraints=k,e.__decorate([(0,f.AsnProp)({type:j,context:0,optional:!0,implicit:!0})],k.prototype,"permittedSubtrees",void 0),e.__decorate([(0,f.AsnProp)({type:j,context:1,optional:!0,implicit:!0})],k.prototype,"excludedSubtrees",void 0)},499007,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.PolicyConstraints=c.id_ce_policyConstraints=void 0;let d=a.r(610199),e=a.r(950383),f=a.r(153602);c.id_ce_policyConstraints=`${f.id_ce}.36`;class g{requireExplicitPolicy;inhibitPolicyMapping;constructor(a={}){Object.assign(this,a)}}c.PolicyConstraints=g,d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.Integer,context:0,implicit:!0,optional:!0,converter:e.AsnIntegerArrayBufferConverter})],g.prototype,"requireExplicitPolicy",void 0),d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.Integer,context:1,implicit:!0,optional:!0,converter:e.AsnIntegerArrayBufferConverter})],g.prototype,"inhibitPolicyMapping",void 0)},841943,(a,b,c)=>{"use strict";var d;Object.defineProperty(c,"__esModule",{value:!0}),c.PolicyMappings=c.PolicyMapping=c.id_ce_policyMappings=void 0;let e=a.r(610199),f=a.r(950383),g=a.r(153602);c.id_ce_policyMappings=`${g.id_ce}.33`;class h{issuerDomainPolicy="";subjectDomainPolicy="";constructor(a={}){Object.assign(this,a)}}c.PolicyMapping=h,e.__decorate([(0,f.AsnProp)({type:f.AsnPropTypes.ObjectIdentifier})],h.prototype,"issuerDomainPolicy",void 0),e.__decorate([(0,f.AsnProp)({type:f.AsnPropTypes.ObjectIdentifier})],h.prototype,"subjectDomainPolicy",void 0);let i=d=class extends f.AsnArray{constructor(a){super(a),Object.setPrototypeOf(this,d.prototype)}};c.PolicyMappings=i,c.PolicyMappings=i=d=e.__decorate([(0,f.AsnType)({type:f.AsnTypeTypes.Sequence,itemType:h})],i)},635820,(a,b,c)=>{"use strict";var d;Object.defineProperty(c,"__esModule",{value:!0}),c.SubjectAlternativeName=c.id_ce_subjectAltName=void 0;let e=a.r(610199),f=a.r(950383),g=a.r(843977),h=a.r(153602);c.id_ce_subjectAltName=`${h.id_ce}.17`;let i=d=class extends g.GeneralNames{constructor(a){super(a),Object.setPrototypeOf(this,d.prototype)}};c.SubjectAlternativeName=i,c.SubjectAlternativeName=i=d=e.__decorate([(0,f.AsnType)({type:f.AsnTypeTypes.Sequence})],i)},210754,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.Attribute=void 0;let d=a.r(610199),e=a.r(950383);class f{type="";values=[];constructor(a={}){Object.assign(this,a)}}c.Attribute=f,d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.ObjectIdentifier})],f.prototype,"type",void 0),d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.Any,repeated:"set"})],f.prototype,"values",void 0)},237280,(a,b,c)=>{"use strict";var d;Object.defineProperty(c,"__esModule",{value:!0}),c.SubjectDirectoryAttributes=c.id_ce_subjectDirectoryAttributes=void 0;let e=a.r(610199),f=a.r(950383),g=a.r(210754),h=a.r(153602);c.id_ce_subjectDirectoryAttributes=`${h.id_ce}.9`;let i=d=class extends f.AsnArray{constructor(a){super(a),Object.setPrototypeOf(this,d.prototype)}};c.SubjectDirectoryAttributes=i,c.SubjectDirectoryAttributes=i=d=e.__decorate([(0,f.AsnType)({type:f.AsnTypeTypes.Sequence,itemType:g.Attribute})],i)},297396,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.SubjectKeyIdentifier=c.id_ce_subjectKeyIdentifier=void 0;let d=a.r(153602),e=a.r(612963);c.id_ce_subjectKeyIdentifier=`${d.id_ce}.14`;class f extends e.KeyIdentifier{}c.SubjectKeyIdentifier=f},916393,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.PrivateKeyUsagePeriod=c.id_ce_privateKeyUsagePeriod=void 0;let d=a.r(610199),e=a.r(950383),f=a.r(153602);c.id_ce_privateKeyUsagePeriod=`${f.id_ce}.16`;class g{notBefore;notAfter;constructor(a={}){Object.assign(this,a)}}c.PrivateKeyUsagePeriod=g,d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.GeneralizedTime,context:0,implicit:!0,optional:!0})],g.prototype,"notBefore",void 0),d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.GeneralizedTime,context:1,implicit:!0,optional:!0})],g.prototype,"notAfter",void 0)},589209,(a,b,c)=>{"use strict";var d,e;Object.defineProperty(c,"__esModule",{value:!0}),c.EntrustVersionInfo=c.EntrustInfo=c.EntrustInfoFlags=c.id_entrust_entrustVersInfo=void 0;let f=a.r(610199),g=a.r(950383);c.id_entrust_entrustVersInfo="1.2.840.113533.7.65.0",(e=d||(c.EntrustInfoFlags=d={}))[e.keyUpdateAllowed=1]="keyUpdateAllowed",e[e.newExtensions=2]="newExtensions",e[e.pKIXCertificate=4]="pKIXCertificate";class h extends g.BitString{toJSON(){let a=[],b=this.toNumber();return b&d.pKIXCertificate&&a.push("pKIXCertificate"),b&d.newExtensions&&a.push("newExtensions"),b&d.keyUpdateAllowed&&a.push("keyUpdateAllowed"),a}toString(){return`[${this.toJSON().join(", ")}]`}}c.EntrustInfo=h;class i{entrustVers="";entrustInfoFlags=new h;constructor(a={}){Object.assign(this,a)}}c.EntrustVersionInfo=i,f.__decorate([(0,g.AsnProp)({type:g.AsnPropTypes.GeneralString})],i.prototype,"entrustVers",void 0),f.__decorate([(0,g.AsnProp)({type:h})],i.prototype,"entrustInfoFlags",void 0)},820624,(a,b,c)=>{"use strict";var d;Object.defineProperty(c,"__esModule",{value:!0}),c.SubjectInfoAccessSyntax=c.id_pe_subjectInfoAccess=void 0;let e=a.r(610199),f=a.r(950383),g=a.r(153602),h=a.r(574055);c.id_pe_subjectInfoAccess=`${g.id_pe}.11`;let i=d=class extends f.AsnArray{constructor(a){super(a),Object.setPrototypeOf(this,d.prototype)}};c.SubjectInfoAccessSyntax=i,c.SubjectInfoAccessSyntax=i=d=e.__decorate([(0,f.AsnType)({type:f.AsnTypeTypes.Sequence,itemType:h.AccessDescription})],i)},738079,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});let d=a.r(610199);d.__exportStar(a.r(574055),c),d.__exportStar(a.r(612963),c),d.__exportStar(a.r(961439),c),d.__exportStar(a.r(943148),c),d.__exportStar(a.r(550409),c),d.__exportStar(a.r(547156),c),d.__exportStar(a.r(466622),c),d.__exportStar(a.r(249980),c),d.__exportStar(a.r(132562),c),d.__exportStar(a.r(165526),c),d.__exportStar(a.r(449018),c),d.__exportStar(a.r(750120),c),d.__exportStar(a.r(854367),c),d.__exportStar(a.r(791798),c),d.__exportStar(a.r(312973),c),d.__exportStar(a.r(446423),c),d.__exportStar(a.r(499778),c),d.__exportStar(a.r(499007),c),d.__exportStar(a.r(841943),c),d.__exportStar(a.r(635820),c),d.__exportStar(a.r(237280),c),d.__exportStar(a.r(297396),c),d.__exportStar(a.r(916393),c),d.__exportStar(a.r(589209),c),d.__exportStar(a.r(820624),c)},941853,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.AlgorithmIdentifier=void 0;let d=a.r(610199),e=a.r(950383),f=a.r(315902);class g{algorithm="";parameters;constructor(a={}){Object.assign(this,a)}isEqual(a){return a instanceof g&&a.algorithm==this.algorithm&&(a.parameters&&this.parameters&&(0,f.equal)(a.parameters,this.parameters)||a.parameters===this.parameters)}}c.AlgorithmIdentifier=g,d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.ObjectIdentifier})],g.prototype,"algorithm",void 0),d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.Any,optional:!0})],g.prototype,"parameters",void 0)},83632,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.SubjectPublicKeyInfo=void 0;let d=a.r(610199),e=a.r(950383),f=a.r(941853);class g{algorithm=new f.AlgorithmIdentifier;subjectPublicKey=new ArrayBuffer(0);constructor(a={}){Object.assign(this,a)}}c.SubjectPublicKeyInfo=g,d.__decorate([(0,e.AsnProp)({type:f.AlgorithmIdentifier})],g.prototype,"algorithm",void 0),d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.BitString})],g.prototype,"subjectPublicKey",void 0)},445222,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.Time=void 0;let d=a.r(610199),e=a.r(950383),f=class{utcTime;generalTime;constructor(a){if(a)if("string"==typeof a||"number"==typeof a||a instanceof Date){const b=new Date(a);b.setMilliseconds(0),b.getUTCFullYear()>2049?this.generalTime=b:this.utcTime=b}else Object.assign(this,a)}getTime(){let a=this.utcTime||this.generalTime;if(!a)throw Error("Cannot get time from CHOICE object");return a}};c.Time=f,d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.UTCTime})],f.prototype,"utcTime",void 0),d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.GeneralizedTime})],f.prototype,"generalTime",void 0),c.Time=f=d.__decorate([(0,e.AsnType)({type:e.AsnTypeTypes.Choice})],f)},520091,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.Validity=void 0;let d=a.r(610199),e=a.r(950383),f=a.r(445222);class g{notBefore=new f.Time(new Date);notAfter=new f.Time(new Date);constructor(a){a&&(this.notBefore=new f.Time(a.notBefore),this.notAfter=new f.Time(a.notAfter))}}c.Validity=g,d.__decorate([(0,e.AsnProp)({type:f.Time})],g.prototype,"notBefore",void 0),d.__decorate([(0,e.AsnProp)({type:f.Time})],g.prototype,"notAfter",void 0)},958332,(a,b,c)=>{"use strict";var d;Object.defineProperty(c,"__esModule",{value:!0}),c.Extensions=c.Extension=void 0;let e=a.r(610199),f=a.r(950383);class g{static CRITICAL=!1;extnID="";critical=g.CRITICAL;extnValue=new f.OctetString;constructor(a={}){Object.assign(this,a)}}c.Extension=g,e.__decorate([(0,f.AsnProp)({type:f.AsnPropTypes.ObjectIdentifier})],g.prototype,"extnID",void 0),e.__decorate([(0,f.AsnProp)({type:f.AsnPropTypes.Boolean,defaultValue:g.CRITICAL})],g.prototype,"critical",void 0),e.__decorate([(0,f.AsnProp)({type:f.OctetString})],g.prototype,"extnValue",void 0);let h=d=class extends f.AsnArray{constructor(a){super(a),Object.setPrototypeOf(this,d.prototype)}};c.Extensions=h,c.Extensions=h=d=e.__decorate([(0,f.AsnType)({type:f.AsnTypeTypes.Sequence,itemType:g})],h)},35761,(a,b,c)=>{"use strict";var d,e;Object.defineProperty(c,"__esModule",{value:!0}),c.Version=void 0,(e=d||(c.Version=d={}))[e.v1=0]="v1",e[e.v2=1]="v2",e[e.v3=2]="v3"},160227,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.TBSCertificate=void 0;let d=a.r(610199),e=a.r(950383),f=a.r(941853),g=a.r(202500),h=a.r(83632),i=a.r(520091),j=a.r(958332),k=a.r(35761);class l{version=k.Version.v1;serialNumber=new ArrayBuffer(0);signature=new f.AlgorithmIdentifier;issuer=new g.Name;validity=new i.Validity;subject=new g.Name;subjectPublicKeyInfo=new h.SubjectPublicKeyInfo;issuerUniqueID;subjectUniqueID;extensions;constructor(a={}){Object.assign(this,a)}}c.TBSCertificate=l,d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.Integer,context:0,defaultValue:k.Version.v1})],l.prototype,"version",void 0),d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.Integer,converter:e.AsnIntegerArrayBufferConverter})],l.prototype,"serialNumber",void 0),d.__decorate([(0,e.AsnProp)({type:f.AlgorithmIdentifier})],l.prototype,"signature",void 0),d.__decorate([(0,e.AsnProp)({type:g.Name})],l.prototype,"issuer",void 0),d.__decorate([(0,e.AsnProp)({type:i.Validity})],l.prototype,"validity",void 0),d.__decorate([(0,e.AsnProp)({type:g.Name})],l.prototype,"subject",void 0),d.__decorate([(0,e.AsnProp)({type:h.SubjectPublicKeyInfo})],l.prototype,"subjectPublicKeyInfo",void 0),d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.BitString,context:1,implicit:!0,optional:!0})],l.prototype,"issuerUniqueID",void 0),d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.BitString,context:2,implicit:!0,optional:!0})],l.prototype,"subjectUniqueID",void 0),d.__decorate([(0,e.AsnProp)({type:j.Extensions,context:3,optional:!0})],l.prototype,"extensions",void 0)},445425,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.Certificate=void 0;let d=a.r(610199),e=a.r(950383),f=a.r(941853),g=a.r(160227);class h{tbsCertificate=new g.TBSCertificate;tbsCertificateRaw;signatureAlgorithm=new f.AlgorithmIdentifier;signatureValue=new ArrayBuffer(0);constructor(a={}){Object.assign(this,a)}}c.Certificate=h,d.__decorate([(0,e.AsnProp)({type:g.TBSCertificate,raw:!0})],h.prototype,"tbsCertificate",void 0),d.__decorate([(0,e.AsnProp)({type:f.AlgorithmIdentifier})],h.prototype,"signatureAlgorithm",void 0),d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.BitString})],h.prototype,"signatureValue",void 0)},773208,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.TBSCertList=c.RevokedCertificate=void 0;let d=a.r(610199),e=a.r(950383),f=a.r(941853),g=a.r(202500),h=a.r(445222),i=a.r(958332);class j{userCertificate=new ArrayBuffer(0);revocationDate=new h.Time;crlEntryExtensions;constructor(a={}){Object.assign(this,a)}}c.RevokedCertificate=j,d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.Integer,converter:e.AsnIntegerArrayBufferConverter})],j.prototype,"userCertificate",void 0),d.__decorate([(0,e.AsnProp)({type:h.Time})],j.prototype,"revocationDate",void 0),d.__decorate([(0,e.AsnProp)({type:i.Extension,optional:!0,repeated:"sequence"})],j.prototype,"crlEntryExtensions",void 0);class k{version;signature=new f.AlgorithmIdentifier;issuer=new g.Name;thisUpdate=new h.Time;nextUpdate;revokedCertificates;crlExtensions;constructor(a={}){Object.assign(this,a)}}c.TBSCertList=k,d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.Integer,optional:!0})],k.prototype,"version",void 0),d.__decorate([(0,e.AsnProp)({type:f.AlgorithmIdentifier})],k.prototype,"signature",void 0),d.__decorate([(0,e.AsnProp)({type:g.Name})],k.prototype,"issuer",void 0),d.__decorate([(0,e.AsnProp)({type:h.Time})],k.prototype,"thisUpdate",void 0),d.__decorate([(0,e.AsnProp)({type:h.Time,optional:!0})],k.prototype,"nextUpdate",void 0),d.__decorate([(0,e.AsnProp)({type:j,repeated:"sequence",optional:!0})],k.prototype,"revokedCertificates",void 0),d.__decorate([(0,e.AsnProp)({type:i.Extension,optional:!0,context:0,repeated:"sequence"})],k.prototype,"crlExtensions",void 0)},452291,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.CertificateList=void 0;let d=a.r(610199),e=a.r(950383),f=a.r(941853),g=a.r(773208);class h{tbsCertList=new g.TBSCertList;tbsCertListRaw;signatureAlgorithm=new f.AlgorithmIdentifier;signature=new ArrayBuffer(0);constructor(a={}){Object.assign(this,a)}}c.CertificateList=h,d.__decorate([(0,e.AsnProp)({type:g.TBSCertList,raw:!0})],h.prototype,"tbsCertList",void 0),d.__decorate([(0,e.AsnProp)({type:f.AlgorithmIdentifier})],h.prototype,"signatureAlgorithm",void 0),d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.BitString})],h.prototype,"signature",void 0)},870745,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});let d=a.r(610199);d.__exportStar(a.r(738079),c),d.__exportStar(a.r(941853),c),d.__exportStar(a.r(210754),c),d.__exportStar(a.r(445425),c),d.__exportStar(a.r(452291),c),d.__exportStar(a.r(958332),c),d.__exportStar(a.r(952352),c),d.__exportStar(a.r(843977),c),d.__exportStar(a.r(202500),c),d.__exportStar(a.r(153602),c),d.__exportStar(a.r(83632),c),d.__exportStar(a.r(773208),c),d.__exportStar(a.r(160227),c),d.__exportStar(a.r(445222),c),d.__exportStar(a.r(35761),c),d.__exportStar(a.r(520091),c)},666514,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.HashAlgAndValue=void 0;let d=a.r(610199),e=a.r(950383),f=a.r(870745);class g{hashAlg=new f.AlgorithmIdentifier;hashValue=new e.OctetString;constructor(a={}){Object.assign(this,a)}}c.HashAlgAndValue=g,d.__decorate([(0,e.AsnProp)({type:f.AlgorithmIdentifier})],g.prototype,"hashAlg",void 0),d.__decorate([(0,e.AsnProp)({type:e.OctetString})],g.prototype,"hashValue",void 0)},129939,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.LogotypeDetails=void 0;let d=a.r(610199),e=a.r(950383),f=a.r(666514);class g{mediaType="";logotypeHash=[];logotypeURI=[];constructor(a={}){Object.assign(this,a)}}c.LogotypeDetails=g,d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.IA5String})],g.prototype,"mediaType",void 0),d.__decorate([(0,e.AsnProp)({type:f.HashAlgAndValue,repeated:"sequence"})],g.prototype,"logotypeHash",void 0),d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.IA5String,repeated:"sequence"})],g.prototype,"logotypeURI",void 0)},796859,(a,b,c)=>{"use strict";var d,e;Object.defineProperty(c,"__esModule",{value:!0}),c.LogotypeAudioInfo=c.LogotypeAudioChannels=void 0;let f=a.r(610199),g=a.r(950383);(e=d||(c.LogotypeAudioChannels=d={}))[e.mono=1]="mono",e[e.stereo=2]="stereo",e[e.quad=4]="quad";class h{fileSize=0;playTime=0;channels=d.mono;sampleRate;language;constructor(a={}){Object.assign(this,a)}}c.LogotypeAudioInfo=h,f.__decorate([(0,g.AsnProp)({type:g.AsnPropTypes.Integer})],h.prototype,"fileSize",void 0),f.__decorate([(0,g.AsnProp)({type:g.AsnPropTypes.Integer})],h.prototype,"playTime",void 0),f.__decorate([(0,g.AsnProp)({type:g.AsnPropTypes.Integer})],h.prototype,"channels",void 0),f.__decorate([(0,g.AsnProp)({type:g.AsnPropTypes.Integer,implicit:!0,context:3,optional:!0})],h.prototype,"sampleRate",void 0),f.__decorate([(0,g.AsnProp)({type:g.AsnPropTypes.IA5String,implicit:!0,context:4,optional:!0})],h.prototype,"language",void 0)},521876,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.LogotypeAudio=void 0;let d=a.r(610199),e=a.r(950383),f=a.r(129939),g=a.r(796859);class h{audioDetails=new f.LogotypeDetails;audioInfo;constructor(a={}){Object.assign(this,a)}}c.LogotypeAudio=h,d.__decorate([(0,e.AsnProp)({type:f.LogotypeDetails})],h.prototype,"audioDetails",void 0),d.__decorate([(0,e.AsnProp)({type:g.LogotypeAudioInfo,optional:!0})],h.prototype,"audioInfo",void 0)},422983,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.LogotypeImageResolution=void 0;let d=a.r(610199),e=a.r(950383),f=class{numBits;tableSize;constructor(a={}){Object.assign(this,a)}};c.LogotypeImageResolution=f,d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.Integer,context:1,implicit:!0})],f.prototype,"numBits",void 0),d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.Integer,context:2,implicit:!0})],f.prototype,"tableSize",void 0),c.LogotypeImageResolution=f=d.__decorate([(0,e.AsnType)({type:e.AsnTypeTypes.Choice})],f)},254307,(a,b,c)=>{"use strict";var d,e;Object.defineProperty(c,"__esModule",{value:!0}),c.LogotypeImageInfo=c.LogotypeImageType=void 0;let f=a.r(610199),g=a.r(950383),h=a.r(422983);(e=d||(c.LogotypeImageType=d={}))[e.grayScale=0]="grayScale",e[e.color=1]="color";class i{type=d.color;fileSize=0;xSize=0;ySize=0;resolution;language;constructor(a={}){Object.assign(this,a)}}c.LogotypeImageInfo=i,f.__decorate([(0,g.AsnProp)({type:g.AsnPropTypes.Integer,context:0,implicit:!0,defaultValue:d.color})],i.prototype,"type",void 0),f.__decorate([(0,g.AsnProp)({type:g.AsnPropTypes.Integer})],i.prototype,"fileSize",void 0),f.__decorate([(0,g.AsnProp)({type:g.AsnPropTypes.Integer})],i.prototype,"xSize",void 0),f.__decorate([(0,g.AsnProp)({type:g.AsnPropTypes.Integer})],i.prototype,"ySize",void 0),f.__decorate([(0,g.AsnProp)({type:h.LogotypeImageResolution})],i.prototype,"resolution",void 0),f.__decorate([(0,g.AsnProp)({type:g.AsnPropTypes.IA5String,context:4,implicit:!0,optional:!0})],i.prototype,"language",void 0)},443344,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.LogotypeImage=void 0;let d=a.r(610199),e=a.r(950383),f=a.r(129939),g=a.r(254307);class h{imageDetails=new f.LogotypeDetails;imageInfo;constructor(a={}){Object.assign(this,a)}}c.LogotypeImage=h,d.__decorate([(0,e.AsnProp)({type:f.LogotypeDetails})],h.prototype,"imageDetails",void 0),d.__decorate([(0,e.AsnProp)({type:g.LogotypeImageInfo,optional:!0})],h.prototype,"imageInfo",void 0)},594679,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.LogotypeData=void 0;let d=a.r(610199),e=a.r(950383),f=a.r(521876),g=a.r(443344);class h{image;audio;constructor(a={}){Object.assign(this,a)}}c.LogotypeData=h,d.__decorate([(0,e.AsnProp)({type:g.LogotypeImage,repeated:"sequence",optional:!0})],h.prototype,"image",void 0),d.__decorate([(0,e.AsnProp)({type:f.LogotypeAudio,repeated:"sequence",context:1,optional:!0})],h.prototype,"audio",void 0)},865064,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.LogotypeReference=void 0;let d=a.r(610199),e=a.r(950383),f=a.r(666514);class g{refStructHash=[];refStructURI=[];constructor(a={}){Object.assign(this,a)}}c.LogotypeReference=g,d.__decorate([(0,e.AsnProp)({type:f.HashAlgAndValue,repeated:"sequence"})],g.prototype,"refStructHash",void 0),d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.IA5String,repeated:"sequence"})],g.prototype,"refStructURI",void 0)},691164,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.LogotypeInfo=void 0;let d=a.r(610199),e=a.r(950383),f=a.r(594679),g=a.r(865064),h=class{direct;indirect;constructor(a={}){Object.assign(this,a)}};c.LogotypeInfo=h,d.__decorate([(0,e.AsnProp)({type:f.LogotypeData,implicit:!0,context:0})],h.prototype,"direct",void 0),d.__decorate([(0,e.AsnProp)({type:g.LogotypeReference,implicit:!0,context:1})],h.prototype,"indirect",void 0),c.LogotypeInfo=h=d.__decorate([(0,e.AsnType)({type:e.AsnTypeTypes.Choice})],h)},762429,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.OtherLogotypeInfo=void 0;let d=a.r(610199),e=a.r(950383),f=a.r(691164);class g{logotypeType="";info=new f.LogotypeInfo;constructor(a={}){Object.assign(this,a)}}c.OtherLogotypeInfo=g,d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.ObjectIdentifier})],g.prototype,"logotypeType",void 0),d.__decorate([(0,e.AsnProp)({type:f.LogotypeInfo})],g.prototype,"info",void 0)},646122,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.LogotypeExtn=void 0;let d=a.r(610199),e=a.r(950383),f=a.r(691164),g=a.r(762429);class h{communityLogos;issuerLogo;subjectLogo;otherLogos;constructor(a={}){Object.assign(this,a)}}c.LogotypeExtn=h,d.__decorate([(0,e.AsnProp)({type:f.LogotypeInfo,context:0,repeated:"sequence",optional:!0})],h.prototype,"communityLogos",void 0),d.__decorate([(0,e.AsnProp)({type:f.LogotypeInfo,context:1,optional:!0})],h.prototype,"issuerLogo",void 0),d.__decorate([(0,e.AsnProp)({type:f.LogotypeInfo,context:2,optional:!0})],h.prototype,"subjectLogo",void 0),d.__decorate([(0,e.AsnProp)({type:g.OtherLogotypeInfo,context:3,repeated:"sequence",optional:!0})],h.prototype,"otherLogos",void 0)},201005,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.id_logo_certImage=c.id_logo_background=c.id_logo_loyalty=c.id_logo=c.id_pe_logotype=void 0;let d=a.r(870745);c.id_pe_logotype="1.3.6.1.5.5.7.1.12",c.id_logo=`${d.id_pkix}.20`,c.id_logo_loyalty=`${c.id_logo}.1`,c.id_logo_background=`${c.id_logo}.2`,c.id_logo_certImage=`${c.id_logo}.3`},781146,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});let d=a.r(610199);d.__exportStar(a.r(666514),c),d.__exportStar(a.r(521876),c),d.__exportStar(a.r(796859),c),d.__exportStar(a.r(594679),c),d.__exportStar(a.r(129939),c),d.__exportStar(a.r(646122),c),d.__exportStar(a.r(443344),c),d.__exportStar(a.r(254307),c),d.__exportStar(a.r(422983),c),d.__exportStar(a.r(691164),c),d.__exportStar(a.r(865064),c),d.__exportStar(a.r(201005),c),d.__exportStar(a.r(762429),c)},285815,(a,b,c)=>{"use strict";let d=a.r(254799),e=a.r(406461),{promisify:f}=a.r(224361),{AsnParser:g}=a.r(950383),{LogotypeExtn:h}=a.r(781146),{Certificate:i}=a.r(870745),j=f(e.gunzip),k={"1.3.14.3.2.26":"sha1","2.16.840.1.101.3.4.2.4":"sha224","2.16.840.1.101.3.4.2.1":"sha256","2.16.840.1.101.3.4.2.2":"sha384","2.16.840.1.101.3.4.2.3":"sha512","2.16.840.1.101.3.4.2.5":"sha512-224","2.16.840.1.101.3.4.2.6":"sha512-256"};async function l(a){let b=a.logotypeURI?.[0];if(!b)return;let{content:c,base64:d}=function(a){if(!a.startsWith("data:"))return{};let b=a.indexOf(",");if(b<0)return{};let c=a.substring(5,b),d=a.substring(b+1),e=c.split(";");return{header:c,content:d,mediaType:e.shift()||"",base64:"base64"===e.shift()}}(b);if(c)return j(d?Buffer.from(c,"base64"):c)}b.exports={parseVMC:async function(a){let b=g.parse(a,i).tbsCertificate.extensions.find(a=>"1.3.6.1.5.5.7.1.12"===a.extnID);if(!b?.extnValue){let a=Error("Invalid or missing logotype extension in the certificate");throw a.code="INVALID_LOGOTYPE_EXT",a}let c=g.parse(b.extnValue,h),e=c.subjectLogo?.direct?.image?.[0]?.imageDetails;if(!e){let a=Error("Invalid or missing logotype extension in the certificate");throw a.code="INVALID_LOGOTYPE_EXT",a}let{hashAlgo:f,hashValue:j}=function(a){let b=a.logotypeHash?.[0];if(!b)return{hashAlgo:void 0,hashValue:void 0};let c=b.hashAlg?.algorithm;return{hashAlgo:c?k[c]:void 0,hashValue:b.hashValue?.buffer?Buffer.from(b.hashValue.buffer):void 0}}(e),m=await l(e),n=function(a,b,c){if(a&&b&&c)try{let e=d.createHash(b);return c.equals(e.update(a).digest())}catch{return}}(m,f,j);return{mediaType:e.mediaType,hashAlgo:f,hashValue:j,logoFile:m,validHash:n}}}},704691,(a,b,c)=>{"use strict";let{getDateString:d,parseSubject:e}=a.r(722331);b.exports={certInfo:function(a){return{subject:e(a.subject),subjectAltName:(a.subjectAltName||"").split(/^DNS:|,\s*DNS:/g).map(a=>a.trim()).filter(Boolean),fingerprint:a.fingerprint,serialNumber:a.serialNumber,validFrom:d(a.validFrom),validTo:d(a.validTo),issuer:e(a.issuer)}}}},540348,(a,b,c)=>{"use strict";let{RootStore:d}=a.r(948103),{getCerts:e}=a.r(722331),{validatedChain:f}=a.r(111801),{parseVMC:g}=a.r(285815),{certInfo:h}=a.r(704691),i=d.create(),j=new Set(["Prior Use Mark","Modified Registered Mark"]);function k(a,b){let c=Error(a);return c.code=b,c}b.exports={vmc:async function(a,b={}){var c;let d=b.rootStore||i,l=b.now,m=e(a);if(!m)throw k("Empty or missing certificate bundle","INVALID_CERT_BUNDLE");let n=f(m,d,l);if(!n)throw k("Empty or missing certificate chain","INVALID_CHAIN");let o=await g(n[0].cert.raw),p=h(n[0].cert);return c=p?.subject?.markType,o.type=j.has(c)?"CMC":"VMC",o.certificate=p,o.hashValue=o.hashValue?.toString("hex"),o.logoFile=o.logoFile?.toString("base64"),o},RootStore:d}},147174,(a,b,c)=>{(()=>{"use strict";let a;var c={d:(a,b)=>{for(var d in b)c.o(b,d)&&!c.o(a,d)&&Object.defineProperty(a,d,{enumerable:!0,get:b[d]})},o:(a,b)=>Object.prototype.hasOwnProperty.call(a,b),r:a=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(a,"__esModule",{value:!0})}},d={};c.r(d),c.d(d,{XMLBuilder:()=>a_,XMLParser:()=>aH,XMLValidator:()=>a0});let e=":A-Za-z_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD",f=RegExp("^["+e+"]["+e+"\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"),g=function(a){return null!=f.exec(a)},h=["hasOwnProperty","toString","valueOf","__defineGetter__","__defineSetter__","__lookupGetter__","__lookupSetter__"],i=["__proto__","constructor","prototype"],j={allowBooleanAttributes:!1,unpairedTags:[]};function k(a,b){b=Object.assign({},j,b);let c=[],d=!1,e=!1;"\uFEFF"===a[0]&&(a=a.substr(1));for(let f=0;f<a.length;f++)if("<"===a[f]&&"?"===a[f+1]){if(f+=2,(f=m(a,f)).err)return f}else{if("<"!==a[f]){if(l(a[f]))continue;return p("InvalidChar","char '"+a[f]+"' is not expected.",q(a,f))}{let h=f;if("!"===a[++f]){f=n(a,f);continue}{let i=!1;"/"===a[f]&&(i=!0,f++);let j="";for(;f<a.length&&">"!==a[f]&&" "!==a[f]&&" "!==a[f]&&"\n"!==a[f]&&"\r"!==a[f];f++)j+=a[f];if("/"===(j=j.trim())[j.length-1]&&(j=j.substring(0,j.length-1),f--),!g(j))return p("InvalidTag",0===j.trim().length?"Invalid space after '<'.":"Tag '"+j+"' is an invalid name.",q(a,f));let k=function(a,b){let c="",d="",e=!1;for(;b<a.length;b++){if('"'===a[b]||"'"===a[b])""===d?d=a[b]:d!==a[b]||(d="");else if(">"===a[b]&&""===d){e=!0;break}c+=a[b]}return""===d&&{value:c,index:b,tagClosed:e}}(a,f);if(!1===k)return p("InvalidAttr","Attributes for '"+j+"' have open quote.",q(a,f));let r=k.value;if(f=k.index,"/"===r[r.length-1]){let c=f-r.length,e=o(r=r.substring(0,r.length-1),b);if(!0!==e)return p(e.err.code,e.err.msg,q(a,c+e.err.line));d=!0}else if(i){if(!k.tagClosed)return p("InvalidTag","Closing tag '"+j+"' doesn't have proper closing.",q(a,f));if(r.trim().length>0)return p("InvalidTag","Closing tag '"+j+"' can't have attributes or invalid starting.",q(a,h));if(0===c.length)return p("InvalidTag","Closing tag '"+j+"' has not been opened.",q(a,h));{let b=c.pop();if(j!==b.tagName){let c=q(a,b.tagStartPos);return p("InvalidTag","Expected closing tag '"+b.tagName+"' (opened in line "+c.line+", col "+c.col+") instead of closing tag '"+j+"'.",q(a,h))}0==c.length&&(e=!0)}}else{let g=o(r,b);if(!0!==g)return p(g.err.code,g.err.msg,q(a,f-r.length+g.err.line));if(!0===e)return p("InvalidXml","Multiple possible root nodes found.",q(a,f));-1!==b.unpairedTags.indexOf(j)||c.push({tagName:j,tagStartPos:h}),d=!0}for(f++;f<a.length;f++)if("<"===a[f]){if("!"===a[f+1]){f=n(a,++f);continue}if("?"!==a[f+1])break;if((f=m(a,++f)).err)return f}else if("&"===a[f]){let b=function(a,b){if(";"===a[++b])return -1;if("#"===a[b]){var c=++b;let d=/\d/;for("x"===a[c]&&(c++,d=/[\da-fA-F]/);c<a.length;c++){if(";"===a[c])return c;if(!a[c].match(d))break}return -1}let d=0;for(;b<a.length;b++,d++)if(!(a[b].match(/\w/)&&d<20)){if(";"===a[b])break;return -1}return b}(a,f);if(-1==b)return p("InvalidChar","char '&' is not expected.",q(a,f));f=b}else if(!0===e&&!l(a[f]))return p("InvalidXml","Extra text at the end",q(a,f));"<"===a[f]&&f--}}}return d?1==c.length?p("InvalidTag","Unclosed tag '"+c[0].tagName+"'.",q(a,c[0].tagStartPos)):!(c.length>0)||p("InvalidXml","Invalid '"+JSON.stringify(c.map(a=>a.tagName),null,4).replace(/\r?\n/g,"")+"' found.",{line:1,col:1}):p("InvalidXml","Start tag expected.",1)}function l(a){return" "===a||" "===a||"\n"===a||"\r"===a}function m(a,b){let c=b;for(;b<a.length;b++)if("?"==a[b]||" "==a[b]){let d=a.substr(c,b-c);if(b>5&&"xml"===d)return p("InvalidXml","XML declaration allowed only at the start of the document.",q(a,b));if("?"==a[b]&&">"==a[b+1]){b++;break}continue}return b}function n(a,b){if(a.length>b+5&&"-"===a[b+1]&&"-"===a[b+2]){for(b+=3;b<a.length;b++)if("-"===a[b]&&"-"===a[b+1]&&">"===a[b+2]){b+=2;break}}else if(a.length>b+8&&"D"===a[b+1]&&"O"===a[b+2]&&"C"===a[b+3]&&"T"===a[b+4]&&"Y"===a[b+5]&&"P"===a[b+6]&&"E"===a[b+7]){let c=1;for(b+=8;b<a.length;b++)if("<"===a[b])c++;else if(">"===a[b]&&0==--c)break}else if(a.length>b+9&&"["===a[b+1]&&"C"===a[b+2]&&"D"===a[b+3]&&"A"===a[b+4]&&"T"===a[b+5]&&"A"===a[b+6]&&"["===a[b+7]){for(b+=8;b<a.length;b++)if("]"===a[b]&&"]"===a[b+1]&&">"===a[b+2]){b+=2;break}}return b}function o(a,b){let c=function(a){let b=[],c=a.length,d=0;for(;d<c;){let e=d;for(;d<c&&l(a[d]);)d++;if(d>=c)break;if("="===a[d]){d=e+1;continue}let f=a.slice(e,d),g=d;for(;d<c&&!l(a[d])&&"="!==a[d];)d++;let h=a.slice(g,d),i,j,k,m=d;for(;m<c&&l(a[m]);)m++;m<c&&"="===a[m]&&(i=a.slice(d,m+1),d=m+1);let n=d;for(;n<c&&l(a[n]);)n++;if(n<c&&('"'===a[n]||"'"===a[n])){let b=n+1,c=a.indexOf(a[n],b);-1!==c&&(j=a[n],k=a.slice(b,c),d=c+1)}let o={startIndex:e};o[1]=f,o[2]=h,o[3]=i,o[4]=void 0!==j||void 0,o[5]=j,o[6]=k,b.push(o)}return b}(a),d={};for(let a=0;a<c.length;a++){if(0===c[a][1].length)return p("InvalidAttr","Attribute '"+c[a][2]+"' has no space in starting.",r(c[a]));if(void 0!==c[a][3]&&void 0===c[a][4])return p("InvalidAttr","Attribute '"+c[a][2]+"' is without value.",r(c[a]));if(void 0===c[a][3]&&!b.allowBooleanAttributes)return p("InvalidAttr","boolean attribute '"+c[a][2]+"' is not allowed.",r(c[a]));let e=c[a][2];if(!g(e))return p("InvalidAttr","Attribute '"+e+"' is an invalid name.",r(c[a]));if(Object.prototype.hasOwnProperty.call(d,e))return p("InvalidAttr","Attribute '"+e+"' is repeated.",r(c[a]));d[e]=1}return!0}function p(a,b,c){return{err:{code:a,msg:b,line:c.line||c,col:c.col}}}function q(a,b){let c=a.substring(0,b).split(/\r?\n/);return{line:c.length,col:c[c.length-1].length+1}}function r(a){return a.startIndex+a[1].length}let s=a=>h.includes(a)?"__"+a:a,t={preserveOrder:!1,attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,removeNSPrefix:!1,allowBooleanAttributes:!1,parseTagValue:!0,parseAttributeValue:!1,trimValues:!0,cdataPropName:!1,numberParseOptions:{hex:!0,leadingZeros:!0,eNotation:!0,unicode:!1},tagValueProcessor:function(a,b){return b},attributeValueProcessor:function(a,b){return b},stopNodes:[],alwaysCreateTextNode:!1,isArray:()=>!1,commentPropName:!1,unpairedTags:[],processEntities:!0,htmlEntities:!1,entityDecoder:null,ignoreDeclaration:!1,ignorePiTags:!1,transformTagName:!1,transformAttributeName:!1,updateTag:function(a,b,c){return a},captureMetaData:!1,maxNestedTags:100,strictReservedNames:!0,jPath:!0,onDangerousProperty:s},u=function(a){let b=Object.assign({},t,a);for(let{value:a,name:c}of[{value:b.attributeNamePrefix,name:"attributeNamePrefix"},{value:b.attributesGroupName,name:"attributesGroupName"},{value:b.textNodeName,name:"textNodeName"},{value:b.cdataPropName,name:"cdataPropName"},{value:b.commentPropName,name:"commentPropName"}])a&&function(a,b){if("string"!=typeof a)return;let c=a.toLowerCase();if(h.some(a=>c===a.toLowerCase())||i.some(a=>c===a.toLowerCase()))throw Error(`[SECURITY] Invalid ${b}: "${a}" is a reserved JavaScript keyword that could cause prototype pollution`)}(a,c);return null===b.onDangerousProperty&&(b.onDangerousProperty=s),b.processEntities=function a(b,c){return"boolean"==typeof b?{enabled:b,maxEntitySize:1e4,maxExpansionDepth:1e4,maxTotalExpansions:1/0,maxExpandedLength:1e5,maxEntityCount:1e3,allowedTags:null,tagFilter:null,appliesTo:"all"}:"object"==typeof b&&null!==b?{enabled:!1!==b.enabled,maxEntitySize:Math.max(1,b.maxEntitySize??1e4),maxExpansionDepth:Math.max(1,b.maxExpansionDepth??1e4),maxTotalExpansions:Math.max(1,b.maxTotalExpansions??1/0),maxExpandedLength:Math.max(1,b.maxExpandedLength??1e5),maxEntityCount:Math.max(1,b.maxEntityCount??1e3),allowedTags:b.allowedTags??null,tagFilter:b.tagFilter??null,appliesTo:b.appliesTo??"all"}:a(!0)}(b.processEntities,b.htmlEntities),b.unpairedTagsSet=new Set(b.unpairedTags),b.stopNodes&&Array.isArray(b.stopNodes)&&(b.stopNodes=b.stopNodes.map(a=>"string"==typeof a&&a.startsWith("*.")?".."+a.substring(2):a)),b};a="function"!=typeof Symbol?"@@xmlMetadata":Symbol("XML Node Metadata");class v{constructor(a){this.tagname=a,this.child=[],this[":@"]=Object.create(null)}add(a,b){"__proto__"===a&&(a="#__proto__"),this.child.push({[a]:b})}addChild(a,b){"__proto__"===a.tagname&&(a.tagname="#__proto__"),a[":@"]&&Object.keys(a[":@"]).length>0?this.child.push({[a.tagname]:a.child,":@":a[":@"]}):this.child.push({[a.tagname]:a.child}),this.addStartIndex(b)}addStartIndex(b){void 0!==b&&(this.child[this.child.length-1][a]={startIndex:b})}addEndIndex(b){let c=this.child[this.child.length-1];void 0!==c&&void 0!==c[a]&&void 0===c[a].endIndex&&(c[a].endIndex=b)}static getMetaDataSymbol(){return a}}let w=":A-Za-z_À-ÖØ-öø-˿Ͱ-ͽͿ-҆҈--⁰-Ⰰ-、-豈-﷏ﷰ-�",x=":A-Za-z_À-˿Ͱ-ͽͿ-҆҈--⁰-Ⰰ-、-豈-﷏ﷰ-�𐀀-",y=(a,b,c="")=>{let d=`[${a.replace(":","")}][${b.replace(":","")}]*`;return{name:RegExp(`^[${a}][${b}]*$`,c),ncName:RegExp(`^${d}$`,c),qName:RegExp(`^${d}(?::${d})?$`,c),nmToken:RegExp(`^[${b}]+$`,c),nmTokens:RegExp(`^[${b}]+(?:\\s+[${b}]+)*$`,c)}},z=y(w,w+"\\-\\.\\d·̀-ͯ‿-⁀"),A=y(x,x+"\\-\\.\\d·̀-ͯ҇‿-⁀","u"),B=":A-Za-z_",C=y(B,B+"\\-\\.\\d"),D=(a,{xmlVersion:b="1.0",asciiOnly:c=!1}={})=>((a="1.0",b=!1)=>b?C:"1.1"===a?A:z)(b,c).qName.test(a);class E{constructor(a,b){this.suppressValidationErr=!a,this.options=a,this.xmlVersion=b||1}setXmlVersion(a=1){this.xmlVersion=a}readDocType(a,b){let c=Object.create(null),d=0;if("O"!==a[b+3]||"C"!==a[b+4]||"T"!==a[b+5]||"Y"!==a[b+6]||"P"!==a[b+7]||"E"!==a[b+8])throw Error("Invalid Tag instead of DOCTYPE");{b+=9;let e=1,f=!1,g=!1,h=null,i="";for(;b<a.length;b++)if(null===h)if(f||g||'"'!==a[b]&&"'"!==a[b])if("<"!==a[b]||g)if(">"===a[b]){if(g?"-"===a[b-1]&&"-"===a[b-2]&&(g=!1,e--):e--,0===e)break}else"["===a[b]?f=!0:i+=a[b];else{if(f&&G(a,"!ENTITY",b)){let e,f;if(b+=7,[e,f,b]=this.readEntityExp(a,b+1,this.suppressValidationErr),-1===f.indexOf("&")){if(!1!==this.options.enabled&&null!=this.options.maxEntityCount&&d>=this.options.maxEntityCount)throw Error(`Entity count (${d+1}) exceeds maximum allowed (${this.options.maxEntityCount})`);c[e]=f,d++}}else if(f&&G(a,"!ELEMENT",b)){b+=8;let{index:c}=this.readElementExp(a,b+1);b=c}else if(f&&G(a,"!ATTLIST",b))b+=8;else if(f&&G(a,"!NOTATION",b)){b+=9;let{index:c}=this.readNotationExp(a,b+1,this.suppressValidationErr);b=c}else{if(!G(a,"!--",b))throw Error("Invalid DOCTYPE");g=!0}e++,i=""}else h=a[b],i+=a[b];else a[b]===h&&(h=null),i+=a[b];if(null!==h||0!==e)throw Error("Unclosed DOCTYPE")}return{entities:c,i:b}}readEntityExp(a,b){let c=b=F(a,b);for(;b<a.length&&!/\s/.test(a[b])&&'"'!==a[b]&&"'"!==a[b];)b++;let d=a.substring(c,b);if(H(d,{xmlVersion:this.xmlVersion}),b=F(a,b),!this.suppressValidationErr){if("SYSTEM"===a.substring(b,b+6).toUpperCase())throw Error("External entities are not supported");if("%"===a[b])throw Error("Parameter entities are not supported")}let e="";if([b,e]=this.readIdentifierVal(a,b,"entity"),!1!==this.options.enabled&&null!=this.options.maxEntitySize&&e.length>this.options.maxEntitySize)throw Error(`Entity "${d}" size (${e.length}) exceeds maximum allowed size (${this.options.maxEntitySize})`);return[d,e,--b]}readNotationExp(a,b){let c=b=F(a,b);for(;b<a.length&&!/\s/.test(a[b]);)b++;let d=a.substring(c,b);this.suppressValidationErr||H(d,{xmlVersion:this.xmlVersion}),b=F(a,b);let e=a.substring(b,b+6).toUpperCase();if(!this.suppressValidationErr&&"SYSTEM"!==e&&"PUBLIC"!==e)throw Error(`Expected SYSTEM or PUBLIC, found "${e}"`);b+=e.length,b=F(a,b);let f=null,g=null;if("PUBLIC"===e)[b,f]=this.readIdentifierVal(a,b,"publicIdentifier"),'"'!==a[b=F(a,b)]&&"'"!==a[b]||([b,g]=this.readIdentifierVal(a,b,"systemIdentifier"));else if("SYSTEM"===e&&([b,g]=this.readIdentifierVal(a,b,"systemIdentifier"),!this.suppressValidationErr&&!g))throw Error("Missing mandatory system identifier for SYSTEM notation");return{notationName:d,publicIdentifier:f,systemIdentifier:g,index:--b}}readIdentifierVal(a,b,c){let d="",e=a[b];if('"'!==e&&"'"!==e)throw Error(`Expected quoted string, found "${e}"`);let f=++b;for(;b<a.length&&a[b]!==e;)b++;if(d=a.substring(f,b),a[b]!==e)throw Error(`Unterminated ${c} value`);return[++b,d]}readElementExp(a,b){let c=b=F(a,b);for(;b<a.length&&!/\s/.test(a[b]);)b++;let d=a.substring(c,b);if(!this.suppressValidationErr&&!D(d,{xmlVersion:this.xmlVersion}))throw Error(`Invalid element name: "${d}"`);let e="";if("E"===a[b=F(a,b)]&&G(a,"MPTY",b))b+=4;else if("A"===a[b]&&G(a,"NY",b))b+=2;else if("("===a[b]){let c=++b;for(;b<a.length&&")"!==a[b];)b++;if(e=a.substring(c,b),")"!==a[b])throw Error("Unterminated content model")}else if(!this.suppressValidationErr)throw Error(`Invalid Element Expression, found "${a[b]}"`);return{elementName:d,contentModel:e.trim(),index:b}}readAttlistExp(a,b){let c=b=F(a,b);for(;b<a.length&&!/\s/.test(a[b]);)b++;let d=a.substring(c,b);for(H(d,{xmlVersion:this.xmlVersion}),c=b=F(a,b);b<a.length&&!/\s/.test(a[b]);)b++;let e=a.substring(c,b);if(!H(e,{xmlVersion:this.xmlVersion}))throw Error(`Invalid attribute name: "${e}"`);b=F(a,b);let f="";if("NOTATION"===a.substring(b,b+8).toUpperCase()){if(f="NOTATION","("!==a[b=F(a,b+=8)])throw Error(`Expected '(', found "${a[b]}"`);b++;let c=[];for(;b<a.length&&")"!==a[b];){let d=b;for(;b<a.length&&"|"!==a[b]&&")"!==a[b];)b++;let e=a.substring(d,b);if(!H(e=e.trim(),{xmlVersion:this.xmlVersion}))throw Error(`Invalid notation name: "${e}"`);c.push(e),"|"===a[b]&&(b=F(a,++b))}if(")"!==a[b])throw Error("Unterminated list of notations");b++,f+=" ("+c.join("|")+")"}else{let c=b;for(;b<a.length&&!/\s/.test(a[b]);)b++;if(f+=a.substring(c,b),!this.suppressValidationErr&&!["CDATA","ID","IDREF","IDREFS","ENTITY","ENTITIES","NMTOKEN","NMTOKENS"].includes(f.toUpperCase()))throw Error(`Invalid attribute type: "${f}"`)}b=F(a,b);let g="";return"#REQUIRED"===a.substring(b,b+8).toUpperCase()?(g="#REQUIRED",b+=8):"#IMPLIED"===a.substring(b,b+7).toUpperCase()?(g="#IMPLIED",b+=7):[b,g]=this.readIdentifierVal(a,b,"ATTLIST"),{elementName:d,attributeName:e,attributeType:f,defaultValue:g,index:b}}}let F=(a,b)=>{for(;b<a.length&&/\s/.test(a[b]);)b++;return b};function G(a,b,c){for(let d=0;d<b.length;d++)if(b[d]!==a[c+d+1])return!1;return!0}function H(a,b){if(D(a,{xmlVersion:b}))return a;throw Error(`Invalid entity name ${a}`)}let I=new Map,J=new Uint8Array(63904).fill(255);for(let a of[48,1632,1776,2406,2534,2662,2790,2918,3046,3174,3302,3430,3558,3664,3792,3872,4160,4240,6112,6160,6470,6608,6784,6800,6992,7088,7232,7248,65296,120782,120792,120802,120812,120822,66720,68912,69734,69872,69942,70096,70384,70736,70864,71248,71360,71472,71904,72016,72688,72784,73040,73120,73552,92768,92864,93008,123200,123632,124144,125264,130032])for(let b=0;b<10;b++){let c=a+b;c<=65535?J[c-1632]=b:I.set(c,b)}let K=new Set([8722,65293,65123]),L=/^[-+]?0x[a-fA-F0-9]+$/,M=/^0b[01]+$/,N=/^0o[0-7]+$/,O=/^([\-\+])?(0*)([0-9]*(\.[0-9]*)?)$/,P={hex:!0,binary:!1,octal:!1,leadingZeros:!0,decimalPoint:".",eNotation:!0,infinity:"original",unicode:!1},Q=/^([-+])?(0*)(\d*(\.\d*)?[eE][-\+]?\d+)$/;function R(a,b){let c=a.trim();if(2!==b&&8!==b||(a=c.substring(2)),parseInt)return parseInt(a,b);if(Number.parseInt)return Number.parseInt(a,b);if(window&&window.parseInt)return window.parseInt(a,b);throw Error("parseInt, Number.parseInt, window.parseInt are not supported")}class S{constructor(a){this._matcher=a}get separator(){return this._matcher.separator}getCurrentTag(){let a=this._matcher.path;return a.length>0?a[a.length-1].tag:void 0}getCurrentNamespace(){let a=this._matcher.path;return a.length>0?a[a.length-1].namespace:void 0}getAttrValue(a){let b=this._matcher.path;if(0!==b.length)return b[b.length-1].values?.[a]}hasAttr(a){let b=this._matcher.path;if(0===b.length)return!1;let c=b[b.length-1];return void 0!==c.values&&a in c.values}getAnyParentAttr(a){return this._matcher.getAnyParentAttr(a)}hasAnyParentAttr(a){return this._matcher.hasAnyParentAttr(a)}getPosition(){let a=this._matcher.path;return 0===a.length?-1:a[a.length-1].position??0}getCounter(){let a=this._matcher.path;return 0===a.length?-1:a[a.length-1].counter??0}getIndex(){return this.getPosition()}getDepth(){return this._matcher.path.length}toString(a,b=!0){return this._matcher.toString(a,b)}toArray(){return this._matcher.path.map(a=>a.tag)}matches(a){return this._matcher.matches(a)}matchesAny(a){return a.matchesAny(this._matcher)}}class T{constructor(a={}){this.separator=a.separator||".",this.path=[],this.siblingStacks=[],this._pathStringCache=null,this._view=new S(this),this._keptAttrs=[]}push(a,b=null,c=null,d=null){this._pathStringCache=null,this.path.length>0&&(this.path[this.path.length-1].values=void 0);let e=this.path.length,f=this.siblingStacks[e];f||(f={counts:new Map,total:0},this.siblingStacks[e]=f);let g=c?`${c}:${a}`:a,h=f.counts.get(g)||0,i=f.total;f.counts.set(g,h+1),f.total++;let j={tag:a,position:i,counter:h};null!=c&&(j.namespace=c),null!=b&&(j.values=b),this.path.push(j);let k=this.path.length,l=null!==d?d.keep:null;if(null!=l&&l.length>0&&b)for(let a=0;a<l.length;a++){let c=l[a];void 0!==b[c]&&this._keptAttrs.push({depth:k,name:c,value:b[c]})}}pop(){if(0===this.path.length)return;this._pathStringCache=null;let a=this.path.pop();this.siblingStacks.length>this.path.length+1&&(this.siblingStacks.length=this.path.length+1);let b=this.path.length+1;for(;this._keptAttrs.length>0&&this._keptAttrs[this._keptAttrs.length-1].depth>=b;)this._keptAttrs.pop();return a}updateCurrent(a){if(this.path.length>0){let b=this.path[this.path.length-1];null!=a&&(b.values=a)}}getCurrentTag(){return this.path.length>0?this.path[this.path.length-1].tag:void 0}getCurrentNamespace(){return this.path.length>0?this.path[this.path.length-1].namespace:void 0}getAttrValue(a){if(0!==this.path.length)return this.path[this.path.length-1].values?.[a]}hasAttr(a){if(0===this.path.length)return!1;let b=this.path[this.path.length-1];return void 0!==b.values&&a in b.values}getAnyParentAttr(a){let b=this._keptAttrs;for(let c=b.length-1;c>=0;c--)if(b[c].name===a)return b[c].value}hasAnyParentAttr(a){let b=this._keptAttrs;for(let c=b.length-1;c>=0;c--)if(b[c].name===a)return!0;return!1}getPosition(){return 0===this.path.length?-1:this.path[this.path.length-1].position??0}getCounter(){return 0===this.path.length?-1:this.path[this.path.length-1].counter??0}getIndex(){return this.getPosition()}getDepth(){return this.path.length}toString(a,b=!0){let c=a||this.separator;if(c===this.separator&&!0===b){if(null!==this._pathStringCache)return this._pathStringCache;let a=this.path.map(a=>a.namespace?`${a.namespace}:${a.tag}`:a.tag).join(c);return this._pathStringCache=a,a}return this.path.map(a=>b&&a.namespace?`${a.namespace}:${a.tag}`:a.tag).join(c)}toArray(){return this.path.map(a=>a.tag)}reset(){this._pathStringCache=null,this.path=[],this.siblingStacks=[],this._keptAttrs=[]}matches(a){let b=a.segments;return 0!==b.length&&(a.hasDeepWildcard()?this._matchWithDeepWildcard(b):this._matchSimple(b))}_matchSimple(a){if(this.path.length!==a.length)return!1;for(let b=0;b<a.length;b++)if(!this._matchSegment(a[b],this.path[b],b===this.path.length-1))return!1;return!0}_matchWithDeepWildcard(a){let b=this.path.length-1,c=a.length-1;for(;c>=0&&b>=0;){let d=a[c];if("deep-wildcard"===d.type){if(--c<0)return!0;let d=a[c],e=!1;for(let a=b;a>=0;a--)if(this._matchSegment(d,this.path[a],a===this.path.length-1)){b=a-1,c--,e=!0;break}if(!e)return!1}else{if(!this._matchSegment(d,this.path[b],b===this.path.length-1))return!1;b--,c--}}return c<0}_matchSegment(a,b,c){if("*"!==a.tag&&a.tag!==b.tag||void 0!==a.namespace&&"*"!==a.namespace&&a.namespace!==b.namespace||void 0!==a.attrName&&(!c||!b.values||!(a.attrName in b.values)||void 0!==a.attrValue&&String(b.values[a.attrName])!==String(a.attrValue)))return!1;if(void 0!==a.position){if(!c)return!1;let d=b.counter??0;if("first"===a.position&&0!==d||"odd"===a.position&&d%2!=1||"even"===a.position&&d%2!=0||"nth"===a.position&&d!==a.positionValue)return!1}return!0}matchesAny(a){return a.matchesAny(this)}snapshot(){return{path:this.path.map(a=>({...a})),siblingStacks:this.siblingStacks.map(a=>a?{counts:new Map(a.counts),total:a.total}:a),keptAttrs:this._keptAttrs.map(a=>({...a}))}}restore(a){this._pathStringCache=null,this.path=a.path.map(a=>({...a})),this.siblingStacks=a.siblingStacks.map(a=>a?{counts:new Map(a.counts),total:a.total}:a),this._keptAttrs=(a.keptAttrs||[]).map(a=>({...a}))}readOnly(){return this._view}}class U{constructor(a,b={},c){this.pattern=a,this.separator=b.separator||".",this.segments=this._parse(a),this.data=c,this._hasDeepWildcard=this.segments.some(a=>"deep-wildcard"===a.type),this._hasAttributeCondition=this.segments.some(a=>void 0!==a.attrName),this._hasPositionSelector=this.segments.some(a=>void 0!==a.position)}_parse(a){let b=[],c=0,d="";for(;c<a.length;)a[c]===this.separator?c+1<a.length&&a[c+1]===this.separator?(d.trim()&&(b.push(this._parseSegment(d.trim())),d=""),b.push({type:"deep-wildcard"}),c+=2):(d.trim()&&b.push(this._parseSegment(d.trim())),d="",c++):(d+=a[c],c++);return d.trim()&&b.push(this._parseSegment(d.trim())),b}_parseSegment(a){let b={type:"tag"},c=null,d=a,e=a.match(/^([^\[]+)(\[[^\]]*\])(.*)$/);if(e&&(d=e[1]+e[3],e[2])){let a=e[2].slice(1,-1);a&&(c=a)}let f,g,h=d;if(d.includes("::")){let b=d.indexOf("::");if(f=d.substring(0,b).trim(),h=d.substring(b+2).trim(),!f)throw Error(`Invalid namespace in pattern: ${a}`)}let i=null;if(h.includes(":")){let a=h.lastIndexOf(":"),b=h.substring(0,a).trim(),c=h.substring(a+1).trim();["first","last","odd","even"].includes(c)||/^nth\(\d+\)$/.test(c)?(g=b,i=c):g=h}else g=h;if(!g)throw Error(`Invalid segment pattern: ${a}`);if(b.tag=g,f&&(b.namespace=f),c)if(c.includes("=")){let a=c.indexOf("=");b.attrName=c.substring(0,a).trim(),b.attrValue=c.substring(a+1).trim()}else b.attrName=c.trim();if(i){let a=i.match(/^nth\((\d+)\)$/);a?(b.position="nth",b.positionValue=parseInt(a[1],10)):b.position=i}return b}get length(){return this.segments.length}hasDeepWildcard(){return this._hasDeepWildcard}hasAttributeCondition(){return this._hasAttributeCondition}hasPositionSelector(){return this._hasPositionSelector}toString(){return this.pattern}}class V{constructor(){this._byDepthAndTag=new Map,this._wildcardByDepth=new Map,this._deepWildcards=[],this._deepByTerminalTag=new Map,this._patterns=new Set,this._sealed=!1}add(a){if(this._sealed)throw TypeError("ExpressionSet is sealed. Create a new ExpressionSet to add more expressions.");if(this._patterns.has(a.pattern))return this;if(this._patterns.add(a.pattern),a.hasDeepWildcard()){let b=a.segments[a.segments.length-1];if(b&&"deep-wildcard"!==b.type&&"*"!==b.tag){let c=b.tag;this._deepByTerminalTag.has(c)||this._deepByTerminalTag.set(c,[]),this._deepByTerminalTag.get(c).push(a)}else this._deepWildcards.push(a);return this}let b=a.length,c=a.segments[a.segments.length-1],d=c?.tag;if(d&&"*"!==d){let c=`${b}:${d}`;this._byDepthAndTag.has(c)||this._byDepthAndTag.set(c,[]),this._byDepthAndTag.get(c).push(a)}else this._wildcardByDepth.has(b)||this._wildcardByDepth.set(b,[]),this._wildcardByDepth.get(b).push(a);return this}addAll(a){for(let b of a)this.add(b);return this}has(a){return this._patterns.has(a.pattern)}get size(){return this._patterns.size}seal(){return this._sealed=!0,this}get isSealed(){return this._sealed}matchesAny(a){return null!==this.findMatch(a)}findMatch(a){let b=a.getDepth(),c=a.getCurrentTag(),d=`${b}:${c}`,e=this._byDepthAndTag.get(d);if(e){for(let b=0;b<e.length;b++)if(a.matches(e[b]))return e[b]}let f=this._wildcardByDepth.get(b);if(f){for(let b=0;b<f.length;b++)if(a.matches(f[b]))return f[b]}let g=this._deepByTerminalTag.get(c);if(g){for(let b=0;b<g.length;b++)if(a.matches(g[b]))return g[b]}for(let b=0;b<this._deepWildcards.length;b++)if(a.matches(this._deepWildcards[b]))return this._deepWildcards[b];return null}}let W={cent:"¢",pound:"£",curren:"¤",yen:"¥",euro:"€",dollar:"$",fnof:"ƒ",inr:"₹",af:"؋",birr:"ብር",peso:"₱",rub:"₽",won:"₩",yuan:"¥",cedil:"¸"},X={amp:"&",apos:"'",gt:">",lt:"<",quot:'"'},Y={nbsp:" ",copy:"©",reg:"®",trade:"™",mdash:"—",ndash:"–",hellip:"…",laquo:"«",raquo:"»",lsquo:"‘",rsquo:"’",ldquo:"“",rdquo:"”",bull:"•",para:"¶",sect:"§",deg:"°",frac12:"½",frac14:"¼",frac34:"¾"},Z=Object.freeze({ALLOW:"allow",BLOCK:"block",THROW:"throw"}),$=new Set("!?\\\\/[]$%{}^&*()<>|+");function _(a){if("#"===a[0])throw Error(`[EntityReplacer] Invalid character '#' in entity name: "${a}"`);for(let b of a)if($.has(b))throw Error(`[EntityReplacer] Invalid character '${b}' in entity name: "${a}"`);return a}function aa(...a){let b=Object.create(null);for(let c of a)if(c)for(let a of Object.keys(c)){let d=c[a];if("string"==typeof d)b[a]=d;else if(d&&"object"==typeof d&&void 0!==d.val){let c=d.val;"string"==typeof c&&(b[a]=c)}}return b}let ab="external",ac="base",ad=Object.freeze({allow:0,leave:1,remove:2,throw:3}),ae=new Set([9,10,13]);class af{constructor(a={}){var b;this._limit=a.limit||{},this._maxTotalExpansions=this._limit.maxTotalExpansions||0,this._maxExpandedLength=this._limit.maxExpandedLength||0,this._postCheck="function"==typeof a.postCheck?a.postCheck:a=>a,this._limitTiers=new Set((b=this._limit.applyLimitsTo??ab)&&b!==ab?"all"===b?["all"]:b===ac?[ac]:Array.isArray(b)?b:[ab]:[ab]),this._numericAllowed=a.numericAllowed??!0,this._baseMap=aa(X,a.namedEntities||null),this._externalMap=Object.create(null),this._inputMap=Object.create(null),this._totalExpansions=0,this._expandedLength=0,this._removeSet=new Set(a.remove&&Array.isArray(a.remove)?a.remove:[]),this._leaveSet=new Set(a.leave&&Array.isArray(a.leave)?a.leave:[]);const c=function(a){return a?{xmlVersion:1.1===a.xmlVersion?1.1:1,onLevel:ad[a.onNCR]??ad.allow,nullLevel:Math.max(ad[a.nullNCR]??ad.remove,ad.remove)}:{xmlVersion:1,onLevel:ad.allow,nullLevel:ad.remove}}(a.ncr);this._ncrXmlVersion=c.xmlVersion,this._ncrOnLevel=c.onLevel,this._ncrNullLevel=c.nullLevel,this._onExternalEntity="function"==typeof a.onExternalEntity?a.onExternalEntity:null,this._onInputEntity="function"==typeof a.onInputEntity?a.onInputEntity:null}_applyRegistrationHook(a,b,c,d){if(!a)return!0;let e=a(b,c);if(e===Z.BLOCK)return!1;if(e===Z.THROW)throw Error(`[EntityDecoder] Registration of ${d} entity "&${b};" was rejected by hook`);return!0}setExternalEntities(a){if(a)for(let b of Object.keys(a))_(b);if(!this._onExternalEntity)return void(this._externalMap=aa(a));let b=aa(a),c=Object.create(null);for(let[a,d]of Object.entries(b))this._applyRegistrationHook(this._onExternalEntity,a,d,"external")&&(c[a]=d);this._externalMap=c}addExternalEntity(a,b){_(a),"string"==typeof b&&-1===b.indexOf("&")&&this._applyRegistrationHook(this._onExternalEntity,a,b,"external")&&(this._externalMap[a]=b)}addInputEntities(a){if(this._totalExpansions=0,this._expandedLength=0,!this._onInputEntity)return void(this._inputMap=aa(a));let b=aa(a),c=Object.create(null);for(let[a,d]of Object.entries(b))this._applyRegistrationHook(this._onInputEntity,a,d,"input")&&(c[a]=d);this._inputMap=c}reset(){return this._inputMap=Object.create(null),this._totalExpansions=0,this._expandedLength=0,this}setXmlVersion(a){this._ncrXmlVersion=1.1===a?1.1:1}decode(a){if("string"!=typeof a||0===a.length||-1===a.indexOf("&"))return a;let b=[],c=a.length,d=0,e=0,f=this._maxTotalExpansions>0,g=this._maxExpandedLength>0,h=f||g;for(;e<c;){let i,j;if(38!==a.charCodeAt(e)){e++;continue}let k=e+1;for(;k<c&&59!==a.charCodeAt(k)&&k-e<=32;)k++;if(k>=c||59!==a.charCodeAt(k)){e++;continue}let l=a.slice(e+1,k);if(0===l.length){e++;continue}if(this._removeSet.has(l))i="",void 0===j&&(j=ab);else{if(this._leaveSet.has(l)){e++;continue}if(35===l.charCodeAt(0)){let a=this._resolveNCR(l);if(void 0===a){e++;continue}i=a,j=ac}else{let a=this._resolveName(l);i=a?.value,j=a?.tier}}if(void 0!==i){if(e>d&&b.push(a.slice(d,e)),b.push(i),e=d=k+1,h&&this._tierCounts(j)){if(f&&(this._totalExpansions++,this._totalExpansions>this._maxTotalExpansions))throw Error(`[EntityReplacer] Entity expansion count limit exceeded: ${this._totalExpansions} > ${this._maxTotalExpansions}`);if(g){let a=i.length-(l.length+2);if(a>0&&(this._expandedLength+=a,this._expandedLength>this._maxExpandedLength))throw Error(`[EntityReplacer] Expanded content length limit exceeded: ${this._expandedLength} > ${this._maxExpandedLength}`)}}}else e++}d<c&&b.push(a.slice(d));let i=0===b.length?a:b.join("");return this._postCheck(i,a)}_tierCounts(a){return!!this._limitTiers.has("all")||this._limitTiers.has(a)}_resolveName(a){return a in this._inputMap?{value:this._inputMap[a],tier:ab}:a in this._externalMap?{value:this._externalMap[a],tier:ab}:a in this._baseMap?{value:this._baseMap[a],tier:ac}:void 0}_classifyNCR(a){return 0===a?this._ncrNullLevel:a>=55296&&a<=57343||1===this._ncrXmlVersion&&a>=1&&a<=31&&!ae.has(a)?ad.remove:-1}_applyNCRAction(a,b,c){switch(a){case ad.allow:return String.fromCodePoint(c);case ad.remove:return"";case ad.leave:return;case ad.throw:throw Error(`[EntityDecoder] Prohibited numeric character reference &${b}; (U+${c.toString(16).toUpperCase().padStart(4,"0")})`);default:return String.fromCodePoint(c)}}_resolveNCR(a){let b,c=a.charCodeAt(1);if(Number.isNaN(b=120===c||88===c?parseInt(a.slice(2),16):parseInt(a.slice(1),10))||b<0||b>1114111)return;let d=this._classifyNCR(b);if(!this._numericAllowed&&d<ad.remove)return;let e=-1===d?this._ncrOnLevel:Math.max(this._ncrOnLevel,d);return this._applyNCRAction(e,a,b)}}let ag=[{id:"sql-block-comment-open",description:"SQL block comment open: /* ... */ — unusual in legitimate user text",pattern:/\/\*/},{id:"sql-union-select",description:"UNION SELECT — most common SQL injection aggregation attack",pattern:/\bUNION\s{1,20}(?:ALL\s{1,20})?SELECT\b/i},{id:"sql-drop-table",description:"DROP TABLE — destructive DDL injection",pattern:/\bDROP\s{1,20}TABLE\b/i},{id:"sql-drop-database",description:"DROP DATABASE — destructive DDL injection",pattern:/\bDROP\s{1,20}DATABASE\b/i},{id:"sql-insert-into",description:"INSERT INTO — data injection",pattern:/\bINSERT\s{1,20}INTO\b/i},{id:"sql-delete-from",description:"DELETE FROM — data deletion injection",pattern:/\bDELETE\s{1,20}FROM\b/i},{id:"sql-update-set",description:"UPDATE ... SET — data modification injection",pattern:/\bUPDATE\b[\s\S]{1,60}\bSET\b/i},{id:"sql-exec-xp",description:"EXEC xp_ — MSSQL extended stored procedure execution",pattern:/\bEXEC(?:UTE)?\s{1,20}xp_/i},{id:"sql-tautology-string",description:'Classic string tautology: \' OR \'1\'=\'1 or " OR "1"="1"',pattern:/'\s{0,10}OR\s{0,10}'[^']{0,20}'\s*=\s*'[^']{0,20}/i},{id:"sql-tautology-numeric",description:"Numeric tautology: OR 1=1",pattern:/\bOR\s{1,10}1\s*=\s*1\b/i},{id:"sql-always-true-zero",description:"Numeric tautology: OR 0=0",pattern:/\bOR\s{1,10}0\s*=\s*0\b/i},{id:"sql-sleep-benchmark",description:"Time-based blind injection: SLEEP() or BENCHMARK()",pattern:/\b(?:SLEEP|BENCHMARK)\s*\(/i},{id:"sql-waitfor-delay",description:"MSSQL time-based blind injection: WAITFOR DELAY",pattern:/\bWAITFOR\s{1,20}DELAY\b/i},{id:"sql-char-function",description:"CHAR() function — used to obfuscate injected strings",pattern:/\bCHAR\s*\(\s*\d{1,3}/i},{id:"sql-information-schema",description:"INFORMATION_SCHEMA — reconnaissance query for table/column enumeration",pattern:/\bINFORMATION_SCHEMA\b/i}],ah=[...ag,{id:"sql-line-comment",description:"SQL line comment: -- followed by whitespace or end of string",pattern:/--(?:\s|$)/},{id:"sql-stacked-query",description:"Stacked queries: semicolon immediately followed by a SQL keyword",pattern:/;\s{0,10}(?:SELECT|INSERT|UPDATE|DELETE|DROP|CREATE|ALTER|EXEC)\b/i},{id:"sql-hex-encoding",description:"Hex-encoded string injection: 0x41414141 style (MySQL)",pattern:/\b0x[0-9a-f]{4,}/i}],ai=[{id:"html-script-open",description:"<script opening tag",pattern:/<script[\s>/]/i},{id:"html-script-close",description:"</script closing tag",pattern:/<\/script[\s>]/i},{id:"html-javascript-protocol",description:"javascript: URI scheme (with optional whitespace/encoding)",pattern:/j[\t\n\r ]*a[\t\n\r ]*v[\t\n\r ]*a[\t\n\r ]*s[\t\n\r ]*c[\t\n\r ]*r[\t\n\r ]*i[\t\n\r ]*p[\t\n\r ]*t[\t\n\r ]*:/i},{id:"html-vbscript-protocol",description:"vbscript: URI scheme",pattern:/vbscript[\t\n\r ]*:/i},{id:"html-data-html",description:"data:text/html URI — can execute scripts in browsers",pattern:/data[\t\n\r ]*:[\t\n\r ]*text\/html/i},{id:"html-data-xhtml",description:"data:application/xhtml+xml URI",pattern:/data[\t\n\r ]*:[\t\n\r ]*application\/xhtml/i},{id:"html-data-svg",description:"data:image/svg+xml URI — can execute scripts",pattern:/data[\t\n\r ]*:[\t\n\r ]*image\/svg\+xml/i},{id:"html-inline-event-handler",description:"Inline event handler attributes: onclick=, onerror=, onload=, etc.",pattern:/\bon\w{1,30}\s*=/i},{id:"html-entity-obfuscated-script",description:"HTML-entity-encoded <script (e.g. <script or <script)",pattern:/(?:�*3[Cc];?|�*60;?|<)\s*script/i},{id:"html-entity-obfuscated-javascript",description:'HTML-entity-encoded javascript: (partial — catches common j or j for "j")',pattern:/(?:�*6[Aa];?|�*106;?)\s*(?:�*61;?|a)[\s\S]{0,80}script\s*:/i},{id:"html-style-expression",description:"CSS expression() — IE-era code execution in style attributes",pattern:/style[\s\S]{0,20}expression\s*\(/i},{id:"html-object-embed",description:"<object or <embed tags that can load active content",pattern:/<(?:object|embed)[\s>/]/i},{id:"html-base-tag",description:"<base href= — can hijack all relative URLs on a page",pattern:/<base[\s>]/i},{id:"html-meta-refresh",description:'<meta http-equiv="refresh" — can redirect users',pattern:/<meta[\s\S]{0,40}http-equiv[\s\S]{0,20}refresh/i},{id:"html-srcdoc",description:"srcdoc= attribute on iframes — embeds HTML that can run scripts",pattern:/srcdoc\s*=/i},{id:"html-iframe",description:"<iframe tag",pattern:/<iframe[\s>/]/i},{id:"html-form",description:"<form tag — can be used for phishing / credential harvesting injection",pattern:/<form[\s>/]/i}],aj=[{id:"xml-cdata-injection",description:"CDATA section injection: <![CDATA[ breaks out of text node context",pattern:/<!\[CDATA\[/i},{id:"xml-cdata-close",description:"CDATA close sequence: ]]> can terminate an enclosing CDATA section",pattern:/\]\]>/},{id:"xml-processing-instruction",description:"XML processing instruction: <?xml-stylesheet or <?php etc.",pattern:/<\?(?:xml[\- ]|php|asp)/i},{id:"xml-doctype-injection",description:"DOCTYPE declaration embedded in content — can define entities",pattern:/<!DOCTYPE(?:[\s[]|$)/i},{id:"xml-entity-system",description:"SYSTEM keyword — used in external entity declarations (XXE)",pattern:/\bSYSTEM\s+["']/i},{id:"xml-entity-public",description:"PUBLIC keyword — used in external entity declarations (XXE)",pattern:/\bPUBLIC\s+["']/i},{id:"xml-entity-declaration",description:"<!ENTITY declaration — defines entities, potential XXE or entity expansion",pattern:/<!ENTITY[\s%]/i},{id:"xml-billion-laughs",description:"Entity reference chaining / billion laughs: repeated &eX; style references",pattern:/(?:&\w{1,20};){3,}/},{id:"xml-namespace-confusion",description:"xmlns: attribute injection — can redefine namespaces to confuse parsers",pattern:/\bxmlns\s*(?::\w{1,40})?\s*=/i},{id:"xml-comment-injection",description:"<!-- comment injection — can hide content from some parsers",pattern:/<!--/},{id:"xml-comment-close",description:"--> closes an enclosing XML comment",pattern:/-->/},{id:"xml-pi-close",description:"?> closes an enclosing processing instruction",pattern:/\?>/}],ak=[{id:"svg-script-element",description:"<script element inside SVG executes JavaScript",pattern:/<script[\s>/]/i},{id:"svg-xlink-href-javascript",description:"xlink:href with javascript: — classic SVG XSS via <a> or <use>",pattern:/xlink\s*:\s*href\s*=\s*["']?\s*javascript\s*:/i},{id:"svg-href-javascript",description:"href= with javascript: in SVG context (<a>, <animate>, etc.)",pattern:/href\s*=\s*["']?\s*javascript\s*:/i},{id:"svg-foreignobject",description:"<foreignObject embeds HTML inside SVG — can execute scripts",pattern:/<foreignObject[\s>/]/i},{id:"svg-use-external",description:"<use xlink:href or href pointing to external resource (non-fragment URL)",pattern:/<use[\s\S]{0,60}(?:xlink\s*:\s*)?href\s*=\s*(?:["'][^#]|[^"'#\s>])/i},{id:"svg-animate-href",description:'<animate attributeName="href" — can dynamically change href to javascript:',pattern:/<animate[\s\S]{0,80}attributeName\s*=\s*["'][\s]*href["']/i},{id:"svg-animate-xlinkhref",description:'<animate attributeName="xlink:href"',pattern:/<animate[\s\S]{0,80}attributeName\s*=\s*["'][\s]*xlink\s*:\s*href["']/i},{id:"svg-set-javascript",description:'<set to="javascript:..." — sets an attribute to a javascript: URI',pattern:/<set[\s\S]{0,80}to\s*=\s*["']?\s*javascript\s*:/i},{id:"svg-event-handler",description:"SVG-specific event handler attributes: onload=, onerror=, onactivate=, etc.",pattern:/\bon(?:load|error|activate|begin|end|repeat|focus|blur|click|mouse\w{1,20}|key\w{1,20})\s*=/i},{id:"svg-handler-generic",description:"Generic on* handler catch-all for SVG attributes",pattern:/\bon\w{1,30}\s*=/i},{id:"svg-filter-feimage",description:"<feImage href= — filter primitive that can load external resources",pattern:/<feImage[\s\S]{0,80}(?:xlink\s*:\s*)?href\s*=/i},{id:"svg-image-external",description:"<image xlink:href with http/https or javascript protocol",pattern:/<image[\s\S]{0,80}(?:xlink\s*:\s*)?href\s*=\s*["']?\s*(?:https?|javascript)\s*:/i},{id:"svg-style-javascript",description:"style= attribute containing javascript: (e.g. background:url(javascript:...))",pattern:/style\s*=[\s\S]{0,60}javascript\s*:/i}],al=[{id:"shell-path-traversal-unix",description:"Unix path traversal: ../ — climbing the directory tree",pattern:/\.\.\//},{id:"shell-path-traversal-windows",description:"Windows path traversal: ..\\ — climbing the directory tree",pattern:/\.\.\\/},{id:"shell-path-traversal-encoded",description:"URL-encoded path traversal: %2e%2e or %2f variants",pattern:/%2e%2e|%2f\.\.|\.\.%2f/i},{id:"shell-null-byte",description:"Null byte injection: \\x00 or %00 — truncates strings in C-backed functions",pattern:/\x00|%00/},{id:"shell-semicolon",description:"Semicolon command separator: cmd1; cmd2",pattern:/;/},{id:"shell-pipe",description:"Pipe operator: cmd1 | cmd2",pattern:/\|/},{id:"shell-and-operator",description:"AND operator: cmd1 && cmd2",pattern:/&&/},{id:"shell-or-operator",description:"OR operator: cmd1 || cmd2",pattern:/\|\|/},{id:"shell-backtick",description:"Backtick command substitution: `cmd`",pattern:/`/},{id:"shell-dollar-paren",description:"Dollar-paren command substitution: $(cmd)",pattern:/\$\(/},{id:"shell-dollar-brace",description:"Dollar-brace variable expansion: ${var} — can be abused for injection",pattern:/\$\{/},{id:"shell-redirect-out",description:"Output redirection: cmd > file or cmd >> file",pattern:/>{1,2}/},{id:"shell-redirect-in",description:"Input redirection: cmd < file",pattern:/</},{id:"shell-newline-injection",description:"Newline injection: \\n or \\r — can inject new shell commands",pattern:/[\n\r]/},{id:"shell-glob-star",description:"Glob expansion: * or ? — can expand to unintended files",pattern:/[/\\][*?]/},{id:"shell-absolute-root",description:"Absolute root path injection: string starting with / or \\ (Windows UNC)",pattern:/^(?:\/|\\\\)/},{id:"shell-windows-drive",description:"Windows drive letter path injection: C:\\ or D:/",pattern:/^[a-zA-Z]:[/\\]/},{id:"shell-curl-wget",description:"curl/wget with URL or flags — can exfiltrate data or download payloads",pattern:/\b(?:curl|wget)\s+(?:https?:\/\/|ftp:\/\/|-)/i}],am=[{id:"redos-nested-quantifier-plus",description:"Nested + quantifier inside a group with outer quantifier: (a+)+, (.+b)*, etc.",pattern:/\([^)]*\+[^)]*\)[+*]/},{id:"redos-nested-quantifier-star",description:"Nested * quantifier: (a*)* or (a*)+ — catastrophic backtracking",pattern:/\([^)]*\*[^)]*\)[*+]/},{id:"redos-nested-groups",description:"Doubly nested quantified groups: ((a+)+) — guaranteed catastrophic",pattern:/\(\([^)]{0,40}\)[+*]\)[+*]/},{id:"redos-alternation-overlap",description:"Overlapping alternation under quantifier: (a|a)+ — ambiguous NFA paths",pattern:/\(([^|()]{1,20})\|(?:\1)(?:\|[^|()]{1,20}){0,5}\)[+*?]{1,2}/},{id:"redos-star-plus-concat",description:"(x*x)+ pattern — triggers super-linear backtracking",pattern:/\([^)]{0,10}\*[^)]{0,10}\)[+*]/},{id:"redos-dot-star-greedy",description:"(.*){n,} or (.+){n,} — repeated greedy dot quantifiers",pattern:/\(\.[*+]\)\{?\d/},{id:"redos-large-repetition",description:"Very large fixed or range repetition count {1000,} or {1000,n} — denial of service via backtracking",pattern:/\{\d{4,}(?:,\d*)?\}/},{id:"redos-catastrophic-alternation",description:"Long alternation with many similar branches — polynomial backtracking risk",pattern:/\([^)]{0,200}(?:\|[^|)]{0,50}){9,}\)/}],an="[\"'\\s]*:",ao=[{id:"nosql-where-operator",description:"$where — executes arbitrary JavaScript server-side in MongoDB",pattern:RegExp(`\\$where${an}`,"i")},{id:"nosql-ne-operator",description:'$ne — "not equal" operator used to bypass equality checks',pattern:RegExp(`\\$ne${an}`,"i")},{id:"nosql-gt-operator",description:'$gt — "greater than" used to bypass password/value checks',pattern:RegExp(`\\$gte?${an}`,"i")},{id:"nosql-lt-operator",description:'$lt / $lte — "less than" bypass variants',pattern:RegExp(`\\$lte?${an}`,"i")},{id:"nosql-regex-operator",description:"$regex — can be used to extract data character by character (blind injection)",pattern:RegExp(`\\$regex${an}`,"i")},{id:"nosql-or-operator",description:"$or — logical OR; used to create always-true conditions",pattern:RegExp(`\\$or${an}\\s*\\[`,"i")},{id:"nosql-and-operator",description:"$and — logical AND operator injection",pattern:RegExp(`\\$and${an}\\s*\\[`,"i")},{id:"nosql-nor-operator",description:"$nor — logical NOR operator injection",pattern:RegExp(`\\$nor${an}\\s*\\[`,"i")},{id:"nosql-exists-operator",description:"$exists — can enumerate fields to determine schema",pattern:RegExp(`\\$exists${an}`,"i")},{id:"nosql-in-operator",description:"$in — matches any value in a list; can enumerate values",pattern:RegExp(`\\$in${an}\\s*\\[`,"i")},{id:"nosql-expr-operator",description:"$expr — allows aggregation expressions in queries (MongoDB 3.6+)",pattern:RegExp(`\\$expr${an}`,"i")},{id:"nosql-function-operator",description:"$function — executes arbitrary JavaScript in MongoDB 4.4+",pattern:RegExp(`\\$function${an}`,"i")},{id:"nosql-accumulator-operator",description:"$accumulator — custom aggregation with arbitrary JS execution",pattern:RegExp(`\\$accumulator${an}`,"i")},{id:"nosql-proto-pollution",description:"__proto__ — prototype pollution via object key injection",pattern:/__proto__/},{id:"nosql-constructor-prototype",description:"constructor.prototype — alternative prototype pollution vector (dot notation or JSON key)",pattern:/constructor[\s"':.,{\[]*prototype/i},{id:"nosql-proto-bracket",description:'["__proto__"] — bracket-notation prototype pollution',pattern:/\[["']__proto__["']\]/}],ap=[{id:"log-crlf-injection",description:"CRLF injection: literal \\r or \\n embeds fake log lines",pattern:/[\r\n]/},{id:"log-url-encoded-crlf",description:"URL-encoded CRLF: %0d, %0a, %0D, %0A — decoded by some log parsers",pattern:/%0[dDaA]/},{id:"log-unicode-newline",description:"Unicode newline variants: U+2028 (line separator), U+2029 (paragraph separator)",pattern:/[\u2028\u2029]/},{id:"log-log4shell-jndi",description:"Log4Shell: ${jndi:...} triggers remote code execution in Apache Log4j",pattern:/\$\{jndi\s*:/i},{id:"log-log4shell-obfuscated",description:"Obfuscated Log4Shell: ${::-j}... lookup-bypass prefix used to evade WAF detection",pattern:/\$\{::-/},{id:"log-log4j-lookup",description:"Log4j lookup syntax: ${env:...}, ${sys:...}, ${ctx:...} — data exfiltration",pattern:/\$\{(?:env|sys|ctx|main|map|sd|web|docker|k8s|spring)\s*:/i},{id:"log-ssti-double-brace",description:"SSTI double-brace: {{expression}} — Jinja2, Twig, Handlebars, etc.",pattern:/\{\{[\s\S]{0,80}\}\}/},{id:"log-ssti-hash-brace",description:"SSTI hash-brace: #{expression} — Thymeleaf, Velocity, Ruby ERB",pattern:/#\{[\s\S]{0,80}\}/},{id:"log-ssti-dollar-brace",description:"SSTI/EL injection: ${expression with operators or method calls} — JSP EL, Freemarker, SpEL",pattern:/\$\{[^}]*(?:\.|\(|\*|\+|\bclass\b|\bruntime\b|\bprocess\b|\bexec\b)[^}]{0,80}\}/i},{id:"log-ssti-percent-tag",description:"SSTI ERB/ASP tag: <%= expression %> — Ruby ERB, ASP",pattern:/<%=[\s\S]{0,80}%>/},{id:"log-null-byte",description:"Null byte: \\x00 or %00 — can truncate log entries in C-backed loggers",pattern:/\x00|%00/},{id:"log-ansi-escape",description:"ANSI escape sequence: ESC[ — can manipulate terminal output when logs are tailed",pattern:/\x1b\[/}];ai.label="HTML",aj.label="XML",ak.label="SVG",ag.label="SQL",ah.label="SQL-STRICT",al.label="SHELL",am.label="REDOS",ao.label="NOSQL",ap.label="LOG",Object.freeze({HTML:ai,XML:aj,SVG:ak,SQL:ag,"SQL-STRICT":ah,SHELL:al,REDOS:am,NOSQL:ao,LOG:ap});class aq{constructor(a,b){var c;this.options=a,this.currentNode=null,this.tagsNodeStack=[],this.parseXml=av,this.parseTextData=ar,this.resolveNameSpace=as,this.buildAttributesMap=au,this.isItStopNode=az,this.replaceEntitiesValue=ax,this.readStopNodeData=aC,this.saveTextToParentTag=ay,this.addChild=aw,this.ignoreAttributesFn="function"==typeof(c=this.options.ignoreAttributes)?c:Array.isArray(c)?a=>{for(let b of c)if("string"==typeof b&&a===b||b instanceof RegExp&&b.test(a))return!0}:()=>!1,this.entityExpansionCount=0,this.currentExpandedLength=0,this.doctypefound=!1;let d={...X};this.options.entityDecoder?this.entityDecoder=this.options.entityDecoder:("object"==typeof this.options.htmlEntities?d=this.options.htmlEntities:!0===this.options.htmlEntities&&(d={...Y,...W}),this.entityDecoder=new af({namedEntities:{...d,...b},numericAllowed:this.options.htmlEntities,limit:{maxTotalExpansions:this.options.processEntities.maxTotalExpansions,maxExpandedLength:this.options.processEntities.maxExpandedLength,applyLimitsTo:this.options.processEntities.appliesTo},onInputEntity:(a,b)=>!function(a,b){(function(a){if("string"!=typeof a)throw TypeError("is-unsafe: first argument must be a string, got "+typeof a)})(a),function(a){if(!(a instanceof RegExp)){if(!Array.isArray(a))throw TypeError("is-unsafe: second argument must be a PatternList (e.g. HTML), an array of PatternLists (e.g. [HTML, XML]), or a RegExp. Got: "+typeof a);if(0===a.length)throw TypeError("is-unsafe: context must not be an empty array");if(Array.isArray(a[0])){for(let b of a)if(!Array.isArray(b)||0===b.length)throw TypeError("is-unsafe: each context in the array must be a non-empty pattern array (PatternList)")}}}(b);let{lists:c,regex:d}=b instanceof RegExp?{lists:null,regex:b}:Array.isArray(b[0])?{lists:b,regex:null}:{lists:[b],regex:null};if(d)return d.test(a);for(let b of c)if(null!==function(a,b){let c=b.label??"CUSTOM";for(let d of b)if(d.pattern.test(a))return{context:c,id:d.id,description:d.description,pattern:d.pattern};return null}(a,b))return!0;return!1}(b,[ai,aj])?Z.ALLOW:Z.BLOCK})),this.matcher=new T,this.readonlyMatcher=this.matcher.readOnly(),this.isCurrentNodeStopNode=!1,this.stopNodeExpressionsSet=new V;const e=this.options.stopNodes;if(e&&e.length>0){for(let a=0;a<e.length;a++){const b=e[a];"string"==typeof b?this.stopNodeExpressionsSet.add(new U(b)):b instanceof U&&this.stopNodeExpressionsSet.add(b)}this.stopNodeExpressionsSet.seal()}}}function ar(a,b,c,d,e,f,g){let h=this.options;if(void 0!==a&&(h.trimValues&&!d&&(a=a.trim()),a.length>0)){g||(a=this.replaceEntitiesValue(a,b,c));let d=h.jPath?c.toString():c,i=h.tagValueProcessor(b,a,d,e,f);return null==i?a:typeof i!=typeof a||i!==a?i:h.trimValues||a.trim()===a?aD(a,h.parseTagValue,h.numberParseOptions):a}}function as(a){if(this.options.removeNSPrefix){let b=a.split(":"),c="/"===a.charAt(0)?"/":"";if("xmlns"===b[0])return"";2===b.length&&(a=c+b[1])}return a}let at=RegExp("([^\\s=]+)\\s*(=\\s*(['\"])([\\s\\S]*?)\\3)?","gm");function au(a,b,c,d=!1){let e=this.options;if(!0===d||!0!==e.ignoreAttributes&&"string"==typeof a){let d=function(a,b){let c=[],d=b.exec(a);for(;d;){let e=[];e.startIndex=b.lastIndex-d[0].length;let f=d.length;for(let a=0;a<f;a++)e.push(d[a]);c.push(e),d=b.exec(a)}return c}(a,at),f=d.length,g={},h=Array(f),i=!1,j={};for(let a=0;a<f;a++){let b=this.resolveNameSpace(d[a][1]),f=d[a][4];if(b.length&&void 0!==f){let d=f;e.trimValues&&(d=d.trim()),d=this.replaceEntitiesValue(d,c,this.readonlyMatcher),h[a]=d,j[b]=d,i=!0}}i&&"object"==typeof b&&b.updateCurrent&&b.updateCurrent(j);let k=e.jPath?b.toString():this.readonlyMatcher,l=!1;for(let a=0;a<f;a++){let b=this.resolveNameSpace(d[a][1]);if(this.ignoreAttributesFn(b,k))continue;let c=e.attributeNamePrefix+b;if(b.length)if(e.transformAttributeName&&(c=e.transformAttributeName(c)),c=aF(c,e),void 0!==d[a][4]){let d=h[a],f=e.attributeValueProcessor(b,d,k);g[c]=null==f?d:typeof f!=typeof d||f!==d?f:aD(d,e.parseAttributeValue,e.numberParseOptions),l=!0}else e.allowBooleanAttributes&&(g[c]=!0,l=!0)}if(!l)return;if(e.attributesGroupName&&!e.preserveOrder){let a={};return a[e.attributesGroupName]=g,a}return g}}let av=function(a){a=a.replace(/\r\n?/g,"\n");let b=new v("!xml"),c=b,d="";this.matcher.reset(),this.entityDecoder.reset(),this.entityExpansionCount=0,this.currentExpandedLength=0,this.doctypefound=!1;let e=this.options,f=new E(e.processEntities),g=a.length;for(let h=0;h<g;h++)if("<"===a[h]){let i=a.charCodeAt(h+1);if(47===i){let f=aA(a,">",h,"Closing Tag is not closed."),g=a.substring(h+2,f).trim();if(e.removeNSPrefix){let a=g.indexOf(":");-1!==a&&(g=g.substr(a+1))}g=aE(e.transformTagName,g,"",e).tagName,c&&(d=this.saveTextToParentTag(d,c,this.readonlyMatcher));let i=this.matcher.getCurrentTag();if(g&&e.unpairedTagsSet.has(g))throw Error(`Unpaired tag can not be used as closing tag: </${g}>`);i&&e.unpairedTagsSet.has(i)&&(this.matcher.pop(),this.tagsNodeStack.pop()),this.matcher.pop(),this.isCurrentNodeStopNode=!1,c=this.tagsNodeStack.pop()||b,e.captureMetaData&&c&&c.addEndIndex(f+1),d="",h=f}else if(63===i){let b=aB(a,h,!1,"?>");if(!b)throw Error("Pi Tag is not closed.");d=this.saveTextToParentTag(d,c,this.readonlyMatcher);let g=this.buildAttributesMap(b.tagExp,this.matcher,b.tagName,!0);if(g){let a=g[this.options.attributeNamePrefix+"version"];this.entityDecoder.setXmlVersion(Number(a)||1),f.setXmlVersion(Number(a)||1)}if(e.ignoreDeclaration&&"?xml"===b.tagName||e.ignorePiTags);else{let a=new v(b.tagName);a.add(e.textNodeName,""),b.tagName!==b.tagExp&&b.attrExpPresent&&!0!==e.ignoreAttributes&&(a[":@"]=g),this.addChild(c,a,this.readonlyMatcher,h),e.captureMetaData&&c.addEndIndex(b.closeIndex+2)}h=b.closeIndex+1}else if(33===i&&45===a.charCodeAt(h+2)&&45===a.charCodeAt(h+3)){let b=aA(a,"-->",h+4,"Comment is not closed.");if(e.commentPropName){let f=a.substring(h+4,b-2);d=this.saveTextToParentTag(d,c,this.readonlyMatcher),c.add(e.commentPropName,[{[e.textNodeName]:f}])}h=b}else if(33===i&&68===a.charCodeAt(h+2)){if(this.doctypefound)throw Error("Multiple DOCTYPE declarations found.");this.doctypefound=!0;let b=f.readDocType(a,h);this.entityDecoder.addInputEntities(b.entities),h=b.i}else if(33===i&&91===a.charCodeAt(h+2)){let b=aA(a,"]]>",h,"CDATA is not closed.")-2,f=a.substring(h+9,b);d=this.saveTextToParentTag(d,c,this.readonlyMatcher);let g=this.parseTextData(f,c.tagname,this.readonlyMatcher,!0,!1,!0,!0);null==g&&(g=""),e.cdataPropName?c.add(e.cdataPropName,[{[e.textNodeName]:f}]):c.add(e.textNodeName,g),h=b+2}else{let f=aB(a,h,e.removeNSPrefix);if(!f){let b=a.substring(Math.max(0,h-50),Math.min(g,h+50));throw Error(`readTagExp returned undefined at position ${h}. Context: "${b}"`)}let i=f.tagName,j=f.rawTagName,k=f.tagExp,l=f.attrExpPresent,m=f.closeIndex;if({tagName:i,tagExp:k}=aE(e.transformTagName,i,k,e),e.strictReservedNames&&(i===e.commentPropName||i===e.cdataPropName||i===e.textNodeName||i===e.attributesGroupName))throw Error(`Invalid tag name: ${i}`);c&&d&&"!xml"!==c.tagname&&(d=this.saveTextToParentTag(d,c,this.readonlyMatcher,!1));let n=c;n&&e.unpairedTagsSet.has(n.tagname)&&(c=this.tagsNodeStack.pop(),this.matcher.pop());let o=!1;k.length>0&&k.lastIndexOf("/")===k.length-1&&(o=!0,k="/"===i[i.length-1]?i=i.substr(0,i.length-1):k.substr(0,k.length-1),l=i!==k);let p,q=null;p=function(a){if(!a||"string"!=typeof a)return;let b=a.indexOf(":");if(-1!==b&&b>0){let c=a.substring(0,b);if("xmlns"!==c)return c}}(j),i!==b.tagname&&this.matcher.push(i,{},p),i!==k&&l&&(q=this.buildAttributesMap(k,this.matcher,i))&&function(a,b){if(!a)return;let c=b.attributesGroupName?a[b.attributesGroupName]:a;if(!c)return;let d={};for(let a in c)a.startsWith(b.attributeNamePrefix)?d[a.substring(b.attributeNamePrefix.length)]=c[a]:d[a]=c[a]}(q,e),i!==b.tagname&&(this.isCurrentNodeStopNode=this.isItStopNode());let r=h;if(this.isCurrentNodeStopNode){let b="";if(o)h=f.closeIndex;else if(e.unpairedTagsSet.has(i))h=f.closeIndex;else{let c=this.readStopNodeData(a,j,m+1);if(!c)throw Error(`Unexpected end of ${j}`);h=c.i,b=c.tagContent}let d=new v(i);q&&(d[":@"]=q),d.add(e.textNodeName,b),this.matcher.pop(),this.isCurrentNodeStopNode=!1,this.addChild(c,d,this.readonlyMatcher,r),e.captureMetaData&&c.addEndIndex(h+1)}else{if(o){({tagName:i,tagExp:k}=aE(e.transformTagName,i,k,e));let a=new v(i);q&&(a[":@"]=q),this.addChild(c,a,this.readonlyMatcher,r),e.captureMetaData&&c.addEndIndex(m+1),this.matcher.pop(),this.isCurrentNodeStopNode=!1}else{if(e.unpairedTagsSet.has(i)){let a=new v(i);q&&(a[":@"]=q),this.addChild(c,a,this.readonlyMatcher,r),e.captureMetaData&&c.addEndIndex(f.closeIndex+1),this.matcher.pop(),this.isCurrentNodeStopNode=!1,h=f.closeIndex;continue}{let a=new v(i);if(this.tagsNodeStack.length>e.maxNestedTags)throw Error("Maximum nested tags exceeded");this.tagsNodeStack.push(c),q&&(a[":@"]=q),this.addChild(c,a,this.readonlyMatcher,r),c=a}}d="",h=m}}}else d+=a[h];return b.child};function aw(a,b,c,d){this.options.captureMetaData||(d=void 0);let e=this.options.jPath?c.toString():c,f=this.options.updateTag(b.tagname,e,b[":@"]);!1===f||("string"==typeof f&&(b.tagname=f),a.addChild(b,d))}function ax(a,b,c){let d=this.options.processEntities;if(!d||!d.enabled)return a;if(d.allowedTags){let e=this.options.jPath?c.toString():c;if(!(Array.isArray(d.allowedTags)?d.allowedTags.includes(b):d.allowedTags(b,e)))return a}if(d.tagFilter){let e=this.options.jPath?c.toString():c;if(!d.tagFilter(b,e))return a}return this.entityDecoder.decode(a)}function ay(a,b,c,d){return a&&(void 0===d&&(d=0===b.child.length),void 0!==(a=this.parseTextData(a,b.tagname,c,!1,!!b[":@"]&&0!==Object.keys(b[":@"]).length,d))&&""!==a&&b.add(this.options.textNodeName,a),a=""),a}function az(){return 0!==this.stopNodeExpressionsSet.size&&this.matcher.matchesAny(this.stopNodeExpressionsSet)}function aA(a,b,c,d){let e=a.indexOf(b,c);if(-1===e)throw Error(d);return e+b.length-1}function aB(a,b,c,d=">"){let e=function(a,b,c=">"){let d=0,e=a.length,f=c.charCodeAt(0),g=c.length>1?c.charCodeAt(1):-1,h="",i=b;for(let c=b;c<e;c++){let b=a.charCodeAt(c);if(d)b===d&&(d=0);else if(34===b||39===b)d=b;else if(b===f){if(-1===g||a.charCodeAt(c+1)===g)return{data:h+=a.substring(i,c),index:c}}else 9!==b||d||(h+=a.substring(i,c)+" ",i=c+1)}}(a,b+1,d);if(!e)return;let f=e.data,g=e.index,h=f.search(/\s/),i=f,j=!0;-1!==h&&(i=f.substring(0,h),f=f.substring(h+1).trimStart());let k=i;if(c){let a=i.indexOf(":");-1!==a&&(j=(i=i.substr(a+1))!==e.data.substr(a+1))}return{tagName:i,tagExp:f,closeIndex:g,attrExpPresent:j,rawTagName:k}}function aC(a,b,c){let d=c,e=1,f=a.length;for(;c<f;c++)if("<"===a[c]){let f=a.charCodeAt(c+1);if(47===f){let f=function(a,b,c){let d=a.indexOf(">",b);if(-1===d)throw Error(c);return d}(a,c,`${b} is not closed`);if(a.substring(c+2,f).trim()===b&&0==--e)return{tagContent:a.substring(d,c),i:f};c=f}else if(63===f)c=aA(a,"?>",c+1,"StopNode is not closed.");else if(33===f&&45===a.charCodeAt(c+2)&&45===a.charCodeAt(c+3))c=aA(a,"-->",c+3,"StopNode is not closed.");else if(33===f&&91===a.charCodeAt(c+2))c=aA(a,"]]>",c,"StopNode is not closed.")-2;else{let d=aB(a,c,!1);d&&((d&&d.tagName)===b&&"/"!==d.tagExp[d.tagExp.length-1]&&e++,c=d.closeIndex)}}}function aD(a,b,c){if(b&&"string"==typeof a){let b=a.trim();return"true"===b||"false"!==b&&function(a,b={}){if(b=Object.assign({},P,b),!a||"string"!=typeof a)return a;let c=a.trim();if(0===c.length||void 0!==b.skipLike&&b.skipLike.test(c))return a;if("0"===c||b.unicode&&"0"===(c=function(a){if("string"!=typeof a)return a;let b=a.length;if(0===b)return a;let c=-1;for(let d=0;d<b;d++){let e=a.charCodeAt(d);if(!(e>=48&&e<=57||45===e)){if(e<1632){if(K.has(e)){c=d;break}}else if(e>=55296&&e<=56319){if(d+1<b){let b=a.charCodeAt(d+1);if(b>=56320&&b<=57343){let a=65536+(e-55296<<10)+(b-56320);if(I.has(a)){c=d;break}}}}else if(255!==J[e-1632]||K.has(e)){c=d;break}}}if(-1===c)return a;let d=[];c>0&&d.push(a.slice(0,c));for(let e=c;e<b;e++){let c=a.charCodeAt(e);if(c>=48&&c<=57||45===c){d.push(a[e]);continue}if(c<1632){d.push(K.has(c)?"-":a[e]);continue}if(c>=55296&&c<=56319){if(e+1<b){let b=a.charCodeAt(e+1);if(b>=56320&&b<=57343){let a=65536+(c-55296<<10)+(b-56320),f=I.get(a);if(void 0!==f){d.push(String.fromCharCode(f+48)),e++;continue}}}d.push(a[e]);continue}if(K.has(c)){d.push("-");continue}let f=J[c-1632];d.push(255!==f?String.fromCharCode(f+48):a[e])}return d.join("")}(c)))return 0;if(b.hex&&L.test(c))return R(c,16);if(b.binary&&M.test(c))return R(c,2);if(b.octal&&N.test(c))return R(c,8);if(isFinite(c)){if(c.includes("e")||c.includes("E"))return function(a,b,c){if(!c.eNotation)return a;let d=b.match(Q);if(d){let e=d[1]||"",f=-1===d[3].indexOf("e")?"E":"e",g=d[2],h=e?a[g.length+1]===f:a[g.length]===f;return g.length>1&&h?a:(1!==g.length||!d[3].startsWith(`.${f}`)&&d[3][0]!==f)&&g.length>0?c.leadingZeros&&!h?Number(b=(d[1]||"")+d[3]):a:Number(b)}return a}(a,c,b);{let d=O.exec(c);if(d){let e=d[1]||"",f=d[2],g=function(a){if(a&&-1!==a.indexOf(".")){let b=a.length;for(;b>0&&48===a.charCodeAt(b-1);)b--;return"."===(a=a.slice(0,b))?a="0":"."===a[0]?a="0"+a:"."===a[a.length-1]&&(a=a.substring(0,a.length-1)),a}return a}(d[3]),h=e?"."===a[f.length+1]:"."===a[f.length];if(!b.leadingZeros&&(f.length>1||1===f.length&&!h))return a;{let d=Number(c),h=String(d);if(0===d)return d;if(-1!==h.search(/[eE]/))return b.eNotation?d:a;if(-1!==c.indexOf("."))return"0"===h||h===g||h===`${e}${g}`?d:a;let i=f?g:c;return f?i===h||e+i===h?d:a:i===h||i===e+h?d:a}}return a}}var d=Number(c);switch(b.infinity.toLowerCase()){case"null":return null;case"infinity":return d;case"string":return d===1/0?"Infinity":"-Infinity";default:return a}}(a,c)}return void 0!==a?a:""}function aE(a,b,c,d){if(a){let d=a(b);c===b&&(c=d),b=d}return{tagName:b=aF(b,d),tagExp:c}}function aF(a,b){if(i.includes(a))throw Error(`[SECURITY] Invalid name: "${a}" is a reserved JavaScript keyword that could cause prototype pollution`);return h.includes(a)?b.onDangerousProperty(a):a}let aG=v.getMetaDataSymbol();class aH{constructor(a){this.externalEntities={},this.options=u(a)}parse(a,b){var c;if("string"!=typeof a&&a.toString)a=a.toString();else if("string"!=typeof a)throw Error("XML data is accepted in String or Bytes[] form.");if(b){!0===b&&(b={});let c=k(a,b);if(!0!==c)throw Error(`${c.err.msg}:${c.err.line}:${c.err.col}`)}let d=new aq(this.options,this.externalEntities),e=d.parseXml(a);return this.options.preserveOrder||void 0===e?e:(c=this.options,function a(b,c,d,e){let f,g={};for(let h=0;h<b.length;h++){let i=b[h],j=function(a){let b=Object.keys(a);for(let a=0;a<b.length;a++){let c=b[a];if(":@"!==c)return c}}(i);if(void 0!==j&&j!==c.textNodeName){let a=function(a,b){if(!a||"object"!=typeof a)return{};if(!b)return a;let c={};for(let d in a)d.startsWith(b)?c[d.substring(b.length)]=a[d]:c[d]=a[d];return c}(i[":@"]||{},c.attributeNamePrefix);d.push(j,a)}if(j===c.textNodeName)void 0===f?f=i[j]:f+=""+i[j];else{if(void 0===j)continue;if(i[j]){let b=a(i[j],c,d,e),f=function(a,b){let{textNodeName:c}=b,d=Object.keys(a).length;return 0===d||!(1!==d||!a[c]&&"boolean"!=typeof a[c]&&0!==a[c])}(b,c);if(0===Object.keys(b).length&&c.alwaysCreateTextNode&&(b[c.textNodeName]=""),i[":@"]?function(a,b,c,d){if(b){let e=Object.keys(b),f=e.length;for(let g=0;g<f;g++){let f=e[g],h=f.startsWith(d.attributeNamePrefix)?f.substring(d.attributeNamePrefix.length):f,i=d.jPath?c.toString()+"."+h:c;d.isArray(f,i,!0,!0)?a[f]=[b[f]]:a[f]=b[f]}}}(b,i[":@"],e,c):1!==Object.keys(b).length||void 0===b[c.textNodeName]||c.alwaysCreateTextNode?0===Object.keys(b).length&&(c.alwaysCreateTextNode?b[c.textNodeName]="":b=""):b=b[c.textNodeName],void 0!==i[aG]&&"object"==typeof b&&null!==b&&(b[aG]=i[aG]),void 0!==g[j]&&Object.prototype.hasOwnProperty.call(g,j))Array.isArray(g[j])||(g[j]=[g[j]]),g[j].push(b);else{let a=c.jPath?e.toString():e;c.isArray(j,a,f)?g[j]=[b]:g[j]=b}void 0!==j&&j!==c.textNodeName&&d.pop()}}}return"string"==typeof f?f.length>0&&(g[c.textNodeName]=f):void 0!==f&&(g[c.textNodeName]=f),g}(e,c,d.matcher,d.readonlyMatcher))}addEntity(a,b){if(-1!==b.indexOf("&"))throw Error("Entity value can't have '&'");if(-1!==a.indexOf("&")||-1!==a.indexOf(";"))throw Error("An entity must be set without '&' and ';'. Eg. use '#xD' for '
'");if("&"===b)throw Error("An entity with value '&' is not permitted");this.externalEntities[a]=b}static getMetaDataSymbol(){return v.getMetaDataSymbol()}}function aI(a){return String(a).replace(/--/g,"- -").replace(/--/g,"- -").replace(/-$/,"- ")}function aJ(a){return String(a).replace(/\]\]>/g,"]]]]><![CDATA[>")}function aK(a){return String(a).replace(/"/g,""").replace(/'/g,"'")}let aL=":A-Za-z_À-ÖØ-öø-˿Ͱ-ͽͿ-҆҈--⁰-Ⰰ-、-豈-﷏ﷰ-�",aM=":A-Za-z_À-˿Ͱ-ͽͿ-҆҈--⁰-Ⰰ-、-豈-﷏ﷰ-�𐀀-",aN=(a,b,c="")=>{let d=`[${a.replace(":","")}][${b.replace(":","")}]*`;return{name:RegExp(`^[${a}][${b}]*$`,c),ncName:RegExp(`^${d}$`,c),qName:RegExp(`^${d}(?::${d})?$`,c),nmToken:RegExp(`^[${b}]+$`,c),nmTokens:RegExp(`^[${b}]+(?:\\s+[${b}]+)*$`,c)}},aO=aN(aL,aL+"\\-\\.\\d·̀-ͯ‿-⁀"),aP=aN(aM,aM+"\\-\\.\\d·̀-ͯ҇‿-⁀","u"),aQ=(a,{xmlVersion:b="1.0"}={})=>((a="1.0")=>"1.1"===a?aP:aO)(b).qName.test(a);function aR(a,b,c,d,e){return c.sanitizeName?aQ(a,{xmlVersion:e})?a:c.sanitizeName(a,{isAttribute:b,matcher:d.readOnly()}):a}function aS(a){let b=Object.keys(a);for(let c=0;c<b.length;c++){let d=b[c];if(Object.prototype.hasOwnProperty.call(a,d)&&":@"!==d)return d}}function aT(a,b,c,d,e){let f="";if(a&&!b.ignoreAttributes)for(let g in a){let h;if(!Object.prototype.hasOwnProperty.call(a,g))continue;let i=g.substr(b.attributeNamePrefix.length),j=c?i:aR(i,!0,b,d,e);!0===(h=c?a[g]:aU(h=b.attributeValueProcessor(g,a[g]),b))&&b.suppressBooleanAttributes?f+=` ${j}`:f+=` ${j}="${aK(h)}"`}return f}function aU(a,b){if(a&&a.length>0&&b.processEntities)for(let c=0;c<b.entities.length;c++){let d=b.entities[c];a=a.replace(d.regex,d.val)}return a}let aV={attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,cdataPropName:!1,format:!1,indentBy:" ",suppressEmptyNode:!1,suppressUnpairedNode:!0,suppressBooleanAttributes:!0,tagValueProcessor:function(a,b){return b},attributeValueProcessor:function(a,b){return b},preserveOrder:!1,commentPropName:!1,unpairedTags:[],entities:[{regex:RegExp("&","g"),val:"&"},{regex:RegExp(">","g"),val:">"},{regex:RegExp("<","g"),val:"<"},{regex:RegExp("'","g"),val:"'"},{regex:RegExp('"',"g"),val:"""}],processEntities:!0,stopNodes:[],oneListGroup:!1,maxNestedTags:100,jPath:!0,sanitizeName:!1};function aW(a){var b;if(this.options=Object.assign({},aV,a),this.options.stopNodes&&Array.isArray(this.options.stopNodes)&&(this.options.stopNodes=this.options.stopNodes.map(a=>"string"==typeof a&&a.startsWith("*.")?".."+a.substring(2):a)),this.stopNodeExpressions=[],this.options.stopNodes&&Array.isArray(this.options.stopNodes))for(let a=0;a<this.options.stopNodes.length;a++){let b=this.options.stopNodes[a];"string"==typeof b?this.stopNodeExpressions.push(new U(b)):b instanceof U&&this.stopNodeExpressions.push(b)}!0===this.options.ignoreAttributes||this.options.attributesGroupName?this.isAttribute=function(){return!1}:(this.ignoreAttributesFn="function"==typeof(b=this.options.ignoreAttributes)?b:Array.isArray(b)?a=>{for(let c of b)if("string"==typeof c&&a===c||c instanceof RegExp&&c.test(a))return!0}:()=>!1,this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=a$),this.processTextOrObjNode=aY,this.options.format?(this.indentate=aZ,this.tagEndChar=">\n",this.newLine="\n"):(this.indentate=function(){return""},this.tagEndChar=">",this.newLine="")}function aX(a,b,c,d,e){return c.sanitizeName?aQ(a,{xmlVersion:e})?a:c.sanitizeName(a,{isAttribute:b,matcher:d.readOnly()}):a}function aY(a,b,c,d,e){let f=this.extractAttributes(a);if(d.push(b,f),this.checkStopNode(d)){let e=this.buildRawContent(a),f=this.buildAttributesForStopNode(a);return d.pop(),this.buildObjectNode(e,b,f,c)}let g=this.j2x(a,c+1,d,e);return d.pop(),"?"===b[0]?this.buildTextValNode("",b,g.attrStr,c,d):void 0!==a[this.options.textNodeName]&&1===Object.keys(a).length?this.buildTextValNode(a[this.options.textNodeName],b,g.attrStr,c,d):this.buildObjectNode(g.val,b,g.attrStr,c)}function aZ(a){return this.options.indentBy.repeat(a)}function a$(a){return!(!a.startsWith(this.options.attributeNamePrefix)||a===this.options.textNodeName)&&a.substr(this.attrPrefixLen)}aW.prototype.build=function(a){if(this.options.preserveOrder)return function(a,b){let c="";b.format&&(c="\n");let d=[];if(b.stopNodes&&Array.isArray(b.stopNodes))for(let a=0;a<b.stopNodes.length;a++){let c=b.stopNodes[a];"string"==typeof c?d.push(new U(c)):c instanceof U&&d.push(c)}let e=function(a,b){if(!Array.isArray(a)||0===a.length)return"1.0";let c=a[0];if("?xml"===aS(c)){let a=c[":@"];if(a){let c=b.attributeNamePrefix+"version";if(a[c])return a[c]}}return"1.0"}(a,b);return function a(b,c,d,e,f,g){let h="",i=!1;if(c.maxNestedTags&&e.getDepth()>c.maxNestedTags)throw Error("Maximum nested tags exceeded");if(!Array.isArray(b))return null!=b?aU(b.toString(),c):"";for(let j=0;j<b.length;j++){let k,l=b[j],m=aS(l);if(void 0===m)continue;let n=m===c.textNodeName||m===c.cdataPropName||m===c.commentPropName||"?"===m[0]?m:aR(m,!1,c,e,g),o=function(a,b){if(!a||b.ignoreAttributes)return null;let c={},d=!1;for(let e in a)Object.prototype.hasOwnProperty.call(a,e)&&(c[e.startsWith(b.attributeNamePrefix)?e.substr(b.attributeNamePrefix.length):e]=aK(a[e]),d=!0);return d?c:null}(l[":@"],c);e.push(n,o);let p=function(a,b){if(!b||0===b.length)return!1;for(let c=0;c<b.length;c++)if(a.matches(b[c]))return!0;return!1}(e,f);if(n===c.textNodeName){let a=l[m];p||(a=aU(a=c.tagValueProcessor(n,a),c)),i&&(h+=d),h+=a,i=!1,e.pop();continue}if(n===c.cdataPropName){i&&(h+=d),h+=`<![CDATA[${aJ(l[m][0][c.textNodeName])}]]>`,i=!1,e.pop();continue}if(n===c.commentPropName){h+=d+`<!--${aI(l[m][0][c.textNodeName])}-->`,i=!0,e.pop();continue}if("?"===n[0]){h+=("?xml"===n?"":d)+`<${n}${aT(l[":@"],c,p,e,g)}?>`,i=!0,e.pop();continue}let q=d;""!==q&&(q+=c.indentBy);let r=d+`<${n}${aT(l[":@"],c,p,e,g)}`;k=p?function a(b,c){if(!Array.isArray(b))return null!=b?b.toString():"";let d="";for(let e=0;e<b.length;e++){let f=b[e],g=aS(f);if(g===c.textNodeName)d+=f[g];else if(g===c.cdataPropName)d+=f[g][0][c.textNodeName];else if(g===c.commentPropName)d+=f[g][0][c.textNodeName];else{if(g&&"?"===g[0])continue;if(g){let b=function(a,b){let c="";if(a&&!b.ignoreAttributes)for(let d in a){if(!Object.prototype.hasOwnProperty.call(a,d))continue;let e=a[d];!0===e&&b.suppressBooleanAttributes?c+=` ${d.substr(b.attributeNamePrefix.length)}`:c+=` ${d.substr(b.attributeNamePrefix.length)}="${aK(e)}"`}return c}(f[":@"],c),e=a(f[g],c);e&&0!==e.length?d+=`<${g}${b}>${e}</${g}>`:d+=`<${g}${b}/>`}}}return d}(l[m],c):a(l[m],c,q,e,f,g),-1!==c.unpairedTags.indexOf(n)?c.suppressUnpairedNode?h+=r+">":h+=r+"/>":k&&0!==k.length||!c.suppressEmptyNode?k&&k.endsWith(">")?h+=r+`>${k}${d}</${n}>`:(h+=r+">",k&&""!==d&&(k.includes("/>")||k.includes("</"))?h+=d+c.indentBy+k+d:h+=k,h+=`</${n}>`):h+=r+"/>",i=!0,e.pop()}return h}(a,b,c,new T,d,e)}(a,this.options);{Array.isArray(a)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&(a={[this.options.arrayNodeName]:a});let b=new T,c=function(a,b){let c=a["?xml"];if(c&&"object"==typeof c){if(b.attributesGroupName&&c[b.attributesGroupName]){let a=c[b.attributesGroupName][b.attributeNamePrefix+"version"];if(a)return a}let a=c[b.attributeNamePrefix+"version"];if(a)return a}return"1.0"}(a,this.options);return this.j2x(a,0,b,c).val}},aW.prototype.j2x=function(a,b,c,d){let e="",f="";if(this.options.maxNestedTags&&c.getDepth()>=this.options.maxNestedTags)throw Error("Maximum nested tags exceeded");let g=this.options.jPath?c.toString():c,h=this.checkStopNode(c);for(let i in a){if(!Object.prototype.hasOwnProperty.call(a,i))continue;let j=i===this.options.textNodeName||i===this.options.cdataPropName||i===this.options.commentPropName||this.options.attributesGroupName&&i===this.options.attributesGroupName||this.isAttribute(i)||"?"===i[0]?i:aX(i,!1,this.options,c,d);if(void 0===a[i])this.isAttribute(i)&&(f+="");else if(null===a[i])this.isAttribute(i)||j===this.options.cdataPropName||j===this.options.commentPropName?f+="":"?"===j[0]?f+=this.indentate(b)+"<"+j+"?"+this.tagEndChar:f+=this.indentate(b)+"<"+j+"/"+this.tagEndChar;else if(a[i]instanceof Date)f+=this.buildTextValNode(a[i],j,"",b,c);else if("object"!=typeof a[i]){let k=this.isAttribute(i);if(k&&!this.ignoreAttributesFn(k,g)){let b=aX(k,!0,this.options,c,d);e+=this.buildAttrPairStr(b,""+a[i],h)}else if(!k)if(i===this.options.textNodeName){let b=this.options.tagValueProcessor(i,""+a[i]);f+=this.replaceEntitiesValue(b)}else{c.push(j);let d=this.checkStopNode(c);if(c.pop(),d){let c=""+a[i];f+=""===c?this.indentate(b)+"<"+j+this.closeTag(j)+this.tagEndChar:this.indentate(b)+"<"+j+">"+c+"</"+j+this.tagEndChar}else f+=this.buildTextValNode(a[i],j,"",b,c)}}else if(Array.isArray(a[i])){let e=a[i].length,g="",h="";for(let k=0;k<e;k++){let e=a[i][k];if(void 0===e);else if(null===e)"?"===j[0]?f+=this.indentate(b)+"<"+j+"?"+this.tagEndChar:f+=this.indentate(b)+"<"+j+"/"+this.tagEndChar;else if("object"==typeof e)if(this.options.oneListGroup){c.push(j);let a=this.j2x(e,b+1,c,d);c.pop(),g+=a.val,this.options.attributesGroupName&&e.hasOwnProperty(this.options.attributesGroupName)&&(h+=a.attrStr)}else g+=this.processTextOrObjNode(e,j,b,c,d);else if(this.options.oneListGroup){let a=this.options.tagValueProcessor(j,e);g+=a=this.replaceEntitiesValue(a)}else{c.push(j);let a=this.checkStopNode(c);if(c.pop(),a){let a=""+e;g+=""===a?this.indentate(b)+"<"+j+this.closeTag(j)+this.tagEndChar:this.indentate(b)+"<"+j+">"+a+"</"+j+this.tagEndChar}else g+=this.buildTextValNode(e,j,"",b,c)}}this.options.oneListGroup&&(g=this.buildObjectNode(g,j,h,b)),f+=g}else if(this.options.attributesGroupName&&i===this.options.attributesGroupName){let b=Object.keys(a[i]),f=b.length;for(let g=0;g<f;g++){let f=aX(b[g],!0,this.options,c,d);e+=this.buildAttrPairStr(f,""+a[i][b[g]],h)}}else f+=this.processTextOrObjNode(a[i],j,b,c,d)}return{attrStr:e,val:f}},aW.prototype.buildAttrPairStr=function(a,b,c){return c||(b=this.options.attributeValueProcessor(a,""+b),b=this.replaceEntitiesValue(b)),this.options.suppressBooleanAttributes&&"true"===b?" "+a:" "+a+'="'+aK(b)+'"'},aW.prototype.extractAttributes=function(a){if(!a||"object"!=typeof a)return null;let b={},c=!1;if(this.options.attributesGroupName&&a[this.options.attributesGroupName]){let d=a[this.options.attributesGroupName];for(let a in d)Object.prototype.hasOwnProperty.call(d,a)&&(b[a.startsWith(this.options.attributeNamePrefix)?a.substring(this.options.attributeNamePrefix.length):a]=aK(d[a]),c=!0)}else for(let d in a){if(!Object.prototype.hasOwnProperty.call(a,d))continue;let e=this.isAttribute(d);e&&(b[e]=aK(a[d]),c=!0)}return c?b:null},aW.prototype.buildRawContent=function(a){if("string"==typeof a)return a;if("object"!=typeof a||null===a)return String(a);if(void 0!==a[this.options.textNodeName])return a[this.options.textNodeName];let b="";for(let c in a){if(!Object.prototype.hasOwnProperty.call(a,c)||this.isAttribute(c)||this.options.attributesGroupName&&c===this.options.attributesGroupName)continue;let d=a[c];if(c===this.options.textNodeName)b+=d;else if(Array.isArray(d)){for(let a of d)if("string"==typeof a||"number"==typeof a)b+=`<${c}>${a}</${c}>`;else if("object"==typeof a&&null!==a){let d=this.buildRawContent(a),e=this.buildAttributesForStopNode(a);b+=""===d?`<${c}${e}/>`:`<${c}${e}>${d}</${c}>`}}else if("object"==typeof d&&null!==d){let a=this.buildRawContent(d),e=this.buildAttributesForStopNode(d);b+=""===a?`<${c}${e}/>`:`<${c}${e}>${a}</${c}>`}else b+=`<${c}>${d}</${c}>`}return b},aW.prototype.buildAttributesForStopNode=function(a){if(!a||"object"!=typeof a)return"";let b="";if(this.options.attributesGroupName&&a[this.options.attributesGroupName]){let c=a[this.options.attributesGroupName];for(let a in c){if(!Object.prototype.hasOwnProperty.call(c,a))continue;let d=a.startsWith(this.options.attributeNamePrefix)?a.substring(this.options.attributeNamePrefix.length):a,e=c[a];!0===e&&this.options.suppressBooleanAttributes?b+=" "+d:b+=" "+d+'="'+e+'"'}}else for(let c in a){if(!Object.prototype.hasOwnProperty.call(a,c))continue;let d=this.isAttribute(c);if(d){let e=a[c];!0===e&&this.options.suppressBooleanAttributes?b+=" "+d:b+=" "+d+'="'+e+'"'}}return b},aW.prototype.buildObjectNode=function(a,b,c,d){if(""===a)return"?"===b[0]?this.indentate(d)+"<"+b+c+"?"+this.tagEndChar:this.indentate(d)+"<"+b+c+this.closeTag(b)+this.tagEndChar;if("?"===b[0])return this.indentate(d)+"<"+b+c+"?"+this.tagEndChar;{let e="</"+b+this.tagEndChar,f="";return"?"===b[0]&&(f="?",e=""),(c||""===c)&&-1===a.indexOf("<")?this.indentate(d)+"<"+b+c+f+">"+a+e:!1!==this.options.commentPropName&&b===this.options.commentPropName&&0===f.length?this.indentate(d)+`<!--${a}-->`+this.newLine:this.indentate(d)+"<"+b+c+f+this.tagEndChar+a+this.indentate(d)+e}},aW.prototype.closeTag=function(a){let b="";return -1!==this.options.unpairedTags.indexOf(a)?this.options.suppressUnpairedNode||(b="/"):b=this.options.suppressEmptyNode?"/":`></${a}`,b},aW.prototype.checkStopNode=function(a){if(!this.stopNodeExpressions||0===this.stopNodeExpressions.length)return!1;for(let b=0;b<this.stopNodeExpressions.length;b++)if(a.matches(this.stopNodeExpressions[b]))return!0;return!1},aW.prototype.buildTextValNode=function(a,b,c,d,e){if(!1!==this.options.cdataPropName&&b===this.options.cdataPropName){let b=aJ(a);return this.indentate(d)+`<![CDATA[${b}]]>`+this.newLine}if(!1!==this.options.commentPropName&&b===this.options.commentPropName){let b=aI(a);return this.indentate(d)+`<!--${b}-->`+this.newLine}if("?"===b[0])return this.indentate(d)+"<"+b+c+"?"+this.tagEndChar;{let e=this.options.tagValueProcessor(b,a);return""===(e=this.replaceEntitiesValue(e))?this.indentate(d)+"<"+b+c+this.closeTag(b)+this.tagEndChar:this.indentate(d)+"<"+b+c+">"+e+"</"+b+this.tagEndChar}},aW.prototype.replaceEntitiesValue=function(a){if(a&&a.length>0&&this.options.processEntities)for(let b=0;b<this.options.entities.length;b++){let c=this.options.entities[b];a=a.replace(c.regex,c.val)}return a};let a_=aW,a0={validate:k};b.exports=d})()},757431,(a,b,c)=>{"use strict";let{XMLParser:d}=a.r(147174);b.exports={validateSvg:function(a){let b,c=new d({ignoreAttributes:!1,attributeNamePrefix:"@_"});try{if(!(b=c.parse(a)))throw Error("Emtpy file")}catch(b){let a=Error("Invalid SVG file");throw a._err=b,a.code="INVALID_XML_FILE",a}if(!b.svg){let a=Error("Invalid SVG file");throw a.code="INVALID_SVG_FILE",a}if("tiny-ps"!==b.svg["@_baseProfile"]){let a=Error("Not a Tiny PS profile");throw a.code="INVALID_BASE_PROFILE",a}if(!b.svg.title){let a=Error("Logo file is missing title");throw a.code="LOGO_MISSING_TITLE",a}if("@_x"in b.svg||"@_y"in b.svg){let a=Error("Logo root includes x/y attributes");throw a.code="LOGO_INVALID_ROOT_ATTRS",a}let e=(a,b,c)=>{if(a){if(Array.isArray(a))for(let d of a)e(d,b,c+"."+b+"[]");else if("object"==typeof a){if(a["@_xlink:href"]&&!/^#/.test(a["@_xlink:href"])){let d=Error("External reference found from file");throw d.details={element:b,link:a["@_xlink:href"],path:c},d.code="LOGO_INCLUDES_REFERENCE",d}for(let b of Object.keys(a)){if(["script","animate","animatemotion","animatetransform","discard","set"].includes(b.toLowerCase())){let a=Error("Unallowed element found from file");throw a.details={element:b,path:c+"."+b},a.code="LOGO_INVALID_ELEMENT",a}if(Array.isArray(a[b]))for(let d of a[b])e(d,b,c+"."+b+"[]");else a[b]&&"object"==typeof a[b]&&e(a[b],b,c+"."+b)}}}};return e(b,"root",""),!0}}},510464,(a,b,c)=>{"use strict";let{Buffer:d}=a.r(951615),e=a.r(666680),f=a.r(495879),{formatAuthHeaderRow:g,parseDkimHeaders:h,parseTagList:i,formatDomain:j,getAlignment:k}=a.r(787767),l=a.r(555466),m=a.r(69127),n=a.r(283967),o=a.r(982803),{parseDmarcRecord:p}=o,q=l.string().uri({scheme:["https"]}),{fetch:r,Agent:s}=a.r(598798),t=new s({connect:{timeout:5e3}}),{vmc:u}=a.r(540348),{validateSvg:v}=a.r(757431),w=/^v[ \t]*=[ \t]*BIMI1[ \t]*(?:;|$)/i,x=new Set(["none","quarantine","reject"]),y=a=>x.has(a.p)&&"none"!==a.p?"none"===a.sp?"too lax DMARC subdomain policy":"quarantine"===a.p&&void 0!==a.pct&&100!==a.pct&&"DMARC policy applied to a percentage of messages":"too lax DMARC policy",z=async(a,b)=>{if(b)return b;if(!a)return!1;let c=await r(a,{headers:{},dispatcher:t});if(!c.ok){let a=Error(`Request failed with status ${c.status}`);throw a.code="HTTP_REQUEST_FAILED",a}let e=await c.arrayBuffer();return d.from(e)};b.exports={bimi:async a=>{let b,c,d,{dmarc:e,headers:k,resolver:l,bimiWithAlignedDkim:m,strict:r}=a,s=k&&k.parsed||[];if(l=l||f.promises.resolve,!e)return!1;let t={status:{header:{}}},u=(a,b)=>(t.status.result=a,b&&(t.status.comment=b),t.info=g("bimi",t.status,{strict:r}),t);if(("number"==typeof e.authorMailboxes?e.authorMailboxes:0)>1||(a=>{let b=a.filter(a=>"from"===a.key);if(b.length>1)return b.length;let c=0;for(let a of b){let b=(a.line||"").toString(),d=b.indexOf(":");for(let a of n((d>=0?b.substr(d+1):b).trim()))c+=Array.isArray(a.group)?a.group.length:1}return c})(s)>1)return u("skipped","multiple From addresses");if(e.status?.result!=="pass")return u("skipped",e.status?.result==="none"?"DMARC not enabled":"message failed DMARC");if("none"===e.policy||e.testMode)return u("skipped","too lax DMARC policy");if(!e.alignment?.dkim?.result&&m)return u("skipped","Aligned DKIM signature required");if(e.alignment?.dkim?.underSized)return u("skipped","undersized DKIM signature");let v=e.status?.header?.from,x=e.domain;if(!v||!x)return u("skipped","could not determine domain");let z=[],A=e.record||(e.rr?p(e.rr):null);A&&z.push(A);let B=e.orgRecord;if(void 0===B){let a=e.policyDomain||e.status?.header?.d||j(v);if(j(x)===j(a)&&A)B=!1;else try{B=await o(x,l)}catch(a){B=null}}if(null===B)return u("temperror","failed to resolve the DMARC policy of the organizational domain");for(let a of(B&&z.push(B),z)){let b=y(a);if(b)return u("skipped",b)}for(let a of s)if(["bimi-selector"].includes(a.key)){if(c)return u("fail","multiple BIMI-Selector headers");if(c=h(a.line),c?.parsed?.v?.value?.toLowerCase()!=="bimi1")return u("fail","missing bimi version in selector header");b=c?.parsed?.s?.value}b=b?.trim()||"default";let C=[`${b}._bimi.${v}`];for(let a of(j(v)!==j(x)&&C.push(`${b}._bimi.${x}`),C)){let b;try{b=await l(a,"TXT")}catch(b){if("ENOTFOUND"===b.code||"ENODATA"===b.code)continue;return u("temperror",`failed to resolve ${a}`)}let c=[].concat(b||[]).map(a=>(Array.isArray(a)?a.join(""):String(a)).trim()).filter(a=>w.test(a));if(1===c.length){d=c[0],t.status.header.selector=a.split("._bimi.").shift(),t.status.header.d=a.split("._bimi.").pop(),t.rr=d;break}if(c.length>1)return u("fail",`multiple BIMI records for ${a}`)}if(!d)return u("none");let D=(a=>{let b={};for(let c of i(a).tags){let a=c.name.trim().toLowerCase();a&&(b[a]=c.value)}return b})(d);if(D.v?.toLowerCase()!=="bimi1")return u("fail","missing bimi version in dns record");let E=D.l,F=D.a;return""!==E||F?E?q.validate(E).error?u("fail","invalid location value in dns record"):F&&q.validate(F).error?u("fail","invalid authority value in dns record"):(t.status.result="pass",t.location=E,F&&(t.authority=F,t.status.policy={authority:"none","authority-uri":F}),D.p&&(t.preference=D.p),t.info=g("bimi",t.status,{strict:r}),t):u("fail","missing location value in dns record"):u("declined")},validateVMC:async(a,b)=>{if(b=b||{},!a)return!1;let c=a?.status?.header?.selector,f=a?.status?.header?.d,g=[];if(g.push(z(a.location,a.locationPath)),g.push(z(a.authority,a.authorityPath)),!g.length)return!1;let[{reason:h,value:i,status:l},{reason:n,value:o,status:p}]=await Promise.allSettled(g),q={};if((i||h)&&(q.location={url:a.location,success:"fulfilled"===l},h&&(q.location.error={message:h.message},h.redirect&&(q.location.error.redirect=h.redirect),h.code&&(q.location.error.code=h.code)),q.location.success&&(q.location.logoFile=i.toString("base64"))),o||n){if(q.authority={url:a.authority,success:"fulfilled"===p},n&&(q.authority.error={message:n.message},n.redirect&&(q.authority.error.redirect=n.redirect),n.code&&(q.authority.error.code=n.code)),o)try{let a=await u(o,b);if(!a.logoFile){let a=Error("VMC does not contain a log file");throw a.code="MISSING_VMC_LOGO",a}if(a?.mediaType?.toLowerCase()!=="image/svg+xml"){let b=Error("Invalid media type for the logo file");throw b.details={mediaType:a.mediaType},b.code="INVALID_MEDIATYPE",b}if(!a.validHash){let b=Error("VMC hash does not match logo file");throw b.details={hashAlgo:a.hashAlgo,hashValue:a.hashValue,logoFile:a.logoFile},b.code="INVALID_LOGO_HASH",b}try{v(d.from(a.logoFile,"base64"))}catch(b){let a=Error("VMC logo SVG validation failed");throw a.details=Object.assign({message:b.message},a.details||{},b.code?{code:b.code}:{}),a.code="SVG_VALIDATION_FAILED",a}if(f){let b=[],d=[];a?.certificate?.subjectAltName?.map(j)?.forEach(a=>{/\b_bimi\./.test(a)?b.push(a):d.push(a)});let e=!1;if(c&&b.includes(j(`${c}._bimi.${f}`))?e=!0:k(f,d,!1)&&(e=!0),e)q.authority.domainVerified=!0;else{let b=Error("Domain can not be verified");throw b.details={subjectAltName:a?.certificate?.subjectAltName,selector:c,d:f},b.code="VMC_DOMAIN_MISMATCH",b}}q.authority.vmc=a}catch(a){q.authority.success=!1,q.authority.error={message:a.message},a.details&&(q.authority.error.details=a.details),a.code&&(q.authority.error.code=a.code)}if(q.location&&q.location.success&&q.authority.success)try{if(q.location.success&&q.authority.vmc.hashAlgo&&q.authority.vmc.validHash){let a=e.createHash(q.authority.vmc.hashAlgo).update(i).digest("hex");q.location.hashAlgo=q.authority.vmc.hashAlgo,q.location.hashValue=a,q.authority.hashMatch=a===q.authority.vmc.hashValue}}catch(a){q.authority.success=!1,q.authority.error={message:a.message},a.details&&(q.authority.error.details=a.details),a.code&&(q.authority.error.code=a.code)}}return q.location?.success&&q.location?.logoFile&&(!q.authority||q.authority.success&&!1!==q.authority.hashMatch)&&(q.headers={indicator:m.foldLines(`BIMI-Indicator: ${q.location.logoFile}`,160),location:`BIMI-Location: v=BIMI1; l=${a.location}`},a.preference&&(q.headers.preference=`BIMI-Logo-Preference: ${a.preference}`)),q}}},456480,(a,b,c)=>{"use strict";let{DANGEROUS_KEYS:d}=a.r(376476),{isIP:e}=a.r(761095),f=/tls|cipher=|Google Transport Security/i,g=/\[(?:IPv6:)?([^\]\s]+)\](?::\d+)?/gi,h=/(?:^|[\s(;,])(?:helo|ehlo)=\s*$/i;b.exports={parseReceived:a=>{let b,c=(a||"").toString(),e=c.indexOf(":");if(e<0)return!1;let g=c.substr(e+1).trim(),h="none",i=[],j=!1,k=!1,l=!1,m="",n=0,o=()=>{b="";let a={key:"",value:"",comment:""};return i.push(a),a},p=o(),q=a=>{if("none"===h)switch(h="val",b){case"":b="key";break;case"key":b="value";break;case"value":case"comment":p=o(),b="key"}else"comment"===b&&"("===a&&n++;p[b]+=a};for(let a=0;a<g.length;a++){let c=g.charAt(a);if("timestamp"===h){m+=c;continue}if(l){p[b]+=c,l=!1;continue}if(k){if("\\"===c&&a<g.length-1){p[b]+=c+g.charAt(++a);continue}p[b]+=c,'"'===c&&(k=!1);continue}if(j){if(c===j){if(n&&--n){p[b]+=c;continue}j=!1,h="none",p=o();continue}"("===c&&n++,p[b]+=c;continue}switch(c){case" ":case" ":case"\n":case"\r":h="none";break;case'"':q(c),k=c;break;case"(":j=")",n++,b="comment";break;case";":h="timestamp";break;case"\\":l=!0;break;default:q(c)}}m=m.split(";").shift().trim();let r={};for(let a=i.length-1;a>1;a--){let b=i[a],c=i[a-1];!["from","by","with","id","for","envelope-from",""].includes(b.key.toLowerCase())&&c.key&&(c.value=[c.value||[]].concat(b.key||[]).concat(b.value||[]).join(" "),c.comment=[c.comment||[]].concat(b.comment||[]).join(" "),i.splice(a,1))}for(let a=1;a<i.length;a++){let b=i[a],c=i[a-1];!b.key&&!b.value&&b.comment&&"from"===(c.key||"").toLowerCase()&&!f.test(b.comment)&&(c.comment=[c.comment||[]].concat(b.comment).join(" "),i.splice(a,1),a--)}for(let a of i)if(a.comment&&(a.comment=a.comment.replace(/\s+/g," ").trim()),a.key){let b=a.key.toLowerCase();if("from"!==b&&!r.tls&&f.test(a.comment)&&(r.tls={value:"",...a.comment&&{comment:a.comment}},a.comment=""),d.has(b))continue;r[b]={value:a.value,...a.comment&&{comment:a.comment}}}else!r.tls&&f.test(a.comment)&&(r.tls={value:a.value,...a.comment&&{comment:a.comment}});return!r.tls&&/SMTPS/.test(r?.with?.value)&&(r.tls={value:"",comment:r?.with?.value}),m&&(r.timestamp=m),r.full=(a||"").toString().replace(/\s+/g," ").trim(),r},getClientAddress:a=>{if(!a||"object"!=typeof a)return!1;let b="string"==typeof a.comment?a.comment:"",c="string"==typeof a.value?a.value.trim():"",d=!1;for(let a of b.matchAll(g))!h.test(b.substring(0,a.index))&&e(a[1])&&(d=a[1]);if(d)return d;let f=c.match(/^\[(?:IPv6:)?([^\]\s]+)\](?::\d+)?$/i);return!!(f&&b&&e(f[1]))&&f[1]}}},275711,(a,b,c)=>{"use strict";let{dkimSign:d,DkimSignStream:e}=a.r(833579),{dkimVerify:f}=a.r(90738),{spf:g}=a.r(857893),{dmarc:h,evaluateDmarc:i}=a.r(395067),{arc:j,createSeal:k,sealMessage:l,getARChain:m,verifyASChain:n}=a.r(459017),{bimi:o,validateVMC:p}=a.r(510464),{validateSvg:q}=a.r(757431),{parseReceived:r,getClientAddress:s}=a.r(456480),{formatDomain:t,getAlignment:u,formatAuthservId:v}=a.r(787767),w=a.r(69127),x=a.r(660526),{isIP:y}=a.r(504446);b.exports={authenticate:async(a,b)=>{let c,d,e,h;(b=Object.assign({},b)).mta=b.mta||x.hostname(),b.strict=!!b.strict;let l=v(b.mta,b.strict),m=await f(a,{resolver:b.resolver,sender:b.sender,seal:b.seal,minBitLength:b.minBitLength,rejectRsaSha1:b.rejectRsaSha1,strict:b.strict}),n=m.headers?.parsed.filter(a=>"received"===a.key).map(a=>r(a.line));if(b.trustReceived){let a=n?.find(a=>a.from?.value);if(a){let c=a.from.value,d=s(a.from);d&&!b.ip&&(b.ip=d),!c||b.helo||b.ip||(b.helo=c),a["envelope-from"]?.value&&!b.sender&&(b.sender=a["envelope-from"].value.replace(/[<>]/g,"").trim())}m.envelopeFrom&&!b.sender&&(b.sender=m.envelopeFrom)}!b.helo&&b.ip&&(b.helo=b.ip),b.helo&&y(b.helo)&&(b.helo=`[${b.helo}]`);let p=await g(b);b.disableArc||(c=await j(m.arc,{resolver:b.resolver,minBitLength:b.minBitLength,strict:b.strict,ip:b.ip}));let q=[],z=[],A=!1;if(m?.results?.forEach(a=>{z.push(`${w.foldLines(a.info,160)}`)}),p&&(z.push(w.foldLines(p.info,160)),A=p.header),c?.info&&z.push(`${w.foldLines(c.info,160)}`),!b.disableDmarc&&m?.headerFrom){let a;if({response:d,dkimAligned:a,reason:e}=await i({headerFrom:m.headerFrom,fromFields:m.fromFields,spfDomains:[].concat(p&&"pass"===p.status.result&&p.domain||[]),dkimDomains:(m.results||[]).filter(a=>"pass"===a.status.result).map(a=>({id:a.id,domain:a.signingDomain,aligned:a.status.aligned,underSized:a.status.underSized})),arcResult:c,resolver:b.resolver,strict:b.strict}),d?.info&&z.push(`${w.foldLines(d.info,160)}`),a&&d){let b=d.status.header.from;for(let c of m.results||[])"pass"===c.status.result?c.status.aligned=!!a.has(t(c.signingDomain))&&c.signingDomain:d.alignment.dkim.strict&&(c.status.aligned=c.status.aligned&&u(b,[c.signingDomain],!0)?.domain||!1)}}b.disableBimi||(h=await o({dmarc:d,headers:m.headers,bimiWithAlignedDkim:b.bimiWithAlignedDkim,resolver:b.resolver,strict:b.strict})),h?.info&&z.push(`${w.foldLines(h.info,160)}`);let B=`${l};\r
|
|
417
|
+
${a.join("\n")}`:`${b} :`}}I.Constructed=R,R.NAME="CONSTRUCTED";class S extends F{fromBER(a,b,c){return b}toBER(a){return y}}S.override="EndOfContentValueBlock";class T extends J{constructor(a={}){super(a,S),this.idBlock.tagClass=1,this.idBlock.tagNumber=0}}I.EndOfContent=T,T.NAME=A;class U extends J{constructor(a={}){super(a,F),this.idBlock.tagClass=1,this.idBlock.tagNumber=5}fromBER(a,b,c){return(this.lenBlock.length>0&&this.warnings.push("Non-zero length of value block for Null type"),this.idBlock.error.length||(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length||(this.blockLength+=this.lenBlock.blockLength),this.blockLength+=c,b+c>a.byteLength)?(this.error="End of input reached before message was fully decoded (inconsistent offset and length values)",-1):b+c}toBER(a,b){let c=new ArrayBuffer(2);if(!a){let a=new Uint8Array(c);a[0]=5,a[1]=0}return b&&b.write(c),c}onAsciiEncoding(){return`${this.constructor.NAME}`}}I.Null=U,U.NAME="NULL";class V extends D(F){get value(){for(let a of this.valueHexView)if(a>0)return!0;return!1}set value(a){this.valueHexView[0]=255*!!a}constructor({value:a,...b}={}){super(b),b.valueHex?this.valueHexView=d.toUint8Array(b.valueHex):this.valueHexView=new Uint8Array(1),a&&(this.value=a)}fromBER(a,b,c){let e=d.toUint8Array(a);return s(this,e,b,c)?(this.valueHexView=e.subarray(b,b+c),c>1&&this.warnings.push("Boolean value encoded in more then 1 octet"),this.isHexOnly=!0,o.call(this),this.blockLength=c,b+c):-1}toBER(){return this.valueHexView.slice()}toJSON(){return{...super.toJSON(),value:this.value}}}V.NAME="BooleanValueBlock";class W extends J{getValue(){return this.valueBlock.value}setValue(a){this.valueBlock.value=a}constructor(a={}){super(a,V),this.idBlock.tagClass=1,this.idBlock.tagNumber=1}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.getValue}`}}I.Boolean=W,W.NAME="BOOLEAN";class X extends D(Q){constructor({isConstructed:a=!1,...b}={}){super(b),this.isConstructed=a}fromBER(a,b,c,d){let e=0;if(this.isConstructed){if(this.isHexOnly=!1,-1===(e=Q.prototype.fromBER.call(this,a,b,c,d)))return e;for(let a=0;a<this.value.length;a++){let b=this.value[a].constructor.NAME;if(b===A)if(!this.isIndefiniteForm)return this.error="EndOfContent is unexpected, OCTET STRING may consists of OCTET STRINGs only",-1;else break;if(b!==B)return this.error="OCTET STRING may consists of OCTET STRINGs only",-1}}else this.isHexOnly=!0,e=super.fromBER(a,b,c),this.blockLength=c;return e}toBER(a,b){return this.isConstructed?Q.prototype.toBER.call(this,a,b):a?new ArrayBuffer(this.valueHexView.byteLength):this.valueHexView.slice().buffer}toJSON(){return{...super.toJSON(),isConstructed:this.isConstructed}}}X.NAME="OctetStringValueBlock";class Y extends J{constructor({idBlock:a={},lenBlock:b={},...c}={}){var d;null!=c.isConstructed||(c.isConstructed=!!(null==(d=c.value)?void 0:d.length)),super({idBlock:{isConstructed:c.isConstructed,...a},lenBlock:{...b,isIndefiniteForm:!!c.isIndefiniteForm},...c},X),this.idBlock.tagClass=1,this.idBlock.tagNumber=4}fromBER(a,b,c,d){if(this.valueBlock.isConstructed=this.idBlock.isConstructed,this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm,0===c)return 0===this.idBlock.error.length&&(this.blockLength+=this.idBlock.blockLength),0===this.lenBlock.error.length&&(this.blockLength+=this.lenBlock.blockLength),b;if(!this.valueBlock.isConstructed){let e=(a instanceof ArrayBuffer?new Uint8Array(a):a).subarray(b,b+c);try{if(e.byteLength){let a=null!=d?d:N(),b=O(e,0,e.byteLength,a);-1!==b.offset&&b.offset===c&&(this.valueBlock.value=[b.result])}}catch{}}return super.fromBER(a,b,c,d)}onAsciiEncoding(){if(this.valueBlock.isConstructed||this.valueBlock.value&&this.valueBlock.value.length)return R.prototype.onAsciiEncoding.call(this);let a=this.constructor.NAME,b=k.ToHex(this.valueBlock.valueHexView);return`${a} : ${b}`}getValue(){if(!this.idBlock.isConstructed)return this.valueBlock.valueHexView.slice().buffer;let a=[];for(let c of this.valueBlock.value)c instanceof b&&a.push(c.valueBlock.valueHexView);return d.concat(a)}}I.OctetString=b=Y,Y.NAME=B;class Z extends D(Q){constructor({unusedBits:a=0,isConstructed:b=!1,...c}={}){super(c),this.unusedBits=a,this.isConstructed=b,this.blockLength=this.valueHexView.byteLength}fromBER(a,b,c,e){if(!c)return b;let f=-1;if(this.isConstructed){if(-1===(f=Q.prototype.fromBER.call(this,a,b,c,e)))return f;for(let a of this.value){let b=a.constructor.NAME;if(b===A)if(!this.isIndefiniteForm)return this.error="EndOfContent is unexpected, BIT STRING may consists of BIT STRINGs only",-1;else break;if(b!==C)return this.error="BIT STRING may consists of BIT STRINGs only",-1;let c=a.valueBlock;if(this.unusedBits>0&&c.unusedBits>0)return this.error='Using of "unused bits" inside constructive BIT STRING allowed for least one only',-1;this.unusedBits=c.unusedBits}return f}let g=d.toUint8Array(a);if(!s(this,g,b,c))return -1;let h=g.subarray(b,b+c);if(this.unusedBits=h[0],this.unusedBits>7)return this.error="Unused bits for BitString must be in range 0-7",-1;if(!this.unusedBits){let a=h.subarray(1);try{if(a.byteLength){let b=null!=e?e:N(),d=O(a,0,a.byteLength,b);-1!==d.offset&&d.offset===c-1&&(this.value=[d.result])}}catch{}}return this.valueHexView=h.subarray(1),this.blockLength=h.length,b+c}toBER(a,b){if(this.isConstructed)return Q.prototype.toBER.call(this,a,b);if(a)return new ArrayBuffer(this.valueHexView.byteLength+1);if(!this.valueHexView.byteLength){let a=new Uint8Array(1);return a[0]=0,a.buffer}let c=new Uint8Array(this.valueHexView.length+1);return c[0]=this.unusedBits,c.set(this.valueHexView,1),c.buffer}toJSON(){return{...super.toJSON(),unusedBits:this.unusedBits,isConstructed:this.isConstructed}}}Z.NAME="BitStringValueBlock";class $ extends J{constructor({idBlock:a={},lenBlock:b={},...c}={}){var d;null!=c.isConstructed||(c.isConstructed=!!(null==(d=c.value)?void 0:d.length)),super({idBlock:{isConstructed:c.isConstructed,...a},lenBlock:{...b,isIndefiniteForm:!!c.isIndefiniteForm},...c},Z),this.idBlock.tagClass=1,this.idBlock.tagNumber=3}fromBER(a,b,c,d){return this.valueBlock.isConstructed=this.idBlock.isConstructed,this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm,super.fromBER(a,b,c,d)}onAsciiEncoding(){if(this.valueBlock.isConstructed||this.valueBlock.value&&this.valueBlock.value.length)return R.prototype.onAsciiEncoding.call(this);{let a=[];for(let b of this.valueBlock.valueHexView)a.push(b.toString(2).padStart(8,"0"));let b=a.join(""),c=this.constructor.NAME,d=b.substring(0,b.length-this.valueBlock.unusedBits);return`${c} : ${d}`}}}function _(a){if(a>=u.length)for(let b=u.length;b<=a;b++){let a=new Uint8Array([0]),c=u[b-1].slice(0);for(let b=c.length-1;b>=0;b--){let d=new Uint8Array([(c[b]<<1)+a[0]]);a[0]=d[0]/10,c[b]=d[0]%10}a[0]>0&&(c=n(a,c)),u.push(c)}return u[a]}I.BitString=$,$.NAME=C;class aa extends D(F){setValueHex(){this.valueHexView.length>=4?(this.warnings.push("Too big Integer for decoding, hex only"),this.isHexOnly=!0,this._valueDec=0):(this.isHexOnly=!1,this.valueHexView.length>0&&(this._valueDec=o.call(this)))}constructor({value:a,...b}={}){super(b),this._valueDec=0,b.valueHex&&this.setValueHex(),void 0!==a&&(this.valueDec=a)}set valueDec(a){this._valueDec=a,this.isHexOnly=!1,this.valueHexView=new Uint8Array(function(a){let b=a<0?-1*a:a,c=128;for(let d=1;d<8;d++){if(b<=c){if(a<0){let a=m(c-b,8,d),e=new Uint8Array(a);return e[0]|=128,a}let e=m(b,8,d),f=new Uint8Array(e);if(128&f[0]){let a=e.slice(0),b=new Uint8Array(a);f=new Uint8Array(e=new ArrayBuffer(e.byteLength+1));for(let c=0;c<a.byteLength;c++)f[c+1]=b[c];f[0]=0}return e}c*=256}return new ArrayBuffer(0)}(a))}get valueDec(){return this._valueDec}fromDER(a,b,c,d=0){let e=this.fromBER(a,b,c);if(-1===e)return e;let f=this.valueHexView;return 0===f[0]&&(128&f[1])!=0?this.valueHexView=f.subarray(1):0!==d&&f.length<d&&(d-f.length>1&&(d=f.length+1),this.valueHexView=f.subarray(d-f.length)),e}toDER(a=!1){let b=this.valueHexView;switch(!0){case(128&b[0])!=0:{let a=new Uint8Array(this.valueHexView.length+1);a[0]=0,a.set(b,1),this.valueHexView=a}break;case 0===b[0]&&(128&b[1])==0:this.valueHexView=this.valueHexView.subarray(1)}return this.toBER(a)}fromBER(a,b,c){let d=super.fromBER(a,b,c);return -1===d||this.setValueHex(),d}toBER(a){return a?new ArrayBuffer(this.valueHexView.length):this.valueHexView.slice().buffer}toJSON(){return{...super.toJSON(),valueDec:this.valueDec}}toString(){let a,b=8*this.valueHexView.length-1,c=new Uint8Array(8*this.valueHexView.length/3),d=0,e=this.valueHexView,f="",g=!1;for(let g=e.byteLength-1;g>=0;g--){a=e[g];for(let e=0;e<8;e++)(1&a)==1&&(d===b?(c=function(a,b){let c,d=0,e=new Uint8Array(a),f=new Uint8Array(b),g=e.slice(0),h=g.length-1,i=f.slice(0),j=i.length-1,k=0;for(let a=j;a>=0;a--,k++)!0==(c=g[h-k]-i[j-k]-d)<0?(d=1,g[h-k]=c+10):(d=0,g[h-k]=c);if(d>0)for(let a=h-j+1;a>=0;a--,k++)if((c=g[h-k]-d)<0)d=1,g[h-k]=c+10;else{d=0,g[h-k]=c;break}return g.slice()}(_(d),c),f="-"):c=function(a,b){let c=new Uint8Array([0]),d=new Uint8Array(a),e=new Uint8Array(b),f=d.slice(0),g=f.length-1,h=e.slice(0),i=h.length-1,j=0,k=i<g?g:i,l=0;for(let a=k;a>=0;a--,l++)j=!0==l<h.length?f[g-l]+h[i-l]+c[0]:f[g-l]+c[0],c[0]=j/10,!0==l>=f.length?f=n(new Uint8Array([j%10]),f):f[g-l]=j%10;return c[0]>0&&(f=n(c,f)),f}(c,_(d))),d++,a>>=1}for(let a=0;a<c.length;a++)c[a]&&(g=!0),g&&(f+=v.charAt(c[a]));return!1===g&&(f+=v.charAt(0)),f}}aa.NAME="IntegerValueBlock",Object.defineProperty(aa.prototype,"valueHex",{set:function(a){this.valueHexView=new Uint8Array(a),this.setValueHex()},get:function(){return this.valueHexView.slice().buffer}});class ab extends J{constructor(a={}){super(a,aa),this.idBlock.tagClass=1,this.idBlock.tagNumber=2}toBigInt(){return q(),BigInt(this.valueBlock.toString())}static fromBigInt(a){q();let b=BigInt(a),e=new t,f=b.toString(16).replace(/^-/,""),g=new Uint8Array(k.FromHex(f));if(b<0){let a=new Uint8Array(g.length+(128&g[0]?1:0));a[0]|=128;let c=BigInt(`0x${k.ToHex(a)}`)+b,f=d.toUint8Array(k.FromHex(c.toString(16)));f[0]|=128,e.write(f)}else 128&g[0]&&e.write(new Uint8Array([0])),e.write(g);return new c({valueHex:e.final()})}convertToDER(){let a=new c({valueHex:this.valueBlock.valueHexView});return a.valueBlock.toDER(),a}convertFromDER(){return new c({valueHex:0===this.valueBlock.valueHexView[0]?this.valueBlock.valueHexView.subarray(1):this.valueBlock.valueHexView})}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()}`}}I.Integer=c=ab,ab.NAME="INTEGER";class ac extends ab{constructor(a={}){super(a),this.idBlock.tagClass=1,this.idBlock.tagNumber=10}}I.Enumerated=ac,ac.NAME="ENUMERATED";class ad extends D(F){constructor({valueDec:a=-1,isFirstSid:b=!1,...c}={}){super(c),this.valueDec=a,this.isFirstSid=b}fromBER(a,b,c){if(!c)return b;let e=d.toUint8Array(a);if(!s(this,e,b,c))return -1;let f=e.subarray(b,b+c);this.valueHexView=new Uint8Array(c);for(let a=0;a<c&&(this.valueHexView[a]=127&f[a],this.blockLength++,(128&f[a])!=0);a++);let g=new Uint8Array(this.blockLength);for(let a=0;a<this.blockLength;a++)g[a]=this.valueHexView[a];return(this.valueHexView=g,(128&f[this.blockLength-1])!=0)?(this.error="End of input reached before message was fully decoded",-1):(0===this.valueHexView[0]&&this.warnings.push("Needlessly long format of SID encoding"),this.blockLength<=8?this.valueDec=l(this.valueHexView,7):(this.isHexOnly=!0,this.warnings.push("Too big SID for decoding, hex only")),b+this.blockLength)}set valueBigInt(a){q();let b=BigInt(a).toString(2);for(;b.length%7;)b="0"+b;let c=new Uint8Array(b.length/7);for(let a=0;a<c.length;a++)c[a]=parseInt(b.slice(7*a,7*a+7),2)+128*(a+1<c.length);this.fromBER(c.buffer,0,c.length)}toBER(a){if(this.isHexOnly){if(a)return new ArrayBuffer(this.valueHexView.byteLength);let b=this.valueHexView,c=new Uint8Array(this.blockLength);for(let a=0;a<this.blockLength-1;a++)c[a]=128|b[a];return c[this.blockLength-1]=b[this.blockLength-1],c.buffer}let b=m(this.valueDec,7);if(0===b.byteLength)return this.error="Error during encoding SID value",y;let c=new Uint8Array(b.byteLength);if(!a){let a=new Uint8Array(b),d=b.byteLength-1;for(let b=0;b<d;b++)c[b]=128|a[b];c[d]=a[d]}return c}toString(){let a="";if(this.isHexOnly)a=k.ToHex(this.valueHexView);else if(this.isFirstSid){let b=this.valueDec;this.valueDec<=39?a="0.":this.valueDec<=79?(a="1.",b-=40):(a="2.",b-=80),a+=b.toString()}else a=this.valueDec.toString();return a}toJSON(){return{...super.toJSON(),valueDec:this.valueDec,isFirstSid:this.isFirstSid}}}ad.NAME="sidBlock";class ae extends F{constructor({value:a="",...b}={}){super(b),this.value=[],a&&this.fromString(a)}fromBER(a,b,c){let d=b;for(;c>0;){let b=new ad;if(-1===(d=b.fromBER(a,d,c))){this.blockLength=0,this.error=b.error;break}0===this.value.length&&(b.isFirstSid=!0),this.blockLength+=b.blockLength,c-=b.blockLength,this.value.push(b)}return d}toBER(a){let b=[];for(let c=0;c<this.value.length;c++){let d=this.value[c].toBER(a);if(0===d.byteLength)return this.error=this.value[c].error,y;b.push(d)}return r(b)}fromString(a){this.value=[];let b=0,c=0,d="",e=!1;do if(d=-1===(c=a.indexOf(".",b))?a.substring(b):a.substring(b,c),b=c+1,e){let a=this.value[0],b=0;switch(a.valueDec){case 0:break;case 1:b=40;break;case 2:b=80;break;default:this.value=[];return}let c=parseInt(d,10);if(isNaN(c))return;a.valueDec=c+b,e=!1}else{let a=new ad;if(d>Number.MAX_SAFE_INTEGER)q(),a.valueBigInt=BigInt(d);else if(a.valueDec=parseInt(d,10),isNaN(a.valueDec))return;this.value.length||(a.isFirstSid=!0,e=!0),this.value.push(a)}while(-1!==c)}toString(){let a="",b=!1;for(let c=0;c<this.value.length;c++){b=this.value[c].isHexOnly;let d=this.value[c].toString();0!==c&&(a=`${a}.`),b?(d=`{${d}}`,this.value[c].isFirstSid?a=`2.{${d} - 80}`:a+=d):a+=d}return a}toJSON(){let a={...super.toJSON(),value:this.toString(),sidArray:[]};for(let b=0;b<this.value.length;b++)a.sidArray.push(this.value[b].toJSON());return a}}ae.NAME="ObjectIdentifierValueBlock";class af extends J{getValue(){return this.valueBlock.toString()}setValue(a){this.valueBlock.fromString(a)}constructor(a={}){super(a,ae),this.idBlock.tagClass=1,this.idBlock.tagNumber=6}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()||"empty"}`}toJSON(){return{...super.toJSON(),value:this.getValue()}}}I.ObjectIdentifier=af,af.NAME="OBJECT IDENTIFIER";class ag extends D(E){constructor({valueDec:a=0,...b}={}){super(b),this.valueDec=a}fromBER(a,b,c){if(0===c)return b;let e=d.toUint8Array(a);if(!s(this,e,b,c))return -1;let f=e.subarray(b,b+c);this.valueHexView=new Uint8Array(c);for(let a=0;a<c&&(this.valueHexView[a]=127&f[a],this.blockLength++,(128&f[a])!=0);a++);let g=new Uint8Array(this.blockLength);for(let a=0;a<this.blockLength;a++)g[a]=this.valueHexView[a];return(this.valueHexView=g,(128&f[this.blockLength-1])!=0)?(this.error="End of input reached before message was fully decoded",-1):(0===this.valueHexView[0]&&this.warnings.push("Needlessly long format of SID encoding"),this.blockLength<=8?this.valueDec=l(this.valueHexView,7):(this.isHexOnly=!0,this.warnings.push("Too big SID for decoding, hex only")),b+this.blockLength)}toBER(a){if(this.isHexOnly){if(a)return new ArrayBuffer(this.valueHexView.byteLength);let b=this.valueHexView,c=new Uint8Array(this.blockLength);for(let a=0;a<this.blockLength-1;a++)c[a]=128|b[a];return c[this.blockLength-1]=b[this.blockLength-1],c.buffer}let b=m(this.valueDec,7);if(0===b.byteLength)return this.error="Error during encoding SID value",y;let c=new Uint8Array(b.byteLength);if(!a){let a=new Uint8Array(b),d=b.byteLength-1;for(let b=0;b<d;b++)c[b]=128|a[b];c[d]=a[d]}return c.buffer}toString(){return this.isHexOnly?k.ToHex(this.valueHexView):this.valueDec.toString()}toJSON(){return{...super.toJSON(),valueDec:this.valueDec}}}ag.NAME="relativeSidBlock";class ah extends F{constructor({value:a="",...b}={}){super(b),this.value=[],a&&this.fromString(a)}fromBER(a,b,c){let d=b;for(;c>0;){let b=new ag;if(-1===(d=b.fromBER(a,d,c))){this.blockLength=0,this.error=b.error;break}this.blockLength+=b.blockLength,c-=b.blockLength,this.value.push(b)}return d}toBER(a,b){let c=[];for(let b=0;b<this.value.length;b++){let d=this.value[b].toBER(a);if(0===d.byteLength)return this.error=this.value[b].error,y;c.push(d)}return r(c)}fromString(a){this.value=[];let b=0,c=0,d="";do{d=-1===(c=a.indexOf(".",b))?a.substring(b):a.substring(b,c),b=c+1;let e=new ag;if(e.valueDec=parseInt(d,10),isNaN(e.valueDec))break;this.value.push(e)}while(-1!==c)return!0}toString(){let a="",b=!1;for(let c=0;c<this.value.length;c++){b=this.value[c].isHexOnly;let d=this.value[c].toString();0!==c&&(a=`${a}.`),b?a+=d=`{${d}}`:a+=d}return a}toJSON(){let a={...super.toJSON(),value:this.toString(),sidArray:[]};for(let b=0;b<this.value.length;b++)a.sidArray.push(this.value[b].toJSON());return a}}ah.NAME="RelativeObjectIdentifierValueBlock";class ai extends J{getValue(){return this.valueBlock.toString()}setValue(a){this.valueBlock.fromString(a)}constructor(a={}){super(a,ah),this.idBlock.tagClass=1,this.idBlock.tagNumber=13}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()||"empty"}`}toJSON(){return{...super.toJSON(),value:this.getValue()}}}I.RelativeObjectIdentifier=ai,ai.NAME="RelativeObjectIdentifier";class aj extends R{constructor(a={}){super(a),this.idBlock.tagClass=1,this.idBlock.tagNumber=16}}I.Sequence=aj,aj.NAME="SEQUENCE";class ak extends R{constructor(a={}){super(a),this.idBlock.tagClass=1,this.idBlock.tagNumber=17}}I.Set=ak,ak.NAME="SET";class al extends D(F){constructor({...a}={}){super(a),this.isHexOnly=!0,this.value=""}toJSON(){return{...super.toJSON(),value:this.value}}}al.NAME="StringValueBlock";class am extends al{}am.NAME="SimpleStringValueBlock";class an extends K{constructor({...a}={}){super(a,am)}fromBuffer(a){this.valueBlock.value=String.fromCharCode.apply(null,d.toUint8Array(a))}fromString(a){let b=a.length,c=this.valueBlock.valueHexView=new Uint8Array(b);for(let d=0;d<b;d++)c[d]=a.charCodeAt(d);this.valueBlock.value=a}}an.NAME="SIMPLE STRING";class ao extends an{fromBuffer(a){this.valueBlock.valueHexView=d.toUint8Array(a);try{this.valueBlock.value=k.ToUtf8String(a)}catch(b){this.warnings.push(`Error during "decodeURIComponent": ${b}, using raw string`),this.valueBlock.value=k.ToBinary(a)}}fromString(a){this.valueBlock.valueHexView=new Uint8Array(k.FromUtf8String(a)),this.valueBlock.value=a}}ao.NAME="Utf8StringValueBlock";class ap extends ao{constructor(a={}){super(a),this.idBlock.tagClass=1,this.idBlock.tagNumber=12}}I.Utf8String=ap,ap.NAME="UTF8String";class aq extends an{fromBuffer(a){this.valueBlock.value=k.ToUtf16String(a),this.valueBlock.valueHexView=d.toUint8Array(a)}fromString(a){this.valueBlock.value=a,this.valueBlock.valueHexView=new Uint8Array(k.FromUtf16String(a))}}aq.NAME="BmpStringValueBlock";class ar extends aq{constructor({...a}={}){super(a),this.idBlock.tagClass=1,this.idBlock.tagNumber=30}}I.BmpString=ar,ar.NAME="BMPString";class as extends an{fromBuffer(a){let b=ArrayBuffer.isView(a)?a.slice().buffer:a.slice(0),c=new Uint8Array(b);for(let a=0;a<c.length;a+=4)c[a]=c[a+3],c[a+1]=c[a+2],c[a+2]=0,c[a+3]=0;this.valueBlock.value=String.fromCharCode.apply(null,new Uint32Array(b))}fromString(a){let b=a.length,c=this.valueBlock.valueHexView=new Uint8Array(4*b);for(let d=0;d<b;d++){let b=new Uint8Array(m(a.charCodeAt(d),8));if(b.length>4)continue;let e=4-b.length;for(let a=b.length-1;a>=0;a--)c[4*d+a+e]=b[a]}this.valueBlock.value=a}}as.NAME="UniversalStringValueBlock";class at extends as{constructor({...a}={}){super(a),this.idBlock.tagClass=1,this.idBlock.tagNumber=28}}I.UniversalString=at,at.NAME="UniversalString";class au extends an{constructor(a={}){super(a),this.idBlock.tagClass=1,this.idBlock.tagNumber=18}}I.NumericString=au,au.NAME="NumericString";class av extends an{constructor(a={}){super(a),this.idBlock.tagClass=1,this.idBlock.tagNumber=19}}I.PrintableString=av,av.NAME="PrintableString";class aw extends an{constructor(a={}){super(a),this.idBlock.tagClass=1,this.idBlock.tagNumber=20}}I.TeletexString=aw,aw.NAME="TeletexString";class ax extends an{constructor(a={}){super(a),this.idBlock.tagClass=1,this.idBlock.tagNumber=21}}I.VideotexString=ax,ax.NAME="VideotexString";class ay extends an{constructor(a={}){super(a),this.idBlock.tagClass=1,this.idBlock.tagNumber=22}}I.IA5String=ay,ay.NAME="IA5String";class az extends an{constructor(a={}){super(a),this.idBlock.tagClass=1,this.idBlock.tagNumber=25}}I.GraphicString=az,az.NAME="GraphicString";class aA extends an{constructor(a={}){super(a),this.idBlock.tagClass=1,this.idBlock.tagNumber=26}}I.VisibleString=aA,aA.NAME="VisibleString";class aB extends an{constructor(a={}){super(a),this.idBlock.tagClass=1,this.idBlock.tagNumber=27}}I.GeneralString=aB,aB.NAME="GeneralString";class aC extends an{constructor(a={}){super(a),this.idBlock.tagClass=1,this.idBlock.tagNumber=29}}I.CharacterString=aC,aC.NAME="CharacterString";class aD extends aA{constructor({value:a,valueDate:b,...c}={}){if(super(c),this.year=0,this.month=0,this.day=0,this.hour=0,this.minute=0,this.second=0,a){this.fromString(a),this.valueBlock.valueHexView=new Uint8Array(a.length);for(let b=0;b<a.length;b++)this.valueBlock.valueHexView[b]=a.charCodeAt(b)}b&&(this.fromDate(b),this.valueBlock.valueHexView=new Uint8Array(this.toBuffer())),this.idBlock.tagClass=1,this.idBlock.tagNumber=23}fromBuffer(a){this.fromString(String.fromCharCode.apply(null,d.toUint8Array(a)))}toBuffer(){let a=this.toString(),b=new ArrayBuffer(a.length),c=new Uint8Array(b);for(let b=0;b<a.length;b++)c[b]=a.charCodeAt(b);return b}fromDate(a){this.year=a.getUTCFullYear(),this.month=a.getUTCMonth()+1,this.day=a.getUTCDate(),this.hour=a.getUTCHours(),this.minute=a.getUTCMinutes(),this.second=a.getUTCSeconds()}toDate(){return new Date(Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second))}fromString(a){let b=/(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})Z/ig.exec(a);if(null===b){this.error="Wrong input string for conversion";return}let c=parseInt(b[1],10);c>=50?this.year=1900+c:this.year=2e3+c,this.month=parseInt(b[2],10),this.day=parseInt(b[3],10),this.hour=parseInt(b[4],10),this.minute=parseInt(b[5],10),this.second=parseInt(b[6],10)}toString(a="iso"){if("iso"===a){let a=Array(7);return a[0]=p(this.year<2e3?this.year-1900:this.year-2e3,2),a[1]=p(this.month,2),a[2]=p(this.day,2),a[3]=p(this.hour,2),a[4]=p(this.minute,2),a[5]=p(this.second,2),a[6]="Z",a.join("")}return super.toString(a)}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.toDate().toISOString()}`}toJSON(){return{...super.toJSON(),year:this.year,month:this.month,day:this.day,hour:this.hour,minute:this.minute,second:this.second}}}I.UTCTime=aD,aD.NAME="UTCTime";class aE extends aD{constructor(a={}){super(a),null!=this.millisecond||(this.millisecond=0),this.idBlock.tagClass=1,this.idBlock.tagNumber=24}fromDate(a){super.fromDate(a),this.millisecond=a.getUTCMilliseconds()}toDate(){return new Date(Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second,this.millisecond))}fromString(a){let b,c=!1,d="",e="",f=0,g=0,h=0;if("Z"===a[a.length-1])d=a.substring(0,a.length-1),c=!0;else{if(isNaN(new Number(a[a.length-1]).valueOf()))throw Error("Wrong input string for conversion");d=a}if(c){if(-1!==d.indexOf("+")||-1!==d.indexOf("-"))throw Error("Wrong input string for conversion")}else{let a=1,b=d.indexOf("+"),c="";if(-1===b&&(b=d.indexOf("-"),a=-1),-1!==b){if(c=d.substring(b+1),d=d.substring(0,b),2!==c.length&&4!==c.length)throw Error("Wrong input string for conversion");let e=parseInt(c.substring(0,2),10);if(isNaN(e.valueOf()))throw Error("Wrong input string for conversion");if(g=a*e,4===c.length){if(isNaN((e=parseInt(c.substring(2,4),10)).valueOf()))throw Error("Wrong input string for conversion");h=a*e}}}let i=d.indexOf(".");if(-1===i&&(i=d.indexOf(",")),-1!==i){let a=new Number(`0${d.substring(i)}`);if(isNaN(a.valueOf()))throw Error("Wrong input string for conversion");f=a.valueOf(),e=d.substring(0,i)}else e=d;switch(!0){case 8===e.length:if(b=/(\d{4})(\d{2})(\d{2})/ig,-1!==i)throw Error("Wrong input string for conversion");break;case 10===e.length:if(b=/(\d{4})(\d{2})(\d{2})(\d{2})/ig,-1!==i){let a=60*f;this.minute=Math.floor(a),a=60*(a-this.minute),this.second=Math.floor(a),a=1e3*(a-this.second),this.millisecond=Math.floor(a)}break;case 12===e.length:if(b=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})/ig,-1!==i){let a=60*f;this.second=Math.floor(a),a=1e3*(a-this.second),this.millisecond=Math.floor(a)}break;case 14===e.length:if(b=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/ig,-1!==i){let a=1e3*f;this.millisecond=Math.floor(a)}break;default:throw Error("Wrong input string for conversion")}let j=b.exec(e);if(null===j)throw Error("Wrong input string for conversion");for(let a=1;a<j.length;a++)switch(a){case 1:this.year=parseInt(j[a],10);break;case 2:this.month=parseInt(j[a],10);break;case 3:this.day=parseInt(j[a],10);break;case 4:this.hour=parseInt(j[a],10)+g;break;case 5:this.minute=parseInt(j[a],10)+h;break;case 6:this.second=parseInt(j[a],10);break;default:throw Error("Wrong input string for conversion")}if(!1===c){let a=new Date(this.year,this.month,this.day,this.hour,this.minute,this.second,this.millisecond);this.year=a.getUTCFullYear(),this.month=a.getUTCMonth(),this.day=a.getUTCDay(),this.hour=a.getUTCHours(),this.minute=a.getUTCMinutes(),this.second=a.getUTCSeconds(),this.millisecond=a.getUTCMilliseconds()}}toString(a="iso"){if("iso"===a){let a=[];return a.push(p(this.year,4)),a.push(p(this.month,2)),a.push(p(this.day,2)),a.push(p(this.hour,2)),a.push(p(this.minute,2)),a.push(p(this.second,2)),0!==this.millisecond&&(a.push("."),a.push(p(this.millisecond,3))),a.push("Z"),a.join("")}return super.toString(a)}toJSON(){return{...super.toJSON(),millisecond:this.millisecond}}}I.GeneralizedTime=aE,aE.NAME="GeneralizedTime";class aF extends ap{constructor(a={}){super(a),this.idBlock.tagClass=1,this.idBlock.tagNumber=31}}I.DATE=aF,aF.NAME="DATE";class aG extends ap{constructor(a={}){super(a),this.idBlock.tagClass=1,this.idBlock.tagNumber=32}}I.TimeOfDay=aG,aG.NAME="TimeOfDay";class aH extends ap{constructor(a={}){super(a),this.idBlock.tagClass=1,this.idBlock.tagNumber=33}}I.DateTime=aH,aH.NAME="DateTime";class aI extends ap{constructor(a={}){super(a),this.idBlock.tagClass=1,this.idBlock.tagNumber=34}}I.Duration=aI,aI.NAME="Duration";class aJ extends ap{constructor(a={}){super(a),this.idBlock.tagClass=1,this.idBlock.tagNumber=14}}I.TIME=aJ,aJ.NAME="TIME";class aK{constructor({name:a="",optional:b=!1}={}){this.name=a,this.optional=b}}class aL extends aK{constructor({value:a=[],...b}={}){super(b),this.value=a}}class aM extends aK{constructor({value:a=new aK,local:b=!1,...c}={}){super(c),this.value=a,this.local=b}}function aN(a,b,c){if(c instanceof aL){for(let d of c.value)if(aN(a,b,d).verified)return{verified:!0,result:a};{let a={verified:!1,result:{error:"Wrong values for Choice type"}};return c.hasOwnProperty(w)&&(a.name=c.name),a}}if(c instanceof aK)return c.hasOwnProperty(w)&&(a[c.name]=b),{verified:!0,result:a};if(a instanceof Object==!1)return{verified:!1,result:{error:"Wrong root object"}};if(b instanceof Object==!1)return{verified:!1,result:{error:"Wrong ASN.1 data"}};if(c instanceof Object==!1||"idBlock"in c==!1||"fromBER"in c.idBlock==!1||"toBER"in c.idBlock==!1)return{verified:!1,result:{error:"Wrong ASN.1 schema"}};let d=c.idBlock.toBER(!1);if(0===d.byteLength)return{verified:!1,result:{error:"Error encoding idBlock for ASN.1 schema"}};if(-1===c.idBlock.fromBER(d,0,d.byteLength))return{verified:!1,result:{error:"Error decoding idBlock for ASN.1 schema"}};if(!1===c.idBlock.hasOwnProperty("tagClass"))return{verified:!1,result:{error:"Wrong ASN.1 schema"}};if(c.idBlock.tagClass!==b.idBlock.tagClass)return{verified:!1,result:a};if(!1===c.idBlock.hasOwnProperty("tagNumber"))return{verified:!1,result:{error:"Wrong ASN.1 schema"}};if(c.idBlock.tagNumber!==b.idBlock.tagNumber)return{verified:!1,result:a};if(!1===c.idBlock.hasOwnProperty("isConstructed"))return{verified:!1,result:{error:"Wrong ASN.1 schema"}};if(c.idBlock.isConstructed!==b.idBlock.isConstructed)return{verified:!1,result:a};if(!("isHexOnly"in c.idBlock))return{verified:!1,result:{error:"Wrong ASN.1 schema"}};if(c.idBlock.isHexOnly!==b.idBlock.isHexOnly)return{verified:!1,result:a};if(c.idBlock.isHexOnly){if(x in c.idBlock==!1)return{verified:!1,result:{error:"Wrong ASN.1 schema"}};let d=c.idBlock.valueHexView,e=b.idBlock.valueHexView;if(d.length!==e.length)return{verified:!1,result:a};for(let b=0;b<d.length;b++)if(d[b]!==e[1])return{verified:!1,result:a}}if(c.name&&(c.name=c.name.replace(/^\s+|\s+$/g,""),c.name&&(a[c.name]=b)),c instanceof I.Constructed){let d=0,e={verified:!1,result:{error:"Unknown error"}},f=c.valueBlock.value.length;if(f>0&&c.valueBlock.value[0]instanceof aM&&(f=b.valueBlock.value.length),0===f)return{verified:!0,result:a};if(0===b.valueBlock.value.length&&0!==c.valueBlock.value.length){let b=!0;for(let a=0;a<c.valueBlock.value.length;a++)b=b&&(c.valueBlock.value[a].optional||!1);return b?{verified:!0,result:a}:(c.name&&(c.name=c.name.replace(/^\s+|\s+$/g,""),c.name&&delete a[c.name]),a.error="Inconsistent object length",{verified:!1,result:a})}for(let g=0;g<f;g++)if(g-d>=b.valueBlock.value.length){if(!1===c.valueBlock.value[g].optional){let b={verified:!1,result:a};return a.error="Inconsistent length between ASN.1 data and schema",c.name&&(c.name=c.name.replace(/^\s+|\s+$/g,""),c.name&&(delete a[c.name],b.name=c.name)),b}}else if(c.valueBlock.value[0]instanceof aM){if(!1===(e=aN(a,b.valueBlock.value[g],c.valueBlock.value[0].value)).verified)if(!c.valueBlock.value[0].optional)return c.name&&(c.name=c.name.replace(/^\s+|\s+$/g,""),c.name&&delete a[c.name]),e;else d++;if(w in c.valueBlock.value[0]&&c.valueBlock.value[0].name.length>0){let d={};void 0===(d="local"in c.valueBlock.value[0]&&c.valueBlock.value[0].local?b:a)[c.valueBlock.value[0].name]&&(d[c.valueBlock.value[0].name]=[]),d[c.valueBlock.value[0].name].push(b.valueBlock.value[g])}}else if(!1===(e=aN(a,b.valueBlock.value[g-d],c.valueBlock.value[g])).verified)if(!c.valueBlock.value[g].optional)return c.name&&(c.name=c.name.replace(/^\s+|\s+$/g,""),c.name&&delete a[c.name]),e;else d++;if(!1===e.verified){let b={verified:!1,result:a};return c.name&&(c.name=c.name.replace(/^\s+|\s+$/g,""),c.name&&(delete a[c.name],b.name=c.name)),b}return{verified:!0,result:a}}if(c.primitiveSchema&&x in b.valueBlock){let d=P(b.valueBlock.valueHexView);if(-1===d.offset){let b={verified:!1,result:d.result};return c.name&&(c.name=c.name.replace(/^\s+|\s+$/g,""),c.name&&(delete a[c.name],b.name=c.name)),b}return aN(a,d.result,c.primitiveSchema)}return{verified:!0,result:a}}a.s(["Any",0,aK,"BaseBlock",0,J,"BaseStringBlock",0,K,"BitString",0,$,"BmpString",0,ar,"Boolean",0,W,"CharacterString",0,aC,"Choice",0,aL,"Constructed",0,R,"DATE",0,aF,"DEFAULT_MAX_CONTENT_LENGTH",0,0x1000000,"DEFAULT_MAX_DEPTH",0,100,"DEFAULT_MAX_NODES",0,1e4,"DateTime",0,aH,"Duration",0,aI,"EndOfContent",0,T,"Enumerated",0,ac,"GeneralString",0,aB,"GeneralizedTime",0,aE,"GraphicString",0,az,"HexBlock",0,D,"IA5String",0,ay,"Integer",0,ab,"Null",0,U,"NumericString",0,au,"ObjectIdentifier",0,af,"OctetString",0,Y,"Primitive",0,M,"PrintableString",0,av,"RawData",0,class{get data(){return this.dataView.slice().buffer}set data(a){this.dataView=d.toUint8Array(a)}constructor({data:a=z}={}){this.dataView=d.toUint8Array(a)}fromBER(a,b,c){let e=b+c;return this.dataView=d.toUint8Array(a).subarray(b,e),e}toBER(a){return this.dataView.slice().buffer}},"RelativeObjectIdentifier",0,ai,"Repeated",0,aM,"Sequence",0,aj,"Set",0,ak,"TIME",0,aJ,"TeletexString",0,aw,"TimeOfDay",0,aG,"UTCTime",0,aD,"UniversalString",0,at,"Utf8String",0,ap,"ValueBlock",0,F,"VideotexString",0,ax,"ViewWriter",0,t,"VisibleString",0,aA,"compareSchema",0,aN,"fromBER",0,function(a,b={}){if(!a.byteLength){let a=new J({},F);return a.error="Input buffer has zero length",{offset:-1,result:a}}return P(d.toUint8Array(a).slice(),0,a.byteLength,N(b))},"verifySchema",0,function(a,b){if(b instanceof Object==!1)return{verified:!1,result:{error:"Wrong ASN.1 schema type"}};let c=P(d.toUint8Array(a));return -1===c.offset?{verified:!1,result:c.result}:aN(c.result,c.result,b)}],753194)},132701,(a,b,c)=>{"use strict";function d(a){return Object.prototype.toString.call(a)}function e(a){return a===DataView||a.prototype instanceof DataView}function f(a){let b=m(a),c=new Uint8Array(b.byteLength);return c.set(b),c}function g(a){return"[object ArrayBuffer]"===d(a)}function h(a){return"u">typeof SharedArrayBuffer&&"[object SharedArrayBuffer]"===d(a)}function i(a){return g(a)||h(a)}function j(a){return!!ArrayBuffer.isView(a)||!!a&&"object"==typeof a&&"number"==typeof a.byteOffset&&"number"==typeof a.byteLength&&i(a.buffer)}function k(a){return i(a)||j(a)}function l(a){if(!k(a))throw TypeError("Expected ArrayBuffer, SharedArrayBuffer, or ArrayBufferView")}function m(a){return(l(a),i(a))?new Uint8Array(a):new Uint8Array(a.buffer,a.byteOffset,a.byteLength)}Object.defineProperty(c,"__esModule",{value:!0}),c.isArrayBuffer=g,c.isSharedArrayBuffer=h,c.isArrayBufferLike=i,c.isArrayBufferView=j,c.isBufferSource=k,c.assertBufferSource=l,c.toUint8Array=m,c.toUint8ArrayCopy=function(a){return f(a)},c.toArrayBuffer=function(a){if(l(a),g(a))return a;let b=new ArrayBuffer(a.byteLength);return new Uint8Array(b).set(m(a)),b},c.toArrayBufferLike=function(a){return(l(a),i(a))?a:0===a.byteOffset&&a.byteLength===a.buffer.byteLength?a.buffer:f(a).buffer},c.toView=n,c.toViewCopy=function(a,b){return n(f(a),b)};function n(a,b){if(l(a),ArrayBuffer.isView(a)&&a.constructor===b)return a;let c=m(a),d=e(b)?1:b.BYTES_PER_ELEMENT??1;if(c.byteOffset%d!=0||c.byteLength%d!=0)throw RangeError(`Cannot create ${b.name} over unaligned byte range`);return e(b)?new b(c.buffer,c.byteOffset,c.byteLength):new b(c.buffer,c.byteOffset,c.byteLength/d)}},38836,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.concatToUint8Array=e,c.concat=function(a,b,...c){let f,g;"function"==typeof b?(f=Array.from(a),g=b):(0,d.isBufferSource)(a)?f=[a,b,...c].filter(d.isBufferSource):(f=Array.from(a),b&&f.push(b),f.push(...c));let h=e(f);return g?(0,d.toView)(h,g):h.buffer};let d=a.r(132701);function e(a){let b=[],c=0;for(let e of a){let a=(0,d.toUint8Array)(e);b.push(a),c+=a.byteLength}let e=new Uint8Array(c),f=0;for(let a of b)e.set(a,f),f+=a.byteLength;return e}},481112,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.equal=function(a,b,c={}){let e=(0,d.toUint8Array)(a),f=(0,d.toUint8Array)(b);if(!c.constantTime&&e.byteLength!==f.byteLength)return!1;let g=Math.max(e.byteLength,f.byteLength),h=e.byteLength^f.byteLength;for(let a=0;a<g;a++)h|=(e[a]??0)^(f[a]??0);return 0===h};let d=a.r(132701)},725277,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.indexOf=i,c.lastIndexOf=function(a,b,c){var f;let i,j,k=(0,d.toUint8Array)(a),l=g(b,c),[m,n]=(f=k.byteLength,i=e(c?.start,f,f),i>=(j=e(c?.end,0,f))?[j,i]:[i,i]);if(0===l.byteLength)return n;let o=n-l.byteLength;if(o<m)return -1;for(let a=o;a>=m;a--)if(h(k,l,a))return a;return -1},c.includes=function(a,b,c){return -1!==i(a,b,c)},c.startsWith=function(a,b,c){let e=(0,d.toUint8Array)(a),f=g(b,c);return!(f.byteLength>e.byteLength)&&h(e,f,0)},c.endsWith=function(a,b,c){let e=(0,d.toUint8Array)(a),f=g(b,c);return!(f.byteLength>e.byteLength)&&h(e,f,e.byteLength-f.byteLength)},c.slice=function(a,b,c){let e=(0,d.toUint8Array)(a),g=f(b,0,e.byteLength),h=f(c,e.byteLength,e.byteLength);return h<=g?e.subarray(g,g):e.subarray(g,h)},c.tail=function(a,b){let c=(0,d.toUint8Array)(a),e=Number.isFinite(b)?Math.max(0,Math.trunc(b)):0;return e>=c.byteLength?c:c.subarray(c.byteLength-e)},c.copy=function(a){return(0,d.toUint8ArrayCopy)(a)},c.compare=function(a,b){let c=(0,d.toUint8Array)(a),e=(0,d.toUint8Array)(b),f=Math.min(c.byteLength,e.byteLength);for(let a=0;a<f;a++){if(c[a]<e[a])return -1;if(c[a]>e[a])return 1}return c.byteLength<e.byteLength?-1:+(c.byteLength>e.byteLength)};let d=a.r(132701);function e(a,b,c){let d=Number.isFinite(a)?Math.trunc(a):b;return d<=0?0:d>=c?c:d}function f(a,b,c){let d=Number.isFinite(a)?Math.trunc(a):b;return d<0?Math.max(c+d,0):d>c?c:d}function g(a,b){if("string"==typeof a)return b?.encoding==="utf8"?new TextEncoder().encode(a):function(a){let b=new Uint8Array(a.length);for(let c=0;c<a.length;c++)b[c]=255&a.charCodeAt(c);return b}(a);return(0,d.toUint8Array)(a)}function h(a,b,c){for(let d=0;d<b.byteLength;d++)if(a[c+d]!==b[d])return!1;return!0}function i(a,b,c){var f;let i,j,k=(0,d.toUint8Array)(a),l=g(b,c),[m,n]=(f=k.byteLength,i=e(c?.start,0,f),(j=e(c?.end,f,f))>=i?[i,j]:[i,i]);if(0===l.byteLength)return m;let o=n-l.byteLength;if(o<m)return -1;for(let a=m;a<=o;a++)if(h(k,l,a))return a;return -1}},315902,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.tail=c.startsWith=c.slice=c.lastIndexOf=c.indexOf=c.includes=c.endsWith=c.copy=c.compare=c.equal=c.concatToUint8Array=c.concat=c.toViewCopy=c.toView=c.toUint8ArrayCopy=c.toUint8Array=c.toArrayBufferLike=c.toArrayBuffer=c.isSharedArrayBuffer=c.isBufferSource=c.isArrayBufferView=c.isArrayBufferLike=c.isArrayBuffer=c.assertBufferSource=void 0;var d=a.r(132701);Object.defineProperty(c,"assertBufferSource",{enumerable:!0,get:function(){return d.assertBufferSource}}),Object.defineProperty(c,"isArrayBuffer",{enumerable:!0,get:function(){return d.isArrayBuffer}}),Object.defineProperty(c,"isArrayBufferLike",{enumerable:!0,get:function(){return d.isArrayBufferLike}}),Object.defineProperty(c,"isArrayBufferView",{enumerable:!0,get:function(){return d.isArrayBufferView}}),Object.defineProperty(c,"isBufferSource",{enumerable:!0,get:function(){return d.isBufferSource}}),Object.defineProperty(c,"isSharedArrayBuffer",{enumerable:!0,get:function(){return d.isSharedArrayBuffer}}),Object.defineProperty(c,"toArrayBuffer",{enumerable:!0,get:function(){return d.toArrayBuffer}}),Object.defineProperty(c,"toArrayBufferLike",{enumerable:!0,get:function(){return d.toArrayBufferLike}}),Object.defineProperty(c,"toUint8Array",{enumerable:!0,get:function(){return d.toUint8Array}}),Object.defineProperty(c,"toUint8ArrayCopy",{enumerable:!0,get:function(){return d.toUint8ArrayCopy}}),Object.defineProperty(c,"toView",{enumerable:!0,get:function(){return d.toView}}),Object.defineProperty(c,"toViewCopy",{enumerable:!0,get:function(){return d.toViewCopy}});var e=a.r(38836);Object.defineProperty(c,"concat",{enumerable:!0,get:function(){return e.concat}}),Object.defineProperty(c,"concatToUint8Array",{enumerable:!0,get:function(){return e.concatToUint8Array}});var f=a.r(481112);Object.defineProperty(c,"equal",{enumerable:!0,get:function(){return f.equal}});var g=a.r(725277);Object.defineProperty(c,"compare",{enumerable:!0,get:function(){return g.compare}}),Object.defineProperty(c,"copy",{enumerable:!0,get:function(){return g.copy}}),Object.defineProperty(c,"endsWith",{enumerable:!0,get:function(){return g.endsWith}}),Object.defineProperty(c,"includes",{enumerable:!0,get:function(){return g.includes}}),Object.defineProperty(c,"indexOf",{enumerable:!0,get:function(){return g.indexOf}}),Object.defineProperty(c,"lastIndexOf",{enumerable:!0,get:function(){return g.lastIndexOf}}),Object.defineProperty(c,"slice",{enumerable:!0,get:function(){return g.slice}}),Object.defineProperty(c,"startsWith",{enumerable:!0,get:function(){return g.startsWith}}),Object.defineProperty(c,"tail",{enumerable:!0,get:function(){return g.tail}})},306188,(a,b,c)=>{"use strict";var d,e,f,g;Object.defineProperty(c,"__esModule",{value:!0}),c.AsnPropTypes=c.AsnTypeTypes=void 0,(f=d||(c.AsnTypeTypes=d={}))[f.Sequence=0]="Sequence",f[f.Set=1]="Set",f[f.Choice=2]="Choice",(g=e||(c.AsnPropTypes=e={}))[g.Any=1]="Any",g[g.Boolean=2]="Boolean",g[g.OctetString=3]="OctetString",g[g.BitString=4]="BitString",g[g.Integer=5]="Integer",g[g.Enumerated=6]="Enumerated",g[g.ObjectIdentifier=7]="ObjectIdentifier",g[g.Utf8String=8]="Utf8String",g[g.BmpString=9]="BmpString",g[g.UniversalString=10]="UniversalString",g[g.NumericString=11]="NumericString",g[g.PrintableString=12]="PrintableString",g[g.TeletexString=13]="TeletexString",g[g.VideotexString=14]="VideotexString",g[g.IA5String=15]="IA5String",g[g.GraphicString=16]="GraphicString",g[g.VisibleString=17]="VisibleString",g[g.GeneralString=18]="GeneralString",g[g.CharacterString=19]="CharacterString",g[g.UTCTime=20]="UTCTime",g[g.GeneralizedTime=21]="GeneralizedTime",g[g.DATE=22]="DATE",g[g.TimeOfDay=23]="TimeOfDay",g[g.DateTime=24]="DateTime",g[g.Duration=25]="Duration",g[g.TIME=26]="TIME",g[g.Null=27]="Null"},823901,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.BitString=void 0;let d=a.r(610199).__importStar(a.r(753194)),e=a.r(315902);class f{unusedBits=0;value=new ArrayBuffer(0);constructor(a,b=0){if(a)if("number"==typeof a)this.fromNumber(a);else if((0,e.isBufferSource)(a))this.unusedBits=b,this.value=(0,e.toArrayBuffer)(a);else throw TypeError("Unsupported type of 'params' argument for BitString")}fromASN(a){if(!(a instanceof d.BitString))throw TypeError("Argument 'asn' is not instance of ASN.1 BitString");return this.unusedBits=a.valueBlock.unusedBits,this.value=(0,e.toArrayBuffer)(a.valueBlock.valueHex),this}toASN(){return new d.BitString({unusedBits:this.unusedBits,valueHex:this.value})}toSchema(a){return new d.BitString({name:a})}toNumber(){let a="";for(let b of new Uint8Array(this.value))a+=b.toString(2).padStart(8,"0");return a=a.split("").reverse().join(""),this.unusedBits&&(a=a.slice(this.unusedBits).padStart(this.unusedBits,"0")),parseInt(a,2)}fromNumber(a){let b=a.toString(2),c=b.length+7>>3;this.unusedBits=(c<<3)-b.length;let d=new Uint8Array(c);b=b.padStart(c<<3,"0").split("").reverse().join("");let e=0;for(;e<c;)d[e]=parseInt(b.slice(e<<3,(e<<3)+8),2),e++;this.value=d.buffer}}c.BitString=f},417967,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.OctetString=void 0;let d=a.r(610199).__importStar(a.r(753194)),e=a.r(315902);c.OctetString=class{buffer;get byteLength(){return this.buffer.byteLength}get byteOffset(){return 0}constructor(a){"number"==typeof a?this.buffer=new ArrayBuffer(a):(0,e.isBufferSource)(a)?this.buffer=(0,e.toArrayBuffer)(a):Array.isArray(a)?this.buffer=new Uint8Array(a).buffer:this.buffer=new ArrayBuffer(0)}fromASN(a){if(!(a instanceof d.OctetString))throw TypeError("Argument 'asn' is not instance of ASN.1 OctetString");return this.buffer=(0,e.toArrayBuffer)(a.valueBlock.valueHex),this}toASN(){return new d.OctetString({valueHex:this.buffer})}toSchema(a){return new d.OctetString({name:a})}}},121329,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});let d=a.r(610199);d.__exportStar(a.r(823901),c),d.__exportStar(a.r(417967),c)},510022,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.AsnNullConverter=c.AsnGeneralizedTimeConverter=c.AsnUTCTimeConverter=c.AsnCharacterStringConverter=c.AsnGeneralStringConverter=c.AsnVisibleStringConverter=c.AsnGraphicStringConverter=c.AsnIA5StringConverter=c.AsnVideotexStringConverter=c.AsnTeletexStringConverter=c.AsnPrintableStringConverter=c.AsnNumericStringConverter=c.AsnUniversalStringConverter=c.AsnBmpStringConverter=c.AsnUtf8StringConverter=c.AsnConstructedOctetStringConverter=c.AsnOctetStringConverter=c.AsnBooleanConverter=c.AsnObjectIdentifierConverter=c.AsnBitStringConverter=c.AsnIntegerBigIntConverter=c.AsnIntegerArrayBufferConverter=c.AsnEnumeratedConverter=c.AsnIntegerConverter=c.AsnAnyConverter=void 0,c.defaultConverter=function(a){switch(a){case f.AsnPropTypes.Any:return c.AsnAnyConverter;case f.AsnPropTypes.BitString:return c.AsnBitStringConverter;case f.AsnPropTypes.BmpString:return c.AsnBmpStringConverter;case f.AsnPropTypes.Boolean:return c.AsnBooleanConverter;case f.AsnPropTypes.CharacterString:return c.AsnCharacterStringConverter;case f.AsnPropTypes.Enumerated:return c.AsnEnumeratedConverter;case f.AsnPropTypes.GeneralString:return c.AsnGeneralStringConverter;case f.AsnPropTypes.GeneralizedTime:return c.AsnGeneralizedTimeConverter;case f.AsnPropTypes.GraphicString:return c.AsnGraphicStringConverter;case f.AsnPropTypes.IA5String:return c.AsnIA5StringConverter;case f.AsnPropTypes.Integer:return c.AsnIntegerConverter;case f.AsnPropTypes.Null:return c.AsnNullConverter;case f.AsnPropTypes.NumericString:return c.AsnNumericStringConverter;case f.AsnPropTypes.ObjectIdentifier:return c.AsnObjectIdentifierConverter;case f.AsnPropTypes.OctetString:return c.AsnOctetStringConverter;case f.AsnPropTypes.PrintableString:return c.AsnPrintableStringConverter;case f.AsnPropTypes.TeletexString:return c.AsnTeletexStringConverter;case f.AsnPropTypes.UTCTime:return c.AsnUTCTimeConverter;case f.AsnPropTypes.UniversalString:return c.AsnUniversalStringConverter;case f.AsnPropTypes.Utf8String:return c.AsnUtf8StringConverter;case f.AsnPropTypes.VideotexString:return c.AsnVideotexStringConverter;case f.AsnPropTypes.VisibleString:return c.AsnVisibleStringConverter;default:return null}};let d=a.r(610199).__importStar(a.r(753194)),e=a.r(315902),f=a.r(306188),g=a.r(121329);function h(a){return{fromASN:a=>a.valueBlock.value,toASN:b=>new a({value:b})}}c.AsnAnyConverter={fromASN:a=>a instanceof d.Null?null:(0,e.toArrayBuffer)(a.valueBeforeDecodeView),toASN:a=>{if(null===a)return new d.Null;let b=d.fromBER(a);if(b.result.error)throw Error(b.result.error);return b.result}},c.AsnIntegerConverter={fromASN:a=>a.valueBlock.valueHexView.byteLength>=4?a.valueBlock.toString():a.valueBlock.valueDec,toASN:a=>new d.Integer({value:+a})},c.AsnEnumeratedConverter={fromASN:a=>a.valueBlock.valueDec,toASN:a=>new d.Enumerated({value:a})},c.AsnIntegerArrayBufferConverter={fromASN:a=>(0,e.toArrayBuffer)(a.valueBlock.valueHexView),toASN:a=>new d.Integer({valueHex:a})},c.AsnIntegerBigIntConverter={fromASN:a=>a.toBigInt(),toASN:a=>d.Integer.fromBigInt(a)},c.AsnBitStringConverter={fromASN:a=>(0,e.toArrayBuffer)(a.valueBlock.valueHexView),toASN:a=>new d.BitString({valueHex:a})},c.AsnObjectIdentifierConverter={fromASN:a=>a.valueBlock.toString(),toASN:a=>new d.ObjectIdentifier({value:a})},c.AsnBooleanConverter={fromASN:a=>a.valueBlock.value,toASN:a=>new d.Boolean({value:a})},c.AsnOctetStringConverter={fromASN:a=>(0,e.toArrayBuffer)(a.valueBlock.valueHexView),toASN:a=>new d.OctetString({valueHex:a})},c.AsnConstructedOctetStringConverter={fromASN:a=>new g.OctetString(a.getValue()),toASN:a=>a.toASN()},c.AsnUtf8StringConverter=h(d.Utf8String),c.AsnBmpStringConverter=h(d.BmpString),c.AsnUniversalStringConverter=h(d.UniversalString),c.AsnNumericStringConverter=h(d.NumericString),c.AsnPrintableStringConverter=h(d.PrintableString),c.AsnTeletexStringConverter=h(d.TeletexString),c.AsnVideotexStringConverter=h(d.VideotexString),c.AsnIA5StringConverter=h(d.IA5String),c.AsnGraphicStringConverter=h(d.GraphicString),c.AsnVisibleStringConverter=h(d.VisibleString),c.AsnGeneralStringConverter=h(d.GeneralString),c.AsnCharacterStringConverter=h(d.CharacterString),c.AsnUTCTimeConverter={fromASN:a=>a.toDate(),toASN:a=>new d.UTCTime({valueDate:a})},c.AsnGeneralizedTimeConverter={fromASN:a=>a.toDate(),toASN:a=>new d.GeneralizedTime({valueDate:a})},c.AsnNullConverter={fromASN:()=>null,toASN:()=>new d.Null}},770040,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.isConvertible=function a(b){return"function"==typeof b&&b.prototype?!!b.prototype.toASN&&!!b.prototype.fromASN||a(b.prototype):!!(b&&"object"==typeof b&&"toASN"in b&&"fromASN"in b)},c.isTypeOfArray=function a(b){if(b){let c=Object.getPrototypeOf(b);return c?.prototype?.constructor===Array||a(c)}return!1},c.isArrayEqual=function(a,b){if(!(a&&b)||a.byteLength!==b.byteLength)return!1;let c=new Uint8Array(a),d=new Uint8Array(b);for(let b=0;b<a.byteLength;b++)if(c[b]!==d[b])return!1;return!0}},695093,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.AsnSchemaStorage=void 0;let d=a.r(610199).__importStar(a.r(753194)),e=a.r(306188),f=a.r(770040);class g{items=new WeakMap;has(a){return this.items.has(a)}get(a,b=!1){let c=this.items.get(a);if(!c)throw Error(`Cannot get schema for '${a.prototype.constructor.name}' target`);if(b&&!c.schema)throw Error(`Schema '${a.prototype.constructor.name}' doesn't contain ASN.1 schema. Call 'AsnSchemaStorage.cache'.`);return c}cache(a){let b=this.get(a);b.schema||(b.schema=this.create(a,!0))}createDefault(a){let b={type:e.AsnTypeTypes.Sequence,items:{}},c=this.findParentSchema(a);return c&&(Object.assign(b,c),b.items=Object.assign({},b.items,c.items)),b}create(a,b){let c=this.items.get(a)||this.createDefault(a),g=[];for(let a in c.items){let h,i=c.items[a],j=b?a:"";if("number"==typeof i.type){let a=e.AsnPropTypes[i.type],b=d[a];if(!b)throw Error(`Cannot get ASN1 class by name '${a}'`);h=new b({name:j})}else(0,f.isConvertible)(i.type)?h=new i.type().toSchema(j):i.optional?this.get(i.type).type===e.AsnTypeTypes.Choice?h=new d.Any({name:j}):(h=this.create(i.type,!1)).name=j:h=new d.Any({name:j});let k=!!i.optional||void 0!==i.defaultValue;if(i.repeated&&(h.name="",h=new("set"===i.repeated?d.Set:d.Sequence)({name:"",value:[new d.Repeated({name:j,value:h})]})),null!==i.context&&void 0!==i.context)if(i.implicit)if("number"==typeof i.type||(0,f.isConvertible)(i.type)){let a=i.repeated?d.Constructed:d.Primitive;g.push(new a({name:j,optional:k,idBlock:{tagClass:3,tagNumber:i.context}}))}else{this.cache(i.type);let a=!!i.repeated,b=a?h:this.get(i.type,!0).schema;b="valueBlock"in b?b.valueBlock.value:b.value,g.push(new d.Constructed({name:a?"":j,optional:k,idBlock:{tagClass:3,tagNumber:i.context},value:b}))}else g.push(new d.Constructed({optional:k,idBlock:{tagClass:3,tagNumber:i.context},value:[h]}));else h.optional=k,g.push(h)}switch(c.type){case e.AsnTypeTypes.Sequence:return new d.Sequence({value:g,name:""});case e.AsnTypeTypes.Set:return new d.Set({value:g,name:""});case e.AsnTypeTypes.Choice:return new d.Choice({value:g,name:""});default:throw Error("Unsupported ASN1 type in use")}}set(a,b){return this.items.set(a,b),this}findParentSchema(a){let b=Object.getPrototypeOf(a);return b?this.items.get(b)||this.findParentSchema(b):null}}c.AsnSchemaStorage=g},844987,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.schemaStorage=void 0,c.schemaStorage=new(a.r(695093)).AsnSchemaStorage},589896,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.AsnProp=c.AsnSequenceType=c.AsnSetType=c.AsnChoiceType=c.AsnType=void 0;let d=a.r(610199).__importStar(a.r(510022)),e=a.r(306188),f=a.r(844987);c.AsnType=a=>b=>{let c;f.schemaStorage.has(b)?c=f.schemaStorage.get(b):(c=f.schemaStorage.createDefault(b),f.schemaStorage.set(b,c)),Object.assign(c,a)},c.AsnChoiceType=()=>(0,c.AsnType)({type:e.AsnTypeTypes.Choice}),c.AsnSetType=a=>(0,c.AsnType)({type:e.AsnTypeTypes.Set,...a}),c.AsnSequenceType=a=>(0,c.AsnType)({type:e.AsnTypeTypes.Sequence,...a}),c.AsnProp=a=>(b,c)=>{let e;f.schemaStorage.has(b.constructor)?e=f.schemaStorage.get(b.constructor):(e=f.schemaStorage.createDefault(b.constructor),f.schemaStorage.set(b.constructor,e));let g=Object.assign({},a);if("number"==typeof g.type&&!g.converter){let e=d.defaultConverter(a.type);if(!e)throw Error(`Cannot get default converter for property '${c}' of ${b.constructor.name}`);g.converter=e}g.raw=a.raw,e.items[c]=g}},248050,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.AsnSchemaValidationError=void 0,c.AsnSchemaValidationError=class extends Error{schemas=[]}},249220,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),a.r(610199).__exportStar(a.r(248050),c)},672411,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.AsnParser=void 0;let d=a.r(610199),e=d.__importStar(a.r(753194)),f=a.r(315902),g=a.r(306188),h=d.__importStar(a.r(510022)),i=a.r(249220),j=a.r(770040),k=a.r(844987);c.AsnParser=class{static parse(a,b,c){let d=e.fromBER((0,f.toArrayBuffer)(a),c?.berOptions);if(d.result.error)throw Error(d.result.error);return this.fromASN(d.result,b,c)}static fromASN(a,b,c){try{if((0,j.isConvertible)(b))return new b().fromASN(a);let d=k.schemaStorage.get(b);k.schemaStorage.cache(b);let e=d.schema,f=this.handleChoiceTypes(a,d,b,e,c);if(f?.result)return f.result;f?.targetSchema&&(e=f.targetSchema);let g=this.handleSequenceTypes(a,d,b,e),h=new b;if((0,j.isTypeOfArray)(b))return this.handleArrayTypes(a,d,b,c);return this.processSchemaItems(d,g,h,c),h}catch(a){throw a instanceof i.AsnSchemaValidationError&&a.schemas.push(b.name),a}}static handleChoiceTypes(a,b,c,d,f){if(a.constructor===e.Constructed&&b.type===g.AsnTypeTypes.Choice&&3===a.idBlock.tagClass)for(let d in b.items){let h=b.items[d];if(h.context===a.idBlock.tagNumber&&h.implicit&&"function"==typeof h.type&&k.schemaStorage.has(h.type)){let b=k.schemaStorage.get(h.type);if(b&&b.type===g.AsnTypeTypes.Sequence){let b=new e.Sequence;if("value"in a.valueBlock&&Array.isArray(a.valueBlock.value)&&"value"in b.valueBlock){b.valueBlock.value=a.valueBlock.value;let e=this.fromASN(b,h.type,f),g=new c;return g[d]=e,{result:g}}}}}else if(a.constructor===e.Constructed&&b.type!==g.AsnTypeTypes.Choice){let c=new e.Constructed({idBlock:{tagClass:3,tagNumber:a.idBlock.tagNumber},value:b.schema.valueBlock.value});for(let c in b.items)delete a[c];return{targetSchema:c}}return null}static handleSequenceTypes(a,b,c,d){if(b.type===g.AsnTypeTypes.Sequence){let b=e.compareSchema({},a,d);if(!b.verified)throw new i.AsnSchemaValidationError(`Data does not match to ${c.name} ASN1 schema.${b.result.error?` ${b.result.error}`:""}`);return b}{let b=e.compareSchema({},a,d);if(!b.verified)throw new i.AsnSchemaValidationError(`Data does not match to ${c.name} ASN1 schema.${b.result.error?` ${b.result.error}`:""}`);return b}}static processRepeatedField(a,b,c){let d=a.slice(b);if(1===d.length&&"Sequence"===d[0].constructor.name){let a=d[0];a.valueBlock&&a.valueBlock.value&&Array.isArray(a.valueBlock.value)&&(d=a.valueBlock.value)}if("number"!=typeof c.type)return d.filter(a=>a&&a.valueBlock).map(a=>{try{return this.fromASN(a,c.type)}catch{return}}).filter(a=>void 0!==a);{let a=h.defaultConverter(c.type);if(!a)throw Error(`No converter for ASN.1 type ${c.type}`);return d.filter(a=>a&&a.valueBlock).map(b=>{try{return a.fromASN(b)}catch{return}}).filter(a=>void 0!==a)}}static processPrimitiveField(a,b){let c=h.defaultConverter(b.type);if(!c)throw Error(`No converter for ASN.1 type ${b.type}`);return c.fromASN(a)}static isOptionalChoiceField(a){return a.optional&&"function"==typeof a.type&&k.schemaStorage.has(a.type)&&k.schemaStorage.get(a.type).type===g.AsnTypeTypes.Choice}static processOptionalChoiceField(a,b){try{let c=this.fromASN(a,b.type);return{processed:!0,value:c}}catch(a){if(a instanceof i.AsnSchemaValidationError&&/Wrong values for Choice type/.test(a.message))return{processed:!1};throw a}}static handleArrayTypes(a,b,c,d){if(!("value"in a.valueBlock&&Array.isArray(a.valueBlock.value)))throw Error("Cannot get items from the ASN.1 parsed value. ASN.1 object is not constructed.");let e=b.itemType;if("number"!=typeof e)return c.from(a.valueBlock.value,a=>this.fromASN(a,e,d));{let b=h.defaultConverter(e);if(!b)throw Error(`Cannot get default converter for array item of ${c.name} ASN1 schema`);return c.from(a.valueBlock.value,a=>b.fromASN(a))}}static processSchemaItems(a,b,c,d){for(let e in a.items){let f,g=b.result[e];if(!g)continue;let h=a.items[e],i=h.type;(f="number"==typeof i||(0,j.isConvertible)(i)?this.processPrimitiveSchemaItem(g,h,i,d):this.processComplexSchemaItem(g,h,i,d))&&"object"==typeof f&&"value"in f&&"raw"in f?(c[e]=f.value,c[`${e}Raw`]=f.raw):c[e]=f}}static processPrimitiveSchemaItem(a,b,c,d){let e=b.converter??((0,j.isConvertible)(c)?new c:null);if(!e)throw Error("Converter is empty");return b.repeated?this.processRepeatedPrimitiveItem(a,b,e,d):this.processSinglePrimitiveItem(a,b,c,e,d)}static processRepeatedPrimitiveItem(a,b,c,d){if(!b.implicit)return Array.from(a,a=>c.fromASN(a));{let f=new("sequence"===b.repeated?e.Sequence:e.Set);f.valueBlock=a.valueBlock;let g=e.fromBER(f.toBER(!1),d?.berOptions);if(-1===g.offset)throw Error(`Cannot parse the child item. ${g.result.error}`);if(!("value"in g.result.valueBlock&&Array.isArray(g.result.valueBlock.value)))throw Error("Cannot get items from the ASN.1 parsed value. ASN.1 object is not constructed.");return Array.from(g.result.valueBlock.value,a=>c.fromASN(a))}}static processSinglePrimitiveItem(a,b,c,d,f){let h=a;if(b.implicit){let a;if((0,j.isConvertible)(c))a=new c().toSchema("");else{let b=g.AsnPropTypes[c],d=e[b];if(!d)throw Error(`Cannot get '${b}' class from asn1js module`);a=new d}a.valueBlock=h.valueBlock,h=e.fromBER(a.toBER(!1),f?.berOptions).result}return d.fromASN(h)}static processComplexSchemaItem(a,b,c,d){if(b.repeated){if(!Array.isArray(a))throw Error("Cannot get list of items from the ASN.1 parsed value. ASN.1 value should be iterable.");return Array.from(a,a=>this.fromASN(a,c,d))}{let e=this.handleImplicitTagging(a,b,c);if(this.isOptionalChoiceField(b))try{return this.fromASN(e,c,d)}catch(a){if(a instanceof i.AsnSchemaValidationError&&/Wrong values for Choice type/.test(a.message))return;throw a}{let f=this.fromASN(e,c,d);return b.raw?{value:f,raw:a.valueBeforeDecodeView}:f}}}static handleImplicitTagging(a,b,c){if(b.implicit&&"number"==typeof b.context){let b=k.schemaStorage.get(c);if(b.type===g.AsnTypeTypes.Sequence){let b=new e.Sequence;if("value"in a.valueBlock&&Array.isArray(a.valueBlock.value)&&"value"in b.valueBlock)return b.valueBlock.value=a.valueBlock.value,b}else if(b.type===g.AsnTypeTypes.Set){let b=new e.Set;if("value"in a.valueBlock&&Array.isArray(a.valueBlock.value)&&"value"in b.valueBlock)return b.valueBlock.value=a.valueBlock.value,b}}return a}}},54567,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.AsnSerializer=void 0;let d=a.r(610199),e=d.__importStar(a.r(753194)),f=a.r(315902),g=d.__importStar(a.r(510022)),h=a.r(306188),i=a.r(770040),j=a.r(844987);c.AsnSerializer=class a{static serialize(a){return a instanceof e.BaseBlock?a.toBER(!1):this.toASN(a).toBER(!1)}static toASN(b){let c;if(b&&"object"==typeof b&&(0,i.isConvertible)(b))return b.toASN();if(!(b&&"object"==typeof b))throw TypeError("Parameter 1 should be type of Object.");let d=b.constructor,k=j.schemaStorage.get(d);j.schemaStorage.cache(d);let l=[];if(k.itemType){if(!Array.isArray(b))throw TypeError("Parameter 1 should be type of Array.");if("number"==typeof k.itemType){let a=g.defaultConverter(k.itemType);if(!a)throw Error(`Cannot get default converter for array item of ${d.name} ASN1 schema`);l=b.map(b=>a.toASN(b))}else l=b.map(a=>this.toAsnItem({type:k.itemType},"[]",d,a))}else for(let c in k.items){let g=k.items[c],h=b[c];if(void 0===h||g.defaultValue===h||"object"==typeof g.defaultValue&&"object"==typeof h&&(0,i.isArrayEqual)(this.serialize(g.defaultValue),this.serialize(h)))continue;let j=a.toAsnItem(g,c,d,h);if("number"==typeof g.context)if(g.implicit)if(!g.repeated&&("number"==typeof g.type||(0,i.isConvertible)(g.type))){let a={};a.valueHex=j instanceof e.Null?(0,f.toArrayBuffer)(j.valueBeforeDecodeView):j.valueBlock.toBER(),l.push(new e.Primitive({optional:g.optional,idBlock:{tagClass:3,tagNumber:g.context},...a}))}else l.push(new e.Constructed({optional:g.optional,idBlock:{tagClass:3,tagNumber:g.context},value:j.valueBlock.value}));else l.push(new e.Constructed({optional:g.optional,idBlock:{tagClass:3,tagNumber:g.context},value:[j]}));else g.repeated?l=l.concat(j):l.push(j)}switch(k.type){case h.AsnTypeTypes.Sequence:c=new e.Sequence({value:l});break;case h.AsnTypeTypes.Set:c=new e.Set({value:l});break;case h.AsnTypeTypes.Choice:if(!l[0])throw Error(`Schema '${d.name}' has wrong data. Choice cannot be empty.`);c=l[0]}return c}static toAsnItem(a,b,c,d){let f;if("number"==typeof a.type){let g=a.converter;if(!g)throw Error(`Property '${b}' doesn't have converter for type ${h.AsnPropTypes[a.type]} in schema '${c.name}'`);if(a.repeated){if(!Array.isArray(d))throw TypeError("Parameter 'objProp' should be type of Array.");let b=Array.from(d,a=>g.toASN(a));f=new("sequence"===a.repeated?e.Sequence:e.Set)({value:b})}else f=g.toASN(d)}else if(a.repeated){if(!Array.isArray(d))throw TypeError("Parameter 'objProp' should be type of Array.");let b=Array.from(d,a=>this.toASN(a));f=new("sequence"===a.repeated?e.Sequence:e.Set)({value:b})}else f=this.toASN(d);return f}}},457902,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.AsnArray=void 0,c.AsnArray=class extends Array{constructor(a=[]){if("number"==typeof a)super(a);else for(const b of(super(),a))this.push(b)}}},316676,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.AsnConvert=void 0;let d=a.r(610199).__importStar(a.r(753194)),e=a.r(315902),f=a.r(672411),g=a.r(54567);c.AsnConvert=class a{static serialize(a){return g.AsnSerializer.serialize(a)}static parse(a,b,c){return f.AsnParser.parse(a,b,c)}static toString(b,c){let f=(0,e.isBufferSource)(b)?(0,e.toArrayBuffer)(b):a.serialize(b),g=d.fromBER(f,c?.berOptions);if(-1===g.offset)throw Error(`Cannot decode ASN.1 data. ${g.result.error}`);return g.result.toString()}}},950383,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.AsnSerializer=c.AsnParser=c.AsnPropTypes=c.AsnTypeTypes=c.AsnSetType=c.AsnSequenceType=c.AsnChoiceType=c.AsnType=c.AsnProp=void 0;let d=a.r(610199);d.__exportStar(a.r(510022),c),d.__exportStar(a.r(121329),c);var e=a.r(589896);Object.defineProperty(c,"AsnProp",{enumerable:!0,get:function(){return e.AsnProp}}),Object.defineProperty(c,"AsnType",{enumerable:!0,get:function(){return e.AsnType}}),Object.defineProperty(c,"AsnChoiceType",{enumerable:!0,get:function(){return e.AsnChoiceType}}),Object.defineProperty(c,"AsnSequenceType",{enumerable:!0,get:function(){return e.AsnSequenceType}}),Object.defineProperty(c,"AsnSetType",{enumerable:!0,get:function(){return e.AsnSetType}});var f=a.r(306188);Object.defineProperty(c,"AsnTypeTypes",{enumerable:!0,get:function(){return f.AsnTypeTypes}}),Object.defineProperty(c,"AsnPropTypes",{enumerable:!0,get:function(){return f.AsnPropTypes}});var g=a.r(672411);Object.defineProperty(c,"AsnParser",{enumerable:!0,get:function(){return g.AsnParser}});var h=a.r(54567);Object.defineProperty(c,"AsnSerializer",{enumerable:!0,get:function(){return h.AsnSerializer}}),d.__exportStar(a.r(249220),c),d.__exportStar(a.r(457902),c),d.__exportStar(a.r(316676),c)},209903,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.binary=void 0,c.encode=e,c.decode=f,c.is=g;let d=a.r(315902);function e(a){let b=(0,d.toUint8Array)(a),c="";for(let a of b)c+=String.fromCharCode(a);return c}function f(a){let b=new Uint8Array(a.length);for(let c=0;c<a.length;c++)b[c]=255&a.charCodeAt(c);return b}function g(a){return"string"==typeof a}c.binary={encode:e,decode:f,is:g}},87340,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.hex=c.formats=void 0,c.normalize=i,c.is=j,c.encode=k,c.decode=l,c.parse=m,c.format=n;let d=a.r(315902),e=/^[0-9a-f]$/i,f=[" "," ","\n","\r",":","-","."];function g(a){return a.replace(/[^0-9a-f]/gi,"")}function h(a,b){if(!b)return a.join("");if(!Number.isInteger(b.size)||b.size<1)throw RangeError("Hex group size must be a positive integer");let c=[];for(let d=0;d<a.length;d+=b.size)c.push(a.slice(d,d+b.size).join(""));return c.join(b.separator)}function i(a,b={}){return function(a,b){let c=b.allowPrefix??!0,d=[..."none"===b.separators?[]:!b.separators||"common"===b.separators?f:b.separators].sort((a,b)=>b.length-a.length);for(let a of d)if(!a)throw TypeError("Hex separators must be non-empty strings");let g=a.trim();if(/^0x/i.test(g)){if(!c)throw TypeError("Hexadecimal text must not include a 0x prefix");g=g.slice(2)}let h="",i=!1;for(let a=0;a<g.length;){let c=g[a]??"";if(e.test(c)){h+=c,i=!1,a+=1;continue}let f=function(a,b,c){for(let d of c)if(a.startsWith(d,b))return d}(g,a,d);if(!f)throw TypeError("Input is not valid hexadecimal text");if(b.strict&&(i||0===h.length))throw TypeError("Hexadecimal text contains misplaced separators");i=!0,a+=f.length}if(b.strict&&i&&h.length>0)throw TypeError("Hexadecimal text must not end with a separator");if(h.length%2!=0){if(!b.allowOddLength)throw TypeError("Hexadecimal text must contain an even number of characters");h=`0${h}`}return h.toLowerCase()}(a,b)}function j(a,b={}){if("string"!=typeof a)return!1;try{return i(a,b),!0}catch{return!1}}function k(a,b={}){let c=(0,d.toUint8Array)(a),e=b.case??"lower",f=Array.from(c,a=>{let b=a.toString(16).padStart(2,"0");return"upper"===e?b.toUpperCase():b}),g="";if(b.line){let a=b.line.bytesPerLine;if(!Number.isInteger(a)||a<1)throw RangeError("Hex bytesPerLine must be a positive integer");let c=b.line.separator??"\n",d=[];for(let c=0;c<f.length;c+=a)d.push(h(f.slice(c,c+a),b.group));g=d.join(c)}else g=h(f,b.group);return`${b.prefix??""}${g}`}function l(a,b={}){let c=i(a,b),d=new Uint8Array(c.length/2);for(let a=0;a<c.length;a+=2)d[a/2]=Number.parseInt(c.slice(a,a+2),16);return d}function m(a,b={}){let c=i(a,b);return{bytes:l(c),format:function(a){let b,c,d=a.trim(),e=/^0x/i.test(d)?"0x":"",f=e?d.slice(2):d,h=function(a){let b=/\r\n|\n/.exec(a);if(b)return"\r\n"===b[0]?"\r\n":"\n"}(f),i=f.split(/\r\n|\n/).filter(a=>a.length>0),j=function(a){let b=a.match(/[0-9A-Fa-f]+|[^0-9A-Fa-f]+/g)??[];if(b.length<3)return;let c=b.filter((a,b)=>b%2==0),d=b.filter((a,b)=>b%2==1),e=d[0];if(!e||d.some(a=>a!==e)||c.some(a=>0===a.length||a.length%2!=0))return;let f=c[0]?.length??0;if(!(!f||c.slice(0,-1).some(a=>a.length!==f))&&!((c[c.length-1]?.length??0)>f))return{size:f/2,separator:e}}(i[0]?.trim()??""),k={case:(b=/[A-F]/.test(d),c=/[a-f]/.test(d),b&&!c?"upper":"lower"),prefix:e};if(j&&(k.group=j),h&&i.length>1){let a=g(i[0]??"").length/2;a>0&&i.slice(0,-1).every(b=>g(b).length/2===a)&&(k.line={bytesPerLine:a,separator:h})}return k}(a),normalized:c}}function n(a,b){return k(a,b)}c.formats={compact:Object.freeze({}),upper:Object.freeze({case:"upper"}),colon:Object.freeze({group:{size:1,separator:":"}}),colonUpper:Object.freeze({case:"upper",group:{size:1,separator:":"}}),groupsOf4:Object.freeze({group:{size:4,separator:" "}}),prefixed:Object.freeze({prefix:"0x"})},c.hex={encode:k,decode:l,format:n,formats:c.formats,is:j,normalize:i,parse:m}},536723,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.utf8=void 0,c.encode=e,c.decode=f;let d=a.r(315902);function e(a){return new TextEncoder().encode(a)}function f(a){return new TextDecoder("utf-8",{fatal:!1}).decode((0,d.toUint8Array)(a))}c.utf8={encode:e,decode:f}},708415,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.utf16=void 0,c.encode=e,c.decode=f;let d=a.r(315902);function e(a,b={}){let c=new ArrayBuffer(2*a.length),d=new DataView(c);for(let c=0;c<a.length;c++)d.setUint16(2*c,a.charCodeAt(c),b.littleEndian??!1);return new Uint8Array(c)}function f(a,b={}){let c=(0,d.toArrayBuffer)(a),e=new DataView(c),g="";for(let a=0;a<c.byteLength;a+=2)g+=String.fromCharCode(e.getUint16(a,b.littleEndian??!1));return g}c.utf16={encode:e,decode:f}},620902,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.base64=void 0,c.normalize=h,c.pad=i,c.is=j,c.encode=k,c.decode=l;let d=a.r(315902),e=a.r(209903),f=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/;function g(){return globalThis.Buffer}function h(a){return a.replace(/[\n\r\t ]/g,"")}function i(a){let b=a.length%4;return b?a+"=".repeat(4-b):a}function j(a){if("string"!=typeof a)return!1;let b=h(a);return""===b||f.test(b)}function k(a,b){let c=(0,d.toUint8Array)(a),f=g();return f?f.from(c).toString("base64"):btoa((0,e.encode)(c))}function l(a,b){let c=h(a);if(!j(c))throw TypeError("Input is not valid Base64 text");let d=g();return d?new Uint8Array(d.from(c,"base64")):(0,e.decode)(atob(c))}c.base64={encode:k,decode:l,is:j,normalize:h,pad:i}},525774,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.base64url=void 0,c.normalize=f,c.is=g,c.encode=h,c.decode=i;let d=a.r(620902),e=/^[A-Za-z0-9_-]*$/;function f(a){return a.replace(/[\n\r\t ]/g,"")}function g(a){return"string"==typeof a&&e.test(f(a))}function h(a,b){return d.base64.encode(a).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/g,"")}function i(a,b){let c=f(a);if(!g(c))throw TypeError("Input is not valid Base64Url text");return d.base64.decode(d.base64.pad(c.replace(/-/g,"+").replace(/_/g,"/")))}c.base64url={encode:h,decode:i,is:g,normalize:f}},156334,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.base64url=c.base64=c.utf16=c.utf8=c.hex=c.binary=void 0;let d=a.r(610199);c.binary=d.__importStar(a.r(209903)),c.hex=d.__importStar(a.r(87340)),c.utf8=d.__importStar(a.r(536723)),c.utf16=d.__importStar(a.r(708415)),c.base64=d.__importStar(a.r(620902)),c.base64url=d.__importStar(a.r(525774))},963545,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.IpConverter=void 0;let d=a.r(156334);c.IpConverter=class{static isIPv4(a){return/^(\d{1,3}\.){3}\d{1,3}$/.test(a)}static parseIPv4(a){let b=a.split(".");if(4!==b.length)throw Error("Invalid IPv4 address");return b.map(a=>{let b=parseInt(a,10);if(isNaN(b)||b<0||b>255)throw Error("Invalid IPv4 address part");return b})}static parseIPv6(a){let b=this.expandIPv6(a).split(":");if(8!==b.length)throw Error("Invalid IPv6 address");return b.reduce((a,b)=>{let c=parseInt(b,16);if(isNaN(c)||c<0||c>65535)throw Error("Invalid IPv6 address part");return a.push(c>>8&255),a.push(255&c),a},[])}static expandIPv6(a){if(!a.includes("::"))return a;let b=a.split("::");if(b.length>2)throw Error("Invalid IPv6 address");let c=b[0]?b[0].split(":"):[],d=b[1]?b[1].split(":"):[],e=8-(c.length+d.length);if(e<0)throw Error("Invalid IPv6 address");return[...c,...Array(e).fill("0"),...d].join(":")}static formatIPv6(a){let b=[];for(let c=0;c<16;c+=2)b.push((a[c]<<8|a[c+1]).toString(16));return this.compressIPv6(b.join(":"))}static compressIPv6(a){let b=a.split(":"),c=-1,d=0,e=-1,f=0;for(let a=0;a<b.length;a++)"0"===b[a]?(-1===e&&(e=a),f++):(f>d&&(c=e,d=f),e=-1,f=0);if(f>d&&(c=e,d=f),d>1){let a=b.slice(0,c).join(":"),e=b.slice(c+d).join(":");return`${a}::${e}`}return a}static parseCIDR(a){let[b,c]=a.split("/"),d=parseInt(c,10);if(this.isIPv4(b)){if(d<0||d>32)throw Error("Invalid IPv4 prefix length");return[this.parseIPv4(b),d]}if(d<0||d>128)throw Error("Invalid IPv6 prefix length");return[this.parseIPv6(b),d]}static decodeIP(a){if(64===a.length&&0===parseInt(a,16))return"::/0";if(16!==a.length)return a;let b=parseInt(a.slice(8),16).toString(2).split("").reduce((a,b)=>a+ +b,0),c=a.slice(0,8).replace(/(.{2})/g,a=>`${parseInt(a,16)}.`);return c=c.slice(0,-1),`${c}/${b}`}static toString(a){let b=new Uint8Array(a);if(4===b.length)return Array.from(b).join(".");if(16===b.length)return this.formatIPv6(b);if(8===b.length||32===b.length){let a=b.length/2,c=b.slice(0,a),d=b.slice(a);if(b.every(a=>0===a))return 8===b.length?"0.0.0.0/0":"::/0";let e=d.reduce((a,b)=>a+(b.toString(2).match(/1/g)||[]).length,0);if(8===b.length){let a=Array.from(c).join(".");return`${a}/${e}`}{let a=this.formatIPv6(c);return`${a}/${e}`}}return this.decodeIP(d.hex.encode(a))}static fromString(a){if(a.includes("/")){let[b,c]=this.parseCIDR(a),d=new Uint8Array(b.length),e=c;for(let a=0;a<d.length;a++)e>=8?(d[a]=255,e-=8):e>0&&(d[a]=255<<8-e,e=0);let f=new Uint8Array(2*b.length);return f.set(b,0),f.set(d,b.length),f.buffer}return new Uint8Array(this.isIPv4(a)?this.parseIPv4(a):this.parseIPv6(a)).buffer}}},202500,(a,b,c)=>{"use strict";var d,e,f;Object.defineProperty(c,"__esModule",{value:!0}),c.Name=c.RDNSequence=c.RelativeDistinguishedName=c.AttributeTypeAndValue=c.AttributeValue=c.DirectoryString=void 0;let g=a.r(610199),h=a.r(950383),i=a.r(156334),j=class{teletexString;printableString;universalString;utf8String;bmpString;constructor(a={}){Object.assign(this,a)}toString(){return this.bmpString||this.printableString||this.teletexString||this.universalString||this.utf8String||""}};c.DirectoryString=j,g.__decorate([(0,h.AsnProp)({type:h.AsnPropTypes.TeletexString})],j.prototype,"teletexString",void 0),g.__decorate([(0,h.AsnProp)({type:h.AsnPropTypes.PrintableString})],j.prototype,"printableString",void 0),g.__decorate([(0,h.AsnProp)({type:h.AsnPropTypes.UniversalString})],j.prototype,"universalString",void 0),g.__decorate([(0,h.AsnProp)({type:h.AsnPropTypes.Utf8String})],j.prototype,"utf8String",void 0),g.__decorate([(0,h.AsnProp)({type:h.AsnPropTypes.BmpString})],j.prototype,"bmpString",void 0),c.DirectoryString=j=g.__decorate([(0,h.AsnType)({type:h.AsnTypeTypes.Choice})],j);let k=class extends j{ia5String;anyValue;constructor(a={}){super(a),Object.assign(this,a)}toString(){return this.ia5String||(this.anyValue?i.hex.encode(this.anyValue):super.toString())}};c.AttributeValue=k,g.__decorate([(0,h.AsnProp)({type:h.AsnPropTypes.IA5String})],k.prototype,"ia5String",void 0),g.__decorate([(0,h.AsnProp)({type:h.AsnPropTypes.Any})],k.prototype,"anyValue",void 0),c.AttributeValue=k=g.__decorate([(0,h.AsnType)({type:h.AsnTypeTypes.Choice})],k);class l{type="";value=new k;constructor(a={}){Object.assign(this,a)}}c.AttributeTypeAndValue=l,g.__decorate([(0,h.AsnProp)({type:h.AsnPropTypes.ObjectIdentifier})],l.prototype,"type",void 0),g.__decorate([(0,h.AsnProp)({type:k})],l.prototype,"value",void 0);let m=d=class extends h.AsnArray{constructor(a){super(a),Object.setPrototypeOf(this,d.prototype)}};c.RelativeDistinguishedName=m,c.RelativeDistinguishedName=m=d=g.__decorate([(0,h.AsnType)({type:h.AsnTypeTypes.Set,itemType:l})],m);let n=e=class extends h.AsnArray{constructor(a){super(a),Object.setPrototypeOf(this,e.prototype)}};c.RDNSequence=n,c.RDNSequence=n=e=g.__decorate([(0,h.AsnType)({type:h.AsnTypeTypes.Sequence,itemType:m})],n);let o=f=class extends n{constructor(a){super(a),Object.setPrototypeOf(this,f.prototype)}};c.Name=o,c.Name=o=f=g.__decorate([(0,h.AsnType)({type:h.AsnTypeTypes.Sequence})],o)},952352,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.GeneralName=c.EDIPartyName=c.OtherName=c.AsnIpConverter=void 0;let d=a.r(610199),e=a.r(950383),f=a.r(963545),g=a.r(202500);c.AsnIpConverter={fromASN:a=>f.IpConverter.toString(e.AsnOctetStringConverter.fromASN(a)),toASN:a=>e.AsnOctetStringConverter.toASN(f.IpConverter.fromString(a))};class h{typeId="";value=new ArrayBuffer(0);constructor(a={}){Object.assign(this,a)}}c.OtherName=h,d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.ObjectIdentifier})],h.prototype,"typeId",void 0),d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.Any,context:0})],h.prototype,"value",void 0);class i{nameAssigner;partyName=new g.DirectoryString;constructor(a={}){Object.assign(this,a)}}c.EDIPartyName=i,d.__decorate([(0,e.AsnProp)({type:g.DirectoryString,optional:!0,context:0,implicit:!0})],i.prototype,"nameAssigner",void 0),d.__decorate([(0,e.AsnProp)({type:g.DirectoryString,context:1,implicit:!0})],i.prototype,"partyName",void 0);let j=class{otherName;rfc822Name;dNSName;x400Address;directoryName;ediPartyName;uniformResourceIdentifier;iPAddress;registeredID;constructor(a={}){Object.assign(this,a)}};c.GeneralName=j,d.__decorate([(0,e.AsnProp)({type:h,context:0,implicit:!0})],j.prototype,"otherName",void 0),d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.IA5String,context:1,implicit:!0})],j.prototype,"rfc822Name",void 0),d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.IA5String,context:2,implicit:!0})],j.prototype,"dNSName",void 0),d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.Any,context:3,implicit:!0})],j.prototype,"x400Address",void 0),d.__decorate([(0,e.AsnProp)({type:g.Name,context:4,implicit:!1})],j.prototype,"directoryName",void 0),d.__decorate([(0,e.AsnProp)({type:i,context:5})],j.prototype,"ediPartyName",void 0),d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.IA5String,context:6,implicit:!0})],j.prototype,"uniformResourceIdentifier",void 0),d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.OctetString,context:7,implicit:!0,converter:c.AsnIpConverter})],j.prototype,"iPAddress",void 0),d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.ObjectIdentifier,context:8,implicit:!0})],j.prototype,"registeredID",void 0),c.GeneralName=j=d.__decorate([(0,e.AsnType)({type:e.AsnTypeTypes.Choice})],j)},153602,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.id_ce=c.id_ad_caRepository=c.id_ad_timeStamping=c.id_ad_caIssuers=c.id_ad_ocsp=c.id_qt_unotice=c.id_qt_csp=c.id_ad=c.id_kp=c.id_qt=c.id_pe=c.id_pkix=void 0,c.id_pkix="1.3.6.1.5.5.7",c.id_pe=`${c.id_pkix}.1`,c.id_qt=`${c.id_pkix}.2`,c.id_kp=`${c.id_pkix}.3`,c.id_ad=`${c.id_pkix}.48`,c.id_qt_csp=`${c.id_qt}.1`,c.id_qt_unotice=`${c.id_qt}.2`,c.id_ad_ocsp=`${c.id_ad}.1`,c.id_ad_caIssuers=`${c.id_ad}.2`,c.id_ad_timeStamping=`${c.id_ad}.3`,c.id_ad_caRepository=`${c.id_ad}.5`,c.id_ce="2.5.29"},574055,(a,b,c)=>{"use strict";var d;Object.defineProperty(c,"__esModule",{value:!0}),c.AuthorityInfoAccessSyntax=c.AccessDescription=c.id_pe_authorityInfoAccess=void 0;let e=a.r(610199),f=a.r(950383),g=a.r(952352),h=a.r(153602);c.id_pe_authorityInfoAccess=`${h.id_pe}.1`;class i{accessMethod="";accessLocation=new g.GeneralName;constructor(a={}){Object.assign(this,a)}}c.AccessDescription=i,e.__decorate([(0,f.AsnProp)({type:f.AsnPropTypes.ObjectIdentifier})],i.prototype,"accessMethod",void 0),e.__decorate([(0,f.AsnProp)({type:g.GeneralName})],i.prototype,"accessLocation",void 0);let j=d=class extends f.AsnArray{constructor(a){super(a),Object.setPrototypeOf(this,d.prototype)}};c.AuthorityInfoAccessSyntax=j,c.AuthorityInfoAccessSyntax=j=d=e.__decorate([(0,f.AsnType)({type:f.AsnTypeTypes.Sequence,itemType:i})],j)},612963,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.AuthorityKeyIdentifier=c.KeyIdentifier=c.id_ce_authorityKeyIdentifier=void 0;let d=a.r(610199),e=a.r(950383),f=a.r(952352),g=a.r(153602);c.id_ce_authorityKeyIdentifier=`${g.id_ce}.35`;class h extends e.OctetString{}c.KeyIdentifier=h;class i{keyIdentifier;authorityCertIssuer;authorityCertSerialNumber;constructor(a={}){a&&Object.assign(this,a)}}c.AuthorityKeyIdentifier=i,d.__decorate([(0,e.AsnProp)({type:h,context:0,optional:!0,implicit:!0})],i.prototype,"keyIdentifier",void 0),d.__decorate([(0,e.AsnProp)({type:f.GeneralName,context:1,optional:!0,implicit:!0,repeated:"sequence"})],i.prototype,"authorityCertIssuer",void 0),d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.Integer,context:2,optional:!0,implicit:!0,converter:e.AsnIntegerArrayBufferConverter})],i.prototype,"authorityCertSerialNumber",void 0)},961439,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.BasicConstraints=c.id_ce_basicConstraints=void 0;let d=a.r(610199),e=a.r(950383),f=a.r(153602);c.id_ce_basicConstraints=`${f.id_ce}.19`;class g{cA=!1;pathLenConstraint;constructor(a={}){Object.assign(this,a)}}c.BasicConstraints=g,d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.Boolean,defaultValue:!1})],g.prototype,"cA",void 0),d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.Integer,optional:!0})],g.prototype,"pathLenConstraint",void 0)},843977,(a,b,c)=>{"use strict";var d;Object.defineProperty(c,"__esModule",{value:!0}),c.GeneralNames=void 0;let e=a.r(610199),f=a.r(950383),g=a.r(952352),h=d=class extends f.AsnArray{constructor(a){super(a),Object.setPrototypeOf(this,d.prototype)}};c.GeneralNames=h,c.GeneralNames=h=d=e.__decorate([(0,f.AsnType)({type:f.AsnTypeTypes.Sequence,itemType:g.GeneralName})],h)},943148,(a,b,c)=>{"use strict";var d;Object.defineProperty(c,"__esModule",{value:!0}),c.CertificateIssuer=c.id_ce_certificateIssuer=void 0;let e=a.r(610199),f=a.r(950383),g=a.r(843977),h=a.r(153602);c.id_ce_certificateIssuer=`${h.id_ce}.29`;let i=d=class extends g.GeneralNames{constructor(a){super(a),Object.setPrototypeOf(this,d.prototype)}};c.CertificateIssuer=i,c.CertificateIssuer=i=d=e.__decorate([(0,f.AsnType)({type:f.AsnTypeTypes.Sequence})],i)},550409,(a,b,c)=>{"use strict";var d;Object.defineProperty(c,"__esModule",{value:!0}),c.CertificatePolicies=c.PolicyInformation=c.PolicyQualifierInfo=c.Qualifier=c.UserNotice=c.NoticeReference=c.DisplayText=c.id_ce_certificatePolicies_anyPolicy=c.id_ce_certificatePolicies=void 0;let e=a.r(610199),f=a.r(950383),g=a.r(153602);c.id_ce_certificatePolicies=`${g.id_ce}.32`,c.id_ce_certificatePolicies_anyPolicy=`${c.id_ce_certificatePolicies}.0`;let h=class{ia5String;visibleString;bmpString;utf8String;constructor(a={}){Object.assign(this,a)}toString(){return this.ia5String||this.visibleString||this.bmpString||this.utf8String||""}};c.DisplayText=h,e.__decorate([(0,f.AsnProp)({type:f.AsnPropTypes.IA5String})],h.prototype,"ia5String",void 0),e.__decorate([(0,f.AsnProp)({type:f.AsnPropTypes.VisibleString})],h.prototype,"visibleString",void 0),e.__decorate([(0,f.AsnProp)({type:f.AsnPropTypes.BmpString})],h.prototype,"bmpString",void 0),e.__decorate([(0,f.AsnProp)({type:f.AsnPropTypes.Utf8String})],h.prototype,"utf8String",void 0),c.DisplayText=h=e.__decorate([(0,f.AsnType)({type:f.AsnTypeTypes.Choice})],h);class i{organization=new h;noticeNumbers=[];constructor(a={}){Object.assign(this,a)}}c.NoticeReference=i,e.__decorate([(0,f.AsnProp)({type:h})],i.prototype,"organization",void 0),e.__decorate([(0,f.AsnProp)({type:f.AsnPropTypes.Integer,repeated:"sequence"})],i.prototype,"noticeNumbers",void 0);class j{noticeRef;explicitText;constructor(a={}){Object.assign(this,a)}}c.UserNotice=j,e.__decorate([(0,f.AsnProp)({type:i,optional:!0})],j.prototype,"noticeRef",void 0),e.__decorate([(0,f.AsnProp)({type:h,optional:!0})],j.prototype,"explicitText",void 0);let k=class{cPSuri;userNotice;constructor(a={}){Object.assign(this,a)}};c.Qualifier=k,e.__decorate([(0,f.AsnProp)({type:f.AsnPropTypes.IA5String})],k.prototype,"cPSuri",void 0),e.__decorate([(0,f.AsnProp)({type:j})],k.prototype,"userNotice",void 0),c.Qualifier=k=e.__decorate([(0,f.AsnType)({type:f.AsnTypeTypes.Choice})],k);class l{policyQualifierId="";qualifier=new ArrayBuffer(0);constructor(a={}){Object.assign(this,a)}}c.PolicyQualifierInfo=l,e.__decorate([(0,f.AsnProp)({type:f.AsnPropTypes.ObjectIdentifier})],l.prototype,"policyQualifierId",void 0),e.__decorate([(0,f.AsnProp)({type:f.AsnPropTypes.Any})],l.prototype,"qualifier",void 0);class m{policyIdentifier="";policyQualifiers;constructor(a={}){Object.assign(this,a)}}c.PolicyInformation=m,e.__decorate([(0,f.AsnProp)({type:f.AsnPropTypes.ObjectIdentifier})],m.prototype,"policyIdentifier",void 0),e.__decorate([(0,f.AsnProp)({type:l,repeated:"sequence",optional:!0})],m.prototype,"policyQualifiers",void 0);let n=d=class extends f.AsnArray{constructor(a){super(a),Object.setPrototypeOf(this,d.prototype)}};c.CertificatePolicies=n,c.CertificatePolicies=n=d=e.__decorate([(0,f.AsnType)({type:f.AsnTypeTypes.Sequence,itemType:m})],n)},165526,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.CRLNumber=c.id_ce_cRLNumber=void 0;let d=a.r(610199),e=a.r(950383),f=a.r(153602);c.id_ce_cRLNumber=`${f.id_ce}.20`;let g=class{value;constructor(a=0){this.value=a}};c.CRLNumber=g,d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.Integer})],g.prototype,"value",void 0),c.CRLNumber=g=d.__decorate([(0,e.AsnType)({type:e.AsnTypeTypes.Choice})],g)},547156,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.BaseCRLNumber=c.id_ce_deltaCRLIndicator=void 0;let d=a.r(610199),e=a.r(950383),f=a.r(153602),g=a.r(165526);c.id_ce_deltaCRLIndicator=`${f.id_ce}.27`;let h=class extends g.CRLNumber{};c.BaseCRLNumber=h,c.BaseCRLNumber=h=d.__decorate([(0,e.AsnType)({type:e.AsnTypeTypes.Choice})],h)},466622,(a,b,c)=>{"use strict";var d,e,f;Object.defineProperty(c,"__esModule",{value:!0}),c.CRLDistributionPoints=c.DistributionPoint=c.DistributionPointName=c.Reason=c.ReasonFlags=c.id_ce_cRLDistributionPoints=void 0;let g=a.r(610199),h=a.r(950383),i=a.r(202500),j=a.r(952352),k=a.r(153602);c.id_ce_cRLDistributionPoints=`${k.id_ce}.31`,(f=e||(c.ReasonFlags=e={}))[f.unused=1]="unused",f[f.keyCompromise=2]="keyCompromise",f[f.cACompromise=4]="cACompromise",f[f.affiliationChanged=8]="affiliationChanged",f[f.superseded=16]="superseded",f[f.cessationOfOperation=32]="cessationOfOperation",f[f.certificateHold=64]="certificateHold",f[f.privilegeWithdrawn=128]="privilegeWithdrawn",f[f.aACompromise=256]="aACompromise";class l extends h.BitString{toJSON(){let a=[],b=this.toNumber();return b&e.aACompromise&&a.push("aACompromise"),b&e.affiliationChanged&&a.push("affiliationChanged"),b&e.cACompromise&&a.push("cACompromise"),b&e.certificateHold&&a.push("certificateHold"),b&e.cessationOfOperation&&a.push("cessationOfOperation"),b&e.keyCompromise&&a.push("keyCompromise"),b&e.privilegeWithdrawn&&a.push("privilegeWithdrawn"),b&e.superseded&&a.push("superseded"),b&e.unused&&a.push("unused"),a}toString(){return`[${this.toJSON().join(", ")}]`}}c.Reason=l;let m=class{fullName;nameRelativeToCRLIssuer;constructor(a={}){Object.assign(this,a)}};c.DistributionPointName=m,g.__decorate([(0,h.AsnProp)({type:j.GeneralName,context:0,repeated:"sequence",implicit:!0})],m.prototype,"fullName",void 0),g.__decorate([(0,h.AsnProp)({type:i.RelativeDistinguishedName,context:1,implicit:!0})],m.prototype,"nameRelativeToCRLIssuer",void 0),c.DistributionPointName=m=g.__decorate([(0,h.AsnType)({type:h.AsnTypeTypes.Choice})],m);class n{distributionPoint;reasons;cRLIssuer;constructor(a={}){Object.assign(this,a)}}c.DistributionPoint=n,g.__decorate([(0,h.AsnProp)({type:m,context:0,optional:!0})],n.prototype,"distributionPoint",void 0),g.__decorate([(0,h.AsnProp)({type:l,context:1,optional:!0,implicit:!0})],n.prototype,"reasons",void 0),g.__decorate([(0,h.AsnProp)({type:j.GeneralName,context:2,optional:!0,repeated:"sequence",implicit:!0})],n.prototype,"cRLIssuer",void 0);let o=d=class extends h.AsnArray{constructor(a){super(a),Object.setPrototypeOf(this,d.prototype)}};c.CRLDistributionPoints=o,c.CRLDistributionPoints=o=d=g.__decorate([(0,h.AsnType)({type:h.AsnTypeTypes.Sequence,itemType:n})],o)},249980,(a,b,c)=>{"use strict";var d;Object.defineProperty(c,"__esModule",{value:!0}),c.FreshestCRL=c.id_ce_freshestCRL=void 0;let e=a.r(610199),f=a.r(950383),g=a.r(153602),h=a.r(466622);c.id_ce_freshestCRL=`${g.id_ce}.46`;let i=d=class extends h.CRLDistributionPoints{constructor(a){super(a),Object.setPrototypeOf(this,d.prototype)}};c.FreshestCRL=i,c.FreshestCRL=i=d=e.__decorate([(0,f.AsnType)({type:f.AsnTypeTypes.Sequence,itemType:h.DistributionPoint})],i)},132562,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.IssuingDistributionPoint=c.id_ce_issuingDistributionPoint=void 0;let d=a.r(610199),e=a.r(950383),f=a.r(153602),g=a.r(466622);c.id_ce_issuingDistributionPoint=`${f.id_ce}.28`;class h{static ONLY=!1;distributionPoint;onlyContainsUserCerts=h.ONLY;onlyContainsCACerts=h.ONLY;onlySomeReasons;indirectCRL=h.ONLY;onlyContainsAttributeCerts=h.ONLY;constructor(a={}){Object.assign(this,a)}}c.IssuingDistributionPoint=h,d.__decorate([(0,e.AsnProp)({type:g.DistributionPointName,context:0,optional:!0})],h.prototype,"distributionPoint",void 0),d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.Boolean,context:1,defaultValue:h.ONLY,implicit:!0})],h.prototype,"onlyContainsUserCerts",void 0),d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.Boolean,context:2,defaultValue:h.ONLY,implicit:!0})],h.prototype,"onlyContainsCACerts",void 0),d.__decorate([(0,e.AsnProp)({type:g.Reason,context:3,optional:!0,implicit:!0})],h.prototype,"onlySomeReasons",void 0),d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.Boolean,context:4,defaultValue:h.ONLY,implicit:!0})],h.prototype,"indirectCRL",void 0),d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.Boolean,context:5,defaultValue:h.ONLY,implicit:!0})],h.prototype,"onlyContainsAttributeCerts",void 0)},449018,(a,b,c)=>{"use strict";var d,e;Object.defineProperty(c,"__esModule",{value:!0}),c.CRLReason=c.CRLReasons=c.id_ce_cRLReasons=void 0;let f=a.r(610199),g=a.r(950383),h=a.r(153602);c.id_ce_cRLReasons=`${h.id_ce}.21`,(e=d||(c.CRLReasons=d={}))[e.unspecified=0]="unspecified",e[e.keyCompromise=1]="keyCompromise",e[e.cACompromise=2]="cACompromise",e[e.affiliationChanged=3]="affiliationChanged",e[e.superseded=4]="superseded",e[e.cessationOfOperation=5]="cessationOfOperation",e[e.certificateHold=6]="certificateHold",e[e.removeFromCRL=8]="removeFromCRL",e[e.privilegeWithdrawn=9]="privilegeWithdrawn",e[e.aACompromise=10]="aACompromise";let i=class{reason=d.unspecified;constructor(a=d.unspecified){this.reason=a}toJSON(){return d[this.reason]}toString(){return this.toJSON()}};c.CRLReason=i,f.__decorate([(0,g.AsnProp)({type:g.AsnPropTypes.Enumerated})],i.prototype,"reason",void 0),c.CRLReason=i=f.__decorate([(0,g.AsnType)({type:g.AsnTypeTypes.Choice})],i)},750120,(a,b,c)=>{"use strict";var d;Object.defineProperty(c,"__esModule",{value:!0}),c.id_kp_OCSPSigning=c.id_kp_timeStamping=c.id_kp_emailProtection=c.id_kp_codeSigning=c.id_kp_clientAuth=c.id_kp_serverAuth=c.anyExtendedKeyUsage=c.ExtendedKeyUsage=c.id_ce_extKeyUsage=void 0;let e=a.r(610199),f=a.r(950383),g=a.r(153602);c.id_ce_extKeyUsage=`${g.id_ce}.37`;let h=d=class extends f.AsnArray{constructor(a){super(a),Object.setPrototypeOf(this,d.prototype)}};c.ExtendedKeyUsage=h,c.ExtendedKeyUsage=h=d=e.__decorate([(0,f.AsnType)({type:f.AsnTypeTypes.Sequence,itemType:f.AsnPropTypes.ObjectIdentifier})],h),c.anyExtendedKeyUsage=`${c.id_ce_extKeyUsage}.0`,c.id_kp_serverAuth=`${g.id_kp}.1`,c.id_kp_clientAuth=`${g.id_kp}.2`,c.id_kp_codeSigning=`${g.id_kp}.3`,c.id_kp_emailProtection=`${g.id_kp}.4`,c.id_kp_timeStamping=`${g.id_kp}.8`,c.id_kp_OCSPSigning=`${g.id_kp}.9`},854367,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.InhibitAnyPolicy=c.id_ce_inhibitAnyPolicy=void 0;let d=a.r(610199),e=a.r(950383),f=a.r(153602);c.id_ce_inhibitAnyPolicy=`${f.id_ce}.54`;let g=class{value;constructor(a=new ArrayBuffer(0)){this.value=a}};c.InhibitAnyPolicy=g,d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.Integer,converter:e.AsnIntegerArrayBufferConverter})],g.prototype,"value",void 0),c.InhibitAnyPolicy=g=d.__decorate([(0,e.AsnType)({type:e.AsnTypeTypes.Choice})],g)},791798,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.InvalidityDate=c.id_ce_invalidityDate=void 0;let d=a.r(610199),e=a.r(950383),f=a.r(153602);c.id_ce_invalidityDate=`${f.id_ce}.24`;let g=class{value=new Date;constructor(a){a&&(this.value=a)}};c.InvalidityDate=g,d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.GeneralizedTime})],g.prototype,"value",void 0),c.InvalidityDate=g=d.__decorate([(0,e.AsnType)({type:e.AsnTypeTypes.Choice})],g)},312973,(a,b,c)=>{"use strict";var d;Object.defineProperty(c,"__esModule",{value:!0}),c.IssueAlternativeName=c.id_ce_issuerAltName=void 0;let e=a.r(610199),f=a.r(950383),g=a.r(843977),h=a.r(153602);c.id_ce_issuerAltName=`${h.id_ce}.18`;let i=d=class extends g.GeneralNames{constructor(a){super(a),Object.setPrototypeOf(this,d.prototype)}};c.IssueAlternativeName=i,c.IssueAlternativeName=i=d=e.__decorate([(0,f.AsnType)({type:f.AsnTypeTypes.Sequence})],i)},446423,(a,b,c)=>{"use strict";var d,e;Object.defineProperty(c,"__esModule",{value:!0}),c.KeyUsage=c.KeyUsageFlags=c.id_ce_keyUsage=void 0;let f=a.r(950383),g=a.r(153602);c.id_ce_keyUsage=`${g.id_ce}.15`,(e=d||(c.KeyUsageFlags=d={}))[e.digitalSignature=1]="digitalSignature",e[e.nonRepudiation=2]="nonRepudiation",e[e.keyEncipherment=4]="keyEncipherment",e[e.dataEncipherment=8]="dataEncipherment",e[e.keyAgreement=16]="keyAgreement",e[e.keyCertSign=32]="keyCertSign",e[e.cRLSign=64]="cRLSign",e[e.encipherOnly=128]="encipherOnly",e[e.decipherOnly=256]="decipherOnly";class h extends f.BitString{toJSON(){let a=this.toNumber(),b=[];return a&d.cRLSign&&b.push("crlSign"),a&d.dataEncipherment&&b.push("dataEncipherment"),a&d.decipherOnly&&b.push("decipherOnly"),a&d.digitalSignature&&b.push("digitalSignature"),a&d.encipherOnly&&b.push("encipherOnly"),a&d.keyAgreement&&b.push("keyAgreement"),a&d.keyCertSign&&b.push("keyCertSign"),a&d.keyEncipherment&&b.push("keyEncipherment"),a&d.nonRepudiation&&b.push("nonRepudiation"),b}toString(){return`[${this.toJSON().join(", ")}]`}}c.KeyUsage=h},499778,(a,b,c)=>{"use strict";var d;Object.defineProperty(c,"__esModule",{value:!0}),c.NameConstraints=c.GeneralSubtrees=c.GeneralSubtree=c.id_ce_nameConstraints=void 0;let e=a.r(610199),f=a.r(950383),g=a.r(952352),h=a.r(153602);c.id_ce_nameConstraints=`${h.id_ce}.30`;class i{base=new g.GeneralName;minimum=0;maximum;constructor(a={}){Object.assign(this,a)}}c.GeneralSubtree=i,e.__decorate([(0,f.AsnProp)({type:g.GeneralName})],i.prototype,"base",void 0),e.__decorate([(0,f.AsnProp)({type:f.AsnPropTypes.Integer,context:0,defaultValue:0,implicit:!0})],i.prototype,"minimum",void 0),e.__decorate([(0,f.AsnProp)({type:f.AsnPropTypes.Integer,context:1,optional:!0,implicit:!0})],i.prototype,"maximum",void 0);let j=d=class extends f.AsnArray{constructor(a){super(a),Object.setPrototypeOf(this,d.prototype)}};c.GeneralSubtrees=j,c.GeneralSubtrees=j=d=e.__decorate([(0,f.AsnType)({type:f.AsnTypeTypes.Sequence,itemType:i})],j);class k{permittedSubtrees;excludedSubtrees;constructor(a={}){Object.assign(this,a)}}c.NameConstraints=k,e.__decorate([(0,f.AsnProp)({type:j,context:0,optional:!0,implicit:!0})],k.prototype,"permittedSubtrees",void 0),e.__decorate([(0,f.AsnProp)({type:j,context:1,optional:!0,implicit:!0})],k.prototype,"excludedSubtrees",void 0)},499007,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.PolicyConstraints=c.id_ce_policyConstraints=void 0;let d=a.r(610199),e=a.r(950383),f=a.r(153602);c.id_ce_policyConstraints=`${f.id_ce}.36`;class g{requireExplicitPolicy;inhibitPolicyMapping;constructor(a={}){Object.assign(this,a)}}c.PolicyConstraints=g,d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.Integer,context:0,implicit:!0,optional:!0,converter:e.AsnIntegerArrayBufferConverter})],g.prototype,"requireExplicitPolicy",void 0),d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.Integer,context:1,implicit:!0,optional:!0,converter:e.AsnIntegerArrayBufferConverter})],g.prototype,"inhibitPolicyMapping",void 0)},841943,(a,b,c)=>{"use strict";var d;Object.defineProperty(c,"__esModule",{value:!0}),c.PolicyMappings=c.PolicyMapping=c.id_ce_policyMappings=void 0;let e=a.r(610199),f=a.r(950383),g=a.r(153602);c.id_ce_policyMappings=`${g.id_ce}.33`;class h{issuerDomainPolicy="";subjectDomainPolicy="";constructor(a={}){Object.assign(this,a)}}c.PolicyMapping=h,e.__decorate([(0,f.AsnProp)({type:f.AsnPropTypes.ObjectIdentifier})],h.prototype,"issuerDomainPolicy",void 0),e.__decorate([(0,f.AsnProp)({type:f.AsnPropTypes.ObjectIdentifier})],h.prototype,"subjectDomainPolicy",void 0);let i=d=class extends f.AsnArray{constructor(a){super(a),Object.setPrototypeOf(this,d.prototype)}};c.PolicyMappings=i,c.PolicyMappings=i=d=e.__decorate([(0,f.AsnType)({type:f.AsnTypeTypes.Sequence,itemType:h})],i)},635820,(a,b,c)=>{"use strict";var d;Object.defineProperty(c,"__esModule",{value:!0}),c.SubjectAlternativeName=c.id_ce_subjectAltName=void 0;let e=a.r(610199),f=a.r(950383),g=a.r(843977),h=a.r(153602);c.id_ce_subjectAltName=`${h.id_ce}.17`;let i=d=class extends g.GeneralNames{constructor(a){super(a),Object.setPrototypeOf(this,d.prototype)}};c.SubjectAlternativeName=i,c.SubjectAlternativeName=i=d=e.__decorate([(0,f.AsnType)({type:f.AsnTypeTypes.Sequence})],i)},210754,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.Attribute=void 0;let d=a.r(610199),e=a.r(950383);class f{type="";values=[];constructor(a={}){Object.assign(this,a)}}c.Attribute=f,d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.ObjectIdentifier})],f.prototype,"type",void 0),d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.Any,repeated:"set"})],f.prototype,"values",void 0)},237280,(a,b,c)=>{"use strict";var d;Object.defineProperty(c,"__esModule",{value:!0}),c.SubjectDirectoryAttributes=c.id_ce_subjectDirectoryAttributes=void 0;let e=a.r(610199),f=a.r(950383),g=a.r(210754),h=a.r(153602);c.id_ce_subjectDirectoryAttributes=`${h.id_ce}.9`;let i=d=class extends f.AsnArray{constructor(a){super(a),Object.setPrototypeOf(this,d.prototype)}};c.SubjectDirectoryAttributes=i,c.SubjectDirectoryAttributes=i=d=e.__decorate([(0,f.AsnType)({type:f.AsnTypeTypes.Sequence,itemType:g.Attribute})],i)},297396,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.SubjectKeyIdentifier=c.id_ce_subjectKeyIdentifier=void 0;let d=a.r(153602),e=a.r(612963);c.id_ce_subjectKeyIdentifier=`${d.id_ce}.14`;class f extends e.KeyIdentifier{}c.SubjectKeyIdentifier=f},916393,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.PrivateKeyUsagePeriod=c.id_ce_privateKeyUsagePeriod=void 0;let d=a.r(610199),e=a.r(950383),f=a.r(153602);c.id_ce_privateKeyUsagePeriod=`${f.id_ce}.16`;class g{notBefore;notAfter;constructor(a={}){Object.assign(this,a)}}c.PrivateKeyUsagePeriod=g,d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.GeneralizedTime,context:0,implicit:!0,optional:!0})],g.prototype,"notBefore",void 0),d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.GeneralizedTime,context:1,implicit:!0,optional:!0})],g.prototype,"notAfter",void 0)},589209,(a,b,c)=>{"use strict";var d,e;Object.defineProperty(c,"__esModule",{value:!0}),c.EntrustVersionInfo=c.EntrustInfo=c.EntrustInfoFlags=c.id_entrust_entrustVersInfo=void 0;let f=a.r(610199),g=a.r(950383);c.id_entrust_entrustVersInfo="1.2.840.113533.7.65.0",(e=d||(c.EntrustInfoFlags=d={}))[e.keyUpdateAllowed=1]="keyUpdateAllowed",e[e.newExtensions=2]="newExtensions",e[e.pKIXCertificate=4]="pKIXCertificate";class h extends g.BitString{toJSON(){let a=[],b=this.toNumber();return b&d.pKIXCertificate&&a.push("pKIXCertificate"),b&d.newExtensions&&a.push("newExtensions"),b&d.keyUpdateAllowed&&a.push("keyUpdateAllowed"),a}toString(){return`[${this.toJSON().join(", ")}]`}}c.EntrustInfo=h;class i{entrustVers="";entrustInfoFlags=new h;constructor(a={}){Object.assign(this,a)}}c.EntrustVersionInfo=i,f.__decorate([(0,g.AsnProp)({type:g.AsnPropTypes.GeneralString})],i.prototype,"entrustVers",void 0),f.__decorate([(0,g.AsnProp)({type:h})],i.prototype,"entrustInfoFlags",void 0)},820624,(a,b,c)=>{"use strict";var d;Object.defineProperty(c,"__esModule",{value:!0}),c.SubjectInfoAccessSyntax=c.id_pe_subjectInfoAccess=void 0;let e=a.r(610199),f=a.r(950383),g=a.r(153602),h=a.r(574055);c.id_pe_subjectInfoAccess=`${g.id_pe}.11`;let i=d=class extends f.AsnArray{constructor(a){super(a),Object.setPrototypeOf(this,d.prototype)}};c.SubjectInfoAccessSyntax=i,c.SubjectInfoAccessSyntax=i=d=e.__decorate([(0,f.AsnType)({type:f.AsnTypeTypes.Sequence,itemType:h.AccessDescription})],i)},738079,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});let d=a.r(610199);d.__exportStar(a.r(574055),c),d.__exportStar(a.r(612963),c),d.__exportStar(a.r(961439),c),d.__exportStar(a.r(943148),c),d.__exportStar(a.r(550409),c),d.__exportStar(a.r(547156),c),d.__exportStar(a.r(466622),c),d.__exportStar(a.r(249980),c),d.__exportStar(a.r(132562),c),d.__exportStar(a.r(165526),c),d.__exportStar(a.r(449018),c),d.__exportStar(a.r(750120),c),d.__exportStar(a.r(854367),c),d.__exportStar(a.r(791798),c),d.__exportStar(a.r(312973),c),d.__exportStar(a.r(446423),c),d.__exportStar(a.r(499778),c),d.__exportStar(a.r(499007),c),d.__exportStar(a.r(841943),c),d.__exportStar(a.r(635820),c),d.__exportStar(a.r(237280),c),d.__exportStar(a.r(297396),c),d.__exportStar(a.r(916393),c),d.__exportStar(a.r(589209),c),d.__exportStar(a.r(820624),c)},941853,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.AlgorithmIdentifier=void 0;let d=a.r(610199),e=a.r(950383),f=a.r(315902);class g{algorithm="";parameters;constructor(a={}){Object.assign(this,a)}isEqual(a){return a instanceof g&&a.algorithm==this.algorithm&&(a.parameters&&this.parameters&&(0,f.equal)(a.parameters,this.parameters)||a.parameters===this.parameters)}}c.AlgorithmIdentifier=g,d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.ObjectIdentifier})],g.prototype,"algorithm",void 0),d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.Any,optional:!0})],g.prototype,"parameters",void 0)},83632,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.SubjectPublicKeyInfo=void 0;let d=a.r(610199),e=a.r(950383),f=a.r(941853);class g{algorithm=new f.AlgorithmIdentifier;subjectPublicKey=new ArrayBuffer(0);constructor(a={}){Object.assign(this,a)}}c.SubjectPublicKeyInfo=g,d.__decorate([(0,e.AsnProp)({type:f.AlgorithmIdentifier})],g.prototype,"algorithm",void 0),d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.BitString})],g.prototype,"subjectPublicKey",void 0)},445222,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.Time=void 0;let d=a.r(610199),e=a.r(950383),f=class{utcTime;generalTime;constructor(a){if(a)if("string"==typeof a||"number"==typeof a||a instanceof Date){const b=new Date(a);b.setMilliseconds(0),b.getUTCFullYear()>2049?this.generalTime=b:this.utcTime=b}else Object.assign(this,a)}getTime(){let a=this.utcTime||this.generalTime;if(!a)throw Error("Cannot get time from CHOICE object");return a}};c.Time=f,d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.UTCTime})],f.prototype,"utcTime",void 0),d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.GeneralizedTime})],f.prototype,"generalTime",void 0),c.Time=f=d.__decorate([(0,e.AsnType)({type:e.AsnTypeTypes.Choice})],f)},520091,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.Validity=void 0;let d=a.r(610199),e=a.r(950383),f=a.r(445222);class g{notBefore=new f.Time(new Date);notAfter=new f.Time(new Date);constructor(a){a&&(this.notBefore=new f.Time(a.notBefore),this.notAfter=new f.Time(a.notAfter))}}c.Validity=g,d.__decorate([(0,e.AsnProp)({type:f.Time})],g.prototype,"notBefore",void 0),d.__decorate([(0,e.AsnProp)({type:f.Time})],g.prototype,"notAfter",void 0)},958332,(a,b,c)=>{"use strict";var d;Object.defineProperty(c,"__esModule",{value:!0}),c.Extensions=c.Extension=void 0;let e=a.r(610199),f=a.r(950383);class g{static CRITICAL=!1;extnID="";critical=g.CRITICAL;extnValue=new f.OctetString;constructor(a={}){Object.assign(this,a)}}c.Extension=g,e.__decorate([(0,f.AsnProp)({type:f.AsnPropTypes.ObjectIdentifier})],g.prototype,"extnID",void 0),e.__decorate([(0,f.AsnProp)({type:f.AsnPropTypes.Boolean,defaultValue:g.CRITICAL})],g.prototype,"critical",void 0),e.__decorate([(0,f.AsnProp)({type:f.OctetString})],g.prototype,"extnValue",void 0);let h=d=class extends f.AsnArray{constructor(a){super(a),Object.setPrototypeOf(this,d.prototype)}};c.Extensions=h,c.Extensions=h=d=e.__decorate([(0,f.AsnType)({type:f.AsnTypeTypes.Sequence,itemType:g})],h)},35761,(a,b,c)=>{"use strict";var d,e;Object.defineProperty(c,"__esModule",{value:!0}),c.Version=void 0,(e=d||(c.Version=d={}))[e.v1=0]="v1",e[e.v2=1]="v2",e[e.v3=2]="v3"},160227,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.TBSCertificate=void 0;let d=a.r(610199),e=a.r(950383),f=a.r(941853),g=a.r(202500),h=a.r(83632),i=a.r(520091),j=a.r(958332),k=a.r(35761);class l{version=k.Version.v1;serialNumber=new ArrayBuffer(0);signature=new f.AlgorithmIdentifier;issuer=new g.Name;validity=new i.Validity;subject=new g.Name;subjectPublicKeyInfo=new h.SubjectPublicKeyInfo;issuerUniqueID;subjectUniqueID;extensions;constructor(a={}){Object.assign(this,a)}}c.TBSCertificate=l,d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.Integer,context:0,defaultValue:k.Version.v1})],l.prototype,"version",void 0),d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.Integer,converter:e.AsnIntegerArrayBufferConverter})],l.prototype,"serialNumber",void 0),d.__decorate([(0,e.AsnProp)({type:f.AlgorithmIdentifier})],l.prototype,"signature",void 0),d.__decorate([(0,e.AsnProp)({type:g.Name})],l.prototype,"issuer",void 0),d.__decorate([(0,e.AsnProp)({type:i.Validity})],l.prototype,"validity",void 0),d.__decorate([(0,e.AsnProp)({type:g.Name})],l.prototype,"subject",void 0),d.__decorate([(0,e.AsnProp)({type:h.SubjectPublicKeyInfo})],l.prototype,"subjectPublicKeyInfo",void 0),d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.BitString,context:1,implicit:!0,optional:!0})],l.prototype,"issuerUniqueID",void 0),d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.BitString,context:2,implicit:!0,optional:!0})],l.prototype,"subjectUniqueID",void 0),d.__decorate([(0,e.AsnProp)({type:j.Extensions,context:3,optional:!0})],l.prototype,"extensions",void 0)},445425,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.Certificate=void 0;let d=a.r(610199),e=a.r(950383),f=a.r(941853),g=a.r(160227);class h{tbsCertificate=new g.TBSCertificate;tbsCertificateRaw;signatureAlgorithm=new f.AlgorithmIdentifier;signatureValue=new ArrayBuffer(0);constructor(a={}){Object.assign(this,a)}}c.Certificate=h,d.__decorate([(0,e.AsnProp)({type:g.TBSCertificate,raw:!0})],h.prototype,"tbsCertificate",void 0),d.__decorate([(0,e.AsnProp)({type:f.AlgorithmIdentifier})],h.prototype,"signatureAlgorithm",void 0),d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.BitString})],h.prototype,"signatureValue",void 0)},773208,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.TBSCertList=c.RevokedCertificate=void 0;let d=a.r(610199),e=a.r(950383),f=a.r(941853),g=a.r(202500),h=a.r(445222),i=a.r(958332);class j{userCertificate=new ArrayBuffer(0);revocationDate=new h.Time;crlEntryExtensions;constructor(a={}){Object.assign(this,a)}}c.RevokedCertificate=j,d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.Integer,converter:e.AsnIntegerArrayBufferConverter})],j.prototype,"userCertificate",void 0),d.__decorate([(0,e.AsnProp)({type:h.Time})],j.prototype,"revocationDate",void 0),d.__decorate([(0,e.AsnProp)({type:i.Extension,optional:!0,repeated:"sequence"})],j.prototype,"crlEntryExtensions",void 0);class k{version;signature=new f.AlgorithmIdentifier;issuer=new g.Name;thisUpdate=new h.Time;nextUpdate;revokedCertificates;crlExtensions;constructor(a={}){Object.assign(this,a)}}c.TBSCertList=k,d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.Integer,optional:!0})],k.prototype,"version",void 0),d.__decorate([(0,e.AsnProp)({type:f.AlgorithmIdentifier})],k.prototype,"signature",void 0),d.__decorate([(0,e.AsnProp)({type:g.Name})],k.prototype,"issuer",void 0),d.__decorate([(0,e.AsnProp)({type:h.Time})],k.prototype,"thisUpdate",void 0),d.__decorate([(0,e.AsnProp)({type:h.Time,optional:!0})],k.prototype,"nextUpdate",void 0),d.__decorate([(0,e.AsnProp)({type:j,repeated:"sequence",optional:!0})],k.prototype,"revokedCertificates",void 0),d.__decorate([(0,e.AsnProp)({type:i.Extension,optional:!0,context:0,repeated:"sequence"})],k.prototype,"crlExtensions",void 0)},452291,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.CertificateList=void 0;let d=a.r(610199),e=a.r(950383),f=a.r(941853),g=a.r(773208);class h{tbsCertList=new g.TBSCertList;tbsCertListRaw;signatureAlgorithm=new f.AlgorithmIdentifier;signature=new ArrayBuffer(0);constructor(a={}){Object.assign(this,a)}}c.CertificateList=h,d.__decorate([(0,e.AsnProp)({type:g.TBSCertList,raw:!0})],h.prototype,"tbsCertList",void 0),d.__decorate([(0,e.AsnProp)({type:f.AlgorithmIdentifier})],h.prototype,"signatureAlgorithm",void 0),d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.BitString})],h.prototype,"signature",void 0)},870745,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});let d=a.r(610199);d.__exportStar(a.r(738079),c),d.__exportStar(a.r(941853),c),d.__exportStar(a.r(210754),c),d.__exportStar(a.r(445425),c),d.__exportStar(a.r(452291),c),d.__exportStar(a.r(958332),c),d.__exportStar(a.r(952352),c),d.__exportStar(a.r(843977),c),d.__exportStar(a.r(202500),c),d.__exportStar(a.r(153602),c),d.__exportStar(a.r(83632),c),d.__exportStar(a.r(773208),c),d.__exportStar(a.r(160227),c),d.__exportStar(a.r(445222),c),d.__exportStar(a.r(35761),c),d.__exportStar(a.r(520091),c)},666514,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.HashAlgAndValue=void 0;let d=a.r(610199),e=a.r(950383),f=a.r(870745);class g{hashAlg=new f.AlgorithmIdentifier;hashValue=new e.OctetString;constructor(a={}){Object.assign(this,a)}}c.HashAlgAndValue=g,d.__decorate([(0,e.AsnProp)({type:f.AlgorithmIdentifier})],g.prototype,"hashAlg",void 0),d.__decorate([(0,e.AsnProp)({type:e.OctetString})],g.prototype,"hashValue",void 0)},129939,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.LogotypeDetails=void 0;let d=a.r(610199),e=a.r(950383),f=a.r(666514);class g{mediaType="";logotypeHash=[];logotypeURI=[];constructor(a={}){Object.assign(this,a)}}c.LogotypeDetails=g,d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.IA5String})],g.prototype,"mediaType",void 0),d.__decorate([(0,e.AsnProp)({type:f.HashAlgAndValue,repeated:"sequence"})],g.prototype,"logotypeHash",void 0),d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.IA5String,repeated:"sequence"})],g.prototype,"logotypeURI",void 0)},796859,(a,b,c)=>{"use strict";var d,e;Object.defineProperty(c,"__esModule",{value:!0}),c.LogotypeAudioInfo=c.LogotypeAudioChannels=void 0;let f=a.r(610199),g=a.r(950383);(e=d||(c.LogotypeAudioChannels=d={}))[e.mono=1]="mono",e[e.stereo=2]="stereo",e[e.quad=4]="quad";class h{fileSize=0;playTime=0;channels=d.mono;sampleRate;language;constructor(a={}){Object.assign(this,a)}}c.LogotypeAudioInfo=h,f.__decorate([(0,g.AsnProp)({type:g.AsnPropTypes.Integer})],h.prototype,"fileSize",void 0),f.__decorate([(0,g.AsnProp)({type:g.AsnPropTypes.Integer})],h.prototype,"playTime",void 0),f.__decorate([(0,g.AsnProp)({type:g.AsnPropTypes.Integer})],h.prototype,"channels",void 0),f.__decorate([(0,g.AsnProp)({type:g.AsnPropTypes.Integer,implicit:!0,context:3,optional:!0})],h.prototype,"sampleRate",void 0),f.__decorate([(0,g.AsnProp)({type:g.AsnPropTypes.IA5String,implicit:!0,context:4,optional:!0})],h.prototype,"language",void 0)},521876,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.LogotypeAudio=void 0;let d=a.r(610199),e=a.r(950383),f=a.r(129939),g=a.r(796859);class h{audioDetails=new f.LogotypeDetails;audioInfo;constructor(a={}){Object.assign(this,a)}}c.LogotypeAudio=h,d.__decorate([(0,e.AsnProp)({type:f.LogotypeDetails})],h.prototype,"audioDetails",void 0),d.__decorate([(0,e.AsnProp)({type:g.LogotypeAudioInfo,optional:!0})],h.prototype,"audioInfo",void 0)},422983,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.LogotypeImageResolution=void 0;let d=a.r(610199),e=a.r(950383),f=class{numBits;tableSize;constructor(a={}){Object.assign(this,a)}};c.LogotypeImageResolution=f,d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.Integer,context:1,implicit:!0})],f.prototype,"numBits",void 0),d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.Integer,context:2,implicit:!0})],f.prototype,"tableSize",void 0),c.LogotypeImageResolution=f=d.__decorate([(0,e.AsnType)({type:e.AsnTypeTypes.Choice})],f)},254307,(a,b,c)=>{"use strict";var d,e;Object.defineProperty(c,"__esModule",{value:!0}),c.LogotypeImageInfo=c.LogotypeImageType=void 0;let f=a.r(610199),g=a.r(950383),h=a.r(422983);(e=d||(c.LogotypeImageType=d={}))[e.grayScale=0]="grayScale",e[e.color=1]="color";class i{type=d.color;fileSize=0;xSize=0;ySize=0;resolution;language;constructor(a={}){Object.assign(this,a)}}c.LogotypeImageInfo=i,f.__decorate([(0,g.AsnProp)({type:g.AsnPropTypes.Integer,context:0,implicit:!0,defaultValue:d.color})],i.prototype,"type",void 0),f.__decorate([(0,g.AsnProp)({type:g.AsnPropTypes.Integer})],i.prototype,"fileSize",void 0),f.__decorate([(0,g.AsnProp)({type:g.AsnPropTypes.Integer})],i.prototype,"xSize",void 0),f.__decorate([(0,g.AsnProp)({type:g.AsnPropTypes.Integer})],i.prototype,"ySize",void 0),f.__decorate([(0,g.AsnProp)({type:h.LogotypeImageResolution})],i.prototype,"resolution",void 0),f.__decorate([(0,g.AsnProp)({type:g.AsnPropTypes.IA5String,context:4,implicit:!0,optional:!0})],i.prototype,"language",void 0)},443344,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.LogotypeImage=void 0;let d=a.r(610199),e=a.r(950383),f=a.r(129939),g=a.r(254307);class h{imageDetails=new f.LogotypeDetails;imageInfo;constructor(a={}){Object.assign(this,a)}}c.LogotypeImage=h,d.__decorate([(0,e.AsnProp)({type:f.LogotypeDetails})],h.prototype,"imageDetails",void 0),d.__decorate([(0,e.AsnProp)({type:g.LogotypeImageInfo,optional:!0})],h.prototype,"imageInfo",void 0)},594679,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.LogotypeData=void 0;let d=a.r(610199),e=a.r(950383),f=a.r(521876),g=a.r(443344);class h{image;audio;constructor(a={}){Object.assign(this,a)}}c.LogotypeData=h,d.__decorate([(0,e.AsnProp)({type:g.LogotypeImage,repeated:"sequence",optional:!0})],h.prototype,"image",void 0),d.__decorate([(0,e.AsnProp)({type:f.LogotypeAudio,repeated:"sequence",context:1,optional:!0})],h.prototype,"audio",void 0)},865064,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.LogotypeReference=void 0;let d=a.r(610199),e=a.r(950383),f=a.r(666514);class g{refStructHash=[];refStructURI=[];constructor(a={}){Object.assign(this,a)}}c.LogotypeReference=g,d.__decorate([(0,e.AsnProp)({type:f.HashAlgAndValue,repeated:"sequence"})],g.prototype,"refStructHash",void 0),d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.IA5String,repeated:"sequence"})],g.prototype,"refStructURI",void 0)},691164,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.LogotypeInfo=void 0;let d=a.r(610199),e=a.r(950383),f=a.r(594679),g=a.r(865064),h=class{direct;indirect;constructor(a={}){Object.assign(this,a)}};c.LogotypeInfo=h,d.__decorate([(0,e.AsnProp)({type:f.LogotypeData,implicit:!0,context:0})],h.prototype,"direct",void 0),d.__decorate([(0,e.AsnProp)({type:g.LogotypeReference,implicit:!0,context:1})],h.prototype,"indirect",void 0),c.LogotypeInfo=h=d.__decorate([(0,e.AsnType)({type:e.AsnTypeTypes.Choice})],h)},762429,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.OtherLogotypeInfo=void 0;let d=a.r(610199),e=a.r(950383),f=a.r(691164);class g{logotypeType="";info=new f.LogotypeInfo;constructor(a={}){Object.assign(this,a)}}c.OtherLogotypeInfo=g,d.__decorate([(0,e.AsnProp)({type:e.AsnPropTypes.ObjectIdentifier})],g.prototype,"logotypeType",void 0),d.__decorate([(0,e.AsnProp)({type:f.LogotypeInfo})],g.prototype,"info",void 0)},646122,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.LogotypeExtn=void 0;let d=a.r(610199),e=a.r(950383),f=a.r(691164),g=a.r(762429);class h{communityLogos;issuerLogo;subjectLogo;otherLogos;constructor(a={}){Object.assign(this,a)}}c.LogotypeExtn=h,d.__decorate([(0,e.AsnProp)({type:f.LogotypeInfo,context:0,repeated:"sequence",optional:!0})],h.prototype,"communityLogos",void 0),d.__decorate([(0,e.AsnProp)({type:f.LogotypeInfo,context:1,optional:!0})],h.prototype,"issuerLogo",void 0),d.__decorate([(0,e.AsnProp)({type:f.LogotypeInfo,context:2,optional:!0})],h.prototype,"subjectLogo",void 0),d.__decorate([(0,e.AsnProp)({type:g.OtherLogotypeInfo,context:3,repeated:"sequence",optional:!0})],h.prototype,"otherLogos",void 0)},201005,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.id_logo_certImage=c.id_logo_background=c.id_logo_loyalty=c.id_logo=c.id_pe_logotype=void 0;let d=a.r(870745);c.id_pe_logotype="1.3.6.1.5.5.7.1.12",c.id_logo=`${d.id_pkix}.20`,c.id_logo_loyalty=`${c.id_logo}.1`,c.id_logo_background=`${c.id_logo}.2`,c.id_logo_certImage=`${c.id_logo}.3`},781146,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});let d=a.r(610199);d.__exportStar(a.r(666514),c),d.__exportStar(a.r(521876),c),d.__exportStar(a.r(796859),c),d.__exportStar(a.r(594679),c),d.__exportStar(a.r(129939),c),d.__exportStar(a.r(646122),c),d.__exportStar(a.r(443344),c),d.__exportStar(a.r(254307),c),d.__exportStar(a.r(422983),c),d.__exportStar(a.r(691164),c),d.__exportStar(a.r(865064),c),d.__exportStar(a.r(201005),c),d.__exportStar(a.r(762429),c)},285815,(a,b,c)=>{"use strict";let d=a.r(254799),e=a.r(406461),{promisify:f}=a.r(224361),{AsnParser:g}=a.r(950383),{LogotypeExtn:h}=a.r(781146),{Certificate:i}=a.r(870745),j=f(e.gunzip),k={"1.3.14.3.2.26":"sha1","2.16.840.1.101.3.4.2.4":"sha224","2.16.840.1.101.3.4.2.1":"sha256","2.16.840.1.101.3.4.2.2":"sha384","2.16.840.1.101.3.4.2.3":"sha512","2.16.840.1.101.3.4.2.5":"sha512-224","2.16.840.1.101.3.4.2.6":"sha512-256"};async function l(a){let b=a.logotypeURI?.[0];if(!b)return;let{content:c,base64:d}=function(a){if(!a.startsWith("data:"))return{};let b=a.indexOf(",");if(b<0)return{};let c=a.substring(5,b),d=a.substring(b+1),e=c.split(";");return{header:c,content:d,mediaType:e.shift()||"",base64:"base64"===e.shift()}}(b);if(c)return j(d?Buffer.from(c,"base64"):c)}b.exports={parseVMC:async function(a){let b=g.parse(a,i).tbsCertificate.extensions.find(a=>"1.3.6.1.5.5.7.1.12"===a.extnID);if(!b?.extnValue){let a=Error("Invalid or missing logotype extension in the certificate");throw a.code="INVALID_LOGOTYPE_EXT",a}let c=g.parse(b.extnValue,h),e=c.subjectLogo?.direct?.image?.[0]?.imageDetails;if(!e){let a=Error("Invalid or missing logotype extension in the certificate");throw a.code="INVALID_LOGOTYPE_EXT",a}let{hashAlgo:f,hashValue:j}=function(a){let b=a.logotypeHash?.[0];if(!b)return{hashAlgo:void 0,hashValue:void 0};let c=b.hashAlg?.algorithm;return{hashAlgo:c?k[c]:void 0,hashValue:b.hashValue?.buffer?Buffer.from(b.hashValue.buffer):void 0}}(e),m=await l(e),n=function(a,b,c){if(a&&b&&c)try{let e=d.createHash(b);return c.equals(e.update(a).digest())}catch{return}}(m,f,j);return{mediaType:e.mediaType,hashAlgo:f,hashValue:j,logoFile:m,validHash:n}}}},704691,(a,b,c)=>{"use strict";let{getDateString:d,parseSubject:e}=a.r(722331);b.exports={certInfo:function(a){return{subject:e(a.subject),subjectAltName:(a.subjectAltName||"").split(/^DNS:|,\s*DNS:/g).map(a=>a.trim()).filter(Boolean),fingerprint:a.fingerprint,serialNumber:a.serialNumber,validFrom:d(a.validFrom),validTo:d(a.validTo),issuer:e(a.issuer)}}}},540348,(a,b,c)=>{"use strict";let{RootStore:d}=a.r(948103),{getCerts:e}=a.r(722331),{validatedChain:f}=a.r(111801),{parseVMC:g}=a.r(285815),{certInfo:h}=a.r(704691),i=d.create(),j=new Set(["Prior Use Mark","Modified Registered Mark"]);function k(a,b){let c=Error(a);return c.code=b,c}b.exports={vmc:async function(a,b={}){var c;let d=b.rootStore||i,l=b.now,m=e(a);if(!m)throw k("Empty or missing certificate bundle","INVALID_CERT_BUNDLE");let n=f(m,d,l);if(!n)throw k("Empty or missing certificate chain","INVALID_CHAIN");let o=await g(n[0].cert.raw),p=h(n[0].cert);return c=p?.subject?.markType,o.type=j.has(c)?"CMC":"VMC",o.certificate=p,o.hashValue=o.hashValue?.toString("hex"),o.logoFile=o.logoFile?.toString("base64"),o},RootStore:d}},147174,(a,b,c)=>{(()=>{"use strict";let a;var c={d:(a,b)=>{for(var d in b)c.o(b,d)&&!c.o(a,d)&&Object.defineProperty(a,d,{enumerable:!0,get:b[d]})},o:(a,b)=>Object.prototype.hasOwnProperty.call(a,b),r:a=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(a,"__esModule",{value:!0})}},d={};c.r(d),c.d(d,{XMLBuilder:()=>a_,XMLParser:()=>aH,XMLValidator:()=>a0});let e=":A-Za-z_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD",f=RegExp("^["+e+"]["+e+"\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"),g=function(a){return null!=f.exec(a)},h=["hasOwnProperty","toString","valueOf","__defineGetter__","__defineSetter__","__lookupGetter__","__lookupSetter__"],i=["__proto__","constructor","prototype"],j={allowBooleanAttributes:!1,unpairedTags:[]};function k(a,b){b=Object.assign({},j,b);let c=[],d=!1,e=!1;"\uFEFF"===a[0]&&(a=a.substr(1));for(let f=0;f<a.length;f++)if("<"===a[f]&&"?"===a[f+1]){if(f+=2,(f=m(a,f)).err)return f}else{if("<"!==a[f]){if(l(a[f]))continue;return p("InvalidChar","char '"+a[f]+"' is not expected.",q(a,f))}{let h=f;if("!"===a[++f]){f=n(a,f);continue}{let i=!1;"/"===a[f]&&(i=!0,f++);let j="";for(;f<a.length&&">"!==a[f]&&" "!==a[f]&&" "!==a[f]&&"\n"!==a[f]&&"\r"!==a[f];f++)j+=a[f];if("/"===(j=j.trim())[j.length-1]&&(j=j.substring(0,j.length-1),f--),!g(j))return p("InvalidTag",0===j.trim().length?"Invalid space after '<'.":"Tag '"+j+"' is an invalid name.",q(a,f));let k=function(a,b){let c="",d="",e=!1;for(;b<a.length;b++){if('"'===a[b]||"'"===a[b])""===d?d=a[b]:d!==a[b]||(d="");else if(">"===a[b]&&""===d){e=!0;break}c+=a[b]}return""===d&&{value:c,index:b,tagClosed:e}}(a,f);if(!1===k)return p("InvalidAttr","Attributes for '"+j+"' have open quote.",q(a,f));let r=k.value;if(f=k.index,"/"===r[r.length-1]){let c=f-r.length,e=o(r=r.substring(0,r.length-1),b);if(!0!==e)return p(e.err.code,e.err.msg,q(a,c+e.err.line));d=!0}else if(i){if(!k.tagClosed)return p("InvalidTag","Closing tag '"+j+"' doesn't have proper closing.",q(a,f));if(r.trim().length>0)return p("InvalidTag","Closing tag '"+j+"' can't have attributes or invalid starting.",q(a,h));if(0===c.length)return p("InvalidTag","Closing tag '"+j+"' has not been opened.",q(a,h));{let b=c.pop();if(j!==b.tagName){let c=q(a,b.tagStartPos);return p("InvalidTag","Expected closing tag '"+b.tagName+"' (opened in line "+c.line+", col "+c.col+") instead of closing tag '"+j+"'.",q(a,h))}0==c.length&&(e=!0)}}else{let g=o(r,b);if(!0!==g)return p(g.err.code,g.err.msg,q(a,f-r.length+g.err.line));if(!0===e)return p("InvalidXml","Multiple possible root nodes found.",q(a,f));-1!==b.unpairedTags.indexOf(j)||c.push({tagName:j,tagStartPos:h}),d=!0}for(f++;f<a.length;f++)if("<"===a[f]){if("!"===a[f+1]){f=n(a,++f);continue}if("?"!==a[f+1])break;if((f=m(a,++f)).err)return f}else if("&"===a[f]){let b=function(a,b){if(";"===a[++b])return -1;if("#"===a[b]){var c=++b;let d=/\d/;for("x"===a[c]&&(c++,d=/[\da-fA-F]/);c<a.length;c++){if(";"===a[c])return c;if(!a[c].match(d))break}return -1}let d=0;for(;b<a.length;b++,d++)if(!(a[b].match(/\w/)&&d<20)){if(";"===a[b])break;return -1}return b}(a,f);if(-1==b)return p("InvalidChar","char '&' is not expected.",q(a,f));f=b}else if(!0===e&&!l(a[f]))return p("InvalidXml","Extra text at the end",q(a,f));"<"===a[f]&&f--}}}return d?1==c.length?p("InvalidTag","Unclosed tag '"+c[0].tagName+"'.",q(a,c[0].tagStartPos)):!(c.length>0)||p("InvalidXml","Invalid '"+JSON.stringify(c.map(a=>a.tagName),null,4).replace(/\r?\n/g,"")+"' found.",{line:1,col:1}):p("InvalidXml","Start tag expected.",1)}function l(a){return" "===a||" "===a||"\n"===a||"\r"===a}function m(a,b){let c=b;for(;b<a.length;b++)if("?"==a[b]||" "==a[b]){let d=a.substr(c,b-c);if(b>5&&"xml"===d)return p("InvalidXml","XML declaration allowed only at the start of the document.",q(a,b));if("?"==a[b]&&">"==a[b+1]){b++;break}continue}return b}function n(a,b){if(a.length>b+5&&"-"===a[b+1]&&"-"===a[b+2]){for(b+=3;b<a.length;b++)if("-"===a[b]&&"-"===a[b+1]&&">"===a[b+2]){b+=2;break}}else if(a.length>b+8&&"D"===a[b+1]&&"O"===a[b+2]&&"C"===a[b+3]&&"T"===a[b+4]&&"Y"===a[b+5]&&"P"===a[b+6]&&"E"===a[b+7]){let c=1;for(b+=8;b<a.length;b++)if("<"===a[b])c++;else if(">"===a[b]&&0==--c)break}else if(a.length>b+9&&"["===a[b+1]&&"C"===a[b+2]&&"D"===a[b+3]&&"A"===a[b+4]&&"T"===a[b+5]&&"A"===a[b+6]&&"["===a[b+7]){for(b+=8;b<a.length;b++)if("]"===a[b]&&"]"===a[b+1]&&">"===a[b+2]){b+=2;break}}return b}function o(a,b){let c=function(a){let b=[],c=a.length,d=0;for(;d<c;){let e=d;for(;d<c&&l(a[d]);)d++;if(d>=c)break;if("="===a[d]){d=e+1;continue}let f=a.slice(e,d),g=d;for(;d<c&&!l(a[d])&&"="!==a[d];)d++;let h=a.slice(g,d),i,j,k,m=d;for(;m<c&&l(a[m]);)m++;m<c&&"="===a[m]&&(i=a.slice(d,m+1),d=m+1);let n=d;for(;n<c&&l(a[n]);)n++;if(n<c&&('"'===a[n]||"'"===a[n])){let b=n+1,c=a.indexOf(a[n],b);-1!==c&&(j=a[n],k=a.slice(b,c),d=c+1)}let o={startIndex:e};o[1]=f,o[2]=h,o[3]=i,o[4]=void 0!==j||void 0,o[5]=j,o[6]=k,b.push(o)}return b}(a),d={};for(let a=0;a<c.length;a++){if(0===c[a][1].length)return p("InvalidAttr","Attribute '"+c[a][2]+"' has no space in starting.",r(c[a]));if(void 0!==c[a][3]&&void 0===c[a][4])return p("InvalidAttr","Attribute '"+c[a][2]+"' is without value.",r(c[a]));if(void 0===c[a][3]&&!b.allowBooleanAttributes)return p("InvalidAttr","boolean attribute '"+c[a][2]+"' is not allowed.",r(c[a]));let e=c[a][2];if(!g(e))return p("InvalidAttr","Attribute '"+e+"' is an invalid name.",r(c[a]));if(Object.prototype.hasOwnProperty.call(d,e))return p("InvalidAttr","Attribute '"+e+"' is repeated.",r(c[a]));d[e]=1}return!0}function p(a,b,c){return{err:{code:a,msg:b,line:c.line||c,col:c.col}}}function q(a,b){let c=a.substring(0,b).split(/\r?\n/);return{line:c.length,col:c[c.length-1].length+1}}function r(a){return a.startIndex+a[1].length}let s=a=>h.includes(a)?"__"+a:a,t={preserveOrder:!1,attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,removeNSPrefix:!1,allowBooleanAttributes:!1,parseTagValue:!0,parseAttributeValue:!1,trimValues:!0,cdataPropName:!1,numberParseOptions:{hex:!0,leadingZeros:!0,eNotation:!0,unicode:!1},tagValueProcessor:function(a,b){return b},attributeValueProcessor:function(a,b){return b},stopNodes:[],alwaysCreateTextNode:!1,isArray:()=>!1,commentPropName:!1,unpairedTags:[],processEntities:!0,htmlEntities:!1,entityDecoder:null,ignoreDeclaration:!1,ignorePiTags:!1,transformTagName:!1,transformAttributeName:!1,updateTag:function(a,b,c){return a},captureMetaData:!1,maxNestedTags:100,strictReservedNames:!0,jPath:!0,onDangerousProperty:s},u=function(a){let b=Object.assign({},t,a);for(let{value:a,name:c}of[{value:b.attributeNamePrefix,name:"attributeNamePrefix"},{value:b.attributesGroupName,name:"attributesGroupName"},{value:b.textNodeName,name:"textNodeName"},{value:b.cdataPropName,name:"cdataPropName"},{value:b.commentPropName,name:"commentPropName"}])a&&function(a,b){if("string"!=typeof a)return;let c=a.toLowerCase();if(h.some(a=>c===a.toLowerCase())||i.some(a=>c===a.toLowerCase()))throw Error(`[SECURITY] Invalid ${b}: "${a}" is a reserved JavaScript keyword that could cause prototype pollution`)}(a,c);return null===b.onDangerousProperty&&(b.onDangerousProperty=s),b.processEntities=function a(b,c){return"boolean"==typeof b?{enabled:b,maxEntitySize:1e4,maxExpansionDepth:1e4,maxTotalExpansions:1/0,maxExpandedLength:1e5,maxEntityCount:1e3,allowedTags:null,tagFilter:null,appliesTo:"all"}:"object"==typeof b&&null!==b?{enabled:!1!==b.enabled,maxEntitySize:Math.max(1,b.maxEntitySize??1e4),maxExpansionDepth:Math.max(1,b.maxExpansionDepth??1e4),maxTotalExpansions:Math.max(1,b.maxTotalExpansions??1/0),maxExpandedLength:Math.max(1,b.maxExpandedLength??1e5),maxEntityCount:Math.max(1,b.maxEntityCount??1e3),allowedTags:b.allowedTags??null,tagFilter:b.tagFilter??null,appliesTo:b.appliesTo??"all"}:a(!0)}(b.processEntities,b.htmlEntities),b.unpairedTagsSet=new Set(b.unpairedTags),b.stopNodes&&Array.isArray(b.stopNodes)&&(b.stopNodes=b.stopNodes.map(a=>"string"==typeof a&&a.startsWith("*.")?".."+a.substring(2):a)),b};a="function"!=typeof Symbol?"@@xmlMetadata":Symbol("XML Node Metadata");class v{constructor(a){this.tagname=a,this.child=[],this[":@"]=Object.create(null)}add(a,b){"__proto__"===a&&(a="#__proto__"),this.child.push({[a]:b})}addChild(a,b){"__proto__"===a.tagname&&(a.tagname="#__proto__"),a[":@"]&&Object.keys(a[":@"]).length>0?this.child.push({[a.tagname]:a.child,":@":a[":@"]}):this.child.push({[a.tagname]:a.child}),this.addStartIndex(b)}addStartIndex(b){void 0!==b&&(this.child[this.child.length-1][a]={startIndex:b})}addEndIndex(b){let c=this.child[this.child.length-1];void 0!==c&&void 0!==c[a]&&void 0===c[a].endIndex&&(c[a].endIndex=b)}static getMetaDataSymbol(){return a}}let w=":A-Za-z_À-ÖØ-öø-˿Ͱ-ͽͿ-҆҈--⁰-Ⰰ-、-豈-﷏ﷰ-�",x=":A-Za-z_À-˿Ͱ-ͽͿ-҆҈--⁰-Ⰰ-、-豈-﷏ﷰ-�𐀀-",y=(a,b,c="")=>{let d=`[${a.replace(":","")}][${b.replace(":","")}]*`;return{name:RegExp(`^[${a}][${b}]*$`,c),ncName:RegExp(`^${d}$`,c),qName:RegExp(`^${d}(?::${d})?$`,c),nmToken:RegExp(`^[${b}]+$`,c),nmTokens:RegExp(`^[${b}]+(?:\\s+[${b}]+)*$`,c)}},z=y(w,w+"\\-\\.\\d·̀-ͯ‿-⁀"),A=y(x,x+"\\-\\.\\d·̀-ͯ҇‿-⁀","u"),B=":A-Za-z_",C=y(B,B+"\\-\\.\\d"),D=(a,{xmlVersion:b="1.0",asciiOnly:c=!1}={})=>((a="1.0",b=!1)=>b?C:"1.1"===a?A:z)(b,c).qName.test(a);class E{constructor(a,b){this.suppressValidationErr=!a,this.options=a,this.xmlVersion=b||1}setXmlVersion(a=1){this.xmlVersion=a}readDocType(a,b){let c=Object.create(null),d=0;if("O"!==a[b+3]||"C"!==a[b+4]||"T"!==a[b+5]||"Y"!==a[b+6]||"P"!==a[b+7]||"E"!==a[b+8])throw Error("Invalid Tag instead of DOCTYPE");{b+=9;let e=1,f=!1,g=!1,h=null,i="";for(;b<a.length;b++)if(null===h)if(f||g||'"'!==a[b]&&"'"!==a[b])if("<"!==a[b]||g)if(">"===a[b]){if(g?"-"===a[b-1]&&"-"===a[b-2]&&(g=!1,e--):e--,0===e)break}else"["===a[b]?f=!0:i+=a[b];else{if(f&&G(a,"!ENTITY",b)){let e,f;if(b+=7,[e,f,b]=this.readEntityExp(a,b+1,this.suppressValidationErr),-1===f.indexOf("&")){if(!1!==this.options.enabled&&null!=this.options.maxEntityCount&&d>=this.options.maxEntityCount)throw Error(`Entity count (${d+1}) exceeds maximum allowed (${this.options.maxEntityCount})`);c[e]=f,d++}}else if(f&&G(a,"!ELEMENT",b)){b+=8;let{index:c}=this.readElementExp(a,b+1);b=c}else if(f&&G(a,"!ATTLIST",b))b+=8;else if(f&&G(a,"!NOTATION",b)){b+=9;let{index:c}=this.readNotationExp(a,b+1,this.suppressValidationErr);b=c}else{if(!G(a,"!--",b))throw Error("Invalid DOCTYPE");g=!0}e++,i=""}else h=a[b],i+=a[b];else a[b]===h&&(h=null),i+=a[b];if(null!==h||0!==e)throw Error("Unclosed DOCTYPE")}return{entities:c,i:b}}readEntityExp(a,b){let c=b=F(a,b);for(;b<a.length&&!/\s/.test(a[b])&&'"'!==a[b]&&"'"!==a[b];)b++;let d=a.substring(c,b);if(H(d,{xmlVersion:this.xmlVersion}),b=F(a,b),!this.suppressValidationErr){if("SYSTEM"===a.substring(b,b+6).toUpperCase())throw Error("External entities are not supported");if("%"===a[b])throw Error("Parameter entities are not supported")}let e="";if([b,e]=this.readIdentifierVal(a,b,"entity"),!1!==this.options.enabled&&null!=this.options.maxEntitySize&&e.length>this.options.maxEntitySize)throw Error(`Entity "${d}" size (${e.length}) exceeds maximum allowed size (${this.options.maxEntitySize})`);return[d,e,--b]}readNotationExp(a,b){let c=b=F(a,b);for(;b<a.length&&!/\s/.test(a[b]);)b++;let d=a.substring(c,b);this.suppressValidationErr||H(d,{xmlVersion:this.xmlVersion}),b=F(a,b);let e=a.substring(b,b+6).toUpperCase();if(!this.suppressValidationErr&&"SYSTEM"!==e&&"PUBLIC"!==e)throw Error(`Expected SYSTEM or PUBLIC, found "${e}"`);b+=e.length,b=F(a,b);let f=null,g=null;if("PUBLIC"===e)[b,f]=this.readIdentifierVal(a,b,"publicIdentifier"),'"'!==a[b=F(a,b)]&&"'"!==a[b]||([b,g]=this.readIdentifierVal(a,b,"systemIdentifier"));else if("SYSTEM"===e&&([b,g]=this.readIdentifierVal(a,b,"systemIdentifier"),!this.suppressValidationErr&&!g))throw Error("Missing mandatory system identifier for SYSTEM notation");return{notationName:d,publicIdentifier:f,systemIdentifier:g,index:--b}}readIdentifierVal(a,b,c){let d="",e=a[b];if('"'!==e&&"'"!==e)throw Error(`Expected quoted string, found "${e}"`);let f=++b;for(;b<a.length&&a[b]!==e;)b++;if(d=a.substring(f,b),a[b]!==e)throw Error(`Unterminated ${c} value`);return[++b,d]}readElementExp(a,b){let c=b=F(a,b);for(;b<a.length&&!/\s/.test(a[b]);)b++;let d=a.substring(c,b);if(!this.suppressValidationErr&&!D(d,{xmlVersion:this.xmlVersion}))throw Error(`Invalid element name: "${d}"`);let e="";if("E"===a[b=F(a,b)]&&G(a,"MPTY",b))b+=4;else if("A"===a[b]&&G(a,"NY",b))b+=2;else if("("===a[b]){let c=++b;for(;b<a.length&&")"!==a[b];)b++;if(e=a.substring(c,b),")"!==a[b])throw Error("Unterminated content model")}else if(!this.suppressValidationErr)throw Error(`Invalid Element Expression, found "${a[b]}"`);return{elementName:d,contentModel:e.trim(),index:b}}readAttlistExp(a,b){let c=b=F(a,b);for(;b<a.length&&!/\s/.test(a[b]);)b++;let d=a.substring(c,b);for(H(d,{xmlVersion:this.xmlVersion}),c=b=F(a,b);b<a.length&&!/\s/.test(a[b]);)b++;let e=a.substring(c,b);if(!H(e,{xmlVersion:this.xmlVersion}))throw Error(`Invalid attribute name: "${e}"`);b=F(a,b);let f="";if("NOTATION"===a.substring(b,b+8).toUpperCase()){if(f="NOTATION","("!==a[b=F(a,b+=8)])throw Error(`Expected '(', found "${a[b]}"`);b++;let c=[];for(;b<a.length&&")"!==a[b];){let d=b;for(;b<a.length&&"|"!==a[b]&&")"!==a[b];)b++;let e=a.substring(d,b);if(!H(e=e.trim(),{xmlVersion:this.xmlVersion}))throw Error(`Invalid notation name: "${e}"`);c.push(e),"|"===a[b]&&(b=F(a,++b))}if(")"!==a[b])throw Error("Unterminated list of notations");b++,f+=" ("+c.join("|")+")"}else{let c=b;for(;b<a.length&&!/\s/.test(a[b]);)b++;if(f+=a.substring(c,b),!this.suppressValidationErr&&!["CDATA","ID","IDREF","IDREFS","ENTITY","ENTITIES","NMTOKEN","NMTOKENS"].includes(f.toUpperCase()))throw Error(`Invalid attribute type: "${f}"`)}b=F(a,b);let g="";return"#REQUIRED"===a.substring(b,b+8).toUpperCase()?(g="#REQUIRED",b+=8):"#IMPLIED"===a.substring(b,b+7).toUpperCase()?(g="#IMPLIED",b+=7):[b,g]=this.readIdentifierVal(a,b,"ATTLIST"),{elementName:d,attributeName:e,attributeType:f,defaultValue:g,index:b}}}let F=(a,b)=>{for(;b<a.length&&/\s/.test(a[b]);)b++;return b};function G(a,b,c){for(let d=0;d<b.length;d++)if(b[d]!==a[c+d+1])return!1;return!0}function H(a,b){if(D(a,{xmlVersion:b}))return a;throw Error(`Invalid entity name ${a}`)}let I=new Map,J=new Uint8Array(63904).fill(255);for(let a of[48,1632,1776,2406,2534,2662,2790,2918,3046,3174,3302,3430,3558,3664,3792,3872,4160,4240,6112,6160,6470,6608,6784,6800,6992,7088,7232,7248,65296,120782,120792,120802,120812,120822,66720,68912,69734,69872,69942,70096,70384,70736,70864,71248,71360,71472,71904,72016,72688,72784,73040,73120,73552,92768,92864,93008,123200,123632,124144,125264,130032])for(let b=0;b<10;b++){let c=a+b;c<=65535?J[c-1632]=b:I.set(c,b)}let K=new Set([8722,65293,65123]),L=/^[-+]?0x[a-fA-F0-9]+$/,M=/^0b[01]+$/,N=/^0o[0-7]+$/,O=/^([\-\+])?(0*)([0-9]*(\.[0-9]*)?)$/,P={hex:!0,binary:!1,octal:!1,leadingZeros:!0,decimalPoint:".",eNotation:!0,infinity:"original",unicode:!1},Q=/^([-+])?(0*)(\d*(\.\d*)?[eE][-\+]?\d+)$/;function R(a,b){let c=a.trim();if(2!==b&&8!==b||(a=c.substring(2)),parseInt)return parseInt(a,b);if(Number.parseInt)return Number.parseInt(a,b);if(window&&window.parseInt)return window.parseInt(a,b);throw Error("parseInt, Number.parseInt, window.parseInt are not supported")}class S{constructor(a){this._matcher=a}get separator(){return this._matcher.separator}getCurrentTag(){let a=this._matcher.path;return a.length>0?a[a.length-1].tag:void 0}getCurrentNamespace(){let a=this._matcher.path;return a.length>0?a[a.length-1].namespace:void 0}getAttrValue(a){let b=this._matcher.path;if(0!==b.length)return b[b.length-1].values?.[a]}hasAttr(a){let b=this._matcher.path;if(0===b.length)return!1;let c=b[b.length-1];return void 0!==c.values&&a in c.values}getAnyParentAttr(a){return this._matcher.getAnyParentAttr(a)}hasAnyParentAttr(a){return this._matcher.hasAnyParentAttr(a)}getPosition(){let a=this._matcher.path;return 0===a.length?-1:a[a.length-1].position??0}getCounter(){let a=this._matcher.path;return 0===a.length?-1:a[a.length-1].counter??0}getIndex(){return this.getPosition()}getDepth(){return this._matcher.path.length}toString(a,b=!0){return this._matcher.toString(a,b)}toArray(){return this._matcher.path.map(a=>a.tag)}matches(a){return this._matcher.matches(a)}matchesAny(a){return a.matchesAny(this._matcher)}}class T{constructor(a={}){this.separator=a.separator||".",this.path=[],this.siblingStacks=[],this._pathStringCache=null,this._view=new S(this),this._keptAttrs=[]}push(a,b=null,c=null,d=null){this._pathStringCache=null,this.path.length>0&&(this.path[this.path.length-1].values=void 0);let e=this.path.length,f=this.siblingStacks[e];f||(f={counts:new Map,total:0},this.siblingStacks[e]=f);let g=c?`${c}:${a}`:a,h=f.counts.get(g)||0,i=f.total;f.counts.set(g,h+1),f.total++;let j={tag:a,position:i,counter:h};null!=c&&(j.namespace=c),null!=b&&(j.values=b),this.path.push(j);let k=this.path.length,l=null!==d?d.keep:null;if(null!=l&&l.length>0&&b)for(let a=0;a<l.length;a++){let c=l[a];void 0!==b[c]&&this._keptAttrs.push({depth:k,name:c,value:b[c]})}}pop(){if(0===this.path.length)return;this._pathStringCache=null;let a=this.path.pop();this.siblingStacks.length>this.path.length+1&&(this.siblingStacks.length=this.path.length+1);let b=this.path.length+1;for(;this._keptAttrs.length>0&&this._keptAttrs[this._keptAttrs.length-1].depth>=b;)this._keptAttrs.pop();return a}updateCurrent(a){if(this.path.length>0){let b=this.path[this.path.length-1];null!=a&&(b.values=a)}}getCurrentTag(){return this.path.length>0?this.path[this.path.length-1].tag:void 0}getCurrentNamespace(){return this.path.length>0?this.path[this.path.length-1].namespace:void 0}getAttrValue(a){if(0!==this.path.length)return this.path[this.path.length-1].values?.[a]}hasAttr(a){if(0===this.path.length)return!1;let b=this.path[this.path.length-1];return void 0!==b.values&&a in b.values}getAnyParentAttr(a){let b=this._keptAttrs;for(let c=b.length-1;c>=0;c--)if(b[c].name===a)return b[c].value}hasAnyParentAttr(a){let b=this._keptAttrs;for(let c=b.length-1;c>=0;c--)if(b[c].name===a)return!0;return!1}getPosition(){return 0===this.path.length?-1:this.path[this.path.length-1].position??0}getCounter(){return 0===this.path.length?-1:this.path[this.path.length-1].counter??0}getIndex(){return this.getPosition()}getDepth(){return this.path.length}toString(a,b=!0){let c=a||this.separator;if(c===this.separator&&!0===b){if(null!==this._pathStringCache)return this._pathStringCache;let a=this.path.map(a=>a.namespace?`${a.namespace}:${a.tag}`:a.tag).join(c);return this._pathStringCache=a,a}return this.path.map(a=>b&&a.namespace?`${a.namespace}:${a.tag}`:a.tag).join(c)}toArray(){return this.path.map(a=>a.tag)}reset(){this._pathStringCache=null,this.path=[],this.siblingStacks=[],this._keptAttrs=[]}matches(a){let b=a.segments;return 0!==b.length&&(a.hasDeepWildcard()?this._matchWithDeepWildcard(b):this._matchSimple(b))}_matchSimple(a){if(this.path.length!==a.length)return!1;for(let b=0;b<a.length;b++)if(!this._matchSegment(a[b],this.path[b],b===this.path.length-1))return!1;return!0}_matchWithDeepWildcard(a){let b=this.path.length-1,c=a.length-1;for(;c>=0&&b>=0;){let d=a[c];if("deep-wildcard"===d.type){if(--c<0)return!0;let d=a[c],e=!1;for(let a=b;a>=0;a--)if(this._matchSegment(d,this.path[a],a===this.path.length-1)){b=a-1,c--,e=!0;break}if(!e)return!1}else{if(!this._matchSegment(d,this.path[b],b===this.path.length-1))return!1;b--,c--}}return c<0}_matchSegment(a,b,c){if("*"!==a.tag&&a.tag!==b.tag||void 0!==a.namespace&&"*"!==a.namespace&&a.namespace!==b.namespace||void 0!==a.attrName&&(!c||!b.values||!(a.attrName in b.values)||void 0!==a.attrValue&&String(b.values[a.attrName])!==String(a.attrValue)))return!1;if(void 0!==a.position){if(!c)return!1;let d=b.counter??0;if("first"===a.position&&0!==d||"odd"===a.position&&d%2!=1||"even"===a.position&&d%2!=0||"nth"===a.position&&d!==a.positionValue)return!1}return!0}matchesAny(a){return a.matchesAny(this)}snapshot(){return{path:this.path.map(a=>({...a})),siblingStacks:this.siblingStacks.map(a=>a?{counts:new Map(a.counts),total:a.total}:a),keptAttrs:this._keptAttrs.map(a=>({...a}))}}restore(a){this._pathStringCache=null,this.path=a.path.map(a=>({...a})),this.siblingStacks=a.siblingStacks.map(a=>a?{counts:new Map(a.counts),total:a.total}:a),this._keptAttrs=(a.keptAttrs||[]).map(a=>({...a}))}readOnly(){return this._view}}class U{constructor(a,b={},c){this.pattern=a,this.separator=b.separator||".",this.segments=this._parse(a),this.data=c,this._hasDeepWildcard=this.segments.some(a=>"deep-wildcard"===a.type),this._hasAttributeCondition=this.segments.some(a=>void 0!==a.attrName),this._hasPositionSelector=this.segments.some(a=>void 0!==a.position)}_parse(a){let b=[],c=0,d="";for(;c<a.length;)a[c]===this.separator?c+1<a.length&&a[c+1]===this.separator?(d.trim()&&(b.push(this._parseSegment(d.trim())),d=""),b.push({type:"deep-wildcard"}),c+=2):(d.trim()&&b.push(this._parseSegment(d.trim())),d="",c++):(d+=a[c],c++);return d.trim()&&b.push(this._parseSegment(d.trim())),b}_parseSegment(a){let b={type:"tag"},c=null,d=a,e=a.match(/^([^\[]+)(\[[^\]]*\])(.*)$/);if(e&&(d=e[1]+e[3],e[2])){let a=e[2].slice(1,-1);a&&(c=a)}let f,g,h=d;if(d.includes("::")){let b=d.indexOf("::");if(f=d.substring(0,b).trim(),h=d.substring(b+2).trim(),!f)throw Error(`Invalid namespace in pattern: ${a}`)}let i=null;if(h.includes(":")){let a=h.lastIndexOf(":"),b=h.substring(0,a).trim(),c=h.substring(a+1).trim();["first","last","odd","even"].includes(c)||/^nth\(\d+\)$/.test(c)?(g=b,i=c):g=h}else g=h;if(!g)throw Error(`Invalid segment pattern: ${a}`);if(b.tag=g,f&&(b.namespace=f),c)if(c.includes("=")){let a=c.indexOf("=");b.attrName=c.substring(0,a).trim(),b.attrValue=c.substring(a+1).trim()}else b.attrName=c.trim();if(i){let a=i.match(/^nth\((\d+)\)$/);a?(b.position="nth",b.positionValue=parseInt(a[1],10)):b.position=i}return b}get length(){return this.segments.length}hasDeepWildcard(){return this._hasDeepWildcard}hasAttributeCondition(){return this._hasAttributeCondition}hasPositionSelector(){return this._hasPositionSelector}toString(){return this.pattern}}class V{constructor(){this._byDepthAndTag=new Map,this._wildcardByDepth=new Map,this._deepWildcards=[],this._deepByTerminalTag=new Map,this._patterns=new Set,this._sealed=!1}add(a){if(this._sealed)throw TypeError("ExpressionSet is sealed. Create a new ExpressionSet to add more expressions.");if(this._patterns.has(a.pattern))return this;if(this._patterns.add(a.pattern),a.hasDeepWildcard()){let b=a.segments[a.segments.length-1];if(b&&"deep-wildcard"!==b.type&&"*"!==b.tag){let c=b.tag;this._deepByTerminalTag.has(c)||this._deepByTerminalTag.set(c,[]),this._deepByTerminalTag.get(c).push(a)}else this._deepWildcards.push(a);return this}let b=a.length,c=a.segments[a.segments.length-1],d=c?.tag;if(d&&"*"!==d){let c=`${b}:${d}`;this._byDepthAndTag.has(c)||this._byDepthAndTag.set(c,[]),this._byDepthAndTag.get(c).push(a)}else this._wildcardByDepth.has(b)||this._wildcardByDepth.set(b,[]),this._wildcardByDepth.get(b).push(a);return this}addAll(a){for(let b of a)this.add(b);return this}has(a){return this._patterns.has(a.pattern)}get size(){return this._patterns.size}seal(){return this._sealed=!0,this}get isSealed(){return this._sealed}matchesAny(a){return null!==this.findMatch(a)}findMatch(a){let b=a.getDepth(),c=a.getCurrentTag(),d=`${b}:${c}`,e=this._byDepthAndTag.get(d);if(e){for(let b=0;b<e.length;b++)if(a.matches(e[b]))return e[b]}let f=this._wildcardByDepth.get(b);if(f){for(let b=0;b<f.length;b++)if(a.matches(f[b]))return f[b]}let g=this._deepByTerminalTag.get(c);if(g){for(let b=0;b<g.length;b++)if(a.matches(g[b]))return g[b]}for(let b=0;b<this._deepWildcards.length;b++)if(a.matches(this._deepWildcards[b]))return this._deepWildcards[b];return null}}let W={cent:"¢",pound:"£",curren:"¤",yen:"¥",euro:"€",dollar:"$",fnof:"ƒ",inr:"₹",af:"؋",birr:"ብር",peso:"₱",rub:"₽",won:"₩",yuan:"¥",cedil:"¸"},X={amp:"&",apos:"'",gt:">",lt:"<",quot:'"'},Y={nbsp:" ",copy:"©",reg:"®",trade:"™",mdash:"—",ndash:"–",hellip:"…",laquo:"«",raquo:"»",lsquo:"‘",rsquo:"’",ldquo:"“",rdquo:"”",bull:"•",para:"¶",sect:"§",deg:"°",frac12:"½",frac14:"¼",frac34:"¾"},Z=Object.freeze({ALLOW:"allow",BLOCK:"block",THROW:"throw"}),$=new Set("!?\\\\/[]$%{}^&*()<>|+");function _(a){if("#"===a[0])throw Error(`[EntityReplacer] Invalid character '#' in entity name: "${a}"`);for(let b of a)if($.has(b))throw Error(`[EntityReplacer] Invalid character '${b}' in entity name: "${a}"`);return a}function aa(...a){let b=Object.create(null);for(let c of a)if(c)for(let a of Object.keys(c)){let d=c[a];if("string"==typeof d)b[a]=d;else if(d&&"object"==typeof d&&void 0!==d.val){let c=d.val;"string"==typeof c&&(b[a]=c)}}return b}let ab="external",ac="base",ad=Object.freeze({allow:0,leave:1,remove:2,throw:3}),ae=new Set([9,10,13]);class af{constructor(a={}){var b;this._limit=a.limit||{},this._maxTotalExpansions=this._limit.maxTotalExpansions||0,this._maxExpandedLength=this._limit.maxExpandedLength||0,this._postCheck="function"==typeof a.postCheck?a.postCheck:a=>a,this._limitTiers=new Set((b=this._limit.applyLimitsTo??ab)&&b!==ab?"all"===b?["all"]:b===ac?[ac]:Array.isArray(b)?b:[ab]:[ab]),this._numericAllowed=a.numericAllowed??!0,this._baseMap=aa(X,a.namedEntities||null),this._externalMap=Object.create(null),this._inputMap=Object.create(null),this._totalExpansions=0,this._expandedLength=0,this._removeSet=new Set(a.remove&&Array.isArray(a.remove)?a.remove:[]),this._leaveSet=new Set(a.leave&&Array.isArray(a.leave)?a.leave:[]);const c=function(a){return a?{xmlVersion:1.1===a.xmlVersion?1.1:1,onLevel:ad[a.onNCR]??ad.allow,nullLevel:Math.max(ad[a.nullNCR]??ad.remove,ad.remove)}:{xmlVersion:1,onLevel:ad.allow,nullLevel:ad.remove}}(a.ncr);this._ncrXmlVersion=c.xmlVersion,this._ncrOnLevel=c.onLevel,this._ncrNullLevel=c.nullLevel,this._onExternalEntity="function"==typeof a.onExternalEntity?a.onExternalEntity:null,this._onInputEntity="function"==typeof a.onInputEntity?a.onInputEntity:null}_applyRegistrationHook(a,b,c,d){if(!a)return!0;let e=a(b,c);if(e===Z.BLOCK)return!1;if(e===Z.THROW)throw Error(`[EntityDecoder] Registration of ${d} entity "&${b};" was rejected by hook`);return!0}setExternalEntities(a){if(a)for(let b of Object.keys(a))_(b);if(!this._onExternalEntity)return void(this._externalMap=aa(a));let b=aa(a),c=Object.create(null);for(let[a,d]of Object.entries(b))this._applyRegistrationHook(this._onExternalEntity,a,d,"external")&&(c[a]=d);this._externalMap=c}addExternalEntity(a,b){_(a),"string"==typeof b&&-1===b.indexOf("&")&&this._applyRegistrationHook(this._onExternalEntity,a,b,"external")&&(this._externalMap[a]=b)}addInputEntities(a){if(this._totalExpansions=0,this._expandedLength=0,!this._onInputEntity)return void(this._inputMap=aa(a));let b=aa(a),c=Object.create(null);for(let[a,d]of Object.entries(b))this._applyRegistrationHook(this._onInputEntity,a,d,"input")&&(c[a]=d);this._inputMap=c}reset(){return this._inputMap=Object.create(null),this._totalExpansions=0,this._expandedLength=0,this}setXmlVersion(a){this._ncrXmlVersion=1.1===a?1.1:1}decode(a){if("string"!=typeof a||0===a.length||-1===a.indexOf("&"))return a;let b=[],c=a.length,d=0,e=0,f=this._maxTotalExpansions>0,g=this._maxExpandedLength>0,h=f||g;for(;e<c;){let i,j;if(38!==a.charCodeAt(e)){e++;continue}let k=e+1;for(;k<c&&59!==a.charCodeAt(k)&&k-e<=32;)k++;if(k>=c||59!==a.charCodeAt(k)){e++;continue}let l=a.slice(e+1,k);if(0===l.length){e++;continue}if(this._removeSet.has(l))i="",void 0===j&&(j=ab);else{if(this._leaveSet.has(l)){e++;continue}if(35===l.charCodeAt(0)){let a=this._resolveNCR(l);if(void 0===a){e++;continue}i=a,j=ac}else{let a=this._resolveName(l);i=a?.value,j=a?.tier}}if(void 0!==i){if(e>d&&b.push(a.slice(d,e)),b.push(i),e=d=k+1,h&&this._tierCounts(j)){if(f&&(this._totalExpansions++,this._totalExpansions>this._maxTotalExpansions))throw Error(`[EntityReplacer] Entity expansion count limit exceeded: ${this._totalExpansions} > ${this._maxTotalExpansions}`);if(g){let a=i.length-(l.length+2);if(a>0&&(this._expandedLength+=a,this._expandedLength>this._maxExpandedLength))throw Error(`[EntityReplacer] Expanded content length limit exceeded: ${this._expandedLength} > ${this._maxExpandedLength}`)}}}else e++}d<c&&b.push(a.slice(d));let i=0===b.length?a:b.join("");return this._postCheck(i,a)}_tierCounts(a){return!!this._limitTiers.has("all")||this._limitTiers.has(a)}_resolveName(a){return a in this._inputMap?{value:this._inputMap[a],tier:ab}:a in this._externalMap?{value:this._externalMap[a],tier:ab}:a in this._baseMap?{value:this._baseMap[a],tier:ac}:void 0}_classifyNCR(a){return 0===a?this._ncrNullLevel:a>=55296&&a<=57343||1===this._ncrXmlVersion&&a>=1&&a<=31&&!ae.has(a)?ad.remove:-1}_applyNCRAction(a,b,c){switch(a){case ad.allow:return String.fromCodePoint(c);case ad.remove:return"";case ad.leave:return;case ad.throw:throw Error(`[EntityDecoder] Prohibited numeric character reference &${b}; (U+${c.toString(16).toUpperCase().padStart(4,"0")})`);default:return String.fromCodePoint(c)}}_resolveNCR(a){let b,c=a.charCodeAt(1);if(Number.isNaN(b=120===c||88===c?parseInt(a.slice(2),16):parseInt(a.slice(1),10))||b<0||b>1114111)return;let d=this._classifyNCR(b);if(!this._numericAllowed&&d<ad.remove)return;let e=-1===d?this._ncrOnLevel:Math.max(this._ncrOnLevel,d);return this._applyNCRAction(e,a,b)}}let ag=[{id:"sql-block-comment-open",description:"SQL block comment open: /* ... */ — unusual in legitimate user text",pattern:/\/\*/},{id:"sql-union-select",description:"UNION SELECT — most common SQL injection aggregation attack",pattern:/\bUNION\s{1,20}(?:ALL\s{1,20})?SELECT\b/i},{id:"sql-drop-table",description:"DROP TABLE — destructive DDL injection",pattern:/\bDROP\s{1,20}TABLE\b/i},{id:"sql-drop-database",description:"DROP DATABASE — destructive DDL injection",pattern:/\bDROP\s{1,20}DATABASE\b/i},{id:"sql-insert-into",description:"INSERT INTO — data injection",pattern:/\bINSERT\s{1,20}INTO\b/i},{id:"sql-delete-from",description:"DELETE FROM — data deletion injection",pattern:/\bDELETE\s{1,20}FROM\b/i},{id:"sql-update-set",description:"UPDATE ... SET — data modification injection",pattern:/\bUPDATE\b[\s\S]{1,60}\bSET\b/i},{id:"sql-exec-xp",description:"EXEC xp_ — MSSQL extended stored procedure execution",pattern:/\bEXEC(?:UTE)?\s{1,20}xp_/i},{id:"sql-tautology-string",description:'Classic string tautology: \' OR \'1\'=\'1 or " OR "1"="1"',pattern:/'\s{0,10}OR\s{0,10}'[^']{0,20}'\s*=\s*'[^']{0,20}/i},{id:"sql-tautology-numeric",description:"Numeric tautology: OR 1=1",pattern:/\bOR\s{1,10}1\s*=\s*1\b/i},{id:"sql-always-true-zero",description:"Numeric tautology: OR 0=0",pattern:/\bOR\s{1,10}0\s*=\s*0\b/i},{id:"sql-sleep-benchmark",description:"Time-based blind injection: SLEEP() or BENCHMARK()",pattern:/\b(?:SLEEP|BENCHMARK)\s*\(/i},{id:"sql-waitfor-delay",description:"MSSQL time-based blind injection: WAITFOR DELAY",pattern:/\bWAITFOR\s{1,20}DELAY\b/i},{id:"sql-char-function",description:"CHAR() function — used to obfuscate injected strings",pattern:/\bCHAR\s*\(\s*\d{1,3}/i},{id:"sql-information-schema",description:"INFORMATION_SCHEMA — reconnaissance query for table/column enumeration",pattern:/\bINFORMATION_SCHEMA\b/i}],ah=[...ag,{id:"sql-line-comment",description:"SQL line comment: -- followed by whitespace or end of string",pattern:/--(?:\s|$)/},{id:"sql-stacked-query",description:"Stacked queries: semicolon immediately followed by a SQL keyword",pattern:/;\s{0,10}(?:SELECT|INSERT|UPDATE|DELETE|DROP|CREATE|ALTER|EXEC)\b/i},{id:"sql-hex-encoding",description:"Hex-encoded string injection: 0x41414141 style (MySQL)",pattern:/\b0x[0-9a-f]{4,}/i}],ai=[{id:"html-script-open",description:"<script opening tag",pattern:/<script[\s>/]/i},{id:"html-script-close",description:"</script closing tag",pattern:/<\/script[\s>]/i},{id:"html-javascript-protocol",description:"javascript: URI scheme (with optional whitespace/encoding)",pattern:/j[\t\n\r ]*a[\t\n\r ]*v[\t\n\r ]*a[\t\n\r ]*s[\t\n\r ]*c[\t\n\r ]*r[\t\n\r ]*i[\t\n\r ]*p[\t\n\r ]*t[\t\n\r ]*:/i},{id:"html-vbscript-protocol",description:"vbscript: URI scheme",pattern:/vbscript[\t\n\r ]*:/i},{id:"html-data-html",description:"data:text/html URI — can execute scripts in browsers",pattern:/data[\t\n\r ]*:[\t\n\r ]*text\/html/i},{id:"html-data-xhtml",description:"data:application/xhtml+xml URI",pattern:/data[\t\n\r ]*:[\t\n\r ]*application\/xhtml/i},{id:"html-data-svg",description:"data:image/svg+xml URI — can execute scripts",pattern:/data[\t\n\r ]*:[\t\n\r ]*image\/svg\+xml/i},{id:"html-inline-event-handler",description:"Inline event handler attributes: onclick=, onerror=, onload=, etc.",pattern:/\bon\w{1,30}\s*=/i},{id:"html-entity-obfuscated-script",description:"HTML-entity-encoded <script (e.g. <script or <script)",pattern:/(?:�*3[Cc];?|�*60;?|<)\s*script/i},{id:"html-entity-obfuscated-javascript",description:'HTML-entity-encoded javascript: (partial — catches common j or j for "j")',pattern:/(?:�*6[Aa];?|�*106;?)\s*(?:�*61;?|a)[\s\S]{0,80}script\s*:/i},{id:"html-style-expression",description:"CSS expression() — IE-era code execution in style attributes",pattern:/style[\s\S]{0,20}expression\s*\(/i},{id:"html-object-embed",description:"<object or <embed tags that can load active content",pattern:/<(?:object|embed)[\s>/]/i},{id:"html-base-tag",description:"<base href= — can hijack all relative URLs on a page",pattern:/<base[\s>]/i},{id:"html-meta-refresh",description:'<meta http-equiv="refresh" — can redirect users',pattern:/<meta[\s\S]{0,40}http-equiv[\s\S]{0,20}refresh/i},{id:"html-srcdoc",description:"srcdoc= attribute on iframes — embeds HTML that can run scripts",pattern:/srcdoc\s*=/i},{id:"html-iframe",description:"<iframe tag",pattern:/<iframe[\s>/]/i},{id:"html-form",description:"<form tag — can be used for phishing / credential harvesting injection",pattern:/<form[\s>/]/i}],aj=[{id:"xml-cdata-injection",description:"CDATA section injection: <![CDATA[ breaks out of text node context",pattern:/<!\[CDATA\[/i},{id:"xml-cdata-close",description:"CDATA close sequence: ]]> can terminate an enclosing CDATA section",pattern:/\]\]>/},{id:"xml-processing-instruction",description:"XML processing instruction: <?xml-stylesheet or <?php etc.",pattern:/<\?(?:xml[\- ]|php|asp)/i},{id:"xml-doctype-injection",description:"DOCTYPE declaration embedded in content — can define entities",pattern:/<!DOCTYPE(?:[\s[]|$)/i},{id:"xml-entity-system",description:"SYSTEM keyword — used in external entity declarations (XXE)",pattern:/\bSYSTEM\s+["']/i},{id:"xml-entity-public",description:"PUBLIC keyword — used in external entity declarations (XXE)",pattern:/\bPUBLIC\s+["']/i},{id:"xml-entity-declaration",description:"<!ENTITY declaration — defines entities, potential XXE or entity expansion",pattern:/<!ENTITY[\s%]/i},{id:"xml-billion-laughs",description:"Entity reference chaining / billion laughs: repeated &eX; style references",pattern:/(?:&\w{1,20};){3,}/},{id:"xml-namespace-confusion",description:"xmlns: attribute injection — can redefine namespaces to confuse parsers",pattern:/\bxmlns\s*(?::\w{1,40})?\s*=/i},{id:"xml-comment-injection",description:"<!-- comment injection — can hide content from some parsers",pattern:/<!--/},{id:"xml-comment-close",description:"--> closes an enclosing XML comment",pattern:/-->/},{id:"xml-pi-close",description:"?> closes an enclosing processing instruction",pattern:/\?>/}],ak=[{id:"svg-script-element",description:"<script element inside SVG executes JavaScript",pattern:/<script[\s>/]/i},{id:"svg-xlink-href-javascript",description:"xlink:href with javascript: — classic SVG XSS via <a> or <use>",pattern:/xlink\s*:\s*href\s*=\s*["']?\s*javascript\s*:/i},{id:"svg-href-javascript",description:"href= with javascript: in SVG context (<a>, <animate>, etc.)",pattern:/href\s*=\s*["']?\s*javascript\s*:/i},{id:"svg-foreignobject",description:"<foreignObject embeds HTML inside SVG — can execute scripts",pattern:/<foreignObject[\s>/]/i},{id:"svg-use-external",description:"<use xlink:href or href pointing to external resource (non-fragment URL)",pattern:/<use[\s\S]{0,60}(?:xlink\s*:\s*)?href\s*=\s*(?:["'][^#]|[^"'#\s>])/i},{id:"svg-animate-href",description:'<animate attributeName="href" — can dynamically change href to javascript:',pattern:/<animate[\s\S]{0,80}attributeName\s*=\s*["'][\s]*href["']/i},{id:"svg-animate-xlinkhref",description:'<animate attributeName="xlink:href"',pattern:/<animate[\s\S]{0,80}attributeName\s*=\s*["'][\s]*xlink\s*:\s*href["']/i},{id:"svg-set-javascript",description:'<set to="javascript:..." — sets an attribute to a javascript: URI',pattern:/<set[\s\S]{0,80}to\s*=\s*["']?\s*javascript\s*:/i},{id:"svg-event-handler",description:"SVG-specific event handler attributes: onload=, onerror=, onactivate=, etc.",pattern:/\bon(?:load|error|activate|begin|end|repeat|focus|blur|click|mouse\w{1,20}|key\w{1,20})\s*=/i},{id:"svg-handler-generic",description:"Generic on* handler catch-all for SVG attributes",pattern:/\bon\w{1,30}\s*=/i},{id:"svg-filter-feimage",description:"<feImage href= — filter primitive that can load external resources",pattern:/<feImage[\s\S]{0,80}(?:xlink\s*:\s*)?href\s*=/i},{id:"svg-image-external",description:"<image xlink:href with http/https or javascript protocol",pattern:/<image[\s\S]{0,80}(?:xlink\s*:\s*)?href\s*=\s*["']?\s*(?:https?|javascript)\s*:/i},{id:"svg-style-javascript",description:"style= attribute containing javascript: (e.g. background:url(javascript:...))",pattern:/style\s*=[\s\S]{0,60}javascript\s*:/i}],al=[{id:"shell-path-traversal-unix",description:"Unix path traversal: ../ — climbing the directory tree",pattern:/\.\.\//},{id:"shell-path-traversal-windows",description:"Windows path traversal: ..\\ — climbing the directory tree",pattern:/\.\.\\/},{id:"shell-path-traversal-encoded",description:"URL-encoded path traversal: %2e%2e or %2f variants",pattern:/%2e%2e|%2f\.\.|\.\.%2f/i},{id:"shell-null-byte",description:"Null byte injection: \\x00 or %00 — truncates strings in C-backed functions",pattern:/\x00|%00/},{id:"shell-semicolon",description:"Semicolon command separator: cmd1; cmd2",pattern:/;/},{id:"shell-pipe",description:"Pipe operator: cmd1 | cmd2",pattern:/\|/},{id:"shell-and-operator",description:"AND operator: cmd1 && cmd2",pattern:/&&/},{id:"shell-or-operator",description:"OR operator: cmd1 || cmd2",pattern:/\|\|/},{id:"shell-backtick",description:"Backtick command substitution: `cmd`",pattern:/`/},{id:"shell-dollar-paren",description:"Dollar-paren command substitution: $(cmd)",pattern:/\$\(/},{id:"shell-dollar-brace",description:"Dollar-brace variable expansion: ${var} — can be abused for injection",pattern:/\$\{/},{id:"shell-redirect-out",description:"Output redirection: cmd > file or cmd >> file",pattern:/>{1,2}/},{id:"shell-redirect-in",description:"Input redirection: cmd < file",pattern:/</},{id:"shell-newline-injection",description:"Newline injection: \\n or \\r — can inject new shell commands",pattern:/[\n\r]/},{id:"shell-glob-star",description:"Glob expansion: * or ? — can expand to unintended files",pattern:/[/\\][*?]/},{id:"shell-absolute-root",description:"Absolute root path injection: string starting with / or \\ (Windows UNC)",pattern:/^(?:\/|\\\\)/},{id:"shell-windows-drive",description:"Windows drive letter path injection: C:\\ or D:/",pattern:/^[a-zA-Z]:[/\\]/},{id:"shell-curl-wget",description:"curl/wget with URL or flags — can exfiltrate data or download payloads",pattern:/\b(?:curl|wget)\s+(?:https?:\/\/|ftp:\/\/|-)/i}],am=[{id:"redos-nested-quantifier-plus",description:"Nested + quantifier inside a group with outer quantifier: (a+)+, (.+b)*, etc.",pattern:/\([^)]*\+[^)]*\)[+*]/},{id:"redos-nested-quantifier-star",description:"Nested * quantifier: (a*)* or (a*)+ — catastrophic backtracking",pattern:/\([^)]*\*[^)]*\)[*+]/},{id:"redos-nested-groups",description:"Doubly nested quantified groups: ((a+)+) — guaranteed catastrophic",pattern:/\(\([^)]{0,40}\)[+*]\)[+*]/},{id:"redos-alternation-overlap",description:"Overlapping alternation under quantifier: (a|a)+ — ambiguous NFA paths",pattern:/\(([^|()]{1,20})\|(?:\1)(?:\|[^|()]{1,20}){0,5}\)[+*?]{1,2}/},{id:"redos-star-plus-concat",description:"(x*x)+ pattern — triggers super-linear backtracking",pattern:/\([^)]{0,10}\*[^)]{0,10}\)[+*]/},{id:"redos-dot-star-greedy",description:"(.*){n,} or (.+){n,} — repeated greedy dot quantifiers",pattern:/\(\.[*+]\)\{?\d/},{id:"redos-large-repetition",description:"Very large fixed or range repetition count {1000,} or {1000,n} — denial of service via backtracking",pattern:/\{\d{4,}(?:,\d*)?\}/},{id:"redos-catastrophic-alternation",description:"Long alternation with many similar branches — polynomial backtracking risk",pattern:/\([^)]{0,200}(?:\|[^|)]{0,50}){9,}\)/}],an="[\"'\\s]*:",ao=[{id:"nosql-where-operator",description:"$where — executes arbitrary JavaScript server-side in MongoDB",pattern:RegExp(`\\$where${an}`,"i")},{id:"nosql-ne-operator",description:'$ne — "not equal" operator used to bypass equality checks',pattern:RegExp(`\\$ne${an}`,"i")},{id:"nosql-gt-operator",description:'$gt — "greater than" used to bypass password/value checks',pattern:RegExp(`\\$gte?${an}`,"i")},{id:"nosql-lt-operator",description:'$lt / $lte — "less than" bypass variants',pattern:RegExp(`\\$lte?${an}`,"i")},{id:"nosql-regex-operator",description:"$regex — can be used to extract data character by character (blind injection)",pattern:RegExp(`\\$regex${an}`,"i")},{id:"nosql-or-operator",description:"$or — logical OR; used to create always-true conditions",pattern:RegExp(`\\$or${an}\\s*\\[`,"i")},{id:"nosql-and-operator",description:"$and — logical AND operator injection",pattern:RegExp(`\\$and${an}\\s*\\[`,"i")},{id:"nosql-nor-operator",description:"$nor — logical NOR operator injection",pattern:RegExp(`\\$nor${an}\\s*\\[`,"i")},{id:"nosql-exists-operator",description:"$exists — can enumerate fields to determine schema",pattern:RegExp(`\\$exists${an}`,"i")},{id:"nosql-in-operator",description:"$in — matches any value in a list; can enumerate values",pattern:RegExp(`\\$in${an}\\s*\\[`,"i")},{id:"nosql-expr-operator",description:"$expr — allows aggregation expressions in queries (MongoDB 3.6+)",pattern:RegExp(`\\$expr${an}`,"i")},{id:"nosql-function-operator",description:"$function — executes arbitrary JavaScript in MongoDB 4.4+",pattern:RegExp(`\\$function${an}`,"i")},{id:"nosql-accumulator-operator",description:"$accumulator — custom aggregation with arbitrary JS execution",pattern:RegExp(`\\$accumulator${an}`,"i")},{id:"nosql-proto-pollution",description:"__proto__ — prototype pollution via object key injection",pattern:/__proto__/},{id:"nosql-constructor-prototype",description:"constructor.prototype — alternative prototype pollution vector (dot notation or JSON key)",pattern:/constructor[\s"':.,{\[]*prototype/i},{id:"nosql-proto-bracket",description:'["__proto__"] — bracket-notation prototype pollution',pattern:/\[["']__proto__["']\]/}],ap=[{id:"log-crlf-injection",description:"CRLF injection: literal \\r or \\n embeds fake log lines",pattern:/[\r\n]/},{id:"log-url-encoded-crlf",description:"URL-encoded CRLF: %0d, %0a, %0D, %0A — decoded by some log parsers",pattern:/%0[dDaA]/},{id:"log-unicode-newline",description:"Unicode newline variants: U+2028 (line separator), U+2029 (paragraph separator)",pattern:/[\u2028\u2029]/},{id:"log-log4shell-jndi",description:"Log4Shell: ${jndi:...} triggers remote code execution in Apache Log4j",pattern:/\$\{jndi\s*:/i},{id:"log-log4shell-obfuscated",description:"Obfuscated Log4Shell: ${::-j}... lookup-bypass prefix used to evade WAF detection",pattern:/\$\{::-/},{id:"log-log4j-lookup",description:"Log4j lookup syntax: ${env:...}, ${sys:...}, ${ctx:...} — data exfiltration",pattern:/\$\{(?:env|sys|ctx|main|map|sd|web|docker|k8s|spring)\s*:/i},{id:"log-ssti-double-brace",description:"SSTI double-brace: {{expression}} — Jinja2, Twig, Handlebars, etc.",pattern:/\{\{[\s\S]{0,80}\}\}/},{id:"log-ssti-hash-brace",description:"SSTI hash-brace: #{expression} — Thymeleaf, Velocity, Ruby ERB",pattern:/#\{[\s\S]{0,80}\}/},{id:"log-ssti-dollar-brace",description:"SSTI/EL injection: ${expression with operators or method calls} — JSP EL, Freemarker, SpEL",pattern:/\$\{[^}]*(?:\.|\(|\*|\+|\bclass\b|\bruntime\b|\bprocess\b|\bexec\b)[^}]{0,80}\}/i},{id:"log-ssti-percent-tag",description:"SSTI ERB/ASP tag: <%= expression %> — Ruby ERB, ASP",pattern:/<%=[\s\S]{0,80}%>/},{id:"log-null-byte",description:"Null byte: \\x00 or %00 — can truncate log entries in C-backed loggers",pattern:/\x00|%00/},{id:"log-ansi-escape",description:"ANSI escape sequence: ESC[ — can manipulate terminal output when logs are tailed",pattern:/\x1b\[/}];ai.label="HTML",aj.label="XML",ak.label="SVG",ag.label="SQL",ah.label="SQL-STRICT",al.label="SHELL",am.label="REDOS",ao.label="NOSQL",ap.label="LOG",Object.freeze({HTML:ai,XML:aj,SVG:ak,SQL:ag,"SQL-STRICT":ah,SHELL:al,REDOS:am,NOSQL:ao,LOG:ap});class aq{constructor(a,b){var c;this.options=a,this.currentNode=null,this.tagsNodeStack=[],this.parseXml=av,this.parseTextData=ar,this.resolveNameSpace=as,this.buildAttributesMap=au,this.isItStopNode=az,this.replaceEntitiesValue=ax,this.readStopNodeData=aC,this.saveTextToParentTag=ay,this.addChild=aw,this.ignoreAttributesFn="function"==typeof(c=this.options.ignoreAttributes)?c:Array.isArray(c)?a=>{for(let b of c)if("string"==typeof b&&a===b||b instanceof RegExp&&b.test(a))return!0}:()=>!1,this.entityExpansionCount=0,this.currentExpandedLength=0,this.doctypefound=!1;let d={...X};this.options.entityDecoder?this.entityDecoder=this.options.entityDecoder:("object"==typeof this.options.htmlEntities?d=this.options.htmlEntities:!0===this.options.htmlEntities&&(d={...Y,...W}),this.entityDecoder=new af({namedEntities:{...d,...b},numericAllowed:this.options.htmlEntities,limit:{maxTotalExpansions:this.options.processEntities.maxTotalExpansions,maxExpandedLength:this.options.processEntities.maxExpandedLength,applyLimitsTo:this.options.processEntities.appliesTo},onInputEntity:(a,b)=>!function(a,b){(function(a){if("string"!=typeof a)throw TypeError("is-unsafe: first argument must be a string, got "+typeof a)})(a),function(a){if(!(a instanceof RegExp)){if(!Array.isArray(a))throw TypeError("is-unsafe: second argument must be a PatternList (e.g. HTML), an array of PatternLists (e.g. [HTML, XML]), or a RegExp. Got: "+typeof a);if(0===a.length)throw TypeError("is-unsafe: context must not be an empty array");if(Array.isArray(a[0])){for(let b of a)if(!Array.isArray(b)||0===b.length)throw TypeError("is-unsafe: each context in the array must be a non-empty pattern array (PatternList)")}}}(b);let{lists:c,regex:d}=b instanceof RegExp?{lists:null,regex:b}:Array.isArray(b[0])?{lists:b,regex:null}:{lists:[b],regex:null};if(d)return d.test(a);for(let b of c)if(null!==function(a,b){let c=b.label??"CUSTOM";for(let d of b)if(d.pattern.test(a))return{context:c,id:d.id,description:d.description,pattern:d.pattern};return null}(a,b))return!0;return!1}(b,[ai,aj])?Z.ALLOW:Z.BLOCK})),this.matcher=new T,this.readonlyMatcher=this.matcher.readOnly(),this.isCurrentNodeStopNode=!1,this.stopNodeExpressionsSet=new V;const e=this.options.stopNodes;if(e&&e.length>0){for(let a=0;a<e.length;a++){const b=e[a];"string"==typeof b?this.stopNodeExpressionsSet.add(new U(b)):b instanceof U&&this.stopNodeExpressionsSet.add(b)}this.stopNodeExpressionsSet.seal()}}}function ar(a,b,c,d,e,f,g){let h=this.options;if(void 0!==a&&(h.trimValues&&!d&&(a=a.trim()),a.length>0)){g||(a=this.replaceEntitiesValue(a,b,c));let d=h.jPath?c.toString():c,i=h.tagValueProcessor(b,a,d,e,f);return null==i?a:typeof i!=typeof a||i!==a?i:h.trimValues||a.trim()===a?aD(a,h.parseTagValue,h.numberParseOptions):a}}function as(a){if(this.options.removeNSPrefix){let b=a.split(":"),c="/"===a.charAt(0)?"/":"";if("xmlns"===b[0])return"";2===b.length&&(a=c+b[1])}return a}let at=RegExp("([^\\s=]+)\\s*(=\\s*(['\"])([\\s\\S]*?)\\3)?","gm");function au(a,b,c,d=!1){let e=this.options;if(!0===d||!0!==e.ignoreAttributes&&"string"==typeof a){let d=function(a,b){let c=[],d=b.exec(a);for(;d;){let e=[];e.startIndex=b.lastIndex-d[0].length;let f=d.length;for(let a=0;a<f;a++)e.push(d[a]);c.push(e),d=b.exec(a)}return c}(a,at),f=d.length,g={},h=Array(f),i=!1,j={};for(let a=0;a<f;a++){let b=this.resolveNameSpace(d[a][1]),f=d[a][4];if(b.length&&void 0!==f){let d=f;e.trimValues&&(d=d.trim()),d=this.replaceEntitiesValue(d,c,this.readonlyMatcher),h[a]=d,j[b]=d,i=!0}}i&&"object"==typeof b&&b.updateCurrent&&b.updateCurrent(j);let k=e.jPath?b.toString():this.readonlyMatcher,l=!1;for(let a=0;a<f;a++){let b=this.resolveNameSpace(d[a][1]);if(this.ignoreAttributesFn(b,k))continue;let c=e.attributeNamePrefix+b;if(b.length)if(e.transformAttributeName&&(c=e.transformAttributeName(c)),c=aF(c,e),void 0!==d[a][4]){let d=h[a],f=e.attributeValueProcessor(b,d,k);g[c]=null==f?d:typeof f!=typeof d||f!==d?f:aD(d,e.parseAttributeValue,e.numberParseOptions),l=!0}else e.allowBooleanAttributes&&(g[c]=!0,l=!0)}if(!l)return;if(e.attributesGroupName&&!e.preserveOrder){let a={};return a[e.attributesGroupName]=g,a}return g}}let av=function(a){a=a.replace(/\r\n?/g,"\n");let b=new v("!xml"),c=b,d="";this.matcher.reset(),this.entityDecoder.reset(),this.entityExpansionCount=0,this.currentExpandedLength=0,this.doctypefound=!1;let e=this.options,f=new E(e.processEntities),g=a.length;for(let h=0;h<g;h++)if("<"===a[h]){let i=a.charCodeAt(h+1);if(47===i){let f=aA(a,">",h,"Closing Tag is not closed."),g=a.substring(h+2,f).trim();if(e.removeNSPrefix){let a=g.indexOf(":");-1!==a&&(g=g.substr(a+1))}g=aE(e.transformTagName,g,"",e).tagName,c&&(d=this.saveTextToParentTag(d,c,this.readonlyMatcher));let i=this.matcher.getCurrentTag();if(g&&e.unpairedTagsSet.has(g))throw Error(`Unpaired tag can not be used as closing tag: </${g}>`);i&&e.unpairedTagsSet.has(i)&&(this.matcher.pop(),this.tagsNodeStack.pop()),this.matcher.pop(),this.isCurrentNodeStopNode=!1,c=this.tagsNodeStack.pop()||b,e.captureMetaData&&c&&c.addEndIndex(f+1),d="",h=f}else if(63===i){let b=aB(a,h,!1,"?>");if(!b)throw Error("Pi Tag is not closed.");d=this.saveTextToParentTag(d,c,this.readonlyMatcher);let g=this.buildAttributesMap(b.tagExp,this.matcher,b.tagName,!0);if(g){let a=g[this.options.attributeNamePrefix+"version"];this.entityDecoder.setXmlVersion(Number(a)||1),f.setXmlVersion(Number(a)||1)}if(e.ignoreDeclaration&&"?xml"===b.tagName||e.ignorePiTags);else{let a=new v(b.tagName);a.add(e.textNodeName,""),b.tagName!==b.tagExp&&b.attrExpPresent&&!0!==e.ignoreAttributes&&(a[":@"]=g),this.addChild(c,a,this.readonlyMatcher,h),e.captureMetaData&&c.addEndIndex(b.closeIndex+2)}h=b.closeIndex+1}else if(33===i&&45===a.charCodeAt(h+2)&&45===a.charCodeAt(h+3)){let b=aA(a,"-->",h+4,"Comment is not closed.");if(e.commentPropName){let f=a.substring(h+4,b-2);d=this.saveTextToParentTag(d,c,this.readonlyMatcher),c.add(e.commentPropName,[{[e.textNodeName]:f}])}h=b}else if(33===i&&68===a.charCodeAt(h+2)){if(this.doctypefound)throw Error("Multiple DOCTYPE declarations found.");this.doctypefound=!0;let b=f.readDocType(a,h);this.entityDecoder.addInputEntities(b.entities),h=b.i}else if(33===i&&91===a.charCodeAt(h+2)){let b=aA(a,"]]>",h,"CDATA is not closed.")-2,f=a.substring(h+9,b);d=this.saveTextToParentTag(d,c,this.readonlyMatcher);let g=this.parseTextData(f,c.tagname,this.readonlyMatcher,!0,!1,!0,!0);null==g&&(g=""),e.cdataPropName?c.add(e.cdataPropName,[{[e.textNodeName]:f}]):c.add(e.textNodeName,g),h=b+2}else{let f=aB(a,h,e.removeNSPrefix);if(!f){let b=a.substring(Math.max(0,h-50),Math.min(g,h+50));throw Error(`readTagExp returned undefined at position ${h}. Context: "${b}"`)}let i=f.tagName,j=f.rawTagName,k=f.tagExp,l=f.attrExpPresent,m=f.closeIndex;if({tagName:i,tagExp:k}=aE(e.transformTagName,i,k,e),e.strictReservedNames&&(i===e.commentPropName||i===e.cdataPropName||i===e.textNodeName||i===e.attributesGroupName))throw Error(`Invalid tag name: ${i}`);c&&d&&"!xml"!==c.tagname&&(d=this.saveTextToParentTag(d,c,this.readonlyMatcher,!1));let n=c;n&&e.unpairedTagsSet.has(n.tagname)&&(c=this.tagsNodeStack.pop(),this.matcher.pop());let o=!1;k.length>0&&k.lastIndexOf("/")===k.length-1&&(o=!0,k="/"===i[i.length-1]?i=i.substr(0,i.length-1):k.substr(0,k.length-1),l=i!==k);let p,q=null;p=function(a){if(!a||"string"!=typeof a)return;let b=a.indexOf(":");if(-1!==b&&b>0){let c=a.substring(0,b);if("xmlns"!==c)return c}}(j),i!==b.tagname&&this.matcher.push(i,{},p),i!==k&&l&&(q=this.buildAttributesMap(k,this.matcher,i))&&function(a,b){if(!a)return;let c=b.attributesGroupName?a[b.attributesGroupName]:a;if(!c)return;let d={};for(let a in c)a.startsWith(b.attributeNamePrefix)?d[a.substring(b.attributeNamePrefix.length)]=c[a]:d[a]=c[a]}(q,e),i!==b.tagname&&(this.isCurrentNodeStopNode=this.isItStopNode());let r=h;if(this.isCurrentNodeStopNode){let b="";if(o)h=f.closeIndex;else if(e.unpairedTagsSet.has(i))h=f.closeIndex;else{let c=this.readStopNodeData(a,j,m+1);if(!c)throw Error(`Unexpected end of ${j}`);h=c.i,b=c.tagContent}let d=new v(i);q&&(d[":@"]=q),d.add(e.textNodeName,b),this.matcher.pop(),this.isCurrentNodeStopNode=!1,this.addChild(c,d,this.readonlyMatcher,r),e.captureMetaData&&c.addEndIndex(h+1)}else{if(o){({tagName:i,tagExp:k}=aE(e.transformTagName,i,k,e));let a=new v(i);q&&(a[":@"]=q),this.addChild(c,a,this.readonlyMatcher,r),e.captureMetaData&&c.addEndIndex(m+1),this.matcher.pop(),this.isCurrentNodeStopNode=!1}else{if(e.unpairedTagsSet.has(i)){let a=new v(i);q&&(a[":@"]=q),this.addChild(c,a,this.readonlyMatcher,r),e.captureMetaData&&c.addEndIndex(f.closeIndex+1),this.matcher.pop(),this.isCurrentNodeStopNode=!1,h=f.closeIndex;continue}{let a=new v(i);if(this.tagsNodeStack.length>e.maxNestedTags)throw Error("Maximum nested tags exceeded");this.tagsNodeStack.push(c),q&&(a[":@"]=q),this.addChild(c,a,this.readonlyMatcher,r),c=a}}d="",h=m}}}else d+=a[h];return b.child};function aw(a,b,c,d){this.options.captureMetaData||(d=void 0);let e=this.options.jPath?c.toString():c,f=this.options.updateTag(b.tagname,e,b[":@"]);!1===f||("string"==typeof f&&(b.tagname=f),a.addChild(b,d))}function ax(a,b,c){let d=this.options.processEntities;if(!d||!d.enabled)return a;if(d.allowedTags){let e=this.options.jPath?c.toString():c;if(!(Array.isArray(d.allowedTags)?d.allowedTags.includes(b):d.allowedTags(b,e)))return a}if(d.tagFilter){let e=this.options.jPath?c.toString():c;if(!d.tagFilter(b,e))return a}return this.entityDecoder.decode(a)}function ay(a,b,c,d){return a&&(void 0===d&&(d=0===b.child.length),void 0!==(a=this.parseTextData(a,b.tagname,c,!1,!!b[":@"]&&0!==Object.keys(b[":@"]).length,d))&&""!==a&&b.add(this.options.textNodeName,a),a=""),a}function az(){return 0!==this.stopNodeExpressionsSet.size&&this.matcher.matchesAny(this.stopNodeExpressionsSet)}function aA(a,b,c,d){let e=a.indexOf(b,c);if(-1===e)throw Error(d);return e+b.length-1}function aB(a,b,c,d=">"){let e=function(a,b,c=">"){let d=0,e=a.length,f=c.charCodeAt(0),g=c.length>1?c.charCodeAt(1):-1,h="",i=b;for(let c=b;c<e;c++){let b=a.charCodeAt(c);if(d)b===d&&(d=0);else if(34===b||39===b)d=b;else if(b===f){if(-1===g||a.charCodeAt(c+1)===g)return{data:h+=a.substring(i,c),index:c}}else 9!==b||d||(h+=a.substring(i,c)+" ",i=c+1)}}(a,b+1,d);if(!e)return;let f=e.data,g=e.index,h=f.search(/\s/),i=f,j=!0;-1!==h&&(i=f.substring(0,h),f=f.substring(h+1).trimStart());let k=i;if(c){let a=i.indexOf(":");-1!==a&&(j=(i=i.substr(a+1))!==e.data.substr(a+1))}return{tagName:i,tagExp:f,closeIndex:g,attrExpPresent:j,rawTagName:k}}function aC(a,b,c){let d=c,e=1,f=a.length;for(;c<f;c++)if("<"===a[c]){let f=a.charCodeAt(c+1);if(47===f){let f=function(a,b,c){let d=a.indexOf(">",b);if(-1===d)throw Error(c);return d}(a,c,`${b} is not closed`);if(a.substring(c+2,f).trim()===b&&0==--e)return{tagContent:a.substring(d,c),i:f};c=f}else if(63===f)c=aA(a,"?>",c+1,"StopNode is not closed.");else if(33===f&&45===a.charCodeAt(c+2)&&45===a.charCodeAt(c+3))c=aA(a,"-->",c+3,"StopNode is not closed.");else if(33===f&&91===a.charCodeAt(c+2))c=aA(a,"]]>",c,"StopNode is not closed.")-2;else{let d=aB(a,c,!1);d&&((d&&d.tagName)===b&&"/"!==d.tagExp[d.tagExp.length-1]&&e++,c=d.closeIndex)}}}function aD(a,b,c){if(b&&"string"==typeof a){let b=a.trim();return"true"===b||"false"!==b&&function(a,b={}){if(b=Object.assign({},P,b),!a||"string"!=typeof a)return a;let c=a.trim();if(0===c.length||void 0!==b.skipLike&&b.skipLike.test(c))return a;if("0"===c||b.unicode&&"0"===(c=function(a){if("string"!=typeof a)return a;let b=a.length;if(0===b)return a;let c=-1;for(let d=0;d<b;d++){let e=a.charCodeAt(d);if(!(e>=48&&e<=57||45===e)){if(e<1632){if(K.has(e)){c=d;break}}else if(e>=55296&&e<=56319){if(d+1<b){let b=a.charCodeAt(d+1);if(b>=56320&&b<=57343){let a=65536+(e-55296<<10)+(b-56320);if(I.has(a)){c=d;break}}}}else if(255!==J[e-1632]||K.has(e)){c=d;break}}}if(-1===c)return a;let d=[];c>0&&d.push(a.slice(0,c));for(let e=c;e<b;e++){let c=a.charCodeAt(e);if(c>=48&&c<=57||45===c){d.push(a[e]);continue}if(c<1632){d.push(K.has(c)?"-":a[e]);continue}if(c>=55296&&c<=56319){if(e+1<b){let b=a.charCodeAt(e+1);if(b>=56320&&b<=57343){let a=65536+(c-55296<<10)+(b-56320),f=I.get(a);if(void 0!==f){d.push(String.fromCharCode(f+48)),e++;continue}}}d.push(a[e]);continue}if(K.has(c)){d.push("-");continue}let f=J[c-1632];d.push(255!==f?String.fromCharCode(f+48):a[e])}return d.join("")}(c)))return 0;if(b.hex&&L.test(c))return R(c,16);if(b.binary&&M.test(c))return R(c,2);if(b.octal&&N.test(c))return R(c,8);if(isFinite(c)){if(c.includes("e")||c.includes("E"))return function(a,b,c){if(!c.eNotation)return a;let d=b.match(Q);if(d){let e=d[1]||"",f=-1===d[3].indexOf("e")?"E":"e",g=d[2],h=e?a[g.length+1]===f:a[g.length]===f;return g.length>1&&h?a:(1!==g.length||!d[3].startsWith(`.${f}`)&&d[3][0]!==f)&&g.length>0?c.leadingZeros&&!h?Number(b=(d[1]||"")+d[3]):a:Number(b)}return a}(a,c,b);{let d=O.exec(c);if(d){let e=d[1]||"",f=d[2],g=function(a){if(a&&-1!==a.indexOf(".")){let b=a.length;for(;b>0&&48===a.charCodeAt(b-1);)b--;return"."===(a=a.slice(0,b))?a="0":"."===a[0]?a="0"+a:"."===a[a.length-1]&&(a=a.substring(0,a.length-1)),a}return a}(d[3]),h=e?"."===a[f.length+1]:"."===a[f.length];if(!b.leadingZeros&&(f.length>1||1===f.length&&!h))return a;{let d=Number(c),h=String(d);if(0===d)return d;if(-1!==h.search(/[eE]/))return b.eNotation?d:a;if(-1!==c.indexOf("."))return"0"===h||h===g||h===`${e}${g}`?d:a;let i=f?g:c;return f?i===h||e+i===h?d:a:i===h||i===e+h?d:a}}return a}}var d=Number(c);switch(b.infinity.toLowerCase()){case"null":return null;case"infinity":return d;case"string":return d===1/0?"Infinity":"-Infinity";default:return a}}(a,c)}return void 0!==a?a:""}function aE(a,b,c,d){if(a){let d=a(b);c===b&&(c=d),b=d}return{tagName:b=aF(b,d),tagExp:c}}function aF(a,b){if(i.includes(a))throw Error(`[SECURITY] Invalid name: "${a}" is a reserved JavaScript keyword that could cause prototype pollution`);return h.includes(a)?b.onDangerousProperty(a):a}let aG=v.getMetaDataSymbol();class aH{constructor(a){this.externalEntities={},this.options=u(a)}parse(a,b){var c;if("string"!=typeof a&&a.toString)a=a.toString();else if("string"!=typeof a)throw Error("XML data is accepted in String or Bytes[] form.");if(b){!0===b&&(b={});let c=k(a,b);if(!0!==c)throw Error(`${c.err.msg}:${c.err.line}:${c.err.col}`)}let d=new aq(this.options,this.externalEntities),e=d.parseXml(a);return this.options.preserveOrder||void 0===e?e:(c=this.options,function a(b,c,d,e){let f,g={};for(let h=0;h<b.length;h++){let i=b[h],j=function(a){let b=Object.keys(a);for(let a=0;a<b.length;a++){let c=b[a];if(":@"!==c)return c}}(i);if(void 0!==j&&j!==c.textNodeName){let a=function(a,b){if(!a||"object"!=typeof a)return{};if(!b)return a;let c={};for(let d in a)d.startsWith(b)?c[d.substring(b.length)]=a[d]:c[d]=a[d];return c}(i[":@"]||{},c.attributeNamePrefix);d.push(j,a)}if(j===c.textNodeName)void 0===f?f=i[j]:f+=""+i[j];else{if(void 0===j)continue;if(i[j]){let b=a(i[j],c,d,e),f=function(a,b){let{textNodeName:c}=b,d=Object.keys(a).length;return 0===d||!(1!==d||!a[c]&&"boolean"!=typeof a[c]&&0!==a[c])}(b,c);if(0===Object.keys(b).length&&c.alwaysCreateTextNode&&(b[c.textNodeName]=""),i[":@"]?function(a,b,c,d){if(b){let e=Object.keys(b),f=e.length;for(let g=0;g<f;g++){let f=e[g],h=f.startsWith(d.attributeNamePrefix)?f.substring(d.attributeNamePrefix.length):f,i=d.jPath?c.toString()+"."+h:c;d.isArray(f,i,!0,!0)?a[f]=[b[f]]:a[f]=b[f]}}}(b,i[":@"],e,c):1!==Object.keys(b).length||void 0===b[c.textNodeName]||c.alwaysCreateTextNode?0===Object.keys(b).length&&(c.alwaysCreateTextNode?b[c.textNodeName]="":b=""):b=b[c.textNodeName],void 0!==i[aG]&&"object"==typeof b&&null!==b&&(b[aG]=i[aG]),void 0!==g[j]&&Object.prototype.hasOwnProperty.call(g,j))Array.isArray(g[j])||(g[j]=[g[j]]),g[j].push(b);else{let a=c.jPath?e.toString():e;c.isArray(j,a,f)?g[j]=[b]:g[j]=b}void 0!==j&&j!==c.textNodeName&&d.pop()}}}return"string"==typeof f?f.length>0&&(g[c.textNodeName]=f):void 0!==f&&(g[c.textNodeName]=f),g}(e,c,d.matcher,d.readonlyMatcher))}addEntity(a,b){if(-1!==b.indexOf("&"))throw Error("Entity value can't have '&'");if(-1!==a.indexOf("&")||-1!==a.indexOf(";"))throw Error("An entity must be set without '&' and ';'. Eg. use '#xD' for '
'");if("&"===b)throw Error("An entity with value '&' is not permitted");this.externalEntities[a]=b}static getMetaDataSymbol(){return v.getMetaDataSymbol()}}function aI(a){return String(a).replace(/--/g,"- -").replace(/--/g,"- -").replace(/-$/,"- ")}function aJ(a){return String(a).replace(/\]\]>/g,"]]]]><![CDATA[>")}function aK(a){return String(a).replace(/"/g,""").replace(/'/g,"'")}let aL=":A-Za-z_À-ÖØ-öø-˿Ͱ-ͽͿ-҆҈--⁰-Ⰰ-、-豈-﷏ﷰ-�",aM=":A-Za-z_À-˿Ͱ-ͽͿ-҆҈--⁰-Ⰰ-、-豈-﷏ﷰ-�𐀀-",aN=(a,b,c="")=>{let d=`[${a.replace(":","")}][${b.replace(":","")}]*`;return{name:RegExp(`^[${a}][${b}]*$`,c),ncName:RegExp(`^${d}$`,c),qName:RegExp(`^${d}(?::${d})?$`,c),nmToken:RegExp(`^[${b}]+$`,c),nmTokens:RegExp(`^[${b}]+(?:\\s+[${b}]+)*$`,c)}},aO=aN(aL,aL+"\\-\\.\\d·̀-ͯ‿-⁀"),aP=aN(aM,aM+"\\-\\.\\d·̀-ͯ҇‿-⁀","u"),aQ=(a,{xmlVersion:b="1.0"}={})=>((a="1.0")=>"1.1"===a?aP:aO)(b).qName.test(a);function aR(a,b,c,d,e){return c.sanitizeName?aQ(a,{xmlVersion:e})?a:c.sanitizeName(a,{isAttribute:b,matcher:d.readOnly()}):a}function aS(a){let b=Object.keys(a);for(let c=0;c<b.length;c++){let d=b[c];if(Object.prototype.hasOwnProperty.call(a,d)&&":@"!==d)return d}}function aT(a,b,c,d,e){let f="";if(a&&!b.ignoreAttributes)for(let g in a){let h;if(!Object.prototype.hasOwnProperty.call(a,g))continue;let i=g.substr(b.attributeNamePrefix.length),j=c?i:aR(i,!0,b,d,e);!0===(h=c?a[g]:aU(h=b.attributeValueProcessor(g,a[g]),b))&&b.suppressBooleanAttributes?f+=` ${j}`:f+=` ${j}="${aK(h)}"`}return f}function aU(a,b){if(a&&a.length>0&&b.processEntities)for(let c=0;c<b.entities.length;c++){let d=b.entities[c];a=a.replace(d.regex,d.val)}return a}let aV={attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,cdataPropName:!1,format:!1,indentBy:" ",suppressEmptyNode:!1,suppressUnpairedNode:!0,suppressBooleanAttributes:!0,tagValueProcessor:function(a,b){return b},attributeValueProcessor:function(a,b){return b},preserveOrder:!1,commentPropName:!1,unpairedTags:[],entities:[{regex:RegExp("&","g"),val:"&"},{regex:RegExp(">","g"),val:">"},{regex:RegExp("<","g"),val:"<"},{regex:RegExp("'","g"),val:"'"},{regex:RegExp('"',"g"),val:"""}],processEntities:!0,stopNodes:[],oneListGroup:!1,maxNestedTags:100,jPath:!0,sanitizeName:!1};function aW(a){var b;if(this.options=Object.assign({},aV,a),this.options.stopNodes&&Array.isArray(this.options.stopNodes)&&(this.options.stopNodes=this.options.stopNodes.map(a=>"string"==typeof a&&a.startsWith("*.")?".."+a.substring(2):a)),this.stopNodeExpressions=[],this.options.stopNodes&&Array.isArray(this.options.stopNodes))for(let a=0;a<this.options.stopNodes.length;a++){let b=this.options.stopNodes[a];"string"==typeof b?this.stopNodeExpressions.push(new U(b)):b instanceof U&&this.stopNodeExpressions.push(b)}!0===this.options.ignoreAttributes||this.options.attributesGroupName?this.isAttribute=function(){return!1}:(this.ignoreAttributesFn="function"==typeof(b=this.options.ignoreAttributes)?b:Array.isArray(b)?a=>{for(let c of b)if("string"==typeof c&&a===c||c instanceof RegExp&&c.test(a))return!0}:()=>!1,this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=a$),this.processTextOrObjNode=aY,this.options.format?(this.indentate=aZ,this.tagEndChar=">\n",this.newLine="\n"):(this.indentate=function(){return""},this.tagEndChar=">",this.newLine="")}function aX(a,b,c,d,e){return c.sanitizeName?aQ(a,{xmlVersion:e})?a:c.sanitizeName(a,{isAttribute:b,matcher:d.readOnly()}):a}function aY(a,b,c,d,e){let f=this.extractAttributes(a);if(d.push(b,f),this.checkStopNode(d)){let e=this.buildRawContent(a),f=this.buildAttributesForStopNode(a);return d.pop(),this.buildObjectNode(e,b,f,c)}let g=this.j2x(a,c+1,d,e);return d.pop(),"?"===b[0]?this.buildTextValNode("",b,g.attrStr,c,d):void 0!==a[this.options.textNodeName]&&1===Object.keys(a).length?this.buildTextValNode(a[this.options.textNodeName],b,g.attrStr,c,d):this.buildObjectNode(g.val,b,g.attrStr,c)}function aZ(a){return this.options.indentBy.repeat(a)}function a$(a){return!(!a.startsWith(this.options.attributeNamePrefix)||a===this.options.textNodeName)&&a.substr(this.attrPrefixLen)}aW.prototype.build=function(a){if(this.options.preserveOrder)return function(a,b){let c="";b.format&&(c="\n");let d=[];if(b.stopNodes&&Array.isArray(b.stopNodes))for(let a=0;a<b.stopNodes.length;a++){let c=b.stopNodes[a];"string"==typeof c?d.push(new U(c)):c instanceof U&&d.push(c)}let e=function(a,b){if(!Array.isArray(a)||0===a.length)return"1.0";let c=a[0];if("?xml"===aS(c)){let a=c[":@"];if(a){let c=b.attributeNamePrefix+"version";if(a[c])return a[c]}}return"1.0"}(a,b);return function a(b,c,d,e,f,g){let h="",i=!1;if(c.maxNestedTags&&e.getDepth()>c.maxNestedTags)throw Error("Maximum nested tags exceeded");if(!Array.isArray(b))return null!=b?aU(b.toString(),c):"";for(let j=0;j<b.length;j++){let k,l=b[j],m=aS(l);if(void 0===m)continue;let n=m===c.textNodeName||m===c.cdataPropName||m===c.commentPropName||"?"===m[0]?m:aR(m,!1,c,e,g),o=function(a,b){if(!a||b.ignoreAttributes)return null;let c={},d=!1;for(let e in a)Object.prototype.hasOwnProperty.call(a,e)&&(c[e.startsWith(b.attributeNamePrefix)?e.substr(b.attributeNamePrefix.length):e]=aK(a[e]),d=!0);return d?c:null}(l[":@"],c);e.push(n,o);let p=function(a,b){if(!b||0===b.length)return!1;for(let c=0;c<b.length;c++)if(a.matches(b[c]))return!0;return!1}(e,f);if(n===c.textNodeName){let a=l[m];p||(a=aU(a=c.tagValueProcessor(n,a),c)),i&&(h+=d),h+=a,i=!1,e.pop();continue}if(n===c.cdataPropName){i&&(h+=d),h+=`<![CDATA[${aJ(l[m][0][c.textNodeName])}]]>`,i=!1,e.pop();continue}if(n===c.commentPropName){h+=d+`<!--${aI(l[m][0][c.textNodeName])}-->`,i=!0,e.pop();continue}if("?"===n[0]){h+=("?xml"===n?"":d)+`<${n}${aT(l[":@"],c,p,e,g)}?>`,i=!0,e.pop();continue}let q=d;""!==q&&(q+=c.indentBy);let r=d+`<${n}${aT(l[":@"],c,p,e,g)}`;k=p?function a(b,c){if(!Array.isArray(b))return null!=b?b.toString():"";let d="";for(let e=0;e<b.length;e++){let f=b[e],g=aS(f);if(g===c.textNodeName)d+=f[g];else if(g===c.cdataPropName)d+=f[g][0][c.textNodeName];else if(g===c.commentPropName)d+=f[g][0][c.textNodeName];else{if(g&&"?"===g[0])continue;if(g){let b=function(a,b){let c="";if(a&&!b.ignoreAttributes)for(let d in a){if(!Object.prototype.hasOwnProperty.call(a,d))continue;let e=a[d];!0===e&&b.suppressBooleanAttributes?c+=` ${d.substr(b.attributeNamePrefix.length)}`:c+=` ${d.substr(b.attributeNamePrefix.length)}="${aK(e)}"`}return c}(f[":@"],c),e=a(f[g],c);e&&0!==e.length?d+=`<${g}${b}>${e}</${g}>`:d+=`<${g}${b}/>`}}}return d}(l[m],c):a(l[m],c,q,e,f,g),-1!==c.unpairedTags.indexOf(n)?c.suppressUnpairedNode?h+=r+">":h+=r+"/>":k&&0!==k.length||!c.suppressEmptyNode?k&&k.endsWith(">")?h+=r+`>${k}${d}</${n}>`:(h+=r+">",k&&""!==d&&(k.includes("/>")||k.includes("</"))?h+=d+c.indentBy+k+d:h+=k,h+=`</${n}>`):h+=r+"/>",i=!0,e.pop()}return h}(a,b,c,new T,d,e)}(a,this.options);{Array.isArray(a)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&(a={[this.options.arrayNodeName]:a});let b=new T,c=function(a,b){let c=a["?xml"];if(c&&"object"==typeof c){if(b.attributesGroupName&&c[b.attributesGroupName]){let a=c[b.attributesGroupName][b.attributeNamePrefix+"version"];if(a)return a}let a=c[b.attributeNamePrefix+"version"];if(a)return a}return"1.0"}(a,this.options);return this.j2x(a,0,b,c).val}},aW.prototype.j2x=function(a,b,c,d){let e="",f="";if(this.options.maxNestedTags&&c.getDepth()>=this.options.maxNestedTags)throw Error("Maximum nested tags exceeded");let g=this.options.jPath?c.toString():c,h=this.checkStopNode(c);for(let i in a){if(!Object.prototype.hasOwnProperty.call(a,i))continue;let j=i===this.options.textNodeName||i===this.options.cdataPropName||i===this.options.commentPropName||this.options.attributesGroupName&&i===this.options.attributesGroupName||this.isAttribute(i)||"?"===i[0]?i:aX(i,!1,this.options,c,d);if(void 0===a[i])this.isAttribute(i)&&(f+="");else if(null===a[i])this.isAttribute(i)||j===this.options.cdataPropName||j===this.options.commentPropName?f+="":"?"===j[0]?f+=this.indentate(b)+"<"+j+"?"+this.tagEndChar:f+=this.indentate(b)+"<"+j+"/"+this.tagEndChar;else if(a[i]instanceof Date)f+=this.buildTextValNode(a[i],j,"",b,c);else if("object"!=typeof a[i]){let k=this.isAttribute(i);if(k&&!this.ignoreAttributesFn(k,g)){let b=aX(k,!0,this.options,c,d);e+=this.buildAttrPairStr(b,""+a[i],h)}else if(!k)if(i===this.options.textNodeName){let b=this.options.tagValueProcessor(i,""+a[i]);f+=this.replaceEntitiesValue(b)}else{c.push(j);let d=this.checkStopNode(c);if(c.pop(),d){let c=""+a[i];f+=""===c?this.indentate(b)+"<"+j+this.closeTag(j)+this.tagEndChar:this.indentate(b)+"<"+j+">"+c+"</"+j+this.tagEndChar}else f+=this.buildTextValNode(a[i],j,"",b,c)}}else if(Array.isArray(a[i])){let e=a[i].length,g="",h="";for(let k=0;k<e;k++){let e=a[i][k];if(void 0===e);else if(null===e)"?"===j[0]?f+=this.indentate(b)+"<"+j+"?"+this.tagEndChar:f+=this.indentate(b)+"<"+j+"/"+this.tagEndChar;else if("object"==typeof e)if(this.options.oneListGroup){c.push(j);let a=this.j2x(e,b+1,c,d);c.pop(),g+=a.val,this.options.attributesGroupName&&e.hasOwnProperty(this.options.attributesGroupName)&&(h+=a.attrStr)}else g+=this.processTextOrObjNode(e,j,b,c,d);else if(this.options.oneListGroup){let a=this.options.tagValueProcessor(j,e);g+=a=this.replaceEntitiesValue(a)}else{c.push(j);let a=this.checkStopNode(c);if(c.pop(),a){let a=""+e;g+=""===a?this.indentate(b)+"<"+j+this.closeTag(j)+this.tagEndChar:this.indentate(b)+"<"+j+">"+a+"</"+j+this.tagEndChar}else g+=this.buildTextValNode(e,j,"",b,c)}}this.options.oneListGroup&&(g=this.buildObjectNode(g,j,h,b)),f+=g}else if(this.options.attributesGroupName&&i===this.options.attributesGroupName){let b=Object.keys(a[i]),f=b.length;for(let g=0;g<f;g++){let f=aX(b[g],!0,this.options,c,d);e+=this.buildAttrPairStr(f,""+a[i][b[g]],h)}}else f+=this.processTextOrObjNode(a[i],j,b,c,d)}return{attrStr:e,val:f}},aW.prototype.buildAttrPairStr=function(a,b,c){return c||(b=this.options.attributeValueProcessor(a,""+b),b=this.replaceEntitiesValue(b)),this.options.suppressBooleanAttributes&&"true"===b?" "+a:" "+a+'="'+aK(b)+'"'},aW.prototype.extractAttributes=function(a){if(!a||"object"!=typeof a)return null;let b={},c=!1;if(this.options.attributesGroupName&&a[this.options.attributesGroupName]){let d=a[this.options.attributesGroupName];for(let a in d)Object.prototype.hasOwnProperty.call(d,a)&&(b[a.startsWith(this.options.attributeNamePrefix)?a.substring(this.options.attributeNamePrefix.length):a]=aK(d[a]),c=!0)}else for(let d in a){if(!Object.prototype.hasOwnProperty.call(a,d))continue;let e=this.isAttribute(d);e&&(b[e]=aK(a[d]),c=!0)}return c?b:null},aW.prototype.buildRawContent=function(a){if("string"==typeof a)return a;if("object"!=typeof a||null===a)return String(a);if(void 0!==a[this.options.textNodeName])return a[this.options.textNodeName];let b="";for(let c in a){if(!Object.prototype.hasOwnProperty.call(a,c)||this.isAttribute(c)||this.options.attributesGroupName&&c===this.options.attributesGroupName)continue;let d=a[c];if(c===this.options.textNodeName)b+=d;else if(Array.isArray(d)){for(let a of d)if("string"==typeof a||"number"==typeof a)b+=`<${c}>${a}</${c}>`;else if("object"==typeof a&&null!==a){let d=this.buildRawContent(a),e=this.buildAttributesForStopNode(a);b+=""===d?`<${c}${e}/>`:`<${c}${e}>${d}</${c}>`}}else if("object"==typeof d&&null!==d){let a=this.buildRawContent(d),e=this.buildAttributesForStopNode(d);b+=""===a?`<${c}${e}/>`:`<${c}${e}>${a}</${c}>`}else b+=`<${c}>${d}</${c}>`}return b},aW.prototype.buildAttributesForStopNode=function(a){if(!a||"object"!=typeof a)return"";let b="";if(this.options.attributesGroupName&&a[this.options.attributesGroupName]){let c=a[this.options.attributesGroupName];for(let a in c){if(!Object.prototype.hasOwnProperty.call(c,a))continue;let d=a.startsWith(this.options.attributeNamePrefix)?a.substring(this.options.attributeNamePrefix.length):a,e=c[a];!0===e&&this.options.suppressBooleanAttributes?b+=" "+d:b+=" "+d+'="'+e+'"'}}else for(let c in a){if(!Object.prototype.hasOwnProperty.call(a,c))continue;let d=this.isAttribute(c);if(d){let e=a[c];!0===e&&this.options.suppressBooleanAttributes?b+=" "+d:b+=" "+d+'="'+e+'"'}}return b},aW.prototype.buildObjectNode=function(a,b,c,d){if(""===a)return"?"===b[0]?this.indentate(d)+"<"+b+c+"?"+this.tagEndChar:this.indentate(d)+"<"+b+c+this.closeTag(b)+this.tagEndChar;if("?"===b[0])return this.indentate(d)+"<"+b+c+"?"+this.tagEndChar;{let e="</"+b+this.tagEndChar,f="";return"?"===b[0]&&(f="?",e=""),(c||""===c)&&-1===a.indexOf("<")?this.indentate(d)+"<"+b+c+f+">"+a+e:!1!==this.options.commentPropName&&b===this.options.commentPropName&&0===f.length?this.indentate(d)+`<!--${a}-->`+this.newLine:this.indentate(d)+"<"+b+c+f+this.tagEndChar+a+this.indentate(d)+e}},aW.prototype.closeTag=function(a){let b="";return -1!==this.options.unpairedTags.indexOf(a)?this.options.suppressUnpairedNode||(b="/"):b=this.options.suppressEmptyNode?"/":`></${a}`,b},aW.prototype.checkStopNode=function(a){if(!this.stopNodeExpressions||0===this.stopNodeExpressions.length)return!1;for(let b=0;b<this.stopNodeExpressions.length;b++)if(a.matches(this.stopNodeExpressions[b]))return!0;return!1},aW.prototype.buildTextValNode=function(a,b,c,d,e){if(!1!==this.options.cdataPropName&&b===this.options.cdataPropName){let b=aJ(a);return this.indentate(d)+`<![CDATA[${b}]]>`+this.newLine}if(!1!==this.options.commentPropName&&b===this.options.commentPropName){let b=aI(a);return this.indentate(d)+`<!--${b}-->`+this.newLine}if("?"===b[0])return this.indentate(d)+"<"+b+c+"?"+this.tagEndChar;{let e=this.options.tagValueProcessor(b,a);return""===(e=this.replaceEntitiesValue(e))?this.indentate(d)+"<"+b+c+this.closeTag(b)+this.tagEndChar:this.indentate(d)+"<"+b+c+">"+e+"</"+b+this.tagEndChar}},aW.prototype.replaceEntitiesValue=function(a){if(a&&a.length>0&&this.options.processEntities)for(let b=0;b<this.options.entities.length;b++){let c=this.options.entities[b];a=a.replace(c.regex,c.val)}return a};let a_=aW,a0={validate:k};b.exports=d})()},757431,(a,b,c)=>{"use strict";let{XMLParser:d}=a.r(147174);b.exports={validateSvg:function(a){let b,c=new d({ignoreAttributes:!1,attributeNamePrefix:"@_"});try{if(!(b=c.parse(a)))throw Error("Emtpy file")}catch(b){let a=Error("Invalid SVG file");throw a._err=b,a.code="INVALID_XML_FILE",a}if(!b.svg){let a=Error("Invalid SVG file");throw a.code="INVALID_SVG_FILE",a}if("tiny-ps"!==b.svg["@_baseProfile"]){let a=Error("Not a Tiny PS profile");throw a.code="INVALID_BASE_PROFILE",a}if(!b.svg.title){let a=Error("Logo file is missing title");throw a.code="LOGO_MISSING_TITLE",a}if("@_x"in b.svg||"@_y"in b.svg){let a=Error("Logo root includes x/y attributes");throw a.code="LOGO_INVALID_ROOT_ATTRS",a}let e=(a,b,c)=>{if(a){if(Array.isArray(a))for(let d of a)e(d,b,c+"."+b+"[]");else if("object"==typeof a){if(a["@_xlink:href"]&&!/^#/.test(a["@_xlink:href"])){let d=Error("External reference found from file");throw d.details={element:b,link:a["@_xlink:href"],path:c},d.code="LOGO_INCLUDES_REFERENCE",d}for(let b of Object.keys(a)){if(["script","animate","animatemotion","animatetransform","discard","set"].includes(b.toLowerCase())){let a=Error("Unallowed element found from file");throw a.details={element:b,path:c+"."+b},a.code="LOGO_INVALID_ELEMENT",a}if(Array.isArray(a[b]))for(let d of a[b])e(d,b,c+"."+b+"[]");else a[b]&&"object"==typeof a[b]&&e(a[b],b,c+"."+b)}}}};return e(b,"root",""),!0}}},510464,(a,b,c)=>{"use strict";let{Buffer:d}=a.r(951615),e=a.r(666680),f=a.r(495879),{formatAuthHeaderRow:g,parseDkimHeaders:h,parseTagList:i,formatDomain:j,getAlignment:k}=a.r(787767),l=a.r(555466),m=a.r(69127),n=a.r(807232),o=a.r(982803),{parseDmarcRecord:p}=o,q=l.string().uri({scheme:["https"]}),{fetch:r,Agent:s}=a.r(598798),t=new s({connect:{timeout:5e3}}),{vmc:u}=a.r(540348),{validateSvg:v}=a.r(757431),w=/^v[ \t]*=[ \t]*BIMI1[ \t]*(?:;|$)/i,x=new Set(["none","quarantine","reject"]),y=a=>x.has(a.p)&&"none"!==a.p?"none"===a.sp?"too lax DMARC subdomain policy":"quarantine"===a.p&&void 0!==a.pct&&100!==a.pct&&"DMARC policy applied to a percentage of messages":"too lax DMARC policy",z=async(a,b)=>{if(b)return b;if(!a)return!1;let c=await r(a,{headers:{},dispatcher:t});if(!c.ok){let a=Error(`Request failed with status ${c.status}`);throw a.code="HTTP_REQUEST_FAILED",a}let e=await c.arrayBuffer();return d.from(e)};b.exports={bimi:async a=>{let b,c,d,{dmarc:e,headers:k,resolver:l,bimiWithAlignedDkim:m,strict:r}=a,s=k&&k.parsed||[];if(l=l||f.promises.resolve,!e)return!1;let t={status:{header:{}}},u=(a,b)=>(t.status.result=a,b&&(t.status.comment=b),t.info=g("bimi",t.status,{strict:r}),t);if(("number"==typeof e.authorMailboxes?e.authorMailboxes:0)>1||(a=>{let b=a.filter(a=>"from"===a.key);if(b.length>1)return b.length;let c=0;for(let a of b){let b=(a.line||"").toString(),d=b.indexOf(":");for(let a of n((d>=0?b.substr(d+1):b).trim()))c+=Array.isArray(a.group)?a.group.length:1}return c})(s)>1)return u("skipped","multiple From addresses");if(e.status?.result!=="pass")return u("skipped",e.status?.result==="none"?"DMARC not enabled":"message failed DMARC");if("none"===e.policy||e.testMode)return u("skipped","too lax DMARC policy");if(!e.alignment?.dkim?.result&&m)return u("skipped","Aligned DKIM signature required");if(e.alignment?.dkim?.underSized)return u("skipped","undersized DKIM signature");let v=e.status?.header?.from,x=e.domain;if(!v||!x)return u("skipped","could not determine domain");let z=[],A=e.record||(e.rr?p(e.rr):null);A&&z.push(A);let B=e.orgRecord;if(void 0===B){let a=e.policyDomain||e.status?.header?.d||j(v);if(j(x)===j(a)&&A)B=!1;else try{B=await o(x,l)}catch(a){B=null}}if(null===B)return u("temperror","failed to resolve the DMARC policy of the organizational domain");for(let a of(B&&z.push(B),z)){let b=y(a);if(b)return u("skipped",b)}for(let a of s)if(["bimi-selector"].includes(a.key)){if(c)return u("fail","multiple BIMI-Selector headers");if(c=h(a.line),c?.parsed?.v?.value?.toLowerCase()!=="bimi1")return u("fail","missing bimi version in selector header");b=c?.parsed?.s?.value}b=b?.trim()||"default";let C=[`${b}._bimi.${v}`];for(let a of(j(v)!==j(x)&&C.push(`${b}._bimi.${x}`),C)){let b;try{b=await l(a,"TXT")}catch(b){if("ENOTFOUND"===b.code||"ENODATA"===b.code)continue;return u("temperror",`failed to resolve ${a}`)}let c=[].concat(b||[]).map(a=>(Array.isArray(a)?a.join(""):String(a)).trim()).filter(a=>w.test(a));if(1===c.length){d=c[0],t.status.header.selector=a.split("._bimi.").shift(),t.status.header.d=a.split("._bimi.").pop(),t.rr=d;break}if(c.length>1)return u("fail",`multiple BIMI records for ${a}`)}if(!d)return u("none");let D=(a=>{let b={};for(let c of i(a).tags){let a=c.name.trim().toLowerCase();a&&(b[a]=c.value)}return b})(d);if(D.v?.toLowerCase()!=="bimi1")return u("fail","missing bimi version in dns record");let E=D.l,F=D.a;return""!==E||F?E?q.validate(E).error?u("fail","invalid location value in dns record"):F&&q.validate(F).error?u("fail","invalid authority value in dns record"):(t.status.result="pass",t.location=E,F&&(t.authority=F,t.status.policy={authority:"none","authority-uri":F}),D.p&&(t.preference=D.p),t.info=g("bimi",t.status,{strict:r}),t):u("fail","missing location value in dns record"):u("declined")},validateVMC:async(a,b)=>{if(b=b||{},!a)return!1;let c=a?.status?.header?.selector,f=a?.status?.header?.d,g=[];if(g.push(z(a.location,a.locationPath)),g.push(z(a.authority,a.authorityPath)),!g.length)return!1;let[{reason:h,value:i,status:l},{reason:n,value:o,status:p}]=await Promise.allSettled(g),q={};if((i||h)&&(q.location={url:a.location,success:"fulfilled"===l},h&&(q.location.error={message:h.message},h.redirect&&(q.location.error.redirect=h.redirect),h.code&&(q.location.error.code=h.code)),q.location.success&&(q.location.logoFile=i.toString("base64"))),o||n){if(q.authority={url:a.authority,success:"fulfilled"===p},n&&(q.authority.error={message:n.message},n.redirect&&(q.authority.error.redirect=n.redirect),n.code&&(q.authority.error.code=n.code)),o)try{let a=await u(o,b);if(!a.logoFile){let a=Error("VMC does not contain a log file");throw a.code="MISSING_VMC_LOGO",a}if(a?.mediaType?.toLowerCase()!=="image/svg+xml"){let b=Error("Invalid media type for the logo file");throw b.details={mediaType:a.mediaType},b.code="INVALID_MEDIATYPE",b}if(!a.validHash){let b=Error("VMC hash does not match logo file");throw b.details={hashAlgo:a.hashAlgo,hashValue:a.hashValue,logoFile:a.logoFile},b.code="INVALID_LOGO_HASH",b}try{v(d.from(a.logoFile,"base64"))}catch(b){let a=Error("VMC logo SVG validation failed");throw a.details=Object.assign({message:b.message},a.details||{},b.code?{code:b.code}:{}),a.code="SVG_VALIDATION_FAILED",a}if(f){let b=[],d=[];a?.certificate?.subjectAltName?.map(j)?.forEach(a=>{/\b_bimi\./.test(a)?b.push(a):d.push(a)});let e=!1;if(c&&b.includes(j(`${c}._bimi.${f}`))?e=!0:k(f,d,!1)&&(e=!0),e)q.authority.domainVerified=!0;else{let b=Error("Domain can not be verified");throw b.details={subjectAltName:a?.certificate?.subjectAltName,selector:c,d:f},b.code="VMC_DOMAIN_MISMATCH",b}}q.authority.vmc=a}catch(a){q.authority.success=!1,q.authority.error={message:a.message},a.details&&(q.authority.error.details=a.details),a.code&&(q.authority.error.code=a.code)}if(q.location&&q.location.success&&q.authority.success)try{if(q.location.success&&q.authority.vmc.hashAlgo&&q.authority.vmc.validHash){let a=e.createHash(q.authority.vmc.hashAlgo).update(i).digest("hex");q.location.hashAlgo=q.authority.vmc.hashAlgo,q.location.hashValue=a,q.authority.hashMatch=a===q.authority.vmc.hashValue}}catch(a){q.authority.success=!1,q.authority.error={message:a.message},a.details&&(q.authority.error.details=a.details),a.code&&(q.authority.error.code=a.code)}}return q.location?.success&&q.location?.logoFile&&(!q.authority||q.authority.success&&!1!==q.authority.hashMatch)&&(q.headers={indicator:m.foldLines(`BIMI-Indicator: ${q.location.logoFile}`,160),location:`BIMI-Location: v=BIMI1; l=${a.location}`},a.preference&&(q.headers.preference=`BIMI-Logo-Preference: ${a.preference}`)),q}}},456480,(a,b,c)=>{"use strict";let{DANGEROUS_KEYS:d}=a.r(376476),{isIP:e}=a.r(761095),f=/tls|cipher=|Google Transport Security/i,g=/\[(?:IPv6:)?([^\]\s]+)\](?::\d+)?/gi,h=/(?:^|[\s(;,])(?:helo|ehlo)=\s*$/i;b.exports={parseReceived:a=>{let b,c=(a||"").toString(),e=c.indexOf(":");if(e<0)return!1;let g=c.substr(e+1).trim(),h="none",i=[],j=!1,k=!1,l=!1,m="",n=0,o=()=>{b="";let a={key:"",value:"",comment:""};return i.push(a),a},p=o(),q=a=>{if("none"===h)switch(h="val",b){case"":b="key";break;case"key":b="value";break;case"value":case"comment":p=o(),b="key"}else"comment"===b&&"("===a&&n++;p[b]+=a};for(let a=0;a<g.length;a++){let c=g.charAt(a);if("timestamp"===h){m+=c;continue}if(l){p[b]+=c,l=!1;continue}if(k){if("\\"===c&&a<g.length-1){p[b]+=c+g.charAt(++a);continue}p[b]+=c,'"'===c&&(k=!1);continue}if(j){if(c===j){if(n&&--n){p[b]+=c;continue}j=!1,h="none",p=o();continue}"("===c&&n++,p[b]+=c;continue}switch(c){case" ":case" ":case"\n":case"\r":h="none";break;case'"':q(c),k=c;break;case"(":j=")",n++,b="comment";break;case";":h="timestamp";break;case"\\":l=!0;break;default:q(c)}}m=m.split(";").shift().trim();let r={};for(let a=i.length-1;a>1;a--){let b=i[a],c=i[a-1];!["from","by","with","id","for","envelope-from",""].includes(b.key.toLowerCase())&&c.key&&(c.value=[c.value||[]].concat(b.key||[]).concat(b.value||[]).join(" "),c.comment=[c.comment||[]].concat(b.comment||[]).join(" "),i.splice(a,1))}for(let a=1;a<i.length;a++){let b=i[a],c=i[a-1];!b.key&&!b.value&&b.comment&&"from"===(c.key||"").toLowerCase()&&!f.test(b.comment)&&(c.comment=[c.comment||[]].concat(b.comment).join(" "),i.splice(a,1),a--)}for(let a of i)if(a.comment&&(a.comment=a.comment.replace(/\s+/g," ").trim()),a.key){let b=a.key.toLowerCase();if("from"!==b&&!r.tls&&f.test(a.comment)&&(r.tls={value:"",...a.comment&&{comment:a.comment}},a.comment=""),d.has(b))continue;r[b]={value:a.value,...a.comment&&{comment:a.comment}}}else!r.tls&&f.test(a.comment)&&(r.tls={value:a.value,...a.comment&&{comment:a.comment}});return!r.tls&&/SMTPS/.test(r?.with?.value)&&(r.tls={value:"",comment:r?.with?.value}),m&&(r.timestamp=m),r.full=(a||"").toString().replace(/\s+/g," ").trim(),r},getClientAddress:a=>{if(!a||"object"!=typeof a)return!1;let b="string"==typeof a.comment?a.comment:"",c="string"==typeof a.value?a.value.trim():"",d=!1;for(let a of b.matchAll(g))!h.test(b.substring(0,a.index))&&e(a[1])&&(d=a[1]);if(d)return d;let f=c.match(/^\[(?:IPv6:)?([^\]\s]+)\](?::\d+)?$/i);return!!(f&&b&&e(f[1]))&&f[1]}}},275711,(a,b,c)=>{"use strict";let{dkimSign:d,DkimSignStream:e}=a.r(833579),{dkimVerify:f}=a.r(90738),{spf:g}=a.r(857893),{dmarc:h,evaluateDmarc:i}=a.r(395067),{arc:j,createSeal:k,sealMessage:l,getARChain:m,verifyASChain:n}=a.r(459017),{bimi:o,validateVMC:p}=a.r(510464),{validateSvg:q}=a.r(757431),{parseReceived:r,getClientAddress:s}=a.r(456480),{formatDomain:t,getAlignment:u,formatAuthservId:v}=a.r(787767),w=a.r(69127),x=a.r(660526),{isIP:y}=a.r(504446);b.exports={authenticate:async(a,b)=>{let c,d,e,h;(b=Object.assign({},b)).mta=b.mta||x.hostname(),b.strict=!!b.strict;let l=v(b.mta,b.strict),m=await f(a,{resolver:b.resolver,sender:b.sender,seal:b.seal,minBitLength:b.minBitLength,rejectRsaSha1:b.rejectRsaSha1,strict:b.strict}),n=m.headers?.parsed.filter(a=>"received"===a.key).map(a=>r(a.line));if(b.trustReceived){let a=n?.find(a=>a.from?.value);if(a){let c=a.from.value,d=s(a.from);d&&!b.ip&&(b.ip=d),!c||b.helo||b.ip||(b.helo=c),a["envelope-from"]?.value&&!b.sender&&(b.sender=a["envelope-from"].value.replace(/[<>]/g,"").trim())}m.envelopeFrom&&!b.sender&&(b.sender=m.envelopeFrom)}!b.helo&&b.ip&&(b.helo=b.ip),b.helo&&y(b.helo)&&(b.helo=`[${b.helo}]`);let p=await g(b);b.disableArc||(c=await j(m.arc,{resolver:b.resolver,minBitLength:b.minBitLength,strict:b.strict,ip:b.ip}));let q=[],z=[],A=!1;if(m?.results?.forEach(a=>{z.push(`${w.foldLines(a.info,160)}`)}),p&&(z.push(w.foldLines(p.info,160)),A=p.header),c?.info&&z.push(`${w.foldLines(c.info,160)}`),!b.disableDmarc&&m?.headerFrom){let a;if({response:d,dkimAligned:a,reason:e}=await i({headerFrom:m.headerFrom,fromFields:m.fromFields,spfDomains:[].concat(p&&"pass"===p.status.result&&p.domain||[]),dkimDomains:(m.results||[]).filter(a=>"pass"===a.status.result).map(a=>({id:a.id,domain:a.signingDomain,aligned:a.status.aligned,underSized:a.status.underSized})),arcResult:c,resolver:b.resolver,strict:b.strict}),d?.info&&z.push(`${w.foldLines(d.info,160)}`),a&&d){let b=d.status.header.from;for(let c of m.results||[])"pass"===c.status.result?c.status.aligned=!!a.has(t(c.signingDomain))&&c.signingDomain:d.alignment.dkim.strict&&(c.status.aligned=c.status.aligned&&u(b,[c.signingDomain],!0)?.domain||!1)}}b.disableBimi||(h=await o({dmarc:d,headers:m.headers,bimiWithAlignedDkim:b.bimiWithAlignedDkim,resolver:b.resolver,strict:b.strict})),h?.info&&z.push(`${w.foldLines(h.info,160)}`);let B=`${l};\r
|
|
415
418
|
`+z.join(";\r\n "),C=`Authentication-Results: ${B}`;if(b.strict?(q.push(C),A&&q.push(A)):(A&&q.push(A),q.push(C)),c&&(c.authResults=B),m?.seal&&(["none","pass"].includes(c?.status?.result)||c?.status?.shouldSeal)){let a=await k(!1,{headers:m.headers,arc:m.arc,seal:Object.assign({cv:c.status.result,authResults:c.authResults,signTime:new Date},m.seal),strict:b.strict});a?.errors?.length&&(c.sealErrors=a.errors),q.unshift(...a?.headers||[])}let D={dkim:m,spf:p,dmarc:d||!1,arc:c||!1,bimi:h||!1,receivedChain:n,headers:q.join("\r\n")+"\r\n"};return!d&&e&&(D.dmarcSkipReason=e),D},dkimSign:d,DkimSignStream:e,dkimVerify:f,spf:g,dmarc:h,arc:j,sealMessage:l,getARChain:m,verifyASChain:n,createSeal:k,bimi:o,validateBimiVmc:p,validateBimiSvg:q}},643591,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});let d=/\s/,e=/^("(?:[^"\\]|\\[\s\S])*"@\S+)(?:\s+([\s\S]+))?$/,f=/^[^@\s]+@[^@\s]+$/,g=/^[^@\s]+@\S+$/,h=/\s*\b[^@\s]+@[^\s]+\b\s*/y;function i(a){return 32===a||a>=9&&a<=13||160===a||5760===a||a>=8192&&a<=8202||8232===a||8233===a||8239===a||8287===a||12288===a||65279===a}function j(a){return a>=48&&a<=57||a>=65&&a<=90||a>=97&&a<=122||95===a}function k(a,b){return j(a.charCodeAt(b-1))!==j(a.charCodeAt(b))}function l(a,b,c){for(let d=b;d<c;d++)if(64===a.charCodeAt(d))return d;return -1}class m{constructor(a){this.str=(a||"").toString(),this.operatorCurrent="",this.operatorExpecting="",this.node=null,this.escaped=!1,this.inDomainLiteral=!1,this.list=[],this.operators={'"':'"',"(":")","<":">",",":"",":":";",";":""}}tokenize(){let a=[];for(let a=0,b=this.str.length;a<b;a++){let c=this.str.charAt(a),d=a<b-1?this.str.charAt(a+1):null;this.checkChar(c,d)}return this.list.forEach(b=>{b.value=(b.value||"").toString().trim(),b.value&&a.push(b)}),a}checkChar(a,b){if(this.escaped||this.operatorExpecting||(this.inDomainLiteral||"["!==a?this.inDomainLiteral&&("]"===a||","===a||";"===a)&&(this.inDomainLiteral=!1):this.inDomainLiteral=!0),this.escaped);else if(a===this.operatorExpecting){this.node={type:"operator",value:a},b&&![" "," ","\r","\n",",",";"].includes(b)&&(this.node.noBreak=!0),this.list.push(this.node),this.node=null,this.operatorExpecting="",this.escaped=!1;return}else if(!this.operatorExpecting&&!this.inDomainLiteral&&a in this.operators){this.node={type:"operator",value:a},this.list.push(this.node),this.node=null,this.operatorExpecting=this.operators[a],this.escaped=!1;return}else if(['"',"'"].includes(this.operatorExpecting)&&"\\"===a){this.escaped=!0;return}this.node||(this.node={type:"text",value:""},this.list.push(this.node)),"\n"===a&&(a=" "),(a.charCodeAt(0)>=33||[" "," "].includes(a))&&(this.node.value+=a),this.escaped=!1}}c.default=function a(b,c){let j=(c=c||{})._depth||0;if(j>50)return[];let n=new m(b).tokenize(),o=[],p=[],q=[];n.forEach(a=>{"operator"===a.type&&(","===a.value||";"===a.value)?(p.length&&o.push(p),p=[]):p.push(a)}),p.length&&o.push(p),o.forEach(b=>{let c=function(b,c){let j=!1,m="text",n=[],o={address:[],comment:[],group:[],text:[],textWasQuoted:[]},p=!1,q={address:"",comment:"",group:"",text:""};for(let a=0,c=b.length;a<c;a++){let c=b[a],d=a?b[a-1]:null;if("operator"===c.type)switch(c.value){case"<":m="address",p=!1;break;case"(":m="comment",p=!1;break;case":":m="group",j=!0,p=!1;break;case'"':p=!p,m="text";break;default:m="text",p=!1}else if(c.value){let e=a>1?b[a-2]:null,f=d?.type==="operator"&&'"'===d.value&&!!d.noBreak&&e?.type==="operator"&&'"'===e.value;"address"===m&&(c.value=c.value.replace(/^[^<]*<\s*/,""));let g=o[m];d&&d.noBreak&&g.length&&(")"!==d.value||"@"===q[m]||"@"===c.value.charAt(0))?(o[m][o[m].length-1]+=c.value,c.value&&(q[m]=c.value.charAt(c.value.length-1)),"text"===m&&p&&(o.textWasQuoted[o.textWasQuoted.length-1]=!0)):(o[m].push(c.value),q[m]=c.value.charAt(c.value.length-1),"text"===m&&o.textWasQuoted.push(p||f))}}if(!o.text.length&&o.comment.length&&(o.text=o.comment,o.comment=[]),j){o.text=o.text.join(" ");let b=[];o.group.length&&a(o.group.join(","),{_depth:c+1}).forEach(a=>{a.group?b=b.concat(a.group):b.push(a)}),n.push({name:o.text||"",group:b})}else{if(!o.address.length&&o.text.length){for(let a=o.text.length-1;a>=0;a--)if(!o.textWasQuoted[a]&&f.test(o.text[a])){o.address=o.text.splice(a,1),o.textWasQuoted.splice(a,1);break}if(!o.address.length){let a=!1;for(let b=o.text.length-1;b>=0;b--)if(!o.textWasQuoted[b]){let c=o.text[b],d=c,e=function(a){let b=a.length,c=0;for(;c<b;){for(;c<b&&i(a.charCodeAt(c));)c++;if(c>=b)break;let d=c,e=c;for(;e<b&&!i(a.charCodeAt(e));)e++;let f=l(a,d,e);if(f>=0){let b=-1;for(let c=e;c>d;c--)if(k(a,c)){b=c;break}let c=d;for(;b>=0&&f>=0;){if(f>c&&e>f+1&&b>f+1){for(let b=c;b<f;b++)if(k(a,b)){if(b>d)return b;let c=d;for(;c>0&&i(a.charCodeAt(c-1));)c--;return c}}f=l(a,c=f+1,e)}}c=e}return -1}(c);if(e>=0){h.lastIndex=e;let b=h.exec(c);b&&(o.address=[b[0].trim()],a=!0,d=c.slice(0,e)+" "+c.slice(e+b[0].length))}if(o.text[b]=d.trim(),a)break}}}!o.text.length&&o.comment.length&&(o.text=o.comment,o.comment=[]),o.address.length>1&&(o.text=o.text.concat(o.address.splice(1)));let a=!o.address.length&&o.textWasQuoted.some(a=>a);o.text=o.text.join(" "),o.address=o.address.join(" "),a&&o.text&&(o.address=function(a){let b=a.lastIndexOf("@");if(b<0)return a;let c=a.substr(0,b);return/^[^\s"(),:;<>@[\\\]]+$/.test(c)||/^"(?:[^"\\]|\\[\s\S])*"$/.test(c)?a:'"'+c.replace(/["\\]/g,"\\$&")+'"@'+a.substr(b+1)}(o.text),o.text=""),function(a){let b,c;if(!d.test(a.address))return;let h=a.address.match(e);if(h){if(!h[2])return;b=h[1],c=[h[2]]}else{if(a.address.indexOf('"')>=0)return;let d=a.address.split(/\s+/),e=d.findIndex(a=>f.test(a));if(e<0&&(e=d.findIndex(a=>g.test(a))),e<0)return;b=d.splice(e,1)[0],c=d}a.address=b,a.text=[a.text].concat(c).filter(a=>a).join(" ")}(o);let b={address:o.address||o.text||"",name:o.text||o.address||""};b.address===b.name&&(/@/.test(b.address||"")?b.name="":b.address=""),n.push(b)}return n}(b,j);for(let a=0;a<c.length;a++)q.push(c[a])});let r=[];for(let a=q.length-1;a>=0;a--){let b=q[a],c=r.length?r[r.length-1]:null;c&&""===b.address&&b.name&&!b.group&&c.address&&c.name?c.name=b.name+", "+c.name:r.push(b)}if(r.reverse(),q=r,c.flatten){let a=[],b=c=>{c.forEach(c=>{if(c.group)return b(c.group);a.push(c)})};return b(q),a}return q},b.exports=c.default,Object.defineProperty(b.exports,"default",{value:c.default,enumerable:!1,writable:!0,configurable:!0})},48981,(a,b,c)=>{"use strict";let d=a.r(254799),e=a.r(688947).Transform;b.exports=class extends e{constructor(a,b){super(),this.attachment=a,this.algo=(b||"md5").toLowerCase(),this.hash=d.createHash(b),this.byteCount=0}_transform(a,b,c){this.hash.update(a),this.byteCount+=a.length,c(null,a)}_flush(a){this.attachment.checksum=this.hash.digest("hex"),this.attachment.size=this.byteCount,a()}}},494125,(a,b,c)=>{"use strict";var d,e;Object.defineProperty(c,"__esModule",{value:!0}),c.Doctype=c.CDATA=c.Tag=c.Style=c.Script=c.Comment=c.Directive=c.Text=c.Root=c.isTag=c.ElementType=void 0,(e=d=c.ElementType||(c.ElementType={})).Root="root",e.Text="text",e.Directive="directive",e.Comment="comment",e.Script="script",e.Style="style",e.Tag="tag",e.CDATA="cdata",e.Doctype="doctype",c.isTag=function(a){return a.type===d.Tag||a.type===d.Script||a.type===d.Style},c.Root=d.Root,c.Text=d.Text,c.Directive=d.Directive,c.Comment=d.Comment,c.Script=d.Script,c.Style=d.Style,c.Tag=d.Tag,c.CDATA=d.CDATA,c.Doctype=d.Doctype},292089,(a,b,c)=>{"use strict";var d,e=a.e&&a.e.__extends||(d=function(a,b){return(d=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(a,b){a.__proto__=b}||function(a,b){for(var c in b)Object.prototype.hasOwnProperty.call(b,c)&&(a[c]=b[c])})(a,b)},function(a,b){if("function"!=typeof b&&null!==b)throw TypeError("Class extends value "+String(b)+" is not a constructor or null");function c(){this.constructor=a}d(a,b),a.prototype=null===b?Object.create(b):(c.prototype=b.prototype,new c)}),f=a.e&&a.e.__assign||function(){return(f=Object.assign||function(a){for(var b,c=1,d=arguments.length;c<d;c++)for(var e in b=arguments[c])Object.prototype.hasOwnProperty.call(b,e)&&(a[e]=b[e]);return a}).apply(this,arguments)};Object.defineProperty(c,"__esModule",{value:!0}),c.cloneNode=c.hasChildren=c.isDocument=c.isDirective=c.isComment=c.isText=c.isCDATA=c.isTag=c.Element=c.Document=c.CDATA=c.NodeWithChildren=c.ProcessingInstruction=c.Comment=c.Text=c.DataNode=c.Node=void 0;var g=a.r(494125),h=function(){function a(){this.parent=null,this.prev=null,this.next=null,this.startIndex=null,this.endIndex=null}return Object.defineProperty(a.prototype,"parentNode",{get:function(){return this.parent},set:function(a){this.parent=a},enumerable:!1,configurable:!0}),Object.defineProperty(a.prototype,"previousSibling",{get:function(){return this.prev},set:function(a){this.prev=a},enumerable:!1,configurable:!0}),Object.defineProperty(a.prototype,"nextSibling",{get:function(){return this.next},set:function(a){this.next=a},enumerable:!1,configurable:!0}),a.prototype.cloneNode=function(a){return void 0===a&&(a=!1),w(this,a)},a}();c.Node=h;var i=function(a){function b(b){var c=a.call(this)||this;return c.data=b,c}return e(b,a),Object.defineProperty(b.prototype,"nodeValue",{get:function(){return this.data},set:function(a){this.data=a},enumerable:!1,configurable:!0}),b}(h);c.DataNode=i;var j=function(a){function b(){var b=null!==a&&a.apply(this,arguments)||this;return b.type=g.ElementType.Text,b}return e(b,a),Object.defineProperty(b.prototype,"nodeType",{get:function(){return 3},enumerable:!1,configurable:!0}),b}(i);c.Text=j;var k=function(a){function b(){var b=null!==a&&a.apply(this,arguments)||this;return b.type=g.ElementType.Comment,b}return e(b,a),Object.defineProperty(b.prototype,"nodeType",{get:function(){return 8},enumerable:!1,configurable:!0}),b}(i);c.Comment=k;var l=function(a){function b(b,c){var d=a.call(this,c)||this;return d.name=b,d.type=g.ElementType.Directive,d}return e(b,a),Object.defineProperty(b.prototype,"nodeType",{get:function(){return 1},enumerable:!1,configurable:!0}),b}(i);c.ProcessingInstruction=l;var m=function(a){function b(b){var c=a.call(this)||this;return c.children=b,c}return e(b,a),Object.defineProperty(b.prototype,"firstChild",{get:function(){var a;return null!=(a=this.children[0])?a:null},enumerable:!1,configurable:!0}),Object.defineProperty(b.prototype,"lastChild",{get:function(){return this.children.length>0?this.children[this.children.length-1]:null},enumerable:!1,configurable:!0}),Object.defineProperty(b.prototype,"childNodes",{get:function(){return this.children},set:function(a){this.children=a},enumerable:!1,configurable:!0}),b}(h);c.NodeWithChildren=m;var n=function(a){function b(){var b=null!==a&&a.apply(this,arguments)||this;return b.type=g.ElementType.CDATA,b}return e(b,a),Object.defineProperty(b.prototype,"nodeType",{get:function(){return 4},enumerable:!1,configurable:!0}),b}(m);c.CDATA=n;var o=function(a){function b(){var b=null!==a&&a.apply(this,arguments)||this;return b.type=g.ElementType.Root,b}return e(b,a),Object.defineProperty(b.prototype,"nodeType",{get:function(){return 9},enumerable:!1,configurable:!0}),b}(m);c.Document=o;var p=function(a){function b(b,c,d,e){void 0===d&&(d=[]),void 0===e&&(e="script"===b?g.ElementType.Script:"style"===b?g.ElementType.Style:g.ElementType.Tag);var f=a.call(this,d)||this;return f.name=b,f.attribs=c,f.type=e,f}return e(b,a),Object.defineProperty(b.prototype,"nodeType",{get:function(){return 1},enumerable:!1,configurable:!0}),Object.defineProperty(b.prototype,"tagName",{get:function(){return this.name},set:function(a){this.name=a},enumerable:!1,configurable:!0}),Object.defineProperty(b.prototype,"attributes",{get:function(){var a=this;return Object.keys(this.attribs).map(function(b){var c,d;return{name:b,value:a.attribs[b],namespace:null==(c=a["x-attribsNamespace"])?void 0:c[b],prefix:null==(d=a["x-attribsPrefix"])?void 0:d[b]}})},enumerable:!1,configurable:!0}),b}(m);function q(a){return(0,g.isTag)(a)}function r(a){return a.type===g.ElementType.CDATA}function s(a){return a.type===g.ElementType.Text}function t(a){return a.type===g.ElementType.Comment}function u(a){return a.type===g.ElementType.Directive}function v(a){return a.type===g.ElementType.Root}function w(a,b){if(void 0===b&&(b=!1),s(a))c=new j(a.data);else if(t(a))c=new k(a.data);else if(q(a)){var c,d=b?x(a.children):[],e=new p(a.name,f({},a.attribs),d);d.forEach(function(a){return a.parent=e}),null!=a.namespace&&(e.namespace=a.namespace),a["x-attribsNamespace"]&&(e["x-attribsNamespace"]=f({},a["x-attribsNamespace"])),a["x-attribsPrefix"]&&(e["x-attribsPrefix"]=f({},a["x-attribsPrefix"])),c=e}else if(r(a)){var d=b?x(a.children):[],g=new n(d);d.forEach(function(a){return a.parent=g}),c=g}else if(v(a)){var d=b?x(a.children):[],h=new o(d);d.forEach(function(a){return a.parent=h}),a["x-mode"]&&(h["x-mode"]=a["x-mode"]),c=h}else if(u(a)){var i=new l(a.name,a.data);null!=a["x-name"]&&(i["x-name"]=a["x-name"],i["x-publicId"]=a["x-publicId"],i["x-systemId"]=a["x-systemId"]),c=i}else throw Error("Not implemented yet: ".concat(a.type));return c.startIndex=a.startIndex,c.endIndex=a.endIndex,null!=a.sourceCodeLocation&&(c.sourceCodeLocation=a.sourceCodeLocation),c}function x(a){for(var b=a.map(function(a){return w(a,!0)}),c=1;c<b.length;c++)b[c].prev=b[c-1],b[c-1].next=b[c];return b}c.Element=p,c.isTag=q,c.isCDATA=r,c.isText=s,c.isComment=t,c.isDirective=u,c.isDocument=v,c.hasChildren=function(a){return Object.prototype.hasOwnProperty.call(a,"children")},c.cloneNode=w},718186,(a,b,c)=>{"use strict";var d=a.e&&a.e.__createBinding||(Object.create?function(a,b,c,d){void 0===d&&(d=c);var e=Object.getOwnPropertyDescriptor(b,c);(!e||("get"in e?!b.__esModule:e.writable||e.configurable))&&(e={enumerable:!0,get:function(){return b[c]}}),Object.defineProperty(a,d,e)}:function(a,b,c,d){void 0===d&&(d=c),a[d]=b[c]}),e=a.e&&a.e.__exportStar||function(a,b){for(var c in a)"default"===c||Object.prototype.hasOwnProperty.call(b,c)||d(b,a,c)};Object.defineProperty(c,"__esModule",{value:!0}),c.DomHandler=void 0;var f=a.r(494125),g=a.r(292089);e(a.r(292089),c);var h={withStartIndices:!1,withEndIndices:!1,xmlMode:!1},i=function(){function a(a,b,c){this.dom=[],this.root=new g.Document(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null,"function"==typeof b&&(c=b,b=h),"object"==typeof a&&(b=a,a=void 0),this.callback=null!=a?a:null,this.options=null!=b?b:h,this.elementCB=null!=c?c:null}return a.prototype.onparserinit=function(a){this.parser=a},a.prototype.onreset=function(){this.dom=[],this.root=new g.Document(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null},a.prototype.onend=function(){this.done||(this.done=!0,this.parser=null,this.handleCallback(null))},a.prototype.onerror=function(a){this.handleCallback(a)},a.prototype.onclosetag=function(){this.lastNode=null;var a=this.tagStack.pop();this.options.withEndIndices&&(a.endIndex=this.parser.endIndex),this.elementCB&&this.elementCB(a)},a.prototype.onopentag=function(a,b){var c=this.options.xmlMode?f.ElementType.Tag:void 0,d=new g.Element(a,b,void 0,c);this.addNode(d),this.tagStack.push(d)},a.prototype.ontext=function(a){var b=this.lastNode;if(b&&b.type===f.ElementType.Text)b.data+=a,this.options.withEndIndices&&(b.endIndex=this.parser.endIndex);else{var c=new g.Text(a);this.addNode(c),this.lastNode=c}},a.prototype.oncomment=function(a){if(this.lastNode&&this.lastNode.type===f.ElementType.Comment){this.lastNode.data+=a;return}var b=new g.Comment(a);this.addNode(b),this.lastNode=b},a.prototype.oncommentend=function(){this.lastNode=null},a.prototype.oncdatastart=function(){var a=new g.Text(""),b=new g.CDATA([a]);this.addNode(b),a.parent=b,this.lastNode=a},a.prototype.oncdataend=function(){this.lastNode=null},a.prototype.onprocessinginstruction=function(a,b){var c=new g.ProcessingInstruction(a,b);this.addNode(c)},a.prototype.handleCallback=function(a){if("function"==typeof this.callback)this.callback(a,this.dom);else if(a)throw a},a.prototype.addNode=function(a){var b=this.tagStack[this.tagStack.length-1],c=b.children[b.children.length-1];this.options.withStartIndices&&(a.startIndex=this.parser.startIndex),this.options.withEndIndices&&(a.endIndex=this.parser.endIndex),b.children.push(a),c&&(a.prev=c,c.next=a),a.parent=b,this.lastNode=null},a}();c.DomHandler=i,c.default=i},321528,(a,b,c)=>{"use strict";let d=/\n/g;function e(a,b){var c,d,e,g;let h;return{name:a.name,discard:a.discard,push:a.push,pop:a.pop,regex:function(a,b){if(0===a.name.length)throw Error(`Rule #${b} has empty name, which is not allowed.`);if(Object.prototype.hasOwnProperty.call(a,"regex")){var c=a.regex;if(c.global)throw Error(`Regular expression /${c.source}/${c.flags} contains the global flag, which is not allowed.`);return c.sticky?c:RegExp(c.source,c.flags+"y")}if(Object.prototype.hasOwnProperty.call(a,"str")){if(0===a.str.length)throw Error(`Rule #${b} ("${a.name}") has empty "str" property, which is not allowed.`);return RegExp(f(a.str),"y")}return RegExp(f(a.name),"y")}(a,b),replacer:(c=a,Object.prototype.hasOwnProperty.call(c,"replace"))?(d=a.regex,e=a.replace,h=(g=d).sticky?new RegExp(g.source,g.flags.replace("y","")):g,a=>a.replace(h,e)):void 0}}function f(a){return a.replace(/[-[\]{}()*+!<=:?./\\^$|#\s,]/g,"\\$&")}c.createLexer=function(a,b="",c={}){let f="string"==typeof b?b:"",g=a.map(e),h=!!("string"!=typeof b?b:c).lineNumbers;return function(a,b=0){let c,e,i=h?((c=[...a.matchAll(d)].map(a=>a.index||0)).unshift(-1),e=1,a=>{for(;e>1&&a<c[e-1];)e--;for(;e<c.length&&a>c[e];)e++;return{line:e,column:a-c[e-1]}}):void 0,j={line:0,column:0},k=b,l=[];d:for(;k<a.length;){let b=!1;for(let c of g){c.regex.lastIndex=k;let d=c.regex.exec(a);if(d&&d[0].length>0){if(c.discard||(i&&(j=i(k)),l.push({state:f,name:c.name,text:c.replacer?c.replacer(d[0]):d[0],offset:k,len:d[0].length,line:j.line,column:j.column})),k=c.regex.lastIndex,b=!0,c.push){let b=c.push(a,k);l.push(...b.tokens),k=b.offset}if(c.pop)break d;break}}if(!b)break}return{tokens:l,offset:k,complete:a.length<=k}}}},858413,(a,b,c)=>{"use strict";c.clamp=function(a,b,c){return Math.max(a,Math.min(b,c))},c.escapeWhitespace=function(a){return a.replace(/(\t)|(\r)|(\n)/g,(a,b,c)=>b?"\\t":c?"\\r":"\\n")}},905782,(a,b,c)=>{"use strict";var d=a.r(858413);function e(a,b){return a.matched?{matched:!0,position:a.position,value:b(a.value,a.position)}:a}function f(a,b){return a.matched?b(a):a}function g(a,b,c){return(d,g)=>f(a(d,g),a=>e(b(d,a.position),(b,e)=>c(a.value,b,d,g,e)))}function h(a,b,c,d){return(g,h)=>f(a(g,h),a=>f(b(g,a.position),b=>e(c(g,b.position),(c,e)=>d(a.value,b.value,c,g,h,e))))}function i(a){return(b,c)=>f(a(b,c),a=>({matched:!0,position:c,value:a.value}))}function j(...a){return(b,c)=>{let d=[],e=c;for(let c of a){let a=c(b,e);if(!a.matched)return{matched:!1};d.push(a.value),e=a.position}return{matched:!0,position:e,value:d}}}function k(a,b){return(c,d)=>f(a(c,d),a=>b(a.value,c,d,a.position)(c,a.position))}function l(a,b){return(c,d)=>{let e=!0,f=a,g=d;do{let a=b(f,c,g)(c,g);a.matched?(f=a.value,g=a.position):e=!1}while(e)return{matched:!0,position:g,value:f}}}function m(a,b){return(c,d)=>{let e=a(c,d);return e.matched?e:b(c,d)}}function n(a){return(b,c)=>({matched:!0,position:c,value:a})}function o(a,b){return b<a.tokens.length?{matched:!1}:{matched:!0,position:b,value:!0}}function p(...a){return(b,c)=>{for(let d of a){let a=d(b,c);if(a.matched)return a}return{matched:!1}}}function q(a,b){return(c,d)=>e(a(c,d),(a,e)=>b(a,c,d,e))}function r(a){return q(a,a=>a.flatMap(a=>a))}function s(a,b,c){return l(a,a=>q(b,(b,d,e,f)=>c(a,b,d,e,f)))}function t(a,b){return(c,d)=>{let e=[],f=!0;do{let g=a(c,d);g.matched&&b(g.value,e.length+1,c,d,g.position)?(e.push(g.value),d=g.position):f=!1}while(f)return{matched:!0,position:d,value:e}}}function u(a){return t(a,()=>!0)}function v(a){return g(a,u(a),(a,b)=>[a,...b])}function w(a,b){return(c,d)=>f(a(c,d),a=>b(a,c,d))}function x(a,b,c){return h(a,b,c,(a,b)=>b)}function y(a,b,c){return q(u(a),(a,d,e,f)=>a.reduceRight((a,b)=>c(b,a,d,e,f),b))}function z(a,b){return g(a,b,(a,b)=>b)}function A(a,b){return g(a,u(z(b,a)),(a,b)=>[a,...b])}function B(...a){return q(j(...a),()=>null)}function C(a,b){return(c,d)=>f(a(c,d),a=>b(a.value,c,d,a.position)?a:{matched:!1})}function D(a,b,c,e=3){let f=a.tokens.length,g=d.clamp(0,b-e,f-e),h=d.clamp(e,b+1+e,f),i=a.tokens.slice(g,h),j=[],k=String(h-1).length+1;b<0&&j.push(`${String(b).padStart(k)} >>`),0<g&&j.push("...".padStart(k+6));for(let a=0;a<i.length;a++){let e=g+a;j.push(`${String(e).padStart(k)} ${e===b?">":" "} ${d.escapeWhitespace(c(i[a]))}`)}return h<f&&j.push("...".padStart(k+6)),f<=b&&j.push(`${String(b).padStart(k)} >>`),j.join("\n")}c.ab=g,c.abc=h,c.action=function(a){return(b,c)=>(a(b,c),{matched:!0,position:c,value:null})},c.ahead=i,c.all=j,c.and=j,c.any=function(a,b){return b<a.tokens.length?{matched:!0,position:b+1,value:a.tokens[b]}:{matched:!1}},c.between=x,c.chain=k,c.chainReduce=l,c.choice=p,c.condition=function(a,b,c){return(d,e)=>a(d,e)?b(d,e):c(d,e)},c.decide=function(a){return(b,c)=>f(a(b,c),a=>a.value(b,a.position))},c.discard=B,c.eitherOr=m,c.emit=n,c.end=o,c.eof=o,c.error=function(a){return(b,c)=>{throw Error(a instanceof Function?a(b,c):a)}},c.fail=function(a,b){return{matched:!1}},c.filter=C,c.first=p,c.flatten=function(...a){return r(j(...a))},c.flatten1=r,c.guard=C,c.last=function(...a){return(b,c)=>{for(let d=a.length-1;d>=0;d--){let e=a[d](b,c);if(e.matched)return e}return{matched:!1}}},c.left=function(a,b){return g(a,b,a=>a)},c.leftAssoc1=function(a,b){return k(a,a=>s(a,b,(a,b)=>b(a)))},c.leftAssoc2=function(a,b,c){return k(a,a=>s(a,g(b,c,(a,b)=>[a,b]),(a,[b,c])=>b(a,c)))},c.longest=function(...a){return(b,c)=>{let d;for(let e of a){let a=e(b,c);a.matched&&(!d||d.position<a.position)&&(d=a)}return d||{matched:!1}}},c.lookAhead=i,c.make=function(a){return(b,c)=>({matched:!0,position:c,value:a(b,c)})},c.many=u,c.many1=v,c.map=q,c.map1=w,c.mapR=w,c.match=function(a,b,c){return a({tokens:b,options:c},0).value},c.middle=x,c.not=function(a){return(b,c)=>a(b,c).matched?{matched:!1}:{matched:!0,position:c,value:!0}},c.of=n,c.option=function(a,b){return(c,d)=>{let e=a(c,d);return e.matched?e:{matched:!0,position:d,value:b}}},c.or=p,c.otherwise=m,c.parse=function(a,b,c,d=JSON.stringify){let e={tokens:b,options:c},f=a(e,0);if(!f.matched)throw Error("No match");if(f.position<e.tokens.length)throw Error(`Partial match. Parsing stopped at:
|
|
416
419
|
${D(e,f.position,d)}`);return f.value},c.parserPosition=D,c.peek=function(a,b){return(c,d)=>{let e=a(c,d);return b(e,c,d),e}},c.recursive=function(a){return function(b,c){return a()(b,c)}},c.reduceLeft=s,c.reduceRight=y,c.refine=C,c.remainingTokensNumber=function(a,b){return a.tokens.length-b},c.right=z,c.rightAssoc1=function(a,b){return g(y(a,a=>a,(a,b)=>c=>a(b(c))),b,(a,b)=>a(b))},c.rightAssoc2=function(a,b,c){return g(y(g(a,b,(a,b)=>[a,b]),a=>a,([a,b],c)=>d=>b(a,c(d))),c,(a,b)=>a(b))},c.satisfy=function(a){return(b,c)=>c<b.tokens.length&&a(b.tokens[c],b,c)?{matched:!0,position:c+1,value:b.tokens[c]}:{matched:!1}},c.sepBy=function(a,b){return m(A(a,b),n([]))},c.sepBy1=A,c.skip=B,c.some=v,c.start=function(a,b){return 0!==b?{matched:!1}:{matched:!0,position:b,value:!0}},c.takeMinMax=function(a,b,c){return(d,e)=>{let f=[],g=e;for(let b=0;b<(c??1/0);b++){let b=a(d,g);if(b.matched)f.push(b.value),g=b.position;else break}return void 0!==b&&f.length<b?{matched:!1}:{matched:!0,position:g,value:f}}},c.takeN=function(a,b){return(c,d)=>{let e=[],f=d;for(let d=0;d<b;d++){let b=a(c,f);if(!b.matched)return{matched:!1};e.push(b.value),f=b.position}return{matched:!0,position:f,value:e}}},c.takeUntil=function(a,b){return t(a,(a,c,d,e,f)=>!b(a,c,d,e,f))},c.takeUntilP=function(a,b){return t(a,(a,c,d,e)=>!b(d,e).matched)},c.takeWhile=t,c.takeWhileP=function(a,b){return t(a,(a,c,d,e)=>b(d,e).matched)},c.token=function(a,b){return(c,d)=>{let e,f=d;return d<c.tokens.length?void 0!==(e=a(c.tokens[d],c,d))&&f++:b?.(c,d),void 0===e?{matched:!1}:{matched:!0,position:f,value:e}}},c.tryParse=function(a,b,c){let d=a({tokens:b,options:c},0);return d.matched?d.value:void 0}},61631,(a,b,c)=>{"use strict";var d,e=a.r(321528),f=a.r(905782),g=(d=Object.create(null),f&&Object.keys(f).forEach(function(a){if("default"!==a){var b=Object.getOwnPropertyDescriptor(f,a);Object.defineProperty(d,a,b.get?b:{enumerable:!0,get:function(){return f[a]}})}}),d.default=f,Object.freeze(d));let h="(?:\\n|\\r\\n|\\r|\\f)",i="[^\\x00-\\x7F]",j="(?:\\\\[0-9a-f]{1,6}(?:\\r\\n|[ \\n\\r\\t\\f])?)",k="(?:\\\\[^\\n\\r\\f0-9a-f])",l=`(?:[_a-z]|${i}|${j}|${k})`,m=`(?:[_a-z0-9-]|${i}|${j}|${k})`,n=`(?:${m}+)`,o=`(?:[-]?${l}${m}*)`,p=`'([^\\n\\r\\f\\\\']|\\\\${h}|${i}|${j}|${k})*'`,q=`"([^\\n\\r\\f\\\\"]|\\\\${h}|${i}|${j}|${k})*"`,r=e.createLexer([{name:"ws",regex:RegExp("(?:[ \\t\\r\\n\\f]*)")},{name:"hash",regex:RegExp(`#${n}`,"i")},{name:"ident",regex:RegExp(o,"i")},{name:"str1",regex:RegExp(p,"i")},{name:"str2",regex:RegExp(q,"i")},{name:"*"},{name:"."},{name:","},{name:"["},{name:"]"},{name:"="},{name:">"},{name:"|"},{name:"+"},{name:"~"},{name:"^"},{name:"$"},{name:":"},{name:"("},{name:")"}]),s=e.createLexer([{name:"unicode",regex:RegExp(j,"i")},{name:"escape",regex:RegExp(k,"i")},{name:"any",regex:RegExp("[\\s\\S]","i")}]);function t([a,b,c],[d,e,f]){return[a+d,b+e,c+f]}function u([a,b,c],[d,e,f]){return a>d||a===d&&(b>e||b===e&&c>=f)?[a,b,c]:[d,e,f]}function v(a){return a.reduce(u,[0,0,0])}let w=g.token(a=>"unicode"===a.name?String.fromCodePoint(parseInt(a.text.slice(1),16)):void 0),x=g.token(a=>"escape"===a.name?a.text.slice(1):void 0),y=g.token(a=>"any"===a.name?a.text:void 0),z=g.map(g.many(g.or(w,x,y)),a=>a.join(""));function A(a){return z({tokens:s(a).tokens,options:void 0},0).value}function B(a){return g.token(b=>b.name===a||void 0)}let C=g.token(a=>"ws"===a.name?null:void 0),D=g.option(C,null);function E(a){return g.middle(D,a,D)}let F=g.token(a=>"ident"===a.name?A(a.text):void 0),G=g.token(a=>"hash"===a.name?A(a.text.slice(1)):void 0),H=g.token(a=>a.name.startsWith("str")?A(a.text.slice(1,-1)):void 0),I=g.left(g.option(F,""),B("|")),J=g.eitherOr(g.ab(I,F,(a,b)=>({name:b,namespace:a})),g.map(F,a=>({name:a,namespace:null}))),K=g.eitherOr(g.ab(I,B("*"),a=>({type:"universal",namespace:a,specificity:[0,0,0]})),g.map(B("*"),()=>({type:"universal",namespace:null,specificity:[0,0,0]}))),L=g.map(J,({name:a,namespace:b})=>({type:"tag",name:a,namespace:b,specificity:[0,0,1]})),M=g.ab(B("."),F,(a,b)=>({type:"class",name:b,specificity:[0,1,0]})),N=g.map(G,a=>({type:"id",name:a,specificity:[1,0,0]})),O=g.token(a=>{if("ident"===a.name){if("i"===a.text||"I"===a.text)return"i";if("s"===a.text||"S"===a.text)return"s"}}),P=g.eitherOr(g.ab(H,g.option(g.right(D,O),null),(a,b)=>({value:a,modifier:b})),g.ab(F,g.option(g.right(C,O),null),(a,b)=>({value:a,modifier:b}))),Q=g.choice(g.map(B("="),()=>"="),g.ab(B("~"),B("="),()=>"~="),g.ab(B("|"),B("="),()=>"|="),g.ab(B("^"),B("="),()=>"^="),g.ab(B("$"),B("="),()=>"$="),g.ab(B("*"),B("="),()=>"*=")),R=g.abc(B("["),E(J),B("]"),(a,{name:b,namespace:c})=>({type:"attrPresence",name:b,namespace:c,specificity:[0,1,0]})),S=g.middle(B("["),g.abc(E(J),Q,E(P),({name:a,namespace:b},c,{value:d,modifier:e})=>({type:"attrValue",name:a,namespace:b,matcher:c,value:d,modifier:e,specificity:[0,1,0]})),B("]")),T=g.abc(B(":"),F,g.not(g.ahead(B("("))),(a,b)=>({type:"pc",name:b,specificity:[0,1,0]}));function U(a,b,c){return g.abc(g.middle(B(":"),g.filter(F,b=>b.toLowerCase()===a.toLowerCase()),g.eitherOr(B("("),g.error(`Expected opening parenthesis in :${a}()`))),g.eitherOr(E(b),g.error(`Expected ${c} in :${a}()`)),g.eitherOr(B(")"),g.error(`Expected closing parenthesis in :${a}()`)),(a,b)=>({name:a,content:b}))}let V=g.map(U("is",g.recursive(()=>ae),"selector list"),a=>({type:"fpc:is",name:a.name,list:a.content.list,specificity:v(a.content.list.map(a=>a.specificity))})),W=g.map(U("where",g.recursive(()=>ae),"selector list"),a=>({type:"fpc:where",name:a.name,list:a.content.list,specificity:[0,0,0]})),X=g.map(U("not",g.recursive(()=>ae),"selector list"),a=>({type:"fpc:not",name:a.name,list:a.content.list,specificity:v(a.content.list.map(a=>a.specificity))})),Y=g.or(V,W,X),Z=g.eitherOr(R,S),$=g.eitherOr(K,L),_=g.choice(N,M,Z,Y,T),aa=g.map(g.eitherOr(g.flatten($,g.many(_)),g.many1(_)),a=>({type:"compound",list:a,specificity:a.map(a=>a.specificity).reduce(t,[0,0,0])})),ab=g.choice(g.map(B(">"),()=>">"),g.map(B("+"),()=>"+"),g.map(B("~"),()=>"~"),g.ab(B("|"),B("|"),()=>"||")),ac=g.eitherOr(E(ab),g.map(C,()=>" ")),ad=g.leftAssoc2(aa,g.map(ac,a=>(b,c)=>({type:"compound",list:[...c.list,{type:"combinator",combinator:a,left:b,specificity:b.specificity}],specificity:t(b.specificity,c.specificity)})),aa),ae=g.leftAssoc2(g.map(ad,a=>({type:"list",list:[a]})),g.map(E(B(",")),()=>(a,b)=>({type:"list",list:[...a.list,b]})),ad);function af(a,b){if(!("string"==typeof b||b instanceof String))throw Error("Expected a selector string. Actual input is not a string!");let c=r(b);if(!c.complete)throw Error(`The input "${b}" was only partially tokenized, stopped at offset ${c.offset}!
|
|
417
420
|
`+ag(b,c.offset));let d=E(a)({tokens:c.tokens,options:void 0},0);if(!d.matched)throw Error(`No match for "${b}" input!`);if(d.position<c.tokens.length){let a=c.tokens[d.position];throw Error(`The input "${b}" was only partially parsed, stopped at offset ${a.offset}!
|