@enegelai/bot-widget 1.16.0 → 1.16.1

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/index.es.js CHANGED
@@ -1,5 +1,5 @@
1
- import { css as J, LitElement as De, html as u, nothing as Ae, svg as me } from "lit";
2
- import { property as x, customElement as K, query as xe, queryAll as Va, eventOptions as ia } from "lit/decorators.js";
1
+ import { css as J, LitElement as Fe, html as u, nothing as Ae, svg as me } from "lit";
2
+ import { property as x, customElement as K, query as xe, state as Ha, queryAll as Va, eventOptions as sa } from "lit/decorators.js";
3
3
  import { unsafeHTML as Y } from "lit-html/directives/unsafe-html.js";
4
4
  import { when as W } from "lit/directives/when.js";
5
5
  import { registerIconLibrary as zi } from "@shoelace-style/shoelace";
@@ -22,29 +22,29 @@ import "@shoelace-style/shoelace/dist/components/alert/alert.js";
22
22
  import "@shoelace-style/shoelace/dist/components/progress-bar/progress-bar.js";
23
23
  import "@shoelace-style/shoelace/dist/components/badge/badge.js";
24
24
  import { repeat as et } from "lit/directives/repeat.js";
25
- import { until as Gt } from "lit-html/directives/until.js";
25
+ import { until as Xt } from "lit-html/directives/until.js";
26
26
  import Oi from "markdown-it";
27
27
  import Bi from "markdown-it-link-attributes";
28
- import Ht from "highlight.js";
28
+ import Ut from "highlight.js";
29
29
  import "@shoelace-style/shoelace/dist/components/popup/popup.js";
30
30
  import "@shoelace-style/shoelace/dist/components/rating/rating.js";
31
- import { createRef as qi, ref as Ct } from "lit/directives/ref.js";
31
+ import { createRef as qi, ref as At } from "lit/directives/ref.js";
32
32
  function Ua(a) {
33
33
  return typeof a == "function" ? a() : a;
34
34
  }
