@snf/qa-bot-core 0.2.25 → 0.2.26

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.
@@ -1 +1 @@
1
- {"version":3,"file":"qa-bot-core.js","sources":["../node_modules/style-inject/dist/style-inject.es.js","../node_modules/react-chatbotify/dist/index.js","../node_modules/@rcb-plugins/html-renderer/dist/index.js","../node_modules/@rcb-plugins/markdown-renderer/dist/index.js","../node_modules/@rcb-plugins/input-validator/dist/index.js","../src/components/BotController.tsx","../src/components/LoginButton.tsx","../src/components/UserIcon.tsx","../node_modules/uuid/dist/esm-browser/stringify.js","../node_modules/uuid/dist/esm-browser/rng.js","../node_modules/uuid/dist/esm-browser/native.js","../node_modules/uuid/dist/esm-browser/v4.js","../src/utils/logger.ts","../src/utils/session-utils.ts","../src/contexts/SessionContext.tsx","../src/components/HistoryButton.tsx","../src/utils/fix-markdown-links.ts","../src/components/icons/BaseIcon.js","../src/components/icons/RefreshIcon.js","../src/contexts/AnalyticsContext.tsx","../src/components/NewChatButton.tsx","../src/utils/jsx-text-extractor.ts","../src/components/SessionMessageTracker.tsx","../src/hooks/useKeyboardNavigation.js","../src/utils/flows/qa-flow.tsx","../src/config.ts","../src/components/QABot.tsx","../src/hooks/useThemeColors.ts","../src/hooks/useUpdateHeader.ts","../src/hooks/useChatBotSettings.tsx","../src/utils/getProcessedText.ts","../src/hooks/useFocusableSendButton.ts","../src/hooks/useScreenshotCapture.ts","../src/components/icons/UploadIcon.js","../src/utils/file-utils.ts","../src/components/FileUploadComponent.tsx","../src/utils/flow-settings.ts","../src/utils/with-history.ts","../src/lib.tsx"],"sourcesContent":["function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import \"./style.css\";\nimport { jsxs as W, jsx as l, Fragment as oA } from \"react/jsx-runtime\";\nimport * as J from \"react\";\nimport { forwardRef as cA, createContext as vA, useContext as hA, isValidElement as GA, Fragment as YA, useRef as eA, useState as G, useCallback as x, useEffect as Z, createElement as $A, useMemo as dA } from \"react\";\nimport Te from \"react-dom/server\";\nconst _ = {\n AUDIO_BUTTON: \"audio-button\",\n NOTIFICATION_BUTTON: \"notification-button\",\n CLOSE_CHAT_BUTTON: \"close-chat-button\",\n SEND_MESSAGE_BUTTON: \"send-button\",\n VOICE_MESSAGE_BUTTON: \"voice-button\",\n FILE_ATTACHMENT_BUTTON: \"file-attachment-button\",\n EMOJI_PICKER_BUTTON: \"emoji-button\"\n}, Me = \"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='32'%20height='32'%20viewBox='0%200%2042%2042'%3e%3cpath%20style='fill:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke:%23b00000;stroke-opacity:1;stroke-miterlimit:4'%20d='M17%209a8%208%200%200%201-8%208%208%208%200%200%201-8-8%208%208%200%200%201%208-8%208%208%200%200%201%208%208Zm0%200'%20transform='rotate(.086)%20scale(1.77778)'/%3e%3cpath%20style='fill:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke:%23b00000;stroke-opacity:1;stroke-miterlimit:10'%20d='M14.66%2014.66%203.34%203.34'%20transform='rotate(.086)%20scale(1.77778)'/%3e%3c/svg%3e\", Ae = \"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xml:space='preserve'%20viewBox='0%200%201000%201000'%3e%3crect%20width='100%25'%20height='100%25'%20fill='%23fff'/%3e%3cg%3e%3crect%20width='45'%20height='30'%20x='-22.5'%20y='-15'%20rx='1.5'%20ry='1.5'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2337547a;fill-rule:nonzero;opacity:1'%20transform='rotate(90%20-99%20362)%20scale(3.4003)'/%3e%3cpath%20d='M0%2075q14%200%2014%2017%200%2016-14%2016Z'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2398b0ca;fill-rule:nonzero;opacity:1'%20transform='rotate(180%20106%20386)%20scale(3.4003)'/%3e%3crect%20width='25'%20height='4'%20x='-12.5'%20y='-2'%20rx='.2'%20ry='.2'%20style='stroke:%2346648c;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2346648c;fill-rule:nonzero;opacity:1'%20transform='rotate(90%20-46%20282)%20scale(3.4003)'/%3e%3cpath%20d='M19%2065h4l5%204v1H14v-1Z'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2346648c;fill-rule:nonzero;opacity:1'%20transform='translate(165%20150)%20scale(3.4003)'/%3e%3crect%20width='25'%20height='2'%20x='-12.5'%20y='-1'%20rx='.1'%20ry='.1'%20style='stroke:%2398b0ca;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2398b0ca;fill-rule:nonzero;opacity:1'%20transform='rotate(90%20-3%20240)%20scale(3.4003)'/%3e%3ccircle%20r='7.5'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%23a478fc;fill-rule:nonzero;opacity:1'%20transform='translate(236%20175)%20scale(3.4003)'/%3e%3crect%20width='45'%20height='30'%20x='-22.5'%20y='-15'%20rx='1.5'%20ry='1.5'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2337547a;fill-rule:nonzero;opacity:1'%20transform='rotate(90%20139%20600)%20scale(3.4003)'/%3e%3cpath%20d='M184%2075q14%200%2014%2017%200%2016-14%2016Z'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2398b0ca;fill-rule:nonzero;opacity:1'%20transform='translate(165%20150)%20scale(3.4003)'/%3e%3crect%20width='25'%20height='4'%20x='-12.5'%20y='-2'%20rx='.2'%20ry='.2'%20style='stroke:%2346648c;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2346648c;fill-rule:nonzero;opacity:1'%20transform='rotate(90%20219%20548)%20scale(3.4003)'/%3e%3cpath%20d='M175%2065h4l5%204v1h-14v-1Z'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2346648c;fill-rule:nonzero;opacity:1'%20transform='translate(165%20150)%20scale(3.4003)'/%3e%3crect%20width='25'%20height='2'%20x='-12.5'%20y='-1'%20rx='.1'%20ry='.1'%20style='stroke:%2398b0ca;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2398b0ca;fill-rule:nonzero;opacity:1'%20transform='rotate(90%20262%20505)%20scale(3.4003)'/%3e%3ccircle%20r='7.5'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%23a478fc;fill-rule:nonzero;opacity:1'%20transform='translate(767%20175)%20scale(3.4003)'/%3e%3crect%20width='116.7'%20height='70'%20x='-58.4'%20y='-35'%20rx='31.5'%20ry='31.5'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2371c9fc;fill-rule:nonzero;opacity:1'%20transform='translate(502%20877)%20scale(3.4003)'/%3e%3crect%20width='60'%20height='20'%20x='-30'%20y='-10'%20rx='3'%20ry='3'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2337547a;fill-rule:nonzero;opacity:1'%20transform='translate(502%20728)%20scale(3.4003)'/%3e%3ccircle%20r='75'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2371c9fc;fill-rule:nonzero;opacity:1'%20transform='translate(502%20473)%20scale(3.4003)'/%3e%3crect%20width='129.4'%20height='82.3'%20x='-64.7'%20y='-41.1'%20rx='37'%20ry='37'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%23fff;fill-rule:nonzero;opacity:1'%20transform='translate(502%20464)%20scale(3.4003)'/%3e%3crect%20width='108'%20height='68.6'%20x='-54'%20y='-34.3'%20rx='30.9'%20ry='30.9'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%23162334;fill-rule:nonzero;opacity:1'%20transform='translate(502%20464)%20scale(3.4003)'/%3e%3ccircle%20r='19.4'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%23a478fc;fill-rule:nonzero;opacity:1'%20transform='translate(415%20464)%20scale(3.4003)'/%3e%3ccircle%20r='19.4'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%23a478fc;fill-rule:nonzero;opacity:1'%20transform='translate(591%20464)%20scale(3.4003)'/%3e%3crect%20width='96'%20height='53.2'%20x='-48'%20y='-26.6'%20rx='23.9'%20ry='23.9'%20style='stroke:%23162334;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%23162334;fill-rule:nonzero;opacity:1'%20transform='translate(503%20875)%20scale(3.4003)'/%3e%3cpath%20stroke-linecap='round'%20d='m68%20215%207-15M81%20222l-7-22M81%20222l7-14M101%20208H87M114%20219l-7-24M113%20219l13-22M131%20214l-5-17M148%20214h-18M69%20214H51M100%20209l7-15'%20style='stroke:%23a478fc;stroke-width:3;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:10;is-custom-font:none;font-file-url:none;fill:none;fill-rule:nonzero;opacity:1'%20transform='translate(165%20150)%20scale(3.4003)'/%3e%3c/g%3e%3c/svg%3e\", ke = \"data:image/svg+xml,%3csvg%20width='140'%20height='140'%20xmlns='http://www.w3.org/2000/svg'%3e%3ccircle%20cy='60.044'%20cx='70'%20fill='%235c5c5c'%20r='29'/%3e%3cpath%20d='m16.36%20156.186-.01-30.5c-.005-16.844%2024.168-30.507%2053.991-30.516%2029.823-.009%2054.004%2013.64%2054.01%2030.484l.008%2030.5-108%20.032z'%20fill='%235c5c5c'/%3e%3c/svg%3e\", He = (A, e) => /* @__PURE__ */ J.createElement(\"svg\", { viewBox: \"0 0 637 637\", ref: e, ...A }, /* @__PURE__ */ J.createElement(\"path\", { d: \"m478 113-13 2-4 1h4l14-2c10-2 35-2 42-1l6 3 3 1c3 0-4-3-8-5-7-1-34-1-44 1m56 6 8 6c7 5 20 17 20 19s7 12 8 12l-3-6-4-6c0-3-15-17-25-24-5-3-8-4-4-1m-198 16-9 1a512 512 0 0 1 9-1m-180 30a412 412 0 0 0-23 4 167 167 0 0 0-32 8 439 439 0 0 1 46-9 304 304 0 0 1 11-2l6-1h-8m369 8 4 3-7-6c-1 0 0 2 3 3m-439 9c-7 3-18 13-18 15l6-5c5-5 9-8 14-10l6-4-8 4m442 12-10 11-7 6 7-6c7-5 14-14 13-16l-3 5M65 205l-1 11c0 9 0 10 4 17 5 10 7 12 22 11 10 0 15 0 38-5l5-1-6 1-16 2-21 2c-13 1-16-1-21-10-3-5-4-6-4-15l1-12c1-4 1-5-1-1m335 1c3 0 3 1 3 3l-2 6c-2 5-35 39-76 80-53 51-120 117-138 137-21 24-22 25-22 27 0 3 6 9 9 9 4 0 14-8 38-27a5073 5073 0 0 1 15-16 1421 1421 0 0 0-17 15l-31 25-6 2-4-3c-3-3-3-4-2-6 3-8 79-85 160-163 57-57 79-80 79-86 0-2-3-4-7-4-2 0-2 0 1 1m165 18c-9 17-25 32-57 53l-10 8 16-11 12-8c15-10 27-22 39-39 5-7 6-8 4-8l-4 5m-221 2a199 199 0 0 0-19 10 183 183 0 0 1 27-12c0-1-1-1-8 2m-34 16c-3 3-2 3 2 0l1-2-3 2m151 3-1 2 2-2c3-3 2-3-1 0m-16 12-11 10a281 281 0 0 0 11-10m-24 18-7 5-7 5-42 31c-10 7-24 19-22 19l7-6 16-12a343 343 0 0 0 35-25 573 573 0 0 0 20-17m-187 0-2 2 4-2 3-2-5 2m-14 6-3 2 4-1 4-3-5 2m-7 3-8 4-18 8 18-7 7-3 3-1c1-2 0-2-2-1m254 24a2672 2672 0 0 1-71 54 601 601 0 0 0 39-29 1352 1352 0 0 1 32-25m-291-8-2 2 4-2 3-2-5 2m-13 5-2 2h3c5-3 4-4-1-2m-19 9-7 3-13 6c-10 5-13 7-14 10-3 4-2 5 1 0 2-3 5-5 14-9l13-6 12-6-6 2m178 36c-17 12-21 16-21 17a390 390 0 0 1 20-17m-206 34 1 4 1 3 1 5 2 8 1 5v-6l-1-8-2-5-1-4-1-2c-1-2-1-2-1 0m222 23-9 7a683 683 0 0 0-56 44 261 261 0 0 0-26 20 1345 1345 0 0 0-46 34c-6 3-7 3-19 3-11 0-12 0-18-3-8-4-10-8-17-20l-5-10 4 10c5 10 12 18 19 22 4 2 6 2 17 2 13 0 14 0 21-3l26-19 42-33a2183 2183 0 0 0 43-34 643 643 0 0 1 24-20\", fill: \"#fff\", fillRule: \"evenodd\" }), /* @__PURE__ */ J.createElement(\"path\", { d: \"M478 114a620 620 0 0 1-39 6l-21 3a5481 5481 0 0 0-19 3 870 870 0 0 1-54 8l-1 1-6 1-12 2-13 2a992 992 0 0 0-76 12 400 400 0 0 1-45 8l-6 1-5 1h-3l-3 1-2 1-26 4-13 2-17 3c-23 5-33 9-43 19-7 8-9 13-9 27 0 8 1 9 4 14 5 9 8 11 21 10l21-2a1133 1133 0 0 1 23-4 659 659 0 0 0 74-14l3-1h3l3-1h3l2-1 2-1h3l2-1h2l24-5 38-7a2100 2100 0 0 1 93-18l3-1 10-1a2082 2082 0 0 1 120-17l2 1c2 0 8 5 8 7l1 2 1 6c0 4 0 6-3 10-2 4-16 16-18 16l-7 5-10 8a1070 1070 0 0 0-11 7 113 113 0 0 1-20 14l-2 2-3 2-2 2h-1a154 154 0 0 1-28 21l-5 4-5 4a573 573 0 0 1-50 37 175 175 0 0 0-24 18l-1 2-2 1-2 1-2 1-1 1-12 10a396 396 0 0 0-32 25l-8 6-6 5-9 7a326 326 0 0 1-25 20l-13 12a5073 5073 0 0 0-17 15c-24 20-34 27-39 27-2 0-8-6-8-9 0-2 1-3 22-27 18-20 85-86 138-137 41-41 74-75 76-80l2-6c0-2 0-3-2-3l-7 1a233 233 0 0 1-26 9l-1 1-1 1h-1l-1 1h-2l-3 2-1 1h-2l-3 2h-1l-5 2-22 10-9 4-4 2-5 2-10 4-2 1-2 1-2 1-13 6a334 334 0 0 1-38 17 75 75 0 0 0-14 6l-5 2-4 1-2 1-3 2-7 3-16 6a247 247 0 0 0-32 14l-1 1h-2l-1 1h-2l-1 1-12 6a103 103 0 0 0-27 15l-2 5-1 1v11l1 5 1 5 1 4c0 3 0 4 2 4v3l1 3 1 2 2 10 1 4 1 5 2 10 2 8 1 4 1 4c3 3 9 25 11 38l1 7v2l1 4v1l1 1v2l1 2 1 3v1l5 10c7 13 9 16 17 20 6 3 7 3 18 3 12 0 13 0 19-3 8-4 11-6 26-18a1345 1345 0 0 1 85-67 683 683 0 0 1 50-39l12-9a513 513 0 0 1 44-33 201 201 0 0 0 22-17 2270 2270 0 0 0 73-54 158 158 0 0 0 58-59c2 0 3-9 4-27l-1-19-1-4-1-6-1-3-4-6-4-6c0-2-6-8-13-14a77 77 0 0 0-28-18c-6-1-34-1-43 1\" })), ee = cA(He), xe = (A, e) => /* @__PURE__ */ J.createElement(\"svg\", { viewBox: \"0 -960 960 960\", ref: e, ...A }, /* @__PURE__ */ J.createElement(\"path\", { d: \"M765-321q0 117-84 196-83 80-200 80-118 0-200-80t-83-196v-392q0-85 61-144 61-58 146-58 86 0 147 58 61 59 61 144v374q0 54-39 92-39 37-93 37-55 0-93-37-38-38-38-92v-372h110v372q0 9 6 14t15 5q8 0 15-5t7-14v-374q0-39-29-66t-68-27q-40 0-69 27t-29 66v392q0 71 51 119t122 48q71 0 122-48t51-119v-426h111v426Z\" })), te = cA(xe), Oe = (A, e) => /* @__PURE__ */ J.createElement(\"svg\", { viewBox: \"0 -960 960 960\", ref: e, ...A }, /* @__PURE__ */ J.createElement(\"path\", { d: \"M125-165v-113h77v-273q0-93 55-167 56-75 146-100v-19q0-32 22-55 23-23 55-23t55 23q22 23 22 55v19q90 25 146 99 56 73 56 168v273h77v113H125ZM480-32q-38 0-66-27-27-27-27-66h186q0 39-27 66t-66 27Z\" })), Le = cA(Oe), Ne = (A, e) => /* @__PURE__ */ J.createElement(\"svg\", { viewBox: \"0 -960 960 960\", ref: e, ...A }, /* @__PURE__ */ J.createElement(\"path\", { d: \"M137-190v-113h78v-253q0-41 11-79 11-39 35-71l-9 150h10L17-802l74-74L873-92l-74 74-175-172H137Zm609-149L319-769q20-15 41-25t44-16v-28q0-32 22-54t54-22q32 0 55 22t22 54v28q85 23 137 94t52 160v217ZM481-47q-38 0-65-27t-27-65h184q0 38-27 65t-65 27Z\" })), Re = cA(Ne), Fe = (A, e) => /* @__PURE__ */ J.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 100 100\", ref: e, ...A }, /* @__PURE__ */ J.createElement(\"g\", { strokeLinecap: \"round\", strokeWidth: 10 }, /* @__PURE__ */ J.createElement(\"path\", { d: \"m19 19 61 61M80 19 19 80\" }))), Ue = cA(Fe), je = (A, e) => /* @__PURE__ */ J.createElement(\"svg\", { viewBox: \"0 -960 960 960\", ref: e, ...A }, /* @__PURE__ */ J.createElement(\"path\", { d: \"M94-136v-255l351-93-351-92v-253l816 346L94-136Z\" })), ze = cA(je), Ge = (A, e) => /* @__PURE__ */ J.createElement(\"svg\", { viewBox: \"0 -960 960 960\", ref: e, ...A }, /* @__PURE__ */ J.createElement(\"path\", { d: \"M480-372q-61 0-105-43-43-43-43-105v-240q0-61 43-105 43-43 105-43 61 0 105 43 43 44 43 105v240q0 62-43 105t-105 43ZM425-76v-122q-121-16-197-108t-76-214h109q0 91 64 154t155 63q91 0 155-63t64-154h109q0 122-77 214T534-198v122H425Z\" })), Ye = cA(Ge), Xe = (A, e) => /* @__PURE__ */ J.createElement(\"svg\", { viewBox: \"0 -960 960 960\", ref: e, ...A }, /* @__PURE__ */ J.createElement(\"path\", { d: \"m763-343-80-79q8-20 13-44 5-23 5-54h109q0 49-11 95t-36 82ZM625-482 336-770v-2q3-56 45-96t101-40q62 0 105 43t43 105v249l-1 17q-1 7-4 12ZM427-76v-122q-120-16-196-108-77-92-77-214h109q0 91 64 154t155 63q43 0 80-14 37-15 67-41l78 79q-35 32-78 53t-93 28v122H427Zm362 27L41-796l75-75 748 748-75 74Z\" })), We = cA(Xe), Ke = (A, e) => /* @__PURE__ */ J.createElement(\"svg\", { viewBox: \"0 -960 960 960\", ref: e, ...A }, /* @__PURE__ */ J.createElement(\"path\", { d: \"M625-511q29 0 50-21t20-50q0-29-20-50-21-20-50-20t-50 20-20 50q0 29 20 50 21 21 50 21Zm-290 0q29 0 50-21t20-49q0-30-20-50t-50-21q-29 0-50 20-20 21-20 50 0 30 20 50 21 21 50 21Zm145 268q75 0 137-43t85-115H258q24 72 85 115 62 43 137 43Zm0 198q-90 0-170-34-79-34-138-93T79-310q-34-80-34-170t34-170q34-79 93-138t138-93q80-34 170-34t170 34q79 34 138 93t93 138q34 80 34 170t-34 170q-34 79-93 138T650-79q-80 34-170 34Zm0-435Zm0 322q134 0 228-94t94-228q0-134-94-228t-228-94q-134 0-228 94t-94 228q0 134 94 228t228 94Z\" })), oe = cA(Ke), Ve = (A, e) => /* @__PURE__ */ J.createElement(\"svg\", { viewBox: \"0 -960 960 960\", ref: e, ...A }, /* @__PURE__ */ J.createElement(\"path\", { d: \"M553-64v-108q107-27 173-113 67-87 67-197 0-109-67-195T553-789v-108q152 26 249 144 97 117 97 271 0 155-97 273T553-64ZM61-335v-290h176l236-237v764L237-335H61Zm492 28v-346q51 23 82 70t31 103-31 103q-31 47-82 70Z\" })), qe = cA(Ve), Je = (A, e) => /* @__PURE__ */ J.createElement(\"svg\", { viewBox: \"0 -960 960 960\", ref: e, ...A }, /* @__PURE__ */ J.createElement(\"path\", { d: \"M807-15 700-123q-33 21-71 37-38 15-80 22v-108q20-4 38-12l35-17-153-154v257L234-335H57v-290h144L10-818l74-75L882-90l-75 75Zm37-264-80-79q13-30 19-60 7-31 7-64 0-109-68-195-67-86-173-112v-108q152 26 249 144 98 117 98 271 0 55-14 107-13 51-38 96ZM661-462 549-575v-78q51 23 83 70 31 47 31 103l-1 9-1 9ZM469-655 366-759l103-103v207Z\" })), Ze = cA(Je), _e = \"data:audio/wav;base64,UklGRmaIAABXQVZFZm10IBAAAAABAAIAQB8AAAB9AAAEABAATElTVBoAAABJTkZPSVNGVA4AAABMYXZmNjAuMTYuMTAwAGRhdGEgiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////AAAAAAAA//////7/////////AAABAAAAAgABAAEAAQAAAAIAAQABAP//AAD+////AAD+//7////+////AAD//wAA/v8AAAAA/v8AAP//AAAAAAAAAgD////////+////AAABAAEAAgD/////AQABAAAA//8CAP//AAAAAAAA/v8AAAAA//8AAAEA//8EAAAAAAAAAAAA//8BAP//AQABAAEA/////wEA/v///wAAAAACAAAAAAABAAAA//8AAP//AAACAP//////////AAAAAAEAAAAAAAEA//8AAAEAAQADAAIAAgAAAAAA/v///wEAAAAAAAEAAAAAAAEA//8AAAEAAQD//wAA//8AAAEAAAABAAEAAAABAP//AAD//wAAAgAAAP//AQD/////AAAAAP7/AgAAAAIAAAAAAAAAAAABAAAAAQABAP//AAABAP///v8AAP////8AAP//AAD//wAA//8BAP//AAD///7///8BAP7///8AAAIAAgABAAEA/v8AAP//AQADAAEAAAACAAEA/////////v///wEA/v////7/AAD+////AAAAAAAAAgAAAAAAAAD//wEAAAAAAAAAAQABAAIA/v8AAAAA//8AAAEAAAAAAP//AgD//wEA/////wAAAQACAAAAAAAAAP//AQD/////AQAAAAEA/v8AAAEAAQABAAEA///+////AQD//wEAAgD+//7/AAAAAAAAAQAAAAAAAQAAAAAAAAAAAP//AAD//wEAAQD//wAAAQABAP7///8AAP7/AAABAP7/AQABAAEAAAABAAEAAAD+/wIAAAABAAAAAQD/////AQACAP////8AAP//AQD//wEA/v8CAAEAAAAAAAAAAQAAAAIAAQAAAAEAAgD//wEAAAAAAP7///8BAP//AgAAAP///v8CAAAAAgD///////////7/AAACAAEAAgD//wAAAAABAP//AwAAAAMA//8AAAAAAQD+/wAAAAD//wAAAQD//wEA//8BAP7/AAABAAAA//8BAAAA//8AAP//AQADAP3////+////AgD+/////v8BAAEAAQACAAAAAAAAAAAA//8AAP//AAD+/wEA/v8AAP7/AAD//wAAAQACAAAAAQAAAP//AQAAAAAAAAABAAAAAAD+//////8AAAAAAAD//wAAAAABAAEA//8AAAEA//8AAP//AgD+/wAA///+/wAA/v///wAAAQABAAAAAQD//wAA//8AAAEA//8BAAAAAgABAP//AAACAAIAAQABAP//AAAAAAAA//8BAAIAAAABAAAA//8CAAEA/v//////AAAAAAEA////////AQAAAP//AAD//wAAAAAAAP3/AAAAAAEAAAACAAAAAAAAAP//AAD//wAAAAAAAAAAAAAAAP///v///wAAAAABAAAAAAD//wEAAAABAAEAAQD//wAAAAACAAAAAQD+/wAA//8BAAEAAAD+/wAA/////wAAAAABAAAAAAD//////v8AAAAA//8AAAAAAAAAAAIAAAABAAEAAAABAP7/AAD9//////////7///8BAP//AAD///3/AQABAP//AAD//wAAAAABAAAA//8AAP//AAD/////AQABAAEA//8AAAAA//8BAAMA//8AAAAA//8AAP7/AAD//wAAAAAAAP7/AQAAAAAA/v8CAP//AAABAAIAAQABAAAA//8BAAEAAQD///7/AQD//wAAAQABAP//AAD//wEAAAAAAAAAAQAAAAIA//8AAP////8AAP//AQD//////v///wEA/v8AAAIAAgACAAEAAAAAAAEAAAAAAAAAAAAAAAAAAQD//wAA/////wAAAQACAP////8AAAAAAAD//wAAAQD+/wEA//8AAAEAAwD//wEAAQAAAAAAAAABAP////8AAAAAAQAAAAAAAAAAAAEAAQAAAP////////7/AQABAAEAAQD///////8BAAAA//8AAAAAAgABAAEA/v8BAP7///8BAP3/AQABAAIAAAD//wEAAAAAAP//AAABAAIA//8CAAAAAQAAAAEA//8BAAAA/////wAAAAD//wEAAQD//wAAAAAAAP//AAAAAAAAAQABAAAAAQAAAP//AQD//////v8AAAEAAAAAAAAA//8AAAAAAAACAAEAAQAAAP//AAABAAEA/////wAAAgABAAAAAAAAAAEAAAABAP//AQABAP7////+/wEAAAAAAP//AAABAAAAAAABAAEAAAAAAAAA//8BAP///f/+/wEAAQD///7///8AAAAAAQAAAP////8AAAAAAAABAAAAAQD/////AAD//wEA//8AAAIA//8CAAAA//8AAAAAAAD+/wEAAAD+/wAA/////wAA////////AAAAAAAA//8BAAAAAAD//wAAAAD//wEA//8AAP//AQD+/wAAAAAAAP7/AAD+/wEAAQABAP//AAABAAEAAQD//wAA/////wEA//8AAAAAAgAAAAAA//8BAAAAAgAAAAAAAAAAAP7/AQD//wAAAAD+/wAAAAADAAIA/////wAAAQD//wIA//8BAAEA/v8AAAIAAAAAAP3///8AAAAAAAAAAAAAAAABAP///////wAA//8AAAEAAQABAAEAAQABAAAAAQAAAAAAAQABAP7/AQD//wAAAQABAAEA//8BAAAAAgAAAAEAAAABAP//AAD/////AAD//wIA/////wIAAAD///7/AAAAAAAAAAACAP//AAABAP////8AAAAAAAABAAAAAgAAAAAAAQD+/wEA/////wAA/////wAAAAAAAAAA/v//////AAAAAP//AAABAAAAAQAAAAIAAAACAAAA//8AAAAA//8AAP7/AAAAAP//AAACAP//AQABAP//AQABAAAA/////////v8AAP//AQAAAAAA///+/wAAAQD+/wEAAQAAAAEA/////wAAAQD//wAA//8AAAAA/v8BAAEA//8AAP7//v8BAAAAAAAAAAEA//8AAAEA/////wAAAAD//////////wEAAAABAAEA//8CAAEA/f8AAAAA//8BAAAABAABAAEAAQAAAAAAAAAAAP7///8AAAAA/v8BAAAA//8AAAIA//8AAP////8BAP//AAAAAAAAAAD/////AQD///7/////////AQD8////AgABAAIA////////AAD//wAAAAABAAAAAAAAAAEAAgAAAP//AQD//wAAAAAAAP/////+/wAAAAABAAAAAwABAP///////wEAAAADAP//AQACAAAA//8CAAEAAAAAAP///////wIAAAAAAAAAAQAAAAAAAgD//wEAAAABAAAA/v8AAAAAAAAAAAAAAAAAAAEA/v8AAP//AQD//wAA//////7///8AAAAAAAAAAP7/AQD//wAA//8AAAEAAAABAAEAAQD/////AAD//wEAAAD/////AQAAAAEAAAD//wEAAAD/////AgD//wAAAQD//////////wAAAAD//wAAAAABAAAAAAD//wAAAQD///7/AQD//wEAAAD/////AAD//wEA//8AAAEA//8CAAAAAQD//wEAAgAAAAEAAwAAAAAA/v8BAAEAAgD//wEAAAAAAAAAAAD//wEA//8AAAAAAQACAP///////wAAAQABAAEAAAAAAAEAAQD+/wEA/f////////8AAAAA//8AAAEA//8BAAAA/v///wEAAAAAAAEA/////wAAAAAAAP//AAAAAAIAAAABAAAA/////wAAAAD//wAA/v8AAAMAAQD+/wEAAAABAAEA//8BAP//AgAAAAAAAAD//wAA/////wEA/v8CAP3/AAACAP3/AQABAAAAAQACAAEA/v8AAAAA//8BAAAAAgAAAAAAAgACAAEA/v/9/wAAAQABAP7///8AAP//AgD+/////v8CAP////8BAP//AQACAAEAAQABAP//AAD///7/AAABAAEAAgD//wEA//8CAAEAAQABAAEAAAABAAAA/v8AAAEA/v8AAP//AAABAP//AQAAAAEAAgAAAAAA/v///wEAAQAAAAIAAAD/////AgAAAAEA/v8AAP7/AQAAAAAAAQAAAAEAAAACAAEA//8BAP////8AAAIAAAAAAP//AAAAAAIAAAAAAAAAAwABAP///v8BAAAAAAAAAP3/AAABAAEA/v////////////3//v8AAAAAAQABAAIAAAD+/////v8AAAAAAQABAAEAAQAAAP//AAAAAP//AQAAAP//AAABAAAAAAAAAAAA////////AAAAAP//AQD/////AAABAAEA//8CAP7///8AAP7//v8BAAEAAAD+/////////wEAAAAAAAAAAgD//wAAAQAAAP7/AQABAP//AQAAAAAAAAD/////AAACAP////8BAAAAAAD//wAA//8AAAEAAQABAAAAAAABAAAAAQD+/wEA/v8AAAEAAQD/////AAD//wAAAQABAP7//v//////AAACAAAAAAAAAAAAAAACAAAAAQAAAAAA//8BAP//AQD//wAA///+/wIAAQD//wAAAAD//wAA/v8AAP3///8AAAAAAAAAAAAA/f8AAAAA//8CAP7/AAD///7/AAAAAAAAAAD//wEAAAAAAAEAAAAAAAAA//8BAP////8BAP7///8CAAEA//8BAP3///////////8BAAAAAAAAAAEAAgD+//////8BAAMAAQADAAEAAAACAAAAAQD/////AAABAAMAAQAAAP//AQD//wAA//8AAAAA//8CAP7//////wAAAAAAAAIA/v8AAP//AAACAP//AwD//wAA//8AAP//AwD//wEAAQABAAEAAQACAAEAAAD//wAA//8AAAIAAAAAAP///////wAAAQD//wIA//8BAP7/AAD///////8AAAAAAAAAAAEAAAD//wAAAQD//wEA//8BAAAAAAD/////AgABAAIAAAABAAAAAAAAAP//AAAAAAAA//8AAAAAAAD/////AQAAAAAAAQD//wAA///+////AAAAAAEAAgABAAEAAAAAAP//AQAAAAAAAQD+/wAAAAABAAEAAAD/////AQABAP7///8AAAIAAAACAAAA//8AAP//AgACAAAA///+/wAAAAABAAAAAQAAAAEA/v8BAAEA//8CAP//AQD+/////v8AAAAAAAACAP//AAD+/wIA/v8BAAAAAAD/////AAAAAP7///8AAP7//////wEAAAABAAAAAAD//wAAAAAAAAAAAgACAAAAAAABAAAA/f8AAP7/AgAAAAEA//8BAAAAAAD///7/AQD//wAAAAAAAAEAAAAAAAEAAAAAAAAAAQAAAAAA//8AAAAAAAABAP///////wAAAgABAAEA//8AAP//AAACAP//AQABAAEA//8BAAAAAAABAAAA//8AAAEAAAAAAAIA/v8BAP//AQD//wEAAAABAAEAAQACAAEAAAAAAAEAAAABAAAAAAD/////AAABAAEA//8AAAAAAQABAP//AAAAAP//AAD/////AQD//wAAAAABAAEA//8BAAAA//8AAP///f/+/wAA/////wAAAQAAAAIAAAAAAAAAAAD+/wEA/f8CAAAA//8AAAEAAgAAAAMAAAABAAAAAAAAAP//AQAAAAAAAQABAAAAAQAAAP//AAAAAAAA//8AAAAAAAABAAAAAQAAAAAAAAABAAIAAAAAAP7/AQD//wAAAAD+////AAAAAAAAAAABAAAA/////wAA//8AAAAAAAD/////AgD//wAA//8CAP//AQACAAEA/f////////8BAAIAAQABAP//AAD//wAA///+////AAD+/wAAAQD/////AAAAAAAA/////wAAAAABAAAAAQAAAAAA//8AAAIAAAABAP//AQABAAEA//8AAAAAAAADAAEAAAABAP//AgD//wMA//8AAAAAAAD//wAAAAD9/wEA///+/wAA//8BAAEA//8BAAAA//8AAP///v8BAP///////////v8BAAAAAQABAAAAAAAAAAAA//8AAP7/AQAAAAAAAAAAAP7/AQAAAAAAAgABAAEAAAABAAEAAAAAAAAAAAD+/wAAAAD//wEAAAAAAAAAAAAAAP//AgABAAAAAAABAAEAAAD/////AAAAAP//AAABAP////8BAAAAAQABAP7//v/+////AQAAAAAAAQAAAAEAAgAAAAAAAQAAAAEAAAD+/////v8BAP//AAABAP//AQABAAAAAAD//wAA//8CAP//AAAAAAEAAAABAAAAAAAAAP//AAD+////AwAAAAAAAQD//wEAAAACAAEAAAADAAAAAAD/////AAAAAAEAAAABAAAA//8AAAEA//8BAP///v8AAP//AAD//wAAAQABAP//AQAAAAAA/////wEAAQAAAP////8AAAEA//8BAAAAAQAAAP////8AAAAAAQAAAAIAAQAAAAEAAAAAAAEAAAD//wEAAAAAAP////8AAAAA//8BAAEAAAAAAAIA///+/wIA/v8BAAAAAQACAAAAAQAAAP7///8AAP//AAAAAAEAAAAAAP7/AAD+////AAAAAAAAAAD//wAA/v8BAAMAAAABAAIAAgD//wAA//8BAAEA//8BAP7/AAAAAP7///8BAAAAAQAAAP7/AQD/////AAAAAAEAAAABAP//AQABAAAAAgABAAAAAAAAAP///////wEA//8AAAEA//8AAAAAAQAAAAIAAAABAP7//////wAAAQABAAAAAAABAAEA///+/wAA//8BAP///v8AAP///v8BAAAA//8CAAAAAQAAAAEAAQABAAAAAAD+/wAAAAD+/wAAAAAAAAAA/f////////8AAAAAAQABAP///////wEA//8BAAEAAAAAAAAA/////wEA/v//////AAAAAP//AAABAAAAAAD+/wAAAAD9////AQAAAAEAAwD//wEAAQAAAP//AgAAAAAAAAD+/wIAAAAAAAAAAAAAAAIA//8AAAEAAQACAAAAAQD//wAAAAD//wIAAQABAAAAAAD//wEA//8BAAEAAQAAAAAAAQABAP7/AAD//wEAAAACAP7/AQAAAAAAAAD//wIAAQACAAIAAQAAAAAAAAAAAP3///8BAAAAAQACAP//AgD9/wAAAAD//wEA/v////////8AAAAAAAD//wEAAQD//wMAAQAAAAEA//8AAAEA//8AAAAAAAACAAAAAAD//wAAAQD///////8AAAAA//8BAAIA/v8BAAEA/f8AAAAAAAAAAAAAAgD/////AAD+/wAAAAD//wAAAAAAAP//////////AgABAP///v8AAAIAAQAAAP//AAABAAAA/////wAAAAAAAAEAAAABAP///v///wIA//8BAAEAAQAAAAAA///+/wEAAAAAAAAA/////////v8BAP3/AAAAAAAAAAAAAAAA//8AAP//AAAAAP//AAABAAIAAAACAP////8DAAAAAAABAAAAAwABAP//AAABAP//AAAAAP////8BAAAAAgD//wAA///+/wAAAQD//wAA//8AAP7///8AAAAA/v8AAAAAAQD//wEA/v////////8AAAAAAQAAAP//AQACAAAAAAAAAP//AAD//wAAAAD//wAAAAD+/wAAAAAAAP//AQD//wAAAgAAAAAAAQABAAAAAwD+/wAAAAD///7/AQD//wIAAQAAAP//AAD//wAA//8CAAEAAAAAAAAA/////wAAAAD//wEAAQD///////8BAAAA//8BAAEAAAAAAAAA/v///wEAAAAAAAAAAAADAAAAAAAAAAAAAQABAAEAAAD+//7//v8AAP//AQAAAAAAAAABAAEAAgAAAAAAAQD//wAA/f8AAAAAAAABAAAAAQAAAAAAAAAAAAIA//8BAP///////wIA/////wAAAAABAAEA//8BAAAAAAD//wAAAQD//wEAAAAAAAIA/v8BAP//AAAAAAEAAAABAP//AAAAAAAAAQABAP7/AAABAAAAAQD//wIAAAAAAAEA///+/wAA//8AAP//AAAAAAAAAAABAP///////wIAAQAAAAEAAQAAAP7/AQAAAAAAAQAAAAAAAQD/////AQAAAAAA///+//7/AAD+/wEA//8AAAAA///+/wEAAAABAAIAAQABAAAA//8AAP//AAD//wAAAAD//wAAAAAAAP//AQAAAAAA////////AQAAAAAAAQD+////AQABAP7/AAD///7/AgD//wAAAAAAAP//AAAAAAEA//8BAAEAAgAAAAIAAAD//wEA/////wAAAQD///7/AQD//wEAAQD/////AAAAAAEAAgAAAAAAAQD//wEA//8AAP7//////wAA//8BAAEA//8BAAAAAQD/////AAABAP//AAACAP//AQAAAP//AAABAP////8AAAAAAAABAAEAAwABAAAAAgD//wAAAAD//wEAAAABAAAAAAABAAEA/////wAA//8AAAIAAAAAAAEAAQABAAEAAQABAP//AgAAAAAA//8BAP3//v///wAA//8AAAAAAQAAAP//AQD//wEAAAACAAIAAAABAAAA//8BAAEA//8BAP//AAAAAP//AQAAAAIAAAD//wAAAAAAAAEA////////AQAAAP//AQD//wAAAQD+/wEAAAABAP///v///wAAAAAAAP//AAAAAAIAAQD//wAAAgD+/wAAAAD//wAAAAABAP///P//////AAACAP////8AAAIAAAABAAAAAAAAAAAA//8AAAAAAQADAP//AQAAAAAAAAABAAEAAQAAAAAA/v8AAAAAAAD//wAAAQD//wAAAAD//wAA/v////////8CAAEA/v8BAP7/AAAAAAAA//8AAAEAAAD//wIAAQAAAAIAAQAAAAAAAAD///7/AQABAP//AAAAAP//AAACAAEA//8BAAAAAwAAAAAAAAD//wEAAAD//wAA///////////+/wAAAQABAAIAAAABAAEAAAD//wEAAAD/////AAD+/wIAAwABAAEA/v8BAAEAAAD//wAA//8AAP//AAAAAAEAAAAAAP//AAAAAAEAAQABAAEA/v///wAAAAD//wEAAAACAAAA/f/+/wAA/v///wAA//8AAAEAAQD///7/AAAAAAAAAAABAAAAAAACAAAAAAABAAAAAAABAP//AQD//wAA//8BAP7/AgABAAEAAQAAAAAAAQD//wEA/v8AAP////8AAP///////wIAAQD//wAAAAD//wAA/v///wAAAQD//wIA/////wEAAAAAAAIAAAABAAAAAAD//wEA//8AAAAA/////wAAAQAAAAAAAAD//wEAAQAAAAAAAAACAP///////wAAAgD//wAA/v8AAAIAAAAAAAEAAAABAP//AQABAAEAAQAAAP///v8BAAEAAAAAAP////8AAAAAAQD//wIAAQAAAAEAAAAAAAAA//8BAP//AAAAAP7//v///wEAAAAAAAIAAAAAAP//AAD//wEA//8BAAAAAAABAAEAAAABAP7///8AAAIAAAABAP//AAD//wEAAAAAAP//AAAAAAEAAAAAAAAAAAAAAP7/AQD//wAAAQD+/wEA/v8BAP7/AAABAAEAAAACAAIAAAADAAAA//8AAAEAAAABAP//AQD//wIA/////wEA//8AAAEA//8AAAEAAAAAAAAAAQABAAAAAAAAAAAAAAD//////////wAA//8AAP7/AAD+/wAAAQAAAAAA/////wAABAAAAAAA//8AAAEAAAAAAAAA/v8AAP//AAAAAAAAAAD//wAAAAD///////8BAAEAAAD/////AgABAAEA/v/+/wAAAQACAAEAAAD//wAAAwABAP//AgD+/wAA/v8AAAAAAAAAAAEA//8AAAEAAAD+/wEAAAAAAAEAAgAAAAEAAAABAP//AQD+/wIA/////wAAAQD//wAAAQD+/wAAAQABAAAA////////AAACAAAAAQAAAAIA//8BAP///v///wEA//8BAAEAAQD+/wAAAQD9/wAAAQAAAAEAAAABAAAAAgAAAP//AAD+/wAA/f8AAAAA////////AgAAAAcAAQD7/wEA/f8AAAIA//8GAP7//v/+//b/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+P/F//z/rv/i/7r/6v/Z/wYABwAoADAAKQBOABkATAD0/zQA1P8PANv/0//v/6//FwCi/ywAxP8oAPn//v82APT/WwD4/00A+/8yAPv//f/8/83/+v+w/+T/sf/j/9b/AQACACoAIgAtAEIAHwBPAAEAQADe/xcA0v/k/+X/t/8IAKv/IgC//yEA6/8EACMA9/9PAPf/VAD+/zcA+/8JAPn/1P8AALf/6f+w/+P/zf////j/HAAdAC0APgAfAEsABwBCAOP/IADV/+//2v/B//3/rP8PALv/GADd/xEAFgABAEMABABaAP//QgACABcA+//n/wAAwP/w/67/4v+///3/6f8WABcAKQA0ACIARgAQAEcA8f8pANn/9f/U/87/7f+v/wgAtP8RANP/FgANAAIAOQACAFQA/f9HAAAAIAABAO3//P/E/wEAs//q/7n/9P/i/wYAEQAZADEAJABBABMASAAAADEA3/8CANL/1v/g/7H/AACy/w8Axf8ZAPv/CQAzAAIAVQD//1AAAAAsAAIA9v/7/8r/AwC2//P/tf/m/+H/AwADABEAKQApADoAHgBHAAgAPADr/wkA1//f/93/vP/6/7L/CgDA/x4A7/8hACkAAgBPAPz/UgD1/zIABAAEAPz/0v/5/7f/AACy//H/2f/+/wEAAAAkABUAMwAdADoAEQA9APD/EADU//L/1P/H/+z/tf8LALv/HADk/ygAGgADAEMA//9TAPn/QAAAABAAAQDc//z/wf8DALD/7P/Q//z/9/8HABoAFgA3ACMAMAAOADwA+P8ZANv/+P/Y/9H/5v+8/wUAu/8WANf/HgAMAAoAPQABAFMA/f9HAP7/HwAEAN//+v/H/wMAs//2/8r/8//y/wMADgAQAC4AIwAyABMAJwD8/xcA3v8LANP/5v/f/8j/AgC4/w4A1P8eAAQACgAxAAEAUgD+/0gA/v8nAAIA8f/5/8r/BAC6/+3/wP/l/+b/AQAIABkAIwArAC4AIAAoAAkAGADj/w0A0f/r/9//0P8DAL3/CgDN/xkA//8IACUAAgBJAAAATwD+/ysAAQD7//3/z/8DAMT/+f/K/+L/5P/1////EgAcACYALgApAC4ACwAcAPL/EADZ//L/1f/U//f/uv8KAMX/DwDu/wcAHwADAEUABgBNAAEANQAAAAYAAQDf////xf/+/9P/4f/b//X/9v8LAA4AGAAlACoAMAAQABkA9v8TAOL/+f/W/9r/8f/I/wcAxP8MAOr/BwATAAQAOAAGAEcAAABCAAEADwAEAOP//v/F/wIAzf/o/93/8P/s/w4ACwAZACEAKgAyABMAIQD5/xgA6v8DANb/4P/y/9H/AQDJ/wkA4/8DAAoA/f8wAAQAQwABAEAA//8VAAIA7P/+/8r/BADP/+v/2v/s/+n/CwAIAA0AHAAjADQAHAAkAP//GQDy/wQA5v/i//b/0P/7/8f/AADh/wMAAAD+/yUAAAA7AAEAOAAAABwAAAD6/wAA1/8CAMr/AADb/+3/5f8BAAIACAAVABcALwAfACgA+/8XAPn/DgDe/+//7v/Q/wMAz/8JAOP/CwDx////EAAHADEAAQArAAIAHQAEAAcAAADr/wEAzv8CANj//f/k/wEA+f/+/xQABwAqAB4ALAD+/x4A8P8SAOb/8//f/9j//f/N/wEA3v8LAO7/AgAMAAQALAAEAC0AAQAdAAQADwABAPP/BADV/wMA0/8AAOH/AQD1/wAAEAADACQAGwAwAAQAHwD0/xUA8f/4/+L/2//7/8z/AwDc/woA6f8AAAQAAwAoAAcANAAAACcAAgAUAAEA+P8CANv/AgDR/wEA4v8BAOz/AgAIAPv/JAAVADMAFAAhAPP/GQDz//7/3P/l/+3/z/8BANf/CgDn/wkA/P///xoABwAwAAIAJwACABcAAwABAAIA4f8BAND/AgDd//3/6P8CAAYA/f8YAAwALwAZACUA9v8bAPj/AwDq/+r/7P/S//7/1/8EAOX/CQD6//7/GQAFAC8AAQApAAEAGQACAAMAAgDm/wEAzv8BANv//v/p/wIA//8BABMABQArACAALAABAB4A8f8NAOv/7v/m/9n/+P/R/wMA4f8OAPT/AQATAAMAKwAHACoAAwAbAAMABQADAO7/AQDU/wEA2f8AAOL////3////EgAAACUAGgAvAAUAHQD2/xIA9f/0//T/3P/4/8///f/h/wIA7f8AAAoAAQApAAQALQADACAAAgAPAP//9P///9r//f/T/wAA3f/9//D/AQAQAP//HAAHAC8ACQAfAPv/GAD+//f/+P/j/wEA0v/+/9n/AADq/wIABgD//x0AAQAuAAEAIwAAABQAAwD8/wEA3/8AAM//AADe////7f8BAAwA//8ZAAMALwAAACEA//8dAP3//v/9/+n////U//z/1v8BAOT/AAD+/wAAGwD+/ywA/v8kAAIAGAD///3////q/wEA0P///97/AADk/wAABAAAABUAAQAqAAEAKQAAABwAAAAFAP//6f8AANr////X/wAA4/8AAPj/AgAUAAAAKgD//ywAAAAcAP7/AQAAAOv/AADU/wAA2v8CAOP/AAABAAAAFgABABsAAAAqAAEAHwAAABQAAgDv/wEA3v///9H////f////7/8BAAoAAQApAAAALgD//yEAAQAIAAAA8P8BANr//v/V////4f8AAPf//v8UAAAAFAAAACYAAQAhAP7/GwD+//T/AADo/wIA1v8CANr/AgDp/wEABgAAAB8AAQAsAAEAJAAAAAwA///z/wEA3/8AANT/AADh/wEA9P///xQAAgASAAAAJQAAACEAAAAaAP//+v8BAOj////W////2P8BAOf///8DAAAAHwAAAC4AAAAlAAAAEgAAAPL/AQDm////0f8CAN3/AADr//7/EQD//xAAAQAhAAIAJQAAAB8AAAABAP//6v8CAN//AQDX/wAA4/8AAPr/AAAXAAAAKgABACgAAAAbAP///f8AAOj/AADU/wAA2v///+f/AQANAAMAEQD+/xwA/v8kAP7/IQABAAgA/v/p////5/8AANf/AQDd/wEA8v8BABMAAQAjAAAALgAAACAAAQADAAEA7f8BANn/AgDY//7/4P/+/wEAAAAXAAIAFAAFACUA/P8jAP//EgAAAO//AQDo////1/8AAN3/AADx//7/DgAAAB0AAQAoAAAAIwAAAAoAAQDv/wMA4f8AANn/AQDi/wEA+v///xgAAAAQAP3/IwD//yUA/v8XAAAA7/8AAOv/AADc/wAA3P/+/+v/AQALAAEAGgACACkAAAAkAP7/EAABAO/////q//7/1/8AANz/AgDw/wEAEgD//w8AAAAcAAIAJQAAAB0AAAD2////7P8AAOP/AgDa/wAA5P8BAAQAAQAWAAAAIgAAACMAAAAaAP//+P///+v/AQDZ/wAA2////+7/AAARAAAADgAAABYAAAAhAAAAIAABAPz/AQDt/wAA5P8AANr/AQDg/wEA/P8BABcAAAAhAP//KQD//xwAAAD8/wEA7v8AAN3////Z/wAA6f8BAA0AAAARAAEAEQAAACMAAAAgAAEA/f8CAO3/AADv/wAA3v8BANv////1////EgAAABkA//8nAAAAIgAAAAMAAADu/wAA6P8CANn/AQDg////BQD//xMAAQAOAP//IAABACYAAAAGAAAA6f////H/AADg/wEA2f8AAO3///8PAAAAFQACACQAAAAkAAEADQABAO//AADp/wAA2////9z/AQD7/wEAFgAAAAwAAQAXAP7/JQD9/xMAAADx/wAA8f8AAOr/AADc/wEA4/8BAAkAAAAVAAAAIQD//yYA//8UAAEA9P8BAOz/AADf/wAA3P8AAPP/AAAQAAAADQABAA0AAAAlAAEAGAD///H//v/0/wEA7v8CAN//AADg//3/BAACABUAAQAfAAAAJwABABgAAQD0//7/7f///+L/AADa/wIA8P///w4A//8SAAMACQAAACAAAQAgAP//+v////P////y/wEA4/8BANr/AQD9/wAAEwD//xkAAQAjAAAAIgABAPz////s/wAA6v8BANX/AQDr//7/BwABABMAAAAHAP//FwAAACYAAAD//wEA9P8BAPb/AQDu////2v8BAPn/AAATAP//FwD//yEAAAAjAAAAAgAAAOn/AQDr//7/2P8CAOT/AAABAP//FgABAAUAAQATAP//IwAAAAEAAgDy/wEA9/8AAPb/AADb/wAA6/8BABAAAAATAP7/IQAAACYA//8UAP//7/8AAPD/AADd/wEA3P/+//7///8OAAAACgAAAAgAAAAhAP//CQACAPT/AQD2/wAA9v///97////m/wIADgABABMAAQAfAP//JwAAABMAAADw/wAA8P///+r/AQDb/wAA9f8AAA8AAAARAAIABAD//wYA/v8HAAAAAQD//wMAAgAGAAAA7f8AAOz/AAALAP//DwACABQA//8bAAAAHgD///f/AADq/wEA6/8BANj//v/t/wAACAD+/xAAAgAEAAAABAABAAcAAQADAAAA//8AAAUA///1/wAA5f///wIAAAAOAAAAEAAAABsAAAAhAAAA/v8BAOj////y////3f8AAOf/AQAGAAEADAAAAAcA//8BAP//CQABAAMA//8BAP//BQAAAAAAAADo/wAA+/8AAAoAAAALAAAAFAAAACAAAQAGAAIA7f8BAPH/AADm/wMA3P8CAP7/AgASAP//CgD//wAAAAAIAP//BQD//wEAAAACAP7/BAAAAPz/AwD8////BAAAAAEA//8HAAAAHQAAAAgA/v/x//7/8f///+f/AQDg/////P///woAAAAMAP//AAABAAYA//8EAAAAAgAAAAUAAAACAAAAAwAAAAIAAAABAAAAAQABAAAAAgAcAP//DgD///T/AQDx/wAA9P8CAOH/AAD3/wAACQAAAAoAAQABAP//AwAAAAcAAAD+/wAAAgACAAEAAAD+////AwD+/wAAAAABAP//+v8BABEAAQATAAAA9f/+//L//f/z/wIA6f8AAPb/AQAFAP//DAAAAAAAAAAFAP//BQD//wEA//8DAAEAAQAAAP7///8AAAAA//8BAAIAAAD+/wAAEAABABYAAgD6/wEA8v8BAPX/AwDp/wAA8////wMA//8JAAEABAABAAEA//8FAAEA//8AAAMAAQACAP//AQAAAAEAAgAFAP//AQABAAAAAQAAAP//EQABAAAAAAD5/wEA+P8AAPr////6/wAA+/8BAAIA//8BAAAA//8CAAUA//8BAP7/AAABAAEAAgAAAAAAAwAAAAEA/v8DAAIAAAACAAQA//8TAAAA/P8BAPr////3//////8AAPz/AQD7/wEAAgD/////AAABAAEABAAAAP//////////AAAAAAAAAAADAAAAAwAAAAAA//8EAP///v/+/xAA//8HAAAA+/////j/AQD8////AAD///n///8AAAAA//8AAP////8DAP//AgAAAAAAAAACAAIAAAD+/wAAAQD//wAA/////wIAAgD9////CQACAAYA///9////+f8BAPr/AQAAAAIA/v///wAA//8AAAAAAAAAAAEAAAABAAAAAgAAAAEAAAAAAAEAAQABAAAAAgABAP//AAD//wEAAAD///////8BAAIAAQAAAAAA/v/+//////8BAAAAAQABAP//AAD///////8BAAAAAQABAP////8CAAEAAQD//wEA/v//////AQAAAAAAAAAAAAAAAAD9/wMA/////wAAAQD+/wEA/v/+//7/AQD//wMAAAAAAAAAAAABAAEA//////7/AAACAP3/AAD//wAAAQAAAP//AQD//wAAAAAAAAEA//8CAP//AAAAAAAA/v8AAAAA//8BAP//AAABAP//AAAAAP//AQD//wAAAQABAAAAAAABAAEA/v///wAAAAD//////////wAAAAAAAP//AAD////////8/wIAAAADAAEA/////wEA/v8BAP7/AgAAAAEAAgAAAP//AgD/////AQD//wEA//////7/AQD//wMAAAAAAAAA//8CAP//AQAAAP//AAACAAAAAAABAP//AQD+/wAA/////wAA/f///wAAAAAAAP7/AAAAAAAAAgD//wEAAQACAP//AAAAAAEAAQD//wAAAAAAAAAA//8BAAMA/v8AAP7/AQAAAAAAAQAAAAAA///+//7/AAAAAAAA//8BAP7/AQAAAP//AQABAAAAAQAAAP//AAD//wIA/v///wAAAQABAP//AAD//wEA//8BAP//AgAAAP///////wAAAQABAP//AwABAAAAAAAAAAAA/////wIAAwACAAAA/v8BAAAAAAAAAAAA//8AAP////8AAAAA/////wAA/////wEA/v8CAAEAAQD//wAAAAABAAAAAAD//wEAAQABAAAA//8CAAAAAAAAAP7/AAABAAAAAQABAAAAAgABAAAAAQD//wEAAwD+/wAA/v8AAAEAAAAAAAAAAAAAAAEAAAD//wMA/v///wAAAAACAAEAAAAAAP7///8DAAEAAQD//wEA/f8BAAEAAQD//wEAAQABAAMAAgAAAAEA//8AAP//BAAAAAIA/v//////AQABAAAAAAD//wEAAAACAAIAAQAAAAAAAgAAAAAAAAABAAIAAAABAAIAAQAAAP////8AAAAAAAD//wAAAQACAP//AAAAAAAAAQAAAAEA//8AAAAAAAD/////AQD//wAAAQD9////AQAAAAAA//8BAAAA///+/////v8BAAAAAQAAAAAAAAAAAAIA//8BAAAAAAACAP//AQD//wAAAAD/////AAD9/wAAAAACAAAAAgAAAAEAAQABAAEAAAAAAAEA//8AAAEAAQACAAAAAQAAAAEA//8BAAIAAAACAP//AAABAAAAAAAAAAAAAAD//wAAAQD/////AAAAAP////8AAAEAAAAAAP7///8BAAIAAQD//wEAAQAAAP//AgAAAAAAAAD//wAA//8CAP7/AQAAAP7/AAD+////AAAAAAAAAQABAAAA//8AAAEAAAABAP7/AAAAAP7/AAD+/wAAAQABAAEA/////////v8BAP///v///wIAAAAAAAAAAQAAAAIAAQAAAAAAAAABAAEAAAAAAAAAAAD//wEAAQD//wAAAQABAAAA/v/+/////////wAAAAD//wAAAAD/////AAAAAP7/AAD//wIA//8CAP//AQAAAP////8AAAAAAQABAP////8AAP//AQACAAAAAQAAAAAAAAAAAAAA//8BAAAAAAD+/wAA/v///wEAAAD+//7///8CAP7/AAABAP3/AwAAAAAAAAABAAIAAAABAAAAAQABAAIAAAAAAP//AAAAAAEAAAACAAEAAAACAAAAAAABAAAAAwAAAAAAAAD+/wAAAQD9//////8BAAAA/v8AAAAAAAAAAAAAAAD//wMA/v8BAAEAAQACAAAA/v8BAP//AwABAAIAAQABAP//AQAAAAEAAAAAAAEA//8AAAAAAAD/////AAABAAEAAAAAAP////8AAAAAAAAAAAAA/v8AAP//AQAAAP//AAABAAIAAQAAAAAAAgABAAAA/////wAAAQABAP//AQABAAEA/////wAAAAAAAAAAAAABAAEAAQAAAAAAAAAAAAAA//8AAP7/AQD9/wAAAgD//wEAAQABAAEA/v8AAAEA/////wAAAAAAAP//AAABAAAAAAAAAAAA//8CAP//AAABAAEAAQABAAAA//8BAAIAAgD//wAA/v8AAAEAAAD///7/AAAAAAEAAAABAAAAAQABAAAAAQACAAAA///+/wAAAQABAP7////+/wAA//8AAAAAAgAAAP//AQD9/wAAAAD//wAA//8AAAAAAQAAAAAAAQD//wAAAAAAAP//AQABAAAA/v8CAP//AAD///////8AAAAAAAACAAEA//8BAP7/AAAAAAEA//8BAAAAAQD//wAAAQD+/wAA/////wAAAAD//wAAAQABAAAA//8AAAEA/////wAA//8AAAAA/v/+/wEAAgABAP//AgD//wIA/////wAA//8AAAEAAQAAAAAAAQAAAAMAAAACAP//\", re = {\n general: {\n primaryColor: \"#42b0c5\",\n secondaryColor: \"#491d8d\",\n fontFamily: \"-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif\",\n showHeader: !0,\n showFooter: !0,\n showInputRow: !0,\n actionDisabledIcon: Me,\n embedded: !1,\n flowStartTrigger: \"ON_LOAD\"\n },\n tooltip: {\n mode: \"CLOSE\",\n text: \"Talk to me! 😊\"\n },\n chatButton: {\n icon: ee\n },\n header: {\n title: /* @__PURE__ */ l(\"div\", { style: { cursor: \"pointer\", margin: 0, fontSize: 20, fontWeight: \"bold\" }, onClick: () => window.open(\"https://github.com/tjtanjin/\", \"_blank\", \"noopener,noreferrer\"), children: \"Tan Jin\" }),\n showAvatar: !0,\n avatar: Ae,\n buttons: [_.NOTIFICATION_BUTTON, _.AUDIO_BUTTON, _.CLOSE_CHAT_BUTTON],\n closeChatIcon: Ue\n },\n notification: {\n disabled: !1,\n defaultToggledOn: !0,\n volume: 0.2,\n icon: Le,\n iconDisabled: Re,\n sound: _e,\n showCount: !0\n },\n audio: {\n disabled: !0,\n defaultToggledOn: !1,\n language: \"en-US\",\n voiceNames: [\"Microsoft David - English (United States)\", \"Alex (English - United States)\"],\n rate: 1,\n volume: 1,\n icon: qe,\n iconDisabled: Ze\n },\n chatHistory: {\n disabled: !1,\n maxEntries: 30,\n storageKey: \"rcb-history\",\n storageType: \"LOCAL_STORAGE\",\n viewChatHistoryButtonText: \"Load Chat History ⟳\",\n chatHistoryLineBreakText: \"----- Previous Chat History -----\",\n autoLoad: !1\n },\n chatInput: {\n disabled: !1,\n allowNewline: !1,\n enabledPlaceholderText: \"Type your message...\",\n disabledPlaceholderText: \"\",\n showCharacterCount: !1,\n characterLimit: -1,\n botDelay: 1e3,\n sendButtonIcon: ze,\n blockSpam: !0,\n sendOptionOutput: !0,\n sendCheckboxOutput: !0,\n buttons: [_.VOICE_MESSAGE_BUTTON, _.SEND_MESSAGE_BUTTON]\n },\n chatWindow: {\n showScrollbar: !1,\n showTypingIndicator: !0,\n autoJumpToBottom: !1,\n showMessagePrompt: !0,\n messagePromptText: \"New Messages ↓\",\n messagePromptOffset: 30,\n defaultOpen: !1\n },\n sensitiveInput: {\n maskInTextArea: !0,\n maskInUserBubble: !0,\n asterisksCount: 10,\n hideInUserBubble: !1\n },\n userBubble: {\n animate: !0,\n showAvatar: !1,\n avatar: ke,\n simulateStream: !1,\n streamSpeed: 30\n },\n botBubble: {\n animate: !0,\n showAvatar: !1,\n avatar: Ae,\n simulateStream: !1,\n streamSpeed: 30\n },\n voice: {\n disabled: !0,\n defaultToggledOn: !1,\n language: \"en-US\",\n timeoutPeriod: 1e4,\n autoSendDisabled: !1,\n autoSendPeriod: 1e3,\n sendAsAudio: !1,\n icon: Ye,\n iconDisabled: We\n },\n footer: {\n text: /* @__PURE__ */ W(\n \"div\",\n {\n style: { cursor: \"pointer\", display: \"flex\", flexDirection: \"row\", alignItems: \"center\", columnGap: 3 },\n onClick: () => window.open(\"https://react-chatbotify.com\", \"_blank\", \"noopener,noreferrer\"),\n children: [\n /* @__PURE__ */ l(\"span\", { children: \"Powered By \" }, 0),\n /* @__PURE__ */ l(\n \"div\",\n {\n style: {\n borderRadius: \"50%\",\n width: 14,\n height: 14,\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n background: \"linear-gradient(to right, #42b0c5, #491d8d)\"\n },\n children: /* @__PURE__ */ l(ee, { style: { width: \"80%\", height: \"80%\", fill: \"#fff\" } })\n },\n 1\n ),\n /* @__PURE__ */ l(\"span\", { style: { fontWeight: \"bold\" }, children: \" React ChatBotify\" }, 2)\n ]\n }\n ),\n buttons: [_.FILE_ATTACHMENT_BUTTON, _.EMOJI_PICKER_BUTTON]\n },\n fileAttachment: {\n disabled: !1,\n multiple: !0,\n accept: \".png\",\n icon: te,\n iconDisabled: te,\n sendFileName: !0,\n showMediaDisplay: !1\n },\n emoji: {\n disabled: !1,\n icon: oe,\n iconDisabled: oe,\n list: [\"😀\", \"😃\", \"😄\", \"😅\", \"😊\", \"😌\", \"😇\", \"🙃\", \"🤣\", \"😍\", \"🥰\", \"🥳\", \"🎉\", \"🎈\", \"🚀\", \"⭐️\"]\n },\n toast: {\n maxCount: 3,\n forbidOnMax: !1,\n dismissOnClick: !0\n },\n event: {\n rcbPreInjectMessage: !1,\n rcbPostInjectMessage: !1,\n rcbStartSimulateStreamMessage: !1,\n rcbStopSimulateStreamMessage: !1,\n rcbStartStreamMessage: !1,\n rcbChunkStreamMessage: !1,\n rcbStopStreamMessage: !1,\n rcbRemoveMessage: !1,\n rcbSaveChatHistory: !1,\n rcbLoadChatHistory: !1,\n rcbToggleChatWindow: !1,\n rcbStartSpeakAudio: !1,\n rcbToggleAudio: !1,\n rcbToggleNotifications: !1,\n rcbToggleVoice: !1,\n rcbChangePath: !1,\n rcbShowToast: !1,\n rcbDismissToast: !1,\n rcbUserSubmitText: !1,\n rcbUserUploadFile: !1,\n rcbTextAreaChangeValue: !1,\n rcbPreLoadChatBot: !1,\n rcbPostLoadChatBot: !1,\n rcbPreProcessBlock: !1,\n rcbPostProcessBlock: !1\n },\n ariaLabel: {\n chatButton: \"open chat\",\n audioButton: \"toggle audio\",\n closeChatButton: \"close chat\",\n emojiButton: \"emoji picker\",\n fileAttachmentButton: \"upload file\",\n notificationButton: \"toggle notifications\",\n sendButton: \"send message\",\n voiceButton: \"toggle voice\",\n inputTextArea: \"input text area\"\n },\n device: {\n desktopEnabled: !0,\n mobileEnabled: !0,\n applyMobileOptimizations: !0\n }\n}, ae = vA({\n settings: {},\n setSyncedSettings: () => null,\n syncedSettingsRef: { current: {} }\n}), R = () => hA(ae), $e = ({\n children: A,\n settings: e = re,\n setSyncedSettings: o,\n syncedSettingsRef: t\n}) => /* @__PURE__ */ l(ae.Provider, { value: { settings: e, setSyncedSettings: o, syncedSettingsRef: t }, children: A }), ce = {\n tooltipStyle: {},\n notificationBadgeStyle: {},\n chatWindowStyle: {},\n headerStyle: {},\n bodyStyle: {},\n chatInputContainerStyle: {},\n chatInputAreaStyle: {},\n chatInputAreaFocusedStyle: {},\n chatInputAreaDisabledStyle: {},\n userBubbleStyle: {},\n botBubbleStyle: {},\n botOptionStyle: {},\n botOptionHoveredStyle: {},\n botCheckboxRowStyle: {},\n botCheckboxNextStyle: {},\n botCheckMarkStyle: {},\n botCheckMarkSelectedStyle: {},\n characterLimitStyle: {},\n characterLimitReachedStyle: {},\n chatHistoryLineBreakStyle: {},\n chatMessagePromptStyle: {},\n chatMessagePromptHoveredStyle: {},\n footerStyle: {},\n loadingSpinnerStyle: {},\n mediaDisplayContainerStyle: {},\n chatButtonStyle: {},\n chatButtonHoveredStyle: {},\n chatHistoryButtonStyle: {},\n chatHistoryButtonHoveredStyle: {},\n sendButtonStyle: {},\n sendButtonHoveredStyle: {},\n sendButtonDisabledStyle: {},\n audioButtonStyle: {},\n audioButtonDisabledStyle: {},\n closeChatButtonStyle: {},\n emojiButtonStyle: {},\n emojiButtonDisabledStyle: {},\n fileAttachmentButtonStyle: {},\n fileAttachmentButtonDisabledStyle: {},\n notificationButtonStyle: {},\n notificationButtonDisabledStyle: {},\n voiceButtonStyle: {},\n voiceButtonDisabledStyle: {},\n chatIconStyle: {},\n audioIconStyle: {},\n audioIconDisabledStyle: {},\n closeChatIconStyle: {},\n emojiIconStyle: {},\n emojiIconDisabledStyle: {},\n fileAttachmentIconStyle: {},\n fileAttachmentIconDisabledStyle: {},\n notificationIconStyle: {},\n notificationIconDisabledStyle: {},\n voiceIconStyle: {},\n voiceIconDisabledStyle: {},\n sendIconStyle: {},\n sendIconDisabledStyle: {},\n sendIconHoveredStyle: {},\n rcbTypingIndicatorContainerStyle: {},\n rcbTypingIndicatorDotStyle: {},\n toastPromptContainerStyle: {},\n toastPromptStyle: {},\n toastPromptHoveredStyle: {}\n}, ie = vA({\n styles: {},\n setSyncedStyles: () => null,\n syncedStylesRef: { current: {} }\n}), X = () => hA(ie), At = ({\n children: A,\n styles: e = ce,\n setSyncedStyles: o,\n syncedStylesRef: t\n}) => /* @__PURE__ */ l(ie.Provider, { value: { styles: e, setSyncedStyles: o, syncedStylesRef: t }, children: A }), et = ({ buttons: A }) => {\n var n, s, a, r, c, i, u;\n const { settings: e } = R(), { styles: o } = X(), t = {\n backgroundImage: `linear-gradient(to right, ${(n = e.general) == null ? void 0 : n.secondaryColor},\n\t\t\t${(s = e.general) == null ? void 0 : s.primaryColor})`,\n ...o.headerStyle\n };\n return /* @__PURE__ */ W(\"div\", { style: t, className: \"rcb-chat-header-container\", children: [\n /* @__PURE__ */ W(\"div\", { className: \"rcb-chat-header\", children: [\n ((a = e.header) == null ? void 0 : a.showAvatar) && /* @__PURE__ */ l(\n \"div\",\n {\n style: { backgroundImage: `url(\"${(r = e.header) == null ? void 0 : r.avatar}\")` },\n className: \"rcb-bot-avatar\"\n }\n ),\n GA((c = e.header) == null ? void 0 : c.title) ? (i = e.header) == null ? void 0 : i.title : /* @__PURE__ */ l(\"div\", { style: { margin: 0, fontSize: 20, fontWeight: \"bold\" }, children: (u = e.header) == null ? void 0 : u.title })\n ] }),\n /* @__PURE__ */ l(\"div\", { className: \"rcb-chat-header\", children: A == null ? void 0 : A.map(\n (d, w) => /* @__PURE__ */ l(YA, { children: d }, w)\n ) })\n ] });\n}, le = vA({}), $ = () => hA(le), tt = ({\n children: A,\n botIdRef: e,\n flowRef: o\n}) => {\n const t = eA(null), n = eA(\"\"), s = eA(null), a = eA(/* @__PURE__ */ new Map()), r = eA(null), c = eA(\"\"), i = eA(!1), u = eA(null), d = eA(null), w = eA(null);\n return /* @__PURE__ */ l(le.Provider, { value: {\n botIdRef: e,\n flowRef: o,\n inputRef: t,\n timeoutIdRef: s,\n streamMessageMap: a,\n chatBodyRef: r,\n paramsInputRef: c,\n keepVoiceOnRef: i,\n audioContextRef: u,\n audioBufferRef: d,\n gainNodeRef: w,\n prevInputRef: n\n }, children: A });\n}, nA = (A) => {\n const [e, o] = G(A), t = eA(A);\n return [e, (s) => {\n const a = typeof s == \"function\" ? s(t.current) : s;\n t.current = a, o(a);\n }, t];\n}, ue = vA({}), tA = () => hA(ue), ot = ({\n children: A,\n settings: e\n}) => {\n var rA, lA, PA, DA, QA, _A;\n const [o, t, n] = nA(!1), [s, a, r] = nA(\n ((rA = e == null ? void 0 : e.chatWindow) == null ? void 0 : rA.defaultOpen) ?? !1\n ), [c, i, u] = nA(\n ((lA = e == null ? void 0 : e.audio) == null ? void 0 : lA.defaultToggledOn) ?? !1\n ), [d, w, f] = nA(\n ((PA = e == null ? void 0 : e.voice) == null ? void 0 : PA.defaultToggledOn) ?? !1\n ), [\n g,\n B,\n E\n ] = nA(\n ((DA = e == null ? void 0 : e.notification) == null ? void 0 : DA.defaultToggledOn) ?? !0\n ), [Q, y] = G(!1), [v, h] = G(!1), [P, D, S] = nA(!1), [I, L, N] = nA(!0), [\n T,\n C,\n m\n ] = nA(!1), [b, M] = G(!1), [O, p] = G(!1), [k, K] = G(0), [j, F] = G(0), [V, U] = G(!1), [z, Y] = G(((QA = window.visualViewport) == null ? void 0 : QA.height) ?? window.innerHeight), [AA, q] = G(((_A = window.visualViewport) == null ? void 0 : _A.width) ?? window.innerWidth);\n return /* @__PURE__ */ l(ue.Provider, { value: {\n isBotTyping: o,\n setSyncedIsBotTyping: t,\n syncedIsBotTypingRef: n,\n isChatWindowOpen: s,\n setSyncedIsChatWindowOpen: a,\n syncedIsChatWindowOpenRef: r,\n audioToggledOn: c,\n setSyncedAudioToggledOn: i,\n syncedAudioToggledOnRef: u,\n voiceToggledOn: d,\n setSyncedVoiceToggledOn: w,\n syncedVoiceToggledOnRef: f,\n notificationsToggledOn: g,\n setSyncedNotificationsToggledOn: B,\n syncedNotificationsToggledOnRef: E,\n isLoadingChatHistory: Q,\n setIsLoadingChatHistory: y,\n hasChatHistoryLoaded: v,\n setHasChatHistoryLoaded: h,\n isScrolling: P,\n setSyncedIsScrolling: D,\n syncedIsScrollingRef: S,\n textAreaDisabled: I,\n setSyncedTextAreaDisabled: L,\n syncedTextAreaDisabledRef: N,\n textAreaSensitiveMode: T,\n setSyncedTextAreaSensitiveMode: C,\n syncedTextAreaSensitiveModeRef: m,\n hasInteractedPage: b,\n setHasInteractedPage: M,\n hasFlowStarted: O,\n setHasFlowStarted: p,\n unreadCount: k,\n setUnreadCount: K,\n inputLength: j,\n setInputLength: F,\n blockAllowsAttachment: V,\n setBlockAllowsAttachment: U,\n viewportHeight: z,\n setViewportHeight: Y,\n viewportWidth: AA,\n setViewportWidth: q\n }, children: A });\n};\nvar H = /* @__PURE__ */ ((A) => (A.START_SPEAK_AUDIO = \"rcb-start-speak-audio\", A.TOGGLE_AUDIO = \"rcb-toggle-audio\", A.TOGGLE_NOTIFICATIONS = \"rcb-toggle-notifications\", A.TOGGLE_VOICE = \"rcb-toggle-voice\", A.TOGGLE_CHAT_WINDOW = \"rcb-toggle-chat-window\", A.PRE_INJECT_MESSAGE = \"rcb-pre-inject-message\", A.POST_INJECT_MESSAGE = \"rcb-post-inject-message\", A.START_SIMULATE_STREAM_MESSAGE = \"rcb-start-simulate-stream-message\", A.STOP_SIMULATE_STREAM_MESSAGE = \"rcb-stop-simulate-stream-message\", A.START_STREAM_MESSAGE = \"rcb-start-stream-message\", A.CHUNK_STREAM_MESSAGE = \"rcb-chunk-stream-message\", A.STOP_STREAM_MESSAGE = \"rcb-stop-stream-message\", A.REMOVE_MESSAGE = \"rcb-remove-message\", A.SAVE_CHAT_HISTORY = \"rcb-save-chat-history\", A.LOAD_CHAT_HISTORY = \"rcb-load-chat-history\", A.CHANGE_PATH = \"rcb-change-path\", A.SHOW_TOAST = \"rcb-show-toast\", A.DISMISS_TOAST = \"rcb-dismiss-toast\", A.USER_SUBMIT_TEXT = \"rcb-user-submit-text\", A.USER_UPLOAD_FILE = \"rcb-user-upload-file\", A.TEXT_AREA_CHANGE_VALUE = \"rcb-text-area-change-value\", A.PRE_LOAD_CHATBOT = \"rcb-pre-load-chatbot\", A.POST_LOAD_CHATBOT = \"rcb-post-load-chatbot\", A.PRE_PROCESS_BLOCK = \"rcb-pre-process-block\", A.POST_PROCESS_BLOCK = \"rcb-post-process-block\", A))(H || {});\nconst nt = {\n [H.START_SPEAK_AUDIO]: !0,\n [H.TOGGLE_AUDIO]: !0,\n [H.TOGGLE_VOICE]: !0,\n [H.TOGGLE_NOTIFICATIONS]: !0,\n [H.TOGGLE_CHAT_WINDOW]: !0,\n [H.PRE_INJECT_MESSAGE]: !0,\n [H.POST_INJECT_MESSAGE]: !1,\n [H.PRE_LOAD_CHATBOT]: !0,\n [H.POST_LOAD_CHATBOT]: !1,\n [H.START_SIMULATE_STREAM_MESSAGE]: !0,\n [H.STOP_SIMULATE_STREAM_MESSAGE]: !1,\n [H.START_STREAM_MESSAGE]: !0,\n [H.CHUNK_STREAM_MESSAGE]: !0,\n [H.STOP_STREAM_MESSAGE]: !0,\n [H.REMOVE_MESSAGE]: !0,\n [H.SAVE_CHAT_HISTORY]: !0,\n [H.LOAD_CHAT_HISTORY]: !0,\n [H.CHANGE_PATH]: !0,\n [H.SHOW_TOAST]: !0,\n [H.DISMISS_TOAST]: !0,\n [H.USER_SUBMIT_TEXT]: !0,\n [H.USER_UPLOAD_FILE]: !0,\n [H.TEXT_AREA_CHANGE_VALUE]: !0,\n [H.PRE_PROCESS_BLOCK]: !0,\n [H.POST_PROCESS_BLOCK]: !0\n}, UA = async (A, e, o) => {\n const t = new CustomEvent(A, {\n detail: e,\n cancelable: nt[A]\n });\n return t.data = o, t.promises = [], window.dispatchEvent(t), await Promise.all(t.promises), t;\n}, fe = vA({\n paths: [],\n setSyncedPaths: () => {\n },\n syncedPathsRef: { current: [] }\n}), pA = () => hA(fe), st = ({ children: A }) => {\n const [e, o, t] = nA([]);\n return /* @__PURE__ */ l(fe.Provider, { value: { paths: e, setSyncedPaths: o, syncedPathsRef: t }, children: A });\n}, iA = () => {\n const { botIdRef: A } = $(), { syncedPathsRef: e } = pA(), o = x(() => e.current.length > 0 ? e.current.at(-1) ?? null : null, []), t = x(() => e.current.length > 1 ? e.current.at(-2) ?? null : null, []);\n return { dispatchRcbEvent: x(async (s, a) => {\n const r = { botId: A.current, currPath: o(), prevPath: t() };\n return await UA(s, r, a);\n }, [A]) };\n}, sA = () => {\n const { settings: A } = R(), {\n isChatWindowOpen: e,\n setSyncedIsChatWindowOpen: o,\n viewportHeight: t,\n setViewportHeight: n,\n viewportWidth: s,\n setViewportWidth: a,\n setUnreadCount: r,\n setSyncedIsBotTyping: c,\n setSyncedIsScrolling: i,\n syncedIsBotTypingRef: u,\n syncedIsChatWindowOpenRef: d\n } = tA(), { chatBodyRef: w } = $(), { dispatchRcbEvent: f } = iA(), g = x(() => {\n if (!w.current)\n return !1;\n const v = w.current.getBoundingClientRect(), h = window.innerHeight ?? document.documentElement.clientHeight, P = window.innerWidth ?? document.documentElement.clientWidth;\n return v.top >= 0 && v.left >= 0 && v.bottom <= h && v.right <= P;\n }, [w]), B = x(async (v) => {\n var h;\n v !== d.current && ((h = A.event) != null && h.rcbToggleChatWindow && (await f(\n H.TOGGLE_CHAT_WINDOW,\n {\n currState: d.current,\n newState: !d.current\n }\n )).defaultPrevented || o((P) => (P || r(0), !P)));\n }, [d]), E = x(async (v) => {\n v !== u.current && c((h) => !h);\n }, [u]), Q = x((v, h, P, D) => (v /= D / 2, v < 1 ? P / 2 * v * v + h : (v--, -P / 2 * (v * (v - 2) - 1) + h)), []), y = x((v = 0) => {\n if (!w.current)\n return;\n const h = w.current.scrollHeight - w.current.clientHeight;\n if (v <= 0) {\n w.current.scrollTop = h, i(!1);\n return;\n }\n const P = w.current.scrollTop, D = h - P, S = 20;\n let I = 0;\n const L = () => {\n if (!w.current)\n return;\n I += S;\n const N = Q(I, P, D, v);\n w.current.scrollTop = N, I < v ? requestAnimationFrame(L) : i(!1);\n };\n L();\n }, [w]);\n return {\n isChatWindowOpen: e,\n setSyncedIsChatWindowOpen: o,\n toggleChatWindow: B,\n viewportHeight: t,\n setViewportHeight: n,\n viewportWidth: s,\n setViewportWidth: a,\n toggleIsBotTyping: E,\n scrollToBottom: y,\n getIsChatBotVisible: g\n };\n}, rt = () => {\n var w, f, g;\n const { settings: A } = R(), { styles: e } = X(), { unreadCount: o, isScrolling: t } = tA(), { chatBodyRef: n } = $(), { scrollToBottom: s } = sA(), [a, r] = G(!1), c = {\n color: (w = A.general) == null ? void 0 : w.primaryColor,\n borderColor: (f = A.general) == null ? void 0 : f.primaryColor,\n ...e.chatMessagePromptHoveredStyle\n }, i = () => {\n r(!0);\n }, u = () => {\n r(!1);\n };\n return /* @__PURE__ */ l(\"div\", { className: `rcb-message-prompt-container ${(() => {\n var E;\n return n.current && ((E = A.chatWindow) == null ? void 0 : E.showMessagePrompt) && t && o > 0 ? \"visible\" : \"hidden\";\n })()}`, children: /* @__PURE__ */ l(\n \"div\",\n {\n onMouseEnter: i,\n onMouseLeave: u,\n style: a ? c : { ...e.chatMessagePromptStyle },\n onMouseDown: (B) => {\n B.preventDefault(), s(600);\n },\n className: \"rcb-message-prompt-text\",\n children: (g = A.chatWindow) == null ? void 0 : g.messagePromptText\n }\n ) });\n}, de = vA({\n messages: [],\n setSyncedMessages: () => {\n },\n syncedMessagesRef: { current: [] }\n}), XA = () => hA(de), at = ({ children: A }) => {\n const [e, o, t] = nA([]);\n return /* @__PURE__ */ l(de.Provider, { value: { messages: e, setSyncedMessages: o, syncedMessagesRef: t }, children: A });\n}, ct = ({\n message: A,\n isNewSender: e\n}) => {\n var d, w, f, g, B, E;\n const { settings: o } = R(), { styles: t } = X(), n = typeof A.content == \"string\", s = A.content, a = A.contentWrapper ? /* @__PURE__ */ l(A.contentWrapper, { children: s }) : s, r = {\n backgroundColor: (d = o.general) == null ? void 0 : d.primaryColor,\n color: \"#fff\",\n maxWidth: (w = o.userBubble) != null && w.showAvatar ? \"65%\" : \"70%\",\n ...t.userBubbleStyle\n }, c = (f = o.userBubble) != null && f.animate ? \"rcb-user-message-entry\" : \"\", i = ((g = o.userBubble) == null ? void 0 : g.showAvatar) && e, u = `rcb-user-message${!e && ((B = o.userBubble) != null && B.showAvatar) ? \" rcb-user-message-offset\" : \"\"}`;\n return /* @__PURE__ */ W(\"div\", { className: \"rcb-user-message-container\", children: [\n n ? /* @__PURE__ */ l(\"div\", { style: r, className: `${u} ${c}`, children: a }) : /* @__PURE__ */ l(oA, { children: a }),\n i && /* @__PURE__ */ l(\n \"div\",\n {\n style: { backgroundImage: `url(\"${(E = o.userBubble) == null ? void 0 : E.avatar}\")` },\n className: \"rcb-message-user-avatar\"\n }\n )\n ] });\n}, it = ({\n message: A,\n isNewSender: e\n}) => {\n var d, w, f, g, B, E;\n const { settings: o } = R(), { styles: t } = X(), n = typeof A.content == \"string\", s = A.content, a = A.contentWrapper ? /* @__PURE__ */ l(A.contentWrapper, { children: s }) : s, r = {\n backgroundColor: (d = o.general) == null ? void 0 : d.secondaryColor,\n color: \"#fff\",\n maxWidth: (w = o.botBubble) != null && w.showAvatar ? \"65%\" : \"70%\",\n ...t.botBubbleStyle\n }, c = (f = o.botBubble) != null && f.animate ? \"rcb-bot-message-entry\" : \"\", i = ((g = o.botBubble) == null ? void 0 : g.showAvatar) && e, u = `rcb-bot-message${!e && ((B = o.botBubble) != null && B.showAvatar) ? \" rcb-bot-message-offset\" : \"\"}`;\n return /* @__PURE__ */ W(\"div\", { className: \"rcb-bot-message-container\", children: [\n i && /* @__PURE__ */ l(\n \"div\",\n {\n style: { backgroundImage: `url(\"${(E = o.botBubble) == null ? void 0 : E.avatar}\")` },\n className: \"rcb-message-bot-avatar\"\n }\n ),\n n ? /* @__PURE__ */ l(\"div\", { style: r, className: `${u} ${c}`, children: a }) : /* @__PURE__ */ l(oA, { children: a })\n ] });\n}, lt = () => {\n var t, n, s;\n const { settings: A } = R(), { styles: e } = X(), o = (t = A.botBubble) != null && t.animate ? \"rcb-bot-message-entry\" : \"\";\n return /* @__PURE__ */ W(\"div\", { className: \"rcb-bot-message-container\", children: [\n ((n = A.botBubble) == null ? void 0 : n.showAvatar) && /* @__PURE__ */ l(\n \"div\",\n {\n style: { backgroundImage: `url(\"${(s = A.botBubble) == null ? void 0 : s.avatar}\")` },\n className: \"rcb-message-bot-avatar\"\n }\n ),\n /* @__PURE__ */ l(\n \"div\",\n {\n onMouseDown: (a) => {\n a.preventDefault();\n },\n className: `rcb-bot-message ${o}`,\n children: /* @__PURE__ */ W(\"div\", { className: \"rcb-typing-indicator\", style: { ...e == null ? void 0 : e.rcbTypingIndicatorContainerStyle }, children: [\n /* @__PURE__ */ l(\"span\", { className: \"rcb-dot\", style: { ...e == null ? void 0 : e.rcbTypingIndicatorDotStyle } }),\n /* @__PURE__ */ l(\"span\", { className: \"rcb-dot\", style: { ...e == null ? void 0 : e.rcbTypingIndicatorDotStyle } }),\n /* @__PURE__ */ l(\"span\", { className: \"rcb-dot\", style: { ...e == null ? void 0 : e.rcbTypingIndicatorDotStyle } })\n ] })\n }\n )\n ] });\n}, ut = () => {\n var i, u, d;\n const { settings: A } = R(), { styles: e } = X(), { messages: o } = XA(), { scrollToBottom: t } = sA(), {\n isBotTyping: n,\n syncedIsScrollingRef: s\n } = tA(), { chatBodyRef: a } = $(), r = {\n ...e == null ? void 0 : e.bodyStyle,\n scrollbarWidth: (i = A.chatWindow) != null && i.showScrollbar ? \"auto\" : \"none\"\n };\n Z(() => {\n s.current || t();\n }, [(u = a.current) == null ? void 0 : u.scrollHeight]);\n const c = (w) => w === 0 ? !0 : o[w].sender !== o[w - 1].sender;\n return /* @__PURE__ */ W(\n \"div\",\n {\n style: r,\n className: \"rcb-chat-body-container\",\n ref: a,\n children: [\n o.map((w, f) => {\n const g = c(f);\n return w.sender.toUpperCase() === \"USER\" ? /* @__PURE__ */ l(ct, { message: w, isNewSender: g }, f) : w.sender.toUpperCase() === \"BOT\" ? /* @__PURE__ */ l(it, { message: w, isNewSender: g }, f) : /* @__PURE__ */ l(\"div\", { children: w.content }, f);\n }),\n n && ((d = A.chatWindow) == null ? void 0 : d.showTypingIndicator) && /* @__PURE__ */ l(lt, {}),\n /* @__PURE__ */ l(rt, {})\n ]\n }\n );\n}, ft = ({\n checkboxes: A,\n checkedItems: e,\n path: o\n}) => {\n var E, Q, y, v, h, P, D, S, I, L, N;\n const { settings: t } = R(), { styles: n } = X(), { paths: s } = pA(), { handleSubmitText: a } = mA(), [r, c] = G(/* @__PURE__ */ new Set()), [i, u] = G(!1), d = {\n cursor: i ? `url(\"${(E = t.general) == null ? void 0 : E.actionDisabledIcon}\"), auto` : \"pointer\",\n color: (Q = t.general) == null ? void 0 : Q.primaryColor,\n borderColor: (y = t.general) == null ? void 0 : y.primaryColor,\n ...n.botCheckboxRowStyle\n }, w = {\n cursor: i || r.size < A.min ? `url(\"${(v = t.general) == null ? void 0 : v.actionDisabledIcon}\"), auto` : \"pointer\",\n color: (h = t.general) == null ? void 0 : h.primaryColor,\n borderColor: (P = t.general) == null ? void 0 : P.primaryColor,\n ...n.botCheckboxNextStyle\n }, f = {\n cursor: i ? `url(\"${(D = t.general) == null ? void 0 : D.actionDisabledIcon}\"), auto` : \"pointer\",\n color: \"transparent\",\n ...n.botCheckMarkStyle\n }, g = {\n cursor: i ? `url(\"${(S = t.general) == null ? void 0 : S.actionDisabledIcon}\"), auto` : \"pointer\",\n color: \"#fff\",\n borderColor: (I = t.general) == null ? void 0 : I.primaryColor,\n backgroundColor: (L = t.general) == null ? void 0 : L.primaryColor,\n ...n.botCheckMarkSelectedStyle\n };\n Z(() => {\n s.length > 0 && s[s.length - 1] !== o && u(!A.reusable);\n }, [s]);\n const B = (T) => {\n i || c((C) => {\n const m = new Set(C);\n if (m.has(T))\n e.delete(T), m.delete(T);\n else {\n if (r.size == A.max)\n return C;\n e.add(T), m.add(T);\n }\n return m;\n });\n };\n return /* @__PURE__ */ W(\"div\", { className: `rcb-checkbox-container ${(N = t.botBubble) != null && N.showAvatar ? \"rcb-checkbox-offset\" : \"\"}`, children: [\n A.items.map((T) => /* @__PURE__ */ l(\n \"div\",\n {\n onMouseDown: (C) => {\n C.preventDefault(), B(T);\n },\n style: d,\n className: \"rcb-checkbox-row-container\",\n children: /* @__PURE__ */ W(\"div\", { className: \"rcb-checkbox-row\", children: [\n /* @__PURE__ */ l(\n \"div\",\n {\n style: r.has(T) ? g : f,\n className: \"rcb-checkbox-mark\"\n }\n ),\n /* @__PURE__ */ l(\"div\", { className: \"rcb-checkbox-label\", children: T })\n ] })\n },\n T\n )),\n /* @__PURE__ */ l(\n \"div\",\n {\n style: w,\n className: \"rcb-checkbox-next-button\",\n onMouseDown: (T) => {\n var b;\n if (T.preventDefault(), i || r.size < A.min)\n return;\n const C = Array.from(e).join(\", \");\n u(!A.reusable);\n let m;\n A.sendOutput != null ? m = A.sendOutput : m = ((b = t.chatInput) == null ? void 0 : b.sendCheckboxOutput) ?? !0, a(C, m);\n }\n }\n )\n ] });\n}, dt = async (A, e) => {\n const o = A.checkboxes;\n if (!o)\n return;\n let t;\n if (typeof o == \"function\" ? (t = o(e), t instanceof Promise && (t = await t)) : t = o, Array.isArray(t) && (t = { items: t }), !(\"items\" in t) || t.items.length == 0)\n return;\n t.min == null && (t.min = 1), t.max == null && (t.max = t.items.length), t.min > t.max && (t.min = t.max), t.reusable == null && (t.reusable = !1);\n const n = /* @__PURE__ */ new Set(), s = e.currPath, a = /* @__PURE__ */ l(ft, { checkboxes: t, checkedItems: n, path: s });\n await e.injectMessage(a);\n}, wt = async (A, e) => {\n const o = A.function;\n if (!o)\n return;\n const t = o(e);\n return t instanceof Promise ? await t : t;\n}, gt = async (A, e, o) => {\n const t = A.message;\n if (!t)\n return;\n if (typeof t == \"string\") {\n t.trim() !== \"\" && (o ? await e.simulateStreamMessage(t) : await e.injectMessage(t));\n return;\n }\n let n = t(e);\n n instanceof Promise && (n = await n), typeof n == \"string\" && n.trim() !== \"\" && (o ? await e.simulateStreamMessage(n) : await e.injectMessage(n));\n}, Bt = ({\n options: A,\n path: e\n}) => {\n var g, B, E, Q, y, v;\n const { settings: o } = R(), { styles: t } = X(), { paths: n } = pA(), { handleSubmitText: s } = mA(), [a, r] = G([]), [c, i] = G(!1), u = {\n cursor: c ? `url(\"${(g = o.general) == null ? void 0 : g.actionDisabledIcon}\"), auto` : \"pointer\",\n color: (B = o.general) == null ? void 0 : B.primaryColor,\n borderColor: (E = o.general) == null ? void 0 : E.primaryColor,\n backgroundColor: \"#fff\",\n ...t.botOptionStyle\n }, d = {\n color: \"#fff\",\n borderColor: (Q = o.general) == null ? void 0 : Q.primaryColor,\n backgroundColor: (y = o.general) == null ? void 0 : y.primaryColor,\n ...t.botOptionHoveredStyle\n };\n Z(() => {\n n.length > 0 && n[n.length - 1] !== e && i(!A.reusable);\n }, [n]);\n const w = (h) => {\n r((P) => {\n const D = [...P];\n return D[h] = !0, D;\n });\n }, f = (h) => {\n r((P) => {\n const D = [...P];\n return D[h] = !1, D;\n });\n };\n return /* @__PURE__ */ l(\"div\", { className: `rcb-options-container ${(v = o.botBubble) != null && v.showAvatar ? \"rcb-options-offset\" : \"\"}`, children: A.items.map((h, P) => {\n const D = a[P] && !c;\n return /* @__PURE__ */ l(\n \"div\",\n {\n className: \"rcb-options\",\n style: D ? d : u,\n onMouseEnter: () => w(P),\n onMouseLeave: () => f(P),\n onMouseDown: (S) => {\n var L;\n if (S.preventDefault(), c)\n return;\n i(!A.reusable);\n let I;\n A.sendOutput != null ? I = A.sendOutput : I = ((L = o.chatInput) == null ? void 0 : L.sendOptionOutput) ?? !0, s(h, I);\n },\n children: h\n },\n h\n );\n }) });\n}, vt = async (A, e) => {\n const o = A.options;\n if (!o)\n return;\n let t;\n if (typeof o == \"function\" ? (t = o(e), t instanceof Promise && (t = await t)) : t = o, Array.isArray(t) && (t = { items: t }), !(\"items\" in t) || t.items.length == 0)\n return;\n t.reusable == null && (t.reusable = !1);\n const n = e.currPath, s = /* @__PURE__ */ l(Bt, { options: t, path: n });\n await e.injectMessage(s);\n}, ht = async (A, e) => {\n const o = A.path;\n if (!o)\n return !1;\n if (typeof o == \"string\")\n return await e.goToPath(o), !0;\n let t = o(e);\n if (t instanceof Promise && (t = await t), !t)\n return !1;\n const n = t;\n return await e.goToPath(n), !0;\n}, Pt = async (A, e) => {\n const o = A.component;\n if (o) {\n if (typeof o == \"function\") {\n let t = o(e);\n if (t instanceof Promise && (t = await t), !t)\n return;\n await e.injectMessage(t);\n return;\n }\n await e.injectMessage(o);\n }\n}, Dt = async (A, e, o, t) => {\n const n = A.transition;\n let s;\n if (typeof n == \"function\" ? (s = n(e), s instanceof Promise && (s = await s)) : s = n, typeof s == \"number\" && (s = { duration: s }), !s || s instanceof Promise || s.duration == null || typeof s.duration != \"number\")\n return;\n s.interruptable == null && (s.interruptable = !1);\n const a = setTimeout(async () => {\n const r = await t(A);\n r && await ge(r, e);\n }, s.duration);\n s.interruptable && (o.current = a);\n}, Et = async (A, e, o) => {\n const t = A.chatDisabled;\n if (t == null)\n return;\n let n;\n typeof t == \"function\" ? (n = t(e), n instanceof Promise && (n = await n)) : n = t, o(n);\n}, we = async (A, e, o) => {\n const t = A.isSensitive;\n if (!t) {\n o(!1);\n return;\n }\n let n;\n typeof t == \"function\" ? (n = t(e), n instanceof Promise && (n = await n)) : n = t, o(n);\n}, yt = async (A, e, o, t, n, s, a) => {\n if (!A)\n throw new Error(\"Block is not valid.\");\n for (const r of Object.keys(A))\n switch (r) {\n case \"message\":\n await gt(A, e, o);\n break;\n case \"options\":\n await vt(A, e);\n break;\n case \"checkboxes\":\n await dt(A, e);\n break;\n case \"component\":\n await Pt(A, e);\n break;\n case \"chatDisabled\":\n await Et(A, e, n);\n break;\n case \"isSensitive\":\n await we(A, e, s);\n break;\n case \"transition\":\n await Dt(A, e, t, a);\n }\n}, ge = async (A, e) => {\n if (!A)\n throw new Error(\"Block is not valid.\");\n const o = Object.keys(A);\n for (const t of o)\n t === \"function\" && await wt(A, e);\n o.includes(\"path\") && await ht(A, e);\n}, Ct = () => {\n var o;\n const { settings: A } = R(), { styles: e } = X();\n return /* @__PURE__ */ l(\"div\", { className: \"rcb-line-break-container\", children: /* @__PURE__ */ l(\n \"div\",\n {\n style: { ...e.chatHistoryLineBreakStyle },\n className: \"rcb-line-break-text\",\n \"data-testid\": \"chat-history-line-break-text\",\n children: (o = A.chatHistory) == null ? void 0 : o.chatHistoryLineBreakText\n }\n ) });\n}, mt = () => {\n var t;\n const { settings: A } = R(), { styles: e } = X(), o = {\n borderTop: `4px solid ${(t = A.general) == null ? void 0 : t.primaryColor}`,\n ...e.loadingSpinnerStyle\n };\n return /* @__PURE__ */ l(\"div\", { className: \"rcb-spinner-container\", children: /* @__PURE__ */ l(\"div\", { style: o, className: \"rcb-spinner\" }) });\n}, MA = () => {\n try {\n if (typeof crypto < \"u\" && typeof crypto.randomUUID == \"function\")\n return crypto.randomUUID();\n throw new Error(\"crypto.randomUUID not available\");\n } catch (A) {\n if (typeof crypto < \"u\" && typeof crypto.getRandomValues == \"function\")\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, function(e) {\n const o = crypto.getRandomValues(new Uint8Array(1))[0] % 16;\n return (e === \"x\" ? o : o & 3 | 8).toString(16);\n });\n throw console.error(A), new Error(\"crypto.getRandomValues is also not available\");\n }\n}, gA = (A, e) => ({\n id: MA(),\n content: A,\n sender: e,\n type: typeof A == \"string\" ? \"string\" : \"object\",\n timestamp: (/* @__PURE__ */ new Date()).toUTCString(),\n tags: []\n});\nlet wA, Be = !1, kA = \"rcb-history\", IA = 30, ve = !1, HA = [];\nconst Qt = async (A) => {\n if (ve || !wA)\n return;\n const e = [];\n for (let t = A.length - 1; t >= 0; t--) {\n const n = A[t];\n if (n.sender.toUpperCase() !== \"SYSTEM\" && (n.content !== \"\" && e.unshift(n), e.length === IA))\n break;\n }\n let o = e.map(St);\n if (!Be && o.length < IA) {\n const t = IA - o.length;\n o = [...HA.slice(-t), ...o];\n }\n he(o);\n}, bt = (A) => {\n if (A != null)\n try {\n return JSON.parse(A);\n } catch {\n return [];\n }\n return [];\n}, bA = () => HA, jA = (A) => {\n he(A), HA = A;\n}, he = (A) => {\n wA && wA.setItem(kA, JSON.stringify(A));\n}, pt = () => {\n wA && wA.removeItem(kA);\n}, zA = (A) => {\n var e, o, t, n, s;\n ((o = (e = A.chatHistory) == null ? void 0 : e.storageType) == null ? void 0 : o.toUpperCase()) === \"SESSION_STORAGE\" ? wA = sessionStorage : wA = localStorage, kA = (t = A.chatHistory) == null ? void 0 : t.storageKey, IA = (n = A.chatHistory) == null ? void 0 : n.maxEntries, ve = (s = A.chatHistory) == null ? void 0 : s.disabled, HA = bt(wA.getItem(kA));\n}, St = (A) => GA(A.content) ? structuredClone({\n id: A.id,\n content: Te.renderToString(A.content),\n type: A.type,\n sender: A.sender.toUpperCase(),\n timestamp: A.timestamp,\n tags: A.tags\n}) : A, It = (A, e, o, t, n, s, a, r, c) => {\n var i;\n if (Be = !0, o != null)\n try {\n const u = gA(/* @__PURE__ */ l(mt, {}), \"SYSTEM\"), d = n.current.slice(1);\n t([u, ...d]);\n const w = o.map((f) => {\n if (f.type === \"object\") {\n const g = Pe(f.content, A, e);\n return { ...f, content: g };\n }\n return f;\n });\n setTimeout(() => {\n var B;\n const f = n.current.slice(1);\n let g = (B = A.chatHistory) != null && B.autoLoad ? gA(/* @__PURE__ */ l(oA, {}), \"SYSTEM\") : gA(/* @__PURE__ */ l(Ct, {}), \"SYSTEM\");\n t([...w, g, ...f]), c(!0);\n }, 500), setTimeout(() => {\n if (!s.current)\n return;\n const { scrollHeight: f } = s.current, g = f - a;\n s.current.scrollTop += g, r(!1);\n }, 510);\n } catch {\n wA.removeItem((i = A.chatHistory) == null ? void 0 : i.storageKey);\n }\n}, Pe = (A, e, o) => {\n const n = new DOMParser().parseFromString(A, \"text/html\");\n return Array.from(n.body.childNodes).map((r, c) => {\n var i;\n if (r.nodeType === Node.TEXT_NODE)\n return r.textContent;\n {\n const u = r.tagName.toLowerCase();\n let d = Array.from(r.attributes).reduce((f, g) => {\n const B = g.name.toLowerCase();\n if (B === \"style\") {\n const E = g.value.split(\";\").filter((y) => y.trim() !== \"\"), Q = {};\n E.forEach((y) => {\n const [v, h] = y.split(\":\").map((D) => D.trim()), P = v.replace(/-([a-z])/g, (D, S) => S.toUpperCase());\n Q[P] = h;\n }), f[B] = Q;\n } else (u === \"audio\" || u === \"video\") && B === \"controls\" && g.value === \"\" ? f[B] = \"true\" : f[B] = g.value;\n return f;\n }, {});\n if (Object.prototype.hasOwnProperty.call(d, \"class\")) {\n const f = r.classList;\n d.className = f.toString(), delete d.class, (i = e.botBubble) != null && i.showAvatar && (d = Tt(f, d)), d = Mt(f, d, e, o), d = kt(f, d, e, o), d = Ht(f, d, e, o), d = xt(f, d, e, o);\n }\n if ([\n \"area\",\n \"base\",\n \"br\",\n \"col\",\n \"embed\",\n \"hr\",\n \"img\",\n \"input\",\n \"link\",\n \"meta\",\n \"source\",\n \"track\",\n \"wbr\"\n ].includes(u))\n return $A(u, { key: c, ...d });\n {\n const f = Pe(r.innerHTML, e, o);\n return $A(u, { key: c, ...d }, ...f);\n }\n }\n });\n}, Tt = (A, e) => ((A.contains(\"rcb-options-container\") || A.contains(\"rcb-checkbox-container\")) && (e.className = `${A.toString()} rcb-options-offset`), e), Mt = (A, e, o, t) => {\n var n, s, a, r, c;\n return A.contains(\"rcb-options\") && (e.style = {\n ...e.style,\n color: ((n = t.botOptionStyle) == null ? void 0 : n.color) ?? ((s = o.general) == null ? void 0 : s.primaryColor),\n borderColor: ((a = t.botOptionStyle) == null ? void 0 : a.color) ?? ((r = o.general) == null ? void 0 : r.primaryColor),\n cursor: `url(\"${(c = o.general) == null ? void 0 : c.actionDisabledIcon}\"), auto`,\n ...t.botOptionStyle\n }), e;\n}, kt = (A, e, o, t) => {\n var n, s, a, r, c;\n return A.contains(\"rcb-checkbox-row-container\") && (e.style = {\n ...e.style,\n color: ((n = t.botCheckboxRowStyle) == null ? void 0 : n.color) ?? ((s = o.general) == null ? void 0 : s.primaryColor),\n borderColor: ((a = t.botCheckboxRowStyle) == null ? void 0 : a.color) ?? ((r = o.general) == null ? void 0 : r.primaryColor),\n cursor: `url(\"${(c = o.general) == null ? void 0 : c.actionDisabledIcon}\"), auto`,\n ...t.botCheckboxRowStyle\n }), e;\n}, Ht = (A, e, o, t) => {\n var n, s, a, r, c;\n return A.contains(\"rcb-checkbox-next-button\") && (e.style = {\n ...e.style,\n color: ((n = t.botCheckboxNextStyle) == null ? void 0 : n.color) ?? ((s = o.general) == null ? void 0 : s.primaryColor),\n borderColor: ((a = t.botCheckboxNextStyle) == null ? void 0 : a.color) ?? ((r = o.general) == null ? void 0 : r.primaryColor),\n cursor: `url(\"${(c = o.general) == null ? void 0 : c.actionDisabledIcon}\"), auto`,\n ...t.botCheckboxNextStyle\n }), e;\n}, xt = (A, e, o, t) => {\n var n, s;\n return (A.contains(\"rcb-media-display-image-container\") || A.contains(\"rcb-media-display-video-container\")) && (e.style = {\n ...e.style,\n backgroundColor: (n = o.general) == null ? void 0 : n.primaryColor,\n maxWidth: (s = o.userBubble) != null && s.showAvatar ? \"65%\" : \"70%\",\n ...t.mediaDisplayContainerStyle\n }), e;\n}, WA = () => {\n const { settings: A } = R(), {\n notificationsToggledOn: e,\n setSyncedNotificationsToggledOn: o,\n hasInteractedPage: t,\n unreadCount: n,\n setUnreadCount: s,\n syncedNotificationsToggledOnRef: a\n } = tA(), { audioBufferRef: r, audioContextRef: c, gainNodeRef: i } = $(), { dispatchRcbEvent: u } = iA(), d = x(async () => {\n var Q, y;\n const g = (Q = A.notification) == null ? void 0 : Q.sound;\n c.current = new AudioContext();\n const B = c.current.createGain();\n B.gain.value = ((y = A.notification) == null ? void 0 : y.volume) ?? 0.2, i.current = B;\n let E;\n if (g != null && g.startsWith(\"data:audio\")) {\n const v = atob(g.split(\",\")[1]), h = new ArrayBuffer(v.length), P = new Uint8Array(h);\n for (let D = 0; D < v.length; D++)\n P[D] = v.charCodeAt(D);\n E = h;\n } else\n E = await (await fetch(g)).arrayBuffer();\n r.current = await c.current.decodeAudioData(E);\n }, [A.notification]), w = x(() => {\n var B;\n if ((B = A.notification) != null && B.disabled || !a.current || !t || !c.current || !r.current)\n return;\n const g = c.current.createBufferSource();\n g.buffer = r.current, g.connect(i.current).connect(c.current.destination), g.start();\n }, [\n A.notification,\n a,\n t,\n c,\n r,\n i\n ]), f = x(async (g) => {\n var B;\n g !== a.current && ((B = A.event) != null && B.rcbToggleNotifications && (await u(\n H.TOGGLE_NOTIFICATIONS,\n {\n currState: a.current,\n newState: !a.current\n }\n )).defaultPrevented || o((E) => !E));\n }, [a]);\n return {\n unreadCount: n,\n setUnreadCount: s,\n notificationsToggledOn: e,\n toggleNotifications: f,\n playNotificationSound: w,\n setUpNotifications: d\n };\n}, Ot = (A, e, o, t, n) => {\n if (!window.SpeechSynthesisUtterance) {\n console.info(\"Speech Synthesis API is not supported in this environment.\");\n return;\n }\n const s = new window.SpeechSynthesisUtterance();\n s.text = A, s.lang = e, s.rate = t, s.volume = n;\n let a = !1;\n for (const r of o) {\n const c = window.speechSynthesis.getVoices().find((i) => i.name === r);\n if (c) {\n s.voice = c, window.speechSynthesis.speak(s), a = !0;\n break;\n }\n }\n a || window.speechSynthesis.speak(s);\n}, Lt = (A, e) => {\n var o, t, n, s;\n Ot(\n e,\n (o = A.audio) == null ? void 0 : o.language,\n (t = A.audio) == null ? void 0 : t.voiceNames,\n (n = A.audio) == null ? void 0 : n.rate,\n (s = A.audio) == null ? void 0 : s.volume\n );\n}, KA = () => {\n const { settings: A } = R(), { audioToggledOn: e, setSyncedAudioToggledOn: o, syncedAudioToggledOnRef: t } = tA(), { dispatchRcbEvent: n } = iA(), s = x(async (r) => {\n var c;\n r !== t.current && ((c = A.event) != null && c.rcbToggleAudio && (await n(\n H.TOGGLE_AUDIO,\n {\n currState: t.current,\n newState: !t.current\n }\n )).defaultPrevented || o((i) => !i));\n }, [t]), a = x(async (r) => {\n var i, u;\n if ((i = A.audio) != null && i.disabled || !t.current)\n return;\n let c = r;\n if ((u = A.event) != null && u.rcbStartSpeakAudio) {\n const d = await n(H.START_SPEAK_AUDIO, { textToRead: c });\n if (d.defaultPrevented)\n return;\n c = d.data.textToRead;\n }\n Lt(A, c);\n }, [A, t]);\n return {\n audioToggledOn: e,\n speakAudio: a,\n toggleAudio: s\n };\n}, EA = () => {\n var L, N, T;\n const { settings: A } = R(), { messages: e, setSyncedMessages: o, syncedMessagesRef: t } = XA(), {\n setSyncedIsBotTyping: n,\n setUnreadCount: s,\n syncedIsScrollingRef: a,\n syncedIsChatWindowOpenRef: r\n } = tA(), { streamMessageMap: c, chatBodyRef: i, paramsInputRef: u } = $(), { scrollToBottom: d, getIsChatBotVisible: w } = sA(), { dispatchRcbEvent: f } = iA(), { speakAudio: g } = KA(), { playNotificationSound: B } = WA(), E = x(async (C) => {\n var m, b;\n if ((m = A.event) != null && m.rcbSaveChatHistory) {\n const M = await f(H.SAVE_CHAT_HISTORY, { messages: C });\n if (M.defaultPrevented)\n return;\n C = ((b = M.data) == null ? void 0 : b.messages) ?? C;\n }\n await Qt(C);\n }, [f, (L = A.event) == null ? void 0 : L.rcbSaveChatHistory]), Q = x((C, m = !1) => {\n var p, k;\n E(C);\n let b = !0;\n const M = C[C.length - 1];\n if (!M)\n return;\n const O = M.sender.toUpperCase();\n O === \"USER\" && (b = !1), (p = A.general) != null && p.embedded && w() && (b = !1), (r.current && !a.current || m) && (b = !1), b && B(), !m && (O !== \"USER\" && ((k = A.chatWindow) != null && k.autoJumpToBottom) || O === \"USER\" || !a.current) && setTimeout(() => d(), 1);\n }, [\n A,\n i,\n r,\n a,\n B,\n d,\n w\n ]), y = x(async (C, m = \"BOT\", b = null) => {\n var V, U, z, Y, AA;\n if (typeof C != \"string\")\n throw new Error(\"Content must be of type string to simulate stream.\");\n m = m.toUpperCase();\n let M = gA(C, m);\n if ((V = A.event) != null && V.rcbStartSimulateStreamMessage) {\n const q = await f(\n H.START_SIMULATE_STREAM_MESSAGE,\n { message: M }\n );\n if (q.defaultPrevented)\n return null;\n b = q.data.simulateStreamChunker || b, M = q.data.message;\n }\n n(!1);\n let O = 30;\n m === \"BOT\" ? O = (U = A.botBubble) == null ? void 0 : U.streamSpeed : O = (z = A.userBubble) == null ? void 0 : z.streamSpeed;\n const p = { ...M, content: \"\" };\n o((q) => [...q, p]), Q(t.current);\n let k = M.content;\n b && (k = b(k));\n let K = 0;\n const j = k.length;\n M.sender.toUpperCase() === \"BOT\" && (r.current || (Y = A.general) != null && Y.embedded) && typeof M.content == \"string\" && M.content.trim() !== \"\" && g(M.content);\n const F = new Promise((q) => {\n const rA = setInterval(() => {\n if (K >= j) {\n clearInterval(rA), q();\n return;\n }\n o((lA) => {\n const PA = [...lA];\n for (let DA = PA.length - 1; DA >= 0; DA--)\n if (PA[DA].id === p.id) {\n const QA = k[K];\n QA && (p.content += QA, PA[DA] = p), K++;\n break;\n }\n return PA;\n });\n }, O);\n });\n return (a.current || !r.current) && s((q) => q + 1), await F, E(t.current), (AA = A.event) != null && AA.rcbStopSimulateStreamMessage && await f(H.STOP_SIMULATE_STREAM_MESSAGE, { message: M }), m === \"USER\" && (u.current = C), M;\n }, [\n A,\n f,\n Q,\n t,\n u,\n n,\n s,\n r,\n g\n ]), v = x(async (C, m = \"BOT\") => {\n var M, O, p;\n m = m.toUpperCase();\n let b = gA(C, m);\n if ((M = A.event) != null && M.rcbPreInjectMessage) {\n const k = await f(H.PRE_INJECT_MESSAGE, { message: b });\n if (k.defaultPrevented)\n return null;\n b = k.data.message;\n }\n return b.sender.toUpperCase() === \"BOT\" && (r.current || (O = A.general) != null && O.embedded) && typeof b.content == \"string\" && b.content.trim() !== \"\" && g(b.content), (a.current || !r.current) && s((k) => k + 1), (p = A.event) != null && p.rcbPostInjectMessage && await f(H.POST_INJECT_MESSAGE, { message: b }), o((k) => [...k, b]), Q(t.current), m === \"USER\" && typeof C == \"string\" && (u.current = C), b;\n }, [\n A,\n f,\n Q,\n u,\n t,\n r,\n g,\n s\n ]), h = x(async (C) => {\n var O;\n let m = t.current.find((p) => p.id === C), b = null, M = !1;\n return m || (b = bA(), m = b.find((p) => p.id === C), m && (M = !0)), !m || (O = A.event) != null && O.rcbRemoveMessage && (await f(H.REMOVE_MESSAGE, { message: m })).defaultPrevented ? null : M ? (b && jA(b.filter((p) => p.id !== C)), m) : (o(\n (p) => p.filter((k) => k.id !== C)\n ), Q(t.current), s((p) => Math.max(p - 1, 0)), m);\n }, [\n f,\n (N = A.event) == null ? void 0 : N.rcbRemoveMessage,\n Q,\n t,\n s,\n bA,\n jA\n ]), P = x(async (C, m = \"BOT\") => {\n var M, O;\n if (m = m.toUpperCase(), !c.current.has(m)) {\n const p = gA(C, m);\n return (M = A.event) != null && M.rcbStartStreamMessage && (await f(H.START_STREAM_MESSAGE, { message: p })).defaultPrevented ? null : (n(!1), o((k) => [...k, p]), Q(t.current), c.current.set(m, p.id), (a.current || !r.current) && s((k) => k + 1), p);\n }\n const b = { ...gA(C, m), id: c.current.get(m) };\n return (O = A.event) != null && O.rcbChunkStreamMessage && (await f(H.CHUNK_STREAM_MESSAGE, { message: b })).defaultPrevented ? null : (o(\n (p) => p.map((k) => k.id === b.id ? b : k)\n ), Q(t.current, !0), b);\n }, [\n f,\n A.event,\n Q,\n t,\n n,\n s,\n c\n ]), D = x(async (C = \"BOT\") => {\n var M;\n if (C = C.toUpperCase(), !c.current.has(C))\n return !0;\n const m = c.current.get(C);\n let b;\n for (let O = 0; O < 3; O++) {\n const p = t.current.find((k) => k.id === m);\n p && (b = p), await new Promise((k) => setTimeout(k, 20));\n }\n return (M = A.event) != null && M.rcbStopStreamMessage && (await f(H.STOP_STREAM_MESSAGE, { message: b })).defaultPrevented ? !1 : (c.current.delete(C), E(t.current), C === \"USER\" && typeof (b == null ? void 0 : b.content) == \"string\" && (u.current = b.content), !0);\n }, [f, (T = A.event) == null ? void 0 : T.rcbStopStreamMessage, c, u]), S = x((C) => {\n const m = typeof C == \"function\" ? C(t.current) : C;\n o(m), Q(m);\n }, [Q, t]), I = x(\n (C, m, b = 0) => {\n var K;\n const M = t.current, O = C ? C.toUpperCase() : null, p = [];\n let k = b;\n for (let j = M.length - 1; j >= 0; j--) {\n const F = M[j];\n if (!O || ((K = F == null ? void 0 : F.sender) == null ? void 0 : K.toUpperCase()) === O) {\n if (k > 0) {\n k--;\n continue;\n }\n if (p.push(F), m !== void 0 && p.length === m)\n break;\n }\n }\n return p.length > 0 ? p : null;\n },\n [t]\n );\n return {\n simulateStreamMessage: y,\n injectMessage: v,\n removeMessage: h,\n streamMessage: P,\n endStreamMessage: D,\n replaceMessages: S,\n getMessages: I,\n messages: e\n };\n};\nlet NA, uA, TA, BA = !1, aA = null;\nconst VA = () => {\n if (!NA) {\n const A = window.SpeechRecognition || window.webkitSpeechRecognition;\n NA = A != null ? new A() : null;\n }\n return NA;\n}, Nt = (A, e, o, t, n, s, a) => {\n var r;\n (r = A.voice) != null && r.sendAsAudio ? Ft(o, s) : Rt(\n A,\n e,\n o,\n t,\n n,\n a\n );\n}, Rt = (A, e, o, t, n, s) => {\n var i, u, d;\n const a = VA();\n if (!a)\n return;\n if (!BA)\n try {\n BA = !0, a.lang = (i = A.voice) == null ? void 0 : i.language, a.start();\n } catch {\n }\n const r = (u = A.voice) == null ? void 0 : u.timeoutPeriod, c = (d = A.voice) == null ? void 0 : d.autoSendPeriod;\n a.onresult = (w) => {\n var g, B;\n clearTimeout(uA), uA = null, clearTimeout(TA);\n const f = w.results[w.results.length - 1][0].transcript;\n if (s.current) {\n const E = (g = A.chatInput) == null ? void 0 : g.characterLimit, Q = s.current.value + f;\n E != null && E >= 0 && Q.length > E ? t(Q.slice(0, E)) : t(Q), n(s.current.value.length);\n }\n r && (uA = setTimeout(async () => await RA(e, s), r)), (B = A.voice) != null && B.autoSendDisabled || (TA = setTimeout(o, c));\n }, a.onend = () => {\n BA ? (a.start(), !uA && r && (uA = setTimeout(async () => await RA(e, s), r))) : (clearTimeout(uA), uA = null, clearTimeout(TA));\n }, r && (uA = setTimeout(async () => await RA(e, s), r));\n}, Ft = (A, e) => {\n navigator.mediaDevices.getUserMedia({ audio: !0 }).then((o) => {\n if (aA = new MediaRecorder(o), !BA)\n try {\n BA = !0, aA.start();\n } catch {\n }\n aA.ondataavailable = (t) => {\n e.current && e.current.push(t.data);\n }, aA.onstop = () => {\n A(), o.getTracks().forEach((t) => t.stop());\n };\n }).catch((o) => {\n console.error(\"Unable to use microphone:\", o);\n });\n}, qA = () => {\n const A = VA();\n A && (BA = !1, A && A.stop(), aA && aA.state !== \"inactive\" && (aA.stop(), aA = null), clearTimeout(uA), uA = null, clearTimeout(TA));\n}, Ut = (A, e) => {\n var t, n, s;\n const o = VA();\n (t = e.voice) != null && t.disabled || !((n = e.chatInput) != null && n.blockSpam) || !o || (A && !BA ? (BA = !0, (s = e.voice) != null && s.sendAsAudio ? aA == null || aA.start() : o.start()) : A || qA());\n}, RA = async (A, e) => {\n var o;\n (o = e.current) != null && o.disabled || await A(), qA();\n}, xA = () => {\n const { settings: A } = R(), { voiceToggledOn: e, setSyncedVoiceToggledOn: o, syncedVoiceToggledOnRef: t } = tA(), { dispatchRcbEvent: n } = iA(), s = x(async (r) => {\n var c;\n r !== t.current && ((c = A.event) != null && c.rcbToggleVoice && (await n(\n H.TOGGLE_VOICE,\n {\n currState: t.current,\n newState: !t.current\n }\n )).defaultPrevented || o((i) => !i));\n }, [t]), a = x((r) => {\n Ut(r, A);\n }, [A]);\n return {\n voiceToggledOn: e,\n toggleVoice: s,\n syncVoice: a\n };\n}, yA = () => {\n var P;\n const { settings: A } = R(), {\n inputLength: e,\n setInputLength: o,\n textAreaDisabled: t,\n setSyncedTextAreaDisabled: n,\n textAreaSensitiveMode: s,\n setSyncedTextAreaSensitiveMode: a,\n syncedTextAreaDisabledRef: r,\n syncedTextAreaSensitiveModeRef: c\n } = tA(), { inputRef: i, chatBodyRef: u, prevInputRef: d } = $(), { dispatchRcbEvent: w } = iA(), { getIsChatBotVisible: f } = sA(), g = x(async (D) => {\n var S, I, L;\n if (r.current && i.current) {\n i.current.value = \"\";\n return;\n }\n if (i.current && d.current !== null) {\n const N = (S = A.chatInput) == null ? void 0 : S.characterLimit, C = ((I = A.chatInput) == null ? void 0 : I.allowNewline) ? D : D.replace(/\\n/g, \" \");\n if (N != null && N >= 0 && C.length > N ? i.current.value = C.slice(0, N) : i.current.value = C, (L = A.event) != null && L.rcbTextAreaChangeValue && (await w(\n H.TEXT_AREA_CHANGE_VALUE,\n { currValue: i.current.value, prevValue: d.current }\n )).defaultPrevented) {\n i.current.value = d.current;\n return;\n }\n d.current = i.current.value;\n }\n }, [r, i, d, A, w]), B = x((D) => {\n var S;\n (S = i.current) != null && S.disabled || setTimeout(() => {\n var I, L, N;\n (I = A.general) != null && I.embedded ? f() && ((L = i.current) == null || L.focus()) : D !== \"start\" && ((N = i.current) == null || N.focus());\n }, 100);\n }, [i, (P = A.general) == null ? void 0 : P.embedded, u, f]), E = x(() => {\n i.current && i.current.focus();\n }, []), Q = x(() => {\n i.current && i.current.blur();\n }, []), y = x(() => i && i.current ? i.current.value : \"\", []), v = x((D) => {\n D !== r.current && n((S) => !S);\n }, [r]), h = x((D) => {\n D !== c.current && a((S) => !S);\n }, [c]);\n return {\n textAreaDisabled: t,\n setSyncedTextAreaDisabled: n,\n textAreaSensitiveMode: s,\n setSyncedTextAreaSensitiveMode: a,\n inputLength: e,\n setInputLength: o,\n getTextAreaValue: y,\n setTextAreaValue: g,\n updateTextAreaFocus: B,\n focusTextArea: E,\n blurTextArea: Q,\n toggleTextAreaDisabled: v,\n toggleTextAreaSensitiveMode: h\n };\n}, De = vA({\n toasts: [],\n setSyncedToasts: () => {\n },\n syncedToastsRef: { current: [] }\n}), Ee = () => hA(De), jt = ({ children: A }) => {\n const [e, o, t] = nA([]);\n return /* @__PURE__ */ l(De.Provider, { value: { toasts: e, setSyncedToasts: o, syncedToastsRef: t }, children: A });\n}, CA = () => {\n const { settings: A } = R(), { toasts: e, setSyncedToasts: o, syncedToastsRef: t } = Ee(), { dispatchRcbEvent: n } = iA(), s = x(async (c, i) => {\n var g, B, E, Q;\n let u = null;\n if (t.current.length >= (((g = A.toast) == null ? void 0 : g.maxCount) ?? 3)) {\n if ((B = A.toast) != null && B.forbidOnMax)\n return null;\n u = MA();\n let y = { id: u, content: c, timeout: i };\n if ((E = A.event) != null && E.rcbShowToast) {\n const v = await n(H.SHOW_TOAST, { toast: y });\n if (v.defaultPrevented)\n return null;\n y = v.data.toast;\n }\n return o((v) => [...v.slice(1), y]), u;\n }\n u = MA();\n let f = { id: u, content: c, timeout: i };\n if ((Q = A.event) != null && Q.rcbShowToast) {\n const y = await n(H.SHOW_TOAST, { toast: f });\n if (y.defaultPrevented)\n return null;\n f = y.data.toast;\n }\n return o((y) => [...y, f]), u;\n }, [A, n]), a = x(async (c) => {\n var u;\n const i = t.current.find((d) => d.id === c);\n return !i || (u = A.event) != null && u.rcbDismissToast && (await n(H.DISMISS_TOAST, { toast: i })).defaultPrevented ? null : (o((d) => d.filter((w) => w.id !== c)), c);\n }, [n]), r = x((c) => {\n const i = typeof c == \"function\" ? c(t.current) : c;\n o(i);\n }, [t]);\n return {\n showToast: s,\n dismissToast: a,\n toasts: e,\n replaceToasts: r\n };\n}, SA = () => {\n var O, p, k, K, j;\n const { settings: A } = R(), { paths: e, setSyncedPaths: o, syncedPathsRef: t } = pA(), { flowRef: n, streamMessageMap: s, paramsInputRef: a, keepVoiceOnRef: r, timeoutIdRef: c } = $(), {\n setSyncedIsBotTyping: i,\n setSyncedTextAreaDisabled: u,\n setSyncedTextAreaSensitiveMode: d,\n blockAllowsAttachment: w,\n setBlockAllowsAttachment: f\n } = tA(), { dispatchRcbEvent: g } = iA(), {\n endStreamMessage: B,\n injectMessage: E,\n removeMessage: Q,\n simulateStreamMessage: y,\n streamMessage: v\n } = EA(), { showToast: h, dismissToast: P } = CA(), { toggleChatWindow: D } = sA(), { updateTextAreaFocus: S, setTextAreaValue: I } = yA(), { syncVoice: L } = xA(), N = x(async (F) => {\n var V;\n if ((V = A.event) != null && V.rcbPostProcessBlock) {\n const U = await g(H.POST_PROCESS_BLOCK, {\n block: F\n });\n if (U.defaultPrevented)\n return null;\n F = U.data.block;\n }\n return F;\n }, [(O = A.event) == null ? void 0 : O.rcbPostProcessBlock, g]), T = x(async (F, V) => {\n var Y, AA, q, rA;\n if (!F)\n return;\n let U = n.current[F];\n if (!U) {\n i(!1);\n return;\n }\n if ((Y = A.event) != null && Y.rcbPreProcessBlock) {\n const lA = await g(H.PRE_PROCESS_BLOCK, {\n block: U\n });\n if (lA.defaultPrevented)\n return;\n U = lA.data.block;\n }\n i(!0), (AA = A.chatInput) != null && AA.blockSpam && u(!0), d(!1);\n const z = {\n prevPath: V,\n currPath: F,\n goToPath: b,\n setTextAreaValue: I,\n userInput: a.current,\n endStreamMessage: B,\n injectMessage: E,\n removeMessage: Q,\n simulateStreamMessage: y,\n streamMessage: v,\n toggleChatWindow: D,\n showToast: h,\n dismissToast: P\n };\n await yt(\n U,\n z,\n ((q = A.botBubble) == null ? void 0 : q.simulateStream) ?? !1,\n c,\n u,\n d,\n N\n ), i(!1), \"chatDisabled\" in U || u((rA = A.chatInput) == null ? void 0 : rA.disabled), \"isSensitive\" in U || d(!1), f(typeof U.file == \"function\"), S(F), L(r.current && !U.chatDisabled), F !== V && s.current.clear();\n }, [\n n,\n S,\n L,\n (p = A.botBubble) == null ? void 0 : p.simulateStream,\n (k = A.chatInput) == null ? void 0 : k.disabled,\n a,\n B,\n E,\n Q,\n y,\n v,\n D,\n h,\n P,\n r,\n s\n ]), C = x(() => t.current.length > 0 ? t.current.at(-1) ?? null : null, []), m = x(() => t.current.length > 1 ? t.current.at(-2) ?? null : null, []), b = x(async (F) => {\n var z;\n const V = C(), U = m();\n return (z = A.event) != null && z.rcbChangePath && (await g(H.CHANGE_PATH, {\n currPath: V,\n prevPath: U,\n nextPath: F\n })).defaultPrevented ? !1 : (o((Y) => [...Y, F]), await T(F, V), !0);\n }, [(K = A.chatInput) == null ? void 0 : K.blockSpam, (j = A.event) == null ? void 0 : j.rcbChangePath, T, g]), M = x((F) => {\n const V = typeof F == \"function\" ? F(t.current) : F;\n o(V);\n }, [t]);\n return {\n getCurrPath: C,\n getPrevPath: m,\n goToPath: b,\n blockAllowsAttachment: w,\n setBlockAllowsAttachment: f,\n paths: e,\n replacePaths: M,\n firePostProcessBlockEvent: N\n };\n}, mA = () => {\n var O, p, k, K;\n const { settings: A } = R(), {\n endStreamMessage: e,\n injectMessage: o,\n removeMessage: t,\n simulateStreamMessage: n,\n streamMessage: s\n } = EA(), { syncedPathsRef: a } = pA(), { getCurrPath: r, getPrevPath: c, goToPath: i, firePostProcessBlockEvent: u } = SA(), {\n setSyncedTextAreaSensitiveMode: d,\n setSyncedTextAreaDisabled: w,\n setSyncedIsBotTyping: f,\n setBlockAllowsAttachment: g,\n setInputLength: B,\n syncedVoiceToggledOnRef: E,\n syncedTextAreaSensitiveModeRef: Q\n } = tA(), { flowRef: y, inputRef: v, keepVoiceOnRef: h, paramsInputRef: P, timeoutIdRef: D } = $(), { showToast: S, dismissToast: I } = CA(), { dispatchRcbEvent: L } = iA(), { syncVoice: N } = xA(), { setTextAreaValue: T } = yA(), { toggleChatWindow: C } = sA(), m = x(async (j) => {\n var U, z, Y, AA, q, rA;\n const F = r();\n if (!(!F || !y.current[F])) {\n if (Q.current) {\n if ((U = A == null ? void 0 : A.sensitiveInput) != null && U.hideInUserBubble)\n return;\n if ((z = A == null ? void 0 : A.sensitiveInput) != null && z.maskInUserBubble) {\n (Y = A.userBubble) != null && Y.simulateStream ? await n(\n \"*\".repeat(((AA = A.sensitiveInput) == null ? void 0 : AA.asterisksCount) ?? 10),\n \"USER\"\n ) : await o(\"*\".repeat(((q = A.sensitiveInput) == null ? void 0 : q.asterisksCount) ?? 10), \"USER\");\n return;\n }\n }\n (rA = A.userBubble) != null && rA.simulateStream ? await n(j, \"USER\") : await o(j, \"USER\");\n }\n }, [y, r, A, o, n, Q]), b = x(async (j, F = !0) => {\n var Y, AA;\n if (j = j.trim(), j === \"\")\n return;\n F && await m(j), D.current && clearTimeout(D.current), v.current && (T(\"\"), B(0));\n const V = r();\n if (!V)\n return;\n let U = y.current[V];\n const z = await u(U);\n z && ((Y = A.chatInput) != null && Y.blockSpam && w(!0), h.current = E.current, N(!1), setTimeout(() => {\n f(!0);\n }, 400), d(!1), setTimeout(async () => {\n var lA;\n const q = {\n prevPath: c(),\n currPath: r(),\n goToPath: i,\n setTextAreaValue: T,\n userInput: P.current,\n injectMessage: o,\n simulateStreamMessage: n,\n streamMessage: s,\n removeMessage: t,\n endStreamMessage: e,\n toggleChatWindow: C,\n showToast: S,\n dismissToast: I\n }, rA = a.current.length;\n await ge(z, q), a.current.length === rA && (\"chatDisabled\" in U ? w(!!U.chatDisabled) : w(!!((lA = A.chatInput) != null && lA.disabled)), we(U, q, d), g(typeof U.file == \"function\"), N(h.current), f(!1));\n }, (AA = A.chatInput) == null ? void 0 : AA.botDelay));\n }, [\n D,\n (O = A.chatInput) == null ? void 0 : O.blockSpam,\n (p = A.chatInput) == null ? void 0 : p.botDelay,\n (k = A.chatInput) == null ? void 0 : k.disabled,\n h,\n E,\n N,\n m,\n c,\n r,\n i,\n o,\n n,\n s,\n t,\n e,\n C,\n S,\n I,\n y\n ]);\n return { handleSubmitText: x(async (j, F = !0) => {\n var U, z;\n j = j ?? ((U = v.current) == null ? void 0 : U.value), !((z = A.event) != null && z.rcbUserSubmitText && (await L(H.USER_SUBMIT_TEXT, { inputText: j, sendInChat: F })).defaultPrevented || !r()) && b(j, F);\n }, [L, r, b, v, (K = A.event) == null ? void 0 : K.rcbUserSubmitText]) };\n}, OA = () => {\n var o;\n const { settings: A } = R();\n return dA(() => {\n var a;\n if (typeof window > \"u\" || !window.navigator)\n return !1;\n if (!((a = A.device) != null && a.applyMobileOptimizations))\n return !0;\n const t = navigator.userAgent, n = !/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(t), s = window.innerWidth >= 768;\n return n && s;\n }, [(o = A.device) == null ? void 0 : o.applyMobileOptimizations]);\n}, zt = ({ buttons: A }) => {\n var m, b, M, O, p, k, K, j, F, V, U;\n const e = OA(), { settings: o } = R(), { styles: t } = X(), {\n textAreaDisabled: n,\n textAreaSensitiveMode: s,\n inputLength: a,\n hasFlowStarted: r,\n setHasFlowStarted: c,\n setInputLength: i\n } = tA(), { inputRef: u } = $(), [d, w] = G(!1), [f, g] = G(!1), { handleSubmitText: B } = mA(), { setTextAreaValue: E } = yA(), Q = {\n boxSizing: e ? \"content-box\" : \"border-box\",\n ...t.chatInputAreaStyle\n }, y = {\n outline: n ? \"\" : \"none\",\n boxShadow: n ? \"\" : `0 0 5px ${(m = o.general) == null ? void 0 : m.primaryColor}`,\n boxSizing: e ? \"content-box\" : \"border-box\",\n ...t.chatInputAreaStyle,\n // by default inherit the base style for input area\n ...t.chatInputAreaFocusedStyle\n }, v = {\n cursor: `url(\"${(b = o.general) == null ? void 0 : b.actionDisabledIcon}\"), auto`,\n caretColor: \"transparent\",\n boxSizing: e ? \"content-box\" : \"border-box\",\n ...t.chatInputAreaStyle,\n // by default inherit the base style for input area\n ...t.chatInputAreaDisabledStyle\n }, h = {\n color: \"#989898\",\n ...t.characterLimitStyle\n }, P = {\n color: \"#ff0000\",\n ...t.characterLimitReachedStyle\n }, D = n ? (M = o.chatInput) == null ? void 0 : M.disabledPlaceholderText : (O = o.chatInput) == null ? void 0 : O.enabledPlaceholderText, S = () => {\n n || w(!0);\n }, I = () => {\n w(!1);\n }, L = () => {\n g(!0);\n }, N = () => {\n g(!1);\n }, T = async (z) => {\n var Y;\n if (!f && z.key === \"Enter\") {\n if (z.shiftKey) {\n (Y = o.chatInput) != null && Y.allowNewline || z.preventDefault();\n return;\n }\n z.preventDefault(), await B();\n }\n }, C = (z) => {\n u.current && (E(z.target.value), i(u.current.value.length));\n };\n return /* @__PURE__ */ W(\n \"div\",\n {\n \"aria-label\": ((p = o.ariaLabel) == null ? void 0 : p.inputTextArea) ?? \"input text area\",\n role: \"textbox\",\n onMouseDown: (z) => {\n var Y;\n z.stopPropagation(), !r && ((Y = o.general) == null ? void 0 : Y.flowStartTrigger) === \"ON_CHATBOT_INTERACT\" && c(!0);\n },\n style: { ...t.chatInputContainerStyle },\n className: \"rcb-chat-input\",\n children: [\n s && ((k = o.sensitiveInput) != null && k.maskInTextArea) ? /* @__PURE__ */ l(\n \"input\",\n {\n ref: u,\n type: \"password\",\n className: \"rcb-chat-input-textarea\",\n style: n ? v : d ? y : Q,\n placeholder: D,\n onChange: C,\n onKeyDown: T,\n onFocus: S,\n onBlur: I,\n onCompositionStart: L,\n onCompositionEnd: N\n }\n ) : /* @__PURE__ */ l(\n \"textarea\",\n {\n ref: u,\n style: n ? v : d ? y : Q,\n rows: 1,\n className: \"rcb-chat-input-textarea\",\n placeholder: D,\n onChange: C,\n onKeyDown: T,\n onFocus: S,\n onBlur: I,\n onCompositionStart: L,\n onCompositionEnd: N\n }\n ),\n /* @__PURE__ */ W(oA, { children: [\n A == null ? void 0 : A.map(\n (z, Y) => /* @__PURE__ */ l(YA, { children: z }, Y)\n ),\n ((K = o.chatInput) == null ? void 0 : K.showCharacterCount) && ((j = o.chatInput) == null ? void 0 : j.characterLimit) != null && ((F = o.chatInput) == null ? void 0 : F.characterLimit) > 0 && /* @__PURE__ */ W(\n \"div\",\n {\n className: \"rcb-chat-input-char-counter\",\n style: a >= ((V = o.chatInput) == null ? void 0 : V.characterLimit) ? P : h,\n children: [\n a,\n \"/\",\n (U = o.chatInput) == null ? void 0 : U.characterLimit\n ]\n }\n )\n ] })\n ]\n }\n );\n}, Gt = ({ buttons: A }) => {\n var t;\n const { settings: e } = R(), { styles: o } = X();\n return /* @__PURE__ */ W(\n \"div\",\n {\n \"data-testid\": \"chatbot-footer-container\",\n style: { ...o.footerStyle },\n className: \"rcb-chat-footer-container\",\n children: [\n /* @__PURE__ */ l(\"div\", { className: \"rcb-chat-footer\", children: A == null ? void 0 : A.map(\n (n, s) => /* @__PURE__ */ l(YA, { children: n }, s)\n ) }),\n /* @__PURE__ */ l(\"span\", { children: (t = e.footer) == null ? void 0 : t.text })\n ]\n }\n );\n}, Yt = () => {\n var f, g, B, E, Q, y, v;\n const { settings: A } = R(), { styles: e } = X(), { unreadCount: o } = tA(), { isChatWindowOpen: t, toggleChatWindow: n } = sA(), [s, a] = G(!1), r = {\n backgroundImage: `linear-gradient(to right, ${(f = A.general) == null ? void 0 : f.secondaryColor},\n\t\t\t${(g = A.general) == null ? void 0 : g.primaryColor})`,\n ...e.chatButtonStyle\n }, c = {\n transform: \"scale(1.05)\",\n ...r,\n // by default inherit the base style\n ...e.chatButtonHoveredStyle\n }, i = {\n backgroundImage: `url(${(B = A.chatButton) == null ? void 0 : B.icon})`,\n fill: \"#fff\",\n width: 75,\n height: 75,\n ...e.chatIconStyle\n }, u = () => {\n a(!0);\n }, d = () => {\n a(!1);\n }, w = () => {\n var P;\n const h = (P = A.chatButton) == null ? void 0 : P.icon;\n return !h || typeof h == \"string\" ? /* @__PURE__ */ l(\n \"span\",\n {\n className: \"rcb-toggle-icon\",\n style: i\n }\n ) : h && /* @__PURE__ */ l(\"span\", { className: \"rcb-toggle-icon\", children: /* @__PURE__ */ l(h, { style: i }) });\n };\n return /* @__PURE__ */ l(oA, { children: !((E = A.general) != null && E.embedded) && /* @__PURE__ */ W(\n \"div\",\n {\n \"aria-label\": ((Q = A.ariaLabel) == null ? void 0 : Q.chatButton) ?? \"open chat\",\n role: \"button\",\n style: s ? c : r,\n className: `rcb-toggle-button ${t ? \"rcb-button-hide\" : \"rcb-button-show\"}`,\n onMouseEnter: u,\n onMouseLeave: d,\n onClick: () => n(!0),\n children: [\n w(),\n !((y = A.notification) != null && y.disabled) && ((v = A.notification) == null ? void 0 : v.showCount) && /* @__PURE__ */ l(\"span\", { style: { ...e.notificationBadgeStyle }, className: \"rcb-badge\", children: o })\n ]\n }\n ) });\n}, Xt = () => {\n var g, B, E, Q, y, v;\n const A = OA(), { settings: e } = R(), { styles: o } = X(), { chatBodyRef: t } = $(), { isChatWindowOpen: n, toggleChatWindow: s } = sA(), [a, r] = G(!1), [c, i] = G(!1), [u, d] = G(0);\n Z(() => {\n var P, D, S;\n const h = (P = e.tooltip) == null ? void 0 : P.mode;\n if (h === \"ALWAYS\")\n if (A) {\n let I;\n n ? I = (((D = t.current) == null ? void 0 : D.offsetWidth) ?? 375) - (typeof ((S = o.chatButtonStyle) == null ? void 0 : S.width) == \"number\" ? o.chatButtonStyle.width : 75) : I = 0, d(I), r(!0);\n } else\n r(!n);\n else h === \"NEVER\" ? r(!1) : h === \"START\" ? c ? r(!1) : (i(!0), r(!0)) : h === \"CLOSE\" && r(!n);\n }, [\n n,\n A,\n c,\n (g = o.chatButtonStyle) == null ? void 0 : g.width,\n (B = e.tooltip) == null ? void 0 : B.mode\n ]);\n const w = {\n transform: `translateX(-${u}px)`,\n right: (((E = o.chatButtonStyle) == null ? void 0 : E.width) ?? 75) + 40,\n bottom: 30,\n backgroundColor: (Q = e.general) == null ? void 0 : Q.secondaryColor,\n color: \"#fff\",\n ...o.tooltipStyle\n }, f = {\n borderColor: `transparent transparent transparent ${w.backgroundColor}`\n };\n return /* @__PURE__ */ l(oA, { children: !((y = e.general) != null && y.embedded) && /* @__PURE__ */ W(\n \"div\",\n {\n \"data-testid\": \"chat-tooltip\",\n style: w,\n className: `rcb-chat-tooltip ${a ? \"rcb-tooltip-show\" : \"rcb-tooltip-hide\"}`,\n onClick: () => s(!0),\n children: [\n /* @__PURE__ */ l(\"span\", { children: (v = e.tooltip) == null ? void 0 : v.text }),\n /* @__PURE__ */ l(\"span\", { className: \"rcb-chat-tooltip-tail\", style: f })\n ]\n }\n ) });\n}, Wt = ({\n id: A,\n content: e,\n timeout: o\n}) => {\n var w, f;\n const { settings: t } = R(), { styles: n } = X(), [s] = G({\n toastPromptStyle: { ...n.toastPromptStyle },\n toastPromptHoveredStyle: { ...n.toastPromptHoveredStyle }\n }), { dismissToast: a } = CA(), [r, c] = G(!1), i = {\n color: (w = t.general) == null ? void 0 : w.primaryColor,\n borderColor: (f = t.general) == null ? void 0 : f.primaryColor,\n ...s.toastPromptHoveredStyle\n };\n return Z(() => {\n if (o) {\n const g = setTimeout(() => {\n a(A);\n }, o);\n return () => clearTimeout(g);\n }\n }, [A, a, o]), typeof e == \"string\" ? /* @__PURE__ */ l(\n \"div\",\n {\n onMouseEnter: () => {\n c(!0);\n },\n onMouseLeave: () => {\n c(!1);\n },\n style: r ? i : s.toastPromptStyle,\n onMouseDown: async (g) => {\n var B;\n (B = t.toast) != null && B.dismissOnClick && (g.preventDefault(), await a(A));\n },\n className: \"rcb-toast-prompt\",\n children: e\n }\n ) : /* @__PURE__ */ l(oA, { children: e });\n}, Kt = () => {\n var t, n, s, a, r, c, i, u, d, w, f, g;\n const { styles: A } = X(), { toasts: e } = Ee(), o = {\n bottom: `calc(${typeof ((t = A.footerStyle) == null ? void 0 : t.height) == \"number\" ? `${(n = A.footerStyle) == null ? void 0 : n.height}px` : ((s = A.footerStyle) == null ? void 0 : s.height) ?? \"50px\"} + ${typeof ((a = A.chatInputContainerStyle) == null ? void 0 : a.height) == \"number\" ? `${(r = A.chatInputContainerStyle) == null ? void 0 : r.height}px` : ((c = A.chatInputContainerStyle) == null ? void 0 : c.height) ?? \"70px\"} + 20px)`,\n width: 300,\n minWidth: `calc(${typeof ((i = A.chatWindowStyle) == null ? void 0 : i.width) == \"number\" ? `${(u = A.chatWindowStyle) == null ? void 0 : u.width}px` : ((d = A.chatWindowStyle) == null ? void 0 : d.width) ?? \"375px\"} / 2)`,\n maxWidth: `calc(${typeof ((w = A.chatWindowStyle) == null ? void 0 : w.width) == \"number\" ? `${(f = A.chatWindowStyle) == null ? void 0 : f.width}px` : ((g = A.chatWindowStyle) == null ? void 0 : g.width) ?? \"375px\"} - 50px)`,\n ...A.toastPromptContainerStyle\n };\n return /* @__PURE__ */ l(\"div\", { className: \"rcb-toast-prompt-container\", style: o, children: e.map((B) => /* @__PURE__ */ l(\n Wt,\n {\n id: B.id,\n content: B.content,\n timeout: B.timeout\n },\n B.id\n )) });\n}, ye = ({\n file: A,\n fileType: e,\n fileUrl: o\n}) => {\n var a, r, c;\n const { settings: t } = R(), { styles: n } = X(), s = {\n backgroundColor: (a = t.general) == null ? void 0 : a.primaryColor,\n maxWidth: (r = t.userBubble) != null && r.showAvatar ? \"65%\" : \"70%\",\n ...n.mediaDisplayContainerStyle\n };\n return /* @__PURE__ */ l(oA, { children: o ? /* @__PURE__ */ W(oA, { children: [\n e === \"image\" && o && /* @__PURE__ */ l(\n \"div\",\n {\n style: s,\n className: \"rcb-media-display-image-container rcb-media-entry\",\n \"data-testid\": \"media-display-image-container\",\n children: /* @__PURE__ */ l(\"img\", { src: o, alt: \"Image Display\", className: \"rcb-media-display-image\" })\n }\n ),\n e === \"video\" && o && /* @__PURE__ */ l(\n \"div\",\n {\n style: s,\n className: \"rcb-media-display-video-container rcb-media-entry\",\n \"data-testid\": \"media-display-video-container\",\n children: /* @__PURE__ */ W(\"video\", { controls: !0, className: \"rcb-media-display-video\", children: [\n /* @__PURE__ */ l(\"source\", { src: o, type: A.type }),\n \"Your browser does not support the video tag.\"\n ] })\n }\n ),\n e === \"audio\" && o && /* @__PURE__ */ W(\n \"audio\",\n {\n \"data-testid\": \"media-display-audio-container\",\n style: {\n maxWidth: (c = t.userBubble) != null && c.showAvatar ? \"65%\" : \"70%\"\n },\n controls: !0,\n className: \"rcb-media-display-audio rcb-media-entry\",\n children: [\n /* @__PURE__ */ l(\"source\", { src: o, type: A.type }),\n \"Your browser does not support the audio tag.\"\n ]\n }\n )\n ] }) : /* @__PURE__ */ l(oA, {}) });\n}, Ce = async (A) => {\n if (!A)\n return { fileType: null, fileUrl: null };\n const e = A.type.split(\"/\")[0];\n if (![\"image\", \"video\", \"audio\"].includes(e))\n return { fileType: null, fileUrl: null };\n try {\n const o = await new Promise((t, n) => {\n const s = new FileReader();\n s.onload = () => t(s.result), s.onerror = () => n(new Error(\"File reading failed\")), s.readAsDataURL(A);\n });\n return { fileType: e, fileUrl: o };\n } catch (o) {\n return console.error(o), { fileType: null, fileUrl: null };\n }\n}, Vt = () => {\n var L, N, T, C, m, b;\n const { settings: A } = R(), { styles: e } = X(), {\n injectMessage: o,\n simulateStreamMessage: t,\n streamMessage: n,\n removeMessage: s,\n endStreamMessage: a\n } = EA(), { getCurrPath: r, getPrevPath: c, goToPath: i, blockAllowsAttachment: u } = SA(), { flowRef: d, inputRef: w } = $(), f = d.current, { showToast: g, dismissToast: B } = CA(), { dispatchRcbEvent: E } = iA(), { toggleChatWindow: Q } = sA(), { setTextAreaValue: y } = yA(), { handleSubmitText: v } = mA(), h = {\n cursor: `url(\"${(L = A.general) == null ? void 0 : L.actionDisabledIcon}\"), auto`,\n ...e.fileAttachmentButtonStyle,\n // by default inherit the base style\n ...e.fileAttachmentButtonDisabledStyle\n }, P = {\n backgroundImage: `url(${(N = A.fileAttachment) == null ? void 0 : N.icon})`,\n fill: \"#a6a6a6\",\n ...e.fileAttachmentIconStyle\n }, D = {\n backgroundImage: `url(${(T = A.fileAttachment) == null ? void 0 : T.icon})`,\n fill: \"#a6a6a6\",\n ...e.fileAttachmentIconStyle,\n // by default inherit the base style\n ...e.fileAttachmentIconDisabledStyle\n }, S = async (M) => {\n var F, V, U, z;\n const O = M.target.files;\n if (!O)\n return;\n const p = Array.from(O);\n if (M.target.value = \"\", (F = A.event) != null && F.rcbUserUploadFile && (await E(H.USER_UPLOAD_FILE, { files: p })).defaultPrevented)\n return;\n const k = r();\n if (!k)\n return;\n const K = f[k];\n if (!K)\n return;\n const j = K.file;\n if (j != null) {\n const Y = [];\n for (let AA = 0; AA < p.length; AA++) {\n if (Y.push(p[AA].name), !((V = A.fileAttachment) != null && V.showMediaDisplay))\n continue;\n const q = await Ce(p[AA]);\n !q.fileType || !q.fileUrl || await o(/* @__PURE__ */ l(\n ye,\n {\n file: p[AA],\n fileType: q.fileType,\n fileUrl: q.fileUrl\n }\n ), \"USER\");\n }\n await v(\"📄 \" + Y.join(\", \"), (U = A.fileAttachment) == null ? void 0 : U.sendFileName), await j({\n userInput: (z = w.current) == null ? void 0 : z.value,\n prevPath: c(),\n currPath: r(),\n goToPath: i,\n setTextAreaValue: y,\n injectMessage: o,\n simulateStreamMessage: t,\n streamMessage: n,\n removeMessage: s,\n endStreamMessage: a,\n toggleChatWindow: Q,\n showToast: g,\n dismissToast: B,\n files: p\n });\n }\n }, I = () => {\n var O, p;\n const M = u ? (O = A.fileAttachment) == null ? void 0 : O.icon : (p = A.fileAttachment) == null ? void 0 : p.iconDisabled;\n return !M || typeof M == \"string\" ? /* @__PURE__ */ l(\n \"span\",\n {\n className: u ? \"rcb-attach-icon-enabled\" : \"rcb-attach-icon-disabled\",\n style: u ? P : D\n }\n ) : M && /* @__PURE__ */ l(\"span\", { className: u ? \"rcb-attach-icon-enabled\" : \"rcb-attach-icon-disabled\", children: /* @__PURE__ */ l(\n M,\n {\n style: u ? P : D\n }\n ) });\n };\n return /* @__PURE__ */ W(\n \"label\",\n {\n \"aria-label\": ((C = A.ariaLabel) == null ? void 0 : C.fileAttachmentButton) ?? \"upload file\",\n role: \"button\",\n className: u ? \"rcb-attach-button-enabled\" : \"rcb-attach-button-disabled\",\n style: u ? { ...e.fileAttachmentButtonStyle } : h,\n children: [\n /* @__PURE__ */ l(\n \"input\",\n {\n className: \"rcb-attach-input\",\n role: \"file\",\n type: \"file\",\n onChange: S,\n multiple: (m = A.fileAttachment) == null ? void 0 : m.multiple,\n accept: (b = A.fileAttachment) == null ? void 0 : b.accept,\n disabled: !u\n }\n ),\n I()\n ]\n }\n );\n}, qt = () => {\n var E, Q, y, v, h, P;\n const { settings: A } = R(), { styles: e } = X(), { syncedTextAreaDisabledRef: o } = tA(), { inputRef: t } = $(), { textAreaDisabled: n, setTextAreaValue: s } = yA(), a = eA(null), r = eA(null), [c, i] = G(!1), u = {\n cursor: `url(\"${(E = A.general) == null ? void 0 : E.actionDisabledIcon}\"), auto`,\n ...e.emojiButtonStyle,\n // by default inherit the base style\n ...e.emojiButtonDisabledStyle\n }, d = {\n backgroundImage: `url(${(Q = A.emoji) == null ? void 0 : Q.icon})`,\n fill: \"#a6a6a6\",\n ...e.emojiIconStyle\n }, w = {\n backgroundImage: `url(${(y = A.emoji) == null ? void 0 : y.icon})`,\n fill: \"#a6a6a6\",\n ...e.emojiIconStyle,\n // by default inherit the base style\n ...e.emojiIconDisabledStyle\n };\n Z(() => {\n const D = (L) => {\n const N = L.composedPath();\n a.current && !N.includes(a.current) && r.current && !N.includes(r.current) && i(!1);\n }, S = () => {\n if (a.current && r.current) {\n const L = r.current.getBoundingClientRect(), N = a.current.offsetHeight, T = L.top - N - 8;\n a.current.style.left = `${L.left}px`, a.current.style.top = `${T}px`;\n }\n }, I = () => {\n S();\n };\n return document.addEventListener(\"mousedown\", D), window.addEventListener(\"resize\", I), () => {\n document.removeEventListener(\"mousedown\", D), window.removeEventListener(\"resize\", I);\n };\n }, []);\n const f = (D, S) => {\n D.preventDefault(), t.current && (s(t.current.value + S), setTimeout(() => {\n const I = t.current;\n if (I) {\n I.focus();\n const L = I.value.length;\n I.setSelectionRange(L, L);\n }\n }, 50)), i(!1);\n }, g = (D) => {\n D.preventDefault(), o.current ? i(!1) : i((S) => !S);\n }, B = () => {\n var S, I;\n const D = n ? (S = A.emoji) == null ? void 0 : S.iconDisabled : (I = A.emoji) == null ? void 0 : I.icon;\n return !D || typeof D == \"string\" ? /* @__PURE__ */ l(\n \"span\",\n {\n className: `${n ? \"rcb-emoji-icon-disabled\" : \"rcb-emoji-icon-enabled\"}`,\n style: n ? w : d\n }\n ) : D && /* @__PURE__ */ l(\"span\", { className: `${n ? \"rcb-emoji-icon-disabled\" : \"rcb-emoji-icon-enabled\"}`, children: /* @__PURE__ */ l(D, { style: n ? w : d }) });\n };\n return /* @__PURE__ */ W(oA, { children: [\n /* @__PURE__ */ l(\n \"div\",\n {\n \"aria-label\": ((v = A.ariaLabel) == null ? void 0 : v.emojiButton) ?? \"emoji picker\",\n role: \"button\",\n ref: r,\n className: `${n ? \"rcb-emoji-button-disabled\" : \"rcb-emoji-button-enabled\"}`,\n style: n ? u : { ...e.emojiButtonStyle },\n onMouseDown: g,\n children: B()\n }\n ),\n c && /* @__PURE__ */ l(\"div\", { className: \"rcb-emoji-button-popup\", ref: a, children: (P = (h = A.emoji) == null ? void 0 : h.list) == null ? void 0 : P.map((D, S) => /* @__PURE__ */ l(\n \"span\",\n {\n className: \"rcb-emoji\",\n onMouseDown: (I) => f(I, D),\n children: D\n },\n S\n )) })\n ] });\n}, Jt = () => {\n var r, c, i;\n const { settings: A } = R(), { styles: e } = X(), { audioToggledOn: o, toggleAudio: t } = KA(), n = {\n backgroundImage: `url(${(r = A.audio) == null ? void 0 : r.icon})`,\n fill: \"#fcec3d\",\n ...e.audioIconStyle\n }, s = {\n backgroundImage: `url(${(c = A.audio) == null ? void 0 : c.iconDisabled})`,\n fill: \"#e8eaed\",\n ...e.audioIconStyle,\n // by default inherit the base style\n ...e.audioIconDisabledStyle\n }, a = () => {\n var d, w;\n const u = o ? (d = A.audio) == null ? void 0 : d.icon : (w = A.audio) == null ? void 0 : w.iconDisabled;\n return !u || typeof u == \"string\" ? /* @__PURE__ */ l(\n \"span\",\n {\n className: \"rcb-audio-icon\",\n \"data-testid\": \"rcb-audio-icon\",\n style: o ? n : s\n }\n ) : u && /* @__PURE__ */ l(\"span\", { className: \"rcb-audio-icon\", \"data-testid\": \"rcb-audio-icon\", children: /* @__PURE__ */ l(\n u,\n {\n style: o ? n : s,\n \"data-testid\": \"rcb-audio-icon-svg\"\n }\n ) });\n };\n return /* @__PURE__ */ l(\n \"div\",\n {\n \"aria-label\": ((i = A.ariaLabel) == null ? void 0 : i.audioButton) ?? \"toggle audio\",\n role: \"button\",\n onMouseDown: async (u) => {\n u.preventDefault(), await t();\n },\n style: o ? { ...e.audioButtonStyle } : { ...e.audioButtonStyle, ...e.audioButtonDisabledStyle },\n children: a()\n }\n );\n}, Zt = () => {\n var s, a;\n const { settings: A } = R(), { styles: e } = X(), { toggleChatWindow: o } = sA(), t = {\n backgroundImage: `url(${(s = A.header) == null ? void 0 : s.closeChatIcon})`,\n fill: \"#e8eaed\",\n stroke: \"#e8eaed\",\n ...e.closeChatIconStyle\n }, n = () => {\n var c;\n const r = (c = A.header) == null ? void 0 : c.closeChatIcon;\n return !r || typeof r == \"string\" ? /* @__PURE__ */ l(\n \"span\",\n {\n className: \"rcb-close-chat-icon\",\n \"data-testid\": \"rcb-close-chat-icon\",\n style: t\n }\n ) : r && /* @__PURE__ */ l(\"span\", { className: \"rcb-close-chat-icon\", \"data-testid\": \"rcb-close-chat-icon\", children: /* @__PURE__ */ l(r, { style: t }) });\n };\n return /* @__PURE__ */ l(\n \"div\",\n {\n \"aria-label\": ((a = A.ariaLabel) == null ? void 0 : a.closeChatButton) ?? \"close chat\",\n role: \"button\",\n onMouseDown: (r) => {\n r.stopPropagation(), o(!1);\n },\n style: { ...e.closeChatButtonStyle },\n children: n()\n }\n );\n}, _t = () => {\n const { notificationsToggledOn: A, toggleNotifications: e, playNotificationSound: o } = WA();\n return {\n notificationsToggledOn: A,\n toggleNotifications: e,\n playNotificationSound: o\n };\n}, $t = () => {\n var r, c, i;\n const { settings: A } = R(), { styles: e } = X(), { notificationsToggledOn: o, toggleNotifications: t } = _t(), n = {\n backgroundImage: `url(${(r = A.notification) == null ? void 0 : r.icon})`,\n fill: \"#fcec3d\",\n ...e.notificationIconStyle\n }, s = {\n backgroundImage: `url(${(c = A.notification) == null ? void 0 : c.iconDisabled})`,\n fill: \"#e8eaed\",\n ...e.notificationIconStyle,\n // by default inherit the base style\n ...e.notificationIconDisabledStyle\n }, a = () => {\n var d, w;\n const u = o ? (d = A.notification) == null ? void 0 : d.icon : (w = A.notification) == null ? void 0 : w.iconDisabled;\n return !u || typeof u == \"string\" ? /* @__PURE__ */ l(\n \"span\",\n {\n className: \"rcb-notification-icon\",\n \"data-testid\": \"rcb-notification-icon\",\n style: o ? n : s\n }\n ) : u && /* @__PURE__ */ l(\"span\", { className: \"rcb-notification-icon\", \"data-testid\": \"rcb-notification-icon\", children: /* @__PURE__ */ l(\n u,\n {\n style: o ? n : s,\n \"data-testid\": \"rcb-notification-icon-svg\"\n }\n ) });\n };\n return /* @__PURE__ */ l(\n \"div\",\n {\n \"aria-label\": ((i = A.ariaLabel) == null ? void 0 : i.notificationButton) ?? \"toggle notifications\",\n role: \"button\",\n onMouseDown: async (u) => {\n u.preventDefault(), await t();\n },\n style: o ? { ...e.notificationButtonStyle } : { ...e.notificationButtonStyle, ...e.notificationButtonDisabledStyle },\n children: a()\n }\n );\n}, Ao = () => {\n var y, v, h;\n const { settings: A } = R(), { styles: e } = X(), { injectMessage: o } = EA(), { inputRef: t } = $(), { voiceToggledOn: n, toggleVoice: s } = xA(), { setInputLength: a, setTextAreaValue: r, textAreaDisabled: c } = yA(), { handleSubmitText: i } = mA(), u = eA([]), [d, w] = G(!1);\n Z(() => {\n var P;\n (P = A.voice) != null && P.sendAsAudio ? (E(), u.current = []) : i();\n }, [d]), Z(() => {\n n ? Nt(\n A,\n s,\n B,\n r,\n a,\n u,\n t\n ) : qA();\n }, [n]);\n const f = {\n backgroundImage: `url(${(y = A.voice) == null ? void 0 : y.icon})`,\n fill: \"#9aa0a6\",\n ...e.voiceIconStyle\n }, g = {\n backgroundImage: `url(${(v = A.voice) == null ? void 0 : v.iconDisabled})`,\n fill: \"#9aa0a6\",\n ...e.voiceIconStyle,\n // by default inherit the base style\n ...e.voiceIconDisabledStyle\n }, B = () => {\n w((P) => !P);\n }, E = async () => {\n const P = new Blob(u.current, { type: \"audio/wav\" }), D = new File([P], \"voice-input.wav\", { type: \"audio/wav\" }), S = await Ce(D);\n !S.fileType || !S.fileUrl || await o(/* @__PURE__ */ l(\n ye,\n {\n file: D,\n fileType: S.fileType,\n fileUrl: S.fileUrl\n }\n ), \"USER\");\n }, Q = () => {\n var D, S;\n const P = n ? (D = A.voice) == null ? void 0 : D.icon : (S = A.voice) == null ? void 0 : S.iconDisabled;\n return !P || typeof P == \"string\" ? /* @__PURE__ */ l(\n \"span\",\n {\n className: `rcb-voice-icon${n && !c ? \"-on\" : \"\"}`,\n \"data-testid\": \"rcb-voice-icon\",\n style: n && !c ? f : g\n }\n ) : P && /* @__PURE__ */ l(\"span\", { className: `rcb-voice-icon ${n && !c ? \"on\" : \"\"}`, children: /* @__PURE__ */ l(P, { style: n && !c ? f : g }) });\n };\n return /* @__PURE__ */ l(\n \"div\",\n {\n \"aria-label\": ((h = A.ariaLabel) == null ? void 0 : h.voiceButton) ?? \"toggle voice\",\n role: \"button\",\n onMouseDown: async (P) => {\n P.preventDefault(), !c && await s();\n },\n style: n && !c ? { ...e.voiceButtonStyle } : { ...e.voiceButtonStyle, ...e.voiceButtonDisabledStyle },\n className: n && !c ? \"rcb-voice-button-enabled\" : \"rcb-voice-button-disabled\",\n children: Q()\n }\n );\n}, eo = () => {\n var B, E, Q, y, v, h, P, D;\n const { settings: A } = R(), { styles: e } = X(), { textAreaDisabled: o } = tA(), [t, n] = G(!1), { handleSubmitText: s } = mA(), a = {\n backgroundColor: (B = A.general) == null ? void 0 : B.primaryColor,\n ...e.sendButtonStyle\n }, r = {\n cursor: `url(\"${(E = A.general) == null ? void 0 : E.actionDisabledIcon}\"), auto`,\n backgroundColor: (Q = A.general) == null ? void 0 : Q.primaryColor,\n ...e.sendButtonStyle,\n // by default inherit the base style\n ...e.sendButtonDisabledStyle\n }, c = {\n backgroundColor: (y = A.general) == null ? void 0 : y.secondaryColor,\n ...e.sendButtonStyle,\n // by default inherit the base style\n ...e.sendButtonHoveredStyle\n }, i = {\n backgroundImage: `url(${(v = A.chatInput) == null ? void 0 : v.sendButtonIcon})`,\n fill: \"#fff\",\n ...e.sendIconStyle\n }, u = {\n backgroundImage: `url(${(h = A.chatInput) == null ? void 0 : h.sendButtonIcon})`,\n fill: \"#fff\",\n ...e.sendIconStyle,\n // by default inherit the base style\n ...e.sendIconDisabledStyle\n }, d = {\n backgroundImage: `url(${(P = A.chatInput) == null ? void 0 : P.sendButtonIcon})`,\n fill: \"#fff\",\n ...e.sendIconStyle,\n // by default inherit the base style\n ...e.sendIconHoveredStyle\n }, w = () => {\n n(!0);\n }, f = () => {\n n(!1);\n }, g = () => {\n var I;\n const S = (I = A.chatInput) == null ? void 0 : I.sendButtonIcon;\n return !S || typeof S == \"string\" ? /* @__PURE__ */ l(\n \"span\",\n {\n className: \"rcb-send-icon\",\n \"data-testid\": \"rcb-send-icon\",\n style: o ? u : t ? d : i\n }\n ) : S && /* @__PURE__ */ l(\"span\", { className: \"rcb-send-icon\", \"data-testid\": \"rcb-send-icon\", children: /* @__PURE__ */ l(\n S,\n {\n style: o ? u : t ? d : i\n }\n ) });\n };\n return /* @__PURE__ */ l(\n \"div\",\n {\n \"aria-label\": ((D = A.ariaLabel) == null ? void 0 : D.sendButton) ?? \"send message\",\n role: \"button\",\n onMouseEnter: w,\n onMouseLeave: f,\n onMouseDown: async (S) => {\n S == null || S.preventDefault(), !o && await s();\n },\n style: o ? r : t ? c : a,\n className: \"rcb-send-button\",\n children: g()\n }\n );\n}, to = (A) => Object.values(_).includes(A), oo = (A, e) => {\n var c, i, u, d, w, f, g, B, E;\n const o = {\n [_.AUDIO_BUTTON]: (c = A.audio) == null ? void 0 : c.disabled,\n [_.CLOSE_CHAT_BUTTON]: (i = A.general) == null ? void 0 : i.embedded,\n [_.EMOJI_PICKER_BUTTON]: (u = A.emoji) == null ? void 0 : u.disabled,\n [_.FILE_ATTACHMENT_BUTTON]: (d = A.fileAttachment) == null ? void 0 : d.disabled,\n [_.NOTIFICATION_BUTTON]: (w = A.notification) == null ? void 0 : w.disabled,\n [_.SEND_MESSAGE_BUTTON]: !1,\n [_.VOICE_MESSAGE_BUTTON]: (f = A.voice) == null ? void 0 : f.disabled\n }, t = {}, n = (Q) => Q ? Q.map((y) => {\n if (typeof y == \"string\") {\n if (to(y) && !o[y]) {\n if (t[y])\n return t[y];\n const v = e[y];\n if (typeof v == \"function\") {\n const h = v();\n return t[y] = h, h;\n }\n return null;\n }\n return null;\n }\n return y;\n }).filter((y) => y !== null) : [], s = n((g = A.header) == null ? void 0 : g.buttons), a = n((B = A.chatInput) == null ? void 0 : B.buttons), r = n((E = A.footer) == null ? void 0 : E.buttons);\n return { header: s, chatInput: a, footer: r };\n}, no = () => /* @__PURE__ */ l(Jt, {}), so = () => /* @__PURE__ */ l($t, {}), ro = () => /* @__PURE__ */ l(Zt, {}), ao = () => /* @__PURE__ */ l(Ao, {}), co = () => /* @__PURE__ */ l(eo, {}), io = () => /* @__PURE__ */ l(Vt, {}), lo = () => /* @__PURE__ */ l(qt, {}), uo = () => {\n const { settings: A } = R(), e = dA(() => ({\n [_.CLOSE_CHAT_BUTTON]: () => ro(),\n [_.AUDIO_BUTTON]: () => no(),\n [_.NOTIFICATION_BUTTON]: () => so(),\n [_.EMOJI_PICKER_BUTTON]: () => lo(),\n [_.FILE_ATTACHMENT_BUTTON]: () => io(),\n [_.SEND_MESSAGE_BUTTON]: () => co(),\n [_.VOICE_MESSAGE_BUTTON]: () => ao()\n }), []), { header: o, chatInput: t, footer: n } = dA(() => oo(A, e), [A, e]), s = dA(() => o, [o]), a = dA(() => t, [t]), r = dA(() => n, [n]);\n return { headerButtons: s, chatInputButtons: a, footerButtons: r };\n}, JA = () => {\n const { settings: A } = R(), { styles: e } = X(), { setSyncedMessages: o, syncedMessagesRef: t } = XA(), {\n isLoadingChatHistory: n,\n setIsLoadingChatHistory: s,\n hasChatHistoryLoaded: a,\n setHasChatHistoryLoaded: r\n } = tA(), { chatBodyRef: c } = $(), { dispatchRcbEvent: i } = iA(), u = x(async () => {\n var f, g;\n const d = bA();\n if (!d || (f = A.event) != null && f.rcbLoadChatHistory && (await i(H.LOAD_CHAT_HISTORY, {})).defaultPrevented)\n return;\n s(!0);\n const w = ((g = c.current) == null ? void 0 : g.scrollHeight) ?? 0;\n It(\n A,\n e,\n d,\n o,\n t,\n c,\n w,\n s,\n r\n );\n }, [\n A,\n e,\n i,\n t,\n c,\n s,\n r\n ]);\n return { isLoadingChatHistory: n, setIsLoadingChatHistory: s, hasChatHistoryLoaded: a, showChatHistory: u };\n}, fo = () => {\n var c, i, u;\n const { settings: A } = R(), { styles: e } = X(), { showChatHistory: o } = JA(), [t, n] = G(!1), s = {\n color: (c = A.general) == null ? void 0 : c.primaryColor,\n borderColor: (i = A.general) == null ? void 0 : i.primaryColor,\n ...e.chatHistoryButtonStyle,\n // by default inherit the base style\n ...e.chatHistoryButtonHoveredStyle\n };\n return /* @__PURE__ */ l(\"div\", { className: \"rcb-view-history-container\", children: /* @__PURE__ */ l(\n \"div\",\n {\n onMouseEnter: () => {\n n(!0);\n },\n onMouseLeave: () => {\n n(!1);\n },\n style: t ? s : { ...e.chatHistoryButtonStyle },\n onMouseDown: (d) => {\n d.preventDefault(), o();\n },\n className: \"rcb-view-history-button\",\n role: \"button\",\n tabIndex: 0,\n children: /* @__PURE__ */ l(\"p\", { children: (u = A.chatHistory) == null ? void 0 : u.viewChatHistoryButtonText })\n }\n ) });\n}, me = () => {\n var a;\n const { settings: A } = R(), { hasInteractedPage: e, setHasInteractedPage: o, hasFlowStarted: t, setHasFlowStarted: n } = tA(), s = x(() => {\n var c;\n if (o(!0), !t && ((c = A.general) == null ? void 0 : c.flowStartTrigger) === \"ON_PAGE_INTERACT\" && n(!0), !window.SpeechSynthesisUtterance) {\n console.info(\"Speech Synthesis API is not supported in this environment.\");\n return;\n }\n const r = new window.SpeechSynthesisUtterance();\n r.text = \"\", r.onend = () => {\n window.removeEventListener(\"click\", s), window.removeEventListener(\"keydown\", s), window.removeEventListener(\"touchstart\", s);\n }, window.speechSynthesis.speak(r);\n }, [t, (a = A.general) == null ? void 0 : a.flowStartTrigger]);\n return {\n hasInteractedPage: e,\n handleFirstInteraction: s\n };\n}, wo = () => {\n var S, I, L, N;\n const A = OA(), { settings: e } = R(), {\n replaceMessages: o\n } = EA(), {\n isBotTyping: t,\n isChatWindowOpen: n,\n setUnreadCount: s,\n setSyncedIsChatWindowOpen: a,\n setSyncedTextAreaDisabled: r,\n setSyncedAudioToggledOn: c,\n setSyncedVoiceToggledOn: i,\n setSyncedIsScrolling: u,\n syncedIsScrollingRef: d,\n syncedIsChatWindowOpenRef: w\n } = tA(), { chatBodyRef: f } = $(), { viewportHeight: g, setViewportHeight: B, setViewportWidth: E, scrollToBottom: Q } = sA(), { setUpNotifications: y } = WA(), { handleFirstInteraction: v } = me(), { showChatHistory: h } = JA(), P = eA(0), D = eA(!1);\n Z(() => (window.addEventListener(\"click\", v), window.addEventListener(\"keydown\", v), window.addEventListener(\"touchstart\", v), () => {\n window.removeEventListener(\"click\", v), window.removeEventListener(\"keydown\", v), window.removeEventListener(\"touchstart\", v);\n }), []), Z(() => {\n const T = f.current;\n if (!T)\n return;\n const C = () => {\n D.current || (D.current = !0, requestAnimationFrame(() => {\n var p, k;\n if (!T)\n return;\n const { scrollTop: m, clientHeight: b, scrollHeight: M } = T, O = m + b < M - (((p = e.chatWindow) == null ? void 0 : p.messagePromptOffset) ?? 30);\n u(O), d.current = O, O || (m + b >= M - 1 && (T.scrollTop = M - b - 1), (w.current || (k = e.general) != null && k.embedded) && s(0)), D.current = !1;\n }));\n };\n return T.addEventListener(\"wheel\", C, { passive: !0 }), T.addEventListener(\"touchmove\", C, { passive: !0 }), () => {\n T.removeEventListener(\"wheel\", C), T.removeEventListener(\"touchmove\", C);\n };\n }, []), Z(() => {\n var T, C, m;\n r((T = e.chatInput) == null ? void 0 : T.disabled), a((C = e.chatWindow) == null ? void 0 : C.defaultOpen), c((m = e.audio) == null ? void 0 : m.defaultToggledOn), setTimeout(() => {\n var b;\n i((b = e.voice) == null ? void 0 : b.defaultToggledOn);\n }, 1);\n }, []), Z(() => {\n var T;\n (T = e.notification) != null && T.disabled || y();\n }, [(S = e.notification) == null ? void 0 : S.disabled]), Z(() => {\n !d.current && (f != null && f.current) && Q();\n }, [t]), Z(() => {\n var T, C;\n if ((T = e.chatHistory) != null && T.disabled)\n pt();\n else if (zA(e), bA().length > 0) {\n const b = gA(/* @__PURE__ */ l(fo, {}), \"SYSTEM\");\n o([b]), (C = e.chatHistory) != null && C.autoLoad && h();\n }\n }, [(I = e.chatHistory) == null ? void 0 : I.storageKey, (L = e.chatHistory) == null ? void 0 : L.maxEntries, (N = e.chatHistory) == null ? void 0 : N.disabled]), Z(() => {\n var T;\n A || (T = e.general) != null && T.embedded || !navigator.virtualKeyboard || (navigator.virtualKeyboard.overlaysContent = !0, navigator.virtualKeyboard.addEventListener(\"geometrychange\", (C) => {\n if (!C.target)\n return;\n const { x: m, y: b, width: M, height: O } = C.target.boundingRect;\n m == 0 && b == 0 && M == 0 && O == 0 ? (setTimeout(() => {\n var p;\n B((p = window.visualViewport) == null ? void 0 : p.height);\n }, 101), setTimeout(() => {\n var p, k;\n g != ((p = window.visualViewport) == null ? void 0 : p.height) && B((k = window.visualViewport) == null ? void 0 : k.height);\n }, 1001)) : setTimeout(() => {\n var p;\n B(((p = window.visualViewport) == null ? void 0 : p.height) - O);\n }, 101);\n }));\n }, [A]), Z(() => {\n var M, O, p, k;\n if (A)\n return;\n n && (B((M = window.visualViewport) == null ? void 0 : M.height), E((O = window.visualViewport) == null ? void 0 : O.width));\n const T = () => window.scrollTo({ top: 0, left: 0, behavior: \"auto\" }), C = () => P.current = window.scrollY, m = () => {\n var K, j;\n B((K = window.visualViewport) == null ? void 0 : K.height), E((j = window.visualViewport) == null ? void 0 : j.width);\n }, b = () => {\n var K;\n window.removeEventListener(\"scroll\", T), window.removeEventListener(\"scroll\", C), (K = window.visualViewport) == null || K.removeEventListener(\"resize\", m);\n };\n return n ? (b(), document.body.style.position = \"fixed\", window.addEventListener(\"scroll\", T), (p = window.visualViewport) == null || p.addEventListener(\"resize\", m)) : (document.body.style.position = \"static\", b(), window.scrollTo({ top: P.current, left: 0, behavior: \"auto\" }), window.addEventListener(\"scroll\", C), (k = window.visualViewport) == null || k.removeEventListener(\"resize\", m)), b;\n }, [n, A]);\n}, ZA = {\n DEFAULT_URL: \"https://cdn.jsdelivr.net/gh/react-chatbotify/community-themes/themes\",\n DEFAULT_EXPIRATION: \"2592000\",\n CACHE_KEY_PREFIX: \"RCB_THEME_CACHE_DATA\"\n}, go = ZA.DEFAULT_URL, Bo = ZA.DEFAULT_EXPIRATION, Qe = ZA.CACHE_KEY_PREFIX, vo = (A, e, o) => {\n const t = localStorage.getItem(`${Qe}_${A}_${e}`);\n if (!t)\n return null;\n try {\n const n = JSON.parse(t), s = (/* @__PURE__ */ new Date()).getTime(), a = Math.floor(s / 1e3);\n return n.cacheDate + o >= a ? n : null;\n } catch (n) {\n return console.error(`Unable to fetch cache for ${A}`, n), null;\n }\n}, ho = (A, e, o, t, n) => {\n const s = (/* @__PURE__ */ new Date()).getTime(), a = Math.floor(s / 1e3), r = {\n settings: o,\n inlineStyles: t,\n cssStylesText: n,\n cacheDate: a\n };\n localStorage.setItem(`${Qe}_${A}_${e}`, JSON.stringify(r));\n}, Po = async (A, e) => {\n const o = `${e}/${A}/meta.json`;\n try {\n const t = await fetch(o);\n return t.ok ? (await t.json()).version : (console.error(`Failed to fetch meta.json from ${o}`), null);\n } catch (t) {\n return console.error(`Failed to fetch meta.json from ${o}`, t), null;\n }\n}, ne = async (A, e) => {\n const { id: o, version: t, baseUrl: n = go, cacheDuration: s = Bo } = e, a = t || await Po(o, n);\n if (!a)\n return console.error(`Unable to find version for theme: ${o}`), { settings: {}, inlineStyles: {}, cssStylesText: \"\" };\n const r = vo(o, a, s);\n if (r) {\n const y = se(A, r.cssStylesText);\n return { settings: r.settings, inlineStyles: r.inlineStyles, cssStylesText: y };\n }\n const c = `${n}/${o}/${a}/styles.css`, i = `${n}/${o}/${a}/settings.json`, u = `${n}/${o}/${a}/styles.json`;\n let d = \"\";\n const w = await fetch(c);\n w.ok ? d = await w.text() : console.info(`Could not fetch styles.css from ${c}`);\n const f = await fetch(i);\n let g = {};\n f.ok ? g = await f.json() : console.info(`Could not fetch settings.json from ${i}`);\n const B = await fetch(u);\n let E = {};\n B.ok ? E = await B.json() : console.info(`Could not fetch styles.json from ${u}`), ho(o, a, g, E, d);\n const Q = se(A, d);\n return { settings: g, inlineStyles: E, cssStylesText: Q };\n}, se = (A, e) => e.split(new RegExp(\"(?<=})\")).map((t) => {\n const n = t.trim();\n return n.startsWith(\"@import\") || n.startsWith(\"@keyframes\") || n.startsWith(\"@media\") ? n : n ? `#${A} ${n}` : \"\";\n}).join(`\n`), Do = () => LA(re), Eo = () => LA(ce), yo = async (A, e, o, t) => {\n var r, c;\n let n = Do(), s = Eo(), a = \"\";\n if (t != null)\n if (Array.isArray(t))\n for (const i of t) {\n const u = await ne(A, i);\n n = fA(u.settings, n), s = fA(u.inlineStyles, s), a += u.cssStylesText;\n }\n else {\n const i = await ne(A, t);\n n = fA(i.settings, n), s = fA(i.inlineStyles, s), a += i.cssStylesText;\n }\n return e != null && (n = fA(e, n)), o != null && (s = fA(o, s)), ((r = n.chatInput) == null ? void 0 : r.botDelay) != null && ((c = n.chatInput) == null ? void 0 : c.botDelay) < 500 && (n.chatInput.botDelay = 500), { settings: n, inlineStyles: s, cssStylesText: a };\n}, fA = (A, e) => {\n const o = [{ source: A, target: e }];\n for (; o.length; ) {\n const t = o.pop();\n if (t == null)\n continue;\n const { source: n, target: s } = t;\n for (const a of Object.keys(n)) {\n const r = a;\n if (GA(n[r]))\n s[r] = n[r];\n else if (typeof n[r] == \"object\" && n[r] !== null && !Array.isArray(n[r]))\n (typeof s[r] != \"object\" || s[r] === null) && (s[r] = {}), o.push({ source: n[r], target: s[r] });\n else\n try {\n s[r] = n[r];\n } catch {\n }\n }\n }\n return e;\n}, LA = (A) => {\n if (A === null || typeof A != \"object\")\n return A;\n const e = Array.isArray(A) ? [] : {}, o = [{ source: A, target: e }], t = /* @__PURE__ */ new WeakMap();\n for (t.set(A, e); o.length; ) {\n const n = o.pop();\n if (n == null)\n continue;\n const { source: s, target: a } = n;\n for (const r in s)\n if (Object.prototype.hasOwnProperty.call(s, r)) {\n const c = s[r];\n if (c && typeof c == \"object\")\n if (t.has(c))\n a[r] = t.get(c);\n else {\n const i = Array.isArray(c) ? [] : {};\n t.set(c, i), a[r] = i, o.push({ source: c, target: i });\n }\n else\n a[r] = c;\n }\n }\n return e;\n}, be = () => {\n const { settings: A, setSyncedSettings: e, syncedSettingsRef: o } = R(), t = x((s) => {\n !s || Object.keys(s).length === 0 || e(LA(fA(s, A)));\n }, [A]), n = x((s) => {\n const a = typeof s == \"function\" ? s(o.current) : s;\n e(a);\n }, [o]);\n return {\n settings: A,\n replaceSettings: n,\n updateSettings: t\n };\n}, pe = () => {\n const { styles: A, setSyncedStyles: e, syncedStylesRef: o } = X(), t = x((s) => {\n !s || Object.keys(s).length === 0 || e(LA(fA(s, A)));\n }, [A]), n = x((s) => {\n const a = typeof s == \"function\" ? s(o.current) : s;\n e(a);\n }, [o]);\n return {\n styles: A,\n replaceStyles: n,\n updateStyles: t\n };\n}, Co = (A) => {\n const { updateSettings: e } = be(), { updateStyles: o } = pe(), t = A == null ? void 0 : A.map((n) => n());\n Z(() => {\n let n = {}, s = {};\n t == null || t.forEach((a) => {\n a != null && a.settings && Object.keys(a == null ? void 0 : a.settings).length !== 0 && (n = fA(a.settings, n)), a != null && a.styles && Object.keys(a == null ? void 0 : a.styles).length !== 0 && (s = fA(a.styles, s));\n }), e(n), o(s);\n }, []);\n}, mo = ({\n plugins: A,\n slots: e\n}) => {\n var y, v;\n const o = OA(), { settings: t } = R(), { styles: n } = X(), { hasFlowStarted: s, setHasFlowStarted: a } = tA(), { inputRef: r } = $(), {\n viewportHeight: c,\n viewportWidth: i,\n isChatWindowOpen: u\n } = sA(), { goToPath: d } = SA(), { headerButtons: w, chatInputButtons: f, footerButtons: g } = uo();\n wo(), Co(A), Z(() => {\n var h;\n (s || ((h = t.general) == null ? void 0 : h.flowStartTrigger) === \"ON_LOAD\") && d(\"start\");\n }, [s, (y = t.general) == null ? void 0 : y.flowStartTrigger]);\n const B = dA(() => {\n var P;\n const h = \"rcb-chatbot-global \";\n return (P = t.general) != null && P.embedded ? h + \"rcb-window-embedded\" : u ? h + \"rcb-window-open\" : h + \"rcb-window-close\";\n }, [t, u]), E = () => {\n var h, P;\n return !o && !((h = t.general) != null && h.embedded) ? {\n ...n.chatWindowStyle,\n borderRadius: \"0px\",\n left: \"0px\",\n right: \"auto\",\n top: \"0px\",\n bottom: \"auto\",\n width: `${i}px`,\n height: `${c}px`,\n zIndex: 1e4\n } : (P = t.general) != null && P.embedded ? { ...n.chatWindowStyle } : {\n ...n.chatWindowStyle,\n zIndex: 1e4\n };\n };\n return /* @__PURE__ */ l(oA, { children: (() => {\n var h, P;\n return o && ((h = t.device) == null ? void 0 : h.desktopEnabled) || !o && ((P = t.device) == null ? void 0 : P.mobileEnabled);\n })() && /* @__PURE__ */ W(\n \"div\",\n {\n onMouseDown: (h) => {\n var P, D;\n !s && ((P = t.general) == null ? void 0 : P.flowStartTrigger) === \"ON_CHATBOT_INTERACT\" && a(!0), o ? (D = r.current) == null || D.blur() : h == null || h.preventDefault();\n },\n className: B,\n children: [\n /* @__PURE__ */ l(Xt, {}),\n /* @__PURE__ */ l(Yt, {}),\n u && !o && !((v = t.general) != null && v.embedded) && /* @__PURE__ */ W(oA, { children: [\n /* @__PURE__ */ l(\"style\", { children: `\n\t\t\t\t\t\t\t\t\thtml {\n\t\t\t\t\t\t\t\t\t\toverflow: hidden !important;\n\t\t\t\t\t\t\t\t\t\ttouch-action: none !important;\n\t\t\t\t\t\t\t\t\t\tscroll-behavior: auto !important;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t` }),\n /* @__PURE__ */ l(\n \"div\",\n {\n style: {\n position: \"fixed\",\n top: 0,\n left: 0,\n width: \"100%\",\n height: \"100%\",\n backgroundColor: \"#fff\",\n zIndex: 9999\n }\n }\n )\n ] }),\n /* @__PURE__ */ l(\"div\", { style: E(), className: \"rcb-chat-window\", children: (() => {\n var I, L, N;\n const h = (e == null ? void 0 : e.chatBotHeader) || et, P = (e == null ? void 0 : e.chatBotBody) || ut, D = (e == null ? void 0 : e.chatBotInput) || zt, S = (e == null ? void 0 : e.chatBotFooter) || Gt;\n return /* @__PURE__ */ W(oA, { children: [\n ((I = t.general) == null ? void 0 : I.showHeader) && /* @__PURE__ */ l(h, { buttons: w }),\n /* @__PURE__ */ l(P, {}),\n /* @__PURE__ */ l(Kt, {}),\n ((L = t.general) == null ? void 0 : L.showInputRow) && /* @__PURE__ */ l(D, { buttons: f }),\n ((N = t.general) == null ? void 0 : N.showFooter) && /* @__PURE__ */ l(S, { buttons: g })\n ] });\n })() })\n ]\n }\n ) });\n}, Se = vA(void 0), Ie = () => hA(Se), Qo = ({\n children: A\n}) => {\n var w;\n const e = eA(\"\"), o = eA({}), [t, n, s] = nA({}), [a, r, c] = nA({}), [i, u] = G(!1);\n Z(() => {\n u(!0);\n }, []);\n const d = async (f, g, B, E, Q, y) => {\n e.current = f, o.current = g;\n const v = await yo(f, B, E, Q);\n y.current && (y.current.textContent = v.cssStylesText), n(v.settings), r(v.inlineStyles);\n };\n return i ? /* @__PURE__ */ l(\"div\", { style: { fontFamily: (w = t.general) == null ? void 0 : w.fontFamily }, children: /* @__PURE__ */ l(Se.Provider, { value: { loadConfig: d }, children: /* @__PURE__ */ l(\n $e,\n {\n settings: t,\n setSyncedSettings: n,\n syncedSettingsRef: s,\n children: /* @__PURE__ */ l(\n At,\n {\n styles: a,\n setSyncedStyles: r,\n syncedStylesRef: c,\n children: /* @__PURE__ */ l(jt, { children: /* @__PURE__ */ l(tt, { botIdRef: e, flowRef: o, children: /* @__PURE__ */ l(st, { children: /* @__PURE__ */ l(ot, { settings: t, children: /* @__PURE__ */ l(at, { children: A }) }) }) }) })\n }\n )\n }\n ) }) }) : null;\n}, bo = ({\n id: A,\n flow: e,\n settings: o,\n styles: t,\n themes: n,\n plugins: s,\n setConfigLoaded: a,\n styleRootRef: r\n}) => {\n const c = dA(() => A, []), i = Ie(), { flowRef: u } = $();\n u && u.current !== e && (u.current = e);\n const d = async () => {\n var w, f;\n (w = o.event) != null && w.rcbPreLoadChatBot && (await UA(\n H.PRE_LOAD_CHATBOT,\n { botId: c, currPath: null, prevPath: null },\n {\n flow: e,\n settings: o,\n styles: t,\n themes: n,\n plugins: s\n }\n )).defaultPrevented || (i != null && i.loadConfig && (await i.loadConfig(c, e, o, t, n, r), a(!0)), (f = o.event) != null && f.rcbPostLoadChatBot && UA(\n H.POST_LOAD_CHATBOT,\n { botId: c, currPath: null, prevPath: null },\n {\n flow: e,\n settings: o,\n styles: t,\n themes: n,\n plugins: s\n }\n ));\n };\n return Z(() => {\n d();\n }, [n]), null;\n}, FA = [\"Quickstart\", \"API Docs\", \"Examples\", \"Github\", \"Discord\"], po = {\n start: {\n message: \"Hello, I am Tan Jin 👋! Welcome to React ChatBotify, I'm excited that you are using our chatbot 😊!\",\n transition: { duration: 1e3 },\n chatDisabled: !0,\n path: \"show_options\"\n },\n show_options: {\n message: \"It looks like you have not set up a conversation flow yet. No worries! Here are a few helpful things you can check out to get started:\",\n options: FA,\n path: \"process_options\"\n },\n prompt_again: {\n message: \"Do you need any other help?\",\n options: FA,\n path: \"process_options\"\n },\n unknown_input: {\n message: \"Sorry, I do not understand your message 😢! If you require further assistance, you may click on the Github option and open an issue there or visit our discord.\",\n options: FA,\n path: \"process_options\"\n },\n process_options: {\n transition: { duration: 0 },\n path: (A) => {\n let e = \"\";\n switch (A.userInput) {\n case \"Quickstart\":\n e = \"https://react-chatbotify.com/docs/introduction/quickstart/\";\n break;\n case \"API Docs\":\n e = \"https://react-chatbotify.com/docs/api/bot_options\";\n break;\n case \"Examples\":\n e = \"https://react-chatbotify.com/docs/examples/basic_form\";\n break;\n case \"Github\":\n e = \"https://github.com/react-chatbotify/react-chatbotify/\";\n break;\n case \"Discord\":\n e = \"https://discord.gg/6R4DK4G5Zh\";\n break;\n default:\n return \"unknown_input\";\n }\n return A.injectMessage(\"Sit tight! I'll send you right there!\"), setTimeout(() => {\n window.open(e);\n }, 1e3), \"repeat\";\n }\n },\n repeat: {\n transition: { duration: 3e3 },\n path: \"prompt_again\"\n }\n}, Oo = ({\n id: A,\n flow: e,\n settings: o,\n styles: t,\n themes: n,\n plugins: s,\n slots: a\n}) => {\n const r = dA(() => A || \"rcb-\" + MA(), []), c = !e || Object.keys(e).length === 0 ? po : e, i = o || {}, u = t || {}, d = s || [], [w, f] = G(!1), g = Ie(), B = eA(null), [E, Q] = G(n || []);\n Z(() => {\n n && Q(n);\n }, [n]);\n const y = () => /* @__PURE__ */ W(oA, { children: [\n /* @__PURE__ */ l(\n bo,\n {\n styleRootRef: B,\n id: r,\n flow: c,\n settings: i,\n styles: u,\n themes: E,\n plugins: d,\n setConfigLoaded: f\n }\n ),\n w && /* @__PURE__ */ l(mo, { plugins: s, slots: a })\n ] });\n return g == null ? /* @__PURE__ */ W(Qo, { children: [\n /* @__PURE__ */ l(\"style\", { ref: B }),\n /* @__PURE__ */ l(\"div\", { id: r, children: y() })\n ] }) : /* @__PURE__ */ W(oA, { children: [\n /* @__PURE__ */ l(\"style\", { ref: B }),\n /* @__PURE__ */ l(\"div\", { id: r, children: y() })\n ] });\n}, Lo = () => {\n const { audioToggledOn: A, speakAudio: e, toggleAudio: o } = KA();\n return {\n audioToggledOn: A,\n speakAudio: e,\n toggleAudio: o\n };\n}, So = () => {\n const { botIdRef: A } = $();\n return {\n getBotId: x(() => A.current, [A])\n };\n}, Io = () => {\n const { getBotId: A } = So();\n return {\n getBotId: A\n };\n}, No = () => {\n const {\n isChatWindowOpen: A,\n toggleChatWindow: e,\n toggleIsBotTyping: o,\n scrollToBottom: t,\n getIsChatBotVisible: n\n } = sA();\n return {\n isChatWindowOpen: A,\n toggleChatWindow: e,\n toggleIsBotTyping: o,\n scrollToBottom: t,\n getIsChatBotVisible: n\n };\n}, Ro = () => {\n const { hasInteractedPage: A } = me();\n return {\n hasInteractedPage: A\n };\n}, To = () => {\n const { replaceMessages: A } = EA(), { replacePaths: e, goToPath: o } = SA(), { replaceToasts: t } = CA(), { hasFlowStarted: n } = tA(), { flowRef: s, timeoutIdRef: a } = $(), { settings: r } = R(), c = x(async () => {\n zA(r), a.current && clearTimeout(a.current), A([]), t([]), e([]), await o(\"start\");\n }, [a, r, A, t, e, zA, o]), i = x(() => (s == null ? void 0 : s.current) ?? {}, [s]);\n return {\n hasFlowStarted: n,\n restartFlow: c,\n getFlow: i\n };\n}, Fo = () => {\n const { hasFlowStarted: A, restartFlow: e, getFlow: o } = To();\n return {\n hasFlowStarted: A,\n restartFlow: e,\n getFlow: o\n };\n}, Uo = () => {\n const {\n endStreamMessage: A,\n injectMessage: e,\n removeMessage: o,\n simulateStreamMessage: t,\n streamMessage: n,\n messages: s,\n replaceMessages: a,\n getMessages: r\n } = EA();\n return {\n endStreamMessage: A,\n injectMessage: e,\n removeMessage: o,\n simulateStreamMessage: t,\n streamMessage: n,\n messages: s,\n replaceMessages: a,\n getMessages: r\n };\n}, jo = (A, e) => {\n const { getBotId: o } = Io();\n Z(() => {\n const t = (n) => {\n n.detail.botId === o() && e(n);\n };\n return window.addEventListener(A, t), () => {\n window.removeEventListener(A, t);\n };\n }, [o, A, e]);\n}, zo = () => {\n const {\n getCurrPath: A,\n getPrevPath: e,\n goToPath: o,\n paths: t,\n replacePaths: n\n } = SA();\n return {\n getCurrPath: A,\n getPrevPath: e,\n goToPath: o,\n paths: t,\n replacePaths: n\n };\n}, Go = () => {\n const { settings: A, replaceSettings: e, updateSettings: o } = be();\n return {\n settings: A,\n replaceSettings: e,\n updateSettings: o\n };\n}, Yo = () => {\n const { styles: A, replaceStyles: e, updateStyles: o } = pe();\n return {\n styles: A,\n replaceStyles: e,\n updateStyles: o\n };\n}, Xo = () => {\n const {\n textAreaDisabled: A,\n toggleTextAreaDisabled: e,\n textAreaSensitiveMode: o,\n toggleTextAreaSensitiveMode: t,\n getTextAreaValue: n,\n setTextAreaValue: s,\n focusTextArea: a,\n blurTextArea: r\n } = yA();\n return {\n textAreaDisabled: A,\n toggleTextAreaDisabled: e,\n textAreaSensitiveMode: o,\n toggleTextAreaSensitiveMode: t,\n getTextAreaValue: n,\n setTextAreaValue: s,\n focusTextArea: a,\n blurTextArea: r\n };\n}, Wo = () => {\n const { showToast: A, dismissToast: e, toasts: o, replaceToasts: t } = CA();\n return {\n showToast: A,\n dismissToast: e,\n toasts: o,\n replaceToasts: t\n };\n}, Ko = () => {\n const { voiceToggledOn: A, toggleVoice: e } = xA();\n return {\n voiceToggledOn: A,\n toggleVoice: e\n };\n}, Vo = () => {\n const { showChatHistory: A, hasChatHistoryLoaded: e } = JA();\n return {\n showChatHistory: A,\n getHistoryMessages: bA,\n setHistoryMessages: jA,\n hasChatHistoryLoaded: e\n };\n};\nexport {\n _ as Button,\n Qo as ChatBotProvider,\n H as RcbEvent,\n Oo as default,\n Do as getDefaultSettings,\n Eo as getDefaultStyles,\n Lo as useAudio,\n Io as useBotId,\n Vo as useChatHistory,\n No as useChatWindow,\n Ro as useFirstInteraction,\n Fo as useFlow,\n Uo as useMessages,\n _t as useNotifications,\n jo as useOnRcbEvent,\n zo as usePaths,\n Go as useSettings,\n Yo as useStyles,\n Xo as useTextArea,\n Wo as useToasts,\n Ko as useVoice\n};\n","import A, { useEffect as X } from \"react\";\nimport { useFlow as Q, useMessages as Z, useSettings as ee, useChatHistory as te, useOnRcbEvent as L, RcbEvent as P } from \"react-chatbotify\";\nimport { jsx as W } from \"react/jsx-runtime\";\nconst d = 1, G = 2, U = 4, b = 8, H = 16, R = 32, N = 64, D = {\n a: {\n content: d | b,\n self: !1,\n type: d | b | R | N\n },\n address: {\n invalid: [\"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\", \"address\", \"article\", \"aside\", \"section\", \"div\", \"header\", \"footer\"],\n self: !1\n },\n audio: {\n children: [\"track\", \"source\"]\n },\n br: {\n type: d | b,\n void: !0\n },\n body: {\n content: d | G | U | b | H | R | N\n },\n button: {\n content: b,\n type: d | b | R | N\n },\n caption: {\n content: d,\n parent: [\"table\"]\n },\n col: {\n parent: [\"colgroup\"],\n void: !0\n },\n colgroup: {\n children: [\"col\"],\n parent: [\"table\"]\n },\n details: {\n children: [\"summary\"],\n type: d | R | N\n },\n dd: {\n content: d,\n parent: [\"dl\"]\n },\n dl: {\n children: [\"dt\", \"dd\"],\n type: d\n },\n dt: {\n content: d,\n invalid: [\"footer\", \"header\"],\n parent: [\"dl\"]\n },\n figcaption: {\n content: d,\n parent: [\"figure\"]\n },\n footer: {\n invalid: [\"footer\", \"header\"]\n },\n header: {\n invalid: [\"footer\", \"header\"]\n },\n hr: {\n type: d,\n void: !0\n },\n img: {\n void: !0\n },\n li: {\n content: d,\n parent: [\"ul\", \"ol\", \"menu\"]\n },\n main: {\n self: !1\n },\n ol: {\n children: [\"li\"],\n type: d\n },\n picture: {\n children: [\"source\", \"img\"],\n type: d | b | H\n },\n rb: {\n parent: [\"ruby\", \"rtc\"]\n },\n rp: {\n parent: [\"ruby\", \"rtc\"]\n },\n rt: {\n content: b,\n parent: [\"ruby\", \"rtc\"]\n },\n rtc: {\n content: b,\n parent: [\"ruby\"]\n },\n ruby: {\n children: [\"rb\", \"rp\", \"rt\", \"rtc\"]\n },\n source: {\n parent: [\"audio\", \"video\", \"picture\"],\n void: !0\n },\n summary: {\n content: b,\n parent: [\"details\"]\n },\n table: {\n children: [\"caption\", \"colgroup\", \"thead\", \"tbody\", \"tfoot\", \"tr\"],\n type: d\n },\n tbody: {\n parent: [\"table\"],\n children: [\"tr\"]\n },\n td: {\n content: d,\n parent: [\"tr\"]\n },\n tfoot: {\n parent: [\"table\"],\n children: [\"tr\"]\n },\n th: {\n content: d,\n parent: [\"tr\"]\n },\n thead: {\n parent: [\"table\"],\n children: [\"tr\"]\n },\n tr: {\n parent: [\"table\", \"tbody\", \"thead\", \"tfoot\"],\n children: [\"th\", \"td\"]\n },\n track: {\n parent: [\"audio\", \"video\"],\n void: !0\n },\n ul: {\n children: [\"li\"],\n type: d\n },\n video: {\n children: [\"track\", \"source\"]\n },\n wbr: {\n type: d | b,\n void: !0\n }\n};\nfunction S(a) {\n return (e) => {\n D[e] = {\n ...a,\n ...D[e]\n };\n };\n}\n[\"address\", \"main\", \"div\", \"figure\", \"p\", \"pre\"].forEach(S({\n content: d,\n type: d | N\n}));\n[\"abbr\", \"b\", \"bdi\", \"bdo\", \"cite\", \"code\", \"data\", \"dfn\", \"em\", \"i\", \"kbd\", \"mark\", \"q\", \"ruby\", \"samp\", \"strong\", \"sub\", \"sup\", \"time\", \"u\", \"var\"].forEach(S({\n content: b,\n type: d | b | N\n}));\n[\"p\", \"pre\"].forEach(S({\n content: b,\n type: d | N\n}));\n[\"s\", \"small\", \"span\", \"del\", \"ins\"].forEach(S({\n content: b,\n type: d | b\n}));\n[\"article\", \"aside\", \"footer\", \"header\", \"nav\", \"section\", \"blockquote\"].forEach(S({\n content: d,\n type: d | G | N\n}));\n[\"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\"].forEach(S({\n content: b,\n type: d | U | N\n}));\n[\"audio\", \"canvas\", \"iframe\", \"img\", \"video\"].forEach(S({\n type: d | b | H | N\n}));\nconst F = Object.freeze(D), re = [\"applet\", \"base\", \"body\", \"command\", \"embed\", \"frame\", \"frameset\", \"head\", \"html\", \"link\", \"meta\", \"noscript\", \"object\", \"script\", \"style\", \"title\"], ne = Object.keys(F).filter((a) => a !== \"canvas\" && a !== \"iframe\"), h = 1, se = 2, O = 3, x = 4, q = 5, j = Object.freeze({\n alt: h,\n cite: h,\n class: h,\n colspan: O,\n controls: x,\n datetime: h,\n default: x,\n disabled: x,\n dir: h,\n height: h,\n href: h,\n id: h,\n kind: h,\n label: h,\n lang: h,\n loading: h,\n loop: x,\n media: h,\n muted: x,\n poster: h,\n rel: h,\n role: h,\n rowspan: O,\n scope: h,\n sizes: h,\n span: O,\n start: O,\n style: q,\n src: h,\n srclang: h,\n srcset: h,\n tabindex: h,\n target: h,\n title: h,\n type: h,\n width: h\n}), ae = Object.freeze({\n class: \"className\",\n colspan: \"colSpan\",\n datetime: \"dateTime\",\n rowspan: \"rowSpan\",\n srclang: \"srcLang\",\n srcset: \"srcSet\",\n tabindex: \"tabIndex\"\n});\nfunction k() {\n return k = Object.assign || function(a) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t)\n Object.prototype.hasOwnProperty.call(t, r) && (a[r] = t[r]);\n }\n return a;\n }, k.apply(this, arguments);\n}\nfunction z({\n attributes: a = {},\n className: e,\n children: t = null,\n selfClose: r = !1,\n tagName: n\n}) {\n const s = n;\n return r ? /* @__PURE__ */ A.createElement(s, k({\n className: e\n }, a)) : /* @__PURE__ */ A.createElement(s, k({\n className: e\n }, a), t);\n}\nclass oe {\n /**\n * Filter and clean an HTML attribute value.\n */\n attribute(e, t) {\n return t;\n }\n /**\n * Filter and clean an HTML node.\n */\n node(e, t) {\n return t;\n }\n}\nfunction ie(a) {\n return a && a.__esModule && Object.prototype.hasOwnProperty.call(a, \"default\") ? a.default : a;\n}\n/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */\nvar C, V;\nfunction ce() {\n if (V) return C;\n V = 1;\n var a = /[\"'&<>]/;\n C = e;\n function e(t) {\n var r = \"\" + t, n = a.exec(r);\n if (!n)\n return r;\n var s, c = \"\", u = 0, o = 0;\n for (u = n.index; u < r.length; u++) {\n switch (r.charCodeAt(u)) {\n case 34:\n s = \"&quot;\";\n break;\n case 38:\n s = \"&amp;\";\n break;\n case 39:\n s = \"&#39;\";\n break;\n case 60:\n s = \"&lt;\";\n break;\n case 62:\n s = \"&gt;\";\n break;\n default:\n continue;\n }\n o !== u && (c += r.substring(o, u)), o = u + 1, c += s;\n }\n return o !== u ? c + r.substring(o, u) : c;\n }\n return C;\n}\nvar le = ce();\nconst ue = /* @__PURE__ */ ie(le);\nfunction w(a, e, t) {\n return e in a ? Object.defineProperty(a, e, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : a[e] = t, a;\n}\nconst de = /(url|image|image-set)\\(/i;\nclass pe extends oe {\n attribute(e, t) {\n return e === \"style\" && Object.keys(t).forEach((r) => {\n String(t[r]).match(de) && delete t[r];\n }), t;\n }\n}\nconst $ = 1, fe = 3, he = /^<(!doctype|(html|head|body)(\\s|>))/i, me = /^(aria-|data-|\\w+:)/iu, ge = /{{{(\\w+)\\/?}}}/;\nfunction be() {\n if (!(typeof window > \"u\" || typeof document > \"u\"))\n return document.implementation.createHTMLDocument(\"Interweave\");\n}\nclass K {\n constructor(e, t = {}, r = [], n = []) {\n var s;\n if (w(this, \"allowed\", void 0), w(this, \"banned\", void 0), w(this, \"blocked\", void 0), w(this, \"container\", void 0), w(this, \"content\", []), w(this, \"props\", void 0), w(this, \"matchers\", void 0), w(this, \"filters\", void 0), w(this, \"keyIndex\", void 0), process.env.NODE_ENV !== \"production\" && e && typeof e != \"string\")\n throw new TypeError(\"Interweave parser requires a valid string.\");\n this.props = t, this.matchers = r, this.filters = [...n, new pe()], this.keyIndex = -1, this.container = this.createContainer(e || \"\"), this.allowed = new Set((s = t.allowList) !== null && s !== void 0 ? s : ne), this.banned = new Set(re), this.blocked = new Set(t.blockList);\n }\n /**\n * Loop through and apply all registered attribute filters.\n */\n applyAttributeFilters(e, t) {\n return this.filters.reduce((r, n) => r !== null && typeof n.attribute == \"function\" ? n.attribute(e, r) : r, t);\n }\n /**\n * Loop through and apply all registered node filters.\n */\n applyNodeFilters(e, t) {\n return this.filters.reduce((r, n) => r !== null && typeof n.node == \"function\" ? n.node(e, r) : r, t);\n }\n /**\n * Loop through and apply all registered matchers to the string.\n * If a match is found, create a React element, and build a new array.\n * This array allows React to interpolate and render accordingly.\n */\n applyMatchers(e, t) {\n const r = {}, {\n props: n\n } = this;\n let s = e, c = 0, u = null;\n return this.matchers.forEach((o) => {\n const m = o.asTag().toLowerCase(), f = this.getTagConfig(m);\n if (n[o.inverseName] || !this.isTagAllowed(m) || !this.canRenderChild(t, f))\n return;\n let i = \"\";\n for (; s && (u = o.match(s)); ) {\n const {\n index: l,\n length: p,\n match: g,\n valid: E,\n void: T,\n ...y\n } = u, _ = o.propName + String(c);\n l > 0 && (i += s.slice(0, l)), E ? (i += T ? `{{{${_}/}}}` : `{{{${_}}}}${g}{{{/${_}}}}`, this.keyIndex += 1, c += 1, r[_] = {\n children: g,\n matcher: o,\n props: {\n ...n,\n ...y,\n key: this.keyIndex\n }\n }) : i += g, o.greedy ? (s = i + s.slice(l + p), i = \"\") : s = s.slice(l + (p || g.length));\n }\n o.greedy || (s = i + s);\n }), c === 0 ? e : this.replaceTokens(s, r);\n }\n /**\n * Determine whether the child can be rendered within the parent.\n */\n canRenderChild(e, t) {\n return !e.tagName || !t.tagName || e.void ? !1 : e.children.length > 0 ? e.children.includes(t.tagName) : e.invalid.length > 0 && e.invalid.includes(t.tagName) ? !1 : t.parent.length > 0 ? t.parent.includes(e.tagName) : !e.self && e.tagName === t.tagName ? !1 : !!(e && e.content & t.type);\n }\n /**\n * Convert line breaks in a string to HTML `<br/>` tags.\n * If the string contains HTML, we should not convert anything,\n * as line breaks should be handled by `<br/>`s in the markup itself.\n */\n convertLineBreaks(e) {\n const {\n noHtml: t,\n disableLineBreaks: r\n } = this.props;\n if (t || r || e.match(/<((?:\\/[ a-z]+)|(?:[ a-z]+\\/))>/gi))\n return e;\n let n = e.replace(/\\r\\n/g, `\n`);\n return n = n.replace(/\\n{3,}/g, `\n\n\n`), n = n.replace(/\\n/g, \"<br/>\"), n;\n }\n /**\n * Create a detached HTML document that allows for easy HTML\n * parsing while not triggering scripts or loading external\n * resources.\n */\n createContainer(e) {\n var t;\n const n = (typeof global < \"u\" && global.INTERWEAVE_SSR_POLYFILL || be)();\n if (!n)\n return;\n const s = (t = this.props.containerTagName) !== null && t !== void 0 ? t : \"body\", c = s === \"body\" || s === \"fragment\" ? n.body : n.createElement(s);\n if (e.match(he)) {\n if (process.env.NODE_ENV !== \"production\")\n throw new Error(\"HTML documents as Interweave content are not supported.\");\n } else\n c.innerHTML = this.convertLineBreaks(this.props.escapeHtml ? ue(e) : e);\n return c;\n }\n /**\n * Convert an elements attribute map to an object map.\n * Returns null if no attributes are defined.\n */\n extractAttributes(e) {\n const {\n allowAttributes: t\n } = this.props, r = {};\n let n = 0;\n return e.nodeType !== $ || !e.attributes || ([...e.attributes].forEach((s) => {\n const {\n name: c,\n value: u\n } = s, o = c.toLowerCase(), m = j[o] || j[c];\n if (!this.isSafe(e) || !o.match(me) && (!t && (!m || m === se) || o.startsWith(\"on\") || u.replace(/(\\s|\\0|&#x0([9AD]);)/, \"\").match(/(javascript|vbscript|livescript|xss):/i)))\n return;\n let f = o === \"style\" ? this.extractStyleAttribute(e) : u;\n m === x ? f = !0 : m === O ? f = Number.parseFloat(String(f)) : m !== q && (f = String(f)), r[ae[o] || o] = this.applyAttributeFilters(o, f), n += 1;\n }), n === 0) ? null : r;\n }\n /**\n * Extract the style attribute as an object and remove values that allow for attack vectors.\n */\n extractStyleAttribute(e) {\n const t = {};\n return Array.from(e.style).forEach((r) => {\n const n = e.style[r];\n (typeof n == \"string\" || typeof n == \"number\") && (t[r.replace(/-([a-z])/g, (s, c) => String(c).toUpperCase())] = n);\n }), t;\n }\n /**\n * Return configuration for a specific tag.\n */\n getTagConfig(e) {\n const t = {\n children: [],\n content: 0,\n invalid: [],\n parent: [],\n self: !0,\n tagName: \"\",\n type: 0,\n void: !1\n };\n return F[e] ? {\n ...t,\n ...F[e],\n tagName: e\n } : t;\n }\n /**\n * Verify that a node is safe from XSS and injection attacks.\n */\n isSafe(e) {\n if (typeof HTMLAnchorElement < \"u\" && e instanceof HTMLAnchorElement) {\n const t = e.getAttribute(\"href\");\n if (t != null && t.startsWith(\"#\"))\n return !0;\n const r = e.protocol.toLowerCase();\n return r === \":\" || r === \"http:\" || r === \"https:\" || r === \"mailto:\" || r === \"tel:\";\n }\n return !0;\n }\n /**\n * Verify that an HTML tag is allowed to render.\n */\n isTagAllowed(e) {\n return this.banned.has(e) || this.blocked.has(e) ? !1 : this.props.allowElements || this.allowed.has(e);\n }\n /**\n * Parse the markup by injecting it into a detached document,\n * while looping over all child nodes and generating an\n * array to interpolate into JSX.\n */\n parse() {\n return this.container ? this.parseNode(this.container, this.getTagConfig(this.container.nodeName.toLowerCase())) : [];\n }\n /**\n * Loop over the nodes children and generate a\n * list of text nodes and React elements.\n */\n parseNode(e, t) {\n const {\n noHtml: r,\n noHtmlExceptMatchers: n,\n allowElements: s,\n transform: c,\n transformOnlyAllowList: u\n } = this.props;\n let o = [], m = \"\";\n return [...e.childNodes].forEach((f) => {\n if (f.nodeType === $) {\n const l = f.nodeName.toLowerCase(), p = this.getTagConfig(l);\n m && (o.push(m), m = \"\");\n const g = this.applyNodeFilters(l, f);\n if (!g)\n return;\n let E;\n if (c && !(u && !this.isTagAllowed(l))) {\n this.keyIndex += 1;\n const T = this.keyIndex;\n E = this.parseNode(g, p);\n const y = c(g, E, p);\n if (y === null)\n return;\n if (typeof y < \"u\") {\n o.push(/* @__PURE__ */ A.cloneElement(y, {\n key: T\n }));\n return;\n }\n this.keyIndex = T - 1;\n }\n if (this.banned.has(l))\n return;\n if (!(r || n && l !== \"br\") && this.isTagAllowed(l) && (s || this.canRenderChild(t, p))) {\n var i;\n this.keyIndex += 1;\n const T = this.extractAttributes(g), y = {\n tagName: l\n };\n T && (y.attributes = T), p.void && (y.selfClose = p.void), o.push(/* @__PURE__ */ A.createElement(z, {\n ...y,\n key: this.keyIndex\n }, (i = E) !== null && i !== void 0 ? i : this.parseNode(g, p)));\n } else\n o = [...o, ...this.parseNode(g, p.tagName ? p : t)];\n } else if (f.nodeType === fe) {\n const l = r && !n ? f.textContent : (\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n this.applyMatchers(f.textContent || \"\", t)\n );\n Array.isArray(l) ? o = [...o, ...l] : m += l;\n }\n }), m && o.push(m), o;\n }\n /**\n * Deconstruct the string into an array, by replacing custom tokens with React elements,\n * so that React can render it correctly.\n */\n replaceTokens(e, t) {\n if (!e.includes(\"{{{\"))\n return e;\n const r = [];\n let n = e, s = null;\n for (; s = n.match(ge); ) {\n const [c, u] = s, o = s.index, m = c.includes(\"/\");\n if (process.env.NODE_ENV !== \"production\" && !t[u])\n throw new Error(`Token \"${u}\" found but no matching element to replace with.`);\n o > 0 && (r.push(n.slice(0, o)), n = n.slice(o));\n const {\n children: f,\n matcher: i,\n props: l\n } = t[u];\n let p;\n if (m)\n p = c.length, r.push(i.createElement(f, l));\n else {\n const g = n.match(new RegExp(`{{{/${u}}}}`));\n if (process.env.NODE_ENV !== \"production\" && !g)\n throw new Error(`Closing token missing for interpolated element \"${u}\".`);\n p = g.index + g[0].length, r.push(i.createElement(this.replaceTokens(n.slice(c.length, g.index), t), l));\n }\n n = n.slice(p);\n }\n return n.length > 0 && r.push(n), r.length === 0 ? \"\" : r.length === 1 && typeof r[0] == \"string\" ? r[0] : r;\n }\n}\nfunction ye(a) {\n var e;\n const {\n attributes: t,\n className: r,\n containerTagName: n,\n content: s,\n emptyContent: c,\n parsedContent: u,\n tagName: o,\n noWrap: m\n } = a, f = (e = n ?? o) !== null && e !== void 0 ? e : \"span\", i = f === \"fragment\" ? !0 : m;\n let l;\n if (u)\n l = u;\n else {\n const p = new K(s ?? \"\", a).parse();\n p.length > 0 && (l = p);\n }\n return l || (l = c), i ? /* @__PURE__ */ A.createElement(A.Fragment, null, l) : /* @__PURE__ */ A.createElement(z, {\n attributes: t,\n className: r,\n tagName: f\n }, l);\n}\nfunction Ee(a) {\n const {\n attributes: e,\n className: t,\n content: r = \"\",\n disableFilters: n = !1,\n disableMatchers: s = !1,\n emptyContent: c = null,\n filters: u = [],\n matchers: o = [],\n onAfterParse: m = null,\n onBeforeParse: f = null,\n tagName: i = \"span\",\n noWrap: l = !1,\n ...p\n } = a, g = s ? [] : o, E = n ? [] : u, T = f ? [f] : [], y = m ? [m] : [];\n g.forEach((v) => {\n v.onBeforeParse && T.push(v.onBeforeParse.bind(v)), v.onAfterParse && y.push(v.onAfterParse.bind(v));\n });\n const _ = T.reduce((v, M) => {\n const I = M(v, a);\n if (process.env.NODE_ENV !== \"production\" && typeof I != \"string\")\n throw new TypeError(\"Interweave `onBeforeParse` must return a valid HTML string.\");\n return I;\n }, r ?? \"\"), J = new K(_, p, g, E), B = y.reduce((v, M) => {\n const I = M(v, a);\n if (process.env.NODE_ENV !== \"production\" && !Array.isArray(I))\n throw new TypeError(\"Interweave `onAfterParse` must return an array of strings and React elements.\");\n return I;\n }, J.parse());\n return /* @__PURE__ */ A.createElement(ye, {\n attributes: e,\n className: t,\n containerTagName: a.containerTagName,\n emptyContent: c,\n noWrap: l,\n parsedContent: B.length === 0 ? void 0 : B,\n tagName: i\n });\n}\nconst Te = ({ children: a }) => /* @__PURE__ */ W(\"div\", { style: { whiteSpace: \"normal\" }, children: /* @__PURE__ */ W(Ee, { content: typeof a == \"string\" ? a : \"\" }) }), ve = {\n autoConfig: !0\n}, Y = (a, e, t) => {\n var n;\n if (!a.detail.currPath)\n return !1;\n const r = e[a.detail.currPath];\n return r ? ((n = r.renderHtml) == null ? void 0 : n.map((s) => s.toUpperCase()).includes(t)) ?? !1 : !1;\n}, Ne = (a) => {\n const e = [];\n let t = \"\", r = !1;\n for (let n = 0; n < a.length; n++) {\n const s = a[n];\n s === \"<\" ? r ? (e.push(t), t = s) : (r = !0, t = s) : s === \">\" ? (t += s, e.push(t), t = \"\", r = !1) : r ? t += s : e.push(s);\n }\n return t !== \"\" && e.push(t), e;\n}, we = (a) => typeof window.DOMParser < \"u\" ? new DOMParser().parseFromString(a, \"text/html\").body.textContent || \"\" : a.replace(/<\\/?[^>]+(>|$)/g, \"\"), Ae = (a) => {\n const { getFlow: e } = Q(), { messages: t, replaceMessages: r } = Z(), { settings: n } = ee(), { hasChatHistoryLoaded: s } = te(), c = { ...a, ...ve }, u = c.htmlComponent ? c.htmlComponent : Te;\n X(() => {\n var i, l;\n if (s) {\n const p = [...t];\n for (let g = 0; g < p.length && g < (((i = n.chatHistory) == null ? void 0 : i.maxEntries) ?? 30); g++) {\n const E = p[g];\n (l = E.tags) != null && l.includes(\"rcb-html-renderer-plugin:parsed\") && (E.contentWrapper = u);\n }\n r(p);\n }\n }, [s]);\n const o = async (i) => {\n var p;\n const l = (p = i.data.message) == null ? void 0 : p.sender.toUpperCase();\n typeof i.data.message.content == \"string\" && Y(i, e(), l) && (i.type === \"rcb-start-simulate-stream-message\" && (i.data.simulateStreamChunker = Ne), i.data.message.contentWrapper = u, i.data.message.tags || (i.data.message.tags = []), i.data.message.tags.push(\"rcb-html-renderer-plugin:parsed\"));\n }, m = async (i) => {\n Y(i, e(), \"BOT\") && (i.data.textToRead = we(i.data.textToRead));\n };\n L(P.PRE_INJECT_MESSAGE, o), L(P.CHUNK_STREAM_MESSAGE, o), L(P.START_STREAM_MESSAGE, o), L(P.START_SIMULATE_STREAM_MESSAGE, o), L(P.START_SPEAK_AUDIO, m);\n const f = {\n name: \"@rcb-plugins/html-renderer\"\n };\n return c != null && c.autoConfig && (f.settings = {\n event: {\n rcbPreInjectMessage: !0,\n rcbChunkStreamMessage: !0,\n rcbStartSimulateStreamMessage: !0,\n rcbStartStreamMessage: !0,\n rcbStartSpeakAudio: !0\n }\n }), f;\n}, Ie = (a) => () => Ae(a);\nexport {\n Ie as default\n};\n","import { useEffect as gr } from \"react\";\nimport { useFlow as yr, useMessages as xr, useSettings as kr, useChatHistory as br, useOnRcbEvent as Ue, RcbEvent as Ve } from \"react-chatbotify\";\nimport { jsxs as wr, jsx as ae, Fragment as Sr } from \"react/jsx-runtime\";\nfunction Cr(e, n) {\n const t = {};\n return (e[e.length - 1] === \"\" ? [...e, \"\"] : e).join(\n (t.padRight ? \" \" : \"\") + \",\" + (t.padLeft === !1 ? \"\" : \" \")\n ).trim();\n}\nconst Er = /^[$_\\p{ID_Start}][$_\\u{200C}\\u{200D}\\p{ID_Continue}]*$/u, Ir = /^[$_\\p{ID_Start}][-$_\\u{200C}\\u{200D}\\p{ID_Continue}]*$/u, Ar = {};\nfunction Hn(e, n) {\n return (Ar.jsx ? Ir : Er).test(e);\n}\nconst Tr = /[ \\t\\n\\f\\r]/g;\nfunction Pr(e) {\n return typeof e == \"object\" ? e.type === \"text\" ? Un(e.value) : !1 : Un(e);\n}\nfunction Un(e) {\n return e.replace(Tr, \"\") === \"\";\n}\nclass Be {\n /**\n * @constructor\n * @param {Properties} property\n * @param {Normal} normal\n * @param {string} [space]\n */\n constructor(n, t, r) {\n this.property = n, this.normal = t, r && (this.space = r);\n }\n}\nBe.prototype.property = {};\nBe.prototype.normal = {};\nBe.prototype.space = null;\nfunction Et(e, n) {\n const t = {}, r = {};\n let i = -1;\n for (; ++i < e.length; )\n Object.assign(t, e[i].property), Object.assign(r, e[i].normal);\n return new Be(t, r, n);\n}\nfunction hn(e) {\n return e.toLowerCase();\n}\nclass te {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n */\n constructor(n, t) {\n this.property = n, this.attribute = t;\n }\n}\nte.prototype.space = null;\nte.prototype.boolean = !1;\nte.prototype.booleanish = !1;\nte.prototype.overloadedBoolean = !1;\nte.prototype.number = !1;\nte.prototype.commaSeparated = !1;\nte.prototype.spaceSeparated = !1;\nte.prototype.commaOrSpaceSeparated = !1;\nte.prototype.mustUseProperty = !1;\nte.prototype.defined = !1;\nlet zr = 0;\nconst O = be(), $ = be(), It = be(), k = be(), U = be(), Ae = be(), Z = be();\nfunction be() {\n return 2 ** ++zr;\n}\nconst mn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n boolean: O,\n booleanish: $,\n commaOrSpaceSeparated: Z,\n commaSeparated: Ae,\n number: k,\n overloadedBoolean: It,\n spaceSeparated: U\n}, Symbol.toStringTag, { value: \"Module\" })), Ze = Object.keys(mn);\nclass Sn extends te {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n * @param {number|null} [mask]\n * @param {string} [space]\n */\n constructor(n, t, r, i) {\n let l = -1;\n if (super(n, t), Vn(this, \"space\", i), typeof r == \"number\")\n for (; ++l < Ze.length; ) {\n const o = Ze[l];\n Vn(this, Ze[l], (r & mn[o]) === mn[o]);\n }\n }\n}\nSn.prototype.defined = !0;\nfunction Vn(e, n, t) {\n t && (e[n] = t);\n}\nconst Lr = {}.hasOwnProperty;\nfunction Pe(e) {\n const n = {}, t = {};\n let r;\n for (r in e.properties)\n if (Lr.call(e.properties, r)) {\n const i = e.properties[r], l = new Sn(\n r,\n e.transform(e.attributes || {}, r),\n i,\n e.space\n );\n e.mustUseProperty && e.mustUseProperty.includes(r) && (l.mustUseProperty = !0), n[r] = l, t[hn(r)] = r, t[hn(l.attribute)] = r;\n }\n return new Be(n, t, e.space);\n}\nconst At = Pe({\n space: \"xlink\",\n transform(e, n) {\n return \"xlink:\" + n.slice(5).toLowerCase();\n },\n properties: {\n xLinkActuate: null,\n xLinkArcRole: null,\n xLinkHref: null,\n xLinkRole: null,\n xLinkShow: null,\n xLinkTitle: null,\n xLinkType: null\n }\n}), Tt = Pe({\n space: \"xml\",\n transform(e, n) {\n return \"xml:\" + n.slice(3).toLowerCase();\n },\n properties: { xmlLang: null, xmlBase: null, xmlSpace: null }\n});\nfunction Pt(e, n) {\n return n in e ? e[n] : n;\n}\nfunction zt(e, n) {\n return Pt(e, n.toLowerCase());\n}\nconst Lt = Pe({\n space: \"xmlns\",\n attributes: { xmlnsxlink: \"xmlns:xlink\" },\n transform: zt,\n properties: { xmlns: null, xmlnsXLink: null }\n}), vt = Pe({\n transform(e, n) {\n return n === \"role\" ? n : \"aria-\" + n.slice(4).toLowerCase();\n },\n properties: {\n ariaActiveDescendant: null,\n ariaAtomic: $,\n ariaAutoComplete: null,\n ariaBusy: $,\n ariaChecked: $,\n ariaColCount: k,\n ariaColIndex: k,\n ariaColSpan: k,\n ariaControls: U,\n ariaCurrent: null,\n ariaDescribedBy: U,\n ariaDetails: null,\n ariaDisabled: $,\n ariaDropEffect: U,\n ariaErrorMessage: null,\n ariaExpanded: $,\n ariaFlowTo: U,\n ariaGrabbed: $,\n ariaHasPopup: null,\n ariaHidden: $,\n ariaInvalid: null,\n ariaKeyShortcuts: null,\n ariaLabel: null,\n ariaLabelledBy: U,\n ariaLevel: k,\n ariaLive: null,\n ariaModal: $,\n ariaMultiLine: $,\n ariaMultiSelectable: $,\n ariaOrientation: null,\n ariaOwns: U,\n ariaPlaceholder: null,\n ariaPosInSet: k,\n ariaPressed: $,\n ariaReadOnly: $,\n ariaRelevant: null,\n ariaRequired: $,\n ariaRoleDescription: U,\n ariaRowCount: k,\n ariaRowIndex: k,\n ariaRowSpan: k,\n ariaSelected: $,\n ariaSetSize: k,\n ariaSort: null,\n ariaValueMax: k,\n ariaValueMin: k,\n ariaValueNow: k,\n ariaValueText: null,\n role: null\n }\n}), vr = Pe({\n space: \"html\",\n attributes: {\n acceptcharset: \"accept-charset\",\n classname: \"class\",\n htmlfor: \"for\",\n httpequiv: \"http-equiv\"\n },\n transform: zt,\n mustUseProperty: [\"checked\", \"multiple\", \"muted\", \"selected\"],\n properties: {\n // Standard Properties.\n abbr: null,\n accept: Ae,\n acceptCharset: U,\n accessKey: U,\n action: null,\n allow: null,\n allowFullScreen: O,\n allowPaymentRequest: O,\n allowUserMedia: O,\n alt: null,\n as: null,\n async: O,\n autoCapitalize: null,\n autoComplete: U,\n autoFocus: O,\n autoPlay: O,\n blocking: U,\n capture: null,\n charSet: null,\n checked: O,\n cite: null,\n className: U,\n cols: k,\n colSpan: null,\n content: null,\n contentEditable: $,\n controls: O,\n controlsList: U,\n coords: k | Ae,\n crossOrigin: null,\n data: null,\n dateTime: null,\n decoding: null,\n default: O,\n defer: O,\n dir: null,\n dirName: null,\n disabled: O,\n download: It,\n draggable: $,\n encType: null,\n enterKeyHint: null,\n fetchPriority: null,\n form: null,\n formAction: null,\n formEncType: null,\n formMethod: null,\n formNoValidate: O,\n formTarget: null,\n headers: U,\n height: k,\n hidden: O,\n high: k,\n href: null,\n hrefLang: null,\n htmlFor: U,\n httpEquiv: U,\n id: null,\n imageSizes: null,\n imageSrcSet: null,\n inert: O,\n inputMode: null,\n integrity: null,\n is: null,\n isMap: O,\n itemId: null,\n itemProp: U,\n itemRef: U,\n itemScope: O,\n itemType: U,\n kind: null,\n label: null,\n lang: null,\n language: null,\n list: null,\n loading: null,\n loop: O,\n low: k,\n manifest: null,\n max: null,\n maxLength: k,\n media: null,\n method: null,\n min: null,\n minLength: k,\n multiple: O,\n muted: O,\n name: null,\n nonce: null,\n noModule: O,\n noValidate: O,\n onAbort: null,\n onAfterPrint: null,\n onAuxClick: null,\n onBeforeMatch: null,\n onBeforePrint: null,\n onBeforeToggle: null,\n onBeforeUnload: null,\n onBlur: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onContextLost: null,\n onContextMenu: null,\n onContextRestored: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFormData: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLanguageChange: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadEnd: null,\n onLoadStart: null,\n onMessage: null,\n onMessageError: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRejectionHandled: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onScrollEnd: null,\n onSecurityPolicyViolation: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onSlotChange: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnhandledRejection: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onWheel: null,\n open: O,\n optimum: k,\n pattern: null,\n ping: U,\n placeholder: null,\n playsInline: O,\n popover: null,\n popoverTarget: null,\n popoverTargetAction: null,\n poster: null,\n preload: null,\n readOnly: O,\n referrerPolicy: null,\n rel: U,\n required: O,\n reversed: O,\n rows: k,\n rowSpan: k,\n sandbox: U,\n scope: null,\n scoped: O,\n seamless: O,\n selected: O,\n shadowRootClonable: O,\n shadowRootDelegatesFocus: O,\n shadowRootMode: null,\n shape: null,\n size: k,\n sizes: null,\n slot: null,\n span: k,\n spellCheck: $,\n src: null,\n srcDoc: null,\n srcLang: null,\n srcSet: null,\n start: k,\n step: null,\n style: null,\n tabIndex: k,\n target: null,\n title: null,\n translate: null,\n type: null,\n typeMustMatch: O,\n useMap: null,\n value: $,\n width: k,\n wrap: null,\n writingSuggestions: null,\n // Legacy.\n // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis\n align: null,\n // Several. Use CSS `text-align` instead,\n aLink: null,\n // `<body>`. Use CSS `a:active {color}` instead\n archive: U,\n // `<object>`. List of URIs to archives\n axis: null,\n // `<td>` and `<th>`. Use `scope` on `<th>`\n background: null,\n // `<body>`. Use CSS `background-image` instead\n bgColor: null,\n // `<body>` and table elements. Use CSS `background-color` instead\n border: k,\n // `<table>`. Use CSS `border-width` instead,\n borderColor: null,\n // `<table>`. Use CSS `border-color` instead,\n bottomMargin: k,\n // `<body>`\n cellPadding: null,\n // `<table>`\n cellSpacing: null,\n // `<table>`\n char: null,\n // Several table elements. When `align=char`, sets the character to align on\n charOff: null,\n // Several table elements. When `char`, offsets the alignment\n classId: null,\n // `<object>`\n clear: null,\n // `<br>`. Use CSS `clear` instead\n code: null,\n // `<object>`\n codeBase: null,\n // `<object>`\n codeType: null,\n // `<object>`\n color: null,\n // `<font>` and `<hr>`. Use CSS instead\n compact: O,\n // Lists. Use CSS to reduce space between items instead\n declare: O,\n // `<object>`\n event: null,\n // `<script>`\n face: null,\n // `<font>`. Use CSS instead\n frame: null,\n // `<table>`\n frameBorder: null,\n // `<iframe>`. Use CSS `border` instead\n hSpace: k,\n // `<img>` and `<object>`\n leftMargin: k,\n // `<body>`\n link: null,\n // `<body>`. Use CSS `a:link {color: *}` instead\n longDesc: null,\n // `<frame>`, `<iframe>`, and `<img>`. Use an `<a>`\n lowSrc: null,\n // `<img>`. Use a `<picture>`\n marginHeight: k,\n // `<body>`\n marginWidth: k,\n // `<body>`\n noResize: O,\n // `<frame>`\n noHref: O,\n // `<area>`. Use no href instead of an explicit `nohref`\n noShade: O,\n // `<hr>`. Use background-color and height instead of borders\n noWrap: O,\n // `<td>` and `<th>`\n object: null,\n // `<applet>`\n profile: null,\n // `<head>`\n prompt: null,\n // `<isindex>`\n rev: null,\n // `<link>`\n rightMargin: k,\n // `<body>`\n rules: null,\n // `<table>`\n scheme: null,\n // `<meta>`\n scrolling: $,\n // `<frame>`. Use overflow in the child context\n standby: null,\n // `<object>`\n summary: null,\n // `<table>`\n text: null,\n // `<body>`. Use CSS `color` instead\n topMargin: k,\n // `<body>`\n valueType: null,\n // `<param>`\n version: null,\n // `<html>`. Use a doctype.\n vAlign: null,\n // Several. Use CSS `vertical-align` instead\n vLink: null,\n // `<body>`. Use CSS `a:visited {color}` instead\n vSpace: k,\n // `<img>` and `<object>`\n // Non-standard Properties.\n allowTransparency: null,\n autoCorrect: null,\n autoSave: null,\n disablePictureInPicture: O,\n disableRemotePlayback: O,\n prefix: null,\n property: null,\n results: k,\n security: null,\n unselectable: null\n }\n}), Dr = Pe({\n space: \"svg\",\n attributes: {\n accentHeight: \"accent-height\",\n alignmentBaseline: \"alignment-baseline\",\n arabicForm: \"arabic-form\",\n baselineShift: \"baseline-shift\",\n capHeight: \"cap-height\",\n className: \"class\",\n clipPath: \"clip-path\",\n clipRule: \"clip-rule\",\n colorInterpolation: \"color-interpolation\",\n colorInterpolationFilters: \"color-interpolation-filters\",\n colorProfile: \"color-profile\",\n colorRendering: \"color-rendering\",\n crossOrigin: \"crossorigin\",\n dataType: \"datatype\",\n dominantBaseline: \"dominant-baseline\",\n enableBackground: \"enable-background\",\n fillOpacity: \"fill-opacity\",\n fillRule: \"fill-rule\",\n floodColor: \"flood-color\",\n floodOpacity: \"flood-opacity\",\n fontFamily: \"font-family\",\n fontSize: \"font-size\",\n fontSizeAdjust: \"font-size-adjust\",\n fontStretch: \"font-stretch\",\n fontStyle: \"font-style\",\n fontVariant: \"font-variant\",\n fontWeight: \"font-weight\",\n glyphName: \"glyph-name\",\n glyphOrientationHorizontal: \"glyph-orientation-horizontal\",\n glyphOrientationVertical: \"glyph-orientation-vertical\",\n hrefLang: \"hreflang\",\n horizAdvX: \"horiz-adv-x\",\n horizOriginX: \"horiz-origin-x\",\n horizOriginY: \"horiz-origin-y\",\n imageRendering: \"image-rendering\",\n letterSpacing: \"letter-spacing\",\n lightingColor: \"lighting-color\",\n markerEnd: \"marker-end\",\n markerMid: \"marker-mid\",\n markerStart: \"marker-start\",\n navDown: \"nav-down\",\n navDownLeft: \"nav-down-left\",\n navDownRight: \"nav-down-right\",\n navLeft: \"nav-left\",\n navNext: \"nav-next\",\n navPrev: \"nav-prev\",\n navRight: \"nav-right\",\n navUp: \"nav-up\",\n navUpLeft: \"nav-up-left\",\n navUpRight: \"nav-up-right\",\n onAbort: \"onabort\",\n onActivate: \"onactivate\",\n onAfterPrint: \"onafterprint\",\n onBeforePrint: \"onbeforeprint\",\n onBegin: \"onbegin\",\n onCancel: \"oncancel\",\n onCanPlay: \"oncanplay\",\n onCanPlayThrough: \"oncanplaythrough\",\n onChange: \"onchange\",\n onClick: \"onclick\",\n onClose: \"onclose\",\n onCopy: \"oncopy\",\n onCueChange: \"oncuechange\",\n onCut: \"oncut\",\n onDblClick: \"ondblclick\",\n onDrag: \"ondrag\",\n onDragEnd: \"ondragend\",\n onDragEnter: \"ondragenter\",\n onDragExit: \"ondragexit\",\n onDragLeave: \"ondragleave\",\n onDragOver: \"ondragover\",\n onDragStart: \"ondragstart\",\n onDrop: \"ondrop\",\n onDurationChange: \"ondurationchange\",\n onEmptied: \"onemptied\",\n onEnd: \"onend\",\n onEnded: \"onended\",\n onError: \"onerror\",\n onFocus: \"onfocus\",\n onFocusIn: \"onfocusin\",\n onFocusOut: \"onfocusout\",\n onHashChange: \"onhashchange\",\n onInput: \"oninput\",\n onInvalid: \"oninvalid\",\n onKeyDown: \"onkeydown\",\n onKeyPress: \"onkeypress\",\n onKeyUp: \"onkeyup\",\n onLoad: \"onload\",\n onLoadedData: \"onloadeddata\",\n onLoadedMetadata: \"onloadedmetadata\",\n onLoadStart: \"onloadstart\",\n onMessage: \"onmessage\",\n onMouseDown: \"onmousedown\",\n onMouseEnter: \"onmouseenter\",\n onMouseLeave: \"onmouseleave\",\n onMouseMove: \"onmousemove\",\n onMouseOut: \"onmouseout\",\n onMouseOver: \"onmouseover\",\n onMouseUp: \"onmouseup\",\n onMouseWheel: \"onmousewheel\",\n onOffline: \"onoffline\",\n onOnline: \"ononline\",\n onPageHide: \"onpagehide\",\n onPageShow: \"onpageshow\",\n onPaste: \"onpaste\",\n onPause: \"onpause\",\n onPlay: \"onplay\",\n onPlaying: \"onplaying\",\n onPopState: \"onpopstate\",\n onProgress: \"onprogress\",\n onRateChange: \"onratechange\",\n onRepeat: \"onrepeat\",\n onReset: \"onreset\",\n onResize: \"onresize\",\n onScroll: \"onscroll\",\n onSeeked: \"onseeked\",\n onSeeking: \"onseeking\",\n onSelect: \"onselect\",\n onShow: \"onshow\",\n onStalled: \"onstalled\",\n onStorage: \"onstorage\",\n onSubmit: \"onsubmit\",\n onSuspend: \"onsuspend\",\n onTimeUpdate: \"ontimeupdate\",\n onToggle: \"ontoggle\",\n onUnload: \"onunload\",\n onVolumeChange: \"onvolumechange\",\n onWaiting: \"onwaiting\",\n onZoom: \"onzoom\",\n overlinePosition: \"overline-position\",\n overlineThickness: \"overline-thickness\",\n paintOrder: \"paint-order\",\n panose1: \"panose-1\",\n pointerEvents: \"pointer-events\",\n referrerPolicy: \"referrerpolicy\",\n renderingIntent: \"rendering-intent\",\n shapeRendering: \"shape-rendering\",\n stopColor: \"stop-color\",\n stopOpacity: \"stop-opacity\",\n strikethroughPosition: \"strikethrough-position\",\n strikethroughThickness: \"strikethrough-thickness\",\n strokeDashArray: \"stroke-dasharray\",\n strokeDashOffset: \"stroke-dashoffset\",\n strokeLineCap: \"stroke-linecap\",\n strokeLineJoin: \"stroke-linejoin\",\n strokeMiterLimit: \"stroke-miterlimit\",\n strokeOpacity: \"stroke-opacity\",\n strokeWidth: \"stroke-width\",\n tabIndex: \"tabindex\",\n textAnchor: \"text-anchor\",\n textDecoration: \"text-decoration\",\n textRendering: \"text-rendering\",\n transformOrigin: \"transform-origin\",\n typeOf: \"typeof\",\n underlinePosition: \"underline-position\",\n underlineThickness: \"underline-thickness\",\n unicodeBidi: \"unicode-bidi\",\n unicodeRange: \"unicode-range\",\n unitsPerEm: \"units-per-em\",\n vAlphabetic: \"v-alphabetic\",\n vHanging: \"v-hanging\",\n vIdeographic: \"v-ideographic\",\n vMathematical: \"v-mathematical\",\n vectorEffect: \"vector-effect\",\n vertAdvY: \"vert-adv-y\",\n vertOriginX: \"vert-origin-x\",\n vertOriginY: \"vert-origin-y\",\n wordSpacing: \"word-spacing\",\n writingMode: \"writing-mode\",\n xHeight: \"x-height\",\n // These were camelcased in Tiny. Now lowercased in SVG 2\n playbackOrder: \"playbackorder\",\n timelineBegin: \"timelinebegin\"\n },\n transform: Pt,\n properties: {\n about: Z,\n accentHeight: k,\n accumulate: null,\n additive: null,\n alignmentBaseline: null,\n alphabetic: k,\n amplitude: k,\n arabicForm: null,\n ascent: k,\n attributeName: null,\n attributeType: null,\n azimuth: k,\n bandwidth: null,\n baselineShift: null,\n baseFrequency: null,\n baseProfile: null,\n bbox: null,\n begin: null,\n bias: k,\n by: null,\n calcMode: null,\n capHeight: k,\n className: U,\n clip: null,\n clipPath: null,\n clipPathUnits: null,\n clipRule: null,\n color: null,\n colorInterpolation: null,\n colorInterpolationFilters: null,\n colorProfile: null,\n colorRendering: null,\n content: null,\n contentScriptType: null,\n contentStyleType: null,\n crossOrigin: null,\n cursor: null,\n cx: null,\n cy: null,\n d: null,\n dataType: null,\n defaultAction: null,\n descent: k,\n diffuseConstant: k,\n direction: null,\n display: null,\n dur: null,\n divisor: k,\n dominantBaseline: null,\n download: O,\n dx: null,\n dy: null,\n edgeMode: null,\n editable: null,\n elevation: k,\n enableBackground: null,\n end: null,\n event: null,\n exponent: k,\n externalResourcesRequired: null,\n fill: null,\n fillOpacity: k,\n fillRule: null,\n filter: null,\n filterRes: null,\n filterUnits: null,\n floodColor: null,\n floodOpacity: null,\n focusable: null,\n focusHighlight: null,\n fontFamily: null,\n fontSize: null,\n fontSizeAdjust: null,\n fontStretch: null,\n fontStyle: null,\n fontVariant: null,\n fontWeight: null,\n format: null,\n fr: null,\n from: null,\n fx: null,\n fy: null,\n g1: Ae,\n g2: Ae,\n glyphName: Ae,\n glyphOrientationHorizontal: null,\n glyphOrientationVertical: null,\n glyphRef: null,\n gradientTransform: null,\n gradientUnits: null,\n handler: null,\n hanging: k,\n hatchContentUnits: null,\n hatchUnits: null,\n height: null,\n href: null,\n hrefLang: null,\n horizAdvX: k,\n horizOriginX: k,\n horizOriginY: k,\n id: null,\n ideographic: k,\n imageRendering: null,\n initialVisibility: null,\n in: null,\n in2: null,\n intercept: k,\n k,\n k1: k,\n k2: k,\n k3: k,\n k4: k,\n kernelMatrix: Z,\n kernelUnitLength: null,\n keyPoints: null,\n // SEMI_COLON_SEPARATED\n keySplines: null,\n // SEMI_COLON_SEPARATED\n keyTimes: null,\n // SEMI_COLON_SEPARATED\n kerning: null,\n lang: null,\n lengthAdjust: null,\n letterSpacing: null,\n lightingColor: null,\n limitingConeAngle: k,\n local: null,\n markerEnd: null,\n markerMid: null,\n markerStart: null,\n markerHeight: null,\n markerUnits: null,\n markerWidth: null,\n mask: null,\n maskContentUnits: null,\n maskUnits: null,\n mathematical: null,\n max: null,\n media: null,\n mediaCharacterEncoding: null,\n mediaContentEncodings: null,\n mediaSize: k,\n mediaTime: null,\n method: null,\n min: null,\n mode: null,\n name: null,\n navDown: null,\n navDownLeft: null,\n navDownRight: null,\n navLeft: null,\n navNext: null,\n navPrev: null,\n navRight: null,\n navUp: null,\n navUpLeft: null,\n navUpRight: null,\n numOctaves: null,\n observer: null,\n offset: null,\n onAbort: null,\n onActivate: null,\n onAfterPrint: null,\n onBeforePrint: null,\n onBegin: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnd: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFocusIn: null,\n onFocusOut: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadStart: null,\n onMessage: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onMouseWheel: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRepeat: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onShow: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onZoom: null,\n opacity: null,\n operator: null,\n order: null,\n orient: null,\n orientation: null,\n origin: null,\n overflow: null,\n overlay: null,\n overlinePosition: k,\n overlineThickness: k,\n paintOrder: null,\n panose1: null,\n path: null,\n pathLength: k,\n patternContentUnits: null,\n patternTransform: null,\n patternUnits: null,\n phase: null,\n ping: U,\n pitch: null,\n playbackOrder: null,\n pointerEvents: null,\n points: null,\n pointsAtX: k,\n pointsAtY: k,\n pointsAtZ: k,\n preserveAlpha: null,\n preserveAspectRatio: null,\n primitiveUnits: null,\n propagate: null,\n property: Z,\n r: null,\n radius: null,\n referrerPolicy: null,\n refX: null,\n refY: null,\n rel: Z,\n rev: Z,\n renderingIntent: null,\n repeatCount: null,\n repeatDur: null,\n requiredExtensions: Z,\n requiredFeatures: Z,\n requiredFonts: Z,\n requiredFormats: Z,\n resource: null,\n restart: null,\n result: null,\n rotate: null,\n rx: null,\n ry: null,\n scale: null,\n seed: null,\n shapeRendering: null,\n side: null,\n slope: null,\n snapshotTime: null,\n specularConstant: k,\n specularExponent: k,\n spreadMethod: null,\n spacing: null,\n startOffset: null,\n stdDeviation: null,\n stemh: null,\n stemv: null,\n stitchTiles: null,\n stopColor: null,\n stopOpacity: null,\n strikethroughPosition: k,\n strikethroughThickness: k,\n string: null,\n stroke: null,\n strokeDashArray: Z,\n strokeDashOffset: null,\n strokeLineCap: null,\n strokeLineJoin: null,\n strokeMiterLimit: k,\n strokeOpacity: k,\n strokeWidth: null,\n style: null,\n surfaceScale: k,\n syncBehavior: null,\n syncBehaviorDefault: null,\n syncMaster: null,\n syncTolerance: null,\n syncToleranceDefault: null,\n systemLanguage: Z,\n tabIndex: k,\n tableValues: null,\n target: null,\n targetX: k,\n targetY: k,\n textAnchor: null,\n textDecoration: null,\n textRendering: null,\n textLength: null,\n timelineBegin: null,\n title: null,\n transformBehavior: null,\n type: null,\n typeOf: Z,\n to: null,\n transform: null,\n transformOrigin: null,\n u1: null,\n u2: null,\n underlinePosition: k,\n underlineThickness: k,\n unicode: null,\n unicodeBidi: null,\n unicodeRange: null,\n unitsPerEm: k,\n values: null,\n vAlphabetic: k,\n vMathematical: k,\n vectorEffect: null,\n vHanging: k,\n vIdeographic: k,\n version: null,\n vertAdvY: k,\n vertOriginX: k,\n vertOriginY: k,\n viewBox: null,\n viewTarget: null,\n visibility: null,\n width: null,\n widths: null,\n wordSpacing: null,\n writingMode: null,\n x: null,\n x1: null,\n x2: null,\n xChannelSelector: null,\n xHeight: k,\n y: null,\n y1: null,\n y2: null,\n yChannelSelector: null,\n z: null,\n zoomAndPan: null\n }\n}), Or = /^data[-\\w.:]+$/i, qn = /-[a-z]/g, Rr = /[A-Z]/g;\nfunction Fr(e, n) {\n const t = hn(n);\n let r = n, i = te;\n if (t in e.normal)\n return e.property[e.normal[t]];\n if (t.length > 4 && t.slice(0, 4) === \"data\" && Or.test(n)) {\n if (n.charAt(4) === \"-\") {\n const l = n.slice(5).replace(qn, Mr);\n r = \"data\" + l.charAt(0).toUpperCase() + l.slice(1);\n } else {\n const l = n.slice(4);\n if (!qn.test(l)) {\n let o = l.replace(Rr, Nr);\n o.charAt(0) !== \"-\" && (o = \"-\" + o), n = \"data\" + o;\n }\n }\n i = Sn;\n }\n return new i(r, n);\n}\nfunction Nr(e) {\n return \"-\" + e.toLowerCase();\n}\nfunction Mr(e) {\n return e.charAt(1).toUpperCase();\n}\nconst _r = {\n classId: \"classID\",\n dataType: \"datatype\",\n itemId: \"itemID\",\n strokeDashArray: \"strokeDasharray\",\n strokeDashOffset: \"strokeDashoffset\",\n strokeLineCap: \"strokeLinecap\",\n strokeLineJoin: \"strokeLinejoin\",\n strokeMiterLimit: \"strokeMiterlimit\",\n typeOf: \"typeof\",\n xLinkActuate: \"xlinkActuate\",\n xLinkArcRole: \"xlinkArcrole\",\n xLinkHref: \"xlinkHref\",\n xLinkRole: \"xlinkRole\",\n xLinkShow: \"xlinkShow\",\n xLinkTitle: \"xlinkTitle\",\n xLinkType: \"xlinkType\",\n xmlnsXLink: \"xmlnsXlink\"\n}, Br = Et([Tt, At, Lt, vt, vr], \"html\"), Cn = Et([Tt, At, Lt, vt, Dr], \"svg\");\nfunction jr(e) {\n return e.join(\" \").trim();\n}\nfunction Dt(e) {\n return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, \"default\") ? e.default : e;\n}\nvar Ee = {}, en, $n;\nfunction Hr() {\n if ($n) return en;\n $n = 1;\n var e = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g, n = /\\n/g, t = /^\\s*/, r = /^(\\*?[-#/*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/, i = /^:\\s*/, l = /^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^)]*?\\)|[^};])+)/, o = /^[;\\s]*/, a = /^\\s+|\\s+$/g, s = `\n`, u = \"/\", c = \"*\", f = \"\", d = \"comment\", p = \"declaration\";\n en = function(w, A) {\n if (typeof w != \"string\")\n throw new TypeError(\"First argument must be a string\");\n if (!w) return [];\n A = A || {};\n var x = 1, C = 1;\n function E(P) {\n var I = P.match(n);\n I && (x += I.length);\n var v = P.lastIndexOf(s);\n C = ~v ? P.length - v : C + P.length;\n }\n function N() {\n var P = { line: x, column: C };\n return function(I) {\n return I.position = new R(P), q(), I;\n };\n }\n function R(P) {\n this.start = P, this.end = { line: x, column: C }, this.source = A.source;\n }\n R.prototype.content = w;\n function y(P) {\n var I = new Error(\n A.source + \":\" + x + \":\" + C + \": \" + P\n );\n if (I.reason = P, I.filename = A.source, I.line = x, I.column = C, I.source = w, !A.silent) throw I;\n }\n function F(P) {\n var I = P.exec(w);\n if (I) {\n var v = I[0];\n return E(v), w = w.slice(v.length), I;\n }\n }\n function q() {\n F(t);\n }\n function B(P) {\n var I;\n for (P = P || []; I = j(); )\n I !== !1 && P.push(I);\n return P;\n }\n function j() {\n var P = N();\n if (!(u != w.charAt(0) || c != w.charAt(1))) {\n for (var I = 2; f != w.charAt(I) && (c != w.charAt(I) || u != w.charAt(I + 1)); )\n ++I;\n if (I += 2, f === w.charAt(I - 1))\n return y(\"End of comment missing\");\n var v = w.slice(2, I - 2);\n return C += 2, E(v), w = w.slice(I), C += 2, P({\n type: d,\n comment: v\n });\n }\n }\n function z() {\n var P = N(), I = F(r);\n if (I) {\n if (j(), !F(i)) return y(\"property missing ':'\");\n var v = F(l), W = P({\n type: p,\n property: b(I[0].replace(e, f)),\n value: v ? b(v[0].replace(e, f)) : f\n });\n return F(o), W;\n }\n }\n function T() {\n var P = [];\n B(P);\n for (var I; I = z(); )\n I !== !1 && (P.push(I), B(P));\n return P;\n }\n return q(), T();\n };\n function b(w) {\n return w ? w.replace(a, f) : f;\n }\n return en;\n}\nvar Wn;\nfunction Ur() {\n if (Wn) return Ee;\n Wn = 1;\n var e = Ee && Ee.__importDefault || function(r) {\n return r && r.__esModule ? r : { default: r };\n };\n Object.defineProperty(Ee, \"__esModule\", { value: !0 }), Ee.default = t;\n var n = e(Hr());\n function t(r, i) {\n var l = null;\n if (!r || typeof r != \"string\")\n return l;\n var o = (0, n.default)(r), a = typeof i == \"function\";\n return o.forEach(function(s) {\n if (s.type === \"declaration\") {\n var u = s.property, c = s.value;\n a ? i(u, c, s) : c && (l = l || {}, l[u] = c);\n }\n }), l;\n }\n return Ee;\n}\nvar Vr = Ur();\nconst Yn = /* @__PURE__ */ Dt(Vr), qr = Yn.default || Yn, Ot = Rt(\"end\"), En = Rt(\"start\");\nfunction Rt(e) {\n return n;\n function n(t) {\n const r = t && t.position && t.position[e] || {};\n if (typeof r.line == \"number\" && r.line > 0 && typeof r.column == \"number\" && r.column > 0)\n return {\n line: r.line,\n column: r.column,\n offset: typeof r.offset == \"number\" && r.offset > -1 ? r.offset : void 0\n };\n }\n}\nfunction $r(e) {\n const n = En(e), t = Ot(e);\n if (n && t)\n return { start: n, end: t };\n}\nfunction Fe(e) {\n return !e || typeof e != \"object\" ? \"\" : \"position\" in e || \"type\" in e ? Qn(e.position) : \"start\" in e || \"end\" in e ? Qn(e) : \"line\" in e || \"column\" in e ? dn(e) : \"\";\n}\nfunction dn(e) {\n return Xn(e && e.line) + \":\" + Xn(e && e.column);\n}\nfunction Qn(e) {\n return dn(e && e.start) + \"-\" + dn(e && e.end);\n}\nfunction Xn(e) {\n return e && typeof e == \"number\" ? e : 1;\n}\nclass X extends Error {\n /**\n * Create a message for `reason`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {Options | null | undefined} [options]\n * @returns\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | Options | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns\n * Instance of `VFileMessage`.\n */\n // eslint-disable-next-line complexity\n constructor(n, t, r) {\n super(), typeof t == \"string\" && (r = t, t = void 0);\n let i = \"\", l = {}, o = !1;\n if (t && (\"line\" in t && \"column\" in t ? l = { place: t } : \"start\" in t && \"end\" in t ? l = { place: t } : \"type\" in t ? l = {\n ancestors: [t],\n place: t.position\n } : l = { ...t }), typeof n == \"string\" ? i = n : !l.cause && n && (o = !0, i = n.message, l.cause = n), !l.ruleId && !l.source && typeof r == \"string\") {\n const s = r.indexOf(\":\");\n s === -1 ? l.ruleId = r : (l.source = r.slice(0, s), l.ruleId = r.slice(s + 1));\n }\n if (!l.place && l.ancestors && l.ancestors) {\n const s = l.ancestors[l.ancestors.length - 1];\n s && (l.place = s.position);\n }\n const a = l.place && \"start\" in l.place ? l.place.start : l.place;\n this.ancestors = l.ancestors || void 0, this.cause = l.cause || void 0, this.column = a ? a.column : void 0, this.fatal = void 0, this.file, this.message = i, this.line = a ? a.line : void 0, this.name = Fe(l.place) || \"1:1\", this.place = l.place || void 0, this.reason = this.message, this.ruleId = l.ruleId || void 0, this.source = l.source || void 0, this.stack = o && l.cause && typeof l.cause.stack == \"string\" ? l.cause.stack : \"\", this.actual, this.expected, this.note, this.url;\n }\n}\nX.prototype.file = \"\";\nX.prototype.name = \"\";\nX.prototype.reason = \"\";\nX.prototype.message = \"\";\nX.prototype.stack = \"\";\nX.prototype.column = void 0;\nX.prototype.line = void 0;\nX.prototype.ancestors = void 0;\nX.prototype.cause = void 0;\nX.prototype.fatal = void 0;\nX.prototype.place = void 0;\nX.prototype.ruleId = void 0;\nX.prototype.source = void 0;\nconst In = {}.hasOwnProperty, Wr = /* @__PURE__ */ new Map(), Yr = /[A-Z]/g, Qr = /-([a-z])/g, Xr = /* @__PURE__ */ new Set([\"table\", \"tbody\", \"thead\", \"tfoot\", \"tr\"]), Kr = /* @__PURE__ */ new Set([\"td\", \"th\"]), Ft = \"https://github.com/syntax-tree/hast-util-to-jsx-runtime\";\nfunction Gr(e, n) {\n if (!n || n.Fragment === void 0)\n throw new TypeError(\"Expected `Fragment` in options\");\n const t = n.filePath || void 0;\n let r;\n if (n.development) {\n if (typeof n.jsxDEV != \"function\")\n throw new TypeError(\n \"Expected `jsxDEV` in options when `development: true`\"\n );\n r = li(t, n.jsxDEV);\n } else {\n if (typeof n.jsx != \"function\")\n throw new TypeError(\"Expected `jsx` in production options\");\n if (typeof n.jsxs != \"function\")\n throw new TypeError(\"Expected `jsxs` in production options\");\n r = ii(t, n.jsx, n.jsxs);\n }\n const i = {\n Fragment: n.Fragment,\n ancestors: [],\n components: n.components || {},\n create: r,\n elementAttributeNameCase: n.elementAttributeNameCase || \"react\",\n evaluater: n.createEvaluater ? n.createEvaluater() : void 0,\n filePath: t,\n ignoreInvalidStyle: n.ignoreInvalidStyle || !1,\n passKeys: n.passKeys !== !1,\n passNode: n.passNode || !1,\n schema: n.space === \"svg\" ? Cn : Br,\n stylePropertyNameCase: n.stylePropertyNameCase || \"dom\",\n tableCellAlignToStyle: n.tableCellAlignToStyle !== !1\n }, l = Nt(i, e, void 0);\n return l && typeof l != \"string\" ? l : i.create(\n e,\n i.Fragment,\n { children: l || void 0 },\n void 0\n );\n}\nfunction Nt(e, n, t) {\n if (n.type === \"element\")\n return Jr(e, n, t);\n if (n.type === \"mdxFlowExpression\" || n.type === \"mdxTextExpression\")\n return Zr(e, n);\n if (n.type === \"mdxJsxFlowElement\" || n.type === \"mdxJsxTextElement\")\n return ni(e, n, t);\n if (n.type === \"mdxjsEsm\")\n return ei(e, n);\n if (n.type === \"root\")\n return ti(e, n, t);\n if (n.type === \"text\")\n return ri(e, n);\n}\nfunction Jr(e, n, t) {\n const r = e.schema;\n let i = r;\n n.tagName.toLowerCase() === \"svg\" && r.space === \"html\" && (i = Cn, e.schema = i), e.ancestors.push(n);\n const l = _t(e, n.tagName, !1), o = oi(e, n);\n let a = Tn(e, n);\n return Xr.has(n.tagName) && (a = a.filter(function(s) {\n return typeof s == \"string\" ? !Pr(s) : !0;\n })), Mt(e, o, l, n), An(o, a), e.ancestors.pop(), e.schema = r, e.create(n, l, o, t);\n}\nfunction Zr(e, n) {\n if (n.data && n.data.estree && e.evaluater) {\n const r = n.data.estree.body[0];\n return r.type, /** @type {Child | undefined} */\n e.evaluater.evaluateExpression(r.expression);\n }\n _e(e, n.position);\n}\nfunction ei(e, n) {\n if (n.data && n.data.estree && e.evaluater)\n return (\n /** @type {Child | undefined} */\n e.evaluater.evaluateProgram(n.data.estree)\n );\n _e(e, n.position);\n}\nfunction ni(e, n, t) {\n const r = e.schema;\n let i = r;\n n.name === \"svg\" && r.space === \"html\" && (i = Cn, e.schema = i), e.ancestors.push(n);\n const l = n.name === null ? e.Fragment : _t(e, n.name, !0), o = ai(e, n), a = Tn(e, n);\n return Mt(e, o, l, n), An(o, a), e.ancestors.pop(), e.schema = r, e.create(n, l, o, t);\n}\nfunction ti(e, n, t) {\n const r = {};\n return An(r, Tn(e, n)), e.create(n, e.Fragment, r, t);\n}\nfunction ri(e, n) {\n return n.value;\n}\nfunction Mt(e, n, t, r) {\n typeof t != \"string\" && t !== e.Fragment && e.passNode && (n.node = r);\n}\nfunction An(e, n) {\n if (n.length > 0) {\n const t = n.length > 1 ? n : n[0];\n t && (e.children = t);\n }\n}\nfunction ii(e, n, t) {\n return r;\n function r(i, l, o, a) {\n const u = Array.isArray(o.children) ? t : n;\n return a ? u(l, o, a) : u(l, o);\n }\n}\nfunction li(e, n) {\n return t;\n function t(r, i, l, o) {\n const a = Array.isArray(l.children), s = En(r);\n return n(\n i,\n l,\n o,\n a,\n {\n columnNumber: s ? s.column - 1 : void 0,\n fileName: e,\n lineNumber: s ? s.line : void 0\n },\n void 0\n );\n }\n}\nfunction oi(e, n) {\n const t = {};\n let r, i;\n for (i in n.properties)\n if (i !== \"children\" && In.call(n.properties, i)) {\n const l = ui(e, i, n.properties[i]);\n if (l) {\n const [o, a] = l;\n e.tableCellAlignToStyle && o === \"align\" && typeof a == \"string\" && Kr.has(n.tagName) ? r = a : t[o] = a;\n }\n }\n if (r) {\n const l = (\n /** @type {Style} */\n t.style || (t.style = {})\n );\n l[e.stylePropertyNameCase === \"css\" ? \"text-align\" : \"textAlign\"] = r;\n }\n return t;\n}\nfunction ai(e, n) {\n const t = {};\n for (const r of n.attributes)\n if (r.type === \"mdxJsxExpressionAttribute\")\n if (r.data && r.data.estree && e.evaluater) {\n const l = r.data.estree.body[0];\n l.type;\n const o = l.expression;\n o.type;\n const a = o.properties[0];\n a.type, Object.assign(\n t,\n e.evaluater.evaluateExpression(a.argument)\n );\n } else\n _e(e, n.position);\n else {\n const i = r.name;\n let l;\n if (r.value && typeof r.value == \"object\")\n if (r.value.data && r.value.data.estree && e.evaluater) {\n const a = r.value.data.estree.body[0];\n a.type, l = e.evaluater.evaluateExpression(a.expression);\n } else\n _e(e, n.position);\n else\n l = r.value === null ? !0 : r.value;\n t[i] = /** @type {Props[keyof Props]} */\n l;\n }\n return t;\n}\nfunction Tn(e, n) {\n const t = [];\n let r = -1;\n const i = e.passKeys ? /* @__PURE__ */ new Map() : Wr;\n for (; ++r < n.children.length; ) {\n const l = n.children[r];\n let o;\n if (e.passKeys) {\n const s = l.type === \"element\" ? l.tagName : l.type === \"mdxJsxFlowElement\" || l.type === \"mdxJsxTextElement\" ? l.name : void 0;\n if (s) {\n const u = i.get(s) || 0;\n o = s + \"-\" + u, i.set(s, u + 1);\n }\n }\n const a = Nt(e, l, o);\n a !== void 0 && t.push(a);\n }\n return t;\n}\nfunction ui(e, n, t) {\n const r = Fr(e.schema, n);\n if (!(t == null || typeof t == \"number\" && Number.isNaN(t))) {\n if (Array.isArray(t) && (t = r.commaSeparated ? Cr(t) : jr(t)), r.property === \"style\") {\n let i = typeof t == \"object\" ? t : si(e, String(t));\n return e.stylePropertyNameCase === \"css\" && (i = ci(i)), [\"style\", i];\n }\n return [\n e.elementAttributeNameCase === \"react\" && r.space ? _r[r.property] || r.property : r.attribute,\n t\n ];\n }\n}\nfunction si(e, n) {\n const t = {};\n try {\n qr(n, r);\n } catch (i) {\n if (!e.ignoreInvalidStyle) {\n const l = (\n /** @type {Error} */\n i\n ), o = new X(\"Cannot parse `style` attribute\", {\n ancestors: e.ancestors,\n cause: l,\n ruleId: \"style\",\n source: \"hast-util-to-jsx-runtime\"\n });\n throw o.file = e.filePath || void 0, o.url = Ft + \"#cannot-parse-style-attribute\", o;\n }\n }\n return t;\n function r(i, l) {\n let o = i;\n o.slice(0, 2) !== \"--\" && (o.slice(0, 4) === \"-ms-\" && (o = \"ms-\" + o.slice(4)), o = o.replace(Qr, fi)), t[o] = l;\n }\n}\nfunction _t(e, n, t) {\n let r;\n if (!t)\n r = { type: \"Literal\", value: n };\n else if (n.includes(\".\")) {\n const i = n.split(\".\");\n let l = -1, o;\n for (; ++l < i.length; ) {\n const a = Hn(i[l]) ? { type: \"Identifier\", name: i[l] } : { type: \"Literal\", value: i[l] };\n o = o ? {\n type: \"MemberExpression\",\n object: o,\n property: a,\n computed: !!(l && a.type === \"Literal\"),\n optional: !1\n } : a;\n }\n r = o;\n } else\n r = Hn(n) && !/^[a-z]/.test(n) ? { type: \"Identifier\", name: n } : { type: \"Literal\", value: n };\n if (r.type === \"Literal\") {\n const i = (\n /** @type {keyof JSX.IntrinsicElements} */\n r.value\n );\n return In.call(e.components, i) ? e.components[i] : i;\n }\n if (e.evaluater)\n return e.evaluater.evaluateExpression(r);\n _e(e);\n}\nfunction _e(e, n) {\n const t = new X(\n \"Cannot handle MDX estrees without `createEvaluater`\",\n {\n ancestors: e.ancestors,\n place: n,\n ruleId: \"mdx-estree\",\n source: \"hast-util-to-jsx-runtime\"\n }\n );\n throw t.file = e.filePath || void 0, t.url = Ft + \"#cannot-handle-mdx-estrees-without-createevaluater\", t;\n}\nfunction ci(e) {\n const n = {};\n let t;\n for (t in e)\n In.call(e, t) && (n[pi(t)] = e[t]);\n return n;\n}\nfunction pi(e) {\n let n = e.replace(Yr, hi);\n return n.slice(0, 3) === \"ms-\" && (n = \"-\" + n), n;\n}\nfunction fi(e, n) {\n return n.toUpperCase();\n}\nfunction hi(e) {\n return \"-\" + e.toLowerCase();\n}\nconst nn = {\n action: [\"form\"],\n cite: [\"blockquote\", \"del\", \"ins\", \"q\"],\n data: [\"object\"],\n formAction: [\"button\", \"input\"],\n href: [\"a\", \"area\", \"base\", \"link\"],\n icon: [\"menuitem\"],\n itemId: null,\n manifest: [\"html\"],\n ping: [\"a\", \"area\"],\n poster: [\"video\"],\n src: [\n \"audio\",\n \"embed\",\n \"iframe\",\n \"img\",\n \"input\",\n \"script\",\n \"source\",\n \"track\",\n \"video\"\n ]\n}, mi = {};\nfunction di(e, n) {\n const t = mi, r = typeof t.includeImageAlt == \"boolean\" ? t.includeImageAlt : !0, i = typeof t.includeHtml == \"boolean\" ? t.includeHtml : !0;\n return Bt(e, r, i);\n}\nfunction Bt(e, n, t) {\n if (gi(e)) {\n if (\"value\" in e)\n return e.type === \"html\" && !t ? \"\" : e.value;\n if (n && \"alt\" in e && e.alt)\n return e.alt;\n if (\"children\" in e)\n return Kn(e.children, n, t);\n }\n return Array.isArray(e) ? Kn(e, n, t) : \"\";\n}\nfunction Kn(e, n, t) {\n const r = [];\n let i = -1;\n for (; ++i < e.length; )\n r[i] = Bt(e[i], n, t);\n return r.join(\"\");\n}\nfunction gi(e) {\n return !!(e && typeof e == \"object\");\n}\nconst Gn = document.createElement(\"i\");\nfunction Pn(e) {\n const n = \"&\" + e + \";\";\n Gn.innerHTML = n;\n const t = Gn.textContent;\n return t.charCodeAt(t.length - 1) === 59 && e !== \"semi\" || t === n ? !1 : t;\n}\nfunction ce(e, n, t, r) {\n const i = e.length;\n let l = 0, o;\n if (n < 0 ? n = -n > i ? 0 : i + n : n = n > i ? i : n, t = t > 0 ? t : 0, r.length < 1e4)\n o = Array.from(r), o.unshift(n, t), e.splice(...o);\n else\n for (t && e.splice(n, t); l < r.length; )\n o = r.slice(l, l + 1e4), o.unshift(n, 0), e.splice(...o), l += 1e4, n += 1e4;\n}\nfunction ne(e, n) {\n return e.length > 0 ? (ce(e, e.length, 0, n), e) : n;\n}\nconst Jn = {}.hasOwnProperty;\nfunction yi(e) {\n const n = {};\n let t = -1;\n for (; ++t < e.length; )\n xi(n, e[t]);\n return n;\n}\nfunction xi(e, n) {\n let t;\n for (t in n) {\n const i = (Jn.call(e, t) ? e[t] : void 0) || (e[t] = {}), l = n[t];\n let o;\n if (l)\n for (o in l) {\n Jn.call(i, o) || (i[o] = []);\n const a = l[o];\n ki(\n // @ts-expect-error Looks like a list.\n i[o],\n Array.isArray(a) ? a : a ? [a] : []\n );\n }\n }\n}\nfunction ki(e, n) {\n let t = -1;\n const r = [];\n for (; ++t < n.length; )\n (n[t].add === \"after\" ? e : r).push(n[t]);\n ce(e, 0, 0, r);\n}\nfunction jt(e, n) {\n const t = Number.parseInt(e, n);\n return (\n // C0 except for HT, LF, FF, CR, space.\n t < 9 || t === 11 || t > 13 && t < 32 || // Control character (DEL) of C0, and C1 controls.\n t > 126 && t < 160 || // Lone high surrogates and low surrogates.\n t > 55295 && t < 57344 || // Noncharacters.\n t > 64975 && t < 65008 || /* eslint-disable no-bitwise */\n (t & 65535) === 65535 || (t & 65535) === 65534 || /* eslint-enable no-bitwise */\n // Out of range\n t > 1114111 ? \"�\" : String.fromCodePoint(t)\n );\n}\nfunction Te(e) {\n return e.replace(/[\\t\\n\\r ]+/g, \" \").replace(/^ | $/g, \"\").toLowerCase().toUpperCase();\n}\nconst se = ye(/[A-Za-z]/), ee = ye(/[\\dA-Za-z]/), bi = ye(/[#-'*+\\--9=?A-Z^-~]/);\nfunction gn(e) {\n return (\n // Special whitespace codes (which have negative values), C0 and Control\n // character DEL\n e !== null && (e < 32 || e === 127)\n );\n}\nconst yn = ye(/\\d/), wi = ye(/[\\dA-Fa-f]/), Si = ye(/[!-/:-@[-`{-~]/);\nfunction L(e) {\n return e !== null && e < -2;\n}\nfunction G(e) {\n return e !== null && (e < 0 || e === 32);\n}\nfunction _(e) {\n return e === -2 || e === -1 || e === 32;\n}\nconst Ci = ye(new RegExp(\"\\\\p{P}|\\\\p{S}\", \"u\")), Ei = ye(/\\s/);\nfunction ye(e) {\n return n;\n function n(t) {\n return t !== null && t > -1 && e.test(String.fromCharCode(t));\n }\n}\nfunction ze(e) {\n const n = [];\n let t = -1, r = 0, i = 0;\n for (; ++t < e.length; ) {\n const l = e.charCodeAt(t);\n let o = \"\";\n if (l === 37 && ee(e.charCodeAt(t + 1)) && ee(e.charCodeAt(t + 2)))\n i = 2;\n else if (l < 128)\n /[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(l)) || (o = String.fromCharCode(l));\n else if (l > 55295 && l < 57344) {\n const a = e.charCodeAt(t + 1);\n l < 56320 && a > 56319 && a < 57344 ? (o = String.fromCharCode(l, a), i = 1) : o = \"�\";\n } else\n o = String.fromCharCode(l);\n o && (n.push(e.slice(r, t), encodeURIComponent(o)), r = t + i + 1, o = \"\"), i && (t += i, i = 0);\n }\n return n.join(\"\") + e.slice(r);\n}\nfunction V(e, n, t, r) {\n const i = r ? r - 1 : Number.POSITIVE_INFINITY;\n let l = 0;\n return o;\n function o(s) {\n return _(s) ? (e.enter(t), a(s)) : n(s);\n }\n function a(s) {\n return _(s) && l++ < i ? (e.consume(s), a) : (e.exit(t), n(s));\n }\n}\nconst Ii = {\n tokenize: Ai\n};\nfunction Ai(e) {\n const n = e.attempt(this.parser.constructs.contentInitial, r, i);\n let t;\n return n;\n function r(a) {\n if (a === null) {\n e.consume(a);\n return;\n }\n return e.enter(\"lineEnding\"), e.consume(a), e.exit(\"lineEnding\"), V(e, n, \"linePrefix\");\n }\n function i(a) {\n return e.enter(\"paragraph\"), l(a);\n }\n function l(a) {\n const s = e.enter(\"chunkText\", {\n contentType: \"text\",\n previous: t\n });\n return t && (t.next = s), t = s, o(a);\n }\n function o(a) {\n if (a === null) {\n e.exit(\"chunkText\"), e.exit(\"paragraph\"), e.consume(a);\n return;\n }\n return L(a) ? (e.consume(a), e.exit(\"chunkText\"), l) : (e.consume(a), o);\n }\n}\nconst Ti = {\n tokenize: Pi\n}, Zn = {\n tokenize: zi\n};\nfunction Pi(e) {\n const n = this, t = [];\n let r = 0, i, l, o;\n return a;\n function a(E) {\n if (r < t.length) {\n const N = t[r];\n return n.containerState = N[1], e.attempt(N[0].continuation, s, u)(E);\n }\n return u(E);\n }\n function s(E) {\n if (r++, n.containerState._closeFlow) {\n n.containerState._closeFlow = void 0, i && C();\n const N = n.events.length;\n let R = N, y;\n for (; R--; )\n if (n.events[R][0] === \"exit\" && n.events[R][1].type === \"chunkFlow\") {\n y = n.events[R][1].end;\n break;\n }\n x(r);\n let F = N;\n for (; F < n.events.length; )\n n.events[F][1].end = {\n ...y\n }, F++;\n return ce(n.events, R + 1, 0, n.events.slice(N)), n.events.length = F, u(E);\n }\n return a(E);\n }\n function u(E) {\n if (r === t.length) {\n if (!i)\n return d(E);\n if (i.currentConstruct && i.currentConstruct.concrete)\n return b(E);\n n.interrupt = !!(i.currentConstruct && !i._gfmTableDynamicInterruptHack);\n }\n return n.containerState = {}, e.check(Zn, c, f)(E);\n }\n function c(E) {\n return i && C(), x(r), d(E);\n }\n function f(E) {\n return n.parser.lazy[n.now().line] = r !== t.length, o = n.now().offset, b(E);\n }\n function d(E) {\n return n.containerState = {}, e.attempt(Zn, p, b)(E);\n }\n function p(E) {\n return r++, t.push([n.currentConstruct, n.containerState]), d(E);\n }\n function b(E) {\n if (E === null) {\n i && C(), x(0), e.consume(E);\n return;\n }\n return i = i || n.parser.flow(n.now()), e.enter(\"chunkFlow\", {\n _tokenizer: i,\n contentType: \"flow\",\n previous: l\n }), w(E);\n }\n function w(E) {\n if (E === null) {\n A(e.exit(\"chunkFlow\"), !0), x(0), e.consume(E);\n return;\n }\n return L(E) ? (e.consume(E), A(e.exit(\"chunkFlow\")), r = 0, n.interrupt = void 0, a) : (e.consume(E), w);\n }\n function A(E, N) {\n const R = n.sliceStream(E);\n if (N && R.push(null), E.previous = l, l && (l.next = E), l = E, i.defineSkip(E.start), i.write(R), n.parser.lazy[E.start.line]) {\n let y = i.events.length;\n for (; y--; )\n if (\n // The token starts before the line ending…\n i.events[y][1].start.offset < o && // …and either is not ended yet…\n (!i.events[y][1].end || // …or ends after it.\n i.events[y][1].end.offset > o)\n )\n return;\n const F = n.events.length;\n let q = F, B, j;\n for (; q--; )\n if (n.events[q][0] === \"exit\" && n.events[q][1].type === \"chunkFlow\") {\n if (B) {\n j = n.events[q][1].end;\n break;\n }\n B = !0;\n }\n for (x(r), y = F; y < n.events.length; )\n n.events[y][1].end = {\n ...j\n }, y++;\n ce(n.events, q + 1, 0, n.events.slice(F)), n.events.length = y;\n }\n }\n function x(E) {\n let N = t.length;\n for (; N-- > E; ) {\n const R = t[N];\n n.containerState = R[1], R[0].exit.call(n, e);\n }\n t.length = E;\n }\n function C() {\n i.write([null]), l = void 0, i = void 0, n.containerState._closeFlow = void 0;\n }\n}\nfunction zi(e, n, t) {\n return V(e, e.attempt(this.parser.constructs.document, n, t), \"linePrefix\", this.parser.constructs.disable.null.includes(\"codeIndented\") ? void 0 : 4);\n}\nfunction et(e) {\n if (e === null || G(e) || Ei(e))\n return 1;\n if (Ci(e))\n return 2;\n}\nfunction zn(e, n, t) {\n const r = [];\n let i = -1;\n for (; ++i < e.length; ) {\n const l = e[i].resolveAll;\n l && !r.includes(l) && (n = l(n, t), r.push(l));\n }\n return n;\n}\nconst xn = {\n name: \"attention\",\n resolveAll: Li,\n tokenize: vi\n};\nfunction Li(e, n) {\n let t = -1, r, i, l, o, a, s, u, c;\n for (; ++t < e.length; )\n if (e[t][0] === \"enter\" && e[t][1].type === \"attentionSequence\" && e[t][1]._close) {\n for (r = t; r--; )\n if (e[r][0] === \"exit\" && e[r][1].type === \"attentionSequence\" && e[r][1]._open && // If the markers are the same:\n n.sliceSerialize(e[r][1]).charCodeAt(0) === n.sliceSerialize(e[t][1]).charCodeAt(0)) {\n if ((e[r][1]._close || e[t][1]._open) && (e[t][1].end.offset - e[t][1].start.offset) % 3 && !((e[r][1].end.offset - e[r][1].start.offset + e[t][1].end.offset - e[t][1].start.offset) % 3))\n continue;\n s = e[r][1].end.offset - e[r][1].start.offset > 1 && e[t][1].end.offset - e[t][1].start.offset > 1 ? 2 : 1;\n const f = {\n ...e[r][1].end\n }, d = {\n ...e[t][1].start\n };\n nt(f, -s), nt(d, s), o = {\n type: s > 1 ? \"strongSequence\" : \"emphasisSequence\",\n start: f,\n end: {\n ...e[r][1].end\n }\n }, a = {\n type: s > 1 ? \"strongSequence\" : \"emphasisSequence\",\n start: {\n ...e[t][1].start\n },\n end: d\n }, l = {\n type: s > 1 ? \"strongText\" : \"emphasisText\",\n start: {\n ...e[r][1].end\n },\n end: {\n ...e[t][1].start\n }\n }, i = {\n type: s > 1 ? \"strong\" : \"emphasis\",\n start: {\n ...o.start\n },\n end: {\n ...a.end\n }\n }, e[r][1].end = {\n ...o.start\n }, e[t][1].start = {\n ...a.end\n }, u = [], e[r][1].end.offset - e[r][1].start.offset && (u = ne(u, [[\"enter\", e[r][1], n], [\"exit\", e[r][1], n]])), u = ne(u, [[\"enter\", i, n], [\"enter\", o, n], [\"exit\", o, n], [\"enter\", l, n]]), u = ne(u, zn(n.parser.constructs.insideSpan.null, e.slice(r + 1, t), n)), u = ne(u, [[\"exit\", l, n], [\"enter\", a, n], [\"exit\", a, n], [\"exit\", i, n]]), e[t][1].end.offset - e[t][1].start.offset ? (c = 2, u = ne(u, [[\"enter\", e[t][1], n], [\"exit\", e[t][1], n]])) : c = 0, ce(e, r - 1, t - r + 3, u), t = r + u.length - c - 2;\n break;\n }\n }\n for (t = -1; ++t < e.length; )\n e[t][1].type === \"attentionSequence\" && (e[t][1].type = \"data\");\n return e;\n}\nfunction vi(e, n) {\n const t = this.parser.constructs.attentionMarkers.null, r = this.previous, i = et(r);\n let l;\n return o;\n function o(s) {\n return l = s, e.enter(\"attentionSequence\"), a(s);\n }\n function a(s) {\n if (s === l)\n return e.consume(s), a;\n const u = e.exit(\"attentionSequence\"), c = et(s), f = !c || c === 2 && i || t.includes(s), d = !i || i === 2 && c || t.includes(r);\n return u._open = !!(l === 42 ? f : f && (i || !d)), u._close = !!(l === 42 ? d : d && (c || !f)), n(s);\n }\n}\nfunction nt(e, n) {\n e.column += n, e.offset += n, e._bufferIndex += n;\n}\nconst Di = {\n name: \"autolink\",\n tokenize: Oi\n};\nfunction Oi(e, n, t) {\n let r = 0;\n return i;\n function i(p) {\n return e.enter(\"autolink\"), e.enter(\"autolinkMarker\"), e.consume(p), e.exit(\"autolinkMarker\"), e.enter(\"autolinkProtocol\"), l;\n }\n function l(p) {\n return se(p) ? (e.consume(p), o) : p === 64 ? t(p) : u(p);\n }\n function o(p) {\n return p === 43 || p === 45 || p === 46 || ee(p) ? (r = 1, a(p)) : u(p);\n }\n function a(p) {\n return p === 58 ? (e.consume(p), r = 0, s) : (p === 43 || p === 45 || p === 46 || ee(p)) && r++ < 32 ? (e.consume(p), a) : (r = 0, u(p));\n }\n function s(p) {\n return p === 62 ? (e.exit(\"autolinkProtocol\"), e.enter(\"autolinkMarker\"), e.consume(p), e.exit(\"autolinkMarker\"), e.exit(\"autolink\"), n) : p === null || p === 32 || p === 60 || gn(p) ? t(p) : (e.consume(p), s);\n }\n function u(p) {\n return p === 64 ? (e.consume(p), c) : bi(p) ? (e.consume(p), u) : t(p);\n }\n function c(p) {\n return ee(p) ? f(p) : t(p);\n }\n function f(p) {\n return p === 46 ? (e.consume(p), r = 0, c) : p === 62 ? (e.exit(\"autolinkProtocol\").type = \"autolinkEmail\", e.enter(\"autolinkMarker\"), e.consume(p), e.exit(\"autolinkMarker\"), e.exit(\"autolink\"), n) : d(p);\n }\n function d(p) {\n if ((p === 45 || ee(p)) && r++ < 63) {\n const b = p === 45 ? d : f;\n return e.consume(p), b;\n }\n return t(p);\n }\n}\nconst Ke = {\n partial: !0,\n tokenize: Ri\n};\nfunction Ri(e, n, t) {\n return r;\n function r(l) {\n return _(l) ? V(e, i, \"linePrefix\")(l) : i(l);\n }\n function i(l) {\n return l === null || L(l) ? n(l) : t(l);\n }\n}\nconst Ht = {\n continuation: {\n tokenize: Ni\n },\n exit: Mi,\n name: \"blockQuote\",\n tokenize: Fi\n};\nfunction Fi(e, n, t) {\n const r = this;\n return i;\n function i(o) {\n if (o === 62) {\n const a = r.containerState;\n return a.open || (e.enter(\"blockQuote\", {\n _container: !0\n }), a.open = !0), e.enter(\"blockQuotePrefix\"), e.enter(\"blockQuoteMarker\"), e.consume(o), e.exit(\"blockQuoteMarker\"), l;\n }\n return t(o);\n }\n function l(o) {\n return _(o) ? (e.enter(\"blockQuotePrefixWhitespace\"), e.consume(o), e.exit(\"blockQuotePrefixWhitespace\"), e.exit(\"blockQuotePrefix\"), n) : (e.exit(\"blockQuotePrefix\"), n(o));\n }\n}\nfunction Ni(e, n, t) {\n const r = this;\n return i;\n function i(o) {\n return _(o) ? V(e, l, \"linePrefix\", r.parser.constructs.disable.null.includes(\"codeIndented\") ? void 0 : 4)(o) : l(o);\n }\n function l(o) {\n return e.attempt(Ht, n, t)(o);\n }\n}\nfunction Mi(e) {\n e.exit(\"blockQuote\");\n}\nconst Ut = {\n name: \"characterEscape\",\n tokenize: _i\n};\nfunction _i(e, n, t) {\n return r;\n function r(l) {\n return e.enter(\"characterEscape\"), e.enter(\"escapeMarker\"), e.consume(l), e.exit(\"escapeMarker\"), i;\n }\n function i(l) {\n return Si(l) ? (e.enter(\"characterEscapeValue\"), e.consume(l), e.exit(\"characterEscapeValue\"), e.exit(\"characterEscape\"), n) : t(l);\n }\n}\nconst Vt = {\n name: \"characterReference\",\n tokenize: Bi\n};\nfunction Bi(e, n, t) {\n const r = this;\n let i = 0, l, o;\n return a;\n function a(f) {\n return e.enter(\"characterReference\"), e.enter(\"characterReferenceMarker\"), e.consume(f), e.exit(\"characterReferenceMarker\"), s;\n }\n function s(f) {\n return f === 35 ? (e.enter(\"characterReferenceMarkerNumeric\"), e.consume(f), e.exit(\"characterReferenceMarkerNumeric\"), u) : (e.enter(\"characterReferenceValue\"), l = 31, o = ee, c(f));\n }\n function u(f) {\n return f === 88 || f === 120 ? (e.enter(\"characterReferenceMarkerHexadecimal\"), e.consume(f), e.exit(\"characterReferenceMarkerHexadecimal\"), e.enter(\"characterReferenceValue\"), l = 6, o = wi, c) : (e.enter(\"characterReferenceValue\"), l = 7, o = yn, c(f));\n }\n function c(f) {\n if (f === 59 && i) {\n const d = e.exit(\"characterReferenceValue\");\n return o === ee && !Pn(r.sliceSerialize(d)) ? t(f) : (e.enter(\"characterReferenceMarker\"), e.consume(f), e.exit(\"characterReferenceMarker\"), e.exit(\"characterReference\"), n);\n }\n return o(f) && i++ < l ? (e.consume(f), c) : t(f);\n }\n}\nconst tt = {\n partial: !0,\n tokenize: Hi\n}, rt = {\n concrete: !0,\n name: \"codeFenced\",\n tokenize: ji\n};\nfunction ji(e, n, t) {\n const r = this, i = {\n partial: !0,\n tokenize: R\n };\n let l = 0, o = 0, a;\n return s;\n function s(y) {\n return u(y);\n }\n function u(y) {\n const F = r.events[r.events.length - 1];\n return l = F && F[1].type === \"linePrefix\" ? F[2].sliceSerialize(F[1], !0).length : 0, a = y, e.enter(\"codeFenced\"), e.enter(\"codeFencedFence\"), e.enter(\"codeFencedFenceSequence\"), c(y);\n }\n function c(y) {\n return y === a ? (o++, e.consume(y), c) : o < 3 ? t(y) : (e.exit(\"codeFencedFenceSequence\"), _(y) ? V(e, f, \"whitespace\")(y) : f(y));\n }\n function f(y) {\n return y === null || L(y) ? (e.exit(\"codeFencedFence\"), r.interrupt ? n(y) : e.check(tt, w, N)(y)) : (e.enter(\"codeFencedFenceInfo\"), e.enter(\"chunkString\", {\n contentType: \"string\"\n }), d(y));\n }\n function d(y) {\n return y === null || L(y) ? (e.exit(\"chunkString\"), e.exit(\"codeFencedFenceInfo\"), f(y)) : _(y) ? (e.exit(\"chunkString\"), e.exit(\"codeFencedFenceInfo\"), V(e, p, \"whitespace\")(y)) : y === 96 && y === a ? t(y) : (e.consume(y), d);\n }\n function p(y) {\n return y === null || L(y) ? f(y) : (e.enter(\"codeFencedFenceMeta\"), e.enter(\"chunkString\", {\n contentType: \"string\"\n }), b(y));\n }\n function b(y) {\n return y === null || L(y) ? (e.exit(\"chunkString\"), e.exit(\"codeFencedFenceMeta\"), f(y)) : y === 96 && y === a ? t(y) : (e.consume(y), b);\n }\n function w(y) {\n return e.attempt(i, N, A)(y);\n }\n function A(y) {\n return e.enter(\"lineEnding\"), e.consume(y), e.exit(\"lineEnding\"), x;\n }\n function x(y) {\n return l > 0 && _(y) ? V(e, C, \"linePrefix\", l + 1)(y) : C(y);\n }\n function C(y) {\n return y === null || L(y) ? e.check(tt, w, N)(y) : (e.enter(\"codeFlowValue\"), E(y));\n }\n function E(y) {\n return y === null || L(y) ? (e.exit(\"codeFlowValue\"), C(y)) : (e.consume(y), E);\n }\n function N(y) {\n return e.exit(\"codeFenced\"), n(y);\n }\n function R(y, F, q) {\n let B = 0;\n return j;\n function j(v) {\n return y.enter(\"lineEnding\"), y.consume(v), y.exit(\"lineEnding\"), z;\n }\n function z(v) {\n return y.enter(\"codeFencedFence\"), _(v) ? V(y, T, \"linePrefix\", r.parser.constructs.disable.null.includes(\"codeIndented\") ? void 0 : 4)(v) : T(v);\n }\n function T(v) {\n return v === a ? (y.enter(\"codeFencedFenceSequence\"), P(v)) : q(v);\n }\n function P(v) {\n return v === a ? (B++, y.consume(v), P) : B >= o ? (y.exit(\"codeFencedFenceSequence\"), _(v) ? V(y, I, \"whitespace\")(v) : I(v)) : q(v);\n }\n function I(v) {\n return v === null || L(v) ? (y.exit(\"codeFencedFence\"), F(v)) : q(v);\n }\n }\n}\nfunction Hi(e, n, t) {\n const r = this;\n return i;\n function i(o) {\n return o === null ? t(o) : (e.enter(\"lineEnding\"), e.consume(o), e.exit(\"lineEnding\"), l);\n }\n function l(o) {\n return r.parser.lazy[r.now().line] ? t(o) : n(o);\n }\n}\nconst tn = {\n name: \"codeIndented\",\n tokenize: Vi\n}, Ui = {\n partial: !0,\n tokenize: qi\n};\nfunction Vi(e, n, t) {\n const r = this;\n return i;\n function i(u) {\n return e.enter(\"codeIndented\"), V(e, l, \"linePrefix\", 5)(u);\n }\n function l(u) {\n const c = r.events[r.events.length - 1];\n return c && c[1].type === \"linePrefix\" && c[2].sliceSerialize(c[1], !0).length >= 4 ? o(u) : t(u);\n }\n function o(u) {\n return u === null ? s(u) : L(u) ? e.attempt(Ui, o, s)(u) : (e.enter(\"codeFlowValue\"), a(u));\n }\n function a(u) {\n return u === null || L(u) ? (e.exit(\"codeFlowValue\"), o(u)) : (e.consume(u), a);\n }\n function s(u) {\n return e.exit(\"codeIndented\"), n(u);\n }\n}\nfunction qi(e, n, t) {\n const r = this;\n return i;\n function i(o) {\n return r.parser.lazy[r.now().line] ? t(o) : L(o) ? (e.enter(\"lineEnding\"), e.consume(o), e.exit(\"lineEnding\"), i) : V(e, l, \"linePrefix\", 5)(o);\n }\n function l(o) {\n const a = r.events[r.events.length - 1];\n return a && a[1].type === \"linePrefix\" && a[2].sliceSerialize(a[1], !0).length >= 4 ? n(o) : L(o) ? i(o) : t(o);\n }\n}\nconst $i = {\n name: \"codeText\",\n previous: Yi,\n resolve: Wi,\n tokenize: Qi\n};\nfunction Wi(e) {\n let n = e.length - 4, t = 3, r, i;\n if ((e[t][1].type === \"lineEnding\" || e[t][1].type === \"space\") && (e[n][1].type === \"lineEnding\" || e[n][1].type === \"space\")) {\n for (r = t; ++r < n; )\n if (e[r][1].type === \"codeTextData\") {\n e[t][1].type = \"codeTextPadding\", e[n][1].type = \"codeTextPadding\", t += 2, n -= 2;\n break;\n }\n }\n for (r = t - 1, n++; ++r <= n; )\n i === void 0 ? r !== n && e[r][1].type !== \"lineEnding\" && (i = r) : (r === n || e[r][1].type === \"lineEnding\") && (e[i][1].type = \"codeTextData\", r !== i + 2 && (e[i][1].end = e[r - 1][1].end, e.splice(i + 2, r - i - 2), n -= r - i - 2, r = i + 2), i = void 0);\n return e;\n}\nfunction Yi(e) {\n return e !== 96 || this.events[this.events.length - 1][1].type === \"characterEscape\";\n}\nfunction Qi(e, n, t) {\n let r = 0, i, l;\n return o;\n function o(f) {\n return e.enter(\"codeText\"), e.enter(\"codeTextSequence\"), a(f);\n }\n function a(f) {\n return f === 96 ? (e.consume(f), r++, a) : (e.exit(\"codeTextSequence\"), s(f));\n }\n function s(f) {\n return f === null ? t(f) : f === 32 ? (e.enter(\"space\"), e.consume(f), e.exit(\"space\"), s) : f === 96 ? (l = e.enter(\"codeTextSequence\"), i = 0, c(f)) : L(f) ? (e.enter(\"lineEnding\"), e.consume(f), e.exit(\"lineEnding\"), s) : (e.enter(\"codeTextData\"), u(f));\n }\n function u(f) {\n return f === null || f === 32 || f === 96 || L(f) ? (e.exit(\"codeTextData\"), s(f)) : (e.consume(f), u);\n }\n function c(f) {\n return f === 96 ? (e.consume(f), i++, c) : i === r ? (e.exit(\"codeTextSequence\"), e.exit(\"codeText\"), n(f)) : (l.type = \"codeTextData\", u(f));\n }\n}\nclass Xi {\n /**\n * @param {ReadonlyArray<T> | null | undefined} [initial]\n * Initial items (optional).\n * @returns\n * Splice buffer.\n */\n constructor(n) {\n this.left = n ? [...n] : [], this.right = [];\n }\n /**\n * Array access;\n * does not move the cursor.\n *\n * @param {number} index\n * Index.\n * @return {T}\n * Item.\n */\n get(n) {\n if (n < 0 || n >= this.left.length + this.right.length)\n throw new RangeError(\"Cannot access index `\" + n + \"` in a splice buffer of size `\" + (this.left.length + this.right.length) + \"`\");\n return n < this.left.length ? this.left[n] : this.right[this.right.length - n + this.left.length - 1];\n }\n /**\n * The length of the splice buffer, one greater than the largest index in the\n * array.\n */\n get length() {\n return this.left.length + this.right.length;\n }\n /**\n * Remove and return `list[0]`;\n * moves the cursor to `0`.\n *\n * @returns {T | undefined}\n * Item, optional.\n */\n shift() {\n return this.setCursor(0), this.right.pop();\n }\n /**\n * Slice the buffer to get an array;\n * does not move the cursor.\n *\n * @param {number} start\n * Start.\n * @param {number | null | undefined} [end]\n * End (optional).\n * @returns {Array<T>}\n * Array of items.\n */\n slice(n, t) {\n const r = t ?? Number.POSITIVE_INFINITY;\n return r < this.left.length ? this.left.slice(n, r) : n > this.left.length ? this.right.slice(this.right.length - r + this.left.length, this.right.length - n + this.left.length).reverse() : this.left.slice(n).concat(this.right.slice(this.right.length - r + this.left.length).reverse());\n }\n /**\n * Mimics the behavior of Array.prototype.splice() except for the change of\n * interface necessary to avoid segfaults when patching in very large arrays.\n *\n * This operation moves cursor is moved to `start` and results in the cursor\n * placed after any inserted items.\n *\n * @param {number} start\n * Start;\n * zero-based index at which to start changing the array;\n * negative numbers count backwards from the end of the array and values\n * that are out-of bounds are clamped to the appropriate end of the array.\n * @param {number | null | undefined} [deleteCount=0]\n * Delete count (default: `0`);\n * maximum number of elements to delete, starting from start.\n * @param {Array<T> | null | undefined} [items=[]]\n * Items to include in place of the deleted items (default: `[]`).\n * @return {Array<T>}\n * Any removed items.\n */\n splice(n, t, r) {\n const i = t || 0;\n this.setCursor(Math.trunc(n));\n const l = this.right.splice(this.right.length - i, Number.POSITIVE_INFINITY);\n return r && Oe(this.left, r), l.reverse();\n }\n /**\n * Remove and return the highest-numbered item in the array, so\n * `list[list.length - 1]`;\n * Moves the cursor to `length`.\n *\n * @returns {T | undefined}\n * Item, optional.\n */\n pop() {\n return this.setCursor(Number.POSITIVE_INFINITY), this.left.pop();\n }\n /**\n * Inserts a single item to the high-numbered side of the array;\n * moves the cursor to `length`.\n *\n * @param {T} item\n * Item.\n * @returns {undefined}\n * Nothing.\n */\n push(n) {\n this.setCursor(Number.POSITIVE_INFINITY), this.left.push(n);\n }\n /**\n * Inserts many items to the high-numbered side of the array.\n * Moves the cursor to `length`.\n *\n * @param {Array<T>} items\n * Items.\n * @returns {undefined}\n * Nothing.\n */\n pushMany(n) {\n this.setCursor(Number.POSITIVE_INFINITY), Oe(this.left, n);\n }\n /**\n * Inserts a single item to the low-numbered side of the array;\n * Moves the cursor to `0`.\n *\n * @param {T} item\n * Item.\n * @returns {undefined}\n * Nothing.\n */\n unshift(n) {\n this.setCursor(0), this.right.push(n);\n }\n /**\n * Inserts many items to the low-numbered side of the array;\n * moves the cursor to `0`.\n *\n * @param {Array<T>} items\n * Items.\n * @returns {undefined}\n * Nothing.\n */\n unshiftMany(n) {\n this.setCursor(0), Oe(this.right, n.reverse());\n }\n /**\n * Move the cursor to a specific position in the array. Requires\n * time proportional to the distance moved.\n *\n * If `n < 0`, the cursor will end up at the beginning.\n * If `n > length`, the cursor will end up at the end.\n *\n * @param {number} n\n * Position.\n * @return {undefined}\n * Nothing.\n */\n setCursor(n) {\n if (!(n === this.left.length || n > this.left.length && this.right.length === 0 || n < 0 && this.left.length === 0))\n if (n < this.left.length) {\n const t = this.left.splice(n, Number.POSITIVE_INFINITY);\n Oe(this.right, t.reverse());\n } else {\n const t = this.right.splice(this.left.length + this.right.length - n, Number.POSITIVE_INFINITY);\n Oe(this.left, t.reverse());\n }\n }\n}\nfunction Oe(e, n) {\n let t = 0;\n if (n.length < 1e4)\n e.push(...n);\n else\n for (; t < n.length; )\n e.push(...n.slice(t, t + 1e4)), t += 1e4;\n}\nfunction qt(e) {\n const n = {};\n let t = -1, r, i, l, o, a, s, u;\n const c = new Xi(e);\n for (; ++t < c.length; ) {\n for (; t in n; )\n t = n[t];\n if (r = c.get(t), t && r[1].type === \"chunkFlow\" && c.get(t - 1)[1].type === \"listItemPrefix\" && (s = r[1]._tokenizer.events, l = 0, l < s.length && s[l][1].type === \"lineEndingBlank\" && (l += 2), l < s.length && s[l][1].type === \"content\"))\n for (; ++l < s.length && s[l][1].type !== \"content\"; )\n s[l][1].type === \"chunkText\" && (s[l][1]._isInFirstContentOfListItem = !0, l++);\n if (r[0] === \"enter\")\n r[1].contentType && (Object.assign(n, Ki(c, t)), t = n[t], u = !0);\n else if (r[1]._container) {\n for (l = t, i = void 0; l--; )\n if (o = c.get(l), o[1].type === \"lineEnding\" || o[1].type === \"lineEndingBlank\")\n o[0] === \"enter\" && (i && (c.get(i)[1].type = \"lineEndingBlank\"), o[1].type = \"lineEnding\", i = l);\n else if (o[1].type !== \"linePrefix\") break;\n i && (r[1].end = {\n ...c.get(i)[1].start\n }, a = c.slice(i, t), a.unshift(r), c.splice(i, t - i + 1, a));\n }\n }\n return ce(e, 0, Number.POSITIVE_INFINITY, c.slice(0)), !u;\n}\nfunction Ki(e, n) {\n const t = e.get(n)[1], r = e.get(n)[2];\n let i = n - 1;\n const l = [], o = t._tokenizer || r.parser[t.contentType](t.start), a = o.events, s = [], u = {};\n let c, f, d = -1, p = t, b = 0, w = 0;\n const A = [w];\n for (; p; ) {\n for (; e.get(++i)[1] !== p; )\n ;\n l.push(i), p._tokenizer || (c = r.sliceStream(p), p.next || c.push(null), f && o.defineSkip(p.start), p._isInFirstContentOfListItem && (o._gfmTasklistFirstContentOfListItem = !0), o.write(c), p._isInFirstContentOfListItem && (o._gfmTasklistFirstContentOfListItem = void 0)), f = p, p = p.next;\n }\n for (p = t; ++d < a.length; )\n // Find a void token that includes a break.\n a[d][0] === \"exit\" && a[d - 1][0] === \"enter\" && a[d][1].type === a[d - 1][1].type && a[d][1].start.line !== a[d][1].end.line && (w = d + 1, A.push(w), p._tokenizer = void 0, p.previous = void 0, p = p.next);\n for (o.events = [], p ? (p._tokenizer = void 0, p.previous = void 0) : A.pop(), d = A.length; d--; ) {\n const x = a.slice(A[d], A[d + 1]), C = l.pop();\n s.push([C, C + x.length - 1]), e.splice(C, 2, x);\n }\n for (s.reverse(), d = -1; ++d < s.length; )\n u[b + s[d][0]] = b + s[d][1], b += s[d][1] - s[d][0] - 1;\n return u;\n}\nconst Gi = {\n resolve: Zi,\n tokenize: el\n}, Ji = {\n partial: !0,\n tokenize: nl\n};\nfunction Zi(e) {\n return qt(e), e;\n}\nfunction el(e, n) {\n let t;\n return r;\n function r(a) {\n return e.enter(\"content\"), t = e.enter(\"chunkContent\", {\n contentType: \"content\"\n }), i(a);\n }\n function i(a) {\n return a === null ? l(a) : L(a) ? e.check(Ji, o, l)(a) : (e.consume(a), i);\n }\n function l(a) {\n return e.exit(\"chunkContent\"), e.exit(\"content\"), n(a);\n }\n function o(a) {\n return e.consume(a), e.exit(\"chunkContent\"), t.next = e.enter(\"chunkContent\", {\n contentType: \"content\",\n previous: t\n }), t = t.next, i;\n }\n}\nfunction nl(e, n, t) {\n const r = this;\n return i;\n function i(o) {\n return e.exit(\"chunkContent\"), e.enter(\"lineEnding\"), e.consume(o), e.exit(\"lineEnding\"), V(e, l, \"linePrefix\");\n }\n function l(o) {\n if (o === null || L(o))\n return t(o);\n const a = r.events[r.events.length - 1];\n return !r.parser.constructs.disable.null.includes(\"codeIndented\") && a && a[1].type === \"linePrefix\" && a[2].sliceSerialize(a[1], !0).length >= 4 ? n(o) : e.interrupt(r.parser.constructs.flow, t, n)(o);\n }\n}\nfunction $t(e, n, t, r, i, l, o, a, s) {\n const u = s || Number.POSITIVE_INFINITY;\n let c = 0;\n return f;\n function f(x) {\n return x === 60 ? (e.enter(r), e.enter(i), e.enter(l), e.consume(x), e.exit(l), d) : x === null || x === 32 || x === 41 || gn(x) ? t(x) : (e.enter(r), e.enter(o), e.enter(a), e.enter(\"chunkString\", {\n contentType: \"string\"\n }), w(x));\n }\n function d(x) {\n return x === 62 ? (e.enter(l), e.consume(x), e.exit(l), e.exit(i), e.exit(r), n) : (e.enter(a), e.enter(\"chunkString\", {\n contentType: \"string\"\n }), p(x));\n }\n function p(x) {\n return x === 62 ? (e.exit(\"chunkString\"), e.exit(a), d(x)) : x === null || x === 60 || L(x) ? t(x) : (e.consume(x), x === 92 ? b : p);\n }\n function b(x) {\n return x === 60 || x === 62 || x === 92 ? (e.consume(x), p) : p(x);\n }\n function w(x) {\n return !c && (x === null || x === 41 || G(x)) ? (e.exit(\"chunkString\"), e.exit(a), e.exit(o), e.exit(r), n(x)) : c < u && x === 40 ? (e.consume(x), c++, w) : x === 41 ? (e.consume(x), c--, w) : x === null || x === 32 || x === 40 || gn(x) ? t(x) : (e.consume(x), x === 92 ? A : w);\n }\n function A(x) {\n return x === 40 || x === 41 || x === 92 ? (e.consume(x), w) : w(x);\n }\n}\nfunction Wt(e, n, t, r, i, l) {\n const o = this;\n let a = 0, s;\n return u;\n function u(p) {\n return e.enter(r), e.enter(i), e.consume(p), e.exit(i), e.enter(l), c;\n }\n function c(p) {\n return a > 999 || p === null || p === 91 || p === 93 && !s || // To do: remove in the future once we’ve switched from\n // `micromark-extension-footnote` to `micromark-extension-gfm-footnote`,\n // which doesn’t need this.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n p === 94 && !a && \"_hiddenFootnoteSupport\" in o.parser.constructs ? t(p) : p === 93 ? (e.exit(l), e.enter(i), e.consume(p), e.exit(i), e.exit(r), n) : L(p) ? (e.enter(\"lineEnding\"), e.consume(p), e.exit(\"lineEnding\"), c) : (e.enter(\"chunkString\", {\n contentType: \"string\"\n }), f(p));\n }\n function f(p) {\n return p === null || p === 91 || p === 93 || L(p) || a++ > 999 ? (e.exit(\"chunkString\"), c(p)) : (e.consume(p), s || (s = !_(p)), p === 92 ? d : f);\n }\n function d(p) {\n return p === 91 || p === 92 || p === 93 ? (e.consume(p), a++, f) : f(p);\n }\n}\nfunction Yt(e, n, t, r, i, l) {\n let o;\n return a;\n function a(d) {\n return d === 34 || d === 39 || d === 40 ? (e.enter(r), e.enter(i), e.consume(d), e.exit(i), o = d === 40 ? 41 : d, s) : t(d);\n }\n function s(d) {\n return d === o ? (e.enter(i), e.consume(d), e.exit(i), e.exit(r), n) : (e.enter(l), u(d));\n }\n function u(d) {\n return d === o ? (e.exit(l), s(o)) : d === null ? t(d) : L(d) ? (e.enter(\"lineEnding\"), e.consume(d), e.exit(\"lineEnding\"), V(e, u, \"linePrefix\")) : (e.enter(\"chunkString\", {\n contentType: \"string\"\n }), c(d));\n }\n function c(d) {\n return d === o || d === null || L(d) ? (e.exit(\"chunkString\"), u(d)) : (e.consume(d), d === 92 ? f : c);\n }\n function f(d) {\n return d === o || d === 92 ? (e.consume(d), c) : c(d);\n }\n}\nfunction Ne(e, n) {\n let t;\n return r;\n function r(i) {\n return L(i) ? (e.enter(\"lineEnding\"), e.consume(i), e.exit(\"lineEnding\"), t = !0, r) : _(i) ? V(e, r, t ? \"linePrefix\" : \"lineSuffix\")(i) : n(i);\n }\n}\nconst tl = {\n name: \"definition\",\n tokenize: il\n}, rl = {\n partial: !0,\n tokenize: ll\n};\nfunction il(e, n, t) {\n const r = this;\n let i;\n return l;\n function l(p) {\n return e.enter(\"definition\"), o(p);\n }\n function o(p) {\n return Wt.call(\n r,\n e,\n a,\n // Note: we don’t need to reset the way `markdown-rs` does.\n t,\n \"definitionLabel\",\n \"definitionLabelMarker\",\n \"definitionLabelString\"\n )(p);\n }\n function a(p) {\n return i = Te(r.sliceSerialize(r.events[r.events.length - 1][1]).slice(1, -1)), p === 58 ? (e.enter(\"definitionMarker\"), e.consume(p), e.exit(\"definitionMarker\"), s) : t(p);\n }\n function s(p) {\n return G(p) ? Ne(e, u)(p) : u(p);\n }\n function u(p) {\n return $t(\n e,\n c,\n // Note: we don’t need to reset the way `markdown-rs` does.\n t,\n \"definitionDestination\",\n \"definitionDestinationLiteral\",\n \"definitionDestinationLiteralMarker\",\n \"definitionDestinationRaw\",\n \"definitionDestinationString\"\n )(p);\n }\n function c(p) {\n return e.attempt(rl, f, f)(p);\n }\n function f(p) {\n return _(p) ? V(e, d, \"whitespace\")(p) : d(p);\n }\n function d(p) {\n return p === null || L(p) ? (e.exit(\"definition\"), r.parser.defined.push(i), n(p)) : t(p);\n }\n}\nfunction ll(e, n, t) {\n return r;\n function r(a) {\n return G(a) ? Ne(e, i)(a) : t(a);\n }\n function i(a) {\n return Yt(e, l, t, \"definitionTitle\", \"definitionTitleMarker\", \"definitionTitleString\")(a);\n }\n function l(a) {\n return _(a) ? V(e, o, \"whitespace\")(a) : o(a);\n }\n function o(a) {\n return a === null || L(a) ? n(a) : t(a);\n }\n}\nconst ol = {\n name: \"hardBreakEscape\",\n tokenize: al\n};\nfunction al(e, n, t) {\n return r;\n function r(l) {\n return e.enter(\"hardBreakEscape\"), e.consume(l), i;\n }\n function i(l) {\n return L(l) ? (e.exit(\"hardBreakEscape\"), n(l)) : t(l);\n }\n}\nconst ul = {\n name: \"headingAtx\",\n resolve: sl,\n tokenize: cl\n};\nfunction sl(e, n) {\n let t = e.length - 2, r = 3, i, l;\n return e[r][1].type === \"whitespace\" && (r += 2), t - 2 > r && e[t][1].type === \"whitespace\" && (t -= 2), e[t][1].type === \"atxHeadingSequence\" && (r === t - 1 || t - 4 > r && e[t - 2][1].type === \"whitespace\") && (t -= r + 1 === t ? 2 : 4), t > r && (i = {\n type: \"atxHeadingText\",\n start: e[r][1].start,\n end: e[t][1].end\n }, l = {\n type: \"chunkText\",\n start: e[r][1].start,\n end: e[t][1].end,\n contentType: \"text\"\n }, ce(e, r, t - r + 1, [[\"enter\", i, n], [\"enter\", l, n], [\"exit\", l, n], [\"exit\", i, n]])), e;\n}\nfunction cl(e, n, t) {\n let r = 0;\n return i;\n function i(c) {\n return e.enter(\"atxHeading\"), l(c);\n }\n function l(c) {\n return e.enter(\"atxHeadingSequence\"), o(c);\n }\n function o(c) {\n return c === 35 && r++ < 6 ? (e.consume(c), o) : c === null || G(c) ? (e.exit(\"atxHeadingSequence\"), a(c)) : t(c);\n }\n function a(c) {\n return c === 35 ? (e.enter(\"atxHeadingSequence\"), s(c)) : c === null || L(c) ? (e.exit(\"atxHeading\"), n(c)) : _(c) ? V(e, a, \"whitespace\")(c) : (e.enter(\"atxHeadingText\"), u(c));\n }\n function s(c) {\n return c === 35 ? (e.consume(c), s) : (e.exit(\"atxHeadingSequence\"), a(c));\n }\n function u(c) {\n return c === null || c === 35 || G(c) ? (e.exit(\"atxHeadingText\"), a(c)) : (e.consume(c), u);\n }\n}\nconst pl = [\n \"address\",\n \"article\",\n \"aside\",\n \"base\",\n \"basefont\",\n \"blockquote\",\n \"body\",\n \"caption\",\n \"center\",\n \"col\",\n \"colgroup\",\n \"dd\",\n \"details\",\n \"dialog\",\n \"dir\",\n \"div\",\n \"dl\",\n \"dt\",\n \"fieldset\",\n \"figcaption\",\n \"figure\",\n \"footer\",\n \"form\",\n \"frame\",\n \"frameset\",\n \"h1\",\n \"h2\",\n \"h3\",\n \"h4\",\n \"h5\",\n \"h6\",\n \"head\",\n \"header\",\n \"hr\",\n \"html\",\n \"iframe\",\n \"legend\",\n \"li\",\n \"link\",\n \"main\",\n \"menu\",\n \"menuitem\",\n \"nav\",\n \"noframes\",\n \"ol\",\n \"optgroup\",\n \"option\",\n \"p\",\n \"param\",\n \"search\",\n \"section\",\n \"summary\",\n \"table\",\n \"tbody\",\n \"td\",\n \"tfoot\",\n \"th\",\n \"thead\",\n \"title\",\n \"tr\",\n \"track\",\n \"ul\"\n], it = [\"pre\", \"script\", \"style\", \"textarea\"], fl = {\n concrete: !0,\n name: \"htmlFlow\",\n resolveTo: dl,\n tokenize: gl\n}, hl = {\n partial: !0,\n tokenize: xl\n}, ml = {\n partial: !0,\n tokenize: yl\n};\nfunction dl(e) {\n let n = e.length;\n for (; n-- && !(e[n][0] === \"enter\" && e[n][1].type === \"htmlFlow\"); )\n ;\n return n > 1 && e[n - 2][1].type === \"linePrefix\" && (e[n][1].start = e[n - 2][1].start, e[n + 1][1].start = e[n - 2][1].start, e.splice(n - 2, 2)), e;\n}\nfunction gl(e, n, t) {\n const r = this;\n let i, l, o, a, s;\n return u;\n function u(m) {\n return c(m);\n }\n function c(m) {\n return e.enter(\"htmlFlow\"), e.enter(\"htmlFlowData\"), e.consume(m), f;\n }\n function f(m) {\n return m === 33 ? (e.consume(m), d) : m === 47 ? (e.consume(m), l = !0, w) : m === 63 ? (e.consume(m), i = 3, r.interrupt ? n : h) : se(m) ? (e.consume(m), o = String.fromCharCode(m), A) : t(m);\n }\n function d(m) {\n return m === 45 ? (e.consume(m), i = 2, p) : m === 91 ? (e.consume(m), i = 5, a = 0, b) : se(m) ? (e.consume(m), i = 4, r.interrupt ? n : h) : t(m);\n }\n function p(m) {\n return m === 45 ? (e.consume(m), r.interrupt ? n : h) : t(m);\n }\n function b(m) {\n const le = \"CDATA[\";\n return m === le.charCodeAt(a++) ? (e.consume(m), a === le.length ? r.interrupt ? n : T : b) : t(m);\n }\n function w(m) {\n return se(m) ? (e.consume(m), o = String.fromCharCode(m), A) : t(m);\n }\n function A(m) {\n if (m === null || m === 47 || m === 62 || G(m)) {\n const le = m === 47, xe = o.toLowerCase();\n return !le && !l && it.includes(xe) ? (i = 1, r.interrupt ? n(m) : T(m)) : pl.includes(o.toLowerCase()) ? (i = 6, le ? (e.consume(m), x) : r.interrupt ? n(m) : T(m)) : (i = 7, r.interrupt && !r.parser.lazy[r.now().line] ? t(m) : l ? C(m) : E(m));\n }\n return m === 45 || ee(m) ? (e.consume(m), o += String.fromCharCode(m), A) : t(m);\n }\n function x(m) {\n return m === 62 ? (e.consume(m), r.interrupt ? n : T) : t(m);\n }\n function C(m) {\n return _(m) ? (e.consume(m), C) : j(m);\n }\n function E(m) {\n return m === 47 ? (e.consume(m), j) : m === 58 || m === 95 || se(m) ? (e.consume(m), N) : _(m) ? (e.consume(m), E) : j(m);\n }\n function N(m) {\n return m === 45 || m === 46 || m === 58 || m === 95 || ee(m) ? (e.consume(m), N) : R(m);\n }\n function R(m) {\n return m === 61 ? (e.consume(m), y) : _(m) ? (e.consume(m), R) : E(m);\n }\n function y(m) {\n return m === null || m === 60 || m === 61 || m === 62 || m === 96 ? t(m) : m === 34 || m === 39 ? (e.consume(m), s = m, F) : _(m) ? (e.consume(m), y) : q(m);\n }\n function F(m) {\n return m === s ? (e.consume(m), s = null, B) : m === null || L(m) ? t(m) : (e.consume(m), F);\n }\n function q(m) {\n return m === null || m === 34 || m === 39 || m === 47 || m === 60 || m === 61 || m === 62 || m === 96 || G(m) ? R(m) : (e.consume(m), q);\n }\n function B(m) {\n return m === 47 || m === 62 || _(m) ? E(m) : t(m);\n }\n function j(m) {\n return m === 62 ? (e.consume(m), z) : t(m);\n }\n function z(m) {\n return m === null || L(m) ? T(m) : _(m) ? (e.consume(m), z) : t(m);\n }\n function T(m) {\n return m === 45 && i === 2 ? (e.consume(m), W) : m === 60 && i === 1 ? (e.consume(m), Y) : m === 62 && i === 4 ? (e.consume(m), ie) : m === 63 && i === 3 ? (e.consume(m), h) : m === 93 && i === 5 ? (e.consume(m), pe) : L(m) && (i === 6 || i === 7) ? (e.exit(\"htmlFlowData\"), e.check(hl, fe, P)(m)) : m === null || L(m) ? (e.exit(\"htmlFlowData\"), P(m)) : (e.consume(m), T);\n }\n function P(m) {\n return e.check(ml, I, fe)(m);\n }\n function I(m) {\n return e.enter(\"lineEnding\"), e.consume(m), e.exit(\"lineEnding\"), v;\n }\n function v(m) {\n return m === null || L(m) ? P(m) : (e.enter(\"htmlFlowData\"), T(m));\n }\n function W(m) {\n return m === 45 ? (e.consume(m), h) : T(m);\n }\n function Y(m) {\n return m === 47 ? (e.consume(m), o = \"\", re) : T(m);\n }\n function re(m) {\n if (m === 62) {\n const le = o.toLowerCase();\n return it.includes(le) ? (e.consume(m), ie) : T(m);\n }\n return se(m) && o.length < 8 ? (e.consume(m), o += String.fromCharCode(m), re) : T(m);\n }\n function pe(m) {\n return m === 93 ? (e.consume(m), h) : T(m);\n }\n function h(m) {\n return m === 62 ? (e.consume(m), ie) : m === 45 && i === 2 ? (e.consume(m), h) : T(m);\n }\n function ie(m) {\n return m === null || L(m) ? (e.exit(\"htmlFlowData\"), fe(m)) : (e.consume(m), ie);\n }\n function fe(m) {\n return e.exit(\"htmlFlow\"), n(m);\n }\n}\nfunction yl(e, n, t) {\n const r = this;\n return i;\n function i(o) {\n return L(o) ? (e.enter(\"lineEnding\"), e.consume(o), e.exit(\"lineEnding\"), l) : t(o);\n }\n function l(o) {\n return r.parser.lazy[r.now().line] ? t(o) : n(o);\n }\n}\nfunction xl(e, n, t) {\n return r;\n function r(i) {\n return e.enter(\"lineEnding\"), e.consume(i), e.exit(\"lineEnding\"), e.attempt(Ke, n, t);\n }\n}\nconst kl = {\n name: \"htmlText\",\n tokenize: bl\n};\nfunction bl(e, n, t) {\n const r = this;\n let i, l, o;\n return a;\n function a(h) {\n return e.enter(\"htmlText\"), e.enter(\"htmlTextData\"), e.consume(h), s;\n }\n function s(h) {\n return h === 33 ? (e.consume(h), u) : h === 47 ? (e.consume(h), R) : h === 63 ? (e.consume(h), E) : se(h) ? (e.consume(h), q) : t(h);\n }\n function u(h) {\n return h === 45 ? (e.consume(h), c) : h === 91 ? (e.consume(h), l = 0, b) : se(h) ? (e.consume(h), C) : t(h);\n }\n function c(h) {\n return h === 45 ? (e.consume(h), p) : t(h);\n }\n function f(h) {\n return h === null ? t(h) : h === 45 ? (e.consume(h), d) : L(h) ? (o = f, Y(h)) : (e.consume(h), f);\n }\n function d(h) {\n return h === 45 ? (e.consume(h), p) : f(h);\n }\n function p(h) {\n return h === 62 ? W(h) : h === 45 ? d(h) : f(h);\n }\n function b(h) {\n const ie = \"CDATA[\";\n return h === ie.charCodeAt(l++) ? (e.consume(h), l === ie.length ? w : b) : t(h);\n }\n function w(h) {\n return h === null ? t(h) : h === 93 ? (e.consume(h), A) : L(h) ? (o = w, Y(h)) : (e.consume(h), w);\n }\n function A(h) {\n return h === 93 ? (e.consume(h), x) : w(h);\n }\n function x(h) {\n return h === 62 ? W(h) : h === 93 ? (e.consume(h), x) : w(h);\n }\n function C(h) {\n return h === null || h === 62 ? W(h) : L(h) ? (o = C, Y(h)) : (e.consume(h), C);\n }\n function E(h) {\n return h === null ? t(h) : h === 63 ? (e.consume(h), N) : L(h) ? (o = E, Y(h)) : (e.consume(h), E);\n }\n function N(h) {\n return h === 62 ? W(h) : E(h);\n }\n function R(h) {\n return se(h) ? (e.consume(h), y) : t(h);\n }\n function y(h) {\n return h === 45 || ee(h) ? (e.consume(h), y) : F(h);\n }\n function F(h) {\n return L(h) ? (o = F, Y(h)) : _(h) ? (e.consume(h), F) : W(h);\n }\n function q(h) {\n return h === 45 || ee(h) ? (e.consume(h), q) : h === 47 || h === 62 || G(h) ? B(h) : t(h);\n }\n function B(h) {\n return h === 47 ? (e.consume(h), W) : h === 58 || h === 95 || se(h) ? (e.consume(h), j) : L(h) ? (o = B, Y(h)) : _(h) ? (e.consume(h), B) : W(h);\n }\n function j(h) {\n return h === 45 || h === 46 || h === 58 || h === 95 || ee(h) ? (e.consume(h), j) : z(h);\n }\n function z(h) {\n return h === 61 ? (e.consume(h), T) : L(h) ? (o = z, Y(h)) : _(h) ? (e.consume(h), z) : B(h);\n }\n function T(h) {\n return h === null || h === 60 || h === 61 || h === 62 || h === 96 ? t(h) : h === 34 || h === 39 ? (e.consume(h), i = h, P) : L(h) ? (o = T, Y(h)) : _(h) ? (e.consume(h), T) : (e.consume(h), I);\n }\n function P(h) {\n return h === i ? (e.consume(h), i = void 0, v) : h === null ? t(h) : L(h) ? (o = P, Y(h)) : (e.consume(h), P);\n }\n function I(h) {\n return h === null || h === 34 || h === 39 || h === 60 || h === 61 || h === 96 ? t(h) : h === 47 || h === 62 || G(h) ? B(h) : (e.consume(h), I);\n }\n function v(h) {\n return h === 47 || h === 62 || G(h) ? B(h) : t(h);\n }\n function W(h) {\n return h === 62 ? (e.consume(h), e.exit(\"htmlTextData\"), e.exit(\"htmlText\"), n) : t(h);\n }\n function Y(h) {\n return e.exit(\"htmlTextData\"), e.enter(\"lineEnding\"), e.consume(h), e.exit(\"lineEnding\"), re;\n }\n function re(h) {\n return _(h) ? V(e, pe, \"linePrefix\", r.parser.constructs.disable.null.includes(\"codeIndented\") ? void 0 : 4)(h) : pe(h);\n }\n function pe(h) {\n return e.enter(\"htmlTextData\"), o(h);\n }\n}\nconst Ln = {\n name: \"labelEnd\",\n resolveAll: El,\n resolveTo: Il,\n tokenize: Al\n}, wl = {\n tokenize: Tl\n}, Sl = {\n tokenize: Pl\n}, Cl = {\n tokenize: zl\n};\nfunction El(e) {\n let n = -1;\n const t = [];\n for (; ++n < e.length; ) {\n const r = e[n][1];\n if (t.push(e[n]), r.type === \"labelImage\" || r.type === \"labelLink\" || r.type === \"labelEnd\") {\n const i = r.type === \"labelImage\" ? 4 : 2;\n r.type = \"data\", n += i;\n }\n }\n return e.length !== t.length && ce(e, 0, e.length, t), e;\n}\nfunction Il(e, n) {\n let t = e.length, r = 0, i, l, o, a;\n for (; t--; )\n if (i = e[t][1], l) {\n if (i.type === \"link\" || i.type === \"labelLink\" && i._inactive)\n break;\n e[t][0] === \"enter\" && i.type === \"labelLink\" && (i._inactive = !0);\n } else if (o) {\n if (e[t][0] === \"enter\" && (i.type === \"labelImage\" || i.type === \"labelLink\") && !i._balanced && (l = t, i.type !== \"labelLink\")) {\n r = 2;\n break;\n }\n } else i.type === \"labelEnd\" && (o = t);\n const s = {\n type: e[l][1].type === \"labelLink\" ? \"link\" : \"image\",\n start: {\n ...e[l][1].start\n },\n end: {\n ...e[e.length - 1][1].end\n }\n }, u = {\n type: \"label\",\n start: {\n ...e[l][1].start\n },\n end: {\n ...e[o][1].end\n }\n }, c = {\n type: \"labelText\",\n start: {\n ...e[l + r + 2][1].end\n },\n end: {\n ...e[o - 2][1].start\n }\n };\n return a = [[\"enter\", s, n], [\"enter\", u, n]], a = ne(a, e.slice(l + 1, l + r + 3)), a = ne(a, [[\"enter\", c, n]]), a = ne(a, zn(n.parser.constructs.insideSpan.null, e.slice(l + r + 4, o - 3), n)), a = ne(a, [[\"exit\", c, n], e[o - 2], e[o - 1], [\"exit\", u, n]]), a = ne(a, e.slice(o + 1)), a = ne(a, [[\"exit\", s, n]]), ce(e, l, e.length, a), e;\n}\nfunction Al(e, n, t) {\n const r = this;\n let i = r.events.length, l, o;\n for (; i--; )\n if ((r.events[i][1].type === \"labelImage\" || r.events[i][1].type === \"labelLink\") && !r.events[i][1]._balanced) {\n l = r.events[i][1];\n break;\n }\n return a;\n function a(d) {\n return l ? l._inactive ? f(d) : (o = r.parser.defined.includes(Te(r.sliceSerialize({\n start: l.end,\n end: r.now()\n }))), e.enter(\"labelEnd\"), e.enter(\"labelMarker\"), e.consume(d), e.exit(\"labelMarker\"), e.exit(\"labelEnd\"), s) : t(d);\n }\n function s(d) {\n return d === 40 ? e.attempt(wl, c, o ? c : f)(d) : d === 91 ? e.attempt(Sl, c, o ? u : f)(d) : o ? c(d) : f(d);\n }\n function u(d) {\n return e.attempt(Cl, c, f)(d);\n }\n function c(d) {\n return n(d);\n }\n function f(d) {\n return l._balanced = !0, t(d);\n }\n}\nfunction Tl(e, n, t) {\n return r;\n function r(f) {\n return e.enter(\"resource\"), e.enter(\"resourceMarker\"), e.consume(f), e.exit(\"resourceMarker\"), i;\n }\n function i(f) {\n return G(f) ? Ne(e, l)(f) : l(f);\n }\n function l(f) {\n return f === 41 ? c(f) : $t(e, o, a, \"resourceDestination\", \"resourceDestinationLiteral\", \"resourceDestinationLiteralMarker\", \"resourceDestinationRaw\", \"resourceDestinationString\", 32)(f);\n }\n function o(f) {\n return G(f) ? Ne(e, s)(f) : c(f);\n }\n function a(f) {\n return t(f);\n }\n function s(f) {\n return f === 34 || f === 39 || f === 40 ? Yt(e, u, t, \"resourceTitle\", \"resourceTitleMarker\", \"resourceTitleString\")(f) : c(f);\n }\n function u(f) {\n return G(f) ? Ne(e, c)(f) : c(f);\n }\n function c(f) {\n return f === 41 ? (e.enter(\"resourceMarker\"), e.consume(f), e.exit(\"resourceMarker\"), e.exit(\"resource\"), n) : t(f);\n }\n}\nfunction Pl(e, n, t) {\n const r = this;\n return i;\n function i(a) {\n return Wt.call(r, e, l, o, \"reference\", \"referenceMarker\", \"referenceString\")(a);\n }\n function l(a) {\n return r.parser.defined.includes(Te(r.sliceSerialize(r.events[r.events.length - 1][1]).slice(1, -1))) ? n(a) : t(a);\n }\n function o(a) {\n return t(a);\n }\n}\nfunction zl(e, n, t) {\n return r;\n function r(l) {\n return e.enter(\"reference\"), e.enter(\"referenceMarker\"), e.consume(l), e.exit(\"referenceMarker\"), i;\n }\n function i(l) {\n return l === 93 ? (e.enter(\"referenceMarker\"), e.consume(l), e.exit(\"referenceMarker\"), e.exit(\"reference\"), n) : t(l);\n }\n}\nconst Ll = {\n name: \"labelStartImage\",\n resolveAll: Ln.resolveAll,\n tokenize: vl\n};\nfunction vl(e, n, t) {\n const r = this;\n return i;\n function i(a) {\n return e.enter(\"labelImage\"), e.enter(\"labelImageMarker\"), e.consume(a), e.exit(\"labelImageMarker\"), l;\n }\n function l(a) {\n return a === 91 ? (e.enter(\"labelMarker\"), e.consume(a), e.exit(\"labelMarker\"), e.exit(\"labelImage\"), o) : t(a);\n }\n function o(a) {\n return a === 94 && \"_hiddenFootnoteSupport\" in r.parser.constructs ? t(a) : n(a);\n }\n}\nconst Dl = {\n name: \"labelStartLink\",\n resolveAll: Ln.resolveAll,\n tokenize: Ol\n};\nfunction Ol(e, n, t) {\n const r = this;\n return i;\n function i(o) {\n return e.enter(\"labelLink\"), e.enter(\"labelMarker\"), e.consume(o), e.exit(\"labelMarker\"), e.exit(\"labelLink\"), l;\n }\n function l(o) {\n return o === 94 && \"_hiddenFootnoteSupport\" in r.parser.constructs ? t(o) : n(o);\n }\n}\nconst rn = {\n name: \"lineEnding\",\n tokenize: Rl\n};\nfunction Rl(e, n) {\n return t;\n function t(r) {\n return e.enter(\"lineEnding\"), e.consume(r), e.exit(\"lineEnding\"), V(e, n, \"linePrefix\");\n }\n}\nconst Ye = {\n name: \"thematicBreak\",\n tokenize: Fl\n};\nfunction Fl(e, n, t) {\n let r = 0, i;\n return l;\n function l(u) {\n return e.enter(\"thematicBreak\"), o(u);\n }\n function o(u) {\n return i = u, a(u);\n }\n function a(u) {\n return u === i ? (e.enter(\"thematicBreakSequence\"), s(u)) : r >= 3 && (u === null || L(u)) ? (e.exit(\"thematicBreak\"), n(u)) : t(u);\n }\n function s(u) {\n return u === i ? (e.consume(u), r++, s) : (e.exit(\"thematicBreakSequence\"), _(u) ? V(e, a, \"whitespace\")(u) : a(u));\n }\n}\nconst K = {\n continuation: {\n tokenize: Bl\n },\n exit: Hl,\n name: \"list\",\n tokenize: _l\n}, Nl = {\n partial: !0,\n tokenize: Ul\n}, Ml = {\n partial: !0,\n tokenize: jl\n};\nfunction _l(e, n, t) {\n const r = this, i = r.events[r.events.length - 1];\n let l = i && i[1].type === \"linePrefix\" ? i[2].sliceSerialize(i[1], !0).length : 0, o = 0;\n return a;\n function a(p) {\n const b = r.containerState.type || (p === 42 || p === 43 || p === 45 ? \"listUnordered\" : \"listOrdered\");\n if (b === \"listUnordered\" ? !r.containerState.marker || p === r.containerState.marker : yn(p)) {\n if (r.containerState.type || (r.containerState.type = b, e.enter(b, {\n _container: !0\n })), b === \"listUnordered\")\n return e.enter(\"listItemPrefix\"), p === 42 || p === 45 ? e.check(Ye, t, u)(p) : u(p);\n if (!r.interrupt || p === 49)\n return e.enter(\"listItemPrefix\"), e.enter(\"listItemValue\"), s(p);\n }\n return t(p);\n }\n function s(p) {\n return yn(p) && ++o < 10 ? (e.consume(p), s) : (!r.interrupt || o < 2) && (r.containerState.marker ? p === r.containerState.marker : p === 41 || p === 46) ? (e.exit(\"listItemValue\"), u(p)) : t(p);\n }\n function u(p) {\n return e.enter(\"listItemMarker\"), e.consume(p), e.exit(\"listItemMarker\"), r.containerState.marker = r.containerState.marker || p, e.check(\n Ke,\n // Can’t be empty when interrupting.\n r.interrupt ? t : c,\n e.attempt(Nl, d, f)\n );\n }\n function c(p) {\n return r.containerState.initialBlankLine = !0, l++, d(p);\n }\n function f(p) {\n return _(p) ? (e.enter(\"listItemPrefixWhitespace\"), e.consume(p), e.exit(\"listItemPrefixWhitespace\"), d) : t(p);\n }\n function d(p) {\n return r.containerState.size = l + r.sliceSerialize(e.exit(\"listItemPrefix\"), !0).length, n(p);\n }\n}\nfunction Bl(e, n, t) {\n const r = this;\n return r.containerState._closeFlow = void 0, e.check(Ke, i, l);\n function i(a) {\n return r.containerState.furtherBlankLines = r.containerState.furtherBlankLines || r.containerState.initialBlankLine, V(e, n, \"listItemIndent\", r.containerState.size + 1)(a);\n }\n function l(a) {\n return r.containerState.furtherBlankLines || !_(a) ? (r.containerState.furtherBlankLines = void 0, r.containerState.initialBlankLine = void 0, o(a)) : (r.containerState.furtherBlankLines = void 0, r.containerState.initialBlankLine = void 0, e.attempt(Ml, n, o)(a));\n }\n function o(a) {\n return r.containerState._closeFlow = !0, r.interrupt = void 0, V(e, e.attempt(K, n, t), \"linePrefix\", r.parser.constructs.disable.null.includes(\"codeIndented\") ? void 0 : 4)(a);\n }\n}\nfunction jl(e, n, t) {\n const r = this;\n return V(e, i, \"listItemIndent\", r.containerState.size + 1);\n function i(l) {\n const o = r.events[r.events.length - 1];\n return o && o[1].type === \"listItemIndent\" && o[2].sliceSerialize(o[1], !0).length === r.containerState.size ? n(l) : t(l);\n }\n}\nfunction Hl(e) {\n e.exit(this.containerState.type);\n}\nfunction Ul(e, n, t) {\n const r = this;\n return V(e, i, \"listItemPrefixWhitespace\", r.parser.constructs.disable.null.includes(\"codeIndented\") ? void 0 : 5);\n function i(l) {\n const o = r.events[r.events.length - 1];\n return !_(l) && o && o[1].type === \"listItemPrefixWhitespace\" ? n(l) : t(l);\n }\n}\nconst lt = {\n name: \"setextUnderline\",\n resolveTo: Vl,\n tokenize: ql\n};\nfunction Vl(e, n) {\n let t = e.length, r, i, l;\n for (; t--; )\n if (e[t][0] === \"enter\") {\n if (e[t][1].type === \"content\") {\n r = t;\n break;\n }\n e[t][1].type === \"paragraph\" && (i = t);\n } else\n e[t][1].type === \"content\" && e.splice(t, 1), !l && e[t][1].type === \"definition\" && (l = t);\n const o = {\n type: \"setextHeading\",\n start: {\n ...e[i][1].start\n },\n end: {\n ...e[e.length - 1][1].end\n }\n };\n return e[i][1].type = \"setextHeadingText\", l ? (e.splice(i, 0, [\"enter\", o, n]), e.splice(l + 1, 0, [\"exit\", e[r][1], n]), e[r][1].end = {\n ...e[l][1].end\n }) : e[r][1] = o, e.push([\"exit\", o, n]), e;\n}\nfunction ql(e, n, t) {\n const r = this;\n let i;\n return l;\n function l(u) {\n let c = r.events.length, f;\n for (; c--; )\n if (r.events[c][1].type !== \"lineEnding\" && r.events[c][1].type !== \"linePrefix\" && r.events[c][1].type !== \"content\") {\n f = r.events[c][1].type === \"paragraph\";\n break;\n }\n return !r.parser.lazy[r.now().line] && (r.interrupt || f) ? (e.enter(\"setextHeadingLine\"), i = u, o(u)) : t(u);\n }\n function o(u) {\n return e.enter(\"setextHeadingLineSequence\"), a(u);\n }\n function a(u) {\n return u === i ? (e.consume(u), a) : (e.exit(\"setextHeadingLineSequence\"), _(u) ? V(e, s, \"lineSuffix\")(u) : s(u));\n }\n function s(u) {\n return u === null || L(u) ? (e.exit(\"setextHeadingLine\"), n(u)) : t(u);\n }\n}\nconst $l = {\n tokenize: Wl\n};\nfunction Wl(e) {\n const n = this, t = e.attempt(\n // Try to parse a blank line.\n Ke,\n r,\n // Try to parse initial flow (essentially, only code).\n e.attempt(this.parser.constructs.flowInitial, i, V(e, e.attempt(this.parser.constructs.flow, i, e.attempt(Gi, i)), \"linePrefix\"))\n );\n return t;\n function r(l) {\n if (l === null) {\n e.consume(l);\n return;\n }\n return e.enter(\"lineEndingBlank\"), e.consume(l), e.exit(\"lineEndingBlank\"), n.currentConstruct = void 0, t;\n }\n function i(l) {\n if (l === null) {\n e.consume(l);\n return;\n }\n return e.enter(\"lineEnding\"), e.consume(l), e.exit(\"lineEnding\"), n.currentConstruct = void 0, t;\n }\n}\nconst Yl = {\n resolveAll: Xt()\n}, Ql = Qt(\"string\"), Xl = Qt(\"text\");\nfunction Qt(e) {\n return {\n resolveAll: Xt(e === \"text\" ? Kl : void 0),\n tokenize: n\n };\n function n(t) {\n const r = this, i = this.parser.constructs[e], l = t.attempt(i, o, a);\n return o;\n function o(c) {\n return u(c) ? l(c) : a(c);\n }\n function a(c) {\n if (c === null) {\n t.consume(c);\n return;\n }\n return t.enter(\"data\"), t.consume(c), s;\n }\n function s(c) {\n return u(c) ? (t.exit(\"data\"), l(c)) : (t.consume(c), s);\n }\n function u(c) {\n if (c === null)\n return !0;\n const f = i[c];\n let d = -1;\n if (f)\n for (; ++d < f.length; ) {\n const p = f[d];\n if (!p.previous || p.previous.call(r, r.previous))\n return !0;\n }\n return !1;\n }\n }\n}\nfunction Xt(e) {\n return n;\n function n(t, r) {\n let i = -1, l;\n for (; ++i <= t.length; )\n l === void 0 ? t[i] && t[i][1].type === \"data\" && (l = i, i++) : (!t[i] || t[i][1].type !== \"data\") && (i !== l + 2 && (t[l][1].end = t[i - 1][1].end, t.splice(l + 2, i - l - 2), i = l + 2), l = void 0);\n return e ? e(t, r) : t;\n }\n}\nfunction Kl(e, n) {\n let t = 0;\n for (; ++t <= e.length; )\n if ((t === e.length || e[t][1].type === \"lineEnding\") && e[t - 1][1].type === \"data\") {\n const r = e[t - 1][1], i = n.sliceStream(r);\n let l = i.length, o = -1, a = 0, s;\n for (; l--; ) {\n const u = i[l];\n if (typeof u == \"string\") {\n for (o = u.length; u.charCodeAt(o - 1) === 32; )\n a++, o--;\n if (o) break;\n o = -1;\n } else if (u === -2)\n s = !0, a++;\n else if (u !== -1) {\n l++;\n break;\n }\n }\n if (a) {\n const u = {\n type: t === e.length || s || a < 2 ? \"lineSuffix\" : \"hardBreakTrailing\",\n start: {\n _bufferIndex: l ? o : r.start._bufferIndex + o,\n _index: r.start._index + l,\n line: r.end.line,\n column: r.end.column - a,\n offset: r.end.offset - a\n },\n end: {\n ...r.end\n }\n };\n r.end = {\n ...u.start\n }, r.start.offset === r.end.offset ? Object.assign(r, u) : (e.splice(t, 0, [\"enter\", u, n], [\"exit\", u, n]), t += 2);\n }\n t++;\n }\n return e;\n}\nconst Gl = {\n 42: K,\n 43: K,\n 45: K,\n 48: K,\n 49: K,\n 50: K,\n 51: K,\n 52: K,\n 53: K,\n 54: K,\n 55: K,\n 56: K,\n 57: K,\n 62: Ht\n}, Jl = {\n 91: tl\n}, Zl = {\n [-2]: tn,\n [-1]: tn,\n 32: tn\n}, eo = {\n 35: ul,\n 42: Ye,\n 45: [lt, Ye],\n 60: fl,\n 61: lt,\n 95: Ye,\n 96: rt,\n 126: rt\n}, no = {\n 38: Vt,\n 92: Ut\n}, to = {\n [-5]: rn,\n [-4]: rn,\n [-3]: rn,\n 33: Ll,\n 38: Vt,\n 42: xn,\n 60: [Di, kl],\n 91: Dl,\n 92: [ol, Ut],\n 93: Ln,\n 95: xn,\n 96: $i\n}, ro = {\n null: [xn, Yl]\n}, io = {\n null: [42, 95]\n}, lo = {\n null: []\n}, oo = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n attentionMarkers: io,\n contentInitial: Jl,\n disable: lo,\n document: Gl,\n flow: eo,\n flowInitial: Zl,\n insideSpan: ro,\n string: no,\n text: to\n}, Symbol.toStringTag, { value: \"Module\" }));\nfunction ao(e, n, t) {\n let r = {\n _bufferIndex: -1,\n _index: 0,\n line: t && t.line || 1,\n column: t && t.column || 1,\n offset: t && t.offset || 0\n };\n const i = {}, l = [];\n let o = [], a = [];\n const s = {\n attempt: F(R),\n check: F(y),\n consume: C,\n enter: E,\n exit: N,\n interrupt: F(y, {\n interrupt: !0\n })\n }, u = {\n code: null,\n containerState: {},\n defineSkip: w,\n events: [],\n now: b,\n parser: e,\n previous: null,\n sliceSerialize: d,\n sliceStream: p,\n write: f\n };\n let c = n.tokenize.call(u, s);\n return n.resolveAll && l.push(n), u;\n function f(z) {\n return o = ne(o, z), A(), o[o.length - 1] !== null ? [] : (q(n, 0), u.events = zn(l, u.events, u), u.events);\n }\n function d(z, T) {\n return so(p(z), T);\n }\n function p(z) {\n return uo(o, z);\n }\n function b() {\n const {\n _bufferIndex: z,\n _index: T,\n line: P,\n column: I,\n offset: v\n } = r;\n return {\n _bufferIndex: z,\n _index: T,\n line: P,\n column: I,\n offset: v\n };\n }\n function w(z) {\n i[z.line] = z.column, j();\n }\n function A() {\n let z;\n for (; r._index < o.length; ) {\n const T = o[r._index];\n if (typeof T == \"string\")\n for (z = r._index, r._bufferIndex < 0 && (r._bufferIndex = 0); r._index === z && r._bufferIndex < T.length; )\n x(T.charCodeAt(r._bufferIndex));\n else\n x(T);\n }\n }\n function x(z) {\n c = c(z);\n }\n function C(z) {\n L(z) ? (r.line++, r.column = 1, r.offset += z === -3 ? 2 : 1, j()) : z !== -1 && (r.column++, r.offset++), r._bufferIndex < 0 ? r._index++ : (r._bufferIndex++, r._bufferIndex === // Points w/ non-negative `_bufferIndex` reference\n // strings.\n /** @type {string} */\n o[r._index].length && (r._bufferIndex = -1, r._index++)), u.previous = z;\n }\n function E(z, T) {\n const P = T || {};\n return P.type = z, P.start = b(), u.events.push([\"enter\", P, u]), a.push(P), P;\n }\n function N(z) {\n const T = a.pop();\n return T.end = b(), u.events.push([\"exit\", T, u]), T;\n }\n function R(z, T) {\n q(z, T.from);\n }\n function y(z, T) {\n T.restore();\n }\n function F(z, T) {\n return P;\n function P(I, v, W) {\n let Y, re, pe, h;\n return Array.isArray(I) ? (\n /* c8 ignore next 1 */\n fe(I)\n ) : \"tokenize\" in I ? (\n // Looks like a construct.\n fe([\n /** @type {Construct} */\n I\n ])\n ) : ie(I);\n function ie(Q) {\n return Le;\n function Le(de) {\n const we = de !== null && Q[de], Se = de !== null && Q.null, He = [\n // To do: add more extension tests.\n /* c8 ignore next 2 */\n ...Array.isArray(we) ? we : we ? [we] : [],\n ...Array.isArray(Se) ? Se : Se ? [Se] : []\n ];\n return fe(He)(de);\n }\n }\n function fe(Q) {\n return Y = Q, re = 0, Q.length === 0 ? W : m(Q[re]);\n }\n function m(Q) {\n return Le;\n function Le(de) {\n return h = B(), pe = Q, Q.partial || (u.currentConstruct = Q), Q.name && u.parser.constructs.disable.null.includes(Q.name) ? xe() : Q.tokenize.call(\n // If we do have fields, create an object w/ `context` as its\n // prototype.\n // This allows a “live binding”, which is needed for `interrupt`.\n T ? Object.assign(Object.create(u), T) : u,\n s,\n le,\n xe\n )(de);\n }\n }\n function le(Q) {\n return z(pe, h), v;\n }\n function xe(Q) {\n return h.restore(), ++re < Y.length ? m(Y[re]) : W;\n }\n }\n }\n function q(z, T) {\n z.resolveAll && !l.includes(z) && l.push(z), z.resolve && ce(u.events, T, u.events.length - T, z.resolve(u.events.slice(T), u)), z.resolveTo && (u.events = z.resolveTo(u.events, u));\n }\n function B() {\n const z = b(), T = u.previous, P = u.currentConstruct, I = u.events.length, v = Array.from(a);\n return {\n from: I,\n restore: W\n };\n function W() {\n r = z, u.previous = T, u.currentConstruct = P, u.events.length = I, a = v, j();\n }\n }\n function j() {\n r.line in i && r.column < 2 && (r.column = i[r.line], r.offset += i[r.line] - 1);\n }\n}\nfunction uo(e, n) {\n const t = n.start._index, r = n.start._bufferIndex, i = n.end._index, l = n.end._bufferIndex;\n let o;\n if (t === i)\n o = [e[t].slice(r, l)];\n else {\n if (o = e.slice(t, i), r > -1) {\n const a = o[0];\n typeof a == \"string\" ? o[0] = a.slice(r) : o.shift();\n }\n l > 0 && o.push(e[i].slice(0, l));\n }\n return o;\n}\nfunction so(e, n) {\n let t = -1;\n const r = [];\n let i;\n for (; ++t < e.length; ) {\n const l = e[t];\n let o;\n if (typeof l == \"string\")\n o = l;\n else switch (l) {\n case -5: {\n o = \"\\r\";\n break;\n }\n case -4: {\n o = `\n`;\n break;\n }\n case -3: {\n o = `\\r\n`;\n break;\n }\n case -2: {\n o = n ? \" \" : \"\t\";\n break;\n }\n case -1: {\n if (!n && i) continue;\n o = \" \";\n break;\n }\n default:\n o = String.fromCharCode(l);\n }\n i = l === -2, r.push(o);\n }\n return r.join(\"\");\n}\nfunction co(e) {\n const r = {\n constructs: (\n /** @type {FullNormalizedExtension} */\n yi([oo, ...(e || {}).extensions || []])\n ),\n content: i(Ii),\n defined: [],\n document: i(Ti),\n flow: i($l),\n lazy: {},\n string: i(Ql),\n text: i(Xl)\n };\n return r;\n function i(l) {\n return o;\n function o(a) {\n return ao(r, l, a);\n }\n }\n}\nfunction po(e) {\n for (; !qt(e); )\n ;\n return e;\n}\nconst ot = /[\\0\\t\\n\\r]/g;\nfunction fo() {\n let e = 1, n = \"\", t = !0, r;\n return i;\n function i(l, o, a) {\n const s = [];\n let u, c, f, d, p;\n for (l = n + (typeof l == \"string\" ? l.toString() : new TextDecoder(o || void 0).decode(l)), f = 0, n = \"\", t && (l.charCodeAt(0) === 65279 && f++, t = void 0); f < l.length; ) {\n if (ot.lastIndex = f, u = ot.exec(l), d = u && u.index !== void 0 ? u.index : l.length, p = l.charCodeAt(d), !u) {\n n = l.slice(f);\n break;\n }\n if (p === 10 && f === d && r)\n s.push(-3), r = void 0;\n else\n switch (r && (s.push(-5), r = void 0), f < d && (s.push(l.slice(f, d)), e += d - f), p) {\n case 0: {\n s.push(65533), e++;\n break;\n }\n case 9: {\n for (c = Math.ceil(e / 4) * 4, s.push(-2); e++ < c; ) s.push(-1);\n break;\n }\n case 10: {\n s.push(-4), e = 1;\n break;\n }\n default:\n r = !0, e = 1;\n }\n f = d + 1;\n }\n return a && (r && s.push(-5), n && s.push(n), s.push(null)), s;\n }\n}\nconst ho = /\\\\([!-/:-@[-`{-~])|&(#(?:\\d{1,7}|x[\\da-f]{1,6})|[\\da-z]{1,31});/gi;\nfunction mo(e) {\n return e.replace(ho, go);\n}\nfunction go(e, n, t) {\n if (n)\n return n;\n if (t.charCodeAt(0) === 35) {\n const i = t.charCodeAt(1), l = i === 120 || i === 88;\n return jt(t.slice(l ? 2 : 1), l ? 16 : 10);\n }\n return Pn(t) || e;\n}\nconst Kt = {}.hasOwnProperty;\nfunction yo(e, n, t) {\n return typeof n != \"string\" && (t = n, n = void 0), xo(t)(po(co(t).document().write(fo()(e, n, !0))));\n}\nfunction xo(e) {\n const n = {\n transforms: [],\n canContainEols: [\"emphasis\", \"fragment\", \"heading\", \"paragraph\", \"strong\"],\n enter: {\n autolink: l(Bn),\n autolinkProtocol: B,\n autolinkEmail: B,\n atxHeading: l(Nn),\n blockQuote: l(Se),\n characterEscape: B,\n characterReference: B,\n codeFenced: l(He),\n codeFencedFenceInfo: o,\n codeFencedFenceMeta: o,\n codeIndented: l(He, o),\n codeText: l(ar, o),\n codeTextData: B,\n data: B,\n codeFlowValue: B,\n definition: l(ur),\n definitionDestinationString: o,\n definitionLabelString: o,\n definitionTitleString: o,\n emphasis: l(sr),\n hardBreakEscape: l(Mn),\n hardBreakTrailing: l(Mn),\n htmlFlow: l(_n, o),\n htmlFlowData: B,\n htmlText: l(_n, o),\n htmlTextData: B,\n image: l(cr),\n label: o,\n link: l(Bn),\n listItem: l(pr),\n listItemValue: d,\n listOrdered: l(jn, f),\n listUnordered: l(jn),\n paragraph: l(fr),\n reference: m,\n referenceString: o,\n resourceDestinationString: o,\n resourceTitleString: o,\n setextHeading: l(Nn),\n strong: l(hr),\n thematicBreak: l(dr)\n },\n exit: {\n atxHeading: s(),\n atxHeadingSequence: R,\n autolink: s(),\n autolinkEmail: we,\n autolinkProtocol: de,\n blockQuote: s(),\n characterEscapeValue: j,\n characterReferenceMarkerHexadecimal: xe,\n characterReferenceMarkerNumeric: xe,\n characterReferenceValue: Q,\n characterReference: Le,\n codeFenced: s(A),\n codeFencedFence: w,\n codeFencedFenceInfo: p,\n codeFencedFenceMeta: b,\n codeFlowValue: j,\n codeIndented: s(x),\n codeText: s(v),\n codeTextData: j,\n data: j,\n definition: s(),\n definitionDestinationString: N,\n definitionLabelString: C,\n definitionTitleString: E,\n emphasis: s(),\n hardBreakEscape: s(T),\n hardBreakTrailing: s(T),\n htmlFlow: s(P),\n htmlFlowData: j,\n htmlText: s(I),\n htmlTextData: j,\n image: s(Y),\n label: pe,\n labelText: re,\n lineEnding: z,\n link: s(W),\n listItem: s(),\n listOrdered: s(),\n listUnordered: s(),\n paragraph: s(),\n referenceString: le,\n resourceDestinationString: h,\n resourceTitleString: ie,\n resource: fe,\n setextHeading: s(q),\n setextHeadingLineSequence: F,\n setextHeadingText: y,\n strong: s(),\n thematicBreak: s()\n }\n };\n Gt(n, (e || {}).mdastExtensions || []);\n const t = {};\n return r;\n function r(g) {\n let S = {\n type: \"root\",\n children: []\n };\n const D = {\n stack: [S],\n tokenStack: [],\n config: n,\n enter: a,\n exit: u,\n buffer: o,\n resume: c,\n data: t\n }, M = [];\n let H = -1;\n for (; ++H < g.length; )\n if (g[H][1].type === \"listOrdered\" || g[H][1].type === \"listUnordered\")\n if (g[H][0] === \"enter\")\n M.push(H);\n else {\n const oe = M.pop();\n H = i(g, oe, H);\n }\n for (H = -1; ++H < g.length; ) {\n const oe = n[g[H][0]];\n Kt.call(oe, g[H][1].type) && oe[g[H][1].type].call(Object.assign({\n sliceSerialize: g[H][2].sliceSerialize\n }, D), g[H][1]);\n }\n if (D.tokenStack.length > 0) {\n const oe = D.tokenStack[D.tokenStack.length - 1];\n (oe[1] || at).call(D, void 0, oe[0]);\n }\n for (S.position = {\n start: ge(g.length > 0 ? g[0][1].start : {\n line: 1,\n column: 1,\n offset: 0\n }),\n end: ge(g.length > 0 ? g[g.length - 2][1].end : {\n line: 1,\n column: 1,\n offset: 0\n })\n }, H = -1; ++H < n.transforms.length; )\n S = n.transforms[H](S) || S;\n return S;\n }\n function i(g, S, D) {\n let M = S - 1, H = -1, oe = !1, ke, he, ve, De;\n for (; ++M <= D; ) {\n const J = g[M];\n switch (J[1].type) {\n case \"listUnordered\":\n case \"listOrdered\":\n case \"blockQuote\": {\n J[0] === \"enter\" ? H++ : H--, De = void 0;\n break;\n }\n case \"lineEndingBlank\": {\n J[0] === \"enter\" && (ke && !De && !H && !ve && (ve = M), De = void 0);\n break;\n }\n case \"linePrefix\":\n case \"listItemValue\":\n case \"listItemMarker\":\n case \"listItemPrefix\":\n case \"listItemPrefixWhitespace\":\n break;\n default:\n De = void 0;\n }\n if (!H && J[0] === \"enter\" && J[1].type === \"listItemPrefix\" || H === -1 && J[0] === \"exit\" && (J[1].type === \"listUnordered\" || J[1].type === \"listOrdered\")) {\n if (ke) {\n let Ce = M;\n for (he = void 0; Ce--; ) {\n const me = g[Ce];\n if (me[1].type === \"lineEnding\" || me[1].type === \"lineEndingBlank\") {\n if (me[0] === \"exit\") continue;\n he && (g[he][1].type = \"lineEndingBlank\", oe = !0), me[1].type = \"lineEnding\", he = Ce;\n } else if (!(me[1].type === \"linePrefix\" || me[1].type === \"blockQuotePrefix\" || me[1].type === \"blockQuotePrefixWhitespace\" || me[1].type === \"blockQuoteMarker\" || me[1].type === \"listItemIndent\")) break;\n }\n ve && (!he || ve < he) && (ke._spread = !0), ke.end = Object.assign({}, he ? g[he][1].start : J[1].end), g.splice(he || M, 0, [\"exit\", ke, J[2]]), M++, D++;\n }\n if (J[1].type === \"listItemPrefix\") {\n const Ce = {\n type: \"listItem\",\n _spread: !1,\n start: Object.assign({}, J[1].start),\n // @ts-expect-error: we’ll add `end` in a second.\n end: void 0\n };\n ke = Ce, g.splice(M, 0, [\"enter\", Ce, J[2]]), M++, D++, ve = void 0, De = !0;\n }\n }\n }\n return g[S][1]._spread = oe, D;\n }\n function l(g, S) {\n return D;\n function D(M) {\n a.call(this, g(M), M), S && S.call(this, M);\n }\n }\n function o() {\n this.stack.push({\n type: \"fragment\",\n children: []\n });\n }\n function a(g, S, D) {\n this.stack[this.stack.length - 1].children.push(g), this.stack.push(g), this.tokenStack.push([S, D || void 0]), g.position = {\n start: ge(S.start),\n // @ts-expect-error: `end` will be patched later.\n end: void 0\n };\n }\n function s(g) {\n return S;\n function S(D) {\n g && g.call(this, D), u.call(this, D);\n }\n }\n function u(g, S) {\n const D = this.stack.pop(), M = this.tokenStack.pop();\n if (M)\n M[0].type !== g.type && (S ? S.call(this, g, M[0]) : (M[1] || at).call(this, g, M[0]));\n else throw new Error(\"Cannot close `\" + g.type + \"` (\" + Fe({\n start: g.start,\n end: g.end\n }) + \"): it’s not open\");\n D.position.end = ge(g.end);\n }\n function c() {\n return di(this.stack.pop());\n }\n function f() {\n this.data.expectingFirstListItemValue = !0;\n }\n function d(g) {\n if (this.data.expectingFirstListItemValue) {\n const S = this.stack[this.stack.length - 2];\n S.start = Number.parseInt(this.sliceSerialize(g), 10), this.data.expectingFirstListItemValue = void 0;\n }\n }\n function p() {\n const g = this.resume(), S = this.stack[this.stack.length - 1];\n S.lang = g;\n }\n function b() {\n const g = this.resume(), S = this.stack[this.stack.length - 1];\n S.meta = g;\n }\n function w() {\n this.data.flowCodeInside || (this.buffer(), this.data.flowCodeInside = !0);\n }\n function A() {\n const g = this.resume(), S = this.stack[this.stack.length - 1];\n S.value = g.replace(/^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g, \"\"), this.data.flowCodeInside = void 0;\n }\n function x() {\n const g = this.resume(), S = this.stack[this.stack.length - 1];\n S.value = g.replace(/(\\r?\\n|\\r)$/g, \"\");\n }\n function C(g) {\n const S = this.resume(), D = this.stack[this.stack.length - 1];\n D.label = S, D.identifier = Te(this.sliceSerialize(g)).toLowerCase();\n }\n function E() {\n const g = this.resume(), S = this.stack[this.stack.length - 1];\n S.title = g;\n }\n function N() {\n const g = this.resume(), S = this.stack[this.stack.length - 1];\n S.url = g;\n }\n function R(g) {\n const S = this.stack[this.stack.length - 1];\n if (!S.depth) {\n const D = this.sliceSerialize(g).length;\n S.depth = D;\n }\n }\n function y() {\n this.data.setextHeadingSlurpLineEnding = !0;\n }\n function F(g) {\n const S = this.stack[this.stack.length - 1];\n S.depth = this.sliceSerialize(g).codePointAt(0) === 61 ? 1 : 2;\n }\n function q() {\n this.data.setextHeadingSlurpLineEnding = void 0;\n }\n function B(g) {\n const D = this.stack[this.stack.length - 1].children;\n let M = D[D.length - 1];\n (!M || M.type !== \"text\") && (M = mr(), M.position = {\n start: ge(g.start),\n // @ts-expect-error: we’ll add `end` later.\n end: void 0\n }, D.push(M)), this.stack.push(M);\n }\n function j(g) {\n const S = this.stack.pop();\n S.value += this.sliceSerialize(g), S.position.end = ge(g.end);\n }\n function z(g) {\n const S = this.stack[this.stack.length - 1];\n if (this.data.atHardBreak) {\n const D = S.children[S.children.length - 1];\n D.position.end = ge(g.end), this.data.atHardBreak = void 0;\n return;\n }\n !this.data.setextHeadingSlurpLineEnding && n.canContainEols.includes(S.type) && (B.call(this, g), j.call(this, g));\n }\n function T() {\n this.data.atHardBreak = !0;\n }\n function P() {\n const g = this.resume(), S = this.stack[this.stack.length - 1];\n S.value = g;\n }\n function I() {\n const g = this.resume(), S = this.stack[this.stack.length - 1];\n S.value = g;\n }\n function v() {\n const g = this.resume(), S = this.stack[this.stack.length - 1];\n S.value = g;\n }\n function W() {\n const g = this.stack[this.stack.length - 1];\n if (this.data.inReference) {\n const S = this.data.referenceType || \"shortcut\";\n g.type += \"Reference\", g.referenceType = S, delete g.url, delete g.title;\n } else\n delete g.identifier, delete g.label;\n this.data.referenceType = void 0;\n }\n function Y() {\n const g = this.stack[this.stack.length - 1];\n if (this.data.inReference) {\n const S = this.data.referenceType || \"shortcut\";\n g.type += \"Reference\", g.referenceType = S, delete g.url, delete g.title;\n } else\n delete g.identifier, delete g.label;\n this.data.referenceType = void 0;\n }\n function re(g) {\n const S = this.sliceSerialize(g), D = this.stack[this.stack.length - 2];\n D.label = mo(S), D.identifier = Te(S).toLowerCase();\n }\n function pe() {\n const g = this.stack[this.stack.length - 1], S = this.resume(), D = this.stack[this.stack.length - 1];\n if (this.data.inReference = !0, D.type === \"link\") {\n const M = g.children;\n D.children = M;\n } else\n D.alt = S;\n }\n function h() {\n const g = this.resume(), S = this.stack[this.stack.length - 1];\n S.url = g;\n }\n function ie() {\n const g = this.resume(), S = this.stack[this.stack.length - 1];\n S.title = g;\n }\n function fe() {\n this.data.inReference = void 0;\n }\n function m() {\n this.data.referenceType = \"collapsed\";\n }\n function le(g) {\n const S = this.resume(), D = this.stack[this.stack.length - 1];\n D.label = S, D.identifier = Te(this.sliceSerialize(g)).toLowerCase(), this.data.referenceType = \"full\";\n }\n function xe(g) {\n this.data.characterReferenceType = g.type;\n }\n function Q(g) {\n const S = this.sliceSerialize(g), D = this.data.characterReferenceType;\n let M;\n D ? (M = jt(S, D === \"characterReferenceMarkerNumeric\" ? 10 : 16), this.data.characterReferenceType = void 0) : M = Pn(S);\n const H = this.stack[this.stack.length - 1];\n H.value += M;\n }\n function Le(g) {\n const S = this.stack.pop();\n S.position.end = ge(g.end);\n }\n function de(g) {\n j.call(this, g);\n const S = this.stack[this.stack.length - 1];\n S.url = this.sliceSerialize(g);\n }\n function we(g) {\n j.call(this, g);\n const S = this.stack[this.stack.length - 1];\n S.url = \"mailto:\" + this.sliceSerialize(g);\n }\n function Se() {\n return {\n type: \"blockquote\",\n children: []\n };\n }\n function He() {\n return {\n type: \"code\",\n lang: null,\n meta: null,\n value: \"\"\n };\n }\n function ar() {\n return {\n type: \"inlineCode\",\n value: \"\"\n };\n }\n function ur() {\n return {\n type: \"definition\",\n identifier: \"\",\n label: null,\n title: null,\n url: \"\"\n };\n }\n function sr() {\n return {\n type: \"emphasis\",\n children: []\n };\n }\n function Nn() {\n return {\n type: \"heading\",\n // @ts-expect-error `depth` will be set later.\n depth: 0,\n children: []\n };\n }\n function Mn() {\n return {\n type: \"break\"\n };\n }\n function _n() {\n return {\n type: \"html\",\n value: \"\"\n };\n }\n function cr() {\n return {\n type: \"image\",\n title: null,\n url: \"\",\n alt: null\n };\n }\n function Bn() {\n return {\n type: \"link\",\n title: null,\n url: \"\",\n children: []\n };\n }\n function jn(g) {\n return {\n type: \"list\",\n ordered: g.type === \"listOrdered\",\n start: null,\n spread: g._spread,\n children: []\n };\n }\n function pr(g) {\n return {\n type: \"listItem\",\n spread: g._spread,\n checked: null,\n children: []\n };\n }\n function fr() {\n return {\n type: \"paragraph\",\n children: []\n };\n }\n function hr() {\n return {\n type: \"strong\",\n children: []\n };\n }\n function mr() {\n return {\n type: \"text\",\n value: \"\"\n };\n }\n function dr() {\n return {\n type: \"thematicBreak\"\n };\n }\n}\nfunction ge(e) {\n return {\n line: e.line,\n column: e.column,\n offset: e.offset\n };\n}\nfunction Gt(e, n) {\n let t = -1;\n for (; ++t < n.length; ) {\n const r = n[t];\n Array.isArray(r) ? Gt(e, r) : ko(e, r);\n }\n}\nfunction ko(e, n) {\n let t;\n for (t in n)\n if (Kt.call(n, t))\n switch (t) {\n case \"canContainEols\": {\n const r = n[t];\n r && e[t].push(...r);\n break;\n }\n case \"transforms\": {\n const r = n[t];\n r && e[t].push(...r);\n break;\n }\n case \"enter\":\n case \"exit\": {\n const r = n[t];\n r && Object.assign(e[t], r);\n break;\n }\n }\n}\nfunction at(e, n) {\n throw e ? new Error(\"Cannot close `\" + e.type + \"` (\" + Fe({\n start: e.start,\n end: e.end\n }) + \"): a different token (`\" + n.type + \"`, \" + Fe({\n start: n.start,\n end: n.end\n }) + \") is open\") : new Error(\"Cannot close document, a token (`\" + n.type + \"`, \" + Fe({\n start: n.start,\n end: n.end\n }) + \") is still open\");\n}\nfunction bo(e) {\n const n = this;\n n.parser = t;\n function t(r) {\n return yo(r, {\n ...n.data(\"settings\"),\n ...e,\n // Note: these options are not in the readme.\n // The goal is for them to be set by plugins on `data` instead of being\n // passed by users.\n extensions: n.data(\"micromarkExtensions\") || [],\n mdastExtensions: n.data(\"fromMarkdownExtensions\") || []\n });\n }\n}\nfunction wo(e, n) {\n const t = {\n type: \"element\",\n tagName: \"blockquote\",\n properties: {},\n children: e.wrap(e.all(n), !0)\n };\n return e.patch(n, t), e.applyData(n, t);\n}\nfunction So(e, n) {\n const t = { type: \"element\", tagName: \"br\", properties: {}, children: [] };\n return e.patch(n, t), [e.applyData(n, t), { type: \"text\", value: `\n` }];\n}\nfunction Co(e, n) {\n const t = n.value ? n.value + `\n` : \"\", r = {};\n n.lang && (r.className = [\"language-\" + n.lang]);\n let i = {\n type: \"element\",\n tagName: \"code\",\n properties: r,\n children: [{ type: \"text\", value: t }]\n };\n return n.meta && (i.data = { meta: n.meta }), e.patch(n, i), i = e.applyData(n, i), i = { type: \"element\", tagName: \"pre\", properties: {}, children: [i] }, e.patch(n, i), i;\n}\nfunction Eo(e, n) {\n const t = {\n type: \"element\",\n tagName: \"del\",\n properties: {},\n children: e.all(n)\n };\n return e.patch(n, t), e.applyData(n, t);\n}\nfunction Io(e, n) {\n const t = {\n type: \"element\",\n tagName: \"em\",\n properties: {},\n children: e.all(n)\n };\n return e.patch(n, t), e.applyData(n, t);\n}\nfunction Ao(e, n) {\n const t = typeof e.options.clobberPrefix == \"string\" ? e.options.clobberPrefix : \"user-content-\", r = String(n.identifier).toUpperCase(), i = ze(r.toLowerCase()), l = e.footnoteOrder.indexOf(r);\n let o, a = e.footnoteCounts.get(r);\n a === void 0 ? (a = 0, e.footnoteOrder.push(r), o = e.footnoteOrder.length) : o = l + 1, a += 1, e.footnoteCounts.set(r, a);\n const s = {\n type: \"element\",\n tagName: \"a\",\n properties: {\n href: \"#\" + t + \"fn-\" + i,\n id: t + \"fnref-\" + i + (a > 1 ? \"-\" + a : \"\"),\n dataFootnoteRef: !0,\n ariaDescribedBy: [\"footnote-label\"]\n },\n children: [{ type: \"text\", value: String(o) }]\n };\n e.patch(n, s);\n const u = {\n type: \"element\",\n tagName: \"sup\",\n properties: {},\n children: [s]\n };\n return e.patch(n, u), e.applyData(n, u);\n}\nfunction To(e, n) {\n const t = {\n type: \"element\",\n tagName: \"h\" + n.depth,\n properties: {},\n children: e.all(n)\n };\n return e.patch(n, t), e.applyData(n, t);\n}\nfunction Po(e, n) {\n if (e.options.allowDangerousHtml) {\n const t = { type: \"raw\", value: n.value };\n return e.patch(n, t), e.applyData(n, t);\n }\n}\nfunction Jt(e, n) {\n const t = n.referenceType;\n let r = \"]\";\n if (t === \"collapsed\" ? r += \"[]\" : t === \"full\" && (r += \"[\" + (n.label || n.identifier) + \"]\"), n.type === \"imageReference\")\n return [{ type: \"text\", value: \"![\" + n.alt + r }];\n const i = e.all(n), l = i[0];\n l && l.type === \"text\" ? l.value = \"[\" + l.value : i.unshift({ type: \"text\", value: \"[\" });\n const o = i[i.length - 1];\n return o && o.type === \"text\" ? o.value += r : i.push({ type: \"text\", value: r }), i;\n}\nfunction zo(e, n) {\n const t = String(n.identifier).toUpperCase(), r = e.definitionById.get(t);\n if (!r)\n return Jt(e, n);\n const i = { src: ze(r.url || \"\"), alt: n.alt };\n r.title !== null && r.title !== void 0 && (i.title = r.title);\n const l = { type: \"element\", tagName: \"img\", properties: i, children: [] };\n return e.patch(n, l), e.applyData(n, l);\n}\nfunction Lo(e, n) {\n const t = { src: ze(n.url) };\n n.alt !== null && n.alt !== void 0 && (t.alt = n.alt), n.title !== null && n.title !== void 0 && (t.title = n.title);\n const r = { type: \"element\", tagName: \"img\", properties: t, children: [] };\n return e.patch(n, r), e.applyData(n, r);\n}\nfunction vo(e, n) {\n const t = { type: \"text\", value: n.value.replace(/\\r?\\n|\\r/g, \" \") };\n e.patch(n, t);\n const r = {\n type: \"element\",\n tagName: \"code\",\n properties: {},\n children: [t]\n };\n return e.patch(n, r), e.applyData(n, r);\n}\nfunction Do(e, n) {\n const t = String(n.identifier).toUpperCase(), r = e.definitionById.get(t);\n if (!r)\n return Jt(e, n);\n const i = { href: ze(r.url || \"\") };\n r.title !== null && r.title !== void 0 && (i.title = r.title);\n const l = {\n type: \"element\",\n tagName: \"a\",\n properties: i,\n children: e.all(n)\n };\n return e.patch(n, l), e.applyData(n, l);\n}\nfunction Oo(e, n) {\n const t = { href: ze(n.url) };\n n.title !== null && n.title !== void 0 && (t.title = n.title);\n const r = {\n type: \"element\",\n tagName: \"a\",\n properties: t,\n children: e.all(n)\n };\n return e.patch(n, r), e.applyData(n, r);\n}\nfunction Ro(e, n, t) {\n const r = e.all(n), i = t ? Fo(t) : Zt(n), l = {}, o = [];\n if (typeof n.checked == \"boolean\") {\n const c = r[0];\n let f;\n c && c.type === \"element\" && c.tagName === \"p\" ? f = c : (f = { type: \"element\", tagName: \"p\", properties: {}, children: [] }, r.unshift(f)), f.children.length > 0 && f.children.unshift({ type: \"text\", value: \" \" }), f.children.unshift({\n type: \"element\",\n tagName: \"input\",\n properties: { type: \"checkbox\", checked: n.checked, disabled: !0 },\n children: []\n }), l.className = [\"task-list-item\"];\n }\n let a = -1;\n for (; ++a < r.length; ) {\n const c = r[a];\n (i || a !== 0 || c.type !== \"element\" || c.tagName !== \"p\") && o.push({ type: \"text\", value: `\n` }), c.type === \"element\" && c.tagName === \"p\" && !i ? o.push(...c.children) : o.push(c);\n }\n const s = r[r.length - 1];\n s && (i || s.type !== \"element\" || s.tagName !== \"p\") && o.push({ type: \"text\", value: `\n` });\n const u = { type: \"element\", tagName: \"li\", properties: l, children: o };\n return e.patch(n, u), e.applyData(n, u);\n}\nfunction Fo(e) {\n let n = !1;\n if (e.type === \"list\") {\n n = e.spread || !1;\n const t = e.children;\n let r = -1;\n for (; !n && ++r < t.length; )\n n = Zt(t[r]);\n }\n return n;\n}\nfunction Zt(e) {\n const n = e.spread;\n return n ?? e.children.length > 1;\n}\nfunction No(e, n) {\n const t = {}, r = e.all(n);\n let i = -1;\n for (typeof n.start == \"number\" && n.start !== 1 && (t.start = n.start); ++i < r.length; ) {\n const o = r[i];\n if (o.type === \"element\" && o.tagName === \"li\" && o.properties && Array.isArray(o.properties.className) && o.properties.className.includes(\"task-list-item\")) {\n t.className = [\"contains-task-list\"];\n break;\n }\n }\n const l = {\n type: \"element\",\n tagName: n.ordered ? \"ol\" : \"ul\",\n properties: t,\n children: e.wrap(r, !0)\n };\n return e.patch(n, l), e.applyData(n, l);\n}\nfunction Mo(e, n) {\n const t = {\n type: \"element\",\n tagName: \"p\",\n properties: {},\n children: e.all(n)\n };\n return e.patch(n, t), e.applyData(n, t);\n}\nfunction _o(e, n) {\n const t = { type: \"root\", children: e.wrap(e.all(n)) };\n return e.patch(n, t), e.applyData(n, t);\n}\nfunction Bo(e, n) {\n const t = {\n type: \"element\",\n tagName: \"strong\",\n properties: {},\n children: e.all(n)\n };\n return e.patch(n, t), e.applyData(n, t);\n}\nfunction jo(e, n) {\n const t = e.all(n), r = t.shift(), i = [];\n if (r) {\n const o = {\n type: \"element\",\n tagName: \"thead\",\n properties: {},\n children: e.wrap([r], !0)\n };\n e.patch(n.children[0], o), i.push(o);\n }\n if (t.length > 0) {\n const o = {\n type: \"element\",\n tagName: \"tbody\",\n properties: {},\n children: e.wrap(t, !0)\n }, a = En(n.children[1]), s = Ot(n.children[n.children.length - 1]);\n a && s && (o.position = { start: a, end: s }), i.push(o);\n }\n const l = {\n type: \"element\",\n tagName: \"table\",\n properties: {},\n children: e.wrap(i, !0)\n };\n return e.patch(n, l), e.applyData(n, l);\n}\nfunction Ho(e, n, t) {\n const r = t ? t.children : void 0, l = (r ? r.indexOf(n) : 1) === 0 ? \"th\" : \"td\", o = t && t.type === \"table\" ? t.align : void 0, a = o ? o.length : n.children.length;\n let s = -1;\n const u = [];\n for (; ++s < a; ) {\n const f = n.children[s], d = {}, p = o ? o[s] : void 0;\n p && (d.align = p);\n let b = { type: \"element\", tagName: l, properties: d, children: [] };\n f && (b.children = e.all(f), e.patch(f, b), b = e.applyData(f, b)), u.push(b);\n }\n const c = {\n type: \"element\",\n tagName: \"tr\",\n properties: {},\n children: e.wrap(u, !0)\n };\n return e.patch(n, c), e.applyData(n, c);\n}\nfunction Uo(e, n) {\n const t = {\n type: \"element\",\n tagName: \"td\",\n // Assume body cell.\n properties: {},\n children: e.all(n)\n };\n return e.patch(n, t), e.applyData(n, t);\n}\nconst ut = 9, st = 32;\nfunction Vo(e) {\n const n = String(e), t = /\\r?\\n|\\r/g;\n let r = t.exec(n), i = 0;\n const l = [];\n for (; r; )\n l.push(\n ct(n.slice(i, r.index), i > 0, !0),\n r[0]\n ), i = r.index + r[0].length, r = t.exec(n);\n return l.push(ct(n.slice(i), i > 0, !1)), l.join(\"\");\n}\nfunction ct(e, n, t) {\n let r = 0, i = e.length;\n if (n) {\n let l = e.codePointAt(r);\n for (; l === ut || l === st; )\n r++, l = e.codePointAt(r);\n }\n if (t) {\n let l = e.codePointAt(i - 1);\n for (; l === ut || l === st; )\n i--, l = e.codePointAt(i - 1);\n }\n return i > r ? e.slice(r, i) : \"\";\n}\nfunction qo(e, n) {\n const t = { type: \"text\", value: Vo(String(n.value)) };\n return e.patch(n, t), e.applyData(n, t);\n}\nfunction $o(e, n) {\n const t = {\n type: \"element\",\n tagName: \"hr\",\n properties: {},\n children: []\n };\n return e.patch(n, t), e.applyData(n, t);\n}\nconst Wo = {\n blockquote: wo,\n break: So,\n code: Co,\n delete: Eo,\n emphasis: Io,\n footnoteReference: Ao,\n heading: To,\n html: Po,\n imageReference: zo,\n image: Lo,\n inlineCode: vo,\n linkReference: Do,\n link: Oo,\n listItem: Ro,\n list: No,\n paragraph: Mo,\n // @ts-expect-error: root is different, but hard to type.\n root: _o,\n strong: Bo,\n table: jo,\n tableCell: Uo,\n tableRow: Ho,\n text: qo,\n thematicBreak: $o,\n toml: qe,\n yaml: qe,\n definition: qe,\n footnoteDefinition: qe\n};\nfunction qe() {\n}\nconst er = -1, Ge = 0, Me = 1, Qe = 2, vn = 3, Dn = 4, On = 5, Rn = 6, nr = 7, tr = 8, pt = typeof self == \"object\" ? self : globalThis, Yo = (e, n) => {\n const t = (i, l) => (e.set(l, i), i), r = (i) => {\n if (e.has(i))\n return e.get(i);\n const [l, o] = n[i];\n switch (l) {\n case Ge:\n case er:\n return t(o, i);\n case Me: {\n const a = t([], i);\n for (const s of o)\n a.push(r(s));\n return a;\n }\n case Qe: {\n const a = t({}, i);\n for (const [s, u] of o)\n a[r(s)] = r(u);\n return a;\n }\n case vn:\n return t(new Date(o), i);\n case Dn: {\n const { source: a, flags: s } = o;\n return t(new RegExp(a, s), i);\n }\n case On: {\n const a = t(/* @__PURE__ */ new Map(), i);\n for (const [s, u] of o)\n a.set(r(s), r(u));\n return a;\n }\n case Rn: {\n const a = t(/* @__PURE__ */ new Set(), i);\n for (const s of o)\n a.add(r(s));\n return a;\n }\n case nr: {\n const { name: a, message: s } = o;\n return t(new pt[a](s), i);\n }\n case tr:\n return t(BigInt(o), i);\n case \"BigInt\":\n return t(Object(BigInt(o)), i);\n case \"ArrayBuffer\":\n return t(new Uint8Array(o).buffer, o);\n case \"DataView\": {\n const { buffer: a } = new Uint8Array(o);\n return t(new DataView(a), o);\n }\n }\n return t(new pt[l](o), i);\n };\n return r;\n}, ft = (e) => Yo(/* @__PURE__ */ new Map(), e)(0), Ie = \"\", { toString: Qo } = {}, { keys: Xo } = Object, Re = (e) => {\n const n = typeof e;\n if (n !== \"object\" || !e)\n return [Ge, n];\n const t = Qo.call(e).slice(8, -1);\n switch (t) {\n case \"Array\":\n return [Me, Ie];\n case \"Object\":\n return [Qe, Ie];\n case \"Date\":\n return [vn, Ie];\n case \"RegExp\":\n return [Dn, Ie];\n case \"Map\":\n return [On, Ie];\n case \"Set\":\n return [Rn, Ie];\n case \"DataView\":\n return [Me, t];\n }\n return t.includes(\"Array\") ? [Me, t] : t.includes(\"Error\") ? [nr, t] : [Qe, t];\n}, $e = ([e, n]) => e === Ge && (n === \"function\" || n === \"symbol\"), Ko = (e, n, t, r) => {\n const i = (o, a) => {\n const s = r.push(o) - 1;\n return t.set(a, s), s;\n }, l = (o) => {\n if (t.has(o))\n return t.get(o);\n let [a, s] = Re(o);\n switch (a) {\n case Ge: {\n let c = o;\n switch (s) {\n case \"bigint\":\n a = tr, c = o.toString();\n break;\n case \"function\":\n case \"symbol\":\n if (e)\n throw new TypeError(\"unable to serialize \" + s);\n c = null;\n break;\n case \"undefined\":\n return i([er], o);\n }\n return i([a, c], o);\n }\n case Me: {\n if (s) {\n let d = o;\n return s === \"DataView\" ? d = new Uint8Array(o.buffer) : s === \"ArrayBuffer\" && (d = new Uint8Array(o)), i([s, [...d]], o);\n }\n const c = [], f = i([a, c], o);\n for (const d of o)\n c.push(l(d));\n return f;\n }\n case Qe: {\n if (s)\n switch (s) {\n case \"BigInt\":\n return i([s, o.toString()], o);\n case \"Boolean\":\n case \"Number\":\n case \"String\":\n return i([s, o.valueOf()], o);\n }\n if (n && \"toJSON\" in o)\n return l(o.toJSON());\n const c = [], f = i([a, c], o);\n for (const d of Xo(o))\n (e || !$e(Re(o[d]))) && c.push([l(d), l(o[d])]);\n return f;\n }\n case vn:\n return i([a, o.toISOString()], o);\n case Dn: {\n const { source: c, flags: f } = o;\n return i([a, { source: c, flags: f }], o);\n }\n case On: {\n const c = [], f = i([a, c], o);\n for (const [d, p] of o)\n (e || !($e(Re(d)) || $e(Re(p)))) && c.push([l(d), l(p)]);\n return f;\n }\n case Rn: {\n const c = [], f = i([a, c], o);\n for (const d of o)\n (e || !$e(Re(d))) && c.push(l(d));\n return f;\n }\n }\n const { message: u } = o;\n return i([a, { name: s, message: u }], o);\n };\n return l;\n}, ht = (e, { json: n, lossy: t } = {}) => {\n const r = [];\n return Ko(!(n || t), !!n, /* @__PURE__ */ new Map(), r)(e), r;\n}, Xe = typeof structuredClone == \"function\" ? (\n /* c8 ignore start */\n (e, n) => n && (\"json\" in n || \"lossy\" in n) ? ft(ht(e, n)) : structuredClone(e)\n) : (e, n) => ft(ht(e, n));\nfunction Go(e, n) {\n const t = [{ type: \"text\", value: \"↩\" }];\n return n > 1 && t.push({\n type: \"element\",\n tagName: \"sup\",\n properties: {},\n children: [{ type: \"text\", value: String(n) }]\n }), t;\n}\nfunction Jo(e, n) {\n return \"Back to reference \" + (e + 1) + (n > 1 ? \"-\" + n : \"\");\n}\nfunction Zo(e) {\n const n = typeof e.options.clobberPrefix == \"string\" ? e.options.clobberPrefix : \"user-content-\", t = e.options.footnoteBackContent || Go, r = e.options.footnoteBackLabel || Jo, i = e.options.footnoteLabel || \"Footnotes\", l = e.options.footnoteLabelTagName || \"h2\", o = e.options.footnoteLabelProperties || {\n className: [\"sr-only\"]\n }, a = [];\n let s = -1;\n for (; ++s < e.footnoteOrder.length; ) {\n const u = e.footnoteById.get(\n e.footnoteOrder[s]\n );\n if (!u)\n continue;\n const c = e.all(u), f = String(u.identifier).toUpperCase(), d = ze(f.toLowerCase());\n let p = 0;\n const b = [], w = e.footnoteCounts.get(f);\n for (; w !== void 0 && ++p <= w; ) {\n b.length > 0 && b.push({ type: \"text\", value: \" \" });\n let C = typeof t == \"string\" ? t : t(s, p);\n typeof C == \"string\" && (C = { type: \"text\", value: C }), b.push({\n type: \"element\",\n tagName: \"a\",\n properties: {\n href: \"#\" + n + \"fnref-\" + d + (p > 1 ? \"-\" + p : \"\"),\n dataFootnoteBackref: \"\",\n ariaLabel: typeof r == \"string\" ? r : r(s, p),\n className: [\"data-footnote-backref\"]\n },\n children: Array.isArray(C) ? C : [C]\n });\n }\n const A = c[c.length - 1];\n if (A && A.type === \"element\" && A.tagName === \"p\") {\n const C = A.children[A.children.length - 1];\n C && C.type === \"text\" ? C.value += \" \" : A.children.push({ type: \"text\", value: \" \" }), A.children.push(...b);\n } else\n c.push(...b);\n const x = {\n type: \"element\",\n tagName: \"li\",\n properties: { id: n + \"fn-\" + d },\n children: e.wrap(c, !0)\n };\n e.patch(u, x), a.push(x);\n }\n if (a.length !== 0)\n return {\n type: \"element\",\n tagName: \"section\",\n properties: { dataFootnotes: !0, className: [\"footnotes\"] },\n children: [\n {\n type: \"element\",\n tagName: l,\n properties: {\n ...Xe(o),\n id: \"footnote-label\"\n },\n children: [{ type: \"text\", value: i }]\n },\n { type: \"text\", value: `\n` },\n {\n type: \"element\",\n tagName: \"ol\",\n properties: {},\n children: e.wrap(a, !0)\n },\n { type: \"text\", value: `\n` }\n ]\n };\n}\nconst rr = (\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * (<Condition extends string>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n * (<Condition extends Props>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n * (<Condition extends TestFunction>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate<Condition, Node>) &\n * ((test?: null | undefined) => (node?: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n * ((test?: Test) => Check)\n * )}\n */\n /**\n * @param {Test} [test]\n * @returns {Check}\n */\n function(e) {\n if (e == null)\n return ra;\n if (typeof e == \"function\")\n return Je(e);\n if (typeof e == \"object\")\n return Array.isArray(e) ? ea(e) : na(e);\n if (typeof e == \"string\")\n return ta(e);\n throw new Error(\"Expected function, string, or object as test\");\n }\n);\nfunction ea(e) {\n const n = [];\n let t = -1;\n for (; ++t < e.length; )\n n[t] = rr(e[t]);\n return Je(r);\n function r(...i) {\n let l = -1;\n for (; ++l < n.length; )\n if (n[l].apply(this, i)) return !0;\n return !1;\n }\n}\nfunction na(e) {\n const n = (\n /** @type {Record<string, unknown>} */\n e\n );\n return Je(t);\n function t(r) {\n const i = (\n /** @type {Record<string, unknown>} */\n /** @type {unknown} */\n r\n );\n let l;\n for (l in e)\n if (i[l] !== n[l]) return !1;\n return !0;\n }\n}\nfunction ta(e) {\n return Je(n);\n function n(t) {\n return t && t.type === e;\n }\n}\nfunction Je(e) {\n return n;\n function n(t, r, i) {\n return !!(ia(t) && e.call(\n this,\n t,\n typeof r == \"number\" ? r : void 0,\n i || void 0\n ));\n }\n}\nfunction ra() {\n return !0;\n}\nfunction ia(e) {\n return e !== null && typeof e == \"object\" && \"type\" in e;\n}\nconst ir = [], la = !0, mt = !1, oa = \"skip\";\nfunction aa(e, n, t, r) {\n let i;\n typeof n == \"function\" && typeof t != \"function\" ? (r = t, t = n) : i = n;\n const l = rr(i), o = r ? -1 : 1;\n a(e, void 0, [])();\n function a(s, u, c) {\n const f = (\n /** @type {Record<string, unknown>} */\n s && typeof s == \"object\" ? s : {}\n );\n if (typeof f.type == \"string\") {\n const p = (\n // `hast`\n typeof f.tagName == \"string\" ? f.tagName : (\n // `xast`\n typeof f.name == \"string\" ? f.name : void 0\n )\n );\n Object.defineProperty(d, \"name\", {\n value: \"node (\" + (s.type + (p ? \"<\" + p + \">\" : \"\")) + \")\"\n });\n }\n return d;\n function d() {\n let p = ir, b, w, A;\n if ((!n || l(s, u, c[c.length - 1] || void 0)) && (p = ua(t(s, c)), p[0] === mt))\n return p;\n if (\"children\" in s && s.children) {\n const x = (\n /** @type {UnistParent} */\n s\n );\n if (x.children && p[0] !== oa)\n for (w = (r ? x.children.length : -1) + o, A = c.concat(x); w > -1 && w < x.children.length; ) {\n const C = x.children[w];\n if (b = a(C, w, A)(), b[0] === mt)\n return b;\n w = typeof b[1] == \"number\" ? b[1] : w + o;\n }\n }\n return p;\n }\n }\n}\nfunction ua(e) {\n return Array.isArray(e) ? e : typeof e == \"number\" ? [la, e] : e == null ? ir : [e];\n}\nfunction lr(e, n, t, r) {\n let i, l, o;\n typeof n == \"function\" ? (l = void 0, o = n, i = t) : (l = n, o = t, i = r), aa(e, l, a, i);\n function a(s, u) {\n const c = u[u.length - 1], f = c ? c.children.indexOf(s) : void 0;\n return o(s, f, c);\n }\n}\nconst kn = {}.hasOwnProperty, sa = {};\nfunction ca(e, n) {\n const t = n || sa, r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Map(), l = /* @__PURE__ */ new Map(), o = { ...Wo, ...t.handlers }, a = {\n all: u,\n applyData: fa,\n definitionById: r,\n footnoteById: i,\n footnoteCounts: l,\n footnoteOrder: [],\n handlers: o,\n one: s,\n options: t,\n patch: pa,\n wrap: ma\n };\n return lr(e, function(c) {\n if (c.type === \"definition\" || c.type === \"footnoteDefinition\") {\n const f = c.type === \"definition\" ? r : i, d = String(c.identifier).toUpperCase();\n f.has(d) || f.set(d, c);\n }\n }), a;\n function s(c, f) {\n const d = c.type, p = a.handlers[d];\n if (kn.call(a.handlers, d) && p)\n return p(a, c, f);\n if (a.options.passThrough && a.options.passThrough.includes(d)) {\n if (\"children\" in c) {\n const { children: w, ...A } = c, x = Xe(A);\n return x.children = a.all(c), x;\n }\n return Xe(c);\n }\n return (a.options.unknownHandler || ha)(a, c, f);\n }\n function u(c) {\n const f = [];\n if (\"children\" in c) {\n const d = c.children;\n let p = -1;\n for (; ++p < d.length; ) {\n const b = a.one(d[p], c);\n if (b) {\n if (p && d[p - 1].type === \"break\" && (!Array.isArray(b) && b.type === \"text\" && (b.value = dt(b.value)), !Array.isArray(b) && b.type === \"element\")) {\n const w = b.children[0];\n w && w.type === \"text\" && (w.value = dt(w.value));\n }\n Array.isArray(b) ? f.push(...b) : f.push(b);\n }\n }\n }\n return f;\n }\n}\nfunction pa(e, n) {\n e.position && (n.position = $r(e));\n}\nfunction fa(e, n) {\n let t = n;\n if (e && e.data) {\n const r = e.data.hName, i = e.data.hChildren, l = e.data.hProperties;\n if (typeof r == \"string\")\n if (t.type === \"element\")\n t.tagName = r;\n else {\n const o = \"children\" in t ? t.children : [t];\n t = { type: \"element\", tagName: r, properties: {}, children: o };\n }\n t.type === \"element\" && l && Object.assign(t.properties, Xe(l)), \"children\" in t && t.children && i !== null && i !== void 0 && (t.children = i);\n }\n return t;\n}\nfunction ha(e, n) {\n const t = n.data || {}, r = \"value\" in n && !(kn.call(t, \"hProperties\") || kn.call(t, \"hChildren\")) ? { type: \"text\", value: n.value } : {\n type: \"element\",\n tagName: \"div\",\n properties: {},\n children: e.all(n)\n };\n return e.patch(n, r), e.applyData(n, r);\n}\nfunction ma(e, n) {\n const t = [];\n let r = -1;\n for (n && t.push({ type: \"text\", value: `\n` }); ++r < e.length; )\n r && t.push({ type: \"text\", value: `\n` }), t.push(e[r]);\n return n && e.length > 0 && t.push({ type: \"text\", value: `\n` }), t;\n}\nfunction dt(e) {\n let n = 0, t = e.charCodeAt(n);\n for (; t === 9 || t === 32; )\n n++, t = e.charCodeAt(n);\n return e.slice(n);\n}\nfunction gt(e, n) {\n const t = ca(e, n), r = t.one(e, void 0), i = Zo(t), l = Array.isArray(r) ? { type: \"root\", children: r } : r || { type: \"root\", children: [] };\n return i && l.children.push({ type: \"text\", value: `\n` }, i), l;\n}\nfunction da(e, n) {\n return e && \"run\" in e ? async function(t, r) {\n const i = (\n /** @type {HastRoot} */\n gt(t, { file: r, ...n })\n );\n await e.run(i, r);\n } : function(t, r) {\n return (\n /** @type {HastRoot} */\n gt(t, { file: r, ...e || n })\n );\n };\n}\nfunction yt(e) {\n if (e)\n throw e;\n}\nvar ln, xt;\nfunction ga() {\n if (xt) return ln;\n xt = 1;\n var e = Object.prototype.hasOwnProperty, n = Object.prototype.toString, t = Object.defineProperty, r = Object.getOwnPropertyDescriptor, i = function(u) {\n return typeof Array.isArray == \"function\" ? Array.isArray(u) : n.call(u) === \"[object Array]\";\n }, l = function(u) {\n if (!u || n.call(u) !== \"[object Object]\")\n return !1;\n var c = e.call(u, \"constructor\"), f = u.constructor && u.constructor.prototype && e.call(u.constructor.prototype, \"isPrototypeOf\");\n if (u.constructor && !c && !f)\n return !1;\n var d;\n for (d in u)\n ;\n return typeof d > \"u\" || e.call(u, d);\n }, o = function(u, c) {\n t && c.name === \"__proto__\" ? t(u, c.name, {\n enumerable: !0,\n configurable: !0,\n value: c.newValue,\n writable: !0\n }) : u[c.name] = c.newValue;\n }, a = function(u, c) {\n if (c === \"__proto__\")\n if (e.call(u, c)) {\n if (r)\n return r(u, c).value;\n } else return;\n return u[c];\n };\n return ln = function s() {\n var u, c, f, d, p, b, w = arguments[0], A = 1, x = arguments.length, C = !1;\n for (typeof w == \"boolean\" && (C = w, w = arguments[1] || {}, A = 2), (w == null || typeof w != \"object\" && typeof w != \"function\") && (w = {}); A < x; ++A)\n if (u = arguments[A], u != null)\n for (c in u)\n f = a(w, c), d = a(u, c), w !== d && (C && d && (l(d) || (p = i(d))) ? (p ? (p = !1, b = f && i(f) ? f : []) : b = f && l(f) ? f : {}, o(w, { name: c, newValue: s(C, b, d) })) : typeof d < \"u\" && o(w, { name: c, newValue: d }));\n return w;\n }, ln;\n}\nvar ya = ga();\nconst on = /* @__PURE__ */ Dt(ya);\nfunction bn(e) {\n if (typeof e != \"object\" || e === null)\n return !1;\n const n = Object.getPrototypeOf(e);\n return (n === null || n === Object.prototype || Object.getPrototypeOf(n) === null) && !(Symbol.toStringTag in e) && !(Symbol.iterator in e);\n}\nfunction xa() {\n const e = [], n = { run: t, use: r };\n return n;\n function t(...i) {\n let l = -1;\n const o = i.pop();\n if (typeof o != \"function\")\n throw new TypeError(\"Expected function as last argument, not \" + o);\n a(null, ...i);\n function a(s, ...u) {\n const c = e[++l];\n let f = -1;\n if (s) {\n o(s);\n return;\n }\n for (; ++f < i.length; )\n (u[f] === null || u[f] === void 0) && (u[f] = i[f]);\n i = u, c ? ka(c, a)(...u) : o(null, ...u);\n }\n }\n function r(i) {\n if (typeof i != \"function\")\n throw new TypeError(\n \"Expected `middelware` to be a function, not \" + i\n );\n return e.push(i), n;\n }\n}\nfunction ka(e, n) {\n let t;\n return r;\n function r(...o) {\n const a = e.length > o.length;\n let s;\n a && o.push(i);\n try {\n s = e.apply(this, o);\n } catch (u) {\n const c = (\n /** @type {Error} */\n u\n );\n if (a && t)\n throw c;\n return i(c);\n }\n a || (s && s.then && typeof s.then == \"function\" ? s.then(l, i) : s instanceof Error ? i(s) : l(s));\n }\n function i(o, ...a) {\n t || (t = !0, n(o, ...a));\n }\n function l(o) {\n i(null, o);\n }\n}\nconst ue = { basename: ba, dirname: wa, extname: Sa, join: Ca, sep: \"/\" };\nfunction ba(e, n) {\n if (n !== void 0 && typeof n != \"string\")\n throw new TypeError('\"ext\" argument must be a string');\n je(e);\n let t = 0, r = -1, i = e.length, l;\n if (n === void 0 || n.length === 0 || n.length > e.length) {\n for (; i--; )\n if (e.codePointAt(i) === 47) {\n if (l) {\n t = i + 1;\n break;\n }\n } else r < 0 && (l = !0, r = i + 1);\n return r < 0 ? \"\" : e.slice(t, r);\n }\n if (n === e)\n return \"\";\n let o = -1, a = n.length - 1;\n for (; i--; )\n if (e.codePointAt(i) === 47) {\n if (l) {\n t = i + 1;\n break;\n }\n } else\n o < 0 && (l = !0, o = i + 1), a > -1 && (e.codePointAt(i) === n.codePointAt(a--) ? a < 0 && (r = i) : (a = -1, r = o));\n return t === r ? r = o : r < 0 && (r = e.length), e.slice(t, r);\n}\nfunction wa(e) {\n if (je(e), e.length === 0)\n return \".\";\n let n = -1, t = e.length, r;\n for (; --t; )\n if (e.codePointAt(t) === 47) {\n if (r) {\n n = t;\n break;\n }\n } else r || (r = !0);\n return n < 0 ? e.codePointAt(0) === 47 ? \"/\" : \".\" : n === 1 && e.codePointAt(0) === 47 ? \"//\" : e.slice(0, n);\n}\nfunction Sa(e) {\n je(e);\n let n = e.length, t = -1, r = 0, i = -1, l = 0, o;\n for (; n--; ) {\n const a = e.codePointAt(n);\n if (a === 47) {\n if (o) {\n r = n + 1;\n break;\n }\n continue;\n }\n t < 0 && (o = !0, t = n + 1), a === 46 ? i < 0 ? i = n : l !== 1 && (l = 1) : i > -1 && (l = -1);\n }\n return i < 0 || t < 0 || // We saw a non-dot character immediately before the dot.\n l === 0 || // The (right-most) trimmed path component is exactly `..`.\n l === 1 && i === t - 1 && i === r + 1 ? \"\" : e.slice(i, t);\n}\nfunction Ca(...e) {\n let n = -1, t;\n for (; ++n < e.length; )\n je(e[n]), e[n] && (t = t === void 0 ? e[n] : t + \"/\" + e[n]);\n return t === void 0 ? \".\" : Ea(t);\n}\nfunction Ea(e) {\n je(e);\n const n = e.codePointAt(0) === 47;\n let t = Ia(e, !n);\n return t.length === 0 && !n && (t = \".\"), t.length > 0 && e.codePointAt(e.length - 1) === 47 && (t += \"/\"), n ? \"/\" + t : t;\n}\nfunction Ia(e, n) {\n let t = \"\", r = 0, i = -1, l = 0, o = -1, a, s;\n for (; ++o <= e.length; ) {\n if (o < e.length)\n a = e.codePointAt(o);\n else {\n if (a === 47)\n break;\n a = 47;\n }\n if (a === 47) {\n if (!(i === o - 1 || l === 1)) if (i !== o - 1 && l === 2) {\n if (t.length < 2 || r !== 2 || t.codePointAt(t.length - 1) !== 46 || t.codePointAt(t.length - 2) !== 46) {\n if (t.length > 2) {\n if (s = t.lastIndexOf(\"/\"), s !== t.length - 1) {\n s < 0 ? (t = \"\", r = 0) : (t = t.slice(0, s), r = t.length - 1 - t.lastIndexOf(\"/\")), i = o, l = 0;\n continue;\n }\n } else if (t.length > 0) {\n t = \"\", r = 0, i = o, l = 0;\n continue;\n }\n }\n n && (t = t.length > 0 ? t + \"/..\" : \"..\", r = 2);\n } else\n t.length > 0 ? t += \"/\" + e.slice(i + 1, o) : t = e.slice(i + 1, o), r = o - i - 1;\n i = o, l = 0;\n } else a === 46 && l > -1 ? l++ : l = -1;\n }\n return t;\n}\nfunction je(e) {\n if (typeof e != \"string\")\n throw new TypeError(\n \"Path must be a string. Received \" + JSON.stringify(e)\n );\n}\nconst Aa = { cwd: Ta };\nfunction Ta() {\n return \"/\";\n}\nfunction wn(e) {\n return !!(e !== null && typeof e == \"object\" && \"href\" in e && e.href && \"protocol\" in e && e.protocol && // @ts-expect-error: indexing is fine.\n e.auth === void 0);\n}\nfunction Pa(e) {\n if (typeof e == \"string\")\n e = new URL(e);\n else if (!wn(e)) {\n const n = new TypeError(\n 'The \"path\" argument must be of type string or an instance of URL. Received `' + e + \"`\"\n );\n throw n.code = \"ERR_INVALID_ARG_TYPE\", n;\n }\n if (e.protocol !== \"file:\") {\n const n = new TypeError(\"The URL must be of scheme file\");\n throw n.code = \"ERR_INVALID_URL_SCHEME\", n;\n }\n return za(e);\n}\nfunction za(e) {\n if (e.hostname !== \"\") {\n const r = new TypeError(\n 'File URL host must be \"localhost\" or empty on darwin'\n );\n throw r.code = \"ERR_INVALID_FILE_URL_HOST\", r;\n }\n const n = e.pathname;\n let t = -1;\n for (; ++t < n.length; )\n if (n.codePointAt(t) === 37 && n.codePointAt(t + 1) === 50) {\n const r = n.codePointAt(t + 2);\n if (r === 70 || r === 102) {\n const i = new TypeError(\n \"File URL path must not include encoded / characters\"\n );\n throw i.code = \"ERR_INVALID_FILE_URL_PATH\", i;\n }\n }\n return decodeURIComponent(n);\n}\nconst an = (\n /** @type {const} */\n [\n \"history\",\n \"path\",\n \"basename\",\n \"stem\",\n \"extname\",\n \"dirname\"\n ]\n);\nclass or {\n /**\n * Create a new virtual file.\n *\n * `options` is treated as:\n *\n * * `string` or `Uint8Array` — `{value: options}`\n * * `URL` — `{path: options}`\n * * `VFile` — shallow copies its data over to the new file\n * * `object` — all fields are shallow copied over to the new file\n *\n * Path related fields are set in the following order (least specific to\n * most specific): `history`, `path`, `basename`, `stem`, `extname`,\n * `dirname`.\n *\n * You cannot set `dirname` or `extname` without setting either `history`,\n * `path`, `basename`, or `stem` too.\n *\n * @param {Compatible | null | undefined} [value]\n * File value.\n * @returns\n * New instance.\n */\n constructor(n) {\n let t;\n n ? wn(n) ? t = { path: n } : typeof n == \"string\" || La(n) ? t = { value: n } : t = n : t = {}, this.cwd = \"cwd\" in t ? \"\" : Aa.cwd(), this.data = {}, this.history = [], this.messages = [], this.value, this.map, this.result, this.stored;\n let r = -1;\n for (; ++r < an.length; ) {\n const l = an[r];\n l in t && t[l] !== void 0 && t[l] !== null && (this[l] = l === \"history\" ? [...t[l]] : t[l]);\n }\n let i;\n for (i in t)\n an.includes(i) || (this[i] = t[i]);\n }\n /**\n * Get the basename (including extname) (example: `'index.min.js'`).\n *\n * @returns {string | undefined}\n * Basename.\n */\n get basename() {\n return typeof this.path == \"string\" ? ue.basename(this.path) : void 0;\n }\n /**\n * Set basename (including extname) (`'index.min.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n *\n * @param {string} basename\n * Basename.\n * @returns {undefined}\n * Nothing.\n */\n set basename(n) {\n sn(n, \"basename\"), un(n, \"basename\"), this.path = ue.join(this.dirname || \"\", n);\n }\n /**\n * Get the parent path (example: `'~'`).\n *\n * @returns {string | undefined}\n * Dirname.\n */\n get dirname() {\n return typeof this.path == \"string\" ? ue.dirname(this.path) : void 0;\n }\n /**\n * Set the parent path (example: `'~'`).\n *\n * Cannot be set if there’s no `path` yet.\n *\n * @param {string | undefined} dirname\n * Dirname.\n * @returns {undefined}\n * Nothing.\n */\n set dirname(n) {\n kt(this.basename, \"dirname\"), this.path = ue.join(n || \"\", this.basename);\n }\n /**\n * Get the extname (including dot) (example: `'.js'`).\n *\n * @returns {string | undefined}\n * Extname.\n */\n get extname() {\n return typeof this.path == \"string\" ? ue.extname(this.path) : void 0;\n }\n /**\n * Set the extname (including dot) (example: `'.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be set if there’s no `path` yet.\n *\n * @param {string | undefined} extname\n * Extname.\n * @returns {undefined}\n * Nothing.\n */\n set extname(n) {\n if (un(n, \"extname\"), kt(this.dirname, \"extname\"), n) {\n if (n.codePointAt(0) !== 46)\n throw new Error(\"`extname` must start with `.`\");\n if (n.includes(\".\", 1))\n throw new Error(\"`extname` cannot contain multiple dots\");\n }\n this.path = ue.join(this.dirname, this.stem + (n || \"\"));\n }\n /**\n * Get the full path (example: `'~/index.min.js'`).\n *\n * @returns {string}\n * Path.\n */\n get path() {\n return this.history[this.history.length - 1];\n }\n /**\n * Set the full path (example: `'~/index.min.js'`).\n *\n * Cannot be nullified.\n * You can set a file URL (a `URL` object with a `file:` protocol) which will\n * be turned into a path with `url.fileURLToPath`.\n *\n * @param {URL | string} path\n * Path.\n * @returns {undefined}\n * Nothing.\n */\n set path(n) {\n wn(n) && (n = Pa(n)), sn(n, \"path\"), this.path !== n && this.history.push(n);\n }\n /**\n * Get the stem (basename w/o extname) (example: `'index.min'`).\n *\n * @returns {string | undefined}\n * Stem.\n */\n get stem() {\n return typeof this.path == \"string\" ? ue.basename(this.path, this.extname) : void 0;\n }\n /**\n * Set the stem (basename w/o extname) (example: `'index.min'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n *\n * @param {string} stem\n * Stem.\n * @returns {undefined}\n * Nothing.\n */\n set stem(n) {\n sn(n, \"stem\"), un(n, \"stem\"), this.path = ue.join(this.dirname || \"\", n + (this.extname || \"\"));\n }\n // Normal prototypal methods.\n /**\n * Create a fatal message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `true` (error; file not usable)\n * and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {never}\n * Never.\n * @throws {VFileMessage}\n * Message.\n */\n fail(n, t, r) {\n const i = this.message(n, t, r);\n throw i.fatal = !0, i;\n }\n /**\n * Create an info message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `undefined` (info; change\n * likely not needed) and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n info(n, t, r) {\n const i = this.message(n, t, r);\n return i.fatal = void 0, i;\n }\n /**\n * Create a message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `false` (warning; change may be\n * needed) and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n message(n, t, r) {\n const i = new X(\n // @ts-expect-error: the overloads are fine.\n n,\n t,\n r\n );\n return this.path && (i.name = this.path + \":\" + i.name, i.file = this.path), i.fatal = !1, this.messages.push(i), i;\n }\n /**\n * Serialize the file.\n *\n * > **Note**: which encodings are supported depends on the engine.\n * > For info on Node.js, see:\n * > <https://nodejs.org/api/util.html#whatwg-supported-encodings>.\n *\n * @param {string | null | undefined} [encoding='utf8']\n * Character encoding to understand `value` as when it’s a `Uint8Array`\n * (default: `'utf-8'`).\n * @returns {string}\n * Serialized file.\n */\n toString(n) {\n return this.value === void 0 ? \"\" : typeof this.value == \"string\" ? this.value : new TextDecoder(n || void 0).decode(this.value);\n }\n}\nfunction un(e, n) {\n if (e && e.includes(ue.sep))\n throw new Error(\n \"`\" + n + \"` cannot be a path: did not expect `\" + ue.sep + \"`\"\n );\n}\nfunction sn(e, n) {\n if (!e)\n throw new Error(\"`\" + n + \"` cannot be empty\");\n}\nfunction kt(e, n) {\n if (!e)\n throw new Error(\"Setting `\" + n + \"` requires `path` to be set too\");\n}\nfunction La(e) {\n return !!(e && typeof e == \"object\" && \"byteLength\" in e && \"byteOffset\" in e);\n}\nconst va = (\n /**\n * @type {new <Parameters extends Array<unknown>, Result>(property: string | symbol) => (...parameters: Parameters) => Result}\n */\n /** @type {unknown} */\n /**\n * @this {Function}\n * @param {string | symbol} property\n * @returns {(...parameters: Array<unknown>) => unknown}\n */\n function(e) {\n const r = (\n /** @type {Record<string | symbol, Function>} */\n // Prototypes do exist.\n // type-coverage:ignore-next-line\n this.constructor.prototype\n ), i = r[e], l = function() {\n return i.apply(l, arguments);\n };\n return Object.setPrototypeOf(l, r), l;\n }\n), Da = {}.hasOwnProperty;\nclass Fn extends va {\n /**\n * Create a processor.\n */\n constructor() {\n super(\"copy\"), this.Compiler = void 0, this.Parser = void 0, this.attachers = [], this.compiler = void 0, this.freezeIndex = -1, this.frozen = void 0, this.namespace = {}, this.parser = void 0, this.transformers = xa();\n }\n /**\n * Copy a processor.\n *\n * @deprecated\n * This is a private internal method and should not be used.\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n * New *unfrozen* processor ({@linkcode Processor}) that is\n * configured to work the same as its ancestor.\n * When the descendant processor is configured in the future it does not\n * affect the ancestral processor.\n */\n copy() {\n const n = (\n /** @type {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>} */\n new Fn()\n );\n let t = -1;\n for (; ++t < this.attachers.length; ) {\n const r = this.attachers[t];\n n.use(...r);\n }\n return n.data(on(!0, {}, this.namespace)), n;\n }\n /**\n * Configure the processor with info available to all plugins.\n * Information is stored in an object.\n *\n * Typically, options can be given to a specific plugin, but sometimes it\n * makes sense to have information shared with several plugins.\n * For example, a list of HTML elements that are self-closing, which is\n * needed during all phases.\n *\n * > **Note**: setting information cannot occur on *frozen* processors.\n * > Call the processor first to create a new unfrozen processor.\n *\n * > **Note**: to register custom data in TypeScript, augment the\n * > {@linkcode Data} interface.\n *\n * @example\n * This example show how to get and set info:\n *\n * ```js\n * import {unified} from 'unified'\n *\n * const processor = unified().data('alpha', 'bravo')\n *\n * processor.data('alpha') // => 'bravo'\n *\n * processor.data() // => {alpha: 'bravo'}\n *\n * processor.data({charlie: 'delta'})\n *\n * processor.data() // => {charlie: 'delta'}\n * ```\n *\n * @template {keyof Data} Key\n *\n * @overload\n * @returns {Data}\n *\n * @overload\n * @param {Data} dataset\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n *\n * @overload\n * @param {Key} key\n * @returns {Data[Key]}\n *\n * @overload\n * @param {Key} key\n * @param {Data[Key]} value\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n *\n * @param {Data | Key} [key]\n * Key to get or set, or entire dataset to set, or nothing to get the\n * entire dataset (optional).\n * @param {Data[Key]} [value]\n * Value to set (optional).\n * @returns {unknown}\n * The current processor when setting, the value at `key` when getting, or\n * the entire dataset when getting without key.\n */\n data(n, t) {\n return typeof n == \"string\" ? arguments.length === 2 ? (fn(\"data\", this.frozen), this.namespace[n] = t, this) : Da.call(this.namespace, n) && this.namespace[n] || void 0 : n ? (fn(\"data\", this.frozen), this.namespace = n, this) : this.namespace;\n }\n /**\n * Freeze a processor.\n *\n * Frozen processors are meant to be extended and not to be configured\n * directly.\n *\n * When a processor is frozen it cannot be unfrozen.\n * New processors working the same way can be created by calling the\n * processor.\n *\n * It’s possible to freeze processors explicitly by calling `.freeze()`.\n * Processors freeze automatically when `.parse()`, `.run()`, `.runSync()`,\n * `.stringify()`, `.process()`, or `.processSync()` are called.\n *\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n * The current processor.\n */\n freeze() {\n if (this.frozen)\n return this;\n const n = (\n /** @type {Processor} */\n /** @type {unknown} */\n this\n );\n for (; ++this.freezeIndex < this.attachers.length; ) {\n const [t, ...r] = this.attachers[this.freezeIndex];\n if (r[0] === !1)\n continue;\n r[0] === !0 && (r[0] = void 0);\n const i = t.call(n, ...r);\n typeof i == \"function\" && this.transformers.use(i);\n }\n return this.frozen = !0, this.freezeIndex = Number.POSITIVE_INFINITY, this;\n }\n /**\n * Parse text to a syntax tree.\n *\n * > **Note**: `parse` freezes the processor if not already *frozen*.\n *\n * > **Note**: `parse` performs the parse phase, not the run phase or other\n * > phases.\n *\n * @param {Compatible | undefined} [file]\n * file to parse (optional); typically `string` or `VFile`; any value\n * accepted as `x` in `new VFile(x)`.\n * @returns {ParseTree extends undefined ? Node : ParseTree}\n * Syntax tree representing `file`.\n */\n parse(n) {\n this.freeze();\n const t = We(n), r = this.parser || this.Parser;\n return cn(\"parse\", r), r(String(t), t);\n }\n /**\n * Process the given file as configured on the processor.\n *\n * > **Note**: `process` freezes the processor if not already *frozen*.\n *\n * > **Note**: `process` performs the parse, run, and stringify phases.\n *\n * @overload\n * @param {Compatible | undefined} file\n * @param {ProcessCallback<VFileWithOutput<CompileResult>>} done\n * @returns {undefined}\n *\n * @overload\n * @param {Compatible | undefined} [file]\n * @returns {Promise<VFileWithOutput<CompileResult>>}\n *\n * @param {Compatible | undefined} [file]\n * File (optional); typically `string` or `VFile`]; any value accepted as\n * `x` in `new VFile(x)`.\n * @param {ProcessCallback<VFileWithOutput<CompileResult>> | undefined} [done]\n * Callback (optional).\n * @returns {Promise<VFile> | undefined}\n * Nothing if `done` is given.\n * Otherwise a promise, rejected with a fatal error or resolved with the\n * processed file.\n *\n * The parsed, transformed, and compiled value is available at\n * `file.value` (see note).\n *\n * > **Note**: unified typically compiles by serializing: most\n * > compilers return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n process(n, t) {\n const r = this;\n return this.freeze(), cn(\"process\", this.parser || this.Parser), pn(\"process\", this.compiler || this.Compiler), t ? i(void 0, t) : new Promise(i);\n function i(l, o) {\n const a = We(n), s = (\n /** @type {HeadTree extends undefined ? Node : HeadTree} */\n /** @type {unknown} */\n r.parse(a)\n );\n r.run(s, a, function(c, f, d) {\n if (c || !f || !d)\n return u(c);\n const p = (\n /** @type {CompileTree extends undefined ? Node : CompileTree} */\n /** @type {unknown} */\n f\n ), b = r.stringify(p, d);\n Fa(b) ? d.value = b : d.result = b, u(\n c,\n /** @type {VFileWithOutput<CompileResult>} */\n d\n );\n });\n function u(c, f) {\n c || !f ? o(c) : l ? l(f) : t(void 0, f);\n }\n }\n }\n /**\n * Process the given file as configured on the processor.\n *\n * An error is thrown if asynchronous transforms are configured.\n *\n * > **Note**: `processSync` freezes the processor if not already *frozen*.\n *\n * > **Note**: `processSync` performs the parse, run, and stringify phases.\n *\n * @param {Compatible | undefined} [file]\n * File (optional); typically `string` or `VFile`; any value accepted as\n * `x` in `new VFile(x)`.\n * @returns {VFileWithOutput<CompileResult>}\n * The processed file.\n *\n * The parsed, transformed, and compiled value is available at\n * `file.value` (see note).\n *\n * > **Note**: unified typically compiles by serializing: most\n * > compilers return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n processSync(n) {\n let t = !1, r;\n return this.freeze(), cn(\"processSync\", this.parser || this.Parser), pn(\"processSync\", this.compiler || this.Compiler), this.process(n, i), wt(\"processSync\", \"process\", t), r;\n function i(l, o) {\n t = !0, yt(l), r = o;\n }\n }\n /**\n * Run *transformers* on a syntax tree.\n *\n * > **Note**: `run` freezes the processor if not already *frozen*.\n *\n * > **Note**: `run` performs the run phase, not other phases.\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {RunCallback<TailTree extends undefined ? Node : TailTree>} done\n * @returns {undefined}\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {Compatible | undefined} file\n * @param {RunCallback<TailTree extends undefined ? Node : TailTree>} done\n * @returns {undefined}\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {Compatible | undefined} [file]\n * @returns {Promise<TailTree extends undefined ? Node : TailTree>}\n *\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * Tree to transform and inspect.\n * @param {(\n * RunCallback<TailTree extends undefined ? Node : TailTree> |\n * Compatible\n * )} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @param {RunCallback<TailTree extends undefined ? Node : TailTree>} [done]\n * Callback (optional).\n * @returns {Promise<TailTree extends undefined ? Node : TailTree> | undefined}\n * Nothing if `done` is given.\n * Otherwise, a promise rejected with a fatal error or resolved with the\n * transformed tree.\n */\n run(n, t, r) {\n bt(n), this.freeze();\n const i = this.transformers;\n return !r && typeof t == \"function\" && (r = t, t = void 0), r ? l(void 0, r) : new Promise(l);\n function l(o, a) {\n const s = We(t);\n i.run(n, s, u);\n function u(c, f, d) {\n const p = (\n /** @type {TailTree extends undefined ? Node : TailTree} */\n f || n\n );\n c ? a(c) : o ? o(p) : r(void 0, p, d);\n }\n }\n }\n /**\n * Run *transformers* on a syntax tree.\n *\n * An error is thrown if asynchronous transforms are configured.\n *\n * > **Note**: `runSync` freezes the processor if not already *frozen*.\n *\n * > **Note**: `runSync` performs the run phase, not other phases.\n *\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * Tree to transform and inspect.\n * @param {Compatible | undefined} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @returns {TailTree extends undefined ? Node : TailTree}\n * Transformed tree.\n */\n runSync(n, t) {\n let r = !1, i;\n return this.run(n, t, l), wt(\"runSync\", \"run\", r), i;\n function l(o, a) {\n yt(o), i = a, r = !0;\n }\n }\n /**\n * Compile a syntax tree.\n *\n * > **Note**: `stringify` freezes the processor if not already *frozen*.\n *\n * > **Note**: `stringify` performs the stringify phase, not the run phase\n * > or other phases.\n *\n * @param {CompileTree extends undefined ? Node : CompileTree} tree\n * Tree to compile.\n * @param {Compatible | undefined} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @returns {CompileResult extends undefined ? Value : CompileResult}\n * Textual representation of the tree (see note).\n *\n * > **Note**: unified typically compiles by serializing: most compilers\n * > return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n stringify(n, t) {\n this.freeze();\n const r = We(t), i = this.compiler || this.Compiler;\n return pn(\"stringify\", i), bt(n), i(n, r);\n }\n /**\n * Configure the processor to use a plugin, a list of usable values, or a\n * preset.\n *\n * If the processor is already using a plugin, the previous plugin\n * configuration is changed based on the options that are passed in.\n * In other words, the plugin is not added a second time.\n *\n * > **Note**: `use` cannot be called on *frozen* processors.\n * > Call the processor first to create a new unfrozen processor.\n *\n * @example\n * There are many ways to pass plugins to `.use()`.\n * This example gives an overview:\n *\n * ```js\n * import {unified} from 'unified'\n *\n * unified()\n * // Plugin with options:\n * .use(pluginA, {x: true, y: true})\n * // Passing the same plugin again merges configuration (to `{x: true, y: false, z: true}`):\n * .use(pluginA, {y: false, z: true})\n * // Plugins:\n * .use([pluginB, pluginC])\n * // Two plugins, the second with options:\n * .use([pluginD, [pluginE, {}]])\n * // Preset with plugins and settings:\n * .use({plugins: [pluginF, [pluginG, {}]], settings: {position: false}})\n * // Settings only:\n * .use({settings: {position: false}})\n * ```\n *\n * @template {Array<unknown>} [Parameters=[]]\n * @template {Node | string | undefined} [Input=undefined]\n * @template [Output=Input]\n *\n * @overload\n * @param {Preset | null | undefined} [preset]\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n *\n * @overload\n * @param {PluggableList} list\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n *\n * @overload\n * @param {Plugin<Parameters, Input, Output>} plugin\n * @param {...(Parameters | [boolean])} parameters\n * @returns {UsePlugin<ParseTree, HeadTree, TailTree, CompileTree, CompileResult, Input, Output>}\n *\n * @param {PluggableList | Plugin | Preset | null | undefined} value\n * Usable value.\n * @param {...unknown} parameters\n * Parameters, when a plugin is given as a usable value.\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n * Current processor.\n */\n use(n, ...t) {\n const r = this.attachers, i = this.namespace;\n if (fn(\"use\", this.frozen), n != null) if (typeof n == \"function\")\n s(n, t);\n else if (typeof n == \"object\")\n Array.isArray(n) ? a(n) : o(n);\n else\n throw new TypeError(\"Expected usable value, not `\" + n + \"`\");\n return this;\n function l(u) {\n if (typeof u == \"function\")\n s(u, []);\n else if (typeof u == \"object\")\n if (Array.isArray(u)) {\n const [c, ...f] = (\n /** @type {PluginTuple<Array<unknown>>} */\n u\n );\n s(c, f);\n } else\n o(u);\n else\n throw new TypeError(\"Expected usable value, not `\" + u + \"`\");\n }\n function o(u) {\n if (!(\"plugins\" in u) && !(\"settings\" in u))\n throw new Error(\n \"Expected usable value but received an empty preset, which is probably a mistake: presets typically come with `plugins` and sometimes with `settings`, but this has neither\"\n );\n a(u.plugins), u.settings && (i.settings = on(!0, i.settings, u.settings));\n }\n function a(u) {\n let c = -1;\n if (u != null) if (Array.isArray(u))\n for (; ++c < u.length; ) {\n const f = u[c];\n l(f);\n }\n else\n throw new TypeError(\"Expected a list of plugins, not `\" + u + \"`\");\n }\n function s(u, c) {\n let f = -1, d = -1;\n for (; ++f < r.length; )\n if (r[f][0] === u) {\n d = f;\n break;\n }\n if (d === -1)\n r.push([u, ...c]);\n else if (c.length > 0) {\n let [p, ...b] = c;\n const w = r[d][1];\n bn(w) && bn(p) && (p = on(!0, w, p)), r[d] = [u, p, ...b];\n }\n }\n }\n}\nconst Oa = new Fn().freeze();\nfunction cn(e, n) {\n if (typeof n != \"function\")\n throw new TypeError(\"Cannot `\" + e + \"` without `parser`\");\n}\nfunction pn(e, n) {\n if (typeof n != \"function\")\n throw new TypeError(\"Cannot `\" + e + \"` without `compiler`\");\n}\nfunction fn(e, n) {\n if (n)\n throw new Error(\n \"Cannot call `\" + e + \"` on a frozen processor.\\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.\"\n );\n}\nfunction bt(e) {\n if (!bn(e) || typeof e.type != \"string\")\n throw new TypeError(\"Expected node, got `\" + e + \"`\");\n}\nfunction wt(e, n, t) {\n if (!t)\n throw new Error(\n \"`\" + e + \"` finished async. Use `\" + n + \"` instead\"\n );\n}\nfunction We(e) {\n return Ra(e) ? e : new or(e);\n}\nfunction Ra(e) {\n return !!(e && typeof e == \"object\" && \"message\" in e && \"messages\" in e);\n}\nfunction Fa(e) {\n return typeof e == \"string\" || Na(e);\n}\nfunction Na(e) {\n return !!(e && typeof e == \"object\" && \"byteLength\" in e && \"byteOffset\" in e);\n}\nconst Ma = \"https://github.com/remarkjs/react-markdown/blob/main/changelog.md\", St = [], Ct = { allowDangerousHtml: !0 }, _a = /^(https?|ircs?|mailto|xmpp)$/i, Ba = [\n { from: \"astPlugins\", id: \"remove-buggy-html-in-markdown-parser\" },\n { from: \"allowDangerousHtml\", id: \"remove-buggy-html-in-markdown-parser\" },\n {\n from: \"allowNode\",\n id: \"replace-allownode-allowedtypes-and-disallowedtypes\",\n to: \"allowElement\"\n },\n {\n from: \"allowedTypes\",\n id: \"replace-allownode-allowedtypes-and-disallowedtypes\",\n to: \"allowedElements\"\n },\n {\n from: \"disallowedTypes\",\n id: \"replace-allownode-allowedtypes-and-disallowedtypes\",\n to: \"disallowedElements\"\n },\n { from: \"escapeHtml\", id: \"remove-buggy-html-in-markdown-parser\" },\n { from: \"includeElementIndex\", id: \"#remove-includeelementindex\" },\n {\n from: \"includeNodeIndex\",\n id: \"change-includenodeindex-to-includeelementindex\"\n },\n { from: \"linkTarget\", id: \"remove-linktarget\" },\n { from: \"plugins\", id: \"change-plugins-to-remarkplugins\", to: \"remarkPlugins\" },\n { from: \"rawSourcePos\", id: \"#remove-rawsourcepos\" },\n { from: \"renderers\", id: \"change-renderers-to-components\", to: \"components\" },\n { from: \"source\", id: \"change-source-to-children\", to: \"children\" },\n { from: \"sourcePos\", id: \"#remove-sourcepos\" },\n { from: \"transformImageUri\", id: \"#add-urltransform\", to: \"urlTransform\" },\n { from: \"transformLinkUri\", id: \"#add-urltransform\", to: \"urlTransform\" }\n];\nfunction ja(e) {\n const n = e.allowedElements, t = e.allowElement, r = e.children || \"\", i = e.className, l = e.components, o = e.disallowedElements, a = e.rehypePlugins || St, s = e.remarkPlugins || St, u = e.remarkRehypeOptions ? { ...e.remarkRehypeOptions, ...Ct } : Ct, c = e.skipHtml, f = e.unwrapDisallowed, d = e.urlTransform || Ha, p = Oa().use(bo).use(s).use(da, u).use(a), b = new or();\n typeof r == \"string\" && (b.value = r);\n for (const C of Ba)\n Object.hasOwn(e, C.from) && (\"\" + C.from + (C.to ? \"use `\" + C.to + \"` instead\" : \"remove it\") + Ma + C.id, void 0);\n const w = p.parse(b);\n let A = p.runSync(w, b);\n return i && (A = {\n type: \"element\",\n tagName: \"div\",\n properties: { className: i },\n // Assume no doctypes.\n children: (\n /** @type {Array<ElementContent>} */\n A.type === \"root\" ? A.children : [A]\n )\n }), lr(A, x), Gr(A, {\n Fragment: Sr,\n // @ts-expect-error\n // React components are allowed to return numbers,\n // but not according to the types in hast-util-to-jsx-runtime\n components: l,\n ignoreInvalidStyle: !0,\n jsx: ae,\n jsxs: wr,\n passKeys: !0,\n passNode: !0\n });\n function x(C, E, N) {\n if (C.type === \"raw\" && N && typeof E == \"number\")\n return c ? N.children.splice(E, 1) : N.children[E] = { type: \"text\", value: C.value }, E;\n if (C.type === \"element\") {\n let R;\n for (R in nn)\n if (Object.hasOwn(nn, R) && Object.hasOwn(C.properties, R)) {\n const y = C.properties[R], F = nn[R];\n (F === null || F.includes(C.tagName)) && (C.properties[R] = d(String(y || \"\"), R, C));\n }\n }\n if (C.type === \"element\") {\n let R = n ? !n.includes(C.tagName) : o ? o.includes(C.tagName) : !1;\n if (!R && t && typeof E == \"number\" && (R = !t(C, E, N)), R && N && typeof E == \"number\")\n return f && C.children ? N.children.splice(E, 1, ...C.children) : N.children.splice(E, 1), E;\n }\n }\n}\nfunction Ha(e) {\n const n = e.indexOf(\":\"), t = e.indexOf(\"?\"), r = e.indexOf(\"#\"), i = e.indexOf(\"/\");\n return (\n // If there is no protocol, it’s relative.\n n === -1 || // If the first colon is after a `?`, `#`, or `/`, it’s not a protocol.\n i !== -1 && n > i || t !== -1 && n > t || r !== -1 && n > r || // It is a protocol, it should be allowed.\n _a.test(e.slice(0, n)) ? e : \"\"\n );\n}\nconst Ua = ({ children: e }) => /* @__PURE__ */ ae(\"div\", { style: { whiteSpace: \"normal\" }, children: /* @__PURE__ */ ae(\n ja,\n {\n components: {\n p: ({ ...t }) => /* @__PURE__ */ ae(\n \"p\",\n {\n style: {\n margin: 0,\n marginBottom: \"0.5em\",\n lineHeight: 1.4,\n textAlign: \"left\"\n },\n children: t.children\n }\n ),\n ul: ({ ...t }) => /* @__PURE__ */ ae(\n \"ul\",\n {\n style: {\n paddingLeft: \"clamp(8px, 3.5vw, 16px)\",\n margin: 0,\n listStylePosition: \"inside\"\n // KEY CHANGE\n },\n children: t.children\n }\n ),\n ol: ({ ...t }) => /* @__PURE__ */ ae(\n \"ol\",\n {\n style: {\n paddingLeft: \"clamp(8px, 3.5vw, 16px)\",\n margin: 0,\n listStylePosition: \"inside\"\n // KEY CHANGE\n },\n children: t.children\n }\n ),\n // KEY CHANGE: Remove custom bullet rendering, let browser handle bullets & numbers\n li: ({ ...t }) => /* @__PURE__ */ ae(\n \"li\",\n {\n style: {\n marginBottom: \"1px\",\n lineHeight: 1.4\n },\n children: t.children\n }\n ),\n code({ inline: t, children: r }) {\n return t ? /* @__PURE__ */ ae(\n \"code\",\n {\n style: {\n backgroundColor: \"rgba(0, 0, 0, 0.3)\",\n padding: \"2px 4px\",\n borderRadius: \"4px\",\n fontFamily: \"inherit\",\n fontSize: \"0.95em\"\n },\n children: r\n }\n ) : /* @__PURE__ */ ae(\n \"pre\",\n {\n style: {\n backgroundColor: \"rgba(0, 0, 0, 0.3)\",\n padding: \"8px\",\n borderRadius: \"4px\",\n overflowX: \"auto\",\n margin: \"0.5em 0\",\n whiteSpace: \"pre-wrap\"\n // preserve line breaks\n },\n children: /* @__PURE__ */ ae(\"code\", { children: r })\n }\n );\n },\n blockquote: ({ ...t }) => /* @__PURE__ */ ae(\n \"blockquote\",\n {\n style: {\n margin: 0,\n paddingLeft: \"10px\",\n borderLeft: \"2px solid #ccc\",\n color: \"#666\",\n fontStyle: \"italic\"\n },\n children: t.children\n }\n )\n },\n children: typeof e == \"string\" ? e : \"\"\n }\n) }), Va = {\n autoConfig: !0\n}, qa = (e, n, t) => {\n var i;\n if (typeof e.data.message.content != \"string\" || !e.detail.currPath)\n return !1;\n const r = n[e.detail.currPath];\n return r ? ((i = r.renderMarkdown) == null ? void 0 : i.map((l) => l.toUpperCase()).includes(t)) ?? !1 : !1;\n}, $a = (e) => {\n const { getFlow: n } = yr(), { messages: t, replaceMessages: r } = xr(), { settings: i } = kr(), { hasChatHistoryLoaded: l } = br(), o = { ...e, ...Va }, a = o.markdownComponent ? o.markdownComponent : Ua;\n gr(() => {\n var c, f;\n if (l) {\n const d = [...t];\n for (let p = 0; p < d.length && p < (((c = i.chatHistory) == null ? void 0 : c.maxEntries) ?? 30); p++) {\n const b = d[p];\n (f = b.tags) != null && f.includes(\"rcb-markdown-renderer-plugin:parsed\") && (b.contentWrapper = a);\n }\n r(d);\n }\n }, [l]);\n const s = async (c) => {\n var d;\n const f = (d = c.data.message) == null ? void 0 : d.sender.toUpperCase();\n qa(c, n(), f) && (c.data.message.contentWrapper = a, c.data.message.tags || (c.data.message.tags = []), c.data.message.tags.push(\"rcb-markdown-renderer-plugin:parsed\"));\n };\n Ue(Ve.PRE_INJECT_MESSAGE, s), Ue(Ve.CHUNK_STREAM_MESSAGE, s), Ue(Ve.START_STREAM_MESSAGE, s), Ue(Ve.START_SIMULATE_STREAM_MESSAGE, s);\n const u = {\n name: \"@rcb-plugins/markdown-renderer\"\n };\n return o != null && o.autoConfig && (u.settings = {\n event: {\n rcbPreInjectMessage: !0,\n rcbChunkStreamMessage: !0,\n rcbStartSimulateStreamMessage: !0,\n rcbStartStreamMessage: !0\n }\n }), u;\n}, Xa = (e) => () => $a(e);\nexport {\n Xa as default\n};\n","import { useState as A, useRef as U, useEffect as B } from \"react\";\nimport { useToasts as E, useFlow as C, useStyles as I, useOnRcbEvent as f, RcbEvent as h } from \"react-chatbotify\";\nconst i = {\n autoConfig: !0,\n // defaults to true to help users enable required events\n promptBaseColors: {\n info: \"#007bff\",\n warning: \"#ffc107\",\n error: \"#dc3545\",\n success: \"#28a745\"\n },\n promptHoveredColors: {\n info: \"#0056b3\",\n warning: \"#d39e00\",\n error: \"#c82333\",\n success: \"#218838\"\n },\n textAreaHighlightColors: {\n info: \"#007bff\",\n warning: \"#ffc107\",\n error: \"#dc3545\",\n success: \"#28a745\"\n }\n}, R = (t) => ({\n ...i,\n ...t,\n promptBaseColors: {\n ...i.promptBaseColors,\n ...t == null ? void 0 : t.promptBaseColors\n },\n promptHoveredColors: {\n ...i.promptHoveredColors,\n ...t == null ? void 0 : t.promptHoveredColors\n },\n textAreaHighlightColors: {\n ...i.textAreaHighlightColors,\n ...t == null ? void 0 : t.textAreaHighlightColors\n }\n}), w = (t, e) => {\n const r = t.promptType ?? \"info\";\n let o = {};\n return e.advancedStyles && (o = e.advancedStyles[r]), e.promptBaseColors && (o.toastPromptStyle = {\n color: e.promptBaseColors[r],\n borderColor: e.promptBaseColors[r]\n }), e.promptHoveredColors && (o.toastPromptHoveredStyle = {\n color: e.promptHoveredColors[r],\n borderColor: e.promptHoveredColors[r]\n }), e.textAreaHighlightColors && (t.highlightTextArea ?? !0) && (o.chatInputAreaStyle = {\n boxShadow: `${e.textAreaHighlightColors[r]} 0px 0px 5px`\n }), o;\n}, y = (t, e, r = \"validateTextInput\") => {\n var l;\n if (!((l = t.detail) != null && l.currPath))\n return;\n const o = e[t.detail.currPath];\n if (!o)\n return;\n const u = o[r];\n return typeof u == \"function\" ? u : void 0;\n}, F = (t) => {\n const { showToast: e } = E(), { getFlow: r } = C(), { styles: o, updateStyles: u, replaceStyles: l } = I(), S = R(t), [m, v] = A(0), b = U({}), P = (a) => {\n const n = a, p = y(n, r(), \"validateTextInput\");\n if (!p)\n return;\n const s = p(n.data.inputText);\n if (s != null && s.success || a.preventDefault(), !s.promptContent)\n return;\n m === 0 && (b.current = structuredClone(o));\n const c = w(s, S);\n u(c), e(s.promptContent, s.promptDuration ?? 3e3), v((d) => d + 1);\n }, H = (a) => {\n var d, x;\n const n = a, p = (x = (d = n.data) == null ? void 0 : d.files) == null ? void 0 : x[0];\n if (!p) {\n console.error(\"No file uploaded.\"), a.preventDefault();\n return;\n }\n const s = y(n, r(), \"validateFileInput\");\n if (!s) {\n console.error(\"Validator not found for file input.\");\n return;\n }\n const c = s(p);\n if (!c.success) {\n console.error(\"Validation failed:\", c), c.promptContent && e(c.promptContent, c.promptDuration ?? 3e3), a.preventDefault();\n return;\n }\n console.log(\"Validation successful:\", c);\n }, D = () => {\n v((a) => a - 1);\n };\n f(h.USER_SUBMIT_TEXT, P), f(h.USER_UPLOAD_FILE, H), f(h.DISMISS_TOAST, D), B(() => {\n m === 0 && setTimeout(() => {\n l(b.current);\n });\n }, [m, l]);\n const T = {\n name: \"@rcb-plugins/input-validator\"\n };\n return S.autoConfig && (T.settings = {\n event: {\n rcbUserSubmitText: !0,\n rcbUserUploadFile: !0,\n rcbDismissToast: !0\n }\n }), T;\n}, M = (t) => () => F(t);\nexport {\n M as default\n};\n","import React, { useImperativeHandle, useEffect, useRef, forwardRef } from 'react';\nimport { useMessages, useChatWindow } from \"react-chatbotify\";\nimport type { BotControllerHandle } from '../config';\n\ninterface BotControllerProps {\n embedded: boolean;\n currentOpen?: boolean;\n enabled: boolean;\n onSetEnabled?: (enabled: boolean) => void;\n}\n\n/**\n * BotController Component\n *\n * Handles the integration between react-chatbotify hooks and the imperative API.\n * This component must be rendered inside ChatBotProvider to access the hooks.\n */\nconst BotController = forwardRef<BotControllerHandle, BotControllerProps>(({\n embedded,\n currentOpen,\n enabled,\n onSetEnabled\n}, ref) => {\n // Get the chatbot hooks (must be inside ChatBotProvider)\n const messages = useMessages();\n const chatWindow = useChatWindow();\n\n const lastOpenRef = useRef<boolean>(false); // Default matches defaultOpen: false\n const fromEventRef = useRef(false);\n\n // Sync open state with chat window when it changes (but not when change came from event)\n useEffect(() => {\n if (!embedded && chatWindow && chatWindow.toggleChatWindow) {\n if (lastOpenRef.current !== currentOpen && !fromEventRef.current) {\n // Use a small delay to ensure chatWindow is fully initialized\n setTimeout(() => {\n if (chatWindow && chatWindow.toggleChatWindow) {\n chatWindow.toggleChatWindow(currentOpen);\n }\n }, 0);\n lastOpenRef.current = currentOpen ?? false;\n }\n fromEventRef.current = false;\n }\n }, [currentOpen, embedded, chatWindow]);\n\n // Expose a method to mark that the next state change came from user interaction\n useEffect(() => {\n const markAsUserInteraction = () => {\n fromEventRef.current = true;\n };\n\n // Listen for user interactions with the chat window\n window.addEventListener('rcb-toggle-chat-window', markAsUserInteraction);\n return () => window.removeEventListener('rcb-toggle-chat-window', markAsUserInteraction);\n });\n\n\n useImperativeHandle(ref, () => ({\n // An imperative method to add a message to bot\n addMessage: (message: string) => {\n if (messages && messages.injectMessage) {\n messages.injectMessage(message);\n }\n },\n openChat: () => {\n if (!embedded && chatWindow && chatWindow.toggleChatWindow) {\n chatWindow.toggleChatWindow(true);\n }\n },\n closeChat: () => {\n if (!embedded && chatWindow && chatWindow.toggleChatWindow) {\n chatWindow.toggleChatWindow(false);\n }\n },\n toggleChat: () => {\n if (!embedded && chatWindow && chatWindow.toggleChatWindow) {\n chatWindow.toggleChatWindow();\n }\n },\n setBotEnabled: (enabled: boolean) => {\n if (onSetEnabled) {\n onSetEnabled(enabled);\n }\n }\n }), [messages, chatWindow, embedded, onSetEnabled]);\n return null;\n});\n\nBotController.displayName = 'BotController';\n\nexport default BotController;","import React from 'react';\n\n/**\n * LoginButton Component\n *\n * A standalone component for the login button that can be styled independently\n *\n * @param props - Component props\n * @param props.loginUrl - URL to navigate to for login\n * @param props.className - Optional CSS class for styling\n * @param props.style - Optional inline styles\n * @param props.isHeaderButton - Whether this is rendered in the header (different styling)\n * @returns Rendered login button\n */\ninterface LoginButtonProps {\n loginUrl: string;\n className?: string;\n style?: React.CSSProperties;\n isHeaderButton?: boolean;\n}\n\nconst LoginButton: React.FC<LoginButtonProps> = ({\n loginUrl,\n className = '',\n style,\n isHeaderButton = false\n}) => {\n const headerStyle: React.CSSProperties = {\n display: 'inline-block',\n padding: '6px 12px',\n backgroundColor: 'transparent',\n border: '1px solid #ccc',\n color: 'white',\n textDecoration: 'none',\n borderRadius: '4px',\n fontWeight: 'normal',\n textAlign: 'center',\n margin: '8px',\n fontSize: '12px',\n opacity: 0.8,\n transition: 'all 0.2s ease'\n };\n\n const defaultStyle: React.CSSProperties = {\n display: 'inline-block',\n padding: '10px 20px',\n backgroundColor: 'white',\n border: '1px solid var(--primaryColor, #107180)',\n color: 'var(--primaryColor, #107180)',\n textDecoration: 'none',\n borderRadius: '4px',\n fontWeight: 'bold',\n textAlign: 'center',\n margin: '18px',\n boxShadow: '0 2px 4px rgba(0, 0, 0, 0.2)'\n };\n\n const finalStyle = isHeaderButton ? headerStyle : defaultStyle;\n\n return (\n <>\n {isHeaderButton && (\n <style>\n {`\n .rcb-chat-header-container .qa-bot-header-login-button:hover {\n background-color: #0000001a !important;\n opacity: 1 !important;\n }\n `}\n </style>\n )}\n <a\n href={loginUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={`qa-bot-login-button ${isHeaderButton ? 'qa-bot-header-login-button' : ''} ${className}`}\n style={{ ...finalStyle, ...style }}\n >\n Log In\n </a>\n </>\n );\n};\n\nexport default LoginButton;\n","import React from 'react';\n\n/**\n * UserIcon Component\n *\n * A standalone component for the user icon that can be styled independently.\n * Visibility controlled by CSS classes on the container.\n *\n * @returns Rendered user icon\n */\nconst UserIcon: React.FC = () => (\n <div\n className=\"user-login-icon\"\n style={{\n alignItems: 'center',\n justifyContent: 'center',\n width: '30px',\n height: '30px',\n borderRadius: '50%',\n backgroundColor: 'var(--primaryColor, #1a5b6e)',\n marginRight: '5px',\n display: 'flex'\n }}\n role=\"img\"\n aria-label=\"User logged in\"\n title=\"User logged in\"\n >\n <svg\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"white\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <path d=\"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2\"></path>\n <circle cx=\"12\" cy=\"7\" r=\"4\"></circle>\n </svg>\n </div>\n);\n\nexport default UserIcon;\n","import validate from './validate.js';\nconst byteToHex = [];\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\nexport function unsafeStringify(arr, offset = 0) {\n return (byteToHex[arr[offset + 0]] +\n byteToHex[arr[offset + 1]] +\n byteToHex[arr[offset + 2]] +\n byteToHex[arr[offset + 3]] +\n '-' +\n byteToHex[arr[offset + 4]] +\n byteToHex[arr[offset + 5]] +\n '-' +\n byteToHex[arr[offset + 6]] +\n byteToHex[arr[offset + 7]] +\n '-' +\n byteToHex[arr[offset + 8]] +\n byteToHex[arr[offset + 9]] +\n '-' +\n byteToHex[arr[offset + 10]] +\n byteToHex[arr[offset + 11]] +\n byteToHex[arr[offset + 12]] +\n byteToHex[arr[offset + 13]] +\n byteToHex[arr[offset + 14]] +\n byteToHex[arr[offset + 15]]).toLowerCase();\n}\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset);\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n return uuid;\n}\nexport default stringify;\n","let getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n if (!getRandomValues) {\n if (typeof crypto === 'undefined' || !crypto.getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n getRandomValues = crypto.getRandomValues.bind(crypto);\n }\n return getRandomValues(rnds8);\n}\n","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default { randomUUID };\n","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n options = options || {};\n const rnds = options.random ?? options.rng?.() ?? rng();\n if (rnds.length < 16) {\n throw new Error('Random bytes length must be >= 16');\n }\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n if (buf) {\n offset = offset || 0;\n if (offset < 0 || offset + 16 > buf.length) {\n throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);\n }\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n return buf;\n }\n return unsafeStringify(rnds);\n}\nexport default v4;\n","/**\n * Logger utility for QA Bot Core\n *\n * Controls debug logging via localStorage:\n * - QA_BOT_DEBUG: Set to 'true' to enable debug logging and version info\n *\n * Usage for consumers:\n * localStorage.setItem('QA_BOT_DEBUG', 'true'); // Enable debug logs + version\n */\n\n// localStorage key\nconst DEBUG_KEY = 'QA_BOT_DEBUG';\n\n// Library version - update this when releasing (see publishing.md)\nexport const LIB_VERSION = '0.2.19';\n\nfunction isDebugEnabled(): boolean {\n return typeof localStorage !== 'undefined' && localStorage.getItem(DEBUG_KEY) === 'true';\n}\n\n// Styled prefixes for different log types\nconst styles = {\n session: 'background: #1a5b6e; color: white; padding: 2px 6px; border-radius: 3px;',\n history: 'background: #7c3aed; color: white; padding: 2px 6px; border-radius: 3px;',\n message: 'background: #059669; color: white; padding: 2px 6px; border-radius: 3px;',\n version: 'background: #f59e0b; color: #000; padding: 2px 6px; border-radius: 3px 0 0 3px; font-weight: bold;',\n versionNum: 'background: #fbbf24; color: #000; padding: 2px 6px; border-radius: 0 3px 3px 0;',\n};\n\nexport const logger = {\n // Log version - call once on component mount\n version: () => {\n if (isDebugEnabled()) {\n console.log(`%c QA Bot Core %c v${LIB_VERSION} `, styles.version, styles.versionNum);\n }\n },\n\n // Session logging - styled, only when DEBUG enabled\n session: (action: string, ...args: unknown[]) => {\n if (isDebugEnabled()) {\n console.log(`%c[Session]%c ${action}`, styles.session, '', ...args);\n }\n },\n\n // History logging - styled, only when DEBUG enabled\n history: (action: string, ...args: unknown[]) => {\n if (isDebugEnabled()) {\n console.log(`%c[History]%c ${action}`, styles.history, '', ...args);\n }\n },\n\n // Message tracking - styled, only when DEBUG enabled\n message: (action: string, data: Record<string, unknown>) => {\n if (isDebugEnabled()) {\n console.log(`%c[Message]%c ${action}`, styles.message, '', data);\n }\n },\n\n // Warnings - always show\n warn: (...args: unknown[]) => {\n console.warn(...args);\n },\n\n // Errors - always show\n error: (...args: unknown[]) => {\n console.error(...args);\n }\n};\n","import { v4 as uuidv4 } from 'uuid';\nimport { logger } from './logger';\n\nconst SESSION_MESSAGES_KEY = 'qa_bot_session_messages';\n\n// Maximum total messages across all sessions\nconst MAX_TOTAL_MESSAGES = 100;\n\n/**\n * Stored message structure - minimal data needed for restore\n */\nexport interface StoredMessage {\n id: string;\n content: string;\n sender: string;\n type: string;\n timestamp: number;\n}\n\n/**\n * Session data structure\n */\nexport interface SessionMessageData {\n messages: StoredMessage[];\n startedAt: string;\n preview: string;\n}\n\nexport interface SessionMessagesStore {\n [sessionId: string]: SessionMessageData;\n}\n\nexport const generateSessionId = (): string => {\n return `qa_bot_session_${uuidv4()}`;\n};\n\n\n/**\n * Get the session messages store from localStorage\n */\nexport const getSessionMessagesStore = (): SessionMessagesStore => {\n try {\n const stored = localStorage.getItem(SESSION_MESSAGES_KEY);\n return stored ? JSON.parse(stored) : {};\n } catch {\n // Silently fail - corrupted storage shouldn't break the app\n return {};\n }\n};\n\n/**\n * Save the session messages store to localStorage, evicting oldest sessions if over message limit\n */\nconst saveSessionMessagesStore = (store: SessionMessagesStore): void => {\n // Count total messages across all sessions\n const getTotalMessages = () =>\n Object.values(store).reduce((sum, session) => sum + session.messages.length, 0);\n\n // Evict oldest sessions until we're under the message limit\n while (getTotalMessages() > MAX_TOTAL_MESSAGES && Object.keys(store).length > 1) {\n // Find oldest session\n const oldestSessionId = Object.entries(store)\n .sort(([, a], [, b]) => new Date(a.startedAt).getTime() - new Date(b.startedAt).getTime())[0]?.[0];\n\n if (oldestSessionId) {\n delete store[oldestSessionId];\n } else {\n break;\n }\n }\n localStorage.setItem(SESSION_MESSAGES_KEY, JSON.stringify(store));\n};\n\n/**\n * Add a message to a session's storage.\n * Called when RcbPreInjectMessageEvent fires.\n * Stores the full message so we can restore sessions without relying on RCB's history.\n */\nexport const addMessageToSession = (\n sessionId: string,\n messageId: string,\n messageContent: string,\n sender: string,\n type: string\n): void => {\n const store = getSessionMessagesStore();\n\n // Initialize session if it doesn't exist\n const isNewSession = !store[sessionId];\n if (isNewSession) {\n store[sessionId] = {\n messages: [],\n startedAt: new Date().toISOString(),\n preview: ''\n };\n logger.history('NEW session created', { sessionId: sessionId.slice(-12) });\n }\n\n // Skip if message with this ID already exists (deduplication)\n const isDuplicate = store[sessionId].messages.some(m => m.id === messageId);\n if (isDuplicate) {\n logger.history('DUPLICATE message skipped', {\n sessionId: sessionId.slice(-12),\n messageId: messageId.slice(-8),\n sender\n });\n return;\n }\n\n // Store the full message\n const storedMessage: StoredMessage = {\n id: messageId,\n content: messageContent,\n sender,\n type,\n timestamp: Date.now()\n };\n\n store[sessionId].messages.push(storedMessage);\n logger.history('MESSAGE added', {\n sessionId: sessionId.slice(-12),\n messageId: messageId.slice(-8),\n sender,\n totalInSession: store[sessionId].messages.length\n });\n\n // Compute preview from first substantial bot answer\n // Bot answers are consistently long, while greetings/prompts are short\n // This avoids ambiguity between user-typed questions vs option-click messages\n // Fall back to first user message if no bot answer exists yet\n const messages = store[sessionId].messages;\n\n // Find first bot message that looks like an actual answer (>=100 chars)\n const MIN_BOT_ANSWER_LENGTH = 100;\n const botAnswer = messages.find(m =>\n m.sender.toLowerCase() === 'bot' &&\n m.content?.trim() &&\n m.content.length >= MIN_BOT_ANSWER_LENGTH\n );\n\n if (botAnswer) {\n // Use truncated bot answer as preview\n const content = botAnswer.content;\n store[sessionId].preview = content.slice(0, 50) + (content.length > 50 ? '...' : '');\n } else {\n // Fall back to first user message until we have a bot answer\n const firstUserMessage = messages.find(m =>\n m.sender.toLowerCase() === 'user' && m.content?.trim()\n );\n if (firstUserMessage && !store[sessionId].preview) {\n const content = firstUserMessage.content;\n store[sessionId].preview = content.slice(0, 50) + (content.length > 50 ? '...' : '');\n }\n }\n\n saveSessionMessagesStore(store);\n\n logger.history('STORAGE state', {\n ourSessions: Object.keys(store).length,\n ourTotalMessages: Object.values(store).reduce((sum, s) => sum + s.messages.length, 0)\n });\n};\n\n/**\n * Get all sessions with their metadata (for history display)\n */\nexport const getAllSessions = (): Array<{ sessionId: string } & SessionMessageData> => {\n const store = getSessionMessagesStore();\n return Object.entries(store)\n .map(([sessionId, data]) => ({ sessionId, ...data }))\n .sort((a, b) => new Date(b.startedAt).getTime() - new Date(a.startedAt).getTime());\n};\n\n/**\n * Get all stored messages for a specific session.\n * Returns messages in the format needed for RCB's replaceMessages().\n */\nexport const getSessionMessages = (sessionId: string): StoredMessage[] => {\n const store = getSessionMessagesStore();\n return store[sessionId]?.messages || [];\n};\n\n/**\n * Get the message count for a session.\n * Used for analytics (chatbot_close, chatbot_new_chat events).\n */\nexport const getSessionMessageCount = (sessionId: string): number => {\n const store = getSessionMessagesStore();\n return store[sessionId]?.messages.length ?? 0;\n};\n\n/**\n * Compute how long a session has been active (in milliseconds).\n * Calculates the difference between now and the session's startedAt timestamp.\n * Used for analytics (chatbot_close event).\n */\nexport const computeSessionDurationMs = (sessionId: string): number => {\n const store = getSessionMessagesStore();\n const session = store[sessionId];\n if (!session?.startedAt) {\n return 0;\n }\n return Date.now() - new Date(session.startedAt).getTime();\n};","import React, { createContext, useContext } from 'react';\n\ninterface SessionContextType {\n getSessionId: () => string;\n setSessionId: (sessionId: string) => void;\n resetSession: () => void;\n clearResettingFlag: () => void;\n}\n\nconst SessionContext = createContext<SessionContextType | undefined>(undefined);\n\nexport const SessionProvider: React.FC<{\n children: React.ReactNode;\n getSessionId: () => string;\n setSessionId: (sessionId: string) => void;\n resetSession: () => void;\n clearResettingFlag: () => void;\n}> = ({\n children,\n getSessionId,\n setSessionId,\n resetSession,\n clearResettingFlag\n}) => {\n return (\n <SessionContext.Provider value={{ getSessionId, setSessionId, resetSession, clearResettingFlag }}>\n {children}\n </SessionContext.Provider>\n );\n};\n\nexport const useSession = (): SessionContextType => {\n const context = useContext(SessionContext);\n if (!context) {\n throw new Error('useSession must be used within a SessionProvider');\n }\n return context;\n};\n","// src/components/HistoryButton.tsx\nimport React, { useState, useRef, useEffect } from 'react';\nimport { useMessages, useTextArea } from 'react-chatbotify';\nimport { getAllSessions, getSessionMessages } from '../utils/session-utils';\nimport { fixMarkdownLinksInDom } from '../utils/fix-markdown-links';\nimport { useSession } from '../contexts/SessionContext';\nimport { logger } from '../utils/logger';\n\n/**\n * Format a date string for display\n */\nconst formatDate = (dateString: string): string => {\n const date = new Date(dateString);\n const now = new Date();\n const diffMs = now.getTime() - date.getTime();\n const diffDays = Math.floor(diffMs / (1000 * 60 * 60 * 24));\n\n if (diffDays === 0) {\n return date.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' });\n } else if (diffDays === 1) {\n return 'Yesterday';\n } else if (diffDays < 7) {\n return date.toLocaleDateString([], { weekday: 'short' });\n } else {\n return date.toLocaleDateString([], { month: 'short', day: 'numeric' });\n }\n};\n\n/**\n * HistoryButton Component\n *\n * A button that displays saved chat history when clicked.\n * Shows in the header when user is logged in.\n *\n * @returns Rendered history button\n */\nconst HistoryButton: React.FC = () => {\n const [isOpen, setIsOpen] = useState(false);\n const [sessions, setSessions] = useState<ReturnType<typeof getAllSessions>>([]);\n const [menuWidth, setMenuWidth] = useState<number | null>(null);\n const [menuRight, setMenuRight] = useState<number>(0);\n const menuRef = useRef<HTMLDivElement>(null);\n const buttonRef = useRef<HTMLButtonElement>(null);\n\n const { replaceMessages } = useMessages();\n const { toggleTextAreaDisabled } = useTextArea();\n const { setSessionId, getSessionId } = useSession();\n\n // Close menu when clicking outside\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (\n menuRef.current &&\n !menuRef.current.contains(event.target as Node) &&\n buttonRef.current &&\n !buttonRef.current.contains(event.target as Node)\n ) {\n setIsOpen(false);\n }\n };\n\n const rootNode = menuRef.current?.getRootNode() ?? document;\n if (isOpen) {\n rootNode.addEventListener('mousedown', handleClickOutside as EventListener);\n }\n return () => {\n rootNode.removeEventListener('mousedown', handleClickOutside as EventListener);\n };\n }, [isOpen]);\n\n const handleClick = () => {\n if (!isOpen) {\n // Refresh sessions when opening\n setSessions(getAllSessions());\n\n // Calculate dropdown position based on chat window\n if (buttonRef.current) {\n const chatWindow = buttonRef.current.closest('.rcb-chat-window');\n if (chatWindow) {\n const chatRect = chatWindow.getBoundingClientRect();\n const buttonRect = buttonRef.current.getBoundingClientRect();\n // Width should match the chat window (+ small adjustment for border/padding)\n setMenuWidth(chatRect.width + 3);\n // Right offset: distance from button's right edge to chat window's right edge\n // Subtract button's marginRight (18px) and adjust to align with window edge\n setMenuRight(chatRect.right - buttonRect.right - 18 + 4);\n }\n }\n }\n setIsOpen(!isOpen);\n };\n\n const handleSelectSession = (sessionId: string) => {\n const currentSessionId = getSessionId();\n\n logger.history('RESTORE requested', {\n targetSession: sessionId.slice(-12),\n currentSession: currentSessionId?.slice(-12)\n });\n\n // Don't reload if already on this session\n if (sessionId === currentSessionId) {\n logger.history('RESTORE skipped - already on this session');\n setIsOpen(false);\n return;\n }\n\n // 1. Get the stored messages for this session from our localStorage\n // Filter out any empty messages (legacy data or edge cases)\n const storedMessages = getSessionMessages(sessionId).filter(m => m.content?.trim());\n logger.history('Stored messages from our localStorage', {\n count: storedMessages.length,\n ids: storedMessages.map(m => m.id.slice(-8))\n });\n\n // 2. Convert our stored messages to RCB Message format\n const rcbMessages = storedMessages.map(m => ({\n id: m.id,\n content: m.content,\n sender: m.sender.toUpperCase(),\n type: m.type || 'string',\n timestamp: new Date(m.timestamp).toISOString()\n }));\n\n // 3. Update the active session ID BEFORE replacing messages.\n // replaceMessages fires rcb-pre-inject-message events, which\n // SessionMessageTracker captures. If the session ID isn't updated\n // first, the restored messages get written into the *current*\n // session, creating a duplicate session in history.\n setSessionId(sessionId);\n logger.history('Session ID updated', { newSession: sessionId.slice(-12) });\n\n // 4. Replace displayed messages with the session's messages\n replaceMessages(rcbMessages);\n logger.history('replaceMessages called', { count: rcbMessages.length });\n\n // 5. Fix markdown links in rendered messages (see fix-markdown-links.ts for explanation)\n fixMarkdownLinksInDom(buttonRef.current?.getRootNode() as Document | ShadowRoot);\n\n // 6. Enable the chat input - restored sessions continue Q&A, not picking from a menu\n toggleTextAreaDisabled(false);\n logger.history('Chat input enabled after restore');\n\n setIsOpen(false);\n };\n\n return (\n <div style={{ position: 'relative' }}>\n <button\n ref={buttonRef}\n className=\"history-button\"\n onClick={handleClick}\n style={{\n alignItems: 'center',\n justifyContent: 'center',\n width: '30px',\n height: '30px',\n borderRadius: '50%',\n backgroundColor: 'var(--primaryColor, #1a5b6e)',\n marginRight: '18px',\n display: 'flex',\n border: 'none',\n cursor: 'pointer',\n padding: 0\n }}\n aria-label=\"View chat history\"\n title=\"View chat history\"\n aria-expanded={isOpen}\n aria-haspopup=\"menu\"\n >\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"white\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n {/* Clock/history icon */}\n <circle cx=\"12\" cy=\"12\" r=\"10\"></circle>\n <polyline points=\"12 6 12 12 16 14\"></polyline>\n </svg>\n </button>\n\n {isOpen && (\n <div\n ref={menuRef}\n role=\"menu\"\n style={{\n position: 'absolute',\n right: menuRight ? `-${menuRight}px` : '-18px',\n top: '100%',\n marginTop: '8px',\n width: menuWidth ? `${menuWidth}px` : '550px',\n backgroundColor: 'white',\n borderRadius: 0,\n borderBottom: '3px solid var(--primaryColor, #1a5b6e)',\n boxShadow: '0 2px 8px rgba(0, 0, 0, 0.1)',\n maxHeight: '250px',\n overflowY: 'auto',\n zIndex: 1000\n }}\n >\n {sessions.length === 0 ? (\n <div\n style={{\n padding: '12px 16px',\n color: '#666',\n fontSize: '14px',\n textAlign: 'center'\n }}\n >\n No chat history\n </div>\n ) : (\n sessions.map((session) => (\n <button\n key={session.sessionId}\n role=\"menuitem\"\n onClick={() => handleSelectSession(session.sessionId)}\n style={{\n width: '100%',\n padding: '10px 14px',\n border: 'none',\n backgroundColor: 'transparent',\n cursor: 'pointer',\n textAlign: 'left',\n display: 'flex',\n flexDirection: 'column',\n gap: '2px',\n borderBottom: '1px solid #eee'\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.backgroundColor = '#f5f5f5';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = 'transparent';\n }}\n >\n <span\n style={{\n fontSize: '14px',\n color: '#333',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap'\n }}\n >\n {session.preview || 'New conversation'}\n </span>\n <span\n style={{\n fontSize: '12px',\n color: '#888'\n }}\n >\n {formatDate(session.startedAt)}\n </span>\n </button>\n ))\n )}\n </div>\n )}\n </div>\n );\n};\n\nexport default HistoryButton;\n","/**\n * fix-markdown-links.ts\n *\n * PRAGMATIC HACK: This file exists because react-chatbotify's MarkdownRenderer plugin\n * doesn't process messages injected via replaceMessages() (used for history restoration).\n *\n * After trying several \"proper\" approaches (tag manipulation, JSX conversion, HTML strings),\n * none worked without breaking message bubble styling. This DOM post-processing approach\n * is a pragmatic solution that:\n * - Preserves all message styling (bubbles render correctly first)\n * - Finds raw markdown link patterns [text](url) in rendered text\n * - Finds escaped HTML anchor tags that got text-escaped\n * - Replaces them with actual <a> elements\n *\n * Only used after history restoration, not during normal chat flow.\n */\n\n/**\n * Fixes links in chat messages after they've been rendered.\n * Call this after replaceMessages() to convert link patterns to clickable links.\n *\n * Handles:\n * - Markdown links: [text](url)\n * - Escaped HTML anchors: &lt;a href=\"url\"...&gt;text&lt;/a&gt;\n * - Plain text HTML anchors: <a href=\"url\"...>text</a> (displayed as text)\n */\nexport const fixMarkdownLinksInDom = (root?: Document | ShadowRoot): void => {\n // Wait for React to finish rendering the messages\n setTimeout(() => {\n const searchRoot = root || document;\n const chatBody = searchRoot.querySelector('.rcb-chat-body-container');\n if (!chatBody) {\n return;\n }\n\n // Find all bot message bubbles and fix links in their text\n chatBody.querySelectorAll('.rcb-bot-message').forEach(bubble => {\n let html = bubble.innerHTML;\n let changed = false;\n\n // Fix markdown links: [text](url)\n if (html.includes('](')) {\n html = html.replace(\n /\\[([^\\]]+)\\]\\(([^)]+)\\)/g,\n '<a href=\"$2\" target=\"_blank\" rel=\"noopener noreferrer\">$1</a>'\n );\n changed = true;\n }\n\n // Fix escaped HTML anchor tags: &lt;a href=\"url\"...&gt;text&lt;/a&gt;\n // This happens when HTML anchor tags are stored as text and get escaped\n if (html.includes('&lt;a href=')) {\n html = html.replace(\n /&lt;a\\s+href=[\"']([^\"']+)[\"'][^&]*&gt;([^&]+)&lt;\\/a&gt;/gi,\n '<a href=\"$1\" target=\"_blank\" rel=\"noopener noreferrer\">$2</a>'\n );\n changed = true;\n }\n\n // Fix plain text HTML anchors that weren't escaped but displayed as text\n // This catches: <a href=\"url\" target=\"_blank\">text</a> shown literally\n if (html.includes('&lt;a ') || (bubble.textContent?.includes('<a href='))) {\n // The text content has literal <a> tags - need to extract and convert\n const textContent = bubble.textContent || '';\n if (textContent.includes('<a href=')) {\n html = html.replace(\n /&lt;a\\s+href=\"([^\"]+)\"[^&]*&gt;([^&]+)&lt;\\/a&gt;/gi,\n '<a href=\"$1\" target=\"_blank\" rel=\"noopener noreferrer\">$2</a>'\n );\n changed = true;\n }\n }\n\n if (changed) {\n bubble.innerHTML = html;\n }\n });\n }, 50);\n};\n","import React from 'react';\n\nconst BaseIcon = ({\n width = 24,\n height = 24,\n color = 'currentColor',\n children,\n ...props\n}) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={width}\n height={height}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke={color}\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n focusable=\"false\"\n {...props}\n >\n {children}\n </svg>\n );\n};\n\nexport default BaseIcon;","import React from 'react';\nimport BaseIcon from './BaseIcon';\n\nconst RefreshIcon = (props) => {\n return (\n <BaseIcon {...props}>\n <path d=\"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15\" />\n </BaseIcon>\n );\n};\n\nexport default RefreshIcon;","import React, { createContext, useContext, useRef } from 'react';\nimport type { QABotAnalyticsEvent } from '../config';\n\n/**\n * Event type without auto-populated fields.\n * Call sites provide event-specific data; common fields are added by the enriched tracker.\n */\nexport type AnalyticsEventInput = Omit<QABotAnalyticsEvent, 'timestamp' | 'sessionId' | 'pageUrl' | 'isEmbedded'>;\n\ninterface AnalyticsContextValue {\n trackEvent: (event: AnalyticsEventInput) => void;\n}\n\nconst AnalyticsContext = createContext<AnalyticsContextValue | null>(null);\n\ninterface AnalyticsProviderProps {\n /**\n * Pre-enriched track function that adds common fields (timestamp, sessionId, pageUrl, isEmbedded).\n * Created by QABot and passed down to ensure consistent enrichment across all call sites.\n */\n trackEvent: (event: AnalyticsEventInput) => void;\n children: React.ReactNode;\n}\n\nexport const AnalyticsProvider: React.FC<AnalyticsProviderProps> = ({\n trackEvent,\n children\n}) => {\n // Use ref to keep stable reference while allowing updates\n const trackEventRef = useRef(trackEvent);\n trackEventRef.current = trackEvent;\n\n return (\n <AnalyticsContext.Provider value={{ trackEvent: (event) => trackEventRef.current(event) }}>\n {children}\n </AnalyticsContext.Provider>\n );\n};\n\nexport const useAnalytics = (): AnalyticsContextValue => {\n const context = useContext(AnalyticsContext);\n if (!context) {\n // Return no-op if used outside provider (graceful degradation)\n return { trackEvent: () => {} };\n }\n return context;\n};\n","import React from 'react';\nimport { useFlow, useTextArea, useMessages } from 'react-chatbotify';\nimport RefreshIcon from './icons/RefreshIcon';\nimport { useSession } from '../contexts/SessionContext';\nimport { useAnalytics } from '../contexts/AnalyticsContext';\nimport { getSessionMessageCount } from '../utils/session-utils';\n\nconst NewChatButton: React.FC = () => {\n const { restartFlow } = useFlow();\n const { setTextAreaValue } = useTextArea();\n const { messages } = useMessages();\n const { getSessionId, resetSession, clearResettingFlag } = useSession();\n const { trackEvent } = useAnalytics();\n\n const handleNewChat = async () => {\n // Get message count from old session before reset\n const currentSessionId = getSessionId();\n const previousMessageCount = currentSessionId ? getSessionMessageCount(currentSessionId) : 0;\n\n // Track new chat event with previous session's message count\n trackEvent({\n type: 'chatbot_new_chat',\n previousMessageCount\n });\n\n // Reset session ID (sets resetting flag to true)\n resetSession();\n\n // Clear the input field immediately\n await setTextAreaValue('');\n\n // Restart the flow\n await restartFlow();\n\n // Wait a bit for any queued messages to be processed and blocked\n setTimeout(() => {\n clearResettingFlag();\n }, 100);\n };\n\n return (\n <button\n onClick={handleNewChat}\n tabIndex={0}\n aria-label=\"New chat conversation\"\n style={{\n backgroundColor: 'var(--primaryColor, #107180)',\n border: 'none',\n color: '#ffffff',\n fontSize: '14px',\n cursor: 'pointer',\n padding: '8px 12px',\n borderRadius: '4px',\n transition: 'all 0.2s ease',\n display: 'flex',\n alignItems: 'center',\n gap: '6px',\n fontWeight: '500',\n }}\n onMouseEnter={(e: React.MouseEvent<HTMLButtonElement>) => {\n (e.target as HTMLButtonElement).style.backgroundColor = 'var(--secondaryColor, #0d5f6b)';\n }}\n onMouseLeave={(e: React.MouseEvent<HTMLButtonElement>) => {\n (e.target as HTMLButtonElement).style.backgroundColor = 'var(--primaryColor, #107180)';\n }}\n >\n <RefreshIcon width={16} height={16} />\n New Chat\n </button>\n );\n};\n\nexport default NewChatButton;","// src/utils/jsx-text-extractor.ts\n\n/**\n * Extracts plain text content from a JSX element or any value.\n *\n * react-chatbotify wraps bot messages in JSX before firing events,\n * even when the flow step defines a plain string like:\n * message: \"What is your help ticket related to?\"\n *\n * This function recursively extracts the text so we can store it\n * in session history. Without this, bot messages would be lost\n * when restoring sessions.\n *\n * @param element - Any value (string, number, JSX element, array, etc.)\n * @returns The extracted text content, or empty string if none found\n */\nexport function extractTextFromJsx(element: unknown): string {\n // Base cases\n if (typeof element === 'string') {\n return element;\n }\n if (typeof element === 'number') {\n return String(element);\n }\n if (!element) {\n return '';\n }\n\n // Handle arrays (e.g., multiple children)\n if (Array.isArray(element)) {\n return element.map(extractTextFromJsx).join('');\n }\n\n // Handle React elements (objects with props.children)\n if (typeof element === 'object' && element !== null && 'props' in element) {\n const props = (element as { props?: { children?: unknown } }).props;\n if (props && 'children' in props) {\n return extractTextFromJsx(props.children);\n }\n }\n\n // Unknown type - return empty string\n return '';\n}\n","// src/components/SessionMessageTracker.tsx\nimport { useEffect, useCallback } from 'react';\nimport { RcbPreInjectMessageEvent } from 'react-chatbotify';\nimport { useSession } from '../contexts/SessionContext';\nimport { addMessageToSession } from '../utils/session-utils';\nimport { extractTextFromJsx } from '../utils/jsx-text-extractor';\nimport { logger } from '../utils/logger';\n\n/**\n * Invisible component that stores each chat message with its session ID.\n *\n * Problem: React-Chatbotify stores all messages in a flat list with no session\n * boundaries. When a user has multiple conversations, there's no way to know\n * which messages belong to which conversation. Also, RCB's history storage\n * is opaque and unreliable for session restore.\n *\n * Solution: This component listens for message injection events and stores\n * the message content in our own localStorage. The history dropdown\n * restores sessions directly from our storage, not RCB's.\n *\n * Note: react-chatbotify wraps all messages (including plain strings) in JSX\n * before firing events. We use extractTextFromJsx() to recover the text content\n * from bot messages so they appear in restored sessions.\n *\n * IMPORTANT: For custom flow messages to be tracked, use the withHistory()\n * helper function. See utils/with-history.ts for details.\n *\n * Deduplication is handled by session-utils (checks message ID).\n *\n * Must be rendered inside ChatBotProvider.\n */\nconst SessionMessageTracker: React.FC = () => {\n const { getSessionId } = useSession();\n\n const handlePreInjectMessage = useCallback((event: Event) => {\n const rcbEvent = event as unknown as RcbPreInjectMessageEvent;\n const message = rcbEvent.data?.message;\n\n if (!message?.id) {\n return;\n }\n\n const sender = message.sender;\n const type = message.type || 'string';\n\n // Extract text content from message\n // react-chatbotify wraps bot messages in JSX, so we need to extract the text\n let content: string;\n if (typeof message.content === 'string') {\n content = message.content;\n } else {\n content = extractTextFromJsx(message.content);\n }\n\n // Log for debugging when enabled\n logger.message('TRACKED', {\n id: message.id,\n sender,\n content: content.substring(0, 50) + (content.length > 50 ? '...' : '')\n });\n\n // Skip rating option messages - they're not useful in history\n if (content.includes('rcb-options-container')) {\n return;\n }\n\n // Skip empty messages (e.g., file uploads, rating buttons with no text)\n if (!content.trim()) {\n return;\n }\n\n const sessionId = getSessionId();\n addMessageToSession(sessionId, message.id, content, sender, type);\n }, [getSessionId]);\n\n useEffect(() => {\n window.addEventListener('rcb-pre-inject-message', handlePreInjectMessage);\n\n return () => {\n window.removeEventListener('rcb-pre-inject-message', handlePreInjectMessage);\n };\n }, [handlePreInjectMessage]);\n\n // This component renders nothing - it just listens\n return null;\n};\n\nexport default SessionMessageTracker;\n","import { useEffect } from 'react';\n\n/**\n * Custom hook for keyboard navigation in chatbot options\n * Provides arrow key navigation, Enter/Space selection, and accessibility features\n */\nconst useKeyboardNavigation = () => {\n useEffect(() => {\n // Dedicated checkbox navigation handler\n const handleCheckboxNavigation = (event, elements) => {\n event.preventDefault();\n\n let currentIndex = -1;\n\n // Find currently focused element\n for (let i = 0; i < elements.length; i++) {\n if (elements[i] === document.activeElement || elements[i].contains(document.activeElement)) {\n currentIndex = i;\n break;\n }\n }\n\n // If no element is focused, start with first one\n if (currentIndex === -1) {\n currentIndex = 0;\n }\n\n let newIndex = currentIndex;\n\n switch (event.key) {\n case 'ArrowDown':\n case 'ArrowRight':\n newIndex = currentIndex < elements.length - 1 ? currentIndex + 1 : 0;\n break;\n case 'ArrowUp':\n case 'ArrowLeft':\n newIndex = currentIndex > 0 ? currentIndex - 1 : elements.length - 1;\n break;\n case 'Home':\n newIndex = 0;\n break;\n case 'End':\n newIndex = elements.length - 1;\n break;\n case 'Enter':\n case ' ': {\n // Handle different types of elements\n const currentElement = elements[currentIndex];\n const mouseDownEvent = new MouseEvent('mousedown', {\n bubbles: true,\n cancelable: true,\n view: window\n });\n currentElement.dispatchEvent(mouseDownEvent);\n return;\n }\n default:\n // No action needed for other keys\n return;\n }\n\n // Focus the new element\n elements[newIndex].focus();\n elements[newIndex].setAttribute('tabindex', '0');\n elements[newIndex].classList.add('keyboard-focused');\n\n // Remove tabindex and focus class from other elements\n elements.forEach((element, index) => {\n if (index !== newIndex) {\n element.setAttribute('tabindex', '-1');\n element.classList.remove('keyboard-focused');\n }\n });\n };\n\n const handleKeyboardNavigation = (event) => {\n // Only handle arrow keys and Enter/Space\n if (!['ArrowDown', 'ArrowUp', 'ArrowLeft', 'ArrowRight', 'Enter', ' ', 'Home', 'End'].includes(event.key)) {\n return;\n }\n\n // Don't interfere with typing in input fields\n const activeElement = document.activeElement;\n if (activeElement && (\n activeElement.tagName === 'INPUT' ||\n activeElement.tagName === 'TEXTAREA' ||\n activeElement.contentEditable === 'true' ||\n activeElement.classList.contains('rcb-chat-input-textarea')\n )) {\n return;\n }\n\n const chatWindow = document.querySelector('.rcb-chat-window');\n if (!chatWindow) return;\n\n // Special handling for checkboxes - but only if they're in the most recent message\n const allMessages = Array.from(chatWindow.querySelectorAll('.rcb-message-container, .rcb-bot-message-container, .rcb-user-message-container'))\n .filter(el => el.offsetParent !== null);\n\n if (allMessages.length > 0) {\n const lastMessage = allMessages[allMessages.length - 1];\n const checkboxContainer = lastMessage.querySelector('.rcb-checkbox-container');\n\n if (checkboxContainer && checkboxContainer.offsetParent !== null) {\n const checkboxes = Array.from(checkboxContainer.querySelectorAll('.rcb-checkbox-row-container'));\n const nextButton = checkboxContainer.querySelector('.rcb-checkbox-next-button');\n\n if (checkboxes.length > 0) {\n // Include next button in navigable elements\n const allElements = [...checkboxes];\n if (nextButton) {\n allElements.push(nextButton);\n }\n handleCheckboxNavigation(event, allElements);\n return;\n }\n }\n }\n\n // Check if chat window is visible and if there are options available - only in the most recent message\n\n let options = [];\n if (allMessages.length > 0) {\n const lastMessage = allMessages[allMessages.length - 1];\n const optionsContainers = Array.from(lastMessage.querySelectorAll('.rcb-options-container'))\n .filter(el => el.offsetParent !== null);\n\n if (optionsContainers.length > 0) {\n const lastContainer = optionsContainers[optionsContainers.length - 1];\n options = Array.from(lastContainer.querySelectorAll('.rcb-options'));\n }\n }\n\n if (options.length === 0) return;\n\n const currentIndex = options.findIndex(option => option === document.activeElement);\n\n switch (event.key) {\n case 'ArrowDown':\n case 'ArrowRight': {\n event.preventDefault();\n let nextIndex;\n if (currentIndex < options.length - 1) {\n nextIndex = currentIndex + 1;\n } else {\n // Wrap to first option\n nextIndex = 0;\n }\n\n // Make sure the element is focusable\n options[nextIndex].setAttribute('tabindex', '0');\n options.forEach((opt, i) => {\n if (i !== nextIndex) {\n opt.setAttribute('tabindex', '-1');\n opt.classList.remove('keyboard-focused');\n }\n });\n\n options[nextIndex].classList.add('keyboard-focused');\n options[nextIndex].focus();\n break;\n }\n\n case 'ArrowUp':\n case 'ArrowLeft': {\n event.preventDefault();\n let prevIndex;\n if (currentIndex > 0) {\n prevIndex = currentIndex - 1;\n } else {\n // Wrap to last option\n prevIndex = options.length - 1;\n }\n\n // Make sure the element is focusable\n options[prevIndex].setAttribute('tabindex', '0');\n options.forEach((opt, i) => {\n if (i !== prevIndex) {\n opt.setAttribute('tabindex', '-1');\n opt.classList.remove('keyboard-focused');\n }\n });\n\n options[prevIndex].classList.add('keyboard-focused');\n options[prevIndex].focus();\n break;\n }\n\n case 'Enter':\n case ' ': // Space key\n event.preventDefault();\n if (document.activeElement && options.includes(document.activeElement)) {\n const activeElement = document.activeElement;\n\n // Handle checkboxes differently\n if (activeElement.classList.contains('rcb-checkbox-row-container') || activeElement.closest('.rcb-checkbox-row-container')) {\n // For checkboxes, trigger a mousedown event (React ChatBotify standard)\n const mouseDownEvent = new MouseEvent('mousedown', {\n bubbles: true,\n cancelable: true,\n view: window\n });\n activeElement.dispatchEvent(mouseDownEvent);\n\n // Announce checkbox state\n const labelElement = activeElement.querySelector('.rcb-checkbox-label');\n const selectedText = labelElement ? labelElement.textContent : (activeElement.textContent || 'checkbox');\n const checkboxMark = activeElement.querySelector('.rcb-checkbox-mark');\n const isChecked = checkboxMark && checkboxMark.style.backgroundColor ? 'checked' : 'unchecked';\n announceToScreenReader(`${selectedText} ${isChecked}`);\n } else {\n // For regular options, use mousedown\n const mouseDownEvent = new MouseEvent('mousedown', {\n bubbles: true,\n cancelable: true,\n view: window\n });\n activeElement.dispatchEvent(mouseDownEvent);\n\n // Announce selection to screen readers\n const selectedText = activeElement.textContent || activeElement.innerText;\n announceToScreenReader(`Selected: ${selectedText}`);\n }\n }\n break;\n\n case 'Home':\n event.preventDefault();\n if (options.length > 0) {\n options[0].setAttribute('tabindex', '0');\n options.forEach((opt, i) => {\n if (i !== 0) {\n opt.setAttribute('tabindex', '-1');\n opt.classList.remove('keyboard-focused');\n }\n });\n options[0].classList.add('keyboard-focused');\n options[0].focus();\n }\n break;\n\n case 'End':\n event.preventDefault();\n if (options.length > 0) {\n const lastIndex = options.length - 1;\n options[lastIndex].setAttribute('tabindex', '0');\n options.forEach((opt, i) => {\n if (i !== lastIndex) {\n opt.setAttribute('tabindex', '-1');\n opt.classList.remove('keyboard-focused');\n }\n });\n options[lastIndex].classList.add('keyboard-focused');\n options[lastIndex].focus();\n }\n break;\n default:\n // No action needed for other keys\n break;\n }\n };\n\n\n // Screen reader announcement helper\n const announceToScreenReader = (message) => {\n const announcement = document.createElement('div');\n announcement.setAttribute('aria-live', 'assertive');\n announcement.setAttribute('aria-atomic', 'true');\n announcement.className = 'sr-only';\n announcement.textContent = message;\n document.body.appendChild(announcement);\n setTimeout(() => {\n if (document.body.contains(announcement)) {\n document.body.removeChild(announcement);\n }\n }, 1000);\n };\n\n // Auto-focus first option when new options appear\n const handleNewOptions = (targetContainer = null) => {\n let chatWindow = targetContainer;\n\n // If no specific container provided, try to find one\n if (!chatWindow) {\n chatWindow = document.querySelector('.rcb-chat-window');\n if (!chatWindow) {\n chatWindow = document.querySelector('[class*=\"rcb-chat\"]');\n }\n if (!chatWindow) {\n chatWindow = document.querySelector('.qa-bot');\n }\n }\n\n if (!chatWindow) return;\n\n // Check if this is an embedded bot to prevent auto-scroll\n const isEmbeddedBot = chatWindow.closest('.embedded-qa-bot') !== null;\n\n // Get all messages to ensure we only focus options in the most recent message\n const allMessages = Array.from(chatWindow.querySelectorAll('.rcb-message-container, .rcb-bot-message-container, .rcb-user-message-container'))\n .filter(el => el.offsetParent !== null);\n\n if (allMessages.length === 0) return;\n\n const lastMessage = allMessages[allMessages.length - 1];\n\n // Get options containers only from the last message\n const optionsContainers = Array.from(lastMessage.querySelectorAll('.rcb-options-container'))\n .filter(el => el.offsetParent !== null);\n\n let options = [];\n const optionType = 'regular';\n\n // Look for regular options first - but only in the last message\n if (optionsContainers.length > 0) {\n const lastContainer = optionsContainers[optionsContainers.length - 1];\n options = Array.from(lastContainer.querySelectorAll('.rcb-options'));\n }\n\n // If no regular options, look for checkboxes and set them up\n if (options.length === 0) {\n // First try to find checkbox container in last message, but fallback to chatWindow if not found\n let checkboxContainer = lastMessage.querySelector('.rcb-checkbox-container');\n if (!checkboxContainer && chatWindow) {\n checkboxContainer = chatWindow.querySelector('.rcb-checkbox-container');\n }\n\n if (checkboxContainer && checkboxContainer.offsetParent !== null) {\n const checkboxElements = Array.from(checkboxContainer.querySelectorAll('.rcb-checkbox-row-container'))\n .filter(el => el.offsetParent !== null && el.style.display !== 'none');\n\n if (checkboxElements.length > 0) {\n // Include next button in navigable elements\n const nextButton = checkboxContainer.querySelector('.rcb-checkbox-next-button');\n const allElements = [...checkboxElements];\n if (nextButton && nextButton.offsetParent !== null) {\n allElements.push(nextButton);\n }\n\n // Set up checkboxes for keyboard navigation\n allElements.forEach((element, index) => {\n element.setAttribute('tabindex', index === 0 ? '0' : '-1');\n if (index === 0) {\n element.classList.add('keyboard-focused');\n } else {\n element.classList.remove('keyboard-focused');\n }\n });\n\n // Add keyboard navigation hint for checkboxes if there are multiple elements\n if (checkboxElements.length > 1) {\n // Remove any existing hints first\n const existingHints = checkboxContainer.querySelectorAll('.keyboard-nav-hint');\n existingHints.forEach(hint => hint.remove());\n\n // Add new hint\n const hintElement = document.createElement('div');\n hintElement.className = 'keyboard-nav-hint';\n hintElement.textContent = 'Use arrow keys ↕ to navigate, Enter to select/deselect, or click any option';\n hintElement.style.cssText = 'font-size: 12px !important; color: #666 !important; margin-bottom: 8px !important; font-style: italic !important; display: block !important;';\n checkboxContainer.insertBefore(hintElement, checkboxContainer.firstChild);\n }\n\n // Focus first element (skip for embedded bots to prevent auto-scroll)\n setTimeout(() => {\n if (allElements[0] && allElements[0].offsetParent !== null && !isEmbeddedBot) {\n allElements[0].focus();\n }\n }, 150);\n\n return; // Don't process as regular options\n }\n }\n }\n\n if (options.length > 0) {\n // Set tabindex and ARIA attributes for keyboard navigation\n options.forEach((option, index) => {\n const tabindex = index === 0 ? '0' : '-1';\n option.setAttribute('tabindex', tabindex);\n option.setAttribute('role', 'option');\n option.setAttribute('aria-posinset', index + 1);\n option.setAttribute('aria-setsize', options.length);\n // Add visual focus class to first option\n if (index === 0) {\n option.classList.add('keyboard-focused');\n } else {\n option.classList.remove('keyboard-focused');\n }\n });\n\n // Add keyboard navigation hint only for multiple options\n if (options.length > 1 && optionType === 'regular') {\n // Only add hints for regular options, and only if we have a container\n const lastContainer = optionsContainers.length > 0 ? optionsContainers[optionsContainers.length - 1] : null;\n if (lastContainer) {\n // Remove any existing hint first\n const existingHints = lastContainer.querySelectorAll('.keyboard-nav-hint');\n existingHints.forEach(hint => hint.remove());\n\n // Add new hint\n const hintElement = document.createElement('div');\n hintElement.className = 'keyboard-nav-hint';\n hintElement.textContent = 'Use arrow keys ↕ to navigate, Enter to select, or click any option';\n hintElement.style.cssText = 'font-size: 12px !important; color: #666 !important; margin-bottom: 8px !important; font-style: italic !important; display: block !important;';\n lastContainer.insertBefore(hintElement, lastContainer.firstChild);\n }\n } else if (optionType === 'regular') {\n // Remove hints for single options, but only for regular options\n const lastContainer = optionsContainers.length > 0 ? optionsContainers[optionsContainers.length - 1] : null;\n if (lastContainer) {\n const existingHints = lastContainer.querySelectorAll('.keyboard-nav-hint');\n existingHints.forEach(hint => hint.remove());\n }\n }\n\n // Focus first option after a short delay to allow rendering (skip for embedded bots to prevent auto-scroll)\n setTimeout(() => {\n if (options[0] && options[0].offsetParent !== null && !isEmbeddedBot) {\n options[0].focus();\n if (options.length > 1) {\n announceToScreenReader(`${options.length} options available. Use arrow keys to navigate.`);\n }\n }\n }, 200);\n }\n };\n\n // Immediately set accessibility attributes on options (no delay)\n const setOptionsAccessibility = (container) => {\n const options = container.querySelectorAll('.rcb-options');\n options.forEach((option, index) => {\n if (!option.hasAttribute('role')) {\n option.setAttribute('role', 'button');\n option.setAttribute('tabindex', index === 0 ? '0' : '-1');\n option.setAttribute('aria-posinset', index + 1);\n option.setAttribute('aria-setsize', options.length);\n }\n });\n\n const checkboxes = container.querySelectorAll('.rcb-checkbox-row-container');\n checkboxes.forEach((checkbox, index) => {\n if (!checkbox.hasAttribute('role')) {\n checkbox.setAttribute('role', 'checkbox');\n checkbox.setAttribute('tabindex', index === 0 ? '0' : '-1');\n }\n });\n };\n\n // Set up mutation observer to watch for new options\n const observer = new MutationObserver((mutations) => {\n mutations.forEach((mutation) => {\n if (mutation.type === 'childList') {\n const addedNodes = Array.from(mutation.addedNodes);\n\n const hasNewOptions = addedNodes.some(node =>\n node.nodeType === Node.ELEMENT_NODE &&\n (node.classList?.contains('rcb-options-container') ||\n node.classList?.contains('rcb-options') ||\n node.querySelector?.('.rcb-options-container') ||\n node.querySelector?.('.rcb-options'))\n );\n\n const hasNewCheckboxes = addedNodes.some(node =>\n node.nodeType === Node.ELEMENT_NODE &&\n (node.classList?.contains('rcb-checkbox-container') ||\n node.querySelector?.('.rcb-checkbox-container'))\n );\n\n\n if (hasNewOptions || hasNewCheckboxes) {\n // Find which bot container this mutation occurred in\n let botContainer = mutation.target;\n while (botContainer && !botContainer.classList?.contains('qa-bot') && !botContainer.classList?.contains('rcb-chat-window')) {\n botContainer = botContainer.parentElement;\n }\n\n // If we found a bot container, scope operations to it; otherwise fallback to global\n const scopeElement = botContainer || document;\n\n // IMMEDIATELY set accessibility attributes (synchronous, no delay)\n setOptionsAccessibility(scopeElement);\n\n // Clear tabindex from existing elements within this bot\n scopeElement.querySelectorAll('.rcb-options[tabindex], .rcb-checkbox-row-container[tabindex], .rcb-checkbox-next-button[tabindex]').forEach(el => {\n el.setAttribute('tabindex', '-1');\n el.classList.remove('keyboard-focused');\n });\n\n // Handle new options for this specific bot (focus management with delay)\n setTimeout(() => handleNewOptions(botContainer), 100);\n }\n }\n });\n });\n\n // Start observing the document body for changes in any bot\n observer.observe(document.body, {\n childList: true,\n subtree: true\n });\n\n // Add keyboard event listener to document only\n document.addEventListener('keydown', handleKeyboardNavigation);\n\n // Check for existing options on mount - set accessibility immediately\n setOptionsAccessibility(document);\n handleNewOptions();\n\n\n // Periodic check as backup to catch any missed options and checkboxes\n const periodicCheck = setInterval(() => {\n // Check each bot container individually\n document.querySelectorAll('.qa-bot').forEach(botContainer => {\n const hasVisibleOptions = botContainer.querySelectorAll('.rcb-options-container .rcb-options').length > 0;\n const hasVisibleCheckboxes = botContainer.querySelectorAll('.rcb-checkbox-row-container').length > 0;\n\n if (hasVisibleOptions) {\n // Always ensure accessibility attributes are set\n setOptionsAccessibility(botContainer);\n\n const lastProcessedOptions = botContainer.querySelectorAll('.rcb-options[tabindex]').length;\n const currentOptions = botContainer.querySelectorAll('.rcb-options').length;\n\n if (currentOptions > lastProcessedOptions) {\n handleNewOptions(botContainer);\n }\n }\n\n if (hasVisibleCheckboxes) {\n // Always ensure accessibility attributes are set\n setOptionsAccessibility(botContainer);\n\n const lastProcessedCheckboxes = botContainer.querySelectorAll('.rcb-checkbox-row-container[tabindex]').length;\n const currentCheckboxes = botContainer.querySelectorAll('.rcb-checkbox-row-container').length;\n\n if (currentCheckboxes > lastProcessedCheckboxes) {\n handleNewOptions(botContainer);\n }\n }\n });\n }, 1000);\n\n // Cleanup\n return () => {\n document.removeEventListener('keydown', handleKeyboardNavigation);\n observer.disconnect();\n clearInterval(periodicCheck);\n };\n }, []);\n\n return null; // This hook doesn't return anything, just sets up event handlers\n};\n\nexport default useKeyboardNavigation;","// src/utils/flows/qa-flow.tsx\nimport React from 'react';\nimport { v4 as uuidv4 } from 'uuid';\nimport { getProcessedText } from '../getProcessedText';\nimport LoginButton from '../../components/LoginButton';\nimport { logger } from '../logger';\nimport type { AnalyticsEventInput } from '../../contexts/AnalyticsContext';\n\n/**\n * Configuration for creating a Q&A flow\n */\nexport interface CreateQAFlowParams {\n /** Q&A API endpoint (required) */\n endpoint: string;\n /** Rating API endpoint (optional) */\n ratingEndpoint?: string;\n /** API key for authentication (optional) */\n apiKey?: string;\n /** Function that returns current session ID */\n sessionId: () => string | null;\n /** Function that returns whether we're currently resetting */\n isResetting?: () => boolean;\n /** Whether the user is logged in (required) */\n isLoggedIn: boolean;\n /** Allow Q&A without login (default: false) */\n allowAnonAccess?: boolean;\n /** Login URL to redirect to (optional) */\n loginUrl?: string;\n /**\n * The acting user's identifier.\n * @deprecated Identity is now determined server-side from the JWT cookie.\n * This prop is ignored — retained only for backward compatibility during transition.\n */\n actingUser?: string;\n /** Enriched analytics tracker (adds common fields automatically) */\n trackEvent?: (event: AnalyticsEventInput) => void;\n}\n\n/**\n * Builds a plain text string for displaying response metadata.\n * Returns empty string if no metadata is present.\n */\nfunction buildMetadataText(body: {\n confidence?: string;\n tools_used?: string[];\n metadata?: Record<string, unknown>;\n}): string {\n const { confidence, tools_used, metadata } = body;\n\n // Skip if no metadata present\n if (!confidence && (!tools_used || tools_used.length === 0)) {\n return '';\n }\n\n const parts: string[] = [];\n\n if (confidence) {\n parts.push(`• Confidence: ${confidence}`);\n }\n\n if (tools_used && tools_used.length > 0) {\n parts.push(`• Tools used: ${tools_used.join(', ')}`);\n }\n\n // Show agent name from metadata (useful for demo/debugging)\n if (metadata?.agent) {\n parts.push(`• Agent: ${metadata.agent}`);\n }\n\n return `---\\n${parts.join('\\n')}`;\n}\n\n/**\n * Creates the basic Q&A conversation flow\n * Handles questions, responses, and optional ratings\n */\nexport const createQAFlow = ({\n endpoint,\n ratingEndpoint,\n apiKey,\n sessionId: getSessionId,\n isResetting = () => false,\n isLoggedIn,\n allowAnonAccess = false,\n loginUrl = '/login',\n actingUser,\n trackEvent\n}: CreateQAFlowParams) => {\n // Gate Q&A when user is logged out (unless allowAnonAccess is true)\n if (isLoggedIn === false && !allowAnonAccess) {\n // Track that login prompt was shown\n trackEvent?.({ type: 'chatbot_login_prompt_shown' });\n\n return {\n qa_loop: {\n message: \"To ask questions, please log in first.\",\n component: <LoginButton loginUrl={loginUrl} />,\n chatDisabled: true,\n path: \"qa_loop\"\n }\n };\n }\n\n // Track query ID for feedback\n let feedbackQueryId = null;\n // Track if we've shown a response to the user\n let hasShownResponse = false;\n\n // Require endpoint to be configured\n if (!endpoint) {\n throw new Error('Q&A endpoint is required');\n }\n\n return {\n qa_loop: {\n message: async (chatState) => {\n const { userInput } = chatState;\n\n // Skip processing if we're in reset mode\n if (isResetting && isResetting()) {\n return null;\n }\n\n // Skip processing if there's no user input (initial transition from start)\n if (!userInput || userInput.trim() === '') {\n return null;\n }\n\n // Handle feedback if rating endpoint is configured\n if (userInput === \"👍 Helpful\" || userInput === \"👎 Not helpful\") {\n if (ratingEndpoint && feedbackQueryId) {\n try {\n const isPositive = userInput === \"👍 Helpful\";\n const headers = {\n 'Content-Type': 'application/json'\n };\n\n // Add API key if provided\n if (apiKey) {\n headers['X-API-KEY'] = apiKey;\n }\n\n // Add session tracking if available\n const currentSessionId = getSessionId();\n if (currentSessionId) {\n headers['X-Session-ID'] = currentSessionId;\n headers['X-Query-ID'] = feedbackQueryId;\n }\n\n await fetch(ratingEndpoint, {\n method: 'POST',\n headers,\n credentials: 'include',\n body: JSON.stringify({\n sessionId: currentSessionId,\n queryId: feedbackQueryId,\n rating: isPositive ? 1 : 0\n })\n });\n\n // Track rating event\n trackEvent?.({\n type: 'chatbot_rating_sent',\n queryId: feedbackQueryId,\n rating: isPositive ? 'helpful' : 'not_helpful'\n });\n } catch (error) {\n logger.error('Error sending feedback:', error);\n }\n }\n\n return \"Thanks for the feedback! Feel free to ask another question.\";\n }\n\n // Process as a question\n try {\n const queryId = uuidv4();\n feedbackQueryId = queryId;\n\n // Track question asked\n trackEvent?.({\n type: 'chatbot_question_sent',\n queryId,\n questionLength: userInput.length\n });\n\n const headers = {\n 'Content-Type': 'application/json'\n };\n\n // Add optional headers\n if (apiKey) {\n headers['X-API-KEY'] = apiKey;\n }\n const currentSessionId = getSessionId();\n if (currentSessionId) {\n headers['X-Session-ID'] = currentSessionId;\n headers['X-Query-ID'] = queryId;\n }\n // Build request body\n const requestBody: Record<string, string> = {\n query: userInput,\n session_id: currentSessionId,\n question_id: queryId\n };\n\n // Log the session ID being sent\n logger.session('SENT to API', {\n session_id: currentSessionId,\n question_id: queryId\n });\n\n // Capture timestamp before fetch for response time calculation\n const requestStartTime = Date.now();\n\n const response = await fetch(endpoint, {\n method: 'POST',\n headers,\n credentials: 'include',\n body: JSON.stringify(requestBody)\n });\n\n // Calculate response time (network + server processing)\n const responseTimeMs = Date.now() - requestStartTime;\n\n if (!response.ok) {\n throw new Error(`API returned ${response.status}`);\n }\n\n const body = await response.json();\n\n // Support different response formats\n const text = body.response || body.answer || body.text || body.message;\n\n if (!text) {\n throw new Error('Invalid response format from API');\n }\n\n // Process text (handles markdown, links, etc.)\n const processedText = getProcessedText(text);\n\n // Build metadata text (empty string if no metadata present)\n const metadataText = buildMetadataText(body);\n const fullContent = metadataText ? `${processedText}\\n\\n${metadataText}` : processedText;\n\n // Inject the response\n await chatState.injectMessage(fullContent);\n\n // Track response received\n trackEvent?.({\n type: 'chatbot_answer_received',\n queryId,\n responseTimeMs,\n success: true,\n responseLength: text.length,\n hasMetadata: !!metadataText\n });\n\n // Mark that we've shown a response\n hasShownResponse = true;\n\n // Add guidance message after a short delay\n setTimeout(async () => {\n await chatState.injectMessage(\"Feel free to ask another question.\");\n }, 100);\n\n return null;\n } catch (error) {\n logger.error('Error in Q&A flow:', error);\n\n // Track error event\n trackEvent?.({\n type: 'chatbot_answer_error',\n queryId: feedbackQueryId ?? undefined,\n errorType: error instanceof Error ? error.message : 'unknown'\n });\n\n return \"I apologize, but I'm having trouble processing your question. Please try again later.\";\n }\n },\n\n // Show rating options only if rating endpoint is configured and we've shown a response\n options: (chatState) => {\n // Don't show options if we're resetting\n if (isResetting && isResetting()) {\n return [];\n }\n\n // Don't show options after feedback\n if (chatState.userInput === \"👍 Helpful\" || chatState.userInput === \"👎 Not helpful\") {\n return [];\n }\n\n // Only show rating options if endpoint is configured AND we've shown a response\n return (ratingEndpoint && hasShownResponse) ? [\"👍 Helpful\", \"👎 Not helpful\"] : [];\n },\n\n renderMarkdown: [\"BOT\"],\n chatDisabled: false,\n path: \"qa_loop\"\n }\n };\n};","import type { Settings, Flow } from 'react-chatbotify';\n\n/**\n * Analytics event types fired by qa-bot-core\n */\nexport type QABotAnalyticsEventType =\n | 'chatbot_open'\n | 'chatbot_close'\n | 'chatbot_new_chat'\n | 'chatbot_question_sent'\n | 'chatbot_answer_received'\n | 'chatbot_answer_error'\n | 'chatbot_rating_sent'\n | 'chatbot_login_prompt_shown';\n\n/**\n * Analytics event payload\n * \n * Common fields (auto-populated for all events):\n * - timestamp: When the event occurred\n * - sessionId: Current chat session ID\n * - pageUrl: URL where the bot is displayed\n * - isEmbedded: Whether bot is in embedded mode (true) or floating/widget mode (false)\n * \n * Event-specific fields:\n * - chatbot_open: (common fields only)\n * - chatbot_close: messageCount, durationMs\n * - chatbot_new_chat: previousMessageCount\n * - chatbot_question_sent: queryId, questionLength\n * - chatbot_answer_received: queryId, responseTimeMs, success, responseLength, hasMetadata\n * - chatbot_answer_error: queryId, errorType\n * - chatbot_rating_sent: queryId, rating\n * - chatbot_login_prompt_shown: (common fields only)\n */\nexport interface QABotAnalyticsEvent {\n type: QABotAnalyticsEventType;\n timestamp: number;\n sessionId?: string;\n // Common context fields (auto-populated)\n pageUrl?: string;\n isEmbedded?: boolean;\n // Query tracking\n queryId?: string;\n // chatbot_question_sent\n questionLength?: number;\n // chatbot_answer_received\n responseTimeMs?: number;\n success?: boolean;\n responseLength?: number;\n hasMetadata?: boolean;\n // chatbot_answer_error\n errorType?: string;\n // chatbot_rating_sent\n rating?: 'helpful' | 'not_helpful';\n // chatbot_close\n messageCount?: number;\n durationMs?: number;\n // chatbot_new_chat\n previousMessageCount?: number;\n}\n\nexport interface QABotProps {\n apiKey: string;\n qaEndpoint: string;\n welcomeMessage: string;\n ratingEndpoint?: string;\n primaryColor?: string;\n secondaryColor?: string;\n botName?: string;\n logo?: string;\n placeholder?: string;\n errorMessage?: string;\n embedded?: boolean;\n footerText?: string;\n footerLink?: string;\n tooltipText?: string;\n loginUrl?: string;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n\n /**\n * Whether the user is currently logged in.\n * - Required: this bot expects login state to be tracked\n * - Controls header icon (login button when false, user icon when true)\n * - When false, Q&A is gated by default (shows login prompt)\n */\n isLoggedIn: boolean;\n\n /**\n * Allow anonymous access to Q&A even when not logged in.\n * - Default: false (Q&A is gated when isLoggedIn is false)\n * - Set to true to bypass login gating for Q&A\n * - Does not affect custom flows (tickets, security, etc.)\n */\n allowAnonAccess?: boolean;\n\n /**\n * The acting user's identifier (e.g., email or username).\n * - Sent to the backend in both headers (X-Acting-User) and body (acting_user)\n * - Optional: if not provided, requests will be anonymous\n */\n actingUser?: string;\n\n /**\n * Custom flow steps to merge with the built-in Q&A flow.\n * Use this to add ticket creation flows, feedback flows, etc.\n * These steps will be merged into the flow object.\n */\n customFlow?: Flow;\n\n /**\n * Callback fired when trackable events occur.\n * Use this to wire up analytics (GTM, GA4, etc.)\n *\n * @example\n * onAnalyticsEvent={(event) => {\n * window.dataLayer?.push({ event: event.type, ...event });\n * }}\n */\n onAnalyticsEvent?: (event: QABotAnalyticsEvent) => void;\n}\n\n/**\n * Default values for overridable props\n */\nexport const defaultValues: {\n primaryColor: string;\n secondaryColor: string;\n fontFamily: string;\n botName: string;\n avatar: string;\n placeholder: string;\n errorMessage: string;\n embedded: boolean;\n tooltipText: string;\n loginUrl: string;\n} = {\n primaryColor: '#1a5b6e',\n secondaryColor: '#107180',\n fontFamily: 'Arial, sans-serif',\n botName: 'Q&A Bot',\n avatar: '/chat-icon.svg',\n placeholder: 'Type your question here...',\n errorMessage: 'Select an option to continue',\n embedded: false,\n tooltipText: 'Ask me a question!',\n loginUrl: '/login'\n};\n\n\n/**\n * Fixed react-chatbotify settings\n */\nexport const fixedReactChatbotifySettings: Settings = {\n general: {\n showHeader: true,\n showFooter: true\n },\n tooltip: {\n mode: 'CLOSE'\n },\n chatInput: {\n disabled: false,\n characterLimit: 1000,\n showCharacterCount: false,\n allowNewline: true,\n blockSpam: false\n },\n chatWindow: {\n defaultOpen: false,\n showScrollbar: false\n },\n botBubble: {\n simulateStream: true,\n streamSpeed: 10,\n showAvatar: false\n },\n userBubble: {\n showAvatar: false\n },\n // Disable notification badge on chat button\n notification: {\n disabled: true,\n showCount: false\n },\n // Disable other optional features\n audio: { disabled: true },\n emoji: { disabled: true },\n fileAttachment: { disabled: true }\n // Note: We don't use RCB's chatHistory - we store messages ourselves in session-utils.ts\n};\n\n\n/* Utility Types */\nexport interface ThemeColors {\n primaryColor?: string;\n secondaryColor?: string;\n fontFamily?: string;\n}\n\nexport interface BotControllerHandle {\n addMessage: (message: string) => void;\n openChat: () => void;\n closeChat: () => void;\n toggleChat: () => void;\n setBotEnabled: (enabled: boolean) => void;\n}\n\n","// src/components/QABot.tsx\nimport React, { useRef, useEffect, useMemo, forwardRef, useState, useCallback } from 'react';\nimport ChatBot, { ChatBotProvider, Button } from \"react-chatbotify\";\nimport HtmlRenderer from \"@rcb-plugins/html-renderer\";\nimport MarkdownRenderer from \"@rcb-plugins/markdown-renderer\";\nimport InputValidator from \"@rcb-plugins/input-validator\";\nimport BotController from './BotController';\nimport LoginButton from './LoginButton';\nimport UserIcon from './UserIcon';\nimport HistoryButton from './HistoryButton';\nimport NewChatButton from './NewChatButton';\nimport SessionMessageTracker from './SessionMessageTracker';\nimport useThemeColors from '../hooks/useThemeColors';\nimport useChatBotSettings from '../hooks/useChatBotSettings';\nimport useFocusableSendButton from '../hooks/useFocusableSendButton';\nimport useKeyboardNavigation from '../hooks/useKeyboardNavigation';\nimport useUpdateHeader from '../hooks/useUpdateHeader';\nimport { createQAFlow } from '../utils/flows/qa-flow';\nimport {\n generateSessionId,\n getSessionMessageCount,\n computeSessionDurationMs\n} from '../utils/session-utils';\nimport { SessionProvider } from '../contexts/SessionContext';\nimport { AnalyticsProvider, type AnalyticsEventInput } from '../contexts/AnalyticsContext';\nimport { logger } from '../utils/logger';\nimport type { Settings, Flow } from 'react-chatbotify';\nimport {\n fixedReactChatbotifySettings,\n defaultValues,\n type QABotProps,\n type BotControllerHandle,\n type ThemeColors\n} from '../config';\n\n/**\n * Q&A Bot Component - A pre-configured react-chatbotify wrapper with business logic\n */\nconst QABot = forwardRef<BotControllerHandle, QABotProps>((props, ref) => {\n const {\n // Required\n apiKey,\n qaEndpoint,\n\n // Optional functionality\n ratingEndpoint,\n welcomeMessage,\n open,\n onOpenChange,\n\n // Login state props (isLoggedIn is required)\n isLoggedIn,\n allowAnonAccess = false,\n actingUser,\n\n // Optional branding\n primaryColor,\n secondaryColor,\n botName,\n logo,\n placeholder,\n errorMessage,\n\n // Layout props\n embedded,\n\n // Footer props\n footerText,\n footerLink,\n tooltipText,\n\n // Login props\n loginUrl,\n\n // Custom flow extension\n customFlow,\n\n // Analytics callback\n onAnalyticsEvent\n } = props;\n\n // Instance ID - stable across component lifecycle (for unique React keys)\n const instanceIdRef = useRef<string>(`bot_${Math.random().toString(36).substr(2, 9)}`);\n\n // Log version on mount (when debug enabled)\n useEffect(() => {\n logger.version();\n }, []);\n\n // Session management - use ref so session can change without recreating flow\n // Use lazy initializer to only generate once per mount\n const sessionIdRef = useRef<string | null>(null);\n if (sessionIdRef.current === null) {\n sessionIdRef.current = generateSessionId();\n logger.session('CREATED', sessionIdRef.current);\n }\n\n // Track when we're resetting to prevent message replay\n const isResettingRef = useRef<boolean>(false);\n\n // Create a stable getter object that the flow will capture\n const sessionGetter = useRef({\n getSessionId: () => sessionIdRef.current,\n isResetting: () => isResettingRef.current\n });\n\n // Function to reset session ID (creates a new unique session)\n const resetSession = () => {\n const oldSessionId = sessionIdRef.current;\n isResettingRef.current = true;\n sessionIdRef.current = generateSessionId();\n logger.session('RESET', `${oldSessionId?.slice(-12)} -> ${sessionIdRef.current.slice(-12)}`);\n };\n\n // Function to set session ID (for restoring a previous session)\n const setSessionId = (sessionId: string) => {\n const oldSessionId = sessionIdRef.current;\n sessionIdRef.current = sessionId;\n logger.session('RESTORED', `${oldSessionId?.slice(-12)} -> ${sessionId.slice(-12)}`);\n };\n\n // Function to clear the resetting flag (called after flow restart completes)\n const clearResettingFlag = () => {\n isResettingRef.current = false;\n };\n\n // Track if user is logged in (for internal reactivity)\n // Note: undefined is treated as \"logged in\" (open access mode)\n const [internalIsLoggedIn, setInternalIsLoggedIn] = useState(isLoggedIn);\n\n // Sync isLoggedIn prop changes\n useEffect(() => {\n setInternalIsLoggedIn(isLoggedIn);\n }, [isLoggedIn]);\n\n // Determine if embedded (with default)\n const isEmbeddedMode = embedded !== undefined ? embedded : defaultValues.embedded;\n\n /**\n * Enriched analytics tracker - single source of truth for event enrichment.\n * Adds common fields (timestamp, sessionId, pageUrl, isEmbedded) to all events.\n * Used by: QABot directly, AnalyticsProvider (for child components), and qa-flow.\n */\n const trackEvent = useCallback((event: AnalyticsEventInput) => {\n if (onAnalyticsEvent) {\n onAnalyticsEvent({\n ...event,\n timestamp: Date.now(),\n sessionId: sessionIdRef.current ?? undefined,\n pageUrl: typeof window !== 'undefined' ? window.location.href : undefined,\n isEmbedded: isEmbeddedMode\n });\n }\n }, [onAnalyticsEvent, isEmbeddedMode]);\n\n // Build settings: Fixed settings + overridable props\n const settings = useMemo((): Settings => {\n // Start with fixed settings (cannot be overridden)\n const base = { ...fixedReactChatbotifySettings };\n\n // Add overridable settings - use props if provided, otherwise defaults\n base.general = {\n ...base.general,\n primaryColor: primaryColor || defaultValues.primaryColor,\n secondaryColor: secondaryColor || defaultValues.secondaryColor,\n fontFamily: defaultValues.fontFamily,\n embedded: isEmbeddedMode\n };\n\n // Build header buttons array conditionally\n // Show login button only if explicitly logged out (isLoggedIn === false)\n // Show history button + user icon when logged in\n const headerButtons = internalIsLoggedIn === false\n ? [<LoginButton key=\"login-button\" loginUrl={loginUrl || defaultValues.loginUrl} isHeaderButton={true} />]\n : [<HistoryButton key=\"history-button\" />, <UserIcon key=\"user-icon\" />];\n\n base.header = {\n title: <span style={{ fontSize: 14, fontWeight: 500 }}>{botName || defaultValues.botName}</span>,\n showAvatar: true,\n avatar: logo || defaultValues.avatar,\n buttons: [\n ...headerButtons,\n Button.CLOSE_CHAT_BUTTON\n ]\n };\n\n // Input is never globally disabled - individual flow steps control this\n base.chatInput = {\n ...base.chatInput,\n disabled: false,\n enabledPlaceholderText: placeholder || defaultValues.placeholder,\n disabledPlaceholderText: errorMessage || defaultValues.errorMessage\n };\n\n base.tooltip = {\n ...base.tooltip,\n text: tooltipText || defaultValues.tooltipText\n };\n\n // Configure footer with NewChatButton and optional text/link\n // This must be in useMemo (not useEffect) to avoid flashing the default footer\n const footerTextElement = footerText\n ? (footerLink\n ? <a href={footerLink} target=\"_blank\" rel=\"noopener noreferrer\" key=\"footer-link\">{footerText}</a>\n : <span key=\"footer-text\">{footerText}</span>)\n : null;\n\n base.footer = {\n text: footerTextElement,\n buttons: [<NewChatButton key=\"new-chat-button\" />]\n };\n\n // Ensure chatWindow is a fresh object (not shared with fixedReactChatbotifySettings)\n // and set defaultOpen based on embedded mode\n base.chatWindow = {\n ...base.chatWindow,\n defaultOpen: isEmbeddedMode ? true : false\n };\n\n // Enable events for message tracking\n base.event = {\n rcbPreInjectMessage: true,\n rcbPostInjectMessage: true,\n rcbUserSubmitText: true,\n rcbChangePath: true,\n rcbToggleChatWindow: true\n };\n\n return base;\n }, [primaryColor, secondaryColor, botName, logo, placeholder, errorMessage, isEmbeddedMode, tooltipText, internalIsLoggedIn, loginUrl, footerText, footerLink]);\n\n // Container ref for theming\n const containerRef = useRef<HTMLDivElement>(null);\n const themeColors: ThemeColors = useThemeColors(containerRef, settings.general);\n\n // Update header based on login state\n useUpdateHeader(internalIsLoggedIn !== false, containerRef);\n\n // Apply theme colors as CSS variables and other settings\n // Note: Footer is configured in the settings useMemo above to avoid flashing\n useChatBotSettings({ settings, themeColors });\n\n // Create Q&A flow directly from simple props - no intermediate layers!\n // Note: sessionGetter is stable, so flow won't recreate when session changes\n const flow = useMemo((): Flow => {\n const qaFlow = createQAFlow({\n endpoint: qaEndpoint,\n ratingEndpoint: ratingEndpoint,\n apiKey: apiKey,\n sessionId: sessionGetter.current.getSessionId,\n isResetting: sessionGetter.current.isResetting,\n isLoggedIn: internalIsLoggedIn,\n allowAnonAccess: allowAnonAccess,\n loginUrl: loginUrl || defaultValues.loginUrl,\n actingUser: actingUser,\n trackEvent: trackEvent\n });\n\n // Configure start step\n const startStep = {\n message: welcomeMessage,\n renderMarkdown: [\"BOT\"],\n transition: { duration: 0 },\n path: \"qa_loop\"\n };\n\n // Merge flows: start + Q&A flow + custom flow (if provided)\n return {\n start: startStep,\n ...qaFlow,\n ...(customFlow || {})\n };\n }, [apiKey, qaEndpoint, ratingEndpoint, welcomeMessage, internalIsLoggedIn, allowAnonAccess, loginUrl, customFlow, actingUser, trackEvent]);\n\n // default react-chatbotify plugins\n const plugins = useMemo(() => {\n return [HtmlRenderer(), MarkdownRenderer(), InputValidator()];\n }, []);\n\n // Apply hooks\n useFocusableSendButton();\n useKeyboardNavigation();\n\n // Listen for chat window toggle events\n useEffect(() => {\n if (!isEmbeddedMode) {\n const handleChatWindowToggle = (event: any) => {\n const newOpenState = event.data.newState;\n onOpenChange?.(newOpenState);\n\n const currentSessionId = sessionIdRef.current;\n\n // Track open/close analytics events\n if (newOpenState) {\n // Chat opened\n trackEvent({ type: 'chatbot_open' });\n } else {\n // Chat closed - include session metrics\n trackEvent({\n type: 'chatbot_close',\n messageCount: currentSessionId ? getSessionMessageCount(currentSessionId) : 0,\n durationMs: currentSessionId ? computeSessionDurationMs(currentSessionId) : 0\n });\n }\n };\n window.addEventListener('rcb-toggle-chat-window', handleChatWindowToggle);\n\n return () => {\n window.removeEventListener('rcb-toggle-chat-window', handleChatWindowToggle);\n };\n }\n }, [isEmbeddedMode, onOpenChange, trackEvent]);\n\n return (\n <div\n className={`qa-bot ${settings.general?.embedded ? \"embedded-qa-bot\" : \"\"}`}\n ref={containerRef}\n role=\"region\"\n aria-label={botName || defaultValues.botName}\n >\n <SessionProvider getSessionId={() => sessionIdRef.current!} setSessionId={setSessionId} resetSession={resetSession} clearResettingFlag={clearResettingFlag}>\n <AnalyticsProvider trackEvent={trackEvent}>\n <ChatBotProvider>\n <div>\n <SessionMessageTracker />\n <BotController\n ref={ref}\n embedded={settings.general?.embedded || false}\n currentOpen={open || false}\n enabled={internalIsLoggedIn !== false}\n onSetEnabled={(enabled) => setInternalIsLoggedIn(enabled ? undefined : false)}\n />\n <ChatBot\n key={`chatbot-${instanceIdRef.current}-${internalIsLoggedIn}`}\n settings={settings}\n flow={flow}\n plugins={plugins}\n />\n\n {/* Accessibility regions */}\n <div\n role=\"status\"\n aria-live=\"polite\"\n aria-label=\"Bot response updates\"\n className=\"sr-only\"\n id=\"bot-live-region\"\n />\n <div id=\"chat-input-help\" className=\"sr-only\">\n Type your message and press Enter to send. Use arrow keys to navigate through response options.\n </div>\n </div>\n </ChatBotProvider>\n </AnalyticsProvider>\n </SessionProvider>\n </div>\n );\n});\n\nQABot.displayName = 'QABot';\n\nexport default QABot;\n\n","import { useMemo, RefObject } from 'react';\nimport type { ThemeColors } from '../config';\n\ninterface ThemeConfig {\n primaryColor?: string;\n secondaryColor?: string;\n fontFamily?: string;\n}\n\n/**\n * Custom hook to get theme colors from CSS variables\n */\nconst useThemeColors = (\n containerRef: RefObject<HTMLDivElement>,\n themeConfig: ThemeConfig = {}\n): ThemeColors => {\n const themeColors = useMemo(() => {\n // Get colors from CSS variables if available, fall back to defaults\n const getCSSVariable = (name: string, fallback?: string): string | undefined => {\n if (containerRef.current) {\n // First check the container itself\n const containerStyle = getComputedStyle(containerRef.current);\n const containerValue = containerStyle.getPropertyValue(name);\n if (containerValue && containerValue.trim() !== '') {\n return containerValue.trim();\n }\n\n // Then check parent\n if (containerRef.current.parentElement) {\n const parentStyle = getComputedStyle(containerRef.current.parentElement);\n const parentValue = parentStyle.getPropertyValue(name);\n if (parentValue && parentValue.trim() !== '') {\n return parentValue.trim();\n }\n }\n }\n return fallback;\n };\n\n return {\n primaryColor: getCSSVariable('--primaryColor', themeConfig.primaryColor),\n secondaryColor: getCSSVariable('--secondaryColor', themeConfig.secondaryColor),\n fontFamily: getCSSVariable('--fontFamily', themeConfig.fontFamily)\n };\n }, [containerRef, themeConfig]);\n\n return themeColors;\n};\n\nexport default useThemeColors;","import { useEffect } from 'react';\n\n/**\n * Custom hook to update the chatbot header based on login state\n * Adds/removes the 'bot-logged-in' CSS class to control visibility of login button vs user icon\n *\n * @param isLoggedIn - Whether the user is logged in\n * @param containerRef - Reference to the chatbot container element\n */\nconst useUpdateHeader = (\n isLoggedIn: boolean,\n containerRef: React.RefObject<HTMLDivElement>\n): void => {\n useEffect(() => {\n if (!containerRef.current) {\n return;\n }\n if (isLoggedIn) {\n containerRef.current.classList.add('bot-logged-in');\n } else {\n containerRef.current.classList.remove('bot-logged-in');\n }\n }, [isLoggedIn, containerRef]);\n};\n\nexport default useUpdateHeader;\n","import React, { useEffect } from 'react';\nimport type { Settings } from 'react-chatbotify';\nimport type { ThemeColors } from '../config';\n\ninterface UseChatBotSettingsProps {\n settings: Settings;\n themeColors: ThemeColors;\n}\n\n/**\n * Custom hook to apply theme colors and accessibility enhancements\n * Note: Footer is configured in QABot's useMemo to avoid flashing default footer\n */\nconst useChatBotSettings = ({ settings, themeColors }: UseChatBotSettingsProps): void => {\n // Apply theme colors as CSS variables\n useEffect(() => {\n if (themeColors) {\n Object.entries(themeColors).forEach(([key, value]) => {\n if (value) {\n document.documentElement.style.setProperty(`--${key}`, value);\n }\n });\n\n // Force react-chatbotify header to use our colors\n if (themeColors.primaryColor) {\n document.documentElement.style.setProperty('--rcb-header-background', themeColors.primaryColor);\n }\n if (themeColors.secondaryColor) {\n document.documentElement.style.setProperty('--rcb-header-background-hover', themeColors.secondaryColor);\n }\n }\n }, [themeColors]);\n\n // Apply our accessibility and feature enhancements to the settings object\n useEffect(() => {\n // Add accessibility wrapper for title\n if (settings.header?.title && typeof settings.header.title === 'string') {\n settings.header.title = (\n <div key=\"header-title\">\n <h1 className=\"sr-only\">{settings.header.title}</h1>\n <span aria-hidden=\"true\">{settings.header.title}</span>\n </div>\n );\n }\n\n // Note: embedded mode defaultOpen is now set in QABot useMemo to avoid\n // mutating shared settings objects\n\n // Apply our fixed overrides (not configurable)\n settings.device = {\n desktopEnabled: true,\n mobileEnabled: true,\n applyMobileOptimizations: false\n };\n\n settings.chatHistory = {\n disabled: true\n };\n\n settings.chatButton = {\n ...settings.chatButton,\n icon: settings.header?.avatar,\n };\n\n // Note: audio, emoji, fileAttachment, and notification settings\n // are now in fixedReactChatbotifySettings (config.ts) to ensure\n // they're applied before first render\n\n settings.event = {\n ...settings.event,\n rcbToggleChatWindow: true\n };\n }, [settings]);\n};\n\nexport default useChatBotSettings;","/**\n * Processes text to convert bare URLs into markdown hyperlinks while preserving existing links\n */\nexport const getProcessedText = (text: string): string => {\n if (!text || typeof text !== 'string') {\n return text;\n }\n\n // First pass: Handle URLs wrapped in square brackets like [https://example.com]\n // Convert them to proper markdown links [url](url)\n let processedText = text.replace(/\\[(https?:\\/\\/[^\\s]+?)\\]/gi, '[$1]($1)');\n\n // Second pass: Match bare URLs that are NOT already in markdown or HTML link format\n // This looks for URLs that are not preceded by ]( or href=\" or [\n // and not followed by )\n const urlRegex = /(?<!\\]\\(|href=[\"']|\\[)https?:\\/\\/[^\\s[\\]()]+/gi;\n\n // Replace bare URLs with markdown links\n processedText = processedText.replace(urlRegex, (url) => {\n // Clean up common punctuation that shouldn't be part of the URL\n let cleanUrl = url;\n let trailingPunctuation = '';\n\n // Check for trailing punctuation and remove it from the URL\n const trailingPunctuationMatch = cleanUrl.match(/([.,;:!?]+)$/);\n if (trailingPunctuationMatch) {\n trailingPunctuation = trailingPunctuationMatch[1];\n cleanUrl = cleanUrl.slice(0, -trailingPunctuation.length);\n }\n\n // Create markdown link with the URL as both the link text and href\n return `[${cleanUrl}](${cleanUrl})${trailingPunctuation}`;\n });\n\n return processedText;\n};","import { useEffect } from 'react';\n\n/**\n * Hook to make the send button focusable and keyboard accessible\n */\nconst useFocusableSendButton = (): void => {\n useEffect(() => {\n const makeSendButtonAccessible = () => {\n const chatWindow = document.querySelector('.rcb-chat-window');\n if (!chatWindow) return;\n \n const sendButton = chatWindow.querySelector('.rcb-send-button');\n if (!sendButton) return;\n \n // Make send button focusable\n if (!sendButton.hasAttribute('tabindex')) {\n sendButton.setAttribute('tabindex', '0');\n }\n \n // Add keyboard support if not already added\n if (!sendButton.hasAttribute('data-keyboard-enabled')) {\n sendButton.setAttribute('data-keyboard-enabled', 'true');\n \n sendButton.addEventListener('keydown', (event: KeyboardEvent) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n \n // Call the React onMouseDown handler directly\n const reactPropsKey = sendButton && Object.keys(sendButton as any).find(key => key.startsWith('__reactProps'));\n if (reactPropsKey) {\n const reactProps = (sendButton as any)[reactPropsKey];\n const onMouseDown = reactProps?.onMouseDown;\n if (onMouseDown && typeof onMouseDown === 'function') {\n onMouseDown(event);\n return;\n }\n }\n \n // Fallback to dispatching a mousedown event\n const mouseDownEvent = new MouseEvent('mousedown', {\n bubbles: true,\n cancelable: true,\n view: window\n });\n sendButton.dispatchEvent(mouseDownEvent);\n }\n });\n }\n };\n\n // Check periodically in case the send button is recreated\n const interval = setInterval(makeSendButtonAccessible, 1000);\n \n // Run immediately\n makeSendButtonAccessible();\n \n return () => clearInterval(interval);\n }, []);\n};\n\nexport default useFocusableSendButton;","import { useState } from 'react';\nimport { logger } from '../utils/logger';\n\ninterface ScreenshotCaptureResult {\n captureScreenshot: () => Promise<File>;\n isCapturing: boolean;\n isScreenCaptureAvailable: boolean;\n}\n\n/**\n * Custom hook for capturing screenshots using the Screen Capture API\n * @returns Object containing capture function, capturing state, and availability check\n */\nconst useScreenshotCapture = (): ScreenshotCaptureResult => {\n const [isCapturing, setIsCapturing] = useState(false);\n\n // Check if screen capture is available\n const checkScreenCaptureAvailable = (): boolean => {\n return (\n typeof navigator !== 'undefined' &&\n navigator.mediaDevices !== undefined &&\n typeof navigator.mediaDevices.getDisplayMedia === 'function'\n );\n };\n\n const captureScreenshot = async (): Promise<File> => {\n if (!checkScreenCaptureAvailable()) {\n throw new Error('Screen capture is not available in this environment');\n }\n\n try {\n setIsCapturing(true);\n\n // Request screen capture with specific options for better UX\n const stream = await navigator.mediaDevices.getDisplayMedia({\n video: {\n displaySurface: 'browser', // Prefer capturing browser tabs\n cursor: 'always',\n width: { ideal: 1920 },\n height: { ideal: 1080 }\n },\n audio: false\n } as MediaStreamConstraints);\n\n // Create video element to capture the frame\n const video = document.createElement('video');\n video.srcObject = stream;\n\n // Wait for video metadata to load\n await new Promise<void>(resolve => {\n video.onloadedmetadata = () => {\n video.play();\n resolve();\n };\n });\n\n // Create canvas with video dimensions\n const canvas = document.createElement('canvas');\n canvas.width = video.videoWidth;\n canvas.height = video.videoHeight;\n\n // Draw video frame to canvas\n const ctx = canvas.getContext('2d');\n if (!ctx) {\n throw new Error('Could not get canvas context');\n }\n ctx.drawImage(video, 0, 0, canvas.width, canvas.height);\n\n // Convert canvas to blob\n const blob = await new Promise<Blob | null>(resolve =>\n canvas.toBlob(resolve, 'image/png')\n );\n\n if (!blob) {\n throw new Error('Could not create image blob');\n }\n\n // Create file from blob\n const timestamp = new Date().toISOString().replace(/[:.]/g, '-');\n const file = new File([blob], `screenshot-${timestamp}.png`, { type: 'image/png' });\n\n // Stop all tracks\n stream.getTracks().forEach(track => track.stop());\n\n setIsCapturing(false);\n return file;\n } catch (error) {\n logger.error('Error capturing screenshot:', error);\n setIsCapturing(false);\n throw error;\n }\n };\n\n return {\n captureScreenshot,\n isCapturing,\n isScreenCaptureAvailable: checkScreenCaptureAvailable()\n };\n};\n\nexport default useScreenshotCapture;\nexport { useScreenshotCapture };\nexport type { ScreenshotCaptureResult };\n","import React from 'react';\nimport BaseIcon from './BaseIcon';\n\nconst UploadIcon = (props) => {\n return (\n <BaseIcon {...props}>\n <path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\" />\n <polyline points=\"17 8 12 3 7 8\" />\n <line x1=\"12\" y1=\"3\" x2=\"12\" y2=\"15\" />\n </BaseIcon>\n );\n};\n\nexport default UploadIcon;","/**\n * Processed file data ready for API submission\n */\nexport interface ProcessedFile {\n fileName: string;\n contentType: string;\n size: number;\n fileData: string; // base64 encoded\n}\n\n/**\n * Converts a File object to base64 encoded data\n * @param file - The File object to convert\n * @returns Promise resolving to processed file data\n */\nexport const fileToBase64 = (file: File): Promise<ProcessedFile> => {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n\n reader.onload = () => {\n if (typeof reader.result !== 'string') {\n reject(new Error(`Failed to read file ${file.name}`));\n return;\n }\n // Get the base64 string by removing the data URL prefix\n const base64String = reader.result.split(',')[1];\n resolve({\n fileName: file.name,\n contentType: file.type,\n size: file.size,\n fileData: base64String\n });\n };\n\n reader.onerror = () => reject(new Error(`Failed to read file ${file.name}`));\n reader.readAsDataURL(file);\n });\n};\n\n/**\n * Converts multiple files to base64 encoded data\n * @param files - Array of File objects to convert\n * @returns Promise resolving to array of processed file data\n */\nexport const filesToBase64 = (files: File[]): Promise<ProcessedFile[]> => {\n return Promise.all(files.map(fileToBase64));\n};\n\n/**\n * Validates file size against a maximum\n * @param file - The File object to validate\n * @param maxMB - Maximum file size in megabytes (default: 10)\n * @returns true if file is within size limit\n */\nexport const validateFileSize = (file: File, maxMB: number = 10): boolean => {\n const maxBytes = maxMB * 1024 * 1024;\n return file.size <= maxBytes;\n};\n\n/**\n * Formats file size for display\n * @param bytes - File size in bytes\n * @returns Human-readable file size string\n */\nexport const formatFileSize = (bytes: number): string => {\n if (bytes < 1024) {\n return `${bytes} B`;\n } else if (bytes < 1024 * 1024) {\n return `${(bytes / 1024).toFixed(1)} KB`;\n } else {\n return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;\n }\n};\n","import React, { useState, useRef } from 'react';\nimport useScreenshotCapture from '../hooks/useScreenshotCapture';\nimport UploadIcon from './icons/UploadIcon';\nimport { formatFileSize } from '../utils/file-utils';\nimport { logger } from '../utils/logger';\n\nexport interface FileUploadComponentProps {\n /** Callback when files are selected/uploaded */\n onFileUpload: (files: File[]) => void;\n /** Maximum file size in MB (default: 10) */\n maxSizeMB?: number;\n /** Accepted file types (default: images, PDFs, text, docs) */\n acceptedTypes?: string;\n /** Enable screenshot capture button (default: false, opt-in) */\n enableScreenshot?: boolean;\n /** Additional CSS class name */\n className?: string;\n}\n\n/**\n * File upload component with drag-and-drop, file preview, and optional screenshot capture\n */\nconst FileUploadComponent: React.FC<FileUploadComponentProps> = ({\n onFileUpload,\n maxSizeMB = 10,\n acceptedTypes = 'image/*,application/pdf,text/*,.doc,.docx',\n enableScreenshot = false,\n className\n}) => {\n const [dragActive, setDragActive] = useState(false);\n const [selectedFiles, setSelectedFiles] = useState<File[]>([]);\n const [previewFile, setPreviewFile] = useState<File | null>(null);\n const fileInputRef = useRef<HTMLInputElement>(null);\n const { captureScreenshot, isCapturing, isScreenCaptureAvailable } = useScreenshotCapture();\n\n // Helper function to announce messages to screen readers\n const announceToScreenReader = (message: string): void => {\n const announcement = document.createElement('div');\n announcement.setAttribute('aria-live', 'assertive');\n announcement.setAttribute('aria-atomic', 'true');\n announcement.className = 'sr-only';\n announcement.textContent = message;\n document.body.appendChild(announcement);\n setTimeout(() => document.body.removeChild(announcement), 1000);\n };\n\n const handleFiles = (files: FileList | File[]): void => {\n // Defensive check: ensure files is valid and iterable\n if (!files || (files as FileList).length === 0) {\n logger.warn('FileUploadComponent: No valid files provided to handleFiles');\n return;\n }\n\n let newFileArray: File[];\n try {\n newFileArray = Array.from(files);\n } catch (error) {\n logger.error('FileUploadComponent: Error converting files to array:', error);\n announceToScreenReader('Error processing selected files. Please try again.');\n return;\n }\n\n const updatedFiles = [...selectedFiles, ...newFileArray];\n setSelectedFiles(updatedFiles);\n\n // Announce file selection to screen readers\n const fileCount = newFileArray.length;\n const fileNames = newFileArray.map(f => f.name).join(', ');\n announceToScreenReader(`${fileCount} file${fileCount > 1 ? 's' : ''} selected: ${fileNames}`);\n\n // Programmatically scroll chat to bottom after file selection to keep Continue button in view\n setTimeout(() => {\n const chatContent = document.querySelector('.rcb-chat-content');\n if (chatContent) {\n chatContent.scrollTop = chatContent.scrollHeight;\n }\n }, 100);\n\n if (onFileUpload) {\n onFileUpload(updatedFiles);\n }\n };\n\n const handleDrag = (e: React.DragEvent<HTMLDivElement>): void => {\n e.preventDefault();\n e.stopPropagation();\n\n if (e.type === 'dragenter' || e.type === 'dragover') {\n setDragActive(true);\n } else if (e.type === 'dragleave') {\n setDragActive(false);\n }\n };\n\n const handleDrop = (e: React.DragEvent<HTMLDivElement>): void => {\n e.preventDefault();\n e.stopPropagation();\n setDragActive(false);\n\n try {\n if (e.dataTransfer?.files && e.dataTransfer.files.length > 0) {\n handleFiles(e.dataTransfer.files);\n }\n } catch (error) {\n logger.error('FileUploadComponent: Error in handleDrop:', error);\n announceToScreenReader('Error processing dropped files. Please try again.');\n }\n };\n\n const handleFileSelect = (e: React.ChangeEvent<HTMLInputElement>): void => {\n try {\n if (e.target?.files && e.target.files.length > 0) {\n handleFiles(e.target.files);\n }\n } catch (error) {\n logger.error('FileUploadComponent: Error in handleFileSelect:', error);\n announceToScreenReader('Error processing selected files. Please try again.');\n }\n };\n\n const handleButtonClick = (): void => {\n try {\n if (fileInputRef.current) {\n fileInputRef.current.click();\n }\n } catch (error) {\n logger.error('FileUploadComponent: Error in handleButtonClick:', error);\n announceToScreenReader('Error opening file selection dialog. Please try again.');\n }\n };\n\n const handleRemoveFile = (indexToRemove: number): void => {\n const newFiles = selectedFiles.filter((_, idx) => idx !== indexToRemove);\n setSelectedFiles(newFiles);\n if (onFileUpload) {\n onFileUpload(newFiles);\n }\n };\n\n const handleScreenshotCapture = async (): Promise<void> => {\n try {\n const file = await captureScreenshot();\n handleFiles([file]);\n announceToScreenReader('Screenshot captured successfully');\n } catch {\n announceToScreenReader('Error capturing screenshot. Please try again.');\n }\n };\n\n const handleFilePreview = (file: File): void => {\n setPreviewFile(file);\n };\n\n const closePreview = (): void => {\n setPreviewFile(null);\n };\n\n const renderFilePreview = (): React.ReactNode => {\n if (!previewFile) return null;\n\n const isImage = previewFile.type.startsWith('image/');\n const isText = previewFile.type.startsWith('text/');\n const isPDF = previewFile.type === 'application/pdf';\n\n return (\n <div\n style={{\n position: 'fixed',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: 'rgba(0, 0, 0, 0.7)',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n zIndex: 1000,\n }}\n onClick={closePreview}\n >\n <div\n style={{\n backgroundColor: 'white',\n padding: '20px',\n borderRadius: '8px',\n maxWidth: '90%',\n maxHeight: '90%',\n overflow: 'auto',\n position: 'relative',\n }}\n onClick={e => e.stopPropagation()}\n >\n <button\n onClick={closePreview}\n style={{\n position: 'absolute',\n top: '10px',\n right: '10px',\n background: 'none',\n border: 'none',\n fontSize: '24px',\n cursor: 'pointer',\n color: '#666',\n }}\n >\n ×\n </button>\n\n <h3 style={{ marginTop: 0, marginBottom: '16px' }}>{previewFile.name}</h3>\n\n {isImage && (\n <img\n src={URL.createObjectURL(previewFile)}\n alt={previewFile.name}\n style={{ maxWidth: '100%', maxHeight: '70vh' }}\n />\n )}\n\n {isText && (\n <pre style={{\n whiteSpace: 'pre-wrap',\n wordWrap: 'break-word',\n maxHeight: '70vh',\n overflow: 'auto',\n padding: '16px',\n backgroundColor: '#f5f5f5',\n borderRadius: '4px',\n }}>\n {URL.createObjectURL(previewFile)}\n </pre>\n )}\n\n {isPDF && (\n <iframe\n src={URL.createObjectURL(previewFile)}\n style={{ width: '100%', height: '70vh', border: 'none' }}\n title={previewFile.name}\n />\n )}\n\n {!isImage && !isText && !isPDF && (\n <div style={{ padding: '20px', textAlign: 'center' }}>\n Preview not available for this file type\n </div>\n )}\n </div>\n </div>\n );\n };\n\n const showScreenshotButton = enableScreenshot && isScreenCaptureAvailable;\n\n return (\n <div className={`file-upload-container ${className || ''}`} style={{ padding: '16px', margin: '8px 0' }}>\n {showScreenshotButton && (\n <div style={{ display: 'flex', justifyContent: 'center', marginBottom: '10px' }}>\n <button\n onClick={(e) => {\n e.preventDefault();\n handleScreenshotCapture();\n }}\n disabled={isCapturing}\n aria-describedby=\"screenshot-help\"\n aria-label={isCapturing ? 'Taking screenshot, please wait' : 'Take a screenshot to attach'}\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: '8px',\n backgroundColor: '#107180',\n color: 'white',\n border: 'none',\n borderRadius: '5px',\n padding: '8px 12px',\n cursor: isCapturing ? 'not-allowed' : 'pointer',\n fontSize: '14px',\n fontWeight: '500',\n boxShadow: '0 1px 3px rgba(0,0,0,0.2)',\n }}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z\"></path>\n <circle cx=\"12\" cy=\"13\" r=\"4\"></circle>\n </svg>\n {isCapturing ? 'Taking screenshot...' : 'Take screenshot...'}\n </button>\n <span id=\"screenshot-help\" className=\"sr-only\">\n Captures the current screen and adds it as an attachment\n </span>\n </div>\n )}\n\n <div\n className={`file-upload-dropzone ${dragActive ? 'active' : ''}`}\n onDragEnter={handleDrag}\n onDragLeave={handleDrag}\n onDragOver={handleDrag}\n onDrop={handleDrop}\n role=\"button\"\n tabIndex={0}\n aria-label=\"File upload area. Click to select files or drag and drop files here.\"\n aria-describedby=\"upload-instructions\"\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n handleButtonClick();\n }\n }}\n style={{\n padding: '20px',\n border: '2px dashed #ccc',\n borderRadius: '8px',\n backgroundColor: dragActive ? '#f0f8ff' : '#fafafa',\n transition: 'all 0.3s ease'\n }}\n >\n <input\n ref={fileInputRef}\n type=\"file\"\n className=\"file-input\"\n onChange={handleFileSelect}\n multiple\n style={{ display: 'none' }}\n aria-label=\"Select files to upload\"\n accept={acceptedTypes}\n />\n <div\n className=\"upload-content\"\n onClick={handleButtonClick}\n style={{\n cursor: 'pointer',\n flexDirection: 'column',\n alignItems: 'center',\n display: 'flex',\n textAlign: 'center',\n padding: '12px'\n }}\n >\n <div style={{ display: 'flex', flexDirection: 'column', alignItems: 'center', gap: '8px' }}>\n <div style={{ display: 'flex', flexDirection: 'row', alignItems: 'center', gap: '10px' }}>\n <UploadIcon />\n <p style={{ margin: 0, fontWeight: 'bold' }}>Upload Files</p>\n </div>\n <p id=\"upload-instructions\" style={{ margin: 0, fontSize: '14px', color: '#666' }}>\n Drag and drop files here or click to select. (Max {maxSizeMB}MB each)\n </p>\n </div>\n {selectedFiles.length > 0 && (\n <div\n className=\"selected-files\"\n style={{\n display: 'flex',\n flexWrap: 'wrap',\n gap: '8px',\n marginTop: '12px',\n alignItems: 'center'\n }}\n >\n <span style={{\n fontWeight: 400,\n color: '#888',\n fontSize: '13px',\n marginRight: '8px',\n alignSelf: 'center'\n }}>\n Selected files:\n </span>\n {selectedFiles.map((file, index) => (\n <span\n key={index}\n style={{\n background: '#fff',\n color: '#107180',\n borderRadius: '5px',\n padding: '4px 12px',\n fontSize: '14px',\n marginRight: '4px',\n marginBottom: '4px',\n border: '1px solid #ccc',\n display: 'flex',\n alignItems: 'center',\n gap: '6px',\n cursor: 'pointer',\n }}\n onClick={(e) => {\n e.stopPropagation();\n handleFilePreview(file);\n }}\n >\n <span\n onClick={e => { e.stopPropagation(); handleRemoveFile(index); }}\n style={{\n cursor: 'pointer',\n color: '#888',\n fontWeight: 'bold',\n fontSize: '15px',\n marginRight: '4px',\n userSelect: 'none',\n lineHeight: 1,\n }}\n title=\"Remove file\"\n aria-label={`Remove ${file.name}`}\n >\n &times;\n </span>\n {file.name} ({formatFileSize(file.size)})\n </span>\n ))}\n </div>\n )}\n </div>\n </div>\n {renderFilePreview()}\n </div>\n );\n};\n\nexport default FileUploadComponent;\nexport { FileUploadComponent };\n","/**\n * Flow Settings Utilities\n *\n * Provides utilities for processing flow configurations to handle\n * common patterns and work around react-chatbotify quirks.\n */\n\nimport type { Flow } from 'react-chatbotify';\n\nexport interface FlowSettingsOptions {\n /**\n * Automatically set chatDisabled based on step type:\n * - Steps with options/checkboxes → chatDisabled: true\n * - Steps without → chatDisabled: false\n *\n * Only applies to steps that don't already have chatDisabled explicitly set.\n *\n * This works around a react-chatbotify quirk where chatDisabled state\n * persists across step transitions instead of falling back to settings.\n */\n disableOnOptions?: boolean;\n}\n\n/**\n * Apply settings/transformations to a flow object.\n *\n * @param flow - The flow configuration to process\n * @param options - Settings to apply\n * @returns A new flow object with settings applied\n *\n * @example\n * ```typescript\n * const processedFlow = applyFlowSettings(myFlow, {\n * disableOnOptions: true\n * });\n * ```\n */\nexport function applyFlowSettings(\n flow: Flow,\n options: FlowSettingsOptions\n): Flow {\n if (!options || Object.keys(options).length === 0) {\n return flow;\n }\n\n const processed: Flow = {};\n\n for (const [stepName, step] of Object.entries(flow)) {\n let processedStep = { ...step };\n\n // Apply disableOnOptions if enabled\n if (options.disableOnOptions && processedStep.chatDisabled === undefined) {\n const hasOptions = !!(processedStep.options || processedStep.checkboxes);\n processedStep.chatDisabled = hasOptions;\n }\n\n processed[stepName] = processedStep;\n }\n\n return processed;\n}\n\n\n\n\n\n\n\n\n","/**\n * Helper functions to ensure messages are tracked in session history.\n *\n * Why this is needed:\n * react-chatbotify's `message:` property doesn't always fire the\n * injection events that SessionMessageTracker listens to. By using\n * these helpers, messages go through `params.injectMessage()` which\n * DOES fire the events, ensuring they are tracked in session history.\n *\n * Use these for important messages you want restored when loading\n * a previous session (e.g., ticket summaries, API responses with links).\n */\nimport type { Params } from 'react-chatbotify';\n\n/**\n * Wrap a static string message to ensure it's tracked in history.\n *\n * @example\n * import { withHistory } from '@snf/qa-bot-core';\n *\n * const myFlow = {\n * step_name: {\n * message: withHistory(\"This message will be saved to history\"),\n * options: [\"Option 1\", \"Option 2\"]\n * }\n * };\n */\nexport function withHistory(message: string): (params: Params) => Promise<void> {\n return async (params: Params) => {\n await params.injectMessage(message);\n // Return void - message is already injected, so RCB won't double-render\n };\n}\n\n/**\n * Wrap a dynamic message function to ensure its result is tracked in history.\n * Use this for messages that are computed at runtime (e.g., summaries, API responses).\n *\n * @example\n * import { withHistoryFn } from '@snf/qa-bot-core';\n *\n * const myFlow = {\n * success_step: {\n * message: withHistoryFn(() => generateSuccessMessage(result)),\n * options: [\"Back to Menu\"]\n * },\n * summary_step: {\n * message: withHistoryFn((params) => {\n * const data = getFormData();\n * return `Summary:\\nName: ${data.name}\\nEmail: ${data.email}`;\n * }),\n * options: [\"Submit\", \"Cancel\"]\n * }\n * };\n */\nexport function withHistoryFn(\n messageFn: (params: Params) => string | Promise<string>\n): (params: Params) => Promise<void> {\n return async (params: Params) => {\n const message = await messageFn(params);\n await params.injectMessage(message);\n // Return void - message is already injected, so RCB won't double-render\n };\n}\n","import React from 'react';\nimport ReactDOM from 'react-dom/client';\nimport QABot from './components/QABot';\nimport type { BotControllerHandle, QABotAnalyticsEvent } from './config';\nimport { logger } from './utils/logger';\nimport './styles/index.css'; // QA Bot styles\n\n// Export the main component\nexport { QABot };\n\n// Export file upload components and utilities\nexport { FileUploadComponent } from './components/FileUploadComponent';\nexport type { FileUploadComponentProps } from './components/FileUploadComponent';\nexport { useScreenshotCapture } from './hooks/useScreenshotCapture';\nexport type { ScreenshotCaptureResult } from './hooks/useScreenshotCapture';\nexport {\n fileToBase64,\n filesToBase64,\n validateFileSize,\n formatFileSize\n} from './utils/file-utils';\nexport type { ProcessedFile } from './utils/file-utils';\n\n// Export flow utilities\nexport { applyFlowSettings } from './utils/flow-settings';\nexport type { FlowSettingsOptions } from './utils/flow-settings';\n\n// Export history tracking helpers for custom flows\nexport { withHistory, withHistoryFn } from './utils/with-history';\n\n// Export types for usage\nexport type {\n QABotProps,\n BotControllerHandle,\n QABotAnalyticsEvent,\n QABotAnalyticsEventType\n} from './config';\n\n/**\n * ===========================================\n * PROGRAMMATIC API TYPES\n * ===========================================\n */\n\ninterface QABotConfig {\n target: HTMLElement;\n apiKey: string;\n qaEndpoint: string;\n ratingEndpoint?: string;\n defaultOpen?: boolean;\n embedded?: boolean;\n isLoggedIn: boolean;\n allowAnonAccess?: boolean;\n welcomeMessage: string;\n primaryColor?: string;\n secondaryColor?: string;\n botName?: string;\n logo?: string;\n placeholder?: string;\n errorMessage?: string;\n footerText?: string;\n footerLink?: string;\n tooltipText?: string;\n onAnalyticsEvent?: (event: QABotAnalyticsEvent) => void;\n}\n\ninterface QABotInstance {\n addMessage: (message: string) => void;\n setBotEnabled: (status: boolean) => void;\n openChat: () => void;\n closeChat: () => void;\n toggleChat: () => void;\n destroy: () => void;\n}\n\ninterface ProgrammaticQABotProps {\n apiKey: string;\n qaEndpoint: string;\n ratingEndpoint?: string;\n defaultOpen?: boolean;\n embedded?: boolean;\n isLoggedIn: boolean;\n allowAnonAccess?: boolean;\n welcomeMessage: string;\n primaryColor?: string;\n secondaryColor?: string;\n botName?: string;\n logo?: string;\n placeholder?: string;\n errorMessage?: string;\n footerText?: string;\n footerLink?: string;\n tooltipText?: string;\n onAnalyticsEvent?: (event: QABotAnalyticsEvent) => void;\n}\n\n/**\n * ===========================================\n * PROGRAMMATIC API IMPLEMENTATION\n * ===========================================\n */\n\n// React wrapper component for programmatic API\nconst ProgrammaticQABot = React.forwardRef<BotControllerHandle, ProgrammaticQABotProps>(\n (props, ref) => {\n const [isOpen, setIsOpen] = React.useState(props.defaultOpen || false);\n const qaRef = React.useRef<BotControllerHandle>(null);\n\n // Expose controller methods via ref\n React.useImperativeHandle(ref, () => ({\n addMessage: (message: string) => {\n qaRef.current?.addMessage(message);\n },\n setBotEnabled: (status: boolean) => {\n qaRef.current?.setBotEnabled(status);\n },\n openChat: () => {\n setIsOpen(true);\n qaRef.current?.openChat();\n },\n closeChat: () => {\n setIsOpen(false);\n qaRef.current?.closeChat();\n },\n toggleChat: () => {\n setIsOpen(prev => !prev);\n qaRef.current?.toggleChat();\n }\n }), []);\n\n return (\n <QABot\n ref={qaRef}\n apiKey={props.apiKey}\n qaEndpoint={props.qaEndpoint}\n ratingEndpoint={props.ratingEndpoint}\n welcomeMessage={props.welcomeMessage}\n primaryColor={props.primaryColor}\n secondaryColor={props.secondaryColor}\n botName={props.botName}\n logo={props.logo}\n placeholder={props.placeholder}\n errorMessage={props.errorMessage}\n embedded={props.embedded}\n isLoggedIn={props.isLoggedIn}\n allowAnonAccess={props.allowAnonAccess}\n open={isOpen}\n onOpenChange={setIsOpen}\n footerText={props.footerText}\n footerLink={props.footerLink}\n tooltipText={props.tooltipText}\n onAnalyticsEvent={props.onAnalyticsEvent}\n />\n );\n }\n);\n\nProgrammaticQABot.displayName = 'ProgrammaticQABot';\n\n/**\n * JavaScript API function - creates a QA Bot instance programmatically\n *\n * @param config Configuration object for the bot\n * @returns QABot instance with control methods\n */\nexport function qaBot(config: QABotConfig): QABotInstance | undefined {\n if (!config.target || !(config.target instanceof HTMLElement)) {\n logger.error('QA Bot: A valid target DOM element is required');\n return undefined;\n }\n\n const root = ReactDOM.createRoot(config.target);\n const wrapperRef = { current: null as BotControllerHandle | null };\n\n root.render(\n <React.StrictMode>\n <ProgrammaticQABot\n ref={(ref) => { wrapperRef.current = ref; }}\n apiKey={config.apiKey}\n qaEndpoint={config.qaEndpoint}\n ratingEndpoint={config.ratingEndpoint}\n defaultOpen={config.defaultOpen}\n embedded={config.embedded}\n isLoggedIn={config.isLoggedIn}\n allowAnonAccess={config.allowAnonAccess}\n welcomeMessage={config.welcomeMessage}\n primaryColor={config.primaryColor}\n secondaryColor={config.secondaryColor}\n botName={config.botName}\n logo={config.logo}\n placeholder={config.placeholder}\n errorMessage={config.errorMessage}\n footerText={config.footerText}\n footerLink={config.footerLink}\n tooltipText={config.tooltipText}\n onAnalyticsEvent={config.onAnalyticsEvent}\n />\n </React.StrictMode>\n );\n\n return {\n addMessage: (message: string) => wrapperRef.current?.addMessage(message),\n setBotEnabled: (status: boolean) => wrapperRef.current?.setBotEnabled(status),\n openChat: () => wrapperRef.current?.openChat(),\n closeChat: () => wrapperRef.current?.closeChat(),\n toggleChat: () => wrapperRef.current?.toggleChat(),\n destroy: () => {\n wrapperRef.current = null;\n root.unmount();\n }\n };\n}\n\nexport default qaBot;\n\n"],"names":["styleInject","css","ref","insertAt","document","head","getElementsByTagName","style","createElement","type","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode","_","AUDIO_BUTTON","NOTIFICATION_BUTTON","CLOSE_CHAT_BUTTON","SEND_MESSAGE_BUTTON","VOICE_MESSAGE_BUTTON","FILE_ATTACHMENT_BUTTON","EMOJI_PICKER_BUTTON","Ae","ee","cA","A","e","J","viewBox","d","fill","fillRule","te","Le","Re","Ue","xmlns","strokeLinecap","strokeWidth","ze","Ye","We","oe","qe","Ze","re","general","primaryColor","secondaryColor","fontFamily","showHeader","showFooter","showInputRow","actionDisabledIcon","embedded","flowStartTrigger","tooltip","mode","text","chatButton","icon","header","title","l","cursor","margin","fontSize","fontWeight","onClick","window","open","children","showAvatar","avatar","buttons","closeChatIcon","notification","disabled","defaultToggledOn","volume","iconDisabled","sound","showCount","audio","language","voiceNames","rate","chatHistory","maxEntries","storageKey","storageType","viewChatHistoryButtonText","chatHistoryLineBreakText","autoLoad","chatInput","allowNewline","enabledPlaceholderText","disabledPlaceholderText","showCharacterCount","characterLimit","botDelay","sendButtonIcon","blockSpam","sendOptionOutput","sendCheckboxOutput","chatWindow","showScrollbar","showTypingIndicator","autoJumpToBottom","showMessagePrompt","messagePromptText","messagePromptOffset","defaultOpen","sensitiveInput","maskInTextArea","maskInUserBubble","asterisksCount","hideInUserBubble","userBubble","animate","simulateStream","streamSpeed","botBubble","voice","timeoutPeriod","autoSendDisabled","autoSendPeriod","sendAsAudio","footer","W","display","flexDirection","alignItems","columnGap","borderRadius","width","height","justifyContent","background","fileAttachment","multiple","accept","sendFileName","showMediaDisplay","emoji","list","toast","maxCount","forbidOnMax","dismissOnClick","event","rcbPreInjectMessage","rcbPostInjectMessage","rcbStartSimulateStreamMessage","rcbStopSimulateStreamMessage","rcbStartStreamMessage","rcbChunkStreamMessage","rcbStopStreamMessage","rcbRemoveMessage","rcbSaveChatHistory","rcbLoadChatHistory","rcbToggleChatWindow","rcbStartSpeakAudio","rcbToggleAudio","rcbToggleNotifications","rcbToggleVoice","rcbChangePath","rcbShowToast","rcbDismissToast","rcbUserSubmitText","rcbUserUploadFile","rcbTextAreaChangeValue","rcbPreLoadChatBot","rcbPostLoadChatBot","rcbPreProcessBlock","rcbPostProcessBlock","ariaLabel","audioButton","closeChatButton","emojiButton","fileAttachmentButton","notificationButton","sendButton","voiceButton","inputTextArea","device","desktopEnabled","mobileEnabled","applyMobileOptimizations","ae","vA","settings","setSyncedSettings","syncedSettingsRef","current","R","hA","$e","o","t","Provider","value","ce","tooltipStyle","notificationBadgeStyle","chatWindowStyle","headerStyle","bodyStyle","chatInputContainerStyle","chatInputAreaStyle","chatInputAreaFocusedStyle","chatInputAreaDisabledStyle","userBubbleStyle","botBubbleStyle","botOptionStyle","botOptionHoveredStyle","botCheckboxRowStyle","botCheckboxNextStyle","botCheckMarkStyle","botCheckMarkSelectedStyle","characterLimitStyle","characterLimitReachedStyle","chatHistoryLineBreakStyle","chatMessagePromptStyle","chatMessagePromptHoveredStyle","footerStyle","loadingSpinnerStyle","mediaDisplayContainerStyle","chatButtonStyle","chatButtonHoveredStyle","chatHistoryButtonStyle","chatHistoryButtonHoveredStyle","sendButtonStyle","sendButtonHoveredStyle","sendButtonDisabledStyle","audioButtonStyle","audioButtonDisabledStyle","closeChatButtonStyle","emojiButtonStyle","emojiButtonDisabledStyle","fileAttachmentButtonStyle","fileAttachmentButtonDisabledStyle","notificationButtonStyle","notificationButtonDisabledStyle","voiceButtonStyle","voiceButtonDisabledStyle","chatIconStyle","audioIconStyle","audioIconDisabledStyle","closeChatIconStyle","emojiIconStyle","emojiIconDisabledStyle","fileAttachmentIconStyle","fileAttachmentIconDisabledStyle","notificationIconStyle","notificationIconDisabledStyle","voiceIconStyle","voiceIconDisabledStyle","sendIconStyle","sendIconDisabledStyle","sendIconHoveredStyle","rcbTypingIndicatorContainerStyle","rcbTypingIndicatorDotStyle","toastPromptContainerStyle","toastPromptStyle","toastPromptHoveredStyle","ie","styles","setSyncedStyles","syncedStylesRef","X","At","et","n","s","a","r","c","i","u","backgroundImage","className","GA","map","w","YA","le","$","tt","botIdRef","flowRef","eA","Map","inputRef","timeoutIdRef","streamMessageMap","chatBodyRef","paramsInputRef","keepVoiceOnRef","audioContextRef","audioBufferRef","gainNodeRef","prevInputRef","nA","G","ue","tA","ot","rA","lA","PA","DA","QA","_A","f","g","B","E","Q","y","v","h","P","D","S","I","L","N","T","C","m","b","M","O","p","k","K","j","F","V","U","z","Y","visualViewport","innerHeight","AA","q","innerWidth","isBotTyping","setSyncedIsBotTyping","syncedIsBotTypingRef","isChatWindowOpen","setSyncedIsChatWindowOpen","syncedIsChatWindowOpenRef","audioToggledOn","setSyncedAudioToggledOn","syncedAudioToggledOnRef","voiceToggledOn","setSyncedVoiceToggledOn","syncedVoiceToggledOnRef","notificationsToggledOn","setSyncedNotificationsToggledOn","syncedNotificationsToggledOnRef","isLoadingChatHistory","setIsLoadingChatHistory","hasChatHistoryLoaded","setHasChatHistoryLoaded","isScrolling","setSyncedIsScrolling","syncedIsScrollingRef","textAreaDisabled","setSyncedTextAreaDisabled","syncedTextAreaDisabledRef","textAreaSensitiveMode","setSyncedTextAreaSensitiveMode","syncedTextAreaSensitiveModeRef","hasInteractedPage","setHasInteractedPage","hasFlowStarted","setHasFlowStarted","unreadCount","setUnreadCount","inputLength","setInputLength","blockAllowsAttachment","setBlockAllowsAttachment","viewportHeight","setViewportHeight","viewportWidth","setViewportWidth","H","START_SPEAK_AUDIO","TOGGLE_AUDIO","TOGGLE_NOTIFICATIONS","TOGGLE_VOICE","TOGGLE_CHAT_WINDOW","PRE_INJECT_MESSAGE","POST_INJECT_MESSAGE","START_SIMULATE_STREAM_MESSAGE","STOP_SIMULATE_STREAM_MESSAGE","START_STREAM_MESSAGE","CHUNK_STREAM_MESSAGE","STOP_STREAM_MESSAGE","REMOVE_MESSAGE","SAVE_CHAT_HISTORY","LOAD_CHAT_HISTORY","CHANGE_PATH","SHOW_TOAST","DISMISS_TOAST","USER_SUBMIT_TEXT","USER_UPLOAD_FILE","TEXT_AREA_CHANGE_VALUE","PRE_LOAD_CHATBOT","POST_LOAD_CHATBOT","PRE_PROCESS_BLOCK","POST_PROCESS_BLOCK","nt","UA","async","CustomEvent","detail","cancelable","data","promises","dispatchEvent","Promise","all","fe","paths","setSyncedPaths","syncedPathsRef","pA","st","iA","x","length","at","dispatchRcbEvent","botId","currPath","prevPath","sA","getBoundingClientRect","documentElement","clientHeight","clientWidth","top","left","bottom","right","currState","newState","defaultPrevented","scrollHeight","scrollTop","requestAnimationFrame","toggleChatWindow","toggleIsBotTyping","scrollToBottom","getIsChatBotVisible","rt","color","borderColor","onMouseEnter","onMouseLeave","onMouseDown","preventDefault","de","messages","setSyncedMessages","syncedMessagesRef","XA","ct","message","isNewSender","content","contentWrapper","backgroundColor","maxWidth","oA","it","lt","ut","scrollbarWidth","Z","sender","toUpperCase","ft","checkboxes","checkedItems","path","handleSubmitText","mA","Set","size","min","reusable","items","has","delete","max","add","Array","from","join","sendOutput","dt","isArray","injectMessage","wt","function","gt","trim","simulateStreamMessage","Bt","options","vt","Pt","component","Dt","transition","duration","interruptable","setTimeout","ge","Et","chatDisabled","we","isSensitive","Error","Object","keys","includes","goToPath","ht","Ct","mt","borderTop","MA","crypto","randomUUID","getRandomValues","replace","Uint8Array","toString","console","error","gA","id","timestamp","Date","toUTCString","tags","wA","Be","kA","IA","ve","HA","bA","jA","he","setItem","JSON","stringify","zA","sessionStorage","localStorage","parse","bt","getItem","St","structuredClone","Te","renderToString","Pe","DOMParser","parseFromString","body","childNodes","nodeType","Node","TEXT_NODE","textContent","tagName","toLowerCase","attributes","reduce","name","split","filter","forEach","prototype","hasOwnProperty","call","classList","class","Tt","Mt","kt","Ht","xt","$A","key","innerHTML","contains","WA","AudioContext","createGain","gain","startsWith","atob","ArrayBuffer","charCodeAt","fetch","arrayBuffer","decodeAudioData","createBufferSource","buffer","connect","destination","start","toggleNotifications","playNotificationSound","setUpNotifications","Lt","SpeechSynthesisUtterance","info","lang","speechSynthesis","getVoices","find","speak","Ot","KA","textToRead","speakAudio","toggleAudio","EA","unshift","slice","Qt","simulateStreamChunker","setInterval","clearInterval","Math","set","get","push","removeMessage","streamMessage","endStreamMessage","replaceMessages","getMessages","NA","uA","TA","BA","aA","VA","SpeechRecognition","webkitSpeechRecognition","Rt","onresult","clearTimeout","results","transcript","RA","onend","Ft","navigator","mediaDevices","getUserMedia","then","MediaRecorder","ondataavailable","onstop","getTracks","stop","catch","qA","state","xA","Ut","toggleVoice","syncVoice","yA","currValue","prevValue","focus","blur","getTextAreaValue","setTextAreaValue","updateTextAreaFocus","focusTextArea","blurTextArea","toggleTextAreaDisabled","toggleTextAreaSensitiveMode","De","toasts","setSyncedToasts","syncedToastsRef","Ee","jt","CA","timeout","showToast","dismissToast","replaceToasts","SA","block","userInput","yt","file","clear","nextPath","getCurrPath","getPrevPath","replacePaths","firePostProcessBlockEvent","repeat","inputText","sendInChat","OA","dA","userAgent","test","zt","boxSizing","outline","boxShadow","caretColor","shiftKey","target","role","stopPropagation","placeholder","onChange","onKeyDown","onFocus","onBlur","onCompositionStart","onCompositionEnd","rows","Gt","Yt","transform","Xt","offsetWidth","Wt","Kt","minWidth","ye","fileType","fileUrl","src","alt","controls","Ce","FileReader","onload","result","onerror","readAsDataURL","Vt","files","qt","composedPath","offsetHeight","addEventListener","removeEventListener","setSelectionRange","Jt","Zt","stroke","$t","_t","Ao","Nt","Blob","File","eo","oo","values","to","uo","headerButtons","chatInputButtons","footerButtons","JA","removeItem","It","showChatHistory","fo","tabIndex","wo","handleFirstInteraction","me","passive","virtualKeyboard","overlaysContent","boundingRect","scrollTo","behavior","scrollY","position","go","Bo","Qe","ne","version","baseUrl","cacheDuration","ok","json","Po","inlineStyles","cssStylesText","getTime","floor","cacheDate","vo","se","ho","RegExp","yo","LA","fA","source","pop","WeakMap","be","replaceSettings","updateSettings","pe","replaceStyles","updateStyles","mo","plugins","slots","Co","zIndex","chatBotHeader","chatBotBody","chatBotInput","chatBotFooter","Se","Ie","Qo","loadConfig","bo","flow","themes","setConfigLoaded","styleRootRef","FA","po","show_options","prompt_again","unknown_input","process_options","Oo","Io","getBotId","So","Fo","restartFlow","getFlow","To","Uo","jo","Go","Xo","Vo","getHistoryMessages","setHistoryMessages","self","address","invalid","br","void","button","caption","parent","col","colgroup","details","dd","dl","figcaption","hr","img","li","main","ol","picture","rb","rp","rtc","ruby","summary","table","tbody","td","tfoot","th","thead","tr","track","ul","video","wbr","freeze","cite","colspan","datetime","default","dir","href","kind","label","loading","loop","media","muted","poster","rel","rowspan","scope","sizes","span","srclang","srcset","tabindex","assign","arguments","apply","this","selfClose","attribute","node","__esModule","exec","index","substring","defineProperty","enumerable","configurable","writable","String","match","implementation","createHTMLDocument","K$1","constructor","process","env","NODE_ENV","TypeError","props","matchers","filters","keyIndex","container","createContainer","allowed","allowList","banned","blocked","blockList","applyAttributeFilters","applyNodeFilters","applyMatchers","asTag","getTagConfig","inverseName","isTagAllowed","canRenderChild","valid","propName","matcher","greedy","replaceTokens","convertLineBreaks","noHtml","disableLineBreaks","global","INTERWEAVE_SSR_POLYFILL","containerTagName","escapeHtml","extractAttributes","allowAttributes","isSafe","extractStyleAttribute","Number","parseFloat","HTMLAnchorElement","getAttribute","protocol","allowElements","parseNode","nodeName","noHtmlExceptMatchers","transformOnlyAllowList","cloneElement","emptyContent","parsedContent","noWrap","Fragment","disableFilters","disableMatchers","onAfterParse","onBeforeParse","bind","whiteSpace","autoConfig","renderHtml","Ne","htmlComponent","Er","Ir","Ar","Hn","jsx","Tr","Un","property","normal","space","hn","boolean","booleanish","overloadedBoolean","number","commaSeparated","spaceSeparated","commaOrSpaceSeparated","mustUseProperty","defined","zr","mn","__proto__","Symbol","toStringTag","Sn","super","Vn","Lr","properties","xLinkActuate","xLinkArcRole","xLinkHref","xLinkRole","xLinkShow","xLinkTitle","xLinkType","xmlLang","xmlBase","xmlSpace","xmlnsxlink","xmlnsXLink","ariaActiveDescendant","ariaAtomic","ariaAutoComplete","ariaBusy","ariaChecked","ariaColCount","ariaColIndex","ariaColSpan","ariaControls","ariaCurrent","ariaDescribedBy","ariaDetails","ariaDisabled","ariaDropEffect","ariaErrorMessage","ariaExpanded","ariaFlowTo","ariaGrabbed","ariaHasPopup","ariaHidden","ariaInvalid","ariaKeyShortcuts","ariaLabelledBy","ariaLevel","ariaLive","ariaModal","ariaMultiLine","ariaMultiSelectable","ariaOrientation","ariaOwns","ariaPlaceholder","ariaPosInSet","ariaPressed","ariaReadOnly","ariaRelevant","ariaRequired","ariaRoleDescription","ariaRowCount","ariaRowIndex","ariaRowSpan","ariaSelected","ariaSetSize","ariaSort","ariaValueMax","ariaValueMin","ariaValueNow","ariaValueText","vr","acceptcharset","classname","htmlfor","httpequiv","abbr","acceptCharset","accessKey","action","allow","allowFullScreen","allowPaymentRequest","allowUserMedia","as","autoCapitalize","autoComplete","autoFocus","autoPlay","blocking","capture","charSet","checked","cols","colSpan","contentEditable","controlsList","coords","crossOrigin","dateTime","decoding","defer","dirName","download","draggable","encType","enterKeyHint","fetchPriority","form","formAction","formEncType","formMethod","formNoValidate","formTarget","headers","hidden","high","hrefLang","htmlFor","httpEquiv","imageSizes","imageSrcSet","inert","inputMode","integrity","is","isMap","itemId","itemProp","itemRef","itemScope","itemType","low","manifest","maxLength","method","minLength","nonce","noModule","noValidate","onAbort","onAfterPrint","onAuxClick","onBeforeMatch","onBeforePrint","onBeforeToggle","onBeforeUnload","onCancel","onCanPlay","onCanPlayThrough","onClose","onContextLost","onContextMenu","onContextRestored","onCopy","onCueChange","onCut","onDblClick","onDrag","onDragEnd","onDragEnter","onDragExit","onDragLeave","onDragOver","onDragStart","onDrop","onDurationChange","onEmptied","onEnded","onError","onFormData","onHashChange","onInput","onInvalid","onKeyPress","onKeyUp","onLanguageChange","onLoad","onLoadedData","onLoadedMetadata","onLoadEnd","onLoadStart","onMessage","onMessageError","onMouseMove","onMouseOut","onMouseOver","onMouseUp","onOffline","onOnline","onPageHide","onPageShow","onPaste","onPause","onPlay","onPlaying","onPopState","onProgress","onRateChange","onRejectionHandled","onReset","onResize","onScroll","onScrollEnd","onSecurityPolicyViolation","onSeeked","onSeeking","onSelect","onSlotChange","onStalled","onStorage","onSubmit","onSuspend","onTimeUpdate","onToggle","onUnhandledRejection","onUnload","onVolumeChange","onWaiting","onWheel","optimum","pattern","ping","playsInline","popover","popoverTarget","popoverTargetAction","preload","readOnly","referrerPolicy","required","reversed","rowSpan","sandbox","scoped","seamless","selected","shadowRootClonable","shadowRootDelegatesFocus","shadowRootMode","shape","slot","spellCheck","srcDoc","srcLang","srcSet","step","translate","typeMustMatch","useMap","wrap","writingSuggestions","align","aLink","archive","axis","bgColor","border","bottomMargin","cellPadding","cellSpacing","char","charOff","classId","code","codeBase","codeType","compact","declare","face","frame","frameBorder","hSpace","leftMargin","link","longDesc","lowSrc","marginHeight","marginWidth","noResize","noHref","noShade","object","profile","prompt","rev","rightMargin","rules","scheme","scrolling","standby","topMargin","valueType","vAlign","vLink","vSpace","allowTransparency","autoCorrect","autoSave","disablePictureInPicture","disableRemotePlayback","prefix","security","unselectable","Dr","accentHeight","alignmentBaseline","arabicForm","baselineShift","capHeight","clipPath","clipRule","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","dataType","dominantBaseline","enableBackground","fillOpacity","floodColor","floodOpacity","fontSizeAdjust","fontStretch","fontStyle","fontVariant","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","horizAdvX","horizOriginX","horizOriginY","imageRendering","letterSpacing","lightingColor","markerEnd","markerMid","markerStart","navDown","navDownLeft","navDownRight","navLeft","navNext","navPrev","navRight","navUp","navUpLeft","navUpRight","onActivate","onBegin","onEnd","onFocusIn","onFocusOut","onMouseWheel","onRepeat","onShow","onZoom","overlinePosition","overlineThickness","paintOrder","panose1","pointerEvents","renderingIntent","shapeRendering","stopColor","stopOpacity","strikethroughPosition","strikethroughThickness","strokeDashArray","strokeDashOffset","strokeLineCap","strokeLineJoin","strokeMiterLimit","strokeOpacity","textAnchor","textDecoration","textRendering","transformOrigin","typeOf","underlinePosition","underlineThickness","unicodeBidi","unicodeRange","unitsPerEm","vAlphabetic","vHanging","vIdeographic","vMathematical","vectorEffect","vertAdvY","vertOriginX","vertOriginY","wordSpacing","writingMode","xHeight","playbackOrder","timelineBegin","about","accumulate","additive","alphabetic","amplitude","ascent","attributeName","attributeType","azimuth","bandwidth","baseFrequency","baseProfile","bbox","begin","bias","by","calcMode","clip","clipPathUnits","contentScriptType","contentStyleType","cx","cy","defaultAction","descent","diffuseConstant","direction","dur","divisor","dx","dy","edgeMode","editable","elevation","end","exponent","externalResourcesRequired","filterRes","filterUnits","focusable","focusHighlight","format","fr","fx","fy","g1","g2","glyphRef","gradientTransform","gradientUnits","handler","hanging","hatchContentUnits","hatchUnits","ideographic","initialVisibility","in","in2","intercept","k1","k2","k3","k4","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","kerning","lengthAdjust","limitingConeAngle","local","markerHeight","markerUnits","markerWidth","mask","maskContentUnits","maskUnits","mathematical","mediaCharacterEncoding","mediaContentEncodings","mediaSize","mediaTime","numOctaves","observer","offset","opacity","operator","order","orient","orientation","origin","overflow","overlay","pathLength","patternContentUnits","patternTransform","patternUnits","phase","pitch","points","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","propagate","radius","refX","refY","repeatCount","repeatDur","requiredExtensions","requiredFeatures","requiredFonts","requiredFormats","resource","restart","rotate","rx","ry","scale","seed","side","slope","snapshotTime","specularConstant","specularExponent","spreadMethod","spacing","startOffset","stdDeviation","stemh","stemv","stitchTiles","string","surfaceScale","syncBehavior","syncBehaviorDefault","syncMaster","syncTolerance","syncToleranceDefault","systemLanguage","tableValues","targetX","targetY","textLength","transformBehavior","u1","u2","unicode","viewTarget","visibility","widths","x1","x2","xChannelSelector","y1","y2","yChannelSelector","zoomAndPan","Or","qn","Rr","Nr","Mr","charAt","_r","Br","Cn","en","$n","Wn","Vr","__importDefault","lastIndexOf","line","column","reason","filename","silent","comment","Hr","Ur","Yn","qr","En","Fe","Qn","dn","Xn","place","ancestors","cause","ruleId","indexOf","fatal","stack","actual","expected","note","url","In","Wr","Yr","Qr","Xr","Kr","Gr","filePath","development","jsxDEV","columnNumber","fileName","lineNumber","jsxs","ii","components","create","elementAttributeNameCase","evaluater","createEvaluater","ignoreInvalidStyle","passKeys","passNode","schema","stylePropertyNameCase","tableCellAlignToStyle","ui","oi","Tn","Pr","An","Jr","estree","evaluateExpression","expression","_e","Zr","argument","ai","ni","evaluateProgram","ei","ti","ri","Fr","isNaN","padRight","padLeft","Cr","jr","fi","si","pi","ci","computed","optional","hi","nn","mi","gi","Kn","Gn","Pn","splice","Jn","yi","xi","ki","parseInt","fromCodePoint","bi","gn","yn","wi","Si","Ci","Ei","fromCharCode","encodeURIComponent","POSITIVE_INFINITY","enter","consume","exit","Ii","tokenize","attempt","parser","constructs","contentInitial","contentType","previous","next","Ti","containerState","continuation","_closeFlow","events","currentConstruct","concrete","interrupt","_gfmTableDynamicInterruptHack","check","Zn","lazy","now","_tokenizer","sliceStream","defineSkip","write","disable","null","zn","resolveAll","xn","_close","_open","sliceSerialize","insideSpan","attentionMarkers","_bufferIndex","Di","Ke","partial","_container","tn","Ui","$i","resolve","Xi","RangeError","shift","setCursor","reverse","concat","trunc","Oe","pushMany","unshiftMany","_isInFirstContentOfListItem","Ki","_gfmTasklistFirstContentOfListItem","Gi","Ji","tl","rl","pl","fl","resolveTo","xe","hl","ml","kl","Ln","_inactive","_balanced","wl","Sl","Cl","Ll","Dl","rn","furtherBlankLines","initialBlankLine","Ml","marker","Nl","$l","flowInitial","Yl","Ql","Xl","Kl","_index","Gl","Jl","Zl","no","ro","ao","so","restore","transforms","canContainEols","autolink","Bn","autolinkProtocol","autolinkEmail","atxHeading","Nn","blockQuote","characterEscape","characterReference","codeFenced","He","codeFencedFenceInfo","codeFencedFenceMeta","codeIndented","codeText","ar","codeTextData","codeFlowValue","definition","ur","definitionDestinationString","definitionLabelString","definitionTitleString","emphasis","sr","hardBreakEscape","Mn","hardBreakTrailing","htmlFlow","_n","htmlFlowData","htmlText","htmlTextData","image","cr","listItem","pr","listItemValue","listOrdered","jn","listUnordered","paragraph","reference","referenceString","resourceDestinationString","resourceTitleString","setextHeading","strong","thematicBreak","dr","atxHeadingSequence","characterEscapeValue","characterReferenceMarkerHexadecimal","characterReferenceMarkerNumeric","characterReferenceValue","codeFencedFence","labelText","lineEnding","setextHeadingLineSequence","setextHeadingText","mdastExtensions","tokenStack","config","resume","ke","_spread","includeImageAlt","includeHtml","di","expectingFirstListItemValue","meta","flowCodeInside","identifier","depth","setextHeadingSlurpLineEnding","codePointAt","mr","atHardBreak","inReference","referenceType","characterReferenceType","ordered","spread","xo","extensions","co","TextDecoder","decode","lastIndex","ceil","ko","Wo","blockquote","patch","applyData","break","footnoteReference","clobberPrefix","footnoteOrder","footnoteCounts","dataFootnoteRef","heading","html","allowDangerousHtml","imageReference","definitionById","inlineCode","linkReference","root","tableCell","tableRow","toml","yaml","footnoteDefinition","pt","globalThis","flags","BigInt","DataView","Yo","lossy","valueOf","toJSON","toISOString","Ko","Xe","Jo","rr","ra","Je","ea","na","ta","ia","ir","la","aa","ua","lr","kn","sa","ca","handlers","one","fa","footnoteById","passThrough","unknownHandler","ha","pa","ma","$r","hName","hChildren","hProperties","footnoteBackContent","footnoteBackLabel","footnoteLabel","footnoteLabelTagName","footnoteLabelProperties","dataFootnoteBackref","dataFootnotes","Zo","da","run","ln","ya","getOwnPropertyDescriptor","newValue","ga","on","bn","getPrototypeOf","iterator","xa","ka","use","basename","je","dirname","extname","Ia","Ea","sep","Aa","cwd","wn","auth","Pa","URL","hostname","pathname","decodeURIComponent","za","an","or","history","stored","sn","un","stem","fail","va","setPrototypeOf","Da","Fn","Compiler","Parser","attachers","compiler","freezeIndex","frozen","namespace","transformers","copy","fn","cn","pn","Na","processSync","runSync","Oa","Ra","_a","Ba","ja","allowedElements","allowElement","disallowedElements","rehypePlugins","remarkPlugins","remarkRehypeOptions","skipHtml","unwrapDisallowed","urlTransform","Ha","hasOwn","Sr","wr","Ua","marginBottom","lineHeight","textAlign","paddingLeft","listStylePosition","inline","padding","overflowX","borderLeft","Va","Xa","yr","xr","kr","markdownComponent","gr","renderMarkdown","qa","Ve","$a","promptBaseColors","warning","success","promptHoveredColors","textAreaHighlightColors","promptContent","promptType","advancedStyles","highlightTextArea","promptDuration","log","BotController","forwardRef","_ref","currentOpen","enabled","onSetEnabled","useMessages","useChatWindow","lastOpenRef","useRef","fromEventRef","useEffect","markAsUserInteraction","useImperativeHandle","addMessage","openChat","closeChat","toggleChat","setBotEnabled","displayName","LoginButton","loginUrl","isHeaderButton","finalStyle","React","UserIcon","marginRight","strokeLinejoin","byteToHex","rnds8","native","v4","buf","rnds","random","rng","arr","unsafeStringify","isDebugEnabled","logger","_len","args","_key","_len2","_key2","warn","SESSION_MESSAGES_KEY","generateSessionId","uuidv4","getSessionMessagesStore","addMessageToSession","sessionId","messageId","messageContent","store","startedAt","preview","some","storedMessage","totalInSession","botAnswer","firstUserMessage","getTotalMessages","sum","session","oldestSessionId","entries","sort","_ref2","saveSessionMessagesStore","ourSessions","ourTotalMessages","getSessionMessageCount","_b","computeSessionDurationMs","SessionContext","createContext","undefined","SessionProvider","getSessionId","setSessionId","resetSession","clearResettingFlag","useSession","context","useContext","HistoryButton","isOpen","setIsOpen","useState","sessions","setSessions","menuWidth","setMenuWidth","menuRight","setMenuRight","menuRef","buttonRef","useTextArea","handleClickOutside","rootNode","getRootNode","handleSelectSession","currentSessionId","targetSession","currentSession","storedMessages","getSessionMessages","count","ids","rcbMessages","newSession","chatBody","querySelector","querySelectorAll","bubble","changed","handleClick","getAllSessions","_ref3","closest","chatRect","buttonRect","marginTop","borderBottom","maxHeight","overflowY","gap","currentTarget","textOverflow","dateString","date","diffMs","diffDays","toLocaleTimeString","hour","minute","toLocaleDateString","weekday","month","day","formatDate","BaseIcon","_extends","RefreshIcon","AnalyticsContext","AnalyticsProvider","trackEvent","trackEventRef","NewChatButton","useFlow","previousMessageCount","extractTextFromJsx","element","SessionMessageTracker","handlePreInjectMessage","useCallback","useKeyboardNavigation","handleKeyboardNavigation","activeElement","allMessages","el","offsetParent","checkboxContainer","nextButton","allElements","handleCheckboxNavigation","elements","currentIndex","newIndex","currentElement","mouseDownEvent","MouseEvent","bubbles","view","setAttribute","remove","lastMessage","optionsContainers","lastContainer","findIndex","option","nextIndex","opt","prevIndex","labelElement","selectedText","checkboxMark","isChecked","announceToScreenReader","innerText","announcement","removeChild","handleNewOptions","isEmbeddedBot","checkboxElements","hint","hintElement","setOptionsAccessibility","hasAttribute","checkbox","MutationObserver","mutations","mutation","addedNodes","hasNewOptions","_node$classList","_node$classList2","_node$querySelector","_node$querySelector2","ELEMENT_NODE","hasNewCheckboxes","_node$classList3","_node$querySelector3","botContainer","_botContainer$classLi","_botContainer$classLi2","parentElement","scopeElement","observe","childList","subtree","periodicCheck","hasVisibleOptions","hasVisibleCheckboxes","lastProcessedOptions","lastProcessedCheckboxes","disconnect","defaultValues","fixedReactChatbotifySettings","QABot","apiKey","qaEndpoint","ratingEndpoint","welcomeMessage","onOpenChange","isLoggedIn","allowAnonAccess","actingUser","botName","logo","errorMessage","footerText","footerLink","tooltipText","customFlow","onAnalyticsEvent","instanceIdRef","substr","sessionIdRef","isResettingRef","sessionGetter","isResetting","internalIsLoggedIn","setInternalIsLoggedIn","isEmbeddedMode","pageUrl","location","isEmbedded","useMemo","base","Button","footerTextElement","containerRef","themeColors","themeConfig","getCSSVariable","fallback","containerValue","getComputedStyle","getPropertyValue","parentValue","useThemeColors","useUpdateHeader","setProperty","useChatBotSettings","qaFlow","endpoint","qa_loop","feedbackQueryId","hasShownResponse","chatState","isPositive","credentials","queryId","rating","questionLength","requestBody","query","session_id","question_id","requestStartTime","response","responseTimeMs","status","answer","processedText","cleanUrl","trailingPunctuation","trailingPunctuationMatch","getProcessedText","metadataText","confidence","tools_used","metadata","parts","agent","buildMetadataText","fullContent","responseLength","hasMetadata","errorType","createQAFlow","startStep","MarkdownRenderer","makeSendButtonAccessible","reactPropsKey","reactProps","interval","handleChatWindowToggle","newOpenState","messageCount","durationMs","oldSessionId","ChatBotProvider","ChatBot","useScreenshotCapture","isCapturing","setIsCapturing","checkScreenCaptureAvailable","getDisplayMedia","captureScreenshot","stream","displaySurface","ideal","srcObject","onloadedmetadata","play","canvas","videoWidth","videoHeight","ctx","getContext","drawImage","blob","toBlob","isScreenCaptureAvailable","UploadIcon","fileToBase64","reject","reader","base64String","fileData","filesToBase64","validateFileSize","maxBytes","formatFileSize","bytes","toFixed","FileUploadComponent","onFileUpload","maxSizeMB","acceptedTypes","enableScreenshot","dragActive","setDragActive","selectedFiles","setSelectedFiles","previewFile","setPreviewFile","fileInputRef","handleFiles","newFileArray","updatedFiles","fileCount","fileNames","chatContent","handleDrag","handleButtonClick","click","closePreview","showScreenshotButton","handleScreenshotCapture","dataTransfer","flexWrap","alignSelf","handleFilePreview","indexToRemove","newFiles","idx","handleRemoveFile","userSelect","renderFilePreview","isImage","isText","isPDF","createObjectURL","wordWrap","applyFlowSettings","processed","stepName","processedStep","disableOnOptions","hasOptions","withHistory","params","withHistoryFn","messageFn","ProgrammaticQABot","qaRef","prev","qaBot","HTMLElement","ReactDOM","createRoot","wrapperRef","render","StrictMode","destroy","unmount"],"mappings":"sXAAA,SAASA,EAAYC,EAAKC,QACX,IAARA,IAAiBA,EAAM,CAAA,GAC5B,IAAIC,EAAWD,EAAIC,SAEnB,GAAKF,GAA2B,oBAAbG,SAAnB,CAEA,IAAIC,EAAOD,SAASC,MAAQD,SAASE,qBAAqB,QAAQ,GAC9DC,EAAQH,SAASI,cAAc,SACnCD,EAAME,KAAO,WAEI,QAAbN,GACEE,EAAKK,WACPL,EAAKM,aAAaJ,EAAOF,EAAKK,YAKhCL,EAAKO,YAAYL,GAGfA,EAAMM,WACRN,EAAMM,WAAWC,QAAUb,EAE3BM,EAAMK,YAAYR,SAASW,eAAed,GAnBW,CAqBzD,2xeCpBA,MAAMe,EAAI,CACRC,aAAc,eACdC,oBAAqB,sBACrBC,kBAAmB,oBACnBC,oBAAqB,cACrBC,qBAAsB,eACtBC,uBAAwB,yBACxBC,oBAAqB,gBAC0oBC,EAAK,wvOAAi0VC,EAAKC,EAAnuG,CAACC,EAAGC,IAAsBC,EAAErB,cAAc,MAAO,CAAEsB,QAAS,cAAe5B,IAAK0B,KAAMD,GAAqBE,EAAErB,cAAc,OAAQ,CAAEuB,EAAG,qoDAAsoDC,KAAM,OAAQC,SAAU,YAA8BJ,EAAErB,cAAc,OAAQ,CAAEuB,EAAG,43CAA60DG,EAAKR,EAAnc,CAACC,EAAGC,IAAsBC,EAAErB,cAAc,MAAO,CAAEsB,QAAS,iBAAkB5B,IAAK0B,KAAMD,GAAqBE,EAAErB,cAAc,OAAQ,CAAEuB,EAAG,kTAAupBI,EAAKT,EAAvV,CAACC,EAAGC,IAAsBC,EAAErB,cAAc,MAAO,CAAEsB,QAAS,iBAAkB5B,IAAK0B,KAAMD,GAAqBE,EAAErB,cAAc,OAAQ,CAAEuB,EAAG,sMAA+lBK,EAAKV,EAA3Y,CAACC,EAAGC,IAAsBC,EAAErB,cAAc,MAAO,CAAEsB,QAAS,iBAAkB5B,IAAK0B,KAAMD,GAAqBE,EAAErB,cAAc,OAAQ,CAAEuB,EAAG,0PAA6iBM,EAAKX,EAArS,CAACC,EAAGC,IAAsBC,EAAErB,cAAc,MAAO,CAAE8B,MAAO,6BAA8BR,QAAS,cAAe5B,IAAK0B,KAAMD,GAAqBE,EAAErB,cAAc,IAAK,CAAE+B,cAAe,QAASC,YAAa,IAAsBX,EAAErB,cAAc,OAAQ,CAAEuB,EAAG,gCAAqPU,EAAKf,EAAvM,CAACC,EAAGC,IAAsBC,EAAErB,cAAc,MAAO,CAAEsB,QAAS,iBAAkB5B,IAAK0B,KAAMD,GAAqBE,EAAErB,cAAc,OAAQ,CAAEuB,EAAG,sDAA8bW,EAAKhB,EAA1X,CAACC,EAAGC,IAAsBC,EAAErB,cAAc,MAAO,CAAEsB,QAAS,iBAAkB5B,IAAK0B,KAAMD,GAAqBE,EAAErB,cAAc,OAAQ,CAAEuB,EAAG,yOAAmrBY,EAAKjB,EAA5b,CAACC,EAAGC,IAAsBC,EAAErB,cAAc,MAAO,CAAEsB,QAAS,iBAAkB5B,IAAK0B,KAAMD,GAAqBE,EAAErB,cAAc,OAAQ,CAAEuB,EAAG,2SAA48Ba,EAAKlB,EAAnpB,CAACC,EAAGC,IAAsBC,EAAErB,cAAc,MAAO,CAAEsB,QAAS,iBAAkB5B,IAAK0B,KAAMD,GAAqBE,EAAErB,cAAc,OAAQ,CAAEuB,EAAG,kgBAAw3Bc,EAAKnB,EAAxW,CAACC,EAAGC,IAAsBC,EAAErB,cAAc,MAAO,CAAEsB,QAAS,iBAAkB5B,IAAK0B,KAAMD,GAAqBE,EAAErB,cAAc,OAAQ,CAAEuB,EAAG,uNAAosBe,EAAKpB,EAA/d,CAACC,EAAGC,IAAsBC,EAAErB,cAAc,MAAO,CAAEsB,QAAS,iBAAkB5B,IAAK0B,KAAMD,GAAqBE,EAAErB,cAAc,OAAQ,CAAEuB,EAAG,8UAAm27CgB,EAAK,CACji6DC,QAAS,CACPC,aAAc,UACdC,eAAgB,UAChBC,WAAY,oJACZC,YAAY,EACZC,YAAY,EACZC,cAAc,EACdC,mBARI,wpBASJC,UAAU,EACVC,iBAAkB,WAEpBC,QAAS,CACPC,KAAM,QACNC,KAAM,kBAERC,WAAY,CACVC,KAAMrC,GAERsC,OAAQ,CACNC,MAAuBC,EAAE,MAAO,CAAE1D,MAAO,CAAE2D,OAAQ,UAAWC,OAAQ,EAAGC,SAAU,GAAIC,WAAY,QAAUC,QAAS,IAAMC,OAAOC,KAAK,+BAAgC,SAAU,uBAAwBC,SAAU,YACpNC,YAAY,EACZC,OAAQnD,EACRoD,QAAS,CAAC5D,EAAEE,oBAAqBF,EAAEC,aAAcD,EAAEG,mBACnD0D,cAAexC,GAEjByC,aAAc,CACZC,UAAU,EACVC,kBAAkB,EAClBC,OAAQ,GACRnB,KAAM3B,EACN+C,aAAc9C,EACd+C,MAhCwhf,ig7CAiCxhfC,WAAW,GAEbC,MAAO,CACLN,UAAU,EACVC,kBAAkB,EAClBM,SAAU,QACVC,WAAY,CAAC,4CAA6C,kCAC1DC,KAAM,EACNP,OAAQ,EACRnB,KAAMjB,EACNqC,aAAcpC,GAEhB2C,YAAa,CACXV,UAAU,EACVW,WAAY,GACZC,WAAY,cACZC,YAAa,gBACbC,0BAA2B,sBAC3BC,yBAA0B,oCAC1BC,UAAU,GAEZC,UAAW,CACTjB,UAAU,EACVkB,cAAc,EACdC,uBAAwB,uBACxBC,wBAAyB,GACzBC,oBAAoB,EACpBC,gBAAgB,EAChBC,SAAU,IACVC,eAAgB9D,EAChB+D,WAAW,EACXC,kBAAkB,EAClBC,oBAAoB,EACpB9B,QAAS,CAAC5D,EAAEK,qBAAsBL,EAAEI,sBAEtCuF,WAAY,CACVC,eAAe,EACfC,qBAAqB,EACrBC,kBAAkB,EAClBC,mBAAmB,EACnBC,kBAAmB,iBACnBC,oBAAqB,GACrBC,aAAa,GAEfC,eAAgB,CACdC,gBAAgB,EAChBC,kBAAkB,EAClBC,eAAgB,GAChBC,kBAAkB,GAEpBC,WAAY,CACVC,SAAS,EACT/C,YAAY,EACZC,OAtFg6P,+VAuFh6P+C,gBAAgB,EAChBC,YAAa,IAEfC,UAAW,CACTH,SAAS,EACT/C,YAAY,EACZC,OAAQnD,EACRkG,gBAAgB,EAChBC,YAAa,IAEfE,MAAO,CACL9C,UAAU,EACVC,kBAAkB,EAClBM,SAAU,QACVwC,cAAe,IACfC,kBAAkB,EAClBC,eAAgB,IAChBC,aAAa,EACbnE,KAAMpB,EACNwC,aAAcvC,GAEhBuF,OAAQ,CACNtE,KAAsBuE,EACpB,MACA,CACE5H,MAAO,CAAE2D,OAAQ,UAAWkE,QAAS,OAAQC,cAAe,MAAOC,WAAY,SAAUC,UAAW,GACpGjE,QAAS,IAAMC,OAAOC,KAAK,+BAAgC,SAAU,uBACrEC,SAAU,CACQR,EAAE,OAAQ,CAAEQ,SAAU,eAAiB,GACvCR,EACd,MACA,CACE1D,MAAO,CACLiI,aAAc,MACdC,MAAO,GACPC,OAAQ,GACRN,QAAS,OACTO,eAAgB,SAChBL,WAAY,SACZM,WAAY,+CAEdnE,SAA0BR,EAAExC,EAAI,CAAElB,MAAO,CAAEkI,MAAO,MAAOC,OAAQ,MAAO1G,KAAM,WAEhF,GAEciC,EAAE,OAAQ,CAAE1D,MAAO,CAAE8D,WAAY,QAAUI,SAAU,qBAAuB,MAIlGG,QAAS,CAAC5D,EAAEM,uBAAwBN,EAAEO,sBAExCsH,eAAgB,CACd9D,UAAU,EACV+D,UAAU,EACVC,OAAQ,OACRjF,KAAM5B,EACNgD,aAAchD,EACd8G,cAAc,EACdC,kBAAkB,GAEpBC,MAAO,CACLnE,UAAU,EACVjB,KAAMlB,EACNsC,aAActC,EACduG,KAAM,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,OAEnGC,MAAO,CACLC,SAAU,EACVC,aAAa,EACbC,gBAAgB,GAElBC,MAAO,CACLC,qBAAqB,EACrBC,sBAAsB,EACtBC,+BAA+B,EAC/BC,8BAA8B,EAC9BC,uBAAuB,EACvBC,uBAAuB,EACvBC,sBAAsB,EACtBC,kBAAkB,EAClBC,oBAAoB,EACpBC,oBAAoB,EACpBC,qBAAqB,EACrBC,oBAAoB,EACpBC,gBAAgB,EAChBC,wBAAwB,EACxBC,gBAAgB,EAChBC,eAAe,EACfC,cAAc,EACdC,iBAAiB,EACjBC,mBAAmB,EACnBC,mBAAmB,EACnBC,wBAAwB,EACxBC,mBAAmB,EACnBC,oBAAoB,EACpBC,oBAAoB,EACpBC,qBAAqB,GAEvBC,UAAW,CACTrH,WAAY,YACZsH,YAAa,eACbC,gBAAiB,aACjBC,YAAa,eACbC,qBAAsB,cACtBC,mBAAoB,uBACpBC,WAAY,eACZC,YAAa,eACbC,cAAe,mBAEjBC,OAAQ,CACNC,gBAAgB,EAChBC,eAAe,EACfC,0BAA0B,IAE3BC,EAAKC,EAAG,CACTC,SAAU,CAAA,EACVC,kBAAmB,IAAM,KACzBC,kBAAmB,CAAEC,QAAS,CAAA,KAC5BC,EAAI,IAAMC,EAAGP,GAAKQ,EAAK,EACzB9H,SAAU9C,EACVsK,SAAUrK,EAAImB,EACdmJ,kBAAmBM,EACnBL,kBAAmBM,KACCxI,EAAE8H,EAAGW,SAAU,CAAEC,MAAO,CAAEV,SAAUrK,EAAGsK,kBAAmBM,EAAGL,kBAAmBM,GAAKhI,SAAU9C,IAAMiL,EAAK,CAC9HC,aAAc,CAAA,EACdC,uBAAwB,CAAA,EACxBC,gBAAiB,CAAA,EACjBC,YAAa,CAAA,EACbC,UAAW,CAAA,EACXC,wBAAyB,CAAA,EACzBC,mBAAoB,CAAA,EACpBC,0BAA2B,CAAA,EAC3BC,2BAA4B,CAAA,EAC5BC,gBAAiB,CAAA,EACjBC,eAAgB,CAAA,EAChBC,eAAgB,CAAA,EAChBC,sBAAuB,CAAA,EACvBC,oBAAqB,CAAA,EACrBC,qBAAsB,CAAA,EACtBC,kBAAmB,CAAA,EACnBC,0BAA2B,CAAA,EAC3BC,oBAAqB,CAAA,EACrBC,2BAA4B,CAAA,EAC5BC,0BAA2B,CAAA,EAC3BC,uBAAwB,CAAA,EACxBC,8BAA+B,CAAA,EAC/BC,YAAa,CAAA,EACbC,oBAAqB,CAAA,EACrBC,2BAA4B,CAAA,EAC5BC,gBAAiB,CAAA,EACjBC,uBAAwB,CAAA,EACxBC,uBAAwB,CAAA,EACxBC,8BAA+B,CAAA,EAC/BC,gBAAiB,CAAA,EACjBC,uBAAwB,CAAA,EACxBC,wBAAyB,CAAA,EACzBC,iBAAkB,CAAA,EAClBC,yBAA0B,CAAA,EAC1BC,qBAAsB,CAAA,EACtBC,iBAAkB,CAAA,EAClBC,yBAA0B,CAAA,EAC1BC,0BAA2B,CAAA,EAC3BC,kCAAmC,CAAA,EACnCC,wBAAyB,CAAA,EACzBC,gCAAiC,CAAA,EACjCC,iBAAkB,CAAA,EAClBC,yBAA0B,CAAA,EAC1BC,cAAe,CAAA,EACfC,eAAgB,CAAA,EAChBC,uBAAwB,CAAA,EACxBC,mBAAoB,CAAA,EACpBC,eAAgB,CAAA,EAChBC,uBAAwB,CAAA,EACxBC,wBAAyB,CAAA,EACzBC,gCAAiC,CAAA,EACjCC,sBAAuB,CAAA,EACvBC,8BAA+B,CAAA,EAC/BC,eAAgB,CAAA,EAChBC,uBAAwB,CAAA,EACxBC,cAAe,CAAA,EACfC,sBAAuB,CAAA,EACvBC,qBAAsB,CAAA,EACtBC,iCAAkC,CAAA,EAClCC,2BAA4B,CAAA,EAC5BC,0BAA2B,CAAA,EAC3BC,iBAAkB,CAAA,EAClBC,wBAAyB,CAAA,GACxBC,EAAK5E,EAAG,CACT6E,OAAQ,CAAA,EACRC,gBAAiB,IAAM,KACvBC,gBAAiB,CAAE3E,QAAS,CAAA,KAC1B4E,EAAI,IAAM1E,EAAGsE,GAAKK,EAAK,EACzBxM,SAAU9C,EACVkP,OAAQjP,EAAIgL,EACZkE,gBAAiBtE,EACjBuE,gBAAiBtE,KACGxI,EAAE2M,EAAGlE,SAAU,CAAEC,MAAO,CAAEkE,OAAQjP,EAAGkP,gBAAiBtE,EAAGuE,gBAAiBtE,GAAKhI,SAAU9C,IAAMuP,EAAK,EAAGtM,QAASjD,MACpI,IAAIwP,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,EACtB,MAAQxF,SAAUrK,GAAMyK,KAAOwE,OAAQrE,GAAMwE,IAAKvE,EAAI,CACpDiF,gBAAiB,6BAAgD,OAAlBP,EAAIvP,EAAEoB,cAAmB,EAASmO,EAAEjO,0BAC/D,OAAlBkO,EAAIxP,EAAEoB,cAAmB,EAASoO,EAAEnO,mBACnCuJ,EAAEQ,aAEP,OAAuB7E,EAAE,MAAO,CAAE5H,MAAOkM,EAAGkF,UAAW,4BAA6BlN,SAAU,CAC5E0D,EAAE,MAAO,CAAEwJ,UAAW,kBAAmBlN,SAAU,EAC9C,OAAjB4M,EAAIzP,EAAEmC,aAAkB,EAASsN,EAAE3M,aAA+BT,EAClE,MACA,CACE1D,MAAO,CAAEmR,gBAAiB,QAA0B,OAAjBJ,EAAI1P,EAAEmC,aAAkB,EAASuN,EAAE3M,YACtEgN,UAAW,mBAGfC,EAAqB,OAAjBL,EAAI3P,EAAEmC,aAAkB,EAASwN,EAAEvN,OAA2B,OAAjBwN,EAAI5P,EAAEmC,aAAkB,EAASyN,EAAExN,MAAwBC,EAAE,MAAO,CAAE1D,MAAO,CAAE4D,OAAQ,EAAGC,SAAU,GAAIC,WAAY,QAAUI,SAA4B,OAAjBgN,EAAI7P,EAAEmC,aAAkB,EAAS0N,EAAEzN,WAE/MC,EAAE,MAAO,CAAE0N,UAAW,kBAAmBlN,SAAe,MAAL9C,OAAY,EAASA,EAAEkQ,IACxF,CAAC9P,EAAG+P,IAAsB7N,EAAE8N,EAAI,CAAEtN,SAAU1C,GAAK+P,UAGpDE,EAAKhG,EAAG,CAAA,GAAKiG,EAAI,IAAM3F,EAAG0F,GAAKE,EAAK,EACrCzN,SAAU9C,EACVwQ,SAAUvQ,EACVwQ,QAAS5F,MAET,MAAMC,EAAI4F,EAAG,MAAOlB,EAAIkB,EAAG,IAAKjB,EAAIiB,EAAG,MAAOhB,EAAIgB,EAAmB,IAAIC,KAAQhB,EAAIe,EAAG,MAAOd,EAAIc,EAAG,IAAKb,EAAIa,GAAG,GAAKZ,EAAIY,EAAG,MAAOtQ,EAAIsQ,EAAG,MAAOP,EAAIO,EAAG,MAC1J,OAAuBpO,EAAE+N,EAAGtF,SAAU,CAAEC,MAAO,CAC7CwF,SAAUvQ,EACVwQ,QAAS5F,EACT+F,SAAU9F,EACV+F,aAAcpB,EACdqB,iBAAkBpB,EAClBqB,YAAapB,EACbqB,eAAgBpB,EAChBqB,eAAgBpB,EAChBqB,gBAAiBpB,EACjBqB,eAAgB/Q,EAChBgR,YAAajB,EACbkB,aAAc7B,GACb1M,SAAU9C,KACZsR,EAAMtR,IACP,MAAOC,EAAG4K,GAAK0G,EAAEvR,GAAI8K,EAAI4F,EAAG1Q,GAC5B,MAAO,CAACC,EAAIwP,IACV,MAAMC,EAAgB,mBAALD,EAAkBA,EAAE3E,EAAEL,SAAWgF,EAClD3E,EAAEL,QAAUiF,EAAG7E,EAAE6E,IAChB5E,IACF0G,EAAKnH,EAAG,CAAA,GAAKoH,EAAK,IAAM9G,EAAG6G,GAAKE,EAAK,EACtC5O,SAAU9C,EACVsK,SAAUrK,MAEV,IAAI0R,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EACxB,MAAOnH,EAAGC,EAAG0E,GAAK8B,GAAG,IAAM7B,EAAGC,EAAGC,GAAK2B,GACS,OAA3CK,EAAU,MAAL1R,OAAY,EAASA,EAAE+E,iBAAsB,EAAS2M,EAAGpM,eAAgB,IAC9EqK,EAAGC,EAAGC,GAAKwB,GAC2B,OAAtCM,EAAU,MAAL3R,OAAY,EAASA,EAAEyD,YAAiB,EAASkO,EAAGvO,oBAAqB,IAC9EjD,EAAG+P,EAAG8B,GAAKX,GAC2B,OAAtCO,EAAU,MAAL5R,OAAY,EAASA,EAAEiG,YAAiB,EAAS2L,EAAGxO,oBAAqB,IAEhF6O,EACAC,EACAC,GACEd,GAC6C,OAA7CQ,EAAU,MAAL7R,OAAY,EAASA,EAAEkD,mBAAwB,EAAS2O,EAAGzO,oBAAqB,IACrFgP,EAAGC,GAAKf,GAAE,IAAMgB,EAAGC,GAAKjB,GAAE,IAAMkB,EAAGC,EAAGC,GAAKrB,GAAG,IAAMsB,EAAGC,EAAGC,GAAKxB,GAAG,IACpEyB,EACAC,EACAC,GACE3B,GAAG,IAAM4B,EAAGC,GAAK5B,GAAE,IAAM6B,EAAGC,GAAK9B,GAAE,IAAM+B,EAAGC,GAAKhC,EAAE,IAAKiC,EAAGC,GAAKlC,EAAE,IAAKmC,EAAGC,GAAKpC,GAAE,IAAMqC,EAAGC,GAAKtC,GAAmC,OAA/BQ,EAAKnP,OAAOkR,qBAA0B,EAAS/B,EAAGhL,SAAWnE,OAAOmR,cAAeC,EAAIC,GAAK1C,GAAmC,OAA/BS,EAAKpP,OAAOkR,qBAA0B,EAAS9B,EAAGlL,QAAUlE,OAAOsR,YAC1Q,OAAuB5R,EAAEkP,EAAGzG,SAAU,CAAEC,MAAO,CAC7CmJ,YAAatJ,EACbuJ,qBAAsBtJ,EACtBuJ,qBAAsB7E,EACtB8E,iBAAkB7E,EAClB8E,0BAA2B7E,EAC3B8E,0BAA2B7E,EAC3B8E,eAAgB7E,EAChB8E,wBAAyB7E,EACzB8E,wBAAyB7E,EACzB8E,eAAgBxU,EAChByU,wBAAyB1E,EACzB2E,wBAAyB7C,EACzB8C,uBAAwB7C,EACxB8C,gCAAiC7C,EACjC8C,gCAAiC7C,EACjC8C,qBAAsB7C,EACtB8C,wBAAyB7C,EACzB8C,qBAAsB7C,EACtB8C,wBAAyB7C,EACzB8C,YAAa7C,EACb8C,qBAAsB7C,EACtB8C,qBAAsB7C,EACtB8C,iBAAkB7C,EAClB8C,0BAA2B7C,EAC3B8C,0BAA2B7C,EAC3B8C,sBAAuB7C,EACvB8C,+BAAgC7C,EAChC8C,+BAAgC7C,EAChC8C,kBAAmB7C,EACnB8C,qBAAsB7C,EACtB8C,eAAgB7C,EAChB8C,kBAAmB7C,EACnB8C,YAAa7C,EACb8C,eAAgB7C,EAChB8C,YAAa7C,EACb8C,eAAgB7C,EAChB8C,sBAAuB7C,EACvB8C,yBAA0B7C,EAC1B8C,eAAgB7C,EAChB8C,kBAAmB7C,EACnB8C,cAAe3C,EACf4C,iBAAkB3C,GACjBnR,SAAU9C,KAEf,IAAI6W,EAAoB,CAAE7W,IAAOA,EAAE8W,kBAAoB,wBAAyB9W,EAAE+W,aAAe,mBAAoB/W,EAAEgX,qBAAuB,2BAA4BhX,EAAEiX,aAAe,mBAAoBjX,EAAEkX,mBAAqB,yBAA0BlX,EAAEmX,mBAAqB,yBAA0BnX,EAAEoX,oBAAsB,0BAA2BpX,EAAEqX,8BAAgC,oCAAqCrX,EAAEsX,6BAA+B,mCAAoCtX,EAAEuX,qBAAuB,2BAA4BvX,EAAEwX,qBAAuB,2BAA4BxX,EAAEyX,oBAAsB,0BAA2BzX,EAAE0X,eAAiB,qBAAsB1X,EAAE2X,kBAAoB,wBAAyB3X,EAAE4X,kBAAoB,wBAAyB5X,EAAE6X,YAAc,kBAAmB7X,EAAE8X,WAAa,iBAAkB9X,EAAE+X,cAAgB,oBAAqB/X,EAAEgY,iBAAmB,uBAAwBhY,EAAEiY,iBAAmB,uBAAwBjY,EAAEkY,uBAAyB,6BAA8BlY,EAAEmY,iBAAmB,uBAAwBnY,EAAEoY,kBAAoB,wBAAyBpY,EAAEqY,kBAAoB,wBAAyBrY,EAAEsY,mBAAqB,yBAA0BtY,GAAtrC,CAA0rC6W,GAAK,IACvtC,MAAM0B,EAAK,CACT,CAAC1B,EAAEC,oBAAoB,EACvB,CAACD,EAAEE,eAAe,EAClB,CAACF,EAAEI,eAAe,EAClB,CAACJ,EAAEG,uBAAuB,EAC1B,CAACH,EAAEK,qBAAqB,EACxB,CAACL,EAAEM,qBAAqB,EACxB,CAACN,EAAEO,sBAAsB,EACzB,CAACP,EAAEsB,mBAAmB,EACtB,CAACtB,EAAEuB,oBAAoB,EACvB,CAACvB,EAAEQ,gCAAgC,EACnC,CAACR,EAAES,+BAA+B,EAClC,CAACT,EAAEU,uBAAuB,EAC1B,CAACV,EAAEW,uBAAuB,EAC1B,CAACX,EAAEY,sBAAsB,EACzB,CAACZ,EAAEa,iBAAiB,EACpB,CAACb,EAAEc,oBAAoB,EACvB,CAACd,EAAEe,oBAAoB,EACvB,CAACf,EAAEgB,cAAc,EACjB,CAAChB,EAAEiB,aAAa,EAChB,CAACjB,EAAEkB,gBAAgB,EACnB,CAAClB,EAAEmB,mBAAmB,EACtB,CAACnB,EAAEoB,mBAAmB,EACtB,CAACpB,EAAEqB,yBAAyB,EAC5B,CAACrB,EAAEwB,oBAAoB,EACvB,CAACxB,EAAEyB,qBAAqB,GACvBE,EAAKC,MAAOzY,EAAGC,EAAG4K,KACnB,MAAMC,EAAI,IAAI4N,YAAY1Y,EAAG,CAC3B2Y,OAAQ1Y,EACR2Y,WAAYL,EAAGvY,KAEjB,OAAO8K,EAAE+N,KAAOhO,EAAGC,EAAEgO,SAAW,GAAIlW,OAAOmW,cAAcjO,SAAUkO,QAAQC,IAAInO,EAAEgO,UAAWhO,GAC3FoO,EAAK7O,EAAG,CACT8O,MAAO,GACPC,eAAgB,OAEhBC,eAAgB,CAAE5O,QAAS,MACzB6O,EAAK,IAAM3O,EAAGuO,GAAKK,GAAK,EAAGzW,SAAU9C,MACvC,MAAOC,EAAG4K,EAAGC,GAAKwG,EAAG,IACrB,OAAuBhP,EAAE4W,EAAGnO,SAAU,CAAEC,MAAO,CAAEmO,MAAOlZ,EAAGmZ,eAAgBvO,EAAGwO,eAAgBvO,GAAKhI,SAAU9C,KAC5GwZ,GAAK,KACN,MAAQhJ,SAAUxQ,GAAMsQ,KAAO+I,eAAgBpZ,GAAMqZ,IAAMzO,EAAI4O,EAAE,IAAMxZ,EAAEwK,QAAQiP,OAAS,EAAIzZ,EAAEwK,QAAQkP,IAAG,IAAO,KAAO,KAAM,IAAK7O,EAAI2O,EAAE,IAAMxZ,EAAEwK,QAAQiP,OAAS,EAAIzZ,EAAEwK,QAAQkP,IAAG,IAAO,KAAO,KAAM,IACxM,MAAO,CAAEC,iBAAkBH,EAAEhB,MAAOhJ,EAAGC,KACrC,MAAMC,EAAI,CAAEkK,MAAO7Z,EAAEyK,QAASqP,SAAUjP,IAAKkP,SAAUjP,KACvD,aAAa0N,EAAG/I,EAAGE,EAAGD,IACrB,CAAC1P,MACHga,GAAK,KACN,MAAQ1P,SAAUtK,GAAM0K,KACtB4J,iBAAkBrU,EAClBsU,0BAA2B1J,EAC3B4L,eAAgB3L,EAChB4L,kBAAmBlH,EACnBmH,cAAelH,EACfmH,iBAAkBlH,EAClB0G,eAAgBzG,EAChByE,qBAAsBxE,EACtB2F,qBAAsB1F,EACtBwE,qBAAsBvE,EACtB0E,0BAA2BpU,GACzBqR,KAAQV,YAAaZ,GAAMG,KAAOsJ,iBAAkB3H,GAAMuH,KAAMtH,EAAIuH,EAAE,KACxE,IAAKtJ,EAAE1F,QACL,OAAO,EACT,MAAM8H,EAAIpC,EAAE1F,QAAQwP,wBAAyBzH,EAAI5P,OAAOmR,aAAetV,SAASyb,gBAAgBC,aAAc1H,EAAI7P,OAAOsR,YAAczV,SAASyb,gBAAgBE,YAChK,OAAO7H,EAAE8H,KAAO,GAAK9H,EAAE+H,MAAQ,GAAK/H,EAAEgI,QAAU/H,GAAKD,EAAEiI,OAAS/H,GAC/D,CAACtC,IAAKgC,EAAIsH,EAAEhB,MAAOlG,IACpB,IAAIC,EACJD,IAAMnS,EAAEqK,UAA6B,OAAhB+H,EAAIxS,EAAE6H,QAAkB2K,EAAEhK,4BAA8ByJ,EAC3E4E,EAAEK,mBACF,CACEuD,UAAWra,EAAEqK,QACbiQ,UAAWta,EAAEqK,WAEdkQ,kBAAoB9P,EAAG4H,IAAOA,GAAK9C,EAAE,IAAK8C,MAC5C,CAACrS,IAAKgS,EAAIqH,EAAEhB,MAAOlG,IACpBA,IAAMzC,EAAErF,SAAWmF,EAAG4C,IAAOA,IAC5B,CAAC1C,IAAKuC,EAAIoH,EAAE,CAAClH,EAAGC,EAAGC,EAAGC,KAAOH,GAAKG,EAAI,GAAO,EAAID,EAAI,EAAIF,EAAIA,EAAIC,GAAWC,EAAI,KAAVF,GAAoBA,EAAI,GAAK,GAAKC,EAAK,IAAKF,EAAImH,EAAE,CAAClH,EAAI,KAC9H,IAAKpC,EAAE1F,QACL,OACF,MAAM+H,EAAIrC,EAAE1F,QAAQmQ,aAAezK,EAAE1F,QAAQ0P,aAC7C,GAAI5H,GAAK,EAEP,OADApC,EAAE1F,QAAQoQ,UAAYrI,OAAG3C,GAAE,GAG7B,MAAM4C,EAAItC,EAAE1F,QAAQoQ,UAAWnI,EAAIF,EAAIC,EACvC,IAAIG,EAAI,EACR,MAAMC,EAAI,KACR,IAAK1C,EAAE1F,QACL,OACFmI,GAL4C,GAM5C,MAAME,EAAIT,EAAEO,EAAGH,EAAGC,EAAGH,GACrBpC,EAAE1F,QAAQoQ,UAAY/H,EAAGF,EAAIL,EAAIuI,sBAAsBjI,GAAKhD,GAAE,IAEhEgD,KACC,CAAC1C,IACJ,MAAO,CACLmE,iBAAkBrU,EAClBsU,0BAA2B1J,EAC3BkQ,iBAAkB5I,EAClBsE,eAAgB3L,EAChB4L,kBAAmBlH,EACnBmH,cAAelH,EACfmH,iBAAkBlH,EAClBsL,kBAAmB5I,EACnB6I,eAAgB3I,EAChB4I,oBAAqBhJ,IAEtBiJ,GAAK,KACN,IAAIhL,EAAG8B,EAAGC,EACV,MAAQ5H,SAAUtK,GAAM0K,KAAOwE,OAAQjP,GAAMoP,KAAO8G,YAAatL,EAAGyK,YAAaxK,GAAM2G,KAAQV,YAAavB,GAAMc,KAAO2K,eAAgBxL,GAAMuK,MAAOtK,EAAGC,GAAK4B,GAAE,GAAK3B,EAAI,CACvKwL,MAA0B,OAAlBjL,EAAInQ,EAAEqB,cAAmB,EAAS8O,EAAE7O,aAC5C+Z,YAAgC,OAAlBpJ,EAAIjS,EAAEqB,cAAmB,EAAS4Q,EAAE3Q,gBAC/CrB,EAAEsM,+BAMP,OAAuBjK,EAAE,MAAO,CAAE0N,UAAW,iCAEpCR,EAAE/E,UAAkC,OAArB2H,EAAIpS,EAAEgF,iBAAsB,EAASoN,EAAEhN,oBAAsB0F,GAAKD,EAAI,EAAI,UAAY,UACtG/H,SAA0BR,EAChC,MACA,CACEgZ,aAXG,KACL3L,GAAE,IAWA4L,aAVG,KACL5L,GAAE,IAUA/Q,MAAO8Q,EAAIE,EAAI,IAAK3P,EAAEqM,wBACtBkP,YAAcrJ,IACZA,EAAEsJ,iBAAkBhM,EAAE,MAExBO,UAAW,0BACXlN,SAAgC,OAArBoP,EAAIlS,EAAEgF,iBAAsB,EAASkN,EAAE7M,sBAbuB,IACvE+M,GAeLsJ,GAAKrR,EAAG,CACTsR,SAAU,GACVC,kBAAmB,OAEnBC,kBAAmB,CAAEpR,QAAS,MAC5BqR,GAAK,IAAMnR,EAAG+Q,IAAK/B,GAAK,EAAG7W,SAAU9C,MACvC,MAAOC,EAAG4K,EAAGC,GAAKwG,EAAG,IACrB,OAAuBhP,EAAEoZ,GAAG3Q,SAAU,CAAEC,MAAO,CAAE2Q,SAAU1b,EAAG2b,kBAAmB/Q,EAAGgR,kBAAmB/Q,GAAKhI,SAAU9C,KACrH+b,GAAK,EACNC,QAAShc,EACTic,YAAahc,MAEb,IAAIG,EAAG+P,EAAG8B,EAAGC,EAAGC,EAAGC,EACnB,MAAQ9H,SAAUO,GAAMH,KAAOwE,OAAQpE,GAAMuE,IAAKG,EAAwB,iBAAbxP,EAAEkc,QAAqBzM,EAAIzP,EAAEkc,QAASxM,EAAI1P,EAAEmc,eAAiC7Z,EAAEtC,EAAEmc,eAAgB,CAAErZ,SAAU2M,IAAOA,EAAGE,EAAI,CACtLyM,gBAAoC,OAAlBhc,EAAIyK,EAAExJ,cAAmB,EAASjB,EAAEkB,aACtD8Z,MAAO,OACPiB,SAAgC,OAArBlM,EAAItF,EAAEhF,aAAuBsK,EAAEpN,WAAa,MAAQ,SAC5D+H,EAAEa,iBACJiE,EAA0B,OAArBqC,EAAIpH,EAAEhF,aAAuBoM,EAAEnM,QAAU,yBAA2B,GAAI+J,GAA2B,OAArBqC,EAAIrH,EAAEhF,iBAAsB,EAASqM,EAAEnP,aAAe9C,EAAG6P,EAAI,qBAAoB7P,GAA4B,OAArBkS,EAAItH,EAAEhF,aAAuBsM,EAAEpP,WAAc,2BAA6B,IACxP,OAAuByD,EAAE,MAAO,CAAEwJ,UAAW,6BAA8BlN,SAAU,CACnF0M,EAAoBlN,EAAE,MAAO,CAAE1D,MAAO+Q,EAAGK,UAAW,GAAGF,KAAKF,IAAK9M,SAAU4M,IAAuBpN,EAAEga,EAAI,CAAExZ,SAAU4M,IACpHG,GAAqBvN,EACnB,MACA,CACE1D,MAAO,CAAEmR,gBAAiB,QAA8B,OAArBqC,EAAIvH,EAAEhF,iBAAsB,EAASuM,EAAEpP,YAC1EgN,UAAW,gCAIhBuM,GAAK,EACNP,QAAShc,EACTic,YAAahc,MAEb,IAAIG,EAAG+P,EAAG8B,EAAGC,EAAGC,EAAGC,EACnB,MAAQ9H,SAAUO,GAAMH,KAAOwE,OAAQpE,GAAMuE,IAAKG,EAAwB,iBAAbxP,EAAEkc,QAAqBzM,EAAIzP,EAAEkc,QAASxM,EAAI1P,EAAEmc,eAAiC7Z,EAAEtC,EAAEmc,eAAgB,CAAErZ,SAAU2M,IAAOA,EAAGE,EAAI,CACtLyM,gBAAoC,OAAlBhc,EAAIyK,EAAExJ,cAAmB,EAASjB,EAAEmB,eACtD6Z,MAAO,OACPiB,SAA+B,OAApBlM,EAAItF,EAAE5E,YAAsBkK,EAAEpN,WAAa,MAAQ,SAC3D+H,EAAEc,gBACJgE,EAAyB,OAApBqC,EAAIpH,EAAE5E,YAAsBgM,EAAEnM,QAAU,wBAA0B,GAAI+J,GAA0B,OAApBqC,EAAIrH,EAAE5E,gBAAqB,EAASiM,EAAEnP,aAAe9C,EAAG6P,EAAI,oBAAmB7P,GAA2B,OAApBkS,EAAItH,EAAE5E,YAAsBkM,EAAEpP,WAAc,0BAA4B,IAClP,OAAuByD,EAAE,MAAO,CAAEwJ,UAAW,4BAA6BlN,SAAU,CAClF+M,GAAqBvN,EACnB,MACA,CACE1D,MAAO,CAAEmR,gBAAiB,QAA6B,OAApBqC,EAAIvH,EAAE5E,gBAAqB,EAASmM,EAAEpP,YACzEgN,UAAW,2BAGfR,EAAoBlN,EAAE,MAAO,CAAE1D,MAAO+Q,EAAGK,UAAW,GAAGF,KAAKF,IAAK9M,SAAU4M,IAAuBpN,EAAEga,EAAI,CAAExZ,SAAU4M,QAErH8M,GAAK,KACN,IAAI1R,EAAG0E,EAAGC,EACV,MAAQnF,SAAUtK,GAAM0K,KAAOwE,OAAQjP,GAAMoP,IAAKxE,EAAyB,OAApBC,EAAI9K,EAAEiG,YAAsB6E,EAAEhF,QAAU,wBAA0B,GACzH,OAAuBU,EAAE,MAAO,CAAEwJ,UAAW,4BAA6BlN,SAAU,EAC5D,OAApB0M,EAAIxP,EAAEiG,gBAAqB,EAASuJ,EAAEzM,aAA+BT,EACrE,MACA,CACE1D,MAAO,CAAEmR,gBAAiB,QAA6B,OAApBN,EAAIzP,EAAEiG,gBAAqB,EAASwJ,EAAEzM,YACzEgN,UAAW,2BAGC1N,EACd,MACA,CACEkZ,YAAc9L,IACZA,EAAE+L,kBAEJzL,UAAW,mBAAmBnF,IAC9B/H,SAA0B0D,EAAE,MAAO,CAAEwJ,UAAW,uBAAwBpR,MAAO,IAAU,MAALqB,OAAY,EAASA,EAAE2O,kCAAoC9L,SAAU,CACvIR,EAAE,OAAQ,CAAE0N,UAAW,UAAWpR,MAAO,IAAU,MAALqB,OAAY,EAASA,EAAE4O,8BACrEvM,EAAE,OAAQ,CAAE0N,UAAW,UAAWpR,MAAO,IAAU,MAALqB,OAAY,EAASA,EAAE4O,8BACrEvM,EAAE,OAAQ,CAAE0N,UAAW,UAAWpR,MAAO,IAAU,MAALqB,OAAY,EAASA,EAAE4O,uCAK5F4N,GAAK,KACN,IAAI5M,EAAGC,EAAG1P,EACV,MAAQkK,SAAUtK,GAAM0K,KAAOwE,OAAQjP,GAAMoP,KAAOsM,SAAU9Q,GAAMiR,MAAQb,eAAgBnQ,GAAMkP,MAChG7F,YAAa3E,EACbgG,qBAAsB/F,GACpBgC,KAAQV,YAAarB,GAAMY,IAAKX,EAAI,IAC9B,MAAL1P,OAAY,EAASA,EAAEqL,UAC1BoR,eAAsC,OAArB7M,EAAI7P,EAAEgF,aAAuB6K,EAAE5K,cAAgB,OAAS,QAE3E0X,EAAE,KACAlN,EAAEhF,SAAWK,KACZ,CAAoB,OAAlBgF,EAAIJ,EAAEjF,cAAmB,EAASqF,EAAE8K,eAEzC,OAAuBpU,EACrB,MACA,CACE5H,MAAO+Q,EACPK,UAAW,0BACXzR,IAAKmR,EACL5M,SAAU,CACR+H,EAAEqF,IAAI,CAACC,EAAG8B,KACR,MAAMC,EATJ,CAAC/B,GAAY,IAANA,GAAetF,EAAEsF,GAAGyM,SAAW/R,EAAEsF,EAAI,GAAGyM,OASvChN,CAAEqC,GACZ,MAAkC,SAA3B9B,EAAEyM,OAAOC,cAA2Cva,EAAEyZ,GAAI,CAAEC,QAAS7L,EAAG8L,YAAa/J,GAAKD,GAAgC,QAA3B9B,EAAEyM,OAAOC,cAA0Cva,EAAEia,GAAI,CAAEP,QAAS7L,EAAG8L,YAAa/J,GAAKD,GAAqB3P,EAAE,MAAO,CAAEQ,SAAUqN,EAAE+L,SAAWjK,KAExPzC,IAA4B,OAArBpP,EAAIJ,EAAEgF,iBAAsB,EAAS5E,EAAE8E,sBAAwC5C,EAAEka,GAAI,CAAA,GAC5Ela,EAAE6Y,GAAI,CAAA,OAI3B2B,GAAK,EACNC,WAAY/c,EACZgd,aAAc/c,EACdgd,KAAMpS,MAEN,IAAIuH,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,EAClC,MAAQxI,SAAUQ,GAAMJ,KAAOwE,OAAQM,GAAMH,KAAO8J,MAAO1J,GAAM6J,KAAQ4D,iBAAkBxN,GAAMyN,MAAOxN,EAAGC,GAAK2B,EAAkB,IAAI6L,MAASvN,EAAGC,GAAKyB,GAAE,GAAKnR,EAAI,CAChKmC,OAAQsN,EAAI,QAA2B,OAAlBuC,EAAItH,EAAEzJ,cAAmB,EAAS+Q,EAAExQ,6BAA+B,UACxFwZ,MAA0B,OAAlB/I,EAAIvH,EAAEzJ,cAAmB,EAASgR,EAAE/Q,aAC5C+Z,YAAgC,OAAlB/I,EAAIxH,EAAEzJ,cAAmB,EAASiR,EAAEhR,gBAC/CkO,EAAEzD,qBACJoE,EAAI,CACL5N,OAAQsN,GAAKF,EAAE0N,KAAOrd,EAAEsd,IAAM,QAA2B,OAAlB/K,EAAIzH,EAAEzJ,cAAmB,EAASkR,EAAE3Q,6BAA+B,UAC1GwZ,MAA0B,OAAlB5I,EAAI1H,EAAEzJ,cAAmB,EAASmR,EAAElR,aAC5C+Z,YAAgC,OAAlB5I,EAAI3H,EAAEzJ,cAAmB,EAASoR,EAAEnR,gBAC/CkO,EAAExD,sBACJiG,EAAI,CACL1P,OAAQsN,EAAI,QAA2B,OAAlB6C,EAAI5H,EAAEzJ,cAAmB,EAASqR,EAAE9Q,6BAA+B,UACxFwZ,MAAO,iBACJ5L,EAAEvD,mBACJiG,EAAI,CACL3P,OAAQsN,EAAI,QAA2B,OAAlB8C,EAAI7H,EAAEzJ,cAAmB,EAASsR,EAAE/Q,6BAA+B,UACxFwZ,MAAO,OACPC,YAAgC,OAAlBzI,EAAI9H,EAAEzJ,cAAmB,EAASuR,EAAEtR,aAClD8a,gBAAoC,OAAlBvJ,EAAI/H,EAAEzJ,cAAmB,EAASwR,EAAEvR,gBACnDkO,EAAEtD,2BAEPyQ,EAAE,KACAlN,EAAEiK,OAAS,GAAKjK,EAAEA,EAAEiK,OAAS,KAAO7O,GAAKiF,GAAG9P,EAAEud,WAC7C,CAAC9N,IAcJ,OAAuBjJ,EAAE,MAAO,CAAEwJ,UAAW,2BAA+C,OAApB8C,EAAIhI,EAAE7E,YAAsB6M,EAAE/P,WAAa,sBAAwB,IAAMD,SAAU,CACzJ9C,EAAEwd,MAAMtN,IAAK6C,GAAsBzQ,EACjC,MACA,CACEkZ,YAAcxI,IACZA,EAAEyI,iBAlBA,CAAC1I,IACTlD,GAAKD,EAAGoD,IACN,MAAMC,EAAI,IAAImK,IAAIpK,GAClB,GAAIC,EAAEwK,IAAI1K,GACR9S,EAAEyd,OAAO3K,GAAIE,EAAEyK,OAAO3K,OACnB,CACH,GAAIpD,EAAE0N,MAAQrd,EAAE2d,IACd,OAAO3K,EACT/S,EAAE2d,IAAI7K,GAAIE,EAAE2K,IAAI7K,EAClB,CACA,OAAOE,KAQiBd,CAAEY,IAExBnU,MAAOwB,EACP4P,UAAW,6BACXlN,SAA0B0D,EAAE,MAAO,CAAEwJ,UAAW,mBAAoBlN,SAAU,CAC5DR,EACd,MACA,CACE1D,MAAO+Q,EAAE8N,IAAI1K,GAAKb,EAAID,EACtBjC,UAAW,sBAGC1N,EAAE,MAAO,CAAE0N,UAAW,qBAAsBlN,SAAUiQ,QAG1EA,IAEczQ,EACd,MACA,CACE1D,MAAOuR,EACPH,UAAW,2BACXwL,YAAczI,IACZ,IAAIG,EACJ,GAAIH,EAAE0I,iBAAkB5L,GAAKF,EAAE0N,KAAOrd,EAAEsd,IACtC,OACF,MAAMtK,EAAI6K,MAAMC,KAAK7d,GAAG8d,KAAK,MAE7B,IAAI9K,EADJnD,GAAG9P,EAAEud,UAEkBtK,EAAP,MAAhBjT,EAAEge,WAAyBhe,EAAEge,YAAuC,OAApB9K,EAAIpI,EAAEzG,gBAAqB,EAAS6O,EAAEnO,sBAAuB,EAAI2K,EAAEsD,EAAGC,UAK7HgL,GAAKxF,MAAOzY,EAAGC,KAChB,MAAM4K,EAAI7K,EAAE+c,WACZ,IAAKlS,EACH,OACF,IAAIC,EACJ,GAAgB,mBAALD,GAAmBC,EAAID,EAAE5K,GAAI6K,aAAakO,UAAYlO,QAAUA,IAAMA,EAAID,EAAGgT,MAAMK,QAAQpT,KAAOA,EAAI,CAAE0S,MAAO1S,MAAQ,UAAWA,IAAwB,GAAlBA,EAAE0S,MAAM9D,OACzJ,OACO,MAAT5O,EAAEwS,MAAgBxS,EAAEwS,IAAM,GAAa,MAATxS,EAAE6S,MAAgB7S,EAAE6S,IAAM7S,EAAE0S,MAAM9D,QAAS5O,EAAEwS,IAAMxS,EAAE6S,MAAQ7S,EAAEwS,IAAMxS,EAAE6S,KAAoB,MAAd7S,EAAEyS,WAAqBzS,EAAEyS,UAAW,GAC/I,MAAM/N,EAAoB,IAAI4N,IAAO3N,EAAIxP,EAAE6Z,SAAUpK,EAAoBpN,EAAEwa,GAAI,CAAEC,WAAYjS,EAAGkS,aAAcxN,EAAGyN,KAAMxN,UACjHxP,EAAEke,cAAczO,IACrB0O,GAAK3F,MAAOzY,EAAGC,KAChB,MAAM4K,EAAI7K,EAAEqe,SACZ,IAAKxT,EACH,OACF,MAAMC,EAAID,EAAE5K,GACZ,OAAO6K,aAAakO,cAAgBlO,EAAIA,GACvCwT,GAAK7F,MAAOzY,EAAGC,EAAG4K,KACnB,MAAMC,EAAI9K,EAAEgc,QACZ,IAAKlR,EACH,OACF,GAAgB,iBAALA,EAET,YADa,KAAbA,EAAEyT,SAAkB1T,QAAU5K,EAAEue,sBAAsB1T,SAAW7K,EAAEke,cAAcrT,KAGnF,IAAI0E,EAAI1E,EAAE7K,GACVuP,aAAawJ,UAAYxJ,QAAUA,GAAgB,iBAALA,GAA8B,KAAbA,EAAE+O,SAAkB1T,QAAU5K,EAAEue,sBAAsBhP,SAAWvP,EAAEke,cAAc3O,KAC/IiP,GAAK,EACNC,QAAS1e,EACTid,KAAMhd,MAEN,IAAIiS,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,EACnB,MAAQjI,SAAUO,GAAMH,KAAOwE,OAAQpE,GAAMuE,KAAO8J,MAAO3J,GAAM8J,KAAQ4D,iBAAkBzN,GAAM0N,MAAOzN,EAAGC,GAAK4B,EAAE,KAAM3B,EAAGC,GAAK0B,GAAE,GAAKzB,EAAI,CACzIvN,OAAQqN,EAAI,QAA2B,OAAlBsC,EAAIrH,EAAExJ,cAAmB,EAAS6Q,EAAEtQ,6BAA+B,UACxFwZ,MAA0B,OAAlBjJ,EAAItH,EAAExJ,cAAmB,EAAS8Q,EAAE7Q,aAC5C+Z,YAAgC,OAAlBjJ,EAAIvH,EAAExJ,cAAmB,EAAS+Q,EAAE9Q,aAClD8a,gBAAiB,UACdtR,EAAEe,gBACJzL,EAAI,CACLgb,MAAO,OACPC,YAAgC,OAAlBhJ,EAAIxH,EAAExJ,cAAmB,EAASgR,EAAE/Q,aAClD8a,gBAAoC,OAAlB9J,EAAIzH,EAAExJ,cAAmB,EAASiR,EAAEhR,gBACnDwJ,EAAEgB,uBAEP6Q,EAAE,KACAnN,EAAEkK,OAAS,GAAKlK,EAAEA,EAAEkK,OAAS,KAAOzZ,GAAK4P,GAAG7P,EAAEud,WAC7C,CAAC/N,IAYJ,OAAuBlN,EAAE,MAAO,CAAE0N,UAAW,0BAA8C,OAApBuC,EAAI1H,EAAE5E,YAAsBsM,EAAExP,WAAa,qBAAuB,IAAMD,SAAU9C,EAAEwd,MAAMtN,IAAI,CAACsC,EAAGC,KACvK,MAAMC,EAAIhD,EAAE+C,KAAO7C,EACnB,OAAuBtN,EACrB,MACA,CACE0N,UAAW,cACXpR,MAAO8T,EAAItS,EAAI0P,EACfwL,aAAc,IAlBV,CAAC9I,IACT7C,EAAG8C,IACD,MAAMC,EAAI,IAAID,GACd,OAAOC,EAAEF,IAAK,EAAIE,KAeIvC,CAAEsC,GACtB8I,aAAc,IAdb,CAAC/I,IACN7C,EAAG8C,IACD,MAAMC,EAAI,IAAID,GACd,OAAOC,EAAEF,IAAK,EAAIE,KAWIT,CAAEQ,GACtB+I,YAAc7I,IACZ,IAAIE,EACJ,GAAIF,EAAE8I,iBAAkB7L,EACtB,OAEF,IAAIgD,EADJ/C,GAAG7P,EAAEud,UAEkB3K,EAAP,MAAhB5S,EAAEge,WAAyBhe,EAAEge,YAAuC,OAApBnL,EAAIhI,EAAExG,gBAAqB,EAASwO,EAAE/N,oBAAqB,EAAI2K,EAAE+C,EAAGI,IAEtH9P,SAAU0P,GAEZA,QAGHmM,GAAKlG,MAAOzY,EAAGC,KAChB,MAAM4K,EAAI7K,EAAE0e,QACZ,IAAK7T,EACH,OACF,IAAIC,EACJ,GAAgB,mBAALD,GAAmBC,EAAID,EAAE5K,GAAI6K,aAAakO,UAAYlO,QAAUA,IAAMA,EAAID,EAAGgT,MAAMK,QAAQpT,KAAOA,EAAI,CAAE0S,MAAO1S,MAAQ,UAAWA,IAAwB,GAAlBA,EAAE0S,MAAM9D,OACzJ,OACY,MAAd5O,EAAEyS,WAAqBzS,EAAEyS,UAAW,GACpC,MAAM/N,EAAIvP,EAAE6Z,SAAUrK,EAAoBnN,EAAEmc,GAAI,CAAEC,QAAS5T,EAAGmS,KAAMzN,UAC9DvP,EAAEke,cAAc1O,IAYrBmP,GAAKnG,MAAOzY,EAAGC,KAChB,MAAM4K,EAAI7K,EAAE6e,UACZ,GAAIhU,EAAG,CACL,GAAgB,mBAALA,EAAiB,CAC1B,IAAIC,EAAID,EAAE5K,GACV,GAAI6K,aAAakO,UAAYlO,QAAUA,IAAKA,EAC1C,OAEF,kBADM7K,EAAEke,cAAcrT,EAExB,OACM7K,EAAEke,cAActT,EACxB,GACCiU,GAAKrG,MAAOzY,EAAGC,EAAG4K,EAAGC,KACtB,MAAM0E,EAAIxP,EAAE+e,WACZ,IAAItP,EACJ,GAAgB,mBAALD,GAAmBC,EAAID,EAAEvP,GAAIwP,aAAauJ,UAAYvJ,QAAUA,IAAMA,EAAID,EAAe,iBAALC,IAAkBA,EAAI,CAAEuP,SAAUvP,KAAOA,GAAKA,aAAauJ,SAAyB,MAAdvJ,EAAEuP,UAAyC,iBAAdvP,EAAEuP,SAClM,OACiB,MAAnBvP,EAAEwP,gBAA0BxP,EAAEwP,eAAgB,GAC9C,MAAMvP,EAAIwP,WAAWzG,UACnB,MAAM9I,QAAU7E,EAAE9K,GAClB2P,SAAWwP,GAAGxP,EAAG1P,IAChBwP,EAAEuP,UACLvP,EAAEwP,gBAAkBpU,EAAEJ,QAAUiF,IAC/B0P,GAAK3G,MAAOzY,EAAGC,EAAG4K,KACnB,MAAMC,EAAI9K,EAAEqf,aACZ,GAAS,MAALvU,EACF,OACF,IAAI0E,EACQ,mBAAL1E,GAAmB0E,EAAI1E,EAAE7K,GAAIuP,aAAawJ,UAAYxJ,QAAUA,IAAMA,EAAI1E,EAAGD,EAAE2E,IACrF8P,GAAK7G,MAAOzY,EAAGC,EAAG4K,KACnB,MAAMC,EAAI9K,EAAEuf,YACZ,IAAKzU,EAEH,YADAD,GAAE,GAGJ,IAAI2E,EACQ,mBAAL1E,GAAmB0E,EAAI1E,EAAE7K,GAAIuP,aAAawJ,UAAYxJ,QAAUA,IAAMA,EAAI1E,EAAGD,EAAE2E,IA2BrF2P,GAAK1G,MAAOzY,EAAGC,KAChB,IAAKD,EACH,MAAM,IAAIwf,MAAM,uBAClB,MAAM3U,EAAI4U,OAAOC,KAAK1f,GACtB,IAAK,MAAM8K,KAAKD,EACR,aAANC,SAA0BsT,GAAGpe,EAAGC,GAClC4K,EAAE8U,SAAS,cAhFLlH,OAAOzY,EAAGC,KAChB,MAAM4K,EAAI7K,EAAEid,KACZ,IAAKpS,EACH,OAAO,EACT,GAAgB,iBAALA,EACT,aAAa5K,EAAE2f,SAAS/U,IAAI,EAC9B,IAAIC,EAAID,EAAE5K,GACV,GAAI6K,aAAakO,UAAYlO,QAAUA,IAAKA,EAC1C,OAAO,EACT,MAAM0E,EAAI1E,EACV,aAAa7K,EAAE2f,SAASpQ,IAAI,GAsEAqQ,CAAG7f,EAAGC,IACjC6f,GAAK,KACN,IAAIjV,EACJ,MAAQP,SAAUtK,GAAM0K,KAAOwE,OAAQjP,GAAMoP,IAC7C,OAAuB/M,EAAE,MAAO,CAAE0N,UAAW,2BAA4BlN,SAA0BR,EACjG,MACA,CACE1D,MAAO,IAAKqB,EAAEoM,2BACd2D,UAAW,sBACX,cAAe,+BACflN,SAAiC,OAAtB+H,EAAI7K,EAAE8D,kBAAuB,EAAS+G,EAAE1G,8BAGtD4b,GAAK,KACN,IAAIjV,EACJ,MAAQR,SAAUtK,GAAM0K,KAAOwE,OAAQjP,GAAMoP,IAAKxE,EAAI,CACpDmV,UAAW,aAAgC,OAAlBlV,EAAI9K,EAAEqB,cAAmB,EAASyJ,EAAExJ,kBAC1DrB,EAAEwM,qBAEP,OAAuBnK,EAAE,MAAO,CAAE0N,UAAW,wBAAyBlN,SAA0BR,EAAE,MAAO,CAAE1D,MAAOiM,EAAGmF,UAAW,mBAC/HiQ,GAAK,KACN,IACE,UAAWC,OAAS,KAAmC,mBAArBA,OAAOC,WACvC,OAAOD,OAAOC,aAChB,MAAM,IAAIX,MAAM,kCAClB,CAAE,MAAOxf,GACP,UAAWkgB,OAAS,KAAwC,mBAA1BA,OAAOE,gBACvC,MAAO,uCAAuCC,QAAQ,QAAS,SAASpgB,GACtE,MAAM4K,EAAIqV,OAAOE,gBAAgB,IAAIE,WAAW,IAAI,GAAK,GACzD,OAAc,MAANrgB,EAAY4K,EAAQ,EAAJA,EAAQ,GAAG0V,SAAS,GAC9C,GACF,MAAMC,QAAQC,MAAMzgB,GAAI,IAAIwf,MAAM,+CACpC,GACCkB,GAAK,CAAC1gB,EAAGC,KAAC,CACX0gB,GAAIV,KACJ/D,QAASlc,EACT4c,OAAQ3c,EACRnB,KAAkB,iBAALkB,EAAgB,SAAW,SACxC4gB,WAAW,IAAqBC,MAAQC,cACxCC,KAAM,KAER,IAAIC,GAAIC,IAAK,EAAIC,GAAK,cAAeC,GAAK,GAAIC,IAAK,EAAIC,GAAK,GAC5D,MAuBGC,GAAK,IAAMD,GAAIE,GAAMvhB,IACtBwhB,GAAGxhB,GAAIqhB,GAAKrhB,GACXwhB,GAAMxhB,IACPghB,IAAMA,GAAGS,QAAQP,GAAIQ,KAAKC,UAAU3hB,KAGnC4hB,GAAM5hB,IACP,IAAIC,EAAG4K,EAAGC,EAAG0E,EAAGC,EACwGuR,GAApB,qBAArC,OAA7DnW,EAA2B,OAAtB5K,EAAID,EAAE8D,kBAAuB,EAAS7D,EAAEgE,kBAAuB,EAAS4G,EAAEgS,eAA4CgF,eAAsBC,aAAcZ,GAA4B,OAAtBpW,EAAI9K,EAAE8D,kBAAuB,EAASgH,EAAE9G,WAAYmd,GAA4B,OAAtB3R,EAAIxP,EAAE8D,kBAAuB,EAAS0L,EAAEzL,WAAYqd,GAA4B,OAAtB3R,EAAIzP,EAAE8D,kBAAuB,EAAS2L,EAAErM,SAAUie,GAhBvU,CAACrhB,IACP,GAAS,MAALA,EACF,IACE,OAAO0hB,KAAKK,MAAM/hB,EACpB,CAAE,MACA,MAAO,EACT,CACF,MAAO,IAS2UgiB,CAAGhB,GAAGiB,QAAQf,MAC/VgB,GAAMliB,GAAMiQ,EAAGjQ,EAAEkc,SAAWiG,gBAAgB,CAC7CxB,GAAI3gB,EAAE2gB,GACNzE,QAASkG,EAAGC,eAAeriB,EAAEkc,SAC7Bpd,KAAMkB,EAAElB,KACR8d,OAAQ5c,EAAE4c,OAAOC,cACjB+D,UAAW5gB,EAAE4gB,UACbG,KAAM/gB,EAAE+gB,OACL/gB,EA2BFsiB,GAAK,CAACtiB,EAAGC,EAAG4K,KACb,MAAM2E,GAAI,IAAI+S,WAAYC,gBAAgBxiB,EAAG,aAC7C,OAAO6d,MAAMC,KAAKtO,EAAEiT,KAAKC,YAAYxS,IAAI,CAACP,EAAGC,KAC3C,IAAIC,EACJ,GAAIF,EAAEgT,WAAaC,KAAKC,UACtB,OAAOlT,EAAEmT,YACX,CACE,MAAMhT,EAAIH,EAAEoT,QAAQC,cACpB,IAAI5iB,EAAIyd,MAAMC,KAAKnO,EAAEsT,YAAYC,OAAO,CAACjR,EAAGC,KAC1C,MAAMC,EAAID,EAAEiR,KAAKH,cACjB,GAAU,UAAN7Q,EAAe,CACjB,MAAMC,EAAIF,EAAElH,MAAMoY,MAAM,KAAKC,OAAQ/Q,GAAmB,KAAbA,EAAEiM,QAAgBlM,EAAI,CAAA,EACjED,EAAEkR,QAAShR,IACT,MAAOC,EAAGC,GAAKF,EAAE8Q,MAAM,KAAKlT,IAAKwC,GAAMA,EAAE6L,QAAS9L,EAAIF,EAAE8N,QAAQ,YAAa,CAAC3N,EAAGC,IAAMA,EAAEkK,eACzFxK,EAAEI,GAAKD,IACLP,EAAEE,GAAKE,CACb,KAAc,UAANvC,GAAuB,UAANA,GAAwB,aAANqC,GAAgC,KAAZD,EAAElH,MAA+BiH,EAAEE,GAAKD,EAAElH,MAAzBiH,EAAEE,GAAK,OACvF,OAAOF,GACN,CAAA,GACH,GAAIwN,OAAO8D,UAAUC,eAAeC,KAAKrjB,EAAG,SAAU,CACpD,MAAM6R,EAAItC,EAAE+T,UACZtjB,EAAE4P,UAAYiC,EAAEsO,kBAAmBngB,EAAEujB,MAA4B,OAApB9T,EAAI5P,EAAEgG,YAAsB4J,EAAE9M,aAAe3C,EAAIwjB,GAAG3R,EAAG7R,IAAKA,EAAIyjB,GAAG5R,EAAG7R,EAAGH,EAAG4K,GAAIzK,EAAI0jB,GAAG7R,EAAG7R,EAAGH,EAAG4K,GAAIzK,EAAI2jB,GAAG9R,EAAG7R,EAAGH,EAAG4K,GAAIzK,EAAI4jB,GAAG/R,EAAG7R,EAAGH,EAAG4K,EACvL,CACA,GAAI,CACF,OACA,OACA,KACA,MACA,QACA,KACA,MACA,QACA,OACA,OACA,SACA,QACA,OACA8U,SAAS7P,GACT,OAAOmU,EAAGnU,EAAG,CAAEoU,IAAKtU,KAAMxP,IAC5B,CACE,MAAM6R,EAAIqQ,GAAG3S,EAAEwU,UAAWlkB,EAAG4K,GAC7B,OAAOoZ,EAAGnU,EAAG,CAAEoU,IAAKtU,KAAMxP,MAAQ6R,EACpC,CACF,KAED2R,GAAK,CAAC5jB,EAAGC,MAAQD,EAAEokB,SAAS,0BAA4BpkB,EAAEokB,SAAS,6BAA+BnkB,EAAE+P,UAAY,GAAGhQ,EAAEugB,iCAAkCtgB,GAAI4jB,GAAK,CAAC7jB,EAAGC,EAAG4K,EAAGC,KAC3K,IAAI0E,EAAGC,EAAGC,EAAGC,EAAGC,EAChB,OAAO5P,EAAEokB,SAAS,iBAAmBnkB,EAAErB,MAAQ,IAC1CqB,EAAErB,MACLwc,OAAkC,OAAzB5L,EAAI1E,EAAEe,qBAA0B,EAAS2D,EAAE4L,SAA8B,OAAlB3L,EAAI5E,EAAExJ,cAAmB,EAASoO,EAAEnO,cACpG+Z,aAAwC,OAAzB3L,EAAI5E,EAAEe,qBAA0B,EAAS6D,EAAE0L,SAA8B,OAAlBzL,EAAI9E,EAAExJ,cAAmB,EAASsO,EAAErO,cAC1GiB,OAAQ,QAA2B,OAAlBqN,EAAI/E,EAAExJ,cAAmB,EAASuO,EAAEhO,gCAClDkJ,EAAEe,iBACH5L,GACH6jB,GAAK,CAAC9jB,EAAGC,EAAG4K,EAAGC,KAChB,IAAI0E,EAAGC,EAAGC,EAAGC,EAAGC,EAChB,OAAO5P,EAAEokB,SAAS,gCAAkCnkB,EAAErB,MAAQ,IACzDqB,EAAErB,MACLwc,OAAuC,OAA9B5L,EAAI1E,EAAEiB,0BAA+B,EAASyD,EAAE4L,SAA8B,OAAlB3L,EAAI5E,EAAExJ,cAAmB,EAASoO,EAAEnO,cACzG+Z,aAA6C,OAA9B3L,EAAI5E,EAAEiB,0BAA+B,EAAS2D,EAAE0L,SAA8B,OAAlBzL,EAAI9E,EAAExJ,cAAmB,EAASsO,EAAErO,cAC/GiB,OAAQ,QAA2B,OAAlBqN,EAAI/E,EAAExJ,cAAmB,EAASuO,EAAEhO,gCAClDkJ,EAAEiB,sBACH9L,GACH8jB,GAAK,CAAC/jB,EAAGC,EAAG4K,EAAGC,KAChB,IAAI0E,EAAGC,EAAGC,EAAGC,EAAGC,EAChB,OAAO5P,EAAEokB,SAAS,8BAAgCnkB,EAAErB,MAAQ,IACvDqB,EAAErB,MACLwc,OAAwC,OAA/B5L,EAAI1E,EAAEkB,2BAAgC,EAASwD,EAAE4L,SAA8B,OAAlB3L,EAAI5E,EAAExJ,cAAmB,EAASoO,EAAEnO,cAC1G+Z,aAA8C,OAA/B3L,EAAI5E,EAAEkB,2BAAgC,EAAS0D,EAAE0L,SAA8B,OAAlBzL,EAAI9E,EAAExJ,cAAmB,EAASsO,EAAErO,cAChHiB,OAAQ,QAA2B,OAAlBqN,EAAI/E,EAAExJ,cAAmB,EAASuO,EAAEhO,gCAClDkJ,EAAEkB,uBACH/L,GACH+jB,GAAK,CAAChkB,EAAGC,EAAG4K,EAAGC,KAChB,IAAI0E,EAAGC,EACP,OAAQzP,EAAEokB,SAAS,sCAAwCpkB,EAAEokB,SAAS,wCAA0CnkB,EAAErB,MAAQ,IACrHqB,EAAErB,MACLwd,gBAAoC,OAAlB5M,EAAI3E,EAAExJ,cAAmB,EAASmO,EAAElO,aACtD+a,SAAgC,OAArB5M,EAAI5E,EAAEhF,aAAuB4J,EAAE1M,WAAa,MAAQ,SAC5D+H,EAAE4B,6BACHzM,GACHokB,GAAK,KACN,MAAQ/Z,SAAUtK,GAAM0K,KACtBqK,uBAAwB9U,EACxB+U,gCAAiCnK,EACjCkL,kBAAmBjL,EACnBqL,YAAa3G,EACb4G,eAAgB3G,EAChBwF,gCAAiCvF,GAC/B+B,KAAQN,eAAgBxB,EAAGuB,gBAAiBtB,EAAGwB,YAAavB,GAAMS,KAAOsJ,iBAAkB9J,GAAM0J,KAAMpZ,EAAIqZ,EAAEhB,UAC/G,IAAIpG,EAAGC,EACP,MAAMJ,EAA4B,OAAvBG,EAAIrS,EAAEmD,mBAAwB,EAASkP,EAAE7O,MACpDoM,EAAEnF,QAAU,IAAI6Z,aAChB,MAAMnS,EAAIvC,EAAEnF,QAAQ8Z,aAEpB,IAAInS,EACJ,GAFAD,EAAEqS,KAAKxZ,OAAiC,OAAvBsH,EAAItS,EAAEmD,mBAAwB,EAASmP,EAAEhP,SAAW,GAAKuM,EAAEpF,QAAU0H,EAE7E,MAALD,GAAaA,EAAEuS,WAAW,cAAe,CAC3C,MAAMlS,EAAImS,KAAKxS,EAAEkR,MAAM,KAAK,IAAK5Q,EAAI,IAAImS,YAAYpS,EAAEmH,QAASjH,EAAI,IAAI6N,WAAW9N,GACnF,IAAK,IAAIE,EAAI,EAAGA,EAAIH,EAAEmH,OAAQhH,IAC5BD,EAAEC,GAAKH,EAAEqS,WAAWlS,GACtBN,EAAII,CACN,MACEJ,cAAiByS,MAAM3S,IAAI4S,cAC7BnV,EAAElF,cAAgBmF,EAAEnF,QAAQsa,gBAAgB3S,IAC3C,CAACpS,EAAEmD,eAAgBgN,EAAIsJ,EAAE,KAC1B,IAAItH,EACJ,GAA4B,OAAvBA,EAAInS,EAAEmD,eAAyBgP,EAAE/O,WAAasM,EAAEjF,UAAYK,IAAM8E,EAAEnF,UAAYkF,EAAElF,QACrF,OACF,MAAMyH,EAAItC,EAAEnF,QAAQua,qBACpB9S,EAAE+S,OAAStV,EAAElF,QAASyH,EAAEgT,QAAQrV,EAAEpF,SAASya,QAAQtV,EAAEnF,QAAQ0a,aAAcjT,EAAEkT,SAC5E,CACDplB,EAAEmD,aACFuM,EACA5E,EACA8E,EACAD,EACAE,IAWF,MAAO,CACLsG,YAAa3G,EACb4G,eAAgB3G,EAChBsF,uBAAwB9U,EACxBolB,oBAdM5L,EAAEhB,MAAOvG,IACf,IAAIC,EACJD,IAAMxC,EAAEjF,UAA6B,OAAhB0H,EAAInS,EAAE6H,QAAkBsK,EAAExJ,+BAAiCmH,EAC9E+G,EAAEG,qBACF,CACEyD,UAAW/K,EAAEjF,QACbiQ,UAAWhL,EAAEjF,WAEdkQ,kBAAoB9P,EAAGuH,IAAOA,KAChC,CAAC1C,IAMF4V,sBAAuBnV,EACvBoV,mBAAoBnlB,IAkBrBolB,GAAK,CAACxlB,EAAGC,KACV,IAAI4K,EAAGC,EAAG0E,EAAGC,EAjBP,EAACzP,EAAGC,EAAG4K,EAAGC,EAAG0E,KACnB,IAAK5M,OAAO6iB,yBAEV,YADAjF,QAAQkF,KAAK,8DAGf,MAAMjW,EAAI,IAAI7M,OAAO6iB,yBACrBhW,EAAExN,KAAOjC,EAAGyP,EAAEkW,KAAO1lB,EAAGwP,EAAE5L,KAAOiH,EAAG2E,EAAEnM,OAASkM,EAC/C,IAAIE,GAAI,EACR,IAAK,MAAMC,KAAK9E,EAAG,CACjB,MAAM+E,EAAIhN,OAAOgjB,gBAAgBC,YAAYC,KAAMjW,GAAMA,EAAEsT,OAASxT,GACpE,GAAIC,EAAG,CACLH,EAAEvJ,MAAQ0J,EAAGhN,OAAOgjB,gBAAgBG,MAAMtW,GAAIC,GAAI,EAClD,KACF,CACF,CACAA,GAAK9M,OAAOgjB,gBAAgBG,MAAMtW,IAGlCuW,CACE/lB,EACiB,OAAhB4K,EAAI7K,EAAE0D,YAAiB,EAASmH,EAAElH,SAClB,OAAhBmH,EAAI9K,EAAE0D,YAAiB,EAASoH,EAAElH,WAClB,OAAhB4L,EAAIxP,EAAE0D,YAAiB,EAAS8L,EAAE3L,KAClB,OAAhB4L,EAAIzP,EAAE0D,YAAiB,EAAS+L,EAAEnM,SAEpC2iB,GAAK,KACN,MAAQ3b,SAAUtK,GAAM0K,KAAO+J,eAAgBxU,EAAGyU,wBAAyB7J,EAAG8J,wBAAyB7J,GAAM2G,KAAQmI,iBAAkBpK,GAAMgK,KAAM/J,EAAIgK,EAAEhB,MAAO9I,IAC9J,IAAIC,EACJD,IAAM7E,EAAEL,UAA6B,OAAhBmF,EAAI5P,EAAE6H,QAAkB+H,EAAElH,uBAAyB8G,EACtEqH,EAAEE,aACF,CACE0D,UAAW3P,EAAEL,QACbiQ,UAAW5P,EAAEL,WAEdkQ,kBAAoB9P,EAAGgF,IAAOA,KAChC,CAAC/E,IAAK4E,EAAI+J,EAAEhB,MAAO9I,IACpB,IAAIE,EAAGC,EACP,GAAqB,OAAhBD,EAAI7P,EAAE0D,QAAkBmM,EAAEzM,WAAa0H,EAAEL,QAC5C,OACF,IAAImF,EAAID,EACR,GAAqB,OAAhBG,EAAI9P,EAAE6H,QAAkBiI,EAAErH,mBAAoB,CACjD,MAAMrI,QAAUoP,EAAEqH,EAAEC,kBAAmB,CAAEoP,WAAYtW,IACrD,GAAIxP,EAAEua,iBACJ,OACF/K,EAAIxP,EAAEyY,KAAKqN,UACb,CACAV,GAAGxlB,EAAG4P,IACL,CAAC5P,EAAG8K,IACP,MAAO,CACL2J,eAAgBxU,EAChBkmB,WAAYzW,EACZ0W,YAAa3W,IAEd4W,GAAK,KACN,IAAIxT,EAAGC,EAAGC,EACV,MAAQzI,SAAUtK,GAAM0K,KAAOiR,SAAU1b,EAAG2b,kBAAmB/Q,EAAGgR,kBAAmB/Q,GAAMgR,MACzF1H,qBAAsB5E,EACtB4G,eAAgB3G,EAChB+F,qBAAsB9F,EACtB8E,0BAA2B7E,GACzB8B,KAAQX,iBAAkBlB,EAAGmB,YAAalB,EAAGmB,eAAgBlB,GAAMQ,KAAO2K,eAAgB7a,EAAG8a,oBAAqB/K,GAAM6J,MAAQJ,iBAAkB3H,GAAMuH,MAAQ2M,WAAYjU,GAAM+T,MAAQX,sBAAuBnT,GAAMkS,KAAMjS,EAAIqH,EAAEhB,MAAOzF,IAC5O,IAAIC,EAAGC,EACP,GAAqB,OAAhBD,EAAIjT,EAAE6H,QAAkBoL,EAAE3K,mBAAoB,CACjD,MAAM6K,QAAUlB,EAAE4E,EAAEc,kBAAmB,CAAEgE,SAAU3I,IACnD,GAAIG,EAAEwH,iBACJ,OACF3H,GAAqB,OAAfE,EAAIC,EAAE0F,WAAgB,EAAS3F,EAAEyI,WAAa3I,CACtD,MA3QOyF,OAAOzY,IAChB,GAAIohB,KAAOJ,GACT,OACF,MAAM/gB,EAAI,GACV,IAAK,IAAI6K,EAAI9K,EAAE0Z,OAAS,EAAG5O,GAAK,EAAGA,IAAK,CACtC,MAAM0E,EAAIxP,EAAE8K,GACZ,GAA+B,WAA3B0E,EAAEoN,OAAOC,gBAA6C,KAAdrN,EAAE0M,SAAkBjc,EAAEqmB,QAAQ9W,GAAIvP,EAAEyZ,SAAWyH,IACzF,KACJ,CACA,IAAItW,EAAI5K,EAAEiQ,IAAIgS,IACd,IAAKjB,IAAMpW,EAAE6O,OAASyH,GAAI,CACxB,MAAMrW,EAAIqW,GAAKtW,EAAE6O,OACjB7O,EAAI,IAAIwW,GAAGkF,OAAOzb,MAAOD,EAC3B,CACA2W,GAAG3W,IA8PK2b,CAAGxT,IACR,CAACf,EAAoB,OAAhBY,EAAI7S,EAAE6H,YAAiB,EAASgL,EAAEvK,qBAAsB+J,EAAIoH,EAAE,CAACzG,EAAGC,GAAI,KAC5E,IAAII,EAAGC,EACPlB,EAAEY,GACF,IAAIE,GAAI,EACR,MAAMC,EAAIH,EAAEA,EAAE0G,OAAS,GACvB,IAAKvG,EACH,OACF,MAAMC,EAAID,EAAEyJ,OAAOC,cACb,SAANzJ,IAAiBF,GAAI,GAAwB,OAAlBG,EAAIrT,EAAEqB,UAAoBgS,EAAExR,UAAYsO,MAAQ+C,GAAI,IAAMvD,EAAElF,UAAYiF,EAAEjF,SAAWwI,KAAOC,GAAI,GAAKA,GAAKf,KAAMc,IAAY,SAANG,GAAuC,OAArBE,EAAItT,EAAEgF,aAAuBsO,EAAEnO,kBAA2B,SAANiO,IAAiB1D,EAAEjF,UAAYyU,WAAW,IAAM9e,IAAK,IAC3Q,CACDJ,EACA6P,EACAF,EACAD,EACAyC,EACA/R,EACA+P,IACEmC,EAAImH,EAAEhB,MAAOzF,EAAGC,EAAI,MAAOC,EAAI,QACjC,IAAIQ,EAAGC,EAAGC,EAAGC,EAAGG,EAChB,GAAgB,iBAALhB,EACT,MAAM,IAAIwM,MAAM,sDAClBvM,EAAIA,EAAE4J,cACN,IAAI1J,EAAIuN,GAAG1N,EAAGC,GACd,GAAqB,OAAhBS,EAAI1T,EAAE6H,QAAkB6L,EAAE1L,8BAA+B,CAC5D,MAAMiM,QAAUhC,EACd4E,EAAEQ,8BACF,CAAE2E,QAAS7I,IAEb,GAAIc,EAAE0G,iBACJ,OAAO,KACTzH,EAAIe,EAAE4E,KAAK4N,uBAAyBvT,EAAGC,EAAIc,EAAE4E,KAAKmD,OACpD,CACAxM,GAAE,GACF,IAAI4D,EAAI,GACMA,EAAR,QAANH,EAAuC,OAApBU,EAAI3T,EAAEiG,gBAAqB,EAAS0N,EAAE3N,YAAwC,OAArB4N,EAAI5T,EAAE6F,iBAAsB,EAAS+N,EAAE5N,YACnH,MAAMqN,EAAI,IAAKF,EAAG+I,QAAS,IAC3BrR,EAAGoJ,GAAM,IAAIA,EAAGZ,IAAKhB,EAAEvH,EAAEL,SACzB,IAAI6I,EAAIH,EAAE+I,QACVhJ,IAAMI,EAAIJ,EAAEI,IACZ,IAAIC,EAAI,EACR,MAAMC,EAAIF,EAAEoG,OACe,QAA3BvG,EAAEyJ,OAAOC,gBAA4BlN,EAAElF,SAA8B,OAAlBoJ,EAAI7T,EAAEqB,UAAoBwS,EAAEhS,WAAiC,iBAAbsR,EAAE+I,SAA4C,KAArB/I,EAAE+I,QAAQqC,QAAiBrM,EAAEiB,EAAE+I,SAC3J,MAAMzI,EAAI,IAAIuF,QAAS/E,IACrB,MAAMtC,EAAK+U,YAAY,KACrB,GAAInT,GAAKC,EAEP,OADAmT,cAAchV,QAAKsC,IAGrBpJ,EAAG+G,IACD,MAAMC,EAAK,IAAID,GACf,IAAK,IAAIE,EAAKD,EAAG6H,OAAS,EAAG5H,GAAM,EAAGA,IACpC,GAAID,EAAGC,GAAI6O,KAAOtN,EAAEsN,GAAI,CACtB,MAAM5O,EAAKuB,EAAEC,GACbxB,IAAOsB,EAAE6I,SAAWnK,EAAIF,EAAGC,GAAMuB,GAAIE,IACrC,KACF,CACF,OAAO1B,KAERuB,KAEL,OAAQ1D,EAAEjF,UAAYkF,EAAElF,UAAYgF,EAAGwE,GAAMA,EAAI,SAAUR,EAAGrB,EAAEtH,EAAEL,SAA4B,OAAjBuJ,EAAKhU,EAAE6H,QAAkBmM,EAAG/L,oCAAsCgK,EAAE4E,EAAES,6BAA8B,CAAE0E,QAAS7I,IAAY,SAANF,IAAiBnD,EAAErF,QAAUuI,GAAIG,GAClO,CACDnT,EACAiS,EACAI,EACAvH,EACAgF,EACAN,EACAC,EACAE,EACAuC,IACEK,EAAIkH,EAAEhB,MAAOzF,EAAGC,EAAI,SACtB,IAAIE,EAAGC,EAAGC,EACVJ,EAAIA,EAAE4J,cACN,IAAI3J,EAAIwN,GAAG1N,EAAGC,GACd,GAAqB,OAAhBE,EAAInT,EAAE6H,QAAkBsL,EAAErL,oBAAqB,CAClD,MAAMwL,QAAUrB,EAAE4E,EAAEM,mBAAoB,CAAE6E,QAAS9I,IACnD,GAAII,EAAEqH,iBACJ,OAAO,KACTzH,EAAII,EAAEuF,KAAKmD,OACb,CACA,MAAkC,QAA3B9I,EAAE0J,OAAOC,gBAA4BlN,EAAElF,SAA8B,OAAlB2I,EAAIpT,EAAEqB,UAAoB+R,EAAEvR,WAAiC,iBAAbqR,EAAEgJ,SAA4C,KAArBhJ,EAAEgJ,QAAQqC,QAAiBrM,EAAEgB,EAAEgJ,UAAWxM,EAAEjF,UAAYkF,EAAElF,UAAYgF,EAAG6D,GAAMA,EAAI,GAAqB,OAAhBD,EAAIrT,EAAE6H,QAAkBwL,EAAEtL,4BAA8BkK,EAAE4E,EAAEO,oBAAqB,CAAE4E,QAAS9I,IAAMrI,EAAGyI,GAAM,IAAIA,EAAGJ,IAAKb,EAAEvH,EAAEL,SAAgB,SAANwI,GAA4B,iBAALD,IAAkBlD,EAAErF,QAAUuI,GAAIE,GACxZ,CACDlT,EACAiS,EACAI,EACAvC,EACAhF,EACA6E,EACAuC,EACAzC,IACE+C,EAAIiH,EAAEhB,MAAOzF,IACf,IAAII,EACJ,IAAIH,EAAInI,EAAEL,QAAQqb,KAAMzS,GAAMA,EAAEsN,KAAO3N,GAAIE,EAAI,KAAMC,GAAI,EACzD,OAAOF,IAAMC,EAAIoO,KAAMrO,EAAIC,EAAE4S,KAAMzS,GAAMA,EAAEsN,KAAO3N,GAAIC,IAAME,GAAI,KAAOF,GAAsB,OAAhBG,EAAIpT,EAAE6H,QAAkBuL,EAAE/K,yBAA2B4J,EAAE4E,EAAEa,eAAgB,CAAEsE,QAAS/I,KAAM0H,iBAAmB,KAAOxH,GAAKD,GAAKqO,GAAGrO,EAAEmQ,OAAQhQ,GAAMA,EAAEsN,KAAO3N,IAAKC,IAAMpI,EAC/OwI,GAAMA,EAAEgQ,OAAQ/P,GAAMA,EAAEqN,KAAO3N,IAC/BX,EAAEvH,EAAEL,SAAUgF,EAAG4D,GAAMuT,KAAKjJ,IAAItK,EAAI,EAAG,IAAKJ,IAC9C,CACDhB,EACiB,OAAhBa,EAAI9S,EAAE6H,YAAiB,EAASiL,EAAEzK,iBACnCgK,EACAvH,EACA2E,EACA6R,GACAC,KACE9O,EAAIgH,EAAEhB,MAAOzF,EAAGC,EAAI,SACtB,IAAIE,EAAGC,EACP,GAAIH,EAAIA,EAAE4J,eAAgBjN,EAAEnF,QAAQgT,IAAIxK,GAAI,CAC1C,MAAMI,EAAIqN,GAAG1N,EAAGC,GAChB,OAAwB,OAAhBE,EAAInT,EAAE6H,QAAkBsL,EAAEjL,8BAAgC+J,EAAE4E,EAAEU,qBAAsB,CAAEyE,QAAS3I,KAAMsH,iBAAmB,MAAQnL,GAAE,GAAK3E,EAAGyI,GAAM,IAAIA,EAAGD,IAAKhB,EAAEvH,EAAEL,SAAUmF,EAAEnF,QAAQoc,IAAI5T,EAAGI,EAAEsN,KAAMjR,EAAEjF,UAAYkF,EAAElF,UAAYgF,EAAG6D,GAAMA,EAAI,GAAID,EAC1P,CACA,MAAMH,EAAI,IAAKwN,GAAG1N,EAAGC,GAAI0N,GAAI/Q,EAAEnF,QAAQqc,IAAI7T,IAC3C,OAAwB,OAAhBG,EAAIpT,EAAE6H,QAAkBuL,EAAEjL,8BAAgC8J,EAAE4E,EAAEW,qBAAsB,CAAEwE,QAAS9I,KAAMyH,iBAAmB,MAAQ9P,EACrIwI,GAAMA,EAAEnD,IAAKoD,GAAMA,EAAEqN,KAAOzN,EAAEyN,GAAKzN,EAAII,IACvCjB,EAAEvH,EAAEL,SAAS,GAAKyI,IACpB,CACDjB,EACAjS,EAAE6H,MACFwK,EACAvH,EACA0E,EACAC,EACAG,IACE8C,EAAI+G,EAAEhB,MAAOzF,EAAI,SACnB,IAAIG,EACJ,GAAIH,EAAIA,EAAE6J,eAAgBjN,EAAEnF,QAAQgT,IAAIzK,GACtC,OAAO,EACT,MAAMC,EAAIrD,EAAEnF,QAAQqc,IAAI9T,GACxB,IAAIE,EACJ,IAAK,IAAIE,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAC1B,MAAMC,EAAIvI,EAAEL,QAAQqb,KAAMxS,GAAMA,EAAEqN,KAAO1N,GACzCI,IAAMH,EAAIG,SAAU,IAAI2F,QAAS1F,GAAM4L,WAAW5L,EAAG,IACvD,CACA,OAAwB,OAAhBH,EAAInT,EAAE6H,SAAkBsL,EAAE/K,8BAA+B6J,EAAE4E,EAAEY,oBAAqB,CAAEuE,QAAS9I,KAAMyH,oBAAyB/K,EAAEnF,QAAQiT,OAAO1K,GAAIZ,EAAEtH,EAAEL,SAAgB,SAANuI,GAA2D,iBAA9B,MAALE,OAAY,EAASA,EAAEgJ,WAAyBpM,EAAErF,QAAUyI,EAAEgJ,UAAU,IACtQ,CAACjK,EAAoB,OAAhBc,EAAI/S,EAAE6H,YAAiB,EAASkL,EAAE3K,qBAAsBwH,EAAGE,IAAK6C,EAAI8G,EAAGzG,IAC7E,MAAMC,EAAgB,mBAALD,EAAkBA,EAAElI,EAAEL,SAAWuI,EAClDnI,EAAEoI,GAAIZ,EAAEY,IACP,CAACZ,EAAGvH,IAAK8H,EAAI6G,EACd,CAACzG,EAAGC,EAAGC,EAAI,KACT,IAAIK,EACJ,MAAMJ,EAAIrI,EAAEL,QAAS2I,EAAIJ,EAAIA,EAAE6J,cAAgB,KAAMxJ,EAAI,GACzD,IAAIC,EAAIJ,EACR,IAAK,IAAIM,EAAIL,EAAEuG,OAAS,EAAGlG,GAAK,EAAGA,IAAK,CACtC,MAAMC,EAAIN,EAAEK,GACZ,IAAKJ,IAA6C,OAAtCG,EAAS,MAALE,OAAY,EAASA,EAAEmJ,aAAkB,EAASrJ,EAAEsJ,iBAAmBzJ,EAAG,CACxF,GAAIE,EAAI,EAAG,CACTA,IACA,QACF,CACA,GAAID,EAAE0T,KAAKtT,QAAU,IAANR,GAAgBI,EAAEqG,SAAWzG,EAC1C,KACJ,CACF,CACA,OAAOI,EAAEqG,OAAS,EAAIrG,EAAI,MAE5B,CAACvI,IAEH,MAAO,CACL0T,sBAAuBlM,EACvB6L,cAAe5L,EACfyU,cAAexU,EACfyU,cAAexU,EACfyU,iBAAkBxU,EAClByU,gBAAiBxU,EACjByU,YAAaxU,EACb+I,SAAU1b,IAGd,IAAIonB,GAAIC,GAAIC,GAAIC,IAAK,EAAIC,GAAK,KACzB,MAACC,GAAK,KACT,IAAKL,GAAI,CACP,MAAMrnB,EAAI4C,OAAO+kB,mBAAqB/kB,OAAOglB,wBAC7CP,GAAU,MAALrnB,EAAY,IAAIA,EAAM,IAC7B,CACA,OAAOqnB,IAWNQ,GAAK,CAAC7nB,EAAGC,EAAG4K,EAAGC,EAAG0E,EAAGC,KACtB,IAAII,EAAGC,EAAG1P,EACV,MAAMsP,EAAIgY,KACV,IAAKhY,EACH,OACF,IAAK8X,GACH,IACEA,IAAK,EAAI9X,EAAEiW,KAAwB,OAAhB9V,EAAI7P,EAAEkG,YAAiB,EAAS2J,EAAElM,SAAU+L,EAAE0V,OACnE,CAAE,MACF,CACF,MAAMzV,EAAqB,OAAhBG,EAAI9P,EAAEkG,YAAiB,EAAS4J,EAAE3J,cAAeyJ,EAAqB,OAAhBxP,EAAIJ,EAAEkG,YAAiB,EAAS9F,EAAEiG,eACnGqJ,EAAEoY,SAAY3X,IACZ,IAAI+B,EAAGC,EACP4V,aAAaT,IAAKA,GAAK,KAAMS,aAAaR,IAC1C,MAAMtV,EAAI9B,EAAE6X,QAAQ7X,EAAE6X,QAAQtO,OAAS,GAAG,GAAGuO,WAC7C,GAAIxY,EAAEhF,QAAS,CACb,MAAM2H,EAAyB,OAApBF,EAAIlS,EAAEqE,gBAAqB,EAAS6N,EAAExN,eAAgB2N,EAAI5C,EAAEhF,QAAQO,MAAQiH,EAClF,MAALG,GAAaA,GAAK,GAAKC,EAAEqH,OAAStH,EAAItH,EAAEuH,EAAEkU,MAAM,EAAGnU,IAAMtH,EAAEuH,GAAI7C,EAAEC,EAAEhF,QAAQO,MAAM0O,OACnF,CACA/J,IAAM2X,GAAKpI,WAAWzG,eAAkByP,GAAGjoB,EAAGwP,GAAIE,IAAsB,OAAhBwC,EAAInS,EAAEkG,QAAkBiM,EAAE/L,mBAAqBmhB,GAAKrI,WAAWrU,EAAG+E,KACzHF,EAAEyY,MAAQ,KACXX,IAAM9X,EAAE0V,SAAUkC,IAAM3X,IAAM2X,GAAKpI,WAAWzG,eAAkByP,GAAGjoB,EAAGwP,GAAIE,MAAQoY,aAAaT,IAAKA,GAAK,KAAMS,aAAaR,MAC3H5X,IAAM2X,GAAKpI,WAAWzG,eAAkByP,GAAGjoB,EAAGwP,GAAIE,KACpDyY,GAAK,CAACpoB,EAAGC,KACVooB,UAAUC,aAAaC,aAAa,CAAE7kB,OAAO,IAAM8kB,KAAM3d,IACvD,GAAI4c,GAAK,IAAIgB,cAAc5d,IAAK2c,GAC9B,IACEA,IAAK,EAAIC,GAAGrC,OACd,CAAE,MACF,CACFqC,GAAGiB,gBAAmB5d,IACpB7K,EAAEwK,SAAWxK,EAAEwK,QAAQsc,KAAKjc,EAAE+N,OAC7B4O,GAAGkB,OAAS,KACb3oB,IAAK6K,EAAE+d,YAAYtF,QAASxY,GAAMA,EAAE+d,WAErCC,MAAOje,IACR2V,QAAQC,MAAM,4BAA6B5V,MAE5Cke,GAAK,KACN,MAAM/oB,EAAI0nB,KACV1nB,IAAMwnB,IAAK,EAAIxnB,GAAKA,EAAE6oB,OAAQpB,IAAmB,aAAbA,GAAGuB,QAAyBvB,GAAGoB,OAAQpB,GAAK,MAAOM,aAAaT,IAAKA,GAAK,KAAMS,aAAaR,MAKhIW,GAAKzP,MAAOzY,EAAGC,KAChB,IAAI4K,EACe,OAAlBA,EAAI5K,EAAEwK,UAAoBI,EAAEzH,gBAAkBpD,IAAK+oB,MACnDE,GAAK,KACN,MAAQ3e,SAAUtK,GAAM0K,KAAOkK,eAAgB3U,EAAG4U,wBAAyBhK,EAAGiK,wBAAyBhK,GAAM2G,KAAQmI,iBAAkBpK,GAAMgK,KAAM/J,EAAIgK,EAAEhB,MAAO9I,IAC9J,IAAIC,EACJD,IAAM7E,EAAEL,UAA6B,OAAhBmF,EAAI5P,EAAE6H,QAAkB+H,EAAEhH,uBAAyB4G,EACtEqH,EAAEI,aACF,CACEwD,UAAW3P,EAAEL,QACbiQ,UAAW5P,EAAEL,WAEdkQ,kBAAoB9P,EAAGgF,IAAOA,KAChC,CAAC/E,IAAK4E,EAAI+J,EAAG9J,IAjBV,EAAC3P,EAAGC,KACV,IAAI6K,EAAG0E,EAAGC,EACV,MAAM5E,EAAI6c,KACO,OAAhB5c,EAAI7K,EAAEiG,QAAkB4E,EAAE1H,UAAmC,OAApBoM,EAAIvP,EAAEoE,aAAsBmL,EAAE3K,YAAegG,IAAM7K,IAAMwnB,IAAMA,IAAK,EAAqB,OAAhB/X,EAAIxP,EAAEiG,QAAkBuJ,EAAEnJ,YAAoB,MAANmhB,IAAcA,GAAGrC,QAAUva,EAAEua,SAAWplB,GAAK+oB,OAetMG,CAAGvZ,EAAG3P,IACL,CAACA,IACJ,MAAO,CACL4U,eAAgB3U,EAChBkpB,YAAa1Z,EACb2Z,UAAW1Z,IAEZ2Z,GAAK,KACN,IAAI5W,EACJ,MAAQnI,SAAUtK,GAAM0K,KACtB2L,YAAapW,EACbqW,eAAgBzL,EAChB4K,iBAAkB3K,EAClB4K,0BAA2BlG,EAC3BoG,sBAAuBnG,EACvBoG,+BAAgCnG,EAChCiG,0BAA2BhG,EAC3BmG,+BAAgClG,GAC9B6B,KAAQb,SAAUf,EAAGkB,YAAajB,EAAGuB,aAAcjR,GAAMkQ,KAAOsJ,iBAAkBzJ,GAAMqJ,MAAQ0B,oBAAqBjJ,GAAM+H,KAAM9H,EAAIuH,EAAEhB,MAAO/F,IAChJ,IAAIC,EAAGC,EAAGC,EACV,GAAIlD,EAAElF,SAAWoF,EAAEpF,QACjBoF,EAAEpF,QAAQO,MAAQ,QAGpB,GAAI6E,EAAEpF,SAAyB,OAAdrK,EAAEqK,QAAkB,CACnC,MAAMqI,EAAyB,OAApBH,EAAI3S,EAAEqE,gBAAqB,EAASsO,EAAEjO,eAAgBsO,GAA0B,OAApBJ,EAAI5S,EAAEqE,gBAAqB,EAASuO,EAAEtO,cAAgBoO,EAAIA,EAAE2N,QAAQ,MAAO,KAClJ,GAAS,MAALvN,GAAaA,GAAK,GAAKE,EAAE0G,OAAS5G,EAAIjD,EAAEpF,QAAQO,MAAQgI,EAAEuT,MAAM,EAAGzT,GAAKjD,EAAEpF,QAAQO,MAAQgI,EAAoB,OAAhBH,EAAI7S,EAAE6H,QAAkBgL,EAAE3J,+BAAiCiH,EAC3J0G,EAAEqB,uBACF,CAAEoR,UAAWzZ,EAAEpF,QAAQO,MAAOue,UAAWnpB,EAAEqK,WAC1CkQ,iBAED,YADA9K,EAAEpF,QAAQO,MAAQ5K,EAAEqK,SAGtBrK,EAAEqK,QAAUoF,EAAEpF,QAAQO,KACxB,GACC,CAAC2E,EAAGE,EAAGzP,EAAGJ,EAAGmQ,IAAKgC,EAAIsH,EAAG/G,IAC1B,IAAIC,EACe,OAAlBA,EAAI9C,EAAEpF,UAAoBkI,EAAEvP,UAAY8b,WAAW,KAClD,IAAItM,EAAGC,EAAGC,EACS,OAAlBF,EAAI5S,EAAEqB,UAAoBuR,EAAE/Q,SAAWoQ,MAA2B,OAAlBY,EAAIhD,EAAEpF,UAAoBoI,EAAE2W,SAAiB,UAAN9W,IAAqC,OAAlBI,EAAIjD,EAAEpF,UAAoBqI,EAAE0W,UACtI,MACF,CAAC3Z,EAAsB,OAAlB4C,EAAIzS,EAAEqB,cAAmB,EAASoR,EAAE5Q,SAAUiO,EAAGmC,IAAKG,EAAIqH,EAAE,KAClE5J,EAAEpF,SAAWoF,EAAEpF,QAAQ+e,SACtB,IAAKnX,EAAIoH,EAAE,KACZ5J,EAAEpF,SAAWoF,EAAEpF,QAAQgf,QACtB,IAAKnX,EAAImH,EAAE,IAAM5J,GAAKA,EAAEpF,QAAUoF,EAAEpF,QAAQO,MAAQ,GAAI,IAAKuH,EAAIkH,EAAG/G,IACrEA,IAAM/C,EAAElF,SAAW+E,EAAGmD,IAAOA,IAC5B,CAAChD,IAAK6C,EAAIiH,EAAG/G,IACdA,IAAM9C,EAAEnF,SAAWiF,EAAGiD,IAAOA,IAC5B,CAAC/C,IACJ,MAAO,CACL6F,iBAAkB3K,EAClB4K,0BAA2BlG,EAC3BoG,sBAAuBnG,EACvBoG,+BAAgCnG,EAChC2G,YAAapW,EACbqW,eAAgBzL,EAChB6e,iBAAkBpX,EAClBqX,iBAAkBzX,EAClB0X,oBAAqBzX,EACrB0X,cAAezX,EACf0X,aAAczX,EACd0X,uBAAwBxX,EACxByX,4BAA6BxX,IAE9ByX,GAAK5f,EAAG,CACT6f,OAAQ,GACRC,gBAAiB,OAEjBC,gBAAiB,CAAE3f,QAAS,MAC1B4f,GAAK,IAAM1f,EAAGsf,IAAKK,GAAK,EAAGxnB,SAAU9C,MACvC,MAAOC,EAAG4K,EAAGC,GAAKwG,EAAG,IACrB,OAAuBhP,EAAE2nB,GAAGlf,SAAU,CAAEC,MAAO,CAAEkf,OAAQjqB,EAAGkqB,gBAAiBtf,EAAGuf,gBAAiBtf,GAAKhI,SAAU9C,KAC/GuqB,GAAK,KACN,MAAQjgB,SAAUtK,GAAM0K,KAAOwf,OAAQjqB,EAAGkqB,gBAAiBtf,EAAGuf,gBAAiBtf,GAAMuf,MAAQzQ,iBAAkBpK,GAAMgK,KAAM/J,EAAIgK,EAAEhB,MAAO7I,EAAGC,KACzI,IAAIqC,EAAGC,EAAGC,EAAGC,EACb,IAAIvC,EAAI,KACR,GAAIhF,EAAEL,QAAQiP,UAA6B,OAAhBxH,EAAIlS,EAAEyH,YAAiB,EAASyK,EAAExK,WAAa,GAAI,CAC5E,GAAqB,OAAhByK,EAAInS,EAAEyH,QAAkB0K,EAAExK,YAC7B,OAAO,KACTmI,EAAImQ,KACJ,IAAI3N,EAAI,CAAEqO,GAAI7Q,EAAGoM,QAAStM,EAAG4a,QAAS3a,GACtC,GAAqB,OAAhBuC,EAAIpS,EAAE6H,QAAkBuK,EAAEtJ,aAAc,CAC3C,MAAMyJ,QAAU/C,EAAEqH,EAAEiB,WAAY,CAAErQ,MAAO6K,IACzC,GAAIC,EAAEoI,iBACJ,OAAO,KACTrI,EAAIC,EAAEsG,KAAKpR,KACb,CACA,OAAOoD,EAAG0H,GAAM,IAAIA,EAAEgU,MAAM,GAAIjU,IAAKxC,CACvC,CACAA,EAAImQ,KACJ,IAAIhO,EAAI,CAAE0O,GAAI7Q,EAAGoM,QAAStM,EAAG4a,QAAS3a,GACtC,GAAqB,OAAhBwC,EAAIrS,EAAE6H,QAAkBwK,EAAEvJ,aAAc,CAC3C,MAAMwJ,QAAU9C,EAAEqH,EAAEiB,WAAY,CAAErQ,MAAOwK,IACzC,GAAIK,EAAEqI,iBACJ,OAAO,KACT1I,EAAIK,EAAEuG,KAAKpR,KACb,CACA,OAAOoD,EAAGyH,GAAM,IAAIA,EAAGL,IAAKnC,GAC3B,CAAC9P,EAAGwP,IAAKE,EAAI+J,EAAEhB,MAAO7I,IACvB,IAAIE,EACJ,MAAMD,EAAI/E,EAAEL,QAAQqb,KAAM1lB,GAAMA,EAAEugB,KAAO/Q,GACzC,OAAQC,GAAsB,OAAhBC,EAAI9P,EAAE6H,QAAkBiI,EAAE/G,wBAA0ByG,EAAEqH,EAAEkB,cAAe,CAAEtQ,MAAOoI,KAAM8K,iBAAmB,MAAQ9P,EAAGzK,GAAMA,EAAEijB,OAAQlT,GAAMA,EAAEwQ,KAAO/Q,IAAKA,IACrK,CAACJ,IAAKG,EAAI8J,EAAG7J,IACd,MAAMC,EAAgB,mBAALD,EAAkBA,EAAE9E,EAAEL,SAAWmF,EAClD/E,EAAEgF,IACD,CAAC/E,IACJ,MAAO,CACL2f,UAAWhb,EACXib,aAAchb,EACdwa,OAAQjqB,EACR0qB,cAAehb,IAEhBib,GAAK,KACN,IAAIxX,EAAGC,EAAGC,EAAGC,EAAGC,EAChB,MAAQlJ,SAAUtK,GAAM0K,KAAOyO,MAAOlZ,EAAGmZ,eAAgBvO,EAAGwO,eAAgBvO,GAAMwO,KAAQ7I,QAASjB,EAAGsB,iBAAkBrB,EAAGuB,eAAgBtB,EAAGuB,eAAgBtB,EAAGkB,aAAcjB,GAAMU,KACnL8D,qBAAsBvE,EACtB6F,0BAA2B5F,EAC3B+F,+BAAgCzV,EAChCmW,sBAAuBpG,EACvBqG,yBAA0BvE,GACxBR,KAAQmI,iBAAkB1H,GAAMsH,MAClC0N,iBAAkB/U,EAClBgM,cAAe/L,EACf4U,cAAe3U,EACfmM,sBAAuBlM,EACvB2U,cAAe1U,GACb8T,MAAQoE,UAAWjY,EAAGkY,aAAcjY,GAAM8X,MAAQxP,iBAAkBrI,GAAMsH,MAAQ4P,oBAAqBjX,EAAGgX,iBAAkB/W,GAAMyW,MAAQD,UAAWvW,GAAMoW,KAAMnW,EAAI2G,EAAEhB,MAAOhF,IAChL,IAAIC,EACJ,GAAqB,OAAhBA,EAAI1T,EAAE6H,QAAkB6L,EAAEpK,oBAAqB,CAClD,MAAMqK,QAAUzB,EAAE2E,EAAEyB,mBAAoB,CACtCuS,MAAOpX,IAET,GAAIE,EAAEgH,iBACJ,OAAO,KACTlH,EAAIE,EAAEkF,KAAKgS,KACb,CACA,OAAOpX,GACN,CAAkB,OAAhBL,EAAIpT,EAAE6H,YAAiB,EAASuL,EAAE9J,oBAAqB4I,IAAKa,EAAI0G,EAAEhB,MAAOhF,EAAGC,KAC/E,IAAIG,EAAGG,EAAIC,EAAGtC,EACd,IAAK8B,EACH,OACF,IAAIE,EAAInE,EAAE/E,QAAQgJ,GAClB,IAAKE,EAEH,YADA9D,GAAE,GAGJ,GAAqB,OAAhBgE,EAAI7T,EAAE6H,QAAkBgM,EAAExK,mBAAoB,CACjD,MAAMuI,QAAWM,EAAE2E,EAAEwB,kBAAmB,CACtCwS,MAAOlX,IAET,GAAI/B,EAAG+I,iBACL,OACFhH,EAAI/B,EAAGiH,KAAKgS,KACd,CACAhb,GAAE,GAA2B,OAArBmE,EAAKhU,EAAEqE,YAAsB2P,EAAGnP,WAAaiL,GAAE,GAAK1P,GAAE,GAC9D,MAAMwT,EAAI,CACRmG,SAAUrG,EACVoG,SAAUrG,EACVmM,SAAU1M,EACVyW,iBAAkB/W,EAClBkY,UAAWpb,EAAEjF,QACbyc,iBAAkB/U,EAClBgM,cAAe/L,EACf4U,cAAe3U,EACfmM,sBAAuBlM,EACvB2U,cAAe1U,EACfwI,iBAAkBrI,EAClB+X,UAAWjY,EACXkY,aAAcjY,QApvBZgG,OAAOzY,EAAGC,EAAG4K,EAAGC,EAAG0E,EAAGC,EAAGC,KAC/B,IAAK1P,EACH,MAAM,IAAIwf,MAAM,uBAClB,IAAK,MAAM7P,KAAK8P,OAAOC,KAAK1f,GAC1B,OAAQ2P,GACN,IAAK,gBACG2O,GAAGte,EAAGC,EAAG4K,GACf,MACF,IAAK,gBACG8T,GAAG3e,EAAGC,GACZ,MACF,IAAK,mBACGge,GAAGje,EAAGC,GACZ,MACF,IAAK,kBACG2e,GAAG5e,EAAGC,GACZ,MACF,IAAK,qBACGmf,GAAGpf,EAAGC,EAAGuP,GACf,MACF,IAAK,oBACG8P,GAAGtf,EAAGC,EAAGwP,GACf,MACF,IAAK,mBACGqP,GAAG9e,EAAGC,EAAG6K,EAAG4E,KA8tBhBqb,CACJpX,EACAC,GACsB,OAApBK,EAAIjU,EAAEiG,gBAAqB,EAASgO,EAAElO,kBAAmB,EAC3D6J,EACAE,EACA1P,EACA0S,GACCjD,GAAE,GAAK,iBAAkB8D,GAAK7D,EAAwB,OAArB6B,EAAK3R,EAAEqE,gBAAqB,EAASsN,EAAGvO,UAAW,gBAAiBuQ,GAAKvT,GAAE,GAAK6R,EAAmB,mBAAV0B,EAAEqX,MAAqBrY,EAAEc,GAAIZ,EAAElD,EAAElF,UAAYkJ,EAAE0L,cAAe5L,IAAMC,GAAKjE,EAAEhF,QAAQwgB,SAC/M,CACDzb,EACAmD,EACAE,EACqB,OAApBQ,EAAIrT,EAAEiG,gBAAqB,EAASoN,EAAEtN,eAClB,OAApBuN,EAAItT,EAAEqE,gBAAqB,EAASiP,EAAElQ,SACvCsM,EACAyC,EACAC,EACAC,EACAC,EACAC,EACAG,EACAF,EACAC,EACA9C,EACAF,IACEuD,EAAIyG,EAAE,IAAM3O,EAAEL,QAAQiP,OAAS,EAAI5O,EAAEL,QAAQkP,QAAU,KAAO,KAAM,IAAK1G,EAAIwG,EAAE,IAAM3O,EAAEL,QAAQiP,OAAS,EAAI5O,EAAEL,QAAQkP,IAAG,IAAO,KAAO,KAAM,IAAKzG,EAAIuG,EAAEhB,MAAOhF,IACjK,IAAIG,EACJ,MAAMF,EAAIV,IAAKW,EAAIV,IACnB,OAAwB,OAAhBW,EAAI5T,EAAE6H,SAAkB+L,EAAE/K,uBAAwBqJ,EAAE2E,EAAEgB,YAAa,CACzEiC,SAAUpG,EACVqG,SAAUpG,EACVuX,SAAUzX,KACRkH,oBAAyB9P,EAAGgJ,GAAM,IAAIA,EAAGJ,UAAWV,EAAEU,EAAGC,IAAI,IAChE,CAAsB,OAApBH,EAAIvT,EAAEqE,gBAAqB,EAASkP,EAAE1O,UAA4B,OAAhB2O,EAAIxT,EAAE6H,YAAiB,EAAS2L,EAAE3K,cAAekK,EAAGb,IAAKiB,EAAIsG,EAAGhG,IACrH,MAAMC,EAAgB,mBAALD,EAAkBA,EAAE3I,EAAEL,SAAWgJ,EAClD5I,EAAE6I,IACD,CAAC5I,IACJ,MAAO,CACLqgB,YAAanY,EACboY,YAAanY,EACb2M,SAAU1M,EACVqD,sBAAuBpG,EACvBqG,yBAA0BvE,EAC1BkH,MAAOlZ,EACPorB,aAAclY,EACdmY,0BAA2BxY,IAE5BqK,GAAK,KACN,IAAI/J,EAAGC,EAAGC,EAAGC,EACb,MAAQjJ,SAAUtK,GAAM0K,KACtBwc,iBAAkBjnB,EAClBke,cAAetT,EACfmc,cAAelc,EACf0T,sBAAuBhP,EACvByX,cAAexX,GACb4W,MAAQhN,eAAgB3J,GAAM4J,KAAQ6R,YAAaxb,EAAGyb,YAAaxb,EAAGgQ,SAAU/P,EAAGyb,0BAA2Bxb,GAAM8a,MACtH/U,+BAAgCzV,EAChCsV,0BAA2BvF,EAC3BiE,qBAAsBnC,EACtBuE,yBAA0BtE,EAC1BoE,eAAgBnE,EAChB2C,wBAAyB1C,EACzB0D,+BAAgCzD,GAC9BZ,KAAQhB,QAAS6B,EAAG1B,SAAU2B,EAAGtB,eAAgBuB,EAAGxB,eAAgByB,EAAG5B,aAAc6B,GAAMpC,KAAOma,UAAW9X,EAAG+X,aAAc9X,GAAM2X,MAAQ3Q,iBAAkB/G,GAAM2G,MAAQ4P,UAAWtW,GAAMmW,MAAQU,iBAAkB5W,GAAMsW,MAAQtO,iBAAkB/H,GAAMgH,KAAM/G,EAAIwG,EAAEhB,MAAOjF,IAClR,IAAIG,EAAGC,EAAGC,EAAGG,EAAIC,EAAGtC,EACpB,MAAM8B,EAAI9D,IACV,GAAO8D,GAAMnB,EAAE7H,QAAQgJ,GAAK,CAC1B,GAAIpB,EAAE5H,QAAS,CACb,GAAmD,OAA9CkJ,EAAS,MAAL3T,OAAY,EAASA,EAAEwF,iBAA2BmO,EAAE/N,iBAC3D,OACF,GAAmD,OAA9CgO,EAAS,MAAL5T,OAAY,EAASA,EAAEwF,iBAA2BoO,EAAElO,iBAK3D,YAJsB,OAArBmO,EAAI7T,EAAE6F,aAAuBgO,EAAE9N,qBAAuByJ,EACrD,IAAI+b,QAAmC,OAA1BvX,EAAKhU,EAAEwF,qBAA0B,EAASwO,EAAGrO,iBAAmB,IAC7E,cACQkF,EAAE,IAAI0gB,QAAkC,OAAzBtX,EAAIjU,EAAEwF,qBAA0B,EAASyO,EAAEtO,iBAAmB,IAAK,QAGhG,CACuB,OAAtBgM,EAAK3R,EAAE6F,aAAuB8L,EAAG5L,qBAAuByJ,EAAEgE,EAAG,cAAgB3I,EAAE2I,EAAG,OACrF,GACC,CAAClB,EAAG3C,EAAG3P,EAAG6K,EAAG2E,EAAG6C,IAAKa,EAAIuG,EAAEhB,MAAOjF,EAAGC,GAAI,KAC1C,IAAII,EAAGG,EACP,GAAwB,MAApBR,EAAIA,EAAE+K,QACR,OACF9K,SAAWR,EAAEO,GAAId,EAAEjI,SAAWsd,aAAarV,EAAEjI,SAAU8H,EAAE9H,UAAYsI,EAAE,IAAKZ,EAAE,IAC9E,MAAMuB,EAAI/D,IACV,IAAK+D,EACH,OACF,IAAIC,EAAIrB,EAAE7H,QAAQiJ,GAClB,MAAME,QAAU9D,EAAE6D,GAClBC,IAA2B,OAApBC,EAAI7T,EAAEqE,YAAsBwP,EAAEhP,WAAasL,GAAE,GAAKqC,EAAE/H,QAAU2H,EAAE3H,QAASqI,GAAE,GAAKoM,WAAW,KAChGjN,GAAE,IACD,KAAM7R,GAAE,GAAK8e,WAAWzG,UACzB,IAAI7G,EACJ,MAAMqC,EAAI,CACR8F,SAAUnK,IACVkK,SAAUnK,IACViQ,SAAU/P,EACV8Z,iBAAkB5W,EAClB+X,UAAWrY,EAAEhI,QACb0T,cAAetT,EACf2T,sBAAuBhP,EACvByX,cAAexX,EACfuX,cAAelc,EACfoc,iBAAkBjnB,EAClB8a,iBAAkB/H,EAClByX,UAAW9X,EACX+X,aAAc9X,GACbjB,EAAKjC,EAAEjF,QAAQiP,aACZyF,GAAGvL,EAAGK,GAAIvE,EAAEjF,QAAQiP,SAAW/H,IAA6BxB,EAAtB,iBAAkBwD,IAAQA,EAAE0L,eAA2C,OAArBzN,EAAK5R,EAAEqE,aAAsBuN,EAAGxO,WAAYkc,GAAG3L,EAAGM,EAAG7T,GAAI8R,EAAmB,mBAAVyB,EAAEqX,MAAqBlY,EAAEN,EAAE/H,SAAUwH,GAAE,KAChL,OAArB+B,EAAKhU,EAAEqE,gBAAqB,EAAS2P,EAAGrP,YAC3C,CACD+N,EACqB,OAApBU,EAAIpT,EAAEqE,gBAAqB,EAAS+O,EAAEvO,UAClB,OAApBwO,EAAIrT,EAAEqE,gBAAqB,EAASgP,EAAE1O,SAClB,OAApB2O,EAAItT,EAAEqE,gBAAqB,EAASiP,EAAElQ,SACvCoP,EACAJ,EACAU,EACAG,EACArD,EACAD,EACAE,EACAhF,EACA2E,EACAC,EACA3E,EACA7K,EACA+S,EACAL,EACAC,EACAN,IAEF,MAAO,CAAE4K,iBAAkBzD,EAAEhB,MAAOjF,EAAGC,GAAI,KACzC,IAAIE,EAAGC,EACPJ,EAAIA,IAAyB,OAAlBG,EAAIpB,EAAE9H,cAAmB,EAASkJ,EAAE3I,SAA2B,OAAhB4I,EAAI5T,EAAE6H,QAAkB+L,EAAE5K,0BAA4B6J,EAAEgE,EAAEmB,iBAAkB,CAAEwT,UAAWhY,EAAGiY,WAAYhY,KAAMkH,mBAAqBhL,MAAQuD,EAAEM,EAAGC,IACzM,CAACZ,EAAGlD,EAAGuD,EAAGX,EAAoB,OAAhBgB,EAAIvT,EAAE6H,YAAiB,EAAS0L,EAAEvK,sBAClD0iB,GAAK,KACN,IAAI7gB,EACJ,MAAQP,SAAUtK,GAAM0K,IACxB,OAAOihB,EAAG,KACR,IAAIjc,EACJ,UAAW9M,OAAS,MAAQA,OAAOylB,UACjC,OAAO,EACT,GAAwB,OAAjB3Y,EAAI1P,EAAEgK,UAAmB0F,EAAEvF,yBAChC,OAAO,EACT,MAAMW,EAAIud,UAAUuD,UAAWpc,GAAK,iEAAiEqc,KAAK/gB,GAAI2E,EAAI7M,OAAOsR,YAAc,IACvI,OAAO1E,GAAKC,GACX,CAAmB,OAAjB5E,EAAI7K,EAAEgK,aAAkB,EAASa,EAAEV,4BACvC2hB,GAAK,EAAG7oB,QAASjD,MAClB,IAAIiT,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,EAClC,MAAM1T,EAAIyrB,MAAQphB,SAAUO,GAAMH,KAAOwE,OAAQpE,GAAMuE,KACrDoG,iBAAkBjG,EAClBoG,sBAAuBnG,EACvB4G,YAAa3G,EACbuG,eAAgBtG,EAChBuG,kBAAmBtG,EACnB0G,eAAgBzG,GACd4B,KAAQb,SAAUd,GAAMQ,KAAMlQ,EAAG+P,GAAKoB,GAAE,IAAMU,EAAGC,GAAKX,GAAE,IAAO2L,iBAAkB/K,GAAMgL,MAAQwM,iBAAkBvX,GAAMiX,KAAMhX,EAAI,CACnI0Z,UAAW9rB,EAAI,cAAgB,gBAC5B6K,EAAEU,oBACJ8G,EAAI,CACL0Z,QAASxc,EAAI,GAAK,OAClByc,UAAWzc,EAAI,GAAK,WAA8B,OAAlByD,EAAIpI,EAAExJ,cAAmB,EAAS4R,EAAE3R,eACpEyqB,UAAW9rB,EAAI,cAAgB,gBAC5B6K,EAAEU,sBAEFV,EAAEW,2BACJ8G,EAAI,CACLhQ,OAAQ,QAA2B,OAAlB2Q,EAAIrI,EAAExJ,cAAmB,EAAS6R,EAAEtR,6BACrDsqB,WAAY,cACZH,UAAW9rB,EAAI,cAAgB,gBAC5B6K,EAAEU,sBAEFV,EAAEY,4BACJ8G,EAAI,CACL4I,MAAO,aACJtQ,EAAEqB,qBACJsG,EAAI,CACL2I,MAAO,aACJtQ,EAAEsB,4BACJsG,EAAIlD,EAAyB,OAApB2D,EAAItI,EAAExG,gBAAqB,EAAS8O,EAAE3O,wBAA+C,OAApB4O,EAAIvI,EAAExG,gBAAqB,EAAS+O,EAAE7O,uBAAwBoO,EAAI,KAC7InD,GAAKW,GAAE,IACNyC,EAAI,KACLzC,GAAE,IACD0C,EAAI,KACLX,GAAE,IACDY,EAAI,KACLZ,GAAE,IACDa,EAAI0F,MAAO7E,IACZ,IAAIC,EACJ,IAAK5B,GAAe,UAAV2B,EAAEsQ,IAAiB,CAC3B,GAAItQ,EAAEuY,SAEJ,YADqB,OAApBtY,EAAIhJ,EAAExG,YAAsBwP,EAAEvP,cAAgBsP,EAAE6H,kBAGnD7H,EAAE6H,uBAAwBtJ,GAC5B,GACCa,EAAKY,IACN9D,EAAErF,UAAY2H,EAAEwB,EAAEwY,OAAOphB,OAAQ6E,EAAEC,EAAErF,QAAQO,MAAM0O,UAErD,OAAuBlT,EACrB,MACA,CACE,cAAoC,OAApB6M,EAAIxI,EAAEtB,gBAAqB,EAAS8J,EAAEtJ,gBAAkB,kBACxEsiB,KAAM,UACN7Q,YAAc5H,IACZ,IAAIC,EACJD,EAAE0Y,mBAAoB3c,GAAiE,yBAAxC,OAAlBkE,EAAIhJ,EAAExJ,cAAmB,EAASwS,EAAE/R,mBAA+C8N,GAAE,IAEpHhR,MAAO,IAAKkM,EAAES,yBACdyE,UAAW,iBACXlN,SAAU,CACR2M,GAAgC,OAAzB6D,EAAIzI,EAAErF,iBAA2B8N,EAAE7N,eAAkCnD,EAC1E,QACA,CACE/D,IAAKuR,EACLhR,KAAM,WACNkR,UAAW,0BACXpR,MAAO4Q,EAAI+C,EAAInS,EAAIkS,EAAID,EACvBka,YAAa7Z,EACb8Z,SAAUxZ,EACVyZ,UAAW1Z,EACX2Z,QAAS/Z,EACTga,OAAQ/Z,EACRga,mBAAoB/Z,EACpBga,iBAAkB/Z,IAEFxQ,EAClB,WACA,CACE/D,IAAKuR,EACLlR,MAAO4Q,EAAI+C,EAAInS,EAAIkS,EAAID,EACvBya,KAAM,EACN9c,UAAW,0BACXuc,YAAa7Z,EACb8Z,SAAUxZ,EACVyZ,UAAW1Z,EACX2Z,QAAS/Z,EACTga,OAAQ/Z,EACRga,mBAAoB/Z,EACpBga,iBAAkB/Z,IAGNtM,EAAE8V,EAAI,CAAExZ,SAAU,CAC3B,MAAL9C,OAAY,EAASA,EAAEkQ,IACrB,CAAC0D,EAAGC,IAAsBvR,EAAE8N,EAAI,CAAEtN,SAAU8Q,GAAKC,KAE7B,OAApBN,EAAI1I,EAAExG,gBAAqB,EAASkP,EAAE9O,qBAAkF,OAArC,OAApB+O,EAAI3I,EAAExG,gBAAqB,EAASmP,EAAE9O,kBAAiD,OAApB+O,EAAI5I,EAAExG,gBAAqB,EAASoP,EAAE/O,gBAAkB,GAAqB8B,EAC/M,MACA,CACEwJ,UAAW,8BACXpR,MAAO8Q,IAA2B,OAApBgE,EAAI7I,EAAExG,gBAAqB,EAASqP,EAAEhP,gBAAkB+N,EAAID,EAC1E1P,SAAU,CACR4M,EACA,IACqB,OAApBiE,EAAI9I,EAAExG,gBAAqB,EAASsP,EAAEjP,yBAQpDqoB,GAAK,EAAG9pB,QAASjD,MAClB,IAAI8K,EACJ,MAAQR,SAAUrK,GAAMyK,KAAOwE,OAAQrE,GAAMwE,IAC7C,OAAuB7I,EACrB,MACA,CACE,cAAe,2BACf5H,MAAO,IAAKiM,EAAE2B,aACdwD,UAAW,4BACXlN,SAAU,CACQR,EAAE,MAAO,CAAE0N,UAAW,kBAAmBlN,SAAe,MAAL9C,OAAY,EAASA,EAAEkQ,IACxF,CAACV,EAAGC,IAAsBnN,EAAE8N,EAAI,CAAEtN,SAAU0M,GAAKC,MAEnCnN,EAAE,OAAQ,CAAEQ,SAA4B,OAAjBgI,EAAI7K,EAAEsG,aAAkB,EAASuE,EAAE7I,WAI/E+qB,GAAK,KACN,IAAI/a,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,EACtB,MAAQjI,SAAUtK,GAAM0K,KAAOwE,OAAQjP,GAAMoP,KAAO8G,YAAatL,GAAM4G,KAAQ6C,iBAAkBxJ,EAAGiQ,iBAAkBvL,GAAMwK,MAAOvK,EAAGC,GAAK6B,GAAE,GAAK5B,EAAI,CACpJI,gBAAiB,6BAAgD,OAAlBkC,EAAIjS,EAAEqB,cAAmB,EAAS4Q,EAAE1Q,0BAC/D,OAAlB2Q,EAAIlS,EAAEqB,cAAmB,EAAS6Q,EAAE5Q,mBACnCrB,EAAE0M,iBACJiD,EAAI,CACLqd,UAAW,iBACRtd,KAEA1P,EAAE2M,wBACJiD,EAAI,CACLE,gBAAiB,OAA6B,OAArBoC,EAAInS,EAAEkC,iBAAsB,EAASiQ,EAAEhQ,QAChE9B,KAAM,OACNyG,MAAO,GACPC,OAAQ,MACL9G,EAAE4N,eAgBP,OAAuBvL,EAAEga,EAAI,CAAExZ,WAA+B,OAAlBsP,EAAIpS,EAAEqB,UAAoB+Q,EAAEvQ,WAA6B2E,EACnG,MACA,CACE,cAAoC,OAApB6L,EAAIrS,EAAEuJ,gBAAqB,EAAS8I,EAAEnQ,aAAe,YACrEmqB,KAAM,SACNztB,MAAO6Q,EAAIG,EAAID,EACfK,UAAW,sBAAqBlF,EAAI,kBAAoB,mBACxDwQ,aAtBG,KACL5L,GAAE,IAsBA6L,aArBG,KACL7L,GAAE,IAqBA/M,QAAS,IAAM6M,GAAE,GACjB1M,SAAU,CArBP,MACL,IAAI2P,EACJ,MAAMD,EAA0B,OAArBC,EAAIzS,EAAEkC,iBAAsB,EAASuQ,EAAEtQ,KAClD,OAAQqQ,GAAiB,iBAALA,EAMhBA,GAAqBlQ,EAAE,OAAQ,CAAE0N,UAAW,kBAAmBlN,SAA0BR,EAAEkQ,EAAG,CAAE5T,MAAOiR,MANvDvN,EAClD,OACA,CACE0N,UAAW,kBACXpR,MAAOiR,KAePM,KAC0B,OAAvBmC,EAAItS,EAAEmD,eAAyBmP,EAAElP,YAAsC,OAAvBmP,EAAIvS,EAAEmD,mBAAwB,EAASoP,EAAE9O,YAA8BnB,EAAE,OAAQ,CAAE1D,MAAO,IAAKqB,EAAEkL,wBAA0B6E,UAAW,YAAalN,SAAU+H,UAIrNqiB,GAAK,KACN,IAAIhb,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,EACnB,MAAMvS,EAAI0rB,MAAQphB,SAAUrK,GAAMyK,KAAOwE,OAAQrE,GAAMwE,KAAO0B,YAAajG,GAAMwF,KAAOgE,iBAAkB9E,EAAGuL,iBAAkBtL,GAAMuK,MAAOtK,EAAGC,GAAK4B,GAAE,IAAM3B,EAAGC,GAAK0B,GAAE,IAAMzB,EAAG1P,GAAKmR,EAAE,GACtLoL,EAAE,KACA,IAAIlK,EAAGC,EAAGC,EACV,MAAMH,EAAuB,OAAlBC,EAAIxS,EAAE8B,cAAmB,EAAS0Q,EAAEzQ,KAC/C,GAAU,WAANwQ,EACF,GAAIxS,EAAG,CACL,IAAI4S,EACAA,EAAJpD,IAA6B,OAAlBkD,EAAI5H,EAAEL,cAAmB,EAASiI,EAAEya,cAAgB,MAAuE,iBAA5B,OAA1Bxa,EAAI9H,EAAE8B,sBAA2B,EAASgG,EAAE7L,OAAqB+D,EAAE8B,gBAAgB7F,MAAQ,IAAU,EAAG1G,EAAEwS,GAAIjD,GAAE,EAClM,MACEA,GAAGH,OACI,UAANgD,EAAgB7C,GAAE,GAAY,UAAN6C,EAAgB5C,EAAID,GAAE,IAAOE,GAAE,GAAKF,GAAE,IAAa,UAAN6C,GAAiB7C,GAAGH,IAC7F,CACDA,EACAxP,EACA4P,EAC2B,OAA1BsC,EAAIrH,EAAE8B,sBAA2B,EAASuF,EAAEpL,MAC1B,OAAlBqL,EAAIlS,EAAE8B,cAAmB,EAASoQ,EAAEnQ,OAEvC,MAAMmO,EAAI,CACR8c,UAAW,eAAend,OAC1B0K,QAAoC,OAA1BpI,EAAIvH,EAAE8B,sBAA2B,EAASyF,EAAEtL,QAAU,IAAM,GACtEyT,OAAQ,GACR6B,gBAAoC,OAAlB/J,EAAIpS,EAAEoB,cAAmB,EAASgR,EAAE9Q,eACtD6Z,MAAO,UACJvQ,EAAEK,cACJ+G,EAAI,CACLoJ,YAAa,uCAAuClL,EAAEiM,mBAExD,OAAuB9Z,EAAEga,EAAI,CAAExZ,WAA+B,OAAlBwP,EAAIrS,EAAEoB,UAAoBiR,EAAEzQ,WAA6B2E,EACnG,MACA,CACE,cAAe,eACf5H,MAAOuR,EACPH,UAAW,qBAAoBN,EAAI,mBAAqB,oBACxD/M,QAAS,IAAM8M,GAAE,GACjB3M,SAAU,CACQR,EAAE,OAAQ,CAAEQ,SAA6B,OAAlByP,EAAItS,EAAE8B,cAAmB,EAASwQ,EAAEtQ,OAC3DK,EAAE,OAAQ,CAAE0N,UAAW,wBAAyBpR,MAAOqT,UAI5Emb,GAAK,EACNzM,GAAI3gB,EACJkc,QAASjc,EACTuqB,QAAS3f,MAET,IAAIsF,EAAG8B,EACP,MAAQ3H,SAAUQ,GAAMJ,KAAOwE,OAAQM,GAAMH,KAAMI,GAAK8B,EAAE,CACxDxC,iBAAkB,IAAKS,EAAET,kBACzBC,wBAAyB,IAAKQ,EAAER,4BAC5B0b,aAAchb,GAAM6a,MAAO5a,EAAGC,GAAK2B,GAAE,GAAK1B,EAAI,CAClDuL,MAA0B,OAAlBjL,EAAIrF,EAAEzJ,cAAmB,EAAS8O,EAAE7O,aAC5C+Z,YAAgC,OAAlBpJ,EAAInH,EAAEzJ,cAAmB,EAAS4Q,EAAE3Q,gBAC/CmO,EAAET,yBAEP,OAAO2N,EAAE,KACP,GAAI9R,EAAG,CACL,MAAMqH,EAAIgN,WAAW,KACnBxP,EAAE1P,IACD6K,GACH,MAAO,IAAMkd,aAAa7V,EAC5B,GACC,CAAClS,EAAG0P,EAAG7E,IAAiB,iBAAL5K,EAAgCqC,EACpD,MACA,CACEgZ,aAAc,KACZ1L,GAAE,IAEJ2L,aAAc,KACZ3L,GAAE,IAEJhR,MAAO+Q,EAAIE,EAAIJ,EAAEV,iBACjByM,YAAa/C,MAAOvG,IAClB,IAAIC,EACa,OAAhBA,EAAIrH,EAAErD,QAAkB0K,EAAEvK,iBAAmBsK,EAAEuJ,uBAAwB/L,EAAE1P,KAE5EgQ,UAAW,mBACXlN,SAAU7C,IAEMqC,EAAEga,EAAI,CAAExZ,SAAU7C,KACrCotB,GAAK,KACN,IAAIviB,EAAG0E,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,EAAG1P,EAAG+P,EAAG8B,EAAGC,EACrC,MAAQhD,OAAQlP,GAAMqP,KAAO6a,OAAQjqB,GAAMoqB,KAAMxf,EAAI,CACnD0P,OAAQ,QAAoE,iBAA7B,OAAtBzP,EAAI9K,EAAEwM,kBAAuB,EAAS1B,EAAE/D,QAAsB,GAA0B,OAAtByI,EAAIxP,EAAEwM,kBAAuB,EAASgD,EAAEzI,YAAqC,OAAtB0I,EAAIzP,EAAEwM,kBAAuB,EAASiD,EAAE1I,SAAW,YAAoF,iBAA7B,OAAlC2I,EAAI1P,EAAEuL,8BAAmC,EAASmE,EAAE3I,QAAsB,GAAsC,OAAlC4I,EAAI3P,EAAEuL,8BAAmC,EAASoE,EAAE5I,YAAiD,OAAlC6I,EAAI5P,EAAEuL,8BAAmC,EAASqE,EAAE7I,SAAW,iBAC1aD,MAAO,IACPwmB,SAAU,QAAuE,iBAA5B,OAA1Bzd,EAAI7P,EAAEoL,sBAA2B,EAASyE,EAAE/I,OAAqB,GAA8B,OAA1BgJ,EAAI9P,EAAEoL,sBAA2B,EAAS0E,EAAEhJ,WAAwC,OAA1B1G,EAAIJ,EAAEoL,sBAA2B,EAAShL,EAAE0G,QAAU,eAChNuV,SAAU,QAAuE,iBAA5B,OAA1BlM,EAAInQ,EAAEoL,sBAA2B,EAAS+E,EAAErJ,OAAqB,GAA8B,OAA1BmL,EAAIjS,EAAEoL,sBAA2B,EAAS6G,EAAEnL,WAAwC,OAA1BoL,EAAIlS,EAAEoL,sBAA2B,EAAS8G,EAAEpL,QAAU,qBAC7M9G,EAAE8O,2BAEP,OAAuBxM,EAAE,MAAO,CAAE0N,UAAW,6BAA8BpR,MAAOiM,EAAG/H,SAAU7C,EAAEiQ,IAAKiC,GAAsB7P,EAC1H8qB,GACA,CACEzM,GAAIxO,EAAEwO,GACNzE,QAAS/J,EAAE+J,QACXsO,QAASrY,EAAEqY,SAEbrY,EAAEwO,QAEH4M,GAAK,EACNvC,KAAMhrB,EACNwtB,SAAUvtB,EACVwtB,QAAS5iB,MAET,IAAI6E,EAAGC,EAAGC,EACV,MAAQtF,SAAUQ,GAAMJ,KAAOwE,OAAQM,GAAMH,IAAKI,EAAI,CACpD2M,gBAAoC,OAAlB1M,EAAI5E,EAAEzJ,cAAmB,EAASqO,EAAEpO,aACtD+a,SAAgC,OAArB1M,EAAI7E,EAAEjF,aAAuB8J,EAAE5M,WAAa,MAAQ,SAC5DyM,EAAE9C,4BAEP,OAAuBpK,EAAEga,EAAI,CAAExZ,SAAU+H,EAAoBrE,EAAE8V,EAAI,CAAExZ,SAAU,CACvE,UAAN7C,GAAiB4K,GAAqBvI,EACpC,MACA,CACE1D,MAAO6Q,EACPO,UAAW,oDACX,cAAe,gCACflN,SAA0BR,EAAE,MAAO,CAAEorB,IAAK7iB,EAAG8iB,IAAK,gBAAiB3d,UAAW,8BAG5E,UAAN/P,GAAiB4K,GAAqBvI,EACpC,MACA,CACE1D,MAAO6Q,EACPO,UAAW,oDACX,cAAe,gCACflN,SAA0B0D,EAAE,QAAS,CAAEonB,UAAU,EAAI5d,UAAW,0BAA2BlN,SAAU,CACnFR,EAAE,SAAU,CAAEorB,IAAK7iB,EAAG/L,KAAMkB,EAAElB,OAC9C,oDAIA,UAANmB,GAAiB4K,GAAqBrE,EACpC,QACA,CACE,cAAe,gCACf5H,MAAO,CACLyd,SAAgC,OAArBzM,EAAI9E,EAAEjF,aAAuB+J,EAAE7M,WAAa,MAAQ,OAEjE6qB,UAAU,EACV5d,UAAW,0CACXlN,SAAU,CACQR,EAAE,SAAU,CAAEorB,IAAK7iB,EAAG/L,KAAMkB,EAAElB,OAC9C,qDAIewD,EAAEga,EAAI,CAAA,MAC5BuR,GAAKpV,MAAOzY,IACb,IAAKA,EACH,MAAO,CAAEwtB,SAAU,KAAMC,QAAS,MACpC,MAAMxtB,EAAID,EAAElB,KAAKskB,MAAM,KAAK,GAC5B,IAAK,CAAC,QAAS,QAAS,SAASzD,SAAS1f,GACxC,MAAO,CAAEutB,SAAU,KAAMC,QAAS,MACpC,IAKE,MAAO,CAAED,SAAUvtB,EAAGwtB,cAJN,IAAIzU,QAAQ,CAAClO,EAAG0E,KAC9B,MAAMC,EAAI,IAAIqe,WACdre,EAAEse,OAAS,IAAMjjB,EAAE2E,EAAEue,QAASve,EAAEwe,QAAU,IAAMze,EAAE,IAAIgQ,MAAM,wBAAyB/P,EAAEye,cAAcluB,KAGzG,CAAE,MAAO6K,GACP,OAAO2V,QAAQC,MAAM5V,GAAI,CAAE2iB,SAAU,KAAMC,QAAS,KACtD,GACCU,GAAK,KACN,IAAItb,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,EACnB,MAAQ5I,SAAUtK,GAAM0K,KAAOwE,OAAQjP,GAAMoP,KAC3C8O,cAAetT,EACf2T,sBAAuB1T,EACvBmc,cAAezX,EACfwX,cAAevX,EACfyX,iBAAkBxX,GAChB2W,MAAQ8E,YAAaxb,EAAGyb,YAAaxb,EAAGgQ,SAAU/P,EAAG0G,sBAAuBzG,GAAM8a,MAAQna,QAASrQ,EAAGwQ,SAAUT,GAAMG,IAAK2B,EAAI7R,EAAEqK,SAAWggB,UAAWvY,EAAGwY,aAAcvY,GAAMoY,MAAQ3Q,iBAAkBxH,GAAMoH,MAAQuB,iBAAkB1I,GAAM2H,MAAQ2P,iBAAkBrX,GAAM+W,MAAQnM,iBAAkB3K,GAAM4K,KAAM3K,EAAI,CAC1TjQ,OAAQ,QAA2B,OAAlBsQ,EAAI7S,EAAEqB,cAAmB,EAASwR,EAAEjR,gCAClD3B,EAAEsN,6BAEFtN,EAAEuN,mCACJiF,EAAI,CACL1C,gBAAiB,OAAiC,OAAzB+C,EAAI9S,EAAEkH,qBAA0B,EAAS4L,EAAE3Q,QACpE9B,KAAM,aACHJ,EAAEkO,yBACJuE,EAAI,CACL3C,gBAAiB,OAAiC,OAAzBgD,EAAI/S,EAAEkH,qBAA0B,EAAS6L,EAAE5Q,QACpE9B,KAAM,aACHJ,EAAEkO,2BAEFlO,EAAEmO,iCAgEP,OAAuB5H,EACrB,QACA,CACE,cAAoC,OAApBwM,EAAIhT,EAAEuJ,gBAAqB,EAASyJ,EAAErJ,uBAAyB,cAC/E0iB,KAAM,SACNrc,UAAWF,EAAI,4BAA8B,6BAC7ClR,MAAOkR,EAAI,IAAK7P,EAAEsN,2BAA8BiF,EAChD1P,SAAU,CACQR,EACd,QACA,CACE0N,UAAW,mBACXqc,KAAM,OACNvtB,KAAM,OACN0tB,SA7EH/T,MAAOtF,IACZ,IAAIM,EAAGC,EAAGC,EAAGC,EACb,MAAMR,EAAID,EAAEiZ,OAAOgC,MACnB,IAAKhb,EACH,OACF,MAAMC,EAAIwK,MAAMC,KAAK1K,GACrB,GAAID,EAAEiZ,OAAOphB,MAAQ,GAAqB,OAAhByI,EAAIzT,EAAE6H,QAAkB4L,EAAExK,0BAA4BmJ,EAAEyE,EAAEoB,iBAAkB,CAAEmW,MAAO/a,KAAMsH,iBACnH,OACF,MAAMrH,EAAI3D,IACV,IAAK2D,EACH,OACF,MAAMC,EAAItB,EAAEqB,GACZ,IAAKC,EACH,OACF,MAAMC,EAAID,EAAEyX,KACZ,GAAS,MAALxX,EAAW,CACb,MAAMK,EAAI,GACV,IAAK,IAAIG,EAAK,EAAGA,EAAKX,EAAEqG,OAAQ1F,IAAM,CACpC,GAAIH,EAAEkT,KAAK1T,EAAEW,GAAImP,MAAmC,OAAzBzP,EAAI1T,EAAEkH,kBAA2BwM,EAAEpM,iBAC5D,SACF,MAAM2M,QAAU4Z,GAAGxa,EAAEW,KACpBC,EAAEuZ,WAAavZ,EAAEwZ,eAAiB5iB,EAAkBvI,EACnDirB,GACA,CACEvC,KAAM3X,EAAEW,GACRwZ,SAAUvZ,EAAEuZ,SACZC,QAASxZ,EAAEwZ,UAEZ,OACL,OACMlb,EAAE,MAAQsB,EAAEkK,KAAK,MAAiC,OAAzBpK,EAAI3T,EAAEkH,qBAA0B,EAASyM,EAAEtM,oBAAqBmM,EAAE,CAC/FsX,UAA8B,OAAlBlX,EAAIzD,EAAE1F,cAAmB,EAASmJ,EAAE5I,MAChD+O,SAAUnK,IACVkK,SAAUnK,IACViQ,SAAU/P,EACV8Z,iBAAkBrX,EAClB6L,cAAetT,EACf2T,sBAAuB1T,EACvBmc,cAAezX,EACfwX,cAAevX,EACfyX,iBAAkBxX,EAClBqL,iBAAkB1I,EAClBoY,UAAWvY,EACXwY,aAAcvY,EACdic,MAAO/a,GAEX,GAgCQlM,SAAoC,OAAzB8L,EAAIjT,EAAEkH,qBAA0B,EAAS+L,EAAE9L,SACtDC,OAAkC,OAAzB8L,EAAIlT,EAAEkH,qBAA0B,EAASgM,EAAE9L,OACpDhE,UAAW0M,IAjCd,MACL,IAAIsD,EAAGC,EACP,MAAMF,EAAIrD,EAA8B,OAAzBsD,EAAIpT,EAAEkH,qBAA0B,EAASkM,EAAEjR,KAAiC,OAAzBkR,EAAIrT,EAAEkH,qBAA0B,EAASmM,EAAE9P,aAC7G,OAAQ4P,GAAiB,iBAALA,EAMhBA,GAAqB7Q,EAAE,OAAQ,CAAE0N,UAAWF,EAAI,0BAA4B,2BAA4BhN,SAA0BR,EACpI6Q,EACA,CACEvU,MAAOkR,EAAI2C,EAAIC,MATiCpQ,EAClD,OACA,CACE0N,UAAWF,EAAI,0BAA4B,2BAC3ClR,MAAOkR,EAAI2C,EAAIC,KA6BfE,OAILyb,GAAK,KACN,IAAIjc,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,EACnB,MAAQnI,SAAUtK,GAAM0K,KAAOwE,OAAQjP,GAAMoP,KAAOsG,0BAA2B9K,GAAM4G,KAAQb,SAAU9F,GAAMwF,KAAOmF,iBAAkBjG,EAAGma,iBAAkBla,GAAM4Z,KAAM3Z,EAAIgB,EAAG,MAAOf,EAAIe,EAAG,OAAQd,EAAGC,GAAK0B,GAAE,GAAKzB,EAAI,CACrNvN,OAAQ,QAA2B,OAAlB6P,EAAIpS,EAAEqB,cAAmB,EAAS+Q,EAAExQ,gCAClD3B,EAAEoN,oBAEFpN,EAAEqN,0BACJlN,EAAI,CACL2P,gBAAiB,OAAwB,OAAhBsC,EAAIrS,EAAEuH,YAAiB,EAAS8K,EAAElQ,QAC3D9B,KAAM,aACHJ,EAAEgO,gBACJkC,EAAI,CACLJ,gBAAiB,OAAwB,OAAhBuC,EAAItS,EAAEuH,YAAiB,EAAS+K,EAAEnQ,QAC3D9B,KAAM,aACHJ,EAAEgO,kBAEFhO,EAAEiO,wBAEPyO,EAAE,KACA,MAAMjK,EAAKG,IACT,MAAMC,EAAID,EAAEyb,eACZ5e,EAAEjF,UAAYqI,EAAE6M,SAASjQ,EAAEjF,UAAYkF,EAAElF,UAAYqI,EAAE6M,SAAShQ,EAAElF,UAAYoF,GAAE,IAM/E+C,EAAI,KALA,MACL,GAAIlD,EAAEjF,SAAWkF,EAAElF,QAAS,CAC1B,MAAMoI,EAAIlD,EAAElF,QAAQwP,wBAAyBnH,EAAIpD,EAAEjF,QAAQ8jB,aAAcxb,EAAIF,EAAEwH,IAAMvH,EAAI,EACzFpD,EAAEjF,QAAQ7L,MAAM0b,KAAO,GAAGzH,EAAEyH,SAAU5K,EAAEjF,QAAQ7L,MAAMyb,IAAM,GAAGtH,KACjE,GAEAJ,IAEF,OAAOlU,SAAS+vB,iBAAiB,YAAa9b,GAAI9P,OAAO4rB,iBAAiB,SAAU5b,GAAI,KACtFnU,SAASgwB,oBAAoB,YAAa/b,GAAI9P,OAAO6rB,oBAAoB,SAAU7b,KAEpF,IAuBH,OAAuBpM,EAAE8V,EAAI,CAAExZ,SAAU,CACvBR,EACd,MACA,CACE,cAAoC,OAApBiQ,EAAIvS,EAAEuJ,gBAAqB,EAASgJ,EAAE7I,cAAgB,eACtE2iB,KAAM,SACN9tB,IAAKoR,EACLK,UAAW,IAAGR,EAAI,4BAA8B,4BAChD5Q,MAAO4Q,EAAIM,EAAI,IAAK7P,EAAEoN,kBACtBmO,YAtBE9I,IACNA,EAAE+I,iBAAkB5Q,EAAEJ,QAAUoF,GAAE,GAAMA,EAAG8C,IAAOA,IAsB9C7P,SArBC,MACL,IAAI6P,EAAGC,EACP,MAAMF,EAAIlD,EAAqB,OAAhBmD,EAAI3S,EAAEuH,YAAiB,EAASoL,EAAEpP,aAAgC,OAAhBqP,EAAI5S,EAAEuH,YAAiB,EAASqL,EAAEzQ,KACnG,OAAQuQ,GAAiB,iBAALA,EAMhBA,GAAqBpQ,EAAE,OAAQ,CAAE0N,UAAW,IAAGR,EAAI,0BAA4B,0BAA4B1M,SAA0BR,EAAEoQ,EAAG,CAAE9T,MAAO4Q,EAAIW,EAAI/P,MAN3GkC,EAClD,OACA,CACE0N,UAAW,IAAGR,EAAI,0BAA4B,0BAC9C5Q,MAAO4Q,EAAIW,EAAI/P,KAcL+R,KAGdvC,GAAqBtN,EAAE,MAAO,CAAE0N,UAAW,yBAA0BzR,IAAKmR,EAAG5M,SAA2D,OAAhD2P,EAAqB,OAAhBD,EAAIxS,EAAEuH,YAAiB,EAASiL,EAAEhL,WAAgB,EAASiL,EAAEvC,IAAI,CAACwC,EAAGC,IAAsBrQ,EACtL,OACA,CACE0N,UAAW,YACXwL,YAAc5I,GAvCV,EAACF,EAAGC,KACZD,EAAE+I,iBAAkB3Q,EAAEL,UAAYgF,EAAE3E,EAAEL,QAAQO,MAAQ2H,GAAIuM,WAAW,KACnE,MAAMtM,EAAI9H,EAAEL,QACZ,GAAImI,EAAG,CACLA,EAAE4W,QACF,MAAM3W,EAAID,EAAE5H,MAAM0O,OAClB9G,EAAE8b,kBAAkB7b,EAAGA,EACzB,GACC,KAAMhD,GAAE,IA+BaoC,CAAEW,EAAGF,GACzB5P,SAAU4P,GAEZC,UAGHgc,GAAK,KACN,IAAIhf,EAAGC,EAAGC,EACV,MAAQvF,SAAUtK,GAAM0K,KAAOwE,OAAQjP,GAAMoP,KAAOoF,eAAgB5J,EAAGub,YAAatb,GAAMmb,KAAMzW,EAAI,CAClGO,gBAAiB,OAAwB,OAAhBJ,EAAI3P,EAAE0D,YAAiB,EAASiM,EAAExN,QAC3D9B,KAAM,aACHJ,EAAE6N,gBACJ2B,EAAI,CACLM,gBAAiB,OAAwB,OAAhBH,EAAI5P,EAAE0D,YAAiB,EAASkM,EAAErM,gBAC3DlD,KAAM,aACHJ,EAAE6N,kBAEF7N,EAAE8N,wBAmBP,OAAuBzL,EACrB,MACA,CACE,cAAoC,OAApBuN,EAAI7P,EAAEuJ,gBAAqB,EAASsG,EAAErG,cAAgB,eACtE6iB,KAAM,SACN7Q,YAAa/C,MAAO3I,IAClBA,EAAE2L,uBAAwB3Q,KAE5BlM,MAAOiM,EAAI,IAAK5K,EAAEiN,kBAAqB,IAAKjN,EAAEiN,oBAAqBjN,EAAEkN,0BACrErK,SA3BG,MACL,IAAI1C,EAAG+P,EACP,MAAML,EAAIjF,EAAqB,OAAhBzK,EAAIJ,EAAE0D,YAAiB,EAAStD,EAAE+B,KAAwB,OAAhBgO,EAAInQ,EAAE0D,YAAiB,EAASyM,EAAE5M,aAC3F,OAAQuM,GAAiB,iBAALA,EAOhBA,GAAqBxN,EAAE,OAAQ,CAAE0N,UAAW,iBAAkB,cAAe,iBAAkBlN,SAA0BR,EAC3HwN,EACA,CACElR,MAAOiM,EAAI2E,EAAIC,EACf,cAAe,yBAXiCnN,EAClD,OACA,CACE0N,UAAW,iBACX,cAAe,iBACfpR,MAAOiM,EAAI2E,EAAIC,KAmBPC,MAGbkf,GAAK,KACN,IAAInf,EAAGC,EACP,MAAQpF,SAAUtK,GAAM0K,KAAOwE,OAAQjP,GAAMoP,KAAO0L,iBAAkBlQ,GAAMmP,KAAMlP,EAAI,CACpFiF,gBAAiB,OAAyB,OAAjBN,EAAIzP,EAAEoC,aAAkB,EAASqN,EAAEvM,iBAC5D7C,KAAM,UACNwuB,OAAQ,aACL5uB,EAAE+N,oBAaP,OAAuB1L,EACrB,MACA,CACE,cAAoC,OAApBoN,EAAI1P,EAAEuJ,gBAAqB,EAASmG,EAAEjG,kBAAoB,aAC1E4iB,KAAM,SACN7Q,YAAc7L,IACZA,EAAE2c,kBAAmBzhB,GAAE,IAEzBjM,MAAO,IAAKqB,EAAEmN,sBACdtK,SArBG,MACL,IAAI8M,EACJ,MAAMD,EAAsB,OAAjBC,EAAI5P,EAAEoC,aAAkB,EAASwN,EAAE1M,cAC9C,OAAQyM,GAAiB,iBAALA,EAOhBA,GAAqBrN,EAAE,OAAQ,CAAE0N,UAAW,sBAAuB,cAAe,sBAAuBlN,SAA0BR,EAAEqN,EAAG,CAAE/Q,MAAOkM,MAPjGxI,EAClD,OACA,CACE0N,UAAW,sBACX,cAAe,sBACfpR,MAAOkM,KAaC0E,MAUbsf,GAAK,KACN,IAAInf,EAAGC,EAAGC,EACV,MAAQvF,SAAUtK,GAAM0K,KAAOwE,OAAQjP,GAAMoP,KAAO0F,uBAAwBlK,EAAGwa,oBAAqBva,GAT9F,MACN,MAAQiK,uBAAwB/U,EAAGqlB,oBAAqBplB,EAAGqlB,sBAAuBza,GAAMwZ,KACxF,MAAO,CACLtP,uBAAwB/U,EACxBqlB,oBAAqBplB,EACrBqlB,sBAAuBza,IAIiFkkB,GAAMvf,EAAI,CAClHO,gBAAiB,OAA+B,OAAvBJ,EAAI3P,EAAEmD,mBAAwB,EAASwM,EAAExN,QAClE9B,KAAM,aACHJ,EAAEoO,uBACJoB,EAAI,CACLM,gBAAiB,OAA+B,OAAvBH,EAAI5P,EAAEmD,mBAAwB,EAASyM,EAAErM,gBAClElD,KAAM,aACHJ,EAAEoO,yBAEFpO,EAAEqO,+BAmBP,OAAuBhM,EACrB,MACA,CACE,cAAoC,OAApBuN,EAAI7P,EAAEuJ,gBAAqB,EAASsG,EAAEjG,qBAAuB,uBAC7EyiB,KAAM,SACN7Q,YAAa/C,MAAO3I,IAClBA,EAAE2L,uBAAwB3Q,KAE5BlM,MAAOiM,EAAI,IAAK5K,EAAEwN,yBAA4B,IAAKxN,EAAEwN,2BAA4BxN,EAAEyN,iCACnF5K,SA3BG,MACL,IAAI1C,EAAG+P,EACP,MAAML,EAAIjF,EAA4B,OAAvBzK,EAAIJ,EAAEmD,mBAAwB,EAAS/C,EAAE+B,KAA+B,OAAvBgO,EAAInQ,EAAEmD,mBAAwB,EAASgN,EAAE5M,aACzG,OAAQuM,GAAiB,iBAALA,EAOhBA,GAAqBxN,EAAE,OAAQ,CAAE0N,UAAW,wBAAyB,cAAe,wBAAyBlN,SAA0BR,EACzIwN,EACA,CACElR,MAAOiM,EAAI2E,EAAIC,EACf,cAAe,gCAXiCnN,EAClD,OACA,CACE0N,UAAW,wBACX,cAAe,wBACfpR,MAAOiM,EAAI2E,EAAIC,KAmBPC,MAGbsf,GAAK,KACN,IAAI1c,EAAGC,EAAGC,EACV,MAAQlI,SAAUtK,GAAM0K,KAAOwE,OAAQjP,GAAMoP,KAAO8O,cAAetT,GAAMwb,MAAQzV,SAAU9F,GAAMwF,KAAOsE,eAAgBpF,EAAG2Z,YAAa1Z,GAAMwZ,MAAQ3S,eAAgB5G,EAAGia,iBAAkBha,EAAG8F,iBAAkB7F,GAAMyZ,MAAQnM,iBAAkBrN,GAAMsN,KAAMrN,EAAIY,EAAG,KAAMtQ,EAAG+P,GAAKoB,GAAE,GACnRoL,EAAE,KACA,IAAIlK,EACa,OAAhBA,EAAIzS,EAAEkG,QAAkBuM,EAAEnM,aAAe8L,IAAKtC,EAAErF,QAAU,IAAMoF,KAChE,CAACzP,IAAKuc,EAAE,KACTnN,EA5hCI,EAACxP,EAAGC,EAAG4K,EAAGC,EAAG0E,EAAGC,EAAGC,KACzB,IAAIC,EACa,OAAhBA,EAAI3P,EAAEkG,QAAkByJ,EAAErJ,YAAc8hB,GAAGvd,EAAG4E,GAAKoY,GAClD7nB,EACAC,EACA4K,EACAC,EACA0E,EACAE,IAohCIuf,CACFjvB,EACAyP,EACA0C,EACAxC,EACAD,EACAI,EACAhF,GACEie,MACH,CAACvZ,IACJ,MAAMyC,EAAI,CACRlC,gBAAiB,OAAwB,OAAhBuC,EAAItS,EAAEkG,YAAiB,EAASoM,EAAEnQ,QAC3D9B,KAAM,aACHJ,EAAEsO,gBACJ2D,EAAI,CACLnC,gBAAiB,OAAwB,OAAhBwC,EAAIvS,EAAEkG,YAAiB,EAASqM,EAAEhP,gBAC3DlD,KAAM,aACHJ,EAAEsO,kBAEFtO,EAAEuO,wBACJ2D,EAAI,KACLhC,EAAGsC,IAAOA,IACTL,EAAIqG,UACL,MAAMhG,EAAI,IAAIyc,KAAKpf,EAAErF,QAAS,CAAE3L,KAAM,cAAgB4T,EAAI,IAAIyc,KAAK,CAAC1c,GAAI,kBAAmB,CAAE3T,KAAM,cAAgB6T,QAAUkb,GAAGnb,IAC/HC,EAAE6a,WAAa7a,EAAE8a,eAAiB5iB,EAAkBvI,EACnDirB,GACA,CACEvC,KAAMtY,EACN8a,SAAU7a,EAAE6a,SACZC,QAAS9a,EAAE8a,UAEZ,SAaL,OAAuBnrB,EACrB,MACA,CACE,cAAoC,OAApBkQ,EAAIxS,EAAEuJ,gBAAqB,EAASiJ,EAAE1I,cAAgB,eACtEuiB,KAAM,SACN7Q,YAAa/C,MAAOhG,IAClBA,EAAEgJ,kBAAmB7L,SAAWH,KAElC7Q,MAAO4Q,IAAMI,EAAI,IAAK3P,EAAE0N,kBAAqB,IAAK1N,EAAE0N,oBAAqB1N,EAAE2N,0BAC3EoC,UAAWR,IAAMI,EAAI,2BAA6B,4BAClD9M,SAtBG,MACL,IAAI4P,EAAGC,EACP,MAAMF,EAAIjD,EAAqB,OAAhBkD,EAAI1S,EAAEkG,YAAiB,EAASwM,EAAEvQ,KAAwB,OAAhBwQ,EAAI3S,EAAEkG,YAAiB,EAASyM,EAAEpP,aAC3F,OAAQkP,GAAiB,iBAALA,EAOhBA,GAAqBnQ,EAAE,OAAQ,CAAE0N,UAAW,mBAAkBR,IAAMI,EAAI,KAAO,IAAM9M,SAA0BR,EAAEmQ,EAAG,CAAE7T,MAAO4Q,IAAMI,EAAIqC,EAAIC,MAP3F5P,EAClD,OACA,CACE0N,UAAW,kBAAiBR,IAAMI,EAAI,MAAQ,IAC9C,cAAe,iBACfhR,MAAO4Q,IAAMI,EAAIqC,EAAIC,KAcbG,MAGb+c,GAAK,KACN,IAAIjd,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,EACzB,MAAQpI,SAAUtK,GAAM0K,KAAOwE,OAAQjP,GAAMoP,KAAOoG,iBAAkB5K,GAAM4G,KAAO3G,EAAG0E,GAAK+B,GAAE,IAAO2L,iBAAkBzN,GAAM0N,KAAMzN,EAAI,CACpI0M,gBAAoC,OAAlBjK,EAAInS,EAAEqB,cAAmB,EAAS8Q,EAAE7Q,gBACnDrB,EAAE8M,iBACJ4C,EAAI,CACLpN,OAAQ,QAA2B,OAAlB6P,EAAIpS,EAAEqB,cAAmB,EAAS+Q,EAAExQ,6BACrDwa,gBAAoC,OAAlB/J,EAAIrS,EAAEqB,cAAmB,EAASgR,EAAE/Q,gBACnDrB,EAAE8M,mBAEF9M,EAAEgN,yBACJ2C,EAAI,CACLwM,gBAAoC,OAAlB9J,EAAItS,EAAEqB,cAAmB,EAASiR,EAAE/Q,kBACnDtB,EAAE8M,mBAEF9M,EAAE+M,wBACJ6C,EAAI,CACLE,gBAAiB,OAA4B,OAApBwC,EAAIvS,EAAEqE,gBAAqB,EAASkO,EAAE3N,kBAC/DvE,KAAM,UACHJ,EAAEwO,eACJqB,EAAI,CACLC,gBAAiB,OAA4B,OAApByC,EAAIxS,EAAEqE,gBAAqB,EAASmO,EAAE5N,kBAC/DvE,KAAM,UACHJ,EAAEwO,iBAEFxO,EAAEyO,uBACJtO,EAAI,CACL2P,gBAAiB,OAA4B,OAApB0C,EAAIzS,EAAEqE,gBAAqB,EAASoO,EAAE7N,kBAC/DvE,KAAM,UACHJ,EAAEwO,iBAEFxO,EAAE0O,sBAsBP,OAAuBrM,EACrB,MACA,CACE,cAAoC,OAApBoQ,EAAI1S,EAAEuJ,gBAAqB,EAASmJ,EAAE7I,aAAe,eACrEwiB,KAAM,SACN/Q,aA1BG,KACL9L,GAAE,IA0BA+L,aAzBG,KACL/L,GAAE,IAyBAgM,YAAa/C,MAAO9F,IACb,MAALA,GAAaA,EAAE8I,kBAAmB5Q,SAAW4E,KAE/C7Q,MAAOiM,EAAI8E,EAAI7E,EAAI8E,EAAIF,EACvBM,UAAW,kBACXlN,SA7BG,MACL,IAAI8P,EACJ,MAAMD,EAAyB,OAApBC,EAAI5S,EAAEqE,gBAAqB,EAASuO,EAAEhO,eACjD,OAAQ+N,GAAiB,iBAALA,EAOhBA,GAAqBrQ,EAAE,OAAQ,CAAE0N,UAAW,gBAAiB,cAAe,gBAAiBlN,SAA0BR,EACzHqQ,EACA,CACE/T,MAAOiM,EAAIiF,EAAIhF,EAAI1K,EAAIyP,MAVyBvN,EAClD,OACA,CACE0N,UAAW,gBACX,cAAe,gBACfpR,MAAOiM,EAAIiF,EAAIhF,EAAI1K,EAAIyP,KAqBfqC,MAG6Bmd,GAAK,CAACrvB,EAAGC,KACpD,IAAI2P,EAAGC,EAAGC,EAAG1P,EAAG+P,EAAG8B,EAAGC,EAAGC,EAAGC,EAC5B,MAAMvH,EAAI,CACR,CAACxL,EAAEC,cAAgC,OAAhBsQ,EAAI5P,EAAE0D,YAAiB,EAASkM,EAAExM,SACrD,CAAC/D,EAAEG,mBAAuC,OAAlBqQ,EAAI7P,EAAEqB,cAAmB,EAASwO,EAAEhO,SAC5D,CAACxC,EAAEO,qBAAuC,OAAhBkQ,EAAI9P,EAAEuH,YAAiB,EAASuI,EAAE1M,SAC5D,CAAC/D,EAAEM,wBAAmD,OAAzBS,EAAIJ,EAAEkH,qBAA0B,EAAS9G,EAAEgD,SACxE,CAAC/D,EAAEE,qBAA8C,OAAvB4Q,EAAInQ,EAAEmD,mBAAwB,EAASgN,EAAE/M,SACnE,CAAC/D,EAAEI,sBAAsB,EACzB,CAACJ,EAAEK,sBAAwC,OAAhBuS,EAAIjS,EAAEkG,YAAiB,EAAS+L,EAAE7O,UAC5D0H,EAAI,GAAI0E,EAAK6C,GAAMA,EAAIA,EAAEnC,IAAKoC,IAC/B,GAAgB,iBAALA,EAAe,CACxB,GAZE,CAACtS,GAAMyf,OAAO6P,OAAOjwB,GAAGsgB,SAAS3f,GAY/BuvB,CAAGjd,KAAOzH,EAAEyH,GAAI,CAClB,GAAIxH,EAAEwH,GACJ,OAAOxH,EAAEwH,GACX,MAAMC,EAAItS,EAAEqS,GACZ,GAAgB,mBAALC,EAAiB,CAC1B,MAAMC,EAAID,IACV,OAAOzH,EAAEwH,GAAKE,EAAGA,CACnB,CACA,OAAO,IACT,CACA,OAAO,IACT,CACA,OAAOF,IACN+Q,OAAQ/Q,GAAY,OAANA,GAAc,GAC/B,MAAO,CAAElQ,OAD8BoN,EAAoB,OAAjB0C,EAAIlS,EAAEoC,aAAkB,EAAS8P,EAAEjP,SACzDoB,UADuEmL,EAAuB,OAApB2C,EAAInS,EAAEqE,gBAAqB,EAAS8N,EAAElP,SAClGsD,OADgHiJ,EAAoB,OAAjB4C,EAAIpS,EAAEuG,aAAkB,EAAS6L,EAAEnP,WAEmFusB,GAAK,KAChR,MAAQllB,SAAUtK,GAAM0K,IAAKzK,EAAI0rB,EAAG,KAAA,CAClC,CAACtsB,EAAEG,mBAAoB,IAF+E8C,EAAEssB,GAAI,IAG5G,CAACvvB,EAAEC,cAAe,IAHQgD,EAAEqsB,GAAI,CAAA,GAIhC,CAACtvB,EAAEE,qBAAsB,IAJuC+C,EAAEwsB,GAAI,CAAA,GAKtE,CAACzvB,EAAEO,qBAAsB,IALqO0C,EAAE+rB,GAAI,CAAA,GAMpQ,CAAChvB,EAAEM,wBAAyB,IAN4L2C,EAAE6rB,GAAI,CAAA,GAO9N,CAAC9uB,EAAEI,qBAAsB,IAPyJ6C,EAAE8sB,GAAI,CAAA,GAQxL,CAAC/vB,EAAEK,sBAAuB,IARkH4C,EAAE0sB,GAAI,MAShJ,KAAO5sB,OAAQyI,EAAGxG,UAAWyG,EAAGvE,OAAQiJ,GAAMmc,EAAG,IAAM0D,GAAGrvB,EAAGC,GAAI,CAACD,EAAGC,IACzE,MAAO,CAAEwvB,cADyE9D,EAAG,IAAM9gB,EAAG,CAACA,IACpE6kB,iBAD6E/D,EAAG,IAAM7gB,EAAG,CAACA,IACrE6kB,cAD8EhE,EAAG,IAAMnc,EAAG,CAACA,MAE1IogB,GAAK,KACN,MAAQtlB,SAAUtK,GAAM0K,KAAOwE,OAAQjP,GAAMoP,KAAOuM,kBAAmB/Q,EAAGgR,kBAAmB/Q,GAAMgR,MACjG5G,qBAAsB1F,EACtB2F,wBAAyB1F,EACzB2F,qBAAsB1F,EACtB2F,wBAAyB1F,GACvB8B,KAAQV,YAAanB,GAAMU,KAAOsJ,iBAAkB/J,GAAM2J,KAAM1J,EAAI2J,EAAEhB,UACxE,IAAIxG,EAAGC,EACP,MAAM9R,EAAIkhB,KACV,IAAKlhB,GAAsB,OAAhB6R,EAAIjS,EAAE6H,QAAkBoK,EAAE1J,2BAA6BsH,EAAEgH,EAAEe,kBAAmB,CAAA,IAAK+C,iBAC5F,OACFlL,GAAE,GACF,MAAMU,GAAwB,OAAlB+B,EAAItC,EAAEnF,cAAmB,EAASyH,EAAE0I,eAAiB,EAhmDxD,EAAC5a,EAAGC,EAAG4K,EAAGC,EAAG0E,EAAGC,EAAGC,EAAGC,EAAGC,KACpC,IAAIC,EACJ,GAAIoR,IAAK,EAAS,MAALpW,EACX,IACE,MAAMiF,EAAI4Q,GAAmBpe,EAAEyd,GAAI,CAAA,GAAK,UAAW3f,EAAIoP,EAAE/E,QAAQ8b,MAAM,GACvEzb,EAAE,CAACgF,KAAM1P,IACT,MAAM+P,EAAItF,EAAEqF,IAAK+B,IACf,GAAe,WAAXA,EAAEnT,KAAmB,CACvB,MAAMoT,EAAIoQ,GAAGrQ,EAAEiK,QAASlc,EAAGC,GAC3B,MAAO,IAAKgS,EAAGiK,QAAShK,EAC1B,CACA,OAAOD,IAETiN,WAAW,KACT,IAAI/M,EACJ,MAAMF,EAAIzC,EAAE/E,QAAQ8b,MAAM,GAC1B,IAAIrU,EAA2B,OAAtBC,EAAInS,EAAE8D,cAAwBqO,EAAE/N,SAAWsc,GAAmBpe,EAAEga,EAAI,CAAA,GAAK,UAAYoE,GAAmBpe,EAAEwd,GAAI,IAAK,UAC5HhV,EAAE,IAAIqF,EAAG+B,KAAMD,IAAKrC,GAAE,IACrB,KAAMsP,WAAW,KAClB,IAAKzP,EAAEhF,QACL,OACF,MAAQmQ,aAAc3I,GAAMxC,EAAEhF,QAASyH,EAAID,EAAIvC,EAC/CD,EAAEhF,QAAQoQ,WAAa3I,EAAGvC,GAAE,IAC3B,IACL,CAAE,MACAqR,GAAG6O,WAAkC,OAAtBhgB,EAAI7P,EAAE8D,kBAAuB,EAAS+L,EAAE7L,WACzD,GAukDA8rB,CACE9vB,EACAC,EACAG,EACAyK,EACAC,EACA8E,EACAO,EACAV,EACAE,IAED,CACD3P,EACAC,EACA4P,EACA/E,EACA8E,EACAH,EACAE,IAEF,MAAO,CAAEuF,qBAAsB1F,EAAG2F,wBAAyB1F,EAAG2F,qBAAsB1F,EAAGqgB,gBAAiBjgB,IACvGkgB,GAAK,KACN,IAAIpgB,EAAGC,EAAGC,EACV,MAAQxF,SAAUtK,GAAM0K,KAAOwE,OAAQjP,GAAMoP,KAAO0gB,gBAAiBllB,GAAM+kB,MAAO9kB,EAAG0E,GAAK+B,GAAE,GAAK9B,EAAI,CACnG2L,MAA0B,OAAlBxL,EAAI5P,EAAEqB,cAAmB,EAASuO,EAAEtO,aAC5C+Z,YAAgC,OAAlBxL,EAAI7P,EAAEqB,cAAmB,EAASwO,EAAEvO,gBAC/CrB,EAAE4M,0BAEF5M,EAAE6M,+BAEP,OAAuBxK,EAAE,MAAO,CAAE0N,UAAW,6BAA8BlN,SAA0BR,EACnG,MACA,CACEgZ,aAAc,KACZ9L,GAAE,IAEJ+L,aAAc,KACZ/L,GAAE,IAEJ5Q,MAAOkM,EAAI2E,EAAI,IAAKxP,EAAE4M,wBACtB2O,YAAcpb,IACZA,EAAEqb,iBAAkB5Q,KAEtBmF,UAAW,0BACXqc,KAAM,SACN4D,SAAU,EACVntB,SAA0BR,EAAE,IAAK,CAAEQ,SAAiC,OAAtBgN,EAAI9P,EAAE8D,kBAAuB,EAASgM,EAAE5L,iCAoBzFgsB,GAAK,KACN,IAAIvd,EAAGC,EAAGC,EAAGC,EACb,MAAM9S,EAAI0rB,MAAQphB,SAAUrK,GAAMyK,KAChCyc,gBAAiBtc,GACfwb,MACFlS,YAAarJ,EACbwJ,iBAAkB9E,EAClB4G,eAAgB3G,EAChB8E,0BAA2B7E,EAC3BgG,0BAA2B/F,EAC3B+E,wBAAyB9E,EACzBiF,wBAAyBhF,EACzB0F,qBAAsBzF,EACtB0F,qBAAsBpV,EACtBoU,0BAA2BrE,GACzBsB,KAAQV,YAAakB,GAAM3B,KAAOmG,eAAgBvE,EAAGwE,kBAAmBvE,EAAGyE,iBAAkBxE,EAAG6I,eAAgB5I,GAAM2H,MAAQuL,mBAAoBjT,GAAM+R,MAAQ8L,uBAAwB5d,GAhCtL,MACN,IAAI7C,EACJ,MAAQpF,SAAUtK,GAAM0K,KAAOqL,kBAAmB9V,EAAG+V,qBAAsBnL,EAAGoL,eAAgBnL,EAAGoL,kBAAmB1G,GAAMiC,IAAMhC,EAAIgK,EAAE,KACpI,IAAI7J,EACJ,GAAI/E,GAAE,IAAMC,GAAiE,sBAAxC,OAAlB8E,EAAI5P,EAAEqB,cAAmB,EAASuO,EAAE9N,mBAA4C0N,GAAE,IAAM5M,OAAO6iB,yBAEhH,YADAjF,QAAQkF,KAAK,8DAGf,MAAM/V,EAAI,IAAI/M,OAAO6iB,yBACrB9V,EAAE1N,KAAO,GAAI0N,EAAEwY,MAAQ,KACrBvlB,OAAO6rB,oBAAoB,QAAShf,GAAI7M,OAAO6rB,oBAAoB,UAAWhf,GAAI7M,OAAO6rB,oBAAoB,aAAchf,IAC1H7M,OAAOgjB,gBAAgBG,MAAMpW,IAC/B,CAAC7E,EAAsB,OAAlB4E,EAAI1P,EAAEqB,cAAmB,EAASqO,EAAE5N,mBAC5C,MAAO,CACLiU,kBAAmB9V,EACnBkwB,uBAAwB1gB,IAiBwK2gB,IAAQL,gBAAiBvd,GAAMod,KAAMnd,EAAI/B,EAAG,GAAIgC,EAAIhC,GAAG,GACzPiM,EAAE,KAAO/Z,OAAO4rB,iBAAiB,QAASjc,GAAI3P,OAAO4rB,iBAAiB,UAAWjc,GAAI3P,OAAO4rB,iBAAiB,aAAcjc,GAAI,KAC7H3P,OAAO6rB,oBAAoB,QAASlc,GAAI3P,OAAO6rB,oBAAoB,UAAWlc,GAAI3P,OAAO6rB,oBAAoB,aAAclc,KACzH,IAAKoK,EAAE,KACT,MAAM5J,EAAId,EAAExH,QACZ,IAAKsI,EACH,OACF,MAAMC,EAAI,KACRN,EAAEjI,UAAYiI,EAAEjI,SAAU,EAAIqQ,sBAAsB,KAClD,IAAIzH,EAAGC,EACP,IAAKP,EACH,OACF,MAAQ8H,UAAW5H,EAAGkH,aAAcjH,EAAG0H,aAAczH,GAAMJ,EAAGK,EAAIH,EAAIC,EAAIC,IAA4B,OAArBE,EAAIpT,EAAE+E,iBAAsB,EAASqO,EAAE/N,sBAAwB,IAChJwK,EAAEsD,GAAIhT,EAAEqK,QAAU2I,EAAGA,IAAMH,EAAIC,GAAKC,EAAI,IAAMJ,EAAE8H,UAAY1H,EAAID,EAAI,IAAK/C,EAAE1F,SAA8B,OAAlB6I,EAAIrT,EAAEoB,UAAoBiS,EAAEzR,WAAa4N,EAAE,IAAKiD,EAAEjI,SAAU,MAGvJ,OAAOsI,EAAEyb,iBAAiB,QAASxb,EAAG,CAAEqd,SAAS,IAAOtd,EAAEyb,iBAAiB,YAAaxb,EAAG,CAAEqd,SAAS,IAAO,KAC3Gtd,EAAE0b,oBAAoB,QAASzb,GAAID,EAAE0b,oBAAoB,YAAazb,KAEvE,IAAK2J,EAAE,KACR,IAAI5J,EAAGC,EAAGC,EACVtD,EAAuB,OAApBoD,EAAI9S,EAAEoE,gBAAqB,EAAS0O,EAAE3P,UAAWsM,EAAwB,OAArBsD,EAAI/S,EAAE+E,iBAAsB,EAASgO,EAAEzN,aAAcqK,EAAmB,OAAhBqD,EAAIhT,EAAEyD,YAAiB,EAASuP,EAAE5P,kBAAmB6b,WAAW,KAC7K,IAAIhM,EACJrD,EAAmB,OAAhBqD,EAAIjT,EAAEiG,YAAiB,EAASgN,EAAE7P,mBACpC,IACF,IAAKsZ,EAAE,KACR,IAAI5J,EACoB,OAAvBA,EAAI9S,EAAEkD,eAAyB4P,EAAE3P,UAAYkP,KAC7C,CAAyB,OAAvBK,EAAI1S,EAAEkD,mBAAwB,EAASwP,EAAEvP,WAAYuZ,EAAE,MACzDvc,EAAEqK,SAAiB,MAALwH,GAAaA,EAAExH,SAAY4H,KACzC,CAACvH,IAAK6R,EAAE,KACT,IAAI5J,EAAGC,EACP,GAA2B,OAAtBD,EAAI9S,EAAE6D,cAAwBiP,EAAE3P,SA7tDvC4d,IAAMA,GAAG6O,WAAW3O,SA+tDb,GAAIU,GAAG3hB,GAAIqhB,KAAK5H,OAAS,EAAG,CAC/B,MAAMxG,EAAIwN,GAAmBpe,EAAE0tB,GAAI,CAAA,GAAK,UACxCnlB,EAAE,CAACqI,IAA4B,OAAtBF,EAAI/S,EAAE6D,cAAwBkP,EAAE5O,UAAYoO,GACvD,GACC,CAAwB,OAAtBI,EAAI3S,EAAE6D,kBAAuB,EAAS8O,EAAE5O,WAAmC,OAAtB6O,EAAI5S,EAAE6D,kBAAuB,EAAS+O,EAAE9O,WAAmC,OAAtB+O,EAAI7S,EAAE6D,kBAAuB,EAASgP,EAAE1P,WAAYuZ,EAAE,KACnK,IAAI5J,EACJ/S,GAAwB,OAAlB+S,EAAI9S,EAAEoB,UAAoB0R,EAAElR,WAAawmB,UAAUiI,kBAAoBjI,UAAUiI,gBAAgBC,iBAAkB,EAAIlI,UAAUiI,gBAAgB9B,iBAAiB,iBAAmBxb,IACzL,IAAKA,EAAEoZ,OACL,OACF,MAAQ3S,EAAGxG,EAAGX,EAAGY,EAAGpM,MAAOqM,EAAGpM,OAAQqM,GAAMJ,EAAEoZ,OAAOoE,aAChD,GAALvd,GAAe,GAALC,GAAe,GAALC,GAAe,GAALC,GAAU8L,WAAW,KACjD,IAAI7L,EACJlB,EAAiC,OAA9BkB,EAAIzQ,OAAOkR,qBAA0B,EAAST,EAAEtM,SAClD,KAAMmY,WAAW,KAClB,IAAI7L,EAAGC,EACPpB,IAAqC,OAA9BmB,EAAIzQ,OAAOkR,qBAA0B,EAAST,EAAEtM,SAAWoL,EAAiC,OAA9BmB,EAAI1Q,OAAOkR,qBAA0B,EAASR,EAAEvM,SACpH,OAASmY,WAAW,KACrB,IAAI7L,EACJlB,GAAkC,OAA9BkB,EAAIzQ,OAAOkR,qBAA0B,EAAST,EAAEtM,QAAUqM,IAC7D,SAEJ,CAACpT,IAAK2c,EAAE,KACT,IAAIxJ,EAAGC,EAAGC,EAAGC,EACb,GAAItT,EACF,OACFwP,IAAM2C,EAAiC,OAA9BgB,EAAIvQ,OAAOkR,qBAA0B,EAASX,EAAEpM,QAASqL,EAAiC,OAA9BgB,EAAIxQ,OAAOkR,qBAA0B,EAASV,EAAEtM,QACrH,MAAMiM,EAAI,IAAMnQ,OAAO6tB,SAAS,CAAEpW,IAAK,EAAGC,KAAM,EAAGoW,SAAU,SAAW1d,EAAI,IAAMP,EAAEhI,QAAU7H,OAAO+tB,QAAS1d,EAAI,KAChH,IAAIM,EAAGC,EACPrB,EAAiC,OAA9BoB,EAAI3Q,OAAOkR,qBAA0B,EAASP,EAAExM,QAASqL,EAAiC,OAA9BoB,EAAI5Q,OAAOkR,qBAA0B,EAASN,EAAE1M,QAC9GoM,EAAI,KACL,IAAIK,EACJ3Q,OAAO6rB,oBAAoB,SAAU1b,GAAInQ,OAAO6rB,oBAAoB,SAAUzb,GAAmC,OAA9BO,EAAI3Q,OAAOkR,iBAA2BP,EAAEkb,oBAAoB,SAAUxb,IAE3J,OAAOzD,GAAK0D,IAAKzU,SAASgkB,KAAK7jB,MAAMgyB,SAAW,QAAShuB,OAAO4rB,iBAAiB,SAAUzb,GAAmC,OAA9BM,EAAIzQ,OAAOkR,iBAA2BT,EAAEmb,iBAAiB,SAAUvb,KAAOxU,SAASgkB,KAAK7jB,MAAMgyB,SAAW,SAAU1d,IAAKtQ,OAAO6tB,SAAS,CAAEpW,IAAK5H,EAAEhI,QAAS6P,KAAM,EAAGoW,SAAU,SAAW9tB,OAAO4rB,iBAAiB,SAAUxb,GAAmC,OAA9BM,EAAI1Q,OAAOkR,iBAA2BR,EAAEmb,oBAAoB,SAAUxb,IAAKC,GACzY,CAAC1D,EAAGxP,KAKN6wB,GAHY,uEAGSC,GAFF,UAE8BC,GADhC,uBA2BjBC,GAAKvY,MAAOzY,EAAGC,KAChB,MAAQ0gB,GAAI9V,EAAGomB,QAASnmB,EAAGomB,QAAS1hB,EAAIqhB,GAAIM,cAAe1hB,EAAIqhB,IAAO7wB,EAAGyP,EAAI5E,QATvE2N,OAAOzY,EAAGC,KAChB,MAAM4K,EAAI,GAAG5K,KAAKD,cAClB,IACE,MAAM8K,QAAU+Z,MAAMha,GACtB,OAAOC,EAAEsmB,UAAYtmB,EAAEumB,QAAQJ,SAAWzQ,QAAQC,MAAM,kCAAkC5V,KAAM,KAClG,CAAE,MAAOC,GACP,OAAO0V,QAAQC,MAAM,kCAAkC5V,IAAKC,GAAI,IAClE,GAEwFwmB,CAAGzmB,EAAG2E,GAC9F,IAAKE,EACH,OAAO8Q,QAAQC,MAAM,qCAAqC5V,KAAM,CAAEP,SAAU,CAAA,EAAIinB,aAAc,CAAA,EAAIC,cAAe,IACnH,MAAM7hB,EA9B2E,EAAC3P,EAAGC,EAAG4K,KACxF,MAAMC,EAAIgX,aAAaG,QAAQ,GAAG8O,MAAM/wB,KAAKC,KAC7C,IAAK6K,EACH,OAAO,KACT,IACE,MAAM0E,EAAIkS,KAAKK,MAAMjX,GAAI2E,GAAI,IAAqBoR,MAAQ4Q,UAAW/hB,EAAIkX,KAAK8K,MAAMjiB,EAAI,KACxF,OAAOD,EAAEmiB,UAAY9mB,GAAK6E,EAAIF,EAAI,IACpC,CAAE,MAAOA,GACP,OAAOgR,QAAQC,MAAM,6BAA6BzgB,IAAKwP,GAAI,IAC7D,GAqBUoiB,CAAG/mB,EAAG6E,EAAGD,GACnB,GAAIE,EAAG,CACL,MAAM2C,EAAIuf,GAAG7xB,EAAG2P,EAAE6hB,eAClB,MAAO,CAAElnB,SAAUqF,EAAErF,SAAUinB,aAAc5hB,EAAE4hB,aAAcC,cAAelf,EAC9E,CACA,MAAM1C,EAAI,GAAGJ,KAAK3E,KAAK6E,eAAgBG,EAAI,GAAGL,KAAK3E,KAAK6E,kBAAmBI,EAAI,GAAGN,KAAK3E,KAAK6E,gBAC5F,IAAItP,EAAI,GACR,MAAM+P,QAAU0U,MAAMjV,GACtBO,EAAEihB,GAAKhxB,QAAU+P,EAAElO,OAASue,QAAQkF,KAAK,mCAAmC9V,KAC5E,MAAMqC,QAAU4S,MAAMhV,GACtB,IAAIqC,EAAI,CAAA,EACRD,EAAEmf,GAAKlf,QAAUD,EAAEof,OAAS7Q,QAAQkF,KAAK,sCAAsC7V,KAC/E,MAAMsC,QAAU0S,MAAM/U,GACtB,IAAIsC,EAAI,CAAA,EACRD,EAAEif,GAAKhf,QAAUD,EAAEkf,OAAS7Q,QAAQkF,KAAK,oCAAoC5V,KAlCvE,EAAC9P,EAAGC,EAAG4K,EAAGC,EAAG0E,KACnB,MAAMC,GAAI,IAAqBoR,MAAQ4Q,UAAoC9hB,EAAI,CAC7ErF,SAAUO,EACV0mB,aAAczmB,EACd0mB,cAAehiB,EACfmiB,UAJoD/K,KAAK8K,MAAMjiB,EAAI,MAMrEqS,aAAaL,QAAQ,GAAGsP,MAAM/wB,KAAKC,IAAKyhB,KAAKC,UAAUhS,KA2B4BmiB,CAAGjnB,EAAG6E,EAAGwC,EAAGE,EAAGhS,GAElG,MAAO,CAAEkK,SAAU4H,EAAGqf,aAAcnf,EAAGof,cAD7BK,GAAG7xB,EAAGI,KAEfyxB,GAAK,CAAC7xB,EAAGC,IAAMA,EAAEmjB,MAAM,IAAI2O,OAAO,WAAW7hB,IAAKpF,IACnD,MAAM0E,EAAI1E,EAAEyT,OACZ,OAAO/O,EAAEiV,WAAW,YAAcjV,EAAEiV,WAAW,eAAiBjV,EAAEiV,WAAW,UAAYjV,EAAIA,EAAI,IAAIxP,KAAKwP,IAAM,KAC/GuO,KAAK,MACkCiU,GAAKvZ,MAAOzY,EAAGC,EAAG4K,EAAGC,KAC7D,IAAI6E,EAAGC,EACP,IAAIJ,EAFSyiB,GAAG7wB,GAEFqO,EAFkBwiB,GAAGhnB,GAEXyE,EAAI,GAC5B,GAAS,MAAL5E,EACF,GAAI+S,MAAMK,QAAQpT,GAChB,IAAK,MAAM+E,KAAK/E,EAAG,CACjB,MAAMgF,QAAUkhB,GAAGhxB,EAAG6P,GACtBL,EAAI0iB,GAAGpiB,EAAExF,SAAUkF,GAAIC,EAAIyiB,GAAGpiB,EAAEyhB,aAAc9hB,GAAIC,GAAKI,EAAE0hB,aAC3D,KACG,CACH,MAAM3hB,QAAUmhB,GAAGhxB,EAAG8K,GACtB0E,EAAI0iB,GAAGriB,EAAEvF,SAAUkF,GAAIC,EAAIyiB,GAAGriB,EAAE0hB,aAAc9hB,GAAIC,GAAKG,EAAE2hB,aAC3D,CACF,OAAY,MAALvxB,IAAcuP,EAAI0iB,GAAGjyB,EAAGuP,IAAU,MAAL3E,IAAc4E,EAAIyiB,GAAGrnB,EAAG4E,IAA0D,OAA/B,OAApBE,EAAIH,EAAEnL,gBAAqB,EAASsL,EAAEhL,YAA2C,OAApBiL,EAAIJ,EAAEnL,gBAAqB,EAASuL,EAAEjL,UAAY,MAAQ6K,EAAEnL,UAAUM,SAAW,KAAM,CAAE2F,SAAUkF,EAAG+hB,aAAc9hB,EAAG+hB,cAAe9hB,IACrQwiB,GAAK,CAAClyB,EAAGC,KACV,MAAM4K,EAAI,CAAC,CAAEsnB,OAAQnyB,EAAGosB,OAAQnsB,IAChC,KAAO4K,EAAE6O,QAAU,CACjB,MAAM5O,EAAID,EAAEunB,MACZ,GAAS,MAALtnB,EACF,SACF,MAAQqnB,OAAQ3iB,EAAG4c,OAAQ3c,GAAM3E,EACjC,IAAK,MAAM4E,KAAK+P,OAAOC,KAAKlQ,GAAI,CAC9B,MAAMG,EAAID,EACV,GAAIO,EAAGT,EAAEG,IACPF,EAAEE,GAAKH,EAAEG,QACN,GAAmB,iBAARH,EAAEG,IAA2B,OAATH,EAAEG,IAAgBkO,MAAMK,QAAQ1O,EAAEG,IAGpE,IACEF,EAAEE,GAAKH,EAAEG,EACX,CAAE,MACF,MALgB,iBAARF,EAAEE,IAA2B,OAATF,EAAEE,MAAiBF,EAAEE,GAAK,IAAK9E,EAAEkc,KAAK,CAAEoL,OAAQ3iB,EAAEG,GAAIyc,OAAQ3c,EAAEE,IAMhG,CACF,CACA,OAAO1P,GACNgyB,GAAMjyB,IACP,GAAU,OAANA,GAA0B,iBAALA,EACvB,OAAOA,EACT,MAAMC,EAAI4d,MAAMK,QAAQle,GAAK,GAAK,CAAA,EAAI6K,EAAI,CAAC,CAAEsnB,OAAQnyB,EAAGosB,OAAQnsB,IAAM6K,EAAoB,IAAIunB,QAC9F,IAAKvnB,EAAE+b,IAAI7mB,EAAGC,GAAI4K,EAAE6O,QAAU,CAC5B,MAAMlK,EAAI3E,EAAEunB,MACZ,GAAS,MAAL5iB,EACF,SACF,MAAQ2iB,OAAQ1iB,EAAG2c,OAAQ1c,GAAMF,EACjC,IAAK,MAAMG,KAAKF,EACd,GAAIgQ,OAAO8D,UAAUC,eAAeC,KAAKhU,EAAGE,GAAI,CAC9C,MAAMC,EAAIH,EAAEE,GACZ,GAAIC,GAAiB,iBAALA,EACd,GAAI9E,EAAE2S,IAAI7N,GACRF,EAAEC,GAAK7E,EAAEgc,IAAIlX,OACV,CACH,MAAMC,EAAIgO,MAAMK,QAAQtO,GAAK,GAAK,CAAA,EAClC9E,EAAE+b,IAAIjX,EAAGC,GAAIH,EAAEC,GAAKE,EAAGhF,EAAEkc,KAAK,CAAEoL,OAAQviB,EAAGwc,OAAQvc,GACrD,MAEAH,EAAEC,GAAKC,CACX,CACJ,CACA,OAAO3P,GACNqyB,GAAK,KACN,MAAQhoB,SAAUtK,EAAGuK,kBAAmBtK,EAAGuK,kBAAmBK,GAAMH,IAAKI,EAAI2O,EAAGhK,KAC7EA,GAA+B,IAA1BgQ,OAAOC,KAAKjQ,GAAGiK,QAAgBzZ,EAAEgyB,GAAGC,GAAGziB,EAAGzP,MAC/C,CAACA,IAAKwP,EAAIiK,EAAGhK,IACd,MAAMC,EAAgB,mBAALD,EAAkBA,EAAE5E,EAAEJ,SAAWgF,EAClDxP,EAAEyP,IACD,CAAC7E,IACJ,MAAO,CACLP,SAAUtK,EACVuyB,gBAAiB/iB,EACjBgjB,eAAgB1nB,IAEjB2nB,GAAK,KACN,MAAQvjB,OAAQlP,EAAGmP,gBAAiBlP,EAAGmP,gBAAiBvE,GAAMwE,IAAKvE,EAAI2O,EAAGhK,KACvEA,GAA+B,IAA1BgQ,OAAOC,KAAKjQ,GAAGiK,QAAgBzZ,EAAEgyB,GAAGC,GAAGziB,EAAGzP,MAC/C,CAACA,IAAKwP,EAAIiK,EAAGhK,IACd,MAAMC,EAAgB,mBAALD,EAAkBA,EAAE5E,EAAEJ,SAAWgF,EAClDxP,EAAEyP,IACD,CAAC7E,IACJ,MAAO,CACLqE,OAAQlP,EACR0yB,cAAeljB,EACfmjB,aAAc7nB,IAUf8nB,GAAK,EACNC,QAAS7yB,EACT8yB,MAAO7yB,MAEP,IAAIqS,EAAGC,EACP,MAAM1H,EAAI6gB,MAAQphB,SAAUQ,GAAMJ,KAAOwE,OAAQM,GAAMH,KAAO4G,eAAgBxG,EAAGyG,kBAAmBxG,GAAM+B,KAAQb,SAAUjB,GAAMW,KAChImG,eAAgB7G,EAChB+G,cAAe9G,EACfyE,iBAAkBxE,GAChBkK,MAAQ4F,SAAUxf,GAAMwqB,MAAQ6E,cAAetf,EAAGuf,iBAAkBzd,EAAG0d,cAAezd,GAAMsd,KAChGU,KAlBM,CAAClwB,IACP,MAAQwyB,eAAgBvyB,GAAMqyB,MAAQK,aAAc9nB,GAAM4nB,KAAM3nB,EAAS,MAAL9K,OAAY,EAASA,EAAEkQ,IAAKV,GAAMA,KACtGmN,EAAE,KACA,IAAInN,EAAI,GAAIC,EAAI,CAAA,EACX,MAAL3E,GAAaA,EAAEwY,QAAS5T,IACjB,MAALA,GAAaA,EAAEpF,UAAoE,IAAxDmV,OAAOC,KAAU,MAALhQ,OAAY,EAASA,EAAEpF,UAAUoP,SAAiBlK,EAAI0iB,GAAGxiB,EAAEpF,SAAUkF,IAAU,MAALE,GAAaA,EAAER,QAAgE,IAAtDuQ,OAAOC,KAAU,MAALhQ,OAAY,EAASA,EAAER,QAAQwK,SAAiBjK,EAAIyiB,GAAGxiB,EAAER,OAAQO,MACrNxP,EAAEuP,GAAI3E,EAAE4E,IACX,KAWGsjB,CAAG/yB,GAAI2c,EAAE,KACb,IAAInK,GACH/C,GAAiE,aAAxC,OAAlB+C,EAAI1H,EAAEzJ,cAAmB,EAASmR,EAAE1Q,oBAAoC1B,EAAE,UACjF,CAACqP,EAAsB,OAAlB6C,EAAIxH,EAAEzJ,cAAmB,EAASiR,EAAExQ,mBAC5C,MAAMqQ,EAAIwZ,EAAG,KACX,IAAIlZ,EACJ,MAAMD,EAAI,sBACV,OAA0B,OAAlBC,EAAI3H,EAAEzJ,UAAoBoR,EAAE5Q,SAAW2Q,EAAI,sBAAwB1C,EAAI0C,EAAI,kBAAoBA,EAAI,oBAC1G,CAAC1H,EAAGgF,IAiBP,OAAuBxN,EAAEga,EAAI,CAAExZ,SAAU,MACvC,IAAI0P,EAAGC,EACP,OAAO5H,IAAwB,OAAjB2H,EAAI1H,EAAEd,aAAkB,EAASwI,EAAEvI,kBAAoBY,IAAwB,OAAjB4H,EAAI3H,EAAEd,aAAkB,EAASyI,EAAEvI,cAChH,EAHwC,IAGjB1D,EACtB,MACA,CACEgV,YAAchJ,IACZ,IAAIC,EAAGC,GACNjD,GAAiE,yBAAxC,OAAlBgD,EAAI3H,EAAEzJ,cAAmB,EAASoR,EAAE3Q,mBAA+C4N,GAAE,GAAK7E,EAAuB,OAAlB6H,EAAI/C,EAAElF,UAAoBiI,EAAE+W,OAAc,MAALjX,GAAaA,EAAEiJ,kBAE7JzL,UAAWmC,EACXrP,SAAU,CACQR,EAAE4qB,GAAI,IACN5qB,EAAE0qB,GAAI,IACtBld,IAAMjF,KAA0B,OAAlB0H,EAAIzH,EAAEzJ,UAAoBkR,EAAE1Q,WAA6B2E,EAAE8V,EAAI,CAAExZ,SAAU,CACvER,EAAE,QAAS,CAAEQ,SAAU,mOAOvBR,EACd,MACA,CACE1D,MAAO,CACLgyB,SAAU,QACVvW,IAAK,EACLC,KAAM,EACNxT,MAAO,OACPC,OAAQ,OACRqV,gBAAiB,OACjB4W,OAAQ,WAKA1wB,EAAE,MAAO,CAAE1D,MAtDjB,MACd,IAAI4T,EAAGC,EACP,OAAQ5H,GAA0B,OAAlB2H,EAAI1H,EAAEzJ,UAAoBmR,EAAE3Q,SAUrB,OAAlB4Q,EAAI3H,EAAEzJ,UAAoBoR,EAAE5Q,SAAW,IAAK2N,EAAEpE,iBAAoB,IAClEoE,EAAEpE,gBACL4nB,OAAQ,KAZ8C,IACnDxjB,EAAEpE,gBACLvE,aAAc,MACdyT,KAAM,MACNE,MAAO,OACPH,IAAK,MACLE,OAAQ,OACRzT,MAAO,GAAG+I,MACV9I,OAAQ,GAAG6I,MACXojB,OAAQ,MA2C4B5gB,GAAKpC,UAAW,kBAAmBlN,SAAU,MAC7E,IAAI8P,EAAGC,EAAGC,EACV,MAAMN,GAAU,MAALvS,OAAY,EAASA,EAAEgzB,gBAAkB1jB,EAAIkD,GAAU,MAALxS,OAAY,EAASA,EAAEizB,cAAgBzW,GAAI/J,GAAU,MAALzS,OAAY,EAASA,EAAEkzB,eAAiBrH,GAAInZ,GAAU,MAAL1S,OAAY,EAASA,EAAEmzB,gBAAkBrG,GACvM,OAAuBvmB,EAAE8V,EAAI,CAAExZ,SAAU,EACnB,OAAlB8P,EAAI9H,EAAEzJ,cAAmB,EAASuR,EAAEnR,aAA+Ba,EAAEkQ,EAAG,CAAEvP,QAASkN,IACrE7N,EAAEmQ,EAAG,IACLnQ,EAAE+qB,GAAI,KACF,OAAlBxa,EAAI/H,EAAEzJ,cAAmB,EAASwR,EAAElR,eAAiCW,EAAEoQ,EAAG,CAAEzP,QAASgP,KACnE,OAAlBa,EAAIhI,EAAEzJ,cAAmB,EAASyR,EAAEpR,aAA+BY,EAAEqQ,EAAG,CAAE1P,QAASiP,MAExF,EAV8E,WAcpFmhB,GAAKhpB,OAAG,GAASipB,GAAK,IAAM3oB,EAAG0oB,IAAKE,GAAK,EAC1CzwB,SAAU9C,MAEV,IAAImQ,EACJ,MAAMlQ,EAAIyQ,EAAG,IAAK7F,EAAI6F,EAAG,CAAA,IAAM5F,EAAG0E,EAAGC,GAAK6B,EAAG,KAAM5B,EAAGC,EAAGC,GAAK0B,EAAG,KAAMzB,EAAGC,GAAKyB,GAAE,GACjFoL,EAAE,KACA7M,GAAE,IACD,IAMH,OAAOD,EAAoBvN,EAAE,MAAO,CAAE1D,MAAO,CAAE4C,WAA+B,OAAlB2O,EAAIrF,EAAEzJ,cAAmB,EAAS8O,EAAE3O,YAAcsB,SAA0BR,EAAE+wB,GAAGtoB,SAAU,CAAEC,MAAO,CAAEwoB,WALxJ/a,MAAOxG,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,KAC9BrS,EAAEwK,QAAUwH,EAAGpH,EAAEJ,QAAUyH,EAC3B,MAAMK,QAAUyf,GAAG/f,EAAGE,EAAGC,EAAGC,GAC5BC,EAAE7H,UAAY6H,EAAE7H,QAAQqY,YAAcvQ,EAAEif,eAAgBhiB,EAAE+C,EAAEjI,UAAWqF,EAAE4C,EAAEgf,gBAEsGzuB,SAA0BR,EAC3MsI,EACA,CACEN,SAAUQ,EACVP,kBAAmBiF,EACnBhF,kBAAmBiF,EACnB3M,SAA0BR,EACxBgN,EACA,CACEJ,OAAQQ,EACRP,gBAAiBQ,EACjBP,gBAAiBQ,EACjB9M,SAA0BR,EAAEgoB,GAAI,CAAExnB,SAA0BR,EAAEiO,EAAI,CAAEC,SAAUvQ,EAAGwQ,QAAS5F,EAAG/H,SAA0BR,EAAEiX,GAAI,CAAEzW,SAA0BR,EAAEoP,EAAI,CAAEpH,SAAUQ,EAAGhI,SAA0BR,EAAEqX,GAAI,CAAE7W,SAAU9C,oBAIxN,MACTyzB,GAAK,EACN9S,GAAI3gB,EACJ0zB,KAAMzzB,EACNqK,SAAUO,EACVqE,OAAQpE,EACR6oB,OAAQnkB,EACRqjB,QAASpjB,EACTmkB,gBAAiBlkB,EACjBmkB,aAAclkB,MAEd,MAAMC,EAAI+b,EAAG,IAAM3rB,EAAG,IAAK6P,EAAIyjB,MAAQ7iB,QAASX,GAAMQ,IACtDR,GAAKA,EAAErF,UAAYxK,IAAM6P,EAAErF,QAAUxK,GAyBrC,OAAO0c,EAAE,KAxBClE,WACR,IAAItI,EAAG8B,EACU,OAAhB9B,EAAItF,EAAEhD,QAAkBsI,EAAEhH,0BAA4BqP,EACrD3B,EAAEsB,iBACF,CAAE0B,MAAOjK,EAAGkK,SAAU,KAAMC,SAAU,MACtC,CACE2Z,KAAMzzB,EACNqK,SAAUO,EACVqE,OAAQpE,EACR6oB,OAAQnkB,EACRqjB,QAASpjB,KAEVkL,mBAA0B,MAAL9K,GAAaA,EAAE2jB,mBAAqB3jB,EAAE2jB,WAAW5jB,EAAG3P,EAAG4K,EAAGC,EAAG0E,EAAGG,GAAID,GAAE,IAAuB,OAAhBuC,EAAIpH,EAAEhD,QAAkBoK,EAAE7I,oBAAsBoP,EACnJ3B,EAAEuB,kBACF,CAAEyB,MAAOjK,EAAGkK,SAAU,KAAMC,SAAU,MACtC,CACE2Z,KAAMzzB,EACNqK,SAAUO,EACVqE,OAAQpE,EACR6oB,OAAQnkB,EACRqjB,QAASpjB,MAKbrP,IACC,CAACoP,IAAK,MACRskB,GAAK,CAAC,aAAc,WAAY,WAAY,SAAU,WAAYC,GAAK,CACxE3O,MAAO,CACLpJ,QAAS,sGACT+C,WAAY,CAAEC,SAAU,KACxBK,cAAc,EACdpC,KAAM,gBAER+W,aAAc,CACZhY,QAAS,yIACT0C,QAASoV,GACT7W,KAAM,mBAERgX,aAAc,CACZjY,QAAS,8BACT0C,QAASoV,GACT7W,KAAM,mBAERiX,cAAe,CACblY,QAAS,kKACT0C,QAASoV,GACT7W,KAAM,mBAERkX,gBAAiB,CACfpV,WAAY,CAAEC,SAAU,GACxB/B,KAAOjd,IACL,IAAIC,EAAI,GACR,OAAQD,EAAE8qB,WACR,IAAK,aACH7qB,EAAI,6DACJ,MACF,IAAK,WACHA,EAAI,oDACJ,MACF,IAAK,WACHA,EAAI,wDACJ,MACF,IAAK,SACHA,EAAI,wDACJ,MACF,IAAK,UACHA,EAAI,gCACJ,MACF,QACE,MAAO,gBAEX,OAAOD,EAAEme,cAAc,yCAA0Ce,WAAW,KAC1Etc,OAAOC,KAAK5C,IACX,KAAM,WAGbsrB,OAAQ,CACNxM,WAAY,CAAEC,SAAU,KACxB/B,KAAM,iBAEPmX,GAAK,EACNzT,GAAI3gB,EACJ0zB,KAAMzzB,EACNqK,SAAUO,EACVqE,OAAQpE,EACR6oB,OAAQnkB,EACRqjB,QAASpjB,EACTqjB,MAAOpjB,MAEP,MAAMC,EAAIgc,EAAG,IAAM3rB,GAAK,OAASigB,KAAM,IAAKrQ,EAAK3P,GAA+B,IAA1Bwf,OAAOC,KAAKzf,GAAGyZ,OAAoBzZ,EAAL8zB,GAAQlkB,EAAIhF,GAAK,CAAA,EAAIiF,EAAIhF,GAAK,GAAI1K,EAAIqP,GAAK,IAAKU,EAAG8B,GAAKV,GAAE,GAAKW,EAAIohB,KAAMnhB,EAAIzB,EAAG,OAAQ0B,EAAGC,GAAKd,EAAE/B,GAAK,IAC3LmN,EAAE,KACAnN,GAAK6C,EAAE7C,IACN,CAACA,IACJ,MAAM8C,EAAI,IAAsB9L,EAAE8V,EAAI,CAAExZ,SAAU,CAChCR,EACdmxB,GACA,CACEI,aAAc1hB,EACdwO,GAAIhR,EACJ+jB,KAAM9jB,EACNtF,SAAUuF,EACVX,OAAQY,EACR6jB,OAAQvhB,EACRygB,QAASzyB,EACTwzB,gBAAiB3hB,IAGrB9B,GAAqB7N,EAAEswB,GAAI,CAAEC,QAASpjB,EAAGqjB,MAAOpjB,OAElD,OAAmClJ,EAAvB,MAAL0L,EAA8BqhB,GAGZjX,EAHgB,CAAExZ,SAAU,CACnCR,EAAE,QAAS,CAAE/D,IAAK4T,IAClB7P,EAAE,MAAO,CAAEqe,GAAIhR,EAAG7M,SAAUwP,UAiB7C+hB,GAAK,KACN,MAAQC,SAAUt0B,GANZ,MACN,MAAQwQ,SAAUxQ,GAAMsQ,IACxB,MAAO,CACLgkB,SAAU7a,EAAE,IAAMzZ,EAAEyK,QAAS,CAACzK,MAGRu0B,GACxB,MAAO,CACLD,SAAUt0B,IA+BXw0B,GAAK,KACN,MAAQve,eAAgBjW,EAAGy0B,YAAax0B,EAAGy0B,QAAS7pB,GAV9C,MACN,MAAQsc,gBAAiBnnB,GAAMqmB,MAAQgF,aAAcprB,EAAG2f,SAAU/U,GAAM+f,MAAQD,cAAe7f,GAAMyf,MAAQtU,eAAgBzG,GAAMiC,KAAQhB,QAAShB,EAAGoB,aAAcnB,GAAMY,KAAOhG,SAAUqF,GAAMjF,IAGlM,MAAO,CACLuL,eAAgBzG,EAChBilB,YALyMhb,EAAEhB,UAC3MmJ,GAAGjS,GAAID,EAAEjF,SAAWsd,aAAarY,EAAEjF,SAAUzK,EAAE,IAAK8K,EAAE,IAAK7K,EAAE,UAAW4K,EAAE,UACzE,CAAC6E,EAAGC,EAAG3P,EAAG8K,EAAG7K,EAAG2hB,GAAI/W,IAIrB6pB,QAJ8Bjb,EAAE,KAAY,MAALhK,OAAY,EAASA,EAAEhF,UAAY,CAAA,EAAI,CAACgF,MAOvBklB,GAC1D,MAAO,CACL1e,eAAgBjW,EAChBy0B,YAAax0B,EACby0B,QAAS7pB,IAEV+pB,GAAK,KACN,MACE1N,iBAAkBlnB,EAClBme,cAAele,EACf+mB,cAAenc,EACf2T,sBAAuB1T,EACvBmc,cAAezX,EACfmM,SAAUlM,EACV0X,gBAAiBzX,EACjB0X,YAAazX,GACX0W,KACJ,MAAO,CACLa,iBAAkBlnB,EAClBme,cAAele,EACf+mB,cAAenc,EACf2T,sBAAuB1T,EACvBmc,cAAezX,EACfmM,SAAUlM,EACV0X,gBAAiBzX,EACjB0X,YAAazX,IAEdklB,GAAK,CAAC70B,EAAGC,KACV,MAAQq0B,SAAUzpB,GAAMwpB,KACxB1X,EAAE,KACA,MAAM7R,EAAK0E,IACTA,EAAEmJ,OAAOkB,QAAUhP,KAAO5K,EAAEuP,IAE9B,OAAO5M,OAAO4rB,iBAAiBxuB,EAAG8K,GAAI,KACpClI,OAAO6rB,oBAAoBzuB,EAAG8K,KAE/B,CAACD,EAAG7K,EAAGC,KAgBT60B,GAAK,KACN,MAAQxqB,SAAUtK,EAAGuyB,gBAAiBtyB,EAAGuyB,eAAgB3nB,GAAMynB,KAC/D,MAAO,CACLhoB,SAAUtK,EACVuyB,gBAAiBtyB,EACjBuyB,eAAgB3nB,IASjBkqB,GAAK,KACN,MACEtf,iBAAkBzV,EAClB+pB,uBAAwB9pB,EACxB2V,sBAAuB/K,EACvBmf,4BAA6Blf,EAC7B4e,iBAAkBla,EAClBma,iBAAkBla,EAClBoa,cAAena,EACfoa,aAAcna,GACZ0Z,KACJ,MAAO,CACL5T,iBAAkBzV,EAClB+pB,uBAAwB9pB,EACxB2V,sBAAuB/K,EACvBmf,4BAA6Blf,EAC7B4e,iBAAkBla,EAClBma,iBAAkBla,EAClBoa,cAAena,EACfoa,aAAcna,IAgBfqlB,GAAK,KACN,MAAQjF,gBAAiB/vB,EAAGoV,qBAAsBnV,GAAM2vB,KACxD,MAAO,CACLG,gBAAiB/vB,EACjBi1B,mBAAoB3T,GACpB4T,mBAAoB3T,GACpBnM,qBAAsBnV,IC3uGgCyS,GAAI,CAC5DhD,EAAG,CACDwM,QAAS9b,EACT+0B,MAAM,EACNr2B,KAAMsB,KAERg1B,QAAS,CACPC,QAAS,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,UAAW,UAAW,QAAS,UAAW,MAAO,SAAU,UACzGF,MAAM,GAERzxB,MAAO,CACLZ,SAAU,CAAC,QAAS,WAEtBwyB,GAAI,CACFx2B,KAAMsB,EACNm1B,MAAM,GAER9S,KAAM,CACJvG,QAAS9b,KAEXo1B,OAAQ,CACNtZ,QArB2B,EAsB3Bpd,KAAMsB,KAERq1B,QAAS,CACPvZ,QAzBM,EA0BNwZ,OAAQ,CAAC,UAEXC,IAAK,CACHD,OAAQ,CAAC,YACTH,MAAM,GAERK,SAAU,CACR9yB,SAAU,CAAC,OACX4yB,OAAQ,CAAC,UAEXG,QAAS,CACP/yB,SAAU,CAAC,WACXhE,KAAMsB,IAER01B,GAAI,CACF5Z,QAzCM,EA0CNwZ,OAAQ,CAAC,OAEXK,GAAI,CACFjzB,SAAU,CAAC,KAAM,MACjBhE,KA9CM,GAgDRmf,GAAI,CACF/B,QAjDM,EAkDNmZ,QAAS,CAAC,SAAU,UACpBK,OAAQ,CAAC,OAEXM,WAAY,CACV9Z,QAtDM,EAuDNwZ,OAAQ,CAAC,WAEXnvB,OAAQ,CACN8uB,QAAS,CAAC,SAAU,WAEtBjzB,OAAQ,CACNizB,QAAS,CAAC,SAAU,WAEtBY,GAAI,CACFn3B,KAhEM,EAiENy2B,MAAM,GAERW,IAAK,CACHX,MAAM,GAERY,GAAI,CACFja,QAvEM,EAwENwZ,OAAQ,CAAC,KAAM,KAAM,SAEvBU,KAAM,CACJjB,MAAM,GAERkB,GAAI,CACFvzB,SAAU,CAAC,MACXhE,KA/EM,GAiFRw3B,QAAS,CACPxzB,SAAU,CAAC,SAAU,OACrBhE,KAAMsB,IAERm2B,GAAI,CACFb,OAAQ,CAAC,OAAQ,QAEnBc,GAAI,CACFd,OAAQ,CAAC,OAAQ,QAEnBva,GAAI,CACFe,QA5F2B,EA6F3BwZ,OAAQ,CAAC,OAAQ,QAEnBe,IAAK,CACHva,QAhG2B,EAiG3BwZ,OAAQ,CAAC,SAEXgB,KAAM,CACJ5zB,SAAU,CAAC,KAAM,KAAM,KAAM,QAE/BqvB,OAAQ,CACNuD,OAAQ,CAAC,QAAS,QAAS,WAC3BH,MAAM,GAERoB,QAAS,CACPza,QA3G2B,EA4G3BwZ,OAAQ,CAAC,YAEXkB,MAAO,CACL9zB,SAAU,CAAC,UAAW,WAAY,QAAS,QAAS,QAAS,MAC7DhE,KAhHM,GAkHR+3B,MAAO,CACLnB,OAAQ,CAAC,SACT5yB,SAAU,CAAC,OAEbg0B,GAAI,CACF5a,QAvHM,EAwHNwZ,OAAQ,CAAC,OAEXqB,MAAO,CACLrB,OAAQ,CAAC,SACT5yB,SAAU,CAAC,OAEbk0B,GAAI,CACF9a,QA/HM,EAgINwZ,OAAQ,CAAC,OAEXuB,MAAO,CACLvB,OAAQ,CAAC,SACT5yB,SAAU,CAAC,OAEbo0B,GAAI,CACFxB,OAAQ,CAAC,QAAS,QAAS,QAAS,SACpC5yB,SAAU,CAAC,KAAM,OAEnBq0B,MAAO,CACLzB,OAAQ,CAAC,QAAS,SAClBH,MAAM,GAER6B,GAAI,CACFt0B,SAAU,CAAC,MACXhE,KAhJM,GAkJRu4B,MAAO,CACLv0B,SAAU,CAAC,QAAS,WAEtBw0B,IAAK,CACHx4B,KAAMsB,EACNm1B,MAAM,IAGV,SAAS5iB,GAAEjD,GACT,OAAQzP,IACNyS,GAAEzS,GAAK,IACFyP,KACAgD,GAAEzS,IAGX,CACA,CAAC,UAAW,OAAQ,MAAO,SAAU,IAAK,OAAOqjB,QAAQ3Q,GAAE,CACzDuJ,QAnKQ,EAoKRpd,KAAMsB,MAER,CAAC,OAAQ,IAAK,MAAO,MAAO,OAAQ,OAAQ,OAAQ,MAAO,KAAM,IAAK,MAAO,OAAQ,IAAK,OAAQ,OAAQ,SAAU,MAAO,MAAO,OAAQ,IAAK,OAAOkjB,QAAQ3Q,GAAE,CAC9JuJ,QAvK6B,EAwK7Bpd,KAAMsB,MAER,CAAC,IAAK,OAAOkjB,QAAQ3Q,GAAE,CACrBuJ,QA3K6B,EA4K7Bpd,KAAMsB,MAER,CAAC,IAAK,QAAS,OAAQ,MAAO,OAAOkjB,QAAQ3Q,GAAE,CAC7CuJ,QA/K6B,EAgL7Bpd,KAAMsB,KAER,CAAC,UAAW,QAAS,SAAU,SAAU,MAAO,UAAW,cAAckjB,QAAQ3Q,GAAE,CACjFuJ,QAnLQ,EAoLRpd,KAAMsB,MAER,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,MAAMkjB,QAAQ3Q,GAAE,CAC7CuJ,QAvL6B,EAwL7Bpd,KAAMsB,MAER,CAAC,QAAS,SAAU,SAAU,MAAO,SAASkjB,QAAQ3Q,GAAE,CACtD7T,KAAMsB,MAER,MAAMqT,GAAIgM,OAAO8X,OAAO7kB,IAAItR,GAAK,CAAC,SAAU,OAAQ,OAAQ,UAAW,QAAS,QAAS,WAAY,OAAQ,OAAQ,OAAQ,OAAQ,WAAY,SAAU,SAAU,QAAS,SAAU4vB,GAAKvR,OAAOC,KAAKjM,IAAG4P,OAAQ3T,GAAY,WAANA,GAAwB,WAANA,GAAqD8D,GAAIiM,OAAO8X,OAAO,CACjT5J,IAD+P,EAE/P6J,KAF+P,EAG/P7T,MAH+P,EAI/P8T,QAJ8Q,EAK9Q7J,SALqR,EAMrR8J,SAN+P,EAO/PC,QAPqR,EAQrRv0B,SARqR,EASrRw0B,IAT+P,EAU/P7wB,OAV+P,EAW/P8wB,KAX+P,EAY/PlX,GAZ+P,EAa/PmX,KAb+P,EAc/PC,MAd+P,EAe/PpS,KAf+P,EAgB/PqS,QAhB+P,EAiB/PC,KAjBqR,EAkBrRC,MAlB+P,EAmB/PC,MAnBqR,EAoBrRC,OApB+P,EAqB/PC,IArB+P,EAsB/PhM,KAtB+P,EAuB/PiM,QAvB8Q,EAwB9QC,MAxB+P,EAyB/PC,MAzB+P,EA0B/PC,KA1B8Q,EA2B9QrT,MA3B8Q,EA4B9QxmB,MA5B4R,EA6B5R8uB,IA7B+P,EA8B/PgL,QA9B+P,EA+B/PC,OA/B+P,EAgC/PC,SAhC+P,EAiC/PxM,OAjC+P,EAkC/P/pB,MAlC+P,EAmC/PvD,KAnC+P,EAoC/PgI,MApC+P,IAqC7PsD,GAAKqV,OAAO8X,OAAO,CACrB5T,MAAO,YACP8T,QAAS,UACTC,SAAU,WACVY,QAAS,UACTI,QAAS,UACTC,OAAQ,SACRC,SAAU,aAEZ,SAAStlB,KACP,OAAOA,GAAImM,OAAOoZ,QAAU,SAASnpB,GACnC,IAAK,IAAIzP,EAAI,EAAGA,EAAI64B,UAAUpf,OAAQzZ,IAAK,CACzC,IAAI6K,EAAIguB,UAAU74B,GAClB,IAAK,IAAI0P,KAAK7E,EACZ2U,OAAO8D,UAAUC,eAAeC,KAAK3Y,EAAG6E,KAAOD,EAAEC,GAAK7E,EAAE6E,GAC5D,CACA,OAAOD,CACT,EAAG4D,GAAEylB,MAAMC,KAAMF,UACnB,CACA,SAASllB,IACPqP,WAAYvT,EAAI,CAAA,EAChBM,UAAW/P,EACX6C,SAAUgI,EAAI,KACdmuB,UAAWtpB,GAAI,EACfoT,QAASvT,IAET,MAAMC,EAAID,EACV,OAAOG,EAAoB3P,EAAEnB,cAAc4Q,EAAG6D,GAAE,CAC9CtD,UAAW/P,GACVyP,IAAsB1P,EAAEnB,cAAc4Q,EAAG6D,GAAE,CAC5CtD,UAAW/P,GACVyP,GAAI5E,EACT,CACA,MAAM7J,GAIJ,SAAAi4B,CAAUj5B,EAAG6K,GACX,OAAOA,CACT,CAIA,IAAAquB,CAAKl5B,EAAG6K,GACN,OAAOA,CACT,EAEF,SAASmE,GAAGS,GACV,OAAOA,GAAKA,EAAE0pB,YAAc3Z,OAAO8D,UAAUC,eAAeC,KAAK/T,EAAG,WAAaA,EAAEioB,QAAUjoB,CAC/F;;;;;;;GAQA,IAAIsD,GAAGU,GAsCP,MAAMlC,GAAqBvC,GArC3B,WACE,GAAIyE,GAAG,OAAOV,GACdU,GAAI,EACJ,IAAIhE,EAAI,UA+BR,OA9BAsD,GACA,SAAWlI,GACT,IAAI6E,EAAI,GAAK7E,EAAG0E,EAAIE,EAAE2pB,KAAK1pB,GAC3B,IAAKH,EACH,OAAOG,EACT,IAAIF,EAAGG,EAAI,GAAIE,EAAI,EAAGjF,EAAI,EAC1B,IAAKiF,EAAIN,EAAE8pB,MAAOxpB,EAAIH,EAAE+J,OAAQ5J,IAAK,CACnC,OAAQH,EAAEiV,WAAW9U,IACnB,KAAK,GACHL,EAAI,SACJ,MACF,KAAK,GACHA,EAAI,QACJ,MACF,KAAK,GACHA,EAAI,QACJ,MACF,KAAK,GACHA,EAAI,OACJ,MACF,KAAK,GACHA,EAAI,OACJ,MACF,QACE,SAEJ5E,IAAMiF,IAAMF,GAAKD,EAAE4pB,UAAU1uB,EAAGiF,IAAKjF,EAAIiF,EAAI,EAAGF,GAAKH,CACvD,CACA,OAAO5E,IAAMiF,EAAIF,EAAID,EAAE4pB,UAAU1uB,EAAGiF,GAAKF,CAC3C,CAEF,CACS3E,IAET,SAASkF,GAAET,EAAGzP,EAAG6K,GACf,OAAO7K,KAAKyP,EAAI+P,OAAO+Z,eAAe9pB,EAAGzP,EAAG,CAAE+K,MAAOF,EAAG2uB,YAAY,EAAIC,cAAc,EAAIC,UAAU,IAAQjqB,EAAEzP,GAAK6K,EAAG4E,CACxH,CACA,MAAMgM,GAAK,2BACX,MAAM+W,WAAWxxB,GACf,SAAAi4B,CAAUj5B,EAAG6K,GACX,MAAa,UAAN7K,GAAiBwf,OAAOC,KAAK5U,GAAGwY,QAAS3T,IAC9CiqB,OAAO9uB,EAAE6E,IAAIkqB,MAAMne,YAAc5Q,EAAE6E,KACjC7E,CACN,EAEF,MAAqB0W,GAAK,uCAAwC4O,GAAK,wBAAyBjR,GAAK,iBACrG,SAASmT,KACP,YAAa1vB,OAAS,YAAcnE,SAAW,KAC7C,OAAOA,SAASq7B,eAAeC,mBAAmB,aACtD,CACA,IAAAC,GAAA,MACE,WAAAC,CAAYh6B,EAAG6K,EAAI,CAAA,EAAI6E,EAAI,GAAIH,EAAI,IACjC,IAAIC,EACJ,GAAIU,GAAE6oB,KAAM,eAAW,GAAS7oB,GAAE6oB,KAAM,cAAU,GAAS7oB,GAAE6oB,KAAM,eAAW,GAAS7oB,GAAE6oB,KAAM,iBAAa,GAAS7oB,GAAE6oB,KAAM,UAAW,IAAK7oB,GAAE6oB,KAAM,aAAS,GAAS7oB,GAAE6oB,KAAM,gBAAY,GAAS7oB,GAAE6oB,KAAM,eAAW,GAAS7oB,GAAE6oB,KAAM,gBAAY,GAAkC,eAAzBkB,QAAQC,IAAIC,UAA6Bn6B,GAAiB,iBAALA,EAChT,MAAM,IAAIo6B,UAAU,8CACtBrB,KAAKsB,MAAQxvB,EAAGkuB,KAAKuB,SAAW5qB,EAAGqpB,KAAKwB,QAAU,IAAIhrB,EAAG,IAAIijB,IAAOuG,KAAKyB,YAAezB,KAAK0B,UAAY1B,KAAK2B,gBAAgB16B,GAAK,IAAK+4B,KAAK4B,QAAU,IAAIxd,IAA0B,QAArB3N,EAAI3E,EAAE+vB,iBAA6B,IAANprB,EAAeA,EAAIuhB,IAAKgI,KAAK8B,OAAS,IAAI1d,IAAIhc,IAAK43B,KAAK+B,QAAU,IAAI3d,IAAItS,EAAEkwB,UAC3Q,CAIA,qBAAAC,CAAsBh7B,EAAG6K,GACvB,OAAOkuB,KAAKwB,QAAQtX,OAAO,CAACvT,EAAGH,IAAY,OAANG,GAAoC,mBAAfH,EAAE0pB,UAA0B1pB,EAAE0pB,UAAUj5B,EAAG0P,GAAKA,EAAG7E,EAC/G,CAIA,gBAAAowB,CAAiBj7B,EAAG6K,GAClB,OAAOkuB,KAAKwB,QAAQtX,OAAO,CAACvT,EAAGH,IAAY,OAANG,GAA+B,mBAAVH,EAAE2pB,KAAqB3pB,EAAE2pB,KAAKl5B,EAAG0P,GAAKA,EAAG7E,EACrG,CAMA,aAAAqwB,CAAcl7B,EAAG6K,GACf,MAAM6E,EAAI,CAAA,GACR2qB,MAAO9qB,GACLwpB,KACJ,IAAIvpB,EAAIxP,EAAG2P,EAAI,EAAGE,EAAI,KACtB,OAAOkpB,KAAKuB,SAASjX,QAASzY,IAC5B,MAAMoI,EAAIpI,EAAEuwB,QAAQpY,cAAe/Q,EAAI+mB,KAAKqC,aAAapoB,GACzD,GAAIzD,EAAE3E,EAAEywB,eAAiBtC,KAAKuC,aAAatoB,KAAO+lB,KAAKwC,eAAe1wB,EAAGmH,GACvE,OACF,IAAIpC,EAAI,GACR,KAAOJ,IAAMK,EAAIjF,EAAEgvB,MAAMpqB,KAAO,CAC9B,MACE6pB,MAAOh3B,EACPoX,OAAQrG,EACRwmB,MAAO3nB,EACPupB,MAAOrpB,EACPmjB,KAAMxiB,KACHT,GACDxC,EAAGzQ,EAAIwL,EAAE6wB,SAAW9B,OAAOhqB,GAC/BtN,EAAI,IAAMuN,GAAKJ,EAAE8W,MAAM,EAAGjkB,IAAK8P,GAAKvC,GAAKkD,EAAI,MAAM1T,QAAU,MAAMA,OAAO6S,QAAQ7S,OAAQ25B,KAAKyB,UAAY,EAAG7qB,GAAK,EAAGD,EAAEtQ,GAAK,CAC3HyD,SAAUoP,EACVypB,QAAS9wB,EACTyvB,MAAO,IACF9qB,KACA8C,EACH4R,IAAK8U,KAAKyB,YAET5qB,GAAKqC,EAAGrH,EAAE+wB,QAAUnsB,EAAII,EAAIJ,EAAE8W,MAAMjkB,EAAI+Q,GAAIxD,EAAI,IAAMJ,EAAIA,EAAE8W,MAAMjkB,GAAK+Q,GAAKnB,EAAEwH,QACrF,CACA7O,EAAE+wB,SAAWnsB,EAAII,EAAIJ,KACb,IAANG,EAAU3P,EAAI+4B,KAAK6C,cAAcpsB,EAAGE,EAC1C,CAIA,cAAA6rB,CAAev7B,EAAG6K,GAChB,SAAQ7K,EAAE8iB,UAAYjY,EAAEiY,SAAW9iB,EAAEs1B,QAAYt1B,EAAE6C,SAAS4W,OAAS,EAAIzZ,EAAE6C,SAAS6c,SAAS7U,EAAEiY,WAAW9iB,EAAEo1B,QAAQ3b,OAAS,GAAKzZ,EAAEo1B,QAAQ1V,SAAS7U,EAAEiY,YAAgBjY,EAAE4qB,OAAOhc,OAAS,EAAI5O,EAAE4qB,OAAO/V,SAAS1f,EAAE8iB,YAAY9iB,EAAEk1B,MAAQl1B,EAAE8iB,UAAYjY,EAAEiY,aAAkB9iB,GAAKA,EAAEic,QAAUpR,EAAEhM,OAC9R,CAMA,iBAAAg9B,CAAkB77B,GAChB,MACE87B,OAAQjxB,EACRkxB,kBAAmBrsB,GACjBqpB,KAAKsB,MACT,GAAIxvB,GAAK6E,GAAK1P,EAAE45B,MAAM,qCACpB,OAAO55B,EACT,IAAIuP,EAAIvP,EAAEogB,QAAQ,QAAS,MAE3B,OAAO7Q,EAAIA,EAAE6Q,QAAQ,UAAW,UAGhC7Q,EAAIA,EAAE6Q,QAAQ,MAAO,SAAU7Q,CACjC,CAMA,eAAAmrB,CAAgB16B,GACd,IAAI6K,EACJ,MAAM0E,UAAYysB,OAAS,KAAOA,OAAOC,yBAA2B5J,MACpE,IAAK9iB,EACH,OACF,MAAMC,EAA0C,QAArC3E,EAAIkuB,KAAKsB,MAAM6B,wBAAoC,IAANrxB,EAAeA,EAAI,OAAQ8E,EAAU,SAANH,GAAsB,aAANA,EAAmBD,EAAEiT,KAAOjT,EAAE3Q,cAAc4Q,GACnJ,GAAIxP,EAAE45B,MAAMrY,KACV,GAA6B,eAAzB0Y,QAAQC,IAAIC,SACd,MAAM,IAAI5a,MAAM,gEAElB5P,EAAEuU,UAAY6U,KAAK8C,kBAAkB9C,KAAKsB,MAAM8B,WAAa5qB,GAAGvR,GAAKA,GACvE,OAAO2P,CACT,CAKA,iBAAAysB,CAAkBp8B,GAChB,MACEq8B,gBAAiBxxB,GACfkuB,KAAKsB,MAAO3qB,EAAI,CAAA,EACpB,IAAIH,EAAI,EACR,OAjHM,IAiHCvP,EAAE0iB,UAAmB1iB,EAAEgjB,aAAe,IAAIhjB,EAAEgjB,YAAYK,QAAS7T,IACtE,MACE0T,KAAMvT,EACN5E,MAAO8E,GACLL,EAAG5E,EAAI+E,EAAEoT,cAAe/P,EAAIO,GAAE3I,IAAM2I,GAAE5D,GAC1C,IAAKopB,KAAKuD,OAAOt8B,KAAO4K,EAAEgvB,MAAMzJ,OAAStlB,KAAOmI,GAtQmN,IAsQ9MA,IAAapI,EAAE4Z,WAAW,OAAS3U,EAAEuQ,QAAQ,uBAAwB,IAAIwZ,MAAM,2CAClI,OACF,IAAI5nB,EAAU,UAANpH,EAAgBmuB,KAAKwD,sBAAsBv8B,GAAK6P,EAxQyN,IAyQjRmD,EAAUhB,GAAI,EAzQ4P,IAyQvPgB,EAAUhB,EAAIwqB,OAAOC,WAAW9C,OAAO3nB,IAzQ8N,IAyQxNgB,IAAYhB,EAAI2nB,OAAO3nB,IAAKtC,EAAEvF,GAAGS,IAAMA,GAAKmuB,KAAKiC,sBAAsBpwB,EAAGoH,GAAIzC,GAAK,IAC3I,IAANA,GAAkBG,EAAP,IACjB,CAIA,qBAAA6sB,CAAsBv8B,GACpB,MAAM6K,EAAI,CAAA,EACV,OAAO+S,MAAMC,KAAK7d,EAAErB,OAAO0kB,QAAS3T,IAClC,MAAMH,EAAIvP,EAAErB,MAAM+Q,IACL,iBAALH,GAA6B,iBAALA,KAAmB1E,EAAE6E,EAAE0Q,QAAQ,YAAa,CAAC5Q,EAAGG,IAAMgqB,OAAOhqB,GAAGiN,gBAAkBrN,KAChH1E,CACN,CAIA,YAAAuwB,CAAap7B,GACX,MAAM6K,EAAI,CACRhI,SAAU,GACVoZ,QAAS,EACTmZ,QAAS,GACTK,OAAQ,GACRP,MAAM,EACNpS,QAAS,GACTjkB,KAAM,EACNy2B,MAAM,GAER,OAAO9hB,GAAExT,GAAK,IACT6K,KACA2I,GAAExT,GACL8iB,QAAS9iB,GACP6K,CACN,CAIA,MAAAyxB,CAAOt8B,GACL,UAAW08B,kBAAoB,KAAO18B,aAAa08B,kBAAmB,CACpE,MAAM7xB,EAAI7K,EAAE28B,aAAa,QACzB,GAAS,MAAL9xB,GAAaA,EAAE2Z,WAAW,KAC5B,OAAO,EACT,MAAM9U,EAAI1P,EAAE48B,SAAS7Z,cACrB,MAAa,MAANrT,GAAmB,UAANA,GAAuB,WAANA,GAAwB,YAANA,GAAyB,SAANA,CAC5E,CACA,OAAO,CACT,CAIA,YAAA4rB,CAAat7B,GACX,OAAO+4B,KAAK8B,OAAOrd,IAAIxd,KAAM+4B,KAAK+B,QAAQtd,IAAIxd,KAAU+4B,KAAKsB,MAAMwC,eAAiB9D,KAAK4B,QAAQnd,IAAIxd,GACvG,CAMA,KAAA8hB,GACE,OAAOiX,KAAK0B,UAAY1B,KAAK+D,UAAU/D,KAAK0B,UAAW1B,KAAKqC,aAAarC,KAAK0B,UAAUsC,SAASha,gBAAkB,EACrH,CAKA,SAAA+Z,CAAU98B,EAAG6K,GACX,MACEixB,OAAQpsB,EACRstB,qBAAsBztB,EACtBstB,cAAertB,EACfwd,UAAWrd,EACXstB,uBAAwBptB,GACtBkpB,KAAKsB,MACT,IAAIzvB,EAAI,GAAIoI,EAAI,GAChB,MAAO,IAAIhT,EAAEyiB,YAAYY,QAASrR,IAChC,GAnMI,IAmMAA,EAAE0Q,SAAgB,CACpB,MAAMrgB,EAAI2P,EAAE+qB,SAASha,cAAe3P,EAAI2lB,KAAKqC,aAAa/4B,GAC1D2Q,IAAMpI,EAAEkc,KAAK9T,GAAIA,EAAI,IACrB,MAAMf,EAAI8mB,KAAKkC,iBAAiB54B,EAAG2P,GACnC,IAAKC,EACH,OACF,IAAIE,EACJ,GAAIxC,KAAOE,GAAMkpB,KAAKuC,aAAaj5B,IAAK,CACtC02B,KAAKyB,UAAY,EACjB,MAAM1nB,EAAIimB,KAAKyB,SACfroB,EAAI4mB,KAAK+D,UAAU7qB,EAAGmB,GACtB,MAAMf,EAAI1C,EAAEsC,EAAGE,EAAGiB,GAClB,GAAU,OAANf,EACF,OACF,UAAWA,EAAI,IAIb,YAHAzH,EAAEkc,KAAqB/mB,EAAEm9B,aAAa7qB,EAAG,CACvC4R,IAAKnR,KAITimB,KAAKyB,SAAW1nB,EAAI,CACtB,CACA,GAAIimB,KAAK8B,OAAOrd,IAAInb,GAClB,OACF,GAAMqN,GAAKH,GAAW,OAANlN,IAAe02B,KAAKuC,aAAaj5B,KAAOmN,IAAKupB,KAAKwC,eAAe1wB,EAAGuI,GAWlFxI,EAAI,IAAIA,KAAMmuB,KAAK+D,UAAU7qB,EAAGmB,EAAE0P,QAAU1P,EAAIvI,QAXuC,CACvF,IAAI+E,EACJmpB,KAAKyB,UAAY,EACjB,MAAM1nB,EAAIimB,KAAKqD,kBAAkBnqB,GAAII,EAAI,CACvCyQ,QAASzgB,GAEXyQ,IAAMT,EAAE2Q,WAAalQ,GAAIM,EAAEkiB,OAASjjB,EAAE2mB,UAAY5lB,EAAEkiB,MAAO1qB,EAAEkc,KAAqB/mB,EAAEnB,cAAc+U,GAAG,IAChGtB,EACH4R,IAAK8U,KAAKyB,UACG,QAAX5qB,EAAIuC,SAAqB,IAANvC,EAAeA,EAAImpB,KAAK+D,UAAU7qB,EAAGmB,IAC9D,CAEF,MAAO,GAvOK,IAuODpB,EAAE0Q,SAAiB,CAC5B,MAAMrgB,EAAIqN,IAAMH,EAAIyC,EAAE6Q,YAEpBkW,KAAKmC,cAAclpB,EAAE6Q,aAAe,GAAIhY,GAE1C+S,MAAMK,QAAQ5b,GAAKuI,EAAI,IAAIA,KAAMvI,GAAK2Q,GAAK3Q,CAC7C,IACE2Q,GAAKpI,EAAEkc,KAAK9T,GAAIpI,CACtB,CAKA,aAAAgxB,CAAc57B,EAAG6K,GACf,IAAK7K,EAAE0f,SAAS,OACd,OAAO1f,EACT,MAAM0P,EAAI,GACV,IAAIH,EAAIvP,EAAGwP,EAAI,KACf,KAAOA,EAAID,EAAEqqB,MAAM1a,KAAO,CACxB,MAAOvP,EAAGE,GAAKL,EAAG5E,EAAI4E,EAAE6pB,MAAOrmB,EAAIrD,EAAE+P,SAAS,KAC9C,GAA6B,eAAzBua,QAAQC,IAAIC,WAA8BtvB,EAAEgF,GAC9C,MAAM,IAAI0P,MAAM,UAAU1P,qDAC5BjF,EAAI,IAAM8E,EAAEoX,KAAKvX,EAAE+W,MAAM,EAAG1b,IAAK2E,EAAIA,EAAE+W,MAAM1b,IAC7C,MACE/H,SAAUmP,EACV0pB,QAAS9rB,EACTyqB,MAAOh4B,GACLwI,EAAEgF,GACN,IAAIuD,EACJ,GAAIJ,EACFI,EAAIzD,EAAE8J,OAAQ/J,EAAEoX,KAAKlX,EAAEhR,cAAcoT,EAAG3P,QACrC,CACH,MAAM4P,EAAI1C,EAAEqqB,MAAM,IAAI9H,OAAO,OAAOjiB,SACpC,GAA6B,eAAzBoqB,QAAQC,IAAIC,WAA8BloB,EAC5C,MAAM,IAAIsN,MAAM,mDAAmD1P,OACrEuD,EAAInB,EAAEonB,MAAQpnB,EAAE,GAAGwH,OAAQ/J,EAAEoX,KAAKlX,EAAEhR,cAAcm6B,KAAK6C,cAAcrsB,EAAE+W,MAAM3W,EAAE8J,OAAQxH,EAAEonB,OAAQxuB,GAAIxI,GACvG,CACAkN,EAAIA,EAAE+W,MAAMlT,EACd,CACA,OAAO7D,EAAEkK,OAAS,GAAK/J,EAAEoX,KAAKvX,GAAiB,IAAbG,EAAE+J,OAAe,GAAkB,IAAb/J,EAAE+J,QAA+B,iBAAR/J,EAAE,GAAiBA,EAAE,GAAKA,CAC7G,GAEF,SAAS4d,GAAG7d,GACV,IAAIzP,EACJ,MACEgjB,WAAYnY,EACZkF,UAAWL,EACXwsB,iBAAkB3sB,EAClB0M,QAASzM,EACT2tB,aAAcxtB,EACdytB,cAAevtB,EACfiT,QAASlY,EACTyyB,OAAQrqB,GACNvD,EAAGuC,EAAqB,QAAhBhS,EAAIuP,GAAK3E,SAAqB,IAAN5K,EAAeA,EAAI,OAAQ4P,EAAU,aAANoC,GAAwBgB,EAC3F,IAAI3Q,EACJ,GAAIwN,EACFxN,EAAIwN,MACD,CACH,MAAMuD,EAAI,IAAIE,GAAE9D,GAAK,GAAIC,GAAGqS,QAC5B1O,EAAEqG,OAAS,IAAMpX,EAAI+Q,EACvB,CACA,OAAO/Q,IAAMA,EAAIsN,GAAIC,EAAoB7P,EAAEnB,cAAcmB,EAAEu9B,SAAU,KAAMj7B,GAAqBtC,EAAEnB,cAAc+U,GAAG,CACjHqP,WAAYnY,EACZkF,UAAWL,EACXoT,QAAS9Q,GACR3P,EACL,CACA,SAAS+nB,GAAG3a,GACV,MACEuT,WAAYhjB,EACZ+P,UAAWlF,EACXoR,QAASvM,EAAI,GACb6tB,eAAgBhuB,GAAI,EACpBiuB,gBAAiBhuB,GAAI,EACrB2tB,aAAcxtB,EAAI,KAClB4qB,QAAS1qB,EAAI,GACbyqB,SAAU1vB,EAAI,GACd6yB,aAAczqB,EAAI,KAClB0qB,cAAe1rB,EAAI,KACnB8Q,QAASlT,EAAI,OACbytB,OAAQh7B,GAAI,KACT+Q,GACD3D,EAAGwC,EAAIzC,EAAI,GAAK5E,EAAGuH,EAAI5C,EAAI,GAAKM,EAAGiD,EAAId,EAAI,CAACA,GAAK,GAAIK,EAAIW,EAAI,CAACA,GAAK,GACvEf,EAAEoR,QAAS/Q,IACTA,EAAEorB,eAAiB5qB,EAAEgU,KAAKxU,EAAEorB,cAAcC,KAAKrrB,IAAKA,EAAEmrB,cAAgBprB,EAAEyU,KAAKxU,EAAEmrB,aAAaE,KAAKrrB,MAEnG,MAAMlT,EAAI0T,EAAEmQ,OAAO,CAAC3Q,EAAGY,KACrB,MAAMP,EAAIO,EAAEZ,EAAG7C,GACf,GAA6B,eAAzBwqB,QAAQC,IAAIC,UAAyC,iBAALxnB,EAClD,MAAM,IAAIynB,UAAU,+DACtB,OAAOznB,GACNjD,GAAK,IAAKzP,EAAI,IAAIqT,GAAElU,EAAGgU,EAAGnB,EAAGE,GAAID,EAAIG,EAAE4Q,OAAO,CAAC3Q,EAAGY,KACnD,MAAMP,EAAIO,EAAEZ,EAAG7C,GACf,GAA6B,eAAzBwqB,QAAQC,IAAIC,WAA8Bvc,MAAMK,QAAQtL,GAC1D,MAAM,IAAIynB,UAAU,iFACtB,OAAOznB,GACN1S,EAAE6hB,SACL,OAAuB/hB,EAAEnB,cAAc0uB,GAAI,CACzCtK,WAAYhjB,EACZ+P,UAAWlF,EACXqxB,iBAAkBzsB,EAAEysB,iBACpBiB,aAAcxtB,EACd0tB,OAAQh7B,EACR+6B,cAA4B,IAAblrB,EAAEuH,YAAe,EAASvH,EACzC4Q,QAASlT,GAEb,CACA,MAAMuS,GAAK,EAAGtf,SAAU4M,KAAwBlJ,EAAE,MAAO,CAAE5H,MAAO,CAAEi/B,WAAY,UAAY/6B,SAA0B0D,EAAE6jB,GAAI,CAAEnO,QAAqB,iBAALxM,EAAgBA,EAAI,OAAU0R,GAAK,CAC/K0c,YAAY,GACXjqB,GAAI,CAACnE,EAAGzP,EAAG6K,KACZ,IAAI0E,EACJ,IAAKE,EAAEiJ,OAAOmB,SACZ,OAAO,EACT,MAAMnK,EAAI1P,EAAEyP,EAAEiJ,OAAOmB,UACrB,QAAOnK,KAA2B,OAArBH,EAAIG,EAAEouB,iBAAsB,EAASvuB,EAAEU,IAAKT,GAAMA,EAAEoN,eAAe8C,SAAS7U,MAAO,IAC/FkzB,GAAMtuB,IACP,MAAMzP,EAAI,GACV,IAAI6K,EAAI,GAAI6E,GAAI,EAChB,IAAK,IAAIH,EAAI,EAAGA,EAAIE,EAAEgK,OAAQlK,IAAK,CACjC,MAAMC,EAAIC,EAAEF,GACN,MAANC,EAAYE,GAAK1P,EAAE8mB,KAAKjc,GAAIA,EAAI2E,IAAME,GAAI,EAAI7E,EAAI2E,GAAW,MAANA,GAAa3E,GAAK2E,EAAGxP,EAAE8mB,KAAKjc,GAAIA,EAAI,GAAI6E,GAAI,GAAMA,EAAI7E,GAAK2E,EAAIxP,EAAE8mB,KAAKtX,EAC/H,CACA,MAAa,KAAN3E,GAAY7K,EAAE8mB,KAAKjc,GAAI7K,GAC0HJ,GAAM6P,IAC9J,MAAQglB,QAASz0B,GAAMoS,MAAOsJ,SAAU7Q,EAAGqc,gBAAiBxX,GAAMgN,MAAOrS,SAAUkF,GAAM1P,MAAQsV,qBAAsB3F,GAAMlP,KAAMqP,EAAI,IAAKF,KAAM0R,IAAMtR,EAAIF,EAAEquB,cAAgBruB,EAAEquB,cAAgB7b,GAChM/S,EAAE,KACA,IAAIQ,EAAGvN,EACP,GAAImN,EAAG,CACL,MAAM4D,EAAI,IAAIvI,GACd,IAAK,IAAIoH,EAAI,EAAGA,EAAImB,EAAEqG,QAAUxH,IAA6B,OAAtBrC,EAAIL,EAAE1L,kBAAuB,EAAS+L,EAAE9L,aAAe,IAAKmO,IAAK,CACtG,MAAME,EAAIiB,EAAEnB,GACI,OAAf5P,EAAI8P,EAAE2O,OAAiBze,EAAEqd,SAAS,qCAAuCvN,EAAE+J,eAAiBrM,EAC/F,CACAH,EAAE0D,EACJ,GACC,CAAC5D,IACJ,MAAM5E,EAAI4N,MAAO5I,IACf,IAAIwD,EACJ,MAAM/Q,EAA4B,OAAvB+Q,EAAIxD,EAAEgJ,KAAKmD,cAAmB,EAAS3I,EAAEuJ,OAAOC,cAC1B,iBAA1BhN,EAAEgJ,KAAKmD,QAAQE,SAAuBrI,GAAEhE,EAAG5P,IAAKqC,KAAkB,sCAAXuN,EAAE/Q,OAAiD+Q,EAAEgJ,KAAK4N,sBAAwBuX,IAAKnuB,EAAEgJ,KAAKmD,QAAQG,eAAiBrM,EAAGD,EAAEgJ,KAAKmD,QAAQ+E,OAASlR,EAAEgJ,KAAKmD,QAAQ+E,KAAO,IAAKlR,EAAEgJ,KAAKmD,QAAQ+E,KAAKgG,KAAK,qCAItQlU,GAAEJ,EAAE0E,mBAAoBtM,GAAIgI,GAAEJ,EAAE+E,qBAAsB3M,GAAIgI,GAAEJ,EAAE8E,qBAAsB1M,GAAIgI,GAAEJ,EAAE4E,8BAA+BxM,GAAIgI,GAAEJ,EAAEqE,kBAH5H2B,MAAO5I,IACZgE,GAAEhE,EAAG5P,IAAK,SAAW4P,EAAEgJ,KAAKqN,WAlBxB,CAACxW,UAAa9M,OAAO2f,UAAY,KAAM,IAAIA,WAAYC,gBAAgB9S,EAAG,aAAa+S,KAAKK,aAAe,GAAKpT,EAAE2Q,QAAQ,kBAAmB,IAkBxGf,CAAGzP,EAAEgJ,KAAKqN,eAGrD,MAAMjU,EAAI,CACRkR,KAAM,8BAER,OAAY,MAALvT,GAAaA,EAAEkuB,aAAe7rB,EAAE3H,SAAW,CAChDzC,MAAO,CACLC,qBAAqB,EACrBK,uBAAuB,EACvBH,+BAA+B,EAC/BE,uBAAuB,EACvBO,oBAAoB,KAEpBwJ,GCzsBN,MAAMisB,GAAK,0DAA2DC,GAAK,2DAA4DC,GAAK,CAAA,EAC5I,SAASC,GAAGp+B,EAAGuP,GACb,OAAQ4uB,GAAGE,IAAMH,GAAKD,IAAIrS,KAAK5rB,EACjC,CACA,MAAMs+B,GAAK,eAIX,SAASC,GAAGv+B,GACV,MAA6B,KAAtBA,EAAEogB,QAAQke,GAAI,GACvB,CACA,MAAMtd,GAOJ,WAAAgZ,CAAYzqB,EAAG1E,EAAG6E,GAChBqpB,KAAKyF,SAAWjvB,EAAGwpB,KAAK0F,OAAS5zB,EAAG6E,IAAMqpB,KAAK2F,MAAQhvB,EACzD,EAKF,SAASyP,GAAGnf,EAAGuP,GACb,MAAM1E,EAAI,GAAI6E,EAAI,CAAA,EAClB,IAAIE,GAAI,EACR,OAASA,EAAI5P,EAAEyZ,QACb+F,OAAOoZ,OAAO/tB,EAAG7K,EAAE4P,GAAG4uB,UAAWhf,OAAOoZ,OAAOlpB,EAAG1P,EAAE4P,GAAG6uB,QACzD,OAAO,IAAIzd,GAAGnW,EAAG6E,EAAGH,EACtB,CACA,SAASovB,GAAG3+B,GACV,OAAOA,EAAE+iB,aACX,CAZA/B,GAAGsC,UAAUkb,SAAW,CAAA,EACxBxd,GAAGsC,UAAUmb,OAAS,CAAA,EACtBzd,GAAGsC,UAAUob,MAAQ,KAWrB,MAAMp+B,GAMJ,WAAA05B,CAAYzqB,EAAG1E,GACbkuB,KAAKyF,SAAWjvB,EAAGwpB,KAAKE,UAAYpuB,CACtC,EAEFvK,GAAGgjB,UAAUob,MAAQ,KACrBp+B,GAAGgjB,UAAUsb,SAAU,EACvBt+B,GAAGgjB,UAAUub,YAAa,EAC1Bv+B,GAAGgjB,UAAUwb,mBAAoB,EACjCx+B,GAAGgjB,UAAUyb,QAAS,EACtBz+B,GAAGgjB,UAAU0b,gBAAiB,EAC9B1+B,GAAGgjB,UAAU2b,gBAAiB,EAC9B3+B,GAAGgjB,UAAU4b,uBAAwB,EACrC5+B,GAAGgjB,UAAU6b,iBAAkB,EAC/B7+B,GAAGgjB,UAAU8b,SAAU,EACvB,IAAIC,GAAK,EACT,MAAMlsB,GAAIkf,KAAMhiB,GAAIgiB,KAAMxC,GAAKwC,KAAMhf,GAAIgf,KAAM3e,GAAI2e,KAAMzyB,GAAKyyB,KAAM3V,GAAI2V,KACxE,SAASA,KACP,OAAO,KAAOgN,EAChB,CACA,MAAMC,GAAqB9f,OAAO8X,OAAuB9X,OAAO+Z,eAAe,CAC7EgG,UAAW,KACXX,QAASzrB,GACT0rB,WAAYxuB,GACZ6uB,sBAAuBxiB,GACvBsiB,eAAgBp/B,GAChBm/B,OAAQ1rB,GACRyrB,kBAAmBjP,GACnBoP,eAAgBvrB,IACf8rB,OAAOC,YAAa,CAAE10B,MAAO,YAAc7J,GAAKse,OAAOC,KAAK6f,IAC/D,MAAMI,WAAWp/B,GAQf,WAAA05B,CAAYzqB,EAAG1E,EAAG6E,EAAGE,GACnB,IAAIvN,GAAI,EACR,GAAIs9B,MAAMpwB,EAAG1E,GAAI+0B,GAAG7G,KAAM,QAASnpB,GAAgB,iBAALF,EAC5C,OAASrN,EAAInB,GAAGuY,QAAU,CACxB,MAAM7O,EAAI1J,GAAGmB,GACbu9B,GAAG7G,KAAM73B,GAAGmB,IAAKqN,EAAI4vB,GAAG10B,MAAQ00B,GAAG10B,GACrC,CACJ,EAGF,SAASg1B,GAAG5/B,EAAGuP,EAAG1E,GAChBA,IAAM7K,EAAEuP,GAAK1E,EACf,CAHA60B,GAAGpc,UAAU8b,SAAU,EAIvB,MAAMS,GAAK,CAAA,EAAGtc,eACd,SAASlB,GAAGriB,GACV,MAAMuP,EAAI,GAAI1E,EAAI,CAAA,EAClB,IAAI6E,EACJ,IAAKA,KAAK1P,EAAE8/B,WACV,GAAID,GAAGrc,KAAKxjB,EAAE8/B,WAAYpwB,GAAI,CAC5B,MAAME,EAAI5P,EAAE8/B,WAAWpwB,GAAIrN,EAAI,IAAIq9B,GACjChwB,EACA1P,EAAEgtB,UAAUhtB,EAAEgjB,YAAc,CAAA,EAAItT,GAChCE,EACA5P,EAAE0+B,OAEJ1+B,EAAEm/B,iBAAmBn/B,EAAEm/B,gBAAgBzf,SAAShQ,KAAOrN,EAAE88B,iBAAkB,GAAK5vB,EAAEG,GAAKrN,EAAGwI,EAAE8zB,GAAGjvB,IAAMA,EAAG7E,EAAE8zB,GAAGt8B,EAAE42B,YAAcvpB,CAC/H,CACF,OAAO,IAAIsR,GAAGzR,EAAG1E,EAAG7K,EAAE0+B,MACxB,CACA,MAAMrvB,GAAKgT,GAAG,CACZqc,MAAO,QACP1R,UAAS,CAAChtB,EAAGuP,IACJ,SAAWA,EAAE+W,MAAM,GAAGvD,cAE/B+c,WAAY,CACVC,aAAc,KACdC,aAAc,KACdC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,WAAY,KACZC,UAAW,QAEX1c,GAAKtB,GAAG,CACVqc,MAAO,MACP1R,UAAS,CAAChtB,EAAGuP,IACJ,OAASA,EAAE+W,MAAM,GAAGvD,cAE7B+c,WAAY,CAAEQ,QAAS,KAAMC,QAAS,KAAMC,SAAU,QAExD,SAAS7hB,GAAG3e,EAAGuP,GACb,OAAOA,KAAKvP,EAAIA,EAAEuP,GAAKA,CACzB,CACA,SAASsc,GAAG7rB,EAAGuP,GACb,OAAOoP,GAAG3e,EAAGuP,EAAEwT,cACjB,CACA,MAAMwC,GAAKlD,GAAG,CACZqc,MAAO,QACP1b,WAAY,CAAEyd,WAAY,eAC1BzT,UAAWnB,GACXiU,WAAY,CAAEp/B,MAAO,KAAMggC,WAAY,QACrChiB,GAAK2D,GAAG,CACV2K,UAAS,CAAChtB,EAAGuP,IACE,SAANA,EAAeA,EAAI,QAAUA,EAAE+W,MAAM,GAAGvD,cAEjD+c,WAAY,CACVa,qBAAsB,KACtBC,WAAYvwB,GACZwwB,iBAAkB,KAClBC,SAAUzwB,GACV0wB,YAAa1wB,GACb2wB,aAAc3tB,GACd4tB,aAAc5tB,GACd6tB,YAAa7tB,GACb8tB,aAAcztB,GACd0tB,YAAa,KACbC,gBAAiB3tB,GACjB4tB,YAAa,KACbC,aAAclxB,GACdmxB,eAAgB9tB,GAChB+tB,iBAAkB,KAClBC,aAAcrxB,GACdsxB,WAAYjuB,GACZkuB,YAAavxB,GACbwxB,aAAc,KACdC,WAAYzxB,GACZ0xB,YAAa,KACbC,iBAAkB,KAClB14B,UAAW,KACX24B,eAAgBvuB,GAChBwuB,UAAW7uB,GACX8uB,SAAU,KACVC,UAAW/xB,GACXgyB,cAAehyB,GACfiyB,oBAAqBjyB,GACrBkyB,gBAAiB,KACjBC,SAAU9uB,GACV+uB,gBAAiB,KACjBC,aAAcrvB,GACdsvB,YAAatyB,GACbuyB,aAAcvyB,GACdwyB,aAAc,KACdC,aAAczyB,GACd0yB,oBAAqBrvB,GACrBsvB,aAAc3vB,GACd4vB,aAAc5vB,GACd6vB,YAAa7vB,GACb8vB,aAAc9yB,GACd+yB,YAAa/vB,GACbgwB,SAAU,KACVC,aAAcjwB,GACdkwB,aAAclwB,GACdmwB,aAAcnwB,GACdowB,cAAe,KACfrX,KAAM,QAENsX,GAAKrhB,GAAG,CACVqc,MAAO,OACP1b,WAAY,CACV2gB,cAAe,iBACfC,UAAW,QACXC,QAAS,MACTC,UAAW,cAEb9W,UAAWnB,GACXsT,gBAAiB,CAAC,UAAW,WAAY,QAAS,YAClDW,WAAY,CAEViE,KAAM,KACN58B,OAAQvH,GACRokC,cAAetwB,GACfuwB,UAAWvwB,GACXwwB,OAAQ,KACRC,MAAO,KACPC,gBAAiBjxB,GACjBkxB,oBAAqBlxB,GACrBmxB,eAAgBnxB,GAChBua,IAAK,KACL6W,GAAI,KACJ/rB,MAAOrF,GACPqxB,eAAgB,KAChBC,aAAc/wB,GACdgxB,UAAWvxB,GACXwxB,SAAUxxB,GACVyxB,SAAUlxB,GACVmxB,QAAS,KACTC,QAAS,KACTC,QAAS5xB,GACTokB,KAAM,KACNxnB,UAAW2D,GACXsxB,KAAM3xB,GACN4xB,QAAS,KACThpB,QAAS,KACTipB,gBAAiB70B,GACjBsd,SAAUxa,GACVgyB,aAAczxB,GACd0xB,OAAQ/xB,GAAIzT,GACZylC,YAAa,KACbzsB,KAAM,KACN0sB,SAAU,KACVC,SAAU,KACV7N,QAASvkB,GACTqyB,MAAOryB,GACPwkB,IAAK,KACL8N,QAAS,KACTtiC,SAAUgQ,GACVuyB,SAAU7V,GACV8V,UAAWt1B,GACXu1B,QAAS,KACTC,aAAc,KACdC,cAAe,KACfC,KAAM,KACNC,WAAY,KACZC,YAAa,KACbC,WAAY,KACZC,eAAgBhzB,GAChBizB,WAAY,KACZC,QAAS3yB,GACT5M,OAAQuM,GACRizB,OAAQnzB,GACRozB,KAAMlzB,GACNukB,KAAM,KACN4O,SAAU,KACVC,QAAS/yB,GACTgzB,UAAWhzB,GACXgN,GAAI,KACJimB,WAAY,KACZC,YAAa,KACbC,MAAO1zB,GACP2zB,UAAW,KACXC,UAAW,KACXC,GAAI,KACJC,MAAO9zB,GACP+zB,OAAQ,KACRC,SAAUzzB,GACV0zB,QAAS1zB,GACT2zB,UAAWl0B,GACXm0B,SAAU5zB,GACVmkB,KAAM,KACNC,MAAO,KACPpS,KAAM,KACNhiB,SAAU,KACV6D,KAAM,KACNwwB,QAAS,KACTC,KAAM7kB,GACNo0B,IAAKl0B,GACLm0B,SAAU,KACV9pB,IAAK,KACL+pB,UAAWp0B,GACX4kB,MAAO,KACPyP,OAAQ,KACRrqB,IAAK,KACLsqB,UAAWt0B,GACXnM,SAAUiM,GACV+kB,MAAO/kB,GACP+P,KAAM,KACN0kB,MAAO,KACPC,SAAU10B,GACV20B,WAAY30B,GACZ40B,QAAS,KACTC,aAAc,KACdC,WAAY,KACZC,cAAe,KACfC,cAAe,KACfC,eAAgB,KAChBC,eAAgB,KAChB3b,OAAQ,KACR4b,SAAU,KACVC,UAAW,KACXC,iBAAkB,KAClBjc,SAAU,KACV7pB,QAAS,KACT+lC,QAAS,KACTC,cAAe,KACfC,cAAe,KACfC,kBAAmB,KACnBC,OAAQ,KACRC,YAAa,KACbC,MAAO,KACPC,WAAY,KACZC,OAAQ,KACRC,UAAW,KACXC,YAAa,KACbC,WAAY,KACZC,YAAa,KACbC,WAAY,KACZC,YAAa,KACbC,OAAQ,KACRC,iBAAkB,KAClBC,UAAW,KACXC,QAAS,KACTC,QAAS,KACTnd,QAAS,KACTod,WAAY,KACZC,aAAc,KACdC,QAAS,KACTC,UAAW,KACXxd,UAAW,KACXyd,WAAY,KACZC,QAAS,KACTC,iBAAkB,KAClBC,OAAQ,KACRC,aAAc,KACdC,iBAAkB,KAClBC,UAAW,KACXC,YAAa,KACbC,UAAW,KACXC,eAAgB,KAChBnvB,YAAa,KACbF,aAAc,KACdC,aAAc,KACdqvB,YAAa,KACbC,WAAY,KACZC,YAAa,KACbC,UAAW,KACXC,UAAW,KACXC,SAAU,KACVC,WAAY,KACZC,WAAY,KACZC,QAAS,KACTC,QAAS,KACTC,OAAQ,KACRC,UAAW,KACXC,WAAY,KACZC,WAAY,KACZC,aAAc,KACdC,mBAAoB,KACpBC,QAAS,KACTC,SAAU,KACVC,SAAU,KACVC,YAAa,KACbC,0BAA2B,KAC3BC,SAAU,KACVC,UAAW,KACXC,SAAU,KACVC,aAAc,KACdC,UAAW,KACXC,UAAW,KACXC,SAAU,KACVC,UAAW,KACXC,aAAc,KACdC,SAAU,KACVC,qBAAsB,KACtBC,SAAU,KACVC,eAAgB,KAChBC,UAAW,KACXC,QAAS,KACTlqC,KAAMuQ,GACN45B,QAAS15B,GACT25B,QAAS,KACTC,KAAMv5B,GACN4Y,YAAa,KACb4gB,YAAa/5B,GACbg6B,QAAS,KACTC,cAAe,KACfC,oBAAqB,KACrBlV,OAAQ,KACRmV,QAAS,KACTC,SAAUp6B,GACVq6B,eAAgB,KAChBpV,IAAK1kB,GACL+5B,SAAUt6B,GACVu6B,SAAUv6B,GACV0Z,KAAMxZ,GACNs6B,QAASt6B,GACTu6B,QAASl6B,GACT4kB,MAAO,KACPuV,OAAQ16B,GACR26B,SAAU36B,GACV46B,SAAU56B,GACV66B,mBAAoB76B,GACpB86B,yBAA0B96B,GAC1B+6B,eAAgB,KAChBC,MAAO,KACP/wB,KAAM/J,GACNklB,MAAO,KACP6V,KAAM,KACN5V,KAAMnlB,GACNg7B,WAAYh+B,GACZod,IAAK,KACL6gB,OAAQ,KACRC,QAAS,KACTC,OAAQ,KACRrpB,MAAO9R,GACPo7B,KAAM,KACN9vC,MAAO,KACPqxB,SAAU3c,GACV8Y,OAAQ,KACR/pB,MAAO,KACPssC,UAAW,KACX7vC,KAAM,KACN8vC,cAAex7B,GACfy7B,OAAQ,KACR7jC,MAAOsF,GACPxJ,MAAOwM,GACPw7B,KAAM,KACNC,mBAAoB,KAGpBC,MAAO,KAEPC,MAAO,KAEPC,QAASv7B,GAETw7B,KAAM,KAENloC,WAAY,KAEZmoC,QAAS,KAETC,OAAQ/7B,GAER+H,YAAa,KAEbi0B,aAAch8B,GAEdi8B,YAAa,KAEbC,YAAa,KAEbC,KAAM,KAENC,QAAS,KAETC,QAAS,KAET1kB,MAAO,KAEP2kB,KAAM,KAENC,SAAU,KAEVC,SAAU,KAEV10B,MAAO,KAEP20B,QAAS38B,GAET48B,QAAS58B,GAETvL,MAAO,KAEPooC,KAAM,KAENC,MAAO,KAEPC,YAAa,KAEbC,OAAQ98B,GAER+8B,WAAY/8B,GAEZg9B,KAAM,KAENC,SAAU,KAEVC,OAAQ,KAERC,aAAcn9B,GAEdo9B,YAAap9B,GAEbq9B,SAAUv9B,GAEVw9B,OAAQx9B,GAERy9B,QAASz9B,GAETkqB,OAAQlqB,GAER09B,OAAQ,KAERC,QAAS,KAETC,OAAQ,KAERC,IAAK,KAELC,YAAa59B,GAEb69B,MAAO,KAEPC,OAAQ,KAERC,UAAW/gC,GAEXghC,QAAS,KAET3a,QAAS,KAET10B,KAAM,KAENsvC,UAAWj+B,GAEXk+B,UAAW,KAEXvgB,QAAS,KAETwgB,OAAQ,KAERC,MAAO,KAEPC,OAAQr+B,GAGRs+B,kBAAmB,KACnBC,YAAa,KACbC,SAAU,KACVC,wBAAyB3+B,GACzB4+B,sBAAuB5+B,GACvB6+B,OAAQ,KACRxT,SAAU,KACVzW,QAAS1U,GACT4+B,SAAU,KACVC,aAAc,QAEdC,GAAK9vB,GAAG,CACVqc,MAAO,MACP1b,WAAY,CACVovB,aAAc,gBACdC,kBAAmB,qBACnBC,WAAY,cACZC,cAAe,iBACfC,UAAW,aACXziC,UAAW,QACX0iC,SAAU,YACVC,SAAU,YACVC,mBAAoB,sBACpBC,0BAA2B,8BAC3BC,aAAc,gBACdC,eAAgB,kBAChBzN,YAAa,cACb0N,SAAU,WACVC,iBAAkB,oBAClBC,iBAAkB,oBAClBC,YAAa,eACb7yC,SAAU,YACV8yC,WAAY,cACZC,aAAc,gBACd7xC,WAAY,cACZiB,SAAU,YACV6wC,eAAgB,mBAChBC,YAAa,eACbC,UAAW,aACXC,YAAa,eACb/wC,WAAY,cACZgxC,UAAW,aACXC,2BAA4B,+BAC5BC,yBAA0B,6BAC1BnN,SAAU,WACVoN,UAAW,cACXC,aAAc,iBACdC,aAAc,iBACdC,eAAgB,kBAChBC,cAAe,iBACfC,cAAe,iBACfC,UAAW,aACXC,UAAW,aACXC,YAAa,eACbC,QAAS,WACTC,YAAa,gBACbC,aAAc,iBACdC,QAAS,WACTC,QAAS,WACTC,QAAS,WACTC,SAAU,YACVC,MAAO,SACPC,UAAW,cACXC,WAAY,eACZ/M,QAAS,UACTgN,WAAY,aACZ/M,aAAc,eACdG,cAAe,gBACf6M,QAAS,UACT1M,SAAU,WACVC,UAAW,YACXC,iBAAkB,mBAClBjc,SAAU,WACV7pB,QAAS,UACT+lC,QAAS,UACTI,OAAQ,SACRC,YAAa,cACbC,MAAO,QACPC,WAAY,aACZC,OAAQ,SACRC,UAAW,YACXC,YAAa,cACbC,WAAY,aACZC,YAAa,cACbC,WAAY,aACZC,YAAa,cACbC,OAAQ,SACRC,iBAAkB,mBAClBC,UAAW,YACXuL,MAAO,QACPtL,QAAS,UACTC,QAAS,UACTnd,QAAS,UACTyoB,UAAW,YACXC,WAAY,aACZrL,aAAc,eACdC,QAAS,UACTC,UAAW,YACXxd,UAAW,YACXyd,WAAY,aACZC,QAAS,UACTE,OAAQ,SACRC,aAAc,eACdC,iBAAkB,mBAClBE,YAAa,cACbC,UAAW,YACXlvB,YAAa,cACbF,aAAc,eACdC,aAAc,eACdqvB,YAAa,cACbC,WAAY,aACZC,YAAa,cACbC,UAAW,YACXsK,aAAc,eACdrK,UAAW,YACXC,SAAU,WACVC,WAAY,aACZC,WAAY,aACZC,QAAS,UACTC,QAAS,UACTC,OAAQ,SACRC,UAAW,YACXC,WAAY,aACZC,WAAY,aACZC,aAAc,eACd4J,SAAU,WACV1J,QAAS,UACTC,SAAU,WACVC,SAAU,WACVG,SAAU,WACVC,UAAW,YACXC,SAAU,WACVoJ,OAAQ,SACRlJ,UAAW,YACXC,UAAW,YACXC,SAAU,WACVC,UAAW,YACXC,aAAc,eACdC,SAAU,WACVE,SAAU,WACVC,eAAgB,iBAChBC,UAAW,YACX0I,OAAQ,SACRC,iBAAkB,oBAClBC,kBAAmB,qBACnBC,WAAY,cACZC,QAAS,WACTC,cAAe,iBACfpI,eAAgB,iBAChBqI,gBAAiB,mBACjBC,eAAgB,kBAChBC,UAAW,aACXC,YAAa,eACbC,sBAAuB,yBACvBC,uBAAwB,0BACxBC,gBAAiB,mBACjBC,iBAAkB,oBAClBC,cAAe,iBACfC,eAAgB,kBAChBC,iBAAkB,oBAClBC,cAAe,iBACf51C,YAAa,eACbovB,SAAU,WACVymB,WAAY,cACZC,eAAgB,kBAChBC,cAAe,iBACfC,gBAAiB,mBACjBC,OAAQ,SACRC,kBAAmB,qBACnBC,mBAAoB,sBACpBC,YAAa,eACbC,aAAc,gBACdC,WAAY,eACZC,YAAa,eACbC,SAAU,YACVC,aAAc,gBACdC,cAAe,iBACfC,aAAc,gBACdC,SAAU,aACVC,YAAa,gBACbC,YAAa,gBACbC,YAAa,eACbC,YAAa,eACbC,QAAS,WAETC,cAAe,gBACfC,cAAe,iBAEjB/qB,UAAWrO,GACXmhB,WAAY,CACVkY,MAAOt7B,GACP01B,aAAc/+B,GACd4kC,WAAY,KACZC,SAAU,KACV7F,kBAAmB,KACnB8F,WAAY9kC,GACZ+kC,UAAW/kC,GACXi/B,WAAY,KACZ+F,OAAQhlC,GACRilC,cAAe,KACfC,cAAe,KACfC,QAASnlC,GACTolC,UAAW,KACXlG,cAAe,KACfmG,cAAe,KACfC,YAAa,KACbC,KAAM,KACNC,MAAO,KACPC,KAAMzlC,GACN0lC,GAAI,KACJC,SAAU,KACVxG,UAAWn/B,GACXtD,UAAW2D,GACXulC,KAAM,KACNxG,SAAU,KACVyG,cAAe,KACfxG,SAAU,KACVv3B,MAAO,KACPw3B,mBAAoB,KACpBC,0BAA2B,KAC3BC,aAAc,KACdC,eAAgB,KAChB72B,QAAS,KACTk9B,kBAAmB,KACnBC,iBAAkB,KAClB/T,YAAa,KACb/iC,OAAQ,KACR+2C,GAAI,KACJC,GAAI,KACJn5C,EAAG,KACH4yC,SAAU,KACVwG,cAAe,KACfC,QAASnmC,GACTomC,gBAAiBpmC,GACjBqmC,UAAW,KACXlzC,QAAS,KACTmzC,IAAK,KACLC,QAASvmC,GACT2/B,iBAAkB,KAClBtN,SAAUvyB,GACV0mC,GAAI,KACJC,GAAI,KACJC,SAAU,KACVC,SAAU,KACVC,UAAW5mC,GACX4/B,iBAAkB,KAClBiH,IAAK,KACLtyC,MAAO,KACPuyC,SAAU9mC,GACV+mC,0BAA2B,KAC3Bh6C,KAAM,KACN8yC,YAAa7/B,GACbhT,SAAU,KACV+iB,OAAQ,KACRi3B,UAAW,KACXC,YAAa,KACbnH,WAAY,KACZC,aAAc,KACdmH,UAAW,KACXC,eAAgB,KAChBj5C,WAAY,KACZiB,SAAU,KACV6wC,eAAgB,KAChBC,YAAa,KACbC,UAAW,KACXC,YAAa,KACb/wC,WAAY,KACZg4C,OAAQ,KACRC,GAAI,KACJ78B,KAAM,KACN88B,GAAI,KACJC,GAAI,KACJC,GAAIj7C,GACJk7C,GAAIl7C,GACJ6zC,UAAW7zC,GACX8zC,2BAA4B,KAC5BC,yBAA0B,KAC1BoH,SAAU,KACVC,kBAAmB,KACnBC,cAAe,KACfC,QAAS,KACTC,QAAS9nC,GACT+nC,kBAAmB,KACnBC,WAAY,KACZv0C,OAAQ,KACR8wB,KAAM,KACN4O,SAAU,KACVoN,UAAWvgC,GACXwgC,aAAcxgC,GACdygC,aAAczgC,GACdqN,GAAI,KACJ46B,YAAajoC,GACb0gC,eAAgB,KAChBwH,kBAAmB,KACnBC,GAAI,KACJC,IAAK,KACLC,UAAWroC,GACXA,KACAsoC,GAAItoC,GACJuoC,GAAIvoC,GACJwoC,GAAIxoC,GACJyoC,GAAIzoC,GACJ0oC,aAAcr/B,GACds/B,iBAAkB,KAClBC,UAAW,KAEXC,WAAY,KAEZC,SAAU,KAEVC,QAAS,KACT12B,KAAM,KACN22B,aAAc,KACdrI,cAAe,KACfC,cAAe,KACfqI,kBAAmBjpC,GACnBkpC,MAAO,KACPrI,UAAW,KACXC,UAAW,KACXC,YAAa,KACboI,aAAc,KACdC,YAAa,KACbC,YAAa,KACbC,KAAM,KACNC,iBAAkB,KAClBC,UAAW,KACXC,aAAc,KACdp/B,IAAK,KACLua,MAAO,KACP8kB,uBAAwB,KACxBC,sBAAuB,KACvBC,UAAW5pC,GACX6pC,UAAW,KACXxV,OAAQ,KACRrqB,IAAK,KACLtb,KAAM,KACNmhB,KAAM,KACNmxB,QAAS,KACTC,YAAa,KACbC,aAAc,KACdC,QAAS,KACTC,QAAS,KACTC,QAAS,KACTC,SAAU,KACVC,MAAO,KACPC,UAAW,KACXC,WAAY,KACZqI,WAAY,KACZC,SAAU,KACVC,OAAQ,KACRtV,QAAS,KACTgN,WAAY,KACZ/M,aAAc,KACdG,cAAe,KACf6M,QAAS,KACT1M,SAAU,KACVC,UAAW,KACXC,iBAAkB,KAClBjc,SAAU,KACV7pB,QAAS,KACT+lC,QAAS,KACTI,OAAQ,KACRC,YAAa,KACbC,MAAO,KACPC,WAAY,KACZC,OAAQ,KACRC,UAAW,KACXC,YAAa,KACbC,WAAY,KACZC,YAAa,KACbC,WAAY,KACZC,YAAa,KACbC,OAAQ,KACRC,iBAAkB,KAClBC,UAAW,KACXuL,MAAO,KACPtL,QAAS,KACTC,QAAS,KACTnd,QAAS,KACTyoB,UAAW,KACXC,WAAY,KACZrL,aAAc,KACdC,QAAS,KACTC,UAAW,KACXxd,UAAW,KACXyd,WAAY,KACZC,QAAS,KACTE,OAAQ,KACRC,aAAc,KACdC,iBAAkB,KAClBE,YAAa,KACbC,UAAW,KACXlvB,YAAa,KACbF,aAAc,KACdC,aAAc,KACdqvB,YAAa,KACbC,WAAY,KACZC,YAAa,KACbC,UAAW,KACXsK,aAAc,KACdrK,UAAW,KACXC,SAAU,KACVC,WAAY,KACZC,WAAY,KACZC,QAAS,KACTC,QAAS,KACTC,OAAQ,KACRC,UAAW,KACXC,WAAY,KACZC,WAAY,KACZC,aAAc,KACd4J,SAAU,KACV1J,QAAS,KACTC,SAAU,KACVC,SAAU,KACVG,SAAU,KACVC,UAAW,KACXC,SAAU,KACVoJ,OAAQ,KACRlJ,UAAW,KACXC,UAAW,KACXC,SAAU,KACVC,UAAW,KACXC,aAAc,KACdC,SAAU,KACVE,SAAU,KACVC,eAAgB,KAChBC,UAAW,KACX0I,OAAQ,KACR+H,QAAS,KACTC,SAAU,KACVC,MAAO,KACPC,OAAQ,KACRC,YAAa,KACbC,OAAQ,KACRC,SAAU,KACVC,QAAS,KACTrI,iBAAkBniC,GAClBoiC,kBAAmBpiC,GACnBqiC,WAAY,KACZC,QAAS,KACT34B,KAAM,KACN8gC,WAAYzqC,GACZ0qC,oBAAqB,KACrBC,iBAAkB,KAClBC,aAAc,KACdC,MAAO,KACPjR,KAAMv5B,GACNyqC,MAAO,KACPrG,cAAe,KACflC,cAAe,KACfwI,OAAQ,KACRC,UAAWhrC,GACXirC,UAAWjrC,GACXkrC,UAAWlrC,GACXmrC,cAAe,KACfC,oBAAqB,KACrBC,eAAgB,KAChBC,UAAW,KACXngB,SAAU9hB,GACVhN,EAAG,KACHkvC,OAAQ,KACRpR,eAAgB,KAChBqR,KAAM,KACNC,KAAM,KACN1mB,IAAK1b,GACLs0B,IAAKt0B,GACLm5B,gBAAiB,KACjBkJ,YAAa,KACbC,UAAW,KACXC,mBAAoBviC,GACpBwiC,iBAAkBxiC,GAClByiC,cAAeziC,GACf0iC,gBAAiB1iC,GACjB2iC,SAAU,KACVC,QAAS,KACTvxB,OAAQ,KACRwxB,OAAQ,KACRC,GAAI,KACJC,GAAI,KACJC,MAAO,KACPC,KAAM,KACN7J,eAAgB,KAChB8J,KAAM,KACNC,MAAO,KACPC,aAAc,KACdC,iBAAkB1sC,GAClB2sC,iBAAkB3sC,GAClB4sC,aAAc,KACdC,QAAS,KACTC,YAAa,KACbC,aAAc,KACdC,MAAO,KACPC,MAAO,KACPC,YAAa,KACbxK,UAAW,KACXC,YAAa,KACbC,sBAAuB5iC,GACvB6iC,uBAAwB7iC,GACxBmtC,OAAQ,KACR5xB,OAAQ,KACRunB,gBAAiBz5B,GACjB05B,iBAAkB,KAClBC,cAAe,KACfC,eAAgB,KAChBC,iBAAkBljC,GAClBmjC,cAAenjC,GACfzS,YAAa,KACbjC,MAAO,KACP8hD,aAAcptC,GACdqtC,aAAc,KACdC,oBAAqB,KACrBC,WAAY,KACZC,cAAe,KACfC,qBAAsB,KACtBC,eAAgBrkC,GAChBsT,SAAU3c,GACV2tC,YAAa,KACb70B,OAAQ,KACR80B,QAAS5tC,GACT6tC,QAAS7tC,GACTojC,WAAY,KACZC,eAAgB,KAChBC,cAAe,KACfwK,WAAY,KACZpJ,cAAe,KACf31C,MAAO,KACPg/C,kBAAmB,KACnBviD,KAAM,KACNg4C,OAAQn6B,GACR4S,GAAI,KACJtC,UAAW,KACX4pB,gBAAiB,KACjByK,GAAI,KACJC,GAAI,KACJxK,kBAAmBzjC,GACnB0jC,mBAAoB1jC,GACpBkuC,QAAS,KACTvK,YAAa,KACbC,aAAc,KACdC,WAAY7jC,GACZgc,OAAQ,KACR8nB,YAAa9jC,GACbikC,cAAejkC,GACfkkC,aAAc,KACdH,SAAU/jC,GACVgkC,aAAchkC,GACd2d,QAAS,KACTwmB,SAAUnkC,GACVokC,YAAapkC,GACbqkC,YAAarkC,GACbnT,QAAS,KACTshD,WAAY,KACZC,WAAY,KACZ56C,MAAO,KACP66C,OAAQ,KACR/J,YAAa,KACbC,YAAa,KACbp+B,EAAG,KACHmoC,GAAI,KACJC,GAAI,KACJC,iBAAkB,KAClBhK,QAASxkC,GACThB,EAAG,KACHyvC,GAAI,KACJC,GAAI,KACJC,iBAAkB,KAClBruC,EAAG,KACHsuC,WAAY,QAEZC,GAAK,kBAAmBC,GAAK,UAAWC,GAAK,SAqBjD,SAASC,GAAGriD,GACV,MAAO,IAAMA,EAAE+iB,aACjB,CACA,SAASu/B,GAAGtiD,GACV,OAAOA,EAAEuiD,OAAO,GAAG3lC,aACrB,CACA,MAAM4lC,GAAK,CACT9S,QAAS,UACTqD,SAAU,WACV7L,OAAQ,SACRiP,gBAAiB,kBACjBC,iBAAkB,mBAClBC,cAAe,gBACfC,eAAgB,iBAChBC,iBAAkB,mBAClBM,OAAQ,SACR9W,aAAc,eACdC,aAAc,eACdC,UAAW,YACXC,UAAW,YACXC,UAAW,YACXC,WAAY,aACZC,UAAW,YACXK,WAAY,cACX+hB,GAAKtjC,GAAG,CAACwE,GAAItU,GAAIkW,GAAI7G,GAAIglB,IAAK,QAASgf,GAAKvjC,GAAG,CAACwE,GAAItU,GAAIkW,GAAI7G,GAAIyzB,IAAK,OAIxE,SAAStzB,GAAG7e,GACV,OAAOA,GAAKA,EAAEm5B,YAAc3Z,OAAO8D,UAAUC,eAAeC,KAAKxjB,EAAG,WAAaA,EAAE03B,QAAU13B,CAC/F,CACA,IAAa2iD,GAAIC,GA0FbC,GA1FAz4B,GAAK,CAAA,EAiHT,IAAI04B,GAtBJ,WACE,GAAID,GAAI,OAAOz4B,GACfy4B,GAAK,EACL,IAAI7iD,EAAIoqB,IAAMA,GAAG24B,iBAAmB,SAASrzC,GAC3C,OAAOA,GAAKA,EAAEypB,WAAazpB,EAAI,CAAEgoB,QAAShoB,EAC5C,EACA8P,OAAO+Z,eAAenP,GAAI,aAAc,CAAErf,OAAO,IAAOqf,GAAGsN,QAE3D,SAAWhoB,EAAGE,GACZ,IAAIvN,EAAI,KACR,IAAKqN,GAAiB,iBAALA,EACf,OAAOrN,EACT,IAAIuI,GAAI,EAAI2E,EAAEmoB,SAAShoB,GAAID,EAAgB,mBAALG,EACtC,OAAOhF,EAAEyY,QAAQ,SAAS7T,GACxB,GAAe,gBAAXA,EAAE3Q,KAAwB,CAC5B,IAAIgR,EAAIL,EAAEgvB,SAAU7uB,EAAIH,EAAEzE,MAC1B0E,EAAIG,EAAEC,EAAGF,EAAGH,GAAKG,KAAMtN,EAAIA,GAAK,CAAA,GAAMwN,GAAKF,EAC7C,CACF,GAAItN,CACN,EAZA,IAAIkN,EAAIvP,EAjGV,WACE,GAAI4iD,GAAI,OAAOD,GACfC,GAAK,EACL,IAAI5iD,EAAI,kCAAmCuP,EAAI,MAAO1E,EAAI,OAAQ6E,EAAI,yCAA0CE,EAAI,QAASvN,EAAI,uDAAwDuI,EAAI,UAAW6E,EAAI,aACzLuC,EAAI,GAgFvB,SAASiB,EAAE/C,GACT,OAAOA,EAAIA,EAAEkQ,QAAQ3Q,EAAGuC,GAAKA,CAC/B,CACA,OAlFA2wC,GAAK,SAASzyC,EAAGnQ,GACf,GAAgB,iBAALmQ,EACT,MAAM,IAAIkqB,UAAU,mCACtB,IAAKlqB,EAAG,MAAO,GACfnQ,EAAIA,GAAK,CAAA,EACT,IAAIyZ,EAAI,EAAGzG,EAAI,EACf,SAASZ,EAAEK,GACT,IAAIG,EAAIH,EAAEonB,MAAMrqB,GAChBoD,IAAM6G,GAAK7G,EAAE8G,QACb,IAAInH,EAAIE,EAAEwwC,YAXgN,MAY1NjwC,GAAKT,EAAIE,EAAEiH,OAASnH,EAAIS,EAAIP,EAAEiH,MAChC,CACA,SAAS5G,IACP,IAAIL,EAAI,CAAEywC,KAAMzpC,EAAG0pC,OAAQnwC,GAC3B,OAAO,SAASJ,GACd,OAAOA,EAAEge,SAAW,IAAIlmB,EAAE+H,GAAIwB,IAAKrB,CACrC,CACF,CACA,SAASlI,EAAE+H,GACTumB,KAAK5T,MAAQ3S,EAAGumB,KAAKmhB,IAAM,CAAE+I,KAAMzpC,EAAG0pC,OAAQnwC,GAAKgmB,KAAK7G,OAASnyB,EAAEmyB,MACrE,CAEA,SAAS7f,EAAEG,GACT,IAAIG,EAAI,IAAI4M,MACVxf,EAAEmyB,OAAS,IAAM1Y,EAAI,IAAMzG,EAAI,KAAOP,GAExC,GAAIG,EAAEwwC,OAAS3wC,EAAGG,EAAEywC,SAAWrjD,EAAEmyB,OAAQvf,EAAEswC,KAAOzpC,EAAG7G,EAAEuwC,OAASnwC,EAAGJ,EAAEuf,OAAShiB,GAAInQ,EAAEsjD,OAAQ,MAAM1wC,CACpG,CACA,SAASa,EAAEhB,GACT,IAAIG,EAAIH,EAAE4mB,KAAKlpB,GACf,GAAIyC,EAAG,CACL,IAAIL,EAAIK,EAAE,GACV,OAAOR,EAAEG,GAAIpC,EAAIA,EAAEoW,MAAMhU,EAAEmH,QAAS9G,CACtC,CACF,CACA,SAASqB,IACPR,EAAE3I,EACJ,CACA,SAASqH,EAAEM,GACT,IAAIG,EACJ,IAAKH,EAAIA,GAAK,GAAIG,EAAIY,MACd,IAANZ,GAAYH,EAAEsU,KAAKnU,GACrB,OAAOH,CACT,CACA,SAASe,IACP,IAAIf,EAAIK,IACR,GA/CC,KA+CU3C,EAAEqyC,OAAO,IA/CV,KA+CqBryC,EAAEqyC,OAAO,GAAK,CAC3C,IAAK,IAAI5vC,EAAI,EAAGX,GAAK9B,EAAEqyC,OAAO5vC,KAhDtB,KAgDkCzC,EAAEqyC,OAAO5vC,IAhDpD,KAgD+DzC,EAAEqyC,OAAO5vC,EAAI,OACvEA,EACJ,GAAIA,GAAK,EAAGX,IAAM9B,EAAEqyC,OAAO5vC,EAAI,GAC7B,OAAON,EAAE,0BACX,IAAIC,EAAIpC,EAAEoW,MAAM,EAAG3T,EAAI,GACvB,OAAOI,GAAK,EAAGZ,EAAEG,GAAIpC,EAAIA,EAAEoW,MAAM3T,GAAII,GAAK,EAAGP,EAAE,CAC7C3T,KAtDuB,UAuDvBykD,QAAShxC,GAEb,CACF,CACA,SAASqB,IACP,IAAInB,EAAIK,IAAKF,EAAIa,EAAE9D,GACnB,GAAIiD,EAAG,CACL,GAAIY,KAAMC,EAAE5D,GAAI,OAAOyC,EAAE,wBACzB,IAAIC,EAAIkB,EAAEnR,GAAIkE,EAAIiM,EAAE,CAClB3T,KAhEsC,cAiEtC2/B,SAAUvrB,EAAEN,EAAE,GAAGyN,QAAQpgB,EAAGgS,IAC5BjH,MAAOuH,EAAIW,EAAEX,EAAE,GAAG8N,QAAQpgB,EAAGgS,IAAMA,IAErC,OAAOwB,EAAE5I,GAAIrE,CACf,CACF,CAQA,OAxDAkE,EAAE6Y,UAAUrH,QAAU/L,EAwDf8D,IAPP,WACE,IAESrB,EAFLH,EAAI,GAER,IADAN,EAAEM,GACUG,EAAIgB,MACR,IAANhB,IAAaH,EAAEsU,KAAKnU,GAAIT,EAAEM,IAC5B,OAAOA,CACT,CACYM,EACd,EAIO6vC,EACT,CASYY,IAaV,OAAOn5B,EACT,CACSo5B,GACT,MAAMC,GAAqB5kC,GAAGikC,IAAKY,GAAKD,GAAG/rB,SAAW+rB,GAAI19B,GAAK6B,GAAG,OAAQ+7B,GAAK/7B,GAAG,SAClF,SAASA,GAAG5nB,GACV,OACA,SAAW6K,GACT,MAAM6E,EAAI7E,GAAKA,EAAE8lB,UAAY9lB,EAAE8lB,SAAS3wB,IAAM,CAAA,EAC9C,GAAqB,iBAAV0P,EAAEuzC,MAAoBvzC,EAAEuzC,KAAO,GAAwB,iBAAZvzC,EAAEwzC,QAAsBxzC,EAAEwzC,OAAS,EACvF,MAAO,CACLD,KAAMvzC,EAAEuzC,KACRC,OAAQxzC,EAAEwzC,OACV7F,OAA2B,iBAAZ3tC,EAAE2tC,QAAsB3tC,EAAE2tC,QAAS,EAAK3tC,EAAE2tC,YAAS,EAExE,CACF,CAMA,SAASuG,GAAG5jD,GACV,OAAQA,GAAiB,iBAALA,EAAqB,aAAcA,GAAK,SAAUA,EAAI6jD,GAAG7jD,EAAE2wB,UAAY,UAAW3wB,GAAK,QAASA,EAAI6jD,GAAG7jD,GAAK,SAAUA,GAAK,WAAYA,EAAI8jD,GAAG9jD,GAAK,GAAnI,EACtC,CACA,SAAS8jD,GAAG9jD,GACV,OAAO+jD,GAAG/jD,GAAKA,EAAEijD,MAAQ,IAAMc,GAAG/jD,GAAKA,EAAEkjD,OAC3C,CACA,SAASW,GAAG7jD,GACV,OAAO8jD,GAAG9jD,GAAKA,EAAEmlB,OAAS,IAAM2+B,GAAG9jD,GAAKA,EAAEk6C,IAC5C,CACA,SAAS6J,GAAG/jD,GACV,OAAOA,GAAiB,iBAALA,EAAgBA,EAAI,CACzC,CACA,MAAMoP,WAAUmQ,MAwDd,WAAAya,CAAYzqB,EAAG1E,EAAG6E,GAChBiwB,QAAqB,iBAAL90B,IAAkB6E,EAAI7E,EAAGA,OAAI,GAC7C,IAAI+E,EAAI,GAAIvN,EAAI,CAAA,EAAIuI,GAAI,EACxB,GAAIC,IAAqCxI,EAA/B,SAAUwI,GAAK,WAAYA,GAAuB,UAAWA,GAAK,QAASA,EAAxC,CAAEm5C,MAAOn5C,GAAsD,SAAUA,EAAQ,CAC5Ho5C,UAAW,CAACp5C,GACZm5C,MAAOn5C,EAAE8lB,UACH,IAAK9lB,IAAkB,iBAAL0E,EAAgBK,EAAIL,GAAKlN,EAAE6hD,OAAS30C,IAAM3E,GAAI,EAAIgF,EAAIL,EAAEwM,QAAS1Z,EAAE6hD,MAAQ30C,IAAKlN,EAAE8hD,SAAW9hD,EAAE6vB,QAAsB,iBAALxiB,EAAe,CACvJ,MAAMF,EAAIE,EAAE00C,QAAQ,MACd,IAAN50C,EAAWnN,EAAE8hD,OAASz0C,GAAKrN,EAAE6vB,OAASxiB,EAAE4W,MAAM,EAAG9W,GAAInN,EAAE8hD,OAASz0C,EAAE4W,MAAM9W,EAAI,GAC9E,CACA,IAAKnN,EAAE2hD,OAAS3hD,EAAE4hD,WAAa5hD,EAAE4hD,UAAW,CAC1C,MAAMz0C,EAAInN,EAAE4hD,UAAU5hD,EAAE4hD,UAAUxqC,OAAS,GAC3CjK,IAAMnN,EAAE2hD,MAAQx0C,EAAEmhB,SACpB,CACA,MAAMlhB,EAAIpN,EAAE2hD,OAAS,UAAW3hD,EAAE2hD,MAAQ3hD,EAAE2hD,MAAM7+B,MAAQ9iB,EAAE2hD,MAC5DjrB,KAAKkrB,UAAY5hD,EAAE4hD,gBAAa,EAAQlrB,KAAKmrB,MAAQ7hD,EAAE6hD,YAAS,EAAQnrB,KAAKmqB,OAASzzC,EAAIA,EAAEyzC,YAAS,EAAQnqB,KAAKsrB,WAAQ,EAAQtrB,KAAKhO,KAAMgO,KAAKhd,QAAUnM,EAAGmpB,KAAKkqB,KAAOxzC,EAAIA,EAAEwzC,UAAO,EAAQlqB,KAAK7V,KAAO0gC,GAAGvhD,EAAE2hD,QAAU,MAAOjrB,KAAKirB,MAAQ3hD,EAAE2hD,YAAS,EAAQjrB,KAAKoqB,OAASpqB,KAAKhd,QAASgd,KAAKorB,OAAS9hD,EAAE8hD,aAAU,EAAQprB,KAAK7G,OAAS7vB,EAAE6vB,aAAU,EAAQ6G,KAAKurB,MAAQ15C,GAAKvI,EAAE6hD,OAAiC,iBAAjB7hD,EAAE6hD,MAAMI,MAAoBjiD,EAAE6hD,MAAMI,MAAQ,GAAIvrB,KAAKwrB,OAAQxrB,KAAKyrB,SAAUzrB,KAAK0rB,KAAM1rB,KAAK2rB,GACpe,EAEFt1C,GAAEkU,UAAUyH,KAAO,GACnB3b,GAAEkU,UAAUJ,KAAO,GACnB9T,GAAEkU,UAAU6/B,OAAS,GACrB/zC,GAAEkU,UAAUvH,QAAU,GACtB3M,GAAEkU,UAAUghC,MAAQ,GACpBl1C,GAAEkU,UAAU4/B,YAAS,EACrB9zC,GAAEkU,UAAU2/B,UAAO,EACnB7zC,GAAEkU,UAAU2gC,eAAY,EACxB70C,GAAEkU,UAAU4gC,WAAQ,EACpB90C,GAAEkU,UAAU+gC,WAAQ,EACpBj1C,GAAEkU,UAAU0gC,WAAQ,EACpB50C,GAAEkU,UAAU6gC,YAAS,EACrB/0C,GAAEkU,UAAU4O,YAAS,EACrB,MAAMyyB,GAAK,CAAA,EAAGphC,eAAgBqhC,GAAqB,IAAIl0C,IAAOm0C,GAAK,SAAUC,GAAK,YAAaC,GAAqB,IAAI5nC,IAAI,CAAC,QAAS,QAAS,QAAS,QAAS,OAAQ6nC,GAAqB,IAAI7nC,IAAI,CAAC,KAAM,OAAQgL,GAAK,0DAC1N,SAAS88B,GAAGjlD,EAAGuP,GACb,IAAKA,QAAoB,IAAfA,EAAE+tB,SACV,MAAM,IAAIlD,UAAU,kCACtB,MAAMvvB,EAAI0E,EAAE21C,eAAY,EACxB,IAAIx1C,EACJ,GAAIH,EAAE41C,YAAa,CACjB,GAAuB,mBAAZ51C,EAAE61C,OACX,MAAM,IAAIhrB,UACR,yDAEJ1qB,EAoGJ,SAAY1P,EAAGuP,GACb,OAAO1E,EACP,SAASA,EAAE6E,EAAGE,EAAGvN,EAAGuI,GAClB,MAAM6E,EAAImO,MAAMK,QAAQ5b,EAAEQ,UAAW2M,EAAIm0C,GAAGj0C,GAC5C,OAAOH,EACLK,EACAvN,EACAuI,EACA6E,EACA,CACE41C,aAAc71C,EAAIA,EAAE0zC,OAAS,OAAI,EACjCoC,SAAUtlD,EACVulD,WAAY/1C,EAAIA,EAAEyzC,UAAO,QAE3B,EAEJ,CACF,CArHQ/sB,CAAGrrB,EAAG0E,EAAE61C,OACd,KAAO,CACL,GAAoB,mBAAT71C,EAAE8uB,IACX,MAAM,IAAIjE,UAAU,wCACtB,GAAqB,mBAAV7qB,EAAEi2C,KACX,MAAM,IAAIprB,UAAU,yCACtB1qB,EAuFJ,SAAY1P,EAAGuP,EAAG1E,GAChB,OAAO6E,EACP,SAASA,EAAEE,EAAGvN,EAAGuI,EAAG6E,GAClB,MAAMI,EAAI+N,MAAMK,QAAQrT,EAAE/H,UAAYgI,EAAI0E,EAC1C,OAAOE,EAAII,EAAExN,EAAGuI,EAAG6E,GAAKI,EAAExN,EAAGuI,EAC/B,CACF,CA7FQ66C,CAAG56C,EAAG0E,EAAE8uB,IAAK9uB,EAAEi2C,KACrB,CACA,MAAM51C,EAAI,CACR0tB,SAAU/tB,EAAE+tB,SACZ2mB,UAAW,GACXyB,WAAYn2C,EAAEm2C,YAAc,CAAA,EAC5BC,OAAQj2C,EACRk2C,yBAA0Br2C,EAAEq2C,0BAA4B,QACxDC,UAAWt2C,EAAEu2C,gBAAkBv2C,EAAEu2C,uBAAoB,EACrDZ,SAAUr6C,EACVk7C,mBAAoBx2C,EAAEw2C,qBAAsB,EAC5CC,UAAyB,IAAfz2C,EAAEy2C,SACZC,SAAU12C,EAAE02C,WAAY,EACxBC,OAAoB,QAAZ32C,EAAEmvB,MAAkBgkB,GAAKD,GACjC0D,sBAAuB52C,EAAE42C,uBAAyB,MAClDC,uBAAmD,IAA5B72C,EAAE62C,uBACxB/jD,EAAI2sB,GAAGpf,EAAG5P,OAAG,GAChB,OAAOqC,GAAiB,iBAALA,EAAgBA,EAAIuN,EAAE+1C,OACvC3lD,EACA4P,EAAE0tB,SACF,CAAEz6B,SAAUR,QAAK,QACjB,EAEJ,CACA,SAAS2sB,GAAGhvB,EAAGuP,EAAG1E,GAChB,MAAe,YAAX0E,EAAE1Q,KAaR,SAAYmB,EAAGuP,EAAG1E,GAChB,MAAM6E,EAAI1P,EAAEkmD,OACZ,IAAIt2C,EAAIF,EACoB,QAA5BH,EAAEuT,QAAQC,eAAuC,SAAZrT,EAAEgvB,QAAqB9uB,EAAI8yC,GAAI1iD,EAAEkmD,OAASt2C,GAAI5P,EAAEikD,UAAUn9B,KAAKvX,GACpG,MAAMlN,EAAIysB,GAAG9uB,EAAGuP,EAAEuT,SAAS,GAAKlY,EAsElC,SAAY5K,EAAGuP,GACb,MAAM1E,EAAI,CAAA,EACV,IAAI6E,EAAGE,EACP,IAAKA,KAAKL,EAAEuwB,WACV,GAAU,aAANlwB,GAAoB+0C,GAAGnhC,KAAKjU,EAAEuwB,WAAYlwB,GAAI,CAChD,MAAMvN,EAAIgkD,GAAGrmD,EAAG4P,EAAGL,EAAEuwB,WAAWlwB,IAChC,GAAIvN,EAAG,CACL,MAAOuI,EAAG6E,GAAKpN,EACfrC,EAAEomD,uBAA+B,UAANx7C,GAA6B,iBAAL6E,GAAiBu1C,GAAGxnC,IAAIjO,EAAEuT,SAAWpT,EAAID,EAAI5E,EAAED,GAAK6E,CACzG,CACF,CACF,GAAIC,EAAG,EAGH7E,EAAElM,QAAUkM,EAAElM,MAAQ,CAAA,IAEM,QAA5BqB,EAAEmmD,sBAAkC,aAAe,aAAez2C,CACtE,CACA,OAAO7E,CACT,CAzFsCy7C,CAAGtmD,EAAGuP,GAC1C,IAAIE,EAAI82C,GAAGvmD,EAAGuP,GACd,OAAOw1C,GAAGvnC,IAAIjO,EAAEuT,WAAarT,EAAIA,EAAE2T,OAAO,SAAS5T,GACjD,MAAmB,iBAALA,IA96ClB,SAAYxP,GACV,MAAmB,iBAALA,EAA2B,SAAXA,EAAEnB,MAAkB0/B,GAAGv+B,EAAE+K,OAAcwzB,GAAGv+B,EAC1E,CA46CmCwmD,CAAGh3C,EACpC,IAAKoU,GAAG5jB,EAAG4K,EAAGvI,EAAGkN,GAAIk3C,GAAG77C,EAAG6E,GAAIzP,EAAEikD,UAAU9xB,MAAOnyB,EAAEkmD,OAASx2C,EAAG1P,EAAE2lD,OAAOp2C,EAAGlN,EAAGuI,EAAGC,EACpF,CArBW67C,CAAG1mD,EAAGuP,EAAG1E,GACH,sBAAX0E,EAAE1Q,MAA2C,sBAAX0Q,EAAE1Q,KAqB1C,SAAYmB,EAAGuP,GACb,GAAIA,EAAEqJ,MAAQrJ,EAAEqJ,KAAK+tC,QAAU3mD,EAAE6lD,UAAW,CAC1C,MAAMn2C,EAAIH,EAAEqJ,KAAK+tC,OAAOnkC,KAAK,GAC7B,OAAO9S,EAAE7Q,KACTmB,EAAE6lD,UAAUe,mBAAmBl3C,EAAEm3C,WACnC,CACAC,GAAG9mD,EAAGuP,EAAEohB,SACV,CA3BWo2B,CAAG/mD,EAAGuP,GACA,sBAAXA,EAAE1Q,MAA2C,sBAAX0Q,EAAE1Q,KAmC1C,SAAYmB,EAAGuP,EAAG1E,GAChB,MAAM6E,EAAI1P,EAAEkmD,OACZ,IAAIt2C,EAAIF,EACG,QAAXH,EAAE2T,MAA8B,SAAZxT,EAAEgvB,QAAqB9uB,EAAI8yC,GAAI1iD,EAAEkmD,OAASt2C,GAAI5P,EAAEikD,UAAUn9B,KAAKvX,GACnF,MAAMlN,EAAe,OAAXkN,EAAE2T,KAAgBljB,EAAEs9B,SAAWxO,GAAG9uB,EAAGuP,EAAE2T,MAAM,GAAKtY,EAgE9D,SAAY5K,EAAGuP,GACb,MAAM1E,EAAI,CAAA,EACV,IAAK,MAAM6E,KAAKH,EAAEyT,WAChB,GAAe,8BAAXtT,EAAE7Q,KACJ,GAAI6Q,EAAEkJ,MAAQlJ,EAAEkJ,KAAK+tC,QAAU3mD,EAAE6lD,UAAW,CAC1C,MAAMxjD,EAAIqN,EAAEkJ,KAAK+tC,OAAOnkC,KAAK,GAC7BngB,EAAExD,KACF,MAAM+L,EAAIvI,EAAEwkD,WACZj8C,EAAE/L,KACF,MAAM4Q,EAAI7E,EAAEk1B,WAAW,GACvBrwB,EAAE5Q,KAAM2gB,OAAOoZ,OACb/tB,EACA7K,EAAE6lD,UAAUe,mBAAmBn3C,EAAEu3C,UAErC,MACEF,GAAG9mD,EAAGuP,EAAEohB,cACP,CACH,MAAM/gB,EAAIF,EAAEwT,KACZ,IAAI7gB,EACJ,GAAIqN,EAAE3E,OAA2B,iBAAX2E,EAAE3E,MACtB,GAAI2E,EAAE3E,MAAM6N,MAAQlJ,EAAE3E,MAAM6N,KAAK+tC,QAAU3mD,EAAE6lD,UAAW,CACtD,MAAMp2C,EAAIC,EAAE3E,MAAM6N,KAAK+tC,OAAOnkC,KAAK,GACnC/S,EAAE5Q,KAAMwD,EAAIrC,EAAE6lD,UAAUe,mBAAmBn3C,EAAEo3C,WAC/C,MACEC,GAAG9mD,EAAGuP,EAAEohB,eAEVtuB,EAAgB,OAAZqN,EAAE3E,OAAsB2E,EAAE3E,MAChCF,EAAE+E,GACFvN,CACF,CACF,OAAOwI,CACT,CA/FkEo8C,CAAGjnD,EAAGuP,GAAIE,EAAI82C,GAAGvmD,EAAGuP,GACpF,OAAOqU,GAAG5jB,EAAG4K,EAAGvI,EAAGkN,GAAIk3C,GAAG77C,EAAG6E,GAAIzP,EAAEikD,UAAU9xB,MAAOnyB,EAAEkmD,OAASx2C,EAAG1P,EAAE2lD,OAAOp2C,EAAGlN,EAAGuI,EAAGC,EACtF,CAxCWq8C,CAAGlnD,EAAGuP,EAAG1E,GACH,aAAX0E,EAAE1Q,KAyBR,SAAYmB,EAAGuP,GACb,GAAIA,EAAEqJ,MAAQrJ,EAAEqJ,KAAK+tC,QAAU3mD,EAAE6lD,UAC/B,OAEE7lD,EAAE6lD,UAAUsB,gBAAgB53C,EAAEqJ,KAAK+tC,QAEvCG,GAAG9mD,EAAGuP,EAAEohB,SACV,CA/BWy2B,CAAGpnD,EAAGuP,GACA,SAAXA,EAAE1Q,KAsCR,SAAYmB,EAAGuP,EAAG1E,GAChB,MAAM6E,EAAI,CAAA,EACV,OAAO+2C,GAAG/2C,EAAG62C,GAAGvmD,EAAGuP,IAAKvP,EAAE2lD,OAAOp2C,EAAGvP,EAAEs9B,SAAU5tB,EAAG7E,EACrD,CAxCWw8C,CAAGrnD,EAAGuP,EAAG1E,GACH,SAAX0E,EAAE1Q,KAwCR,SAAYmB,EAAGuP,GACb,OAAOA,EAAExE,KACX,CAzCWu8C,CAAGtnD,EAAGuP,QADf,CAEF,CAyCA,SAASqU,GAAG5jB,EAAGuP,EAAG1E,EAAG6E,GACP,iBAAL7E,GAAiBA,IAAM7K,EAAEs9B,UAAYt9B,EAAEimD,WAAa12C,EAAE2pB,KAAOxpB,EACtE,CACA,SAAS+2C,GAAGzmD,EAAGuP,GACb,GAAIA,EAAEkK,OAAS,EAAG,CAChB,MAAM5O,EAAI0E,EAAEkK,OAAS,EAAIlK,EAAIA,EAAE,GAC/B1E,IAAM7K,EAAE6C,SAAWgI,EACrB,CACF,CA8EA,SAAS07C,GAAGvmD,EAAGuP,GACb,MAAM1E,EAAI,GACV,IAAI6E,GAAI,EACR,MAAME,EAAI5P,EAAEgmD,SAA2B,IAAIt1C,IAAQk0C,GACnD,OAASl1C,EAAIH,EAAE1M,SAAS4W,QAAU,CAChC,MAAMpX,EAAIkN,EAAE1M,SAAS6M,GACrB,IAAI9E,EACJ,GAAI5K,EAAEgmD,SAAU,CACd,MAAMx2C,EAAe,YAAXnN,EAAExD,KAAqBwD,EAAEygB,QAAqB,sBAAXzgB,EAAExD,MAA2C,sBAAXwD,EAAExD,KAA+BwD,EAAE6gB,UAAO,EACzH,GAAI1T,EAAG,CACL,MAAMK,EAAID,EAAEiX,IAAIrX,IAAM,EACtB5E,EAAI4E,EAAI,IAAMK,EAAGD,EAAEgX,IAAIpX,EAAGK,EAAI,EAChC,CACF,CACA,MAAMJ,EAAIuf,GAAGhvB,EAAGqC,EAAGuI,QACb,IAAN6E,GAAgB5E,EAAEic,KAAKrX,EACzB,CACA,OAAO5E,CACT,CACA,SAASw7C,GAAGrmD,EAAGuP,EAAG1E,GAChB,MAAM6E,EAneR,SAAY1P,EAAGuP,GACb,MAAM1E,EAAI8zB,GAAGpvB,GACb,IAAIG,EAAIH,EAAGK,EAAItP,GACf,GAAIuK,KAAK7K,EAAEy+B,OACT,OAAOz+B,EAAEw+B,SAASx+B,EAAEy+B,OAAO5zB,IAC7B,GAAIA,EAAE4O,OAAS,GAAuB,SAAlB5O,EAAEyb,MAAM,EAAG,IAAiB47B,GAAGt2B,KAAKrc,GAAI,CAC1D,GAAoB,MAAhBA,EAAEgzC,OAAO,GAAY,CACvB,MAAMlgD,EAAIkN,EAAE+W,MAAM,GAAGlG,QAAQ+hC,GAAIG,IACjC5yC,EAAI,OAASrN,EAAEkgD,OAAO,GAAG3lC,cAAgBva,EAAEikB,MAAM,EACnD,KAAO,CACL,MAAMjkB,EAAIkN,EAAE+W,MAAM,GAClB,IAAK67B,GAAGv2B,KAAKvpB,GAAI,CACf,IAAIuI,EAAIvI,EAAE+d,QAAQgiC,GAAIC,IACN,MAAhBz3C,EAAE23C,OAAO,KAAe33C,EAAI,IAAMA,GAAI2E,EAAI,OAAS3E,CACrD,CACF,CACAgF,EAAI8vB,EACN,CACA,OAAO,IAAI9vB,EAAEF,EAAGH,EAClB,CAgdYg4C,CAAGvnD,EAAEkmD,OAAQ32C,GACvB,KAAW,MAAL1E,GAAyB,iBAALA,GAAiB2xB,OAAOgrB,MAAM38C,IAAK,CAC3D,GAAI+S,MAAMK,QAAQpT,KAAOA,EAAI6E,EAAEsvB,eAtkDnC,SAAYh/B,GACV,MAAM6K,EAAI,CAAA,EACV,OAA4B,KAApB7K,EAAEA,EAAEyZ,OAAS,GAAY,IAAIzZ,EAAG,IAAMA,GAAG8d,MAC9CjT,EAAE48C,SAAW,IAAM,IAAM,MAAqB,IAAd58C,EAAE68C,QAAiB,GAAK,MACzDppC,MACJ,CAikDoDqpC,CAAG98C,GAxbvD,SAAY7K,GACV,OAAOA,EAAE8d,KAAK,KAAKQ,MACrB,CAsb4DspC,CAAG/8C,IAAoB,UAAf6E,EAAE8uB,SAAsB,CACtF,IAAI5uB,EAAgB,iBAAL/E,EAAgBA,EASrC,SAAY7K,EAAGuP,GACb,MAAM1E,EAAI,CAAA,EACV,IACE64C,GAAGn0C,EAAGG,EACR,CAAE,MAAOE,GACP,IAAK5P,EAAE+lD,mBAAoB,CACzB,MAAM1jD,EAAC,EAGJuI,EAAI,IAAIwE,GAAE,iCAAkC,CAC7C60C,UAAWjkD,EAAEikD,UACbC,MAAO7hD,EACP8hD,OAAQ,QACRjyB,OAAQ,6BAEV,MAAMtnB,EAAEmgB,KAAO/qB,EAAEklD,eAAY,EAAQt6C,EAAE85C,IAAMv8B,GAAK,gCAAiCvd,CACrF,CACF,CACA,OAAOC,EACP,SAAS6E,EAAEE,EAAGvN,GACZ,IAAIuI,EAAIgF,EACU,OAAlBhF,EAAE0b,MAAM,EAAG,KAAkC,SAAlB1b,EAAE0b,MAAM,EAAG,KAAkB1b,EAAI,MAAQA,EAAE0b,MAAM,IAAK1b,EAAIA,EAAEwV,QAAQ0kC,GAAI+C,KAAMh9C,EAAED,GAAKvI,CAClH,CACF,CAhCyCylD,CAAG9nD,EAAG25B,OAAO9uB,IAChD,MAAmC,QAA5B7K,EAAEmmD,wBAAoCv2C,EA2EnD,SAAY5P,GACV,MAAMuP,EAAI,CAAA,EACV,IAAI1E,EACJ,IAAKA,KAAK7K,EACR2kD,GAAGnhC,KAAKxjB,EAAG6K,KAAO0E,EAAEw4C,GAAGl9C,IAAM7K,EAAE6K,IACjC,OAAO0E,CACT,CAjFuDy4C,CAAGp4C,IAAK,CAAC,QAASA,EACrE,CACA,MAAO,CAC0B,UAA/B5P,EAAE4lD,0BAAwCl2C,EAAEgvB,MAAQ8jB,GAAG9yC,EAAE8uB,WAAa9uB,EAAE8uB,SAAW9uB,EAAEupB,UACrFpuB,EAEJ,CACF,CAyBA,SAASikB,GAAG9uB,EAAGuP,EAAG1E,GAChB,IAAI6E,EACJ,GAAK7E,EAEA,GAAI0E,EAAEmQ,SAAS,KAAM,CACxB,MAAM9P,EAAIL,EAAE4T,MAAM,KAClB,IAAYvY,EAARvI,GAAI,EACR,OAASA,EAAIuN,EAAE6J,QAAU,CACvB,MAAMhK,EAAI2uB,GAAGxuB,EAAEvN,IAAM,CAAExD,KAAM,aAAcqkB,KAAMtT,EAAEvN,IAAO,CAAExD,KAAM,UAAWkM,MAAO6E,EAAEvN,IACtFuI,EAAIA,EAAI,CACN/L,KAAM,mBACNgyC,OAAQjmC,EACR4zB,SAAU/uB,EACVw4C,YAAa5lD,GAAgB,YAAXoN,EAAE5Q,MACpBqpD,UAAU,GACRz4C,CACN,CACAC,EAAI9E,CACN,MACE8E,EAAI0uB,GAAG7uB,KAAO,SAASqc,KAAKrc,GAAK,CAAE1Q,KAAM,aAAcqkB,KAAM3T,GAAM,CAAE1Q,KAAM,UAAWkM,MAAOwE,QAhB7FG,EAAI,CAAE7Q,KAAM,UAAWkM,MAAOwE,GAiBhC,GAAe,YAAXG,EAAE7Q,KAAoB,CACxB,MAAM+Q,EAEJF,EACN,MACI,OAAOi1C,GAAGnhC,KAAKxjB,EAAE0lD,WAAY91C,GAAK5P,EAAE0lD,WAAW91C,GAAKA,CACtD,CACA,GAAI5P,EAAE6lD,UACJ,OAAO7lD,EAAE6lD,UAAUe,mBAAmBl3C,GACxCo3C,GAAG9mD,EACL,CACA,SAAS8mD,GAAG9mD,EAAGuP,GACb,MAAM1E,EAAI,IAAIuE,GACZ,sDACA,CACE60C,UAAWjkD,EAAEikD,UACbD,MAAOz0C,EACP40C,OAAQ,aACRjyB,OAAQ,6BAGZ,MAAMrnB,EAAEkgB,KAAO/qB,EAAEklD,eAAY,EAAQr6C,EAAE65C,IAAMv8B,GAAK,qDAAsDtd,CAC1G,CAQA,SAASk9C,GAAG/nD,GACV,IAAIuP,EAAIvP,EAAEogB,QAAQykC,GAAIsD,IACtB,MAAyB,QAAlB54C,EAAE+W,MAAM,EAAG,KAAiB/W,EAAI,IAAMA,GAAIA,CACnD,CACA,SAASs4C,GAAG7nD,EAAGuP,GACb,OAAOA,EAAEqN,aACX,CACA,SAASurC,GAAGnoD,GACV,MAAO,IAAMA,EAAE+iB,aACjB,CACA,MAAMqlC,GAAK,CACTlkB,OAAQ,CAAC,QACT3M,KAAM,CAAC,aAAc,MAAO,MAAO,KACnC3e,KAAM,CAAC,UACPotB,WAAY,CAAC,SAAU,SACvBpO,KAAM,CAAC,IAAK,OAAQ,OAAQ,QAC5B11B,KAAM,CAAC,YACPglC,OAAQ,KACRM,SAAU,CAAC,QACXyF,KAAM,CAAC,IAAK,QACZ9U,OAAQ,CAAC,SACT1K,IAAK,CACH,QACA,QACA,SACA,MACA,QACA,SACA,SACA,QACA,UAED46B,GAAK,CAAA,EAKR,SAAS7pC,GAAGxe,EAAGuP,EAAG1E,GAChB,GAiBF,SAAY7K,GACV,SAAUA,GAAiB,iBAALA,EACxB,CAnBMsoD,CAAGtoD,GAAI,CACT,GAAI,UAAWA,EACb,MAAkB,SAAXA,EAAEnB,MAAoBgM,EAAS7K,EAAE+K,MAAP,GACnC,GAAIwE,GAAK,QAASvP,GAAKA,EAAE0tB,IACvB,OAAO1tB,EAAE0tB,IACX,GAAI,aAAc1tB,EAChB,OAAOuoD,GAAGvoD,EAAE6C,SAAU0M,EAAG1E,EAC7B,CACA,OAAO+S,MAAMK,QAAQje,GAAKuoD,GAAGvoD,EAAGuP,EAAG1E,GAAK,EAC1C,CACA,SAAS09C,GAAGvoD,EAAGuP,EAAG1E,GAChB,MAAM6E,EAAI,GACV,IAAIE,GAAI,EACR,OAASA,EAAI5P,EAAEyZ,QACb/J,EAAEE,GAAK4O,GAAGxe,EAAE4P,GAAIL,EAAG1E,GACrB,OAAO6E,EAAEoO,KAAK,GAChB,CAIA,MAAM0qC,GAAKhqD,SAASI,cAAc,KAClC,SAAS6pD,GAAGzoD,GACV,MAAMuP,EAAI,IAAMvP,EAAI,IACpBwoD,GAAGtkC,UAAY3U,EACf,MAAM1E,EAAI29C,GAAG3lC,YACb,OAAsC,KAA/BhY,EAAE8Z,WAAW9Z,EAAE4O,OAAS,IAAmB,SAANzZ,IAAgB6K,IAAM0E,GAAS1E,CAC7E,CACA,SAASG,GAAGhL,EAAGuP,EAAG1E,EAAG6E,GACnB,MAAME,EAAI5P,EAAEyZ,OACZ,IAAW7O,EAAPvI,EAAI,EACR,GAAYkN,EAARA,EAAI,GAASA,EAAIK,EAAI,EAAIA,EAAIL,EAAQA,EAAIK,EAAIA,EAAIL,EAAG1E,EAAIA,EAAI,EAAIA,EAAI,EAAG6E,EAAE+J,OAAS,IACpF7O,EAAIgT,MAAMC,KAAKnO,GAAI9E,EAAEyb,QAAQ9W,EAAG1E,GAAI7K,EAAE0oD,UAAU99C,QAEhD,IAAKC,GAAK7K,EAAE0oD,OAAOn5C,EAAG1E,GAAIxI,EAAIqN,EAAE+J,QAC9B7O,EAAI8E,EAAE4W,MAAMjkB,EAAGA,EAAI,KAAMuI,EAAEyb,QAAQ9W,EAAG,GAAIvP,EAAE0oD,UAAU99C,GAAIvI,GAAK,IAAKkN,GAAK,GAC/E,CACA,SAASwhB,GAAG/wB,EAAGuP,GACb,OAAOvP,EAAEyZ,OAAS,GAAKzO,GAAGhL,EAAGA,EAAEyZ,OAAQ,EAAGlK,GAAIvP,GAAKuP,CACrD,CACA,MAAMo5C,GAAK,CAAA,EAAGplC,eACd,SAASqlC,GAAG5oD,GACV,MAAMuP,EAAI,CAAA,EACV,IAAI1E,GAAI,EACR,OAASA,EAAI7K,EAAEyZ,QACbovC,GAAGt5C,EAAGvP,EAAE6K,IACV,OAAO0E,CACT,CACA,SAASs5C,GAAG7oD,EAAGuP,GACb,IAAI1E,EACJ,IAAKA,KAAK0E,EAAG,CACX,MAAMK,GAAK+4C,GAAGnlC,KAAKxjB,EAAG6K,GAAK7K,EAAE6K,QAAK,KAAY7K,EAAE6K,GAAK,CAAA,GAAKxI,EAAIkN,EAAE1E,GAChE,IAAID,EACJ,GAAIvI,EACF,IAAKuI,KAAKvI,EAAG,CACXsmD,GAAGnlC,KAAK5T,EAAGhF,KAAOgF,EAAEhF,GAAK,IACzB,MAAM6E,EAAIpN,EAAEuI,GACZk+C,GAEEl5C,EAAEhF,GACFgT,MAAMK,QAAQxO,GAAKA,EAAIA,EAAI,CAACA,GAAK,GAErC,CACJ,CACF,CACA,SAASq5C,GAAG9oD,EAAGuP,GACb,IAAI1E,GAAI,EACR,MAAM6E,EAAI,GACV,OAAS7E,EAAI0E,EAAEkK,SACC,UAAblK,EAAE1E,GAAG8S,IAAkB3d,EAAI0P,GAAGoX,KAAKvX,EAAE1E,IACxCG,GAAGhL,EAAG,EAAG,EAAG0P,EACd,CACA,SAAS2a,GAAGrqB,EAAGuP,GACb,MAAM1E,EAAI2xB,OAAOusB,SAAS/oD,EAAGuP,GAC7B,OAEE1E,EAAI,GAAW,KAANA,GAAYA,EAAI,IAAMA,EAAI,IACnCA,EAAI,KAAOA,EAAI,KACfA,EAAI,OAASA,EAAI,OACjBA,EAAI,OAASA,EAAI,SACD,OAAfA,IAAwC,QAAX,MAAJA,IAE1BA,EAAI,QAAU,IAAM8uB,OAAOqvB,cAAcn+C,EAE7C,CACA,SAASsX,GAAGniB,GACV,OAAOA,EAAEogB,QAAQ,cAAe,KAAKA,QAAQ,SAAU,IAAI2C,cAAcnG,aAC3E,CACA,MAAMgV,GAAKtE,GAAG,YAAaztB,GAAKytB,GAAG,cAAe27B,GAAK37B,GAAG,uBAC1D,SAAS47B,GAAGlpD,GACV,OAGQ,OAANA,IAAeA,EAAI,IAAY,MAANA,EAE7B,CACA,MAAMmpD,GAAK77B,GAAG,MAAO87B,GAAK97B,GAAG,cAAe+7B,GAAK/7B,GAAG,kBACpD,SAAS1a,GAAE5S,GACT,OAAa,OAANA,GAAcA,GAAI,CAC3B,CACA,SAASsR,GAAEtR,GACT,OAAa,OAANA,IAAeA,EAAI,GAAW,KAANA,EACjC,CACA,SAASZ,GAAEY,GACT,OAAa,IAANA,IAAkB,IAANA,GAAkB,KAANA,CACjC,CACA,MAAMspD,GAAKh8B,GAAG,IAAIwE,OAAO,gBAAiB,MAAOy3B,GAAKj8B,GAAG,MACzD,SAASA,GAAGttB,GACV,OACA,SAAW6K,GACT,OAAa,OAANA,GAAcA,GAAI,GAAM7K,EAAE4rB,KAAK+N,OAAO6vB,aAAa3+C,GAC5D,CACF,CACA,SAAShK,GAAGb,GACV,MAAMuP,EAAI,GACV,IAAI1E,GAAI,EAAI6E,EAAI,EAAGE,EAAI,EACvB,OAAS/E,EAAI7K,EAAEyZ,QAAU,CACvB,MAAMpX,EAAIrC,EAAE2kB,WAAW9Z,GACvB,IAAID,EAAI,GACR,GAAU,KAANvI,GAAYxC,GAAGG,EAAE2kB,WAAW9Z,EAAI,KAAOhL,GAAGG,EAAE2kB,WAAW9Z,EAAI,IAC7D+E,EAAI,OACD,GAAIvN,EAAI,IACX,oBAAoBupB,KAAK+N,OAAO6vB,aAAannD,MAAQuI,EAAI+uB,OAAO6vB,aAAannD,SAC1E,GAAIA,EAAI,OAASA,EAAI,MAAO,CAC/B,MAAMoN,EAAIzP,EAAE2kB,WAAW9Z,EAAI,GAC3BxI,EAAI,OAASoN,EAAI,OAASA,EAAI,OAAS7E,EAAI+uB,OAAO6vB,aAAannD,EAAGoN,GAAIG,EAAI,GAAKhF,EAAI,GACrF,MACEA,EAAI+uB,OAAO6vB,aAAannD,GAC1BuI,IAAM2E,EAAEuX,KAAK9mB,EAAEsmB,MAAM5W,EAAG7E,GAAI4+C,mBAAmB7+C,IAAK8E,EAAI7E,EAAI+E,EAAI,EAAGhF,EAAI,IAAKgF,IAAM/E,GAAK+E,EAAGA,EAAI,EAChG,CACA,OAAOL,EAAEuO,KAAK,IAAM9d,EAAEsmB,MAAM5W,EAC9B,CACA,SAAS+D,GAAEzT,EAAGuP,EAAG1E,EAAG6E,GAClB,MAAME,EAAIF,EAAIA,EAAI,EAAI8sB,OAAOktB,kBAC7B,IAAIrnD,EAAI,EACR,OACA,SAAWmN,GACT,OAAOpQ,GAAEoQ,IAAMxP,EAAE2pD,MAAM9+C,GAAI4E,EAAED,IAAMD,EAAEC,EACvC,EACA,SAASC,EAAED,GACT,OAAOpQ,GAAEoQ,IAAMnN,IAAMuN,GAAK5P,EAAE4pD,QAAQp6C,GAAIC,IAAMzP,EAAE6pD,KAAKh/C,GAAI0E,EAAEC,GAC7D,CACF,CACA,MAAMs6C,GAAK,CACTC,SAEF,SAAY/pD,GACV,MAAMuP,EAAIvP,EAAEgqD,QAAQjxB,KAAKkxB,OAAOC,WAAWC,eAG3C,SAAW16C,GACT,GAAU,OAANA,EAEF,YADAzP,EAAE4pD,QAAQn6C,GAGZ,OAAOzP,EAAE2pD,MAAM,cAAe3pD,EAAE4pD,QAAQn6C,GAAIzP,EAAE6pD,KAAK,cAAep2C,GAAEzT,EAAGuP,EAAG,aAC5E,EACA,SAAWE,GACT,OAAOzP,EAAE2pD,MAAM,aAActnD,EAAEoN,EACjC,GAXA,IAAI5E,EACJ,OAAO0E,EAWP,SAASlN,EAAEoN,GACT,MAAMD,EAAIxP,EAAE2pD,MAAM,YAAa,CAC7BS,YAAa,OACbC,SAAUx/C,IAEZ,OAAOA,IAAMA,EAAEy/C,KAAO96C,GAAI3E,EAAI2E,EAAG5E,EAAE6E,EACrC,CACA,SAAS7E,EAAE6E,GACT,OAAU,OAANA,GACFzP,EAAE6pD,KAAK,aAAc7pD,EAAE6pD,KAAK,kBAAc7pD,EAAE4pD,QAAQn6C,IAG/CmD,GAAEnD,IAAMzP,EAAE4pD,QAAQn6C,GAAIzP,EAAE6pD,KAAK,aAAcxnD,IAAMrC,EAAE4pD,QAAQn6C,GAAI7E,EACxE,CACF,GACA,MAAM2/C,GAAK,CACTR,SAIF,SAAY/pD,GACV,MAAMuP,EAAIwpB,KAAMluB,EAAI,GACpB,IAAW+E,EAAGvN,EAAGuI,EAAb8E,EAAI,EACR,OAAOD,EACP,SAASA,EAAE0C,GACT,GAAIzC,EAAI7E,EAAE4O,OAAQ,CAChB,MAAM5G,EAAIhI,EAAE6E,GACZ,OAAOH,EAAEi7C,eAAiB33C,EAAE,GAAI7S,EAAEgqD,QAAQn3C,EAAE,GAAG43C,aAAcj7C,EAAGK,EAAhC7P,CAAmCmS,EACrE,CACA,OAAOtC,EAAEsC,EACX,CACA,SAAS3C,EAAE2C,GACT,GAAIzC,IAAKH,EAAEi7C,eAAeE,WAAY,CACpCn7C,EAAEi7C,eAAeE,gBAAa,EAAQ96C,GAAKmD,IAC3C,MAAMF,EAAItD,EAAEo7C,OAAOlxC,OACnB,IAAWpH,EAAP5H,EAAIoI,EACR,KAAOpI,KACL,GAAuB,SAAnB8E,EAAEo7C,OAAOlgD,GAAG,IAAyC,cAAxB8E,EAAEo7C,OAAOlgD,GAAG,GAAG5L,KAAsB,CACpEwT,EAAI9C,EAAEo7C,OAAOlgD,GAAG,GAAGyvC,IACnB,KACF,CACF1gC,EAAE9J,GACF,IAAI8D,EAAIX,EACR,KAAOW,EAAIjE,EAAEo7C,OAAOlxC,QAClBlK,EAAEo7C,OAAOn3C,GAAG,GAAG0mC,IAAM,IAChB7nC,GACFmB,IACL,OAAOxI,GAAGuE,EAAEo7C,OAAQlgD,EAAI,EAAG,EAAG8E,EAAEo7C,OAAOrkC,MAAMzT,IAAKtD,EAAEo7C,OAAOlxC,OAASjG,EAAG3D,EAAEsC,EAC3E,CACA,OAAO1C,EAAE0C,EACX,CACA,SAAStC,EAAEsC,GACT,GAAIzC,IAAM7E,EAAE4O,OAAQ,CAClB,IAAK7J,EACH,OAAOzP,EAAEgS,GACX,GAAIvC,EAAEg7C,kBAAoBh7C,EAAEg7C,iBAAiBC,SAC3C,OAAO53C,EAAEd,GACX5C,EAAEu7C,aAAel7C,EAAEg7C,kBAAqBh7C,EAAEm7C,8BAC5C,CACA,OAAOx7C,EAAEi7C,eAAiB,CAAA,EAAIxqD,EAAEgrD,MAAMC,GAAIt7C,EAAGqC,EAAfhS,CAAkBmS,EAClD,CACA,SAASxC,EAAEwC,GACT,OAAOvC,GAAKmD,IAAKyG,EAAE9J,GAAIvP,EAAEgS,EAC3B,CACA,SAASH,EAAEG,GACT,OAAO5C,EAAE06C,OAAOiB,KAAK37C,EAAE47C,MAAMlI,MAAQvzC,IAAM7E,EAAE4O,OAAQ7O,EAAI2E,EAAE47C,MAAM9N,OAAQpqC,EAAEd,EAC7E,CACA,SAAShS,EAAEgS,GACT,OAAO5C,EAAEi7C,eAAiB,CAAA,EAAIxqD,EAAEgqD,QAAQiB,GAAI73C,EAAGH,EAAjBjT,CAAoBmS,EACpD,CACA,SAASiB,EAAEjB,GACT,OAAOzC,IAAK7E,EAAEic,KAAK,CAACvX,EAAEq7C,iBAAkBr7C,EAAEi7C,iBAAkBrqD,EAAEgS,EAChE,CACA,SAASc,EAAEd,GACT,OAAU,OAANA,GACFvC,GAAKmD,IAAKyG,EAAE,QAAIxZ,EAAE4pD,QAAQz3C,KAGrBvC,EAAIA,GAAKL,EAAE06C,OAAOx2B,KAAKlkB,EAAE47C,OAAQnrD,EAAE2pD,MAAM,YAAa,CAC3DyB,WAAYx7C,EACZw6C,YAAa,OACbC,SAAUhoD,IACR6N,EAAEiC,GACR,CACA,SAASjC,EAAEiC,GACT,OAAU,OAANA,GACFpS,EAAEC,EAAE6pD,KAAK,cAAc,GAAKrwC,EAAE,QAAIxZ,EAAE4pD,QAAQz3C,IAGvCS,GAAET,IAAMnS,EAAE4pD,QAAQz3C,GAAIpS,EAAEC,EAAE6pD,KAAK,cAAen6C,EAAI,EAAGH,EAAEu7C,eAAY,EAAQr7C,IAAMzP,EAAE4pD,QAAQz3C,GAAIjC,EACxG,CACA,SAASnQ,EAAEoS,EAAGU,GACZ,MAAMpI,EAAI8E,EAAE87C,YAAYl5C,GACxB,GAAIU,GAAKpI,EAAEqc,KAAK,MAAO3U,EAAEk4C,SAAWhoD,EAAGA,IAAMA,EAAEioD,KAAOn4C,GAAI9P,EAAI8P,EAAGvC,EAAE07C,WAAWn5C,EAAEgT,OAAQvV,EAAE27C,MAAM9gD,GAAI8E,EAAE06C,OAAOiB,KAAK/4C,EAAEgT,MAAM89B,MAAO,CAC/H,IAAI5wC,EAAIzC,EAAE+6C,OAAOlxC,OACjB,KAAOpH,KACL,GAEEzC,EAAE+6C,OAAOt4C,GAAG,GAAG8S,MAAMk4B,OAASzyC,KAC5BgF,EAAE+6C,OAAOt4C,GAAG,GAAG6nC,KACjBtqC,EAAE+6C,OAAOt4C,GAAG,GAAG6nC,IAAImD,OAASzyC,GAE5B,OACJ,MAAM4I,EAAIjE,EAAEo7C,OAAOlxC,OACnB,IAAWvH,EAAGqB,EAAVS,EAAIR,EACR,KAAOQ,KACL,GAAuB,SAAnBzE,EAAEo7C,OAAO32C,GAAG,IAAyC,cAAxBzE,EAAEo7C,OAAO32C,GAAG,GAAGnV,KAAsB,CACpE,GAAIqT,EAAG,CACLqB,EAAIhE,EAAEo7C,OAAO32C,GAAG,GAAGkmC,IACnB,KACF,CACAhoC,GAAI,CACN,CACF,IAAKsH,EAAE9J,GAAI2C,EAAImB,EAAGnB,EAAI9C,EAAEo7C,OAAOlxC,QAC7BlK,EAAEo7C,OAAOt4C,GAAG,GAAG6nC,IAAM,IAChB3mC,GACFlB,IACLrH,GAAGuE,EAAEo7C,OAAQ32C,EAAI,EAAG,EAAGzE,EAAEo7C,OAAOrkC,MAAM9S,IAAKjE,EAAEo7C,OAAOlxC,OAASpH,CAC/D,CACF,CACA,SAASmH,EAAErH,GACT,IAAIU,EAAIhI,EAAE4O,OACV,KAAO5G,KAAMV,GAAK,CAChB,MAAM1H,EAAII,EAAEgI,GACZtD,EAAEi7C,eAAiB//C,EAAE,GAAIA,EAAE,GAAGo/C,KAAKrmC,KAAKjU,EAAGvP,EAC7C,CACA6K,EAAE4O,OAAStH,CACb,CACA,SAASY,IACPnD,EAAE27C,MAAM,CAAC,OAAQlpD,OAAI,EAAQuN,OAAI,EAAQL,EAAEi7C,eAAeE,gBAAa,CACzE,CACF,GAlHGO,GAAK,CACNlB,SAkHF,SAAY/pD,EAAGuP,EAAG1E,GAChB,OAAO4I,GAAEzT,EAAGA,EAAEgqD,QAAQjxB,KAAKkxB,OAAOC,WAAW1rD,SAAU+Q,EAAG1E,GAAI,aAAckuB,KAAKkxB,OAAOC,WAAWsB,QAAQC,KAAK/rC,SAAS,qBAAkB,EAAS,EACtJ,GACA,SAASpQ,GAAGtP,GACV,OAAU,OAANA,GAAcsR,GAAEtR,IAAMupD,GAAGvpD,GACpB,EACLspD,GAAGtpD,GACE,OADT,CAEF,CACA,SAAS0rD,GAAG1rD,EAAGuP,EAAG1E,GAChB,MAAM6E,EAAI,GACV,IAAIE,GAAI,EACR,OAASA,EAAI5P,EAAEyZ,QAAU,CACvB,MAAMpX,EAAIrC,EAAE4P,GAAG+7C,WACftpD,IAAMqN,EAAEgQ,SAASrd,KAAOkN,EAAIlN,EAAEkN,EAAG1E,GAAI6E,EAAEoX,KAAKzkB,GAC9C,CACA,OAAOkN,CACT,CACA,MAAMq8C,GAAK,CACT1oC,KAAM,YACNyoC,WAGF,SAAY3rD,EAAGuP,GACb,IAAYG,EAAGE,EAAGvN,EAAGuI,EAAG6E,EAAGD,EAAGK,EAAGF,EAA7B9E,KACJ,OAASA,EAAI7K,EAAEyZ,QACb,GAAgB,UAAZzZ,EAAE6K,GAAG,IAAmC,sBAAjB7K,EAAE6K,GAAG,GAAGhM,MAAgCmB,EAAE6K,GAAG,GAAGghD,OACzE,IAAKn8C,EAAI7E,EAAG6E,KACV,GAAgB,SAAZ1P,EAAE0P,GAAG,IAAkC,sBAAjB1P,EAAE0P,GAAG,GAAG7Q,MAAgCmB,EAAE0P,GAAG,GAAGo8C,OAC1Ev8C,EAAEw8C,eAAe/rD,EAAE0P,GAAG,IAAIiV,WAAW,KAAOpV,EAAEw8C,eAAe/rD,EAAE6K,GAAG,IAAI8Z,WAAW,GAAI,CACnF,IAAK3kB,EAAE0P,GAAG,GAAGm8C,QAAU7rD,EAAE6K,GAAG,GAAGihD,SAAW9rD,EAAE6K,GAAG,GAAGqvC,IAAImD,OAASr9C,EAAE6K,GAAG,GAAGsa,MAAMk4B,QAAU,MAAQr9C,EAAE0P,GAAG,GAAGwqC,IAAImD,OAASr9C,EAAE0P,GAAG,GAAGyV,MAAMk4B,OAASr9C,EAAE6K,GAAG,GAAGqvC,IAAImD,OAASr9C,EAAE6K,GAAG,GAAGsa,MAAMk4B,QAAU,GACtL,SACF7tC,EAAIxP,EAAE0P,GAAG,GAAGwqC,IAAImD,OAASr9C,EAAE0P,GAAG,GAAGyV,MAAMk4B,OAAS,GAAKr9C,EAAE6K,GAAG,GAAGqvC,IAAImD,OAASr9C,EAAE6K,GAAG,GAAGsa,MAAMk4B,OAAS,EAAI,EAAI,EACzG,MAAMrrC,EAAI,IACLhS,EAAE0P,GAAG,GAAGwqC,KACV/5C,EAAI,IACFH,EAAE6K,GAAG,GAAGsa,OAEb7M,GAAGtG,GAAIxC,GAAI8I,GAAGnY,EAAGqP,GAAI5E,EAAI,CACvB/L,KAAM2Q,EAAI,EAAI,iBAAmB,mBACjC2V,MAAOnT,EACPkoC,IAAK,IACAl6C,EAAE0P,GAAG,GAAGwqC,MAEZzqC,EAAI,CACL5Q,KAAM2Q,EAAI,EAAI,iBAAmB,mBACjC2V,MAAO,IACFnlB,EAAE6K,GAAG,GAAGsa,OAEb+0B,IAAK/5C,GACJkC,EAAI,CACLxD,KAAM2Q,EAAI,EAAI,aAAe,eAC7B2V,MAAO,IACFnlB,EAAE0P,GAAG,GAAGwqC,KAEbA,IAAK,IACAl6C,EAAE6K,GAAG,GAAGsa,QAEZvV,EAAI,CACL/Q,KAAM2Q,EAAI,EAAI,SAAW,WACzB2V,MAAO,IACFva,EAAEua,OAEP+0B,IAAK,IACAzqC,EAAEyqC,MAENl6C,EAAE0P,GAAG,GAAGwqC,IAAM,IACZtvC,EAAEua,OACJnlB,EAAE6K,GAAG,GAAGsa,MAAQ,IACd1V,EAAEyqC,KACJrqC,EAAI,GAAI7P,EAAE0P,GAAG,GAAGwqC,IAAImD,OAASr9C,EAAE0P,GAAG,GAAGyV,MAAMk4B,SAAWxtC,EAAIkhB,GAAGlhB,EAAG,CAAC,CAAC,QAAS7P,EAAE0P,GAAG,GAAIH,GAAI,CAAC,OAAQvP,EAAE0P,GAAG,GAAIH,MAAOM,EAAIkhB,GAAGlhB,EAAG,CAAC,CAAC,QAASD,EAAGL,GAAI,CAAC,QAAS3E,EAAG2E,GAAI,CAAC,OAAQ3E,EAAG2E,GAAI,CAAC,QAASlN,EAAGkN,KAAMM,EAAIkhB,GAAGlhB,EAAG67C,GAAGn8C,EAAE06C,OAAOC,WAAW8B,WAAWP,KAAMzrD,EAAEsmB,MAAM5W,EAAI,EAAG7E,GAAI0E,IAAKM,EAAIkhB,GAAGlhB,EAAG,CAAC,CAAC,OAAQxN,EAAGkN,GAAI,CAAC,QAASE,EAAGF,GAAI,CAAC,OAAQE,EAAGF,GAAI,CAAC,OAAQK,EAAGL,KAAMvP,EAAE6K,GAAG,GAAGqvC,IAAImD,OAASr9C,EAAE6K,GAAG,GAAGsa,MAAMk4B,QAAU1tC,EAAI,EAAGE,EAAIkhB,GAAGlhB,EAAG,CAAC,CAAC,QAAS7P,EAAE6K,GAAG,GAAI0E,GAAI,CAAC,OAAQvP,EAAE6K,GAAG,GAAI0E,MAAQI,EAAI,EAAG3E,GAAGhL,EAAG0P,EAAI,EAAG7E,EAAI6E,EAAI,EAAGG,GAAIhF,EAAI6E,EAAIG,EAAE4J,OAAS9J,EAAI,EACtgB,KACF,CAEN,IAAK9E,GAAI,IAAMA,EAAI7K,EAAEyZ,QACF,sBAAjBzZ,EAAE6K,GAAG,GAAGhM,OAAiCmB,EAAE6K,GAAG,GAAGhM,KAAO,QAC1D,OAAOmB,CACT,EAxDE+pD,SAyDF,SAAY/pD,EAAGuP,GACb,MAAM1E,EAAIkuB,KAAKkxB,OAAOC,WAAW+B,iBAAiBR,KAAM/7C,EAAIqpB,KAAKsxB,SAAUz6C,EAAIN,GAAGI,GAClF,IAAIrN,EACJ,OACA,SAAWmN,GACT,OAAOnN,EAAImN,EAAGxP,EAAE2pD,MAAM,qBAAsBl6C,EAAED,EAChD,EACA,SAASC,EAAED,GACT,GAAIA,IAAMnN,EACR,OAAOrC,EAAE4pD,QAAQp6C,GAAIC,EACvB,MAAMI,EAAI7P,EAAE6pD,KAAK,qBAAsBl6C,EAAIL,GAAGE,GAAIwC,GAAKrC,GAAW,IAANA,GAAWC,GAAK/E,EAAE6U,SAASlQ,GAAIrP,GAAKyP,GAAW,IAANA,GAAWD,GAAK9E,EAAE6U,SAAShQ,GAChI,OAAOG,EAAEi8C,SAAiB,KAANzpD,EAAW2P,EAAIA,IAAMpC,IAAMzP,IAAK0P,EAAEg8C,UAAkB,KAANxpD,EAAWlC,EAAIA,IAAMwP,IAAMqC,IAAKzC,EAAEC,EACtG,CACF,GACA,SAAS8I,GAAGtY,EAAGuP,GACbvP,EAAEkjD,QAAU3zC,EAAGvP,EAAEq9C,QAAU9tC,EAAGvP,EAAEksD,cAAgB38C,CAClD,CACA,MAAM48C,GAAK,CACTjpC,KAAM,WACN6mC,SAEF,SAAY/pD,EAAGuP,EAAG1E,GAChB,IAAI6E,EAAI,EACR,OACA,SAAW0D,GACT,OAAOpT,EAAE2pD,MAAM,YAAa3pD,EAAE2pD,MAAM,kBAAmB3pD,EAAE4pD,QAAQx2C,GAAIpT,EAAE6pD,KAAK,kBAAmB7pD,EAAE2pD,MAAM,oBAAqBtnD,CAC9H,EACA,SAASA,EAAE+Q,GACT,OAAOwe,GAAGxe,IAAMpT,EAAE4pD,QAAQx2C,GAAIxI,GAAW,KAANwI,EAAWvI,EAAEuI,GAAKvD,EAAEuD,EACzD,CACA,SAASxI,EAAEwI,GACT,OAAa,KAANA,GAAkB,KAANA,GAAkB,KAANA,GAAYvT,GAAGuT,IAAM1D,EAAI,EAAGD,EAAE2D,IAAMvD,EAAEuD,EACvE,CACA,SAAS3D,EAAE2D,GACT,OAAa,KAANA,GAAYpT,EAAE4pD,QAAQx2C,GAAI1D,EAAI,EAAGF,IAAY,KAAN4D,GAAkB,KAANA,GAAkB,KAANA,GAAYvT,GAAGuT,KAAO1D,IAAM,IAAM1P,EAAE4pD,QAAQx2C,GAAI3D,IAAMC,EAAI,EAAGG,EAAEuD,GACvI,CACA,SAAS5D,EAAE4D,GACT,OAAa,KAANA,GAAYpT,EAAE6pD,KAAK,oBAAqB7pD,EAAE2pD,MAAM,kBAAmB3pD,EAAE4pD,QAAQx2C,GAAIpT,EAAE6pD,KAAK,kBAAmB7pD,EAAE6pD,KAAK,YAAat6C,GAAW,OAAN6D,GAAoB,KAANA,GAAkB,KAANA,GAAY81C,GAAG91C,GAAKvI,EAAEuI,IAAMpT,EAAE4pD,QAAQx2C,GAAI5D,EACjN,CACA,SAASK,EAAEuD,GACT,OAAa,KAANA,GAAYpT,EAAE4pD,QAAQx2C,GAAIzD,GAAKs5C,GAAG71C,IAAMpT,EAAE4pD,QAAQx2C,GAAIvD,GAAKhF,EAAEuI,EACtE,CACA,SAASzD,EAAEyD,GACT,OAAOvT,GAAGuT,GAAKpB,EAAEoB,GAAKvI,EAAEuI,EAC1B,CACA,SAASpB,EAAEoB,GACT,OAAa,KAANA,GAAYpT,EAAE4pD,QAAQx2C,GAAI1D,EAAI,EAAGC,GAAW,KAANyD,GAAYpT,EAAE6pD,KAAK,oBAAoBhrD,KAAO,gBAAiBmB,EAAE2pD,MAAM,kBAAmB3pD,EAAE4pD,QAAQx2C,GAAIpT,EAAE6pD,KAAK,kBAAmB7pD,EAAE6pD,KAAK,YAAat6C,GAAKpP,EAAEiT,EAC5M,CACA,SAASjT,EAAEiT,GACT,IAAW,KAANA,GAAYvT,GAAGuT,KAAO1D,IAAM,GAAI,CACnC,MAAMuD,EAAU,KAANG,EAAWjT,EAAI6R,EACzB,OAAOhS,EAAE4pD,QAAQx2C,GAAIH,CACvB,CACA,OAAOpI,EAAEuI,EACX,CACF,GACA,MAAMg5C,GAAK,CACTC,SAAS,EACTtC,SAEF,SAAY/pD,EAAGuP,EAAG1E,GAChB,OACA,SAAWxI,GACT,OAAOjD,GAAEiD,GAAKoR,GAAEzT,EAAG4P,EAAG,aAAR6D,CAAsBpR,GAAKuN,EAAEvN,EAC7C,EACA,SAASuN,EAAEvN,GACT,OAAa,OAANA,GAAcuQ,GAAEvQ,GAAKkN,EAAElN,GAAKwI,EAAExI,EACvC,CACF,GACA,MAAMyhB,GAAK,CACT2mC,aAAc,CACZV,SAsBJ,SAAY/pD,EAAGuP,EAAG1E,GAChB,MAAM6E,EAAIqpB,KACV,OACA,SAAWnuB,GACT,OAAOxL,GAAEwL,GAAK6I,GAAEzT,EAAGqC,EAAG,aAAcqN,EAAEu6C,OAAOC,WAAWsB,QAAQC,KAAK/rC,SAAS,qBAAkB,EAAS,EAA3FjM,CAA8F7I,GAAKvI,EAAEuI,EACrH,EACA,SAASvI,EAAEuI,GACT,OAAO5K,EAAEgqD,QAAQlmC,GAAIvU,EAAG1E,EAAjB7K,CAAoB4K,EAC7B,CACF,GA7BEi/C,KA8BF,SAAY7pD,GACVA,EAAE6pD,KAAK,aACT,EA/BE3mC,KAAM,aACN6mC,SAEF,SAAY/pD,EAAGuP,EAAG1E,GAChB,MAAM6E,EAAIqpB,KACV,OACA,SAAWnuB,GACT,GAAU,KAANA,EAAU,CACZ,MAAM6E,EAAIC,EAAE86C,eACZ,OAAO/6C,EAAE7M,OAAS5C,EAAE2pD,MAAM,aAAc,CACtC2C,YAAY,IACV78C,EAAE7M,MAAO,GAAK5C,EAAE2pD,MAAM,oBAAqB3pD,EAAE2pD,MAAM,oBAAqB3pD,EAAE4pD,QAAQh/C,GAAI5K,EAAE6pD,KAAK,oBAAqBxnD,CACxH,CACA,OAAOwI,EAAED,EACX,EACA,SAASvI,EAAEuI,GACT,OAAOxL,GAAEwL,IAAM5K,EAAE2pD,MAAM,8BAA+B3pD,EAAE4pD,QAAQh/C,GAAI5K,EAAE6pD,KAAK,8BAA+B7pD,EAAE6pD,KAAK,oBAAqBt6C,IAAMvP,EAAE6pD,KAAK,oBAAqBt6C,EAAE3E,GAC5K,CACF,GAcA,MAAMqe,GAAK,CACT/F,KAAM,kBACN6mC,SAEF,SAAY/pD,EAAGuP,EAAG1E,GAChB,OACA,SAAWxI,GACT,OAAOrC,EAAE2pD,MAAM,mBAAoB3pD,EAAE2pD,MAAM,gBAAiB3pD,EAAE4pD,QAAQvnD,GAAIrC,EAAE6pD,KAAK,gBAAiBj6C,CACpG,EACA,SAASA,EAAEvN,GACT,OAAOgnD,GAAGhnD,IAAMrC,EAAE2pD,MAAM,wBAAyB3pD,EAAE4pD,QAAQvnD,GAAIrC,EAAE6pD,KAAK,wBAAyB7pD,EAAE6pD,KAAK,mBAAoBt6C,GAAK1E,EAAExI,EACnI,CACF,GACA,MAAM6rB,GAAK,CACThL,KAAM,qBACN6mC,SAEF,SAAY/pD,EAAGuP,EAAG1E,GAChB,MAAM6E,EAAIqpB,KACV,IAAW12B,EAAGuI,EAAVgF,EAAI,EACR,OACA,SAAWoC,GACT,OAAOhS,EAAE2pD,MAAM,sBAAuB3pD,EAAE2pD,MAAM,4BAA6B3pD,EAAE4pD,QAAQ53C,GAAIhS,EAAE6pD,KAAK,4BAA6Br6C,CAC/H,EACA,SAASA,EAAEwC,GACT,OAAa,KAANA,GAAYhS,EAAE2pD,MAAM,mCAAoC3pD,EAAE4pD,QAAQ53C,GAAIhS,EAAE6pD,KAAK,mCAAoCh6C,IAAM7P,EAAE2pD,MAAM,2BAA4BtnD,EAAI,GAAIuI,EAAI/K,GAAI8P,EAAEqC,GACtL,CACA,SAASnC,EAAEmC,GACT,OAAa,KAANA,GAAkB,MAANA,GAAahS,EAAE2pD,MAAM,uCAAwC3pD,EAAE4pD,QAAQ53C,GAAIhS,EAAE6pD,KAAK,uCAAwC7pD,EAAE2pD,MAAM,2BAA4BtnD,EAAI,EAAGuI,EAAIw+C,GAAIz5C,IAAM3P,EAAE2pD,MAAM,2BAA4BtnD,EAAI,EAAGuI,EAAIu+C,GAAIx5C,EAAEqC,GAC7P,CACA,SAASrC,EAAEqC,GACT,GAAU,KAANA,GAAYpC,EAAG,CACjB,MAAMzP,EAAIH,EAAE6pD,KAAK,2BACjB,OAAOj/C,IAAM/K,IAAO4oD,GAAG/4C,EAAEq8C,eAAe5rD,KAAcH,EAAE2pD,MAAM,4BAA6B3pD,EAAE4pD,QAAQ53C,GAAIhS,EAAE6pD,KAAK,4BAA6B7pD,EAAE6pD,KAAK,sBAAuBt6C,GAA7H1E,EAAEmH,EAClD,CACA,OAAOpH,EAAEoH,IAAMpC,IAAMvN,GAAKrC,EAAE4pD,QAAQ53C,GAAIrC,GAAK9E,EAAEmH,EACjD,CACF,GACA,MAAM1B,GAAK,CACT+7C,SAAS,EACTtC,SA6EF,SAAY/pD,EAAGuP,EAAG1E,GAChB,MAAM6E,EAAIqpB,KACV,OACA,SAAWnuB,GACT,OAAa,OAANA,EAAaC,EAAED,IAAM5K,EAAE2pD,MAAM,cAAe3pD,EAAE4pD,QAAQh/C,GAAI5K,EAAE6pD,KAAK,cAAexnD,EACzF,EACA,SAASA,EAAEuI,GACT,OAAO8E,EAAEu6C,OAAOiB,KAAKx7C,EAAEy7C,MAAMlI,MAAQp4C,EAAED,GAAK2E,EAAE3E,EAChD,CACF,GArFGsQ,GAAK,CACN2vC,UAAU,EACV3nC,KAAM,aACN6mC,SAEF,SAAY/pD,EAAGuP,EAAG1E,GAChB,MAAM6E,EAAIqpB,KAAMnpB,EAAI,CAClBy8C,SAAS,EACTtC,SAgDF,SAAW13C,EAAGmB,EAAGQ,GACf,IAAI9B,EAAI,EACR,OAAOqB,EACP,SAASA,EAAEjB,GACT,OAAOD,EAAEs3C,MAAM,cAAet3C,EAAEu3C,QAAQt3C,GAAID,EAAEw3C,KAAK,cAAel2C,CACpE,CACA,SAASA,EAAErB,GACT,OAAOD,EAAEs3C,MAAM,mBAAoBvqD,GAAEkT,GAAKmB,GAAEpB,EAAGS,EAAG,aAAcpD,EAAEu6C,OAAOC,WAAWsB,QAAQC,KAAK/rC,SAAS,qBAAkB,EAAS,EAA3FjM,CAA8FnB,GAAKQ,EAAER,EACjJ,CACA,SAASQ,EAAER,GACT,OAAOA,IAAM7C,GAAK4C,EAAEs3C,MAAM,2BAA4Bn3C,EAAEF,IAAM0B,EAAE1B,EAClE,CACA,SAASE,EAAEF,GACT,OAAOA,IAAM7C,GAAKyC,IAAKG,EAAEu3C,QAAQt3C,GAAIE,GAAKN,GAAKtH,GAAKyH,EAAEw3C,KAAK,2BAA4BzqD,GAAEkT,GAAKmB,GAAEpB,EAAGM,EAAG,aAARc,CAAsBnB,GAAKK,EAAEL,IAAM0B,EAAE1B,EACrI,CACA,SAASK,EAAEL,GACT,OAAa,OAANA,GAAcM,GAAEN,IAAMD,EAAEw3C,KAAK,mBAAoBr2C,EAAElB,IAAM0B,EAAE1B,EACpE,CACF,GAhEA,IAAkB7C,EAAdpN,EAAI,EAAGuI,EAAI,EACf,OACA,SAAWyH,GACT,OAEF,SAAWA,GACT,MAAMmB,EAAI9D,EAAEi7C,OAAOj7C,EAAEi7C,OAAOlxC,OAAS,GACrC,OAAOpX,EAAImR,GAAmB,eAAdA,EAAE,GAAG3U,KAAwB2U,EAAE,GAAGu4C,eAAev4C,EAAE,IAAI,GAAIiG,OAAS,EAAGhK,EAAI4C,EAAGrS,EAAE2pD,MAAM,cAAe3pD,EAAE2pD,MAAM,mBAAoB3pD,EAAE2pD,MAAM,2BAA4Bh6C,EAAE0C,EACzL,CALSxC,CAAEwC,EACX,EAKA,SAAS1C,EAAE0C,GACT,OAAOA,IAAM5C,GAAK7E,IAAK5K,EAAE4pD,QAAQv3C,GAAI1C,GAAK/E,EAAI,EAAIC,EAAEwH,IAAMrS,EAAE6pD,KAAK,2BAA4BzqD,GAAEiT,GAAKoB,GAAEzT,EAAGgS,EAAG,aAARyB,CAAsBpB,GAAKL,EAAEK,GACnI,CACA,SAASL,EAAEK,GACT,OAAa,OAANA,GAAcO,GAAEP,IAAMrS,EAAE6pD,KAAK,mBAAoBn6C,EAAEo7C,UAAYv7C,EAAE8C,GAAKrS,EAAEgrD,MAAM16C,GAAIJ,EAAG2C,EAAf7S,CAAkBqS,KAAOrS,EAAE2pD,MAAM,uBAAwB3pD,EAAE2pD,MAAM,cAAe,CAC3JS,YAAa,WACXjqD,EAAEkS,GACR,CACA,SAASlS,EAAEkS,GACT,OAAa,OAANA,GAAcO,GAAEP,IAAMrS,EAAE6pD,KAAK,eAAgB7pD,EAAE6pD,KAAK,uBAAwB73C,EAAEK,IAAMjT,GAAEiT,IAAMrS,EAAE6pD,KAAK,eAAgB7pD,EAAE6pD,KAAK,uBAAwBp2C,GAAEzT,EAAGoT,EAAG,aAARK,CAAsBpB,IAAY,KAANA,GAAYA,IAAM5C,EAAI5E,EAAEwH,IAAMrS,EAAE4pD,QAAQv3C,GAAIlS,EACnO,CACA,SAASiT,EAAEf,GACT,OAAa,OAANA,GAAcO,GAAEP,GAAKL,EAAEK,IAAMrS,EAAE2pD,MAAM,uBAAwB3pD,EAAE2pD,MAAM,cAAe,CACzFS,YAAa,WACXn3C,EAAEZ,GACR,CACA,SAASY,EAAEZ,GACT,OAAa,OAANA,GAAcO,GAAEP,IAAMrS,EAAE6pD,KAAK,eAAgB7pD,EAAE6pD,KAAK,uBAAwB73C,EAAEK,IAAY,KAANA,GAAYA,IAAM5C,EAAI5E,EAAEwH,IAAMrS,EAAE4pD,QAAQv3C,GAAIY,EACzI,CACA,SAAS/C,EAAEmC,GACT,OAAOrS,EAAEgqD,QAAQp6C,EAAGiD,EAAG9S,EAAhBC,CAAmBqS,EAC5B,CACA,SAAStS,EAAEsS,GACT,OAAOrS,EAAE2pD,MAAM,cAAe3pD,EAAE4pD,QAAQv3C,GAAIrS,EAAE6pD,KAAK,cAAerwC,CACpE,CACA,SAASA,EAAEnH,GACT,OAAOhQ,EAAI,GAAKjD,GAAEiT,GAAKoB,GAAEzT,EAAG+S,EAAG,aAAc1Q,EAAI,EAA1BoR,CAA6BpB,GAAKU,EAAEV,EAC7D,CACA,SAASU,EAAEV,GACT,OAAa,OAANA,GAAcO,GAAEP,GAAKrS,EAAEgrD,MAAM16C,GAAIJ,EAAG2C,EAAf7S,CAAkBqS,IAAMrS,EAAE2pD,MAAM,iBAAkBx3C,EAAEE,GAClF,CACA,SAASF,EAAEE,GACT,OAAa,OAANA,GAAcO,GAAEP,IAAMrS,EAAE6pD,KAAK,iBAAkB92C,EAAEV,KAAOrS,EAAE4pD,QAAQv3C,GAAIF,EAC/E,CACA,SAASU,EAAER,GACT,OAAOrS,EAAE6pD,KAAK,cAAet6C,EAAE8C,EACjC,CAoBF,GAWA,MAAMk6C,GAAK,CACTrpC,KAAM,eACN6mC,SAKF,SAAY/pD,EAAGuP,EAAG1E,GAChB,MAAM6E,EAAIqpB,KACV,OACA,SAAWlpB,GACT,OAAO7P,EAAE2pD,MAAM,gBAAiBl2C,GAAEzT,EAAGqC,EAAG,aAAc,EAAtBoR,CAAyB5D,EAC3D,EACA,SAASxN,EAAEwN,GACT,MAAMF,EAAID,EAAEi7C,OAAOj7C,EAAEi7C,OAAOlxC,OAAS,GACrC,OAAO9J,GAAmB,eAAdA,EAAE,GAAG9Q,MAAyB8Q,EAAE,GAAGo8C,eAAep8C,EAAE,IAAI,GAAI8J,QAAU,EAAI7O,EAAEiF,GAAKhF,EAAEgF,EACjG,CACA,SAASjF,EAAEiF,GACT,OAAa,OAANA,EAAaL,EAAEK,GAAK+C,GAAE/C,GAAK7P,EAAEgqD,QAAQwC,GAAI5hD,EAAG4E,EAAjBxP,CAAoB6P,IAAM7P,EAAE2pD,MAAM,iBAAkBl6C,EAAEI,GAC1F,CACA,SAASJ,EAAEI,GACT,OAAa,OAANA,GAAc+C,GAAE/C,IAAM7P,EAAE6pD,KAAK,iBAAkBj/C,EAAEiF,KAAO7P,EAAE4pD,QAAQ/5C,GAAIJ,EAC/E,CACA,SAASD,EAAEK,GACT,OAAO7P,EAAE6pD,KAAK,gBAAiBt6C,EAAEM,EACnC,CACF,GAvBG28C,GAAK,CACNH,SAAS,EACTtC,SAsBF,SAAY/pD,EAAGuP,EAAG1E,GAChB,MAAM6E,EAAIqpB,KACV,OAAOnpB,EACP,SAASA,EAAEhF,GACT,OAAO8E,EAAEu6C,OAAOiB,KAAKx7C,EAAEy7C,MAAMlI,MAAQp4C,EAAED,GAAKgI,GAAEhI,IAAM5K,EAAE2pD,MAAM,cAAe3pD,EAAE4pD,QAAQh/C,GAAI5K,EAAE6pD,KAAK,cAAej6C,GAAK6D,GAAEzT,EAAGqC,EAAG,aAAc,EAAtBoR,CAAyB7I,EAC/I,CACA,SAASvI,EAAEuI,GACT,MAAM6E,EAAIC,EAAEi7C,OAAOj7C,EAAEi7C,OAAOlxC,OAAS,GACrC,OAAOhK,GAAmB,eAAdA,EAAE,GAAG5Q,MAAyB4Q,EAAE,GAAGs8C,eAAet8C,EAAE,IAAI,GAAIgK,QAAU,EAAIlK,EAAE3E,GAAKgI,GAAEhI,GAAKgF,EAAEhF,GAAKC,EAAED,EAC/G,CACF,GACA,MAAM6hD,GAAK,CACTvpC,KAAM,WACNmnC,SAiBF,SAAYrqD,GACV,OAAa,KAANA,GAA4D,oBAAhD+4B,KAAK4xB,OAAO5xB,KAAK4xB,OAAOlxC,OAAS,GAAG,GAAG5a,IAC5D,EAlBE6tD,QAGF,SAAY1sD,GACV,IAA6B0P,EAAGE,EAA5BL,EAAIvP,EAAEyZ,OAAS,EAAG5O,EAAI,EAC1B,KAAsB,eAAjB7K,EAAE6K,GAAG,GAAGhM,MAA0C,UAAjBmB,EAAE6K,GAAG,GAAGhM,MAAuC,eAAjBmB,EAAEuP,GAAG,GAAG1Q,MAA0C,UAAjBmB,EAAEuP,GAAG,GAAG1Q,MAC3G,IAAK6Q,EAAI7E,IAAK6E,EAAIH,GAChB,GAAqB,iBAAjBvP,EAAE0P,GAAG,GAAG7Q,KAAyB,CACnCmB,EAAE6K,GAAG,GAAGhM,KAAO,kBAAmBmB,EAAEuP,GAAG,GAAG1Q,KAAO,kBAAmBgM,GAAK,EAAG0E,GAAK,EACjF,KACF,CAEJ,IAAKG,EAAI7E,EAAI,EAAG0E,MAAOG,GAAKH,QACpB,IAANK,EAAeF,IAAMH,GAAsB,eAAjBvP,EAAE0P,GAAG,GAAG7Q,OAA0B+Q,EAAIF,IAAMA,IAAMH,GAAsB,eAAjBvP,EAAE0P,GAAG,GAAG7Q,QAA2BmB,EAAE4P,GAAG,GAAG/Q,KAAO,eAAgB6Q,IAAME,EAAI,IAAM5P,EAAE4P,GAAG,GAAGsqC,IAAMl6C,EAAE0P,EAAI,GAAG,GAAGwqC,IAAKl6C,EAAE0oD,OAAO94C,EAAI,EAAGF,EAAIE,EAAI,GAAIL,GAAKG,EAAIE,EAAI,EAAGF,EAAIE,EAAI,GAAIA,OAAI,GAChQ,OAAO5P,CACT,EAdE+pD,SAkBF,SAAY/pD,EAAGuP,EAAG1E,GAChB,IAAW+E,EAAGvN,EAAVqN,EAAI,EACR,OACA,SAAWsC,GACT,OAAOhS,EAAE2pD,MAAM,YAAa3pD,EAAE2pD,MAAM,oBAAqBl6C,EAAEuC,EAC7D,EACA,SAASvC,EAAEuC,GACT,OAAa,KAANA,GAAYhS,EAAE4pD,QAAQ53C,GAAItC,IAAKD,IAAMzP,EAAE6pD,KAAK,oBAAqBr6C,EAAEwC,GAC5E,CACA,SAASxC,EAAEwC,GACT,OAAa,OAANA,EAAanH,EAAEmH,GAAW,KAANA,GAAYhS,EAAE2pD,MAAM,SAAU3pD,EAAE4pD,QAAQ53C,GAAIhS,EAAE6pD,KAAK,SAAUr6C,GAAW,KAANwC,GAAY3P,EAAIrC,EAAE2pD,MAAM,oBAAqB/5C,EAAI,EAAGD,EAAEqC,IAAMY,GAAEZ,IAAMhS,EAAE2pD,MAAM,cAAe3pD,EAAE4pD,QAAQ53C,GAAIhS,EAAE6pD,KAAK,cAAer6C,IAAMxP,EAAE2pD,MAAM,gBAAiB95C,EAAEmC,GAC/P,CACA,SAASnC,EAAEmC,GACT,OAAa,OAANA,GAAoB,KAANA,GAAkB,KAANA,GAAYY,GAAEZ,IAAMhS,EAAE6pD,KAAK,gBAAiBr6C,EAAEwC,KAAOhS,EAAE4pD,QAAQ53C,GAAInC,EACtG,CACA,SAASF,EAAEqC,GACT,OAAa,KAANA,GAAYhS,EAAE4pD,QAAQ53C,GAAIpC,IAAKD,GAAKC,IAAMF,GAAK1P,EAAE6pD,KAAK,oBAAqB7pD,EAAE6pD,KAAK,YAAat6C,EAAEyC,KAAO3P,EAAExD,KAAO,eAAgBgR,EAAEmC,GAC5I,CACF,GACA,MAAM26C,GAOJ,WAAA3yB,CAAYzqB,GACVwpB,KAAK1e,KAAO9K,EAAI,IAAIA,GAAK,GAAIwpB,KAAKxe,MAAQ,EAC5C,CAUA,GAAAsM,CAAItX,GACF,GAAIA,EAAI,GAAKA,GAAKwpB,KAAK1e,KAAKZ,OAASsf,KAAKxe,MAAMd,OAC9C,MAAM,IAAImzC,WAAW,wBAA0Br9C,EAAI,kCAAoCwpB,KAAK1e,KAAKZ,OAASsf,KAAKxe,MAAMd,QAAU,KACjI,OAAOlK,EAAIwpB,KAAK1e,KAAKZ,OAASsf,KAAK1e,KAAK9K,GAAKwpB,KAAKxe,MAAMwe,KAAKxe,MAAMd,OAASlK,EAAIwpB,KAAK1e,KAAKZ,OAAS,EACrG,CAKA,UAAIA,GACF,OAAOsf,KAAK1e,KAAKZ,OAASsf,KAAKxe,MAAMd,MACvC,CAQA,KAAAozC,GACE,OAAO9zB,KAAK+zB,UAAU,GAAI/zB,KAAKxe,MAAM4X,KACvC,CAYA,KAAA7L,CAAM/W,EAAG1E,GACP,MAAM6E,EAAI7E,GAAK2xB,OAAOktB,kBACtB,OAAOh6C,EAAIqpB,KAAK1e,KAAKZ,OAASsf,KAAK1e,KAAKiM,MAAM/W,EAAGG,GAAKH,EAAIwpB,KAAK1e,KAAKZ,OAASsf,KAAKxe,MAAM+L,MAAMyS,KAAKxe,MAAMd,OAAS/J,EAAIqpB,KAAK1e,KAAKZ,OAAQsf,KAAKxe,MAAMd,OAASlK,EAAIwpB,KAAK1e,KAAKZ,QAAQszC,UAAYh0B,KAAK1e,KAAKiM,MAAM/W,GAAGy9C,OAAOj0B,KAAKxe,MAAM+L,MAAMyS,KAAKxe,MAAMd,OAAS/J,EAAIqpB,KAAK1e,KAAKZ,QAAQszC,UACrR,CAqBA,MAAArE,CAAOn5C,EAAG1E,EAAG6E,GACX,MAAME,EAAI/E,GAAK,EACfkuB,KAAK+zB,UAAUnmC,KAAKsmC,MAAM19C,IAC1B,MAAMlN,EAAI02B,KAAKxe,MAAMmuC,OAAO3vB,KAAKxe,MAAMd,OAAS7J,EAAG4sB,OAAOktB,mBAC1D,OAAOh6C,GAAKw9C,GAAGn0B,KAAK1e,KAAM3K,GAAIrN,EAAE0qD,SAClC,CASA,GAAA56B,GACE,OAAO4G,KAAK+zB,UAAUtwB,OAAOktB,mBAAoB3wB,KAAK1e,KAAK8X,KAC7D,CAUA,IAAArL,CAAKvX,GACHwpB,KAAK+zB,UAAUtwB,OAAOktB,mBAAoB3wB,KAAK1e,KAAKyM,KAAKvX,EAC3D,CAUA,QAAA49C,CAAS59C,GACPwpB,KAAK+zB,UAAUtwB,OAAOktB,mBAAoBwD,GAAGn0B,KAAK1e,KAAM9K,EAC1D,CAUA,OAAA8W,CAAQ9W,GACNwpB,KAAK+zB,UAAU,GAAI/zB,KAAKxe,MAAMuM,KAAKvX,EACrC,CAUA,WAAA69C,CAAY79C,GACVwpB,KAAK+zB,UAAU,GAAII,GAAGn0B,KAAKxe,MAAOhL,EAAEw9C,UACtC,CAaA,SAAAD,CAAUv9C,GACR,KAAMA,IAAMwpB,KAAK1e,KAAKZ,QAAUlK,EAAIwpB,KAAK1e,KAAKZ,QAAgC,IAAtBsf,KAAKxe,MAAMd,QAAgBlK,EAAI,GAA0B,IAArBwpB,KAAK1e,KAAKZ,QACpG,GAAIlK,EAAIwpB,KAAK1e,KAAKZ,OAAQ,CACxB,MAAM5O,EAAIkuB,KAAK1e,KAAKquC,OAAOn5C,EAAGitB,OAAOktB,mBACrCwD,GAAGn0B,KAAKxe,MAAO1P,EAAEkiD,UACnB,KAAO,CACL,MAAMliD,EAAIkuB,KAAKxe,MAAMmuC,OAAO3vB,KAAK1e,KAAKZ,OAASsf,KAAKxe,MAAMd,OAASlK,EAAGitB,OAAOktB,mBAC7EwD,GAAGn0B,KAAK1e,KAAMxP,EAAEkiD,UAClB,CACJ,EAEF,SAASG,GAAGltD,EAAGuP,GACb,IAAI1E,EAAI,EACR,GAAI0E,EAAEkK,OAAS,IACbzZ,EAAE8mB,QAAQvX,QAEV,KAAO1E,EAAI0E,EAAEkK,QACXzZ,EAAE8mB,QAAQvX,EAAE+W,MAAMzb,EAAGA,EAAI,MAAOA,GAAK,GAC3C,CACA,SAASujB,GAAGpuB,GACV,MAAMuP,EAAI,CAAA,EACV,IAAYG,EAAGE,EAAGvN,EAAGuI,EAAG6E,EAAGD,EAAGK,EAA1BhF,GAAI,EACR,MAAM8E,EAAI,IAAIg9C,GAAG3sD,GACjB,OAAS6K,EAAI8E,EAAE8J,QAAU,CACvB,KAAO5O,KAAK0E,GACV1E,EAAI0E,EAAE1E,GACR,GAAI6E,EAAIC,EAAEkX,IAAIhc,GAAIA,GAAmB,cAAd6E,EAAE,GAAG7Q,MAAiD,mBAAzB8Q,EAAEkX,IAAIhc,EAAI,GAAG,GAAGhM,OAA8B2Q,EAAIE,EAAE,GAAG07C,WAAWT,OAAQtoD,EAAI,EAAGA,EAAImN,EAAEiK,QAA2B,oBAAjBjK,EAAEnN,GAAG,GAAGxD,OAA+BwD,GAAK,GAAIA,EAAImN,EAAEiK,QAA2B,YAAjBjK,EAAEnN,GAAG,GAAGxD,MAC3N,OAASwD,EAAImN,EAAEiK,QAA2B,YAAjBjK,EAAEnN,GAAG,GAAGxD,MACd,cAAjB2Q,EAAEnN,GAAG,GAAGxD,OAAyB2Q,EAAEnN,GAAG,GAAGgrD,6BAA8B,EAAIhrD,KAC/E,GAAa,UAATqN,EAAE,GACJA,EAAE,GAAG06C,cAAgB5qC,OAAOoZ,OAAOrpB,EAAG+9C,GAAG39C,EAAG9E,IAAKA,EAAI0E,EAAE1E,GAAIgF,GAAI,QAC5D,GAAIH,EAAE,GAAG48C,WAAY,CACxB,IAAKjqD,EAAIwI,EAAG+E,OAAI,EAAQvN,KACtB,GAAIuI,EAAI+E,EAAEkX,IAAIxkB,GAAkB,eAAduI,EAAE,GAAG/L,MAAuC,oBAAd+L,EAAE,GAAG/L,KAC1C,UAAT+L,EAAE,KAAmBgF,IAAMD,EAAEkX,IAAIjX,GAAG,GAAG/Q,KAAO,mBAAoB+L,EAAE,GAAG/L,KAAO,aAAc+Q,EAAIvN,QAC7F,GAAkB,eAAduI,EAAE,GAAG/L,KAAuB,MACvC+Q,IAAMF,EAAE,GAAGwqC,IAAM,IACZvqC,EAAEkX,IAAIjX,GAAG,GAAGuV,OACd1V,EAAIE,EAAE2W,MAAM1W,EAAG/E,GAAI4E,EAAE4W,QAAQ3W,GAAIC,EAAE+4C,OAAO94C,EAAG/E,EAAI+E,EAAI,EAAGH,GAC7D,CACF,CACA,OAAOzE,GAAGhL,EAAG,EAAGw8B,OAAOktB,kBAAmB/5C,EAAE2W,MAAM,KAAMzW,CAC1D,CACA,SAASy9C,GAAGttD,EAAGuP,GACb,MAAM1E,EAAI7K,EAAE6mB,IAAItX,GAAG,GAAIG,EAAI1P,EAAE6mB,IAAItX,GAAG,GACpC,IAAIK,EAAIL,EAAI,EACZ,MAAMlN,EAAI,GAAIuI,EAAIC,EAAEugD,YAAc17C,EAAEu6C,OAAOp/C,EAAEu/C,aAAav/C,EAAEsa,OAAQ1V,EAAI7E,EAAE+/C,OAAQn7C,EAAI,GAAIK,EAAI,CAAA,EAC9F,IAAIF,EAAGqC,EAAG7R,GAAI,EAAIiT,EAAIvI,EAAGoI,EAAI,EAAG/C,EAAI,EACpC,MAAMnQ,EAAI,CAACmQ,GACX,KAAOkD,GAAK,CACV,KAAOpT,EAAE6mB,MAAMjX,GAAG,KAAOwD,IAEzB/Q,EAAEykB,KAAKlX,GAAIwD,EAAEg4C,aAAez7C,EAAID,EAAE27C,YAAYj4C,GAAIA,EAAEk3C,MAAQ36C,EAAEmX,KAAK,MAAO9U,GAAKpH,EAAE0gD,WAAWl4C,EAAE+R,OAAQ/R,EAAEi6C,8BAAgCziD,EAAE2iD,oCAAqC,GAAK3iD,EAAE2gD,MAAM57C,GAAIyD,EAAEi6C,8BAAgCziD,EAAE2iD,wCAAqC,IAAUv7C,EAAIoB,EAAGA,EAAIA,EAAEk3C,IAClS,CACA,IAAKl3C,EAAIvI,IAAK1K,EAAIsP,EAAEgK,QAEN,SAAZhK,EAAEtP,GAAG,IAAiC,UAAhBsP,EAAEtP,EAAI,GAAG,IAAkBsP,EAAEtP,GAAG,GAAGtB,OAAS4Q,EAAEtP,EAAI,GAAG,GAAGtB,MAAQ4Q,EAAEtP,GAAG,GAAGglB,MAAM89B,OAASxzC,EAAEtP,GAAG,GAAG+5C,IAAI+I,OAAS/yC,EAAI/P,EAAI,EAAGJ,EAAE+mB,KAAK5W,GAAIkD,EAAEg4C,gBAAa,EAAQh4C,EAAEi3C,cAAW,EAAQj3C,EAAIA,EAAEk3C,MAC5M,IAAK1/C,EAAE+/C,OAAS,GAAIv3C,GAAKA,EAAEg4C,gBAAa,EAAQh4C,EAAEi3C,cAAW,GAAUtqD,EAAEoyB,MAAOhyB,EAAIJ,EAAE0Z,OAAQtZ,KAAO,CACnG,MAAMqZ,EAAI/J,EAAE6W,MAAMvmB,EAAEI,GAAIJ,EAAEI,EAAI,IAAK4S,EAAI1Q,EAAE8vB,MACzC3iB,EAAEsX,KAAK,CAAC/T,EAAGA,EAAIyG,EAAEC,OAAS,IAAKzZ,EAAE0oD,OAAO31C,EAAG,EAAGyG,EAChD,CACA,IAAKhK,EAAEu9C,UAAW5sD,GAAI,IAAMA,EAAIqP,EAAEiK,QAChC5J,EAAEoD,EAAIzD,EAAErP,GAAG,IAAM8S,EAAIzD,EAAErP,GAAG,GAAI8S,GAAKzD,EAAErP,GAAG,GAAKqP,EAAErP,GAAG,GAAK,EACzD,OAAO0P,CACT,CACA,MAAM29C,GAAK,CACTd,QAMF,SAAY1sD,GACV,OAAOouB,GAAGpuB,GAAIA,CAChB,EAPE+pD,SAQF,SAAY/pD,EAAGuP,GACb,IAAI1E,EACJ,OACA,SAAW4E,GACT,OAAOzP,EAAE2pD,MAAM,WAAY9+C,EAAI7K,EAAE2pD,MAAM,eAAgB,CACrDS,YAAa,YACXx6C,EAAEH,EACR,EACA,SAASG,EAAEH,GACT,OAAa,OAANA,EAAapN,EAAEoN,GAAKmD,GAAEnD,GAAKzP,EAAEgrD,MAAMyC,GAAI7iD,EAAGvI,EAAfrC,CAAkByP,IAAMzP,EAAE4pD,QAAQn6C,GAAIG,EAC1E,CACA,SAASvN,EAAEoN,GACT,OAAOzP,EAAE6pD,KAAK,gBAAiB7pD,EAAE6pD,KAAK,WAAYt6C,EAAEE,EACtD,CACA,SAAS7E,EAAE6E,GACT,OAAOzP,EAAE4pD,QAAQn6C,GAAIzP,EAAE6pD,KAAK,gBAAiBh/C,EAAEy/C,KAAOtqD,EAAE2pD,MAAM,eAAgB,CAC5ES,YAAa,UACbC,SAAUx/C,IACRA,EAAIA,EAAEy/C,KAAM16C,CAClB,CACF,GA3BG69C,GAAK,CACNpB,SAAS,EACTtC,SA0BF,SAAY/pD,EAAGuP,EAAG1E,GAChB,MAAM6E,EAAIqpB,KACV,OACA,SAAWnuB,GACT,OAAO5K,EAAE6pD,KAAK,gBAAiB7pD,EAAE2pD,MAAM,cAAe3pD,EAAE4pD,QAAQh/C,GAAI5K,EAAE6pD,KAAK,cAAep2C,GAAEzT,EAAGqC,EAAG,aACpG,EACA,SAASA,EAAEuI,GACT,GAAU,OAANA,GAAcgI,GAAEhI,GAClB,OAAOC,EAAED,GACX,MAAM6E,EAAIC,EAAEi7C,OAAOj7C,EAAEi7C,OAAOlxC,OAAS,GACrC,OAAQ/J,EAAEu6C,OAAOC,WAAWsB,QAAQC,KAAK/rC,SAAS,iBAAmBjQ,GAAmB,eAAdA,EAAE,GAAG5Q,MAAyB4Q,EAAE,GAAGs8C,eAAet8C,EAAE,IAAI,GAAIgK,QAAU,EAAIlK,EAAE3E,GAAK5K,EAAE8qD,UAAUp7C,EAAEu6C,OAAOC,WAAWz2B,KAAM5oB,EAAG0E,EAAzCvP,CAA4C4K,EACzM,CACF,GACA,SAASikB,GAAG7uB,EAAGuP,EAAG1E,EAAG6E,EAAGE,EAAGvN,EAAGuI,EAAG6E,EAAGD,GAClC,MAAMK,EAAIL,GAAKgtB,OAAOktB,kBACtB,IAAI/5C,EAAI,EACR,OACA,SAAW6J,GACT,OAAa,KAANA,GAAYxZ,EAAE2pD,MAAMj6C,GAAI1P,EAAE2pD,MAAM/5C,GAAI5P,EAAE2pD,MAAMtnD,GAAIrC,EAAE4pD,QAAQpwC,GAAIxZ,EAAE6pD,KAAKxnD,GAAIlC,GAAW,OAANqZ,GAAoB,KAANA,GAAkB,KAANA,GAAY0vC,GAAG1vC,GAAK3O,EAAE2O,IAAMxZ,EAAE2pD,MAAMj6C,GAAI1P,EAAE2pD,MAAM/+C,GAAI5K,EAAE2pD,MAAMl6C,GAAIzP,EAAE2pD,MAAM,cAAe,CACpMS,YAAa,WACXl6C,EAAEsJ,GACR,EACA,SAASrZ,EAAEqZ,GACT,OAAa,KAANA,GAAYxZ,EAAE2pD,MAAMtnD,GAAIrC,EAAE4pD,QAAQpwC,GAAIxZ,EAAE6pD,KAAKxnD,GAAIrC,EAAE6pD,KAAKj6C,GAAI5P,EAAE6pD,KAAKn6C,GAAIH,IAAMvP,EAAE2pD,MAAMl6C,GAAIzP,EAAE2pD,MAAM,cAAe,CACrHS,YAAa,WACXh3C,EAAEoG,GACR,CACA,SAASpG,EAAEoG,GACT,OAAa,KAANA,GAAYxZ,EAAE6pD,KAAK,eAAgB7pD,EAAE6pD,KAAKp6C,GAAItP,EAAEqZ,IAAY,OAANA,GAAoB,KAANA,GAAY5G,GAAE4G,GAAK3O,EAAE2O,IAAMxZ,EAAE4pD,QAAQpwC,GAAU,KAANA,EAAWvG,EAAIG,EACrI,CACA,SAASH,EAAEuG,GACT,OAAa,KAANA,GAAkB,KAANA,GAAkB,KAANA,GAAYxZ,EAAE4pD,QAAQpwC,GAAIpG,GAAKA,EAAEoG,EAClE,CACA,SAAStJ,EAAEsJ,GACT,OAAQ7J,GAAY,OAAN6J,GAAoB,KAANA,IAAYlI,GAAEkI,GAAuE7J,EAAIE,GAAW,KAAN2J,GAAYxZ,EAAE4pD,QAAQpwC,GAAI7J,IAAKO,GAAW,KAANsJ,GAAYxZ,EAAE4pD,QAAQpwC,GAAI7J,IAAKO,GAAW,OAANsJ,GAAoB,KAANA,GAAkB,KAANA,GAAY0vC,GAAG1vC,GAAK3O,EAAE2O,IAAMxZ,EAAE4pD,QAAQpwC,GAAU,KAANA,EAAWzZ,EAAImQ,IAApOlQ,EAAE6pD,KAAK,eAAgB7pD,EAAE6pD,KAAKp6C,GAAIzP,EAAE6pD,KAAKj/C,GAAI5K,EAAE6pD,KAAKn6C,GAAIH,EAAEiK,GAC7G,CACA,SAASzZ,EAAEyZ,GACT,OAAa,KAANA,GAAkB,KAANA,GAAkB,KAANA,GAAYxZ,EAAE4pD,QAAQpwC,GAAItJ,GAAKA,EAAEsJ,EAClE,CACF,CACA,SAAS2T,GAAGntB,EAAGuP,EAAG1E,EAAG6E,EAAGE,EAAGvN,GACzB,MAAMuI,EAAImuB,KACV,IAAWvpB,EAAPC,EAAI,EACR,OACA,SAAW2D,GACT,OAAOpT,EAAE2pD,MAAMj6C,GAAI1P,EAAE2pD,MAAM/5C,GAAI5P,EAAE4pD,QAAQx2C,GAAIpT,EAAE6pD,KAAKj6C,GAAI5P,EAAE2pD,MAAMtnD,GAAIsN,CACtE,EACA,SAASA,EAAEyD,GACT,OAAO3D,EAAI,KAAa,OAAN2D,GAAoB,KAANA,GAAkB,KAANA,IAAa5D,GAKnD,KAAN4D,IAAa3D,GAAK,2BAA4B7E,EAAEq/C,OAAOC,WAAar/C,EAAEuI,GAAW,KAANA,GAAYpT,EAAE6pD,KAAKxnD,GAAIrC,EAAE2pD,MAAM/5C,GAAI5P,EAAE4pD,QAAQx2C,GAAIpT,EAAE6pD,KAAKj6C,GAAI5P,EAAE6pD,KAAKn6C,GAAIH,GAAKqD,GAAEQ,IAAMpT,EAAE2pD,MAAM,cAAe3pD,EAAE4pD,QAAQx2C,GAAIpT,EAAE6pD,KAAK,cAAel6C,IAAM3P,EAAE2pD,MAAM,cAAe,CACrPS,YAAa,WACXp4C,EAAEoB,GACR,CACA,SAASpB,EAAEoB,GACT,OAAa,OAANA,GAAoB,KAANA,GAAkB,KAANA,GAAYR,GAAEQ,IAAM3D,IAAM,KAAOzP,EAAE6pD,KAAK,eAAgBl6C,EAAEyD,KAAOpT,EAAE4pD,QAAQx2C,GAAI5D,IAAMA,GAAKpQ,GAAEgU,IAAW,KAANA,EAAWjT,EAAI6R,EACnJ,CACA,SAAS7R,EAAEiT,GACT,OAAa,KAANA,GAAkB,KAANA,GAAkB,KAANA,GAAYpT,EAAE4pD,QAAQx2C,GAAI3D,IAAKuC,GAAKA,EAAEoB,EACvE,CACF,CACA,SAAS2Z,GAAG/sB,EAAGuP,EAAG1E,EAAG6E,EAAGE,EAAGvN,GACzB,IAAIuI,EACJ,OACA,SAAWzK,GACT,OAAa,KAANA,GAAkB,KAANA,GAAkB,KAANA,GAAYH,EAAE2pD,MAAMj6C,GAAI1P,EAAE2pD,MAAM/5C,GAAI5P,EAAE4pD,QAAQzpD,GAAIH,EAAE6pD,KAAKj6C,GAAIhF,EAAU,KAANzK,EAAW,GAAKA,EAAGqP,GAAK3E,EAAE1K,EAC5H,EACA,SAASqP,EAAErP,GACT,OAAOA,IAAMyK,GAAK5K,EAAE2pD,MAAM/5C,GAAI5P,EAAE4pD,QAAQzpD,GAAIH,EAAE6pD,KAAKj6C,GAAI5P,EAAE6pD,KAAKn6C,GAAIH,IAAMvP,EAAE2pD,MAAMtnD,GAAIwN,EAAE1P,GACxF,CACA,SAAS0P,EAAE1P,GACT,OAAOA,IAAMyK,GAAK5K,EAAE6pD,KAAKxnD,GAAImN,EAAE5E,IAAY,OAANzK,EAAa0K,EAAE1K,GAAKyS,GAAEzS,IAAMH,EAAE2pD,MAAM,cAAe3pD,EAAE4pD,QAAQzpD,GAAIH,EAAE6pD,KAAK,cAAep2C,GAAEzT,EAAG6P,EAAG,gBAAkB7P,EAAE2pD,MAAM,cAAe,CAC3KS,YAAa,WACXz6C,EAAExP,GACR,CACA,SAASwP,EAAExP,GACT,OAAOA,IAAMyK,GAAW,OAANzK,GAAcyS,GAAEzS,IAAMH,EAAE6pD,KAAK,eAAgBh6C,EAAE1P,KAAOH,EAAE4pD,QAAQzpD,GAAU,KAANA,EAAW6R,EAAIrC,EACvG,CACA,SAASqC,EAAE7R,GACT,OAAOA,IAAMyK,GAAW,KAANzK,GAAYH,EAAE4pD,QAAQzpD,GAAIwP,GAAKA,EAAExP,EACrD,CACF,CACA,SAAS49B,GAAG/9B,EAAGuP,GACb,IAAI1E,EACJ,OACA,SAAS6E,EAAEE,GACT,OAAOgD,GAAEhD,IAAM5P,EAAE2pD,MAAM,cAAe3pD,EAAE4pD,QAAQh6C,GAAI5P,EAAE6pD,KAAK,cAAeh/C,GAAI,EAAI6E,GAAKtQ,GAAEwQ,GAAK6D,GAAEzT,EAAG0P,EAAG7E,EAAI,aAAe,aAA3B4I,CAAyC7D,GAAKL,EAAEK,EAChJ,CACF,CACA,MAAM89C,GAAK,CACTxqC,KAAM,aACN6mC,SAKF,SAAY/pD,EAAGuP,EAAG1E,GAChB,MAAM6E,EAAIqpB,KACV,IAAInpB,EACJ,OACA,SAAWwD,GACT,OAAOpT,EAAE2pD,MAAM,cAEjB,SAAWv2C,GACT,OAAO+Z,GAAG3J,KACR9T,EACA1P,EACAyP,EAEA5E,EACA,kBACA,wBACA,wBARKsiB,CASL/Z,EACJ,CAbgCxI,CAAEwI,EAClC,EAaA,SAAS3D,EAAE2D,GACT,OAAOxD,EAAIuS,GAAGzS,EAAEq8C,eAAer8C,EAAEi7C,OAAOj7C,EAAEi7C,OAAOlxC,OAAS,GAAG,IAAI6M,MAAM,GAAG,IAAY,KAANlT,GAAYpT,EAAE2pD,MAAM,oBAAqB3pD,EAAE4pD,QAAQx2C,GAAIpT,EAAE6pD,KAAK,oBAAqBr6C,GAAK3E,EAAEuI,EAC5K,CACA,SAAS5D,EAAE4D,GACT,OAAO9B,GAAE8B,GAAK2qB,GAAG/9B,EAAG6P,EAANkuB,CAAS3qB,GAAKvD,EAAEuD,EAChC,CACA,SAASvD,EAAEuD,GACT,OAAOyb,GACL7uB,EACA2P,EAEA9E,EACA,wBACA,+BACA,qCACA,2BACA,8BATKgkB,CAULzb,EACJ,CACA,SAASzD,EAAEyD,GACT,OAAOpT,EAAEgqD,QAAQ2D,GAAI37C,EAAGA,EAAjBhS,CAAoBoT,EAC7B,CACA,SAASpB,EAAEoB,GACT,OAAOhU,GAAEgU,GAAKK,GAAEzT,EAAGG,EAAG,aAARsT,CAAsBL,GAAKjT,EAAEiT,EAC7C,CACA,SAASjT,EAAEiT,GACT,OAAa,OAANA,GAAcR,GAAEQ,IAAMpT,EAAE6pD,KAAK,cAAen6C,EAAEu6C,OAAO7qB,QAAQtY,KAAKlX,GAAIL,EAAE6D,IAAMvI,EAAEuI,EACzF,CACF,GAnDGu6C,GAAK,CACNtB,SAAS,EACTtC,SAkDF,SAAY/pD,EAAGuP,EAAG1E,GAChB,OACA,SAAW4E,GACT,OAAO6B,GAAE7B,GAAKsuB,GAAG/9B,EAAG4P,EAANmuB,CAAStuB,GAAK5E,EAAE4E,EAChC,EACA,SAASG,EAAEH,GACT,OAAOsd,GAAG/sB,EAAGqC,EAAGwI,EAAG,kBAAmB,wBAAyB,wBAAxDkiB,CAAiFtd,EAC1F,CACA,SAASpN,EAAEoN,GACT,OAAOrQ,GAAEqQ,GAAKgE,GAAEzT,EAAG4K,EAAG,aAAR6I,CAAsBhE,GAAK7E,EAAE6E,EAC7C,CACA,SAAS7E,EAAE6E,GACT,OAAa,OAANA,GAAcmD,GAAEnD,GAAKF,EAAEE,GAAK5E,EAAE4E,EACvC,CACF,GACA,MAAM2mB,GAAK,CACTlT,KAAM,kBACN6mC,SAEF,SAAY/pD,EAAGuP,EAAG1E,GAChB,OACA,SAAWxI,GACT,OAAOrC,EAAE2pD,MAAM,mBAAoB3pD,EAAE4pD,QAAQvnD,GAAIuN,CACnD,EACA,SAASA,EAAEvN,GACT,OAAOuQ,GAAEvQ,IAAMrC,EAAE6pD,KAAK,mBAAoBt6C,EAAElN,IAAMwI,EAAExI,EACtD,CACF,GACA,MAAM80B,GAAK,CACTjU,KAAM,aACNwpC,QAGF,SAAY1sD,EAAGuP,GACb,IAA6BK,EAAGvN,EAA5BwI,EAAI7K,EAAEyZ,OAAS,EAAG/J,EAAI,EAC1B,MAAwB,eAAjB1P,EAAE0P,GAAG,GAAG7Q,OAA0B6Q,GAAK,GAAI7E,EAAI,EAAI6E,GAAsB,eAAjB1P,EAAE6K,GAAG,GAAGhM,OAA0BgM,GAAK,GAAqB,uBAAjB7K,EAAE6K,GAAG,GAAGhM,OAAkC6Q,IAAM7E,EAAI,GAAKA,EAAI,EAAI6E,GAA0B,eAArB1P,EAAE6K,EAAI,GAAG,GAAGhM,QAA2BgM,GAAK6E,EAAI,IAAM7E,EAAI,EAAI,GAAIA,EAAI6E,IAAME,EAAI,CAC9P/Q,KAAM,iBACNsmB,MAAOnlB,EAAE0P,GAAG,GAAGyV,MACf+0B,IAAKl6C,EAAE6K,GAAG,GAAGqvC,KACZ73C,EAAI,CACLxD,KAAM,YACNsmB,MAAOnlB,EAAE0P,GAAG,GAAGyV,MACf+0B,IAAKl6C,EAAE6K,GAAG,GAAGqvC,IACbkQ,YAAa,QACZp/C,GAAGhL,EAAG0P,EAAG7E,EAAI6E,EAAI,EAAG,CAAC,CAAC,QAASE,EAAGL,GAAI,CAAC,QAASlN,EAAGkN,GAAI,CAAC,OAAQlN,EAAGkN,GAAI,CAAC,OAAQK,EAAGL,MAAOvP,CAC/F,EAdE+pD,SAeF,SAAY/pD,EAAGuP,EAAG1E,GAChB,IAAI6E,EAAI,EACR,OACA,SAAWC,GACT,OAAO3P,EAAE2pD,MAAM,cAEjB,SAAWh6C,GACT,OAAO3P,EAAE2pD,MAAM,sBAAuB/+C,EAAE+E,EAC1C,CAJgCtN,CAAEsN,EAClC,EAIA,SAAS/E,EAAE+E,GACT,OAAa,KAANA,GAAYD,IAAM,GAAK1P,EAAE4pD,QAAQj6C,GAAI/E,GAAW,OAAN+E,GAAc2B,GAAE3B,IAAM3P,EAAE6pD,KAAK,sBAAuBp6C,EAAEE,IAAM9E,EAAE8E,EACjH,CACA,SAASF,EAAEE,GACT,OAAa,KAANA,GAAY3P,EAAE2pD,MAAM,sBAAuBn6C,EAAEG,IAAY,OAANA,GAAciD,GAAEjD,IAAM3P,EAAE6pD,KAAK,cAAet6C,EAAEI,IAAMvQ,GAAEuQ,GAAK8D,GAAEzT,EAAGyP,EAAG,aAARgE,CAAsB9D,IAAM3P,EAAE2pD,MAAM,kBAAmB95C,EAAEF,GAChL,CACA,SAASH,EAAEG,GACT,OAAa,KAANA,GAAY3P,EAAE4pD,QAAQj6C,GAAIH,IAAMxP,EAAE6pD,KAAK,sBAAuBp6C,EAAEE,GACzE,CACA,SAASE,EAAEF,GACT,OAAa,OAANA,GAAoB,KAANA,GAAY2B,GAAE3B,IAAM3P,EAAE6pD,KAAK,kBAAmBp6C,EAAEE,KAAO3P,EAAE4pD,QAAQj6C,GAAIE,EAC5F,CACF,GACA,MAAM+9C,GAAK,CACT,UACA,UACA,QACA,OACA,WACA,aACA,OACA,UACA,SACA,MACA,WACA,KACA,UACA,SACA,MACA,MACA,KACA,KACA,WACA,aACA,SACA,SACA,OACA,QACA,WACA,KACA,KACA,KACA,KACA,KACA,KACA,OACA,SACA,KACA,OACA,SACA,SACA,KACA,OACA,OACA,OACA,WACA,MACA,WACA,KACA,WACA,SACA,IACA,QACA,SACA,UACA,UACA,QACA,QACA,KACA,QACA,KACA,QACA,QACA,KACA,QACA,MACCtxC,GAAK,CAAC,MAAO,SAAU,QAAS,YAAauxC,GAAK,CACnDhD,UAAU,EACV3nC,KAAM,WACN4qC,UASF,SAAY9tD,GACV,IAAIuP,EAAIvP,EAAEyZ,OACV,KAAOlK,MAAqB,UAAZvP,EAAEuP,GAAG,IAAmC,aAAjBvP,EAAEuP,GAAG,GAAG1Q,QAE/C,OAAO0Q,EAAI,GAA0B,eAArBvP,EAAEuP,EAAI,GAAG,GAAG1Q,OAA0BmB,EAAEuP,GAAG,GAAG4V,MAAQnlB,EAAEuP,EAAI,GAAG,GAAG4V,MAAOnlB,EAAEuP,EAAI,GAAG,GAAG4V,MAAQnlB,EAAEuP,EAAI,GAAG,GAAG4V,MAAOnlB,EAAE0oD,OAAOn5C,EAAI,EAAG,IAAKvP,CACvJ,EAbE+pD,SAcF,SAAY/pD,EAAGuP,EAAG1E,GAChB,MAAM6E,EAAIqpB,KACV,IAAInpB,EAAGvN,EAAGuI,EAAG6E,EAAGD,EAChB,OACA,SAAWwD,GACT,OAEF,SAAWA,GACT,OAAOhT,EAAE2pD,MAAM,YAAa3pD,EAAE2pD,MAAM,gBAAiB3pD,EAAE4pD,QAAQ52C,GAAIhB,CACrE,CAJSrC,CAAEqD,EACX,EAIA,SAAShB,EAAEgB,GACT,OAAa,KAANA,GAAYhT,EAAE4pD,QAAQ52C,GAAI7S,GAAW,KAAN6S,GAAYhT,EAAE4pD,QAAQ52C,GAAI3Q,GAAI,EAAI6N,GAAW,KAAN8C,GAAYhT,EAAE4pD,QAAQ52C,GAAIpD,EAAI,EAAGF,EAAEo7C,UAAYv7C,EAAIgD,GAAKqf,GAAG5e,IAAMhT,EAAE4pD,QAAQ52C,GAAIpI,EAAI+uB,OAAO6vB,aAAax2C,GAAIjT,GAAK8K,EAAEmI,EACjM,CACA,SAAS7S,EAAE6S,GACT,OAAa,KAANA,GAAYhT,EAAE4pD,QAAQ52C,GAAIpD,EAAI,EAAGwD,GAAW,KAANJ,GAAYhT,EAAE4pD,QAAQ52C,GAAIpD,EAAI,EAAGH,EAAI,EAAGwD,GAAK2e,GAAG5e,IAAMhT,EAAE4pD,QAAQ52C,GAAIpD,EAAI,EAAGF,EAAEo7C,UAAYv7C,EAAIgD,GAAK1H,EAAEmI,EACnJ,CACA,SAASI,EAAEJ,GACT,OAAa,KAANA,GAAYhT,EAAE4pD,QAAQ52C,GAAItD,EAAEo7C,UAAYv7C,EAAIgD,GAAK1H,EAAEmI,EAC5D,CACA,SAASC,EAAED,GACT,MAAM5C,EAAK,SACX,OAAO4C,IAAM5C,EAAGuU,WAAWlV,MAAQzP,EAAE4pD,QAAQ52C,GAAU5C,IAANX,EAAkBC,EAAEo7C,UAAYv7C,EAAIuD,EAAIG,GAAKpI,EAAEmI,EAClG,CACA,SAAS9C,EAAE8C,GACT,OAAO4e,GAAG5e,IAAMhT,EAAE4pD,QAAQ52C,GAAIpI,EAAI+uB,OAAO6vB,aAAax2C,GAAIjT,GAAK8K,EAAEmI,EACnE,CACA,SAASjT,EAAEiT,GACT,GAAU,OAANA,GAAoB,KAANA,GAAkB,KAANA,GAAY1B,GAAE0B,GAAI,CAC9C,MAAM5C,EAAW,KAAN4C,EAAU+6C,EAAKnjD,EAAEmY,cAC5B,OAAQ3S,GAAO/N,IAAKia,GAAGoD,SAASquC,GAA2CH,GAAGluC,SAAS9U,EAAEmY,gBAAkBnT,EAAI,EAAGQ,GAAMpQ,EAAE4pD,QAAQ52C,GAAIwG,GAAK9J,EAAEo7C,UAAYv7C,EAAEyD,GAAKF,EAAEE,KAAOpD,EAAI,EAAGF,EAAEo7C,YAAcp7C,EAAEu6C,OAAOiB,KAAKx7C,EAAEy7C,MAAMlI,MAAQp4C,EAAEmI,GAAK3Q,EAAI0Q,EAAEC,GAAKb,EAAEa,KAA3MpD,EAAI,EAAGF,EAAEo7C,UAAYv7C,EAAEyD,GAAKF,EAAEE,GACvE,CACA,OAAa,KAANA,GAAYnT,GAAGmT,IAAMhT,EAAE4pD,QAAQ52C,GAAIpI,GAAK+uB,OAAO6vB,aAAax2C,GAAIjT,GAAK8K,EAAEmI,EAChF,CACA,SAASwG,EAAExG,GACT,OAAa,KAANA,GAAYhT,EAAE4pD,QAAQ52C,GAAItD,EAAEo7C,UAAYv7C,EAAIuD,GAAKjI,EAAEmI,EAC5D,CACA,SAASD,EAAEC,GACT,OAAO5T,GAAE4T,IAAMhT,EAAE4pD,QAAQ52C,GAAID,GAAKQ,EAAEP,EACtC,CACA,SAASb,EAAEa,GACT,OAAa,KAANA,GAAYhT,EAAE4pD,QAAQ52C,GAAIO,GAAW,KAANP,GAAkB,KAANA,GAAY4e,GAAG5e,IAAMhT,EAAE4pD,QAAQ52C,GAAIH,GAAKzT,GAAE4T,IAAMhT,EAAE4pD,QAAQ52C,GAAIb,GAAKoB,EAAEP,EACzH,CACA,SAASH,EAAEG,GACT,OAAa,KAANA,GAAkB,KAANA,GAAkB,KAANA,GAAkB,KAANA,GAAYnT,GAAGmT,IAAMhT,EAAE4pD,QAAQ52C,GAAIH,GAAKpI,EAAEuI,EACvF,CACA,SAASvI,EAAEuI,GACT,OAAa,KAANA,GAAYhT,EAAE4pD,QAAQ52C,GAAIX,GAAKjT,GAAE4T,IAAMhT,EAAE4pD,QAAQ52C,GAAIvI,GAAK0H,EAAEa,EACrE,CACA,SAASX,EAAEW,GACT,OAAa,OAANA,GAAoB,KAANA,GAAkB,KAANA,GAAkB,KAANA,GAAkB,KAANA,EAAWnI,EAAEmI,GAAW,KAANA,GAAkB,KAANA,GAAYhT,EAAE4pD,QAAQ52C,GAAIxD,EAAIwD,EAAGQ,GAAKpU,GAAE4T,IAAMhT,EAAE4pD,QAAQ52C,GAAIX,GAAK2B,EAAEhB,EAC5J,CACA,SAASQ,EAAER,GACT,OAAOA,IAAMxD,GAAKxP,EAAE4pD,QAAQ52C,GAAIxD,EAAI,KAAM0C,GAAW,OAANc,GAAcJ,GAAEI,GAAKnI,EAAEmI,IAAMhT,EAAE4pD,QAAQ52C,GAAIQ,EAC5F,CACA,SAASQ,EAAEhB,GACT,OAAa,OAANA,GAAoB,KAANA,GAAkB,KAANA,GAAkB,KAANA,GAAkB,KAANA,GAAkB,KAANA,GAAkB,KAANA,GAAkB,KAANA,GAAY1B,GAAE0B,GAAKvI,EAAEuI,IAAMhT,EAAE4pD,QAAQ52C,GAAIgB,EACxI,CACA,SAAS9B,EAAEc,GACT,OAAa,KAANA,GAAkB,KAANA,GAAY5T,GAAE4T,GAAKb,EAAEa,GAAKnI,EAAEmI,EACjD,CACA,SAASO,EAAEP,GACT,OAAa,KAANA,GAAYhT,EAAE4pD,QAAQ52C,GAAIW,GAAK9I,EAAEmI,EAC1C,CACA,SAASW,EAAEX,GACT,OAAa,OAANA,GAAcJ,GAAEI,GAAKF,EAAEE,GAAK5T,GAAE4T,IAAMhT,EAAE4pD,QAAQ52C,GAAIW,GAAK9I,EAAEmI,EAClE,CACA,SAASF,EAAEE,GACT,OAAa,KAANA,GAAkB,IAANpD,GAAW5P,EAAE4pD,QAAQ52C,GAAIzM,GAAW,KAANyM,GAAkB,IAANpD,GAAW5P,EAAE4pD,QAAQ52C,GAAIY,GAAW,KAANZ,GAAkB,IAANpD,GAAW5P,EAAE4pD,QAAQ52C,GAAIhE,GAAY,KAANgE,GAAkB,IAANpD,GAAW5P,EAAE4pD,QAAQ52C,GAAIT,GAAW,KAANS,GAAkB,IAANpD,GAAW5P,EAAE4pD,QAAQ52C,GAAIwf,IAAM5f,GAAEI,IAAa,IAANpD,GAAiB,IAANA,EAAmE,OAANoD,GAAcJ,GAAEI,IAAMhT,EAAE6pD,KAAK,gBAAiBr3C,EAAEQ,KAAOhT,EAAE4pD,QAAQ52C,GAAIF,IAAtH9S,EAAE6pD,KAAK,gBAAiB7pD,EAAEgrD,MAAMgD,GAAI/0C,EAAIzG,EAAhBxS,CAAmBgT,GACxS,CACA,SAASR,EAAEQ,GACT,OAAOhT,EAAEgrD,MAAMiD,GAAIt7C,EAAGsG,EAAfjZ,CAAmBgT,EAC5B,CACA,SAASL,EAAEK,GACT,OAAOhT,EAAE2pD,MAAM,cAAe3pD,EAAE4pD,QAAQ52C,GAAIhT,EAAE6pD,KAAK,cAAev3C,CACpE,CACA,SAASA,EAAEU,GACT,OAAa,OAANA,GAAcJ,GAAEI,GAAKR,EAAEQ,IAAMhT,EAAE2pD,MAAM,gBAAiB72C,EAAEE,GACjE,CACA,SAASzM,EAAEyM,GACT,OAAa,KAANA,GAAYhT,EAAE4pD,QAAQ52C,GAAIT,GAAKO,EAAEE,EAC1C,CACA,SAASY,EAAEZ,GACT,OAAa,KAANA,GAAYhT,EAAE4pD,QAAQ52C,GAAIpI,EAAI,GAAIzJ,GAAM2R,EAAEE,EACnD,CACA,SAAS7R,EAAG6R,GACV,GAAU,KAANA,EAAU,CACZ,MAAM5C,EAAKxF,EAAEmY,cACb,OAAOzG,GAAGoD,SAAStP,IAAOpQ,EAAE4pD,QAAQ52C,GAAIhE,GAAM8D,EAAEE,EAClD,CACA,OAAO4e,GAAG5e,IAAMpI,EAAE6O,OAAS,GAAKzZ,EAAE4pD,QAAQ52C,GAAIpI,GAAK+uB,OAAO6vB,aAAax2C,GAAI7R,GAAM2R,EAAEE,EACrF,CACA,SAASwf,EAAGxf,GACV,OAAa,KAANA,GAAYhT,EAAE4pD,QAAQ52C,GAAIT,GAAKO,EAAEE,EAC1C,CACA,SAAST,EAAES,GACT,OAAa,KAANA,GAAYhT,EAAE4pD,QAAQ52C,GAAIhE,GAAY,KAANgE,GAAkB,IAANpD,GAAW5P,EAAE4pD,QAAQ52C,GAAIT,GAAKO,EAAEE,EACrF,CACA,SAAShE,EAAGgE,GACV,OAAa,OAANA,GAAcJ,GAAEI,IAAMhT,EAAE6pD,KAAK,gBAAiB5wC,EAAGjG,KAAOhT,EAAE4pD,QAAQ52C,GAAIhE,EAC/E,CACA,SAASiK,EAAGjG,GACV,OAAOhT,EAAE6pD,KAAK,YAAat6C,EAAEyD,EAC/B,CACF,GApHGg7C,GAAK,CACN3B,SAAS,EACTtC,SA6HF,SAAY/pD,EAAGuP,EAAG1E,GAChB,OACA,SAAW+E,GACT,OAAO5P,EAAE2pD,MAAM,cAAe3pD,EAAE4pD,QAAQh6C,GAAI5P,EAAE6pD,KAAK,cAAe7pD,EAAEgqD,QAAQoC,GAAI78C,EAAG1E,EACrF,CACF,GAjIGojD,GAAK,CACN5B,SAAS,EACTtC,SAgHF,SAAY/pD,EAAGuP,EAAG1E,GAChB,MAAM6E,EAAIqpB,KACV,OACA,SAAWnuB,GACT,OAAOgI,GAAEhI,IAAM5K,EAAE2pD,MAAM,cAAe3pD,EAAE4pD,QAAQh/C,GAAI5K,EAAE6pD,KAAK,cAAexnD,GAAKwI,EAAED,EACnF,EACA,SAASvI,EAAEuI,GACT,OAAO8E,EAAEu6C,OAAOiB,KAAKx7C,EAAEy7C,MAAMlI,MAAQp4C,EAAED,GAAK2E,EAAE3E,EAChD,CACF,GAOA,MAAMsjD,GAAK,CACThrC,KAAM,WACN6mC,SAEF,SAAY/pD,EAAGuP,EAAG1E,GAChB,MAAM6E,EAAIqpB,KACV,IAAInpB,EAAGvN,EAAGuI,EACV,OACA,SAAW2H,GACT,OAAOvS,EAAE2pD,MAAM,YAAa3pD,EAAE2pD,MAAM,gBAAiB3pD,EAAE4pD,QAAQr3C,GAAI/C,CACrE,EACA,SAASA,EAAE+C,GACT,OAAa,KAANA,GAAYvS,EAAE4pD,QAAQr3C,GAAI1C,GAAW,KAAN0C,GAAYvS,EAAE4pD,QAAQr3C,GAAI9H,GAAW,KAAN8H,GAAYvS,EAAE4pD,QAAQr3C,GAAIJ,GAAKyf,GAAGrf,IAAMvS,EAAE4pD,QAAQr3C,GAAIyB,GAAKnJ,EAAE0H,EACpI,CACA,SAAS1C,EAAE0C,GACT,OAAa,KAANA,GAAYvS,EAAE4pD,QAAQr3C,GAAI5C,GAAW,KAAN4C,GAAYvS,EAAE4pD,QAAQr3C,GAAIlQ,EAAI,EAAG4Q,GAAK2e,GAAGrf,IAAMvS,EAAE4pD,QAAQr3C,GAAIQ,GAAKlI,EAAE0H,EAC5G,CACA,SAAS5C,EAAE4C,GACT,OAAa,KAANA,GAAYvS,EAAE4pD,QAAQr3C,GAAIa,GAAKvI,EAAE0H,EAC1C,CACA,SAASP,EAAEO,GACT,OAAa,OAANA,EAAa1H,EAAE0H,GAAW,KAANA,GAAYvS,EAAE4pD,QAAQr3C,GAAIpS,GAAKyS,GAAEL,IAAM3H,EAAIoH,EAAG4B,EAAErB,KAAOvS,EAAE4pD,QAAQr3C,GAAIP,EAClG,CACA,SAAS7R,EAAEoS,GACT,OAAa,KAANA,GAAYvS,EAAE4pD,QAAQr3C,GAAIa,GAAKpB,EAAEO,EAC1C,CACA,SAASa,EAAEb,GACT,OAAa,KAANA,EAAWhM,EAAEgM,GAAW,KAANA,EAAWpS,EAAEoS,GAAKP,EAAEO,EAC/C,CACA,SAASU,EAAEV,GACT,MAAMvD,EAAK,SACX,OAAOuD,IAAMvD,EAAG2V,WAAWtiB,MAAQrC,EAAE4pD,QAAQr3C,GAAUvD,IAAN3M,EAAkB6N,EAAI+C,GAAKpI,EAAE0H,EAChF,CACA,SAASrC,EAAEqC,GACT,OAAa,OAANA,EAAa1H,EAAE0H,GAAW,KAANA,GAAYvS,EAAE4pD,QAAQr3C,GAAIxS,GAAK6S,GAAEL,IAAM3H,EAAIsF,EAAG0D,EAAErB,KAAOvS,EAAE4pD,QAAQr3C,GAAIrC,EAClG,CACA,SAASnQ,EAAEwS,GACT,OAAa,KAANA,GAAYvS,EAAE4pD,QAAQr3C,GAAIiH,GAAKtJ,EAAEqC,EAC1C,CACA,SAASiH,EAAEjH,GACT,OAAa,KAANA,EAAWhM,EAAEgM,GAAW,KAANA,GAAYvS,EAAE4pD,QAAQr3C,GAAIiH,GAAKtJ,EAAEqC,EAC5D,CACA,SAASQ,EAAER,GACT,OAAa,OAANA,GAAoB,KAANA,EAAWhM,EAAEgM,GAAKK,GAAEL,IAAM3H,EAAImI,EAAGa,EAAErB,KAAOvS,EAAE4pD,QAAQr3C,GAAIQ,EAC/E,CACA,SAASZ,EAAEI,GACT,OAAa,OAANA,EAAa1H,EAAE0H,GAAW,KAANA,GAAYvS,EAAE4pD,QAAQr3C,GAAIM,GAAKD,GAAEL,IAAM3H,EAAIuH,EAAGyB,EAAErB,KAAOvS,EAAE4pD,QAAQr3C,GAAIJ,EAClG,CACA,SAASU,EAAEN,GACT,OAAa,KAANA,EAAWhM,EAAEgM,GAAKJ,EAAEI,EAC7B,CACA,SAAS9H,EAAE8H,GACT,OAAOqf,GAAGrf,IAAMvS,EAAE4pD,QAAQr3C,GAAIF,GAAKxH,EAAE0H,EACvC,CACA,SAASF,EAAEE,GACT,OAAa,KAANA,GAAY1S,GAAG0S,IAAMvS,EAAE4pD,QAAQr3C,GAAIF,GAAKmB,EAAEjB,EACnD,CACA,SAASiB,EAAEjB,GACT,OAAOK,GAAEL,IAAM3H,EAAI4I,EAAGI,EAAErB,IAAMnT,GAAEmT,IAAMvS,EAAE4pD,QAAQr3C,GAAIiB,GAAKjN,EAAEgM,EAC7D,CACA,SAASyB,EAAEzB,GACT,OAAa,KAANA,GAAY1S,GAAG0S,IAAMvS,EAAE4pD,QAAQr3C,GAAIyB,GAAW,KAANzB,GAAkB,KAANA,GAAYjB,GAAEiB,GAAKL,EAAEK,GAAK1H,EAAE0H,EACzF,CACA,SAASL,EAAEK,GACT,OAAa,KAANA,GAAYvS,EAAE4pD,QAAQr3C,GAAIhM,GAAW,KAANgM,GAAkB,KAANA,GAAYqf,GAAGrf,IAAMvS,EAAE4pD,QAAQr3C,GAAIgB,GAAKX,GAAEL,IAAM3H,EAAIsH,EAAG0B,EAAErB,IAAMnT,GAAEmT,IAAMvS,EAAE4pD,QAAQr3C,GAAIL,GAAK3L,EAAEgM,EAChJ,CACA,SAASgB,EAAEhB,GACT,OAAa,KAANA,GAAkB,KAANA,GAAkB,KAANA,GAAkB,KAANA,GAAY1S,GAAG0S,IAAMvS,EAAE4pD,QAAQr3C,GAAIgB,GAAKI,EAAEpB,EACvF,CACA,SAASoB,EAAEpB,GACT,OAAa,KAANA,GAAYvS,EAAE4pD,QAAQr3C,GAAIO,GAAKF,GAAEL,IAAM3H,EAAI+I,EAAGC,EAAErB,IAAMnT,GAAEmT,IAAMvS,EAAE4pD,QAAQr3C,GAAIoB,GAAKzB,EAAEK,EAC5F,CACA,SAASO,EAAEP,GACT,OAAa,OAANA,GAAoB,KAANA,GAAkB,KAANA,GAAkB,KAANA,GAAkB,KAANA,EAAW1H,EAAE0H,GAAW,KAANA,GAAkB,KAANA,GAAYvS,EAAE4pD,QAAQr3C,GAAI3C,EAAI2C,EAAGC,GAAKI,GAAEL,IAAM3H,EAAIkI,EAAGc,EAAErB,IAAMnT,GAAEmT,IAAMvS,EAAE4pD,QAAQr3C,GAAIO,IAAM9S,EAAE4pD,QAAQr3C,GAAII,EAChM,CACA,SAASH,EAAED,GACT,OAAOA,IAAM3C,GAAK5P,EAAE4pD,QAAQr3C,GAAI3C,OAAI,EAAQ0C,GAAW,OAANC,EAAa1H,EAAE0H,GAAKK,GAAEL,IAAM3H,EAAI4H,EAAGoB,EAAErB,KAAOvS,EAAE4pD,QAAQr3C,GAAIC,EAC7G,CACA,SAASG,EAAEJ,GACT,OAAa,OAANA,GAAoB,KAANA,GAAkB,KAANA,GAAkB,KAANA,GAAkB,KAANA,GAAkB,KAANA,EAAW1H,EAAE0H,GAAW,KAANA,GAAkB,KAANA,GAAYjB,GAAEiB,GAAKL,EAAEK,IAAMvS,EAAE4pD,QAAQr3C,GAAII,EAC9I,CACA,SAASL,EAAEC,GACT,OAAa,KAANA,GAAkB,KAANA,GAAYjB,GAAEiB,GAAKL,EAAEK,GAAK1H,EAAE0H,EACjD,CACA,SAAShM,EAAEgM,GACT,OAAa,KAANA,GAAYvS,EAAE4pD,QAAQr3C,GAAIvS,EAAE6pD,KAAK,gBAAiB7pD,EAAE6pD,KAAK,YAAat6C,GAAK1E,EAAE0H,EACtF,CACA,SAASqB,EAAErB,GACT,OAAOvS,EAAE6pD,KAAK,gBAAiB7pD,EAAE2pD,MAAM,cAAe3pD,EAAE4pD,QAAQr3C,GAAIvS,EAAE6pD,KAAK,cAAe1oD,CAC5F,CACA,SAASA,EAAGoR,GACV,OAAOnT,GAAEmT,GAAKkB,GAAEzT,EAAGwyB,EAAI,aAAc9iB,EAAEu6C,OAAOC,WAAWsB,QAAQC,KAAK/rC,SAAS,qBAAkB,EAAS,EAA5FjM,CAA+FlB,GAAKigB,EAAGjgB,EACvH,CACA,SAASigB,EAAGjgB,GACV,OAAOvS,EAAE2pD,MAAM,gBAAiB/+C,EAAE2H,EACpC,CACF,GACA,MAAM47C,GAAK,CACTjrC,KAAM,WACNyoC,WAUF,SAAY3rD,GACV,IAAIuP,GAAI,EACR,MAAM1E,EAAI,GACV,OAAS0E,EAAIvP,EAAEyZ,QAAU,CACvB,MAAM/J,EAAI1P,EAAEuP,GAAG,GACf,GAAI1E,EAAEic,KAAK9mB,EAAEuP,IAAgB,eAAXG,EAAE7Q,MAAoC,cAAX6Q,EAAE7Q,MAAmC,aAAX6Q,EAAE7Q,KAAqB,CAC5F,MAAM+Q,EAAe,eAAXF,EAAE7Q,KAAwB,EAAI,EACxC6Q,EAAE7Q,KAAO,OAAQ0Q,GAAKK,CACxB,CACF,CACA,OAAO5P,EAAEyZ,SAAW5O,EAAE4O,QAAUzO,GAAGhL,EAAG,EAAGA,EAAEyZ,OAAQ5O,GAAI7K,CACzD,EApBE8tD,UAqBF,SAAY9tD,EAAGuP,GACb,IAAyBK,EAAGvN,EAAGuI,EAAG6E,EAA9B5E,EAAI7K,EAAEyZ,OAAQ/J,EAAI,EACtB,KAAO7E,KACL,GAAI+E,EAAI5P,EAAE6K,GAAG,GAAIxI,EAAG,CAClB,GAAe,SAAXuN,EAAE/Q,MAA8B,cAAX+Q,EAAE/Q,MAAwB+Q,EAAEw+C,UACnD,MACU,UAAZpuD,EAAE6K,GAAG,IAA6B,cAAX+E,EAAE/Q,OAAyB+Q,EAAEw+C,WAAY,EAClE,MAAO,GAAIxjD,GACT,GAAgB,UAAZ5K,EAAE6K,GAAG,KAA8B,eAAX+E,EAAE/Q,MAAoC,cAAX+Q,EAAE/Q,QAA0B+Q,EAAEy+C,YAAchsD,EAAIwI,EAAc,cAAX+E,EAAE/Q,MAAuB,CACjI6Q,EAAI,EACJ,KACF,MACgB,aAAXE,EAAE/Q,OAAwB+L,EAAIC,GACvC,MAAM2E,EAAI,CACR3Q,KAAuB,cAAjBmB,EAAEqC,GAAG,GAAGxD,KAAuB,OAAS,QAC9CsmB,MAAO,IACFnlB,EAAEqC,GAAG,GAAG8iB,OAEb+0B,IAAK,IACAl6C,EAAEA,EAAEyZ,OAAS,GAAG,GAAGygC,MAEvBrqC,EAAI,CACLhR,KAAM,QACNsmB,MAAO,IACFnlB,EAAEqC,GAAG,GAAG8iB,OAEb+0B,IAAK,IACAl6C,EAAE4K,GAAG,GAAGsvC,MAEZvqC,EAAI,CACL9Q,KAAM,YACNsmB,MAAO,IACFnlB,EAAEqC,EAAIqN,EAAI,GAAG,GAAGwqC,KAErBA,IAAK,IACAl6C,EAAE4K,EAAI,GAAG,GAAGua,QAGnB,OAAO1V,EAAI,CAAC,CAAC,QAASD,EAAGD,GAAI,CAAC,QAASM,EAAGN,IAAKE,EAAIshB,GAAGthB,EAAGzP,EAAEsmB,MAAMjkB,EAAI,EAAGA,EAAIqN,EAAI,IAAKD,EAAIshB,GAAGthB,EAAG,CAAC,CAAC,QAASE,EAAGJ,KAAME,EAAIshB,GAAGthB,EAAGi8C,GAAGn8C,EAAE06C,OAAOC,WAAW8B,WAAWP,KAAMzrD,EAAEsmB,MAAMjkB,EAAIqN,EAAI,EAAG9E,EAAI,GAAI2E,IAAKE,EAAIshB,GAAGthB,EAAG,CAAC,CAAC,OAAQE,EAAGJ,GAAIvP,EAAE4K,EAAI,GAAI5K,EAAE4K,EAAI,GAAI,CAAC,OAAQiF,EAAGN,KAAME,EAAIshB,GAAGthB,EAAGzP,EAAEsmB,MAAM1b,EAAI,IAAK6E,EAAIshB,GAAGthB,EAAG,CAAC,CAAC,OAAQD,EAAGD,KAAMvE,GAAGhL,EAAGqC,EAAGrC,EAAEyZ,OAAQhK,GAAIzP,CACvV,EA3DE+pD,SA4DF,SAAY/pD,EAAGuP,EAAG1E,GAChB,MAAM6E,EAAIqpB,KACV,IAAyB12B,EAAGuI,EAAxBgF,EAAIF,EAAEi7C,OAAOlxC,OACjB,KAAO7J,KACL,IAA6B,eAAxBF,EAAEi7C,OAAO/6C,GAAG,GAAG/Q,MAAiD,cAAxB6Q,EAAEi7C,OAAO/6C,GAAG,GAAG/Q,QAA0B6Q,EAAEi7C,OAAO/6C,GAAG,GAAGy+C,UAAW,CAC9GhsD,EAAIqN,EAAEi7C,OAAO/6C,GAAG,GAChB,KACF,CACF,OACA,SAAWzP,GACT,OAAOkC,EAAIA,EAAE+rD,UAAYp8C,EAAE7R,IAAMyK,EAAI8E,EAAEu6C,OAAO7qB,QAAQ1f,SAASyC,GAAGzS,EAAEq8C,eAAe,CACjF5mC,MAAO9iB,EAAE63C,IACTA,IAAKxqC,EAAEy7C,UACHnrD,EAAE2pD,MAAM,YAAa3pD,EAAE2pD,MAAM,eAAgB3pD,EAAE4pD,QAAQzpD,GAAIH,EAAE6pD,KAAK,eAAgB7pD,EAAE6pD,KAAK,YAAar6C,GAAK3E,EAAE1K,EACrH,EACA,SAASqP,EAAErP,GACT,OAAa,KAANA,EAAWH,EAAEgqD,QAAQsE,GAAI3+C,EAAG/E,EAAI+E,EAAIqC,EAAzBhS,CAA4BG,GAAW,KAANA,EAAWH,EAAEgqD,QAAQuE,GAAI5+C,EAAG/E,EAAIiF,EAAImC,EAAzBhS,CAA4BG,GAAKyK,EAAI+E,EAAExP,GAAK6R,EAAE7R,EAC9G,CACA,SAAS0P,EAAE1P,GACT,OAAOH,EAAEgqD,QAAQwE,GAAI7+C,EAAGqC,EAAjBhS,CAAoBG,EAC7B,CACA,SAASwP,EAAExP,GACT,OAAOoP,EAAEpP,EACX,CACA,SAAS6R,EAAE7R,GACT,OAAOkC,EAAEgsD,WAAY,EAAIxjD,EAAE1K,EAC7B,CACF,GAtFGmuD,GAAK,CACNvE,SAsFF,SAAY/pD,EAAGuP,EAAG1E,GAChB,OACA,SAAWmH,GACT,OAAOhS,EAAE2pD,MAAM,YAAa3pD,EAAE2pD,MAAM,kBAAmB3pD,EAAE4pD,QAAQ53C,GAAIhS,EAAE6pD,KAAK,kBAAmBj6C,CACjG,EACA,SAASA,EAAEoC,GACT,OAAOV,GAAEU,GAAK+rB,GAAG/9B,EAAGqC,EAAN07B,CAAS/rB,GAAK3P,EAAE2P,EAChC,CACA,SAAS3P,EAAE2P,GACT,OAAa,KAANA,EAAWrC,EAAEqC,GAAK6c,GAAG7uB,EAAG4K,EAAG6E,EAAG,sBAAuB,6BAA8B,mCAAoC,yBAA0B,4BAA6B,GAA5Jof,CAAgK7c,EAC3L,CACA,SAASpH,EAAEoH,GACT,OAAOV,GAAEU,GAAK+rB,GAAG/9B,EAAGwP,EAANuuB,CAAS/rB,GAAKrC,EAAEqC,EAChC,CACA,SAASvC,EAAEuC,GACT,OAAOnH,EAAEmH,EACX,CACA,SAASxC,EAAEwC,GACT,OAAa,KAANA,GAAkB,KAANA,GAAkB,KAANA,EAAW+a,GAAG/sB,EAAG6P,EAAGhF,EAAG,gBAAiB,sBAAuB,sBAApDkiB,CAA2E/a,GAAKrC,EAAEqC,EAC9H,CACA,SAASnC,EAAEmC,GACT,OAAOV,GAAEU,GAAK+rB,GAAG/9B,EAAG2P,EAANouB,CAAS/rB,GAAKrC,EAAEqC,EAChC,CACA,SAASrC,EAAEqC,GACT,OAAa,KAANA,GAAYhS,EAAE2pD,MAAM,kBAAmB3pD,EAAE4pD,QAAQ53C,GAAIhS,EAAE6pD,KAAK,kBAAmB7pD,EAAE6pD,KAAK,YAAat6C,GAAK1E,EAAEmH,EACnH,CACF,GA/GGu8C,GAAK,CACNxE,SA+GF,SAAY/pD,EAAGuP,EAAG1E,GAChB,MAAM6E,EAAIqpB,KACV,OACA,SAAWtpB,GACT,OAAO0d,GAAG3J,KAAK9T,EAAG1P,EAAGqC,EAAGuI,EAAG,YAAa,kBAAmB,kBAApDuiB,CAAuE1d,EAChF,EACA,SAASpN,EAAEoN,GACT,OAAOC,EAAEu6C,OAAO7qB,QAAQ1f,SAASyC,GAAGzS,EAAEq8C,eAAer8C,EAAEi7C,OAAOj7C,EAAEi7C,OAAOlxC,OAAS,GAAG,IAAI6M,MAAM,GAAG,KAAQ/W,EAAEE,GAAK5E,EAAE4E,EACnH,CACA,SAAS7E,EAAE6E,GACT,OAAO5E,EAAE4E,EACX,CACF,GA1HG++C,GAAK,CACNzE,SA0HF,SAAY/pD,EAAGuP,EAAG1E,GAChB,OACA,SAAWxI,GACT,OAAOrC,EAAE2pD,MAAM,aAAc3pD,EAAE2pD,MAAM,mBAAoB3pD,EAAE4pD,QAAQvnD,GAAIrC,EAAE6pD,KAAK,mBAAoBj6C,CACpG,EACA,SAASA,EAAEvN,GACT,OAAa,KAANA,GAAYrC,EAAE2pD,MAAM,mBAAoB3pD,EAAE4pD,QAAQvnD,GAAIrC,EAAE6pD,KAAK,mBAAoB7pD,EAAE6pD,KAAK,aAAct6C,GAAK1E,EAAExI,EACtH,CACF,GACA,MAAMosD,GAAK,CACTvrC,KAAM,kBACNyoC,WAAYwC,GAAGxC,WACf5B,SAEF,SAAY/pD,EAAGuP,EAAG1E,GAChB,MAAM6E,EAAIqpB,KACV,OACA,SAAWtpB,GACT,OAAOzP,EAAE2pD,MAAM,cAAe3pD,EAAE2pD,MAAM,oBAAqB3pD,EAAE4pD,QAAQn6C,GAAIzP,EAAE6pD,KAAK,oBAAqBxnD,CACvG,EACA,SAASA,EAAEoN,GACT,OAAa,KAANA,GAAYzP,EAAE2pD,MAAM,eAAgB3pD,EAAE4pD,QAAQn6C,GAAIzP,EAAE6pD,KAAK,eAAgB7pD,EAAE6pD,KAAK,cAAej/C,GAAKC,EAAE4E,EAC/G,CACA,SAAS7E,EAAE6E,GACT,OAAa,KAANA,GAAY,2BAA4BC,EAAEu6C,OAAOC,WAAar/C,EAAE4E,GAAKF,EAAEE,EAChF,CACF,GACA,MAAMi/C,GAAK,CACTxrC,KAAM,iBACNyoC,WAAYwC,GAAGxC,WACf5B,SAEF,SAAY/pD,EAAGuP,EAAG1E,GAChB,MAAM6E,EAAIqpB,KACV,OACA,SAAWnuB,GACT,OAAO5K,EAAE2pD,MAAM,aAAc3pD,EAAE2pD,MAAM,eAAgB3pD,EAAE4pD,QAAQh/C,GAAI5K,EAAE6pD,KAAK,eAAgB7pD,EAAE6pD,KAAK,aAAcxnD,CACjH,EACA,SAASA,EAAEuI,GACT,OAAa,KAANA,GAAY,2BAA4B8E,EAAEu6C,OAAOC,WAAar/C,EAAED,GAAK2E,EAAE3E,EAChF,CACF,GACA,MAAM+jD,GAAK,CACTzrC,KAAM,aACN6mC,SAEF,SAAY/pD,EAAGuP,GACb,OACA,SAAWG,GACT,OAAO1P,EAAE2pD,MAAM,cAAe3pD,EAAE4pD,QAAQl6C,GAAI1P,EAAE6pD,KAAK,cAAep2C,GAAEzT,EAAGuP,EAAG,aAC5E,CACF,GACA,MAAMzO,GAAK,CACToiB,KAAM,gBACN6mC,SAEF,SAAY/pD,EAAGuP,EAAG1E,GAChB,IAAW+E,EAAPF,EAAI,EACR,OACA,SAAWG,GACT,OAAO7P,EAAE2pD,MAAM,iBAEjB,SAAW95C,GACT,OAAOD,EAAIC,EAAGJ,EAAEI,EAClB,CAJmCjF,CAAEiF,EACrC,EAIA,SAASJ,EAAEI,GACT,OAAOA,IAAMD,GAAK5P,EAAE2pD,MAAM,yBAA0Bn6C,EAAEK,IAAMH,GAAK,IAAY,OAANG,GAAc+C,GAAE/C,KAAO7P,EAAE6pD,KAAK,iBAAkBt6C,EAAEM,IAAMhF,EAAEgF,EACnI,CACA,SAASL,EAAEK,GACT,OAAOA,IAAMD,GAAK5P,EAAE4pD,QAAQ/5C,GAAIH,IAAKF,IAAMxP,EAAE6pD,KAAK,yBAA0BzqD,GAAEyQ,GAAK4D,GAAEzT,EAAGyP,EAAG,aAARgE,CAAsB5D,GAAKJ,EAAEI,GAClH,CACF,GACA,MAAMyD,GAAI,CACRm3C,aAAc,CACZV,SAiDJ,SAAY/pD,EAAGuP,EAAG1E,GAChB,MAAM6E,EAAIqpB,KACV,OAAOrpB,EAAE86C,eAAeE,gBAAa,EAAQ1qD,EAAEgrD,MAAMoB,GACrD,SAAW38C,GACT,OAAOC,EAAE86C,eAAeoE,kBAAoBl/C,EAAE86C,eAAeoE,mBAAqBl/C,EAAE86C,eAAeqE,iBAAkBp7C,GAAEzT,EAAGuP,EAAG,iBAAkBG,EAAE86C,eAAeptC,KAAO,EAAlD3J,CAAqDhE,EAC5K,EACA,SAAWA,GACT,OAAOC,EAAE86C,eAAeoE,oBAAsBxvD,GAAEqQ,IAAMC,EAAE86C,eAAeoE,uBAAoB,EAAQl/C,EAAE86C,eAAeqE,sBAAmB,EAAQjkD,EAAE6E,KAAOC,EAAE86C,eAAeoE,uBAAoB,EAAQl/C,EAAE86C,eAAeqE,sBAAmB,EAAQ7uD,EAAEgqD,QAAQ8E,GAAIv/C,EAAG3E,EAAjB5K,CAAoByP,GACvQ,GACA,SAAS7E,EAAE6E,GACT,OAAOC,EAAE86C,eAAeE,YAAa,EAAIh7C,EAAEo7C,eAAY,EAAQr3C,GAAEzT,EAAGA,EAAEgqD,QAAQ12C,GAAG/D,EAAG1E,GAAI,aAAc6E,EAAEu6C,OAAOC,WAAWsB,QAAQC,KAAK/rC,SAAS,qBAAkB,EAAS,EAA5GjM,CAA+GhE,EAChL,CACF,GA3DEo6C,KAoEF,SAAY7pD,GACVA,EAAE6pD,KAAK9wB,KAAKyxB,eAAe3rD,KAC7B,EArEEqkB,KAAM,OACN6mC,SAQF,SAAY/pD,EAAGuP,EAAG1E,GAChB,MAAM6E,EAAIqpB,KAAMnpB,EAAIF,EAAEi7C,OAAOj7C,EAAEi7C,OAAOlxC,OAAS,GAC/C,IAAIpX,EAAIuN,GAAmB,eAAdA,EAAE,GAAG/Q,KAAwB+Q,EAAE,GAAGm8C,eAAen8C,EAAE,IAAI,GAAI6J,OAAS,EAAG7O,EAAI,EACxF,OACA,SAAWwI,GACT,MAAMH,EAAIvD,EAAE86C,eAAe3rD,OAAe,KAANuU,GAAkB,KAANA,GAAkB,KAANA,EAAW,gBAAkB,eACzF,GAAU,kBAANH,GAAyBvD,EAAE86C,eAAeuE,QAAU37C,IAAM1D,EAAE86C,eAAeuE,OAAS5F,GAAG/1C,GAAI,CAC7F,GAAI1D,EAAE86C,eAAe3rD,OAAS6Q,EAAE86C,eAAe3rD,KAAOoU,EAAGjT,EAAE2pD,MAAM12C,EAAG,CAClEq5C,YAAY,KACH,kBAANr5C,EACH,OAAOjT,EAAE2pD,MAAM,kBAAyB,KAANv2C,GAAkB,KAANA,EAAWpT,EAAEgrD,MAAMlqD,GAAI+J,EAAGgF,EAAf7P,CAAkBoT,GAAKvD,EAAEuD,GACpF,IAAK1D,EAAEo7C,WAAmB,KAAN13C,EAClB,OAAOpT,EAAE2pD,MAAM,kBAAmB3pD,EAAE2pD,MAAM,iBAAkBn6C,EAAE4D,EAClE,CACA,OAAOvI,EAAEuI,EACX,EACA,SAAS5D,EAAE4D,GACT,OAAO+1C,GAAG/1C,MAAQxI,EAAI,IAAM5K,EAAE4pD,QAAQx2C,GAAI5D,KAAOE,EAAEo7C,WAAalgD,EAAI,KAAO8E,EAAE86C,eAAeuE,OAAS37C,IAAM1D,EAAE86C,eAAeuE,OAAe,KAAN37C,GAAkB,KAANA,IAAapT,EAAE6pD,KAAK,iBAAkBh6C,EAAEuD,IAAMvI,EAAEuI,EACnM,CACA,SAASvD,EAAEuD,GACT,OAAOpT,EAAE2pD,MAAM,kBAAmB3pD,EAAE4pD,QAAQx2C,GAAIpT,EAAE6pD,KAAK,kBAAmBn6C,EAAE86C,eAAeuE,OAASr/C,EAAE86C,eAAeuE,QAAU37C,EAAGpT,EAAEgrD,MAClIoB,GAEA18C,EAAEo7C,UAAYjgD,EAAI8E,EAClB3P,EAAEgqD,QAAQgF,GAAI7uD,EAAG6R,GAErB,CACA,SAASrC,EAAEyD,GACT,OAAO1D,EAAE86C,eAAeqE,kBAAmB,EAAIxsD,IAAKlC,EAAEiT,EACxD,CACA,SAASpB,EAAEoB,GACT,OAAOhU,GAAEgU,IAAMpT,EAAE2pD,MAAM,4BAA6B3pD,EAAE4pD,QAAQx2C,GAAIpT,EAAE6pD,KAAK,4BAA6B1pD,GAAK0K,EAAEuI,EAC/G,CACA,SAASjT,EAAEiT,GACT,OAAO1D,EAAE86C,eAAeptC,KAAO/a,EAAIqN,EAAEq8C,eAAe/rD,EAAE6pD,KAAK,mBAAmB,GAAIpwC,OAAQlK,EAAE6D,EAC9F,CACF,GA3CG47C,GAAK,CACN3C,SAAS,EACTtC,SAkEF,SAAY/pD,EAAGuP,EAAG1E,GAChB,MAAM6E,EAAIqpB,KACV,OAAOtlB,GAAEzT,EACT,SAAWqC,GACT,MAAMuI,EAAI8E,EAAEi7C,OAAOj7C,EAAEi7C,OAAOlxC,OAAS,GACrC,OAAQra,GAAEiD,IAAMuI,GAAmB,6BAAdA,EAAE,GAAG/L,KAAsC0Q,EAAElN,GAAKwI,EAAExI,EAC3E,EAJe,2BAA4BqN,EAAEu6C,OAAOC,WAAWsB,QAAQC,KAAK/rC,SAAS,qBAAkB,EAAS,EAKlH,GAxEGovC,GAAK,CACNzC,SAAS,EACTtC,SAoDF,SAAY/pD,EAAGuP,EAAG1E,GAChB,MAAM6E,EAAIqpB,KACV,OAAOtlB,GAAEzT,EACT,SAAWqC,GACT,MAAMuI,EAAI8E,EAAEi7C,OAAOj7C,EAAEi7C,OAAOlxC,OAAS,GACrC,OAAO7O,GAAmB,mBAAdA,EAAE,GAAG/L,MAA6B+L,EAAE,GAAGmhD,eAAenhD,EAAE,IAAI,GAAI6O,SAAW/J,EAAE86C,eAAeptC,KAAO7N,EAAElN,GAAKwI,EAAExI,EAC1H,EAJe,iBAAkBqN,EAAE86C,eAAeptC,KAAO,EAK3D,GAYA,MAAMb,GAAK,CACT2G,KAAM,kBACN4qC,UAGF,SAAY9tD,EAAGuP,GACb,IAAkBG,EAAGE,EAAGvN,EAApBwI,EAAI7K,EAAEyZ,OACV,KAAO5O,KACL,GAAgB,UAAZ7K,EAAE6K,GAAG,GAAgB,CACvB,GAAqB,YAAjB7K,EAAE6K,GAAG,GAAGhM,KAAoB,CAC9B6Q,EAAI7E,EACJ,KACF,CACiB,cAAjB7K,EAAE6K,GAAG,GAAGhM,OAAyB+Q,EAAI/E,EACvC,KACmB,YAAjB7K,EAAE6K,GAAG,GAAGhM,MAAsBmB,EAAE0oD,OAAO79C,EAAG,IAAKxI,GAAsB,eAAjBrC,EAAE6K,GAAG,GAAGhM,OAA0BwD,EAAIwI,GAC9F,MAAMD,EAAI,CACR/L,KAAM,gBACNsmB,MAAO,IACFnlB,EAAE4P,GAAG,GAAGuV,OAEb+0B,IAAK,IACAl6C,EAAEA,EAAEyZ,OAAS,GAAG,GAAGygC,MAG1B,OAAOl6C,EAAE4P,GAAG,GAAG/Q,KAAO,oBAAqBwD,GAAKrC,EAAE0oD,OAAO94C,EAAG,EAAG,CAAC,QAAShF,EAAG2E,IAAKvP,EAAE0oD,OAAOrmD,EAAI,EAAG,EAAG,CAAC,OAAQrC,EAAE0P,GAAG,GAAIH,IAAKvP,EAAE0P,GAAG,GAAGwqC,IAAM,IACpIl6C,EAAEqC,GAAG,GAAG63C,MACRl6C,EAAE0P,GAAG,GAAK9E,EAAG5K,EAAE8mB,KAAK,CAAC,OAAQlc,EAAG2E,IAAKvP,CAC5C,EAzBE+pD,SA0BF,SAAY/pD,EAAGuP,EAAG1E,GAChB,MAAM6E,EAAIqpB,KACV,IAAInpB,EACJ,OACA,SAAWC,GACT,IAAyBmC,EAArBrC,EAAID,EAAEi7C,OAAOlxC,OACjB,KAAO9J,KACL,GAA4B,eAAxBD,EAAEi7C,OAAOh7C,GAAG,GAAG9Q,MAAiD,eAAxB6Q,EAAEi7C,OAAOh7C,GAAG,GAAG9Q,MAAiD,YAAxB6Q,EAAEi7C,OAAOh7C,GAAG,GAAG9Q,KAAoB,CACrHmT,EAA4B,cAAxBtC,EAAEi7C,OAAOh7C,GAAG,GAAG9Q,KACnB,KACF,CACF,OAAQ6Q,EAAEu6C,OAAOiB,KAAKx7C,EAAEy7C,MAAMlI,QAAUvzC,EAAEo7C,YAAa94C,EAAmDnH,EAAEgF,IAA/C7P,EAAE2pD,MAAM,qBAAsB/5C,EAAIC,EAEjG,SAAWA,GACT,OAAO7P,EAAE2pD,MAAM,6BAA8Bl6C,EAAEI,EACjD,CAJoGjF,CAAEiF,GACtG,EAIA,SAASJ,EAAEI,GACT,OAAOA,IAAMD,GAAK5P,EAAE4pD,QAAQ/5C,GAAIJ,IAAMzP,EAAE6pD,KAAK,6BAA8BzqD,GAAEyQ,GAAK4D,GAAEzT,EAAGwP,EAAG,aAARiE,CAAsB5D,GAAKL,EAAEK,GACjH,CACA,SAASL,EAAEK,GACT,OAAa,OAANA,GAAc+C,GAAE/C,IAAM7P,EAAE6pD,KAAK,qBAAsBt6C,EAAEM,IAAMhF,EAAEgF,EACtE,CACF,GACA,MAAMo/C,GAAK,CACTlF,SAEF,SAAY/pD,GACV,MAAMuP,EAAIwpB,KAAMluB,EAAI7K,EAAEgqD,QAEpBoC,GAMF,SAAW/pD,GACT,GAAU,OAANA,EAEF,YADArC,EAAE4pD,QAAQvnD,GAGZ,OAAOrC,EAAE2pD,MAAM,mBAAoB3pD,EAAE4pD,QAAQvnD,GAAIrC,EAAE6pD,KAAK,mBAAoBt6C,EAAEq7C,sBAAmB,EAAQ//C,CAC3G,EATE7K,EAAEgqD,QAAQjxB,KAAKkxB,OAAOC,WAAWgF,YAAat/C,EAAG6D,GAAEzT,EAAGA,EAAEgqD,QAAQjxB,KAAKkxB,OAAOC,WAAWz2B,KAAM7jB,EAAG5P,EAAEgqD,QAAQwD,GAAI59C,IAAK,gBAErH,OAAO/E,EAQP,SAAS+E,EAAEvN,GACT,GAAU,OAANA,EAIJ,OAAOrC,EAAE2pD,MAAM,cAAe3pD,EAAE4pD,QAAQvnD,GAAIrC,EAAE6pD,KAAK,cAAet6C,EAAEq7C,sBAAmB,EAAQ//C,EAH7F7K,EAAE4pD,QAAQvnD,EAId,CACF,GACA,MAAM8sD,GAAK,CACTxD,WAAY1+B,MACXmiC,GAAK7oC,GAAG,UAAW8oC,GAAK9oC,GAAG,QAC9B,SAASA,GAAGvmB,GACV,MAAO,CACL2rD,WAAY1+B,GAAS,SAANjtB,EAAesvD,QAAK,GACnCvF,SAEF,SAAWl/C,GACT,MAAM6E,EAAIqpB,KAAMnpB,EAAImpB,KAAKkxB,OAAOC,WAAWlqD,GAAIqC,EAAIwI,EAAEm/C,QAAQp6C,EAAGhF,EAAG6E,GACnE,OAAO7E,EACP,SAASA,EAAE+E,GACT,OAAOE,EAAEF,GAAKtN,EAAEsN,GAAKF,EAAEE,EACzB,CACA,SAASF,EAAEE,GACT,GAAU,OAANA,EAIJ,OAAO9E,EAAE8+C,MAAM,QAAS9+C,EAAE++C,QAAQj6C,GAAIH,EAHpC3E,EAAE++C,QAAQj6C,EAId,CACA,SAASH,EAAEG,GACT,OAAOE,EAAEF,IAAM9E,EAAEg/C,KAAK,QAASxnD,EAAEsN,KAAO9E,EAAE++C,QAAQj6C,GAAIH,EACxD,CACA,SAASK,EAAEF,GACT,GAAU,OAANA,EACF,OAAO,EACT,MAAMqC,EAAIpC,EAAED,GACZ,IAAIxP,GAAI,EACR,GAAI6R,EACF,OAAS7R,EAAI6R,EAAEyH,QAAU,CACvB,MAAMrG,EAAIpB,EAAE7R,GACZ,IAAKiT,EAAEi3C,UAAYj3C,EAAEi3C,SAAS7mC,KAAK9T,EAAGA,EAAE26C,UACtC,OAAO,CACX,CACF,OAAO,CACT,CACF,EACF,CACA,SAASp9B,GAAGjtB,GACV,OACA,SAAW6K,EAAG6E,GACZ,IAAYrN,EAARuN,GAAI,EACR,OAASA,GAAK/E,EAAE4O,aACR,IAANpX,EAAewI,EAAE+E,IAAuB,SAAjB/E,EAAE+E,GAAG,GAAG/Q,OAAoBwD,EAAIuN,EAAGA,OAAS/E,EAAE+E,IAAuB,SAAjB/E,EAAE+E,GAAG,GAAG/Q,QAAqB+Q,IAAMvN,EAAI,IAAMwI,EAAExI,GAAG,GAAG63C,IAAMrvC,EAAE+E,EAAI,GAAG,GAAGsqC,IAAKrvC,EAAE69C,OAAOrmD,EAAI,EAAGuN,EAAIvN,EAAI,GAAIuN,EAAIvN,EAAI,GAAIA,OAAI,GACrM,OAAOrC,EAAIA,EAAE6K,EAAG6E,GAAK7E,CACvB,CACF,CACA,SAASykD,GAAGtvD,EAAGuP,GACb,IAAI1E,EAAI,EACR,OAASA,GAAK7K,EAAEyZ,QACd,IAAK5O,IAAM7K,EAAEyZ,QAA2B,eAAjBzZ,EAAE6K,GAAG,GAAGhM,OAA+C,SAArBmB,EAAE6K,EAAI,GAAG,GAAGhM,KAAiB,CACpF,MAAM6Q,EAAI1P,EAAE6K,EAAI,GAAG,GAAI+E,EAAIL,EAAE87C,YAAY37C,GACzC,IAAiCF,EAA7BnN,EAAIuN,EAAE6J,OAAQ7O,KAAQ6E,EAAI,EAC9B,KAAOpN,KAAO,CACZ,MAAMwN,EAAID,EAAEvN,GACZ,GAAgB,iBAALwN,EAAe,CACxB,IAAKjF,EAAIiF,EAAE4J,OAAgC,KAAxB5J,EAAE8U,WAAW/Z,EAAI,IAClC6E,IAAK7E,IACP,GAAIA,EAAG,MACPA,GAAI,CACN,MAAO,IAAU,IAANiF,EACTL,GAAI,EAAIC,SACL,IAAU,IAANI,EAAU,CACjBxN,IACA,KACF,CACF,CACA,GAAIoN,EAAG,CACL,MAAMI,EAAI,CACRhR,KAAMgM,IAAM7K,EAAEyZ,QAAUjK,GAAKC,EAAI,EAAI,aAAe,oBACpD0V,MAAO,CACL+mC,aAAc7pD,EAAIuI,EAAI8E,EAAEyV,MAAM+mC,aAAethD,EAC7C2kD,OAAQ7/C,EAAEyV,MAAMoqC,OAASltD,EACzB4gD,KAAMvzC,EAAEwqC,IAAI+I,KACZC,OAAQxzC,EAAEwqC,IAAIgJ,OAASzzC,EACvB4tC,OAAQ3tC,EAAEwqC,IAAImD,OAAS5tC,GAEzByqC,IAAK,IACAxqC,EAAEwqC,MAGTxqC,EAAEwqC,IAAM,IACHrqC,EAAEsV,OACJzV,EAAEyV,MAAMk4B,SAAW3tC,EAAEwqC,IAAImD,OAAS79B,OAAOoZ,OAAOlpB,EAAGG,IAAM7P,EAAE0oD,OAAO79C,EAAG,EAAG,CAAC,QAASgF,EAAGN,GAAI,CAAC,OAAQM,EAAGN,IAAK1E,GAAK,EACpH,CACAA,GACF,CACF,OAAO7K,CACT,CACA,MAAMwvD,GAAK,CACT,GAAIl8C,GACJ,GAAIA,GACJ,GAAIA,GACJ,GAAIA,GACJ,GAAIA,GACJ,GAAIA,GACJ,GAAIA,GACJ,GAAIA,GACJ,GAAIA,GACJ,GAAIA,GACJ,GAAIA,GACJ,GAAIA,GACJ,GAAIA,GACJ,GAAIwQ,IACH2rC,GAAK,CACN,GAAI/B,IACHgC,GAAK,CACN,EAAC,GAAKnD,GACN,EAAC,GAAKA,GACN,GAAIA,IACHp9B,GAAK,CACN,GAAIgI,GACJ,GAAIr2B,GACJ,GAAI,CAACyb,GAAIzb,IACT,GAAI+sD,GACJ,GAAItxC,GACJ,GAAIzb,GACJ,GAAIoa,GACJ,IAAKA,IACJy0C,GAAK,CACN,GAAIzhC,GACJ,GAAIjF,IACHqG,GAAK,CACN,EAAC,GAAKq/B,GACN,EAAC,GAAKA,GACN,EAAC,GAAKA,GACN,GAAIF,GACJ,GAAIvgC,GACJ,GAAI09B,GACJ,GAAI,CAACO,GAAI+B,IACT,GAAIQ,GACJ,GAAI,CAACt4B,GAAInN,IACT,GAAIklC,GACJ,GAAIvC,GACJ,GAAIa,IACHmD,GAAK,CACNnE,KAAM,CAACG,GAAIuD,KAKV//B,GAAqB5P,OAAO8X,OAAuB9X,OAAO+Z,eAAe,CAC1EgG,UAAW,KACX0sB,iBANM,CACNR,KAAM,CAAC,GAAI,KAMXtB,eAAgBsF,GAChBjE,QANM,CACNC,KAAM,IAMNjtD,SAAUgxD,GACV/7B,KAAMtE,GACN+/B,YAAaQ,GACb1D,WAAY4D,GACZpP,OAAQmP,GACR3tD,KAAMstB,IACLkQ,OAAOC,YAAa,CAAE10B,MAAO,YAChC,SAAS8kD,GAAG7vD,EAAGuP,EAAG1E,GAChB,IAAI6E,EAAI,CACNw8C,cAAc,EACdqD,OAAQ,EACRtM,KAAMp4C,GAAKA,EAAEo4C,MAAQ,EACrBC,OAAQr4C,GAAKA,EAAEq4C,QAAU,EACzB7F,OAAQxyC,GAAKA,EAAEwyC,QAAU,GAE3B,MAAMztC,EAAI,GAAIvN,EAAI,GAClB,IAAIuI,EAAI,GAAI6E,EAAI,GAChB,MAAMD,EAAI,CACRw6C,QAASx2C,EA8EX,SAAWG,EAAGb,GACZkB,EAAEL,EAAGb,EAAE+K,KACT,GA/EEmtC,MAAOx3C,EAAEnB,GACTu3C,QA8DF,SAAWj2C,GACTf,GAAEe,IAAMjE,EAAEuzC,OAAQvzC,EAAEwzC,OAAS,EAAGxzC,EAAE2tC,SAAgB,IAAN1pC,EAAW,EAAI,EAAGJ,MAAa,IAANI,IAAajE,EAAEwzC,SAAUxzC,EAAE2tC,UAAW3tC,EAAEw8C,aAAe,EAAIx8C,EAAE6/C,UAAY7/C,EAAEw8C,eAAgBx8C,EAAEw8C,eAGlKthD,EAAE8E,EAAE6/C,QAAQ91C,SAAW/J,EAAEw8C,gBAAmBx8C,EAAE6/C,WAAY1/C,EAAEw6C,SAAW12C,CACzE,EAlEEg2C,MAmEF,SAAWh2C,EAAGb,GACZ,MAAMN,EAAIM,GAAK,CAAA,EACf,OAAON,EAAE3T,KAAO8U,EAAGnB,EAAE2S,MAAQlS,IAAKpD,EAAE86C,OAAO7jC,KAAK,CAAC,QAAStU,EAAG3C,IAAKJ,EAAEqX,KAAKtU,GAAIA,CAC/E,EArEEq3C,KAsEF,SAAWl2C,GACT,MAAMb,EAAIrD,EAAE0iB,MACZ,OAAOrf,EAAEonC,IAAMjnC,IAAKpD,EAAE86C,OAAO7jC,KAAK,CAAC,OAAQhU,EAAGjD,IAAKiD,CACrD,EAxEEg4C,UAAWt3C,EAAEnB,EAAG,CACdy4C,WAAW,KAEZj7C,EAAI,CACL8/B,KAAM,KACN6a,eAAgB,CAAA,EAChBc,WAoCF,SAAW33C,GACT/D,EAAE+D,EAAEsvC,MAAQtvC,EAAEuvC,OAAQ3vC,GACxB,EArCEo3C,OAAQ,GACRQ,IAAKl4C,EACLg3C,OAAQjqD,EACRqqD,SAAU,KACV0B,eASF,SAAWp4C,EAAGb,GACZ,OA4IJ,SAAY9S,EAAGuP,GACb,IAAI1E,GAAI,EACR,MAAM6E,EAAI,GACV,IAAIE,EACJ,OAAS/E,EAAI7K,EAAEyZ,QAAU,CACvB,MAAMpX,EAAIrC,EAAE6K,GACZ,IAAID,EACJ,GAAgB,iBAALvI,EACTuI,EAAIvI,OACD,OAAQA,GACX,OACEuI,EAAI,KACJ,MAEF,OACEA,EAAI,KAEJ,MAEF,OACEA,EAAI,OAEJ,MAEF,OACEA,EAAI2E,EAAI,IAAM,KACd,MAEF,OACE,IAAKA,GAAKK,EAAG,SACbhF,EAAI,IACJ,MAEF,QACEA,EAAI+uB,OAAO6vB,aAAannD,GAE5BuN,GAAU,IAANvN,EAAUqN,EAAEoX,KAAKlc,EACvB,CACA,OAAO8E,EAAEoO,KAAK,GAChB,CAnLWgyC,CAAG18C,EAAEO,GAAIb,EAClB,EAVEu4C,YAAaj4C,EACbm4C,MAIF,SAAW53C,GACT,OAAO/I,EAAImmB,GAAGnmB,EAAG+I,GA2BnB,WACE,IAAIA,EACJ,KAAOjE,EAAE6/C,OAAS3kD,EAAE6O,QAAU,CAC5B,MAAM3G,EAAIlI,EAAE8E,EAAE6/C,QACd,GAAgB,iBAALz8C,EACT,IAAKa,EAAIjE,EAAE6/C,OAAQ7/C,EAAEw8C,aAAe,IAAMx8C,EAAEw8C,aAAe,GAAIx8C,EAAE6/C,SAAW57C,GAAKjE,EAAEw8C,aAAep5C,EAAE2G,QAClGD,EAAE1G,EAAE6R,WAAWjV,EAAEw8C,oBAEnB1yC,EAAE1G,EACN,CACF,CArCuB/S,GAAyB,OAApB6K,EAAEA,EAAE6O,OAAS,GAAc,IAAMzF,EAAEzE,EAAG,GAAIM,EAAE86C,OAASe,GAAGrpD,EAAGwN,EAAE86C,OAAQ96C,GAAIA,EAAE86C,OACvG,GAJA,IAAIh7C,EAAIJ,EAAEw6C,SAASvmC,KAAK3T,EAAGL,GAC3B,OAAOD,EAAEo8C,YAActpD,EAAEykB,KAAKvX,GAAIM,EAOlC,SAASuD,EAAEO,GACT,OA2HJ,SAAY3T,EAAGuP,GACb,MAAM1E,EAAI0E,EAAE4V,MAAMoqC,OAAQ7/C,EAAIH,EAAE4V,MAAM+mC,aAAct8C,EAAIL,EAAE2qC,IAAIqV,OAAQltD,EAAIkN,EAAE2qC,IAAIgS,aAChF,IAAIthD,EACJ,GAAIC,IAAM+E,EACRhF,EAAI,CAAC5K,EAAE6K,GAAGyb,MAAM5W,EAAGrN,QAChB,CACH,GAAIuI,EAAI5K,EAAEsmB,MAAMzb,EAAG+E,GAAIF,KAAQ,CAC7B,MAAMD,EAAI7E,EAAE,GACA,iBAAL6E,EAAgB7E,EAAE,GAAK6E,EAAE6W,MAAM5W,GAAK9E,EAAEiiD,OAC/C,CACAxqD,EAAI,GAAKuI,EAAEkc,KAAK9mB,EAAE4P,GAAG0W,MAAM,EAAGjkB,GAChC,CACA,OAAOuI,CACT,CAxIW2kB,CAAG3kB,EAAG+I,EACf,CACA,SAASV,IACP,MACEi5C,aAAcv4C,EACd47C,OAAQz8C,EACRmwC,KAAMzwC,EACN0wC,OAAQvwC,EACR0qC,OAAQ/qC,GACN5C,EACJ,MAAO,CACLw8C,aAAcv4C,EACd47C,OAAQz8C,EACRmwC,KAAMzwC,EACN0wC,OAAQvwC,EACR0qC,OAAQ/qC,EAEZ,CAeA,SAASkH,EAAE7F,GACThE,EAAIA,EAAEgE,EACR,CAkBA,SAAStB,EAAEsB,EAAGb,GACZA,EAAEi9C,SACJ,CACA,SAASv8C,EAAEG,EAAGb,GACZ,OACA,SAAWH,EAAGL,EAAG/L,GACf,IAAIqN,EAAGzS,EAAIqxB,EAAIjgB,EACf,OAAOqL,MAAMK,QAAQtL,GAEnBsG,EAAGtG,GACD,aAAcA,EAEhBsG,EAAG,CAEDtG,IAGJ,SAAYP,GACV,OAAO7R,EACP,SAASA,EAAGkb,GACV,MAAM4D,EAAY,OAAP5D,GAAerJ,EAAEqJ,GAAK2X,EAAY,OAAP3X,GAAerJ,EAAEq5C,KAMvD,OAAOxyC,EAN2D,IAG7D2E,MAAMK,QAAQoB,GAAMA,EAAKA,EAAK,CAACA,GAAM,MACrCzB,MAAMK,QAAQmV,GAAMA,EAAKA,EAAK,CAACA,GAAM,IAEnCna,CAAOwC,EAChB,CACF,CAZIzM,CAAG2D,GAaP,SAASsG,EAAG7G,GACV,OAAOwB,EAAIxB,EAAGjR,EAAK,EAAgB,IAAbiR,EAAEqH,OAAelT,EAAIyM,EAAEZ,EAAEjR,GACjD,CACA,SAAS6R,EAAEZ,GACT,OACA,SAAYqJ,GACV,OAAOlJ,EAsBf,WACE,MAAMoB,EAAIV,IAAKH,EAAIjD,EAAEw6C,SAAU73C,EAAI3C,EAAE+6C,iBAAkBj4C,EAAI9C,EAAE86C,OAAOlxC,OAAQnH,EAAIsL,MAAMC,KAAKpO,GAC3F,MAAO,CACLoO,KAAMlL,EACNo9C,QAASxpD,GAEX,SAASA,IACPmJ,EAAIiE,EAAG9D,EAAEw6C,SAAWv3C,EAAGjD,EAAE+6C,iBAAmBp4C,EAAG3C,EAAE86C,OAAOlxC,OAAS9G,EAAGlD,EAAI6C,EAAGiB,GAC7E,CACF,CA/BmBrB,GAAKsgB,EAAKpgB,EAAGA,EAAEi6C,UAAYx8C,EAAE+6C,iBAAmBx4C,GAAIA,EAAE8Q,MAAQrT,EAAEo6C,OAAOC,WAAWsB,QAAQC,KAAK/rC,SAAStN,EAAE8Q,MAAQ6qC,IAAO37C,EAAE23C,SAASvmC,KAI7I1Q,EAAI0M,OAAOoZ,OAAOpZ,OAAOmmC,OAAO91C,GAAIiD,GAAKjD,EACzCL,EACAY,EACA29C,EAPkI37C,CAQlIqJ,EACJ,CACF,CACA,SAASrL,EAAGgC,GACV,OAAOuB,EAAE6e,EAAIjgB,GAAID,CACnB,CACA,SAASy7C,EAAG37C,GACV,OAAOG,EAAEw9C,YAAa5uD,EAAKyS,EAAE6F,OAASzG,EAAEY,EAAEzS,IAAOoF,CACnD,CACF,CACF,CACA,SAASyN,EAAEL,EAAGb,GACZa,EAAEg4C,aAAetpD,EAAEqd,SAAS/L,IAAMtR,EAAEykB,KAAKnT,GAAIA,EAAE+4C,SAAW1hD,GAAG6E,EAAE86C,OAAQ73C,EAAGjD,EAAE86C,OAAOlxC,OAAS3G,EAAGa,EAAE+4C,QAAQ78C,EAAE86C,OAAOrkC,MAAMxT,GAAIjD,IAAK8D,EAAEm6C,YAAcj+C,EAAE86C,OAASh3C,EAAEm6C,UAAUj+C,EAAE86C,OAAQ96C,GACpL,CAWA,SAAS0D,IACP7D,EAAEuzC,QAAQrzC,GAAKF,EAAEwzC,OAAS,IAAMxzC,EAAEwzC,OAAStzC,EAAEF,EAAEuzC,MAAOvzC,EAAE2tC,QAAUztC,EAAEF,EAAEuzC,MAAQ,EAChF,CACF,CAkFA,MAAMxxC,GAAK,cAoCX,MAAMogB,GAAK,oEAIX,SAASjB,GAAG5wB,EAAGuP,EAAG1E,GAChB,GAAI0E,EACF,OAAOA,EACT,GAAwB,KAApB1E,EAAE8Z,WAAW,GAAW,CAC1B,MAAM/U,EAAI/E,EAAE8Z,WAAW,GAAItiB,EAAU,MAANuN,GAAmB,KAANA,EAC5C,OAAOya,GAAGxf,EAAEyb,MAAMjkB,EAAI,EAAI,GAAIA,EAAI,GAAK,GACzC,CACA,OAAOomD,GAAG59C,IAAM7K,CAClB,CACA,MAAMotB,GAAK,CAAA,EAAG7J,eACd,SAASwO,GAAG/xB,EAAGuP,EAAG1E,GAChB,MAAmB,iBAAL0E,IAAkB1E,EAAI0E,EAAGA,OAAI,GAE7C,SAAYvP,GACV,MAAMuP,EAAI,CACRygD,WAAY,GACZC,eAAgB,CAAC,WAAY,WAAY,UAAW,YAAa,UACjEtG,MAAO,CACLuG,SAAU7tD,EAAE8tD,IACZC,iBAAkBl+C,EAClBm+C,cAAen+C,EACfo+C,WAAYjuD,EAAEkuD,GACdC,WAAYnuD,EAAE+wB,GACdq9B,gBAAiBv+C,EACjBw+C,mBAAoBx+C,EACpBy+C,WAAYtuD,EAAEuuD,GACdC,oBAAqBjmD,EACrBkmD,oBAAqBlmD,EACrBmmD,aAAc1uD,EAAEuuD,EAAIhmD,GACpBomD,SAAU3uD,EAAE4uD,EAAIrmD,GAChBsmD,aAAch/C,EACd0G,KAAM1G,EACNi/C,cAAej/C,EACfk/C,WAAY/uD,EAAEgvD,GACdC,4BAA6B1mD,EAC7B2mD,sBAAuB3mD,EACvB4mD,sBAAuB5mD,EACvB6mD,SAAUpvD,EAAEqvD,GACZC,gBAAiBtvD,EAAEuvD,GACnBC,kBAAmBxvD,EAAEuvD,GACrBE,SAAUzvD,EAAE0vD,EAAInnD,GAChBonD,aAAc9/C,EACd+/C,SAAU5vD,EAAE0vD,EAAInnD,GAChBsnD,aAAchgD,EACdigD,MAAO9vD,EAAE+vD,IACTt6B,MAAOltB,EACPylC,KAAMhuC,EAAE8tD,IACRkC,SAAUhwD,EAAEiwD,IACZC,cAAepyD,EACfqyD,YAAanwD,EAAEowD,GAAIzgD,GACnB0gD,cAAerwD,EAAEowD,IACjBE,UAAWtwD,EAAEq4C,IACbkY,UAAW5/C,EACX6/C,gBAAiBjoD,EACjBkoD,0BAA2BloD,EAC3BmoD,oBAAqBnoD,EACrBooD,cAAe3wD,EAAEkuD,GACjB0C,OAAQ5wD,EAAE2zB,IACVk9B,cAAe7wD,EAAE8wD,KAEnBtJ,KAAM,CACJyG,WAAY9gD,IACZ4jD,mBAAoB3oD,EACpBylD,SAAU1gD,IACV6gD,cAAehxC,EACf+wC,iBAAkB30C,EAClB+0C,WAAYhhD,IACZ6jD,qBAAsB9/C,EACtB+/C,oCAAqCvF,EACrCwF,gCAAiCxF,EACjCyF,wBAAyBphD,EACzBs+C,mBAAoBnwD,EACpBowD,WAAYnhD,EAAEzP,GACd0zD,gBAAiBvjD,EACjB2gD,oBAAqBz9C,EACrB09C,oBAAqB79C,EACrBk+C,cAAe59C,EACfw9C,aAAcvhD,EAAEgK,GAChBw3C,SAAUxhD,EAAE8C,GACZ4+C,aAAc39C,EACdqF,KAAMrF,EACN69C,WAAY5hD,IACZ8hD,4BAA6Bz+C,EAC7B0+C,sBAAuBx+C,EACvBy+C,sBAAuBr/C,EACvBs/C,SAAUjiD,IACVmiD,gBAAiBniD,EAAEsD,GACnB++C,kBAAmBriD,EAAEsD,GACrBg/C,SAAUtiD,EAAEgD,GACZw/C,aAAcz+C,EACd0+C,SAAUziD,EAAEmD,GACZu/C,aAAc3+C,EACd4+C,MAAO3iD,EAAEoE,GACTkkB,MAAOtF,EACPkhC,UAAWvyD,EACXwyD,WAAYhgD,EACZ08B,KAAM7gC,EAAEjJ,GACR8rD,SAAU7iD,IACVgjD,YAAahjD,IACbkjD,cAAeljD,IACfmjD,UAAWnjD,IACXqjD,gBAAiBziD,EACjB0iD,0BAA2BvgD,EAC3BwgD,oBAAqB/jD,EACrBqwC,SAAUpmC,EACV+5C,cAAexjD,EAAEwE,GACjB4/C,0BAA2BpgD,EAC3BqgD,kBAAmBxhD,EACnB4gD,OAAQzjD,IACR0jD,cAAe1jD,MAGnBsd,GAAGvd,GAAIvP,GAAK,CAAA,GAAI8zD,iBAAmB,IACnC,MAAMjpD,EAAI,CAAA,EACV,OAAO6E,EACP,SAASA,EAAEuC,GACT,IAAIS,EAAI,CACN7T,KAAM,OACNgE,SAAU,IAEZ,MAAM4P,EAAI,CACR6xC,MAAO,CAAC5xC,GACRqhD,WAAY,GACZC,OAAQzkD,EACRo6C,MAAOl6C,EACPo6C,KAAMh6C,EACNmV,OAAQpa,EACRqpD,OAAQtkD,EACRiJ,KAAM/N,GACLqI,EAAI,GACP,IAAI0D,GAAI,EACR,OAASA,EAAI3E,EAAEwH,QACb,GAAqB,gBAAjBxH,EAAE2E,GAAG,GAAG/X,MAA2C,kBAAjBoT,EAAE2E,GAAG,GAAG/X,KAC5C,GAAgB,UAAZoT,EAAE2E,GAAG,GACP1D,EAAE4T,KAAKlQ,OACJ,CAEHA,EAAIhH,EAAEqC,EADKiB,EAAEif,MACAvb,EACf,CACJ,IAAKA,GAAI,IAAMA,EAAI3E,EAAEwH,QAAU,CAC7B,MAAMzY,EAAKuO,EAAE0C,EAAE2E,GAAG,IAClBwW,GAAG5J,KAAKxiB,EAAIiR,EAAE2E,GAAG,GAAG/X,OAASmC,EAAGiR,EAAE2E,GAAG,GAAG/X,MAAM2kB,KAAKhE,OAAOoZ,OAAO,CAC/DmzB,eAAgB95C,EAAE2E,GAAG,GAAGm1C,gBACvBt5C,GAAIR,EAAE2E,GAAG,GACd,CACA,GAAInE,EAAEshD,WAAWt6C,OAAS,EAAG,CAC3B,MAAMzY,EAAKyR,EAAEshD,WAAWthD,EAAEshD,WAAWt6C,OAAS,IAC7CzY,EAAG,IAAM0Y,IAAI8J,KAAK/Q,OAAG,EAAQzR,EAAG,GACnC,CACA,IAAK0R,EAAEie,SAAW,CAChBxL,MAAOjG,GAAGjN,EAAEwH,OAAS,EAAIxH,EAAE,GAAG,GAAGkT,MAAQ,CACvC89B,KAAM,EACNC,OAAQ,EACR7F,OAAQ,IAEVnD,IAAKh7B,GAAGjN,EAAEwH,OAAS,EAAIxH,EAAEA,EAAEwH,OAAS,GAAG,GAAGygC,IAAM,CAC9C+I,KAAM,EACNC,OAAQ,EACR7F,OAAQ,KAETzmC,GAAI,IAAMA,EAAIrH,EAAEygD,WAAWv2C,QAC5B/G,EAAInD,EAAEygD,WAAWp5C,GAAGlE,IAAMA,EAC5B,OAAOA,CACT,CACA,SAAS9C,EAAEqC,EAAGS,EAAGD,GACf,IAAgCyhD,EAAI3yC,EAAIJ,EAAI6I,EAAxC9W,EAAIR,EAAI,EAAGkE,GAAI,EAAI5V,GAAK,EAC5B,OAASkS,GAAKT,GAAK,CACjB,MAAMxS,EAAIgS,EAAEiB,GACZ,OAAQjT,EAAE,GAAGpB,MACX,IAAK,gBACL,IAAK,cACL,IAAK,aACM,UAAToB,EAAE,GAAiB2W,IAAMA,IAAKoT,OAAK,EACnC,MAEF,IAAK,kBACM,UAAT/pB,EAAE,KAAmBi0D,IAAOlqC,IAAOpT,IAAMuK,IAAOA,EAAKjO,GAAI8W,OAAK,GAC9D,MAEF,IAAK,aACL,IAAK,gBACL,IAAK,iBACL,IAAK,iBACL,IAAK,2BACH,MACF,QACEA,OAAK,EAET,IAAKpT,GAAc,UAAT3W,EAAE,IAAgC,mBAAdA,EAAE,GAAGpB,OAAmC,IAAN+X,GAAqB,SAAT3W,EAAE,KAAgC,kBAAdA,EAAE,GAAGpB,MAA0C,gBAAdoB,EAAE,GAAGpB,MAAyB,CAC7J,GAAIq1D,EAAI,CACN,IAAItmC,EAAK1a,EACT,IAAKqO,OAAK,EAAQqM,KAAQ,CACxB,MAAMuC,EAAKle,EAAE2b,GACb,GAAmB,eAAfuC,EAAG,GAAGtxB,MAAwC,oBAAfsxB,EAAG,GAAGtxB,KAA4B,CACnE,GAAc,SAAVsxB,EAAG,GAAe,SACtB5O,IAAOtP,EAAEsP,GAAI,GAAG1iB,KAAO,kBAAmBmC,GAAK,GAAKmvB,EAAG,GAAGtxB,KAAO,aAAc0iB,EAAKqM,CACtF,MAAO,GAAqB,eAAfuC,EAAG,GAAGtxB,MAAwC,qBAAfsxB,EAAG,GAAGtxB,MAA8C,+BAAfsxB,EAAG,GAAGtxB,MAAwD,qBAAfsxB,EAAG,GAAGtxB,MAA8C,mBAAfsxB,EAAG,GAAGtxB,KAA4B,KACzM,CACAsiB,KAAQI,GAAMJ,EAAKI,KAAQ2yC,EAAGC,SAAU,GAAKD,EAAGha,IAAM16B,OAAOoZ,OAAO,CAAA,EAAIrX,EAAKtP,EAAEsP,GAAI,GAAG4D,MAAQllB,EAAE,GAAGi6C,KAAMjoC,EAAEy2C,OAAOnnC,GAAMrO,EAAG,EAAG,CAAC,OAAQghD,EAAIj0D,EAAE,KAAMiT,IAAKT,GAC1J,CACA,GAAkB,mBAAdxS,EAAE,GAAGpB,KAA2B,CAClC,MAAM+uB,EAAK,CACT/uB,KAAM,WACNs1D,SAAS,EACThvC,MAAO3F,OAAOoZ,OAAO,CAAA,EAAI34B,EAAE,GAAGklB,OAE9B+0B,SAAK,GAEPga,EAAKtmC,EAAI3b,EAAEy2C,OAAOx1C,EAAG,EAAG,CAAC,QAAS0a,EAAI3tB,EAAE,KAAMiT,IAAKT,IAAK0O,OAAK,EAAQ6I,GAAK,CAC5E,CACF,CACF,CACA,OAAO/X,EAAES,GAAG,GAAGyhD,QAAUnzD,EAAIyR,CAC/B,CACA,SAASpQ,EAAE4P,EAAGS,GACZ,OAAOD,EACP,SAASA,EAAES,GACTzD,EAAE+T,KAAKuV,KAAM9mB,EAAEiB,GAAIA,GAAIR,GAAKA,EAAE8Q,KAAKuV,KAAM7lB,EAC3C,CACF,CACA,SAAStI,IACPmuB,KAAKurB,MAAMx9B,KAAK,CACdjoB,KAAM,WACNgE,SAAU,IAEd,CACA,SAAS4M,EAAEwC,EAAGS,EAAGD,GACfsmB,KAAKurB,MAAMvrB,KAAKurB,MAAM7qC,OAAS,GAAG5W,SAASikB,KAAK7U,GAAI8mB,KAAKurB,MAAMx9B,KAAK7U,GAAI8mB,KAAKg7B,WAAWjtC,KAAK,CAACpU,EAAGD,QAAK,IAAUR,EAAE0e,SAAW,CAC3HxL,MAAOjG,GAAGxM,EAAEyS,OAEZ+0B,SAAK,EAET,CACA,SAAS1qC,EAAEyC,GACT,OAAOS,EACP,SAASA,EAAED,GACTR,GAAKA,EAAEuR,KAAKuV,KAAMtmB,GAAI5C,EAAE2T,KAAKuV,KAAMtmB,EACrC,CACF,CACA,SAAS5C,EAAEoC,EAAGS,GACZ,MAAMD,EAAIsmB,KAAKurB,MAAMnyB,MAAOjf,EAAI6lB,KAAKg7B,WAAW5hC,MAChD,IAAIjf,EAEC,MAAM,IAAIqM,MAAM,iBAAmBtN,EAAEpT,KAAO,MAAQ+kD,GAAG,CAC1Dz+B,MAAOlT,EAAEkT,MACT+0B,IAAKjoC,EAAEioC,MACJ,oBAJHhnC,EAAE,GAAGrU,OAASoT,EAAEpT,OAAS6T,EAAIA,EAAE8Q,KAAKuV,KAAM9mB,EAAGiB,EAAE,KAAOA,EAAE,IAAMwG,IAAI8J,KAAKuV,KAAM9mB,EAAGiB,EAAE,KAKpFT,EAAEke,SAASupB,IAAMh7B,GAAGjN,EAAEioC,IACxB,CACA,SAASvqC,IACP,OAt8EJ,SAAY3P,GAEV,OAAOwe,GAAGxe,EADoC,kBAApCqoD,GAAiB+L,iBAAjB/L,GAAkD+L,gBAAkD,kBAApG/L,GAAqFgM,aAArFhM,GAAkHgM,YAE9H,CAm8EWC,CAAGv7B,KAAKurB,MAAMnyB,MACvB,CACA,SAASngB,IACP+mB,KAAKngB,KAAK27C,6BAA8B,CAC1C,CACA,SAASp0D,EAAE8R,GACT,GAAI8mB,KAAKngB,KAAK27C,4BAA6B,CAC/Bx7B,KAAKurB,MAAMvrB,KAAKurB,MAAM7qC,OAAS,GACvC0L,MAAQqX,OAAOusB,SAAShwB,KAAKgzB,eAAe95C,GAAI,IAAK8mB,KAAKngB,KAAK27C,iCAA8B,CACjG,CACF,CACA,SAASnhD,IACP,MAAMnB,EAAI8mB,KAAKk7B,SAAcl7B,KAAKurB,MAAMvrB,KAAKurB,MAAM7qC,OAAS,GAC1DiM,KAAOzT,CACX,CACA,SAASgB,IACP,MAAMhB,EAAI8mB,KAAKk7B,SAAcl7B,KAAKurB,MAAMvrB,KAAKurB,MAAM7qC,OAAS,GAC1D+6C,KAAOviD,CACX,CACA,SAAS/B,IACP6oB,KAAKngB,KAAK67C,iBAAmB17B,KAAK/T,SAAU+T,KAAKngB,KAAK67C,gBAAiB,EACzE,CACA,SAAS10D,IACP,MAAMkS,EAAI8mB,KAAKk7B,SAAcl7B,KAAKurB,MAAMvrB,KAAKurB,MAAM7qC,OAAS,GAC1D1O,MAAQkH,EAAEmO,QAAQ,2BAA4B,IAAK2Y,KAAKngB,KAAK67C,oBAAiB,CAClF,CACA,SAASj7C,IACP,MAAMvH,EAAI8mB,KAAKk7B,SAAcl7B,KAAKurB,MAAMvrB,KAAKurB,MAAM7qC,OAAS,GAC1D1O,MAAQkH,EAAEmO,QAAQ,eAAgB,GACtC,CACA,SAASrN,EAAEd,GACT,MAAMS,EAAIqmB,KAAKk7B,SAAUxhD,EAAIsmB,KAAKurB,MAAMvrB,KAAKurB,MAAM7qC,OAAS,GAC5DhH,EAAEqlB,MAAQplB,EAAGD,EAAEiiD,WAAavyC,GAAG4W,KAAKgzB,eAAe95C,IAAI8Q,aACzD,CACA,SAAS5Q,IACP,MAAMF,EAAI8mB,KAAKk7B,SAAcl7B,KAAKurB,MAAMvrB,KAAKurB,MAAM7qC,OAAS,GAC1DrX,MAAQ6P,CACZ,CACA,SAASY,IACP,MAAMZ,EAAI8mB,KAAKk7B,SAAcl7B,KAAKurB,MAAMvrB,KAAKurB,MAAM7qC,OAAS,GAC1DirC,IAAMzyC,CACV,CACA,SAASxH,EAAEwH,GACT,MAAMS,EAAIqmB,KAAKurB,MAAMvrB,KAAKurB,MAAM7qC,OAAS,GACzC,IAAK/G,EAAEiiD,MAAO,CACZ,MAAMliD,EAAIsmB,KAAKgzB,eAAe95C,GAAGwH,OACjC/G,EAAEiiD,MAAQliD,CACZ,CACF,CACA,SAASJ,IACP0mB,KAAKngB,KAAKg8C,8BAA+B,CAC3C,CACA,SAASphD,EAAEvB,GACC8mB,KAAKurB,MAAMvrB,KAAKurB,MAAM7qC,OAAS,GACvCk7C,MAAkD,KAA1C57B,KAAKgzB,eAAe95C,GAAG4iD,YAAY,GAAY,EAAI,CAC/D,CACA,SAAS7gD,IACP+kB,KAAKngB,KAAKg8C,kCAA+B,CAC3C,CACA,SAAS1iD,EAAED,GACT,MAAMQ,EAAIsmB,KAAKurB,MAAMvrB,KAAKurB,MAAM7qC,OAAS,GAAG5W,SAC5C,IAAIqQ,EAAIT,EAAEA,EAAEgH,OAAS,KACnBvG,GAAgB,SAAXA,EAAErU,QAAqBqU,EAAI4hD,KAAM5hD,EAAEyd,SAAW,CACnDxL,MAAOjG,GAAGjN,EAAEkT,OAEZ+0B,SAAK,GACJznC,EAAEqU,KAAK5T,IAAK6lB,KAAKurB,MAAMx9B,KAAK5T,EACjC,CACA,SAASK,EAAEtB,GACT,MAAMS,EAAIqmB,KAAKurB,MAAMnyB,MACrBzf,EAAE3H,OAASguB,KAAKgzB,eAAe95C,GAAIS,EAAEie,SAASupB,IAAMh7B,GAAGjN,EAAEioC,IAC3D,CACA,SAASvmC,EAAE1B,GACT,MAAMS,EAAIqmB,KAAKurB,MAAMvrB,KAAKurB,MAAM7qC,OAAS,GACzC,GAAIsf,KAAKngB,KAAKm8C,YAAa,CAGzB,OAFUriD,EAAE7P,SAAS6P,EAAE7P,SAAS4W,OAAS,GACvCkX,SAASupB,IAAMh7B,GAAGjN,EAAEioC,UAAMnhB,KAAKngB,KAAKm8C,iBAAc,EAEtD,EACCh8B,KAAKngB,KAAKg8C,8BAAgCrlD,EAAE0gD,eAAevwC,SAAShN,EAAE7T,QAAUqT,EAAEsR,KAAKuV,KAAM9mB,GAAIsB,EAAEiQ,KAAKuV,KAAM9mB,GACjH,CACA,SAASa,IACPimB,KAAKngB,KAAKm8C,aAAc,CAC1B,CACA,SAASviD,IACP,MAAMP,EAAI8mB,KAAKk7B,SAAcl7B,KAAKurB,MAAMvrB,KAAKurB,MAAM7qC,OAAS,GAC1D1O,MAAQkH,CACZ,CACA,SAASU,IACP,MAAMV,EAAI8mB,KAAKk7B,SAAcl7B,KAAKurB,MAAMvrB,KAAKurB,MAAM7qC,OAAS,GAC1D1O,MAAQkH,CACZ,CACA,SAASK,IACP,MAAML,EAAI8mB,KAAKk7B,SAAcl7B,KAAKurB,MAAMvrB,KAAKurB,MAAM7qC,OAAS,GAC1D1O,MAAQkH,CACZ,CACA,SAAS1L,IACP,MAAM0L,EAAI8mB,KAAKurB,MAAMvrB,KAAKurB,MAAM7qC,OAAS,GACzC,GAAIsf,KAAKngB,KAAKo8C,YAAa,CACzB,MAAMtiD,EAAIqmB,KAAKngB,KAAKq8C,eAAiB,WACrChjD,EAAEpT,MAAQ,YAAaoT,EAAEgjD,cAAgBviD,SAAUT,EAAEyyC,WAAYzyC,EAAE7P,KACrE,aACS6P,EAAEyiD,kBAAmBziD,EAAE6lB,MAChCiB,KAAKngB,KAAKq8C,mBAAgB,CAC5B,CACA,SAASrhD,IACP,MAAM3B,EAAI8mB,KAAKurB,MAAMvrB,KAAKurB,MAAM7qC,OAAS,GACzC,GAAIsf,KAAKngB,KAAKo8C,YAAa,CACzB,MAAMtiD,EAAIqmB,KAAKngB,KAAKq8C,eAAiB,WACrChjD,EAAEpT,MAAQ,YAAaoT,EAAEgjD,cAAgBviD,SAAUT,EAAEyyC,WAAYzyC,EAAE7P,KACrE,aACS6P,EAAEyiD,kBAAmBziD,EAAE6lB,MAChCiB,KAAKngB,KAAKq8C,mBAAgB,CAC5B,CACA,SAAS9zD,EAAG8Q,GACV,MAAMS,EAAIqmB,KAAKgzB,eAAe95C,GAAIQ,EAAIsmB,KAAKurB,MAAMvrB,KAAKurB,MAAM7qC,OAAS,GACrEhH,EAAEqlB,MAjXN,SAAY93B,GACV,OAAOA,EAAEogB,QAAQyR,GAAIjB,GACvB,CA+Wc+B,CAAGjgB,GAAID,EAAEiiD,WAAavyC,GAAGzP,GAAGqQ,aACxC,CACA,SAASyP,IACP,MAAMvgB,EAAI8mB,KAAKurB,MAAMvrB,KAAKurB,MAAM7qC,OAAS,GAAI/G,EAAIqmB,KAAKk7B,SAAUxhD,EAAIsmB,KAAKurB,MAAMvrB,KAAKurB,MAAM7qC,OAAS,GACnG,GAAIsf,KAAKngB,KAAKo8C,aAAc,EAAe,SAAXviD,EAAE5T,KAAiB,CACjD,MAAMqU,EAAIjB,EAAEpP,SACZ4P,EAAE5P,SAAWqQ,CACf,MACET,EAAEib,IAAMhb,CACZ,CACA,SAASH,IACP,MAAMN,EAAI8mB,KAAKk7B,SAAcl7B,KAAKurB,MAAMvrB,KAAKurB,MAAM7qC,OAAS,GAC1DirC,IAAMzyC,CACV,CACA,SAASjD,IACP,MAAMiD,EAAI8mB,KAAKk7B,SAAcl7B,KAAKurB,MAAMvrB,KAAKurB,MAAM7qC,OAAS,GAC1DrX,MAAQ6P,CACZ,CACA,SAASgH,IACP8f,KAAKngB,KAAKo8C,iBAAc,CAC1B,CACA,SAAShiD,IACP+lB,KAAKngB,KAAKq8C,cAAgB,WAC5B,CACA,SAAS7kD,EAAG6B,GACV,MAAMS,EAAIqmB,KAAKk7B,SAAUxhD,EAAIsmB,KAAKurB,MAAMvrB,KAAKurB,MAAM7qC,OAAS,GAC5DhH,EAAEqlB,MAAQplB,EAAGD,EAAEiiD,WAAavyC,GAAG4W,KAAKgzB,eAAe95C,IAAI8Q,cAAegW,KAAKngB,KAAKq8C,cAAgB,MAClG,CACA,SAASlH,EAAG97C,GACV8mB,KAAKngB,KAAKs8C,uBAAyBjjD,EAAEpT,IACvC,CACA,SAASuT,EAAEH,GACT,MAAMS,EAAIqmB,KAAKgzB,eAAe95C,GAAIQ,EAAIsmB,KAAKngB,KAAKs8C,uBAChD,IAAIhiD,EACJT,GAAKS,EAAImX,GAAG3X,EAAS,oCAAND,EAA0C,GAAK,IAAKsmB,KAAKngB,KAAKs8C,4BAAyB,GAAUhiD,EAAIu1C,GAAG/1C,GAC7GqmB,KAAKurB,MAAMvrB,KAAKurB,MAAM7qC,OAAS,GACvC1O,OAASmI,CACb,CACA,SAAS3S,EAAG0R,GACA8mB,KAAKurB,MAAMnyB,MACnBxB,SAASupB,IAAMh7B,GAAGjN,EAAEioC,IACxB,CACA,SAASz+B,EAAGxJ,GACVsB,EAAEiQ,KAAKuV,KAAM9mB,GACH8mB,KAAKurB,MAAMvrB,KAAKurB,MAAM7qC,OAAS,GACvCirC,IAAM3rB,KAAKgzB,eAAe95C,EAC9B,CACA,SAASoN,EAAGpN,GACVsB,EAAEiQ,KAAKuV,KAAM9mB,GACH8mB,KAAKurB,MAAMvrB,KAAKurB,MAAM7qC,OAAS,GACvCirC,IAAM,UAAY3rB,KAAKgzB,eAAe95C,EAC1C,CACA,SAASmhB,IACP,MAAO,CACLv0B,KAAM,aACNgE,SAAU,GAEd,CACA,SAAS+tD,IACP,MAAO,CACL/xD,KAAM,OACN6mB,KAAM,KACN8uC,KAAM,KACNzpD,MAAO,GAEX,CACA,SAASkmD,IACP,MAAO,CACLpyD,KAAM,aACNkM,MAAO,GAEX,CACA,SAASsmD,IACP,MAAO,CACLxyD,KAAM,aACN61D,WAAY,GACZ58B,MAAO,KACP11B,MAAO,KACPsiD,IAAK,GAET,CACA,SAASgN,IACP,MAAO,CACL7yD,KAAM,WACNgE,SAAU,GAEd,CACA,SAAS0tD,IACP,MAAO,CACL1xD,KAAM,UAEN81D,MAAO,EACP9xD,SAAU,GAEd,CACA,SAAS+uD,IACP,MAAO,CACL/yD,KAAM,QAEV,CACA,SAASkzD,IACP,MAAO,CACLlzD,KAAM,OACNkM,MAAO,GAEX,CACA,SAASqnD,KACP,MAAO,CACLvzD,KAAM,QACNuD,MAAO,KACPsiD,IAAK,GACLh3B,IAAK,KAET,CACA,SAASyiC,KACP,MAAO,CACLtxD,KAAM,OACNuD,MAAO,KACPsiD,IAAK,GACL7hD,SAAU,GAEd,CACA,SAAS4vD,GAAGxgD,GACV,MAAO,CACLpT,KAAM,OACNs2D,QAAoB,gBAAXljD,EAAEpT,KACXsmB,MAAO,KACPiwC,OAAQnjD,EAAEkiD,QACVtxD,SAAU,GAEd,CACA,SAASyvD,GAAGrgD,GACV,MAAO,CACLpT,KAAM,WACNu2D,OAAQnjD,EAAEkiD,QACVpvB,QAAS,KACTliC,SAAU,GAEd,CACA,SAAS63C,KACP,MAAO,CACL77C,KAAM,YACNgE,SAAU,GAEd,CACA,SAASmzB,KACP,MAAO,CACLn3B,KAAM,SACNgE,SAAU,GAEd,CACA,SAASiyD,KACP,MAAO,CACLj2D,KAAM,OACNkM,MAAO,GAEX,CACA,SAASooD,KACP,MAAO,CACLt0D,KAAM,gBAEV,CACF,CArgBsDw2D,CAAGxqD,EAAHwqD,CAxDtD,SAAYr1D,GACV,MAAQouB,GAAGpuB,KAEX,OAAOA,CACT,CAoD4D8zB,CA9E5D,SAAY9zB,GACV,MAAM0P,EAAI,CACRw6C,WAEEtB,GAAG,CAACx5B,OAAQpvB,GAAK,CAAA,GAAIs1D,YAAc,KAErCr5C,QAASrM,EAAEk6C,IACX1qB,QAAS,GACT5gC,SAAUoR,EAAE26C,IACZ92B,KAAM7jB,EAAEq/C,IACR/D,KAAM,CAAA,EACN1K,OAAQ5wC,EAAEw/C,IACVptD,KAAM4N,EAAEy/C,KAEV,OAAO3/C,EACP,SAASE,EAAEvN,GACT,OACA,SAAWoN,GACT,OAAOogD,GAAGngD,EAAGrN,EAAGoN,EAClB,CACF,CACF,CAyD+D8lD,CAAG1qD,GAAGrM,WAAW+sD,MAlDhF,WACE,IAA2B77C,EAAvB1P,EAAI,EAAGuP,EAAI,GAAI1E,GAAI,EACvB,OACA,SAAWxI,EAAGuI,EAAG6E,GACf,MAAMD,EAAI,GACV,IAAIK,EAAGF,EAAGqC,EAAG7R,EAAGiT,EAChB,IAAK/Q,EAAIkN,GAAiB,iBAALlN,EAAgBA,EAAEie,WAAa,IAAIk1C,YAAY5qD,QAAK,GAAQ6qD,OAAOpzD,IAAK2P,EAAI,EAAGzC,EAAI,GAAI1E,IAA0B,QAApBxI,EAAEsiB,WAAW,IAAgB3S,IAAKnH,OAAI,GAASmH,EAAI3P,EAAEoX,QAAU,CAC/K,GAAIhI,GAAGikD,UAAY1jD,EAAGnC,EAAI4B,GAAG2nB,KAAK/2B,GAAIlC,EAAI0P,QAAiB,IAAZA,EAAEwpB,MAAmBxpB,EAAEwpB,MAAQh3B,EAAEoX,OAAQrG,EAAI/Q,EAAEsiB,WAAWxkB,IAAK0P,EAAG,CAC/GN,EAAIlN,EAAEikB,MAAMtU,GACZ,KACF,CACA,GAAU,KAANoB,GAAYpB,IAAM7R,GAAKuP,EACzBF,EAAEsX,SAAUpX,OAAI,OAEhB,OAAQA,IAAMF,EAAEsX,MAAK,GAAKpX,OAAI,GAASsC,EAAI7R,IAAMqP,EAAEsX,KAAKzkB,EAAEikB,MAAMtU,EAAG7R,IAAKH,GAAKG,EAAI6R,GAAIoB,GACnF,KAAK,EACH5D,EAAEsX,KAAK,OAAQ9mB,IACf,MAEF,KAAK,EACH,IAAK2P,EAAuB,EAAnBgX,KAAKgvC,KAAK31D,EAAI,GAAQwP,EAAEsX,MAAK,GAAK9mB,IAAM2P,GAAKH,EAAEsX,SACxD,MAEF,KAAK,GACHtX,EAAEsX,SAAU9mB,EAAI,EAChB,MAEF,QACE0P,GAAI,EAAI1P,EAAI,EAElBgS,EAAI7R,EAAI,CACV,CACA,OAAOsP,IAAMC,GAAKF,EAAEsX,MAAK,GAAKvX,GAAKC,EAAEsX,KAAKvX,GAAIC,EAAEsX,KAAK,OAAQtX,CAC/D,CACF,CAgBsFugB,GAAK/vB,EAAGuP,GAAG,KACjG,CAqgBA,SAAS2P,GAAGlf,GACV,MAAO,CACLijD,KAAMjjD,EAAEijD,KACRC,OAAQljD,EAAEkjD,OACV7F,OAAQr9C,EAAEq9C,OAEd,CACA,SAASvwB,GAAG9sB,EAAGuP,GACb,IAAI1E,GAAI,EACR,OAASA,EAAI0E,EAAEkK,QAAU,CACvB,MAAM/J,EAAIH,EAAE1E,GACZ+S,MAAMK,QAAQvO,GAAKod,GAAG9sB,EAAG0P,GAAKkmD,GAAG51D,EAAG0P,EACtC,CACF,CACA,SAASkmD,GAAG51D,EAAGuP,GACb,IAAI1E,EACJ,IAAKA,KAAK0E,EACR,GAAI6d,GAAG5J,KAAKjU,EAAG1E,GACb,OAAQA,GACN,IAAK,iBAAkB,CACrB,MAAM6E,EAAIH,EAAE1E,GACZ6E,GAAK1P,EAAE6K,GAAGic,QAAQpX,GAClB,KACF,CACA,IAAK,aAAc,CACjB,MAAMA,EAAIH,EAAE1E,GACZ6E,GAAK1P,EAAE6K,GAAGic,QAAQpX,GAClB,KACF,CACA,IAAK,QACL,IAAK,OAAQ,CACX,MAAMA,EAAIH,EAAE1E,GACZ6E,GAAK8P,OAAOoZ,OAAO54B,EAAE6K,GAAI6E,GACzB,KACF,EAER,CACA,SAASgK,GAAG1Z,EAAGuP,GACb,MAAMvP,EAAI,IAAIuf,MAAM,iBAAmBvf,EAAEnB,KAAO,MAAQ+kD,GAAG,CACzDz+B,MAAOnlB,EAAEmlB,MACT+0B,IAAKl6C,EAAEk6C,MACJ,0BAA4B3qC,EAAE1Q,KAAO,MAAQ+kD,GAAG,CACnDz+B,MAAO5V,EAAE4V,MACT+0B,IAAK3qC,EAAE2qC,MACJ,aAAe,IAAI36B,MAAM,oCAAsChQ,EAAE1Q,KAAO,MAAQ+kD,GAAG,CACtFz+B,MAAO5V,EAAE4V,MACT+0B,IAAK3qC,EAAE2qC,MACJ,kBACP,CACA,SAAS1mB,GAAGxzB,GACV,MAAMuP,EAAIwpB,KACVxpB,EAAE06C,OACF,SAAWv6C,GACT,OAAOqiB,GAAGriB,EAAG,IACRH,EAAEqJ,KAAK,eACP5Y,EAIHs1D,WAAY/lD,EAAEqJ,KAAK,wBAA0B,GAC7Ck7C,gBAAiBvkD,EAAEqJ,KAAK,2BAA6B,IAEzD,CACF,CAoFA,SAAS8V,GAAG1uB,EAAGuP,GACb,MAAM1E,EAAI0E,EAAE0lD,cACZ,IAAIvlD,EAAI,IACR,GAAU,cAAN7E,EAAoB6E,GAAK,KAAa,SAAN7E,IAAiB6E,GAAK,KAAOH,EAAEuoB,OAASvoB,EAAEmlD,YAAc,KAAiB,mBAAXnlD,EAAE1Q,KAClG,MAAO,CAAC,CAAEA,KAAM,OAAQkM,MAAO,KAAOwE,EAAEme,IAAMhe,IAChD,MAAME,EAAI5P,EAAEgZ,IAAIzJ,GAAIlN,EAAIuN,EAAE,GAC1BvN,GAAgB,SAAXA,EAAExD,KAAkBwD,EAAE0I,MAAQ,IAAM1I,EAAE0I,MAAQ6E,EAAEyW,QAAQ,CAAExnB,KAAM,OAAQkM,MAAO,MACpF,MAAMH,EAAIgF,EAAEA,EAAE6J,OAAS,GACvB,OAAO7O,GAAgB,SAAXA,EAAE/L,KAAkB+L,EAAEG,OAAS2E,EAAIE,EAAEkX,KAAK,CAAEjoB,KAAM,OAAQkM,MAAO2E,IAAME,CACrF,CAuFA,SAAS+e,GAAG3uB,GAEV,OADUA,EAAEo1D,QACAp1D,EAAE6C,SAAS4W,OAAS,CAClC,CAkGA,SAASsb,GAAG/0B,GACV,MAAMuP,EAAIoqB,OAAO35B,GAAI6K,EAAI,YACzB,IAAI6E,EAAI7E,EAAEuuB,KAAK7pB,GAAIK,EAAI,EACvB,MAAMvN,EAAI,GACV,KAAOqN,GACLrN,EAAEykB,KACAhL,GAAGvM,EAAE+W,MAAM1W,EAAGF,EAAE2pB,OAAQzpB,EAAI,GAAG,GAC/BF,EAAE,IACDE,EAAIF,EAAE2pB,MAAQ3pB,EAAE,GAAG+J,OAAQ/J,EAAI7E,EAAEuuB,KAAK7pB,GAC3C,OAAOlN,EAAEykB,KAAKhL,GAAGvM,EAAE+W,MAAM1W,GAAIA,EAAI,GAAG,IAAMvN,EAAEyb,KAAK,GACnD,CACA,SAAShC,GAAG9b,EAAGuP,EAAG1E,GAChB,IAAI6E,EAAI,EAAGE,EAAI5P,EAAEyZ,OACjB,GAAIlK,EAAG,CACL,IAAIlN,EAAIrC,EAAE60D,YAAYnlD,GACtB,KAhBO,IAgBArN,GAhBQ,KAgBIA,GACjBqN,IAAKrN,EAAIrC,EAAE60D,YAAYnlD,EAC3B,CACA,GAAI7E,EAAG,CACL,IAAIxI,EAAIrC,EAAE60D,YAAYjlD,EAAI,GAC1B,KArBO,IAqBAvN,GArBQ,KAqBIA,GACjBuN,IAAKvN,EAAIrC,EAAE60D,YAAYjlD,EAAI,EAC/B,CACA,OAAOA,EAAIF,EAAI1P,EAAEsmB,MAAM5W,EAAGE,GAAK,EACjC,CAcA,MAAMimD,GAAK,CACTC,WA/TF,SAAY91D,EAAGuP,GACb,MAAM1E,EAAI,CACRhM,KAAM,UACNikB,QAAS,aACTgd,WAAY,CAAA,EACZj9B,SAAU7C,EAAE6uC,KAAK7uC,EAAEgZ,IAAIzJ,IAAI,IAE7B,OAAOvP,EAAE+1D,MAAMxmD,EAAG1E,GAAI7K,EAAEg2D,UAAUzmD,EAAG1E,EACvC,EAwTEorD,MAvTF,SAAYj2D,EAAGuP,GACb,MAAM1E,EAAI,CAAEhM,KAAM,UAAWikB,QAAS,KAAMgd,WAAY,CAAA,EAAIj9B,SAAU,IACtE,OAAO7C,EAAE+1D,MAAMxmD,EAAG1E,GAAI,CAAC7K,EAAEg2D,UAAUzmD,EAAG1E,GAAI,CAAEhM,KAAM,OAAQkM,MAAO,MAEnE,EAoTE4kC,KAnTF,SAAY3vC,EAAGuP,GACb,MAAM1E,EAAI0E,EAAExE,MAAQwE,EAAExE,MAAQ,KAC5B,GAAI2E,EAAI,CAAA,EACVH,EAAEmW,OAAShW,EAAEK,UAAY,CAAC,YAAcR,EAAEmW,OAC1C,IAAI9V,EAAI,CACN/Q,KAAM,UACNikB,QAAS,OACTgd,WAAYpwB,EACZ7M,SAAU,CAAC,CAAEhE,KAAM,OAAQkM,MAAOF,KAEpC,OAAO0E,EAAEilD,OAAS5kD,EAAEgJ,KAAO,CAAE47C,KAAMjlD,EAAEilD,OAASx0D,EAAE+1D,MAAMxmD,EAAGK,GAAIA,EAAI5P,EAAEg2D,UAAUzmD,EAAGK,GAAIA,EAAI,CAAE/Q,KAAM,UAAWikB,QAAS,MAAOgd,WAAY,CAAA,EAAIj9B,SAAU,CAAC+M,IAAM5P,EAAE+1D,MAAMxmD,EAAGK,GAAIA,CAC7K,EAySE6N,OAxSF,SAAYzd,EAAGuP,GACb,MAAM1E,EAAI,CACRhM,KAAM,UACNikB,QAAS,MACTgd,WAAY,CAAA,EACZj9B,SAAU7C,EAAEgZ,IAAIzJ,IAElB,OAAOvP,EAAE+1D,MAAMxmD,EAAG1E,GAAI7K,EAAEg2D,UAAUzmD,EAAG1E,EACvC,EAiSE4mD,SAhSF,SAAYzxD,EAAGuP,GACb,MAAM1E,EAAI,CACRhM,KAAM,UACNikB,QAAS,KACTgd,WAAY,CAAA,EACZj9B,SAAU7C,EAAEgZ,IAAIzJ,IAElB,OAAOvP,EAAE+1D,MAAMxmD,EAAG1E,GAAI7K,EAAEg2D,UAAUzmD,EAAG1E,EACvC,EAyREqrD,kBAxRF,SAAYl2D,EAAGuP,GACb,MAAM1E,EAAsC,iBAA3B7K,EAAEye,QAAQ03C,cAA4Bn2D,EAAEye,QAAQ03C,cAAgB,gBAAiBzmD,EAAIiqB,OAAOpqB,EAAEmlD,YAAY93C,cAAehN,EAAI/O,GAAG6O,EAAEqT,eAAgB1gB,EAAIrC,EAAEo2D,cAAchS,QAAQ10C,GAC/L,IAAI9E,EAAG6E,EAAIzP,EAAEq2D,eAAexvC,IAAInX,QAC1B,IAAND,GAAgBA,EAAI,EAAGzP,EAAEo2D,cAActvC,KAAKpX,GAAI9E,EAAI5K,EAAEo2D,cAAc38C,QAAU7O,EAAIvI,EAAI,EAAGoN,GAAK,EAAGzP,EAAEq2D,eAAezvC,IAAIlX,EAAGD,GACzH,MAAMD,EAAI,CACR3Q,KAAM,UACNikB,QAAS,IACTgd,WAAY,CACVlI,KAAM,IAAM/sB,EAAI,MAAQ+E,EACxB8Q,GAAI7V,EAAI,SAAW+E,GAAKH,EAAI,EAAI,IAAMA,EAAI,IAC1C6mD,iBAAiB,EACjBj1B,gBAAiB,CAAC,mBAEpBx+B,SAAU,CAAC,CAAEhE,KAAM,OAAQkM,MAAO4uB,OAAO/uB,MAE3C5K,EAAE+1D,MAAMxmD,EAAGC,GACX,MAAMK,EAAI,CACRhR,KAAM,UACNikB,QAAS,MACTgd,WAAY,CAAA,EACZj9B,SAAU,CAAC2M,IAEb,OAAOxP,EAAE+1D,MAAMxmD,EAAGM,GAAI7P,EAAEg2D,UAAUzmD,EAAGM,EACvC,EAkQE0mD,QAjQF,SAAYv2D,EAAGuP,GACb,MAAM1E,EAAI,CACRhM,KAAM,UACNikB,QAAS,IAAMvT,EAAEolD,MACjB70B,WAAY,CAAA,EACZj9B,SAAU7C,EAAEgZ,IAAIzJ,IAElB,OAAOvP,EAAE+1D,MAAMxmD,EAAG1E,GAAI7K,EAAEg2D,UAAUzmD,EAAG1E,EACvC,EA0PE2rD,KAzPF,SAAYx2D,EAAGuP,GACb,GAAIvP,EAAEye,QAAQg4C,mBAAoB,CAChC,MAAM5rD,EAAI,CAAEhM,KAAM,MAAOkM,MAAOwE,EAAExE,OAClC,OAAO/K,EAAE+1D,MAAMxmD,EAAG1E,GAAI7K,EAAEg2D,UAAUzmD,EAAG1E,EACvC,CACF,EAqPE6rD,eA1OF,SAAY12D,EAAGuP,GACb,MAAM1E,EAAI8uB,OAAOpqB,EAAEmlD,YAAY93C,cAAelN,EAAI1P,EAAE22D,eAAe9vC,IAAIhc,GACvE,IAAK6E,EACH,OAAOgf,GAAG1uB,EAAGuP,GACf,MAAMK,EAAI,CAAE6d,IAAK5sB,GAAG6O,EAAEg1C,KAAO,IAAKh3B,IAAKne,EAAEme,KAC7B,OAAZhe,EAAEtN,YAA8B,IAAZsN,EAAEtN,QAAqBwN,EAAExN,MAAQsN,EAAEtN,OACvD,MAAMC,EAAI,CAAExD,KAAM,UAAWikB,QAAS,MAAOgd,WAAYlwB,EAAG/M,SAAU,IACtE,OAAO7C,EAAE+1D,MAAMxmD,EAAGlN,GAAIrC,EAAEg2D,UAAUzmD,EAAGlN,EACvC,EAmOE8vD,MAlOF,SAAYnyD,EAAGuP,GACb,MAAM1E,EAAI,CAAE4iB,IAAK5sB,GAAG0O,EAAEm1C,MACZ,OAAVn1C,EAAEme,UAA0B,IAAVne,EAAEme,MAAmB7iB,EAAE6iB,IAAMne,EAAEme,KAAkB,OAAZne,EAAEnN,YAA8B,IAAZmN,EAAEnN,QAAqByI,EAAEzI,MAAQmN,EAAEnN,OAC9G,MAAMsN,EAAI,CAAE7Q,KAAM,UAAWikB,QAAS,MAAOgd,WAAYj1B,EAAGhI,SAAU,IACtE,OAAO7C,EAAE+1D,MAAMxmD,EAAGG,GAAI1P,EAAEg2D,UAAUzmD,EAAGG,EACvC,EA8NEknD,WA7NF,SAAY52D,EAAGuP,GACb,MAAM1E,EAAI,CAAEhM,KAAM,OAAQkM,MAAOwE,EAAExE,MAAMqV,QAAQ,YAAa,MAC9DpgB,EAAE+1D,MAAMxmD,EAAG1E,GACX,MAAM6E,EAAI,CACR7Q,KAAM,UACNikB,QAAS,OACTgd,WAAY,CAAA,EACZj9B,SAAU,CAACgI,IAEb,OAAO7K,EAAE+1D,MAAMxmD,EAAGG,GAAI1P,EAAEg2D,UAAUzmD,EAAGG,EACvC,EAoNEmnD,cAnNF,SAAY72D,EAAGuP,GACb,MAAM1E,EAAI8uB,OAAOpqB,EAAEmlD,YAAY93C,cAAelN,EAAI1P,EAAE22D,eAAe9vC,IAAIhc,GACvE,IAAK6E,EACH,OAAOgf,GAAG1uB,EAAGuP,GACf,MAAMK,EAAI,CAAEgoB,KAAM/2B,GAAG6O,EAAEg1C,KAAO,KAClB,OAAZh1C,EAAEtN,YAA8B,IAAZsN,EAAEtN,QAAqBwN,EAAExN,MAAQsN,EAAEtN,OACvD,MAAMC,EAAI,CACRxD,KAAM,UACNikB,QAAS,IACTgd,WAAYlwB,EACZ/M,SAAU7C,EAAEgZ,IAAIzJ,IAElB,OAAOvP,EAAE+1D,MAAMxmD,EAAGlN,GAAIrC,EAAEg2D,UAAUzmD,EAAGlN,EACvC,EAuMEguC,KAtMF,SAAYrwC,EAAGuP,GACb,MAAM1E,EAAI,CAAE+sB,KAAM/2B,GAAG0O,EAAEm1C,MACX,OAAZn1C,EAAEnN,YAA8B,IAAZmN,EAAEnN,QAAqByI,EAAEzI,MAAQmN,EAAEnN,OACvD,MAAMsN,EAAI,CACR7Q,KAAM,UACNikB,QAAS,IACTgd,WAAYj1B,EACZhI,SAAU7C,EAAEgZ,IAAIzJ,IAElB,OAAOvP,EAAE+1D,MAAMxmD,EAAGG,GAAI1P,EAAEg2D,UAAUzmD,EAAGG,EACvC,EA6LE2iD,SA5LF,SAAYryD,EAAGuP,EAAG1E,GAChB,MAAM6E,EAAI1P,EAAEgZ,IAAIzJ,GAAIK,EAAI/E,EAuB1B,SAAY7K,GACV,IAAIuP,GAAI,EACR,GAAe,SAAXvP,EAAEnB,KAAiB,CACrB0Q,EAAIvP,EAAEo1D,SAAU,EAChB,MAAMvqD,EAAI7K,EAAE6C,SACZ,IAAI6M,GAAI,EACR,MAAQH,KAAOG,EAAI7E,EAAE4O,QACnBlK,EAAIof,GAAG9jB,EAAE6E,GACb,CACA,OAAOH,CACT,CAjC8BglB,CAAG1pB,GAAK8jB,GAAGpf,GAAIlN,EAAI,CAAA,EAAIuI,EAAI,GACvD,GAAwB,kBAAb2E,EAAEw1B,QAAsB,CACjC,MAAMp1B,EAAID,EAAE,GACZ,IAAIsC,EACJrC,GAAgB,YAAXA,EAAE9Q,MAAoC,MAAd8Q,EAAEmT,QAAkB9Q,EAAIrC,GAAKqC,EAAI,CAAEnT,KAAM,UAAWikB,QAAS,IAAKgd,WAAY,CAAA,EAAIj9B,SAAU,IAAM6M,EAAE2W,QAAQrU,IAAKA,EAAEnP,SAAS4W,OAAS,GAAKzH,EAAEnP,SAASwjB,QAAQ,CAAExnB,KAAM,OAAQkM,MAAO,MAAQiH,EAAEnP,SAASwjB,QAAQ,CAC1OxnB,KAAM,UACNikB,QAAS,QACTgd,WAAY,CAAEjhC,KAAM,WAAYkmC,QAASx1B,EAAEw1B,QAAS5hC,UAAU,GAC9DN,SAAU,KACRR,EAAE0N,UAAY,CAAC,iBACrB,CACA,IAAIN,GAAI,EACR,OAASA,EAAIC,EAAE+J,QAAU,CACvB,MAAM9J,EAAID,EAAED,IACXG,GAAW,IAANH,GAAsB,YAAXE,EAAE9Q,MAAoC,MAAd8Q,EAAEmT,UAAoBlY,EAAEkc,KAAK,CAAEjoB,KAAM,OAAQkM,MAAO,OAChF,YAAX4E,EAAE9Q,MAAoC,MAAd8Q,EAAEmT,SAAoBlT,EAA4BhF,EAAEkc,KAAKnX,GAA/B/E,EAAEkc,QAAQnX,EAAE9M,SAClE,CACA,MAAM2M,EAAIE,EAAEA,EAAE+J,OAAS,GACvBjK,IAAMI,GAAgB,YAAXJ,EAAE3Q,MAAoC,MAAd2Q,EAAEsT,UAAoBlY,EAAEkc,KAAK,CAAEjoB,KAAM,OAAQkM,MAAO,OAEvF,MAAM8E,EAAI,CAAEhR,KAAM,UAAWikB,QAAS,KAAMgd,WAAYz9B,EAAGQ,SAAU+H,GACrE,OAAO5K,EAAE+1D,MAAMxmD,EAAGM,GAAI7P,EAAEg2D,UAAUzmD,EAAGM,EACvC,EAsKEtI,KAtJF,SAAYvH,EAAGuP,GACb,MAAM1E,EAAI,CAAA,EAAI6E,EAAI1P,EAAEgZ,IAAIzJ,GACxB,IAAIK,GAAI,EACR,IAAuB,iBAAXL,EAAE4V,OAAiC,IAAZ5V,EAAE4V,QAAgBta,EAAEsa,MAAQ5V,EAAE4V,SAAUvV,EAAIF,EAAE+J,QAAU,CACzF,MAAM7O,EAAI8E,EAAEE,GACZ,GAAe,YAAXhF,EAAE/L,MAAoC,OAAd+L,EAAEkY,SAAoBlY,EAAEk1B,YAAcliB,MAAMK,QAAQrT,EAAEk1B,WAAW/vB,YAAcnF,EAAEk1B,WAAW/vB,UAAU2P,SAAS,kBAAmB,CAC5J7U,EAAEkF,UAAY,CAAC,sBACf,KACF,CACF,CACA,MAAM1N,EAAI,CACRxD,KAAM,UACNikB,QAASvT,EAAE4lD,QAAU,KAAO,KAC5Br1B,WAAYj1B,EACZhI,SAAU7C,EAAE6uC,KAAKn/B,GAAG,IAEtB,OAAO1P,EAAE+1D,MAAMxmD,EAAGlN,GAAIrC,EAAEg2D,UAAUzmD,EAAGlN,EACvC,EAsIEswD,UArIF,SAAY3yD,EAAGuP,GACb,MAAM1E,EAAI,CACRhM,KAAM,UACNikB,QAAS,IACTgd,WAAY,CAAA,EACZj9B,SAAU7C,EAAEgZ,IAAIzJ,IAElB,OAAOvP,EAAE+1D,MAAMxmD,EAAG1E,GAAI7K,EAAEg2D,UAAUzmD,EAAG1E,EACvC,EA+HEisD,KA9HF,SAAY92D,EAAGuP,GACb,MAAM1E,EAAI,CAAEhM,KAAM,OAAQgE,SAAU7C,EAAE6uC,KAAK7uC,EAAEgZ,IAAIzJ,KACjD,OAAOvP,EAAE+1D,MAAMxmD,EAAG1E,GAAI7K,EAAEg2D,UAAUzmD,EAAG1E,EACvC,EA4HEooD,OA3HF,SAAYjzD,EAAGuP,GACb,MAAM1E,EAAI,CACRhM,KAAM,UACNikB,QAAS,SACTgd,WAAY,CAAA,EACZj9B,SAAU7C,EAAEgZ,IAAIzJ,IAElB,OAAOvP,EAAE+1D,MAAMxmD,EAAG1E,GAAI7K,EAAEg2D,UAAUzmD,EAAG1E,EACvC,EAoHE8rB,MAnHF,SAAY32B,EAAGuP,GACb,MAAM1E,EAAI7K,EAAEgZ,IAAIzJ,GAAIG,EAAI7E,EAAEgiD,QAASj9C,EAAI,GACvC,GAAIF,EAAG,CACL,MAAM9E,EAAI,CACR/L,KAAM,UACNikB,QAAS,QACTgd,WAAY,CAAA,EACZj9B,SAAU7C,EAAE6uC,KAAK,CAACn/B,IAAI,IAExB1P,EAAE+1D,MAAMxmD,EAAE1M,SAAS,GAAI+H,GAAIgF,EAAEkX,KAAKlc,EACpC,CACA,GAAIC,EAAE4O,OAAS,EAAG,CAChB,MAAM7O,EAAI,CACR/L,KAAM,UACNikB,QAAS,QACTgd,WAAY,CAAA,EACZj9B,SAAU7C,EAAE6uC,KAAKhkC,GAAG,IACnB4E,EAAIk0C,GAAGp0C,EAAE1M,SAAS,IAAK2M,EAAIuW,GAAGxW,EAAE1M,SAAS0M,EAAE1M,SAAS4W,OAAS,IAChEhK,GAAKD,IAAM5E,EAAE+lB,SAAW,CAAExL,MAAO1V,EAAGyqC,IAAK1qC,IAAMI,EAAEkX,KAAKlc,EACxD,CACA,MAAMvI,EAAI,CACRxD,KAAM,UACNikB,QAAS,QACTgd,WAAY,CAAA,EACZj9B,SAAU7C,EAAE6uC,KAAKj/B,GAAG,IAEtB,OAAO5P,EAAE+1D,MAAMxmD,EAAGlN,GAAIrC,EAAEg2D,UAAUzmD,EAAGlN,EACvC,EAyFE00D,UAtEF,SAAY/2D,EAAGuP,GACb,MAAM1E,EAAI,CACRhM,KAAM,UACNikB,QAAS,KAETgd,WAAY,CAAA,EACZj9B,SAAU7C,EAAEgZ,IAAIzJ,IAElB,OAAOvP,EAAE+1D,MAAMxmD,EAAG1E,GAAI7K,EAAEg2D,UAAUzmD,EAAG1E,EACvC,EA8DEmsD,SAzFF,SAAYh3D,EAAGuP,EAAG1E,GAChB,MAAM6E,EAAI7E,EAAIA,EAAEhI,cAAW,EAAQR,EAA+B,KAA1BqN,EAAIA,EAAE00C,QAAQ70C,GAAK,GAAW,KAAO,KAAM3E,EAAIC,GAAgB,UAAXA,EAAEhM,KAAmBgM,EAAEkkC,WAAQ,EAAQt/B,EAAI7E,EAAIA,EAAE6O,OAASlK,EAAE1M,SAAS4W,OACjK,IAAIjK,GAAI,EACR,MAAMK,EAAI,GACV,OAASL,EAAIC,GAAK,CAChB,MAAMuC,EAAIzC,EAAE1M,SAAS2M,GAAIrP,EAAI,CAAA,EAAIiT,EAAIxI,EAAIA,EAAE4E,QAAK,EAChD4D,IAAMjT,EAAE4uC,MAAQ37B,GAChB,IAAIH,EAAI,CAAEpU,KAAM,UAAWikB,QAASzgB,EAAGy9B,WAAY3/B,EAAG0C,SAAU,IAChEmP,IAAMiB,EAAEpQ,SAAW7C,EAAEgZ,IAAIhH,GAAIhS,EAAE+1D,MAAM/jD,EAAGiB,GAAIA,EAAIjT,EAAEg2D,UAAUhkD,EAAGiB,IAAKpD,EAAEiX,KAAK7T,EAC7E,CACA,MAAMtD,EAAI,CACR9Q,KAAM,UACNikB,QAAS,KACTgd,WAAY,CAAA,EACZj9B,SAAU7C,EAAE6uC,KAAKh/B,GAAG,IAEtB,OAAO7P,EAAE+1D,MAAMxmD,EAAGI,GAAI3P,EAAEg2D,UAAUzmD,EAAGI,EACvC,EAyEE3N,KApCF,SAAYhC,EAAGuP,GACb,MAAM1E,EAAI,CAAEhM,KAAM,OAAQkM,MAAOgqB,GAAG4E,OAAOpqB,EAAExE,SAC7C,OAAO/K,EAAE+1D,MAAMxmD,EAAG1E,GAAI7K,EAAEg2D,UAAUzmD,EAAG1E,EACvC,EAkCEqoD,cAjCF,SAAYlzD,EAAGuP,GACb,MAAM1E,EAAI,CACRhM,KAAM,UACNikB,QAAS,KACTgd,WAAY,CAAA,EACZj9B,SAAU,IAEZ,OAAO7C,EAAE+1D,MAAMxmD,EAAG1E,GAAI7K,EAAEg2D,UAAUzmD,EAAG1E,EACvC,EA0BEosD,KAAMh2D,GACNi2D,KAAMj2D,GACNmwD,WAAYnwD,GACZk2D,mBAAoBl2D,IAEtB,SAASA,KACT,CACA,MAAuFm2D,GAAoB,iBAARliC,KAAmBA,KAAOmiC,WAyD1Hx6C,GAAM7c,GAzDqI,EAACA,EAAGuP,KAChJ,MAAM1E,EAAI,CAAC+E,EAAGvN,KAAOrC,EAAE4mB,IAAIvkB,EAAGuN,GAAIA,GAAIF,EAAKE,IACzC,GAAI5P,EAAEwd,IAAI5N,GACR,OAAO5P,EAAE6mB,IAAIjX,GACf,MAAOvN,EAAGuI,GAAK2E,EAAEK,GACjB,OAAQvN,GACN,KANc,EAOd,KAPK,EAQH,OAAOwI,EAAED,EAAGgF,GACd,KATsB,EASb,CACP,MAAMH,EAAI5E,EAAE,GAAI+E,GAChB,IAAK,MAAMJ,KAAK5E,EACd6E,EAAEqX,KAAKpX,EAAEF,IACX,OAAOC,CACT,CACA,KAf8B,EAerB,CACP,MAAMA,EAAI5E,EAAE,CAAA,EAAI+E,GAChB,IAAK,MAAOJ,EAAGK,KAAMjF,EACnB6E,EAAEC,EAAEF,IAAME,EAAEG,GACd,OAAOJ,CACT,CACA,KArBsC,EAsBpC,OAAO5E,EAAE,IAAI+V,KAAKhW,GAAIgF,GACxB,KAvB8C,EAuBrC,CACP,MAAQsiB,OAAQziB,EAAG6nD,MAAO9nD,GAAM5E,EAChC,OAAOC,EAAE,IAAIinB,OAAOriB,EAAGD,GAAII,EAC7B,CACA,KA3BsD,EA2B7C,CACP,MAAMH,EAAI5E,EAAkB,IAAI6F,IAAOd,GACvC,IAAK,MAAOJ,EAAGK,KAAMjF,EACnB6E,EAAEmX,IAAIlX,EAAEF,GAAIE,EAAEG,IAChB,OAAOJ,CACT,CACA,KAjC8D,EAiCrD,CACP,MAAMA,EAAI5E,EAAkB,IAAIsS,IAAOvN,GACvC,IAAK,MAAMJ,KAAK5E,EACd6E,EAAEkO,IAAIjO,EAAEF,IACV,OAAOC,CACT,CACA,KAvCsE,EAuC7D,CACP,MAAQyT,KAAMzT,EAAGsM,QAASvM,GAAM5E,EAChC,OAAOC,EAAE,IAAIusD,GAAG3nD,GAAGD,GAAII,EACzB,CACA,KA3C8E,EA4C5E,OAAO/E,EAAE0sD,OAAO3sD,GAAIgF,GACtB,IAAK,SACH,OAAO/E,EAAE2U,OAAO+3C,OAAO3sD,IAAKgF,GAC9B,IAAK,cACH,OAAO/E,EAAE,IAAIwV,WAAWzV,GAAGoa,OAAQpa,GACrC,IAAK,WAAY,CACf,MAAQoa,OAAQvV,GAAM,IAAI4Q,WAAWzV,GACrC,OAAOC,EAAE,IAAI2sD,SAAS/nD,GAAI7E,EAC5B,EAEF,OAAOC,EAAE,IAAIusD,GAAG/0D,GAAGuI,GAAIgF,IAEzB,OAAOF,GACM+nD,CAAmB,IAAI/mD,IAAO1Q,EAA9By3D,CAAiC,GAAIpkC,GAAK,IAAM/S,SAAUgT,IAAO,CAAA,GAAM7T,KAAMqV,IAAOtV,OAAQhf,GAAMR,IAC/G,MAAMuP,SAAWvP,EACjB,GAAU,WAANuP,IAAmBvP,EACrB,MAAO,CA5DS,EA4DJuP,GACd,MAAM1E,EAAIyoB,GAAG9P,KAAKxjB,GAAGsmB,MAAM,MAC3B,OAAQzb,GACN,IAAK,QACH,MAAO,CAhEe,EAgEVwoB,IACd,IAAK,SACH,MAAO,CAlEuB,EAkElBA,IACd,IAAK,OACH,MAAO,CApE+B,EAoE1BA,IACd,IAAK,SACH,MAAO,CAtEuC,EAsElCA,IACd,IAAK,MACH,MAAO,CAxE+C,EAwE1CA,IACd,IAAK,MACH,MAAO,CA1EuD,EA0ElDA,IACd,IAAK,WACH,MAAO,CA5Ee,EA4EVxoB,GAEhB,OAAOA,EAAE6U,SAAS,SAAW,CA9EH,EA8EQ7U,GAAKA,EAAE6U,SAAS,SAAW,CA9Ea,EA8ER7U,GAAK,CA9ErC,EA8E0CA,IAC3EF,GAAK,EAAE3K,EAAGuP,KA/EO,IA+EAvP,IAAmB,aAANuP,GAA0B,WAANA,GA4ElDqQ,GAAK,CAAC5f,GAAKoxB,KAAM7hB,EAAGmoD,MAAO7sD,GAAM,MAClC,MAAM6E,EAAI,GACV,MA9EyE,EAAC1P,EAAGuP,EAAG1E,EAAG6E,KACnF,MAAME,EAAI,CAAChF,EAAG6E,KACZ,MAAMD,EAAIE,EAAEoX,KAAKlc,GAAK,EACtB,OAAOC,EAAE+b,IAAInX,EAAGD,GAAIA,GACnBnN,EAAKuI,IACN,GAAIC,EAAE2S,IAAI5S,GACR,OAAOC,EAAEgc,IAAIjc,GACf,IAAK6E,EAAGD,GAAKhP,GAAGoK,GAChB,OAAQ6E,GACN,KAxFc,EAwFL,CACP,IAAIE,EAAI/E,EACR,OAAQ4E,GACN,IAAK,SACHC,EA5FwE,EA4FhEE,EAAI/E,EAAE0V,WACd,MACF,IAAK,WACL,IAAK,SACH,GAAItgB,EACF,MAAM,IAAIo6B,UAAU,uBAAyB5qB,GAC/CG,EAAI,KACJ,MACF,IAAK,YACH,OAAOC,EAAE,EArGV,GAqGgBhF,GAEnB,OAAOgF,EAAE,CAACH,EAAGE,GAAI/E,EACnB,CACA,KAzGsB,EAyGb,CACP,GAAI4E,EAAG,CACL,IAAIrP,EAAIyK,EACR,MAAa,aAAN4E,EAAmBrP,EAAI,IAAIkgB,WAAWzV,EAAEoa,QAAgB,gBAANxV,IAAwBrP,EAAI,IAAIkgB,WAAWzV,IAAKgF,EAAE,CAACJ,EAAG,IAAIrP,IAAKyK,EAC1H,CACA,MAAM+E,EAAI,GAAIqC,EAAIpC,EAAE,CAACH,EAAGE,GAAI/E,GAC5B,IAAK,MAAMzK,KAAKyK,EACd+E,EAAEmX,KAAKzkB,EAAElC,IACX,OAAO6R,CACT,CACA,KAnH8B,EAmHrB,CACP,GAAIxC,EACF,OAAQA,GACN,IAAK,SACH,OAAOI,EAAE,CAACJ,EAAG5E,EAAE0V,YAAa1V,GAC9B,IAAK,UACL,IAAK,SACL,IAAK,SACH,OAAOgF,EAAE,CAACJ,EAAG5E,EAAE+sD,WAAY/sD,GAEjC,GAAI2E,GAAK,WAAY3E,EACnB,OAAOvI,EAAEuI,EAAEgtD,UACb,MAAMjoD,EAAI,GAAIqC,EAAIpC,EAAE,CAACH,EAAGE,GAAI/E,GAC5B,IAAK,MAAMzK,KAAK20B,GAAGlqB,IAChB5K,IAAM2K,GAAGnK,GAAGoK,EAAEzK,OAASwP,EAAEmX,KAAK,CAACzkB,EAAElC,GAAIkC,EAAEuI,EAAEzK,MAC5C,OAAO6R,CACT,CACA,KApIsC,EAqIpC,OAAOpC,EAAE,CAACH,EAAG7E,EAAEitD,eAAgBjtD,GACjC,KAtI8C,EAsIrC,CACP,MAAQsnB,OAAQviB,EAAG2nD,MAAOtlD,GAAMpH,EAChC,OAAOgF,EAAE,CAACH,EAAG,CAAEyiB,OAAQviB,EAAG2nD,MAAOtlD,IAAMpH,EACzC,CACA,KA1IsD,EA0I7C,CACP,MAAM+E,EAAI,GAAIqC,EAAIpC,EAAE,CAACH,EAAGE,GAAI/E,GAC5B,IAAK,MAAOzK,EAAGiT,KAAMxI,GAClB5K,IAAO2K,GAAGnK,GAAGL,MAAOwK,GAAGnK,GAAG4S,MAASzD,EAAEmX,KAAK,CAACzkB,EAAElC,GAAIkC,EAAE+Q,KACtD,OAAOpB,CACT,CACA,KAhJ8D,EAgJrD,CACP,MAAMrC,EAAI,GAAIqC,EAAIpC,EAAE,CAACH,EAAGE,GAAI/E,GAC5B,IAAK,MAAMzK,KAAKyK,GACb5K,IAAM2K,GAAGnK,GAAGL,MAAQwP,EAAEmX,KAAKzkB,EAAElC,IAChC,OAAO6R,CACT,EAEF,MAAQ+J,QAASlM,GAAMjF,EACvB,OAAOgF,EAAE,CAACH,EAAG,CAAEyT,KAAM1T,EAAGuM,QAASlM,IAAMjF,IAEzC,OAAOvI,GAGAy1D,GAAKvoD,GAAK1E,KAAM0E,EAAmB,IAAImB,IAAOhB,EAA9CooD,CAAiD93D,GAAI0P,GAC3DqoD,GAA+B,mBAAnB71C,gBAA6B,CAEzCliB,EAAGuP,IAAMA,IAAM,SAAUA,GAAK,UAAWA,GAAKsN,GAAG+C,GAAG5f,EAAGuP,IAAM2S,gBAAgBliB,GAC5E,CAACA,EAAGuP,IAAMsN,GAAG+C,GAAG5f,EAAGuP,IACvB,SAASslB,GAAG70B,EAAGuP,GACb,MAAM1E,EAAI,CAAC,CAAEhM,KAAM,OAAQkM,MAAO,MAClC,OAAOwE,EAAI,GAAK1E,EAAEic,KAAK,CACrBjoB,KAAM,UACNikB,QAAS,MACTgd,WAAY,CAAA,EACZj9B,SAAU,CAAC,CAAEhE,KAAM,OAAQkM,MAAO4uB,OAAOpqB,OACvC1E,CACN,CACA,SAASmtD,GAAGh4D,EAAGuP,GACb,MAAO,sBAAwBvP,EAAI,IAAMuP,EAAI,EAAI,IAAMA,EAAI,GAC7D,CAwEA,MAAM0oD,GAAE,SAeGj4D,GACP,GAAS,MAALA,EACF,OAAOk4D,GACT,GAAgB,mBAALl4D,EACT,OAAOm4D,GAAGn4D,GACZ,GAAgB,iBAALA,EACT,OAAO4d,MAAMK,QAAQje,GAM3B,SAAYA,GACV,MAAMuP,EAAI,GACV,IAAI1E,GAAI,EACR,OAASA,EAAI7K,EAAEyZ,QACblK,EAAE1E,GAAKotD,GAAGj4D,EAAE6K,IACd,OAAOstD,GAAGzoD,GACV,SAASA,KAAKE,GACZ,IAAIvN,GAAI,EACR,OAASA,EAAIkN,EAAEkK,QACb,GAAIlK,EAAElN,GAAGy2B,MAAMC,KAAMnpB,GAAI,OAAO,EAClC,OAAO,CACT,CACF,CAlBgCwoD,CAAGp4D,GAmBnC,SAAYA,GACV,MAAMuP,EAAC,EAIP,OAAO4oD,GAAGttD,GACV,SAASA,EAAE6E,GACT,MAAME,EAAC,EAKP,IAAIvN,EACJ,IAAKA,KAAKrC,EACR,GAAI4P,EAAEvN,KAAOkN,EAAElN,GAAI,OAAO,EAC5B,OAAO,CACT,CACF,CApCwCg2D,CAAGr4D,GACvC,GAAgB,iBAALA,EACT,OAmCN,SAAYA,GACV,OAAOm4D,GAAG5oD,GACV,SAASA,EAAE1E,GACT,OAAOA,GAAKA,EAAEhM,OAASmB,CACzB,CACF,CAxCas4D,CAAGt4D,GACZ,MAAM,IAAIuf,MAAM,+CAEpB,EAsCA,SAAS44C,GAAGn4D,GACV,OACA,SAAW6K,EAAG6E,EAAGE,GACf,SAWJ,SAAY5P,GACV,OAAa,OAANA,GAA0B,iBAALA,GAAiB,SAAUA,CACzD,CAbcu4D,CAAG1tD,KAAM7K,EAAEwjB,KACnBuV,KACAluB,EACY,iBAAL6E,EAAgBA,OAAI,EAC3BE,QAAK,GAET,CACF,CACA,SAASsoD,KACP,OAAO,CACT,CAIA,MAAMM,GAAK,GAAIC,IAAK,EAAI34C,IAAK,EAC7B,SAAS44C,GAAG14D,EAAGuP,EAAG1E,EAAG6E,GACnB,IAAIE,EACQ,mBAALL,GAA+B,mBAAL1E,GAAmB6E,EAAI7E,EAAGA,EAAI0E,GAAKK,EAAIL,EACxE,MAAMlN,EAAI41D,GAAGroD,GAAIhF,EAAI8E,GAAI,EAAK,GAE9B,SAASD,EAAED,EAAGK,EAAGF,GACf,MAAMqC,EAEJxC,GAAiB,iBAALA,EAAgBA,EAAI,CAAA,EAElC,GAAqB,iBAAVwC,EAAEnT,KAAkB,CAC7B,MAAMuU,EAEgB,iBAAbpB,EAAE8Q,QAAsB9Q,EAAE8Q,QAEd,iBAAV9Q,EAAEkR,KAAmBlR,EAAEkR,UAAO,EAGzC1D,OAAO+Z,eAAep5B,EAAG,OAAQ,CAC/B4K,MAAO,SAAYyE,EAAE3Q,MAAQuU,EAAI,IAAMA,EAAI,IAAM,IAAO,KAE5D,CACA,OAAOjT,EACP,SAASA,IACP,IAAY8S,EAAG/C,EAAGnQ,EAAdqT,EAAIolD,GACR,KAAMjpD,GAAKlN,EAAEmN,EAAGK,EAAGF,EAAEA,EAAE8J,OAAS,SAAM,MAAarG,EAmBzD,SAAYpT,GACV,OAAO4d,MAAMK,QAAQje,GAAKA,EAAgB,iBAALA,EAAgB,CAACy4D,GAAIz4D,GAAU,MAALA,EAAYw4D,GAAK,CAACx4D,EACnF,CArB6D24D,CAAG9tD,EAAE2E,EAAGG,IAAKyD,EAAE,KAAO0M,IAC3E,OAAO1M,EACT,GAAI,aAAc5D,GAAKA,EAAE3M,SAAU,CACjC,MAAM2W,EAAC,EAIP,GAAIA,EAAE3W,UAjCwB,SAiCZuQ,EAAE,GAClB,IAAKlD,GAAKR,EAAI8J,EAAE3W,SAAS4W,QAAS,GAAM7O,EAAG7K,EAAI4P,EAAEq9C,OAAOxzC,GAAItJ,GAAI,GAAMA,EAAIsJ,EAAE3W,SAAS4W,QAAU,CAC7F,MAAM1G,EAAIyG,EAAE3W,SAASqN,GACrB,GAAI+C,EAAIxD,EAAEsD,EAAG7C,EAAGnQ,EAAR0P,GAAcwD,EAAE,KAAO6M,GAC7B,OAAO7M,EACT/C,EAAmB,iBAAR+C,EAAE,GAAiBA,EAAE,GAAK/C,EAAItF,CAC3C,CACJ,CACA,OAAOwI,CACT,CACF,CAtCA3D,CAAEzP,OAAG,EAAQ,GAAbyP,EAuCF,CAIA,SAASmpD,GAAG54D,EAAGuP,EAAG1E,EAAG6E,GACnB,IAAIE,EAAGvN,EAAGuI,EACE,mBAAL2E,GAAmBlN,OAAI,EAAQuI,EAAI2E,EAAGK,EAAI/E,IAAMxI,EAAIkN,EAAG3E,EAAIC,EAAG+E,EAAIF,GAAIgpD,GAAG14D,EAAGqC,EACnF,SAAWmN,EAAGK,GACZ,MAAMF,EAAIE,EAAEA,EAAE4J,OAAS,GAAIzH,EAAIrC,EAAIA,EAAE9M,SAASuhD,QAAQ50C,QAAK,EAC3D,OAAO5E,EAAE4E,EAAGwC,EAAGrC,EACjB,EAJyFC,EAK3F,CACA,MAAMipD,GAAK,CAAA,EAAGt1C,eAAgBu1C,GAAK,CAAA,EACnC,SAASC,GAAG/4D,EAAGuP,GACb,MAAM1E,EAAI0E,GAAKupD,GAAIppD,EAAoB,IAAIgB,IAAOd,EAAoB,IAAIc,IAAOrO,EAAoB,IAAIqO,IAAO9F,EAAI,IAAKirD,MAAOhrD,EAAEmuD,UAAYvpD,EAAI,CAChJuJ,IA+BF,SAAWrJ,GACT,MAAMqC,EAAI,GACV,GAAI,aAAcrC,EAAG,CACnB,MAAMxP,EAAIwP,EAAE9M,SACZ,IAAIuQ,GAAI,EACR,OAASA,EAAIjT,EAAEsZ,QAAU,CACvB,MAAMxG,EAAIxD,EAAEwpD,IAAI94D,EAAEiT,GAAIzD,GACtB,GAAIsD,EAAG,CACL,GAAIG,GAAuB,UAAlBjT,EAAEiT,EAAI,GAAGvU,QAAsB+e,MAAMK,QAAQhL,IAAiB,SAAXA,EAAEpU,OAAoBoU,EAAElI,MAAQiT,GAAG/K,EAAElI,SAAU6S,MAAMK,QAAQhL,IAAiB,YAAXA,EAAEpU,MAAqB,CACpJ,MAAMqR,EAAI+C,EAAEpQ,SAAS,GACrBqN,GAAgB,SAAXA,EAAErR,OAAoBqR,EAAEnF,MAAQiT,GAAG9N,EAAEnF,OAC5C,CACA6S,MAAMK,QAAQhL,GAAKjB,EAAE8U,QAAQ7T,GAAKjB,EAAE8U,KAAK7T,EAC3C,CACF,CACF,CACA,OAAOjB,CACT,EA/CEgkD,UAAWkD,GACXvC,eAAgBjnD,EAChBypD,aAAcvpD,EACdymD,eAAgBh0D,EAChB+zD,cAAe,GACf4C,SAAUpuD,EACVquD,IAWF,SAAWtpD,EAAGqC,GACZ,MAAM7R,EAAIwP,EAAE9Q,KAAMuU,EAAI3D,EAAEupD,SAAS74D,GACjC,GAAI04D,GAAGr1C,KAAK/T,EAAEupD,SAAU74D,IAAMiT,EAC5B,OAAOA,EAAE3D,EAAGE,EAAGqC,GACjB,GAAIvC,EAAEgP,QAAQ26C,aAAe3pD,EAAEgP,QAAQ26C,YAAY15C,SAASvf,GAAI,CAC9D,GAAI,aAAcwP,EAAG,CACnB,MAAQ9M,SAAUqN,KAAMnQ,GAAM4P,EAAG6J,EAAIu+C,GAAGh4D,GACxC,OAAOyZ,EAAE3W,SAAW4M,EAAEuJ,IAAIrJ,GAAI6J,CAChC,CACA,OAAOu+C,GAAGpoD,EACZ,CACA,OAAQF,EAAEgP,QAAQ46C,gBAAkBC,IAAI7pD,EAAGE,EAAGqC,EAChD,EAtBEyM,QAAS5T,EACTkrD,MAAOwD,GACP1qB,KAAM2qB,IAER,OAAOZ,GAAG54D,EAAG,SAAS2P,GACpB,GAAe,eAAXA,EAAE9Q,MAAoC,uBAAX8Q,EAAE9Q,KAA+B,CAC9D,MAAMmT,EAAe,eAAXrC,EAAE9Q,KAAwB6Q,EAAIE,EAAGzP,EAAIw5B,OAAOhqB,EAAE+kD,YAAY93C,cACpE5K,EAAEwL,IAAIrd,IAAM6R,EAAE4U,IAAIzmB,EAAGwP,EACvB,CACF,GAAIF,CAgCN,CACA,SAAS8pD,GAAGv5D,EAAGuP,GACbvP,EAAE2wB,WAAaphB,EAAEohB,SAv9HnB,SAAY3wB,GACV,MAAMuP,EAAIo0C,GAAG3jD,GAAI6K,EAAIkb,GAAG/lB,GACxB,GAAIuP,GAAK1E,EACP,MAAO,CAAEsa,MAAO5V,EAAG2qC,IAAKrvC,EAC5B,CAm9H8B4uD,CAAGz5D,GACjC,CACA,SAASk5D,GAAGl5D,EAAGuP,GACb,IAAI1E,EAAI0E,EACR,GAAIvP,GAAKA,EAAE4Y,KAAM,CACf,MAAMlJ,EAAI1P,EAAE4Y,KAAK8gD,MAAO9pD,EAAI5P,EAAE4Y,KAAK+gD,UAAWt3D,EAAIrC,EAAE4Y,KAAKghD,YACzD,GAAgB,iBAALlqD,EACT,GAAe,YAAX7E,EAAEhM,KACJgM,EAAEiY,QAAUpT,MACT,CAEH7E,EAAI,CAAEhM,KAAM,UAAWikB,QAASpT,EAAGowB,WAAY,CAAA,EAAIj9B,SADzC,aAAcgI,EAAIA,EAAEhI,SAAW,CAACgI,GAE5C,CACS,YAAXA,EAAEhM,MAAsBwD,GAAKmd,OAAOoZ,OAAO/tB,EAAEi1B,WAAYi4B,GAAG11D,IAAK,aAAcwI,GAAKA,EAAEhI,UAArB,MAAiC+M,IAA+B/E,EAAEhI,SAAW+M,EAChJ,CACA,OAAO/E,CACT,CACA,SAASyuD,GAAGt5D,EAAGuP,GACb,MAAM1E,EAAI0E,EAAEqJ,MAAQ,GAAIlJ,IAAI,UAAWH,IAAOspD,GAAGr1C,KAAK3Y,EAAG,gBAAkBguD,GAAGr1C,KAAK3Y,EAAG,aAAmD,CACvIhM,KAAM,UACNikB,QAAS,MACTgd,WAAY,CAAA,EACZj9B,SAAU7C,EAAEgZ,IAAIzJ,IAJoF,CAAE1Q,KAAM,OAAQkM,MAAOwE,EAAExE,OAM/H,OAAO/K,EAAE+1D,MAAMxmD,EAAGG,GAAI1P,EAAEg2D,UAAUzmD,EAAGG,EACvC,CACA,SAAS8pD,GAAGx5D,EAAGuP,GACb,MAAM1E,EAAI,GACV,IAAI6E,GAAI,EACR,IAAKH,GAAK1E,EAAEic,KAAK,CAAEjoB,KAAM,OAAQkM,MAAO,SAClC2E,EAAI1P,EAAEyZ,QACV/J,GAAK7E,EAAEic,KAAK,CAAEjoB,KAAM,OAAQkM,MAAO,OACjCF,EAAEic,KAAK9mB,EAAE0P,IACb,OAAOH,GAAKvP,EAAEyZ,OAAS,GAAK5O,EAAEic,KAAK,CAAEjoB,KAAM,OAAQkM,MAAO,OACtDF,CACN,CACA,SAASmT,GAAGhe,GACV,IAAIuP,EAAI,EAAG1E,EAAI7K,EAAE2kB,WAAWpV,GAC5B,KAAa,IAAN1E,GAAiB,KAANA,GAChB0E,IAAK1E,EAAI7K,EAAE2kB,WAAWpV,GACxB,OAAOvP,EAAEsmB,MAAM/W,EACjB,CACA,SAAS8O,GAAGre,EAAGuP,GACb,MAAM1E,EAAIkuD,GAAG/4D,EAAGuP,GAAIG,EAAI7E,EAAEouD,IAAIj5D,OAAG,GAAS4P,EAjT5C,SAAY5P,GACV,MAAMuP,EAAsC,iBAA3BvP,EAAEye,QAAQ03C,cAA4Bn2D,EAAEye,QAAQ03C,cAAgB,gBAAiBtrD,EAAI7K,EAAEye,QAAQo7C,qBAAuBhlC,GAAInlB,EAAI1P,EAAEye,QAAQq7C,mBAAqB9B,GAAIpoD,EAAI5P,EAAEye,QAAQs7C,eAAiB,YAAa13D,EAAIrC,EAAEye,QAAQu7C,sBAAwB,KAAMpvD,EAAI5K,EAAEye,QAAQw7C,yBAA2B,CACjTlqD,UAAW,CAAC,YACXN,EAAI,GACP,IAAID,GAAI,EACR,OAASA,EAAIxP,EAAEo2D,cAAc38C,QAAU,CACrC,MAAM5J,EAAI7P,EAAEm5D,aAAatyC,IACvB7mB,EAAEo2D,cAAc5mD,IAElB,IAAKK,EACH,SACF,MAAMF,EAAI3P,EAAEgZ,IAAInJ,GAAImC,EAAI2nB,OAAO9pB,EAAE6kD,YAAY93C,cAAezc,EAAIU,GAAGmR,EAAE+Q,eACrE,IAAI3P,EAAI,EACR,MAAMH,EAAI,GAAI/C,EAAIlQ,EAAEq2D,eAAexvC,IAAI7U,GACvC,UAAa,IAAN9B,KAAkBkD,GAAKlD,GAAK,CACjC+C,EAAEwG,OAAS,GAAKxG,EAAE6T,KAAK,CAAEjoB,KAAM,OAAQkM,MAAO,MAC9C,IAAIgI,EAAgB,iBAALlI,EAAgBA,EAAIA,EAAE2E,EAAG4D,GAC5B,iBAALL,IAAkBA,EAAI,CAAElU,KAAM,OAAQkM,MAAOgI,IAAME,EAAE6T,KAAK,CAC/DjoB,KAAM,UACNikB,QAAS,IACTgd,WAAY,CACVlI,KAAM,IAAMroB,EAAI,SAAWpP,GAAKiT,EAAI,EAAI,IAAMA,EAAI,IAClD8mD,oBAAqB,GACrB5wD,UAAuB,iBAALoG,EAAgBA,EAAIA,EAAEF,EAAG4D,GAC3CrD,UAAW,CAAC,0BAEdlN,SAAU+a,MAAMK,QAAQlL,GAAKA,EAAI,CAACA,IAEtC,CACA,MAAMhT,EAAI4P,EAAEA,EAAE8J,OAAS,GACvB,GAAI1Z,GAAgB,YAAXA,EAAElB,MAAoC,MAAdkB,EAAE+iB,QAAiB,CAClD,MAAM/P,EAAIhT,EAAE8C,SAAS9C,EAAE8C,SAAS4W,OAAS,GACzC1G,GAAgB,SAAXA,EAAElU,KAAkBkU,EAAEhI,OAAS,IAAMhL,EAAE8C,SAASikB,KAAK,CAAEjoB,KAAM,OAAQkM,MAAO,MAAQhL,EAAE8C,SAASikB,QAAQ7T,EAC9G,MACEtD,EAAEmX,QAAQ7T,GACZ,MAAMuG,EAAI,CACR3a,KAAM,UACNikB,QAAS,KACTgd,WAAY,CAAEpf,GAAInR,EAAI,MAAQpP,GAC9B0C,SAAU7C,EAAE6uC,KAAKl/B,GAAG,IAEtB3P,EAAE+1D,MAAMlmD,EAAG2J,GAAI/J,EAAEqX,KAAKtN,EACxB,CACA,GAAiB,IAAb/J,EAAEgK,OACJ,MAAO,CACL5a,KAAM,UACNikB,QAAS,UACTgd,WAAY,CAAEq6B,eAAe,EAAIpqD,UAAW,CAAC,cAC7ClN,SAAU,CACR,CACEhE,KAAM,UACNikB,QAASzgB,EACTy9B,WAAY,IACPi4B,GAAGntD,GACN8V,GAAI,kBAEN7d,SAAU,CAAC,CAAEhE,KAAM,OAAQkM,MAAO6E,KAEpC,CAAE/Q,KAAM,OAAQkM,MAAO,MAEvB,CACElM,KAAM,UACNikB,QAAS,KACTgd,WAAY,CAAA,EACZj9B,SAAU7C,EAAE6uC,KAAKp/B,GAAG,IAEtB,CAAE5Q,KAAM,OAAQkM,MAAO,OAI/B,CA2OgDqvD,CAAGvvD,GAAIxI,EAAIub,MAAMK,QAAQvO,GAAK,CAAE7Q,KAAM,OAAQgE,SAAU6M,GAAMA,GAAK,CAAE7Q,KAAM,OAAQgE,SAAU,IAC3I,OAAO+M,GAAKvN,EAAEQ,SAASikB,KAAK,CAAEjoB,KAAM,OAAQkM,MAAO,MAChD6E,GAAIvN,CACT,CACA,SAASg4D,GAAGr6D,EAAGuP,GACb,OAAOvP,GAAK,QAASA,EAAIwY,eAAe3N,EAAG6E,GACzC,MAAME,EAEJyO,GAAGxT,EAAG,CAAEkgB,KAAMrb,KAAMH,UAEhBvP,EAAEs6D,IAAI1qD,EAAGF,EACjB,EAAI,SAAS7E,EAAG6E,GACd,OAEE2O,GAAGxT,EAAG,CAAEkgB,KAAMrb,KAAM1P,GAAKuP,GAE7B,CACF,CACA,SAASub,GAAG9qB,GACV,GAAIA,EACF,MAAMA,CACV,CACA,IAAIu6D,GAAIx2C,GAwCR,IAAIy2C,GAvCJ,WACE,GAAIz2C,GAAI,OAAOw2C,GACfx2C,GAAK,EACL,IAAI/jB,EAAIwf,OAAO8D,UAAUC,eAAgBhU,EAAIiQ,OAAO8D,UAAUhD,SAAUzV,EAAI2U,OAAO+Z,eAAgB7pB,EAAI8P,OAAOi7C,yBAA0B7qD,EAAI,SAASC,GACnJ,MAA+B,mBAAjB+N,MAAMK,QAAwBL,MAAMK,QAAQpO,GAAmB,mBAAdN,EAAEiU,KAAK3T,EACxE,EAAGxN,EAAI,SAASwN,GACd,IAAKA,GAAmB,oBAAdN,EAAEiU,KAAK3T,GACf,OAAO,EACT,IAGI1P,EAHAwP,EAAI3P,EAAEwjB,KAAK3T,EAAG,eAAgBmC,EAAInC,EAAEmqB,aAAenqB,EAAEmqB,YAAY1W,WAAatjB,EAAEwjB,KAAK3T,EAAEmqB,YAAY1W,UAAW,iBAClH,GAAIzT,EAAEmqB,cAAgBrqB,IAAMqC,EAC1B,OAAO,EAET,IAAK7R,KAAK0P,GAEV,cAAc1P,EAAI,KAAOH,EAAEwjB,KAAK3T,EAAG1P,EACrC,EAAGyK,EAAI,SAASiF,EAAGF,GACjB9E,GAAgB,cAAX8E,EAAEuT,KAAuBrY,EAAEgF,EAAGF,EAAEuT,KAAM,CACzCsW,YAAY,EACZC,cAAc,EACd1uB,MAAO4E,EAAE+qD,SACThhC,UAAU,IACP7pB,EAAEF,EAAEuT,MAAQvT,EAAE+qD,QACrB,EAAGjrD,EAAI,SAASI,EAAGF,GACjB,GAAU,cAANA,EACF,KAAI3P,EAAEwjB,KAAK3T,EAAGF,GAGP,OAFL,GAAID,EACF,OAAOA,EAAEG,EAAGF,GAAG5E,KACZ,CACT,OAAO8E,EAAEF,EACX,EACA,OAAO4qD,GAAK,SAAS/qD,IACnB,IAAIK,EAAGF,EAAGqC,EAAG7R,EAAGiT,EAAGH,EAAG/C,EAAI2oB,UAAU,GAAI94B,EAAI,EAAGyZ,EAAIqf,UAAUpf,OAAQ1G,GAAI,EACzE,IAAiB,kBAAL7C,IAAmB6C,EAAI7C,EAAGA,EAAI2oB,UAAU,IAAM,GAAI94B,EAAI,IAAU,MAALmQ,GAAyB,iBAALA,GAA6B,mBAALA,KAAqBA,EAAI,CAAA,GAAKnQ,EAAIyZ,IAAKzZ,EACxJ,GAA2B,OAAvB8P,EAAIgpB,UAAU94B,IAChB,IAAK4P,KAAKE,EACRmC,EAAIvC,EAAES,EAAGP,GAAiBO,KAAb/P,EAAIsP,EAAEI,EAAGF,MAAgBoD,GAAK5S,IAAMkC,EAAElC,KAAOiT,EAAIxD,EAAEzP,MAAQiT,GAAKA,GAAI,EAAIH,EAAIjB,GAAKpC,EAAEoC,GAAKA,EAAI,IAAMiB,EAAIjB,GAAK3P,EAAE2P,GAAKA,EAAI,GAAIpH,EAAEsF,EAAG,CAAEgT,KAAMvT,EAAG+qD,SAAUlrD,EAAEuD,EAAGE,EAAG9S,aAAgBA,EAAI,KAAOyK,EAAEsF,EAAG,CAAEgT,KAAMvT,EAAG+qD,SAAUv6D,KACpO,OAAO+P,CACT,EAAGqqD,EACL,CACSI,GACT,MAAMC,GAAqB/7C,GAAG27C,IAC9B,SAASK,GAAG76D,GACV,GAAgB,iBAALA,GAAuB,OAANA,EAC1B,OAAO,EACT,MAAMuP,EAAIiQ,OAAOs7C,eAAe96D,GAChC,QAAc,OAANuP,GAAcA,IAAMiQ,OAAO8D,WAA0C,OAA7B9D,OAAOs7C,eAAevrD,IAAkBiwB,OAAOC,eAAez/B,GAAQw/B,OAAOu7B,YAAY/6D,EAC3I,CACA,SAASg7D,KACP,MAAMh7D,EAAI,GAAIuP,EAAI,CAAE+qD,IAEpB,YAAc1qD,GACZ,IAAIvN,GAAI,EACR,MAAMuI,EAAIgF,EAAEuiB,MACZ,GAAgB,mBAALvnB,EACT,MAAM,IAAIwvB,UAAU,2CAA6CxvB,IAEnE,SAAS6E,EAAED,KAAMK,GACf,MAAMF,EAAI3P,IAAIqC,GACd,IAAI2P,GAAI,EACR,GAAIxC,EACF5E,EAAE4E,OADJ,CAIA,OAASwC,EAAIpC,EAAE6J,SACH,OAAT5J,EAAEmC,SAAwB,IAATnC,EAAEmC,MAAmBnC,EAAEmC,GAAKpC,EAAEoC,IAClDpC,EAAIC,EAAGF,EAWb,SAAY3P,EAAGuP,GACb,IAAI1E,EACJ,OAAO6E,EACP,SAASA,KAAK9E,GACZ,MAAM6E,EAAIzP,EAAEyZ,OAAS7O,EAAE6O,OACvB,IAAIjK,EACJC,GAAK7E,EAAEkc,KAAKlX,GACZ,IACEJ,EAAIxP,EAAE84B,MAAMC,KAAMnuB,EACpB,CAAE,MAAOiF,GAKP,GAAIJ,GAAK5E,EACP,MALK,EAMP,OAAO+E,EANA,EAOT,CACAH,IAAMD,GAAKA,EAAE+Y,MAAyB,mBAAV/Y,EAAE+Y,KAAqB/Y,EAAE+Y,KAAKlmB,EAAGuN,GAAKJ,aAAa+P,MAAQ3P,EAAEJ,GAAKnN,EAAEmN,GAClG,CACA,SAASI,EAAEhF,KAAM6E,GACf5E,IAAMA,GAAI,EAAI0E,EAAE3E,KAAM6E,GACxB,CACA,SAASpN,EAAEuI,GACTgF,EAAE,KAAMhF,EACV,CACF,CArCiBqwD,CAAGtrD,EAAGF,EAANwrD,IAAYprD,GAAKjF,EAAE,QAASiF,EAHvC,CAIF,CAXAJ,CAAE,QAASG,EAYb,EAnB4BsrD,IAoB5B,SAAWtrD,GACT,GAAgB,mBAALA,EACT,MAAM,IAAIwqB,UACR,+CAAiDxqB,GAErD,OAAO5P,EAAE8mB,KAAKlX,GAAIL,CACpB,GAzBA,OAAOA,CA0BT,CA4BA,MAAMgC,GAAK,CAAE4pD,SACb,SAAYn7D,EAAGuP,GACb,QAAU,IAANA,GAA4B,iBAALA,EACzB,MAAM,IAAI6qB,UAAU,mCACtBghC,GAAGp7D,GACH,IAAiCqC,EAA7BwI,EAAI,EAAG6E,GAAI,EAAIE,EAAI5P,EAAEyZ,OACzB,QAAU,IAANlK,GAA6B,IAAbA,EAAEkK,QAAgBlK,EAAEkK,OAASzZ,EAAEyZ,OAAQ,CACzD,KAAO7J,KACL,GAAyB,KAArB5P,EAAE60D,YAAYjlD,IAChB,GAAIvN,EAAG,CACLwI,EAAI+E,EAAI,EACR,KACF,OACKF,EAAI,IAAMrN,GAAI,EAAIqN,EAAIE,EAAI,GACnC,OAAOF,EAAI,EAAI,GAAK1P,EAAEsmB,MAAMzb,EAAG6E,EACjC,CACA,GAAIH,IAAMvP,EACR,MAAO,GACT,IAAI4K,GAAI,EAAI6E,EAAIF,EAAEkK,OAAS,EAC3B,KAAO7J,KACL,GAAyB,KAArB5P,EAAE60D,YAAYjlD,IAChB,GAAIvN,EAAG,CACLwI,EAAI+E,EAAI,EACR,KACF,OAEAhF,EAAI,IAAMvI,GAAI,EAAIuI,EAAIgF,EAAI,GAAIH,GAAI,IAAOzP,EAAE60D,YAAYjlD,KAAOL,EAAEslD,YAAYplD,KAAOA,EAAI,IAAMC,EAAIE,IAAMH,GAAI,EAAIC,EAAI9E,IACvH,OAAOC,IAAM6E,EAAIA,EAAI9E,EAAI8E,EAAI,IAAMA,EAAI1P,EAAEyZ,QAASzZ,EAAEsmB,MAAMzb,EAAG6E,EAC/D,EA5B2B2rD,QA6B3B,SAAYr7D,GACV,GAAIo7D,GAAGp7D,GAAiB,IAAbA,EAAEyZ,OACX,MAAO,IACT,IAA0B/J,EAAtBH,GAAI,EAAI1E,EAAI7K,EAAEyZ,OAClB,OAAS5O,GACP,GAAyB,KAArB7K,EAAE60D,YAAYhqD,IAChB,GAAI6E,EAAG,CACLH,EAAI1E,EACJ,KACF,OACK6E,IAAMA,GAAI,GACnB,OAAOH,EAAI,EAAyB,KAArBvP,EAAE60D,YAAY,GAAY,IAAM,IAAY,IAANtlD,GAAgC,KAArBvP,EAAE60D,YAAY,GAAY,KAAO70D,EAAEsmB,MAAM,EAAG/W,EAC9G,EAzCwC+rD,QA0CxC,SAAYt7D,GACVo7D,GAAGp7D,GACH,IAAgD4K,EAA5C2E,EAAIvP,EAAEyZ,OAAQ5O,GAAI,EAAI6E,EAAI,EAAGE,GAAI,EAAIvN,EAAI,EAC7C,KAAOkN,KAAO,CACZ,MAAME,EAAIzP,EAAE60D,YAAYtlD,GACxB,GAAU,KAANE,EAOJ5E,EAAI,IAAMD,GAAI,EAAIC,EAAI0E,EAAI,GAAU,KAANE,EAAWG,EAAI,EAAIA,EAAIL,EAAU,IAANlN,IAAYA,EAAI,GAAKuN,GAAI,IAAOvN,WANvF,GAAIuI,EAAG,CACL8E,EAAIH,EAAI,EACR,KACF,CAIJ,CACA,OAAOK,EAAI,GAAK/E,EAAI,GACd,IAANxI,GACM,IAANA,GAAWuN,IAAM/E,EAAI,GAAK+E,IAAMF,EAAI,EAAI,GAAK1P,EAAEsmB,MAAM1W,EAAG/E,EAC1D,EA3DqDiT,KA4DrD,YAAe9d,GACb,IAAY6K,EAAR0E,GAAI,EACR,OAASA,EAAIvP,EAAEyZ,QACb2hD,GAAGp7D,EAAEuP,IAAKvP,EAAEuP,KAAO1E,OAAU,IAANA,EAAe7K,EAAEuP,GAAK1E,EAAI,IAAM7K,EAAEuP,IAC3D,YAAa,IAAN1E,EAAe,IAExB,SAAY7K,GACVo7D,GAAGp7D,GACH,MAAMuP,EAAyB,KAArBvP,EAAE60D,YAAY,GACxB,IAAIhqD,EAGN,SAAY7K,EAAGuP,GACb,IAA0CE,EAAGD,EAAzC3E,EAAI,GAAI6E,EAAI,EAAGE,KAAQvN,EAAI,EAAGuI,GAAI,EACtC,OAASA,GAAK5K,EAAEyZ,QAAU,CACxB,GAAI7O,EAAI5K,EAAEyZ,OACRhK,EAAIzP,EAAE60D,YAAYjqD,OACf,CACH,GAAU,KAAN6E,EACF,MACFA,EAAI,EACN,CACA,GAAU,KAANA,EAAU,CACZ,GAAMG,IAAMhF,EAAI,GAAW,IAANvI,EAAU,GAAIuN,IAAMhF,EAAI,GAAW,IAANvI,EAAS,CACzD,GAAIwI,EAAE4O,OAAS,GAAW,IAAN/J,GAA2C,KAAhC7E,EAAEgqD,YAAYhqD,EAAE4O,OAAS,IAA6C,KAAhC5O,EAAEgqD,YAAYhqD,EAAE4O,OAAS,GAC5F,GAAI5O,EAAE4O,OAAS,GACb,GAAIjK,EAAI3E,EAAEm4C,YAAY,KAAMxzC,IAAM3E,EAAE4O,OAAS,EAAG,CAC9CjK,EAAI,GAAK3E,EAAI,GAAI6E,EAAI,IAAM7E,EAAIA,EAAEyb,MAAM,EAAG9W,GAAIE,EAAI7E,EAAE4O,OAAS,EAAI5O,EAAEm4C,YAAY,MAAOpzC,EAAIhF,EAAGvI,EAAI,EACjG,QACF,OACK,GAAIwI,EAAE4O,OAAS,EAAG,CACvB5O,EAAI,GAAI6E,EAAI,EAAGE,EAAIhF,EAAGvI,EAAI,EAC1B,QACF,CAEFkN,IAAM1E,EAAIA,EAAE4O,OAAS,EAAI5O,EAAI,MAAQ,KAAM6E,EAAI,EACjD,MACE7E,EAAE4O,OAAS,EAAI5O,GAAK,IAAM7K,EAAEsmB,MAAM1W,EAAI,EAAGhF,GAAKC,EAAI7K,EAAEsmB,MAAM1W,EAAI,EAAGhF,GAAI8E,EAAI9E,EAAIgF,EAAI,EACnFA,EAAIhF,EAAGvI,EAAI,CACb,MAAa,KAANoN,GAAYpN,GAAI,EAAKA,IAAMA,GAAI,CACxC,CACA,OAAOwI,CACT,CAjCU0wD,CAAGv7D,GAAIuP,GACf,OAAoB,IAAb1E,EAAE4O,SAAiBlK,IAAM1E,EAAI,KAAMA,EAAE4O,OAAS,GAAqC,KAAhCzZ,EAAE60D,YAAY70D,EAAEyZ,OAAS,KAAc5O,GAAK,KAAM0E,EAAI,IAAM1E,EAAIA,CAC5H,CAP8B2wD,CAAG3wD,EACjC,EAjE+D4wD,IAAK,KAuGpE,SAASL,GAAGp7D,GACV,GAAgB,iBAALA,EACT,MAAM,IAAIo6B,UACR,mCAAqC3Y,KAAKC,UAAU1hB,GAE1D,CACA,MAAM07D,GAAK,CAAEC,IACb,WACE,MAAO,GACT,GACA,SAASC,GAAG57D,GACV,SAAgB,OAANA,GAA0B,iBAALA,GAAiB,SAAUA,GAAKA,EAAE43B,MAAQ,aAAc53B,GAAKA,EAAE48B,eACnF,IAAX58B,EAAE67D,KACJ,CACA,SAASC,GAAG97D,GACV,GAAgB,iBAALA,EACTA,EAAI,IAAI+7D,IAAI/7D,QACT,IAAK47D,GAAG57D,GAAI,CACf,MAAMuP,EAAI,IAAI6qB,UACZ,+EAAiFp6B,EAAI,KAEvF,MAAMuP,EAAEogC,KAAO,uBAAwBpgC,CACzC,CACA,GAAmB,UAAfvP,EAAE48B,SAAsB,CAC1B,MAAMrtB,EAAI,IAAI6qB,UAAU,kCACxB,MAAM7qB,EAAEogC,KAAO,yBAA0BpgC,CAC3C,CACA,OAEF,SAAYvP,GACV,GAAmB,KAAfA,EAAEg8D,SAAiB,CACrB,MAAMtsD,EAAI,IAAI0qB,UACZ,wDAEF,MAAM1qB,EAAEigC,KAAO,4BAA6BjgC,CAC9C,CACA,MAAMH,EAAIvP,EAAEi8D,SACZ,IAAIpxD,GAAI,EACR,OAASA,EAAI0E,EAAEkK,QACb,GAAyB,KAArBlK,EAAEslD,YAAYhqD,IAAsC,KAAzB0E,EAAEslD,YAAYhqD,EAAI,GAAW,CAC1D,MAAM6E,EAAIH,EAAEslD,YAAYhqD,EAAI,GAC5B,GAAU,KAAN6E,GAAkB,MAANA,EAAW,CACzB,MAAME,EAAI,IAAIwqB,UACZ,uDAEF,MAAMxqB,EAAE+/B,KAAO,4BAA6B//B,CAC9C,CACF,CACF,OAAOssD,mBAAmB3sD,EAC5B,CAtBS4sD,CAAGn8D,EACZ,CAsBA,MAAMo8D,GAAE,CAGJ,UACA,OACA,WACA,OACA,UACA,WAGJ,MAAMC,GAuBJ,WAAAriC,CAAYzqB,GACV,IAAI1E,EAwWR,IAAY7K,EAvWI6K,EAAZ0E,EAAIqsD,GAAGrsD,GAAS,CAAEyN,KAAMzN,GAAkB,iBAALA,IAuW7BvP,EAvWiDuP,IAwWhC,iBAALvP,GAAiB,eAAgBA,GAAK,eAAgBA,EAxWR,CAAE+K,MAAOwE,GAAUA,EAAQ,CAAA,EAAIwpB,KAAK4iC,IAAM,QAAS9wD,EAAI,GAAK6wD,GAAGC,MAAO5iC,KAAKngB,KAAO,CAAA,EAAImgB,KAAKujC,QAAU,GAAIvjC,KAAKrd,SAAW,GAAIqd,KAAKhuB,MAAOguB,KAAK9oB,IAAK8oB,KAAKhL,OAAQgL,KAAKwjC,OACvO,IAKI3sD,EALAF,GAAI,EACR,OAASA,EAAI0sD,GAAG3iD,QAAU,CACxB,MAAMpX,EAAI+5D,GAAG1sD,GACbrN,KAAKwI,QAAc,IAATA,EAAExI,IAA0B,OAATwI,EAAExI,KAAgB02B,KAAK12B,GAAW,YAANA,EAAkB,IAAIwI,EAAExI,IAAMwI,EAAExI,GAC3F,CAEA,IAAKuN,KAAK/E,EACRuxD,GAAG18C,SAAS9P,KAAOmpB,KAAKnpB,GAAK/E,EAAE+E,GACnC,CAOA,YAAIurD,GACF,MAA2B,iBAAbpiC,KAAK/b,KAAmBzL,GAAG4pD,SAASpiC,KAAK/b,WAAQ,CACjE,CAaA,YAAIm+C,CAAS5rD,GACXitD,GAAGjtD,EAAG,YAAaktD,GAAGltD,EAAG,YAAawpB,KAAK/b,KAAOzL,GAAGuM,KAAKib,KAAKsiC,SAAW,GAAI9rD,EAChF,CAOA,WAAI8rD,GACF,MAA2B,iBAAbtiC,KAAK/b,KAAmBzL,GAAG8pD,QAAQtiC,KAAK/b,WAAQ,CAChE,CAWA,WAAIq+C,CAAQ9rD,GACVsU,GAAGkV,KAAKoiC,SAAU,WAAYpiC,KAAK/b,KAAOzL,GAAGuM,KAAKvO,GAAK,GAAIwpB,KAAKoiC,SAClE,CAOA,WAAIG,GACF,MAA2B,iBAAbviC,KAAK/b,KAAmBzL,GAAG+pD,QAAQviC,KAAK/b,WAAQ,CAChE,CAaA,WAAIs+C,CAAQ/rD,GACV,GAAIktD,GAAGltD,EAAG,WAAYsU,GAAGkV,KAAKsiC,QAAS,WAAY9rD,EAAG,CACpD,GAAyB,KAArBA,EAAEslD,YAAY,GAChB,MAAM,IAAIt1C,MAAM,iCAClB,GAAIhQ,EAAEmQ,SAAS,IAAK,GAClB,MAAM,IAAIH,MAAM,yCACpB,CACAwZ,KAAK/b,KAAOzL,GAAGuM,KAAKib,KAAKsiC,QAAStiC,KAAK2jC,MAAQntD,GAAK,IACtD,CAOA,QAAIyN,GACF,OAAO+b,KAAKujC,QAAQvjC,KAAKujC,QAAQ7iD,OAAS,EAC5C,CAaA,QAAIuD,CAAKzN,GACPqsD,GAAGrsD,KAAOA,EAAIusD,GAAGvsD,IAAKitD,GAAGjtD,EAAG,QAASwpB,KAAK/b,OAASzN,GAAKwpB,KAAKujC,QAAQx1C,KAAKvX,EAC5E,CAOA,QAAImtD,GACF,MAA2B,iBAAb3jC,KAAK/b,KAAmBzL,GAAG4pD,SAASpiC,KAAK/b,KAAM+b,KAAKuiC,cAAW,CAC/E,CAaA,QAAIoB,CAAKntD,GACPitD,GAAGjtD,EAAG,QAASktD,GAAGltD,EAAG,QAASwpB,KAAK/b,KAAOzL,GAAGuM,KAAKib,KAAKsiC,SAAW,GAAI9rD,GAAKwpB,KAAKuiC,SAAW,IAC7F,CA8DA,IAAAqB,CAAKptD,EAAG1E,EAAG6E,GACT,MAAME,EAAImpB,KAAKhd,QAAQxM,EAAG1E,EAAG6E,GAC7B,MAAME,EAAEy0C,OAAQ,EAAIz0C,CACtB,CA2DA,IAAA6V,CAAKlW,EAAG1E,EAAG6E,GACT,MAAME,EAAImpB,KAAKhd,QAAQxM,EAAG1E,EAAG6E,GAC7B,OAAOE,EAAEy0C,WAAQ,EAAQz0C,CAC3B,CA2DA,OAAAmM,CAAQxM,EAAG1E,EAAG6E,GACZ,MAAME,EAAI,IAAIR,GAEZG,EACA1E,EACA6E,GAEF,OAAOqpB,KAAK/b,OAASpN,EAAEsT,KAAO6V,KAAK/b,KAAO,IAAMpN,EAAEsT,KAAMtT,EAAEmb,KAAOgO,KAAK/b,MAAOpN,EAAEy0C,OAAQ,EAAItrB,KAAKrd,SAASoL,KAAKlX,GAAIA,CACpH,CAcA,QAAA0Q,CAAS/Q,GACP,YAAsB,IAAfwpB,KAAKhuB,MAAmB,GAA0B,iBAAdguB,KAAKhuB,MAAoBguB,KAAKhuB,MAAQ,IAAIyqD,YAAYjmD,QAAK,GAAQkmD,OAAO18B,KAAKhuB,MAC5H,EAEF,SAAS0xD,GAAGz8D,EAAGuP,GACb,GAAIvP,GAAKA,EAAE0f,SAASnO,GAAGkqD,KACrB,MAAM,IAAIl8C,MACR,IAAMhQ,EAAI,uCAAyCgC,GAAGkqD,IAAM,IAElE,CACA,SAASe,GAAGx8D,EAAGuP,GACb,IAAKvP,EACH,MAAM,IAAIuf,MAAM,IAAMhQ,EAAI,oBAC9B,CACA,SAASsU,GAAG7jB,EAAGuP,GACb,IAAKvP,EACH,MAAM,IAAIuf,MAAM,YAAchQ,EAAI,kCACtC,CAIA,MAAMqtD,GAAE,SAUG58D,GACP,MAAM0P,EAIJqpB,KAAKiB,YACX,UAAOpqB,EAAIF,EAAE1P,GAAIqC,EAAI,WACf,OAAOuN,EAAEkpB,MAAMz2B,EAAGw2B,UACpB,EACA,OAAOrZ,OAAOq9C,eAAex6D,EAAGqN,GAAIrN,CAExC,EAAGy6D,GAAK,CAAA,EAAGv5C,eACX,MAAMw5C,WAAWH,GAIf,WAAA5iC,GACE2F,MAAM,QAAS5G,KAAKikC,cAAW,EAAQjkC,KAAKkkC,YAAS,EAAQlkC,KAAKmkC,UAAY,GAAInkC,KAAKokC,cAAW,EAAQpkC,KAAKqkC,aAAc,EAAIrkC,KAAKskC,YAAS,EAAQtkC,KAAKukC,UAAY,CAAA,EAAIvkC,KAAKkxB,YAAS,EAAQlxB,KAAKwkC,aAAevC,IACxN,CAYA,IAAAwC,GACE,MAAMjuD,EAAC,IAEDwtD,GAEN,IAAIlyD,GAAI,EACR,OAASA,EAAIkuB,KAAKmkC,UAAUzjD,QAAU,CACpC,MAAM/J,EAAIqpB,KAAKmkC,UAAUryD,GACzB0E,EAAE2rD,OAAOxrD,EACX,CACA,OAAOH,EAAEqJ,KAAKgiD,IAAG,EAAI,CAAA,EAAI7hC,KAAKukC,YAAa/tD,CAC7C,CA4DA,IAAAqJ,CAAKrJ,EAAG1E,GACN,MAAmB,iBAAL0E,EAAqC,IAArBspB,UAAUpf,QAAgBgkD,GAAG,OAAQ1kC,KAAKskC,QAAStkC,KAAKukC,UAAU/tD,GAAK1E,EAAGkuB,MAAQ+jC,GAAGt5C,KAAKuV,KAAKukC,UAAW/tD,IAAMwpB,KAAKukC,UAAU/tD,SAAM,EAASA,GAAKkuD,GAAG,OAAQ1kC,KAAKskC,QAAStkC,KAAKukC,UAAY/tD,EAAGwpB,MAAQA,KAAKukC,SAC7O,CAkBA,MAAAhmC,GACE,GAAIyB,KAAKskC,OACP,OAAOtkC,KACT,MAAMxpB,EAAC,KAKP,OAASwpB,KAAKqkC,YAAcrkC,KAAKmkC,UAAUzjD,QAAU,CACnD,MAAO5O,KAAM6E,GAAKqpB,KAAKmkC,UAAUnkC,KAAKqkC,aACtC,IAAa,IAAT1tD,EAAE,GACJ,UACO,IAATA,EAAE,KAAcA,EAAE,QAAK,GACvB,MAAME,EAAI/E,EAAE2Y,KAAKjU,KAAMG,GACX,mBAALE,GAAmBmpB,KAAKwkC,aAAarC,IAAItrD,EAClD,CACA,OAAOmpB,KAAKskC,QAAS,EAAItkC,KAAKqkC,YAAc5gC,OAAOktB,kBAAmB3wB,IACxE,CAeA,KAAAjX,CAAMvS,GACJwpB,KAAKzB,SACL,MAAMzsB,EAAI9J,GAAGwO,GAAIG,EAAIqpB,KAAKkxB,QAAUlxB,KAAKkkC,OACzC,OAAOS,GAAG,QAAShuD,GAAIA,EAAEiqB,OAAO9uB,GAAIA,EACtC,CA2CA,OAAAovB,CAAQ1qB,EAAG1E,GACT,MAAM6E,EAAIqpB,KACV,OAAOA,KAAKzB,SAAUomC,GAAG,UAAW3kC,KAAKkxB,QAAUlxB,KAAKkkC,QAASU,GAAG,UAAW5kC,KAAKokC,UAAYpkC,KAAKikC,UAAWnyD,EAAI+E,OAAE,EAAQ/E,GAAK,IAAIkO,QAAQnJ,GAC/I,SAASA,EAAEvN,EAAGuI,GACZ,MAAM6E,EAAI1O,GAAGwO,GAAIC,EAGfE,EAAEoS,MAAMrS,GAgBV,SAASI,EAAEF,EAAGqC,GACZrC,IAAMqC,EAAIpH,EAAE+E,GAAKtN,EAAIA,EAAE2P,GAAKnH,OAAE,EAAQmH,EACxC,CAhBAtC,EAAE4qD,IAAI9qD,EAAGC,EAAG,SAASE,EAAGqC,EAAG7R,GACzB,GAAIwP,IAAMqC,IAAM7R,EACd,OAAO0P,EAAEF,GACX,MAAMyD,EAAC,EAIJH,EAAIvD,EAAEgS,UAAUtO,EAAGjT,GAoT9B,IAAYH,EACS,iBADTA,EAnTDiT,IAsTX,SAAYjT,GACV,SAAUA,GAAiB,iBAALA,GAAiB,eAAgBA,GAAK,eAAgBA,EAC9E,CAJiC49D,CAAG59D,GApTpBG,EAAE4K,MAAQkI,EAAI9S,EAAE4tB,OAAS9a,EAAGpD,EAClCF,EAEAxP,EAEJ,EAIF,CACF,CAgCA,WAAA09D,CAAYtuD,GACV,IAAYG,EAAR7E,GAAI,EACR,OAAOkuB,KAAKzB,SAAUomC,GAAG,cAAe3kC,KAAKkxB,QAAUlxB,KAAKkkC,QAASU,GAAG,cAAe5kC,KAAKokC,UAAYpkC,KAAKikC,UAAWjkC,KAAKkB,QAAQ1qB,EACrI,SAAWlN,EAAGuI,GACZC,GAAI,EAAIigB,GAAGzoB,GAAIqN,EAAI9E,CACrB,GAH4IuT,GAAG,cAAe,UAAWtT,GAAI6E,CAI/K,CAuCA,GAAA4qD,CAAI/qD,EAAG1E,EAAG6E,GACRqS,GAAGxS,GAAIwpB,KAAKzB,SACZ,MAAM1nB,EAAImpB,KAAKwkC,aACf,OAAQ7tD,GAAiB,mBAAL7E,IAAoB6E,EAAI7E,EAAGA,OAAI,GAAS6E,EAAIrN,OAAE,EAAQqN,GAAK,IAAIqJ,QAAQ1W,GAC3F,SAASA,EAAEuI,EAAG6E,GACZ,MAAMD,EAAIzO,GAAG8J,GACb+E,EAAE0qD,IAAI/qD,EAAGC,EACT,SAAWG,EAAGqC,EAAG7R,GACf,MAAMiT,EAEJpB,GAAKzC,EAEPI,EAAIF,EAAEE,GAAK/E,EAAIA,EAAEwI,GAAK1D,OAAE,EAAQ0D,EAAGjT,EACrC,EACF,CACF,CAkBA,OAAA29D,CAAQvuD,EAAG1E,GACT,IAAY+E,EAARF,GAAI,EACR,OAAOqpB,KAAKuhC,IAAI/qD,EAAG1E,EACnB,SAAWD,EAAG6E,GACZqb,GAAGlgB,GAAIgF,EAAIH,EAAGC,GAAI,CACpB,GAH0ByO,GAAG,UAAW,MAAOzO,GAAIE,CAIrD,CA8BA,SAAA8R,CAAUnS,EAAG1E,GACXkuB,KAAKzB,SACL,MAAM5nB,EAAI3O,GAAG8J,GAAI+E,EAAImpB,KAAKokC,UAAYpkC,KAAKikC,SAC3C,OAAOW,GAAG,YAAa/tD,GAAImS,GAAGxS,GAAIK,EAAEL,EAAGG,EACzC,CA0DA,GAAAwrD,CAAI3rD,KAAM1E,GACR,MAAM6E,EAAIqpB,KAAKmkC,UAAWttD,EAAImpB,KAAKukC,UACnC,GAAIG,GAAG,MAAO1kC,KAAKskC,QAAc,MAAL9tD,EAAW,GAAgB,mBAALA,EAChDC,EAAED,EAAG1E,OACF,IAAgB,iBAAL0E,EAGd,MAAM,IAAI6qB,UAAU,+BAAiC7qB,EAAI,KAFzDqO,MAAMK,QAAQ1O,GAAKE,EAAEF,GAAK3E,EAAE2E,EAEiC,CAC/D,OAAOwpB,KACP,SAAS12B,EAAEwN,GACT,GAAgB,mBAALA,EACTL,EAAEK,EAAG,QACF,IAAgB,iBAALA,EAUd,MAAM,IAAIuqB,UAAU,+BAAiCvqB,EAAI,KATzD,GAAI+N,MAAMK,QAAQpO,GAAI,CACpB,MAAOF,KAAMqC,GAAE,EAIfxC,EAAEG,EAAGqC,EACP,MACEpH,EAAEiF,EAEyD,CACjE,CACA,SAASjF,EAAEiF,GACT,KAAM,YAAaA,MAAQ,aAAcA,GACvC,MAAM,IAAI0P,MACR,8KAEJ9P,EAAEI,EAAE+iB,SAAU/iB,EAAExF,WAAauF,EAAEvF,SAAWuwD,IAAG,EAAIhrD,EAAEvF,SAAUwF,EAAExF,UACjE,CACA,SAASoF,EAAEI,GACT,IAAIF,GAAI,EACR,GAAS,MAALE,EAAW,KAAI+N,MAAMK,QAAQpO,GAM/B,MAAM,IAAIuqB,UAAU,oCAAsCvqB,EAAI,KAL9D,OAASF,EAAIE,EAAE4J,QAAU,CAEvBpX,EADUwN,EAAEF,GAEd,CAEkE,CACtE,CACA,SAASH,EAAEK,EAAGF,GACZ,IAAIqC,KAAQ7R,GAAI,EAChB,OAAS6R,EAAItC,EAAE+J,QACb,GAAI/J,EAAEsC,GAAG,KAAOnC,EAAG,CACjB1P,EAAI6R,EACJ,KACF,CACF,IAAU,IAAN7R,EACFuP,EAAEoX,KAAK,CAACjX,KAAMF,SACX,GAAIA,EAAE8J,OAAS,EAAG,CACrB,IAAKrG,KAAMH,GAAKtD,EAChB,MAAMO,EAAIR,EAAEvP,GAAG,GACf06D,GAAG3qD,IAAM2qD,GAAGznD,KAAOA,EAAIwnD,IAAG,EAAI1qD,EAAGkD,IAAK1D,EAAEvP,GAAK,CAAC0P,EAAGuD,KAAMH,EACzD,CACF,CACF,EAEF,MAAM8qD,IAAK,IAAIhB,IAAKzlC,SACpB,SAASomC,GAAG19D,EAAGuP,GACb,GAAgB,mBAALA,EACT,MAAM,IAAI6qB,UAAU,WAAap6B,EAAI,qBACzC,CACA,SAAS29D,GAAG39D,EAAGuP,GACb,GAAgB,mBAALA,EACT,MAAM,IAAI6qB,UAAU,WAAap6B,EAAI,uBACzC,CACA,SAASy9D,GAAGz9D,EAAGuP,GACb,GAAIA,EACF,MAAM,IAAIgQ,MACR,gBAAkBvf,EAAI,mHAE5B,CACA,SAAS+hB,GAAG/hB,GACV,IAAK66D,GAAG76D,IAAuB,iBAAVA,EAAEnB,KACrB,MAAM,IAAIu7B,UAAU,uBAAyBp6B,EAAI,IACrD,CACA,SAASme,GAAGne,EAAGuP,EAAG1E,GAChB,IAAKA,EACH,MAAM,IAAI0U,MACR,IAAMvf,EAAI,0BAA4BuP,EAAI,YAEhD,CACA,SAASxO,GAAGf,GACV,OAEF,SAAYA,GACV,SAAUA,GAAiB,iBAALA,GAAiB,YAAaA,GAAK,aAAcA,EACzE,CAJSg+D,CAAGh+D,GAAKA,EAAI,IAAIq8D,GAAGr8D,EAC5B,CAUA,MAAgFiiB,GAAK,GAAIpC,GAAK,CAAE42C,oBAAoB,GAAMwH,GAAK,gCAAiCC,GAAK,CACnK,CAAErgD,KAAM,aAAc6C,GAAI,wCAC1B,CAAE7C,KAAM,qBAAsB6C,GAAI,wCAClC,CACE7C,KAAM,YACN6C,GAAI,qDACJ4O,GAAI,gBAEN,CACEzR,KAAM,eACN6C,GAAI,qDACJ4O,GAAI,mBAEN,CACEzR,KAAM,kBACN6C,GAAI,qDACJ4O,GAAI,sBAEN,CAAEzR,KAAM,aAAc6C,GAAI,wCAC1B,CAAE7C,KAAM,sBAAuB6C,GAAI,+BACnC,CACE7C,KAAM,mBACN6C,GAAI,kDAEN,CAAE7C,KAAM,aAAc6C,GAAI,qBAC1B,CAAE7C,KAAM,UAAW6C,GAAI,kCAAmC4O,GAAI,iBAC9D,CAAEzR,KAAM,eAAgB6C,GAAI,wBAC5B,CAAE7C,KAAM,YAAa6C,GAAI,iCAAkC4O,GAAI,cAC/D,CAAEzR,KAAM,SAAU6C,GAAI,4BAA6B4O,GAAI,YACvD,CAAEzR,KAAM,YAAa6C,GAAI,qBACzB,CAAE7C,KAAM,oBAAqB6C,GAAI,oBAAqB4O,GAAI,gBAC1D,CAAEzR,KAAM,mBAAoB6C,GAAI,oBAAqB4O,GAAI,iBAE3D,SAAS6uC,GAAGn+D,GACV,MAAMuP,EAAIvP,EAAEo+D,gBAAiBvzD,EAAI7K,EAAEq+D,aAAc3uD,EAAI1P,EAAE6C,UAAY,GAAI+M,EAAI5P,EAAE+P,UAAW1N,EAAIrC,EAAE0lD,WAAY96C,EAAI5K,EAAEs+D,mBAAoB7uD,EAAIzP,EAAEu+D,eAAiBt8C,GAAIzS,EAAIxP,EAAEw+D,eAAiBv8C,GAAIpS,EAAI7P,EAAEy+D,oBAAsB,IAAKz+D,EAAEy+D,uBAAwB5+C,IAAOA,GAAIlQ,EAAI3P,EAAE0+D,SAAU1sD,EAAIhS,EAAE2+D,iBAAkBx+D,EAAIH,EAAE4+D,cAAgBC,GAAIzrD,EAAI2qD,KAAK7C,IAAI1nC,IAAI0nC,IAAI1rD,GAAG0rD,IAAIb,GAAIxqD,GAAGqrD,IAAIzrD,GAAIwD,EAAI,IAAIopD,GACzW,iBAAL3sD,IAAkBuD,EAAElI,MAAQ2E,GACnC,IAAK,MAAMqD,KAAKmrD,GACd1+C,OAAOs/C,OAAO9+D,EAAG+S,EAAE8K,QAAe9K,EAAE8K,KAAQ9K,EAAEuc,IAAevc,EAAEuc,GAAuCvc,EAAE2N,IAC1G,MAAMxQ,EAAIkD,EAAE0O,MAAM7O,GAClB,IAAIlT,EAAIqT,EAAE0qD,QAAQ5tD,EAAG+C,GACrB,OAAOrD,IAAM7P,EAAI,CACflB,KAAM,UACNikB,QAAS,MACTgd,WAAY,CAAE/vB,UAAWH,GAEzB/M,SAEa,SAAX9C,EAAElB,KAAkBkB,EAAE8C,SAAW,CAAC9C,KAElC64D,GAAG74D,EAYP,SAAWgT,EAAGZ,EAAGU,GACf,GAAe,QAAXE,EAAElU,MAAkBgU,GAAiB,iBAALV,EAClC,OAAOxC,EAAIkD,EAAEhQ,SAAS6lD,OAAOv2C,EAAG,GAAKU,EAAEhQ,SAASsP,GAAK,CAAEtT,KAAM,OAAQkM,MAAOgI,EAAEhI,OAASoH,EACzF,GAAe,YAAXY,EAAElU,KAAoB,CACxB,IAAI4L,EACJ,IAAKA,KAAK29C,GACR,GAAI5oC,OAAOs/C,OAAO1W,GAAI39C,IAAM+U,OAAOs/C,OAAO/rD,EAAE+sB,WAAYr1B,GAAI,CAC1D,MAAM4H,EAAIU,EAAE+sB,WAAWr1B,GAAI+I,EAAI40C,GAAG39C,IAC3B,OAAN+I,GAAcA,EAAEkM,SAAS3M,EAAE+P,YAAc/P,EAAE+sB,WAAWr1B,GAAKtK,EAAEw5B,OAAOtnB,GAAK,IAAK5H,EAAGsI,GACpF,CACJ,CACA,GAAe,YAAXA,EAAElU,KAAoB,CACxB,IAAI4L,EAAI8E,GAAKA,EAAEmQ,SAAS3M,EAAE+P,WAAWlY,GAAIA,EAAE8U,SAAS3M,EAAE+P,SACtD,IAAKrY,GAAKI,GAAiB,iBAALsH,IAAkB1H,GAAKI,EAAEkI,EAAGZ,EAAGU,IAAKpI,GAAKoI,GAAiB,iBAALV,EACzE,OAAOH,GAAKe,EAAElQ,SAAWgQ,EAAEhQ,SAAS6lD,OAAOv2C,EAAG,KAAMY,EAAElQ,UAAYgQ,EAAEhQ,SAAS6lD,OAAOv2C,EAAG,GAAIA,CAC/F,CACF,GA5Bc8yC,GAAGllD,EAAG,CAClBu9B,SAAUyhC,EAIVrZ,WAAYrjD,EACZ0jD,oBAAoB,EACpB1nB,IAAKl0B,EACLq7C,KAAMwZ,EACNhZ,UAAU,EACVC,UAAU,GAmBd,CACA,SAAS4Y,GAAG7+D,GACV,MAAMuP,EAAIvP,EAAEokD,QAAQ,KAAMv5C,EAAI7K,EAAEokD,QAAQ,KAAM10C,EAAI1P,EAAEokD,QAAQ,KAAMx0C,EAAI5P,EAAEokD,QAAQ,KAChF,OAEQ,IAAN70C,IACM,IAANK,GAAYL,EAAIK,IAAW,IAAN/E,GAAY0E,EAAI1E,IAAW,IAAN6E,GAAYH,EAAIG,GAC1DuuD,GAAGryC,KAAK5rB,EAAEsmB,MAAM,EAAG/W,IAAMvP,EAAI,EAEjC,CACA,MAAMi/D,GAAK,EAAGp8D,SAAU7C,KAAwBmK,EAAG,MAAO,CAAExL,MAAO,CAAEi/B,WAAY,UAAY/6B,SAA0BsH,EACrHg0D,GACA,CACEzY,WAAY,CACVtyC,EAAG,KAAMvI,KAAwBV,EAC/B,IACA,CACExL,MAAO,CACL4D,OAAQ,EACR28D,aAAc,QACdC,WAAY,IACZC,UAAW,QAEbv8D,SAAUgI,EAAEhI,WAGhBs0B,GAAI,KAAMtsB,KAAwBV,EAChC,KACA,CACExL,MAAO,CACL0gE,YAAa,0BACb98D,OAAQ,EACR+8D,kBAAmB,UAGrBz8D,SAAUgI,EAAEhI,WAGhBuzB,GAAI,KAAMvrB,KAAwBV,EAChC,KACA,CACExL,MAAO,CACL0gE,YAAa,0BACb98D,OAAQ,EACR+8D,kBAAmB,UAGrBz8D,SAAUgI,EAAEhI,WAIhBqzB,GAAI,KAAMrrB,KAAwBV,EAChC,KACA,CACExL,MAAO,CACLugE,aAAc,MACdC,WAAY,KAEdt8D,SAAUgI,EAAEhI,WAGhB8sC,KAAI,EAAG4vB,OAAQ10D,EAAGhI,SAAU6M,KACnB7E,EAAoBV,EACzB,OACA,CACExL,MAAO,CACLwd,gBAAiB,qBACjBqjD,QAAS,UACT54D,aAAc,MACdrF,WAAY,UACZiB,SAAU,UAEZK,SAAU6M,IAEMvF,EAClB,MACA,CACExL,MAAO,CACLwd,gBAAiB,qBACjBqjD,QAAS,MACT54D,aAAc,MACd64D,UAAW,OACXl9D,OAAQ,UACRq7B,WAAY,YAGd/6B,SAA0BsH,EAAG,OAAQ,CAAEtH,SAAU6M,MAIvDomD,WAAY,KAAMjrD,KAAwBV,EACxC,aACA,CACExL,MAAO,CACL4D,OAAQ,EACR88D,YAAa,OACbK,WAAY,iBACZvkD,MAAO,OACPo4B,UAAW,UAEb1wC,SAAUgI,EAAEhI,YAIlBA,SAAsB,iBAAL7C,EAAgBA,EAAI,OAEnC2/D,GAAK,CACT9hC,YAAY,GAqCX+hC,GAAM5/D,GAAM,IA9BP,CAACA,IACP,MAAQy0B,QAASllB,GAAMswD,MAAQnkD,SAAU7Q,EAAGqc,gBAAiBxX,GAAMowD,MAAQz1D,SAAUuF,GAAMmwD,MAAQ5qD,qBAAsB9S,GAAMgzB,KAAMzqB,EAAI,IAAK5K,KAAM2/D,IAAMlwD,EAAI7E,EAAEo1D,kBAAoBp1D,EAAEo1D,kBAAoBf,GAC1MgB,EAAG,KACD,IAAItwD,EAAGqC,EACP,GAAI3P,EAAG,CACL,MAAMlC,EAAI,IAAI0K,GACd,IAAK,IAAIuI,EAAI,EAAGA,EAAIjT,EAAEsZ,QAAUrG,IAA6B,OAAtBzD,EAAIC,EAAE/L,kBAAuB,EAAS8L,EAAE7L,aAAe,IAAKsP,IAAK,CACtG,MAAMH,EAAI9S,EAAEiT,GACI,OAAfpB,EAAIiB,EAAE6N,OAAiB9O,EAAE0N,SAAS,yCAA2CzM,EAAEiJ,eAAiBzM,EACnG,CACAC,EAAEvP,EACJ,GACC,CAACkC,IACJ,MAAMmN,EAAIgJ,MAAO7I,IACf,IAAIxP,EACJ,MAAM6R,EAA4B,OAAvB7R,EAAIwP,EAAEiJ,KAAKmD,cAAmB,EAAS5b,EAAEwc,OAAOC,cArBvD,EAAC5c,EAAGuP,EAAG1E,KACb,IAAI+E,EACJ,GAAqC,iBAA1B5P,EAAE4Y,KAAKmD,QAAQE,UAAwBjc,EAAE0Y,OAAOmB,SACzD,OAAO,EACT,MAAMnK,EAAIH,EAAEvP,EAAE0Y,OAAOmB,UACrB,QAAOnK,KAA+B,OAAzBE,EAAIF,EAAEwwD,qBAA0B,EAAStwD,EAAEK,IAAK5N,GAAMA,EAAEua,eAAe8C,SAAS7U,MAAO,IAiBlGs1D,CAAGxwD,EAAGJ,IAAKyC,KAAOrC,EAAEiJ,KAAKmD,QAAQG,eAAiBzM,EAAGE,EAAEiJ,KAAKmD,QAAQ+E,OAASnR,EAAEiJ,KAAKmD,QAAQ+E,KAAO,IAAKnR,EAAEiJ,KAAKmD,QAAQ+E,KAAKgG,KAAK,yCAEnIrmB,GAAG2/D,EAAGlpD,mBAAoB1H,GAAI/O,GAAG2/D,EAAG7oD,qBAAsB/H,GAAI/O,GAAG2/D,EAAG9oD,qBAAsB9H,GAAI/O,GAAG2/D,EAAGhpD,8BAA+B5H,GACnI,MAAMK,EAAI,CACRqT,KAAM,kCAER,OAAY,MAALtY,GAAaA,EAAEizB,aAAehuB,EAAExF,SAAW,CAChDzC,MAAO,CACLC,qBAAqB,EACrBK,uBAAuB,EACvBH,+BAA+B,EAC/BE,uBAAuB,KAEvB4H,GACewwD,CAAGrgE,GCrrNlB4P,GAAI,CACRiuB,YAAY,EAEZyiC,iBAAkB,CAChB76C,KAAM,UACN86C,QAAS,UACT//C,MAAO,UACPggD,QAAS,WAEXC,oBAAqB,CACnBh7C,KAAM,UACN86C,QAAS,UACT//C,MAAO,UACPggD,QAAS,WAEXE,wBAAyB,CACvBj7C,KAAM,UACN86C,QAAS,UACT//C,MAAO,UACPggD,QAAS,YA6BVnuD,GAAI,CAACxH,EAAG7K,EAAG0P,EAAI,uBAChB,IAAIrN,EACJ,GAAwB,OAAjBA,EAAIwI,EAAE6N,UAAmBrW,EAAEwX,SAChC,OACF,MAAMjP,EAAI5K,EAAE6K,EAAE6N,OAAOmB,UACrB,IAAKjP,EACH,OACF,MAAMiF,EAAIjF,EAAE8E,GACZ,MAAmB,mBAALG,EAAkBA,OAAI,GACnC2D,GAAK3I,IACN,MAAQ2f,UAAWxqB,GH8pGb,MACN,MAAQwqB,UAAWzqB,EAAG0qB,aAAczqB,EAAGiqB,OAAQrf,EAAG8f,cAAe7f,GAAMyf,KACvE,MAAO,CACLE,UAAWzqB,EACX0qB,aAAczqB,EACdiqB,OAAQrf,EACR8f,cAAe7f,IGpqGQsH,IAAOsiB,QAAS/kB,GAAMqD,MAAO9D,OAAQrE,EAAG8nB,aAAc7iB,EAAG4iB,cAAepwB,GHkoG3F,MACN,MAAQ4M,OAAQlP,EAAG0yB,cAAezyB,EAAG0yB,aAAc9nB,GAAM4nB,KACzD,MAAO,CACLvjB,OAAQlP,EACR0yB,cAAezyB,EACf0yB,aAAc9nB,IGvoGuF+H,GAAKD,EArCvG,CAAC7H,IAAC,IACJ+E,MACA/E,EACHy1D,iBAAkB,IACb1wD,GAAE0wD,kBAGPG,oBAAqB,IAChB7wD,GAAE6wD,qBAGPC,wBAAyB,IACpB9wD,GAAE8wD,2BAyByGj2D,CAAEI,IAAKmI,EAAGV,GAAKvS,EAAE,GAAIkT,EAAIS,EAAE,CAAA,GA+B3I1B,GAAEO,EAAEwF,iBA/BiJtI,IACnJ,MAAMF,EAAIE,EAAG2D,EAAIf,GAAE9C,EAAGG,IAAK,qBAC3B,IAAK0D,EACH,OACF,MAAM5D,EAAI4D,EAAE7D,EAAEqJ,KAAK2S,WACnB,GAAS,MAAL/b,GAAaA,EAAEgxD,SAAW/wD,EAAE+L,kBAAmBhM,EAAEmxD,cACnD,OACI,IAAN3tD,IAAYC,EAAEzI,QAAU0X,gBAAgBtX,IACxC,MAAM+E,EA9BF,EAAC9E,EAAG7K,KACV,MAAM0P,EAAI7E,EAAE+1D,YAAc,OAC1B,IAAIh2D,EAAI,CAAA,EACR,OAAO5K,EAAE6gE,iBAAmBj2D,EAAI5K,EAAE6gE,eAAenxD,IAAK1P,EAAEsgE,mBAAqB11D,EAAEkE,iBAAmB,CAChGqM,MAAOnb,EAAEsgE,iBAAiB5wD,GAC1B0L,YAAapb,EAAEsgE,iBAAiB5wD,KAC9B1P,EAAEygE,sBAAwB71D,EAAEmE,wBAA0B,CACxDoM,MAAOnb,EAAEygE,oBAAoB/wD,GAC7B0L,YAAapb,EAAEygE,oBAAoB/wD,KACjC1P,EAAE0gE,0BAA4B71D,EAAEi2D,oBAAqB,KAAQl2D,EAAEW,mBAAqB,CACtFygB,UAAW,GAAGhsB,EAAE0gE,wBAAwBhxD,mBACtC9E,GAmBQsF,CAAEV,EAAGkD,GACf7C,EAAEF,GAAI3P,EAAEwP,EAAEmxD,cAAenxD,EAAEuxD,gBAAkB,KAAMzuD,EAAGnS,GAAMA,EAAI,KAsBxC6R,GAAEO,EAAEyF,iBArBtBvI,IACN,IAAItP,EAAGqZ,EACP,MAAMjK,EAAIE,EAAG2D,EAAqD,OAAhDoG,EAAoB,OAAfrZ,EAAIoP,EAAEqJ,WAAgB,EAASzY,EAAEguB,YAAiB,EAAS3U,EAAE,GACpF,IAAKpG,EAEH,OADAmN,QAAQC,MAAM,0BAAsB/Q,EAAE+L,iBAGxC,MAAMhM,EAAI6C,GAAE9C,EAAGG,IAAK,qBACpB,IAAKF,EAEH,YADA+Q,QAAQC,MAAM,uCAGhB,MAAM7Q,EAAIH,EAAE4D,GACZ,IAAKzD,EAAE6wD,QAEL,OADAjgD,QAAQC,MAAM,qBAAsB7Q,GAAIA,EAAEgxD,eAAiB3gE,EAAE2P,EAAEgxD,cAAehxD,EAAEoxD,gBAAkB,UAAMtxD,EAAE+L,iBAG5G+E,QAAQygD,IAAI,yBAA0BrxD,KAIYqC,GAAEO,EAAEuF,cAHjD,KACLxF,EAAG7C,GAAMA,EAAI,KAE4DyC,EAAE,KACrE,IAANc,GAAWiM,WAAW,KACpB5c,EAAE4Q,EAAEzI,YAEL,CAACwI,EAAG3Q,IACP,MAAMyQ,EAAI,CACRoQ,KAAM,gCAER,OAAOxQ,EAAEmrB,aAAe/qB,EAAEzI,SAAW,CACnCzC,MAAO,CACLmB,mBAAmB,EACnBC,mBAAmB,EACnBF,iBAAiB,KAEjBgK,GCxFAmuD,GAAgBC,EAAoD,CAAAC,EAKvE7iE,KAAO,IALiEsD,SACzEA,EAAQw/D,YACRA,EAAWC,QACXA,EAAOC,aACPA,GACDH,EAEC,MAAMzlD,EAAW6lD,KACXx8D,EJ4kGA,MACN,MACEsP,iBAAkBtU,EAClB+a,iBAAkB9a,EAClB+a,kBAAmBnQ,EACnBoQ,eAAgBnQ,EAChBoQ,oBAAqB1L,GACnBwK,KACJ,MAAO,CACL1F,iBAAkBtU,EAClB+a,iBAAkB9a,EAClB+a,kBAAmBnQ,EACnBoQ,eAAgBnQ,EAChBoQ,oBAAqB1L,IIzlGJiyD,GAEbC,EAAcC,GAAgB,GAC9BC,EAAeD,GAAO,GA0D5B,OAvDAE,EAAU,MACHhgE,GAAYmD,GAAcA,EAAW+V,mBACpC2mD,EAAYj3D,UAAY42D,GAAgBO,EAAan3D,UAEvDyU,WAAW,KACLla,GAAcA,EAAW+V,kBAC3B/V,EAAW+V,iBAAiBsmD,IAE7B,GACHK,EAAYj3D,QAAU42D,SAAAA,GAExBO,EAAan3D,SAAU,IAExB,CAAC42D,EAAax/D,EAAUmD,IAG3B68D,EAAU,KACR,MAAMC,EAAwBA,KAC5BF,EAAan3D,SAAU,GAKzB,OADA7H,OAAO4rB,iBAAiB,yBAA0BszC,GAC3C,IAAMl/D,OAAO6rB,oBAAoB,yBAA0BqzC,KAIpEC,EAAoBxjE,EAAK,KAAA,CAEvByjE,WAAahmD,IACPL,GAAYA,EAASwC,eACvBxC,EAASwC,cAAcnC,IAG3BimD,SAAUA,MACHpgE,GAAYmD,GAAcA,EAAW+V,kBACxC/V,EAAW+V,kBAAiB,IAGhCmnD,UAAWA,MACJrgE,GAAYmD,GAAcA,EAAW+V,kBACxC/V,EAAW+V,kBAAiB,IAGhConD,WAAYA,MACLtgE,GAAYmD,GAAcA,EAAW+V,kBACxC/V,EAAW+V,oBAGfqnD,cAAgBd,IACVC,GACFA,EAAaD,MAGf,CAAC3lD,EAAU3W,EAAYnD,EAAU0/D,IAC9B,OAGTL,GAAcmB,YAAc,gBCpE5B,MAAMC,GAA0ClB,IAK3C,IAL4CmB,SAC/CA,EAAQvyD,UACRA,EAAY,GAAEpR,MACdA,EAAK4jE,eACLA,GAAiB,GAClBpB,EACC,MA8BMqB,EAAaD,EA9BsB,CACvC/7D,QAAS,eACTg5D,QAAS,WACTrjD,gBAAiB,cACjBizB,OAAQ,iBACRj0B,MAAO,QACPu7B,eAAgB,OAChB9vC,aAAc,MACdnE,WAAY,SACZ28D,UAAW,SACX78D,OAAQ,MACRC,SAAU,OACV86C,QAAS,GACTx+B,WAAY,iBAG4B,CACxCtY,QAAS,eACTg5D,QAAS,YACTrjD,gBAAiB,QACjBizB,OAAQ,yCACRj0B,MAAO,+BACPu7B,eAAgB,OAChB9vC,aAAc,MACdnE,WAAY,OACZ28D,UAAW,SACX78D,OAAQ,OACRypB,UAAW,gCAKb,OACEy2C,EAAA7jE,cAAA6jE,EAAAnlC,SAAA,KACGilC,GACCE,EAAA7jE,cAAA,QAAA,KAAA,wMASF6jE,EAAA7jE,cAAA,IAAA,CACEg5B,KAAM0qC,EACNn2C,OAAO,SACPiM,IAAI,sBACJroB,UAAS,uBAAAi9C,OAAyBuV,EAAiB,6BAA+B,GAAE,KAAAvV,OAAIj9C,GACxFpR,MAAO6gB,OAAAoZ,OAAApZ,OAAAoZ,OAAA,CAAA,EAAK4pC,GAAe7jE,IAE3B,YCpEF+jE,GAAqBA,IACzBD,EAAA7jE,cAAA,MAAA,CACEmR,UAAU,kBACVpR,MAAO,CACL+H,WAAY,SACZK,eAAgB,SAChBF,MAAO,OACPC,OAAQ,OACRF,aAAc,MACduV,gBAAiB,+BACjBwmD,YAAa,MACbn8D,QAAS,QAEX4lB,KAAK,MACL,aAAW,iBACXhqB,MAAM,kBAENqgE,EAAA7jE,cAAA,MAAA,CACEiI,MAAM,KACNC,OAAO,KACP5G,QAAQ,YACRE,KAAK,OACLwuB,OAAO,QACPhuB,YAAY,IACZD,cAAc,QACdiiE,eAAe,QACf,cAAY,OACZroB,UAAU,SAEVkoB,EAAA7jE,cAAA,OAAA,CAAMuB,EAAE,8CACRsiE,EAAA7jE,cAAA,SAAA,CAAQy6C,GAAG,KAAKC,GAAG,IAAI5pC,EAAE,QCvCzBmzD,GAAY,GAClB,IAAK,IAAIjzD,EAAI,EAAGA,EAAI,MAAOA,EACvBizD,GAAU/7C,MAAMlX,EAAI,KAAO0Q,SAAS,IAAIgG,MAAM,ICHlD,IAAInG,GACJ,MAAM2iD,GAAQ,IAAIziD,WAAW,ICA7B,IAAA0iD,GAAe,CAAE7iD,WADoB,oBAAXD,QAA0BA,OAAOC,YAAcD,OAAOC,WAAWyd,KAAK1d,SCGhG,SAAS+iD,GAAGvkD,EAASwkD,EAAK5lB,GACtB,GAAI0lB,GAAO7iD,aAAuBzB,EAC9B,OAAOskD,GAAO7iD,aAGlB,MAAMgjD,GADNzkD,EAAUA,GAAW,CAAA,GACA0kD,QAAU1kD,EAAQ2kD,SFN5B,WACX,IAAKjjD,GAAiB,CAClB,GAAsB,oBAAXF,SAA2BA,OAAOE,gBACzC,MAAM,IAAIZ,MAAM,4GAEpBY,GAAkBF,OAAOE,gBAAgBwd,KAAK1d,OAClD,CACA,OAAOE,GAAgB2iD,GAC3B,CEFsDM,GAClD,GAAIF,EAAKzpD,OAAS,GACd,MAAM,IAAI8F,MAAM,qCAcpB,OAZA2jD,EAAK,GAAgB,GAAVA,EAAK,GAAa,GAC7BA,EAAK,GAAgB,GAAVA,EAAK,GAAa,IHR1B,SAAyBG,EAAKhmB,EAAS,GAC1C,OAAQwlB,GAAUQ,EAAIhmB,EAAS,IAC3BwlB,GAAUQ,EAAIhmB,EAAS,IACvBwlB,GAAUQ,EAAIhmB,EAAS,IACvBwlB,GAAUQ,EAAIhmB,EAAS,IACvB,IACAwlB,GAAUQ,EAAIhmB,EAAS,IACvBwlB,GAAUQ,EAAIhmB,EAAS,IACvB,IACAwlB,GAAUQ,EAAIhmB,EAAS,IACvBwlB,GAAUQ,EAAIhmB,EAAS,IACvB,IACAwlB,GAAUQ,EAAIhmB,EAAS,IACvBwlB,GAAUQ,EAAIhmB,EAAS,IACvB,IACAwlB,GAAUQ,EAAIhmB,EAAS,KACvBwlB,GAAUQ,EAAIhmB,EAAS,KACvBwlB,GAAUQ,EAAIhmB,EAAS,KACvBwlB,GAAUQ,EAAIhmB,EAAS,KACvBwlB,GAAUQ,EAAIhmB,EAAS,KACvBwlB,GAAUQ,EAAIhmB,EAAS,MAAMt6B,aACrC,CGFWugD,CAAgBJ,EAC3B,CCTA,SAASK,KACP,MAA+B,oBAAjB1hD,cAAoE,SAApCA,aAAaG,QAN3C,eAOlB,CAGA,MAAM/S,GACK,2EADLA,GAEK,2EAFLA,GAGK,2EAHLA,GAIK,qGAJLA,GAKQ,kFAGDu0D,GAEFxyC,KACHuyC,MACFhjD,QAAQygD,IAAG,sBAAAhU,OAnBU,SAmBwB,KAAK/9C,GAAgBA,KAJ3Du0D,GASF,SAACt/B,GACR,GAAIq/B,KAAkB,CAAA,IAAA,IAAAE,EAAA5qC,UAAApf,OADKiqD,MAAe9lD,MAAA6lD,EAAA,EAAAA,OAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAfD,EAAeC,EAAA,GAAA9qC,UAAA8qC,GAExCpjD,QAAQygD,IAAG,iBAAAhU,OAAkB9oB,GAAUj1B,GAAgB,MAAOy0D,EAChE,CACF,EAbWF,GAgBF,SAACt/B,GACR,GAAIq/B,KAAkB,CAAA,IAAA,IAAAK,EAAA/qC,UAAApf,OADKiqD,MAAe9lD,MAAAgmD,EAAA,EAAAA,OAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAfH,EAAeG,EAAA,GAAAhrC,UAAAgrC,GAExCtjD,QAAQygD,IAAG,iBAAAhU,OAAkB9oB,GAAUj1B,GAAgB,MAAOy0D,EAChE,CACF,EApBWF,GAuBFznD,CAACmoB,EAAgBtrB,KACpB2qD,MACFhjD,QAAQygD,IAAG,iBAAAhU,OAAkB9oB,GAAUj1B,GAAgB,GAAI2J,IAzBpD4qD,GA8BL,WACJjjD,QAAQujD,QAAKjrC,UACf,EAhCW2qC,GAmCJ,WACLjjD,QAAQC,SAAMqY,UAChB,EC/DIkrC,GAAuB,0BA6BhBC,GAAoBA,IAC/B,kBAAAhX,OAAyBiX,MAOdC,GAA0BA,KACrC,IACE,MAAM3H,EAAS16C,aAAaG,QAAQ+hD,IACpC,OAAOxH,EAAS96C,KAAKK,MAAMy6C,GAAU,CAAA,CACvC,CAAE,MAAA0B,GAEA,MAAO,CAAA,CACT,GA+BWkG,GAAsBA,CACjCC,EACAC,EACAC,EACA3nD,EACA9d,KAEA,MAAM0lE,EAAQL,MAGQK,EAAMH,KAE1BG,EAAMH,GAAa,CACjB1oD,SAAU,GACV8oD,WAAW,IAAI5jD,MAAOi3C,cACtB4M,QAAS,IAEXjB,GAAe,sBAAuB,CAAEY,UAAWA,EAAU99C,OAAM,OAKrE,GADoBi+C,EAAMH,GAAW1oD,SAASgpD,KAAK1xD,GAAKA,EAAE0N,KAAO2jD,GAO/D,YALAb,GAAe,4BAA6B,CAC1CY,UAAWA,EAAU99C,WACrB+9C,UAAWA,EAAU/9C,UACrB3J,WAMJ,MAAMgoD,EAA+B,CACnCjkD,GAAI2jD,EACJpoD,QAASqoD,EACT3nD,SACA9d,OACA8hB,UAAWC,KAAKuqC,OAGlBoZ,EAAMH,GAAW1oD,SAASoL,KAAK69C,GAC/BnB,GAAe,gBAAiB,CAC9BY,UAAWA,EAAU99C,WACrB+9C,UAAWA,EAAU/9C,UACrB3J,SACAioD,eAAgBL,EAAMH,GAAW1oD,SAASjC,SAO5C,MAAMiC,EAAW6oD,EAAMH,GAAW1oD,SAI5BmpD,EAAYnpD,EAASmK,KAAK7S,UAC9B,MAA2B,QAA3BA,EAAE2J,OAAOoG,gBACA,QAATk7C,EAAAjrD,EAAEiJ,eAAO,IAAAgiD,OAAA,EAAAA,EAAE3/C,SACXtL,EAAEiJ,QAAQxC,QAJkB,MAO9B,GAAIorD,EAAW,CAEb,MAAM5oD,EAAU4oD,EAAU5oD,QAC1BsoD,EAAMH,GAAWK,QAAUxoD,EAAQqK,MAAM,EAAG,KAAOrK,EAAQxC,OAAS,GAAK,MAAQ,GACnF,KAAO,CAEL,MAAMqrD,EAAmBppD,EAASmK,KAAK7S,IAAI,IAAAirD,EACzC,MAA2B,SAA3BjrD,EAAE2J,OAAOoG,gBAAqC,QAATk7C,EAAAjrD,EAAEiJ,eAAO,IAAAgiD,OAAA,EAAAA,EAAE3/C,UAElD,GAAIwmD,IAAqBP,EAAMH,GAAWK,QAAS,CACjD,MAAMxoD,EAAU6oD,EAAiB7oD,QACjCsoD,EAAMH,GAAWK,QAAUxoD,EAAQqK,MAAM,EAAG,KAAOrK,EAAQxC,OAAS,GAAK,MAAQ,GACnF,CACF,CApGgC8qD,WAEhC,MAAMQ,EAAmBA,IACvBvlD,OAAO6P,OAAOk1C,GAAOthD,OAAO,CAAC+hD,EAAKC,IAAYD,EAAMC,EAAQvpD,SAASjC,OAAQ,GAG/E,KAAOsrD,IArDkB,KAqDyBvlD,OAAOC,KAAK8kD,GAAO9qD,OAAS,GAAG,CAE/E,MAAMyrD,EACyF,QADvEjH,EAAAz+C,OAAO2lD,QAAQZ,GACpCa,KAAK,CAAAjE,EAAAkE,KAAA,IAAC,CAAG51D,GAAE0xD,GAAE,CAAGluD,GAAEoyD,EAAA,OAAK,IAAIzkD,KAAKnR,EAAE+0D,WAAWhzC,UAAY,IAAI5Q,KAAK3N,EAAEuxD,WAAWhzC,YAAW,UAAE,IAAAysC,OAAA,EAAAA,EAAG,GAElG,IAAIiH,EAGF,aAFOX,EAAMW,EAIjB,CACArjD,aAAaL,QAAQuiD,GAAsBtiD,KAAKC,UAAU6iD,KAqF1De,CAAyBf,GAEzBf,GAAe,gBAAiB,CAC9B+B,YAAa/lD,OAAOC,KAAK8kD,GAAO9qD,OAChC+rD,iBAAkBhmD,OAAO6P,OAAOk1C,GAAOthD,OAAO,CAAC+hD,EAAKx1D,IAAMw1D,EAAMx1D,EAAEkM,SAASjC,OAAQ,MA2B1EgsD,GAA0BrB,YAErC,OAAwC,QAAjCsB,EAAgB,QAAhBzH,EADOiG,KACDE,UAAU,IAAAnG,OAAA,EAAAA,EAAEviD,SAASjC,cAAM,IAAAisD,EAAAA,EAAI,GAQjCC,GAA4BvB,IACvC,MACMa,EADQf,KACQE,GACtB,OAAKa,aAAO,EAAPA,EAAST,WAGP5jD,KAAKuqC,MAAQ,IAAIvqC,KAAKqkD,EAAQT,WAAWhzC,UAFvC,GC/LLo0C,GAAiBC,OAA8CC,GAExDC,GAMR5E,IAMA,IANCt+D,SACJA,EAAQmjE,aACRA,EAAYC,aACZA,EAAYC,aACZA,EAAYC,mBACZA,GACDhF,EACC,OACEsB,EAAA7jE,cAACgnE,GAAe96D,SAAQ,CAACC,MAAO,CAAEi7D,eAAcC,eAAcC,eAAcC,uBACzEtjE,IAKMujE,GAAaA,KACxB,MAAMC,EAAUC,EAAWV,IAC3B,IAAKS,EACH,MAAM,IAAI9mD,MAAM,oDAElB,OAAO8mD,GCAHE,GAA0BA,KAC9B,MAAOC,EAAQC,GAAaC,GAAS,IAC9BC,EAAUC,GAAeF,EAA4C,KACrEG,EAAWC,GAAgBJ,EAAwB,OACnDK,EAAWC,GAAgBN,EAAiB,GAC7CO,EAAUvF,EAAuB,MACjCwF,EAAYxF,EAA0B,OAEtCx6C,gBAAEA,GAAoBq6C,MACtBz3C,uBAAEA,GAA2Bq9C,MAC7BlB,aAAEA,EAAYD,aAAEA,GAAiBI,KAGvCxE,EAAU,aACR,MAAMwF,EAAsBx/D,IAExBq/D,EAAQz8D,UACPy8D,EAAQz8D,QAAQ2Z,SAASvc,EAAMukB,SAChC+6C,EAAU18D,UACT08D,EAAU18D,QAAQ2Z,SAASvc,EAAMukB,SAElCs6C,GAAU,IAIRY,EAAyC,QAA9B3B,EAAe,QAAfzH,EAAAgJ,EAAQz8D,eAAO,IAAAyzD,OAAA,EAAAA,EAAEqJ,qBAAa,IAAA5B,EAAAA,EAAIlnE,SAInD,OAHIgoE,GACFa,EAAS94C,iBAAiB,YAAa64C,GAElC,KACLC,EAAS74C,oBAAoB,YAAa44C,KAE3C,CAACZ,IAEJ,MAsBMe,EAAuBnD,UAC3B,MAAMoD,EAAmBxB,IAQzB,GANAxC,GAAe,oBAAqB,CAClCiE,cAAerD,EAAU99C,WACzBohD,eAAgBF,aAAgB,EAAhBA,EAAkBlhD,OAAM,MAItC89C,IAAcoD,EAGhB,OAFAhE,GAAe,kDACfiD,GAAU,GAMZ,MAAMkB,EFoEyBvD,WAEjC,OAAuB,QAAhBnG,EADOiG,KACDE,UAAU,IAAAnG,OAAA,EAAAA,EAAEviD,WAAY,IEtEZksD,CAAmBxD,GAAWhhD,OAAOpQ,UAAK,OAAS,QAATirD,EAAAjrD,EAAEiJ,eAAO,IAAAgiD,OAAA,EAAAA,EAAE3/C,SAC5EklD,GAAe,wCAAyC,CACtDqE,MAAOF,EAAeluD,OACtBquD,IAAKH,EAAe13D,IAAI+C,GAAKA,EAAE0N,GAAG4F,aAIpC,MAAMyhD,EAAcJ,EAAe13D,IAAI+C,IAAC,CACtC0N,GAAI1N,EAAE0N,GACNzE,QAASjJ,EAAEiJ,QACXU,OAAQ3J,EAAE2J,OAAOC,cACjB/d,KAAMmU,EAAEnU,MAAQ,SAChB8hB,UAAW,IAAIC,KAAK5N,EAAE2N,WAAWk3C,iBC/FDf,MDuGlCmP,EAAa7B,GACbZ,GAAe,qBAAsB,CAAEwE,WAAY5D,EAAU99C,OAAM,MAGnEY,EAAgB6gD,GAChBvE,GAAe,yBAA0B,CAAEqE,MAAOE,EAAYtuD,SC5G5Bq9C,ED+GK,UAAjBoQ,EAAU18D,eAAO,IAAAyzD,OAAA,EAAAA,EAAEqJ,cC7G3CroD,WAAW,KACT,MACMgpD,GADanR,GAAQt4D,UACC0pE,cAAc,4BACrCD,GAKLA,EAASE,iBAAiB,oBAAoB9kD,QAAQ+kD,UACpD,IAAI5R,EAAO4R,EAAOlkD,UACdmkD,GAAU,EAGV7R,EAAK92C,SAAS,QAChB82C,EAAOA,EAAKp2C,QACV,2BACA,iEAEFioD,GAAU,GAKR7R,EAAK92C,SAAS,iBAChB82C,EAAOA,EAAKp2C,QACV,6DACA,iEAEFioD,GAAU,IAKR7R,EAAK92C,SAAS,oBAAcu+C,EAAAmK,EAAOvlD,kCAAanD,SAAS,gBAEvC0oD,EAAOvlD,aAAe,IAC1BnD,SAAS,cACvB82C,EAAOA,EAAKp2C,QACV,sDACA,iEAEFioD,GAAU,GAIVA,IACFD,EAAOlkD,UAAYsyC,MAGtB,ID+DD1sC,GAAuB,GACvB05C,GAAe,oCAEfiD,GAAU,IAGZ,OACEhE,EAAA7jE,cAAA,MAAA,CAAKD,MAAO,CAAEgyB,SAAU,aACtB8xC,EAAA7jE,cAAA,SAAA,CACEN,IAAK4oE,EACLn3D,UAAU,iBACVrN,QAjFc4lE,KAClB,IAAK9B,IAEHI,EF6FwB2B,MAC5B,MAAMhE,EAAQL,KACd,OAAO1kD,OAAO2lD,QAAQZ,GACnBt0D,IAAIu4D,IAAA,IAAEpE,EAAWxrD,GAAK4vD,EAAA,OAAKhpD,OAAAoZ,OAAA,CAAGwrC,aAAcxrD,KAC5CwsD,KAAK,CAAC31D,EAAGwD,IAAM,IAAI2N,KAAK3N,EAAEuxD,WAAWhzC,UAAY,IAAI5Q,KAAKnR,EAAE+0D,WAAWhzC,YEjG1D+2C,IAGRrB,EAAU18D,SAAS,CACrB,MAAMzF,EAAamiE,EAAU18D,QAAQi+D,QAAQ,oBAC7C,GAAI1jE,EAAY,CACd,MAAM2jE,EAAW3jE,EAAWiV,wBACtB2uD,EAAazB,EAAU18D,QAAQwP,wBAErC8sD,EAAa4B,EAAS7hE,MAAQ,GAG9BmgE,EAAa0B,EAASnuD,MAAQouD,EAAWpuD,MAAQ,GAAK,EACxD,CACF,CAEFksD,GAAWD,IA+DP7nE,MAAO,CACL+H,WAAY,SACZK,eAAgB,SAChBF,MAAO,OACPC,OAAQ,OACRF,aAAc,MACduV,gBAAiB,+BACjBwmD,YAAa,OACbn8D,QAAS,OACT4oC,OAAQ,OACR9sC,OAAQ,UACRk9D,QAAS,GAEX,aAAW,oBACXp9D,MAAM,oBACN,gBAAeokE,EACf,gBAAc,QAEd/D,EAAA7jE,cAAA,MAAA,CACEiI,MAAM,KACNC,OAAO,KACP5G,QAAQ,YACRE,KAAK,OACLwuB,OAAO,QACPhuB,YAAY,IACZD,cAAc,QACdiiE,eAAe,QACf,cAAY,OACZroB,UAAU,SAGVkoB,EAAA7jE,cAAA,SAAA,CAAQy6C,GAAG,KAAKC,GAAG,KAAK5pC,EAAE,OAC1B+yD,EAAA7jE,cAAA,WAAA,CAAUw/C,OAAO,uBAIpBooB,GACC/D,EAAA7jE,cAAA,MAAA,CACEN,IAAK2oE,EACL76C,KAAK,OACLztB,MAAO,CACLgyB,SAAU,WACVpW,MAAOwsD,EAAS,IAAA/Z,OAAO+Z,QAAgB,QACvC3sD,IAAK,OACLwuD,UAAW,MACX/hE,MAAOggE,EAAS,GAAA7Z,OAAM6Z,QAAgB,QACtC1qD,gBAAiB,QACjBvV,aAAc,EACdiiE,aAAc,yCACd78C,UAAW,+BACX88C,UAAW,QACXC,UAAW,OACXh2C,OAAQ,MAGW,IAApB4zC,EAASltD,OACRgpD,EAAA7jE,cAAA,MAAA,CACED,MAAO,CACL6gE,QAAS,YACTrkD,MAAO,OACP3Y,SAAU,OACV48D,UAAW,WAGb,mBAGFuH,EAAS12D,IAAKg1D,GACZxC,EAAA7jE,cAAA,SAAA,CACEqlB,IAAKghD,EAAQb,UACbh4C,KAAK,WACL1pB,QAASA,IAAM6kE,EAAoBtC,EAAQb,WAC3CzlE,MAAO,CACLkI,MAAO,OACP24D,QAAS,YACTpwB,OAAQ,OACRjzB,gBAAiB,cACjB7Z,OAAQ,UACR88D,UAAW,OACX54D,QAAS,OACTC,cAAe,SACfuiE,IAAK,MACLH,aAAc,kBAEhBxtD,aAAerb,IACbA,EAAEipE,cAActqE,MAAMwd,gBAAkB,WAE1Cb,aAAetb,IACbA,EAAEipE,cAActqE,MAAMwd,gBAAkB,gBAG1CsmD,EAAA7jE,cAAA,OAAA,CACED,MAAO,CACL6D,SAAU,OACV2Y,MAAO,OACPyiC,SAAU,SACVsrB,aAAc,WACdtrC,WAAY,WAGbqnC,EAAQR,SAAW,oBAEtBhC,EAAA7jE,cAAA,OAAA,CACED,MAAO,CACL6D,SAAU,OACV2Y,MAAO,SAtPPguD,KAClB,MAAMC,EAAO,IAAIxoD,KAAKuoD,GAEhBE,GADM,IAAIzoD,MACG4Q,UAAY43C,EAAK53C,UAC9B83C,EAAW3iD,KAAK8K,MAAM43C,EAAM,OAElC,OAAiB,IAAbC,EACKF,EAAKG,mBAAmB,GAAI,CAAEC,KAAM,UAAWC,OAAQ,YACxC,IAAbH,EACF,YACEA,EAAW,EACbF,EAAKM,mBAAmB,GAAI,CAAEC,QAAS,UAEvCP,EAAKM,mBAAmB,GAAI,CAAEE,MAAO,QAASC,IAAK,aA4O3CC,CAAW7E,EAAQT,4OElQtC,MAAMuF,GAAWA,EACfljE,QAAQ,GACRC,SAAS,GACTqU,QAAQ,eACRtY,cACGw3B,KAGDooC,EAAA7jE,cAAA,MAAAorE,GAAA,CACEtpE,MAAM,6BACNmG,MAAOA,EACPC,OAAQA,EACR5G,QAAQ,YACRE,KAAK,OACLwuB,OAAQzT,EACRva,YAAY,IACZD,cAAc,QACdiiE,eAAe,QACf,cAAY,OACZroB,UAAU,SACNlgB,GAEHx3B,GCrBDonE,GAAe5vC,GAEjBooC,EAAA7jE,cAACmrE,GAAa1vC,EACZooC,EAAA7jE,cAAA,OAAA,CAAMuB,EAAE,iHCOR+pE,GAAmBrE,EAA4C,MAWxDsE,GAAsDhJ,IAG9D,IAH+DiJ,WAClEA,EAAUvnE,SACVA,GACDs+D,EAEC,MAAMkJ,EAAgB3I,EAAO0I,GAG7B,OAFAC,EAAc7/D,QAAU4/D,EAGtB3H,EAAA7jE,cAACsrE,GAAiBp/D,SAAQ,CAACC,MAAO,CAAEq/D,WAAaxiE,GAAUyiE,EAAc7/D,QAAQ5C,KAC9E/E,IC3BDynE,GAA0BA,KAC9B,MAAM91C,YAAEA,GAAgB+1C,MAClB7gD,iBAAEA,GAAqBy9C,MACvBzrD,SAAEA,GAAa6lD,MACfyE,aAAEA,EAAYE,aAAEA,EAAYC,mBAAEA,GAAuBC,MACrDgE,WAAEA,GD4BQ9D,EAAW4D,KAGlB,CAAEE,WAAYA,QCHvB,OACE3H,EAAA7jE,cAAA,SAAA,CACE8D,QA5BkB8V,UAEpB,MAAMgvD,EAAmBxB,IACnBwE,EAAuBhD,EAAmB/B,GAAuB+B,GAAoB,EAG3F4C,EAAW,CACTvrE,KAAM,mBACN2rE,yBAIFtE,UAGMx8C,EAAiB,UAGjB8K,IAGNvV,WAAW,KACTknD,KACC,MAMDn2C,SAAU,EACV,aAAW,wBACXrxB,MAAO,CACLwd,gBAAiB,+BACjBizB,OAAQ,OACRj0B,MAAO,UACP3Y,SAAU,OACVF,OAAQ,UACRk9D,QAAS,WACT54D,aAAc,MACdkY,WAAY,gBACZtY,QAAS,OACTE,WAAY,SACZsiE,IAAK,MACLvmE,WAAY,OAEd4Y,aAAerb,IACZA,EAAEmsB,OAA6BxtB,MAAMwd,gBAAkB,kCAE1Db,aAAetb,IACZA,EAAEmsB,OAA6BxtB,MAAMwd,gBAAkB,iCAG1DsmD,EAAA7jE,cAACqrE,GAAW,CAACpjE,MAAO,GAAIC,OAAQ,kBClDhC,SAAU2jE,GAAmBC,GAEjC,GAAuB,iBAAZA,EACT,OAAOA,EAET,GAAuB,iBAAZA,EACT,OAAO/wC,OAAO+wC,GAEhB,IAAKA,EACH,MAAO,GAIT,GAAI9sD,MAAMK,QAAQysD,GAChB,OAAOA,EAAQz6D,IAAIw6D,IAAoB3sD,KAAK,IAI9C,GAAuB,iBAAZ4sD,GAAoC,OAAZA,GAAoB,UAAWA,EAAS,CACzE,MAAMrwC,EAASqwC,EAA+CrwC,MAC9D,GAAIA,GAAS,aAAcA,EACzB,OAAOowC,GAAmBpwC,EAAMx3B,SAEpC,CAGA,MAAO,EACT,CCZA,MAAM8nE,GAAkCA,KACtC,MAAM3E,aAAEA,GAAiBI,KAEnBwE,EAAyBC,EAAajjE,UAC1C,MACMmU,EAAuB,QAAbkiD,EADCr2D,EACQgR,YAAI,IAAAqlD,OAAA,EAAAA,EAAEliD,QAE/B,KAAKA,aAAO,EAAPA,EAAS2E,IACZ,OAGF,MAAM/D,EAASZ,EAAQY,OACjB9d,EAAOkd,EAAQld,MAAQ,SAI7B,IAAIod,EAeJ,GAbEA,EAD6B,iBAApBF,EAAQE,QACPF,EAAQE,QAERwuD,GAAmB1uD,EAAQE,SAIvCunD,GAAe,UAAW,CACxB9iD,GAAI3E,EAAQ2E,GACZ/D,SACAV,QAASA,EAAQqd,UAAU,EAAG,KAAOrd,EAAQxC,OAAS,GAAK,MAAQ,MAIjEwC,EAAQyD,SAAS,yBACnB,OAIF,IAAKzD,EAAQqC,OACX,OAGF,MAAM8lD,EAAY4B,IAClB7B,GAAoBC,EAAWroD,EAAQ2E,GAAIzE,EAASU,EAAQ9d,IAC3D,CAACmnE,IAWJ,OATApE,EAAU,KACRj/D,OAAO4rB,iBAAiB,yBAA0Bq8C,GAE3C,KACLjoE,OAAO6rB,oBAAoB,yBAA0Bo8C,KAEtD,CAACA,IAGG,MC9EHE,GAAwBA,KAC5BlJ,EAAU,KAER,MAkEMmJ,EAA4BnjE,IAEhC,IAAK,CAAC,YAAa,UAAW,YAAa,aAAc,QAAS,IAAK,OAAQ,OAAO8X,SAAS9X,EAAMqc,KACnG,OAIF,MAAM+mD,EAAgBxsE,SAASwsE,cAC/B,GAAIA,IACwB,UAA1BA,EAAcloD,SACY,aAA1BkoD,EAAcloD,SACoB,SAAlCkoD,EAAc9lC,iBACd8lC,EAAcvnD,UAAUU,SAAS,4BAEjC,OAGF,MAAMpf,EAAavG,SAAS0pE,cAAc,oBAC1C,IAAKnjE,EAAY,OAGjB,MAAMkmE,EAAcrtD,MAAMC,KAAK9Y,EAAWojE,iBAAiB,oFACxD/kD,OAAO8nD,GAA0B,OAApBA,EAAGC,cAEnB,GAAIF,EAAYxxD,OAAS,EAAG,CAC1B,MACM2xD,EADcH,EAAYA,EAAYxxD,OAAS,GACfyuD,cAAc,2BAEpD,GAAIkD,GAAwD,OAAnCA,EAAkBD,aAAuB,CAChE,MAAMruD,EAAac,MAAMC,KAAKutD,EAAkBjD,iBAAiB,gCAC3DkD,EAAaD,EAAkBlD,cAAc,6BAEnD,GAAIprD,EAAWrD,OAAS,EAAG,CAEzB,MAAM6xD,EAAc,IAAIxuD,GAKxB,OAJIuuD,GACFC,EAAYxkD,KAAKukD,OAtGME,EAAC3jE,EAAO4jE,KACvC5jE,EAAM4T,iBAEN,IAAIiwD,GAAe,EAGnB,IAAK,IAAI77D,EAAI,EAAGA,EAAI47D,EAAS/xD,OAAQ7J,IACnC,GAAI47D,EAAS57D,KAAOpR,SAASwsE,eAAiBQ,EAAS57D,GAAGuU,SAAS3lB,SAASwsE,eAAgB,CAC1FS,EAAe77D,EACf,KACF,EAImB,IAAjB67D,IACFA,EAAe,GAGjB,IAAIC,EAAWD,EAEf,OAAQ7jE,EAAMqc,KACZ,IAAK,YACL,IAAK,aACHynD,EAAWD,EAAeD,EAAS/xD,OAAS,EAAIgyD,EAAe,EAAI,EACnE,MACF,IAAK,UACL,IAAK,YACHC,EAAWD,EAAe,EAAIA,EAAe,EAAID,EAAS/xD,OAAS,EACnE,MACF,IAAK,OACHiyD,EAAW,EACX,MACF,IAAK,MACHA,EAAWF,EAAS/xD,OAAS,EAC7B,MACF,IAAK,QACL,IAAK,IAAK,CAER,MAAMkyD,EAAiBH,EAASC,GAC1BG,EAAiB,IAAIC,WAAW,YAAa,CACjDC,SAAS,EACTnzD,YAAY,EACZozD,KAAMppE,SAGR,YADAgpE,EAAe7yD,cAAc8yD,EAE/B,CACA,QAEE,OAIJJ,EAASE,GAAUniD,QACnBiiD,EAASE,GAAUM,aAAa,WAAY,KAC5CR,EAASE,GAAUjoD,UAAU9F,IAAI,oBAGjC6tD,EAASnoD,QAAQ,CAACqnD,EAASrxC,KACrBA,IAAUqyC,IACZhB,EAAQsB,aAAa,WAAY,MACjCtB,EAAQjnD,UAAUwoD,OAAO,wBA2CvBV,CAAyB3jE,EAAO0jE,EAElC,CACF,CACF,CAIA,IAAI7sD,EAAU,GACd,GAAIwsD,EAAYxxD,OAAS,EAAG,CAC1B,MAAMyyD,EAAcjB,EAAYA,EAAYxxD,OAAS,GAC/C0yD,EAAoBvuD,MAAMC,KAAKquD,EAAY/D,iBAAiB,2BAC/D/kD,OAAO8nD,GAA0B,OAApBA,EAAGC,cAEnB,GAAIgB,EAAkB1yD,OAAS,EAAG,CAChC,MAAM2yD,EAAgBD,EAAkBA,EAAkB1yD,OAAS,GACnEgF,EAAUb,MAAMC,KAAKuuD,EAAcjE,iBAAiB,gBACtD,CACF,CAEA,GAAuB,IAAnB1pD,EAAQhF,OAAc,OAE1B,MAAMgyD,EAAehtD,EAAQ4tD,UAAUC,GAAUA,IAAW9tE,SAASwsE,eAErE,OAAQpjE,EAAMqc,KACZ,IAAK,YACL,IAAK,aAAc,CAEjB,IAAIsoD,EADJ3kE,EAAM4T,iBAGJ+wD,EADEd,EAAehtD,EAAQhF,OAAS,EACtBgyD,EAAe,EAGf,EAIdhtD,EAAQ8tD,GAAWP,aAAa,WAAY,KAC5CvtD,EAAQ4E,QAAQ,CAACmpD,EAAK58D,KAChBA,IAAM28D,IACRC,EAAIR,aAAa,WAAY,MAC7BQ,EAAI/oD,UAAUwoD,OAAO,uBAIzBxtD,EAAQ8tD,GAAW9oD,UAAU9F,IAAI,oBACjCc,EAAQ8tD,GAAWhjD,QACnB,KACF,CAEA,IAAK,UACL,IAAK,YAAa,CAEhB,IAAIkjD,EADJ7kE,EAAM4T,iBAGJixD,EADEhB,EAAe,EACLA,EAAe,EAGfhtD,EAAQhF,OAAS,EAI/BgF,EAAQguD,GAAWT,aAAa,WAAY,KAC5CvtD,EAAQ4E,QAAQ,CAACmpD,EAAK58D,KAChBA,IAAM68D,IACRD,EAAIR,aAAa,WAAY,MAC7BQ,EAAI/oD,UAAUwoD,OAAO,uBAIzBxtD,EAAQguD,GAAWhpD,UAAU9F,IAAI,oBACjCc,EAAQguD,GAAWljD,QACnB,KACF,CAEA,IAAK,QACL,IAAK,IAEH,GADA3hB,EAAM4T,iBACFhd,SAASwsE,eAAiBvsD,EAAQiB,SAASlhB,SAASwsE,eAAgB,CACtE,MAAMA,EAAgBxsE,SAASwsE,cAG/B,GAAIA,EAAcvnD,UAAUU,SAAS,+BAAiC6mD,EAAcvC,QAAQ,+BAAgC,CAE1H,MAAMmD,EAAiB,IAAIC,WAAW,YAAa,CACjDC,SAAS,EACTnzD,YAAY,EACZozD,KAAMppE,SAERqoE,EAAclyD,cAAc8yD,GAG5B,MAAMc,EAAe1B,EAAc9C,cAAc,uBAC3CyE,EAAeD,EAAeA,EAAa7pD,YAAemoD,EAAcnoD,aAAe,WACvF+pD,EAAe5B,EAAc9C,cAAc,sBAC3C2E,EAAYD,GAAgBA,EAAajuE,MAAMwd,gBAAkB,UAAY,YACnF2wD,EAAsB,GAAA9f,OAAI2f,OAAY3f,OAAI6f,GAC5C,KAAO,CAEL,MAAMjB,EAAiB,IAAIC,WAAW,YAAa,CACjDC,SAAS,EACTnzD,YAAY,EACZozD,KAAMppE,SAERqoE,EAAclyD,cAAc8yD,GAG5B,MAAMe,EAAe3B,EAAcnoD,aAAemoD,EAAc+B,UAChED,EAAsB,aAAA9f,OAAc2f,GACtC,CACF,CACA,MAEF,IAAK,OACH/kE,EAAM4T,iBACFiD,EAAQhF,OAAS,IACnBgF,EAAQ,GAAGutD,aAAa,WAAY,KACpCvtD,EAAQ4E,QAAQ,CAACmpD,EAAK58D,KACV,IAANA,IACF48D,EAAIR,aAAa,WAAY,MAC7BQ,EAAI/oD,UAAUwoD,OAAO,uBAGzBxtD,EAAQ,GAAGgF,UAAU9F,IAAI,oBACzBc,EAAQ,GAAG8K,SAEb,MAEF,IAAK,MAEH,GADA3hB,EAAM4T,iBACFiD,EAAQhF,OAAS,EAAG,CACtB,MAAMi8C,EAAYj3C,EAAQhF,OAAS,EACnCgF,EAAQi3C,GAAWsW,aAAa,WAAY,KAC5CvtD,EAAQ4E,QAAQ,CAACmpD,EAAK58D,KAChBA,IAAM8lD,IACR8W,EAAIR,aAAa,WAAY,MAC7BQ,EAAI/oD,UAAUwoD,OAAO,uBAGzBxtD,EAAQi3C,GAAWjyC,UAAU9F,IAAI,oBACjCc,EAAQi3C,GAAWnsC,OACrB,IAUAujD,EAA0B/wD,IAC9B,MAAMixD,EAAexuE,SAASI,cAAc,OAC5CouE,EAAahB,aAAa,YAAa,aACvCgB,EAAahB,aAAa,cAAe,QACzCgB,EAAaj9D,UAAY,UACzBi9D,EAAanqD,YAAc9G,EAC3Bvd,SAASgkB,KAAKxjB,YAAYguE,GAC1B/tD,WAAW,KACLzgB,SAASgkB,KAAK2B,SAAS6oD,IACzBxuE,SAASgkB,KAAKyqD,YAAYD,IAE3B,MAICE,EAAmB,WAA4B,IAC/CnoE,EADmC8zB,UAAApf,OAAA,QAAAqsD,IAAAjtC,UAAA,GAAAA,UAAA,GAAG,KAc1C,GAVK9zB,IACHA,EAAavG,SAAS0pE,cAAc,oBAC/BnjE,IACHA,EAAavG,SAAS0pE,cAAc,wBAEjCnjE,IACHA,EAAavG,SAAS0pE,cAAc,cAInCnjE,EAAY,OAGjB,MAAMooE,EAA2D,OAA3CpoE,EAAW0jE,QAAQ,oBAGnCwC,EAAcrtD,MAAMC,KAAK9Y,EAAWojE,iBAAiB,oFACxD/kD,OAAO8nD,GAA0B,OAApBA,EAAGC,cAEnB,GAA2B,IAAvBF,EAAYxxD,OAAc,OAE9B,MAAMyyD,EAAcjB,EAAYA,EAAYxxD,OAAS,GAG/C0yD,EAAoBvuD,MAAMC,KAAKquD,EAAY/D,iBAAiB,2BAC/D/kD,OAAO8nD,GAA0B,OAApBA,EAAGC,cAEnB,IAAI1sD,EAAU,GAId,GAAI0tD,EAAkB1yD,OAAS,EAAG,CAChC,MAAM2yD,EAAgBD,EAAkBA,EAAkB1yD,OAAS,GACnEgF,EAAUb,MAAMC,KAAKuuD,EAAcjE,iBAAiB,gBACtD,CAGA,GAAuB,IAAnB1pD,EAAQhF,OAAc,CAExB,IAAI2xD,EAAoBc,EAAYhE,cAAc,2BAKlD,IAJKkD,GAAqBrmE,IACxBqmE,EAAoBrmE,EAAWmjE,cAAc,4BAG3CkD,GAAwD,OAAnCA,EAAkBD,aAAuB,CAChE,MAAMiC,EAAmBxvD,MAAMC,KAAKutD,EAAkBjD,iBAAiB,gCACpE/kD,OAAO8nD,GAA0B,OAApBA,EAAGC,cAA8C,SAArBD,EAAGvsE,MAAM6H,SAErD,GAAI4mE,EAAiB3zD,OAAS,EAAG,CAE/B,MAAM4xD,EAAaD,EAAkBlD,cAAc,6BAC7CoD,EAAc,IAAI8B,GAgBxB,GAfI/B,GAA0C,OAA5BA,EAAWF,cAC3BG,EAAYxkD,KAAKukD,GAInBC,EAAYjoD,QAAQ,CAACqnD,EAASrxC,KAC5BqxC,EAAQsB,aAAa,WAAsB,IAAV3yC,EAAc,IAAM,MACvC,IAAVA,EACFqxC,EAAQjnD,UAAU9F,IAAI,oBAEtB+sD,EAAQjnD,UAAUwoD,OAAO,sBAKzBmB,EAAiB3zD,OAAS,EAAG,CAET2xD,EAAkBjD,iBAAiB,sBAC3C9kD,QAAQgqD,GAAQA,EAAKpB,UAGnC,MAAMqB,EAAc9uE,SAASI,cAAc,OAC3C0uE,EAAYv9D,UAAY,oBACxBu9D,EAAYzqD,YAAc,8EAC1ByqD,EAAY3uE,MAAMO,QAAU,+IAC5BksE,EAAkBrsE,aAAauuE,EAAalC,EAAkBtsE,WAChE,CASA,YANAmgB,WAAW,KACLqsD,EAAY,IAAsC,OAAhCA,EAAY,GAAGH,eAA0BgC,GAC7D7B,EAAY,GAAG/hD,SAEhB,IAGL,CACF,CACF,CAEA,GAAI9K,EAAQhF,OAAS,EAAG,CAiBtB,GAfAgF,EAAQ4E,QAAQ,CAACipD,EAAQjzC,KACvB,MAAMV,EAAqB,IAAVU,EAAc,IAAM,KACrCizC,EAAON,aAAa,WAAYrzC,GAChC2zC,EAAON,aAAa,OAAQ,UAC5BM,EAAON,aAAa,gBAAiB3yC,EAAQ,GAC7CizC,EAAON,aAAa,eAAgBvtD,EAAQhF,QAE9B,IAAV4f,EACFizC,EAAO7oD,UAAU9F,IAAI,oBAErB2uD,EAAO7oD,UAAUwoD,OAAO,sBAKxBxtD,EAAQhF,OAAS,EAA+B,CAElD,MAAM2yD,EAAgBD,EAAkB1yD,OAAS,EAAI0yD,EAAkBA,EAAkB1yD,OAAS,GAAK,KACvG,GAAI2yD,EAAe,CAEKA,EAAcjE,iBAAiB,sBACvC9kD,QAAQgqD,GAAQA,EAAKpB,UAGnC,MAAMqB,EAAc9uE,SAASI,cAAc,OAC3C0uE,EAAYv9D,UAAY,oBACxBu9D,EAAYzqD,YAAc,qEAC1ByqD,EAAY3uE,MAAMO,QAAU,+IAC5BktE,EAAcrtE,aAAauuE,EAAalB,EAActtE,WACxD,CACF,KAAqC,CAEnC,MAAMstE,EAAgBD,EAAkB1yD,OAAS,EAAI0yD,EAAkBA,EAAkB1yD,OAAS,GAAK,KACvG,GAAI2yD,EAAe,CACKA,EAAcjE,iBAAiB,sBACvC9kD,QAAQgqD,GAAQA,EAAKpB,SACrC,CACF,CAGAhtD,WAAW,KACLR,EAAQ,IAAkC,OAA5BA,EAAQ,GAAG0sD,eAA0BgC,IACrD1uD,EAAQ,GAAG8K,QACP9K,EAAQhF,OAAS,GACnBqzD,KAAsB9f,OAAIvuC,EAAQhF,6DAGrC,IACL,CACF,EAGM8zD,EAA2B9yC,IAC/B,MAAMhc,EAAUgc,EAAU0tC,iBAAiB,gBAC3C1pD,EAAQ4E,QAAQ,CAACipD,EAAQjzC,KAClBizC,EAAOkB,aAAa,UACvBlB,EAAON,aAAa,OAAQ,UAC5BM,EAAON,aAAa,WAAsB,IAAV3yC,EAAc,IAAM,MACpDizC,EAAON,aAAa,gBAAiB3yC,EAAQ,GAC7CizC,EAAON,aAAa,eAAgBvtD,EAAQhF,WAI7BghB,EAAU0tC,iBAAiB,+BACnC9kD,QAAQ,CAACoqD,EAAUp0C,KACvBo0C,EAASD,aAAa,UACzBC,EAASzB,aAAa,OAAQ,YAC9ByB,EAASzB,aAAa,WAAsB,IAAV3yC,EAAc,IAAM,UAMtD+jB,EAAW,IAAIswB,iBAAkBC,IACrCA,EAAUtqD,QAASuqD,IACjB,GAAsB,cAAlBA,EAAS/uE,KAAsB,CACjC,MAAMgvE,EAAajwD,MAAMC,KAAK+vD,EAASC,YAEjCC,EAAgBD,EAAWnJ,KAAKxrC,IAAI,IAAA60C,EAAAC,EAAAC,EAAAC,EAAA,OACxCh1C,EAAKxW,WAAaC,KAAKwrD,wBACtBJ,EAAA70C,EAAKzV,iBAAS,IAAAsqD,OAAA,EAAdA,EAAgB5pD,SAAS,4BACX,QADmC6pD,EACjD90C,EAAKzV,iBAAS,IAAAuqD,OAAA,EAAdA,EAAgB7pD,SAAS,kBACP,QADqB8pD,EACvC/0C,EAAKgvC,qBAAa,IAAA+F,OAAA,EAAlBA,EAAAzqD,KAAA0V,EAAqB,qCAAyBg1C,EAC9Ch1C,EAAKgvC,qBAAa,IAAAgG,OAAA,EAAlBA,EAAA1qD,KAAA0V,EAAqB,oBAGlBk1C,EAAmBP,EAAWnJ,KAAKxrC,IAAI,IAAAm1C,EAAAC,EAAA,OAC3Cp1C,EAAKxW,WAAaC,KAAKwrD,wBACtBE,EAAAn1C,EAAKzV,iBAAS,IAAA4qD,OAAA,EAAdA,EAAgBlqD,SAAS,6BACP,QADgCmqD,EAClDp1C,EAAKgvC,qBAAa,IAAAoG,OAAA,EAAlBA,EAAA9qD,KAAA0V,EAAqB,+BAIxB,GAAI40C,GAAiBM,EAAkB,CAErC,IAAIG,EAAeX,EAASzhD,OAC5B,KAAOoiD,IAAuC,QAAvBC,EAACD,EAAa9qD,iBAAS,IAAA+qD,IAAtBA,EAAwBrqD,SAAS,aAAoC,QAAvBsqD,EAACF,EAAa9qD,iBAAS,IAAAgrD,IAAtBA,EAAwBtqD,SAAS,qBAAoB,CAAA,IAAAqqD,EAAAC,EAC1HF,EAAeA,EAAaG,aAC9B,CAGA,MAAMC,EAAeJ,GAAgB/vE,SAGrC+uE,EAAwBoB,GAGxBA,EAAaxG,iBAAiB,sGAAsG9kD,QAAQ6nD,IAC1IA,EAAGc,aAAa,WAAY,MAC5Bd,EAAGznD,UAAUwoD,OAAO,sBAItBhtD,WAAW,IAAMiuD,EAAiBqB,GAAe,IACnD,CACF,MAKJnxB,EAASwxB,QAAQpwE,SAASgkB,KAAM,CAC9BqsD,WAAW,EACXC,SAAS,IAIXtwE,SAAS+vB,iBAAiB,UAAWw8C,GAGrCwC,EAAwB/uE,UACxB0uE,IAIA,MAAM6B,EAAgBtoD,YAAY,KAEhCjoB,SAAS2pE,iBAAiB,WAAW9kD,QAAQkrD,IAC3C,MAAMS,EAAoBT,EAAapG,iBAAiB,uCAAuC1uD,OAAS,EAClGw1D,EAAuBV,EAAapG,iBAAiB,+BAA+B1uD,OAAS,EAEnG,GAAIu1D,EAAmB,CAErBzB,EAAwBgB,GAExB,MAAMW,EAAuBX,EAAapG,iBAAiB,0BAA0B1uD,OAC9D80D,EAAapG,iBAAiB,gBAAgB1uD,OAEhDy1D,GACnBhC,EAAiBqB,EAErB,CAEA,GAAIU,EAAsB,CAExB1B,EAAwBgB,GAExB,MAAMY,EAA0BZ,EAAapG,iBAAiB,yCAAyC1uD,OAC7E80D,EAAapG,iBAAiB,+BAA+B1uD,OAE/D01D,GACtBjC,EAAiBqB,EAErB,KAED,KAGH,MAAO,KACL/vE,SAASgwB,oBAAoB,UAAWu8C,GACxC3tB,EAASgyB,aACT1oD,cAAcqoD,KAEf,IAEI,MC3dF,MCiDMM,GAYG,UAZHA,GAaK,UAbLA,GAcC,oBAdDA,GAeF,UAfEA,GAgBH,iBAhBGA,GAiBE,6BAjBFA,GAkBG,+BAlBHA,IAmBD,EAnBCA,GAoBE,qBApBFA,GAqBD,SAOCC,GAAyC,CACpDluE,QAAS,CACPI,YAAY,EACZC,YAAY,GAEdK,QAAS,CACPC,KAAM,SAERqC,UAAW,CACTjB,UAAU,EACVsB,eAAgB,IAChBD,oBAAoB,EACpBH,cAAc,EACdO,WAAW,GAEbG,WAAY,CACVO,aAAa,EACbN,eAAe,GAEjBgB,UAAW,CACTF,gBAAgB,EAChBC,YAAa,GACbjD,YAAY,GAEd8C,WAAY,CACV9C,YAAY,GAGdI,aAAc,CACZC,UAAU,EACVK,WAAW,GAGbC,MAAO,CAAEN,UAAU,GACnBmE,MAAO,CAAEnE,UAAU,GACnB8D,eAAgB,CAAE9D,UAAU,ICtJxBosE,GAAQrO,EAA4C,CAAC7mC,EAAO/7B,aAChE,MAAMkxE,OAEJA,EAAMC,WACNA,EAAUC,eAGVA,EAAcC,eACdA,EAAc/sE,KACdA,EAAIgtE,aACJA,EAAYC,WAGZA,EAAUC,gBACVA,GAAkB,EAAKC,WACvBA,EAAU1uE,aAGVA,EAAYC,eACZA,EAAc0uE,QACdA,EAAOC,KACPA,EAAI3jD,YACJA,EAAW4jD,aACXA,EAAYtuE,SAGZA,EAAQuuE,WAGRA,EAAUC,WACVA,EAAUC,YACVA,EAAW/N,SAGXA,EAAQgO,WAGRA,EAAUC,iBAGVA,GACEl2C,EAGEm2C,EAAgB9O,EAAM,OAAA1U,OAAgBrmC,KAAKw8C,SAAS7iD,SAAS,IAAImwD,OAAO,EAAG,KAGjF7O,EAAU,KACR4B,MACC,IAIH,MAAMkN,EAAehP,EAAsB,MACd,OAAzBgP,EAAalmE,UACfkmE,EAAalmE,QAAUw5D,KACvBR,GAAe,UAAWkN,EAAalmE,UAIzC,MAAMmmE,EAAiBjP,GAAgB,GAGjCkP,EAAgBlP,EAAO,CAC3BsE,aAAcA,IAAM0K,EAAalmE,QACjCqmE,YAAaA,IAAMF,EAAenmE,WAyB7BsmE,EAAoBC,GAAyBrK,EAASmJ,GAG7DjO,EAAU,KACRmP,EAAsBlB,IACrB,CAACA,IAGJ,MAAMmB,OAA8BlL,IAAblkE,EAAyBA,EAAWytE,GAOrDjF,EAAaS,EAAajjE,UAC1B2oE,GACFA,iCACK3oE,GAAK,CACR+Y,UAAWC,KAAKuqC,MAChBiZ,UAA+B,UAApBsM,EAAalmE,eAAO,IAAAyzD,EAAAA,OAAI6H,EACnCmL,QAA2B,oBAAXtuE,OAAyBA,OAAOuuE,SAASt5C,UAAOkuC,EAChEqL,WAAYH,MAGf,CAACT,EAAkBS,IAGhB3mE,EAAW+mE,EAAQ,KAEvB,MAAMC,EAAI7xD,OAAAoZ,OAAA,CAAA,EAAQ02C,IAGlB+B,EAAKjwE,QAAOoe,OAAAoZ,OAAApZ,OAAAoZ,OAAA,CAAA,EACPy4C,EAAKjwE,SAAO,CACfC,aAAcA,GAAgBguE,GAC9B/tE,eAAgBA,GAAkB+tE,GAClC9tE,WAAY8tE,GACZztE,SAAUovE,IAMZ,MAAMxhD,GAAuC,IAAvBshD,EAClB,CAACrO,EAAA7jE,cAACyjE,GAAW,CAACp+C,IAAI,eAAeq+C,SAAUA,GAAY+M,GAAwB9M,gBAAgB,KAC/F,CAACE,EAAA7jE,cAAC2nE,GAAa,CAACtiD,IAAI,mBAAqBw+C,EAAA7jE,cAAC8jE,GAAQ,CAACz+C,IAAI,eAE3DotD,EAAKlvE,OAAS,CACZC,MAAOqgE,EAAA7jE,cAAA,OAAA,CAAMD,MAAO,CAAE6D,SAAU,GAAIC,WAAY,MAAQutE,GAAWX,IACnEvsE,YAAY,EACZC,OAAQktE,GAAQZ,GAChBrsE,QAAS,IACJwsB,EACH8hD,EAAO/xE,oBAKX8xE,EAAKjtE,UAASob,OAAAoZ,OAAApZ,OAAAoZ,OAAA,CAAA,EACTy4C,EAAKjtE,WAAS,CACjBjB,UAAU,EACVmB,uBAAwBgoB,GAAe+iD,GACvC9qE,wBAAyB2rE,GAAgBb,KAG3CgC,EAAKvvE,QAAO0d,OAAAoZ,OAAApZ,OAAAoZ,OAAA,CAAA,EACPy4C,EAAKvvE,SAAO,CACfE,KAAMquE,GAAehB,KAKvB,MAAMkC,EAAoBpB,EACrBC,EACG3N,EAAA7jE,cAAA,IAAA,CAAGg5B,KAAMw4C,EAAYjkD,OAAO,SAASiM,IAAI,sBAAsBnU,IAAI,eAAeksD,GAClF1N,EAAA7jE,cAAA,OAAA,CAAMqlB,IAAI,eAAeksD,GAC7B,KAuBJ,OArBAkB,EAAK/qE,OAAS,CACZtE,KAAMuvE,EACNvuE,QAAS,CAACy/D,EAAA7jE,cAAC0rE,GAAa,CAACrmD,IAAI,sBAK/BotD,EAAKtsE,WAAUya,OAAAoZ,OAAApZ,OAAAoZ,OAAA,CAAA,EACVy4C,EAAKtsE,aACRO,cAAa0rE,IAIfK,EAAKzpE,MAAQ,CACXC,qBAAqB,EACrBC,sBAAsB,EACtBiB,mBAAmB,EACnBH,eAAe,EACfL,qBAAqB,GAGhB8oE,GACN,CAAChwE,EAAcC,EAAgB0uE,EAASC,EAAM3jD,EAAa4jD,EAAcc,EAAgBX,EAAaS,EAAoBxO,EAAU6N,EAAYC,IAG7IoB,EAAe9P,EAAuB,MACtC+P,EC7Ne,SACrBD,GAEe,IADfE,EAAA74C,UAAApf,OAAA,QAAAqsD,IAAAjtC,UAAA,GAAAA,UAAA,GAA2B,CAAA,EAgC3B,OA9BoBu4C,EAAQ,KAE1B,MAAMO,EAAiBA,CAACzuD,EAAc0uD,KACpC,GAAIJ,EAAahnE,QAAS,CAExB,MACMqnE,EADiBC,iBAAiBN,EAAahnE,SACfunE,iBAAiB7uD,GACvD,GAAI2uD,GAA4C,KAA1BA,EAAevzD,OACnC,OAAOuzD,EAAevzD,OAIxB,GAAIkzD,EAAahnE,QAAQkkE,cAAe,CACtC,MACMsD,EADcF,iBAAiBN,EAAahnE,QAAQkkE,eAC1BqD,iBAAiB7uD,GACjD,GAAI8uD,GAAsC,KAAvBA,EAAY1zD,OAC7B,OAAO0zD,EAAY1zD,MAEvB,CACF,CACA,OAAOszD,GAGT,MAAO,CACLvwE,aAAcswE,EAAe,iBAAkBD,EAAYrwE,cAC3DC,eAAgBqwE,EAAe,mBAAoBD,EAAYpwE,gBAC/DC,WAAYowE,EAAe,eAAgBD,EAAYnwE,cAExD,CAACiwE,EAAcE,GAGpB,CD0LmCO,CAAeT,EAAcnnE,EAASjJ,SEhOjD8wE,EACtBrC,EACA2B,KAEA5P,EAAU,KACH4P,EAAahnE,UAGdqlE,EACF2B,EAAahnE,QAAQiZ,UAAU9F,IAAI,iBAEnC6zD,EAAahnE,QAAQiZ,UAAUwoD,OAAO,mBAEvC,CAAC4D,EAAY2B,KFsNhBU,EAAuC,IAAvBpB,EAA8BU,GG/NrBrQ,KAA6D,IAA5D92D,SAAEA,EAAQonE,YAAEA,GAAsCtQ,EAE5ES,EAAU,KACJ6P,IACFjyD,OAAO2lD,QAAQsM,GAAapuD,QAAQgiD,IAAiB,IAAfphD,EAAKlZ,GAAMs6D,EAC3Ct6D,GACFvM,SAASyb,gBAAgBtb,MAAMwzE,YAAW,KAAAnlB,OAAM/oC,GAAOlZ,KAKvD0mE,EAAYpwE,cACd7C,SAASyb,gBAAgBtb,MAAMwzE,YAAY,0BAA2BV,EAAYpwE,cAEhFowE,EAAYnwE,gBACd9C,SAASyb,gBAAgBtb,MAAMwzE,YAAY,gCAAiCV,EAAYnwE,kBAG3F,CAACmwE,IAGJ7P,EAAU,sBAEJ3D,EAAA5zD,EAASlI,6BAAQC,QAA0C,iBAA1BiI,EAASlI,OAAOC,QACnDiI,EAASlI,OAAOC,MACdqgE,EAAA7jE,cAAA,MAAA,CAAKqlB,IAAI,gBACPw+C,EAAA7jE,cAAA,KAAA,CAAImR,UAAU,WAAW1F,EAASlI,OAAOC,OACzCqgE,EAAA7jE,cAAA,OAAA,CAAM,cAAY,QAAQyL,EAASlI,OAAOC,SAShDiI,EAASN,OAAS,CAChBC,gBAAgB,EAChBC,eAAe,EACfC,0BAA0B,GAG5BG,EAASxG,YAAc,CACrBV,UAAU,GAGZkH,EAASpI,WAAUud,OAAAoZ,OAAApZ,OAAAoZ,OAAA,CAAA,EACdvuB,EAASpI,YAAU,CACtBC,KAAqB,QAAfwjE,EAAAr7D,EAASlI,cAAM,IAAAujE,OAAA,EAAAA,EAAE3iE,SAOzBsH,EAASzC,MAAK4X,OAAAoZ,OAAApZ,OAAAoZ,OAAA,CAAA,EACTvuB,EAASzC,OAAK,CACjBW,qBAAqB,KAEtB,CAAC8B,KHwKJ+nE,CAAmB,CAAE/nE,WAAUonE,gBAI/B,MAAMh+C,EAAO29C,EAAQ,KACnB,MAAMiB,EFzKkBlR,KAWH,IAXImR,SAC3BA,EAAQ5C,eACRA,EAAcF,OACdA,EACApL,UAAW4B,EAAY6K,YACvBA,EAAcA,KAAM,EAAKhB,WACzBA,EAAUC,gBACVA,GAAkB,EAAKxN,SACvBA,EAAW,SAAQ8H,WAEnBA,GACmBjJ,EAEnB,IAAmB,IAAf0O,IAAyBC,EAI3B,OAFA1F,SAAAA,EAAa,CAAEvrE,KAAM,+BAEd,CACL0zE,QAAS,CACPx2D,QAAS,yCACT6C,UAAW6jD,EAAA7jE,cAACyjE,GAAW,CAACC,SAAUA,IAClCljD,cAAc,EACdpC,KAAM,YAMZ,IAAIw1D,EAAkB,KAElBC,GAAmB,EAGvB,IAAKH,EACH,MAAM,IAAI/yD,MAAM,4BAGlB,MAAO,CACLgzD,QAAS,CACPx2D,QAASvD,UACP,MAAMqS,UAAEA,GAAc6nD,EAGtB,GAAI7B,GAAeA,IACjB,OAAO,KAIT,IAAKhmD,GAAkC,KAArBA,EAAUvM,OAC1B,OAAO,KAIT,GAAkB,eAAduM,GAA4C,mBAAdA,EAAgC,CAChE,GAAI6kD,GAAkB8C,EACpB,IACE,MAAMG,EAA2B,eAAd9nD,EACbwb,EAAU,CACd,eAAgB,oBAIdmpC,IACFnpC,EAAQ,aAAempC,GAIzB,MAAMhI,EAAmBxB,IACrBwB,IACFnhC,EAAQ,gBAAkBmhC,EAC1BnhC,EAAQ,cAAgBmsC,SAGpB5tD,MAAM8qD,EAAgB,CAC1BhoC,OAAQ,OACRrB,UACAusC,YAAa,UACbpwD,KAAMf,KAAKC,UAAU,CACnB0iD,UAAWoD,EACXqL,QAASL,EACTM,OAAQH,EAAa,EAAI,MAK7BvI,SAAAA,EAAa,CACXvrE,KAAM,sBACNg0E,QAASL,EACTM,OAAQH,EAAa,UAAY,eAErC,CAAE,MAAOnyD,GACPgjD,GAAa,0BAA2BhjD,EAC1C,CAGF,MAAO,6DACT,CAGA,IACE,MAAMqyD,EAAU5O,KAChBuO,EAAkBK,EAGlBzI,SAAAA,EAAa,CACXvrE,KAAM,wBACNg0E,UACAE,eAAgBloD,EAAUpR,SAG5B,MAAM4sB,EAAU,CACd,eAAgB,oBAIdmpC,IACFnpC,EAAQ,aAAempC,GAEzB,MAAMhI,EAAmBxB,IACrBwB,IACFnhC,EAAQ,gBAAkBmhC,EAC1BnhC,EAAQ,cAAgBwsC,GAG1B,MAAMG,EAAsC,CAC1CC,MAAOpoD,EACPqoD,WAAY1L,EACZ2L,YAAaN,GAIfrP,GAAe,cAAe,CAC5B0P,WAAY1L,EACZ2L,YAAaN,IAIf,MAAMO,EAAmBxyD,KAAKuqC,MAExBkoB,QAAiBzuD,MAAM0tD,EAAU,CACrC5qC,OAAQ,OACRrB,UACAusC,YAAa,UACbpwD,KAAMf,KAAKC,UAAUsxD,KAIjBM,EAAiB1yD,KAAKuqC,MAAQioB,EAEpC,IAAKC,EAASliD,GACZ,MAAM,IAAI5R,MAAK,gBAAAytC,OAAiBqmB,EAASE,SAG3C,MAAM/wD,QAAa6wD,EAASjiD,OAGtBpvB,EAAOwgB,EAAK6wD,UAAY7wD,EAAKgxD,QAAUhxD,EAAKxgB,MAAQwgB,EAAKzG,QAE/D,IAAK/Z,EACH,MAAM,IAAIud,MAAM,oCAIlB,MAAMk0D,EM5OiBzxE,KAC/B,IAAKA,GAAwB,iBAATA,EAClB,OAAOA,EAKT,IAAIyxE,EAAgBzxE,EAAKoe,QAAQ,6BAA8B,YAwB/D,OAhBAqzD,EAAgBA,EAAcrzD,QAHb,iDAGgCskC,IAE/C,IAAIgvB,EAAWhvB,EACXivB,EAAsB,GAG1B,MAAMC,EAA2BF,EAAS95C,MAAM,gBAOhD,OANIg6C,IACFD,EAAsBC,EAAyB,GAC/CF,EAAWA,EAASptD,MAAM,GAAIqtD,EAAoBl6D,SAIpD,IAAAuzC,OAAW0mB,EAAQ,MAAA1mB,OAAK0mB,EAAQ,KAAA1mB,OAAI2mB,KAG/BF,GN6MuBI,CAAiB7xE,GAGjC8xE,EAxMhB,SAA2BtxD,GAKzB,MAAMuxD,WAAEA,EAAUC,WAAEA,EAAUC,SAAEA,GAAazxD,EAG7C,KAAKuxD,GAAgBC,GAAoC,IAAtBA,EAAWv6D,QAC5C,MAAO,GAGT,MAAMy6D,EAAkB,GAexB,OAbIH,GACFG,EAAMptD,KAAI,iBAAAkmC,OAAkB+mB,IAG1BC,GAAcA,EAAWv6D,OAAS,GACpCy6D,EAAMptD,KAAI,iBAAAkmC,OAAkBgnB,EAAWl2D,KAAK,SAI1Cm2D,aAAQ,EAARA,EAAUE,QACZD,EAAMptD,KAAI,YAAAkmC,OAAainB,EAASE,QAGlC,QAAAnnB,OAAeknB,EAAMp2D,KAAK,MAC5B,CA4K+Bs2D,CAAkB5xD,GACjC6xD,EAAcP,EAAY,GAAA9mB,OAAMymB,EAAa,QAAAzmB,OAAO8mB,GAAiBL,EAuB3E,aApBMf,EAAUx0D,cAAcm2D,GAG9BjK,SAAAA,EAAa,CACXvrE,KAAM,0BACNg0E,UACAS,iBACA9S,SAAS,EACT8T,eAAgBtyE,EAAKyX,OACrB86D,cAAeT,IAIjBrB,GAAmB,EAGnBxzD,WAAWzG,gBACHk6D,EAAUx0D,cAAc,uCAC7B,KAEI,IACT,CAAE,MAAOsC,GAUP,OATAgjD,GAAa,qBAAsBhjD,GAGnC4pD,SAAAA,EAAa,CACXvrE,KAAM,uBACNg0E,QAASL,QAAAA,OAAmB1M,EAC5B0O,UAAWh0D,aAAiBjB,MAAQiB,EAAMzE,QAAU,YAG/C,uFACT,GAIF0C,QAAUi0D,GAEJ7B,GAAeA,KAKS,eAAxB6B,EAAU7nD,WAAsD,mBAAxB6nD,EAAU7nD,UAJ7C,GASD6kD,GAAkB+C,EAAoB,CAAC,aAAc,kBAAoB,GAGnFvS,eAAgB,CAAC,OACjB9gD,cAAc,EACdpC,KAAM,aEtDOy3D,CAAa,CAC1BnC,SAAU7C,EACVC,eAAgBA,EAChBF,OAAQA,EACRpL,UAAWwM,EAAcpmE,QAAQw7D,aACjC6K,YAAaD,EAAcpmE,QAAQqmE,YACnChB,WAAYiB,EACZhB,gBAAiBA,EACjBxN,SAAUA,GAAY+M,GAEtBjF,WAAYA,IAIRsK,EAAY,CAChB34D,QAAS4zD,EACTzP,eAAgB,CAAC,OACjBphD,WAAY,CAAEC,SAAU,GACxB/B,KAAM,WAIR,OAAAwC,OAAAoZ,OAAApZ,OAAAoZ,OAAA,CACEzT,MAAOuvD,GACJrC,GACC/B,GAAc,KAEnB,CAACd,EAAQC,EAAYC,EAAgBC,EAAgBmB,EAAoBhB,EAAiBxN,EAAUgO,EAAYP,EAAY3F,IAGzHx3C,EAAUw+C,EAAQ,KACtB,MAAO,CxB+bI,IAAMxxE,GAAG6P,GwB/bIklE,KtB1Kd,IAAMnhE,GAAE3I,IAAf,IAACA,EFymBC4E,GwB9bJ,IAoCH,OKnTAmyD,EAAU,KACR,MAAMgT,EAA2BA,KAC/B,MAAM7vE,EAAavG,SAAS0pE,cAAc,oBAC1C,IAAKnjE,EAAY,OAEjB,MAAM6E,EAAa7E,EAAWmjE,cAAc,oBACvCt+D,IAGAA,EAAW4jE,aAAa,aAC3B5jE,EAAWoiE,aAAa,WAAY,KAIjCpiE,EAAW4jE,aAAa,2BAC3B5jE,EAAWoiE,aAAa,wBAAyB,QAEjDpiE,EAAW2kB,iBAAiB,UAAY3mB,IACtC,GAAkB,UAAdA,EAAMqc,KAAiC,MAAdrc,EAAMqc,IAAa,CAC9Crc,EAAM4T,iBAGN,MAAMq5D,EAAgBjrE,GAAc4V,OAAOC,KAAK7V,GAAmBic,KAAK5B,GAAOA,EAAIO,WAAW,iBAC9F,GAAIqwD,EAAe,CACjB,MAAMC,EAAclrE,EAAmBirE,GACjCt5D,EAAcu5D,aAAU,EAAVA,EAAYv5D,YAChC,GAAIA,GAAsC,mBAAhBA,EAExB,YADAA,EAAY3T,EAGhB,CAGA,MAAMgkE,EAAiB,IAAIC,WAAW,YAAa,CACjDC,SAAS,EACTnzD,YAAY,EACZozD,KAAMppE,SAERiH,EAAWkP,cAAc8yD,EAC3B,OAMAmJ,EAAWtuD,YAAYmuD,EAA0B,KAKvD,OAFAA,IAEO,IAAMluD,cAAcquD,IAC1B,ILgOHjK,KAGAlJ,EAAU,KACR,IAAKoP,EAAgB,CACnB,MAAMgE,EAA0BptE,IAC9B,MAAMqtE,EAAertE,EAAMgR,KAAK6B,SAChCm1D,SAAAA,EAAeqF,GAEf,MAAMzN,EAAmBkJ,EAAalmE,QAKpC4/D,EAFE6K,EAES,CAAEp2E,KAAM,gBAGR,CACTA,KAAM,gBACNq2E,aAAc1N,EAAmB/B,GAAuB+B,GAAoB,EAC5E2N,WAAY3N,EAAmB7B,GAAyB6B,GAAoB,KAMlF,OAFA7kE,OAAO4rB,iBAAiB,yBAA0BymD,GAE3C,KACLryE,OAAO6rB,oBAAoB,yBAA0BwmD,GAEzD,GACC,CAAChE,EAAgBpB,EAAcxF,IAGhC3H,EAAA7jE,cAAA,MAAA,CACEmR,UAAS,UAAAi9C,gBAAYiR,EAAA5zD,EAASjJ,8BAASQ,UAAW,kBAAoB,IACtEtD,IAAKkzE,EACLplD,KAAK,SACL,aAAY4jD,GAAWX,IAEvB5M,EAAA7jE,cAACmnE,GAAe,CAACC,aAAcA,IAAM0K,EAAalmE,QAAUy7D,aA7M1C7B,IACpB,MAAMgR,EAAe1E,EAAalmE,QAClCkmE,EAAalmE,QAAU45D,EACvBZ,GAAe,WAAU,GAAAxW,OAAKooB,aAAY,EAAZA,EAAc9uD,WAAU,QAAA0mC,OAAOoX,EAAU99C,OAAM,OA0Ma4/C,aArNvEA,KACnB,MAAMkP,EAAe1E,EAAalmE,QAClCmmE,EAAenmE,SAAU,EACzBkmE,EAAalmE,QAAUw5D,KACvBR,GAAe,QAAO,GAAAxW,OAAKooB,aAAY,EAAZA,EAAc9uD,OAAM,IAAI,QAAA0mC,OAAO0jB,EAAalmE,QAAQ8b,OAAM,OAiNiC6/C,mBAtM7FA,KACzBwK,EAAenmE,SAAU,IAsMrBi4D,EAAA7jE,cAACurE,GAAiB,CAACC,WAAYA,GAC/B3H,EAAA7jE,cAACy2E,GAAe,KACd5S,EAAA7jE,cAAA,MAAA,KACE6jE,EAAA7jE,cAAC+rE,GAAqB,MACtBlI,EAAA7jE,cAACqiE,GAAa,CACZ3iE,IAAKA,EACLsD,UAA0B,QAAhB8jE,EAAAr7D,EAASjJ,eAAO,IAAAskE,OAAA,EAAAA,EAAE9jE,YAAY,EACxCw/D,YAAax+D,IAAQ,EACrBy+D,SAAgC,IAAvByP,EACTxP,aAAeD,GAAY0P,IAAsB1P,QAAUyE,KAE7DrD,EAAA7jE,cAAC02E,GAAO,CACNrxD,IAAG,WAAA+oC,OAAawjB,EAAchmE,QAAO,KAAAwiD,OAAI8jB,GACzCzmE,SAAUA,EACVopB,KAAMA,EACNb,QAASA,IAIX6vC,EAAA7jE,cAAA,MAAA,CACEwtB,KAAK,SACL,YAAU,SACV,aAAW,uBACXrc,UAAU,UACV2Q,GAAG,oBAEL+hD,EAAA7jE,cAAA,MAAA,CAAK8hB,GAAG,kBAAkB3Q,UAAU,WAClC,0GAUdw/D,GAAMnN,YAAc,2lWMzVpB,MAAMmT,GAAuBA,KAC3B,MAAOC,EAAaC,GAAkB/O,GAAS,GAGzCgP,EAA8BA,IAEX,oBAAdttD,gBACoB09C,IAA3B19C,UAAUC,cACwC,mBAA3CD,UAAUC,aAAastD,gBAwElC,MAAO,CACLC,kBArEwBp9D,UACxB,IAAKk9D,IACH,MAAM,IAAIn2D,MAAM,uDAGlB,IACEk2D,GAAe,GAGf,MAAMI,QAAeztD,UAAUC,aAAastD,gBAAgB,CAC1Dv+C,MAAO,CACL0+C,eAAgB,UAChBxzE,OAAQ,SACRuE,MAAO,CAAEkvE,MAAO,MAChBjvE,OAAQ,CAAEivE,MAAO,OAEnBtyE,OAAO,IAIH2zB,EAAQ54B,SAASI,cAAc,SACrCw4B,EAAM4+C,UAAYH,QAGZ,IAAI98D,QAAc2zC,IACtBt1B,EAAM6+C,iBAAmB,KACvB7+C,EAAM8+C,OACNxpB,OAKJ,MAAMypB,EAAS33E,SAASI,cAAc,UACtCu3E,EAAOtvE,MAAQuwB,EAAMg/C,WACrBD,EAAOrvE,OAASswB,EAAMi/C,YAGtB,MAAMC,EAAMH,EAAOI,WAAW,MAC9B,IAAKD,EACH,MAAM,IAAI/2D,MAAM,gCAElB+2D,EAAIE,UAAUp/C,EAAO,EAAG,EAAG++C,EAAOtvE,MAAOsvE,EAAOrvE,QAGhD,MAAM2vE,QAAa,IAAI19D,QAAqB2zC,GAC1CypB,EAAOO,OAAOhqB,EAAS,cAGzB,IAAK+pB,EACH,MAAM,IAAIl3D,MAAM,+BAIlB,MAAMoB,GAAY,IAAIC,MAAOi3C,cAAcz3C,QAAQ,QAAS,KACtD2K,EAAO,IAAImE,KAAK,CAACunD,GAAK,cAAAzpB,OAAgBrsC,EAAS,QAAQ,CAAE9hB,KAAM,cAMrE,OAHAg3E,EAAOltD,YAAYtF,QAAQ6T,GAASA,EAAMtO,QAE1C6sD,GAAe,GACR1qD,CACT,CAAE,MAAOvK,GAGP,MAFAgjD,GAAa,8BAA+BhjD,GAC5Ci1D,GAAe,GACTj1D,CACR,GAKAg1D,cACAmB,yBAA0BjB,MC7FxBkB,GAAcv8C,GAEhBooC,EAAA7jE,cAACmrE,GAAa1vC,EACZooC,EAAA7jE,cAAA,OAAA,CAAMuB,EAAE,8CACRsiE,EAAA7jE,cAAA,WAAA,CAAUw/C,OAAO,kBACjBqkB,EAAA7jE,cAAA,OAAA,CAAM+iD,GAAG,KAAKG,GAAG,IAAIF,GAAG,KAAKG,GAAG,QCOzB80B,GAAgB9rD,GACpB,IAAIhS,QAAQ,CAAC2zC,EAASoqB,KAC3B,MAAMC,EAAS,IAAIlpD,WAEnBkpD,EAAOjpD,OAAS,KACd,GAA6B,iBAAlBipD,EAAOhpD,OAEhB,YADA+oD,EAAO,IAAIv3D,MAAK,uBAAAytC,OAAwBjiC,EAAK7H,QAI/C,MAAM8zD,EAAeD,EAAOhpD,OAAO5K,MAAM,KAAK,GAC9CupC,EAAQ,CACNpH,SAAUv6B,EAAK7H,KACfknC,YAAar/B,EAAKlsB,KAClBue,KAAM2N,EAAK3N,KACX65D,SAAUD,KAIdD,EAAO/oD,QAAU,IAAM8oD,EAAO,IAAIv3D,MAAK,uBAAAytC,OAAwBjiC,EAAK7H,QACpE6zD,EAAO9oD,cAAclD,KASZmsD,GAAiB/oD,GACrBpV,QAAQC,IAAImV,EAAMle,IAAI4mE,KASlBM,GAAmB,SAACpsD,GAC/B,MAAMqsD,EAAmB,MADkBv+C,UAAApf,OAAA,QAAAqsD,IAAAjtC,UAAA,GAAAA,UAAA,GAAgB,IAC3B,KAChC,OAAO9N,EAAK3N,MAAQg6D,CACtB,EAOaC,GAAkBC,GACzBA,EAAQ,KACV,GAAAtqB,OAAUsqB,EAAK,MACNA,EAAQ,QACjB,GAAAtqB,QAAWsqB,EAAQ,MAAMC,QAAQ,GAAE,OAEnC,GAAAvqB,QAAWsqB,EAAK,SAAkBC,QAAQ,GAAE,OChD1CC,GAA0DrW,IAM3D,IAN4DsW,aAC/DA,EAAYC,UACZA,EAAY,GAAEC,cACdA,EAAgB,4CAA2CC,iBAC3DA,GAAmB,EAAK7nE,UACxBA,GACDoxD,EACC,MAAO0W,EAAYC,GAAiBpR,GAAS,IACtCqR,EAAeC,GAAoBtR,EAAiB,KACpDuR,EAAaC,GAAkBxR,EAAsB,MACtDyR,EAAezW,EAAyB,OACxCkU,kBAAEA,EAAiBJ,YAAEA,EAAWmB,yBAAEA,GAA6BpB,KAG/DzI,EAA0B/wD,IAC9B,MAAMixD,EAAexuE,SAASI,cAAc,OAC5CouE,EAAahB,aAAa,YAAa,aACvCgB,EAAahB,aAAa,cAAe,QACzCgB,EAAaj9D,UAAY,UACzBi9D,EAAanqD,YAAc9G,EAC3Bvd,SAASgkB,KAAKxjB,YAAYguE,GAC1B/tD,WAAW,IAAMzgB,SAASgkB,KAAKyqD,YAAYD,GAAe,MAGtDoL,EAAejqD,IAEnB,IAAKA,GAAwC,IAA9BA,EAAmB1U,OAEhC,YADA+pD,GAAY,+DAId,IAAI6U,EACJ,IACEA,EAAez6D,MAAMC,KAAKsQ,EAC5B,CAAE,MAAO3N,GAGP,OAFAgjD,GAAa,wDAAyDhjD,QACtEssD,EAAuB,qDAEzB,CAEA,MAAMwL,EAAe,IAAIP,KAAkBM,GAC3CL,EAAiBM,GAGjB,MAAMC,EAAYF,EAAa5+D,OACzB++D,EAAYH,EAAapoE,IAAI+B,GAAKA,EAAEkR,MAAMpF,KAAK,MACrDgvD,KAAsB9f,OAAIurB,EAAS,SAAAvrB,OAAQurB,EAAY,EAAI,IAAM,GAAE,eAAAvrB,OAAcwrB,IAGjFv5D,WAAW,KACT,MAAMw5D,EAAcj6E,SAAS0pE,cAAc,qBACvCuQ,IACFA,EAAY79D,UAAY69D,EAAY99D,eAErC,KAEC88D,GACFA,EAAaa,IAIXI,EAAc14E,IAClBA,EAAEwb,iBACFxb,EAAEqsB,kBAEa,cAAXrsB,EAAEnB,MAAmC,aAAXmB,EAAEnB,KAC9Bi5E,GAAc,GACM,cAAX93E,EAAEnB,MACXi5E,GAAc,IA8BZa,EAAoBA,KACxB,IACMR,EAAa3tE,SACf2tE,EAAa3tE,QAAQouE,OAEzB,CAAE,MAAOp4D,GACPgjD,GAAa,mDAAoDhjD,GACjEssD,EAAuB,yDACzB,GAyBI+L,EAAeA,KACnBX,EAAe,OAgGXY,EAAuBlB,GAAoBjB,EAEjD,OACElU,EAAA7jE,cAAA,MAAA,CAAKmR,mCAASi9C,OAA2Bj9C,GAAa,IAAMpR,MAAO,CAAE6gE,QAAS,OAAQj9D,OAAQ,UAC3Fu2E,GACCrW,EAAA7jE,cAAA,MAAA,CAAKD,MAAO,CAAE6H,QAAS,OAAQO,eAAgB,SAAUm4D,aAAc,SACrEuD,EAAA7jE,cAAA,SAAA,CACE8D,QAAU1C,IACRA,EAAEwb,iBAvHkBhD,WAC9B,IACE,MAAMuS,QAAa6qD,IACnBwC,EAAY,CAACrtD,IACb+hD,EAAuB,mCACzB,CAAE,MAAA7O,GACA6O,EAAuB,gDACzB,GAiHUiM,IAEF51E,SAAUqyE,EACV,mBAAiB,kBACjB,aAAYA,EAAc,iCAAmC,8BAC7D72E,MAAO,CACL6H,QAAS,OACTE,WAAY,SACZsiE,IAAK,MACL7sD,gBAAiB,UACjBhB,MAAO,QACPi0B,OAAQ,OACRxoC,aAAc,MACd44D,QAAS,WACTl9D,OAAQkzE,EAAc,cAAgB,UACtChzE,SAAU,OACVC,WAAY,MACZupB,UAAW,8BAGby2C,EAAA7jE,cAAA,MAAA,CACE8B,MAAM,6BACNmG,MAAM,KACNC,OAAO,KACP5G,QAAQ,YACRE,KAAK,OACLwuB,OAAO,eACPhuB,YAAY,IACZD,cAAc,QACdiiE,eAAe,SAEfH,EAAA7jE,cAAA,OAAA,CAAMuB,EAAE,sFACRsiE,EAAA7jE,cAAA,SAAA,CAAQy6C,GAAG,KAAKC,GAAG,KAAK5pC,EAAE,OAE3B8lE,EAAc,uBAAyB,sBAE1C/S,EAAA7jE,cAAA,OAAA,CAAM8hB,GAAG,kBAAkB3Q,UAAU,WACnC,6DAKN0yD,EAAA7jE,cAAA,MAAA,CACEmR,UAAS,wBAAAi9C,OAA0B6qB,EAAa,SAAW,IAC3D1uC,YAAauvC,EACbrvC,YAAaqvC,EACbpvC,WAAYovC,EACZlvC,OApNcxpC,UAClBA,EAAEwb,iBACFxb,EAAEqsB,kBACFyrD,GAAc,GAEd,KACoB,QAAd7Z,EAAAj+D,EAAEg5E,oBAAY,IAAA/a,OAAA,EAAAA,EAAE9vC,QAASnuB,EAAEg5E,aAAa7qD,MAAM1U,OAAS,GACzD2+D,EAAYp4E,EAAEg5E,aAAa7qD,MAE/B,CAAE,MAAO3N,GACPgjD,GAAa,4CAA6ChjD,GAC1DssD,EAAuB,oDACzB,GAyMI1gD,KAAK,SACL4D,SAAU,EACV,aAAW,uEACX,mBAAiB,sBACjBxD,UAAYxsB,IACI,UAAVA,EAAEikB,KAA6B,MAAVjkB,EAAEikB,MACzBjkB,EAAEwb,iBACFm9D,MAGJh6E,MAAO,CACL6gE,QAAS,OACTpwB,OAAQ,kBACRxoC,aAAc,MACduV,gBAAiB07D,EAAa,UAAY,UAC1C/4D,WAAY,kBAGd2jD,EAAA7jE,cAAA,QAAA,CACEN,IAAK65E,EACLt5E,KAAK,OACLkR,UAAU,aACVwc,SA5NkBvsB,UACxB,KACc,QAARi+D,EAAAj+D,EAAEmsB,cAAM,IAAA8xC,OAAA,EAAAA,EAAE9vC,QAASnuB,EAAEmsB,OAAOgC,MAAM1U,OAAS,GAC7C2+D,EAAYp4E,EAAEmsB,OAAOgC,MAEzB,CAAE,MAAO3N,GACPgjD,GAAa,kDAAmDhjD,GAChEssD,EAAuB,qDACzB,GAqNM5lE,UAAQ,EACRvI,MAAO,CAAE6H,QAAS,QAClB,aAAW,yBACXW,OAAQwwE,IAEVlV,EAAA7jE,cAAA,MAAA,CACEmR,UAAU,iBACVrN,QAASi2E,EACTh6E,MAAO,CACL2D,OAAQ,UACRmE,cAAe,SACfC,WAAY,SACZF,QAAS,OACT44D,UAAW,SACXI,QAAS,SAGXiD,EAAA7jE,cAAA,MAAA,CAAKD,MAAO,CAAE6H,QAAS,OAAQC,cAAe,SAAUC,WAAY,SAAUsiE,IAAK,QACjFvG,EAAA7jE,cAAA,MAAA,CAAKD,MAAO,CAAE6H,QAAS,OAAQC,cAAe,MAAOC,WAAY,SAAUsiE,IAAK,SAC9EvG,EAAA7jE,cAACg4E,SACDnU,EAAA7jE,cAAA,IAAA,CAAGD,MAAO,CAAE4D,OAAQ,EAAGE,WAAY,SAAU,iBAE/CggE,EAAA7jE,cAAA,IAAA,CAAG8hB,GAAG,sBAAsB/hB,MAAO,CAAE4D,OAAQ,EAAGC,SAAU,OAAQ2Y,MAAO,SACvE,qDAAmDu8D,EAAU,aAGhEK,EAAct+D,OAAS,GACtBgpD,EAAA7jE,cAAA,MAAA,CACEmR,UAAU,iBACVpR,MAAO,CACL6H,QAAS,OACTyyE,SAAU,OACVjQ,IAAK,MACLJ,UAAW,OACXliE,WAAY,WAGd+7D,EAAA7jE,cAAA,OAAA,CAAMD,MAAO,CACX8D,WAAY,IACZ0Y,MAAO,OACP3Y,SAAU,OACVmgE,YAAa,MACbuW,UAAW,WAEX,mBAEDnB,EAAc9nE,IAAI,CAAC8a,EAAMsO,IACxBopC,EAAA7jE,cAAA,OAAA,CACEqlB,IAAKoV,EACL16B,MAAO,CACLqI,WAAY,OACZmU,MAAO,UACPvU,aAAc,MACd44D,QAAS,WACTh9D,SAAU,OACVmgE,YAAa,MACbzD,aAAc,MACd9vB,OAAQ,iBACR5oC,QAAS,OACTE,WAAY,SACZsiE,IAAK,MACL1mE,OAAQ,WAEVI,QAAU1C,IACRA,EAAEqsB,kBArPOtB,KACzBmtD,EAAentD,IAqPCouD,CAAkBpuD,KAGpB03C,EAAA7jE,cAAA,OAAA,CACE8D,QAAS1C,IAAOA,EAAEqsB,kBA5QV+sD,KACxB,MAAMC,EAAWtB,EAAc30D,OAAO,CAAChkB,EAAGk6E,IAAQA,IAAQF,GAC1DpB,EAAiBqB,GACb5B,GACFA,EAAa4B,IAwQsCE,CAAiBlgD,IACtD16B,MAAO,CACL2D,OAAQ,UACR6Y,MAAO,OACP1Y,WAAY,OACZD,SAAU,OACVmgE,YAAa,MACb6W,WAAY,OACZra,WAAY,GAEd/8D,MAAM,cACN,aAAA,UAAA4qD,OAAsBjiC,EAAK7H,OAE3B,KAED6H,EAAK7H,KAAM,KAAEm0D,GAAetsD,EAAK3N,MAAM,SAjQ9Bq8D,MACxB,IAAKxB,EAAa,OAAO,KAEzB,MAAMyB,EAAUzB,EAAYp5E,KAAK2lB,WAAW,UACtCm1D,EAAS1B,EAAYp5E,KAAK2lB,WAAW,SACrCo1D,EAA6B,oBAArB3B,EAAYp5E,KAE1B,OACE4jE,EAAA7jE,cAAA,MAAA,CACED,MAAO,CACLgyB,SAAU,QACVvW,IAAK,EACLC,KAAM,EACNE,MAAO,EACPD,OAAQ,EACR6B,gBAAiB,qBACjB3V,QAAS,OACTO,eAAgB,SAChBL,WAAY,SACZqsB,OAAQ,KAEVrwB,QAASm2E,GAETpW,EAAA7jE,cAAA,MAAA,CACED,MAAO,CACLwd,gBAAiB,QACjBqjD,QAAS,OACT54D,aAAc,MACdwV,SAAU,MACV0sD,UAAW,MACXlrB,SAAU,OACVjtB,SAAU,YAEZjuB,QAAS1C,GAAKA,EAAEqsB,mBAEhBo2C,EAAA7jE,cAAA,SAAA,CACE8D,QAASm2E,EACTl6E,MAAO,CACLgyB,SAAU,WACVvW,IAAK,OACLG,MAAO,OACPvT,WAAY,OACZooC,OAAQ,OACR5sC,SAAU,OACVF,OAAQ,UACR6Y,MAAO,SAGT,KAGFsnD,EAAA7jE,cAAA,KAAA,CAAID,MAAO,CAAEiqE,UAAW,EAAG1J,aAAc,SAAW+Y,EAAY/0D,MAE/Dw2D,GACCjX,EAAA7jE,cAAA,MAAA,CACE6uB,IAAKsuC,IAAI8d,gBAAgB5B,GACzBvqD,IAAKuqD,EAAY/0D,KACjBvkB,MAAO,CAAEyd,SAAU,OAAQ0sD,UAAW,UAIzC6Q,GACClX,EAAA7jE,cAAA,MAAA,CAAKD,MAAO,CACVi/B,WAAY,WACZk8C,SAAU,aACVhR,UAAW,OACXlrB,SAAU,OACV4hB,QAAS,OACTrjD,gBAAiB,UACjBvV,aAAc,QAEbm1D,IAAI8d,gBAAgB5B,IAIxB2B,GACCnX,EAAA7jE,cAAA,SAAA,CACE6uB,IAAKsuC,IAAI8d,gBAAgB5B,GACzBt5E,MAAO,CAAEkI,MAAO,OAAQC,OAAQ,OAAQsoC,OAAQ,QAChDhtC,MAAO61E,EAAY/0D,QAIrBw2D,IAAYC,IAAWC,GACvBnX,EAAA7jE,cAAA,MAAA,CAAKD,MAAO,CAAE6gE,QAAS,OAAQJ,UAAW,WACxC,+CAmLPqa,KChYD,SAAUM,GACdtmD,EACAhV,GAEA,IAAKA,GAA2C,IAAhCe,OAAOC,KAAKhB,GAAShF,OACnC,OAAOga,EAGT,MAAMumD,EAAkB,CAAA,EAExB,IAAK,MAAOC,EAAUxrC,KAASjvB,OAAO2lD,QAAQ1xC,GAAO,CACnD,IAAIymD,EAAa16D,OAAAoZ,OAAA,CAAA,EAAQ6V,GAGzB,GAAIhwB,EAAQ07D,uBAAmDrU,IAA/BoU,EAAc96D,aAA4B,CACxE,MAAMg7D,KAAgBF,EAAcz7D,UAAWy7D,EAAcp9D,YAC7Do9D,EAAc96D,aAAeg7D,CAC/B,CAEAJ,EAAUC,GAAYC,CACxB,CAEA,OAAOF,CACT,CCjCM,SAAUK,GAAYt+D,GAC1B,OAAOvD,gBACC8hE,EAAOp8D,cAAcnC,GAG/B,CAuBM,SAAUw+D,GACdC,GAEA,OAAOhiE,UACL,MAAMuD,QAAgBy+D,EAAUF,SAC1BA,EAAOp8D,cAAcnC,GAG/B,CCwCA,MAAM0+D,GAAoBhY,EAAMvB,WAC9B,CAAC7mC,EAAO/7B,KACN,MAAOkoE,EAAQC,GAAahE,EAAMiE,SAASrsC,EAAM/0B,cAAe,GAC1Do1E,EAAQjY,EAAMf,OAA4B,MAwBhD,OArBAe,EAAMX,oBAAoBxjE,EAAK,KAAA,CAC7ByjE,WAAahmD,UACE,QAAbkiD,EAAAyc,EAAMlwE,eAAO,IAAAyzD,GAAAA,EAAE8D,WAAWhmD,IAE5BomD,cAAgBoR,UACD,QAAbtV,EAAAyc,EAAMlwE,eAAO,IAAAyzD,GAAAA,EAAEkE,cAAcoR,IAE/BvR,SAAUA,WACRyE,GAAU,GACG,QAAbxI,EAAAyc,EAAMlwE,eAAO,IAAAyzD,GAAAA,EAAE+D,YAEjBC,UAAWA,WACTwE,GAAU,GACG,QAAbxI,EAAAyc,EAAMlwE,eAAO,IAAAyzD,GAAAA,EAAEgE,aAEjBC,WAAYA,WACVuE,EAAUkU,IAASA,GACN,QAAb1c,EAAAyc,EAAMlwE,eAAO,IAAAyzD,GAAAA,EAAEiE,gBAEf,IAGFO,EAAA7jE,cAAC2wE,GAAK,CACJjxE,IAAKo8E,EACLlL,OAAQn1C,EAAMm1C,OACdC,WAAYp1C,EAAMo1C,WAClBC,eAAgBr1C,EAAMq1C,eACtBC,eAAgBt1C,EAAMs1C,eACtBtuE,aAAcg5B,EAAMh5B,aACpBC,eAAgB+4B,EAAM/4B,eACtB0uE,QAAS31C,EAAM21C,QACfC,KAAM51C,EAAM41C,KACZ3jD,YAAa+N,EAAM/N,YACnB4jD,aAAc71C,EAAM61C,aACpBtuE,SAAUy4B,EAAMz4B,SAChBiuE,WAAYx1C,EAAMw1C,WAClBC,gBAAiBz1C,EAAMy1C,gBACvBltE,KAAM4jE,EACNoJ,aAAcnJ,EACd0J,WAAY91C,EAAM81C,WAClBC,WAAY/1C,EAAM+1C,WAClBC,YAAah2C,EAAMg2C,YACnBE,iBAAkBl2C,EAAMk2C,qBAc1B,SAAUqK,GAAM5mB,GACpB,KAAKA,EAAO7nC,QAAY6nC,EAAO7nC,kBAAkB0uD,aAE/C,YADArX,GAAa,kDAIf,MAAM1M,EAAOgkB,EAASC,WAAW/mB,EAAO7nC,QAClC6uD,EAAa,CAAExwE,QAAS,MA4B9B,OA1BAssD,EAAKmkB,OACHxY,EAAA7jE,cAAC6jE,EAAMyY,WAAU,KACfzY,EAAA7jE,cAAC67E,GAAiB,CAChBn8E,IAAMA,IAAU08E,EAAWxwE,QAAUlM,GACrCkxE,OAAQxb,EAAOwb,OACfC,WAAYzb,EAAOyb,WACnBC,eAAgB1b,EAAO0b,eACvBpqE,YAAa0uD,EAAO1uD,YACpB1D,SAAUoyD,EAAOpyD,SACjBiuE,WAAY7b,EAAO6b,WACnBC,gBAAiB9b,EAAO8b,gBACxBH,eAAgB3b,EAAO2b,eACvBtuE,aAAc2yD,EAAO3yD,aACrBC,eAAgB0yD,EAAO1yD,eACvB0uE,QAAShc,EAAOgc,QAChBC,KAAMjc,EAAOic,KACb3jD,YAAa0nC,EAAO1nC,YACpB4jD,aAAclc,EAAOkc,aACrBC,WAAYnc,EAAOmc,WACnBC,WAAYpc,EAAOoc,WACnBC,YAAarc,EAAOqc,YACpBE,iBAAkBvc,EAAOuc,qBAKxB,CACLxO,WAAahmD,UAAoB,OAAkB,QAAlBkiD,EAAA+c,EAAWxwE,eAAO,IAAAyzD,OAAA,EAAAA,EAAE8D,WAAWhmD,IAChEomD,cAAgBoR,UAAoB,OAAkB,QAAlBtV,EAAA+c,EAAWxwE,eAAO,IAAAyzD,OAAA,EAAAA,EAAEkE,cAAcoR,IACtEvR,SAAUA,KAAK,IAAA/D,EAAC,OAAkB,QAAlBA,EAAA+c,EAAWxwE,eAAO,IAAAyzD,OAAA,EAAAA,EAAE+D,YACpCC,UAAWA,KAAK,IAAAhE,EAAC,OAAkB,QAAlBA,EAAA+c,EAAWxwE,eAAO,IAAAyzD,OAAA,EAAAA,EAAEgE,aACrCC,WAAYA,KAAK,IAAAjE,EAAC,OAAkB,QAAlBA,EAAA+c,EAAWxwE,eAAO,IAAAyzD,OAAA,EAAAA,EAAEiE,cACtCiZ,QAASA,KACPH,EAAWxwE,QAAU,KACrBssD,EAAKskB,WAGX,CAtDAX,GAAkBrY,YAAc","x_google_ignoreList":[0,1,2,3,4,8,9,10,11]}
1
+ {"version":3,"file":"qa-bot-core.js","sources":["../node_modules/style-inject/dist/style-inject.es.js","../node_modules/react-chatbotify/dist/index.js","../node_modules/@rcb-plugins/html-renderer/dist/index.js","../node_modules/@rcb-plugins/markdown-renderer/dist/index.js","../node_modules/@rcb-plugins/input-validator/dist/index.js","../src/components/BotController.tsx","../src/contexts/AnalyticsContext.tsx","../src/components/LoginButton.tsx","../src/components/UserIcon.tsx","../node_modules/uuid/dist/esm-browser/stringify.js","../node_modules/uuid/dist/esm-browser/rng.js","../node_modules/uuid/dist/esm-browser/native.js","../node_modules/uuid/dist/esm-browser/v4.js","../src/utils/logger.ts","../src/utils/session-utils.ts","../src/contexts/SessionContext.tsx","../src/components/HistoryButton.tsx","../src/utils/fix-markdown-links.ts","../src/components/icons/BaseIcon.js","../src/components/icons/RefreshIcon.js","../src/components/NewChatButton.tsx","../src/utils/jsx-text-extractor.ts","../src/components/SessionMessageTracker.tsx","../src/hooks/useKeyboardNavigation.js","../src/utils/flows/qa-flow.tsx","../src/config.ts","../src/components/QABot.tsx","../src/hooks/useThemeColors.ts","../src/hooks/useUpdateHeader.ts","../src/hooks/useChatBotSettings.tsx","../src/utils/getProcessedText.ts","../src/hooks/useFocusableSendButton.ts","../src/hooks/useScreenshotCapture.ts","../src/components/icons/UploadIcon.js","../src/utils/file-utils.ts","../src/components/FileUploadComponent.tsx","../src/utils/flow-settings.ts","../src/utils/with-history.ts","../src/lib.tsx"],"sourcesContent":["function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import \"./style.css\";\nimport { jsxs as W, jsx as l, Fragment as oA } from \"react/jsx-runtime\";\nimport * as J from \"react\";\nimport { forwardRef as cA, createContext as vA, useContext as hA, isValidElement as GA, Fragment as YA, useRef as eA, useState as G, useCallback as x, useEffect as Z, createElement as $A, useMemo as dA } from \"react\";\nimport Te from \"react-dom/server\";\nconst _ = {\n AUDIO_BUTTON: \"audio-button\",\n NOTIFICATION_BUTTON: \"notification-button\",\n CLOSE_CHAT_BUTTON: \"close-chat-button\",\n SEND_MESSAGE_BUTTON: \"send-button\",\n VOICE_MESSAGE_BUTTON: \"voice-button\",\n FILE_ATTACHMENT_BUTTON: \"file-attachment-button\",\n EMOJI_PICKER_BUTTON: \"emoji-button\"\n}, Me = \"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='32'%20height='32'%20viewBox='0%200%2042%2042'%3e%3cpath%20style='fill:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke:%23b00000;stroke-opacity:1;stroke-miterlimit:4'%20d='M17%209a8%208%200%200%201-8%208%208%208%200%200%201-8-8%208%208%200%200%201%208-8%208%208%200%200%201%208%208Zm0%200'%20transform='rotate(.086)%20scale(1.77778)'/%3e%3cpath%20style='fill:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke:%23b00000;stroke-opacity:1;stroke-miterlimit:10'%20d='M14.66%2014.66%203.34%203.34'%20transform='rotate(.086)%20scale(1.77778)'/%3e%3c/svg%3e\", Ae = \"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xml:space='preserve'%20viewBox='0%200%201000%201000'%3e%3crect%20width='100%25'%20height='100%25'%20fill='%23fff'/%3e%3cg%3e%3crect%20width='45'%20height='30'%20x='-22.5'%20y='-15'%20rx='1.5'%20ry='1.5'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2337547a;fill-rule:nonzero;opacity:1'%20transform='rotate(90%20-99%20362)%20scale(3.4003)'/%3e%3cpath%20d='M0%2075q14%200%2014%2017%200%2016-14%2016Z'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2398b0ca;fill-rule:nonzero;opacity:1'%20transform='rotate(180%20106%20386)%20scale(3.4003)'/%3e%3crect%20width='25'%20height='4'%20x='-12.5'%20y='-2'%20rx='.2'%20ry='.2'%20style='stroke:%2346648c;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2346648c;fill-rule:nonzero;opacity:1'%20transform='rotate(90%20-46%20282)%20scale(3.4003)'/%3e%3cpath%20d='M19%2065h4l5%204v1H14v-1Z'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2346648c;fill-rule:nonzero;opacity:1'%20transform='translate(165%20150)%20scale(3.4003)'/%3e%3crect%20width='25'%20height='2'%20x='-12.5'%20y='-1'%20rx='.1'%20ry='.1'%20style='stroke:%2398b0ca;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2398b0ca;fill-rule:nonzero;opacity:1'%20transform='rotate(90%20-3%20240)%20scale(3.4003)'/%3e%3ccircle%20r='7.5'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%23a478fc;fill-rule:nonzero;opacity:1'%20transform='translate(236%20175)%20scale(3.4003)'/%3e%3crect%20width='45'%20height='30'%20x='-22.5'%20y='-15'%20rx='1.5'%20ry='1.5'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2337547a;fill-rule:nonzero;opacity:1'%20transform='rotate(90%20139%20600)%20scale(3.4003)'/%3e%3cpath%20d='M184%2075q14%200%2014%2017%200%2016-14%2016Z'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2398b0ca;fill-rule:nonzero;opacity:1'%20transform='translate(165%20150)%20scale(3.4003)'/%3e%3crect%20width='25'%20height='4'%20x='-12.5'%20y='-2'%20rx='.2'%20ry='.2'%20style='stroke:%2346648c;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2346648c;fill-rule:nonzero;opacity:1'%20transform='rotate(90%20219%20548)%20scale(3.4003)'/%3e%3cpath%20d='M175%2065h4l5%204v1h-14v-1Z'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2346648c;fill-rule:nonzero;opacity:1'%20transform='translate(165%20150)%20scale(3.4003)'/%3e%3crect%20width='25'%20height='2'%20x='-12.5'%20y='-1'%20rx='.1'%20ry='.1'%20style='stroke:%2398b0ca;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2398b0ca;fill-rule:nonzero;opacity:1'%20transform='rotate(90%20262%20505)%20scale(3.4003)'/%3e%3ccircle%20r='7.5'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%23a478fc;fill-rule:nonzero;opacity:1'%20transform='translate(767%20175)%20scale(3.4003)'/%3e%3crect%20width='116.7'%20height='70'%20x='-58.4'%20y='-35'%20rx='31.5'%20ry='31.5'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2371c9fc;fill-rule:nonzero;opacity:1'%20transform='translate(502%20877)%20scale(3.4003)'/%3e%3crect%20width='60'%20height='20'%20x='-30'%20y='-10'%20rx='3'%20ry='3'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2337547a;fill-rule:nonzero;opacity:1'%20transform='translate(502%20728)%20scale(3.4003)'/%3e%3ccircle%20r='75'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2371c9fc;fill-rule:nonzero;opacity:1'%20transform='translate(502%20473)%20scale(3.4003)'/%3e%3crect%20width='129.4'%20height='82.3'%20x='-64.7'%20y='-41.1'%20rx='37'%20ry='37'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%23fff;fill-rule:nonzero;opacity:1'%20transform='translate(502%20464)%20scale(3.4003)'/%3e%3crect%20width='108'%20height='68.6'%20x='-54'%20y='-34.3'%20rx='30.9'%20ry='30.9'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%23162334;fill-rule:nonzero;opacity:1'%20transform='translate(502%20464)%20scale(3.4003)'/%3e%3ccircle%20r='19.4'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%23a478fc;fill-rule:nonzero;opacity:1'%20transform='translate(415%20464)%20scale(3.4003)'/%3e%3ccircle%20r='19.4'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%23a478fc;fill-rule:nonzero;opacity:1'%20transform='translate(591%20464)%20scale(3.4003)'/%3e%3crect%20width='96'%20height='53.2'%20x='-48'%20y='-26.6'%20rx='23.9'%20ry='23.9'%20style='stroke:%23162334;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%23162334;fill-rule:nonzero;opacity:1'%20transform='translate(503%20875)%20scale(3.4003)'/%3e%3cpath%20stroke-linecap='round'%20d='m68%20215%207-15M81%20222l-7-22M81%20222l7-14M101%20208H87M114%20219l-7-24M113%20219l13-22M131%20214l-5-17M148%20214h-18M69%20214H51M100%20209l7-15'%20style='stroke:%23a478fc;stroke-width:3;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:10;is-custom-font:none;font-file-url:none;fill:none;fill-rule:nonzero;opacity:1'%20transform='translate(165%20150)%20scale(3.4003)'/%3e%3c/g%3e%3c/svg%3e\", ke = \"data:image/svg+xml,%3csvg%20width='140'%20height='140'%20xmlns='http://www.w3.org/2000/svg'%3e%3ccircle%20cy='60.044'%20cx='70'%20fill='%235c5c5c'%20r='29'/%3e%3cpath%20d='m16.36%20156.186-.01-30.5c-.005-16.844%2024.168-30.507%2053.991-30.516%2029.823-.009%2054.004%2013.64%2054.01%2030.484l.008%2030.5-108%20.032z'%20fill='%235c5c5c'/%3e%3c/svg%3e\", He = (A, e) => /* @__PURE__ */ J.createElement(\"svg\", { viewBox: \"0 0 637 637\", ref: e, ...A }, /* @__PURE__ */ J.createElement(\"path\", { d: \"m478 113-13 2-4 1h4l14-2c10-2 35-2 42-1l6 3 3 1c3 0-4-3-8-5-7-1-34-1-44 1m56 6 8 6c7 5 20 17 20 19s7 12 8 12l-3-6-4-6c0-3-15-17-25-24-5-3-8-4-4-1m-198 16-9 1a512 512 0 0 1 9-1m-180 30a412 412 0 0 0-23 4 167 167 0 0 0-32 8 439 439 0 0 1 46-9 304 304 0 0 1 11-2l6-1h-8m369 8 4 3-7-6c-1 0 0 2 3 3m-439 9c-7 3-18 13-18 15l6-5c5-5 9-8 14-10l6-4-8 4m442 12-10 11-7 6 7-6c7-5 14-14 13-16l-3 5M65 205l-1 11c0 9 0 10 4 17 5 10 7 12 22 11 10 0 15 0 38-5l5-1-6 1-16 2-21 2c-13 1-16-1-21-10-3-5-4-6-4-15l1-12c1-4 1-5-1-1m335 1c3 0 3 1 3 3l-2 6c-2 5-35 39-76 80-53 51-120 117-138 137-21 24-22 25-22 27 0 3 6 9 9 9 4 0 14-8 38-27a5073 5073 0 0 1 15-16 1421 1421 0 0 0-17 15l-31 25-6 2-4-3c-3-3-3-4-2-6 3-8 79-85 160-163 57-57 79-80 79-86 0-2-3-4-7-4-2 0-2 0 1 1m165 18c-9 17-25 32-57 53l-10 8 16-11 12-8c15-10 27-22 39-39 5-7 6-8 4-8l-4 5m-221 2a199 199 0 0 0-19 10 183 183 0 0 1 27-12c0-1-1-1-8 2m-34 16c-3 3-2 3 2 0l1-2-3 2m151 3-1 2 2-2c3-3 2-3-1 0m-16 12-11 10a281 281 0 0 0 11-10m-24 18-7 5-7 5-42 31c-10 7-24 19-22 19l7-6 16-12a343 343 0 0 0 35-25 573 573 0 0 0 20-17m-187 0-2 2 4-2 3-2-5 2m-14 6-3 2 4-1 4-3-5 2m-7 3-8 4-18 8 18-7 7-3 3-1c1-2 0-2-2-1m254 24a2672 2672 0 0 1-71 54 601 601 0 0 0 39-29 1352 1352 0 0 1 32-25m-291-8-2 2 4-2 3-2-5 2m-13 5-2 2h3c5-3 4-4-1-2m-19 9-7 3-13 6c-10 5-13 7-14 10-3 4-2 5 1 0 2-3 5-5 14-9l13-6 12-6-6 2m178 36c-17 12-21 16-21 17a390 390 0 0 1 20-17m-206 34 1 4 1 3 1 5 2 8 1 5v-6l-1-8-2-5-1-4-1-2c-1-2-1-2-1 0m222 23-9 7a683 683 0 0 0-56 44 261 261 0 0 0-26 20 1345 1345 0 0 0-46 34c-6 3-7 3-19 3-11 0-12 0-18-3-8-4-10-8-17-20l-5-10 4 10c5 10 12 18 19 22 4 2 6 2 17 2 13 0 14 0 21-3l26-19 42-33a2183 2183 0 0 0 43-34 643 643 0 0 1 24-20\", fill: \"#fff\", fillRule: \"evenodd\" }), /* @__PURE__ */ J.createElement(\"path\", { d: \"M478 114a620 620 0 0 1-39 6l-21 3a5481 5481 0 0 0-19 3 870 870 0 0 1-54 8l-1 1-6 1-12 2-13 2a992 992 0 0 0-76 12 400 400 0 0 1-45 8l-6 1-5 1h-3l-3 1-2 1-26 4-13 2-17 3c-23 5-33 9-43 19-7 8-9 13-9 27 0 8 1 9 4 14 5 9 8 11 21 10l21-2a1133 1133 0 0 1 23-4 659 659 0 0 0 74-14l3-1h3l3-1h3l2-1 2-1h3l2-1h2l24-5 38-7a2100 2100 0 0 1 93-18l3-1 10-1a2082 2082 0 0 1 120-17l2 1c2 0 8 5 8 7l1 2 1 6c0 4 0 6-3 10-2 4-16 16-18 16l-7 5-10 8a1070 1070 0 0 0-11 7 113 113 0 0 1-20 14l-2 2-3 2-2 2h-1a154 154 0 0 1-28 21l-5 4-5 4a573 573 0 0 1-50 37 175 175 0 0 0-24 18l-1 2-2 1-2 1-2 1-1 1-12 10a396 396 0 0 0-32 25l-8 6-6 5-9 7a326 326 0 0 1-25 20l-13 12a5073 5073 0 0 0-17 15c-24 20-34 27-39 27-2 0-8-6-8-9 0-2 1-3 22-27 18-20 85-86 138-137 41-41 74-75 76-80l2-6c0-2 0-3-2-3l-7 1a233 233 0 0 1-26 9l-1 1-1 1h-1l-1 1h-2l-3 2-1 1h-2l-3 2h-1l-5 2-22 10-9 4-4 2-5 2-10 4-2 1-2 1-2 1-13 6a334 334 0 0 1-38 17 75 75 0 0 0-14 6l-5 2-4 1-2 1-3 2-7 3-16 6a247 247 0 0 0-32 14l-1 1h-2l-1 1h-2l-1 1-12 6a103 103 0 0 0-27 15l-2 5-1 1v11l1 5 1 5 1 4c0 3 0 4 2 4v3l1 3 1 2 2 10 1 4 1 5 2 10 2 8 1 4 1 4c3 3 9 25 11 38l1 7v2l1 4v1l1 1v2l1 2 1 3v1l5 10c7 13 9 16 17 20 6 3 7 3 18 3 12 0 13 0 19-3 8-4 11-6 26-18a1345 1345 0 0 1 85-67 683 683 0 0 1 50-39l12-9a513 513 0 0 1 44-33 201 201 0 0 0 22-17 2270 2270 0 0 0 73-54 158 158 0 0 0 58-59c2 0 3-9 4-27l-1-19-1-4-1-6-1-3-4-6-4-6c0-2-6-8-13-14a77 77 0 0 0-28-18c-6-1-34-1-43 1\" })), ee = cA(He), xe = (A, e) => /* @__PURE__ */ J.createElement(\"svg\", { viewBox: \"0 -960 960 960\", ref: e, ...A }, /* @__PURE__ */ J.createElement(\"path\", { d: \"M765-321q0 117-84 196-83 80-200 80-118 0-200-80t-83-196v-392q0-85 61-144 61-58 146-58 86 0 147 58 61 59 61 144v374q0 54-39 92-39 37-93 37-55 0-93-37-38-38-38-92v-372h110v372q0 9 6 14t15 5q8 0 15-5t7-14v-374q0-39-29-66t-68-27q-40 0-69 27t-29 66v392q0 71 51 119t122 48q71 0 122-48t51-119v-426h111v426Z\" })), te = cA(xe), Oe = (A, e) => /* @__PURE__ */ J.createElement(\"svg\", { viewBox: \"0 -960 960 960\", ref: e, ...A }, /* @__PURE__ */ J.createElement(\"path\", { d: \"M125-165v-113h77v-273q0-93 55-167 56-75 146-100v-19q0-32 22-55 23-23 55-23t55 23q22 23 22 55v19q90 25 146 99 56 73 56 168v273h77v113H125ZM480-32q-38 0-66-27-27-27-27-66h186q0 39-27 66t-66 27Z\" })), Le = cA(Oe), Ne = (A, e) => /* @__PURE__ */ J.createElement(\"svg\", { viewBox: \"0 -960 960 960\", ref: e, ...A }, /* @__PURE__ */ J.createElement(\"path\", { d: \"M137-190v-113h78v-253q0-41 11-79 11-39 35-71l-9 150h10L17-802l74-74L873-92l-74 74-175-172H137Zm609-149L319-769q20-15 41-25t44-16v-28q0-32 22-54t54-22q32 0 55 22t22 54v28q85 23 137 94t52 160v217ZM481-47q-38 0-65-27t-27-65h184q0 38-27 65t-65 27Z\" })), Re = cA(Ne), Fe = (A, e) => /* @__PURE__ */ J.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 100 100\", ref: e, ...A }, /* @__PURE__ */ J.createElement(\"g\", { strokeLinecap: \"round\", strokeWidth: 10 }, /* @__PURE__ */ J.createElement(\"path\", { d: \"m19 19 61 61M80 19 19 80\" }))), Ue = cA(Fe), je = (A, e) => /* @__PURE__ */ J.createElement(\"svg\", { viewBox: \"0 -960 960 960\", ref: e, ...A }, /* @__PURE__ */ J.createElement(\"path\", { d: \"M94-136v-255l351-93-351-92v-253l816 346L94-136Z\" })), ze = cA(je), Ge = (A, e) => /* @__PURE__ */ J.createElement(\"svg\", { viewBox: \"0 -960 960 960\", ref: e, ...A }, /* @__PURE__ */ J.createElement(\"path\", { d: \"M480-372q-61 0-105-43-43-43-43-105v-240q0-61 43-105 43-43 105-43 61 0 105 43 43 44 43 105v240q0 62-43 105t-105 43ZM425-76v-122q-121-16-197-108t-76-214h109q0 91 64 154t155 63q91 0 155-63t64-154h109q0 122-77 214T534-198v122H425Z\" })), Ye = cA(Ge), Xe = (A, e) => /* @__PURE__ */ J.createElement(\"svg\", { viewBox: \"0 -960 960 960\", ref: e, ...A }, /* @__PURE__ */ J.createElement(\"path\", { d: \"m763-343-80-79q8-20 13-44 5-23 5-54h109q0 49-11 95t-36 82ZM625-482 336-770v-2q3-56 45-96t101-40q62 0 105 43t43 105v249l-1 17q-1 7-4 12ZM427-76v-122q-120-16-196-108-77-92-77-214h109q0 91 64 154t155 63q43 0 80-14 37-15 67-41l78 79q-35 32-78 53t-93 28v122H427Zm362 27L41-796l75-75 748 748-75 74Z\" })), We = cA(Xe), Ke = (A, e) => /* @__PURE__ */ J.createElement(\"svg\", { viewBox: \"0 -960 960 960\", ref: e, ...A }, /* @__PURE__ */ J.createElement(\"path\", { d: \"M625-511q29 0 50-21t20-50q0-29-20-50-21-20-50-20t-50 20-20 50q0 29 20 50 21 21 50 21Zm-290 0q29 0 50-21t20-49q0-30-20-50t-50-21q-29 0-50 20-20 21-20 50 0 30 20 50 21 21 50 21Zm145 268q75 0 137-43t85-115H258q24 72 85 115 62 43 137 43Zm0 198q-90 0-170-34-79-34-138-93T79-310q-34-80-34-170t34-170q34-79 93-138t138-93q80-34 170-34t170 34q79 34 138 93t93 138q34 80 34 170t-34 170q-34 79-93 138T650-79q-80 34-170 34Zm0-435Zm0 322q134 0 228-94t94-228q0-134-94-228t-228-94q-134 0-228 94t-94 228q0 134 94 228t228 94Z\" })), oe = cA(Ke), Ve = (A, e) => /* @__PURE__ */ J.createElement(\"svg\", { viewBox: \"0 -960 960 960\", ref: e, ...A }, /* @__PURE__ */ J.createElement(\"path\", { d: \"M553-64v-108q107-27 173-113 67-87 67-197 0-109-67-195T553-789v-108q152 26 249 144 97 117 97 271 0 155-97 273T553-64ZM61-335v-290h176l236-237v764L237-335H61Zm492 28v-346q51 23 82 70t31 103-31 103q-31 47-82 70Z\" })), qe = cA(Ve), Je = (A, e) => /* @__PURE__ */ J.createElement(\"svg\", { viewBox: \"0 -960 960 960\", ref: e, ...A }, /* @__PURE__ */ J.createElement(\"path\", { d: \"M807-15 700-123q-33 21-71 37-38 15-80 22v-108q20-4 38-12l35-17-153-154v257L234-335H57v-290h144L10-818l74-75L882-90l-75 75Zm37-264-80-79q13-30 19-60 7-31 7-64 0-109-68-195-67-86-173-112v-108q152 26 249 144 98 117 98 271 0 55-14 107-13 51-38 96ZM661-462 549-575v-78q51 23 83 70 31 47 31 103l-1 9-1 9ZM469-655 366-759l103-103v207Z\" })), Ze = cA(Je), _e = \"data:audio/wav;base64,UklGRmaIAABXQVZFZm10IBAAAAABAAIAQB8AAAB9AAAEABAATElTVBoAAABJTkZPSVNGVA4AAABMYXZmNjAuMTYuMTAwAGRhdGEgiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////AAAAAAAA//////7/////////AAABAAAAAgABAAEAAQAAAAIAAQABAP//AAD+////AAD+//7////+////AAD//wAA/v8AAAAA/v8AAP//AAAAAAAAAgD////////+////AAABAAEAAgD/////AQABAAAA//8CAP//AAAAAAAA/v8AAAAA//8AAAEA//8EAAAAAAAAAAAA//8BAP//AQABAAEA/////wEA/v///wAAAAACAAAAAAABAAAA//8AAP//AAACAP//////////AAAAAAEAAAAAAAEA//8AAAEAAQADAAIAAgAAAAAA/v///wEAAAAAAAEAAAAAAAEA//8AAAEAAQD//wAA//8AAAEAAAABAAEAAAABAP//AAD//wAAAgAAAP//AQD/////AAAAAP7/AgAAAAIAAAAAAAAAAAABAAAAAQABAP//AAABAP///v8AAP////8AAP//AAD//wAA//8BAP//AAD///7///8BAP7///8AAAIAAgABAAEA/v8AAP//AQADAAEAAAACAAEA/////////v///wEA/v////7/AAD+////AAAAAAAAAgAAAAAAAAD//wEAAAAAAAAAAQABAAIA/v8AAAAA//8AAAEAAAAAAP//AgD//wEA/////wAAAQACAAAAAAAAAP//AQD/////AQAAAAEA/v8AAAEAAQABAAEA///+////AQD//wEAAgD+//7/AAAAAAAAAQAAAAAAAQAAAAAAAAAAAP//AAD//wEAAQD//wAAAQABAP7///8AAP7/AAABAP7/AQABAAEAAAABAAEAAAD+/wIAAAABAAAAAQD/////AQACAP////8AAP//AQD//wEA/v8CAAEAAAAAAAAAAQAAAAIAAQAAAAEAAgD//wEAAAAAAP7///8BAP//AgAAAP///v8CAAAAAgD///////////7/AAACAAEAAgD//wAAAAABAP//AwAAAAMA//8AAAAAAQD+/wAAAAD//wAAAQD//wEA//8BAP7/AAABAAAA//8BAAAA//8AAP//AQADAP3////+////AgD+/////v8BAAEAAQACAAAAAAAAAAAA//8AAP//AAD+/wEA/v8AAP7/AAD//wAAAQACAAAAAQAAAP//AQAAAAAAAAABAAAAAAD+//////8AAAAAAAD//wAAAAABAAEA//8AAAEA//8AAP//AgD+/wAA///+/wAA/v///wAAAQABAAAAAQD//wAA//8AAAEA//8BAAAAAgABAP//AAACAAIAAQABAP//AAAAAAAA//8BAAIAAAABAAAA//8CAAEA/v//////AAAAAAEA////////AQAAAP//AAD//wAAAAAAAP3/AAAAAAEAAAACAAAAAAAAAP//AAD//wAAAAAAAAAAAAAAAP///v///wAAAAABAAAAAAD//wEAAAABAAEAAQD//wAAAAACAAAAAQD+/wAA//8BAAEAAAD+/wAA/////wAAAAABAAAAAAD//////v8AAAAA//8AAAAAAAAAAAIAAAABAAEAAAABAP7/AAD9//////////7///8BAP//AAD///3/AQABAP//AAD//wAAAAABAAAA//8AAP//AAD/////AQABAAEA//8AAAAA//8BAAMA//8AAAAA//8AAP7/AAD//wAAAAAAAP7/AQAAAAAA/v8CAP//AAABAAIAAQABAAAA//8BAAEAAQD///7/AQD//wAAAQABAP//AAD//wEAAAAAAAAAAQAAAAIA//8AAP////8AAP//AQD//////v///wEA/v8AAAIAAgACAAEAAAAAAAEAAAAAAAAAAAAAAAAAAQD//wAA/////wAAAQACAP////8AAAAAAAD//wAAAQD+/wEA//8AAAEAAwD//wEAAQAAAAAAAAABAP////8AAAAAAQAAAAAAAAAAAAEAAQAAAP////////7/AQABAAEAAQD///////8BAAAA//8AAAAAAgABAAEA/v8BAP7///8BAP3/AQABAAIAAAD//wEAAAAAAP//AAABAAIA//8CAAAAAQAAAAEA//8BAAAA/////wAAAAD//wEAAQD//wAAAAAAAP//AAAAAAAAAQABAAAAAQAAAP//AQD//////v8AAAEAAAAAAAAA//8AAAAAAAACAAEAAQAAAP//AAABAAEA/////wAAAgABAAAAAAAAAAEAAAABAP//AQABAP7////+/wEAAAAAAP//AAABAAAAAAABAAEAAAAAAAAA//8BAP///f/+/wEAAQD///7///8AAAAAAQAAAP////8AAAAAAAABAAAAAQD/////AAD//wEA//8AAAIA//8CAAAA//8AAAAAAAD+/wEAAAD+/wAA/////wAA////////AAAAAAAA//8BAAAAAAD//wAAAAD//wEA//8AAP//AQD+/wAAAAAAAP7/AAD+/wEAAQABAP//AAABAAEAAQD//wAA/////wEA//8AAAAAAgAAAAAA//8BAAAAAgAAAAAAAAAAAP7/AQD//wAAAAD+/wAAAAADAAIA/////wAAAQD//wIA//8BAAEA/v8AAAIAAAAAAP3///8AAAAAAAAAAAAAAAABAP///////wAA//8AAAEAAQABAAEAAQABAAAAAQAAAAAAAQABAP7/AQD//wAAAQABAAEA//8BAAAAAgAAAAEAAAABAP//AAD/////AAD//wIA/////wIAAAD///7/AAAAAAAAAAACAP//AAABAP////8AAAAAAAABAAAAAgAAAAAAAQD+/wEA/////wAA/////wAAAAAAAAAA/v//////AAAAAP//AAABAAAAAQAAAAIAAAACAAAA//8AAAAA//8AAP7/AAAAAP//AAACAP//AQABAP//AQABAAAA/////////v8AAP//AQAAAAAA///+/wAAAQD+/wEAAQAAAAEA/////wAAAQD//wAA//8AAAAA/v8BAAEA//8AAP7//v8BAAAAAAAAAAEA//8AAAEA/////wAAAAD//////////wEAAAABAAEA//8CAAEA/f8AAAAA//8BAAAABAABAAEAAQAAAAAAAAAAAP7///8AAAAA/v8BAAAA//8AAAIA//8AAP////8BAP//AAAAAAAAAAD/////AQD///7/////////AQD8////AgABAAIA////////AAD//wAAAAABAAAAAAAAAAEAAgAAAP//AQD//wAAAAAAAP/////+/wAAAAABAAAAAwABAP///////wEAAAADAP//AQACAAAA//8CAAEAAAAAAP///////wIAAAAAAAAAAQAAAAAAAgD//wEAAAABAAAA/v8AAAAAAAAAAAAAAAAAAAEA/v8AAP//AQD//wAA//////7///8AAAAAAAAAAP7/AQD//wAA//8AAAEAAAABAAEAAQD/////AAD//wEAAAD/////AQAAAAEAAAD//wEAAAD/////AgD//wAAAQD//////////wAAAAD//wAAAAABAAAAAAD//wAAAQD///7/AQD//wEAAAD/////AAD//wEA//8AAAEA//8CAAAAAQD//wEAAgAAAAEAAwAAAAAA/v8BAAEAAgD//wEAAAAAAAAAAAD//wEA//8AAAAAAQACAP///////wAAAQABAAEAAAAAAAEAAQD+/wEA/f////////8AAAAA//8AAAEA//8BAAAA/v///wEAAAAAAAEA/////wAAAAAAAP//AAAAAAIAAAABAAAA/////wAAAAD//wAA/v8AAAMAAQD+/wEAAAABAAEA//8BAP//AgAAAAAAAAD//wAA/////wEA/v8CAP3/AAACAP3/AQABAAAAAQACAAEA/v8AAAAA//8BAAAAAgAAAAAAAgACAAEA/v/9/wAAAQABAP7///8AAP//AgD+/////v8CAP////8BAP//AQACAAEAAQABAP//AAD///7/AAABAAEAAgD//wEA//8CAAEAAQABAAEAAAABAAAA/v8AAAEA/v8AAP//AAABAP//AQAAAAEAAgAAAAAA/v///wEAAQAAAAIAAAD/////AgAAAAEA/v8AAP7/AQAAAAAAAQAAAAEAAAACAAEA//8BAP////8AAAIAAAAAAP//AAAAAAIAAAAAAAAAAwABAP///v8BAAAAAAAAAP3/AAABAAEA/v////////////3//v8AAAAAAQABAAIAAAD+/////v8AAAAAAQABAAEAAQAAAP//AAAAAP//AQAAAP//AAABAAAAAAAAAAAA////////AAAAAP//AQD/////AAABAAEA//8CAP7///8AAP7//v8BAAEAAAD+/////////wEAAAAAAAAAAgD//wAAAQAAAP7/AQABAP//AQAAAAAAAAD/////AAACAP////8BAAAAAAD//wAA//8AAAEAAQABAAAAAAABAAAAAQD+/wEA/v8AAAEAAQD/////AAD//wAAAQABAP7//v//////AAACAAAAAAAAAAAAAAACAAAAAQAAAAAA//8BAP//AQD//wAA///+/wIAAQD//wAAAAD//wAA/v8AAP3///8AAAAAAAAAAAAA/f8AAAAA//8CAP7/AAD///7/AAAAAAAAAAD//wEAAAAAAAEAAAAAAAAA//8BAP////8BAP7///8CAAEA//8BAP3///////////8BAAAAAAAAAAEAAgD+//////8BAAMAAQADAAEAAAACAAAAAQD/////AAABAAMAAQAAAP//AQD//wAA//8AAAAA//8CAP7//////wAAAAAAAAIA/v8AAP//AAACAP//AwD//wAA//8AAP//AwD//wEAAQABAAEAAQACAAEAAAD//wAA//8AAAIAAAAAAP///////wAAAQD//wIA//8BAP7/AAD///////8AAAAAAAAAAAEAAAD//wAAAQD//wEA//8BAAAAAAD/////AgABAAIAAAABAAAAAAAAAP//AAAAAAAA//8AAAAAAAD/////AQAAAAAAAQD//wAA///+////AAAAAAEAAgABAAEAAAAAAP//AQAAAAAAAQD+/wAAAAABAAEAAAD/////AQABAP7///8AAAIAAAACAAAA//8AAP//AgACAAAA///+/wAAAAABAAAAAQAAAAEA/v8BAAEA//8CAP//AQD+/////v8AAAAAAAACAP//AAD+/wIA/v8BAAAAAAD/////AAAAAP7///8AAP7//////wEAAAABAAAAAAD//wAAAAAAAAAAAgACAAAAAAABAAAA/f8AAP7/AgAAAAEA//8BAAAAAAD///7/AQD//wAAAAAAAAEAAAAAAAEAAAAAAAAAAQAAAAAA//8AAAAAAAABAP///////wAAAgABAAEA//8AAP//AAACAP//AQABAAEA//8BAAAAAAABAAAA//8AAAEAAAAAAAIA/v8BAP//AQD//wEAAAABAAEAAQACAAEAAAAAAAEAAAABAAAAAAD/////AAABAAEA//8AAAAAAQABAP//AAAAAP//AAD/////AQD//wAAAAABAAEA//8BAAAA//8AAP///f/+/wAA/////wAAAQAAAAIAAAAAAAAAAAD+/wEA/f8CAAAA//8AAAEAAgAAAAMAAAABAAAAAAAAAP//AQAAAAAAAQABAAAAAQAAAP//AAAAAAAA//8AAAAAAAABAAAAAQAAAAAAAAABAAIAAAAAAP7/AQD//wAAAAD+////AAAAAAAAAAABAAAA/////wAA//8AAAAAAAD/////AgD//wAA//8CAP//AQACAAEA/f////////8BAAIAAQABAP//AAD//wAA///+////AAD+/wAAAQD/////AAAAAAAA/////wAAAAABAAAAAQAAAAAA//8AAAIAAAABAP//AQABAAEA//8AAAAAAAADAAEAAAABAP//AgD//wMA//8AAAAAAAD//wAAAAD9/wEA///+/wAA//8BAAEA//8BAAAA//8AAP///v8BAP///////////v8BAAAAAQABAAAAAAAAAAAA//8AAP7/AQAAAAAAAAAAAP7/AQAAAAAAAgABAAEAAAABAAEAAAAAAAAAAAD+/wAAAAD//wEAAAAAAAAAAAAAAP//AgABAAAAAAABAAEAAAD/////AAAAAP//AAABAP////8BAAAAAQABAP7//v/+////AQAAAAAAAQAAAAEAAgAAAAAAAQAAAAEAAAD+/////v8BAP//AAABAP//AQABAAAAAAD//wAA//8CAP//AAAAAAEAAAABAAAAAAAAAP//AAD+////AwAAAAAAAQD//wEAAAACAAEAAAADAAAAAAD/////AAAAAAEAAAABAAAA//8AAAEA//8BAP///v8AAP//AAD//wAAAQABAP//AQAAAAAA/////wEAAQAAAP////8AAAEA//8BAAAAAQAAAP////8AAAAAAQAAAAIAAQAAAAEAAAAAAAEAAAD//wEAAAAAAP////8AAAAA//8BAAEAAAAAAAIA///+/wIA/v8BAAAAAQACAAAAAQAAAP7///8AAP//AAAAAAEAAAAAAP7/AAD+////AAAAAAAAAAD//wAA/v8BAAMAAAABAAIAAgD//wAA//8BAAEA//8BAP7/AAAAAP7///8BAAAAAQAAAP7/AQD/////AAAAAAEAAAABAP//AQABAAAAAgABAAAAAAAAAP///////wEA//8AAAEA//8AAAAAAQAAAAIAAAABAP7//////wAAAQABAAAAAAABAAEA///+/wAA//8BAP///v8AAP///v8BAAAA//8CAAAAAQAAAAEAAQABAAAAAAD+/wAAAAD+/wAAAAAAAAAA/f////////8AAAAAAQABAP///////wEA//8BAAEAAAAAAAAA/////wEA/v//////AAAAAP//AAABAAAAAAD+/wAAAAD9////AQAAAAEAAwD//wEAAQAAAP//AgAAAAAAAAD+/wIAAAAAAAAAAAAAAAIA//8AAAEAAQACAAAAAQD//wAAAAD//wIAAQABAAAAAAD//wEA//8BAAEAAQAAAAAAAQABAP7/AAD//wEAAAACAP7/AQAAAAAAAAD//wIAAQACAAIAAQAAAAAAAAAAAP3///8BAAAAAQACAP//AgD9/wAAAAD//wEA/v////////8AAAAAAAD//wEAAQD//wMAAQAAAAEA//8AAAEA//8AAAAAAAACAAAAAAD//wAAAQD///////8AAAAA//8BAAIA/v8BAAEA/f8AAAAAAAAAAAAAAgD/////AAD+/wAAAAD//wAAAAAAAP//////////AgABAP///v8AAAIAAQAAAP//AAABAAAA/////wAAAAAAAAEAAAABAP///v///wIA//8BAAEAAQAAAAAA///+/wEAAAAAAAAA/////////v8BAP3/AAAAAAAAAAAAAAAA//8AAP//AAAAAP//AAABAAIAAAACAP////8DAAAAAAABAAAAAwABAP//AAABAP//AAAAAP////8BAAAAAgD//wAA///+/wAAAQD//wAA//8AAP7///8AAAAA/v8AAAAAAQD//wEA/v////////8AAAAAAQAAAP//AQACAAAAAAAAAP//AAD//wAAAAD//wAAAAD+/wAAAAAAAP//AQD//wAAAgAAAAAAAQABAAAAAwD+/wAAAAD///7/AQD//wIAAQAAAP//AAD//wAA//8CAAEAAAAAAAAA/////wAAAAD//wEAAQD///////8BAAAA//8BAAEAAAAAAAAA/v///wEAAAAAAAAAAAADAAAAAAAAAAAAAQABAAEAAAD+//7//v8AAP//AQAAAAAAAAABAAEAAgAAAAAAAQD//wAA/f8AAAAAAAABAAAAAQAAAAAAAAAAAAIA//8BAP///////wIA/////wAAAAABAAEA//8BAAAAAAD//wAAAQD//wEAAAAAAAIA/v8BAP//AAAAAAEAAAABAP//AAAAAAAAAQABAP7/AAABAAAAAQD//wIAAAAAAAEA///+/wAA//8AAP//AAAAAAAAAAABAP///////wIAAQAAAAEAAQAAAP7/AQAAAAAAAQAAAAAAAQD/////AQAAAAAA///+//7/AAD+/wEA//8AAAAA///+/wEAAAABAAIAAQABAAAA//8AAP//AAD//wAAAAD//wAAAAAAAP//AQAAAAAA////////AQAAAAAAAQD+////AQABAP7/AAD///7/AgD//wAAAAAAAP//AAAAAAEA//8BAAEAAgAAAAIAAAD//wEA/////wAAAQD///7/AQD//wEAAQD/////AAAAAAEAAgAAAAAAAQD//wEA//8AAP7//////wAA//8BAAEA//8BAAAAAQD/////AAABAP//AAACAP//AQAAAP//AAABAP////8AAAAAAAABAAEAAwABAAAAAgD//wAAAAD//wEAAAABAAAAAAABAAEA/////wAA//8AAAIAAAAAAAEAAQABAAEAAQABAP//AgAAAAAA//8BAP3//v///wAA//8AAAAAAQAAAP//AQD//wEAAAACAAIAAAABAAAA//8BAAEA//8BAP//AAAAAP//AQAAAAIAAAD//wAAAAAAAAEA////////AQAAAP//AQD//wAAAQD+/wEAAAABAP///v///wAAAAAAAP//AAAAAAIAAQD//wAAAgD+/wAAAAD//wAAAAABAP///P//////AAACAP////8AAAIAAAABAAAAAAAAAAAA//8AAAAAAQADAP//AQAAAAAAAAABAAEAAQAAAAAA/v8AAAAAAAD//wAAAQD//wAAAAD//wAA/v////////8CAAEA/v8BAP7/AAAAAAAA//8AAAEAAAD//wIAAQAAAAIAAQAAAAAAAAD///7/AQABAP//AAAAAP//AAACAAEA//8BAAAAAwAAAAAAAAD//wEAAAD//wAA///////////+/wAAAQABAAIAAAABAAEAAAD//wEAAAD/////AAD+/wIAAwABAAEA/v8BAAEAAAD//wAA//8AAP//AAAAAAEAAAAAAP//AAAAAAEAAQABAAEA/v///wAAAAD//wEAAAACAAAA/f/+/wAA/v///wAA//8AAAEAAQD///7/AAAAAAAAAAABAAAAAAACAAAAAAABAAAAAAABAP//AQD//wAA//8BAP7/AgABAAEAAQAAAAAAAQD//wEA/v8AAP////8AAP///////wIAAQD//wAAAAD//wAA/v///wAAAQD//wIA/////wEAAAAAAAIAAAABAAAAAAD//wEA//8AAAAA/////wAAAQAAAAAAAAD//wEAAQAAAAAAAAACAP///////wAAAgD//wAA/v8AAAIAAAAAAAEAAAABAP//AQABAAEAAQAAAP///v8BAAEAAAAAAP////8AAAAAAQD//wIAAQAAAAEAAAAAAAAA//8BAP//AAAAAP7//v///wEAAAAAAAIAAAAAAP//AAD//wEA//8BAAAAAAABAAEAAAABAP7///8AAAIAAAABAP//AAD//wEAAAAAAP//AAAAAAEAAAAAAAAAAAAAAP7/AQD//wAAAQD+/wEA/v8BAP7/AAABAAEAAAACAAIAAAADAAAA//8AAAEAAAABAP//AQD//wIA/////wEA//8AAAEA//8AAAEAAAAAAAAAAQABAAAAAAAAAAAAAAD//////////wAA//8AAP7/AAD+/wAAAQAAAAAA/////wAABAAAAAAA//8AAAEAAAAAAAAA/v8AAP//AAAAAAAAAAD//wAAAAD///////8BAAEAAAD/////AgABAAEA/v/+/wAAAQACAAEAAAD//wAAAwABAP//AgD+/wAA/v8AAAAAAAAAAAEA//8AAAEAAAD+/wEAAAAAAAEAAgAAAAEAAAABAP//AQD+/wIA/////wAAAQD//wAAAQD+/wAAAQABAAAA////////AAACAAAAAQAAAAIA//8BAP///v///wEA//8BAAEAAQD+/wAAAQD9/wAAAQAAAAEAAAABAAAAAgAAAP//AAD+/wAA/f8AAAAA////////AgAAAAcAAQD7/wEA/f8AAAIA//8GAP7//v/+//b/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+P/F//z/rv/i/7r/6v/Z/wYABwAoADAAKQBOABkATAD0/zQA1P8PANv/0//v/6//FwCi/ywAxP8oAPn//v82APT/WwD4/00A+/8yAPv//f/8/83/+v+w/+T/sf/j/9b/AQACACoAIgAtAEIAHwBPAAEAQADe/xcA0v/k/+X/t/8IAKv/IgC//yEA6/8EACMA9/9PAPf/VAD+/zcA+/8JAPn/1P8AALf/6f+w/+P/zf////j/HAAdAC0APgAfAEsABwBCAOP/IADV/+//2v/B//3/rP8PALv/GADd/xEAFgABAEMABABaAP//QgACABcA+//n/wAAwP/w/67/4v+///3/6f8WABcAKQA0ACIARgAQAEcA8f8pANn/9f/U/87/7f+v/wgAtP8RANP/FgANAAIAOQACAFQA/f9HAAAAIAABAO3//P/E/wEAs//q/7n/9P/i/wYAEQAZADEAJABBABMASAAAADEA3/8CANL/1v/g/7H/AACy/w8Axf8ZAPv/CQAzAAIAVQD//1AAAAAsAAIA9v/7/8r/AwC2//P/tf/m/+H/AwADABEAKQApADoAHgBHAAgAPADr/wkA1//f/93/vP/6/7L/CgDA/x4A7/8hACkAAgBPAPz/UgD1/zIABAAEAPz/0v/5/7f/AACy//H/2f/+/wEAAAAkABUAMwAdADoAEQA9APD/EADU//L/1P/H/+z/tf8LALv/HADk/ygAGgADAEMA//9TAPn/QAAAABAAAQDc//z/wf8DALD/7P/Q//z/9/8HABoAFgA3ACMAMAAOADwA+P8ZANv/+P/Y/9H/5v+8/wUAu/8WANf/HgAMAAoAPQABAFMA/f9HAP7/HwAEAN//+v/H/wMAs//2/8r/8//y/wMADgAQAC4AIwAyABMAJwD8/xcA3v8LANP/5v/f/8j/AgC4/w4A1P8eAAQACgAxAAEAUgD+/0gA/v8nAAIA8f/5/8r/BAC6/+3/wP/l/+b/AQAIABkAIwArAC4AIAAoAAkAGADj/w0A0f/r/9//0P8DAL3/CgDN/xkA//8IACUAAgBJAAAATwD+/ysAAQD7//3/z/8DAMT/+f/K/+L/5P/1////EgAcACYALgApAC4ACwAcAPL/EADZ//L/1f/U//f/uv8KAMX/DwDu/wcAHwADAEUABgBNAAEANQAAAAYAAQDf////xf/+/9P/4f/b//X/9v8LAA4AGAAlACoAMAAQABkA9v8TAOL/+f/W/9r/8f/I/wcAxP8MAOr/BwATAAQAOAAGAEcAAABCAAEADwAEAOP//v/F/wIAzf/o/93/8P/s/w4ACwAZACEAKgAyABMAIQD5/xgA6v8DANb/4P/y/9H/AQDJ/wkA4/8DAAoA/f8wAAQAQwABAEAA//8VAAIA7P/+/8r/BADP/+v/2v/s/+n/CwAIAA0AHAAjADQAHAAkAP//GQDy/wQA5v/i//b/0P/7/8f/AADh/wMAAAD+/yUAAAA7AAEAOAAAABwAAAD6/wAA1/8CAMr/AADb/+3/5f8BAAIACAAVABcALwAfACgA+/8XAPn/DgDe/+//7v/Q/wMAz/8JAOP/CwDx////EAAHADEAAQArAAIAHQAEAAcAAADr/wEAzv8CANj//f/k/wEA+f/+/xQABwAqAB4ALAD+/x4A8P8SAOb/8//f/9j//f/N/wEA3v8LAO7/AgAMAAQALAAEAC0AAQAdAAQADwABAPP/BADV/wMA0/8AAOH/AQD1/wAAEAADACQAGwAwAAQAHwD0/xUA8f/4/+L/2//7/8z/AwDc/woA6f8AAAQAAwAoAAcANAAAACcAAgAUAAEA+P8CANv/AgDR/wEA4v8BAOz/AgAIAPv/JAAVADMAFAAhAPP/GQDz//7/3P/l/+3/z/8BANf/CgDn/wkA/P///xoABwAwAAIAJwACABcAAwABAAIA4f8BAND/AgDd//3/6P8CAAYA/f8YAAwALwAZACUA9v8bAPj/AwDq/+r/7P/S//7/1/8EAOX/CQD6//7/GQAFAC8AAQApAAEAGQACAAMAAgDm/wEAzv8BANv//v/p/wIA//8BABMABQArACAALAABAB4A8f8NAOv/7v/m/9n/+P/R/wMA4f8OAPT/AQATAAMAKwAHACoAAwAbAAMABQADAO7/AQDU/wEA2f8AAOL////3////EgAAACUAGgAvAAUAHQD2/xIA9f/0//T/3P/4/8///f/h/wIA7f8AAAoAAQApAAQALQADACAAAgAPAP//9P///9r//f/T/wAA3f/9//D/AQAQAP//HAAHAC8ACQAfAPv/GAD+//f/+P/j/wEA0v/+/9n/AADq/wIABgD//x0AAQAuAAEAIwAAABQAAwD8/wEA3/8AAM//AADe////7f8BAAwA//8ZAAMALwAAACEA//8dAP3//v/9/+n////U//z/1v8BAOT/AAD+/wAAGwD+/ywA/v8kAAIAGAD///3////q/wEA0P///97/AADk/wAABAAAABUAAQAqAAEAKQAAABwAAAAFAP//6f8AANr////X/wAA4/8AAPj/AgAUAAAAKgD//ywAAAAcAP7/AQAAAOv/AADU/wAA2v8CAOP/AAABAAAAFgABABsAAAAqAAEAHwAAABQAAgDv/wEA3v///9H////f////7/8BAAoAAQApAAAALgD//yEAAQAIAAAA8P8BANr//v/V////4f8AAPf//v8UAAAAFAAAACYAAQAhAP7/GwD+//T/AADo/wIA1v8CANr/AgDp/wEABgAAAB8AAQAsAAEAJAAAAAwA///z/wEA3/8AANT/AADh/wEA9P///xQAAgASAAAAJQAAACEAAAAaAP//+v8BAOj////W////2P8BAOf///8DAAAAHwAAAC4AAAAlAAAAEgAAAPL/AQDm////0f8CAN3/AADr//7/EQD//xAAAQAhAAIAJQAAAB8AAAABAP//6v8CAN//AQDX/wAA4/8AAPr/AAAXAAAAKgABACgAAAAbAP///f8AAOj/AADU/wAA2v///+f/AQANAAMAEQD+/xwA/v8kAP7/IQABAAgA/v/p////5/8AANf/AQDd/wEA8v8BABMAAQAjAAAALgAAACAAAQADAAEA7f8BANn/AgDY//7/4P/+/wEAAAAXAAIAFAAFACUA/P8jAP//EgAAAO//AQDo////1/8AAN3/AADx//7/DgAAAB0AAQAoAAAAIwAAAAoAAQDv/wMA4f8AANn/AQDi/wEA+v///xgAAAAQAP3/IwD//yUA/v8XAAAA7/8AAOv/AADc/wAA3P/+/+v/AQALAAEAGgACACkAAAAkAP7/EAABAO/////q//7/1/8AANz/AgDw/wEAEgD//w8AAAAcAAIAJQAAAB0AAAD2////7P8AAOP/AgDa/wAA5P8BAAQAAQAWAAAAIgAAACMAAAAaAP//+P///+v/AQDZ/wAA2////+7/AAARAAAADgAAABYAAAAhAAAAIAABAPz/AQDt/wAA5P8AANr/AQDg/wEA/P8BABcAAAAhAP//KQD//xwAAAD8/wEA7v8AAN3////Z/wAA6f8BAA0AAAARAAEAEQAAACMAAAAgAAEA/f8CAO3/AADv/wAA3v8BANv////1////EgAAABkA//8nAAAAIgAAAAMAAADu/wAA6P8CANn/AQDg////BQD//xMAAQAOAP//IAABACYAAAAGAAAA6f////H/AADg/wEA2f8AAO3///8PAAAAFQACACQAAAAkAAEADQABAO//AADp/wAA2////9z/AQD7/wEAFgAAAAwAAQAXAP7/JQD9/xMAAADx/wAA8f8AAOr/AADc/wEA4/8BAAkAAAAVAAAAIQD//yYA//8UAAEA9P8BAOz/AADf/wAA3P8AAPP/AAAQAAAADQABAA0AAAAlAAEAGAD///H//v/0/wEA7v8CAN//AADg//3/BAACABUAAQAfAAAAJwABABgAAQD0//7/7f///+L/AADa/wIA8P///w4A//8SAAMACQAAACAAAQAgAP//+v////P////y/wEA4/8BANr/AQD9/wAAEwD//xkAAQAjAAAAIgABAPz////s/wAA6v8BANX/AQDr//7/BwABABMAAAAHAP//FwAAACYAAAD//wEA9P8BAPb/AQDu////2v8BAPn/AAATAP//FwD//yEAAAAjAAAAAgAAAOn/AQDr//7/2P8CAOT/AAABAP//FgABAAUAAQATAP//IwAAAAEAAgDy/wEA9/8AAPb/AADb/wAA6/8BABAAAAATAP7/IQAAACYA//8UAP//7/8AAPD/AADd/wEA3P/+//7///8OAAAACgAAAAgAAAAhAP//CQACAPT/AQD2/wAA9v///97////m/wIADgABABMAAQAfAP//JwAAABMAAADw/wAA8P///+r/AQDb/wAA9f8AAA8AAAARAAIABAD//wYA/v8HAAAAAQD//wMAAgAGAAAA7f8AAOz/AAALAP//DwACABQA//8bAAAAHgD///f/AADq/wEA6/8BANj//v/t/wAACAD+/xAAAgAEAAAABAABAAcAAQADAAAA//8AAAUA///1/wAA5f///wIAAAAOAAAAEAAAABsAAAAhAAAA/v8BAOj////y////3f8AAOf/AQAGAAEADAAAAAcA//8BAP//CQABAAMA//8BAP//BQAAAAAAAADo/wAA+/8AAAoAAAALAAAAFAAAACAAAQAGAAIA7f8BAPH/AADm/wMA3P8CAP7/AgASAP//CgD//wAAAAAIAP//BQD//wEAAAACAP7/BAAAAPz/AwD8////BAAAAAEA//8HAAAAHQAAAAgA/v/x//7/8f///+f/AQDg/////P///woAAAAMAP//AAABAAYA//8EAAAAAgAAAAUAAAACAAAAAwAAAAIAAAABAAAAAQABAAAAAgAcAP//DgD///T/AQDx/wAA9P8CAOH/AAD3/wAACQAAAAoAAQABAP//AwAAAAcAAAD+/wAAAgACAAEAAAD+////AwD+/wAAAAABAP//+v8BABEAAQATAAAA9f/+//L//f/z/wIA6f8AAPb/AQAFAP//DAAAAAAAAAAFAP//BQD//wEA//8DAAEAAQAAAP7///8AAAAA//8BAAIAAAD+/wAAEAABABYAAgD6/wEA8v8BAPX/AwDp/wAA8////wMA//8JAAEABAABAAEA//8FAAEA//8AAAMAAQACAP//AQAAAAEAAgAFAP//AQABAAAAAQAAAP//EQABAAAAAAD5/wEA+P8AAPr////6/wAA+/8BAAIA//8BAAAA//8CAAUA//8BAP7/AAABAAEAAgAAAAAAAwAAAAEA/v8DAAIAAAACAAQA//8TAAAA/P8BAPr////3//////8AAPz/AQD7/wEAAgD/////AAABAAEABAAAAP//////////AAAAAAAAAAADAAAAAwAAAAAA//8EAP///v/+/xAA//8HAAAA+/////j/AQD8////AAD///n///8AAAAA//8AAP////8DAP//AgAAAAAAAAACAAIAAAD+/wAAAQD//wAA/////wIAAgD9////CQACAAYA///9////+f8BAPr/AQAAAAIA/v///wAA//8AAAAAAAAAAAEAAAABAAAAAgAAAAEAAAAAAAEAAQABAAAAAgABAP//AAD//wEAAAD///////8BAAIAAQAAAAAA/v/+//////8BAAAAAQABAP//AAD///////8BAAAAAQABAP////8CAAEAAQD//wEA/v//////AQAAAAAAAAAAAAAAAAD9/wMA/////wAAAQD+/wEA/v/+//7/AQD//wMAAAAAAAAAAAABAAEA//////7/AAACAP3/AAD//wAAAQAAAP//AQD//wAAAAAAAAEA//8CAP//AAAAAAAA/v8AAAAA//8BAP//AAABAP//AAAAAP//AQD//wAAAQABAAAAAAABAAEA/v///wAAAAD//////////wAAAAAAAP//AAD////////8/wIAAAADAAEA/////wEA/v8BAP7/AgAAAAEAAgAAAP//AgD/////AQD//wEA//////7/AQD//wMAAAAAAAAA//8CAP//AQAAAP//AAACAAAAAAABAP//AQD+/wAA/////wAA/f///wAAAAAAAP7/AAAAAAAAAgD//wEAAQACAP//AAAAAAEAAQD//wAAAAAAAAAA//8BAAMA/v8AAP7/AQAAAAAAAQAAAAAA///+//7/AAAAAAAA//8BAP7/AQAAAP//AQABAAAAAQAAAP//AAD//wIA/v///wAAAQABAP//AAD//wEA//8BAP//AgAAAP///////wAAAQABAP//AwABAAAAAAAAAAAA/////wIAAwACAAAA/v8BAAAAAAAAAAAA//8AAP////8AAAAA/////wAA/////wEA/v8CAAEAAQD//wAAAAABAAAAAAD//wEAAQABAAAA//8CAAAAAAAAAP7/AAABAAAAAQABAAAAAgABAAAAAQD//wEAAwD+/wAA/v8AAAEAAAAAAAAAAAAAAAEAAAD//wMA/v///wAAAAACAAEAAAAAAP7///8DAAEAAQD//wEA/f8BAAEAAQD//wEAAQABAAMAAgAAAAEA//8AAP//BAAAAAIA/v//////AQABAAAAAAD//wEAAAACAAIAAQAAAAAAAgAAAAAAAAABAAIAAAABAAIAAQAAAP////8AAAAAAAD//wAAAQACAP//AAAAAAAAAQAAAAEA//8AAAAAAAD/////AQD//wAAAQD9////AQAAAAAA//8BAAAA///+/////v8BAAAAAQAAAAAAAAAAAAIA//8BAAAAAAACAP//AQD//wAAAAD/////AAD9/wAAAAACAAAAAgAAAAEAAQABAAEAAAAAAAEA//8AAAEAAQACAAAAAQAAAAEA//8BAAIAAAACAP//AAABAAAAAAAAAAAAAAD//wAAAQD/////AAAAAP////8AAAEAAAAAAP7///8BAAIAAQD//wEAAQAAAP//AgAAAAAAAAD//wAA//8CAP7/AQAAAP7/AAD+////AAAAAAAAAQABAAAA//8AAAEAAAABAP7/AAAAAP7/AAD+/wAAAQABAAEA/////////v8BAP///v///wIAAAAAAAAAAQAAAAIAAQAAAAAAAAABAAEAAAAAAAAAAAD//wEAAQD//wAAAQABAAAA/v/+/////////wAAAAD//wAAAAD/////AAAAAP7/AAD//wIA//8CAP//AQAAAP////8AAAAAAQABAP////8AAP//AQACAAAAAQAAAAAAAAAAAAAA//8BAAAAAAD+/wAA/v///wEAAAD+//7///8CAP7/AAABAP3/AwAAAAAAAAABAAIAAAABAAAAAQABAAIAAAAAAP//AAAAAAEAAAACAAEAAAACAAAAAAABAAAAAwAAAAAAAAD+/wAAAQD9//////8BAAAA/v8AAAAAAAAAAAAAAAD//wMA/v8BAAEAAQACAAAA/v8BAP//AwABAAIAAQABAP//AQAAAAEAAAAAAAEA//8AAAAAAAD/////AAABAAEAAAAAAP////8AAAAAAAAAAAAA/v8AAP//AQAAAP//AAABAAIAAQAAAAAAAgABAAAA/////wAAAQABAP//AQABAAEA/////wAAAAAAAAAAAAABAAEAAQAAAAAAAAAAAAAA//8AAP7/AQD9/wAAAgD//wEAAQABAAEA/v8AAAEA/////wAAAAAAAP//AAABAAAAAAAAAAAA//8CAP//AAABAAEAAQABAAAA//8BAAIAAgD//wAA/v8AAAEAAAD///7/AAAAAAEAAAABAAAAAQABAAAAAQACAAAA///+/wAAAQABAP7////+/wAA//8AAAAAAgAAAP//AQD9/wAAAAD//wAA//8AAAAAAQAAAAAAAQD//wAAAAAAAP//AQABAAAA/v8CAP//AAD///////8AAAAAAAACAAEA//8BAP7/AAAAAAEA//8BAAAAAQD//wAAAQD+/wAA/////wAAAAD//wAAAQABAAAA//8AAAEA/////wAA//8AAAAA/v/+/wEAAgABAP//AgD//wIA/////wAA//8AAAEAAQAAAAAAAQAAAAMAAAACAP//\", re = {\n general: {\n primaryColor: \"#42b0c5\",\n secondaryColor: \"#491d8d\",\n fontFamily: \"-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif\",\n showHeader: !0,\n showFooter: !0,\n showInputRow: !0,\n actionDisabledIcon: Me,\n embedded: !1,\n flowStartTrigger: \"ON_LOAD\"\n },\n tooltip: {\n mode: \"CLOSE\",\n text: \"Talk to me! 😊\"\n },\n chatButton: {\n icon: ee\n },\n header: {\n title: /* @__PURE__ */ l(\"div\", { style: { cursor: \"pointer\", margin: 0, fontSize: 20, fontWeight: \"bold\" }, onClick: () => window.open(\"https://github.com/tjtanjin/\", \"_blank\", \"noopener,noreferrer\"), children: \"Tan Jin\" }),\n showAvatar: !0,\n avatar: Ae,\n buttons: [_.NOTIFICATION_BUTTON, _.AUDIO_BUTTON, _.CLOSE_CHAT_BUTTON],\n closeChatIcon: Ue\n },\n notification: {\n disabled: !1,\n defaultToggledOn: !0,\n volume: 0.2,\n icon: Le,\n iconDisabled: Re,\n sound: _e,\n showCount: !0\n },\n audio: {\n disabled: !0,\n defaultToggledOn: !1,\n language: \"en-US\",\n voiceNames: [\"Microsoft David - English (United States)\", \"Alex (English - United States)\"],\n rate: 1,\n volume: 1,\n icon: qe,\n iconDisabled: Ze\n },\n chatHistory: {\n disabled: !1,\n maxEntries: 30,\n storageKey: \"rcb-history\",\n storageType: \"LOCAL_STORAGE\",\n viewChatHistoryButtonText: \"Load Chat History ⟳\",\n chatHistoryLineBreakText: \"----- Previous Chat History -----\",\n autoLoad: !1\n },\n chatInput: {\n disabled: !1,\n allowNewline: !1,\n enabledPlaceholderText: \"Type your message...\",\n disabledPlaceholderText: \"\",\n showCharacterCount: !1,\n characterLimit: -1,\n botDelay: 1e3,\n sendButtonIcon: ze,\n blockSpam: !0,\n sendOptionOutput: !0,\n sendCheckboxOutput: !0,\n buttons: [_.VOICE_MESSAGE_BUTTON, _.SEND_MESSAGE_BUTTON]\n },\n chatWindow: {\n showScrollbar: !1,\n showTypingIndicator: !0,\n autoJumpToBottom: !1,\n showMessagePrompt: !0,\n messagePromptText: \"New Messages ↓\",\n messagePromptOffset: 30,\n defaultOpen: !1\n },\n sensitiveInput: {\n maskInTextArea: !0,\n maskInUserBubble: !0,\n asterisksCount: 10,\n hideInUserBubble: !1\n },\n userBubble: {\n animate: !0,\n showAvatar: !1,\n avatar: ke,\n simulateStream: !1,\n streamSpeed: 30\n },\n botBubble: {\n animate: !0,\n showAvatar: !1,\n avatar: Ae,\n simulateStream: !1,\n streamSpeed: 30\n },\n voice: {\n disabled: !0,\n defaultToggledOn: !1,\n language: \"en-US\",\n timeoutPeriod: 1e4,\n autoSendDisabled: !1,\n autoSendPeriod: 1e3,\n sendAsAudio: !1,\n icon: Ye,\n iconDisabled: We\n },\n footer: {\n text: /* @__PURE__ */ W(\n \"div\",\n {\n style: { cursor: \"pointer\", display: \"flex\", flexDirection: \"row\", alignItems: \"center\", columnGap: 3 },\n onClick: () => window.open(\"https://react-chatbotify.com\", \"_blank\", \"noopener,noreferrer\"),\n children: [\n /* @__PURE__ */ l(\"span\", { children: \"Powered By \" }, 0),\n /* @__PURE__ */ l(\n \"div\",\n {\n style: {\n borderRadius: \"50%\",\n width: 14,\n height: 14,\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n background: \"linear-gradient(to right, #42b0c5, #491d8d)\"\n },\n children: /* @__PURE__ */ l(ee, { style: { width: \"80%\", height: \"80%\", fill: \"#fff\" } })\n },\n 1\n ),\n /* @__PURE__ */ l(\"span\", { style: { fontWeight: \"bold\" }, children: \" React ChatBotify\" }, 2)\n ]\n }\n ),\n buttons: [_.FILE_ATTACHMENT_BUTTON, _.EMOJI_PICKER_BUTTON]\n },\n fileAttachment: {\n disabled: !1,\n multiple: !0,\n accept: \".png\",\n icon: te,\n iconDisabled: te,\n sendFileName: !0,\n showMediaDisplay: !1\n },\n emoji: {\n disabled: !1,\n icon: oe,\n iconDisabled: oe,\n list: [\"😀\", \"😃\", \"😄\", \"😅\", \"😊\", \"😌\", \"😇\", \"🙃\", \"🤣\", \"😍\", \"🥰\", \"🥳\", \"🎉\", \"🎈\", \"🚀\", \"⭐️\"]\n },\n toast: {\n maxCount: 3,\n forbidOnMax: !1,\n dismissOnClick: !0\n },\n event: {\n rcbPreInjectMessage: !1,\n rcbPostInjectMessage: !1,\n rcbStartSimulateStreamMessage: !1,\n rcbStopSimulateStreamMessage: !1,\n rcbStartStreamMessage: !1,\n rcbChunkStreamMessage: !1,\n rcbStopStreamMessage: !1,\n rcbRemoveMessage: !1,\n rcbSaveChatHistory: !1,\n rcbLoadChatHistory: !1,\n rcbToggleChatWindow: !1,\n rcbStartSpeakAudio: !1,\n rcbToggleAudio: !1,\n rcbToggleNotifications: !1,\n rcbToggleVoice: !1,\n rcbChangePath: !1,\n rcbShowToast: !1,\n rcbDismissToast: !1,\n rcbUserSubmitText: !1,\n rcbUserUploadFile: !1,\n rcbTextAreaChangeValue: !1,\n rcbPreLoadChatBot: !1,\n rcbPostLoadChatBot: !1,\n rcbPreProcessBlock: !1,\n rcbPostProcessBlock: !1\n },\n ariaLabel: {\n chatButton: \"open chat\",\n audioButton: \"toggle audio\",\n closeChatButton: \"close chat\",\n emojiButton: \"emoji picker\",\n fileAttachmentButton: \"upload file\",\n notificationButton: \"toggle notifications\",\n sendButton: \"send message\",\n voiceButton: \"toggle voice\",\n inputTextArea: \"input text area\"\n },\n device: {\n desktopEnabled: !0,\n mobileEnabled: !0,\n applyMobileOptimizations: !0\n }\n}, ae = vA({\n settings: {},\n setSyncedSettings: () => null,\n syncedSettingsRef: { current: {} }\n}), R = () => hA(ae), $e = ({\n children: A,\n settings: e = re,\n setSyncedSettings: o,\n syncedSettingsRef: t\n}) => /* @__PURE__ */ l(ae.Provider, { value: { settings: e, setSyncedSettings: o, syncedSettingsRef: t }, children: A }), ce = {\n tooltipStyle: {},\n notificationBadgeStyle: {},\n chatWindowStyle: {},\n headerStyle: {},\n bodyStyle: {},\n chatInputContainerStyle: {},\n chatInputAreaStyle: {},\n chatInputAreaFocusedStyle: {},\n chatInputAreaDisabledStyle: {},\n userBubbleStyle: {},\n botBubbleStyle: {},\n botOptionStyle: {},\n botOptionHoveredStyle: {},\n botCheckboxRowStyle: {},\n botCheckboxNextStyle: {},\n botCheckMarkStyle: {},\n botCheckMarkSelectedStyle: {},\n characterLimitStyle: {},\n characterLimitReachedStyle: {},\n chatHistoryLineBreakStyle: {},\n chatMessagePromptStyle: {},\n chatMessagePromptHoveredStyle: {},\n footerStyle: {},\n loadingSpinnerStyle: {},\n mediaDisplayContainerStyle: {},\n chatButtonStyle: {},\n chatButtonHoveredStyle: {},\n chatHistoryButtonStyle: {},\n chatHistoryButtonHoveredStyle: {},\n sendButtonStyle: {},\n sendButtonHoveredStyle: {},\n sendButtonDisabledStyle: {},\n audioButtonStyle: {},\n audioButtonDisabledStyle: {},\n closeChatButtonStyle: {},\n emojiButtonStyle: {},\n emojiButtonDisabledStyle: {},\n fileAttachmentButtonStyle: {},\n fileAttachmentButtonDisabledStyle: {},\n notificationButtonStyle: {},\n notificationButtonDisabledStyle: {},\n voiceButtonStyle: {},\n voiceButtonDisabledStyle: {},\n chatIconStyle: {},\n audioIconStyle: {},\n audioIconDisabledStyle: {},\n closeChatIconStyle: {},\n emojiIconStyle: {},\n emojiIconDisabledStyle: {},\n fileAttachmentIconStyle: {},\n fileAttachmentIconDisabledStyle: {},\n notificationIconStyle: {},\n notificationIconDisabledStyle: {},\n voiceIconStyle: {},\n voiceIconDisabledStyle: {},\n sendIconStyle: {},\n sendIconDisabledStyle: {},\n sendIconHoveredStyle: {},\n rcbTypingIndicatorContainerStyle: {},\n rcbTypingIndicatorDotStyle: {},\n toastPromptContainerStyle: {},\n toastPromptStyle: {},\n toastPromptHoveredStyle: {}\n}, ie = vA({\n styles: {},\n setSyncedStyles: () => null,\n syncedStylesRef: { current: {} }\n}), X = () => hA(ie), At = ({\n children: A,\n styles: e = ce,\n setSyncedStyles: o,\n syncedStylesRef: t\n}) => /* @__PURE__ */ l(ie.Provider, { value: { styles: e, setSyncedStyles: o, syncedStylesRef: t }, children: A }), et = ({ buttons: A }) => {\n var n, s, a, r, c, i, u;\n const { settings: e } = R(), { styles: o } = X(), t = {\n backgroundImage: `linear-gradient(to right, ${(n = e.general) == null ? void 0 : n.secondaryColor},\n\t\t\t${(s = e.general) == null ? void 0 : s.primaryColor})`,\n ...o.headerStyle\n };\n return /* @__PURE__ */ W(\"div\", { style: t, className: \"rcb-chat-header-container\", children: [\n /* @__PURE__ */ W(\"div\", { className: \"rcb-chat-header\", children: [\n ((a = e.header) == null ? void 0 : a.showAvatar) && /* @__PURE__ */ l(\n \"div\",\n {\n style: { backgroundImage: `url(\"${(r = e.header) == null ? void 0 : r.avatar}\")` },\n className: \"rcb-bot-avatar\"\n }\n ),\n GA((c = e.header) == null ? void 0 : c.title) ? (i = e.header) == null ? void 0 : i.title : /* @__PURE__ */ l(\"div\", { style: { margin: 0, fontSize: 20, fontWeight: \"bold\" }, children: (u = e.header) == null ? void 0 : u.title })\n ] }),\n /* @__PURE__ */ l(\"div\", { className: \"rcb-chat-header\", children: A == null ? void 0 : A.map(\n (d, w) => /* @__PURE__ */ l(YA, { children: d }, w)\n ) })\n ] });\n}, le = vA({}), $ = () => hA(le), tt = ({\n children: A,\n botIdRef: e,\n flowRef: o\n}) => {\n const t = eA(null), n = eA(\"\"), s = eA(null), a = eA(/* @__PURE__ */ new Map()), r = eA(null), c = eA(\"\"), i = eA(!1), u = eA(null), d = eA(null), w = eA(null);\n return /* @__PURE__ */ l(le.Provider, { value: {\n botIdRef: e,\n flowRef: o,\n inputRef: t,\n timeoutIdRef: s,\n streamMessageMap: a,\n chatBodyRef: r,\n paramsInputRef: c,\n keepVoiceOnRef: i,\n audioContextRef: u,\n audioBufferRef: d,\n gainNodeRef: w,\n prevInputRef: n\n }, children: A });\n}, nA = (A) => {\n const [e, o] = G(A), t = eA(A);\n return [e, (s) => {\n const a = typeof s == \"function\" ? s(t.current) : s;\n t.current = a, o(a);\n }, t];\n}, ue = vA({}), tA = () => hA(ue), ot = ({\n children: A,\n settings: e\n}) => {\n var rA, lA, PA, DA, QA, _A;\n const [o, t, n] = nA(!1), [s, a, r] = nA(\n ((rA = e == null ? void 0 : e.chatWindow) == null ? void 0 : rA.defaultOpen) ?? !1\n ), [c, i, u] = nA(\n ((lA = e == null ? void 0 : e.audio) == null ? void 0 : lA.defaultToggledOn) ?? !1\n ), [d, w, f] = nA(\n ((PA = e == null ? void 0 : e.voice) == null ? void 0 : PA.defaultToggledOn) ?? !1\n ), [\n g,\n B,\n E\n ] = nA(\n ((DA = e == null ? void 0 : e.notification) == null ? void 0 : DA.defaultToggledOn) ?? !0\n ), [Q, y] = G(!1), [v, h] = G(!1), [P, D, S] = nA(!1), [I, L, N] = nA(!0), [\n T,\n C,\n m\n ] = nA(!1), [b, M] = G(!1), [O, p] = G(!1), [k, K] = G(0), [j, F] = G(0), [V, U] = G(!1), [z, Y] = G(((QA = window.visualViewport) == null ? void 0 : QA.height) ?? window.innerHeight), [AA, q] = G(((_A = window.visualViewport) == null ? void 0 : _A.width) ?? window.innerWidth);\n return /* @__PURE__ */ l(ue.Provider, { value: {\n isBotTyping: o,\n setSyncedIsBotTyping: t,\n syncedIsBotTypingRef: n,\n isChatWindowOpen: s,\n setSyncedIsChatWindowOpen: a,\n syncedIsChatWindowOpenRef: r,\n audioToggledOn: c,\n setSyncedAudioToggledOn: i,\n syncedAudioToggledOnRef: u,\n voiceToggledOn: d,\n setSyncedVoiceToggledOn: w,\n syncedVoiceToggledOnRef: f,\n notificationsToggledOn: g,\n setSyncedNotificationsToggledOn: B,\n syncedNotificationsToggledOnRef: E,\n isLoadingChatHistory: Q,\n setIsLoadingChatHistory: y,\n hasChatHistoryLoaded: v,\n setHasChatHistoryLoaded: h,\n isScrolling: P,\n setSyncedIsScrolling: D,\n syncedIsScrollingRef: S,\n textAreaDisabled: I,\n setSyncedTextAreaDisabled: L,\n syncedTextAreaDisabledRef: N,\n textAreaSensitiveMode: T,\n setSyncedTextAreaSensitiveMode: C,\n syncedTextAreaSensitiveModeRef: m,\n hasInteractedPage: b,\n setHasInteractedPage: M,\n hasFlowStarted: O,\n setHasFlowStarted: p,\n unreadCount: k,\n setUnreadCount: K,\n inputLength: j,\n setInputLength: F,\n blockAllowsAttachment: V,\n setBlockAllowsAttachment: U,\n viewportHeight: z,\n setViewportHeight: Y,\n viewportWidth: AA,\n setViewportWidth: q\n }, children: A });\n};\nvar H = /* @__PURE__ */ ((A) => (A.START_SPEAK_AUDIO = \"rcb-start-speak-audio\", A.TOGGLE_AUDIO = \"rcb-toggle-audio\", A.TOGGLE_NOTIFICATIONS = \"rcb-toggle-notifications\", A.TOGGLE_VOICE = \"rcb-toggle-voice\", A.TOGGLE_CHAT_WINDOW = \"rcb-toggle-chat-window\", A.PRE_INJECT_MESSAGE = \"rcb-pre-inject-message\", A.POST_INJECT_MESSAGE = \"rcb-post-inject-message\", A.START_SIMULATE_STREAM_MESSAGE = \"rcb-start-simulate-stream-message\", A.STOP_SIMULATE_STREAM_MESSAGE = \"rcb-stop-simulate-stream-message\", A.START_STREAM_MESSAGE = \"rcb-start-stream-message\", A.CHUNK_STREAM_MESSAGE = \"rcb-chunk-stream-message\", A.STOP_STREAM_MESSAGE = \"rcb-stop-stream-message\", A.REMOVE_MESSAGE = \"rcb-remove-message\", A.SAVE_CHAT_HISTORY = \"rcb-save-chat-history\", A.LOAD_CHAT_HISTORY = \"rcb-load-chat-history\", A.CHANGE_PATH = \"rcb-change-path\", A.SHOW_TOAST = \"rcb-show-toast\", A.DISMISS_TOAST = \"rcb-dismiss-toast\", A.USER_SUBMIT_TEXT = \"rcb-user-submit-text\", A.USER_UPLOAD_FILE = \"rcb-user-upload-file\", A.TEXT_AREA_CHANGE_VALUE = \"rcb-text-area-change-value\", A.PRE_LOAD_CHATBOT = \"rcb-pre-load-chatbot\", A.POST_LOAD_CHATBOT = \"rcb-post-load-chatbot\", A.PRE_PROCESS_BLOCK = \"rcb-pre-process-block\", A.POST_PROCESS_BLOCK = \"rcb-post-process-block\", A))(H || {});\nconst nt = {\n [H.START_SPEAK_AUDIO]: !0,\n [H.TOGGLE_AUDIO]: !0,\n [H.TOGGLE_VOICE]: !0,\n [H.TOGGLE_NOTIFICATIONS]: !0,\n [H.TOGGLE_CHAT_WINDOW]: !0,\n [H.PRE_INJECT_MESSAGE]: !0,\n [H.POST_INJECT_MESSAGE]: !1,\n [H.PRE_LOAD_CHATBOT]: !0,\n [H.POST_LOAD_CHATBOT]: !1,\n [H.START_SIMULATE_STREAM_MESSAGE]: !0,\n [H.STOP_SIMULATE_STREAM_MESSAGE]: !1,\n [H.START_STREAM_MESSAGE]: !0,\n [H.CHUNK_STREAM_MESSAGE]: !0,\n [H.STOP_STREAM_MESSAGE]: !0,\n [H.REMOVE_MESSAGE]: !0,\n [H.SAVE_CHAT_HISTORY]: !0,\n [H.LOAD_CHAT_HISTORY]: !0,\n [H.CHANGE_PATH]: !0,\n [H.SHOW_TOAST]: !0,\n [H.DISMISS_TOAST]: !0,\n [H.USER_SUBMIT_TEXT]: !0,\n [H.USER_UPLOAD_FILE]: !0,\n [H.TEXT_AREA_CHANGE_VALUE]: !0,\n [H.PRE_PROCESS_BLOCK]: !0,\n [H.POST_PROCESS_BLOCK]: !0\n}, UA = async (A, e, o) => {\n const t = new CustomEvent(A, {\n detail: e,\n cancelable: nt[A]\n });\n return t.data = o, t.promises = [], window.dispatchEvent(t), await Promise.all(t.promises), t;\n}, fe = vA({\n paths: [],\n setSyncedPaths: () => {\n },\n syncedPathsRef: { current: [] }\n}), pA = () => hA(fe), st = ({ children: A }) => {\n const [e, o, t] = nA([]);\n return /* @__PURE__ */ l(fe.Provider, { value: { paths: e, setSyncedPaths: o, syncedPathsRef: t }, children: A });\n}, iA = () => {\n const { botIdRef: A } = $(), { syncedPathsRef: e } = pA(), o = x(() => e.current.length > 0 ? e.current.at(-1) ?? null : null, []), t = x(() => e.current.length > 1 ? e.current.at(-2) ?? null : null, []);\n return { dispatchRcbEvent: x(async (s, a) => {\n const r = { botId: A.current, currPath: o(), prevPath: t() };\n return await UA(s, r, a);\n }, [A]) };\n}, sA = () => {\n const { settings: A } = R(), {\n isChatWindowOpen: e,\n setSyncedIsChatWindowOpen: o,\n viewportHeight: t,\n setViewportHeight: n,\n viewportWidth: s,\n setViewportWidth: a,\n setUnreadCount: r,\n setSyncedIsBotTyping: c,\n setSyncedIsScrolling: i,\n syncedIsBotTypingRef: u,\n syncedIsChatWindowOpenRef: d\n } = tA(), { chatBodyRef: w } = $(), { dispatchRcbEvent: f } = iA(), g = x(() => {\n if (!w.current)\n return !1;\n const v = w.current.getBoundingClientRect(), h = window.innerHeight ?? document.documentElement.clientHeight, P = window.innerWidth ?? document.documentElement.clientWidth;\n return v.top >= 0 && v.left >= 0 && v.bottom <= h && v.right <= P;\n }, [w]), B = x(async (v) => {\n var h;\n v !== d.current && ((h = A.event) != null && h.rcbToggleChatWindow && (await f(\n H.TOGGLE_CHAT_WINDOW,\n {\n currState: d.current,\n newState: !d.current\n }\n )).defaultPrevented || o((P) => (P || r(0), !P)));\n }, [d]), E = x(async (v) => {\n v !== u.current && c((h) => !h);\n }, [u]), Q = x((v, h, P, D) => (v /= D / 2, v < 1 ? P / 2 * v * v + h : (v--, -P / 2 * (v * (v - 2) - 1) + h)), []), y = x((v = 0) => {\n if (!w.current)\n return;\n const h = w.current.scrollHeight - w.current.clientHeight;\n if (v <= 0) {\n w.current.scrollTop = h, i(!1);\n return;\n }\n const P = w.current.scrollTop, D = h - P, S = 20;\n let I = 0;\n const L = () => {\n if (!w.current)\n return;\n I += S;\n const N = Q(I, P, D, v);\n w.current.scrollTop = N, I < v ? requestAnimationFrame(L) : i(!1);\n };\n L();\n }, [w]);\n return {\n isChatWindowOpen: e,\n setSyncedIsChatWindowOpen: o,\n toggleChatWindow: B,\n viewportHeight: t,\n setViewportHeight: n,\n viewportWidth: s,\n setViewportWidth: a,\n toggleIsBotTyping: E,\n scrollToBottom: y,\n getIsChatBotVisible: g\n };\n}, rt = () => {\n var w, f, g;\n const { settings: A } = R(), { styles: e } = X(), { unreadCount: o, isScrolling: t } = tA(), { chatBodyRef: n } = $(), { scrollToBottom: s } = sA(), [a, r] = G(!1), c = {\n color: (w = A.general) == null ? void 0 : w.primaryColor,\n borderColor: (f = A.general) == null ? void 0 : f.primaryColor,\n ...e.chatMessagePromptHoveredStyle\n }, i = () => {\n r(!0);\n }, u = () => {\n r(!1);\n };\n return /* @__PURE__ */ l(\"div\", { className: `rcb-message-prompt-container ${(() => {\n var E;\n return n.current && ((E = A.chatWindow) == null ? void 0 : E.showMessagePrompt) && t && o > 0 ? \"visible\" : \"hidden\";\n })()}`, children: /* @__PURE__ */ l(\n \"div\",\n {\n onMouseEnter: i,\n onMouseLeave: u,\n style: a ? c : { ...e.chatMessagePromptStyle },\n onMouseDown: (B) => {\n B.preventDefault(), s(600);\n },\n className: \"rcb-message-prompt-text\",\n children: (g = A.chatWindow) == null ? void 0 : g.messagePromptText\n }\n ) });\n}, de = vA({\n messages: [],\n setSyncedMessages: () => {\n },\n syncedMessagesRef: { current: [] }\n}), XA = () => hA(de), at = ({ children: A }) => {\n const [e, o, t] = nA([]);\n return /* @__PURE__ */ l(de.Provider, { value: { messages: e, setSyncedMessages: o, syncedMessagesRef: t }, children: A });\n}, ct = ({\n message: A,\n isNewSender: e\n}) => {\n var d, w, f, g, B, E;\n const { settings: o } = R(), { styles: t } = X(), n = typeof A.content == \"string\", s = A.content, a = A.contentWrapper ? /* @__PURE__ */ l(A.contentWrapper, { children: s }) : s, r = {\n backgroundColor: (d = o.general) == null ? void 0 : d.primaryColor,\n color: \"#fff\",\n maxWidth: (w = o.userBubble) != null && w.showAvatar ? \"65%\" : \"70%\",\n ...t.userBubbleStyle\n }, c = (f = o.userBubble) != null && f.animate ? \"rcb-user-message-entry\" : \"\", i = ((g = o.userBubble) == null ? void 0 : g.showAvatar) && e, u = `rcb-user-message${!e && ((B = o.userBubble) != null && B.showAvatar) ? \" rcb-user-message-offset\" : \"\"}`;\n return /* @__PURE__ */ W(\"div\", { className: \"rcb-user-message-container\", children: [\n n ? /* @__PURE__ */ l(\"div\", { style: r, className: `${u} ${c}`, children: a }) : /* @__PURE__ */ l(oA, { children: a }),\n i && /* @__PURE__ */ l(\n \"div\",\n {\n style: { backgroundImage: `url(\"${(E = o.userBubble) == null ? void 0 : E.avatar}\")` },\n className: \"rcb-message-user-avatar\"\n }\n )\n ] });\n}, it = ({\n message: A,\n isNewSender: e\n}) => {\n var d, w, f, g, B, E;\n const { settings: o } = R(), { styles: t } = X(), n = typeof A.content == \"string\", s = A.content, a = A.contentWrapper ? /* @__PURE__ */ l(A.contentWrapper, { children: s }) : s, r = {\n backgroundColor: (d = o.general) == null ? void 0 : d.secondaryColor,\n color: \"#fff\",\n maxWidth: (w = o.botBubble) != null && w.showAvatar ? \"65%\" : \"70%\",\n ...t.botBubbleStyle\n }, c = (f = o.botBubble) != null && f.animate ? \"rcb-bot-message-entry\" : \"\", i = ((g = o.botBubble) == null ? void 0 : g.showAvatar) && e, u = `rcb-bot-message${!e && ((B = o.botBubble) != null && B.showAvatar) ? \" rcb-bot-message-offset\" : \"\"}`;\n return /* @__PURE__ */ W(\"div\", { className: \"rcb-bot-message-container\", children: [\n i && /* @__PURE__ */ l(\n \"div\",\n {\n style: { backgroundImage: `url(\"${(E = o.botBubble) == null ? void 0 : E.avatar}\")` },\n className: \"rcb-message-bot-avatar\"\n }\n ),\n n ? /* @__PURE__ */ l(\"div\", { style: r, className: `${u} ${c}`, children: a }) : /* @__PURE__ */ l(oA, { children: a })\n ] });\n}, lt = () => {\n var t, n, s;\n const { settings: A } = R(), { styles: e } = X(), o = (t = A.botBubble) != null && t.animate ? \"rcb-bot-message-entry\" : \"\";\n return /* @__PURE__ */ W(\"div\", { className: \"rcb-bot-message-container\", children: [\n ((n = A.botBubble) == null ? void 0 : n.showAvatar) && /* @__PURE__ */ l(\n \"div\",\n {\n style: { backgroundImage: `url(\"${(s = A.botBubble) == null ? void 0 : s.avatar}\")` },\n className: \"rcb-message-bot-avatar\"\n }\n ),\n /* @__PURE__ */ l(\n \"div\",\n {\n onMouseDown: (a) => {\n a.preventDefault();\n },\n className: `rcb-bot-message ${o}`,\n children: /* @__PURE__ */ W(\"div\", { className: \"rcb-typing-indicator\", style: { ...e == null ? void 0 : e.rcbTypingIndicatorContainerStyle }, children: [\n /* @__PURE__ */ l(\"span\", { className: \"rcb-dot\", style: { ...e == null ? void 0 : e.rcbTypingIndicatorDotStyle } }),\n /* @__PURE__ */ l(\"span\", { className: \"rcb-dot\", style: { ...e == null ? void 0 : e.rcbTypingIndicatorDotStyle } }),\n /* @__PURE__ */ l(\"span\", { className: \"rcb-dot\", style: { ...e == null ? void 0 : e.rcbTypingIndicatorDotStyle } })\n ] })\n }\n )\n ] });\n}, ut = () => {\n var i, u, d;\n const { settings: A } = R(), { styles: e } = X(), { messages: o } = XA(), { scrollToBottom: t } = sA(), {\n isBotTyping: n,\n syncedIsScrollingRef: s\n } = tA(), { chatBodyRef: a } = $(), r = {\n ...e == null ? void 0 : e.bodyStyle,\n scrollbarWidth: (i = A.chatWindow) != null && i.showScrollbar ? \"auto\" : \"none\"\n };\n Z(() => {\n s.current || t();\n }, [(u = a.current) == null ? void 0 : u.scrollHeight]);\n const c = (w) => w === 0 ? !0 : o[w].sender !== o[w - 1].sender;\n return /* @__PURE__ */ W(\n \"div\",\n {\n style: r,\n className: \"rcb-chat-body-container\",\n ref: a,\n children: [\n o.map((w, f) => {\n const g = c(f);\n return w.sender.toUpperCase() === \"USER\" ? /* @__PURE__ */ l(ct, { message: w, isNewSender: g }, f) : w.sender.toUpperCase() === \"BOT\" ? /* @__PURE__ */ l(it, { message: w, isNewSender: g }, f) : /* @__PURE__ */ l(\"div\", { children: w.content }, f);\n }),\n n && ((d = A.chatWindow) == null ? void 0 : d.showTypingIndicator) && /* @__PURE__ */ l(lt, {}),\n /* @__PURE__ */ l(rt, {})\n ]\n }\n );\n}, ft = ({\n checkboxes: A,\n checkedItems: e,\n path: o\n}) => {\n var E, Q, y, v, h, P, D, S, I, L, N;\n const { settings: t } = R(), { styles: n } = X(), { paths: s } = pA(), { handleSubmitText: a } = mA(), [r, c] = G(/* @__PURE__ */ new Set()), [i, u] = G(!1), d = {\n cursor: i ? `url(\"${(E = t.general) == null ? void 0 : E.actionDisabledIcon}\"), auto` : \"pointer\",\n color: (Q = t.general) == null ? void 0 : Q.primaryColor,\n borderColor: (y = t.general) == null ? void 0 : y.primaryColor,\n ...n.botCheckboxRowStyle\n }, w = {\n cursor: i || r.size < A.min ? `url(\"${(v = t.general) == null ? void 0 : v.actionDisabledIcon}\"), auto` : \"pointer\",\n color: (h = t.general) == null ? void 0 : h.primaryColor,\n borderColor: (P = t.general) == null ? void 0 : P.primaryColor,\n ...n.botCheckboxNextStyle\n }, f = {\n cursor: i ? `url(\"${(D = t.general) == null ? void 0 : D.actionDisabledIcon}\"), auto` : \"pointer\",\n color: \"transparent\",\n ...n.botCheckMarkStyle\n }, g = {\n cursor: i ? `url(\"${(S = t.general) == null ? void 0 : S.actionDisabledIcon}\"), auto` : \"pointer\",\n color: \"#fff\",\n borderColor: (I = t.general) == null ? void 0 : I.primaryColor,\n backgroundColor: (L = t.general) == null ? void 0 : L.primaryColor,\n ...n.botCheckMarkSelectedStyle\n };\n Z(() => {\n s.length > 0 && s[s.length - 1] !== o && u(!A.reusable);\n }, [s]);\n const B = (T) => {\n i || c((C) => {\n const m = new Set(C);\n if (m.has(T))\n e.delete(T), m.delete(T);\n else {\n if (r.size == A.max)\n return C;\n e.add(T), m.add(T);\n }\n return m;\n });\n };\n return /* @__PURE__ */ W(\"div\", { className: `rcb-checkbox-container ${(N = t.botBubble) != null && N.showAvatar ? \"rcb-checkbox-offset\" : \"\"}`, children: [\n A.items.map((T) => /* @__PURE__ */ l(\n \"div\",\n {\n onMouseDown: (C) => {\n C.preventDefault(), B(T);\n },\n style: d,\n className: \"rcb-checkbox-row-container\",\n children: /* @__PURE__ */ W(\"div\", { className: \"rcb-checkbox-row\", children: [\n /* @__PURE__ */ l(\n \"div\",\n {\n style: r.has(T) ? g : f,\n className: \"rcb-checkbox-mark\"\n }\n ),\n /* @__PURE__ */ l(\"div\", { className: \"rcb-checkbox-label\", children: T })\n ] })\n },\n T\n )),\n /* @__PURE__ */ l(\n \"div\",\n {\n style: w,\n className: \"rcb-checkbox-next-button\",\n onMouseDown: (T) => {\n var b;\n if (T.preventDefault(), i || r.size < A.min)\n return;\n const C = Array.from(e).join(\", \");\n u(!A.reusable);\n let m;\n A.sendOutput != null ? m = A.sendOutput : m = ((b = t.chatInput) == null ? void 0 : b.sendCheckboxOutput) ?? !0, a(C, m);\n }\n }\n )\n ] });\n}, dt = async (A, e) => {\n const o = A.checkboxes;\n if (!o)\n return;\n let t;\n if (typeof o == \"function\" ? (t = o(e), t instanceof Promise && (t = await t)) : t = o, Array.isArray(t) && (t = { items: t }), !(\"items\" in t) || t.items.length == 0)\n return;\n t.min == null && (t.min = 1), t.max == null && (t.max = t.items.length), t.min > t.max && (t.min = t.max), t.reusable == null && (t.reusable = !1);\n const n = /* @__PURE__ */ new Set(), s = e.currPath, a = /* @__PURE__ */ l(ft, { checkboxes: t, checkedItems: n, path: s });\n await e.injectMessage(a);\n}, wt = async (A, e) => {\n const o = A.function;\n if (!o)\n return;\n const t = o(e);\n return t instanceof Promise ? await t : t;\n}, gt = async (A, e, o) => {\n const t = A.message;\n if (!t)\n return;\n if (typeof t == \"string\") {\n t.trim() !== \"\" && (o ? await e.simulateStreamMessage(t) : await e.injectMessage(t));\n return;\n }\n let n = t(e);\n n instanceof Promise && (n = await n), typeof n == \"string\" && n.trim() !== \"\" && (o ? await e.simulateStreamMessage(n) : await e.injectMessage(n));\n}, Bt = ({\n options: A,\n path: e\n}) => {\n var g, B, E, Q, y, v;\n const { settings: o } = R(), { styles: t } = X(), { paths: n } = pA(), { handleSubmitText: s } = mA(), [a, r] = G([]), [c, i] = G(!1), u = {\n cursor: c ? `url(\"${(g = o.general) == null ? void 0 : g.actionDisabledIcon}\"), auto` : \"pointer\",\n color: (B = o.general) == null ? void 0 : B.primaryColor,\n borderColor: (E = o.general) == null ? void 0 : E.primaryColor,\n backgroundColor: \"#fff\",\n ...t.botOptionStyle\n }, d = {\n color: \"#fff\",\n borderColor: (Q = o.general) == null ? void 0 : Q.primaryColor,\n backgroundColor: (y = o.general) == null ? void 0 : y.primaryColor,\n ...t.botOptionHoveredStyle\n };\n Z(() => {\n n.length > 0 && n[n.length - 1] !== e && i(!A.reusable);\n }, [n]);\n const w = (h) => {\n r((P) => {\n const D = [...P];\n return D[h] = !0, D;\n });\n }, f = (h) => {\n r((P) => {\n const D = [...P];\n return D[h] = !1, D;\n });\n };\n return /* @__PURE__ */ l(\"div\", { className: `rcb-options-container ${(v = o.botBubble) != null && v.showAvatar ? \"rcb-options-offset\" : \"\"}`, children: A.items.map((h, P) => {\n const D = a[P] && !c;\n return /* @__PURE__ */ l(\n \"div\",\n {\n className: \"rcb-options\",\n style: D ? d : u,\n onMouseEnter: () => w(P),\n onMouseLeave: () => f(P),\n onMouseDown: (S) => {\n var L;\n if (S.preventDefault(), c)\n return;\n i(!A.reusable);\n let I;\n A.sendOutput != null ? I = A.sendOutput : I = ((L = o.chatInput) == null ? void 0 : L.sendOptionOutput) ?? !0, s(h, I);\n },\n children: h\n },\n h\n );\n }) });\n}, vt = async (A, e) => {\n const o = A.options;\n if (!o)\n return;\n let t;\n if (typeof o == \"function\" ? (t = o(e), t instanceof Promise && (t = await t)) : t = o, Array.isArray(t) && (t = { items: t }), !(\"items\" in t) || t.items.length == 0)\n return;\n t.reusable == null && (t.reusable = !1);\n const n = e.currPath, s = /* @__PURE__ */ l(Bt, { options: t, path: n });\n await e.injectMessage(s);\n}, ht = async (A, e) => {\n const o = A.path;\n if (!o)\n return !1;\n if (typeof o == \"string\")\n return await e.goToPath(o), !0;\n let t = o(e);\n if (t instanceof Promise && (t = await t), !t)\n return !1;\n const n = t;\n return await e.goToPath(n), !0;\n}, Pt = async (A, e) => {\n const o = A.component;\n if (o) {\n if (typeof o == \"function\") {\n let t = o(e);\n if (t instanceof Promise && (t = await t), !t)\n return;\n await e.injectMessage(t);\n return;\n }\n await e.injectMessage(o);\n }\n}, Dt = async (A, e, o, t) => {\n const n = A.transition;\n let s;\n if (typeof n == \"function\" ? (s = n(e), s instanceof Promise && (s = await s)) : s = n, typeof s == \"number\" && (s = { duration: s }), !s || s instanceof Promise || s.duration == null || typeof s.duration != \"number\")\n return;\n s.interruptable == null && (s.interruptable = !1);\n const a = setTimeout(async () => {\n const r = await t(A);\n r && await ge(r, e);\n }, s.duration);\n s.interruptable && (o.current = a);\n}, Et = async (A, e, o) => {\n const t = A.chatDisabled;\n if (t == null)\n return;\n let n;\n typeof t == \"function\" ? (n = t(e), n instanceof Promise && (n = await n)) : n = t, o(n);\n}, we = async (A, e, o) => {\n const t = A.isSensitive;\n if (!t) {\n o(!1);\n return;\n }\n let n;\n typeof t == \"function\" ? (n = t(e), n instanceof Promise && (n = await n)) : n = t, o(n);\n}, yt = async (A, e, o, t, n, s, a) => {\n if (!A)\n throw new Error(\"Block is not valid.\");\n for (const r of Object.keys(A))\n switch (r) {\n case \"message\":\n await gt(A, e, o);\n break;\n case \"options\":\n await vt(A, e);\n break;\n case \"checkboxes\":\n await dt(A, e);\n break;\n case \"component\":\n await Pt(A, e);\n break;\n case \"chatDisabled\":\n await Et(A, e, n);\n break;\n case \"isSensitive\":\n await we(A, e, s);\n break;\n case \"transition\":\n await Dt(A, e, t, a);\n }\n}, ge = async (A, e) => {\n if (!A)\n throw new Error(\"Block is not valid.\");\n const o = Object.keys(A);\n for (const t of o)\n t === \"function\" && await wt(A, e);\n o.includes(\"path\") && await ht(A, e);\n}, Ct = () => {\n var o;\n const { settings: A } = R(), { styles: e } = X();\n return /* @__PURE__ */ l(\"div\", { className: \"rcb-line-break-container\", children: /* @__PURE__ */ l(\n \"div\",\n {\n style: { ...e.chatHistoryLineBreakStyle },\n className: \"rcb-line-break-text\",\n \"data-testid\": \"chat-history-line-break-text\",\n children: (o = A.chatHistory) == null ? void 0 : o.chatHistoryLineBreakText\n }\n ) });\n}, mt = () => {\n var t;\n const { settings: A } = R(), { styles: e } = X(), o = {\n borderTop: `4px solid ${(t = A.general) == null ? void 0 : t.primaryColor}`,\n ...e.loadingSpinnerStyle\n };\n return /* @__PURE__ */ l(\"div\", { className: \"rcb-spinner-container\", children: /* @__PURE__ */ l(\"div\", { style: o, className: \"rcb-spinner\" }) });\n}, MA = () => {\n try {\n if (typeof crypto < \"u\" && typeof crypto.randomUUID == \"function\")\n return crypto.randomUUID();\n throw new Error(\"crypto.randomUUID not available\");\n } catch (A) {\n if (typeof crypto < \"u\" && typeof crypto.getRandomValues == \"function\")\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, function(e) {\n const o = crypto.getRandomValues(new Uint8Array(1))[0] % 16;\n return (e === \"x\" ? o : o & 3 | 8).toString(16);\n });\n throw console.error(A), new Error(\"crypto.getRandomValues is also not available\");\n }\n}, gA = (A, e) => ({\n id: MA(),\n content: A,\n sender: e,\n type: typeof A == \"string\" ? \"string\" : \"object\",\n timestamp: (/* @__PURE__ */ new Date()).toUTCString(),\n tags: []\n});\nlet wA, Be = !1, kA = \"rcb-history\", IA = 30, ve = !1, HA = [];\nconst Qt = async (A) => {\n if (ve || !wA)\n return;\n const e = [];\n for (let t = A.length - 1; t >= 0; t--) {\n const n = A[t];\n if (n.sender.toUpperCase() !== \"SYSTEM\" && (n.content !== \"\" && e.unshift(n), e.length === IA))\n break;\n }\n let o = e.map(St);\n if (!Be && o.length < IA) {\n const t = IA - o.length;\n o = [...HA.slice(-t), ...o];\n }\n he(o);\n}, bt = (A) => {\n if (A != null)\n try {\n return JSON.parse(A);\n } catch {\n return [];\n }\n return [];\n}, bA = () => HA, jA = (A) => {\n he(A), HA = A;\n}, he = (A) => {\n wA && wA.setItem(kA, JSON.stringify(A));\n}, pt = () => {\n wA && wA.removeItem(kA);\n}, zA = (A) => {\n var e, o, t, n, s;\n ((o = (e = A.chatHistory) == null ? void 0 : e.storageType) == null ? void 0 : o.toUpperCase()) === \"SESSION_STORAGE\" ? wA = sessionStorage : wA = localStorage, kA = (t = A.chatHistory) == null ? void 0 : t.storageKey, IA = (n = A.chatHistory) == null ? void 0 : n.maxEntries, ve = (s = A.chatHistory) == null ? void 0 : s.disabled, HA = bt(wA.getItem(kA));\n}, St = (A) => GA(A.content) ? structuredClone({\n id: A.id,\n content: Te.renderToString(A.content),\n type: A.type,\n sender: A.sender.toUpperCase(),\n timestamp: A.timestamp,\n tags: A.tags\n}) : A, It = (A, e, o, t, n, s, a, r, c) => {\n var i;\n if (Be = !0, o != null)\n try {\n const u = gA(/* @__PURE__ */ l(mt, {}), \"SYSTEM\"), d = n.current.slice(1);\n t([u, ...d]);\n const w = o.map((f) => {\n if (f.type === \"object\") {\n const g = Pe(f.content, A, e);\n return { ...f, content: g };\n }\n return f;\n });\n setTimeout(() => {\n var B;\n const f = n.current.slice(1);\n let g = (B = A.chatHistory) != null && B.autoLoad ? gA(/* @__PURE__ */ l(oA, {}), \"SYSTEM\") : gA(/* @__PURE__ */ l(Ct, {}), \"SYSTEM\");\n t([...w, g, ...f]), c(!0);\n }, 500), setTimeout(() => {\n if (!s.current)\n return;\n const { scrollHeight: f } = s.current, g = f - a;\n s.current.scrollTop += g, r(!1);\n }, 510);\n } catch {\n wA.removeItem((i = A.chatHistory) == null ? void 0 : i.storageKey);\n }\n}, Pe = (A, e, o) => {\n const n = new DOMParser().parseFromString(A, \"text/html\");\n return Array.from(n.body.childNodes).map((r, c) => {\n var i;\n if (r.nodeType === Node.TEXT_NODE)\n return r.textContent;\n {\n const u = r.tagName.toLowerCase();\n let d = Array.from(r.attributes).reduce((f, g) => {\n const B = g.name.toLowerCase();\n if (B === \"style\") {\n const E = g.value.split(\";\").filter((y) => y.trim() !== \"\"), Q = {};\n E.forEach((y) => {\n const [v, h] = y.split(\":\").map((D) => D.trim()), P = v.replace(/-([a-z])/g, (D, S) => S.toUpperCase());\n Q[P] = h;\n }), f[B] = Q;\n } else (u === \"audio\" || u === \"video\") && B === \"controls\" && g.value === \"\" ? f[B] = \"true\" : f[B] = g.value;\n return f;\n }, {});\n if (Object.prototype.hasOwnProperty.call(d, \"class\")) {\n const f = r.classList;\n d.className = f.toString(), delete d.class, (i = e.botBubble) != null && i.showAvatar && (d = Tt(f, d)), d = Mt(f, d, e, o), d = kt(f, d, e, o), d = Ht(f, d, e, o), d = xt(f, d, e, o);\n }\n if ([\n \"area\",\n \"base\",\n \"br\",\n \"col\",\n \"embed\",\n \"hr\",\n \"img\",\n \"input\",\n \"link\",\n \"meta\",\n \"source\",\n \"track\",\n \"wbr\"\n ].includes(u))\n return $A(u, { key: c, ...d });\n {\n const f = Pe(r.innerHTML, e, o);\n return $A(u, { key: c, ...d }, ...f);\n }\n }\n });\n}, Tt = (A, e) => ((A.contains(\"rcb-options-container\") || A.contains(\"rcb-checkbox-container\")) && (e.className = `${A.toString()} rcb-options-offset`), e), Mt = (A, e, o, t) => {\n var n, s, a, r, c;\n return A.contains(\"rcb-options\") && (e.style = {\n ...e.style,\n color: ((n = t.botOptionStyle) == null ? void 0 : n.color) ?? ((s = o.general) == null ? void 0 : s.primaryColor),\n borderColor: ((a = t.botOptionStyle) == null ? void 0 : a.color) ?? ((r = o.general) == null ? void 0 : r.primaryColor),\n cursor: `url(\"${(c = o.general) == null ? void 0 : c.actionDisabledIcon}\"), auto`,\n ...t.botOptionStyle\n }), e;\n}, kt = (A, e, o, t) => {\n var n, s, a, r, c;\n return A.contains(\"rcb-checkbox-row-container\") && (e.style = {\n ...e.style,\n color: ((n = t.botCheckboxRowStyle) == null ? void 0 : n.color) ?? ((s = o.general) == null ? void 0 : s.primaryColor),\n borderColor: ((a = t.botCheckboxRowStyle) == null ? void 0 : a.color) ?? ((r = o.general) == null ? void 0 : r.primaryColor),\n cursor: `url(\"${(c = o.general) == null ? void 0 : c.actionDisabledIcon}\"), auto`,\n ...t.botCheckboxRowStyle\n }), e;\n}, Ht = (A, e, o, t) => {\n var n, s, a, r, c;\n return A.contains(\"rcb-checkbox-next-button\") && (e.style = {\n ...e.style,\n color: ((n = t.botCheckboxNextStyle) == null ? void 0 : n.color) ?? ((s = o.general) == null ? void 0 : s.primaryColor),\n borderColor: ((a = t.botCheckboxNextStyle) == null ? void 0 : a.color) ?? ((r = o.general) == null ? void 0 : r.primaryColor),\n cursor: `url(\"${(c = o.general) == null ? void 0 : c.actionDisabledIcon}\"), auto`,\n ...t.botCheckboxNextStyle\n }), e;\n}, xt = (A, e, o, t) => {\n var n, s;\n return (A.contains(\"rcb-media-display-image-container\") || A.contains(\"rcb-media-display-video-container\")) && (e.style = {\n ...e.style,\n backgroundColor: (n = o.general) == null ? void 0 : n.primaryColor,\n maxWidth: (s = o.userBubble) != null && s.showAvatar ? \"65%\" : \"70%\",\n ...t.mediaDisplayContainerStyle\n }), e;\n}, WA = () => {\n const { settings: A } = R(), {\n notificationsToggledOn: e,\n setSyncedNotificationsToggledOn: o,\n hasInteractedPage: t,\n unreadCount: n,\n setUnreadCount: s,\n syncedNotificationsToggledOnRef: a\n } = tA(), { audioBufferRef: r, audioContextRef: c, gainNodeRef: i } = $(), { dispatchRcbEvent: u } = iA(), d = x(async () => {\n var Q, y;\n const g = (Q = A.notification) == null ? void 0 : Q.sound;\n c.current = new AudioContext();\n const B = c.current.createGain();\n B.gain.value = ((y = A.notification) == null ? void 0 : y.volume) ?? 0.2, i.current = B;\n let E;\n if (g != null && g.startsWith(\"data:audio\")) {\n const v = atob(g.split(\",\")[1]), h = new ArrayBuffer(v.length), P = new Uint8Array(h);\n for (let D = 0; D < v.length; D++)\n P[D] = v.charCodeAt(D);\n E = h;\n } else\n E = await (await fetch(g)).arrayBuffer();\n r.current = await c.current.decodeAudioData(E);\n }, [A.notification]), w = x(() => {\n var B;\n if ((B = A.notification) != null && B.disabled || !a.current || !t || !c.current || !r.current)\n return;\n const g = c.current.createBufferSource();\n g.buffer = r.current, g.connect(i.current).connect(c.current.destination), g.start();\n }, [\n A.notification,\n a,\n t,\n c,\n r,\n i\n ]), f = x(async (g) => {\n var B;\n g !== a.current && ((B = A.event) != null && B.rcbToggleNotifications && (await u(\n H.TOGGLE_NOTIFICATIONS,\n {\n currState: a.current,\n newState: !a.current\n }\n )).defaultPrevented || o((E) => !E));\n }, [a]);\n return {\n unreadCount: n,\n setUnreadCount: s,\n notificationsToggledOn: e,\n toggleNotifications: f,\n playNotificationSound: w,\n setUpNotifications: d\n };\n}, Ot = (A, e, o, t, n) => {\n if (!window.SpeechSynthesisUtterance) {\n console.info(\"Speech Synthesis API is not supported in this environment.\");\n return;\n }\n const s = new window.SpeechSynthesisUtterance();\n s.text = A, s.lang = e, s.rate = t, s.volume = n;\n let a = !1;\n for (const r of o) {\n const c = window.speechSynthesis.getVoices().find((i) => i.name === r);\n if (c) {\n s.voice = c, window.speechSynthesis.speak(s), a = !0;\n break;\n }\n }\n a || window.speechSynthesis.speak(s);\n}, Lt = (A, e) => {\n var o, t, n, s;\n Ot(\n e,\n (o = A.audio) == null ? void 0 : o.language,\n (t = A.audio) == null ? void 0 : t.voiceNames,\n (n = A.audio) == null ? void 0 : n.rate,\n (s = A.audio) == null ? void 0 : s.volume\n );\n}, KA = () => {\n const { settings: A } = R(), { audioToggledOn: e, setSyncedAudioToggledOn: o, syncedAudioToggledOnRef: t } = tA(), { dispatchRcbEvent: n } = iA(), s = x(async (r) => {\n var c;\n r !== t.current && ((c = A.event) != null && c.rcbToggleAudio && (await n(\n H.TOGGLE_AUDIO,\n {\n currState: t.current,\n newState: !t.current\n }\n )).defaultPrevented || o((i) => !i));\n }, [t]), a = x(async (r) => {\n var i, u;\n if ((i = A.audio) != null && i.disabled || !t.current)\n return;\n let c = r;\n if ((u = A.event) != null && u.rcbStartSpeakAudio) {\n const d = await n(H.START_SPEAK_AUDIO, { textToRead: c });\n if (d.defaultPrevented)\n return;\n c = d.data.textToRead;\n }\n Lt(A, c);\n }, [A, t]);\n return {\n audioToggledOn: e,\n speakAudio: a,\n toggleAudio: s\n };\n}, EA = () => {\n var L, N, T;\n const { settings: A } = R(), { messages: e, setSyncedMessages: o, syncedMessagesRef: t } = XA(), {\n setSyncedIsBotTyping: n,\n setUnreadCount: s,\n syncedIsScrollingRef: a,\n syncedIsChatWindowOpenRef: r\n } = tA(), { streamMessageMap: c, chatBodyRef: i, paramsInputRef: u } = $(), { scrollToBottom: d, getIsChatBotVisible: w } = sA(), { dispatchRcbEvent: f } = iA(), { speakAudio: g } = KA(), { playNotificationSound: B } = WA(), E = x(async (C) => {\n var m, b;\n if ((m = A.event) != null && m.rcbSaveChatHistory) {\n const M = await f(H.SAVE_CHAT_HISTORY, { messages: C });\n if (M.defaultPrevented)\n return;\n C = ((b = M.data) == null ? void 0 : b.messages) ?? C;\n }\n await Qt(C);\n }, [f, (L = A.event) == null ? void 0 : L.rcbSaveChatHistory]), Q = x((C, m = !1) => {\n var p, k;\n E(C);\n let b = !0;\n const M = C[C.length - 1];\n if (!M)\n return;\n const O = M.sender.toUpperCase();\n O === \"USER\" && (b = !1), (p = A.general) != null && p.embedded && w() && (b = !1), (r.current && !a.current || m) && (b = !1), b && B(), !m && (O !== \"USER\" && ((k = A.chatWindow) != null && k.autoJumpToBottom) || O === \"USER\" || !a.current) && setTimeout(() => d(), 1);\n }, [\n A,\n i,\n r,\n a,\n B,\n d,\n w\n ]), y = x(async (C, m = \"BOT\", b = null) => {\n var V, U, z, Y, AA;\n if (typeof C != \"string\")\n throw new Error(\"Content must be of type string to simulate stream.\");\n m = m.toUpperCase();\n let M = gA(C, m);\n if ((V = A.event) != null && V.rcbStartSimulateStreamMessage) {\n const q = await f(\n H.START_SIMULATE_STREAM_MESSAGE,\n { message: M }\n );\n if (q.defaultPrevented)\n return null;\n b = q.data.simulateStreamChunker || b, M = q.data.message;\n }\n n(!1);\n let O = 30;\n m === \"BOT\" ? O = (U = A.botBubble) == null ? void 0 : U.streamSpeed : O = (z = A.userBubble) == null ? void 0 : z.streamSpeed;\n const p = { ...M, content: \"\" };\n o((q) => [...q, p]), Q(t.current);\n let k = M.content;\n b && (k = b(k));\n let K = 0;\n const j = k.length;\n M.sender.toUpperCase() === \"BOT\" && (r.current || (Y = A.general) != null && Y.embedded) && typeof M.content == \"string\" && M.content.trim() !== \"\" && g(M.content);\n const F = new Promise((q) => {\n const rA = setInterval(() => {\n if (K >= j) {\n clearInterval(rA), q();\n return;\n }\n o((lA) => {\n const PA = [...lA];\n for (let DA = PA.length - 1; DA >= 0; DA--)\n if (PA[DA].id === p.id) {\n const QA = k[K];\n QA && (p.content += QA, PA[DA] = p), K++;\n break;\n }\n return PA;\n });\n }, O);\n });\n return (a.current || !r.current) && s((q) => q + 1), await F, E(t.current), (AA = A.event) != null && AA.rcbStopSimulateStreamMessage && await f(H.STOP_SIMULATE_STREAM_MESSAGE, { message: M }), m === \"USER\" && (u.current = C), M;\n }, [\n A,\n f,\n Q,\n t,\n u,\n n,\n s,\n r,\n g\n ]), v = x(async (C, m = \"BOT\") => {\n var M, O, p;\n m = m.toUpperCase();\n let b = gA(C, m);\n if ((M = A.event) != null && M.rcbPreInjectMessage) {\n const k = await f(H.PRE_INJECT_MESSAGE, { message: b });\n if (k.defaultPrevented)\n return null;\n b = k.data.message;\n }\n return b.sender.toUpperCase() === \"BOT\" && (r.current || (O = A.general) != null && O.embedded) && typeof b.content == \"string\" && b.content.trim() !== \"\" && g(b.content), (a.current || !r.current) && s((k) => k + 1), (p = A.event) != null && p.rcbPostInjectMessage && await f(H.POST_INJECT_MESSAGE, { message: b }), o((k) => [...k, b]), Q(t.current), m === \"USER\" && typeof C == \"string\" && (u.current = C), b;\n }, [\n A,\n f,\n Q,\n u,\n t,\n r,\n g,\n s\n ]), h = x(async (C) => {\n var O;\n let m = t.current.find((p) => p.id === C), b = null, M = !1;\n return m || (b = bA(), m = b.find((p) => p.id === C), m && (M = !0)), !m || (O = A.event) != null && O.rcbRemoveMessage && (await f(H.REMOVE_MESSAGE, { message: m })).defaultPrevented ? null : M ? (b && jA(b.filter((p) => p.id !== C)), m) : (o(\n (p) => p.filter((k) => k.id !== C)\n ), Q(t.current), s((p) => Math.max(p - 1, 0)), m);\n }, [\n f,\n (N = A.event) == null ? void 0 : N.rcbRemoveMessage,\n Q,\n t,\n s,\n bA,\n jA\n ]), P = x(async (C, m = \"BOT\") => {\n var M, O;\n if (m = m.toUpperCase(), !c.current.has(m)) {\n const p = gA(C, m);\n return (M = A.event) != null && M.rcbStartStreamMessage && (await f(H.START_STREAM_MESSAGE, { message: p })).defaultPrevented ? null : (n(!1), o((k) => [...k, p]), Q(t.current), c.current.set(m, p.id), (a.current || !r.current) && s((k) => k + 1), p);\n }\n const b = { ...gA(C, m), id: c.current.get(m) };\n return (O = A.event) != null && O.rcbChunkStreamMessage && (await f(H.CHUNK_STREAM_MESSAGE, { message: b })).defaultPrevented ? null : (o(\n (p) => p.map((k) => k.id === b.id ? b : k)\n ), Q(t.current, !0), b);\n }, [\n f,\n A.event,\n Q,\n t,\n n,\n s,\n c\n ]), D = x(async (C = \"BOT\") => {\n var M;\n if (C = C.toUpperCase(), !c.current.has(C))\n return !0;\n const m = c.current.get(C);\n let b;\n for (let O = 0; O < 3; O++) {\n const p = t.current.find((k) => k.id === m);\n p && (b = p), await new Promise((k) => setTimeout(k, 20));\n }\n return (M = A.event) != null && M.rcbStopStreamMessage && (await f(H.STOP_STREAM_MESSAGE, { message: b })).defaultPrevented ? !1 : (c.current.delete(C), E(t.current), C === \"USER\" && typeof (b == null ? void 0 : b.content) == \"string\" && (u.current = b.content), !0);\n }, [f, (T = A.event) == null ? void 0 : T.rcbStopStreamMessage, c, u]), S = x((C) => {\n const m = typeof C == \"function\" ? C(t.current) : C;\n o(m), Q(m);\n }, [Q, t]), I = x(\n (C, m, b = 0) => {\n var K;\n const M = t.current, O = C ? C.toUpperCase() : null, p = [];\n let k = b;\n for (let j = M.length - 1; j >= 0; j--) {\n const F = M[j];\n if (!O || ((K = F == null ? void 0 : F.sender) == null ? void 0 : K.toUpperCase()) === O) {\n if (k > 0) {\n k--;\n continue;\n }\n if (p.push(F), m !== void 0 && p.length === m)\n break;\n }\n }\n return p.length > 0 ? p : null;\n },\n [t]\n );\n return {\n simulateStreamMessage: y,\n injectMessage: v,\n removeMessage: h,\n streamMessage: P,\n endStreamMessage: D,\n replaceMessages: S,\n getMessages: I,\n messages: e\n };\n};\nlet NA, uA, TA, BA = !1, aA = null;\nconst VA = () => {\n if (!NA) {\n const A = window.SpeechRecognition || window.webkitSpeechRecognition;\n NA = A != null ? new A() : null;\n }\n return NA;\n}, Nt = (A, e, o, t, n, s, a) => {\n var r;\n (r = A.voice) != null && r.sendAsAudio ? Ft(o, s) : Rt(\n A,\n e,\n o,\n t,\n n,\n a\n );\n}, Rt = (A, e, o, t, n, s) => {\n var i, u, d;\n const a = VA();\n if (!a)\n return;\n if (!BA)\n try {\n BA = !0, a.lang = (i = A.voice) == null ? void 0 : i.language, a.start();\n } catch {\n }\n const r = (u = A.voice) == null ? void 0 : u.timeoutPeriod, c = (d = A.voice) == null ? void 0 : d.autoSendPeriod;\n a.onresult = (w) => {\n var g, B;\n clearTimeout(uA), uA = null, clearTimeout(TA);\n const f = w.results[w.results.length - 1][0].transcript;\n if (s.current) {\n const E = (g = A.chatInput) == null ? void 0 : g.characterLimit, Q = s.current.value + f;\n E != null && E >= 0 && Q.length > E ? t(Q.slice(0, E)) : t(Q), n(s.current.value.length);\n }\n r && (uA = setTimeout(async () => await RA(e, s), r)), (B = A.voice) != null && B.autoSendDisabled || (TA = setTimeout(o, c));\n }, a.onend = () => {\n BA ? (a.start(), !uA && r && (uA = setTimeout(async () => await RA(e, s), r))) : (clearTimeout(uA), uA = null, clearTimeout(TA));\n }, r && (uA = setTimeout(async () => await RA(e, s), r));\n}, Ft = (A, e) => {\n navigator.mediaDevices.getUserMedia({ audio: !0 }).then((o) => {\n if (aA = new MediaRecorder(o), !BA)\n try {\n BA = !0, aA.start();\n } catch {\n }\n aA.ondataavailable = (t) => {\n e.current && e.current.push(t.data);\n }, aA.onstop = () => {\n A(), o.getTracks().forEach((t) => t.stop());\n };\n }).catch((o) => {\n console.error(\"Unable to use microphone:\", o);\n });\n}, qA = () => {\n const A = VA();\n A && (BA = !1, A && A.stop(), aA && aA.state !== \"inactive\" && (aA.stop(), aA = null), clearTimeout(uA), uA = null, clearTimeout(TA));\n}, Ut = (A, e) => {\n var t, n, s;\n const o = VA();\n (t = e.voice) != null && t.disabled || !((n = e.chatInput) != null && n.blockSpam) || !o || (A && !BA ? (BA = !0, (s = e.voice) != null && s.sendAsAudio ? aA == null || aA.start() : o.start()) : A || qA());\n}, RA = async (A, e) => {\n var o;\n (o = e.current) != null && o.disabled || await A(), qA();\n}, xA = () => {\n const { settings: A } = R(), { voiceToggledOn: e, setSyncedVoiceToggledOn: o, syncedVoiceToggledOnRef: t } = tA(), { dispatchRcbEvent: n } = iA(), s = x(async (r) => {\n var c;\n r !== t.current && ((c = A.event) != null && c.rcbToggleVoice && (await n(\n H.TOGGLE_VOICE,\n {\n currState: t.current,\n newState: !t.current\n }\n )).defaultPrevented || o((i) => !i));\n }, [t]), a = x((r) => {\n Ut(r, A);\n }, [A]);\n return {\n voiceToggledOn: e,\n toggleVoice: s,\n syncVoice: a\n };\n}, yA = () => {\n var P;\n const { settings: A } = R(), {\n inputLength: e,\n setInputLength: o,\n textAreaDisabled: t,\n setSyncedTextAreaDisabled: n,\n textAreaSensitiveMode: s,\n setSyncedTextAreaSensitiveMode: a,\n syncedTextAreaDisabledRef: r,\n syncedTextAreaSensitiveModeRef: c\n } = tA(), { inputRef: i, chatBodyRef: u, prevInputRef: d } = $(), { dispatchRcbEvent: w } = iA(), { getIsChatBotVisible: f } = sA(), g = x(async (D) => {\n var S, I, L;\n if (r.current && i.current) {\n i.current.value = \"\";\n return;\n }\n if (i.current && d.current !== null) {\n const N = (S = A.chatInput) == null ? void 0 : S.characterLimit, C = ((I = A.chatInput) == null ? void 0 : I.allowNewline) ? D : D.replace(/\\n/g, \" \");\n if (N != null && N >= 0 && C.length > N ? i.current.value = C.slice(0, N) : i.current.value = C, (L = A.event) != null && L.rcbTextAreaChangeValue && (await w(\n H.TEXT_AREA_CHANGE_VALUE,\n { currValue: i.current.value, prevValue: d.current }\n )).defaultPrevented) {\n i.current.value = d.current;\n return;\n }\n d.current = i.current.value;\n }\n }, [r, i, d, A, w]), B = x((D) => {\n var S;\n (S = i.current) != null && S.disabled || setTimeout(() => {\n var I, L, N;\n (I = A.general) != null && I.embedded ? f() && ((L = i.current) == null || L.focus()) : D !== \"start\" && ((N = i.current) == null || N.focus());\n }, 100);\n }, [i, (P = A.general) == null ? void 0 : P.embedded, u, f]), E = x(() => {\n i.current && i.current.focus();\n }, []), Q = x(() => {\n i.current && i.current.blur();\n }, []), y = x(() => i && i.current ? i.current.value : \"\", []), v = x((D) => {\n D !== r.current && n((S) => !S);\n }, [r]), h = x((D) => {\n D !== c.current && a((S) => !S);\n }, [c]);\n return {\n textAreaDisabled: t,\n setSyncedTextAreaDisabled: n,\n textAreaSensitiveMode: s,\n setSyncedTextAreaSensitiveMode: a,\n inputLength: e,\n setInputLength: o,\n getTextAreaValue: y,\n setTextAreaValue: g,\n updateTextAreaFocus: B,\n focusTextArea: E,\n blurTextArea: Q,\n toggleTextAreaDisabled: v,\n toggleTextAreaSensitiveMode: h\n };\n}, De = vA({\n toasts: [],\n setSyncedToasts: () => {\n },\n syncedToastsRef: { current: [] }\n}), Ee = () => hA(De), jt = ({ children: A }) => {\n const [e, o, t] = nA([]);\n return /* @__PURE__ */ l(De.Provider, { value: { toasts: e, setSyncedToasts: o, syncedToastsRef: t }, children: A });\n}, CA = () => {\n const { settings: A } = R(), { toasts: e, setSyncedToasts: o, syncedToastsRef: t } = Ee(), { dispatchRcbEvent: n } = iA(), s = x(async (c, i) => {\n var g, B, E, Q;\n let u = null;\n if (t.current.length >= (((g = A.toast) == null ? void 0 : g.maxCount) ?? 3)) {\n if ((B = A.toast) != null && B.forbidOnMax)\n return null;\n u = MA();\n let y = { id: u, content: c, timeout: i };\n if ((E = A.event) != null && E.rcbShowToast) {\n const v = await n(H.SHOW_TOAST, { toast: y });\n if (v.defaultPrevented)\n return null;\n y = v.data.toast;\n }\n return o((v) => [...v.slice(1), y]), u;\n }\n u = MA();\n let f = { id: u, content: c, timeout: i };\n if ((Q = A.event) != null && Q.rcbShowToast) {\n const y = await n(H.SHOW_TOAST, { toast: f });\n if (y.defaultPrevented)\n return null;\n f = y.data.toast;\n }\n return o((y) => [...y, f]), u;\n }, [A, n]), a = x(async (c) => {\n var u;\n const i = t.current.find((d) => d.id === c);\n return !i || (u = A.event) != null && u.rcbDismissToast && (await n(H.DISMISS_TOAST, { toast: i })).defaultPrevented ? null : (o((d) => d.filter((w) => w.id !== c)), c);\n }, [n]), r = x((c) => {\n const i = typeof c == \"function\" ? c(t.current) : c;\n o(i);\n }, [t]);\n return {\n showToast: s,\n dismissToast: a,\n toasts: e,\n replaceToasts: r\n };\n}, SA = () => {\n var O, p, k, K, j;\n const { settings: A } = R(), { paths: e, setSyncedPaths: o, syncedPathsRef: t } = pA(), { flowRef: n, streamMessageMap: s, paramsInputRef: a, keepVoiceOnRef: r, timeoutIdRef: c } = $(), {\n setSyncedIsBotTyping: i,\n setSyncedTextAreaDisabled: u,\n setSyncedTextAreaSensitiveMode: d,\n blockAllowsAttachment: w,\n setBlockAllowsAttachment: f\n } = tA(), { dispatchRcbEvent: g } = iA(), {\n endStreamMessage: B,\n injectMessage: E,\n removeMessage: Q,\n simulateStreamMessage: y,\n streamMessage: v\n } = EA(), { showToast: h, dismissToast: P } = CA(), { toggleChatWindow: D } = sA(), { updateTextAreaFocus: S, setTextAreaValue: I } = yA(), { syncVoice: L } = xA(), N = x(async (F) => {\n var V;\n if ((V = A.event) != null && V.rcbPostProcessBlock) {\n const U = await g(H.POST_PROCESS_BLOCK, {\n block: F\n });\n if (U.defaultPrevented)\n return null;\n F = U.data.block;\n }\n return F;\n }, [(O = A.event) == null ? void 0 : O.rcbPostProcessBlock, g]), T = x(async (F, V) => {\n var Y, AA, q, rA;\n if (!F)\n return;\n let U = n.current[F];\n if (!U) {\n i(!1);\n return;\n }\n if ((Y = A.event) != null && Y.rcbPreProcessBlock) {\n const lA = await g(H.PRE_PROCESS_BLOCK, {\n block: U\n });\n if (lA.defaultPrevented)\n return;\n U = lA.data.block;\n }\n i(!0), (AA = A.chatInput) != null && AA.blockSpam && u(!0), d(!1);\n const z = {\n prevPath: V,\n currPath: F,\n goToPath: b,\n setTextAreaValue: I,\n userInput: a.current,\n endStreamMessage: B,\n injectMessage: E,\n removeMessage: Q,\n simulateStreamMessage: y,\n streamMessage: v,\n toggleChatWindow: D,\n showToast: h,\n dismissToast: P\n };\n await yt(\n U,\n z,\n ((q = A.botBubble) == null ? void 0 : q.simulateStream) ?? !1,\n c,\n u,\n d,\n N\n ), i(!1), \"chatDisabled\" in U || u((rA = A.chatInput) == null ? void 0 : rA.disabled), \"isSensitive\" in U || d(!1), f(typeof U.file == \"function\"), S(F), L(r.current && !U.chatDisabled), F !== V && s.current.clear();\n }, [\n n,\n S,\n L,\n (p = A.botBubble) == null ? void 0 : p.simulateStream,\n (k = A.chatInput) == null ? void 0 : k.disabled,\n a,\n B,\n E,\n Q,\n y,\n v,\n D,\n h,\n P,\n r,\n s\n ]), C = x(() => t.current.length > 0 ? t.current.at(-1) ?? null : null, []), m = x(() => t.current.length > 1 ? t.current.at(-2) ?? null : null, []), b = x(async (F) => {\n var z;\n const V = C(), U = m();\n return (z = A.event) != null && z.rcbChangePath && (await g(H.CHANGE_PATH, {\n currPath: V,\n prevPath: U,\n nextPath: F\n })).defaultPrevented ? !1 : (o((Y) => [...Y, F]), await T(F, V), !0);\n }, [(K = A.chatInput) == null ? void 0 : K.blockSpam, (j = A.event) == null ? void 0 : j.rcbChangePath, T, g]), M = x((F) => {\n const V = typeof F == \"function\" ? F(t.current) : F;\n o(V);\n }, [t]);\n return {\n getCurrPath: C,\n getPrevPath: m,\n goToPath: b,\n blockAllowsAttachment: w,\n setBlockAllowsAttachment: f,\n paths: e,\n replacePaths: M,\n firePostProcessBlockEvent: N\n };\n}, mA = () => {\n var O, p, k, K;\n const { settings: A } = R(), {\n endStreamMessage: e,\n injectMessage: o,\n removeMessage: t,\n simulateStreamMessage: n,\n streamMessage: s\n } = EA(), { syncedPathsRef: a } = pA(), { getCurrPath: r, getPrevPath: c, goToPath: i, firePostProcessBlockEvent: u } = SA(), {\n setSyncedTextAreaSensitiveMode: d,\n setSyncedTextAreaDisabled: w,\n setSyncedIsBotTyping: f,\n setBlockAllowsAttachment: g,\n setInputLength: B,\n syncedVoiceToggledOnRef: E,\n syncedTextAreaSensitiveModeRef: Q\n } = tA(), { flowRef: y, inputRef: v, keepVoiceOnRef: h, paramsInputRef: P, timeoutIdRef: D } = $(), { showToast: S, dismissToast: I } = CA(), { dispatchRcbEvent: L } = iA(), { syncVoice: N } = xA(), { setTextAreaValue: T } = yA(), { toggleChatWindow: C } = sA(), m = x(async (j) => {\n var U, z, Y, AA, q, rA;\n const F = r();\n if (!(!F || !y.current[F])) {\n if (Q.current) {\n if ((U = A == null ? void 0 : A.sensitiveInput) != null && U.hideInUserBubble)\n return;\n if ((z = A == null ? void 0 : A.sensitiveInput) != null && z.maskInUserBubble) {\n (Y = A.userBubble) != null && Y.simulateStream ? await n(\n \"*\".repeat(((AA = A.sensitiveInput) == null ? void 0 : AA.asterisksCount) ?? 10),\n \"USER\"\n ) : await o(\"*\".repeat(((q = A.sensitiveInput) == null ? void 0 : q.asterisksCount) ?? 10), \"USER\");\n return;\n }\n }\n (rA = A.userBubble) != null && rA.simulateStream ? await n(j, \"USER\") : await o(j, \"USER\");\n }\n }, [y, r, A, o, n, Q]), b = x(async (j, F = !0) => {\n var Y, AA;\n if (j = j.trim(), j === \"\")\n return;\n F && await m(j), D.current && clearTimeout(D.current), v.current && (T(\"\"), B(0));\n const V = r();\n if (!V)\n return;\n let U = y.current[V];\n const z = await u(U);\n z && ((Y = A.chatInput) != null && Y.blockSpam && w(!0), h.current = E.current, N(!1), setTimeout(() => {\n f(!0);\n }, 400), d(!1), setTimeout(async () => {\n var lA;\n const q = {\n prevPath: c(),\n currPath: r(),\n goToPath: i,\n setTextAreaValue: T,\n userInput: P.current,\n injectMessage: o,\n simulateStreamMessage: n,\n streamMessage: s,\n removeMessage: t,\n endStreamMessage: e,\n toggleChatWindow: C,\n showToast: S,\n dismissToast: I\n }, rA = a.current.length;\n await ge(z, q), a.current.length === rA && (\"chatDisabled\" in U ? w(!!U.chatDisabled) : w(!!((lA = A.chatInput) != null && lA.disabled)), we(U, q, d), g(typeof U.file == \"function\"), N(h.current), f(!1));\n }, (AA = A.chatInput) == null ? void 0 : AA.botDelay));\n }, [\n D,\n (O = A.chatInput) == null ? void 0 : O.blockSpam,\n (p = A.chatInput) == null ? void 0 : p.botDelay,\n (k = A.chatInput) == null ? void 0 : k.disabled,\n h,\n E,\n N,\n m,\n c,\n r,\n i,\n o,\n n,\n s,\n t,\n e,\n C,\n S,\n I,\n y\n ]);\n return { handleSubmitText: x(async (j, F = !0) => {\n var U, z;\n j = j ?? ((U = v.current) == null ? void 0 : U.value), !((z = A.event) != null && z.rcbUserSubmitText && (await L(H.USER_SUBMIT_TEXT, { inputText: j, sendInChat: F })).defaultPrevented || !r()) && b(j, F);\n }, [L, r, b, v, (K = A.event) == null ? void 0 : K.rcbUserSubmitText]) };\n}, OA = () => {\n var o;\n const { settings: A } = R();\n return dA(() => {\n var a;\n if (typeof window > \"u\" || !window.navigator)\n return !1;\n if (!((a = A.device) != null && a.applyMobileOptimizations))\n return !0;\n const t = navigator.userAgent, n = !/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(t), s = window.innerWidth >= 768;\n return n && s;\n }, [(o = A.device) == null ? void 0 : o.applyMobileOptimizations]);\n}, zt = ({ buttons: A }) => {\n var m, b, M, O, p, k, K, j, F, V, U;\n const e = OA(), { settings: o } = R(), { styles: t } = X(), {\n textAreaDisabled: n,\n textAreaSensitiveMode: s,\n inputLength: a,\n hasFlowStarted: r,\n setHasFlowStarted: c,\n setInputLength: i\n } = tA(), { inputRef: u } = $(), [d, w] = G(!1), [f, g] = G(!1), { handleSubmitText: B } = mA(), { setTextAreaValue: E } = yA(), Q = {\n boxSizing: e ? \"content-box\" : \"border-box\",\n ...t.chatInputAreaStyle\n }, y = {\n outline: n ? \"\" : \"none\",\n boxShadow: n ? \"\" : `0 0 5px ${(m = o.general) == null ? void 0 : m.primaryColor}`,\n boxSizing: e ? \"content-box\" : \"border-box\",\n ...t.chatInputAreaStyle,\n // by default inherit the base style for input area\n ...t.chatInputAreaFocusedStyle\n }, v = {\n cursor: `url(\"${(b = o.general) == null ? void 0 : b.actionDisabledIcon}\"), auto`,\n caretColor: \"transparent\",\n boxSizing: e ? \"content-box\" : \"border-box\",\n ...t.chatInputAreaStyle,\n // by default inherit the base style for input area\n ...t.chatInputAreaDisabledStyle\n }, h = {\n color: \"#989898\",\n ...t.characterLimitStyle\n }, P = {\n color: \"#ff0000\",\n ...t.characterLimitReachedStyle\n }, D = n ? (M = o.chatInput) == null ? void 0 : M.disabledPlaceholderText : (O = o.chatInput) == null ? void 0 : O.enabledPlaceholderText, S = () => {\n n || w(!0);\n }, I = () => {\n w(!1);\n }, L = () => {\n g(!0);\n }, N = () => {\n g(!1);\n }, T = async (z) => {\n var Y;\n if (!f && z.key === \"Enter\") {\n if (z.shiftKey) {\n (Y = o.chatInput) != null && Y.allowNewline || z.preventDefault();\n return;\n }\n z.preventDefault(), await B();\n }\n }, C = (z) => {\n u.current && (E(z.target.value), i(u.current.value.length));\n };\n return /* @__PURE__ */ W(\n \"div\",\n {\n \"aria-label\": ((p = o.ariaLabel) == null ? void 0 : p.inputTextArea) ?? \"input text area\",\n role: \"textbox\",\n onMouseDown: (z) => {\n var Y;\n z.stopPropagation(), !r && ((Y = o.general) == null ? void 0 : Y.flowStartTrigger) === \"ON_CHATBOT_INTERACT\" && c(!0);\n },\n style: { ...t.chatInputContainerStyle },\n className: \"rcb-chat-input\",\n children: [\n s && ((k = o.sensitiveInput) != null && k.maskInTextArea) ? /* @__PURE__ */ l(\n \"input\",\n {\n ref: u,\n type: \"password\",\n className: \"rcb-chat-input-textarea\",\n style: n ? v : d ? y : Q,\n placeholder: D,\n onChange: C,\n onKeyDown: T,\n onFocus: S,\n onBlur: I,\n onCompositionStart: L,\n onCompositionEnd: N\n }\n ) : /* @__PURE__ */ l(\n \"textarea\",\n {\n ref: u,\n style: n ? v : d ? y : Q,\n rows: 1,\n className: \"rcb-chat-input-textarea\",\n placeholder: D,\n onChange: C,\n onKeyDown: T,\n onFocus: S,\n onBlur: I,\n onCompositionStart: L,\n onCompositionEnd: N\n }\n ),\n /* @__PURE__ */ W(oA, { children: [\n A == null ? void 0 : A.map(\n (z, Y) => /* @__PURE__ */ l(YA, { children: z }, Y)\n ),\n ((K = o.chatInput) == null ? void 0 : K.showCharacterCount) && ((j = o.chatInput) == null ? void 0 : j.characterLimit) != null && ((F = o.chatInput) == null ? void 0 : F.characterLimit) > 0 && /* @__PURE__ */ W(\n \"div\",\n {\n className: \"rcb-chat-input-char-counter\",\n style: a >= ((V = o.chatInput) == null ? void 0 : V.characterLimit) ? P : h,\n children: [\n a,\n \"/\",\n (U = o.chatInput) == null ? void 0 : U.characterLimit\n ]\n }\n )\n ] })\n ]\n }\n );\n}, Gt = ({ buttons: A }) => {\n var t;\n const { settings: e } = R(), { styles: o } = X();\n return /* @__PURE__ */ W(\n \"div\",\n {\n \"data-testid\": \"chatbot-footer-container\",\n style: { ...o.footerStyle },\n className: \"rcb-chat-footer-container\",\n children: [\n /* @__PURE__ */ l(\"div\", { className: \"rcb-chat-footer\", children: A == null ? void 0 : A.map(\n (n, s) => /* @__PURE__ */ l(YA, { children: n }, s)\n ) }),\n /* @__PURE__ */ l(\"span\", { children: (t = e.footer) == null ? void 0 : t.text })\n ]\n }\n );\n}, Yt = () => {\n var f, g, B, E, Q, y, v;\n const { settings: A } = R(), { styles: e } = X(), { unreadCount: o } = tA(), { isChatWindowOpen: t, toggleChatWindow: n } = sA(), [s, a] = G(!1), r = {\n backgroundImage: `linear-gradient(to right, ${(f = A.general) == null ? void 0 : f.secondaryColor},\n\t\t\t${(g = A.general) == null ? void 0 : g.primaryColor})`,\n ...e.chatButtonStyle\n }, c = {\n transform: \"scale(1.05)\",\n ...r,\n // by default inherit the base style\n ...e.chatButtonHoveredStyle\n }, i = {\n backgroundImage: `url(${(B = A.chatButton) == null ? void 0 : B.icon})`,\n fill: \"#fff\",\n width: 75,\n height: 75,\n ...e.chatIconStyle\n }, u = () => {\n a(!0);\n }, d = () => {\n a(!1);\n }, w = () => {\n var P;\n const h = (P = A.chatButton) == null ? void 0 : P.icon;\n return !h || typeof h == \"string\" ? /* @__PURE__ */ l(\n \"span\",\n {\n className: \"rcb-toggle-icon\",\n style: i\n }\n ) : h && /* @__PURE__ */ l(\"span\", { className: \"rcb-toggle-icon\", children: /* @__PURE__ */ l(h, { style: i }) });\n };\n return /* @__PURE__ */ l(oA, { children: !((E = A.general) != null && E.embedded) && /* @__PURE__ */ W(\n \"div\",\n {\n \"aria-label\": ((Q = A.ariaLabel) == null ? void 0 : Q.chatButton) ?? \"open chat\",\n role: \"button\",\n style: s ? c : r,\n className: `rcb-toggle-button ${t ? \"rcb-button-hide\" : \"rcb-button-show\"}`,\n onMouseEnter: u,\n onMouseLeave: d,\n onClick: () => n(!0),\n children: [\n w(),\n !((y = A.notification) != null && y.disabled) && ((v = A.notification) == null ? void 0 : v.showCount) && /* @__PURE__ */ l(\"span\", { style: { ...e.notificationBadgeStyle }, className: \"rcb-badge\", children: o })\n ]\n }\n ) });\n}, Xt = () => {\n var g, B, E, Q, y, v;\n const A = OA(), { settings: e } = R(), { styles: o } = X(), { chatBodyRef: t } = $(), { isChatWindowOpen: n, toggleChatWindow: s } = sA(), [a, r] = G(!1), [c, i] = G(!1), [u, d] = G(0);\n Z(() => {\n var P, D, S;\n const h = (P = e.tooltip) == null ? void 0 : P.mode;\n if (h === \"ALWAYS\")\n if (A) {\n let I;\n n ? I = (((D = t.current) == null ? void 0 : D.offsetWidth) ?? 375) - (typeof ((S = o.chatButtonStyle) == null ? void 0 : S.width) == \"number\" ? o.chatButtonStyle.width : 75) : I = 0, d(I), r(!0);\n } else\n r(!n);\n else h === \"NEVER\" ? r(!1) : h === \"START\" ? c ? r(!1) : (i(!0), r(!0)) : h === \"CLOSE\" && r(!n);\n }, [\n n,\n A,\n c,\n (g = o.chatButtonStyle) == null ? void 0 : g.width,\n (B = e.tooltip) == null ? void 0 : B.mode\n ]);\n const w = {\n transform: `translateX(-${u}px)`,\n right: (((E = o.chatButtonStyle) == null ? void 0 : E.width) ?? 75) + 40,\n bottom: 30,\n backgroundColor: (Q = e.general) == null ? void 0 : Q.secondaryColor,\n color: \"#fff\",\n ...o.tooltipStyle\n }, f = {\n borderColor: `transparent transparent transparent ${w.backgroundColor}`\n };\n return /* @__PURE__ */ l(oA, { children: !((y = e.general) != null && y.embedded) && /* @__PURE__ */ W(\n \"div\",\n {\n \"data-testid\": \"chat-tooltip\",\n style: w,\n className: `rcb-chat-tooltip ${a ? \"rcb-tooltip-show\" : \"rcb-tooltip-hide\"}`,\n onClick: () => s(!0),\n children: [\n /* @__PURE__ */ l(\"span\", { children: (v = e.tooltip) == null ? void 0 : v.text }),\n /* @__PURE__ */ l(\"span\", { className: \"rcb-chat-tooltip-tail\", style: f })\n ]\n }\n ) });\n}, Wt = ({\n id: A,\n content: e,\n timeout: o\n}) => {\n var w, f;\n const { settings: t } = R(), { styles: n } = X(), [s] = G({\n toastPromptStyle: { ...n.toastPromptStyle },\n toastPromptHoveredStyle: { ...n.toastPromptHoveredStyle }\n }), { dismissToast: a } = CA(), [r, c] = G(!1), i = {\n color: (w = t.general) == null ? void 0 : w.primaryColor,\n borderColor: (f = t.general) == null ? void 0 : f.primaryColor,\n ...s.toastPromptHoveredStyle\n };\n return Z(() => {\n if (o) {\n const g = setTimeout(() => {\n a(A);\n }, o);\n return () => clearTimeout(g);\n }\n }, [A, a, o]), typeof e == \"string\" ? /* @__PURE__ */ l(\n \"div\",\n {\n onMouseEnter: () => {\n c(!0);\n },\n onMouseLeave: () => {\n c(!1);\n },\n style: r ? i : s.toastPromptStyle,\n onMouseDown: async (g) => {\n var B;\n (B = t.toast) != null && B.dismissOnClick && (g.preventDefault(), await a(A));\n },\n className: \"rcb-toast-prompt\",\n children: e\n }\n ) : /* @__PURE__ */ l(oA, { children: e });\n}, Kt = () => {\n var t, n, s, a, r, c, i, u, d, w, f, g;\n const { styles: A } = X(), { toasts: e } = Ee(), o = {\n bottom: `calc(${typeof ((t = A.footerStyle) == null ? void 0 : t.height) == \"number\" ? `${(n = A.footerStyle) == null ? void 0 : n.height}px` : ((s = A.footerStyle) == null ? void 0 : s.height) ?? \"50px\"} + ${typeof ((a = A.chatInputContainerStyle) == null ? void 0 : a.height) == \"number\" ? `${(r = A.chatInputContainerStyle) == null ? void 0 : r.height}px` : ((c = A.chatInputContainerStyle) == null ? void 0 : c.height) ?? \"70px\"} + 20px)`,\n width: 300,\n minWidth: `calc(${typeof ((i = A.chatWindowStyle) == null ? void 0 : i.width) == \"number\" ? `${(u = A.chatWindowStyle) == null ? void 0 : u.width}px` : ((d = A.chatWindowStyle) == null ? void 0 : d.width) ?? \"375px\"} / 2)`,\n maxWidth: `calc(${typeof ((w = A.chatWindowStyle) == null ? void 0 : w.width) == \"number\" ? `${(f = A.chatWindowStyle) == null ? void 0 : f.width}px` : ((g = A.chatWindowStyle) == null ? void 0 : g.width) ?? \"375px\"} - 50px)`,\n ...A.toastPromptContainerStyle\n };\n return /* @__PURE__ */ l(\"div\", { className: \"rcb-toast-prompt-container\", style: o, children: e.map((B) => /* @__PURE__ */ l(\n Wt,\n {\n id: B.id,\n content: B.content,\n timeout: B.timeout\n },\n B.id\n )) });\n}, ye = ({\n file: A,\n fileType: e,\n fileUrl: o\n}) => {\n var a, r, c;\n const { settings: t } = R(), { styles: n } = X(), s = {\n backgroundColor: (a = t.general) == null ? void 0 : a.primaryColor,\n maxWidth: (r = t.userBubble) != null && r.showAvatar ? \"65%\" : \"70%\",\n ...n.mediaDisplayContainerStyle\n };\n return /* @__PURE__ */ l(oA, { children: o ? /* @__PURE__ */ W(oA, { children: [\n e === \"image\" && o && /* @__PURE__ */ l(\n \"div\",\n {\n style: s,\n className: \"rcb-media-display-image-container rcb-media-entry\",\n \"data-testid\": \"media-display-image-container\",\n children: /* @__PURE__ */ l(\"img\", { src: o, alt: \"Image Display\", className: \"rcb-media-display-image\" })\n }\n ),\n e === \"video\" && o && /* @__PURE__ */ l(\n \"div\",\n {\n style: s,\n className: \"rcb-media-display-video-container rcb-media-entry\",\n \"data-testid\": \"media-display-video-container\",\n children: /* @__PURE__ */ W(\"video\", { controls: !0, className: \"rcb-media-display-video\", children: [\n /* @__PURE__ */ l(\"source\", { src: o, type: A.type }),\n \"Your browser does not support the video tag.\"\n ] })\n }\n ),\n e === \"audio\" && o && /* @__PURE__ */ W(\n \"audio\",\n {\n \"data-testid\": \"media-display-audio-container\",\n style: {\n maxWidth: (c = t.userBubble) != null && c.showAvatar ? \"65%\" : \"70%\"\n },\n controls: !0,\n className: \"rcb-media-display-audio rcb-media-entry\",\n children: [\n /* @__PURE__ */ l(\"source\", { src: o, type: A.type }),\n \"Your browser does not support the audio tag.\"\n ]\n }\n )\n ] }) : /* @__PURE__ */ l(oA, {}) });\n}, Ce = async (A) => {\n if (!A)\n return { fileType: null, fileUrl: null };\n const e = A.type.split(\"/\")[0];\n if (![\"image\", \"video\", \"audio\"].includes(e))\n return { fileType: null, fileUrl: null };\n try {\n const o = await new Promise((t, n) => {\n const s = new FileReader();\n s.onload = () => t(s.result), s.onerror = () => n(new Error(\"File reading failed\")), s.readAsDataURL(A);\n });\n return { fileType: e, fileUrl: o };\n } catch (o) {\n return console.error(o), { fileType: null, fileUrl: null };\n }\n}, Vt = () => {\n var L, N, T, C, m, b;\n const { settings: A } = R(), { styles: e } = X(), {\n injectMessage: o,\n simulateStreamMessage: t,\n streamMessage: n,\n removeMessage: s,\n endStreamMessage: a\n } = EA(), { getCurrPath: r, getPrevPath: c, goToPath: i, blockAllowsAttachment: u } = SA(), { flowRef: d, inputRef: w } = $(), f = d.current, { showToast: g, dismissToast: B } = CA(), { dispatchRcbEvent: E } = iA(), { toggleChatWindow: Q } = sA(), { setTextAreaValue: y } = yA(), { handleSubmitText: v } = mA(), h = {\n cursor: `url(\"${(L = A.general) == null ? void 0 : L.actionDisabledIcon}\"), auto`,\n ...e.fileAttachmentButtonStyle,\n // by default inherit the base style\n ...e.fileAttachmentButtonDisabledStyle\n }, P = {\n backgroundImage: `url(${(N = A.fileAttachment) == null ? void 0 : N.icon})`,\n fill: \"#a6a6a6\",\n ...e.fileAttachmentIconStyle\n }, D = {\n backgroundImage: `url(${(T = A.fileAttachment) == null ? void 0 : T.icon})`,\n fill: \"#a6a6a6\",\n ...e.fileAttachmentIconStyle,\n // by default inherit the base style\n ...e.fileAttachmentIconDisabledStyle\n }, S = async (M) => {\n var F, V, U, z;\n const O = M.target.files;\n if (!O)\n return;\n const p = Array.from(O);\n if (M.target.value = \"\", (F = A.event) != null && F.rcbUserUploadFile && (await E(H.USER_UPLOAD_FILE, { files: p })).defaultPrevented)\n return;\n const k = r();\n if (!k)\n return;\n const K = f[k];\n if (!K)\n return;\n const j = K.file;\n if (j != null) {\n const Y = [];\n for (let AA = 0; AA < p.length; AA++) {\n if (Y.push(p[AA].name), !((V = A.fileAttachment) != null && V.showMediaDisplay))\n continue;\n const q = await Ce(p[AA]);\n !q.fileType || !q.fileUrl || await o(/* @__PURE__ */ l(\n ye,\n {\n file: p[AA],\n fileType: q.fileType,\n fileUrl: q.fileUrl\n }\n ), \"USER\");\n }\n await v(\"📄 \" + Y.join(\", \"), (U = A.fileAttachment) == null ? void 0 : U.sendFileName), await j({\n userInput: (z = w.current) == null ? void 0 : z.value,\n prevPath: c(),\n currPath: r(),\n goToPath: i,\n setTextAreaValue: y,\n injectMessage: o,\n simulateStreamMessage: t,\n streamMessage: n,\n removeMessage: s,\n endStreamMessage: a,\n toggleChatWindow: Q,\n showToast: g,\n dismissToast: B,\n files: p\n });\n }\n }, I = () => {\n var O, p;\n const M = u ? (O = A.fileAttachment) == null ? void 0 : O.icon : (p = A.fileAttachment) == null ? void 0 : p.iconDisabled;\n return !M || typeof M == \"string\" ? /* @__PURE__ */ l(\n \"span\",\n {\n className: u ? \"rcb-attach-icon-enabled\" : \"rcb-attach-icon-disabled\",\n style: u ? P : D\n }\n ) : M && /* @__PURE__ */ l(\"span\", { className: u ? \"rcb-attach-icon-enabled\" : \"rcb-attach-icon-disabled\", children: /* @__PURE__ */ l(\n M,\n {\n style: u ? P : D\n }\n ) });\n };\n return /* @__PURE__ */ W(\n \"label\",\n {\n \"aria-label\": ((C = A.ariaLabel) == null ? void 0 : C.fileAttachmentButton) ?? \"upload file\",\n role: \"button\",\n className: u ? \"rcb-attach-button-enabled\" : \"rcb-attach-button-disabled\",\n style: u ? { ...e.fileAttachmentButtonStyle } : h,\n children: [\n /* @__PURE__ */ l(\n \"input\",\n {\n className: \"rcb-attach-input\",\n role: \"file\",\n type: \"file\",\n onChange: S,\n multiple: (m = A.fileAttachment) == null ? void 0 : m.multiple,\n accept: (b = A.fileAttachment) == null ? void 0 : b.accept,\n disabled: !u\n }\n ),\n I()\n ]\n }\n );\n}, qt = () => {\n var E, Q, y, v, h, P;\n const { settings: A } = R(), { styles: e } = X(), { syncedTextAreaDisabledRef: o } = tA(), { inputRef: t } = $(), { textAreaDisabled: n, setTextAreaValue: s } = yA(), a = eA(null), r = eA(null), [c, i] = G(!1), u = {\n cursor: `url(\"${(E = A.general) == null ? void 0 : E.actionDisabledIcon}\"), auto`,\n ...e.emojiButtonStyle,\n // by default inherit the base style\n ...e.emojiButtonDisabledStyle\n }, d = {\n backgroundImage: `url(${(Q = A.emoji) == null ? void 0 : Q.icon})`,\n fill: \"#a6a6a6\",\n ...e.emojiIconStyle\n }, w = {\n backgroundImage: `url(${(y = A.emoji) == null ? void 0 : y.icon})`,\n fill: \"#a6a6a6\",\n ...e.emojiIconStyle,\n // by default inherit the base style\n ...e.emojiIconDisabledStyle\n };\n Z(() => {\n const D = (L) => {\n const N = L.composedPath();\n a.current && !N.includes(a.current) && r.current && !N.includes(r.current) && i(!1);\n }, S = () => {\n if (a.current && r.current) {\n const L = r.current.getBoundingClientRect(), N = a.current.offsetHeight, T = L.top - N - 8;\n a.current.style.left = `${L.left}px`, a.current.style.top = `${T}px`;\n }\n }, I = () => {\n S();\n };\n return document.addEventListener(\"mousedown\", D), window.addEventListener(\"resize\", I), () => {\n document.removeEventListener(\"mousedown\", D), window.removeEventListener(\"resize\", I);\n };\n }, []);\n const f = (D, S) => {\n D.preventDefault(), t.current && (s(t.current.value + S), setTimeout(() => {\n const I = t.current;\n if (I) {\n I.focus();\n const L = I.value.length;\n I.setSelectionRange(L, L);\n }\n }, 50)), i(!1);\n }, g = (D) => {\n D.preventDefault(), o.current ? i(!1) : i((S) => !S);\n }, B = () => {\n var S, I;\n const D = n ? (S = A.emoji) == null ? void 0 : S.iconDisabled : (I = A.emoji) == null ? void 0 : I.icon;\n return !D || typeof D == \"string\" ? /* @__PURE__ */ l(\n \"span\",\n {\n className: `${n ? \"rcb-emoji-icon-disabled\" : \"rcb-emoji-icon-enabled\"}`,\n style: n ? w : d\n }\n ) : D && /* @__PURE__ */ l(\"span\", { className: `${n ? \"rcb-emoji-icon-disabled\" : \"rcb-emoji-icon-enabled\"}`, children: /* @__PURE__ */ l(D, { style: n ? w : d }) });\n };\n return /* @__PURE__ */ W(oA, { children: [\n /* @__PURE__ */ l(\n \"div\",\n {\n \"aria-label\": ((v = A.ariaLabel) == null ? void 0 : v.emojiButton) ?? \"emoji picker\",\n role: \"button\",\n ref: r,\n className: `${n ? \"rcb-emoji-button-disabled\" : \"rcb-emoji-button-enabled\"}`,\n style: n ? u : { ...e.emojiButtonStyle },\n onMouseDown: g,\n children: B()\n }\n ),\n c && /* @__PURE__ */ l(\"div\", { className: \"rcb-emoji-button-popup\", ref: a, children: (P = (h = A.emoji) == null ? void 0 : h.list) == null ? void 0 : P.map((D, S) => /* @__PURE__ */ l(\n \"span\",\n {\n className: \"rcb-emoji\",\n onMouseDown: (I) => f(I, D),\n children: D\n },\n S\n )) })\n ] });\n}, Jt = () => {\n var r, c, i;\n const { settings: A } = R(), { styles: e } = X(), { audioToggledOn: o, toggleAudio: t } = KA(), n = {\n backgroundImage: `url(${(r = A.audio) == null ? void 0 : r.icon})`,\n fill: \"#fcec3d\",\n ...e.audioIconStyle\n }, s = {\n backgroundImage: `url(${(c = A.audio) == null ? void 0 : c.iconDisabled})`,\n fill: \"#e8eaed\",\n ...e.audioIconStyle,\n // by default inherit the base style\n ...e.audioIconDisabledStyle\n }, a = () => {\n var d, w;\n const u = o ? (d = A.audio) == null ? void 0 : d.icon : (w = A.audio) == null ? void 0 : w.iconDisabled;\n return !u || typeof u == \"string\" ? /* @__PURE__ */ l(\n \"span\",\n {\n className: \"rcb-audio-icon\",\n \"data-testid\": \"rcb-audio-icon\",\n style: o ? n : s\n }\n ) : u && /* @__PURE__ */ l(\"span\", { className: \"rcb-audio-icon\", \"data-testid\": \"rcb-audio-icon\", children: /* @__PURE__ */ l(\n u,\n {\n style: o ? n : s,\n \"data-testid\": \"rcb-audio-icon-svg\"\n }\n ) });\n };\n return /* @__PURE__ */ l(\n \"div\",\n {\n \"aria-label\": ((i = A.ariaLabel) == null ? void 0 : i.audioButton) ?? \"toggle audio\",\n role: \"button\",\n onMouseDown: async (u) => {\n u.preventDefault(), await t();\n },\n style: o ? { ...e.audioButtonStyle } : { ...e.audioButtonStyle, ...e.audioButtonDisabledStyle },\n children: a()\n }\n );\n}, Zt = () => {\n var s, a;\n const { settings: A } = R(), { styles: e } = X(), { toggleChatWindow: o } = sA(), t = {\n backgroundImage: `url(${(s = A.header) == null ? void 0 : s.closeChatIcon})`,\n fill: \"#e8eaed\",\n stroke: \"#e8eaed\",\n ...e.closeChatIconStyle\n }, n = () => {\n var c;\n const r = (c = A.header) == null ? void 0 : c.closeChatIcon;\n return !r || typeof r == \"string\" ? /* @__PURE__ */ l(\n \"span\",\n {\n className: \"rcb-close-chat-icon\",\n \"data-testid\": \"rcb-close-chat-icon\",\n style: t\n }\n ) : r && /* @__PURE__ */ l(\"span\", { className: \"rcb-close-chat-icon\", \"data-testid\": \"rcb-close-chat-icon\", children: /* @__PURE__ */ l(r, { style: t }) });\n };\n return /* @__PURE__ */ l(\n \"div\",\n {\n \"aria-label\": ((a = A.ariaLabel) == null ? void 0 : a.closeChatButton) ?? \"close chat\",\n role: \"button\",\n onMouseDown: (r) => {\n r.stopPropagation(), o(!1);\n },\n style: { ...e.closeChatButtonStyle },\n children: n()\n }\n );\n}, _t = () => {\n const { notificationsToggledOn: A, toggleNotifications: e, playNotificationSound: o } = WA();\n return {\n notificationsToggledOn: A,\n toggleNotifications: e,\n playNotificationSound: o\n };\n}, $t = () => {\n var r, c, i;\n const { settings: A } = R(), { styles: e } = X(), { notificationsToggledOn: o, toggleNotifications: t } = _t(), n = {\n backgroundImage: `url(${(r = A.notification) == null ? void 0 : r.icon})`,\n fill: \"#fcec3d\",\n ...e.notificationIconStyle\n }, s = {\n backgroundImage: `url(${(c = A.notification) == null ? void 0 : c.iconDisabled})`,\n fill: \"#e8eaed\",\n ...e.notificationIconStyle,\n // by default inherit the base style\n ...e.notificationIconDisabledStyle\n }, a = () => {\n var d, w;\n const u = o ? (d = A.notification) == null ? void 0 : d.icon : (w = A.notification) == null ? void 0 : w.iconDisabled;\n return !u || typeof u == \"string\" ? /* @__PURE__ */ l(\n \"span\",\n {\n className: \"rcb-notification-icon\",\n \"data-testid\": \"rcb-notification-icon\",\n style: o ? n : s\n }\n ) : u && /* @__PURE__ */ l(\"span\", { className: \"rcb-notification-icon\", \"data-testid\": \"rcb-notification-icon\", children: /* @__PURE__ */ l(\n u,\n {\n style: o ? n : s,\n \"data-testid\": \"rcb-notification-icon-svg\"\n }\n ) });\n };\n return /* @__PURE__ */ l(\n \"div\",\n {\n \"aria-label\": ((i = A.ariaLabel) == null ? void 0 : i.notificationButton) ?? \"toggle notifications\",\n role: \"button\",\n onMouseDown: async (u) => {\n u.preventDefault(), await t();\n },\n style: o ? { ...e.notificationButtonStyle } : { ...e.notificationButtonStyle, ...e.notificationButtonDisabledStyle },\n children: a()\n }\n );\n}, Ao = () => {\n var y, v, h;\n const { settings: A } = R(), { styles: e } = X(), { injectMessage: o } = EA(), { inputRef: t } = $(), { voiceToggledOn: n, toggleVoice: s } = xA(), { setInputLength: a, setTextAreaValue: r, textAreaDisabled: c } = yA(), { handleSubmitText: i } = mA(), u = eA([]), [d, w] = G(!1);\n Z(() => {\n var P;\n (P = A.voice) != null && P.sendAsAudio ? (E(), u.current = []) : i();\n }, [d]), Z(() => {\n n ? Nt(\n A,\n s,\n B,\n r,\n a,\n u,\n t\n ) : qA();\n }, [n]);\n const f = {\n backgroundImage: `url(${(y = A.voice) == null ? void 0 : y.icon})`,\n fill: \"#9aa0a6\",\n ...e.voiceIconStyle\n }, g = {\n backgroundImage: `url(${(v = A.voice) == null ? void 0 : v.iconDisabled})`,\n fill: \"#9aa0a6\",\n ...e.voiceIconStyle,\n // by default inherit the base style\n ...e.voiceIconDisabledStyle\n }, B = () => {\n w((P) => !P);\n }, E = async () => {\n const P = new Blob(u.current, { type: \"audio/wav\" }), D = new File([P], \"voice-input.wav\", { type: \"audio/wav\" }), S = await Ce(D);\n !S.fileType || !S.fileUrl || await o(/* @__PURE__ */ l(\n ye,\n {\n file: D,\n fileType: S.fileType,\n fileUrl: S.fileUrl\n }\n ), \"USER\");\n }, Q = () => {\n var D, S;\n const P = n ? (D = A.voice) == null ? void 0 : D.icon : (S = A.voice) == null ? void 0 : S.iconDisabled;\n return !P || typeof P == \"string\" ? /* @__PURE__ */ l(\n \"span\",\n {\n className: `rcb-voice-icon${n && !c ? \"-on\" : \"\"}`,\n \"data-testid\": \"rcb-voice-icon\",\n style: n && !c ? f : g\n }\n ) : P && /* @__PURE__ */ l(\"span\", { className: `rcb-voice-icon ${n && !c ? \"on\" : \"\"}`, children: /* @__PURE__ */ l(P, { style: n && !c ? f : g }) });\n };\n return /* @__PURE__ */ l(\n \"div\",\n {\n \"aria-label\": ((h = A.ariaLabel) == null ? void 0 : h.voiceButton) ?? \"toggle voice\",\n role: \"button\",\n onMouseDown: async (P) => {\n P.preventDefault(), !c && await s();\n },\n style: n && !c ? { ...e.voiceButtonStyle } : { ...e.voiceButtonStyle, ...e.voiceButtonDisabledStyle },\n className: n && !c ? \"rcb-voice-button-enabled\" : \"rcb-voice-button-disabled\",\n children: Q()\n }\n );\n}, eo = () => {\n var B, E, Q, y, v, h, P, D;\n const { settings: A } = R(), { styles: e } = X(), { textAreaDisabled: o } = tA(), [t, n] = G(!1), { handleSubmitText: s } = mA(), a = {\n backgroundColor: (B = A.general) == null ? void 0 : B.primaryColor,\n ...e.sendButtonStyle\n }, r = {\n cursor: `url(\"${(E = A.general) == null ? void 0 : E.actionDisabledIcon}\"), auto`,\n backgroundColor: (Q = A.general) == null ? void 0 : Q.primaryColor,\n ...e.sendButtonStyle,\n // by default inherit the base style\n ...e.sendButtonDisabledStyle\n }, c = {\n backgroundColor: (y = A.general) == null ? void 0 : y.secondaryColor,\n ...e.sendButtonStyle,\n // by default inherit the base style\n ...e.sendButtonHoveredStyle\n }, i = {\n backgroundImage: `url(${(v = A.chatInput) == null ? void 0 : v.sendButtonIcon})`,\n fill: \"#fff\",\n ...e.sendIconStyle\n }, u = {\n backgroundImage: `url(${(h = A.chatInput) == null ? void 0 : h.sendButtonIcon})`,\n fill: \"#fff\",\n ...e.sendIconStyle,\n // by default inherit the base style\n ...e.sendIconDisabledStyle\n }, d = {\n backgroundImage: `url(${(P = A.chatInput) == null ? void 0 : P.sendButtonIcon})`,\n fill: \"#fff\",\n ...e.sendIconStyle,\n // by default inherit the base style\n ...e.sendIconHoveredStyle\n }, w = () => {\n n(!0);\n }, f = () => {\n n(!1);\n }, g = () => {\n var I;\n const S = (I = A.chatInput) == null ? void 0 : I.sendButtonIcon;\n return !S || typeof S == \"string\" ? /* @__PURE__ */ l(\n \"span\",\n {\n className: \"rcb-send-icon\",\n \"data-testid\": \"rcb-send-icon\",\n style: o ? u : t ? d : i\n }\n ) : S && /* @__PURE__ */ l(\"span\", { className: \"rcb-send-icon\", \"data-testid\": \"rcb-send-icon\", children: /* @__PURE__ */ l(\n S,\n {\n style: o ? u : t ? d : i\n }\n ) });\n };\n return /* @__PURE__ */ l(\n \"div\",\n {\n \"aria-label\": ((D = A.ariaLabel) == null ? void 0 : D.sendButton) ?? \"send message\",\n role: \"button\",\n onMouseEnter: w,\n onMouseLeave: f,\n onMouseDown: async (S) => {\n S == null || S.preventDefault(), !o && await s();\n },\n style: o ? r : t ? c : a,\n className: \"rcb-send-button\",\n children: g()\n }\n );\n}, to = (A) => Object.values(_).includes(A), oo = (A, e) => {\n var c, i, u, d, w, f, g, B, E;\n const o = {\n [_.AUDIO_BUTTON]: (c = A.audio) == null ? void 0 : c.disabled,\n [_.CLOSE_CHAT_BUTTON]: (i = A.general) == null ? void 0 : i.embedded,\n [_.EMOJI_PICKER_BUTTON]: (u = A.emoji) == null ? void 0 : u.disabled,\n [_.FILE_ATTACHMENT_BUTTON]: (d = A.fileAttachment) == null ? void 0 : d.disabled,\n [_.NOTIFICATION_BUTTON]: (w = A.notification) == null ? void 0 : w.disabled,\n [_.SEND_MESSAGE_BUTTON]: !1,\n [_.VOICE_MESSAGE_BUTTON]: (f = A.voice) == null ? void 0 : f.disabled\n }, t = {}, n = (Q) => Q ? Q.map((y) => {\n if (typeof y == \"string\") {\n if (to(y) && !o[y]) {\n if (t[y])\n return t[y];\n const v = e[y];\n if (typeof v == \"function\") {\n const h = v();\n return t[y] = h, h;\n }\n return null;\n }\n return null;\n }\n return y;\n }).filter((y) => y !== null) : [], s = n((g = A.header) == null ? void 0 : g.buttons), a = n((B = A.chatInput) == null ? void 0 : B.buttons), r = n((E = A.footer) == null ? void 0 : E.buttons);\n return { header: s, chatInput: a, footer: r };\n}, no = () => /* @__PURE__ */ l(Jt, {}), so = () => /* @__PURE__ */ l($t, {}), ro = () => /* @__PURE__ */ l(Zt, {}), ao = () => /* @__PURE__ */ l(Ao, {}), co = () => /* @__PURE__ */ l(eo, {}), io = () => /* @__PURE__ */ l(Vt, {}), lo = () => /* @__PURE__ */ l(qt, {}), uo = () => {\n const { settings: A } = R(), e = dA(() => ({\n [_.CLOSE_CHAT_BUTTON]: () => ro(),\n [_.AUDIO_BUTTON]: () => no(),\n [_.NOTIFICATION_BUTTON]: () => so(),\n [_.EMOJI_PICKER_BUTTON]: () => lo(),\n [_.FILE_ATTACHMENT_BUTTON]: () => io(),\n [_.SEND_MESSAGE_BUTTON]: () => co(),\n [_.VOICE_MESSAGE_BUTTON]: () => ao()\n }), []), { header: o, chatInput: t, footer: n } = dA(() => oo(A, e), [A, e]), s = dA(() => o, [o]), a = dA(() => t, [t]), r = dA(() => n, [n]);\n return { headerButtons: s, chatInputButtons: a, footerButtons: r };\n}, JA = () => {\n const { settings: A } = R(), { styles: e } = X(), { setSyncedMessages: o, syncedMessagesRef: t } = XA(), {\n isLoadingChatHistory: n,\n setIsLoadingChatHistory: s,\n hasChatHistoryLoaded: a,\n setHasChatHistoryLoaded: r\n } = tA(), { chatBodyRef: c } = $(), { dispatchRcbEvent: i } = iA(), u = x(async () => {\n var f, g;\n const d = bA();\n if (!d || (f = A.event) != null && f.rcbLoadChatHistory && (await i(H.LOAD_CHAT_HISTORY, {})).defaultPrevented)\n return;\n s(!0);\n const w = ((g = c.current) == null ? void 0 : g.scrollHeight) ?? 0;\n It(\n A,\n e,\n d,\n o,\n t,\n c,\n w,\n s,\n r\n );\n }, [\n A,\n e,\n i,\n t,\n c,\n s,\n r\n ]);\n return { isLoadingChatHistory: n, setIsLoadingChatHistory: s, hasChatHistoryLoaded: a, showChatHistory: u };\n}, fo = () => {\n var c, i, u;\n const { settings: A } = R(), { styles: e } = X(), { showChatHistory: o } = JA(), [t, n] = G(!1), s = {\n color: (c = A.general) == null ? void 0 : c.primaryColor,\n borderColor: (i = A.general) == null ? void 0 : i.primaryColor,\n ...e.chatHistoryButtonStyle,\n // by default inherit the base style\n ...e.chatHistoryButtonHoveredStyle\n };\n return /* @__PURE__ */ l(\"div\", { className: \"rcb-view-history-container\", children: /* @__PURE__ */ l(\n \"div\",\n {\n onMouseEnter: () => {\n n(!0);\n },\n onMouseLeave: () => {\n n(!1);\n },\n style: t ? s : { ...e.chatHistoryButtonStyle },\n onMouseDown: (d) => {\n d.preventDefault(), o();\n },\n className: \"rcb-view-history-button\",\n role: \"button\",\n tabIndex: 0,\n children: /* @__PURE__ */ l(\"p\", { children: (u = A.chatHistory) == null ? void 0 : u.viewChatHistoryButtonText })\n }\n ) });\n}, me = () => {\n var a;\n const { settings: A } = R(), { hasInteractedPage: e, setHasInteractedPage: o, hasFlowStarted: t, setHasFlowStarted: n } = tA(), s = x(() => {\n var c;\n if (o(!0), !t && ((c = A.general) == null ? void 0 : c.flowStartTrigger) === \"ON_PAGE_INTERACT\" && n(!0), !window.SpeechSynthesisUtterance) {\n console.info(\"Speech Synthesis API is not supported in this environment.\");\n return;\n }\n const r = new window.SpeechSynthesisUtterance();\n r.text = \"\", r.onend = () => {\n window.removeEventListener(\"click\", s), window.removeEventListener(\"keydown\", s), window.removeEventListener(\"touchstart\", s);\n }, window.speechSynthesis.speak(r);\n }, [t, (a = A.general) == null ? void 0 : a.flowStartTrigger]);\n return {\n hasInteractedPage: e,\n handleFirstInteraction: s\n };\n}, wo = () => {\n var S, I, L, N;\n const A = OA(), { settings: e } = R(), {\n replaceMessages: o\n } = EA(), {\n isBotTyping: t,\n isChatWindowOpen: n,\n setUnreadCount: s,\n setSyncedIsChatWindowOpen: a,\n setSyncedTextAreaDisabled: r,\n setSyncedAudioToggledOn: c,\n setSyncedVoiceToggledOn: i,\n setSyncedIsScrolling: u,\n syncedIsScrollingRef: d,\n syncedIsChatWindowOpenRef: w\n } = tA(), { chatBodyRef: f } = $(), { viewportHeight: g, setViewportHeight: B, setViewportWidth: E, scrollToBottom: Q } = sA(), { setUpNotifications: y } = WA(), { handleFirstInteraction: v } = me(), { showChatHistory: h } = JA(), P = eA(0), D = eA(!1);\n Z(() => (window.addEventListener(\"click\", v), window.addEventListener(\"keydown\", v), window.addEventListener(\"touchstart\", v), () => {\n window.removeEventListener(\"click\", v), window.removeEventListener(\"keydown\", v), window.removeEventListener(\"touchstart\", v);\n }), []), Z(() => {\n const T = f.current;\n if (!T)\n return;\n const C = () => {\n D.current || (D.current = !0, requestAnimationFrame(() => {\n var p, k;\n if (!T)\n return;\n const { scrollTop: m, clientHeight: b, scrollHeight: M } = T, O = m + b < M - (((p = e.chatWindow) == null ? void 0 : p.messagePromptOffset) ?? 30);\n u(O), d.current = O, O || (m + b >= M - 1 && (T.scrollTop = M - b - 1), (w.current || (k = e.general) != null && k.embedded) && s(0)), D.current = !1;\n }));\n };\n return T.addEventListener(\"wheel\", C, { passive: !0 }), T.addEventListener(\"touchmove\", C, { passive: !0 }), () => {\n T.removeEventListener(\"wheel\", C), T.removeEventListener(\"touchmove\", C);\n };\n }, []), Z(() => {\n var T, C, m;\n r((T = e.chatInput) == null ? void 0 : T.disabled), a((C = e.chatWindow) == null ? void 0 : C.defaultOpen), c((m = e.audio) == null ? void 0 : m.defaultToggledOn), setTimeout(() => {\n var b;\n i((b = e.voice) == null ? void 0 : b.defaultToggledOn);\n }, 1);\n }, []), Z(() => {\n var T;\n (T = e.notification) != null && T.disabled || y();\n }, [(S = e.notification) == null ? void 0 : S.disabled]), Z(() => {\n !d.current && (f != null && f.current) && Q();\n }, [t]), Z(() => {\n var T, C;\n if ((T = e.chatHistory) != null && T.disabled)\n pt();\n else if (zA(e), bA().length > 0) {\n const b = gA(/* @__PURE__ */ l(fo, {}), \"SYSTEM\");\n o([b]), (C = e.chatHistory) != null && C.autoLoad && h();\n }\n }, [(I = e.chatHistory) == null ? void 0 : I.storageKey, (L = e.chatHistory) == null ? void 0 : L.maxEntries, (N = e.chatHistory) == null ? void 0 : N.disabled]), Z(() => {\n var T;\n A || (T = e.general) != null && T.embedded || !navigator.virtualKeyboard || (navigator.virtualKeyboard.overlaysContent = !0, navigator.virtualKeyboard.addEventListener(\"geometrychange\", (C) => {\n if (!C.target)\n return;\n const { x: m, y: b, width: M, height: O } = C.target.boundingRect;\n m == 0 && b == 0 && M == 0 && O == 0 ? (setTimeout(() => {\n var p;\n B((p = window.visualViewport) == null ? void 0 : p.height);\n }, 101), setTimeout(() => {\n var p, k;\n g != ((p = window.visualViewport) == null ? void 0 : p.height) && B((k = window.visualViewport) == null ? void 0 : k.height);\n }, 1001)) : setTimeout(() => {\n var p;\n B(((p = window.visualViewport) == null ? void 0 : p.height) - O);\n }, 101);\n }));\n }, [A]), Z(() => {\n var M, O, p, k;\n if (A)\n return;\n n && (B((M = window.visualViewport) == null ? void 0 : M.height), E((O = window.visualViewport) == null ? void 0 : O.width));\n const T = () => window.scrollTo({ top: 0, left: 0, behavior: \"auto\" }), C = () => P.current = window.scrollY, m = () => {\n var K, j;\n B((K = window.visualViewport) == null ? void 0 : K.height), E((j = window.visualViewport) == null ? void 0 : j.width);\n }, b = () => {\n var K;\n window.removeEventListener(\"scroll\", T), window.removeEventListener(\"scroll\", C), (K = window.visualViewport) == null || K.removeEventListener(\"resize\", m);\n };\n return n ? (b(), document.body.style.position = \"fixed\", window.addEventListener(\"scroll\", T), (p = window.visualViewport) == null || p.addEventListener(\"resize\", m)) : (document.body.style.position = \"static\", b(), window.scrollTo({ top: P.current, left: 0, behavior: \"auto\" }), window.addEventListener(\"scroll\", C), (k = window.visualViewport) == null || k.removeEventListener(\"resize\", m)), b;\n }, [n, A]);\n}, ZA = {\n DEFAULT_URL: \"https://cdn.jsdelivr.net/gh/react-chatbotify/community-themes/themes\",\n DEFAULT_EXPIRATION: \"2592000\",\n CACHE_KEY_PREFIX: \"RCB_THEME_CACHE_DATA\"\n}, go = ZA.DEFAULT_URL, Bo = ZA.DEFAULT_EXPIRATION, Qe = ZA.CACHE_KEY_PREFIX, vo = (A, e, o) => {\n const t = localStorage.getItem(`${Qe}_${A}_${e}`);\n if (!t)\n return null;\n try {\n const n = JSON.parse(t), s = (/* @__PURE__ */ new Date()).getTime(), a = Math.floor(s / 1e3);\n return n.cacheDate + o >= a ? n : null;\n } catch (n) {\n return console.error(`Unable to fetch cache for ${A}`, n), null;\n }\n}, ho = (A, e, o, t, n) => {\n const s = (/* @__PURE__ */ new Date()).getTime(), a = Math.floor(s / 1e3), r = {\n settings: o,\n inlineStyles: t,\n cssStylesText: n,\n cacheDate: a\n };\n localStorage.setItem(`${Qe}_${A}_${e}`, JSON.stringify(r));\n}, Po = async (A, e) => {\n const o = `${e}/${A}/meta.json`;\n try {\n const t = await fetch(o);\n return t.ok ? (await t.json()).version : (console.error(`Failed to fetch meta.json from ${o}`), null);\n } catch (t) {\n return console.error(`Failed to fetch meta.json from ${o}`, t), null;\n }\n}, ne = async (A, e) => {\n const { id: o, version: t, baseUrl: n = go, cacheDuration: s = Bo } = e, a = t || await Po(o, n);\n if (!a)\n return console.error(`Unable to find version for theme: ${o}`), { settings: {}, inlineStyles: {}, cssStylesText: \"\" };\n const r = vo(o, a, s);\n if (r) {\n const y = se(A, r.cssStylesText);\n return { settings: r.settings, inlineStyles: r.inlineStyles, cssStylesText: y };\n }\n const c = `${n}/${o}/${a}/styles.css`, i = `${n}/${o}/${a}/settings.json`, u = `${n}/${o}/${a}/styles.json`;\n let d = \"\";\n const w = await fetch(c);\n w.ok ? d = await w.text() : console.info(`Could not fetch styles.css from ${c}`);\n const f = await fetch(i);\n let g = {};\n f.ok ? g = await f.json() : console.info(`Could not fetch settings.json from ${i}`);\n const B = await fetch(u);\n let E = {};\n B.ok ? E = await B.json() : console.info(`Could not fetch styles.json from ${u}`), ho(o, a, g, E, d);\n const Q = se(A, d);\n return { settings: g, inlineStyles: E, cssStylesText: Q };\n}, se = (A, e) => e.split(new RegExp(\"(?<=})\")).map((t) => {\n const n = t.trim();\n return n.startsWith(\"@import\") || n.startsWith(\"@keyframes\") || n.startsWith(\"@media\") ? n : n ? `#${A} ${n}` : \"\";\n}).join(`\n`), Do = () => LA(re), Eo = () => LA(ce), yo = async (A, e, o, t) => {\n var r, c;\n let n = Do(), s = Eo(), a = \"\";\n if (t != null)\n if (Array.isArray(t))\n for (const i of t) {\n const u = await ne(A, i);\n n = fA(u.settings, n), s = fA(u.inlineStyles, s), a += u.cssStylesText;\n }\n else {\n const i = await ne(A, t);\n n = fA(i.settings, n), s = fA(i.inlineStyles, s), a += i.cssStylesText;\n }\n return e != null && (n = fA(e, n)), o != null && (s = fA(o, s)), ((r = n.chatInput) == null ? void 0 : r.botDelay) != null && ((c = n.chatInput) == null ? void 0 : c.botDelay) < 500 && (n.chatInput.botDelay = 500), { settings: n, inlineStyles: s, cssStylesText: a };\n}, fA = (A, e) => {\n const o = [{ source: A, target: e }];\n for (; o.length; ) {\n const t = o.pop();\n if (t == null)\n continue;\n const { source: n, target: s } = t;\n for (const a of Object.keys(n)) {\n const r = a;\n if (GA(n[r]))\n s[r] = n[r];\n else if (typeof n[r] == \"object\" && n[r] !== null && !Array.isArray(n[r]))\n (typeof s[r] != \"object\" || s[r] === null) && (s[r] = {}), o.push({ source: n[r], target: s[r] });\n else\n try {\n s[r] = n[r];\n } catch {\n }\n }\n }\n return e;\n}, LA = (A) => {\n if (A === null || typeof A != \"object\")\n return A;\n const e = Array.isArray(A) ? [] : {}, o = [{ source: A, target: e }], t = /* @__PURE__ */ new WeakMap();\n for (t.set(A, e); o.length; ) {\n const n = o.pop();\n if (n == null)\n continue;\n const { source: s, target: a } = n;\n for (const r in s)\n if (Object.prototype.hasOwnProperty.call(s, r)) {\n const c = s[r];\n if (c && typeof c == \"object\")\n if (t.has(c))\n a[r] = t.get(c);\n else {\n const i = Array.isArray(c) ? [] : {};\n t.set(c, i), a[r] = i, o.push({ source: c, target: i });\n }\n else\n a[r] = c;\n }\n }\n return e;\n}, be = () => {\n const { settings: A, setSyncedSettings: e, syncedSettingsRef: o } = R(), t = x((s) => {\n !s || Object.keys(s).length === 0 || e(LA(fA(s, A)));\n }, [A]), n = x((s) => {\n const a = typeof s == \"function\" ? s(o.current) : s;\n e(a);\n }, [o]);\n return {\n settings: A,\n replaceSettings: n,\n updateSettings: t\n };\n}, pe = () => {\n const { styles: A, setSyncedStyles: e, syncedStylesRef: o } = X(), t = x((s) => {\n !s || Object.keys(s).length === 0 || e(LA(fA(s, A)));\n }, [A]), n = x((s) => {\n const a = typeof s == \"function\" ? s(o.current) : s;\n e(a);\n }, [o]);\n return {\n styles: A,\n replaceStyles: n,\n updateStyles: t\n };\n}, Co = (A) => {\n const { updateSettings: e } = be(), { updateStyles: o } = pe(), t = A == null ? void 0 : A.map((n) => n());\n Z(() => {\n let n = {}, s = {};\n t == null || t.forEach((a) => {\n a != null && a.settings && Object.keys(a == null ? void 0 : a.settings).length !== 0 && (n = fA(a.settings, n)), a != null && a.styles && Object.keys(a == null ? void 0 : a.styles).length !== 0 && (s = fA(a.styles, s));\n }), e(n), o(s);\n }, []);\n}, mo = ({\n plugins: A,\n slots: e\n}) => {\n var y, v;\n const o = OA(), { settings: t } = R(), { styles: n } = X(), { hasFlowStarted: s, setHasFlowStarted: a } = tA(), { inputRef: r } = $(), {\n viewportHeight: c,\n viewportWidth: i,\n isChatWindowOpen: u\n } = sA(), { goToPath: d } = SA(), { headerButtons: w, chatInputButtons: f, footerButtons: g } = uo();\n wo(), Co(A), Z(() => {\n var h;\n (s || ((h = t.general) == null ? void 0 : h.flowStartTrigger) === \"ON_LOAD\") && d(\"start\");\n }, [s, (y = t.general) == null ? void 0 : y.flowStartTrigger]);\n const B = dA(() => {\n var P;\n const h = \"rcb-chatbot-global \";\n return (P = t.general) != null && P.embedded ? h + \"rcb-window-embedded\" : u ? h + \"rcb-window-open\" : h + \"rcb-window-close\";\n }, [t, u]), E = () => {\n var h, P;\n return !o && !((h = t.general) != null && h.embedded) ? {\n ...n.chatWindowStyle,\n borderRadius: \"0px\",\n left: \"0px\",\n right: \"auto\",\n top: \"0px\",\n bottom: \"auto\",\n width: `${i}px`,\n height: `${c}px`,\n zIndex: 1e4\n } : (P = t.general) != null && P.embedded ? { ...n.chatWindowStyle } : {\n ...n.chatWindowStyle,\n zIndex: 1e4\n };\n };\n return /* @__PURE__ */ l(oA, { children: (() => {\n var h, P;\n return o && ((h = t.device) == null ? void 0 : h.desktopEnabled) || !o && ((P = t.device) == null ? void 0 : P.mobileEnabled);\n })() && /* @__PURE__ */ W(\n \"div\",\n {\n onMouseDown: (h) => {\n var P, D;\n !s && ((P = t.general) == null ? void 0 : P.flowStartTrigger) === \"ON_CHATBOT_INTERACT\" && a(!0), o ? (D = r.current) == null || D.blur() : h == null || h.preventDefault();\n },\n className: B,\n children: [\n /* @__PURE__ */ l(Xt, {}),\n /* @__PURE__ */ l(Yt, {}),\n u && !o && !((v = t.general) != null && v.embedded) && /* @__PURE__ */ W(oA, { children: [\n /* @__PURE__ */ l(\"style\", { children: `\n\t\t\t\t\t\t\t\t\thtml {\n\t\t\t\t\t\t\t\t\t\toverflow: hidden !important;\n\t\t\t\t\t\t\t\t\t\ttouch-action: none !important;\n\t\t\t\t\t\t\t\t\t\tscroll-behavior: auto !important;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t` }),\n /* @__PURE__ */ l(\n \"div\",\n {\n style: {\n position: \"fixed\",\n top: 0,\n left: 0,\n width: \"100%\",\n height: \"100%\",\n backgroundColor: \"#fff\",\n zIndex: 9999\n }\n }\n )\n ] }),\n /* @__PURE__ */ l(\"div\", { style: E(), className: \"rcb-chat-window\", children: (() => {\n var I, L, N;\n const h = (e == null ? void 0 : e.chatBotHeader) || et, P = (e == null ? void 0 : e.chatBotBody) || ut, D = (e == null ? void 0 : e.chatBotInput) || zt, S = (e == null ? void 0 : e.chatBotFooter) || Gt;\n return /* @__PURE__ */ W(oA, { children: [\n ((I = t.general) == null ? void 0 : I.showHeader) && /* @__PURE__ */ l(h, { buttons: w }),\n /* @__PURE__ */ l(P, {}),\n /* @__PURE__ */ l(Kt, {}),\n ((L = t.general) == null ? void 0 : L.showInputRow) && /* @__PURE__ */ l(D, { buttons: f }),\n ((N = t.general) == null ? void 0 : N.showFooter) && /* @__PURE__ */ l(S, { buttons: g })\n ] });\n })() })\n ]\n }\n ) });\n}, Se = vA(void 0), Ie = () => hA(Se), Qo = ({\n children: A\n}) => {\n var w;\n const e = eA(\"\"), o = eA({}), [t, n, s] = nA({}), [a, r, c] = nA({}), [i, u] = G(!1);\n Z(() => {\n u(!0);\n }, []);\n const d = async (f, g, B, E, Q, y) => {\n e.current = f, o.current = g;\n const v = await yo(f, B, E, Q);\n y.current && (y.current.textContent = v.cssStylesText), n(v.settings), r(v.inlineStyles);\n };\n return i ? /* @__PURE__ */ l(\"div\", { style: { fontFamily: (w = t.general) == null ? void 0 : w.fontFamily }, children: /* @__PURE__ */ l(Se.Provider, { value: { loadConfig: d }, children: /* @__PURE__ */ l(\n $e,\n {\n settings: t,\n setSyncedSettings: n,\n syncedSettingsRef: s,\n children: /* @__PURE__ */ l(\n At,\n {\n styles: a,\n setSyncedStyles: r,\n syncedStylesRef: c,\n children: /* @__PURE__ */ l(jt, { children: /* @__PURE__ */ l(tt, { botIdRef: e, flowRef: o, children: /* @__PURE__ */ l(st, { children: /* @__PURE__ */ l(ot, { settings: t, children: /* @__PURE__ */ l(at, { children: A }) }) }) }) })\n }\n )\n }\n ) }) }) : null;\n}, bo = ({\n id: A,\n flow: e,\n settings: o,\n styles: t,\n themes: n,\n plugins: s,\n setConfigLoaded: a,\n styleRootRef: r\n}) => {\n const c = dA(() => A, []), i = Ie(), { flowRef: u } = $();\n u && u.current !== e && (u.current = e);\n const d = async () => {\n var w, f;\n (w = o.event) != null && w.rcbPreLoadChatBot && (await UA(\n H.PRE_LOAD_CHATBOT,\n { botId: c, currPath: null, prevPath: null },\n {\n flow: e,\n settings: o,\n styles: t,\n themes: n,\n plugins: s\n }\n )).defaultPrevented || (i != null && i.loadConfig && (await i.loadConfig(c, e, o, t, n, r), a(!0)), (f = o.event) != null && f.rcbPostLoadChatBot && UA(\n H.POST_LOAD_CHATBOT,\n { botId: c, currPath: null, prevPath: null },\n {\n flow: e,\n settings: o,\n styles: t,\n themes: n,\n plugins: s\n }\n ));\n };\n return Z(() => {\n d();\n }, [n]), null;\n}, FA = [\"Quickstart\", \"API Docs\", \"Examples\", \"Github\", \"Discord\"], po = {\n start: {\n message: \"Hello, I am Tan Jin 👋! Welcome to React ChatBotify, I'm excited that you are using our chatbot 😊!\",\n transition: { duration: 1e3 },\n chatDisabled: !0,\n path: \"show_options\"\n },\n show_options: {\n message: \"It looks like you have not set up a conversation flow yet. No worries! Here are a few helpful things you can check out to get started:\",\n options: FA,\n path: \"process_options\"\n },\n prompt_again: {\n message: \"Do you need any other help?\",\n options: FA,\n path: \"process_options\"\n },\n unknown_input: {\n message: \"Sorry, I do not understand your message 😢! If you require further assistance, you may click on the Github option and open an issue there or visit our discord.\",\n options: FA,\n path: \"process_options\"\n },\n process_options: {\n transition: { duration: 0 },\n path: (A) => {\n let e = \"\";\n switch (A.userInput) {\n case \"Quickstart\":\n e = \"https://react-chatbotify.com/docs/introduction/quickstart/\";\n break;\n case \"API Docs\":\n e = \"https://react-chatbotify.com/docs/api/bot_options\";\n break;\n case \"Examples\":\n e = \"https://react-chatbotify.com/docs/examples/basic_form\";\n break;\n case \"Github\":\n e = \"https://github.com/react-chatbotify/react-chatbotify/\";\n break;\n case \"Discord\":\n e = \"https://discord.gg/6R4DK4G5Zh\";\n break;\n default:\n return \"unknown_input\";\n }\n return A.injectMessage(\"Sit tight! I'll send you right there!\"), setTimeout(() => {\n window.open(e);\n }, 1e3), \"repeat\";\n }\n },\n repeat: {\n transition: { duration: 3e3 },\n path: \"prompt_again\"\n }\n}, Oo = ({\n id: A,\n flow: e,\n settings: o,\n styles: t,\n themes: n,\n plugins: s,\n slots: a\n}) => {\n const r = dA(() => A || \"rcb-\" + MA(), []), c = !e || Object.keys(e).length === 0 ? po : e, i = o || {}, u = t || {}, d = s || [], [w, f] = G(!1), g = Ie(), B = eA(null), [E, Q] = G(n || []);\n Z(() => {\n n && Q(n);\n }, [n]);\n const y = () => /* @__PURE__ */ W(oA, { children: [\n /* @__PURE__ */ l(\n bo,\n {\n styleRootRef: B,\n id: r,\n flow: c,\n settings: i,\n styles: u,\n themes: E,\n plugins: d,\n setConfigLoaded: f\n }\n ),\n w && /* @__PURE__ */ l(mo, { plugins: s, slots: a })\n ] });\n return g == null ? /* @__PURE__ */ W(Qo, { children: [\n /* @__PURE__ */ l(\"style\", { ref: B }),\n /* @__PURE__ */ l(\"div\", { id: r, children: y() })\n ] }) : /* @__PURE__ */ W(oA, { children: [\n /* @__PURE__ */ l(\"style\", { ref: B }),\n /* @__PURE__ */ l(\"div\", { id: r, children: y() })\n ] });\n}, Lo = () => {\n const { audioToggledOn: A, speakAudio: e, toggleAudio: o } = KA();\n return {\n audioToggledOn: A,\n speakAudio: e,\n toggleAudio: o\n };\n}, So = () => {\n const { botIdRef: A } = $();\n return {\n getBotId: x(() => A.current, [A])\n };\n}, Io = () => {\n const { getBotId: A } = So();\n return {\n getBotId: A\n };\n}, No = () => {\n const {\n isChatWindowOpen: A,\n toggleChatWindow: e,\n toggleIsBotTyping: o,\n scrollToBottom: t,\n getIsChatBotVisible: n\n } = sA();\n return {\n isChatWindowOpen: A,\n toggleChatWindow: e,\n toggleIsBotTyping: o,\n scrollToBottom: t,\n getIsChatBotVisible: n\n };\n}, Ro = () => {\n const { hasInteractedPage: A } = me();\n return {\n hasInteractedPage: A\n };\n}, To = () => {\n const { replaceMessages: A } = EA(), { replacePaths: e, goToPath: o } = SA(), { replaceToasts: t } = CA(), { hasFlowStarted: n } = tA(), { flowRef: s, timeoutIdRef: a } = $(), { settings: r } = R(), c = x(async () => {\n zA(r), a.current && clearTimeout(a.current), A([]), t([]), e([]), await o(\"start\");\n }, [a, r, A, t, e, zA, o]), i = x(() => (s == null ? void 0 : s.current) ?? {}, [s]);\n return {\n hasFlowStarted: n,\n restartFlow: c,\n getFlow: i\n };\n}, Fo = () => {\n const { hasFlowStarted: A, restartFlow: e, getFlow: o } = To();\n return {\n hasFlowStarted: A,\n restartFlow: e,\n getFlow: o\n };\n}, Uo = () => {\n const {\n endStreamMessage: A,\n injectMessage: e,\n removeMessage: o,\n simulateStreamMessage: t,\n streamMessage: n,\n messages: s,\n replaceMessages: a,\n getMessages: r\n } = EA();\n return {\n endStreamMessage: A,\n injectMessage: e,\n removeMessage: o,\n simulateStreamMessage: t,\n streamMessage: n,\n messages: s,\n replaceMessages: a,\n getMessages: r\n };\n}, jo = (A, e) => {\n const { getBotId: o } = Io();\n Z(() => {\n const t = (n) => {\n n.detail.botId === o() && e(n);\n };\n return window.addEventListener(A, t), () => {\n window.removeEventListener(A, t);\n };\n }, [o, A, e]);\n}, zo = () => {\n const {\n getCurrPath: A,\n getPrevPath: e,\n goToPath: o,\n paths: t,\n replacePaths: n\n } = SA();\n return {\n getCurrPath: A,\n getPrevPath: e,\n goToPath: o,\n paths: t,\n replacePaths: n\n };\n}, Go = () => {\n const { settings: A, replaceSettings: e, updateSettings: o } = be();\n return {\n settings: A,\n replaceSettings: e,\n updateSettings: o\n };\n}, Yo = () => {\n const { styles: A, replaceStyles: e, updateStyles: o } = pe();\n return {\n styles: A,\n replaceStyles: e,\n updateStyles: o\n };\n}, Xo = () => {\n const {\n textAreaDisabled: A,\n toggleTextAreaDisabled: e,\n textAreaSensitiveMode: o,\n toggleTextAreaSensitiveMode: t,\n getTextAreaValue: n,\n setTextAreaValue: s,\n focusTextArea: a,\n blurTextArea: r\n } = yA();\n return {\n textAreaDisabled: A,\n toggleTextAreaDisabled: e,\n textAreaSensitiveMode: o,\n toggleTextAreaSensitiveMode: t,\n getTextAreaValue: n,\n setTextAreaValue: s,\n focusTextArea: a,\n blurTextArea: r\n };\n}, Wo = () => {\n const { showToast: A, dismissToast: e, toasts: o, replaceToasts: t } = CA();\n return {\n showToast: A,\n dismissToast: e,\n toasts: o,\n replaceToasts: t\n };\n}, Ko = () => {\n const { voiceToggledOn: A, toggleVoice: e } = xA();\n return {\n voiceToggledOn: A,\n toggleVoice: e\n };\n}, Vo = () => {\n const { showChatHistory: A, hasChatHistoryLoaded: e } = JA();\n return {\n showChatHistory: A,\n getHistoryMessages: bA,\n setHistoryMessages: jA,\n hasChatHistoryLoaded: e\n };\n};\nexport {\n _ as Button,\n Qo as ChatBotProvider,\n H as RcbEvent,\n Oo as default,\n Do as getDefaultSettings,\n Eo as getDefaultStyles,\n Lo as useAudio,\n Io as useBotId,\n Vo as useChatHistory,\n No as useChatWindow,\n Ro as useFirstInteraction,\n Fo as useFlow,\n Uo as useMessages,\n _t as useNotifications,\n jo as useOnRcbEvent,\n zo as usePaths,\n Go as useSettings,\n Yo as useStyles,\n Xo as useTextArea,\n Wo as useToasts,\n Ko as useVoice\n};\n","import A, { useEffect as X } from \"react\";\nimport { useFlow as Q, useMessages as Z, useSettings as ee, useChatHistory as te, useOnRcbEvent as L, RcbEvent as P } from \"react-chatbotify\";\nimport { jsx as W } from \"react/jsx-runtime\";\nconst d = 1, G = 2, U = 4, b = 8, H = 16, R = 32, N = 64, D = {\n a: {\n content: d | b,\n self: !1,\n type: d | b | R | N\n },\n address: {\n invalid: [\"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\", \"address\", \"article\", \"aside\", \"section\", \"div\", \"header\", \"footer\"],\n self: !1\n },\n audio: {\n children: [\"track\", \"source\"]\n },\n br: {\n type: d | b,\n void: !0\n },\n body: {\n content: d | G | U | b | H | R | N\n },\n button: {\n content: b,\n type: d | b | R | N\n },\n caption: {\n content: d,\n parent: [\"table\"]\n },\n col: {\n parent: [\"colgroup\"],\n void: !0\n },\n colgroup: {\n children: [\"col\"],\n parent: [\"table\"]\n },\n details: {\n children: [\"summary\"],\n type: d | R | N\n },\n dd: {\n content: d,\n parent: [\"dl\"]\n },\n dl: {\n children: [\"dt\", \"dd\"],\n type: d\n },\n dt: {\n content: d,\n invalid: [\"footer\", \"header\"],\n parent: [\"dl\"]\n },\n figcaption: {\n content: d,\n parent: [\"figure\"]\n },\n footer: {\n invalid: [\"footer\", \"header\"]\n },\n header: {\n invalid: [\"footer\", \"header\"]\n },\n hr: {\n type: d,\n void: !0\n },\n img: {\n void: !0\n },\n li: {\n content: d,\n parent: [\"ul\", \"ol\", \"menu\"]\n },\n main: {\n self: !1\n },\n ol: {\n children: [\"li\"],\n type: d\n },\n picture: {\n children: [\"source\", \"img\"],\n type: d | b | H\n },\n rb: {\n parent: [\"ruby\", \"rtc\"]\n },\n rp: {\n parent: [\"ruby\", \"rtc\"]\n },\n rt: {\n content: b,\n parent: [\"ruby\", \"rtc\"]\n },\n rtc: {\n content: b,\n parent: [\"ruby\"]\n },\n ruby: {\n children: [\"rb\", \"rp\", \"rt\", \"rtc\"]\n },\n source: {\n parent: [\"audio\", \"video\", \"picture\"],\n void: !0\n },\n summary: {\n content: b,\n parent: [\"details\"]\n },\n table: {\n children: [\"caption\", \"colgroup\", \"thead\", \"tbody\", \"tfoot\", \"tr\"],\n type: d\n },\n tbody: {\n parent: [\"table\"],\n children: [\"tr\"]\n },\n td: {\n content: d,\n parent: [\"tr\"]\n },\n tfoot: {\n parent: [\"table\"],\n children: [\"tr\"]\n },\n th: {\n content: d,\n parent: [\"tr\"]\n },\n thead: {\n parent: [\"table\"],\n children: [\"tr\"]\n },\n tr: {\n parent: [\"table\", \"tbody\", \"thead\", \"tfoot\"],\n children: [\"th\", \"td\"]\n },\n track: {\n parent: [\"audio\", \"video\"],\n void: !0\n },\n ul: {\n children: [\"li\"],\n type: d\n },\n video: {\n children: [\"track\", \"source\"]\n },\n wbr: {\n type: d | b,\n void: !0\n }\n};\nfunction S(a) {\n return (e) => {\n D[e] = {\n ...a,\n ...D[e]\n };\n };\n}\n[\"address\", \"main\", \"div\", \"figure\", \"p\", \"pre\"].forEach(S({\n content: d,\n type: d | N\n}));\n[\"abbr\", \"b\", \"bdi\", \"bdo\", \"cite\", \"code\", \"data\", \"dfn\", \"em\", \"i\", \"kbd\", \"mark\", \"q\", \"ruby\", \"samp\", \"strong\", \"sub\", \"sup\", \"time\", \"u\", \"var\"].forEach(S({\n content: b,\n type: d | b | N\n}));\n[\"p\", \"pre\"].forEach(S({\n content: b,\n type: d | N\n}));\n[\"s\", \"small\", \"span\", \"del\", \"ins\"].forEach(S({\n content: b,\n type: d | b\n}));\n[\"article\", \"aside\", \"footer\", \"header\", \"nav\", \"section\", \"blockquote\"].forEach(S({\n content: d,\n type: d | G | N\n}));\n[\"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\"].forEach(S({\n content: b,\n type: d | U | N\n}));\n[\"audio\", \"canvas\", \"iframe\", \"img\", \"video\"].forEach(S({\n type: d | b | H | N\n}));\nconst F = Object.freeze(D), re = [\"applet\", \"base\", \"body\", \"command\", \"embed\", \"frame\", \"frameset\", \"head\", \"html\", \"link\", \"meta\", \"noscript\", \"object\", \"script\", \"style\", \"title\"], ne = Object.keys(F).filter((a) => a !== \"canvas\" && a !== \"iframe\"), h = 1, se = 2, O = 3, x = 4, q = 5, j = Object.freeze({\n alt: h,\n cite: h,\n class: h,\n colspan: O,\n controls: x,\n datetime: h,\n default: x,\n disabled: x,\n dir: h,\n height: h,\n href: h,\n id: h,\n kind: h,\n label: h,\n lang: h,\n loading: h,\n loop: x,\n media: h,\n muted: x,\n poster: h,\n rel: h,\n role: h,\n rowspan: O,\n scope: h,\n sizes: h,\n span: O,\n start: O,\n style: q,\n src: h,\n srclang: h,\n srcset: h,\n tabindex: h,\n target: h,\n title: h,\n type: h,\n width: h\n}), ae = Object.freeze({\n class: \"className\",\n colspan: \"colSpan\",\n datetime: \"dateTime\",\n rowspan: \"rowSpan\",\n srclang: \"srcLang\",\n srcset: \"srcSet\",\n tabindex: \"tabIndex\"\n});\nfunction k() {\n return k = Object.assign || function(a) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t)\n Object.prototype.hasOwnProperty.call(t, r) && (a[r] = t[r]);\n }\n return a;\n }, k.apply(this, arguments);\n}\nfunction z({\n attributes: a = {},\n className: e,\n children: t = null,\n selfClose: r = !1,\n tagName: n\n}) {\n const s = n;\n return r ? /* @__PURE__ */ A.createElement(s, k({\n className: e\n }, a)) : /* @__PURE__ */ A.createElement(s, k({\n className: e\n }, a), t);\n}\nclass oe {\n /**\n * Filter and clean an HTML attribute value.\n */\n attribute(e, t) {\n return t;\n }\n /**\n * Filter and clean an HTML node.\n */\n node(e, t) {\n return t;\n }\n}\nfunction ie(a) {\n return a && a.__esModule && Object.prototype.hasOwnProperty.call(a, \"default\") ? a.default : a;\n}\n/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */\nvar C, V;\nfunction ce() {\n if (V) return C;\n V = 1;\n var a = /[\"'&<>]/;\n C = e;\n function e(t) {\n var r = \"\" + t, n = a.exec(r);\n if (!n)\n return r;\n var s, c = \"\", u = 0, o = 0;\n for (u = n.index; u < r.length; u++) {\n switch (r.charCodeAt(u)) {\n case 34:\n s = \"&quot;\";\n break;\n case 38:\n s = \"&amp;\";\n break;\n case 39:\n s = \"&#39;\";\n break;\n case 60:\n s = \"&lt;\";\n break;\n case 62:\n s = \"&gt;\";\n break;\n default:\n continue;\n }\n o !== u && (c += r.substring(o, u)), o = u + 1, c += s;\n }\n return o !== u ? c + r.substring(o, u) : c;\n }\n return C;\n}\nvar le = ce();\nconst ue = /* @__PURE__ */ ie(le);\nfunction w(a, e, t) {\n return e in a ? Object.defineProperty(a, e, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : a[e] = t, a;\n}\nconst de = /(url|image|image-set)\\(/i;\nclass pe extends oe {\n attribute(e, t) {\n return e === \"style\" && Object.keys(t).forEach((r) => {\n String(t[r]).match(de) && delete t[r];\n }), t;\n }\n}\nconst $ = 1, fe = 3, he = /^<(!doctype|(html|head|body)(\\s|>))/i, me = /^(aria-|data-|\\w+:)/iu, ge = /{{{(\\w+)\\/?}}}/;\nfunction be() {\n if (!(typeof window > \"u\" || typeof document > \"u\"))\n return document.implementation.createHTMLDocument(\"Interweave\");\n}\nclass K {\n constructor(e, t = {}, r = [], n = []) {\n var s;\n if (w(this, \"allowed\", void 0), w(this, \"banned\", void 0), w(this, \"blocked\", void 0), w(this, \"container\", void 0), w(this, \"content\", []), w(this, \"props\", void 0), w(this, \"matchers\", void 0), w(this, \"filters\", void 0), w(this, \"keyIndex\", void 0), process.env.NODE_ENV !== \"production\" && e && typeof e != \"string\")\n throw new TypeError(\"Interweave parser requires a valid string.\");\n this.props = t, this.matchers = r, this.filters = [...n, new pe()], this.keyIndex = -1, this.container = this.createContainer(e || \"\"), this.allowed = new Set((s = t.allowList) !== null && s !== void 0 ? s : ne), this.banned = new Set(re), this.blocked = new Set(t.blockList);\n }\n /**\n * Loop through and apply all registered attribute filters.\n */\n applyAttributeFilters(e, t) {\n return this.filters.reduce((r, n) => r !== null && typeof n.attribute == \"function\" ? n.attribute(e, r) : r, t);\n }\n /**\n * Loop through and apply all registered node filters.\n */\n applyNodeFilters(e, t) {\n return this.filters.reduce((r, n) => r !== null && typeof n.node == \"function\" ? n.node(e, r) : r, t);\n }\n /**\n * Loop through and apply all registered matchers to the string.\n * If a match is found, create a React element, and build a new array.\n * This array allows React to interpolate and render accordingly.\n */\n applyMatchers(e, t) {\n const r = {}, {\n props: n\n } = this;\n let s = e, c = 0, u = null;\n return this.matchers.forEach((o) => {\n const m = o.asTag().toLowerCase(), f = this.getTagConfig(m);\n if (n[o.inverseName] || !this.isTagAllowed(m) || !this.canRenderChild(t, f))\n return;\n let i = \"\";\n for (; s && (u = o.match(s)); ) {\n const {\n index: l,\n length: p,\n match: g,\n valid: E,\n void: T,\n ...y\n } = u, _ = o.propName + String(c);\n l > 0 && (i += s.slice(0, l)), E ? (i += T ? `{{{${_}/}}}` : `{{{${_}}}}${g}{{{/${_}}}}`, this.keyIndex += 1, c += 1, r[_] = {\n children: g,\n matcher: o,\n props: {\n ...n,\n ...y,\n key: this.keyIndex\n }\n }) : i += g, o.greedy ? (s = i + s.slice(l + p), i = \"\") : s = s.slice(l + (p || g.length));\n }\n o.greedy || (s = i + s);\n }), c === 0 ? e : this.replaceTokens(s, r);\n }\n /**\n * Determine whether the child can be rendered within the parent.\n */\n canRenderChild(e, t) {\n return !e.tagName || !t.tagName || e.void ? !1 : e.children.length > 0 ? e.children.includes(t.tagName) : e.invalid.length > 0 && e.invalid.includes(t.tagName) ? !1 : t.parent.length > 0 ? t.parent.includes(e.tagName) : !e.self && e.tagName === t.tagName ? !1 : !!(e && e.content & t.type);\n }\n /**\n * Convert line breaks in a string to HTML `<br/>` tags.\n * If the string contains HTML, we should not convert anything,\n * as line breaks should be handled by `<br/>`s in the markup itself.\n */\n convertLineBreaks(e) {\n const {\n noHtml: t,\n disableLineBreaks: r\n } = this.props;\n if (t || r || e.match(/<((?:\\/[ a-z]+)|(?:[ a-z]+\\/))>/gi))\n return e;\n let n = e.replace(/\\r\\n/g, `\n`);\n return n = n.replace(/\\n{3,}/g, `\n\n\n`), n = n.replace(/\\n/g, \"<br/>\"), n;\n }\n /**\n * Create a detached HTML document that allows for easy HTML\n * parsing while not triggering scripts or loading external\n * resources.\n */\n createContainer(e) {\n var t;\n const n = (typeof global < \"u\" && global.INTERWEAVE_SSR_POLYFILL || be)();\n if (!n)\n return;\n const s = (t = this.props.containerTagName) !== null && t !== void 0 ? t : \"body\", c = s === \"body\" || s === \"fragment\" ? n.body : n.createElement(s);\n if (e.match(he)) {\n if (process.env.NODE_ENV !== \"production\")\n throw new Error(\"HTML documents as Interweave content are not supported.\");\n } else\n c.innerHTML = this.convertLineBreaks(this.props.escapeHtml ? ue(e) : e);\n return c;\n }\n /**\n * Convert an elements attribute map to an object map.\n * Returns null if no attributes are defined.\n */\n extractAttributes(e) {\n const {\n allowAttributes: t\n } = this.props, r = {};\n let n = 0;\n return e.nodeType !== $ || !e.attributes || ([...e.attributes].forEach((s) => {\n const {\n name: c,\n value: u\n } = s, o = c.toLowerCase(), m = j[o] || j[c];\n if (!this.isSafe(e) || !o.match(me) && (!t && (!m || m === se) || o.startsWith(\"on\") || u.replace(/(\\s|\\0|&#x0([9AD]);)/, \"\").match(/(javascript|vbscript|livescript|xss):/i)))\n return;\n let f = o === \"style\" ? this.extractStyleAttribute(e) : u;\n m === x ? f = !0 : m === O ? f = Number.parseFloat(String(f)) : m !== q && (f = String(f)), r[ae[o] || o] = this.applyAttributeFilters(o, f), n += 1;\n }), n === 0) ? null : r;\n }\n /**\n * Extract the style attribute as an object and remove values that allow for attack vectors.\n */\n extractStyleAttribute(e) {\n const t = {};\n return Array.from(e.style).forEach((r) => {\n const n = e.style[r];\n (typeof n == \"string\" || typeof n == \"number\") && (t[r.replace(/-([a-z])/g, (s, c) => String(c).toUpperCase())] = n);\n }), t;\n }\n /**\n * Return configuration for a specific tag.\n */\n getTagConfig(e) {\n const t = {\n children: [],\n content: 0,\n invalid: [],\n parent: [],\n self: !0,\n tagName: \"\",\n type: 0,\n void: !1\n };\n return F[e] ? {\n ...t,\n ...F[e],\n tagName: e\n } : t;\n }\n /**\n * Verify that a node is safe from XSS and injection attacks.\n */\n isSafe(e) {\n if (typeof HTMLAnchorElement < \"u\" && e instanceof HTMLAnchorElement) {\n const t = e.getAttribute(\"href\");\n if (t != null && t.startsWith(\"#\"))\n return !0;\n const r = e.protocol.toLowerCase();\n return r === \":\" || r === \"http:\" || r === \"https:\" || r === \"mailto:\" || r === \"tel:\";\n }\n return !0;\n }\n /**\n * Verify that an HTML tag is allowed to render.\n */\n isTagAllowed(e) {\n return this.banned.has(e) || this.blocked.has(e) ? !1 : this.props.allowElements || this.allowed.has(e);\n }\n /**\n * Parse the markup by injecting it into a detached document,\n * while looping over all child nodes and generating an\n * array to interpolate into JSX.\n */\n parse() {\n return this.container ? this.parseNode(this.container, this.getTagConfig(this.container.nodeName.toLowerCase())) : [];\n }\n /**\n * Loop over the nodes children and generate a\n * list of text nodes and React elements.\n */\n parseNode(e, t) {\n const {\n noHtml: r,\n noHtmlExceptMatchers: n,\n allowElements: s,\n transform: c,\n transformOnlyAllowList: u\n } = this.props;\n let o = [], m = \"\";\n return [...e.childNodes].forEach((f) => {\n if (f.nodeType === $) {\n const l = f.nodeName.toLowerCase(), p = this.getTagConfig(l);\n m && (o.push(m), m = \"\");\n const g = this.applyNodeFilters(l, f);\n if (!g)\n return;\n let E;\n if (c && !(u && !this.isTagAllowed(l))) {\n this.keyIndex += 1;\n const T = this.keyIndex;\n E = this.parseNode(g, p);\n const y = c(g, E, p);\n if (y === null)\n return;\n if (typeof y < \"u\") {\n o.push(/* @__PURE__ */ A.cloneElement(y, {\n key: T\n }));\n return;\n }\n this.keyIndex = T - 1;\n }\n if (this.banned.has(l))\n return;\n if (!(r || n && l !== \"br\") && this.isTagAllowed(l) && (s || this.canRenderChild(t, p))) {\n var i;\n this.keyIndex += 1;\n const T = this.extractAttributes(g), y = {\n tagName: l\n };\n T && (y.attributes = T), p.void && (y.selfClose = p.void), o.push(/* @__PURE__ */ A.createElement(z, {\n ...y,\n key: this.keyIndex\n }, (i = E) !== null && i !== void 0 ? i : this.parseNode(g, p)));\n } else\n o = [...o, ...this.parseNode(g, p.tagName ? p : t)];\n } else if (f.nodeType === fe) {\n const l = r && !n ? f.textContent : (\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n this.applyMatchers(f.textContent || \"\", t)\n );\n Array.isArray(l) ? o = [...o, ...l] : m += l;\n }\n }), m && o.push(m), o;\n }\n /**\n * Deconstruct the string into an array, by replacing custom tokens with React elements,\n * so that React can render it correctly.\n */\n replaceTokens(e, t) {\n if (!e.includes(\"{{{\"))\n return e;\n const r = [];\n let n = e, s = null;\n for (; s = n.match(ge); ) {\n const [c, u] = s, o = s.index, m = c.includes(\"/\");\n if (process.env.NODE_ENV !== \"production\" && !t[u])\n throw new Error(`Token \"${u}\" found but no matching element to replace with.`);\n o > 0 && (r.push(n.slice(0, o)), n = n.slice(o));\n const {\n children: f,\n matcher: i,\n props: l\n } = t[u];\n let p;\n if (m)\n p = c.length, r.push(i.createElement(f, l));\n else {\n const g = n.match(new RegExp(`{{{/${u}}}}`));\n if (process.env.NODE_ENV !== \"production\" && !g)\n throw new Error(`Closing token missing for interpolated element \"${u}\".`);\n p = g.index + g[0].length, r.push(i.createElement(this.replaceTokens(n.slice(c.length, g.index), t), l));\n }\n n = n.slice(p);\n }\n return n.length > 0 && r.push(n), r.length === 0 ? \"\" : r.length === 1 && typeof r[0] == \"string\" ? r[0] : r;\n }\n}\nfunction ye(a) {\n var e;\n const {\n attributes: t,\n className: r,\n containerTagName: n,\n content: s,\n emptyContent: c,\n parsedContent: u,\n tagName: o,\n noWrap: m\n } = a, f = (e = n ?? o) !== null && e !== void 0 ? e : \"span\", i = f === \"fragment\" ? !0 : m;\n let l;\n if (u)\n l = u;\n else {\n const p = new K(s ?? \"\", a).parse();\n p.length > 0 && (l = p);\n }\n return l || (l = c), i ? /* @__PURE__ */ A.createElement(A.Fragment, null, l) : /* @__PURE__ */ A.createElement(z, {\n attributes: t,\n className: r,\n tagName: f\n }, l);\n}\nfunction Ee(a) {\n const {\n attributes: e,\n className: t,\n content: r = \"\",\n disableFilters: n = !1,\n disableMatchers: s = !1,\n emptyContent: c = null,\n filters: u = [],\n matchers: o = [],\n onAfterParse: m = null,\n onBeforeParse: f = null,\n tagName: i = \"span\",\n noWrap: l = !1,\n ...p\n } = a, g = s ? [] : o, E = n ? [] : u, T = f ? [f] : [], y = m ? [m] : [];\n g.forEach((v) => {\n v.onBeforeParse && T.push(v.onBeforeParse.bind(v)), v.onAfterParse && y.push(v.onAfterParse.bind(v));\n });\n const _ = T.reduce((v, M) => {\n const I = M(v, a);\n if (process.env.NODE_ENV !== \"production\" && typeof I != \"string\")\n throw new TypeError(\"Interweave `onBeforeParse` must return a valid HTML string.\");\n return I;\n }, r ?? \"\"), J = new K(_, p, g, E), B = y.reduce((v, M) => {\n const I = M(v, a);\n if (process.env.NODE_ENV !== \"production\" && !Array.isArray(I))\n throw new TypeError(\"Interweave `onAfterParse` must return an array of strings and React elements.\");\n return I;\n }, J.parse());\n return /* @__PURE__ */ A.createElement(ye, {\n attributes: e,\n className: t,\n containerTagName: a.containerTagName,\n emptyContent: c,\n noWrap: l,\n parsedContent: B.length === 0 ? void 0 : B,\n tagName: i\n });\n}\nconst Te = ({ children: a }) => /* @__PURE__ */ W(\"div\", { style: { whiteSpace: \"normal\" }, children: /* @__PURE__ */ W(Ee, { content: typeof a == \"string\" ? a : \"\" }) }), ve = {\n autoConfig: !0\n}, Y = (a, e, t) => {\n var n;\n if (!a.detail.currPath)\n return !1;\n const r = e[a.detail.currPath];\n return r ? ((n = r.renderHtml) == null ? void 0 : n.map((s) => s.toUpperCase()).includes(t)) ?? !1 : !1;\n}, Ne = (a) => {\n const e = [];\n let t = \"\", r = !1;\n for (let n = 0; n < a.length; n++) {\n const s = a[n];\n s === \"<\" ? r ? (e.push(t), t = s) : (r = !0, t = s) : s === \">\" ? (t += s, e.push(t), t = \"\", r = !1) : r ? t += s : e.push(s);\n }\n return t !== \"\" && e.push(t), e;\n}, we = (a) => typeof window.DOMParser < \"u\" ? new DOMParser().parseFromString(a, \"text/html\").body.textContent || \"\" : a.replace(/<\\/?[^>]+(>|$)/g, \"\"), Ae = (a) => {\n const { getFlow: e } = Q(), { messages: t, replaceMessages: r } = Z(), { settings: n } = ee(), { hasChatHistoryLoaded: s } = te(), c = { ...a, ...ve }, u = c.htmlComponent ? c.htmlComponent : Te;\n X(() => {\n var i, l;\n if (s) {\n const p = [...t];\n for (let g = 0; g < p.length && g < (((i = n.chatHistory) == null ? void 0 : i.maxEntries) ?? 30); g++) {\n const E = p[g];\n (l = E.tags) != null && l.includes(\"rcb-html-renderer-plugin:parsed\") && (E.contentWrapper = u);\n }\n r(p);\n }\n }, [s]);\n const o = async (i) => {\n var p;\n const l = (p = i.data.message) == null ? void 0 : p.sender.toUpperCase();\n typeof i.data.message.content == \"string\" && Y(i, e(), l) && (i.type === \"rcb-start-simulate-stream-message\" && (i.data.simulateStreamChunker = Ne), i.data.message.contentWrapper = u, i.data.message.tags || (i.data.message.tags = []), i.data.message.tags.push(\"rcb-html-renderer-plugin:parsed\"));\n }, m = async (i) => {\n Y(i, e(), \"BOT\") && (i.data.textToRead = we(i.data.textToRead));\n };\n L(P.PRE_INJECT_MESSAGE, o), L(P.CHUNK_STREAM_MESSAGE, o), L(P.START_STREAM_MESSAGE, o), L(P.START_SIMULATE_STREAM_MESSAGE, o), L(P.START_SPEAK_AUDIO, m);\n const f = {\n name: \"@rcb-plugins/html-renderer\"\n };\n return c != null && c.autoConfig && (f.settings = {\n event: {\n rcbPreInjectMessage: !0,\n rcbChunkStreamMessage: !0,\n rcbStartSimulateStreamMessage: !0,\n rcbStartStreamMessage: !0,\n rcbStartSpeakAudio: !0\n }\n }), f;\n}, Ie = (a) => () => Ae(a);\nexport {\n Ie as default\n};\n","import { useEffect as gr } from \"react\";\nimport { useFlow as yr, useMessages as xr, useSettings as kr, useChatHistory as br, useOnRcbEvent as Ue, RcbEvent as Ve } from \"react-chatbotify\";\nimport { jsxs as wr, jsx as ae, Fragment as Sr } from \"react/jsx-runtime\";\nfunction Cr(e, n) {\n const t = {};\n return (e[e.length - 1] === \"\" ? [...e, \"\"] : e).join(\n (t.padRight ? \" \" : \"\") + \",\" + (t.padLeft === !1 ? \"\" : \" \")\n ).trim();\n}\nconst Er = /^[$_\\p{ID_Start}][$_\\u{200C}\\u{200D}\\p{ID_Continue}]*$/u, Ir = /^[$_\\p{ID_Start}][-$_\\u{200C}\\u{200D}\\p{ID_Continue}]*$/u, Ar = {};\nfunction Hn(e, n) {\n return (Ar.jsx ? Ir : Er).test(e);\n}\nconst Tr = /[ \\t\\n\\f\\r]/g;\nfunction Pr(e) {\n return typeof e == \"object\" ? e.type === \"text\" ? Un(e.value) : !1 : Un(e);\n}\nfunction Un(e) {\n return e.replace(Tr, \"\") === \"\";\n}\nclass Be {\n /**\n * @constructor\n * @param {Properties} property\n * @param {Normal} normal\n * @param {string} [space]\n */\n constructor(n, t, r) {\n this.property = n, this.normal = t, r && (this.space = r);\n }\n}\nBe.prototype.property = {};\nBe.prototype.normal = {};\nBe.prototype.space = null;\nfunction Et(e, n) {\n const t = {}, r = {};\n let i = -1;\n for (; ++i < e.length; )\n Object.assign(t, e[i].property), Object.assign(r, e[i].normal);\n return new Be(t, r, n);\n}\nfunction hn(e) {\n return e.toLowerCase();\n}\nclass te {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n */\n constructor(n, t) {\n this.property = n, this.attribute = t;\n }\n}\nte.prototype.space = null;\nte.prototype.boolean = !1;\nte.prototype.booleanish = !1;\nte.prototype.overloadedBoolean = !1;\nte.prototype.number = !1;\nte.prototype.commaSeparated = !1;\nte.prototype.spaceSeparated = !1;\nte.prototype.commaOrSpaceSeparated = !1;\nte.prototype.mustUseProperty = !1;\nte.prototype.defined = !1;\nlet zr = 0;\nconst O = be(), $ = be(), It = be(), k = be(), U = be(), Ae = be(), Z = be();\nfunction be() {\n return 2 ** ++zr;\n}\nconst mn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n boolean: O,\n booleanish: $,\n commaOrSpaceSeparated: Z,\n commaSeparated: Ae,\n number: k,\n overloadedBoolean: It,\n spaceSeparated: U\n}, Symbol.toStringTag, { value: \"Module\" })), Ze = Object.keys(mn);\nclass Sn extends te {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n * @param {number|null} [mask]\n * @param {string} [space]\n */\n constructor(n, t, r, i) {\n let l = -1;\n if (super(n, t), Vn(this, \"space\", i), typeof r == \"number\")\n for (; ++l < Ze.length; ) {\n const o = Ze[l];\n Vn(this, Ze[l], (r & mn[o]) === mn[o]);\n }\n }\n}\nSn.prototype.defined = !0;\nfunction Vn(e, n, t) {\n t && (e[n] = t);\n}\nconst Lr = {}.hasOwnProperty;\nfunction Pe(e) {\n const n = {}, t = {};\n let r;\n for (r in e.properties)\n if (Lr.call(e.properties, r)) {\n const i = e.properties[r], l = new Sn(\n r,\n e.transform(e.attributes || {}, r),\n i,\n e.space\n );\n e.mustUseProperty && e.mustUseProperty.includes(r) && (l.mustUseProperty = !0), n[r] = l, t[hn(r)] = r, t[hn(l.attribute)] = r;\n }\n return new Be(n, t, e.space);\n}\nconst At = Pe({\n space: \"xlink\",\n transform(e, n) {\n return \"xlink:\" + n.slice(5).toLowerCase();\n },\n properties: {\n xLinkActuate: null,\n xLinkArcRole: null,\n xLinkHref: null,\n xLinkRole: null,\n xLinkShow: null,\n xLinkTitle: null,\n xLinkType: null\n }\n}), Tt = Pe({\n space: \"xml\",\n transform(e, n) {\n return \"xml:\" + n.slice(3).toLowerCase();\n },\n properties: { xmlLang: null, xmlBase: null, xmlSpace: null }\n});\nfunction Pt(e, n) {\n return n in e ? e[n] : n;\n}\nfunction zt(e, n) {\n return Pt(e, n.toLowerCase());\n}\nconst Lt = Pe({\n space: \"xmlns\",\n attributes: { xmlnsxlink: \"xmlns:xlink\" },\n transform: zt,\n properties: { xmlns: null, xmlnsXLink: null }\n}), vt = Pe({\n transform(e, n) {\n return n === \"role\" ? n : \"aria-\" + n.slice(4).toLowerCase();\n },\n properties: {\n ariaActiveDescendant: null,\n ariaAtomic: $,\n ariaAutoComplete: null,\n ariaBusy: $,\n ariaChecked: $,\n ariaColCount: k,\n ariaColIndex: k,\n ariaColSpan: k,\n ariaControls: U,\n ariaCurrent: null,\n ariaDescribedBy: U,\n ariaDetails: null,\n ariaDisabled: $,\n ariaDropEffect: U,\n ariaErrorMessage: null,\n ariaExpanded: $,\n ariaFlowTo: U,\n ariaGrabbed: $,\n ariaHasPopup: null,\n ariaHidden: $,\n ariaInvalid: null,\n ariaKeyShortcuts: null,\n ariaLabel: null,\n ariaLabelledBy: U,\n ariaLevel: k,\n ariaLive: null,\n ariaModal: $,\n ariaMultiLine: $,\n ariaMultiSelectable: $,\n ariaOrientation: null,\n ariaOwns: U,\n ariaPlaceholder: null,\n ariaPosInSet: k,\n ariaPressed: $,\n ariaReadOnly: $,\n ariaRelevant: null,\n ariaRequired: $,\n ariaRoleDescription: U,\n ariaRowCount: k,\n ariaRowIndex: k,\n ariaRowSpan: k,\n ariaSelected: $,\n ariaSetSize: k,\n ariaSort: null,\n ariaValueMax: k,\n ariaValueMin: k,\n ariaValueNow: k,\n ariaValueText: null,\n role: null\n }\n}), vr = Pe({\n space: \"html\",\n attributes: {\n acceptcharset: \"accept-charset\",\n classname: \"class\",\n htmlfor: \"for\",\n httpequiv: \"http-equiv\"\n },\n transform: zt,\n mustUseProperty: [\"checked\", \"multiple\", \"muted\", \"selected\"],\n properties: {\n // Standard Properties.\n abbr: null,\n accept: Ae,\n acceptCharset: U,\n accessKey: U,\n action: null,\n allow: null,\n allowFullScreen: O,\n allowPaymentRequest: O,\n allowUserMedia: O,\n alt: null,\n as: null,\n async: O,\n autoCapitalize: null,\n autoComplete: U,\n autoFocus: O,\n autoPlay: O,\n blocking: U,\n capture: null,\n charSet: null,\n checked: O,\n cite: null,\n className: U,\n cols: k,\n colSpan: null,\n content: null,\n contentEditable: $,\n controls: O,\n controlsList: U,\n coords: k | Ae,\n crossOrigin: null,\n data: null,\n dateTime: null,\n decoding: null,\n default: O,\n defer: O,\n dir: null,\n dirName: null,\n disabled: O,\n download: It,\n draggable: $,\n encType: null,\n enterKeyHint: null,\n fetchPriority: null,\n form: null,\n formAction: null,\n formEncType: null,\n formMethod: null,\n formNoValidate: O,\n formTarget: null,\n headers: U,\n height: k,\n hidden: O,\n high: k,\n href: null,\n hrefLang: null,\n htmlFor: U,\n httpEquiv: U,\n id: null,\n imageSizes: null,\n imageSrcSet: null,\n inert: O,\n inputMode: null,\n integrity: null,\n is: null,\n isMap: O,\n itemId: null,\n itemProp: U,\n itemRef: U,\n itemScope: O,\n itemType: U,\n kind: null,\n label: null,\n lang: null,\n language: null,\n list: null,\n loading: null,\n loop: O,\n low: k,\n manifest: null,\n max: null,\n maxLength: k,\n media: null,\n method: null,\n min: null,\n minLength: k,\n multiple: O,\n muted: O,\n name: null,\n nonce: null,\n noModule: O,\n noValidate: O,\n onAbort: null,\n onAfterPrint: null,\n onAuxClick: null,\n onBeforeMatch: null,\n onBeforePrint: null,\n onBeforeToggle: null,\n onBeforeUnload: null,\n onBlur: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onContextLost: null,\n onContextMenu: null,\n onContextRestored: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFormData: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLanguageChange: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadEnd: null,\n onLoadStart: null,\n onMessage: null,\n onMessageError: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRejectionHandled: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onScrollEnd: null,\n onSecurityPolicyViolation: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onSlotChange: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnhandledRejection: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onWheel: null,\n open: O,\n optimum: k,\n pattern: null,\n ping: U,\n placeholder: null,\n playsInline: O,\n popover: null,\n popoverTarget: null,\n popoverTargetAction: null,\n poster: null,\n preload: null,\n readOnly: O,\n referrerPolicy: null,\n rel: U,\n required: O,\n reversed: O,\n rows: k,\n rowSpan: k,\n sandbox: U,\n scope: null,\n scoped: O,\n seamless: O,\n selected: O,\n shadowRootClonable: O,\n shadowRootDelegatesFocus: O,\n shadowRootMode: null,\n shape: null,\n size: k,\n sizes: null,\n slot: null,\n span: k,\n spellCheck: $,\n src: null,\n srcDoc: null,\n srcLang: null,\n srcSet: null,\n start: k,\n step: null,\n style: null,\n tabIndex: k,\n target: null,\n title: null,\n translate: null,\n type: null,\n typeMustMatch: O,\n useMap: null,\n value: $,\n width: k,\n wrap: null,\n writingSuggestions: null,\n // Legacy.\n // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis\n align: null,\n // Several. Use CSS `text-align` instead,\n aLink: null,\n // `<body>`. Use CSS `a:active {color}` instead\n archive: U,\n // `<object>`. List of URIs to archives\n axis: null,\n // `<td>` and `<th>`. Use `scope` on `<th>`\n background: null,\n // `<body>`. Use CSS `background-image` instead\n bgColor: null,\n // `<body>` and table elements. Use CSS `background-color` instead\n border: k,\n // `<table>`. Use CSS `border-width` instead,\n borderColor: null,\n // `<table>`. Use CSS `border-color` instead,\n bottomMargin: k,\n // `<body>`\n cellPadding: null,\n // `<table>`\n cellSpacing: null,\n // `<table>`\n char: null,\n // Several table elements. When `align=char`, sets the character to align on\n charOff: null,\n // Several table elements. When `char`, offsets the alignment\n classId: null,\n // `<object>`\n clear: null,\n // `<br>`. Use CSS `clear` instead\n code: null,\n // `<object>`\n codeBase: null,\n // `<object>`\n codeType: null,\n // `<object>`\n color: null,\n // `<font>` and `<hr>`. Use CSS instead\n compact: O,\n // Lists. Use CSS to reduce space between items instead\n declare: O,\n // `<object>`\n event: null,\n // `<script>`\n face: null,\n // `<font>`. Use CSS instead\n frame: null,\n // `<table>`\n frameBorder: null,\n // `<iframe>`. Use CSS `border` instead\n hSpace: k,\n // `<img>` and `<object>`\n leftMargin: k,\n // `<body>`\n link: null,\n // `<body>`. Use CSS `a:link {color: *}` instead\n longDesc: null,\n // `<frame>`, `<iframe>`, and `<img>`. Use an `<a>`\n lowSrc: null,\n // `<img>`. Use a `<picture>`\n marginHeight: k,\n // `<body>`\n marginWidth: k,\n // `<body>`\n noResize: O,\n // `<frame>`\n noHref: O,\n // `<area>`. Use no href instead of an explicit `nohref`\n noShade: O,\n // `<hr>`. Use background-color and height instead of borders\n noWrap: O,\n // `<td>` and `<th>`\n object: null,\n // `<applet>`\n profile: null,\n // `<head>`\n prompt: null,\n // `<isindex>`\n rev: null,\n // `<link>`\n rightMargin: k,\n // `<body>`\n rules: null,\n // `<table>`\n scheme: null,\n // `<meta>`\n scrolling: $,\n // `<frame>`. Use overflow in the child context\n standby: null,\n // `<object>`\n summary: null,\n // `<table>`\n text: null,\n // `<body>`. Use CSS `color` instead\n topMargin: k,\n // `<body>`\n valueType: null,\n // `<param>`\n version: null,\n // `<html>`. Use a doctype.\n vAlign: null,\n // Several. Use CSS `vertical-align` instead\n vLink: null,\n // `<body>`. Use CSS `a:visited {color}` instead\n vSpace: k,\n // `<img>` and `<object>`\n // Non-standard Properties.\n allowTransparency: null,\n autoCorrect: null,\n autoSave: null,\n disablePictureInPicture: O,\n disableRemotePlayback: O,\n prefix: null,\n property: null,\n results: k,\n security: null,\n unselectable: null\n }\n}), Dr = Pe({\n space: \"svg\",\n attributes: {\n accentHeight: \"accent-height\",\n alignmentBaseline: \"alignment-baseline\",\n arabicForm: \"arabic-form\",\n baselineShift: \"baseline-shift\",\n capHeight: \"cap-height\",\n className: \"class\",\n clipPath: \"clip-path\",\n clipRule: \"clip-rule\",\n colorInterpolation: \"color-interpolation\",\n colorInterpolationFilters: \"color-interpolation-filters\",\n colorProfile: \"color-profile\",\n colorRendering: \"color-rendering\",\n crossOrigin: \"crossorigin\",\n dataType: \"datatype\",\n dominantBaseline: \"dominant-baseline\",\n enableBackground: \"enable-background\",\n fillOpacity: \"fill-opacity\",\n fillRule: \"fill-rule\",\n floodColor: \"flood-color\",\n floodOpacity: \"flood-opacity\",\n fontFamily: \"font-family\",\n fontSize: \"font-size\",\n fontSizeAdjust: \"font-size-adjust\",\n fontStretch: \"font-stretch\",\n fontStyle: \"font-style\",\n fontVariant: \"font-variant\",\n fontWeight: \"font-weight\",\n glyphName: \"glyph-name\",\n glyphOrientationHorizontal: \"glyph-orientation-horizontal\",\n glyphOrientationVertical: \"glyph-orientation-vertical\",\n hrefLang: \"hreflang\",\n horizAdvX: \"horiz-adv-x\",\n horizOriginX: \"horiz-origin-x\",\n horizOriginY: \"horiz-origin-y\",\n imageRendering: \"image-rendering\",\n letterSpacing: \"letter-spacing\",\n lightingColor: \"lighting-color\",\n markerEnd: \"marker-end\",\n markerMid: \"marker-mid\",\n markerStart: \"marker-start\",\n navDown: \"nav-down\",\n navDownLeft: \"nav-down-left\",\n navDownRight: \"nav-down-right\",\n navLeft: \"nav-left\",\n navNext: \"nav-next\",\n navPrev: \"nav-prev\",\n navRight: \"nav-right\",\n navUp: \"nav-up\",\n navUpLeft: \"nav-up-left\",\n navUpRight: \"nav-up-right\",\n onAbort: \"onabort\",\n onActivate: \"onactivate\",\n onAfterPrint: \"onafterprint\",\n onBeforePrint: \"onbeforeprint\",\n onBegin: \"onbegin\",\n onCancel: \"oncancel\",\n onCanPlay: \"oncanplay\",\n onCanPlayThrough: \"oncanplaythrough\",\n onChange: \"onchange\",\n onClick: \"onclick\",\n onClose: \"onclose\",\n onCopy: \"oncopy\",\n onCueChange: \"oncuechange\",\n onCut: \"oncut\",\n onDblClick: \"ondblclick\",\n onDrag: \"ondrag\",\n onDragEnd: \"ondragend\",\n onDragEnter: \"ondragenter\",\n onDragExit: \"ondragexit\",\n onDragLeave: \"ondragleave\",\n onDragOver: \"ondragover\",\n onDragStart: \"ondragstart\",\n onDrop: \"ondrop\",\n onDurationChange: \"ondurationchange\",\n onEmptied: \"onemptied\",\n onEnd: \"onend\",\n onEnded: \"onended\",\n onError: \"onerror\",\n onFocus: \"onfocus\",\n onFocusIn: \"onfocusin\",\n onFocusOut: \"onfocusout\",\n onHashChange: \"onhashchange\",\n onInput: \"oninput\",\n onInvalid: \"oninvalid\",\n onKeyDown: \"onkeydown\",\n onKeyPress: \"onkeypress\",\n onKeyUp: \"onkeyup\",\n onLoad: \"onload\",\n onLoadedData: \"onloadeddata\",\n onLoadedMetadata: \"onloadedmetadata\",\n onLoadStart: \"onloadstart\",\n onMessage: \"onmessage\",\n onMouseDown: \"onmousedown\",\n onMouseEnter: \"onmouseenter\",\n onMouseLeave: \"onmouseleave\",\n onMouseMove: \"onmousemove\",\n onMouseOut: \"onmouseout\",\n onMouseOver: \"onmouseover\",\n onMouseUp: \"onmouseup\",\n onMouseWheel: \"onmousewheel\",\n onOffline: \"onoffline\",\n onOnline: \"ononline\",\n onPageHide: \"onpagehide\",\n onPageShow: \"onpageshow\",\n onPaste: \"onpaste\",\n onPause: \"onpause\",\n onPlay: \"onplay\",\n onPlaying: \"onplaying\",\n onPopState: \"onpopstate\",\n onProgress: \"onprogress\",\n onRateChange: \"onratechange\",\n onRepeat: \"onrepeat\",\n onReset: \"onreset\",\n onResize: \"onresize\",\n onScroll: \"onscroll\",\n onSeeked: \"onseeked\",\n onSeeking: \"onseeking\",\n onSelect: \"onselect\",\n onShow: \"onshow\",\n onStalled: \"onstalled\",\n onStorage: \"onstorage\",\n onSubmit: \"onsubmit\",\n onSuspend: \"onsuspend\",\n onTimeUpdate: \"ontimeupdate\",\n onToggle: \"ontoggle\",\n onUnload: \"onunload\",\n onVolumeChange: \"onvolumechange\",\n onWaiting: \"onwaiting\",\n onZoom: \"onzoom\",\n overlinePosition: \"overline-position\",\n overlineThickness: \"overline-thickness\",\n paintOrder: \"paint-order\",\n panose1: \"panose-1\",\n pointerEvents: \"pointer-events\",\n referrerPolicy: \"referrerpolicy\",\n renderingIntent: \"rendering-intent\",\n shapeRendering: \"shape-rendering\",\n stopColor: \"stop-color\",\n stopOpacity: \"stop-opacity\",\n strikethroughPosition: \"strikethrough-position\",\n strikethroughThickness: \"strikethrough-thickness\",\n strokeDashArray: \"stroke-dasharray\",\n strokeDashOffset: \"stroke-dashoffset\",\n strokeLineCap: \"stroke-linecap\",\n strokeLineJoin: \"stroke-linejoin\",\n strokeMiterLimit: \"stroke-miterlimit\",\n strokeOpacity: \"stroke-opacity\",\n strokeWidth: \"stroke-width\",\n tabIndex: \"tabindex\",\n textAnchor: \"text-anchor\",\n textDecoration: \"text-decoration\",\n textRendering: \"text-rendering\",\n transformOrigin: \"transform-origin\",\n typeOf: \"typeof\",\n underlinePosition: \"underline-position\",\n underlineThickness: \"underline-thickness\",\n unicodeBidi: \"unicode-bidi\",\n unicodeRange: \"unicode-range\",\n unitsPerEm: \"units-per-em\",\n vAlphabetic: \"v-alphabetic\",\n vHanging: \"v-hanging\",\n vIdeographic: \"v-ideographic\",\n vMathematical: \"v-mathematical\",\n vectorEffect: \"vector-effect\",\n vertAdvY: \"vert-adv-y\",\n vertOriginX: \"vert-origin-x\",\n vertOriginY: \"vert-origin-y\",\n wordSpacing: \"word-spacing\",\n writingMode: \"writing-mode\",\n xHeight: \"x-height\",\n // These were camelcased in Tiny. Now lowercased in SVG 2\n playbackOrder: \"playbackorder\",\n timelineBegin: \"timelinebegin\"\n },\n transform: Pt,\n properties: {\n about: Z,\n accentHeight: k,\n accumulate: null,\n additive: null,\n alignmentBaseline: null,\n alphabetic: k,\n amplitude: k,\n arabicForm: null,\n ascent: k,\n attributeName: null,\n attributeType: null,\n azimuth: k,\n bandwidth: null,\n baselineShift: null,\n baseFrequency: null,\n baseProfile: null,\n bbox: null,\n begin: null,\n bias: k,\n by: null,\n calcMode: null,\n capHeight: k,\n className: U,\n clip: null,\n clipPath: null,\n clipPathUnits: null,\n clipRule: null,\n color: null,\n colorInterpolation: null,\n colorInterpolationFilters: null,\n colorProfile: null,\n colorRendering: null,\n content: null,\n contentScriptType: null,\n contentStyleType: null,\n crossOrigin: null,\n cursor: null,\n cx: null,\n cy: null,\n d: null,\n dataType: null,\n defaultAction: null,\n descent: k,\n diffuseConstant: k,\n direction: null,\n display: null,\n dur: null,\n divisor: k,\n dominantBaseline: null,\n download: O,\n dx: null,\n dy: null,\n edgeMode: null,\n editable: null,\n elevation: k,\n enableBackground: null,\n end: null,\n event: null,\n exponent: k,\n externalResourcesRequired: null,\n fill: null,\n fillOpacity: k,\n fillRule: null,\n filter: null,\n filterRes: null,\n filterUnits: null,\n floodColor: null,\n floodOpacity: null,\n focusable: null,\n focusHighlight: null,\n fontFamily: null,\n fontSize: null,\n fontSizeAdjust: null,\n fontStretch: null,\n fontStyle: null,\n fontVariant: null,\n fontWeight: null,\n format: null,\n fr: null,\n from: null,\n fx: null,\n fy: null,\n g1: Ae,\n g2: Ae,\n glyphName: Ae,\n glyphOrientationHorizontal: null,\n glyphOrientationVertical: null,\n glyphRef: null,\n gradientTransform: null,\n gradientUnits: null,\n handler: null,\n hanging: k,\n hatchContentUnits: null,\n hatchUnits: null,\n height: null,\n href: null,\n hrefLang: null,\n horizAdvX: k,\n horizOriginX: k,\n horizOriginY: k,\n id: null,\n ideographic: k,\n imageRendering: null,\n initialVisibility: null,\n in: null,\n in2: null,\n intercept: k,\n k,\n k1: k,\n k2: k,\n k3: k,\n k4: k,\n kernelMatrix: Z,\n kernelUnitLength: null,\n keyPoints: null,\n // SEMI_COLON_SEPARATED\n keySplines: null,\n // SEMI_COLON_SEPARATED\n keyTimes: null,\n // SEMI_COLON_SEPARATED\n kerning: null,\n lang: null,\n lengthAdjust: null,\n letterSpacing: null,\n lightingColor: null,\n limitingConeAngle: k,\n local: null,\n markerEnd: null,\n markerMid: null,\n markerStart: null,\n markerHeight: null,\n markerUnits: null,\n markerWidth: null,\n mask: null,\n maskContentUnits: null,\n maskUnits: null,\n mathematical: null,\n max: null,\n media: null,\n mediaCharacterEncoding: null,\n mediaContentEncodings: null,\n mediaSize: k,\n mediaTime: null,\n method: null,\n min: null,\n mode: null,\n name: null,\n navDown: null,\n navDownLeft: null,\n navDownRight: null,\n navLeft: null,\n navNext: null,\n navPrev: null,\n navRight: null,\n navUp: null,\n navUpLeft: null,\n navUpRight: null,\n numOctaves: null,\n observer: null,\n offset: null,\n onAbort: null,\n onActivate: null,\n onAfterPrint: null,\n onBeforePrint: null,\n onBegin: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnd: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFocusIn: null,\n onFocusOut: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadStart: null,\n onMessage: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onMouseWheel: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRepeat: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onShow: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onZoom: null,\n opacity: null,\n operator: null,\n order: null,\n orient: null,\n orientation: null,\n origin: null,\n overflow: null,\n overlay: null,\n overlinePosition: k,\n overlineThickness: k,\n paintOrder: null,\n panose1: null,\n path: null,\n pathLength: k,\n patternContentUnits: null,\n patternTransform: null,\n patternUnits: null,\n phase: null,\n ping: U,\n pitch: null,\n playbackOrder: null,\n pointerEvents: null,\n points: null,\n pointsAtX: k,\n pointsAtY: k,\n pointsAtZ: k,\n preserveAlpha: null,\n preserveAspectRatio: null,\n primitiveUnits: null,\n propagate: null,\n property: Z,\n r: null,\n radius: null,\n referrerPolicy: null,\n refX: null,\n refY: null,\n rel: Z,\n rev: Z,\n renderingIntent: null,\n repeatCount: null,\n repeatDur: null,\n requiredExtensions: Z,\n requiredFeatures: Z,\n requiredFonts: Z,\n requiredFormats: Z,\n resource: null,\n restart: null,\n result: null,\n rotate: null,\n rx: null,\n ry: null,\n scale: null,\n seed: null,\n shapeRendering: null,\n side: null,\n slope: null,\n snapshotTime: null,\n specularConstant: k,\n specularExponent: k,\n spreadMethod: null,\n spacing: null,\n startOffset: null,\n stdDeviation: null,\n stemh: null,\n stemv: null,\n stitchTiles: null,\n stopColor: null,\n stopOpacity: null,\n strikethroughPosition: k,\n strikethroughThickness: k,\n string: null,\n stroke: null,\n strokeDashArray: Z,\n strokeDashOffset: null,\n strokeLineCap: null,\n strokeLineJoin: null,\n strokeMiterLimit: k,\n strokeOpacity: k,\n strokeWidth: null,\n style: null,\n surfaceScale: k,\n syncBehavior: null,\n syncBehaviorDefault: null,\n syncMaster: null,\n syncTolerance: null,\n syncToleranceDefault: null,\n systemLanguage: Z,\n tabIndex: k,\n tableValues: null,\n target: null,\n targetX: k,\n targetY: k,\n textAnchor: null,\n textDecoration: null,\n textRendering: null,\n textLength: null,\n timelineBegin: null,\n title: null,\n transformBehavior: null,\n type: null,\n typeOf: Z,\n to: null,\n transform: null,\n transformOrigin: null,\n u1: null,\n u2: null,\n underlinePosition: k,\n underlineThickness: k,\n unicode: null,\n unicodeBidi: null,\n unicodeRange: null,\n unitsPerEm: k,\n values: null,\n vAlphabetic: k,\n vMathematical: k,\n vectorEffect: null,\n vHanging: k,\n vIdeographic: k,\n version: null,\n vertAdvY: k,\n vertOriginX: k,\n vertOriginY: k,\n viewBox: null,\n viewTarget: null,\n visibility: null,\n width: null,\n widths: null,\n wordSpacing: null,\n writingMode: null,\n x: null,\n x1: null,\n x2: null,\n xChannelSelector: null,\n xHeight: k,\n y: null,\n y1: null,\n y2: null,\n yChannelSelector: null,\n z: null,\n zoomAndPan: null\n }\n}), Or = /^data[-\\w.:]+$/i, qn = /-[a-z]/g, Rr = /[A-Z]/g;\nfunction Fr(e, n) {\n const t = hn(n);\n let r = n, i = te;\n if (t in e.normal)\n return e.property[e.normal[t]];\n if (t.length > 4 && t.slice(0, 4) === \"data\" && Or.test(n)) {\n if (n.charAt(4) === \"-\") {\n const l = n.slice(5).replace(qn, Mr);\n r = \"data\" + l.charAt(0).toUpperCase() + l.slice(1);\n } else {\n const l = n.slice(4);\n if (!qn.test(l)) {\n let o = l.replace(Rr, Nr);\n o.charAt(0) !== \"-\" && (o = \"-\" + o), n = \"data\" + o;\n }\n }\n i = Sn;\n }\n return new i(r, n);\n}\nfunction Nr(e) {\n return \"-\" + e.toLowerCase();\n}\nfunction Mr(e) {\n return e.charAt(1).toUpperCase();\n}\nconst _r = {\n classId: \"classID\",\n dataType: \"datatype\",\n itemId: \"itemID\",\n strokeDashArray: \"strokeDasharray\",\n strokeDashOffset: \"strokeDashoffset\",\n strokeLineCap: \"strokeLinecap\",\n strokeLineJoin: \"strokeLinejoin\",\n strokeMiterLimit: \"strokeMiterlimit\",\n typeOf: \"typeof\",\n xLinkActuate: \"xlinkActuate\",\n xLinkArcRole: \"xlinkArcrole\",\n xLinkHref: \"xlinkHref\",\n xLinkRole: \"xlinkRole\",\n xLinkShow: \"xlinkShow\",\n xLinkTitle: \"xlinkTitle\",\n xLinkType: \"xlinkType\",\n xmlnsXLink: \"xmlnsXlink\"\n}, Br = Et([Tt, At, Lt, vt, vr], \"html\"), Cn = Et([Tt, At, Lt, vt, Dr], \"svg\");\nfunction jr(e) {\n return e.join(\" \").trim();\n}\nfunction Dt(e) {\n return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, \"default\") ? e.default : e;\n}\nvar Ee = {}, en, $n;\nfunction Hr() {\n if ($n) return en;\n $n = 1;\n var e = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g, n = /\\n/g, t = /^\\s*/, r = /^(\\*?[-#/*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/, i = /^:\\s*/, l = /^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^)]*?\\)|[^};])+)/, o = /^[;\\s]*/, a = /^\\s+|\\s+$/g, s = `\n`, u = \"/\", c = \"*\", f = \"\", d = \"comment\", p = \"declaration\";\n en = function(w, A) {\n if (typeof w != \"string\")\n throw new TypeError(\"First argument must be a string\");\n if (!w) return [];\n A = A || {};\n var x = 1, C = 1;\n function E(P) {\n var I = P.match(n);\n I && (x += I.length);\n var v = P.lastIndexOf(s);\n C = ~v ? P.length - v : C + P.length;\n }\n function N() {\n var P = { line: x, column: C };\n return function(I) {\n return I.position = new R(P), q(), I;\n };\n }\n function R(P) {\n this.start = P, this.end = { line: x, column: C }, this.source = A.source;\n }\n R.prototype.content = w;\n function y(P) {\n var I = new Error(\n A.source + \":\" + x + \":\" + C + \": \" + P\n );\n if (I.reason = P, I.filename = A.source, I.line = x, I.column = C, I.source = w, !A.silent) throw I;\n }\n function F(P) {\n var I = P.exec(w);\n if (I) {\n var v = I[0];\n return E(v), w = w.slice(v.length), I;\n }\n }\n function q() {\n F(t);\n }\n function B(P) {\n var I;\n for (P = P || []; I = j(); )\n I !== !1 && P.push(I);\n return P;\n }\n function j() {\n var P = N();\n if (!(u != w.charAt(0) || c != w.charAt(1))) {\n for (var I = 2; f != w.charAt(I) && (c != w.charAt(I) || u != w.charAt(I + 1)); )\n ++I;\n if (I += 2, f === w.charAt(I - 1))\n return y(\"End of comment missing\");\n var v = w.slice(2, I - 2);\n return C += 2, E(v), w = w.slice(I), C += 2, P({\n type: d,\n comment: v\n });\n }\n }\n function z() {\n var P = N(), I = F(r);\n if (I) {\n if (j(), !F(i)) return y(\"property missing ':'\");\n var v = F(l), W = P({\n type: p,\n property: b(I[0].replace(e, f)),\n value: v ? b(v[0].replace(e, f)) : f\n });\n return F(o), W;\n }\n }\n function T() {\n var P = [];\n B(P);\n for (var I; I = z(); )\n I !== !1 && (P.push(I), B(P));\n return P;\n }\n return q(), T();\n };\n function b(w) {\n return w ? w.replace(a, f) : f;\n }\n return en;\n}\nvar Wn;\nfunction Ur() {\n if (Wn) return Ee;\n Wn = 1;\n var e = Ee && Ee.__importDefault || function(r) {\n return r && r.__esModule ? r : { default: r };\n };\n Object.defineProperty(Ee, \"__esModule\", { value: !0 }), Ee.default = t;\n var n = e(Hr());\n function t(r, i) {\n var l = null;\n if (!r || typeof r != \"string\")\n return l;\n var o = (0, n.default)(r), a = typeof i == \"function\";\n return o.forEach(function(s) {\n if (s.type === \"declaration\") {\n var u = s.property, c = s.value;\n a ? i(u, c, s) : c && (l = l || {}, l[u] = c);\n }\n }), l;\n }\n return Ee;\n}\nvar Vr = Ur();\nconst Yn = /* @__PURE__ */ Dt(Vr), qr = Yn.default || Yn, Ot = Rt(\"end\"), En = Rt(\"start\");\nfunction Rt(e) {\n return n;\n function n(t) {\n const r = t && t.position && t.position[e] || {};\n if (typeof r.line == \"number\" && r.line > 0 && typeof r.column == \"number\" && r.column > 0)\n return {\n line: r.line,\n column: r.column,\n offset: typeof r.offset == \"number\" && r.offset > -1 ? r.offset : void 0\n };\n }\n}\nfunction $r(e) {\n const n = En(e), t = Ot(e);\n if (n && t)\n return { start: n, end: t };\n}\nfunction Fe(e) {\n return !e || typeof e != \"object\" ? \"\" : \"position\" in e || \"type\" in e ? Qn(e.position) : \"start\" in e || \"end\" in e ? Qn(e) : \"line\" in e || \"column\" in e ? dn(e) : \"\";\n}\nfunction dn(e) {\n return Xn(e && e.line) + \":\" + Xn(e && e.column);\n}\nfunction Qn(e) {\n return dn(e && e.start) + \"-\" + dn(e && e.end);\n}\nfunction Xn(e) {\n return e && typeof e == \"number\" ? e : 1;\n}\nclass X extends Error {\n /**\n * Create a message for `reason`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {Options | null | undefined} [options]\n * @returns\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | Options | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns\n * Instance of `VFileMessage`.\n */\n // eslint-disable-next-line complexity\n constructor(n, t, r) {\n super(), typeof t == \"string\" && (r = t, t = void 0);\n let i = \"\", l = {}, o = !1;\n if (t && (\"line\" in t && \"column\" in t ? l = { place: t } : \"start\" in t && \"end\" in t ? l = { place: t } : \"type\" in t ? l = {\n ancestors: [t],\n place: t.position\n } : l = { ...t }), typeof n == \"string\" ? i = n : !l.cause && n && (o = !0, i = n.message, l.cause = n), !l.ruleId && !l.source && typeof r == \"string\") {\n const s = r.indexOf(\":\");\n s === -1 ? l.ruleId = r : (l.source = r.slice(0, s), l.ruleId = r.slice(s + 1));\n }\n if (!l.place && l.ancestors && l.ancestors) {\n const s = l.ancestors[l.ancestors.length - 1];\n s && (l.place = s.position);\n }\n const a = l.place && \"start\" in l.place ? l.place.start : l.place;\n this.ancestors = l.ancestors || void 0, this.cause = l.cause || void 0, this.column = a ? a.column : void 0, this.fatal = void 0, this.file, this.message = i, this.line = a ? a.line : void 0, this.name = Fe(l.place) || \"1:1\", this.place = l.place || void 0, this.reason = this.message, this.ruleId = l.ruleId || void 0, this.source = l.source || void 0, this.stack = o && l.cause && typeof l.cause.stack == \"string\" ? l.cause.stack : \"\", this.actual, this.expected, this.note, this.url;\n }\n}\nX.prototype.file = \"\";\nX.prototype.name = \"\";\nX.prototype.reason = \"\";\nX.prototype.message = \"\";\nX.prototype.stack = \"\";\nX.prototype.column = void 0;\nX.prototype.line = void 0;\nX.prototype.ancestors = void 0;\nX.prototype.cause = void 0;\nX.prototype.fatal = void 0;\nX.prototype.place = void 0;\nX.prototype.ruleId = void 0;\nX.prototype.source = void 0;\nconst In = {}.hasOwnProperty, Wr = /* @__PURE__ */ new Map(), Yr = /[A-Z]/g, Qr = /-([a-z])/g, Xr = /* @__PURE__ */ new Set([\"table\", \"tbody\", \"thead\", \"tfoot\", \"tr\"]), Kr = /* @__PURE__ */ new Set([\"td\", \"th\"]), Ft = \"https://github.com/syntax-tree/hast-util-to-jsx-runtime\";\nfunction Gr(e, n) {\n if (!n || n.Fragment === void 0)\n throw new TypeError(\"Expected `Fragment` in options\");\n const t = n.filePath || void 0;\n let r;\n if (n.development) {\n if (typeof n.jsxDEV != \"function\")\n throw new TypeError(\n \"Expected `jsxDEV` in options when `development: true`\"\n );\n r = li(t, n.jsxDEV);\n } else {\n if (typeof n.jsx != \"function\")\n throw new TypeError(\"Expected `jsx` in production options\");\n if (typeof n.jsxs != \"function\")\n throw new TypeError(\"Expected `jsxs` in production options\");\n r = ii(t, n.jsx, n.jsxs);\n }\n const i = {\n Fragment: n.Fragment,\n ancestors: [],\n components: n.components || {},\n create: r,\n elementAttributeNameCase: n.elementAttributeNameCase || \"react\",\n evaluater: n.createEvaluater ? n.createEvaluater() : void 0,\n filePath: t,\n ignoreInvalidStyle: n.ignoreInvalidStyle || !1,\n passKeys: n.passKeys !== !1,\n passNode: n.passNode || !1,\n schema: n.space === \"svg\" ? Cn : Br,\n stylePropertyNameCase: n.stylePropertyNameCase || \"dom\",\n tableCellAlignToStyle: n.tableCellAlignToStyle !== !1\n }, l = Nt(i, e, void 0);\n return l && typeof l != \"string\" ? l : i.create(\n e,\n i.Fragment,\n { children: l || void 0 },\n void 0\n );\n}\nfunction Nt(e, n, t) {\n if (n.type === \"element\")\n return Jr(e, n, t);\n if (n.type === \"mdxFlowExpression\" || n.type === \"mdxTextExpression\")\n return Zr(e, n);\n if (n.type === \"mdxJsxFlowElement\" || n.type === \"mdxJsxTextElement\")\n return ni(e, n, t);\n if (n.type === \"mdxjsEsm\")\n return ei(e, n);\n if (n.type === \"root\")\n return ti(e, n, t);\n if (n.type === \"text\")\n return ri(e, n);\n}\nfunction Jr(e, n, t) {\n const r = e.schema;\n let i = r;\n n.tagName.toLowerCase() === \"svg\" && r.space === \"html\" && (i = Cn, e.schema = i), e.ancestors.push(n);\n const l = _t(e, n.tagName, !1), o = oi(e, n);\n let a = Tn(e, n);\n return Xr.has(n.tagName) && (a = a.filter(function(s) {\n return typeof s == \"string\" ? !Pr(s) : !0;\n })), Mt(e, o, l, n), An(o, a), e.ancestors.pop(), e.schema = r, e.create(n, l, o, t);\n}\nfunction Zr(e, n) {\n if (n.data && n.data.estree && e.evaluater) {\n const r = n.data.estree.body[0];\n return r.type, /** @type {Child | undefined} */\n e.evaluater.evaluateExpression(r.expression);\n }\n _e(e, n.position);\n}\nfunction ei(e, n) {\n if (n.data && n.data.estree && e.evaluater)\n return (\n /** @type {Child | undefined} */\n e.evaluater.evaluateProgram(n.data.estree)\n );\n _e(e, n.position);\n}\nfunction ni(e, n, t) {\n const r = e.schema;\n let i = r;\n n.name === \"svg\" && r.space === \"html\" && (i = Cn, e.schema = i), e.ancestors.push(n);\n const l = n.name === null ? e.Fragment : _t(e, n.name, !0), o = ai(e, n), a = Tn(e, n);\n return Mt(e, o, l, n), An(o, a), e.ancestors.pop(), e.schema = r, e.create(n, l, o, t);\n}\nfunction ti(e, n, t) {\n const r = {};\n return An(r, Tn(e, n)), e.create(n, e.Fragment, r, t);\n}\nfunction ri(e, n) {\n return n.value;\n}\nfunction Mt(e, n, t, r) {\n typeof t != \"string\" && t !== e.Fragment && e.passNode && (n.node = r);\n}\nfunction An(e, n) {\n if (n.length > 0) {\n const t = n.length > 1 ? n : n[0];\n t && (e.children = t);\n }\n}\nfunction ii(e, n, t) {\n return r;\n function r(i, l, o, a) {\n const u = Array.isArray(o.children) ? t : n;\n return a ? u(l, o, a) : u(l, o);\n }\n}\nfunction li(e, n) {\n return t;\n function t(r, i, l, o) {\n const a = Array.isArray(l.children), s = En(r);\n return n(\n i,\n l,\n o,\n a,\n {\n columnNumber: s ? s.column - 1 : void 0,\n fileName: e,\n lineNumber: s ? s.line : void 0\n },\n void 0\n );\n }\n}\nfunction oi(e, n) {\n const t = {};\n let r, i;\n for (i in n.properties)\n if (i !== \"children\" && In.call(n.properties, i)) {\n const l = ui(e, i, n.properties[i]);\n if (l) {\n const [o, a] = l;\n e.tableCellAlignToStyle && o === \"align\" && typeof a == \"string\" && Kr.has(n.tagName) ? r = a : t[o] = a;\n }\n }\n if (r) {\n const l = (\n /** @type {Style} */\n t.style || (t.style = {})\n );\n l[e.stylePropertyNameCase === \"css\" ? \"text-align\" : \"textAlign\"] = r;\n }\n return t;\n}\nfunction ai(e, n) {\n const t = {};\n for (const r of n.attributes)\n if (r.type === \"mdxJsxExpressionAttribute\")\n if (r.data && r.data.estree && e.evaluater) {\n const l = r.data.estree.body[0];\n l.type;\n const o = l.expression;\n o.type;\n const a = o.properties[0];\n a.type, Object.assign(\n t,\n e.evaluater.evaluateExpression(a.argument)\n );\n } else\n _e(e, n.position);\n else {\n const i = r.name;\n let l;\n if (r.value && typeof r.value == \"object\")\n if (r.value.data && r.value.data.estree && e.evaluater) {\n const a = r.value.data.estree.body[0];\n a.type, l = e.evaluater.evaluateExpression(a.expression);\n } else\n _e(e, n.position);\n else\n l = r.value === null ? !0 : r.value;\n t[i] = /** @type {Props[keyof Props]} */\n l;\n }\n return t;\n}\nfunction Tn(e, n) {\n const t = [];\n let r = -1;\n const i = e.passKeys ? /* @__PURE__ */ new Map() : Wr;\n for (; ++r < n.children.length; ) {\n const l = n.children[r];\n let o;\n if (e.passKeys) {\n const s = l.type === \"element\" ? l.tagName : l.type === \"mdxJsxFlowElement\" || l.type === \"mdxJsxTextElement\" ? l.name : void 0;\n if (s) {\n const u = i.get(s) || 0;\n o = s + \"-\" + u, i.set(s, u + 1);\n }\n }\n const a = Nt(e, l, o);\n a !== void 0 && t.push(a);\n }\n return t;\n}\nfunction ui(e, n, t) {\n const r = Fr(e.schema, n);\n if (!(t == null || typeof t == \"number\" && Number.isNaN(t))) {\n if (Array.isArray(t) && (t = r.commaSeparated ? Cr(t) : jr(t)), r.property === \"style\") {\n let i = typeof t == \"object\" ? t : si(e, String(t));\n return e.stylePropertyNameCase === \"css\" && (i = ci(i)), [\"style\", i];\n }\n return [\n e.elementAttributeNameCase === \"react\" && r.space ? _r[r.property] || r.property : r.attribute,\n t\n ];\n }\n}\nfunction si(e, n) {\n const t = {};\n try {\n qr(n, r);\n } catch (i) {\n if (!e.ignoreInvalidStyle) {\n const l = (\n /** @type {Error} */\n i\n ), o = new X(\"Cannot parse `style` attribute\", {\n ancestors: e.ancestors,\n cause: l,\n ruleId: \"style\",\n source: \"hast-util-to-jsx-runtime\"\n });\n throw o.file = e.filePath || void 0, o.url = Ft + \"#cannot-parse-style-attribute\", o;\n }\n }\n return t;\n function r(i, l) {\n let o = i;\n o.slice(0, 2) !== \"--\" && (o.slice(0, 4) === \"-ms-\" && (o = \"ms-\" + o.slice(4)), o = o.replace(Qr, fi)), t[o] = l;\n }\n}\nfunction _t(e, n, t) {\n let r;\n if (!t)\n r = { type: \"Literal\", value: n };\n else if (n.includes(\".\")) {\n const i = n.split(\".\");\n let l = -1, o;\n for (; ++l < i.length; ) {\n const a = Hn(i[l]) ? { type: \"Identifier\", name: i[l] } : { type: \"Literal\", value: i[l] };\n o = o ? {\n type: \"MemberExpression\",\n object: o,\n property: a,\n computed: !!(l && a.type === \"Literal\"),\n optional: !1\n } : a;\n }\n r = o;\n } else\n r = Hn(n) && !/^[a-z]/.test(n) ? { type: \"Identifier\", name: n } : { type: \"Literal\", value: n };\n if (r.type === \"Literal\") {\n const i = (\n /** @type {keyof JSX.IntrinsicElements} */\n r.value\n );\n return In.call(e.components, i) ? e.components[i] : i;\n }\n if (e.evaluater)\n return e.evaluater.evaluateExpression(r);\n _e(e);\n}\nfunction _e(e, n) {\n const t = new X(\n \"Cannot handle MDX estrees without `createEvaluater`\",\n {\n ancestors: e.ancestors,\n place: n,\n ruleId: \"mdx-estree\",\n source: \"hast-util-to-jsx-runtime\"\n }\n );\n throw t.file = e.filePath || void 0, t.url = Ft + \"#cannot-handle-mdx-estrees-without-createevaluater\", t;\n}\nfunction ci(e) {\n const n = {};\n let t;\n for (t in e)\n In.call(e, t) && (n[pi(t)] = e[t]);\n return n;\n}\nfunction pi(e) {\n let n = e.replace(Yr, hi);\n return n.slice(0, 3) === \"ms-\" && (n = \"-\" + n), n;\n}\nfunction fi(e, n) {\n return n.toUpperCase();\n}\nfunction hi(e) {\n return \"-\" + e.toLowerCase();\n}\nconst nn = {\n action: [\"form\"],\n cite: [\"blockquote\", \"del\", \"ins\", \"q\"],\n data: [\"object\"],\n formAction: [\"button\", \"input\"],\n href: [\"a\", \"area\", \"base\", \"link\"],\n icon: [\"menuitem\"],\n itemId: null,\n manifest: [\"html\"],\n ping: [\"a\", \"area\"],\n poster: [\"video\"],\n src: [\n \"audio\",\n \"embed\",\n \"iframe\",\n \"img\",\n \"input\",\n \"script\",\n \"source\",\n \"track\",\n \"video\"\n ]\n}, mi = {};\nfunction di(e, n) {\n const t = mi, r = typeof t.includeImageAlt == \"boolean\" ? t.includeImageAlt : !0, i = typeof t.includeHtml == \"boolean\" ? t.includeHtml : !0;\n return Bt(e, r, i);\n}\nfunction Bt(e, n, t) {\n if (gi(e)) {\n if (\"value\" in e)\n return e.type === \"html\" && !t ? \"\" : e.value;\n if (n && \"alt\" in e && e.alt)\n return e.alt;\n if (\"children\" in e)\n return Kn(e.children, n, t);\n }\n return Array.isArray(e) ? Kn(e, n, t) : \"\";\n}\nfunction Kn(e, n, t) {\n const r = [];\n let i = -1;\n for (; ++i < e.length; )\n r[i] = Bt(e[i], n, t);\n return r.join(\"\");\n}\nfunction gi(e) {\n return !!(e && typeof e == \"object\");\n}\nconst Gn = document.createElement(\"i\");\nfunction Pn(e) {\n const n = \"&\" + e + \";\";\n Gn.innerHTML = n;\n const t = Gn.textContent;\n return t.charCodeAt(t.length - 1) === 59 && e !== \"semi\" || t === n ? !1 : t;\n}\nfunction ce(e, n, t, r) {\n const i = e.length;\n let l = 0, o;\n if (n < 0 ? n = -n > i ? 0 : i + n : n = n > i ? i : n, t = t > 0 ? t : 0, r.length < 1e4)\n o = Array.from(r), o.unshift(n, t), e.splice(...o);\n else\n for (t && e.splice(n, t); l < r.length; )\n o = r.slice(l, l + 1e4), o.unshift(n, 0), e.splice(...o), l += 1e4, n += 1e4;\n}\nfunction ne(e, n) {\n return e.length > 0 ? (ce(e, e.length, 0, n), e) : n;\n}\nconst Jn = {}.hasOwnProperty;\nfunction yi(e) {\n const n = {};\n let t = -1;\n for (; ++t < e.length; )\n xi(n, e[t]);\n return n;\n}\nfunction xi(e, n) {\n let t;\n for (t in n) {\n const i = (Jn.call(e, t) ? e[t] : void 0) || (e[t] = {}), l = n[t];\n let o;\n if (l)\n for (o in l) {\n Jn.call(i, o) || (i[o] = []);\n const a = l[o];\n ki(\n // @ts-expect-error Looks like a list.\n i[o],\n Array.isArray(a) ? a : a ? [a] : []\n );\n }\n }\n}\nfunction ki(e, n) {\n let t = -1;\n const r = [];\n for (; ++t < n.length; )\n (n[t].add === \"after\" ? e : r).push(n[t]);\n ce(e, 0, 0, r);\n}\nfunction jt(e, n) {\n const t = Number.parseInt(e, n);\n return (\n // C0 except for HT, LF, FF, CR, space.\n t < 9 || t === 11 || t > 13 && t < 32 || // Control character (DEL) of C0, and C1 controls.\n t > 126 && t < 160 || // Lone high surrogates and low surrogates.\n t > 55295 && t < 57344 || // Noncharacters.\n t > 64975 && t < 65008 || /* eslint-disable no-bitwise */\n (t & 65535) === 65535 || (t & 65535) === 65534 || /* eslint-enable no-bitwise */\n // Out of range\n t > 1114111 ? \"�\" : String.fromCodePoint(t)\n );\n}\nfunction Te(e) {\n return e.replace(/[\\t\\n\\r ]+/g, \" \").replace(/^ | $/g, \"\").toLowerCase().toUpperCase();\n}\nconst se = ye(/[A-Za-z]/), ee = ye(/[\\dA-Za-z]/), bi = ye(/[#-'*+\\--9=?A-Z^-~]/);\nfunction gn(e) {\n return (\n // Special whitespace codes (which have negative values), C0 and Control\n // character DEL\n e !== null && (e < 32 || e === 127)\n );\n}\nconst yn = ye(/\\d/), wi = ye(/[\\dA-Fa-f]/), Si = ye(/[!-/:-@[-`{-~]/);\nfunction L(e) {\n return e !== null && e < -2;\n}\nfunction G(e) {\n return e !== null && (e < 0 || e === 32);\n}\nfunction _(e) {\n return e === -2 || e === -1 || e === 32;\n}\nconst Ci = ye(new RegExp(\"\\\\p{P}|\\\\p{S}\", \"u\")), Ei = ye(/\\s/);\nfunction ye(e) {\n return n;\n function n(t) {\n return t !== null && t > -1 && e.test(String.fromCharCode(t));\n }\n}\nfunction ze(e) {\n const n = [];\n let t = -1, r = 0, i = 0;\n for (; ++t < e.length; ) {\n const l = e.charCodeAt(t);\n let o = \"\";\n if (l === 37 && ee(e.charCodeAt(t + 1)) && ee(e.charCodeAt(t + 2)))\n i = 2;\n else if (l < 128)\n /[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(l)) || (o = String.fromCharCode(l));\n else if (l > 55295 && l < 57344) {\n const a = e.charCodeAt(t + 1);\n l < 56320 && a > 56319 && a < 57344 ? (o = String.fromCharCode(l, a), i = 1) : o = \"�\";\n } else\n o = String.fromCharCode(l);\n o && (n.push(e.slice(r, t), encodeURIComponent(o)), r = t + i + 1, o = \"\"), i && (t += i, i = 0);\n }\n return n.join(\"\") + e.slice(r);\n}\nfunction V(e, n, t, r) {\n const i = r ? r - 1 : Number.POSITIVE_INFINITY;\n let l = 0;\n return o;\n function o(s) {\n return _(s) ? (e.enter(t), a(s)) : n(s);\n }\n function a(s) {\n return _(s) && l++ < i ? (e.consume(s), a) : (e.exit(t), n(s));\n }\n}\nconst Ii = {\n tokenize: Ai\n};\nfunction Ai(e) {\n const n = e.attempt(this.parser.constructs.contentInitial, r, i);\n let t;\n return n;\n function r(a) {\n if (a === null) {\n e.consume(a);\n return;\n }\n return e.enter(\"lineEnding\"), e.consume(a), e.exit(\"lineEnding\"), V(e, n, \"linePrefix\");\n }\n function i(a) {\n return e.enter(\"paragraph\"), l(a);\n }\n function l(a) {\n const s = e.enter(\"chunkText\", {\n contentType: \"text\",\n previous: t\n });\n return t && (t.next = s), t = s, o(a);\n }\n function o(a) {\n if (a === null) {\n e.exit(\"chunkText\"), e.exit(\"paragraph\"), e.consume(a);\n return;\n }\n return L(a) ? (e.consume(a), e.exit(\"chunkText\"), l) : (e.consume(a), o);\n }\n}\nconst Ti = {\n tokenize: Pi\n}, Zn = {\n tokenize: zi\n};\nfunction Pi(e) {\n const n = this, t = [];\n let r = 0, i, l, o;\n return a;\n function a(E) {\n if (r < t.length) {\n const N = t[r];\n return n.containerState = N[1], e.attempt(N[0].continuation, s, u)(E);\n }\n return u(E);\n }\n function s(E) {\n if (r++, n.containerState._closeFlow) {\n n.containerState._closeFlow = void 0, i && C();\n const N = n.events.length;\n let R = N, y;\n for (; R--; )\n if (n.events[R][0] === \"exit\" && n.events[R][1].type === \"chunkFlow\") {\n y = n.events[R][1].end;\n break;\n }\n x(r);\n let F = N;\n for (; F < n.events.length; )\n n.events[F][1].end = {\n ...y\n }, F++;\n return ce(n.events, R + 1, 0, n.events.slice(N)), n.events.length = F, u(E);\n }\n return a(E);\n }\n function u(E) {\n if (r === t.length) {\n if (!i)\n return d(E);\n if (i.currentConstruct && i.currentConstruct.concrete)\n return b(E);\n n.interrupt = !!(i.currentConstruct && !i._gfmTableDynamicInterruptHack);\n }\n return n.containerState = {}, e.check(Zn, c, f)(E);\n }\n function c(E) {\n return i && C(), x(r), d(E);\n }\n function f(E) {\n return n.parser.lazy[n.now().line] = r !== t.length, o = n.now().offset, b(E);\n }\n function d(E) {\n return n.containerState = {}, e.attempt(Zn, p, b)(E);\n }\n function p(E) {\n return r++, t.push([n.currentConstruct, n.containerState]), d(E);\n }\n function b(E) {\n if (E === null) {\n i && C(), x(0), e.consume(E);\n return;\n }\n return i = i || n.parser.flow(n.now()), e.enter(\"chunkFlow\", {\n _tokenizer: i,\n contentType: \"flow\",\n previous: l\n }), w(E);\n }\n function w(E) {\n if (E === null) {\n A(e.exit(\"chunkFlow\"), !0), x(0), e.consume(E);\n return;\n }\n return L(E) ? (e.consume(E), A(e.exit(\"chunkFlow\")), r = 0, n.interrupt = void 0, a) : (e.consume(E), w);\n }\n function A(E, N) {\n const R = n.sliceStream(E);\n if (N && R.push(null), E.previous = l, l && (l.next = E), l = E, i.defineSkip(E.start), i.write(R), n.parser.lazy[E.start.line]) {\n let y = i.events.length;\n for (; y--; )\n if (\n // The token starts before the line ending…\n i.events[y][1].start.offset < o && // …and either is not ended yet…\n (!i.events[y][1].end || // …or ends after it.\n i.events[y][1].end.offset > o)\n )\n return;\n const F = n.events.length;\n let q = F, B, j;\n for (; q--; )\n if (n.events[q][0] === \"exit\" && n.events[q][1].type === \"chunkFlow\") {\n if (B) {\n j = n.events[q][1].end;\n break;\n }\n B = !0;\n }\n for (x(r), y = F; y < n.events.length; )\n n.events[y][1].end = {\n ...j\n }, y++;\n ce(n.events, q + 1, 0, n.events.slice(F)), n.events.length = y;\n }\n }\n function x(E) {\n let N = t.length;\n for (; N-- > E; ) {\n const R = t[N];\n n.containerState = R[1], R[0].exit.call(n, e);\n }\n t.length = E;\n }\n function C() {\n i.write([null]), l = void 0, i = void 0, n.containerState._closeFlow = void 0;\n }\n}\nfunction zi(e, n, t) {\n return V(e, e.attempt(this.parser.constructs.document, n, t), \"linePrefix\", this.parser.constructs.disable.null.includes(\"codeIndented\") ? void 0 : 4);\n}\nfunction et(e) {\n if (e === null || G(e) || Ei(e))\n return 1;\n if (Ci(e))\n return 2;\n}\nfunction zn(e, n, t) {\n const r = [];\n let i = -1;\n for (; ++i < e.length; ) {\n const l = e[i].resolveAll;\n l && !r.includes(l) && (n = l(n, t), r.push(l));\n }\n return n;\n}\nconst xn = {\n name: \"attention\",\n resolveAll: Li,\n tokenize: vi\n};\nfunction Li(e, n) {\n let t = -1, r, i, l, o, a, s, u, c;\n for (; ++t < e.length; )\n if (e[t][0] === \"enter\" && e[t][1].type === \"attentionSequence\" && e[t][1]._close) {\n for (r = t; r--; )\n if (e[r][0] === \"exit\" && e[r][1].type === \"attentionSequence\" && e[r][1]._open && // If the markers are the same:\n n.sliceSerialize(e[r][1]).charCodeAt(0) === n.sliceSerialize(e[t][1]).charCodeAt(0)) {\n if ((e[r][1]._close || e[t][1]._open) && (e[t][1].end.offset - e[t][1].start.offset) % 3 && !((e[r][1].end.offset - e[r][1].start.offset + e[t][1].end.offset - e[t][1].start.offset) % 3))\n continue;\n s = e[r][1].end.offset - e[r][1].start.offset > 1 && e[t][1].end.offset - e[t][1].start.offset > 1 ? 2 : 1;\n const f = {\n ...e[r][1].end\n }, d = {\n ...e[t][1].start\n };\n nt(f, -s), nt(d, s), o = {\n type: s > 1 ? \"strongSequence\" : \"emphasisSequence\",\n start: f,\n end: {\n ...e[r][1].end\n }\n }, a = {\n type: s > 1 ? \"strongSequence\" : \"emphasisSequence\",\n start: {\n ...e[t][1].start\n },\n end: d\n }, l = {\n type: s > 1 ? \"strongText\" : \"emphasisText\",\n start: {\n ...e[r][1].end\n },\n end: {\n ...e[t][1].start\n }\n }, i = {\n type: s > 1 ? \"strong\" : \"emphasis\",\n start: {\n ...o.start\n },\n end: {\n ...a.end\n }\n }, e[r][1].end = {\n ...o.start\n }, e[t][1].start = {\n ...a.end\n }, u = [], e[r][1].end.offset - e[r][1].start.offset && (u = ne(u, [[\"enter\", e[r][1], n], [\"exit\", e[r][1], n]])), u = ne(u, [[\"enter\", i, n], [\"enter\", o, n], [\"exit\", o, n], [\"enter\", l, n]]), u = ne(u, zn(n.parser.constructs.insideSpan.null, e.slice(r + 1, t), n)), u = ne(u, [[\"exit\", l, n], [\"enter\", a, n], [\"exit\", a, n], [\"exit\", i, n]]), e[t][1].end.offset - e[t][1].start.offset ? (c = 2, u = ne(u, [[\"enter\", e[t][1], n], [\"exit\", e[t][1], n]])) : c = 0, ce(e, r - 1, t - r + 3, u), t = r + u.length - c - 2;\n break;\n }\n }\n for (t = -1; ++t < e.length; )\n e[t][1].type === \"attentionSequence\" && (e[t][1].type = \"data\");\n return e;\n}\nfunction vi(e, n) {\n const t = this.parser.constructs.attentionMarkers.null, r = this.previous, i = et(r);\n let l;\n return o;\n function o(s) {\n return l = s, e.enter(\"attentionSequence\"), a(s);\n }\n function a(s) {\n if (s === l)\n return e.consume(s), a;\n const u = e.exit(\"attentionSequence\"), c = et(s), f = !c || c === 2 && i || t.includes(s), d = !i || i === 2 && c || t.includes(r);\n return u._open = !!(l === 42 ? f : f && (i || !d)), u._close = !!(l === 42 ? d : d && (c || !f)), n(s);\n }\n}\nfunction nt(e, n) {\n e.column += n, e.offset += n, e._bufferIndex += n;\n}\nconst Di = {\n name: \"autolink\",\n tokenize: Oi\n};\nfunction Oi(e, n, t) {\n let r = 0;\n return i;\n function i(p) {\n return e.enter(\"autolink\"), e.enter(\"autolinkMarker\"), e.consume(p), e.exit(\"autolinkMarker\"), e.enter(\"autolinkProtocol\"), l;\n }\n function l(p) {\n return se(p) ? (e.consume(p), o) : p === 64 ? t(p) : u(p);\n }\n function o(p) {\n return p === 43 || p === 45 || p === 46 || ee(p) ? (r = 1, a(p)) : u(p);\n }\n function a(p) {\n return p === 58 ? (e.consume(p), r = 0, s) : (p === 43 || p === 45 || p === 46 || ee(p)) && r++ < 32 ? (e.consume(p), a) : (r = 0, u(p));\n }\n function s(p) {\n return p === 62 ? (e.exit(\"autolinkProtocol\"), e.enter(\"autolinkMarker\"), e.consume(p), e.exit(\"autolinkMarker\"), e.exit(\"autolink\"), n) : p === null || p === 32 || p === 60 || gn(p) ? t(p) : (e.consume(p), s);\n }\n function u(p) {\n return p === 64 ? (e.consume(p), c) : bi(p) ? (e.consume(p), u) : t(p);\n }\n function c(p) {\n return ee(p) ? f(p) : t(p);\n }\n function f(p) {\n return p === 46 ? (e.consume(p), r = 0, c) : p === 62 ? (e.exit(\"autolinkProtocol\").type = \"autolinkEmail\", e.enter(\"autolinkMarker\"), e.consume(p), e.exit(\"autolinkMarker\"), e.exit(\"autolink\"), n) : d(p);\n }\n function d(p) {\n if ((p === 45 || ee(p)) && r++ < 63) {\n const b = p === 45 ? d : f;\n return e.consume(p), b;\n }\n return t(p);\n }\n}\nconst Ke = {\n partial: !0,\n tokenize: Ri\n};\nfunction Ri(e, n, t) {\n return r;\n function r(l) {\n return _(l) ? V(e, i, \"linePrefix\")(l) : i(l);\n }\n function i(l) {\n return l === null || L(l) ? n(l) : t(l);\n }\n}\nconst Ht = {\n continuation: {\n tokenize: Ni\n },\n exit: Mi,\n name: \"blockQuote\",\n tokenize: Fi\n};\nfunction Fi(e, n, t) {\n const r = this;\n return i;\n function i(o) {\n if (o === 62) {\n const a = r.containerState;\n return a.open || (e.enter(\"blockQuote\", {\n _container: !0\n }), a.open = !0), e.enter(\"blockQuotePrefix\"), e.enter(\"blockQuoteMarker\"), e.consume(o), e.exit(\"blockQuoteMarker\"), l;\n }\n return t(o);\n }\n function l(o) {\n return _(o) ? (e.enter(\"blockQuotePrefixWhitespace\"), e.consume(o), e.exit(\"blockQuotePrefixWhitespace\"), e.exit(\"blockQuotePrefix\"), n) : (e.exit(\"blockQuotePrefix\"), n(o));\n }\n}\nfunction Ni(e, n, t) {\n const r = this;\n return i;\n function i(o) {\n return _(o) ? V(e, l, \"linePrefix\", r.parser.constructs.disable.null.includes(\"codeIndented\") ? void 0 : 4)(o) : l(o);\n }\n function l(o) {\n return e.attempt(Ht, n, t)(o);\n }\n}\nfunction Mi(e) {\n e.exit(\"blockQuote\");\n}\nconst Ut = {\n name: \"characterEscape\",\n tokenize: _i\n};\nfunction _i(e, n, t) {\n return r;\n function r(l) {\n return e.enter(\"characterEscape\"), e.enter(\"escapeMarker\"), e.consume(l), e.exit(\"escapeMarker\"), i;\n }\n function i(l) {\n return Si(l) ? (e.enter(\"characterEscapeValue\"), e.consume(l), e.exit(\"characterEscapeValue\"), e.exit(\"characterEscape\"), n) : t(l);\n }\n}\nconst Vt = {\n name: \"characterReference\",\n tokenize: Bi\n};\nfunction Bi(e, n, t) {\n const r = this;\n let i = 0, l, o;\n return a;\n function a(f) {\n return e.enter(\"characterReference\"), e.enter(\"characterReferenceMarker\"), e.consume(f), e.exit(\"characterReferenceMarker\"), s;\n }\n function s(f) {\n return f === 35 ? (e.enter(\"characterReferenceMarkerNumeric\"), e.consume(f), e.exit(\"characterReferenceMarkerNumeric\"), u) : (e.enter(\"characterReferenceValue\"), l = 31, o = ee, c(f));\n }\n function u(f) {\n return f === 88 || f === 120 ? (e.enter(\"characterReferenceMarkerHexadecimal\"), e.consume(f), e.exit(\"characterReferenceMarkerHexadecimal\"), e.enter(\"characterReferenceValue\"), l = 6, o = wi, c) : (e.enter(\"characterReferenceValue\"), l = 7, o = yn, c(f));\n }\n function c(f) {\n if (f === 59 && i) {\n const d = e.exit(\"characterReferenceValue\");\n return o === ee && !Pn(r.sliceSerialize(d)) ? t(f) : (e.enter(\"characterReferenceMarker\"), e.consume(f), e.exit(\"characterReferenceMarker\"), e.exit(\"characterReference\"), n);\n }\n return o(f) && i++ < l ? (e.consume(f), c) : t(f);\n }\n}\nconst tt = {\n partial: !0,\n tokenize: Hi\n}, rt = {\n concrete: !0,\n name: \"codeFenced\",\n tokenize: ji\n};\nfunction ji(e, n, t) {\n const r = this, i = {\n partial: !0,\n tokenize: R\n };\n let l = 0, o = 0, a;\n return s;\n function s(y) {\n return u(y);\n }\n function u(y) {\n const F = r.events[r.events.length - 1];\n return l = F && F[1].type === \"linePrefix\" ? F[2].sliceSerialize(F[1], !0).length : 0, a = y, e.enter(\"codeFenced\"), e.enter(\"codeFencedFence\"), e.enter(\"codeFencedFenceSequence\"), c(y);\n }\n function c(y) {\n return y === a ? (o++, e.consume(y), c) : o < 3 ? t(y) : (e.exit(\"codeFencedFenceSequence\"), _(y) ? V(e, f, \"whitespace\")(y) : f(y));\n }\n function f(y) {\n return y === null || L(y) ? (e.exit(\"codeFencedFence\"), r.interrupt ? n(y) : e.check(tt, w, N)(y)) : (e.enter(\"codeFencedFenceInfo\"), e.enter(\"chunkString\", {\n contentType: \"string\"\n }), d(y));\n }\n function d(y) {\n return y === null || L(y) ? (e.exit(\"chunkString\"), e.exit(\"codeFencedFenceInfo\"), f(y)) : _(y) ? (e.exit(\"chunkString\"), e.exit(\"codeFencedFenceInfo\"), V(e, p, \"whitespace\")(y)) : y === 96 && y === a ? t(y) : (e.consume(y), d);\n }\n function p(y) {\n return y === null || L(y) ? f(y) : (e.enter(\"codeFencedFenceMeta\"), e.enter(\"chunkString\", {\n contentType: \"string\"\n }), b(y));\n }\n function b(y) {\n return y === null || L(y) ? (e.exit(\"chunkString\"), e.exit(\"codeFencedFenceMeta\"), f(y)) : y === 96 && y === a ? t(y) : (e.consume(y), b);\n }\n function w(y) {\n return e.attempt(i, N, A)(y);\n }\n function A(y) {\n return e.enter(\"lineEnding\"), e.consume(y), e.exit(\"lineEnding\"), x;\n }\n function x(y) {\n return l > 0 && _(y) ? V(e, C, \"linePrefix\", l + 1)(y) : C(y);\n }\n function C(y) {\n return y === null || L(y) ? e.check(tt, w, N)(y) : (e.enter(\"codeFlowValue\"), E(y));\n }\n function E(y) {\n return y === null || L(y) ? (e.exit(\"codeFlowValue\"), C(y)) : (e.consume(y), E);\n }\n function N(y) {\n return e.exit(\"codeFenced\"), n(y);\n }\n function R(y, F, q) {\n let B = 0;\n return j;\n function j(v) {\n return y.enter(\"lineEnding\"), y.consume(v), y.exit(\"lineEnding\"), z;\n }\n function z(v) {\n return y.enter(\"codeFencedFence\"), _(v) ? V(y, T, \"linePrefix\", r.parser.constructs.disable.null.includes(\"codeIndented\") ? void 0 : 4)(v) : T(v);\n }\n function T(v) {\n return v === a ? (y.enter(\"codeFencedFenceSequence\"), P(v)) : q(v);\n }\n function P(v) {\n return v === a ? (B++, y.consume(v), P) : B >= o ? (y.exit(\"codeFencedFenceSequence\"), _(v) ? V(y, I, \"whitespace\")(v) : I(v)) : q(v);\n }\n function I(v) {\n return v === null || L(v) ? (y.exit(\"codeFencedFence\"), F(v)) : q(v);\n }\n }\n}\nfunction Hi(e, n, t) {\n const r = this;\n return i;\n function i(o) {\n return o === null ? t(o) : (e.enter(\"lineEnding\"), e.consume(o), e.exit(\"lineEnding\"), l);\n }\n function l(o) {\n return r.parser.lazy[r.now().line] ? t(o) : n(o);\n }\n}\nconst tn = {\n name: \"codeIndented\",\n tokenize: Vi\n}, Ui = {\n partial: !0,\n tokenize: qi\n};\nfunction Vi(e, n, t) {\n const r = this;\n return i;\n function i(u) {\n return e.enter(\"codeIndented\"), V(e, l, \"linePrefix\", 5)(u);\n }\n function l(u) {\n const c = r.events[r.events.length - 1];\n return c && c[1].type === \"linePrefix\" && c[2].sliceSerialize(c[1], !0).length >= 4 ? o(u) : t(u);\n }\n function o(u) {\n return u === null ? s(u) : L(u) ? e.attempt(Ui, o, s)(u) : (e.enter(\"codeFlowValue\"), a(u));\n }\n function a(u) {\n return u === null || L(u) ? (e.exit(\"codeFlowValue\"), o(u)) : (e.consume(u), a);\n }\n function s(u) {\n return e.exit(\"codeIndented\"), n(u);\n }\n}\nfunction qi(e, n, t) {\n const r = this;\n return i;\n function i(o) {\n return r.parser.lazy[r.now().line] ? t(o) : L(o) ? (e.enter(\"lineEnding\"), e.consume(o), e.exit(\"lineEnding\"), i) : V(e, l, \"linePrefix\", 5)(o);\n }\n function l(o) {\n const a = r.events[r.events.length - 1];\n return a && a[1].type === \"linePrefix\" && a[2].sliceSerialize(a[1], !0).length >= 4 ? n(o) : L(o) ? i(o) : t(o);\n }\n}\nconst $i = {\n name: \"codeText\",\n previous: Yi,\n resolve: Wi,\n tokenize: Qi\n};\nfunction Wi(e) {\n let n = e.length - 4, t = 3, r, i;\n if ((e[t][1].type === \"lineEnding\" || e[t][1].type === \"space\") && (e[n][1].type === \"lineEnding\" || e[n][1].type === \"space\")) {\n for (r = t; ++r < n; )\n if (e[r][1].type === \"codeTextData\") {\n e[t][1].type = \"codeTextPadding\", e[n][1].type = \"codeTextPadding\", t += 2, n -= 2;\n break;\n }\n }\n for (r = t - 1, n++; ++r <= n; )\n i === void 0 ? r !== n && e[r][1].type !== \"lineEnding\" && (i = r) : (r === n || e[r][1].type === \"lineEnding\") && (e[i][1].type = \"codeTextData\", r !== i + 2 && (e[i][1].end = e[r - 1][1].end, e.splice(i + 2, r - i - 2), n -= r - i - 2, r = i + 2), i = void 0);\n return e;\n}\nfunction Yi(e) {\n return e !== 96 || this.events[this.events.length - 1][1].type === \"characterEscape\";\n}\nfunction Qi(e, n, t) {\n let r = 0, i, l;\n return o;\n function o(f) {\n return e.enter(\"codeText\"), e.enter(\"codeTextSequence\"), a(f);\n }\n function a(f) {\n return f === 96 ? (e.consume(f), r++, a) : (e.exit(\"codeTextSequence\"), s(f));\n }\n function s(f) {\n return f === null ? t(f) : f === 32 ? (e.enter(\"space\"), e.consume(f), e.exit(\"space\"), s) : f === 96 ? (l = e.enter(\"codeTextSequence\"), i = 0, c(f)) : L(f) ? (e.enter(\"lineEnding\"), e.consume(f), e.exit(\"lineEnding\"), s) : (e.enter(\"codeTextData\"), u(f));\n }\n function u(f) {\n return f === null || f === 32 || f === 96 || L(f) ? (e.exit(\"codeTextData\"), s(f)) : (e.consume(f), u);\n }\n function c(f) {\n return f === 96 ? (e.consume(f), i++, c) : i === r ? (e.exit(\"codeTextSequence\"), e.exit(\"codeText\"), n(f)) : (l.type = \"codeTextData\", u(f));\n }\n}\nclass Xi {\n /**\n * @param {ReadonlyArray<T> | null | undefined} [initial]\n * Initial items (optional).\n * @returns\n * Splice buffer.\n */\n constructor(n) {\n this.left = n ? [...n] : [], this.right = [];\n }\n /**\n * Array access;\n * does not move the cursor.\n *\n * @param {number} index\n * Index.\n * @return {T}\n * Item.\n */\n get(n) {\n if (n < 0 || n >= this.left.length + this.right.length)\n throw new RangeError(\"Cannot access index `\" + n + \"` in a splice buffer of size `\" + (this.left.length + this.right.length) + \"`\");\n return n < this.left.length ? this.left[n] : this.right[this.right.length - n + this.left.length - 1];\n }\n /**\n * The length of the splice buffer, one greater than the largest index in the\n * array.\n */\n get length() {\n return this.left.length + this.right.length;\n }\n /**\n * Remove and return `list[0]`;\n * moves the cursor to `0`.\n *\n * @returns {T | undefined}\n * Item, optional.\n */\n shift() {\n return this.setCursor(0), this.right.pop();\n }\n /**\n * Slice the buffer to get an array;\n * does not move the cursor.\n *\n * @param {number} start\n * Start.\n * @param {number | null | undefined} [end]\n * End (optional).\n * @returns {Array<T>}\n * Array of items.\n */\n slice(n, t) {\n const r = t ?? Number.POSITIVE_INFINITY;\n return r < this.left.length ? this.left.slice(n, r) : n > this.left.length ? this.right.slice(this.right.length - r + this.left.length, this.right.length - n + this.left.length).reverse() : this.left.slice(n).concat(this.right.slice(this.right.length - r + this.left.length).reverse());\n }\n /**\n * Mimics the behavior of Array.prototype.splice() except for the change of\n * interface necessary to avoid segfaults when patching in very large arrays.\n *\n * This operation moves cursor is moved to `start` and results in the cursor\n * placed after any inserted items.\n *\n * @param {number} start\n * Start;\n * zero-based index at which to start changing the array;\n * negative numbers count backwards from the end of the array and values\n * that are out-of bounds are clamped to the appropriate end of the array.\n * @param {number | null | undefined} [deleteCount=0]\n * Delete count (default: `0`);\n * maximum number of elements to delete, starting from start.\n * @param {Array<T> | null | undefined} [items=[]]\n * Items to include in place of the deleted items (default: `[]`).\n * @return {Array<T>}\n * Any removed items.\n */\n splice(n, t, r) {\n const i = t || 0;\n this.setCursor(Math.trunc(n));\n const l = this.right.splice(this.right.length - i, Number.POSITIVE_INFINITY);\n return r && Oe(this.left, r), l.reverse();\n }\n /**\n * Remove and return the highest-numbered item in the array, so\n * `list[list.length - 1]`;\n * Moves the cursor to `length`.\n *\n * @returns {T | undefined}\n * Item, optional.\n */\n pop() {\n return this.setCursor(Number.POSITIVE_INFINITY), this.left.pop();\n }\n /**\n * Inserts a single item to the high-numbered side of the array;\n * moves the cursor to `length`.\n *\n * @param {T} item\n * Item.\n * @returns {undefined}\n * Nothing.\n */\n push(n) {\n this.setCursor(Number.POSITIVE_INFINITY), this.left.push(n);\n }\n /**\n * Inserts many items to the high-numbered side of the array.\n * Moves the cursor to `length`.\n *\n * @param {Array<T>} items\n * Items.\n * @returns {undefined}\n * Nothing.\n */\n pushMany(n) {\n this.setCursor(Number.POSITIVE_INFINITY), Oe(this.left, n);\n }\n /**\n * Inserts a single item to the low-numbered side of the array;\n * Moves the cursor to `0`.\n *\n * @param {T} item\n * Item.\n * @returns {undefined}\n * Nothing.\n */\n unshift(n) {\n this.setCursor(0), this.right.push(n);\n }\n /**\n * Inserts many items to the low-numbered side of the array;\n * moves the cursor to `0`.\n *\n * @param {Array<T>} items\n * Items.\n * @returns {undefined}\n * Nothing.\n */\n unshiftMany(n) {\n this.setCursor(0), Oe(this.right, n.reverse());\n }\n /**\n * Move the cursor to a specific position in the array. Requires\n * time proportional to the distance moved.\n *\n * If `n < 0`, the cursor will end up at the beginning.\n * If `n > length`, the cursor will end up at the end.\n *\n * @param {number} n\n * Position.\n * @return {undefined}\n * Nothing.\n */\n setCursor(n) {\n if (!(n === this.left.length || n > this.left.length && this.right.length === 0 || n < 0 && this.left.length === 0))\n if (n < this.left.length) {\n const t = this.left.splice(n, Number.POSITIVE_INFINITY);\n Oe(this.right, t.reverse());\n } else {\n const t = this.right.splice(this.left.length + this.right.length - n, Number.POSITIVE_INFINITY);\n Oe(this.left, t.reverse());\n }\n }\n}\nfunction Oe(e, n) {\n let t = 0;\n if (n.length < 1e4)\n e.push(...n);\n else\n for (; t < n.length; )\n e.push(...n.slice(t, t + 1e4)), t += 1e4;\n}\nfunction qt(e) {\n const n = {};\n let t = -1, r, i, l, o, a, s, u;\n const c = new Xi(e);\n for (; ++t < c.length; ) {\n for (; t in n; )\n t = n[t];\n if (r = c.get(t), t && r[1].type === \"chunkFlow\" && c.get(t - 1)[1].type === \"listItemPrefix\" && (s = r[1]._tokenizer.events, l = 0, l < s.length && s[l][1].type === \"lineEndingBlank\" && (l += 2), l < s.length && s[l][1].type === \"content\"))\n for (; ++l < s.length && s[l][1].type !== \"content\"; )\n s[l][1].type === \"chunkText\" && (s[l][1]._isInFirstContentOfListItem = !0, l++);\n if (r[0] === \"enter\")\n r[1].contentType && (Object.assign(n, Ki(c, t)), t = n[t], u = !0);\n else if (r[1]._container) {\n for (l = t, i = void 0; l--; )\n if (o = c.get(l), o[1].type === \"lineEnding\" || o[1].type === \"lineEndingBlank\")\n o[0] === \"enter\" && (i && (c.get(i)[1].type = \"lineEndingBlank\"), o[1].type = \"lineEnding\", i = l);\n else if (o[1].type !== \"linePrefix\") break;\n i && (r[1].end = {\n ...c.get(i)[1].start\n }, a = c.slice(i, t), a.unshift(r), c.splice(i, t - i + 1, a));\n }\n }\n return ce(e, 0, Number.POSITIVE_INFINITY, c.slice(0)), !u;\n}\nfunction Ki(e, n) {\n const t = e.get(n)[1], r = e.get(n)[2];\n let i = n - 1;\n const l = [], o = t._tokenizer || r.parser[t.contentType](t.start), a = o.events, s = [], u = {};\n let c, f, d = -1, p = t, b = 0, w = 0;\n const A = [w];\n for (; p; ) {\n for (; e.get(++i)[1] !== p; )\n ;\n l.push(i), p._tokenizer || (c = r.sliceStream(p), p.next || c.push(null), f && o.defineSkip(p.start), p._isInFirstContentOfListItem && (o._gfmTasklistFirstContentOfListItem = !0), o.write(c), p._isInFirstContentOfListItem && (o._gfmTasklistFirstContentOfListItem = void 0)), f = p, p = p.next;\n }\n for (p = t; ++d < a.length; )\n // Find a void token that includes a break.\n a[d][0] === \"exit\" && a[d - 1][0] === \"enter\" && a[d][1].type === a[d - 1][1].type && a[d][1].start.line !== a[d][1].end.line && (w = d + 1, A.push(w), p._tokenizer = void 0, p.previous = void 0, p = p.next);\n for (o.events = [], p ? (p._tokenizer = void 0, p.previous = void 0) : A.pop(), d = A.length; d--; ) {\n const x = a.slice(A[d], A[d + 1]), C = l.pop();\n s.push([C, C + x.length - 1]), e.splice(C, 2, x);\n }\n for (s.reverse(), d = -1; ++d < s.length; )\n u[b + s[d][0]] = b + s[d][1], b += s[d][1] - s[d][0] - 1;\n return u;\n}\nconst Gi = {\n resolve: Zi,\n tokenize: el\n}, Ji = {\n partial: !0,\n tokenize: nl\n};\nfunction Zi(e) {\n return qt(e), e;\n}\nfunction el(e, n) {\n let t;\n return r;\n function r(a) {\n return e.enter(\"content\"), t = e.enter(\"chunkContent\", {\n contentType: \"content\"\n }), i(a);\n }\n function i(a) {\n return a === null ? l(a) : L(a) ? e.check(Ji, o, l)(a) : (e.consume(a), i);\n }\n function l(a) {\n return e.exit(\"chunkContent\"), e.exit(\"content\"), n(a);\n }\n function o(a) {\n return e.consume(a), e.exit(\"chunkContent\"), t.next = e.enter(\"chunkContent\", {\n contentType: \"content\",\n previous: t\n }), t = t.next, i;\n }\n}\nfunction nl(e, n, t) {\n const r = this;\n return i;\n function i(o) {\n return e.exit(\"chunkContent\"), e.enter(\"lineEnding\"), e.consume(o), e.exit(\"lineEnding\"), V(e, l, \"linePrefix\");\n }\n function l(o) {\n if (o === null || L(o))\n return t(o);\n const a = r.events[r.events.length - 1];\n return !r.parser.constructs.disable.null.includes(\"codeIndented\") && a && a[1].type === \"linePrefix\" && a[2].sliceSerialize(a[1], !0).length >= 4 ? n(o) : e.interrupt(r.parser.constructs.flow, t, n)(o);\n }\n}\nfunction $t(e, n, t, r, i, l, o, a, s) {\n const u = s || Number.POSITIVE_INFINITY;\n let c = 0;\n return f;\n function f(x) {\n return x === 60 ? (e.enter(r), e.enter(i), e.enter(l), e.consume(x), e.exit(l), d) : x === null || x === 32 || x === 41 || gn(x) ? t(x) : (e.enter(r), e.enter(o), e.enter(a), e.enter(\"chunkString\", {\n contentType: \"string\"\n }), w(x));\n }\n function d(x) {\n return x === 62 ? (e.enter(l), e.consume(x), e.exit(l), e.exit(i), e.exit(r), n) : (e.enter(a), e.enter(\"chunkString\", {\n contentType: \"string\"\n }), p(x));\n }\n function p(x) {\n return x === 62 ? (e.exit(\"chunkString\"), e.exit(a), d(x)) : x === null || x === 60 || L(x) ? t(x) : (e.consume(x), x === 92 ? b : p);\n }\n function b(x) {\n return x === 60 || x === 62 || x === 92 ? (e.consume(x), p) : p(x);\n }\n function w(x) {\n return !c && (x === null || x === 41 || G(x)) ? (e.exit(\"chunkString\"), e.exit(a), e.exit(o), e.exit(r), n(x)) : c < u && x === 40 ? (e.consume(x), c++, w) : x === 41 ? (e.consume(x), c--, w) : x === null || x === 32 || x === 40 || gn(x) ? t(x) : (e.consume(x), x === 92 ? A : w);\n }\n function A(x) {\n return x === 40 || x === 41 || x === 92 ? (e.consume(x), w) : w(x);\n }\n}\nfunction Wt(e, n, t, r, i, l) {\n const o = this;\n let a = 0, s;\n return u;\n function u(p) {\n return e.enter(r), e.enter(i), e.consume(p), e.exit(i), e.enter(l), c;\n }\n function c(p) {\n return a > 999 || p === null || p === 91 || p === 93 && !s || // To do: remove in the future once we’ve switched from\n // `micromark-extension-footnote` to `micromark-extension-gfm-footnote`,\n // which doesn’t need this.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n p === 94 && !a && \"_hiddenFootnoteSupport\" in o.parser.constructs ? t(p) : p === 93 ? (e.exit(l), e.enter(i), e.consume(p), e.exit(i), e.exit(r), n) : L(p) ? (e.enter(\"lineEnding\"), e.consume(p), e.exit(\"lineEnding\"), c) : (e.enter(\"chunkString\", {\n contentType: \"string\"\n }), f(p));\n }\n function f(p) {\n return p === null || p === 91 || p === 93 || L(p) || a++ > 999 ? (e.exit(\"chunkString\"), c(p)) : (e.consume(p), s || (s = !_(p)), p === 92 ? d : f);\n }\n function d(p) {\n return p === 91 || p === 92 || p === 93 ? (e.consume(p), a++, f) : f(p);\n }\n}\nfunction Yt(e, n, t, r, i, l) {\n let o;\n return a;\n function a(d) {\n return d === 34 || d === 39 || d === 40 ? (e.enter(r), e.enter(i), e.consume(d), e.exit(i), o = d === 40 ? 41 : d, s) : t(d);\n }\n function s(d) {\n return d === o ? (e.enter(i), e.consume(d), e.exit(i), e.exit(r), n) : (e.enter(l), u(d));\n }\n function u(d) {\n return d === o ? (e.exit(l), s(o)) : d === null ? t(d) : L(d) ? (e.enter(\"lineEnding\"), e.consume(d), e.exit(\"lineEnding\"), V(e, u, \"linePrefix\")) : (e.enter(\"chunkString\", {\n contentType: \"string\"\n }), c(d));\n }\n function c(d) {\n return d === o || d === null || L(d) ? (e.exit(\"chunkString\"), u(d)) : (e.consume(d), d === 92 ? f : c);\n }\n function f(d) {\n return d === o || d === 92 ? (e.consume(d), c) : c(d);\n }\n}\nfunction Ne(e, n) {\n let t;\n return r;\n function r(i) {\n return L(i) ? (e.enter(\"lineEnding\"), e.consume(i), e.exit(\"lineEnding\"), t = !0, r) : _(i) ? V(e, r, t ? \"linePrefix\" : \"lineSuffix\")(i) : n(i);\n }\n}\nconst tl = {\n name: \"definition\",\n tokenize: il\n}, rl = {\n partial: !0,\n tokenize: ll\n};\nfunction il(e, n, t) {\n const r = this;\n let i;\n return l;\n function l(p) {\n return e.enter(\"definition\"), o(p);\n }\n function o(p) {\n return Wt.call(\n r,\n e,\n a,\n // Note: we don’t need to reset the way `markdown-rs` does.\n t,\n \"definitionLabel\",\n \"definitionLabelMarker\",\n \"definitionLabelString\"\n )(p);\n }\n function a(p) {\n return i = Te(r.sliceSerialize(r.events[r.events.length - 1][1]).slice(1, -1)), p === 58 ? (e.enter(\"definitionMarker\"), e.consume(p), e.exit(\"definitionMarker\"), s) : t(p);\n }\n function s(p) {\n return G(p) ? Ne(e, u)(p) : u(p);\n }\n function u(p) {\n return $t(\n e,\n c,\n // Note: we don’t need to reset the way `markdown-rs` does.\n t,\n \"definitionDestination\",\n \"definitionDestinationLiteral\",\n \"definitionDestinationLiteralMarker\",\n \"definitionDestinationRaw\",\n \"definitionDestinationString\"\n )(p);\n }\n function c(p) {\n return e.attempt(rl, f, f)(p);\n }\n function f(p) {\n return _(p) ? V(e, d, \"whitespace\")(p) : d(p);\n }\n function d(p) {\n return p === null || L(p) ? (e.exit(\"definition\"), r.parser.defined.push(i), n(p)) : t(p);\n }\n}\nfunction ll(e, n, t) {\n return r;\n function r(a) {\n return G(a) ? Ne(e, i)(a) : t(a);\n }\n function i(a) {\n return Yt(e, l, t, \"definitionTitle\", \"definitionTitleMarker\", \"definitionTitleString\")(a);\n }\n function l(a) {\n return _(a) ? V(e, o, \"whitespace\")(a) : o(a);\n }\n function o(a) {\n return a === null || L(a) ? n(a) : t(a);\n }\n}\nconst ol = {\n name: \"hardBreakEscape\",\n tokenize: al\n};\nfunction al(e, n, t) {\n return r;\n function r(l) {\n return e.enter(\"hardBreakEscape\"), e.consume(l), i;\n }\n function i(l) {\n return L(l) ? (e.exit(\"hardBreakEscape\"), n(l)) : t(l);\n }\n}\nconst ul = {\n name: \"headingAtx\",\n resolve: sl,\n tokenize: cl\n};\nfunction sl(e, n) {\n let t = e.length - 2, r = 3, i, l;\n return e[r][1].type === \"whitespace\" && (r += 2), t - 2 > r && e[t][1].type === \"whitespace\" && (t -= 2), e[t][1].type === \"atxHeadingSequence\" && (r === t - 1 || t - 4 > r && e[t - 2][1].type === \"whitespace\") && (t -= r + 1 === t ? 2 : 4), t > r && (i = {\n type: \"atxHeadingText\",\n start: e[r][1].start,\n end: e[t][1].end\n }, l = {\n type: \"chunkText\",\n start: e[r][1].start,\n end: e[t][1].end,\n contentType: \"text\"\n }, ce(e, r, t - r + 1, [[\"enter\", i, n], [\"enter\", l, n], [\"exit\", l, n], [\"exit\", i, n]])), e;\n}\nfunction cl(e, n, t) {\n let r = 0;\n return i;\n function i(c) {\n return e.enter(\"atxHeading\"), l(c);\n }\n function l(c) {\n return e.enter(\"atxHeadingSequence\"), o(c);\n }\n function o(c) {\n return c === 35 && r++ < 6 ? (e.consume(c), o) : c === null || G(c) ? (e.exit(\"atxHeadingSequence\"), a(c)) : t(c);\n }\n function a(c) {\n return c === 35 ? (e.enter(\"atxHeadingSequence\"), s(c)) : c === null || L(c) ? (e.exit(\"atxHeading\"), n(c)) : _(c) ? V(e, a, \"whitespace\")(c) : (e.enter(\"atxHeadingText\"), u(c));\n }\n function s(c) {\n return c === 35 ? (e.consume(c), s) : (e.exit(\"atxHeadingSequence\"), a(c));\n }\n function u(c) {\n return c === null || c === 35 || G(c) ? (e.exit(\"atxHeadingText\"), a(c)) : (e.consume(c), u);\n }\n}\nconst pl = [\n \"address\",\n \"article\",\n \"aside\",\n \"base\",\n \"basefont\",\n \"blockquote\",\n \"body\",\n \"caption\",\n \"center\",\n \"col\",\n \"colgroup\",\n \"dd\",\n \"details\",\n \"dialog\",\n \"dir\",\n \"div\",\n \"dl\",\n \"dt\",\n \"fieldset\",\n \"figcaption\",\n \"figure\",\n \"footer\",\n \"form\",\n \"frame\",\n \"frameset\",\n \"h1\",\n \"h2\",\n \"h3\",\n \"h4\",\n \"h5\",\n \"h6\",\n \"head\",\n \"header\",\n \"hr\",\n \"html\",\n \"iframe\",\n \"legend\",\n \"li\",\n \"link\",\n \"main\",\n \"menu\",\n \"menuitem\",\n \"nav\",\n \"noframes\",\n \"ol\",\n \"optgroup\",\n \"option\",\n \"p\",\n \"param\",\n \"search\",\n \"section\",\n \"summary\",\n \"table\",\n \"tbody\",\n \"td\",\n \"tfoot\",\n \"th\",\n \"thead\",\n \"title\",\n \"tr\",\n \"track\",\n \"ul\"\n], it = [\"pre\", \"script\", \"style\", \"textarea\"], fl = {\n concrete: !0,\n name: \"htmlFlow\",\n resolveTo: dl,\n tokenize: gl\n}, hl = {\n partial: !0,\n tokenize: xl\n}, ml = {\n partial: !0,\n tokenize: yl\n};\nfunction dl(e) {\n let n = e.length;\n for (; n-- && !(e[n][0] === \"enter\" && e[n][1].type === \"htmlFlow\"); )\n ;\n return n > 1 && e[n - 2][1].type === \"linePrefix\" && (e[n][1].start = e[n - 2][1].start, e[n + 1][1].start = e[n - 2][1].start, e.splice(n - 2, 2)), e;\n}\nfunction gl(e, n, t) {\n const r = this;\n let i, l, o, a, s;\n return u;\n function u(m) {\n return c(m);\n }\n function c(m) {\n return e.enter(\"htmlFlow\"), e.enter(\"htmlFlowData\"), e.consume(m), f;\n }\n function f(m) {\n return m === 33 ? (e.consume(m), d) : m === 47 ? (e.consume(m), l = !0, w) : m === 63 ? (e.consume(m), i = 3, r.interrupt ? n : h) : se(m) ? (e.consume(m), o = String.fromCharCode(m), A) : t(m);\n }\n function d(m) {\n return m === 45 ? (e.consume(m), i = 2, p) : m === 91 ? (e.consume(m), i = 5, a = 0, b) : se(m) ? (e.consume(m), i = 4, r.interrupt ? n : h) : t(m);\n }\n function p(m) {\n return m === 45 ? (e.consume(m), r.interrupt ? n : h) : t(m);\n }\n function b(m) {\n const le = \"CDATA[\";\n return m === le.charCodeAt(a++) ? (e.consume(m), a === le.length ? r.interrupt ? n : T : b) : t(m);\n }\n function w(m) {\n return se(m) ? (e.consume(m), o = String.fromCharCode(m), A) : t(m);\n }\n function A(m) {\n if (m === null || m === 47 || m === 62 || G(m)) {\n const le = m === 47, xe = o.toLowerCase();\n return !le && !l && it.includes(xe) ? (i = 1, r.interrupt ? n(m) : T(m)) : pl.includes(o.toLowerCase()) ? (i = 6, le ? (e.consume(m), x) : r.interrupt ? n(m) : T(m)) : (i = 7, r.interrupt && !r.parser.lazy[r.now().line] ? t(m) : l ? C(m) : E(m));\n }\n return m === 45 || ee(m) ? (e.consume(m), o += String.fromCharCode(m), A) : t(m);\n }\n function x(m) {\n return m === 62 ? (e.consume(m), r.interrupt ? n : T) : t(m);\n }\n function C(m) {\n return _(m) ? (e.consume(m), C) : j(m);\n }\n function E(m) {\n return m === 47 ? (e.consume(m), j) : m === 58 || m === 95 || se(m) ? (e.consume(m), N) : _(m) ? (e.consume(m), E) : j(m);\n }\n function N(m) {\n return m === 45 || m === 46 || m === 58 || m === 95 || ee(m) ? (e.consume(m), N) : R(m);\n }\n function R(m) {\n return m === 61 ? (e.consume(m), y) : _(m) ? (e.consume(m), R) : E(m);\n }\n function y(m) {\n return m === null || m === 60 || m === 61 || m === 62 || m === 96 ? t(m) : m === 34 || m === 39 ? (e.consume(m), s = m, F) : _(m) ? (e.consume(m), y) : q(m);\n }\n function F(m) {\n return m === s ? (e.consume(m), s = null, B) : m === null || L(m) ? t(m) : (e.consume(m), F);\n }\n function q(m) {\n return m === null || m === 34 || m === 39 || m === 47 || m === 60 || m === 61 || m === 62 || m === 96 || G(m) ? R(m) : (e.consume(m), q);\n }\n function B(m) {\n return m === 47 || m === 62 || _(m) ? E(m) : t(m);\n }\n function j(m) {\n return m === 62 ? (e.consume(m), z) : t(m);\n }\n function z(m) {\n return m === null || L(m) ? T(m) : _(m) ? (e.consume(m), z) : t(m);\n }\n function T(m) {\n return m === 45 && i === 2 ? (e.consume(m), W) : m === 60 && i === 1 ? (e.consume(m), Y) : m === 62 && i === 4 ? (e.consume(m), ie) : m === 63 && i === 3 ? (e.consume(m), h) : m === 93 && i === 5 ? (e.consume(m), pe) : L(m) && (i === 6 || i === 7) ? (e.exit(\"htmlFlowData\"), e.check(hl, fe, P)(m)) : m === null || L(m) ? (e.exit(\"htmlFlowData\"), P(m)) : (e.consume(m), T);\n }\n function P(m) {\n return e.check(ml, I, fe)(m);\n }\n function I(m) {\n return e.enter(\"lineEnding\"), e.consume(m), e.exit(\"lineEnding\"), v;\n }\n function v(m) {\n return m === null || L(m) ? P(m) : (e.enter(\"htmlFlowData\"), T(m));\n }\n function W(m) {\n return m === 45 ? (e.consume(m), h) : T(m);\n }\n function Y(m) {\n return m === 47 ? (e.consume(m), o = \"\", re) : T(m);\n }\n function re(m) {\n if (m === 62) {\n const le = o.toLowerCase();\n return it.includes(le) ? (e.consume(m), ie) : T(m);\n }\n return se(m) && o.length < 8 ? (e.consume(m), o += String.fromCharCode(m), re) : T(m);\n }\n function pe(m) {\n return m === 93 ? (e.consume(m), h) : T(m);\n }\n function h(m) {\n return m === 62 ? (e.consume(m), ie) : m === 45 && i === 2 ? (e.consume(m), h) : T(m);\n }\n function ie(m) {\n return m === null || L(m) ? (e.exit(\"htmlFlowData\"), fe(m)) : (e.consume(m), ie);\n }\n function fe(m) {\n return e.exit(\"htmlFlow\"), n(m);\n }\n}\nfunction yl(e, n, t) {\n const r = this;\n return i;\n function i(o) {\n return L(o) ? (e.enter(\"lineEnding\"), e.consume(o), e.exit(\"lineEnding\"), l) : t(o);\n }\n function l(o) {\n return r.parser.lazy[r.now().line] ? t(o) : n(o);\n }\n}\nfunction xl(e, n, t) {\n return r;\n function r(i) {\n return e.enter(\"lineEnding\"), e.consume(i), e.exit(\"lineEnding\"), e.attempt(Ke, n, t);\n }\n}\nconst kl = {\n name: \"htmlText\",\n tokenize: bl\n};\nfunction bl(e, n, t) {\n const r = this;\n let i, l, o;\n return a;\n function a(h) {\n return e.enter(\"htmlText\"), e.enter(\"htmlTextData\"), e.consume(h), s;\n }\n function s(h) {\n return h === 33 ? (e.consume(h), u) : h === 47 ? (e.consume(h), R) : h === 63 ? (e.consume(h), E) : se(h) ? (e.consume(h), q) : t(h);\n }\n function u(h) {\n return h === 45 ? (e.consume(h), c) : h === 91 ? (e.consume(h), l = 0, b) : se(h) ? (e.consume(h), C) : t(h);\n }\n function c(h) {\n return h === 45 ? (e.consume(h), p) : t(h);\n }\n function f(h) {\n return h === null ? t(h) : h === 45 ? (e.consume(h), d) : L(h) ? (o = f, Y(h)) : (e.consume(h), f);\n }\n function d(h) {\n return h === 45 ? (e.consume(h), p) : f(h);\n }\n function p(h) {\n return h === 62 ? W(h) : h === 45 ? d(h) : f(h);\n }\n function b(h) {\n const ie = \"CDATA[\";\n return h === ie.charCodeAt(l++) ? (e.consume(h), l === ie.length ? w : b) : t(h);\n }\n function w(h) {\n return h === null ? t(h) : h === 93 ? (e.consume(h), A) : L(h) ? (o = w, Y(h)) : (e.consume(h), w);\n }\n function A(h) {\n return h === 93 ? (e.consume(h), x) : w(h);\n }\n function x(h) {\n return h === 62 ? W(h) : h === 93 ? (e.consume(h), x) : w(h);\n }\n function C(h) {\n return h === null || h === 62 ? W(h) : L(h) ? (o = C, Y(h)) : (e.consume(h), C);\n }\n function E(h) {\n return h === null ? t(h) : h === 63 ? (e.consume(h), N) : L(h) ? (o = E, Y(h)) : (e.consume(h), E);\n }\n function N(h) {\n return h === 62 ? W(h) : E(h);\n }\n function R(h) {\n return se(h) ? (e.consume(h), y) : t(h);\n }\n function y(h) {\n return h === 45 || ee(h) ? (e.consume(h), y) : F(h);\n }\n function F(h) {\n return L(h) ? (o = F, Y(h)) : _(h) ? (e.consume(h), F) : W(h);\n }\n function q(h) {\n return h === 45 || ee(h) ? (e.consume(h), q) : h === 47 || h === 62 || G(h) ? B(h) : t(h);\n }\n function B(h) {\n return h === 47 ? (e.consume(h), W) : h === 58 || h === 95 || se(h) ? (e.consume(h), j) : L(h) ? (o = B, Y(h)) : _(h) ? (e.consume(h), B) : W(h);\n }\n function j(h) {\n return h === 45 || h === 46 || h === 58 || h === 95 || ee(h) ? (e.consume(h), j) : z(h);\n }\n function z(h) {\n return h === 61 ? (e.consume(h), T) : L(h) ? (o = z, Y(h)) : _(h) ? (e.consume(h), z) : B(h);\n }\n function T(h) {\n return h === null || h === 60 || h === 61 || h === 62 || h === 96 ? t(h) : h === 34 || h === 39 ? (e.consume(h), i = h, P) : L(h) ? (o = T, Y(h)) : _(h) ? (e.consume(h), T) : (e.consume(h), I);\n }\n function P(h) {\n return h === i ? (e.consume(h), i = void 0, v) : h === null ? t(h) : L(h) ? (o = P, Y(h)) : (e.consume(h), P);\n }\n function I(h) {\n return h === null || h === 34 || h === 39 || h === 60 || h === 61 || h === 96 ? t(h) : h === 47 || h === 62 || G(h) ? B(h) : (e.consume(h), I);\n }\n function v(h) {\n return h === 47 || h === 62 || G(h) ? B(h) : t(h);\n }\n function W(h) {\n return h === 62 ? (e.consume(h), e.exit(\"htmlTextData\"), e.exit(\"htmlText\"), n) : t(h);\n }\n function Y(h) {\n return e.exit(\"htmlTextData\"), e.enter(\"lineEnding\"), e.consume(h), e.exit(\"lineEnding\"), re;\n }\n function re(h) {\n return _(h) ? V(e, pe, \"linePrefix\", r.parser.constructs.disable.null.includes(\"codeIndented\") ? void 0 : 4)(h) : pe(h);\n }\n function pe(h) {\n return e.enter(\"htmlTextData\"), o(h);\n }\n}\nconst Ln = {\n name: \"labelEnd\",\n resolveAll: El,\n resolveTo: Il,\n tokenize: Al\n}, wl = {\n tokenize: Tl\n}, Sl = {\n tokenize: Pl\n}, Cl = {\n tokenize: zl\n};\nfunction El(e) {\n let n = -1;\n const t = [];\n for (; ++n < e.length; ) {\n const r = e[n][1];\n if (t.push(e[n]), r.type === \"labelImage\" || r.type === \"labelLink\" || r.type === \"labelEnd\") {\n const i = r.type === \"labelImage\" ? 4 : 2;\n r.type = \"data\", n += i;\n }\n }\n return e.length !== t.length && ce(e, 0, e.length, t), e;\n}\nfunction Il(e, n) {\n let t = e.length, r = 0, i, l, o, a;\n for (; t--; )\n if (i = e[t][1], l) {\n if (i.type === \"link\" || i.type === \"labelLink\" && i._inactive)\n break;\n e[t][0] === \"enter\" && i.type === \"labelLink\" && (i._inactive = !0);\n } else if (o) {\n if (e[t][0] === \"enter\" && (i.type === \"labelImage\" || i.type === \"labelLink\") && !i._balanced && (l = t, i.type !== \"labelLink\")) {\n r = 2;\n break;\n }\n } else i.type === \"labelEnd\" && (o = t);\n const s = {\n type: e[l][1].type === \"labelLink\" ? \"link\" : \"image\",\n start: {\n ...e[l][1].start\n },\n end: {\n ...e[e.length - 1][1].end\n }\n }, u = {\n type: \"label\",\n start: {\n ...e[l][1].start\n },\n end: {\n ...e[o][1].end\n }\n }, c = {\n type: \"labelText\",\n start: {\n ...e[l + r + 2][1].end\n },\n end: {\n ...e[o - 2][1].start\n }\n };\n return a = [[\"enter\", s, n], [\"enter\", u, n]], a = ne(a, e.slice(l + 1, l + r + 3)), a = ne(a, [[\"enter\", c, n]]), a = ne(a, zn(n.parser.constructs.insideSpan.null, e.slice(l + r + 4, o - 3), n)), a = ne(a, [[\"exit\", c, n], e[o - 2], e[o - 1], [\"exit\", u, n]]), a = ne(a, e.slice(o + 1)), a = ne(a, [[\"exit\", s, n]]), ce(e, l, e.length, a), e;\n}\nfunction Al(e, n, t) {\n const r = this;\n let i = r.events.length, l, o;\n for (; i--; )\n if ((r.events[i][1].type === \"labelImage\" || r.events[i][1].type === \"labelLink\") && !r.events[i][1]._balanced) {\n l = r.events[i][1];\n break;\n }\n return a;\n function a(d) {\n return l ? l._inactive ? f(d) : (o = r.parser.defined.includes(Te(r.sliceSerialize({\n start: l.end,\n end: r.now()\n }))), e.enter(\"labelEnd\"), e.enter(\"labelMarker\"), e.consume(d), e.exit(\"labelMarker\"), e.exit(\"labelEnd\"), s) : t(d);\n }\n function s(d) {\n return d === 40 ? e.attempt(wl, c, o ? c : f)(d) : d === 91 ? e.attempt(Sl, c, o ? u : f)(d) : o ? c(d) : f(d);\n }\n function u(d) {\n return e.attempt(Cl, c, f)(d);\n }\n function c(d) {\n return n(d);\n }\n function f(d) {\n return l._balanced = !0, t(d);\n }\n}\nfunction Tl(e, n, t) {\n return r;\n function r(f) {\n return e.enter(\"resource\"), e.enter(\"resourceMarker\"), e.consume(f), e.exit(\"resourceMarker\"), i;\n }\n function i(f) {\n return G(f) ? Ne(e, l)(f) : l(f);\n }\n function l(f) {\n return f === 41 ? c(f) : $t(e, o, a, \"resourceDestination\", \"resourceDestinationLiteral\", \"resourceDestinationLiteralMarker\", \"resourceDestinationRaw\", \"resourceDestinationString\", 32)(f);\n }\n function o(f) {\n return G(f) ? Ne(e, s)(f) : c(f);\n }\n function a(f) {\n return t(f);\n }\n function s(f) {\n return f === 34 || f === 39 || f === 40 ? Yt(e, u, t, \"resourceTitle\", \"resourceTitleMarker\", \"resourceTitleString\")(f) : c(f);\n }\n function u(f) {\n return G(f) ? Ne(e, c)(f) : c(f);\n }\n function c(f) {\n return f === 41 ? (e.enter(\"resourceMarker\"), e.consume(f), e.exit(\"resourceMarker\"), e.exit(\"resource\"), n) : t(f);\n }\n}\nfunction Pl(e, n, t) {\n const r = this;\n return i;\n function i(a) {\n return Wt.call(r, e, l, o, \"reference\", \"referenceMarker\", \"referenceString\")(a);\n }\n function l(a) {\n return r.parser.defined.includes(Te(r.sliceSerialize(r.events[r.events.length - 1][1]).slice(1, -1))) ? n(a) : t(a);\n }\n function o(a) {\n return t(a);\n }\n}\nfunction zl(e, n, t) {\n return r;\n function r(l) {\n return e.enter(\"reference\"), e.enter(\"referenceMarker\"), e.consume(l), e.exit(\"referenceMarker\"), i;\n }\n function i(l) {\n return l === 93 ? (e.enter(\"referenceMarker\"), e.consume(l), e.exit(\"referenceMarker\"), e.exit(\"reference\"), n) : t(l);\n }\n}\nconst Ll = {\n name: \"labelStartImage\",\n resolveAll: Ln.resolveAll,\n tokenize: vl\n};\nfunction vl(e, n, t) {\n const r = this;\n return i;\n function i(a) {\n return e.enter(\"labelImage\"), e.enter(\"labelImageMarker\"), e.consume(a), e.exit(\"labelImageMarker\"), l;\n }\n function l(a) {\n return a === 91 ? (e.enter(\"labelMarker\"), e.consume(a), e.exit(\"labelMarker\"), e.exit(\"labelImage\"), o) : t(a);\n }\n function o(a) {\n return a === 94 && \"_hiddenFootnoteSupport\" in r.parser.constructs ? t(a) : n(a);\n }\n}\nconst Dl = {\n name: \"labelStartLink\",\n resolveAll: Ln.resolveAll,\n tokenize: Ol\n};\nfunction Ol(e, n, t) {\n const r = this;\n return i;\n function i(o) {\n return e.enter(\"labelLink\"), e.enter(\"labelMarker\"), e.consume(o), e.exit(\"labelMarker\"), e.exit(\"labelLink\"), l;\n }\n function l(o) {\n return o === 94 && \"_hiddenFootnoteSupport\" in r.parser.constructs ? t(o) : n(o);\n }\n}\nconst rn = {\n name: \"lineEnding\",\n tokenize: Rl\n};\nfunction Rl(e, n) {\n return t;\n function t(r) {\n return e.enter(\"lineEnding\"), e.consume(r), e.exit(\"lineEnding\"), V(e, n, \"linePrefix\");\n }\n}\nconst Ye = {\n name: \"thematicBreak\",\n tokenize: Fl\n};\nfunction Fl(e, n, t) {\n let r = 0, i;\n return l;\n function l(u) {\n return e.enter(\"thematicBreak\"), o(u);\n }\n function o(u) {\n return i = u, a(u);\n }\n function a(u) {\n return u === i ? (e.enter(\"thematicBreakSequence\"), s(u)) : r >= 3 && (u === null || L(u)) ? (e.exit(\"thematicBreak\"), n(u)) : t(u);\n }\n function s(u) {\n return u === i ? (e.consume(u), r++, s) : (e.exit(\"thematicBreakSequence\"), _(u) ? V(e, a, \"whitespace\")(u) : a(u));\n }\n}\nconst K = {\n continuation: {\n tokenize: Bl\n },\n exit: Hl,\n name: \"list\",\n tokenize: _l\n}, Nl = {\n partial: !0,\n tokenize: Ul\n}, Ml = {\n partial: !0,\n tokenize: jl\n};\nfunction _l(e, n, t) {\n const r = this, i = r.events[r.events.length - 1];\n let l = i && i[1].type === \"linePrefix\" ? i[2].sliceSerialize(i[1], !0).length : 0, o = 0;\n return a;\n function a(p) {\n const b = r.containerState.type || (p === 42 || p === 43 || p === 45 ? \"listUnordered\" : \"listOrdered\");\n if (b === \"listUnordered\" ? !r.containerState.marker || p === r.containerState.marker : yn(p)) {\n if (r.containerState.type || (r.containerState.type = b, e.enter(b, {\n _container: !0\n })), b === \"listUnordered\")\n return e.enter(\"listItemPrefix\"), p === 42 || p === 45 ? e.check(Ye, t, u)(p) : u(p);\n if (!r.interrupt || p === 49)\n return e.enter(\"listItemPrefix\"), e.enter(\"listItemValue\"), s(p);\n }\n return t(p);\n }\n function s(p) {\n return yn(p) && ++o < 10 ? (e.consume(p), s) : (!r.interrupt || o < 2) && (r.containerState.marker ? p === r.containerState.marker : p === 41 || p === 46) ? (e.exit(\"listItemValue\"), u(p)) : t(p);\n }\n function u(p) {\n return e.enter(\"listItemMarker\"), e.consume(p), e.exit(\"listItemMarker\"), r.containerState.marker = r.containerState.marker || p, e.check(\n Ke,\n // Can’t be empty when interrupting.\n r.interrupt ? t : c,\n e.attempt(Nl, d, f)\n );\n }\n function c(p) {\n return r.containerState.initialBlankLine = !0, l++, d(p);\n }\n function f(p) {\n return _(p) ? (e.enter(\"listItemPrefixWhitespace\"), e.consume(p), e.exit(\"listItemPrefixWhitespace\"), d) : t(p);\n }\n function d(p) {\n return r.containerState.size = l + r.sliceSerialize(e.exit(\"listItemPrefix\"), !0).length, n(p);\n }\n}\nfunction Bl(e, n, t) {\n const r = this;\n return r.containerState._closeFlow = void 0, e.check(Ke, i, l);\n function i(a) {\n return r.containerState.furtherBlankLines = r.containerState.furtherBlankLines || r.containerState.initialBlankLine, V(e, n, \"listItemIndent\", r.containerState.size + 1)(a);\n }\n function l(a) {\n return r.containerState.furtherBlankLines || !_(a) ? (r.containerState.furtherBlankLines = void 0, r.containerState.initialBlankLine = void 0, o(a)) : (r.containerState.furtherBlankLines = void 0, r.containerState.initialBlankLine = void 0, e.attempt(Ml, n, o)(a));\n }\n function o(a) {\n return r.containerState._closeFlow = !0, r.interrupt = void 0, V(e, e.attempt(K, n, t), \"linePrefix\", r.parser.constructs.disable.null.includes(\"codeIndented\") ? void 0 : 4)(a);\n }\n}\nfunction jl(e, n, t) {\n const r = this;\n return V(e, i, \"listItemIndent\", r.containerState.size + 1);\n function i(l) {\n const o = r.events[r.events.length - 1];\n return o && o[1].type === \"listItemIndent\" && o[2].sliceSerialize(o[1], !0).length === r.containerState.size ? n(l) : t(l);\n }\n}\nfunction Hl(e) {\n e.exit(this.containerState.type);\n}\nfunction Ul(e, n, t) {\n const r = this;\n return V(e, i, \"listItemPrefixWhitespace\", r.parser.constructs.disable.null.includes(\"codeIndented\") ? void 0 : 5);\n function i(l) {\n const o = r.events[r.events.length - 1];\n return !_(l) && o && o[1].type === \"listItemPrefixWhitespace\" ? n(l) : t(l);\n }\n}\nconst lt = {\n name: \"setextUnderline\",\n resolveTo: Vl,\n tokenize: ql\n};\nfunction Vl(e, n) {\n let t = e.length, r, i, l;\n for (; t--; )\n if (e[t][0] === \"enter\") {\n if (e[t][1].type === \"content\") {\n r = t;\n break;\n }\n e[t][1].type === \"paragraph\" && (i = t);\n } else\n e[t][1].type === \"content\" && e.splice(t, 1), !l && e[t][1].type === \"definition\" && (l = t);\n const o = {\n type: \"setextHeading\",\n start: {\n ...e[i][1].start\n },\n end: {\n ...e[e.length - 1][1].end\n }\n };\n return e[i][1].type = \"setextHeadingText\", l ? (e.splice(i, 0, [\"enter\", o, n]), e.splice(l + 1, 0, [\"exit\", e[r][1], n]), e[r][1].end = {\n ...e[l][1].end\n }) : e[r][1] = o, e.push([\"exit\", o, n]), e;\n}\nfunction ql(e, n, t) {\n const r = this;\n let i;\n return l;\n function l(u) {\n let c = r.events.length, f;\n for (; c--; )\n if (r.events[c][1].type !== \"lineEnding\" && r.events[c][1].type !== \"linePrefix\" && r.events[c][1].type !== \"content\") {\n f = r.events[c][1].type === \"paragraph\";\n break;\n }\n return !r.parser.lazy[r.now().line] && (r.interrupt || f) ? (e.enter(\"setextHeadingLine\"), i = u, o(u)) : t(u);\n }\n function o(u) {\n return e.enter(\"setextHeadingLineSequence\"), a(u);\n }\n function a(u) {\n return u === i ? (e.consume(u), a) : (e.exit(\"setextHeadingLineSequence\"), _(u) ? V(e, s, \"lineSuffix\")(u) : s(u));\n }\n function s(u) {\n return u === null || L(u) ? (e.exit(\"setextHeadingLine\"), n(u)) : t(u);\n }\n}\nconst $l = {\n tokenize: Wl\n};\nfunction Wl(e) {\n const n = this, t = e.attempt(\n // Try to parse a blank line.\n Ke,\n r,\n // Try to parse initial flow (essentially, only code).\n e.attempt(this.parser.constructs.flowInitial, i, V(e, e.attempt(this.parser.constructs.flow, i, e.attempt(Gi, i)), \"linePrefix\"))\n );\n return t;\n function r(l) {\n if (l === null) {\n e.consume(l);\n return;\n }\n return e.enter(\"lineEndingBlank\"), e.consume(l), e.exit(\"lineEndingBlank\"), n.currentConstruct = void 0, t;\n }\n function i(l) {\n if (l === null) {\n e.consume(l);\n return;\n }\n return e.enter(\"lineEnding\"), e.consume(l), e.exit(\"lineEnding\"), n.currentConstruct = void 0, t;\n }\n}\nconst Yl = {\n resolveAll: Xt()\n}, Ql = Qt(\"string\"), Xl = Qt(\"text\");\nfunction Qt(e) {\n return {\n resolveAll: Xt(e === \"text\" ? Kl : void 0),\n tokenize: n\n };\n function n(t) {\n const r = this, i = this.parser.constructs[e], l = t.attempt(i, o, a);\n return o;\n function o(c) {\n return u(c) ? l(c) : a(c);\n }\n function a(c) {\n if (c === null) {\n t.consume(c);\n return;\n }\n return t.enter(\"data\"), t.consume(c), s;\n }\n function s(c) {\n return u(c) ? (t.exit(\"data\"), l(c)) : (t.consume(c), s);\n }\n function u(c) {\n if (c === null)\n return !0;\n const f = i[c];\n let d = -1;\n if (f)\n for (; ++d < f.length; ) {\n const p = f[d];\n if (!p.previous || p.previous.call(r, r.previous))\n return !0;\n }\n return !1;\n }\n }\n}\nfunction Xt(e) {\n return n;\n function n(t, r) {\n let i = -1, l;\n for (; ++i <= t.length; )\n l === void 0 ? t[i] && t[i][1].type === \"data\" && (l = i, i++) : (!t[i] || t[i][1].type !== \"data\") && (i !== l + 2 && (t[l][1].end = t[i - 1][1].end, t.splice(l + 2, i - l - 2), i = l + 2), l = void 0);\n return e ? e(t, r) : t;\n }\n}\nfunction Kl(e, n) {\n let t = 0;\n for (; ++t <= e.length; )\n if ((t === e.length || e[t][1].type === \"lineEnding\") && e[t - 1][1].type === \"data\") {\n const r = e[t - 1][1], i = n.sliceStream(r);\n let l = i.length, o = -1, a = 0, s;\n for (; l--; ) {\n const u = i[l];\n if (typeof u == \"string\") {\n for (o = u.length; u.charCodeAt(o - 1) === 32; )\n a++, o--;\n if (o) break;\n o = -1;\n } else if (u === -2)\n s = !0, a++;\n else if (u !== -1) {\n l++;\n break;\n }\n }\n if (a) {\n const u = {\n type: t === e.length || s || a < 2 ? \"lineSuffix\" : \"hardBreakTrailing\",\n start: {\n _bufferIndex: l ? o : r.start._bufferIndex + o,\n _index: r.start._index + l,\n line: r.end.line,\n column: r.end.column - a,\n offset: r.end.offset - a\n },\n end: {\n ...r.end\n }\n };\n r.end = {\n ...u.start\n }, r.start.offset === r.end.offset ? Object.assign(r, u) : (e.splice(t, 0, [\"enter\", u, n], [\"exit\", u, n]), t += 2);\n }\n t++;\n }\n return e;\n}\nconst Gl = {\n 42: K,\n 43: K,\n 45: K,\n 48: K,\n 49: K,\n 50: K,\n 51: K,\n 52: K,\n 53: K,\n 54: K,\n 55: K,\n 56: K,\n 57: K,\n 62: Ht\n}, Jl = {\n 91: tl\n}, Zl = {\n [-2]: tn,\n [-1]: tn,\n 32: tn\n}, eo = {\n 35: ul,\n 42: Ye,\n 45: [lt, Ye],\n 60: fl,\n 61: lt,\n 95: Ye,\n 96: rt,\n 126: rt\n}, no = {\n 38: Vt,\n 92: Ut\n}, to = {\n [-5]: rn,\n [-4]: rn,\n [-3]: rn,\n 33: Ll,\n 38: Vt,\n 42: xn,\n 60: [Di, kl],\n 91: Dl,\n 92: [ol, Ut],\n 93: Ln,\n 95: xn,\n 96: $i\n}, ro = {\n null: [xn, Yl]\n}, io = {\n null: [42, 95]\n}, lo = {\n null: []\n}, oo = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n attentionMarkers: io,\n contentInitial: Jl,\n disable: lo,\n document: Gl,\n flow: eo,\n flowInitial: Zl,\n insideSpan: ro,\n string: no,\n text: to\n}, Symbol.toStringTag, { value: \"Module\" }));\nfunction ao(e, n, t) {\n let r = {\n _bufferIndex: -1,\n _index: 0,\n line: t && t.line || 1,\n column: t && t.column || 1,\n offset: t && t.offset || 0\n };\n const i = {}, l = [];\n let o = [], a = [];\n const s = {\n attempt: F(R),\n check: F(y),\n consume: C,\n enter: E,\n exit: N,\n interrupt: F(y, {\n interrupt: !0\n })\n }, u = {\n code: null,\n containerState: {},\n defineSkip: w,\n events: [],\n now: b,\n parser: e,\n previous: null,\n sliceSerialize: d,\n sliceStream: p,\n write: f\n };\n let c = n.tokenize.call(u, s);\n return n.resolveAll && l.push(n), u;\n function f(z) {\n return o = ne(o, z), A(), o[o.length - 1] !== null ? [] : (q(n, 0), u.events = zn(l, u.events, u), u.events);\n }\n function d(z, T) {\n return so(p(z), T);\n }\n function p(z) {\n return uo(o, z);\n }\n function b() {\n const {\n _bufferIndex: z,\n _index: T,\n line: P,\n column: I,\n offset: v\n } = r;\n return {\n _bufferIndex: z,\n _index: T,\n line: P,\n column: I,\n offset: v\n };\n }\n function w(z) {\n i[z.line] = z.column, j();\n }\n function A() {\n let z;\n for (; r._index < o.length; ) {\n const T = o[r._index];\n if (typeof T == \"string\")\n for (z = r._index, r._bufferIndex < 0 && (r._bufferIndex = 0); r._index === z && r._bufferIndex < T.length; )\n x(T.charCodeAt(r._bufferIndex));\n else\n x(T);\n }\n }\n function x(z) {\n c = c(z);\n }\n function C(z) {\n L(z) ? (r.line++, r.column = 1, r.offset += z === -3 ? 2 : 1, j()) : z !== -1 && (r.column++, r.offset++), r._bufferIndex < 0 ? r._index++ : (r._bufferIndex++, r._bufferIndex === // Points w/ non-negative `_bufferIndex` reference\n // strings.\n /** @type {string} */\n o[r._index].length && (r._bufferIndex = -1, r._index++)), u.previous = z;\n }\n function E(z, T) {\n const P = T || {};\n return P.type = z, P.start = b(), u.events.push([\"enter\", P, u]), a.push(P), P;\n }\n function N(z) {\n const T = a.pop();\n return T.end = b(), u.events.push([\"exit\", T, u]), T;\n }\n function R(z, T) {\n q(z, T.from);\n }\n function y(z, T) {\n T.restore();\n }\n function F(z, T) {\n return P;\n function P(I, v, W) {\n let Y, re, pe, h;\n return Array.isArray(I) ? (\n /* c8 ignore next 1 */\n fe(I)\n ) : \"tokenize\" in I ? (\n // Looks like a construct.\n fe([\n /** @type {Construct} */\n I\n ])\n ) : ie(I);\n function ie(Q) {\n return Le;\n function Le(de) {\n const we = de !== null && Q[de], Se = de !== null && Q.null, He = [\n // To do: add more extension tests.\n /* c8 ignore next 2 */\n ...Array.isArray(we) ? we : we ? [we] : [],\n ...Array.isArray(Se) ? Se : Se ? [Se] : []\n ];\n return fe(He)(de);\n }\n }\n function fe(Q) {\n return Y = Q, re = 0, Q.length === 0 ? W : m(Q[re]);\n }\n function m(Q) {\n return Le;\n function Le(de) {\n return h = B(), pe = Q, Q.partial || (u.currentConstruct = Q), Q.name && u.parser.constructs.disable.null.includes(Q.name) ? xe() : Q.tokenize.call(\n // If we do have fields, create an object w/ `context` as its\n // prototype.\n // This allows a “live binding”, which is needed for `interrupt`.\n T ? Object.assign(Object.create(u), T) : u,\n s,\n le,\n xe\n )(de);\n }\n }\n function le(Q) {\n return z(pe, h), v;\n }\n function xe(Q) {\n return h.restore(), ++re < Y.length ? m(Y[re]) : W;\n }\n }\n }\n function q(z, T) {\n z.resolveAll && !l.includes(z) && l.push(z), z.resolve && ce(u.events, T, u.events.length - T, z.resolve(u.events.slice(T), u)), z.resolveTo && (u.events = z.resolveTo(u.events, u));\n }\n function B() {\n const z = b(), T = u.previous, P = u.currentConstruct, I = u.events.length, v = Array.from(a);\n return {\n from: I,\n restore: W\n };\n function W() {\n r = z, u.previous = T, u.currentConstruct = P, u.events.length = I, a = v, j();\n }\n }\n function j() {\n r.line in i && r.column < 2 && (r.column = i[r.line], r.offset += i[r.line] - 1);\n }\n}\nfunction uo(e, n) {\n const t = n.start._index, r = n.start._bufferIndex, i = n.end._index, l = n.end._bufferIndex;\n let o;\n if (t === i)\n o = [e[t].slice(r, l)];\n else {\n if (o = e.slice(t, i), r > -1) {\n const a = o[0];\n typeof a == \"string\" ? o[0] = a.slice(r) : o.shift();\n }\n l > 0 && o.push(e[i].slice(0, l));\n }\n return o;\n}\nfunction so(e, n) {\n let t = -1;\n const r = [];\n let i;\n for (; ++t < e.length; ) {\n const l = e[t];\n let o;\n if (typeof l == \"string\")\n o = l;\n else switch (l) {\n case -5: {\n o = \"\\r\";\n break;\n }\n case -4: {\n o = `\n`;\n break;\n }\n case -3: {\n o = `\\r\n`;\n break;\n }\n case -2: {\n o = n ? \" \" : \"\t\";\n break;\n }\n case -1: {\n if (!n && i) continue;\n o = \" \";\n break;\n }\n default:\n o = String.fromCharCode(l);\n }\n i = l === -2, r.push(o);\n }\n return r.join(\"\");\n}\nfunction co(e) {\n const r = {\n constructs: (\n /** @type {FullNormalizedExtension} */\n yi([oo, ...(e || {}).extensions || []])\n ),\n content: i(Ii),\n defined: [],\n document: i(Ti),\n flow: i($l),\n lazy: {},\n string: i(Ql),\n text: i(Xl)\n };\n return r;\n function i(l) {\n return o;\n function o(a) {\n return ao(r, l, a);\n }\n }\n}\nfunction po(e) {\n for (; !qt(e); )\n ;\n return e;\n}\nconst ot = /[\\0\\t\\n\\r]/g;\nfunction fo() {\n let e = 1, n = \"\", t = !0, r;\n return i;\n function i(l, o, a) {\n const s = [];\n let u, c, f, d, p;\n for (l = n + (typeof l == \"string\" ? l.toString() : new TextDecoder(o || void 0).decode(l)), f = 0, n = \"\", t && (l.charCodeAt(0) === 65279 && f++, t = void 0); f < l.length; ) {\n if (ot.lastIndex = f, u = ot.exec(l), d = u && u.index !== void 0 ? u.index : l.length, p = l.charCodeAt(d), !u) {\n n = l.slice(f);\n break;\n }\n if (p === 10 && f === d && r)\n s.push(-3), r = void 0;\n else\n switch (r && (s.push(-5), r = void 0), f < d && (s.push(l.slice(f, d)), e += d - f), p) {\n case 0: {\n s.push(65533), e++;\n break;\n }\n case 9: {\n for (c = Math.ceil(e / 4) * 4, s.push(-2); e++ < c; ) s.push(-1);\n break;\n }\n case 10: {\n s.push(-4), e = 1;\n break;\n }\n default:\n r = !0, e = 1;\n }\n f = d + 1;\n }\n return a && (r && s.push(-5), n && s.push(n), s.push(null)), s;\n }\n}\nconst ho = /\\\\([!-/:-@[-`{-~])|&(#(?:\\d{1,7}|x[\\da-f]{1,6})|[\\da-z]{1,31});/gi;\nfunction mo(e) {\n return e.replace(ho, go);\n}\nfunction go(e, n, t) {\n if (n)\n return n;\n if (t.charCodeAt(0) === 35) {\n const i = t.charCodeAt(1), l = i === 120 || i === 88;\n return jt(t.slice(l ? 2 : 1), l ? 16 : 10);\n }\n return Pn(t) || e;\n}\nconst Kt = {}.hasOwnProperty;\nfunction yo(e, n, t) {\n return typeof n != \"string\" && (t = n, n = void 0), xo(t)(po(co(t).document().write(fo()(e, n, !0))));\n}\nfunction xo(e) {\n const n = {\n transforms: [],\n canContainEols: [\"emphasis\", \"fragment\", \"heading\", \"paragraph\", \"strong\"],\n enter: {\n autolink: l(Bn),\n autolinkProtocol: B,\n autolinkEmail: B,\n atxHeading: l(Nn),\n blockQuote: l(Se),\n characterEscape: B,\n characterReference: B,\n codeFenced: l(He),\n codeFencedFenceInfo: o,\n codeFencedFenceMeta: o,\n codeIndented: l(He, o),\n codeText: l(ar, o),\n codeTextData: B,\n data: B,\n codeFlowValue: B,\n definition: l(ur),\n definitionDestinationString: o,\n definitionLabelString: o,\n definitionTitleString: o,\n emphasis: l(sr),\n hardBreakEscape: l(Mn),\n hardBreakTrailing: l(Mn),\n htmlFlow: l(_n, o),\n htmlFlowData: B,\n htmlText: l(_n, o),\n htmlTextData: B,\n image: l(cr),\n label: o,\n link: l(Bn),\n listItem: l(pr),\n listItemValue: d,\n listOrdered: l(jn, f),\n listUnordered: l(jn),\n paragraph: l(fr),\n reference: m,\n referenceString: o,\n resourceDestinationString: o,\n resourceTitleString: o,\n setextHeading: l(Nn),\n strong: l(hr),\n thematicBreak: l(dr)\n },\n exit: {\n atxHeading: s(),\n atxHeadingSequence: R,\n autolink: s(),\n autolinkEmail: we,\n autolinkProtocol: de,\n blockQuote: s(),\n characterEscapeValue: j,\n characterReferenceMarkerHexadecimal: xe,\n characterReferenceMarkerNumeric: xe,\n characterReferenceValue: Q,\n characterReference: Le,\n codeFenced: s(A),\n codeFencedFence: w,\n codeFencedFenceInfo: p,\n codeFencedFenceMeta: b,\n codeFlowValue: j,\n codeIndented: s(x),\n codeText: s(v),\n codeTextData: j,\n data: j,\n definition: s(),\n definitionDestinationString: N,\n definitionLabelString: C,\n definitionTitleString: E,\n emphasis: s(),\n hardBreakEscape: s(T),\n hardBreakTrailing: s(T),\n htmlFlow: s(P),\n htmlFlowData: j,\n htmlText: s(I),\n htmlTextData: j,\n image: s(Y),\n label: pe,\n labelText: re,\n lineEnding: z,\n link: s(W),\n listItem: s(),\n listOrdered: s(),\n listUnordered: s(),\n paragraph: s(),\n referenceString: le,\n resourceDestinationString: h,\n resourceTitleString: ie,\n resource: fe,\n setextHeading: s(q),\n setextHeadingLineSequence: F,\n setextHeadingText: y,\n strong: s(),\n thematicBreak: s()\n }\n };\n Gt(n, (e || {}).mdastExtensions || []);\n const t = {};\n return r;\n function r(g) {\n let S = {\n type: \"root\",\n children: []\n };\n const D = {\n stack: [S],\n tokenStack: [],\n config: n,\n enter: a,\n exit: u,\n buffer: o,\n resume: c,\n data: t\n }, M = [];\n let H = -1;\n for (; ++H < g.length; )\n if (g[H][1].type === \"listOrdered\" || g[H][1].type === \"listUnordered\")\n if (g[H][0] === \"enter\")\n M.push(H);\n else {\n const oe = M.pop();\n H = i(g, oe, H);\n }\n for (H = -1; ++H < g.length; ) {\n const oe = n[g[H][0]];\n Kt.call(oe, g[H][1].type) && oe[g[H][1].type].call(Object.assign({\n sliceSerialize: g[H][2].sliceSerialize\n }, D), g[H][1]);\n }\n if (D.tokenStack.length > 0) {\n const oe = D.tokenStack[D.tokenStack.length - 1];\n (oe[1] || at).call(D, void 0, oe[0]);\n }\n for (S.position = {\n start: ge(g.length > 0 ? g[0][1].start : {\n line: 1,\n column: 1,\n offset: 0\n }),\n end: ge(g.length > 0 ? g[g.length - 2][1].end : {\n line: 1,\n column: 1,\n offset: 0\n })\n }, H = -1; ++H < n.transforms.length; )\n S = n.transforms[H](S) || S;\n return S;\n }\n function i(g, S, D) {\n let M = S - 1, H = -1, oe = !1, ke, he, ve, De;\n for (; ++M <= D; ) {\n const J = g[M];\n switch (J[1].type) {\n case \"listUnordered\":\n case \"listOrdered\":\n case \"blockQuote\": {\n J[0] === \"enter\" ? H++ : H--, De = void 0;\n break;\n }\n case \"lineEndingBlank\": {\n J[0] === \"enter\" && (ke && !De && !H && !ve && (ve = M), De = void 0);\n break;\n }\n case \"linePrefix\":\n case \"listItemValue\":\n case \"listItemMarker\":\n case \"listItemPrefix\":\n case \"listItemPrefixWhitespace\":\n break;\n default:\n De = void 0;\n }\n if (!H && J[0] === \"enter\" && J[1].type === \"listItemPrefix\" || H === -1 && J[0] === \"exit\" && (J[1].type === \"listUnordered\" || J[1].type === \"listOrdered\")) {\n if (ke) {\n let Ce = M;\n for (he = void 0; Ce--; ) {\n const me = g[Ce];\n if (me[1].type === \"lineEnding\" || me[1].type === \"lineEndingBlank\") {\n if (me[0] === \"exit\") continue;\n he && (g[he][1].type = \"lineEndingBlank\", oe = !0), me[1].type = \"lineEnding\", he = Ce;\n } else if (!(me[1].type === \"linePrefix\" || me[1].type === \"blockQuotePrefix\" || me[1].type === \"blockQuotePrefixWhitespace\" || me[1].type === \"blockQuoteMarker\" || me[1].type === \"listItemIndent\")) break;\n }\n ve && (!he || ve < he) && (ke._spread = !0), ke.end = Object.assign({}, he ? g[he][1].start : J[1].end), g.splice(he || M, 0, [\"exit\", ke, J[2]]), M++, D++;\n }\n if (J[1].type === \"listItemPrefix\") {\n const Ce = {\n type: \"listItem\",\n _spread: !1,\n start: Object.assign({}, J[1].start),\n // @ts-expect-error: we’ll add `end` in a second.\n end: void 0\n };\n ke = Ce, g.splice(M, 0, [\"enter\", Ce, J[2]]), M++, D++, ve = void 0, De = !0;\n }\n }\n }\n return g[S][1]._spread = oe, D;\n }\n function l(g, S) {\n return D;\n function D(M) {\n a.call(this, g(M), M), S && S.call(this, M);\n }\n }\n function o() {\n this.stack.push({\n type: \"fragment\",\n children: []\n });\n }\n function a(g, S, D) {\n this.stack[this.stack.length - 1].children.push(g), this.stack.push(g), this.tokenStack.push([S, D || void 0]), g.position = {\n start: ge(S.start),\n // @ts-expect-error: `end` will be patched later.\n end: void 0\n };\n }\n function s(g) {\n return S;\n function S(D) {\n g && g.call(this, D), u.call(this, D);\n }\n }\n function u(g, S) {\n const D = this.stack.pop(), M = this.tokenStack.pop();\n if (M)\n M[0].type !== g.type && (S ? S.call(this, g, M[0]) : (M[1] || at).call(this, g, M[0]));\n else throw new Error(\"Cannot close `\" + g.type + \"` (\" + Fe({\n start: g.start,\n end: g.end\n }) + \"): it’s not open\");\n D.position.end = ge(g.end);\n }\n function c() {\n return di(this.stack.pop());\n }\n function f() {\n this.data.expectingFirstListItemValue = !0;\n }\n function d(g) {\n if (this.data.expectingFirstListItemValue) {\n const S = this.stack[this.stack.length - 2];\n S.start = Number.parseInt(this.sliceSerialize(g), 10), this.data.expectingFirstListItemValue = void 0;\n }\n }\n function p() {\n const g = this.resume(), S = this.stack[this.stack.length - 1];\n S.lang = g;\n }\n function b() {\n const g = this.resume(), S = this.stack[this.stack.length - 1];\n S.meta = g;\n }\n function w() {\n this.data.flowCodeInside || (this.buffer(), this.data.flowCodeInside = !0);\n }\n function A() {\n const g = this.resume(), S = this.stack[this.stack.length - 1];\n S.value = g.replace(/^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g, \"\"), this.data.flowCodeInside = void 0;\n }\n function x() {\n const g = this.resume(), S = this.stack[this.stack.length - 1];\n S.value = g.replace(/(\\r?\\n|\\r)$/g, \"\");\n }\n function C(g) {\n const S = this.resume(), D = this.stack[this.stack.length - 1];\n D.label = S, D.identifier = Te(this.sliceSerialize(g)).toLowerCase();\n }\n function E() {\n const g = this.resume(), S = this.stack[this.stack.length - 1];\n S.title = g;\n }\n function N() {\n const g = this.resume(), S = this.stack[this.stack.length - 1];\n S.url = g;\n }\n function R(g) {\n const S = this.stack[this.stack.length - 1];\n if (!S.depth) {\n const D = this.sliceSerialize(g).length;\n S.depth = D;\n }\n }\n function y() {\n this.data.setextHeadingSlurpLineEnding = !0;\n }\n function F(g) {\n const S = this.stack[this.stack.length - 1];\n S.depth = this.sliceSerialize(g).codePointAt(0) === 61 ? 1 : 2;\n }\n function q() {\n this.data.setextHeadingSlurpLineEnding = void 0;\n }\n function B(g) {\n const D = this.stack[this.stack.length - 1].children;\n let M = D[D.length - 1];\n (!M || M.type !== \"text\") && (M = mr(), M.position = {\n start: ge(g.start),\n // @ts-expect-error: we’ll add `end` later.\n end: void 0\n }, D.push(M)), this.stack.push(M);\n }\n function j(g) {\n const S = this.stack.pop();\n S.value += this.sliceSerialize(g), S.position.end = ge(g.end);\n }\n function z(g) {\n const S = this.stack[this.stack.length - 1];\n if (this.data.atHardBreak) {\n const D = S.children[S.children.length - 1];\n D.position.end = ge(g.end), this.data.atHardBreak = void 0;\n return;\n }\n !this.data.setextHeadingSlurpLineEnding && n.canContainEols.includes(S.type) && (B.call(this, g), j.call(this, g));\n }\n function T() {\n this.data.atHardBreak = !0;\n }\n function P() {\n const g = this.resume(), S = this.stack[this.stack.length - 1];\n S.value = g;\n }\n function I() {\n const g = this.resume(), S = this.stack[this.stack.length - 1];\n S.value = g;\n }\n function v() {\n const g = this.resume(), S = this.stack[this.stack.length - 1];\n S.value = g;\n }\n function W() {\n const g = this.stack[this.stack.length - 1];\n if (this.data.inReference) {\n const S = this.data.referenceType || \"shortcut\";\n g.type += \"Reference\", g.referenceType = S, delete g.url, delete g.title;\n } else\n delete g.identifier, delete g.label;\n this.data.referenceType = void 0;\n }\n function Y() {\n const g = this.stack[this.stack.length - 1];\n if (this.data.inReference) {\n const S = this.data.referenceType || \"shortcut\";\n g.type += \"Reference\", g.referenceType = S, delete g.url, delete g.title;\n } else\n delete g.identifier, delete g.label;\n this.data.referenceType = void 0;\n }\n function re(g) {\n const S = this.sliceSerialize(g), D = this.stack[this.stack.length - 2];\n D.label = mo(S), D.identifier = Te(S).toLowerCase();\n }\n function pe() {\n const g = this.stack[this.stack.length - 1], S = this.resume(), D = this.stack[this.stack.length - 1];\n if (this.data.inReference = !0, D.type === \"link\") {\n const M = g.children;\n D.children = M;\n } else\n D.alt = S;\n }\n function h() {\n const g = this.resume(), S = this.stack[this.stack.length - 1];\n S.url = g;\n }\n function ie() {\n const g = this.resume(), S = this.stack[this.stack.length - 1];\n S.title = g;\n }\n function fe() {\n this.data.inReference = void 0;\n }\n function m() {\n this.data.referenceType = \"collapsed\";\n }\n function le(g) {\n const S = this.resume(), D = this.stack[this.stack.length - 1];\n D.label = S, D.identifier = Te(this.sliceSerialize(g)).toLowerCase(), this.data.referenceType = \"full\";\n }\n function xe(g) {\n this.data.characterReferenceType = g.type;\n }\n function Q(g) {\n const S = this.sliceSerialize(g), D = this.data.characterReferenceType;\n let M;\n D ? (M = jt(S, D === \"characterReferenceMarkerNumeric\" ? 10 : 16), this.data.characterReferenceType = void 0) : M = Pn(S);\n const H = this.stack[this.stack.length - 1];\n H.value += M;\n }\n function Le(g) {\n const S = this.stack.pop();\n S.position.end = ge(g.end);\n }\n function de(g) {\n j.call(this, g);\n const S = this.stack[this.stack.length - 1];\n S.url = this.sliceSerialize(g);\n }\n function we(g) {\n j.call(this, g);\n const S = this.stack[this.stack.length - 1];\n S.url = \"mailto:\" + this.sliceSerialize(g);\n }\n function Se() {\n return {\n type: \"blockquote\",\n children: []\n };\n }\n function He() {\n return {\n type: \"code\",\n lang: null,\n meta: null,\n value: \"\"\n };\n }\n function ar() {\n return {\n type: \"inlineCode\",\n value: \"\"\n };\n }\n function ur() {\n return {\n type: \"definition\",\n identifier: \"\",\n label: null,\n title: null,\n url: \"\"\n };\n }\n function sr() {\n return {\n type: \"emphasis\",\n children: []\n };\n }\n function Nn() {\n return {\n type: \"heading\",\n // @ts-expect-error `depth` will be set later.\n depth: 0,\n children: []\n };\n }\n function Mn() {\n return {\n type: \"break\"\n };\n }\n function _n() {\n return {\n type: \"html\",\n value: \"\"\n };\n }\n function cr() {\n return {\n type: \"image\",\n title: null,\n url: \"\",\n alt: null\n };\n }\n function Bn() {\n return {\n type: \"link\",\n title: null,\n url: \"\",\n children: []\n };\n }\n function jn(g) {\n return {\n type: \"list\",\n ordered: g.type === \"listOrdered\",\n start: null,\n spread: g._spread,\n children: []\n };\n }\n function pr(g) {\n return {\n type: \"listItem\",\n spread: g._spread,\n checked: null,\n children: []\n };\n }\n function fr() {\n return {\n type: \"paragraph\",\n children: []\n };\n }\n function hr() {\n return {\n type: \"strong\",\n children: []\n };\n }\n function mr() {\n return {\n type: \"text\",\n value: \"\"\n };\n }\n function dr() {\n return {\n type: \"thematicBreak\"\n };\n }\n}\nfunction ge(e) {\n return {\n line: e.line,\n column: e.column,\n offset: e.offset\n };\n}\nfunction Gt(e, n) {\n let t = -1;\n for (; ++t < n.length; ) {\n const r = n[t];\n Array.isArray(r) ? Gt(e, r) : ko(e, r);\n }\n}\nfunction ko(e, n) {\n let t;\n for (t in n)\n if (Kt.call(n, t))\n switch (t) {\n case \"canContainEols\": {\n const r = n[t];\n r && e[t].push(...r);\n break;\n }\n case \"transforms\": {\n const r = n[t];\n r && e[t].push(...r);\n break;\n }\n case \"enter\":\n case \"exit\": {\n const r = n[t];\n r && Object.assign(e[t], r);\n break;\n }\n }\n}\nfunction at(e, n) {\n throw e ? new Error(\"Cannot close `\" + e.type + \"` (\" + Fe({\n start: e.start,\n end: e.end\n }) + \"): a different token (`\" + n.type + \"`, \" + Fe({\n start: n.start,\n end: n.end\n }) + \") is open\") : new Error(\"Cannot close document, a token (`\" + n.type + \"`, \" + Fe({\n start: n.start,\n end: n.end\n }) + \") is still open\");\n}\nfunction bo(e) {\n const n = this;\n n.parser = t;\n function t(r) {\n return yo(r, {\n ...n.data(\"settings\"),\n ...e,\n // Note: these options are not in the readme.\n // The goal is for them to be set by plugins on `data` instead of being\n // passed by users.\n extensions: n.data(\"micromarkExtensions\") || [],\n mdastExtensions: n.data(\"fromMarkdownExtensions\") || []\n });\n }\n}\nfunction wo(e, n) {\n const t = {\n type: \"element\",\n tagName: \"blockquote\",\n properties: {},\n children: e.wrap(e.all(n), !0)\n };\n return e.patch(n, t), e.applyData(n, t);\n}\nfunction So(e, n) {\n const t = { type: \"element\", tagName: \"br\", properties: {}, children: [] };\n return e.patch(n, t), [e.applyData(n, t), { type: \"text\", value: `\n` }];\n}\nfunction Co(e, n) {\n const t = n.value ? n.value + `\n` : \"\", r = {};\n n.lang && (r.className = [\"language-\" + n.lang]);\n let i = {\n type: \"element\",\n tagName: \"code\",\n properties: r,\n children: [{ type: \"text\", value: t }]\n };\n return n.meta && (i.data = { meta: n.meta }), e.patch(n, i), i = e.applyData(n, i), i = { type: \"element\", tagName: \"pre\", properties: {}, children: [i] }, e.patch(n, i), i;\n}\nfunction Eo(e, n) {\n const t = {\n type: \"element\",\n tagName: \"del\",\n properties: {},\n children: e.all(n)\n };\n return e.patch(n, t), e.applyData(n, t);\n}\nfunction Io(e, n) {\n const t = {\n type: \"element\",\n tagName: \"em\",\n properties: {},\n children: e.all(n)\n };\n return e.patch(n, t), e.applyData(n, t);\n}\nfunction Ao(e, n) {\n const t = typeof e.options.clobberPrefix == \"string\" ? e.options.clobberPrefix : \"user-content-\", r = String(n.identifier).toUpperCase(), i = ze(r.toLowerCase()), l = e.footnoteOrder.indexOf(r);\n let o, a = e.footnoteCounts.get(r);\n a === void 0 ? (a = 0, e.footnoteOrder.push(r), o = e.footnoteOrder.length) : o = l + 1, a += 1, e.footnoteCounts.set(r, a);\n const s = {\n type: \"element\",\n tagName: \"a\",\n properties: {\n href: \"#\" + t + \"fn-\" + i,\n id: t + \"fnref-\" + i + (a > 1 ? \"-\" + a : \"\"),\n dataFootnoteRef: !0,\n ariaDescribedBy: [\"footnote-label\"]\n },\n children: [{ type: \"text\", value: String(o) }]\n };\n e.patch(n, s);\n const u = {\n type: \"element\",\n tagName: \"sup\",\n properties: {},\n children: [s]\n };\n return e.patch(n, u), e.applyData(n, u);\n}\nfunction To(e, n) {\n const t = {\n type: \"element\",\n tagName: \"h\" + n.depth,\n properties: {},\n children: e.all(n)\n };\n return e.patch(n, t), e.applyData(n, t);\n}\nfunction Po(e, n) {\n if (e.options.allowDangerousHtml) {\n const t = { type: \"raw\", value: n.value };\n return e.patch(n, t), e.applyData(n, t);\n }\n}\nfunction Jt(e, n) {\n const t = n.referenceType;\n let r = \"]\";\n if (t === \"collapsed\" ? r += \"[]\" : t === \"full\" && (r += \"[\" + (n.label || n.identifier) + \"]\"), n.type === \"imageReference\")\n return [{ type: \"text\", value: \"![\" + n.alt + r }];\n const i = e.all(n), l = i[0];\n l && l.type === \"text\" ? l.value = \"[\" + l.value : i.unshift({ type: \"text\", value: \"[\" });\n const o = i[i.length - 1];\n return o && o.type === \"text\" ? o.value += r : i.push({ type: \"text\", value: r }), i;\n}\nfunction zo(e, n) {\n const t = String(n.identifier).toUpperCase(), r = e.definitionById.get(t);\n if (!r)\n return Jt(e, n);\n const i = { src: ze(r.url || \"\"), alt: n.alt };\n r.title !== null && r.title !== void 0 && (i.title = r.title);\n const l = { type: \"element\", tagName: \"img\", properties: i, children: [] };\n return e.patch(n, l), e.applyData(n, l);\n}\nfunction Lo(e, n) {\n const t = { src: ze(n.url) };\n n.alt !== null && n.alt !== void 0 && (t.alt = n.alt), n.title !== null && n.title !== void 0 && (t.title = n.title);\n const r = { type: \"element\", tagName: \"img\", properties: t, children: [] };\n return e.patch(n, r), e.applyData(n, r);\n}\nfunction vo(e, n) {\n const t = { type: \"text\", value: n.value.replace(/\\r?\\n|\\r/g, \" \") };\n e.patch(n, t);\n const r = {\n type: \"element\",\n tagName: \"code\",\n properties: {},\n children: [t]\n };\n return e.patch(n, r), e.applyData(n, r);\n}\nfunction Do(e, n) {\n const t = String(n.identifier).toUpperCase(), r = e.definitionById.get(t);\n if (!r)\n return Jt(e, n);\n const i = { href: ze(r.url || \"\") };\n r.title !== null && r.title !== void 0 && (i.title = r.title);\n const l = {\n type: \"element\",\n tagName: \"a\",\n properties: i,\n children: e.all(n)\n };\n return e.patch(n, l), e.applyData(n, l);\n}\nfunction Oo(e, n) {\n const t = { href: ze(n.url) };\n n.title !== null && n.title !== void 0 && (t.title = n.title);\n const r = {\n type: \"element\",\n tagName: \"a\",\n properties: t,\n children: e.all(n)\n };\n return e.patch(n, r), e.applyData(n, r);\n}\nfunction Ro(e, n, t) {\n const r = e.all(n), i = t ? Fo(t) : Zt(n), l = {}, o = [];\n if (typeof n.checked == \"boolean\") {\n const c = r[0];\n let f;\n c && c.type === \"element\" && c.tagName === \"p\" ? f = c : (f = { type: \"element\", tagName: \"p\", properties: {}, children: [] }, r.unshift(f)), f.children.length > 0 && f.children.unshift({ type: \"text\", value: \" \" }), f.children.unshift({\n type: \"element\",\n tagName: \"input\",\n properties: { type: \"checkbox\", checked: n.checked, disabled: !0 },\n children: []\n }), l.className = [\"task-list-item\"];\n }\n let a = -1;\n for (; ++a < r.length; ) {\n const c = r[a];\n (i || a !== 0 || c.type !== \"element\" || c.tagName !== \"p\") && o.push({ type: \"text\", value: `\n` }), c.type === \"element\" && c.tagName === \"p\" && !i ? o.push(...c.children) : o.push(c);\n }\n const s = r[r.length - 1];\n s && (i || s.type !== \"element\" || s.tagName !== \"p\") && o.push({ type: \"text\", value: `\n` });\n const u = { type: \"element\", tagName: \"li\", properties: l, children: o };\n return e.patch(n, u), e.applyData(n, u);\n}\nfunction Fo(e) {\n let n = !1;\n if (e.type === \"list\") {\n n = e.spread || !1;\n const t = e.children;\n let r = -1;\n for (; !n && ++r < t.length; )\n n = Zt(t[r]);\n }\n return n;\n}\nfunction Zt(e) {\n const n = e.spread;\n return n ?? e.children.length > 1;\n}\nfunction No(e, n) {\n const t = {}, r = e.all(n);\n let i = -1;\n for (typeof n.start == \"number\" && n.start !== 1 && (t.start = n.start); ++i < r.length; ) {\n const o = r[i];\n if (o.type === \"element\" && o.tagName === \"li\" && o.properties && Array.isArray(o.properties.className) && o.properties.className.includes(\"task-list-item\")) {\n t.className = [\"contains-task-list\"];\n break;\n }\n }\n const l = {\n type: \"element\",\n tagName: n.ordered ? \"ol\" : \"ul\",\n properties: t,\n children: e.wrap(r, !0)\n };\n return e.patch(n, l), e.applyData(n, l);\n}\nfunction Mo(e, n) {\n const t = {\n type: \"element\",\n tagName: \"p\",\n properties: {},\n children: e.all(n)\n };\n return e.patch(n, t), e.applyData(n, t);\n}\nfunction _o(e, n) {\n const t = { type: \"root\", children: e.wrap(e.all(n)) };\n return e.patch(n, t), e.applyData(n, t);\n}\nfunction Bo(e, n) {\n const t = {\n type: \"element\",\n tagName: \"strong\",\n properties: {},\n children: e.all(n)\n };\n return e.patch(n, t), e.applyData(n, t);\n}\nfunction jo(e, n) {\n const t = e.all(n), r = t.shift(), i = [];\n if (r) {\n const o = {\n type: \"element\",\n tagName: \"thead\",\n properties: {},\n children: e.wrap([r], !0)\n };\n e.patch(n.children[0], o), i.push(o);\n }\n if (t.length > 0) {\n const o = {\n type: \"element\",\n tagName: \"tbody\",\n properties: {},\n children: e.wrap(t, !0)\n }, a = En(n.children[1]), s = Ot(n.children[n.children.length - 1]);\n a && s && (o.position = { start: a, end: s }), i.push(o);\n }\n const l = {\n type: \"element\",\n tagName: \"table\",\n properties: {},\n children: e.wrap(i, !0)\n };\n return e.patch(n, l), e.applyData(n, l);\n}\nfunction Ho(e, n, t) {\n const r = t ? t.children : void 0, l = (r ? r.indexOf(n) : 1) === 0 ? \"th\" : \"td\", o = t && t.type === \"table\" ? t.align : void 0, a = o ? o.length : n.children.length;\n let s = -1;\n const u = [];\n for (; ++s < a; ) {\n const f = n.children[s], d = {}, p = o ? o[s] : void 0;\n p && (d.align = p);\n let b = { type: \"element\", tagName: l, properties: d, children: [] };\n f && (b.children = e.all(f), e.patch(f, b), b = e.applyData(f, b)), u.push(b);\n }\n const c = {\n type: \"element\",\n tagName: \"tr\",\n properties: {},\n children: e.wrap(u, !0)\n };\n return e.patch(n, c), e.applyData(n, c);\n}\nfunction Uo(e, n) {\n const t = {\n type: \"element\",\n tagName: \"td\",\n // Assume body cell.\n properties: {},\n children: e.all(n)\n };\n return e.patch(n, t), e.applyData(n, t);\n}\nconst ut = 9, st = 32;\nfunction Vo(e) {\n const n = String(e), t = /\\r?\\n|\\r/g;\n let r = t.exec(n), i = 0;\n const l = [];\n for (; r; )\n l.push(\n ct(n.slice(i, r.index), i > 0, !0),\n r[0]\n ), i = r.index + r[0].length, r = t.exec(n);\n return l.push(ct(n.slice(i), i > 0, !1)), l.join(\"\");\n}\nfunction ct(e, n, t) {\n let r = 0, i = e.length;\n if (n) {\n let l = e.codePointAt(r);\n for (; l === ut || l === st; )\n r++, l = e.codePointAt(r);\n }\n if (t) {\n let l = e.codePointAt(i - 1);\n for (; l === ut || l === st; )\n i--, l = e.codePointAt(i - 1);\n }\n return i > r ? e.slice(r, i) : \"\";\n}\nfunction qo(e, n) {\n const t = { type: \"text\", value: Vo(String(n.value)) };\n return e.patch(n, t), e.applyData(n, t);\n}\nfunction $o(e, n) {\n const t = {\n type: \"element\",\n tagName: \"hr\",\n properties: {},\n children: []\n };\n return e.patch(n, t), e.applyData(n, t);\n}\nconst Wo = {\n blockquote: wo,\n break: So,\n code: Co,\n delete: Eo,\n emphasis: Io,\n footnoteReference: Ao,\n heading: To,\n html: Po,\n imageReference: zo,\n image: Lo,\n inlineCode: vo,\n linkReference: Do,\n link: Oo,\n listItem: Ro,\n list: No,\n paragraph: Mo,\n // @ts-expect-error: root is different, but hard to type.\n root: _o,\n strong: Bo,\n table: jo,\n tableCell: Uo,\n tableRow: Ho,\n text: qo,\n thematicBreak: $o,\n toml: qe,\n yaml: qe,\n definition: qe,\n footnoteDefinition: qe\n};\nfunction qe() {\n}\nconst er = -1, Ge = 0, Me = 1, Qe = 2, vn = 3, Dn = 4, On = 5, Rn = 6, nr = 7, tr = 8, pt = typeof self == \"object\" ? self : globalThis, Yo = (e, n) => {\n const t = (i, l) => (e.set(l, i), i), r = (i) => {\n if (e.has(i))\n return e.get(i);\n const [l, o] = n[i];\n switch (l) {\n case Ge:\n case er:\n return t(o, i);\n case Me: {\n const a = t([], i);\n for (const s of o)\n a.push(r(s));\n return a;\n }\n case Qe: {\n const a = t({}, i);\n for (const [s, u] of o)\n a[r(s)] = r(u);\n return a;\n }\n case vn:\n return t(new Date(o), i);\n case Dn: {\n const { source: a, flags: s } = o;\n return t(new RegExp(a, s), i);\n }\n case On: {\n const a = t(/* @__PURE__ */ new Map(), i);\n for (const [s, u] of o)\n a.set(r(s), r(u));\n return a;\n }\n case Rn: {\n const a = t(/* @__PURE__ */ new Set(), i);\n for (const s of o)\n a.add(r(s));\n return a;\n }\n case nr: {\n const { name: a, message: s } = o;\n return t(new pt[a](s), i);\n }\n case tr:\n return t(BigInt(o), i);\n case \"BigInt\":\n return t(Object(BigInt(o)), i);\n case \"ArrayBuffer\":\n return t(new Uint8Array(o).buffer, o);\n case \"DataView\": {\n const { buffer: a } = new Uint8Array(o);\n return t(new DataView(a), o);\n }\n }\n return t(new pt[l](o), i);\n };\n return r;\n}, ft = (e) => Yo(/* @__PURE__ */ new Map(), e)(0), Ie = \"\", { toString: Qo } = {}, { keys: Xo } = Object, Re = (e) => {\n const n = typeof e;\n if (n !== \"object\" || !e)\n return [Ge, n];\n const t = Qo.call(e).slice(8, -1);\n switch (t) {\n case \"Array\":\n return [Me, Ie];\n case \"Object\":\n return [Qe, Ie];\n case \"Date\":\n return [vn, Ie];\n case \"RegExp\":\n return [Dn, Ie];\n case \"Map\":\n return [On, Ie];\n case \"Set\":\n return [Rn, Ie];\n case \"DataView\":\n return [Me, t];\n }\n return t.includes(\"Array\") ? [Me, t] : t.includes(\"Error\") ? [nr, t] : [Qe, t];\n}, $e = ([e, n]) => e === Ge && (n === \"function\" || n === \"symbol\"), Ko = (e, n, t, r) => {\n const i = (o, a) => {\n const s = r.push(o) - 1;\n return t.set(a, s), s;\n }, l = (o) => {\n if (t.has(o))\n return t.get(o);\n let [a, s] = Re(o);\n switch (a) {\n case Ge: {\n let c = o;\n switch (s) {\n case \"bigint\":\n a = tr, c = o.toString();\n break;\n case \"function\":\n case \"symbol\":\n if (e)\n throw new TypeError(\"unable to serialize \" + s);\n c = null;\n break;\n case \"undefined\":\n return i([er], o);\n }\n return i([a, c], o);\n }\n case Me: {\n if (s) {\n let d = o;\n return s === \"DataView\" ? d = new Uint8Array(o.buffer) : s === \"ArrayBuffer\" && (d = new Uint8Array(o)), i([s, [...d]], o);\n }\n const c = [], f = i([a, c], o);\n for (const d of o)\n c.push(l(d));\n return f;\n }\n case Qe: {\n if (s)\n switch (s) {\n case \"BigInt\":\n return i([s, o.toString()], o);\n case \"Boolean\":\n case \"Number\":\n case \"String\":\n return i([s, o.valueOf()], o);\n }\n if (n && \"toJSON\" in o)\n return l(o.toJSON());\n const c = [], f = i([a, c], o);\n for (const d of Xo(o))\n (e || !$e(Re(o[d]))) && c.push([l(d), l(o[d])]);\n return f;\n }\n case vn:\n return i([a, o.toISOString()], o);\n case Dn: {\n const { source: c, flags: f } = o;\n return i([a, { source: c, flags: f }], o);\n }\n case On: {\n const c = [], f = i([a, c], o);\n for (const [d, p] of o)\n (e || !($e(Re(d)) || $e(Re(p)))) && c.push([l(d), l(p)]);\n return f;\n }\n case Rn: {\n const c = [], f = i([a, c], o);\n for (const d of o)\n (e || !$e(Re(d))) && c.push(l(d));\n return f;\n }\n }\n const { message: u } = o;\n return i([a, { name: s, message: u }], o);\n };\n return l;\n}, ht = (e, { json: n, lossy: t } = {}) => {\n const r = [];\n return Ko(!(n || t), !!n, /* @__PURE__ */ new Map(), r)(e), r;\n}, Xe = typeof structuredClone == \"function\" ? (\n /* c8 ignore start */\n (e, n) => n && (\"json\" in n || \"lossy\" in n) ? ft(ht(e, n)) : structuredClone(e)\n) : (e, n) => ft(ht(e, n));\nfunction Go(e, n) {\n const t = [{ type: \"text\", value: \"↩\" }];\n return n > 1 && t.push({\n type: \"element\",\n tagName: \"sup\",\n properties: {},\n children: [{ type: \"text\", value: String(n) }]\n }), t;\n}\nfunction Jo(e, n) {\n return \"Back to reference \" + (e + 1) + (n > 1 ? \"-\" + n : \"\");\n}\nfunction Zo(e) {\n const n = typeof e.options.clobberPrefix == \"string\" ? e.options.clobberPrefix : \"user-content-\", t = e.options.footnoteBackContent || Go, r = e.options.footnoteBackLabel || Jo, i = e.options.footnoteLabel || \"Footnotes\", l = e.options.footnoteLabelTagName || \"h2\", o = e.options.footnoteLabelProperties || {\n className: [\"sr-only\"]\n }, a = [];\n let s = -1;\n for (; ++s < e.footnoteOrder.length; ) {\n const u = e.footnoteById.get(\n e.footnoteOrder[s]\n );\n if (!u)\n continue;\n const c = e.all(u), f = String(u.identifier).toUpperCase(), d = ze(f.toLowerCase());\n let p = 0;\n const b = [], w = e.footnoteCounts.get(f);\n for (; w !== void 0 && ++p <= w; ) {\n b.length > 0 && b.push({ type: \"text\", value: \" \" });\n let C = typeof t == \"string\" ? t : t(s, p);\n typeof C == \"string\" && (C = { type: \"text\", value: C }), b.push({\n type: \"element\",\n tagName: \"a\",\n properties: {\n href: \"#\" + n + \"fnref-\" + d + (p > 1 ? \"-\" + p : \"\"),\n dataFootnoteBackref: \"\",\n ariaLabel: typeof r == \"string\" ? r : r(s, p),\n className: [\"data-footnote-backref\"]\n },\n children: Array.isArray(C) ? C : [C]\n });\n }\n const A = c[c.length - 1];\n if (A && A.type === \"element\" && A.tagName === \"p\") {\n const C = A.children[A.children.length - 1];\n C && C.type === \"text\" ? C.value += \" \" : A.children.push({ type: \"text\", value: \" \" }), A.children.push(...b);\n } else\n c.push(...b);\n const x = {\n type: \"element\",\n tagName: \"li\",\n properties: { id: n + \"fn-\" + d },\n children: e.wrap(c, !0)\n };\n e.patch(u, x), a.push(x);\n }\n if (a.length !== 0)\n return {\n type: \"element\",\n tagName: \"section\",\n properties: { dataFootnotes: !0, className: [\"footnotes\"] },\n children: [\n {\n type: \"element\",\n tagName: l,\n properties: {\n ...Xe(o),\n id: \"footnote-label\"\n },\n children: [{ type: \"text\", value: i }]\n },\n { type: \"text\", value: `\n` },\n {\n type: \"element\",\n tagName: \"ol\",\n properties: {},\n children: e.wrap(a, !0)\n },\n { type: \"text\", value: `\n` }\n ]\n };\n}\nconst rr = (\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * (<Condition extends string>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n * (<Condition extends Props>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n * (<Condition extends TestFunction>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate<Condition, Node>) &\n * ((test?: null | undefined) => (node?: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n * ((test?: Test) => Check)\n * )}\n */\n /**\n * @param {Test} [test]\n * @returns {Check}\n */\n function(e) {\n if (e == null)\n return ra;\n if (typeof e == \"function\")\n return Je(e);\n if (typeof e == \"object\")\n return Array.isArray(e) ? ea(e) : na(e);\n if (typeof e == \"string\")\n return ta(e);\n throw new Error(\"Expected function, string, or object as test\");\n }\n);\nfunction ea(e) {\n const n = [];\n let t = -1;\n for (; ++t < e.length; )\n n[t] = rr(e[t]);\n return Je(r);\n function r(...i) {\n let l = -1;\n for (; ++l < n.length; )\n if (n[l].apply(this, i)) return !0;\n return !1;\n }\n}\nfunction na(e) {\n const n = (\n /** @type {Record<string, unknown>} */\n e\n );\n return Je(t);\n function t(r) {\n const i = (\n /** @type {Record<string, unknown>} */\n /** @type {unknown} */\n r\n );\n let l;\n for (l in e)\n if (i[l] !== n[l]) return !1;\n return !0;\n }\n}\nfunction ta(e) {\n return Je(n);\n function n(t) {\n return t && t.type === e;\n }\n}\nfunction Je(e) {\n return n;\n function n(t, r, i) {\n return !!(ia(t) && e.call(\n this,\n t,\n typeof r == \"number\" ? r : void 0,\n i || void 0\n ));\n }\n}\nfunction ra() {\n return !0;\n}\nfunction ia(e) {\n return e !== null && typeof e == \"object\" && \"type\" in e;\n}\nconst ir = [], la = !0, mt = !1, oa = \"skip\";\nfunction aa(e, n, t, r) {\n let i;\n typeof n == \"function\" && typeof t != \"function\" ? (r = t, t = n) : i = n;\n const l = rr(i), o = r ? -1 : 1;\n a(e, void 0, [])();\n function a(s, u, c) {\n const f = (\n /** @type {Record<string, unknown>} */\n s && typeof s == \"object\" ? s : {}\n );\n if (typeof f.type == \"string\") {\n const p = (\n // `hast`\n typeof f.tagName == \"string\" ? f.tagName : (\n // `xast`\n typeof f.name == \"string\" ? f.name : void 0\n )\n );\n Object.defineProperty(d, \"name\", {\n value: \"node (\" + (s.type + (p ? \"<\" + p + \">\" : \"\")) + \")\"\n });\n }\n return d;\n function d() {\n let p = ir, b, w, A;\n if ((!n || l(s, u, c[c.length - 1] || void 0)) && (p = ua(t(s, c)), p[0] === mt))\n return p;\n if (\"children\" in s && s.children) {\n const x = (\n /** @type {UnistParent} */\n s\n );\n if (x.children && p[0] !== oa)\n for (w = (r ? x.children.length : -1) + o, A = c.concat(x); w > -1 && w < x.children.length; ) {\n const C = x.children[w];\n if (b = a(C, w, A)(), b[0] === mt)\n return b;\n w = typeof b[1] == \"number\" ? b[1] : w + o;\n }\n }\n return p;\n }\n }\n}\nfunction ua(e) {\n return Array.isArray(e) ? e : typeof e == \"number\" ? [la, e] : e == null ? ir : [e];\n}\nfunction lr(e, n, t, r) {\n let i, l, o;\n typeof n == \"function\" ? (l = void 0, o = n, i = t) : (l = n, o = t, i = r), aa(e, l, a, i);\n function a(s, u) {\n const c = u[u.length - 1], f = c ? c.children.indexOf(s) : void 0;\n return o(s, f, c);\n }\n}\nconst kn = {}.hasOwnProperty, sa = {};\nfunction ca(e, n) {\n const t = n || sa, r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Map(), l = /* @__PURE__ */ new Map(), o = { ...Wo, ...t.handlers }, a = {\n all: u,\n applyData: fa,\n definitionById: r,\n footnoteById: i,\n footnoteCounts: l,\n footnoteOrder: [],\n handlers: o,\n one: s,\n options: t,\n patch: pa,\n wrap: ma\n };\n return lr(e, function(c) {\n if (c.type === \"definition\" || c.type === \"footnoteDefinition\") {\n const f = c.type === \"definition\" ? r : i, d = String(c.identifier).toUpperCase();\n f.has(d) || f.set(d, c);\n }\n }), a;\n function s(c, f) {\n const d = c.type, p = a.handlers[d];\n if (kn.call(a.handlers, d) && p)\n return p(a, c, f);\n if (a.options.passThrough && a.options.passThrough.includes(d)) {\n if (\"children\" in c) {\n const { children: w, ...A } = c, x = Xe(A);\n return x.children = a.all(c), x;\n }\n return Xe(c);\n }\n return (a.options.unknownHandler || ha)(a, c, f);\n }\n function u(c) {\n const f = [];\n if (\"children\" in c) {\n const d = c.children;\n let p = -1;\n for (; ++p < d.length; ) {\n const b = a.one(d[p], c);\n if (b) {\n if (p && d[p - 1].type === \"break\" && (!Array.isArray(b) && b.type === \"text\" && (b.value = dt(b.value)), !Array.isArray(b) && b.type === \"element\")) {\n const w = b.children[0];\n w && w.type === \"text\" && (w.value = dt(w.value));\n }\n Array.isArray(b) ? f.push(...b) : f.push(b);\n }\n }\n }\n return f;\n }\n}\nfunction pa(e, n) {\n e.position && (n.position = $r(e));\n}\nfunction fa(e, n) {\n let t = n;\n if (e && e.data) {\n const r = e.data.hName, i = e.data.hChildren, l = e.data.hProperties;\n if (typeof r == \"string\")\n if (t.type === \"element\")\n t.tagName = r;\n else {\n const o = \"children\" in t ? t.children : [t];\n t = { type: \"element\", tagName: r, properties: {}, children: o };\n }\n t.type === \"element\" && l && Object.assign(t.properties, Xe(l)), \"children\" in t && t.children && i !== null && i !== void 0 && (t.children = i);\n }\n return t;\n}\nfunction ha(e, n) {\n const t = n.data || {}, r = \"value\" in n && !(kn.call(t, \"hProperties\") || kn.call(t, \"hChildren\")) ? { type: \"text\", value: n.value } : {\n type: \"element\",\n tagName: \"div\",\n properties: {},\n children: e.all(n)\n };\n return e.patch(n, r), e.applyData(n, r);\n}\nfunction ma(e, n) {\n const t = [];\n let r = -1;\n for (n && t.push({ type: \"text\", value: `\n` }); ++r < e.length; )\n r && t.push({ type: \"text\", value: `\n` }), t.push(e[r]);\n return n && e.length > 0 && t.push({ type: \"text\", value: `\n` }), t;\n}\nfunction dt(e) {\n let n = 0, t = e.charCodeAt(n);\n for (; t === 9 || t === 32; )\n n++, t = e.charCodeAt(n);\n return e.slice(n);\n}\nfunction gt(e, n) {\n const t = ca(e, n), r = t.one(e, void 0), i = Zo(t), l = Array.isArray(r) ? { type: \"root\", children: r } : r || { type: \"root\", children: [] };\n return i && l.children.push({ type: \"text\", value: `\n` }, i), l;\n}\nfunction da(e, n) {\n return e && \"run\" in e ? async function(t, r) {\n const i = (\n /** @type {HastRoot} */\n gt(t, { file: r, ...n })\n );\n await e.run(i, r);\n } : function(t, r) {\n return (\n /** @type {HastRoot} */\n gt(t, { file: r, ...e || n })\n );\n };\n}\nfunction yt(e) {\n if (e)\n throw e;\n}\nvar ln, xt;\nfunction ga() {\n if (xt) return ln;\n xt = 1;\n var e = Object.prototype.hasOwnProperty, n = Object.prototype.toString, t = Object.defineProperty, r = Object.getOwnPropertyDescriptor, i = function(u) {\n return typeof Array.isArray == \"function\" ? Array.isArray(u) : n.call(u) === \"[object Array]\";\n }, l = function(u) {\n if (!u || n.call(u) !== \"[object Object]\")\n return !1;\n var c = e.call(u, \"constructor\"), f = u.constructor && u.constructor.prototype && e.call(u.constructor.prototype, \"isPrototypeOf\");\n if (u.constructor && !c && !f)\n return !1;\n var d;\n for (d in u)\n ;\n return typeof d > \"u\" || e.call(u, d);\n }, o = function(u, c) {\n t && c.name === \"__proto__\" ? t(u, c.name, {\n enumerable: !0,\n configurable: !0,\n value: c.newValue,\n writable: !0\n }) : u[c.name] = c.newValue;\n }, a = function(u, c) {\n if (c === \"__proto__\")\n if (e.call(u, c)) {\n if (r)\n return r(u, c).value;\n } else return;\n return u[c];\n };\n return ln = function s() {\n var u, c, f, d, p, b, w = arguments[0], A = 1, x = arguments.length, C = !1;\n for (typeof w == \"boolean\" && (C = w, w = arguments[1] || {}, A = 2), (w == null || typeof w != \"object\" && typeof w != \"function\") && (w = {}); A < x; ++A)\n if (u = arguments[A], u != null)\n for (c in u)\n f = a(w, c), d = a(u, c), w !== d && (C && d && (l(d) || (p = i(d))) ? (p ? (p = !1, b = f && i(f) ? f : []) : b = f && l(f) ? f : {}, o(w, { name: c, newValue: s(C, b, d) })) : typeof d < \"u\" && o(w, { name: c, newValue: d }));\n return w;\n }, ln;\n}\nvar ya = ga();\nconst on = /* @__PURE__ */ Dt(ya);\nfunction bn(e) {\n if (typeof e != \"object\" || e === null)\n return !1;\n const n = Object.getPrototypeOf(e);\n return (n === null || n === Object.prototype || Object.getPrototypeOf(n) === null) && !(Symbol.toStringTag in e) && !(Symbol.iterator in e);\n}\nfunction xa() {\n const e = [], n = { run: t, use: r };\n return n;\n function t(...i) {\n let l = -1;\n const o = i.pop();\n if (typeof o != \"function\")\n throw new TypeError(\"Expected function as last argument, not \" + o);\n a(null, ...i);\n function a(s, ...u) {\n const c = e[++l];\n let f = -1;\n if (s) {\n o(s);\n return;\n }\n for (; ++f < i.length; )\n (u[f] === null || u[f] === void 0) && (u[f] = i[f]);\n i = u, c ? ka(c, a)(...u) : o(null, ...u);\n }\n }\n function r(i) {\n if (typeof i != \"function\")\n throw new TypeError(\n \"Expected `middelware` to be a function, not \" + i\n );\n return e.push(i), n;\n }\n}\nfunction ka(e, n) {\n let t;\n return r;\n function r(...o) {\n const a = e.length > o.length;\n let s;\n a && o.push(i);\n try {\n s = e.apply(this, o);\n } catch (u) {\n const c = (\n /** @type {Error} */\n u\n );\n if (a && t)\n throw c;\n return i(c);\n }\n a || (s && s.then && typeof s.then == \"function\" ? s.then(l, i) : s instanceof Error ? i(s) : l(s));\n }\n function i(o, ...a) {\n t || (t = !0, n(o, ...a));\n }\n function l(o) {\n i(null, o);\n }\n}\nconst ue = { basename: ba, dirname: wa, extname: Sa, join: Ca, sep: \"/\" };\nfunction ba(e, n) {\n if (n !== void 0 && typeof n != \"string\")\n throw new TypeError('\"ext\" argument must be a string');\n je(e);\n let t = 0, r = -1, i = e.length, l;\n if (n === void 0 || n.length === 0 || n.length > e.length) {\n for (; i--; )\n if (e.codePointAt(i) === 47) {\n if (l) {\n t = i + 1;\n break;\n }\n } else r < 0 && (l = !0, r = i + 1);\n return r < 0 ? \"\" : e.slice(t, r);\n }\n if (n === e)\n return \"\";\n let o = -1, a = n.length - 1;\n for (; i--; )\n if (e.codePointAt(i) === 47) {\n if (l) {\n t = i + 1;\n break;\n }\n } else\n o < 0 && (l = !0, o = i + 1), a > -1 && (e.codePointAt(i) === n.codePointAt(a--) ? a < 0 && (r = i) : (a = -1, r = o));\n return t === r ? r = o : r < 0 && (r = e.length), e.slice(t, r);\n}\nfunction wa(e) {\n if (je(e), e.length === 0)\n return \".\";\n let n = -1, t = e.length, r;\n for (; --t; )\n if (e.codePointAt(t) === 47) {\n if (r) {\n n = t;\n break;\n }\n } else r || (r = !0);\n return n < 0 ? e.codePointAt(0) === 47 ? \"/\" : \".\" : n === 1 && e.codePointAt(0) === 47 ? \"//\" : e.slice(0, n);\n}\nfunction Sa(e) {\n je(e);\n let n = e.length, t = -1, r = 0, i = -1, l = 0, o;\n for (; n--; ) {\n const a = e.codePointAt(n);\n if (a === 47) {\n if (o) {\n r = n + 1;\n break;\n }\n continue;\n }\n t < 0 && (o = !0, t = n + 1), a === 46 ? i < 0 ? i = n : l !== 1 && (l = 1) : i > -1 && (l = -1);\n }\n return i < 0 || t < 0 || // We saw a non-dot character immediately before the dot.\n l === 0 || // The (right-most) trimmed path component is exactly `..`.\n l === 1 && i === t - 1 && i === r + 1 ? \"\" : e.slice(i, t);\n}\nfunction Ca(...e) {\n let n = -1, t;\n for (; ++n < e.length; )\n je(e[n]), e[n] && (t = t === void 0 ? e[n] : t + \"/\" + e[n]);\n return t === void 0 ? \".\" : Ea(t);\n}\nfunction Ea(e) {\n je(e);\n const n = e.codePointAt(0) === 47;\n let t = Ia(e, !n);\n return t.length === 0 && !n && (t = \".\"), t.length > 0 && e.codePointAt(e.length - 1) === 47 && (t += \"/\"), n ? \"/\" + t : t;\n}\nfunction Ia(e, n) {\n let t = \"\", r = 0, i = -1, l = 0, o = -1, a, s;\n for (; ++o <= e.length; ) {\n if (o < e.length)\n a = e.codePointAt(o);\n else {\n if (a === 47)\n break;\n a = 47;\n }\n if (a === 47) {\n if (!(i === o - 1 || l === 1)) if (i !== o - 1 && l === 2) {\n if (t.length < 2 || r !== 2 || t.codePointAt(t.length - 1) !== 46 || t.codePointAt(t.length - 2) !== 46) {\n if (t.length > 2) {\n if (s = t.lastIndexOf(\"/\"), s !== t.length - 1) {\n s < 0 ? (t = \"\", r = 0) : (t = t.slice(0, s), r = t.length - 1 - t.lastIndexOf(\"/\")), i = o, l = 0;\n continue;\n }\n } else if (t.length > 0) {\n t = \"\", r = 0, i = o, l = 0;\n continue;\n }\n }\n n && (t = t.length > 0 ? t + \"/..\" : \"..\", r = 2);\n } else\n t.length > 0 ? t += \"/\" + e.slice(i + 1, o) : t = e.slice(i + 1, o), r = o - i - 1;\n i = o, l = 0;\n } else a === 46 && l > -1 ? l++ : l = -1;\n }\n return t;\n}\nfunction je(e) {\n if (typeof e != \"string\")\n throw new TypeError(\n \"Path must be a string. Received \" + JSON.stringify(e)\n );\n}\nconst Aa = { cwd: Ta };\nfunction Ta() {\n return \"/\";\n}\nfunction wn(e) {\n return !!(e !== null && typeof e == \"object\" && \"href\" in e && e.href && \"protocol\" in e && e.protocol && // @ts-expect-error: indexing is fine.\n e.auth === void 0);\n}\nfunction Pa(e) {\n if (typeof e == \"string\")\n e = new URL(e);\n else if (!wn(e)) {\n const n = new TypeError(\n 'The \"path\" argument must be of type string or an instance of URL. Received `' + e + \"`\"\n );\n throw n.code = \"ERR_INVALID_ARG_TYPE\", n;\n }\n if (e.protocol !== \"file:\") {\n const n = new TypeError(\"The URL must be of scheme file\");\n throw n.code = \"ERR_INVALID_URL_SCHEME\", n;\n }\n return za(e);\n}\nfunction za(e) {\n if (e.hostname !== \"\") {\n const r = new TypeError(\n 'File URL host must be \"localhost\" or empty on darwin'\n );\n throw r.code = \"ERR_INVALID_FILE_URL_HOST\", r;\n }\n const n = e.pathname;\n let t = -1;\n for (; ++t < n.length; )\n if (n.codePointAt(t) === 37 && n.codePointAt(t + 1) === 50) {\n const r = n.codePointAt(t + 2);\n if (r === 70 || r === 102) {\n const i = new TypeError(\n \"File URL path must not include encoded / characters\"\n );\n throw i.code = \"ERR_INVALID_FILE_URL_PATH\", i;\n }\n }\n return decodeURIComponent(n);\n}\nconst an = (\n /** @type {const} */\n [\n \"history\",\n \"path\",\n \"basename\",\n \"stem\",\n \"extname\",\n \"dirname\"\n ]\n);\nclass or {\n /**\n * Create a new virtual file.\n *\n * `options` is treated as:\n *\n * * `string` or `Uint8Array` — `{value: options}`\n * * `URL` — `{path: options}`\n * * `VFile` — shallow copies its data over to the new file\n * * `object` — all fields are shallow copied over to the new file\n *\n * Path related fields are set in the following order (least specific to\n * most specific): `history`, `path`, `basename`, `stem`, `extname`,\n * `dirname`.\n *\n * You cannot set `dirname` or `extname` without setting either `history`,\n * `path`, `basename`, or `stem` too.\n *\n * @param {Compatible | null | undefined} [value]\n * File value.\n * @returns\n * New instance.\n */\n constructor(n) {\n let t;\n n ? wn(n) ? t = { path: n } : typeof n == \"string\" || La(n) ? t = { value: n } : t = n : t = {}, this.cwd = \"cwd\" in t ? \"\" : Aa.cwd(), this.data = {}, this.history = [], this.messages = [], this.value, this.map, this.result, this.stored;\n let r = -1;\n for (; ++r < an.length; ) {\n const l = an[r];\n l in t && t[l] !== void 0 && t[l] !== null && (this[l] = l === \"history\" ? [...t[l]] : t[l]);\n }\n let i;\n for (i in t)\n an.includes(i) || (this[i] = t[i]);\n }\n /**\n * Get the basename (including extname) (example: `'index.min.js'`).\n *\n * @returns {string | undefined}\n * Basename.\n */\n get basename() {\n return typeof this.path == \"string\" ? ue.basename(this.path) : void 0;\n }\n /**\n * Set basename (including extname) (`'index.min.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n *\n * @param {string} basename\n * Basename.\n * @returns {undefined}\n * Nothing.\n */\n set basename(n) {\n sn(n, \"basename\"), un(n, \"basename\"), this.path = ue.join(this.dirname || \"\", n);\n }\n /**\n * Get the parent path (example: `'~'`).\n *\n * @returns {string | undefined}\n * Dirname.\n */\n get dirname() {\n return typeof this.path == \"string\" ? ue.dirname(this.path) : void 0;\n }\n /**\n * Set the parent path (example: `'~'`).\n *\n * Cannot be set if there’s no `path` yet.\n *\n * @param {string | undefined} dirname\n * Dirname.\n * @returns {undefined}\n * Nothing.\n */\n set dirname(n) {\n kt(this.basename, \"dirname\"), this.path = ue.join(n || \"\", this.basename);\n }\n /**\n * Get the extname (including dot) (example: `'.js'`).\n *\n * @returns {string | undefined}\n * Extname.\n */\n get extname() {\n return typeof this.path == \"string\" ? ue.extname(this.path) : void 0;\n }\n /**\n * Set the extname (including dot) (example: `'.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be set if there’s no `path` yet.\n *\n * @param {string | undefined} extname\n * Extname.\n * @returns {undefined}\n * Nothing.\n */\n set extname(n) {\n if (un(n, \"extname\"), kt(this.dirname, \"extname\"), n) {\n if (n.codePointAt(0) !== 46)\n throw new Error(\"`extname` must start with `.`\");\n if (n.includes(\".\", 1))\n throw new Error(\"`extname` cannot contain multiple dots\");\n }\n this.path = ue.join(this.dirname, this.stem + (n || \"\"));\n }\n /**\n * Get the full path (example: `'~/index.min.js'`).\n *\n * @returns {string}\n * Path.\n */\n get path() {\n return this.history[this.history.length - 1];\n }\n /**\n * Set the full path (example: `'~/index.min.js'`).\n *\n * Cannot be nullified.\n * You can set a file URL (a `URL` object with a `file:` protocol) which will\n * be turned into a path with `url.fileURLToPath`.\n *\n * @param {URL | string} path\n * Path.\n * @returns {undefined}\n * Nothing.\n */\n set path(n) {\n wn(n) && (n = Pa(n)), sn(n, \"path\"), this.path !== n && this.history.push(n);\n }\n /**\n * Get the stem (basename w/o extname) (example: `'index.min'`).\n *\n * @returns {string | undefined}\n * Stem.\n */\n get stem() {\n return typeof this.path == \"string\" ? ue.basename(this.path, this.extname) : void 0;\n }\n /**\n * Set the stem (basename w/o extname) (example: `'index.min'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n *\n * @param {string} stem\n * Stem.\n * @returns {undefined}\n * Nothing.\n */\n set stem(n) {\n sn(n, \"stem\"), un(n, \"stem\"), this.path = ue.join(this.dirname || \"\", n + (this.extname || \"\"));\n }\n // Normal prototypal methods.\n /**\n * Create a fatal message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `true` (error; file not usable)\n * and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {never}\n * Never.\n * @throws {VFileMessage}\n * Message.\n */\n fail(n, t, r) {\n const i = this.message(n, t, r);\n throw i.fatal = !0, i;\n }\n /**\n * Create an info message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `undefined` (info; change\n * likely not needed) and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n info(n, t, r) {\n const i = this.message(n, t, r);\n return i.fatal = void 0, i;\n }\n /**\n * Create a message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `false` (warning; change may be\n * needed) and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n message(n, t, r) {\n const i = new X(\n // @ts-expect-error: the overloads are fine.\n n,\n t,\n r\n );\n return this.path && (i.name = this.path + \":\" + i.name, i.file = this.path), i.fatal = !1, this.messages.push(i), i;\n }\n /**\n * Serialize the file.\n *\n * > **Note**: which encodings are supported depends on the engine.\n * > For info on Node.js, see:\n * > <https://nodejs.org/api/util.html#whatwg-supported-encodings>.\n *\n * @param {string | null | undefined} [encoding='utf8']\n * Character encoding to understand `value` as when it’s a `Uint8Array`\n * (default: `'utf-8'`).\n * @returns {string}\n * Serialized file.\n */\n toString(n) {\n return this.value === void 0 ? \"\" : typeof this.value == \"string\" ? this.value : new TextDecoder(n || void 0).decode(this.value);\n }\n}\nfunction un(e, n) {\n if (e && e.includes(ue.sep))\n throw new Error(\n \"`\" + n + \"` cannot be a path: did not expect `\" + ue.sep + \"`\"\n );\n}\nfunction sn(e, n) {\n if (!e)\n throw new Error(\"`\" + n + \"` cannot be empty\");\n}\nfunction kt(e, n) {\n if (!e)\n throw new Error(\"Setting `\" + n + \"` requires `path` to be set too\");\n}\nfunction La(e) {\n return !!(e && typeof e == \"object\" && \"byteLength\" in e && \"byteOffset\" in e);\n}\nconst va = (\n /**\n * @type {new <Parameters extends Array<unknown>, Result>(property: string | symbol) => (...parameters: Parameters) => Result}\n */\n /** @type {unknown} */\n /**\n * @this {Function}\n * @param {string | symbol} property\n * @returns {(...parameters: Array<unknown>) => unknown}\n */\n function(e) {\n const r = (\n /** @type {Record<string | symbol, Function>} */\n // Prototypes do exist.\n // type-coverage:ignore-next-line\n this.constructor.prototype\n ), i = r[e], l = function() {\n return i.apply(l, arguments);\n };\n return Object.setPrototypeOf(l, r), l;\n }\n), Da = {}.hasOwnProperty;\nclass Fn extends va {\n /**\n * Create a processor.\n */\n constructor() {\n super(\"copy\"), this.Compiler = void 0, this.Parser = void 0, this.attachers = [], this.compiler = void 0, this.freezeIndex = -1, this.frozen = void 0, this.namespace = {}, this.parser = void 0, this.transformers = xa();\n }\n /**\n * Copy a processor.\n *\n * @deprecated\n * This is a private internal method and should not be used.\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n * New *unfrozen* processor ({@linkcode Processor}) that is\n * configured to work the same as its ancestor.\n * When the descendant processor is configured in the future it does not\n * affect the ancestral processor.\n */\n copy() {\n const n = (\n /** @type {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>} */\n new Fn()\n );\n let t = -1;\n for (; ++t < this.attachers.length; ) {\n const r = this.attachers[t];\n n.use(...r);\n }\n return n.data(on(!0, {}, this.namespace)), n;\n }\n /**\n * Configure the processor with info available to all plugins.\n * Information is stored in an object.\n *\n * Typically, options can be given to a specific plugin, but sometimes it\n * makes sense to have information shared with several plugins.\n * For example, a list of HTML elements that are self-closing, which is\n * needed during all phases.\n *\n * > **Note**: setting information cannot occur on *frozen* processors.\n * > Call the processor first to create a new unfrozen processor.\n *\n * > **Note**: to register custom data in TypeScript, augment the\n * > {@linkcode Data} interface.\n *\n * @example\n * This example show how to get and set info:\n *\n * ```js\n * import {unified} from 'unified'\n *\n * const processor = unified().data('alpha', 'bravo')\n *\n * processor.data('alpha') // => 'bravo'\n *\n * processor.data() // => {alpha: 'bravo'}\n *\n * processor.data({charlie: 'delta'})\n *\n * processor.data() // => {charlie: 'delta'}\n * ```\n *\n * @template {keyof Data} Key\n *\n * @overload\n * @returns {Data}\n *\n * @overload\n * @param {Data} dataset\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n *\n * @overload\n * @param {Key} key\n * @returns {Data[Key]}\n *\n * @overload\n * @param {Key} key\n * @param {Data[Key]} value\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n *\n * @param {Data | Key} [key]\n * Key to get or set, or entire dataset to set, or nothing to get the\n * entire dataset (optional).\n * @param {Data[Key]} [value]\n * Value to set (optional).\n * @returns {unknown}\n * The current processor when setting, the value at `key` when getting, or\n * the entire dataset when getting without key.\n */\n data(n, t) {\n return typeof n == \"string\" ? arguments.length === 2 ? (fn(\"data\", this.frozen), this.namespace[n] = t, this) : Da.call(this.namespace, n) && this.namespace[n] || void 0 : n ? (fn(\"data\", this.frozen), this.namespace = n, this) : this.namespace;\n }\n /**\n * Freeze a processor.\n *\n * Frozen processors are meant to be extended and not to be configured\n * directly.\n *\n * When a processor is frozen it cannot be unfrozen.\n * New processors working the same way can be created by calling the\n * processor.\n *\n * It’s possible to freeze processors explicitly by calling `.freeze()`.\n * Processors freeze automatically when `.parse()`, `.run()`, `.runSync()`,\n * `.stringify()`, `.process()`, or `.processSync()` are called.\n *\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n * The current processor.\n */\n freeze() {\n if (this.frozen)\n return this;\n const n = (\n /** @type {Processor} */\n /** @type {unknown} */\n this\n );\n for (; ++this.freezeIndex < this.attachers.length; ) {\n const [t, ...r] = this.attachers[this.freezeIndex];\n if (r[0] === !1)\n continue;\n r[0] === !0 && (r[0] = void 0);\n const i = t.call(n, ...r);\n typeof i == \"function\" && this.transformers.use(i);\n }\n return this.frozen = !0, this.freezeIndex = Number.POSITIVE_INFINITY, this;\n }\n /**\n * Parse text to a syntax tree.\n *\n * > **Note**: `parse` freezes the processor if not already *frozen*.\n *\n * > **Note**: `parse` performs the parse phase, not the run phase or other\n * > phases.\n *\n * @param {Compatible | undefined} [file]\n * file to parse (optional); typically `string` or `VFile`; any value\n * accepted as `x` in `new VFile(x)`.\n * @returns {ParseTree extends undefined ? Node : ParseTree}\n * Syntax tree representing `file`.\n */\n parse(n) {\n this.freeze();\n const t = We(n), r = this.parser || this.Parser;\n return cn(\"parse\", r), r(String(t), t);\n }\n /**\n * Process the given file as configured on the processor.\n *\n * > **Note**: `process` freezes the processor if not already *frozen*.\n *\n * > **Note**: `process` performs the parse, run, and stringify phases.\n *\n * @overload\n * @param {Compatible | undefined} file\n * @param {ProcessCallback<VFileWithOutput<CompileResult>>} done\n * @returns {undefined}\n *\n * @overload\n * @param {Compatible | undefined} [file]\n * @returns {Promise<VFileWithOutput<CompileResult>>}\n *\n * @param {Compatible | undefined} [file]\n * File (optional); typically `string` or `VFile`]; any value accepted as\n * `x` in `new VFile(x)`.\n * @param {ProcessCallback<VFileWithOutput<CompileResult>> | undefined} [done]\n * Callback (optional).\n * @returns {Promise<VFile> | undefined}\n * Nothing if `done` is given.\n * Otherwise a promise, rejected with a fatal error or resolved with the\n * processed file.\n *\n * The parsed, transformed, and compiled value is available at\n * `file.value` (see note).\n *\n * > **Note**: unified typically compiles by serializing: most\n * > compilers return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n process(n, t) {\n const r = this;\n return this.freeze(), cn(\"process\", this.parser || this.Parser), pn(\"process\", this.compiler || this.Compiler), t ? i(void 0, t) : new Promise(i);\n function i(l, o) {\n const a = We(n), s = (\n /** @type {HeadTree extends undefined ? Node : HeadTree} */\n /** @type {unknown} */\n r.parse(a)\n );\n r.run(s, a, function(c, f, d) {\n if (c || !f || !d)\n return u(c);\n const p = (\n /** @type {CompileTree extends undefined ? Node : CompileTree} */\n /** @type {unknown} */\n f\n ), b = r.stringify(p, d);\n Fa(b) ? d.value = b : d.result = b, u(\n c,\n /** @type {VFileWithOutput<CompileResult>} */\n d\n );\n });\n function u(c, f) {\n c || !f ? o(c) : l ? l(f) : t(void 0, f);\n }\n }\n }\n /**\n * Process the given file as configured on the processor.\n *\n * An error is thrown if asynchronous transforms are configured.\n *\n * > **Note**: `processSync` freezes the processor if not already *frozen*.\n *\n * > **Note**: `processSync` performs the parse, run, and stringify phases.\n *\n * @param {Compatible | undefined} [file]\n * File (optional); typically `string` or `VFile`; any value accepted as\n * `x` in `new VFile(x)`.\n * @returns {VFileWithOutput<CompileResult>}\n * The processed file.\n *\n * The parsed, transformed, and compiled value is available at\n * `file.value` (see note).\n *\n * > **Note**: unified typically compiles by serializing: most\n * > compilers return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n processSync(n) {\n let t = !1, r;\n return this.freeze(), cn(\"processSync\", this.parser || this.Parser), pn(\"processSync\", this.compiler || this.Compiler), this.process(n, i), wt(\"processSync\", \"process\", t), r;\n function i(l, o) {\n t = !0, yt(l), r = o;\n }\n }\n /**\n * Run *transformers* on a syntax tree.\n *\n * > **Note**: `run` freezes the processor if not already *frozen*.\n *\n * > **Note**: `run` performs the run phase, not other phases.\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {RunCallback<TailTree extends undefined ? Node : TailTree>} done\n * @returns {undefined}\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {Compatible | undefined} file\n * @param {RunCallback<TailTree extends undefined ? Node : TailTree>} done\n * @returns {undefined}\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {Compatible | undefined} [file]\n * @returns {Promise<TailTree extends undefined ? Node : TailTree>}\n *\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * Tree to transform and inspect.\n * @param {(\n * RunCallback<TailTree extends undefined ? Node : TailTree> |\n * Compatible\n * )} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @param {RunCallback<TailTree extends undefined ? Node : TailTree>} [done]\n * Callback (optional).\n * @returns {Promise<TailTree extends undefined ? Node : TailTree> | undefined}\n * Nothing if `done` is given.\n * Otherwise, a promise rejected with a fatal error or resolved with the\n * transformed tree.\n */\n run(n, t, r) {\n bt(n), this.freeze();\n const i = this.transformers;\n return !r && typeof t == \"function\" && (r = t, t = void 0), r ? l(void 0, r) : new Promise(l);\n function l(o, a) {\n const s = We(t);\n i.run(n, s, u);\n function u(c, f, d) {\n const p = (\n /** @type {TailTree extends undefined ? Node : TailTree} */\n f || n\n );\n c ? a(c) : o ? o(p) : r(void 0, p, d);\n }\n }\n }\n /**\n * Run *transformers* on a syntax tree.\n *\n * An error is thrown if asynchronous transforms are configured.\n *\n * > **Note**: `runSync` freezes the processor if not already *frozen*.\n *\n * > **Note**: `runSync` performs the run phase, not other phases.\n *\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * Tree to transform and inspect.\n * @param {Compatible | undefined} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @returns {TailTree extends undefined ? Node : TailTree}\n * Transformed tree.\n */\n runSync(n, t) {\n let r = !1, i;\n return this.run(n, t, l), wt(\"runSync\", \"run\", r), i;\n function l(o, a) {\n yt(o), i = a, r = !0;\n }\n }\n /**\n * Compile a syntax tree.\n *\n * > **Note**: `stringify` freezes the processor if not already *frozen*.\n *\n * > **Note**: `stringify` performs the stringify phase, not the run phase\n * > or other phases.\n *\n * @param {CompileTree extends undefined ? Node : CompileTree} tree\n * Tree to compile.\n * @param {Compatible | undefined} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @returns {CompileResult extends undefined ? Value : CompileResult}\n * Textual representation of the tree (see note).\n *\n * > **Note**: unified typically compiles by serializing: most compilers\n * > return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n stringify(n, t) {\n this.freeze();\n const r = We(t), i = this.compiler || this.Compiler;\n return pn(\"stringify\", i), bt(n), i(n, r);\n }\n /**\n * Configure the processor to use a plugin, a list of usable values, or a\n * preset.\n *\n * If the processor is already using a plugin, the previous plugin\n * configuration is changed based on the options that are passed in.\n * In other words, the plugin is not added a second time.\n *\n * > **Note**: `use` cannot be called on *frozen* processors.\n * > Call the processor first to create a new unfrozen processor.\n *\n * @example\n * There are many ways to pass plugins to `.use()`.\n * This example gives an overview:\n *\n * ```js\n * import {unified} from 'unified'\n *\n * unified()\n * // Plugin with options:\n * .use(pluginA, {x: true, y: true})\n * // Passing the same plugin again merges configuration (to `{x: true, y: false, z: true}`):\n * .use(pluginA, {y: false, z: true})\n * // Plugins:\n * .use([pluginB, pluginC])\n * // Two plugins, the second with options:\n * .use([pluginD, [pluginE, {}]])\n * // Preset with plugins and settings:\n * .use({plugins: [pluginF, [pluginG, {}]], settings: {position: false}})\n * // Settings only:\n * .use({settings: {position: false}})\n * ```\n *\n * @template {Array<unknown>} [Parameters=[]]\n * @template {Node | string | undefined} [Input=undefined]\n * @template [Output=Input]\n *\n * @overload\n * @param {Preset | null | undefined} [preset]\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n *\n * @overload\n * @param {PluggableList} list\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n *\n * @overload\n * @param {Plugin<Parameters, Input, Output>} plugin\n * @param {...(Parameters | [boolean])} parameters\n * @returns {UsePlugin<ParseTree, HeadTree, TailTree, CompileTree, CompileResult, Input, Output>}\n *\n * @param {PluggableList | Plugin | Preset | null | undefined} value\n * Usable value.\n * @param {...unknown} parameters\n * Parameters, when a plugin is given as a usable value.\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n * Current processor.\n */\n use(n, ...t) {\n const r = this.attachers, i = this.namespace;\n if (fn(\"use\", this.frozen), n != null) if (typeof n == \"function\")\n s(n, t);\n else if (typeof n == \"object\")\n Array.isArray(n) ? a(n) : o(n);\n else\n throw new TypeError(\"Expected usable value, not `\" + n + \"`\");\n return this;\n function l(u) {\n if (typeof u == \"function\")\n s(u, []);\n else if (typeof u == \"object\")\n if (Array.isArray(u)) {\n const [c, ...f] = (\n /** @type {PluginTuple<Array<unknown>>} */\n u\n );\n s(c, f);\n } else\n o(u);\n else\n throw new TypeError(\"Expected usable value, not `\" + u + \"`\");\n }\n function o(u) {\n if (!(\"plugins\" in u) && !(\"settings\" in u))\n throw new Error(\n \"Expected usable value but received an empty preset, which is probably a mistake: presets typically come with `plugins` and sometimes with `settings`, but this has neither\"\n );\n a(u.plugins), u.settings && (i.settings = on(!0, i.settings, u.settings));\n }\n function a(u) {\n let c = -1;\n if (u != null) if (Array.isArray(u))\n for (; ++c < u.length; ) {\n const f = u[c];\n l(f);\n }\n else\n throw new TypeError(\"Expected a list of plugins, not `\" + u + \"`\");\n }\n function s(u, c) {\n let f = -1, d = -1;\n for (; ++f < r.length; )\n if (r[f][0] === u) {\n d = f;\n break;\n }\n if (d === -1)\n r.push([u, ...c]);\n else if (c.length > 0) {\n let [p, ...b] = c;\n const w = r[d][1];\n bn(w) && bn(p) && (p = on(!0, w, p)), r[d] = [u, p, ...b];\n }\n }\n }\n}\nconst Oa = new Fn().freeze();\nfunction cn(e, n) {\n if (typeof n != \"function\")\n throw new TypeError(\"Cannot `\" + e + \"` without `parser`\");\n}\nfunction pn(e, n) {\n if (typeof n != \"function\")\n throw new TypeError(\"Cannot `\" + e + \"` without `compiler`\");\n}\nfunction fn(e, n) {\n if (n)\n throw new Error(\n \"Cannot call `\" + e + \"` on a frozen processor.\\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.\"\n );\n}\nfunction bt(e) {\n if (!bn(e) || typeof e.type != \"string\")\n throw new TypeError(\"Expected node, got `\" + e + \"`\");\n}\nfunction wt(e, n, t) {\n if (!t)\n throw new Error(\n \"`\" + e + \"` finished async. Use `\" + n + \"` instead\"\n );\n}\nfunction We(e) {\n return Ra(e) ? e : new or(e);\n}\nfunction Ra(e) {\n return !!(e && typeof e == \"object\" && \"message\" in e && \"messages\" in e);\n}\nfunction Fa(e) {\n return typeof e == \"string\" || Na(e);\n}\nfunction Na(e) {\n return !!(e && typeof e == \"object\" && \"byteLength\" in e && \"byteOffset\" in e);\n}\nconst Ma = \"https://github.com/remarkjs/react-markdown/blob/main/changelog.md\", St = [], Ct = { allowDangerousHtml: !0 }, _a = /^(https?|ircs?|mailto|xmpp)$/i, Ba = [\n { from: \"astPlugins\", id: \"remove-buggy-html-in-markdown-parser\" },\n { from: \"allowDangerousHtml\", id: \"remove-buggy-html-in-markdown-parser\" },\n {\n from: \"allowNode\",\n id: \"replace-allownode-allowedtypes-and-disallowedtypes\",\n to: \"allowElement\"\n },\n {\n from: \"allowedTypes\",\n id: \"replace-allownode-allowedtypes-and-disallowedtypes\",\n to: \"allowedElements\"\n },\n {\n from: \"disallowedTypes\",\n id: \"replace-allownode-allowedtypes-and-disallowedtypes\",\n to: \"disallowedElements\"\n },\n { from: \"escapeHtml\", id: \"remove-buggy-html-in-markdown-parser\" },\n { from: \"includeElementIndex\", id: \"#remove-includeelementindex\" },\n {\n from: \"includeNodeIndex\",\n id: \"change-includenodeindex-to-includeelementindex\"\n },\n { from: \"linkTarget\", id: \"remove-linktarget\" },\n { from: \"plugins\", id: \"change-plugins-to-remarkplugins\", to: \"remarkPlugins\" },\n { from: \"rawSourcePos\", id: \"#remove-rawsourcepos\" },\n { from: \"renderers\", id: \"change-renderers-to-components\", to: \"components\" },\n { from: \"source\", id: \"change-source-to-children\", to: \"children\" },\n { from: \"sourcePos\", id: \"#remove-sourcepos\" },\n { from: \"transformImageUri\", id: \"#add-urltransform\", to: \"urlTransform\" },\n { from: \"transformLinkUri\", id: \"#add-urltransform\", to: \"urlTransform\" }\n];\nfunction ja(e) {\n const n = e.allowedElements, t = e.allowElement, r = e.children || \"\", i = e.className, l = e.components, o = e.disallowedElements, a = e.rehypePlugins || St, s = e.remarkPlugins || St, u = e.remarkRehypeOptions ? { ...e.remarkRehypeOptions, ...Ct } : Ct, c = e.skipHtml, f = e.unwrapDisallowed, d = e.urlTransform || Ha, p = Oa().use(bo).use(s).use(da, u).use(a), b = new or();\n typeof r == \"string\" && (b.value = r);\n for (const C of Ba)\n Object.hasOwn(e, C.from) && (\"\" + C.from + (C.to ? \"use `\" + C.to + \"` instead\" : \"remove it\") + Ma + C.id, void 0);\n const w = p.parse(b);\n let A = p.runSync(w, b);\n return i && (A = {\n type: \"element\",\n tagName: \"div\",\n properties: { className: i },\n // Assume no doctypes.\n children: (\n /** @type {Array<ElementContent>} */\n A.type === \"root\" ? A.children : [A]\n )\n }), lr(A, x), Gr(A, {\n Fragment: Sr,\n // @ts-expect-error\n // React components are allowed to return numbers,\n // but not according to the types in hast-util-to-jsx-runtime\n components: l,\n ignoreInvalidStyle: !0,\n jsx: ae,\n jsxs: wr,\n passKeys: !0,\n passNode: !0\n });\n function x(C, E, N) {\n if (C.type === \"raw\" && N && typeof E == \"number\")\n return c ? N.children.splice(E, 1) : N.children[E] = { type: \"text\", value: C.value }, E;\n if (C.type === \"element\") {\n let R;\n for (R in nn)\n if (Object.hasOwn(nn, R) && Object.hasOwn(C.properties, R)) {\n const y = C.properties[R], F = nn[R];\n (F === null || F.includes(C.tagName)) && (C.properties[R] = d(String(y || \"\"), R, C));\n }\n }\n if (C.type === \"element\") {\n let R = n ? !n.includes(C.tagName) : o ? o.includes(C.tagName) : !1;\n if (!R && t && typeof E == \"number\" && (R = !t(C, E, N)), R && N && typeof E == \"number\")\n return f && C.children ? N.children.splice(E, 1, ...C.children) : N.children.splice(E, 1), E;\n }\n }\n}\nfunction Ha(e) {\n const n = e.indexOf(\":\"), t = e.indexOf(\"?\"), r = e.indexOf(\"#\"), i = e.indexOf(\"/\");\n return (\n // If there is no protocol, it’s relative.\n n === -1 || // If the first colon is after a `?`, `#`, or `/`, it’s not a protocol.\n i !== -1 && n > i || t !== -1 && n > t || r !== -1 && n > r || // It is a protocol, it should be allowed.\n _a.test(e.slice(0, n)) ? e : \"\"\n );\n}\nconst Ua = ({ children: e }) => /* @__PURE__ */ ae(\"div\", { style: { whiteSpace: \"normal\" }, children: /* @__PURE__ */ ae(\n ja,\n {\n components: {\n p: ({ ...t }) => /* @__PURE__ */ ae(\n \"p\",\n {\n style: {\n margin: 0,\n marginBottom: \"0.5em\",\n lineHeight: 1.4,\n textAlign: \"left\"\n },\n children: t.children\n }\n ),\n ul: ({ ...t }) => /* @__PURE__ */ ae(\n \"ul\",\n {\n style: {\n paddingLeft: \"clamp(8px, 3.5vw, 16px)\",\n margin: 0,\n listStylePosition: \"inside\"\n // KEY CHANGE\n },\n children: t.children\n }\n ),\n ol: ({ ...t }) => /* @__PURE__ */ ae(\n \"ol\",\n {\n style: {\n paddingLeft: \"clamp(8px, 3.5vw, 16px)\",\n margin: 0,\n listStylePosition: \"inside\"\n // KEY CHANGE\n },\n children: t.children\n }\n ),\n // KEY CHANGE: Remove custom bullet rendering, let browser handle bullets & numbers\n li: ({ ...t }) => /* @__PURE__ */ ae(\n \"li\",\n {\n style: {\n marginBottom: \"1px\",\n lineHeight: 1.4\n },\n children: t.children\n }\n ),\n code({ inline: t, children: r }) {\n return t ? /* @__PURE__ */ ae(\n \"code\",\n {\n style: {\n backgroundColor: \"rgba(0, 0, 0, 0.3)\",\n padding: \"2px 4px\",\n borderRadius: \"4px\",\n fontFamily: \"inherit\",\n fontSize: \"0.95em\"\n },\n children: r\n }\n ) : /* @__PURE__ */ ae(\n \"pre\",\n {\n style: {\n backgroundColor: \"rgba(0, 0, 0, 0.3)\",\n padding: \"8px\",\n borderRadius: \"4px\",\n overflowX: \"auto\",\n margin: \"0.5em 0\",\n whiteSpace: \"pre-wrap\"\n // preserve line breaks\n },\n children: /* @__PURE__ */ ae(\"code\", { children: r })\n }\n );\n },\n blockquote: ({ ...t }) => /* @__PURE__ */ ae(\n \"blockquote\",\n {\n style: {\n margin: 0,\n paddingLeft: \"10px\",\n borderLeft: \"2px solid #ccc\",\n color: \"#666\",\n fontStyle: \"italic\"\n },\n children: t.children\n }\n )\n },\n children: typeof e == \"string\" ? e : \"\"\n }\n) }), Va = {\n autoConfig: !0\n}, qa = (e, n, t) => {\n var i;\n if (typeof e.data.message.content != \"string\" || !e.detail.currPath)\n return !1;\n const r = n[e.detail.currPath];\n return r ? ((i = r.renderMarkdown) == null ? void 0 : i.map((l) => l.toUpperCase()).includes(t)) ?? !1 : !1;\n}, $a = (e) => {\n const { getFlow: n } = yr(), { messages: t, replaceMessages: r } = xr(), { settings: i } = kr(), { hasChatHistoryLoaded: l } = br(), o = { ...e, ...Va }, a = o.markdownComponent ? o.markdownComponent : Ua;\n gr(() => {\n var c, f;\n if (l) {\n const d = [...t];\n for (let p = 0; p < d.length && p < (((c = i.chatHistory) == null ? void 0 : c.maxEntries) ?? 30); p++) {\n const b = d[p];\n (f = b.tags) != null && f.includes(\"rcb-markdown-renderer-plugin:parsed\") && (b.contentWrapper = a);\n }\n r(d);\n }\n }, [l]);\n const s = async (c) => {\n var d;\n const f = (d = c.data.message) == null ? void 0 : d.sender.toUpperCase();\n qa(c, n(), f) && (c.data.message.contentWrapper = a, c.data.message.tags || (c.data.message.tags = []), c.data.message.tags.push(\"rcb-markdown-renderer-plugin:parsed\"));\n };\n Ue(Ve.PRE_INJECT_MESSAGE, s), Ue(Ve.CHUNK_STREAM_MESSAGE, s), Ue(Ve.START_STREAM_MESSAGE, s), Ue(Ve.START_SIMULATE_STREAM_MESSAGE, s);\n const u = {\n name: \"@rcb-plugins/markdown-renderer\"\n };\n return o != null && o.autoConfig && (u.settings = {\n event: {\n rcbPreInjectMessage: !0,\n rcbChunkStreamMessage: !0,\n rcbStartSimulateStreamMessage: !0,\n rcbStartStreamMessage: !0\n }\n }), u;\n}, Xa = (e) => () => $a(e);\nexport {\n Xa as default\n};\n","import { useState as A, useRef as U, useEffect as B } from \"react\";\nimport { useToasts as E, useFlow as C, useStyles as I, useOnRcbEvent as f, RcbEvent as h } from \"react-chatbotify\";\nconst i = {\n autoConfig: !0,\n // defaults to true to help users enable required events\n promptBaseColors: {\n info: \"#007bff\",\n warning: \"#ffc107\",\n error: \"#dc3545\",\n success: \"#28a745\"\n },\n promptHoveredColors: {\n info: \"#0056b3\",\n warning: \"#d39e00\",\n error: \"#c82333\",\n success: \"#218838\"\n },\n textAreaHighlightColors: {\n info: \"#007bff\",\n warning: \"#ffc107\",\n error: \"#dc3545\",\n success: \"#28a745\"\n }\n}, R = (t) => ({\n ...i,\n ...t,\n promptBaseColors: {\n ...i.promptBaseColors,\n ...t == null ? void 0 : t.promptBaseColors\n },\n promptHoveredColors: {\n ...i.promptHoveredColors,\n ...t == null ? void 0 : t.promptHoveredColors\n },\n textAreaHighlightColors: {\n ...i.textAreaHighlightColors,\n ...t == null ? void 0 : t.textAreaHighlightColors\n }\n}), w = (t, e) => {\n const r = t.promptType ?? \"info\";\n let o = {};\n return e.advancedStyles && (o = e.advancedStyles[r]), e.promptBaseColors && (o.toastPromptStyle = {\n color: e.promptBaseColors[r],\n borderColor: e.promptBaseColors[r]\n }), e.promptHoveredColors && (o.toastPromptHoveredStyle = {\n color: e.promptHoveredColors[r],\n borderColor: e.promptHoveredColors[r]\n }), e.textAreaHighlightColors && (t.highlightTextArea ?? !0) && (o.chatInputAreaStyle = {\n boxShadow: `${e.textAreaHighlightColors[r]} 0px 0px 5px`\n }), o;\n}, y = (t, e, r = \"validateTextInput\") => {\n var l;\n if (!((l = t.detail) != null && l.currPath))\n return;\n const o = e[t.detail.currPath];\n if (!o)\n return;\n const u = o[r];\n return typeof u == \"function\" ? u : void 0;\n}, F = (t) => {\n const { showToast: e } = E(), { getFlow: r } = C(), { styles: o, updateStyles: u, replaceStyles: l } = I(), S = R(t), [m, v] = A(0), b = U({}), P = (a) => {\n const n = a, p = y(n, r(), \"validateTextInput\");\n if (!p)\n return;\n const s = p(n.data.inputText);\n if (s != null && s.success || a.preventDefault(), !s.promptContent)\n return;\n m === 0 && (b.current = structuredClone(o));\n const c = w(s, S);\n u(c), e(s.promptContent, s.promptDuration ?? 3e3), v((d) => d + 1);\n }, H = (a) => {\n var d, x;\n const n = a, p = (x = (d = n.data) == null ? void 0 : d.files) == null ? void 0 : x[0];\n if (!p) {\n console.error(\"No file uploaded.\"), a.preventDefault();\n return;\n }\n const s = y(n, r(), \"validateFileInput\");\n if (!s) {\n console.error(\"Validator not found for file input.\");\n return;\n }\n const c = s(p);\n if (!c.success) {\n console.error(\"Validation failed:\", c), c.promptContent && e(c.promptContent, c.promptDuration ?? 3e3), a.preventDefault();\n return;\n }\n console.log(\"Validation successful:\", c);\n }, D = () => {\n v((a) => a - 1);\n };\n f(h.USER_SUBMIT_TEXT, P), f(h.USER_UPLOAD_FILE, H), f(h.DISMISS_TOAST, D), B(() => {\n m === 0 && setTimeout(() => {\n l(b.current);\n });\n }, [m, l]);\n const T = {\n name: \"@rcb-plugins/input-validator\"\n };\n return S.autoConfig && (T.settings = {\n event: {\n rcbUserSubmitText: !0,\n rcbUserUploadFile: !0,\n rcbDismissToast: !0\n }\n }), T;\n}, M = (t) => () => F(t);\nexport {\n M as default\n};\n","import React, { useImperativeHandle, useEffect, useRef, forwardRef } from 'react';\nimport { useMessages, useChatWindow } from \"react-chatbotify\";\nimport type { BotControllerHandle } from '../config';\n\ninterface BotControllerProps {\n embedded: boolean;\n currentOpen?: boolean;\n enabled: boolean;\n onSetEnabled?: (enabled: boolean) => void;\n}\n\n/**\n * BotController Component\n *\n * Handles the integration between react-chatbotify hooks and the imperative API.\n * This component must be rendered inside ChatBotProvider to access the hooks.\n */\nconst BotController = forwardRef<BotControllerHandle, BotControllerProps>(({\n embedded,\n currentOpen,\n enabled,\n onSetEnabled\n}, ref) => {\n // Get the chatbot hooks (must be inside ChatBotProvider)\n const messages = useMessages();\n const chatWindow = useChatWindow();\n\n const lastOpenRef = useRef<boolean>(false); // Default matches defaultOpen: false\n const fromEventRef = useRef(false);\n\n // Sync open state with chat window when it changes (but not when change came from event)\n useEffect(() => {\n if (!embedded && chatWindow && chatWindow.toggleChatWindow) {\n if (lastOpenRef.current !== currentOpen && !fromEventRef.current) {\n // Use a small delay to ensure chatWindow is fully initialized\n setTimeout(() => {\n if (chatWindow && chatWindow.toggleChatWindow) {\n chatWindow.toggleChatWindow(currentOpen);\n }\n }, 0);\n lastOpenRef.current = currentOpen ?? false;\n }\n fromEventRef.current = false;\n }\n }, [currentOpen, embedded, chatWindow]);\n\n // Expose a method to mark that the next state change came from user interaction\n useEffect(() => {\n const markAsUserInteraction = () => {\n fromEventRef.current = true;\n };\n\n // Listen for user interactions with the chat window\n window.addEventListener('rcb-toggle-chat-window', markAsUserInteraction);\n return () => window.removeEventListener('rcb-toggle-chat-window', markAsUserInteraction);\n });\n\n\n useImperativeHandle(ref, () => ({\n // An imperative method to add a message to bot\n addMessage: (message: string) => {\n if (messages && messages.injectMessage) {\n messages.injectMessage(message);\n }\n },\n openChat: () => {\n if (!embedded && chatWindow && chatWindow.toggleChatWindow) {\n chatWindow.toggleChatWindow(true);\n }\n },\n closeChat: () => {\n if (!embedded && chatWindow && chatWindow.toggleChatWindow) {\n chatWindow.toggleChatWindow(false);\n }\n },\n toggleChat: () => {\n if (!embedded && chatWindow && chatWindow.toggleChatWindow) {\n chatWindow.toggleChatWindow();\n }\n },\n setBotEnabled: (enabled: boolean) => {\n if (onSetEnabled) {\n onSetEnabled(enabled);\n }\n }\n }), [messages, chatWindow, embedded, onSetEnabled]);\n return null;\n});\n\nBotController.displayName = 'BotController';\n\nexport default BotController;","import React, { createContext, useContext, useRef } from 'react';\nimport type { QABotAnalyticsEvent } from '../config';\n\n/**\n * Event type without auto-populated fields.\n * Call sites provide event-specific data; common fields are added by the enriched tracker.\n */\nexport type AnalyticsEventInput = Omit<QABotAnalyticsEvent, 'timestamp' | 'sessionId' | 'pageUrl' | 'isEmbedded'>;\n\ninterface AnalyticsContextValue {\n trackEvent: (event: AnalyticsEventInput) => void;\n}\n\nconst AnalyticsContext = createContext<AnalyticsContextValue | null>(null);\n\ninterface AnalyticsProviderProps {\n /**\n * Pre-enriched track function that adds common fields (timestamp, sessionId, pageUrl, isEmbedded).\n * Created by QABot and passed down to ensure consistent enrichment across all call sites.\n */\n trackEvent: (event: AnalyticsEventInput) => void;\n children: React.ReactNode;\n}\n\nexport const AnalyticsProvider: React.FC<AnalyticsProviderProps> = ({\n trackEvent,\n children\n}) => {\n // Use ref to keep stable reference while allowing updates\n const trackEventRef = useRef(trackEvent);\n trackEventRef.current = trackEvent;\n\n return (\n <AnalyticsContext.Provider value={{ trackEvent: (event) => trackEventRef.current(event) }}>\n {children}\n </AnalyticsContext.Provider>\n );\n};\n\nexport const useAnalytics = (): AnalyticsContextValue => {\n const context = useContext(AnalyticsContext);\n if (!context) {\n // Return no-op if used outside provider (graceful degradation)\n return { trackEvent: () => {} };\n }\n return context;\n};\n","import React from 'react';\nimport { useAnalytics } from '../contexts/AnalyticsContext';\n\n/**\n * LoginButton Component\n *\n * A standalone component for the login button that can be styled independently\n *\n * @param props - Component props\n * @param props.loginUrl - URL to navigate to for login\n * @param props.className - Optional CSS class for styling\n * @param props.style - Optional inline styles\n * @param props.isHeaderButton - Whether this is rendered in the header (different styling)\n * @returns Rendered login button\n */\ninterface LoginButtonProps {\n loginUrl: string;\n className?: string;\n style?: React.CSSProperties;\n isHeaderButton?: boolean;\n}\n\nconst LoginButton: React.FC<LoginButtonProps> = ({\n loginUrl,\n className = '',\n style,\n isHeaderButton = false\n}) => {\n const { trackEvent } = useAnalytics();\n\n const handleClick = () => {\n trackEvent({ type: 'chatbot_login_clicked', loginUrl });\n };\n const headerStyle: React.CSSProperties = {\n display: 'inline-block',\n padding: '6px 12px',\n backgroundColor: 'transparent',\n border: '1px solid #ccc',\n color: 'white',\n textDecoration: 'none',\n borderRadius: '4px',\n fontWeight: 'normal',\n textAlign: 'center',\n margin: '8px',\n fontSize: '12px',\n opacity: 0.8,\n transition: 'all 0.2s ease'\n };\n\n const defaultStyle: React.CSSProperties = {\n display: 'inline-block',\n padding: '10px 20px',\n backgroundColor: 'white',\n border: '1px solid var(--primaryColor, #107180)',\n color: 'var(--primaryColor, #107180)',\n textDecoration: 'none',\n borderRadius: '4px',\n fontWeight: 'bold',\n textAlign: 'center',\n margin: '18px',\n boxShadow: '0 2px 4px rgba(0, 0, 0, 0.2)'\n };\n\n const finalStyle = isHeaderButton ? headerStyle : defaultStyle;\n\n return (\n <>\n {isHeaderButton && (\n <style>\n {`\n .rcb-chat-header-container .qa-bot-header-login-button:hover {\n background-color: #0000001a !important;\n opacity: 1 !important;\n }\n `}\n </style>\n )}\n <a\n href={loginUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={`qa-bot-login-button ${isHeaderButton ? 'qa-bot-header-login-button' : ''} ${className}`}\n style={{ ...finalStyle, ...style }}\n onClick={handleClick}\n >\n Log In\n </a>\n </>\n );\n};\n\nexport default LoginButton;\n","import React from 'react';\n\n/**\n * UserIcon Component\n *\n * A standalone component for the user icon that can be styled independently.\n * Visibility controlled by CSS classes on the container.\n *\n * @returns Rendered user icon\n */\nconst UserIcon: React.FC = () => (\n <div\n className=\"user-login-icon\"\n style={{\n alignItems: 'center',\n justifyContent: 'center',\n width: '30px',\n height: '30px',\n borderRadius: '50%',\n backgroundColor: 'var(--primaryColor, #1a5b6e)',\n marginRight: '5px',\n display: 'flex'\n }}\n role=\"img\"\n aria-label=\"User logged in\"\n title=\"User logged in\"\n >\n <svg\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"white\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <path d=\"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2\"></path>\n <circle cx=\"12\" cy=\"7\" r=\"4\"></circle>\n </svg>\n </div>\n);\n\nexport default UserIcon;\n","import validate from './validate.js';\nconst byteToHex = [];\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\nexport function unsafeStringify(arr, offset = 0) {\n return (byteToHex[arr[offset + 0]] +\n byteToHex[arr[offset + 1]] +\n byteToHex[arr[offset + 2]] +\n byteToHex[arr[offset + 3]] +\n '-' +\n byteToHex[arr[offset + 4]] +\n byteToHex[arr[offset + 5]] +\n '-' +\n byteToHex[arr[offset + 6]] +\n byteToHex[arr[offset + 7]] +\n '-' +\n byteToHex[arr[offset + 8]] +\n byteToHex[arr[offset + 9]] +\n '-' +\n byteToHex[arr[offset + 10]] +\n byteToHex[arr[offset + 11]] +\n byteToHex[arr[offset + 12]] +\n byteToHex[arr[offset + 13]] +\n byteToHex[arr[offset + 14]] +\n byteToHex[arr[offset + 15]]).toLowerCase();\n}\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset);\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n return uuid;\n}\nexport default stringify;\n","let getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n if (!getRandomValues) {\n if (typeof crypto === 'undefined' || !crypto.getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n getRandomValues = crypto.getRandomValues.bind(crypto);\n }\n return getRandomValues(rnds8);\n}\n","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default { randomUUID };\n","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n options = options || {};\n const rnds = options.random ?? options.rng?.() ?? rng();\n if (rnds.length < 16) {\n throw new Error('Random bytes length must be >= 16');\n }\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n if (buf) {\n offset = offset || 0;\n if (offset < 0 || offset + 16 > buf.length) {\n throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);\n }\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n return buf;\n }\n return unsafeStringify(rnds);\n}\nexport default v4;\n","/**\n * Logger utility for QA Bot Core\n *\n * Controls debug logging via localStorage:\n * - QA_BOT_DEBUG: Set to 'true' to enable debug logging and version info\n *\n * Usage for consumers:\n * localStorage.setItem('QA_BOT_DEBUG', 'true'); // Enable debug logs + version\n */\n\n// localStorage key\nconst DEBUG_KEY = 'QA_BOT_DEBUG';\n\n// Library version - update this when releasing (see publishing.md)\nexport const LIB_VERSION = '0.2.19';\n\nfunction isDebugEnabled(): boolean {\n return typeof localStorage !== 'undefined' && localStorage.getItem(DEBUG_KEY) === 'true';\n}\n\n// Styled prefixes for different log types\nconst styles = {\n session: 'background: #1a5b6e; color: white; padding: 2px 6px; border-radius: 3px;',\n history: 'background: #7c3aed; color: white; padding: 2px 6px; border-radius: 3px;',\n message: 'background: #059669; color: white; padding: 2px 6px; border-radius: 3px;',\n version: 'background: #f59e0b; color: #000; padding: 2px 6px; border-radius: 3px 0 0 3px; font-weight: bold;',\n versionNum: 'background: #fbbf24; color: #000; padding: 2px 6px; border-radius: 0 3px 3px 0;',\n};\n\nexport const logger = {\n // Log version - call once on component mount\n version: () => {\n if (isDebugEnabled()) {\n console.log(`%c QA Bot Core %c v${LIB_VERSION} `, styles.version, styles.versionNum);\n }\n },\n\n // Session logging - styled, only when DEBUG enabled\n session: (action: string, ...args: unknown[]) => {\n if (isDebugEnabled()) {\n console.log(`%c[Session]%c ${action}`, styles.session, '', ...args);\n }\n },\n\n // History logging - styled, only when DEBUG enabled\n history: (action: string, ...args: unknown[]) => {\n if (isDebugEnabled()) {\n console.log(`%c[History]%c ${action}`, styles.history, '', ...args);\n }\n },\n\n // Message tracking - styled, only when DEBUG enabled\n message: (action: string, data: Record<string, unknown>) => {\n if (isDebugEnabled()) {\n console.log(`%c[Message]%c ${action}`, styles.message, '', data);\n }\n },\n\n // Warnings - always show\n warn: (...args: unknown[]) => {\n console.warn(...args);\n },\n\n // Errors - always show\n error: (...args: unknown[]) => {\n console.error(...args);\n }\n};\n","import { v4 as uuidv4 } from 'uuid';\nimport { logger } from './logger';\n\nconst SESSION_MESSAGES_KEY = 'qa_bot_session_messages';\n\n// Maximum total messages across all sessions\nconst MAX_TOTAL_MESSAGES = 100;\n\n/**\n * Stored message structure - minimal data needed for restore\n */\nexport interface StoredMessage {\n id: string;\n content: string;\n sender: string;\n type: string;\n timestamp: number;\n}\n\n/**\n * Session data structure\n */\nexport interface SessionMessageData {\n messages: StoredMessage[];\n startedAt: string;\n preview: string;\n}\n\nexport interface SessionMessagesStore {\n [sessionId: string]: SessionMessageData;\n}\n\nexport const generateSessionId = (): string => {\n return `qa_bot_session_${uuidv4()}`;\n};\n\n\n/**\n * Get the session messages store from localStorage\n */\nexport const getSessionMessagesStore = (): SessionMessagesStore => {\n try {\n const stored = localStorage.getItem(SESSION_MESSAGES_KEY);\n return stored ? JSON.parse(stored) : {};\n } catch {\n // Silently fail - corrupted storage shouldn't break the app\n return {};\n }\n};\n\n/**\n * Save the session messages store to localStorage, evicting oldest sessions if over message limit\n */\nconst saveSessionMessagesStore = (store: SessionMessagesStore): void => {\n // Count total messages across all sessions\n const getTotalMessages = () =>\n Object.values(store).reduce((sum, session) => sum + session.messages.length, 0);\n\n // Evict oldest sessions until we're under the message limit\n while (getTotalMessages() > MAX_TOTAL_MESSAGES && Object.keys(store).length > 1) {\n // Find oldest session\n const oldestSessionId = Object.entries(store)\n .sort(([, a], [, b]) => new Date(a.startedAt).getTime() - new Date(b.startedAt).getTime())[0]?.[0];\n\n if (oldestSessionId) {\n delete store[oldestSessionId];\n } else {\n break;\n }\n }\n localStorage.setItem(SESSION_MESSAGES_KEY, JSON.stringify(store));\n};\n\n/**\n * Add a message to a session's storage.\n * Called when RcbPreInjectMessageEvent fires.\n * Stores the full message so we can restore sessions without relying on RCB's history.\n */\nexport const addMessageToSession = (\n sessionId: string,\n messageId: string,\n messageContent: string,\n sender: string,\n type: string\n): void => {\n const store = getSessionMessagesStore();\n\n // Initialize session if it doesn't exist\n const isNewSession = !store[sessionId];\n if (isNewSession) {\n store[sessionId] = {\n messages: [],\n startedAt: new Date().toISOString(),\n preview: ''\n };\n logger.history('NEW session created', { sessionId: sessionId.slice(-12) });\n }\n\n // Skip if message with this ID already exists (deduplication)\n const isDuplicate = store[sessionId].messages.some(m => m.id === messageId);\n if (isDuplicate) {\n logger.history('DUPLICATE message skipped', {\n sessionId: sessionId.slice(-12),\n messageId: messageId.slice(-8),\n sender\n });\n return;\n }\n\n // Store the full message\n const storedMessage: StoredMessage = {\n id: messageId,\n content: messageContent,\n sender,\n type,\n timestamp: Date.now()\n };\n\n store[sessionId].messages.push(storedMessage);\n logger.history('MESSAGE added', {\n sessionId: sessionId.slice(-12),\n messageId: messageId.slice(-8),\n sender,\n totalInSession: store[sessionId].messages.length\n });\n\n // Compute preview from first substantial bot answer\n // Bot answers are consistently long, while greetings/prompts are short\n // This avoids ambiguity between user-typed questions vs option-click messages\n // Fall back to first user message if no bot answer exists yet\n const messages = store[sessionId].messages;\n\n // Find first bot message that looks like an actual answer (>=100 chars)\n const MIN_BOT_ANSWER_LENGTH = 100;\n const botAnswer = messages.find(m =>\n m.sender.toLowerCase() === 'bot' &&\n m.content?.trim() &&\n m.content.length >= MIN_BOT_ANSWER_LENGTH\n );\n\n if (botAnswer) {\n // Use truncated bot answer as preview\n const content = botAnswer.content;\n store[sessionId].preview = content.slice(0, 50) + (content.length > 50 ? '...' : '');\n } else {\n // Fall back to first user message until we have a bot answer\n const firstUserMessage = messages.find(m =>\n m.sender.toLowerCase() === 'user' && m.content?.trim()\n );\n if (firstUserMessage && !store[sessionId].preview) {\n const content = firstUserMessage.content;\n store[sessionId].preview = content.slice(0, 50) + (content.length > 50 ? '...' : '');\n }\n }\n\n saveSessionMessagesStore(store);\n\n logger.history('STORAGE state', {\n ourSessions: Object.keys(store).length,\n ourTotalMessages: Object.values(store).reduce((sum, s) => sum + s.messages.length, 0)\n });\n};\n\n/**\n * Get all sessions with their metadata (for history display)\n */\nexport const getAllSessions = (): Array<{ sessionId: string } & SessionMessageData> => {\n const store = getSessionMessagesStore();\n return Object.entries(store)\n .map(([sessionId, data]) => ({ sessionId, ...data }))\n .sort((a, b) => new Date(b.startedAt).getTime() - new Date(a.startedAt).getTime());\n};\n\n/**\n * Get all stored messages for a specific session.\n * Returns messages in the format needed for RCB's replaceMessages().\n */\nexport const getSessionMessages = (sessionId: string): StoredMessage[] => {\n const store = getSessionMessagesStore();\n return store[sessionId]?.messages || [];\n};\n\n/**\n * Get the message count for a session.\n * Used for analytics (chatbot_close, chatbot_new_chat events).\n */\nexport const getSessionMessageCount = (sessionId: string): number => {\n const store = getSessionMessagesStore();\n return store[sessionId]?.messages.length ?? 0;\n};\n\n/**\n * Compute how long a session has been active (in milliseconds).\n * Calculates the difference between now and the session's startedAt timestamp.\n * Used for analytics (chatbot_close event).\n */\nexport const computeSessionDurationMs = (sessionId: string): number => {\n const store = getSessionMessagesStore();\n const session = store[sessionId];\n if (!session?.startedAt) {\n return 0;\n }\n return Date.now() - new Date(session.startedAt).getTime();\n};","import React, { createContext, useContext } from 'react';\n\ninterface SessionContextType {\n getSessionId: () => string;\n setSessionId: (sessionId: string) => void;\n resetSession: () => void;\n clearResettingFlag: () => void;\n}\n\nconst SessionContext = createContext<SessionContextType | undefined>(undefined);\n\nexport const SessionProvider: React.FC<{\n children: React.ReactNode;\n getSessionId: () => string;\n setSessionId: (sessionId: string) => void;\n resetSession: () => void;\n clearResettingFlag: () => void;\n}> = ({\n children,\n getSessionId,\n setSessionId,\n resetSession,\n clearResettingFlag\n}) => {\n return (\n <SessionContext.Provider value={{ getSessionId, setSessionId, resetSession, clearResettingFlag }}>\n {children}\n </SessionContext.Provider>\n );\n};\n\nexport const useSession = (): SessionContextType => {\n const context = useContext(SessionContext);\n if (!context) {\n throw new Error('useSession must be used within a SessionProvider');\n }\n return context;\n};\n","// src/components/HistoryButton.tsx\nimport React, { useState, useRef, useEffect } from 'react';\nimport { useMessages, useTextArea } from 'react-chatbotify';\nimport { getAllSessions, getSessionMessages } from '../utils/session-utils';\nimport { fixMarkdownLinksInDom } from '../utils/fix-markdown-links';\nimport { useSession } from '../contexts/SessionContext';\nimport { logger } from '../utils/logger';\n\n/**\n * Format a date string for display\n */\nconst formatDate = (dateString: string): string => {\n const date = new Date(dateString);\n const now = new Date();\n const diffMs = now.getTime() - date.getTime();\n const diffDays = Math.floor(diffMs / (1000 * 60 * 60 * 24));\n\n if (diffDays === 0) {\n return date.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' });\n } else if (diffDays === 1) {\n return 'Yesterday';\n } else if (diffDays < 7) {\n return date.toLocaleDateString([], { weekday: 'short' });\n } else {\n return date.toLocaleDateString([], { month: 'short', day: 'numeric' });\n }\n};\n\n/**\n * HistoryButton Component\n *\n * A button that displays saved chat history when clicked.\n * Shows in the header when user is logged in.\n *\n * @returns Rendered history button\n */\nconst HistoryButton: React.FC = () => {\n const [isOpen, setIsOpen] = useState(false);\n const [sessions, setSessions] = useState<ReturnType<typeof getAllSessions>>([]);\n const [menuWidth, setMenuWidth] = useState<number | null>(null);\n const [menuRight, setMenuRight] = useState<number>(0);\n const menuRef = useRef<HTMLDivElement>(null);\n const buttonRef = useRef<HTMLButtonElement>(null);\n\n const { replaceMessages } = useMessages();\n const { toggleTextAreaDisabled } = useTextArea();\n const { setSessionId, getSessionId } = useSession();\n\n // Close menu when clicking outside\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (\n menuRef.current &&\n !menuRef.current.contains(event.target as Node) &&\n buttonRef.current &&\n !buttonRef.current.contains(event.target as Node)\n ) {\n setIsOpen(false);\n }\n };\n\n const rootNode = menuRef.current?.getRootNode() ?? document;\n if (isOpen) {\n rootNode.addEventListener('mousedown', handleClickOutside as EventListener);\n }\n return () => {\n rootNode.removeEventListener('mousedown', handleClickOutside as EventListener);\n };\n }, [isOpen]);\n\n const handleClick = () => {\n if (!isOpen) {\n // Refresh sessions when opening\n setSessions(getAllSessions());\n\n // Calculate dropdown position based on chat window\n if (buttonRef.current) {\n const chatWindow = buttonRef.current.closest('.rcb-chat-window');\n if (chatWindow) {\n const chatRect = chatWindow.getBoundingClientRect();\n const buttonRect = buttonRef.current.getBoundingClientRect();\n // Width should match the chat window (+ small adjustment for border/padding)\n setMenuWidth(chatRect.width + 3);\n // Right offset: distance from button's right edge to chat window's right edge\n // Subtract button's marginRight (18px) and adjust to align with window edge\n setMenuRight(chatRect.right - buttonRect.right - 18 + 4);\n }\n }\n }\n setIsOpen(!isOpen);\n };\n\n const handleSelectSession = (sessionId: string) => {\n const currentSessionId = getSessionId();\n\n logger.history('RESTORE requested', {\n targetSession: sessionId.slice(-12),\n currentSession: currentSessionId?.slice(-12)\n });\n\n // Don't reload if already on this session\n if (sessionId === currentSessionId) {\n logger.history('RESTORE skipped - already on this session');\n setIsOpen(false);\n return;\n }\n\n // 1. Get the stored messages for this session from our localStorage\n // Filter out any empty messages (legacy data or edge cases)\n const storedMessages = getSessionMessages(sessionId).filter(m => m.content?.trim());\n logger.history('Stored messages from our localStorage', {\n count: storedMessages.length,\n ids: storedMessages.map(m => m.id.slice(-8))\n });\n\n // 2. Convert our stored messages to RCB Message format\n const rcbMessages = storedMessages.map(m => ({\n id: m.id,\n content: m.content,\n sender: m.sender.toUpperCase(),\n type: m.type || 'string',\n timestamp: new Date(m.timestamp).toISOString()\n }));\n\n // 3. Update the active session ID BEFORE replacing messages.\n // replaceMessages fires rcb-pre-inject-message events, which\n // SessionMessageTracker captures. If the session ID isn't updated\n // first, the restored messages get written into the *current*\n // session, creating a duplicate session in history.\n setSessionId(sessionId);\n logger.history('Session ID updated', { newSession: sessionId.slice(-12) });\n\n // 4. Replace displayed messages with the session's messages\n replaceMessages(rcbMessages);\n logger.history('replaceMessages called', { count: rcbMessages.length });\n\n // 5. Fix markdown links in rendered messages (see fix-markdown-links.ts for explanation)\n fixMarkdownLinksInDom(buttonRef.current?.getRootNode() as Document | ShadowRoot);\n\n // 6. Enable the chat input - restored sessions continue Q&A, not picking from a menu\n toggleTextAreaDisabled(false);\n logger.history('Chat input enabled after restore');\n\n setIsOpen(false);\n };\n\n return (\n <div style={{ position: 'relative' }}>\n <button\n ref={buttonRef}\n className=\"history-button\"\n onClick={handleClick}\n style={{\n alignItems: 'center',\n justifyContent: 'center',\n width: '30px',\n height: '30px',\n borderRadius: '50%',\n backgroundColor: 'var(--primaryColor, #1a5b6e)',\n marginRight: '18px',\n display: 'flex',\n border: 'none',\n cursor: 'pointer',\n padding: 0\n }}\n aria-label=\"View chat history\"\n title=\"View chat history\"\n aria-expanded={isOpen}\n aria-haspopup=\"menu\"\n >\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"white\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n {/* Clock/history icon */}\n <circle cx=\"12\" cy=\"12\" r=\"10\"></circle>\n <polyline points=\"12 6 12 12 16 14\"></polyline>\n </svg>\n </button>\n\n {isOpen && (\n <div\n ref={menuRef}\n role=\"menu\"\n style={{\n position: 'absolute',\n right: menuRight ? `-${menuRight}px` : '-18px',\n top: '100%',\n marginTop: '8px',\n width: menuWidth ? `${menuWidth}px` : '550px',\n backgroundColor: 'white',\n borderRadius: 0,\n borderBottom: '3px solid var(--primaryColor, #1a5b6e)',\n boxShadow: '0 2px 8px rgba(0, 0, 0, 0.1)',\n maxHeight: '250px',\n overflowY: 'auto',\n zIndex: 1000\n }}\n >\n {sessions.length === 0 ? (\n <div\n style={{\n padding: '12px 16px',\n color: '#666',\n fontSize: '14px',\n textAlign: 'center'\n }}\n >\n No chat history\n </div>\n ) : (\n sessions.map((session) => (\n <button\n key={session.sessionId}\n role=\"menuitem\"\n onClick={() => handleSelectSession(session.sessionId)}\n style={{\n width: '100%',\n padding: '10px 14px',\n border: 'none',\n backgroundColor: 'transparent',\n cursor: 'pointer',\n textAlign: 'left',\n display: 'flex',\n flexDirection: 'column',\n gap: '2px',\n borderBottom: '1px solid #eee'\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.backgroundColor = '#f5f5f5';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = 'transparent';\n }}\n >\n <span\n style={{\n fontSize: '14px',\n color: '#333',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap'\n }}\n >\n {session.preview || 'New conversation'}\n </span>\n <span\n style={{\n fontSize: '12px',\n color: '#888'\n }}\n >\n {formatDate(session.startedAt)}\n </span>\n </button>\n ))\n )}\n </div>\n )}\n </div>\n );\n};\n\nexport default HistoryButton;\n","/**\n * fix-markdown-links.ts\n *\n * PRAGMATIC HACK: This file exists because react-chatbotify's MarkdownRenderer plugin\n * doesn't process messages injected via replaceMessages() (used for history restoration).\n *\n * After trying several \"proper\" approaches (tag manipulation, JSX conversion, HTML strings),\n * none worked without breaking message bubble styling. This DOM post-processing approach\n * is a pragmatic solution that:\n * - Preserves all message styling (bubbles render correctly first)\n * - Finds raw markdown link patterns [text](url) in rendered text\n * - Finds escaped HTML anchor tags that got text-escaped\n * - Replaces them with actual <a> elements\n *\n * Only used after history restoration, not during normal chat flow.\n */\n\n/**\n * Fixes links in chat messages after they've been rendered.\n * Call this after replaceMessages() to convert link patterns to clickable links.\n *\n * Handles:\n * - Markdown links: [text](url)\n * - Escaped HTML anchors: &lt;a href=\"url\"...&gt;text&lt;/a&gt;\n * - Plain text HTML anchors: <a href=\"url\"...>text</a> (displayed as text)\n */\nexport const fixMarkdownLinksInDom = (root?: Document | ShadowRoot): void => {\n // Wait for React to finish rendering the messages\n setTimeout(() => {\n const searchRoot = root || document;\n const chatBody = searchRoot.querySelector('.rcb-chat-body-container');\n if (!chatBody) {\n return;\n }\n\n // Find all bot message bubbles and fix links in their text\n chatBody.querySelectorAll('.rcb-bot-message').forEach(bubble => {\n let html = bubble.innerHTML;\n let changed = false;\n\n // Fix markdown links: [text](url)\n if (html.includes('](')) {\n html = html.replace(\n /\\[([^\\]]+)\\]\\(([^)]+)\\)/g,\n '<a href=\"$2\" target=\"_blank\" rel=\"noopener noreferrer\">$1</a>'\n );\n changed = true;\n }\n\n // Fix escaped HTML anchor tags: &lt;a href=\"url\"...&gt;text&lt;/a&gt;\n // This happens when HTML anchor tags are stored as text and get escaped\n if (html.includes('&lt;a href=')) {\n html = html.replace(\n /&lt;a\\s+href=[\"']([^\"']+)[\"'][^&]*&gt;([^&]+)&lt;\\/a&gt;/gi,\n '<a href=\"$1\" target=\"_blank\" rel=\"noopener noreferrer\">$2</a>'\n );\n changed = true;\n }\n\n // Fix plain text HTML anchors that weren't escaped but displayed as text\n // This catches: <a href=\"url\" target=\"_blank\">text</a> shown literally\n if (html.includes('&lt;a ') || (bubble.textContent?.includes('<a href='))) {\n // The text content has literal <a> tags - need to extract and convert\n const textContent = bubble.textContent || '';\n if (textContent.includes('<a href=')) {\n html = html.replace(\n /&lt;a\\s+href=\"([^\"]+)\"[^&]*&gt;([^&]+)&lt;\\/a&gt;/gi,\n '<a href=\"$1\" target=\"_blank\" rel=\"noopener noreferrer\">$2</a>'\n );\n changed = true;\n }\n }\n\n if (changed) {\n bubble.innerHTML = html;\n }\n });\n }, 50);\n};\n","import React from 'react';\n\nconst BaseIcon = ({\n width = 24,\n height = 24,\n color = 'currentColor',\n children,\n ...props\n}) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={width}\n height={height}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke={color}\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n focusable=\"false\"\n {...props}\n >\n {children}\n </svg>\n );\n};\n\nexport default BaseIcon;","import React from 'react';\nimport BaseIcon from './BaseIcon';\n\nconst RefreshIcon = (props) => {\n return (\n <BaseIcon {...props}>\n <path d=\"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15\" />\n </BaseIcon>\n );\n};\n\nexport default RefreshIcon;","import React from 'react';\nimport { useFlow, useTextArea, useMessages } from 'react-chatbotify';\nimport RefreshIcon from './icons/RefreshIcon';\nimport { useSession } from '../contexts/SessionContext';\nimport { useAnalytics } from '../contexts/AnalyticsContext';\nimport { getSessionMessageCount } from '../utils/session-utils';\n\nconst NewChatButton: React.FC = () => {\n const { restartFlow } = useFlow();\n const { setTextAreaValue } = useTextArea();\n const { messages } = useMessages();\n const { getSessionId, resetSession, clearResettingFlag } = useSession();\n const { trackEvent } = useAnalytics();\n\n const handleNewChat = async () => {\n // Get message count from old session before reset\n const currentSessionId = getSessionId();\n const previousMessageCount = currentSessionId ? getSessionMessageCount(currentSessionId) : 0;\n\n // Track new chat event with previous session's message count\n trackEvent({\n type: 'chatbot_new_chat',\n previousMessageCount\n });\n\n // Reset session ID (sets resetting flag to true)\n resetSession();\n\n // Clear the input field immediately\n await setTextAreaValue('');\n\n // Restart the flow\n await restartFlow();\n\n // Wait a bit for any queued messages to be processed and blocked\n setTimeout(() => {\n clearResettingFlag();\n }, 100);\n };\n\n return (\n <button\n onClick={handleNewChat}\n tabIndex={0}\n aria-label=\"New chat conversation\"\n style={{\n backgroundColor: 'var(--primaryColor, #107180)',\n border: 'none',\n color: '#ffffff',\n fontSize: '14px',\n cursor: 'pointer',\n padding: '8px 12px',\n borderRadius: '4px',\n transition: 'all 0.2s ease',\n display: 'flex',\n alignItems: 'center',\n gap: '6px',\n fontWeight: '500',\n }}\n onMouseEnter={(e: React.MouseEvent<HTMLButtonElement>) => {\n (e.target as HTMLButtonElement).style.backgroundColor = 'var(--secondaryColor, #0d5f6b)';\n }}\n onMouseLeave={(e: React.MouseEvent<HTMLButtonElement>) => {\n (e.target as HTMLButtonElement).style.backgroundColor = 'var(--primaryColor, #107180)';\n }}\n >\n <RefreshIcon width={16} height={16} />\n New Chat\n </button>\n );\n};\n\nexport default NewChatButton;","// src/utils/jsx-text-extractor.ts\n\n/**\n * Extracts plain text content from a JSX element or any value.\n *\n * react-chatbotify wraps bot messages in JSX before firing events,\n * even when the flow step defines a plain string like:\n * message: \"What is your help ticket related to?\"\n *\n * This function recursively extracts the text so we can store it\n * in session history. Without this, bot messages would be lost\n * when restoring sessions.\n *\n * @param element - Any value (string, number, JSX element, array, etc.)\n * @returns The extracted text content, or empty string if none found\n */\nexport function extractTextFromJsx(element: unknown): string {\n // Base cases\n if (typeof element === 'string') {\n return element;\n }\n if (typeof element === 'number') {\n return String(element);\n }\n if (!element) {\n return '';\n }\n\n // Handle arrays (e.g., multiple children)\n if (Array.isArray(element)) {\n return element.map(extractTextFromJsx).join('');\n }\n\n // Handle React elements (objects with props.children)\n if (typeof element === 'object' && element !== null && 'props' in element) {\n const props = (element as { props?: { children?: unknown } }).props;\n if (props && 'children' in props) {\n return extractTextFromJsx(props.children);\n }\n }\n\n // Unknown type - return empty string\n return '';\n}\n","// src/components/SessionMessageTracker.tsx\nimport { useEffect, useCallback } from 'react';\nimport { RcbPreInjectMessageEvent } from 'react-chatbotify';\nimport { useSession } from '../contexts/SessionContext';\nimport { addMessageToSession } from '../utils/session-utils';\nimport { extractTextFromJsx } from '../utils/jsx-text-extractor';\nimport { logger } from '../utils/logger';\n\n/**\n * Invisible component that stores each chat message with its session ID.\n *\n * Problem: React-Chatbotify stores all messages in a flat list with no session\n * boundaries. When a user has multiple conversations, there's no way to know\n * which messages belong to which conversation. Also, RCB's history storage\n * is opaque and unreliable for session restore.\n *\n * Solution: This component listens for message injection events and stores\n * the message content in our own localStorage. The history dropdown\n * restores sessions directly from our storage, not RCB's.\n *\n * Note: react-chatbotify wraps all messages (including plain strings) in JSX\n * before firing events. We use extractTextFromJsx() to recover the text content\n * from bot messages so they appear in restored sessions.\n *\n * IMPORTANT: For custom flow messages to be tracked, use the withHistory()\n * helper function. See utils/with-history.ts for details.\n *\n * Deduplication is handled by session-utils (checks message ID).\n *\n * Must be rendered inside ChatBotProvider.\n */\nconst SessionMessageTracker: React.FC = () => {\n const { getSessionId } = useSession();\n\n const handlePreInjectMessage = useCallback((event: Event) => {\n const rcbEvent = event as unknown as RcbPreInjectMessageEvent;\n const message = rcbEvent.data?.message;\n\n if (!message?.id) {\n return;\n }\n\n const sender = message.sender;\n const type = message.type || 'string';\n\n // Extract text content from message\n // react-chatbotify wraps bot messages in JSX, so we need to extract the text\n let content: string;\n if (typeof message.content === 'string') {\n content = message.content;\n } else {\n content = extractTextFromJsx(message.content);\n }\n\n // Log for debugging when enabled\n logger.message('TRACKED', {\n id: message.id,\n sender,\n content: content.substring(0, 50) + (content.length > 50 ? '...' : '')\n });\n\n // Skip rating option messages - they're not useful in history\n if (content.includes('rcb-options-container')) {\n return;\n }\n\n // Skip empty messages (e.g., file uploads, rating buttons with no text)\n if (!content.trim()) {\n return;\n }\n\n const sessionId = getSessionId();\n addMessageToSession(sessionId, message.id, content, sender, type);\n }, [getSessionId]);\n\n useEffect(() => {\n window.addEventListener('rcb-pre-inject-message', handlePreInjectMessage);\n\n return () => {\n window.removeEventListener('rcb-pre-inject-message', handlePreInjectMessage);\n };\n }, [handlePreInjectMessage]);\n\n // This component renders nothing - it just listens\n return null;\n};\n\nexport default SessionMessageTracker;\n","import { useEffect } from 'react';\n\n/**\n * Custom hook for keyboard navigation in chatbot options\n * Provides arrow key navigation, Enter/Space selection, and accessibility features\n */\nconst useKeyboardNavigation = () => {\n useEffect(() => {\n // Dedicated checkbox navigation handler\n const handleCheckboxNavigation = (event, elements) => {\n event.preventDefault();\n\n let currentIndex = -1;\n\n // Find currently focused element\n for (let i = 0; i < elements.length; i++) {\n if (elements[i] === document.activeElement || elements[i].contains(document.activeElement)) {\n currentIndex = i;\n break;\n }\n }\n\n // If no element is focused, start with first one\n if (currentIndex === -1) {\n currentIndex = 0;\n }\n\n let newIndex = currentIndex;\n\n switch (event.key) {\n case 'ArrowDown':\n case 'ArrowRight':\n newIndex = currentIndex < elements.length - 1 ? currentIndex + 1 : 0;\n break;\n case 'ArrowUp':\n case 'ArrowLeft':\n newIndex = currentIndex > 0 ? currentIndex - 1 : elements.length - 1;\n break;\n case 'Home':\n newIndex = 0;\n break;\n case 'End':\n newIndex = elements.length - 1;\n break;\n case 'Enter':\n case ' ': {\n // Handle different types of elements\n const currentElement = elements[currentIndex];\n const mouseDownEvent = new MouseEvent('mousedown', {\n bubbles: true,\n cancelable: true,\n view: window\n });\n currentElement.dispatchEvent(mouseDownEvent);\n return;\n }\n default:\n // No action needed for other keys\n return;\n }\n\n // Focus the new element\n elements[newIndex].focus();\n elements[newIndex].setAttribute('tabindex', '0');\n elements[newIndex].classList.add('keyboard-focused');\n\n // Remove tabindex and focus class from other elements\n elements.forEach((element, index) => {\n if (index !== newIndex) {\n element.setAttribute('tabindex', '-1');\n element.classList.remove('keyboard-focused');\n }\n });\n };\n\n const handleKeyboardNavigation = (event) => {\n // Only handle arrow keys and Enter/Space\n if (!['ArrowDown', 'ArrowUp', 'ArrowLeft', 'ArrowRight', 'Enter', ' ', 'Home', 'End'].includes(event.key)) {\n return;\n }\n\n // Don't interfere with typing in input fields\n const activeElement = document.activeElement;\n if (activeElement && (\n activeElement.tagName === 'INPUT' ||\n activeElement.tagName === 'TEXTAREA' ||\n activeElement.contentEditable === 'true' ||\n activeElement.classList.contains('rcb-chat-input-textarea')\n )) {\n return;\n }\n\n const chatWindow = document.querySelector('.rcb-chat-window');\n if (!chatWindow) return;\n\n // Special handling for checkboxes - but only if they're in the most recent message\n const allMessages = Array.from(chatWindow.querySelectorAll('.rcb-message-container, .rcb-bot-message-container, .rcb-user-message-container'))\n .filter(el => el.offsetParent !== null);\n\n if (allMessages.length > 0) {\n const lastMessage = allMessages[allMessages.length - 1];\n const checkboxContainer = lastMessage.querySelector('.rcb-checkbox-container');\n\n if (checkboxContainer && checkboxContainer.offsetParent !== null) {\n const checkboxes = Array.from(checkboxContainer.querySelectorAll('.rcb-checkbox-row-container'));\n const nextButton = checkboxContainer.querySelector('.rcb-checkbox-next-button');\n\n if (checkboxes.length > 0) {\n // Include next button in navigable elements\n const allElements = [...checkboxes];\n if (nextButton) {\n allElements.push(nextButton);\n }\n handleCheckboxNavigation(event, allElements);\n return;\n }\n }\n }\n\n // Check if chat window is visible and if there are options available - only in the most recent message\n\n let options = [];\n if (allMessages.length > 0) {\n const lastMessage = allMessages[allMessages.length - 1];\n const optionsContainers = Array.from(lastMessage.querySelectorAll('.rcb-options-container'))\n .filter(el => el.offsetParent !== null);\n\n if (optionsContainers.length > 0) {\n const lastContainer = optionsContainers[optionsContainers.length - 1];\n options = Array.from(lastContainer.querySelectorAll('.rcb-options'));\n }\n }\n\n if (options.length === 0) return;\n\n const currentIndex = options.findIndex(option => option === document.activeElement);\n\n switch (event.key) {\n case 'ArrowDown':\n case 'ArrowRight': {\n event.preventDefault();\n let nextIndex;\n if (currentIndex < options.length - 1) {\n nextIndex = currentIndex + 1;\n } else {\n // Wrap to first option\n nextIndex = 0;\n }\n\n // Make sure the element is focusable\n options[nextIndex].setAttribute('tabindex', '0');\n options.forEach((opt, i) => {\n if (i !== nextIndex) {\n opt.setAttribute('tabindex', '-1');\n opt.classList.remove('keyboard-focused');\n }\n });\n\n options[nextIndex].classList.add('keyboard-focused');\n options[nextIndex].focus();\n break;\n }\n\n case 'ArrowUp':\n case 'ArrowLeft': {\n event.preventDefault();\n let prevIndex;\n if (currentIndex > 0) {\n prevIndex = currentIndex - 1;\n } else {\n // Wrap to last option\n prevIndex = options.length - 1;\n }\n\n // Make sure the element is focusable\n options[prevIndex].setAttribute('tabindex', '0');\n options.forEach((opt, i) => {\n if (i !== prevIndex) {\n opt.setAttribute('tabindex', '-1');\n opt.classList.remove('keyboard-focused');\n }\n });\n\n options[prevIndex].classList.add('keyboard-focused');\n options[prevIndex].focus();\n break;\n }\n\n case 'Enter':\n case ' ': // Space key\n event.preventDefault();\n if (document.activeElement && options.includes(document.activeElement)) {\n const activeElement = document.activeElement;\n\n // Handle checkboxes differently\n if (activeElement.classList.contains('rcb-checkbox-row-container') || activeElement.closest('.rcb-checkbox-row-container')) {\n // For checkboxes, trigger a mousedown event (React ChatBotify standard)\n const mouseDownEvent = new MouseEvent('mousedown', {\n bubbles: true,\n cancelable: true,\n view: window\n });\n activeElement.dispatchEvent(mouseDownEvent);\n\n // Announce checkbox state\n const labelElement = activeElement.querySelector('.rcb-checkbox-label');\n const selectedText = labelElement ? labelElement.textContent : (activeElement.textContent || 'checkbox');\n const checkboxMark = activeElement.querySelector('.rcb-checkbox-mark');\n const isChecked = checkboxMark && checkboxMark.style.backgroundColor ? 'checked' : 'unchecked';\n announceToScreenReader(`${selectedText} ${isChecked}`);\n } else {\n // For regular options, use mousedown\n const mouseDownEvent = new MouseEvent('mousedown', {\n bubbles: true,\n cancelable: true,\n view: window\n });\n activeElement.dispatchEvent(mouseDownEvent);\n\n // Announce selection to screen readers\n const selectedText = activeElement.textContent || activeElement.innerText;\n announceToScreenReader(`Selected: ${selectedText}`);\n }\n }\n break;\n\n case 'Home':\n event.preventDefault();\n if (options.length > 0) {\n options[0].setAttribute('tabindex', '0');\n options.forEach((opt, i) => {\n if (i !== 0) {\n opt.setAttribute('tabindex', '-1');\n opt.classList.remove('keyboard-focused');\n }\n });\n options[0].classList.add('keyboard-focused');\n options[0].focus();\n }\n break;\n\n case 'End':\n event.preventDefault();\n if (options.length > 0) {\n const lastIndex = options.length - 1;\n options[lastIndex].setAttribute('tabindex', '0');\n options.forEach((opt, i) => {\n if (i !== lastIndex) {\n opt.setAttribute('tabindex', '-1');\n opt.classList.remove('keyboard-focused');\n }\n });\n options[lastIndex].classList.add('keyboard-focused');\n options[lastIndex].focus();\n }\n break;\n default:\n // No action needed for other keys\n break;\n }\n };\n\n\n // Screen reader announcement helper\n const announceToScreenReader = (message) => {\n const announcement = document.createElement('div');\n announcement.setAttribute('aria-live', 'assertive');\n announcement.setAttribute('aria-atomic', 'true');\n announcement.className = 'sr-only';\n announcement.textContent = message;\n document.body.appendChild(announcement);\n setTimeout(() => {\n if (document.body.contains(announcement)) {\n document.body.removeChild(announcement);\n }\n }, 1000);\n };\n\n // Auto-focus first option when new options appear\n const handleNewOptions = (targetContainer = null) => {\n let chatWindow = targetContainer;\n\n // If no specific container provided, try to find one\n if (!chatWindow) {\n chatWindow = document.querySelector('.rcb-chat-window');\n if (!chatWindow) {\n chatWindow = document.querySelector('[class*=\"rcb-chat\"]');\n }\n if (!chatWindow) {\n chatWindow = document.querySelector('.qa-bot');\n }\n }\n\n if (!chatWindow) return;\n\n // Check if this is an embedded bot to prevent auto-scroll\n const isEmbeddedBot = chatWindow.closest('.embedded-qa-bot') !== null;\n\n // Get all messages to ensure we only focus options in the most recent message\n const allMessages = Array.from(chatWindow.querySelectorAll('.rcb-message-container, .rcb-bot-message-container, .rcb-user-message-container'))\n .filter(el => el.offsetParent !== null);\n\n if (allMessages.length === 0) return;\n\n const lastMessage = allMessages[allMessages.length - 1];\n\n // Get options containers only from the last message\n const optionsContainers = Array.from(lastMessage.querySelectorAll('.rcb-options-container'))\n .filter(el => el.offsetParent !== null);\n\n let options = [];\n const optionType = 'regular';\n\n // Look for regular options first - but only in the last message\n if (optionsContainers.length > 0) {\n const lastContainer = optionsContainers[optionsContainers.length - 1];\n options = Array.from(lastContainer.querySelectorAll('.rcb-options'));\n }\n\n // If no regular options, look for checkboxes and set them up\n if (options.length === 0) {\n // First try to find checkbox container in last message, but fallback to chatWindow if not found\n let checkboxContainer = lastMessage.querySelector('.rcb-checkbox-container');\n if (!checkboxContainer && chatWindow) {\n checkboxContainer = chatWindow.querySelector('.rcb-checkbox-container');\n }\n\n if (checkboxContainer && checkboxContainer.offsetParent !== null) {\n const checkboxElements = Array.from(checkboxContainer.querySelectorAll('.rcb-checkbox-row-container'))\n .filter(el => el.offsetParent !== null && el.style.display !== 'none');\n\n if (checkboxElements.length > 0) {\n // Include next button in navigable elements\n const nextButton = checkboxContainer.querySelector('.rcb-checkbox-next-button');\n const allElements = [...checkboxElements];\n if (nextButton && nextButton.offsetParent !== null) {\n allElements.push(nextButton);\n }\n\n // Set up checkboxes for keyboard navigation\n allElements.forEach((element, index) => {\n element.setAttribute('tabindex', index === 0 ? '0' : '-1');\n if (index === 0) {\n element.classList.add('keyboard-focused');\n } else {\n element.classList.remove('keyboard-focused');\n }\n });\n\n // Add keyboard navigation hint for checkboxes if there are multiple elements\n if (checkboxElements.length > 1) {\n // Remove any existing hints first\n const existingHints = checkboxContainer.querySelectorAll('.keyboard-nav-hint');\n existingHints.forEach(hint => hint.remove());\n\n // Add new hint\n const hintElement = document.createElement('div');\n hintElement.className = 'keyboard-nav-hint';\n hintElement.textContent = 'Use arrow keys ↕ to navigate, Enter to select/deselect, or click any option';\n hintElement.style.cssText = 'font-size: 12px !important; color: #666 !important; margin-bottom: 8px !important; font-style: italic !important; display: block !important;';\n checkboxContainer.insertBefore(hintElement, checkboxContainer.firstChild);\n }\n\n // Focus first element (skip for embedded bots to prevent auto-scroll)\n setTimeout(() => {\n if (allElements[0] && allElements[0].offsetParent !== null && !isEmbeddedBot) {\n allElements[0].focus();\n }\n }, 150);\n\n return; // Don't process as regular options\n }\n }\n }\n\n if (options.length > 0) {\n // Set tabindex and ARIA attributes for keyboard navigation\n options.forEach((option, index) => {\n const tabindex = index === 0 ? '0' : '-1';\n option.setAttribute('tabindex', tabindex);\n option.setAttribute('role', 'option');\n option.setAttribute('aria-posinset', index + 1);\n option.setAttribute('aria-setsize', options.length);\n // Add visual focus class to first option\n if (index === 0) {\n option.classList.add('keyboard-focused');\n } else {\n option.classList.remove('keyboard-focused');\n }\n });\n\n // Add keyboard navigation hint only for multiple options\n if (options.length > 1 && optionType === 'regular') {\n // Only add hints for regular options, and only if we have a container\n const lastContainer = optionsContainers.length > 0 ? optionsContainers[optionsContainers.length - 1] : null;\n if (lastContainer) {\n // Remove any existing hint first\n const existingHints = lastContainer.querySelectorAll('.keyboard-nav-hint');\n existingHints.forEach(hint => hint.remove());\n\n // Add new hint\n const hintElement = document.createElement('div');\n hintElement.className = 'keyboard-nav-hint';\n hintElement.textContent = 'Use arrow keys ↕ to navigate, Enter to select, or click any option';\n hintElement.style.cssText = 'font-size: 12px !important; color: #666 !important; margin-bottom: 8px !important; font-style: italic !important; display: block !important;';\n lastContainer.insertBefore(hintElement, lastContainer.firstChild);\n }\n } else if (optionType === 'regular') {\n // Remove hints for single options, but only for regular options\n const lastContainer = optionsContainers.length > 0 ? optionsContainers[optionsContainers.length - 1] : null;\n if (lastContainer) {\n const existingHints = lastContainer.querySelectorAll('.keyboard-nav-hint');\n existingHints.forEach(hint => hint.remove());\n }\n }\n\n // Focus first option after a short delay to allow rendering (skip for embedded bots to prevent auto-scroll)\n setTimeout(() => {\n if (options[0] && options[0].offsetParent !== null && !isEmbeddedBot) {\n options[0].focus();\n if (options.length > 1) {\n announceToScreenReader(`${options.length} options available. Use arrow keys to navigate.`);\n }\n }\n }, 200);\n }\n };\n\n // Immediately set accessibility attributes on options (no delay)\n const setOptionsAccessibility = (container) => {\n const options = container.querySelectorAll('.rcb-options');\n options.forEach((option, index) => {\n if (!option.hasAttribute('role')) {\n option.setAttribute('role', 'button');\n option.setAttribute('tabindex', index === 0 ? '0' : '-1');\n option.setAttribute('aria-posinset', index + 1);\n option.setAttribute('aria-setsize', options.length);\n }\n });\n\n const checkboxes = container.querySelectorAll('.rcb-checkbox-row-container');\n checkboxes.forEach((checkbox, index) => {\n if (!checkbox.hasAttribute('role')) {\n checkbox.setAttribute('role', 'checkbox');\n checkbox.setAttribute('tabindex', index === 0 ? '0' : '-1');\n }\n });\n };\n\n // Set up mutation observer to watch for new options\n const observer = new MutationObserver((mutations) => {\n mutations.forEach((mutation) => {\n if (mutation.type === 'childList') {\n const addedNodes = Array.from(mutation.addedNodes);\n\n const hasNewOptions = addedNodes.some(node =>\n node.nodeType === Node.ELEMENT_NODE &&\n (node.classList?.contains('rcb-options-container') ||\n node.classList?.contains('rcb-options') ||\n node.querySelector?.('.rcb-options-container') ||\n node.querySelector?.('.rcb-options'))\n );\n\n const hasNewCheckboxes = addedNodes.some(node =>\n node.nodeType === Node.ELEMENT_NODE &&\n (node.classList?.contains('rcb-checkbox-container') ||\n node.querySelector?.('.rcb-checkbox-container'))\n );\n\n\n if (hasNewOptions || hasNewCheckboxes) {\n // Find which bot container this mutation occurred in\n let botContainer = mutation.target;\n while (botContainer && !botContainer.classList?.contains('qa-bot') && !botContainer.classList?.contains('rcb-chat-window')) {\n botContainer = botContainer.parentElement;\n }\n\n // If we found a bot container, scope operations to it; otherwise fallback to global\n const scopeElement = botContainer || document;\n\n // IMMEDIATELY set accessibility attributes (synchronous, no delay)\n setOptionsAccessibility(scopeElement);\n\n // Clear tabindex from existing elements within this bot\n scopeElement.querySelectorAll('.rcb-options[tabindex], .rcb-checkbox-row-container[tabindex], .rcb-checkbox-next-button[tabindex]').forEach(el => {\n el.setAttribute('tabindex', '-1');\n el.classList.remove('keyboard-focused');\n });\n\n // Handle new options for this specific bot (focus management with delay)\n setTimeout(() => handleNewOptions(botContainer), 100);\n }\n }\n });\n });\n\n // Start observing the document body for changes in any bot\n observer.observe(document.body, {\n childList: true,\n subtree: true\n });\n\n // Add keyboard event listener to document only\n document.addEventListener('keydown', handleKeyboardNavigation);\n\n // Check for existing options on mount - set accessibility immediately\n setOptionsAccessibility(document);\n handleNewOptions();\n\n\n // Periodic check as backup to catch any missed options and checkboxes\n const periodicCheck = setInterval(() => {\n // Check each bot container individually\n document.querySelectorAll('.qa-bot').forEach(botContainer => {\n const hasVisibleOptions = botContainer.querySelectorAll('.rcb-options-container .rcb-options').length > 0;\n const hasVisibleCheckboxes = botContainer.querySelectorAll('.rcb-checkbox-row-container').length > 0;\n\n if (hasVisibleOptions) {\n // Always ensure accessibility attributes are set\n setOptionsAccessibility(botContainer);\n\n const lastProcessedOptions = botContainer.querySelectorAll('.rcb-options[tabindex]').length;\n const currentOptions = botContainer.querySelectorAll('.rcb-options').length;\n\n if (currentOptions > lastProcessedOptions) {\n handleNewOptions(botContainer);\n }\n }\n\n if (hasVisibleCheckboxes) {\n // Always ensure accessibility attributes are set\n setOptionsAccessibility(botContainer);\n\n const lastProcessedCheckboxes = botContainer.querySelectorAll('.rcb-checkbox-row-container[tabindex]').length;\n const currentCheckboxes = botContainer.querySelectorAll('.rcb-checkbox-row-container').length;\n\n if (currentCheckboxes > lastProcessedCheckboxes) {\n handleNewOptions(botContainer);\n }\n }\n });\n }, 1000);\n\n // Cleanup\n return () => {\n document.removeEventListener('keydown', handleKeyboardNavigation);\n observer.disconnect();\n clearInterval(periodicCheck);\n };\n }, []);\n\n return null; // This hook doesn't return anything, just sets up event handlers\n};\n\nexport default useKeyboardNavigation;","// src/utils/flows/qa-flow.tsx\nimport React from 'react';\nimport { v4 as uuidv4 } from 'uuid';\nimport { getProcessedText } from '../getProcessedText';\nimport LoginButton from '../../components/LoginButton';\nimport { logger } from '../logger';\nimport type { AnalyticsEventInput } from '../../contexts/AnalyticsContext';\n\n/**\n * Configuration for creating a Q&A flow\n */\nexport interface CreateQAFlowParams {\n /** Q&A API endpoint (required) */\n endpoint: string;\n /** Rating API endpoint (optional) */\n ratingEndpoint?: string;\n /** API key for authentication (optional) */\n apiKey?: string;\n /** Function that returns current session ID */\n sessionId: () => string | null;\n /** Function that returns whether we're currently resetting */\n isResetting?: () => boolean;\n /** Whether the user is logged in (required) */\n isLoggedIn: boolean;\n /** Allow Q&A without login (default: false) */\n allowAnonAccess?: boolean;\n /** Login URL to redirect to (optional) */\n loginUrl?: string;\n /**\n * The acting user's identifier.\n * @deprecated Identity is now determined server-side from the JWT cookie.\n * This prop is ignored — retained only for backward compatibility during transition.\n */\n actingUser?: string;\n /** Enriched analytics tracker (adds common fields automatically) */\n trackEvent?: (event: AnalyticsEventInput) => void;\n}\n\n/**\n * Builds a plain text string for displaying response metadata.\n * Returns empty string if no metadata is present.\n */\nfunction buildMetadataText(body: {\n confidence?: string;\n tools_used?: string[];\n metadata?: Record<string, unknown>;\n}): string {\n const { confidence, tools_used, metadata } = body;\n\n // Skip if no metadata present\n if (!confidence && (!tools_used || tools_used.length === 0)) {\n return '';\n }\n\n const parts: string[] = [];\n\n if (confidence) {\n parts.push(`• Confidence: ${confidence}`);\n }\n\n if (tools_used && tools_used.length > 0) {\n parts.push(`• Tools used: ${tools_used.join(', ')}`);\n }\n\n // Show agent name from metadata (useful for demo/debugging)\n if (metadata?.agent) {\n parts.push(`• Agent: ${metadata.agent}`);\n }\n\n return `---\\n${parts.join('\\n')}`;\n}\n\n/**\n * Creates the basic Q&A conversation flow\n * Handles questions, responses, and optional ratings\n */\nexport const createQAFlow = ({\n endpoint,\n ratingEndpoint,\n apiKey,\n sessionId: getSessionId,\n isResetting = () => false,\n isLoggedIn,\n allowAnonAccess = false,\n loginUrl = '/login',\n actingUser,\n trackEvent\n}: CreateQAFlowParams) => {\n // Gate Q&A when user is logged out (unless allowAnonAccess is true)\n if (isLoggedIn === false && !allowAnonAccess) {\n // Track that login prompt was shown\n trackEvent?.({ type: 'chatbot_login_prompt_shown' });\n\n return {\n qa_loop: {\n message: \"To ask questions, please log in first.\",\n component: <LoginButton loginUrl={loginUrl} />,\n chatDisabled: true,\n path: \"qa_loop\"\n }\n };\n }\n\n // Track query ID for feedback\n let feedbackQueryId = null;\n // Track if we've shown a response to the user\n let hasShownResponse = false;\n\n // Require endpoint to be configured\n if (!endpoint) {\n throw new Error('Q&A endpoint is required');\n }\n\n return {\n qa_loop: {\n message: async (chatState) => {\n const { userInput } = chatState;\n\n // Skip processing if we're in reset mode\n if (isResetting && isResetting()) {\n return null;\n }\n\n // Skip processing if there's no user input (initial transition from start)\n if (!userInput || userInput.trim() === '') {\n return null;\n }\n\n // Handle feedback if rating endpoint is configured\n if (userInput === \"👍 Helpful\" || userInput === \"👎 Not helpful\") {\n if (ratingEndpoint && feedbackQueryId) {\n try {\n const isPositive = userInput === \"👍 Helpful\";\n const headers = {\n 'Content-Type': 'application/json'\n };\n\n // Add API key if provided\n if (apiKey) {\n headers['X-API-KEY'] = apiKey;\n }\n\n // Add session tracking if available\n const currentSessionId = getSessionId();\n if (currentSessionId) {\n headers['X-Session-ID'] = currentSessionId;\n headers['X-Query-ID'] = feedbackQueryId;\n }\n\n await fetch(ratingEndpoint, {\n method: 'POST',\n headers,\n credentials: 'include',\n body: JSON.stringify({\n sessionId: currentSessionId,\n queryId: feedbackQueryId,\n rating: isPositive ? 1 : 0\n })\n });\n\n // Track rating event\n trackEvent?.({\n type: 'chatbot_rating_sent',\n queryId: feedbackQueryId,\n rating: isPositive ? 'helpful' : 'not_helpful'\n });\n } catch (error) {\n logger.error('Error sending feedback:', error);\n }\n }\n\n return \"Thanks for the feedback! Feel free to ask another question.\";\n }\n\n // Process as a question\n try {\n const queryId = uuidv4();\n feedbackQueryId = queryId;\n\n // Track question asked\n trackEvent?.({\n type: 'chatbot_question_sent',\n queryId,\n questionLength: userInput.length\n });\n\n const headers = {\n 'Content-Type': 'application/json'\n };\n\n // Add optional headers\n if (apiKey) {\n headers['X-API-KEY'] = apiKey;\n }\n const currentSessionId = getSessionId();\n if (currentSessionId) {\n headers['X-Session-ID'] = currentSessionId;\n headers['X-Query-ID'] = queryId;\n }\n // Build request body\n const requestBody: Record<string, string> = {\n query: userInput,\n session_id: currentSessionId,\n question_id: queryId\n };\n\n // Log the session ID being sent\n logger.session('SENT to API', {\n session_id: currentSessionId,\n question_id: queryId\n });\n\n // Capture timestamp before fetch for response time calculation\n const requestStartTime = Date.now();\n\n const response = await fetch(endpoint, {\n method: 'POST',\n headers,\n credentials: 'include',\n body: JSON.stringify(requestBody)\n });\n\n // Calculate response time (network + server processing)\n const responseTimeMs = Date.now() - requestStartTime;\n\n if (!response.ok) {\n throw new Error(`API returned ${response.status}`);\n }\n\n const body = await response.json();\n\n // Support different response formats\n const text = body.response || body.answer || body.text || body.message;\n\n if (!text) {\n throw new Error('Invalid response format from API');\n }\n\n // Process text (handles markdown, links, etc.)\n const processedText = getProcessedText(text);\n\n // Build metadata text (empty string if no metadata present)\n const metadataText = buildMetadataText(body);\n const fullContent = metadataText ? `${processedText}\\n\\n${metadataText}` : processedText;\n\n // Inject the response\n await chatState.injectMessage(fullContent);\n\n // Track response received\n trackEvent?.({\n type: 'chatbot_answer_received',\n queryId,\n responseTimeMs,\n success: true,\n responseLength: text.length,\n hasMetadata: !!metadataText\n });\n\n // Mark that we've shown a response\n hasShownResponse = true;\n\n // Add guidance message after a short delay\n setTimeout(async () => {\n await chatState.injectMessage(\"Feel free to ask another question.\");\n }, 100);\n\n return null;\n } catch (error) {\n logger.error('Error in Q&A flow:', error);\n\n // Track error event\n trackEvent?.({\n type: 'chatbot_answer_error',\n queryId: feedbackQueryId ?? undefined,\n errorType: error instanceof Error ? error.message : 'unknown'\n });\n\n return \"I apologize, but I'm having trouble processing your question. Please try again later.\";\n }\n },\n\n // Show rating options only if rating endpoint is configured and we've shown a response\n options: (chatState) => {\n // Don't show options if we're resetting\n if (isResetting && isResetting()) {\n return [];\n }\n\n // Don't show options after feedback\n if (chatState.userInput === \"👍 Helpful\" || chatState.userInput === \"👎 Not helpful\") {\n return [];\n }\n\n // Only show rating options if endpoint is configured AND we've shown a response\n return (ratingEndpoint && hasShownResponse) ? [\"👍 Helpful\", \"👎 Not helpful\"] : [];\n },\n\n renderMarkdown: [\"BOT\"],\n chatDisabled: false,\n path: \"qa_loop\"\n }\n };\n};","import type { Settings, Flow } from 'react-chatbotify';\n\n/**\n * Analytics event types fired by qa-bot-core\n */\nexport type QABotAnalyticsEventType =\n | 'chatbot_open'\n | 'chatbot_close'\n | 'chatbot_new_chat'\n | 'chatbot_question_sent'\n | 'chatbot_answer_received'\n | 'chatbot_answer_error'\n | 'chatbot_rating_sent'\n | 'chatbot_login_prompt_shown'\n | 'chatbot_login_clicked'\n | 'chatbot_link_clicked';\n\n/**\n * Analytics event payload\n * \n * Common fields (auto-populated for all events):\n * - timestamp: When the event occurred\n * - sessionId: Current chat session ID\n * - pageUrl: URL where the bot is displayed\n * - isEmbedded: Whether bot is in embedded mode (true) or floating/widget mode (false)\n * \n * Event-specific fields:\n * - chatbot_open: (common fields only)\n * - chatbot_close: messageCount, durationMs\n * - chatbot_new_chat: previousMessageCount\n * - chatbot_question_sent: queryId, questionLength\n * - chatbot_answer_received: queryId, responseTimeMs, success, responseLength, hasMetadata\n * - chatbot_answer_error: queryId, errorType\n * - chatbot_rating_sent: queryId, rating\n * - chatbot_login_prompt_shown: (common fields only)\n * - chatbot_login_clicked: loginUrl\n * - chatbot_link_clicked: linkUrl, linkText\n */\nexport interface QABotAnalyticsEvent {\n type: QABotAnalyticsEventType;\n timestamp: number;\n sessionId?: string;\n // Common context fields (auto-populated)\n pageUrl?: string;\n isEmbedded?: boolean;\n // Query tracking\n queryId?: string;\n // chatbot_question_sent\n questionLength?: number;\n // chatbot_answer_received\n responseTimeMs?: number;\n success?: boolean;\n responseLength?: number;\n hasMetadata?: boolean;\n // chatbot_answer_error\n errorType?: string;\n // chatbot_rating_sent\n rating?: 'helpful' | 'not_helpful';\n // chatbot_close\n messageCount?: number;\n durationMs?: number;\n // chatbot_new_chat\n previousMessageCount?: number;\n // chatbot_login_clicked\n loginUrl?: string;\n // chatbot_link_clicked\n linkUrl?: string;\n linkText?: string;\n}\n\nexport interface QABotProps {\n apiKey: string;\n qaEndpoint: string;\n welcomeMessage: string;\n ratingEndpoint?: string;\n primaryColor?: string;\n secondaryColor?: string;\n botName?: string;\n logo?: string;\n placeholder?: string;\n errorMessage?: string;\n embedded?: boolean;\n footerText?: string;\n footerLink?: string;\n tooltipText?: string;\n loginUrl?: string;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n\n /**\n * Whether the user is currently logged in.\n * - Required: this bot expects login state to be tracked\n * - Controls header icon (login button when false, user icon when true)\n * - When false, Q&A is gated by default (shows login prompt)\n */\n isLoggedIn: boolean;\n\n /**\n * Allow anonymous access to Q&A even when not logged in.\n * - Default: false (Q&A is gated when isLoggedIn is false)\n * - Set to true to bypass login gating for Q&A\n * - Does not affect custom flows (tickets, security, etc.)\n */\n allowAnonAccess?: boolean;\n\n /**\n * The acting user's identifier (e.g., email or username).\n * - Sent to the backend in both headers (X-Acting-User) and body (acting_user)\n * - Optional: if not provided, requests will be anonymous\n */\n actingUser?: string;\n\n /**\n * Custom flow steps to merge with the built-in Q&A flow.\n * Use this to add ticket creation flows, feedback flows, etc.\n * These steps will be merged into the flow object.\n */\n customFlow?: Flow;\n\n /**\n * Callback fired when trackable events occur.\n * Use this to wire up analytics (GTM, GA4, etc.)\n *\n * @example\n * onAnalyticsEvent={(event) => {\n * window.dataLayer?.push({ event: event.type, ...event });\n * }}\n */\n onAnalyticsEvent?: (event: QABotAnalyticsEvent) => void;\n}\n\n/**\n * Default values for overridable props\n */\nexport const defaultValues: {\n primaryColor: string;\n secondaryColor: string;\n fontFamily: string;\n botName: string;\n avatar: string;\n placeholder: string;\n errorMessage: string;\n embedded: boolean;\n tooltipText: string;\n loginUrl: string;\n} = {\n primaryColor: '#1a5b6e',\n secondaryColor: '#107180',\n fontFamily: 'Arial, sans-serif',\n botName: 'Q&A Bot',\n avatar: '/chat-icon.svg',\n placeholder: 'Type your question here...',\n errorMessage: 'Select an option to continue',\n embedded: false,\n tooltipText: 'Ask me a question!',\n loginUrl: '/login'\n};\n\n\n/**\n * Fixed react-chatbotify settings\n */\nexport const fixedReactChatbotifySettings: Settings = {\n general: {\n showHeader: true,\n showFooter: true\n },\n tooltip: {\n mode: 'CLOSE'\n },\n chatInput: {\n disabled: false,\n characterLimit: 1000,\n showCharacterCount: false,\n allowNewline: true,\n blockSpam: false\n },\n chatWindow: {\n defaultOpen: false,\n showScrollbar: false\n },\n botBubble: {\n simulateStream: true,\n streamSpeed: 10,\n showAvatar: false\n },\n userBubble: {\n showAvatar: false\n },\n // Disable notification badge on chat button\n notification: {\n disabled: true,\n showCount: false\n },\n // Disable other optional features\n audio: { disabled: true },\n emoji: { disabled: true },\n fileAttachment: { disabled: true }\n // Note: We don't use RCB's chatHistory - we store messages ourselves in session-utils.ts\n};\n\n\n/* Utility Types */\nexport interface ThemeColors {\n primaryColor?: string;\n secondaryColor?: string;\n fontFamily?: string;\n}\n\nexport interface BotControllerHandle {\n addMessage: (message: string) => void;\n openChat: () => void;\n closeChat: () => void;\n toggleChat: () => void;\n setBotEnabled: (enabled: boolean) => void;\n}\n\n","// src/components/QABot.tsx\nimport React, { useRef, useEffect, useMemo, forwardRef, useState, useCallback } from 'react';\nimport ChatBot, { ChatBotProvider, Button } from \"react-chatbotify\";\nimport HtmlRenderer from \"@rcb-plugins/html-renderer\";\nimport MarkdownRenderer from \"@rcb-plugins/markdown-renderer\";\nimport InputValidator from \"@rcb-plugins/input-validator\";\nimport BotController from './BotController';\nimport LoginButton from './LoginButton';\nimport UserIcon from './UserIcon';\nimport HistoryButton from './HistoryButton';\nimport NewChatButton from './NewChatButton';\nimport SessionMessageTracker from './SessionMessageTracker';\nimport useThemeColors from '../hooks/useThemeColors';\nimport useChatBotSettings from '../hooks/useChatBotSettings';\nimport useFocusableSendButton from '../hooks/useFocusableSendButton';\nimport useKeyboardNavigation from '../hooks/useKeyboardNavigation';\nimport useUpdateHeader from '../hooks/useUpdateHeader';\nimport { createQAFlow } from '../utils/flows/qa-flow';\nimport {\n generateSessionId,\n getSessionMessageCount,\n computeSessionDurationMs\n} from '../utils/session-utils';\nimport { SessionProvider } from '../contexts/SessionContext';\nimport { AnalyticsProvider, type AnalyticsEventInput } from '../contexts/AnalyticsContext';\nimport { logger } from '../utils/logger';\nimport type { Settings, Flow } from 'react-chatbotify';\nimport {\n fixedReactChatbotifySettings,\n defaultValues,\n type QABotProps,\n type BotControllerHandle,\n type ThemeColors\n} from '../config';\n\n/**\n * Q&A Bot Component - A pre-configured react-chatbotify wrapper with business logic\n */\nconst QABot = forwardRef<BotControllerHandle, QABotProps>((props, ref) => {\n const {\n // Required\n apiKey,\n qaEndpoint,\n\n // Optional functionality\n ratingEndpoint,\n welcomeMessage,\n open,\n onOpenChange,\n\n // Login state props (isLoggedIn is required)\n isLoggedIn,\n allowAnonAccess = false,\n actingUser,\n\n // Optional branding\n primaryColor,\n secondaryColor,\n botName,\n logo,\n placeholder,\n errorMessage,\n\n // Layout props\n embedded,\n\n // Footer props\n footerText,\n footerLink,\n tooltipText,\n\n // Login props\n loginUrl,\n\n // Custom flow extension\n customFlow,\n\n // Analytics callback\n onAnalyticsEvent\n } = props;\n\n // Instance ID - stable across component lifecycle (for unique React keys)\n const instanceIdRef = useRef<string>(`bot_${Math.random().toString(36).substr(2, 9)}`);\n\n // Log version on mount (when debug enabled)\n useEffect(() => {\n logger.version();\n }, []);\n\n // Session management - use ref so session can change without recreating flow\n // Use lazy initializer to only generate once per mount\n const sessionIdRef = useRef<string | null>(null);\n if (sessionIdRef.current === null) {\n sessionIdRef.current = generateSessionId();\n logger.session('CREATED', sessionIdRef.current);\n }\n\n // Track when we're resetting to prevent message replay\n const isResettingRef = useRef<boolean>(false);\n\n // Create a stable getter object that the flow will capture\n const sessionGetter = useRef({\n getSessionId: () => sessionIdRef.current,\n isResetting: () => isResettingRef.current\n });\n\n // Function to reset session ID (creates a new unique session)\n const resetSession = () => {\n const oldSessionId = sessionIdRef.current;\n isResettingRef.current = true;\n sessionIdRef.current = generateSessionId();\n logger.session('RESET', `${oldSessionId?.slice(-12)} -> ${sessionIdRef.current.slice(-12)}`);\n };\n\n // Function to set session ID (for restoring a previous session)\n const setSessionId = (sessionId: string) => {\n const oldSessionId = sessionIdRef.current;\n sessionIdRef.current = sessionId;\n logger.session('RESTORED', `${oldSessionId?.slice(-12)} -> ${sessionId.slice(-12)}`);\n };\n\n // Function to clear the resetting flag (called after flow restart completes)\n const clearResettingFlag = () => {\n isResettingRef.current = false;\n };\n\n // Track if user is logged in (for internal reactivity)\n // Note: undefined is treated as \"logged in\" (open access mode)\n const [internalIsLoggedIn, setInternalIsLoggedIn] = useState(isLoggedIn);\n\n // Sync isLoggedIn prop changes\n useEffect(() => {\n setInternalIsLoggedIn(isLoggedIn);\n }, [isLoggedIn]);\n\n // Determine if embedded (with default)\n const isEmbeddedMode = embedded !== undefined ? embedded : defaultValues.embedded;\n\n /**\n * Enriched analytics tracker - single source of truth for event enrichment.\n * Adds common fields (timestamp, sessionId, pageUrl, isEmbedded) to all events.\n * Used by: QABot directly, AnalyticsProvider (for child components), and qa-flow.\n */\n const trackEvent = useCallback((event: AnalyticsEventInput) => {\n if (onAnalyticsEvent) {\n onAnalyticsEvent({\n ...event,\n timestamp: Date.now(),\n sessionId: sessionIdRef.current ?? undefined,\n pageUrl: typeof window !== 'undefined' ? window.location.href : undefined,\n isEmbedded: isEmbeddedMode\n });\n }\n }, [onAnalyticsEvent, isEmbeddedMode]);\n\n // Build settings: Fixed settings + overridable props\n const settings = useMemo((): Settings => {\n // Start with fixed settings (cannot be overridden)\n const base = { ...fixedReactChatbotifySettings };\n\n // Add overridable settings - use props if provided, otherwise defaults\n base.general = {\n ...base.general,\n primaryColor: primaryColor || defaultValues.primaryColor,\n secondaryColor: secondaryColor || defaultValues.secondaryColor,\n fontFamily: defaultValues.fontFamily,\n embedded: isEmbeddedMode\n };\n\n // Build header buttons array conditionally\n // Show login button only if explicitly logged out (isLoggedIn === false)\n // Show history button + user icon when logged in\n const headerButtons = internalIsLoggedIn === false\n ? [<LoginButton key=\"login-button\" loginUrl={loginUrl || defaultValues.loginUrl} isHeaderButton={true} />]\n : [<HistoryButton key=\"history-button\" />, <UserIcon key=\"user-icon\" />];\n\n base.header = {\n title: <span style={{ fontSize: 14, fontWeight: 500 }}>{botName || defaultValues.botName}</span>,\n showAvatar: true,\n avatar: logo || defaultValues.avatar,\n buttons: [\n ...headerButtons,\n Button.CLOSE_CHAT_BUTTON\n ]\n };\n\n // Input is never globally disabled - individual flow steps control this\n base.chatInput = {\n ...base.chatInput,\n disabled: false,\n enabledPlaceholderText: placeholder || defaultValues.placeholder,\n disabledPlaceholderText: errorMessage || defaultValues.errorMessage\n };\n\n base.tooltip = {\n ...base.tooltip,\n text: tooltipText || defaultValues.tooltipText\n };\n\n // Configure footer with NewChatButton and optional text/link\n // This must be in useMemo (not useEffect) to avoid flashing the default footer\n const footerTextElement = footerText\n ? (footerLink\n ? <a href={footerLink} target=\"_blank\" rel=\"noopener noreferrer\" key=\"footer-link\">{footerText}</a>\n : <span key=\"footer-text\">{footerText}</span>)\n : null;\n\n base.footer = {\n text: footerTextElement,\n buttons: [<NewChatButton key=\"new-chat-button\" />]\n };\n\n // Ensure chatWindow is a fresh object (not shared with fixedReactChatbotifySettings)\n // and set defaultOpen based on embedded mode\n base.chatWindow = {\n ...base.chatWindow,\n defaultOpen: isEmbeddedMode ? true : false\n };\n\n // Enable events for message tracking\n base.event = {\n rcbPreInjectMessage: true,\n rcbPostInjectMessage: true,\n rcbUserSubmitText: true,\n rcbChangePath: true,\n rcbToggleChatWindow: true\n };\n\n return base;\n }, [primaryColor, secondaryColor, botName, logo, placeholder, errorMessage, isEmbeddedMode, tooltipText, internalIsLoggedIn, loginUrl, footerText, footerLink]);\n\n // Container ref for theming\n const containerRef = useRef<HTMLDivElement>(null);\n const themeColors: ThemeColors = useThemeColors(containerRef, settings.general);\n\n // Update header based on login state\n useUpdateHeader(internalIsLoggedIn !== false, containerRef);\n\n // Apply theme colors as CSS variables and other settings\n // Note: Footer is configured in the settings useMemo above to avoid flashing\n useChatBotSettings({ settings, themeColors });\n\n // Create Q&A flow directly from simple props - no intermediate layers!\n // Note: sessionGetter is stable, so flow won't recreate when session changes\n const flow = useMemo((): Flow => {\n const qaFlow = createQAFlow({\n endpoint: qaEndpoint,\n ratingEndpoint: ratingEndpoint,\n apiKey: apiKey,\n sessionId: sessionGetter.current.getSessionId,\n isResetting: sessionGetter.current.isResetting,\n isLoggedIn: internalIsLoggedIn,\n allowAnonAccess: allowAnonAccess,\n loginUrl: loginUrl || defaultValues.loginUrl,\n actingUser: actingUser,\n trackEvent: trackEvent\n });\n\n // Configure start step\n const startStep = {\n message: welcomeMessage,\n renderMarkdown: [\"BOT\"],\n transition: { duration: 0 },\n path: \"qa_loop\"\n };\n\n // Merge flows: start + Q&A flow + custom flow (if provided)\n return {\n start: startStep,\n ...qaFlow,\n ...(customFlow || {})\n };\n }, [apiKey, qaEndpoint, ratingEndpoint, welcomeMessage, internalIsLoggedIn, allowAnonAccess, loginUrl, customFlow, actingUser, trackEvent]);\n\n // default react-chatbotify plugins\n const plugins = useMemo(() => {\n return [HtmlRenderer(), MarkdownRenderer(), InputValidator()];\n }, []);\n\n // Apply hooks\n useFocusableSendButton();\n useKeyboardNavigation();\n\n // Track link clicks in bot messages via event delegation\n useEffect(() => {\n const container = containerRef.current;\n if (!container) return;\n\n const handleLinkClick = (event: MouseEvent) => {\n const anchor = (event.target as HTMLElement).closest?.('a');\n if (!anchor) return;\n\n // Only track links inside bot message bubbles\n if (!anchor.closest('.rcb-bot-message')) return;\n\n // Skip login button (tracked separately) and rating buttons\n if (anchor.classList.contains('qa-bot-login-button')) return;\n\n trackEvent({\n type: 'chatbot_link_clicked',\n linkUrl: anchor.href,\n linkText: anchor.textContent?.trim() || ''\n });\n };\n\n container.addEventListener('click', handleLinkClick);\n return () => container.removeEventListener('click', handleLinkClick);\n }, [trackEvent]);\n\n // Listen for chat window toggle events\n useEffect(() => {\n if (!isEmbeddedMode) {\n const handleChatWindowToggle = (event: any) => {\n const newOpenState = event.data.newState;\n onOpenChange?.(newOpenState);\n\n const currentSessionId = sessionIdRef.current;\n\n // Track open/close analytics events\n if (newOpenState) {\n // Chat opened\n trackEvent({ type: 'chatbot_open' });\n } else {\n // Chat closed - include session metrics\n trackEvent({\n type: 'chatbot_close',\n messageCount: currentSessionId ? getSessionMessageCount(currentSessionId) : 0,\n durationMs: currentSessionId ? computeSessionDurationMs(currentSessionId) : 0\n });\n }\n };\n window.addEventListener('rcb-toggle-chat-window', handleChatWindowToggle);\n\n return () => {\n window.removeEventListener('rcb-toggle-chat-window', handleChatWindowToggle);\n };\n }\n }, [isEmbeddedMode, onOpenChange, trackEvent]);\n\n return (\n <div\n className={`qa-bot ${settings.general?.embedded ? \"embedded-qa-bot\" : \"\"}`}\n ref={containerRef}\n role=\"region\"\n aria-label={botName || defaultValues.botName}\n >\n <SessionProvider getSessionId={() => sessionIdRef.current!} setSessionId={setSessionId} resetSession={resetSession} clearResettingFlag={clearResettingFlag}>\n <AnalyticsProvider trackEvent={trackEvent}>\n <ChatBotProvider>\n <div>\n <SessionMessageTracker />\n <BotController\n ref={ref}\n embedded={settings.general?.embedded || false}\n currentOpen={open || false}\n enabled={internalIsLoggedIn !== false}\n onSetEnabled={(enabled) => setInternalIsLoggedIn(enabled ? undefined : false)}\n />\n <ChatBot\n key={`chatbot-${instanceIdRef.current}-${internalIsLoggedIn}`}\n settings={settings}\n flow={flow}\n plugins={plugins}\n />\n\n {/* Accessibility regions */}\n <div\n role=\"status\"\n aria-live=\"polite\"\n aria-label=\"Bot response updates\"\n className=\"sr-only\"\n id=\"bot-live-region\"\n />\n <div id=\"chat-input-help\" className=\"sr-only\">\n Type your message and press Enter to send. Use arrow keys to navigate through response options.\n </div>\n </div>\n </ChatBotProvider>\n </AnalyticsProvider>\n </SessionProvider>\n </div>\n );\n});\n\nQABot.displayName = 'QABot';\n\nexport default QABot;\n\n","import { useMemo, RefObject } from 'react';\nimport type { ThemeColors } from '../config';\n\ninterface ThemeConfig {\n primaryColor?: string;\n secondaryColor?: string;\n fontFamily?: string;\n}\n\n/**\n * Custom hook to get theme colors from CSS variables\n */\nconst useThemeColors = (\n containerRef: RefObject<HTMLDivElement>,\n themeConfig: ThemeConfig = {}\n): ThemeColors => {\n const themeColors = useMemo(() => {\n // Get colors from CSS variables if available, fall back to defaults\n const getCSSVariable = (name: string, fallback?: string): string | undefined => {\n if (containerRef.current) {\n // First check the container itself\n const containerStyle = getComputedStyle(containerRef.current);\n const containerValue = containerStyle.getPropertyValue(name);\n if (containerValue && containerValue.trim() !== '') {\n return containerValue.trim();\n }\n\n // Then check parent\n if (containerRef.current.parentElement) {\n const parentStyle = getComputedStyle(containerRef.current.parentElement);\n const parentValue = parentStyle.getPropertyValue(name);\n if (parentValue && parentValue.trim() !== '') {\n return parentValue.trim();\n }\n }\n }\n return fallback;\n };\n\n return {\n primaryColor: getCSSVariable('--primaryColor', themeConfig.primaryColor),\n secondaryColor: getCSSVariable('--secondaryColor', themeConfig.secondaryColor),\n fontFamily: getCSSVariable('--fontFamily', themeConfig.fontFamily)\n };\n }, [containerRef, themeConfig]);\n\n return themeColors;\n};\n\nexport default useThemeColors;","import { useEffect } from 'react';\n\n/**\n * Custom hook to update the chatbot header based on login state\n * Adds/removes the 'bot-logged-in' CSS class to control visibility of login button vs user icon\n *\n * @param isLoggedIn - Whether the user is logged in\n * @param containerRef - Reference to the chatbot container element\n */\nconst useUpdateHeader = (\n isLoggedIn: boolean,\n containerRef: React.RefObject<HTMLDivElement>\n): void => {\n useEffect(() => {\n if (!containerRef.current) {\n return;\n }\n if (isLoggedIn) {\n containerRef.current.classList.add('bot-logged-in');\n } else {\n containerRef.current.classList.remove('bot-logged-in');\n }\n }, [isLoggedIn, containerRef]);\n};\n\nexport default useUpdateHeader;\n","import React, { useEffect } from 'react';\nimport type { Settings } from 'react-chatbotify';\nimport type { ThemeColors } from '../config';\n\ninterface UseChatBotSettingsProps {\n settings: Settings;\n themeColors: ThemeColors;\n}\n\n/**\n * Custom hook to apply theme colors and accessibility enhancements\n * Note: Footer is configured in QABot's useMemo to avoid flashing default footer\n */\nconst useChatBotSettings = ({ settings, themeColors }: UseChatBotSettingsProps): void => {\n // Apply theme colors as CSS variables\n useEffect(() => {\n if (themeColors) {\n Object.entries(themeColors).forEach(([key, value]) => {\n if (value) {\n document.documentElement.style.setProperty(`--${key}`, value);\n }\n });\n\n // Force react-chatbotify header to use our colors\n if (themeColors.primaryColor) {\n document.documentElement.style.setProperty('--rcb-header-background', themeColors.primaryColor);\n }\n if (themeColors.secondaryColor) {\n document.documentElement.style.setProperty('--rcb-header-background-hover', themeColors.secondaryColor);\n }\n }\n }, [themeColors]);\n\n // Apply our accessibility and feature enhancements to the settings object\n useEffect(() => {\n // Add accessibility wrapper for title\n if (settings.header?.title && typeof settings.header.title === 'string') {\n settings.header.title = (\n <div key=\"header-title\">\n <h1 className=\"sr-only\">{settings.header.title}</h1>\n <span aria-hidden=\"true\">{settings.header.title}</span>\n </div>\n );\n }\n\n // Note: embedded mode defaultOpen is now set in QABot useMemo to avoid\n // mutating shared settings objects\n\n // Apply our fixed overrides (not configurable)\n settings.device = {\n desktopEnabled: true,\n mobileEnabled: true,\n applyMobileOptimizations: false\n };\n\n settings.chatHistory = {\n disabled: true\n };\n\n settings.chatButton = {\n ...settings.chatButton,\n icon: settings.header?.avatar,\n };\n\n // Note: audio, emoji, fileAttachment, and notification settings\n // are now in fixedReactChatbotifySettings (config.ts) to ensure\n // they're applied before first render\n\n settings.event = {\n ...settings.event,\n rcbToggleChatWindow: true\n };\n }, [settings]);\n};\n\nexport default useChatBotSettings;","/**\n * Processes text to convert bare URLs into markdown hyperlinks while preserving existing links\n */\nexport const getProcessedText = (text: string): string => {\n if (!text || typeof text !== 'string') {\n return text;\n }\n\n // First pass: Handle URLs wrapped in square brackets like [https://example.com]\n // Convert them to proper markdown links [url](url)\n let processedText = text.replace(/\\[(https?:\\/\\/[^\\s]+?)\\]/gi, '[$1]($1)');\n\n // Second pass: Match bare URLs that are NOT already in markdown or HTML link format\n // This looks for URLs that are not preceded by ]( or href=\" or [\n // and not followed by )\n const urlRegex = /(?<!\\]\\(|href=[\"']|\\[)https?:\\/\\/[^\\s[\\]()]+/gi;\n\n // Replace bare URLs with markdown links\n processedText = processedText.replace(urlRegex, (url) => {\n // Clean up common punctuation that shouldn't be part of the URL\n let cleanUrl = url;\n let trailingPunctuation = '';\n\n // Check for trailing punctuation and remove it from the URL\n const trailingPunctuationMatch = cleanUrl.match(/([.,;:!?]+)$/);\n if (trailingPunctuationMatch) {\n trailingPunctuation = trailingPunctuationMatch[1];\n cleanUrl = cleanUrl.slice(0, -trailingPunctuation.length);\n }\n\n // Create markdown link with the URL as both the link text and href\n return `[${cleanUrl}](${cleanUrl})${trailingPunctuation}`;\n });\n\n return processedText;\n};","import { useEffect } from 'react';\n\n/**\n * Hook to make the send button focusable and keyboard accessible\n */\nconst useFocusableSendButton = (): void => {\n useEffect(() => {\n const makeSendButtonAccessible = () => {\n const chatWindow = document.querySelector('.rcb-chat-window');\n if (!chatWindow) return;\n \n const sendButton = chatWindow.querySelector('.rcb-send-button');\n if (!sendButton) return;\n \n // Make send button focusable\n if (!sendButton.hasAttribute('tabindex')) {\n sendButton.setAttribute('tabindex', '0');\n }\n \n // Add keyboard support if not already added\n if (!sendButton.hasAttribute('data-keyboard-enabled')) {\n sendButton.setAttribute('data-keyboard-enabled', 'true');\n \n sendButton.addEventListener('keydown', (event: KeyboardEvent) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n \n // Call the React onMouseDown handler directly\n const reactPropsKey = sendButton && Object.keys(sendButton as any).find(key => key.startsWith('__reactProps'));\n if (reactPropsKey) {\n const reactProps = (sendButton as any)[reactPropsKey];\n const onMouseDown = reactProps?.onMouseDown;\n if (onMouseDown && typeof onMouseDown === 'function') {\n onMouseDown(event);\n return;\n }\n }\n \n // Fallback to dispatching a mousedown event\n const mouseDownEvent = new MouseEvent('mousedown', {\n bubbles: true,\n cancelable: true,\n view: window\n });\n sendButton.dispatchEvent(mouseDownEvent);\n }\n });\n }\n };\n\n // Check periodically in case the send button is recreated\n const interval = setInterval(makeSendButtonAccessible, 1000);\n \n // Run immediately\n makeSendButtonAccessible();\n \n return () => clearInterval(interval);\n }, []);\n};\n\nexport default useFocusableSendButton;","import { useState } from 'react';\nimport { logger } from '../utils/logger';\n\ninterface ScreenshotCaptureResult {\n captureScreenshot: () => Promise<File>;\n isCapturing: boolean;\n isScreenCaptureAvailable: boolean;\n}\n\n/**\n * Custom hook for capturing screenshots using the Screen Capture API\n * @returns Object containing capture function, capturing state, and availability check\n */\nconst useScreenshotCapture = (): ScreenshotCaptureResult => {\n const [isCapturing, setIsCapturing] = useState(false);\n\n // Check if screen capture is available\n const checkScreenCaptureAvailable = (): boolean => {\n return (\n typeof navigator !== 'undefined' &&\n navigator.mediaDevices !== undefined &&\n typeof navigator.mediaDevices.getDisplayMedia === 'function'\n );\n };\n\n const captureScreenshot = async (): Promise<File> => {\n if (!checkScreenCaptureAvailable()) {\n throw new Error('Screen capture is not available in this environment');\n }\n\n try {\n setIsCapturing(true);\n\n // Request screen capture with specific options for better UX\n const stream = await navigator.mediaDevices.getDisplayMedia({\n video: {\n displaySurface: 'browser', // Prefer capturing browser tabs\n cursor: 'always',\n width: { ideal: 1920 },\n height: { ideal: 1080 }\n },\n audio: false\n } as MediaStreamConstraints);\n\n // Create video element to capture the frame\n const video = document.createElement('video');\n video.srcObject = stream;\n\n // Wait for video metadata to load\n await new Promise<void>(resolve => {\n video.onloadedmetadata = () => {\n video.play();\n resolve();\n };\n });\n\n // Create canvas with video dimensions\n const canvas = document.createElement('canvas');\n canvas.width = video.videoWidth;\n canvas.height = video.videoHeight;\n\n // Draw video frame to canvas\n const ctx = canvas.getContext('2d');\n if (!ctx) {\n throw new Error('Could not get canvas context');\n }\n ctx.drawImage(video, 0, 0, canvas.width, canvas.height);\n\n // Convert canvas to blob\n const blob = await new Promise<Blob | null>(resolve =>\n canvas.toBlob(resolve, 'image/png')\n );\n\n if (!blob) {\n throw new Error('Could not create image blob');\n }\n\n // Create file from blob\n const timestamp = new Date().toISOString().replace(/[:.]/g, '-');\n const file = new File([blob], `screenshot-${timestamp}.png`, { type: 'image/png' });\n\n // Stop all tracks\n stream.getTracks().forEach(track => track.stop());\n\n setIsCapturing(false);\n return file;\n } catch (error) {\n logger.error('Error capturing screenshot:', error);\n setIsCapturing(false);\n throw error;\n }\n };\n\n return {\n captureScreenshot,\n isCapturing,\n isScreenCaptureAvailable: checkScreenCaptureAvailable()\n };\n};\n\nexport default useScreenshotCapture;\nexport { useScreenshotCapture };\nexport type { ScreenshotCaptureResult };\n","import React from 'react';\nimport BaseIcon from './BaseIcon';\n\nconst UploadIcon = (props) => {\n return (\n <BaseIcon {...props}>\n <path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\" />\n <polyline points=\"17 8 12 3 7 8\" />\n <line x1=\"12\" y1=\"3\" x2=\"12\" y2=\"15\" />\n </BaseIcon>\n );\n};\n\nexport default UploadIcon;","/**\n * Processed file data ready for API submission\n */\nexport interface ProcessedFile {\n fileName: string;\n contentType: string;\n size: number;\n fileData: string; // base64 encoded\n}\n\n/**\n * Converts a File object to base64 encoded data\n * @param file - The File object to convert\n * @returns Promise resolving to processed file data\n */\nexport const fileToBase64 = (file: File): Promise<ProcessedFile> => {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n\n reader.onload = () => {\n if (typeof reader.result !== 'string') {\n reject(new Error(`Failed to read file ${file.name}`));\n return;\n }\n // Get the base64 string by removing the data URL prefix\n const base64String = reader.result.split(',')[1];\n resolve({\n fileName: file.name,\n contentType: file.type,\n size: file.size,\n fileData: base64String\n });\n };\n\n reader.onerror = () => reject(new Error(`Failed to read file ${file.name}`));\n reader.readAsDataURL(file);\n });\n};\n\n/**\n * Converts multiple files to base64 encoded data\n * @param files - Array of File objects to convert\n * @returns Promise resolving to array of processed file data\n */\nexport const filesToBase64 = (files: File[]): Promise<ProcessedFile[]> => {\n return Promise.all(files.map(fileToBase64));\n};\n\n/**\n * Validates file size against a maximum\n * @param file - The File object to validate\n * @param maxMB - Maximum file size in megabytes (default: 10)\n * @returns true if file is within size limit\n */\nexport const validateFileSize = (file: File, maxMB: number = 10): boolean => {\n const maxBytes = maxMB * 1024 * 1024;\n return file.size <= maxBytes;\n};\n\n/**\n * Formats file size for display\n * @param bytes - File size in bytes\n * @returns Human-readable file size string\n */\nexport const formatFileSize = (bytes: number): string => {\n if (bytes < 1024) {\n return `${bytes} B`;\n } else if (bytes < 1024 * 1024) {\n return `${(bytes / 1024).toFixed(1)} KB`;\n } else {\n return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;\n }\n};\n","import React, { useState, useRef } from 'react';\nimport useScreenshotCapture from '../hooks/useScreenshotCapture';\nimport UploadIcon from './icons/UploadIcon';\nimport { formatFileSize } from '../utils/file-utils';\nimport { logger } from '../utils/logger';\n\nexport interface FileUploadComponentProps {\n /** Callback when files are selected/uploaded */\n onFileUpload: (files: File[]) => void;\n /** Maximum file size in MB (default: 10) */\n maxSizeMB?: number;\n /** Accepted file types (default: images, PDFs, text, docs) */\n acceptedTypes?: string;\n /** Enable screenshot capture button (default: false, opt-in) */\n enableScreenshot?: boolean;\n /** Additional CSS class name */\n className?: string;\n}\n\n/**\n * File upload component with drag-and-drop, file preview, and optional screenshot capture\n */\nconst FileUploadComponent: React.FC<FileUploadComponentProps> = ({\n onFileUpload,\n maxSizeMB = 10,\n acceptedTypes = 'image/*,application/pdf,text/*,.doc,.docx',\n enableScreenshot = false,\n className\n}) => {\n const [dragActive, setDragActive] = useState(false);\n const [selectedFiles, setSelectedFiles] = useState<File[]>([]);\n const [previewFile, setPreviewFile] = useState<File | null>(null);\n const fileInputRef = useRef<HTMLInputElement>(null);\n const { captureScreenshot, isCapturing, isScreenCaptureAvailable } = useScreenshotCapture();\n\n // Helper function to announce messages to screen readers\n const announceToScreenReader = (message: string): void => {\n const announcement = document.createElement('div');\n announcement.setAttribute('aria-live', 'assertive');\n announcement.setAttribute('aria-atomic', 'true');\n announcement.className = 'sr-only';\n announcement.textContent = message;\n document.body.appendChild(announcement);\n setTimeout(() => document.body.removeChild(announcement), 1000);\n };\n\n const handleFiles = (files: FileList | File[]): void => {\n // Defensive check: ensure files is valid and iterable\n if (!files || (files as FileList).length === 0) {\n logger.warn('FileUploadComponent: No valid files provided to handleFiles');\n return;\n }\n\n let newFileArray: File[];\n try {\n newFileArray = Array.from(files);\n } catch (error) {\n logger.error('FileUploadComponent: Error converting files to array:', error);\n announceToScreenReader('Error processing selected files. Please try again.');\n return;\n }\n\n const updatedFiles = [...selectedFiles, ...newFileArray];\n setSelectedFiles(updatedFiles);\n\n // Announce file selection to screen readers\n const fileCount = newFileArray.length;\n const fileNames = newFileArray.map(f => f.name).join(', ');\n announceToScreenReader(`${fileCount} file${fileCount > 1 ? 's' : ''} selected: ${fileNames}`);\n\n // Programmatically scroll chat to bottom after file selection to keep Continue button in view\n setTimeout(() => {\n const chatContent = document.querySelector('.rcb-chat-content');\n if (chatContent) {\n chatContent.scrollTop = chatContent.scrollHeight;\n }\n }, 100);\n\n if (onFileUpload) {\n onFileUpload(updatedFiles);\n }\n };\n\n const handleDrag = (e: React.DragEvent<HTMLDivElement>): void => {\n e.preventDefault();\n e.stopPropagation();\n\n if (e.type === 'dragenter' || e.type === 'dragover') {\n setDragActive(true);\n } else if (e.type === 'dragleave') {\n setDragActive(false);\n }\n };\n\n const handleDrop = (e: React.DragEvent<HTMLDivElement>): void => {\n e.preventDefault();\n e.stopPropagation();\n setDragActive(false);\n\n try {\n if (e.dataTransfer?.files && e.dataTransfer.files.length > 0) {\n handleFiles(e.dataTransfer.files);\n }\n } catch (error) {\n logger.error('FileUploadComponent: Error in handleDrop:', error);\n announceToScreenReader('Error processing dropped files. Please try again.');\n }\n };\n\n const handleFileSelect = (e: React.ChangeEvent<HTMLInputElement>): void => {\n try {\n if (e.target?.files && e.target.files.length > 0) {\n handleFiles(e.target.files);\n }\n } catch (error) {\n logger.error('FileUploadComponent: Error in handleFileSelect:', error);\n announceToScreenReader('Error processing selected files. Please try again.');\n }\n };\n\n const handleButtonClick = (): void => {\n try {\n if (fileInputRef.current) {\n fileInputRef.current.click();\n }\n } catch (error) {\n logger.error('FileUploadComponent: Error in handleButtonClick:', error);\n announceToScreenReader('Error opening file selection dialog. Please try again.');\n }\n };\n\n const handleRemoveFile = (indexToRemove: number): void => {\n const newFiles = selectedFiles.filter((_, idx) => idx !== indexToRemove);\n setSelectedFiles(newFiles);\n if (onFileUpload) {\n onFileUpload(newFiles);\n }\n };\n\n const handleScreenshotCapture = async (): Promise<void> => {\n try {\n const file = await captureScreenshot();\n handleFiles([file]);\n announceToScreenReader('Screenshot captured successfully');\n } catch {\n announceToScreenReader('Error capturing screenshot. Please try again.');\n }\n };\n\n const handleFilePreview = (file: File): void => {\n setPreviewFile(file);\n };\n\n const closePreview = (): void => {\n setPreviewFile(null);\n };\n\n const renderFilePreview = (): React.ReactNode => {\n if (!previewFile) return null;\n\n const isImage = previewFile.type.startsWith('image/');\n const isText = previewFile.type.startsWith('text/');\n const isPDF = previewFile.type === 'application/pdf';\n\n return (\n <div\n style={{\n position: 'fixed',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: 'rgba(0, 0, 0, 0.7)',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n zIndex: 1000,\n }}\n onClick={closePreview}\n >\n <div\n style={{\n backgroundColor: 'white',\n padding: '20px',\n borderRadius: '8px',\n maxWidth: '90%',\n maxHeight: '90%',\n overflow: 'auto',\n position: 'relative',\n }}\n onClick={e => e.stopPropagation()}\n >\n <button\n onClick={closePreview}\n style={{\n position: 'absolute',\n top: '10px',\n right: '10px',\n background: 'none',\n border: 'none',\n fontSize: '24px',\n cursor: 'pointer',\n color: '#666',\n }}\n >\n ×\n </button>\n\n <h3 style={{ marginTop: 0, marginBottom: '16px' }}>{previewFile.name}</h3>\n\n {isImage && (\n <img\n src={URL.createObjectURL(previewFile)}\n alt={previewFile.name}\n style={{ maxWidth: '100%', maxHeight: '70vh' }}\n />\n )}\n\n {isText && (\n <pre style={{\n whiteSpace: 'pre-wrap',\n wordWrap: 'break-word',\n maxHeight: '70vh',\n overflow: 'auto',\n padding: '16px',\n backgroundColor: '#f5f5f5',\n borderRadius: '4px',\n }}>\n {URL.createObjectURL(previewFile)}\n </pre>\n )}\n\n {isPDF && (\n <iframe\n src={URL.createObjectURL(previewFile)}\n style={{ width: '100%', height: '70vh', border: 'none' }}\n title={previewFile.name}\n />\n )}\n\n {!isImage && !isText && !isPDF && (\n <div style={{ padding: '20px', textAlign: 'center' }}>\n Preview not available for this file type\n </div>\n )}\n </div>\n </div>\n );\n };\n\n const showScreenshotButton = enableScreenshot && isScreenCaptureAvailable;\n\n return (\n <div className={`file-upload-container ${className || ''}`} style={{ padding: '16px', margin: '8px 0' }}>\n {showScreenshotButton && (\n <div style={{ display: 'flex', justifyContent: 'center', marginBottom: '10px' }}>\n <button\n onClick={(e) => {\n e.preventDefault();\n handleScreenshotCapture();\n }}\n disabled={isCapturing}\n aria-describedby=\"screenshot-help\"\n aria-label={isCapturing ? 'Taking screenshot, please wait' : 'Take a screenshot to attach'}\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: '8px',\n backgroundColor: '#107180',\n color: 'white',\n border: 'none',\n borderRadius: '5px',\n padding: '8px 12px',\n cursor: isCapturing ? 'not-allowed' : 'pointer',\n fontSize: '14px',\n fontWeight: '500',\n boxShadow: '0 1px 3px rgba(0,0,0,0.2)',\n }}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z\"></path>\n <circle cx=\"12\" cy=\"13\" r=\"4\"></circle>\n </svg>\n {isCapturing ? 'Taking screenshot...' : 'Take screenshot...'}\n </button>\n <span id=\"screenshot-help\" className=\"sr-only\">\n Captures the current screen and adds it as an attachment\n </span>\n </div>\n )}\n\n <div\n className={`file-upload-dropzone ${dragActive ? 'active' : ''}`}\n onDragEnter={handleDrag}\n onDragLeave={handleDrag}\n onDragOver={handleDrag}\n onDrop={handleDrop}\n role=\"button\"\n tabIndex={0}\n aria-label=\"File upload area. Click to select files or drag and drop files here.\"\n aria-describedby=\"upload-instructions\"\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n handleButtonClick();\n }\n }}\n style={{\n padding: '20px',\n border: '2px dashed #ccc',\n borderRadius: '8px',\n backgroundColor: dragActive ? '#f0f8ff' : '#fafafa',\n transition: 'all 0.3s ease'\n }}\n >\n <input\n ref={fileInputRef}\n type=\"file\"\n className=\"file-input\"\n onChange={handleFileSelect}\n multiple\n style={{ display: 'none' }}\n aria-label=\"Select files to upload\"\n accept={acceptedTypes}\n />\n <div\n className=\"upload-content\"\n onClick={handleButtonClick}\n style={{\n cursor: 'pointer',\n flexDirection: 'column',\n alignItems: 'center',\n display: 'flex',\n textAlign: 'center',\n padding: '12px'\n }}\n >\n <div style={{ display: 'flex', flexDirection: 'column', alignItems: 'center', gap: '8px' }}>\n <div style={{ display: 'flex', flexDirection: 'row', alignItems: 'center', gap: '10px' }}>\n <UploadIcon />\n <p style={{ margin: 0, fontWeight: 'bold' }}>Upload Files</p>\n </div>\n <p id=\"upload-instructions\" style={{ margin: 0, fontSize: '14px', color: '#666' }}>\n Drag and drop files here or click to select. (Max {maxSizeMB}MB each)\n </p>\n </div>\n {selectedFiles.length > 0 && (\n <div\n className=\"selected-files\"\n style={{\n display: 'flex',\n flexWrap: 'wrap',\n gap: '8px',\n marginTop: '12px',\n alignItems: 'center'\n }}\n >\n <span style={{\n fontWeight: 400,\n color: '#888',\n fontSize: '13px',\n marginRight: '8px',\n alignSelf: 'center'\n }}>\n Selected files:\n </span>\n {selectedFiles.map((file, index) => (\n <span\n key={index}\n style={{\n background: '#fff',\n color: '#107180',\n borderRadius: '5px',\n padding: '4px 12px',\n fontSize: '14px',\n marginRight: '4px',\n marginBottom: '4px',\n border: '1px solid #ccc',\n display: 'flex',\n alignItems: 'center',\n gap: '6px',\n cursor: 'pointer',\n }}\n onClick={(e) => {\n e.stopPropagation();\n handleFilePreview(file);\n }}\n >\n <span\n onClick={e => { e.stopPropagation(); handleRemoveFile(index); }}\n style={{\n cursor: 'pointer',\n color: '#888',\n fontWeight: 'bold',\n fontSize: '15px',\n marginRight: '4px',\n userSelect: 'none',\n lineHeight: 1,\n }}\n title=\"Remove file\"\n aria-label={`Remove ${file.name}`}\n >\n &times;\n </span>\n {file.name} ({formatFileSize(file.size)})\n </span>\n ))}\n </div>\n )}\n </div>\n </div>\n {renderFilePreview()}\n </div>\n );\n};\n\nexport default FileUploadComponent;\nexport { FileUploadComponent };\n","/**\n * Flow Settings Utilities\n *\n * Provides utilities for processing flow configurations to handle\n * common patterns and work around react-chatbotify quirks.\n */\n\nimport type { Flow } from 'react-chatbotify';\n\nexport interface FlowSettingsOptions {\n /**\n * Automatically set chatDisabled based on step type:\n * - Steps with options/checkboxes → chatDisabled: true\n * - Steps without → chatDisabled: false\n *\n * Only applies to steps that don't already have chatDisabled explicitly set.\n *\n * This works around a react-chatbotify quirk where chatDisabled state\n * persists across step transitions instead of falling back to settings.\n */\n disableOnOptions?: boolean;\n}\n\n/**\n * Apply settings/transformations to a flow object.\n *\n * @param flow - The flow configuration to process\n * @param options - Settings to apply\n * @returns A new flow object with settings applied\n *\n * @example\n * ```typescript\n * const processedFlow = applyFlowSettings(myFlow, {\n * disableOnOptions: true\n * });\n * ```\n */\nexport function applyFlowSettings(\n flow: Flow,\n options: FlowSettingsOptions\n): Flow {\n if (!options || Object.keys(options).length === 0) {\n return flow;\n }\n\n const processed: Flow = {};\n\n for (const [stepName, step] of Object.entries(flow)) {\n let processedStep = { ...step };\n\n // Apply disableOnOptions if enabled\n if (options.disableOnOptions && processedStep.chatDisabled === undefined) {\n const hasOptions = !!(processedStep.options || processedStep.checkboxes);\n processedStep.chatDisabled = hasOptions;\n }\n\n processed[stepName] = processedStep;\n }\n\n return processed;\n}\n\n\n\n\n\n\n\n\n","/**\n * Helper functions to ensure messages are tracked in session history.\n *\n * Why this is needed:\n * react-chatbotify's `message:` property doesn't always fire the\n * injection events that SessionMessageTracker listens to. By using\n * these helpers, messages go through `params.injectMessage()` which\n * DOES fire the events, ensuring they are tracked in session history.\n *\n * Use these for important messages you want restored when loading\n * a previous session (e.g., ticket summaries, API responses with links).\n */\nimport type { Params } from 'react-chatbotify';\n\n/**\n * Wrap a static string message to ensure it's tracked in history.\n *\n * @example\n * import { withHistory } from '@snf/qa-bot-core';\n *\n * const myFlow = {\n * step_name: {\n * message: withHistory(\"This message will be saved to history\"),\n * options: [\"Option 1\", \"Option 2\"]\n * }\n * };\n */\nexport function withHistory(message: string): (params: Params) => Promise<void> {\n return async (params: Params) => {\n await params.injectMessage(message);\n // Return void - message is already injected, so RCB won't double-render\n };\n}\n\n/**\n * Wrap a dynamic message function to ensure its result is tracked in history.\n * Use this for messages that are computed at runtime (e.g., summaries, API responses).\n *\n * @example\n * import { withHistoryFn } from '@snf/qa-bot-core';\n *\n * const myFlow = {\n * success_step: {\n * message: withHistoryFn(() => generateSuccessMessage(result)),\n * options: [\"Back to Menu\"]\n * },\n * summary_step: {\n * message: withHistoryFn((params) => {\n * const data = getFormData();\n * return `Summary:\\nName: ${data.name}\\nEmail: ${data.email}`;\n * }),\n * options: [\"Submit\", \"Cancel\"]\n * }\n * };\n */\nexport function withHistoryFn(\n messageFn: (params: Params) => string | Promise<string>\n): (params: Params) => Promise<void> {\n return async (params: Params) => {\n const message = await messageFn(params);\n await params.injectMessage(message);\n // Return void - message is already injected, so RCB won't double-render\n };\n}\n","import React from 'react';\nimport ReactDOM from 'react-dom/client';\nimport QABot from './components/QABot';\nimport type { BotControllerHandle, QABotAnalyticsEvent } from './config';\nimport { logger } from './utils/logger';\nimport './styles/index.css'; // QA Bot styles\n\n// Export the main component\nexport { QABot };\n\n// Export file upload components and utilities\nexport { FileUploadComponent } from './components/FileUploadComponent';\nexport type { FileUploadComponentProps } from './components/FileUploadComponent';\nexport { useScreenshotCapture } from './hooks/useScreenshotCapture';\nexport type { ScreenshotCaptureResult } from './hooks/useScreenshotCapture';\nexport {\n fileToBase64,\n filesToBase64,\n validateFileSize,\n formatFileSize\n} from './utils/file-utils';\nexport type { ProcessedFile } from './utils/file-utils';\n\n// Export flow utilities\nexport { applyFlowSettings } from './utils/flow-settings';\nexport type { FlowSettingsOptions } from './utils/flow-settings';\n\n// Export history tracking helpers for custom flows\nexport { withHistory, withHistoryFn } from './utils/with-history';\n\n// Export types for usage\nexport type {\n QABotProps,\n BotControllerHandle,\n QABotAnalyticsEvent,\n QABotAnalyticsEventType\n} from './config';\n\n/**\n * ===========================================\n * PROGRAMMATIC API TYPES\n * ===========================================\n */\n\ninterface QABotConfig {\n target: HTMLElement;\n apiKey: string;\n qaEndpoint: string;\n ratingEndpoint?: string;\n defaultOpen?: boolean;\n embedded?: boolean;\n isLoggedIn: boolean;\n allowAnonAccess?: boolean;\n welcomeMessage: string;\n primaryColor?: string;\n secondaryColor?: string;\n botName?: string;\n logo?: string;\n placeholder?: string;\n errorMessage?: string;\n footerText?: string;\n footerLink?: string;\n tooltipText?: string;\n onAnalyticsEvent?: (event: QABotAnalyticsEvent) => void;\n}\n\ninterface QABotInstance {\n addMessage: (message: string) => void;\n setBotEnabled: (status: boolean) => void;\n openChat: () => void;\n closeChat: () => void;\n toggleChat: () => void;\n destroy: () => void;\n}\n\ninterface ProgrammaticQABotProps {\n apiKey: string;\n qaEndpoint: string;\n ratingEndpoint?: string;\n defaultOpen?: boolean;\n embedded?: boolean;\n isLoggedIn: boolean;\n allowAnonAccess?: boolean;\n welcomeMessage: string;\n primaryColor?: string;\n secondaryColor?: string;\n botName?: string;\n logo?: string;\n placeholder?: string;\n errorMessage?: string;\n footerText?: string;\n footerLink?: string;\n tooltipText?: string;\n onAnalyticsEvent?: (event: QABotAnalyticsEvent) => void;\n}\n\n/**\n * ===========================================\n * PROGRAMMATIC API IMPLEMENTATION\n * ===========================================\n */\n\n// React wrapper component for programmatic API\nconst ProgrammaticQABot = React.forwardRef<BotControllerHandle, ProgrammaticQABotProps>(\n (props, ref) => {\n const [isOpen, setIsOpen] = React.useState(props.defaultOpen || false);\n const qaRef = React.useRef<BotControllerHandle>(null);\n\n // Expose controller methods via ref\n React.useImperativeHandle(ref, () => ({\n addMessage: (message: string) => {\n qaRef.current?.addMessage(message);\n },\n setBotEnabled: (status: boolean) => {\n qaRef.current?.setBotEnabled(status);\n },\n openChat: () => {\n setIsOpen(true);\n qaRef.current?.openChat();\n },\n closeChat: () => {\n setIsOpen(false);\n qaRef.current?.closeChat();\n },\n toggleChat: () => {\n setIsOpen(prev => !prev);\n qaRef.current?.toggleChat();\n }\n }), []);\n\n return (\n <QABot\n ref={qaRef}\n apiKey={props.apiKey}\n qaEndpoint={props.qaEndpoint}\n ratingEndpoint={props.ratingEndpoint}\n welcomeMessage={props.welcomeMessage}\n primaryColor={props.primaryColor}\n secondaryColor={props.secondaryColor}\n botName={props.botName}\n logo={props.logo}\n placeholder={props.placeholder}\n errorMessage={props.errorMessage}\n embedded={props.embedded}\n isLoggedIn={props.isLoggedIn}\n allowAnonAccess={props.allowAnonAccess}\n open={isOpen}\n onOpenChange={setIsOpen}\n footerText={props.footerText}\n footerLink={props.footerLink}\n tooltipText={props.tooltipText}\n onAnalyticsEvent={props.onAnalyticsEvent}\n />\n );\n }\n);\n\nProgrammaticQABot.displayName = 'ProgrammaticQABot';\n\n/**\n * JavaScript API function - creates a QA Bot instance programmatically\n *\n * @param config Configuration object for the bot\n * @returns QABot instance with control methods\n */\nexport function qaBot(config: QABotConfig): QABotInstance | undefined {\n if (!config.target || !(config.target instanceof HTMLElement)) {\n logger.error('QA Bot: A valid target DOM element is required');\n return undefined;\n }\n\n const root = ReactDOM.createRoot(config.target);\n const wrapperRef = { current: null as BotControllerHandle | null };\n\n root.render(\n <React.StrictMode>\n <ProgrammaticQABot\n ref={(ref) => { wrapperRef.current = ref; }}\n apiKey={config.apiKey}\n qaEndpoint={config.qaEndpoint}\n ratingEndpoint={config.ratingEndpoint}\n defaultOpen={config.defaultOpen}\n embedded={config.embedded}\n isLoggedIn={config.isLoggedIn}\n allowAnonAccess={config.allowAnonAccess}\n welcomeMessage={config.welcomeMessage}\n primaryColor={config.primaryColor}\n secondaryColor={config.secondaryColor}\n botName={config.botName}\n logo={config.logo}\n placeholder={config.placeholder}\n errorMessage={config.errorMessage}\n footerText={config.footerText}\n footerLink={config.footerLink}\n tooltipText={config.tooltipText}\n onAnalyticsEvent={config.onAnalyticsEvent}\n />\n </React.StrictMode>\n );\n\n return {\n addMessage: (message: string) => wrapperRef.current?.addMessage(message),\n setBotEnabled: (status: boolean) => wrapperRef.current?.setBotEnabled(status),\n openChat: () => wrapperRef.current?.openChat(),\n closeChat: () => wrapperRef.current?.closeChat(),\n toggleChat: () => wrapperRef.current?.toggleChat(),\n destroy: () => {\n wrapperRef.current = null;\n root.unmount();\n }\n };\n}\n\nexport default qaBot;\n\n"],"names":["styleInject","css","ref","insertAt","document","head","getElementsByTagName","style","createElement","type","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode","_","AUDIO_BUTTON","NOTIFICATION_BUTTON","CLOSE_CHAT_BUTTON","SEND_MESSAGE_BUTTON","VOICE_MESSAGE_BUTTON","FILE_ATTACHMENT_BUTTON","EMOJI_PICKER_BUTTON","Ae","ee","cA","A","e","J","viewBox","d","fill","fillRule","te","Le","Re","Ue","xmlns","strokeLinecap","strokeWidth","ze","Ye","We","oe","qe","Ze","re","general","primaryColor","secondaryColor","fontFamily","showHeader","showFooter","showInputRow","actionDisabledIcon","embedded","flowStartTrigger","tooltip","mode","text","chatButton","icon","header","title","l","cursor","margin","fontSize","fontWeight","onClick","window","open","children","showAvatar","avatar","buttons","closeChatIcon","notification","disabled","defaultToggledOn","volume","iconDisabled","sound","showCount","audio","language","voiceNames","rate","chatHistory","maxEntries","storageKey","storageType","viewChatHistoryButtonText","chatHistoryLineBreakText","autoLoad","chatInput","allowNewline","enabledPlaceholderText","disabledPlaceholderText","showCharacterCount","characterLimit","botDelay","sendButtonIcon","blockSpam","sendOptionOutput","sendCheckboxOutput","chatWindow","showScrollbar","showTypingIndicator","autoJumpToBottom","showMessagePrompt","messagePromptText","messagePromptOffset","defaultOpen","sensitiveInput","maskInTextArea","maskInUserBubble","asterisksCount","hideInUserBubble","userBubble","animate","simulateStream","streamSpeed","botBubble","voice","timeoutPeriod","autoSendDisabled","autoSendPeriod","sendAsAudio","footer","W","display","flexDirection","alignItems","columnGap","borderRadius","width","height","justifyContent","background","fileAttachment","multiple","accept","sendFileName","showMediaDisplay","emoji","list","toast","maxCount","forbidOnMax","dismissOnClick","event","rcbPreInjectMessage","rcbPostInjectMessage","rcbStartSimulateStreamMessage","rcbStopSimulateStreamMessage","rcbStartStreamMessage","rcbChunkStreamMessage","rcbStopStreamMessage","rcbRemoveMessage","rcbSaveChatHistory","rcbLoadChatHistory","rcbToggleChatWindow","rcbStartSpeakAudio","rcbToggleAudio","rcbToggleNotifications","rcbToggleVoice","rcbChangePath","rcbShowToast","rcbDismissToast","rcbUserSubmitText","rcbUserUploadFile","rcbTextAreaChangeValue","rcbPreLoadChatBot","rcbPostLoadChatBot","rcbPreProcessBlock","rcbPostProcessBlock","ariaLabel","audioButton","closeChatButton","emojiButton","fileAttachmentButton","notificationButton","sendButton","voiceButton","inputTextArea","device","desktopEnabled","mobileEnabled","applyMobileOptimizations","ae","vA","settings","setSyncedSettings","syncedSettingsRef","current","R","hA","$e","o","t","Provider","value","ce","tooltipStyle","notificationBadgeStyle","chatWindowStyle","headerStyle","bodyStyle","chatInputContainerStyle","chatInputAreaStyle","chatInputAreaFocusedStyle","chatInputAreaDisabledStyle","userBubbleStyle","botBubbleStyle","botOptionStyle","botOptionHoveredStyle","botCheckboxRowStyle","botCheckboxNextStyle","botCheckMarkStyle","botCheckMarkSelectedStyle","characterLimitStyle","characterLimitReachedStyle","chatHistoryLineBreakStyle","chatMessagePromptStyle","chatMessagePromptHoveredStyle","footerStyle","loadingSpinnerStyle","mediaDisplayContainerStyle","chatButtonStyle","chatButtonHoveredStyle","chatHistoryButtonStyle","chatHistoryButtonHoveredStyle","sendButtonStyle","sendButtonHoveredStyle","sendButtonDisabledStyle","audioButtonStyle","audioButtonDisabledStyle","closeChatButtonStyle","emojiButtonStyle","emojiButtonDisabledStyle","fileAttachmentButtonStyle","fileAttachmentButtonDisabledStyle","notificationButtonStyle","notificationButtonDisabledStyle","voiceButtonStyle","voiceButtonDisabledStyle","chatIconStyle","audioIconStyle","audioIconDisabledStyle","closeChatIconStyle","emojiIconStyle","emojiIconDisabledStyle","fileAttachmentIconStyle","fileAttachmentIconDisabledStyle","notificationIconStyle","notificationIconDisabledStyle","voiceIconStyle","voiceIconDisabledStyle","sendIconStyle","sendIconDisabledStyle","sendIconHoveredStyle","rcbTypingIndicatorContainerStyle","rcbTypingIndicatorDotStyle","toastPromptContainerStyle","toastPromptStyle","toastPromptHoveredStyle","ie","styles","setSyncedStyles","syncedStylesRef","X","At","et","n","s","a","r","c","i","u","backgroundImage","className","GA","map","w","YA","le","$","tt","botIdRef","flowRef","eA","Map","inputRef","timeoutIdRef","streamMessageMap","chatBodyRef","paramsInputRef","keepVoiceOnRef","audioContextRef","audioBufferRef","gainNodeRef","prevInputRef","nA","G","ue","tA","ot","rA","lA","PA","DA","QA","_A","f","g","B","E","Q","y","v","h","P","D","S","I","L","N","T","C","m","b","M","O","p","k","K","j","F","V","U","z","Y","visualViewport","innerHeight","AA","q","innerWidth","isBotTyping","setSyncedIsBotTyping","syncedIsBotTypingRef","isChatWindowOpen","setSyncedIsChatWindowOpen","syncedIsChatWindowOpenRef","audioToggledOn","setSyncedAudioToggledOn","syncedAudioToggledOnRef","voiceToggledOn","setSyncedVoiceToggledOn","syncedVoiceToggledOnRef","notificationsToggledOn","setSyncedNotificationsToggledOn","syncedNotificationsToggledOnRef","isLoadingChatHistory","setIsLoadingChatHistory","hasChatHistoryLoaded","setHasChatHistoryLoaded","isScrolling","setSyncedIsScrolling","syncedIsScrollingRef","textAreaDisabled","setSyncedTextAreaDisabled","syncedTextAreaDisabledRef","textAreaSensitiveMode","setSyncedTextAreaSensitiveMode","syncedTextAreaSensitiveModeRef","hasInteractedPage","setHasInteractedPage","hasFlowStarted","setHasFlowStarted","unreadCount","setUnreadCount","inputLength","setInputLength","blockAllowsAttachment","setBlockAllowsAttachment","viewportHeight","setViewportHeight","viewportWidth","setViewportWidth","H","START_SPEAK_AUDIO","TOGGLE_AUDIO","TOGGLE_NOTIFICATIONS","TOGGLE_VOICE","TOGGLE_CHAT_WINDOW","PRE_INJECT_MESSAGE","POST_INJECT_MESSAGE","START_SIMULATE_STREAM_MESSAGE","STOP_SIMULATE_STREAM_MESSAGE","START_STREAM_MESSAGE","CHUNK_STREAM_MESSAGE","STOP_STREAM_MESSAGE","REMOVE_MESSAGE","SAVE_CHAT_HISTORY","LOAD_CHAT_HISTORY","CHANGE_PATH","SHOW_TOAST","DISMISS_TOAST","USER_SUBMIT_TEXT","USER_UPLOAD_FILE","TEXT_AREA_CHANGE_VALUE","PRE_LOAD_CHATBOT","POST_LOAD_CHATBOT","PRE_PROCESS_BLOCK","POST_PROCESS_BLOCK","nt","UA","async","CustomEvent","detail","cancelable","data","promises","dispatchEvent","Promise","all","fe","paths","setSyncedPaths","syncedPathsRef","pA","st","iA","x","length","at","dispatchRcbEvent","botId","currPath","prevPath","sA","getBoundingClientRect","documentElement","clientHeight","clientWidth","top","left","bottom","right","currState","newState","defaultPrevented","scrollHeight","scrollTop","requestAnimationFrame","toggleChatWindow","toggleIsBotTyping","scrollToBottom","getIsChatBotVisible","rt","color","borderColor","onMouseEnter","onMouseLeave","onMouseDown","preventDefault","de","messages","setSyncedMessages","syncedMessagesRef","XA","ct","message","isNewSender","content","contentWrapper","backgroundColor","maxWidth","oA","it","lt","ut","scrollbarWidth","Z","sender","toUpperCase","ft","checkboxes","checkedItems","path","handleSubmitText","mA","Set","size","min","reusable","items","has","delete","max","add","Array","from","join","sendOutput","dt","isArray","injectMessage","wt","function","gt","trim","simulateStreamMessage","Bt","options","vt","Pt","component","Dt","transition","duration","interruptable","setTimeout","ge","Et","chatDisabled","we","isSensitive","Error","Object","keys","includes","goToPath","ht","Ct","mt","borderTop","MA","crypto","randomUUID","getRandomValues","replace","Uint8Array","toString","console","error","gA","id","timestamp","Date","toUTCString","tags","wA","Be","kA","IA","ve","HA","bA","jA","he","setItem","JSON","stringify","zA","sessionStorage","localStorage","parse","bt","getItem","St","structuredClone","Te","renderToString","Pe","DOMParser","parseFromString","body","childNodes","nodeType","Node","TEXT_NODE","textContent","tagName","toLowerCase","attributes","reduce","name","split","filter","forEach","prototype","hasOwnProperty","call","classList","class","Tt","Mt","kt","Ht","xt","$A","key","innerHTML","contains","WA","AudioContext","createGain","gain","startsWith","atob","ArrayBuffer","charCodeAt","fetch","arrayBuffer","decodeAudioData","createBufferSource","buffer","connect","destination","start","toggleNotifications","playNotificationSound","setUpNotifications","Lt","SpeechSynthesisUtterance","info","lang","speechSynthesis","getVoices","find","speak","Ot","KA","textToRead","speakAudio","toggleAudio","EA","unshift","slice","Qt","simulateStreamChunker","setInterval","clearInterval","Math","set","get","push","removeMessage","streamMessage","endStreamMessage","replaceMessages","getMessages","NA","uA","TA","BA","aA","VA","SpeechRecognition","webkitSpeechRecognition","Rt","onresult","clearTimeout","results","transcript","RA","onend","Ft","navigator","mediaDevices","getUserMedia","then","MediaRecorder","ondataavailable","onstop","getTracks","stop","catch","qA","state","xA","Ut","toggleVoice","syncVoice","yA","currValue","prevValue","focus","blur","getTextAreaValue","setTextAreaValue","updateTextAreaFocus","focusTextArea","blurTextArea","toggleTextAreaDisabled","toggleTextAreaSensitiveMode","De","toasts","setSyncedToasts","syncedToastsRef","Ee","jt","CA","timeout","showToast","dismissToast","replaceToasts","SA","block","userInput","yt","file","clear","nextPath","getCurrPath","getPrevPath","replacePaths","firePostProcessBlockEvent","repeat","inputText","sendInChat","OA","dA","userAgent","test","zt","boxSizing","outline","boxShadow","caretColor","shiftKey","target","role","stopPropagation","placeholder","onChange","onKeyDown","onFocus","onBlur","onCompositionStart","onCompositionEnd","rows","Gt","Yt","transform","Xt","offsetWidth","Wt","Kt","minWidth","ye","fileType","fileUrl","src","alt","controls","Ce","FileReader","onload","result","onerror","readAsDataURL","Vt","files","qt","composedPath","offsetHeight","addEventListener","removeEventListener","setSelectionRange","Jt","Zt","stroke","$t","_t","Ao","Nt","Blob","File","eo","oo","values","to","uo","headerButtons","chatInputButtons","footerButtons","JA","removeItem","It","showChatHistory","fo","tabIndex","wo","handleFirstInteraction","me","passive","virtualKeyboard","overlaysContent","boundingRect","scrollTo","behavior","scrollY","position","go","Bo","Qe","ne","version","baseUrl","cacheDuration","ok","json","Po","inlineStyles","cssStylesText","getTime","floor","cacheDate","vo","se","ho","RegExp","yo","LA","fA","source","pop","WeakMap","be","replaceSettings","updateSettings","pe","replaceStyles","updateStyles","mo","plugins","slots","Co","zIndex","chatBotHeader","chatBotBody","chatBotInput","chatBotFooter","Se","Ie","Qo","loadConfig","bo","flow","themes","setConfigLoaded","styleRootRef","FA","po","show_options","prompt_again","unknown_input","process_options","Oo","Io","getBotId","So","Fo","restartFlow","getFlow","To","Uo","jo","Go","Xo","Vo","getHistoryMessages","setHistoryMessages","self","address","invalid","br","void","button","caption","parent","col","colgroup","details","dd","dl","figcaption","hr","img","li","main","ol","picture","rb","rp","rtc","ruby","summary","table","tbody","td","tfoot","th","thead","tr","track","ul","video","wbr","freeze","cite","colspan","datetime","default","dir","href","kind","label","loading","loop","media","muted","poster","rel","rowspan","scope","sizes","span","srclang","srcset","tabindex","assign","arguments","apply","this","selfClose","attribute","node","__esModule","exec","index","substring","defineProperty","enumerable","configurable","writable","String","match","implementation","createHTMLDocument","K$1","constructor","process","env","NODE_ENV","TypeError","props","matchers","filters","keyIndex","container","createContainer","allowed","allowList","banned","blocked","blockList","applyAttributeFilters","applyNodeFilters","applyMatchers","asTag","getTagConfig","inverseName","isTagAllowed","canRenderChild","valid","propName","matcher","greedy","replaceTokens","convertLineBreaks","noHtml","disableLineBreaks","global","INTERWEAVE_SSR_POLYFILL","containerTagName","escapeHtml","extractAttributes","allowAttributes","isSafe","extractStyleAttribute","Number","parseFloat","HTMLAnchorElement","getAttribute","protocol","allowElements","parseNode","nodeName","noHtmlExceptMatchers","transformOnlyAllowList","cloneElement","emptyContent","parsedContent","noWrap","Fragment","disableFilters","disableMatchers","onAfterParse","onBeforeParse","bind","whiteSpace","autoConfig","renderHtml","Ne","htmlComponent","Er","Ir","Ar","Hn","jsx","Tr","Un","property","normal","space","hn","boolean","booleanish","overloadedBoolean","number","commaSeparated","spaceSeparated","commaOrSpaceSeparated","mustUseProperty","defined","zr","mn","__proto__","Symbol","toStringTag","Sn","super","Vn","Lr","properties","xLinkActuate","xLinkArcRole","xLinkHref","xLinkRole","xLinkShow","xLinkTitle","xLinkType","xmlLang","xmlBase","xmlSpace","xmlnsxlink","xmlnsXLink","ariaActiveDescendant","ariaAtomic","ariaAutoComplete","ariaBusy","ariaChecked","ariaColCount","ariaColIndex","ariaColSpan","ariaControls","ariaCurrent","ariaDescribedBy","ariaDetails","ariaDisabled","ariaDropEffect","ariaErrorMessage","ariaExpanded","ariaFlowTo","ariaGrabbed","ariaHasPopup","ariaHidden","ariaInvalid","ariaKeyShortcuts","ariaLabelledBy","ariaLevel","ariaLive","ariaModal","ariaMultiLine","ariaMultiSelectable","ariaOrientation","ariaOwns","ariaPlaceholder","ariaPosInSet","ariaPressed","ariaReadOnly","ariaRelevant","ariaRequired","ariaRoleDescription","ariaRowCount","ariaRowIndex","ariaRowSpan","ariaSelected","ariaSetSize","ariaSort","ariaValueMax","ariaValueMin","ariaValueNow","ariaValueText","vr","acceptcharset","classname","htmlfor","httpequiv","abbr","acceptCharset","accessKey","action","allow","allowFullScreen","allowPaymentRequest","allowUserMedia","as","autoCapitalize","autoComplete","autoFocus","autoPlay","blocking","capture","charSet","checked","cols","colSpan","contentEditable","controlsList","coords","crossOrigin","dateTime","decoding","defer","dirName","download","draggable","encType","enterKeyHint","fetchPriority","form","formAction","formEncType","formMethod","formNoValidate","formTarget","headers","hidden","high","hrefLang","htmlFor","httpEquiv","imageSizes","imageSrcSet","inert","inputMode","integrity","is","isMap","itemId","itemProp","itemRef","itemScope","itemType","low","manifest","maxLength","method","minLength","nonce","noModule","noValidate","onAbort","onAfterPrint","onAuxClick","onBeforeMatch","onBeforePrint","onBeforeToggle","onBeforeUnload","onCancel","onCanPlay","onCanPlayThrough","onClose","onContextLost","onContextMenu","onContextRestored","onCopy","onCueChange","onCut","onDblClick","onDrag","onDragEnd","onDragEnter","onDragExit","onDragLeave","onDragOver","onDragStart","onDrop","onDurationChange","onEmptied","onEnded","onError","onFormData","onHashChange","onInput","onInvalid","onKeyPress","onKeyUp","onLanguageChange","onLoad","onLoadedData","onLoadedMetadata","onLoadEnd","onLoadStart","onMessage","onMessageError","onMouseMove","onMouseOut","onMouseOver","onMouseUp","onOffline","onOnline","onPageHide","onPageShow","onPaste","onPause","onPlay","onPlaying","onPopState","onProgress","onRateChange","onRejectionHandled","onReset","onResize","onScroll","onScrollEnd","onSecurityPolicyViolation","onSeeked","onSeeking","onSelect","onSlotChange","onStalled","onStorage","onSubmit","onSuspend","onTimeUpdate","onToggle","onUnhandledRejection","onUnload","onVolumeChange","onWaiting","onWheel","optimum","pattern","ping","playsInline","popover","popoverTarget","popoverTargetAction","preload","readOnly","referrerPolicy","required","reversed","rowSpan","sandbox","scoped","seamless","selected","shadowRootClonable","shadowRootDelegatesFocus","shadowRootMode","shape","slot","spellCheck","srcDoc","srcLang","srcSet","step","translate","typeMustMatch","useMap","wrap","writingSuggestions","align","aLink","archive","axis","bgColor","border","bottomMargin","cellPadding","cellSpacing","char","charOff","classId","code","codeBase","codeType","compact","declare","face","frame","frameBorder","hSpace","leftMargin","link","longDesc","lowSrc","marginHeight","marginWidth","noResize","noHref","noShade","object","profile","prompt","rev","rightMargin","rules","scheme","scrolling","standby","topMargin","valueType","vAlign","vLink","vSpace","allowTransparency","autoCorrect","autoSave","disablePictureInPicture","disableRemotePlayback","prefix","security","unselectable","Dr","accentHeight","alignmentBaseline","arabicForm","baselineShift","capHeight","clipPath","clipRule","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","dataType","dominantBaseline","enableBackground","fillOpacity","floodColor","floodOpacity","fontSizeAdjust","fontStretch","fontStyle","fontVariant","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","horizAdvX","horizOriginX","horizOriginY","imageRendering","letterSpacing","lightingColor","markerEnd","markerMid","markerStart","navDown","navDownLeft","navDownRight","navLeft","navNext","navPrev","navRight","navUp","navUpLeft","navUpRight","onActivate","onBegin","onEnd","onFocusIn","onFocusOut","onMouseWheel","onRepeat","onShow","onZoom","overlinePosition","overlineThickness","paintOrder","panose1","pointerEvents","renderingIntent","shapeRendering","stopColor","stopOpacity","strikethroughPosition","strikethroughThickness","strokeDashArray","strokeDashOffset","strokeLineCap","strokeLineJoin","strokeMiterLimit","strokeOpacity","textAnchor","textDecoration","textRendering","transformOrigin","typeOf","underlinePosition","underlineThickness","unicodeBidi","unicodeRange","unitsPerEm","vAlphabetic","vHanging","vIdeographic","vMathematical","vectorEffect","vertAdvY","vertOriginX","vertOriginY","wordSpacing","writingMode","xHeight","playbackOrder","timelineBegin","about","accumulate","additive","alphabetic","amplitude","ascent","attributeName","attributeType","azimuth","bandwidth","baseFrequency","baseProfile","bbox","begin","bias","by","calcMode","clip","clipPathUnits","contentScriptType","contentStyleType","cx","cy","defaultAction","descent","diffuseConstant","direction","dur","divisor","dx","dy","edgeMode","editable","elevation","end","exponent","externalResourcesRequired","filterRes","filterUnits","focusable","focusHighlight","format","fr","fx","fy","g1","g2","glyphRef","gradientTransform","gradientUnits","handler","hanging","hatchContentUnits","hatchUnits","ideographic","initialVisibility","in","in2","intercept","k1","k2","k3","k4","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","kerning","lengthAdjust","limitingConeAngle","local","markerHeight","markerUnits","markerWidth","mask","maskContentUnits","maskUnits","mathematical","mediaCharacterEncoding","mediaContentEncodings","mediaSize","mediaTime","numOctaves","observer","offset","opacity","operator","order","orient","orientation","origin","overflow","overlay","pathLength","patternContentUnits","patternTransform","patternUnits","phase","pitch","points","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","propagate","radius","refX","refY","repeatCount","repeatDur","requiredExtensions","requiredFeatures","requiredFonts","requiredFormats","resource","restart","rotate","rx","ry","scale","seed","side","slope","snapshotTime","specularConstant","specularExponent","spreadMethod","spacing","startOffset","stdDeviation","stemh","stemv","stitchTiles","string","surfaceScale","syncBehavior","syncBehaviorDefault","syncMaster","syncTolerance","syncToleranceDefault","systemLanguage","tableValues","targetX","targetY","textLength","transformBehavior","u1","u2","unicode","viewTarget","visibility","widths","x1","x2","xChannelSelector","y1","y2","yChannelSelector","zoomAndPan","Or","qn","Rr","Nr","Mr","charAt","_r","Br","Cn","en","$n","Wn","Vr","__importDefault","lastIndexOf","line","column","reason","filename","silent","comment","Hr","Ur","Yn","qr","En","Fe","Qn","dn","Xn","place","ancestors","cause","ruleId","indexOf","fatal","stack","actual","expected","note","url","In","Wr","Yr","Qr","Xr","Kr","Gr","filePath","development","jsxDEV","columnNumber","fileName","lineNumber","jsxs","ii","components","create","elementAttributeNameCase","evaluater","createEvaluater","ignoreInvalidStyle","passKeys","passNode","schema","stylePropertyNameCase","tableCellAlignToStyle","ui","oi","Tn","Pr","An","Jr","estree","evaluateExpression","expression","_e","Zr","argument","ai","ni","evaluateProgram","ei","ti","ri","Fr","isNaN","padRight","padLeft","Cr","jr","fi","si","pi","ci","computed","optional","hi","nn","mi","gi","Kn","Gn","Pn","splice","Jn","yi","xi","ki","parseInt","fromCodePoint","bi","gn","yn","wi","Si","Ci","Ei","fromCharCode","encodeURIComponent","POSITIVE_INFINITY","enter","consume","exit","Ii","tokenize","attempt","parser","constructs","contentInitial","contentType","previous","next","Ti","containerState","continuation","_closeFlow","events","currentConstruct","concrete","interrupt","_gfmTableDynamicInterruptHack","check","Zn","lazy","now","_tokenizer","sliceStream","defineSkip","write","disable","null","zn","resolveAll","xn","_close","_open","sliceSerialize","insideSpan","attentionMarkers","_bufferIndex","Di","Ke","partial","_container","tn","Ui","$i","resolve","Xi","RangeError","shift","setCursor","reverse","concat","trunc","Oe","pushMany","unshiftMany","_isInFirstContentOfListItem","Ki","_gfmTasklistFirstContentOfListItem","Gi","Ji","tl","rl","pl","fl","resolveTo","xe","hl","ml","kl","Ln","_inactive","_balanced","wl","Sl","Cl","Ll","Dl","rn","furtherBlankLines","initialBlankLine","Ml","marker","Nl","$l","flowInitial","Yl","Ql","Xl","Kl","_index","Gl","Jl","Zl","no","ro","ao","so","restore","transforms","canContainEols","autolink","Bn","autolinkProtocol","autolinkEmail","atxHeading","Nn","blockQuote","characterEscape","characterReference","codeFenced","He","codeFencedFenceInfo","codeFencedFenceMeta","codeIndented","codeText","ar","codeTextData","codeFlowValue","definition","ur","definitionDestinationString","definitionLabelString","definitionTitleString","emphasis","sr","hardBreakEscape","Mn","hardBreakTrailing","htmlFlow","_n","htmlFlowData","htmlText","htmlTextData","image","cr","listItem","pr","listItemValue","listOrdered","jn","listUnordered","paragraph","reference","referenceString","resourceDestinationString","resourceTitleString","setextHeading","strong","thematicBreak","dr","atxHeadingSequence","characterEscapeValue","characterReferenceMarkerHexadecimal","characterReferenceMarkerNumeric","characterReferenceValue","codeFencedFence","labelText","lineEnding","setextHeadingLineSequence","setextHeadingText","mdastExtensions","tokenStack","config","resume","ke","_spread","includeImageAlt","includeHtml","di","expectingFirstListItemValue","meta","flowCodeInside","identifier","depth","setextHeadingSlurpLineEnding","codePointAt","mr","atHardBreak","inReference","referenceType","characterReferenceType","ordered","spread","xo","extensions","co","TextDecoder","decode","lastIndex","ceil","ko","Wo","blockquote","patch","applyData","break","footnoteReference","clobberPrefix","footnoteOrder","footnoteCounts","dataFootnoteRef","heading","html","allowDangerousHtml","imageReference","definitionById","inlineCode","linkReference","root","tableCell","tableRow","toml","yaml","footnoteDefinition","pt","globalThis","flags","BigInt","DataView","Yo","lossy","valueOf","toJSON","toISOString","Ko","Xe","Jo","rr","ra","Je","ea","na","ta","ia","ir","la","aa","ua","lr","kn","sa","ca","handlers","one","fa","footnoteById","passThrough","unknownHandler","ha","pa","ma","$r","hName","hChildren","hProperties","footnoteBackContent","footnoteBackLabel","footnoteLabel","footnoteLabelTagName","footnoteLabelProperties","dataFootnoteBackref","dataFootnotes","Zo","da","run","ln","ya","getOwnPropertyDescriptor","newValue","ga","on","bn","getPrototypeOf","iterator","xa","ka","use","basename","je","dirname","extname","Ia","Ea","sep","Aa","cwd","wn","auth","Pa","URL","hostname","pathname","decodeURIComponent","za","an","or","history","stored","sn","un","stem","fail","va","setPrototypeOf","Da","Fn","Compiler","Parser","attachers","compiler","freezeIndex","frozen","namespace","transformers","copy","fn","cn","pn","Na","processSync","runSync","Oa","Ra","_a","Ba","ja","allowedElements","allowElement","disallowedElements","rehypePlugins","remarkPlugins","remarkRehypeOptions","skipHtml","unwrapDisallowed","urlTransform","Ha","hasOwn","Sr","wr","Ua","marginBottom","lineHeight","textAlign","paddingLeft","listStylePosition","inline","padding","overflowX","borderLeft","Va","Xa","yr","xr","kr","markdownComponent","gr","renderMarkdown","qa","Ve","$a","promptBaseColors","warning","success","promptHoveredColors","textAreaHighlightColors","promptContent","promptType","advancedStyles","highlightTextArea","promptDuration","log","BotController","forwardRef","_ref","currentOpen","enabled","onSetEnabled","useMessages","useChatWindow","lastOpenRef","useRef","fromEventRef","useEffect","markAsUserInteraction","useImperativeHandle","addMessage","openChat","closeChat","toggleChat","setBotEnabled","displayName","AnalyticsContext","createContext","AnalyticsProvider","trackEvent","trackEventRef","React","useAnalytics","context","useContext","LoginButton","loginUrl","isHeaderButton","finalStyle","handleClick","UserIcon","marginRight","strokeLinejoin","byteToHex","rnds8","native","v4","buf","rnds","random","rng","arr","unsafeStringify","isDebugEnabled","logger","_len","args","_key","_len2","_key2","warn","SESSION_MESSAGES_KEY","generateSessionId","uuidv4","getSessionMessagesStore","addMessageToSession","sessionId","messageId","messageContent","store","startedAt","preview","some","storedMessage","totalInSession","botAnswer","firstUserMessage","getTotalMessages","sum","session","oldestSessionId","entries","sort","_ref2","saveSessionMessagesStore","ourSessions","ourTotalMessages","getSessionMessageCount","_b","computeSessionDurationMs","SessionContext","undefined","SessionProvider","getSessionId","setSessionId","resetSession","clearResettingFlag","useSession","HistoryButton","isOpen","setIsOpen","useState","sessions","setSessions","menuWidth","setMenuWidth","menuRight","setMenuRight","menuRef","buttonRef","useTextArea","handleClickOutside","rootNode","getRootNode","handleSelectSession","currentSessionId","targetSession","currentSession","storedMessages","getSessionMessages","count","ids","rcbMessages","newSession","chatBody","querySelector","querySelectorAll","bubble","changed","getAllSessions","_ref3","closest","chatRect","buttonRect","marginTop","borderBottom","maxHeight","overflowY","gap","currentTarget","textOverflow","dateString","date","diffMs","diffDays","toLocaleTimeString","hour","minute","toLocaleDateString","weekday","month","day","formatDate","BaseIcon","_extends","RefreshIcon","NewChatButton","useFlow","previousMessageCount","extractTextFromJsx","element","SessionMessageTracker","handlePreInjectMessage","useCallback","useKeyboardNavigation","handleKeyboardNavigation","activeElement","allMessages","el","offsetParent","checkboxContainer","nextButton","allElements","handleCheckboxNavigation","elements","currentIndex","newIndex","currentElement","mouseDownEvent","MouseEvent","bubbles","view","setAttribute","remove","lastMessage","optionsContainers","lastContainer","findIndex","option","nextIndex","opt","prevIndex","labelElement","selectedText","checkboxMark","isChecked","announceToScreenReader","innerText","announcement","removeChild","handleNewOptions","targetContainer","isEmbeddedBot","checkboxElements","hint","hintElement","setOptionsAccessibility","hasAttribute","checkbox","MutationObserver","mutations","mutation","addedNodes","hasNewOptions","ELEMENT_NODE","hasNewCheckboxes","botContainer","parentElement","scopeElement","observe","childList","subtree","periodicCheck","hasVisibleOptions","hasVisibleCheckboxes","lastProcessedOptions","lastProcessedCheckboxes","disconnect","defaultValues","fixedReactChatbotifySettings","QABot","apiKey","qaEndpoint","ratingEndpoint","welcomeMessage","onOpenChange","isLoggedIn","allowAnonAccess","actingUser","botName","logo","errorMessage","footerText","footerLink","tooltipText","customFlow","onAnalyticsEvent","instanceIdRef","substr","sessionIdRef","isResettingRef","sessionGetter","isResetting","internalIsLoggedIn","setInternalIsLoggedIn","isEmbeddedMode","pageUrl","location","isEmbedded","useMemo","base","Button","footerTextElement","containerRef","themeColors","themeConfig","getCSSVariable","fallback","containerValue","getComputedStyle","getPropertyValue","parentValue","useThemeColors","useUpdateHeader","setProperty","useChatBotSettings","qaFlow","endpoint","qa_loop","feedbackQueryId","hasShownResponse","chatState","isPositive","credentials","queryId","rating","questionLength","requestBody","query","session_id","question_id","requestStartTime","response","responseTimeMs","status","answer","processedText","cleanUrl","trailingPunctuation","trailingPunctuationMatch","getProcessedText","metadataText","confidence","tools_used","metadata","parts","agent","buildMetadataText","fullContent","responseLength","hasMetadata","errorType","createQAFlow","startStep","MarkdownRenderer","makeSendButtonAccessible","reactPropsKey","reactProps","interval","handleLinkClick","anchor","linkUrl","linkText","_c","handleChatWindowToggle","newOpenState","messageCount","durationMs","oldSessionId","ChatBotProvider","ChatBot","useScreenshotCapture","isCapturing","setIsCapturing","checkScreenCaptureAvailable","getDisplayMedia","captureScreenshot","stream","displaySurface","ideal","srcObject","onloadedmetadata","play","canvas","videoWidth","videoHeight","ctx","getContext","drawImage","blob","toBlob","isScreenCaptureAvailable","UploadIcon","fileToBase64","reject","reader","base64String","fileData","filesToBase64","validateFileSize","maxBytes","formatFileSize","bytes","toFixed","FileUploadComponent","onFileUpload","maxSizeMB","acceptedTypes","enableScreenshot","dragActive","setDragActive","selectedFiles","setSelectedFiles","previewFile","setPreviewFile","fileInputRef","handleFiles","newFileArray","updatedFiles","fileCount","fileNames","chatContent","handleDrag","handleButtonClick","click","closePreview","showScreenshotButton","handleScreenshotCapture","dataTransfer","flexWrap","alignSelf","handleFilePreview","indexToRemove","newFiles","idx","handleRemoveFile","userSelect","renderFilePreview","isImage","isText","isPDF","createObjectURL","wordWrap","applyFlowSettings","processed","stepName","processedStep","disableOnOptions","hasOptions","withHistory","params","withHistoryFn","messageFn","ProgrammaticQABot","qaRef","prev","qaBot","HTMLElement","ReactDOM","createRoot","wrapperRef","render","StrictMode","destroy","unmount"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,9,10,11,12]}