@journeeze/sdk 0.0.0-stage → 0.1.0-rc.2

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.
Files changed (60) hide show
  1. package/AGENTS.md +67 -0
  2. package/CHANGELOG.md +30 -0
  3. package/LICENSE.md +27 -0
  4. package/README.md +164 -2
  5. package/dist/THIRD_PARTY_LICENSES.txt +246 -0
  6. package/dist/consent-CoKD33Rm.js +170 -0
  7. package/dist/context-UnG6_X61.js +17 -0
  8. package/dist/contract.js +10 -0
  9. package/dist/feedback-C4CYtS2A.js +196 -0
  10. package/dist/help-C1x-y2f9.js +878 -0
  11. package/dist/hook-BdG4UL4k.js +91 -0
  12. package/dist/index-B_nob8S0.js +2091 -0
  13. package/dist/index-CfCbJJXa.js +20 -0
  14. package/dist/index.js +10 -0
  15. package/dist/loader-Ba4X-WNl.js +95 -0
  16. package/dist/react.js +70 -0
  17. package/dist/resolve-BfWByuTp.js +97 -0
  18. package/dist/script.js +13 -0
  19. package/dist/signals-E3VEdmWH.js +477 -0
  20. package/dist/telemetry-Cik-cYzw.js +140 -0
  21. package/dist/transport-B5YJFQEF.js +60 -0
  22. package/dist/types/config.d.ts +17 -0
  23. package/dist/types/context.d.ts +6 -0
  24. package/dist/types/contract.d.ts +13 -0
  25. package/dist/types/help/core/client.d.ts +26 -0
  26. package/dist/types/help/core/controller.d.ts +175 -0
  27. package/dist/types/help/core/events.d.ts +8 -0
  28. package/dist/types/help/core/help.d.ts +24 -0
  29. package/dist/types/help/core/highlight.d.ts +38 -0
  30. package/dist/types/help/core/panel.d.ts +11 -0
  31. package/dist/types/help/core/search.d.ts +7 -0
  32. package/dist/types/help/ui/callout.d.ts +2 -0
  33. package/dist/types/help/ui/panel.d.ts +3 -0
  34. package/dist/types/help/ui/request.d.ts +2 -0
  35. package/dist/types/help/ui/styles.d.ts +1 -0
  36. package/dist/types/index.d.ts +7 -0
  37. package/dist/types/invite.d.ts +4 -0
  38. package/dist/types/loader.d.ts +57 -0
  39. package/dist/types/mask.d.ts +10 -0
  40. package/dist/types/react.d.ts +9 -0
  41. package/dist/types/resolve/resolve.d.ts +12 -0
  42. package/dist/types/script.d.ts +6 -0
  43. package/dist/types/signals/cel.d.ts +8 -0
  44. package/dist/types/signals/hook.d.ts +10 -0
  45. package/dist/types/signals/signals.conformance.d.ts +2 -0
  46. package/dist/types/signals/signals.d.ts +145 -0
  47. package/dist/types/telemetry/telemetry.d.ts +63 -0
  48. package/dist/types/transport.d.ts +30 -0
  49. package/dist/types/types.d.ts +391 -0
  50. package/dist/types/widget/anchor.d.ts +11 -0
  51. package/dist/types/widget/capture.d.ts +28 -0
  52. package/dist/types/widget/consent.d.ts +25 -0
  53. package/dist/types/widget/feedback.d.ts +36 -0
  54. package/dist/types/widget/icons.d.ts +14 -0
  55. package/dist/types/widget/outbox.d.ts +69 -0
  56. package/dist/types/widget/styles.d.ts +1 -0
  57. package/dist/types/widget.d.ts +27 -0
  58. package/dist/types/wire.d.ts +66 -0
  59. package/dist/widget-DQZm8sAC.js +1599 -0
  60. package/package.json +68 -4