35
- const Dt = class Dt extends Event {
35
+ const jt = class jt extends Event {
36
36
  /**
37
37
  * @param {string} key of the state that has changed
38
38
  * @param {unknown} value for the changed key
39
39
  */
40
40
  constructor(e, t, i) {
41
- super(Dt.eventName, {
41
+ super(jt.eventName, {
42
42
  cancelable: !1
43
43
  }), this.key = e, this.value = t, this.state = i;
44
44
  }
45
45
  };
46
- Dt.eventName = "lit-state-changed";
47
- let at = Dt;
46
+ jt.eventName = "lit-state-changed";
47
+ let at = jt;
48
48
  const Di = (a, e) => e !== a && (e === e || a === a), ha = class ha extends EventTarget {
49
49
  static initPropertyMap() {
50
50
  this.propertyMap || (this.propertyMap = /* @__PURE__ */ new Map());
@@ -120,7 +120,7 @@ const Di = (a, e) => e !== a && (e === e || a === a), ha = class ha extends Even
120
120
  }
121
121
  };
122
122
  ha.finalized = !1;
123
- let Xt = ha;
123
+ let Yt = ha;
124
124
  class it {
125
125
  constructor(e, t, i) {
126
126
  this.host = e, this.state = t, this.callback = i || (() => this.host.requestUpdate()), this.host.addController(this);
@@ -181,7 +181,7 @@ function fe(a) {
181
181
  function Na(a) {
182
182
  return a && a.__esModule && Object.prototype.hasOwnProperty.call(a, "default") ? a.default : a;
183
183
  }
184
- var Et = { exports: {} }, Hi = Et.exports, ka;
184
+ var Pt = { exports: {} }, Hi = Pt.exports, ka;
185
185
  function Vi() {
186
186
  return ka || (ka = 1, (function(a) {
187
187
  (function(e, t) {
@@ -232,7 +232,7 @@ function Vi() {
232
232
  function P(M, L) {
233
233
  var C = this, Z, N, G, te = "loglevel";
234
234
  typeof M == "string" ? te += ":" + M : typeof M == "symbol" && (te = void 0);
235
- function je(j) {
235
+ function He(j) {
236
236
  var V = (s[j] || "silent").toUpperCase();
237
237
  if (!(typeof window === t || !te)) {
238
238
  try {
@@ -255,9 +255,9 @@ function Vi() {
255
255
  }
256
256
  if (typeof j === t)
257
257
  try {
258
- var V = window.document.cookie, Ee = encodeURIComponent(te), $e = V.indexOf(Ee + "=");
259
- $e !== -1 && (j = /^([^;]+)/.exec(
260
- V.slice($e + Ee.length + 1)
258
+ var V = window.document.cookie, $e = encodeURIComponent(te), Pe = V.indexOf($e + "=");
259
+ Pe !== -1 && (j = /^([^;]+)/.exec(
260
+ V.slice(Pe + $e.length + 1)
261
261
  )[1]);
262
262
  } catch {
263
263
  }
@@ -292,7 +292,7 @@ function Vi() {
292
292
  }, C.methodFactory = L || _, C.getLevel = function() {
293
293
  return G ?? N ?? Z;
294
294
  }, C.setLevel = function(j, V) {
295
- return G = pe(j), V !== !1 && je(G), k.call(C);
295
+ return G = pe(j), V !== !1 && He(G), k.call(C);
296
296
  }, C.setDefaultLevel = function(j) {
297
297
  N = pe(j), ae() || C.setLevel(j, !1);
298
298
  }, C.resetLevel = function() {
@@ -327,13 +327,14 @@ function Vi() {
327
327
  return r;
328
328
  }, o.default = o, o;
329
329
  });
330
- })(Et)), Et.exports;
330
+ })(Pt)), Pt.exports;
331
331
  }
332
332
  var Ui = Vi();
333
333
  const Je = /* @__PURE__ */ Na(Ui), Ni = J`
334
334
  :host {
335
- font-size: 16px;
336
- --enegelai-bot-width: 420px
335
+ --enegelai-bot-width: 420px;
336
+ --enegelai-bot-base-font-size: 16px;
337
+ font-size: var(--enegelai-bot-base-font-size, 16px);
337
338
  }
338
339
  .cb-wrapper {
339
340
  color: var(--sl-color-neutral-600);
@@ -654,12 +655,12 @@ const Je = /* @__PURE__ */ Na(Ui), Ni = J`
654
655
  color: white;
655
656
  }
656
657
  `;
657
- var Wi = Object.defineProperty, Gi = Object.getOwnPropertyDescriptor, sa = (a, e, t, i) => {
658
+ var Wi = Object.defineProperty, Gi = Object.getOwnPropertyDescriptor, na = (a, e, t, i) => {
658
659
  for (var s = i > 1 ? void 0 : i ? Gi(e, t) : e, r = a.length - 1, o; r >= 0; r--)
659
660
  (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
660
661
  return i && s && Wi(e, t, s), s;
661
662
  };
662
- let ut = class extends De {
663
+ let ut = class extends Fe {
663
664
  constructor() {
664
665
  super(...arguments), this.color = "primary", this.svg = "";
665
666
  }
@@ -668,13 +669,13 @@ let ut = class extends De {
668
669
  }
669
670
  };
670
671
  ut.styles = Wa;
671
- sa([
672
+ na([
672
673
  x({ type: String })
673
674
  ], ut.prototype, "color", 2);
674
- sa([
675
+ na([
675
676
  x({ type: String })
676
677
  ], ut.prototype, "svg", 2);
677
- ut = sa([
678
+ ut = na([
678
679
  K("cb-icon")
679
680
  ], ut);
680
681
  let Xi = (a) => crypto.getRandomValues(new Uint8Array(a)), Yi = (a, e, t) => {
@@ -1036,13 +1037,13 @@ const Sa = [
1036
1037
  "A",
1037
1038
  "A#",
1038
1039
  "B"
1039
- ], Ne = [], na = [];
1040
+ ], We = [], ra = [];
1040
1041
  for (let a = 1; a <= 8; a++)
1041
1042
  for (let e = 0; e < Sa.length; e++) {
1042
1043
  const t = Sa[e];
1043
- Ne.push(t / Math.pow(2, 8 - a)), na.push(ts[e] + a);
1044
+ We.push(t / Math.pow(2, 8 - a)), ra.push(ts[e] + a);
1044
1045
  }
1045
- const Pt = [32, 2e3], Ca = Ne.filter((a, e) => Ne[e] > Pt[0] && Ne[e] < Pt[1]), as = na.filter((a, e) => Ne[e] > Pt[0] && Ne[e] < Pt[1]);
1046
+ const Rt = [32, 2e3], Ca = We.filter((a, e) => We[e] > Rt[0] && We[e] < Rt[1]), as = ra.filter((a, e) => We[e] > Rt[0] && We[e] < Rt[1]);
1046
1047
  class lt {
1047
1048
  /**
1048
1049
  * Retrieves frequency domain data from an AnalyserNode adjusted to a decibel range
@@ -1060,7 +1061,7 @@ class lt {
1060
1061
  const f = t / 2, p = 1 / i.length * f;
1061
1062
  let v, k, w;
1062
1063
  if (s === "music" || s === "voice") {
1063
- const I = s === "voice" ? Ca : Ne, M = Array(I.length).fill(r);
1064
+ const I = s === "voice" ? Ca : We, M = Array(I.length).fill(r);
1064
1065
  for (let L = 0; L < i.length; L++) {
1065
1066
  const C = L * p, Z = i[L];
1066
1067
  for (let N = I.length - 1; N >= 0; N--)
@@ -1069,7 +1070,7 @@ class lt {
1069
1070
  break;
1070
1071
  }
1071
1072
  }
1072
- v = M, k = s === "voice" ? Ca : Ne, w = s === "voice" ? as : na;
1073
+ v = M, k = s === "voice" ? Ca : We, w = s === "voice" ? as : ra;
1073
1074
  } else
1074
1075
  v = Array.from(i), k = v.map((I, M) => p * M), w = k.map((I) => `${I.toFixed(2)} Hz`);
1075
1076
  const _ = v.map((I) => Math.max(
@@ -2689,17 +2690,17 @@ class gs {
2689
2690
  let N = 0, G = k;
2690
2691
  C > 0 && (N = Math.max(0, Math.min(k, C - Z)), G = Math.max(N, Math.min(k, C + Z)));
2691
2692
  const te = Math.max(1, Math.floor(this.hop / this.ds));
2692
- let je = -1;
2693
+ let He = -1;
2693
2694
  for (let ae = N; ae <= G; ae += te) {
2694
2695
  let he = 0, pe = 0;
2695
2696
  for (let V = 0; V < o; V++) {
2696
- const Ee = _[V], $e = P[ae + V];
2697
- he += Ee * $e, pe += $e * $e;
2697
+ const $e = _[V], Pe = P[ae + V];
2698
+ he += $e * Pe, pe += Pe * Pe;
2698
2699
  }
2699
2700
  const F = I * (Math.sqrt(pe) + 1e-12), j = F > 0 ? he / F : 0;
2700
- if (j > je && (je = j), je > Math.min(0.98, this.threshold + 0.25)) break;
2701
+ if (j > He && (He = j), He > Math.min(0.98, this.threshold + 0.25)) break;
2701
2702
  }
2702
- if (je >= this.threshold) {
2703
+ if (He >= this.threshold) {
2703
2704
  if (this._holdRemain = Math.max(this._holdRemain, Math.round(this.holdMs * this.sr / 1e3)), this.mode === "drop") return null;
2704
2705
  for (let ae = 0; ae < i; ae++) t[ae] *= this.attenGain;
2705
2706
  return this._float32ToInt16(t);
@@ -2938,8 +2939,8 @@ class ys {
2938
2939
  }
2939
2940
  }
2940
2941
  }
2941
- const Ue = Je.noConflict();
2942
- Ue.setLevel("info");
2942
+ const Ne = Je.noConflict();
2943
+ Ne.setLevel("info");
2943
2944
  class pt extends es {
2944
2945
  constructor(e = {}) {
2945
2946
  super({ name: "WebAudioProcessorV2" }), this.options = e, this.muted = !1, this.audioRecorder = new ot({
@@ -3018,13 +3019,13 @@ class pt extends es {
3018
3019
  e(), this._latencyTimer = setInterval(e, 1e3);
3019
3020
  try {
3020
3021
  const t = this.audioRecorder.captureInfo?.aecGranted;
3021
- t && Ue.info("AEC granted:", t);
3022
+ t && Ne.info("AEC granted:", t);
3022
3023
  } catch {
3023
3024
  }
3024
- Ue.info("WebAudioProcessorV2 started");
3025
+ Ne.info("WebAudioProcessorV2 started");
3025
3026
  }
3026
3027
  async stop() {
3027
- this._stopRecWatchdog(), this.audioRecorder.getStatus() !== "ended" && (await this.audioRecorder.end(), this.audioRecorder = null), this.audioRecorderAnalyzer = null, this.audioPlayer?.context && (await this.audioPlayer.disconnect(), this.audioPlayer = null), this._latencyTimer && (clearInterval(this._latencyTimer), this._latencyTimer = null), this._didPlayOnce = !1, Ue.info("WebAudioProcessorV2 stopped");
3028
+ this._stopRecWatchdog(), this.audioRecorder.getStatus() !== "ended" && (await this.audioRecorder.end(), this.audioRecorder = null), this.audioRecorderAnalyzer = null, this.audioPlayer?.context && (await this.audioPlayer.disconnect(), this.audioPlayer = null), this._latencyTimer && (clearInterval(this._latencyTimer), this._latencyTimer = null), this._didPlayOnce = !1, Ne.info("WebAudioProcessorV2 stopped");
3028
3029
  }
3029
3030
  get started() {
3030
3031
  return !!(this.audioRecorder && this.audioRecorder.getStatus() !== "ended");
@@ -3046,7 +3047,7 @@ class pt extends es {
3046
3047
  }
3047
3048
  async _checkRecordingHealth(e) {
3048
3049
  const i = Date.now() - this._lastMicCaptureTime;
3049
- i > 2e3 && (Ue.warn(`WebAudioProcessorV2: large gap between mic frames: ${i} ms detected, possible lock or suspend - terminating audio`), this.emit("terminate").catch(() => {
3050
+ i > 2e3 && (Ne.warn(`WebAudioProcessorV2: large gap between mic frames: ${i} ms detected, possible lock or suspend - terminating audio`), this.emit("terminate").catch(() => {
3050
3051
  }));
3051
3052
  }
3052
3053
  // ---- Capture ----
@@ -3055,7 +3056,7 @@ class pt extends es {
3055
3056
  * Your existing 'audio' event is preserved: payload includes base64 of Int16 PCM.
3056
3057
  */
3057
3058
  async beginAudioCapture() {
3058
- !this.started || this.recording || (Ue.info("WebAudioProcessorV2: beginAudioCapture"), this._lastMicCaptureTime = Date.now(), this._startRecWatchdog(), await this.audioRecorder.record((e) => {
3059
+ !this.started || this.recording || (Ne.info("WebAudioProcessorV2: beginAudioCapture"), this._lastMicCaptureTime = Date.now(), this._startRecWatchdog(), await this.audioRecorder.record((e) => {
3059
3060
  if (e?.mono && e.mono?.byteLength) {
3060
3061
  this._lastMicCaptureTime = Date.now();
3061
3062
  let t = new Int16Array(e.mono);
@@ -3065,12 +3066,12 @@ class pt extends es {
3065
3066
  const i = this.useAdaptiveSuppressor ? this.mixMinusSmooth.filterMicFrame(t) : this.mixMinus.filterMicFrame(t) || new Int16Array(0);
3066
3067
  if (i.length === 0) return;
3067
3068
  const s = pt.arrayBufferToBase64(i);
3068
- Ue.info(`Audio: mono ${e.mono.byteLength} bytes, base64 ${s.length} bytes`), this.emit("audio", { audio: s });
3069
+ Ne.info(`Audio: mono ${e.mono.byteLength} bytes, base64 ${s.length} bytes`), this.emit("audio", { audio: s });
3069
3070
  }
3070
3071
  }));
3071
3072
  }
3072
3073
  async endAudioCapture() {
3073
- !this.started || !this.recording || (Ue.info("WebAudioProcessorV2: endAudioCapture"), this._stopRecWatchdog(), await this.audioRecorder.pause());
3074
+ !this.started || !this.recording || (Ne.info("WebAudioProcessorV2: endAudioCapture"), this._stopRecWatchdog(), await this.audioRecorder.pause());
3074
3075
  }
3075
3076
  // ---- Playback ----
3076
3077
  /**
@@ -3237,7 +3238,7 @@ function _s(a, e) {
3237
3238
  }
3238
3239
  return t;
3239
3240
  }
3240
- var Vt = /* @__PURE__ */ vs(function(e, t, i) {
3241
+ var Nt = /* @__PURE__ */ vs(function(e, t, i) {
3241
3242
  return ks(e, _s(t, i));
3242
3243
  });
3243
3244
  const Ss = "fffbd0c40003a861a6f64deb05ce8fbd1dc1ee6979000bf3230f3195138b950cbe3649439256307747d31c26065d09cfae70d799f0a043c6a90008c0101188082314680d008619c9079b61dc806a921a220095277a60d4131e44143d53814e10f4d06ba6491eb478900a8d59016632a23e0fa358875c770146cc650c1c499dcb9b0965d7500106c321427219428febbdafb2b5d76979a75ae40018d025f96f71bad4b0257666051808e5b74c34bf2db9660bb0e24b2a35886616f617013a24104242304600910b1130dc7b4e81750bb1216e880432ac0d75b0a2a1834f45e8e9a279a9c6c22cc9a7e3ac01cc5335e8c0d97180c960bad7998ce9ac025a2f1a0c888e02c46508045a96a20a60c91980100828a917425f96ddc64bc2ea19146c50b00bde68319005d85d10e462314ae197f0b48c74bfe986ced9dac3a9bbfad7e8f7ac2a525253c6e36cad4dd7c20e2ec4842dba61cbf30f0f7d628635005a66e63ec63560f22a48c694034a695617e603c12c05077310c0923018053379a48d1e921e409b28546c46619d8fa6c9b019ea20762d318e34c6291699d98662a61861204fda2a7933d57c1d023391f8605262a1598449c1ca332e084cb25a3198ac94666361b99f05c67c1aba0151b18d456ec8e0b4c667924153ba632409114cc587c7867ca8c047dcd7a834bc8d2a033a141df48ab82a803bd1a8651a215e356c6161b062114cb841dd89589b05f0d10ad255c4d70d8ad245e4abcd6b33fca8d6af5cc3db8d9244511ab2206a56c885690ad12cc1ba16308528d539daa40b22baf35eb61a7044a988132e926b754d82ea8ca85199ad5c42c0d62d35eb8d7301d56ef5b26c451748198c2a22c319b24ab67a246b186c8af0d54354c0957c342d9a2a4d7b3245e585c4d7254e107501450bb46abbfa38b2331996d9bae08953352c48af43d5c7b08b6572a44e0b11775fd8cbb2b0b0343230c6c5add2ca5ac8d549765977ff78e59659ca49adde749c6789409753bcff43d1a8d46a532da5a5a5a5a5a5a5a6a6a6a6a6a6a6a6a6ab671c71c71c6ae4141414140a0a0a0a0c2b06e0b039c1829859998b165991a5d2aa598e0a714183727471921e5721a1037a9c2fb7a1b9c0dc99c6ab19b821219de39219b82a521908908987d2ab1aab194159219cb31211fffbd2c42383f4bda0d20ffba7c624b3dd01eee938b82f149f14b82951c14d290908c90d294c90a598b0948572ce584a434a54a52b4a42c3829592199219219a52921160908d295294b1c79b70dc9b72dc9b70dc15b71e6dc37058e3cdb8e34db9e3cadb82c37056dc95f1e7c6f1e58e3cadb8f2c4845721f96242f2c485e7214865721f962422c484721c845890cb121f9c872116242f2b908e4390bfcae432b908ae43f390e432c486721c85e5890cae432b90ce42908b121f9c8721962432c484721c865890ce4290bcae432b90bcae43390a432c485e58908e4290bcb121f95c86721c865890cae432b90cae42ff390e422b90cae422b90fcb121795c865721795c86721487e721c87e58908ae422b90bcb12195c845721796242f2c48658908ae43ff390e43fff390e422c4865890cb121ff9c872196243f2b90bcae42fff2c48458908b12116243f2b90ffcae43fff2c485e5890bfffcae422c485fe5721796243f2b90bfcae42ffff2b90ffcae432c48460a40a6618626a61ce3d466883d6645657458106350e2d6321a39532150c231a421532413d3399952b690e8430cc534d4ad0638ad993418742c24072f7385897cae5e348120397e5e348521397e5e2b734cd8364b06c160d93364d82c0ea6838ea63a0e863a8e9e581d4ca0283cd5d284b050795942650143e6e1c1b87058706e5c95b9370e4dcb92c382b706e1c15d22c522ba7e574cae9f9d2a458a474a995d32c52ff2ba4574cb148b14bfcb14cb148ae99629795d22c532c533a74cae995d2f3a74ce9533a74cb148e9d2f3a74ce9d22ba474e99d2a458a674a99d3a65748ae9f9d2a474a91629962995d23a748e9522c53f3a74bce9d3f2ba65748afa9f5ea57d4b1d3cafa963a163a7963a163a1f5ebfe57d3fcfa742bea7d7a15f42bea7d7a1f5e9e7d3af963a9f4ea57d4fa752c74f2c75f2c743ebd3fcafaf963a7ff963a79f4e9fe57d7ce9d22c532ba474a91d3a674a97962996297f9d2a658a458a658a458a4574cae916299d2a474a995d22c522c533a54bcae915d32c522c52f3a548ae99629795d3f30c6831b320f483c329501f8331a98f233a001f9342646273295483d326307f03331098c307e52ae3189883d3186475630e704da30e744db320f0627329501f831040411307e4fffbd2c42383f3fdacd40ff6b68668b3dc81eeed7841031044a54318984112a8c4e641e83f26208082260fc0822560fc183f041e183f00fc183f20fc983f20fc983f20fc95896e60bf863460bf86365805f8c17e0c68ac31b2b5f8f1bc68d7fc68d7f5fcaf1b35f97e35f97e2c2fc585fcb0bf9e36bf9617e2b5f8d7f5f8ad7f2c2fc6bfafe56bf9e34bf79617f3c6f1bf2b5fcb0bf9afcbf95afc585f8d7e5fcb0bf611fc419f8f08fe7833f1e0cfcf847f308fe7833f1f067e3c19f9067e308fe7c23f8c23f9067e40ff3f8067e20cfc047f00cfc611fc81fe3f207f9fc033f211fcc0ff1f903fc7e423f803fcfe423f903fcfe00ff3f8833f011fc847f211fc047f303fc7e211fc01fe3f211fc033f011fc7067e40ff3f908fe023f808fe00ff1f903fcfe019f803fc7e419f808fe019f9067e40ff1f9067e211fc01fe3f3c19f8e0cfcc23f9067e40ff3f8067e023f808fe60cfcc19f8c19f9847f211fc047f011fc033f1067e60cfcf833f25808830881d435e33e33263062346d46d31d427b31d41d4346d3c633201d5308827a308846d351212e32267a39ea7a34b92f3221d537552f32252e2b4b8dd5c80c88c84e7a4bcb0ea9ba9e315a5e697baa644cf473da5e58220c894bcb0449a5e449612ff2c110584bcb0447991044191244160892b4bfcc88224ac882b2a4d0a114ca8114c44114ac442c089e562279588856c458633e362f3e362362623e3e3f2be23e3e32b633e263f2b88fffff2c44f95c47f96227ce2224e2620b11071310713105889389882c44f95c41c44496220ae23cae20e2627cb1127111257105889f2c449c4c416220ae24e2224e2620ae24b1105713e588838988389892c44f9c44416224e2220ae20e2223cae27cae23ce2220e2620b1105711e5712571271111e57127131257127111271313fe713125712588938988388892c4479c4c41c44416224ae24e2220ae20e2620b11058882c44ffff95c4795c4ff95c415c416220ae20ae20b11271310571271313e58882c44f95c49c4c4ff95c416224e2627fce2224e2220e2220ae20b111e57107111071111fe5888ff389882c03a18838cc99ca16b996b8501ad09db99db86c161e34cb0c730c6641d4c664f7cc570e54c570570cb08734d2b4b08ac360cb5c284c86c574c57428fffbd2c41e03f239a2e40f7370c65fb39cc1eeed980c364364c360730c364edcc360364db2d936c734f9bcd3e6b60db0d82c734db3cd36cb60adb27068399d732588319d20e7068399d20de5850f9d75405850796140575c3535335252353c32c611e1291a9e11614cd4d4cf0d4cf0948e8684e8684b14074140574058a12c509d0d09d0d09d0509d0501d050796363fcaf64af67ffcb1b257b1fe58d8f2b74375742b742c3a9baba15ba161d0dd1d4add0b0e9e6eaea56ea56ea5874374752c5096280e8680b14057405743e57407414058a12ba12ba02c50f96280b141e58a12ba12c5096280add0dd1d0dd1d0dd5d3cb0ea6eaea6e8ea58752b7537574374742b74374752b752c3a95ba15ba9baba1ba3a161d0dd1d4b0ea58742c3a7ffff96367ffffffffffffffffffffffcb0e856ebe5874f2c3a961d4dd1d7fcadd4b0e9e6e8ea58752b752c3af961d4add3cb0e86e8ebfe6e8ea587537474f2c3a161d7cdd5d4dd1d0dd5d4add3cc388588c9e8220c4b91b4c989388c58898cc5b4740c2a48c8c58c38ccb8898cc9ec220cc84c80c4b84bcc224754d4491b4c62988c63588ce2b88d2e224d2e224b0449f8f3d1a5c9719104499124415a5e6971106973aa58750d2e220d2e220d898cf8d8cd8d8cd898cd8d88ad8cd898cd8988b1c7e586336363f2c711b1311b1319618cd8d8cb0c6586236262363632c319618ccb8b8cbcbcb05c565c582e32e2e32f2f32f2e32f2f32f2f32f2f2c1796220ae24ae20b113e71313fe71111e5888388892b882c449b1b115b11b1311b13116188d898fcb0c66c6c45862363632b632b63ff2c319b1b1796224ae24b111e711125711e5713e5713e58882b882c441c4c4f9c4c4ff9c4c4f9c44495c49c4c416224ae24e2224e2627fcae20b1105711e5711fe7111071111fe57125713e57106c6c46c6c45863f2c3195b115b19b131796188ad8bcd8988b0c45862363632c319b1b19b131f9618bcad8fcd898cad8bcb112571257125888f2c44ff95c495c4ff95c47f96220e2624b11258882c441c444ffff96224b112571257105711e588838989f2c44d3045045310b0a932632e232630623562062316226236620e32c1b198850229885919194a88598220e81fc431160623589e23588622b18cde2988de3788c63588fefffbd2c42083f3559ee80f774bc682b4dcc1eee9782388c6278cb0b1161623388e32b588ac62398d633188632c0c46318c66319c46710c66310c66b1ac66318c46310c46310c46710c6563118c431f98c63199c63118c631960e3f318862f2c0c7e6310c45818cb031960622bc678f1163196319e3c658c478b1163179e2c658c65788f1623c58cb188f1622bc678b115e33c788f1623c58caf195e32bc5e71221c5885710e24438914ae29c58a71621c48a588a5714b110e2c438910e245f38b13ce2442b8a71621c58a5889e5714ae295c42c442b8a5713cae29c48858885714b110e24538910af115e22bc658c478b17f95e33c588af1ff9e2c678b19e2c678f1163179e2c478b1ff95e3f2c62f3c78fcb18bcaf196317f95e22bc7e5788f163f2c632bc5fe58c678f195e22c62f3c78bfcaf1163196317f95e32c622c633c58caf11e3c4578caf1f95e32c633c78bfcf1622c632c633c588b188af19e3c5e58c658c678f11e3c678f17ff96319829829986109a99a6b1319ef03a19ef0cc99150cc195d8cc99a683a18730f598ca89e99a615d995d2819fbecc9d755d95c54698a626980d26559dc71520c68357471520c6cc33075d8ea63a0ea68345468320e63a0e875d20c683a0c63aa0fe5841cd98664b0831a0e8318ea3a95a0e563a160752c20e63a8e86838e858418b03a160753148523309353148c22b14cb02918a42918a629160522b14cc5314cfaf52bea7d7a163a963a1f4ebe7d7a95f53ebd4faf43ebd0afa795f53ebd4afa963a1f5e87d3a963a15f43e9d0afa79f4e858e858e858ea57d0afa963a9f4ea7d7a9f4ea7d3a9f4e857d0afaff9f4e9fe7d3af95f52be858e857d4faf53ebd0faf53ebd4afa1f5e857d4b1d0afa9f5ea7d3a7963a15f43e9d0faf52be87d3a163a163af95f52be858ea57d4faf5f2bea58ebe58e87d7a15f42c742bea58ebe57d7ffcfaf52be9e7d7af95f5ffff2c75ff2be857d7ffcb1d0faf52c742c742c753e9d4afa95f52bea57d3cb1d4afa95f52c742bea57d0afaff963a95f43e9d0afa7f95f53ebd7fcfa753ebd3cafa15f42c743ebd4afaf95f5f2c752be857d7fcb1d5508000160382b0e0d954f0d94654deb7acc397acce7d10dea4f0d4b2c4cb02c4d311a0ad3134c0aa34c4ef33b8ab3059193460b03fffbd2c41a01f0c5a2f0aeeb34c619359dc1dde6682c04b32403834f43832403932443930e03932403932413c3240392c070648072561c9870489a7a48161c1b972587258726e5c9b87265e51ca2c65cb9cb2e65fe1cb94565ce59634a94ad21a44a584869529a4485694ad216129a54865cb1972e72e51962c65cb1972c565cb05ccbcb32e5ccb162b2c56b79acb1acb1aeb9acb1aeb9acb1aeb15ac6bae56b15ac56b15ca72485894e590e490b1295ca5894ae52b90ae539252c49e724a5897ce494b121cb2f9cb21cb29cb21c9215ca5890e497ce597cae42c4a57215c85894ae42b97cf9e4f9e3cb1c15f1e57c796393e38ff2be0f9e7caf92be0f8e4af92be0b1cff96392be0f9e0b1c15f058e0b1c796382c71e7cf3e7c7257c95f258e4b1c95f1e58e0af92be4b1c1639f2be7ce493cb127f9c9215c9e5721c9215cbfe72ca5893fcb1279c921cb29cb2f9cb29cb21cb29cb295c85890ae42b90ae42b93cb12795c857298701c1609034f2413901eb3094683091733344d033e0d132acaa34c4ee30957434c1313244382b398d3c4f0ace730e13d34f53d37ac3937ac3830e4382c07261c870648a786ca27a580e4ce244e44e4ace4ce0e4ce240ce240b072723226727058382b90339392b382b382c1c99c1c9c89c960e0ce4e0ce4e0b07067273e6727258392b38ff2c1c19c1c960e4b070670705838f2c1c19c1c99c9c19c1c159c159c960e4ace3ce44e0ce4e3fcce0e0b07058382b38339382b3933839396439252c4872ca72ca72ca57295c872485890ae53964f3965f39242c4be58e4af92be0b1cf96383e783e383e382c727c707cf07c727c73e58e0b1cf9f1c15f058e4f9e0b1c16382c727c7257c95f07cf27c707c727cf257c9f3c95f258e3caf83e792c73e58e0b1cf96392be0af92c7057c9f1cff95f058e0b1c16382be4f8e3ffcaf82be4b1c795f057c16383e392be0af82be4af82c71e57c796393e392be4f9e7fcaf9f2be4b1c795f3fe7c7258e7caf93e392be0b1c79f3cf95f257cf95f1fe57c79639ffff2c70a0800079603ecd71612cb09de71381f66aac420687e4226650cdc6176680617668061769dc58268332932930fb211343e211355621032115563328328343f0fa30fb0fb33280fb321021032112102b43e32112112b329fffbd2c42b01f3f1acdeaf777286a1355cc1eeecf82c1f467d1f5e7084207081f456c895977e65db2265d32265db207081f4583e8cfb3efccfa3e8b07d960fa33ecfb3fbfa2bfb2bfa3fbfa3fafa3fafb3fafb3fafb2bfa3fbfb3fafb3fafa2c7d963efcafe8fefe8b1f5e58fb3fafbf2c5d1dddd9dd5d1dddd162ecaeecb1747777477574577458ba3bbbb3bbbb2c5dff963ebfcb1f657f5e57f457f5e57f5e58fbfff3fafbf2bfa2bfa3fafaf3fafbff2bfbffff2c7d963ecfefe8fefeffffcb177e577658bb2c5d7962e8eeeebfcb17458bb2c5d1dd5d962ecaeecaeecb176577458ba2bbb2c5dff95dd15dd95dd1dddd7f95dd162e8aee8b17658ba3babb3baba3babb3baba3baba2bbb2bba2bba2c5d9dd5d15dd1dddd162e8eeee8b177e7f5f7fe58fa2bfa2bfbff3fafaf2bfbfff2bfa2c7d9fd7d7963ecb1f47f5f658fb2c7d163ecafebfcfefe8afebfffcfefecb1f5e57f457f7e58faff3fbfaf30e326333624e333632e231d546d312e1d530a8233323210b36ac7a31ec7a2c4f46eaba86318c46f18c67719c47315c6631ac46f19c658754c89224dd4c84f204bcc894bcd2f4bcd2f224e7a4b8ad2f34b8893220882c11056441a5e44191297160882c112644113e711125712588938989389893898838889f38889f388882b8838989f2b882c447f9618cb0c46c4c658633626336262363622b632b633636236263362622c319b1b19b1b19b1b195b179b131f9b1311b1311b17196188ad8cd8f88b1c656c65862363622c3195b115b196188d8d88ad8fcd898cad8cb0c45862363622c3195c415c495c416227ffcb11258892b8838989389892c441c4c416224ae20ae23ffce2620d8d8cad88b0c656c456c658632c31f95b19618cad88b0c5e6c4c66c4c7e5863362632c319b1b1f95b11b1319618cd8d88b11058882b892c4416224e2220b113e5889ffff2c4479c44415c415c4ff96224e2620b11257125710713125712571057105713e58892b88f38988388892c441c4c4796224b111e58882b882c44f95c416227ce2624b1105711fe58882b882c44795c4ff96223cae20ae23ffcae26f331e433b76dc30b95e3a3df73449133dd72835791335782f30bd1236a87a37d8c730b8c630bc7a331c2e357df730b82f31ec7a30bc2f30b87b344daa3fffbd2c41e83f005a0ee0eeb3706ce341c42bdd0003187a31e8c730b82e2b44ccc60b8cc61e8c7a31cdaa1e8b03d960c731ecc731ec7a30bc2f2b1e8c2e1e8b03d1ae5c6bbd16171ae5e6bbd15ae35cb8d72e2b5e7e97161795ae35ebcd7af2b5c6b979af5c6b97161795ae2c2f35cbffcd7ae2b5c56b8b0bcad715af2c2f35eb8d7af35ebcd72f35cbcd7ae35ebcb0b8b0bcb0b8ad79ae5e585e56bcb0b8ad79ae5e56bfcad796179ae5c585e6bbdff9af5c6b971af5c6bd7962e2bb8eebceeb8aeff2bbcaef2bbcb1795de58b8eebceeb8efbcaeffff2bbceeb8efbcaeef2bbbcaee3bef3beeffff2bb8b171df7962f2c5c58bfcaeff3bee3baeff3baf2bbceebcb171df795dc775c58bbcb17962ef2c5c77de58b8aef3bae3bae2bbcaee3bae3baf3baf3baf3bee2c5e77dde58bcaefffff2bbffcaef2bbfcaeef2c5e577ff9df7962f2bbfcaeef2c5de577162ef2bbcb17fff95de577960360c731e34da20e50cb58e4cd688b08d2b0734e5d9e30c730360b03306576576658639a61ae76c639a76c6b40958561b2695a76c561b0639a5847db58458360adcd2c58666c9b07615846e6d8658364dcc730dcc730cd8730acd83364d8f3361cc2c1b256e6959b258360acd92c1b1fe66c9b06e69b066c1b258364c741d4c751d0ad0631d47431d074f2c0ea63a8ea63a8e8563a160d83360d92b360acd82c1b2566cf99b06c99b26cf99b06c99b06c98e83a1607431d10631d4742b1d7cc751d0c751d0c741d3cac752b1d0ac752b1d0ac752c20e63a0ebe63a0e8563a18ea3a98e83a158e8563a958e863a8ea581d4b03a958e863a8ea63a8ea65094058284aca0f2b284ca1287fcca1287caca1ff3280a13284a1f2b280ca0280ca0280b0501594058280aca02c1405650960a02b284ca0280ca0280b050160a1f3280a03280a03280a1ff3284a1f2c14265014258284aca1ff3284a1fffff2c1b3e58363fffffffffffffffcacd8ff2c1425650194050799425095942565079940509594258284aca12b283caca13284a0ff2b284b050160a1f2c1405650194250960a0f2b284aca12b283cca1287fcaca12b284b050da03028040204010140a02010080300640ae302500803053c24f30d7c2a930ca42cf31c4921a300f0001300c4005305cc04f303cc03e34620fffbd2c41c003485d91db9ff00062e346243bfd000a9035bccab50300ac600d80006071010c603180c6611a82666027812018002a546032072608a05e690660a6330a28160074dc46f0c033306302b302a06234f02603428582329635f2eb1698880854e0c110038c168038c094064c008008d454d7cc660a5cca5c1d4c4f03899c459a1b8ef3180e80e98018048b009ba542604818c60701ba620e09e60de09e0d024120006cca729e4ca5b2baf182ea7acba030220082203b14028160104972b0109332164c5a76aafeb228dc6dd359e5dba0a2ff2c00c182d01c182d03d180c00c980c801c4eebff1779ae3fb76efa7ba8ca8927c39707a7a27c79803803958039803803980380398030031583a983a04c1583a45e2f14a771593bcf4b7e24f32e789492ebff72f45ee5ebc61540c4603207e180afe17007f53b0c00e4c44c60c00c8c50fd0fffd050d050d1c65d6a2ffffa251aa27c567d0fffffa219580133ba3f75e3292edc1863a4ea46dd474fffffffffffffffffffffffffffffffd4f980d0090981280b6984e00481848a1621869a25d18f32518198f263d19bd283d1a7d2d1b1b0fcf639bcf8c85987b8ff61db16c151d0749fb9cd72df399c764769881e1d19834809d9862389858ce9c5ca99b38cc9a0c149986cd1bcf161d83ce1ea3a91bc8f1997c611a16ce1bcaf21c32d31ade9b19160f191c9a9a68b599fa7d1986450b14e60e03a6271126471166450aa62a03a60e03a60e8a464698867d9f867f99062a83660d0403a0e98300e98a029983e0d2439810069810029810069818068602a8ab8ab3a01500a912a95c5987095b948b016d5fdb3ff4b0ee54255006ed19788c17050c2d0b8c49128c320c41c18a6f1728b945ca4e29eeef1fe56c8a800980801980402d79dc7a4a01980002980804980c03980c02df30180530902530880542c301402309446311448311c4830982528014c03000c23098c05008c05022b592500e2b477b0ffcea5d66d967ffffffff94b20c5dcb0cc4989356a6d779ddeb2ad6b755f57765b2996dda596d3bf38d6869da96d9d53434ef4ba1a7fa3384aa5d6bf2ab19a6ea300c013730b805f33126021130cb4230301a424a304f4122302905f9309b01e5308bc0253115c16431c9c4aa319809b1348b010e360fddfffbd2c41b83e62974fe0ff1f1056daadc81ff69e01033cce9a13e9998033720c8e03095404e3043c257309e00bd30074315306a01b93964c434b07666b9b5a486915398b4c4670561abd5a6ab341a9c58670859b40ea6965b8aa08c26b43291e438b21c5630e828906a18255402a4302824c4020012f82a2415279830b466f22268084188a8850f8238c0276895daa096a1e4406a530a427eb58491f081545ea7a311caba0d9712c06c2245b452039921093ca2624399cb1b2c29eb96a1f6c6b339233293c2e2af1b85c542519395617227c748270778c241b5976196923c2e27c2ba5fc4c49b6b75f582ca7ea3735ffffe0ab665746b4266378e2dfd7fffffffffce36c31231de4bfd191ff117fb8c19504f0c09013dcc8583304ca622984cb0e2c3cd17e039c8a86738190f763626173e280ca4e36eeb34d7401280e67a692ccc6a3708d58face8f60fa0b0e9df6268c2ee3714d7e9284d281eb4c64d280d7ecbbcac398c654a60c39c654c650e70d285280c650650cbbc650b032a63283286532530632a1ce61cc32a561cc61ce32863281ce612012061221206072070607207058038f2b03930390903d094d26834fa4ad216349a44a7a741e9d06952f95a42b485694b090ad2ff9a548695214492c25f34893cd3a62aa434a93cad29a548584869529e8485694d2a434890d22534a94b090b094d2242c2534a90d3252b4a5690b090d2a52b4a691215a534890d224f372e7fcb0e0b0e7ffcadc161c7fff95b92b73fffe56e3cadc7e5dffff372e3ffcb0e7cb0e3ffcb0e7fffcadc161cf95b82c382c382b70587058726e5c95b9ff370e3cdcb8f2b7058725873dff2c38ef9b871fd3a21dfffff65f302a03bf3183c6d2327a41d139209453312084833623919f370206d535458e2633ec4e26388c9fe23a48b6a13da898f333712b75337150153ed089223371145331208dc430be454831cd84203042842030be442035b23231156d2c15065408a685216685088685216568515a14685a1665408856541888549950229a1622959715bd15bd95bd9973d961eccbcb8cbcbcea510b08858452ba8345453444434444345a9345452c2296114d1114ad14d1110d1514d1110ad10d1514b08a575258442c549a2541a2221a2a29a22296110d1114b08868888584434fffbd2c46c83f3bd56de0ff77085de2a1ac1fe6e4054534445344452c2215a21a22215a29a22279a2221a2229d4a296110ad10b08a68a8a5844f345442ba82c2296113cd1110b08a568a68a8be58442b45f345452c22f9a2229a2a2f9a2a296110d1114d1514d1514b0886888a58442b44f345442b442c229a2a296117fcb089e68a8a5844f2b442b453454434545345443a844345453454434444344a834445345452b443a94534444344452c221a2221a25416114d1510ad10d1514b08868889fe568be68888568868b5256886888a568a68889fbf9dbbf45c58018cc0620d8cc4e31388c3620d88c5630d8ccde23388e1e2878ce6e33d88d1e32788d3e24f88c660a18cdae32788c9e2358cd7625d8ce1e2358cef62e58cd0e2438cc6e2358cd762438cc6e33588c9e31b8cc3620d8cc162178cb00b1182c60b1182c40b11f8dc456e33f1388b1e3371b88ad8cf8b88f8f8caf88d8f88f8d88b0c65862363e32c719b13195f196388f8d8fcf8988b1c65863363632c3195f115b196188ad88d898bcd8d88d898cb0c458e32be32c3195f19b1b19b1b19618cd898cb0c47c4c456c66c6c65862f36362363632c3115b115b115f11b1b19b1b115b11b1319618cd8d8cd8d88ad8cd898cad8cd8d88d8d88a310b0c46c7c66c4c456c66c6c47c6c66c6c7e6c6c458632b63362622b633636336363363e2f363623626336363ffd15b1f9558cb0c47c4c66c6c458632c31ff9b1b17f95b11b1b17f9618fcb0c458622b632c319b131f9b1b115b115b17ffff9b13196188d8988d8d88ad8ffcad8bffcb0c7fffa363622b622b62fecf95ff2aaf2c084258217cce061080c9c9655cd3ae3270dd952720e33eed24e068381cc4203dc0d957381cce0781a4e33eb494f70aed24cf704eb8cf701080cf702cc8c6f45a0cc2b7217cc9c81bd0c58b0ad8c58a0adcb02109829a2101829815b188400a61d6ca69a9b5b9554c35314c35314d2b3eccfa3e8cfa840e103ecb07d99f47d19f67d962102b3eccfa3e8cfb3ecacfa33e8fa2c1f6582efccba2e8b05d960ba32e8ba2b2e8acba32ecbb2b2ecb05d9597665d17665d177e582ecb05d19745d15974582e8cbb2e8acbbf32208832252f32208932252f32208932248834b88832252e2c11064411064491264425e64411206bfffbd2c47903eab9a2d20ff6b3471eaa5801ff5a38ac804576115d84577062ee0c5d81ae97606ba5d8457581ae976115d01ae9740c5d40df4fb037d3ec22fa063ef08bec22fb063e818fb063e818fae06fb7d01bedf606fa7d845f406fb7df06533c194cfae11a6ffffc234d81d369947ffffffffffff06110c1f907e0c1f81044d4c44abce14c8534d8f25314c1f820f0f62f7cd8ce8395f0d2af6c24df37e970f2038d90c413a6a0e14fc808e9a763d4f204c80ce3642950ce821038ce801044c4114abcc40e1898c4101040c1f91040d89f1acf1a9898c7e5898d89c7e4ae0f0f1aa0f0e0f5044ae0f0e0f5044d0420f0c7e5040c7e07e4b0823e63f282056c4e5541134101f834111f831f91f82b1f934114102b1f834114112aa08941f898fc2089607e4ac7e0d0407e7cc7e1044b03f05682056823e68203f0581f831f81f92c20818fc8fc98fc208f98fc0fc1a080fc98fc8fc95a0879607e4d0407e4c7e1040c7e47e4b03f263f03f0563f263f23f0563f0563f063f082063f03f063f03f063f23f263f23f0581f831f81f92c0fc1607e4b03f068223f263f23f268203f3e63f03f0584102c20898fc0fc019f93f00c3f2e113f2113f3033f27e0227e4187e4227e4227e4187e00e089f908c11061f9061f806410033f27e2067e0fc819f83f1819f93f0067e4fc830fc830fc419040187e3033f27e40cfc1f8061f9c227e00cfc9f9061f8061f8091f9033f27e4187e40cfc1f9033f27e2113f0067e2084187e2113f2113f00c823830fc830fc7f7061f8844fcaffffdc9d9fffffd75f317f31b37f117f34b7b29398c65434b665534da7572c30c9a6dbab1a6d12f1b2acc61b2ad949bf832a198d32a1b2a6629d947fe9b2a0bf98bf25b192f30c99ce12f989092f192f12f1612d8cc68c6cacc68cc6c5fccc685f8b06366636634663496e66362fc6bf2fc6bfe346bfafc6bf2fc6bf2fc585f8d20978ae5f3485202c4be690a406904bc5690f961213979212c24272f240690242569096121348521348521397d203481203485202c24258480ad203485212b484ad203485202c4bc56909a429095cbe5897cd21480d21484d21487cd20978e5f484d21480d20484ad203485202b480ad212c242569015a40690a40690a42690a4058484ad20ff348520348fffbd2c48183f27178ce0f76b545f6b61a01ee57205212c24258480ad213485212b480237e065f8237f81dfafc077fbf4237ec197e832fc0cbf832fc11bf611bf032fc11bf832fe0cbf832fc077fbfc237e065fc237fc197e03bfdf8237e832fe11bf01dfeff065f8237f832fd03bfdf8237e846fe11bf832fe11bf846ff065fa077ebf81dfefe0cbf832fdc0eff7f065f8197fc197f065fc237e08dfe0cbf60cbffffc197e2c0bf18bf0bf9bf859418bfa5b9d9418d15d941a6da6d9a6d44a18bf8bf1598d1961ad0986cad01890a6d9b0c9ce992f3ab9596198e69619a5606c18bf18d961954cc6d2dcb096c62fe2fc696c63462fe2fe62fe96e62fc96e696c2fc66342fe5663466342fe61b039865861b0561b261b239a63981b2581cc31201202b1202b1202c09018908909589015890992f0901f35b0586c1b65b26d86c9b61b06d86c95b63cadb26d96c1d72ba6a1ae95a87cd40a13aea80eb8a12b501a854275d5095a84d42a12b6c9b61b056d82b6c161b06d96c15f33cdb2d836c364db0d92b6c9b65b056d8390484e4120390c80ae427209095c83fcb120390c80b120390484e4121f2b901c86425890162405721390480e41202b90f95c80ae407209015c80ae405890f962425720390484ae40720901c86405720390c860cbf846ff846fe11bf846ff832fc11bfc237fc197e846ff81dfefe11bf832ff832fdc237e03bfdfbc197ef846fe11bf832fffc237fff832ff81dfefdfffff065fff08dfa0cbf2af2c1611a561619ad086c1bc6256986c0e698e61db186c2d0991503a991528199ca96bf995d8cc183a95d98cc883959ca996b0ae18500ae18ae8ae18ae10d99ca05098ae0ae158e6186c06c996186c186c06c186c86c1586c98e686c186c86c986c1611d71406a1501a86b858501a82ba56a02b501a854258509d71405850161426a0509a8543e6d86c161b256d836c363cb0d8ff2c363cace9e5883f99d0ea583a959d0cea7433a1d4cea7533a1d0ad43e585095a84d40a12c280b0a02b5095a83cad41e56a12c280d42a1350280d42a0350283cb0a0350a80b0a0350280d40a02c284b0a0350a87cd42a02c284b0a12b3a19d0ea7073a99d0e8583a99d0ea6743af99d4e86753a99d0ea567533a1d3cce8752b3a160e86743a160e9e6743ac1fffbd0c49001aae194d80f72b58554b59a95eed5a08d808b600db0d9c22d906367831b1c22d8c22d8fc18d808b620c6cf063660c6cf036cb66116c01b65b2116c7fff08b67831b3ffffc18d8720624024262422406caa96c696efe06634fe0696e2fe584b6f32c269733b61cd32c30d831cc2c2375639c339c120339d4da2bb08ec2364dcd360e5e480e5f978f9c97cd2197cb0901f3a909f39ce15cbc6904be7cef386904be572f1cbc909cbc909cbe90961202c24258480d21480232106484192108c80192008c800e4320064840db1cc036c36418d981b65b2116c7845b006d86c831b20c6c045b0116c81b65b2116c01f31b00c6c0339a0c6ce0c90046401190e0720900464184642119001c86400c6c831b2116c831b00ce6045b006d96c01b65b2116c81b61b006d86c831b006d86c031b206d86c81b65b006d96c045b00c6cc0db0d881b65b006d96c01b61b20c6c845b006d86cc0db2d90636606d86c031b308b6022d8036c363f06487fc1921846400c90c192084643e0c907c1921ff064842321fc2320c1921c2320e0c9083241c1920e1190ff0648383241ffe1190552b188b0719f7f4a1eb57c15bc66b19c46e821474a4645719988ab69bc4b11ac4311dc4b11cc47198c4b198882219502296045338ce33589622b388d62188c6338cc6318cc63588b071195222995222195022160a832a04532a0452b110ac4432a0442c08862208a78b1f95e23c58fcf1633c78bcae2162215c42c442b8a588a588be71221c58a716295c538b14b110b114e2442b8be5714e2c538b10e24538b10ae21c48871227f9c58a7162162216221c5885888712216229af5de585e6b9715ae2c2e35cbcd72e2c2e2c2f3f4b8b0b8ad715ae2c2e2b5e6bd715c42b885710b114ae29c48a588a588a58887122ff95c42c442c45f2b89e5710e2442b8bc238e11c611c5e11c5f08e3f83310331ffff8471047160cc708e3c198c238c19881988238c198e0cc7833103318471e0cc508e3f8331c0f1e3e0cc611c7847103314198e0cc5066308e3e0cc41f2c1e6a5119a1af08bc29b0f2a7b986cca7b194d8c3c98dd06f719b1a90d9a4346c69a4366c619b1a47f1ef71b39b74ef71ef76f71a08e3598fce351a08a081bc6bc61f9a79a953cd4de33cd7cde31e34a79a8de37cdfffbd2c4d083a94daee40eea974694295845ff597a0d1c3634ad1c0e3ff630e3f91c0d1c11c0dba0d98cd9a9b0cd98d98dba0d98cd9cd9ccd9cd98b0dd3e566cfe66cc6ce586e9f36e9367362741136271f831f81f9f34101f82c20898fc8fc1a080fc1a088fc18fc8fc04638846380323884638c191c0231c4191c40e38c71064700647108c7003530a640d4c29903530a600d4c54d08a9803532a6418a600d4c54d03532a600d4c29981a98532075314cc22d980db3367831b3831b381b666cc0c6cc06d9db381b666cc06d9db3045b3845b381b666cc116ce0c6ce06d9db3c0e384708463804638e118e0118e0118e2071c63881c718e0118e3f08c70038e11c00e38c7108c7008b66036ccd9c0db3b67c18d9822d980db336608b6608b6708b67036ccd9818d9818d9c0db3b670636706366036ced9c0db3b6606366845b381b676cfc191c2071c238f08c71f846380323801c718e384638c191c3c82bb45762bd6a189200a0f3144ca433d6cc69c36b368403455f43b3455ab8137c0e4323674ca4235040d5636b2cd573290d4a32a9ee6553dc8df03144ca294533f88be230f8d3e330f8c7e333dc8a4333dcd9d332908a4332908a423144ca423144ca433290851231448513314494a231448f7233dcc5133290c5122c0a24587e3d95bf1960f8ccf8cf88b07c4583e32b3e22b3e333e23e333e37e333e23e333e33e32c1f199f19f1160f8ccf88f88cf8cf8ccf8cf8cb07c4567c6583e333e23e237e23e284e898328981d13a2611a240ca2611a2508d1281d12a260744a8981be27c6117c4117c606f8df101be27c60c7c407f89f181be37c606f8df101be37c6117c6117c5063e208be281be37c5063e3037c6f8a117c581be27c7831f181be27c5063e2ff81be37c5f831f1781be27c4117c6117c40c7c4117c406f8df1c18f880df13e2063e2063e208be308be2845f1c0df13e2063e2037c4f8b08be3037c4f8fc1944c2344ffe11a27ff06513e11a270aa27fff08d1303a2544bff06512f065128468980001f961a0f32f89be330f8cbe22b674cd4a3528ccf727c08d4a25288c923183cc9221838b0ce9194867b9997c67f118fc69f198fc63f19b07b071c914919b07c91963f88a1f1cdf88f8cef88f8f46d3baae7aacd386d39aae6a254867487486fffbd2c4f0002ff59cc10ffad486bcb35849ff59b3574846a24a26574866fc67c667c67c667c6fc6583e233e23e22b3e332f82f832f92f9360f60f32f92f92c17c7960be3ccbe183cb05f265f2c1e65f25f065f0c1c56c1c582f832f860e32f82f932f82f8035f0be40d7ce0f035f0be7062f8062f9062f808af981af95f2115f006f8df1c22f8822f880df1be3037c4f8818f8c0df13e208be2037c6f880df13e2037c4f8822f8c18f8c22f8c0df1be3037c4f8a117c6117c40c7c60c7c708be208be208be2063e3063e308be208be3063e38317c8457c40d7c2f808af808af808af9062f9035f0be422be018be00d7caf9062f98457c81af85f1035f0be422be206f8df1031f1845f1045f1831f1045f101be27c7831f1031f101be27c7037c4f8c29f1818f8e06f89f1831f101be27c7037c4f8822f8c0df1be3ffc1944e0ca25f065120651284689fc1944cde666d451e74c692cb86aed3354ea7b2cc5691998436ef2c2dbe749e0b946bc1af0868cdd2784d19c1de4b1aa9bad88cd958dd05853d0c4716ce4cd8c23fcdd6d2ec8cbb275b4cbb31728c3671ba0c3671ba0c3661ba0c36545ccc36445ccd1731ba0c6e90d98b03c619e6a79a98f183c616078b2c2335af2a0b96565d91c7fa38144701611c0d1c51c3cd1c51c4d1c11c4ae3fb9e568e1fe58471336636636e9366e959b3f99b31b3959b399b31b3959b399b31b30323840e384700647108c700647006470c231c4231c606d99b3c0db3b6608b67036ccd9c0db336606367036ccd9c18d9c0db3366036ccd9c22d9c19ba40db3367064710647008c708323840e38c7081c718e0071c23803238832388463881c718e20c8e00c8e308c7108c7106470038e31c00e38471038e11c00e38c71038e31c60c8e20c8e0071c23881c708e0118e0118e20c8e0118e108c700647108c70038e31c70647108c7108c7008c710647106471064710647108c710647181c708e30647008c70c231c00e3847006470038e31c3065cafc1972ff832e5ff846e5419e3613f1bffffe11f19ffc19e33c23e340cf2c13a66bc22f044e35599b1a90d1bf8cb549bad85d91af091aa938d5665d997666b549b1866c6ad5268ce233468cd233651785150bb22b172cd19b5e10cf343cd4ad6de33cd4f3533cd078c2aa78064efffbd2c4f003b1c9a8c00ffad4867d2b97c9ff5eba9a783a34f013c12a93a6513c0993a64e9993a49e09549d32bbb235cbbb32b5ca2c2e515ae595ae59a38c7f1a382381a38a381c7fa381a38a389611c4a238fcb08e2584702c47f1a38a381a382389a38a3895a389c7f47f79a38238960a64ca61530ca65534ca64a60d531534b053058298354d29932982992b29932982992b2992b4712c2389611c4d1c11c0ad1c0d1c51c0d1c11c4ad1c4d1c11c0d1c51c4b08e068e28e268e28e0568e0568e068e28e2584702c2389a3823895a389611c4d1c51c7cd1c11c4b08e3e568e0584712b4702b47034714712b5ca35cb5ca2b5cb2b5cb35ca5ca2b5ca2b5cb35ca5cb2b5cbff2b5ca2c2e59ae52e57f95ae5161728b0b9456b9656b94585cbf2b5ca2b5ca2b5ca2b5ca2b5cb2b5cb35ca5ca35cb5cb2b5cb2b5cbff35cb5cbff2aae56cb0b95fe56b95fecaba05d4123552674e3bad48a9d373031554e1127497febaf30f887e332f18e2831290966285e38c9662f1cc5622b8ccae51ce0cc394994ac60e30e385623158838d3158c90e3243c90e31588563312904a53090c2422b1290c3e21f88c7e20f8cc3e33f8cc3e32f88b0307958c1c617c8c1c56307187c41f19607e230f8c3e230f883e32b0f88b01219848625215848658090cb0121160243f3e3db92c71e586e0db96e0adb936e38e2c371e56dc1b72dc1b72dc79b70dc15f1a586e4b0dc95b7056a69a9aa69a9b5b9a9aa69a98a61a9aa61614c3ad94d3532b63adab735314d3532b636e5b836e1b8f2c3706dcb706dc37056dcf9b72dc15b70586e4adb92b6e0b0dc1b72dc9b72dc95b726dc370586e0adb92b6e0b0dc95b73e6dcb706dcb726dc373e6dcb70586e7cb0dc1b70dc9b72dc15b73e56dc1b72dc7961b82c37256dc79b70dc161b82b6e4adb8f2c370586e4adb92b6e4db96e4adb82b6e4adb82c370586e0b0dc95b726dcb70586e0db86e3cadb92c3726dcb726dcb726dc37056dc1b72dc961b936e5b9f2c3706dc37256dc7fffffff063e30bcc78d1e34c5cca4f0c5cb8d54de87b760cf3598c4e3555e08dd6c172cd6dd3cd4de8698c0db374868c4716cdcc5ca75b0c5cb1728d19a4668cd8c23fca1b1b323fd6a932ecd19a2c0b946bc1233462e5233a71fc8e271fe8e268e11fc68e2fffbd2c4f081f03160cc0ff6d7863fb5d7d5ff5a2a8e27e69e6be56f1a7e69e69e6f1af1a57e6bc2b78dff3471471347147034704703471470347147134704703470471347147134714712c2389a38c7f1611c0d1c51c4b11fc68e28e0584712c2389a382381ae52e51ae5ae51ae5ae59ae5ae5945cb9ae52e596172cd729728d729728b0b9456b95e157280772ae5846e5046e5c1972c19728237281972bc0ee5dcb832388463881c708e2118e0071c23801c708e0071c63801c708e2071c23801c718e0118e00c8e2071c23801c718e2071c23804638e11f1bc19e330af1bee0cf1bc23e3423e31a0cb940cb95c23728197281972b03b9772ab065cb08dcb065cb708dcb08dca581dcab940cb940772ae57d5fe0cf1908f8de0cf1a15e3411f1a15e35fd55423e3611f1b5419e317f5e11f19f08f8d0678c833c6423e33f0678d81f8df1b5f33a38e8f3e1d21d43b49168319d0eceb83d0ece2c92270d155ae00e1856b28c69d355ccf736748c513290cda0f8b20eb808b24a844e99ee65219a9462891b3a65211c59044e9b41e44e96115532275155d151d3a33a38e8e33a3ce8f35a08b3232cccb3228599ccb322ccca8b419bf1df119f11f199f13f11bf13f1143e2161f88b113a5589d389c89d2c44e162270a44e3cae270da75a70da71a74b0d3a6d38d3a6d3ad386d3ad3856d3be56d3856d386d3baae56d39e56d386d38d386d3ad3a5355c56d386d38d39e6d38d3a5869d369c69cfef95b4e161a77a56d39e5869d28d3af2b69c2bd56f369c69d2b69c2b69d2ab4e1b4e34e1469c1b4e34e95b4e79b4eb4e961a77cda71a70da71a730369c69d2b69c2c34e7961a70b0d3851a706d3ad3a56d3a56d386d38d3a5869df2b69c3d5669c28d3b2c34e961a77ffcada73cada70a34ef45869c2b69cf2b69c2c34e95b4efe8ada70da71a74b0d3bb2c34ef961a77ca8d385869c2c34eecb0d3857665ffe58b322c599fecb16645766658b32ffe73fcb166657665e7665666766766458b32f2bb32e313316f31e1f6ee56bfff9beaf3144a96237c0851329f118e4335288e4333dccd9d35288d9d22908cc38248ccf4e183cd4a32908d4a3a588d4a33dc8c5132908c513528cca42528cca433dc8cf72290cca425288ca43290cdf03290cd4a2290cc5133dc8c512fffbd2c4ff03f49152ba0fffc5c651b59801ff5a901448cf72290ccf733dccb07b999484a511948428998a242891948628916144ce90e908ad448d44d44cd44d448ad448a2894b0a27e585123513a432ba42d95a8916144fcd44d448a8a246a24a266a24a2452909e58513f849f1c22f8a117c406f8df1831f1031f101be37c607f89f1845f1831f181be37c6117c606f89f101be37c606f8df1031f101be37c508be2037c4f8e117c6117c508d1308d1203a274482344b0651306513065138468941944c2344c2344a0ca260744a8901d12a270651383289c0e89d12f83289e0ca258468941944c1944a0ca2508d138468904689b8468941944e11a278328901d13a260ca2583289e11a2781d12a24f83289832890468984689032898328942344c1944e11a2706513f83289c2344f06512a8234481944a0ca260ca258468941944b8328976e11a2584689feae11a244c414d45332e313030aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaf2aa8207219b3a45243318a27c791a946a519a4c849198c1c7a7997c65f119fc47f19486126d651aae67f1a7c6517e21587c4617c1244661c9246661c124666ab9aac66ab0d3a66ab35966a082822634e2820566ab19aaca0896069d2b355cc69c5040acd563355cd562c0d3a574845144a56a24748748656a2658a4337e23e233e33e22c1f1159f119f11f1959f199f13f11bf13f11d21289161448b14847486a246a26a27e51449e585132c28981d13a2611a2411a260744e89832890328901d13a2708d1303a2544d82344e0ca240744e8981d13a2411a25846890328981d12a260744a890468903289e0ca2611a240ca2611a270651283289784689c2344c2344c234482344c1944c0e89513f8328981d13a2783289c0e89d1206512ef0669d8334e78474ec0f4e69de0cd3a11d3807a774ee11d3abc19a77ea7c19a760cd3bb419a7019a73ffff8474e8474effffc19a77ff08e9db3ffffd6bf9913a8aa1f9eb1631445566a510a2472198a24777c28226d65359675c09138644e11387163570651a0f9c59044e1a2a88aa14455e67b9948667b93e066ce98a26644ec592644e913a6d0722aa51a0f142274644e22aa644e913868aa1138644e341c644e113a552274aa44e1a2a844fffbd2c4e581eb5da6c00ffad4867d3597d5fb5f98e18d3834e19aac34e18d3834e18d3a34e958d3a581a74ac89c2b2274aa8aa9913a44e15913bfe644e113a634e0d3a634e0d38634e1aade5634e798d3834e158d3a581a70ac69d2c0a2662890a2456289958a245628998a2628998a24289958a27fe65210a27e0744e89046890468942344c2344c1944825448234481944c2344e11a2503a2544c234480e8951206512832898328901d12a240ca240ca270651306513065136e11d38c11d3811d390669c08e9c03d39a7019a7207a774ec23a740f4ee9cc19a7423a7607a734e0474e8334ee11d3a0cd3811d3a07a774e419a740f4ee9d03d39a7611d3bc19a7019a7023a7207a734e01e9cd3908e9cfe0c22742244ef83089c7089139f06113bf088d39fc1834e42234ebc1834e60c1a77f060d39e111a77c1834e84469df6c2244e550000001fcb08e06636ca8663496e6fe26366634fe069b4c32673aeae673a9b6586192b1cc33b73b63411a5531f94112b410383d62731f86263626626331b31a34b731a317e17e34b64b732982992c2a69594c194c94c795a089a0831318fca081a088fc9625e3979212b484ad2134825ef2be70ad203979203485203481213481203485212c24256d93e6b64db2d92c364db2d836c364af9856d82c360f9ad92b6c79b65b06d9e61b61b26d96c15f30db2d93e6b64db0d82b6c161b0589079c8243e7219015c80ae40720901c82407219079c8240720909c864056d92b6c1b65b056d8f36c360db0d836cb64b0d82c360adb056d82b6c9b6798586c961b056d92b9095c84e43202b9016243ffe589095c84e4121f2c480e4121390c84ae4057212c484b120ff2b907f95c87cb121390c84ae42589095c84ae425720390c80ae43e58909c86407219016240589095c87ce4320390484b120f2bbfff962fe577ef2c5ffcb17ef2c5f8aefc58bf9dfafde58bf962fde58bf1dfefe77ebf15dfcaefc577ef2c5fcb97d859c2ab88e7fa3cb0599194842891be04a51998724911aaf47a799fc43f19a7c4ff11978c122992ce71415948456a5119fc61f19553e232f8cbe232488c393248cc393183c60e31a70d5631a70d563355c69c3355cd573144c5123144851333dc8512314485122844e4d1554550a11383227089d2b2270afffbd2c4ff83f1c956d46f779446f42a9881ff7690d448d44e908d449448d44d44cd44d44cd44d448cf8df88cf8cf8ccf8cf8ccf8cf8cacf8ccf89f8cb07c6583e232f82f9360f2f92b2f832f92f932f92f82c17c960be4cbe4be0acbe3cef9be0ef8be4ef8be0ef9be0ef8be0ef8be4b17c15df258be0b17c1df37c1df17c9fc7f11fc5f115fc457f19fc7f1163e23f8fe2f2c7c47f1fc457f1963e32bf8fcaef82c5f277c5f277cdf277cdf058be4b17c79df17c15df077cdf077cdf058be4ef9be3cef8be4aef9f3f8be22c7c5e57f115fc457f1963e3f2bf8cfe2f8cb1f1163e33f8fe3f3f8fe33f8fe32bf88b1f115fc457f1963e32bf88afe22c7c458f8cfe3f8cb1f1795fc5e58f8cb1f115fc67f17c7e7f1fc458f8cb1f1163e22c7c657f179fc7f115fc457f17963e32bf8cb1f19fc5f19fc7f179fc5f1963e22c7c658f88b1f195fc47f17c457f115fc67f17c658f8bfcafe32c7c7e57f195fc658f8d5f2a2944630705f26c472af66abd8c1a661c9872693205f069320c1c510881978e4b3192463071a4ca49199e9e7a71987017c18c1e17c19c62b198dc2b118dcab11d21a891d2152179d21d2195df1160f88cf8cf88df89f88b14867ee4a25fe56a246a26a25e6a25485e6a26a27e67c47c5e67c47c667c67c6567c5e583e32b3e3324324232422432b243324324232422432c12199211219921252992112116090cac908c90c908c908908c90c908c90c90cac90cc90c90cc90c908c90c90cc90c908b048664844840c5f2115f00c5f108af8035f2be2115f18457c6115f20690d210452101a4294a1148406909218312140d21a4308a4208a420624281a424861148406909210452101a4348508af9c22be206be57c0317c8457c8457c422be60c5f2115f20c5f1035f0be418be2115f20690d2181a424840c4840c4840c4840690921e11486114841148606909210452181a43484114860c4870348490c229080d21a4208a430624208a4308a428317c0457c422be40d7caf9062f9062f9035f2be40d7caf8f062f98317c8457c0457c6115f3035f0be018be422be3fffff08d12f2c3d10653614da6a7ba2e442a7a1a9eea7b9a3362e518b971aa9445cc6374b0f2564019957055c1437be63748dd2653694d863c68f1863c6adbc6b6f8f1a53cdfffbd2c4f103f43180ca0ffacdc623b25881ff59f847e6be687e68f1a57e6857e687e6af187e6be687e69e6a6f1af145478a3f3578c378d78c378c78d378cf352c3c61478d1bc63c6961e34ade30adba4dba0d9bcaadd2566cc583672b36633676e834704712b8fe38fe4702c2389611c4ad1c4d1c11c0ad1c0d1c51c0ad1c0d1c11c0d1c51c0d1c11c4d1c11c4d1c11c7cb08e3e584702c2389a382389611c4b06cc583672c1b319b39b399b31b3f959b399b31b3959b3960d9ccd9cd98b06ce66cc6ce66ce6ce118e2071c238c191c4191c7038e11c40e38c70038e11c4191c4191c40e38c70064710647006470038e11c0191c40e3847084638e0c8e0118e00c8e00c8e20c8e308c718323804638046388463881c708e20c8e2118e20c8e2071c238c191c0191c0191c0231c40e38470c0e38c7008c708323804638c0e3847108c7108c7006470606470c231c60cf1bf57ffffdffffff846e5e0cb94a00002f30be4c3831084420332746f434224bc73259824431839265263070b039c183701c6961c14d2938a4eb9158cdce0e30eb95588eb8ce3cd58ce3cd589588cbe648cd83cbe0d83f0e0e48a48cc90c90cc909c14c909c14d295290cbe248ccbe1838d83cbe0cbe183cd83cbe0cbe1838cbe4be0cbe4be3cacbe0b05f2569485648664844845694a64864846486487fe6dc3706dc3706dcb706dc37256dc9638f2c370586e4db86e3cf8f6e0f8e6e4f8f6e4db96e7cb0dc1b72dc161b82b6e3cdb86e0db86e3cadb836e1b82b6e0b0dc9b72dc961b936e1b836e1b82b6e4db86e4db86e4b0dc1b71c71a9aa61d6ea615a9856a69d6ca61a9aa695a9856a69a9aa6f95d6e56a61a98a69a98a69614d2c29a56a67962432b90fffcb121f962422c485e572196242f2b908e43908b12115c87e572115c865890bcb121f95c845721ff9c8521162432b90bce4290ce4390bcb12116242f2b90cb12196243f2b90fce42908ae432b90ce4290cb1211c85211c87211c8721f95c85fe5890ce4390cae432c485e572115c87fe572195c87e58908e42908e43908ae43ffdbf587ccf8af88c7054224d7aa4ba8d7e30f8ccfe21f88d57a248cc2f80be4ce281294b04b319c5097518e0a4b3197cfa79fa7e1c197c97c9fa7307997c17c197c61c9df1df119f11f19df15fffbd2c4f303b38556ce4ffba9d6c3a41945eff822f199f15f199f1bf199f19f19df15f1160f8cdf8cf88ef8cf88cf88f8cb07c467c4fc66c1e5f065f05f265f0c1c6c1c5f265f25f265f05f265f05f065f25f065f25f26c1e5f256c1fe582f832f860f31b838d31b91b931b91b931b81b82b1b931b81b92b1b831b938e2c0dc18dc1c695a5279921921992112116090fcd295290c908908b048464864865824332434a531b81b831b81b931b81b92b38f2c1c7160e34b0372563705838f2b1b831b81b831b91b82c0dc9606e4c90c90bcb04845824232432432b24332422432b2422b2422b24332432432b2422c1219921121f960908c908908b04846484485e64864845648658242f2c121959211592116090bcac90cc90c90cb048664844866484486564866486484564846484484671c3706ac6371e637071c6372370637237063723726372372637237063723706370372581b931b81b82b1b82b1b831b91b82b1b92b1b82c0dc959c7158dc98dc8dc98dc8dc79606e7ffffeef34bdd4378ce2398c633b8a623188e23d8a62338ae23578c737dd5f2c1c65771985e3d98f6d59abc17163c634bd2f32248939ed2e32232137512e3751d5375488f34bdd534bd2f32208939e92f32212f32248934bc892b4bcc88224d2f220ac882c11269711058882c4495c41c44495c41c4c415c415c4162a0ea514ad14ad14b0887508a68a8bfe75088584434545344a8345a82c221a2a21a2a29a2229a2a29a2221d4a29d4229a2a21a2a29a2a215a21d4221a2a29a22295a279a2229a2229a2a29a22216114ad14ad10ad14d1114d1513cd1110ad14b15268a8a56885689e5844345442b442b4534544345452c229a2a29a2a296114d1517cd1110ad13cd1114ad14ad14b08a68a88568a568be68a885688588938988f2b88f2b88f2b892b89f2c447fff95c496220ae24ae23cae20e2624ae27cb11056c5e5863363622c3115b115b19b1319b13115b19b1b11b13195b116188b0c5e5863f36263f2c3195b11b1317f96188b0c60c44ffff84513fe0c4404513e0c44fc188908a2708a27cc484e74d866254aec44c97d36cd860484dd5ce74b073a64bf12a69b424265841b261ac9585825e312039c325e894339d757312025f2b619312139c3120120325f4db31201213121fffbd2c4e403eff9ace40eeeb7c67f361b01ee56f01203120120312125e3121120325e25f325e4da2c12f192f1ce18909ce996106c160730b01b063981b063981b0580d9f2b909c8240721909624058901c8640721901b679a586c1b61b056d92c363cb0d92b6c795b63cb120390484b121f2c484b121f2b9095c84ae4058901c86405721ff2c484e4121f390484b1212c484b120f2b909624056d82c364db2d936c360db2d92c360db0d936c364db2d82b6c95b64b0d8f2c360db0d92b6c95f34b0d82c360b0d82c364db0d936cb64db0d8f36cb64db0d82b6c7961b2586c15b60b0d92c360db0d936cb64adb2586c15b60db2d82b6c79b65b056d92b6c7fff961b3e56d936cb64db2d92c364b0d82b6c161b3fe6d96c95b60adb211907846400c90c192006482072190c232106484232006483e0c90c1921c0e4120064802321c19218464308c841920f846401190c1920064861190846400c9060c908324384641c192106483f08c842321af3210329369d2693340190343f32830fa66d366d89d35569b2332843e355643f35569b2389d66c327a1d4346c27a33c746c2882d31910ba2b26937840fa321055630fb210343f32832103292b3292b3292b32830fb210321043e3210211321121030fa0fb3843282b3e8f28840cfa3eccfb3eccfa840b10819f47d99f67d99f70899f47d19f67d15c2267d9f7e7081f467d1f5e567d99f47d159f667d9f6583ecacfaff2c1f4583ecae1133ecfa2c1f6567d159f467d9f667d9f6583efcafefcafecafe8b1f458fb2c7d9fd7d15fdf95fd163e8b1f457f657f657f7e57f658fb2c7d963e8b1f458fa2bfb2bfa2bfa2bfa2bfaff2c7d95fd95fd7ff95fd163e8febe8afe8afebcafecfebebfffcfebebfcfefebcb1f458fa2c7d15fd15fd1fd7dff9fd7d163e8fefecb1f458fb2c7d15fd163ebcfebeffffcafecfefe8afecfebecafecb1f658fb2bfbff2bfb2c7d95fd9fdfdff9fd7d1fd7d1fd7d95fdffffff95fdff9fdfd963ecafecafe8febebcafebfffcb1f657f47f5f5e7f5f7fe57f67f5f47f5f5e57f7e58fbff2c7d15fd163ebfcb1f657f7fe58fb2bfa2c7dffff9fdfd95fd985e171611230b82f3a39f7357a8e30b91337c8cc31649334495e331d13324c583248cd30bc7a37d8c630b8c73248cd33301d31fffbd2c4eb83f475b2d80f7774c5b935dd81dd66d8609331e8c630bd1230bc7b30b87a31ec2e2b578c7a44cd130bcb063985c3d9602f30bc2e2c05c63d8f666305e61705e563d985c17985e179aef456bcd7ae2bf46b97961795ae35eb8b070ec1d33a70b070b070b073cb070ced9ff2b5c56bcd7ae2b5c585c6bd7ff9af5c56bcb0b8ad796179617f95af35eb8d72e2c2e2c2f35eb8d72f2b5de6bbd962e3bae2c5e577f9df79dd7162f3bee3bee2bbbffffcefb8b17f9df779dd7962f2c5e577ffff9dd795de57715de57715de58b8eeb8eebcefb8aee2bbcefbbcb177f95de58b8efbceebbfcb1795dfe77dde77dc5777f962f2bb8b17162f2c5de77de775fe58bcaee2c5e77dc775c77de57715de5771dd7962e2c5e58bcaefff2c5e58bffcb17795ddfe58bffcefbfcb17f9dd715dde57715dfffffe58bcb177ffffffff95de5777ff95de577962f2c5c57715dff31a71aca3861eef93355daca37c0a43335288f7337c094a12b3dc8c2f91838c92255e8eef81a70d4118610c2f83d38cf4e248cd26530e4a0a27285214d9d22908a86ab1a822a08160d5636b28d5631a75acb3355d41033558d572b1a70c69c1a74d4111a74b034ef98d3a34e9d21289f9d21a891d212899a892899a89a89f99f11f1962f88cf88f88acf88cf88f8cadf8bfcdf8cf88cf8cf88acf88df88f88acf8ccf8df8bccf8cf8cacf8ccf8cf8ccf8cf88acf8ccf8df88cf8cf8bccf88f8fccf8cf8ccf8cf8cacf88cf8cf8e117c414f8a06f8bf101be37c6117c4137c4117c6117c7063e3063e2063e2037c4f8c23f8823f8e117c406f8df1845f1845f101be27c4117c40c7c508be2063e3037c4f8c19f8822f8c0df1be20651203a2744a0744a89c194480e89d13065130651203a2544c1944eb81d13a260ca240744e89f853e3418f8818f8818f8c22f8823f8c0df13e381be27c606f89f160c7c6117c7037c4f8c0df1be2037c6f8c0df1be281be27c606f89f1831f181be27c40ca2611a240744e8983289046898468903289419448194480e89513832890328983289c0e895120651281d13a240744a890468983289c23448234480e89d13d0eaf5c19a76dea8474e8334e2bffef0669dfffffd5e6498b0751af860e372684a86587c8ccdd48c59074cb41b8c6e358ccc160d08070fffbd0c4fa03fa5daac20ffad4c5bcb45e01dd62d0d43164ad433164933165092b24cd09248c58164c93420c59164c1c160d09160ac923420923164583074cc2c03860e0b2562c79601d3070593070932b074c1d070ac5839614d4282b506a029840a61429cb0a585264489608990225644c8bd32040c8912b206408991225644b0f4c81032240c81032240ac816081608191205640b044afa7de796387de7963be7de95f4af858e7f96225703840e302c44b11f38c3cb1038c4e312b8f962070895c4b1d3e70b1c3e74fbd3ef4fbc3e74b1c3e74b1d3e70f9dff2c73caf9e58e79f79e7def95f7cafa58e95f0b1d2be16387ce95f7cafbe58e95f4b1d2be163a7de7f9f3857d2be963a57c2be95f0afa7ce15f4afa7ce1f7857cff2bef9f3be57dff3ef0b1d2c74afa58e963858e963858e963857c2be1f7a57cfff2be95f0b1c2be1639e57c2c70b1cf3ef4afa58e95f0afa58e9639e7ce163858e963a7de15f4b1cf312012035a04ac34ad1cd31cd3b635a05a0322b47131991992c09a982989a960398c650398c3612b0cb08edcc730730cd34418c1d4660c1d4664c48097cce70e70ce74484c480480c360360c734364c730364b039a65841b265841b2561b0580d92b0d93831d4acea7063a19d0ea707cc99d4ea63948958e0c703831c39bcc723931c244c703832994cb05232994cb052ff2c14cca6c3f2b29160ea56742b3a19d0ea6753a159d0acea56752c1d4cea7533a9d0cea74fff2b5015a80ad41e5850f9a8541ffe5850959d4b074f2c1d4ce8752b3a99d0e8570633a9d0ace8583a959d7cce874f2b3a99d4ebe56ea6e8ea56ebe56e86e8e86e8e86eaea6eae9e587537474375752b7537575374742b742b74f375752c3a1babaf9baba95ba961d0dd1d0add4add7cb0e856e858752b742c3afff9ba3a1ba3a79baba9ba3a161d4add0e8280b1427434258a02ba02ba1f2c501d050796280b14058a03a1a12c50796284ae80e8687fcae83cb14058a0f2ba1fff2c5095d016287cae87fcb1405741e74343fe74143e5741e74141fe58a1ffff2c5095d0f96283cb143fe574258a1f2c28206c48311e6abd8c1e65f197c667f137c67e36a8226d65a82263f197c661f11fc667b99ee662899ee64d41099aaea089b5966ab98fc63f11a7c63f118fc4fffbd2c4f003f3f1a2e20f7375467ab55881ff5a685f198d3834e18d3ad6618d3ad6518d3a6ab99aae34e959aae66aba820634e1aac57aac58d57369cd56cca34e4b0d3856d386d3ad39fc2c34e1b07b07997cb07197c3071c91307997c17c160be0b05f2565f26a26a26585122c28915a89f95a896bfcd44d44cc90890cac90cc90c90cd294908b04865648456484648448656486582423242242324224333e33e233e33e32b3e32c1f119f11f1160f8cacf88cf8cf88cf88f8cacf8cb07c667c67c467c67c6583e3037c4f8c18f8a06f89f1031f101be27c6117c7063e2845f1418f8a06f89f101be37c4117c60744a890328960ca2411a240744a89046898328981d12a240744e8904689c0e89d1284689708d1308d1283289e0ca27c0e89d12c2344f8328984689032897f81be27c40c7c406f89f1845f1845f17063e308be3063e3037c6f8c18f8822f8818f8822f8818f8f063e3831f101be37c60c7c406f8df1611d3bff8474eefffff7fc23a77fff42af314d42032684ee3268340355666c332966d3328556332832830fb43e2c21f1a1f9081908a1f1a771a019341a01a7705d99348c898c80c819341341a1015b98a68a698a615b9ac515b190887d187d07d987d108190819479595b995b8a698a68a61595b15aecad746bb5d95aecd76ba2b5d9ae976585d1ae974579035d2e8d74bb35daecd74bb344220d112f344220b088344a20b088344220e5e89344a20d12893e2e22c311f1b11f1311b13195b196388f8b88d8d8cad8cd8d8cd8988e2624e2620e2624e2220b113e5710711127131271113e58893898838988388883888938989f2b88ff388882b89389882b89388882b8938889389882c449c4c415dd7962ebceeeecb17477776775747757658bb2bba2c5d1dddd15dd962efcb1745777e577458ba2c5d9ddddf9dd5d95dd95dd162e8eeae8b176577458bafff2bba2bbb3bbbb2c5d9dd5d795dd1dd5d1dd5df95dd162e8eeaebfcb17458ba2bba2bba3babb3baba2bbb2bbb3babb2c5d15dd962e8b17658baf2c5d15dd7962efffceeeebcc3e21f88ccb92b88d23a48e8c85e162ca10bc31838f4ed9a4ca17c9924617c987c67f119fc43f1187c63f11613e231f8cbe2309087042b259cc7050908cfe21f8cac7e230f883e332f88be230f8cbfffbd2c4e803f01956de0f73748691b259c1fedab8e231f887e32c07c6503e3987c63f1187c41f1987c41f1187c61f19587c7e7f17c657f19fc5f179fc7f115fc458f8bcafe22bf8bfcb1f11c852195c865890cb1211c872116242390a43390a42f390e432b90fcae42390e42f390a43390e42390a42f2c4865890ce43908b0dc961b836e1b836e5b92c370586e4db96e0adb936e5b92c37256dc1b72dc9b70dc161b836e5b836e5b82b6e0b0dc1b72dc161b92c372586e0db86e7cb0dc95b7056dc961b92c3726dcb70586e7cb121962422b90cae422b90cae43390e43390a432b90cb121f9c8521f9c87219c8521f95c86721487e572116243390a42f2c4865721ff95c8458908e4390bfcae43390a43390a432b90cb1211c872116242390a432c485e72148658908e4390c1890e0c48508a4284521c1890a0c484114840c484069092181a4348508a4383121422908189082290a0c4850624308af808af8ffe0c5f1fff8457c0457c5500002f317f4b633b769735a12c23ffd655317f7f1331bb28365417f312125f325e619317f98c331a17e317e31b3b294b62c18d19611611a5616199db0e698bf8bf9a5b8bf1a5b25b998d98d18bf0bf998da5b18bf18d98bf25b198d98d98bf18d1a5b18d958bf95a5b9afcbf9afcbf79617f2b5fcf1a5f8d7f5f8d7e5fcb0bf95afe6bfafe56bf1afebf1631b2b480b0901625f2c24269024072fa40690242690a42690a40690a406902406904bc58483cd2097cad202b483cd20484ad203481212b480d20484ad21f397920f2b487cb0909a429015a4256901a42901cbc901a429095b9be66c1b066c9b2566c19b0e6960d82b364cd9360dcd360cd8360b06c159b058364cd9363cb06cc237ec197ee11bf60cbf046fde11bf60cbf846401190846400c9081c86420c90046420721900464007219081c86400c9003243039048607219060720900464306484192106480237e832ff065fe11bf40efd7e08dfc0eff7f08dfc197f81dfefc0cbf81dfafc11bf40efd7f065fb065fc197fffffabfffff065f90403cc4102950c62707e0d6dd07e4c83d1044ce8107e0cc6a2954c6271898cc6a1044c41120f4c6541950c7f00c68c411189cc62620f4cc6b20f0d2ddfc4d9505f8cc68c68ad044c7e2950e0f47e4e0f20f0b0c4fffbd2c4ec813099a4d64f76b556e6315a95ff71bac56c4e56c4e63f23f25682068223f263f28226c4c3f2581f8341141131f91f92c0fc16189cc7e1040ac7e0ac7e4c7e07e0c7e07e7cb0821e563f0563f062422426240240624224256240581202b12131201212c090960480c480480ac484c484978c480484ac480c484978c484487cc480484b02425825ff2b1212bbff9dfefe77fbf95dfcb17e3bfdffcefd7f2c5ffcaefc77ebf1dfafe58909c824258907f9c86425720390c80ae4058901c86425720390480ae4057212b90f95c84e4321f2b90962427209095c80e41202b901c86427209016240720909c864257202b909c82405721390480b1212c480b17e2c5fcefd7f2bbf95dfceff7e2bbf162fe577eff2c5fbcefd7f2c5fcaeffe58bf95dfffcefd7e2c5f8b17e2bbf9c8243e589096241e5890962427209016240720901c864057202b9016243fe589096242721909c8642589095c83ce41212b9015c80e41212c7e3fcaff3fffffffffffe57f9ffffffff2c7e55f314d6f4319169c334141731d5320308946c341734134170ba33211d5332112f2c0b198f18711897990984413d984493d9a0b85d98c80c818c81349a995b1a98a69a98a6962b633ea1133ecfa2c1f467d9f458537cd4d534aeb62b534c894b8c894b8d2e4b8b0441a5c44f9b1b11b1311b13115b11b1f11b1b11b1f19b1711a2d41a2a279d42295a21a2a296110ea510ea510d1510d8d8cb0c4586336263363632c311b1319b13115b11618cd898bcae20ae27ffcae23fce2223ce2224b111e71311e577658baff2c5d95dd962ecb17458ba2c5d95ddf962e8aee8b17458bb363622b63362632b63362632b63362622b632b622c311b1b11b1b11f1b115b11b1b195b179b13196188b0c66c6c67131058892c44795c495c41c4c495c49c44496224ae23fce2623cb11258882b892b89ff2b88fff2c441c4441c4c416224e2624b112571057107131271311ffe5712571258883888938989f2b892b89ff38889389892c449c4c4f96119a39a1cdee361e4a6d3914c8ff336348ff31534d6c2b563cc6191d5cc4db0978ca5507e4d09920f0c8022ae4cd6c1534c2980a60cdef1ba0c3660d98c3671ba4de31e28aaf187e68f1a6f1af1a54a6d33663672b6e936e836734714712b8ff38fffbd2c4e483ecd556e20f776ec706aad981ff75f8ff47038ff4712c47f1594c194caa6194c94c994c14c194caa6194c94c15a08958fc18fc0fc1a080fc9b132089a08a081a088fc158fc98fc8fc98fc8fc98fc0fcf98fc8fc9607e4c7e07e4b03f0563f2581f934101f831f91f92b41031f841031f91f82c0fc1607e4c7e5044c7e47e4ac7e0ac7e0d0407e4c7e47e4d0447e7cd0447e0c7e07e0ac7e0c7e07e0c7e47e4b03f2563f263f23f063f03f0581f9ff2c3f2587e0adf82b7e7cdf97e0b0fc1bf0fc1bf0fc9bf2fc795bf056fc961f837e1f937e1f9f2c53258a64e99a67ce99a64ae992c53274c53258a64e99a64e99a60b14c1d314c95d3274c53074c53074cd32574c95d3274cd3258d9bcb1b3963672bd9fcaf662c6cc7b36ce7b3ece57b3ff9ecdb316367f2c6cc57b3795ecc58d98b1b315ece57b315ecc57b395ecc58d9cb1b3963672c6cc58d98b1b31ecfb3ff95ece58d98af66ff3d9f663d9b662c6ce58d9bcb1b395ecc58d9caf66f2bd995f31a74d5738745265324902f836f8cfe233f8d3e33674ca43367494a23248c2f930be02f831f893e334f8c7e232488c392a0c1c661c124657ee67484a267485ee46a25ee47ee4a2457484748548656fc667c6fc456fc4587e23512a422c5211a89d211a892899a89a8919f1bf1943e2f99f19f1160f88acf88df8df8fcb07c66fc47c7e583e22c1f1f9a52121192125219219219a5225299219211921a52f9a521219a521211a52121997c97c960be4cbe5838cbe0be4acbe4acbe0cbe4be4acbe0cbe4be0b05f265f05f3e577c1df17c1df37c15df1e77cdf058be7cef9be4ef9be4ef9be4b17c962f92c5f2577c95df058be4ef8be4b17c1df17c79df37c962f83be6f83be2f82bbe4b17c795df0577c962f8f2c7c47f17c7e58f8bcb1f115fc7e58f8bcafe22c7c47f1fc7fe7f1fc657f1f963e33f8be33f8fe22bf8cafe32bf8ffcfe2f88afe22bf8bcfe3f88fe3f8cfe2f88afe32bf8bcb1f1163e32bf88b1f17963e2fff3f8fe32bf8cb1f11fc7f1963e3ff2c7c5e7f17c5fffffe7f1fc7fe7f17c657f1f963e3ff2bf8cb1f179a08f40992f5881a6d30c9b137401a08a089545f8b131a56ca8731afe2696ecaa73182fe68234aa63f10787078c4e74a83f0563f063f0c4e70798d674a8820fffbd2c4e783f1f556c80ffbadc667b3da41ee572078d43f06822820682082056c4fe682082063f23f0584112c0fc158fcf98bf0bf18bf8bf198d8bf960c68acc6cac5fffcd0447e4c7e07e3fcc7e5044b03f27f8fc163f057f93fc7e7cb1f92bfcff9fe3f27f9fc9fe7f257f82c7e4b1f83fc7e0aff3ffe58fc1fe3f2577f2c5f8eff7f2c5f8efd7e3bf5f8eff7f3bfdffcb17f2c5fceff7f3bf5fbcff1f82bfc1fe7f258fc1fe3f058fc9fe7f07f8fc79fe3f3e7f8fc15fe0b1f92c7e3ffcb17f3bf5fcefd7e3bfdfceff7eff3bfdfceff7ef2c5f8efd7f3bf5f8aefc58bf162fc77ebf95dfcaefc58bf60cfc047f207f8fc833f1067e211fcc0ff3f9c23f9067e611fc033f011fcc19f808fe60cfc033f108fe419f9c0ff1f9847f007f8fc847f011fcc19f803fcfe419f8c0ff3f9c19f8067e60cfc047f303fcfe703fc7e607f8fc423f808fe3847f00cfc033f211fc047f007f9fc847f381fe3f3833f00cfc833f3c23f9833f103fcfe40ff1f85f34b617e36544b7317e7f1378c69630d95a03b2898d331b7f02b39c325e619325e121375712131cd3b732c20d931cc697315c0a02c16b990d8ae198da5b98bf25b998db2a18bf18d9a43ce9a432f9a40901a412f9f39ce9f3b2f9f392f1a42901612034839d2c24269024072fcbc690242690a406d96c9b65b26d86c95b60db0d836c360db2d92c360f98d82be695b60b1cd36cb63cb0d936cb64b0d82b6c1a814056a1350283cebaa12b5015d73cad426a0509a814275cae1624057212c483fcb1212c483cb121fff2c483cd42a0350a80d415d350a80d42a0350570b0a0f3ae574ad4258509a85426a15015a84d42a0350574b0a02c364db2d836c364db0d936c360db0d82b6c1b61b06d96c961b3e6d96c1b65b06d86cf95b64db0d836c360b0d836cb64adb258e6961b1e586c95b64db2d92b6c15b64adb26d86c961b26d96c95b64b0d92b6c961b06d86c795b60b0d92b6c961b2586c9b65b1e589016241e5720390480b1202c484e4120390c83cb120390c84b120390c80e43212c480b1202c484e43212b909c864057212c484b1212c483ce4321000fe62a690046401957256d7c1a044401990048111a046401158532620814aa56208987383ab184bc3ab986343f81931a32a9863432a98c4e41e9907fffbd2c4ea03b2f156da0f7790863b335a4dff5618a2081882220898a9a14c9900655c985328111853214cf9c014019aa694c994c94c194c14c994c14c1aa62a6194c94c960a64c7e47e4ac7e3fcd0447e4b08225825e325e121312025f2b121325f25f2c090960978c4844860cfc847f211fc01fe3f011fc81fe7f20cfc01fe7f00cfc047f20cfc01fe7f00cfc833f20cfc847f103fc7e60cfc047f207219001c86420721900324108c800e432108c84192006480232103904840e4121833f011fc01fe7f103fc7e3e0cfc033f007f9fc047f011fc01fe7f007f8fc419f908fe308fe211fc047f00cfc847f207f9fc847f20cfcc0ff3f8067e7067e023f808fe40ff1f9067e211fc033f011fc833f3833f303fcfe3067e00ff3f908fe019f9833f20cfcc23f903fc7e019f808fe023f8e07f8fc40ff3f8833f1067e423f9847f207f8fcc19f9847f207f8fc033f211fc847f00cfc033f1a99d67fa933ccc957f313fea3d51f6a55f31a7069c3183d26534990c3934f8d3e236f88fe235f8a7e232f88fe331ce038c31588cb934a59673bc724235635633739738338f90f34a470437054a5324324237e3be32b7e333e2be337e27e32b3e333e23e333e33e233e37e22c2899a895211a89d21f0b0a2456484648648456484648694a648648456484582422c1211921a52159211592199219211592119211211fc5f17f95fc457f195fc5fe7f1fc658f88ef9be0b17c1df37c1df37c1df17c9df17c15df2577c15df277cdf277c5f277cdf3e577c962f93be2f9fff2bbe4ef9be4aef93be2f8ff2bbe0db96e0adb836e5b836e38e36e78d36e1b82b6e4db96e3cdb86e4f8f6e4db96e4db96e4db96e0adb836e1b92b6e0e4390cb12115c84721c84572179c87211c852195c84721486721c86721486572195c865890cb12179c87219c87219c872115c8477c5f0577c15df2577c95df077cdf0577c95df258be7cef8be4ef8be7ffcaef83be2f9f3be6f82bbe4b17c962f82c5f1e577c15c867214845890bfce4290fce43908e4390ce4390cb1219c85219c85219c872116242390a43390a42f2b90bfcb121ff95c87e721487e62898a2462891ee462890a26541f88c3e27f88c5121444f3c2144ccf4f0be4c2f93d3ccf72674cc5133dccd57a4990b061c985f217c9ff1fffbd2c4ee03f47d56cc0ffba9c6beb5d901ff59b0bf19df11f11bf1df19c9117c94922997c97c1c91b07645144c74874847ee6a25c3a4251335125133a4251335135132c5f19bf1bf19bf11f199f11f11bf19f199f19f195b07997c17c997c97c9b07307960be0cbe0be0cbe4be0b05f3e67c47c467c47c6567c667c47c4583e22b3e32b3e22b3e333e33e28457cc22be40d7caf98457c01af85f211c1e115f0b062f903c1ebe018be418be00d7c2f8062f9035f2be018be40d7c2f908af908af8062f9062f881af85f0115f006be57c8317c01af85f2115f2115f20783d7c0317c0457c0317c8457cc198380d7caf9035f0be606be17c40df13e3063e2037c6f8f08be2c0df13e3037c6f8a0c7c406f89f1031f16117c5037c4f8818f8c0e89d12c2344819448194482344a11a260ca2411a260744a894234482344e11a240744a89f06512c1944e117c606f8df1845f1845f140df13e3063e2f063e308be3063e3037c4f8f063e2063e3063e2063e308be2831f1031f142344aaf83289ff06512846897fffff08d130651354c414d45332e313030555555f2c113a6ce9be046f81a9467a1d687668aaa2a87e79a2a86d07341e6491924469329244513e39afc65f199484f8199ee6a5118a262899a94428999ee628918a262891be062891a94452118a2452199486a51191388aa1913844e9a2aa44e9913844e9a2aa44e1a2a844e9913a44e9511542b2270a1f14aef8cacf88a1f17cb0fc4585122b5123a43a43f2b513f35125132c28981d13a240744a8904e8981d12a25c0e89d1308d1203a2744c2344c1944819448194480e89d1275c2344b03a2744c0e89d1208d120651284689e0ca2703a2544c1944a0744e89c1944c1944e11a240ca2411a260ca260744e894194482344a0ca2708d120651208d1206513df03a2544e0ca260ca2613a2508d1203a2544982344fc23449ffc19a770669ce11d3b08e9c08e9c08e9c8474ef68334e230669cf8334ee11d3bedfe0cd39ff84b4e0474e3c19a737fc19a774fb7ffd1a8ac5ca3172d7853ebdc5cb2b5e0cd19b4668a2f083bc90bb3285d90ca6d29b0d1730d98e3545e10d7855e08c47023f8db3711c4a11fc32ec8bb23466cbb234668bb23172978328bc20ad7853466d19d32eccbb334674bb22c233450bb2fffbd2c4d583e9c98ec40ffad44632b35881ff5a9879a3345d915a336562e5128b9671fc8e068e28e068e08e068e31fc568e271fe8e25836733666e82c1b3959b3159b3159b39b749b3160d9cacd9ccd9cd9fcb06cc566cc566cc66cc6cffe566ce566cc566cc66ce6ce5836633666e93366367336736636e83662b36636e86e82c1b3960d98231c4231c4231c0191c4191c4231c0191c4191c0231c58191c20c8e2118e20c8e00c8e1038e11c0231c4231c4231c40e38471c191c6071c638846388463840e38c70038e31c00e38c70038e11c0231c40e3847108c71c0e3847181c718e00c8e2e0c8e2118e00c8e18323881c708e0118e211b940cb97f03b9572c2372af065ca81dcab97f832e5f03b9572c0ee5dca08dca03b9772c2372f81dcbb9411b940cb97fc1972e11b940cb94e11b940cb95ededde0cb956846e5fff09dcae12b960000001fcc2994b64d58f35b0cd6f1530d2d835b0d0220a60c31b2ca4c17e05f8c4b605fcb00bf18c303ab18eac30c98822208960c6b31040a55319544b630c6831b3195031b3200c29831534ab830a648022a0532581534c2990a60ac54c2c0532562a69602982c0a98614c05305640116031b305fc4b72b0c68b018d16031b305fc17ff2b7e3cadf92c3f0587e0df87e4df87e4f1b5fcb0bf1afcbf79617eff2c2fe6bfafc56bf95a42690a4072fa4272fa40690242690a42690242690240572f9a40901a409015a42690a40690a40690cbe690a4269024256901a40901a40909a42909a412f1a41ce9a42909a4090961202c5f8aefc77ebff9dfafde577ff3bf5f8efd7e2c5fbcefd7f2c5f8b17ef2bbf15df8efd7f3bf5fbcb17e2c5f8eff7f3bfdfcaefe77fbf162fc77fbf1dfefc58bf795dfcaefe77ebf1dfafe77fbf9dfefc58fc1fe7f057f93fcfe4b1f82c7e4aff1fe58fc95fe0aff258fcf9fe3f258fcff95fe0aff1e58fc95fe0b1f92bfc1fe3f257f83fc7e0ff1f8f2bfc9fe7f3e58fc9fe7f257f82c7e3cff3f92c7e4b1f83fcfe7cb1f8f2c7e0ff3f82bfc9fe7f257f9ffffcbf79dde6bf76bb87ef58ffffef3cf9bfdd65909587c663f127c65455e4d2641838c9224994c9221830c66c0ca4c0fa0ca4cae20e34c5632438cbc71290cbc638a4ad2642c05f0617c8c1c787124465f2c1fe7485485d3f72fffbd2c4ff83b74592d26ff796ce783199c1ff75a8a433f73512314c4212c15b9a1095b195b15b960be4cbe0be4cbe5838d838be4d838be0c6e4e30ce386e4d58ce38b071e563706370372582422c252960908c90d297cac90cc908908ac90cadb936e1b936e38c36e1b82c37056dc1b71c61b72dc9b70dc9b70dc162f9f2bbe4ef9be7caef92c5f3e577c15df058be0aef8390a422b908ae422b90cb12196242f2c4845890fce43908e4390ce4290ce43908db86e0db96e4db86e4b0dc9b72dc161b936e5b836e5b936e5b936e1b92c370586e0b0dc1b72dc95b7256dc1b70dc1b72dc9b72dc1b70dc95b7056dc9b70dcff9b72dcf9b70dc9b72dc15b70586e0b0dc1b70dc95b726dcb71e586e4b0dc7fffffffff95fc658f8fffffffcafe2ffffff390a43390e42f2b90ce43908b12195c86721c86721c85e5721796243f2c4845890cae422b908e4390ce4290cae422b908e4390cb1217fffff962f92c5f3fffffffffe58be7ffffffffcb17cd5f2c0a266f813e066289b3a462529c5265e39c50512651a4ca61c96096631294bc632f1cbc731294bc630e30ae532b8c90f3158c38f32438ae33158c1b82b0e34a8491985f04929924630798c1e3079978c71498948121184847141589486289948665210a2462898a26581448aca432c0a2462890a2456289958a27e58144cb1f17ff963e23f8fe3f2c7c5e6dc3726dcb726dc370586e4db86e4db96e4b1c79b70dc9b72dc1b72dc1b72dc9b70dc1b72dc9b72dcf9b72dcf9b72dc95b70586e0db96e0b121162432b908b12115c865890cae43fff2c486572195c85e6dcb706dcb706dcb726dc37256dc15b7256dc9b70dc161b92c372586e4adb8ff36e1b936e5b8ff390a422b908ae422b908ae432b908e4390ce42908e4290ffcb1211c8521962422c484721486721c86572196242ff2bbe3cb17c15df058be4aef82bbe4b17c95df258be0b17c9df17c79df37c95df277cdf258be3fcef8be3caef82bbe7ce4390ce42908ae42390e43ff2c48457211c8721962432c485e721c845890bce43908e42908ae43f2b90cae422b908ae43f390e432b90cb121e11a244c8532310ce157e3496d8d93103fcc48c61f831931cad5270ae8192a1276cb51950b27064a9958b034403a095cd245b3b7114c8a46353c2ce1fffbd2c4ea83f37d5cce0ff6d7c60934de41cd6691444353298d52a832342b64c8a324908d5644353aa8444a1cf46b3f9a6506a968b563fea8af41bb1a648798f1e63c898c266f07155e133b3428486c913c33670cf9a295866cf19e39485681a081a081a1e129c677e57e1a07cacd338ad120ecd23499f1de8cc44d0f8ce46e19e819c990a0fe52909c5101a089f871a3e54287b64d19551340e34117fed19e91222672049f133f1b24748b928d4a8f709b9371d2478a3a26e891e375d22fc75f375b28f33ce909bd76cecbc9301f81dc82ceab0a9713b93676594f58edb49da3bef3c2f3bb03b6b1cbdf772e8cf0b4730257481e26ecdc70de789b62ab46d344ae916a6e3981b8f916a586c6b29d8d916c6f3a6eb84df9bed5b98379ee61f52c72bd3d3dc87e821ca177e00791c393b87227f2cd69c7ddc7a067703cc3b0ee47dafcbe61fbad63ee01800661f807c0111c7079e00600181e7819600647aa47e30c10cc641634bbb8df69a30a24cd04093289c8cae19347bb8e0aea368b28d8ea232684cca8573291ccd40a33350ecc624a30995cd890738837cd083103010c969c366b18d326230e03d1b0c1a1c317908ca25031f8502c0b2c898684248150e4120d48b4e061269366e3a6e4269a868803069b4e9c149d4e930374461238afa008c638402091a80889ac8840afd213404097154d5215a622b3ded69d6804b9a641a640282a5500d598d64c98100a470c870a802590fcd274de84d350cb014ba7df57e00281aa52ce5e2c55733dceccb1da81986f825237da3552354c4d752de4b60161a862611a68063251aa618a71c381bcaa78ad160060880a19d761ac460168cb38280a22ba4826407294a76971400b370db81204d8111b8f344f102a8e2e36a8dae0369545055d5692f2ca619932e67782e235a17eb5aa3a58661da90d3b4ca588b5d4e50214d093204b8ac74401342cd035225f635d0f3639a0ba51c4e648a6f9554c0b385ced7393cb8cf34a6970a6b5ba5a6ed5a5a5d534bad56954bad5594cb6f5694cb795a354dda58cd3674b19b3a954bad56954bad5594cb7095592028b51774bdc5f541a2a0287884f4281658d330cc64c37028f90c0237c00d19e686807c2e76e46b7a60fc415882830e5341837c7077c6a1e61ac1664858156418b18fffbd2c4f28234520cec0e67178619bf8c199c3fa82898c416f157c0b2aa1a08eb2a42498c798ab00190bb440d8a34055cca2823337443517315c0a3e43008df023463a6680c44a04145d541a56555050f50c51751550e50d5165655505575344d90148c4b04b844f2580cbc28c30941d0128808c0c28a9890e38611942802e5abb7325d56e5d9a765618b8414088443052520e8c4002e3913005532a0c5b0af083a29c02e4d0e01ac3546c3805c20892c065e166015260121a3178ad6bb7265da54a5c10a804031921214708210972048e1862c885c42852520e8c4422dda0115e3427f6028360882dea6429528dc91a8ec94a92891e98050305180050a985124a81d488085970e60634c20061c54c4871c3084a5a82dfa5123ea732c0a8f2db5805575e0d11b0ae972bcbb522ad2a5c49513d288a9280bb96c32d04749fc894c24d10a7523635c282d52c08ee9955ca55d2fae14ec0c70e94c414d45332e3130305555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555";
@@ -3249,7 +3250,7 @@ var Cs = Object.defineProperty, B = (a, e, t, i) => {
3249
3250
  const $ = Je.noConflict();
3250
3251
  $.setLevel("info");
3251
3252
  const re = "cb_", As = (a) => new Promise((e) => setTimeout(e, a));
3252
- class R extends Xt {
3253
+ class R extends Yt {
3253
3254
  constructor() {
3254
3255
  super(), this.actionIdCounter = 0, this.currentLoadContext = {}, this.prefilledFormValues = {}, this.wsClient = null, this.webAudioProcessor = null, this.webAudioTrackId = null, this.webAudioCurrentMark = null, this.replyMessage = null, this.streamingResponseInProgress = !1, this.streamingResponseLastText = null, this.streamingResponseBuffer = null, this.streamingResponseTagStartPos = 0, this.streamingResponseCurrentTag = null, this.tabsBroadcastChannel = new BroadcastChannel("c7o-bot-tabs"), this.tabId = "c7o-bot-tab-" + (self.crypto?.randomUUID?.() || Math.random().toString(36).slice(2)), this.tabsBroadcastChannel.addEventListener("message", this.handleBroadcastMessage.bind(this)), console.log(`c7o: AppState: created, tabId=${this.tabId}`);
3255
3256
  }
@@ -3484,7 +3485,7 @@ class R extends Xt {
3484
3485
  this.initForm(this.form);
3485
3486
  return;
3486
3487
  }
3487
- const e = Vt(null, ["startupForm"], this.botSettings);
3488
+ const e = Nt(null, ["startupForm"], this.botSettings);
3488
3489
  if (!e || !e?.name) {
3489
3490
  $.info("Startup form not present");
3490
3491
  return;
@@ -3492,10 +3493,10 @@ class R extends Xt {
3492
3493
  this.initForm(e);
3493
3494
  }
3494
3495
  initForm(e = null) {
3495
- const t = e, i = Vt(null, ["name"], e);
3496
+ const t = e, i = Nt(null, ["name"], e);
3496
3497
  if (!t || !i)
3497
3498
  return;
3498
- const s = Vt(null, ["fields"], e);
3499
+ const s = Nt(null, ["fields"], e);
3499
3500
  if (!Array.isArray(s) || s.length <= 0) {
3500
3501
  $.info("form has no fields", e);
3501
3502
  return;
@@ -4306,7 +4307,7 @@ zi("system", {
4306
4307
  return !1;
4307
4308
  }
4308
4309
  })();
4309
- class ne extends De {
4310
+ class ne extends Fe {
4310
4311
  constructor() {
4311
4312
  super(...arguments), this.lang = "en";
4312
4313
  }
@@ -4342,7 +4343,7 @@ var Es = Object.defineProperty, $s = Object.getOwnPropertyDescriptor, Ya = (a, e
4342
4343
  return i && s && Es(e, t, s), s;
4343
4344
  };
4344
4345
  const Ps = '<svg viewBox="0 0 16 16" width="16px" height="16px"><path fill="currentColor" d="M2.146 2.854a.5.5 0 1 1 .708-.708L8 7.293l5.146-5.147a.5.5 0 0 1 .708.708L8.707 8l5.147 5.146a.5.5 0 0 1-.708.708L8 8.707l-5.146 5.147a.5.5 0 0 1-.708-.708L7.293 8z"></path></svg>';
4345
- let Lt = class extends ne {
4346
+ let zt = class extends ne {
4346
4347
  constructor() {
4347
4348
  super(...arguments), this.title = "ChatBot";
4348
4349
  }
@@ -4404,13 +4405,13 @@ let Lt = class extends ne {
4404
4405
  });
4405
4406
  }
4406
4407
  };
4407
- Lt.styles = Ms;
4408
+ zt.styles = Ms;
4408
4409
  Ya([
4409
4410
  x({ type: String, attribute: "title" })
4410
- ], Lt.prototype, "title", 2);
4411
- Lt = Ya([
4411
+ ], zt.prototype, "title", 2);
4412
+ zt = Ya([
4412
4413
  K("cb-header")
4413
- ], Lt);
4414
+ ], zt);
4414
4415
  const Ls = J`
4415
4416
  ${ke}
4416
4417
  .cb-footer {
@@ -4431,7 +4432,7 @@ var Rs = Object.getOwnPropertyDescriptor, zs = (a, e, t, i) => {
4431
4432
  (o = a[r]) && (s = o(s) || s);
4432
4433
  return s;
4433
4434
  };
4434
- let Yt = class extends ne {
4435
+ let Jt = class extends ne {
4435
4436
  constructor() {
4436
4437
  super(...arguments), this.year = (/* @__PURE__ */ new Date()).getFullYear();
4437
4438
  }
@@ -4466,10 +4467,10 @@ let Yt = class extends ne {
4466
4467
  `;
4467
4468
  }
4468
4469
  };
4469
- Yt.styles = Ls;
4470
- Yt = zs([
4470
+ Jt.styles = Ls;
4471
+ Jt = zs([
4471
4472
  K("cb-footer")
4472
- ], Yt);
4473
+ ], Jt);
4473
4474
  const Os = J`
4474
4475
  ${ke}
4475
4476
 
@@ -4702,6 +4703,7 @@ const Os = J`
4702
4703
  color: var(--_color);
4703
4704
 
4704
4705
  font: inherit;
4706
+ font-size: 0.9em;
4705
4707
  font-weight: 500;
4706
4708
  line-height: 1;
4707
4709
  text-decoration: none;
@@ -4854,7 +4856,6 @@ const Os = J`
4854
4856
  background: var(--_bg);
4855
4857
  color: var(--_color);
4856
4858
 
4857
- font: inherit;
4858
4859
  font-weight: 600;
4859
4860
  line-height: 1;
4860
4861
  text-decoration: none;
@@ -4916,12 +4917,12 @@ const Os = J`
4916
4917
  }
4917
4918
  .split-btn[aria-expanded="true"] .split-btn__caret { transform: rotate(180deg); }
4918
4919
  `;
4919
- var qs = Object.defineProperty, Ds = Object.getOwnPropertyDescriptor, Fe = (a, e, t, i) => {
4920
+ var qs = Object.defineProperty, Ds = Object.getOwnPropertyDescriptor, je = (a, e, t, i) => {
4920
4921
  for (var s = i > 1 ? void 0 : i ? Ds(e, t) : e, r = a.length - 1, o; r >= 0; r--)
4921
4922
  (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
4922
4923
  return i && s && qs(e, t, s), s;
4923
4924
  };
4924
- let gt = class extends De {
4925
+ let gt = class extends Fe {
4925
4926
  constructor() {
4926
4927
  super(...arguments), this.options = [], this.minWidth = 180;
4927
4928
  }
@@ -4961,6 +4962,7 @@ gt.styles = J`
4961
4962
  z-index: 100000; /* on top of everything */
4962
4963
  visibility: hidden; /* made visible after positioned */
4963
4964
  font-family: system-ui, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';
4965
+ font-size: var(--enegelai-bot-base-font-size, 16px);
4964
4966
  }
4965
4967
 
4966
4968
  .menu {
@@ -4968,7 +4970,8 @@ gt.styles = J`
4968
4970
  max-width: 360px;
4969
4971
  max-height: 60vh;
4970
4972
  overflow: auto;
4971
- font-size: 1.4rem;
4973
+
4974
+ font-size: 0.9em;
4972
4975
 
4973
4976
  border-radius: 10px;
4974
4977
  border: 1px solid var(--sl-color-neutral-200, #e5e7eb);
@@ -5004,16 +5007,16 @@ gt.styles = J`
5004
5007
  }
5005
5008
  .item:active { transform: scale(.98); }
5006
5009
  `;
5007
- Fe([
5010
+ je([
5008
5011
  x({ type: Array })
5009
5012
  ], gt.prototype, "options", 2);
5010
- Fe([
5013
+ je([
5011
5014
  x({ type: Number })
5012
5015
  ], gt.prototype, "minWidth", 2);
5013
- gt = Fe([
5016
+ gt = je([
5014
5017
  K("cb-split-menu")
5015
5018
  ], gt);
5016
- let We = class extends De {
5019
+ let Ge = class extends Fe {
5017
5020
  constructor() {
5018
5021
  super(...arguments), this.variant = "primary", this.label = "Select", this.options = [], this.size = "", this._menuEl = null, this._toggle = async (a) => {
5019
5022
  if (a.preventDefault(), a.stopPropagation(), this._menuEl) {
@@ -5098,38 +5101,38 @@ let We = class extends De {
5098
5101
  this._onDocPointerDown && (document.removeEventListener("pointerdown", this._onDocPointerDown, { capture: !0 }), this._onDocPointerDown = void 0), this._onKeydown && (document.removeEventListener("keydown", this._onKeydown, { capture: !0 }), this._onKeydown = void 0);
5099
5102
  }
5100
5103
  };
5101
- We.styles = Ja;
5102
- Fe([
5104
+ Ge.styles = Ja;
5105
+ je([
5103
5106
  x({ type: String })
5104
- ], We.prototype, "variant", 2);
5105
- Fe([
5107
+ ], Ge.prototype, "variant", 2);
5108
+ je([
5106
5109
  x({ type: String })
5107
- ], We.prototype, "label", 2);
5108
- Fe([
5110
+ ], Ge.prototype, "label", 2);
5111
+ je([
5109
5112
  x({ type: Array })
5110
- ], We.prototype, "options", 2);
5111
- Fe([
5113
+ ], Ge.prototype, "options", 2);
5114
+ je([
5112
5115
  x({ type: String })
5113
- ], We.prototype, "size", 2);
5114
- Fe([
5116
+ ], Ge.prototype, "size", 2);
5117
+ je([
5115
5118
  xe(".split-btn")
5116
- ], We.prototype, "_btn", 2);
5117
- We = Fe([
5119
+ ], Ge.prototype, "_btn", 2);
5120
+ Ge = je([
5118
5121
  K("cb-split-button")
5119
- ], We);
5122
+ ], Ge);
5120
5123
  var Fs = Object.defineProperty, js = Object.getOwnPropertyDescriptor, st = (a, e, t, i) => {
5121
5124
  for (var s = i > 1 ? void 0 : i ? js(e, t) : e, r = a.length - 1, o; r >= 0; r--)
5122
5125
  (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
5123
5126
  return i && s && Fs(e, t, s), s;
5124
5127
  };
5125
- const At = "cb-toast-outlet", Ia = "cb-toast-outlet-style";
5128
+ const Mt = "cb-toast-outlet", Ia = "cb-toast-outlet-style";
5126
5129
  function Hs() {
5127
- let a = document.getElementById(At);
5128
- if (a || (a = document.createElement("div"), a.id = At, document.body.appendChild(a)), !document.getElementById(Ia)) {
5130
+ let a = document.getElementById(Mt);
5131
+ if (a || (a = document.createElement("div"), a.id = Mt, document.body.appendChild(a)), !document.getElementById(Ia)) {
5129
5132
  const e = document.createElement("style");
5130
5133
  e.id = Ia, e.textContent = `
5131
5134
  /* Global outlet that holds all toasts */
5132
- #${At} {
5135
+ #${Mt} {
5133
5136
  position: fixed;
5134
5137
  right: 40px;
5135
5138
  bottom: 55px;
@@ -5141,7 +5144,7 @@ function Hs() {
5141
5144
  pointer-events: none; /* clicks pass through except on toast itself */
5142
5145
  }
5143
5146
  @media (max-width: 600px) {
5144
- #${At} {
5147
+ #${Mt} {
5145
5148
  left: 8px;
5146
5149
  right: 8px;
5147
5150
  align-items: stretch; /* stretch toasts to full width on mobile */
@@ -5151,11 +5154,11 @@ function Hs() {
5151
5154
  }
5152
5155
  return a;
5153
5156
  }
5154
- function Ea(a) {
5157
+ function Vs(a) {
5155
5158
  const e = Hs(), t = document.createElement("cb-toast");
5156
- return t.message = a.message, t.variant = a.variant ?? "success", t.duration = typeof a.duration == "number" ? a.duration : 3e3, t.closeable = !!a.closeable, t.icon = a.icon ?? "", t.ariaLive = a.ariaLive ?? "polite", e.appendChild(t), t;
5159
+ return t.message = a.message, t.variant = a.variant ?? "success", t.duration = typeof a.duration == "number" ? a.duration : 3e3, t.closeable = !0, t.icon = a.icon ?? "", t.ariaLive = a.ariaLive ?? "polite", e.appendChild(t), t;
5157
5160
  }
5158
- let Be = class extends De {
5161
+ let qe = class extends Fe {
5159
5162
  constructor() {
5160
5163
  super(...arguments), this.message = "", this.variant = "success", this.duration = 3e3, this.closeable = !1, this.icon = "", this.ariaLive = "polite", this._open = !1, this._closing = !1, this._defaultIcons = {
5161
5164
  success: "✓",
@@ -5202,11 +5205,13 @@ let Be = class extends De {
5202
5205
  return a.trim().startsWith("<") ? u`${Y(a)}` : a;
5203
5206
  }
5204
5207
  };
5205
- Be.styles = J`
5208
+ qe.styles = J`
5206
5209
  :host {
5207
5210
  display: block;
5208
5211
  pointer-events: auto; /* receive pointer events within toast */
5209
5212
  contain: content;
5213
+ font-size: var(--enegelai-bot-base-font-size, 16px);
5214
+ font-family: system-ui, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';
5210
5215
  }
5211
5216
 
5212
5217
  .toast {
@@ -5219,10 +5224,11 @@ Be.styles = J`
5219
5224
  align-items: center;
5220
5225
  gap: 10px;
5221
5226
 
5222
- font-family: system-ui, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';
5227
+ font-size: 0.7em;
5228
+ font-weight: 400;
5223
5229
 
5224
5230
  max-width: min(420px, 92vw);
5225
- padding: 20px 24px;
5231
+ padding: 16px 20px;
5226
5232
  border-radius: 12px;
5227
5233
  border: 1px solid var(--_border);
5228
5234
  background: var(--_bg);
@@ -5261,7 +5267,7 @@ Be.styles = J`
5261
5267
  }
5262
5268
 
5263
5269
  .msg {
5264
- font-size: 1.5rem;
5270
+ font-size: 1.5em;
5265
5271
  line-height: 1.25;
5266
5272
  word-break: break-word;
5267
5273
  }
@@ -5309,31 +5315,31 @@ Be.styles = J`
5309
5315
  `;
5310
5316
  st([
5311
5317
  x({ type: String })
5312
- ], Be.prototype, "message", 2);
5318
+ ], qe.prototype, "message", 2);
5313
5319
  st([
5314
5320
  x({ type: String })
5315
- ], Be.prototype, "variant", 2);
5321
+ ], qe.prototype, "variant", 2);
5316
5322
  st([
5317
5323
  x({ type: Number })
5318
- ], Be.prototype, "duration", 2);
5324
+ ], qe.prototype, "duration", 2);
5319
5325
  st([
5320
5326
  x({ type: Boolean })
5321
- ], Be.prototype, "closeable", 2);
5327
+ ], qe.prototype, "closeable", 2);
5322
5328
  st([
5323
5329
  x({ type: String })
5324
- ], Be.prototype, "icon", 2);
5330
+ ], qe.prototype, "icon", 2);
5325
5331
  st([
5326
5332
  x({ type: String })
5327
- ], Be.prototype, "ariaLive", 2);
5328
- Be = st([
5333
+ ], qe.prototype, "ariaLive", 2);
5334
+ qe = st([
5329
5335
  K("cb-toast")
5330
- ], Be);
5331
- var Vs = Object.defineProperty, Us = Object.getOwnPropertyDescriptor, ra = (a, e, t, i) => {
5332
- for (var s = i > 1 ? void 0 : i ? Us(e, t) : e, r = a.length - 1, o; r >= 0; r--)
5336
+ ], qe);
5337
+ var Us = Object.defineProperty, Ns = Object.getOwnPropertyDescriptor, wt = (a, e, t, i) => {
5338
+ for (var s = i > 1 ? void 0 : i ? Ns(e, t) : e, r = a.length - 1, o; r >= 0; r--)
5333
5339
  (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
5334
- return i && s && Vs(e, t, s), s;
5340
+ return i && s && Us(e, t, s), s;
5335
5341
  };
5336
- const Ut = Je.noConflict(), $a = "M3.612 15.443c-.386.198-.824-.149-.746-.592l.83-4.73L.173 6.765c-.329-.314-.158-.888.283-.95l4.898-.696L7.538.792c.197-.39.73-.39.927 0l2.184 4.327 4.898.696c.441.062.612.636.282.95l-3.522 3.356.83 4.73c.078.443-.36.79-.746.592L8 13.187l-4.389 2.256z", Ns = J`
5342
+ const Tt = Je.noConflict(), Ea = "M3.612 15.443c-.386.198-.824-.149-.746-.592l.83-4.73L.173 6.765c-.329-.314-.158-.888.283-.95l4.898-.696L7.538.792c.197-.39.73-.39.927 0l2.184 4.327 4.898.696c.441.062.612.636.282.95l-3.522 3.356.83 4.73c.078.443-.36.79-.746.592L8 13.187l-4.389 2.256z", Ws = J`
5337
5343
  :host { display: block; width: 100%; color: var(--cb-fg, #111827); }
5338
5344
 
5339
5345
  /* CARD */
@@ -5346,12 +5352,12 @@ const Ut = Je.noConflict(), $a = "M3.612 15.443c-.386.198-.824-.149-.746-.592l.8
5346
5352
  }
5347
5353
  .card__image { display: block; max-width: 220px; height: auto; object-fit: cover; }
5348
5354
  .card__content { padding: 12px; }
5349
- .card__title { margin: 0; font-weight: 500; line-height: 1.25; font-size: 1.5rem; }
5350
- .card__subtitle { margin: 4px 0 0 0; color: var(--cb-muted, rgba(0,0,0,.65)); font-size: 1rem; line-height: 1.35; }
5355
+ .card__title { margin: 0; font-weight: 500; line-height: 1.25; font-size: 1em;}
5356
+ .card__subtitle { margin: 4px 0 0 0; color: var(--cb-muted, rgba(0,0,0,.65)); font-size: 0.8em; line-height: 1.35; }
5351
5357
 
5352
- .card__info { display: flex; gap: .5rem; align-items: center; margin-top: 10px; }
5358
+ .card__info { display: flex; gap: .5em; align-items: center; margin-top: 10px; font-size: 0.9em;}
5353
5359
  .card__info--between { justify-content: space-between; }
5354
- .card__info-text { font-weight: 400; font-size: 1.5rem; }
5360
+ .card__info-text { font-weight: 400; }
5355
5361
 
5356
5362
  .card__title-link { color: inherit; text-decoration: none; }
5357
5363
  .card__title-link:hover { text-decoration: underline; }
@@ -5365,16 +5371,30 @@ const Ut = Je.noConflict(), $a = "M3.612 15.443c-.386.198-.824-.149-.746-.592l.8
5365
5371
  .star__base path { fill: none; stroke: var(--cb-star-fill, rgb(242,151,4)); opacity: .35; }
5366
5372
  .star__fill { position: absolute; inset: 0; overflow: hidden; }
5367
5373
  .star__fill path { fill: var(--cb-star-fill, rgb(242,151,4)); }
5368
- .rating__number { font-size: .9rem; color: var(--cb-muted, rgba(0,0,0,.7)); }
5374
+ .rating__number { font-size: .9em; color: var(--cb-muted, rgba(0,0,0,.7)); }
5369
5375
 
5370
- .card__actions { display: flex; gap: .5rem; margin-top: 12px; flex-wrap: wrap; }
5376
+ .card__actions { display: flex; gap: .5em; margin-top: 12px; flex-wrap: wrap; }
5371
5377
  .card__actions--between { justify-content: space-between; }
5372
5378
 
5373
5379
  /* CAROUSEL */
5374
5380
  .hc-wrapper { position: relative; display: block; width: calc(var(--enegelai-bot-width, 420px) - 40px); overflow: hidden; box-sizing: border-box; }
5375
5381
  .horizontal-carousel {
5376
- display: flex; flex-wrap: nowrap; width: 100%; overflow-x: auto; gap: .75rem; padding: .25rem .5rem;
5377
- scroll-snap-type: none; -webkit-overflow-scrolling: touch; box-sizing: border-box; touch-action: pan-y; cursor: grab;
5382
+ display: flex;
5383
+ flex-wrap: nowrap;
5384
+ width: 100%;
5385
+ overflow-x: auto;
5386
+ gap: .75em;
5387
+ padding: .25em .5em;
5388
+ scroll-snap-type: none;
5389
+ -webkit-overflow-scrolling: touch;
5390
+ overscroll-behavior-x: contain; /* prevent horizontal rubber-band revealing blank area */
5391
+ box-sizing: border-box;
5392
+
5393
+ /* IMPORTANT: allow the UA to choose the axis.
5394
+ Result: vertical swipes scroll the PARENT; horizontal swipes scroll THIS scroller. */
5395
+ touch-action: auto;
5396
+
5397
+ cursor: grab;
5378
5398
  }
5379
5399
  .horizontal-carousel.dragging { cursor: grabbing; }
5380
5400
  .horizontal-carousel.dragging, .horizontal-carousel.dragging * { user-select: none; -webkit-user-select: none; }
@@ -5387,23 +5407,27 @@ const Ut = Je.noConflict(), $a = "M3.612 15.443c-.386.198-.824-.149-.746-.592l.8
5387
5407
 
5388
5408
  .hc-btn {
5389
5409
  position: absolute; top: 50%; transform: translateY(-50%);
5390
- background: rgba(0,0,0,.35); color: #fff; border: none; width: 4rem; height: 4rem;
5410
+ background: rgba(0,0,0,.25); color: #fff; border: none; width: 3em; height: 3em;
5391
5411
  border-radius: 50%; cursor: pointer; display: flex; align-items: center; justify-content: center;
5392
- backdrop-filter: blur(4px); z-index: 1;
5412
+ backdrop-filter: blur(4px); z-index: 1; transition: background .18s ease, opacity .18s ease;
5393
5413
  }
5394
5414
  .hc-btn:hover { background: rgba(0,0,0,.5); }
5395
5415
  .hc-btn:active { background: rgba(0,0,0,.85); }
5396
- .hc-btn.prev { left: .25rem; }
5397
- .hc-btn.next { right: .25rem; }
5416
+ .hc-btn.prev { left: .25em; }
5417
+ .hc-btn.next { right: .25em; }
5418
+ .hc-btn[disabled] { opacity: .45; cursor: not-allowed; pointer-events: none; }
5398
5419
 
5399
5420
  .unknown {
5400
- margin: .5rem 0; padding: .75rem; border: 1px dashed rgba(0,0,0,.2); border-radius: 8px;
5401
- color: var(--cb-muted, rgba(0,0,0,.7)); font-size: .9rem; background: rgba(0,0,0,.02);
5421
+ margin: .5em 0; padding: .75em; border: 1px dashed rgba(0,0,0,.2); border-radius: 8px;
5422
+ color: var(--cb-muted, rgba(0,0,0,.7)); font-size: .9em; background: rgba(0,0,0,.02);
5402
5423
  }
5403
5424
  `;
5404
- let Ge = class extends De {
5425
+ let Me = class extends Fe {
5405
5426
  constructor() {
5406
- super(...arguments), this._dragBound = !1, this._dragging = !1, this._startX = 0, this._startY = 0, this._startScrollLeft = 0, this._lastPointerId = null;
5427
+ super(...arguments), this._dragBound = !1, this._dragging = !1, this._startX = 0, this._startY = 0, this._startScrollLeft = 0, this._lastPointerId = null, this._canPrev = !1, this._canNext = !1, this.onCarouselScroll = () => {
5428
+ const a = this._hCarousel;
5429
+ a && this.updateArrows(a);
5430
+ };
5407
5431
  }
5408
5432
  render() {
5409
5433
  if (!this.block || typeof this.block != "object") return Ae;
@@ -5417,7 +5441,9 @@ let Ge = class extends De {
5417
5441
  }
5418
5442
  }
5419
5443
  updated(a) {
5420
- a.has("block") && this.block?.type === "carousel" && this.updateComplete.then(() => this.attachDragIfNeeded());
5444
+ a.has("block") && this.block?.type === "carousel" && this.updateComplete.then(() => {
5445
+ this.setupCarousel();
5446
+ });
5421
5447
  }
5422
5448
  /* ----------------- CARD ----------------- */
5423
5449
  renderCard(a) {
@@ -5471,17 +5497,17 @@ let Ge = class extends De {
5471
5497
  `;
5472
5498
  }
5473
5499
  renderSplitButton(a, e) {
5474
- const t = (a.type ?? "primary").toLowerCase(), i = a.opts || [];
5500
+ const t = (a.type ?? "primary").toLowerCase();
5475
5501
  return u`
5476
5502
  <cb-split-button
5477
5503
  .label=${a.text || "Select"}
5478
5504
  .variant=${t}
5479
- .options=${i}
5480
- @select=${(s) => {
5481
- const r = s.detail && s.detail.option || null;
5482
- r && this.emitButtonClick({ ...a, ...r });
5505
+ .options=${a.opts || []}
5506
+ @select=${(i) => {
5507
+ const s = i.detail && i.detail.option || null;
5508
+ s && this.emitButtonClick({ ...a, ...s });
5483
5509
  }}
5484
- @pointerdown=${(s) => s.stopPropagation()}
5510
+ @pointerdown=${(i) => i.stopPropagation()}
5485
5511
  ></cb-split-button>
5486
5512
  `;
5487
5513
  }
@@ -5500,57 +5526,90 @@ let Ge = class extends De {
5500
5526
  `;
5501
5527
  return u`
5502
5528
  <span class="star" role="img" aria-label="${e.toFixed(2)} filled">
5503
- <svg class="star__base" viewBox="0 0 16 16" aria-hidden="true"><path d="${$a}"/></svg>
5529
+ <svg class="star__base" viewBox="0 0 16 16" aria-hidden="true"><path d="${Ea}"/></svg>
5504
5530
  <div class="star__fill" style="${s}">
5505
- <svg viewBox="0 0 16 16" aria-hidden="true"><path d="${$a}"/></svg>
5531
+ <svg viewBox="0 0 16 16" aria-hidden="true"><path d="${Ea}"/></svg>
5506
5532
  </div>
5507
5533
  </span>
5508
5534
  `;
5509
5535
  }
5510
5536
  /* ----------------- Carousel ----------------- */
5511
5537
  renderCarouselSimple(a) {
5512
- const e = Array.isArray(a.items) ? a.items : [], t = Math.max(1, a.slidesPerPage || 1), i = t > 1 ? `width: calc((100% - ${(t - 1) * 0.75}rem) / ${t}); max-width: none;` : "";
5538
+ const e = Array.isArray(a.items) ? a.items : [], t = Math.max(1, a.slidesPerPage || 1), i = t > 1 ? `width: calc((100% - ${(t - 1) * 0.75}em) / ${t}); max-width: none;` : "";
5513
5539
  return u`
5514
5540
  <div class="hc-wrapper">
5515
- <button type="button" class="hc-btn prev" @click=${() => this.scrollHCarousel(-1)} aria-label="Previous">&#x276E;</button>
5516
- <div class="horizontal-carousel">
5517
- ${e.map((s) => u`<div class="horizontal-carousel__item" style=${i}><cb-block .block=${s}></cb-block></div>`)}
5541
+ <button
5542
+ type="button"
5543
+ class="hc-btn prev"
5544
+ ?disabled=${!this._canPrev}
5545
+ aria-label="Previous"
5546
+ @click=${() => this.nudge(-1)}
5547
+ >&#x276E;</button>
5548
+
5549
+ <div class="horizontal-carousel" @scroll=${this.onCarouselScroll}>
5550
+ ${e.map((s) => u`
5551
+ <div class="horizontal-carousel__item" style=${i}>
5552
+ <cb-block .block=${s}></cb-block>
5553
+ </div>
5554
+ `)}
5518
5555
  </div>
5519
- <button type="button" class="hc-btn next" @click=${() => this.scrollHCarousel(1)} aria-label="Next">&#x276F;</button>
5556
+
5557
+ <button
5558
+ type="button"
5559
+ class="hc-btn next"
5560
+ ?disabled=${!this._canNext}
5561
+ aria-label="Next"
5562
+ @click=${() => this.nudge(1)}
5563
+ >&#x276F;</button>
5520
5564
  </div>
5521
5565
  `;
5522
5566
  }
5523
- scrollHCarousel(a) {
5567
+ /** Smooth step with clamped target; updates arrows */
5568
+ nudge(a) {
5524
5569
  const e = this._hCarousel;
5525
5570
  if (!e) return;
5526
- const t = e.querySelector(".horizontal-carousel__item"), s = t ? t.offsetWidth + 12 : e.clientWidth;
5527
- e.scrollBy({ left: a * s, behavior: "smooth" });
5571
+ const t = this.pageStep(e), i = Math.max(0, e.scrollWidth - e.clientWidth), s = Math.min(i, Math.max(0, e.scrollLeft + a * t));
5572
+ e.scrollTo({ left: s, behavior: "smooth" }), this.updateArrows(e);
5573
+ }
5574
+ /** Compute a good step: mostly viewport width minus some, but not smaller than one card */
5575
+ pageStep(a) {
5576
+ const e = a.querySelector(".horizontal-carousel__item"), i = e ? e.offsetWidth + 12 : 0, s = Math.max(0.9 * a.clientWidth, i || 0.6 * a.clientWidth);
5577
+ return Math.max(1, Math.round(s));
5528
5578
  }
5529
- attachDragIfNeeded() {
5579
+ updateArrows(a) {
5580
+ const e = Math.max(0, a.scrollWidth - a.clientWidth), t = a.scrollLeft, i = 1, s = t > i, r = t < e - i;
5581
+ s !== this._canPrev && (this._canPrev = s), r !== this._canNext && (this._canNext = r);
5582
+ }
5583
+ /** Setup listeners and desktop-only drag */
5584
+ setupCarousel() {
5530
5585
  const a = this._hCarousel;
5531
- if (!a || this._dragBound) return;
5532
- const e = (o) => o.preventDefault();
5533
- a.addEventListener("dragstart", e, { capture: !0 });
5534
- const t = (o) => {
5535
- o.button !== 0 && o.pointerType !== "touch" || (this._dragging = !0, this._startX = o.clientX, this._startY = o.clientY, this._startScrollLeft = a.scrollLeft, this._lastPointerId = o.pointerId, a.classList.add("dragging"));
5536
- }, i = (o) => {
5537
- if (!this._dragging) return;
5538
- const f = o.clientX - this._startX, p = o.clientY - this._startY;
5539
- a.scrollLeft = this._startScrollLeft - f, Math.abs(f) > Ge.DRAG_THRESHOLD_PX && Math.abs(f) > Math.abs(p) && this._lastPointerId != null && a.setPointerCapture?.(this._lastPointerId), o.preventDefault();
5540
- }, s = () => {
5541
- if (!this._dragging) return;
5542
- if (Math.abs(a.scrollLeft - this._startScrollLeft) > Ge.DRAG_THRESHOLD_PX) {
5543
- let f;
5544
- const p = (v) => {
5545
- v.preventDefault(), v.stopPropagation(), f && clearTimeout(f);
5586
+ if (a) {
5587
+ if (this.updateArrows(a), this._resizeObs || (this._resizeObs = new ResizeObserver(() => this.updateArrows(a)), this._resizeObs.observe(a)), !this._dragBound) {
5588
+ const e = (o) => o.preventDefault();
5589
+ a.addEventListener("dragstart", e, { capture: !0 });
5590
+ const t = (o) => {
5591
+ o.pointerType !== "touch" && (o.button !== 0 && o.pointerType !== "pen" || (this._dragging = !0, this._startX = o.clientX, this._startY = o.clientY, this._startScrollLeft = a.scrollLeft, this._lastPointerId = o.pointerId, a.classList.add("dragging")));
5592
+ }, i = (o) => {
5593
+ if (!this._dragging) return;
5594
+ const f = o.clientX - this._startX, p = o.clientY - this._startY;
5595
+ a.scrollLeft = this._startScrollLeft - f, Math.abs(f) > Me.DRAG_THRESHOLD_PX && Math.abs(f) > Math.abs(p) && this._lastPointerId != null && a.setPointerCapture?.(this._lastPointerId), o.preventDefault(), this.updateArrows(a);
5596
+ }, s = () => {
5597
+ if (!this._dragging) return;
5598
+ if (Math.abs(a.scrollLeft - this._startScrollLeft) > Me.DRAG_THRESHOLD_PX) {
5599
+ let f;
5600
+ const p = (v) => {
5601
+ v.preventDefault(), v.stopPropagation(), f && clearTimeout(f);
5602
+ };
5603
+ a.addEventListener("click", p, { capture: !0, once: !0 }), f = window.setTimeout(() => a.removeEventListener("click", p, !0), 200);
5604
+ }
5605
+ this._dragging = !1, a.classList.remove("dragging"), this._lastPointerId != null && (a.releasePointerCapture?.(this._lastPointerId), this._lastPointerId = null), this.updateArrows(a);
5606
+ }, r = () => {
5607
+ this._dragging && (this._dragging = !1, a.classList.remove("dragging"), this._lastPointerId != null && (a.releasePointerCapture?.(this._lastPointerId), this._lastPointerId = null), this.updateArrows(a));
5546
5608
  };
5547
- a.addEventListener("click", p, { capture: !0, once: !0 }), f = window.setTimeout(() => a.removeEventListener("click", p, !0), 200);
5609
+ a.addEventListener("pointerdown", t), a.addEventListener("pointermove", i, { passive: !1 }), a.addEventListener("pointerup", s), a.addEventListener("pointercancel", r), a.addEventListener("pointerleave", r), this._dragBound = !0;
5548
5610
  }
5549
- this._dragging = !1, a.classList.remove("dragging"), this._lastPointerId != null && (a.releasePointerCapture?.(this._lastPointerId), this._lastPointerId = null);
5550
- }, r = () => {
5551
- this._dragging && (this._dragging = !1, a.classList.remove("dragging"), this._lastPointerId != null && (a.releasePointerCapture?.(this._lastPointerId), this._lastPointerId = null));
5552
- };
5553
- a.addEventListener("pointerdown", t), a.addEventListener("pointermove", i, { passive: !1 }), a.addEventListener("pointerup", s), a.addEventListener("pointercancel", r), a.addEventListener("pointerleave", r), this._dragBound = !0;
5611
+ requestAnimationFrame(() => this.updateArrows(a));
5612
+ }
5554
5613
  }
5555
5614
  renderUnknown(a) {
5556
5615
  return u`<div class="unknown">Unknown block type: <code>${a?.type ?? "—"}</code></div>`;
@@ -5565,23 +5624,17 @@ let Ge = class extends De {
5565
5624
  });
5566
5625
  }
5567
5626
  /* ----------------- execute actions ----------------- */
5568
- // 1) Pick likely cart-related sections that many themes expose.
5569
- // We'll include only the ones that actually exist in the current DOM.
5570
5627
  findCartSectionIdsInDOM() {
5571
5628
  const a = [
5572
5629
  "cart-icon-bubble",
5573
- // cart count bubble in header
5574
5630
  "cart-drawer",
5575
- // drawer mini-cart
5576
5631
  "cart-live-region-text"
5577
- // SR-only live region for "X items"
5578
5632
  ], e = [];
5579
5633
  for (const i of a)
5580
5634
  document.getElementById(`shopify-section-${i}`) && e.push(i);
5581
5635
  const t = document.querySelector("#shopify-section-header") || document.querySelector('[id^="shopify-section-"][id$="__header"]');
5582
5636
  return t && e.push(t.id.replace("shopify-section-", "")), Array.from(new Set(e)).slice(0, 5);
5583
5637
  }
5584
- // 2) Replace any returned sections (id -> HTML) in the current DOM.
5585
5638
  patchSectionsFromResponse(a) {
5586
5639
  if (!a) return !1;
5587
5640
  let e = !1;
@@ -5594,7 +5647,7 @@ let Ge = class extends De {
5594
5647
  }
5595
5648
  // @ts-ignore
5596
5649
  async addToCartAndSetAttributes({ variantId: a, quantity: e, attributes: t }) {
5597
- Ut.info(`c7o: Adding to Shopify cart, variantId=${a}, quantity=${e}, attributes=`, t);
5650
+ Tt.info(`c7o: Adding to Shopify cart, variantId=${a}, quantity=${e}, attributes=`, t);
5598
5651
  const i = window.Shopify?.routes?.root || "/", s = this.findCartSectionIdsInDOM(), r = {
5599
5652
  items: [{ id: Number(a), quantity: e }]
5600
5653
  };
@@ -5606,75 +5659,39 @@ let Ge = class extends De {
5606
5659
  body: JSON.stringify(r)
5607
5660
  });
5608
5661
  if (!o.ok) {
5609
- Ut.error("c7o: cart/add.js failed"), Ea({
5662
+ Tt.error("c7o: cart/add.js failed"), Vs({
5610
5663
  message: "Unable to add item to cart.",
5611
5664
  variant: "danger",
5612
- // 'success' | 'danger' | 'warning' | 'info' | 'neutral' | 'primary'
5613
- duration: 2800,
5614
- // optional; defaults to 3000
5615
- closeable: !0
5616
- // optional X button
5665
+ duration: 2800
5617
5666
  });
5618
5667
  return;
5619
5668
  }
5620
- Ea({
5621
- message: "Added to cart!",
5622
- variant: "success",
5623
- // 'success' | 'danger' | 'warning' | 'info' | 'neutral' | 'primary'
5624
- duration: 2800,
5625
- // optional; defaults to 3000
5626
- closeable: !0
5627
- // optional X button
5628
- });
5629
- const f = await o.json();
5630
- if ((() => {
5631
- try {
5632
- const w = new URL(window.location.href).pathname.replace(/\/+$/, "").toLowerCase();
5633
- return /(^|\/)cart$/.test(w);
5634
- } catch {
5635
- return !1;
5636
- }
5637
- })()) {
5638
- window.location.reload();
5639
- return;
5640
- }
5641
- if (!this.patchSectionsFromResponse(f.sections))
5642
- try {
5643
- const k = await fetch(i + "cart.js", { credentials: "same-origin", headers: { Accept: "application/json" } });
5644
- if (k.ok) {
5645
- const w = await k.json();
5646
- document.querySelectorAll("[data-cart-count]").forEach((_) => _.textContent = String(w.item_count || 0));
5647
- }
5648
- } catch {
5649
- }
5650
- t && Object.keys(t).length && ((await fetch(window.Shopify?.routes?.root + "cart/update.js", {
5651
- method: "POST",
5652
- credentials: "same-origin",
5653
- headers: {
5654
- "Content-Type": "application/json",
5655
- Accept: "application/json"
5656
- },
5657
- body: JSON.stringify({ attributes: t })
5658
- })).ok || Ut.error("c7o: cart/update.js failed"));
5669
+ await o.json(), Tt.info("c7o: cart/add.js - cart updated"), Tt.info("c7o: reloading window after cart update"), window.location.reload();
5659
5670
  }
5660
5671
  };
5661
- Ge.styles = [Ns, Bs, Ja];
5662
- Ge.DRAG_THRESHOLD_PX = 10;
5663
- ra([
5672
+ Me.styles = [Ws, Bs, Ja];
5673
+ Me.DRAG_THRESHOLD_PX = 10;
5674
+ wt([
5664
5675
  x({ type: Object })
5665
- ], Ge.prototype, "block", 2);
5666
- ra([
5676
+ ], Me.prototype, "block", 2);
5677
+ wt([
5667
5678
  xe(".horizontal-carousel")
5668
- ], Ge.prototype, "_hCarousel", 2);
5669
- Ge = ra([
5679
+ ], Me.prototype, "_hCarousel", 2);
5680
+ wt([
5681
+ Ha()
5682
+ ], Me.prototype, "_canPrev", 2);
5683
+ wt([
5684
+ Ha()
5685
+ ], Me.prototype, "_canNext", 2);
5686
+ Me = wt([
5670
5687
  K("cb-block")
5671
- ], Ge);
5672
- var Ws = Object.defineProperty, Gs = Object.getOwnPropertyDescriptor, Ka = (a, e, t, i) => {
5673
- for (var s = i > 1 ? void 0 : i ? Gs(e, t) : e, r = a.length - 1, o; r >= 0; r--)
5688
+ ], Me);
5689
+ var Gs = Object.defineProperty, Xs = Object.getOwnPropertyDescriptor, Ka = (a, e, t, i) => {
5690
+ for (var s = i > 1 ? void 0 : i ? Xs(e, t) : e, r = a.length - 1, o; r >= 0; r--)
5674
5691
  (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
5675
- return i && s && Ws(e, t, s), s;
5692
+ return i && s && Gs(e, t, s), s;
5676
5693
  };
5677
- let Rt = class extends De {
5694
+ let Ot = class extends Fe {
5678
5695
  constructor() {
5679
5696
  super(...arguments), this.blocks = [];
5680
5697
  }
@@ -5686,7 +5703,7 @@ let Rt = class extends De {
5686
5703
  `;
5687
5704
  }
5688
5705
  };
5689
- Rt.styles = J`
5706
+ Ot.styles = J`
5690
5707
  :host {
5691
5708
  display: block;
5692
5709
  }
@@ -5694,21 +5711,21 @@ Rt.styles = J`
5694
5711
  margin-top: 10px;
5695
5712
  display: grid;
5696
5713
  grid-template-columns: 1fr;
5697
- gap: 0.75rem; /* vertical rhythm between blocks */
5714
+ gap: 0.75em; /* vertical rhythm between blocks */
5698
5715
  }
5699
5716
  `;
5700
5717
  Ka([
5701
5718
  x({ type: Array })
5702
- ], Rt.prototype, "blocks", 2);
5703
- Rt = Ka([
5719
+ ], Ot.prototype, "blocks", 2);
5720
+ Ot = Ka([
5704
5721
  K("cb-blocks")
5705
- ], Rt);
5706
- var $t = { exports: {} }, Xs = $t.exports, Pa;
5707
- function Ys() {
5708
- return Pa || (Pa = 1, (function(a, e) {
5722
+ ], Ot);
5723
+ var Lt = { exports: {} }, Ys = Lt.exports, $a;
5724
+ function Js() {
5725
+ return $a || ($a = 1, (function(a, e) {
5709
5726
  (function(t, i) {
5710
5727
  a.exports = i();
5711
- })(Xs, (function() {
5728
+ })(Ys, (function() {
5712
5729
  function t(n, c) {
5713
5730
  if (!(n instanceof c)) throw new TypeError("Cannot call a class as a function");
5714
5731
  }
@@ -5754,9 +5771,9 @@ function Ys() {
5754
5771
  return n;
5755
5772
  }
5756
5773
  function v(n, c) {
5757
- if ((V(n) || n === window || n === document) && (n = [n]), $e(n) || He(n) || (n = [n]), ba(n) != 0) {
5758
- if ($e(n) && !He(n)) for (var l = n.length, d = 0; d < l && c.call(n[d], n[d], d, n) !== !1; d++) ;
5759
- else if (He(n)) {
5774
+ if ((V(n) || n === window || n === document) && (n = [n]), Pe(n) || Ve(n) || (n = [n]), ba(n) != 0) {
5775
+ if (Pe(n) && !Ve(n)) for (var l = n.length, d = 0; d < l && c.call(n[d], n[d], d, n) !== !1; d++) ;
5776
+ else if (Ve(n)) {
5760
5777
  for (var h in n) if (ie(n, h) && c.call(n[h], n[h], h, n) === !1) break;
5761
5778
  }
5762
5779
  }
@@ -5805,7 +5822,7 @@ function Ys() {
5805
5822
  var c = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "", l = arguments.length > 2 && arguments[2] !== void 0 && arguments[2];
5806
5823
  if (!n || c === "") return !1;
5807
5824
  if (c === "none") return F(l) && l(), !1;
5808
- var d = je(), h = c.split(" ");
5825
+ var d = He(), h = c.split(" ");
5809
5826
  v(h, (function(m) {
5810
5827
  _(n, "g" + m);
5811
5828
  })), w(d, { onElement: n, avoidDuplicate: !1, once: !0, withCallback: function(m, g) {
@@ -5833,7 +5850,7 @@ function Ys() {
5833
5850
  function te() {
5834
5851
  return { width: window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth, height: window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight };
5835
5852
  }
5836
- function je() {
5853
+ function He() {
5837
5854
  var n, c = document.createElement("fakeelement"), l = { animation: "animationend", OAnimation: "oAnimationEnd", MozAnimation: "animationend", WebkitAnimation: "webkitAnimationEnd" };
5838
5855
  for (n in l) if (c.style[n] !== void 0) return l[n];
5839
5856
  }
@@ -5893,14 +5910,14 @@ function Ys() {
5893
5910
  function V(n) {
5894
5911
  return !(!n || !n.nodeType || n.nodeType != 1);
5895
5912
  }
5896
- function Ee(n) {
5913
+ function $e(n) {
5897
5914
  return Array.isArray(n);
5898
5915
  }
5899
- function $e(n) {
5916
+ function Pe(n) {
5900
5917
  return n && n.length && isFinite(n.length);
5901
5918
  }
5902
- function He(n) {
5903
- return o(n) === "object" && n != null && !F(n) && !Ee(n);
5919
+ function Ve(n) {
5920
+ return o(n) === "object" && n != null && !F(n) && !$e(n);
5904
5921
  }
5905
5922
  function be(n) {
5906
5923
  return n == null;
@@ -5909,7 +5926,7 @@ function Ys() {
5909
5926
  return n !== null && hasOwnProperty.call(n, c);
5910
5927
  }
5911
5928
  function ba(n) {
5912
- if (He(n)) {
5929
+ if (Ve(n)) {
5913
5930
  if (n.keys) return n.keys().length;
5914
5931
  var c = 0;
5915
5932
  for (var l in n) ie(n, l) && c++;
@@ -5917,7 +5934,7 @@ function Ys() {
5917
5934
  }
5918
5935
  return n.length;
5919
5936
  }
5920
- function wt(n) {
5937
+ function xt(n) {
5921
5938
  return !isNaN(parseFloat(n)) && isFinite(n);
5922
5939
  }
5923
5940
  function ua() {
@@ -6118,13 +6135,13 @@ function Ys() {
6118
6135
  }
6119
6136
  var _i = s((function n() {
6120
6137
  var c = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
6121
- t(this, n), this.defaults = { href: "", sizes: "", srcset: "", title: "", type: "", videoProvider: "", description: "", alt: "", descPosition: "bottom", effect: "", width: "", height: "", content: !1, zoomable: !0, draggable: !0 }, He(c) && (this.defaults = p(this.defaults, c));
6138
+ t(this, n), this.defaults = { href: "", sizes: "", srcset: "", title: "", type: "", videoProvider: "", description: "", alt: "", descPosition: "bottom", effect: "", width: "", height: "", content: !1, zoomable: !0, draggable: !0 }, Ve(c) && (this.defaults = p(this.defaults, c));
6122
6139
  }), [{ key: "sourceType", value: function(n) {
6123
6140
  var c = n;
6124
6141
  return (n = n.toLowerCase()).match(/\.(jpeg|jpg|jpe|gif|png|apn|webp|avif|svg)/) !== null ? "image" : n.match(/(youtube\.com|youtube-nocookie\.com)\/watch\?v=([a-zA-Z0-9\-_]+)/) || n.match(/youtu\.be\/([a-zA-Z0-9\-_]+)/) || n.match(/(youtube\.com|youtube-nocookie\.com)\/embed\/([a-zA-Z0-9\-_]+)/) || n.match(/(youtube\.com|youtube-nocookie\.com)\/shorts\/([a-zA-Z0-9\-_]+)/) || n.match(/vimeo\.com\/([0-9]*)/) || n.match(/\.(mp4|ogg|webm|mov)/) !== null ? "video" : n.match(/\.(mp3|wav|wma|aac|ogg)/) !== null ? "audio" : n.indexOf("#") > -1 && c.split("#").pop().trim() !== "" ? "inline" : n.indexOf("goajax=true") > -1 ? "ajax" : "external";
6125
6142
  } }, { key: "parseConfig", value: function(n, c) {
6126
6143
  var l = this, d = p({ descPosition: c.descPosition }, this.defaults);
6127
- if (He(n) && !V(n)) {
6144
+ if (Ve(n) && !V(n)) {
6128
6145
  ie(n, "type") || (ie(n, "content") && n.content ? n.type = "inline" : ie(n, "href") && (n.type = this.sourceType(n.href)));
6129
6146
  var h = p(d, n);
6130
6147
  return this.setSize(h, c), h;
@@ -6150,8 +6167,8 @@ function Ys() {
6150
6167
  })), T = T.join("\\s?:|"), g.trim() !== "" && v(d, (function(q, D) {
6151
6168
  var ee = g, ge = new RegExp("s?" + D + "s?:s?(.*?)(" + T + "s?:|$)"), ue = ee.match(ge);
6152
6169
  if (ue && ue.length && ue[1]) {
6153
- var Pe = ue[1].trim().replace(/;\s*$/, "");
6154
- d[D] = l.sanitizeValue(Pe);
6170
+ var Le = ue[1].trim().replace(/;\s*$/, "");
6171
+ d[D] = l.sanitizeValue(Le);
6155
6172
  }
6156
6173
  }));
6157
6174
  }
@@ -6173,10 +6190,10 @@ function Ys() {
6173
6190
  var l = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : null, d = n.type == "video" ? this.checkSize(c.videosWidth) : this.checkSize(c.width), h = this.checkSize(c.height);
6174
6191
  return n.width = ie(n, "width") && n.width !== "" ? this.checkSize(n.width) : d, n.height = ie(n, "height") && n.height !== "" ? this.checkSize(n.height) : h, l && n.type == "image" && (n._hasCustomWidth = !!l.dataset.width, n._hasCustomHeight = !!l.dataset.height), n;
6175
6192
  } }, { key: "checkSize", value: function(n) {
6176
- return wt(n) ? "".concat(n, "px") : n;
6193
+ return xt(n) ? "".concat(n, "px") : n;
6177
6194
  } }, { key: "sanitizeValue", value: function(n) {
6178
6195
  return n !== "true" && n !== "false" ? n : n === "true";
6179
- } }]), xt = s((function n(c, l, d) {
6196
+ } }]), kt = s((function n(c, l, d) {
6180
6197
  t(this, n), this.element = c, this.instance = l, this.index = d;
6181
6198
  }), [{ key: "setContent", value: function() {
6182
6199
  var n = this, c = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : null, l = arguments.length > 1 && arguments[1] !== void 0 && arguments[1];
@@ -6223,12 +6240,12 @@ function Ys() {
6223
6240
  var n = new _i(this.instance.settings.slideExtraAttributes);
6224
6241
  return this.slideConfig = n.parseConfig(this.element, this.instance.settings), this.slideConfig;
6225
6242
  } }]);
6226
- function kt(n) {
6243
+ function _t(n) {
6227
6244
  return Math.sqrt(n.x * n.x + n.y * n.y);
6228
6245
  }
6229
6246
  function Si(n, c) {
6230
6247
  var l = (function(d, h) {
6231
- var m = kt(d) * kt(h);
6248
+ var m = _t(d) * _t(h);
6232
6249
  if (m === 0) return 0;
6233
6250
  var g = (function(y, A) {
6234
6251
  return y.x * A.x + y.y * A.y;
@@ -6269,7 +6286,7 @@ function Ys() {
6269
6286
  if (n.touches.length > 1) {
6270
6287
  this._cancelLongTap(), this._cancelSingleTap();
6271
6288
  var l = { x: n.touches[1].pageX - this.x1, y: n.touches[1].pageY - this.y1 };
6272
- c.x = l.x, c.y = l.y, this.pinchStartLen = kt(c), this.multipointStart.dispatch(n, this.element);
6289
+ c.x = l.x, c.y = l.y, this.pinchStartLen = _t(c), this.multipointStart.dispatch(n, this.element);
6273
6290
  }
6274
6291
  this._preventTap = !1, this.longTapTimeout = setTimeout((function() {
6275
6292
  this.longTap.dispatch(n, this.element), this._preventTap = !0;
@@ -6280,7 +6297,7 @@ function Ys() {
6280
6297
  var c = this.preV, l = n.touches.length, d = n.touches[0].pageX, h = n.touches[0].pageY;
6281
6298
  if (this.isDoubleTap = !1, l > 1) {
6282
6299
  var m = n.touches[1].pageX, g = n.touches[1].pageY, y = { x: n.touches[1].pageX - d, y: n.touches[1].pageY - h };
6283
- c.x !== null && (this.pinchStartLen > 0 && (n.zoom = kt(y) / this.pinchStartLen, this.pinch.dispatch(n, this.element)), n.angle = Si(y, c), this.rotate.dispatch(n, this.element)), c.x = y.x, c.y = y.y, this.x2 !== null && this.sx2 !== null ? (n.deltaX = (d - this.x2 + m - this.sx2) / 2, n.deltaY = (h - this.y2 + g - this.sy2) / 2) : (n.deltaX = 0, n.deltaY = 0), this.twoFingerPressMove.dispatch(n, this.element), this.sx2 = m, this.sy2 = g;
6300
+ c.x !== null && (this.pinchStartLen > 0 && (n.zoom = _t(y) / this.pinchStartLen, this.pinch.dispatch(n, this.element)), n.angle = Si(y, c), this.rotate.dispatch(n, this.element)), c.x = y.x, c.y = y.y, this.x2 !== null && this.sx2 !== null ? (n.deltaX = (d - this.x2 + m - this.sx2) / 2, n.deltaY = (h - this.y2 + g - this.sy2) / 2) : (n.deltaX = 0, n.deltaY = 0), this.twoFingerPressMove.dispatch(n, this.element), this.sx2 = m, this.sy2 = g;
6284
6301
  } else {
6285
6302
  if (this.x2 !== null) {
6286
6303
  n.deltaX = d - this.x2, n.deltaY = h - this.y2;
@@ -6320,7 +6337,7 @@ function Ys() {
6320
6337
  } }, { key: "destroy", value: function() {
6321
6338
  return this.singleTapTimeout && clearTimeout(this.singleTapTimeout), this.tapTimeout && clearTimeout(this.tapTimeout), this.longTapTimeout && clearTimeout(this.longTapTimeout), this.swipeTimeout && clearTimeout(this.swipeTimeout), this.element.removeEventListener("touchstart", this.start), this.element.removeEventListener("touchmove", this.move), this.element.removeEventListener("touchend", this.end), this.element.removeEventListener("touchcancel", this.cancel), this.rotate.del(), this.touchStart.del(), this.multipointStart.del(), this.multipointEnd.del(), this.pinch.del(), this.swipe.del(), this.tap.del(), this.doubleTap.del(), this.longTap.del(), this.singleTap.del(), this.pressMove.del(), this.twoFingerPressMove.del(), this.touchMove.del(), this.touchEnd.del(), this.touchCancel.del(), this.preV = this.pinchStartLen = this.zoom = this.isDoubleTap = this.delta = this.last = this.now = this.tapTimeout = this.singleTapTimeout = this.longTapTimeout = this.swipeTimeout = this.x1 = this.x2 = this.y1 = this.y2 = this.preTapPosition = this.rotate = this.touchStart = this.multipointStart = this.multipointEnd = this.pinch = this.swipe = this.tap = this.doubleTap = this.longTap = this.singleTap = this.pressMove = this.touchMove = this.touchEnd = this.touchCancel = this.twoFingerPressMove = null, window.removeEventListener("scroll", this._cancelAllHandler), null;
6322
6339
  } }]);
6323
- function jt(n) {
6340
+ function Vt(n) {
6324
6341
  var c = (function() {
6325
6342
  var g, y = document.createElement("fakeelement"), A = { transition: "transitionend", OTransition: "oTransitionEnd", MozTransition: "transitionend", WebkitTransition: "webkitTransitionEnd" };
6326
6343
  for (g in A) if (y.style[g] !== void 0) return A[g];
@@ -6331,9 +6348,9 @@ function Ys() {
6331
6348
  }
6332
6349
  function Mi(n) {
6333
6350
  if (n.events.hasOwnProperty("touch")) return !1;
6334
- var c, l, d, h = te(), m = h.width, g = h.height, y = !1, A = null, S = null, T = null, E = !1, z = 1, q = 1, D = !1, ee = !1, ge = null, ue = null, Pe = null, oe = null, Le = 0, Re = 0, ht = !1, rt = !1, _e = {}, Se = {}, wa = 0, xa = 0, Ei = document.getElementById("glightbox-slider"), _t = document.querySelector(".goverlay"), $i = new Ai(Ei, { touchStart: function(X) {
6351
+ var c, l, d, h = te(), m = h.width, g = h.height, y = !1, A = null, S = null, T = null, E = !1, z = 1, q = 1, D = !1, ee = !1, ge = null, ue = null, Le = null, oe = null, Re = 0, ze = 0, ht = !1, rt = !1, _e = {}, Se = {}, wa = 0, xa = 0, Ei = document.getElementById("glightbox-slider"), St = document.querySelector(".goverlay"), $i = new Ai(Ei, { touchStart: function(X) {
6335
6352
  if (y = !0, (I(X.targetTouches[0].target, "ginner-container") || M(X.targetTouches[0].target, ".gslide-desc") || X.targetTouches[0].target.nodeName.toLowerCase() == "a") && (y = !1), M(X.targetTouches[0].target, ".gslide-inline") && !I(X.targetTouches[0].target.parentNode, "gslide-inline") && (y = !1), y) {
6336
- if (Se = X.targetTouches[0], _e.pageX = X.targetTouches[0].pageX, _e.pageY = X.targetTouches[0].pageY, wa = X.targetTouches[0].clientX, xa = X.targetTouches[0].clientY, A = n.activeSlide, S = A.querySelector(".gslide-media"), d = A.querySelector(".gslide-inline"), T = null, I(S, "gslide-image") && (T = S.querySelector("img")), (window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth) > 769 && (S = A.querySelector(".ginner-container")), P(_t, "greset"), X.pageX > 20 && X.pageX < window.innerWidth - 20) return;
6353
+ if (Se = X.targetTouches[0], _e.pageX = X.targetTouches[0].pageX, _e.pageY = X.targetTouches[0].pageY, wa = X.targetTouches[0].clientX, xa = X.targetTouches[0].clientY, A = n.activeSlide, S = A.querySelector(".gslide-media"), d = A.querySelector(".gslide-inline"), T = null, I(S, "gslide-image") && (T = S.querySelector("img")), (window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth) > 769 && (S = A.querySelector(".ginner-container")), P(St, "greset"), X.pageX > 20 && X.pageX < window.innerWidth - 20) return;
6337
6354
  X.preventDefault();
6338
6355
  }
6339
6356
  }, touchMove: function(X) {
@@ -6343,15 +6360,15 @@ function Ys() {
6343
6360
  if (Math.abs(le) <= 13) return !1;
6344
6361
  }
6345
6362
  E = !0;
6346
- var Ve, St = X.targetTouches[0].clientX, Pi = X.targetTouches[0].clientY, Li = wa - St, Ri = xa - Pi;
6347
- if (Math.abs(Li) > Math.abs(Ri) ? (ht = !1, rt = !0) : (rt = !1, ht = !0), c = Se.pageX - _e.pageX, Le = 100 * c / m, l = Se.pageY - _e.pageY, Re = 100 * l / g, ht && T && (Ve = 1 - Math.abs(l) / g, _t.style.opacity = Ve, n.settings.touchFollowAxis && (Le = 0)), rt && (Ve = 1 - Math.abs(c) / m, S.style.opacity = Ve, n.settings.touchFollowAxis && (Re = 0)), !T) return C(S, "translate3d(".concat(Le, "%, 0, 0)"));
6348
- C(S, "translate3d(".concat(Le, "%, ").concat(Re, "%, 0)"));
6363
+ var Ue, Ct = X.targetTouches[0].clientX, Pi = X.targetTouches[0].clientY, Li = wa - Ct, Ri = xa - Pi;
6364
+ if (Math.abs(Li) > Math.abs(Ri) ? (ht = !1, rt = !0) : (rt = !1, ht = !0), c = Se.pageX - _e.pageX, Re = 100 * c / m, l = Se.pageY - _e.pageY, ze = 100 * l / g, ht && T && (Ue = 1 - Math.abs(l) / g, St.style.opacity = Ue, n.settings.touchFollowAxis && (Re = 0)), rt && (Ue = 1 - Math.abs(c) / m, S.style.opacity = Ue, n.settings.touchFollowAxis && (ze = 0)), !T) return C(S, "translate3d(".concat(Re, "%, 0, 0)"));
6365
+ C(S, "translate3d(".concat(Re, "%, ").concat(ze, "%, 0)"));
6349
6366
  }
6350
6367
  }, touchEnd: function() {
6351
6368
  if (y) {
6352
- if (E = !1, ee || D) return Pe = ge, void (oe = ue);
6353
- var X = Math.abs(parseInt(Re)), le = Math.abs(parseInt(Le));
6354
- if (!(X > 29 && T)) return X < 29 && le < 25 ? (_(_t, "greset"), _t.style.opacity = 1, jt(S)) : void 0;
6369
+ if (E = !1, ee || D) return Le = ge, void (oe = ue);
6370
+ var X = Math.abs(parseInt(ze)), le = Math.abs(parseInt(Re));
6371
+ if (!(X > 29 && T)) return X < 29 && le < 25 ? (_(St, "greset"), St.style.opacity = 1, Vt(S)) : void 0;
6355
6372
  n.close();
6356
6373
  }
6357
6374
  }, multipointEnd: function() {
@@ -6364,24 +6381,24 @@ function Ys() {
6364
6381
  if (!T || E) return !1;
6365
6382
  D = !0, T.scaleX = T.scaleY = z * X.zoom;
6366
6383
  var le = z * X.zoom;
6367
- if (ee = !0, le <= 1) return ee = !1, le = 1, oe = null, Pe = null, ge = null, ue = null, void T.setAttribute("style", "");
6384
+ if (ee = !0, le <= 1) return ee = !1, le = 1, oe = null, Le = null, ge = null, ue = null, void T.setAttribute("style", "");
6368
6385
  le > 4.5 && (le = 4.5), T.style.transform = "scale3d(".concat(le, ", ").concat(le, ", 1)"), q = le;
6369
6386
  }, pressMove: function(X) {
6370
6387
  if (ee && !D) {
6371
- var le = Se.pageX - _e.pageX, Ve = Se.pageY - _e.pageY;
6372
- Pe && (le += Pe), oe && (Ve += oe), ge = le, ue = Ve;
6373
- var St = "translate3d(".concat(le, "px, ").concat(Ve, "px, 0)");
6374
- q && (St += " scale3d(".concat(q, ", ").concat(q, ", 1)")), C(T, St);
6388
+ var le = Se.pageX - _e.pageX, Ue = Se.pageY - _e.pageY;
6389
+ Le && (le += Le), oe && (Ue += oe), ge = le, ue = Ue;
6390
+ var Ct = "translate3d(".concat(le, "px, ").concat(Ue, "px, 0)");
6391
+ q && (Ct += " scale3d(".concat(q, ", ").concat(q, ", 1)")), C(T, Ct);
6375
6392
  }
6376
6393
  }, swipe: function(X) {
6377
6394
  if (!ee) if (D) D = !1;
6378
6395
  else {
6379
6396
  if (X.direction == "Left") {
6380
- if (n.index == n.elements.length - 1) return jt(S);
6397
+ if (n.index == n.elements.length - 1) return Vt(S);
6381
6398
  n.nextSlide();
6382
6399
  }
6383
6400
  if (X.direction == "Right") {
6384
- if (n.index == 0) return jt(S);
6401
+ if (n.index == 0) return Vt(S);
6385
6402
  n.prevSlide();
6386
6403
  }
6387
6404
  }
@@ -6422,12 +6439,12 @@ function Ys() {
6422
6439
  var n = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : null, c = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null;
6423
6440
  if (this.elements.length === 0) return !1;
6424
6441
  this.activeSlide = null, this.prevActiveSlideIndex = null, this.prevActiveSlide = null;
6425
- var l = wt(c) ? c : this.settings.startAt;
6442
+ var l = xt(c) ? c : this.settings.startAt;
6426
6443
  if (V(n)) {
6427
6444
  var d = n.getAttribute("data-gallery");
6428
6445
  d && (this.fullElementsList = this.elements, this.elements = this.getGalleryElements(this.elements, d)), be(l) && (l = this.getElementIndex(n)) < 0 && (l = 0);
6429
6446
  }
6430
- wt(l) || (l = 0), this.build(), L(this.overlay, this.settings.openEffect === "none" ? "none" : this.settings.cssEfects.fade.in);
6447
+ xt(l) || (l = 0), this.build(), L(this.overlay, this.settings.openEffect === "none" ? "none" : this.settings.cssEfects.fade.in);
6431
6448
  var h = document.body, m = window.innerWidth - document.documentElement.clientWidth;
6432
6449
  if (m > 0) {
6433
6450
  var g = document.createElement("style");
@@ -6476,7 +6493,7 @@ function Ys() {
6476
6493
  } }, { key: "insertSlide", value: function() {
6477
6494
  var n = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, c = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : -1;
6478
6495
  c < 0 && (c = this.elements.length);
6479
- var l = new xt(n, this, c), d = l.getConfig(), h = p({}, d), m = l.create(), g = this.elements.length - 1;
6496
+ var l = new kt(n, this, c), d = l.getConfig(), h = p({}, d), m = l.create(), g = this.elements.length - 1;
6480
6497
  h.index = c, h.node = !1, h.instance = l, h.slideConfig = d, this.elements.splice(c, 0, h);
6481
6498
  var y = null, A = null;
6482
6499
  if (this.slidesContainer) {
@@ -6559,7 +6576,7 @@ function Ys() {
6559
6576
  this.settings.elements = !1;
6560
6577
  var l = [];
6561
6578
  n && n.length && v(n, (function(d, h) {
6562
- var m = new xt(d, c, h), g = m.getConfig(), y = p({}, g);
6579
+ var m = new kt(d, c, h), g = m.getConfig(), y = p({}, g);
6563
6580
  y.slideConfig = g, y.instance = m, y.index = h, l.push(y);
6564
6581
  })), this.elements = l, this.lightboxOpen && (this.slidesContainer.innerHTML = "", this.elements.length && (v(this.elements, (function() {
6565
6582
  var d = G(c.settings.slideHTML);
@@ -6572,13 +6589,13 @@ function Ys() {
6572
6589
  })), c;
6573
6590
  } }, { key: "getElements", value: function() {
6574
6591
  var n = this, c = [];
6575
- this.elements = this.elements ? this.elements : [], !be(this.settings.elements) && Ee(this.settings.elements) && this.settings.elements.length && v(this.settings.elements, (function(d, h) {
6576
- var m = new xt(d, n, h), g = m.getConfig(), y = p({}, g);
6592
+ this.elements = this.elements ? this.elements : [], !be(this.settings.elements) && $e(this.settings.elements) && this.settings.elements.length && v(this.settings.elements, (function(d, h) {
6593
+ var m = new kt(d, n, h), g = m.getConfig(), y = p({}, g);
6577
6594
  y.node = !1, y.index = h, y.instance = m, y.slideConfig = g, c.push(y);
6578
6595
  }));
6579
6596
  var l = !1;
6580
6597
  return this.getSelector() && (l = document.querySelectorAll(this.getSelector())), l && v(l, (function(d, h) {
6581
- var m = new xt(d, n, h), g = m.getConfig(), y = p({}, g);
6598
+ var m = new kt(d, n, h), g = m.getConfig(), y = p({}, g);
6582
6599
  y.node = d, y.index = h, y.instance = m, y.slideConfig = g, y.gallery = d.getAttribute("data-gallery"), c.push(y);
6583
6600
  })), c;
6584
6601
  } }, { key: "getGalleryElements", value: function(n, c) {
@@ -6642,8 +6659,8 @@ function Ys() {
6642
6659
  var ee = l.clientWidth, ge = l.clientHeight, ue = ee / ge;
6643
6660
  D = "".concat(ee / ue, ":").concat(ge / ue);
6644
6661
  }
6645
- var Pe = D.split(":"), oe = this.settings.videosWidth, Le = this.settings.videosWidth, Re = (Le = wt(oe) || oe.indexOf("px") !== -1 ? parseInt(oe) : oe.indexOf("vw") !== -1 ? m * parseInt(oe) / 100 : oe.indexOf("vh") !== -1 ? g * parseInt(oe) / 100 : oe.indexOf("%") !== -1 ? m * parseInt(oe) / 100 : parseInt(l.clientWidth)) / (parseInt(Pe[0]) / parseInt(Pe[1]));
6646
- if (Re = Math.floor(Re), y && (g -= h.offsetHeight), Le > m || Re > g || g < Re && m > Le) {
6662
+ var Le = D.split(":"), oe = this.settings.videosWidth, Re = this.settings.videosWidth, ze = (Re = xt(oe) || oe.indexOf("px") !== -1 ? parseInt(oe) : oe.indexOf("vw") !== -1 ? m * parseInt(oe) / 100 : oe.indexOf("vh") !== -1 ? g * parseInt(oe) / 100 : oe.indexOf("%") !== -1 ? m * parseInt(oe) / 100 : parseInt(l.clientWidth)) / (parseInt(Le[0]) / parseInt(Le[1]));
6663
+ if (ze = Math.floor(ze), y && (g -= h.offsetHeight), Re > m || ze > g || g < ze && m > Re) {
6647
6664
  var ht = l.offsetWidth, rt = l.offsetHeight, _e = g / rt, Se = { width: ht * _e, height: rt * _e };
6648
6665
  l.parentNode.setAttribute("style", "max-width: ".concat(Se.width, "px")), y && h.setAttribute("style", "max-width: ".concat(Se.width, "px;"));
6649
6666
  } else l.parentNode.style.maxWidth = "".concat(oe), y && h.setAttribute("style", "max-width: ".concat(oe, ";"));
@@ -6706,21 +6723,21 @@ function Ys() {
6706
6723
  return c.init(), c;
6707
6724
  };
6708
6725
  }));
6709
- })($t)), $t.exports;
6726
+ })(Lt)), Lt.exports;
6710
6727
  }
6711
- var Js = Ys();
6712
- const Ks = /* @__PURE__ */ Na(Js);
6713
- var Zs = Object.getOwnPropertyDescriptor, Qs = (a, e, t, i) => {
6714
- for (var s = i > 1 ? void 0 : i ? Zs(e, t) : e, r = a.length - 1, o; r >= 0; r--)
6728
+ var Ks = Js();
6729
+ const Zs = /* @__PURE__ */ Na(Ks);
6730
+ var Qs = Object.getOwnPropertyDescriptor, en = (a, e, t, i) => {
6731
+ for (var s = i > 1 ? void 0 : i ? Qs(e, t) : e, r = a.length - 1, o; r >= 0; r--)
6715
6732
  (o = a[r]) && (s = o(s) || s);
6716
6733
  return s;
6717
6734
  };
6718
- let Jt = class extends De {
6735
+ let Kt = class extends Fe {
6719
6736
  render() {
6720
6737
  return u` <div class="cb-thinking"><span></span><span></span><span></span></div>`;
6721
6738
  }
6722
6739
  };
6723
- Jt.styles = J`
6740
+ Kt.styles = J`
6724
6741
  .cb-thinking {
6725
6742
  text-align: center;
6726
6743
  }
@@ -6758,15 +6775,15 @@ Jt.styles = J`
6758
6775
  }
6759
6776
  }
6760
6777
  `;
6761
- Jt = Qs([
6778
+ Kt = en([
6762
6779
  K("cb-thinking")
6763
- ], Jt);
6764
- var en = Object.defineProperty, tn = Object.getOwnPropertyDescriptor, Za = (a, e, t, i) => {
6765
- for (var s = i > 1 ? void 0 : i ? tn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
6780
+ ], Kt);
6781
+ var tn = Object.defineProperty, an = Object.getOwnPropertyDescriptor, Za = (a, e, t, i) => {
6782
+ for (var s = i > 1 ? void 0 : i ? an(e, t) : e, r = a.length - 1, o; r >= 0; r--)
6766
6783
  (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
6767
- return i && s && en(e, t, s), s;
6784
+ return i && s && tn(e, t, s), s;
6768
6785
  };
6769
- let zt = class extends ne {
6786
+ let Bt = class extends ne {
6770
6787
  constructor() {
6771
6788
  super(...arguments), this.files = [];
6772
6789
  }
@@ -6782,7 +6799,7 @@ let zt = class extends ne {
6782
6799
  </div>`;
6783
6800
  }
6784
6801
  };
6785
- zt.styles = J`
6802
+ Bt.styles = J`
6786
6803
  .cb-uploading {
6787
6804
  text-align: left;
6788
6805
  }
@@ -6802,11 +6819,11 @@ zt.styles = J`
6802
6819
  `;
6803
6820
  Za([
6804
6821
  x({ type: Array })
6805
- ], zt.prototype, "files", 2);
6806
- zt = Za([
6822
+ ], Bt.prototype, "files", 2);
6823
+ Bt = Za([
6807
6824
  K("cb-uploading")
6808
- ], zt);
6809
- const an = J`
6825
+ ], Bt);
6826
+ const sn = J`
6810
6827
  ${ke}
6811
6828
  :host {
6812
6829
  }
@@ -6827,12 +6844,12 @@ const an = J`
6827
6844
  margin-right: 0.2em;
6828
6845
  }
6829
6846
  `;
6830
- var sn = Object.defineProperty, nn = Object.getOwnPropertyDescriptor, oa = (a, e, t, i) => {
6831
- for (var s = i > 1 ? void 0 : i ? nn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
6847
+ var nn = Object.defineProperty, rn = Object.getOwnPropertyDescriptor, oa = (a, e, t, i) => {
6848
+ for (var s = i > 1 ? void 0 : i ? rn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
6832
6849
  (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
6833
- return i && s && sn(e, t, s), s;
6850
+ return i && s && nn(e, t, s), s;
6834
6851
  };
6835
- let mt = class extends De {
6852
+ let mt = class extends Fe {
6836
6853
  constructor() {
6837
6854
  super(...arguments), this.url = "", this.inverse = !1;
6838
6855
  }
@@ -6886,20 +6903,20 @@ oa([
6886
6903
  mt = oa([
6887
6904
  K("cb-external-link")
6888
6905
  ], mt);
6889
- const rn = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" fill-rule="evenodd" d="M14 4.5V14a2 2 0 0 1-2 2h-2v-1h2a1 1 0 0 0 1-1V4.5h-2A1.5 1.5 0 0 1 9.5 3V1H4a1 1 0 0 0-1 1v9H2V2a2 2 0 0 1 2-2h5.5zM1.928 15.849v-3.337h1.136v-.662H0v.662h1.134v3.337zm4.689-3.999h-.894L4.9 13.289h-.035l-.832-1.439h-.932l1.228 1.983l-1.24 2.016h.862l.853-1.415h.035l.85 1.415h.907l-1.253-1.992zm1.93.662v3.337h-.794v-3.337H6.619v-.662h3.064v.662H8.546Z"/></svg>', on = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" fill-rule="evenodd" d="M14 4.5V14a2 2 0 0 1-2 2h-1v-1h1a1 1 0 0 0 1-1V4.5h-2A1.5 1.5 0 0 1 9.5 3V1H4a1 1 0 0 0-1 1v9H2V2a2 2 0 0 1 2-2h5.5zM1.6 11.85H0v3.999h.791v-1.342h.803q.43 0 .732-.173q.305-.175.463-.474a1.4 1.4 0 0 0 .161-.677q0-.375-.158-.677a1.2 1.2 0 0 0-.46-.477q-.3-.18-.732-.179m.545 1.333a.8.8 0 0 1-.085.38a.57.57 0 0 1-.238.241a.8.8 0 0 1-.375.082H.788V12.48h.66q.327 0 .512.181q.185.183.185.522m1.217-1.333v3.999h1.46q.602 0 .998-.237a1.45 1.45 0 0 0 .595-.689q.196-.45.196-1.084q0-.63-.196-1.075a1.43 1.43 0 0 0-.589-.68q-.396-.234-1.005-.234zm.791.645h.563q.371 0 .609.152a.9.9 0 0 1 .354.454q.118.302.118.753a2.3 2.3 0 0 1-.068.592a1.1 1.1 0 0 1-.196.422a.8.8 0 0 1-.334.252a1.3 1.3 0 0 1-.483.082h-.563zm3.743 1.763v1.591h-.79V11.85h2.548v.653H7.896v1.117h1.606v.638z"/></svg>', cn = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" fill-rule="evenodd" d="M14 4.5V14a2 2 0 0 1-2 2H9v-1h3a1 1 0 0 0 1-1V4.5h-2A1.5 1.5 0 0 1 9.5 3V1H4a1 1 0 0 0-1 1v9H2V2a2 2 0 0 1 2-2h5.5zM.706 13.189v2.66H0V11.85h.806l1.14 2.596h.026l1.14-2.596h.8v3.999h-.716v-2.66h-.038l-.946 2.159h-.516l-.952-2.16H.706Zm3.919 2.66V11.85h1.459q.609 0 1.005.234t.589.68q.195.445.196 1.075q0 .634-.196 1.084q-.197.451-.595.689q-.396.237-1 .237H4.626Zm1.353-3.354h-.562v2.707h.562q.279 0 .484-.082a.8.8 0 0 0 .334-.252a1.1 1.1 0 0 0 .196-.422q.067-.252.067-.592a2.1 2.1 0 0 0-.117-.753a.9.9 0 0 0-.354-.454q-.238-.152-.61-.152"/></svg>', ln = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" fill-rule="evenodd" d="M14 4.5V14a2 2 0 0 1-2 2h-1v-1h1a1 1 0 0 0 1-1V4.5h-2A1.5 1.5 0 0 1 9.5 3V1H4a1 1 0 0 0-1 1v9H2V2a2 2 0 0 1 2-2h5.5zM3.517 14.841a1.13 1.13 0 0 0 .401.823q.195.162.478.252q.284.091.665.091q.507 0 .859-.158q.354-.158.539-.44q.187-.284.187-.656q0-.336-.134-.56a1 1 0 0 0-.375-.357a2 2 0 0 0-.566-.21l-.621-.144a1 1 0 0 1-.404-.176a.37.37 0 0 1-.144-.299q0-.234.185-.384q.188-.152.512-.152q.214 0 .37.068a.6.6 0 0 1 .246.181a.56.56 0 0 1 .12.258h.75a1.1 1.1 0 0 0-.2-.566a1.2 1.2 0 0 0-.5-.41a1.8 1.8 0 0 0-.78-.152q-.439 0-.776.15q-.337.149-.527.421q-.19.273-.19.639q0 .302.122.524q.124.223.352.367q.228.143.539.213l.618.144q.31.073.463.193a.39.39 0 0 1 .152.326a.5.5 0 0 1-.085.29a.56.56 0 0 1-.255.193q-.167.07-.413.07q-.175 0-.32-.04a.8.8 0 0 1-.248-.115a.58.58 0 0 1-.255-.384zM.806 13.693q0-.373.102-.633a.87.87 0 0 1 .302-.399a.8.8 0 0 1 .475-.137q.225 0 .398.097a.7.7 0 0 1 .272.26a.85.85 0 0 1 .12.381h.765v-.072a1.33 1.33 0 0 0-.466-.964a1.4 1.4 0 0 0-.489-.272a1.8 1.8 0 0 0-.606-.097q-.534 0-.911.223q-.375.222-.572.632q-.195.41-.196.979v.498q0 .568.193.976q.197.407.572.626q.375.217.914.217q.439 0 .785-.164t.55-.454a1.27 1.27 0 0 0 .226-.674v-.076h-.764a.8.8 0 0 1-.118.363a.7.7 0 0 1-.272.25a.9.9 0 0 1-.401.087a.85.85 0 0 1-.478-.132a.83.83 0 0 1-.299-.392a1.7 1.7 0 0 1-.102-.627zm8.239 2.238h-.953l-1.338-3.999h.917l.896 3.138h.038l.888-3.138h.879z"/></svg>', dn = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" fill-rule="evenodd" d="M14 4.5V14a2 2 0 0 1-2 2h-1v-1h1a1 1 0 0 0 1-1V4.5h-2A1.5 1.5 0 0 1 9.5 3V1H4a1 1 0 0 0-1 1v9H2V2a2 2 0 0 1 2-2h5.5zM1.6 11.85H0v3.999h.791v-1.342h.803q.43 0 .732-.173q.305-.175.463-.474a1.4 1.4 0 0 0 .161-.677q0-.375-.158-.677a1.2 1.2 0 0 0-.46-.477q-.3-.18-.732-.179m.545 1.333a.8.8 0 0 1-.085.38a.57.57 0 0 1-.238.241a.8.8 0 0 1-.375.082H.788V12.48h.66q.327 0 .512.181q.185.183.185.522m2.817-1.333h-1.6v3.999h.791v-1.342h.803q.43 0 .732-.173q.305-.175.463-.474q.162-.302.161-.677q0-.375-.158-.677a1.2 1.2 0 0 0-.46-.477q-.3-.18-.732-.179m.545 1.333a.8.8 0 0 1-.085.38a.57.57 0 0 1-.238.241a.8.8 0 0 1-.375.082H4.15V12.48h.66q.327 0 .512.181q.185.183.185.522m2.767-.67v3.336H7.48v-3.337H6.346v-.662h3.065v.662z"/></svg>', fn = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" fill-rule="evenodd" d="M14 4.5V14a2 2 0 0 1-2 2v-1a1 1 0 0 0 1-1V4.5h-2A1.5 1.5 0 0 1 9.5 3V1H4a1 1 0 0 0-1 1v9H2V2a2 2 0 0 1 2-2h5.5zm-7.839 9.166v.522q0 .384-.117.641a.86.86 0 0 1-.322.387a.9.9 0 0 1-.469.126a.9.9 0 0 1-.471-.126a.87.87 0 0 1-.32-.386a1.55 1.55 0 0 1-.117-.642v-.522q0-.386.117-.641a.87.87 0 0 1 .32-.387a.87.87 0 0 1 .471-.129q.264 0 .469.13a.86.86 0 0 1 .322.386q.117.255.117.641m.803.519v-.513q0-.565-.205-.972a1.46 1.46 0 0 0-.589-.63q-.381-.22-.917-.22q-.533 0-.92.22a1.44 1.44 0 0 0-.589.627q-.204.406-.205.975v.513q0 .563.205.973q.205.406.59.627q.386.216.92.216q.535 0 .916-.216q.383-.22.59-.627q.204-.41.204-.973M0 11.926v4h1.459q.603 0 .999-.238a1.45 1.45 0 0 0 .595-.689q.196-.45.196-1.084q0-.63-.196-1.075a1.43 1.43 0 0 0-.59-.68q-.395-.234-1.004-.234zm.791.645h.563q.371 0 .609.152a.9.9 0 0 1 .354.454q.118.302.118.753a2.3 2.3 0 0 1-.068.592a1.1 1.1 0 0 1-.196.422a.8.8 0 0 1-.334.252a1.3 1.3 0 0 1-.483.082H.79V12.57Zm7.422.483a1.7 1.7 0 0 0-.103.633v.495q0 .369.103.627a.83.83 0 0 0 .298.393a.85.85 0 0 0 .478.131a.9.9 0 0 0 .401-.088a.7.7 0 0 0 .273-.248a.8.8 0 0 0 .117-.364h.765v.076a1.27 1.27 0 0 1-.226.674q-.205.29-.55.454a1.8 1.8 0 0 1-.786.164q-.54 0-.914-.216a1.4 1.4 0 0 1-.571-.627q-.194-.408-.194-.976v-.498q0-.568.197-.978q.195-.411.571-.633q.378-.223.911-.223q.328 0 .607.097q.28.093.489.272a1.33 1.33 0 0 1 .466.964v.073H9.78a.85.85 0 0 0-.12-.38a.7.7 0 0 0-.273-.261a.8.8 0 0 0-.398-.097a.8.8 0 0 0-.475.138a.87.87 0 0 0-.301.398"/></svg>', hn = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" fill-rule="evenodd" d="M14 4.5V11h-1V4.5h-2A1.5 1.5 0 0 1 9.5 3V1H4a1 1 0 0 0-1 1v9H2V2a2 2 0 0 1 2-2h5.5zm-6.839 9.688v-.522a1.5 1.5 0 0 0-.117-.641a.86.86 0 0 0-.322-.387a.86.86 0 0 0-.469-.129a.87.87 0 0 0-.471.13a.87.87 0 0 0-.32.386a1.5 1.5 0 0 0-.117.641v.522q0 .384.117.641a.87.87 0 0 0 .32.387a.9.9 0 0 0 .471.126a.9.9 0 0 0 .469-.126a.86.86 0 0 0 .322-.386a1.55 1.55 0 0 0 .117-.642m.803-.516v.513q0 .563-.205.973a1.47 1.47 0 0 1-.589.627q-.381.216-.917.216a1.86 1.86 0 0 1-.92-.216a1.46 1.46 0 0 1-.589-.627a2.15 2.15 0 0 1-.205-.973v-.513q0-.569.205-.975q.205-.411.59-.627q.386-.22.92-.22q.535 0 .916.22q.383.219.59.63q.204.406.204.972M1 15.925v-3.999h1.459q.609 0 1.005.235q.396.233.589.68q.196.445.196 1.074q0 .634-.196 1.084q-.197.451-.595.689q-.396.237-.999.237zm1.354-3.354H1.79v2.707h.563q.277 0 .483-.082a.8.8 0 0 0 .334-.252q.132-.17.196-.422a2.3 2.3 0 0 0 .068-.592q0-.45-.118-.753a.9.9 0 0 0-.354-.454q-.237-.152-.61-.152Zm6.756 1.116q0-.373.103-.633a.87.87 0 0 1 .301-.398a.8.8 0 0 1 .475-.138q.225 0 .398.097a.7.7 0 0 1 .273.26a.85.85 0 0 1 .12.381h.765v-.073a1.33 1.33 0 0 0-.466-.964a1.4 1.4 0 0 0-.49-.272a1.8 1.8 0 0 0-.606-.097q-.534 0-.911.223q-.375.222-.571.633q-.197.41-.197.978v.498q0 .568.194.976q.195.406.571.627q.375.216.914.216q.44 0 .785-.164t.551-.454a1.27 1.27 0 0 0 .226-.674v-.076h-.765a.8.8 0 0 1-.117.364a.7.7 0 0 1-.273.248a.9.9 0 0 1-.401.088a.85.85 0 0 1-.478-.131a.83.83 0 0 1-.298-.393a1.7 1.7 0 0 1-.103-.627zm5.092-1.76h.894l-1.275 2.006l1.254 1.992h-.908l-.85-1.415h-.035l-.852 1.415h-.862l1.24-2.015l-1.228-1.984h.932l.832 1.439h.035z"/></svg>';
6890
- var bn = Object.defineProperty, un = Object.getOwnPropertyDescriptor, ca = (a, e, t, i) => {
6891
- for (var s = i > 1 ? void 0 : i ? un(e, t) : e, r = a.length - 1, o; r >= 0; r--)
6906
+ const on = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" fill-rule="evenodd" d="M14 4.5V14a2 2 0 0 1-2 2h-2v-1h2a1 1 0 0 0 1-1V4.5h-2A1.5 1.5 0 0 1 9.5 3V1H4a1 1 0 0 0-1 1v9H2V2a2 2 0 0 1 2-2h5.5zM1.928 15.849v-3.337h1.136v-.662H0v.662h1.134v3.337zm4.689-3.999h-.894L4.9 13.289h-.035l-.832-1.439h-.932l1.228 1.983l-1.24 2.016h.862l.853-1.415h.035l.85 1.415h.907l-1.253-1.992zm1.93.662v3.337h-.794v-3.337H6.619v-.662h3.064v.662H8.546Z"/></svg>', cn = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" fill-rule="evenodd" d="M14 4.5V14a2 2 0 0 1-2 2h-1v-1h1a1 1 0 0 0 1-1V4.5h-2A1.5 1.5 0 0 1 9.5 3V1H4a1 1 0 0 0-1 1v9H2V2a2 2 0 0 1 2-2h5.5zM1.6 11.85H0v3.999h.791v-1.342h.803q.43 0 .732-.173q.305-.175.463-.474a1.4 1.4 0 0 0 .161-.677q0-.375-.158-.677a1.2 1.2 0 0 0-.46-.477q-.3-.18-.732-.179m.545 1.333a.8.8 0 0 1-.085.38a.57.57 0 0 1-.238.241a.8.8 0 0 1-.375.082H.788V12.48h.66q.327 0 .512.181q.185.183.185.522m1.217-1.333v3.999h1.46q.602 0 .998-.237a1.45 1.45 0 0 0 .595-.689q.196-.45.196-1.084q0-.63-.196-1.075a1.43 1.43 0 0 0-.589-.68q-.396-.234-1.005-.234zm.791.645h.563q.371 0 .609.152a.9.9 0 0 1 .354.454q.118.302.118.753a2.3 2.3 0 0 1-.068.592a1.1 1.1 0 0 1-.196.422a.8.8 0 0 1-.334.252a1.3 1.3 0 0 1-.483.082h-.563zm3.743 1.763v1.591h-.79V11.85h2.548v.653H7.896v1.117h1.606v.638z"/></svg>', ln = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" fill-rule="evenodd" d="M14 4.5V14a2 2 0 0 1-2 2H9v-1h3a1 1 0 0 0 1-1V4.5h-2A1.5 1.5 0 0 1 9.5 3V1H4a1 1 0 0 0-1 1v9H2V2a2 2 0 0 1 2-2h5.5zM.706 13.189v2.66H0V11.85h.806l1.14 2.596h.026l1.14-2.596h.8v3.999h-.716v-2.66h-.038l-.946 2.159h-.516l-.952-2.16H.706Zm3.919 2.66V11.85h1.459q.609 0 1.005.234t.589.68q.195.445.196 1.075q0 .634-.196 1.084q-.197.451-.595.689q-.396.237-1 .237H4.626Zm1.353-3.354h-.562v2.707h.562q.279 0 .484-.082a.8.8 0 0 0 .334-.252a1.1 1.1 0 0 0 .196-.422q.067-.252.067-.592a2.1 2.1 0 0 0-.117-.753a.9.9 0 0 0-.354-.454q-.238-.152-.61-.152"/></svg>', dn = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" fill-rule="evenodd" d="M14 4.5V14a2 2 0 0 1-2 2h-1v-1h1a1 1 0 0 0 1-1V4.5h-2A1.5 1.5 0 0 1 9.5 3V1H4a1 1 0 0 0-1 1v9H2V2a2 2 0 0 1 2-2h5.5zM3.517 14.841a1.13 1.13 0 0 0 .401.823q.195.162.478.252q.284.091.665.091q.507 0 .859-.158q.354-.158.539-.44q.187-.284.187-.656q0-.336-.134-.56a1 1 0 0 0-.375-.357a2 2 0 0 0-.566-.21l-.621-.144a1 1 0 0 1-.404-.176a.37.37 0 0 1-.144-.299q0-.234.185-.384q.188-.152.512-.152q.214 0 .37.068a.6.6 0 0 1 .246.181a.56.56 0 0 1 .12.258h.75a1.1 1.1 0 0 0-.2-.566a1.2 1.2 0 0 0-.5-.41a1.8 1.8 0 0 0-.78-.152q-.439 0-.776.15q-.337.149-.527.421q-.19.273-.19.639q0 .302.122.524q.124.223.352.367q.228.143.539.213l.618.144q.31.073.463.193a.39.39 0 0 1 .152.326a.5.5 0 0 1-.085.29a.56.56 0 0 1-.255.193q-.167.07-.413.07q-.175 0-.32-.04a.8.8 0 0 1-.248-.115a.58.58 0 0 1-.255-.384zM.806 13.693q0-.373.102-.633a.87.87 0 0 1 .302-.399a.8.8 0 0 1 .475-.137q.225 0 .398.097a.7.7 0 0 1 .272.26a.85.85 0 0 1 .12.381h.765v-.072a1.33 1.33 0 0 0-.466-.964a1.4 1.4 0 0 0-.489-.272a1.8 1.8 0 0 0-.606-.097q-.534 0-.911.223q-.375.222-.572.632q-.195.41-.196.979v.498q0 .568.193.976q.197.407.572.626q.375.217.914.217q.439 0 .785-.164t.55-.454a1.27 1.27 0 0 0 .226-.674v-.076h-.764a.8.8 0 0 1-.118.363a.7.7 0 0 1-.272.25a.9.9 0 0 1-.401.087a.85.85 0 0 1-.478-.132a.83.83 0 0 1-.299-.392a1.7 1.7 0 0 1-.102-.627zm8.239 2.238h-.953l-1.338-3.999h.917l.896 3.138h.038l.888-3.138h.879z"/></svg>', fn = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" fill-rule="evenodd" d="M14 4.5V14a2 2 0 0 1-2 2h-1v-1h1a1 1 0 0 0 1-1V4.5h-2A1.5 1.5 0 0 1 9.5 3V1H4a1 1 0 0 0-1 1v9H2V2a2 2 0 0 1 2-2h5.5zM1.6 11.85H0v3.999h.791v-1.342h.803q.43 0 .732-.173q.305-.175.463-.474a1.4 1.4 0 0 0 .161-.677q0-.375-.158-.677a1.2 1.2 0 0 0-.46-.477q-.3-.18-.732-.179m.545 1.333a.8.8 0 0 1-.085.38a.57.57 0 0 1-.238.241a.8.8 0 0 1-.375.082H.788V12.48h.66q.327 0 .512.181q.185.183.185.522m2.817-1.333h-1.6v3.999h.791v-1.342h.803q.43 0 .732-.173q.305-.175.463-.474q.162-.302.161-.677q0-.375-.158-.677a1.2 1.2 0 0 0-.46-.477q-.3-.18-.732-.179m.545 1.333a.8.8 0 0 1-.085.38a.57.57 0 0 1-.238.241a.8.8 0 0 1-.375.082H4.15V12.48h.66q.327 0 .512.181q.185.183.185.522m2.767-.67v3.336H7.48v-3.337H6.346v-.662h3.065v.662z"/></svg>', hn = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" fill-rule="evenodd" d="M14 4.5V14a2 2 0 0 1-2 2v-1a1 1 0 0 0 1-1V4.5h-2A1.5 1.5 0 0 1 9.5 3V1H4a1 1 0 0 0-1 1v9H2V2a2 2 0 0 1 2-2h5.5zm-7.839 9.166v.522q0 .384-.117.641a.86.86 0 0 1-.322.387a.9.9 0 0 1-.469.126a.9.9 0 0 1-.471-.126a.87.87 0 0 1-.32-.386a1.55 1.55 0 0 1-.117-.642v-.522q0-.386.117-.641a.87.87 0 0 1 .32-.387a.87.87 0 0 1 .471-.129q.264 0 .469.13a.86.86 0 0 1 .322.386q.117.255.117.641m.803.519v-.513q0-.565-.205-.972a1.46 1.46 0 0 0-.589-.63q-.381-.22-.917-.22q-.533 0-.92.22a1.44 1.44 0 0 0-.589.627q-.204.406-.205.975v.513q0 .563.205.973q.205.406.59.627q.386.216.92.216q.535 0 .916-.216q.383-.22.59-.627q.204-.41.204-.973M0 11.926v4h1.459q.603 0 .999-.238a1.45 1.45 0 0 0 .595-.689q.196-.45.196-1.084q0-.63-.196-1.075a1.43 1.43 0 0 0-.59-.68q-.395-.234-1.004-.234zm.791.645h.563q.371 0 .609.152a.9.9 0 0 1 .354.454q.118.302.118.753a2.3 2.3 0 0 1-.068.592a1.1 1.1 0 0 1-.196.422a.8.8 0 0 1-.334.252a1.3 1.3 0 0 1-.483.082H.79V12.57Zm7.422.483a1.7 1.7 0 0 0-.103.633v.495q0 .369.103.627a.83.83 0 0 0 .298.393a.85.85 0 0 0 .478.131a.9.9 0 0 0 .401-.088a.7.7 0 0 0 .273-.248a.8.8 0 0 0 .117-.364h.765v.076a1.27 1.27 0 0 1-.226.674q-.205.29-.55.454a1.8 1.8 0 0 1-.786.164q-.54 0-.914-.216a1.4 1.4 0 0 1-.571-.627q-.194-.408-.194-.976v-.498q0-.568.197-.978q.195-.411.571-.633q.378-.223.911-.223q.328 0 .607.097q.28.093.489.272a1.33 1.33 0 0 1 .466.964v.073H9.78a.85.85 0 0 0-.12-.38a.7.7 0 0 0-.273-.261a.8.8 0 0 0-.398-.097a.8.8 0 0 0-.475.138a.87.87 0 0 0-.301.398"/></svg>', bn = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" fill-rule="evenodd" d="M14 4.5V11h-1V4.5h-2A1.5 1.5 0 0 1 9.5 3V1H4a1 1 0 0 0-1 1v9H2V2a2 2 0 0 1 2-2h5.5zm-6.839 9.688v-.522a1.5 1.5 0 0 0-.117-.641a.86.86 0 0 0-.322-.387a.86.86 0 0 0-.469-.129a.87.87 0 0 0-.471.13a.87.87 0 0 0-.32.386a1.5 1.5 0 0 0-.117.641v.522q0 .384.117.641a.87.87 0 0 0 .32.387a.9.9 0 0 0 .471.126a.9.9 0 0 0 .469-.126a.86.86 0 0 0 .322-.386a1.55 1.55 0 0 0 .117-.642m.803-.516v.513q0 .563-.205.973a1.47 1.47 0 0 1-.589.627q-.381.216-.917.216a1.86 1.86 0 0 1-.92-.216a1.46 1.46 0 0 1-.589-.627a2.15 2.15 0 0 1-.205-.973v-.513q0-.569.205-.975q.205-.411.59-.627q.386-.22.92-.22q.535 0 .916.22q.383.219.59.63q.204.406.204.972M1 15.925v-3.999h1.459q.609 0 1.005.235q.396.233.589.68q.196.445.196 1.074q0 .634-.196 1.084q-.197.451-.595.689q-.396.237-.999.237zm1.354-3.354H1.79v2.707h.563q.277 0 .483-.082a.8.8 0 0 0 .334-.252q.132-.17.196-.422a2.3 2.3 0 0 0 .068-.592q0-.45-.118-.753a.9.9 0 0 0-.354-.454q-.237-.152-.61-.152Zm6.756 1.116q0-.373.103-.633a.87.87 0 0 1 .301-.398a.8.8 0 0 1 .475-.138q.225 0 .398.097a.7.7 0 0 1 .273.26a.85.85 0 0 1 .12.381h.765v-.073a1.33 1.33 0 0 0-.466-.964a1.4 1.4 0 0 0-.49-.272a1.8 1.8 0 0 0-.606-.097q-.534 0-.911.223q-.375.222-.571.633q-.197.41-.197.978v.498q0 .568.194.976q.195.406.571.627q.375.216.914.216q.44 0 .785-.164t.551-.454a1.27 1.27 0 0 0 .226-.674v-.076h-.765a.8.8 0 0 1-.117.364a.7.7 0 0 1-.273.248a.9.9 0 0 1-.401.088a.85.85 0 0 1-.478-.131a.83.83 0 0 1-.298-.393a1.7 1.7 0 0 1-.103-.627zm5.092-1.76h.894l-1.275 2.006l1.254 1.992h-.908l-.85-1.415h-.035l-.852 1.415h-.862l1.24-2.015l-1.228-1.984h.932l.832 1.439h.035z"/></svg>';
6907
+ var un = Object.defineProperty, pn = Object.getOwnPropertyDescriptor, ca = (a, e, t, i) => {
6908
+ for (var s = i > 1 ? void 0 : i ? pn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
6892
6909
  (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
6893
- return i && s && bn(e, t, s), s;
6910
+ return i && s && un(e, t, s), s;
6894
6911
  };
6895
- const La = {
6896
- pdf: on,
6897
- txt: rn,
6898
- md: cn,
6899
- csv: ln,
6900
- ppd: dn,
6901
- doc: fn,
6902
- docx: hn
6912
+ const Pa = {
6913
+ pdf: cn,
6914
+ txt: on,
6915
+ md: ln,
6916
+ csv: dn,
6917
+ ppd: fn,
6918
+ doc: hn,
6919
+ docx: bn
6903
6920
  };
6904
6921
  let yt = class extends ne {
6905
6922
  constructor() {
@@ -6925,12 +6942,12 @@ let yt = class extends ne {
6925
6942
  return u`
6926
6943
  <cb-icon
6927
6944
  class="cb-file-icon"
6928
- svg="${La[this.type] || La.txt}"
6945
+ svg="${Pa[this.type] || Pa.txt}"
6929
6946
  ></cb-icon>
6930
6947
  `;
6931
6948
  }
6932
6949
  };
6933
- yt.styles = an;
6950
+ yt.styles = sn;
6934
6951
  ca([
6935
6952
  x({ type: String })
6936
6953
  ], yt.prototype, "filename", 2);
@@ -6940,7 +6957,7 @@ ca([
6940
6957
  yt = ca([
6941
6958
  K("cb-file")
6942
6959
  ], yt);
6943
- const pn = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><g fill="currentColor"><path d="M5.5 5.5A.5.5 0 0 1 6 6v6a.5.5 0 0 1-1 0V6a.5.5 0 0 1 .5-.5m2.5 0a.5.5 0 0 1 .5.5v6a.5.5 0 0 1-1 0V6a.5.5 0 0 1 .5-.5m3 .5a.5.5 0 0 0-1 0v6a.5.5 0 0 0 1 0z"/><path d="M14.5 3a1 1 0 0 1-1 1H13v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V4h-.5a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1H6a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1h3.5a1 1 0 0 1 1 1zM4.118 4L4 4.059V13a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V4.059L11.882 4zM2.5 3h11V2h-11z"/></g></svg>', Ra = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" d="M8 8a3 3 0 1 0 0-6a3 3 0 0 0 0 6m2-3a2 2 0 1 1-4 0a2 2 0 0 1 4 0m4 8c0 1-1 1-1 1H3s-1 0-1-1s1-4 6-4s6 3 6 4m-1-.004c-.001-.246-.154-.986-.832-1.664C11.516 10.68 10.289 10 8 10s-3.516.68-4.168 1.332c-.678.678-.83 1.418-.832 1.664z"/></svg>', Qa = '<svg viewBox="0 0 24 24" width="1.2em" height="1.2em" ><path fill="currentColor" d="M5 9v12H1V9zm4 12a2 2 0 0 1-2-2V9c0-.55.22-1.05.59-1.41L14.17 1l1.06 1.06c.27.27.44.64.44 1.05l-.03.32L14.69 8H21a2 2 0 0 1 2 2v2c0 .26-.05.5-.14.73l-3.02 7.05C19.54 20.5 18.83 21 18 21zm0-2h9.03L21 12v-2h-8.79l1.13-5.32L9 9.03z"/></svg>', ei = '<svg viewBox="0 0 24 24" width="1.2em" height="1.2em" ><path fill="currentColor" d="M19 15V3h4v12zM15 3a2 2 0 0 1 2 2v10c0 .55-.22 1.05-.59 1.41L9.83 23l-1.06-1.06c-.27-.27-.44-.64-.44-1.06l.03-.31l.95-4.57H3a2 2 0 0 1-2-2v-2c0-.26.05-.5.14-.73l3.02-7.05C4.46 3.5 5.17 3 6 3zm0 2H5.97L3 12v2h8.78l-1.13 5.32L15 14.97z"/></svg>', gn = J`
6960
+ const gn = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><g fill="currentColor"><path d="M5.5 5.5A.5.5 0 0 1 6 6v6a.5.5 0 0 1-1 0V6a.5.5 0 0 1 .5-.5m2.5 0a.5.5 0 0 1 .5.5v6a.5.5 0 0 1-1 0V6a.5.5 0 0 1 .5-.5m3 .5a.5.5 0 0 0-1 0v6a.5.5 0 0 0 1 0z"/><path d="M14.5 3a1 1 0 0 1-1 1H13v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V4h-.5a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1H6a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1h3.5a1 1 0 0 1 1 1zM4.118 4L4 4.059V13a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V4.059L11.882 4zM2.5 3h11V2h-11z"/></g></svg>', La = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" d="M8 8a3 3 0 1 0 0-6a3 3 0 0 0 0 6m2-3a2 2 0 1 1-4 0a2 2 0 0 1 4 0m4 8c0 1-1 1-1 1H3s-1 0-1-1s1-4 6-4s6 3 6 4m-1-.004c-.001-.246-.154-.986-.832-1.664C11.516 10.68 10.289 10 8 10s-3.516.68-4.168 1.332c-.678.678-.83 1.418-.832 1.664z"/></svg>', Qa = '<svg viewBox="0 0 24 24" width="1.2em" height="1.2em" ><path fill="currentColor" d="M5 9v12H1V9zm4 12a2 2 0 0 1-2-2V9c0-.55.22-1.05.59-1.41L14.17 1l1.06 1.06c.27.27.44.64.44 1.05l-.03.32L14.69 8H21a2 2 0 0 1 2 2v2c0 .26-.05.5-.14.73l-3.02 7.05C19.54 20.5 18.83 21 18 21zm0-2h9.03L21 12v-2h-8.79l1.13-5.32L9 9.03z"/></svg>', ei = '<svg viewBox="0 0 24 24" width="1.2em" height="1.2em" ><path fill="currentColor" d="M19 15V3h4v12zM15 3a2 2 0 0 1 2 2v10c0 .55-.22 1.05-.59 1.41L9.83 23l-1.06-1.06c-.27-.27-.44-.64-.44-1.06l.03-.31l.95-4.57H3a2 2 0 0 1-2-2v-2c0-.26.05-.5.14-.73l3.02-7.05C4.46 3.5 5.17 3 6 3zm0 2H5.97L3 12v2h8.78l-1.13 5.32L15 14.97z"/></svg>', mn = J`
6944
6961
  pre code.hljs {
6945
6962
  display: block;
6946
6963
  overflow-x: auto;
@@ -8155,9 +8172,9 @@ const pn = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><g fill="curr
8155
8172
  white-space: pre-wrap;
8156
8173
  color: var(--n-text-color);
8157
8174
  }
8158
- `, mn = J`
8175
+ `, yn = J`
8159
8176
  ${ke}
8160
- ${gn}
8177
+ ${mn}
8161
8178
 
8162
8179
  .cb-message-row {
8163
8180
  width: 100%;
@@ -8225,14 +8242,12 @@ const pn = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><g fill="curr
8225
8242
  .assistant-avatar {
8226
8243
  font-size: 8px;
8227
8244
  z-index: 20;
8245
+ color: rgba(0, 0, 0, 0.1);
8228
8246
  }
8247
+
8229
8248
  .assistant-avatar img {
8230
8249
  border-radius: 4px;
8231
8250
  }
8232
- .assistant-avatar svg {
8233
- color: rgba(0, 0, 0, 0.1);
8234
- //color: rgba(0, 208, 117, 0.2);
8235
- }
8236
8251
 
8237
8252
  .user-message,
8238
8253
  .assistant-message,
@@ -8391,36 +8406,36 @@ const pn = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><g fill="curr
8391
8406
  filter: alpha(opacity=80);
8392
8407
  }
8393
8408
  `;
8394
- function za(a, e) {
8409
+ function Ra(a, e) {
8395
8410
  return `<pre class="code-block-wrapper"><div class="code-block-header"><span class="code-block-header__lang">${e}</span><span class="code-block-header__copy">Copy</span></div><code class="hljs code-block-body ${e}">${a}</code></pre>`;
8396
8411
  }
8397
- function yn() {
8412
+ function vn() {
8398
8413
  const a = new Oi({
8399
8414
  html: !0,
8400
8415
  breaks: !0,
8401
8416
  linkify: !0,
8402
8417
  highlight(e, t) {
8403
- if (!!(t && Ht.getLanguage(t))) {
8418
+ if (!!(t && Ut.getLanguage(t))) {
8404
8419
  const s = t ?? "";
8405
- return za(Ht.highlight(e, { language: s }).value, s);
8420
+ return Ra(Ut.highlight(e, { language: s }).value, s);
8406
8421
  }
8407
- return za(Ht.highlightAuto(e).value, "");
8422
+ return Ra(Ut.highlightAuto(e).value, "");
8408
8423
  }
8409
8424
  });
8410
8425
  return a.use(Bi, { attrs: { target: "_blank", rel: "noopener" } }), a;
8411
8426
  }
8412
- async function Kt(a) {
8413
- const t = yn().render(a);
8427
+ async function Zt(a) {
8428
+ const t = vn().render(a);
8414
8429
  return u`${Y(t)}`;
8415
8430
  }
8416
- var vn = Object.defineProperty, wn = Object.getOwnPropertyDescriptor, nt = (a, e, t, i) => {
8417
- for (var s = i > 1 ? void 0 : i ? wn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
8431
+ var wn = Object.defineProperty, xn = Object.getOwnPropertyDescriptor, nt = (a, e, t, i) => {
8432
+ for (var s = i > 1 ? void 0 : i ? xn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
8418
8433
  (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
8419
- return i && s && vn(e, t, s), s;
8434
+ return i && s && wn(e, t, s), s;
8420
8435
  };
8421
- let qe = class extends ne {
8436
+ let De = class extends ne {
8422
8437
  constructor() {
8423
- super(...arguments), this.store = new it(this, b), this.type = "assistant", this.suppressFeedback = !1, this.lightbox = Ks({
8438
+ super(...arguments), this.store = new it(this, b), this.type = "assistant", this.suppressFeedback = !1, this.lightbox = Zs({
8424
8439
  touchNavigation: !0,
8425
8440
  loop: !0,
8426
8441
  autoplayVideos: !0,
@@ -8523,7 +8538,7 @@ let qe = class extends ne {
8523
8538
  return u`<div class="cb-message__buttons ${a}">
8524
8539
  <!-- delete button -->
8525
8540
  <sl-button class="cb-message__delete-button" name="trash" @click=${this._removeMessageHandler} circle variant="text" size="small">
8526
- <cb-icon svg="${pn}" style="font-size: 1em !important;"></cb-icon>
8541
+ <cb-icon svg="${gn}" style="font-size: 1em !important;"></cb-icon>
8527
8542
  </sl-button>
8528
8543
  </div>`;
8529
8544
  }
@@ -8542,7 +8557,7 @@ let qe = class extends ne {
8542
8557
  `;
8543
8558
  }
8544
8559
  async _getMessageText(a) {
8545
- return Kt(a.data.text);
8560
+ return Zt(a.data.text);
8546
8561
  }
8547
8562
  renderMessageContent(a) {
8548
8563
  return a.isThinking ? u`<cb-thinking></cb-thinking>` : a.isUploading ? u`<cb-uploading .files="${a.data.files || []}"></cb-uploading>` : a.type === "text" ? u`<div class="cb-message-text">
@@ -8551,7 +8566,7 @@ let qe = class extends ne {
8551
8566
  () => u`<div class="assistant-message-user-name">${a.data.userName}</div>`,
8552
8567
  () => null
8553
8568
  )}
8554
- ${Gt(
8569
+ ${Xt(
8555
8570
  this._getMessageText(a).then((e) => u`${e}`)
8556
8571
  )}
8557
8572
  </div>` : a.type === "file" ? u`${et(
@@ -8563,8 +8578,8 @@ let qe = class extends ne {
8563
8578
  (e) => e.name,
8564
8579
  (e) => u`<div>${e.name}</div>`
8565
8580
  )}` : u`<div class="cb-message-text">
8566
- ${Gt(
8567
- Kt(a.data.text?.toString() || "").then((e) => u`${e}`)
8581
+ ${Xt(
8582
+ Zt(a.data.text?.toString() || "").then((e) => u`${e}`)
8568
8583
  )}
8569
8584
  </div>`;
8570
8585
  }
@@ -8588,7 +8603,7 @@ let qe = class extends ne {
8588
8603
  renderBotMessage(a) {
8589
8604
  return u`
8590
8605
  <div class="cb-message cb-bot-message-wrapper" part="cb-message">
8591
- <div class="avatar assistant-avatar xsmall" style="margin-top:4px;">${this.renderBotMessageAvatar(a)}</div>
8606
+ <div class="avatar assistant-avatar xsmall" part="assistant-avatar" style="margin-top:4px;">${this.renderBotMessageAvatar(a)}</div>
8592
8607
  ${this.renderMessage(a, "bot-message-content")}
8593
8608
  </div>
8594
8609
  ${this.renderBotMessageFeedback(a)}
@@ -8609,18 +8624,18 @@ let qe = class extends ne {
8609
8624
  return u`
8610
8625
  <div class="cb-message" part="cb-message" style="display: flex; justify-content: end;align-items: start;">
8611
8626
  <!--<sl-avatar class="avatar user-avatar small" label="User">
8612
- <cb-icon slot="icon" svg="${Ra}" color="white"></cb-icon>
8627
+ <cb-icon slot="icon" svg="${La}" color="white"></cb-icon>
8613
8628
  //appState.appearanceUserMessageAvatarPosition
8614
8629
  </sl-avatar>-->
8615
8630
  ${W(
8616
8631
  b.appearanceUserMessageAvatarPosition === "left",
8617
8632
  () => u`
8618
- <div class="avatar user-avatar">${Y(b.setting.userIconSvg)}</div>
8633
+ <div class="avatar user-avatar" part="user-avatar">${Y(b.setting.userIconSvg)}</div>
8619
8634
  ${this.renderMessage(a, "user-message-content")}
8620
8635
  `,
8621
8636
  () => u`
8622
8637
  ${this.renderMessage(a, "user-message-content")}
8623
- <div class="avatar user-avatar">${Y(b.setting.userIconSvg)}</div>
8638
+ <div class="avatar user-avatar" part="user-avatar">${Y(b.setting.userIconSvg)}</div>
8624
8639
  `
8625
8640
  )}
8626
8641
  </div>
@@ -8632,7 +8647,7 @@ let qe = class extends ne {
8632
8647
  return u`
8633
8648
  <div class="cb-message" part="cb-message" style="display: flex; justify-content: end;align-items: start;">
8634
8649
  <!--<sl-avatar class="avatar user-avatar small" label="User">
8635
- <cb-icon slot="icon" svg="${Ra}" color="white"></cb-icon>
8650
+ <cb-icon slot="icon" svg="${La}" color="white"></cb-icon>
8636
8651
  //appState.appearanceUserMessageAvatarPosition
8637
8652
  </sl-avatar>-->
8638
8653
  ${W(
@@ -8650,35 +8665,35 @@ let qe = class extends ne {
8650
8665
  `;
8651
8666
  }
8652
8667
  };
8653
- qe.styles = mn;
8668
+ De.styles = yn;
8654
8669
  nt([
8655
8670
  x({ type: Object })
8656
- ], qe.prototype, "message", 2);
8671
+ ], De.prototype, "message", 2);
8657
8672
  nt([
8658
8673
  x({ type: Number })
8659
- ], qe.prototype, "index", 2);
8674
+ ], De.prototype, "index", 2);
8660
8675
  nt([
8661
8676
  x({ type: String })
8662
- ], qe.prototype, "type", 2);
8677
+ ], De.prototype, "type", 2);
8663
8678
  nt([
8664
8679
  x({ type: Boolean })
8665
- ], qe.prototype, "suppressFeedback", 2);
8680
+ ], De.prototype, "suppressFeedback", 2);
8666
8681
  nt([
8667
8682
  Va(".code-block-header__copy")
8668
- ], qe.prototype, "copyBtns", 2);
8683
+ ], De.prototype, "copyBtns", 2);
8669
8684
  nt([
8670
8685
  Va("img")
8671
- ], qe.prototype, "glightboxImages", 2);
8672
- qe = nt([
8686
+ ], De.prototype, "glightboxImages", 2);
8687
+ De = nt([
8673
8688
  K("cb-message")
8674
- ], qe);
8675
- var xn = Object.defineProperty, kn = Object.getOwnPropertyDescriptor, Me = (a, e, t, i) => {
8676
- for (var s = i > 1 ? void 0 : i ? kn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
8689
+ ], De);
8690
+ var kn = Object.defineProperty, _n = Object.getOwnPropertyDescriptor, Te = (a, e, t, i) => {
8691
+ for (var s = i > 1 ? void 0 : i ? _n(e, t) : e, r = a.length - 1, o; r >= 0; r--)
8677
8692
  (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
8678
- return i && s && xn(e, t, s), s;
8693
+ return i && s && kn(e, t, s), s;
8679
8694
  };
8680
- const ze = Je.noConflict();
8681
- ze.setLevel("info");
8695
+ const Oe = Je.noConflict();
8696
+ Oe.setLevel("info");
8682
8697
  let ye = class extends ne {
8683
8698
  constructor() {
8684
8699
  super(...arguments), this.messages = [], this.actions = [], this.form = null, this.suppressFeedback = !1, this.calendlyInjected = !1, this.activeCalendlyAction = -1, this.hubspotMeetingInjected = !1, this.activeHubspotMeetingAction = -1, this._lastScrollTop = 0, this._scrollThrottle = !1, this._userInterruptedAutoScroll = !1, this._userInterruptedMessagesLength = 0;
@@ -8713,7 +8728,7 @@ let ye = class extends ne {
8713
8728
  ${et(
8714
8729
  this.messages,
8715
8730
  (a) => a.id + JSON.stringify(a.data),
8716
- (a, e) => u`<cb-message .message="${a}" .index="${e}" exportparts="bot-message, cb-message, bot-message-content, user-message-content" ?suppressFeedback=${this.suppressFeedback}></cb-message>`
8731
+ (a, e) => u`<cb-message .message="${a}" .index="${e}" exportparts="bot-message, cb-message, bot-message-content, user-message-content, user-avatar, assistant-avatar" ?suppressFeedback=${this.suppressFeedback}></cb-message>`
8717
8732
  )}
8718
8733
  ${this.renderActions()} ${this.renderForm()}
8719
8734
  <div id="cb-message-list-bottom-anchor"></div>
@@ -8724,8 +8739,8 @@ let ye = class extends ne {
8724
8739
  return !b.setting.disclaimerMessage || !b.isConversationStart() ? null : u`
8725
8740
  <details class="cb-disclaimer-wrapper" part="disclaimer-wrapper">
8726
8741
  <summary class="cb-disclaimer-message" part="disclaimer-message">
8727
- ${Gt(
8728
- Kt(b.setting.disclaimerMessage).then((a) => u`${a}`)
8742
+ ${Xt(
8743
+ Zt(b.setting.disclaimerMessage).then((a) => u`${a}`)
8729
8744
  )}
8730
8745
  </summary>
8731
8746
  </details>
@@ -8814,13 +8829,13 @@ let ye = class extends ne {
8814
8829
  }
8815
8830
  }
8816
8831
  b.submitForm(e).then(() => {
8817
- ze.info("Form submitted", e), this.emit("form:submit", {
8832
+ Oe.info("Form submitted", e), this.emit("form:submit", {
8818
8833
  detail: {
8819
8834
  formData: e
8820
8835
  }
8821
8836
  });
8822
8837
  }).catch((t) => {
8823
- ze.error(`Error when submitting form: ${t.message}`);
8838
+ Oe.error(`Error when submitting form: ${t.message}`);
8824
8839
  });
8825
8840
  }
8826
8841
  /* Form sample
@@ -8865,7 +8880,7 @@ let ye = class extends ne {
8865
8880
  return null;
8866
8881
  }
8867
8882
  handleCalendlyEvent(a) {
8868
- switch (ze.info("Got Calendly Event:", a.data), a.data.event) {
8883
+ switch (Oe.info("Got Calendly Event:", a.data), a.data.event) {
8869
8884
  case "calendly.event_scheduled": {
8870
8885
  const e = this.activeCalendlyAction;
8871
8886
  e >= 0 && (b.removeAction(e, !0, a.data), b.addSystemMessage("Your meeting has been scheduled!"), this.activeCalendlyAction = -1);
@@ -8873,10 +8888,10 @@ let ye = class extends ne {
8873
8888
  }
8874
8889
  }
8875
8890
  invokeLinkAction(a = {}) {
8876
- ze.info("invokeLinkAction:", a), window.open(a.url, "_blank");
8891
+ Oe.info("invokeLinkAction:", a), window.open(a.url, "_blank");
8877
8892
  }
8878
8893
  invokeCalendlyAction(a = {}) {
8879
- return ze.info("invokeCalendlyAction:", a), "Calendly" in window && (this.activeCalendlyAction = a.internalId, window.Calendly.initPopupWidget({ url: a.url })), !1;
8894
+ return Oe.info("invokeCalendlyAction:", a), "Calendly" in window && (this.activeCalendlyAction = a.internalId, window.Calendly.initPopupWidget({ url: a.url })), !1;
8880
8895
  }
8881
8896
  renderCalendlyAction(a) {
8882
8897
  if (!("Calendly" in window) && !this.calendlyInjected) {
@@ -8922,10 +8937,10 @@ let ye = class extends ne {
8922
8937
  invokeHubspotMeetingAction(a = {}) {
8923
8938
  const e = Date.now();
8924
8939
  if (this.activeHubspotMeetingAction !== -1) {
8925
- ze.info(`invokeHubspotMeetingAction: action ${this.activeHubspotMeetingAction} is already active - ignored`);
8940
+ Oe.info(`invokeHubspotMeetingAction: action ${this.activeHubspotMeetingAction} is already active - ignored`);
8926
8941
  return;
8927
8942
  }
8928
- if (ze.info("invokeHubspotMeetingAction:", a), "hbspt" in window && typeof window.hbspt?.meetings?.create == "function") {
8943
+ if (Oe.info("invokeHubspotMeetingAction:", a), "hbspt" in window && typeof window.hbspt?.meetings?.create == "function") {
8929
8944
  const t = document.getElementById("enegelai-bot-hubspot-meeting-container"), i = document.querySelector(".enegelai-bot-hubspot-meeting-widget");
8930
8945
  if (t && i) {
8931
8946
  const s = a.url + "?embed=true";
@@ -8937,7 +8952,7 @@ let ye = class extends ne {
8937
8952
  return !1;
8938
8953
  }
8939
8954
  handleHubspotEvent(a) {
8940
- if (ze.info("Got Hubspot Event:", a.data), !(a?.data?.meetingBookSucceeded || !1))
8955
+ if (Oe.info("Got Hubspot Event:", a.data), !(a?.data?.meetingBookSucceeded || !1))
8941
8956
  return;
8942
8957
  const t = this.activeHubspotMeetingAction;
8943
8958
  if (t >= 0) {
@@ -8990,37 +9005,37 @@ let ye = class extends ne {
8990
9005
  }
8991
9006
  };
8992
9007
  ye.styles = Os;
8993
- Me([
9008
+ Te([
8994
9009
  x({ type: Array })
8995
9010
  ], ye.prototype, "messages", 2);
8996
- Me([
9011
+ Te([
8997
9012
  x({ type: Array })
8998
9013
  ], ye.prototype, "actions", 2);
8999
- Me([
9014
+ Te([
9000
9015
  x({ type: Object })
9001
9016
  ], ye.prototype, "form", 2);
9002
- Me([
9017
+ Te([
9003
9018
  x({ type: Boolean })
9004
9019
  ], ye.prototype, "suppressFeedback", 2);
9005
- Me([
9020
+ Te([
9006
9021
  xe("#cb-message-list-bottom-anchor")
9007
9022
  ], ye.prototype, "_messageListBottomAnchor", 2);
9008
- Me([
9023
+ Te([
9009
9024
  xe(".cb-input-form")
9010
9025
  ], ye.prototype, "_inputForm", 2);
9011
- Me([
9012
- ia({ capture: !1, passive: !0 })
9026
+ Te([
9027
+ sa({ capture: !1, passive: !0 })
9013
9028
  ], ye.prototype, "invokeLinkAction", 1);
9014
- Me([
9015
- ia({ capture: !1, passive: !0 })
9029
+ Te([
9030
+ sa({ capture: !1, passive: !0 })
9016
9031
  ], ye.prototype, "invokeCalendlyAction", 1);
9017
- Me([
9018
- ia({ capture: !1, passive: !0 })
9032
+ Te([
9033
+ sa({ capture: !1, passive: !0 })
9019
9034
  ], ye.prototype, "invokeHubspotMeetingAction", 1);
9020
- ye = Me([
9035
+ ye = Te([
9021
9036
  K("cb-message-list")
9022
9037
  ], ye);
9023
- const _n = J`
9038
+ const Sn = J`
9024
9039
  ${ke}
9025
9040
 
9026
9041
  :host {
@@ -9063,10 +9078,10 @@ const _n = J`
9063
9078
  margin: 6px 2px;
9064
9079
  }
9065
9080
  `, ti = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" d="M15.854.146a.5.5 0 0 1 .11.54l-5.819 14.547a.75.75 0 0 1-1.329.124l-3.178-4.995L.643 7.184a.75.75 0 0 1 .124-1.33L15.314.037a.5.5 0 0 1 .54.11ZM6.636 10.07l2.761 4.338L14.13 2.576zm6.787-8.201L1.591 6.602l4.339 2.76z"/></svg>', ai = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" d="M4.5 3a2.5 2.5 0 0 1 5 0v9a1.5 1.5 0 0 1-3 0V5a.5.5 0 0 1 1 0v7a.5.5 0 0 0 1 0V3a1.5 1.5 0 1 0-3 0v9a2.5 2.5 0 0 0 5 0V5a.5.5 0 0 1 1 0v7a3.5 3.5 0 1 1-7 0z"/></svg>', ii = '<svg viewBox="0 0 24 24" width="26px" height="26px" ><path fill="currentColor" d="M12 14c1.66 0 2.99-1.34 2.99-3L15 5c0-1.66-1.34-3-3-3S9 3.34 9 5v6c0 1.66 1.34 3 3 3m5.3-3c0 3-2.54 5.1-5.3 5.1S6.7 14 6.7 11H5c0 3.41 2.72 6.23 6 6.72V21h2v-3.28c3.28-.48 6-3.3 6-6.72z"/></svg>', la = '<svg viewBox="0 0 24 24" width="26px" height="26px" ><path fill="currentColor" d="M19 6.41L17.59 5L12 10.59L6.41 5L5 6.41L10.59 12L5 17.59L6.41 19L12 13.41L17.59 19L19 17.59L13.41 12z"/></svg>';
9066
- var Sn = Object.defineProperty, Cn = Object.getOwnPropertyDescriptor, Te = (a, e, t, i) => {
9067
- for (var s = i > 1 ? void 0 : i ? Cn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
9081
+ var Cn = Object.defineProperty, An = Object.getOwnPropertyDescriptor, Ie = (a, e, t, i) => {
9082
+ for (var s = i > 1 ? void 0 : i ? An(e, t) : e, r = a.length - 1, o; r >= 0; r--)
9068
9083
  (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
9069
- return i && s && Sn(e, t, s), s;
9084
+ return i && s && Cn(e, t, s), s;
9070
9085
  };
9071
9086
  let ve = class extends ne {
9072
9087
  constructor() {
@@ -9181,38 +9196,38 @@ let ve = class extends ne {
9181
9196
  a.key === "Enter" && !a.shiftKey && this._sendHandler();
9182
9197
  }
9183
9198
  };
9184
- ve.styles = _n;
9185
- Te([
9199
+ ve.styles = Sn;
9200
+ Ie([
9186
9201
  x({ type: String, attribute: "placeholder" })
9187
9202
  ], ve.prototype, "placeholder", 2);
9188
- Te([
9203
+ Ie([
9189
9204
  x({ type: String, attribute: "send-button-label" })
9190
9205
  ], ve.prototype, "sendButtonLabel", 2);
9191
- Te([
9206
+ Ie([
9192
9207
  x({ type: Boolean, attribute: "enable-file-upload" })
9193
9208
  ], ve.prototype, "enableFileUpload", 2);
9194
- Te([
9209
+ Ie([
9195
9210
  x({ type: Boolean, attribute: "enable-audio" })
9196
9211
  ], ve.prototype, "enableAudio", 2);
9197
- Te([
9212
+ Ie([
9198
9213
  x({ type: String })
9199
9214
  ], ve.prototype, "value", 2);
9200
- Te([
9215
+ Ie([
9201
9216
  x({ type: Boolean })
9202
9217
  ], ve.prototype, "loading", 2);
9203
- Te([
9218
+ Ie([
9204
9219
  x({ type: Boolean })
9205
9220
  ], ve.prototype, "disabled", 2);
9206
- Te([
9221
+ Ie([
9207
9222
  x({ type: String })
9208
9223
  ], ve.prototype, "currentKey", 2);
9209
- Te([
9224
+ Ie([
9210
9225
  xe("sl-textarea")
9211
9226
  ], ve.prototype, "inputElement", 2);
9212
- ve = Te([
9227
+ ve = Ie([
9213
9228
  K("cb-user-input")
9214
9229
  ], ve);
9215
- const An = J`
9230
+ const Mn = J`
9216
9231
  ${ke}
9217
9232
 
9218
9233
  :host {
@@ -9270,11 +9285,11 @@ const An = J`
9270
9285
  border-radius: 40px;
9271
9286
  outline: none !important;
9272
9287
  }
9273
- `, Mn = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" d="M8 4a.5.5 0 0 1 .5.5v3h3a.5.5 0 0 1 0 1h-3v3a.5.5 0 0 1-1 0v-3h-3a.5.5 0 0 1 0-1h3v-3A.5.5 0 0 1 8 4"/></svg>', Tn = '<svg viewBox="0 0 24 24" width="26px" height="26px" ><path fill="currentColor" d="M8 18c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1s-1 .45-1 1v10c0 .55.45 1 1 1m4 4c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1s-1 .45-1 1v18c0 .55.45 1 1 1m-8-8c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1s-1 .45-1 1v2c0 .55.45 1 1 1m12 4c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1s-1 .45-1 1v10c0 .55.45 1 1 1m3-7v2c0 .55.45 1 1 1s1-.45 1-1v-2c0-.55-.45-1-1-1s-1 .45-1 1"/></svg>', Oa = '<svg viewBox="0 0 24 24" width="26px" height="26px" ><path fill="currentColor" d="m4 12l1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8z"/></svg>';
9274
- var In = Object.defineProperty, En = Object.getOwnPropertyDescriptor, Ie = (a, e, t, i) => {
9275
- for (var s = i > 1 ? void 0 : i ? En(e, t) : e, r = a.length - 1, o; r >= 0; r--)
9288
+ `, Tn = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" d="M8 4a.5.5 0 0 1 .5.5v3h3a.5.5 0 0 1 0 1h-3v3a.5.5 0 0 1-1 0v-3h-3a.5.5 0 0 1 0-1h3v-3A.5.5 0 0 1 8 4"/></svg>', In = '<svg viewBox="0 0 24 24" width="26px" height="26px" ><path fill="currentColor" d="M8 18c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1s-1 .45-1 1v10c0 .55.45 1 1 1m4 4c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1s-1 .45-1 1v18c0 .55.45 1 1 1m-8-8c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1s-1 .45-1 1v2c0 .55.45 1 1 1m12 4c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1s-1 .45-1 1v10c0 .55.45 1 1 1m3-7v2c0 .55.45 1 1 1s1-.45 1-1v-2c0-.55-.45-1-1-1s-1 .45-1 1"/></svg>', za = '<svg viewBox="0 0 24 24" width="26px" height="26px" ><path fill="currentColor" d="m4 12l1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8z"/></svg>';
9289
+ var En = Object.defineProperty, $n = Object.getOwnPropertyDescriptor, Ee = (a, e, t, i) => {
9290
+ for (var s = i > 1 ? void 0 : i ? $n(e, t) : e, r = a.length - 1, o; r >= 0; r--)
9276
9291
  (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
9277
- return i && s && In(e, t, s), s;
9292
+ return i && s && En(e, t, s), s;
9278
9293
  };
9279
9294
  let we = class extends ne {
9280
9295
  constructor() {
@@ -9349,7 +9364,7 @@ let we = class extends ne {
9349
9364
  await b.toggleAudio();
9350
9365
  }
9351
9366
  getCtrlIconSvg() {
9352
- return this.value && this.value !== "" || b.webAudioStarted ? Oa : Tn;
9367
+ return this.value && this.value !== "" || b.webAudioStarted ? za : In;
9353
9368
  }
9354
9369
  getCtrlClass() {
9355
9370
  return this.value && this.value !== "" ? "" : b.webAudioStarted || b.mediaStartAudioRequested ? "disabled" : "";
@@ -9362,12 +9377,12 @@ let we = class extends ne {
9362
9377
  () => u``
9363
9378
  )}
9364
9379
  <div class="cb-user-input-mm-wrapper" part="user-input-wrapper">
9365
- <div class="cb-user-input-mm" part="user-input">
9380
+ <div class="cb-user-input-mm" part="user-input-inner">
9366
9381
  ${W(
9367
9382
  this.enableFileUpload,
9368
9383
  () => u`
9369
- <button type="button" class="circle-btn" title="Upload" @click=${this._sendFileHandler}>
9370
- ${Y(Mn)}
9384
+ <button type="button" class="circle-btn" part="upload-button" title="Upload" @click=${this._sendFileHandler}>
9385
+ ${Y(Tn)}
9371
9386
  </button>
9372
9387
  `,
9373
9388
  () => u``
@@ -9386,7 +9401,7 @@ let we = class extends ne {
9386
9401
  enterkeyhint="send"
9387
9402
  @keydown=${this._keyDownHandler}
9388
9403
  ></sl-textarea>
9389
- <button type="button" class="circle-btn ${this.getCtrlClass()}" @click=${this._ctrlHandler}>
9404
+ <button type="button" class="circle-btn ${this.getCtrlClass()}" part="control-button" @click=${this._ctrlHandler}>
9390
9405
  ${Y(this.getCtrlIconSvg())}
9391
9406
  </button>
9392
9407
  </div>
@@ -9461,38 +9476,38 @@ let we = class extends ne {
9461
9476
  a.key === "Enter" && !a.shiftKey && this._sendHandler();
9462
9477
  }
9463
9478
  };
9464
- we.styles = An;
9465
- Ie([
9479
+ we.styles = Mn;
9480
+ Ee([
9466
9481
  x({ type: String, attribute: "placeholder" })
9467
9482
  ], we.prototype, "placeholder", 2);
9468
- Ie([
9483
+ Ee([
9469
9484
  x({ type: String, attribute: "send-button-label" })
9470
9485
  ], we.prototype, "sendButtonLabel", 2);
9471
- Ie([
9486
+ Ee([
9472
9487
  x({ type: Boolean, attribute: "enable-file-upload" })
9473
9488
  ], we.prototype, "enableFileUpload", 2);
9474
- Ie([
9489
+ Ee([
9475
9490
  x({ type: Boolean, attribute: "enable-audio" })
9476
9491
  ], we.prototype, "enableAudio", 2);
9477
- Ie([
9492
+ Ee([
9478
9493
  x({ type: String })
9479
9494
  ], we.prototype, "value", 2);
9480
- Ie([
9495
+ Ee([
9481
9496
  x({ type: Boolean })
9482
9497
  ], we.prototype, "loading", 2);
9483
- Ie([
9498
+ Ee([
9484
9499
  x({ type: Boolean })
9485
9500
  ], we.prototype, "disabled", 2);
9486
- Ie([
9501
+ Ee([
9487
9502
  x({ type: String })
9488
9503
  ], we.prototype, "currentKey", 2);
9489
- Ie([
9504
+ Ee([
9490
9505
  xe("sl-textarea")
9491
9506
  ], we.prototype, "inputElement", 2);
9492
- we = Ie([
9507
+ we = Ee([
9493
9508
  K("cb-user-input-mm")
9494
9509
  ], we);
9495
- const si = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" d="M2.146 2.854a.5.5 0 1 1 .708-.708L8 7.293l5.146-5.147a.5.5 0 0 1 .708.708L8.707 8l5.147 5.146a.5.5 0 0 1-.708.708L8 8.707l-5.146 5.147a.5.5 0 0 1-.708-.708L7.293 8z"/></svg>', $n = J`
9510
+ const si = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" d="M2.146 2.854a.5.5 0 1 1 .708-.708L8 7.293l5.146-5.147a.5.5 0 0 1 .708.708L8.707 8l5.147 5.146a.5.5 0 0 1-.708.708L8 8.707l-5.146 5.147a.5.5 0 0 1-.708-.708L7.293 8z"/></svg>', Pn = J`
9496
9511
  ${ke}
9497
9512
 
9498
9513
  sl-dialog::part(base) {
@@ -9527,10 +9542,10 @@ const si = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="c
9527
9542
  gap: 8px;
9528
9543
  }
9529
9544
  `;
9530
- var Pn = Object.defineProperty, Ln = Object.getOwnPropertyDescriptor, Ft = (a, e, t, i) => {
9531
- for (var s = i > 1 ? void 0 : i ? Ln(e, t) : e, r = a.length - 1, o; r >= 0; r--)
9545
+ var Ln = Object.defineProperty, Rn = Object.getOwnPropertyDescriptor, Ht = (a, e, t, i) => {
9546
+ for (var s = i > 1 ? void 0 : i ? Rn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
9532
9547
  (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
9533
- return i && s && Pn(e, t, s), s;
9548
+ return i && s && Ln(e, t, s), s;
9534
9549
  };
9535
9550
  let ct = class extends ne {
9536
9551
  constructor() {
@@ -9576,25 +9591,25 @@ let ct = class extends ne {
9576
9591
  </sl-dialog>`;
9577
9592
  }
9578
9593
  };
9579
- ct.styles = $n;
9580
- Ft([
9594
+ ct.styles = Pn;
9595
+ Ht([
9581
9596
  x({ type: Boolean })
9582
9597
  ], ct.prototype, "open", 2);
9583
- Ft([
9598
+ Ht([
9584
9599
  x({ type: String, attribute: "label" })
9585
9600
  ], ct.prototype, "label", 2);
9586
- Ft([
9601
+ Ht([
9587
9602
  x({ type: Number })
9588
9603
  ], ct.prototype, "zindex", 2);
9589
- ct = Ft([
9604
+ ct = Ht([
9590
9605
  K("cb-dialog")
9591
9606
  ], ct);
9592
- var Rn = Object.defineProperty, zn = Object.getOwnPropertyDescriptor, ni = (a, e, t, i) => {
9593
- for (var s = i > 1 ? void 0 : i ? zn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
9607
+ var zn = Object.defineProperty, On = Object.getOwnPropertyDescriptor, ni = (a, e, t, i) => {
9608
+ for (var s = i > 1 ? void 0 : i ? On(e, t) : e, r = a.length - 1, o; r >= 0; r--)
9594
9609
  (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
9595
- return i && s && Rn(e, t, s), s;
9610
+ return i && s && zn(e, t, s), s;
9596
9611
  };
9597
- let Ot = class extends ne {
9612
+ let qt = class extends ne {
9598
9613
  constructor() {
9599
9614
  super(...arguments), this.open = !1;
9600
9615
  }
@@ -9628,7 +9643,7 @@ let Ot = class extends ne {
9628
9643
  this.emit("cancel");
9629
9644
  }
9630
9645
  };
9631
- Ot.styles = J`
9646
+ qt.styles = J`
9632
9647
  .cb-clear-message-dialog {
9633
9648
  }
9634
9649
 
@@ -9638,11 +9653,11 @@ Ot.styles = J`
9638
9653
  `;
9639
9654
  ni([
9640
9655
  x({ type: Boolean })
9641
- ], Ot.prototype, "open", 2);
9642
- Ot = ni([
9656
+ ], qt.prototype, "open", 2);
9657
+ qt = ni([
9643
9658
  K("cb-clear-message-dialog")
9644
- ], Ot);
9645
- const On = J`
9659
+ ], qt);
9660
+ const Bn = J`
9646
9661
  :host {
9647
9662
  // width: 380px;
9648
9663
 
@@ -9702,10 +9717,10 @@ const On = J`
9702
9717
  grid-column-start: 2;
9703
9718
  }
9704
9719
  `;
9705
- var Bn = Object.defineProperty, qn = Object.getOwnPropertyDescriptor, dt = (a, e, t, i) => {
9706
- for (var s = i > 1 ? void 0 : i ? qn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
9720
+ var qn = Object.defineProperty, Dn = Object.getOwnPropertyDescriptor, dt = (a, e, t, i) => {
9721
+ for (var s = i > 1 ? void 0 : i ? Dn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
9707
9722
  (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
9708
- return i && s && Bn(e, t, s), s;
9723
+ return i && s && qn(e, t, s), s;
9709
9724
  };
9710
9725
  let Xe = class extends ne {
9711
9726
  constructor() {
@@ -9826,7 +9841,7 @@ let Xe = class extends ne {
9826
9841
  });
9827
9842
  }
9828
9843
  };
9829
- Xe.styles = On;
9844
+ Xe.styles = Bn;
9830
9845
  dt([
9831
9846
  x({ type: Boolean })
9832
9847
  ], Xe.prototype, "open", 2);
@@ -9845,7 +9860,7 @@ dt([
9845
9860
  Xe = dt([
9846
9861
  K("cb-setting")
9847
9862
  ], Xe);
9848
- const Dn = J`
9863
+ const Fn = J`
9849
9864
  ${ke}
9850
9865
  :host {
9851
9866
  --primary-color: var(--sl-color-primary-600);
@@ -9959,12 +9974,12 @@ const Dn = J`
9959
9974
  margin: 4px 4px 0px 0px;
9960
9975
  }
9961
9976
  `;
9962
- var Fn = Object.defineProperty, jn = Object.getOwnPropertyDescriptor, ri = (a, e, t, i) => {
9963
- for (var s = i > 1 ? void 0 : i ? jn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
9977
+ var jn = Object.defineProperty, Hn = Object.getOwnPropertyDescriptor, ri = (a, e, t, i) => {
9978
+ for (var s = i > 1 ? void 0 : i ? Hn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
9964
9979
  (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
9965
- return i && s && Fn(e, t, s), s;
9980
+ return i && s && jn(e, t, s), s;
9966
9981
  };
9967
- let Bt = class extends ne {
9982
+ let Dt = class extends ne {
9968
9983
  constructor() {
9969
9984
  super(...arguments), this.store = new it(this, b), this.open = !1;
9970
9985
  }
@@ -10026,65 +10041,65 @@ let Bt = class extends ne {
10026
10041
  `;
10027
10042
  }
10028
10043
  };
10029
- Bt.styles = Dn;
10044
+ Dt.styles = Fn;
10030
10045
  ri([
10031
10046
  x({ type: Boolean })
10032
- ], Bt.prototype, "open", 2);
10033
- Bt = ri([
10047
+ ], Dt.prototype, "open", 2);
10048
+ Dt = ri([
10034
10049
  K("cb-anchor")
10035
- ], Bt);
10036
- const Hn = J`
10050
+ ], Dt);
10051
+ const Vn = J`
10037
10052
  ${ke}
10038
- `, Ba = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><g fill="currentColor"><path d="M4.54.146A.5.5 0 0 1 4.893 0h6.214a.5.5 0 0 1 .353.146l4.394 4.394a.5.5 0 0 1 .146.353v6.214a.5.5 0 0 1-.146.353l-4.394 4.394a.5.5 0 0 1-.353.146H4.893a.5.5 0 0 1-.353-.146L.146 11.46A.5.5 0 0 1 0 11.107V4.893a.5.5 0 0 1 .146-.353zM5.1 1L1 5.1v5.8L5.1 15h5.8l4.1-4.1V5.1L10.9 1z"/><path d="M7.002 11a1 1 0 1 1 2 0a1 1 0 0 1-2 0M7.1 4.995a.905.905 0 1 1 1.8 0l-.35 3.507a.552.552 0 0 1-1.1 0z"/></g></svg>', Vn = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><g fill="currentColor"><path d="M7.938 2.016A.13.13 0 0 1 8.002 2a.13.13 0 0 1 .063.016a.15.15 0 0 1 .054.057l6.857 11.667c.036.06.035.124.002.183a.2.2 0 0 1-.054.06a.1.1 0 0 1-.066.017H1.146a.1.1 0 0 1-.066-.017a.2.2 0 0 1-.054-.06a.18.18 0 0 1 .002-.183L7.884 2.073a.15.15 0 0 1 .054-.057m1.044-.45a1.13 1.13 0 0 0-1.96 0L.165 13.233c-.457.778.091 1.767.98 1.767h13.713c.889 0 1.438-.99.98-1.767z"/><path d="M7.002 12a1 1 0 1 1 2 0a1 1 0 0 1-2 0M7.1 5.995a.905.905 0 1 1 1.8 0l-.35 3.507a.552.552 0 0 1-1.1 0z"/></g></svg>', Un = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><g fill="currentColor"><path d="M2.5 8a5.5 5.5 0 0 1 8.25-4.764a.5.5 0 0 0 .5-.866A6.5 6.5 0 1 0 14.5 8a.5.5 0 0 0-1 0a5.5 5.5 0 1 1-11 0"/><path d="M15.354 3.354a.5.5 0 0 0-.708-.708L8 9.293L5.354 6.646a.5.5 0 1 0-.708.708l3 3a.5.5 0 0 0 .708 0z"/></g></svg>', Nn = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><g fill="currentColor"><path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16"/><path d="m8.93 6.588l-2.29.287l-.082.38l.45.083c.294.07.352.176.288.469l-.738 3.468c-.194.897.105 1.319.808 1.319c.545 0 1.178-.252 1.465-.598l.088-.416c-.2.176-.492.246-.686.246c-.275 0-.375-.193-.304-.533zM9 4.5a1 1 0 1 1-2 0a1 1 0 0 1 2 0"/></g></svg>';
10039
- var Wn = Object.defineProperty, Gn = Object.getOwnPropertyDescriptor, oi = (a, e, t, i) => {
10040
- for (var s = i > 1 ? void 0 : i ? Gn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
10053
+ `, Oa = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><g fill="currentColor"><path d="M4.54.146A.5.5 0 0 1 4.893 0h6.214a.5.5 0 0 1 .353.146l4.394 4.394a.5.5 0 0 1 .146.353v6.214a.5.5 0 0 1-.146.353l-4.394 4.394a.5.5 0 0 1-.353.146H4.893a.5.5 0 0 1-.353-.146L.146 11.46A.5.5 0 0 1 0 11.107V4.893a.5.5 0 0 1 .146-.353zM5.1 1L1 5.1v5.8L5.1 15h5.8l4.1-4.1V5.1L10.9 1z"/><path d="M7.002 11a1 1 0 1 1 2 0a1 1 0 0 1-2 0M7.1 4.995a.905.905 0 1 1 1.8 0l-.35 3.507a.552.552 0 0 1-1.1 0z"/></g></svg>', Un = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><g fill="currentColor"><path d="M7.938 2.016A.13.13 0 0 1 8.002 2a.13.13 0 0 1 .063.016a.15.15 0 0 1 .054.057l6.857 11.667c.036.06.035.124.002.183a.2.2 0 0 1-.054.06a.1.1 0 0 1-.066.017H1.146a.1.1 0 0 1-.066-.017a.2.2 0 0 1-.054-.06a.18.18 0 0 1 .002-.183L7.884 2.073a.15.15 0 0 1 .054-.057m1.044-.45a1.13 1.13 0 0 0-1.96 0L.165 13.233c-.457.778.091 1.767.98 1.767h13.713c.889 0 1.438-.99.98-1.767z"/><path d="M7.002 12a1 1 0 1 1 2 0a1 1 0 0 1-2 0M7.1 5.995a.905.905 0 1 1 1.8 0l-.35 3.507a.552.552 0 0 1-1.1 0z"/></g></svg>', Nn = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><g fill="currentColor"><path d="M2.5 8a5.5 5.5 0 0 1 8.25-4.764a.5.5 0 0 0 .5-.866A6.5 6.5 0 1 0 14.5 8a.5.5 0 0 0-1 0a5.5 5.5 0 1 1-11 0"/><path d="M15.354 3.354a.5.5 0 0 0-.708-.708L8 9.293L5.354 6.646a.5.5 0 1 0-.708.708l3 3a.5.5 0 0 0 .708 0z"/></g></svg>', Wn = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><g fill="currentColor"><path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16"/><path d="m8.93 6.588l-2.29.287l-.082.38l.45.083c.294.07.352.176.288.469l-.738 3.468c-.194.897.105 1.319.808 1.319c.545 0 1.178-.252 1.465-.598l.088-.416c-.2.176-.492.246-.686.246c-.275 0-.375-.193-.304-.533zM9 4.5a1 1 0 1 1-2 0a1 1 0 0 1 2 0"/></g></svg>';
10054
+ var Gn = Object.defineProperty, Xn = Object.getOwnPropertyDescriptor, oi = (a, e, t, i) => {
10055
+ for (var s = i > 1 ? void 0 : i ? Xn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
10041
10056
  (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
10042
- return i && s && Wn(e, t, s), s;
10057
+ return i && s && Gn(e, t, s), s;
10043
10058
  };
10044
- const qa = {
10059
+ const Ba = {
10045
10060
  error: {
10046
10061
  variant: "danger",
10047
- icon: Ba
10062
+ icon: Oa
10048
10063
  },
10049
10064
  danger: {
10050
10065
  variant: "danger",
10051
- icon: Ba
10066
+ icon: Oa
10052
10067
  },
10053
10068
  warning: {
10054
10069
  variant: "warning",
10055
- icon: Vn
10070
+ icon: Un
10056
10071
  },
10057
10072
  success: {
10058
10073
  variant: "success",
10059
- icon: Un
10074
+ icon: Nn
10060
10075
  },
10061
10076
  info: {
10062
10077
  variant: "primary",
10063
- icon: Nn
10078
+ icon: Wn
10064
10079
  }
10065
10080
  };
10066
- let qt = class extends ne {
10081
+ let Ft = class extends ne {
10067
10082
  constructor() {
10068
10083
  super(...arguments), this.status = "info";
10069
10084
  }
10070
10085
  render() {
10071
- const { variant: a, icon: e } = qa[this.status] || qa.info;
10086
+ const { variant: a, icon: e } = Ba[this.status] || Ba.info;
10072
10087
  return u`<cb-icon svg=${e} color="${a}"></cb-icon>`;
10073
10088
  }
10074
10089
  };
10075
- qt.styles = Wa;
10090
+ Ft.styles = Wa;
10076
10091
  oi([
10077
10092
  x({ type: String })
10078
- ], qt.prototype, "status", 2);
10079
- qt = oi([
10093
+ ], Ft.prototype, "status", 2);
10094
+ Ft = oi([
10080
10095
  K("cb-status-icon")
10081
- ], qt);
10082
- var Xn = Object.getOwnPropertyDescriptor, Yn = (a, e, t, i) => {
10083
- for (var s = i > 1 ? void 0 : i ? Xn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
10096
+ ], Ft);
10097
+ var Yn = Object.getOwnPropertyDescriptor, Jn = (a, e, t, i) => {
10098
+ for (var s = i > 1 ? void 0 : i ? Yn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
10084
10099
  (o = a[r]) && (s = o(s) || s);
10085
10100
  return s;
10086
10101
  };
10087
- let Zt = class extends ne {
10102
+ let Qt = class extends ne {
10088
10103
  render() {
10089
10104
  return u` <sl-alert variant="danger" open>
10090
10105
  <cb-status-icon status="error" slot="icon"></cb-status-icon>
@@ -10100,11 +10115,11 @@ let Zt = class extends ne {
10100
10115
  this.emit("setting:show");
10101
10116
  }
10102
10117
  };
10103
- Zt.styles = Hn;
10104
- Zt = Yn([
10118
+ Qt.styles = Vn;
10119
+ Qt = Jn([
10105
10120
  K("cb-auth-alert")
10106
- ], Zt);
10107
- const Jn = J`
10121
+ ], Qt);
10122
+ const Kn = J`
10108
10123
  sl-dialog::part(base) {
10109
10124
  z-index: 1000;
10110
10125
  }
@@ -10188,25 +10203,25 @@ const Jn = J`
10188
10203
  filter: alpha(opacity=80);
10189
10204
  }
10190
10205
  `;
10191
- var Kn = Object.defineProperty, Zn = Object.getOwnPropertyDescriptor, ft = (a, e, t, i) => {
10192
- for (var s = i > 1 ? void 0 : i ? Zn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
10206
+ var Zn = Object.defineProperty, Qn = Object.getOwnPropertyDescriptor, ft = (a, e, t, i) => {
10207
+ for (var s = i > 1 ? void 0 : i ? Qn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
10193
10208
  (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
10194
- return i && s && Kn(e, t, s), s;
10209
+ return i && s && Zn(e, t, s), s;
10195
10210
  };
10196
- const Da = Je.noConflict(), Qn = '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" class="bi bi-star-fill" viewBox="0 0 16 16"><path d="M3.612 15.443c-.386.198-.824-.149-.746-.592l.83-4.73L.173 6.765c-.329-.314-.158-.888.283-.95l4.898-.696L7.538.792c.197-.39.73-.39.927 0l2.184 4.327 4.898.696c.441.062.612.636.282.95l-3.522 3.356.83 4.73c.078.443-.36.79-.746.592L8 13.187l-4.389 2.256z"/></svg>';
10211
+ const qa = Je.noConflict(), er = '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" class="bi bi-star-fill" viewBox="0 0 16 16"><path d="M3.612 15.443c-.386.198-.824-.149-.746-.592l.83-4.73L.173 6.765c-.329-.314-.158-.888.283-.95l4.898-.696L7.538.792c.197-.39.73-.39.927 0l2.184 4.327 4.898.696c.441.062.612.636.282.95l-3.522 3.356.83 4.73c.078.443-.36.79-.746.592L8 13.187l-4.389 2.256z"/></svg>';
10197
10212
  let Ye = class extends ne {
10198
10213
  constructor() {
10199
10214
  super(...arguments), this.store = new it(this, b), this.zindex = 100;
10200
10215
  }
10201
10216
  connectedCallback() {
10202
- super.connectedCallback(), Da.info("connectedCallback");
10217
+ super.connectedCallback(), qa.info("connectedCallback");
10203
10218
  }
10204
10219
  firstUpdated() {
10205
- this._rating.getSymbol = () => Qn;
10220
+ this._rating.getSymbol = () => er;
10206
10221
  }
10207
10222
  _stateEventHandler(a) {
10208
10223
  const e = a.detail, t = e?.type || null;
10209
- Da.info(`FEEDBACK: stateEvent: ${t}`, e);
10224
+ qa.info(`FEEDBACK: stateEvent: ${t}`, e);
10210
10225
  }
10211
10226
  _cancelHandler() {
10212
10227
  b.feedback && (console.log("Feedback dialog cancelled"), b.feedback = !1);
@@ -10257,7 +10272,7 @@ let Ye = class extends ne {
10257
10272
  this._comments.value = "", await b.submitFeedback(a, e, t);
10258
10273
  }
10259
10274
  };
10260
- Ye.styles = Jn;
10275
+ Ye.styles = Kn;
10261
10276
  ft([
10262
10277
  x({ type: Number })
10263
10278
  ], Ye.prototype, "zindex", 2);
@@ -10276,7 +10291,7 @@ ft([
10276
10291
  Ye = ft([
10277
10292
  K("cb-dialog-feedback")
10278
10293
  ], Ye);
10279
- const er = J`
10294
+ const tr = J`
10280
10295
  ${ke}
10281
10296
  :host {
10282
10297
  display: block;
@@ -10359,7 +10374,7 @@ const er = J`
10359
10374
  display: inline;
10360
10375
  }
10361
10376
  `;
10362
- class tr extends HTMLElement {
10377
+ class ar extends HTMLElement {
10363
10378
  static get observedAttributes() {
10364
10379
  return ["audio-selector", "max-additional-height", "disabled", "fft-size"];
10365
10380
  }
@@ -10582,8 +10597,8 @@ class tr extends HTMLElement {
10582
10597
  this._animationId && (cancelAnimationFrame(this._animationId), this._animationId = null);
10583
10598
  }
10584
10599
  }
10585
- customElements.get("volume-visualizer") || customElements.define("volume-visualizer", tr);
10586
- const da = 1, Fa = 2;
10600
+ customElements.get("volume-visualizer") || customElements.define("volume-visualizer", ar);
10601
+ const da = 1, Da = 2;
10587
10602
  class ci extends HTMLElement {
10588
10603
  constructor() {
10589
10604
  super(), this.attachShadow({ mode: "open" }), this._analyserInput = null, this._dataArrayInput = null, this._analyserOutput = null, this._dataArrayOutput = null, this._thinking = !1, this._muted = !1, this._fftSize = 512, this._smoothingTimeConstant = 0.55, this._canvas = null, this._context = null, this._lastTime = 0, this._render();
@@ -10623,7 +10638,7 @@ class ci extends HTMLElement {
10623
10638
  }
10624
10639
  return r;
10625
10640
  };
10626
- return this._analyserOutput && (this._analyserOutput.getByteFrequencyData(this._dataArrayOutput), e(this._dataArrayOutput)) ? { data: t(this._dataArrayOutput), source: Fa, hasActivity: !0 } : this._analyserInput && !this._muted && (this._analyserInput.getByteFrequencyData(this._dataArrayInput), e(this._dataArrayInput)) ? { data: t(this._dataArrayInput), source: da, hasActivity: !0 } : this._analyserOutput ? { data: t(this._dataArrayOutput), source: Fa, hasActivity: !1 } : { data: [], source: null, hasActivity: !1 };
10641
+ return this._analyserOutput && (this._analyserOutput.getByteFrequencyData(this._dataArrayOutput), e(this._dataArrayOutput)) ? { data: t(this._dataArrayOutput), source: Da, hasActivity: !0 } : this._analyserInput && !this._muted && (this._analyserInput.getByteFrequencyData(this._dataArrayInput), e(this._dataArrayInput)) ? { data: t(this._dataArrayInput), source: da, hasActivity: !0 } : this._analyserOutput ? { data: t(this._dataArrayOutput), source: Da, hasActivity: !1 } : { data: [], source: null, hasActivity: !1 };
10627
10642
  }
10628
10643
  _render() {
10629
10644
  const e = `
@@ -10666,10 +10681,10 @@ class ci extends HTMLElement {
10666
10681
  this._stop(), this._analyserInput = null, this._analyserOutput = null;
10667
10682
  }
10668
10683
  }
10669
- class ar extends ci {
10684
+ class ir extends ci {
10670
10685
  constructor() {
10671
10686
  super(), this._ribbons = [], this._lastTime = 0, this._ribbons.push(
10672
- new Mt(
10687
+ new It(
10673
10688
  12,
10674
10689
  { r: 255, g: 126, b: 103 },
10675
10690
  // #FF7E67
@@ -10677,7 +10692,7 @@ class ar extends ci {
10677
10692
  // #63c1d0
10678
10693
  { springStrength: 20, damping: 0.7, scale: 0.8, phase: 0 }
10679
10694
  ),
10680
- new Mt(
10695
+ new It(
10681
10696
  12,
10682
10697
  { r: 255, g: 201, b: 71 },
10683
10698
  // #FFC947
@@ -10685,7 +10700,7 @@ class ar extends ci {
10685
10700
  // #ecff6b
10686
10701
  { springStrength: 7, damping: 0.5, scale: 0.7, phase: -0.3 }
10687
10702
  ),
10688
- new Mt(
10703
+ new It(
10689
10704
  12,
10690
10705
  { r: 255, g: 154, b: 140 },
10691
10706
  // #FF9A8C
@@ -10693,7 +10708,7 @@ class ar extends ci {
10693
10708
  // #a5e8ad
10694
10709
  { springStrength: 7, damping: 0.3, scale: 0.5, phase: 0.3 }
10695
10710
  ),
10696
- new Mt(
10711
+ new It(
10697
10712
  12,
10698
10713
  { r: 255, g: 107, b: 107 },
10699
10714
  // #FF6B6B
@@ -10710,8 +10725,8 @@ class ar extends ci {
10710
10725
  f.update(s, i, this._thinking), f.draw(e, t, r, this._thinking);
10711
10726
  }
10712
10727
  }
10713
- customElements.get("volume-visualizer-liquid") || customElements.define("volume-visualizer-liquid", ar);
10714
- class Mt {
10728
+ customElements.get("volume-visualizer-liquid") || customElements.define("volume-visualizer-liquid", ir);
10729
+ class It {
10715
10730
  constructor(e, t, i, s) {
10716
10731
  this.inputColorRGB = t, this.outputColorRGB = i, this.currentColorRGB = { ...i }, this.options = s, this.segments = e, this.renderPoints = Array(e).fill(0), this.targetPoints = Array(e).fill(0), this.velocity = Array(e).fill(0), this.springStrength = s.springStrength || 10, this.damping = s.damping || 0.5, this.phase = s.phase || 0, this.scale = s.scale || 1, this.thinkingPhase = 0;
10717
10732
  }
@@ -10769,7 +10784,7 @@ class Mt {
10769
10784
  }
10770
10785
  }
10771
10786
  }
10772
- class ir extends ci {
10787
+ class sr extends ci {
10773
10788
  constructor() {
10774
10789
  super(), this._numBars = 32, this._renderHeights = Array(this._numBars).fill(0), this._targetHeights = Array(this._numBars).fill(0), this._velocity = Array(this._numBars).fill(0), this._springStrength = 25, this._damping = 0.75, this._inputColor = { r: 255, g: 126, b: 103 }, this._outputColor = { r: 99, g: 193, b: 208 }, this._currentColor = { ...this._outputColor }, this._thinkingPhase = 0;
10775
10790
  }
@@ -10817,16 +10832,16 @@ class ir extends ci {
10817
10832
  e.restore();
10818
10833
  }
10819
10834
  }
10820
- customElements.get("volume-visualizer-bars") || customElements.define("volume-visualizer-bars", ir);
10821
- const sr = '<svg viewBox="0 0 24 24" width="26px" height="26px" ><path fill="currentColor" d="M19 11h-1.7c0 .74-.16 1.43-.43 2.05l1.23 1.23c.56-.98.9-2.09.9-3.28m-4.02.17c0-.06.02-.11.02-.17V5c0-1.66-1.34-3-3-3S9 3.34 9 5v.18zM4.27 3L3 4.27l6.01 6.01V11c0 1.66 1.33 3 2.99 3c.22 0 .44-.03.65-.08l1.66 1.66c-.71.33-1.5.52-2.31.52c-2.76 0-5.3-2.1-5.3-5.1H5c0 3.41 2.72 6.23 6 6.72V21h2v-3.28c.91-.13 1.77-.45 2.54-.9L19.73 21L21 19.73z"/></svg>';
10822
- var nr = Object.getOwnPropertyDescriptor, rr = (a, e, t, i) => {
10823
- for (var s = i > 1 ? void 0 : i ? nr(e, t) : e, r = a.length - 1, o; r >= 0; r--)
10835
+ customElements.get("volume-visualizer-bars") || customElements.define("volume-visualizer-bars", sr);
10836
+ const nr = '<svg viewBox="0 0 24 24" width="26px" height="26px" ><path fill="currentColor" d="M19 11h-1.7c0 .74-.16 1.43-.43 2.05l1.23 1.23c.56-.98.9-2.09.9-3.28m-4.02.17c0-.06.02-.11.02-.17V5c0-1.66-1.34-3-3-3S9 3.34 9 5v.18zM4.27 3L3 4.27l6.01 6.01V11c0 1.66 1.33 3 2.99 3c.22 0 .44-.03.65-.08l1.66 1.66c-.71.33-1.5.52-2.31.52c-2.76 0-5.3-2.1-5.3-5.1H5c0 3.41 2.72 6.23 6 6.72V21h2v-3.28c.91-.13 1.77-.45 2.54-.9L19.73 21L21 19.73z"/></svg>';
10837
+ var rr = Object.getOwnPropertyDescriptor, or = (a, e, t, i) => {
10838
+ for (var s = i > 1 ? void 0 : i ? rr(e, t) : e, r = a.length - 1, o; r >= 0; r--)
10824
10839
  (o = a[r]) && (s = o(s) || s);
10825
10840
  return s;
10826
10841
  };
10827
10842
  const bt = Je.noConflict();
10828
10843
  bt.setLevel("info");
10829
- let Qt = class extends ne {
10844
+ let ea = class extends ne {
10830
10845
  constructor() {
10831
10846
  super(...arguments), this.store = new it(this, b), this.unsubscribeTypingActive = b.subscribe(
10832
10847
  this._handleTypingActiveChanged.bind(this),
@@ -10861,7 +10876,7 @@ let Qt = class extends ne {
10861
10876
  !0,
10862
10877
  () => u`
10863
10878
  <button type="button" class="circle-btn ${b.webAudioMuted ? "danger" : "clear"}" title="${b.webAudioMuted ? "Unmute" : "Mute"}" @click=${this._toggleMute}>
10864
- ${Y(sr)}
10879
+ ${Y(nr)}
10865
10880
  </button>
10866
10881
  `,
10867
10882
  () => u``
@@ -10879,19 +10894,19 @@ let Qt = class extends ne {
10879
10894
  switch (b.setting.botAdvancedSettings?.audioVisualizerName || "bars") {
10880
10895
  case "default":
10881
10896
  return u`
10882
- <volume-visualizer ${Ct(this.volumeVisualizerRef)}></volume-visualizer>
10897
+ <volume-visualizer ${At(this.volumeVisualizerRef)}></volume-visualizer>
10883
10898
  `;
10884
10899
  case "liquid":
10885
10900
  return u`
10886
- <volume-visualizer-liquid ${Ct(this.volumeVisualizerRef)}></volume-visualizer-liquid>
10901
+ <volume-visualizer-liquid ${At(this.volumeVisualizerRef)}></volume-visualizer-liquid>
10887
10902
  `;
10888
10903
  case "bars":
10889
10904
  return u`
10890
- <volume-visualizer-bars ${Ct(this.volumeVisualizerRef)}></volume-visualizer-bars>
10905
+ <volume-visualizer-bars ${At(this.volumeVisualizerRef)}></volume-visualizer-bars>
10891
10906
  `;
10892
10907
  default:
10893
10908
  return u`
10894
- <volume-visualizer ${Ct(this.volumeVisualizerRef)}></volume-visualizer>
10909
+ <volume-visualizer ${At(this.volumeVisualizerRef)}></volume-visualizer>
10895
10910
  `;
10896
10911
  }
10897
10912
  }
@@ -10926,11 +10941,11 @@ let Qt = class extends ne {
10926
10941
  b.webAudioStarted && (bt.info(`Typing state changed: ${e}`), this.volumeVisualizerRef.value && this.volumeVisualizerRef.value.setThinking(e));
10927
10942
  }
10928
10943
  };
10929
- Qt.styles = er;
10930
- Qt = rr([
10944
+ ea.styles = tr;
10945
+ ea = or([
10931
10946
  K("cb-audio-controls")
10932
- ], Qt);
10933
- class ea extends Error {
10947
+ ], ea);
10948
+ class ta extends Error {
10934
10949
  response;
10935
10950
  request;
10936
10951
  options;
@@ -10951,7 +10966,7 @@ class li extends Error {
10951
10966
  super(t), this.value = e;
10952
10967
  }
10953
10968
  }
10954
- class Nt extends Error {
10969
+ class Wt extends Error {
10955
10970
  name = "ForceRetryError";
10956
10971
  customDelay;
10957
10972
  code;
@@ -10961,7 +10976,7 @@ class Nt extends Error {
10961
10976
  super(e?.code ? `Forced retry: ${e.code}` : "Forced retry", t ? { cause: t } : void 0), this.customDelay = e?.delay, this.code = e?.code, this.customRequest = e?.request;
10962
10977
  }
10963
10978
  }
10964
- const ja = (() => {
10979
+ const Fa = (() => {
10965
10980
  let a = !1, e = !1;
10966
10981
  const t = typeof globalThis.ReadableStream == "function", i = typeof globalThis.Request == "function";
10967
10982
  if (t && i)
@@ -10980,7 +10995,7 @@ const ja = (() => {
10980
10995
  throw s;
10981
10996
  }
10982
10997
  return a && !e;
10983
- })(), or = typeof globalThis.AbortController == "function", di = typeof globalThis.AbortSignal == "function" && typeof globalThis.AbortSignal.any == "function", cr = typeof globalThis.ReadableStream == "function", lr = typeof globalThis.FormData == "function", fi = ["get", "post", "put", "patch", "head", "delete"], dr = {
10998
+ })(), cr = typeof globalThis.AbortController == "function", di = typeof globalThis.AbortSignal == "function" && typeof globalThis.AbortSignal.any == "function", lr = typeof globalThis.ReadableStream == "function", dr = typeof globalThis.FormData == "function", fi = ["get", "post", "put", "patch", "head", "delete"], fr = {
10984
10999
  json: "application/json",
10985
11000
  text: "text/*",
10986
11001
  formData: "multipart/form-data",
@@ -10989,14 +11004,14 @@ const ja = (() => {
10989
11004
  // Supported in modern Fetch implementations (for example, browsers and recent Node.js/undici).
10990
11005
  // We still feature-check at runtime before exposing the shortcut.
10991
11006
  bytes: "*/*"
10992
- }, Wt = 2147483647, fr = new TextEncoder().encode("------WebKitFormBoundaryaxpyiPgbbPti10Rw").length, hi = Symbol("stop");
11007
+ }, Gt = 2147483647, hr = new TextEncoder().encode("------WebKitFormBoundaryaxpyiPgbbPti10Rw").length, hi = Symbol("stop");
10993
11008
  class bi {
10994
11009
  options;
10995
11010
  constructor(e) {
10996
11011
  this.options = e;
10997
11012
  }
10998
11013
  }
10999
- const hr = (a) => new bi(a), br = {
11014
+ const br = (a) => new bi(a), ur = {
11000
11015
  json: !0,
11001
11016
  parseJson: !0,
11002
11017
  stringifyJson: !0,
@@ -11010,10 +11025,10 @@ const hr = (a) => new bi(a), br = {
11010
11025
  onUploadProgress: !0,
11011
11026
  fetch: !0,
11012
11027
  context: !0
11013
- }, ur = {
11028
+ }, pr = {
11014
11029
  next: !0
11015
11030
  // Next.js cache revalidation (revalidate, tags)
11016
- }, pr = {
11031
+ }, gr = {
11017
11032
  method: !0,
11018
11033
  headers: !0,
11019
11034
  body: !0,
@@ -11028,13 +11043,13 @@ const hr = (a) => new bi(a), br = {
11028
11043
  signal: !0,
11029
11044
  window: !0,
11030
11045
  duplex: !0
11031
- }, gr = (a) => {
11046
+ }, mr = (a) => {
11032
11047
  if (!a)
11033
11048
  return 0;
11034
11049
  if (a instanceof FormData) {
11035
11050
  let e = 0;
11036
11051
  for (const [t, i] of a)
11037
- e += fr, e += new TextEncoder().encode(`Content-Disposition: form-data; name="${t}"`).length, e += typeof i == "string" ? new TextEncoder().encode(i).length : i.size;
11052
+ e += hr, e += new TextEncoder().encode(`Content-Disposition: form-data; name="${t}"`).length, e += typeof i == "string" ? new TextEncoder().encode(i).length : i.size;
11038
11053
  return e;
11039
11054
  }
11040
11055
  if (a instanceof Blob)
@@ -11070,7 +11085,7 @@ const hr = (a) => new bi(a), br = {
11070
11085
  i && (s += i.byteLength, t?.({ percent: 1, totalBytes: Math.max(e, s), transferredBytes: s }, i));
11071
11086
  }
11072
11087
  }));
11073
- }, mr = (a, e) => {
11088
+ }, yr = (a, e) => {
11074
11089
  if (!a.body)
11075
11090
  return a;
11076
11091
  if (a.status === 204)
@@ -11085,16 +11100,16 @@ const hr = (a) => new bi(a), br = {
11085
11100
  statusText: a.statusText,
11086
11101
  headers: a.headers
11087
11102
  });
11088
- }, yr = (a, e, t) => {
11103
+ }, vr = (a, e, t) => {
11089
11104
  if (!a.body)
11090
11105
  return a;
11091
- const i = gr(t ?? a.body);
11106
+ const i = mr(t ?? a.body);
11092
11107
  return new Request(a, {
11093
11108
  // @ts-expect-error - Types are outdated.
11094
11109
  duplex: "half",
11095
11110
  body: ui(a.body, i, e)
11096
11111
  });
11097
- }, Qe = (a) => a !== null && typeof a == "object", Tt = (...a) => {
11112
+ }, Qe = (a) => a !== null && typeof a == "object", Et = (...a) => {
11098
11113
  for (const e of a)
11099
11114
  if ((!Qe(e) || Array.isArray(e)) && e !== void 0)
11100
11115
  throw new TypeError("The `options` argument must be an object");
@@ -11105,15 +11120,15 @@ const hr = (a) => new bi(a), br = {
11105
11120
  i && o === "undefined" || o === void 0 ? t.delete(r) : t.set(r, o);
11106
11121
  return t;
11107
11122
  };
11108
- function It(a, e, t) {
11123
+ function $t(a, e, t) {
11109
11124
  return Object.hasOwn(e, t) && e[t] === void 0 ? [] : fa(a[t] ?? [], e[t] ?? []);
11110
11125
  }
11111
11126
  const gi = (a = {}, e = {}) => ({
11112
- beforeRequest: It(a, e, "beforeRequest"),
11113
- beforeRetry: It(a, e, "beforeRetry"),
11114
- afterResponse: It(a, e, "afterResponse"),
11115
- beforeError: It(a, e, "beforeError")
11116
- }), vr = (a, e) => {
11127
+ beforeRequest: $t(a, e, "beforeRequest"),
11128
+ beforeRetry: $t(a, e, "beforeRetry"),
11129
+ afterResponse: $t(a, e, "afterResponse"),
11130
+ beforeError: $t(a, e, "beforeError")
11131
+ }), wr = (a, e) => {
11117
11132
  const t = new URLSearchParams();
11118
11133
  for (const i of [a, e])
11119
11134
  if (i !== void 0)
@@ -11157,7 +11172,7 @@ const gi = (a = {}, e = {}) => ({
11157
11172
  continue;
11158
11173
  }
11159
11174
  if (f === "searchParams") {
11160
- p == null ? s = void 0 : s = s === void 0 ? p : vr(s, p);
11175
+ p == null ? s = void 0 : s = s === void 0 ? p : wr(s, p);
11161
11176
  continue;
11162
11177
  }
11163
11178
  Qe(p) && f in e && (p = fa(e[f], p)), e = { ...e, [f]: p };
@@ -11165,20 +11180,20 @@ const gi = (a = {}, e = {}) => ({
11165
11180
  Qe(o.hooks) && (i = gi(i, o.hooks), e.hooks = i), Qe(o.headers) && (t = pi(t, o.headers), e.headers = t);
11166
11181
  }
11167
11182
  return s !== void 0 && (e.searchParams = s), r.length > 0 && (r.length === 1 ? e.signal = r[0] : di ? e.signal = AbortSignal.any(r) : e.signal = r.at(-1)), e.context === void 0 && (e.context = {}), e;
11168
- }, wr = (a) => fi.includes(a) ? a.toUpperCase() : a, xr = ["get", "put", "head", "delete", "options", "trace"], kr = [408, 413, 429, 500, 502, 503, 504], _r = [413, 429, 503], Ha = {
11183
+ }, xr = (a) => fi.includes(a) ? a.toUpperCase() : a, kr = ["get", "put", "head", "delete", "options", "trace"], _r = [408, 413, 429, 500, 502, 503, 504], Sr = [413, 429, 503], ja = {
11169
11184
  limit: 2,
11170
- methods: xr,
11171
- statusCodes: kr,
11172
- afterStatusCodes: _r,
11185
+ methods: kr,
11186
+ statusCodes: _r,
11187
+ afterStatusCodes: Sr,
11173
11188
  maxRetryAfter: Number.POSITIVE_INFINITY,
11174
11189
  backoffLimit: Number.POSITIVE_INFINITY,
11175
11190
  delay: (a) => 0.3 * 2 ** (a - 1) * 1e3,
11176
11191
  jitter: void 0,
11177
11192
  retryOnTimeout: !1
11178
- }, Sr = (a = {}) => {
11193
+ }, Cr = (a = {}) => {
11179
11194
  if (typeof a == "number")
11180
11195
  return {
11181
- ...Ha,
11196
+ ...ja,
11182
11197
  limit: a
11183
11198
  };
11184
11199
  if (a.methods && !Array.isArray(a.methods))
@@ -11186,27 +11201,27 @@ const gi = (a = {}, e = {}) => ({
11186
11201
  if (a.statusCodes && !Array.isArray(a.statusCodes))
11187
11202
  throw new Error("retry.statusCodes must be an array");
11188
11203
  return {
11189
- ...Ha,
11204
+ ...ja,
11190
11205
  ...a
11191
11206
  };
11192
11207
  };
11193
- class ta extends Error {
11208
+ class aa extends Error {
11194
11209
  request;
11195
11210
  constructor(e) {
11196
11211
  super(`Request timed out: ${e.method} ${e.url}`), this.name = "TimeoutError", this.request = e;
11197
11212
  }
11198
11213
  }
11199
- async function Cr(a, e, t, i) {
11214
+ async function Ar(a, e, t, i) {
11200
11215
  return new Promise((s, r) => {
11201
11216
  const o = setTimeout(() => {
11202
- t && t.abort(), r(new ta(a));
11217
+ t && t.abort(), r(new aa(a));
11203
11218
  }, i.timeout);
11204
11219
  i.fetch(a, e).then(s).catch(r).then(() => {
11205
11220
  clearTimeout(o);
11206
11221
  });
11207
11222
  });
11208
11223
  }
11209
- async function Ar(a, { signal: e }) {
11224
+ async function Mr(a, { signal: e }) {
11210
11225
  return new Promise((t, i) => {
11211
11226
  e && (e.throwIfAborted(), e.addEventListener("abort", s, { once: !0 }));
11212
11227
  function s() {
@@ -11217,23 +11232,23 @@ async function Ar(a, { signal: e }) {
11217
11232
  }, a);
11218
11233
  });
11219
11234
  }
11220
- const Mr = (a, e) => {
11235
+ const Tr = (a, e) => {
11221
11236
  const t = {};
11222
11237
  for (const i in e)
11223
- Object.hasOwn(e, i) && !(i in pr) && !(i in br) && (!(i in a) || i in ur) && (t[i] = e[i]);
11238
+ Object.hasOwn(e, i) && !(i in gr) && !(i in ur) && (!(i in a) || i in pr) && (t[i] = e[i]);
11224
11239
  return t;
11225
- }, Tr = (a) => a === void 0 ? !1 : Array.isArray(a) ? a.length > 0 : a instanceof URLSearchParams ? a.size > 0 : typeof a == "object" ? Object.keys(a).length > 0 : typeof a == "string" ? a.trim().length > 0 : !!a;
11226
- function Ir(a) {
11227
- return a instanceof ea || a?.name === ea.name;
11228
- }
11240
+ }, Ir = (a) => a === void 0 ? !1 : Array.isArray(a) ? a.length > 0 : a instanceof URLSearchParams ? a.size > 0 : typeof a == "object" ? Object.keys(a).length > 0 : typeof a == "string" ? a.trim().length > 0 : !!a;
11229
11241
  function Er(a) {
11230
11242
  return a instanceof ta || a?.name === ta.name;
11231
11243
  }
11244
+ function $r(a) {
11245
+ return a instanceof aa || a?.name === aa.name;
11246
+ }
11232
11247
  class vt {
11233
11248
  static create(e, t) {
11234
11249
  const i = new vt(e, t), s = async () => {
11235
- if (typeof i.#e.timeout == "number" && i.#e.timeout > Wt)
11236
- throw new RangeError(`The \`timeout\` option cannot be greater than ${Wt}`);
11250
+ if (typeof i.#e.timeout == "number" && i.#e.timeout > Gt)
11251
+ throw new RangeError(`The \`timeout\` option cannot be greater than ${Gt}`);
11237
11252
  await Promise.resolve();
11238
11253
  let o = await i.#p();
11239
11254
  for (const f of i.#e.hooks.afterResponse) {
@@ -11242,10 +11257,10 @@ class vt {
11242
11257
  throw await Promise.all([
11243
11258
  p.body?.cancel(),
11244
11259
  o.body?.cancel()
11245
- ]), new Nt(v.options);
11260
+ ]), new Wt(v.options);
11246
11261
  }
11247
11262
  if (i.#d(o), !o.ok && (typeof i.#e.throwHttpErrors == "function" ? i.#e.throwHttpErrors(o.status) : i.#e.throwHttpErrors)) {
11248
- let f = new ea(o, i.request, i.#o());
11263
+ let f = new ta(o, i.request, i.#o());
11249
11264
  for (const p of i.#e.hooks.beforeError)
11250
11265
  f = await p(f, { retryCount: i.#a });
11251
11266
  throw f;
@@ -11253,16 +11268,16 @@ class vt {
11253
11268
  if (i.#e.onDownloadProgress) {
11254
11269
  if (typeof i.#e.onDownloadProgress != "function")
11255
11270
  throw new TypeError("The `onDownloadProgress` option must be a function");
11256
- if (!cr)
11271
+ if (!lr)
11257
11272
  throw new Error("Streams are not supported in your environment. `ReadableStream` is missing.");
11258
- return mr(o.clone(), i.#e.onDownloadProgress);
11273
+ return yr(o.clone(), i.#e.onDownloadProgress);
11259
11274
  }
11260
11275
  return o;
11261
11276
  }, r = i.#f(s).finally(async () => {
11262
11277
  const o = i.#n, f = [];
11263
11278
  o && !o.bodyUsed && f.push(o.body?.cancel()), i.request.bodyUsed || f.push(i.request.body?.cancel()), await Promise.all(f);
11264
11279
  });
11265
- for (const [o, f] of Object.entries(dr))
11280
+ for (const [o, f] of Object.entries(fr))
11266
11281
  o === "bytes" && typeof globalThis.Response?.prototype?.bytes != "function" || (r[o] = async () => {
11267
11282
  i.request.headers.set("accept", i.request.headers.get("accept") || f);
11268
11283
  const p = await r;
@@ -11300,10 +11315,10 @@ class vt {
11300
11315
  beforeError: [],
11301
11316
  afterResponse: []
11302
11317
  }, t.hooks),
11303
- method: wr(t.method ?? this.#t.method ?? "GET"),
11318
+ method: xr(t.method ?? this.#t.method ?? "GET"),
11304
11319
  // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
11305
11320
  prefixUrl: String(t.prefixUrl || ""),
11306
- retry: Sr(t.retry),
11321
+ retry: Cr(t.retry),
11307
11322
  throwHttpErrors: t.throwHttpErrors ?? !0,
11308
11323
  timeout: t.timeout ?? 1e4,
11309
11324
  fetch: t.fetch ?? globalThis.fetch.bind(globalThis),
@@ -11315,16 +11330,16 @@ class vt {
11315
11330
  throw new Error("`input` must not begin with a slash when using `prefixUrl`");
11316
11331
  this.#e.prefixUrl.endsWith("/") || (this.#e.prefixUrl += "/"), this.#t = this.#e.prefixUrl + this.#t;
11317
11332
  }
11318
- or && di && (this.#s = this.#e.signal ?? this.#t.signal, this.#i = new globalThis.AbortController(), this.#e.signal = this.#s ? AbortSignal.any([this.#s, this.#i.signal]) : this.#i.signal), ja && (this.#e.duplex = "half"), this.#e.json !== void 0 && (this.#e.body = this.#e.stringifyJson?.(this.#e.json) ?? JSON.stringify(this.#e.json), this.#e.headers.set("content-type", this.#e.headers.get("content-type") ?? "application/json"));
11333
+ cr && di && (this.#s = this.#e.signal ?? this.#t.signal, this.#i = new globalThis.AbortController(), this.#e.signal = this.#s ? AbortSignal.any([this.#s, this.#i.signal]) : this.#i.signal), Fa && (this.#e.duplex = "half"), this.#e.json !== void 0 && (this.#e.body = this.#e.stringifyJson?.(this.#e.json) ?? JSON.stringify(this.#e.json), this.#e.headers.set("content-type", this.#e.headers.get("content-type") ?? "application/json"));
11319
11334
  const i = t.headers && new globalThis.Headers(t.headers).has("content-type");
11320
- if (this.#t instanceof globalThis.Request && (lr && this.#e.body instanceof globalThis.FormData || this.#e.body instanceof URLSearchParams) && !i && this.#e.headers.delete("content-type"), this.request = new globalThis.Request(this.#t, this.#e), Tr(this.#e.searchParams)) {
11335
+ if (this.#t instanceof globalThis.Request && (dr && this.#e.body instanceof globalThis.FormData || this.#e.body instanceof URLSearchParams) && !i && this.#e.headers.delete("content-type"), this.request = new globalThis.Request(this.#t, this.#e), Ir(this.#e.searchParams)) {
11321
11336
  const r = "?" + (typeof this.#e.searchParams == "string" ? this.#e.searchParams.replace(/^\?/, "") : new URLSearchParams(vt.#b(this.#e.searchParams)).toString()), o = this.request.url.replace(/(?:\?.*?)?(?=#|$)/, r);
11322
11337
  this.request = new globalThis.Request(o, this.#e);
11323
11338
  }
11324
11339
  if (this.#e.onUploadProgress) {
11325
11340
  if (typeof this.#e.onUploadProgress != "function")
11326
11341
  throw new TypeError("The `onUploadProgress` option must be a function");
11327
- if (!ja)
11342
+ if (!Fa)
11328
11343
  throw new Error("Request streams are not supported in your environment. The `duplex` option for `Request` is not available.");
11329
11344
  this.request = this.#h(this.request, this.#e.body ?? void 0);
11330
11345
  }
@@ -11338,7 +11353,7 @@ class vt {
11338
11353
  if (this.#a++, this.#a > this.#e.retry.limit)
11339
11354
  throw e;
11340
11355
  const t = e instanceof Error ? e : new li(e);
11341
- if (t instanceof Nt)
11356
+ if (t instanceof Wt)
11342
11357
  return t.customDelay ?? this.#c();
11343
11358
  if (!this.#e.retry.methods.includes(this.request.method.toLowerCase()))
11344
11359
  throw e;
@@ -11349,9 +11364,9 @@ class vt {
11349
11364
  if (i === !0)
11350
11365
  return this.#c();
11351
11366
  }
11352
- if (Er(e) && !this.#e.retry.retryOnTimeout)
11367
+ if ($r(e) && !this.#e.retry.retryOnTimeout)
11353
11368
  throw e;
11354
- if (Ir(e)) {
11369
+ if (Er(e)) {
11355
11370
  if (!this.#e.retry.statusCodes.includes(e.response.status))
11356
11371
  throw e;
11357
11372
  const i = e.response.headers.get("Retry-After") ?? e.response.headers.get("RateLimit-Reset") ?? e.response.headers.get("X-RateLimit-Retry-After") ?? e.response.headers.get("X-RateLimit-Reset") ?? e.response.headers.get("X-Rate-Limit-Reset");
@@ -11373,10 +11388,10 @@ class vt {
11373
11388
  try {
11374
11389
  return await e();
11375
11390
  } catch (t) {
11376
- const i = Math.min(await this.#u(t), Wt);
11391
+ const i = Math.min(await this.#u(t), Gt);
11377
11392
  if (this.#a < 1)
11378
11393
  throw t;
11379
- if (await Ar(i, this.#s ? { signal: this.#s } : {}), t instanceof Nt && t.customRequest) {
11394
+ if (await Mr(i, this.#s ? { signal: this.#s } : {}), t instanceof Wt && t.customRequest) {
11380
11395
  const s = this.#e.signal ? new globalThis.Request(t.customRequest, { signal: this.#e.signal }) : new globalThis.Request(t.customRequest);
11381
11396
  this.#l(s);
11382
11397
  }
@@ -11410,8 +11425,8 @@ class vt {
11410
11425
  break;
11411
11426
  }
11412
11427
  }
11413
- const e = Mr(this.request, this.#e);
11414
- return this.#n = this.request, this.request = this.#n.clone(), this.#e.timeout === !1 ? this.#e.fetch(this.#n, e) : Cr(this.#n, e, this.#i, this.#e);
11428
+ const e = Tr(this.request, this.#e);
11429
+ return this.#n = this.request, this.request = this.#n.clone(), this.#e.timeout === !1 ? this.#e.fetch(this.#n, e) : Ar(this.#n, e, this.#i, this.#e);
11415
11430
  }
11416
11431
  #o() {
11417
11432
  if (!this.#r) {
@@ -11424,16 +11439,16 @@ class vt {
11424
11439
  this.#r = void 0, this.request = this.#h(e);
11425
11440
  }
11426
11441
  #h(e, t) {
11427
- return !this.#e.onUploadProgress || !e.body ? e : yr(e, this.#e.onUploadProgress, t ?? this.#e.body ?? void 0);
11442
+ return !this.#e.onUploadProgress || !e.body ? e : vr(e, this.#e.onUploadProgress, t ?? this.#e.body ?? void 0);
11428
11443
  }
11429
11444
  }
11430
- const aa = (a) => {
11431
- const e = (t, i) => vt.create(t, Tt(a, i));
11445
+ const ia = (a) => {
11446
+ const e = (t, i) => vt.create(t, Et(a, i));
11432
11447
  for (const t of fi)
11433
- e[t] = (i, s) => vt.create(i, Tt(a, s, { method: t }));
11434
- return e.create = (t) => aa(Tt(t)), e.extend = (t) => (typeof t == "function" && (t = t(a ?? {})), aa(Tt(a, t))), e.stop = hi, e.retry = hr, e;
11435
- }, $r = aa();
11436
- $r.extend({
11448
+ e[t] = (i, s) => vt.create(i, Et(a, s, { method: t }));
11449
+ return e.create = (t) => ia(Et(t)), e.extend = (t) => (typeof t == "function" && (t = t(a ?? {})), ia(Et(a, t))), e.stop = hi, e.retry = br, e;
11450
+ }, Pr = ia();
11451
+ Pr.extend({
11437
11452
  hooks: {
11438
11453
  beforeRequest: [
11439
11454
  () => {
@@ -11441,7 +11456,7 @@ $r.extend({
11441
11456
  ]
11442
11457
  }
11443
11458
  });
11444
- async function Pr(a, e) {
11459
+ async function Lr(a, e) {
11445
11460
  const { onmessage: t, onclose: i, ...s } = e, r = async (o, f) => {
11446
11461
  const { value: p, done: v } = await f.read();
11447
11462
  v ? (o.close(), i?.()) : (t?.(p), o.enqueue(p), r(o, f));
@@ -11462,13 +11477,13 @@ async function Pr(a, e) {
11462
11477
  }).text()
11463
11478
  );
11464
11479
  }
11465
- var Lr = Object.defineProperty, Rr = Object.getOwnPropertyDescriptor, U = (a, e, t, i) => {
11466
- for (var s = i > 1 ? void 0 : i ? Rr(e, t) : e, r = a.length - 1, o; r >= 0; r--)
11480
+ var Rr = Object.defineProperty, zr = Object.getOwnPropertyDescriptor, U = (a, e, t, i) => {
11481
+ for (var s = i > 1 ? void 0 : i ? zr(e, t) : e, r = a.length - 1, o; r >= 0; r--)
11467
11482
  (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
11468
- return i && s && Lr(e, t, s), s;
11483
+ return i && s && Rr(e, t, s), s;
11469
11484
  };
11470
- const Oe = Je.noConflict();
11471
- Oe.setLevel("info");
11485
+ const Be = Je.noConflict();
11486
+ Be.setLevel("info");
11472
11487
  let H = class extends ne {
11473
11488
  constructor() {
11474
11489
  super(...arguments), this.store = new it(this, b), this.displayLicense = !1, this.name = "ChatBot", this.orgId = "", this.botId = "", this.url = "ws://localhost:3070", this.logoUrl = "", this.logoSvg = `<svg width="34" height="34" viewBox="0 0 203 200" fill="none" xmlns="http://www.w3.org/2000/svg">
@@ -11497,7 +11512,7 @@ let H = class extends ne {
11497
11512
  this._chatbotToggleHandler(a);
11498
11513
  }, this.handleFormSubmitEvent = (a) => {
11499
11514
  this._formSubmitHandler(a);
11500
- }, this.fetchStream = Pr;
11515
+ }, this.fetchStream = Lr;
11501
11516
  }
11502
11517
  /**
11503
11518
  * decodeStreamData
@@ -11532,14 +11547,14 @@ let H = class extends ne {
11532
11547
  b.addActions(a);
11533
11548
  }
11534
11549
  render() {
11535
- return b.disabled && !this.alwaysOpen ? (Oe.info("Bot is disabled until settings are loaded"), null) : u`
11550
+ return b.disabled && !this.alwaysOpen ? (Be.info("Bot is disabled until settings are loaded"), null) : u`
11536
11551
  <div class="cb-wrapper${b.open ? " cb-open" : ""}" part="wrapper${b.open ? " open" : ""}" exportparts="wrapper${b.open ? " open" : ""}">
11537
11552
  <cb-header title="${this.name}" exportparts="header, header-logo, header-title, header-close"></cb-header>
11538
11553
  <cb-message-list
11539
11554
  .messages=${b.messages}
11540
11555
  .actions=${b.actions}
11541
11556
  .form=${b.form}
11542
- exportparts="bot-message-list, disclaimer-message, bot-message, cb-message, bot-message-content, user-message-content, form, form-title, form-input, form-submit"
11557
+ exportparts="bot-message-list, disclaimer-message, bot-message, cb-message, bot-message-content, user-message-content, user-avatar, assistant-avatar, form, form-title, form-input, form-submit"
11543
11558
  ></cb-message-list>
11544
11559
  <cb-audio-controls exportparts="audio-controls"></cb-audio-controls>
11545
11560
  ${this.renderUserInput()} ${this.renderFeedbackDialog()}
@@ -11561,7 +11576,7 @@ let H = class extends ne {
11561
11576
  ?disabled=${b.connecting || b.form}
11562
11577
  ?enable-file-upload=${b.setting.uploadImages && b.connected}
11563
11578
  ?enable-audio=${b.setting.enableAudio && b.connected}
11564
- exportparts="user-input-control,user-input, user-input-wrapper, user-input-base, user-input-textarea, user-input-buttons-wrapper, user-input-send-icon, user-input-attach-icon"
11579
+ exportparts="user-input-control,user-input, user-input-wrapper, user-input-inner, user-input-base, upload-button, control-button, user-input-textarea, user-input-buttons-wrapper, user-input-send-icon, user-input-attach-icon"
11565
11580
  ></cb-user-input-mm>` : u`
11566
11581
  <cb-user-input
11567
11582
  part="user-input-control"
@@ -11573,7 +11588,7 @@ let H = class extends ne {
11573
11588
  ></cb-user-input>`;
11574
11589
  }
11575
11590
  connectedCallback() {
11576
- super.connectedCallback(), Oe.info("connectedCallback"), this.initCssVariables(), addEventListener("c7o:bot:stateEvent", this.handleStateEvent), addEventListener("message:send", this.handleAddMessage), addEventListener("chatbot:toggle", this.handleToggleEvent), addEventListener("form:submit", this.handleFormSubmitEvent), addEventListener("message:send:file", this._uploadFileHandler), addEventListener("audio:toggle", this._audioToggleHandler);
11591
+ super.connectedCallback(), Be.info("connectedCallback"), this.initCssVariables(), addEventListener("c7o:bot:stateEvent", this.handleStateEvent), addEventListener("message:send", this.handleAddMessage), addEventListener("chatbot:toggle", this.handleToggleEvent), addEventListener("form:submit", this.handleFormSubmitEvent), addEventListener("message:send:file", this._uploadFileHandler), addEventListener("audio:toggle", this._audioToggleHandler);
11577
11592
  }
11578
11593
  extractCssVariable(a, e, t) {
11579
11594
  let i = a.getPropertyValue(e).trim();
@@ -11602,26 +11617,26 @@ let H = class extends ne {
11602
11617
 
11603
11618
  */
11604
11619
  disconnectedCallback() {
11605
- Oe.info("disconnectedCallback"), super.disconnectedCallback(), window.removeEventListener("c7o:bot:stateEvent", this.handleStateEvent), window.removeEventListener("message:send", this.handleAddMessage), window.removeEventListener("chatbot:toggle", this.handleToggleEvent), window.removeEventListener("form:submit", this.handleFormSubmitEvent), window.removeEventListener("message:send:file", this._uploadFileHandler), window.removeEventListener("audio:toggle", this._audioToggleHandler);
11620
+ Be.info("disconnectedCallback"), super.disconnectedCallback(), window.removeEventListener("c7o:bot:stateEvent", this.handleStateEvent), window.removeEventListener("message:send", this.handleAddMessage), window.removeEventListener("chatbot:toggle", this.handleToggleEvent), window.removeEventListener("form:submit", this.handleFormSubmitEvent), window.removeEventListener("message:send:file", this._uploadFileHandler), window.removeEventListener("audio:toggle", this._audioToggleHandler);
11606
11621
  }
11607
11622
  // This is called when component is loaded, with all the settings (props) values
11608
11623
  // Use to initialize
11609
11624
  // This is also called when state changes - ??? - i.e. when message added to the array
11610
11625
  updated(a) {
11611
- super.updated(a), a.size > 0 && (Oe.info("updated,_changedProperties:", a), this._initSetting()), !this._scrollToBottomTimeout && (this._scrollToBottomTimeout = setTimeout(() => {
11626
+ super.updated(a), a.size > 0 && (Be.info("updated,_changedProperties:", a), this._initSetting()), !this._scrollToBottomTimeout && (this._scrollToBottomTimeout = setTimeout(() => {
11612
11627
  this._scrollToBottom(), this._scrollToBottomTimeout = void 0;
11613
11628
  }, 200));
11614
11629
  }
11615
11630
  // initialize setting
11616
11631
  _initSetting() {
11617
- Oe.info("_initSetting");
11632
+ Be.info("_initSetting");
11618
11633
  const a = b.setting;
11619
11634
  a.orgId = this.orgId, a.botId = this.botId, a.url = this.url, a.logoUrl = this.logoUrl, a.logoSvg = this.logoSvg, a.closeSvg = this.closeSvg, a.popupLogoSvg = this.popupLogoSvg, a.popupLogoUrl = this.popupLogoUrl, a.botIconSvg = this.botIconSvg, a.userIconSvg = this.userIconSvg, a.systemIconSvg = this.systemIconSvg, a.agentIconSvg = this.agentIconSvg, a.anchorOpenSvg = this.anchorOpenSvg, a.anchorCloseSvg = this.anchorCloseSvg, a.sendIconSvg = this.sendIconSvg, a.attachIconSvg = this.attachIconSvg, b.setSetting(a);
11620
11635
  let e = {};
11621
11636
  try {
11622
11637
  e = JSON.parse(this.prefilledFormFields);
11623
11638
  } catch (t) {
11624
- Oe.error(`Failed to parse prefilled-form-fields attribute value, error: ${t?.message || ""}`), e = {};
11639
+ Be.error(`Failed to parse prefilled-form-fields attribute value, error: ${t?.message || ""}`), e = {};
11625
11640
  }
11626
11641
  b.setPrefilledFormFields(e), this.open && (b.open = !0), this.alwaysOpen && (b.open = !0, b.alwaysOpen = !0);
11627
11642
  }
@@ -11656,7 +11671,7 @@ let H = class extends ne {
11656
11671
  // for example, user profile, current product user is viewing on the web page, etc.
11657
11672
  setContext(a = {}) {
11658
11673
  b.setContext(a).catch((e) => {
11659
- Oe.error(`Failed to set context, error: ${e?.message || ""}`);
11674
+ Be.error(`Failed to set context, error: ${e?.message || ""}`);
11660
11675
  });
11661
11676
  }
11662
11677
  getContext() {
@@ -11754,7 +11769,7 @@ let H = class extends ne {
11754
11769
  await b.uploadFiles(e.files);
11755
11770
  }
11756
11771
  async _audioToggleHandler(a) {
11757
- Oe.info("_audioToggleHandler called"), await b.toggleAudio();
11772
+ Be.info("_audioToggleHandler called"), await b.toggleAudio();
11758
11773
  }
11759
11774
  // setting confirm handler
11760
11775
  _settingConfirmHandler(a) {