@genexus/genexus-ide-ui 1.0.40 → 1.0.42
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/MERCURY_ASSETS-27fcab57.js +9 -0
- package/dist/cjs/MERCURY_ASSETS-27fcab57.js.map +1 -0
- package/dist/cjs/gx-ide-ai-message.cjs.entry.js +2 -6
- package/dist/cjs/gx-ide-ai-message.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-current-user-info.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-current-user-info.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-dashboard-home.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-data-selector.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-data-type-selector.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-design-import.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-entity-selector.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-manage-module-references-v2.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-new-kb.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-object-selector.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-share-kb.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-start-page.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-welcome-page.cjs.entry.js +1 -1
- package/dist/collection/components/ai-assistant/ai-message.js +1 -5
- package/dist/collection/components/ai-assistant/ai-message.js.map +1 -1
- package/dist/collection/components/current-user-info/current-user-info.js +1 -1
- package/dist/collection/components/current-user-info/current-user-info.js.map +1 -1
- package/dist/components/MERCURY_ASSETS.js +1 -1
- package/dist/components/MERCURY_ASSETS.js.map +1 -1
- package/dist/components/ai-message.js +1 -5
- package/dist/components/ai-message.js.map +1 -1
- package/dist/components/gx-ide-current-user-info.js +1 -1
- package/dist/components/gx-ide-current-user-info.js.map +1 -1
- package/dist/esm/MERCURY_ASSETS-845caae6.js +7 -0
- package/dist/esm/MERCURY_ASSETS-845caae6.js.map +1 -0
- package/dist/esm/gx-ide-ai-message.entry.js +2 -6
- package/dist/esm/gx-ide-ai-message.entry.js.map +1 -1
- package/dist/esm/gx-ide-create-kb-from-server.entry.js +1 -1
- package/dist/esm/gx-ide-current-user-info.entry.js +2 -2
- package/dist/esm/gx-ide-current-user-info.entry.js.map +1 -1
- package/dist/esm/gx-ide-dashboard-home.entry.js +1 -1
- package/dist/esm/gx-ide-data-selector.entry.js +1 -1
- package/dist/esm/gx-ide-data-type-selector.entry.js +1 -1
- package/dist/esm/gx-ide-design-import.entry.js +1 -1
- package/dist/esm/gx-ide-entity-selector.entry.js +1 -1
- package/dist/esm/gx-ide-kb-manager-export.entry.js +1 -1
- package/dist/esm/gx-ide-kb-manager-import.entry.js +1 -1
- package/dist/esm/gx-ide-manage-module-references-v2.entry.js +1 -1
- package/dist/esm/gx-ide-manage-module-references.entry.js +1 -1
- package/dist/esm/gx-ide-new-kb.entry.js +1 -1
- package/dist/esm/gx-ide-object-selector.entry.js +1 -1
- package/dist/esm/gx-ide-share-kb.entry.js +1 -1
- package/dist/esm/gx-ide-start-page.entry.js +1 -1
- package/dist/esm/gx-ide-welcome-page.entry.js +1 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
- package/dist/genexus-ide-ui/{p-bf1682ff.entry.js → p-04d7f44c.entry.js} +20 -20
- package/dist/genexus-ide-ui/{p-a8e43d8e.entry.js → p-0f08bb20.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-88e16a83.entry.js → p-2137f5fa.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-05775d0c.entry.js → p-47e31aba.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-a3a43593.entry.js → p-48cc3f73.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-b81d21d5.js → p-617e65ca.js} +1486 -604
- package/dist/genexus-ide-ui/p-617e65ca.js.map +1 -0
- package/dist/genexus-ide-ui/{p-993819d4.entry.js → p-6563141c.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-6e993843.entry.js → p-6747cc1e.entry.js} +6 -10
- package/dist/genexus-ide-ui/p-6747cc1e.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-de6112f9.entry.js → p-75ed87db.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-5fc133b2.entry.js → p-877cd71e.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-0f196406.entry.js → p-8ea94a5e.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-cadec045.entry.js → p-a9d67992.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-c2ec8185.entry.js → p-b12a5426.entry.js} +7 -7
- package/dist/genexus-ide-ui/{p-c2ec8185.entry.js.map → p-b12a5426.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-7cde7e4f.entry.js → p-c0e184da.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-764540b3.entry.js → p-c7e6222b.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-bd5316a2.entry.js → p-d2ab4f70.entry.js} +11 -11
- package/dist/genexus-ide-ui/{p-f36f9a6d.entry.js → p-d32a6ca4.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-7ba9fb6d.entry.js → p-f50076d3.entry.js} +2 -2
- package/package.json +3 -3
- package/dist/cjs/MERCURY_ASSETS-b23e31e2.js +0 -9
- package/dist/cjs/MERCURY_ASSETS-b23e31e2.js.map +0 -1
- package/dist/esm/MERCURY_ASSETS-7a7c1795.js +0 -7
- package/dist/esm/MERCURY_ASSETS-7a7c1795.js.map +0 -1
- package/dist/genexus-ide-ui/p-6e993843.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-b81d21d5.js.map +0 -1
- /package/dist/genexus-ide-ui/{p-bf1682ff.entry.js.map → p-04d7f44c.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-a8e43d8e.entry.js.map → p-0f08bb20.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-88e16a83.entry.js.map → p-2137f5fa.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-05775d0c.entry.js.map → p-47e31aba.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-a3a43593.entry.js.map → p-48cc3f73.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-993819d4.entry.js.map → p-6563141c.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-de6112f9.entry.js.map → p-75ed87db.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-5fc133b2.entry.js.map → p-877cd71e.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-0f196406.entry.js.map → p-8ea94a5e.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-cadec045.entry.js.map → p-a9d67992.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-7cde7e4f.entry.js.map → p-c0e184da.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-764540b3.entry.js.map → p-c7e6222b.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-bd5316a2.entry.js.map → p-d2ab4f70.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-f36f9a6d.entry.js.map → p-d32a6ca4.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-7ba9fb6d.entry.js.map → p-f50076d3.entry.js.map} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["aiMessageCss","COPY_ICON","getIconPath","category","name","colorType","GxIdeAiMessage","this","copyable","copyMessage","messageInfo","JSON","stringify","messageType","message","navigator","clipboard","writeText","showCopiedMessage","setTimeout","_GxIdeAiMessage_buttonMouseDownHandler","set","e","preventDefault","stopPropagation","evaluateMessageIsCopyable","evaluateCopyIcon","h","class","onClick","onMouseDown","__classPrivateFieldGet","src","componentWillLoad","_componentLocale","Locale","getComponentStrings","el","componentDidRender","visible","messagesList","parentElement","scrollTo","render","hidden","you","message__header","message__role","assistant","message__caption","translations","hiChar","filterValue"],"sources":["src/components/ai-assistant/ai-message.scss?tag=gx-ide-ai-message","src/components/ai-assistant/ai-message.tsx"],"sourcesContent":["@import \"../../global/gx-ide-mixins.scss\";\n\n:host {\n font-family: var(--mer-font-family--primary);\n}\n/*--- Messages ---*/\n.message {\n color: var(--mer-color__neutral-gray--100);\n display: grid;\n grid-template-rows: 0fr;\n transition: grid-template-rows 100ms;\n transition: grid-template-rows 100ms, -ms-grid-rows 100ms;\n &__outer-wrapper {\n overflow: hidden;\n }\n &__inner-wrapper {\n padding: var(--mer-spacing--sm) var(--mer-spacing--sm);\n border-radius: var(--mer-border__radius--sm);\n border-inline-start: var(--mer-border__width--md) solid transparent;\n background-color: var(--mer-color__neutral-gray--1200);\n margin-block-start: var(--mer-spacing--xs);\n position: relative;\n }\n &__header {\n display: flex;\n gap: var(--mer-spacing--xs);\n justify-content: space-between;\n\n .icon-md {\n opacity: 0;\n }\n\n &--in-progress {\n display: contents;\n }\n }\n &__role {\n &:before {\n content: \"\";\n display: grid;\n place-self: center flex-end;\n inline-size: 4px;\n block-size: 4px;\n border-radius: 50%;\n background-color: currentcolor;\n }\n\n font-weight: var(--mer-font__weight--semi-bold);\n margin-block-end: var(--mer-spacing--xs);\n display: inline-grid;\n grid-template-columns: max-content 1fr;\n gap: 8px;\n\n &-description {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n display: inline-block;\n padding-block-start: 2px;\n }\n &--user {\n color: var(--mer-color__primary--300);\n }\n &--assistant {\n }\n &--hidden {\n display: none;\n }\n }\n &__caption {\n font-size: var(--mer-font__size--xs);\n line-height: var(--mer-line-height--regular);\n }\n &--visible {\n grid-template-rows: 1fr;\n }\n &--copying {\n pointer-events: none;\n span:not(.copied),\n .message__caption {\n color: transparent;\n -webkit-user-select: none; /* Safari */\n -ms-user-select: none; /* IE 10 and IE 11 */\n user-select: none; /* Standard syntax */\n }\n }\n /*--- Types of messages ---*/\n &--user {\n .message__inner-wrapper {\n background-color: rgba(91, 167, 255, 0.08);\n border-color: var(--mer-border-color__primary);\n }\n }\n &--assistant-action {\n .message__inner-wrapper {\n background-color: rgba(63, 168, 155, 0.05);\n border-color: var(--mer-border-color__success);\n }\n }\n &--assistant-chat {\n .message__inner-wrapper {\n background-color: var(--mer-surface__elevation--01);\n }\n }\n &--assistant-in-progress {\n color: var(--mer-color__neutral-gray--500);\n .message__inner-wrapper {\n font-style: italic;\n display: grid;\n grid-template-columns: 1fr auto;\n gap: var(--mer-spacing--xs);\n\n .message__caption {\n flex: 1;\n }\n .animation-wrapper {\n flex: none;\n }\n }\n }\n &--assistant-error {\n .message__inner-wrapper {\n background-color: rgba(251, 124, 132, 0.05);\n border-color: var(--mer-border-color__error);\n }\n }\n &--copyable {\n &:hover {\n filter: brightness(1.2);\n .icon-md {\n opacity: 1;\n }\n }\n }\n &:last-child {\n margin-block-end: 0;\n }\n}\n:host(:first-child) {\n .message {\n &__inner-wrapper {\n margin-block-end: 0;\n }\n }\n}\n\n/*--- Dot Pulse Sweet Animation ---*/\n.animation-wrapper {\n width: 45px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n$color: var(--mer-color__neutral-gray--400);\n.dot-pulse {\n position: relative;\n left: -9999px;\n width: 5px;\n height: 5px;\n border-radius: 2.5px;\n background-color: $color;\n color: $color;\n box-shadow: 9999px 0 0 -5px;\n animation: dot-pulse 1.5s infinite linear;\n animation-delay: 0.25s;\n &::before,\n &::after {\n content: \"\";\n display: inline-block;\n position: absolute;\n top: 0;\n width: 5px;\n height: 5px;\n border-radius: 2.5px;\n background-color: $color;\n color: $color;\n }\n &::before {\n box-shadow: 9984px 0 0 -5px;\n animation: dot-pulse-before 1.5s infinite linear;\n animation-delay: 0s;\n }\n &::after {\n box-shadow: 10014px 0 0 -5px;\n animation: dot-pulse-after 1.5s infinite linear;\n animation-delay: 0.5s;\n }\n}\n@keyframes dot-pulse-before {\n 0% {\n box-shadow: 9984px 0 0 -5px;\n }\n 30% {\n box-shadow: 9984px 0 0 2px;\n }\n 60%,\n 100% {\n box-shadow: 9984px 0 0 -5px;\n }\n}\n@keyframes dot-pulse {\n 0% {\n box-shadow: 9999px 0 0 -5px;\n }\n 30% {\n box-shadow: 9999px 0 0 2px;\n }\n 60%,\n 100% {\n box-shadow: 9999px 0 0 -5px;\n }\n}\n@keyframes dot-pulse-after {\n 0% {\n box-shadow: 10014px 0 0 -5px;\n }\n 30% {\n box-shadow: 10014px 0 0 2px;\n }\n 60%,\n 100% {\n box-shadow: 10014px 0 0 -5px;\n }\n}\n\n/*--- Copy Message ---*/\n.copied {\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--mer-color__neutral-gray--300);\n display: flex;\n gap: var(--mer-spacing--xs);\n opacity: 0;\n animation: fadeIn var(--mer-timing--regular) ease-out forwards;\n}\n\n@keyframes fadeIn {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n}\n\n@include hiChar;\n","import { Component, h, Prop, Element, State } from \"@stencil/core\";\n\nimport { getIconPath } from \"@genexus/mercury\";\n\nimport { Locale } from \"../../common/locale\";\nimport { MessageType } from \"./ai-assistant\";\nimport { hiChar } from \"../../common/helpers\";\n\nconst COPY_ICON = getIconPath({\n category: \"bpm\",\n name: \"tasks\",\n colorType: \"neutral\"\n});\n\n@Component({\n tag: \"gx-ide-ai-message\",\n styleUrl: \"ai-message.scss\",\n shadow: false,\n assetsDirs: [\"gx-ide-assets/ai-message\"]\n})\nexport class GxIdeAiMessage {\n /* The message allows to be copied*/\n private _componentLocale: any;\n private copyable = false;\n\n @Element() el: HTMLGxIdeAiMessageElement;\n\n /**\n * This wil display the message if true\n */\n @State() visible = false;\n\n /**\n * This wil show the user a text, indicating that the message has been copied\n */\n @State() showCopiedMessage = false;\n\n /**\n * A reference to the gx-ide-ai-assistant host element\n */\n @Prop() readonly aiAssistantHostRef: HTMLGxIdeAiAssistantElement;\n\n /**\n * The actual message\n */\n @Prop() readonly message: string;\n\n /**\n * The message type\n */\n @Prop() readonly messageType: MessageType;\n\n /**\n * The filter value\n */\n @Prop() readonly filterValue: string;\n\n /**\n * It hides the message (used for the filter)\n */\n @Prop() readonly hidden: boolean;\n\n /**\n * An object with the needed string translations.\n */\n @Prop() readonly translations: Translations;\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n this.evaluateMessageIsCopyable();\n }\n\n componentDidRender() {\n setTimeout(() => {\n /* Without the timeout it appears instantly (no apparent transition)*/\n this.visible = true;\n const messagesList = this.el.parentElement;\n messagesList.scrollTo(0, 0);\n }, 0);\n }\n\n private copyMessage = () => {\n const messageInfo = JSON.stringify(\n {\n messageType: this.messageType,\n message: this.message\n },\n null,\n 2\n );\n\n navigator.clipboard.writeText(messageInfo);\n this.showCopiedMessage = true;\n setTimeout(() => {\n this.showCopiedMessage = false;\n }, 1500);\n };\n\n #buttonMouseDownHandler = (e: MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n };\n\n private evaluateMessageIsCopyable = () => {\n this.copyable = this.messageType !== \"assistant-in-progress\";\n };\n\n private evaluateCopyIcon = () => {\n return this.copyable ? (\n <button\n class=\"button-tertiary button-icon-only\"\n aria-label=\"copy\"\n onClick={this.copyMessage}\n onMouseDown={this.#buttonMouseDownHandler}\n >\n <ch-image class=\"icon-md\" src={COPY_ICON}></ch-image>\n </button>\n ) : null;\n };\n\n render() {\n return (\n <li\n class={{\n \"message\": true,\n \"message--visible\": this.visible && !this.hidden,\n [`message--${[this.messageType]}`]: true,\n \"message--assistant\": this.messageType !== \"user\",\n \"message--copyable\": this.copyable,\n \"message--copying\": this.showCopiedMessage\n }}\n >\n <div class=\"message__outer-wrapper\">\n <div\n class={{\n \"message__inner-wrapper\": true\n }}\n >\n {this.messageType === \"user\" ? (\n <div class=\"message__header\">\n <span class=\"message__role message__role--user\">\n <span class=\"message__role-description\">\n {this._componentLocale.you}\n </span>\n </span>\n {this.evaluateCopyIcon()}\n </div>\n ) : (\n <div\n class={{\n \"message__header\": true,\n \"message__header--in-progress\":\n this.messageType === \"assistant-in-progress\"\n }}\n >\n <span\n class={{\n \"message__role\":\n this.messageType !== \"assistant-in-progress\",\n \"message__role--hidden\":\n this.messageType === \"assistant-in-progress\",\n \"message__role--assistant\": true\n }}\n >\n <span class=\"message__role-description\">\n {this._componentLocale.assistant}\n </span>\n </span>\n {this.evaluateCopyIcon()}\n </div>\n )}\n <div\n class={{\n \"message__caption\": true,\n \"message__caption--in-progress\":\n this.messageType === \"assistant-in-progress\"\n }}\n >\n {this.showCopiedMessage ? (\n <span class=\"copied\">\n <ch-image class=\"icon-md\" src={COPY_ICON}></ch-image>\n {this.translations[\"copied\"]}\n </span>\n ) : null}\n {hiChar(this.message, this.filterValue)}\n </div>\n {this.messageType === \"assistant-in-progress\" ? (\n <div class=\"animation-wrapper\">\n <div class=\"dot-pulse\"></div>\n </div>\n ) : null}\n </div>\n </div>\n </li>\n );\n }\n}\n\nexport type Translations = {\n [key: string]: string;\n};\n"],"mappings":";;;;;;;;AAAA,MAAMA,IAAe;;;;;;;;;;ACQrB,MAAMC,IAAYC,EAAY;EAC5BC,UAAU;EACVC,MAAM;EACNC,WAAW;;;MASAC,IAAc;;;IAGjBC,KAAAC,WAAW;IA0DXD,KAAAE,cAAc;MACpB,MAAMC,IAAcC,KAAKC,UACvB;QACEC,aAAaN,KAAKM;QAClBC,SAASP,KAAKO;SAEhB,MACA;MAGFC,UAAUC,UAAUC,UAAUP;MAC9BH,KAAKW,oBAAoB;MACzBC,YAAW;QACTZ,KAAKW,oBAAoB;AAAK,UAC7B;AAAK;IAGVE,EAAAC,IAAAd,OAA2Be;MACzBA,EAAEC;MACFD,EAAEE;AAAiB;IAGbjB,KAAAkB,4BAA4B;MAClClB,KAAKC,WAAWD,KAAKM,gBAAgB;AAAuB;IAGtDN,KAAAmB,mBAAmB,MAClBnB,KAAKC,WACVmB,EAAA;MACEC,OAAM;MAAkC,cAC7B;MACXC,SAAStB,KAAKE;MACdqB,aAAaC,EAAAxB,MAAIa,GAAA;OAEjBO,EAAA;MAAUC,OAAM;MAAUI,KAAK/B;UAE/B;mBAvFa;6BAKU;;;;;;;;EAgC7B,uBAAMgC;IACJ1B,KAAK2B,yBAAyBC,EAAOC,oBAAoB7B,KAAK8B;IAC9D9B,KAAKkB;;EAGP,kBAAAa;IACEnB,YAAW;;MAETZ,KAAKgC,UAAU;MACf,MAAMC,IAAejC,KAAK8B,GAAGI;MAC7BD,EAAaE,SAAS,GAAG;AAAE,QAC1B;;EA0CL,MAAAC;IACE,OACEhB,EAAA;MACEC,OAAO;QACLd,SAAW;QACX,oBAAoBP,KAAKgC,YAAYhC,KAAKqC;QAC1C,CAAC,YAAY,EAACrC,KAAKM,kBAAiB;QACpC,sBAAsBN,KAAKM,gBAAgB;QAC3C,qBAAqBN,KAAKC;QAC1B,oBAAoBD,KAAKW;;OAG3BS,EAAA;MAAKC,OAAM;OACTD,EAAA;MACEC,OAAO;QACL,0BAA0B;;OAG3BrB,KAAKM,gBAAgB,SACpBc,EAAA;MAAKC,OAAM;OACTD,EAAA;MAAMC,OAAM;OACVD,EAAA;MAAMC,OAAM;OACTrB,KAAK2B,iBAAiBW,OAG1BtC,KAAKmB,sBAGRC,EAAA;MACEC,OAAO;QACLkB,iBAAmB;QACnB,gCACEvC,KAAKM,gBAAgB;;OAGzBc,EAAA;MACEC,OAAO;QACLmB,eACExC,KAAKM,gBAAgB;QACvB,yBACEN,KAAKM,gBAAgB;QACvB,4BAA4B;;OAG9Bc,EAAA;MAAMC,OAAM;OACTrB,KAAK2B,iBAAiBc,aAG1BzC,KAAKmB,qBAGVC,EAAA;MACEC,OAAO;QACLqB,kBAAoB;QACpB,iCACE1C,KAAKM,gBAAgB;;OAGxBN,KAAKW,oBACJS,EAAA;MAAMC,OAAM;OACVD,EAAA;MAAUC,OAAM;MAAUI,KAAK/B;QAC9BM,KAAK2C,aAAa,aAEnB,MACHC,EAAO5C,KAAKO,SAASP,KAAK6C,eAE5B7C,KAAKM,gBAAgB,0BACpBc,EAAA;MAAKC,OAAM;OACTD,EAAA;MAAKC,OAAM;UAEX"}
|