@enegelai/bot-widget 1.16.4 → 1.16.6

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,8 +1,8 @@
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";
1
+ import { css as J, LitElement as Fe, html as u, nothing as Ae, svg as pe } from "lit";
2
+ import { property as x, customElement as Z, query as xe, state as Ha, queryAll as Va, eventOptions as sa } from "lit/decorators.js";
3
3
  import { when as W } from "lit/directives/when.js";
4
- import { unsafeHTML as Y } from "lit-html/directives/unsafe-html.js";
5
- import { registerIconLibrary as Oi } from "@shoelace-style/shoelace";
4
+ import { unsafeHTML as G } from "lit-html/directives/unsafe-html.js";
5
+ import { registerIconLibrary as Bi } from "@shoelace-style/shoelace";
6
6
  import "@shoelace-style/shoelace/dist/components/button/button.js";
7
7
  import "@shoelace-style/shoelace/dist/components/avatar/avatar.js";
8
8
  import "@shoelace-style/shoelace/dist/components/input/input.js";
@@ -22,30 +22,30 @@ 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 Xt } from "lit-html/directives/until.js";
26
- import Bi from "markdown-it";
27
- import qi from "markdown-it-link-attributes";
28
- import Nt from "highlight.js";
25
+ import { until as Pt } from "lit-html/directives/until.js";
26
+ import qi from "markdown-it";
27
+ import Di from "markdown-it-link-attributes";
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 Di, ref as At } from "lit/directives/ref.js";
31
+ import { createRef as Fi, ref as At } from "lit/directives/ref.js";
32
32
  function Na(a) {
33
33
  return typeof a == "function" ? a() : a;
34
34
  }
35
- const jt = class jt extends Event {
35
+ const Ht = class Ht 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(jt.eventName, {
41
+ super(Ht.eventName, {
42
42
  cancelable: !1
43
43
  }), this.key = e, this.value = t, this.state = i;
44
44
  }
45
45
  };
46
- jt.eventName = "lit-state-changed";
47
- let at = jt;
48
- const Fi = (a, e) => e !== a && (e === e || a === a), ha = class ha extends EventTarget {
46
+ Ht.eventName = "lit-state-changed";
47
+ let at = Ht;
48
+ const ji = (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());
51
51
  }
@@ -78,7 +78,7 @@ const Fi = (a, e) => e !== a && (e === e || a === a), ha = class ha extends Even
78
78
  Object.defineProperty(this.prototype, e, s);
79
79
  }
80
80
  static getPropertyDescriptor(e, t, i) {
81
- const s = i?.hasChanged || Fi;
81
+ const s = i?.hasChanged || ji;
82
82
  return {
83
83
  get() {
84
84
  return this[t];
@@ -146,7 +146,7 @@ function z(a) {
146
146
  }), i.createProperty(t, a), s ? Object.getOwnPropertyDescriptor(e, t) : void 0;
147
147
  };
148
148
  }
149
- function ji(a, e) {
149
+ function Hi(a, e) {
150
150
  if (a !== null && (e === Boolean || e === Number || e === Array || e === Object))
151
151
  try {
152
152
  a = JSON.parse(a);
@@ -156,18 +156,18 @@ function ji(a, e) {
156
156
  return a;
157
157
  }
158
158
  new URL(location.href);
159
- const Hi = {
159
+ const Vi = {
160
160
  prefix: "_ls"
161
161
  };
162
162
  function ce(a) {
163
- return a = { ...Hi, ...a }, (e, t) => {
163
+ return a = { ...Vi, ...a }, (e, t) => {
164
164
  const i = Object.getOwnPropertyDescriptor(e, t);
165
165
  if (!i)
166
166
  throw new Error("@local-storage decorator need to be called after @property");
167
167
  const s = `${a?.prefix || ""}_${a?.key || String(t)}`, r = e.constructor, o = r.propertyMap.get(t), f = o?.type;
168
168
  if (o) {
169
169
  const w = o.initialValue;
170
- o.initialValue = () => ji(localStorage.getItem(s), f) ?? Na(w), r.propertyMap.set(t, { ...o, ...a });
170
+ o.initialValue = () => Hi(localStorage.getItem(s), f) ?? Na(w), r.propertyMap.set(t, { ...o, ...a });
171
171
  }
172
172
  const p = i?.set, k = {
173
173
  ...i,
@@ -181,12 +181,12 @@ function ce(a) {
181
181
  function Ua(a) {
182
182
  return a && a.__esModule && Object.prototype.hasOwnProperty.call(a, "default") ? a.default : a;
183
183
  }
184
- var Pt = { exports: {} }, Vi = Pt.exports, ka;
185
- function Ni() {
184
+ var Lt = { exports: {} }, Ni = Lt.exports, ka;
185
+ function Ui() {
186
186
  return ka || (ka = 1, (function(a) {
187
187
  (function(e, t) {
188
188
  a.exports ? a.exports = t() : e.log = t();
189
- })(Vi, function() {
189
+ })(Ni, function() {
190
190
  var e = function() {
191
191
  }, t = "undefined", i = typeof window !== t && typeof window.navigator !== t && /Trident\/|MSIE /.test(window.navigator.userAgent), s = [
192
192
  "trace",
@@ -230,7 +230,7 @@ function Ni() {
230
230
  return v(M) || w.apply(this, arguments);
231
231
  }
232
232
  function P(M, L) {
233
- var C = this, Z, U, G, te = "loglevel";
233
+ var C = this, K, U, X, te = "loglevel";
234
234
  typeof M == "string" ? te += ":" + M : typeof M == "symbol" && (te = void 0);
235
235
  function He(j) {
236
236
  var V = (s[j] || "silent").toUpperCase();
@@ -276,7 +276,7 @@ function Ni() {
276
276
  }
277
277
  }
278
278
  }
279
- function pe(j) {
279
+ function ge(j) {
280
280
  var V = j;
281
281
  if (typeof V == "string" && C.levels[V.toUpperCase()] !== void 0 && (V = C.levels[V.toUpperCase()]), typeof V == "number" && V >= 0 && V <= C.levels.SILENT)
282
282
  return V;
@@ -290,26 +290,26 @@ function Ni() {
290
290
  ERROR: 4,
291
291
  SILENT: 5
292
292
  }, C.methodFactory = L || _, C.getLevel = function() {
293
- return G ?? U ?? Z;
293
+ return X ?? U ?? K;
294
294
  }, C.setLevel = function(j, V) {
295
- return G = pe(j), V !== !1 && He(G), k.call(C);
295
+ return X = ge(j), V !== !1 && He(X), k.call(C);
296
296
  }, C.setDefaultLevel = function(j) {
297
- U = pe(j), ae() || C.setLevel(j, !1);
297
+ U = ge(j), ae() || C.setLevel(j, !1);
298
298
  }, C.resetLevel = function() {
299
- G = null, he(), k.call(C);
299
+ X = null, he(), k.call(C);
300
300
  }, C.enableAll = function(j) {
301
301
  C.setLevel(C.levels.TRACE, j);
302
302
  }, C.disableAll = function(j) {
303
303
  C.setLevel(C.levels.SILENT, j);
304
304
  }, C.rebuild = function() {
305
- if (o !== C && (Z = pe(o.getLevel())), k.call(C), o === C)
305
+ if (o !== C && (K = ge(o.getLevel())), k.call(C), o === C)
306
306
  for (var j in r)
307
307
  r[j].rebuild();
308
- }, Z = pe(
308
+ }, K = ge(
309
309
  o ? o.getLevel() : "WARN"
310
310
  );
311
311
  var F = ae();
312
- F != null && (G = pe(F)), k.call(C);
312
+ F != null && (X = ge(F)), k.call(C);
313
313
  }
314
314
  o = new P(), o.getLogger = function(L) {
315
315
  if (typeof L != "symbol" && typeof L != "string" || L === "")
@@ -320,17 +320,17 @@ function Ni() {
320
320
  o.methodFactory
321
321
  )), C;
322
322
  };
323
- var I = typeof window !== t ? window.log : void 0;
323
+ var E = typeof window !== t ? window.log : void 0;
324
324
  return o.noConflict = function() {
325
- return typeof window !== t && window.log === o && (window.log = I), o;
325
+ return typeof window !== t && window.log === o && (window.log = E), o;
326
326
  }, o.getLoggers = function() {
327
327
  return r;
328
328
  }, o.default = o, o;
329
329
  });
330
- })(Pt)), Pt.exports;
330
+ })(Lt)), Lt.exports;
331
331
  }
332
- var Ui = Ni();
333
- const Je = /* @__PURE__ */ Ua(Ui), Wi = J`
332
+ var Wi = Ui();
333
+ const Je = /* @__PURE__ */ Ua(Wi), Gi = J`
334
334
  :host {
335
335
  --enegelai-bot-width: 420px;
336
336
  --enegelai-bot-base-font-size: 16px;
@@ -663,17 +663,17 @@ const Je = /* @__PURE__ */ Ua(Ui), Wi = J`
663
663
  color: white;
664
664
  }
665
665
  `;
666
- var Gi = Object.defineProperty, Xi = Object.getOwnPropertyDescriptor, na = (a, e, t, i) => {
667
- for (var s = i > 1 ? void 0 : i ? Xi(e, t) : e, r = a.length - 1, o; r >= 0; r--)
666
+ var Xi = Object.defineProperty, Yi = Object.getOwnPropertyDescriptor, na = (a, e, t, i) => {
667
+ for (var s = i > 1 ? void 0 : i ? Yi(e, t) : e, r = a.length - 1, o; r >= 0; r--)
668
668
  (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
669
- return i && s && Gi(e, t, s), s;
669
+ return i && s && Xi(e, t, s), s;
670
670
  };
671
671
  let ut = class extends Fe {
672
672
  constructor() {
673
673
  super(...arguments), this.color = "primary", this.svg = "";
674
674
  }
675
675
  render() {
676
- return u`<span class="cb-icon" part="base">${Y(this.svg)}</span>`;
676
+ return u`<span class="cb-icon" part="base">${G(this.svg)}</span>`;
677
677
  }
678
678
  };
679
679
  ut.styles = Wa;
@@ -684,9 +684,9 @@ na([
684
684
  x({ type: String })
685
685
  ], ut.prototype, "svg", 2);
686
686
  ut = na([
687
- K("cb-icon")
687
+ Z("cb-icon")
688
688
  ], ut);
689
- let Yi = (a) => crypto.getRandomValues(new Uint8Array(a)), Ji = (a, e, t) => {
689
+ let Ji = (a) => crypto.getRandomValues(new Uint8Array(a)), Zi = (a, e, t) => {
690
690
  let i = (2 << Math.log2(a.length - 1)) - 1, s = -~(1.6 * i * e / a.length);
691
691
  return (r = e) => {
692
692
  let o = "";
@@ -696,12 +696,12 @@ let Yi = (a) => crypto.getRandomValues(new Uint8Array(a)), Ji = (a, e, t) => {
696
696
  if (o += a[f[p] & i] || "", o.length >= r) return o;
697
697
  }
698
698
  };
699
- }, Ki = (a, e = 21) => Ji(a, e | 0, Yi);
700
- const Zi = Ki("1234567890abcdefghijklmnopqrstuvwxyz", 10);
699
+ }, Ki = (a, e = 21) => Zi(a, e | 0, Ji);
700
+ const Qi = Ki("1234567890abcdefghijklmnopqrstuvwxyz", 10);
701
701
  function fe(a = 10) {
702
- return Zi(a);
702
+ return Qi(a);
703
703
  }
704
- function Qi(a) {
704
+ function es(a) {
705
705
  return new Promise((e, t) => {
706
706
  try {
707
707
  navigator.clipboard.writeText(a).then(() => {
@@ -712,19 +712,19 @@ function Qi(a) {
712
712
  }
713
713
  });
714
714
  }
715
- function Ga(a = !0) {
716
- return new Promise((e) => {
717
- const t = document.createElement("input");
718
- t.type = "file", a && (t.multiple = !0), t.style.display = "none", t.addEventListener("change", () => {
719
- const i = Array.prototype.slice.call(t.files);
720
- e(i);
721
- }), t.click();
715
+ function Ga(a = !0, e = null) {
716
+ return new Promise((t) => {
717
+ const i = document.createElement("input");
718
+ i.type = "file", a && (i.multiple = !0), i.accept = e || ".jpeg,.jpg,.png,.pdf,.txt,.har,.zip,.mov,.mp4,.mp3", i.style.display = "none", i.addEventListener("change", () => {
719
+ const s = Array.prototype.slice.call(i.files);
720
+ t(s);
721
+ }), i.click();
722
722
  });
723
723
  }
724
724
  const se = Je.noConflict();
725
725
  se.setLevel("info");
726
726
  const _a = 3e4;
727
- class es {
727
+ class ts {
728
728
  constructor(e = {}) {
729
729
  this.id = 0, this.url = e?.url || null, this.orgId = e?.orgId || null, this.botId = e?.botId || null, this.convId = e?.convId || null, this._options = e || {}, this._ws = null, this.started = !1, this.connected = !1, this.connecting = !1, this.suspendDetected = !1, this.onMessage = e?.onMessage || null, this.onConnecting = e?.onConnecting || null, this.onConnectError = e?.onConnectError || null, this.onClose = e?.onClose || null, this.queue = e?.queue || [], this.pause = (t) => new Promise((i) => setTimeout(i, t)), this.lastTickTs = 0, this.lastAckTs = 0, this.tickInterval = null, se.info(`WSC: Created, url: ${this.url}`);
730
730
  }
@@ -885,7 +885,7 @@ class es {
885
885
  });
886
886
  }*/
887
887
  }
888
- class ts {
888
+ class as {
889
889
  constructor(e = {}) {
890
890
  this.name = e.name || "EventEmitter", this.events = {};
891
891
  }
@@ -923,7 +923,7 @@ class ts {
923
923
  }
924
924
  }
925
925
  }
926
- class Ke {
926
+ class Ze {
927
927
  /**
928
928
  * Converts Float32Array of amplitude data to ArrayBuffer in Int16Array format
929
929
  * @param {Float32Array} float32Array
@@ -1018,7 +1018,7 @@ class Ke {
1018
1018
  };
1019
1019
  }
1020
1020
  }
1021
- globalThis.WavPacker = Ke;
1021
+ globalThis.WavPacker = Ze;
1022
1022
  const Sa = [
1023
1023
  4186.01,
1024
1024
  4434.92,
@@ -1032,7 +1032,7 @@ const Sa = [
1032
1032
  7040,
1033
1033
  7458.62,
1034
1034
  7902.13
1035
- ], as = [
1035
+ ], is = [
1036
1036
  "C",
1037
1037
  "C#",
1038
1038
  "D",
@@ -1049,9 +1049,9 @@ const Sa = [
1049
1049
  for (let a = 1; a <= 8; a++)
1050
1050
  for (let e = 0; e < Sa.length; e++) {
1051
1051
  const t = Sa[e];
1052
- We.push(t / Math.pow(2, 8 - a)), ra.push(as[e] + a);
1052
+ We.push(t / Math.pow(2, 8 - a)), ra.push(is[e] + a);
1053
1053
  }
1054
- const Rt = [32, 2e3], Ca = We.filter((a, e) => We[e] > Rt[0] && We[e] < Rt[1]), is = ra.filter((a, e) => We[e] > Rt[0] && We[e] < Rt[1]);
1054
+ const zt = [32, 2e3], Ca = We.filter((a, e) => We[e] > zt[0] && We[e] < zt[1]), ss = ra.filter((a, e) => We[e] > zt[0] && We[e] < zt[1]);
1055
1055
  class lt {
1056
1056
  /**
1057
1057
  * Retrieves frequency domain data from an AnalyserNode adjusted to a decibel range
@@ -1069,21 +1069,21 @@ class lt {
1069
1069
  const f = t / 2, p = 1 / i.length * f;
1070
1070
  let v, k, w;
1071
1071
  if (s === "music" || s === "voice") {
1072
- const I = s === "voice" ? Ca : We, M = Array(I.length).fill(r);
1072
+ const E = s === "voice" ? Ca : We, M = Array(E.length).fill(r);
1073
1073
  for (let L = 0; L < i.length; L++) {
1074
- const C = L * p, Z = i[L];
1075
- for (let U = I.length - 1; U >= 0; U--)
1076
- if (C > I[U]) {
1077
- M[U] = Math.max(M[U], Z);
1074
+ const C = L * p, K = i[L];
1075
+ for (let U = E.length - 1; U >= 0; U--)
1076
+ if (C > E[U]) {
1077
+ M[U] = Math.max(M[U], K);
1078
1078
  break;
1079
1079
  }
1080
1080
  }
1081
- v = M, k = s === "voice" ? Ca : We, w = s === "voice" ? is : ra;
1081
+ v = M, k = s === "voice" ? Ca : We, w = s === "voice" ? ss : ra;
1082
1082
  } else
1083
- v = Array.from(i), k = v.map((I, M) => p * M), w = k.map((I) => `${I.toFixed(2)} Hz`);
1084
- const _ = v.map((I) => Math.max(
1083
+ v = Array.from(i), k = v.map((E, M) => p * M), w = k.map((E) => `${E.toFixed(2)} Hz`);
1084
+ const _ = v.map((E) => Math.max(
1085
1085
  0,
1086
- Math.min((I - r) / (o - r), 1)
1086
+ Math.min((E - r) / (o - r), 1)
1087
1087
  ));
1088
1088
  return {
1089
1089
  values: new Float32Array(_),
@@ -1154,7 +1154,7 @@ class lt {
1154
1154
  }
1155
1155
  }
1156
1156
  globalThis.AudioAnalysis = lt;
1157
- const ss = `
1157
+ const ns = `
1158
1158
  class StreamProcessor extends AudioWorkletProcessor {
1159
1159
  constructor() {
1160
1160
  super();
@@ -1243,17 +1243,17 @@ class StreamProcessor extends AudioWorkletProcessor {
1243
1243
  }
1244
1244
 
1245
1245
  registerProcessor('stream_processor', StreamProcessor);
1246
- `, ns = new Blob([ss], {
1246
+ `, rs = new Blob([ns], {
1247
1247
  type: "application/javascript"
1248
- }), rs = URL.createObjectURL(ns), os = rs;
1249
- class cs {
1248
+ }), os = URL.createObjectURL(rs), cs = os;
1249
+ class ls {
1250
1250
  /**
1251
1251
  * Creates a new WavStreamPlayer instance
1252
1252
  * @param {{sampleRate?: number}} options
1253
1253
  * @returns {WavStreamPlayer}
1254
1254
  */
1255
1255
  constructor({ sampleRate: e = 44100, onPlaybackEnded: t = null } = {}) {
1256
- this.scriptSrc = os, this.sampleRate = e, this.context = null, this.stream = null, this.analyser = null, this.trackSampleOffsets = {}, this.interruptedTrackIds = {}, this.onPlaybackEnded = t && typeof t == "function" ? t : null;
1256
+ this.scriptSrc = cs, this.sampleRate = e, this.context = null, this.stream = null, this.analyser = null, this.trackSampleOffsets = {}, this.interruptedTrackIds = {}, this.onPlaybackEnded = t && typeof t == "function" ? t : null;
1257
1257
  }
1258
1258
  /**
1259
1259
  * Connects the audio context and enables output to speakers
@@ -1348,8 +1348,8 @@ class cs {
1348
1348
  return this.getTrackSampleOffset(!0);
1349
1349
  }
1350
1350
  }
1351
- globalThis.WavStreamPlayer = cs;
1352
- const ls = URL.createObjectURL(
1351
+ globalThis.WavStreamPlayer = ls;
1352
+ const ds = URL.createObjectURL(
1353
1353
  new Blob([`
1354
1354
  class UpsampleStreamPCM extends AudioWorkletProcessor {
1355
1355
  constructor(options) {
@@ -1546,10 +1546,10 @@ class Xa {
1546
1546
  this.inputSampleRate = e, this.onPlaybackEnded = typeof t == "function" ? t : null, this.debug = !!i;
1547
1547
  const p = navigator.userAgent || "", v = /iP(hone|ad|od)/.test(p), k = /CriOS/.test(p), w = /FxiOS/.test(p), _ = /EdgiOS/.test(p), P = /Safari/.test(p) && !/Chrome|Chromium|Edg/.test(p);
1548
1548
  this._isSafariMobile = v && P && !k && !w && !_;
1549
- const I = !!(navigator.userAgentData && typeof navigator.userAgentData.mobile == "boolean" && navigator.userAgentData.mobile), M = /Android|iPhone|iPod|Mobile/.test(p), L = (() => {
1550
- const Z = navigator.platform || "";
1551
- return /iPad/.test(p) || Z === "MacIntel" && navigator.maxTouchPoints > 1;
1552
- })(), C = I || M || L;
1549
+ const E = !!(navigator.userAgentData && typeof navigator.userAgentData.mobile == "boolean" && navigator.userAgentData.mobile), M = /Android|iPhone|iPod|Mobile/.test(p), L = (() => {
1550
+ const K = navigator.platform || "";
1551
+ return /iPad/.test(p) || K === "MacIntel" && navigator.maxTouchPoints > 1;
1552
+ })(), C = E || M || L;
1553
1553
  this._firstTurnRampInMs = s ?? (this._isSafariMobile ? 140 : 0), this._primeMs = r ?? (this._isSafariMobile ? 220 : 0), this._requireGestureToUnlock = o != null ? !!o : !!this._isSafariMobile, this._enableLoopbackRef = f != null ? !!f : !!C, this.context = null, this.analyser = null, this._worklet = null, this._audibleGain = null, this._renderDest = null, this._pcSend = null, this._pcRecv = null, this._firstTurn = !0, this._unlocked = !this._requireGestureToUnlock, this.trackSampleOffsets = {}, this.interruptedTrackIds = {}, this._onGestureUnlock = this._onGestureUnlock.bind(this);
1554
1554
  }
1555
1555
  _log(...e) {
@@ -1566,7 +1566,7 @@ class Xa {
1566
1566
  /** Build the WebAudio graph. Always audible via direct path; loopback ref is optional and non-critical. */
1567
1567
  async connect() {
1568
1568
  if (this.context) return !0;
1569
- if (this.context = new (window.AudioContext || window.webkitAudioContext)({ latencyHint: "interactive" }), this.context.state === "suspended" && await this.context.resume(), await this.context.audioWorklet.addModule(ls), this._worklet = new AudioWorkletNode(this.context, "upsample-stream-pcm", {
1569
+ if (this.context = new (window.AudioContext || window.webkitAudioContext)({ latencyHint: "interactive" }), this.context.state === "suspended" && await this.context.resume(), await this.context.audioWorklet.addModule(ds), this._worklet = new AudioWorkletNode(this.context, "upsample-stream-pcm", {
1570
1570
  processorOptions: {
1571
1571
  sourceSampleRate: this.inputSampleRate,
1572
1572
  prerollSrc: Math.round(this.inputSampleRate * 0.02)
@@ -1695,7 +1695,7 @@ class Xa {
1695
1695
  }
1696
1696
  }
1697
1697
  globalThis.WavStreamPlayerV2 = Xa;
1698
- const ds = `
1698
+ const fs = `
1699
1699
  class AudioProcessor extends AudioWorkletProcessor {
1700
1700
 
1701
1701
  constructor() {
@@ -1902,17 +1902,17 @@ class AudioProcessor extends AudioWorkletProcessor {
1902
1902
  }
1903
1903
 
1904
1904
  registerProcessor('audio_processor', AudioProcessor);
1905
- `, fs = new Blob([ds], {
1905
+ `, hs = new Blob([fs], {
1906
1906
  type: "application/javascript"
1907
- }), hs = URL.createObjectURL(fs), bs = hs;
1908
- class us {
1907
+ }), bs = URL.createObjectURL(hs), us = bs;
1908
+ class ps {
1909
1909
  /**
1910
1910
  * Create a new WavRecorder instance
1911
1911
  * @param {{sampleRate?: number, outputToSpeakers?: boolean, debug?: boolean}} [options]
1912
1912
  * @returns {WavRecorder}
1913
1913
  */
1914
1914
  constructor({ sampleRate: e = 44100, outputToSpeakers: t = !1, debug: i = !1 } = {}) {
1915
- this.scriptSrc = bs, this.sampleRate = e, this.outputToSpeakers = t, this.debug = !!i, this._deviceChangeCallback = null, this._devices = [], this.stream = null, this.processor = null, this.source = null, this.node = null, this.recording = !1, this._lastEventId = 0, this.eventReceipts = {}, this.eventTimeout = 5e3, this._chunkProcessor = () => {
1915
+ this.scriptSrc = us, this.sampleRate = e, this.outputToSpeakers = t, this.debug = !!i, this._deviceChangeCallback = null, this._devices = [], this.stream = null, this.processor = null, this.source = null, this.node = null, this.recording = !1, this._lastEventId = 0, this.eventReceipts = {}, this.eventTimeout = 5e3, this._chunkProcessor = () => {
1916
1916
  }, this._chunkProcessorSize = void 0, this._chunkProcessorBuffer = {
1917
1917
  raw: new ArrayBuffer(0),
1918
1918
  mono: new ArrayBuffer(0)
@@ -1952,13 +1952,13 @@ class us {
1952
1952
  throw new Error('Must specify "fromSampleRate" when reading from Float32Array, In16Array or Array');
1953
1953
  if (i < 3e3)
1954
1954
  throw new Error('Minimum "fromSampleRate" is 3000 (3kHz)');
1955
- w || (w = Ke.floatTo16BitPCM(k));
1955
+ w || (w = Ze.floatTo16BitPCM(k));
1956
1956
  const _ = {
1957
1957
  bitsPerSample: 16,
1958
1958
  channels: [k],
1959
1959
  data: w
1960
1960
  };
1961
- o = new Ke().pack(i, _).blob, r = await o.arrayBuffer();
1961
+ o = new Ze().pack(i, _).blob, r = await o.arrayBuffer();
1962
1962
  }
1963
1963
  const f = await s.decodeAudioData(r), p = f.getChannelData(0), v = URL.createObjectURL(o);
1964
1964
  return {
@@ -2131,8 +2131,8 @@ class us {
2131
2131
  if (this._chunkProcessorSize) {
2132
2132
  const w = this._chunkProcessorBuffer;
2133
2133
  this._chunkProcessorBuffer = {
2134
- raw: Ke.mergeBuffers(w.raw, k.raw),
2135
- mono: Ke.mergeBuffers(w.mono, k.mono)
2134
+ raw: Ze.mergeBuffers(w.raw, k.raw),
2135
+ mono: Ze.mergeBuffers(w.mono, k.mono)
2136
2136
  }, this._chunkProcessorBuffer.mono.byteLength >= this._chunkProcessorSize && (this._chunkProcessor(this._chunkProcessorBuffer), this._chunkProcessorBuffer = {
2137
2137
  raw: new ArrayBuffer(0),
2138
2138
  mono: new ArrayBuffer(0)
@@ -2218,7 +2218,7 @@ use only for debugging`), o.connect(t.destination)), this.source = i, this.node
2218
2218
  throw new Error("Currently recording: please call .pause() first, or call .save(true) to force");
2219
2219
  this.log("Exporting ...");
2220
2220
  const t = await this._event("export");
2221
- return new Ke().pack(this.sampleRate, t.audio);
2221
+ return new Ze().pack(this.sampleRate, t.audio);
2222
2222
  }
2223
2223
  /**
2224
2224
  * Ends the current recording session and saves the result
@@ -2230,7 +2230,7 @@ use only for debugging`), o.connect(t.destination)), this.source = i, this.node
2230
2230
  const e = this.processor;
2231
2231
  this.log("Stopping ..."), await this._event("stop"), this.recording = !1, this.stream.getTracks().forEach((o) => o.stop()), this.log("Exporting ...");
2232
2232
  const i = await this._event("export", {}, e);
2233
- return this.processor.disconnect(), this.source.disconnect(), this.node.disconnect(), this.analyser.disconnect(), this.stream = null, this.processor = null, this.source = null, this.node = null, new Ke().pack(this.sampleRate, i.audio);
2233
+ return this.processor.disconnect(), this.source.disconnect(), this.node.disconnect(), this.analyser.disconnect(), this.stream = null, this.processor = null, this.source = null, this.node = null, new Ze().pack(this.sampleRate, i.audio);
2234
2234
  }
2235
2235
  /**
2236
2236
  * Performs a full cleanup of WavRecorder instance
@@ -2241,8 +2241,8 @@ use only for debugging`), o.connect(t.destination)), this.source = i, this.node
2241
2241
  return this.listenForDeviceChange(null), this.processor && await this.end(), !0;
2242
2242
  }
2243
2243
  }
2244
- globalThis.WavRecorder = us;
2245
- const ps = URL.createObjectURL(
2244
+ globalThis.WavRecorder = ps;
2245
+ const gs = URL.createObjectURL(
2246
2246
  new Blob([`
2247
2247
  class DownsampleRecorder extends AudioWorkletProcessor {
2248
2248
  constructor(options) {
@@ -2463,7 +2463,7 @@ class ot {
2463
2463
  echoCancellationType: this.captureInfo.trackSettings?.echoCancellationType ?? null
2464
2464
  }, this._log("Granted track settings:", this.captureInfo.trackSettings), this.audioCtx = new (window.AudioContext || window.webkitAudioContext)({
2465
2465
  latencyHint: "interactive"
2466
- }), this.captureInfo.contextSampleRate = this.audioCtx.sampleRate, this.source = this.audioCtx.createMediaStreamSource(this.stream), await this.audioCtx.audioWorklet.addModule(ps);
2466
+ }), this.captureInfo.contextSampleRate = this.audioCtx.sampleRate, this.source = this.audioCtx.createMediaStreamSource(this.stream), await this.audioCtx.audioWorklet.addModule(gs);
2467
2467
  const s = Math.round(this.targetSampleRate * this.chunkMs / 1e3);
2468
2468
  return this.node = new AudioWorkletNode(this.audioCtx, "downsample-recorder", {
2469
2469
  processorOptions: {
@@ -2539,7 +2539,7 @@ class ot {
2539
2539
  }
2540
2540
  }
2541
2541
  globalThis.WavRecorderV2 = ot;
2542
- class gs {
2542
+ class ms {
2543
2543
  constructor(e = {}) {
2544
2544
  this.sr = Math.max(8e3, e.sampleRate || 24e3), this.floor = Aa(e.floor ?? 0.12), this.attackSamples = Ce(e.attackMs ?? 12, this.sr), this.releaseSamples = Ce(e.releaseMs ?? 150, this.sr), this.escapeAttackSamples = Ce(e.escapeAttackMs ?? 10, this.sr), this.defaultGuardSamples = Ce(e.defaultGuardMs ?? 0, this.sr), this.gain = 1, this.target = 1, this.rampRemain = 0, this._step = 0, this.duckActive = !1, this.guardRemain = 0, this.vadEnabled = e.vadEnabled !== !1;
2545
2545
  const t = Math.max(2, e.vadFastMs ?? 10), i = Math.max(t + 20, e.vadSlowMs ?? 250);
@@ -2579,19 +2579,19 @@ class gs {
2579
2579
  const i = new Int16Array(t);
2580
2580
  let s = this.gain, r = this._step, o = this.rampRemain, f = this.vadFast, p = this.vadSlow, v = this._speechCount, k = this._hangRemain, w = this._speaking;
2581
2581
  const _ = this._eps, P = this.vadRatio;
2582
- for (let I = 0; I < t; I++) {
2582
+ for (let E = 0; E < t; E++) {
2583
2583
  this.guardRemain > 0 && this.guardRemain--;
2584
- const M = e[I] / 32768, L = M * M;
2584
+ const M = e[E] / 32768, L = M * M;
2585
2585
  f = f + (1 - this.alphaFast) * (L - f), p = p + (1 - this.alphaSlow) * (L - p), this.vadEnabled && (f / (p + _) >= P ? v < this.vadAttackSamples && v++ : v = 0, v >= this.vadAttackSamples ? (w = !0, k = this.vadHangSamples) : k > 0 ? (w = !0, k--) : w = !1), w && this._shieldActive && (this._shieldActive = !1, this.target = 1, o = this.escapeAttackSamples, r = o > 0 ? (1 - s) / o : 0);
2586
- let C = 1, Z = 0, U = !1;
2586
+ let C = 1, K = 0, U = !1;
2587
2587
  if (this.duckActive) {
2588
2588
  const te = this.guardRemain > 0;
2589
- te && this._shieldActive && !w ? (U = this._shieldHardMute, C = this._shieldHardMute ? 0 : this._shieldFloor, Z = this.attackSamples, this.guardRemain === 0 && (this._shieldActive = !1, this._shieldHardMute = !1)) : w ? (C = 1, Z = this.escapeAttackSamples) : te ? (C = this.floor, Z = this.attackSamples) : (C = 1, Z = this.releaseSamples);
2589
+ te && this._shieldActive && !w ? (U = this._shieldHardMute, C = this._shieldHardMute ? 0 : this._shieldFloor, K = this.attackSamples, this.guardRemain === 0 && (this._shieldActive = !1, this._shieldHardMute = !1)) : w ? (C = 1, K = this.escapeAttackSamples) : te ? (C = this.floor, K = this.attackSamples) : (C = 1, K = this.releaseSamples);
2590
2590
  } else
2591
- C = 1, Z = this.releaseSamples;
2592
- Math.abs(C - this.target) > 1e-4 && (this.target = C, o = Z, r = o > 0 ? (C - s) / o : 0, o === 0 && (s = C)), o > 0 && (s += r, o--, o === 0 && (s = this.target, r = 0));
2593
- let G;
2594
- U && !w ? G = 0 : (G = e[I] * s, G > 32767 ? G = 32767 : G < -32768 && (G = -32768)), i[I] = G | 0;
2591
+ C = 1, K = this.releaseSamples;
2592
+ Math.abs(C - this.target) > 1e-4 && (this.target = C, o = K, r = o > 0 ? (C - s) / o : 0, o === 0 && (s = C)), o > 0 && (s += r, o--, o === 0 && (s = this.target, r = 0));
2593
+ let X;
2594
+ U && !w ? X = 0 : (X = e[E] * s, X > 32767 ? X = 32767 : X < -32768 && (X = -32768)), i[E] = X | 0;
2595
2595
  }
2596
2596
  return this.gain = s, this._step = r, this.rampRemain = o, this.vadFast = f, this.vadSlow = p, this._speechCount = v, this._hangRemain = k, this._speaking = w, i;
2597
2597
  }
@@ -2612,7 +2612,7 @@ function Ta(a, e) {
2612
2612
  const t = Math.max(1, a * e / 1e3);
2613
2613
  return Math.exp(-1 / t);
2614
2614
  }
2615
- class ms {
2615
+ class ys {
2616
2616
  /**
2617
2617
  * @param {object} opts
2618
2618
  * @param {number} opts.sampleRate - Hz of your PCM (e.g., 24000)
@@ -2688,24 +2688,24 @@ class ms {
2688
2688
  if (k <= 0)
2689
2689
  return this._float32ToInt16(t);
2690
2690
  const w = this.preEmphasis > 0, _ = w ? this._preEmphasize(r, this.preEmphasis, "mic") : r, P = w ? this._preEmphasize(p, this.preEmphasis, "pb") : p;
2691
- let I = 0;
2691
+ let E = 0;
2692
2692
  for (let ae = 0; ae < o; ae++) {
2693
2693
  const he = _[ae];
2694
- I += he * he;
2694
+ E += he * he;
2695
2695
  }
2696
- I = Math.sqrt(I) + 1e-12;
2697
- const M = this.sr / this.ds, L = (this.baseLatencySec + this.outputLatencySec) * 1e3 + this.latencyCompMs, C = Math.max(0, Math.round(L * M / 1e3)), Z = Math.max(1, Math.round(this.windowMs * M / 1e3));
2698
- let U = 0, G = k;
2699
- C > 0 && (U = Math.max(0, Math.min(k, C - Z)), G = Math.max(U, Math.min(k, C + Z)));
2696
+ E = Math.sqrt(E) + 1e-12;
2697
+ const M = this.sr / this.ds, L = (this.baseLatencySec + this.outputLatencySec) * 1e3 + this.latencyCompMs, C = Math.max(0, Math.round(L * M / 1e3)), K = Math.max(1, Math.round(this.windowMs * M / 1e3));
2698
+ let U = 0, X = k;
2699
+ C > 0 && (U = Math.max(0, Math.min(k, C - K)), X = Math.max(U, Math.min(k, C + K)));
2700
2700
  const te = Math.max(1, Math.floor(this.hop / this.ds));
2701
2701
  let He = -1;
2702
- for (let ae = U; ae <= G; ae += te) {
2703
- let he = 0, pe = 0;
2702
+ for (let ae = U; ae <= X; ae += te) {
2703
+ let he = 0, ge = 0;
2704
2704
  for (let V = 0; V < o; V++) {
2705
2705
  const $e = _[V], Pe = P[ae + V];
2706
- he += $e * Pe, pe += Pe * Pe;
2706
+ he += $e * Pe, ge += Pe * Pe;
2707
2707
  }
2708
- const F = I * (Math.sqrt(pe) + 1e-12), j = F > 0 ? he / F : 0;
2708
+ const F = E * (Math.sqrt(ge) + 1e-12), j = F > 0 ? he / F : 0;
2709
2709
  if (j > He && (He = j), He > Math.min(0.98, this.threshold + 0.25)) break;
2710
2710
  }
2711
2711
  if (He >= this.threshold) {
@@ -2767,7 +2767,7 @@ class ms {
2767
2767
  return o;
2768
2768
  }
2769
2769
  }
2770
- class ys {
2770
+ class vs {
2771
2771
  /**
2772
2772
  * @param {object} opts
2773
2773
  * @param {number} opts.sampleRate - PCM sample rate (e.g., 24000)
@@ -2856,8 +2856,8 @@ class ys {
2856
2856
  let p = -1;
2857
2857
  for (let v = 0; v <= r; v += f) {
2858
2858
  let k = 0, w = 0;
2859
- for (let I = 0; I < i; I++) {
2860
- const M = t[I], L = s[v + I];
2859
+ for (let E = 0; E < i; E++) {
2860
+ const M = t[E], L = s[v + E];
2861
2861
  k += M * L, w += L * L;
2862
2862
  }
2863
2863
  const _ = o * (Math.sqrt(w) + 1e-12), P = _ > 0 ? k / _ : 0;
@@ -2904,7 +2904,7 @@ class ys {
2904
2904
  return o;
2905
2905
  }
2906
2906
  }
2907
- class vs {
2907
+ class ws {
2908
2908
  /**
2909
2909
  * @param {object} opts
2910
2910
  * @param {number} opts.sampleRate - Mic PCM sample rate (e.g., 24000)
@@ -2949,7 +2949,7 @@ class vs {
2949
2949
  }
2950
2950
  const Ue = Je.noConflict();
2951
2951
  Ue.setLevel("info");
2952
- class pt extends ts {
2952
+ class pt extends as {
2953
2953
  constructor(e = {}) {
2954
2954
  super({ name: "WebAudioProcessorV2" }), this.options = e, this.muted = !1, this.audioRecorder = new ot({
2955
2955
  targetSampleRate: 24e3,
@@ -2961,14 +2961,14 @@ class pt extends ts {
2961
2961
  primeMs: 200,
2962
2962
  // keep or remove; it’s harmless
2963
2963
  debug: !!e.debug
2964
- }), this.audioRecorderAnalyzer = null, this.audioPlayerAnalyzer = null, this.firstTurnDropMs = e.firstTurnDropMs ?? 1500, this.firstTurnGate = new vs({
2964
+ }), this.audioRecorderAnalyzer = null, this.audioPlayerAnalyzer = null, this.firstTurnDropMs = e.firstTurnDropMs ?? 1500, this.firstTurnGate = new ws({
2965
2965
  sampleRate: 24e3,
2966
2966
  windowMs: this.firstTurnDropMs,
2967
2967
  partialPass: !0,
2968
2968
  // pass remainder of crossing frame
2969
2969
  hardDrop: !0
2970
2970
  // set true if you prefer simpler "drop whole frame"
2971
- }), this.ducker = new gs({
2971
+ }), this.ducker = new ms({
2972
2972
  sampleRate: 24e3,
2973
2973
  floor: 0.12,
2974
2974
  attackMs: 12,
@@ -2983,7 +2983,7 @@ class pt extends ts {
2983
2983
  vadSlowMs: 250,
2984
2984
  vadAttackMs: 18,
2985
2985
  vadHangMs: 120
2986
- }), this.mixMinus = new ms({
2986
+ }), this.mixMinus = new ys({
2987
2987
  sampleRate: 24e3,
2988
2988
  bufferMs: 1e3,
2989
2989
  threshold: 0.3,
@@ -2992,7 +2992,7 @@ class pt extends ts {
2992
2992
  hop: 64,
2993
2993
  downsampleFactor: 3,
2994
2994
  minCorrLenMs: 15
2995
- }), this.mixMinusSmooth = new ys({
2995
+ }), this.mixMinusSmooth = new vs({
2996
2996
  sampleRate: 24e3,
2997
2997
  bufferMs: 800,
2998
2998
  lowThresh: 0.25,
@@ -3167,6 +3167,220 @@ class pt extends ts {
3167
3167
  }
3168
3168
  }
3169
3169
  globalThis.WebAudioProcessorV2 = pt;
3170
+ var xs = Object.defineProperty, ks = Object.getOwnPropertyDescriptor, st = (a, e, t, i) => {
3171
+ for (var s = i > 1 ? void 0 : i ? ks(e, t) : e, r = a.length - 1, o; r >= 0; r--)
3172
+ (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
3173
+ return i && s && xs(e, t, s), s;
3174
+ };
3175
+ const Mt = "cb-toast-outlet", Ia = "cb-toast-outlet-style";
3176
+ function _s() {
3177
+ let a = document.getElementById(Mt);
3178
+ if (a || (a = document.createElement("div"), a.id = Mt, document.body.appendChild(a)), !document.getElementById(Ia)) {
3179
+ const e = document.createElement("style");
3180
+ e.id = Ia, e.textContent = `
3181
+ /* Global outlet that holds all toasts */
3182
+ #${Mt} {
3183
+ position: fixed;
3184
+ right: 40px;
3185
+ bottom: 55px;
3186
+ display: flex;
3187
+ flex-direction: column;
3188
+ gap: 10px;
3189
+ z-index: 2147483646; /* below very-top overlays if any */
3190
+ align-items: flex-end;
3191
+ pointer-events: none; /* clicks pass through except on toast itself */
3192
+ }
3193
+ @media (max-width: 600px) {
3194
+ #${Mt} {
3195
+ left: 8px;
3196
+ right: 8px;
3197
+ align-items: stretch; /* stretch toasts to full width on mobile */
3198
+ }
3199
+ }
3200
+ `, document.head.appendChild(e);
3201
+ }
3202
+ return a;
3203
+ }
3204
+ function Ya(a) {
3205
+ const e = _s(), t = document.createElement("cb-toast");
3206
+ 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;
3207
+ }
3208
+ let qe = class extends Fe {
3209
+ constructor() {
3210
+ 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 = {
3211
+ success: "✓",
3212
+ danger: "❌",
3213
+ warning: "⚠️",
3214
+ info: "ℹ️",
3215
+ neutral: "💬",
3216
+ primary: "⭐"
3217
+ };
3218
+ }
3219
+ connectedCallback() {
3220
+ super.connectedCallback(), queueMicrotask(() => this.open());
3221
+ }
3222
+ disconnectedCallback() {
3223
+ super.disconnectedCallback(), this._clearTimer();
3224
+ }
3225
+ render() {
3226
+ const a = ["toast", this.variant, this._open ? "open" : "", this._closing ? "closing" : ""].filter(Boolean).join(" "), e = this.icon || this._defaultIcons[this.variant] || this._defaultIcons.success;
3227
+ return u`
3228
+ <div
3229
+ class=${a}
3230
+ role="status"
3231
+ aria-live=${this.ariaLive}
3232
+ >
3233
+ ${u`<span class="icon" aria-hidden="true">${this._renderIcon(e)}</span>`}
3234
+ <div class="msg">
3235
+ ${this.message ? u`${this.message}` : u`<slot></slot>`}
3236
+ </div>
3237
+ ${this.closeable ? u`<button class="close" @click=${this.close} aria-label="Close">×</button>` : Ae}
3238
+ </div>
3239
+ `;
3240
+ }
3241
+ /** Programmatic API */
3242
+ open() {
3243
+ this._open || (this._open = !0, this.requestUpdate(), this.duration > 0 && (this._timer = window.setTimeout(() => this.close(), this.duration)));
3244
+ }
3245
+ async close() {
3246
+ this._closing || (this._closing = !0, this.requestUpdate(), await new Promise((a) => setTimeout(() => a(), 200)), this.remove());
3247
+ }
3248
+ _clearTimer() {
3249
+ this._timer && (clearTimeout(this._timer), this._timer = void 0);
3250
+ }
3251
+ _renderIcon(a) {
3252
+ return a.trim().startsWith("<") ? u`${G(a)}` : a;
3253
+ }
3254
+ };
3255
+ qe.styles = J`
3256
+ :host {
3257
+ display: block;
3258
+ pointer-events: auto; /* receive pointer events within toast */
3259
+ contain: content;
3260
+ font-size: var(--enegelai-bot-base-font-size, 16px);
3261
+ font-family: system-ui, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';
3262
+ }
3263
+
3264
+ .toast {
3265
+ --_bg: var(--sl-color-success-600, #2f9e44);
3266
+ --_fg: #fff;
3267
+ --_border: transparent;
3268
+
3269
+ display: grid;
3270
+ grid-template-columns: auto 1fr auto;
3271
+ align-items: center;
3272
+ gap: 10px;
3273
+
3274
+ font-size: 0.7em;
3275
+ font-weight: 400;
3276
+
3277
+ max-width: min(420px, 92vw);
3278
+ padding: 16px 20px;
3279
+ border-radius: 12px;
3280
+ border: 1px solid var(--_border);
3281
+ background: var(--_bg);
3282
+ background: color-mix(in srgb, var(--_bg) 85%, transparent);
3283
+ color: var(--_fg);
3284
+ box-shadow:
3285
+ 0 10px 15px -3px rgba(0,0,0,.1),
3286
+ 0 4px 6px -4px rgba(0,0,0,.08);
3287
+
3288
+ opacity: 0;
3289
+ transform: translateY(6px);
3290
+ transition: opacity 1s ease, transform 1s ease, filter 1s ease;
3291
+ }
3292
+
3293
+ .toast.open {
3294
+ opacity: 1;
3295
+ transform: translateY(0);
3296
+ }
3297
+
3298
+ .toast.closing {
3299
+ opacity: 0;
3300
+ transform: translateY(6px);
3301
+ filter: saturate(.9) brightness(.98);
3302
+ }
3303
+
3304
+ .icon {
3305
+ display: inline-flex;
3306
+ align-items: center;
3307
+ justify-content: center;
3308
+ width: 22px;
3309
+ height: 22px;
3310
+ line-height: 1;
3311
+ font-size: 22px;
3312
+ user-select: none;
3313
+ background: transparent; /* ensure transparent background */
3314
+ }
3315
+
3316
+ .msg {
3317
+ font-size: 1.5em;
3318
+ line-height: 1.25;
3319
+ word-break: break-word;
3320
+ }
3321
+
3322
+ .close {
3323
+ appearance: none;
3324
+ background: transparent;
3325
+ border: none;
3326
+ color: inherit;
3327
+ font: inherit;
3328
+ font-size: 20px;
3329
+ cursor: pointer;
3330
+ opacity: .9;
3331
+ width: 28px;
3332
+ height: 28px;
3333
+ border-radius: 50%;
3334
+ display: inline-flex;
3335
+ align-items: center;
3336
+ justify-content: center;
3337
+ transition: background 1s ease, transform 1s ease;
3338
+ }
3339
+ .close:hover { background: color-mix(in srgb, #000 10%, transparent); }
3340
+ .close:active { transform: scale(.94); }
3341
+ .close:focus-visible {
3342
+ outline: none;
3343
+ box-shadow: 0 0 0 3px color-mix(in srgb, #fff 60%, transparent);
3344
+ }
3345
+
3346
+ /* Variants — keep parity with your button palette */
3347
+ .toast.success { --_bg: var(--sl-color-success-600, #2f9e44); --_fg: #fff; }
3348
+ .toast.info { --_bg: var(--sl-color-info-600, #0b7285); --_fg: #fff; }
3349
+ .toast.warning { --_bg: var(--sl-color-warning-600, #f08c00); --_fg: #212529; }
3350
+ .toast.danger { --_bg: var(--sl-color-danger-600, #c92a2a); --_fg: #fff; }
3351
+ .toast.primary { --_bg: var(--sl-color-primary-600, hsl(200.4 98% 39.4%)); --_fg: #fff; }
3352
+ .toast.neutral {
3353
+ --_bg: var(--sl-color-neutral-50, hsl(0 0% 97.5%));
3354
+ --_fg: var(--sl-color-neutral-900, hsl(240 5.9% 10%));
3355
+ --_border: var(--sl-color-neutral-300, #d1d5db);
3356
+ }
3357
+
3358
+ /* Mobile fine-tuning: give a bit more padding */
3359
+ @media (max-width: 600px) {
3360
+ .toast { padding: 12px; }
3361
+ }
3362
+ `;
3363
+ st([
3364
+ x({ type: String })
3365
+ ], qe.prototype, "message", 2);
3366
+ st([
3367
+ x({ type: String })
3368
+ ], qe.prototype, "variant", 2);
3369
+ st([
3370
+ x({ type: Number })
3371
+ ], qe.prototype, "duration", 2);
3372
+ st([
3373
+ x({ type: Boolean })
3374
+ ], qe.prototype, "closeable", 2);
3375
+ st([
3376
+ x({ type: String })
3377
+ ], qe.prototype, "icon", 2);
3378
+ st([
3379
+ x({ type: String })
3380
+ ], qe.prototype, "ariaLive", 2);
3381
+ qe = st([
3382
+ Z("cb-toast")
3383
+ ], qe);
3170
3384
  function Q(a) {
3171
3385
  return a != null && typeof a == "object" && a["@@functional/placeholder"] === !0;
3172
3386
  }
@@ -3175,7 +3389,7 @@ function tt(a) {
3175
3389
  return arguments.length === 0 || Q(t) ? e : a.apply(this, arguments);
3176
3390
  };
3177
3391
  }
3178
- function Ze(a) {
3392
+ function Ke(a) {
3179
3393
  return function e(t, i) {
3180
3394
  switch (arguments.length) {
3181
3395
  case 0:
@@ -3193,29 +3407,29 @@ function Ze(a) {
3193
3407
  }
3194
3408
  };
3195
3409
  }
3196
- function ws(a) {
3410
+ function Ss(a) {
3197
3411
  return function e(t, i, s) {
3198
3412
  switch (arguments.length) {
3199
3413
  case 0:
3200
3414
  return e;
3201
3415
  case 1:
3202
- return Q(t) ? e : Ze(function(r, o) {
3416
+ return Q(t) ? e : Ke(function(r, o) {
3203
3417
  return a(t, r, o);
3204
3418
  });
3205
3419
  case 2:
3206
- return Q(t) && Q(i) ? e : Q(t) ? Ze(function(r, o) {
3420
+ return Q(t) && Q(i) ? e : Q(t) ? Ke(function(r, o) {
3207
3421
  return a(r, i, o);
3208
- }) : Q(i) ? Ze(function(r, o) {
3422
+ }) : Q(i) ? Ke(function(r, o) {
3209
3423
  return a(t, r, o);
3210
3424
  }) : tt(function(r) {
3211
3425
  return a(t, i, r);
3212
3426
  });
3213
3427
  default:
3214
- return Q(t) && Q(i) && Q(s) ? e : Q(t) && Q(i) ? Ze(function(r, o) {
3428
+ return Q(t) && Q(i) && Q(s) ? e : Q(t) && Q(i) ? Ke(function(r, o) {
3215
3429
  return a(r, o, s);
3216
- }) : Q(t) && Q(s) ? Ze(function(r, o) {
3430
+ }) : Q(t) && Q(s) ? Ke(function(r, o) {
3217
3431
  return a(r, i, o);
3218
- }) : Q(i) && Q(s) ? Ze(function(r, o) {
3432
+ }) : Q(i) && Q(s) ? Ke(function(r, o) {
3219
3433
  return a(t, r, o);
3220
3434
  }) : Q(t) ? tt(function(r) {
3221
3435
  return a(r, i, s);
@@ -3227,45 +3441,45 @@ function ws(a) {
3227
3441
  }
3228
3442
  };
3229
3443
  }
3230
- const xs = Number.isInteger || function(e) {
3444
+ const Cs = Number.isInteger || function(e) {
3231
3445
  return e << 0 === e;
3232
3446
  };
3233
- function ks(a, e) {
3447
+ function As(a, e) {
3234
3448
  var t = a < 0 ? e.length + a : a;
3235
3449
  return e[t];
3236
3450
  }
3237
- var _s = /* @__PURE__ */ Ze(function(e, t) {
3451
+ var Ms = /* @__PURE__ */ Ke(function(e, t) {
3238
3452
  return t == null || t !== t ? e : t;
3239
3453
  });
3240
- function Ss(a, e) {
3454
+ function Ts(a, e) {
3241
3455
  for (var t = e, i = 0; i < a.length; i += 1) {
3242
3456
  if (t == null)
3243
3457
  return;
3244
3458
  var s = a[i];
3245
- xs(s) ? t = ks(s, t) : t = t[s];
3459
+ Cs(s) ? t = As(s, t) : t = t[s];
3246
3460
  }
3247
3461
  return t;
3248
3462
  }
3249
- var Ut = /* @__PURE__ */ ws(function(e, t, i) {
3250
- return _s(e, Ss(t, i));
3463
+ var Wt = /* @__PURE__ */ Ss(function(e, t, i) {
3464
+ return Ms(e, Ts(t, i));
3251
3465
  });
3252
- const Cs = "fffbd0c40003a861a6f64deb05ce8fbd1dc1ee6979000bf3230f3195138b950cbe3649439256307747d31c26065d09cfae70d799f0a043c6a90008c0101188082314680d008619c9079b61dc806a921a220095277a60d4131e44143d53814e10f4d06ba6491eb478900a8d59016632a23e0fa358875c770146cc650c1c499dcb9b0965d7500106c321427219428febbdafb2b5d76979a75ae40018d025f96f71bad4b0257666051808e5b74c34bf2db9660bb0e24b2a35886616f617013a24104242304600910b1130dc7b4e81750bb1216e880432ac0d75b0a2a1834f45e8e9a279a9c6c22cc9a7e3ac01cc5335e8c0d97180c960bad7998ce9ac025a2f1a0c888e02c46508045a96a20a60c91980100828a917425f96ddc64bc2ea19146c50b00bde68319005d85d10e462314ae197f0b48c74bfe986ced9dac3a9bbfad7e8f7ac2a525253c6e36cad4dd7c20e2ec4842dba61cbf30f0f7d628635005a66e63ec63560f22a48c694034a695617e603c12c05077310c0923018053379a48d1e921e409b28546c46619d8fa6c9b019ea20762d318e34c6291699d98662a61861204fda2a7933d57c1d023391f8605262a1598449c1ca332e084cb25a3198ac94666361b99f05c67c1aba0151b18d456ec8e0b4c667924153ba632409114cc587c7867ca8c047dcd7a834bc8d2a033a141df48ab82a803bd1a8651a215e356c6161b062114cb841dd89589b05f0d10ad255c4d70d8ad245e4abcd6b33fca8d6af5cc3db8d9244511ab2206a56c885690ad12cc1ba16308528d539daa40b22baf35eb61a7044a988132e926b754d82ea8ca85199ad5c42c0d62d35eb8d7301d56ef5b26c451748198c2a22c319b24ab67a246b186c8af0d54354c0957c342d9a2a4d7b3245e585c4d7254e107501450bb46abbfa38b2331996d9bae08953352c48af43d5c7b08b6572a44e0b11775fd8cbb2b0b0343230c6c5add2ca5ac8d549765977ff78e59659ca49adde749c6789409753bcff43d1a8d46a532da5a5a5a5a5a5a5a6a6a6a6a6a6a6a6a6ab671c71c71c6ae4141414140a0a0a0a0c2b06e0b039c1829859998b165991a5d2aa598e0a714183727471921e5721a1037a9c2fb7a1b9c0dc99c6ab19b821219de39219b82a521908908987d2ab1aab194159219cb31211fffbd2c42383f4bda0d20ffba7c624b3dd01eee938b82f149f14b82951c14d290908c90d294c90a598b0948572ce584a434a54a52b4a42c3829592199219219a52921160908d295294b1c79b70dc9b72dc9b70dc15b71e6dc37058e3cdb8e34db9e3cadb82c37056dc95f1e7c6f1e58e3cadb8f2c4845721f96242f2c485e7214865721f962422c484721c845890cb121f9c872116242f2b908e4390bfcae432b908ae43f390e432c486721c85e5890cae432b90ce42908b121f9c8721962432c484721c865890ce4290bcae432b90bcae43390a432c485e58908e4290bcb121f95c86721c865890cae432b90cae42ff390e422b90cae422b90fcb121795c865721795c86721487e721c87e58908ae422b90bcb12195c845721796242f2c48658908ae43ff390e43fff390e422c4865890cb121ff9c872196243f2b90bcae42fff2c48458908b12116243f2b90ffcae43fff2c485e5890bfffcae422c485fe5721796243f2b90bfcae42ffff2b90ffcae432c48460a40a6618626a61ce3d466883d6645657458106350e2d6321a39532150c231a421532413d3399952b690e8430cc534d4ad0638ad993418742c24072f7385897cae5e348120397e5e348521397e5e2b734cd8364b06c160d93364d82c0ea6838ea63a0e863a8e9e581d4ca0283cd5d284b050795942650143e6e1c1b87058706e5c95b9370e4dcb92c382b706e1c15d22c522ba7e574cae9f9d2a458a474a995d32c52ff2ba4574cb148b14bfcb14cb148ae99629795d22c532c533a74cae995d2f3a74ce9533a74cb148e9d2f3a74ce9d22ba474e99d2a458a674a99d3a65748ae9f9d2a474a91629962995d23a748e9522c53f3a74bce9d3f2ba65748afa9f5ea57d4b1d3cafa963a163a7963a163a1f5ebfe57d3fcfa742bea7d7a15f42bea7d7a1f5e9e7d3af963a9f4ea57d4fa752c74f2c75f2c743ebd3fcafaf963a7ff963a79f4e9fe57d7ce9d22c532ba474a91d3a674a97962996297f9d2a658a458a658a458a4574cae916299d2a474a995d22c522c533a54bcae915d32c522c52f3a548ae99629795d3f30c6831b320f483c329501f8331a98f233a001f9342646273295483d326307f03331098c307e52ae3189883d3186475630e704da30e744db320f0627329501f831040411307e4fffbd2c42383f3fdacd40ff6b68668b3dc81eeed7841031044a54318984112a8c4e641e83f26208082260fc0822560fc183f041e183f00fc183f20fc983f20fc983f20fc95896e60bf863460bf86365805f8c17e0c68ac31b2b5f8f1bc68d7fc68d7f5fcaf1b35f97e35f97e2c2fc585fcb0bf9e36bf9617e2b5f8d7f5f8ad7f2c2fc6bfafe56bf9e34bf79617f3c6f1bf2b5fcb0bf9afcbf95afc585f8d7e5fcb0bf611fc419f8f08fe7833f1e0cfcf847f308fe7833f1f067e3c19f9067e308fe7c23f8c23f9067e40ff3f8067e20cfc047f00cfc611fc81fe3f207f9fc033f211fcc0ff1f903fc7e423f803fcfe423f903fcfe00ff3f8833f011fc847f211fc047f303fc7e211fc01fe3f211fc033f011fc7067e40ff3f908fe023f808fe00ff1f903fcfe019f803fc7e419f808fe019f9067e40ff1f9067e211fc01fe3f3c19f8e0cfcc23f9067e40ff3f8067e023f808fe60cfcc19f8c19f9847f211fc047f011fc033f1067e60cfcf833f25808830881d435e33e33263062346d46d31d427b31d41d4346d3c633201d5308827a308846d351212e32267a39ea7a34b92f3221d537552f32252e2b4b8dd5c80c88c84e7a4bcb0ea9ba9e315a5e697baa644cf473da5e58220c894bcb0449a5e449612ff2c110584bcb0447991044191244160892b4bfcc88224ac882b2a4d0a114ca8114c44114ac442c089e562279588856c458633e362f3e362362623e3e3f2be23e3e32b633e263f2b88fffff2c44f95c47f96227ce2224e2620b11071310713105889389882c44f95c41c44496220ae23cae20e2627cb1127111257105889f2c449c4c416220ae24e2224e2620ae24b1105713e588838988389892c44f9c44416224e2220ae20e2223cae27cae23ce2220e2620b1105711e5712571271111e57127131257127111271313fe713125712588938988388892c4479c4c41c44416224ae24e2220ae20e2620b11058882c44ffff95c4795c4ff95c415c416220ae20ae20b11271310571271313e58882c44f95c49c4c4ff95c416224e2627fce2224e2220e2220ae20b111e57107111071111fe5888ff389882c03a18838cc99ca16b996b8501ad09db99db86c161e34cb0c730c6641d4c664f7cc570e54c570570cb08734d2b4b08ac360cb5c284c86c574c57428fffbd2c41e03f239a2e40f7370c65fb39cc1eeed980c364364c360730c364edcc360364db2d936c734f9bcd3e6b60db0d82c734db3cd36cb60adb27068399d732588319d20e7068399d20de5850f9d75405850796140575c3535335252353c32c611e1291a9e11614cd4d4cf0d4cf0948e8684e8684b14074140574058a12c509d0d09d0d09d0509d0501d050796363fcaf64af67ffcb1b257b1fe58d8f2b74375742b742c3a9baba15ba161d0dd1d4add0b0e9e6eaea56ea56ea5874374752c5096280e8680b14057405743e57407414058a12ba12ba02c50f96280b141e58a12ba12c5096280add0dd1d0dd1d0dd5d3cb0ea6eaea6e8ea58752b7537574374742b74374752b752c3a95ba15ba9baba1ba3a161d0dd1d4b0ea58742c3a7ffff96367ffffffffffffffffffffffcb0e856ebe5874f2c3a961d4dd1d7fcadd4b0e9e6e8ea58752b752c3af961d4add3cb0e86e8ebfe6e8ea587537474f2c3a161d7cdd5d4dd1d0dd5d4add3cc388588c9e8220c4b91b4c989388c58898cc5b4740c2a48c8c58c38ccb8898cc9ec220cc84c80c4b84bcc224754d4491b4c62988c63588ce2b88d2e224d2e224b0449f8f3d1a5c9719104499124415a5e6971106973aa58750d2e220d2e220d898cf8d8cd8d8cd898cd8d88ad8cd898cd8988b1c7e586336363f2c711b1311b1319618cd8d8cb0c6586236262363632c319618ccb8b8cbcbcb05c565c582e32e2e32f2f32f2e32f2f32f2f32f2f2c1796220ae24ae20b113e71313fe71111e5888388892b882c449b1b115b11b1311b13116188d898fcb0c66c6c45862363632b632b63ff2c319b1b1796224ae24b111e711125711e5713e5713e58882b882c441c4c4f9c4c4ff9c4c4f9c44495c49c4c416224ae24e2224e2627fcae20b1105711e5711fe7111071111fe57125713e57106c6c46c6c45863f2c3195b115b19b131796188ad8bcd8988b0c45862363632c319b1b19b131f9618bcad8fcd898cad8bcb112571257125888f2c44ff95c495c4ff95c47f96220e2624b11258882c441c444ffff96224b112571257105711e588838989f2c44d3045045310b0a932632e232630623562062316226236620e32c1b198850229885919194a88598220e81fc431160623589e23588622b18cde2988de3788c63588fefffbd2c42083f3559ee80f774bc682b4dcc1eee9782388c6278cb0b1161623388e32b588ac62398d633188632c0c46318c66319c46710c66310c66b1ac66318c46310c46310c46710c6563118c431f98c63199c63118c631960e3f318862f2c0c7e6310c45818cb031960622bc678f1163196319e3c658c478b1163179e2c658c65788f1623c58cb188f1622bc678b115e33c788f1623c58caf195e32bc5e71221c5885710e24438914ae29c58a71621c48a588a5714b110e2c438910e245f38b13ce2442b8a71621c58a5889e5714ae295c42c442b8a5713cae29c48858885714b110e24538910af115e22bc658c478b17f95e33c588af1ff9e2c678b19e2c678f1163179e2c478b1ff95e3f2c62f3c78fcb18bcaf196317f95e22bc7e5788f163f2c632bc5fe58c678f195e22c62f3c78bfcaf1163196317f95e32c622c633c58caf11e3c4578caf1f95e32c633c78bfcf1622c632c633c588b188af19e3c5e58c658c678f11e3c678f17ff96319829829986109a99a6b1319ef03a19ef0cc99150cc195d8cc99a683a18730f598ca89e99a615d995d2819fbecc9d755d95c54698a626980d26559dc71520c68357471520c6cc33075d8ea63a0ea68345468320e63a0e875d20c683a0c63aa0fe5841cd98664b0831a0e8318ea3a95a0e563a160752c20e63a8e86838e858418b03a160753148523309353148c22b14cb02918a42918a629160522b14cc5314cfaf52bea7d7a163a963a1f4ebe7d7a95f53ebd4faf43ebd0afa795f53ebd4afa963a1f5e87d3a963a15f43e9d0afa79f4e858e858e858ea57d0afa963a9f4ea7d7a9f4ea7d3a9f4e857d0afaff9f4e9fe7d3af95f52be858e857d4faf53ebd0faf53ebd4afa1f5e857d4b1d0afa9f5ea7d3a7963a15f43e9d0faf52be87d3a163a163af95f52be858ea57d4faf5f2bea58ebe58e87d7a15f42c742bea58ebe57d7ffcfaf52be9e7d7af95f5ffff2c75ff2be857d7ffcb1d0faf52c742c742c753e9d4afa95f52bea57d3cb1d4afa95f52c742bea57d0afaff963a95f43e9d0afa7f95f53ebd7fcfa753ebd3cafa15f42c743ebd4afaf95f5f2c752be857d7fcb1d5508000160382b0e0d954f0d94654deb7acc397acce7d10dea4f0d4b2c4cb02c4d311a0ad3134c0aa34c4ef33b8ab3059193460b03fffbd2c41a01f0c5a2f0aeeb34c619359dc1dde6682c04b32403834f43832403932443930e03932403932413c3240392c070648072561c9870489a7a48161c1b972587258726e5c9b87265e51ca2c65cb9cb2e65fe1cb94565ce59634a94ad21a44a584869529a4485694ad216129a54865cb1972e72e51962c65cb1972c565cb05ccbcb32e5ccb162b2c56b79acb1acb1aeb9acb1aeb9acb1aeb15ac6bae56b15ac56b15ca72485894e590e490b1295ca5894ae52b90ae539252c49e724a5897ce494b121cb2f9cb21cb29cb21c9215ca5890e497ce597cae42c4a57215c85894ae42b97cf9e4f9e3cb1c15f1e57c796393e38ff2be0f9e7caf92be0f8e4af92be0b1cff96392be0f9e0b1c15f058e0b1c796382c71e7cf3e7c7257c95f258e4b1c95f1e58e0af92be4b1c1639f2be7ce493cb127f9c9215c9e5721c9215cbfe72ca5893fcb1279c921cb29cb2f9cb29cb21cb29cb295c85890ae42b90ae42b93cb12795c857298701c1609034f2413901eb3094683091733344d033e0d132acaa34c4ee30957434c1313244382b398d3c4f0ace730e13d34f53d37ac3937ac3830e4382c07261c870648a786ca27a580e4ce244e44e4ace4ce0e4ce240ce240b072723226727058382b90339392b382b382c1c99c1c9c89c960e0ce4e0ce4e0b07067273e6727258392b38ff2c1c19c1c960e4b070670705838f2c1c19c1c99c9c19c1c159c159c960e4ace3ce44e0ce4e3fcce0e0b07058382b38339382b3933839396439252c4872ca72ca72ca57295c872485890ae53964f3965f39242c4be58e4af92be0b1cf96383e783e383e382c727c707cf07c727c73e58e0b1cf9f1c15f058e4f9e0b1c16382c727c7257c95f07cf27c707c727cf257c9f3c95f258e3caf83e792c73e58e0b1cf96392be0af92c7057c9f1cff95f058e0b1c16382be4f8e3ffcaf82be4b1c795f057c16383e392be0af82be4af82c71e57c796393e392be4f9e7fcaf9f2be4b1c795f3fe7c7258e7caf93e392be0b1c79f3cf95f257cf95f1fe57c79639ffff2c70a0800079603ecd71612cb09de71381f66aac420687e4226650cdc6176680617668061769dc58268332932930fb211343e211355621032115563328328343f0fa30fb0fb33280fb321021032112102b43e32112112b329fffbd2c42b01f3f1acdeaf777286a1355cc1eeecf82c1f467d1f5e7084207081f456c895977e65db2265d32265db207081f4583e8cfb3efccfa3e8b07d960fa33ecfb3fbfa2bfb2bfa3fbfa3fafa3fafb3fafb3fafb2bfa3fbfb3fafb3fafa2c7d963efcafe8fefe8b1f5e58fb3fafbf2c5d1dddd9dd5d1dddd162ecaeecb1747777477574577458ba3bbbb3bbbb2c5dff963ebfcb1f657f5e57f457f5e57f5e58fbfff3fafbf2bfa2bfa3fafaf3fafbff2bfbffff2c7d963ecfefe8fefeffffcb177e577658bb2c5d7962e8eeeebfcb17458bb2c5d1dd5d962ecaeecaeecb176577458ba2bbb2c5dff95dd15dd95dd1dddd7f95dd162e8aee8b17658ba3babb3baba3babb3baba3baba2bbb2bba2bba2c5d9dd5d15dd1dddd162e8eeee8b177e7f5f7fe58fa2bfa2bfbff3fafaf2bfbfff2bfa2c7d9fd7d7963ecb1f47f5f658fb2c7d163ecafebfcfefe8afebfffcfefecb1f5e57f457f7e58faff3fbfaf30e326333624e333632e231d546d312e1d530a8233323210b36ac7a31ec7a2c4f46eaba86318c46f18c67719c47315c6631ac46f19c658754c89224dd4c84f204bcc894bcd2f4bcd2f224e7a4b8ad2f34b8893220882c11056441a5e44191297160882c112644113e711125712588938989389893898838889f38889f388882b8838989f2b882c447f9618cb0c46c4c658633626336262363622b632b633636236263362622c319b1b19b1b19b1b195b179b131f9b1311b1311b17196188ad8cd8f88b1c656c65862363622c3195b115b196188d8d88ad8fcd898cad8cb0c45862363622c3195c415c495c416227ffcb11258892b8838989389892c441c4c416224ae20ae23ffce2620d8d8cad88b0c656c456c658632c31f95b19618cad88b0c5e6c4c66c4c7e5863362632c319b1b1f95b11b1319618cd8d88b11058882b892c4416224e2220b113e5889ffff2c4479c44415c415c4ff96224e2620b11257125710713125712571057105713e58892b88f38988388892c441c4c4796224b111e58882b882c44f95c416227ce2624b1105711fe58882b882c44795c4ff96223cae20ae23ffcae26f331e433b76dc30b95e3a3df73449133dd72835791335782f30bd1236a87a37d8c730b8c630bc7a331c2e357df730b82f31ec7a30bc2f30b87b344daa3fffbd2c41e83f005a0ee0eeb3706ce341c42bdd0003187a31e8c730b82e2b44ccc60b8cc61e8c7a31cdaa1e8b03d960c731ecc731ec7a30bc2f2b1e8c2e1e8b03d1ae5c6bbd16171ae5e6bbd15ae35cb8d72e2b5e7e97161795ae35ebcd7af2b5c6b979af5c6b97161795ae2c2f35cbffcd7ae2b5c56b8b0bcad715af2c2f35eb8d7af35ebcd72f35cbcd7ae35ebcb0b8b0bcb0b8ad79ae5e585e56bcb0b8ad79ae5e56bfcad796179ae5c585e6bbdff9af5c6b971af5c6bd7962e2bb8eebceeb8aeff2bbcaef2bbcb1795de58b8eebceeb8efbcaeffff2bbceeb8efbcaeef2bbbcaee3bef3beeffff2bb8b171df7962f2c5c58bfcaeff3bee3baeff3baf2bbceebcb171df795dc775c58bbcb17962ef2c5c77de58b8aef3bae3bae2bbcaee3bae3baf3baf3baf3bee2c5e77dde58bcaefffff2bbffcaef2bbfcaeef2c5e577ff9df7962f2bbfcaeef2c5de577162ef2bbcb17fff95de577960360c731e34da20e50cb58e4cd688b08d2b0734e5d9e30c730360b03306576576658639a61ae76c639a76c6b40958561b2695a76c561b0639a5847db58458360adcd2c58666c9b07615846e6d8658364dcc730dcc730cd8730acd83364d8f3361cc2c1b256e6959b258360acd92c1b1fe66c9b06e69b066c1b258364c741d4c751d0ad0631d47431d074f2c0ea63a8ea63a8e8563a160d83360d92b360acd82c1b2566cf99b06c99b26cf99b06c99b06c98e83a1607431d10631d4742b1d7cc751d0c751d0c741d3cac752b1d0ac752b1d0ac752c20e63a0ebe63a0e8563a18ea3a98e83a158e8563a958e863a8ea581d4b03a958e863a8ea63a8ea65094058284aca0f2b284ca1287fcca1287caca1ff3280a13284a1f2b280ca0280ca0280b0501594058280aca02c1405650960a02b284ca0280ca0280b050160a1f3280a03280a03280a1ff3284a1f2c14265014258284aca1ff3284a1fffff2c1b3e58363fffffffffffffffcacd8ff2c1425650194050799425095942565079940509594258284aca12b283caca13284a0ff2b284b050160a1f2c1405650194250960a0f2b284aca12b283cca1287fcaca12b284b050da03028040204010140a02010080300640ae302500803053c24f30d7c2a930ca42cf31c4921a300f0001300c4005305cc04f303cc03e34620fffbd2c41c003485d91db9ff00062e346243bfd000a9035bccab50300ac600d80006071010c603180c6611a82666027812018002a546032072608a05e690660a6330a28160074dc46f0c033306302b302a06234f02603428582329635f2eb1698880854e0c110038c168038c094064c008008d454d7cc660a5cca5c1d4c4f03899c459a1b8ef3180e80e98018048b009ba542604818c60701ba620e09e60de09e0d024120006cca729e4ca5b2baf182ea7acba030220082203b14028160104972b0109332164c5a76aafeb228dc6dd359e5dba0a2ff2c00c182d01c182d03d180c00c980c801c4eebff1779ae3fb76efa7ba8ca8927c39707a7a27c79803803958039803803980380398030031583a983a04c1583a45e2f14a771593bcf4b7e24f32e789492ebff72f45ee5ebc61540c4603207e180afe17007f53b0c00e4c44c60c00c8c50fd0fffd050d050d1c65d6a2ffffa251aa27c567d0fffffa219580133ba3f75e3292edc1863a4ea46dd474fffffffffffffffffffffffffffffffd4f980d0090981280b6984e00481848a1621869a25d18f32518198f263d19bd283d1a7d2d1b1b0fcf639bcf8c85987b8ff61db16c151d0749fb9cd72df399c764769881e1d19834809d9862389858ce9c5ca99b38cc9a0c149986cd1bcf161d83ce1ea3a91bc8f1997c611a16ce1bcaf21c32d31ade9b19160f191c9a9a68b599fa7d1986450b14e60e03a6271126471166450aa62a03a60e03a60e8a464698867d9f867f99062a83660d0403a0e98300e98a029983e0d2439810069810029810069818068602a8ab8ab3a01500a912a95c5987095b948b016d5fdb3ff4b0ee54255006ed19788c17050c2d0b8c49128c320c41c18a6f1728b945ca4e29eeef1fe56c8a800980801980402d79dc7a4a01980002980804980c03980c02df30180530902530880542c301402309446311448311c4830982528014c03000c23098c05008c05022b592500e2b477b0ffcea5d66d967ffffffff94b20c5dcb0cc4989356a6d779ddeb2ad6b755f57765b2996dda596d3bf38d6869da96d9d53434ef4ba1a7fa3384aa5d6bf2ab19a6ea300c013730b805f33126021130cb4230301a424a304f4122302905f9309b01e5308bc0253115c16431c9c4aa319809b1348b010e360fddfffbd2c41b83e62974fe0ff1f1056daadc81ff69e01033cce9a13e9998033720c8e03095404e3043c257309e00bd30074315306a01b93964c434b07666b9b5a486915398b4c4670561abd5a6ab341a9c58670859b40ea6965b8aa08c26b43291e438b21c5630e828906a18255402a4302824c4020012f82a2415279830b466f22268084188a8850f8238c0276895daa096a1e4406a530a427eb58491f081545ea7a311caba0d9712c06c2245b452039921093ca2624399cb1b2c29eb96a1f6c6b339233293c2e2af1b85c542519395617227c748270778c241b5976196923c2e27c2ba5fc4c49b6b75f582ca7ea3735ffffe0ab665746b4266378e2dfd7fffffffffce36c31231de4bfd191ff117fb8c19504f0c09013dcc8583304ca622984cb0e2c3cd17e039c8a86738190f763626173e280ca4e36eeb34d7401280e67a692ccc6a3708d58face8f60fa0b0e9df6268c2ee3714d7e9284d281eb4c64d280d7ecbbcac398c654a60c39c654c650e70d285280c650650cbbc650b032a63283286532530632a1ce61cc32a561cc61ce32863281ce612012061221206072070607207058038f2b03930390903d094d26834fa4ad216349a44a7a741e9d06952f95a42b485694b090ad2ff9a548695214492c25f34893cd3a62aa434a93cad29a548584869529e8485694d2a434890d22534a94b090b094d2242c2534a90d3252b4a5690b090d2a52b4a691215a534890d224f372e7fcb0e0b0e7ffcadc161c7fff95b92b73fffe56e3cadc7e5dffff372e3ffcb0e7cb0e3ffcb0e7fffcadc161cf95b82c382c382b70587058726e5c95b9ff370e3cdcb8f2b7058725873dff2c38ef9b871fd3a21dfffff65f302a03bf3183c6d2327a41d139209453312084833623919f370206d535458e2633ec4e26388c9fe23a48b6a13da898f333712b75337150153ed089223371145331208dc430be454831cd84203042842030be442035b23231156d2c15065408a685216685088685216568515a14685a1665408856541888549950229a1622959715bd15bd95bd9973d961eccbcb8cbcbcea510b08858452ba8345453444434444345a9345452c2296114d1114ad14d1110d1514d1110ad10d1514b08a575258442c549a2541a2221a2a29a22296110d1114b08868888584434fffbd2c46c83f3bd56de0ff77085de2a1ac1fe6e4054534445344452c2215a21a22215a29a22279a2221a2229d4a296110ad10b08a68a8a5844f345442ba82c2296113cd1110b08a568a68a8be58442b45f345452c22f9a2229a2a2f9a2a296110d1114d1514d1514b0886888a58442b44f345442b442c229a2a296117fcb089e68a8a5844f2b442b453454434545345443a844345453454434444344a834445345452b443a94534444344452c221a2221a25416114d1510ad10d1514b08868889fe568be68888568868b5256886888a568a68889fbf9dbbf45c58018cc0620d8cc4e31388c3620d88c5630d8ccde23388e1e2878ce6e33d88d1e32788d3e24f88c660a18cdae32788c9e2358cd7625d8ce1e2358cef62e58cd0e2438cc6e2358cd762438cc6e33588c9e31b8cc3620d8cc162178cb00b1182c60b1182c40b11f8dc456e33f1388b1e3371b88ad8cf8b88f8f8caf88d8f88f8d88b0c65862363e32c719b13195f196388f8d8fcf8988b1c65863363632c3195f115b196188ad88d898bcd8d88d898cb0c458e32be32c3195f19b1b19b1b19618cd898cb0c47c4c456c66c6c65862f36362363632c3115b115b115f11b1b19b1b115b11b1319618cd8d8cd8d88ad8cd898cad8cd8d88d8d88a310b0c46c7c66c4c456c66c6c47c6c66c6c7e6c6c458632b63362622b633636336363363e2f363623626336363ffd15b1f9558cb0c47c4c66c6c458632c31ff9b1b17f95b11b1b17f9618fcb0c458622b632c319b131f9b1b115b115b17ffff9b13196188d8988d8d88ad8ffcad8bffcb0c7fffa363622b622b62fecf95ff2aaf2c084258217cce061080c9c9655cd3ae3270dd952720e33eed24e068381cc4203dc0d957381cce0781a4e33eb494f70aed24cf704eb8cf701080cf702cc8c6f45a0cc2b7217cc9c81bd0c58b0ad8c58a0adcb02109829a2101829815b188400a61d6ca69a9b5b9554c35314c35314d2b3eccfa3e8cfa840e103ecb07d99f47d19f67d962102b3eccfa3e8cfb3ecacfa33e8fa2c1f6582efccba2e8b05d960ba32e8ba2b2e8acba32ecbb2b2ecb05d9597665d17665d177e582ecb05d19745d15974582e8cbb2e8acbbf32208832252f32208932252f32208932248834b88832252e2c11064411064491264425e64411206bfffbd2c47903eab9a2d20ff6b3471eaa5801ff5a38ac804576115d84577062ee0c5d81ae97606ba5d8457581ae976115d01ae9740c5d40df4fb037d3ec22fa063ef08bec22fb063e818fb063e818fae06fb7d01bedf606fa7d845f406fb7df06533c194cfae11a6ffffc234d81d369947ffffffffffff06110c1f907e0c1f81044d4c44abce14c8534d8f25314c1f820f0f62f7cd8ce8395f0d2af6c24df37e970f2038d90c413a6a0e14fc808e9a763d4f204c80ce3642950ce821038ce801044c4114abcc40e1898c4101040c1f91040d89f1acf1a9898c7e5898d89c7e4ae0f0f1aa0f0e0f5044ae0f0e0f5044d0420f0c7e5040c7e07e4b0823e63f282056c4e5541134101f834111f831f91f82b1f934114102b1f834114112aa08941f898fc2089607e4ac7e0d0407e7cc7e1044b03f05682056823e68203f0581f831f81f92c20818fc8fc98fc208f98fc0fc1a080fc98fc8fc95a0879607e4d0407e4c7e1040c7e47e4b03f263f03f0563f263f23f0563f0563f063f082063f03f063f03f063f23f263f23f0581f831f81f92c0fc1607e4b03f068223f263f23f268203f3e63f03f0584102c20898fc0fc019f93f00c3f2e113f2113f3033f27e0227e4187e4227e4227e4187e00e089f908c11061f9061f806410033f27e2067e0fc819f83f1819f93f0067e4fc830fc830fc419040187e3033f27e40cfc1f8061f9c227e00cfc9f9061f8061f8091f9033f27e4187e40cfc1f9033f27e2113f0067e2084187e2113f2113f00c823830fc830fc7f7061f8844fcaffffdc9d9fffffd75f317f31b37f117f34b7b29398c65434b665534da7572c30c9a6dbab1a6d12f1b2acc61b2ad949bf832a198d32a1b2a6629d947fe9b2a0bf98bf25b192f30c99ce12f989092f192f12f1612d8cc68c6cacc68cc6c5fccc685f8b06366636634663496e66362fc6bf2fc6bfe346bfafc6bf2fc6bf2fc585f8d20978ae5f3485202c4be690a406904bc5690f961213979212c24272f240690242569096121348521348521397d203481203485202c24258480ad203485212b484ad203485202c4bc56909a429095cbe5897cd21480d21484d21487cd20978e5f484d21480d20484ad203485202b480ad212c242569015a40690a40690a42690a4058484ad20ff348520348fffbd2c48183f27178ce0f76b545f6b61a01ee57205212c24258480ad213485212b480237e065f8237f81dfafc077fbf4237ec197e832fc0cbf832fc11bf611bf032fc11bf832fe0cbf832fc077fbfc237e065fc237fc197e03bfdf8237e832fe11bf01dfeff065f8237f832fd03bfdf8237e846fe11bf832fe11bf846ff065fa077ebf81dfefe0cbf832fdc0eff7f065f8197fc197f065fc237e08dfe0cbf60cbffffc197e2c0bf18bf0bf9bf859418bfa5b9d9418d15d941a6da6d9a6d44a18bf8bf1598d1961ad0986cad01890a6d9b0c9ce992f3ab9596198e69619a5606c18bf18d961954cc6d2dcb096c62fe2fc696c63462fe2fe62fe96e62fc96e696c2fc66342fe5663466342fe61b039865861b0561b261b239a63981b2581cc31201202b1202b1202c09018908909589015890992f0901f35b0586c1b65b26d86c9b61b06d86c95b63cadb26d96c1d72ba6a1ae95a87cd40a13aea80eb8a12b501a854275d5095a84d42a12b6c9b61b056d82b6c161b06d96c15f33cdb2d836c364db0d92b6c9b65b056d8390484e4120390c80ae427209095c83fcb120390c80b120390484e4121f2b901c86425890162405721390480e41202b90f95c80ae407209015c80ae405890f962425720390484ae40720901c86405720390c860cbf846ff846fe11bf846ff832fc11bfc237fc197e846ff81dfefe11bf832ff832fdc237e03bfdfbc197ef846fe11bf832fffc237fff832ff81dfefdfffff065fff08dfa0cbf2af2c1611a561619ad086c1bc6256986c0e698e61db186c2d0991503a991528199ca96bf995d8cc183a95d98cc883959ca996b0ae18500ae18ae8ae18ae10d99ca05098ae0ae158e6186c06c996186c186c06c186c86c1586c98e686c186c86c986c1611d71406a1501a86b858501a82ba56a02b501a854258509d71405850161426a0509a8543e6d86c161b256d836c363cb0d8ff2c363cace9e5883f99d0ea583a959d0cea7433a1d4cea7533a1d0ad43e585095a84d40a12c280b0a02b5095a83cad41e56a12c280d42a1350280d42a0350283cb0a0350a80b0a0350280d40a02c284b0a0350a87cd42a02c284b0a12b3a19d0ea7073a99d0e8583a99d0ea6743af99d4e86753a99d0ea567533a1d3cce8752b3a160e86743a160e9e6743ac1fffbd0c49001aae194d80f72b58554b59a95eed5a08d808b600db0d9c22d906367831b1c22d8c22d8fc18d808b620c6cf063660c6cf036cb66116c01b65b2116c7fff08b67831b3ffffc18d8720624024262422406caa96c696efe06634fe0696e2fe584b6f32c269733b61cd32c30d831cc2c2375639c339c120339d4da2bb08ec2364dcd360e5e480e5f978f9c97cd2197cb0901f3a909f39ce15cbc6904be7cef386904be572f1cbc909cbc909cbe90961202c24258480d21480232106484192108c80192008c800e4320064840db1cc036c36418d981b65b2116c7845b006d86c831b20c6c045b0116c81b65b2116c01f31b00c6c0339a0c6ce0c90046401190e0720900464184642119001c86400c6c831b2116c831b00ce6045b006d96c01b65b2116c81b61b006d86c831b006d86c031b206d86c81b65b006d96c045b00c6cc0db0d881b65b006d96c01b61b20c6c845b006d86cc0db2d90636606d86c031b308b6022d8036c363f06487fc1921846400c90c192084643e0c907c1921ff064842321fc2320c1921c2320e0c9083241c1920e1190ff0648383241ffe1190552b188b0719f7f4a1eb57c15bc66b19c46e821474a4645719988ab69bc4b11ac4311dc4b11cc47198c4b198882219502296045338ce33589622b388d62188c6338cc6318cc63588b071195222995222195022160a832a04532a0452b110ac4432a0442c08862208a78b1f95e23c58fcf1633c78bcae2162215c42c442b8a588a588be71221c58a716295c538b14b110b114e2442b8be5714e2c538b10e24538b10ae21c48871227f9c58a7162162216221c5885888712216229af5de585e6b9715ae2c2e35cbcd72e2c2e2c2f3f4b8b0b8ad715ae2c2e2b5e6bd715c42b885710b114ae29c48a588a588a58887122ff95c42c442c45f2b89e5710e2442b8bc238e11c611c5e11c5f08e3f83310331ffff8471047160cc708e3c198c238c19881988238c198e0cc7833103318471e0cc508e3f8331c0f1e3e0cc611c7847103314198e0cc5066308e3e0cc41f2c1e6a5119a1af08bc29b0f2a7b986cca7b194d8c3c98dd06f719b1a90d9a4346c69a4366c619b1a47f1ef71b39b74ef71ef76f71a08e3598fce351a08a081bc6bc61f9a79a953cd4de33cd7cde31e34a79a8de37cdfffbd2c4d083a94daee40eea974694295845ff597a0d1c3634ad1c0e3ff630e3f91c0d1c11c0dba0d98cd9a9b0cd98d98dba0d98cd9cd9ccd9cd98b0dd3e566cfe66cc6ce586e9f36e9367362741136271f831f81f9f34101f82c20898fc8fc1a080fc1a088fc18fc8fc04638846380323884638c191c0231c4191c40e38c71064700647108c7003530a640d4c29903530a600d4c54d08a9803532a6418a600d4c54d03532a600d4c29981a98532075314cc22d980db3367831b3831b381b666cc0c6cc06d9db381b666cc06d9db3045b3845b381b666cc116ce0c6ce06d9db3c0e384708463804638e118e0118e0118e2071c63881c718e0118e3f08c70038e11c00e38c7108c7008b66036ccd9c0db3b67c18d9822d980db336608b6608b6708b67036ccd9818d9818d9c0db3b670636706366036ced9c0db3b6606366845b381b676cfc191c2071c238f08c71f846380323801c718e384638c191c3c82bb45762bd6a189200a0f3144ca433d6cc69c36b368403455f43b3455ab8137c0e4323674ca4235040d5636b2cd573290d4a32a9ee6553dc8df03144ca294533f88be230f8d3e330f8c7e333dc8a4333dcd9d332908a4332908a423144ca423144ca433290851231448513314494a231448f7233dcc5133290c5122c0a24587e3d95bf1960f8ccf8cf88b07c4583e32b3e22b3e333e23e333e37e333e23e333e33e32c1f199f19f1160f8ccf88f88cf8cf8ccf8cf8cb07c4567c6583e333e23e237e23e284e898328981d13a2611a240ca2611a2508d1281d12a260744a8981be27c6117c4117c606f8df101be27c60c7c407f89f181be37c606f8df101be37c6117c6117c5063e208be281be37c5063e3037c6f8a117c581be27c7831f181be27c5063e2ff81be37c5f831f1781be27c4117c6117c40c7c4117c406f8df1c18f880df13e2063e2063e208be308be2845f1c0df13e2063e2037c4f8b08be3037c4f8fc1944c2344ffe11a27ff06513e11a270aa27fff08d1303a2544bff06512f065128468980001f961a0f32f89be330f8cbe22b674cd4a3528ccf727c08d4a25288c923183cc9221838b0ce9194867b9997c67f118fc69f198fc63f19b07b071c914919b07c91963f88a1f1cdf88f8cef88f8f46d3baae7aacd386d39aae6a254867487486fffbd2c4f0002ff59cc10ffad486bcb35849ff59b3574846a24a26574866fc67c667c67c667c6fc6583e233e23e22b3e332f82f832f92f9360f60f32f92f92c17c7960be3ccbe183cb05f265f2c1e65f25f065f0c1c56c1c582f832f860e32f82f932f82f8035f0be40d7ce0f035f0be7062f8062f9062f808af981af95f2115f006f8df1c22f8822f880df1be3037c4f8818f8c0df13e208be2037c6f880df13e2037c4f8822f8c18f8c22f8c0df1be3037c4f8a117c6117c40c7c60c7c708be208be208be2063e3063e308be208be3063e38317c8457c40d7c2f808af808af808af9062f9035f0be422be018be00d7caf9062f98457c81af85f1035f0be422be206f8df1031f1845f1045f1831f1045f101be27c7831f1031f101be27c7037c4f8c29f1818f8e06f89f1831f101be27c7037c4f8822f8c0df1be3ffc1944e0ca25f065120651284689fc1944cde666d451e74c692cb86aed3354ea7b2cc5691998436ef2c2dbe749e0b946bc1af0868cdd2784d19c1de4b1aa9bad88cd958dd05853d0c4716ce4cd8c23fcdd6d2ec8cbb275b4cbb31728c3671ba0c3671ba0c3661ba0c36545ccc36445ccd1731ba0c6e90d98b03c619e6a79a98f183c616078b2c2335af2a0b96565d91c7fa38144701611c0d1c51c3cd1c51c4d1c11c4ae3fb9e568e1fe58471336636636e9366e959b3f99b31b3959b399b31b3959b399b31b30323840e384700647108c700647006470c231c4231c606d99b3c0db3b6608b67036ccd9c0db336606367036ccd9c18d9c0db3366036ccd9c22d9c19ba40db3367064710647008c708323840e38c7081c718e0071c23803238832388463881c718e20c8e00c8e308c7108c7106470038e31c00e38471038e11c00e38c71038e31c60c8e20c8e0071c23881c708e0118e0118e20c8e0118e108c700647108c70038e31c70647108c7108c7008c710647106471064710647108c710647181c708e30647008c70c231c00e3847006470038e31c3065cafc1972ff832e5ff846e5419e3613f1bffffe11f19ffc19e33c23e340cf2c13a66bc22f044e35599b1a90d1bf8cb549bad85d91af091aa938d5665d997666b549b1866c6ad5268ce233468cd233651785150bb22b172cd19b5e10cf343cd4ad6de33cd4f3533cd078c2aa78064efffbd2c4f003b1c9a8c00ffad4867d2b97c9ff5eba9a783a34f013c12a93a6513c0993a64e9993a49e09549d32bbb235cbbb32b5ca2c2e515ae595ae59a38c7f1a382381a38a381c7fa381a38a389611c4a238fcb08e2584702c47f1a38a381a382389a38a3895a389c7f47f79a38238960a64ca61530ca65534ca64a60d531534b053058298354d29932982992b29932982992b2992b4712c2389611c4d1c11c0ad1c0d1c51c0d1c11c4ad1c4d1c11c0d1c51c4b08e068e28e268e28e0568e0568e068e28e2584702c2389a3823895a389611c4d1c51c7cd1c11c4b08e3e568e0584712b4702b47034714712b5ca35cb5ca2b5cb2b5cb35ca5ca2b5ca2b5cb35ca5cb2b5cbff2b5ca2c2e59ae52e57f95ae5161728b0b9456b9656b94585cbf2b5ca2b5ca2b5ca2b5ca2b5cb2b5cb35ca5ca35cb5cb2b5cb2b5cbff35cb5cbff2aae56cb0b95fe56b95fecaba05d4123552674e3bad48a9d373031554e1127497febaf30f887e332f18e2831290966285e38c9662f1cc5622b8ccae51ce0cc394994ac60e30e385623158838d3158c90e3243c90e31588563312904a53090c2422b1290c3e21f88c7e20f8cc3e33f8cc3e32f88b0307958c1c617c8c1c56307187c41f19607e230f8c3e230f883e32b0f88b01219848625215848658090cb0121160243f3e3db92c71e586e0db96e0adb936e38e2c371e56dc1b72dc1b72dc79b70dc15f1a586e4b0dc95b7056a69a9aa69a9b5b9a9aa69a98a61a9aa61614c3ad94d3532b63adab735314d3532b636e5b836e1b8f2c3706dcb706dc37056dcf9b72dc15b70586e4adb92b6e0b0dc1b72dc9b72dc95b726dc370586e0adb92b6e0b0dc95b73e6dcb706dcb726dc373e6dcb70586e7cb0dc1b70dc9b72dc15b73e56dc1b72dc7961b82c37256dc79b70dc161b82b6e4adb8f2c370586e4adb92b6e4db96e4adb82b6e4adb82c370586e0b0dc95b726dcb70586e0db86e3cadb92c3726dcb726dcb726dc37056dc1b72dc961b936e5b9f2c3706dc37256dc7fffffff063e30bcc78d1e34c5cca4f0c5cb8d54de87b760cf3598c4e3555e08dd6c172cd6dd3cd4de8698c0db374868c4716cdcc5ca75b0c5cb1728d19a4668cd8c23fca1b1b323fd6a932ecd19a2c0b946bc1233462e5233a71fc8e271fe8e268e11fc68e2fffbd2c4f081f03160cc0ff6d7863fb5d7d5ff5a2a8e27e69e6be56f1a7e69e69e6f1af1a57e6bc2b78dff3471471347147034704703471470347147134704703470471347147134714712c2389a38c7f1611c0d1c51c4b11fc68e28e0584712c2389a382381ae52e51ae5ae51ae5ae59ae5ae5945cb9ae52e596172cd729728d729728b0b9456b95e157280772ae5846e5046e5c1972c19728237281972bc0ee5dcb832388463881c708e2118e0071c23801c708e0071c63801c708e2071c23801c718e0118e00c8e2071c23801c718e2071c23804638e11f1bc19e330af1bee0cf1bc23e3423e31a0cb940cb95c23728197281972b03b9772ab065cb08dcb065cb708dcb08dca581dcab940cb940772ae57d5fe0cf1908f8de0cf1a15e3411f1a15e35fd55423e3611f1b5419e317f5e11f19f08f8d0678c833c6423e33f0678d81f8df1b5f33a38e8f3e1d21d43b49168319d0eceb83d0ece2c92270d155ae00e1856b28c69d355ccf736748c513290cda0f8b20eb808b24a844e99ee65219a9462891b3a65211c59044e9b41e44e96115532275155d151d3a33a38e8e33a3ce8f35a08b3232cccb3228599ccb322ccca8b419bf1df119f11f199f13f11bf13f1143e2161f88b113a5589d389c89d2c44e162270a44e3cae270da75a70da71a74b0d3a6d38d3a6d3ad386d3ad3856d3be56d3856d386d3baae56d39e56d386d38d386d3ad3a5355c56d386d38d39e6d38d3a5869d369c69cfef95b4e161a77a56d39e5869d28d3af2b69c2bd56f369c69d2b69c2b69d2ab4e1b4e34e1469c1b4e34e95b4e79b4eb4e961a77cda71a70da71a730369c69d2b69c2c34e7961a70b0d3851a706d3ad3a56d3a56d386d38d3a5869df2b69c3d5669c28d3b2c34e961a77ffcada73cada70a34ef45869c2b69cf2b69c2c34e95b4efe8ada70da71a74b0d3bb2c34ef961a77ca8d385869c2c34eecb0d3857665ffe58b322c599fecb16645766658b32ffe73fcb166657665e7665666766766458b32f2bb32e313316f31e1f6ee56bfff9beaf3144a96237c0851329f118e4335288e4333dccd9d35288d9d22908cc38248ccf4e183cd4a32908d4a3a588d4a33dc8c5132908c513528cca42528cca433dc8cf72290cca425288ca43290cdf03290cd4a2290cc5133dc8c512fffbd2c4ff03f49152ba0fffc5c651b59801ff5a901448cf72290ccf733dccb07b999484a511948428998a242891948628916144ce90e908ad448d44d44cd44d448ad448a2894b0a27e585123513a432ba42d95a8916144fcd44d448a8a246a24a266a24a2452909e58513f849f1c22f8a117c406f8df1831f1031f101be37c607f89f1845f1831f181be37c6117c606f89f101be37c606f8df1031f101be37c508be2037c4f8e117c6117c508d1308d1203a274482344b0651306513065138468941944c2344c2344a0ca260744a8901d12a270651383289c0e89d12f83289e0ca258468941944c1944a0ca2508d138468904689b8468941944e11a278328901d13a260ca2583289e11a2781d12a24f83289832890468984689032898328942344c1944e11a2706513f83289c2344f06512a8234481944a0ca260ca258468941944b8328976e11a2584689feae11a244c414d45332e313030aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaf2aa8207219b3a45243318a27c791a946a519a4c849198c1c7a7997c65f119fc47f19486126d651aae67f1a7c6517e21587c4617c1244661c9246661c124666ab9aac66ab0d3a66ab35966a082822634e2820566ab19aaca0896069d2b355cc69c5040acd563355cd562c0d3a574845144a56a24748748656a2658a4337e23e233e33e22c1f1159f119f11f1959f199f13f11bf13f11d21289161448b14847486a246a26a27e51449e585132c28981d13a2611a2411a260744e89832890328901d13a2708d1303a2544d82344e0ca240744e8981d13a2411a25846890328981d12a260744a890468903289e0ca2611a240ca2611a270651283289784689c2344c2344c234482344c1944c0e89513f8328981d13a2783289c0e89d1206512ef0669d8334e78474ec0f4e69de0cd3a11d3807a774ee11d3abc19a77ea7c19a760cd3bb419a7019a73ffff8474e8474effffc19a77ff08e9db3ffffd6bf9913a8aa1f9eb1631445566a510a2472198a24777c28226d65359675c09138644e11387163570651a0f9c59044e1a2a88aa14455e67b9948667b93e066ce98a26644ec592644e913a6d0722aa51a0f142274644e22aa644e913868aa1138644e341c644e113a552274aa44e1a2a844fffbd2c4e581eb5da6c00ffad4867d3597d5fb5f98e18d3834e19aac34e18d3834e18d3a34e958d3a581a74ac89c2b2274aa8aa9913a44e15913bfe644e113a634e0d3a634e0d38634e1aade5634e798d3834e158d3a581a70ac69d2c0a2662890a2456289958a245628998a2628998a24289958a27fe65210a27e0744e89046890468942344c2344c1944825448234481944c2344e11a2503a2544c234480e8951206512832898328901d12a240ca240ca270651306513065136e11d38c11d3811d390669c08e9c03d39a7019a7207a774ec23a740f4ee9cc19a7423a7607a734e0474e8334ee11d3a0cd3811d3a07a774e419a740f4ee9d03d39a7611d3bc19a7019a7023a7207a734e01e9cd3908e9cfe0c22742244ef83089c7089139f06113bf088d39fc1834e42234ebc1834e60c1a77f060d39e111a77c1834e84469df6c2244e550000001fcb08e06636ca8663496e6fe26366634fe069b4c32673aeae673a9b6586192b1cc33b73b63411a5531f94112b410383d62731f86263626626331b31a34b731a317e17e34b64b732982992c2a69594c194c94c795a089a0831318fca081a088fc9625e3979212b484ad2134825ef2be70ad203979203485203481213481203485212c24256d93e6b64db2d92c364db2d836c364af9856d82c360f9ad92b6c79b65b06d9e61b61b26d96c15f30db2d93e6b64db0d82b6c161b0589079c8243e7219015c80ae40720901c82407219079c8240720909c864056d92b6c1b65b056d8f36c360db0d836cb64b0d82c360adb056d82b6c9b6798586c961b056d92b9095c84e43202b9016243ffe589095c84e4121f2c480e4121390c84ae4057212c484b120ff2b907f95c87cb121390c84ae42589095c84ae425720390c80ae43e58909c86407219016240589095c87ce4320390484b120f2bbfff962fe577ef2c5ffcb17ef2c5f8aefc58bf9dfafde58bf962fde58bf1dfefe77ebf15dfcaefc577ef2c5fcb97d859c2ab88e7fa3cb0599194842891be04a51998724911aaf47a799fc43f19a7c4ff11978c122992ce71415948456a5119fc61f19553e232f8cbe232488c393248cc393183c60e31a70d5631a70d563355c69c3355cd573144c5123144851333dc8512314485122844e4d1554550a11383227089d2b2270afffbd2c4ff83f1c956d46f779446f42a9881ff7690d448d44e908d449448d44d44cd44d44cd44d448cf8df88cf8cf8ccf8cf8ccf8cf8cacf8ccf89f8cb07c6583e232f82f9360f2f92b2f832f92f932f92f82c17c960be4cbe4be0acbe3cef9be0ef8be4ef8be0ef9be0ef8be0ef8be4b17c15df258be0b17c1df37c1df17c9fc7f11fc5f115fc457f19fc7f1163e23f8fe2f2c7c47f1fc457f1963e32bf8fcaef82c5f277c5f277cdf277cdf058be4b17c79df17c15df077cdf077cdf058be4ef9be3cef8be4aef9f3f8be22c7c5e57f115fc457f1963e3f2bf8cfe2f8cb1f1163e33f8fe3f3f8fe33f8fe32bf88b1f115fc457f1963e32bf88afe22c7c458f8cfe3f8cb1f1795fc5e58f8cb1f115fc67f17c7e7f1fc458f8cb1f1163e22c7c657f179fc7f115fc457f17963e32bf8cb1f19fc5f19fc7f179fc5f1963e22c7c658f88b1f195fc47f17c457f115fc67f17c658f8bfcafe32c7c7e57f195fc658f8d5f2a2944630705f26c472af66abd8c1a661c9872693205f069320c1c510881978e4b3192463071a4ca49199e9e7a71987017c18c1e17c19c62b198dc2b118dcab11d21a891d2152179d21d2195df1160f88cf8cf88df89f88b14867ee4a25fe56a246a26a25e6a25485e6a26a27e67c47c5e67c47c667c67c6567c5e583e32b3e3324324232422432b243324324232422432c12199211219921252992112116090cac908c90c908c908908c90c908c90c90cac90cc90c90cc90c908c90c90cc90c908b048664844840c5f2115f00c5f108af8035f2be2115f18457c6115f20690d210452101a4294a1148406909218312140d21a4308a4208a420624281a424861148406909210452101a4348508af9c22be206be57c0317c8457c8457c422be60c5f2115f20c5f1035f0be418be2115f20690d2181a424840c4840c4840c4840690921e11486114841148606909210452181a43484114860c4870348490c229080d21a4208a430624208a4308a428317c0457c422be40d7caf9062f9062f9035f2be40d7caf8f062f98317c8457c0457c6115f3035f0be018be422be3fffff08d12f2c3d10653614da6a7ba2e442a7a1a9eea7b9a3362e518b971aa9445cc6374b0f2564019957055c1437be63748dd2653694d863c68f1863c6adbc6b6f8f1a53cdfffbd2c4f103f43180ca0ffacdc623b25881ff59f847e6be687e68f1a57e6857e687e6af187e6be687e69e6a6f1af145478a3f3578c378d78c378c78d378cf352c3c61478d1bc63c6961e34ade30adba4dba0d9bcaadd2566cc583672b36633676e834704712b8fe38fe4702c2389611c4ad1c4d1c11c0ad1c0d1c51c0ad1c0d1c11c0d1c51c0d1c11c4d1c11c4d1c11c7cb08e3e584702c2389a382389611c4b06cc583672c1b319b39b399b31b3f959b399b31b3959b3960d9ccd9cd98b06ce66cc6ce66ce6ce118e2071c238c191c4191c7038e11c40e38c70038e11c4191c4191c40e38c70064710647006470038e11c0191c40e3847084638e0c8e0118e00c8e00c8e20c8e308c718323804638046388463881c708e20c8e2118e20c8e2071c238c191c0191c0191c0231c40e38470c0e38c7008c708323804638c0e3847108c7108c7006470606470c231c60cf1bf57ffffdffffff846e5e0cb94a00002f30be4c3831084420332746f434224bc73259824431839265263070b039c183701c6961c14d2938a4eb9158cdce0e30eb95588eb8ce3cd58ce3cd589588cbe648cd83cbe0d83f0e0e48a48cc90c90cc909c14c909c14d295290cbe248ccbe1838d83cbe0cbe183cd83cbe0cbe1838cbe4be0cbe4be3cacbe0b05f2569485648664844845694a64864846486487fe6dc3706dc3706dcb706dc37256dc9638f2c370586e4db86e3cf8f6e0f8e6e4f8f6e4db96e7cb0dc1b72dc161b82b6e3cdb86e0db86e3cadb836e1b82b6e0b0dc9b72dc961b936e1b836e1b82b6e4db86e4db86e4b0dc1b71c71a9aa61d6ea615a9856a69d6ca61a9aa695a9856a69a9aa6f95d6e56a61a98a69a98a69614d2c29a56a67962432b90fffcb121f962422c485e572196242f2b908e43908b12115c87e572115c865890bcb121f95c845721ff9c8521162432b90bce4290ce4390bcb12116242f2b90cb12196243f2b90fce42908ae432b90ce4290cb1211c85211c87211c8721f95c85fe5890ce4390cae432c485e572115c87fe572195c87e58908e42908e43908ae43ffdbf587ccf8af88c7054224d7aa4ba8d7e30f8ccfe21f88d57a248cc2f80be4ce281294b04b319c5097518e0a4b3197cfa79fa7e1c197c97c9fa7307997c17c197c61c9df1df119f11f19df15fffbd2c4f303b38556ce4ffba9d6c3a41945eff822f199f15f199f1bf199f19f19df15f1160f8cdf8cf88ef8cf88cf88f8cb07c467c4fc66c1e5f065f05f265f0c1c6c1c5f265f25f265f05f265f05f065f25f065f25f26c1e5f256c1fe582f832f860f31b838d31b91b931b91b931b81b82b1b931b81b92b1b831b938e2c0dc18dc1c695a5279921921992112116090fcd295290c908908b048464864865824332434a531b81b831b81b931b81b92b38f2c1c7160e34b0372563705838f2b1b831b81b831b91b82c0dc9606e4c90c90bcb04845824232432432b24332422432b2422b2422b24332432432b2422c1219921121f960908c908908b04846484485e64864845648658242f2c121959211592116090bcac90cc90c90cb048664844866484486564866486484564846484484671c3706ac6371e637071c6372370637237063723726372372637237063723706370372581b931b81b82b1b82b1b831b91b82b1b92b1b82c0dc959c7158dc98dc8dc98dc8dc79606e7ffffeef34bdd4378ce2398c633b8a623188e23d8a62338ae23578c737dd5f2c1c65771985e3d98f6d59abc17163c634bd2f32248939ed2e32232137512e3751d5375488f34bdd534bd2f32208939e92f32212f32248934bc892b4bcc88224d2f220ac882c11269711058882c4495c41c44495c41c4c415c415c4162a0ea514ad14ad14b0887508a68a8bfe75088584434545344a8345a82c221a2a21a2a29a2229a2a29a2221d4a29d4229a2a21a2a29a2a215a21d4221a2a29a22295a279a2229a2229a2a29a22216114ad14ad10ad14d1114d1513cd1110ad14b15268a8a56885689e5844345442b442b4534544345452c229a2a29a2a296114d1517cd1110ad13cd1114ad14ad14b08a68a88568a568be68a885688588938988f2b88f2b88f2b892b89f2c447fff95c496220ae24ae23cae20e2624ae27cb11056c5e5863363622c3115b115b19b1319b13115b19b1b11b13195b116188b0c5e5863f36263f2c3195b11b1317f96188b0c60c44ffff84513fe0c4404513e0c44fc188908a2708a27cc484e74d866254aec44c97d36cd860484dd5ce74b073a64bf12a69b424265841b261ac9585825e312039c325e894339d757312025f2b619312139c3120120325f4db31201213121fffbd2c4e403eff9ace40eeeb7c67f361b01ee56f01203120120312125e3121120325e25f325e4da2c12f192f1ce18909ce996106c160730b01b063981b063981b0580d9f2b909c8240721909624058901c8640721901b679a586c1b61b056d92c363cb0d92b6c795b63cb120390484b121f2c484b121f2b9095c84ae4058901c86405721ff2c484e4121f390484b1212c484b120f2b909624056d82c364db2d936c360db2d92c360db0d936c364db2d82b6c95b64b0d8f2c360db0d92b6c95f34b0d82c360b0d82c364db0d936cb64db0d8f36cb64db0d82b6c7961b2586c15b60b0d92c360db0d936cb64adb2586c15b60db2d82b6c79b65b056d92b6c7fff961b3e56d936cb64db2d92c364b0d82b6c161b3fe6d96c95b60adb211907846400c90c192006482072190c232106484232006483e0c90c1921c0e4120064802321c19218464308c841920f846401190c1920064861190846400c9060c908324384641c192106483f08c842321af3210329369d2693340190343f32830fa66d366d89d35569b2332843e355643f35569b2389d66c327a1d4346c27a33c746c2882d31910ba2b26937840fa321055630fb210343f32832103292b3292b3292b32830fb210321043e3210211321121030fa0fb3843282b3e8f28840cfa3eccfb3eccfa840b10819f47d99f67d99f70899f47d19f67d15c2267d9f7e7081f467d1f5e567d99f47d159f667d9f6583ecacfaff2c1f4583ecae1133ecfa2c1f6567d159f467d9f667d9f6583efcafefcafecafe8b1f458fb2c7d9fd7d15fdf95fd163e8b1f457f657f657f7e57f658fb2c7d963e8b1f458fa2bfb2bfa2bfa2bfa2bfaff2c7d95fd95fd7ff95fd163e8febe8afe8afebcafecfebebfffcfebebfcfefebcb1f458fa2c7d15fd15fd1fd7dff9fd7d163e8fefecb1f458fb2c7d15fd163ebcfebeffffcafecfefe8afecfebecafecb1f658fb2bfbff2bfb2c7d95fd9fdfdff9fd7d1fd7d1fd7d95fdffffff95fdff9fdfd963ecafecafe8febebcafebfffcb1f657f47f5f5e7f5f7fe57f67f5f47f5f5e57f7e58fbff2c7d15fd163ebfcb1f657f7fe58fb2bfa2c7dffff9fdfd95fd985e171611230b82f3a39f7357a8e30b91337c8cc31649334495e331d13324c583248cd30bc7a37d8c630b8c73248cd33301d31fffbd2c4eb83f475b2d80f7774c5b935dd81dd66d8609331e8c630bd1230bc7b30b87a31ec2e2b578c7a44cd130bcb063985c3d9602f30bc2e2c05c63d8f666305e61705e563d985c17985e179aef456bcd7ae2bf46b97961795ae35eb8b070ec1d33a70b070b070b073cb070ced9ff2b5c56bcd7ae2b5c585c6bd7ff9af5c56bcb0b8ad796179617f95af35eb8d72e2c2e2c2f35eb8d72f2b5de6bbd962e3bae2c5e577f9df79dd7162f3bee3bee2bbbffffcefb8b17f9df779dd7962f2c5e577ffff9dd795de57715de57715de58b8eeb8eebcefb8aee2bbcefbbcb177f95de58b8efbceebbfcb1795dfe77dde77dc5777f962f2bb8b17162f2c5de77de775fe58bcaee2c5e77dc775c77de57715de5771dd7962e2c5e58bcaefff2c5e58bffcb17795ddfe58bffcefbfcb17f9dd715dde57715dfffffe58bcb177ffffffff95de5777ff95de577962f2c5c57715dff31a71aca3861eef93355daca37c0a43335288f7337c094a12b3dc8c2f91838c92255e8eef81a70d4118610c2f83d38cf4e248cd26530e4a0a27285214d9d22908a86ab1a822a08160d5636b28d5631a75acb3355d41033558d572b1a70c69c1a74d4111a74b034ef98d3a34e9d21289f9d21a891d212899a892899a89a89f99f11f1962f88cf88f88acf88cf88f8cadf8bfcdf8cf88cf8cf88acf88df88f88acf8ccf8df8bccf8cf8cacf8ccf8cf8ccf8cf88acf8ccf8df88cf8cf8bccf88f8fccf8cf8ccf8cf8cacf88cf8cf8e117c414f8a06f8bf101be37c6117c4137c4117c6117c7063e3063e2063e2037c4f8c23f8823f8e117c406f8df1845f1845f101be27c4117c40c7c508be2063e3037c4f8c19f8822f8c0df1be20651203a2744a0744a89c194480e89d13065130651203a2544c1944eb81d13a260ca240744e89f853e3418f8818f8818f8c22f8823f8c0df13e381be27c606f89f160c7c6117c7037c4f8c0df1be2037c6f8c0df1be281be27c606f89f1831f181be27c40ca2611a240744e8983289046898468903289419448194480e89513832890328983289c0e895120651281d13a240744a890468983289c23448234480e89d13d0eaf5c19a76dea8474e8334e2bffef0669dfffffd5e6498b0751af860e372684a86587c8ccdd48c59074cb41b8c6e358ccc160d08070fffbd0c4fa03fa5daac20ffad4c5bcb45e01dd62d0d43164ad433164933165092b24cd09248c58164c93420c59164c1c160d09160ac923420923164583074cc2c03860e0b2562c79601d3070593070932b074c1d070ac5839614d4282b506a029840a61429cb0a585264489608990225644c8bd32040c8912b206408991225644b0f4c81032240c81032240ac816081608191205640b044afa7de796387de7963be7de95f4af858e7f96225703840e302c44b11f38c3cb1038c4e312b8f962070895c4b1d3e70b1c3e74fbd3ef4fbc3e74b1c3e74b1d3e70f9dff2c73caf9e58e79f79e7def95f7cafa58e95f0b1d2be16387ce95f7cafbe58e95f4b1d2be163a7de7f9f3857d2be963a57c2be95f0afa7ce15f4afa7ce1f7857cff2bef9f3be57dff3ef0b1d2c74afa58e963858e963858e963857c2be1f7a57cfff2be95f0b1c2be1639e57c2c70b1cf3ef4afa58e95f0afa58e9639e7ce163858e963a7de15f4b1cf312012035a04ac34ad1cd31cd3b635a05a0322b47131991992c09a982989a960398c650398c3612b0cb08edcc730730cd34418c1d4660c1d4664c48097cce70e70ce74484c480480c360360c734364c730364b039a65841b265841b2561b0580d92b0d93831d4acea7063a19d0ea707cc99d4ea63948958e0c703831c39bcc723931c244c703832994cb05232994cb052ff2c14cca6c3f2b29160ea56742b3a19d0ea6753a159d0acea56752c1d4cea7533a9d0cea74fff2b5015a80ad41e5850f9a8541ffe5850959d4b074f2c1d4ce8752b3a99d0e8570633a9d0ace8583a959d7cce874f2b3a99d4ebe56ea6e8ea56ebe56e86e8e86e8e86eaea6eae9e587537474375752b7537575374742b742b74f375752c3a1babaf9baba95ba961d0dd1d0add4add7cb0e856e858752b742c3afff9ba3a1ba3a79baba9ba3a161d4add0e8280b1427434258a02ba02ba1f2c501d050796280b14058a03a1a12c50796284ae80e8687fcae83cb14058a0f2ba1fff2c5095d016287cae87fcb1405741e74343fe74143e5741e74141fe58a1ffff2c5095d0f96283cb143fe574258a1f2c28206c48311e6abd8c1e65f197c667f137c67e36a8226d65a82263f197c661f11fc667b99ee662899ee64d41099aaea089b5966ab98fc63f11a7c63f118fc4fffbd2c4f003f3f1a2e20f7375467ab55881ff5a685f198d3834e18d3ad6618d3ad6518d3a6ab99aae34e959aae66aba820634e1aac57aac58d57369cd56cca34e4b0d3856d386d3ad39fc2c34e1b07b07997cb07197c3071c91307997c17c160be0b05f2565f26a26a26585122c28915a89f95a896bfcd44d44cc90890cac90cc90c90cd294908b04865648456484648448656486582423242242324224333e33e233e33e32b3e32c1f119f11f1160f8cacf88cf8cf88cf88f8cacf8cb07c667c67c467c67c6583e3037c4f8c18f8a06f89f1031f101be27c6117c7063e2845f1418f8a06f89f101be37c4117c60744a890328960ca2411a240744a89046898328981d12a240744e8904689c0e89d1284689708d1308d1283289e0ca27c0e89d12c2344f8328984689032897f81be27c40c7c406f89f1845f1845f17063e308be3063e3037c6f8c18f8822f8818f8822f8818f8f063e3831f101be37c60c7c406f8df1611d3bff8474eefffff7fc23a77fff42af314d42032684ee3268340355666c332966d3328556332832830fb43e2c21f1a1f9081908a1f1a771a019341a01a7705d99348c898c80c819341341a1015b98a68a698a615b9ac515b190887d187d07d987d108190819479595b995b8a698a68a61595b15aecad746bb5d95aecd76ba2b5d9ae976585d1ae974579035d2e8d74bb35daecd74bb344220d112f344220b088344a20b088344220e5e89344a20d12893e2e22c311f1b11f1311b13195b196388f8b88d8d8cad8cd8d8cd8988e2624e2620e2624e2220b113e5710711127131271113e58893898838988388883888938989f2b88ff388882b89389882b89388882b8938889389882c449c4c415dd7962ebceeeecb17477776775747757658bb2bba2c5d1dddd15dd962efcb1745777e577458ba2c5d9ddddf9dd5d95dd95dd162e8eeae8b176577458bafff2bba2bbb3bbbb2c5d9dd5d795dd1dd5d1dd5df95dd162e8eeaebfcb17458ba2bba2bba3babb3baba2bbb2bbb3babb2c5d15dd962e8b17658baf2c5d15dd7962efffceeeebcc3e21f88ccb92b88d23a48e8c85e162ca10bc31838f4ed9a4ca17c9924617c987c67f119fc43f1187c63f11613e231f8cbe2309087042b259cc7050908cfe21f8cac7e230f883e332f88be230f8cbfffbd2c4e803f01956de0f73748691b259c1fedab8e231f887e32c07c6503e3987c63f1187c41f1987c41f1187c61f19587c7e7f17c657f19fc5f179fc7f115fc458f8bcafe22bf8bfcb1f11c852195c865890cb1211c872116242390a43390a42f390e432b90fcae42390e42f390a43390e42390a42f2c4865890ce43908b0dc961b836e1b836e5b92c370586e4db96e0adb936e5b92c37256dc1b72dc9b70dc161b836e5b836e5b82b6e0b0dc1b72dc161b92c372586e0db86e7cb0dc95b7056dc961b92c3726dcb70586e7cb121962422b90cae422b90cae43390e43390a432b90cb121f9c8521f9c87219c8521f95c86721487e572116243390a42f2c4865721ff95c8458908e4390bfcae43390a43390a432b90cb1211c872116242390a432c485e72148658908e4390c1890e0c48508a4284521c1890a0c484114840c484069092181a4348508a4383121422908189082290a0c4850624308af808af8ffe0c5f1fff8457c0457c5500002f317f4b633b769735a12c23ffd655317f7f1331bb28365417f312125f325e619317f98c331a17e317e31b3b294b62c18d19611611a5616199db0e698bf8bf9a5b8bf1a5b25b998d98d18bf0bf998da5b18bf18d98bf25b198d98d98bf18d1a5b18d958bf95a5b9afcbf9afcbf79617f2b5fcf1a5f8d7f5f8d7e5fcb0bf95afe6bfafe56bf1afebf1631b2b480b0901625f2c24269024072fa40690242690a42690a40690a406902406904bc58483cd2097cad202b483cd20484ad203481212b480d20484ad21f397920f2b487cb0909a429015a4256901a42901cbc901a429095b9be66c1b066c9b2566c19b0e6960d82b364cd9360dcd360cd8360b06c159b058364cd9363cb06cc237ec197ee11bf60cbf046fde11bf60cbf846401190846400c9081c86420c90046420721900464007219081c86400c9003243039048607219060720900464306484192106480237e832ff065fe11bf40efd7e08dfc0eff7f08dfc197f81dfefc0cbf81dfafc11bf40efd7f065fb065fc197fffffabfffff065f90403cc4102950c62707e0d6dd07e4c83d1044ce8107e0cc6a2954c6271898cc6a1044c41120f4c6541950c7f00c68c411189cc62620f4cc6b20f0d2ddfc4d9505f8cc68c68ad044c7e2950e0f47e4e0f20f0b0c4fffbd2c4ec813099a4d64f76b556e6315a95ff71bac56c4e56c4e63f23f25682068223f263f28226c4c3f2581f8341141131f91f92c0fc16189cc7e1040ac7e0ac7e4c7e07e0c7e07e7cb0821e563f0563f062422426240240624224256240581202b12131201212c090960480c480480ac484c484978c480484ac480c484978c484487cc480484b02425825ff2b1212bbff9dfefe77fbf95dfcb17e3bfdffcefd7f2c5ffcaefc77ebf1dfafe58909c824258907f9c86425720390c80ae4058901c86425720390480ae4057212b90f95c84e4321f2b90962427209095c80e41202b901c86427209016240720909c864257202b909c82405721390480b1212c480b17e2c5fcefd7f2bbf95dfceff7e2bbf162fe577eff2c5fbcefd7f2c5fcaeffe58bf95dfffcefd7e2c5f8b17e2bbf9c8243e589096241e5890962427209016240720901c864057202b9016243fe589096242721909c8642589095c83ce41212b9015c80e41212c7e3fcaff3fffffffffffe57f9ffffffff2c7e55f314d6f4319169c334141731d5320308946c341734134170ba33211d5332112f2c0b198f18711897990984413d984493d9a0b85d98c80c818c81349a995b1a98a69a98a6962b633ea1133ecfa2c1f467d9f458537cd4d534aeb62b534c894b8c894b8d2e4b8b0441a5c44f9b1b11b1311b13115b11b1f11b1b11b1f19b1711a2d41a2a279d42295a21a2a296110ea510ea510d1510d8d8cb0c4586336263363632c311b1319b13115b11618cd898bcae20ae27ffcae23fce2223ce2224b111e71311e577658baff2c5d95dd962ecb17458ba2c5d95ddf962e8aee8b17458bb363622b63362632b63362632b63362622b632b622c311b1b11b1b11f1b115b11b1b195b179b13196188b0c66c6c67131058892c44795c495c41c4c495c49c44496224ae23fce2623cb11258882b892b89ff2b88fff2c441c4441c4c416224e2624b112571057107131271311ffe5712571258883888938989f2b892b89ff38889389892c449c4c4f96119a39a1cdee361e4a6d3914c8ff336348ff31534d6c2b563cc6191d5cc4db0978ca5507e4d09920f0c8022ae4cd6c1534c2980a60cdef1ba0c3660d98c3671ba4de31e28aaf187e68f1a6f1af1a54a6d33663672b6e936e836734714712b8ff38fffbd2c4e483ecd556e20f776ec706aad981ff75f8ff47038ff4712c47f1594c194caa6194c94c994c14c194caa6194c94c15a08958fc18fc0fc1a080fc9b132089a08a081a088fc158fc98fc8fc98fc8fc98fc0fcf98fc8fc9607e4c7e07e4b03f0563f2581f934101f831f91f92b41031f841031f91f82c0fc1607e4c7e5044c7e47e4ac7e0ac7e0d0407e4c7e47e4d0447e7cd0447e0c7e07e0ac7e0c7e07e0c7e47e4b03f2563f263f23f063f03f0581f9ff2c3f2587e0adf82b7e7cdf97e0b0fc1bf0fc1bf0fc9bf2fc795bf056fc961f837e1f937e1f9f2c53258a64e99a67ce99a64ae992c53274c53258a64e99a64e99a60b14c1d314c95d3274c53074c53074cd32574c95d3274cd3258d9bcb1b3963672bd9fcaf662c6cc7b36ce7b3ece57b3ff9ecdb316367f2c6cc57b3795ecc58d98b1b315ece57b315ecc57b395ecc58d9cb1b3963672c6cc58d98b1b31ecfb3ff95ece58d98af66ff3d9f663d9b662c6ce58d9bcb1b395ecc58d9caf66f2bd995f31a74d5738745265324902f836f8cfe233f8d3e33674ca43367494a23248c2f930be02f831f893e334f8c7e232488c392a0c1c661c124657ee67484a267485ee46a25ee47ee4a2457484748548656fc667c6fc456fc4587e23512a422c5211a89d211a892899a89a8919f1bf1943e2f99f19f1160f88acf88df8df8fcb07c66fc47c7e583e22c1f1f9a52121192125219219219a5225299219211921a52f9a521219a521211a52121997c97c960be4cbe5838cbe0be4acbe4acbe0cbe4be4acbe0cbe4be0b05f265f05f3e577c1df17c1df37c15df1e77cdf058be7cef9be4ef9be4ef9be4b17c962f92c5f2577c95df058be4ef8be4b17c1df17c79df37c962f83be6f83be2f82bbe4b17c795df0577c962f8f2c7c47f17c7e58f8bcb1f115fc7e58f8bcafe22c7c47f1fc7fe7f1fc657f1f963e33f8be33f8fe22bf8cafe32bf8ffcfe2f88afe22bf8bcfe3f88fe3f8cfe2f88afe32bf8bcb1f1163e32bf88b1f17963e2fff3f8fe32bf8cb1f11fc7f1963e3ff2c7c5e7f17c5fffffe7f1fc7fe7f17c657f1f963e3ff2bf8cb1f179a08f40992f5881a6d30c9b137401a08a089545f8b131a56ca8731afe2696ecaa73182fe68234aa63f10787078c4e74a83f0563f063f0c4e70798d674a8820fffbd2c4e783f1f556c80ffbadc667b3da41ee572078d43f06822820682082056c4fe682082063f23f0584112c0fc158fcf98bf0bf18bf8bf198d8bf960c68acc6cac5fffcd0447e4c7e07e3fcc7e5044b03f27f8fc163f057f93fc7e7cb1f92bfcff9fe3f27f9fc9fe7f257f82c7e4b1f83fc7e0aff3ffe58fc1fe3f2577f2c5f8eff7f2c5f8efd7e3bf5f8eff7f3bfdffcb17f2c5fceff7f3bf5fbcff1f82bfc1fe7f258fc1fe3f058fc9fe7f07f8fc79fe3f3e7f8fc15fe0b1f92c7e3ffcb17f3bf5fcefd7e3bfdfceff7eff3bfdfceff7ef2c5f8efd7f3bf5f8aefc58bf162fc77ebf95dfcaefc58bf60cfc047f207f8fc833f1067e211fcc0ff3f9c23f9067e611fc033f011fcc19f808fe60cfc033f108fe419f9c0ff1f9847f007f8fc847f011fcc19f803fcfe419f8c0ff3f9c19f8067e60cfc047f303fcfe703fc7e607f8fc423f808fe3847f00cfc033f211fc047f007f9fc847f381fe3f3833f00cfc833f3c23f9833f103fcfe40ff1f85f34b617e36544b7317e7f1378c69630d95a03b2898d331b7f02b39c325e619325e121375712131cd3b732c20d931cc697315c0a02c16b990d8ae198da5b98bf25b998db2a18bf18d9a43ce9a432f9a40901a412f9f39ce9f3b2f9f392f1a42901612034839d2c24269024072fcbc690242690a406d96c9b65b26d86c95b60db0d836c360db2d92c360f98d82be695b60b1cd36cb63cb0d936cb64b0d82b6c1a814056a1350283cebaa12b5015d73cad426a0509a814275cae1624057212c483fcb1212c483cb121fff2c483cd42a0350a80d415d350a80d42a0350570b0a0f3ae574ad4258509a85426a15015a84d42a0350574b0a02c364db2d836c364db0d936c360db0d82b6c1b61b06d96c961b3e6d96c1b65b06d86cf95b64db0d836c360b0d836cb64adb258e6961b1e586c95b64db2d92b6c15b64adb26d86c961b26d96c95b64b0d92b6c961b06d86c795b60b0d92b6c961b2586c9b65b1e589016241e5720390480b1202c484e4120390c83cb120390c84b120390c80e43212c480b1202c484e43212b909c864057212c484b1212c483ce4321000fe62a690046401957256d7c1a044401990048111a046401158532620814aa56208987383ab184bc3ab986343f81931a32a9863432a98c4e41e9907fffbd2c4ea03b2f156da0f7790863b335a4dff5618a2081882220898a9a14c9900655c985328111853214cf9c014019aa694c994c94c194c14c994c14c1aa62a6194c94c960a64c7e47e4ac7e3fcd0447e4b08225825e325e121312025f2b121325f25f2c090960978c4844860cfc847f211fc01fe3f011fc81fe7f20cfc01fe7f00cfc047f20cfc01fe7f00cfc833f20cfc847f103fc7e60cfc047f207219001c86420721900324108c800e432108c84192006480232103904840e4121833f011fc01fe7f103fc7e3e0cfc033f007f9fc047f011fc01fe7f007f8fc419f908fe308fe211fc047f00cfc847f207f9fc847f20cfcc0ff3f8067e7067e023f808fe40ff1f9067e211fc033f011fc833f3833f303fcfe3067e00ff3f908fe019f9833f20cfcc23f903fc7e019f808fe023f8e07f8fc40ff3f8833f1067e423f9847f207f8fcc19f9847f207f8fc033f211fc847f00cfc033f1a99d67fa933ccc957f313fea3d51f6a55f31a7069c3183d26534990c3934f8d3e236f88fe235f8a7e232f88fe331ce038c31588cb934a59673bc724235635633739738338f90f34a470437054a5324324237e3be32b7e333e2be337e27e32b3e333e23e333e33e233e37e22c2899a895211a89d21f0b0a2456484648648456484648694a648648456484582422c1211921a52159211592199219211592119211211fc5f17f95fc457f195fc5fe7f1fc658f88ef9be0b17c1df37c1df37c1df17c9df17c15df2577c15df277cdf277c5f277cdf3e577c962f93be2f9fff2bbe4ef9be4aef93be2f8ff2bbe0db96e0adb836e5b836e38e36e78d36e1b82b6e4db96e3cdb86e4f8f6e4db96e4db96e4db96e0adb836e1b92b6e0e4390cb12115c84721c84572179c87211c852195c84721486721c86721486572195c865890cb12179c87219c87219c872115c8477c5f0577c15df2577c95df077cdf0577c95df258be7cef8be4ef8be7ffcaef83be2f9f3be6f82bbe4b17c962f82c5f1e577c15c867214845890bfce4290fce43908e4390ce4390cb1219c85219c85219c872116242390a43390a42f2b90bfcb121ff95c87e721487e62898a2462891ee462890a26541f88c3e27f88c5121444f3c2144ccf4f0be4c2f93d3ccf72674cc5133dccd57a4990b061c985f217c9ff1fffbd2c4ee03f47d56cc0ffba9c6beb5d901ff59b0bf19df11f11bf1df19c9117c94922997c97c1c91b07645144c74874847ee6a25c3a4251335125133a4251335135132c5f19bf1bf19bf11f199f11f11bf19f199f19f195b07997c17c997c97c9b07307960be0cbe0be0cbe4be0b05f3e67c47c467c47c6567c667c47c4583e22b3e32b3e22b3e333e33e28457cc22be40d7caf98457c01af85f211c1e115f0b062f903c1ebe018be418be00d7c2f8062f9035f2be018be40d7c2f908af908af8062f9062f881af85f0115f006be57c8317c01af85f2115f2115f20783d7c0317c0457c0317c8457cc198380d7caf9035f0be606be17c40df13e3063e2037c6f8f08be2c0df13e3037c6f8a0c7c406f89f1031f16117c5037c4f8818f8c0e89d12c2344819448194482344a11a260ca2411a260744a894234482344e11a240744a89f06512c1944e117c606f8df1845f1845f140df13e3063e2f063e308be3063e3037c4f8f063e2063e3063e2063e308be2831f1031f142344aaf83289ff06512846897fffff08d130651354c414d45332e313030555555f2c113a6ce9be046f81a9467a1d687668aaa2a87e79a2a86d07341e6491924469329244513e39afc65f199484f8199ee6a5118a262899a94428999ee628918a262891be062891a94452118a2452199486a51191388aa1913844e9a2aa44e9913844e9a2aa44e1a2a844e9913a44e9511542b2270a1f14aef8cacf88a1f17cb0fc4585122b5123a43a43f2b513f35125132c28981d13a240744a8904e8981d12a25c0e89d1308d1203a2744c2344c1944819448194480e89d1275c2344b03a2744c0e89d1208d120651284689e0ca2703a2544c1944a0744e89c1944c1944e11a240ca2411a260ca260744e894194482344a0ca2708d120651208d1206513df03a2544e0ca260ca2613a2508d1203a2544982344fc23449ffc19a770669ce11d3b08e9c08e9c08e9c8474ef68334e230669cf8334ee11d3bedfe0cd39ff84b4e0474e3c19a737fc19a774fb7ffd1a8ac5ca3172d7853ebdc5cb2b5e0cd19b4668a2f083bc90bb3285d90ca6d29b0d1730d98e3545e10d7855e08c47023f8db3711c4a11fc32ec8bb23466cbb234668bb23172978328bc20ad7853466d19d32eccbb334674bb22c233450bb2fffbd2c4d583e9c98ec40ffad44632b35881ff5a9879a3345d915a336562e5128b9671fc8e068e28e068e08e068e31fc568e271fe8e25836733666e82c1b3959b3159b3159b39b749b3160d9cacd9ccd9cd9fcb06cc566cc566cc66cc6cffe566ce566cc566cc66ce6ce5836633666e93366367336736636e83662b36636e86e82c1b3960d98231c4231c4231c0191c4191c4231c0191c4191c0231c58191c20c8e2118e20c8e00c8e1038e11c0231c4231c4231c40e38471c191c6071c638846388463840e38c70038e31c00e38c70038e11c0231c40e3847108c71c0e3847181c718e00c8e2e0c8e2118e00c8e18323881c708e0118e211b940cb97f03b9572c2372af065ca81dcab97f832e5f03b9572c0ee5dca08dca03b9772c2372f81dcbb9411b940cb97fc1972e11b940cb94e11b940cb95ededde0cb956846e5fff09dcae12b960000001fcc2994b64d58f35b0cd6f1530d2d835b0d0220a60c31b2ca4c17e05f8c4b605fcb00bf18c303ab18eac30c98822208960c6b31040a55319544b630c6831b3195031b3200c29831534ab830a648022a0532581534c2990a60ac54c2c0532562a69602982c0a98614c05305640116031b305fc4b72b0c68b018d16031b305fc17ff2b7e3cadf92c3f0587e0df87e4df87e4f1b5fcb0bf1afcbf79617eff2c2fe6bfafc56bf95a42690a4072fa4272fa40690242690a42690242690240572f9a40901a409015a42690a40690a40690cbe690a4269024256901a40901a40909a42909a412f1a41ce9a42909a4090961202c5f8aefc77ebff9dfafde577ff3bf5f8efd7e2c5fbcefd7f2c5f8b17ef2bbf15df8efd7f3bf5fbcb17e2c5f8eff7f3bfdfcaefe77fbf162fc77fbf1dfefc58bf795dfcaefe77ebf1dfafe77fbf9dfefc58fc1fe7f057f93fcfe4b1f82c7e4aff1fe58fc95fe0aff258fcf9fe3f258fcff95fe0aff1e58fc95fe0b1f92bfc1fe3f257f83fc7e0ff1f8f2bfc9fe7f3e58fc9fe7f257f82c7e3cff3f92c7e4b1f83fcfe7cb1f8f2c7e0ff3f82bfc9fe7f257f9ffffcbf79dde6bf76bb87ef58ffffef3cf9bfdd65909587c663f127c65455e4d2641838c9224994c9221830c66c0ca4c0fa0ca4cae20e34c5632438cbc71290cbc638a4ad2642c05f0617c8c1c787124465f2c1fe7485485d3f72fffbd2c4ff83b74592d26ff796ce783199c1ff75a8a433f73512314c4212c15b9a1095b195b15b960be4cbe0be4cbe5838d838be4d838be0c6e4e30ce386e4d58ce38b071e563706370372582422c252960908c90d297cac90cc908908ac90cadb936e1b936e38c36e1b82c37056dc1b71c61b72dc9b70dc9b70dc162f9f2bbe4ef9be7caef92c5f3e577c15df058be0aef8390a422b908ae422b90cb12196242f2c4845890fce43908e4390ce4290ce43908db86e0db96e4db86e4b0dc9b72dc161b936e5b836e5b936e5b936e1b92c370586e0b0dc1b72dc95b7256dc1b70dc1b72dc9b72dc1b70dc95b7056dc9b70dcff9b72dcf9b70dc9b72dc15b70586e0b0dc1b70dc95b726dcb71e586e4b0dc7fffffffff95fc658f8fffffffcafe2ffffff390a43390e42f2b90ce43908b12195c86721c86721c85e5721796243f2c4845890cae422b908e4390ce4290cae422b908e4390cb1217fffff962f92c5f3fffffffffe58be7ffffffffcb17cd5f2c0a266f813e066289b3a462529c5265e39c50512651a4ca61c96096631294bc632f1cbc731294bc630e30ae532b8c90f3158c38f32438ae33158c1b82b0e34a8491985f04929924630798c1e3079978c71498948121184847141589486289948665210a2462898a26581448aca432c0a2462890a2456289958a27e58144cb1f17ff963e23f8fe3f2c7c5e6dc3726dcb726dc370586e4db86e4db96e4b1c79b70dc9b72dc1b72dc1b72dc9b70dc1b72dc9b72dcf9b72dcf9b72dc95b70586e0db96e0b121162432b908b12115c865890cae43fff2c486572195c85e6dcb706dcb706dcb726dc37256dc15b7256dc9b70dc161b92c372586e4adb8ff36e1b936e5b8ff390a422b908ae422b908ae432b908e4390ce42908e4290ffcb1211c8521962422c484721486721c86572196242ff2bbe3cb17c15df058be4aef82bbe4b17c95df258be0b17c9df17c79df37c95df277cdf258be3fcef8be3caef82bbe7ce4390ce42908ae42390e43ff2c48457211c8721962432c485e721c845890bce43908e42908ae43f2b90cae422b908ae43f390e432b90cb121e11a244c8532310ce157e3496d8d93103fcc48c61f831931cad5270ae8192a1276cb51950b27064a9958b034403a095cd245b3b7114c8a46353c2ce1fffbd2c4ea83f37d5cce0ff6d7c60934de41cd6691444353298d52a832342b64c8a324908d5644353aa8444a1cf46b3f9a6506a968b563fea8af41bb1a648798f1e63c898c266f07155e133b3428486c913c33670cf9a295866cf19e39485681a081a081a1e129c677e57e1a07cacd338ad120ecd23499f1de8cc44d0f8ce46e19e819c990a0fe52909c5101a089f871a3e54287b64d19551340e34117fed19e91222672049f133f1b24748b928d4a8f709b9371d2478a3a26e891e375d22fc75f375b28f33ce909bd76cecbc9301f81dc82ceab0a9713b93676594f58edb49da3bef3c2f3bb03b6b1cbdf772e8cf0b4730257481e26ecdc70de789b62ab46d344ae916a6e3981b8f916a586c6b29d8d916c6f3a6eb84df9bed5b98379ee61f52c72bd3d3dc87e821ca177e00791c393b87227f2cd69c7ddc7a067703cc3b0ee47dafcbe61fbad63ee01800661f807c0111c7079e00600181e7819600647aa47e30c10cc641634bbb8df69a30a24cd04093289c8cae19347bb8e0aea368b28d8ea232684cca8573291ccd40a33350ecc624a30995cd890738837cd083103010c969c366b18d326230e03d1b0c1a1c317908ca25031f8502c0b2c898684248150e4120d48b4e061269366e3a6e4269a868803069b4e9c149d4e930374461238afa008c638402091a80889ac8840afd213404097154d5215a622b3ded69d6804b9a641a640282a5500d598d64c98100a470c870a802590fcd274de84d350cb014ba7df57e00281aa52ce5e2c55733dceccb1da81986f825237da3552354c4d752de4b60161a862611a68063251aa618a71c381bcaa78ad160060880a19d761ac460168cb38280a22ba4826407294a76971400b370db81204d8111b8f344f102a8e2e36a8dae0369545055d5692f2ca619932e67782e235a17eb5aa3a58661da90d3b4ca588b5d4e50214d093204b8ac74401342cd035225f635d0f3639a0ba51c4e648a6f9554c0b385ced7393cb8cf34a6970a6b5ba5a6ed5a5a5d534bad56954bad5594cb6f5694cb795a354dda58cd3674b19b3a954bad56954bad5594cb7095592028b51774bdc5f541a2a0287884f4281658d330cc64c37028f90c0237c00d19e686807c2e76e46b7a60fc415882830e5341837c7077c6a1e61ac1664858156418b18fffbd2c4f28234520cec0e67178619bf8c199c3fa82898c416f157c0b2aa1a08eb2a42498c798ab00190bb440d8a34055cca2823337443517315c0a3e43008df023463a6680c44a04145d541a56555050f50c51751550e50d5165655505575344d90148c4b04b844f2580cbc28c30941d0128808c0c28a9890e38611942802e5abb7325d56e5d9a765618b8414088443052520e8c4002e3913005532a0c5b0af083a29c02e4d0e01ac3546c3805c20892c065e166015260121a3178ad6bb7265da54a5c10a804031921214708210972048e1862c885c42852520e8c4422dda0115e3427f6028360882dea6429528dc91a8ec94a92891e98050305180050a985124a81d488085970e60634c20061c54c4871c3084a5a82dfa5123ea732c0a8f2db5805575e0d11b0ae972bcbb522ad2a5c49513d288a9280bb96c32d04749fc894c24d10a7523635c282d52c08ee9955ca55d2fae14ec0c70e94c414d45332e3130305555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555";
3253
- var As = Object.defineProperty, O = (a, e, t, i) => {
3466
+ const Is = "fffbd0c40003a861a6f64deb05ce8fbd1dc1ee6979000bf3230f3195138b950cbe3649439256307747d31c26065d09cfae70d799f0a043c6a90008c0101188082314680d008619c9079b61dc806a921a220095277a60d4131e44143d53814e10f4d06ba6491eb478900a8d59016632a23e0fa358875c770146cc650c1c499dcb9b0965d7500106c321427219428febbdafb2b5d76979a75ae40018d025f96f71bad4b0257666051808e5b74c34bf2db9660bb0e24b2a35886616f617013a24104242304600910b1130dc7b4e81750bb1216e880432ac0d75b0a2a1834f45e8e9a279a9c6c22cc9a7e3ac01cc5335e8c0d97180c960bad7998ce9ac025a2f1a0c888e02c46508045a96a20a60c91980100828a917425f96ddc64bc2ea19146c50b00bde68319005d85d10e462314ae197f0b48c74bfe986ced9dac3a9bbfad7e8f7ac2a525253c6e36cad4dd7c20e2ec4842dba61cbf30f0f7d628635005a66e63ec63560f22a48c694034a695617e603c12c05077310c0923018053379a48d1e921e409b28546c46619d8fa6c9b019ea20762d318e34c6291699d98662a61861204fda2a7933d57c1d023391f8605262a1598449c1ca332e084cb25a3198ac94666361b99f05c67c1aba0151b18d456ec8e0b4c667924153ba632409114cc587c7867ca8c047dcd7a834bc8d2a033a141df48ab82a803bd1a8651a215e356c6161b062114cb841dd89589b05f0d10ad255c4d70d8ad245e4abcd6b33fca8d6af5cc3db8d9244511ab2206a56c885690ad12cc1ba16308528d539daa40b22baf35eb61a7044a988132e926b754d82ea8ca85199ad5c42c0d62d35eb8d7301d56ef5b26c451748198c2a22c319b24ab67a246b186c8af0d54354c0957c342d9a2a4d7b3245e585c4d7254e107501450bb46abbfa38b2331996d9bae08953352c48af43d5c7b08b6572a44e0b11775fd8cbb2b0b0343230c6c5add2ca5ac8d549765977ff78e59659ca49adde749c6789409753bcff43d1a8d46a532da5a5a5a5a5a5a5a6a6a6a6a6a6a6a6a6ab671c71c71c6ae4141414140a0a0a0a0c2b06e0b039c1829859998b165991a5d2aa598e0a714183727471921e5721a1037a9c2fb7a1b9c0dc99c6ab19b821219de39219b82a521908908987d2ab1aab194159219cb31211fffbd2c42383f4bda0d20ffba7c624b3dd01eee938b82f149f14b82951c14d290908c90d294c90a598b0948572ce584a434a54a52b4a42c3829592199219219a52921160908d295294b1c79b70dc9b72dc9b70dc15b71e6dc37058e3cdb8e34db9e3cadb82c37056dc95f1e7c6f1e58e3cadb8f2c4845721f96242f2c485e7214865721f962422c484721c845890cb121f9c872116242f2b908e4390bfcae432b908ae43f390e432c486721c85e5890cae432b90ce42908b121f9c8721962432c484721c865890ce4290bcae432b90bcae43390a432c485e58908e4290bcb121f95c86721c865890cae432b90cae42ff390e422b90cae422b90fcb121795c865721795c86721487e721c87e58908ae422b90bcb12195c845721796242f2c48658908ae43ff390e43fff390e422c4865890cb121ff9c872196243f2b90bcae42fff2c48458908b12116243f2b90ffcae43fff2c485e5890bfffcae422c485fe5721796243f2b90bfcae42ffff2b90ffcae432c48460a40a6618626a61ce3d466883d6645657458106350e2d6321a39532150c231a421532413d3399952b690e8430cc534d4ad0638ad993418742c24072f7385897cae5e348120397e5e348521397e5e2b734cd8364b06c160d93364d82c0ea6838ea63a0e863a8e9e581d4ca0283cd5d284b050795942650143e6e1c1b87058706e5c95b9370e4dcb92c382b706e1c15d22c522ba7e574cae9f9d2a458a474a995d32c52ff2ba4574cb148b14bfcb14cb148ae99629795d22c532c533a74cae995d2f3a74ce9533a74cb148e9d2f3a74ce9d22ba474e99d2a458a674a99d3a65748ae9f9d2a474a91629962995d23a748e9522c53f3a74bce9d3f2ba65748afa9f5ea57d4b1d3cafa963a163a7963a163a1f5ebfe57d3fcfa742bea7d7a15f42bea7d7a1f5e9e7d3af963a9f4ea57d4fa752c74f2c75f2c743ebd3fcafaf963a7ff963a79f4e9fe57d7ce9d22c532ba474a91d3a674a97962996297f9d2a658a458a658a458a4574cae916299d2a474a995d22c522c533a54bcae915d32c522c52f3a548ae99629795d3f30c6831b320f483c329501f8331a98f233a001f9342646273295483d326307f03331098c307e52ae3189883d3186475630e704da30e744db320f0627329501f831040411307e4fffbd2c42383f3fdacd40ff6b68668b3dc81eeed7841031044a54318984112a8c4e641e83f26208082260fc0822560fc183f041e183f00fc183f20fc983f20fc983f20fc95896e60bf863460bf86365805f8c17e0c68ac31b2b5f8f1bc68d7fc68d7f5fcaf1b35f97e35f97e2c2fc585fcb0bf9e36bf9617e2b5f8d7f5f8ad7f2c2fc6bfafe56bf9e34bf79617f3c6f1bf2b5fcb0bf9afcbf95afc585f8d7e5fcb0bf611fc419f8f08fe7833f1e0cfcf847f308fe7833f1f067e3c19f9067e308fe7c23f8c23f9067e40ff3f8067e20cfc047f00cfc611fc81fe3f207f9fc033f211fcc0ff1f903fc7e423f803fcfe423f903fcfe00ff3f8833f011fc847f211fc047f303fc7e211fc01fe3f211fc033f011fc7067e40ff3f908fe023f808fe00ff1f903fcfe019f803fc7e419f808fe019f9067e40ff1f9067e211fc01fe3f3c19f8e0cfcc23f9067e40ff3f8067e023f808fe60cfcc19f8c19f9847f211fc047f011fc033f1067e60cfcf833f25808830881d435e33e33263062346d46d31d427b31d41d4346d3c633201d5308827a308846d351212e32267a39ea7a34b92f3221d537552f32252e2b4b8dd5c80c88c84e7a4bcb0ea9ba9e315a5e697baa644cf473da5e58220c894bcb0449a5e449612ff2c110584bcb0447991044191244160892b4bfcc88224ac882b2a4d0a114ca8114c44114ac442c089e562279588856c458633e362f3e362362623e3e3f2be23e3e32b633e263f2b88fffff2c44f95c47f96227ce2224e2620b11071310713105889389882c44f95c41c44496220ae23cae20e2627cb1127111257105889f2c449c4c416220ae24e2224e2620ae24b1105713e588838988389892c44f9c44416224e2220ae20e2223cae27cae23ce2220e2620b1105711e5712571271111e57127131257127111271313fe713125712588938988388892c4479c4c41c44416224ae24e2220ae20e2620b11058882c44ffff95c4795c4ff95c415c416220ae20ae20b11271310571271313e58882c44f95c49c4c4ff95c416224e2627fce2224e2220e2220ae20b111e57107111071111fe5888ff389882c03a18838cc99ca16b996b8501ad09db99db86c161e34cb0c730c6641d4c664f7cc570e54c570570cb08734d2b4b08ac360cb5c284c86c574c57428fffbd2c41e03f239a2e40f7370c65fb39cc1eeed980c364364c360730c364edcc360364db2d936c734f9bcd3e6b60db0d82c734db3cd36cb60adb27068399d732588319d20e7068399d20de5850f9d75405850796140575c3535335252353c32c611e1291a9e11614cd4d4cf0d4cf0948e8684e8684b14074140574058a12c509d0d09d0d09d0509d0501d050796363fcaf64af67ffcb1b257b1fe58d8f2b74375742b742c3a9baba15ba161d0dd1d4add0b0e9e6eaea56ea56ea5874374752c5096280e8680b14057405743e57407414058a12ba12ba02c50f96280b141e58a12ba12c5096280add0dd1d0dd1d0dd5d3cb0ea6eaea6e8ea58752b7537574374742b74374752b752c3a95ba15ba9baba1ba3a161d0dd1d4b0ea58742c3a7ffff96367ffffffffffffffffffffffcb0e856ebe5874f2c3a961d4dd1d7fcadd4b0e9e6e8ea58752b752c3af961d4add3cb0e86e8ebfe6e8ea587537474f2c3a161d7cdd5d4dd1d0dd5d4add3cc388588c9e8220c4b91b4c989388c58898cc5b4740c2a48c8c58c38ccb8898cc9ec220cc84c80c4b84bcc224754d4491b4c62988c63588ce2b88d2e224d2e224b0449f8f3d1a5c9719104499124415a5e6971106973aa58750d2e220d2e220d898cf8d8cd8d8cd898cd8d88ad8cd898cd8988b1c7e586336363f2c711b1311b1319618cd8d8cb0c6586236262363632c319618ccb8b8cbcbcb05c565c582e32e2e32f2f32f2e32f2f32f2f32f2f2c1796220ae24ae20b113e71313fe71111e5888388892b882c449b1b115b11b1311b13116188d898fcb0c66c6c45862363632b632b63ff2c319b1b1796224ae24b111e711125711e5713e5713e58882b882c441c4c4f9c4c4ff9c4c4f9c44495c49c4c416224ae24e2224e2627fcae20b1105711e5711fe7111071111fe57125713e57106c6c46c6c45863f2c3195b115b19b131796188ad8bcd8988b0c45862363632c319b1b19b131f9618bcad8fcd898cad8bcb112571257125888f2c44ff95c495c4ff95c47f96220e2624b11258882c441c444ffff96224b112571257105711e588838989f2c44d3045045310b0a932632e232630623562062316226236620e32c1b198850229885919194a88598220e81fc431160623589e23588622b18cde2988de3788c63588fefffbd2c42083f3559ee80f774bc682b4dcc1eee9782388c6278cb0b1161623388e32b588ac62398d633188632c0c46318c66319c46710c66310c66b1ac66318c46310c46310c46710c6563118c431f98c63199c63118c631960e3f318862f2c0c7e6310c45818cb031960622bc678f1163196319e3c658c478b1163179e2c658c65788f1623c58cb188f1622bc678b115e33c788f1623c58caf195e32bc5e71221c5885710e24438914ae29c58a71621c48a588a5714b110e2c438910e245f38b13ce2442b8a71621c58a5889e5714ae295c42c442b8a5713cae29c48858885714b110e24538910af115e22bc658c478b17f95e33c588af1ff9e2c678b19e2c678f1163179e2c478b1ff95e3f2c62f3c78fcb18bcaf196317f95e22bc7e5788f163f2c632bc5fe58c678f195e22c62f3c78bfcaf1163196317f95e32c622c633c58caf11e3c4578caf1f95e32c633c78bfcf1622c632c633c588b188af19e3c5e58c658c678f11e3c678f17ff96319829829986109a99a6b1319ef03a19ef0cc99150cc195d8cc99a683a18730f598ca89e99a615d995d2819fbecc9d755d95c54698a626980d26559dc71520c68357471520c6cc33075d8ea63a0ea68345468320e63a0e875d20c683a0c63aa0fe5841cd98664b0831a0e8318ea3a95a0e563a160752c20e63a8e86838e858418b03a160753148523309353148c22b14cb02918a42918a629160522b14cc5314cfaf52bea7d7a163a963a1f4ebe7d7a95f53ebd4faf43ebd0afa795f53ebd4afa963a1f5e87d3a963a15f43e9d0afa79f4e858e858e858ea57d0afa963a9f4ea7d7a9f4ea7d3a9f4e857d0afaff9f4e9fe7d3af95f52be858e857d4faf53ebd0faf53ebd4afa1f5e857d4b1d0afa9f5ea7d3a7963a15f43e9d0faf52be87d3a163a163af95f52be858ea57d4faf5f2bea58ebe58e87d7a15f42c742bea58ebe57d7ffcfaf52be9e7d7af95f5ffff2c75ff2be857d7ffcb1d0faf52c742c742c753e9d4afa95f52bea57d3cb1d4afa95f52c742bea57d0afaff963a95f43e9d0afa7f95f53ebd7fcfa753ebd3cafa15f42c743ebd4afaf95f5f2c752be857d7fcb1d5508000160382b0e0d954f0d94654deb7acc397acce7d10dea4f0d4b2c4cb02c4d311a0ad3134c0aa34c4ef33b8ab3059193460b03fffbd2c41a01f0c5a2f0aeeb34c619359dc1dde6682c04b32403834f43832403932443930e03932403932413c3240392c070648072561c9870489a7a48161c1b972587258726e5c9b87265e51ca2c65cb9cb2e65fe1cb94565ce59634a94ad21a44a584869529a4485694ad216129a54865cb1972e72e51962c65cb1972c565cb05ccbcb32e5ccb162b2c56b79acb1acb1aeb9acb1aeb9acb1aeb15ac6bae56b15ac56b15ca72485894e590e490b1295ca5894ae52b90ae539252c49e724a5897ce494b121cb2f9cb21cb29cb21c9215ca5890e497ce597cae42c4a57215c85894ae42b97cf9e4f9e3cb1c15f1e57c796393e38ff2be0f9e7caf92be0f8e4af92be0b1cff96392be0f9e0b1c15f058e0b1c796382c71e7cf3e7c7257c95f258e4b1c95f1e58e0af92be4b1c1639f2be7ce493cb127f9c9215c9e5721c9215cbfe72ca5893fcb1279c921cb29cb2f9cb29cb21cb29cb295c85890ae42b90ae42b93cb12795c857298701c1609034f2413901eb3094683091733344d033e0d132acaa34c4ee30957434c1313244382b398d3c4f0ace730e13d34f53d37ac3937ac3830e4382c07261c870648a786ca27a580e4ce244e44e4ace4ce0e4ce240ce240b072723226727058382b90339392b382b382c1c99c1c9c89c960e0ce4e0ce4e0b07067273e6727258392b38ff2c1c19c1c960e4b070670705838f2c1c19c1c99c9c19c1c159c159c960e4ace3ce44e0ce4e3fcce0e0b07058382b38339382b3933839396439252c4872ca72ca72ca57295c872485890ae53964f3965f39242c4be58e4af92be0b1cf96383e783e383e382c727c707cf07c727c73e58e0b1cf9f1c15f058e4f9e0b1c16382c727c7257c95f07cf27c707c727cf257c9f3c95f258e3caf83e792c73e58e0b1cf96392be0af92c7057c9f1cff95f058e0b1c16382be4f8e3ffcaf82be4b1c795f057c16383e392be0af82be4af82c71e57c796393e392be4f9e7fcaf9f2be4b1c795f3fe7c7258e7caf93e392be0b1c79f3cf95f257cf95f1fe57c79639ffff2c70a0800079603ecd71612cb09de71381f66aac420687e4226650cdc6176680617668061769dc58268332932930fb211343e211355621032115563328328343f0fa30fb0fb33280fb321021032112102b43e32112112b329fffbd2c42b01f3f1acdeaf777286a1355cc1eeecf82c1f467d1f5e7084207081f456c895977e65db2265d32265db207081f4583e8cfb3efccfa3e8b07d960fa33ecfb3fbfa2bfb2bfa3fbfa3fafa3fafb3fafb3fafb2bfa3fbfb3fafb3fafa2c7d963efcafe8fefe8b1f5e58fb3fafbf2c5d1dddd9dd5d1dddd162ecaeecb1747777477574577458ba3bbbb3bbbb2c5dff963ebfcb1f657f5e57f457f5e57f5e58fbfff3fafbf2bfa2bfa3fafaf3fafbff2bfbffff2c7d963ecfefe8fefeffffcb177e577658bb2c5d7962e8eeeebfcb17458bb2c5d1dd5d962ecaeecaeecb176577458ba2bbb2c5dff95dd15dd95dd1dddd7f95dd162e8aee8b17658ba3babb3baba3babb3baba3baba2bbb2bba2bba2c5d9dd5d15dd1dddd162e8eeee8b177e7f5f7fe58fa2bfa2bfbff3fafaf2bfbfff2bfa2c7d9fd7d7963ecb1f47f5f658fb2c7d163ecafebfcfefe8afebfffcfefecb1f5e57f457f7e58faff3fbfaf30e326333624e333632e231d546d312e1d530a8233323210b36ac7a31ec7a2c4f46eaba86318c46f18c67719c47315c6631ac46f19c658754c89224dd4c84f204bcc894bcd2f4bcd2f224e7a4b8ad2f34b8893220882c11056441a5e44191297160882c112644113e711125712588938989389893898838889f38889f388882b8838989f2b882c447f9618cb0c46c4c658633626336262363622b632b633636236263362622c319b1b19b1b19b1b195b179b131f9b1311b1311b17196188ad8cd8f88b1c656c65862363622c3195b115b196188d8d88ad8fcd898cad8cb0c45862363622c3195c415c495c416227ffcb11258892b8838989389892c441c4c416224ae20ae23ffce2620d8d8cad88b0c656c456c658632c31f95b19618cad88b0c5e6c4c66c4c7e5863362632c319b1b1f95b11b1319618cd8d88b11058882b892c4416224e2220b113e5889ffff2c4479c44415c415c4ff96224e2620b11257125710713125712571057105713e58892b88f38988388892c441c4c4796224b111e58882b882c44f95c416227ce2624b1105711fe58882b882c44795c4ff96223cae20ae23ffcae26f331e433b76dc30b95e3a3df73449133dd72835791335782f30bd1236a87a37d8c730b8c630bc7a331c2e357df730b82f31ec7a30bc2f30b87b344daa3fffbd2c41e83f005a0ee0eeb3706ce341c42bdd0003187a31e8c730b82e2b44ccc60b8cc61e8c7a31cdaa1e8b03d960c731ecc731ec7a30bc2f2b1e8c2e1e8b03d1ae5c6bbd16171ae5e6bbd15ae35cb8d72e2b5e7e97161795ae35ebcd7af2b5c6b979af5c6b97161795ae2c2f35cbffcd7ae2b5c56b8b0bcad715af2c2f35eb8d7af35ebcd72f35cbcd7ae35ebcb0b8b0bcb0b8ad79ae5e585e56bcb0b8ad79ae5e56bfcad796179ae5c585e6bbdff9af5c6b971af5c6bd7962e2bb8eebceeb8aeff2bbcaef2bbcb1795de58b8eebceeb8efbcaeffff2bbceeb8efbcaeef2bbbcaee3bef3beeffff2bb8b171df7962f2c5c58bfcaeff3bee3baeff3baf2bbceebcb171df795dc775c58bbcb17962ef2c5c77de58b8aef3bae3bae2bbcaee3bae3baf3baf3baf3bee2c5e77dde58bcaefffff2bbffcaef2bbfcaeef2c5e577ff9df7962f2bbfcaeef2c5de577162ef2bbcb17fff95de577960360c731e34da20e50cb58e4cd688b08d2b0734e5d9e30c730360b03306576576658639a61ae76c639a76c6b40958561b2695a76c561b0639a5847db58458360adcd2c58666c9b07615846e6d8658364dcc730dcc730cd8730acd83364d8f3361cc2c1b256e6959b258360acd92c1b1fe66c9b06e69b066c1b258364c741d4c751d0ad0631d47431d074f2c0ea63a8ea63a8e8563a160d83360d92b360acd82c1b2566cf99b06c99b26cf99b06c99b06c98e83a1607431d10631d4742b1d7cc751d0c751d0c741d3cac752b1d0ac752b1d0ac752c20e63a0ebe63a0e8563a18ea3a98e83a158e8563a958e863a8ea581d4b03a958e863a8ea63a8ea65094058284aca0f2b284ca1287fcca1287caca1ff3280a13284a1f2b280ca0280ca0280b0501594058280aca02c1405650960a02b284ca0280ca0280b050160a1f3280a03280a03280a1ff3284a1f2c14265014258284aca1ff3284a1fffff2c1b3e58363fffffffffffffffcacd8ff2c1425650194050799425095942565079940509594258284aca12b283caca13284a0ff2b284b050160a1f2c1405650194250960a0f2b284aca12b283cca1287fcaca12b284b050da03028040204010140a02010080300640ae302500803053c24f30d7c2a930ca42cf31c4921a300f0001300c4005305cc04f303cc03e34620fffbd2c41c003485d91db9ff00062e346243bfd000a9035bccab50300ac600d80006071010c603180c6611a82666027812018002a546032072608a05e690660a6330a28160074dc46f0c033306302b302a06234f02603428582329635f2eb1698880854e0c110038c168038c094064c008008d454d7cc660a5cca5c1d4c4f03899c459a1b8ef3180e80e98018048b009ba542604818c60701ba620e09e60de09e0d024120006cca729e4ca5b2baf182ea7acba030220082203b14028160104972b0109332164c5a76aafeb228dc6dd359e5dba0a2ff2c00c182d01c182d03d180c00c980c801c4eebff1779ae3fb76efa7ba8ca8927c39707a7a27c79803803958039803803980380398030031583a983a04c1583a45e2f14a771593bcf4b7e24f32e789492ebff72f45ee5ebc61540c4603207e180afe17007f53b0c00e4c44c60c00c8c50fd0fffd050d050d1c65d6a2ffffa251aa27c567d0fffffa219580133ba3f75e3292edc1863a4ea46dd474fffffffffffffffffffffffffffffffd4f980d0090981280b6984e00481848a1621869a25d18f32518198f263d19bd283d1a7d2d1b1b0fcf639bcf8c85987b8ff61db16c151d0749fb9cd72df399c764769881e1d19834809d9862389858ce9c5ca99b38cc9a0c149986cd1bcf161d83ce1ea3a91bc8f1997c611a16ce1bcaf21c32d31ade9b19160f191c9a9a68b599fa7d1986450b14e60e03a6271126471166450aa62a03a60e03a60e8a464698867d9f867f99062a83660d0403a0e98300e98a029983e0d2439810069810029810069818068602a8ab8ab3a01500a912a95c5987095b948b016d5fdb3ff4b0ee54255006ed19788c17050c2d0b8c49128c320c41c18a6f1728b945ca4e29eeef1fe56c8a800980801980402d79dc7a4a01980002980804980c03980c02df30180530902530880542c301402309446311448311c4830982528014c03000c23098c05008c05022b592500e2b477b0ffcea5d66d967ffffffff94b20c5dcb0cc4989356a6d779ddeb2ad6b755f57765b2996dda596d3bf38d6869da96d9d53434ef4ba1a7fa3384aa5d6bf2ab19a6ea300c013730b805f33126021130cb4230301a424a304f4122302905f9309b01e5308bc0253115c16431c9c4aa319809b1348b010e360fddfffbd2c41b83e62974fe0ff1f1056daadc81ff69e01033cce9a13e9998033720c8e03095404e3043c257309e00bd30074315306a01b93964c434b07666b9b5a486915398b4c4670561abd5a6ab341a9c58670859b40ea6965b8aa08c26b43291e438b21c5630e828906a18255402a4302824c4020012f82a2415279830b466f22268084188a8850f8238c0276895daa096a1e4406a530a427eb58491f081545ea7a311caba0d9712c06c2245b452039921093ca2624399cb1b2c29eb96a1f6c6b339233293c2e2af1b85c542519395617227c748270778c241b5976196923c2e27c2ba5fc4c49b6b75f582ca7ea3735ffffe0ab665746b4266378e2dfd7fffffffffce36c31231de4bfd191ff117fb8c19504f0c09013dcc8583304ca622984cb0e2c3cd17e039c8a86738190f763626173e280ca4e36eeb34d7401280e67a692ccc6a3708d58face8f60fa0b0e9df6268c2ee3714d7e9284d281eb4c64d280d7ecbbcac398c654a60c39c654c650e70d285280c650650cbbc650b032a63283286532530632a1ce61cc32a561cc61ce32863281ce612012061221206072070607207058038f2b03930390903d094d26834fa4ad216349a44a7a741e9d06952f95a42b485694b090ad2ff9a548695214492c25f34893cd3a62aa434a93cad29a548584869529e8485694d2a434890d22534a94b090b094d2242c2534a90d3252b4a5690b090d2a52b4a691215a534890d224f372e7fcb0e0b0e7ffcadc161c7fff95b92b73fffe56e3cadc7e5dffff372e3ffcb0e7cb0e3ffcb0e7fffcadc161cf95b82c382c382b70587058726e5c95b9ff370e3cdcb8f2b7058725873dff2c38ef9b871fd3a21dfffff65f302a03bf3183c6d2327a41d139209453312084833623919f370206d535458e2633ec4e26388c9fe23a48b6a13da898f333712b75337150153ed089223371145331208dc430be454831cd84203042842030be442035b23231156d2c15065408a685216685088685216568515a14685a1665408856541888549950229a1622959715bd15bd95bd9973d961eccbcb8cbcbcea510b08858452ba8345453444434444345a9345452c2296114d1114ad14d1110d1514d1110ad10d1514b08a575258442c549a2541a2221a2a29a22296110d1114b08868888584434fffbd2c46c83f3bd56de0ff77085de2a1ac1fe6e4054534445344452c2215a21a22215a29a22279a2221a2229d4a296110ad10b08a68a8a5844f345442ba82c2296113cd1110b08a568a68a8be58442b45f345452c22f9a2229a2a2f9a2a296110d1114d1514d1514b0886888a58442b44f345442b442c229a2a296117fcb089e68a8a5844f2b442b453454434545345443a844345453454434444344a834445345452b443a94534444344452c221a2221a25416114d1510ad10d1514b08868889fe568be68888568868b5256886888a568a68889fbf9dbbf45c58018cc0620d8cc4e31388c3620d88c5630d8ccde23388e1e2878ce6e33d88d1e32788d3e24f88c660a18cdae32788c9e2358cd7625d8ce1e2358cef62e58cd0e2438cc6e2358cd762438cc6e33588c9e31b8cc3620d8cc162178cb00b1182c60b1182c40b11f8dc456e33f1388b1e3371b88ad8cf8b88f8f8caf88d8f88f8d88b0c65862363e32c719b13195f196388f8d8fcf8988b1c65863363632c3195f115b196188ad88d898bcd8d88d898cb0c458e32be32c3195f19b1b19b1b19618cd898cb0c47c4c456c66c6c65862f36362363632c3115b115b115f11b1b19b1b115b11b1319618cd8d8cd8d88ad8cd898cad8cd8d88d8d88a310b0c46c7c66c4c456c66c6c47c6c66c6c7e6c6c458632b63362622b633636336363363e2f363623626336363ffd15b1f9558cb0c47c4c66c6c458632c31ff9b1b17f95b11b1b17f9618fcb0c458622b632c319b131f9b1b115b115b17ffff9b13196188d8988d8d88ad8ffcad8bffcb0c7fffa363622b622b62fecf95ff2aaf2c084258217cce061080c9c9655cd3ae3270dd952720e33eed24e068381cc4203dc0d957381cce0781a4e33eb494f70aed24cf704eb8cf701080cf702cc8c6f45a0cc2b7217cc9c81bd0c58b0ad8c58a0adcb02109829a2101829815b188400a61d6ca69a9b5b9554c35314c35314d2b3eccfa3e8cfa840e103ecb07d99f47d19f67d962102b3eccfa3e8cfb3ecacfa33e8fa2c1f6582efccba2e8b05d960ba32e8ba2b2e8acba32ecbb2b2ecb05d9597665d17665d177e582ecb05d19745d15974582e8cbb2e8acbbf32208832252f32208932252f32208932248834b88832252e2c11064411064491264425e64411206bfffbd2c47903eab9a2d20ff6b3471eaa5801ff5a38ac804576115d84577062ee0c5d81ae97606ba5d8457581ae976115d01ae9740c5d40df4fb037d3ec22fa063ef08bec22fb063e818fb063e818fae06fb7d01bedf606fa7d845f406fb7df06533c194cfae11a6ffffc234d81d369947ffffffffffff06110c1f907e0c1f81044d4c44abce14c8534d8f25314c1f820f0f62f7cd8ce8395f0d2af6c24df37e970f2038d90c413a6a0e14fc808e9a763d4f204c80ce3642950ce821038ce801044c4114abcc40e1898c4101040c1f91040d89f1acf1a9898c7e5898d89c7e4ae0f0f1aa0f0e0f5044ae0f0e0f5044d0420f0c7e5040c7e07e4b0823e63f282056c4e5541134101f834111f831f91f82b1f934114102b1f834114112aa08941f898fc2089607e4ac7e0d0407e7cc7e1044b03f05682056823e68203f0581f831f81f92c20818fc8fc98fc208f98fc0fc1a080fc98fc8fc95a0879607e4d0407e4c7e1040c7e47e4b03f263f03f0563f263f23f0563f0563f063f082063f03f063f03f063f23f263f23f0581f831f81f92c0fc1607e4b03f068223f263f23f268203f3e63f03f0584102c20898fc0fc019f93f00c3f2e113f2113f3033f27e0227e4187e4227e4227e4187e00e089f908c11061f9061f806410033f27e2067e0fc819f83f1819f93f0067e4fc830fc830fc419040187e3033f27e40cfc1f8061f9c227e00cfc9f9061f8061f8091f9033f27e4187e40cfc1f9033f27e2113f0067e2084187e2113f2113f00c823830fc830fc7f7061f8844fcaffffdc9d9fffffd75f317f31b37f117f34b7b29398c65434b665534da7572c30c9a6dbab1a6d12f1b2acc61b2ad949bf832a198d32a1b2a6629d947fe9b2a0bf98bf25b192f30c99ce12f989092f192f12f1612d8cc68c6cacc68cc6c5fccc685f8b06366636634663496e66362fc6bf2fc6bfe346bfafc6bf2fc6bf2fc585f8d20978ae5f3485202c4be690a406904bc5690f961213979212c24272f240690242569096121348521348521397d203481203485202c24258480ad203485212b484ad203485202c4bc56909a429095cbe5897cd21480d21484d21487cd20978e5f484d21480d20484ad203485202b480ad212c242569015a40690a40690a42690a4058484ad20ff348520348fffbd2c48183f27178ce0f76b545f6b61a01ee57205212c24258480ad213485212b480237e065f8237f81dfafc077fbf4237ec197e832fc0cbf832fc11bf611bf032fc11bf832fe0cbf832fc077fbfc237e065fc237fc197e03bfdf8237e832fe11bf01dfeff065f8237f832fd03bfdf8237e846fe11bf832fe11bf846ff065fa077ebf81dfefe0cbf832fdc0eff7f065f8197fc197f065fc237e08dfe0cbf60cbffffc197e2c0bf18bf0bf9bf859418bfa5b9d9418d15d941a6da6d9a6d44a18bf8bf1598d1961ad0986cad01890a6d9b0c9ce992f3ab9596198e69619a5606c18bf18d961954cc6d2dcb096c62fe2fc696c63462fe2fe62fe96e62fc96e696c2fc66342fe5663466342fe61b039865861b0561b261b239a63981b2581cc31201202b1202b1202c09018908909589015890992f0901f35b0586c1b65b26d86c9b61b06d86c95b63cadb26d96c1d72ba6a1ae95a87cd40a13aea80eb8a12b501a854275d5095a84d42a12b6c9b61b056d82b6c161b06d96c15f33cdb2d836c364db0d92b6c9b65b056d8390484e4120390c80ae427209095c83fcb120390c80b120390484e4121f2b901c86425890162405721390480e41202b90f95c80ae407209015c80ae405890f962425720390484ae40720901c86405720390c860cbf846ff846fe11bf846ff832fc11bfc237fc197e846ff81dfefe11bf832ff832fdc237e03bfdfbc197ef846fe11bf832fffc237fff832ff81dfefdfffff065fff08dfa0cbf2af2c1611a561619ad086c1bc6256986c0e698e61db186c2d0991503a991528199ca96bf995d8cc183a95d98cc883959ca996b0ae18500ae18ae8ae18ae10d99ca05098ae0ae158e6186c06c996186c186c06c186c86c1586c98e686c186c86c986c1611d71406a1501a86b858501a82ba56a02b501a854258509d71405850161426a0509a8543e6d86c161b256d836c363cb0d8ff2c363cace9e5883f99d0ea583a959d0cea7433a1d4cea7533a1d0ad43e585095a84d40a12c280b0a02b5095a83cad41e56a12c280d42a1350280d42a0350283cb0a0350a80b0a0350280d40a02c284b0a0350a87cd42a02c284b0a12b3a19d0ea7073a99d0e8583a99d0ea6743af99d4e86753a99d0ea567533a1d3cce8752b3a160e86743a160e9e6743ac1fffbd0c49001aae194d80f72b58554b59a95eed5a08d808b600db0d9c22d906367831b1c22d8c22d8fc18d808b620c6cf063660c6cf036cb66116c01b65b2116c7fff08b67831b3ffffc18d8720624024262422406caa96c696efe06634fe0696e2fe584b6f32c269733b61cd32c30d831cc2c2375639c339c120339d4da2bb08ec2364dcd360e5e480e5f978f9c97cd2197cb0901f3a909f39ce15cbc6904be7cef386904be572f1cbc909cbc909cbe90961202c24258480d21480232106484192108c80192008c800e4320064840db1cc036c36418d981b65b2116c7845b006d86c831b20c6c045b0116c81b65b2116c01f31b00c6c0339a0c6ce0c90046401190e0720900464184642119001c86400c6c831b2116c831b00ce6045b006d96c01b65b2116c81b61b006d86c831b006d86c031b206d86c81b65b006d96c045b00c6cc0db0d881b65b006d96c01b61b20c6c845b006d86cc0db2d90636606d86c031b308b6022d8036c363f06487fc1921846400c90c192084643e0c907c1921ff064842321fc2320c1921c2320e0c9083241c1920e1190ff0648383241ffe1190552b188b0719f7f4a1eb57c15bc66b19c46e821474a4645719988ab69bc4b11ac4311dc4b11cc47198c4b198882219502296045338ce33589622b388d62188c6338cc6318cc63588b071195222995222195022160a832a04532a0452b110ac4432a0442c08862208a78b1f95e23c58fcf1633c78bcae2162215c42c442b8a588a588be71221c58a716295c538b14b110b114e2442b8be5714e2c538b10e24538b10ae21c48871227f9c58a7162162216221c5885888712216229af5de585e6b9715ae2c2e35cbcd72e2c2e2c2f3f4b8b0b8ad715ae2c2e2b5e6bd715c42b885710b114ae29c48a588a588a58887122ff95c42c442c45f2b89e5710e2442b8bc238e11c611c5e11c5f08e3f83310331ffff8471047160cc708e3c198c238c19881988238c198e0cc7833103318471e0cc508e3f8331c0f1e3e0cc611c7847103314198e0cc5066308e3e0cc41f2c1e6a5119a1af08bc29b0f2a7b986cca7b194d8c3c98dd06f719b1a90d9a4346c69a4366c619b1a47f1ef71b39b74ef71ef76f71a08e3598fce351a08a081bc6bc61f9a79a953cd4de33cd7cde31e34a79a8de37cdfffbd2c4d083a94daee40eea974694295845ff597a0d1c3634ad1c0e3ff630e3f91c0d1c11c0dba0d98cd9a9b0cd98d98dba0d98cd9cd9ccd9cd98b0dd3e566cfe66cc6ce586e9f36e9367362741136271f831f81f9f34101f82c20898fc8fc1a080fc1a088fc18fc8fc04638846380323884638c191c0231c4191c40e38c71064700647108c7003530a640d4c29903530a600d4c54d08a9803532a6418a600d4c54d03532a600d4c29981a98532075314cc22d980db3367831b3831b381b666cc0c6cc06d9db381b666cc06d9db3045b3845b381b666cc116ce0c6ce06d9db3c0e384708463804638e118e0118e0118e2071c63881c718e0118e3f08c70038e11c00e38c7108c7008b66036ccd9c0db3b67c18d9822d980db336608b6608b6708b67036ccd9818d9818d9c0db3b670636706366036ced9c0db3b6606366845b381b676cfc191c2071c238f08c71f846380323801c718e384638c191c3c82bb45762bd6a189200a0f3144ca433d6cc69c36b368403455f43b3455ab8137c0e4323674ca4235040d5636b2cd573290d4a32a9ee6553dc8df03144ca294533f88be230f8d3e330f8c7e333dc8a4333dcd9d332908a4332908a423144ca423144ca433290851231448513314494a231448f7233dcc5133290c5122c0a24587e3d95bf1960f8ccf8cf88b07c4583e32b3e22b3e333e23e333e37e333e23e333e33e32c1f199f19f1160f8ccf88f88cf8cf8ccf8cf8cb07c4567c6583e333e23e237e23e284e898328981d13a2611a240ca2611a2508d1281d12a260744a8981be27c6117c4117c606f8df101be27c60c7c407f89f181be37c606f8df101be37c6117c6117c5063e208be281be37c5063e3037c6f8a117c581be27c7831f181be27c5063e2ff81be37c5f831f1781be27c4117c6117c40c7c4117c406f8df1c18f880df13e2063e2063e208be308be2845f1c0df13e2063e2037c4f8b08be3037c4f8fc1944c2344ffe11a27ff06513e11a270aa27fff08d1303a2544bff06512f065128468980001f961a0f32f89be330f8cbe22b674cd4a3528ccf727c08d4a25288c923183cc9221838b0ce9194867b9997c67f118fc69f198fc63f19b07b071c914919b07c91963f88a1f1cdf88f8cef88f8f46d3baae7aacd386d39aae6a254867487486fffbd2c4f0002ff59cc10ffad486bcb35849ff59b3574846a24a26574866fc67c667c67c667c6fc6583e233e23e22b3e332f82f832f92f9360f60f32f92f92c17c7960be3ccbe183cb05f265f2c1e65f25f065f0c1c56c1c582f832f860e32f82f932f82f8035f0be40d7ce0f035f0be7062f8062f9062f808af981af95f2115f006f8df1c22f8822f880df1be3037c4f8818f8c0df13e208be2037c6f880df13e2037c4f8822f8c18f8c22f8c0df1be3037c4f8a117c6117c40c7c60c7c708be208be208be2063e3063e308be208be3063e38317c8457c40d7c2f808af808af808af9062f9035f0be422be018be00d7caf9062f98457c81af85f1035f0be422be206f8df1031f1845f1045f1831f1045f101be27c7831f1031f101be27c7037c4f8c29f1818f8e06f89f1831f101be27c7037c4f8822f8c0df1be3ffc1944e0ca25f065120651284689fc1944cde666d451e74c692cb86aed3354ea7b2cc5691998436ef2c2dbe749e0b946bc1af0868cdd2784d19c1de4b1aa9bad88cd958dd05853d0c4716ce4cd8c23fcdd6d2ec8cbb275b4cbb31728c3671ba0c3671ba0c3661ba0c36545ccc36445ccd1731ba0c6e90d98b03c619e6a79a98f183c616078b2c2335af2a0b96565d91c7fa38144701611c0d1c51c3cd1c51c4d1c11c4ae3fb9e568e1fe58471336636636e9366e959b3f99b31b3959b399b31b3959b399b31b30323840e384700647108c700647006470c231c4231c606d99b3c0db3b6608b67036ccd9c0db336606367036ccd9c18d9c0db3366036ccd9c22d9c19ba40db3367064710647008c708323840e38c7081c718e0071c23803238832388463881c718e20c8e00c8e308c7108c7106470038e31c00e38471038e11c00e38c71038e31c60c8e20c8e0071c23881c708e0118e0118e20c8e0118e108c700647108c70038e31c70647108c7108c7008c710647106471064710647108c710647181c708e30647008c70c231c00e3847006470038e31c3065cafc1972ff832e5ff846e5419e3613f1bffffe11f19ffc19e33c23e340cf2c13a66bc22f044e35599b1a90d1bf8cb549bad85d91af091aa938d5665d997666b549b1866c6ad5268ce233468cd233651785150bb22b172cd19b5e10cf343cd4ad6de33cd4f3533cd078c2aa78064efffbd2c4f003b1c9a8c00ffad4867d2b97c9ff5eba9a783a34f013c12a93a6513c0993a64e9993a49e09549d32bbb235cbbb32b5ca2c2e515ae595ae59a38c7f1a382381a38a381c7fa381a38a389611c4a238fcb08e2584702c47f1a38a381a382389a38a3895a389c7f47f79a38238960a64ca61530ca65534ca64a60d531534b053058298354d29932982992b29932982992b2992b4712c2389611c4d1c11c0ad1c0d1c51c0d1c11c4ad1c4d1c11c0d1c51c4b08e068e28e268e28e0568e0568e068e28e2584702c2389a3823895a389611c4d1c51c7cd1c11c4b08e3e568e0584712b4702b47034714712b5ca35cb5ca2b5cb2b5cb35ca5ca2b5ca2b5cb35ca5cb2b5cbff2b5ca2c2e59ae52e57f95ae5161728b0b9456b9656b94585cbf2b5ca2b5ca2b5ca2b5ca2b5cb2b5cb35ca5ca35cb5cb2b5cb2b5cbff35cb5cbff2aae56cb0b95fe56b95fecaba05d4123552674e3bad48a9d373031554e1127497febaf30f887e332f18e2831290966285e38c9662f1cc5622b8ccae51ce0cc394994ac60e30e385623158838d3158c90e3243c90e31588563312904a53090c2422b1290c3e21f88c7e20f8cc3e33f8cc3e32f88b0307958c1c617c8c1c56307187c41f19607e230f8c3e230f883e32b0f88b01219848625215848658090cb0121160243f3e3db92c71e586e0db96e0adb936e38e2c371e56dc1b72dc1b72dc79b70dc15f1a586e4b0dc95b7056a69a9aa69a9b5b9a9aa69a98a61a9aa61614c3ad94d3532b63adab735314d3532b636e5b836e1b8f2c3706dcb706dc37056dcf9b72dc15b70586e4adb92b6e0b0dc1b72dc9b72dc95b726dc370586e0adb92b6e0b0dc95b73e6dcb706dcb726dc373e6dcb70586e7cb0dc1b70dc9b72dc15b73e56dc1b72dc7961b82c37256dc79b70dc161b82b6e4adb8f2c370586e4adb92b6e4db96e4adb82b6e4adb82c370586e0b0dc95b726dcb70586e0db86e3cadb92c3726dcb726dcb726dc37056dc1b72dc961b936e5b9f2c3706dc37256dc7fffffff063e30bcc78d1e34c5cca4f0c5cb8d54de87b760cf3598c4e3555e08dd6c172cd6dd3cd4de8698c0db374868c4716cdcc5ca75b0c5cb1728d19a4668cd8c23fca1b1b323fd6a932ecd19a2c0b946bc1233462e5233a71fc8e271fe8e268e11fc68e2fffbd2c4f081f03160cc0ff6d7863fb5d7d5ff5a2a8e27e69e6be56f1a7e69e69e6f1af1a57e6bc2b78dff3471471347147034704703471470347147134704703470471347147134714712c2389a38c7f1611c0d1c51c4b11fc68e28e0584712c2389a382381ae52e51ae5ae51ae5ae59ae5ae5945cb9ae52e596172cd729728d729728b0b9456b95e157280772ae5846e5046e5c1972c19728237281972bc0ee5dcb832388463881c708e2118e0071c23801c708e0071c63801c708e2071c23801c718e0118e00c8e2071c23801c718e2071c23804638e11f1bc19e330af1bee0cf1bc23e3423e31a0cb940cb95c23728197281972b03b9772ab065cb08dcb065cb708dcb08dca581dcab940cb940772ae57d5fe0cf1908f8de0cf1a15e3411f1a15e35fd55423e3611f1b5419e317f5e11f19f08f8d0678c833c6423e33f0678d81f8df1b5f33a38e8f3e1d21d43b49168319d0eceb83d0ece2c92270d155ae00e1856b28c69d355ccf736748c513290cda0f8b20eb808b24a844e99ee65219a9462891b3a65211c59044e9b41e44e96115532275155d151d3a33a38e8e33a3ce8f35a08b3232cccb3228599ccb322ccca8b419bf1df119f11f199f13f11bf13f1143e2161f88b113a5589d389c89d2c44e162270a44e3cae270da75a70da71a74b0d3a6d38d3a6d3ad386d3ad3856d3be56d3856d386d3baae56d39e56d386d38d386d3ad3a5355c56d386d38d39e6d38d3a5869d369c69cfef95b4e161a77a56d39e5869d28d3af2b69c2bd56f369c69d2b69c2b69d2ab4e1b4e34e1469c1b4e34e95b4e79b4eb4e961a77cda71a70da71a730369c69d2b69c2c34e7961a70b0d3851a706d3ad3a56d3a56d386d38d3a5869df2b69c3d5669c28d3b2c34e961a77ffcada73cada70a34ef45869c2b69cf2b69c2c34e95b4efe8ada70da71a74b0d3bb2c34ef961a77ca8d385869c2c34eecb0d3857665ffe58b322c599fecb16645766658b32ffe73fcb166657665e7665666766766458b32f2bb32e313316f31e1f6ee56bfff9beaf3144a96237c0851329f118e4335288e4333dccd9d35288d9d22908cc38248ccf4e183cd4a32908d4a3a588d4a33dc8c5132908c513528cca42528cca433dc8cf72290cca425288ca43290cdf03290cd4a2290cc5133dc8c512fffbd2c4ff03f49152ba0fffc5c651b59801ff5a901448cf72290ccf733dccb07b999484a511948428998a242891948628916144ce90e908ad448d44d44cd44d448ad448a2894b0a27e585123513a432ba42d95a8916144fcd44d448a8a246a24a266a24a2452909e58513f849f1c22f8a117c406f8df1831f1031f101be37c607f89f1845f1831f181be37c6117c606f89f101be37c606f8df1031f101be37c508be2037c4f8e117c6117c508d1308d1203a274482344b0651306513065138468941944c2344c2344a0ca260744a8901d12a270651383289c0e89d12f83289e0ca258468941944c1944a0ca2508d138468904689b8468941944e11a278328901d13a260ca2583289e11a2781d12a24f83289832890468984689032898328942344c1944e11a2706513f83289c2344f06512a8234481944a0ca260ca258468941944b8328976e11a2584689feae11a244c414d45332e313030aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaf2aa8207219b3a45243318a27c791a946a519a4c849198c1c7a7997c65f119fc47f19486126d651aae67f1a7c6517e21587c4617c1244661c9246661c124666ab9aac66ab0d3a66ab35966a082822634e2820566ab19aaca0896069d2b355cc69c5040acd563355cd562c0d3a574845144a56a24748748656a2658a4337e23e233e33e22c1f1159f119f11f1959f199f13f11bf13f11d21289161448b14847486a246a26a27e51449e585132c28981d13a2611a2411a260744e89832890328901d13a2708d1303a2544d82344e0ca240744e8981d13a2411a25846890328981d12a260744a890468903289e0ca2611a240ca2611a270651283289784689c2344c2344c234482344c1944c0e89513f8328981d13a2783289c0e89d1206512ef0669d8334e78474ec0f4e69de0cd3a11d3807a774ee11d3abc19a77ea7c19a760cd3bb419a7019a73ffff8474e8474effffc19a77ff08e9db3ffffd6bf9913a8aa1f9eb1631445566a510a2472198a24777c28226d65359675c09138644e11387163570651a0f9c59044e1a2a88aa14455e67b9948667b93e066ce98a26644ec592644e913a6d0722aa51a0f142274644e22aa644e913868aa1138644e341c644e113a552274aa44e1a2a844fffbd2c4e581eb5da6c00ffad4867d3597d5fb5f98e18d3834e19aac34e18d3834e18d3a34e958d3a581a74ac89c2b2274aa8aa9913a44e15913bfe644e113a634e0d3a634e0d38634e1aade5634e798d3834e158d3a581a70ac69d2c0a2662890a2456289958a245628998a2628998a24289958a27fe65210a27e0744e89046890468942344c2344c1944825448234481944c2344e11a2503a2544c234480e8951206512832898328901d12a240ca240ca270651306513065136e11d38c11d3811d390669c08e9c03d39a7019a7207a774ec23a740f4ee9cc19a7423a7607a734e0474e8334ee11d3a0cd3811d3a07a774e419a740f4ee9d03d39a7611d3bc19a7019a7023a7207a734e01e9cd3908e9cfe0c22742244ef83089c7089139f06113bf088d39fc1834e42234ebc1834e60c1a77f060d39e111a77c1834e84469df6c2244e550000001fcb08e06636ca8663496e6fe26366634fe069b4c32673aeae673a9b6586192b1cc33b73b63411a5531f94112b410383d62731f86263626626331b31a34b731a317e17e34b64b732982992c2a69594c194c94c795a089a0831318fca081a088fc9625e3979212b484ad2134825ef2be70ad203979203485203481213481203485212c24256d93e6b64db2d92c364db2d836c364af9856d82c360f9ad92b6c79b65b06d9e61b61b26d96c15f30db2d93e6b64db0d82b6c161b0589079c8243e7219015c80ae40720901c82407219079c8240720909c864056d92b6c1b65b056d8f36c360db0d836cb64b0d82c360adb056d82b6c9b6798586c961b056d92b9095c84e43202b9016243ffe589095c84e4121f2c480e4121390c84ae4057212c484b120ff2b907f95c87cb121390c84ae42589095c84ae425720390c80ae43e58909c86407219016240589095c87ce4320390484b120f2bbfff962fe577ef2c5ffcb17ef2c5f8aefc58bf9dfafde58bf962fde58bf1dfefe77ebf15dfcaefc577ef2c5fcb97d859c2ab88e7fa3cb0599194842891be04a51998724911aaf47a799fc43f19a7c4ff11978c122992ce71415948456a5119fc61f19553e232f8cbe232488c393248cc393183c60e31a70d5631a70d563355c69c3355cd573144c5123144851333dc8512314485122844e4d1554550a11383227089d2b2270afffbd2c4ff83f1c956d46f779446f42a9881ff7690d448d44e908d449448d44d44cd44d44cd44d448cf8df88cf8cf8ccf8cf8ccf8cf8cacf8ccf89f8cb07c6583e232f82f9360f2f92b2f832f92f932f92f82c17c960be4cbe4be0acbe3cef9be0ef8be4ef8be0ef9be0ef8be0ef8be4b17c15df258be0b17c1df37c1df17c9fc7f11fc5f115fc457f19fc7f1163e23f8fe2f2c7c47f1fc457f1963e32bf8fcaef82c5f277c5f277cdf277cdf058be4b17c79df17c15df077cdf077cdf058be4ef9be3cef8be4aef9f3f8be22c7c5e57f115fc457f1963e3f2bf8cfe2f8cb1f1163e33f8fe3f3f8fe33f8fe32bf88b1f115fc457f1963e32bf88afe22c7c458f8cfe3f8cb1f1795fc5e58f8cb1f115fc67f17c7e7f1fc458f8cb1f1163e22c7c657f179fc7f115fc457f17963e32bf8cb1f19fc5f19fc7f179fc5f1963e22c7c658f88b1f195fc47f17c457f115fc67f17c658f8bfcafe32c7c7e57f195fc658f8d5f2a2944630705f26c472af66abd8c1a661c9872693205f069320c1c510881978e4b3192463071a4ca49199e9e7a71987017c18c1e17c19c62b198dc2b118dcab11d21a891d2152179d21d2195df1160f88cf8cf88df89f88b14867ee4a25fe56a246a26a25e6a25485e6a26a27e67c47c5e67c47c667c67c6567c5e583e32b3e3324324232422432b243324324232422432c12199211219921252992112116090cac908c90c908c908908c90c908c90c90cac90cc90c90cc90c908c90c90cc90c908b048664844840c5f2115f00c5f108af8035f2be2115f18457c6115f20690d210452101a4294a1148406909218312140d21a4308a4208a420624281a424861148406909210452101a4348508af9c22be206be57c0317c8457c8457c422be60c5f2115f20c5f1035f0be418be2115f20690d2181a424840c4840c4840c4840690921e11486114841148606909210452181a43484114860c4870348490c229080d21a4208a430624208a4308a428317c0457c422be40d7caf9062f9062f9035f2be40d7caf8f062f98317c8457c0457c6115f3035f0be018be422be3fffff08d12f2c3d10653614da6a7ba2e442a7a1a9eea7b9a3362e518b971aa9445cc6374b0f2564019957055c1437be63748dd2653694d863c68f1863c6adbc6b6f8f1a53cdfffbd2c4f103f43180ca0ffacdc623b25881ff59f847e6be687e68f1a57e6857e687e6af187e6be687e69e6a6f1af145478a3f3578c378d78c378c78d378cf352c3c61478d1bc63c6961e34ade30adba4dba0d9bcaadd2566cc583672b36633676e834704712b8fe38fe4702c2389611c4ad1c4d1c11c0ad1c0d1c51c0ad1c0d1c11c0d1c51c0d1c11c4d1c11c4d1c11c7cb08e3e584702c2389a382389611c4b06cc583672c1b319b39b399b31b3f959b399b31b3959b3960d9ccd9cd98b06ce66cc6ce66ce6ce118e2071c238c191c4191c7038e11c40e38c70038e11c4191c4191c40e38c70064710647006470038e11c0191c40e3847084638e0c8e0118e00c8e00c8e20c8e308c718323804638046388463881c708e20c8e2118e20c8e2071c238c191c0191c0191c0231c40e38470c0e38c7008c708323804638c0e3847108c7108c7006470606470c231c60cf1bf57ffffdffffff846e5e0cb94a00002f30be4c3831084420332746f434224bc73259824431839265263070b039c183701c6961c14d2938a4eb9158cdce0e30eb95588eb8ce3cd58ce3cd589588cbe648cd83cbe0d83f0e0e48a48cc90c90cc909c14c909c14d295290cbe248ccbe1838d83cbe0cbe183cd83cbe0cbe1838cbe4be0cbe4be3cacbe0b05f2569485648664844845694a64864846486487fe6dc3706dc3706dcb706dc37256dc9638f2c370586e4db86e3cf8f6e0f8e6e4f8f6e4db96e7cb0dc1b72dc161b82b6e3cdb86e0db86e3cadb836e1b82b6e0b0dc9b72dc961b936e1b836e1b82b6e4db86e4db86e4b0dc1b71c71a9aa61d6ea615a9856a69d6ca61a9aa695a9856a69a9aa6f95d6e56a61a98a69a98a69614d2c29a56a67962432b90fffcb121f962422c485e572196242f2b908e43908b12115c87e572115c865890bcb121f95c845721ff9c8521162432b90bce4290ce4390bcb12116242f2b90cb12196243f2b90fce42908ae432b90ce4290cb1211c85211c87211c8721f95c85fe5890ce4390cae432c485e572115c87fe572195c87e58908e42908e43908ae43ffdbf587ccf8af88c7054224d7aa4ba8d7e30f8ccfe21f88d57a248cc2f80be4ce281294b04b319c5097518e0a4b3197cfa79fa7e1c197c97c9fa7307997c17c197c61c9df1df119f11f19df15fffbd2c4f303b38556ce4ffba9d6c3a41945eff822f199f15f199f1bf199f19f19df15f1160f8cdf8cf88ef8cf88cf88f8cb07c467c4fc66c1e5f065f05f265f0c1c6c1c5f265f25f265f05f265f05f065f25f065f25f26c1e5f256c1fe582f832f860f31b838d31b91b931b91b931b81b82b1b931b81b92b1b831b938e2c0dc18dc1c695a5279921921992112116090fcd295290c908908b048464864865824332434a531b81b831b81b931b81b92b38f2c1c7160e34b0372563705838f2b1b831b81b831b91b82c0dc9606e4c90c90bcb04845824232432432b24332422432b2422b2422b24332432432b2422c1219921121f960908c908908b04846484485e64864845648658242f2c121959211592116090bcac90cc90c90cb048664844866484486564866486484564846484484671c3706ac6371e637071c6372370637237063723726372372637237063723706370372581b931b81b82b1b82b1b831b91b82b1b92b1b82c0dc959c7158dc98dc8dc98dc8dc79606e7ffffeef34bdd4378ce2398c633b8a623188e23d8a62338ae23578c737dd5f2c1c65771985e3d98f6d59abc17163c634bd2f32248939ed2e32232137512e3751d5375488f34bdd534bd2f32208939e92f32212f32248934bc892b4bcc88224d2f220ac882c11269711058882c4495c41c44495c41c4c415c415c4162a0ea514ad14ad14b0887508a68a8bfe75088584434545344a8345a82c221a2a21a2a29a2229a2a29a2221d4a29d4229a2a21a2a29a2a215a21d4221a2a29a22295a279a2229a2229a2a29a22216114ad14ad10ad14d1114d1513cd1110ad14b15268a8a56885689e5844345442b442b4534544345452c229a2a29a2a296114d1517cd1110ad13cd1114ad14ad14b08a68a88568a568be68a885688588938988f2b88f2b88f2b892b89f2c447fff95c496220ae24ae23cae20e2624ae27cb11056c5e5863363622c3115b115b19b1319b13115b19b1b11b13195b116188b0c5e5863f36263f2c3195b11b1317f96188b0c60c44ffff84513fe0c4404513e0c44fc188908a2708a27cc484e74d866254aec44c97d36cd860484dd5ce74b073a64bf12a69b424265841b261ac9585825e312039c325e894339d757312025f2b619312139c3120120325f4db31201213121fffbd2c4e403eff9ace40eeeb7c67f361b01ee56f01203120120312125e3121120325e25f325e4da2c12f192f1ce18909ce996106c160730b01b063981b063981b0580d9f2b909c8240721909624058901c8640721901b679a586c1b61b056d92c363cb0d92b6c795b63cb120390484b121f2c484b121f2b9095c84ae4058901c86405721ff2c484e4121f390484b1212c484b120f2b909624056d82c364db2d936c360db2d92c360db0d936c364db2d82b6c95b64b0d8f2c360db0d92b6c95f34b0d82c360b0d82c364db0d936cb64db0d8f36cb64db0d82b6c7961b2586c15b60b0d92c360db0d936cb64adb2586c15b60db2d82b6c79b65b056d92b6c7fff961b3e56d936cb64db2d92c364b0d82b6c161b3fe6d96c95b60adb211907846400c90c192006482072190c232106484232006483e0c90c1921c0e4120064802321c19218464308c841920f846401190c1920064861190846400c9060c908324384641c192106483f08c842321af3210329369d2693340190343f32830fa66d366d89d35569b2332843e355643f35569b2389d66c327a1d4346c27a33c746c2882d31910ba2b26937840fa321055630fb210343f32832103292b3292b3292b32830fb210321043e3210211321121030fa0fb3843282b3e8f28840cfa3eccfb3eccfa840b10819f47d99f67d99f70899f47d19f67d15c2267d9f7e7081f467d1f5e567d99f47d159f667d9f6583ecacfaff2c1f4583ecae1133ecfa2c1f6567d159f467d9f667d9f6583efcafefcafecafe8b1f458fb2c7d9fd7d15fdf95fd163e8b1f457f657f657f7e57f658fb2c7d963e8b1f458fa2bfb2bfa2bfa2bfa2bfaff2c7d95fd95fd7ff95fd163e8febe8afe8afebcafecfebebfffcfebebfcfefebcb1f458fa2c7d15fd15fd1fd7dff9fd7d163e8fefecb1f458fb2c7d15fd163ebcfebeffffcafecfefe8afecfebecafecb1f658fb2bfbff2bfb2c7d95fd9fdfdff9fd7d1fd7d1fd7d95fdffffff95fdff9fdfd963ecafecafe8febebcafebfffcb1f657f47f5f5e7f5f7fe57f67f5f47f5f5e57f7e58fbff2c7d15fd163ebfcb1f657f7fe58fb2bfa2c7dffff9fdfd95fd985e171611230b82f3a39f7357a8e30b91337c8cc31649334495e331d13324c583248cd30bc7a37d8c630b8c73248cd33301d31fffbd2c4eb83f475b2d80f7774c5b935dd81dd66d8609331e8c630bd1230bc7b30b87a31ec2e2b578c7a44cd130bcb063985c3d9602f30bc2e2c05c63d8f666305e61705e563d985c17985e179aef456bcd7ae2bf46b97961795ae35eb8b070ec1d33a70b070b070b073cb070ced9ff2b5c56bcd7ae2b5c585c6bd7ff9af5c56bcb0b8ad796179617f95af35eb8d72e2c2e2c2f35eb8d72f2b5de6bbd962e3bae2c5e577f9df79dd7162f3bee3bee2bbbffffcefb8b17f9df779dd7962f2c5e577ffff9dd795de57715de57715de58b8eeb8eebcefb8aee2bbcefbbcb177f95de58b8efbceebbfcb1795dfe77dde77dc5777f962f2bb8b17162f2c5de77de775fe58bcaee2c5e77dc775c77de57715de5771dd7962e2c5e58bcaefff2c5e58bffcb17795ddfe58bffcefbfcb17f9dd715dde57715dfffffe58bcb177ffffffff95de5777ff95de577962f2c5c57715dff31a71aca3861eef93355daca37c0a43335288f7337c094a12b3dc8c2f91838c92255e8eef81a70d4118610c2f83d38cf4e248cd26530e4a0a27285214d9d22908a86ab1a822a08160d5636b28d5631a75acb3355d41033558d572b1a70c69c1a74d4111a74b034ef98d3a34e9d21289f9d21a891d212899a892899a89a89f99f11f1962f88cf88f88acf88cf88f8cadf8bfcdf8cf88cf8cf88acf88df88f88acf8ccf8df8bccf8cf8cacf8ccf8cf8ccf8cf88acf8ccf8df88cf8cf8bccf88f8fccf8cf8ccf8cf8cacf88cf8cf8e117c414f8a06f8bf101be37c6117c4137c4117c6117c7063e3063e2063e2037c4f8c23f8823f8e117c406f8df1845f1845f101be27c4117c40c7c508be2063e3037c4f8c19f8822f8c0df1be20651203a2744a0744a89c194480e89d13065130651203a2544c1944eb81d13a260ca240744e89f853e3418f8818f8818f8c22f8823f8c0df13e381be27c606f89f160c7c6117c7037c4f8c0df1be2037c6f8c0df1be281be27c606f89f1831f181be27c40ca2611a240744e8983289046898468903289419448194480e89513832890328983289c0e895120651281d13a240744a890468983289c23448234480e89d13d0eaf5c19a76dea8474e8334e2bffef0669dfffffd5e6498b0751af860e372684a86587c8ccdd48c59074cb41b8c6e358ccc160d08070fffbd0c4fa03fa5daac20ffad4c5bcb45e01dd62d0d43164ad433164933165092b24cd09248c58164c93420c59164c1c160d09160ac923420923164583074cc2c03860e0b2562c79601d3070593070932b074c1d070ac5839614d4282b506a029840a61429cb0a585264489608990225644c8bd32040c8912b206408991225644b0f4c81032240c81032240ac816081608191205640b044afa7de796387de7963be7de95f4af858e7f96225703840e302c44b11f38c3cb1038c4e312b8f962070895c4b1d3e70b1c3e74fbd3ef4fbc3e74b1c3e74b1d3e70f9dff2c73caf9e58e79f79e7def95f7cafa58e95f0b1d2be16387ce95f7cafbe58e95f4b1d2be163a7de7f9f3857d2be963a57c2be95f0afa7ce15f4afa7ce1f7857cff2bef9f3be57dff3ef0b1d2c74afa58e963858e963858e963857c2be1f7a57cfff2be95f0b1c2be1639e57c2c70b1cf3ef4afa58e95f0afa58e9639e7ce163858e963a7de15f4b1cf312012035a04ac34ad1cd31cd3b635a05a0322b47131991992c09a982989a960398c650398c3612b0cb08edcc730730cd34418c1d4660c1d4664c48097cce70e70ce74484c480480c360360c734364c730364b039a65841b265841b2561b0580d92b0d93831d4acea7063a19d0ea707cc99d4ea63948958e0c703831c39bcc723931c244c703832994cb05232994cb052ff2c14cca6c3f2b29160ea56742b3a19d0ea6753a159d0acea56752c1d4cea7533a9d0cea74fff2b5015a80ad41e5850f9a8541ffe5850959d4b074f2c1d4ce8752b3a99d0e8570633a9d0ace8583a959d7cce874f2b3a99d4ebe56ea6e8ea56ebe56e86e8e86e8e86eaea6eae9e587537474375752b7537575374742b742b74f375752c3a1babaf9baba95ba961d0dd1d0add4add7cb0e856e858752b742c3afff9ba3a1ba3a79baba9ba3a161d4add0e8280b1427434258a02ba02ba1f2c501d050796280b14058a03a1a12c50796284ae80e8687fcae83cb14058a0f2ba1fff2c5095d016287cae87fcb1405741e74343fe74143e5741e74141fe58a1ffff2c5095d0f96283cb143fe574258a1f2c28206c48311e6abd8c1e65f197c667f137c67e36a8226d65a82263f197c661f11fc667b99ee662899ee64d41099aaea089b5966ab98fc63f11a7c63f118fc4fffbd2c4f003f3f1a2e20f7375467ab55881ff5a685f198d3834e18d3ad6618d3ad6518d3a6ab99aae34e959aae66aba820634e1aac57aac58d57369cd56cca34e4b0d3856d386d3ad39fc2c34e1b07b07997cb07197c3071c91307997c17c160be0b05f2565f26a26a26585122c28915a89f95a896bfcd44d44cc90890cac90cc90c90cd294908b04865648456484648448656486582423242242324224333e33e233e33e32b3e32c1f119f11f1160f8cacf88cf8cf88cf88f8cacf8cb07c667c67c467c67c6583e3037c4f8c18f8a06f89f1031f101be27c6117c7063e2845f1418f8a06f89f101be37c4117c60744a890328960ca2411a240744a89046898328981d12a240744e8904689c0e89d1284689708d1308d1283289e0ca27c0e89d12c2344f8328984689032897f81be27c40c7c406f89f1845f1845f17063e308be3063e3037c6f8c18f8822f8818f8822f8818f8f063e3831f101be37c60c7c406f8df1611d3bff8474eefffff7fc23a77fff42af314d42032684ee3268340355666c332966d3328556332832830fb43e2c21f1a1f9081908a1f1a771a019341a01a7705d99348c898c80c819341341a1015b98a68a698a615b9ac515b190887d187d07d987d108190819479595b995b8a698a68a61595b15aecad746bb5d95aecd76ba2b5d9ae976585d1ae974579035d2e8d74bb35daecd74bb344220d112f344220b088344a20b088344220e5e89344a20d12893e2e22c311f1b11f1311b13195b196388f8b88d8d8cad8cd8d8cd8988e2624e2620e2624e2220b113e5710711127131271113e58893898838988388883888938989f2b88ff388882b89389882b89388882b8938889389882c449c4c415dd7962ebceeeecb17477776775747757658bb2bba2c5d1dddd15dd962efcb1745777e577458ba2c5d9ddddf9dd5d95dd95dd162e8eeae8b176577458bafff2bba2bbb3bbbb2c5d9dd5d795dd1dd5d1dd5df95dd162e8eeaebfcb17458ba2bba2bba3babb3baba2bbb2bbb3babb2c5d15dd962e8b17658baf2c5d15dd7962efffceeeebcc3e21f88ccb92b88d23a48e8c85e162ca10bc31838f4ed9a4ca17c9924617c987c67f119fc43f1187c63f11613e231f8cbe2309087042b259cc7050908cfe21f8cac7e230f883e332f88be230f8cbfffbd2c4e803f01956de0f73748691b259c1fedab8e231f887e32c07c6503e3987c63f1187c41f1987c41f1187c61f19587c7e7f17c657f19fc5f179fc7f115fc458f8bcafe22bf8bfcb1f11c852195c865890cb1211c872116242390a43390a42f390e432b90fcae42390e42f390a43390e42390a42f2c4865890ce43908b0dc961b836e1b836e5b92c370586e4db96e0adb936e5b92c37256dc1b72dc9b70dc161b836e5b836e5b82b6e0b0dc1b72dc161b92c372586e0db86e7cb0dc95b7056dc961b92c3726dcb70586e7cb121962422b90cae422b90cae43390e43390a432b90cb121f9c8521f9c87219c8521f95c86721487e572116243390a42f2c4865721ff95c8458908e4390bfcae43390a43390a432b90cb1211c872116242390a432c485e72148658908e4390c1890e0c48508a4284521c1890a0c484114840c484069092181a4348508a4383121422908189082290a0c4850624308af808af8ffe0c5f1fff8457c0457c5500002f317f4b633b769735a12c23ffd655317f7f1331bb28365417f312125f325e619317f98c331a17e317e31b3b294b62c18d19611611a5616199db0e698bf8bf9a5b8bf1a5b25b998d98d18bf0bf998da5b18bf18d98bf25b198d98d98bf18d1a5b18d958bf95a5b9afcbf9afcbf79617f2b5fcf1a5f8d7f5f8d7e5fcb0bf95afe6bfafe56bf1afebf1631b2b480b0901625f2c24269024072fa40690242690a42690a40690a406902406904bc58483cd2097cad202b483cd20484ad203481212b480d20484ad21f397920f2b487cb0909a429015a4256901a42901cbc901a429095b9be66c1b066c9b2566c19b0e6960d82b364cd9360dcd360cd8360b06c159b058364cd9363cb06cc237ec197ee11bf60cbf046fde11bf60cbf846401190846400c9081c86420c90046420721900464007219081c86400c9003243039048607219060720900464306484192106480237e832ff065fe11bf40efd7e08dfc0eff7f08dfc197f81dfefc0cbf81dfafc11bf40efd7f065fb065fc197fffffabfffff065f90403cc4102950c62707e0d6dd07e4c83d1044ce8107e0cc6a2954c6271898cc6a1044c41120f4c6541950c7f00c68c411189cc62620f4cc6b20f0d2ddfc4d9505f8cc68c68ad044c7e2950e0f47e4e0f20f0b0c4fffbd2c4ec813099a4d64f76b556e6315a95ff71bac56c4e56c4e63f23f25682068223f263f28226c4c3f2581f8341141131f91f92c0fc16189cc7e1040ac7e0ac7e4c7e07e0c7e07e7cb0821e563f0563f062422426240240624224256240581202b12131201212c090960480c480480ac484c484978c480484ac480c484978c484487cc480484b02425825ff2b1212bbff9dfefe77fbf95dfcb17e3bfdffcefd7f2c5ffcaefc77ebf1dfafe58909c824258907f9c86425720390c80ae4058901c86425720390480ae4057212b90f95c84e4321f2b90962427209095c80e41202b901c86427209016240720909c864257202b909c82405721390480b1212c480b17e2c5fcefd7f2bbf95dfceff7e2bbf162fe577eff2c5fbcefd7f2c5fcaeffe58bf95dfffcefd7e2c5f8b17e2bbf9c8243e589096241e5890962427209016240720901c864057202b9016243fe589096242721909c8642589095c83ce41212b9015c80e41212c7e3fcaff3fffffffffffe57f9ffffffff2c7e55f314d6f4319169c334141731d5320308946c341734134170ba33211d5332112f2c0b198f18711897990984413d984493d9a0b85d98c80c818c81349a995b1a98a69a98a6962b633ea1133ecfa2c1f467d9f458537cd4d534aeb62b534c894b8c894b8d2e4b8b0441a5c44f9b1b11b1311b13115b11b1f11b1b11b1f19b1711a2d41a2a279d42295a21a2a296110ea510ea510d1510d8d8cb0c4586336263363632c311b1319b13115b11618cd898bcae20ae27ffcae23fce2223ce2224b111e71311e577658baff2c5d95dd962ecb17458ba2c5d95ddf962e8aee8b17458bb363622b63362632b63362632b63362622b632b622c311b1b11b1b11f1b115b11b1b195b179b13196188b0c66c6c67131058892c44795c495c41c4c495c49c44496224ae23fce2623cb11258882b892b89ff2b88fff2c441c4441c4c416224e2624b112571057107131271311ffe5712571258883888938989f2b892b89ff38889389892c449c4c4f96119a39a1cdee361e4a6d3914c8ff336348ff31534d6c2b563cc6191d5cc4db0978ca5507e4d09920f0c8022ae4cd6c1534c2980a60cdef1ba0c3660d98c3671ba4de31e28aaf187e68f1a6f1af1a54a6d33663672b6e936e836734714712b8ff38fffbd2c4e483ecd556e20f776ec706aad981ff75f8ff47038ff4712c47f1594c194caa6194c94c994c14c194caa6194c94c15a08958fc18fc0fc1a080fc9b132089a08a081a088fc158fc98fc8fc98fc8fc98fc0fcf98fc8fc9607e4c7e07e4b03f0563f2581f934101f831f91f92b41031f841031f91f82c0fc1607e4c7e5044c7e47e4ac7e0ac7e0d0407e4c7e47e4d0447e7cd0447e0c7e07e0ac7e0c7e07e0c7e47e4b03f2563f263f23f063f03f0581f9ff2c3f2587e0adf82b7e7cdf97e0b0fc1bf0fc1bf0fc9bf2fc795bf056fc961f837e1f937e1f9f2c53258a64e99a67ce99a64ae992c53274c53258a64e99a64e99a60b14c1d314c95d3274c53074c53074cd32574c95d3274cd3258d9bcb1b3963672bd9fcaf662c6cc7b36ce7b3ece57b3ff9ecdb316367f2c6cc57b3795ecc58d98b1b315ece57b315ecc57b395ecc58d9cb1b3963672c6cc58d98b1b31ecfb3ff95ece58d98af66ff3d9f663d9b662c6ce58d9bcb1b395ecc58d9caf66f2bd995f31a74d5738745265324902f836f8cfe233f8d3e33674ca43367494a23248c2f930be02f831f893e334f8c7e232488c392a0c1c661c124657ee67484a267485ee46a25ee47ee4a2457484748548656fc667c6fc456fc4587e23512a422c5211a89d211a892899a89a8919f1bf1943e2f99f19f1160f88acf88df8df8fcb07c66fc47c7e583e22c1f1f9a52121192125219219219a5225299219211921a52f9a521219a521211a52121997c97c960be4cbe5838cbe0be4acbe4acbe0cbe4be4acbe0cbe4be0b05f265f05f3e577c1df17c1df37c15df1e77cdf058be7cef9be4ef9be4ef9be4b17c962f92c5f2577c95df058be4ef8be4b17c1df17c79df37c962f83be6f83be2f82bbe4b17c795df0577c962f8f2c7c47f17c7e58f8bcb1f115fc7e58f8bcafe22c7c47f1fc7fe7f1fc657f1f963e33f8be33f8fe22bf8cafe32bf8ffcfe2f88afe22bf8bcfe3f88fe3f8cfe2f88afe32bf8bcb1f1163e32bf88b1f17963e2fff3f8fe32bf8cb1f11fc7f1963e3ff2c7c5e7f17c5fffffe7f1fc7fe7f17c657f1f963e3ff2bf8cb1f179a08f40992f5881a6d30c9b137401a08a089545f8b131a56ca8731afe2696ecaa73182fe68234aa63f10787078c4e74a83f0563f063f0c4e70798d674a8820fffbd2c4e783f1f556c80ffbadc667b3da41ee572078d43f06822820682082056c4fe682082063f23f0584112c0fc158fcf98bf0bf18bf8bf198d8bf960c68acc6cac5fffcd0447e4c7e07e3fcc7e5044b03f27f8fc163f057f93fc7e7cb1f92bfcff9fe3f27f9fc9fe7f257f82c7e4b1f83fc7e0aff3ffe58fc1fe3f2577f2c5f8eff7f2c5f8efd7e3bf5f8eff7f3bfdffcb17f2c5fceff7f3bf5fbcff1f82bfc1fe7f258fc1fe3f058fc9fe7f07f8fc79fe3f3e7f8fc15fe0b1f92c7e3ffcb17f3bf5fcefd7e3bfdfceff7eff3bfdfceff7ef2c5f8efd7f3bf5f8aefc58bf162fc77ebf95dfcaefc58bf60cfc047f207f8fc833f1067e211fcc0ff3f9c23f9067e611fc033f011fcc19f808fe60cfc033f108fe419f9c0ff1f9847f007f8fc847f011fcc19f803fcfe419f8c0ff3f9c19f8067e60cfc047f303fcfe703fc7e607f8fc423f808fe3847f00cfc033f211fc047f007f9fc847f381fe3f3833f00cfc833f3c23f9833f103fcfe40ff1f85f34b617e36544b7317e7f1378c69630d95a03b2898d331b7f02b39c325e619325e121375712131cd3b732c20d931cc697315c0a02c16b990d8ae198da5b98bf25b998db2a18bf18d9a43ce9a432f9a40901a412f9f39ce9f3b2f9f392f1a42901612034839d2c24269024072fcbc690242690a406d96c9b65b26d86c95b60db0d836c360db2d92c360f98d82be695b60b1cd36cb63cb0d936cb64b0d82b6c1a814056a1350283cebaa12b5015d73cad426a0509a814275cae1624057212c483fcb1212c483cb121fff2c483cd42a0350a80d415d350a80d42a0350570b0a0f3ae574ad4258509a85426a15015a84d42a0350574b0a02c364db2d836c364db0d936c360db0d82b6c1b61b06d96c961b3e6d96c1b65b06d86cf95b64db0d836c360b0d836cb64adb258e6961b1e586c95b64db2d92b6c15b64adb26d86c961b26d96c95b64b0d92b6c961b06d86c795b60b0d92b6c961b2586c9b65b1e589016241e5720390480b1202c484e4120390c83cb120390c84b120390c80e43212c480b1202c484e43212b909c864057212c484b1212c483ce4321000fe62a690046401957256d7c1a044401990048111a046401158532620814aa56208987383ab184bc3ab986343f81931a32a9863432a98c4e41e9907fffbd2c4ea03b2f156da0f7790863b335a4dff5618a2081882220898a9a14c9900655c985328111853214cf9c014019aa694c994c94c194c14c994c14c1aa62a6194c94c960a64c7e47e4ac7e3fcd0447e4b08225825e325e121312025f2b121325f25f2c090960978c4844860cfc847f211fc01fe3f011fc81fe7f20cfc01fe7f00cfc047f20cfc01fe7f00cfc833f20cfc847f103fc7e60cfc047f207219001c86420721900324108c800e432108c84192006480232103904840e4121833f011fc01fe7f103fc7e3e0cfc033f007f9fc047f011fc01fe7f007f8fc419f908fe308fe211fc047f00cfc847f207f9fc847f20cfcc0ff3f8067e7067e023f808fe40ff1f9067e211fc033f011fc833f3833f303fcfe3067e00ff3f908fe019f9833f20cfcc23f903fc7e019f808fe023f8e07f8fc40ff3f8833f1067e423f9847f207f8fcc19f9847f207f8fc033f211fc847f00cfc033f1a99d67fa933ccc957f313fea3d51f6a55f31a7069c3183d26534990c3934f8d3e236f88fe235f8a7e232f88fe331ce038c31588cb934a59673bc724235635633739738338f90f34a470437054a5324324237e3be32b7e333e2be337e27e32b3e333e23e333e33e233e37e22c2899a895211a89d21f0b0a2456484648648456484648694a648648456484582422c1211921a52159211592199219211592119211211fc5f17f95fc457f195fc5fe7f1fc658f88ef9be0b17c1df37c1df37c1df17c9df17c15df2577c15df277cdf277c5f277cdf3e577c962f93be2f9fff2bbe4ef9be4aef93be2f8ff2bbe0db96e0adb836e5b836e38e36e78d36e1b82b6e4db96e3cdb86e4f8f6e4db96e4db96e4db96e0adb836e1b92b6e0e4390cb12115c84721c84572179c87211c852195c84721486721c86721486572195c865890cb12179c87219c87219c872115c8477c5f0577c15df2577c95df077cdf0577c95df258be7cef8be4ef8be7ffcaef83be2f9f3be6f82bbe4b17c962f82c5f1e577c15c867214845890bfce4290fce43908e4390ce4390cb1219c85219c85219c872116242390a43390a42f2b90bfcb121ff95c87e721487e62898a2462891ee462890a26541f88c3e27f88c5121444f3c2144ccf4f0be4c2f93d3ccf72674cc5133dccd57a4990b061c985f217c9ff1fffbd2c4ee03f47d56cc0ffba9c6beb5d901ff59b0bf19df11f11bf1df19c9117c94922997c97c1c91b07645144c74874847ee6a25c3a4251335125133a4251335135132c5f19bf1bf19bf11f199f11f11bf19f199f19f195b07997c17c997c97c9b07307960be0cbe0be0cbe4be0b05f3e67c47c467c47c6567c667c47c4583e22b3e32b3e22b3e333e33e28457cc22be40d7caf98457c01af85f211c1e115f0b062f903c1ebe018be418be00d7c2f8062f9035f2be018be40d7c2f908af908af8062f9062f881af85f0115f006be57c8317c01af85f2115f2115f20783d7c0317c0457c0317c8457cc198380d7caf9035f0be606be17c40df13e3063e2037c6f8f08be2c0df13e3037c6f8a0c7c406f89f1031f16117c5037c4f8818f8c0e89d12c2344819448194482344a11a260ca2411a260744a894234482344e11a240744a89f06512c1944e117c606f8df1845f1845f140df13e3063e2f063e308be3063e3037c4f8f063e2063e3063e2063e308be2831f1031f142344aaf83289ff06512846897fffff08d130651354c414d45332e313030555555f2c113a6ce9be046f81a9467a1d687668aaa2a87e79a2a86d07341e6491924469329244513e39afc65f199484f8199ee6a5118a262899a94428999ee628918a262891be062891a94452118a2452199486a51191388aa1913844e9a2aa44e9913844e9a2aa44e1a2a844e9913a44e9511542b2270a1f14aef8cacf88a1f17cb0fc4585122b5123a43a43f2b513f35125132c28981d13a240744a8904e8981d12a25c0e89d1308d1203a2744c2344c1944819448194480e89d1275c2344b03a2744c0e89d1208d120651284689e0ca2703a2544c1944a0744e89c1944c1944e11a240ca2411a260ca260744e894194482344a0ca2708d120651208d1206513df03a2544e0ca260ca2613a2508d1203a2544982344fc23449ffc19a770669ce11d3b08e9c08e9c08e9c8474ef68334e230669cf8334ee11d3bedfe0cd39ff84b4e0474e3c19a737fc19a774fb7ffd1a8ac5ca3172d7853ebdc5cb2b5e0cd19b4668a2f083bc90bb3285d90ca6d29b0d1730d98e3545e10d7855e08c47023f8db3711c4a11fc32ec8bb23466cbb234668bb23172978328bc20ad7853466d19d32eccbb334674bb22c233450bb2fffbd2c4d583e9c98ec40ffad44632b35881ff5a9879a3345d915a336562e5128b9671fc8e068e28e068e08e068e31fc568e271fe8e25836733666e82c1b3959b3159b3159b39b749b3160d9cacd9ccd9cd9fcb06cc566cc566cc66cc6cffe566ce566cc566cc66ce6ce5836633666e93366367336736636e83662b36636e86e82c1b3960d98231c4231c4231c0191c4191c4231c0191c4191c0231c58191c20c8e2118e20c8e00c8e1038e11c0231c4231c4231c40e38471c191c6071c638846388463840e38c70038e31c00e38c70038e11c0231c40e3847108c71c0e3847181c718e00c8e2e0c8e2118e00c8e18323881c708e0118e211b940cb97f03b9572c2372af065ca81dcab97f832e5f03b9572c0ee5dca08dca03b9772c2372f81dcbb9411b940cb97fc1972e11b940cb94e11b940cb95ededde0cb956846e5fff09dcae12b960000001fcc2994b64d58f35b0cd6f1530d2d835b0d0220a60c31b2ca4c17e05f8c4b605fcb00bf18c303ab18eac30c98822208960c6b31040a55319544b630c6831b3195031b3200c29831534ab830a648022a0532581534c2990a60ac54c2c0532562a69602982c0a98614c05305640116031b305fc4b72b0c68b018d16031b305fc17ff2b7e3cadf92c3f0587e0df87e4df87e4f1b5fcb0bf1afcbf79617eff2c2fe6bfafc56bf95a42690a4072fa4272fa40690242690a42690242690240572f9a40901a409015a42690a40690a40690cbe690a4269024256901a40901a40909a42909a412f1a41ce9a42909a4090961202c5f8aefc77ebff9dfafde577ff3bf5f8efd7e2c5fbcefd7f2c5f8b17ef2bbf15df8efd7f3bf5fbcb17e2c5f8eff7f3bfdfcaefe77fbf162fc77fbf1dfefc58bf795dfcaefe77ebf1dfafe77fbf9dfefc58fc1fe7f057f93fcfe4b1f82c7e4aff1fe58fc95fe0aff258fcf9fe3f258fcff95fe0aff1e58fc95fe0b1f92bfc1fe3f257f83fc7e0ff1f8f2bfc9fe7f3e58fc9fe7f257f82c7e3cff3f92c7e4b1f83fcfe7cb1f8f2c7e0ff3f82bfc9fe7f257f9ffffcbf79dde6bf76bb87ef58ffffef3cf9bfdd65909587c663f127c65455e4d2641838c9224994c9221830c66c0ca4c0fa0ca4cae20e34c5632438cbc71290cbc638a4ad2642c05f0617c8c1c787124465f2c1fe7485485d3f72fffbd2c4ff83b74592d26ff796ce783199c1ff75a8a433f73512314c4212c15b9a1095b195b15b960be4cbe0be4cbe5838d838be4d838be0c6e4e30ce386e4d58ce38b071e563706370372582422c252960908c90d297cac90cc908908ac90cadb936e1b936e38c36e1b82c37056dc1b71c61b72dc9b70dc9b70dc162f9f2bbe4ef9be7caef92c5f3e577c15df058be0aef8390a422b908ae422b90cb12196242f2c4845890fce43908e4390ce4290ce43908db86e0db96e4db86e4b0dc9b72dc161b936e5b836e5b936e5b936e1b92c370586e0b0dc1b72dc95b7256dc1b70dc1b72dc9b72dc1b70dc95b7056dc9b70dcff9b72dcf9b70dc9b72dc15b70586e0b0dc1b70dc95b726dcb71e586e4b0dc7fffffffff95fc658f8fffffffcafe2ffffff390a43390e42f2b90ce43908b12195c86721c86721c85e5721796243f2c4845890cae422b908e4390ce4290cae422b908e4390cb1217fffff962f92c5f3fffffffffe58be7ffffffffcb17cd5f2c0a266f813e066289b3a462529c5265e39c50512651a4ca61c96096631294bc632f1cbc731294bc630e30ae532b8c90f3158c38f32438ae33158c1b82b0e34a8491985f04929924630798c1e3079978c71498948121184847141589486289948665210a2462898a26581448aca432c0a2462890a2456289958a27e58144cb1f17ff963e23f8fe3f2c7c5e6dc3726dcb726dc370586e4db86e4db96e4b1c79b70dc9b72dc1b72dc1b72dc9b70dc1b72dc9b72dcf9b72dcf9b72dc95b70586e0db96e0b121162432b908b12115c865890cae43fff2c486572195c85e6dcb706dcb706dcb726dc37256dc15b7256dc9b70dc161b92c372586e4adb8ff36e1b936e5b8ff390a422b908ae422b908ae432b908e4390ce42908e4290ffcb1211c8521962422c484721486721c86572196242ff2bbe3cb17c15df058be4aef82bbe4b17c95df258be0b17c9df17c79df37c95df277cdf258be3fcef8be3caef82bbe7ce4390ce42908ae42390e43ff2c48457211c8721962432c485e721c845890bce43908e42908ae43f2b90cae422b908ae43f390e432b90cb121e11a244c8532310ce157e3496d8d93103fcc48c61f831931cad5270ae8192a1276cb51950b27064a9958b034403a095cd245b3b7114c8a46353c2ce1fffbd2c4ea83f37d5cce0ff6d7c60934de41cd6691444353298d52a832342b64c8a324908d5644353aa8444a1cf46b3f9a6506a968b563fea8af41bb1a648798f1e63c898c266f07155e133b3428486c913c33670cf9a295866cf19e39485681a081a081a1e129c677e57e1a07cacd338ad120ecd23499f1de8cc44d0f8ce46e19e819c990a0fe52909c5101a089f871a3e54287b64d19551340e34117fed19e91222672049f133f1b24748b928d4a8f709b9371d2478a3a26e891e375d22fc75f375b28f33ce909bd76cecbc9301f81dc82ceab0a9713b93676594f58edb49da3bef3c2f3bb03b6b1cbdf772e8cf0b4730257481e26ecdc70de789b62ab46d344ae916a6e3981b8f916a586c6b29d8d916c6f3a6eb84df9bed5b98379ee61f52c72bd3d3dc87e821ca177e00791c393b87227f2cd69c7ddc7a067703cc3b0ee47dafcbe61fbad63ee01800661f807c0111c7079e00600181e7819600647aa47e30c10cc641634bbb8df69a30a24cd04093289c8cae19347bb8e0aea368b28d8ea232684cca8573291ccd40a33350ecc624a30995cd890738837cd083103010c969c366b18d326230e03d1b0c1a1c317908ca25031f8502c0b2c898684248150e4120d48b4e061269366e3a6e4269a868803069b4e9c149d4e930374461238afa008c638402091a80889ac8840afd213404097154d5215a622b3ded69d6804b9a641a640282a5500d598d64c98100a470c870a802590fcd274de84d350cb014ba7df57e00281aa52ce5e2c55733dceccb1da81986f825237da3552354c4d752de4b60161a862611a68063251aa618a71c381bcaa78ad160060880a19d761ac460168cb38280a22ba4826407294a76971400b370db81204d8111b8f344f102a8e2e36a8dae0369545055d5692f2ca619932e67782e235a17eb5aa3a58661da90d3b4ca588b5d4e50214d093204b8ac74401342cd035225f635d0f3639a0ba51c4e648a6f9554c0b385ced7393cb8cf34a6970a6b5ba5a6ed5a5a5d534bad56954bad5594cb6f5694cb795a354dda58cd3674b19b3a954bad56954bad5594cb7095592028b51774bdc5f541a2a0287884f4281658d330cc64c37028f90c0237c00d19e686807c2e76e46b7a60fc415882830e5341837c7077c6a1e61ac1664858156418b18fffbd2c4f28234520cec0e67178619bf8c199c3fa82898c416f157c0b2aa1a08eb2a42498c798ab00190bb440d8a34055cca2823337443517315c0a3e43008df023463a6680c44a04145d541a56555050f50c51751550e50d5165655505575344d90148c4b04b844f2580cbc28c30941d0128808c0c28a9890e38611942802e5abb7325d56e5d9a765618b8414088443052520e8c4002e3913005532a0c5b0af083a29c02e4d0e01ac3546c3805c20892c065e166015260121a3178ad6bb7265da54a5c10a804031921214708210972048e1862c885c42852520e8c4422dda0115e3427f6028360882dea6429528dc91a8ec94a92891e98050305180050a985124a81d488085970e60634c20061c54c4871c3084a5a82dfa5123ea732c0a8f2db5805575e0d11b0ae972bcbb522ad2a5c49513d288a9280bb96c32d04749fc894c24d10a7523635c282d52c08ee9955ca55d2fae14ec0c70e94c414d45332e3130305555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555";
3467
+ var Es = Object.defineProperty, O = (a, e, t, i) => {
3254
3468
  for (var s = void 0, r = a.length - 1, o; r >= 0; r--)
3255
3469
  (o = a[r]) && (s = o(e, t, s) || s);
3256
- return s && As(e, t, s), s;
3470
+ return s && Es(e, t, s), s;
3257
3471
  };
3258
- const E = Je.noConflict();
3259
- E.setLevel("info");
3260
- const ne = "cb_", Ms = (a) => new Promise((e) => setTimeout(e, a));
3472
+ const T = Je.noConflict();
3473
+ T.setLevel("info");
3474
+ const ne = "cb_", $s = (a) => new Promise((e) => setTimeout(e, a));
3261
3475
  class R extends Yt {
3262
3476
  constructor() {
3263
3477
  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}`);
3264
3478
  }
3265
3479
  // this is called at startup
3266
3480
  setSetting(e) {
3267
- E.info("appState: Startup: setSetting", e), this.setting = e, this.initBot().catch((t) => {
3268
- E.info(`Exception during bot initialization: ${t.message}`);
3481
+ T.info("appState: Startup: setSetting", e), this.setting = e, this.initBot().catch((t) => {
3482
+ T.info(`Exception during bot initialization: ${t.message}`);
3269
3483
  });
3270
3484
  }
3271
3485
  // set language
@@ -3280,7 +3494,7 @@ class R extends Yt {
3280
3494
  async initBot() {
3281
3495
  if (!this.botSettingsInitialized) {
3282
3496
  const i = `${this.setting.url.startsWith("localhost") ? "http" : "https"}://${this.setting.url}/api/bot/settings/${this.setting.orgId}/${this.setting.botId}`;
3283
- E.info(`Getting bot settings at ${i} ...`);
3497
+ T.info(`Getting bot settings at ${i} ...`);
3284
3498
  let s = null, r = null;
3285
3499
  try {
3286
3500
  s = await fetch(i, {
@@ -3290,13 +3504,13 @@ class R extends Yt {
3290
3504
  "X-Enegel-Signature": this.setting.botId
3291
3505
  //"ngrok-skip-browser-warning": "1",
3292
3506
  }
3293
- }), !s.ok || s.status !== 200 ? E.error(`Failed to get bot ${this.setting.botId} settings: ${s.status} ${s.statusText}`) : r = await s.json();
3507
+ }), !s.ok || s.status !== 200 ? T.error(`Failed to get bot ${this.setting.botId} settings: ${s.status} ${s.statusText}`) : r = await s.json();
3294
3508
  } catch (o) {
3295
- E.error(`Failed to get bot ${this.setting.botId} settings: ${o.message}`), r = null;
3509
+ T.error(`Failed to get bot ${this.setting.botId} settings: ${o.message}`), r = null;
3296
3510
  }
3297
3511
  if (this.botSettingsInitialized = !0, this.botSettings = r, !r) {
3298
- if (E.error(`Unable to retrieve bot settings - bot disabled. Retry in ${this.botSettingsRetryTimeout} seconds.`), this.disabled = !0, this.botSettingsRetryTimeout > 80) {
3299
- E.error("Failed to retrieve bot settings - bot disabled. Retries exhausted. Refresh page to attempt again.");
3512
+ if (T.error(`Unable to retrieve bot settings - bot disabled. Retry in ${this.botSettingsRetryTimeout} seconds.`), this.disabled = !0, this.botSettingsRetryTimeout > 80) {
3513
+ T.error("Failed to retrieve bot settings - bot disabled. Retries exhausted. Refresh page to attempt again.");
3300
3514
  return;
3301
3515
  }
3302
3516
  this.botSettingsInitialized = !1, setTimeout(async () => {
@@ -3304,17 +3518,17 @@ class R extends Yt {
3304
3518
  }, this.botSettingsRetryTimeout * 1e3), this.botSettingsRetryTimeout = this.botSettingsRetryTimeout * 2;
3305
3519
  return;
3306
3520
  }
3307
- E.info("Got bot settings - bot is enabled", r), this.disabled = !1, this.setting.welcomeMessage = r?.welcomeMessage || "How can I help ?", this.setting.disclaimerMessage = r?.disclaimerMessage && r.disclaimerMessage !== "" ? r.disclaimerMessage : null, this.setting.engageMessage = r?.engageMessage || "How can I help ?", this.setting.engageTimeout = r?.engageTimeout || 5, this.setting.splitMessagesAtBreak = "splitMessagesAtBreak" in r ? r.splitMessagesAtBreak : !1, this.setting.feedbackEnabled = "feedbackEnabled" in r ? r.feedbackEnabled : !1, this.setting.uploadImages = "uploadImages" in r ? r.uploadImages : !1, this.setting.newConversationTimeoutInSec = r?.newConversationTimeoutInSec || 86400, this.setting.enableNotificationSound = "enableNotificationSound" in r ? r.enableNotificationSound : !0, this.setting.botAdvancedSettings = r?.botAdvancedSettings ?? {}, this.setting.startFeedbackFromMessage = "startFeedbackFromMessage" in this.setting.botAdvancedSettings ? this.setting.botAdvancedSettings.startFeedbackFromMessage : 1, this.setting.enableMultiModalConnection = this.setting.botAdvancedSettings?.enableMultiModalConnection ?? !1, this.setting.enableMultiModalConnection ? this.setting.enableAudio = !0 : this.setting.enableAudio = !1, this.initConversation(), this.shouldEngage === "true" && setTimeout(() => {
3521
+ T.info("Got bot settings - bot is enabled", r), this.disabled = !1, this.setting.welcomeMessage = r?.welcomeMessage || "How can I help ?", this.setting.disclaimerMessage = r?.disclaimerMessage && r.disclaimerMessage !== "" ? r.disclaimerMessage : null, this.setting.engageMessage = r?.engageMessage || "How can I help ?", this.setting.engageTimeout = r?.engageTimeout || 5, this.setting.splitMessagesAtBreak = "splitMessagesAtBreak" in r ? r.splitMessagesAtBreak : !1, this.setting.feedbackEnabled = "feedbackEnabled" in r ? r.feedbackEnabled : !1, this.setting.uploadImages = "uploadImages" in r ? r.uploadImages : !1, this.setting.newConversationTimeoutInSec = r?.newConversationTimeoutInSec || 86400, this.setting.enableNotificationSound = "enableNotificationSound" in r ? r.enableNotificationSound : !0, this.setting.botAdvancedSettings = r?.botAdvancedSettings ?? {}, this.setting.startFeedbackFromMessage = "startFeedbackFromMessage" in this.setting.botAdvancedSettings ? this.setting.botAdvancedSettings.startFeedbackFromMessage : 1, this.setting.enableMultiModalConnection = this.setting.botAdvancedSettings?.enableMultiModalConnection ?? !1, this.setting.enablePassContextOnConnect = this.setting.botAdvancedSettings?.enablePassContextOnConnect ?? !1, this.setting.fileUploadEnabledExtensions = this.setting.botAdvancedSettings?.fileUploadEnabledExtensions || ".jpeg,.jpg,.png,.pdf,.txt,.har,.zip,.mov,.mp4,.mp3", this.setting.fileUploadMaxFileSizeMB = this.setting.botAdvancedSettings?.fileUploadMaxFileSizeMB || 30, this.setting.enableAgentDisconnectedMessage = this.setting.botAdvancedSettings?.enableAgentDisconnectedMessage ?? !1, this.setting.showNewConversationOnAgentDisconnected = this.setting.botAdvancedSettings?.showNewConversationOnAgentDisconnected ?? !1, this.setting.enableMultiModalConnection ? this.setting.enableAudio = !0 : this.setting.enableAudio = !1, this.initConversation(), this.shouldEngage === "true" && setTimeout(() => {
3308
3522
  this.showEngagePopup();
3309
3523
  }, this.setting.engageTimeout * 1e3);
3310
3524
  }
3311
3525
  const e = new URLSearchParams(window.location.search);
3312
3526
  if (e.has("c7o_bot_open")) {
3313
3527
  const t = e.get("c7o_bot_open");
3314
- this.open = t !== "false" && t !== "no" && t !== "0", E.info(`C7O-BOT:INIT: Force open=${this.open} from query parameter c7o_bot_open=${e.get("c7o_bot_open")}`);
3528
+ this.open = t !== "false" && t !== "no" && t !== "0", T.info(`C7O-BOT:INIT: Force open=${this.open} from query parameter c7o_bot_open=${e.get("c7o_bot_open")}`);
3315
3529
  }
3316
- this.connectWs === "true" && (E.info("appState: connectWs is true"), this.getWsClient().catch((t) => {
3317
- E.error(`Exception during ws client startup: ${t.message}`);
3530
+ this.connectWs === "true" && (T.info("appState: connectWs is true"), this.getWsClient().catch((t) => {
3531
+ T.error(`Exception during ws client startup: ${t.message}`);
3318
3532
  })), setTimeout(() => {
3319
3533
  window.dispatchEvent(
3320
3534
  new CustomEvent("c7o:bot:stateEvent", {
@@ -3346,17 +3560,34 @@ class R extends Yt {
3346
3560
  }), this.initStartupForm();
3347
3561
  }
3348
3562
  // AGENT // ////////////////////////////////////////////////////
3563
+ async handleAgentConnected(e) {
3564
+ T.info("c7o: Agent Connected", e);
3565
+ const t = e?.userName || "Agent";
3566
+ this.addMessage({
3567
+ id: e?.id || null,
3568
+ author: "system",
3569
+ type: "info",
3570
+ data: {
3571
+ text: `**${t}** joined chat`,
3572
+ ...e.userName && { userName: e.userName },
3573
+ ...e.userAvatar && { userAvatar: e.userAvatar }
3574
+ }
3575
+ });
3576
+ }
3349
3577
  async handleAgentDisconnected(e) {
3350
- E.info(`c7o: Agent disconnected ${this.webAudioCurrentMark}`, e), this.addMessage({
3578
+ if (T.info("c7o: Agent disconnected", e), !this.setting.enableAgentDisconnectedMessage)
3579
+ return;
3580
+ const t = e?.userName || "Agent";
3581
+ this.addMessage({
3351
3582
  id: e?.id || null,
3352
- author: "assistant",
3353
- type: "text",
3583
+ author: "system",
3584
+ type: "info",
3354
3585
  data: {
3355
- text: "_Left chat_",
3586
+ text: `**${t}** left chat`,
3356
3587
  ...e.userName && { userName: e.userName },
3357
3588
  ...e.userAvatar && { userAvatar: e.userAvatar }
3358
3589
  }
3359
- }), this.showNewConversation = !0;
3590
+ }), this.setting.showNewConversationOnAgentDisconnected && (this.showNewConversation = !0);
3360
3591
  }
3361
3592
  // BROADCAST // ///////////////////////////////////////////////////
3362
3593
  async handleBroadcastMessage(e) {
@@ -3425,7 +3656,7 @@ class R extends Yt {
3425
3656
  }
3426
3657
  // When finished playing audio, clear trackId and send mark message
3427
3658
  async onPlaybackEnded() {
3428
- this.webAudioCurrentMark && (E.info(`c7o: mark ${this.webAudioCurrentMark} completed`), await this.sendEvent({
3659
+ this.webAudioCurrentMark && (T.info(`c7o: mark ${this.webAudioCurrentMark} completed`), await this.sendEvent({
3429
3660
  id: fe(),
3430
3661
  type: "mediaMark",
3431
3662
  mark: {
@@ -3434,7 +3665,7 @@ class R extends Yt {
3434
3665
  }), this.webAudioCurrentMark = null, this.webAudioTrackId = null);
3435
3666
  }
3436
3667
  async onWebAudioTerminate() {
3437
- E.info("c7o: terminating audio"), await this.stopAudio();
3668
+ T.info("c7o: terminating audio"), await this.stopAudio();
3438
3669
  }
3439
3670
  // Confirmation from server that media started
3440
3671
  // {"type":"mediaStarted","mediaType":"audio","mediaTransport":"webmedia","webmedia":{"mimeType":"audio/L16","mediaSpec":{"sampleRate":24000,"channels":1}}}
@@ -3453,16 +3684,16 @@ class R extends Yt {
3453
3684
  if (!e || e?.type !== "media" || !e?.media || e?.mediaType !== "audio" || !e?.media?.payload || !this.webAudioProcessor || !this.webAudioStarted)
3454
3685
  return;
3455
3686
  const t = e.media.payload;
3456
- this.webAudioTrackId || (this.webAudioTrackId = fe()), E.info(`${Date.now()}: Playing audio: ${t.length} bytes, trackId: ${this.webAudioTrackId}`), await this.webAudioProcessor.playAudio(t, this.webAudioTrackId);
3687
+ this.webAudioTrackId || (this.webAudioTrackId = fe()), T.info(`${Date.now()}: Playing audio: ${t.length} bytes, trackId: ${this.webAudioTrackId}`), await this.webAudioProcessor.playAudio(t, this.webAudioTrackId);
3457
3688
  }
3458
3689
  // {"type": "mediaMark","mark": {"name": "1757277902935"}}
3459
3690
  async handleMediaMark(e) {
3460
- !this.webAudioProcessor || !this.webAudioStarted || (this.webAudioCurrentMark = e?.mark?.name || null, E.info(`c7o: Current media mark set to ${this.webAudioCurrentMark}`, e));
3691
+ !this.webAudioProcessor || !this.webAudioStarted || (this.webAudioCurrentMark = e?.mark?.name || null, T.info(`c7o: Current media mark set to ${this.webAudioCurrentMark}`, e));
3461
3692
  }
3462
3693
  // Confirmation from server that media stopped
3463
3694
  //{"type":"mediaClear","mediaType":"audio"}
3464
3695
  async handleMediaClear(e) {
3465
- E.info("c7o: Got mediaClear, clearing buffered media", e), this.mediaStartedAudio = !1, !(!this.webAudioProcessor || !this.webAudioStarted) && (this.webAudioTrackId = null, await this.webAudioProcessor.interruptAudio());
3696
+ T.info("c7o: Got mediaClear, clearing buffered media", e), this.mediaStartedAudio = !1, !(!this.webAudioProcessor || !this.webAudioStarted) && (this.webAudioTrackId = null, await this.webAudioProcessor.interruptAudio());
3466
3697
  }
3467
3698
  // ////////////////////////////////////////////////////////////
3468
3699
  setPrefilledFormFields(e) {
@@ -3485,7 +3716,7 @@ class R extends Yt {
3485
3716
  return;
3486
3717
  const e = await this.getWsClient();
3487
3718
  if (!e) {
3488
- E.error("Error - failed to obtain ws client");
3719
+ T.error("Error - failed to obtain ws client");
3489
3720
  return;
3490
3721
  }
3491
3722
  const t = {
@@ -3493,7 +3724,7 @@ class R extends Yt {
3493
3724
  type: "setContext",
3494
3725
  contextData: this.context
3495
3726
  };
3496
- e.sendMessage(t), E.info("Sent context:", this.context);
3727
+ e.sendMessage(t), T.info("Sent context:", this.context);
3497
3728
  }
3498
3729
  getContext() {
3499
3730
  return this.context;
@@ -3506,20 +3737,20 @@ class R extends Yt {
3506
3737
  this.initForm(this.form);
3507
3738
  return;
3508
3739
  }
3509
- const e = Ut(null, ["startupForm"], this.botSettings);
3740
+ const e = Wt(null, ["startupForm"], this.botSettings);
3510
3741
  if (!e || !e?.name) {
3511
- E.info("Startup form not present");
3742
+ T.info("Startup form not present");
3512
3743
  return;
3513
3744
  }
3514
3745
  this.initForm(e);
3515
3746
  }
3516
3747
  initForm(e = null) {
3517
- const t = e, i = Ut(null, ["name"], e);
3748
+ const t = e, i = Wt(null, ["name"], e);
3518
3749
  if (!t || !i)
3519
3750
  return;
3520
- const s = Ut(null, ["fields"], e);
3751
+ const s = Wt(null, ["fields"], e);
3521
3752
  if (!Array.isArray(s) || s.length <= 0) {
3522
- E.info("form has no fields", e);
3753
+ T.info("form has no fields", e);
3523
3754
  return;
3524
3755
  }
3525
3756
  const r = `${ne}${this.setting.botId}.${this.conversationId}.form.${i}`, o = localStorage.getItem(r);
@@ -3528,11 +3759,11 @@ class R extends Yt {
3528
3759
  try {
3529
3760
  f = JSON.parse(o);
3530
3761
  } catch (p) {
3531
- E.error(`Failed to parse stored form data: ${p.message}`), f = null;
3762
+ T.error(`Failed to parse stored form data: ${p.message}`), f = null;
3532
3763
  }
3533
3764
  if (f) {
3534
3765
  this.sendFormData(i, f).catch((p) => {
3535
- E.error(`Error when submitting form: ${p.message}`);
3766
+ T.error(`Error when submitting form: ${p.message}`);
3536
3767
  });
3537
3768
  return;
3538
3769
  }
@@ -3543,7 +3774,7 @@ class R extends Yt {
3543
3774
  this.engage = !1, this.shouldEngage = "false";
3544
3775
  }
3545
3776
  showEngagePopup() {
3546
- this.open || (E.info("Engaging User !"), this.engage = !0, this.playAudioNotification());
3777
+ this.open || (T.info("Engaging User !"), this.engage = !0, this.playAudioNotification());
3547
3778
  }
3548
3779
  playAudioNotification() {
3549
3780
  if (!this.setting.enableNotificationSound)
@@ -3554,7 +3785,7 @@ class R extends Yt {
3554
3785
  o[f] = parseInt(r.substr(f * 2, 2), 16);
3555
3786
  return o;
3556
3787
  };
3557
- let t = new Blob([e(Cs)], { type: "application/octet-stream" });
3788
+ let t = new Blob([e(Is)], { type: "application/octet-stream" });
3558
3789
  const i = URL.createObjectURL(t);
3559
3790
  new Audio(i).play();
3560
3791
  }
@@ -3567,7 +3798,15 @@ class R extends Yt {
3567
3798
  if (this.wsClient)
3568
3799
  return this.wsClient;
3569
3800
  let t = `${this.setting.url.startsWith("localhost") ? "ws" : "wss"}://${this.setting.url}/api/bot/connect/${this.setting.orgId}/${this.setting.botId}/${this.conversationId}`;
3570
- return this.setting.enableMultiModalConnection && (t += "?multiModal=true", E.info("MultiModal connection enabled - adding multiModal=true parameter")), E.info(`Initiating ws connection to ${t} ...`), this.wsClient = new es({
3801
+ const i = new URL(t);
3802
+ if (this.setting.enableMultiModalConnection && (i.searchParams.set("multiModal", "true"), T.info("MultiModal connection enabled - adding multiModal=true parameter")), this.setting.enablePassContextOnConnect && this.context && typeof this.context == "object")
3803
+ try {
3804
+ const s = JSON.stringify(this.context);
3805
+ i.searchParams.set("context", s), T.info("Adding context to connect URL");
3806
+ } catch (s) {
3807
+ T.error(`Failed to stringify context: ${s.message}`);
3808
+ }
3809
+ return t = i.toString(), T.info(`Initiating ws connection to ${t} ...`), this.wsClient = new ts({
3571
3810
  url: t,
3572
3811
  orgId: this.setting.orgId,
3573
3812
  botId: this.setting.botId,
@@ -3587,11 +3826,11 @@ class R extends Yt {
3587
3826
  }), await this.wsClient.start(), this.connectWs = "true", this.wsClient;
3588
3827
  }
3589
3828
  handleWscClose(e) {
3590
- E.info(`WSC: connection closed, connected: ${this.wsClient?.connected}`, e), this.stopWebAudio().catch((t) => {
3829
+ T.info(`WSC: connection closed, connected: ${this.wsClient?.connected}`, e), this.stopWebAudio().catch((t) => {
3591
3830
  }), this.connected = !1;
3592
3831
  }
3593
3832
  async handleWscConnectError(e) {
3594
- E.info("WSC: connect error - resetting conversation", e);
3833
+ T.info("WSC: connect error - resetting conversation", e);
3595
3834
  const t = this.wsClient?.url || null;
3596
3835
  if (this.wsClient)
3597
3836
  try {
@@ -3617,13 +3856,13 @@ class R extends Yt {
3617
3856
  const s = t.includes("?"), [r, o] = s ? t.split("?") : [t, ""], f = r.split("/");
3618
3857
  f[f.length - 1] = this.conversationId;
3619
3858
  const p = f.join("/"), v = o ? `${p}?${o}` : p;
3620
- this.wsClient.url = v, await Ms(1e3), await this.wsClient.start(), E.info(`WSC: started new conversation, conversationId=${this.conversationId}`);
3859
+ this.wsClient.url = v, await $s(1e3), await this.wsClient.start(), T.info(`WSC: started new conversation, conversationId=${this.conversationId}`);
3621
3860
  } catch (i) {
3622
- E.error(`WSC: failed to reset conversation: ${i.message}`, i);
3861
+ T.error(`WSC: failed to reset conversation: ${i.message}`, i);
3623
3862
  }
3624
3863
  }
3625
3864
  handleWscConnecting(e) {
3626
- E.info(`WSC: on connecting(${e}), connected: ${this.wsClient?.connected}`), this.connecting = e, !this.connecting && this.wsClient?.connected ? (this.connected = !0, this.context && typeof this.context == "object" && Object.keys(this.context).length > 0 && this.wsClient.queueMessage(
3865
+ T.info(`WSC: on connecting(${e}), connected: ${this.wsClient?.connected}`), this.connecting = e, !this.connecting && this.wsClient?.connected ? (this.connected = !0, this.context && typeof this.context == "object" && Object.keys(this.context).length > 0 && this.wsClient.queueMessage(
3627
3866
  {
3628
3867
  id: fe(),
3629
3868
  type: "setContext",
@@ -3640,7 +3879,7 @@ class R extends Yt {
3640
3879
  }
3641
3880
  // Update typing state based on received message
3642
3881
  updateTypingState(e) {
3643
- this.typingActive ? e && ["message", "message-chunk", "media", "typing-stopped"].includes(e?.type) && (this.typingActive = !1, E.info("c7o: typing stopped")) : e && e?.type === "typing" && (this.typingActive = !0, E.info("c7o: typing started"));
3882
+ this.typingActive ? e && ["message", "message-chunk", "media", "typing-stopped"].includes(e?.type) && (this.typingActive = !1, T.info("c7o: typing stopped")) : e && e?.type === "typing" && (this.typingActive = !0, T.info("c7o: typing started"));
3644
3883
  }
3645
3884
  handleWscMessage(e) {
3646
3885
  if (e?.type === "ack")
@@ -3700,15 +3939,7 @@ class R extends Yt {
3700
3939
  break;
3701
3940
  }
3702
3941
  case "agent-connected": {
3703
- this.addMessage({
3704
- id: e?.id || null,
3705
- author: "assistant",
3706
- type: "text",
3707
- data: {
3708
- text: "_Joined chat_",
3709
- ...e.userName && { userName: e.userName },
3710
- ...e.userAvatar && { userAvatar: e.userAvatar }
3711
- }
3942
+ this.handleAgentConnected(e).catch((i) => {
3712
3943
  });
3713
3944
  break;
3714
3945
  }
@@ -3720,7 +3951,7 @@ class R extends Yt {
3720
3951
  //{"type":"agent-connected","author":"assistant","userName":"SF DEV ADMIN"}
3721
3952
  //{"type":"agent-disconnected","author":"assistant","userName":"SF DEV ADMIN"}
3722
3953
  case "form": {
3723
- if (E.info("Got form:", e), this.replyMessage && this.replyMessage.id) {
3954
+ if (T.info("Got form:", e), this.replyMessage && this.replyMessage.id) {
3724
3955
  const i = this.replyMessage.data?.text || "";
3725
3956
  (this.replyMessage.isThinking || i.trim() === "") && (this.removeMessage(this.replyMessage.id), this.replyMessage = null);
3726
3957
  }
@@ -3766,7 +3997,7 @@ class R extends Yt {
3766
3997
  if (e !== -1)
3767
3998
  if (this.setting.splitMessagesAtBreak) {
3768
3999
  const t = this.streamingResponseBuffer.substring(0, e).trim(), i = this.streamingResponseBuffer.substring(e + 4).trim();
3769
- (t !== "" || this.replyMessage?.data?.text !== "") && (E.info(`BREAK: Splitting the message: ${this.streamingResponseBuffer} >>> prev: ${t} next: ${i}`), this.replyMessage = this.updateMessage(this.replyMessage, t), this.replyMessage = { author: "assistant", type: "text", isThinking: !1, data: { text: i } }, this.addMessage(this.replyMessage));
4000
+ (t !== "" || this.replyMessage?.data?.text !== "") && (T.info(`BREAK: Splitting the message: ${this.streamingResponseBuffer} >>> prev: ${t} next: ${i}`), this.replyMessage = this.updateMessage(this.replyMessage, t), this.replyMessage = { author: "assistant", type: "text", isThinking: !1, data: { text: i } }, this.addMessage(this.replyMessage));
3770
4001
  } else
3771
4002
  this.replyMessage = this.updateMessage(this.replyMessage, this.streamingResponseBuffer);
3772
4003
  this.streamingResponseBuffer = null, this.streamingResponseTagStartPos = 0, this.streamingResponseCurrentTag = null;
@@ -3775,11 +4006,11 @@ class R extends Yt {
3775
4006
  if (!this.streamingResponseBuffer || !this.replyMessage)
3776
4007
  return;
3777
4008
  if (this.streamingResponseBuffer.indexOf("![") === -1) {
3778
- E.info(`NOT IMG TAG: ${this.streamingResponseBuffer}`), this.replyMessage = this.updateMessage(this.replyMessage, this.streamingResponseBuffer), this.streamingResponseBuffer = null, this.streamingResponseCurrentTag = null;
4009
+ T.info(`NOT IMG TAG: ${this.streamingResponseBuffer}`), this.replyMessage = this.updateMessage(this.replyMessage, this.streamingResponseBuffer), this.streamingResponseBuffer = null, this.streamingResponseCurrentTag = null;
3779
4010
  return;
3780
4011
  }
3781
4012
  const e = this.streamingResponseBuffer.lastIndexOf("]"), t = this.streamingResponseBuffer.lastIndexOf(")");
3782
- e === -1 || t === -1 || e > t || (E.info(`IMG TAG END: ${this.streamingResponseBuffer}`), this.isValidImageLink(this.streamingResponseBuffer) && (this.replyMessage = this.updateMessage(this.replyMessage, this.streamingResponseBuffer)), this.streamingResponseBuffer = null, this.streamingResponseCurrentTag = null);
4013
+ e === -1 || t === -1 || e > t || (T.info(`IMG TAG END: ${this.streamingResponseBuffer}`), this.isValidImageLink(this.streamingResponseBuffer) && (this.replyMessage = this.updateMessage(this.replyMessage, this.streamingResponseBuffer)), this.streamingResponseBuffer = null, this.streamingResponseCurrentTag = null);
3783
4014
  }
3784
4015
  isValidImageLink(e = "") {
3785
4016
  return !(e.indexOf("example.com") !== -1 || e.indexOf("imgur.com") !== -1 || e.indexOf("attachment:") !== -1);
@@ -3799,7 +4030,7 @@ class R extends Yt {
3799
4030
  this.streamingResponseBuffer = e, this.streamingResponseTagStartPos = e.indexOf("<"), this.streamingResponseCurrentTag = "br";
3800
4031
  return;
3801
4032
  } else if (e.indexOf("![") !== -1 || e.endsWith("!")) {
3802
- this.streamingResponseBuffer = e, this.streamingResponseCurrentTag = "img", E.info(`IMG TAG START: ${this.streamingResponseBuffer}`);
4033
+ this.streamingResponseBuffer = e, this.streamingResponseCurrentTag = "img", T.info(`IMG TAG START: ${this.streamingResponseBuffer}`);
3803
4034
  return;
3804
4035
  }
3805
4036
  this.streamingResponseLastText = t, this.replyMessage = this.updateMessage(this.replyMessage, t);
@@ -3855,7 +4086,7 @@ class R extends Yt {
3855
4086
  detail: f
3856
4087
  })
3857
4088
  ), this.sendActionCompleted(f).catch((p) => {
3858
- E.error(`Error: failed to send action completed: ${p.message}`);
4089
+ T.error(`Error: failed to send action completed: ${p.message}`);
3859
4090
  });
3860
4091
  }
3861
4092
  this.actions.splice(s, 1);
@@ -3873,10 +4104,10 @@ class R extends Yt {
3873
4104
  }
3874
4105
  }
3875
4106
  async sendMessage(e) {
3876
- e = this.formatMessage(e), E.info("Send Message:", e), this.showNewConversation && (this.showNewConversation = !1), this.messages = this.messages.concat([e]), this.lastConversationUpdate = Date.now();
4107
+ e = this.formatMessage(e), T.info("Send Message:", e), this.showNewConversation && (this.showNewConversation = !1), this.messages = this.messages.concat([e]), this.lastConversationUpdate = Date.now();
3877
4108
  const t = await this.getWsClient();
3878
4109
  if (!t) {
3879
- E.error("Error - failed to obtain ws client"), this.replyMessage = null;
4110
+ T.error("Error - failed to obtain ws client"), this.replyMessage = null;
3880
4111
  return;
3881
4112
  }
3882
4113
  t.sendMessage({
@@ -3922,7 +4153,7 @@ class R extends Yt {
3922
4153
  // Submit current form data
3923
4154
  async submitForm(e) {
3924
4155
  if (!this.form) {
3925
- E.info("submitForm: No form is active - ignored");
4156
+ T.info("submitForm: No form is active - ignored");
3926
4157
  return;
3927
4158
  }
3928
4159
  const t = `${ne}${this.setting.botId}.${this.conversationId}.form.${this.form.name}`;
@@ -3931,7 +4162,7 @@ class R extends Yt {
3931
4162
  async sendFormData(e, t) {
3932
4163
  const i = await this.getWsClient();
3933
4164
  if (!i) {
3934
- E.error("Error - failed to obtain ws client");
4165
+ T.error("Error - failed to obtain ws client");
3935
4166
  return;
3936
4167
  }
3937
4168
  i.sendMessage({
@@ -3943,7 +4174,7 @@ class R extends Yt {
3943
4174
  async sendActionCompleted(e) {
3944
4175
  const t = await this.getWsClient();
3945
4176
  if (!t) {
3946
- E.error("Error - failed to obtain ws client");
4177
+ T.error("Error - failed to obtain ws client");
3947
4178
  return;
3948
4179
  }
3949
4180
  t.sendMessage({
@@ -3954,7 +4185,7 @@ class R extends Yt {
3954
4185
  async sendEvent(e) {
3955
4186
  const t = await this.getWsClient();
3956
4187
  if (!t) {
3957
- E.error("Error - failed to obtain ws client");
4188
+ T.error("Error - failed to obtain ws client");
3958
4189
  return;
3959
4190
  }
3960
4191
  t.sendMessage(e);
@@ -3967,10 +4198,10 @@ class R extends Yt {
3967
4198
  this.feedbackMessages.push(t), this.feedbackUserMessage = this.messages.findLast((i) => i.id === t.replyId)?.data?.text || "", this.feedbackAnswer = t?.data.text || "", this.feedbackAnswerMessageId = t?.id || "", this.feedbackAnswerUserName = t?.data.userName || "", this.feedback = !0;
3968
4199
  }
3969
4200
  async submitFeedback(e, t, i) {
3970
- E.info(`submitFeedback: ${this.feedbackScore}`), this.feedbackName = e, this.feedbackEmail = t;
4201
+ T.info(`submitFeedback: ${this.feedbackScore}`), this.feedbackName = e, this.feedbackEmail = t;
3971
4202
  const s = await this.getWsClient();
3972
4203
  if (!s) {
3973
- E.error("Error - failed to obtain ws client"), this.replyMessage = null;
4204
+ T.error("Error - failed to obtain ws client"), this.replyMessage = null;
3974
4205
  return;
3975
4206
  }
3976
4207
  s.sendMessage({
@@ -4011,29 +4242,41 @@ class R extends Yt {
4011
4242
  }
4012
4243
  async uploadFiles(e) {
4013
4244
  if (!e?.length) return;
4014
- const t = await this.filesToBase64(e);
4015
- E.info("Uploading files:", t);
4016
- const i = await this.getWsClient();
4017
- if (!i) {
4018
- E.error("Error - failed to obtain ws client");
4245
+ const t = b.setting.fileUploadMaxFileSizeMB || 30, i = t * 1024 * 1024, s = e?.find((v) => v.size > i);
4246
+ if (s) {
4247
+ T.error(
4248
+ `File "${s.name}" exceeds the ${t} MB limit and will not be uploaded.`
4249
+ ), Ya({
4250
+ message: `File is larger than ${t} MB`,
4251
+ variant: "danger",
4252
+ duration: 3800,
4253
+ closeable: !0
4254
+ });
4019
4255
  return;
4020
4256
  }
4021
- const s = fe();
4022
- i.sendMessage({
4023
- id: s,
4257
+ const r = await this.filesToBase64(e);
4258
+ T.info("Uploading files:", r);
4259
+ const o = await this.getWsClient();
4260
+ if (!o) {
4261
+ T.error("Error - failed to obtain ws client");
4262
+ return;
4263
+ }
4264
+ const f = fe();
4265
+ o.sendMessage({
4266
+ id: f,
4024
4267
  type: "upload",
4025
- files: t
4268
+ files: r
4026
4269
  });
4027
- const r = {
4028
- id: s,
4270
+ const p = {
4271
+ id: f,
4029
4272
  timestamp: Date.now(),
4030
4273
  author: "user",
4031
4274
  type: "upload",
4032
4275
  data: {
4033
- uploadedFiles: t
4276
+ uploadedFiles: r
4034
4277
  }
4035
4278
  };
4036
- this.addMessage(r);
4279
+ this.addMessage(p);
4037
4280
  }
4038
4281
  notifyWidgetOpenState() {
4039
4282
  this.wsClient && this.wsClient.sendMessage({
@@ -4176,7 +4419,12 @@ O([
4176
4419
  newConversationTimeoutInSec: 86400,
4177
4420
  enableNotificationSound: !0,
4178
4421
  botAdvancedOptions: null,
4179
- enableMultiModalConnection: !1
4422
+ enableMultiModalConnection: !1,
4423
+ enablePassContextOnConnect: !1,
4424
+ fileUploadEnabledExtensions: ".jpeg,.jpg,.png,.pdf,.txt,.har,.zip,.mov,.mp4,.mp3",
4425
+ fileUploadMaxFileSizeMB: 30,
4426
+ enableAgentDisconnectedMessage: !1,
4427
+ showNewConversationOnAgentDisconnected: !1
4180
4428
  }
4181
4429
  })
4182
4430
  ], R.prototype, "setting");
@@ -4234,7 +4482,7 @@ O([
4234
4482
  O([
4235
4483
  z({ type: Boolean, value: !1 })
4236
4484
  ], R.prototype, "webAudioMuted");
4237
- const b = new R(), Ts = J`
4485
+ const b = new R(), Ps = J`
4238
4486
  ${ke}
4239
4487
  :host {
4240
4488
  position: relative;
@@ -4309,12 +4557,12 @@ const b = new R(), Ts = J`
4309
4557
  display: inline;
4310
4558
  }
4311
4559
  `;
4312
- var Is = Object.defineProperty, Es = (a, e, t, i) => {
4560
+ var Ls = Object.defineProperty, Rs = (a, e, t, i) => {
4313
4561
  for (var s = void 0, r = a.length - 1, o; r >= 0; r--)
4314
4562
  (o = a[r]) && (s = o(e, t, s) || s);
4315
- return s && Is(e, t, s), s;
4563
+ return s && Ls(e, t, s), s;
4316
4564
  };
4317
- Oi("system", {
4565
+ Bi("system", {
4318
4566
  resolver: (a) => ""
4319
4567
  });
4320
4568
  (() => {
@@ -4351,16 +4599,16 @@ class re extends Fe {
4351
4599
  return this.dispatchEvent(i), i;
4352
4600
  }
4353
4601
  }
4354
- Es([
4602
+ Rs([
4355
4603
  x({ type: String })
4356
4604
  ], re.prototype, "lang");
4357
- var $s = Object.defineProperty, Ps = Object.getOwnPropertyDescriptor, Ya = (a, e, t, i) => {
4358
- for (var s = i > 1 ? void 0 : i ? Ps(e, t) : e, r = a.length - 1, o; r >= 0; r--)
4605
+ var zs = Object.defineProperty, Os = Object.getOwnPropertyDescriptor, Ja = (a, e, t, i) => {
4606
+ for (var s = i > 1 ? void 0 : i ? Os(e, t) : e, r = a.length - 1, o; r >= 0; r--)
4359
4607
  (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
4360
- return i && s && $s(e, t, s), s;
4608
+ return i && s && zs(e, t, s), s;
4361
4609
  };
4362
- const Ls = '<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>';
4363
- let zt = class extends re {
4610
+ const Bs = '<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>';
4611
+ let Ot = class extends re {
4364
4612
  constructor() {
4365
4613
  super(...arguments), this.title = "ChatBot";
4366
4614
  }
@@ -4374,13 +4622,13 @@ let zt = class extends re {
4374
4622
  ${W(
4375
4623
  b.setting.logoUrl !== "",
4376
4624
  () => u`<img class="cb-header-logo" part="header-logo" src="${b.setting.logoUrl}" />`,
4377
- () => u`<div class="cb-header-logo" part="header-logo">${Y(b.setting.logoSvg)}</div>`
4625
+ () => u`<div class="cb-header-logo" part="header-logo">${G(b.setting.logoSvg)}</div>`
4378
4626
  )}
4379
4627
  <div class="cb-header-title" part="header-title">${this.title}</div>
4380
4628
  ${W(
4381
4629
  b.alwaysOpen,
4382
4630
  () => u``,
4383
- () => u`<div class="cb-header-close" part="header-close">${Y(Ls)}</div>`
4631
+ () => u`<div class="cb-header-close" part="header-close">${G(Bs)}</div>`
4384
4632
  )}
4385
4633
  </header>`;
4386
4634
  }
@@ -4389,13 +4637,13 @@ let zt = class extends re {
4389
4637
  ${W(
4390
4638
  b.setting.logoUrl !== "",
4391
4639
  () => u`<img class="cb-header-img" part="header-logo" src="${b.setting.logoUrl}" />`,
4392
- () => u`<div class="cb-header-logo" part="header-logo">${Y(b.setting.logoSvg)}</div>`
4640
+ () => u`<div class="cb-header-logo" part="header-logo">${G(b.setting.logoSvg)}</div>`
4393
4641
  )}
4394
4642
  <div class="cb-header-title" part="header-title">${this.title}</div>
4395
4643
  ${W(
4396
4644
  b.alwaysOpen,
4397
4645
  () => u`<div></div>`,
4398
- () => u`<div @click=${this._clickCloseHandler} class="cb-header-close" part="header-close">${Y(b.setting.closeSvg)}</div>`
4646
+ () => u`<div @click=${this._clickCloseHandler} class="cb-header-close" part="header-close">${G(b.setting.closeSvg)}</div>`
4399
4647
  )}
4400
4648
  </header>`;
4401
4649
  }
@@ -4422,14 +4670,14 @@ let zt = class extends re {
4422
4670
  });
4423
4671
  }
4424
4672
  };
4425
- zt.styles = Ts;
4426
- Ya([
4673
+ Ot.styles = Ps;
4674
+ Ja([
4427
4675
  x({ type: String, attribute: "title" })
4428
- ], zt.prototype, "title", 2);
4429
- zt = Ya([
4430
- K("cb-header")
4431
- ], zt);
4432
- const Rs = J`
4676
+ ], Ot.prototype, "title", 2);
4677
+ Ot = Ja([
4678
+ Z("cb-header")
4679
+ ], Ot);
4680
+ const qs = J`
4433
4681
  ${ke}
4434
4682
  .cb-footer {
4435
4683
  line-height: 60px;
@@ -4444,8 +4692,8 @@ const Rs = J`
4444
4692
  color: var(--primary-color);
4445
4693
  }
4446
4694
  `;
4447
- var zs = Object.getOwnPropertyDescriptor, Os = (a, e, t, i) => {
4448
- for (var s = i > 1 ? void 0 : i ? zs(e, t) : e, r = a.length - 1, o; r >= 0; r--)
4695
+ var Ds = Object.getOwnPropertyDescriptor, Fs = (a, e, t, i) => {
4696
+ for (var s = i > 1 ? void 0 : i ? Ds(e, t) : e, r = a.length - 1, o; r >= 0; r--)
4449
4697
  (o = a[r]) && (s = o(s) || s);
4450
4698
  return s;
4451
4699
  };
@@ -4484,11 +4732,11 @@ let Jt = class extends re {
4484
4732
  `;
4485
4733
  }
4486
4734
  };
4487
- Jt.styles = Rs;
4488
- Jt = Os([
4489
- K("cb-footer")
4735
+ Jt.styles = qs;
4736
+ Jt = Fs([
4737
+ Z("cb-footer")
4490
4738
  ], Jt);
4491
- const Bs = J`
4739
+ const js = J`
4492
4740
  ${ke}
4493
4741
 
4494
4742
  :host {
@@ -4689,7 +4937,7 @@ const Bs = J`
4689
4937
  background-size: 100%;
4690
4938
  transition: background 0s;
4691
4939
  }
4692
- `, Ja = J`
4940
+ `, Za = J`
4693
4941
  :host {
4694
4942
  --primary-color: var(--sl-color-primary-600);
4695
4943
  }
@@ -4934,10 +5182,10 @@ const Bs = J`
4934
5182
  }
4935
5183
  .split-btn[aria-expanded="true"] .split-btn__caret { transform: rotate(180deg); }
4936
5184
  `;
4937
- var qs = Object.defineProperty, Ds = Object.getOwnPropertyDescriptor, je = (a, e, t, i) => {
4938
- for (var s = i > 1 ? void 0 : i ? Ds(e, t) : e, r = a.length - 1, o; r >= 0; r--)
5185
+ var Hs = Object.defineProperty, Vs = Object.getOwnPropertyDescriptor, je = (a, e, t, i) => {
5186
+ for (var s = i > 1 ? void 0 : i ? Vs(e, t) : e, r = a.length - 1, o; r >= 0; r--)
4939
5187
  (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
4940
- return i && s && qs(e, t, s), s;
5188
+ return i && s && Hs(e, t, s), s;
4941
5189
  };
4942
5190
  let gt = class extends Fe {
4943
5191
  constructor() {
@@ -5031,7 +5279,7 @@ je([
5031
5279
  x({ type: Number })
5032
5280
  ], gt.prototype, "minWidth", 2);
5033
5281
  gt = je([
5034
- K("cb-split-menu")
5282
+ Z("cb-split-menu")
5035
5283
  ], gt);
5036
5284
  let Ge = class extends Fe {
5037
5285
  constructor() {
@@ -5135,222 +5383,8 @@ je([
5135
5383
  xe(".split-btn")
5136
5384
  ], Ge.prototype, "_btn", 2);
5137
5385
  Ge = je([
5138
- K("cb-split-button")
5386
+ Z("cb-split-button")
5139
5387
  ], Ge);
5140
- var Fs = Object.defineProperty, js = Object.getOwnPropertyDescriptor, st = (a, e, t, i) => {
5141
- for (var s = i > 1 ? void 0 : i ? js(e, t) : e, r = a.length - 1, o; r >= 0; r--)
5142
- (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
5143
- return i && s && Fs(e, t, s), s;
5144
- };
5145
- const Mt = "cb-toast-outlet", Ia = "cb-toast-outlet-style";
5146
- function Hs() {
5147
- let a = document.getElementById(Mt);
5148
- if (a || (a = document.createElement("div"), a.id = Mt, document.body.appendChild(a)), !document.getElementById(Ia)) {
5149
- const e = document.createElement("style");
5150
- e.id = Ia, e.textContent = `
5151
- /* Global outlet that holds all toasts */
5152
- #${Mt} {
5153
- position: fixed;
5154
- right: 40px;
5155
- bottom: 55px;
5156
- display: flex;
5157
- flex-direction: column;
5158
- gap: 10px;
5159
- z-index: 2147483646; /* below very-top overlays if any */
5160
- align-items: flex-end;
5161
- pointer-events: none; /* clicks pass through except on toast itself */
5162
- }
5163
- @media (max-width: 600px) {
5164
- #${Mt} {
5165
- left: 8px;
5166
- right: 8px;
5167
- align-items: stretch; /* stretch toasts to full width on mobile */
5168
- }
5169
- }
5170
- `, document.head.appendChild(e);
5171
- }
5172
- return a;
5173
- }
5174
- function Vs(a) {
5175
- const e = Hs(), t = document.createElement("cb-toast");
5176
- 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;
5177
- }
5178
- let qe = class extends Fe {
5179
- constructor() {
5180
- 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 = {
5181
- success: "✓",
5182
- danger: "❌",
5183
- warning: "⚠️",
5184
- info: "ℹ️",
5185
- neutral: "💬",
5186
- primary: "⭐"
5187
- };
5188
- }
5189
- connectedCallback() {
5190
- super.connectedCallback(), queueMicrotask(() => this.open());
5191
- }
5192
- disconnectedCallback() {
5193
- super.disconnectedCallback(), this._clearTimer();
5194
- }
5195
- render() {
5196
- const a = ["toast", this.variant, this._open ? "open" : "", this._closing ? "closing" : ""].filter(Boolean).join(" "), e = this.icon || this._defaultIcons[this.variant] || this._defaultIcons.success;
5197
- return u`
5198
- <div
5199
- class=${a}
5200
- role="status"
5201
- aria-live=${this.ariaLive}
5202
- >
5203
- ${u`<span class="icon" aria-hidden="true">${this._renderIcon(e)}</span>`}
5204
- <div class="msg">
5205
- ${this.message ? u`${this.message}` : u`<slot></slot>`}
5206
- </div>
5207
- ${this.closeable ? u`<button class="close" @click=${this.close} aria-label="Close">×</button>` : Ae}
5208
- </div>
5209
- `;
5210
- }
5211
- /** Programmatic API */
5212
- open() {
5213
- this._open || (this._open = !0, this.requestUpdate(), this.duration > 0 && (this._timer = window.setTimeout(() => this.close(), this.duration)));
5214
- }
5215
- async close() {
5216
- this._closing || (this._closing = !0, this.requestUpdate(), await new Promise((a) => setTimeout(() => a(), 200)), this.remove());
5217
- }
5218
- _clearTimer() {
5219
- this._timer && (clearTimeout(this._timer), this._timer = void 0);
5220
- }
5221
- _renderIcon(a) {
5222
- return a.trim().startsWith("<") ? u`${Y(a)}` : a;
5223
- }
5224
- };
5225
- qe.styles = J`
5226
- :host {
5227
- display: block;
5228
- pointer-events: auto; /* receive pointer events within toast */
5229
- contain: content;
5230
- font-size: var(--enegelai-bot-base-font-size, 16px);
5231
- font-family: system-ui, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';
5232
- }
5233
-
5234
- .toast {
5235
- --_bg: var(--sl-color-success-600, #2f9e44);
5236
- --_fg: #fff;
5237
- --_border: transparent;
5238
-
5239
- display: grid;
5240
- grid-template-columns: auto 1fr auto;
5241
- align-items: center;
5242
- gap: 10px;
5243
-
5244
- font-size: 0.7em;
5245
- font-weight: 400;
5246
-
5247
- max-width: min(420px, 92vw);
5248
- padding: 16px 20px;
5249
- border-radius: 12px;
5250
- border: 1px solid var(--_border);
5251
- background: var(--_bg);
5252
- background: color-mix(in srgb, var(--_bg) 85%, transparent);
5253
- color: var(--_fg);
5254
- box-shadow:
5255
- 0 10px 15px -3px rgba(0,0,0,.1),
5256
- 0 4px 6px -4px rgba(0,0,0,.08);
5257
-
5258
- opacity: 0;
5259
- transform: translateY(6px);
5260
- transition: opacity 1s ease, transform 1s ease, filter 1s ease;
5261
- }
5262
-
5263
- .toast.open {
5264
- opacity: 1;
5265
- transform: translateY(0);
5266
- }
5267
-
5268
- .toast.closing {
5269
- opacity: 0;
5270
- transform: translateY(6px);
5271
- filter: saturate(.9) brightness(.98);
5272
- }
5273
-
5274
- .icon {
5275
- display: inline-flex;
5276
- align-items: center;
5277
- justify-content: center;
5278
- width: 22px;
5279
- height: 22px;
5280
- line-height: 1;
5281
- font-size: 22px;
5282
- user-select: none;
5283
- background: transparent; /* ensure transparent background */
5284
- }
5285
-
5286
- .msg {
5287
- font-size: 1.5em;
5288
- line-height: 1.25;
5289
- word-break: break-word;
5290
- }
5291
-
5292
- .close {
5293
- appearance: none;
5294
- background: transparent;
5295
- border: none;
5296
- color: inherit;
5297
- font: inherit;
5298
- font-size: 20px;
5299
- cursor: pointer;
5300
- opacity: .9;
5301
- width: 28px;
5302
- height: 28px;
5303
- border-radius: 50%;
5304
- display: inline-flex;
5305
- align-items: center;
5306
- justify-content: center;
5307
- transition: background 1s ease, transform 1s ease;
5308
- }
5309
- .close:hover { background: color-mix(in srgb, #000 10%, transparent); }
5310
- .close:active { transform: scale(.94); }
5311
- .close:focus-visible {
5312
- outline: none;
5313
- box-shadow: 0 0 0 3px color-mix(in srgb, #fff 60%, transparent);
5314
- }
5315
-
5316
- /* Variants — keep parity with your button palette */
5317
- .toast.success { --_bg: var(--sl-color-success-600, #2f9e44); --_fg: #fff; }
5318
- .toast.info { --_bg: var(--sl-color-info-600, #0b7285); --_fg: #fff; }
5319
- .toast.warning { --_bg: var(--sl-color-warning-600, #f08c00); --_fg: #212529; }
5320
- .toast.danger { --_bg: var(--sl-color-danger-600, #c92a2a); --_fg: #fff; }
5321
- .toast.primary { --_bg: var(--sl-color-primary-600, hsl(200.4 98% 39.4%)); --_fg: #fff; }
5322
- .toast.neutral {
5323
- --_bg: var(--sl-color-neutral-50, hsl(0 0% 97.5%));
5324
- --_fg: var(--sl-color-neutral-900, hsl(240 5.9% 10%));
5325
- --_border: var(--sl-color-neutral-300, #d1d5db);
5326
- }
5327
-
5328
- /* Mobile fine-tuning: give a bit more padding */
5329
- @media (max-width: 600px) {
5330
- .toast { padding: 12px; }
5331
- }
5332
- `;
5333
- st([
5334
- x({ type: String })
5335
- ], qe.prototype, "message", 2);
5336
- st([
5337
- x({ type: String })
5338
- ], qe.prototype, "variant", 2);
5339
- st([
5340
- x({ type: Number })
5341
- ], qe.prototype, "duration", 2);
5342
- st([
5343
- x({ type: Boolean })
5344
- ], qe.prototype, "closeable", 2);
5345
- st([
5346
- x({ type: String })
5347
- ], qe.prototype, "icon", 2);
5348
- st([
5349
- x({ type: String })
5350
- ], qe.prototype, "ariaLive", 2);
5351
- qe = st([
5352
- K("cb-toast")
5353
- ], qe);
5354
5388
  var Ns = Object.defineProperty, Us = Object.getOwnPropertyDescriptor, wt = (a, e, t, i) => {
5355
5389
  for (var s = i > 1 ? void 0 : i ? Us(e, t) : e, r = a.length - 1, o; r >= 0; r--)
5356
5390
  (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
@@ -5464,16 +5498,16 @@ let Me = class extends Fe {
5464
5498
  }
5465
5499
  /* ----------------- CARD ----------------- */
5466
5500
  renderCard(a) {
5467
- const { title: e, subtitle: t, image_url: i, image_alt: s, buttons: r = [] } = a, o = (a.url || "").trim(), f = (a.target || "").trim(), p = o.length > 0, v = a.info?.text, k = typeof a.info?.rating == "number" ? a.info.rating : typeof a.rating == "number" ? a.rating : void 0, w = !!v, _ = typeof k == "number", P = ["card__info", w && _ ? "card__info--between" : ""].filter(Boolean).join(" "), I = r.some((U) => (U.type ?? "").toLowerCase() === "primary"), M = r.some((U) => (U.type ?? "").toLowerCase() === "secondary"), L = ["card__actions", I && M ? "card__actions--between" : ""].filter(Boolean).join(" "), C = () => {
5501
+ const { title: e, subtitle: t, image_url: i, image_alt: s, buttons: r = [] } = a, o = (a.url || "").trim(), f = (a.target || "").trim(), p = o.length > 0, v = a.info?.text, k = typeof a.info?.rating == "number" ? a.info.rating : typeof a.rating == "number" ? a.rating : void 0, w = !!v, _ = typeof k == "number", P = ["card__info", w && _ ? "card__info--between" : ""].filter(Boolean).join(" "), E = r.some((U) => (U.type ?? "").toLowerCase() === "primary"), M = r.some((U) => (U.type ?? "").toLowerCase() === "secondary"), L = ["card__actions", E && M ? "card__actions--between" : ""].filter(Boolean).join(" "), C = () => {
5468
5502
  if (!i) return Ae;
5469
5503
  const U = u`<img class="card__image" src=${i} alt=${s ?? e ?? "Image"} draggable="false" />`;
5470
5504
  return p ? u`<a class="card__image-link" href=${o} target=${f || "_blank"} rel="noopener noreferrer" draggable="false" aria-label=${e ? `Open: ${e}` : "Open"}>${U}</a>` : U;
5471
- }, Z = () => e ? p && !i ? u`<h3 class="card__title"><a class="card__title-link" href=${o} target=${f || "_blank"} rel="noopener noreferrer" draggable="false">${e}</a></h3>` : u`<h3 class="card__title">${e}</h3>` : Ae;
5505
+ }, K = () => e ? p && !i ? u`<h3 class="card__title"><a class="card__title-link" href=${o} target=${f || "_blank"} rel="noopener noreferrer" draggable="false">${e}</a></h3>` : u`<h3 class="card__title">${e}</h3>` : Ae;
5472
5506
  return u`
5473
5507
  <div class="card" role="group" aria-label=${e ? `Card: ${e}` : "Card"}>
5474
5508
  ${C()}
5475
5509
  <div class="card__content">
5476
- ${Z()}
5510
+ ${K()}
5477
5511
  ${t ? u`<div class="card__subtitle">${t}</div>` : Ae}
5478
5512
  ${w || _ ? u`
5479
5513
  <div class=${P}>
@@ -5482,7 +5516,7 @@ let Me = class extends Fe {
5482
5516
  </div>` : Ae}
5483
5517
  ${r.length ? u`
5484
5518
  <div class=${L}>
5485
- ${r.map((U, G) => this.renderAnyButton(U, G))}
5519
+ ${r.map((U, X) => this.renderAnyButton(U, X))}
5486
5520
  </div>` : Ae}
5487
5521
  </div>
5488
5522
  </div>
@@ -5676,17 +5710,18 @@ let Me = class extends Fe {
5676
5710
  body: JSON.stringify(r)
5677
5711
  });
5678
5712
  if (!o.ok) {
5679
- Tt.error("c7o: cart/add.js failed"), Vs({
5713
+ Tt.error("c7o: cart/add.js failed"), Ya({
5680
5714
  message: "Unable to add item to cart.",
5681
5715
  variant: "danger",
5682
- duration: 2800
5716
+ duration: 2800,
5717
+ closeable: !0
5683
5718
  });
5684
5719
  return;
5685
5720
  }
5686
5721
  await o.json(), Tt.info("c7o: cart/add.js - cart updated"), Tt.info("c7o: reloading window after cart update"), window.location.reload();
5687
5722
  }
5688
5723
  };
5689
- Me.styles = [Ws, Ja, Ka];
5724
+ Me.styles = [Ws, Za, Ka];
5690
5725
  Me.DRAG_THRESHOLD_PX = 10;
5691
5726
  wt([
5692
5727
  x({ type: Object })
@@ -5701,14 +5736,14 @@ wt([
5701
5736
  Ha()
5702
5737
  ], Me.prototype, "_canNext", 2);
5703
5738
  Me = wt([
5704
- K("cb-block")
5739
+ Z("cb-block")
5705
5740
  ], Me);
5706
- var Gs = Object.defineProperty, Xs = Object.getOwnPropertyDescriptor, Za = (a, e, t, i) => {
5741
+ var Gs = Object.defineProperty, Xs = Object.getOwnPropertyDescriptor, Qa = (a, e, t, i) => {
5707
5742
  for (var s = i > 1 ? void 0 : i ? Xs(e, t) : e, r = a.length - 1, o; r >= 0; r--)
5708
5743
  (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
5709
5744
  return i && s && Gs(e, t, s), s;
5710
5745
  };
5711
- let Ot = class extends Fe {
5746
+ let Bt = class extends Fe {
5712
5747
  constructor() {
5713
5748
  super(...arguments), this.blocks = [];
5714
5749
  }
@@ -5720,7 +5755,7 @@ let Ot = class extends Fe {
5720
5755
  `;
5721
5756
  }
5722
5757
  };
5723
- Ot.styles = J`
5758
+ Bt.styles = J`
5724
5759
  :host {
5725
5760
  display: block;
5726
5761
  }
@@ -5731,13 +5766,13 @@ Ot.styles = J`
5731
5766
  gap: 0.75em; /* vertical rhythm between blocks */
5732
5767
  }
5733
5768
  `;
5734
- Za([
5769
+ Qa([
5735
5770
  x({ type: Array })
5736
- ], Ot.prototype, "blocks", 2);
5737
- Ot = Za([
5738
- K("cb-blocks")
5739
- ], Ot);
5740
- var Lt = { exports: {} }, Ys = Lt.exports, $a;
5771
+ ], Bt.prototype, "blocks", 2);
5772
+ Bt = Qa([
5773
+ Z("cb-blocks")
5774
+ ], Bt);
5775
+ var Rt = { exports: {} }, Ys = Rt.exports, $a;
5741
5776
  function Js() {
5742
5777
  return $a || ($a = 1, (function(a, e) {
5743
5778
  (function(t, i) {
@@ -5802,9 +5837,9 @@ function Js() {
5802
5837
  })), h;
5803
5838
  }
5804
5839
  function w(n) {
5805
- var c = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, l = c.onElement, d = c.withCallback, h = c.avoidDuplicate, m = h === void 0 || h, g = c.once, y = g !== void 0 && g, A = c.useCapture, S = A !== void 0 && A, T = arguments.length > 2 ? arguments[2] : void 0, $ = l || [];
5840
+ var c = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, l = c.onElement, d = c.withCallback, h = c.avoidDuplicate, m = h === void 0 || h, g = c.once, y = g !== void 0 && g, A = c.useCapture, S = A !== void 0 && A, I = arguments.length > 2 ? arguments[2] : void 0, $ = l || [];
5806
5841
  function B(q) {
5807
- F(d) && d.call(T, q, this), y && B.destroy();
5842
+ F(d) && d.call(I, q, this), y && B.destroy();
5808
5843
  }
5809
5844
  return j($) && ($ = document.querySelectorAll($)), B.destroy = function() {
5810
5845
  v($, (function(q) {
@@ -5826,7 +5861,7 @@ function Js() {
5826
5861
  return n.classList.remove(l);
5827
5862
  }));
5828
5863
  }
5829
- function I(n, c) {
5864
+ function E(n, c) {
5830
5865
  return n.classList.contains(c);
5831
5866
  }
5832
5867
  function M(n, c) {
@@ -5853,13 +5888,13 @@ function Js() {
5853
5888
  if (c === "") return n.style.webkitTransform = "", n.style.MozTransform = "", n.style.msTransform = "", n.style.OTransform = "", n.style.transform = "", !1;
5854
5889
  n.style.webkitTransform = c, n.style.MozTransform = c, n.style.msTransform = c, n.style.OTransform = c, n.style.transform = c;
5855
5890
  }
5856
- function Z(n) {
5891
+ function K(n) {
5857
5892
  n.style.display = "block";
5858
5893
  }
5859
5894
  function U(n) {
5860
5895
  n.style.display = "none";
5861
5896
  }
5862
- function G(n) {
5897
+ function X(n) {
5863
5898
  var c = document.createDocumentFragment(), l = document.createElement("div");
5864
5899
  for (l.innerHTML = n; l.firstChild; ) c.appendChild(l.firstChild);
5865
5900
  return c;
@@ -5915,7 +5950,7 @@ function Js() {
5915
5950
  }
5916
5951
  }
5917
5952
  }
5918
- function pe() {
5953
+ function ge() {
5919
5954
  return "navigator" in window && window.navigator.userAgent.match(/(iPad)|(iPhone)|(iPod)|(Android)|(PlayBook)|(BB10)|(BlackBerry)|(Opera Mini)|(IEMobile)|(webOS)|(MeeGo)/i);
5920
5955
  }
5921
5956
  function F(n) {
@@ -5972,7 +6007,7 @@ function Js() {
5972
6007
  })), g = m.sort()[0];
5973
6008
  return document.querySelector('.gbtn[data-taborder="'.concat(g, '"]'));
5974
6009
  }
5975
- function yi(n) {
6010
+ function vi(n) {
5976
6011
  if (n.events.hasOwnProperty("keyboard")) return !1;
5977
6012
  n.events.keyboard = w("keydown", { onElement: window, withCallback: function(c, l) {
5978
6013
  var d = (c = c || window.event).keyCode;
@@ -5995,7 +6030,7 @@ function Js() {
5995
6030
  d == 39 && n.nextSlide(), d == 37 && n.prevSlide(), d == 27 && n.close();
5996
6031
  } });
5997
6032
  }
5998
- var vi = s((function n(c, l) {
6033
+ var wi = s((function n(c, l) {
5999
6034
  var d = this, h = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : null;
6000
6035
  if (t(this, n), this.img = c, this.slide = l, this.onclose = h, this.img.setZoomEvents) return !1;
6001
6036
  this.active = !1, this.zoomedIn = !1, this.dragging = !1, this.currentX = null, this.currentY = null, this.initialX = null, this.initialY = null, this.xOffset = 0, this.yOffset = 0, this.img.addEventListener("mousedown", (function(m) {
@@ -6040,7 +6075,7 @@ function Js() {
6040
6075
  } }]), pa = s((function n() {
6041
6076
  var c = this, l = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
6042
6077
  t(this, n);
6043
- var d = l.dragEl, h = l.toleranceX, m = h === void 0 ? 40 : h, g = l.toleranceY, y = g === void 0 ? 65 : g, A = l.slide, S = A === void 0 ? null : A, T = l.instance, $ = T === void 0 ? null : T;
6078
+ var d = l.dragEl, h = l.toleranceX, m = h === void 0 ? 40 : h, g = l.toleranceY, y = g === void 0 ? 65 : g, A = l.slide, S = A === void 0 ? null : A, I = l.instance, $ = I === void 0 ? null : I;
6044
6079
  this.el = d, this.active = !1, this.dragging = !1, this.currentX = null, this.currentY = null, this.initialX = null, this.initialY = null, this.xOffset = 0, this.yOffset = 0, this.direction = null, this.lastDirection = null, this.toleranceX = m, this.toleranceY = y, this.toleranceReached = !1, this.dragContainer = this.el, this.slide = S, this.instance = $, this.el.addEventListener("mousedown", (function(B) {
6045
6080
  return c.dragStart(B);
6046
6081
  }), !1), this.el.addEventListener("mouseup", (function(B) {
@@ -6089,51 +6124,51 @@ function Js() {
6089
6124
  var d = arguments.length > 3 && arguments[3] !== void 0 && arguments[3];
6090
6125
  n.style.transition = d ? "all .2s ease" : "", n.style.transform = "translate3d(".concat(c, "px, ").concat(l, "px, 0)");
6091
6126
  } }]);
6092
- function wi(n, c, l, d) {
6127
+ function xi(n, c, l, d) {
6093
6128
  var h = n.querySelector(".gslide-media"), m = new Image(), g = "gSlideTitle_" + l, y = "gSlideDesc_" + l;
6094
6129
  m.addEventListener("load", (function() {
6095
6130
  F(d) && d();
6096
6131
  }), !1), m.src = c.href, c.sizes != "" && c.srcset != "" && (m.sizes = c.sizes, m.srcset = c.srcset), m.alt = "", be(c.alt) || c.alt === "" || (m.alt = c.alt), c.title !== "" && m.setAttribute("aria-labelledby", g), c.description !== "" && m.setAttribute("aria-describedby", y), c.hasOwnProperty("_hasCustomWidth") && c._hasCustomWidth && (m.style.width = c.width), c.hasOwnProperty("_hasCustomHeight") && c._hasCustomHeight && (m.style.height = c.height), h.insertBefore(m, h.firstChild);
6097
6132
  }
6098
- function xi(n, c, l, d) {
6133
+ function ki(n, c, l, d) {
6099
6134
  var h = this, m = n.querySelector(".ginner-container"), g = "gvideo" + l, y = n.querySelector(".gslide-media"), A = this.getAllPlayers();
6100
- _(m, "gvideo-container"), y.insertBefore(G('<div class="gvideo-wrapper"></div>'), y.firstChild);
6135
+ _(m, "gvideo-container"), y.insertBefore(X('<div class="gvideo-wrapper"></div>'), y.firstChild);
6101
6136
  var S = n.querySelector(".gvideo-wrapper");
6102
6137
  he(this.settings.plyr.css, "Plyr");
6103
- var T = c.href, $ = c?.videoProvider, B = !1;
6138
+ var I = c.href, $ = c?.videoProvider, B = !1;
6104
6139
  y.style.maxWidth = c.width, he(this.settings.plyr.js, "Plyr", (function() {
6105
- if (!$ && T.match(/vimeo\.com\/([0-9]*)/) && ($ = "vimeo"), !$ && (T.match(/(youtube\.com|youtube-nocookie\.com)\/watch\?v=([a-zA-Z0-9\-_]+)/) || T.match(/youtu\.be\/([a-zA-Z0-9\-_]+)/) || T.match(/(youtube\.com|youtube-nocookie\.com)\/embed\/([a-zA-Z0-9\-_]+)/) || T.match(/(youtube\.com|youtube-nocookie\.com)\/shorts\/([a-zA-Z0-9\-_]+)/)) && ($ = "youtube"), $ === "local" || !$) {
6140
+ if (!$ && I.match(/vimeo\.com\/([0-9]*)/) && ($ = "vimeo"), !$ && (I.match(/(youtube\.com|youtube-nocookie\.com)\/watch\?v=([a-zA-Z0-9\-_]+)/) || I.match(/youtu\.be\/([a-zA-Z0-9\-_]+)/) || I.match(/(youtube\.com|youtube-nocookie\.com)\/embed\/([a-zA-Z0-9\-_]+)/) || I.match(/(youtube\.com|youtube-nocookie\.com)\/shorts\/([a-zA-Z0-9\-_]+)/)) && ($ = "youtube"), $ === "local" || !$) {
6106
6141
  $ = "local";
6107
6142
  var q = '<video id="' + g + '" ';
6108
- q += 'style="background:#000; max-width: '.concat(c.width, ';" '), q += 'preload="metadata" ', q += 'x-webkit-airplay="allow" ', q += "playsinline ", q += "controls ", q += 'class="gvideo-local">', q += '<source src="'.concat(T, '">'), B = G(q += "</video>");
6143
+ q += 'style="background:#000; max-width: '.concat(c.width, ';" '), q += 'preload="metadata" ', q += 'x-webkit-airplay="allow" ', q += "playsinline ", q += "controls ", q += 'class="gvideo-local">', q += '<source src="'.concat(I, '">'), B = X(q += "</video>");
6109
6144
  }
6110
- var D = B || G('<div id="'.concat(g, '" data-plyr-provider="').concat($, '" data-plyr-embed-id="').concat(T, '"></div>'));
6145
+ var D = B || X('<div id="'.concat(g, '" data-plyr-provider="').concat($, '" data-plyr-embed-id="').concat(I, '"></div>'));
6111
6146
  _(S, "".concat($, "-video gvideo")), S.appendChild(D), S.setAttribute("data-id", g), S.setAttribute("data-index", l);
6112
- var ee = ie(h.settings.plyr, "config") ? h.settings.plyr.config : {}, ge = new Plyr("#" + g, ee);
6113
- ge.on("ready", (function(ue) {
6147
+ var ee = ie(h.settings.plyr, "config") ? h.settings.plyr.config : {}, me = new Plyr("#" + g, ee);
6148
+ me.on("ready", (function(ue) {
6114
6149
  A[g] = ue.detail.plyr, F(d) && d();
6115
6150
  })), ae((function() {
6116
6151
  return n.querySelector("iframe") && n.querySelector("iframe").dataset.ready == "true";
6117
6152
  }), (function() {
6118
6153
  h.resize(n);
6119
- })), ge.on("enterfullscreen", ga), ge.on("exitfullscreen", ga);
6154
+ })), me.on("enterfullscreen", ga), me.on("exitfullscreen", ga);
6120
6155
  }));
6121
6156
  }
6122
6157
  function ga(n) {
6123
6158
  var c = M(n.target, ".gslide-media");
6124
6159
  n.type === "enterfullscreen" && _(c, "fullscreen"), n.type === "exitfullscreen" && P(c, "fullscreen");
6125
6160
  }
6126
- function ki(n, c, l, d) {
6161
+ function _i(n, c, l, d) {
6127
6162
  var h, m = this, g = n.querySelector(".gslide-media"), y = !(!ie(c, "href") || !c.href) && c.href.split("#").pop().trim(), A = !(!ie(c, "content") || !c.content) && c.content;
6128
- if (A && (j(A) && (h = G('<div class="ginlined-content">'.concat(A, "</div>"))), V(A))) {
6163
+ if (A && (j(A) && (h = X('<div class="ginlined-content">'.concat(A, "</div>"))), V(A))) {
6129
6164
  A.style.display == "none" && (A.style.display = "block");
6130
6165
  var S = document.createElement("div");
6131
6166
  S.className = "ginlined-content", S.appendChild(A), h = S;
6132
6167
  }
6133
6168
  if (y) {
6134
- var T = document.getElementById(y);
6135
- if (!T) return !1;
6136
- var $ = T.cloneNode(!0);
6169
+ var I = document.getElementById(y);
6170
+ if (!I) return !1;
6171
+ var $ = I.cloneNode(!0);
6137
6172
  $.style.height = c.height, $.style.maxWidth = c.width, _($, "ginlined-content"), h = $;
6138
6173
  }
6139
6174
  if (!h) return console.error("Unable to append inline slide content", c), !1;
@@ -6141,16 +6176,16 @@ function Js() {
6141
6176
  B.preventDefault(), m.close();
6142
6177
  } }), F(d) && d();
6143
6178
  }
6144
- function _i(n, c, l, d) {
6179
+ function Si(n, c, l, d) {
6145
6180
  var h = n.querySelector(".gslide-media"), m = (function(g) {
6146
- var y = g.url, A = g.allow, S = g.callback, T = g.appendTo, $ = document.createElement("iframe");
6181
+ var y = g.url, A = g.allow, S = g.callback, I = g.appendTo, $ = document.createElement("iframe");
6147
6182
  return $.className = "vimeo-video gvideo", $.src = y, $.style.width = "100%", $.style.height = "100%", A && $.setAttribute("allow", A), $.onload = function() {
6148
6183
  $.onload = null, _($, "node-ready"), F(S) && S();
6149
- }, T && T.appendChild($), $;
6184
+ }, I && I.appendChild($), $;
6150
6185
  })({ url: c.href, callback: d });
6151
6186
  h.parentNode.style.maxWidth = c.width, h.parentNode.style.height = c.height, h.appendChild(m);
6152
6187
  }
6153
- var Si = s((function n() {
6188
+ var Ci = s((function n() {
6154
6189
  var c = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
6155
6190
  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));
6156
6191
  }), [{ key: "sourceType", value: function(n) {
@@ -6178,11 +6213,11 @@ function Js() {
6178
6213
  be(S) || S === "" || (d.title = S);
6179
6214
  }
6180
6215
  } else {
6181
- var T = [];
6216
+ var I = [];
6182
6217
  v(d, (function(q, D) {
6183
- T.push(";\\s?" + D);
6184
- })), T = T.join("\\s?:|"), g.trim() !== "" && v(d, (function(q, D) {
6185
- var ee = g, ge = new RegExp("s?" + D + "s?:s?(.*?)(" + T + "s?:|$)"), ue = ee.match(ge);
6218
+ I.push(";\\s?" + D);
6219
+ })), I = I.join("\\s?:|"), g.trim() !== "" && v(d, (function(q, D) {
6220
+ var ee = g, me = new RegExp("s?" + D + "s?:s?(.*?)(" + I + "s?:|$)"), ue = ee.match(me);
6186
6221
  if (ue && ue.length && ue[1]) {
6187
6222
  var Le = ue[1].trim().replace(/;\s*$/, "");
6188
6223
  d[D] = l.sanitizeValue(Le);
@@ -6214,21 +6249,21 @@ function Js() {
6214
6249
  t(this, n), this.element = c, this.instance = l, this.index = d;
6215
6250
  }), [{ key: "setContent", value: function() {
6216
6251
  var n = this, c = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : null, l = arguments.length > 1 && arguments[1] !== void 0 && arguments[1];
6217
- if (I(c, "loaded")) return !1;
6218
- var d = this.instance.settings, h = this.slideConfig, m = pe();
6252
+ if (E(c, "loaded")) return !1;
6253
+ var d = this.instance.settings, h = this.slideConfig, m = ge();
6219
6254
  F(d.beforeSlideLoad) && d.beforeSlideLoad({ index: this.index, slide: c, player: !1 });
6220
- var g = h.type, y = h.descPosition, A = c.querySelector(".gslide-media"), S = c.querySelector(".gslide-title"), T = c.querySelector(".gslide-desc"), $ = c.querySelector(".gdesc-inner"), B = l, q = "gSlideTitle_" + this.index, D = "gSlideDesc_" + this.index;
6255
+ var g = h.type, y = h.descPosition, A = c.querySelector(".gslide-media"), S = c.querySelector(".gslide-title"), I = c.querySelector(".gslide-desc"), $ = c.querySelector(".gdesc-inner"), B = l, q = "gSlideTitle_" + this.index, D = "gSlideDesc_" + this.index;
6221
6256
  if (F(d.afterSlideLoad) && (B = function() {
6222
6257
  F(l) && l(), d.afterSlideLoad({ index: n.index, slide: c, player: n.instance.getSlidePlayerInstance(n.index) });
6223
- }), h.title == "" && h.description == "" ? $ && $.parentNode.parentNode.removeChild($.parentNode) : (S && h.title !== "" ? (S.id = q, S.innerHTML = h.title) : S.parentNode.removeChild(S), T && h.description !== "" ? (T.id = D, m && d.moreLength > 0 ? (h.smallDescription = this.slideShortDesc(h.description, d.moreLength, d.moreText), T.innerHTML = h.smallDescription, this.descriptionEvents(T, h)) : T.innerHTML = h.description) : T.parentNode.removeChild(T), _(A.parentNode, "desc-".concat(y)), _($.parentNode, "description-".concat(y))), _(A, "gslide-".concat(g)), _(c, "loaded"), g !== "video") {
6224
- if (g !== "external") return g === "inline" ? (ki.apply(this.instance, [c, h, this.index, B]), void (h.draggable && new pa({ dragEl: c.querySelector(".gslide-inline"), toleranceX: d.dragToleranceX, toleranceY: d.dragToleranceY, slide: c, instance: this.instance }))) : void (g !== "image" ? F(B) && B() : wi(c, h, this.index, (function() {
6258
+ }), h.title == "" && h.description == "" ? $ && $.parentNode.parentNode.removeChild($.parentNode) : (S && h.title !== "" ? (S.id = q, S.innerHTML = h.title) : S.parentNode.removeChild(S), I && h.description !== "" ? (I.id = D, m && d.moreLength > 0 ? (h.smallDescription = this.slideShortDesc(h.description, d.moreLength, d.moreText), I.innerHTML = h.smallDescription, this.descriptionEvents(I, h)) : I.innerHTML = h.description) : I.parentNode.removeChild(I), _(A.parentNode, "desc-".concat(y)), _($.parentNode, "description-".concat(y))), _(A, "gslide-".concat(g)), _(c, "loaded"), g !== "video") {
6259
+ if (g !== "external") return g === "inline" ? (_i.apply(this.instance, [c, h, this.index, B]), void (h.draggable && new pa({ dragEl: c.querySelector(".gslide-inline"), toleranceX: d.dragToleranceX, toleranceY: d.dragToleranceY, slide: c, instance: this.instance }))) : void (g !== "image" ? F(B) && B() : xi(c, h, this.index, (function() {
6225
6260
  var ee = c.querySelector("img");
6226
- h.draggable && new pa({ dragEl: ee, toleranceX: d.dragToleranceX, toleranceY: d.dragToleranceY, slide: c, instance: n.instance }), h.zoomable && ee.naturalWidth > ee.offsetWidth && (_(ee, "zoomable"), new vi(ee, c, (function() {
6261
+ h.draggable && new pa({ dragEl: ee, toleranceX: d.dragToleranceX, toleranceY: d.dragToleranceY, slide: c, instance: n.instance }), h.zoomable && ee.naturalWidth > ee.offsetWidth && (_(ee, "zoomable"), new wi(ee, c, (function() {
6227
6262
  n.instance.resize();
6228
6263
  }))), F(B) && B();
6229
6264
  })));
6230
- _i.apply(this, [c, h, this.index, B]);
6231
- } else xi.apply(this.instance, [c, h, this.index, B]);
6265
+ Si.apply(this, [c, h, this.index, B]);
6266
+ } else ki.apply(this.instance, [c, h, this.index, B]);
6232
6267
  } }, { key: "slideShortDesc", value: function(n) {
6233
6268
  var c = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 50, l = arguments.length > 2 && arguments[2] !== void 0 && arguments[2], d = document.createElement("div");
6234
6269
  d.innerHTML = n;
@@ -6244,23 +6279,23 @@ function Js() {
6244
6279
  var g = document.body, y = M(m, ".gslide-desc");
6245
6280
  if (!y) return !1;
6246
6281
  y.innerHTML = c.description, _(g, "gdesc-open");
6247
- var A = w("click", { onElement: [g, M(y, ".gslide-description")], withCallback: function(S, T) {
6282
+ var A = w("click", { onElement: [g, M(y, ".gslide-description")], withCallback: function(S, I) {
6248
6283
  S.target.nodeName.toLowerCase() !== "a" && (P(g, "gdesc-open"), _(g, "gdesc-closed"), y.innerHTML = c.smallDescription, l.descriptionEvents(y, c), setTimeout((function() {
6249
6284
  P(g, "gdesc-closed");
6250
6285
  }), 400), A.destroy());
6251
6286
  } });
6252
6287
  } });
6253
6288
  } }, { key: "create", value: function() {
6254
- return G(this.instance.settings.slideHTML);
6289
+ return X(this.instance.settings.slideHTML);
6255
6290
  } }, { key: "getConfig", value: function() {
6256
6291
  V(this.element) || this.element.hasOwnProperty("draggable") || (this.element.draggable = this.instance.settings.draggable);
6257
- var n = new Si(this.instance.settings.slideExtraAttributes);
6292
+ var n = new Ci(this.instance.settings.slideExtraAttributes);
6258
6293
  return this.slideConfig = n.parseConfig(this.element, this.instance.settings), this.slideConfig;
6259
6294
  } }]);
6260
6295
  function _t(n) {
6261
6296
  return Math.sqrt(n.x * n.x + n.y * n.y);
6262
6297
  }
6263
- function Ci(n, c) {
6298
+ function Ai(n, c) {
6264
6299
  var l = (function(d, h) {
6265
6300
  var m = _t(d) * _t(h);
6266
6301
  if (m === 0) return 0;
@@ -6273,7 +6308,7 @@ function Js() {
6273
6308
  return d.x * h.y - h.x * d.y;
6274
6309
  })(n, c) > 0 && (l *= -1), 180 * l / Math.PI;
6275
6310
  }
6276
- var Ai = s((function n(c) {
6311
+ var Mi = s((function n(c) {
6277
6312
  t(this, n), this.handlers = [], this.el = c;
6278
6313
  }), [{ key: "add", value: function(n) {
6279
6314
  this.handlers.push(n);
@@ -6287,10 +6322,10 @@ function Js() {
6287
6322
  }
6288
6323
  } }]);
6289
6324
  function le(n, c) {
6290
- var l = new Ai(n);
6325
+ var l = new Mi(n);
6291
6326
  return l.add(c), l;
6292
6327
  }
6293
- var Mi = s((function n(c, l) {
6328
+ var Ti = s((function n(c, l) {
6294
6329
  t(this, n), this.element = typeof c == "string" ? document.querySelector(c) : c, this.start = this.start.bind(this), this.move = this.move.bind(this), this.end = this.end.bind(this), this.cancel = this.cancel.bind(this), this.element.addEventListener("touchstart", this.start, !1), this.element.addEventListener("touchmove", this.move, !1), this.element.addEventListener("touchend", this.end, !1), this.element.addEventListener("touchcancel", this.cancel, !1), this.preV = { x: null, y: null }, this.pinchStartLen = null, this.zoom = 1, this.isDoubleTap = !1;
6295
6330
  var d = function() {
6296
6331
  };
@@ -6314,7 +6349,7 @@ function Js() {
6314
6349
  var c = this.preV, l = n.touches.length, d = n.touches[0].pageX, h = n.touches[0].pageY;
6315
6350
  if (this.isDoubleTap = !1, l > 1) {
6316
6351
  var m = n.touches[1].pageX, g = n.touches[1].pageY, y = { x: n.touches[1].pageX - d, y: n.touches[1].pageY - h };
6317
- c.x !== null && (this.pinchStartLen > 0 && (n.zoom = _t(y) / this.pinchStartLen, this.pinch.dispatch(n, this.element)), n.angle = Ci(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;
6352
+ c.x !== null && (this.pinchStartLen > 0 && (n.zoom = _t(y) / this.pinchStartLen, this.pinch.dispatch(n, this.element)), n.angle = Ai(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;
6318
6353
  } else {
6319
6354
  if (this.x2 !== null) {
6320
6355
  n.deltaX = d - this.x2, n.deltaY = h - this.y2;
@@ -6354,38 +6389,38 @@ function Js() {
6354
6389
  } }, { key: "destroy", value: function() {
6355
6390
  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;
6356
6391
  } }]);
6357
- function Vt(n) {
6392
+ function Nt(n) {
6358
6393
  var c = (function() {
6359
6394
  var g, y = document.createElement("fakeelement"), A = { transition: "transitionend", OTransition: "oTransitionEnd", MozTransition: "transitionend", WebkitTransition: "webkitTransitionEnd" };
6360
6395
  for (g in A) if (y.style[g] !== void 0) return A[g];
6361
- })(), l = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth, d = I(n, "gslide-media") ? n : n.querySelector(".gslide-media"), h = M(d, ".ginner-container"), m = n.querySelector(".gslide-description");
6396
+ })(), l = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth, d = E(n, "gslide-media") ? n : n.querySelector(".gslide-media"), h = M(d, ".ginner-container"), m = n.querySelector(".gslide-description");
6362
6397
  l > 769 && (d = h), _(d, "greset"), C(d, "translate3d(0, 0, 0)"), w(c, { onElement: d, once: !0, withCallback: function(g, y) {
6363
6398
  P(d, "greset");
6364
6399
  } }), d.style.opacity = "", m && (m.style.opacity = "");
6365
6400
  }
6366
- function Ti(n) {
6401
+ function Ii(n) {
6367
6402
  if (n.events.hasOwnProperty("touch")) return !1;
6368
- var c, l, d, h = te(), m = h.width, g = h.height, y = !1, A = null, S = null, T = null, $ = !1, B = 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, $i = document.getElementById("glightbox-slider"), St = document.querySelector(".goverlay"), Pi = new Mi($i, { touchStart: function(X) {
6369
- 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) {
6370
- 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;
6371
- X.preventDefault();
6403
+ var c, l, d, h = te(), m = h.width, g = h.height, y = !1, A = null, S = null, I = null, $ = !1, B = 1, q = 1, D = !1, ee = !1, me = null, ue = null, Le = null, oe = null, Re = 0, ze = 0, ht = !1, rt = !1, _e = {}, Se = {}, wa = 0, xa = 0, Pi = document.getElementById("glightbox-slider"), St = document.querySelector(".goverlay"), Li = new Ti(Pi, { touchStart: function(Y) {
6404
+ if (y = !0, (E(Y.targetTouches[0].target, "ginner-container") || M(Y.targetTouches[0].target, ".gslide-desc") || Y.targetTouches[0].target.nodeName.toLowerCase() == "a") && (y = !1), M(Y.targetTouches[0].target, ".gslide-inline") && !E(Y.targetTouches[0].target.parentNode, "gslide-inline") && (y = !1), y) {
6405
+ if (Se = Y.targetTouches[0], _e.pageX = Y.targetTouches[0].pageX, _e.pageY = Y.targetTouches[0].pageY, wa = Y.targetTouches[0].clientX, xa = Y.targetTouches[0].clientY, A = n.activeSlide, S = A.querySelector(".gslide-media"), d = A.querySelector(".gslide-inline"), I = null, E(S, "gslide-image") && (I = S.querySelector("img")), (window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth) > 769 && (S = A.querySelector(".ginner-container")), P(St, "greset"), Y.pageX > 20 && Y.pageX < window.innerWidth - 20) return;
6406
+ Y.preventDefault();
6372
6407
  }
6373
- }, touchMove: function(X) {
6374
- if (y && (Se = X.targetTouches[0], !D && !ee)) {
6408
+ }, touchMove: function(Y) {
6409
+ if (y && (Se = Y.targetTouches[0], !D && !ee)) {
6375
6410
  if (d && d.offsetHeight > g) {
6376
6411
  var de = _e.pageX - Se.pageX;
6377
6412
  if (Math.abs(de) <= 13) return !1;
6378
6413
  }
6379
6414
  $ = !0;
6380
- var Ne, Ct = X.targetTouches[0].clientX, Li = X.targetTouches[0].clientY, Ri = wa - Ct, zi = xa - Li;
6381
- if (Math.abs(Ri) > Math.abs(zi) ? (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 && (Ne = 1 - Math.abs(l) / g, St.style.opacity = Ne, n.settings.touchFollowAxis && (Re = 0)), rt && (Ne = 1 - Math.abs(c) / m, S.style.opacity = Ne, n.settings.touchFollowAxis && (ze = 0)), !T) return C(S, "translate3d(".concat(Re, "%, 0, 0)"));
6415
+ var Ne, Ct = Y.targetTouches[0].clientX, Ri = Y.targetTouches[0].clientY, zi = wa - Ct, Oi = xa - Ri;
6416
+ if (Math.abs(zi) > Math.abs(Oi) ? (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 && I && (Ne = 1 - Math.abs(l) / g, St.style.opacity = Ne, n.settings.touchFollowAxis && (Re = 0)), rt && (Ne = 1 - Math.abs(c) / m, S.style.opacity = Ne, n.settings.touchFollowAxis && (ze = 0)), !I) return C(S, "translate3d(".concat(Re, "%, 0, 0)"));
6382
6417
  C(S, "translate3d(".concat(Re, "%, ").concat(ze, "%, 0)"));
6383
6418
  }
6384
6419
  }, touchEnd: function() {
6385
6420
  if (y) {
6386
- if ($ = !1, ee || D) return Le = ge, void (oe = ue);
6387
- var X = Math.abs(parseInt(ze)), de = Math.abs(parseInt(Re));
6388
- if (!(X > 29 && T)) return X < 29 && de < 25 ? (_(St, "greset"), St.style.opacity = 1, Vt(S)) : void 0;
6421
+ if ($ = !1, ee || D) return Le = me, void (oe = ue);
6422
+ var Y = Math.abs(parseInt(ze)), de = Math.abs(parseInt(Re));
6423
+ if (!(Y > 29 && I)) return Y < 29 && de < 25 ? (_(St, "greset"), St.style.opacity = 1, Nt(S)) : void 0;
6389
6424
  n.close();
6390
6425
  }
6391
6426
  }, multipointEnd: function() {
@@ -6394,35 +6429,35 @@ function Js() {
6394
6429
  }), 50);
6395
6430
  }, multipointStart: function() {
6396
6431
  D = !0, B = q || 1;
6397
- }, pinch: function(X) {
6398
- if (!T || $) return !1;
6399
- D = !0, T.scaleX = T.scaleY = B * X.zoom;
6400
- var de = B * X.zoom;
6401
- if (ee = !0, de <= 1) return ee = !1, de = 1, oe = null, Le = null, ge = null, ue = null, void T.setAttribute("style", "");
6402
- de > 4.5 && (de = 4.5), T.style.transform = "scale3d(".concat(de, ", ").concat(de, ", 1)"), q = de;
6403
- }, pressMove: function(X) {
6432
+ }, pinch: function(Y) {
6433
+ if (!I || $) return !1;
6434
+ D = !0, I.scaleX = I.scaleY = B * Y.zoom;
6435
+ var de = B * Y.zoom;
6436
+ if (ee = !0, de <= 1) return ee = !1, de = 1, oe = null, Le = null, me = null, ue = null, void I.setAttribute("style", "");
6437
+ de > 4.5 && (de = 4.5), I.style.transform = "scale3d(".concat(de, ", ").concat(de, ", 1)"), q = de;
6438
+ }, pressMove: function(Y) {
6404
6439
  if (ee && !D) {
6405
6440
  var de = Se.pageX - _e.pageX, Ne = Se.pageY - _e.pageY;
6406
- Le && (de += Le), oe && (Ne += oe), ge = de, ue = Ne;
6441
+ Le && (de += Le), oe && (Ne += oe), me = de, ue = Ne;
6407
6442
  var Ct = "translate3d(".concat(de, "px, ").concat(Ne, "px, 0)");
6408
- q && (Ct += " scale3d(".concat(q, ", ").concat(q, ", 1)")), C(T, Ct);
6443
+ q && (Ct += " scale3d(".concat(q, ", ").concat(q, ", 1)")), C(I, Ct);
6409
6444
  }
6410
- }, swipe: function(X) {
6445
+ }, swipe: function(Y) {
6411
6446
  if (!ee) if (D) D = !1;
6412
6447
  else {
6413
- if (X.direction == "Left") {
6414
- if (n.index == n.elements.length - 1) return Vt(S);
6448
+ if (Y.direction == "Left") {
6449
+ if (n.index == n.elements.length - 1) return Nt(S);
6415
6450
  n.nextSlide();
6416
6451
  }
6417
- if (X.direction == "Right") {
6418
- if (n.index == 0) return Vt(S);
6452
+ if (Y.direction == "Right") {
6453
+ if (n.index == 0) return Nt(S);
6419
6454
  n.prevSlide();
6420
6455
  }
6421
6456
  }
6422
6457
  } });
6423
- n.events.touch = Pi;
6458
+ n.events.touch = Li;
6424
6459
  }
6425
- var ma = pe(), ya = pe() !== null || document.createTouch !== void 0 || "ontouchstart" in window || "onmsgesturechange" in window || navigator.msMaxTouchPoints, va = document.getElementsByTagName("html")[0], Ii = { selector: ".glightbox", elements: null, skin: "clean", theme: "clean", closeButton: !0, startAt: null, autoplayVideos: !0, autofocusVideos: !0, descPosition: "bottom", width: "900px", height: "506px", videosWidth: "960px", beforeSlideChange: null, afterSlideChange: null, beforeSlideLoad: null, afterSlideLoad: null, slideInserted: null, slideRemoved: null, slideExtraAttributes: null, onOpen: null, onClose: null, loop: !1, zoomable: !0, draggable: !0, dragAutoSnap: !1, dragToleranceX: 40, dragToleranceY: 65, preload: !0, oneSlidePerOpen: !1, touchNavigation: !0, touchFollowAxis: !0, keyboardNavigation: !0, closeOnOutsideClick: !0, plugins: !1, plyr: { css: "https://cdn.plyr.io/3.6.12/plyr.css", js: "https://cdn.plyr.io/3.6.12/plyr.js", config: { ratio: "16:9", fullscreen: { enabled: !0, iosNative: !0 }, youtube: { noCookie: !0, rel: 0, showinfo: 0, iv_load_policy: 3 }, vimeo: { byline: !1, portrait: !1, title: !1, transparent: !1 } } }, openEffect: "zoom", closeEffect: "zoom", slideEffect: "slide", moreText: "See more", moreLength: 60, cssEfects: { fade: { in: "fadeIn", out: "fadeOut" }, zoom: { in: "zoomIn", out: "zoomOut" }, slide: { in: "slideInRight", out: "slideOutLeft" }, slideBack: { in: "slideInLeft", out: "slideOutRight" }, none: { in: "none", out: "none" } }, svg: { close: '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 512 512" xml:space="preserve"><g><g><path d="M505.943,6.058c-8.077-8.077-21.172-8.077-29.249,0L6.058,476.693c-8.077,8.077-8.077,21.172,0,29.249C10.096,509.982,15.39,512,20.683,512c5.293,0,10.586-2.019,14.625-6.059L505.943,35.306C514.019,27.23,514.019,14.135,505.943,6.058z"/></g></g><g><g><path d="M505.942,476.694L35.306,6.059c-8.076-8.077-21.172-8.077-29.248,0c-8.077,8.076-8.077,21.171,0,29.248l470.636,470.636c4.038,4.039,9.332,6.058,14.625,6.058c5.293,0,10.587-2.019,14.624-6.057C514.018,497.866,514.018,484.771,505.942,476.694z"/></g></g></svg>', next: '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 477.175 477.175" xml:space="preserve"> <g><path d="M360.731,229.075l-225.1-225.1c-5.3-5.3-13.8-5.3-19.1,0s-5.3,13.8,0,19.1l215.5,215.5l-215.5,215.5c-5.3,5.3-5.3,13.8,0,19.1c2.6,2.6,6.1,4,9.5,4c3.4,0,6.9-1.3,9.5-4l225.1-225.1C365.931,242.875,365.931,234.275,360.731,229.075z"/></g></svg>', prev: '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 477.175 477.175" xml:space="preserve"><g><path d="M145.188,238.575l215.5-215.5c5.3-5.3,5.3-13.8,0-19.1s-13.8-5.3-19.1,0l-225.1,225.1c-5.3,5.3-5.3,13.8,0,19.1l225.1,225c2.6,2.6,6.1,4,9.5,4s6.9-1.3,9.5-4c5.3-5.3,5.3-13.8,0-19.1L145.188,238.575z"/></g></svg>' }, slideHTML: `<div class="gslide">
6460
+ var ma = ge(), ya = ge() !== null || document.createTouch !== void 0 || "ontouchstart" in window || "onmsgesturechange" in window || navigator.msMaxTouchPoints, va = document.getElementsByTagName("html")[0], Ei = { selector: ".glightbox", elements: null, skin: "clean", theme: "clean", closeButton: !0, startAt: null, autoplayVideos: !0, autofocusVideos: !0, descPosition: "bottom", width: "900px", height: "506px", videosWidth: "960px", beforeSlideChange: null, afterSlideChange: null, beforeSlideLoad: null, afterSlideLoad: null, slideInserted: null, slideRemoved: null, slideExtraAttributes: null, onOpen: null, onClose: null, loop: !1, zoomable: !0, draggable: !0, dragAutoSnap: !1, dragToleranceX: 40, dragToleranceY: 65, preload: !0, oneSlidePerOpen: !1, touchNavigation: !0, touchFollowAxis: !0, keyboardNavigation: !0, closeOnOutsideClick: !0, plugins: !1, plyr: { css: "https://cdn.plyr.io/3.6.12/plyr.css", js: "https://cdn.plyr.io/3.6.12/plyr.js", config: { ratio: "16:9", fullscreen: { enabled: !0, iosNative: !0 }, youtube: { noCookie: !0, rel: 0, showinfo: 0, iv_load_policy: 3 }, vimeo: { byline: !1, portrait: !1, title: !1, transparent: !1 } } }, openEffect: "zoom", closeEffect: "zoom", slideEffect: "slide", moreText: "See more", moreLength: 60, cssEfects: { fade: { in: "fadeIn", out: "fadeOut" }, zoom: { in: "zoomIn", out: "zoomOut" }, slide: { in: "slideInRight", out: "slideOutLeft" }, slideBack: { in: "slideInLeft", out: "slideOutRight" }, none: { in: "none", out: "none" } }, svg: { close: '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 512 512" xml:space="preserve"><g><g><path d="M505.943,6.058c-8.077-8.077-21.172-8.077-29.249,0L6.058,476.693c-8.077,8.077-8.077,21.172,0,29.249C10.096,509.982,15.39,512,20.683,512c5.293,0,10.586-2.019,14.625-6.059L505.943,35.306C514.019,27.23,514.019,14.135,505.943,6.058z"/></g></g><g><g><path d="M505.942,476.694L35.306,6.059c-8.076-8.077-21.172-8.077-29.248,0c-8.077,8.076-8.077,21.171,0,29.248l470.636,470.636c4.038,4.039,9.332,6.058,14.625,6.058c5.293,0,10.587-2.019,14.624-6.057C514.018,497.866,514.018,484.771,505.942,476.694z"/></g></g></svg>', next: '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 477.175 477.175" xml:space="preserve"> <g><path d="M360.731,229.075l-225.1-225.1c-5.3-5.3-13.8-5.3-19.1,0s-5.3,13.8,0,19.1l215.5,215.5l-215.5,215.5c-5.3,5.3-5.3,13.8,0,19.1c2.6,2.6,6.1,4,9.5,4c3.4,0,6.9-1.3,9.5-4l225.1-225.1C365.931,242.875,365.931,234.275,360.731,229.075z"/></g></svg>', prev: '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 477.175 477.175" xml:space="preserve"><g><path d="M145.188,238.575l215.5-215.5c5.3-5.3,5.3-13.8,0-19.1s-13.8-5.3-19.1,0l-225.1,225.1c-5.3,5.3-5.3,13.8,0,19.1l225.1,225c2.6,2.6,6.1,4,9.5,4s6.9-1.3,9.5-4c5.3-5.3,5.3-13.8,0-19.1L145.188,238.575z"/></g></svg>' }, slideHTML: `<div class="gslide">
6426
6461
  <div class="gslide-inner-content">
6427
6462
  <div class="ginner-container">
6428
6463
  <div class="gslide-media">
@@ -6444,9 +6479,9 @@ function Js() {
6444
6479
  <button class="gprev gbtn" aria-label="Previous" data-taborder="2">{prevSVG}</button>
6445
6480
  <button class="gnext gbtn" aria-label="Next" data-taborder="1">{nextSVG}</button>
6446
6481
  </div>
6447
- </div>` }, Ei = s((function n() {
6482
+ </div>` }, $i = s((function n() {
6448
6483
  var c = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
6449
- t(this, n), this.customOptions = c, this.settings = p(Ii, c), this.effectsClasses = this.getAnimationClasses(), this.videoPlayers = {}, this.apiEvents = [], this.fullElementsList = !1;
6484
+ t(this, n), this.customOptions = c, this.settings = p(Ei, c), this.effectsClasses = this.getAnimationClasses(), this.videoPlayers = {}, this.apiEvents = [], this.fullElementsList = !1;
6450
6485
  }), [{ key: "init", value: function() {
6451
6486
  var n = this, c = this.getSelector();
6452
6487
  c && (this.baseEvents = w("click", { onElement: c, withCallback: function(l, d) {
@@ -6467,30 +6502,30 @@ function Js() {
6467
6502
  var g = document.createElement("style");
6468
6503
  g.type = "text/css", g.className = "gcss-styles", g.innerText = ".gscrollbar-fixer {margin-right: ".concat(m, "px}"), document.head.appendChild(g), _(h, "gscrollbar-fixer");
6469
6504
  }
6470
- _(h, "glightbox-open"), _(va, "glightbox-open"), ma && (_(document.body, "glightbox-mobile"), this.settings.slideEffect = "slide"), this.showSlide(l, !0), this.elements.length === 1 ? (_(this.prevButton, "glightbox-button-hidden"), _(this.nextButton, "glightbox-button-hidden")) : (P(this.prevButton, "glightbox-button-hidden"), P(this.nextButton, "glightbox-button-hidden")), this.lightboxOpen = !0, this.trigger("open"), F(this.settings.onOpen) && this.settings.onOpen(), ya && this.settings.touchNavigation && Ti(this), this.settings.keyboardNavigation && yi(this);
6505
+ _(h, "glightbox-open"), _(va, "glightbox-open"), ma && (_(document.body, "glightbox-mobile"), this.settings.slideEffect = "slide"), this.showSlide(l, !0), this.elements.length === 1 ? (_(this.prevButton, "glightbox-button-hidden"), _(this.nextButton, "glightbox-button-hidden")) : (P(this.prevButton, "glightbox-button-hidden"), P(this.nextButton, "glightbox-button-hidden")), this.lightboxOpen = !0, this.trigger("open"), F(this.settings.onOpen) && this.settings.onOpen(), ya && this.settings.touchNavigation && Ii(this), this.settings.keyboardNavigation && vi(this);
6471
6506
  } }, { key: "openAt", value: function() {
6472
6507
  var n = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : 0;
6473
6508
  this.open(null, n);
6474
6509
  } }, { key: "showSlide", value: function() {
6475
6510
  var n = this, c = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : 0, l = arguments.length > 1 && arguments[1] !== void 0 && arguments[1];
6476
- Z(this.loader), this.index = parseInt(c);
6511
+ K(this.loader), this.index = parseInt(c);
6477
6512
  var d = this.slidesContainer.querySelector(".current");
6478
6513
  d && P(d, "current"), this.slideAnimateOut();
6479
6514
  var h = this.slidesContainer.querySelectorAll(".gslide")[c];
6480
- if (I(h, "loaded")) this.slideAnimateIn(h, l), U(this.loader);
6515
+ if (E(h, "loaded")) this.slideAnimateIn(h, l), U(this.loader);
6481
6516
  else {
6482
- Z(this.loader);
6517
+ K(this.loader);
6483
6518
  var m = this.elements[c], g = { index: this.index, slide: h, slideNode: h, slideConfig: m.slideConfig, slideIndex: this.index, trigger: m.node, player: null };
6484
6519
  this.trigger("slide_before_load", g), m.instance.setContent(h, (function() {
6485
6520
  U(n.loader), n.resize(), n.slideAnimateIn(h, l), n.trigger("slide_after_load", g);
6486
6521
  }));
6487
6522
  }
6488
- this.slideDescription = h.querySelector(".gslide-description"), this.slideDescriptionContained = this.slideDescription && I(this.slideDescription.parentNode, "gslide-media"), this.settings.preload && (this.preloadSlide(c + 1), this.preloadSlide(c - 1)), this.updateNavigationClasses(), this.activeSlide = h;
6523
+ this.slideDescription = h.querySelector(".gslide-description"), this.slideDescriptionContained = this.slideDescription && E(this.slideDescription.parentNode, "gslide-media"), this.settings.preload && (this.preloadSlide(c + 1), this.preloadSlide(c - 1)), this.updateNavigationClasses(), this.activeSlide = h;
6489
6524
  } }, { key: "preloadSlide", value: function(n) {
6490
6525
  var c = this;
6491
6526
  if (n < 0 || n > this.elements.length - 1 || be(this.elements[n])) return !1;
6492
6527
  var l = this.slidesContainer.querySelectorAll(".gslide")[n];
6493
- if (I(l, "loaded")) return !1;
6528
+ if (E(l, "loaded")) return !1;
6494
6529
  var d = this.elements[n], h = d.type, m = { index: n, slide: l, slideNode: l, slideConfig: d.slideConfig, slideIndex: n, trigger: d.node, player: null };
6495
6530
  this.trigger("slide_before_load", m), h === "video" || h === "external" ? setTimeout((function() {
6496
6531
  d.instance.setContent(l, (function() {
@@ -6596,7 +6631,7 @@ function Js() {
6596
6631
  var m = new kt(d, c, h), g = m.getConfig(), y = p({}, g);
6597
6632
  y.slideConfig = g, y.instance = m, y.index = h, l.push(y);
6598
6633
  })), this.elements = l, this.lightboxOpen && (this.slidesContainer.innerHTML = "", this.elements.length && (v(this.elements, (function() {
6599
- var d = G(c.settings.slideHTML);
6634
+ var d = X(c.settings.slideHTML);
6600
6635
  c.slidesContainer.appendChild(d);
6601
6636
  })), this.showSlide(0, !0)));
6602
6637
  } }, { key: "getElementIndex", value: function(n) {
@@ -6640,41 +6675,41 @@ function Js() {
6640
6675
  S.parentNode == document.body && S.nodeName.charAt(0) !== "#" && S.hasAttribute && !S.hasAttribute("aria-hidden") && (l.push(S), S.setAttribute("aria-hidden", "true"));
6641
6676
  }));
6642
6677
  var d = ie(this.settings.svg, "next") ? this.settings.svg.next : "", h = ie(this.settings.svg, "prev") ? this.settings.svg.prev : "", m = ie(this.settings.svg, "close") ? this.settings.svg.close : "", g = this.settings.lightboxHTML;
6643
- g = G(g = (g = (g = g.replace(/{nextSVG}/g, d)).replace(/{prevSVG}/g, h)).replace(/{closeSVG}/g, m)), document.body.appendChild(g);
6678
+ g = X(g = (g = (g = g.replace(/{nextSVG}/g, d)).replace(/{prevSVG}/g, h)).replace(/{closeSVG}/g, m)), document.body.appendChild(g);
6644
6679
  var y = document.getElementById("glightbox-body");
6645
6680
  this.modal = y;
6646
6681
  var A = y.querySelector(".gclose");
6647
- this.prevButton = y.querySelector(".gprev"), this.nextButton = y.querySelector(".gnext"), this.overlay = y.querySelector(".goverlay"), this.loader = y.querySelector(".gloader"), this.slidesContainer = document.getElementById("glightbox-slider"), this.bodyHiddenChildElms = l, this.events = {}, _(this.modal, "glightbox-" + this.settings.skin), this.settings.closeButton && A && (this.events.close = w("click", { onElement: A, withCallback: function(S, T) {
6682
+ this.prevButton = y.querySelector(".gprev"), this.nextButton = y.querySelector(".gnext"), this.overlay = y.querySelector(".goverlay"), this.loader = y.querySelector(".gloader"), this.slidesContainer = document.getElementById("glightbox-slider"), this.bodyHiddenChildElms = l, this.events = {}, _(this.modal, "glightbox-" + this.settings.skin), this.settings.closeButton && A && (this.events.close = w("click", { onElement: A, withCallback: function(S, I) {
6648
6683
  S.preventDefault(), n.close();
6649
- } })), A && !this.settings.closeButton && A.parentNode.removeChild(A), this.nextButton && (this.events.next = w("click", { onElement: this.nextButton, withCallback: function(S, T) {
6684
+ } })), A && !this.settings.closeButton && A.parentNode.removeChild(A), this.nextButton && (this.events.next = w("click", { onElement: this.nextButton, withCallback: function(S, I) {
6650
6685
  S.preventDefault(), n.nextSlide();
6651
- } })), this.prevButton && (this.events.prev = w("click", { onElement: this.prevButton, withCallback: function(S, T) {
6686
+ } })), this.prevButton && (this.events.prev = w("click", { onElement: this.prevButton, withCallback: function(S, I) {
6652
6687
  S.preventDefault(), n.prevSlide();
6653
- } })), this.settings.closeOnOutsideClick && (this.events.outClose = w("click", { onElement: y, withCallback: function(S, T) {
6654
- n.preventOutsideClick || I(document.body, "glightbox-mobile") || M(S.target, ".ginner-container") || M(S.target, ".gbtn") || I(S.target, "gnext") || I(S.target, "gprev") || n.close();
6655
- } })), v(this.elements, (function(S, T) {
6656
- n.slidesContainer.appendChild(S.instance.create()), S.slideNode = n.slidesContainer.querySelectorAll(".gslide")[T];
6688
+ } })), this.settings.closeOnOutsideClick && (this.events.outClose = w("click", { onElement: y, withCallback: function(S, I) {
6689
+ n.preventOutsideClick || E(document.body, "glightbox-mobile") || M(S.target, ".ginner-container") || M(S.target, ".gbtn") || E(S.target, "gnext") || E(S.target, "gprev") || n.close();
6690
+ } })), v(this.elements, (function(S, I) {
6691
+ n.slidesContainer.appendChild(S.instance.create()), S.slideNode = n.slidesContainer.querySelectorAll(".gslide")[I];
6657
6692
  })), ya && _(document.body, "glightbox-touch"), this.events.resize = w("resize", { onElement: window, withCallback: function() {
6658
6693
  n.resize();
6659
6694
  } }), this.built = !0;
6660
6695
  } }, { key: "resize", value: function() {
6661
6696
  var n = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : null;
6662
- if ((n = n || this.activeSlide) && !I(n, "zoomed")) {
6697
+ if ((n = n || this.activeSlide) && !E(n, "zoomed")) {
6663
6698
  var c = te(), l = n.querySelector(".gvideo-wrapper"), d = n.querySelector(".gslide-image"), h = this.slideDescription, m = c.width, g = c.height;
6664
6699
  if (m <= 768 ? _(document.body, "glightbox-mobile") : P(document.body, "glightbox-mobile"), l || d) {
6665
6700
  var y = !1;
6666
- if (h && (I(h, "description-bottom") || I(h, "description-top")) && !I(h, "gabsolute") && (y = !0), d) {
6701
+ if (h && (E(h, "description-bottom") || E(h, "description-top")) && !E(h, "gabsolute") && (y = !0), d) {
6667
6702
  if (m <= 768) d.querySelector("img");
6668
6703
  else if (y) {
6669
- var A, S, T = h.offsetHeight, $ = d.querySelector("img"), B = (A = this.elements[this.index]) === null || A === void 0 ? void 0 : A.node, q = "100vh";
6670
- B && (q = (S = B.getAttribute("data-height")) !== null && S !== void 0 ? S : q), $.setAttribute("style", "max-height: calc(".concat(q, " - ").concat(T, "px)")), h.setAttribute("style", "max-width: ".concat($.offsetWidth, "px;"));
6704
+ var A, S, I = h.offsetHeight, $ = d.querySelector("img"), B = (A = this.elements[this.index]) === null || A === void 0 ? void 0 : A.node, q = "100vh";
6705
+ B && (q = (S = B.getAttribute("data-height")) !== null && S !== void 0 ? S : q), $.setAttribute("style", "max-height: calc(".concat(q, " - ").concat(I, "px)")), h.setAttribute("style", "max-width: ".concat($.offsetWidth, "px;"));
6671
6706
  }
6672
6707
  }
6673
6708
  if (l) {
6674
6709
  var D = ie(this.settings.plyr.config, "ratio") ? this.settings.plyr.config.ratio : "";
6675
6710
  if (!D) {
6676
- var ee = l.clientWidth, ge = l.clientHeight, ue = ee / ge;
6677
- D = "".concat(ee / ue, ":").concat(ge / ue);
6711
+ var ee = l.clientWidth, me = l.clientHeight, ue = ee / me;
6712
+ D = "".concat(ee / ue, ":").concat(me / ue);
6678
6713
  }
6679
6714
  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]));
6680
6715
  if (ze = Math.floor(ze), y && (g -= h.offsetHeight), Re > m || ze > g || g < ze && m > Re) {
@@ -6736,25 +6771,25 @@ function Js() {
6736
6771
  return "3.3.1";
6737
6772
  } }]);
6738
6773
  return function() {
6739
- var n = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, c = new Ei(n);
6774
+ var n = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, c = new $i(n);
6740
6775
  return c.init(), c;
6741
6776
  };
6742
6777
  }));
6743
- })(Lt)), Lt.exports;
6778
+ })(Rt)), Rt.exports;
6744
6779
  }
6745
- var Ks = Js();
6746
- const Zs = /* @__PURE__ */ Ua(Ks);
6780
+ var Zs = Js();
6781
+ const Ks = /* @__PURE__ */ Ua(Zs);
6747
6782
  var Qs = Object.getOwnPropertyDescriptor, en = (a, e, t, i) => {
6748
6783
  for (var s = i > 1 ? void 0 : i ? Qs(e, t) : e, r = a.length - 1, o; r >= 0; r--)
6749
6784
  (o = a[r]) && (s = o(s) || s);
6750
6785
  return s;
6751
6786
  };
6752
- let Kt = class extends Fe {
6787
+ let Zt = class extends Fe {
6753
6788
  render() {
6754
6789
  return u` <div class="cb-thinking"><span></span><span></span><span></span></div>`;
6755
6790
  }
6756
6791
  };
6757
- Kt.styles = J`
6792
+ Zt.styles = J`
6758
6793
  .cb-thinking {
6759
6794
  text-align: center;
6760
6795
  }
@@ -6792,15 +6827,15 @@ Kt.styles = J`
6792
6827
  }
6793
6828
  }
6794
6829
  `;
6795
- Kt = en([
6796
- K("cb-thinking")
6797
- ], Kt);
6798
- var tn = Object.defineProperty, an = Object.getOwnPropertyDescriptor, Qa = (a, e, t, i) => {
6830
+ Zt = en([
6831
+ Z("cb-thinking")
6832
+ ], Zt);
6833
+ var tn = Object.defineProperty, an = Object.getOwnPropertyDescriptor, ei = (a, e, t, i) => {
6799
6834
  for (var s = i > 1 ? void 0 : i ? an(e, t) : e, r = a.length - 1, o; r >= 0; r--)
6800
6835
  (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
6801
6836
  return i && s && tn(e, t, s), s;
6802
6837
  };
6803
- let Bt = class extends re {
6838
+ let qt = class extends re {
6804
6839
  constructor() {
6805
6840
  super(...arguments), this.files = [];
6806
6841
  }
@@ -6816,7 +6851,7 @@ let Bt = class extends re {
6816
6851
  </div>`;
6817
6852
  }
6818
6853
  };
6819
- Bt.styles = J`
6854
+ qt.styles = J`
6820
6855
  .cb-uploading {
6821
6856
  text-align: left;
6822
6857
  }
@@ -6834,12 +6869,12 @@ Bt.styles = J`
6834
6869
  margin-right: 5px;
6835
6870
  }
6836
6871
  `;
6837
- Qa([
6872
+ ei([
6838
6873
  x({ type: Array })
6839
- ], Bt.prototype, "files", 2);
6840
- Bt = Qa([
6841
- K("cb-uploading")
6842
- ], Bt);
6874
+ ], qt.prototype, "files", 2);
6875
+ qt = ei([
6876
+ Z("cb-uploading")
6877
+ ], qt);
6843
6878
  const sn = J`
6844
6879
  ${ke}
6845
6880
  :host {
@@ -6918,7 +6953,7 @@ oa([
6918
6953
  x({ type: Boolean })
6919
6954
  ], mt.prototype, "inverse", 2);
6920
6955
  mt = oa([
6921
- K("cb-external-link")
6956
+ Z("cb-external-link")
6922
6957
  ], mt);
6923
6958
  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>';
6924
6959
  var un = Object.defineProperty, pn = Object.getOwnPropertyDescriptor, ca = (a, e, t, i) => {
@@ -6972,9 +7007,9 @@ ca([
6972
7007
  x({ type: String })
6973
7008
  ], yt.prototype, "url", 2);
6974
7009
  yt = ca([
6975
- K("cb-file")
7010
+ Z("cb-file")
6976
7011
  ], yt);
6977
- 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>', ei = '<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>', ti = '<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`
7012
+ 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>', ti = '<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>', ai = '<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`
6978
7013
  pre code.hljs {
6979
7014
  display: block;
6980
7015
  overflow-x: auto;
@@ -8266,6 +8301,15 @@ const gn = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><g fill="curr
8266
8301
  border-radius: 4px;
8267
8302
  }
8268
8303
 
8304
+ .info-avatar {
8305
+ margin-right: 2px;
8306
+ color: rgba(0, 0, 0, 0.2);
8307
+ }
8308
+
8309
+ .info-avatar img {
8310
+ border-radius: 4px;
8311
+ }
8312
+
8269
8313
  .user-message,
8270
8314
  .assistant-message,
8271
8315
  .system-message {
@@ -8346,7 +8390,7 @@ const gn = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><g fill="curr
8346
8390
  margin-top: 2px;
8347
8391
  //color: rgba(34, 34, 34, 0.6);
8348
8392
  color: var(--enegelai-bot-message-system-color, rgba(34, 34, 34, 0.6));
8349
- background-color: var(--enegelai-bot-message-system-background, rgba(254, 243, 199, 0.5));
8393
+ //background-color: var(--enegelai-bot-message-system-background, rgba(254, 243, 199, 0.5));
8350
8394
  padding: 4px 12px 6px 12px;
8351
8395
  }
8352
8396
 
@@ -8427,23 +8471,23 @@ function Ra(a, e) {
8427
8471
  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>`;
8428
8472
  }
8429
8473
  function vn() {
8430
- const a = new Bi({
8474
+ const a = new qi({
8431
8475
  html: !0,
8432
8476
  breaks: !0,
8433
8477
  linkify: !0,
8434
8478
  highlight(e, t) {
8435
- if (!!(t && Nt.getLanguage(t))) {
8479
+ if (!!(t && Ut.getLanguage(t))) {
8436
8480
  const s = t ?? "";
8437
- return Ra(Nt.highlight(e, { language: s }).value, s);
8481
+ return Ra(Ut.highlight(e, { language: s }).value, s);
8438
8482
  }
8439
- return Ra(Nt.highlightAuto(e).value, "");
8483
+ return Ra(Ut.highlightAuto(e).value, "");
8440
8484
  }
8441
8485
  });
8442
- return a.use(qi, { attrs: { target: "_blank", rel: "noopener" } }), a;
8486
+ return a.use(Di, { attrs: { target: "_blank", rel: "noopener" } }), a;
8443
8487
  }
8444
- async function Zt(a) {
8488
+ async function Kt(a) {
8445
8489
  const t = vn().render(a);
8446
- return u`${Y(t)}`;
8490
+ return u`${G(t)}`;
8447
8491
  }
8448
8492
  var wn = Object.defineProperty, xn = Object.getOwnPropertyDescriptor, nt = (a, e, t, i) => {
8449
8493
  for (var s = i > 1 ? void 0 : i ? xn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
@@ -8452,7 +8496,7 @@ var wn = Object.defineProperty, xn = Object.getOwnPropertyDescriptor, nt = (a, e
8452
8496
  };
8453
8497
  let De = class extends re {
8454
8498
  constructor() {
8455
- super(...arguments), this.store = new it(this, b), this.type = "assistant", this.suppressFeedback = !1, this.lightbox = Zs({
8499
+ super(...arguments), this.store = new it(this, b), this.type = "assistant", this.suppressFeedback = !1, this.lightbox = Ks({
8456
8500
  touchNavigation: !0,
8457
8501
  loop: !0,
8458
8502
  autoplayVideos: !0,
@@ -8517,7 +8561,7 @@ let De = class extends re {
8517
8561
  this.copyBtns.forEach((a) => {
8518
8562
  a.addEventListener("click", () => {
8519
8563
  const e = a.parentElement?.nextElementSibling?.textContent;
8520
- e && Qi(e).then(() => {
8564
+ e && es(e).then(() => {
8521
8565
  a.textContent = "Success", setTimeout(() => {
8522
8566
  a.textContent = "Copy";
8523
8567
  }, 500);
@@ -8532,6 +8576,8 @@ let De = class extends re {
8532
8576
  });
8533
8577
  }
8534
8578
  render() {
8579
+ if (this.message?.type === "info")
8580
+ return this.renderInfoMessage(this.message);
8535
8581
  if (this.message?.type === "blocks") {
8536
8582
  const a = this.message?.data?.blocks ?? [];
8537
8583
  return u`<cb-blocks .blocks=${a}></cb-blocks>`;
@@ -8559,6 +8605,30 @@ let De = class extends re {
8559
8605
  </sl-button>
8560
8606
  </div>`;
8561
8607
  }
8608
+ renderInfoMessage(a) {
8609
+ return u`
8610
+ <div class="cb-message cb-bot-message-wrapper" part="cb-message">
8611
+ <div class="avatar info-avatar xsmall" part="info-avatar" style="margin-top:4px;">${this.renderInfoMessageAvatar(a)}</div>
8612
+ <div
8613
+ class="cb-message__content
8614
+ ${a.author}-message
8615
+ message-type-${a.type}"
8616
+ style="display: flex;"
8617
+ part="info-message-content"
8618
+ >
8619
+ <div class="cb-message-text">
8620
+ ${Pt(
8621
+ this._getMessageText(a).then((e) => u`${e}`)
8622
+ )}
8623
+ </div>
8624
+ </div>
8625
+ </div>
8626
+ `;
8627
+ }
8628
+ renderInfoMessageAvatar(a) {
8629
+ const e = a.data?.userAvatar || "";
8630
+ return e !== "" ? u` <img src="${e}" style="width: 24px;height: 24px;" /> ` : pe`${G(b.setting.infoIconSvg)}`;
8631
+ }
8562
8632
  renderMessage(a, e = "bot-message-content") {
8563
8633
  return u`
8564
8634
  <div
@@ -8574,7 +8644,7 @@ let De = class extends re {
8574
8644
  `;
8575
8645
  }
8576
8646
  async _getMessageText(a) {
8577
- return Zt(a.data.text);
8647
+ return Kt(a.data.text);
8578
8648
  }
8579
8649
  renderMessageContent(a) {
8580
8650
  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">
@@ -8583,7 +8653,7 @@ let De = class extends re {
8583
8653
  () => u`<div class="assistant-message-user-name">${a.data.userName}</div>`,
8584
8654
  () => null
8585
8655
  )}
8586
- ${Xt(
8656
+ ${Pt(
8587
8657
  this._getMessageText(a).then((e) => u`${e}`)
8588
8658
  )}
8589
8659
  </div>` : a.type === "file" ? u`${et(
@@ -8595,8 +8665,8 @@ let De = class extends re {
8595
8665
  (e) => e.name,
8596
8666
  (e) => u`<div>${e.name}</div>`
8597
8667
  )}` : u`<div class="cb-message-text">
8598
- ${Xt(
8599
- Zt(a.data.text?.toString() || "").then((e) => u`${e}`)
8668
+ ${Pt(
8669
+ Kt(a.data.text?.toString() || "").then((e) => u`${e}`)
8600
8670
  )}
8601
8671
  </div>`;
8602
8672
  }
@@ -8613,9 +8683,9 @@ let De = class extends re {
8613
8683
  renderBotMessageAvatar(a) {
8614
8684
  if (a.data.userName && a.data.userName !== "") {
8615
8685
  const e = a.data?.userAvatar || "";
8616
- return e !== "" ? u` <img src="${e}" style="width: 24px;height: 24px;" /> ` : me`${Y(b.setting.agentIconSvg)}`;
8686
+ return e !== "" ? u` <img src="${e}" style="width: 24px;height: 24px;" /> ` : pe`${G(b.setting.agentIconSvg)}`;
8617
8687
  }
8618
- return a.author === "system" ? me`${Y(b.setting.systemIconSvg)}` : me`${Y(b.setting.botIconSvg)}`;
8688
+ return a.author === "system" ? pe`${G(b.setting.systemIconSvg)}` : pe`${G(b.setting.botIconSvg)}`;
8619
8689
  }
8620
8690
  renderBotMessage(a) {
8621
8691
  return u`
@@ -8629,8 +8699,8 @@ let De = class extends re {
8629
8699
  renderBotMessageFeedback(a) {
8630
8700
  return this.suppressFeedback || !b.setting.feedbackEnabled || this.index < b.setting.startFeedbackFromMessage * 2 ? null : u`
8631
8701
  <div class="cb-message-feedback-tools" part="feedback-wrapper">
8632
- <div class="cb-message-feedback-icon cb-feedback-up" part="feedback-up" @click="${() => this.startFeedback(!0, a)}">${me`${Y(ei)}`}</div>
8633
- <div class="cb-message-feedback-icon cb-feedback-down" part="feedback-down" @click="${() => this.startFeedback(!1, a)}">${me`${Y(ti)}`}</div>
8702
+ <div class="cb-message-feedback-icon cb-feedback-up" part="feedback-up" @click="${() => this.startFeedback(!0, a)}">${pe`${G(ti)}`}</div>
8703
+ <div class="cb-message-feedback-icon cb-feedback-down" part="feedback-down" @click="${() => this.startFeedback(!1, a)}">${pe`${G(ai)}`}</div>
8634
8704
  </div>
8635
8705
  `;
8636
8706
  }
@@ -8647,12 +8717,12 @@ let De = class extends re {
8647
8717
  ${W(
8648
8718
  b.appearanceUserMessageAvatarPosition === "left",
8649
8719
  () => u`
8650
- <div class="avatar user-avatar" part="user-avatar">${Y(b.setting.userIconSvg)}</div>
8720
+ <div class="avatar user-avatar" part="user-avatar">${G(b.setting.userIconSvg)}</div>
8651
8721
  ${this.renderMessage(a, "user-message-content")}
8652
8722
  `,
8653
8723
  () => u`
8654
8724
  ${this.renderMessage(a, "user-message-content")}
8655
- <div class="avatar user-avatar" part="user-avatar">${Y(b.setting.userIconSvg)}</div>
8725
+ <div class="avatar user-avatar" part="user-avatar">${G(b.setting.userIconSvg)}</div>
8656
8726
  `
8657
8727
  )}
8658
8728
  </div>
@@ -8670,12 +8740,12 @@ let De = class extends re {
8670
8740
  ${W(
8671
8741
  b.appearanceUserMessageAvatarPosition === "left",
8672
8742
  () => u`
8673
- <div class="avatar user-avatar">${Y(b.setting.userIconSvg)}</div>
8743
+ <div class="avatar user-avatar">${G(b.setting.userIconSvg)}</div>
8674
8744
  ${this.renderMessage(a, "user-message-content")}
8675
8745
  `,
8676
8746
  () => u`
8677
8747
  ${this.renderMessage(a, "user-message-content")}
8678
- <div class="avatar user-avatar">${Y(b.setting.userIconSvg)}</div>
8748
+ <div class="avatar user-avatar">${G(b.setting.userIconSvg)}</div>
8679
8749
  `
8680
8750
  )}
8681
8751
  </div>
@@ -8702,7 +8772,7 @@ nt([
8702
8772
  Va("img")
8703
8773
  ], De.prototype, "glightboxImages", 2);
8704
8774
  De = nt([
8705
- K("cb-message")
8775
+ Z("cb-message")
8706
8776
  ], De);
8707
8777
  var kn = Object.defineProperty, _n = Object.getOwnPropertyDescriptor, Te = (a, e, t, i) => {
8708
8778
  for (var s = i > 1 ? void 0 : i ? _n(e, t) : e, r = a.length - 1, o; r >= 0; r--)
@@ -8756,8 +8826,8 @@ let ye = class extends re {
8756
8826
  return !b.setting.disclaimerMessage || !b.isConversationStart() ? null : u`
8757
8827
  <details class="cb-disclaimer-wrapper" part="disclaimer-wrapper">
8758
8828
  <summary class="cb-disclaimer-message" part="disclaimer-message">
8759
- ${Xt(
8760
- Zt(b.setting.disclaimerMessage).then((a) => u`${a}`)
8829
+ ${Pt(
8830
+ Kt(b.setting.disclaimerMessage).then((a) => u`${a}`)
8761
8831
  )}
8762
8832
  </summary>
8763
8833
  </details>
@@ -9021,7 +9091,7 @@ let ye = class extends re {
9021
9091
  `;
9022
9092
  }
9023
9093
  };
9024
- ye.styles = Bs;
9094
+ ye.styles = js;
9025
9095
  Te([
9026
9096
  x({ type: Array })
9027
9097
  ], ye.prototype, "messages", 2);
@@ -9050,7 +9120,7 @@ Te([
9050
9120
  sa({ capture: !1, passive: !0 })
9051
9121
  ], ye.prototype, "invokeHubspotMeetingAction", 1);
9052
9122
  ye = Te([
9053
- K("cb-message-list")
9123
+ Z("cb-message-list")
9054
9124
  ], ye);
9055
9125
  const Sn = J`
9056
9126
  ${ke}
@@ -9094,7 +9164,7 @@ const Sn = J`
9094
9164
  align-items: center;
9095
9165
  margin: 6px 2px;
9096
9166
  }
9097
- `, ai = '<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>', ii = '<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>', si = '<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>';
9167
+ `, ii = '<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>', si = '<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>', ni = '<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>';
9098
9168
  var Cn = Object.defineProperty, An = Object.getOwnPropertyDescriptor, Ie = (a, e, t, i) => {
9099
9169
  for (var s = i > 1 ? void 0 : i ? An(e, t) : e, r = a.length - 1, o; r >= 0; r--)
9100
9170
  (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
@@ -9135,7 +9205,7 @@ let ve = class extends re {
9135
9205
  });
9136
9206
  }
9137
9207
  async _sendFileHandler() {
9138
- const a = await Ga(!1);
9208
+ const a = await Ga(!1, b.setting.fileUploadEnabledExtensions);
9139
9209
  this.emit("message:send:file", {
9140
9210
  detail: {
9141
9211
  files: a
@@ -9174,7 +9244,7 @@ let ve = class extends re {
9174
9244
  ${W(
9175
9245
  b.setting.sendIconSvg !== "",
9176
9246
  () => u`<cb-icon part="user-input-send-icon" svg="${b.setting.sendIconSvg}"></cb-icon>`,
9177
- () => u`<cb-icon part="user-input-send-icon" svg="${ai}"></cb-icon>`
9247
+ () => u`<cb-icon part="user-input-send-icon" svg="${ii}"></cb-icon>`
9178
9248
  )}
9179
9249
  </sl-button>
9180
9250
  ${W(
@@ -9184,7 +9254,7 @@ let ve = class extends re {
9184
9254
  ${W(
9185
9255
  b.setting.attachIconSvg !== "",
9186
9256
  () => u`<cb-icon part="user-input-attach-icon" svg="${b.setting.attachIconSvg}"></cb-icon>`,
9187
- () => u`<cb-icon part="user-input-attach-icon" svg="${ii}"></cb-icon>`
9257
+ () => u`<cb-icon part="user-input-attach-icon" svg="${si}"></cb-icon>`
9188
9258
  )}
9189
9259
  <!-- select file input -->
9190
9260
  <input type="file" id="file" name="file" class="file-input" />
@@ -9199,7 +9269,7 @@ let ve = class extends re {
9199
9269
  ${W(
9200
9270
  b.webAudioStarted,
9201
9271
  () => u`<cb-icon svg="${la}"></cb-icon>`,
9202
- () => u`<cb-icon svg="${si}"></cb-icon>`
9272
+ () => u`<cb-icon svg="${ni}"></cb-icon>`
9203
9273
  )}
9204
9274
  </sl-button>
9205
9275
  `,
@@ -9242,7 +9312,7 @@ Ie([
9242
9312
  xe("sl-textarea")
9243
9313
  ], ve.prototype, "inputElement", 2);
9244
9314
  ve = Ie([
9245
- K("cb-user-input")
9315
+ Z("cb-user-input")
9246
9316
  ], ve);
9247
9317
  const Mn = J`
9248
9318
  ${ke}
@@ -9349,7 +9419,7 @@ let we = class extends re {
9349
9419
  });
9350
9420
  }
9351
9421
  async _sendFileHandler() {
9352
- const a = await Ga(!1);
9422
+ const a = await Ga(!1, b.setting.fileUploadEnabledExtensions);
9353
9423
  this.emit("message:send:file", {
9354
9424
  detail: {
9355
9425
  files: a
@@ -9399,7 +9469,7 @@ let we = class extends re {
9399
9469
  this.enableFileUpload,
9400
9470
  () => u`
9401
9471
  <button type="button" class="circle-btn" part="upload-button" title="Upload" @click=${this._sendFileHandler}>
9402
- ${Y(Tn)}
9472
+ ${G(Tn)}
9403
9473
  </button>
9404
9474
  `,
9405
9475
  () => u``
@@ -9419,7 +9489,7 @@ let we = class extends re {
9419
9489
  @keydown=${this._keyDownHandler}
9420
9490
  ></sl-textarea>
9421
9491
  <button type="button" class="circle-btn ${this.getCtrlClass()}" part="control-button" @click=${this._ctrlHandler}>
9422
- ${Y(this.getCtrlIconSvg())}
9492
+ ${G(this.getCtrlIconSvg())}
9423
9493
  </button>
9424
9494
  </div>
9425
9495
  </div>
@@ -9454,7 +9524,7 @@ let we = class extends re {
9454
9524
  ${W(
9455
9525
  b.setting.sendIconSvg !== "",
9456
9526
  () => u`<cb-icon part="user-input-send-icon" svg="${b.setting.sendIconSvg}"></cb-icon>`,
9457
- () => u`<cb-icon part="user-input-send-icon" svg="${ai}"></cb-icon>`
9527
+ () => u`<cb-icon part="user-input-send-icon" svg="${ii}"></cb-icon>`
9458
9528
  )}
9459
9529
  </sl-button>
9460
9530
  ${W(
@@ -9464,7 +9534,7 @@ let we = class extends re {
9464
9534
  ${W(
9465
9535
  b.setting.attachIconSvg !== "",
9466
9536
  () => u`<cb-icon part="user-input-attach-icon" svg="${b.setting.attachIconSvg}"></cb-icon>`,
9467
- () => u`<cb-icon part="user-input-attach-icon" svg="${ii}"></cb-icon>`
9537
+ () => u`<cb-icon part="user-input-attach-icon" svg="${si}"></cb-icon>`
9468
9538
  )}
9469
9539
  <!-- select file input -->
9470
9540
  <input type="file" id="file" name="file" class="file-input" />
@@ -9479,7 +9549,7 @@ let we = class extends re {
9479
9549
  ${W(
9480
9550
  b.webAudioStarted,
9481
9551
  () => u`<cb-icon svg="${la}"></cb-icon>`,
9482
- () => u`<cb-icon svg="${si}"></cb-icon>`
9552
+ () => u`<cb-icon svg="${ni}"></cb-icon>`
9483
9553
  )}
9484
9554
  </sl-button>
9485
9555
  `,
@@ -9522,9 +9592,9 @@ Ee([
9522
9592
  xe("sl-textarea")
9523
9593
  ], we.prototype, "inputElement", 2);
9524
9594
  we = Ee([
9525
- K("cb-user-input-mm")
9595
+ Z("cb-user-input-mm")
9526
9596
  ], we);
9527
- const ni = '<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`
9597
+ const ri = '<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`
9528
9598
  ${ke}
9529
9599
 
9530
9600
  sl-dialog::part(base) {
@@ -9559,7 +9629,7 @@ const ni = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="c
9559
9629
  gap: 8px;
9560
9630
  }
9561
9631
  `;
9562
- var Ln = Object.defineProperty, Rn = Object.getOwnPropertyDescriptor, Ht = (a, e, t, i) => {
9632
+ var Ln = Object.defineProperty, Rn = Object.getOwnPropertyDescriptor, Vt = (a, e, t, i) => {
9563
9633
  for (var s = i > 1 ? void 0 : i ? Rn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
9564
9634
  (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
9565
9635
  return i && s && Ln(e, t, s), s;
@@ -9595,7 +9665,7 @@ let ct = class extends re {
9595
9665
  <cb-icon
9596
9666
  color="default"
9597
9667
  style="font-size: 1em;"
9598
- svg="${ni}"
9668
+ svg="${ri}"
9599
9669
  ></cb-icon>
9600
9670
  </sl-button>
9601
9671
  </header>
@@ -9609,24 +9679,24 @@ let ct = class extends re {
9609
9679
  }
9610
9680
  };
9611
9681
  ct.styles = Pn;
9612
- Ht([
9682
+ Vt([
9613
9683
  x({ type: Boolean })
9614
9684
  ], ct.prototype, "open", 2);
9615
- Ht([
9685
+ Vt([
9616
9686
  x({ type: String, attribute: "label" })
9617
9687
  ], ct.prototype, "label", 2);
9618
- Ht([
9688
+ Vt([
9619
9689
  x({ type: Number })
9620
9690
  ], ct.prototype, "zindex", 2);
9621
- ct = Ht([
9622
- K("cb-dialog")
9691
+ ct = Vt([
9692
+ Z("cb-dialog")
9623
9693
  ], ct);
9624
- var zn = Object.defineProperty, On = Object.getOwnPropertyDescriptor, ri = (a, e, t, i) => {
9694
+ var zn = Object.defineProperty, On = Object.getOwnPropertyDescriptor, oi = (a, e, t, i) => {
9625
9695
  for (var s = i > 1 ? void 0 : i ? On(e, t) : e, r = a.length - 1, o; r >= 0; r--)
9626
9696
  (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
9627
9697
  return i && s && zn(e, t, s), s;
9628
9698
  };
9629
- let qt = class extends re {
9699
+ let Dt = class extends re {
9630
9700
  constructor() {
9631
9701
  super(...arguments), this.open = !1;
9632
9702
  }
@@ -9660,7 +9730,7 @@ let qt = class extends re {
9660
9730
  this.emit("cancel");
9661
9731
  }
9662
9732
  };
9663
- qt.styles = J`
9733
+ Dt.styles = J`
9664
9734
  .cb-clear-message-dialog {
9665
9735
  }
9666
9736
 
@@ -9668,12 +9738,12 @@ qt.styles = J`
9668
9738
  z-index: 1000;
9669
9739
  }
9670
9740
  `;
9671
- ri([
9741
+ oi([
9672
9742
  x({ type: Boolean })
9673
- ], qt.prototype, "open", 2);
9674
- qt = ri([
9675
- K("cb-clear-message-dialog")
9676
- ], qt);
9743
+ ], Dt.prototype, "open", 2);
9744
+ Dt = oi([
9745
+ Z("cb-clear-message-dialog")
9746
+ ], Dt);
9677
9747
  const Bn = J`
9678
9748
  :host {
9679
9749
  // width: 380px;
@@ -9875,7 +9945,7 @@ dt([
9875
9945
  x({ type: Boolean })
9876
9946
  ], Xe.prototype, "customRequest", 2);
9877
9947
  Xe = dt([
9878
- K("cb-setting")
9948
+ Z("cb-setting")
9879
9949
  ], Xe);
9880
9950
  const Fn = J`
9881
9951
  ${ke}
@@ -9991,12 +10061,12 @@ const Fn = J`
9991
10061
  margin: 4px 4px 0px 0px;
9992
10062
  }
9993
10063
  `;
9994
- var jn = Object.defineProperty, Hn = Object.getOwnPropertyDescriptor, oi = (a, e, t, i) => {
10064
+ var jn = Object.defineProperty, Hn = Object.getOwnPropertyDescriptor, ci = (a, e, t, i) => {
9995
10065
  for (var s = i > 1 ? void 0 : i ? Hn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
9996
10066
  (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
9997
10067
  return i && s && jn(e, t, s), s;
9998
10068
  };
9999
- let Dt = class extends re {
10069
+ let Ft = class extends re {
10000
10070
  constructor() {
10001
10071
  super(...arguments), this.store = new it(this, b), this.open = !1;
10002
10072
  }
@@ -10028,7 +10098,7 @@ let Dt = class extends re {
10028
10098
  return a = b.appearanceAnchorBadgeVariant, a;
10029
10099
  }
10030
10100
  renderPopupLogo() {
10031
- return b.setting.popupLogoUrl !== "" ? u`<img class="cb-engage-popup-img" src="${b.setting.popupLogoUrl}" />` : b.setting.popupLogoSvg !== "" ? u`<div class="cb-engage-popup-logo">${me`${Y(b.setting.popupLogoSvg)}`}</div>` : b.setting.logoUrl !== "" ? u`<img class="cb-engage-popup-img" src="${b.setting.logoUrl}" />` : b.setting.logoSvg !== "" ? u`<div class="cb-engage-popup-logo">${me`${Y(b.setting.logoSvg)}`}</div>` : null;
10101
+ return b.setting.popupLogoUrl !== "" ? u`<img class="cb-engage-popup-img" src="${b.setting.popupLogoUrl}" />` : b.setting.popupLogoSvg !== "" ? u`<div class="cb-engage-popup-logo">${pe`${G(b.setting.popupLogoSvg)}`}</div>` : b.setting.logoUrl !== "" ? u`<img class="cb-engage-popup-img" src="${b.setting.logoUrl}" />` : b.setting.logoSvg !== "" ? u`<div class="cb-engage-popup-logo">${pe`${G(b.setting.logoSvg)}`}</div>` : null;
10032
10102
  }
10033
10103
  render() {
10034
10104
  return u`
@@ -10037,8 +10107,8 @@ let Dt = class extends re {
10037
10107
  <sl-button slot="anchor" label="Start" size="large" variant="primary" class="anchor-button" circle>
10038
10108
  ${W(
10039
10109
  this.open,
10040
- () => u`<div class="cb-anchor-icon" part="anchor-icon">${me`${Y(b.setting.anchorCloseSvg)}`}</div>`,
10041
- () => u`<div class="cb-anchor-icon" part="anchor-icon">${me`${Y(b.setting.anchorOpenSvg)}`}</div>`
10110
+ () => u`<div class="cb-anchor-icon" part="anchor-icon">${pe`${G(b.setting.anchorCloseSvg)}`}</div>`,
10111
+ () => u`<div class="cb-anchor-icon" part="anchor-icon">${pe`${G(b.setting.anchorOpenSvg)}`}</div>`
10042
10112
  )}
10043
10113
  ${W(
10044
10114
  !this.open && b.unreadMessages > 0,
@@ -10047,7 +10117,7 @@ let Dt = class extends re {
10047
10117
  )}
10048
10118
  </sl-button>
10049
10119
  <div class="cb-engage-popup">
10050
- <div class="cb-engage-popup-close" @click=${this._engageClickHandler.bind(this)}>${me`${Y(ni)}`}</div>
10120
+ <div class="cb-engage-popup-close" @click=${this._engageClickHandler.bind(this)}>${pe`${G(ri)}`}</div>
10051
10121
  <div class="cb-engage-popup-content">
10052
10122
  ${this.renderPopupLogo()}
10053
10123
  <div>${b.setting.engageMessage}</div>
@@ -10058,17 +10128,17 @@ let Dt = class extends re {
10058
10128
  `;
10059
10129
  }
10060
10130
  };
10061
- Dt.styles = Fn;
10062
- oi([
10131
+ Ft.styles = Fn;
10132
+ ci([
10063
10133
  x({ type: Boolean })
10064
- ], Dt.prototype, "open", 2);
10065
- Dt = oi([
10066
- K("cb-anchor")
10067
- ], Dt);
10134
+ ], Ft.prototype, "open", 2);
10135
+ Ft = ci([
10136
+ Z("cb-anchor")
10137
+ ], Ft);
10068
10138
  const Vn = J`
10069
10139
  ${ke}
10070
10140
  `, 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>', Nn = '<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>', 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>';
10071
- var Gn = Object.defineProperty, Xn = Object.getOwnPropertyDescriptor, ci = (a, e, t, i) => {
10141
+ var Gn = Object.defineProperty, Xn = Object.getOwnPropertyDescriptor, li = (a, e, t, i) => {
10072
10142
  for (var s = i > 1 ? void 0 : i ? Xn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
10073
10143
  (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
10074
10144
  return i && s && Gn(e, t, s), s;
@@ -10095,7 +10165,7 @@ const Ba = {
10095
10165
  icon: Wn
10096
10166
  }
10097
10167
  };
10098
- let Ft = class extends re {
10168
+ let jt = class extends re {
10099
10169
  constructor() {
10100
10170
  super(...arguments), this.status = "info";
10101
10171
  }
@@ -10104,13 +10174,13 @@ let Ft = class extends re {
10104
10174
  return u`<cb-icon svg=${e} color="${a}"></cb-icon>`;
10105
10175
  }
10106
10176
  };
10107
- Ft.styles = Wa;
10108
- ci([
10177
+ jt.styles = Wa;
10178
+ li([
10109
10179
  x({ type: String })
10110
- ], Ft.prototype, "status", 2);
10111
- Ft = ci([
10112
- K("cb-status-icon")
10113
- ], Ft);
10180
+ ], jt.prototype, "status", 2);
10181
+ jt = li([
10182
+ Z("cb-status-icon")
10183
+ ], jt);
10114
10184
  var Yn = Object.getOwnPropertyDescriptor, Jn = (a, e, t, i) => {
10115
10185
  for (var s = i > 1 ? void 0 : i ? Yn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
10116
10186
  (o = a[r]) && (s = o(s) || s);
@@ -10134,9 +10204,9 @@ let Qt = class extends re {
10134
10204
  };
10135
10205
  Qt.styles = Vn;
10136
10206
  Qt = Jn([
10137
- K("cb-auth-alert")
10207
+ Z("cb-auth-alert")
10138
10208
  ], Qt);
10139
- const Kn = J`
10209
+ const Zn = J`
10140
10210
  sl-dialog::part(base) {
10141
10211
  z-index: 1000;
10142
10212
  }
@@ -10220,10 +10290,10 @@ const Kn = J`
10220
10290
  filter: alpha(opacity=80);
10221
10291
  }
10222
10292
  `;
10223
- var Zn = Object.defineProperty, Qn = Object.getOwnPropertyDescriptor, ft = (a, e, t, i) => {
10293
+ var Kn = Object.defineProperty, Qn = Object.getOwnPropertyDescriptor, ft = (a, e, t, i) => {
10224
10294
  for (var s = i > 1 ? void 0 : i ? Qn(e, t) : e, r = a.length - 1, o; r >= 0; r--)
10225
10295
  (o = a[r]) && (s = (i ? o(e, t, s) : o(s)) || s);
10226
- return i && s && Zn(e, t, s), s;
10296
+ return i && s && Kn(e, t, s), s;
10227
10297
  };
10228
10298
  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>';
10229
10299
  let Ye = class extends re {
@@ -10259,7 +10329,7 @@ let Ye = class extends re {
10259
10329
  b.feedbackScore = 0;
10260
10330
  }}"
10261
10331
  >
10262
- ${me`${Y(ti)}`}
10332
+ ${pe`${G(ai)}`}
10263
10333
  </div>
10264
10334
  <sl-rating id="cb-feedback-rating-el" class="cb-feedback-rating" @sl-change="${this._ratingChangeHandler}" label="Rating" precision="1" .value=${b.feedbackScore}></sl-rating>
10265
10335
  <div
@@ -10268,7 +10338,7 @@ let Ye = class extends re {
10268
10338
  b.feedbackScore = 5;
10269
10339
  }}"
10270
10340
  >
10271
- ${me`${Y(ei)}`}
10341
+ ${pe`${G(ti)}`}
10272
10342
  </div>
10273
10343
  </div>
10274
10344
  <div style="display: flex">
@@ -10289,7 +10359,7 @@ let Ye = class extends re {
10289
10359
  this._comments.value = "", await b.submitFeedback(a, e, t);
10290
10360
  }
10291
10361
  };
10292
- Ye.styles = Kn;
10362
+ Ye.styles = Zn;
10293
10363
  ft([
10294
10364
  x({ type: Number })
10295
10365
  ], Ye.prototype, "zindex", 2);
@@ -10306,7 +10376,7 @@ ft([
10306
10376
  xe("#cb-feedback-email-el")
10307
10377
  ], Ye.prototype, "_email", 2);
10308
10378
  Ye = ft([
10309
- K("cb-dialog-feedback")
10379
+ Z("cb-dialog-feedback")
10310
10380
  ], Ye);
10311
10381
  const tr = J`
10312
10382
  ${ke}
@@ -10616,7 +10686,7 @@ class ar extends HTMLElement {
10616
10686
  }
10617
10687
  customElements.get("volume-visualizer") || customElements.define("volume-visualizer", ar);
10618
10688
  const da = 1, Da = 2;
10619
- class li extends HTMLElement {
10689
+ class di extends HTMLElement {
10620
10690
  constructor() {
10621
10691
  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();
10622
10692
  }
@@ -10698,7 +10768,7 @@ class li extends HTMLElement {
10698
10768
  this._stop(), this._analyserInput = null, this._analyserOutput = null;
10699
10769
  }
10700
10770
  }
10701
- class ir extends li {
10771
+ class ir extends di {
10702
10772
  constructor() {
10703
10773
  super(), this._ribbons = [], this._lastTime = 0, this._ribbons.push(
10704
10774
  new It(
@@ -10769,8 +10839,8 @@ class It {
10769
10839
  if (v === 0)
10770
10840
  e.moveTo(k, w);
10771
10841
  else {
10772
- const _ = (v - 1) * o, P = this.renderPoints[v - 1] * i * 0.8, I = _ + o * 0.5, M = P, L = k - o * 0.5, C = w;
10773
- e.bezierCurveTo(I, M, L, C, k, w);
10842
+ const _ = (v - 1) * o, P = this.renderPoints[v - 1] * i * 0.8, E = _ + o * 0.5, M = P, L = k - o * 0.5, C = w;
10843
+ e.bezierCurveTo(E, M, L, C, k, w);
10774
10844
  }
10775
10845
  }
10776
10846
  e.lineTo(t, 0), e.lineTo(0, 0), s === da && !r ? this.currentColorRGB = this._lerpColor(this.currentColorRGB, this.inputColorRGB, 0.02) : this.currentColorRGB = this._lerpColor(this.currentColorRGB, this.outputColorRGB, 0.02);
@@ -10801,7 +10871,7 @@ class It {
10801
10871
  }
10802
10872
  }
10803
10873
  }
10804
- class sr extends li {
10874
+ class sr extends di {
10805
10875
  constructor() {
10806
10876
  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;
10807
10877
  }
@@ -10843,8 +10913,8 @@ class sr extends li {
10843
10913
  for (let w = 0; w < this._numBars; w++) {
10844
10914
  const _ = this._renderHeights[w] * t.height * 0.9, P = p - (w + 1) * (f * 1.2);
10845
10915
  e.fillRect(P, v - _ / 2, f, _);
10846
- const I = p + w * (f * 1.2);
10847
- e.fillRect(I, v - _ / 2, f, _);
10916
+ const E = p + w * (f * 1.2);
10917
+ e.fillRect(E, v - _ / 2, f, _);
10848
10918
  }
10849
10919
  e.restore();
10850
10920
  }
@@ -10863,7 +10933,7 @@ let ea = class extends re {
10863
10933
  super(...arguments), this.store = new it(this, b), this.unsubscribeTypingActive = b.subscribe(
10864
10934
  this._handleTypingActiveChanged.bind(this),
10865
10935
  ["typingActive"]
10866
- ), this.volumeVisualizerRef = Di(), this.volumeVisualizerInitialized = !1;
10936
+ ), this.volumeVisualizerRef = Fi(), this.volumeVisualizerInitialized = !1;
10867
10937
  }
10868
10938
  /*
10869
10939
  createRenderRoot() {
@@ -10893,7 +10963,7 @@ let ea = class extends re {
10893
10963
  !0,
10894
10964
  () => u`
10895
10965
  <button type="button" part="${b.webAudioMuted ? "audio-unmute-button" : "audio-mute-button"}" class="circle-btn ${b.webAudioMuted ? "danger" : "clear"}" title="${b.webAudioMuted ? "Unmute" : "Mute"}" @click=${this._toggleMute}>
10896
- ${Y(nr)}
10966
+ ${G(nr)}
10897
10967
  </button>
10898
10968
  `,
10899
10969
  () => u``
@@ -10902,7 +10972,7 @@ let ea = class extends re {
10902
10972
  ${this.renderVisualizer()}
10903
10973
  </div>
10904
10974
  <button type="button" part="audio-end-button" class="circle-btn clear" title="End" @click=${this._toggleHangup}>
10905
- ${Y(la)}
10975
+ ${G(la)}
10906
10976
  </button>
10907
10977
  </div>
10908
10978
  </div>` : null;
@@ -10960,7 +11030,7 @@ let ea = class extends re {
10960
11030
  };
10961
11031
  ea.styles = tr;
10962
11032
  ea = or([
10963
- K("cb-audio-controls")
11033
+ Z("cb-audio-controls")
10964
11034
  ], ea);
10965
11035
  class ta extends Error {
10966
11036
  response;
@@ -10971,7 +11041,7 @@ class ta extends Error {
10971
11041
  super(`Request failed with ${f}: ${t.method} ${t.url}`), this.name = "HTTPError", this.response = e, this.request = t, this.options = i;
10972
11042
  }
10973
11043
  }
10974
- class di extends Error {
11044
+ class fi extends Error {
10975
11045
  name = "NonError";
10976
11046
  value;
10977
11047
  constructor(e) {
@@ -10983,13 +11053,13 @@ class di extends Error {
10983
11053
  super(t), this.value = e;
10984
11054
  }
10985
11055
  }
10986
- class Wt extends Error {
11056
+ class Gt extends Error {
10987
11057
  name = "ForceRetryError";
10988
11058
  customDelay;
10989
11059
  code;
10990
11060
  customRequest;
10991
11061
  constructor(e) {
10992
- const t = e?.cause ? e.cause instanceof Error ? e.cause : new di(e.cause) : void 0;
11062
+ const t = e?.cause ? e.cause instanceof Error ? e.cause : new fi(e.cause) : void 0;
10993
11063
  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;
10994
11064
  }
10995
11065
  }
@@ -11012,7 +11082,7 @@ const Fa = (() => {
11012
11082
  throw s;
11013
11083
  }
11014
11084
  return a && !e;
11015
- })(), cr = typeof globalThis.AbortController == "function", fi = typeof globalThis.AbortSignal == "function" && typeof globalThis.AbortSignal.any == "function", lr = typeof globalThis.ReadableStream == "function", dr = typeof globalThis.FormData == "function", hi = ["get", "post", "put", "patch", "head", "delete"], fr = {
11085
+ })(), cr = typeof globalThis.AbortController == "function", hi = typeof globalThis.AbortSignal == "function" && typeof globalThis.AbortSignal.any == "function", lr = typeof globalThis.ReadableStream == "function", dr = typeof globalThis.FormData == "function", bi = ["get", "post", "put", "patch", "head", "delete"], fr = {
11016
11086
  json: "application/json",
11017
11087
  text: "text/*",
11018
11088
  formData: "multipart/form-data",
@@ -11021,14 +11091,14 @@ const Fa = (() => {
11021
11091
  // Supported in modern Fetch implementations (for example, browsers and recent Node.js/undici).
11022
11092
  // We still feature-check at runtime before exposing the shortcut.
11023
11093
  bytes: "*/*"
11024
- }, Gt = 2147483647, hr = new TextEncoder().encode("------WebKitFormBoundaryaxpyiPgbbPti10Rw").length, bi = Symbol("stop");
11025
- class ui {
11094
+ }, Xt = 2147483647, hr = new TextEncoder().encode("------WebKitFormBoundaryaxpyiPgbbPti10Rw").length, ui = Symbol("stop");
11095
+ class pi {
11026
11096
  options;
11027
11097
  constructor(e) {
11028
11098
  this.options = e;
11029
11099
  }
11030
11100
  }
11031
- const br = (a) => new ui(a), ur = {
11101
+ const br = (a) => new pi(a), ur = {
11032
11102
  json: !0,
11033
11103
  parseJson: !0,
11034
11104
  stringifyJson: !0,
@@ -11087,7 +11157,7 @@ const br = (a) => new ui(a), ur = {
11087
11157
  return 0;
11088
11158
  }
11089
11159
  return 0;
11090
- }, pi = (a, e, t) => {
11160
+ }, gi = (a, e, t) => {
11091
11161
  let i, s = 0;
11092
11162
  return a.pipeThrough(new TransformStream({
11093
11163
  transform(r, o) {
@@ -11112,7 +11182,7 @@ const br = (a) => new ui(a), ur = {
11112
11182
  headers: a.headers
11113
11183
  });
11114
11184
  const t = Math.max(0, Number(a.headers.get("content-length")) || 0);
11115
- return new Response(pi(a.body, t, e), {
11185
+ return new Response(gi(a.body, t, e), {
11116
11186
  status: a.status,
11117
11187
  statusText: a.statusText,
11118
11188
  headers: a.headers
@@ -11124,14 +11194,14 @@ const br = (a) => new ui(a), ur = {
11124
11194
  return new Request(a, {
11125
11195
  // @ts-expect-error - Types are outdated.
11126
11196
  duplex: "half",
11127
- body: pi(a.body, i, e)
11197
+ body: gi(a.body, i, e)
11128
11198
  });
11129
11199
  }, Qe = (a) => a !== null && typeof a == "object", Et = (...a) => {
11130
11200
  for (const e of a)
11131
11201
  if ((!Qe(e) || Array.isArray(e)) && e !== void 0)
11132
11202
  throw new TypeError("The `options` argument must be an object");
11133
11203
  return fa({}, ...a);
11134
- }, gi = (a = {}, e = {}) => {
11204
+ }, mi = (a = {}, e = {}) => {
11135
11205
  const t = new globalThis.Headers(a), i = e instanceof globalThis.Headers, s = new globalThis.Headers(e);
11136
11206
  for (const [r, o] of s.entries())
11137
11207
  i && o === "undefined" || o === void 0 ? t.delete(r) : t.set(r, o);
@@ -11140,7 +11210,7 @@ const br = (a) => new ui(a), ur = {
11140
11210
  function $t(a, e, t) {
11141
11211
  return Object.hasOwn(e, t) && e[t] === void 0 ? [] : fa(a[t] ?? [], e[t] ?? []);
11142
11212
  }
11143
- const mi = (a = {}, e = {}) => ({
11213
+ const yi = (a = {}, e = {}) => ({
11144
11214
  beforeRequest: $t(a, e, "beforeRequest"),
11145
11215
  beforeRetry: $t(a, e, "beforeRetry"),
11146
11216
  afterResponse: $t(a, e, "afterResponse"),
@@ -11194,10 +11264,10 @@ const mi = (a = {}, e = {}) => ({
11194
11264
  }
11195
11265
  Qe(p) && f in e && (p = fa(e[f], p)), e = { ...e, [f]: p };
11196
11266
  }
11197
- Qe(o.hooks) && (i = mi(i, o.hooks), e.hooks = i), Qe(o.headers) && (t = gi(t, o.headers), e.headers = t);
11267
+ Qe(o.hooks) && (i = yi(i, o.hooks), e.hooks = i), Qe(o.headers) && (t = mi(t, o.headers), e.headers = t);
11198
11268
  }
11199
- return s !== void 0 && (e.searchParams = s), r.length > 0 && (r.length === 1 ? e.signal = r[0] : fi ? e.signal = AbortSignal.any(r) : e.signal = r.at(-1)), e.context === void 0 && (e.context = {}), e;
11200
- }, xr = (a) => hi.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 = {
11269
+ return s !== void 0 && (e.searchParams = s), r.length > 0 && (r.length === 1 ? e.signal = r[0] : hi ? e.signal = AbortSignal.any(r) : e.signal = r.at(-1)), e.context === void 0 && (e.context = {}), e;
11270
+ }, xr = (a) => bi.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 = {
11201
11271
  limit: 2,
11202
11272
  methods: kr,
11203
11273
  statusCodes: _r,
@@ -11264,17 +11334,17 @@ function $r(a) {
11264
11334
  class vt {
11265
11335
  static create(e, t) {
11266
11336
  const i = new vt(e, t), s = async () => {
11267
- if (typeof i.#e.timeout == "number" && i.#e.timeout > Gt)
11268
- throw new RangeError(`The \`timeout\` option cannot be greater than ${Gt}`);
11337
+ if (typeof i.#e.timeout == "number" && i.#e.timeout > Xt)
11338
+ throw new RangeError(`The \`timeout\` option cannot be greater than ${Xt}`);
11269
11339
  await Promise.resolve();
11270
11340
  let o = await i.#p();
11271
11341
  for (const f of i.#e.hooks.afterResponse) {
11272
11342
  const p = i.#d(o.clone()), v = await f(i.request, i.#o(), p, { retryCount: i.#a });
11273
- if (v instanceof globalThis.Response && (o = v), v instanceof ui)
11343
+ if (v instanceof globalThis.Response && (o = v), v instanceof pi)
11274
11344
  throw await Promise.all([
11275
11345
  p.body?.cancel(),
11276
11346
  o.body?.cancel()
11277
- ]), new Wt(v.options);
11347
+ ]), new Gt(v.options);
11278
11348
  }
11279
11349
  if (i.#d(o), !o.ok && (typeof i.#e.throwHttpErrors == "function" ? i.#e.throwHttpErrors(o.status) : i.#e.throwHttpErrors)) {
11280
11350
  let f = new ta(o, i.request, i.#o());
@@ -11325,8 +11395,8 @@ class vt {
11325
11395
  constructor(e, t = {}) {
11326
11396
  if (this.#t = e, this.#e = {
11327
11397
  ...t,
11328
- headers: gi(this.#t.headers, t.headers),
11329
- hooks: mi({
11398
+ headers: mi(this.#t.headers, t.headers),
11399
+ hooks: yi({
11330
11400
  beforeRequest: [],
11331
11401
  beforeRetry: [],
11332
11402
  beforeError: [],
@@ -11347,7 +11417,7 @@ class vt {
11347
11417
  throw new Error("`input` must not begin with a slash when using `prefixUrl`");
11348
11418
  this.#e.prefixUrl.endsWith("/") || (this.#e.prefixUrl += "/"), this.#t = this.#e.prefixUrl + this.#t;
11349
11419
  }
11350
- cr && fi && (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"));
11420
+ cr && hi && (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"));
11351
11421
  const i = t.headers && new globalThis.Headers(t.headers).has("content-type");
11352
11422
  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)) {
11353
11423
  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);
@@ -11369,8 +11439,8 @@ class vt {
11369
11439
  async #u(e) {
11370
11440
  if (this.#a++, this.#a > this.#e.retry.limit)
11371
11441
  throw e;
11372
- const t = e instanceof Error ? e : new di(e);
11373
- if (t instanceof Wt)
11442
+ const t = e instanceof Error ? e : new fi(e);
11443
+ if (t instanceof Gt)
11374
11444
  return t.customDelay ?? this.#c();
11375
11445
  if (!this.#e.retry.methods.includes(this.request.method.toLowerCase()))
11376
11446
  throw e;
@@ -11405,10 +11475,10 @@ class vt {
11405
11475
  try {
11406
11476
  return await e();
11407
11477
  } catch (t) {
11408
- const i = Math.min(await this.#u(t), Gt);
11478
+ const i = Math.min(await this.#u(t), Xt);
11409
11479
  if (this.#a < 1)
11410
11480
  throw t;
11411
- if (await Mr(i, this.#s ? { signal: this.#s } : {}), t instanceof Wt && t.customRequest) {
11481
+ if (await Mr(i, this.#s ? { signal: this.#s } : {}), t instanceof Gt && t.customRequest) {
11412
11482
  const s = this.#e.signal ? new globalThis.Request(t.customRequest, { signal: this.#e.signal }) : new globalThis.Request(t.customRequest);
11413
11483
  this.#l(s);
11414
11484
  }
@@ -11425,7 +11495,7 @@ class vt {
11425
11495
  }
11426
11496
  if (r instanceof globalThis.Response)
11427
11497
  return r;
11428
- if (r === bi)
11498
+ if (r === ui)
11429
11499
  return;
11430
11500
  }
11431
11501
  return this.#f(e);
@@ -11461,9 +11531,9 @@ class vt {
11461
11531
  }
11462
11532
  const ia = (a) => {
11463
11533
  const e = (t, i) => vt.create(t, Et(a, i));
11464
- for (const t of hi)
11534
+ for (const t of bi)
11465
11535
  e[t] = (i, s) => vt.create(i, Et(a, s, { method: t }));
11466
- return e.create = (t) => ia(Et(t)), e.extend = (t) => (typeof t == "function" && (t = t(a ?? {})), ia(Et(a, t))), e.stop = bi, e.retry = br, e;
11536
+ return e.create = (t) => ia(Et(t)), e.extend = (t) => (typeof t == "function" && (t = t(a ?? {})), ia(Et(a, t))), e.stop = ui, e.retry = br, e;
11467
11537
  }, Pr = ia();
11468
11538
  Pr.extend({
11469
11539
  hooks: {
@@ -11521,7 +11591,7 @@ let H = class extends re {
11521
11591
  <rect width="400" height="400" fill="white"/>
11522
11592
  </clipPath>
11523
11593
  </defs>
11524
- </svg>`, this.popupLogoSvg = "", this.popupLogoUrl = "", this.botIconSvg = '<svg fill="currentColor" width="24" height="24" viewBox="0 0 24 24"> <path d="M16 17V19H2V17S2 13 9 13 16 17 16 17M12.5 7.5A3.5 3.5 0 1 0 9 11A3.5 3.5 0 0 0 12.5 7.5M15.94 13A5.32 5.32 0 0 1 18 17V19H22V17S22 13.37 15.94 13M15 4A3.39 3.39 0 0 0 13.07 4.59A5 5 0 0 1 13.07 10.41A3.39 3.39 0 0 0 15 11A3.5 3.5 0 0 0 15 4Z" /></svg>', this.userIconSvg = '<svg fill="currentColor" viewBox="0 0 24 24" width="24" height="24"> <path d="M12 4a4 4 0 0 1 4 4a4 4 0 0 1-4 4a4 4 0 0 1-4-4a4 4 0 0 1 4-4m0 10c4.42 0 8 1.79 8 4v2H4v-2c0-2.21 3.58-4 8-4Z" /></svg>', this.systemIconSvg = '<svg fill="currentColor" width="24" height="24" viewBox="0 0 24 24"> <path d="M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M11,17H13V11H11V17Z"/></svg>', this.agentIconSvg = '<svg fill="currentColor" width="24" height="24" viewBox="0 0 24 24"> <path d="M18.72,14.76C19.07,13.91 19.26,13 19.26,12C19.26,11.28 19.15,10.59 18.96,9.95C18.31,10.1 17.63,10.18 16.92,10.18C13.86,10.18 11.15,8.67 9.5,6.34C8.61,8.5 6.91,10.26 4.77,11.22C4.73,11.47 4.73,11.74 4.73,12A7.27,7.27 0 0,0 12,19.27C13.05,19.27 14.06,19.04 14.97,18.63C15.54,19.72 15.8,20.26 15.78,20.26C14.14,20.81 12.87,21.08 12,21.08C9.58,21.08 7.27,20.13 5.57,18.42C4.53,17.38 3.76,16.11 3.33,14.73H2V10.18H3.09C3.93,6.04 7.6,2.92 12,2.92C14.4,2.92 16.71,3.87 18.42,5.58C19.69,6.84 20.54,8.45 20.89,10.18H22V14.67H22V14.69L22,14.73H21.94L18.38,18L13.08,17.4V15.73H17.91L18.72,14.76M9.27,11.77C9.57,11.77 9.86,11.89 10.07,12.11C10.28,12.32 10.4,12.61 10.4,12.91C10.4,13.21 10.28,13.5 10.07,13.71C9.86,13.92 9.57,14.04 9.27,14.04C8.64,14.04 8.13,13.54 8.13,12.91C8.13,12.28 8.64,11.77 9.27,11.77M14.72,11.77C15.35,11.77 15.85,12.28 15.85,12.91C15.85,13.54 15.35,14.04 14.72,14.04C14.09,14.04 13.58,13.54 13.58,12.91A1.14,1.14 0 0,1 14.72,11.77Z" /></svg>', this.anchorOpenSvg = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" d="M16 8c0 3.866-3.582 7-8 7a9 9 0 0 1-2.347-.306c-.584.296-1.925.864-4.181 1.234c-.2.032-.352-.176-.273-.362c.354-.836.674-1.95.77-2.966C.744 11.37 0 9.76 0 8c0-3.866 3.582-7 8-7s8 3.134 8 7M5 8a1 1 0 1 0-2 0a1 1 0 0 0 2 0m4 0a1 1 0 1 0-2 0a1 1 0 0 0 2 0m3 1a1 1 0 1 0 0-2a1 1 0 0 0 0 2"/></svg>', this.anchorCloseSvg = '<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>', this.sendIconSvg = "", this.attachIconSvg = "", this.stream = !1, this.customRequest = !1, this.enableFileUpload = !1, this.uploadFileUrl = "", this.open = !1, this.alwaysOpen = !1, this.prefilledFormFields = "{}", this.loading = !1, this.showSetting = !1, this.showAuthAlert = !1, this.handleAddMessage = (a) => {
11594
+ </svg>`, this.popupLogoSvg = "", this.popupLogoUrl = "", this.botIconSvg = '<svg fill="currentColor" width="24" height="24" viewBox="0 0 24 24"> <path d="M16 17V19H2V17S2 13 9 13 16 17 16 17M12.5 7.5A3.5 3.5 0 1 0 9 11A3.5 3.5 0 0 0 12.5 7.5M15.94 13A5.32 5.32 0 0 1 18 17V19H22V17S22 13.37 15.94 13M15 4A3.39 3.39 0 0 0 13.07 4.59A5 5 0 0 1 13.07 10.41A3.39 3.39 0 0 0 15 11A3.5 3.5 0 0 0 15 4Z" /></svg>', this.userIconSvg = '<svg fill="currentColor" viewBox="0 0 24 24" width="24" height="24"> <path d="M12 4a4 4 0 0 1 4 4a4 4 0 0 1-4 4a4 4 0 0 1-4-4a4 4 0 0 1 4-4m0 10c4.42 0 8 1.79 8 4v2H4v-2c0-2.21 3.58-4 8-4Z" /></svg>', this.systemIconSvg = '<svg fill="currentColor" width="24" height="24" viewBox="0 0 24 24"> <path d="M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M11,17H13V11H11V17Z"/></svg>', this.agentIconSvg = '<svg fill="currentColor" width="24" height="24" viewBox="0 0 24 24"> <path d="M18.72,14.76C19.07,13.91 19.26,13 19.26,12C19.26,11.28 19.15,10.59 18.96,9.95C18.31,10.1 17.63,10.18 16.92,10.18C13.86,10.18 11.15,8.67 9.5,6.34C8.61,8.5 6.91,10.26 4.77,11.22C4.73,11.47 4.73,11.74 4.73,12A7.27,7.27 0 0,0 12,19.27C13.05,19.27 14.06,19.04 14.97,18.63C15.54,19.72 15.8,20.26 15.78,20.26C14.14,20.81 12.87,21.08 12,21.08C9.58,21.08 7.27,20.13 5.57,18.42C4.53,17.38 3.76,16.11 3.33,14.73H2V10.18H3.09C3.93,6.04 7.6,2.92 12,2.92C14.4,2.92 16.71,3.87 18.42,5.58C19.69,6.84 20.54,8.45 20.89,10.18H22V14.67H22V14.69L22,14.73H21.94L18.38,18L13.08,17.4V15.73H17.91L18.72,14.76M9.27,11.77C9.57,11.77 9.86,11.89 10.07,12.11C10.28,12.32 10.4,12.61 10.4,12.91C10.4,13.21 10.28,13.5 10.07,13.71C9.86,13.92 9.57,14.04 9.27,14.04C8.64,14.04 8.13,13.54 8.13,12.91C8.13,12.28 8.64,11.77 9.27,11.77M14.72,11.77C15.35,11.77 15.85,12.28 15.85,12.91C15.85,13.54 15.35,14.04 14.72,14.04C14.09,14.04 13.58,13.54 13.58,12.91A1.14,1.14 0 0,1 14.72,11.77Z" /></svg>', this.infoIconSvg = '<svg fill="currentColor" width="24" height="24" viewBox="0 0 24 24"> <path d="M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M11,17H13V11H11V17Z" /></svg>', this.anchorOpenSvg = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" d="M16 8c0 3.866-3.582 7-8 7a9 9 0 0 1-2.347-.306c-.584.296-1.925.864-4.181 1.234c-.2.032-.352-.176-.273-.362c.354-.836.674-1.95.77-2.966C.744 11.37 0 9.76 0 8c0-3.866 3.582-7 8-7s8 3.134 8 7M5 8a1 1 0 1 0-2 0a1 1 0 0 0 2 0m4 0a1 1 0 1 0-2 0a1 1 0 0 0 2 0m3 1a1 1 0 1 0 0-2a1 1 0 0 0 0 2"/></svg>', this.anchorCloseSvg = '<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>', this.sendIconSvg = "", this.attachIconSvg = "", this.stream = !1, this.customRequest = !1, this.enableFileUpload = !1, this.uploadFileUrl = "", this.open = !1, this.alwaysOpen = !1, this.prefilledFormFields = "{}", this.loading = !1, this.showSetting = !1, this.showAuthAlert = !1, this.handleAddMessage = (a) => {
11525
11595
  this._addMessageHandler(a);
11526
11596
  }, this.handleStateEvent = (a) => {
11527
11597
  this._stateEventHandler(a);
@@ -11657,7 +11727,7 @@ let H = class extends re {
11657
11727
  _initSetting() {
11658
11728
  Be.info("_initSetting");
11659
11729
  const a = b.setting;
11660
- 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);
11730
+ 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.infoIconSvg = this.infoIconSvg, a.anchorOpenSvg = this.anchorOpenSvg, a.anchorCloseSvg = this.anchorCloseSvg, a.sendIconSvg = this.sendIconSvg, a.attachIconSvg = this.attachIconSvg, b.setSetting(a);
11661
11731
  let e = {};
11662
11732
  try {
11663
11733
  e = JSON.parse(this.prefilledFormFields);
@@ -11763,6 +11833,10 @@ let H = class extends re {
11763
11833
  return this._processSendMessage(e);
11764
11834
  }
11765
11835
  // [sv2] for testing only
11836
+ processAgentConnected(a) {
11837
+ b.handleAgentConnected(a).catch((e) => {
11838
+ });
11839
+ }
11766
11840
  processAgentDisconnected(a) {
11767
11841
  b.handleAgentDisconnected(a).catch((e) => {
11768
11842
  });
@@ -11818,7 +11892,7 @@ let H = class extends re {
11818
11892
  this._messageList?.scrollToBottom();
11819
11893
  }
11820
11894
  };
11821
- H.styles = [Wi, Ja];
11895
+ H.styles = [Gi, Za];
11822
11896
  N([
11823
11897
  x({ type: Boolean, attribute: "display-license" })
11824
11898
  ], H.prototype, "displayLicense", 2);
@@ -11861,6 +11935,9 @@ N([
11861
11935
  N([
11862
11936
  x({ type: String, attribute: "agent-icon-svg" })
11863
11937
  ], H.prototype, "agentIconSvg", 2);
11938
+ N([
11939
+ x({ type: String, attribute: "info-icon-svg" })
11940
+ ], H.prototype, "infoIconSvg", 2);
11864
11941
  N([
11865
11942
  x({ type: String, attribute: "anchor-open-svg" })
11866
11943
  ], H.prototype, "anchorOpenSvg", 2);
@@ -11907,7 +11984,7 @@ N([
11907
11984
  xe("cb-message-list")
11908
11985
  ], H.prototype, "_messageList", 2);
11909
11986
  H = N([
11910
- K("enegelai-bot")
11987
+ Z("enegelai-bot")
11911
11988
  ], H);
11912
11989
  export {
11913
11990
  H as default