@yuneta/gobj-js 7.26.2 → 7.26.4

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.
@@ -666,7 +666,7 @@
666
666
  t.parent && hn(`_add_child() ALREADY HAS PARENT: ${t.gobj_name}`), e.dl_children.push(t), t.parent = e;
667
667
  }
668
668
  function $e(e, t) {
669
- let n = Hr(e.dl_children, t);
669
+ let n = tl(e.dl_children, t);
670
670
  n >= 0 && (Hn(e.dl_children, n), t.parent = null);
671
671
  }
672
672
  function De(e, t) {
@@ -1098,7 +1098,7 @@
1098
1098
  if (1 === C) L(n("🔄 %s %s%s %s from %s%s", t || "", e.running ? "" : "!!", et(e), o.state_name, l && !l.running ? "!!" : "", et(l)));
1099
1099
  else {
1100
1100
  let r = "";
1101
- i.action && (r = Qr(i.action)), L(n("🔄 mach(%s%s^%s), st: %s, ev: %s%s%s, ac: %s, from(%s%s^%s)", e.running ? "" : "!!", Ze(e), Xe(e), o.state_name, "", t || "", "", r, l && !l.running ? "!!" : "", Ze(l), Xe(l)));
1101
+ i.action && (r = rl(i.action)), L(n("🔄 mach(%s%s^%s), st: %s, ev: %s%s%s, ac: %s, from(%s%s^%s)", e.running ? "" : "!!", Ze(e), Xe(e), o.state_name, "", t || "", "", r, l && !l.running ? "!!" : "", Ze(l), Xe(l)));
1102
1102
  }
1103
1103
  r && q(e) && zn(r) && Un(r);
1104
1104
  }
@@ -1161,21 +1161,21 @@
1161
1161
  };
1162
1162
  }
1163
1163
  function Kt(e, t, n, r, l, o) {
1164
- let s = vr(t, l, "__config__", null), i = vr(t, l, "__global__", null), _ = vr(t, l, "__local__", null), a = jr(t, l, "__filter__", null), u = !0;
1165
- if (t && t !== Tr(null, e, "publisher", null) && (u = !1), o && o !== Tr(null, e, "subscriber", null) && (u = !1), n && n !== Er(null, e, "event", "") && (u = !1), r && r !== Er(null, e, "renamed_event", "") && (u = !1), Xn(s) > 0) {
1166
- let t = vr(null, e, "__config__", null);
1164
+ let s = jr(t, l, "__config__", null), i = jr(t, l, "__global__", null), _ = jr(t, l, "__local__", null), a = Or(t, l, "__filter__", null), u = !0;
1165
+ if (t && t !== vr(null, e, "publisher", null) && (u = !1), o && o !== vr(null, e, "subscriber", null) && (u = !1), n && n !== Tr(null, e, "event", "") && (u = !1), r && r !== Tr(null, e, "renamed_event", "") && (u = !1), Xn(s) > 0) {
1166
+ let t = jr(null, e, "__config__", null);
1167
1167
  Xn(t) > 0 && Vn(t, s) || (u = !1);
1168
1168
  }
1169
1169
  if (Xn(i) > 0) {
1170
- let t = vr(null, e, "__global__", null);
1170
+ let t = jr(null, e, "__global__", null);
1171
1171
  Xn(t) > 0 && Vn(t, i) || (u = !1);
1172
1172
  }
1173
1173
  if (Xn(_) > 0) {
1174
- let t = vr(null, e, "__local__", null);
1174
+ let t = jr(null, e, "__local__", null);
1175
1175
  Xn(t) > 0 && Vn(t, _) || (u = !1);
1176
1176
  }
1177
1177
  if (Xn(a) > 0) {
1178
- let t = jr(null, e, "__filter__", null);
1178
+ let t = Or(null, e, "__filter__", null);
1179
1179
  Xn(t) > 0 && Vn(t, a) || (u = !1);
1180
1180
  }
1181
1181
  return u;
@@ -1192,8 +1192,8 @@
1192
1192
  return e.indexOf(t);
1193
1193
  }
1194
1194
  function Jt(e, t, r, l) {
1195
- let o = Tr(e, t, "publisher", null, Zt.KW_REQUIRED), s = Tr(e, t, "subscriber", null, Zt.KW_REQUIRED), i = Er(e, t, "event", "", Zt.KW_REQUIRED);
1196
- if (!!(yr(e, t, "subs_flag", null, Zt.KW_REQUIRED) & Gt.__hard_subscription__) && !r) return -1;
1195
+ let o = vr(e, t, "publisher", null, Zt.KW_REQUIRED), s = vr(e, t, "subscriber", null, Zt.KW_REQUIRED), i = Tr(e, t, "event", "", Zt.KW_REQUIRED);
1196
+ if (!!(Er(e, t, "subs_flag", null, Zt.KW_REQUIRED) & Gt.__hard_subscription__) && !r) return -1;
1197
1197
  let _ = B(s) || B(o);
1198
1198
  if (Bt(o.dl_subscriptions, t) < 0) return _ && L(n("💜💜👎 unsubscribing event '%s': publisher %s, subscriber'%s', ALREADY REMOVED", i || "", et(o), et(s))), 1;
1199
1199
  _ && (L(n("💜💜👎 unsubscribing event '%s': publisher %s, subscriber'%s'", i || "", et(o), et(s))), vn(t)), o.obflag & R.obflag_destroyed || l || o.gclass.gmt.mt_subscription_deleted && o.gclass.gmt.mt_subscription_deleted(o, t);
@@ -1215,7 +1215,7 @@
1215
1215
  }), ir(t)) t = "";
1216
1216
  else if (!(Ct(e, t, $.EVF_OUTPUT_EVENT) || e.gclass.gclass_flag & w.gcflag_no_check_output_events)) return hn(`event NOT in output event list: ${et(e)}, ${t}`), 0;
1217
1217
  let s = xt(r, t), i = Yt(e.dl_subscriptions, e, t, s.renamed_event, s.kw, l), _ = null;
1218
- for (let t = 0; t < i.length; t++) if (yr(e, i[t], "subs_flag", 0, Zt.KW_REQUIRED) & Gt.__hard_subscription__) {
1218
+ for (let t = 0; t < i.length; t++) if (Er(e, i[t], "subs_flag", 0, Zt.KW_REQUIRED) & Gt.__hard_subscription__) {
1219
1219
  _ = i[t];
1220
1220
  break;
1221
1221
  }
@@ -1226,25 +1226,25 @@
1226
1226
  Bn(l, "event", t), Bn(l, "subscriber", r), Bn(l, "publisher", e);
1227
1227
  let o = 0;
1228
1228
  if (n) {
1229
- let r = vr(e, n, "__config__", null), s = vr(e, n, "__global__", null), i = vr(e, n, "__local__", null), _ = jr(e, n, "__filter__", null), a = Er(e, n, "__service__", "");
1229
+ let r = jr(e, n, "__config__", null), s = jr(e, n, "__global__", null), i = jr(e, n, "__local__", null), _ = Or(e, n, "__filter__", null), a = Tr(e, n, "__service__", "");
1230
1230
  if (Xn(s) > 0 && Bn(l, "__global__", Fn(s)), Xn(r) > 0) {
1231
1231
  let n = Fn(r);
1232
1232
  Bn(l, "__config__", n);
1233
- let s = Er(e, n, "__rename_event_name__", "");
1233
+ let s = Tr(e, n, "__rename_event_name__", "");
1234
1234
  if (!ir(s)) {
1235
1235
  let r = Mt(s);
1236
1236
  if (r) {
1237
1237
  Bn(l, "renamed_event", r.event_name), delete n.__rename_event_name__, o |= Gt.__rename_event_name__;
1238
- let s = vr(e, l, "__global__", null);
1238
+ let s = jr(e, l, "__global__", null);
1239
1239
  Zn(s) || (s = {}, Bn(l, "__global__", s)), s.__original_event_name__ = t;
1240
1240
  } else hn(`${et(e)}: EVENT NOT FOUND (__rename_event_name__: ${s})`);
1241
1241
  }
1242
1242
  if (gr(n, "__hard_subscription__")) {
1243
- let t = hr(e, n, "__hard_subscription__", !1);
1243
+ let t = yr(e, n, "__hard_subscription__", !1);
1244
1244
  Kn(n, "__hard_subscription__"), t && (o |= Gt.__hard_subscription__);
1245
1245
  }
1246
1246
  if (gr(n, "__own_event__")) {
1247
- let t = hr(e, n, "__own_event__", !1);
1247
+ let t = yr(e, n, "__own_event__", !1);
1248
1248
  Kn(n, "__own_event__"), t && (o |= Gt.__own_event__);
1249
1249
  }
1250
1250
  }
@@ -1288,15 +1288,15 @@
1288
1288
  if (n < 0) break;
1289
1289
  if (!n) continue;
1290
1290
  }
1291
- let u = Tr(e, a, "subscriber", null, Zt.KW_REQUIRED);
1291
+ let u = vr(e, a, "subscriber", null, Zt.KW_REQUIRED);
1292
1292
  if (!u || ot(u)) continue;
1293
- let c = yr(e, a, "subs_flag", 0, Zt.KW_REQUIRED), f = Er(e, a, "event", "", Zt.KW_REQUIRED);
1293
+ let c = Er(e, a, "subs_flag", 0, Zt.KW_REQUIRED), f = Tr(e, a, "event", "", Zt.KW_REQUIRED);
1294
1294
  if (ir(f) || 0 === ur(f, t)) {
1295
- vr(e, a, "__config__", null, 0);
1296
- let l = vr(e, a, "__global__", null, 0), s = vr(e, a, "__local__", null, 0), f = jr(e, a, "__filter__", null, 0), g = a.renamed_event;
1295
+ jr(e, a, "__config__", null, 0);
1296
+ let l = jr(e, a, "__global__", null, 0), s = jr(e, a, "__local__", null, 0), f = Or(e, a, "__filter__", null, 0), g = a.renamed_event;
1297
1297
  ir(g) && (g = t);
1298
1298
  let d = 1;
1299
- if (e.gclass.gmt.mt_publication_filter ? d = e.gclass.gmt.mt_publication_filter(e, t, r, u) : Xn(f) > 0 && (d = Nr(r, f) ? 1 : 0, o && (L(n("💜💜🔄%s publishing with filter, event '%s', subscriber'%s', publisher %s", d ? "👍" : "👎", t || "", et(u), et(e))), vn(f))), d < 0) break;
1299
+ if (e.gclass.gmt.mt_publication_filter ? d = e.gclass.gmt.mt_publication_filter(e, t, r, u) : Xn(f) > 0 && (d = Rr(r, f) ? 1 : 0, o && (L(n("💜💜🔄%s publishing with filter, event '%s', subscriber'%s', publisher %s", d ? "👍" : "👎", t || "", et(u), et(e))), vn(f))), d < 0) break;
1300
1300
  if (!d) continue;
1301
1301
  let b = At(u, t, !0);
1302
1302
  if (b && b.event_flag & $.EVF_SYSTEM_EVENT && !It(u, b.event_name, 0)) continue;
@@ -1404,23 +1404,23 @@
1404
1404
  return n;
1405
1405
  }
1406
1406
  function hn(e, ...t) {
1407
- let n = mn(e, ...t), r = qr();
1407
+ let n = mn(e, ...t), r = el();
1408
1408
  tn && (tn === en.error ? cn("error", n) && tn("%c" + r + " ERROR: " + String(n), "color:red") : (cn("error", n) && en.error("%c" + r + " ERROR: " + String(n), "color:red"), tn(`${r} ERROR: ${String(n)}`))), gn("error", n, r);
1409
1409
  }
1410
1410
  function yn(e, ...t) {
1411
- let n = mn(e, ...t), r = qr();
1411
+ let n = mn(e, ...t), r = el();
1412
1412
  nn && (nn === en.warn ? cn("warning", n) && nn("%c" + r + " WARNING: " + String(n), "color:yellow") : (cn("warning", n) && en.warn("%c" + r + " WARNING: " + String(n), "color:yellow"), nn(`${r} WARNING: ${String(n)}`))), gn("warning", n, r);
1413
1413
  }
1414
1414
  function En(e, ...t) {
1415
- let n = mn(e, ...t), r = qr();
1415
+ let n = mn(e, ...t), r = el();
1416
1416
  ln && cn("debug", n) && ln("%c" + r + " DEBUG: " + String(n), "color:silver"), gn("debug", n, r);
1417
1417
  }
1418
1418
  function Tn(e, ...t) {
1419
- let n = mn(e, ...t), r = qr();
1419
+ let n = mn(e, ...t), r = el();
1420
1420
  ln && cn("msg", n) && ln("%c" + r + " MSG: " + String(n), "color:cyan"), gn("msg", n, r);
1421
1421
  }
1422
1422
  function vn(e, t) {
1423
- cn("json", t) && (t && en.warn("=====> " + t), en.dir(e)), gn("json", e, qr());
1423
+ cn("json", t) && (t && en.warn("=====> " + t), en.dir(e)), gn("json", e, el());
1424
1424
  }
1425
1425
  var jn = [
1426
1426
  "passw",
@@ -1729,7 +1729,12 @@
1729
1729
  configurable: !0
1730
1730
  }) : e[t] = n;
1731
1731
  }