@@ -0,0 +1,2091 @@
1
+ var EA = Object.defineProperty;
2
+ var eA = (I, A, g) => A in I ? EA(I, A, { enumerable: !0, configurable: !0, writable: !0, value: g }) : I[A] = g;
3
+ var o = (I, A, g) => eA(I, typeof A != "symbol" ? A + "" : A, g);
4
+ function z(I, A) {
5
+ const g = I.fields ?? (() => ({})), Q = I.kind ?? I.type, C = I.now ?? (() => performance.now()), E = {
6
+ passive: I.type === "scroll" || I.type === "wheel" || I.type === "touchmove",
7
+ ...I.listenerOptions ?? {}
8
+ };
9
+ let e = null, n = null;
10
+ const t = () => {
11
+ e && (A(e), e = null), n = null;
12
+ }, i = (c) => {
13
+ const l = {
14
+ ts: C(),
15
+ kind: Q,
16
+ fields: g(c)
17
+ };
18
+ if (I.throttleMs && I.throttleMs > 0) {
19
+ e = l, n === null && (n = setTimeout(t, I.throttleMs));
20
+ return;
21
+ }
22
+ A(l);
23
+ };
24
+ return I.target.addEventListener(I.type, i, E), () => {
25
+ I.target.removeEventListener(I.type, i, E), n !== null && (clearTimeout(n), n = null), e = null;
26
+ };
27
+ }
28
+ class D {
29
+ static __wrap(A) {
30
+ const g = Object.create(D.prototype);
31
+ return g.__wbg_ptr = A, O.register(g, g.__wbg_ptr, g), g;
32
+ }
33
+ __destroy_into_raw() {
34
+ const A = this.__wbg_ptr;
35
+ return this.__wbg_ptr = 0, O.unregister(this), A;
36
+ }
37
+ free() {
38
+ const A = this.__destroy_into_raw();
39
+ s.__wbg_wasmcompiledpattern_free(A, 0);
40
+ }
41
+ get name() {
42
+ let A, g;
43
+ try {
44
+ const Q = s.wasmcompiledpattern_name(this.__wbg_ptr);
45
+ return A = Q[0], g = Q[1], k(Q[0], Q[1]);
46
+ } finally {
47
+ s.__wbindgen_free(A, g, 1);
48
+ }
49
+ }
50
+ }
51
+ Symbol.dispose && (D.prototype[Symbol.dispose] = D.prototype.free);
52
+ class r {
53
+ static __wrap(A) {
54
+ const g = Object.create(r.prototype);
55
+ return g.__wbg_ptr = A, u.register(g, g.__wbg_ptr, g), g;
56
+ }
57
+ __destroy_into_raw() {
58
+ const A = this.__wbg_ptr;
59
+ return this.__wbg_ptr = 0, u.unregister(this), A;
60
+ }
61
+ free() {
62
+ const A = this.__destroy_into_raw();
63
+ s.__wbg_wasmpattern_free(A, 0);
64
+ }
65
+ emit(A) {
66
+ const g = this.__destroy_into_raw(), Q = s.wasmpattern_emit(g, A);
67
+ if (Q[2])
68
+ throw q(Q[1]);
69
+ return D.__wrap(Q[0]);
70
+ }
71
+ constructor(A) {
72
+ const g = J(A, s.__wbindgen_malloc, s.__wbindgen_realloc), Q = Y, C = s.wasmpattern_new(g, Q);
73
+ return this.__wbg_ptr = C, u.register(this, this.__wbg_ptr, this), this;
74
+ }
75
+ next() {
76
+ const A = this.__destroy_into_raw(), g = s.wasmpattern_next(A);
77
+ return r.__wrap(g);
78
+ }
79
+ notBetween(A) {
80
+ const g = this.__destroy_into_raw(), Q = s.wasmpattern_notBetween(g, A);
81
+ return r.__wrap(Q);
82
+ }
83
+ notThen(A) {
84
+ const g = this.__destroy_into_raw(), Q = s.wasmpattern_notThen(g, A);
85
+ return r.__wrap(Q);
86
+ }
87
+ notThenNamed(A, g) {
88
+ const Q = this.__destroy_into_raw(), C = J(A, s.__wbindgen_malloc, s.__wbindgen_realloc), B = Y, E = s.wasmpattern_notThenNamed(Q, C, B, g);
89
+ return r.__wrap(E);
90
+ }
91
+ then(A) {
92
+ const g = this.__destroy_into_raw(), Q = s.wasmpattern_then(g, A);
93
+ return r.__wrap(Q);
94
+ }
95
+ thenNamed(A, g) {
96
+ const Q = this.__destroy_into_raw(), C = J(A, s.__wbindgen_malloc, s.__wbindgen_realloc), B = Y, E = s.wasmpattern_thenNamed(Q, C, B, g);
97
+ return r.__wrap(E);
98
+ }
99
+ times(A, g) {
100
+ const Q = this.__destroy_into_raw(), C = s.wasmpattern_times(Q, A, g);
101
+ return r.__wrap(C);
102
+ }
103
+ timestamp(A) {
104
+ const g = this.__destroy_into_raw(), Q = s.wasmpattern_timestamp(g, A);
105
+ return r.__wrap(Q);
106
+ }
107
+ when(A) {
108
+ const g = this.__destroy_into_raw(), Q = s.wasmpattern_when(g, A);
109
+ return r.__wrap(Q);
110
+ }
111
+ within(A) {
112
+ const g = this.__destroy_into_raw(), Q = s.wasmpattern_within(g, A);
113
+ return r.__wrap(Q);
114
+ }
115
+ }
116
+ Symbol.dispose && (r.prototype[Symbol.dispose] = r.prototype.free);
117
+ class p {
118
+ __destroy_into_raw() {
119
+ const A = this.__wbg_ptr;
120
+ return this.__wbg_ptr = 0, T.unregister(this), A;
121
+ }
122
+ free() {
123
+ const A = this.__destroy_into_raw();
124
+ s.__wbg_wasmpatternruntime_free(A, 0);
125
+ }
126
+ get droppedCount() {
127
+ return s.wasmpatternruntime_droppedCount(this.__wbg_ptr) >>> 0;
128
+ }
129
+ flush() {
130
+ return s.wasmpatternruntime_flush(this.__wbg_ptr);
131
+ }
132
+ constructor(A, g) {
133
+ oA(A, D);
134
+ var Q = A.__destroy_into_raw();
135
+ const C = s.wasmpatternruntime_new(Q, !f(g), f(g) ? 0 : g);
136
+ if (C[2])
137
+ throw q(C[1]);
138
+ return this.__wbg_ptr = C[0], T.register(this, this.__wbg_ptr, this), this;
139
+ }
140
+ get nextDeadline() {
141
+ const A = s.wasmpatternruntime_nextDeadline(this.__wbg_ptr);
142
+ return A[0] === 0 ? void 0 : A[1];
143
+ }
144
+ push(A) {
145
+ return s.wasmpatternruntime_push(this.__wbg_ptr, A);
146
+ }
147
+ reset() {
148
+ s.wasmpatternruntime_reset(this.__wbg_ptr);
149
+ }
150
+ setDropHandler(A) {
151
+ s.wasmpatternruntime_setDropHandler(this.__wbg_ptr, A);
152
+ }
153
+ tick(A) {
154
+ return s.wasmpatternruntime_tick(this.__wbg_ptr, A);
155
+ }
156
+ }
157
+ Symbol.dispose && (p.prototype[Symbol.dispose] = p.prototype.free);
158
+ function tA() {
159
+ return {
160
+ __proto__: null,
161
+ "./tflo_cep_wasm_bg.js": {
162
+ __proto__: null,
163
+ __wbg_Error_ef53bc310eb298a0: function(A, g) {
164
+ return Error(k(A, g));
165
+ },
166
+ __wbg___wbindgen_is_falsy_d7ed49840e6d9abb: function(A) {
167
+ return !A;
168
+ },
169
+ __wbg___wbindgen_number_get_9bb1761122181af2: function(A, g) {
170
+ const Q = g, C = typeof Q == "number" ? Q : void 0;
171
+ Z().setFloat64(A + 8, f(C) ? 0 : C, !0), Z().setInt32(A + 0, !f(C), !0);
172
+ },
173
+ __wbg___wbindgen_throw_1506f2235d1bdba0: function(A, g) {
174
+ throw new Error(k(A, g));
175
+ },
176
+ __wbg_call_40e4174f169eaca7: function() {
177
+ return j(function(A, g, Q, C) {
178
+ return A.call(g, Q, C);
179
+ }, arguments);
180
+ },
181
+ __wbg_call_9c758de292015997: function() {
182
+ return j(function(A, g, Q) {
183
+ return A.call(g, Q);
184
+ }, arguments);
185
+ },
186
+ __wbg_error_a6fa202b58aa1cd3: function(A, g) {
187
+ let Q, C;
188
+ try {
189
+ Q = A, C = g, console.error(k(A, g));
190
+ } finally {
191
+ s.__wbindgen_free(Q, C, 1);
192
+ }
193
+ },
194
+ __wbg_new_227d7c05414eb861: function() {
195
+ return new Error();
196
+ },
197
+ __wbg_new_ce1ab61c1c2b300d: function() {
198
+ return new Object();
199
+ },
200
+ __wbg_new_d90091b82fdf5b91: function() {
201
+ return new Array();
202
+ },
203
+ __wbg_push_a6822215aa43e71c: function(A, g) {
204
+ return A.push(g);
205
+ },
206
+ __wbg_set_6e30c9374c26414c: function() {
207
+ return j(function(A, g, Q) {
208
+ return Reflect.set(A, g, Q);
209
+ }, arguments);
210
+ },
211
+ __wbg_stack_3b0d974bbf31e44f: function(A, g) {
212
+ const Q = g.stack, C = J(Q, s.__wbindgen_malloc, s.__wbindgen_realloc), B = Y;
213
+ Z().setInt32(A + 4, B, !0), Z().setInt32(A + 0, C, !0);
214
+ },
215
+ __wbindgen_cast_0000000000000001: function(A, g) {
216
+ return S(A, g, nA);
217
+ },
218
+ __wbindgen_cast_0000000000000002: function(A, g) {
219
+ return S(A, g, iA);
220
+ },
221
+ __wbindgen_cast_0000000000000003: function(A) {
222
+ return A;
223
+ },
224
+ __wbindgen_cast_0000000000000004: function(A, g) {
225
+ return k(A, g);
226
+ },
227
+ __wbindgen_init_externref_table: function() {
228
+ const A = s.__wbindgen_externrefs, g = A.grow(4);
229
+ A.set(0, void 0), A.set(g + 0, void 0), A.set(g + 1, null), A.set(g + 2, !0), A.set(g + 3, !1);
230
+ }
231
+ }
232
+ };
233
+ }
234
+ function iA(I, A) {
235
+ return s.wasm_bindgen_f42a98a122aaea76___convert__closures_____invoke___wasm_bindgen_f42a98a122aaea76___JsValue__true_(I, A);
236
+ }
237
+ function nA(I, A, g) {
238
+ const Q = J(g, s.__wbindgen_malloc, s.__wbindgen_realloc), C = Y;
239
+ return s.wasm_bindgen_f42a98a122aaea76___convert__closures_____invoke___alloc_a941a2cfab7efbc4___string__String__wasm_bindgen_f42a98a122aaea76___JsValue__true_(I, A, Q, C);
240
+ }
241
+ const O = typeof FinalizationRegistry > "u" ? { register: () => {
242
+ }, unregister: () => {
243
+ } } : new FinalizationRegistry((I) => s.__wbg_wasmcompiledpattern_free(I, 1)), u = typeof FinalizationRegistry > "u" ? { register: () => {
244
+ }, unregister: () => {
245
+ } } : new FinalizationRegistry((I) => s.__wbg_wasmpattern_free(I, 1)), T = typeof FinalizationRegistry > "u" ? { register: () => {
246
+ }, unregister: () => {
247
+ } } : new FinalizationRegistry((I) => s.__wbg_wasmpatternruntime_free(I, 1));
248
+ function sA(I) {
249
+ const A = s.__externref_table_alloc();
250
+ return s.__wbindgen_externrefs.set(A, I), A;
251
+ }
252
+ function oA(I, A) {
253
+ if (!(I instanceof A))
254
+ throw new Error(`expected instance of ${A.name}`);
255
+ }
256
+ const V = typeof FinalizationRegistry > "u" ? { register: () => {
257
+ }, unregister: () => {
258
+ } } : new FinalizationRegistry((I) => s.__wbindgen_destroy_closure(I.a, I.b));
259
+ let N = null;
260
+ function Z() {
261
+ return (N === null || N.buffer.detached === !0 || N.buffer.detached === void 0 && N.buffer !== s.memory.buffer) && (N = new DataView(s.memory.buffer)), N;
262
+ }
263
+ function k(I, A) {
264
+ return lA(I >>> 0, A);
265
+ }
266
+ let G = null;
267
+ function F() {
268
+ return (G === null || G.byteLength === 0) && (G = new Uint8Array(s.memory.buffer)), G;
269
+ }
270
+ function j(I, A) {
271
+ try {
272
+ return I.apply(this, A);
273
+ } catch (g) {
274
+ const Q = sA(g);
275
+ s.__wbindgen_exn_store(Q);
276
+ }
277
+ }
278
+ function f(I) {
279
+ return I == null;
280
+ }
281
+ function S(I, A, g) {
282
+ const Q = { a: I, b: A, cnt: 1 }, C = (...B) => {
283
+ Q.cnt++;
284
+ try {
285
+ return g(Q.a, Q.b, ...B);
286
+ } finally {
287
+ C._wbg_cb_unref();
288
+ }
289
+ };
290
+ return C._wbg_cb_unref = () => {
291
+ --Q.cnt === 0 && (s.__wbindgen_destroy_closure(Q.a, Q.b), Q.a = 0, V.unregister(Q));
292
+ }, V.register(C, Q, Q), C;
293
+ }
294
+ function J(I, A, g) {
295
+ if (g === void 0) {
296
+ const e = w.encode(I), n = A(e.length, 1) >>> 0;
297
+ return F().subarray(n, n + e.length).set(e), Y = e.length, n;
298
+ }
299
+ let Q = I.length, C = A(Q, 1) >>> 0;
300
+ const B = F();
301
+ let E = 0;
302
+ for (; E < Q; E++) {
303
+ const e = I.charCodeAt(E);
304
+ if (e > 127) break;
305
+ B[C + E] = e;
306
+ }
307
+ if (E !== Q) {
308
+ E !== 0 && (I = I.slice(E)), C = g(C, Q, Q = E + I.length * 3, 1) >>> 0;
309
+ const e = F().subarray(C + E, C + Q), n = w.encodeInto(I, e);
310
+ E += n.written, C = g(C, Q, E, 1) >>> 0;
311
+ }
312
+ return Y = E, C;
313
+ }
314
+ function q(I) {
315
+ const A = s.__wbindgen_externrefs.get(I);
316
+ return s.__externref_table_dealloc(I), A;
317
+ }
318
+ let y = new TextDecoder("utf-8", { ignoreBOM: !0, fatal: !0 });
319
+ y.decode();
320
+ const cA = 2146435072;
321
+ let X = 0;
322
+ function lA(I, A) {
323
+ return X += A, X >= cA && (y = new TextDecoder("utf-8", { ignoreBOM: !0, fatal: !0 }), y.decode(), X = A), y.decode(F().subarray(I, I + A));
324
+ }
325
+ const w = new TextEncoder();
326
+ "encodeInto" in w || (w.encodeInto = function(I, A) {
327
+ const g = w.encode(I);
328
+ return A.set(g), {
329
+ read: I.length,
330
+ written: g.length
331
+ };
332
+ });
333
+ let Y = 0, s;
334
+ function hA(I, A) {
335
+ return s = I.exports, N = null, G = null, s.__wbindgen_start(), s;
336
+ }
337
+ async function dA(I, A) {
338
+ if (typeof Response == "function" && I instanceof Response) {
339
+ if (typeof WebAssembly.instantiateStreaming == "function")
340
+ try {
341
+ return await WebAssembly.instantiateStreaming(I, A);
342
+ } catch (C) {
343
+ if (I.ok && g(I.type) && I.headers.get("Content-Type") !== "application/wasm")
344
+ console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n", C);
345
+ else
346
+ throw C;
347
+ }
348
+ const Q = await I.arrayBuffer();
349
+ return await WebAssembly.instantiate(Q, A);
350
+ } else {
351
+ const Q = await WebAssembly.instantiate(I, A);
352
+ return Q instanceof WebAssembly.Instance ? { instance: Q, module: I } : Q;
353
+ }
354
+ function g(Q) {
355
+ switch (Q) {
356
+ case "basic":
357
+ case "cors":
358
+ case "default":
359
+ return !0;
360
+ }
361
+ return !1;
362
+ }
363
+ }
364
+ async function U(I) {
365
+ if (s !== void 0) return s;
366
+ I !== void 0 && (Object.getPrototypeOf(I) === Object.prototype ? { module_or_path: I } = I : console.warn("using deprecated parameters for the initialization function; pass a single object instead")), I === void 0 && (I = new URL("data:application/wasm;base64,AGFzbQEAAAAByAIxYAAAYAABf2AAAW9gAX8AYAF/AX9gAX8Cf39gAX8Cf3xgAX8Bb2ACf38AYAJ/fwF/YAJ/fwFvYAN/f38AYAN/f38Bf2AEf39/fwBgBH9/f38Bf2AEf39/fwFvYAV/f39/fwBgBX9/f39/AX9gBn9/f39/fwBgBn9/f39/fwF/YAZ/f39+f38AYAZ/f399f38AYAR/f398AGAGf39/fH9/AGAEf39/bwF/YAN/f34AYAR/f35/AGAFf39+f38AYAV/f31/fwBgA39/fAN/f39gBX9/fH9/AGADf39vAGADf35/AGAEf35/fwBgBH99f38AYAJ/fAF/YAJ/fAFvYAR/fH9/AGACf28AYAJ/bwF/YAJ/bwN/f39gAn9vAW9gAXwBf2ABfAFvYAFvAX9gAm9vAX9gA29vbwF/YANvb28Bb2AEb29vbwFvAuwHEhUuL3RmbG9fY2VwX3dhc21fYmcuanMbX193YmdfcHVzaF9hNjgyMjIxNWFhNDNlNzFjAC0VLi90ZmxvX2NlcF93YXNtX2JnLmpzG19fd2JnX2NhbGxfNDBlNDE3NGYxNjllYWNhNwAwFS4vdGZsb19jZXBfd2FzbV9iZy5qcxtfX3diZ19jYWxsXzljNzU4ZGUyOTIwMTU5OTcALxUuL3RmbG9fY2VwX3dhc21fYmcuanMaX193YmdfbmV3XzIyN2Q3YzA1NDE0ZWI4NjEAAhUuL3RmbG9fY2VwX3dhc21fYmcuanMcX193Ymdfc3RhY2tfM2IwZDk3NGJiZjMxZTQ0ZgAmFS4vdGZsb19jZXBfd2FzbV9iZy5qcxxfX3diZ19lcnJvcl9hNmZhMjAyYjU4YWExY2QzAAgVLi90ZmxvX2NlcF93YXNtX2JnLmpzGl9fd2JnX25ld19jZTFhYjYxYzFjMmIzMDBkAAIVLi90ZmxvX2NlcF93YXNtX2JnLmpzGl9fd2JnX25ld19kOTAwOTFiODJmZGY1YjkxAAIVLi90ZmxvX2NlcF93YXNtX2JnLmpzGl9fd2JnX3NldF82ZTMwYzkzNzRjMjY0MTRjAC4VLi90ZmxvX2NlcF93YXNtX2JnLmpzLF9fd2JnX19fd2JpbmRnZW5fbnVtYmVyX2dldF85YmIxNzYxMTIyMTgxYWYyACYVLi90ZmxvX2NlcF93YXNtX2JnLmpzJ19fd2JnX19fd2JpbmRnZW5fdGhyb3dfMTUwNmYyMjM1ZDFiZGJhMAAIFS4vdGZsb19jZXBfd2FzbV9iZy5qcypfX3diZ19fX3diaW5kZ2VuX2lzX2ZhbHN5X2Q3ZWQ0OTg0MGU2ZDlhYmIALBUuL3RmbG9fY2VwX3dhc21fYmcuanMcX193YmdfRXJyb3JfZWY1M2JjMzEwZWIyOThhMAAKFS4vdGZsb19jZXBfd2FzbV9iZy5qcx9fX3diaW5kZ2VuX2luaXRfZXh0ZXJucmVmX3RhYmxlAAAVLi90ZmxvX2NlcF93YXNtX2JnLmpzIF9fd2JpbmRnZW5fY2FzdF8wMDAwMDAwMDAwMDAwMDAxAAoVLi90ZmxvX2NlcF93YXNtX2JnLmpzIF9fd2JpbmRnZW5fY2FzdF8wMDAwMDAwMDAwMDAwMDAyAAoVLi90ZmxvX2NlcF93YXNtX2JnLmpzIF9fd2JpbmRnZW5fY2FzdF8wMDAwMDAwMDAwMDAwMDAzACsVLi90ZmxvX2NlcF93YXNtX2JnLmpzIF9fd2JpbmRnZW5fY2FzdF8wMDAwMDAwMDAwMDAwMDA0AAoDggKAAgQaCQ4JDggWCwMDEwsIGgwgDggIGQgJCwMJCwgBAwgJCQMDCwgJCQkJCAMJCQQJDBkLCQkLCQgMBBAICA4OCQgQDBISEhASEgsjAwkQCAgjCQsJAw0ECAMIAxADAwMDAwMIBBIQDRALEA0EEhcVEhIUDAwQDAgNDAsLBAMMDQ4EBAAIAwgLCwkJEQ4IAwMdBAMoCAUGEw4DAwMQEREQHhwQGw0ODAQMAwMJAwMIAwkDKQgLCQkJCRgYDwsICAwqHwkBAQEMJycnJycmJAoJCQ4DCQgJCQQHCwwECAwADAMDCQkJCAAACAgICQkJDAgICAkDAwgBCAQICAgJAAABAQAECQJwAVdXbwCACAUDAQARBgkBfwFBgIDAAAsH5gglBm1lbW9yeQIAHl9fd2JnX3dhc21jb21waWxlZHBhdHRlcm5fZnJlZQBNFl9fd2JnX3dhc21wYXR0ZXJuX2ZyZWUATB1fX3diZ193YXNtcGF0dGVybnJ1bnRpbWVfZnJlZQAYGHdhc21jb21waWxlZHBhdHRlcm5fbmFtZQClARB3YXNtcGF0dGVybl9lbWl0AKMBD3dhc21wYXR0ZXJuX25ldwBkEHdhc21wYXR0ZXJuX25leHQAShZ3YXNtcGF0dGVybl9ub3RCZXR3ZWVuANcBE3dhc21wYXR0ZXJuX25vdFRoZW4A2AEYd2FzbXBhdHRlcm5fbm90VGhlbk5hbWVkAMkBEHdhc21wYXR0ZXJuX3RoZW4A2QEVd2FzbXBhdHRlcm5fdGhlbk5hbWVkAMoBEXdhc21wYXR0ZXJuX3RpbWVzAEEVd2FzbXBhdHRlcm5fdGltZXN0YW1wANoBEHdhc21wYXR0ZXJuX3doZW4A2wESd2FzbXBhdHRlcm5fd2l0aGluAEcfd2FzbXBhdHRlcm5ydW50aW1lX2Ryb3BwZWRDb3VudACMARh3YXNtcGF0dGVybnJ1bnRpbWVfZmx1c2gA6AEWd2FzbXBhdHRlcm5ydW50aW1lX25ldwCgAR93YXNtcGF0dGVybnJ1bnRpbWVfbmV4dERlYWRsaW5lAKYBF3dhc21wYXR0ZXJucnVudGltZV9wdXNoAMIBGHdhc21wYXR0ZXJucnVudGltZV9yZXNldAAvIXdhc21wYXR0ZXJucnVudGltZV9zZXREcm9wSGFuZGxlcgDcARd3YXNtcGF0dGVybnJ1bnRpbWVfdGljawDdAQVzdGFydACTAZYBd2FzbV9iaW5kZ2VuX2Y0MmE5OGExMjJhYWVhNzZfX19jb252ZXJ0X19jbG9zdXJlc19fX19faW52b2tlX19fYWxsb2NfYTk0MWEyY2ZhYjdlZmJjNF9fX3N0cmluZ19fU3RyaW5nX193YXNtX2JpbmRnZW5fZjQyYTk4YTEyMmFhZWE3Nl9fX0pzVmFsdWVfX3RydWVfAMsBbXdhc21fYmluZGdlbl9mNDJhOThhMTIyYWFlYTc2X19fY29udmVydF9fY2xvc3VyZXNfX19fX2ludm9rZV9fX3dhc21fYmluZGdlbl9mNDJhOThhMTIyYWFlYTc2X19fSnNWYWx1ZV9fdHJ1ZV8A3gEUX193YmluZGdlbl9leG5fc3RvcmUA4gEXX19leHRlcm5yZWZfdGFibGVfYWxsb2MALhVfX3diaW5kZ2VuX2V4dGVybnJlZnMBAQ9fX3diaW5kZ2VuX2ZyZWUAzAERX193YmluZGdlbl9tYWxsb2MAmQESX193YmluZGdlbl9yZWFsbG9jAJwBGl9fd2JpbmRnZW5fZGVz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AQstAgF/AX4jAEEQayIBJAAgACkCACECIAEgADYCDCABIAI3AgQgAUEEahCEAgALLAEBfyMAQRBrIgIkACACIAAgARDRASACKAIAIAIoAgQgAigCCCACQRBqJAALJAEBfyMAQRBrIgIkACACIAE2AgwgAiAANgIIIAJBCGoQgwIACyQBAX8jAEEQayIBJAAgASAAEDYgASgCACABKAIEIAFBEGokAAskAQF/IwBBEGsiASQAIAEgABAkIAEoAgAgASsDCCABQRBqJAALJgACQCAADQBBxJHAAEEyEPUBAAsgACACIAMgBCAFIAEoAhAREQALJAIBfwFvIAAlASABJQEgAiUBIAMlARABIQUQLiIEIAUmASAECyQBAX8gACgCACIBIAEoAgBBf2oiATYCAAJAIAENACAAEJUBCwsjAQF/IAAoAgAiASABKAIAQX9qIgE2AgACQCABDQAgABBlCwsjAQF/IAAoAgAiASABKAIAQX9qIgE2AgACQCABDQAgABBcCwskAAJAIAANAEHEkcAAQTIQ9QEACyAAIAIgAyAEIAEoAhARDQALJAACQCAADQBBxJHAAEEyEPUBAAsgACACIAMgBCABKAIQEQ4ACyQAAkAgAA0AQcSRwABBMhD1AQALIAAgAiADIAQgASgCEBEOAAskAAJAIAANAEHEkcAAQTIQ9QEACyAAIAIgAyAEIAEoAhARDQALJAACQCAADQBBxJHAAEEyEPUBAAsgACACIAMgBCABKAIQESUACyQAAkAgAA0AQcSRwABBMhD1AQALIAAgAiADIAQgASgCEBEiAAskAAJAIAANAEHEkcAAQTIQ9QEACyAAIAIgAyAEIAEoAhARDQALJAACQCAADQBBxJHAAEEyEPUBAAsgACACIAMgBCABKAIQESEACyIAAkAgAA0AQcSRwABBMhD1AQALIAAgAiADIAEoAhARCwALIgACQCAADQBBxJHAAEEyEPUBAAsgACACIAMgASgCEBEMAAsgAgF/AW8gACUBIAElASACJQEQAiEEEC4iAyAEJgEgAwsgAAJAIAAoAgAiACgCEA0AQYAIDwsgACgCDCgCABDnAQsgAAJAIAANAEHEkcAAQTIQ9QEACyAAIAIgASgCEBEJAAsfAQF/AkAgACgCACIBQQFIDQAgACgCBCABQQEQ6QELCx4AIAAoAgAgACgCBEEA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bnMvMS45Ny14ODZfNjQtdW5rbm93bi1saW51eC1nbnUvbGliL3J1c3RsaWIvc3JjL3J1c3QvbGlicmFyeS9hbGxvYy9zcmMvc3RyaW5nLnJzAC9ydXN0Yy84YmFiMjZmNGY2OGUwZTI2ZjBiYjc5NjBiZTMzNGQ1YjUyMGVhNDUyL2xpYnJhcnkvc3RkL3NyYy9wYW5pY2tpbmcucnMAL2hvbWUvbWMvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi93YXNtLWJpbmRnZW4tMC4yLjEyMi9zcmMvZXh0ZXJucmVmLnJzAHRmbG8tY2VwL3NyYy9lbmdpbmUucnMAL2hvbWUvbWMvLnJ1c3R1cC90b29sY2hhaW5zLzEuOTcteDg2XzY0LXVua25vd24tbGludXgtZ251L2xpYi9ydXN0bGliL3NyYy9ydXN0L2xpYnJhcnkvc3RkL3NyYy9zeW5jL29uY2UucnMAL3J1c3RjLzhiYWIyNmY0ZjY4ZTBlMjZmMGJiNzk2MGJlMzM0ZDViNTIwZWE0NTIvbGlicmFyeS9hbGxvYy9zcmMvcmF3X3ZlYy9tb2QucnMAL3J1c3QvZGVwcy9kbG1hbGxvYy0wLjIuMTMvc3JjL2RsbWFsbG9jLnJzAHRmbG8tY2VwLXdhc20vc3JjL2xpYi5ycwAvaG9tZS9tYy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2NvbnNvbGVfZXJyb3JfcGFuaWNfaG9vay0wLjEuNy9zcmMvbGliLnJzAAZzdGVwIGDAJmAgaXMgbm90VGhlbiBhbmQgbXVzdCBiZSB0aGUgbGFzdCBzdGVwAAZzdGVwIGDAKmAgaXMgbm90VGhlbiBidXQgaGFzIG5vIC53aXRoaW4oLi4uKSBib3VuZAAScmVtb3ZhbCBpbmRleCAoaXMgwBYpIHNob3VsZCBiZSA8IGxlbiAoaXMgwAEpAABEAxAAZwAAAJUAAAAOAAAAY29tcGlsZWQgcGF0dGVybiBhbHJlYWR5IGNvbnN1bWVkAAAAKwMQABgAAACCAQAAIAAAACsDEAAYAAAAjgEAABQAAAArAxAAGAAAAJoBAAAUAAAAKwMQABgAAAD1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AAAAYSBmb3JtYXR0aW5nIHRyYWl0IGltcGxlbWVudGF0aW9uIHJldHVybmVkIGFuIGVycm9yIHdoZW4gdGhlIHVuZGVybHlpbmcgc3RyZWFtIGRpZCBub3QAAGkAEABIAAAAjwIAAA4AAABFcnJvcmNhbGxlZCBgT3B0aW9uOjp1bndyYXAoKWAgb24gYSBgTm9uZWAgdmFsdWUwMDAxMDIwMzA0MDUwNjA3MDgwOTEwMTExMjEzMTQxNTE2MTcxODE5MjAyMTIyMjMyNDI1MjYyNzI4MjkzMDMxMzIzMzM0MzUzNjM3MzgzOTQwNDE0MjQzNDQ0NTQ2NDc0ODQ5NTA1MTUyNTM1NDU1NTY1NzU4NTk2MDYxNjI2MzY0NjU2NjY3Njg2OTcwNzE3MjczNzQ3NTc2Nzc3ODc5ODA4MTgyODM4NDg1ODY4Nzg4ODk5MDkxOTI5Mzk0OTU5Njk3OTg5OWF0dGVtcHQgdG8gYWRkIHdpdGggb3ZlcmZsb3dSZWZDZWxsIGFscmVhZHkgbXV0YWJseSBib3Jyb3dlZFJlZkNlbGwgYWxyZWFkeSBib3Jyb3dlZABB7JrAAAsYAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAJrTAQRuYW1lABMSdGZsb19jZXBfd2FzbS53YXNtAbvSAZACAEc8anNfc3lzW2I3YTI2MzMxZWMwMTk5YWJdOjpBcnJheTxfPj46OnB1c2g6Ol9fd2JnX3B1c2hfYTY4MjIyMTVhYTQzZTcxYwFLPGpzX3N5c1tiN2EyNjMzMWVjMDE5OWFiXTo6RnVuY3Rpb248Xz4+OjpjYWxsMjo6X193YmdfY2FsbF80MGU0MTc0ZjE2OWVhY2E3Aks8anNfc3lzW2I3YTI2MzMxZWMwMTk5YWJdOjpGdW5jdGlvbjxfPj46OmNhbGwxOjpfX3diZ19jYWxsXzljNzU4ZGUyOTIwMTU5OTcDVDxjb25zb2xlX2Vycm9yX3BhbmljX2hvb2tbMTJlM2UxMTZhNjY5MWMxOV06OkVycm9yPjo6bmV3OjpfX3diZ19uZXdfMjI3ZDdjMDU0MTRlYjg2MQRYPGNvbnNvbGVfZXJyb3JfcGFuaWNfaG9va1sxMmUzZTExNmE2NjkxYzE5XTo6RXJyb3I+OjpzdGFjazo6X193Ymdfc3RhY2tfM2IwZDk3NGJiZjMxZTQ0ZgVPY29uc29sZV9lcnJvcl9wYW5pY19ob29rWzEyZTNlMTE2YTY2OTFjMTldOjplcnJvcjo6X193YmdfZXJyb3JfYTZmYTIwMmI1OGFhMWNkMwZDPGpzX3N5c1tiN2EyNjMzMWVjMDE5OWFiXTo6T2JqZWN0Pjo6bmV3OjpfX3diZ19uZXdfY2UxYWI2MWMxYzJiMzAwZAdCPGpzX3N5c1tiN2EyNjMzMWVjMDE5OWFiXTo6QXJyYXk+OjpuZXc6Ol9fd2JnX25ld19kOTAwOTFiODJmZGY1YjkxCEJqc19zeXNbYjdhMjYzMzFlYzAxOTlhYl06OlJlZmxlY3Q6OnNldDo6X193Ymdfc2V0XzZlMzBjOTM3NGMyNjQxNGMJY3dhc21fYmluZGdlbltmNDJhOThhMTIyYWFlYTc2XTo6X193YmluZGdlbl9udW1iZXJfZ2V0OjpfX3diZ19fX3diaW5kZ2VuX251bWJlcl9nZXRfOWJiMTc2MTEyMjE4MWFmMgpZd2FzbV9iaW5kZ2VuW2Y0MmE5OGExMjJhYWVhNzZdOjpfX3diaW5kZ2VuX3Rocm93OjpfX3diZ19fX3diaW5kZ2VuX3Rocm93XzE1MDZmMjIzNWQxYmRiYTALX3dhc21fYmluZGdlbltmNDJhOThhMTIyYWFlYTc2XTo6X193YmluZGdlbl9pc19mYWxzeTo6X193YmdfX193YmluZGdlbl9pc19mYWxzeV9kN2VkNDk4NDBlNmQ5YWJiDFJ3YXNtX2JpbmRnZW5bZjQyYTk4YTEyMmFhZWE3Nl06Ol9fd2JpbmRnZW5fZXJyb3JfbmV3OjpfX3diZ19FcnJvcl9lZjUzYmMzMTBlYjI5OGEwDqMBQ2xvc3VyZShDbG9zdXJlIHsgb3duZWQ6IHRydWUsIGZ1bmN0aW9uOiBGdW5jdGlvbiB7IGFyZ3VtZW50czogW1N0cmluZ10sIHNoaW1faWR4OiAxNywgcmV0OiBFeHRlcm5yZWYsIGlubmVyX3JldDogU29tZShFeHRlcm5yZWYpIH0sIG11dGFibGU6IGZhbHNlIH0pIC0+IEV4dGVybnJlZg+dAUNsb3N1cmUoQ2xvc3VyZSB7IG93bmVkOiB0cnVlLCBmdW5jdGlvbjogRnVuY3Rpb24geyBhcmd1bWVudHM6IFtdLCBzaGltX2lkeDogMTksIHJldDogRXh0ZXJucmVmLCBpbm5lcl9yZXQ6IFNvbWUoRXh0ZXJucmVmKSB9LCBtdXRhYmxlOiBmYWxzZSB9KSAtPiBFeHRlcm5yZWYQEEY2NCAtPiBFeHRlcm5yZWYRGFJlZihTdHJpbmcpIC0+IEV4dGVybnJlZhJhPGRsbWFsbG9jW2JkZDQxZTU2MDUxMGUxYmRdOjpkbG1hbGxvYzo6RGxtYWxsb2M8ZGxtYWxsb2NbYmRkNDFlNTYwNTEwZTFiZF06OnN5czo6U3lzdGVtPj46Om1hbGxvYxOMAjx0ZmxvX2NlcFs0OGM4OTlhZDE3YWQ4YjMyXTo6ZW5naW5lOjpSdW50aW1lPHdhc21fYmluZGdlbltmNDJhOThhMTIyYWFlYTc2XTo6SnNWYWx1ZSwgd2FzbV9iaW5kZ2VuW2Y0MmE5OGExMjJhYWVhNzZdOjpKc1ZhbHVlLCB0ZmxvX2NlcF93YXNtWzQzM2E0NzU2OWM4M2QxZGVdOjpXYXNtUHJlZCwgdGZsb19jZXBfd2FzbVs0MzNhNDc1NjljODNkMWRlXTo6SnNFbWl0LCB0ZmxvX2NlcF93YXNtWzQzM2E0NzU2OWM4M2QxZGVdOjpKc1RpbWVzdGFtcD4+OjptYXRjaF9vbmUUtQE8dGZsb19jZXBfd2FzbVs0MzNhNDc1NjljODNkMWRlXTo6SnNFbWl0IGFzIHRmbG9fY2VwWzQ4Yzg5OWFkMTdhZDhiMzJdOjplbmdpbmU6OkVtaXRDYWxsYmFjazx3YXNtX2JpbmRnZW5bZjQyYTk4YTEyMmFhZWE3Nl06OkpzVmFsdWUsIHdhc21fYmluZGdlbltmNDJhOThhMTIyYWFlYTc2XTo6SnNWYWx1ZT4+OjplbWl0FZ0BPHRmbG9fY2VwX3dhc21bNDMzYTQ3NTY5YzgzZDFkZV06OkpzUHJlZGljYXRlIGFzIHRmbG9fY2VwWzQ4Yzg5OWFkMTdhZDhiMzJdOjplbmdpbmU6OlByZWRpY2F0ZTx3YXNtX2JpbmRnZW5bZjQyYTk4YTEyMmFhZWE3Nl06OkpzVmFsdWU+Pjo6ZXZhbHVhdGVfaW5fY29udGV4dBYyY29yZVs5YjM3OTZlMzBkOTlkZGI3XTo6c3RyOjpjb3VudDo6ZG9fY291bnRfY2hhcnMXKF9fcnVzdGNbNmVmNzhmYmExM2FjNzc2Y106Ol9fcmRsX3JlYWxsb2MYHV9fd2JnX3dhc21wYXR0ZXJucnVudGltZV9mcmVlGRZ3YXNtcGF0dGVybnJ1bnRpbWVfbmV3GocCPHRmbG9fY2VwWzQ4Yzg5OWFkMTdhZDhiMzJdOjplbmdpbmU6OlJ1bnRpbWU8d2FzbV9iaW5kZ2VuW2Y0MmE5OGExMjJhYWVhNzZdOjpKc1ZhbHVlLCB3YXNtX2JpbmRnZW5bZjQyYTk4YTEyMmFhZWE3Nl06OkpzVmFsdWUsIHRmbG9fY2VwX3dhc21bNDMzYTQ3NTY5YzgzZDFkZV06Oldhc21QcmVkLCB0ZmxvX2NlcF93YXNtWzQzM2E0NzU2OWM4M2QxZGVdOjpKc0VtaXQsIHRmbG9fY2VwX3dhc21bNDMzYTQ3NTY5YzgzZDFkZV06OkpzVGltZXN0YW1wPj46OnB1c2gblAE8YWxsb2NbYTk0MWEyY2ZhYjdlZmJjNF06OnJjOjpSYzx3YXNtX2JpbmRnZW5bZjQyYTk4YTEyMmFhZWE3Nl06Ol9fcnQ6Oldhc21SZWZDZWxsPHRmbG9fY2VwX3dhc21bNDMzYTQ3NTY5YzgzZDFkZV06Oldhc21QYXR0ZXJuUnVudGltZT4+Pjo6ZHJvcF9zbG93HF88ZGxtYWxsb2NbYmRkNDFlNTYwNTEwZTFiZF06OmRsbWFsbG9jOjpEbG1hbGxvYzxkbG1hbGxvY1tiZGQ0MWU1NjA1MTBlMWJkXTo6c3lzOjpTeXN0ZW0+Pjo6ZnJlZR02PGNvcmVbOWIzNzk2ZTMwZDk5ZGRiN106OmZtdDo6Rm9ybWF0dGVyPjo6cGFkX2ludGVncmFsHjQ8dGZsb19jZXBfd2FzbVs0MzNhNDc1NjljODNkMWRlXTo6V2FzbVBhdHRlcm4+OjplbWl0H8cBPGFsbG9jW2E5NDFhMmNmYWI3ZWZiYzRdOjpjb2xsZWN0aW9uczo6YmluYXJ5X2hlYXA6OkJpbmFyeUhlYXA8Y29yZVs5YjM3OTZlMzBkOTlkZGI3XTo6Y21wOjpSZXZlcnNlPHRmbG9fY29yZVs3ZWE4ZDFiMjVjODlkMjc5XTo6cmVvcmRlcjo6UGVuZGluZ0VudHJ5PHdhc21fYmluZGdlbltmNDJhOThhMTIyYWFlYTc2XTo6SnNWYWx1ZT4+Pj46OnBvcCBkPHRmbG9fY29yZVs3ZWE4ZDFiMjVjODlkMjc5XTo6cmVvcmRlcjo6UmVvcmRlckJ1ZmZlcjx3YXNtX2JpbmRnZW5bZjQyYTk4YTEyMmFhZWE3Nl06OkpzVmFsdWU+Pjo6c3RlcCEtPGNvcmVbOWIzNzk2ZTMwZDk5ZGRiN106OmZtdDo6Rm9ybWF0dGVyPjo6cGFkIpQCPHRmbG9fY2VwWzQ4Yzg5OWFkMTdhZDhiMzJdOjplbmdpbmU6OlJ1bnRpbWU8d2FzbV9iaW5kZ2VuW2Y0MmE5OGExMjJhYWVhNzZdOjpKc1ZhbHVlLCB3YXNtX2JpbmRnZW5bZjQyYTk4YTEyMmFhZWE3Nl06OkpzVmFsdWUsIHRmbG9fY2VwX3dhc21bNDMzYTQ3NTY5YzgzZDFkZV06Oldhc21QcmVkLCB0ZmxvX2NlcF93YXNtWzQzM2E0NzU2OWM4M2QxZGVdOjpKc0VtaXQsIHRmbG9fY2VwX3dhc21bNDMzYTQ3NTY5YzgzZDFkZV06OkpzVGltZXN0YW1wPj46OmFkdmFuY2VfZGVhZGxpbmVzIyJjb3JlWzliMzc5NmUzMGQ5OWRkYjddOjpmbXQ6OndyaXRlJB93YXNtcGF0dGVybnJ1bnRpbWVfbmV4dERlYWRsaW5lJYgCPHRmbG9fY2VwWzQ4Yzg5OWFkMTdhZDhiMzJdOjplbmdpbmU6OlJ1bnRpbWU8d2FzbV9iaW5kZ2VuW2Y0MmE5OGExMjJhYWVhNzZdOjpKc1ZhbHVlLCB3YXNtX2JpbmRnZW5bZjQyYTk4YTEyMmFhZWE3Nl06OkpzVmFsdWUsIHRmbG9fY2VwX3dhc21bNDMzYTQ3NTY5YzgzZDFkZV06Oldhc21QcmVkLCB0ZmxvX2NlcF93YXNtWzQzM2E0NzU2OWM4M2QxZGVdOjpKc0VtaXQsIHRmbG9fY2VwX3dhc21bNDMzYTQ3NTY5YzgzZDFkZV06OkpzVGltZXN0YW1wPj46OmZsdXNoJocCPHRmbG9fY2VwWzQ4Yzg5OWFkMTdhZDhiMzJdOjplbmdpbmU6OlJ1bnRpbWU8d2FzbV9iaW5kZ2VuW2Y0MmE5OGExMjJhYWVhNzZdOjpKc1ZhbHVlLCB3YXNtX2JpbmRnZW5bZjQyYTk4YTEyMmFhZWE3Nl06OkpzVmFsdWUsIHRmbG9fY2VwX3dhc21bNDMzYTQ3NTY5YzgzZDFkZV06Oldhc21QcmVkLCB0ZmxvX2NlcF93YXNtWzQzM2E0NzU2OWM4M2QxZGVdOjpKc0VtaXQsIHRmbG9fY2VwX3dhc21bNDMzYTQ3NTY5YzgzZDFkZV06OkpzVGltZXN0YW1wPj46OnRpY2snaDxkbG1hbGxvY1tiZGQ0MWU1NjA1MTBlMWJkXTo6ZGxtYWxsb2M6OkRsbWFsbG9jPGRsbWFsbG9jW2JkZDQxZTU2MDUxMGUxYmRdOjpzeXM6OlN5c3RlbT4+OjpkaXNwb3NlX2NodW5rKDQ8dGZsb19jZXBfd2FzbVs0MzNhNDc1NjljODNkMWRlXTo6V2FzbVBhdHRlcm4+Ojp3aGVuKfkGPGNvcmVbOWIzNzk2ZTMwZDk5ZGRiN106Oml0ZXI6OmFkYXB0ZXJzOjptYXA6Ok1hcDxjb3JlWzliMzc5NmUzMGQ5OWRkYjddOjpzbGljZTo6aXRlcjo6SXRlcjx0ZmxvX2NlcF93YXNtWzQzM2E0NzU2OWM4M2QxZGVdOjpCdWlsZGVyU3RlcD4sIDx0ZmxvX2NlcF93YXNtWzQzM2E0NzU2OWM4M2QxZGVdOjpXYXNtUGF0dGVybj46OmVtaXQ6OntjbG9zdXJlIzB9PiBhcyBjb3JlWzliMzc5NmUzMGQ5OWRkYjddOjppdGVyOjp0cmFpdHM6Oml0ZXJhdG9yOjpJdGVyYXRvcj46OmZvbGQ6OjwoKSwgY29yZVs5YjM3OTZlMzBkOTlkZGI3XTo6aXRlcjo6dHJhaXRzOjppdGVyYXRvcjo6SXRlcmF0b3I6OmZvcl9lYWNoOjpjYWxsPHRmbG9fY2VwWzQ4Yzg5OWFkMTdhZDhiMzJdOjplbmdpbmU6OlN0ZXA8d2FzbV9iaW5kZ2VuW2Y0MmE5OGExMjJhYWVhNzZdOjpKc1ZhbHVlLCB0ZmxvX2NlcF93YXNtWzQzM2E0NzU2OWM4M2QxZGVdOjpXYXNtUHJlZD4sIDxhbGxvY1thOTQxYTJjZmFiN2VmYmM0XTo6dmVjOjpWZWM8dGZsb19jZXBbNDhjODk5YWQxN2FkOGIzMl06OmVuZ2luZTo6U3RlcDx3YXNtX2JpbmRnZW5bZjQyYTk4YTEyMmFhZWE3Nl06OkpzVmFsdWUsIHRmbG9fY2VwX3dhc21bNDMzYTQ3NTY5YzgzZDFkZV06Oldhc21QcmVkPj4+OjpleHRlbmRfdHJ1c3RlZDxjb3JlWzliMzc5NmUzMGQ5OWRkYjddOjppdGVyOjphZGFwdGVyczo6bWFwOjpNYXA8Y29yZVs5YjM3OTZlMzBkOTlkZGI3XTo6c2xpY2U6Oml0ZXI6Okl0ZXI8dGZsb19jZXBfd2FzbVs0MzNhNDc1NjljODNkMWRlXTo6QnVpbGRlclN0ZXA+LCA8dGZsb19jZXBfd2FzbVs0MzNhNDc1NjljODNkMWRlXTo6V2FzbVBhdHRlcm4+OjplbWl0Ojp7Y2xvc3VyZSMwfT4+Ojp7Y2xvc3VyZSMwfT46OntjbG9zdXJlIzB9PiowY29uc29sZV9lcnJvcl9wYW5pY19ob29rWzEyZTNlMTE2YTY2OTFjMTldOjpob29rK2M8ZGxtYWxsb2NbYmRkNDFlNTYwNTEwZTFiZF06OmRsbWFsbG9jOjpEbG1hbGxvYzxkbG1hbGxvY1tiZGQ0MWU1NjA1MTBlMWJkXTo6c3lzOjpTeXN0ZW0+Pjo6bWVtYWxpZ24sMmFsbG9jW2E5NDFhMmNmYWI3ZWZiYzRdOjpmbXQ6OmZvcm1hdDo6Zm9ybWF0X2lubmVyLWc8ZGxtYWxsb2NbYmRkNDFlNTYwNTEwZTFiZF06OmRsbWFsbG9jOjpEbG1hbGxvYzxkbG1hbGxvY1tiZGQ0MWU1NjA1MTBlMWJkXTo6c3lzOjpTeXN0ZW0+Pjo6dW5saW5rX2NodW5rLhdfX2V4dGVybnJlZl90YWJsZV9hbGxvYy8Yd2FzbXBhdHRlcm5ydW50aW1lX3Jlc2V0MG08ZGxtYWxsb2NbYmRkNDFlNTYwNTEwZTFiZF06OmRsbWFsbG9jOjpEbG1hbGxvYzxkbG1hbGxvY1tiZGQ0MWU1NjA1MTBlMWJkXTo6c3lzOjpTeXN0ZW0+Pjo6aW5zZXJ0X2xhcmdlX2NodW5rMRN3YXNtcGF0dGVybl9ub3RUaGVuMhB3YXNtcGF0dGVybl90aGVuM5UBPGFsbG9jW2E5NDFhMmNmYWI3ZWZiYzRdOjpyYzo6UmM8d2FzbV9iaW5kZ2VuW2Y0MmE5OGExMjJhYWVhNzZdOjpfX3J0OjpXYXNtUmVmQ2VsbDx0ZmxvX2NlcF93YXNtWzQzM2E0NzU2OWM4M2QxZGVdOjpXYXNtQ29tcGlsZWRQYXR0ZXJuPj4+Ojpkcm9wX3Nsb3c0ggE8YWxsb2NbYTk0MWEyY2ZhYjdlZmJjNF06OnJjOjpSYzxjb3JlWzliMzc5NmUzMGQ5OWRkYjddOjpjZWxsOjpSZWZDZWxsPHRmbG9fY2VwX3dhc21bNDMzYTQ3NTY5YzgzZDFkZV06OlBhdHRlcm5TdGF0ZT4+Pjo6ZHJvcF9zbG93NbEFPGFsbG9jW2E5NDFhMmNmYWI3ZWZiYzRdOjp2ZWM6OlZlYzwoYWxsb2NbYTk0MWEyY2ZhYjdlZmJjNF06OnN0cmluZzo6U3RyaW5nLCB3YXNtX2JpbmRnZW5bZjQyYTk4YTEyMmFhZWE3Nl06OkpzVmFsdWUpPiBhcyBhbGxvY1thOTQxYTJjZmFiN2VmYmM0XTo6dmVjOjpzcGVjX2Zyb21faXRlcl9uZXN0ZWQ6OlNwZWNGcm9tSXRlck5lc3RlZDwoYWxsb2NbYTk0MWEyY2ZhYjdlZmJjNF06OnN0cmluZzo6U3RyaW5nLCB3YXNtX2JpbmRnZW5bZjQyYTk4YTEyMmFhZWE3Nl06OkpzVmFsdWUpLCBjb3JlWzliMzc5NmUzMGQ5OWRkYjddOjppdGVyOjphZGFwdGVyczo6bWFwOjpNYXA8Y29yZVs5YjM3OTZlMzBkOTlkZGI3XTo6aXRlcjo6YWRhcHRlcnM6Om1hcDo6TWFwPGNvcmVbOWIzNzk2ZTMwZDk5ZGRiN106OnNsaWNlOjppdGVyOjpJdGVyPChhbGxvY1thOTQxYTJjZmFiN2VmYmM0XTo6c3RyaW5nOjpTdHJpbmcsIHdhc21fYmluZGdlbltmNDJhOThhMTIyYWFlYTc2XTo6SnNWYWx1ZSk+LCA8dGZsb19jZXBbNDhjODk5YWQxN2FkOGIzMl06Om1hdGNoZWQ6Ok1hdGNoPHdhc21fYmluZGdlbltmNDJhOThhMTIyYWFlYTc2XTo6SnNWYWx1ZT4+OjpuYW1lZDo6e2Nsb3N1cmUjMH0+LCB0ZmxvX2NlcF93YXNtWzQzM2E0NzU2OWM4M2QxZGVdOjpidWlsZF9tYXRjaF9vYmplY3Q6OntjbG9zdXJlIzN9Pj4+Ojpmcm9tX2l0ZXI2GHdhc21jb21waWxlZHBhdHRlcm5fbmFtZTdbPGFsbG9jW2E5NDFhMmNmYWI3ZWZiYzRdOjpzdHJpbmc6OlN0cmluZyBhcyBjb3JlWzliMzc5NmUzMGQ5OWRkYjddOjpmbXQ6OldyaXRlPjo6d3JpdGVfY2hhcjhePGFsbG9jW2E5NDFhMmNmYWI3ZWZiYzRdOjpzdHJpbmc6OlN0cmluZyBhcyBjb3JlWzliMzc5NmUzMGQ5OWRkYjddOjpmbXQ6OldyaXRlPjo6d3JpdGVfY2hhclsxXTkyPHUzMiBhcyBjb3JlWzliMzc5NmUzMGQ5OWRkYjddOjpmbXQ6OkRpc3BsYXk+OjpmbXQ6WjxzdGRbOWI2MTc5MTUxNzk0NjIxNF06OnBhbmljOjpQYW5pY0hvb2tJbmZvIGFzIGNvcmVbOWIzNzk2ZTMwZDk5ZGRiN106OmZtdDo6RGlzcGxheT46OmZtdDshd2FzbXBhdHRlcm5ydW50aW1lX3NldERyb3BIYW5kbGVyPF5jb3JlWzliMzc5NmUzMGQ5OWRkYjddOjpwdHI6OmRyb3BfZ2x1ZTo6PHRmbG9fY2VwX3dhc21bNDMzYTQ3NTY5YzgzZDFkZV06Oldhc21Db21waWxlZFBhdHRlcm4+PRd3YXNtcGF0dGVybnJ1bnRpbWVfcHVzaD5ePGFsbG9jW2E5NDFhMmNmYWI3ZWZiYzRdOjpzdHJpbmc6OlN0cmluZyBhcyBjb3JlWzliMzc5NmUzMGQ5OWRkYjddOjpmbXQ6OldyaXRlPjo6d3JpdGVfY2hhclsyXT8Yd2FzbXBhdHRlcm5ydW50aW1lX2ZsdXNoQF48YWxsb2NbYTk0MWEyY2ZhYjdlZmJjNF06OnN0cmluZzo6U3RyaW5nIGFzIGNvcmVbOWIzNzk2ZTMwZDk5ZGRiN106OmZtdDo6V3JpdGU+Ojp3cml0ZV9jaGFyWzNdQRF3YXNtcGF0dGVybl90aW1lc0KPAjx0ZmxvX2NlcFs0OGM4OTlhZDE3YWQ4YjMyXTo6ZW5naW5lOjpSdW50aW1lPHdhc21fYmluZGdlbltmNDJhOThhMTIyYWFlYTc2XTo6SnNWYWx1ZSwgd2FzbV9iaW5kZ2VuW2Y0MmE5OGExMjJhYWVhNzZdOjpKc1ZhbHVlLCB0ZmxvX2NlcF93YXNtWzQzM2E0NzU2OWM4M2QxZGVdOjpXYXNtUHJlZCwgdGZsb19jZXBfd2FzbVs0MzNhNDc1NjljODNkMWRlXTo6SnNFbWl0LCB0ZmxvX2NlcF93YXNtWzQzM2E0NzU2OWM4M2QxZGVdOjpKc1RpbWVzdGFtcD4+Ojp3aXRoX3Jlb3JkZXJDEHdhc21wYXR0ZXJuX2VtaXREFndhc21wYXR0ZXJuX25vdEJldHdlZW5FFXdhc21wYXR0ZXJuX3RpbWVzdGFtcEaLAjx0ZmxvX2NlcFs0OGM4OTlhZDE3YWQ4YjMyXTo6ZW5naW5lOjpSdW50aW1lPHdhc21fYmluZGdlbltmNDJhOThhMTIyYWFlYTc2XTo6SnNWYWx1ZSwgd2FzbV9iaW5kZ2VuW2Y0MmE5OGExMjJhYWVhNzZdOjpKc1ZhbHVlLCB0ZmxvX2NlcF93YXNtWzQzM2E0NzU2OWM4M2QxZGVdOjpXYXNtUHJlZCwgdGZsb19jZXBfd2FzbVs0MzNhNDc1NjljODNkMWRlXTo6SnNFbWl0LCB0ZmxvX2NlcF93YXNtWzQzM2E0NzU2OWM4M2QxZGVdOjpKc1RpbWVzdGFtcD4+Ojpjb21wbGV0ZUcSd2FzbXBhdHRlcm5fd2l0aGluSGU8dGZsb19jb3JlWzdlYThkMWIyNWM4OWQyNzldOjpyZW9yZGVyOjpSZW9yZGVyQnVmZmVyPHdhc21fYmluZGdlbltmNDJhOThhMTIyYWFlYTc2XTo6SnNWYWx1ZT4+OjpmbHVzaEk6PHRmbG9fY2VwX3dhc21bNDMzYTQ3NTY5YzgzZDFkZV06Oldhc21QYXR0ZXJuPjo6dGhlbl9uYW1lZEoQd2FzbXBhdHRlcm5fbmV4dEsxc3RkWzliNjE3OTE1MTc5NDYyMTRdOjpwYW5pY2tpbmc6OnBhbmljX3dpdGhfaG9va0wWX193Ymdfd2FzbXBhdHRlcm5fZnJlZU0eX193Ymdfd2FzbWNvbXBpbGVkcGF0dGVybl9mcmVlThh3YXNtcGF0dGVybl9ub3RUaGVuTmFtZWRPFXdhc21wYXR0ZXJuX3RoZW5OYW1lZFC7ATx0ZmxvX2NlcF93YXNtWzQzM2E0NzU2OWM4M2QxZGVdOjpidWlsZF9tYXRjaF9vYmplY3Q6OntjbG9zdXJlIzR9IGFzIGNvcmVbOWIzNzk2ZTMwZDk5ZGRiN106Om9wczo6ZnVuY3Rpb246OkZuT25jZTwoYWxsb2NbYTk0MWEyY2ZhYjdlZmJjNF06OnN0cmluZzo6U3RyaW5nLCk+Pjo6Y2FsbF9vbmNlOjp7c2hpbTp2dGFibGUjMH1RfzxzdGRbOWI2MTc5MTUxNzk0NjIxNF06OnBhbmlja2luZzo6cGFuaWNfaGFuZGxlcjo6Rm9ybWF0U3RyaW5nUGF5bG9hZCBhcyBjb3JlWzliMzc5NmUzMGQ5OWRkYjddOjpwYW5pYzo6UGFuaWNQYXlsb2FkPjo6dGFrZV9ib3hSfDxhbGxvY1thOTQxYTJjZmFiN2VmYmM0XTo6cmF3X3ZlYzo6UmF3VmVjSW5uZXI8Xz4+OjpyZXNlcnZlOjpkb19yZXNlcnZlX2FuZF9oYW5kbGU6OjxhbGxvY1thOTQxYTJjZmFiN2VmYmM0XTo6YWxsb2M6Okdsb2JhbD5TPjx0ZmxvX2NlcF93YXNtWzQzM2E0NzU2OWM4M2QxZGVdOjpXYXNtUGF0dGVybj46Om5vdF90aGVuX25hbWVkVN8Bd2FzbV9iaW5kZ2VuW2Y0MmE5OGExMjJhYWVhNzZdOjpjb252ZXJ0OjpjbG9zdXJlczo6Xzo6aW52b2tlOjo8d2FzbV9iaW5kZ2VuW2Y0MmE5OGExMjJhYWVhNzZdOjpKc1ZhbHVlLCB1MzIsIGpzX3N5c1tiN2EyNjMzMWVjMDE5OWFiXTo6QXJyYXksIGFsbG9jW2E5NDFhMmNmYWI3ZWZiYzRdOjp2ZWM6OlZlYzx3YXNtX2JpbmRnZW5bZjQyYTk4YTEyMmFhZWE3Nl06OkpzVmFsdWU+LCB0cnVlPlU8PGFsbG9jW2E5NDFhMmNmYWI3ZWZiYzRdOjpyYXdfdmVjOjpSYXdWZWNJbm5lcj46OmZpbmlzaF9ncm93Vj88YWxsb2NbYTk0MWEyY2ZhYjdlZmJjNF06OnJhd192ZWM6OlJhd1ZlY0lubmVyPjo6ZmluaXNoX2dyb3dbMV1XvgF3YXNtX2JpbmRnZW5bZjQyYTk4YTEyMmFhZWE3Nl06OmNvbnZlcnQ6OmNsb3N1cmVzOjpfOjppbnZva2U6Ojx3YXNtX2JpbmRnZW5bZjQyYTk4YTEyMmFhZWE3Nl06OkpzVmFsdWUsIHUzMiwgYWxsb2NbYTk0MWEyY2ZhYjdlZmJjNF06OnZlYzo6VmVjPHdhc21fYmluZGdlbltmNDJhOThhMTIyYWFlYTc2XTo6SnNWYWx1ZT4sIHRydWU+WD88YWxsb2NbYTk0MWEyY2ZhYjdlZmJjNF06OnJhd192ZWM6OlJhd1ZlY0lubmVyPjo6ZmluaXNoX2dyb3dbMl1ZPzxhbGxvY1thOTQxYTJjZmFiN2VmYmM0XTo6cmF3X3ZlYzo6UmF3VmVjSW5uZXI+OjpmaW5pc2hfZ3Jvd1szXVpZPGRsbWFsbG9jW2JkZDQxZTU2MDUxMGUxYmRdOjpzeXM6OlN5c3RlbSBhcyBkbG1hbGxvY1tiZGQ0MWU1NjA1MTBlMWJkXTo6QWxsb2NhdG9yPjo6YWxsb2NbF3dhc21wYXR0ZXJucnVudGltZV90aWNrXKMBPGFsbG9jW2E5NDFhMmNmYWI3ZWZiYzRdOjpyYzo6UmM8YWxsb2NbYTk0MWEyY2ZhYjdlZmJjNF06OnZlYzo6VmVjPChhbGxvY1thOTQxYTJjZmFiN2VmYmM0XTo6c3RyaW5nOjpTdHJpbmcsIHdhc21fYmluZGdlbltmNDJhOThhMTIyYWFlYTc2XTo6SnNWYWx1ZSk+Pj46OmRyb3Bfc2xvd10Qd2FzbXBhdHRlcm5fd2hlbl5/PGFsbG9jW2E5NDFhMmNmYWI3ZWZiYzRdOjpyYXdfdmVjOjpSYXdWZWNJbm5lcjxfPj46OnJlc2VydmU6OmRvX3Jlc2VydmVfYW5kX2hhbmRsZTo6PGFsbG9jW2E5NDFhMmNmYWI3ZWZiYzRdOjphbGxvYzo6R2xvYmFsPlsxXV/WATw8dGZsb19jZXBfd2FzbVs0MzNhNDc1NjljODNkMWRlXTo6V2FzbVBhdHRlcm5SdW50aW1lPjo6c2V0X2Ryb3BfaGFuZGxlcjo6e2Nsb3N1cmUjMH0gYXMgY29yZVs5YjM3OTZlMzBkOTlkZGI3XTo6b3BzOjpmdW5jdGlvbjo6Rm5PbmNlPCh0ZmxvX2NlcFs0OGM4OTlhZDE3YWQ4YjMyXTo6ZW5naW5lOjpEcm9wUmVhc29uLCk+Pjo6Y2FsbF9vbmNlOjp7c2hpbTp2dGFibGUjMH1gFl9fZXh0ZXJucmVmX2Ryb3Bfc2xpY2VhOzx0ZmxvX2NlcF93YXNtWzQzM2E0NzU2OWM4M2QxZGVdOjpXYXNtUGF0dGVyblJ1bnRpbWU+Ojp0aWNrYkB0ZmxvX2NlcF93YXNtWzQzM2E0NzU2OWM4M2QxZGVdOjpidWlsZF9tYXRjaF9vYmplY3Q6OntjbG9zdXJlIzR9Y388YWxsb2NbYTk0MWEyY2ZhYjdlZmJjNF06OnJhd192ZWM6OlJhd1ZlY0lubmVyPF8+Pjo6cmVzZXJ2ZTo6ZG9fcmVzZXJ2ZV9hbmRfaGFuZGxlOjo8YWxsb2NbYTk0MWEyY2ZhYjdlZmJjNF06OmFsbG9jOjpHbG9iYWw+WzJdZA93YXNtcGF0dGVybl9uZXdleDxhbGxvY1thOTQxYTJjZmFiN2VmYmM0XTo6cmM6OlJjPGFsbG9jW2E5NDFhMmNmYWI3ZWZiYzRdOjp2ZWM6OlZlYzx3YXNtX2JpbmRnZW5bZjQyYTk4YTEyMmFhZWE3Nl06OkpzVmFsdWU+Pj46OmRyb3Bfc2xvd2Y/PGFsbG9jW2E5NDFhMmNmYWI3ZWZiYzRdOjpyYXdfdmVjOjpSYXdWZWNJbm5lcj46OmZpbmlzaF9ncm93WzRdZ5MBPHRmbG9fY2VwX3dhc21bNDMzYTQ3NTY5YzgzZDFkZV06OmJ1aWxkX21hdGNoX29iamVjdDo6e2Nsb3N1cmUjMn0gYXMgY29yZVs5YjM3OTZlMzBkOTlkZGI3XTo6b3BzOjpmdW5jdGlvbjo6Rm5PbmNlPCgpPj46OmNhbGxfb25jZTo6e3NoaW06dnRhYmxlIzB9aHo8c3RkWzliNjE3OTE1MTc5NDYyMTRdOjpwYW5pY2tpbmc6OnBhbmljX2hhbmRsZXI6OkZvcm1hdFN0cmluZ1BheWxvYWQgYXMgY29yZVs5YjM3OTZlMzBkOTlkZGI3XTo6cGFuaWM6OlBhbmljUGF5bG9hZD46OmdldGk8c3RkWzliNjE3OTE1MTc5NDYyMTRdOjpwYW5pY2tpbmc6OnBhbmljX2hhbmRsZXI6OntjbG9zdXJlIzB9aipzdGRbOWI2MTc5MTUxNzk0NjIxNF06OnBhbmlja2luZzo6c2V0X2hvb2trGV9fZXh0ZXJucmVmX3RhYmxlX2RlYWxsb2NsswJ3YXNtX2JpbmRnZW5bZjQyYTk4YTEyMmFhZWE3Nl06OmNvbnZlcnQ6OmNsb3N1cmVzOjpfOjppbnZva2U6Ojxqc19zeXNbYjdhMjYzMzFlYzAxOTlhYl06OkpzU3RyaW5nLCB3YXNtX2JpbmRnZW5bZjQyYTk4YTEyMmFhZWE3Nl06OkpzVmFsdWUsIGNvcmVbOWIzNzk2ZTMwZDk5ZGRiN106OnJlc3VsdDo6UmVzdWx0PGNvcmVbOWIzNzk2ZTMwZDk5ZGRiN106Om9wdGlvbjo6T3B0aW9uPHdhc21fYmluZGdlbltmNDJhOThhMTIyYWFlYTc2XTo6SnNWYWx1ZT4sIHdhc21fYmluZGdlbltmNDJhOThhMTIyYWFlYTc2XTo6SnNFcnJvcj4sIHRydWU+bY8BPGFsbG9jW2E5NDFhMmNmYWI3ZWZiYzRdOjpyYXdfdmVjOjpSYXdWZWM8dGZsb19jZXBbNDhjODk5YWQxN2FkOGIzMl06OmVuZ2luZTo6UGFydGlhbE1hdGNoPHdhc21fYmluZGdlbltmNDJhOThhMTIyYWFlYTc2XTo6SnNWYWx1ZT4+Pjo6Z3Jvd19vbmVutwE8YWxsb2NbYTk0MWEyY2ZhYjdlZmJjNF06OnJhd192ZWM6OlJhd1ZlYzxjb3JlWzliMzc5NmUzMGQ5OWRkYjddOjpjbXA6OlJldmVyc2U8dGZsb19jb3JlWzdlYThkMWIyNWM4OWQyNzldOjpyZW9yZGVyOjpQZW5kaW5nRW50cnk8d2FzbV9iaW5kZ2VuW2Y0MmE5OGExMjJhYWVhNzZdOjpKc1ZhbHVlPj4+Pjo6Z3Jvd19vbmVvYjxhbGxvY1thOTQxYTJjZmFiN2VmYmM0XTo6cmF3X3ZlYzo6UmF3VmVjPHRmbG9fY2VwX3dhc21bNDMzYTQ3NTY5YzgzZDFkZV06OkJ1aWxkZXJTdGVwPj46Omdyb3dfb25lcGI8YWxsb2NbYTk0MWEyY2ZhYjdlZmJjNF06OnJhd192ZWM6OlJhd1ZlYzx0ZmxvX2NlcF93YXNtWzQzM2E0NzU2OWM4M2QxZGVdOjpXYXNtUGF0dGVybj4+Ojpncm93X29uZXGIATxhbGxvY1thOTQxYTJjZmFiN2VmYmM0XTo6cmF3X3ZlYzo6UmF3VmVjPChhbGxvY1thOTQxYTJjZmFiN2VmYmM0XTo6c3RyaW5nOjpTdHJpbmcsIHdhc21fYmluZGdlbltmNDJhOThhMTIyYWFlYTc2XTo6SnNWYWx1ZSk+Pjo6Z3Jvd19vbmVyZDxhbGxvY1thOTQxYTJjZmFiN2VmYmM0XTo6cmF3X3ZlYzo6UmF3VmVjPChpNjQsIHdhc21fYmluZGdlbltmNDJhOThhMTIyYWFlYTc2XTo6SnNWYWx1ZSk+Pjo6Z3Jvd19vbmVzVDx0ZmxvX2NlcF93YXNtWzQzM2E0NzU2OWM4M2QxZGVdOjpXYXNtUGF0dGVyblJ1bnRpbWU+OjpzZXRfZHJvcF9oYW5kbGVyOjp7Y2xvc3VyZSMwfXSTATx0ZmxvX2NlcF93YXNtWzQzM2E0NzU2OWM4M2QxZGVdOjpidWlsZF9tYXRjaF9vYmplY3Q6OntjbG9zdXJlIzF9IGFzIGNvcmVbOWIzNzk2ZTMwZDk5ZGRiN106Om9wczo6ZnVuY3Rpb246OkZuT25jZTwoKT4+OjpjYWxsX29uY2U6OntzaGltOnZ0YWJsZSMwfXWVAndhc21fYmluZGdlbltmNDJhOThhMTIyYWFlYTc2XTo6Y29udmVydDo6Y2xvc3VyZXM6Ol86Omludm9rZTo6PHdhc21fYmluZGdlbltmNDJhOThhMTIyYWFlYTc2XTo6SnNWYWx1ZSwgd2FzbV9iaW5kZ2VuW2Y0MmE5OGExMjJhYWVhNzZdOjpKc1ZhbHVlLCB1MzIsIGNvcmVbOWIzNzk2ZTMwZDk5ZGRiN106OnJlc3VsdDo6UmVzdWx0PHdhc21fYmluZGdlbltmNDJhOThhMTIyYWFlYTc2XTo6SnNWYWx1ZSwgd2FzbV9iaW5kZ2VuW2Y0MmE5OGExMjJhYWVhNzZdOjpKc0Vycm9yPiwgdHJ1ZT527AF3YXNtX2JpbmRnZW5bZjQyYTk4YTEyMmFhZWE3Nl06OmNvbnZlcnQ6OmNsb3N1cmVzOjpfOjppbnZva2U6Ojx3YXNtX2JpbmRnZW5bZjQyYTk4YTEyMmFhZWE3Nl06OkpzVmFsdWUsIHdhc21fYmluZGdlbltmNDJhOThhMTIyYWFlYTc2XTo6SnNWYWx1ZSwgY29yZVs5YjM3OTZlMzBkOTlkZGI3XTo6cmVzdWx0OjpSZXN1bHQ8aTMyLCB3YXNtX2JpbmRnZW5bZjQyYTk4YTEyMmFhZWE3Nl06OkpzRXJyb3I+LCB0cnVlPnfIATxzdGRbOWI2MTc5MTUxNzk0NjIxNF06OnN5czo6c3luYzo6b25jZTo6bm9fdGhyZWFkczo6T25jZT46OmNhbGw6Ojw8c3RkWzliNjE3OTE1MTc5NDYyMTRdOjpzeW5jOjpvbmNlOjpPbmNlPjo6Y2FsbF9vbmNlPGNvbnNvbGVfZXJyb3JfcGFuaWNfaG9va1sxMmUzZTExNmE2NjkxYzE5XTo6c2V0X29uY2U6OntjbG9zdXJlIzB9Pjo6e2Nsb3N1cmUjMH0+eMkBd2FzbV9iaW5kZ2VuW2Y0MmE5OGExMjJhYWVhNzZdOjpjb252ZXJ0OjpjbG9zdXJlczo6Xzo6aW52b2tlOjo8d2FzbV9iaW5kZ2VuW2Y0MmE5OGExMjJhYWVhNzZdOjpKc1ZhbHVlLCB1MzIsIGNvcmVbOWIzNzk2ZTMwZDk5ZGRiN106OnJlc3VsdDo6UmVzdWx0PGJvb2wsIHdhc21fYmluZGdlbltmNDJhOThhMTIyYWFlYTc2XTo6SnNFcnJvcj4sIHRydWU+eShfX3J1c3RjWzZlZjc4ZmJhMTNhYzc3NmNdOjpfX3JkbF9kZWFsbG9jei1jb3JlWzliMzc5NmUzMGQ5OWRkYjddOjpyZXN1bHQ6OnVud3JhcF9mYWlsZWR7xAF3YXNtX2JpbmRnZW5bZjQyYTk4YTEyMmFhZWE3Nl06OmNvbnZlcnQ6OmNsb3N1cmVzOjpfOjppbnZva2U6Ojx3YXNtX2JpbmRnZW5bZjQyYTk4YTEyMmFhZWE3Nl06OkpzVmFsdWUsIGNvcmVbOWIzNzk2ZTMwZDk5ZGRiN106OnJlc3VsdDo6UmVzdWx0PGJvb2wsIHdhc21fYmluZGdlbltmNDJhOThhMTIyYWFlYTc2XTo6SnNFcnJvcj4sIHRydWU+fJMBPHRmbG9fY2VwX3dhc21bNDMzYTQ3NTY5YzgzZDFkZV06OmJ1aWxkX21hdGNoX29iamVjdDo6e2Nsb3N1cmUjMH0gYXMgY29yZVs5YjM3OTZlMzBkOTlkZGI3XTo6b3BzOjpmdW5jdGlvbjo6Rm5PbmNlPCgpPj46OmNhbGxfb25jZTo6e3NoaW06dnRhYmxlIzB9fccBd2FzbV9iaW5kZ2VuW2Y0MmE5OGExMjJhYWVhNzZdOjpjb252ZXJ0OjpjbG9zdXJlczo6Xzo6aW52b2tlOjo8aTgsIHUzMiwganNfc3lzW2I3YTI2MzMxZWMwMTk5YWJdOjpJbnQ4QXJyYXksIGNvcmVbOWIzNzk2ZTMwZDk5ZGRiN106OnJlc3VsdDo6UmVzdWx0PCgpLCB3YXNtX2JpbmRnZW5bZjQyYTk4YTEyMmFhZWE3Nl06OkpzRXJyb3I+LCB0cnVlPn7LAXdhc21fYmluZGdlbltmNDJhOThhMTIyYWFlYTc2XTo6Y29udmVydDo6Y2xvc3VyZXM6Ol86Omludm9rZTo6PGY2NCwgdTMyLCBqc19zeXNbYjdhMjYzMzFlYzAxOTlhYl06OkZsb2F0NjRBcnJheSwgY29yZVs5YjM3OTZlMzBkOTlkZGI3XTo6cmVzdWx0OjpSZXN1bHQ8KCksIHdhc21fYmluZGdlbltmNDJhOThhMTIyYWFlYTc2XTo6SnNFcnJvcj4sIHRydWU+f8sBd2FzbV9iaW5kZ2VuW2Y0MmE5OGExMjJhYWVhNzZdOjpjb252ZXJ0OjpjbG9zdXJlczo6Xzo6aW52b2tlOjo8ZjMyLCB1MzIsIGpzX3N5c1tiN2EyNjMzMWVjMDE5OWFiXTo6RmxvYXQxNkFycmF5LCBjb3JlWzliMzc5NmUzMGQ5OWRkYjddOjpyZXN1bHQ6OlJlc3VsdDwoKSwgd2FzbV9iaW5kZ2VuW2Y0MmE5OGExMjJhYWVhNzZdOjpKc0Vycm9yPiwgdHJ1ZT6AAckBd2FzbV9iaW5kZ2VuW2Y0MmE5OGExMjJhYWVhNzZdOjpjb252ZXJ0OjpjbG9zdXJlczo6Xzo6aW52b2tlOjo8aTMyLCB1MzIsIGpzX3N5c1tiN2EyNjMzMWVjMDE5OWFiXTo6SW50MzJBcnJheSwgY29yZVs5YjM3OTZlMzBkOTlkZGI3XTo6cmVzdWx0OjpSZXN1bHQ8KCksIHdhc21fYmluZGdlbltmNDJhOThhMTIyYWFlYTc2XTo6SnNFcnJvcj4sIHRydWU+gQHJAXdhc21fYmluZGdlbltmNDJhOThhMTIyYWFlYTc2XTo6Y29udmVydDo6Y2xvc3VyZXM6Ol86Omludm9rZTo6PGkxNiwgdTMyLCBqc19zeXNbYjdhMjYzMzFlYzAxOTlhYl06OkludDE2QXJyYXksIGNvcmVbOWIzNzk2ZTMwZDk5ZGRiN106OnJlc3VsdDo6UmVzdWx0PCgpLCB3YXNtX2JpbmRnZW5bZjQyYTk4YTEyMmFhZWE3Nl06OkpzRXJyb3I+LCB0cnVlPoIBzAF3YXNtX2JpbmRnZW5bZjQyYTk4YTEyMmFhZWE3Nl06OmNvbnZlcnQ6OmNsb3N1cmVzOjpfOjppbnZva2U6OjxpNjQsIHUzMiwganNfc3lzW2I3YTI2MzMxZWMwMTk5YWJdOjpCaWdJbnQ2NEFycmF5LCBjb3JlWzliMzc5NmUzMGQ5OWRkYjddOjpyZXN1bHQ6OlJlc3VsdDwoKSwgd2FzbV9iaW5kZ2VuW2Y0MmE5OGExMjJhYWVhNzZdOjpKc0Vycm9yPiwgdHJ1ZT6DAVo8YWxsb2NbYTk0MWEyY2ZhYjdlZmJjNF06OnN0cmluZzo6U3RyaW5nIGFzIGNvcmVbOWIzNzk2ZTMwZDk5ZGRiN106OmZtdDo6V3JpdGU+Ojp3cml0ZV9zdHKEAV08YWxsb2NbYTk0MWEyY2ZhYjdlZmJjNF06OnN0cmluZzo6U3RyaW5nIGFzIGNvcmVbOWIzNzk2ZTMwZDk5ZGRiN106OmZtdDo6V3JpdGU+Ojp3cml0ZV9zdHJbMV2FAesBd2FzbV9iaW5kZ2VuW2Y0MmE5OGExMjJhYWVhNzZdOjpjb252ZXJ0OjpjbG9zdXJlczo6Xzo6aW52b2tlOjo8d2FzbV9iaW5kZ2VuW2Y0MmE5OGExMjJhYWVhNzZdOjpKc1ZhbHVlLCB3YXNtX2JpbmRnZW5bZjQyYTk4YTEyMmFhZWE3Nl06OkpzVmFsdWUsIGNvcmVbOWIzNzk2ZTMwZDk5ZGRiN106OnJlc3VsdDo6UmVzdWx0PCgpLCB3YXNtX2JpbmRnZW5bZjQyYTk4YTEyMmFhZWE3Nl06OkpzRXJyb3I+LCB0cnVlPoYBXTxhbGxvY1thOTQxYTJjZmFiN2VmYmM0XTo6c3RyaW5nOjpTdHJpbmcgYXMgY29yZVs5YjM3OTZlMzBkOTlkZGI3XTo6Zm10OjpXcml0ZT46OndyaXRlX3N0clsyXYcBWDxhbGxvY1thOTQxYTJjZmFiN2VmYmM0XTo6c3RyaW5nOjpTdHJpbmcgYXMgY29yZVs5YjM3OTZlMzBkOTlkZGI3XTo6Y2xvbmU6OkNsb25lPjo6Y2xvbmWIAcIBd2FzbV9iaW5kZ2VuW2Y0MmE5OGExMjJhYWVhNzZdOjpjb252ZXJ0OjpjbG9zdXJlczo6Xzo6aW52b2tlOjo8d2FzbV9iaW5kZ2VuW2Y0MmE5OGExMjJhYWVhNzZdOjpKc1ZhbHVlLCBjb3JlWzliMzc5NmUzMGQ5OWRkYjddOjpyZXN1bHQ6OlJlc3VsdDwoKSwgd2FzbV9iaW5kZ2VuW2Y0MmE5OGExMjJhYWVhNzZdOjpKc0Vycm9yPiwgdHJ1ZT6JAV08YWxsb2NbYTk0MWEyY2ZhYjdlZmJjNF06OnN0cmluZzo6U3RyaW5nIGFzIGNvcmVbOWIzNzk2ZTMwZDk5ZGRiN106OmZtdDo6V3JpdGU+Ojp3cml0ZV9zdHJbM12KAUA8YWxsb2NbYTk0MWEyY2ZhYjdlZmJjNF06OnZlYzo6VmVjPF8sIF8+Pjo6cmVtb3ZlOjphc3NlcnRfZmFpbGVkiwE1Y29yZVs5YjM3OTZlMzBkOTlkZGI3XTo6cGFuaWNraW5nOjpwYW5pY19ib3VuZHNfY2hlY2uMAR93YXNtcGF0dGVybnJ1bnRpbWVfZHJvcHBlZENvdW50jQGNATxhbGxvY1thOTQxYTJjZmFiN2VmYmM0XTo6cmM6OlJjPHdhc21fYmluZGdlbltmNDJhOThhMTIyYWFlYTc2XTo6X19ydDo6V2FzbVJlZkNlbGw8dGZsb19jZXBfd2FzbVs0MzNhNDc1NjljODNkMWRlXTo6V2FzbVBhdHRlcm4+Pj46OmRyb3Bfc2xvd44BBm1lbWNtcI8BJmpzX3N5c1tiN2EyNjMzMWVjMDE5OWFiXTo6UmVmbGVjdDo6c2V0kAGWAXdhc21fYmluZGdlbltmNDJhOThhMTIyYWFlYTc2XTo6Y29udmVydDo6Y2xvc3VyZXM6Ol86Omludm9rZTo6PGFsbG9jW2E5NDFhMmNmYWI3ZWZiYzRdOjpzdHJpbmc6OlN0cmluZywgd2FzbV9iaW5kZ2VuW2Y0MmE5OGExMjJhYWVhNzZdOjpKc1ZhbHVlLCB0cnVlPpEBQHRmbG9fY2VwX3dhc21bNDMzYTQ3NTY5YzgzZDFkZV06OmJ1aWxkX21hdGNoX29iamVjdDo6e2Nsb3N1cmUjMn2SATdzdGRbOWI2MTc5MTUxNzk0NjIxNF06OnBhbmlja2luZzo6cGFuaWNfY291bnQ6OmluY3JlYXNlkwEmdGZsb19jZXBfd2FzbVs0MzNhNDc1NjljODNkMWRlXTo6c3RhcnSUATV3YXNtX2JpbmRnZW5bZjQyYTk4YTEyMmFhZWE3Nl06Ol9fd2JpbmRnZW5fbnVtYmVyX2dldJUBUDxhbGxvY1thOTQxYTJjZmFiN2VmYmM0XTo6cmM6OlJjPGpzX3N5c1tiN2EyNjMzMWVjMDE5OWFiXTo6RnVuY3Rpb24+Pjo6ZHJvcF9zbG93lgF8PHN0ZFs5YjYxNzkxNTE3OTQ2MjE0XTo6cGFuaWNraW5nOjpwYW5pY19oYW5kbGVyOjpTdGF0aWNTdHJQYXlsb2FkIGFzIGNvcmVbOWIzNzk2ZTMwZDk5ZGRiN106OnBhbmljOjpQYW5pY1BheWxvYWQ+Ojp0YWtlX2JveJcBLGNvcmVbOWIzNzk2ZTMwZDk5ZGRiN106OnBhbmlja2luZzo6cGFuaWNfZm10mAEtY29yZVs5YjM3OTZlMzBkOTlkZGI3XTo6b3B0aW9uOjpleHBlY3RfZmFpbGVkmQERX193YmluZGdlbl9tYWxsb2OaAXM8c3RkWzliNjE3OTE1MTc5NDYyMTRdOjpwYW5pY2tpbmc6OnBhbmljX2hhbmRsZXI6OkZvcm1hdFN0cmluZ1BheWxvYWQgYXMgY29yZVs5YjM3OTZlMzBkOTlkZGI3XTo6Zm10OjpEaXNwbGF5Pjo6Zm10mwFEPGNvcmVbOWIzNzk2ZTMwZDk5ZGRiN106OmZtdDo6Rm9ybWF0dGVyPjo6cGFkX2ludGVncmFsOjp3cml0ZV9wcmVmaXicARJfX3diaW5kZ2VuX3JlYWxsb2OdARpfX3diaW5kZ2VuX2Rlc3Ryb3lfY2xvc3VyZZ4BNGNvcmVbOWIzNzk2ZTMwZDk5ZGRiN106OmNlbGw6OnBhbmljX2FscmVhZHlfYm9ycm93ZWSfATxjb3JlWzliMzc5NmUzMGQ5OWRkYjddOjpjZWxsOjpwYW5pY19hbHJlYWR5X211dGFibHlfYm9ycm93ZWSgASZ3YXNtcGF0dGVybnJ1bnRpbWVfbmV3IG11bHRpdmFsdWUgc2hpbaEBQHRmbG9fY2VwX3dhc21bNDMzYTQ3NTY5YzgzZDFkZV06OmJ1aWxkX21hdGNoX29iamVjdDo6e2Nsb3N1cmUjMX2iASxfX3J1c3RjWzZlZjc4ZmJhMTNhYzc3NmNdOjpydXN0X2JlZ2luX3Vud2luZKMBL3dhc21wYXR0ZXJuX2VtaXQgZXh0ZXJucmVmIHNoaW0gbXVsdGl2YWx1ZSBzaGltpAEmc3RkWzliNjE3OTE1MTc5NDYyMTRdOjphbGxvYzo6cnVzdF9vb22lASh3YXNtY29tcGlsZWRwYXR0ZXJuX25hbWUgbXVsdGl2YWx1ZSBzaGltpgEvd2FzbXBhdHRlcm5ydW50aW1lX25leHREZWFkbGluZSBtdWx0aXZhbHVlIHNoaW2nAeUBd2FzbV9iaW5kZ2VuW2Y0MmE5OGExMjJhYWVhNzZdOjpjb252ZXJ0OjpjbG9zdXJlczo6Xzo6aW52b2tlOjo8d2FzbV9iaW5kZ2VuW2Y0MmE5OGExMjJhYWVhNzZdOjpKc1ZhbHVlLCB3YXNtX2JpbmRnZW5bZjQyYTk4YTEyMmFhZWE3Nl06OkpzVmFsdWUsIHUzMiwganNfc3lzW2I3YTI2MzMxZWMwMTk5YWJdOjpBcnJheSwgd2FzbV9iaW5kZ2VuW2Y0MmE5OGExMjJhYWVhNzZdOjpKc1ZhbHVlLCB0cnVlPqgBWjxqc19zeXNbYjdhMjYzMzFlYzAxOTlhYl06OkZ1bmN0aW9uPF8+Pjo6Y2FsbDI6Ol9fd2JnX2NhbGxfNDBlNDE3NGYxNjllYWNhNyBleHRlcm5yZWYgc2hpbakBfmNvcmVbOWIzNzk2ZTMwZDk5ZGRiN106OnB0cjo6ZHJvcF9nbHVlOjo8PHRmbG9fY2VwX3dhc21bNDMzYTQ3NTY5YzgzZDFkZV06Oldhc21QYXR0ZXJuUnVudGltZT46OnNldF9kcm9wX2hhbmRsZXI6OntjbG9zdXJlIzB9PqoBamNvcmVbOWIzNzk2ZTMwZDk5ZGRiN106OnB0cjo6ZHJvcF9nbHVlOjo8dGZsb19jZXBfd2FzbVs0MzNhNDc1NjljODNkMWRlXTo6YnVpbGRfbWF0Y2hfb2JqZWN0Ojp7Y2xvc3VyZSMwfT6rAWpjb3JlWzliMzc5NmUzMGQ5OWRkYjddOjpwdHI6OmRyb3BfZ2x1ZTo6PHRmbG9fY2VwX3dhc21bNDMzYTQ3NTY5YzgzZDFkZV06OmJ1aWxkX21hdGNoX29iamVjdDo6e2Nsb3N1cmUjNH0+rAG5AXdhc21fYmluZGdlbltmNDJhOThhMTIyYWFlYTc2XTo6Y29udmVydDo6Y2xvc3VyZXM6Ol86Omludm9rZTo6PHdhc21fYmluZGdlbltmNDJhOThhMTIyYWFlYTc2XTo6SnNWYWx1ZSwgd2FzbV9iaW5kZ2VuW2Y0MmE5OGExMjJhYWVhNzZdOjpKc1ZhbHVlLCBqc19zeXNbYjdhMjYzMzFlYzAxOTlhYl06OlNldCwgKCksIHRydWU+rQG8AXdhc21fYmluZGdlbltmNDJhOThhMTIyYWFlYTc2XTo6Y29udmVydDo6Y2xvc3VyZXM6Ol86Omludm9rZTo6PHdhc21fYmluZGdlbltmNDJhOThhMTIyYWFlYTc2XTo6SnNWYWx1ZSwgdTMyLCBqc19zeXNbYjdhMjYzMzFlYzAxOTlhYl06OkFycmF5LCB3YXNtX2JpbmRnZW5bZjQyYTk4YTEyMmFhZWE3Nl06OkpzVmFsdWUsIHRydWU+rgGZAXdhc21fYmluZGdlbltmNDJhOThhMTIyYWFlYTc2XTo6Y29udmVydDo6Y2xvc3VyZXM6Ol86Omludm9rZTo6PHdhc21fYmluZGdlbltmNDJhOThhMTIyYWFlYTc2XTo6SnNWYWx1ZSwgdTMyLCBqc19zeXNbYjdhMjYzMzFlYzAxOTlhYl06OkFycmF5LCBib29sLCB0cnVlPq8Bdndhc21fYmluZGdlbltmNDJhOThhMTIyYWFlYTc2XTo6Y29udmVydDo6Y2xvc3VyZXM6Ol86Omludm9rZTo6PGk4LCB1MzIsIGpzX3N5c1tiN2EyNjMzMWVjMDE5OWFiXTo6SW50OEFycmF5LCAoKSwgdHJ1ZT6wAXp3YXNtX2JpbmRnZW5bZjQyYTk4YTEyMmFhZWE3Nl06OmNvbnZlcnQ6OmNsb3N1cmVzOjpfOjppbnZva2U6OjxmNjQsIHUzMiwganNfc3lzW2I3YTI2MzMxZWMwMTk5YWJdOjpGbG9hdDY0QXJyYXksICgpLCB0cnVlPrEBendhc21fYmluZGdlbltmNDJhOThhMTIyYWFlYTc2XTo6Y29udmVydDo6Y2xvc3VyZXM6Ol86Omludm9rZTo6PGYzMiwgdTMyLCBqc19zeXNbYjdhMjYzMzFlYzAxOTlhYl06OkZsb2F0MTZBcnJheSwgKCksIHRydWU+sgF4d2FzbV9iaW5kZ2VuW2Y0MmE5OGExMjJhYWVhNzZdOjpjb252ZXJ0OjpjbG9zdXJlczo6Xzo6aW52b2tlOjo8aTE2LCB1MzIsIGpzX3N5c1tiN2EyNjMzMWVjMDE5OWFiXTo6SW50MTZBcnJheSwgKCksIHRydWU+swF7d2FzbV9iaW5kZ2VuW2Y0MmE5OGExMjJhYWVhNzZdOjpjb252ZXJ0OjpjbG9zdXJlczo6Xzo6aW52b2tlOjo8aTY0LCB1MzIsIGpzX3N5c1tiN2EyNjMzMWVjMDE5OWFiXTo6QmlnSW50NjRBcnJheSwgKCksIHRydWU+tAHOAndhc21fYmluZGdlbltmNDJhOThhMTIyYWFlYTc2XTo6Y29udmVydDo6Y2xvc3VyZXM6Ol86Omludm9rZTo6PGpzX3N5c1tiN2EyNjMzMWVjMDE5OWFiXTo6RnVuY3Rpb248Zm4od2FzbV9iaW5kZ2VuW2Y0MmE5OGExMjJhYWVhNzZdOjpKc1ZhbHVlKSAtPiB3YXNtX2JpbmRnZW5bZjQyYTk4YTEyMmFhZWE3Nl06OnN5czo6VW5kZWZpbmVkPiwganNfc3lzW2I3YTI2MzMxZWMwMTk5YWJdOjpGdW5jdGlvbjxmbih3YXNtX2JpbmRnZW5bZjQyYTk4YTEyMmFhZWE3Nl06OkpzVmFsdWUpIC0+IHdhc21fYmluZGdlbltmNDJhOThhMTIyYWFlYTc2XTo6c3lzOjpVbmRlZmluZWQ+LCAoKSwgdHJ1ZT61AZsBd2FzbV9iaW5kZ2VuW2Y0MmE5OGExMjJhYWVhNzZdOjpjb252ZXJ0OjpjbG9zdXJlczo6Xzo6aW52b2tlOjo8d2FzbV9iaW5kZ2VuW2Y0MmE5OGExMjJhYWVhNzZdOjpKc1ZhbHVlLCB3YXNtX2JpbmRnZW5bZjQyYTk4YTEyMmFhZWE3Nl06OkpzVmFsdWUsIGkzMiwgdHJ1ZT62AVo8anNfc3lzW2I3YTI2MzMxZWMwMTk5YWJdOjpGdW5jdGlvbjxfPj46OmNhbGwxOjpfX3diZ19jYWxsXzljNzU4ZGUyOTIwMTU5OTcgZXh0ZXJucmVmIHNoaW23AUB0ZmxvX2NlcF93YXNtWzQzM2E0NzU2OWM4M2QxZGVdOjpidWlsZF9tYXRjaF9vYmplY3Q6OntjbG9zdXJlIzB9uAFzd2FzbV9iaW5kZ2VuW2Y0MmE5OGExMjJhYWVhNzZdOjpjb252ZXJ0OjpjbG9zdXJlczo6Xzo6aW52b2tlOjo8d2FzbV9iaW5kZ2VuW2Y0MmE5OGExMjJhYWVhNzZdOjpKc1ZhbHVlLCBib29sLCB0cnVlPrkBbmNvcmVbOWIzNzk2ZTMwZDk5ZGRiN106OnB0cjo6ZHJvcF9nbHVlOjo8c3RkWzliNjE3OTE1MTc5NDYyMTRdOjpwYW5pY2tpbmc6OnBhbmljX2hhbmRsZXI6OkZvcm1hdFN0cmluZ1BheWxvYWQ+ugEzc3RkWzliNjE3OTE1MTc5NDYyMTRdOjphbGxvYzo6cnVzdF9vb206OntjbG9zdXJlIzB9uwFtd2FzbV9iaW5kZ2VuW2Y0MmE5OGExMjJhYWVhNzZdOjpjb252ZXJ0OjpjbG9zdXJlczo6Xzo6aW52b2tlOjo8d2FzbV9iaW5kZ2VuW2Y0MmE5OGExMjJhYWVhNzZdOjpKc1ZhbHVlLCB0cnVlPrwBUWNvcmVbOWIzNzk2ZTMwZDk5ZGRiN106OnB0cjo6ZHJvcF9nbHVlOjo8YWxsb2NbYTk0MWEyY2ZhYjdlZmJjNF06OnN0cmluZzo6U3RyaW5nPr0BVGNvcmVbOWIzNzk2ZTMwZDk5ZGRiN106OnB0cjo6ZHJvcF9nbHVlOjo8YWxsb2NbYTk0MWEyY2ZhYjdlZmJjNF06OnN0cmluZzo6U3RyaW5nPlsxXb4Bd2NvcmVbOWIzNzk2ZTMwZDk5ZGRiN106OnB0cjo6ZHJvcF9nbHVlOjo8Y29yZVs5YjM3OTZlMzBkOTlkZGI3XTo6b3B0aW9uOjpPcHRpb248YWxsb2NbYTk0MWEyY2ZhYjdlZmJjNF06OnZlYzo6VmVjPHU4Pj4+vwFUY29yZVs5YjM3OTZlMzBkOTlkZGI3XTo6cHRyOjpkcm9wX2dsdWU6OjxhbGxvY1thOTQxYTJjZmFiN2VmYmM0XTo6c3RyaW5nOjpTdHJpbmc+WzJdwAEmX19ydXN0Y1s2ZWY3OGZiYTEzYWM3NzZjXTo6X19yZGxfYWxsb2PBAVRjb3JlWzliMzc5NmUzMGQ5OWRkYjddOjpwdHI6OmRyb3BfZ2x1ZTo6PGFsbG9jW2E5NDFhMmNmYWI3ZWZiYzRdOjpzdHJpbmc6OlN0cmluZz5bM13CASZ3YXNtcGF0dGVybnJ1bnRpbWVfcHVzaCBleHRlcm5yZWYgc2hpbcMBLmFsbG9jW2E5NDFhMmNmYWI3ZWZiYzRdOjpyYXdfdmVjOjpoYW5kbGVfZXJyb3LEAShjb3JlWzliMzc5NmUzMGQ5OWRkYjddOjpwYW5pY2tpbmc6OnBhbmljxQFhd2FzbV9iaW5kZ2VuW2Y0MmE5OGExMjJhYWVhNzZdOjpfX3diaW5kZ2VuX2Vycm9yX25ldzo6X193YmdfRXJyb3JfZWY1M2JjMzEwZWIyOThhMCBleHRlcm5yZWYgc2hpbcYBsgFDbG9zdXJlKENsb3N1cmUgeyBvd25lZDogdHJ1ZSwgZnVuY3Rpb246IEZ1bmN0aW9uIHsgYXJndW1lbnRzOiBbU3RyaW5nXSwgc2hpbV9pZHg6IDE3LCByZXQ6IEV4dGVybnJlZiwgaW5uZXJfcmV0OiBTb21lKEV4dGVybnJlZikgfSwgbXV0YWJsZTogZmFsc2UgfSkgLT4gRXh0ZXJucmVmIGV4dGVybnJlZiBzaGltxwGsAUNsb3N1cmUoQ2xvc3VyZSB7IG93bmVkOiB0cnVlLCBmdW5jdGlvbjogRnVuY3Rpb24geyBhcmd1bWVudHM6IFtdLCBzaGltX2lkeDogMTksIHJldDogRXh0ZXJucmVmLCBpbm5lcl9yZXQ6IFNvbWUoRXh0ZXJucmVmKSB9LCBtdXRhYmxlOiBmYWxzZSB9KSAtPiBFeHRlcm5yZWYgZXh0ZXJucmVmIHNoaW3IASdSZWYoU3RyaW5nKSAtPiBFeHRlcm5yZWYgZXh0ZXJucmVmIHNoaW3JASd3YXNtcGF0dGVybl9ub3RUaGVuTmFtZWQgZXh0ZXJucmVmIHNoaW3KASR3YXNtcGF0dGVybl90aGVuTmFtZWQgZXh0ZXJucmVmIHNoaW3LAaUBd2FzbV9iaW5kZ2VuW2Y0MmE5OGExMjJhYWVhNzZdOjpjb252ZXJ0OjpjbG9zdXJlczo6Xzo6aW52b2tlOjo8YWxsb2NbYTk0MWEyY2ZhYjdlZmJjNF06OnN0cmluZzo6U3RyaW5nLCB3YXNtX2JpbmRnZW5bZjQyYTk4YTEyMmFhZWE3Nl06OkpzVmFsdWUsIHRydWU+IGV4dGVybnJlZiBzaGltzAEPX193YmluZGdlbl9mcmVlzQFWPGFsbG9jW2E5NDFhMmNmYWI3ZWZiYzRdOjpzdHJpbmc6OlN0cmluZyBhcyBjb3JlWzliMzc5NmUzMGQ5OWRkYjddOjphbnk6OkFueT46OnR5cGVfaWTOATM8JnN0ciBhcyBjb3JlWzliMzc5NmUzMGQ5OWRkYjddOjphbnk6OkFueT46OnR5cGVfaWTPATM8Y29yZVs5YjM3OTZlMzBkOTlkZGI3XTo6Zm10OjpGb3JtYXR0ZXI+Ojp3cml0ZV9zdHLQAR9GNjQgLT4gRXh0ZXJucmVmIGV4dGVybnJlZiBzaGlt0QEfd2FzbXBhdHRlcm5fZW1pdCBleHRlcm5yZWYgc2hpbdIBVDwmZHluIGNvcmVbOWIzNzk2ZTMwZDk5ZGRiN106OmZtdDo6RGVidWcgYXMgY29yZVs5YjM3OTZlMzBkOTlkZGI3XTo6Zm10OjpEZWJ1Zz46OmZtdNMBYzxjb25zb2xlX2Vycm9yX3BhbmljX2hvb2tbMTJlM2UxMTZhNjY5MWMxOV06OkVycm9yPjo6bmV3OjpfX3diZ19uZXdfMjI3ZDdjMDU0MTRlYjg2MSBleHRlcm5yZWYgc2hpbdQBUjxqc19zeXNbYjdhMjYzMzFlYzAxOTlhYl06Ok9iamVjdD46Om5ldzo6X193YmdfbmV3X2NlMWFiNjFjMWMyYjMwMGQgZXh0ZXJucmVmIHNoaW3VAVE8anNfc3lzW2I3YTI2MzMxZWMwMTk5YWJdOjpBcnJheT46Om5ldzo6X193YmdfbmV3X2Q5MDA5MWI4MmZkZjViOTEgZXh0ZXJucmVmIHNoaW3WAVFqc19zeXNbYjdhMjYzMzFlYzAxOTlhYl06OlJlZmxlY3Q6OnNldDo6X193Ymdfc2V0XzZlMzBjOTM3NGMyNjQxNGMgZXh0ZXJucmVmIHNoaW3XASV3YXNtcGF0dGVybl9ub3RCZXR3ZWVuIGV4dGVybnJlZiBzaGlt2AEid2FzbXBhdHRlcm5fbm90VGhlbiBleHRlcm5yZWYgc2hpbdkBH3dhc21wYXR0ZXJuX3RoZW4gZXh0ZXJucmVmIHNoaW3aASR3YXNtcGF0dGVybl90aW1lc3RhbXAgZXh0ZXJucmVmIHNoaW3bAR93YXNtcGF0dGVybl93aGVuIGV4dGVybnJlZiBzaGlt3AEwd2FzbXBhdHRlcm5ydW50aW1lX3NldERyb3BIYW5kbGVyIGV4dGVybnJlZiBzaGlt3QEmd2FzbXBhdHRlcm5ydW50aW1lX3RpY2sgZXh0ZXJucmVmIHNoaW3eAXx3YXNtX2JpbmRnZW5bZjQyYTk4YTEyMmFhZWE3Nl06OmNvbnZlcnQ6OmNsb3N1cmVzOjpfOjppbnZva2U6Ojx3YXNtX2JpbmRnZW5bZjQyYTk4YTEyMmFhZWE3Nl06OkpzVmFsdWUsIHRydWU+IGV4dGVybnJlZiBzaGlt3wFWPGFsbG9jW2E5NDFhMmNmYWI3ZWZiYzRdOjpzdHJpbmc6OlN0cmluZyBhcyBjb3JlWzliMzc5NmUzMGQ5OWRkYjddOjpmbXQ6OkRpc3BsYXk+OjpmbXTgATM8JnN0ciBhcyBjb3JlWzliMzc5NmUzMGQ5OWRkYjddOjpmbXQ6OkRpc3BsYXk+OjpmbXThASlfX3J1c3RjWzZlZjc4ZmJhMTNhYzc3NmNdOjpfX3J1c3RfcmVhbGxvY+IBFF9fd2JpbmRnZW5fZXhuX3N0b3Jl4wE2PCZzdHIgYXMgY29yZVs5YjM3OTZlMzBkOTlkZGI3XTo6Zm10OjpEaXNwbGF5Pjo6Zm10WzFd5AF3PHN0ZFs5YjYxNzkxNTE3OTQ2MjE0XTo6cGFuaWNraW5nOjpwYW5pY19oYW5kbGVyOjpTdGF0aWNTdHJQYXlsb2FkIGFzIGNvcmVbOWIzNzk2ZTMwZDk5ZGRiN106OnBhbmljOjpQYW5pY1BheWxvYWQ+OjpnZXTlAXA8c3RkWzliNjE3OTE1MTc5NDYyMTRdOjpwYW5pY2tpbmc6OnBhbmljX2hhbmRsZXI6OlN0YXRpY1N0clBheWxvYWQgYXMgY29yZVs5YjM3OTZlMzBkOTlkZGI3XTo6Zm10OjpEaXNwbGF5Pjo6Zm105gE2PCZzdHIgYXMgY29yZVs5YjM3OTZlMzBkOTlkZGI3XTo6Zm10OjpEaXNwbGF5Pjo6Zm10WzJd5wEbX193YmluZGdlbl9vYmplY3RfY2xvbmVfcmVm6AEnd2FzbXBhdHRlcm5ydW50aW1lX2ZsdXNoIGV4dGVybnJlZiBzaGlt6QEpX19ydXN0Y1s2ZWY3OGZiYTEzYWM3NzZjXTo6X19ydXN0X2RlYWxsb2PqAVo8YWxsb2NbYTk0MWEyY2ZhYjdlZmJjNF06OnN0cmluZzo6U3RyaW5nIGFzIGNvcmVbOWIzNzk2ZTMwZDk5ZGRiN106OmZtdDo6V3JpdGU+Ojp3cml0ZV9mbXTrATN3YXNtX2JpbmRnZW5bZjQyYTk4YTEyMmFhZWE3Nl06Ol9fd2JpbmRnZW5faXNfZmFsc3nsASVfX3J1c3RjWzZlZjc4ZmJhMTNhYzc3NmNdOjpydXN0X3Bhbmlj7QFdPGFsbG9jW2E5NDFhMmNmYWI3ZWZiYzRdOjpzdHJpbmc6OlN0cmluZyBhcyBjb3JlWzliMzc5NmUzMGQ5OWRkYjddOjpmbXQ6OldyaXRlPjo6d3JpdGVfZm10WzFd7gEzYWxsb2NbYTk0MWEyY2ZhYjdlZmJjNF06OnJhd192ZWM6OmNhcGFjaXR5X292ZXJmbG937wFdPGFsbG9jW2E5NDFhMmNmYWI3ZWZiYzRdOjpzdHJpbmc6OlN0cmluZyBhcyBjb3JlWzliMzc5NmUzMGQ5OWRkYjddOjpmbXQ6OldyaXRlPjo6d3JpdGVfZm10WzJd8AEtY29yZVs5YjM3OTZlMzBkOTlkZGI3XTo6b3B0aW9uOjp1bndyYXBfZmFpbGVk8QFIY29yZVs5YjM3OTZlMzBkOTlkZGI3XTo6cGFuaWNraW5nOjpwYW5pY19jb25zdDo6cGFuaWNfY29uc3RfYWRkX292ZXJmbG938gFWPGpzX3N5c1tiN2EyNjMzMWVjMDE5OWFiXTo6QXJyYXk8Xz4+OjpwdXNoOjpfX3diZ19wdXNoX2E2ODIyMjE1YWE0M2U3MWMgZXh0ZXJucmVmIHNoaW3zASdfX3J1c3RjWzZlZjc4ZmJhMTNhYzc3NmNdOjpfX3J1c3RfYWxsb2P0AU88Y29yZVs5YjM3OTZlMzBkOTlkZGI3XTo6Zm10OjpFcnJvciBhcyBjb3JlWzliMzc5NmUzMGQ5OWRkYjddOjpmbXQ6OkRlYnVnPjo6Zm109QEpd2FzbV9iaW5kZ2VuW2Y0MmE5OGExMjJhYWVhNzZdOjp0aHJvd19zdHL2ATB3YXNtX2JpbmRnZW5bZjQyYTk4YTEyMmFhZWE3Nl06Ol9fcnQ6OnRocm93X251bGz3ATF3YXNtX2JpbmRnZW5bZjQyYTk4YTEyMmFhZWE3Nl06Ol9fcnQ6OmJvcnJvd19mYWls+AE1X19ydXN0Y1s2ZWY3OGZiYTEzYWM3NzZjXTo6X19ydXN0X2FsbG9jX2Vycm9yX2hhbmRsZXL5AXo8c3RkWzliNjE3OTE1MTc5NDYyMTRdOjpwYW5pY2tpbmc6OnBhbmljX2hhbmRsZXI6OlN0YXRpY1N0clBheWxvYWQgYXMgY29yZVs5YjM3OTZlMzBkOTlkZGI3XTo6cGFuaWM6OlBhbmljUGF5bG9hZD46OmFzX3N0cvoBMmFsbG9jW2E5NDFhMmNmYWI3ZWZiYzRdOjphbGxvYzo6aGFuZGxlX2FsbG9jX2Vycm9y+wFSPGNvcmVbOWIzNzk2ZTMwZDk5ZGRiN106OmZtdDo6RXJyb3IgYXMgY29yZVs5YjM3OTZlMzBkOTlkZGI3XTo6Zm10OjpEZWJ1Zz46OmZtdFsxXfwBWzxjb3JlWzliMzc5NmUzMGQ5OWRkYjddOjpjZWxsOjpCb3Jyb3dNdXRFcnJvciBhcyBjb3JlWzliMzc5NmUzMGQ5OWRkYjddOjpmbXQ6OkRpc3BsYXk+OjpmbXT9AVg8Y29yZVs5YjM3OTZlMzBkOTlkZGI3XTo6Y2VsbDo6Qm9ycm93RXJyb3IgYXMgY29yZVs5YjM3OTZlMzBkOTlkZGI3XTo6Zm10OjpEaXNwbGF5Pjo6Zm10/gEyPHN0ciBhcyBjb3JlWzliMzc5NmUzMGQ5OWRkYjddOjpmbXQ6OkRpc3BsYXk+OjpmbXT/AWc8Y29uc29sZV9lcnJvcl9wYW5pY19ob29rWzEyZTNlMTE2YTY2OTFjMTldOjpFcnJvcj46OnN0YWNrOjpfX3diZ19zdGFja18zYjBkOTc0YmJmMzFlNDRmIGV4dGVybnJlZiBzaGltgAJyd2FzbV9iaW5kZ2VuW2Y0MmE5OGExMjJhYWVhNzZdOjpfX3diaW5kZ2VuX251bWJlcl9nZXQ6Ol9fd2JnX19fd2JpbmRnZW5fbnVtYmVyX2dldF85YmIxNzYxMTIyMTgxYWYyIGV4dGVybnJlZiBzaGltgQIwd2FzbV9iaW5kZ2VuW2Y0MmE5OGExMjJhYWVhNzZdOjpfX3diaW5kZ2VuX3Rocm93ggI0d2FzbV9iaW5kZ2VuW2Y0MmE5OGExMjJhYWVhNzZdOjpfX3diaW5kZ2VuX2Vycm9yX25ld4MCe3N0ZFs5YjYxNzkxNTE3OTQ2MjE0XTo6c3lzOjpiYWNrdHJhY2U6Ol9fcnVzdF9lbmRfc2hvcnRfYmFja3RyYWNlOjo8c3RkWzliNjE3OTE1MTc5NDYyMTRdOjphbGxvYzo6cnVzdF9vb206OntjbG9zdXJlIzB9LCAhPoQChAFzdGRbOWI2MTc5MTUxNzk0NjIxNF06OnN5czo6YmFja3RyYWNlOjpfX3J1c3RfZW5kX3Nob3J0X2JhY2t0cmFjZTo6PHN0ZFs5YjYxNzkxNTE3OTQ2MjE0XTo6cGFuaWNraW5nOjpwYW5pY19oYW5kbGVyOjp7Y2xvc3VyZSMwfSwgIT6FAjZzdGRbOWI2MTc5MTUxNzk0NjIxNF06OmFsbG9jOjpkZWZhdWx0X2FsbG9jX2Vycm9yX2hvb2uGAkBzdGRbOWI2MTc5MTUxNzk0NjIxNF06OnBhbmlja2luZzo6cGFuaWNfY291bnQ6OmlzX3plcm9fc2xvd19wYXRohwJ1PHN0ZFs5YjYxNzkxNTE3OTQ2MjE0XTo6cGFuaWNraW5nOjpiZWdpbl9wYW5pYzo6UGF5bG9hZDwmc3RyPiBhcyBjb3JlWzliMzc5NmUzMGQ5OWRkYjddOjpwYW5pYzo6UGFuaWNQYXlsb2FkPjo6YXNfc3RyiAJud2FzbV9iaW5kZ2VuW2Y0MmE5OGExMjJhYWVhNzZdOjpfX3diaW5kZ2VuX2lzX2ZhbHN5OjpfX3diZ19fX3diaW5kZ2VuX2lzX2ZhbHN5X2Q3ZWQ0OTg0MGU2ZDlhYmIgZXh0ZXJucmVmIHNoaW2JArABPGNvbnNvbGVfZXJyb3JfcGFuaWNfaG9va1sxMmUzZTExNmE2NjkxYzE5XTo6aG9vayBhcyBjb3JlWzliMzc5NmUzMGQ5OWRkYjddOjpvcHM6OmZ1bmN0aW9uOjpGbk9uY2U8KCZzdGRbOWI2MTc5MTUxNzk0NjIxNF06OnBhbmljOjpQYW5pY0hvb2tJbmZvLCk+Pjo6Y2FsbF9vbmNlOjp7c2hpbTp2dGFibGUjMH2KApYBPGNvbnNvbGVfZXJyb3JfcGFuaWNfaG9va1sxMmUzZTExNmE2NjkxYzE5XTo6aG9vayBhcyBjb3JlWzliMzc5NmUzMGQ5OWRkYjddOjpvcHM6OmZ1bmN0aW9uOjpGbjwoJnN0ZFs5YjYxNzkxNTE3OTQ2MjE0XTo6cGFuaWM6OlBhbmljSG9va0luZm8sKT4+OjpjYWxsiwKdATxjb25zb2xlX2Vycm9yX3BhbmljX2hvb2tbMTJlM2UxMTZhNjY5MWMxOV06Omhvb2sgYXMgY29yZVs5YjM3OTZlMzBkOTlkZGI3XTo6b3BzOjpmdW5jdGlvbjo6Rm5NdXQ8KCZzdGRbOWI2MTc5MTUxNzk0NjIxNF06OnBhbmljOjpQYW5pY0hvb2tJbmZvLCk+Pjo6Y2FsbF9tdXSMAi1fX3J1c3RjWzZlZjc4ZmJhMTNhYzc3NmNdOjpfX3J1c3Rfc3RhcnRfcGFuaWOOAj5fX3J1c3RjWzZlZjc4ZmJhMTNhYzc3NmNdOjpfX3J1c3Rfbm9fYWxsb2Nfc2hpbV9pc191bnN0YWJsZV92Mo8CJjxqc19zeXNbYjdhMjYzMzFlYzAxOTlhYl06OkFycmF5Pjo6bmV3kAInPGpzX3N5c1tiN2EyNjMzMWVjMDE5OWFiXTo6T2JqZWN0Pjo6bmV3kQInX19ydXN0Y1s2ZWY3OGZiYTEzYWM3NzZjXTo6X19ydXN0X2Fib3J0BRgBARVfX3diaW5kZ2VuX2V4dGVybnJlZnMHEgEAD19fc3RhY2tfcG9pbnRlcgkRAgAHLnJvZGF0YQEFLmRhdGEAfAlwcm9kdWNlcnMCCGxhbmd1YWdlAQRSdXN0AAxwcm9jZXNzZWQtYnkDBXJ1c3RjHTEuOTcuMSAoOGJhYjI2ZjRmIDIwMjYtMDctMTQpBndhbHJ1cwYwLjI2LjIMd2FzbS1iaW5kZ2VuEzAuMi4xMjIgKGRkZDMyMjUxNCkAlAEPdGFyZ2V0X2ZlYXR1cmVzCCsLYnVsay1tZW1vcnkrD2J1bGstbWVtb3J5LW9wdCsWY2FsbC1pbmRpcmVjdC1vdmVybG9uZysKbXVsdGl2YWx1ZSsPbXV0YWJsZS1nbG9iYWxzKxNub250cmFwcGluZy1mcHRvaW50Kw9yZWZlcmVuY2UtdHlwZXMrCHNpZ24tZXh0", import.meta.url));
367
+ const A = tA();
368
+ (typeof I == "string" || typeof Request == "function" && I instanceof Request || typeof URL == "function" && I instanceof URL) && (I = fetch(I));
369
+ const { instance: g, module: Q } = await dA(await I, A);
370
+ return hA(g);
371
+ }
372
+ const x = "tflo_session_id";
373
+ function rA() {
374
+ let I = sessionStorage.getItem(x);
375
+ return I || (I = crypto.randomUUID(), sessionStorage.setItem(x, I)), I;
376
+ }
377
+ function aA(I) {
378
+ return (A) => ({
379
+ ...A,
380
+ payload: {
381
+ ...A.payload,
382
+ app_id: I.appId,
383
+ environment: I.environment,
384
+ session_id: I.sessionId,
385
+ ...I.userIdHash ? { user_id_hash: I.userIdHash } : {},
386
+ ...I.tenantIdHash ? { tenant_id_hash: I.tenantIdHash } : {}
387
+ }
388
+ });
389
+ }
390
+ const NA = (I) => {
391
+ const A = I.dataset;
392
+ return A && typeof A.sectionId == "string" ? A.sectionId : I.id ? I.id : I.tagName.toLowerCase();
393
+ };
394
+ function P(I, A) {
395
+ const g = new Set(I.emit ?? ["enter", "exit", "dwell"]), Q = I.sectionIdFrom ?? NA, C = I.now ?? (() => performance.now()), B = I.observerImpl ?? ((t, i) => new IntersectionObserver(t, i)), E = YA(I.target, I.selector), e = /* @__PURE__ */ new Map(), n = B((t) => {
396
+ for (const i of t) {
397
+ const c = Q(i.target), l = C(), h = i.intersectionRatio;
398
+ if (i.isIntersecting) {
399
+ if (e.has(i.target))
400
+ continue;
401
+ e.set(i.target, { ts: l, sectionId: c }), g.has("enter") && A({
402
+ ts: l,
403
+ kind: "viewport:enter",
404
+ fields: { sectionId: c, intersectionRatio: h }
405
+ });
406
+ } else {
407
+ const d = e.get(i.target);
408
+ if (!d)
409
+ continue;
410
+ e.delete(i.target), g.has("exit") && A({
411
+ ts: l,
412
+ kind: "viewport:exit",
413
+ fields: { sectionId: c, intersectionRatio: h }
414
+ }), g.has("dwell") && A({
415
+ ts: l,
416
+ kind: "viewport:dwell",
417
+ fields: {
418
+ sectionId: c,
419
+ entryTs: d.ts,
420
+ exitTs: l,
421
+ durationMs: l - d.ts
422
+ }
423
+ });
424
+ }
425
+ }
426
+ }, {
427
+ threshold: I.threshold ?? 0.5,
428
+ rootMargin: I.rootMargin
429
+ });
430
+ for (const t of E)
431
+ n.observe(t);
432
+ return () => {
433
+ if (n.disconnect(), !g.has("exit") && !g.has("dwell"))
434
+ return;
435
+ const t = C();
436
+ for (const [i, c] of e) {
437
+ const l = Q(i);
438
+ g.has("exit") && A({
439
+ ts: t,
440
+ kind: "viewport:exit",
441
+ fields: { sectionId: l, intersectionRatio: 0 }
442
+ }), g.has("dwell") && A({
443
+ ts: t,
444
+ kind: "viewport:dwell",
445
+ fields: {
446
+ sectionId: l,
447
+ entryTs: c.ts,
448
+ exitTs: t,
449
+ durationMs: t - c.ts
450
+ }
451
+ });
452
+ }
453
+ e.clear();
454
+ };
455
+ }
456
+ function YA(I, A) {
457
+ if (Array.isArray(I))
458
+ return I;
459
+ if ("length" in I && typeof I.item == "function")
460
+ return Array.from(I);
461
+ const g = I;
462
+ return A ? Array.from(g.querySelectorAll(A)) : g instanceof Element ? [g] : [];
463
+ }
464
+ class mA {
465
+ constructor(A) {
466
+ o(this, "inner");
467
+ o(this, "finalized", !1);
468
+ this.inner = new r(A);
469
+ }
470
+ timestamp(A) {
471
+ return this.inner = this.inner.timestamp((g) => A(g)), this;
472
+ }
473
+ when(A) {
474
+ return this.inner = this.inner.when((g) => A(g)), this;
475
+ }
476
+ then(A) {
477
+ return this.inner = this.inner.then((g) => A(g)), this;
478
+ }
479
+ thenNamed(A, g) {
480
+ return this.inner = this.inner.thenNamed(A, (Q) => g(Q)), this;
481
+ }
482
+ notThen(A) {
483
+ return this.inner = this.inner.notThen((g) => A(g)), this;
484
+ }
485
+ notThenNamed(A, g) {
486
+ return this.inner = this.inner.notThenNamed(A, (Q) => g(Q)), this;
487
+ }
488
+ within(A) {
489
+ return this.inner = this.inner.within(A), this;
490
+ }
491
+ emit(A) {
492
+ const g = this.inner.emit((Q) => A(Q));
493
+ return this.finalized = !0, new DA(g);
494
+ }
495
+ destroy() {
496
+ this.finalized || this.inner.free();
497
+ }
498
+ }
499
+ class DA {
500
+ constructor(A) {
501
+ o(this, "name");
502
+ o(this, "inner");
503
+ this.inner = A, this.name = A.name;
504
+ }
505
+ destroy() {
506
+ this.inner.free();
507
+ }
508
+ }
509
+ class MA {
510
+ constructor(A) {
511
+ o(this, "inner");
512
+ o(this, "patternName");
513
+ this.inner = new p(A.inner), this.patternName = A.name;
514
+ }
515
+ push(A) {
516
+ const g = this.inner.push(A);
517
+ return this.normalize(g);
518
+ }
519
+ flush() {
520
+ const A = this.inner.flush();
521
+ return this.normalize(A);
522
+ }
523
+ reset() {
524
+ this.inner.reset();
525
+ }
526
+ destroy() {
527
+ this.inner.free();
528
+ }
529
+ normalize(A) {
530
+ const g = [], Q = performance.now();
531
+ for (const C of A) {
532
+ const B = C ?? {};
533
+ g.push({
534
+ name: B.name ?? this.patternName,
535
+ ts: B.ts ?? Q,
536
+ payload: B.payload ?? {},
537
+ sinks: B.sinks
538
+ });
539
+ }
540
+ return g;
541
+ }
542
+ }
543
+ class bA {
544
+ constructor(A = {}) {
545
+ o(this, "name");
546
+ o(this, "level");
547
+ this.name = A.name ?? "console", this.level = A.level ?? "log";
548
+ }
549
+ send(A) {
550
+ console[this.level]("[tflo]", A.name, A.payload, `ts=${A.ts}`);
551
+ }
552
+ }
553
+ const L = 50, kA = 1e3, $ = 6e4, GA = 5, JA = 3, wA = /* @__PURE__ */ new Set([408, 429, 500, 502, 503, 504]), ZA = 4294967295, FA = 16384, yA = new TextEncoder();
554
+ function R(I) {
555
+ return yA.encode(I).length;
556
+ }
557
+ function fA(I) {
558
+ return JSON.stringify({ batch: I });
559
+ }
560
+ function M(I, A, g) {
561
+ if (I === void 0)
562
+ return A;
563
+ if (!Number.isFinite(I) || I <= 0)
564
+ throw new RangeError(`EdgeSink: ${g} must be a positive number`);
565
+ return Math.max(1, Math.floor(I));
566
+ }
567
+ function WA(I) {
568
+ return globalThis.crypto.getRandomValues(new Uint8Array(I));
569
+ }
570
+ function uA(I, A) {
571
+ const g = new Uint8Array(16);
572
+ g.set(A(16).subarray(0, 16));
573
+ let Q = Math.max(0, Math.floor(I));
574
+ for (let B = 5; B >= 0; B--)
575
+ g[B] = Q % 256, Q = Math.floor(Q / 256);
576
+ g[6] = 112 | g[6] & 15, g[8] = 128 | g[8] & 63;
577
+ const C = Array.from(g, (B) => B.toString(16).padStart(2, "0")).join("");
578
+ return `${C.slice(0, 8)}-${C.slice(8, 12)}-${C.slice(12, 16)}-${C.slice(16, 20)}-${C.slice(20)}`;
579
+ }
580
+ function jA(I, A) {
581
+ if (I === null)
582
+ return 0;
583
+ const g = I.trim();
584
+ if (g === "")
585
+ return 0;
586
+ let Q;
587
+ if (/^\d+$/.test(g))
588
+ Q = Number(g) * 1e3;
589
+ else {
590
+ const C = Date.parse(g);
591
+ if (Number.isNaN(C))
592
+ return 0;
593
+ Q = C - A;
594
+ }
595
+ return Math.min($, Math.max(0, Q));
596
+ }
597
+ class XA {
598
+ constructor(A) {
599
+ o(this, "name");
600
+ o(this, "endpoint");
601
+ o(this, "batchSize");
602
+ o(this, "maxBatchBytes");
603
+ o(this, "batchIntervalMs");
604
+ o(this, "contentType");
605
+ o(this, "headers");
606
+ o(this, "maxQueueEvents");
607
+ o(this, "maxQueueBytes");
608
+ o(this, "fetchImpl");
609
+ o(this, "sendBeacon");
610
+ o(this, "now");
611
+ o(this, "random");
612
+ o(this, "randomBytes");
613
+ o(this, "onDrop");
614
+ o(this, "encodeBody");
615
+ o(this, "transform");
616
+ o(this, "pageEndBudget");
617
+ o(this, "pageEndBytes");
618
+ o(this, "droppedSinceLastSend", 0);
619
+ o(this, "queue", []);
620
+ o(this, "queueBytes", 0);
621
+ o(this, "seq", 0);
622
+ o(this, "dropped", 0);
623
+ o(this, "sent", 0);
624
+ o(this, "inFlight", 0);
625
+ o(this, "sending", null);
626
+ o(this, "batchTimer", null);
627
+ o(this, "retryTimer", null);
628
+ o(this, "retryPending", !1);
629
+ o(this, "waitingForOnline", !1);
630
+ o(this, "attempts", 0);
631
+ o(this, "closed", !1);
632
+ o(this, "unbinders", []);
633
+ const g = A.profile === "journeeze";
634
+ if (this.name = A.name ?? "edge", this.endpoint = A.endpoint, this.batchSize = Math.min(L, M(A.batchSize, g ? L : 20, "batchSize")), this.maxBatchBytes = M(A.maxBatchBytes, 32768, "maxBatchBytes"), this.batchIntervalMs = M(A.batchIntervalMs, g ? 5e3 : 1e3, "batchIntervalMs"), g && A.contentType === "application/json")
635
+ throw new TypeError('EdgeSink: the "journeeze" profile sends text/plain only (no preflight)');
636
+ if (this.contentType = g ? "text/plain" : A.contentType ?? "application/json", this.headers = A.headers ?? {}, this.contentType === "text/plain" && Object.keys(this.headers).length > 0)
637
+ throw new TypeError('EdgeSink: custom headers force a CORS preflight; they are not allowed with contentType "text/plain"');
638
+ this.maxQueueEvents = M(A.maxQueueEvents, 200, "maxQueueEvents"), this.maxQueueBytes = M(A.maxQueueBytes, 262144, "maxQueueBytes"), this.fetchImpl = A.fetchImpl ?? globalThis.fetch.bind(globalThis), this.sendBeacon = A.sendBeacon ?? this.resolveSendBeacon(), this.now = A.now ?? Date.now, this.random = A.random ?? Math.random, this.randomBytes = A.randomBytes ?? WA, this.onDrop = A.onDrop, this.encodeBody = A.encode ?? fA, this.transform = A.transform, this.pageEndBudget = A.pageEndBudget, this.pageEndBytes = g ? Math.min(FA, this.maxBatchBytes) : this.maxBatchBytes, (A.bindPageLifecycle ?? !0) && this.bindPageLifecycle();
639
+ }
640
+ stats() {
641
+ return { queued: this.queue.length, dropped: this.dropped, sent: this.sent };
642
+ }
643
+ send(A) {
644
+ if (this.closed)
645
+ return;
646
+ const g = this.transform ? this.transform(A) : { ...A };
647
+ if (g === null)
648
+ return;
649
+ this.seq = this.seq >= ZA ? 1 : this.seq + 1;
650
+ const Q = {
651
+ ...g,
652
+ event_id: uA(this.now(), this.randomBytes),
653
+ seq: this.seq
654
+ }, C = R(JSON.stringify(Q));
655
+ if (this.encodedBytes([{ wire: Q, bytes: C }]) > this.maxBatchBytes) {
656
+ this.drop("oversize", 1);
657
+ return;
658
+ }
659
+ if (this.queue.push({ wire: Q, bytes: C }), this.queueBytes += C, this.enforceQueueCap(), !(this.retryPending || this.sending)) {
660
+ if (this.queue.length >= this.batchSize) {
661
+ this.pump();
662
+ return;
663
+ }
664
+ this.scheduleBatch();
665
+ }
666
+ }
667
+ async flush(A = {}) {
668
+ if (!this.closed) {
669
+ if (A.unloading || this.documentHidden()) {
670
+ this.pageEnd();
671
+ return;
672
+ }
673
+ this.clearBatchTimer(), !this.retryPending && await this.pump();
674
+ }
675
+ }
676
+ close() {
677
+ if (!this.closed) {
678
+ this.closed = !0, this.clearBatchTimer(), this.clearRetryTimer();
679
+ for (const A of this.unbinders.splice(0))
680
+ A();
681
+ }
682
+ }
683
+ pump() {
684
+ return this.sending ? this.sending : (this.sending = this.drain().finally(() => {
685
+ this.sending = null;
686
+ }), this.sending);
687
+ }
688
+ async drain() {
689
+ for (this.clearBatchTimer(); !this.closed && !this.retryPending && this.queue.length > 0; ) {
690
+ const A = this.takeBatch(this.maxBatchBytes);
691
+ this.inFlight = A.length;
692
+ const g = await this.post(A);
693
+ if (this.closed)
694
+ return;
695
+ const Q = this.inFlight === A.length && this.queue[0] === A[0];
696
+ if (this.inFlight = 0, !Q)
697
+ continue;
698
+ if (g.kind === "ok") {
699
+ this.removeHead(A.length), this.sent += A.length, this.droppedSinceLastSend = 0, this.attempts = 0;
700
+ continue;
701
+ }
702
+ if (g.kind === "drop") {
703
+ this.removeHead(A.length), this.drop("non_retriable", A.length), this.attempts = 0;
704
+ continue;
705
+ }
706
+ this.attempts += 1;
707
+ const C = g.network ? JA : GA;
708
+ if (this.attempts > C) {
709
+ this.removeHead(A.length), this.drop("retries_exhausted", A.length), this.attempts = 0;
710
+ continue;
711
+ }
712
+ this.scheduleRetry(g.retryAfterMs);
713
+ return;
714
+ }
715
+ }
716
+ async post(A) {
717
+ let g;
718
+ try {
719
+ g = await this.fetchImpl(this.endpoint, {
720
+ method: "POST",
721
+ headers: this.requestHeaders(),
722
+ body: this.encode(A)
723
+ });
724
+ } catch {
725
+ return { kind: "retry", network: !0, retryAfterMs: 0 };
726
+ }
727
+ return g.ok ? { kind: "ok" } : wA.has(g.status) ? {
728
+ kind: "retry",
729
+ network: !1,
730
+ retryAfterMs: jA(g.headers.get("retry-after"), this.now())
731
+ } : { kind: "drop" };
732
+ }
733
+ scheduleRetry(A) {
734
+ if (this.retryPending = !0, this.isOffline()) {
735
+ this.waitingForOnline = !0;
736
+ return;
737
+ }
738
+ const g = Math.min($, kA * 2 ** (this.attempts - 1)) * (0.5 + this.random());
739
+ this.retryTimer = setTimeout(() => {
740
+ this.retryTimer = null, this.resumeAfterRetryWait();
741
+ }, Math.max(g, A));
742
+ }
743
+ resumeAfterRetryWait() {
744
+ this.retryPending = !1, this.waitingForOnline = !1, this.pump();
745
+ }
746
+ pageEnd() {
747
+ if (this.clearBatchTimer(), this.queue.length === 0 || !this.sendBeacon)
748
+ return;
749
+ const A = this.pageEndBudget ? Math.min(this.maxBatchBytes, Math.max(0, this.pageEndBudget.available())) : this.pageEndBytes, g = this.takeBatch(A);
750
+ if (g.length === 0)
751
+ return;
752
+ const Q = this.encode(g), C = this.contentType === "text/plain" ? "text/plain;charset=UTF-8" : "application/json";
753
+ let B = !1;
754
+ try {
755
+ B = this.sendBeacon(this.endpoint, new Blob([Q], { type: C }));
756
+ } catch {
757
+ B = !1;
758
+ }
759
+ if (!B)
760
+ return;
761
+ this.pageEndBudget?.commit(R(Q)), this.removeHead(g.length), this.sent += g.length, this.droppedSinceLastSend = 0;
762
+ const E = this.queue.length;
763
+ E > 0 && (this.queue = [], this.queueBytes = 0, this.drop("page_end_overflow", E)), this.inFlight = 0, this.attempts = 0, this.clearRetryTimer(), this.retryPending = !1, this.waitingForOnline = !1;
764
+ }
765
+ takeBatch(A) {
766
+ const g = [];
767
+ let Q = 0;
768
+ for (const C of this.queue) {
769
+ if (g.length >= this.batchSize || Q + C.bytes + 1 > A)
770
+ break;
771
+ g.push(C), Q += C.bytes + 1;
772
+ }
773
+ for (; g.length > 0 && this.encodedBytes(g) > A; )
774
+ g.pop();
775
+ return g;
776
+ }
777
+ encodedBytes(A) {
778
+ return R(this.encode(A));
779
+ }
780
+ removeHead(A) {
781
+ const g = this.queue.splice(0, A);
782
+ for (const Q of g)
783
+ this.queueBytes -= Q.bytes;
784
+ }
785
+ enforceQueueCap() {
786
+ let A = 0;
787
+ for (; this.queue.length > this.inFlight && (this.queue.length > this.maxQueueEvents || this.queueBytes > this.maxQueueBytes); ) {
788
+ const [g] = this.queue.splice(this.inFlight, 1);
789
+ this.queueBytes -= g.bytes, A += 1;
790
+ }
791
+ A > 0 && this.drop("queue_full", A);
792
+ }
793
+ encode(A) {
794
+ return this.encodeBody(A.map((g) => g.wire), { droppedSinceLastSend: this.droppedSinceLastSend });
795
+ }
796
+ requestHeaders() {
797
+ return this.contentType === "text/plain" ? { "content-type": "text/plain;charset=UTF-8" } : { "content-type": "application/json", ...this.headers };
798
+ }
799
+ drop(A, g) {
800
+ this.dropped += g, this.droppedSinceLastSend += g;
801
+ try {
802
+ this.onDrop?.(A, g);
803
+ } catch {
804
+ }
805
+ }
806
+ scheduleBatch() {
807
+ this.batchTimer === null && (this.batchTimer = setTimeout(() => {
808
+ this.batchTimer = null, this.pump();
809
+ }, this.batchIntervalMs));
810
+ }
811
+ clearBatchTimer() {
812
+ this.batchTimer !== null && (clearTimeout(this.batchTimer), this.batchTimer = null);
813
+ }
814
+ clearRetryTimer() {
815
+ this.retryTimer !== null && (clearTimeout(this.retryTimer), this.retryTimer = null);
816
+ }
817
+ documentHidden() {
818
+ return typeof document < "u" && document.visibilityState === "hidden";
819
+ }
820
+ isOffline() {
821
+ return typeof navigator < "u" && navigator.onLine === !1;
822
+ }
823
+ bindPageLifecycle() {
824
+ if (typeof document > "u" || typeof window > "u")
825
+ return;
826
+ const A = (g, Q, C) => {
827
+ g.addEventListener(Q, C), this.unbinders.push(() => g.removeEventListener(Q, C));
828
+ };
829
+ A(document, "visibilitychange", () => {
830
+ document.visibilityState === "hidden" ? this.pageEnd() : this.resend();
831
+ }), A(window, "pagehide", () => this.pageEnd()), A(window, "pageshow", () => this.resend()), A(window, "online", () => {
832
+ this.waitingForOnline && this.resumeAfterRetryWait();
833
+ });
834
+ }
835
+ resend() {
836
+ this.closed || this.retryPending || this.queue.length === 0 || this.pump();
837
+ }
838
+ resolveSendBeacon() {
839
+ const A = typeof navigator < "u" ? navigator : void 0;
840
+ if (A?.sendBeacon)
841
+ return (g, Q) => A.sendBeacon(g, Q);
842
+ }
843
+ }
844
+ class RA {
845
+ constructor(A = {}) {
846
+ o(this, "name");
847
+ o(this, "sendTo");
848
+ o(this, "gtagImpl");
849
+ this.name = A.name ?? "ga4", this.sendTo = A.sendTo, this.gtagImpl = A.gtag;
850
+ }
851
+ send(A) {
852
+ const g = this.gtagImpl ?? this.resolveGtag();
853
+ if (!g)
854
+ return;
855
+ const Q = { ...A.payload };
856
+ this.sendTo && (Q.send_to = this.sendTo), g("event", A.name, Q);
857
+ }
858
+ resolveGtag() {
859
+ const A = typeof globalThis < "u" ? globalThis : void 0;
860
+ if (A?.gtag)
861
+ return (g, Q, C) => A.gtag(g, Q, C);
862
+ }
863
+ }
864
+ class pA {
865
+ constructor(A = {}) {
866
+ o(this, "sinks", /* @__PURE__ */ new Map());
867
+ o(this, "onError");
868
+ this.onError = A.onError;
869
+ for (const g of A.sinks ?? [])
870
+ this.register(g);
871
+ }
872
+ register(A) {
873
+ this.sinks.set(A.name, A);
874
+ }
875
+ unregister(A) {
876
+ this.sinks.delete(A);
877
+ }
878
+ get size() {
879
+ return this.sinks.size;
880
+ }
881
+ async route(A) {
882
+ const g = this.resolveTargets(A), Q = [];
883
+ for (const C of g)
884
+ try {
885
+ const B = C.send(A);
886
+ B instanceof Promise && Q.push(B.catch((E) => {
887
+ this.onError?.(C.name, E);
888
+ }));
889
+ } catch (B) {
890
+ this.onError?.(C.name, B);
891
+ }
892
+ await Promise.all(Q);
893
+ }
894
+ async flushAll() {
895
+ const A = [];
896
+ for (const g of this.sinks.values()) {
897
+ const Q = g.flush;
898
+ if (Q)
899
+ try {
900
+ const C = Q.call(g);
901
+ C instanceof Promise && A.push(C.catch((B) => {
902
+ this.onError?.(g.name, B);
903
+ }));
904
+ } catch (C) {
905
+ this.onError?.(g.name, C);
906
+ }
907
+ }
908
+ await Promise.all(A);
909
+ }
910
+ resolveTargets(A) {
911
+ if (!A.sinks || A.sinks.length === 0)
912
+ return Array.from(this.sinks.values());
913
+ const g = [];
914
+ for (const Q of A.sinks) {
915
+ const C = this.sinks.get(Q);
916
+ C && g.push(C);
917
+ }
918
+ return g;
919
+ }
920
+ }
921
+ function zA(I) {
922
+ return I || (typeof sessionStorage < "u" ? rA() : crypto.randomUUID());
923
+ }
924
+ function OA(I) {
925
+ if (typeof document > "u")
926
+ return () => {
927
+ };
928
+ const A = () => {
929
+ document.visibilityState === "hidden" && I();
930
+ };
931
+ return document.addEventListener("visibilitychange", A), () => document.removeEventListener("visibilitychange", A);
932
+ }
933
+ class TA {
934
+ constructor(A = {}) {
935
+ o(this, "router");
936
+ o(this, "runtimes", /* @__PURE__ */ new Map());
937
+ o(this, "unbinders", []);
938
+ o(this, "consent");
939
+ o(this, "opts");
940
+ o(this, "stampIdentity");
941
+ o(this, "initialized", null);
942
+ if (this.opts = A, this.consent = A.consent, A.identity) {
943
+ const g = zA(A.identity.sessionId);
944
+ this.stampIdentity = aA({ ...A.identity, sessionId: g });
945
+ }
946
+ this.router = new pA({
947
+ sinks: A.sinks,
948
+ onError: A.onSinkError
949
+ }), this.unbinders.push(OA(() => {
950
+ this.router.flushAll();
951
+ }));
952
+ }
953
+ async init() {
954
+ if (!this.initialized) {
955
+ const A = this.opts.wasmUrl;
956
+ this.initialized = A ? U({ module_or_path: A }).then(() => {
957
+ }) : U().then(() => {
958
+ });
959
+ }
960
+ await this.initialized;
961
+ }
962
+ addPattern(A) {
963
+ const g = new MA(A);
964
+ return this.runtimes.set(A.name, g), g;
965
+ }
966
+ removePattern(A) {
967
+ const g = this.runtimes.get(A);
968
+ g && (g.destroy(), this.runtimes.delete(A));
969
+ }
970
+ ingest(A) {
971
+ const g = [];
972
+ for (const Q of this.runtimes.values())
973
+ for (const C of Q.push(A))
974
+ g.push(C);
975
+ return this.routeAll(g), g;
976
+ }
977
+ capture(A) {
978
+ const Q = z(A, (C) => {
979
+ this.ingest(C);
980
+ });
981
+ return this.unbinders.push(Q), Q;
982
+ }
983
+ captureViewport(A) {
984
+ const g = P(A, (Q) => {
985
+ this.ingest(Q);
986
+ });
987
+ return this.unbinders.push(g), g;
988
+ }
989
+ async flush() {
990
+ const A = [];
991
+ for (const g of this.runtimes.values())
992
+ for (const Q of g.flush())
993
+ A.push(Q);
994
+ this.routeAll(A), await this.router.flushAll();
995
+ }
996
+ destroy() {
997
+ for (const A of this.unbinders)
998
+ A();
999
+ this.unbinders.length = 0;
1000
+ for (const A of this.runtimes.values())
1001
+ A.destroy();
1002
+ this.runtimes.clear();
1003
+ }
1004
+ routeAll(A) {
1005
+ if (A.length !== 0 && !(this.consent && !this.consent()))
1006
+ for (const g of A)
1007
+ this.router.route(this.stampIdentity ? this.stampIdentity(g) : g);
1008
+ }
1009
+ }
1010
+ const AA = "[data-tflo-mask], [data-jz-mask]", VA = 80, SA = /* @__PURE__ */ new Set(["INPUT", "TEXTAREA", "SELECT", "OPTION"]), IA = '[contenteditable]:not([contenteditable="false"])';
1011
+ function v(I) {
1012
+ return SA.has(I.tagName) || I.isContentEditable ? !0 : I.matches(IA) || I.matches(AA);
1013
+ }
1014
+ function UA(I) {
1015
+ if (v(I) || I.closest(AA) || I.closest(IA))
1016
+ return null;
1017
+ const A = [], g = (C) => {
1018
+ for (let B = C.firstChild; B; B = B.nextSibling)
1019
+ B.nodeType === 3 ? A.push(B.nodeValue ?? "") : B.nodeType === 1 && !v(B) && g(B);
1020
+ };
1021
+ g(I);
1022
+ const Q = A.join(" ").replace(/\s+/g, " ").trim().slice(0, VA);
1023
+ return Q === "" ? null : Q;
1024
+ }
1025
+ function gA(I) {
1026
+ if (I === "")
1027
+ return "";
1028
+ const A = I.search(/[?#]/);
1029
+ return A === -1 ? I : I.slice(0, A);
1030
+ }
1031
+ function xA(I) {
1032
+ return I.replace(/\b([a-z][a-z0-9+.-]*:\/\/[^\s?#()'"<>]*)[?#][^\s()'"<>]*/gi, (A, g) => g + (/(:\d+){1,2}$/.exec(A)?.[0] ?? ""));
1033
+ }
1034
+ function LA(I) {
1035
+ const A = I.now ?? (() => performance.now()), g = (t) => I.fullUrls ? t : gA(t), Q = (t) => I.fullUrls ? t : xA(t), C = I.cfg.maxEvents ?? 50;
1036
+ let B = 0;
1037
+ const E = (t) => I.cfg.ignorePatterns ? I.cfg.ignorePatterns.some((i) => {
1038
+ try {
1039
+ return new RegExp(i).test(t);
1040
+ } catch {
1041
+ return t.includes(i);
1042
+ }
1043
+ }) : !1, e = (t) => {
1044
+ B >= C || (B++, I.handler(t));
1045
+ }, n = [];
1046
+ if (I.cfg.jsErrors !== !1) {
1047
+ const t = window.onerror;
1048
+ window.onerror = (i, c, l, h, d) => {
1049
+ const m = Q(typeof i == "string" ? i : String(i));
1050
+ E(m) || (e({
1051
+ ts: A(),
1052
+ kind: "error",
1053
+ fields: {
1054
+ source: "onerror",
1055
+ message: m,
1056
+ filename: c ? g(c) : void 0,
1057
+ lineno: l ?? void 0,
1058
+ colno: h ?? void 0,
1059
+ stack: d instanceof Error && d.stack ? Q(d.stack) : void 0
1060
+ },
1061
+ target: {
1062
+ id: "window",
1063
+ type: "source",
1064
+ selector: c ? g(c) : void 0
1065
+ }
1066
+ }), typeof t == "function" && t.call(window, i, c, l, h, d));
1067
+ }, n.push(() => {
1068
+ window.onerror = t;
1069
+ });
1070
+ }
1071
+ if (I.cfg.promiseRejections !== !1) {
1072
+ const t = (i) => {
1073
+ const c = i.reason, l = Q(c instanceof Error ? c.message : typeof c == "string" ? c : JSON.stringify(c).slice(0, 200));
1074
+ E(l) || e({
1075
+ ts: A(),
1076
+ kind: "error",
1077
+ fields: {
1078
+ source: "unhandledrejection",
1079
+ reason: l,
1080
+ stack: c instanceof Error && c.stack ? Q(c.stack) : void 0
1081
+ },
1082
+ target: { id: "promise", type: "source" }
1083
+ });
1084
+ };
1085
+ window.addEventListener("unhandledrejection", t), n.push(() => window.removeEventListener("unhandledrejection", t));
1086
+ }
1087
+ if (I.cfg.resourceErrors !== !1) {
1088
+ const t = (i) => {
1089
+ const c = i.target;
1090
+ if (!c || !("tagName" in c))
1091
+ return;
1092
+ const l = c, h = g(l.src || l.src || l.href || ""), d = `Failed to load ${l.tagName.toLowerCase()}: ${h}`;
1093
+ E(d) || e({
1094
+ ts: A(),
1095
+ kind: "error",
1096
+ fields: {
1097
+ source: "resource",
1098
+ resourceTag: c.tagName.toLowerCase(),
1099
+ resourceUrl: h
1100
+ },
1101
+ target: {
1102
+ id: "resource",
1103
+ type: c.tagName.toLowerCase(),
1104
+ selector: h
1105
+ }
1106
+ });
1107
+ };
1108
+ window.addEventListener("error", t, !0), n.push(() => window.removeEventListener("error", t, !0));
1109
+ }
1110
+ return () => {
1111
+ for (const t of n)
1112
+ t();
1113
+ };
1114
+ }
1115
+ function vA(I) {
1116
+ const A = I.cfg.milestones ?? [0.25, 0.5, 0.75, 1], g = I.cfg.throttleMs ?? 250, Q = I.cfg.directionChanges ?? !1, C = I.now ?? (() => performance.now()), B = /* @__PURE__ */ new Set();
1117
+ let E = 0, e = "down", n = null, t = !1;
1118
+ const i = () => {
1119
+ if (n = null, !t)
1120
+ return;
1121
+ t = !1;
1122
+ const l = C(), h = KA();
1123
+ if (Q) {
1124
+ const d = h >= E ? "down" : "up";
1125
+ d !== e && (I.handler({
1126
+ ts: l,
1127
+ kind: "scroll.inverted",
1128
+ fields: { direction: d, depth: h, previousDirection: e }
1129
+ }), e = d);
1130
+ }
1131
+ for (const d of A)
1132
+ !B.has(d) && h >= d && (B.add(d), I.handler({
1133
+ ts: l,
1134
+ kind: "scroll.milestone",
1135
+ fields: { depth: d, exactDepth: h }
1136
+ }));
1137
+ E = h;
1138
+ }, c = () => {
1139
+ t = !0, n === null && (n = setTimeout(i, g));
1140
+ };
1141
+ return i(), window.addEventListener("scroll", c, { passive: !0 }), () => {
1142
+ window.removeEventListener("scroll", c), n !== null && (clearTimeout(n), i());
1143
+ };
1144
+ }
1145
+ function KA() {
1146
+ const I = window.scrollY || document.documentElement.scrollTop, A = document.documentElement.scrollHeight, g = window.innerHeight;
1147
+ return A <= g ? 1 : Math.min(1, I / (A - g));
1148
+ }
1149
+ function HA(I) {
1150
+ const A = I.now ?? (() => performance.now()), g = I.cfg.domChanges !== !1, Q = I.cfg.styleChanges !== !1, C = I.cfg.mutationObserver !== !1, B = I.cfg.selectors;
1151
+ if (!C)
1152
+ return () => {
1153
+ };
1154
+ const E = [], e = (t) => {
1155
+ for (const i of B)
1156
+ if (t.matches(i.selector))
1157
+ return i.id;
1158
+ return null;
1159
+ }, n = (t, i) => {
1160
+ const c = e(t);
1161
+ if (!c)
1162
+ return;
1163
+ const h = K(t) ? "element.shown" : "element.hidden";
1164
+ I.handler({
1165
+ ts: A(),
1166
+ kind: h,
1167
+ fields: { reason: i },
1168
+ target: { id: c, type: "element", selector: H(t) }
1169
+ });
1170
+ };
1171
+ if (g) {
1172
+ const t = new MutationObserver((i) => {
1173
+ for (const c of i) {
1174
+ for (const l of c.addedNodes)
1175
+ l instanceof Element && (e(l) && n(l, "dom-added"), l.querySelectorAll("*").forEach((h) => {
1176
+ e(h) && n(h, "dom-added");
1177
+ }));
1178
+ for (const l of c.removedNodes)
1179
+ l instanceof Element && e(l) && I.handler({
1180
+ ts: A(),
1181
+ kind: "element.hidden",
1182
+ fields: { reason: "dom-removed" },
1183
+ target: {
1184
+ id: e(l),
1185
+ type: "element",
1186
+ selector: H(l)
1187
+ }
1188
+ });
1189
+ }
1190
+ });
1191
+ t.observe(document.body, { childList: !0, subtree: !0 }), E.push(() => t.disconnect());
1192
+ }
1193
+ if (Q) {
1194
+ const t = /* @__PURE__ */ new WeakMap(), i = () => {
1195
+ const l = A();
1196
+ for (const h of B) {
1197
+ const d = document.querySelectorAll(h.selector);
1198
+ for (const m of d) {
1199
+ const BA = t.get(m) ?? !1, W = K(m);
1200
+ t.set(m, W), BA !== W && I.handler({
1201
+ ts: l,
1202
+ kind: W ? "element.shown" : "element.hidden",
1203
+ fields: { reason: "style-changed" },
1204
+ target: {
1205
+ id: h.id,
1206
+ type: "element",
1207
+ selector: h.selector
1208
+ }
1209
+ });
1210
+ }
1211
+ }
1212
+ };
1213
+ i();
1214
+ const c = setInterval(i, 500);
1215
+ E.push(() => clearInterval(c));
1216
+ }
1217
+ return () => {
1218
+ for (const t of E)
1219
+ t();
1220
+ };
1221
+ }
1222
+ function K(I) {
1223
+ const A = window.getComputedStyle(I);
1224
+ return A.display !== "none" && A.visibility !== "hidden" && I.offsetParent !== null;
1225
+ }
1226
+ function H(I) {
1227
+ const A = [];
1228
+ let g = I, Q = 0;
1229
+ for (; g && g !== document.body && Q < 3; ) {
1230
+ let C = g.tagName.toLowerCase();
1231
+ if (g.id)
1232
+ C += "#" + g.id;
1233
+ else if (g.className && typeof g.className == "string") {
1234
+ const B = g.className.trim().split(/\s+/)[0];
1235
+ B && (C += "." + B);
1236
+ }
1237
+ A.unshift(C), g = g.parentElement, Q++;
1238
+ }
1239
+ return A.join(" > ");
1240
+ }
1241
+ function _A(I) {
1242
+ const A = I.now ?? (() => performance.now()), g = I.timeOrigin ?? performance.timeOrigin, Q = [];
1243
+ let C = 0, B = null;
1244
+ if (I.cfg.pageLoad !== !1) {
1245
+ const e = () => {
1246
+ I.handler({
1247
+ ts: A(),
1248
+ kind: "lifecycle.loaded",
1249
+ fields: { timeOrigin: g }
1250
+ });
1251
+ };
1252
+ document.readyState === "complete" ? e() : (window.addEventListener("load", e, { once: !0 }), Q.push(() => window.removeEventListener("load", e)));
1253
+ }
1254
+ if (I.cfg.visibilityChange !== !1) {
1255
+ const e = () => {
1256
+ I.handler({
1257
+ ts: A(),
1258
+ kind: document.visibilityState === "hidden" ? "lifecycle.hidden" : "lifecycle.visible",
1259
+ fields: { visibilityState: document.visibilityState }
1260
+ });
1261
+ };
1262
+ document.addEventListener("visibilitychange", e), Q.push(() => document.removeEventListener("visibilitychange", e));
1263
+ }
1264
+ if (I.cfg.pageUnload !== !1) {
1265
+ const e = () => {
1266
+ const n = A(), t = I.cfg.bounceThresholdMs && I.cfg.bounceThresholdMs > 0 && C === 0 && n < I.cfg.bounceThresholdMs;
1267
+ I.handler({
1268
+ ts: n,
1269
+ kind: "lifecycle.unloaded",
1270
+ fields: {
1271
+ durationMs: n,
1272
+ interactionCount: C,
1273
+ bounced: String(t)
1274
+ }
1275
+ });
1276
+ };
1277
+ window.addEventListener("pagehide", e, { once: !0 }), Q.push(() => window.removeEventListener("pagehide", e));
1278
+ }
1279
+ if (I.cfg.routeChanges) {
1280
+ const e = () => {
1281
+ I.handler({
1282
+ ts: A(),
1283
+ kind: "lifecycle.route_changed",
1284
+ fields: I.fullUrls ? { pathname: location.pathname, hash: location.hash } : { pathname: location.pathname }
1285
+ });
1286
+ };
1287
+ window.addEventListener("popstate", e), window.addEventListener("hashchange", e), Q.push(() => {
1288
+ window.removeEventListener("popstate", e), window.removeEventListener("hashchange", e);
1289
+ });
1290
+ }
1291
+ const E = () => {
1292
+ !I.cfg.idleThresholdMs || I.cfg.idleThresholdMs <= 0 || (B !== null && clearTimeout(B), B = setTimeout(() => {
1293
+ B = null;
1294
+ }, I.cfg.idleThresholdMs));
1295
+ };
1296
+ return I.cfg.idleThresholdMs && I.cfg.idleThresholdMs > 0 && E(), () => {
1297
+ for (const e of Q)
1298
+ e();
1299
+ B !== null && clearTimeout(B);
1300
+ };
1301
+ }
1302
+ function qA(I) {
1303
+ switch (I) {
1304
+ case "section_engagement":
1305
+ return QA;
1306
+ case "full_engagement":
1307
+ return $A;
1308
+ case "error_hunting":
1309
+ return AI;
1310
+ case "scroll_tracking":
1311
+ return II;
1312
+ case "form_validation":
1313
+ return gI;
1314
+ case "page_value":
1315
+ return QI;
1316
+ case "cta_performance":
1317
+ return CI;
1318
+ case "bounce_detection":
1319
+ return BI;
1320
+ case "diagnostics":
1321
+ return EI;
1322
+ default:
1323
+ return [];
1324
+ }
1325
+ }
1326
+ function PA(I) {
1327
+ const A = /* @__PURE__ */ new Set(), g = [];
1328
+ for (const Q of I)
1329
+ for (const C of qA(Q))
1330
+ A.has(C.id) || (A.add(C.id), g.push(C));
1331
+ return g;
1332
+ }
1333
+ const QA = [
1334
+ {
1335
+ id: "section_read",
1336
+ when: 'event.kind == "section.dwelled" && event.durationMs >= 3000',
1337
+ emit: {
1338
+ name: "section_read",
1339
+ params: {
1340
+ section: "event.target.id",
1341
+ duration_ms: "event.durationMs"
1342
+ }
1343
+ }
1344
+ },
1345
+ {
1346
+ id: "section_skimmed",
1347
+ when: 'event.kind == "section.dwelled" && event.durationMs > 0 && event.durationMs < 3000',
1348
+ emit: {
1349
+ name: "section_skimmed",
1350
+ params: {
1351
+ section: "event.target.id",
1352
+ duration_ms: "event.durationMs"
1353
+ }
1354
+ }
1355
+ },
1356
+ {
1357
+ id: "content_engaged",
1358
+ when: 'event.kind == "section.dwelled" && event.durationMs >= 3000',
1359
+ emit: {
1360
+ name: "content_engaged",
1361
+ params: { section: "event.target.id" }
1362
+ }
1363
+ }
1364
+ ], $A = [
1365
+ ...QA,
1366
+ {
1367
+ id: "rage_click",
1368
+ when: 'event.kind == "click"',
1369
+ emit: {
1370
+ name: "rage_click_check",
1371
+ params: { target: "event.target.id" },
1372
+ sinks: ["edge"]
1373
+ }
1374
+ }
1375
+ ], AI = [
1376
+ {
1377
+ id: "js_error",
1378
+ when: 'event.kind == "error" && event.source == "onerror"',
1379
+ emit: {
1380
+ name: "js_error",
1381
+ params: { message: "event.message", filename: "event.filename" }
1382
+ }
1383
+ },
1384
+ {
1385
+ id: "promise_error",
1386
+ when: 'event.kind == "error" && event.source == "unhandledrejection"',
1387
+ emit: {
1388
+ name: "promise_error",
1389
+ params: { reason: "event.reason" }
1390
+ }
1391
+ },
1392
+ {
1393
+ id: "resource_error",
1394
+ when: 'event.kind == "error" && event.source == "resource"',
1395
+ emit: {
1396
+ name: "resource_error",
1397
+ params: { url: "event.resourceUrl", tag: "event.resourceTag" }
1398
+ }
1399
+ }
1400
+ ], II = [
1401
+ {
1402
+ id: "scrolled_50",
1403
+ when: 'event.kind == "scroll.milestone" && event.depth >= 0.5',
1404
+ emit: {
1405
+ name: "scrolled_50",
1406
+ params: { depth: "event.depth" }
1407
+ }
1408
+ },
1409
+ {
1410
+ id: "scrolled_75",
1411
+ when: 'event.kind == "scroll.milestone" && event.depth >= 0.75',
1412
+ emit: {
1413
+ name: "scrolled_75",
1414
+ params: { depth: "event.depth" }
1415
+ }
1416
+ },
1417
+ {
1418
+ id: "scrolled_100",
1419
+ when: 'event.kind == "scroll.milestone" && event.depth >= 1',
1420
+ emit: {
1421
+ name: "scrolled_100",
1422
+ params: { depth: "event.depth" }
1423
+ }
1424
+ }
1425
+ ], gI = [
1426
+ {
1427
+ id: "form_submitted",
1428
+ when: 'event.kind == "form.submitted"',
1429
+ emit: {
1430
+ name: "form_submitted",
1431
+ params: {
1432
+ form_id: "event.target.id",
1433
+ duration_ms: "event.formDurationMs"
1434
+ }
1435
+ }
1436
+ },
1437
+ {
1438
+ id: "form_validation_error",
1439
+ when: 'event.kind == "element.shown" && event.source == "validation"',
1440
+ emit: {
1441
+ name: "form_validation_error",
1442
+ params: { form_id: "event.formId", field: "event.target.id" }
1443
+ }
1444
+ }
1445
+ ], QI = [
1446
+ {
1447
+ id: "page_value_reached",
1448
+ when: 'event.kind == "section.dwelled" && event.durationMs >= 5000',
1449
+ emit: { name: "page_value_reached" }
1450
+ }
1451
+ ], CI = [
1452
+ {
1453
+ id: "cta_clicked",
1454
+ when: 'event.kind == "click"',
1455
+ emit: {
1456
+ name: "cta_clicked",
1457
+ params: { target: "event.target.id" }
1458
+ }
1459
+ }
1460
+ ], BI = [
1461
+ {
1462
+ id: "bounced",
1463
+ when: 'event.kind == "lifecycle.unloaded" && event.bounced == "true"',
1464
+ emit: {
1465
+ name: "bounced",
1466
+ params: {
1467
+ duration_ms: "event.durationMs",
1468
+ interactions: "event.interactionCount"
1469
+ }
1470
+ }
1471
+ }
1472
+ ], EI = [
1473
+ {
1474
+ id: "selector_stale",
1475
+ when: 'event.kind == "tflo:diagnostic" && event.diagnosticKind == "selector_stale"',
1476
+ emit: {
1477
+ name: "selector_stale",
1478
+ params: {
1479
+ source: "event.source",
1480
+ selector: "event.context.selector"
1481
+ }
1482
+ }
1483
+ },
1484
+ {
1485
+ id: "click_target_missing",
1486
+ when: 'event.kind == "tflo:diagnostic" && event.diagnosticKind == "click_target_missing"',
1487
+ emit: {
1488
+ name: "click_target_missing",
1489
+ params: {
1490
+ data_tflow_id: "event.context.dataTflowId",
1491
+ tag: "event.context.tag"
1492
+ }
1493
+ }
1494
+ },
1495
+ {
1496
+ id: "rate_limit_hit",
1497
+ when: 'event.kind == "tflo:diagnostic" && event.diagnosticKind == "rate_limit_hit"',
1498
+ emit: {
1499
+ name: "rate_limit_hit",
1500
+ params: { source: "event.source" }
1501
+ }
1502
+ },
1503
+ {
1504
+ id: "sink_delivery_failed",
1505
+ when: 'event.kind == "tflo:diagnostic" && event.diagnosticKind == "sink_delivery_failed"',
1506
+ emit: {
1507
+ name: "sink_delivery_failed",
1508
+ params: { sink: "event.context.sinkName", error: "event.error" }
1509
+ }
1510
+ }
1511
+ ];
1512
+ function CA(I, A, g = () => performance.now()) {
1513
+ return {
1514
+ ts: g(),
1515
+ kind: "tflo:diagnostic",
1516
+ fields: {
1517
+ diagnosticKind: I,
1518
+ ...A
1519
+ },
1520
+ target: { id: "tflo", type: "diagnostic" }
1521
+ };
1522
+ }
1523
+ function eI(I, A, g, Q, C) {
1524
+ return g.length === 0 ? (Q(CA("selector_stale", {
1525
+ source: A,
1526
+ message: `Selector "${I}" matched zero elements at runtime`,
1527
+ context: { selector: I, configKey: A }
1528
+ }, C)), !1) : !0;
1529
+ }
1530
+ function XI(I, A, g, Q) {
1531
+ const B = tI(I)?.getAttribute("data-tflow-id") ?? null;
1532
+ B && !A.has(B) && g(CA("click_target_missing", {
1533
+ source: "track.clicks",
1534
+ message: `Clicked element has data-tflow-id="${B}" which is not in the tracking plan — add it to track.clicks`,
1535
+ context: { dataTflowId: B, tag: I.tagName.toLowerCase() }
1536
+ }, Q));
1537
+ }
1538
+ function tI(I) {
1539
+ let A = I;
1540
+ for (; A; ) {
1541
+ if (A.hasAttribute("data-tflow-id"))
1542
+ return A;
1543
+ A = A.parentElement;
1544
+ }
1545
+ return null;
1546
+ }
1547
+ async function RI(I) {
1548
+ const A = iI(I.sinks), g = new TA({
1549
+ sinks: A,
1550
+ consent: I.consent,
1551
+ wasmUrl: I.wasmUrl,
1552
+ onSinkError: I.onSinkError
1553
+ });
1554
+ await g.init();
1555
+ const Q = (i) => {
1556
+ g.ingest(i);
1557
+ }, C = I.page.id, B = (i) => ({
1558
+ ...i,
1559
+ page: { id: C }
1560
+ });
1561
+ g.ingest(NI(I.page));
1562
+ const E = [], e = (i, c, l) => {
1563
+ const h = document.querySelectorAll(c);
1564
+ eI(c, l, h, Q);
1565
+ };
1566
+ if (I.track.sections && I.track.sections.length > 0)
1567
+ for (const i of I.track.sections)
1568
+ e("section", i.selector, `track.sections["${i.id}"]`), E.push(nI(g, B, i));
1569
+ if (I.track.clicks && I.track.clicks.length > 0) {
1570
+ new Set(I.track.clicks.map((i) => i.id));
1571
+ for (const i of I.track.clicks)
1572
+ e("click", `[data-tflow-id="${i.id}"]`, `track.clicks["${i.id}"]`);
1573
+ E.push(cI(g, B, I.track.clicks));
1574
+ }
1575
+ I.track.pointer && I.track.pointer.moves === "sampled" && E.push(hI(g, B, I.track.pointer)), I.track.errors && E.push(LA({
1576
+ cfg: I.track.errors,
1577
+ fullUrls: I.page.captureFullUrls === !0,
1578
+ handler: (i) => g.ingest(B(i))
1579
+ })), I.track.scroll && E.push(vA({
1580
+ cfg: I.track.scroll,
1581
+ handler: (i) => g.ingest(B(i))
1582
+ })), I.track.visibility && E.push(HA({
1583
+ cfg: I.track.visibility,
1584
+ handler: (i) => g.ingest(B(i))
1585
+ })), I.track.lifecycle && E.push(_A({
1586
+ cfg: I.track.lifecycle,
1587
+ fullUrls: I.page.captureFullUrls === !0,
1588
+ handler: (i) => g.ingest(B(i))
1589
+ }));
1590
+ const n = [];
1591
+ I.presets && I.presets.length > 0 && n.push(...PA(I.presets)), I.rules && I.rules.length > 0 && n.push(...I.rules);
1592
+ for (const i of n)
1593
+ dI(g, i);
1594
+ const t = Promise.resolve();
1595
+ return {
1596
+ tflo: g,
1597
+ ready: t,
1598
+ async destroy() {
1599
+ for (const i of E)
1600
+ i();
1601
+ await g.flush(), g.destroy();
1602
+ }
1603
+ };
1604
+ }
1605
+ function iI(I) {
1606
+ const A = [];
1607
+ if (!I)
1608
+ return A;
1609
+ if (I.console) {
1610
+ const g = typeof I.console == "object" ? I.console.level : void 0;
1611
+ A.push(new bA({ name: "console", level: g }));
1612
+ }
1613
+ return I.ga4 && A.push(new RA({
1614
+ name: "ga4",
1615
+ sendTo: I.ga4.measurementId,
1616
+ gtag: I.ga4.gtag
1617
+ })), I.edge && A.push(new XA({
1618
+ name: "edge",
1619
+ endpoint: I.edge.endpoint,
1620
+ batchSize: I.edge.batchSize,
1621
+ batchIntervalMs: I.edge.batchIntervalMs,
1622
+ headers: I.edge.headers
1623
+ })), A;
1624
+ }
1625
+ function nI(I, A, g) {
1626
+ const Q = g.id, C = sI(g.emit);
1627
+ return P({
1628
+ target: document,
1629
+ selector: g.selector,
1630
+ threshold: g.threshold ?? 0.5,
1631
+ emit: C,
1632
+ now: () => performance.now()
1633
+ }, (E) => {
1634
+ const e = oI(E.kind);
1635
+ I.ingest(A({
1636
+ ...E,
1637
+ kind: e,
1638
+ target: {
1639
+ id: Q,
1640
+ type: "section",
1641
+ selector: g.selector
1642
+ }
1643
+ }));
1644
+ });
1645
+ }
1646
+ function sI(I) {
1647
+ if (!I)
1648
+ return ["enter", "exit", "dwell"];
1649
+ const A = new Set(I), g = [];
1650
+ return (A.has("entered") || A.has("visibility_changed")) && g.push("enter"), A.has("dwelled") && g.push("dwell"), (A.has("left") || A.has("completed")) && g.push("exit"), g.length > 0 ? g : ["enter", "exit", "dwell"];
1651
+ }
1652
+ function oI(I) {
1653
+ switch (I) {
1654
+ case "viewport:enter":
1655
+ return "section.entered";
1656
+ case "viewport:dwell":
1657
+ return "section.dwelled";
1658
+ case "viewport:exit":
1659
+ return "section.left";
1660
+ default:
1661
+ return I;
1662
+ }
1663
+ }
1664
+ function cI(I, A, g, Q) {
1665
+ const C = /* @__PURE__ */ new Map();
1666
+ for (const B of g)
1667
+ C.set(B.id, B);
1668
+ return z({
1669
+ target: document,
1670
+ type: "click",
1671
+ kind: "click",
1672
+ fields: (B) => {
1673
+ const E = B.target;
1674
+ if (!E)
1675
+ return {};
1676
+ const e = lI(E);
1677
+ if (!e)
1678
+ return {};
1679
+ const n = e.getAttribute("data-tflow-id"), t = n ? C.get(n) : void 0;
1680
+ if (!n || !t)
1681
+ return {};
1682
+ const i = {
1683
+ tflowId: n,
1684
+ tag: e.tagName.toLowerCase()
1685
+ };
1686
+ return t.captureText === !0 && (i.text = UA(e)), i;
1687
+ },
1688
+ listenerOptions: { passive: !0 }
1689
+ }, (B) => {
1690
+ const E = B.fields.tflowId;
1691
+ typeof E == "string" && I.ingest(A({
1692
+ ...B,
1693
+ kind: "click",
1694
+ target: {
1695
+ id: E,
1696
+ type: "click",
1697
+ selector: C.get(E)?.selector ?? `[data-tflow-id="${E}"]`
1698
+ }
1699
+ }));
1700
+ });
1701
+ }
1702
+ function lI(I) {
1703
+ let A = I;
1704
+ for (; A; ) {
1705
+ if (A.hasAttribute("data-tflow-id"))
1706
+ return A;
1707
+ A = A.parentElement;
1708
+ }
1709
+ return null;
1710
+ }
1711
+ function hI(I, A, g) {
1712
+ return z({
1713
+ target: document,
1714
+ type: "pointermove",
1715
+ kind: "pointermove",
1716
+ throttleMs: g.sampleMs ?? 250,
1717
+ fields: (Q) => ({
1718
+ x: Q.clientX,
1719
+ y: Q.clientY,
1720
+ pointerType: Q.pointerType
1721
+ }),
1722
+ listenerOptions: { passive: !0 }
1723
+ }, (Q) => {
1724
+ I.ingest(A({
1725
+ ...Q,
1726
+ kind: "pointer.sampled"
1727
+ }));
1728
+ });
1729
+ }
1730
+ function dI(I, A) {
1731
+ const g = typeof A.when == "function" ? A.when : kI(A.when), Q = A.emit, C = new mA(A.id).timestamp((B) => B.ts).when((B) => g(B)).emit((B) => {
1732
+ const E = B.first(), e = Q.name ?? A.id, n = rI(E, Q.params);
1733
+ return {
1734
+ name: e,
1735
+ payload: n,
1736
+ sinks: Q.sinks
1737
+ };
1738
+ });
1739
+ I.addPattern(C);
1740
+ }
1741
+ function rI(I, A) {
1742
+ if (!A)
1743
+ return {};
1744
+ const g = {};
1745
+ for (const [Q, C] of Object.entries(A))
1746
+ g[Q] = aI(I, C);
1747
+ return g;
1748
+ }
1749
+ function aI(I, A) {
1750
+ const g = A.split("."), Q = g[0] === "event" ? 1 : 0;
1751
+ let C = I;
1752
+ for (let B = Q; B < g.length; B++) {
1753
+ if (C == null)
1754
+ return;
1755
+ const E = g[B], e = C[E];
1756
+ if (e !== void 0)
1757
+ C = e;
1758
+ else if (C === I && E in I.fields)
1759
+ C = I.fields[E];
1760
+ else
1761
+ return;
1762
+ }
1763
+ return C;
1764
+ }
1765
+ function NI(I) {
1766
+ const A = I.sessionId ?? bI();
1767
+ return {
1768
+ ts: performance.now(),
1769
+ kind: "session_started",
1770
+ page: { id: I.id, attrs: I.attrs },
1771
+ fields: {
1772
+ sessionId: A,
1773
+ ...I.title !== void 0 || I.captureTitle === !0 ? { title: I.title ?? YI() } : {},
1774
+ url: I.url ?? _(mI(), I.captureFullUrls),
1775
+ referrer: I.referrer ?? _(DI(), I.captureFullUrls),
1776
+ locale: I.locale ?? MI(),
1777
+ trafficSource: I.trafficSource ?? null,
1778
+ trafficMedium: I.trafficMedium ?? null,
1779
+ campaign: I.campaign ?? null,
1780
+ pageLoadTs: I.pageLoadTs ?? performance.timeOrigin
1781
+ },
1782
+ target: { id: I.id, type: "page" }
1783
+ };
1784
+ }
1785
+ function _(I, A) {
1786
+ return A === !0 ? I : gA(I);
1787
+ }
1788
+ function YI() {
1789
+ try {
1790
+ return document.title || "";
1791
+ } catch {
1792
+ return "";
1793
+ }
1794
+ }
1795
+ function mI() {
1796
+ try {
1797
+ return location.href || "";
1798
+ } catch {
1799
+ return "";
1800
+ }
1801
+ }
1802
+ function DI() {
1803
+ try {
1804
+ return document.referrer || "";
1805
+ } catch {
1806
+ return "";
1807
+ }
1808
+ }
1809
+ function MI() {
1810
+ try {
1811
+ return navigator.language || "";
1812
+ } catch {
1813
+ return "";
1814
+ }
1815
+ }
1816
+ function bI() {
1817
+ return `s_${Date.now().toString(36)}_${Math.random().toString(36).slice(2, 8)}`;
1818
+ }
1819
+ function kI(I) {
1820
+ const g = I.split(/\s*&&\s*/).map((Q) => GI(Q.trim()));
1821
+ return (Q) => g.every((C) => C(Q));
1822
+ }
1823
+ function GI(I) {
1824
+ const A = I.match(/^event\.(\w+)\s*==\s*"(.+)"$/);
1825
+ if (A) {
1826
+ const E = A[1], e = A[2];
1827
+ return (n) => b(n, E) === e;
1828
+ }
1829
+ const g = I.match(/^event\.(\w+)\s*>=\s*([\d.]+)$/);
1830
+ if (g) {
1831
+ const E = g[1], e = Number(g[2]);
1832
+ return (n) => {
1833
+ const t = b(n, E);
1834
+ return typeof t == "number" && t >= e;
1835
+ };
1836
+ }
1837
+ const Q = I.match(/^event\.(\w+)\s*>\s*([\d.]+)$/);
1838
+ if (Q) {
1839
+ const E = Q[1], e = Number(Q[2]);
1840
+ return (n) => {
1841
+ const t = b(n, E);
1842
+ return typeof t == "number" && t > e;
1843
+ };
1844
+ }
1845
+ const C = I.match(/^event\.(\w+)\s*<=\s*([\d.]+)$/);
1846
+ if (C) {
1847
+ const E = C[1], e = Number(C[2]);
1848
+ return (n) => {
1849
+ const t = b(n, E);
1850
+ return typeof t == "number" && t <= e;
1851
+ };
1852
+ }
1853
+ const B = I.match(/^event\.(\w+)\s*<\s*([\d.]+)$/);
1854
+ if (B) {
1855
+ const E = B[1], e = Number(B[2]);
1856
+ return (n) => {
1857
+ const t = b(n, E);
1858
+ return typeof t == "number" && t < e;
1859
+ };
1860
+ }
1861
+ throw new Error(`Cannot compile CEL expression: "${I}"`);
1862
+ }
1863
+ function b(I, A) {
1864
+ if (A === "kind")
1865
+ return I.kind;
1866
+ if (A === "ts")
1867
+ return I.ts;
1868
+ if (A.startsWith("page.")) {
1869
+ const g = A.slice(5);
1870
+ return I.page?.[g];
1871
+ }
1872
+ if (A.startsWith("target.")) {
1873
+ const g = A.slice(7);
1874
+ return I.target?.[g];
1875
+ }
1876
+ return I.fields[A];
1877
+ }
1878
+ function pI(I, A = {}) {
1879
+ const g = A.root ?? document, Q = [];
1880
+ I.track.sections && JI(g, I.track.sections, Q), I.track.clicks && wI(g, I.track.clicks, Q), I.track.visibility && ZI(g, I.track.visibility.selectors, Q), I.track.forms && FI(g, I.track.forms, Q), A.validateCel !== !1 && yI(I.rules ?? [], Q), I.presets && fI(I.presets, Q), (!I.page || !I.page.id) && Q.push({
1881
+ level: "error",
1882
+ path: "page.id",
1883
+ message: "page.id is required",
1884
+ suggestion: "Set page.id to a stable identifier like 'product-detail' or 'checkout'"
1885
+ });
1886
+ const C = Q.filter((e) => e.level === "error").length, B = Q.filter((e) => e.level === "warning").length, E = Q.filter((e) => e.level === "info").length;
1887
+ return {
1888
+ valid: C === 0,
1889
+ issues: Q,
1890
+ summary: { errors: C, warnings: B, infos: E }
1891
+ };
1892
+ }
1893
+ function JI(I, A, g) {
1894
+ for (const Q of A) {
1895
+ const C = I.querySelectorAll(Q.selector), B = `track.sections["${Q.id}"]`;
1896
+ C.length === 0 ? g.push({
1897
+ level: "error",
1898
+ path: B,
1899
+ message: `Selector "${Q.selector}" matched zero elements`,
1900
+ suggestion: `Add a section element like <section id="${Q.id}"> or update the selector`
1901
+ }) : C.length > 1 && g.push({
1902
+ level: "info",
1903
+ path: B,
1904
+ message: `Selector "${Q.selector}" matched ${C.length} elements — using all of them`,
1905
+ suggestion: C.length > 5 ? `Consider a more specific selector to avoid tracking ${C.length} elements` : void 0
1906
+ });
1907
+ }
1908
+ }
1909
+ function wI(I, A, g) {
1910
+ for (const Q of A) {
1911
+ const C = `track.clicks["${Q.id}"]`, B = I.querySelectorAll(`[data-tflow-id="${Q.id}"]`);
1912
+ let E;
1913
+ if (Q.selector && (E = I.querySelectorAll(Q.selector)), B.length === 0 && (!E || E.length === 0)) {
1914
+ const e = Q.selector ? `Add data-tflow-id="${Q.id}" to the target element, or fix selector "${Q.selector}"` : `Add <button data-tflow-id="${Q.id}"> to the target element`;
1915
+ g.push({
1916
+ level: "error",
1917
+ path: C,
1918
+ message: `No element found with [data-tflow-id="${Q.id}"]`,
1919
+ suggestion: e
1920
+ });
1921
+ } else B.length > 1 ? g.push({
1922
+ level: "warning",
1923
+ path: C,
1924
+ message: `${B.length} elements have data-tflow-id="${Q.id}" — tracked clicks will fire for all of them`,
1925
+ suggestion: "Use unique data-tflow-id values per trackable element"
1926
+ }) : B.length === 1 && E && E.length > 0 && (E[0]?.isSameNode(B[0]) || g.push({
1927
+ level: "info",
1928
+ path: C,
1929
+ message: `Selector "${Q.selector}" matches a different element than [data-tflow-id="${Q.id}"]`,
1930
+ suggestion: "Remove the selector — data-tflow-id is the durable contract"
1931
+ }));
1932
+ }
1933
+ }
1934
+ function ZI(I, A, g) {
1935
+ for (const Q of A) {
1936
+ const C = `track.visibility["${Q.id}"]`;
1937
+ I.querySelectorAll(Q.selector).length === 0 && g.push({
1938
+ level: "warning",
1939
+ path: C,
1940
+ message: `Visibility target "${Q.selector}" matched zero elements at init time (may appear later via JS)`,
1941
+ suggestion: `Ensure the element exists or add [data-track-visibility="${Q.id}"]`
1942
+ });
1943
+ }
1944
+ }
1945
+ function FI(I, A, g) {
1946
+ for (const Q of A) {
1947
+ const C = `track.forms["${Q.id}"]`, B = I.querySelectorAll(Q.selector);
1948
+ B.length === 0 && g.push({
1949
+ level: "error",
1950
+ path: C,
1951
+ message: `Form selector "${Q.selector}" matched zero elements`,
1952
+ suggestion: `Add <form id="${Q.id}" data-track-form> to your markup`
1953
+ });
1954
+ let E = 0;
1955
+ for (const e of B)
1956
+ e.tagName === "FORM" && E++;
1957
+ B.length > 0 && E !== B.length && g.push({
1958
+ level: "warning",
1959
+ path: C,
1960
+ message: `Selector "${Q.selector}" matched ${B.length - E} non-<form> elements`,
1961
+ suggestion: "Form tracking works best on actual <form> elements"
1962
+ });
1963
+ }
1964
+ }
1965
+ function yI(I, A) {
1966
+ for (const g of I) {
1967
+ const Q = `rules["${g.id}"]`;
1968
+ if (!g.id) {
1969
+ A.push({
1970
+ level: "error",
1971
+ path: "rules[?].id",
1972
+ message: "A rule is missing its id field"
1973
+ });
1974
+ return;
1975
+ }
1976
+ if (typeof g.when == "string")
1977
+ try {
1978
+ WI(g.when);
1979
+ } catch (C) {
1980
+ A.push({
1981
+ level: "error",
1982
+ path: `${Q}.when`,
1983
+ message: `CEL expression failed to compile: ${C.message}`,
1984
+ suggestion: 'Try simplifying the expression. Supported: event.kind == "val", event.field >= num, && for compound'
1985
+ });
1986
+ }
1987
+ if (g.emit.params)
1988
+ for (const [C, B] of Object.entries(g.emit.params))
1989
+ (typeof B != "string" || !B.startsWith("event.")) && A.push({
1990
+ level: "warning",
1991
+ path: `${Q}.emit.params.${C}`,
1992
+ message: `Param "${C}" path "${B}" should start with "event."`
1993
+ });
1994
+ }
1995
+ }
1996
+ function fI(I, A) {
1997
+ const g = /* @__PURE__ */ new Set([
1998
+ "section_engagement",
1999
+ "full_engagement",
2000
+ "error_hunting",
2001
+ "scroll_tracking",
2002
+ "form_validation",
2003
+ "page_value",
2004
+ "cta_performance",
2005
+ "bounce_detection"
2006
+ ]);
2007
+ for (const Q of I)
2008
+ g.has(Q) || A.push({
2009
+ level: "error",
2010
+ path: `presets["${Q}"]`,
2011
+ message: `Unknown preset "${Q}"`,
2012
+ suggestion: `Valid presets: ${[...g].join(", ")}`
2013
+ });
2014
+ }
2015
+ function WI(I) {
2016
+ const g = I.split(/\s*&&\s*/).map((Q) => uI(Q.trim()));
2017
+ return (Q) => g.every((C) => C(Q));
2018
+ }
2019
+ function uI(I) {
2020
+ const A = I.match(/^event\.(\w+)\s*==\s*"(.+)"$/);
2021
+ if (A) {
2022
+ const E = A[1], e = A[2];
2023
+ return (n) => a(n, E) === e;
2024
+ }
2025
+ const g = I.match(/^event\.(\w+)\s*>=\s*([\d.]+)$/);
2026
+ if (g) {
2027
+ const E = g[1], e = Number(g[2]);
2028
+ return (n) => typeof a(n, E) == "number" && a(n, E) >= e;
2029
+ }
2030
+ const Q = I.match(/^event\.(\w+)\s*>\s*([\d.]+)$/);
2031
+ if (Q) {
2032
+ const E = Q[1], e = Number(Q[2]);
2033
+ return (n) => typeof a(n, E) == "number" && a(n, E) > e;
2034
+ }
2035
+ const C = I.match(/^event\.(\w+)\s*<=\s*([\d.]+)$/);
2036
+ if (C) {
2037
+ const E = C[1], e = Number(C[2]);
2038
+ return (n) => typeof a(n, E) == "number" && a(n, E) <= e;
2039
+ }
2040
+ const B = I.match(/^event\.(\w+)\s*<\s*([\d.]+)$/);
2041
+ if (B) {
2042
+ const E = B[1], e = Number(B[2]);
2043
+ return (n) => typeof a(n, E) == "number" && a(n, E) < e;
2044
+ }
2045
+ throw new Error(`Cannot compile CEL expression: "${I}"`);
2046
+ }
2047
+ function a(I, A) {
2048
+ if (A === "kind")
2049
+ return I.kind;
2050
+ if (A === "ts")
2051
+ return I.ts;
2052
+ if (A.startsWith("target.")) {
2053
+ const g = A.slice(7);
2054
+ return I.target?.[g];
2055
+ }
2056
+ if (A.startsWith("page.")) {
2057
+ const g = A.slice(5);
2058
+ return I.page?.[g];
2059
+ }
2060
+ return I[A];
2061
+ }
2062
+ export {
2063
+ DA as CompiledPattern,
2064
+ bA as ConsoleSink,
2065
+ XA as EdgeSink,
2066
+ RA as GA4Sink,
2067
+ AA as MASK_SELECTOR,
2068
+ VA as MAX_CAPTURED_TEXT,
2069
+ mA as Pattern,
2070
+ MA as PatternRuntime,
2071
+ pA as SinkRouter,
2072
+ TA as TFloBrowser,
2073
+ UA as capturableText,
2074
+ z as capture,
2075
+ LA as captureErrors,
2076
+ _A as captureLifecycle,
2077
+ vA as captureScroll,
2078
+ P as captureViewport,
2079
+ HA as captureVisibility,
2080
+ XI as checkClickCoverage,
2081
+ eI as checkSelectorHealth,
2082
+ CA as diagnosticEvent,
2083
+ qA as expandPreset,
2084
+ PA as expandPresets,
2085
+ gA as pathOnlyUrl,
2086
+ rA as stableSessionId,
2087
+ xA as stripUrlQueries,
2088
+ RI as tflo,
2089
+ pI as validatePlan,
2090
+ aA as withIdentity
2091
+ };