1732
- function pr(e, t, n, r) {
1732
+ function pr(e, t) {
1733
+ if (!/^[0-9]+$/.test(t)) return -1;
1734
+ const n = Number(t);
1735
+ return n >= e.length ? -1 : n;
1736
+ }
1737
+ function mr(e, t, n, r) {
1733
1738
  e && !sr(e) && hn("GObj bad instanceof");
1734
1739
  const l = e ? `${et(e)}: ` : "";
1735
1740
  if (!Zn(t) && !er(t)) return void hn(`${l}kw must be list or dict: '${String(n)}'`);
@@ -1737,8 +1742,9 @@
1737
1742
  let o = n.split("`"), s = o.length;
1738
1743
  for (let e = 0; e < s; e++) {
1739
1744
  if (er(t)) {
1740
- if (!/^[0-9]+$/.test(o[e])) return void (r && hn(`${l}path not found: '${n}'`));
1741
- o[e] = String(Number(o[e]));
1745
+ const s = pr(t, o[e]);
1746
+ if (s < 0) return void (r && hn(`${l}path not found: '${n}'`));
1747
+ o[e] = String(s);
1742
1748
  }
1743
1749
  if (dr(t, o[e])) return void (r && hn(`${l}path not found: '${n}'`));
1744
1750
  if (e === s - 1) break;
@@ -1748,22 +1754,28 @@
1748
1754
  let i = t[o[s - 1]];
1749
1755
  return void 0 === i && r && hn(`${l}path not found: '${n}'`), i;
1750
1756
  }
1751
- function mr(e, t, n) {
1757
+ function hr(e, t, n) {
1752
1758
  e && !sr(e) && hn("GObj bad instanceof");
1753
1759
  let [r, l] = function(e, t) {
1754
1760
  let n = e.lastIndexOf(t);
1755
1761
  return -1 === n ? [e, ""] : [e.substring(0, n), e.substring(n + 1)];
1756
1762
  }(n, "`");
1757
- return ir(l) ? Kn(t, n) : Kn(pr(e, t, r, !0), l), 0;
1763
+ if (ir(l)) Kn(t, n);
1764
+ else {
1765
+ let o = mr(e, t, r, !0);
1766
+ if (er(o)) return hn(`${e ? et(e) + ": " : ""}kw_delete(): cannot delete an item of a list: '${n}'`), -1;
1767
+ Kn(o, l);
1768
+ }
1769
+ return 0;
1758
1770
  }
1759
- function hr(e, t, n, r, l) {
1771
+ function yr(e, t, n, r, l) {
1760
1772
  e && !sr(e) && hn("GObj bad instanceof");
1761
- let o = pr(e, t, n, !1);
1773
+ let o = mr(e, t, n, !1);
1762
1774
  const s = l && l & Zt.KW_REQUIRED, i = l && l & Zt.KW_CREATE, _ = l && l & Zt.KW_EXTRACT, a = l && l & Zt.KW_WILD_NUMBER;
1763
1775
  if (void 0 === o) {
1764
1776
  if (i && t) {
1765
1777
  let l = Boolean(r);
1766
- return Or(e, t, n, l), l;
1778
+ return Sr(e, t, n, l), l;
1767
1779
  }
1768
1780
  return s && (hn(`path not found: '${n}'`), Un(t)), Boolean(r);
1769
1781
  }
@@ -1775,16 +1787,16 @@
1775
1787
  if (!a || null !== o) return a ? (hn(`${e ? et(e) + ": " : ""}path MUST BE a simple json element: '${n}'`), Un(t), !1) : (hn(`${e ? et(e) + ": " : ""}path MUST BE a json boolean: '${n}'`), Un(t), Boolean(r));
1776
1788
  u = !1;
1777
1789
  }
1778
- return _ && mr(e, t, n), u;
1790
+ return _ && hr(e, t, n), u;
1779
1791
  }
1780
- function yr(e, t, n, r, l) {
1792
+ function Er(e, t, n, r, l) {
1781
1793
  e && !sr(e) && hn("GObj bad instanceof");
1782
- let o = pr(e, t, n, !1);
1794
+ let o = mr(e, t, n, !1);
1783
1795
  const s = l && l & Zt.KW_REQUIRED, i = l && l & Zt.KW_CREATE, _ = l && l & Zt.KW_EXTRACT, a = l && l & Zt.KW_WILD_NUMBER;
1784
1796
  if (void 0 === o) {
1785
1797
  if (i && t) {
1786
1798
  let l = parseInt(r);
1787
- return Or(e, t, n, l), l;
1799
+ return Sr(e, t, n, l), l;
1788
1800
  }
1789
1801
  return s && (hn(`path not found: '${n}'`), Un(t)), parseInt(r);
1790
1802
  }
@@ -1804,58 +1816,63 @@
1804
1816
  u = 0;
1805
1817
  }
1806
1818
  }
1807
- return _ && mr(e, t, n), u;
1819
+ return _ && hr(e, t, n), u;
1808
1820
  }
1809
- function Er(e, t, n, r, l) {
1821
+ function Tr(e, t, n, r, l) {
1810
1822
  e && !sr(e) && hn("GObj bad instanceof");
1811
- let o = pr(e, t, n, !1);
1823
+ let o = mr(e, t, n, !1);
1812
1824
  const s = l && l & Zt.KW_REQUIRED, i = l && l & Zt.KW_CREATE, _ = l && l & Zt.KW_EXTRACT;
1813
- return void 0 === o ? i && t ? (Or(e, t, n, tr(r) ? r : null), r) : (s && !function(e, t) {
1825
+ return void 0 === o ? i && t ? (Sr(e, t, n, tr(r) ? r : null), r) : (s && !function(e, t) {
1814
1826
  let n = tr(t) ? t.split("`") : [], r = e;
1815
1827
  for (let e = 0; e < n.length - 1; e++) {
1816
1828
  if (!Zn(r) && !er(r)) return !1;
1817
1829
  r = r[n[e]];
1818
1830
  }
1819
1831
  return !(!Zn(r) && !er(r) || 0 === n.length) && Object.prototype.hasOwnProperty.call(r, n[n.length - 1]);
1820
- }(t, n) && (hn(`path not found: '${n}'`), Un(t)), r) : tr(o) ? (_ && mr(e, t, n), o) : (null !== o && (hn(`${e ? et(e) + ": " : ""}path MUST BE a json str: '${n}'`), Un(t)), r);
1832
+ }(t, n) && (hn(`path not found: '${n}'`), Un(t)), r) : tr(o) ? (_ && hr(e, t, n), o) : (null !== o && (hn(`${e ? et(e) + ": " : ""}path MUST BE a json str: '${n}'`), Un(t)), r);
1821
1833
  }
1822
- function Tr(e, t, n, r, l) {
1834
+ function vr(e, t, n, r, l) {
1823
1835
  e && !sr(e) && hn("GObj bad instanceof");
1824
- let o = pr(e, t, n, !1);
1836
+ let o = mr(e, t, n, !1);
1825
1837
  const s = l && l & Zt.KW_REQUIRED, i = l && l & Zt.KW_CREATE, _ = l && l & Zt.KW_EXTRACT;
1826
1838
  if (void 0 === o) {
1827
1839
  if (i) {
1828
1840
  let l = r;
1829
- return Or(e, t, n, l), l;
1841
+ return Sr(e, t, n, l), l;
1830
1842
  }
1831
1843
  return s && (hn(`path not found: '${n}'`), Un(t)), r;
1832
1844
  }
1833
- return _ && mr(e, t, n), o;
1845
+ return _ && hr(e, t, n), o;
1834
1846
  }
1835
- function vr(e, t, n, r, l) {
1847
+ function jr(e, t, n, r, l) {
1836
1848
  e && !sr(e) && hn("GObj bad instanceof");
1837
- let o = pr(e, t, n, !1);
1849
+ let o = mr(e, t, n, !1);
1838
1850
  const s = l && l & Zt.KW_REQUIRED, i = l && l & Zt.KW_CREATE, _ = l && l & Zt.KW_EXTRACT;
1839
- return void 0 === o ? i && Zn(r) && t ? (Or(e, t, n, r), r) : (s && (hn(`path not found: '${n}'`), Un(t)), r) : Zn(o) ? (_ && mr(e, t, n), o) : (s && (hn(`${e ? et(e) + ": " : ""}path MUST BE a json dict: '${n}'`), Un(t)), r);
1851
+ return void 0 === o ? i && Zn(r) && t ? (Sr(e, t, n, r), r) : (s && (hn(`path not found: '${n}'`), Un(t)), r) : Zn(o) ? (_ && hr(e, t, n), o) : (s && (hn(`${e ? et(e) + ": " : ""}path MUST BE a json dict: '${n}'`), Un(t)), r);
1840
1852
  }
1841
- function jr(e, t, n, r, l) {
1853
+ function Or(e, t, n, r, l) {
1842
1854
  e && !sr(e) && hn("GObj bad instanceof");
1843
- let o = pr(e, t, n, !1);
1855
+ let o = mr(e, t, n, !1);
1844
1856
  const s = l && l & Zt.KW_REQUIRED, i = l && l & Zt.KW_CREATE, _ = l && l & Zt.KW_EXTRACT;
1845
1857
  if (void 0 === o) {
1846
1858
  if (i) {
1847
1859
  let l = r;
1848
- return Or(e, t, n, l), l;
1860
+ return Sr(e, t, n, l), l;
1849
1861
  }
1850
1862
  return s && (hn(`path not found: '${n}'`), Un(t)), r;
1851
1863
  }
1852
- return _ && mr(e, t, n), o;
1864
+ return _ && hr(e, t, n), o;
1853
1865
  }
1854
- function Or(e, t, n, r) {
1866
+ function Sr(e, t, n, r) {
1855
1867
  if (e && !sr(e) && hn("GObj bad instanceof"), !Zn(t)) return hn("kw is not an object"), -1;
1856
1868
  let l = n.split("`"), o = l.length;
1857
1869
  for (let s = 0; s < o; s++) {
1858
1870
  let i = l[s];
1871
+ if (er(t)) {
1872
+ const r = pr(t, i);
1873
+ if (r < 0) return hn(`${e ? et(e) + ": " : ""}kw_set_dict_value(): segment '${i}' is not an index of its list: '${n}'`), -1;
1874
+ i = String(r);
1875
+ }
1859
1876
  if (s === o - 1) br(t, i, r);
1860
1877
  else {
1861
1878
  let r = dr(t, i) ? void 0 : t[i];
@@ -1866,18 +1883,18 @@
1866
1883
  }
1867
1884
  return 0;
1868
1885
  }
1869
- function Sr(e, t, n, r, l) {
1886
+ function wr(e, t, n, r, l) {
1870
1887
  if (e && !sr(e) && hn("GObj bad instanceof"), !Zn(t)) return hn("kw is not an object"), -1;
1871
- let o = vr(e, t, n, {}, Zt.KW_CREATE);
1888
+ let o = jr(e, t, n, {}, Zt.KW_CREATE);
1872
1889
  return Zn(o) ? (br(o, r, l), 0) : (hn("subdict is not an object"), -1);
1873
1890
  }
1874
- function wr(e, t, r) {
1891
+ function Nr(e, t, r) {
1875
1892
  let l = "", o = !1;
1876
1893
  if (er(t)) {
1877
1894
  o = !1;
1878
1895
  for (let s = 0; s < t.length; s++) {
1879
1896
  let i = t[s];
1880
- if (l = ir(r) ? n("%s", r) : n("%s`%d", r, s), o = wr(e, i, l), o) break;
1897
+ if (l = ir(r) ? n("%s", r) : n("%s`%d", r, s), o = Nr(e, i, l), o) break;
1881
1898
  }
1882
1899
  } else if (Zn(t)) {
1883
1900
  o = !0;
@@ -1885,10 +1902,10 @@
1885
1902
  for (let i = 0; i < s.length; i++) {
1886
1903
  let _ = s[i], a = t[_];
1887
1904
  if (l = ir(r) ? n("%s", _) : n("%s`%s", r, _), er(a) || Zn(a)) {
1888
- if (o = wr(e, a, l), !o) break;
1905
+ if (o = Nr(e, a, l), !o) break;
1889
1906
  continue;
1890
1907
  }
1891
- let u = jr(0, e, l, void 0, 0);
1908
+ let u = Or(0, e, l, void 0, 0);
1892
1909
  if (void 0 === u && (u = xn(e, l)), void 0 === u) {
1893
1910
  o = !1;
1894
1911
  break;
@@ -1901,10 +1918,10 @@
1901
1918
  }
1902
1919
  return o;
1903
1920
  }
1904
- function Nr(e, t) {
1905
- return 0 === Xn(t) || wr(e, t, "");
1921
+ function Rr(e, t) {
1922
+ return 0 === Xn(t) || Nr(e, t, "");
1906
1923
  }
1907
- function Rr(e, t, n, r) {
1924
+ function $r(e, t, n, r) {
1908
1925
  e && !sr(e) && hn("GObj bad instanceof");
1909
1926
  let l = {};
1910
1927
  if (tr(n) && !ir(n)) {
@@ -1920,7 +1937,7 @@
1920
1937
  }
1921
1938
  return l;
1922
1939
  }
1923
- function $r(e, t, n, r) {
1940
+ function Dr(e, t, n, r) {
1924
1941
  let l = {};
1925
1942
  if (!Zn(t)) return l;
1926
1943
  if (Gn(l, t), tr(n) && !ir(n)) {
@@ -1936,15 +1953,15 @@
1936
1953
  }
1937
1954
  return l;
1938
1955
  }
1939
- function Dr(e, t, n = !1) {
1956
+ function kr(e, t, n = !1) {
1940
1957
  if ("undefined" != typeof window && window.localStorage) try {
1941
1958
  let r = window.localStorage.getItem(e);
1942
- return null === r ? (n && kr(e, t), t) : JSON.parse(r);
1959
+ return null === r ? (n && Ar(e, t), t) : JSON.parse(r);
1943
1960
  } catch (n) {
1944
1961
  return window.console.warn(`Error reading localStorage key "${e}":`, n), t;
1945
1962
  }
1946
1963
  }
1947
- function kr(e, t) {
1964
+ function Ar(e, t) {
1948
1965
  if ("undefined" == typeof window || !window.localStorage) return 0;
1949
1966
  if (!e || void 0 === t) return hn(`kw_set_local_storage_value(): invalid key or value: key=${e}`), -1;
1950
1967
  try {
@@ -1953,7 +1970,7 @@
1953
1970
  return hn(`kw_set_local_storage_value(): cannot save "${e}" (storage full or blocked?): ${t && t.message ? t.message : t}`), -1;
1954
1971
  }
1955
1972
  }
1956
- function Ar(e) {
1973
+ function Ir(e) {
1957
1974
  if ("undefined" != typeof window && window.localStorage) if (e) try {
1958
1975
  window.localStorage.removeItem(e);
1959
1976
  } catch (t) {
@@ -1961,7 +1978,7 @@
1961
1978
  }
1962
1979
  else window.console.warn(`Invalid key for localStorage removal: ${e}`);
1963
1980
  }
1964
- function Ir(e, t) {
1981
+ function Cr(e, t) {
1965
1982
  if (lr(e) || lr(t)) return !0;
1966
1983
  if (er(e)) {
1967
1984
  if (0 === e.length) return !0;
@@ -1972,34 +1989,34 @@
1972
1989
  } else if (tr(e) && e === t) return !0;
1973
1990
  return !1;
1974
1991
  }
1975
- function Cr(e, t, n, r, l) {
1992
+ function Lr(e, t, n, r, l) {
1976
1993
  if (e && !sr(e) && hn("GObj bad instanceof"), !t) return null;
1977
- l || (l = Nr);
1994
+ l || (l = Rr);
1978
1995
  let o = [];
1979
1996
  if (er(t)) for (let s = 0; s < t.length; s++) {
1980
1997
  let i, _ = t[s];
1981
- if (Zn(_)) i = Er(e, _, "id", "", 0);
1998
+ if (Zn(_)) i = Tr(e, _, "id", "", 0);
1982
1999
  else {
1983
2000
  if (!tr(_)) continue;
1984
2001
  i = _;
1985
2002
  }
1986
- Ir(n, i) && l(_, r) && o.push(_);
2003
+ Cr(n, i) && l(_, r) && o.push(_);
1987
2004
  }
1988
2005
  else {
1989
2006
  if (!Zn(t)) return hn("kw_collect() BAD kw parameter"), null;
1990
2007
  for (let e of Object.keys(t)) {
1991
2008
  let s = t[e];
1992
- Ir(n, e) && l(s, r) && o.push(s);
2009
+ Cr(n, e) && l(s, r) && o.push(s);
1993
2010
  }
1994
2011
  }
1995
2012
  return o;
1996
2013
  }
1997
- function Lr(e, t) {
2014
+ function Pr(e, t) {
1998
2015
  if (!e) return -1;
1999
2016
  for (let n = 0; n < e.length; n++) if (e[n] && e[n].id === t) return n;
2000
2017
  return -1;
2001
2018
  }
2002
- function Pr(e, t, n) {
2019
+ function Ur(e, t, n) {
2003
2020
  if (!e || !t) return hn("ERROR: str_in_list() list or str empty"), !1;
2004
2021
  let r = e.length;
2005
2022
  if (n) {
@@ -2011,7 +2028,7 @@
2011
2028
  } else for (let n = 0; n < r; n++) if (e[n] === t) return !0;
2012
2029
  return !1;
2013
2030
  }
2014
- function Ur(e, t) {
2031
+ function Fr(e, t) {
2015
2032
  try {
2016
2033
  let n = e.__md_iev__;
2017
2034
  if (n) return n[t];
@@ -2019,34 +2036,34 @@
2019
2036
  return;
2020
2037
  }
2021
2038
  }
2022
- function Fr(e, t, n) {
2039
+ function Vr(e, t, n) {
2023
2040
  let r = e.__md_iev__;
2024
2041
  r || (r = {}, e.__md_iev__ = r), r[t] = n;
2025
2042
  }
2026
- function Vr(e, t, n, r) {
2043
+ function Gr(e, t, n, r) {
2027
2044
  if (!sr(e)) return hn("gobj is not a GObj"), null;
2028
2045
  if (!t) return;
2029
- let l = Ur(t, n);
2030
- l || (l = [], Fr(t, n, l));
2046
+ let l = Fr(t, n);
2047
+ l || (l = [], Vr(t, n, l));
2031
2048
  try {
2032
2049
  er(l) && l.unshift(r);
2033
2050
  } catch (e) {
2034
2051
  hn(e);
2035
2052
  }
2036
2053
  }
2037
- function Gr(e, t, n, r) {
2054
+ function Mr(e, t, n, r) {
2038
2055
  if (!sr(e)) return hn("gobj is not a GObj"), null;
2039
2056
  if (!Zn(t)) return hn("kw is not a dict"), null;
2040
- let l = Ur(t, n);
2057
+ let l = Fr(t, n);
2041
2058
  return l ? 0 === l.length ? (r && hn(`stack empty: ${n}`), null) : l[0] : (r && hn(`stack NOT FOUND: ${n}`), null);
2042
2059
  }
2043
- function Mr(e, t, n) {
2044
- return ir(n) ? mr(e, t, "__md_iev__`__msg_type__") : Sr(e, t, "__md_iev__", "__msg_type__", n), 0;
2060
+ function Wr(e, t, n) {
2061
+ return ir(n) ? hr(e, t, "__md_iev__`__msg_type__") : wr(e, t, "__md_iev__", "__msg_type__", n), 0;
2045
2062
  }
2046
- function Wr(e, t) {
2047
- return Er(e, t, "__md_iev__`__msg_type__", "", 0);
2063
+ function xr(e, t) {
2064
+ return Tr(e, t, "__md_iev__`__msg_type__", "", 0);
2048
2065
  }
2049
- function xr(e, t, n) {
2066
+ function Kr(e, t, n) {
2050
2067
  void 0 !== n && tr(n) || (n = "");
2051
2068
  for (let r of Object.keys(e)) {
2052
2069
  if (!Object.prototype.hasOwnProperty.call(e, r)) continue;
@@ -2056,10 +2073,10 @@
2056
2073
  r,
2057
2074
  e[r],
2058
2075
  n
2059
- ]), Zn(e[r]) && xr(e[r], t, n), n = n.slice(0, -l.length);
2076
+ ]), Zn(e[r]) && Kr(e[r], t, n), n = n.slice(0, -l.length);
2060
2077
  }
2061
2078
  }
2062
- function Kr(e, t, n, r) {
2079
+ function Yr(e, t, n, r) {
2063
2080
  if (!e) return null;
2064
2081
  let l, o = e.length;
2065
2082
  for (l = 0; l < o; l++) {
@@ -2068,14 +2085,14 @@
2068
2085
  let e = o.id;
2069
2086
  if (e && e === n) return o;
2070
2087
  if (r && gr(o, t)) {
2071
- let e = Kr(o[t], t, n, r);
2088
+ let e = Yr(o[t], t, n, r);
2072
2089
  if (e) return e;
2073
2090
  }
2074
2091
  }
2075
2092
  }
2076
2093
  return null;
2077
2094
  }
2078
- function Yr(e) {
2095
+ function Br(e) {
2079
2096
  function t(e) {
2080
2097
  let t = e.replace(/-/g, "+").replace(/_/g, "/");
2081
2098
  switch (t.length % 4) {
@@ -2106,36 +2123,52 @@
2106
2123
  signature: t(n[2])
2107
2124
  };
2108
2125
  }
2109
- function Br(e) {
2126
+ function Jr(e) {
2110
2127
  return null == e ? "" : String(e).replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#39;");
2111
2128
  }
2112
- function Jr(e) {
2129
+ var qr = class {
2130
+ constructor(e) {
2131
+ this.html = e, Object.freeze(this);
2132
+ }
2133
+ toString() {
2134
+ return this.html;
2135
+ }
2136
+ };
2137
+ function Hr(e) {
2138
+ return e instanceof qr;
2139
+ }
2140
+ function zr(e) {
2141
+ const t = document.createElement("template");
2142
+ return t.innerHTML = e.html.trim(), t.content;
2143
+ }
2144
+ var Qr = !1, Xr = /* @__PURE__ */ new Set();
2145
+ function Zr(e) {
2113
2146
  const t = document.createElement("template");
2114
2147
  return t.innerHTML = e.trim(), t.content.firstChild;
2115
2148
  }
2116
- function qr(e) {
2149
+ function el(e) {
2117
2150
  const t = (e, t) => String(e).padStart(t, "0"), n = `${(e = e || /* @__PURE__ */ new Date()).getFullYear()}-${t(e.getMonth() + 1, 2)}-${t(e.getDate(), 2)}T${t(e.getHours(), 2)}:${t(e.getMinutes(), 2)}:${t(e.getSeconds(), 2)}`, r = t(e.getMilliseconds(), 3), l = e.getTimezoneOffset();
2118
2151
  return `${n}.${r}${l > 0 ? "-" : "+"}${t(Math.floor(Math.abs(l) / 60), 2)}${t(Math.abs(l) % 60, 2)}`;
2119
2152
  }
2120
- function Hr(e, t) {
2153
+ function tl(e, t) {
2121
2154
  if (!e) throw "ERROR: index_in_list() list empty";
2122
2155
  for (let n = 0; n < e.length; n++) if (t === e[n]) return n;
2123
2156
  return -1;
2124
2157
  }
2125
- function zr() {
2158
+ function nl() {
2126
2159
  let e = "";
2127
2160
  return "undefined" != typeof window && window.localStorage ? (e = window.localStorage.getItem("host_uuid"), !e && window.crypto?.randomUUID && (e = window.crypto.randomUUID(), window.localStorage.setItem("host_uuid", e))) : e = "undefined" != typeof globalThis && globalThis.crypto?.randomUUID ? globalThis.crypto.randomUUID() : "00000000-0000-0000-0000-000000000000", e;
2128
2161
  }
2129
- function Qr(e) {
2162
+ function rl(e) {
2130
2163
  let t = null;
2131
2164
  return "function" != typeof e && "object" != typeof e || (t = ("" + e).match(/function\s*([\w\$]*)\s*\(/)), null !== t ? t[1] + "()" : "";
2132
2165
  }
2133
- var Xr = 256, Zr = 1e5;
2134
- function el(e) {
2166
+ var ll = 256, ol = 1e5;
2167
+ function sl(e) {
2135
2168
  const t = String(e).replace(/`/g, "``");
2136
2169
  return "[" === t[0] ? "[" + t : t;
2137
2170
  }
2138
- function tl(e) {
2171
+ function il(e) {
2139
2172
  if ("string" != typeof e) return null;
2140
2173
  let t = [], n = "";
2141
2174
  for (let r = 0; r < e.length; r++) if ("`" !== e[r]) n += e[r];
@@ -2156,13 +2189,13 @@
2156
2189
  return null !== t ? t : "[" === e[0] && "[" === e[1] ? e.slice(1) : e;
2157
2190
  });
2158
2191
  }
2159
- function nl(e, t) {
2192
+ function _l(e, t) {
2160
2193
  return e === t || null !== e && null !== t && "object" == typeof e && "object" == typeof t && JSON.stringify(e) === JSON.stringify(t);
2161
2194
  }
2162
- function rl(e) {
2195
+ function al(e) {
2163
2196
  return "persistent-attrs-" + et(e);
2164
2197
  }
2165
- function ll(e, t) {
2198
+ function ul(e, t) {
2166
2199
  if (tr(t)) {
2167
2200
  if (-1 === t.indexOf("^")) {
2168
2201
  let n, r, l = e.fkey;
@@ -2192,7 +2225,7 @@
2192
2225
  hook_name: t.hook_name
2193
2226
  } : (hn("bad fkey 3"), hn(e), hn(t), null);
2194
2227
  }
2195
- var ol = [
2228
+ var cl = [
2196
2229
  "string",
2197
2230
  "integer",
2198
2231
  "object",
@@ -2202,7 +2235,7 @@
2202
2235
  "real",
2203
2236
  "boolean",
2204
2237
  "blob"
2205
- ], sl = [
2238
+ ], fl = [
2206
2239
  "persistent",
2207
2240
  "required",
2208
2241
  "notnull",
@@ -2214,7 +2247,7 @@
2214
2247
  "stats",
2215
2248
  "rstats",
2216
2249
  "pstats"
2217
- ], il = [
2250
+ ], gl = [
2218
2251
  "hook",
2219
2252
  "fkey",
2220
2253
  "enum",
@@ -2243,7 +2276,7 @@
2243
2276
  "coordinates",
2244
2277
  "gbuffer"
2245
2278
  ];
2246
- function _l(e) {
2279
+ function dl(e) {
2247
2280
  let t = {
2248
2281
  name: e.id,
2249
2282
  header: e.header,
@@ -2262,7 +2295,7 @@
2262
2295
  if (!e.flag) return t;
2263
2296
  for (let n = 0; n < e.flag.length; n++) {
2264
2297
  let r = e.flag[n];
2265
- if (Pr(il, r)) {
2298
+ if (Ur(gl, r)) {
2266
2299
  switch (r) {
2267
2300
  case "enum":
2268
2301
  t.enum_list = e.enum;
@@ -2276,7 +2309,7 @@
2276
2309
  case "file": t.is_file = !0;
2277
2310
  }
2278
2311
  t.type = r;
2279
- } else if (Pr(sl, r)) switch (r) {
2312
+ } else if (Ur(fl, r)) switch (r) {
2280
2313
  case "writable":
2281
2314
  t.is_writable = !0;
2282
2315
  break;
@@ -2289,23 +2322,23 @@
2289
2322
  }
2290
2323
  return t.is_file && (t.type = "file"), t;
2291
2324
  }
2292
- var al = [
2325
+ var bl = [
2293
2326
  j(y.DTP_POINTER, "subscriber", 0, null, "Subscriber of output events"),
2294
2327
  j(y.DTP_BOOLEAN, "periodic", 0, 0, "True for periodic timeouts"),
2295
2328
  j(y.DTP_INTEGER, "msec", 0, 0, "Timeout in milliseconds"),
2296
2329
  v()
2297
- ], ul = {
2330
+ ], pl = {
2298
2331
  periodic: !1,
2299
2332
  msec: 0,
2300
2333
  timer_id: -1
2301
- }, cl = null;
2302
- function fl(e, t, n, r) {
2334
+ }, ml = null;
2335
+ function hl(e, t, n, r) {
2303
2336
  let l = e.priv, o = l.periodic ? "EV_TIMEOUT_PERIODIC" : "EV_TIMEOUT";
2304
2337
  return l.periodic && l.msec > 0 ? l.timer_id = setTimeout(function() {
2305
2338
  Vt(e, "EV_TIMEOUT", {}, e);
2306
2339
  }, l.msec) : l.timer_id = -1, lt(e) ? Vt(nt(e), o, {}, e) : Xt(e, o, {}), l.periodic || -1 !== l.timer_id || Ke(e) && Ve(e), 0;
2307
2340
  }
2308
- var gl = {
2341
+ var yl = {
2309
2342
  mt_create: function(e) {
2310
2343
  let t = e.priv;
2311
2344
  const n = Ot(e, "subscriber");
@@ -2330,16 +2363,16 @@
2330
2363
  },
2331
2364
  mt_destroy: function(e) {}
2332
2365
  };
2333
- function dl(e, t) {
2366
+ function El(e, t) {
2334
2367
  return e instanceof S ? "C_TIMER" !== Ze(e) ? (hn("not C_TIMER GObj"), -1) : (Nt(e, "periodic", !1), void Rt(e, "msec", t)) : (hn("not GObj TYPE"), -1);
2335
2368
  }
2336
- function bl(e, t) {
2369
+ function Tl(e, t) {
2337
2370
  return e instanceof S ? "C_TIMER" !== Ze(e) ? (hn("not C_TIMER GObj"), -1) : (Nt(e, "periodic", !0), void Rt(e, "msec", t)) : (hn("not GObj TYPE"), -1);
2338
2371
  }
2339
- function pl(e) {
2372
+ function vl(e) {
2340
2373
  return e instanceof S ? "C_TIMER" !== Ze(e) ? (hn("not C_TIMER GObj"), -1) : void Rt(e, "msec", -1) : (hn("not GObj TYPE"), -1);
2341
2374
  }
2342
- var ml = [
2375
+ var jl = [
2343
2376
  j(y.DTP_BOOLEAN, "changesLost", 0, !1, "Set true to warn about leaving page"),
2344
2377
  j(y.DTP_BOOLEAN, "browser_beforeunload", 0, !1, "Set true to refreshing browser"),
2345
2378
  j(y.DTP_STRING, "__username__", 0, "", "Username"),
@@ -2359,26 +2392,26 @@
2359
2392
  j(y.DTP_BOOLEAN, "developer", 0, !1, "Developer mode enabled"),
2360
2393
  j(y.DTP_INTEGER, "periodic_timeout", 0, "1000", "Timeout periodic, in miliseconds."),
2361
2394
  v()
2362
- ], hl = { gobj_timer: null }, yl = null;
2363
- function El(e, t, n, r) {
2395
+ ], Ol = { gobj_timer: null }, Sl = null;
2396
+ function wl(e, t, n, r) {
2364
2397
  let l = yt(e, t);
2365
2398
  return Zn(l) || (l = {}), l[n] = r, St(e, t, l), De(e, t);
2366
2399
  }
2367
- function Tl(e) {
2400
+ function Nl(e) {
2368
2401
  if (!0 === e || !1 === e) return e;
2369
2402
  let t = String(null == e ? "" : e).toLowerCase();
2370
2403
  return "true" === t || "set" === t || "false" !== t && "reset" !== t && ("" === t || isNaN(Number(t)) ? null : !!Number(t));
2371
2404
  }
2372
- function vl() {
2405
+ function Rl() {
2373
2406
  return `${ze()}^${He()}`;
2374
2407
  }
2375
- function jl(e, t, n, r) {
2408
+ function $l(e, t, n, r) {
2376
2409
  return Xt(e, t, n), 0;
2377
2410
  }
2378
- var Ol = {
2411
+ var Dl = {
2379
2412
  mt_create: function(e) {
2380
2413
  let t = e.priv;
2381
- $t(e, "start_date", qr()), $t(e, "node_uuid", zr()), e.priv.gobj_timer = Ce(Xe(e), "C_TIMER", {}, e), t.periodic_timeout = yt(e, "periodic_timeout"), function(e) {
2414
+ $t(e, "start_date", el()), $t(e, "node_uuid", nl()), e.priv.gobj_timer = Ce(Xe(e), "C_TIMER", {}, e), t.periodic_timeout = yt(e, "periodic_timeout"), function(e) {
2382
2415
  let t = yt(e, "trace_levels");
2383
2416
  if (!Zn(t)) return 0;
2384
2417
  let n = t.__global_trace__;
@@ -2412,10 +2445,10 @@
2412
2445
  },
2413
2446
  mt_writing: function(e, t) {},
2414
2447
  mt_start: function(e) {
2415
- return bl(e.priv.gobj_timer, e.priv.periodic_timeout), 0;
2448
+ return Tl(e.priv.gobj_timer, e.priv.periodic_timeout), 0;
2416
2449
  },
2417
2450
  mt_stop: function(e) {
2418
- return pl(e.priv.gobj_timer), Me(e), 0;
2451
+ return vl(e.priv.gobj_timer), Me(e), 0;
2419
2452
  },
2420
2453
  mt_destroy: function(e) {},
2421
2454
  mt_play: function(e) {
@@ -2432,24 +2465,24 @@
2432
2465
  case "get-global-no-trace": return l(0, 0, null, null, ne());
2433
2466
  case "set-global-trace":
2434
2467
  case "set-global-no-trace": {
2435
- let r = "set-global-no-trace" === t, o = n.level, s = Tl(n.set);
2436
- return o ? null === s ? l(0, -1, `${vl()}: bitmask set or re-set?`, null, null) : (r ? X(o, s) : Q(o, s)) < 0 ? l(0, -1, `${vl()}: global trace level not found: ${o}`, null, null) : r ? (El(e, "no_trace_levels", "__global_no_trace__", ne()), l(0, 0, null, null, ne())) : (El(e, "trace_levels", "__global_trace__", te()), l(0, 0, null, null, te())) : l(0, -1, `${vl()}: what level?`, null, null);
2468
+ let r = "set-global-no-trace" === t, o = n.level, s = Nl(n.set);
2469
+ return o ? null === s ? l(0, -1, `${Rl()}: bitmask set or re-set?`, null, null) : (r ? X(o, s) : Q(o, s)) < 0 ? l(0, -1, `${Rl()}: global trace level not found: ${o}`, null, null) : r ? (wl(e, "no_trace_levels", "__global_no_trace__", ne()), l(0, 0, null, null, ne())) : (wl(e, "trace_levels", "__global_trace__", te()), l(0, 0, null, null, te())) : l(0, -1, `${Rl()}: what level?`, null, null);
2437
2470
  }
2438
2471
  case "get-gclass-trace":
2439
2472
  case "get-gclass-no-trace":
2440
2473
  case "set-gclass-trace":
2441
2474
  case "set-gclass-no-trace": {
2442
2475
  let r = t.indexOf("no-trace") >= 0, o = n.gclass_name || n.gclass || "", s = Oe(o);
2443
- if (!s) return l(0, -1, `${vl()}: what gclass is '${o}'?`, null, null);
2476
+ if (!s) return l(0, -1, `${Rl()}: what gclass is '${o}'?`, null, null);
2444
2477
  if (0 === t.indexOf("get-")) return l(0, 0, null, null, r ? oe(s) : re(s));
2445
- let i = n.level, _ = Tl(n.set);
2446
- return i ? null === _ ? l(0, -1, `${vl()}: bitmask set or re-set?`, null, null) : (r ? ie(s, i, _) : se(s, i, _)) < 0 ? l(0, -1, `${vl()}: trace level of ${o} not found: ${i}`, null, null) : r ? (El(e, "no_trace_levels", o, oe(s)), l(0, 0, null, null, oe(s))) : (El(e, "trace_levels", o, le(s)), l(0, 0, null, null, re(s))) : l(0, -1, `${vl()}: what level?`, null, null);
2478
+ let i = n.level, _ = Nl(n.set);
2479
+ return i ? null === _ ? l(0, -1, `${Rl()}: bitmask set or re-set?`, null, null) : (r ? ie(s, i, _) : se(s, i, _)) < 0 ? l(0, -1, `${Rl()}: trace level of ${o} not found: ${i}`, null, null) : r ? (wl(e, "no_trace_levels", o, oe(s)), l(0, 0, null, null, oe(s))) : (wl(e, "trace_levels", o, le(s)), l(0, 0, null, null, re(s))) : l(0, -1, `${Rl()}: what level?`, null, null);
2447
2480
  }
2448
- default: return l(0, -1, `${vl()}: command not available: ${t}`, null, null);
2481
+ default: return l(0, -1, `${Rl()}: command not available: ${t}`, null, null);
2449
2482
  }
2450
2483
  }
2451
2484
  };
2452
- var Sl = "ievent_gate_stack", wl = [
2485
+ var kl = "ievent_gate_stack", Al = [
2453
2486
  j(y.DTP_STRING, "wanted_yuno_role", E.SDF_RD, "", "wanted yuno role"),
2454
2487
  j(y.DTP_STRING, "wanted_yuno_name", E.SDF_RD, "", "wanted yuno name"),
2455
2488
  j(y.DTP_STRING, "wanted_yuno_service", E.SDF_RD, "", "wanted yuno service"),
@@ -2466,15 +2499,15 @@
2466
2499
  j(y.DTP_INTEGER, "timeout_idack", E.SDF_RD, "5000", "timeout waiting idAck"),
2467
2500
  j(y.DTP_POINTER, "subscriber", 0, 0, "subscriber of output-events. If null then subscriber is the parent"),
2468
2501
  v()
2469
- ], Nl = [
2502
+ ], Il = [
2470
2503
  ["ievents", "Trace inter-events with metadata of kw"],
2471
2504
  ["ievents2", "Trace inter-events with full kw"],
2472
2505
  ["identity-card", "Trace identity_card messages"]
2473
2506
  ];
2474
- function Rl(e) {
2507
+ function Cl(e) {
2475
2508
  return !!(3 & x(e));
2476
2509
  }
2477
- var $l = {
2510
+ var Ll = {
2478
2511
  url: null,
2479
2512
  remote_yuno_name: null,
2480
2513
  remote_yuno_role: null,
@@ -2484,8 +2517,8 @@
2484
2517
  websocket: null,
2485
2518
  inside_on_open: !1,
2486
2519
  retry_ms: 0
2487
- }, Dl = null;
2488
- function kl(e) {
2520
+ }, Pl = null;
2521
+ function Ul(e) {
2489
2522
  e.priv.websocket && hn("Websocket ALREADY setup");
2490
2523
  const t = jt(e, "url");
2491
2524
  En(`====> Starting WebSocket to '${t}' (${et(e)})`);
@@ -2500,7 +2533,7 @@
2500
2533
  code: 1006,
2501
2534
  reason: r.message,
2502
2535
  was_clean: !1
2503
- }, e), null;
2536
+ }, e) < 0 && El(e.priv.gobj_timer, ql(e)), null;
2504
2537
  }
2505
2538
  return r ? (r.onopen = () => {
2506
2539
  n !== e.priv.ws_seq || ot(e) || Vt(e, "EV_ON_OPEN", {
@@ -2522,7 +2555,7 @@
2522
2555
  }, e));
2523
2556
  }, r) : (hn(`${et(e)}: Failed to initialize WebSocket.`), null);
2524
2557
  }
2525
- function Al(e, t = 1e3, n = "") {
2558
+ function Fl(e, t = 1e3, n = "") {
2526
2559
  let r = e.priv, l = r.websocket;
2527
2560
  if (r.websocket = null, l && l.readyState !== WebSocket.CLOSED && l.readyState !== WebSocket.CLOSING) {
2528
2561
  En(`Closing WebSocket (Code: ${t}, Reason: "${n}")`);
@@ -2533,25 +2566,25 @@
2533
2566
  }
2534
2567
  } else yn("WebSocket is already closed or in the process of closing.");
2535
2568
  }
2536
- function Il(e, t, n) {
2537
- let r = qr();
2569
+ function Vl(e, t, n) {
2570
+ let r = el();
2538
2571
  try {
2539
2572
  En("\n" + r + " " + t + "\n"), Un(n);
2540
2573
  } catch (e) {
2541
2574
  En("ERROR in trace_inter_event: " + e);
2542
2575
  }
2543
2576
  }
2544
- var Cl = class {
2577
+ var Gl = class {
2545
2578
  constructor(e, t) {
2546
2579
  this.event = e, this.kw = t || {};
2547
2580
  }
2548
2581
  };
2549
- function Ll(e, t, n, r) {
2582
+ function Ml(e, t, n, r) {
2550
2583
  return function(e, t) {
2551
2584
  let n = e.priv, r = JSON.stringify(t);
2552
- if (Rl(e)) {
2585
+ if (Cl(e)) {
2553
2586
  let n = jt(e, "url"), l = Xe(qe()) + " ==> " + n, o = yt(qe(), "trace_ievent_callback");
2554
- o ? o(l, t, 1, r.length) : Il(0, l, t);
2587
+ o ? o(l, t, 1, r.length) : Vl(0, l, t);
2555
2588
  }
2556
2589
  if (!n.websocket || n.websocket.readyState !== WebSocket.OPEN) return yn(`${et(e)}: send_iev(): websocket not open, message lost`), -1;
2557
2590
  try {
@@ -2561,10 +2594,10 @@
2561
2594
  }
2562
2595
  return 0;
2563
2596
  }(e, function(e, t) {
2564
- return ir(e) ? (hn("iev_create() event NULL"), null) : new Cl(e, t);
2597
+ return ir(e) ? (hn("iev_create() event NULL"), null) : new Gl(e, t);
2565
2598
  }(t, n));
2566
2599
  }
2567
- function Pl(e, t, n) {
2600
+ function Wl(e, t, n) {
2568
2601
  return ir(n) && (n = jt(e, "wanted_yuno_service")), {
2569
2602
  dst_yuno: jt(e, "wanted_yuno_name"),
2570
2603
  dst_role: jt(e, "wanted_yuno_role"),
@@ -2572,10 +2605,10 @@
2572
2605
  src_yuno: He(),
2573
2606
  src_role: ze(),
2574
2607
  src_service: t,
2575
- host: zr()
2608
+ host: nl()
2576
2609
  };
2577
2610
  }
2578
- function Ul(e) {
2611
+ function xl(e) {
2579
2612
  let t = e.priv, n = Je(qe()), r = jt(qe(), "yuno_version"), l = jt(qe(), "yuno_release"), o = jt(qe(), "yuno_tag"), i = yt(e, "required_services");
2580
2613
  i && i.length || (i = yt(qe(), "required_services"));
2581
2614
  let _ = {
@@ -2593,27 +2626,27 @@
2593
2626
  username: jt(qe(), "__username__"),
2594
2627
  launch_id: 0,
2595
2628
  yuno_startdate: jt(qe(), "start_date"),
2596
- id: zr(),
2629
+ id: nl(),
2597
2630
  user_agent: "undefined" != typeof window ? window.navigator.userAgent : "",
2598
2631
  language: "undefined" != typeof window ? window.navigator.language : "",
2599
2632
  required_services: i
2600
2633
  };
2601
- return Vr(e, _, Sl, Pl(e, Xe(nt(e)), null)), Mr(e, _, "__identity__"), dl(t.gobj_timer, vt(e, "timeout_idack")), Ll(e, "EV_IDENTITY_CARD", _);
2634
+ return Gr(e, _, kl, Wl(e, Xe(nt(e)), null)), Wr(e, _, "__identity__"), El(t.gobj_timer, vt(e, "timeout_idack")), Ml(e, "EV_IDENTITY_CARD", _);
2602
2635
  }
2603
- function Fl(e, t) {
2636
+ function Kl(e, t) {
2604
2637
  if (ir(t.event)) return -1;
2605
2638
  let n = {}, r = t.__global__, l = t.__config__, o = t.__filter__, s = t.__service__, i = t.subscriber;
2606
2639
  l && (n.__config__ = l), r && (n.__global__ = r), o && (n.__filter__ = o);
2607
- return Vr(e, n, Sl, Pl(e, Xe(i), s)), Mr(e, n, "__subscribing__"), Ll(e, t.event, n);
2640
+ return Gr(e, n, kl, Wl(e, Xe(i), s)), Wr(e, n, "__subscribing__"), Ml(e, t.event, n);
2608
2641
  }
2609
- function Vl(e, t, n, r) {
2642
+ function Yl(e, t, n, r) {
2610
2643
  let l = e.priv;
2611
- return Ke(e) && (l.websocket = kl(e)), 0;
2644
+ return Ke(e) && (l.websocket = Ul(e)), 0;
2612
2645
  }
2613
- function Gl(e, t, n, r) {
2614
- return En("Websocket opened: " + e.priv.url), Ul(e), 0;
2646
+ function Bl(e, t, n, r) {
2647
+ return En("Websocket opened: " + e.priv.url), xl(e), 0;
2615
2648
  }
2616
- function Ml(e, t, n, r) {
2649
+ function Jl(e, t, n, r) {
2617
2650
  let l = e.priv, o = n.url;
2618
2651
  return void 0 !== n.ws_seq && n.ws_seq !== l.ws_seq || (bn(), yn(`${et(e)}: WebSocket closed ${o} (Code: ${n.code}, Reason: "${n.reason}", Clean: ${n.was_clean})`), l.websocket && (l.websocket.onopen = null, l.websocket.onmessage = null, l.websocket.onerror = null, l.websocket.onclose = null, l.websocket = null), l.inform_on_close ? (l.inform_on_close = !1, Xt(e, "EV_ON_CLOSE", {
2619
2652
  url: o,
@@ -2628,25 +2661,25 @@
2628
2661
  code: n.code,
2629
2662
  reason: n.reason,
2630
2663
  was_clean: n.was_clean
2631
- })), Ke(e) && dl(l.gobj_timer, function(e) {
2632
- let t = e.priv, n = vt(e, "timeout_retry"), r = vt(e, "timeout_retry_max");
2633
- r < n && (r = n);
2634
- t.retry_ms = t.retry_ms ? Math.min(2 * t.retry_ms, r) : n;
2635
- let l = .2 * t.retry_ms, o = t.retry_ms - l + 2 * Math.random() * l;
2636
- return Math.max(1, Math.round(o));
2637
- }(e))), 0;
2638
- }
2639
- function Wl(e, t, n, r) {
2640
- return Ul(e), 0;
2641
- }
2642
- function xl(e, t, n, r) {
2664
+ })), Ke(e) && El(l.gobj_timer, ql(e))), 0;
2665
+ }
2666
+ function ql(e) {
2667
+ let t = e.priv, n = vt(e, "timeout_retry"), r = vt(e, "timeout_retry_max");
2668
+ r < n && (r = n), t.retry_ms = t.retry_ms ? Math.min(2 * t.retry_ms, r) : n;
2669
+ let l = .2 * t.retry_ms, o = t.retry_ms - l + 2 * Math.random() * l;
2670
+ return Math.max(1, Math.round(o));
2671
+ }
2672
+ function Hl(e, t, n, r) {
2673
+ return xl(e), 0;
2674
+ }
2675
+ function zl(e, t, n, r) {
2643
2676
  let l = e.priv;
2644
- pl(l.gobj_timer);
2645
- let o = Gr(e, n, Sl, !0), s = Er(e, o, "src_yuno", ""), i = Er(e, o, "src_role", ""), _ = Er(e, o, "src_service", "");
2677
+ vl(l.gobj_timer);
2678
+ let o = Mr(e, n, kl, !0), s = Tr(e, o, "src_yuno", ""), i = Tr(e, o, "src_role", ""), _ = Tr(e, o, "src_service", "");
2646
2679
  $t(e, "remote_yuno_name", s), $t(e, "remote_yuno_role", i), $t(e, "remote_yuno_service", _);
2647
- let a = yr(e, n, "result", -1, 0), u = Er(e, n, "comment", "", 0), c = Er(e, n, "username", "", 0), f = jr(e, n, "services_roles", {});
2680
+ let a = Er(e, n, "result", -1, 0), u = Tr(e, n, "comment", "", 0), c = Tr(e, n, "username", "", 0), f = Or(e, n, "services_roles", {});
2648
2681
  if (a < 0) {
2649
- Al(e);
2682
+ Fl(e);
2650
2683
  let t = {
2651
2684
  url: jt(e, "url"),
2652
2685
  result: a,
@@ -2671,12 +2704,12 @@
2671
2704
  }
2672
2705
  l.inside_on_open = !1, function(e) {
2673
2706
  let t = zt(e, null, null, null);
2674
- for (let n = 0; n < t.length; n++) Fl(e, t[n]);
2707
+ for (let n = 0; n < t.length; n++) Kl(e, t[n]);
2675
2708
  }(e);
2676
2709
  }
2677
2710
  return 0;
2678
2711
  }
2679
- function Kl(e, t, n, r) {
2712
+ function Ql(e, t, n, r) {
2680
2713
  let l = e.priv.url, o = function(e, t) {
2681
2714
  let n;
2682
2715
  try {
@@ -2695,21 +2728,21 @@
2695
2728
  } : (yn(`${et(e)}: parsing inter_event: kw not a json object`), null) : (yn(`${et(e)}: parsing inter_kw: no kw`), null);
2696
2729
  }(e, n.data);
2697
2730
  if (!o) return yn(`${et(e)}: frame dropped from ${l}: ${String(n.data).substring(0, 256)}`), -1;
2698
- if (Rl(e)) {
2731
+ if (Cl(e)) {
2699
2732
  let e = Xe(qe()) + " <== " + l, t = n.data.length, r = yt(qe(), "trace_ievent_callback");
2700
- r ? r(e, o, 2, t) : Il(0, e, o);
2733
+ r ? r(e, o, 2, t) : Vl(0, e, o);
2701
2734
  }
2702
2735
  let s = o.event, i = o.kw;
2703
2736
  if ("ST_SESSION" !== kt(e)) {
2704
2737
  if (It(e, s, $.EVF_PUBLIC_EVENT)) {
2705
2738
  if (!(Vt(e, s, i, e) < 0)) return 0;
2706
2739
  } else hn(`${et(e)}: event UNKNOWN in not-session state ${s}`);
2707
- return Al(e), -1;
2740
+ return Fl(e), -1;
2708
2741
  }
2709
2742
  o = null;
2710
- let _ = Wr(e, i), a = Gr(e, i, Sl), u = Er(e, a, "dst_role", "");
2743
+ let _ = xr(e, i), a = Mr(e, i, kl), u = Tr(e, a, "dst_role", "");
2711
2744
  if (u.toLowerCase() !== ze().toLowerCase()) return hn(`"It's not my role, dst_role: ${u}, my_role: ${ze()}`), 0;
2712
- let c = Er(e, a, "dst_service", "");
2745
+ let c = Tr(e, a, "dst_service", "");
2713
2746
  if ("__subscribing__" === _) return yn(`${et(e)}: subscription event ignored, I'm client (service: ${c}, event: ${s})`), -1;
2714
2747
  if ("__unsubscribing__" === _) return yn(`${et(e)}: unsubscription event ignored, I'm client (service: ${c}, event: ${s})`), -1;
2715
2748
  if (It(e, s, $.EVF_PUBLIC_EVENT)) return Vt(e, s, i, e), 0;
@@ -2719,13 +2752,13 @@
2719
2752
  }
2720
2753
  return lt(e) ? Vt(nt(e), s, i, e) : Xt(e, s, i), 0;
2721
2754
  }
2722
- function Yl(e, t, n, r) {
2755
+ function Xl(e, t, n, r) {
2723
2756
  return 0;
2724
2757
  }
2725
- function Bl(e, t, n, r) {
2758
+ function Zl(e, t, n, r) {
2726
2759
  return 0;
2727
2760
  }
2728
- var Jl = {
2761
+ var eo = {
2729
2762
  mt_create: function(e) {
2730
2763
  let t = e.priv;
2731
2764
  t.gobj_timer = Ce(Xe(e), "C_TIMER", {}, e), t.ws_seq = 0, t.url = jt(e, "url"), t.remote_yuno_name = jt(e, "remote_yuno_name"), t.remote_yuno_role = jt(e, "remote_yuno_role"), t.remote_yuno_service = jt(e, "remote_yuno_service"), $t(e, "wanted_yuno_name", t.remote_yuno_name), $t(e, "wanted_yuno_role", t.remote_yuno_role), $t(e, "wanted_yuno_service", t.remote_yuno_service);
@@ -2755,43 +2788,43 @@
2755
2788
  code: 1e3,
2756
2789
  reason: "restarted",
2757
2790
  was_clean: !0
2758
- }, e), pl(t.gobj_timer)), t.websocket = kl(e), 0;
2791
+ }, e), vl(t.gobj_timer)), t.websocket = Ul(e), 0;
2759
2792
  },
2760
2793
  mt_stop: function(e) {
2761
2794
  let t = e.priv;
2762
- return pl(t.gobj_timer), t.websocket && Al(e), 0;
2795
+ return vl(t.gobj_timer), t.websocket && Fl(e), 0;
2763
2796
  },
2764
2797
  mt_destroy: function(e) {},
2765
2798
  mt_stats: function(e, t, n, r) {
2766
2799
  if ("ST_SESSION" !== kt(e)) return hn("Not in session"), null;
2767
2800
  n || (n = {});
2768
- let l = Pl(e, Xe(r), Er(e, n, "service", null, 0)), o = jr(e, n, "__md_stats__", null, Zt.KW_EXTRACT);
2769
- return o || (o = {}), Vr(e, n, "stats_stack", {
2801
+ let l = Wl(e, Xe(r), Tr(e, n, "service", null, 0)), o = Or(e, n, "__md_stats__", null, Zt.KW_EXTRACT);
2802
+ return o || (o = {}), Gr(e, n, "stats_stack", {
2770
2803
  stats: t,
2771
2804
  kw: o
2772
- }), Vr(e, n, Sl, l), n.__stats__ = t, Mr(e, n, "__stats__"), Ll(e, "EV_MT_STATS", n, r), null;
2805
+ }), Gr(e, n, kl, l), n.__stats__ = t, Wr(e, n, "__stats__"), Ml(e, "EV_MT_STATS", n, r), null;
2773
2806
  },
2774
2807
  mt_command_parser: function(e, t, n, r) {
2775
2808
  if ("ST_SESSION" !== kt(e)) return hn("Not in session"), null;
2776
2809
  n || (n = {});
2777
- let l = Pl(e, Xe(r), Er(e, n, "service", "", 0)), o = jr(e, n, "__md_command__", null, Zt.KW_EXTRACT);
2778
- return o || (o = {}), Vr(e, n, "command_stack", {
2810
+ let l = Wl(e, Xe(r), Tr(e, n, "service", "", 0)), o = Or(e, n, "__md_command__", null, Zt.KW_EXTRACT);
2811
+ return o || (o = {}), Gr(e, n, "command_stack", {
2779
2812
  command: t,
2780
2813
  kw: o
2781
- }), Vr(e, n, Sl, l), n.__command__ = t, Mr(e, n, "__command__"), Ll(e, "EV_MT_COMMAND", n, r), null;
2814
+ }), Gr(e, n, kl, l), n.__command__ = t, Wr(e, n, "__command__"), Ml(e, "EV_MT_COMMAND", n, r), null;
2782
2815
  },
2783
2816
  mt_inject_event: function(e, t, n, r) {
2784
2817
  if ("ST_SESSION" !== kt(e)) return window.console.error("Not in session"), -1;
2785
- if (n = Gn({}, Zn(n) ? n : {}), Zn(n.__md_iev__) && (n.__md_iev__ = Fn(n.__md_iev__)), Gr(e, n, Sl));
2818
+ if (n = Gn({}, Zn(n) ? n : {}), Zn(n.__md_iev__) && (n.__md_iev__ = Fn(n.__md_iev__)), Mr(e, n, kl));
2786
2819
  else {
2787
- let l = Pl(e, Xe(r), Er(e, n, "__service__", 0, 0));
2788
- Kn(n, "__service__"), Vr(e, n, "__message__", t), Vr(e, n, Sl, l);
2820
+ let l = Wl(e, Xe(r), Tr(e, n, "__service__", 0, 0));
2821
+ Kn(n, "__service__"), Gr(e, n, "__message__", t), Gr(e, n, kl, l);
2789
2822
  }
2790
- return Mr(e, n, "__message__"), Ll(e, t, n, r);
2823
+ return Wr(e, n, "__message__"), Ml(e, t, n, r);
2791
2824
  },
2792
2825
  mt_subscription_added: function(e, t) {
2793
2826
  let n = e.priv;
2794
- return "ST_SESSION" === kt(e) && n.websocket ? n.inside_on_open ? 0 : Fl(e, t) : 0;
2827
+ return "ST_SESSION" === kt(e) && n.websocket ? n.inside_on_open ? 0 : Kl(e, t) : 0;
2795
2828
  },
2796
2829
  mt_subscription_deleted: function(e, t) {
2797
2830
  let n = e.priv;
@@ -2800,7 +2833,7 @@
2800
2833
  if (ir(t.event)) return 0;
2801
2834
  let r = {}, l = t.__global__, o = t.__config__, s = t.__filter__, i = t.__service__, _ = t.subscriber;
2802
2835
  o && (r.__config__ = o), l && (r.__global__ = l), s && (r.__filter__ = s);
2803
- return Vr(e, r, Sl, Pl(e, Xe(_), i)), Mr(e, r, "__unsubscribing__"), Ll(e, t.event, r, e);
2836
+ return Gr(e, r, kl, Wl(e, Xe(_), i)), Wr(e, r, "__unsubscribing__"), Ml(e, t.event, r, e);
2804
2837
  }
2805
2838
  };
2806
2839
  e.GObj = S, e.SDATA = j, e.SDATAAUTHZ = (e, t, n, r, l, o) => new T(e, t, n, null, o, r, null, 0, null, l, null), e.SDATACM = (e, t, n, r, l, o) => new T(e, t, 0, null, o, n, null, 0, l, r, null), e.SDATACM2 = (e, t, n, r, l, o, s) => new T(e, t, n, null, s, r, null, 0, o, l, null), e.SDATADF = (e, t, n, r, l, o) => new T(e, t, n, null, o, null, r, l), e.SDATAPM = (e, t, n, r, l) => new T(e, t, n, r, l), e.SDATAPM0 = (e, t, n, r, l) => new T(e, t, n, null, l, null, null, 0, null, null, r), e.SDATA_END = v, e.SDataDesc = T, e.YUNETA_VERSION = s, Object.defineProperty(e, "__yuno__", {
@@ -2814,7 +2847,7 @@
2814
2847
  return t;
2815
2848
  }, e.build_stats_response = o, e.clean_name = function(e) {
2816
2849
  return e.replace(/[?# ^:]/g, "_");
2817
- }, e.clear_timeout = pl, e.cmp_two_simple_json = cr, e.command_parser = function(e, t, n, r) {}, e.createElement2 = function e(t, n) {
2850
+ }, e.clear_timeout = vl, e.cmp_two_simple_json = cr, e.command_parser = function(e, t, n, r) {}, e.createElement2 = function e(t, n) {
2818
2851
  let [r, l, o, s] = t;
2819
2852
  if (!r) return void hn("Tag must be a valid HTML element.");
2820
2853
  let i = document.createElement(r), _ = "";
@@ -2823,16 +2856,21 @@
2823
2856
  for (const n of Object.keys(l[e])) t += `${n}: ${l[e][n]};`;
2824
2857
  i.style.cssText = t;
2825
2858
  } else "style" === e ? i.style.cssText = l[e] : "i18n" === e || "data-i18n" === e || "data_i18next" === e || "data-i18next" === e ? null !== l[e] && void 0 !== l[e] && (_ = l[e], i.setAttribute("data-i18n", _)) : i.setAttribute(e, l[e]);
2826
- if (tr(o)) if (o = o.trim(), o.length > 0 && "<" === o[0]) i.appendChild(Jr(o));
2827
- else if (n && _) i.textContent = n(_) || o;
2859
+ if (Hr(o)) i.appendChild(zr(o));
2860
+ else if (tr(o)) if (o = o.trim(), o.length > 0 && "<" === o[0] && !Qr) i.appendChild(Zr(o));
2861
+ else if (o.length > 0 && "<" === o[0] && function(e) {
2862
+ if (Xr.size >= 100) return;
2863
+ const t = e.slice(0, 80);
2864
+ Xr.has(t) || (Xr.add(t), yn(`createElement2: a string that starts with '<' is TEXT (set_strings_are_text): use html_markup() if it is markup: ${JSON.stringify(t)}`));
2865
+ }(o), n && _) i.textContent = n(_) || o;
2828
2866
  else i.textContent = o;
2829
2867
  else if (er(o)) {
2830
2868
  if (o.length > 0) if (tr(o[0])) i.appendChild(e(o, n));
2831
- else for (let t of o) Array.isArray(t) ? t.length > 0 && i.appendChild(e(t, n)) : t instanceof Node ? i.appendChild(t) : tr(t) ? i.appendChild(document.createTextNode(t)) : null != t && !1 !== t && hn("createElement2: child ignored, type " + typeof t);
2869
+ else for (let t of o) Array.isArray(t) ? t.length > 0 && i.appendChild(e(t, n)) : t instanceof Node ? i.appendChild(t) : Hr(t) ? i.appendChild(zr(t)) : tr(t) ? i.appendChild(document.createTextNode(t)) : null != t && !1 !== t && hn("createElement2: child ignored, type " + typeof t);
2832
2870
  } else o instanceof HTMLElement || o instanceof Text || o instanceof SVGElement ? i.appendChild(o) : null != o && (hn("content ignored"), vn(o));
2833
2871
  if (s && "object" == typeof s) for (const e of Object.keys(s)) i.addEventListener(e, s[e]);
2834
2872
  return i;
2835
- }, e.createOneHtml = Jr, e.create_json_record = function(e, t) {
2873
+ }, e.createOneHtml = Zr, e.create_json_record = function(e, t) {
2836
2874
  let n = Fn(e);
2837
2875
  return Mn(n, t), n;
2838
2876
  }, e.create_template_record = function(e, t) {
@@ -2840,24 +2878,24 @@
2840
2878
  return t || (t = {}), Object.entries(e).forEach(([e, r]) => {
2841
2879
  let l;
2842
2880
  Zn(r) && (l = r.default);
2843
- let o = jr(null, t, e, l);
2881
+ let o = Or(null, t, e, l);
2844
2882
  n[e] = o;
2845
2883
  }), n;
2846
- }, e.current_timestamp = qr, e.data_type_t = y, e.db_list_persistent_attrs = function(e, t) {
2847
- let n = Dr(rl(e), null, !1), r = {};
2848
- return n && Zn(n) && (r = Rr(e, n, t, !1)), r;
2884
+ }, e.current_timestamp = el, e.data_type_t = y, e.db_list_persistent_attrs = function(e, t) {
2885
+ let n = kr(al(e), null, !1), r = {};
2886
+ return n && Zn(n) && (r = $r(e, n, t, !1)), r;
2849
2887
  }, e.db_load_persistent_attrs = function(e, t) {
2850
- let n = Et(e, E.SDF_PERSIST), r = Dr(rl(e), null, !1);
2888
+ let n = Et(e, E.SDF_PERSIST), r = kr(al(e), null, !1);
2851
2889
  if (r && Zn(r)) {
2852
- let l = Rr(e, r, t, !1);
2853
- l = Rr(e, l, n, !1), wt(e, l, E.SDF_PERSIST);
2890
+ let l = $r(e, r, t, !1);
2891
+ l = $r(e, l, n, !1), wt(e, l, E.SDF_PERSIST);
2854
2892
  }
2855
2893
  }, e.db_remove_persistent_attrs = function(e, t) {
2856
- let n = $r(e, Dr(rl(e), null, !1), t, !1);
2857
- 0 === zn(n) ? Ar(rl(e)) : kr(rl(e), n);
2894
+ let n = Dr(e, kr(al(e), null, !1), t, !1);
2895
+ 0 === zn(n) ? Ir(al(e)) : Ar(al(e), n);
2858
2896
  }, e.db_save_persistent_attrs = function(e, t) {
2859
- let n = Rr(e, Et(e, E.SDF_PERSIST), t, !1), r = Dr(rl(e), null, !1);
2860
- return r && Zn(r) && Wn(n, r), kr(rl(e), n);
2897
+ let n = $r(e, Et(e, E.SDF_PERSIST), t, !1), r = kr(al(e), null, !1);
2898
+ return r && Zn(r) && Wn(n, r), Ar(al(e), n);
2861
2899
  }, e.debounce = function(e, t = 0, n = !1) {
2862
2900
  let r = null, l = null, o = null;
2863
2901
  const s = (...s) => {
@@ -2881,20 +2919,20 @@
2881
2919
  return t;
2882
2920
  }, e.empty_json = function(e) {
2883
2921
  return 0 === Xn(e);
2884
- }, e.empty_string = ir, e.escapeHtml = Br, e.event_flag_t = $, e.flat2json = function(e) {
2922
+ }, e.empty_string = ir, e.escapeHtml = Jr, e.event_flag_t = $, e.flat2json = function(e) {
2885
2923
  if (null === e || "object" != typeof e || Array.isArray(e)) throw new Error("flat2json: a flat json is an object of id -> value");
2886
2924
  let t = null;
2887
2925
  for (const n of Object.keys(e)) {
2888
- const r = tl(n);
2926
+ const r = il(n);
2889
2927
  if (!r || 0 === r.length) throw new Error(`flat2json: malformed flat id: '${n}'`);
2890
- if (r.length > Xr) throw new Error(`flat2json: '${n}' deeper than 256`);
2928
+ if (r.length > ll) throw new Error(`flat2json: '${n}' deeper than 256`);
2891
2929
  const l = "number" == typeof r[0];
2892
2930
  if (null === t) t = l ? [] : {};
2893
2931
  else if (l !== Array.isArray(t)) throw new Error(`flat2json: '${n}' does not fit a ${Array.isArray(t) ? "array" : "object"} root`);
2894
2932
  let o = t;
2895
2933
  for (let t = 0; t < r.length; t++) {
2896
2934
  const l = r[t], s = "number" == typeof l, i = t === r.length - 1, _ = !i && "number" == typeof r[t + 1];
2897
- if (s && l > Zr) throw new Error(`flat2json: array index ${l} over the limit (100000) in '${n}'`);
2935
+ if (s && l > ol) throw new Error(`flat2json: array index ${l} over the limit (100000) in '${n}'`);
2898
2936
  if (s !== Array.isArray(o)) throw new Error(`flat2json: '${n}' uses a ${s ? "array index" : "key"} where the tree already has a ${Array.isArray(o) ? "array" : "object"}`);
2899
2937
  if (i) {
2900
2938
  if (Array.isArray(o)) {
@@ -2934,15 +2972,15 @@
2934
2972
  removed: {},
2935
2973
  changed: {}
2936
2974
  };
2937
- for (const e of Object.keys(n)) Object.prototype.hasOwnProperty.call(r, e) ? nl(n[e], r[e]) || br(l.changed, e, {
2975
+ for (const e of Object.keys(n)) Object.prototype.hasOwnProperty.call(r, e) ? _l(n[e], r[e]) || br(l.changed, e, {
2938
2976
  from: n[e],
2939
2977
  to: r[e]
2940
2978
  }) : br(l.removed, e, n[e]);
2941
2979
  for (const e of Object.keys(r)) Object.prototype.hasOwnProperty.call(n, e) || br(l.added, e, r[e]);
2942
2980
  return l;
2943
2981
  }, e.flat_key_join = function(e) {
2944
- return Array.isArray(e) && 0 !== e.length ? e.map((e) => "number" == typeof e ? `[${e}]` : el(e)).join("`") : "";
2945
- }, e.flat_key_split = tl, e.gclass_add_ev_action = ye, e.gclass_add_event_type = Te, e.gclass_add_state = he, e.gclass_check_fsm = je, e.gclass_create = de, e.gclass_event_type = ve, e.gclass_find_by_name = Oe, e.gclass_flag_t = w, e.gclass_unregister = be, e.getPositionRelativeToBody = function(e) {
2982
+ return Array.isArray(e) && 0 !== e.length ? e.map((e) => "number" == typeof e ? `[${e}]` : sl(e)).join("`") : "";
2983
+ }, e.flat_key_split = il, e.gclass_add_ev_action = ye, e.gclass_add_event_type = Te, e.gclass_add_state = he, e.gclass_check_fsm = je, e.gclass_create = de, e.gclass_event_type = ve, e.gclass_find_by_name = Oe, e.gclass_flag_t = w, e.gclass_unregister = be, e.getPositionRelativeToBody = function(e) {
2946
2984
  if (!e) return {
2947
2985
  top: 0,
2948
2986
  left: 0,
@@ -2961,7 +2999,7 @@
2961
2999
  right: n + i + r,
2962
3000
  bottom: t + s + l
2963
3001
  };
2964
- }, e.get_function_name = Qr, e.get_now = function() {
3002
+ }, e.get_function_name = rl, e.get_now = function() {
2965
3003
  return Math.floor(Date.now() / 1e3);
2966
3004
  }, e.gobj_bottom_gobj = st, e.gobj_change_parent = function(e, t) {
2967
3005
  return ot(e) ? (hn("gobj NULL or DESTROYED"), null) : t instanceof S ? (e.parent && e.parent.gclass.gmt.mt_child_removed && e.parent.gclass.gmt.mt_child_removed(e.parent, e), e.parent && ($e(e.parent, e), e.parent = null), Re(t, e), t.gclass.gmt.mt_child_added && (Y(e) && En(n("👦👦🔵 child_added(%s): %s", tt(t), et(e))), t.gclass.gmt.mt_child_added(t, e)), 0) : (hn(`${et(e)}: gobj_change_parent() BAD TYPE of parent`), -1);
@@ -2997,13 +3035,13 @@
2997
3035
  }, e.gobj_list_subscriptions = function(e) {
2998
3036
  let t = zt(e, null, null, null);
2999
3037
  for (let n = 0; n < t.length; n++) {
3000
- let r = t[n], l = Tr(e, r, "publisher", null, Zt.KW_REQUIRED), o = Tr(e, r, "subscriber", null, Zt.KW_REQUIRED);
3001
- Bn(r, "s_event", Er(e, r, "event", "", Zt.KW_REQUIRED)), Bn(r, "s_publisher", et(l)), Bn(r, "s_subscriber", et(o));
3038
+ let r = t[n], l = vr(e, r, "publisher", null, Zt.KW_REQUIRED), o = vr(e, r, "subscriber", null, Zt.KW_REQUIRED);
3039
+ Bn(r, "s_event", Tr(e, r, "event", "", Zt.KW_REQUIRED)), Bn(r, "s_publisher", et(l)), Bn(r, "s_subscriber", et(o));
3002
3040
  }
3003
3041
  let n = Qt(e, 0, null, 0);
3004
3042
  for (let t = 0; t < n.length; t++) {
3005
- let r = n[t], l = Tr(e, r, "publisher", null, Zt.KW_REQUIRED), o = Tr(e, r, "subscriber", null, Zt.KW_REQUIRED);
3006
- Bn(r, "s_event", Er(e, r, "event", "", Zt.KW_REQUIRED)), Bn(r, "s_publisher", et(l)), Bn(r, "s_subscriber", et(o));
3043
+ let r = n[t], l = vr(e, r, "publisher", null, Zt.KW_REQUIRED), o = vr(e, r, "subscriber", null, Zt.KW_REQUIRED);
3044
+ Bn(r, "s_event", Tr(e, r, "event", "", Zt.KW_REQUIRED)), Bn(r, "s_publisher", et(l)), Bn(r, "s_subscriber", et(o));
3007
3045
  }
3008
3046
  return {
3009
3047
  subscriptions: t,
@@ -3108,9 +3146,11 @@
3108
3146
  0 === r ? i++ : r < 0 ? _++ : a++;
3109
3147
  }
3110
3148
  return _ ? yn(`${et(e)}: Hard subscription not removed, only gobj_unsubscribe_list() with force removes it (event: ${t}, hard: ${_})`) : i || a || (yn(`${et(e)}: No subscription found`), Un(n, "No subscription found")), 0;
3111
- }, e.gobj_unsubscribe_list = Ht, e.gobj_walk_gobj_children = at, e.gobj_walk_gobj_children_tree = ut, e.gobj_write_attr = St, e.gobj_write_attrs = wt, e.gobj_write_bool_attr = Nt, e.gobj_write_integer_attr = Rt, e.gobj_write_str_attr = $t, e.gobj_yuno = qe, e.gobj_yuno_id = Qe, e.gobj_yuno_name = He, e.gobj_yuno_role = ze, e.id_index_in_obj_list = Lr, e.index_in_list = Hr, e.is_array = er, e.is_boolean = rr, e.is_date = function(e) {
3149
+ }, e.gobj_unsubscribe_list = Ht, e.gobj_walk_gobj_children = at, e.gobj_walk_gobj_children_tree = ut, e.gobj_write_attr = St, e.gobj_write_attrs = wt, e.gobj_write_bool_attr = Nt, e.gobj_write_integer_attr = Rt, e.gobj_write_str_attr = $t, e.gobj_yuno = qe, e.gobj_yuno_id = Qe, e.gobj_yuno_name = He, e.gobj_yuno_role = ze, e.html_markup = function(e) {
3150
+ return "string" != typeof e ? (hn("html_markup: not a string, type " + typeof e), new qr("")) : new qr(e);
3151
+ }, e.id_index_in_obj_list = Pr, e.index_in_list = tl, e.is_array = er, e.is_boolean = rr, e.is_date = function(e) {
3112
3152
  return e instanceof Date && !isNaN(e);
3113
- }, e.is_function = or, e.is_gobj = sr, e.is_metadata_key = function(e) {
3153
+ }, e.is_function = or, e.is_gobj = sr, e.is_html_markup = Hr, e.is_metadata_key = function(e) {
3114
3154
  if (!tr(e)) return !1;
3115
3155
  let t = 0;
3116
3156
  for (; t < e.length && "_" === e[t] && !(t > 2); t++);
@@ -3126,53 +3166,53 @@
3126
3166
  const t = Number(e);
3127
3167
  return !isNaN(t) && "" !== e.trim() && !isNaN(t);
3128
3168
  }, e.is_secret_name = wn, e.is_string = tr, e.jdb_delete = function(e, t, n, r) {
3129
- let l = jr(null, jr(null, e, "topics", null, 0), t, null, 0);
3169
+ let l = Or(null, Or(null, e, "topics", null, 0), t, null, 0);
3130
3170
  if (!l) return hn("jdb_delete: topic not found: " + t), null;
3131
3171
  if (ir(r.id)) return hn("jdb_delete: record without id: " + r), Tn(r), null;
3132
3172
  let o, s = n.split("`"), i = l;
3133
- for (; (o = s.shift()) && !ir(o) && i;) Zn(i) && (i = jr(null, i, e.hook, null, 0)), i = Kr(i, null, o, !1);
3173
+ for (; (o = s.shift()) && !ir(o) && i;) Zn(i) && (i = Or(null, i, e.hook, null, 0)), i = Yr(i, null, o, !1);
3134
3174
  if (0 === s.length && i) if (er(i)) {
3135
- let e = Lr(i, r.id);
3175
+ let e = Pr(i, r.id);
3136
3176
  e >= 0 && i.splice(e, 1);
3137
3177
  } else {
3138
- let t = jr(null, i, e.hook, null, 0), n = Lr(t, r.id);
3178
+ let t = Or(null, i, e.hook, null, 0), n = Pr(t, r.id);
3139
3179
  n >= 0 && t.splice(n, 1);
3140
3180
  }
3141
3181
  return l;
3142
3182
  }, e.jdb_get = function(e, t, n, r) {
3143
- let l = jr(null, jr(null, e, "topics", null, 0), t, null, 0);
3144
- return l ? (void 0 === r && (r = !0), Kr(l, e.hook, n, r)) : (hn("jdb_get: topic not found: " + t), null);
3183
+ let l = Or(null, Or(null, e, "topics", null, 0), t, null, 0);
3184
+ return l ? (void 0 === r && (r = !0), Yr(l, e.hook, n, r)) : (hn("jdb_get: topic not found: " + t), null);
3145
3185
  }, e.jdb_get_by_idx = function(e, t, n) {
3146
- let r = jr(null, jr(null, e, "topics", null, 0), t, null, 0);
3186
+ let r = Or(null, Or(null, e, "topics", null, 0), t, null, 0);
3147
3187
  return r ? n < r.length ? r[n] : {} : (hn("jdb_get_by_idx: topic not found: " + t), null);
3148
3188
  }, e.jdb_get_topic = function(e, t) {
3149
- let n = jr(null, e, "topics", null, 0);
3189
+ let n = Or(null, e, "topics", null, 0);
3150
3190
  if (!n) return hn("jdb topics section not found"), Tn(e), null;
3151
- return jr(null, n, t, null, 0) || (hn("jdb topic not found: " + t), Tn(n), null);
3191
+ return Or(null, n, t, null, 0) || (hn("jdb topic not found: " + t), Tn(n), null);
3152
3192
  }, e.jdb_init = function(e, t, n) {
3153
3193
  n && (e = Fn(e));
3154
- let r = jr(null, e, "type", [], 1);
3155
- Er(null, e, "hook", "data", 1);
3156
- let l = jr(null, e, "schema", {}, 1), o = jr(null, e, "topics", {}, 1);
3157
- return xr(l, function(e, t, n, l) {
3158
- "__" !== t.substring(0, 2) && jr(null, o, l, Fn(r), 1);
3194
+ let r = Or(null, e, "type", [], 1);
3195
+ Tr(null, e, "hook", "data", 1);
3196
+ let l = Or(null, e, "schema", {}, 1), o = Or(null, e, "topics", {}, 1);
3197
+ return Kr(l, function(e, t, n, l) {
3198
+ "__" !== t.substring(0, 2) && Or(null, o, l, Fn(r), 1);
3159
3199
  }, t), e;
3160
3200
  }, e.jdb_update = function(e, t, n, r) {
3161
- let l = jr(null, jr(null, e, "topics", null, 0), t, null, 0);
3201
+ let l = Or(null, Or(null, e, "topics", null, 0), t, null, 0);
3162
3202
  if (!l) return hn("jdb_update: topic not found: " + t), null;
3163
3203
  if (ir(r.id)) return hn("jdb_update: record without id: " + r), Tn(r), null;
3164
3204
  let o, s = n.split("`"), i = l;
3165
- for (; (o = s.shift()) && !ir(o) && i;) Zn(i) && (i = jr(null, i, e.hook, [], 1)), i = Kr(i, null, o, !1);
3205
+ for (; (o = s.shift()) && !ir(o) && i;) Zn(i) && (i = Or(null, i, e.hook, [], 1)), i = Yr(i, null, o, !1);
3166
3206
  if (0 === s.length && i) if (er(i)) i.push(r);
3167
3207
  else if (i.id === r.id) Gn(i, r);
3168
3208
  else {
3169
- let t = jr(null, i, e.hook, [], 1), n = Kr(t, e.hook, r.id, !1);
3209
+ let t = Or(null, i, e.hook, [], 1), n = Yr(t, e.hook, r.id, !1);
3170
3210
  n ? Gn(n, r) : t.push(r);
3171
3211
  }
3172
3212
  return l;
3173
3213
  }, e.json2flat = function(e) {
3174
3214
  const t = {}, n = (e, r, l) => {
3175
- if (l > Xr) throw new Error("json2flat: deeper than 256");
3215
+ if (l > ll) throw new Error("json2flat: deeper than 256");
3176
3216
  if (null === e || "object" != typeof e || Array.isArray(e)) {
3177
3217
  if (Array.isArray(e) && e.length > 0) return void e.forEach((e, t) => {
3178
3218
  const o = `[${t}]`;
@@ -3182,7 +3222,7 @@
3182
3222
  const t = Object.keys(e);
3183
3223
  if (t.length > 0) {
3184
3224
  for (const o of t) {
3185
- const t = el(o);
3225
+ const t = sl(o);
3186
3226
  n(e[o], 0 === l ? t : r + "`" + t, l + 1);
3187
3227
  }
3188
3228
  return;
@@ -3195,7 +3235,7 @@
3195
3235
  return t ? (Array.prototype.push.apply(e, t), e) : e;
3196
3236
  }, e.json_array_remove = Hn, e.json_array_size = Qn, e.json_deep_copy = Fn, e.json_is_identical = Vn, e.json_mask_secrets = Pn, e.json_object_del = Kn, e.json_object_get = xn, e.json_object_set = Yn, e.json_object_set_new = Bn, e.json_object_size = zn, e.json_object_update = Gn, e.json_object_update_existing = Mn, e.json_object_update_missing = Wn, e.json_size = Xn, e.jwt2json = function(e, t) {
3197
3237
  try {
3198
- let n = Yr(e);
3238
+ let n = Br(e);
3199
3239
  switch (t) {
3200
3240
  case "header": return JSON.parse(n.header);
3201
3241
  case "signature": return JSON.parse(n.signature);
@@ -3204,9 +3244,9 @@
3204
3244
  } catch (e) {
3205
3245
  return null;
3206
3246
  }
3207
- }, e.jwtDecode = Yr, e.kw_clone_by_keys = Rr, e.kw_clone_by_not_keys = $r, e.kw_collect = function(e, t, n, r) {
3247
+ }, e.jwtDecode = Br, e.kw_clone_by_keys = $r, e.kw_clone_by_not_keys = Dr, e.kw_collect = function(e, t, n, r) {
3208
3248
  if (e && !sr(e) && hn("GObj bad instanceof"), !t) return null;
3209
- r || (r = Nr);
3249
+ r || (r = Rr);
3210
3250
  let l = [];
3211
3251
  if (er(t)) for (let e = 0; e < t.length; e++) {
3212
3252
  let o = t[e];
@@ -3217,23 +3257,23 @@
3217
3257
  r(t, n) && l.push(t);
3218
3258
  }
3219
3259
  return l;
3220
- }, e.kw_delete = mr, e.kw_find_json_in_list = function(e, t, n, r) {
3260
+ }, e.kw_delete = hr, e.kw_find_json_in_list = function(e, t, n, r) {
3221
3261
  if (!n || !er(t)) return r && hn("item NULL or kw_list is not a list"), -1;
3222
3262
  for (let e = 0; e < t.length; e++) if (Vn(n, t[e])) return e;
3223
3263
  return r && hn("item not found in this list"), -1;
3224
- }, e.kw_find_path = pr, e.kw_flag_t = Zt, e.kw_get_bool = hr, e.kw_get_dict = vr, e.kw_get_dict_value = jr, e.kw_get_int = yr, e.kw_get_list = function(e, t, n, r, l) {
3264
+ }, e.kw_find_path = mr, e.kw_flag_t = Zt, e.kw_get_bool = yr, e.kw_get_dict = jr, e.kw_get_dict_value = Or, e.kw_get_int = Er, e.kw_get_list = function(e, t, n, r, l) {
3225
3265
  e && !sr(e) && hn("GObj bad instanceof");
3226
- let o = pr(e, t, n, !1);
3266
+ let o = mr(e, t, n, !1);
3227
3267
  const s = l && l & Zt.KW_REQUIRED, i = l && l & Zt.KW_CREATE, _ = l && l & Zt.KW_EXTRACT;
3228
- return void 0 === o ? i && er(r) && t ? (Or(e, t, n, r), r) : (s && (hn(`path not found: '${n}'`), Un(t)), r) : er(o) ? (_ && mr(e, t, n), o) : (s && (hn(`${e ? et(e) + ": " : ""}path MUST BE a json list: '${n}'`), Un(t)), r);
3229
- }, e.kw_get_local_storage_value = Dr, e.kw_get_pointer = Tr, e.kw_get_real = function(e, t, n, r, l) {
3268
+ return void 0 === o ? i && er(r) && t ? (Sr(e, t, n, r), r) : (s && (hn(`path not found: '${n}'`), Un(t)), r) : er(o) ? (_ && hr(e, t, n), o) : (s && (hn(`${e ? et(e) + ": " : ""}path MUST BE a json list: '${n}'`), Un(t)), r);
3269
+ }, e.kw_get_local_storage_value = kr, e.kw_get_pointer = vr, e.kw_get_real = function(e, t, n, r, l) {
3230
3270
  e && !sr(e) && hn("GObj bad instanceof");
3231
- let o = pr(e, t, n, !1);
3271
+ let o = mr(e, t, n, !1);
3232
3272
  const s = l && l & Zt.KW_REQUIRED, i = l && l & Zt.KW_CREATE, _ = l && l & Zt.KW_EXTRACT, a = l && l & Zt.KW_WILD_NUMBER;
3233
3273
  if (void 0 === o) {
3234
3274
  if (i && t) {
3235
3275
  let l = Number(r);
3236
- return Or(e, t, n, l), l;
3276
+ return Sr(e, t, n, l), l;
3237
3277
  }
3238
3278
  return s && (hn(`path not found: '${n}'`), Un(t)), Number(r);
3239
3279
  }
@@ -3248,10 +3288,10 @@
3248
3288
  u = 0;
3249
3289
  }
3250
3290
  }
3251
- return _ && mr(e, t, n), u;
3252
- }, e.kw_get_str = Er, e.kw_has_key = gr, e.kw_match_simple = Nr, e.kw_pop = fr, e.kw_remove_local_storage_value = Ar, e.kw_select = function(e, t, n, r) {
3291
+ return _ && hr(e, t, n), u;
3292
+ }, e.kw_get_str = Tr, e.kw_has_key = gr, e.kw_match_simple = Rr, e.kw_pop = fr, e.kw_remove_local_storage_value = Ir, e.kw_select = function(e, t, n, r) {
3253
3293
  if (e && !sr(e) && hn("GObj bad instanceof"), !t) return null;
3254
- r || (r = Nr);
3294
+ r || (r = Rr);
3255
3295
  let l = [];
3256
3296
  if (er(t)) for (let e = 0; e < t.length; e++) {
3257
3297
  let o = t[e];
@@ -3262,9 +3302,9 @@
3262
3302
  r(t, n) && l.push(Fn(t));
3263
3303
  }
3264
3304
  return l;
3265
- }, e.kw_set_dict_value = Or, e.kw_set_local_storage_value = kr, e.kw_set_subdict_value = Sr, e.kwid_collect = Cr, e.kwid_find_one_record = function(e, t, n, r, l) {
3305
+ }, e.kw_set_dict_value = Sr, e.kw_set_local_storage_value = Ar, e.kw_set_subdict_value = wr, e.kwid_collect = Lr, e.kwid_find_one_record = function(e, t, n, r, l) {
3266
3306
  e && !sr(e) && hn("GObj bad instanceof");
3267
- let o = Cr(e, t, n, r, l);
3307
+ let o = Lr(e, t, n, r, l);
3268
3308
  return o && 0 !== o.length ? o[0] : null;
3269
3309
  }, e.kwid_get_ids = function(e, t) {
3270
3310
  if (e && !sr(e) && hn("GObj bad instanceof"), !t) return [];
@@ -3274,23 +3314,23 @@
3274
3314
  else er(t) && t.forEach(function(t) {
3275
3315
  if (tr(t)) ir(t) || n.push(t);
3276
3316
  else if (Zn(t)) {
3277
- let r = Er(e, t, "id", 0, 0);
3317
+ let r = Tr(e, t, "id", 0, 0);
3278
3318
  r && n.push(r);
3279
3319
  }
3280
3320
  });
3281
3321
  return n;
3282
- }, e.kwid_match_id = Ir, e.kwid_new_dict = function(e, t, n) {
3322
+ }, e.kwid_match_id = Cr, e.kwid_new_dict = function(e, t, n) {
3283
3323
  e && !sr(e) && hn("GObj bad instanceof");
3284
3324
  let r = {};
3285
- if (ir(n) || (t = pr(e, t, n)), Zn(t)) r = t;
3325
+ if (ir(n) || (t = mr(e, t, n)), Zn(t)) r = t;
3286
3326
  else if (er(t)) for (let n = 0; n < t.length; n++) {
3287
- let l = t[n], o = Er(e, l, "id", "", Zt.KW_REQUIRED);
3327
+ let l = t[n], o = Tr(e, l, "id", "", Zt.KW_REQUIRED);
3288
3328
  ir(o) || br(r, o, l);
3289
3329
  }
3290
3330
  else hn(`${et(e)} kwid_new_dict: data type unknown`);
3291
3331
  return r;
3292
3332
  }, e.kwid_new_list = function(e, t, n) {
3293
- if (e && !sr(e) && hn("GObj bad instanceof"), ir(n) || (t = pr(e, t, n)), er(t)) return t;
3333
+ if (e && !sr(e) && hn("GObj bad instanceof"), ir(n) || (t = mr(e, t, n)), er(t)) return t;
3294
3334
  if (Zn(t)) {
3295
3335
  let n = [];
3296
3336
  for (let r of Object.keys(t)) {
@@ -3348,9 +3388,9 @@
3348
3388
  var e;
3349
3389
  }, r.send();
3350
3390
  }, e.log_debug = En, e.log_error = hn, e.log_info = function(e, ...t) {
3351
- let n = mn(e, ...t), r = qr();
3391
+ let n = mn(e, ...t), r = el();
3352
3392
  rn && cn("info", n) && rn("%c" + r + " INFO: " + String(n), "color:cyan"), gn("info", n, r);
3353
- }, e.log_warning = yn, e.mask_secrets_inline = kn, e.msg_iev_get_msg_type = Wr, e.msg_iev_get_stack = Gr, e.msg_iev_push_stack = Vr, e.msg_iev_read_key = Ur, e.msg_iev_set_msg_type = Mr, e.msg_iev_write_key = Fr, e.node_uuid = zr, e.parseBoolean = _r, e.parseSVG = function(e) {
3393
+ }, e.log_warning = yn, e.mask_secrets_inline = kn, e.msg_iev_get_msg_type = xr, e.msg_iev_get_stack = Mr, e.msg_iev_push_stack = Gr, e.msg_iev_read_key = Fr, e.msg_iev_set_msg_type = Wr, e.msg_iev_write_key = Vr, e.node_uuid = nl, e.parseBoolean = _r, e.parseSVG = function(e) {
3354
3394
  return new DOMParser().parseFromString(e, "image/svg+xml").firstChild;
3355
3395
  }, e.refresh_language = function(e, t) {
3356
3396
  if (!or(t)) return void hn("You must supply a translation function");
@@ -3377,22 +3417,22 @@
3377
3417
  });
3378
3418
  }, e.register_c_ievent_cli = function() {
3379
3419
  return function(e) {
3380
- if (Dl) return hn(`GClass ALREADY created: ${e}`), -1;
3420
+ if (Pl) return hn(`GClass ALREADY created: ${e}`), -1;
3381
3421
  const t = [
3382
3422
  ["ST_DISCONNECTED", [
3383
3423
  [
3384
3424
  "EV_ON_OPEN",
3385
- Gl,
3425
+ Bl,
3386
3426
  "ST_WAIT_IDENTITY_CARD_ACK"
3387
3427
  ],
3388
3428
  [
3389
3429
  "EV_ON_CLOSE",
3390
- Ml,
3430
+ Jl,
3391
3431
  null
3392
3432
  ],
3393
3433
  [
3394
3434
  "EV_TIMEOUT",
3395
- Vl,
3435
+ Yl,
3396
3436
  null
3397
3437
  ],
3398
3438
  [
@@ -3404,22 +3444,22 @@
3404
3444
  ["ST_WAIT_IDENTITY_CARD_ACK", [
3405
3445
  [
3406
3446
  "EV_ON_MESSAGE",
3407
- Kl,
3447
+ Ql,
3408
3448
  null
3409
3449
  ],
3410
3450
  [
3411
3451
  "EV_IDENTITY_CARD_ACK",
3412
- xl,
3452
+ zl,
3413
3453
  null
3414
3454
  ],
3415
3455
  [
3416
3456
  "EV_ON_CLOSE",
3417
- Ml,
3457
+ Jl,
3418
3458
  "ST_DISCONNECTED"
3419
3459
  ],
3420
3460
  [
3421
3461
  "EV_TIMEOUT",
3422
- Wl,
3462
+ Hl,
3423
3463
  null
3424
3464
  ],
3425
3465
  [
@@ -3431,22 +3471,22 @@
3431
3471
  ["ST_SESSION", [
3432
3472
  [
3433
3473
  "EV_ON_MESSAGE",
3434
- Kl,
3474
+ Ql,
3435
3475
  null
3436
3476
  ],
3437
3477
  [
3438
3478
  "EV_MT_STATS",
3439
- Yl,
3479
+ Xl,
3440
3480
  null
3441
3481
  ],
3442
3482
  [
3443
3483
  "EV_MT_COMMAND",
3444
- Bl,
3484
+ Zl,
3445
3485
  null
3446
3486
  ],
3447
3487
  [
3448
3488
  "EV_ON_CLOSE",
3449
- Ml,
3489
+ Jl,
3450
3490
  "ST_DISCONNECTED"
3451
3491
  ],
3452
3492
  [
@@ -3457,7 +3497,7 @@
3457
3497
  ]],
3458
3498
  [null, null]
3459
3499
  ];
3460
- return (Dl = de(e, [
3500
+ return (Pl = de(e, [
3461
3501
  ["EV_ON_MESSAGE", $.EVF_OUTPUT_EVENT],
3462
3502
  ["EV_IDENTITY_CARD_ACK", $.EVF_PUBLIC_EVENT],
3463
3503
  ["EV_ON_ID_NAK", $.EVF_PUBLIC_EVENT | $.EVF_OUTPUT_EVENT],
@@ -3468,36 +3508,36 @@
3468
3508
  ["EV_ON_OPEN_ERROR", $.EVF_OUTPUT_EVENT | $.EVF_NO_WARN_SUBS],
3469
3509
  ["EV_TIMEOUT", 0],
3470
3510
  [null, 0]
3471
- ], t, Jl, 0, wl, $l, 0, 0, Nl, w.gcflag_no_check_output_events)) ? 0 : -1;
3511
+ ], t, eo, 0, Al, Ll, 0, 0, Il, w.gcflag_no_check_output_events)) ? 0 : -1;
3472
3512
  }("C_IEVENT_CLI");
3473
3513
  }, e.register_c_timer = function() {
3474
3514
  return function(e) {
3475
- if (cl) return hn(`GClass ALREADY created: ${e}`), -1;
3515
+ if (ml) return hn(`GClass ALREADY created: ${e}`), -1;
3476
3516
  const t = [["ST_IDLE", [[
3477
3517
  "EV_TIMEOUT",
3478
- fl,
3518
+ hl,
3479
3519
  null
3480
3520
  ]]]];
3481
- return (cl = de(e, [
3521
+ return (ml = de(e, [
3482
3522
  ["EV_TIMEOUT", $.EVF_OUTPUT_EVENT],
3483
3523
  ["EV_TIMEOUT_PERIODIC", $.EVF_OUTPUT_EVENT],
3484
3524
  [0, 0]
3485
- ], t, gl, 0, al, ul, 0, 0, 0, w.gcflag_manual_start)) ? 0 : -1;
3525
+ ], t, yl, 0, bl, pl, 0, 0, 0, w.gcflag_manual_start)) ? 0 : -1;
3486
3526
  }("C_TIMER");
3487
3527
  }, e.register_c_yuno = function() {
3488
3528
  return function(e) {
3489
- if (yl) return hn(`GClass ALREADY created: ${e}`), -1;
3529
+ if (Sl) return hn(`GClass ALREADY created: ${e}`), -1;
3490
3530
  const t = [["ST_IDLE", [[
3491
3531
  "EV_TIMEOUT_PERIODIC",
3492
- jl,
3532
+ $l,
3493
3533
  null
3494
3534
  ]]]];
3495
- return (yl = de(e, [["EV_TIMEOUT_PERIODIC", $.EVF_OUTPUT_EVENT | $.EVF_NO_WARN_SUBS], [0, 0]], t, Ol, 0, ml, hl, 0, 0, 0, 0)) ? 0 : -1;
3535
+ return (Sl = de(e, [["EV_TIMEOUT_PERIODIC", $.EVF_OUTPUT_EVENT | $.EVF_NO_WARN_SUBS], [0, 0]], t, Dl, 0, jl, Ol, 0, 0, 0, 0)) ? 0 : -1;
3496
3536
  }("C_YUNO");
3497
3537
  }, e.safeSrc = function(e) {
3498
3538
  if (!e) return "";
3499
3539
  const t = String(e).trim();
3500
- return /^javascript:/i.test(t) || /^data:/i.test(t) ? "" : Br(t);
3540
+ return /^javascript:/i.test(t) || /^data:/i.test(t) ? "" : Jr(t);
3501
3541
  }, e.sdata_flag_t = E, e.send_http_json_post = function(e, t, n) {
3502
3542
  let r = new XMLHttpRequest();
3503
3543
  r.open("POST", e), r.setRequestHeader("Accept", "application/json"), r.setRequestHeader("Content-Type", "application/json"), r.onreadystatechange = function() {
@@ -3520,13 +3560,17 @@
3520
3560
  dn(e, r, n);
3521
3561
  }
3522
3562
  } else on = e;
3523
- }, e.set_remote_log_functions = bn, e.set_timeout = dl, e.set_timeout_periodic = bl, e.sprintf = n, e.stats_parser = function(e, t, n, r) {}, e.str_in_list = Pr, e.strcasecmp = ur, e.strcmp = ar, e.strncmp = function(e, t, n) {
3563
+ }, e.set_remote_log_functions = bn, e.set_strings_are_text = function(e) {
3564
+ Qr = !!e;
3565
+ }, e.set_timeout = El, e.set_timeout_periodic = Tl, e.sprintf = n, e.stats_parser = function(e, t, n, r) {}, e.str_in_list = Ur, e.strcasecmp = ur, e.strcmp = ar, e.strings_are_text = function() {
3566
+ return Qr;
3567
+ }, e.strncmp = function(e, t, n) {
3524
3568
  var r = (e + "").substring(0, n), l = (t + "").substring(0, n);
3525
3569
  return r === l ? 0 : r > l ? 1 : -1;
3526
3570
  }, e.strs_in_list = function(e, t, n) {
3527
3571
  if (!e) return hn("ERROR: strs_in_list() list empty"), !1;
3528
3572
  if (!t) return hn("ERROR: strs_in_list() str empty"), !1;
3529
- for (let r = 0; r < t.length; r++) if (Pr(e, t[r], n)) return !0;
3573
+ for (let r = 0; r < t.length; r++) if (Ur(e, t[r], n)) return !0;
3530
3574
  return !1;
3531
3575
  }, e.strstr = function(e, t, n) {
3532
3576
  var r;
@@ -3549,9 +3593,9 @@
3549
3593
  let e = t.split(".");
3550
3594
  for (let t = 0; t < e.length; t++) {
3551
3595
  let r = e[t];
3552
- if (Pr(ol, r)) n.real_type || (n.real_type = r);
3553
- else if (Pr(il, r)) n.type || (n.type = r);
3554
- else if (Pr(sl, r)) switch (r) {
3596
+ if (Ur(cl, r)) n.real_type || (n.real_type = r);
3597
+ else if (Ur(gl, r)) n.type || (n.type = r);
3598
+ else if (Ur(fl, r)) switch (r) {
3555
3599
  case "writable":
3556
3600
  n.is_writable = !0;
3557
3601
  break;
@@ -3563,7 +3607,7 @@
3563
3607
  }
3564
3608
  }
3565
3609
  n.real_type || (n.real_type = "string");
3566
- } else Zn(t) ? (n = _l(t), n.name || (n.name = e), n.header || (n.header = e)) : er(t) && (n.real_type = "array", n.enum_list = t);
3610
+ } else Zn(t) ? (n = dl(t), n.name || (n.name = e), n.header || (n.header = e)) : er(t) && (n.real_type = "array", n.enum_list = t);
3567
3611
  return n.type || (n.type = n.real_type), n;
3568
3612
  }, e.timeTracker = function(e = "Time Tracker", t = !1) {
3569
3613
  const n = e, r = performance.now();
@@ -3575,7 +3619,7 @@
3575
3619
  total: _
3576
3620
  };
3577
3621
  } };
3578
- }, e.trace_json = vn, e.trace_json_masked = Un, e.trace_level_t = P, e.trace_msg = Tn, e.treedb_decoder_fkey = ll, e.treedb_decoder_hook = function(e, t) {
3622
+ }, e.trace_json = vn, e.trace_json_masked = Un, e.trace_level_t = P, e.trace_msg = Tn, e.treedb_decoder_fkey = ul, e.treedb_decoder_hook = function(e, t) {
3579
3623
  if (tr(t)) {
3580
3624
  if (-1 === t.indexOf("^")) {
3581
3625
  let n, r = e.hook;
@@ -3602,9 +3646,9 @@
3602
3646
  id: t.id
3603
3647
  } : (hn("bad hook 3"), hn(e), hn(t), null);
3604
3648
  }, e.treedb_encoder_fkey = function(e, t) {
3605
- let n = ll(e, t);
3649
+ let n = ul(e, t);
3606
3650
  return n ? n.topic_name + "^" + n.id + "^" + n.hook_name : null;
3607
- }, e.treedb_get_field_desc = _l, e.treedb_hook_data_size = function(e) {
3651
+ }, e.treedb_get_field_desc = dl, e.treedb_hook_data_size = function(e) {
3608
3652
  if (er(e) && 1 === Xn(e)) {
3609
3653
  let t = e[0];
3610
3654
  return gr(t, "size") ? t.size : 1;