@adobe/helix-rum-enhancer 2.46.0 → 2.46.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.
- package/CHANGELOG.md +14 -0
- package/package.json +6 -6
- package/src/plugins/cwv.js +103 -100
- package/src/plugins/cwv.map.js +104 -101
- package/src/plugins/cwv.md5 +1 -1
- package/src/plugins/martech.md5 +1 -1
- package/src/plugins/onetrust.md5 +1 -1
- package/src/plugins/redirect.md5 +1 -1
- package/src/plugins/usercentrics.md5 +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
## [2.46.2](https://github.com/adobe/helix-rum-enhancer/compare/v2.46.1...v2.46.2) (2026-04-13)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* add checks:write permission for test-summary action ([5131293](https://github.com/adobe/helix-rum-enhancer/commit/51312932163dcb3ccc233172f42952bd597740a6))
|
|
7
|
+
|
|
8
|
+
## [2.46.1](https://github.com/adobe/helix-rum-enhancer/compare/v2.46.0...v2.46.1) (2026-04-13)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* use npm OIDC trusted publishers and fix Node.js version ([0bbcb3d](https://github.com/adobe/helix-rum-enhancer/commit/0bbcb3d5a7dc3ad8272f699a008f7c6efc957cd8))
|
|
14
|
+
|
|
1
15
|
# [2.46.0](https://github.com/adobe/helix-rum-enhancer/compare/v2.45.1...v2.46.0) (2026-02-19)
|
|
2
16
|
|
|
3
17
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adobe/helix-rum-enhancer",
|
|
3
|
-
"version": "2.46.
|
|
3
|
+
"version": "2.46.2",
|
|
4
4
|
"description": "Helix RUM Enhancer",
|
|
5
5
|
"main": "src/index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -36,13 +36,13 @@
|
|
|
36
36
|
"@adobe/eslint-config-helix": "3.0.13",
|
|
37
37
|
"@adobe/helix-rum-js": "2.13.6",
|
|
38
38
|
"@adobe/rollup-plugin-checksum": "1.2.0",
|
|
39
|
-
"@eslint/config-helpers": "0.5.
|
|
39
|
+
"@eslint/config-helpers": "0.5.3",
|
|
40
40
|
"@esm-bundle/chai": "4.3.4-fix.0",
|
|
41
41
|
"@rollup/plugin-babel": "6.1.0",
|
|
42
42
|
"@semantic-release/changelog": "6.0.3",
|
|
43
43
|
"@semantic-release/exec": "7.1.0",
|
|
44
44
|
"@semantic-release/git": "10.0.1",
|
|
45
|
-
"@semantic-release/npm": "13.1.
|
|
45
|
+
"@semantic-release/npm": "13.1.5",
|
|
46
46
|
"@web/test-runner": "0.20.2",
|
|
47
47
|
"@web/test-runner-commands": "0.9.0",
|
|
48
48
|
"@web/test-runner-junit-reporter": "0.8.0",
|
|
@@ -57,14 +57,14 @@
|
|
|
57
57
|
"husky": "9.1.7",
|
|
58
58
|
"jsdoc-to-markdown": "9.1.3",
|
|
59
59
|
"junit-report-builder": "5.1.1",
|
|
60
|
-
"lint-staged": "16.
|
|
60
|
+
"lint-staged": "16.4.0",
|
|
61
61
|
"mocha": "11.7.5",
|
|
62
62
|
"mocha-multi-reporters": "1.5.1",
|
|
63
|
-
"rollup": "4.
|
|
63
|
+
"rollup": "4.60.1",
|
|
64
64
|
"rollup-plugin-eslint-bundle": "9.0.0",
|
|
65
65
|
"semantic-release": "25.0.3",
|
|
66
66
|
"semantic-release-slack-bot": "^4.0.2",
|
|
67
|
-
"web-vitals": "5.
|
|
67
|
+
"web-vitals": "5.2.0"
|
|
68
68
|
},
|
|
69
69
|
"lint-staged": {
|
|
70
70
|
"*.js": "eslint",
|
package/src/plugins/cwv.js
CHANGED
|
@@ -18,26 +18,23 @@
|
|
|
18
18
|
}, true);
|
|
19
19
|
},
|
|
20
20
|
i = (e, t, n, i) => {
|
|
21
|
-
let s,
|
|
22
|
-
return
|
|
23
|
-
t.value >= 0 && (
|
|
21
|
+
let s, o;
|
|
22
|
+
return r => {
|
|
23
|
+
t.value >= 0 && (r || i) && (o = t.value - (s ?? 0), (o || void 0 === s) && (s = t.value, t.delta = o, t.rating = ((e, t) => e > t[1] ? "poor" : e > t[0] ? "needs-improvement" : "good")(t.value, n), e(t)));
|
|
24
24
|
};
|
|
25
25
|
},
|
|
26
26
|
s = e => {
|
|
27
|
-
requestAnimationFrame(() => requestAnimationFrame(
|
|
27
|
+
requestAnimationFrame(() => requestAnimationFrame(e));
|
|
28
28
|
},
|
|
29
|
-
|
|
29
|
+
o = () => {
|
|
30
30
|
const e = performance.getEntriesByType("navigation")[0];
|
|
31
31
|
if (e && e.responseStart > 0 && e.responseStart < performance.now()) return e;
|
|
32
32
|
},
|
|
33
|
-
|
|
34
|
-
const e = r();
|
|
35
|
-
return e?.activationStart ?? 0;
|
|
36
|
-
},
|
|
33
|
+
r = () => o()?.activationStart ?? 0,
|
|
37
34
|
c = (e, n = -1) => {
|
|
38
|
-
const i =
|
|
35
|
+
const i = o();
|
|
39
36
|
let s = "navigate";
|
|
40
|
-
t >= 0 ? s = "back-forward-cache" : i && (document.prerendering ||
|
|
37
|
+
t >= 0 ? s = "back-forward-cache" : i && (document.prerendering || r() > 0 ? s = "prerender" : document.wasDiscarded ? s = "restore" : i.type && (s = i.type.replace(/_/g, "-")));
|
|
41
38
|
return {
|
|
42
39
|
name: e,
|
|
43
40
|
value: n,
|
|
@@ -67,7 +64,7 @@
|
|
|
67
64
|
try {
|
|
68
65
|
if (PerformanceObserver.supportedEntryTypes.includes(e)) {
|
|
69
66
|
const i = new PerformanceObserver(e => {
|
|
70
|
-
|
|
67
|
+
queueMicrotask(() => {
|
|
71
68
|
t(e.getEntries());
|
|
72
69
|
});
|
|
73
70
|
});
|
|
@@ -79,34 +76,34 @@
|
|
|
79
76
|
}
|
|
80
77
|
} catch {}
|
|
81
78
|
},
|
|
82
|
-
|
|
79
|
+
l = e => {
|
|
83
80
|
let t = false;
|
|
84
81
|
return () => {
|
|
85
82
|
t || (e(), t = true);
|
|
86
83
|
};
|
|
87
84
|
};
|
|
88
|
-
let
|
|
85
|
+
let u = -1;
|
|
89
86
|
const m = new Set(),
|
|
90
|
-
|
|
91
|
-
|
|
87
|
+
g = () => "hidden" !== document.visibilityState || document.prerendering ? 1 / 0 : 0,
|
|
88
|
+
v = e => {
|
|
92
89
|
if ("hidden" === document.visibilityState) {
|
|
93
90
|
if ("visibilitychange" === e.type) for (const e of m) e();
|
|
94
|
-
isFinite(
|
|
91
|
+
isFinite(u) || (u = "visibilitychange" === e.type ? e.timeStamp : 0, removeEventListener("prerenderingchange", v, true));
|
|
95
92
|
}
|
|
96
93
|
},
|
|
97
|
-
|
|
98
|
-
if (
|
|
99
|
-
const e =
|
|
100
|
-
t = document.prerendering ? void 0 : globalThis.performance.getEntriesByType("visibility-state").
|
|
101
|
-
|
|
94
|
+
p = () => {
|
|
95
|
+
if (u < 0) {
|
|
96
|
+
const e = r(),
|
|
97
|
+
t = document.prerendering ? void 0 : globalThis.performance.getEntriesByType("visibility-state").find(t => "hidden" === t.name && t.startTime >= e)?.startTime;
|
|
98
|
+
u = t ?? g(), addEventListener("visibilitychange", v, true), addEventListener("prerenderingchange", v, true), n(() => {
|
|
102
99
|
setTimeout(() => {
|
|
103
|
-
|
|
100
|
+
u = g();
|
|
104
101
|
});
|
|
105
102
|
});
|
|
106
103
|
}
|
|
107
104
|
return {
|
|
108
105
|
get firstHiddenTime() {
|
|
109
|
-
return
|
|
106
|
+
return u;
|
|
110
107
|
},
|
|
111
108
|
onHidden(e) {
|
|
112
109
|
m.add(e);
|
|
@@ -114,80 +111,86 @@
|
|
|
114
111
|
};
|
|
115
112
|
},
|
|
116
113
|
y = e => {
|
|
117
|
-
document.prerendering ? addEventListener("prerenderingchange",
|
|
114
|
+
document.prerendering ? addEventListener("prerenderingchange", e, true) : e();
|
|
118
115
|
},
|
|
119
|
-
|
|
120
|
-
|
|
116
|
+
T = [1800, 3e3],
|
|
117
|
+
b = (e, t = {}) => {
|
|
121
118
|
y(() => {
|
|
122
|
-
const
|
|
119
|
+
const o = p();
|
|
123
120
|
let a,
|
|
124
121
|
d = c("FCP");
|
|
125
122
|
const h = f("paint", e => {
|
|
126
|
-
for (const t of e) "first-contentful-paint" === t.name && (h.disconnect(), t.startTime <
|
|
123
|
+
for (const t of e) "first-contentful-paint" === t.name && (h.disconnect(), t.startTime < o.firstHiddenTime && (d.value = Math.max(t.startTime - r(), 0), d.entries.push(t), a(true)));
|
|
127
124
|
});
|
|
128
|
-
h && (a = i(e, d,
|
|
129
|
-
d = c("FCP"), a = i(e, d,
|
|
125
|
+
h && (a = i(e, d, T, t.reportAllChanges), n(n => {
|
|
126
|
+
d = c("FCP"), a = i(e, d, T, t.reportAllChanges), s(() => {
|
|
130
127
|
d.value = performance.now() - n.timeStamp, a(true);
|
|
131
128
|
});
|
|
132
129
|
}));
|
|
133
130
|
});
|
|
134
131
|
},
|
|
135
|
-
|
|
136
|
-
let
|
|
137
|
-
|
|
132
|
+
E = [.1, .25];
|
|
133
|
+
let L = 0,
|
|
134
|
+
P = 1 / 0,
|
|
138
135
|
_ = 0;
|
|
139
136
|
const M = e => {
|
|
140
|
-
for (const t of e) t.interactionId && (
|
|
137
|
+
for (const t of e) t.interactionId && (P = Math.min(P, t.interactionId), _ = Math.max(_, t.interactionId), L = _ ? (_ - P) / 7 + 1 : 0);
|
|
141
138
|
};
|
|
142
139
|
let w;
|
|
143
|
-
const C = () => w ?
|
|
140
|
+
const C = () => w ? L : performance.interactionCount ?? 0,
|
|
144
141
|
I = () => {
|
|
145
142
|
"interactionCount" in performance || w || (w = f("event", M, {
|
|
146
|
-
type: "event",
|
|
147
|
-
buffered: true,
|
|
148
143
|
durationThreshold: 0
|
|
149
144
|
}));
|
|
150
145
|
};
|
|
151
146
|
let F = 0;
|
|
152
147
|
class k {
|
|
153
|
-
|
|
154
|
-
|
|
148
|
+
l = [];
|
|
149
|
+
u = new Map();
|
|
155
150
|
m;
|
|
156
151
|
v;
|
|
157
152
|
p() {
|
|
158
|
-
F = C(), this.
|
|
153
|
+
F = C(), this.l.length = 0, this.u.clear();
|
|
159
154
|
}
|
|
160
|
-
|
|
161
|
-
const e = Math.min(this.
|
|
162
|
-
return this.
|
|
155
|
+
T() {
|
|
156
|
+
const e = Math.min(this.l.length - 1, Math.floor((C() - F) / 50));
|
|
157
|
+
return this.l[e];
|
|
163
158
|
}
|
|
164
159
|
h(e) {
|
|
165
160
|
if (this.m?.(e), !e.interactionId && "first-input" !== e.entryType) return;
|
|
166
|
-
const t = this.
|
|
167
|
-
let n = this.
|
|
168
|
-
if (n || this.
|
|
169
|
-
if (n ? e.duration > n.
|
|
161
|
+
const t = this.l.at(-1);
|
|
162
|
+
let n = this.u.get(e.interactionId);
|
|
163
|
+
if (n || this.l.length < 10 || e.duration > t.L) {
|
|
164
|
+
if (n ? e.duration > n.L ? (n.entries = [e], n.L = e.duration) : e.duration === n.L && e.startTime === n.entries[0].startTime && n.entries.push(e) : (n = {
|
|
170
165
|
id: e.interactionId,
|
|
171
166
|
entries: [e],
|
|
172
|
-
|
|
173
|
-
}, this.
|
|
174
|
-
const e = this.
|
|
175
|
-
for (const t of e) this.
|
|
167
|
+
L: e.duration
|
|
168
|
+
}, this.u.set(n.id, n), this.l.push(n)), this.l.sort((e, t) => t.L - e.L), this.l.length > 10) {
|
|
169
|
+
const e = this.l.splice(10);
|
|
170
|
+
for (const t of e) this.u.delete(t.id);
|
|
176
171
|
}
|
|
177
172
|
this.v?.(n);
|
|
178
173
|
}
|
|
179
174
|
}
|
|
180
175
|
}
|
|
181
176
|
const A = e => {
|
|
182
|
-
const t = globalThis.requestIdleCallback || setTimeout
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
177
|
+
const t = globalThis.requestIdleCallback || setTimeout,
|
|
178
|
+
n = globalThis.cancelIdleCallback || clearTimeout;
|
|
179
|
+
if ("hidden" === document.visibilityState) e();else {
|
|
180
|
+
const i = l(e);
|
|
181
|
+
let s = -1;
|
|
182
|
+
const o = () => {
|
|
183
|
+
n(s), i();
|
|
184
|
+
};
|
|
185
|
+
addEventListener("visibilitychange", o, {
|
|
186
|
+
once: true,
|
|
188
187
|
capture: true
|
|
188
|
+
}), s = t(() => {
|
|
189
|
+
removeEventListener("visibilitychange", o, {
|
|
190
|
+
capture: true
|
|
191
|
+
}), i();
|
|
189
192
|
});
|
|
190
|
-
}
|
|
193
|
+
}
|
|
191
194
|
},
|
|
192
195
|
B = [200, 500];
|
|
193
196
|
class S {
|
|
@@ -196,81 +199,81 @@
|
|
|
196
199
|
this.m?.(e);
|
|
197
200
|
}
|
|
198
201
|
}
|
|
199
|
-
const
|
|
200
|
-
|
|
202
|
+
const q = [2500, 4e3],
|
|
203
|
+
N = [800, 1800],
|
|
201
204
|
H = e => {
|
|
202
205
|
document.prerendering ? y(() => H(e)) : "complete" !== document.readyState ? addEventListener("load", () => H(e), true) : setTimeout(e);
|
|
203
206
|
};
|
|
204
|
-
return e.CLSThresholds =
|
|
205
|
-
const
|
|
206
|
-
|
|
207
|
-
let
|
|
207
|
+
return e.CLSThresholds = E, e.FCPThresholds = T, e.INPThresholds = B, e.LCPThresholds = q, e.TTFBThresholds = N, e.onCLS = (e, t = {}) => {
|
|
208
|
+
const o = p();
|
|
209
|
+
b(l(() => {
|
|
210
|
+
let r,
|
|
208
211
|
a = c("CLS", 0);
|
|
209
|
-
const
|
|
210
|
-
|
|
211
|
-
for (const t of e)
|
|
212
|
-
|
|
212
|
+
const l = d(t, h),
|
|
213
|
+
u = e => {
|
|
214
|
+
for (const t of e) l.h(t);
|
|
215
|
+
l.i > a.value && (a.value = l.i, a.entries = l.o, r());
|
|
213
216
|
},
|
|
214
|
-
m = f("layout-shift",
|
|
215
|
-
m && (
|
|
216
|
-
|
|
217
|
+
m = f("layout-shift", u);
|
|
218
|
+
m && (r = i(e, a, E, t.reportAllChanges), o.onHidden(() => {
|
|
219
|
+
u(m.takeRecords()), r(true);
|
|
217
220
|
}), n(() => {
|
|
218
|
-
|
|
219
|
-
}), setTimeout(
|
|
221
|
+
l.i = 0, a = c("CLS", 0), r = i(e, a, E, t.reportAllChanges), s(r);
|
|
222
|
+
}), setTimeout(r));
|
|
220
223
|
}));
|
|
221
|
-
}, e.onFCP =
|
|
224
|
+
}, e.onFCP = b, e.onINP = (e, t = {}) => {
|
|
222
225
|
if (!globalThis.PerformanceEventTiming || !("interactionId" in PerformanceEventTiming.prototype)) return;
|
|
223
|
-
const s =
|
|
226
|
+
const s = p();
|
|
224
227
|
y(() => {
|
|
225
228
|
I();
|
|
226
|
-
let
|
|
227
|
-
|
|
229
|
+
let o,
|
|
230
|
+
r = c("INP");
|
|
228
231
|
const a = d(t, k),
|
|
229
232
|
h = e => {
|
|
230
233
|
A(() => {
|
|
231
234
|
for (const t of e) a.h(t);
|
|
232
|
-
const t = a.
|
|
233
|
-
t && t.
|
|
235
|
+
const t = a.T();
|
|
236
|
+
t && t.L !== r.value && (r.value = t.L, r.entries = t.entries, o());
|
|
234
237
|
});
|
|
235
238
|
},
|
|
236
|
-
|
|
239
|
+
l = f("event", h, {
|
|
237
240
|
durationThreshold: t.durationThreshold ?? 40
|
|
238
241
|
});
|
|
239
|
-
|
|
242
|
+
o = i(e, r, B, t.reportAllChanges), l && (l.observe({
|
|
240
243
|
type: "first-input",
|
|
241
244
|
buffered: true
|
|
242
245
|
}), s.onHidden(() => {
|
|
243
|
-
h(
|
|
246
|
+
h(l.takeRecords()), o(true);
|
|
244
247
|
}), n(() => {
|
|
245
|
-
a.p(),
|
|
248
|
+
a.p(), r = c("INP"), o = i(e, r, B, t.reportAllChanges);
|
|
246
249
|
}));
|
|
247
250
|
});
|
|
248
251
|
}, e.onLCP = (e, t = {}) => {
|
|
249
252
|
y(() => {
|
|
250
|
-
const
|
|
253
|
+
const o = p();
|
|
251
254
|
let a,
|
|
252
255
|
h = c("LCP");
|
|
253
|
-
const
|
|
256
|
+
const u = d(t, S),
|
|
254
257
|
m = e => {
|
|
255
258
|
t.reportAllChanges || (e = e.slice(-1));
|
|
256
|
-
for (const t of e)
|
|
259
|
+
for (const t of e) u.h(t), t.startTime < o.firstHiddenTime && (h.value = Math.max(t.startTime - r(), 0), h.entries = [t], a());
|
|
257
260
|
},
|
|
258
|
-
|
|
259
|
-
if (
|
|
260
|
-
a = i(e, h,
|
|
261
|
-
const
|
|
262
|
-
m(
|
|
261
|
+
g = f("largest-contentful-paint", m);
|
|
262
|
+
if (g) {
|
|
263
|
+
a = i(e, h, q, t.reportAllChanges);
|
|
264
|
+
const o = l(() => {
|
|
265
|
+
m(g.takeRecords()), g.disconnect(), a(true);
|
|
263
266
|
}),
|
|
264
|
-
|
|
265
|
-
e.isTrusted && (A(
|
|
267
|
+
r = e => {
|
|
268
|
+
e.isTrusted && (A(o), removeEventListener(e.type, r, {
|
|
266
269
|
capture: true
|
|
267
270
|
}));
|
|
268
271
|
};
|
|
269
|
-
for (const e of ["keydown", "click", "visibilitychange"]) addEventListener(e,
|
|
272
|
+
for (const e of ["keydown", "click", "visibilitychange"]) addEventListener(e, r, {
|
|
270
273
|
capture: true
|
|
271
274
|
});
|
|
272
275
|
n(n => {
|
|
273
|
-
h = c("LCP"), a = i(e, h,
|
|
276
|
+
h = c("LCP"), a = i(e, h, q, t.reportAllChanges), s(() => {
|
|
274
277
|
h.value = performance.now() - n.timeStamp, a(true);
|
|
275
278
|
});
|
|
276
279
|
});
|
|
@@ -278,11 +281,11 @@
|
|
|
278
281
|
});
|
|
279
282
|
}, e.onTTFB = (e, t = {}) => {
|
|
280
283
|
let s = c("TTFB"),
|
|
281
|
-
a = i(e, s,
|
|
284
|
+
a = i(e, s, N, t.reportAllChanges);
|
|
282
285
|
H(() => {
|
|
283
|
-
const d =
|
|
284
|
-
d && (s.value = Math.max(d.responseStart -
|
|
285
|
-
s = c("TTFB", 0), a = i(e, s,
|
|
286
|
+
const d = o();
|
|
287
|
+
d && (s.value = Math.max(d.responseStart - r(), 0), s.entries = [d], a(true), n(() => {
|
|
288
|
+
s = c("TTFB", 0), a = i(e, s, N, t.reportAllChanges), a(true);
|
|
286
289
|
}));
|
|
287
290
|
});
|
|
288
291
|
}, e;
|
package/src/plugins/cwv.map.js
CHANGED
|
@@ -18,26 +18,23 @@
|
|
|
18
18
|
}, true);
|
|
19
19
|
},
|
|
20
20
|
i = (e, t, n, i) => {
|
|
21
|
-
let s,
|
|
22
|
-
return
|
|
23
|
-
t.value >= 0 && (
|
|
21
|
+
let s, o;
|
|
22
|
+
return r => {
|
|
23
|
+
t.value >= 0 && (r || i) && (o = t.value - (s ?? 0), (o || void 0 === s) && (s = t.value, t.delta = o, t.rating = ((e, t) => e > t[1] ? "poor" : e > t[0] ? "needs-improvement" : "good")(t.value, n), e(t)));
|
|
24
24
|
};
|
|
25
25
|
},
|
|
26
26
|
s = e => {
|
|
27
|
-
requestAnimationFrame(() => requestAnimationFrame(
|
|
27
|
+
requestAnimationFrame(() => requestAnimationFrame(e));
|
|
28
28
|
},
|
|
29
|
-
|
|
29
|
+
o = () => {
|
|
30
30
|
const e = performance.getEntriesByType("navigation")[0];
|
|
31
31
|
if (e && e.responseStart > 0 && e.responseStart < performance.now()) return e;
|
|
32
32
|
},
|
|
33
|
-
|
|
34
|
-
const e = r();
|
|
35
|
-
return e?.activationStart ?? 0;
|
|
36
|
-
},
|
|
33
|
+
r = () => o()?.activationStart ?? 0,
|
|
37
34
|
c = (e, n = -1) => {
|
|
38
|
-
const i =
|
|
35
|
+
const i = o();
|
|
39
36
|
let s = "navigate";
|
|
40
|
-
t >= 0 ? s = "back-forward-cache" : i && (document.prerendering ||
|
|
37
|
+
t >= 0 ? s = "back-forward-cache" : i && (document.prerendering || r() > 0 ? s = "prerender" : document.wasDiscarded ? s = "restore" : i.type && (s = i.type.replace(/_/g, "-")));
|
|
41
38
|
return {
|
|
42
39
|
name: e,
|
|
43
40
|
value: n,
|
|
@@ -67,7 +64,7 @@
|
|
|
67
64
|
try {
|
|
68
65
|
if (PerformanceObserver.supportedEntryTypes.includes(e)) {
|
|
69
66
|
const i = new PerformanceObserver(e => {
|
|
70
|
-
|
|
67
|
+
queueMicrotask(() => {
|
|
71
68
|
t(e.getEntries());
|
|
72
69
|
});
|
|
73
70
|
});
|
|
@@ -79,34 +76,34 @@
|
|
|
79
76
|
}
|
|
80
77
|
} catch {}
|
|
81
78
|
},
|
|
82
|
-
|
|
79
|
+
l = e => {
|
|
83
80
|
let t = false;
|
|
84
81
|
return () => {
|
|
85
82
|
t || (e(), t = true);
|
|
86
83
|
};
|
|
87
84
|
};
|
|
88
|
-
let
|
|
85
|
+
let u = -1;
|
|
89
86
|
const m = new Set(),
|
|
90
|
-
|
|
91
|
-
|
|
87
|
+
g = () => "hidden" !== document.visibilityState || document.prerendering ? 1 / 0 : 0,
|
|
88
|
+
v = e => {
|
|
92
89
|
if ("hidden" === document.visibilityState) {
|
|
93
90
|
if ("visibilitychange" === e.type) for (const e of m) e();
|
|
94
|
-
isFinite(
|
|
91
|
+
isFinite(u) || (u = "visibilitychange" === e.type ? e.timeStamp : 0, removeEventListener("prerenderingchange", v, true));
|
|
95
92
|
}
|
|
96
93
|
},
|
|
97
|
-
|
|
98
|
-
if (
|
|
99
|
-
const e =
|
|
100
|
-
t = document.prerendering ? void 0 : globalThis.performance.getEntriesByType("visibility-state").
|
|
101
|
-
|
|
94
|
+
p = () => {
|
|
95
|
+
if (u < 0) {
|
|
96
|
+
const e = r(),
|
|
97
|
+
t = document.prerendering ? void 0 : globalThis.performance.getEntriesByType("visibility-state").find(t => "hidden" === t.name && t.startTime >= e)?.startTime;
|
|
98
|
+
u = t ?? g(), addEventListener("visibilitychange", v, true), addEventListener("prerenderingchange", v, true), n(() => {
|
|
102
99
|
setTimeout(() => {
|
|
103
|
-
|
|
100
|
+
u = g();
|
|
104
101
|
});
|
|
105
102
|
});
|
|
106
103
|
}
|
|
107
104
|
return {
|
|
108
105
|
get firstHiddenTime() {
|
|
109
|
-
return
|
|
106
|
+
return u;
|
|
110
107
|
},
|
|
111
108
|
onHidden(e) {
|
|
112
109
|
m.add(e);
|
|
@@ -114,80 +111,86 @@
|
|
|
114
111
|
};
|
|
115
112
|
},
|
|
116
113
|
y = e => {
|
|
117
|
-
document.prerendering ? addEventListener("prerenderingchange",
|
|
114
|
+
document.prerendering ? addEventListener("prerenderingchange", e, true) : e();
|
|
118
115
|
},
|
|
119
|
-
|
|
120
|
-
|
|
116
|
+
T = [1800, 3e3],
|
|
117
|
+
b = (e, t = {}) => {
|
|
121
118
|
y(() => {
|
|
122
|
-
const
|
|
119
|
+
const o = p();
|
|
123
120
|
let a,
|
|
124
121
|
d = c("FCP");
|
|
125
122
|
const h = f("paint", e => {
|
|
126
|
-
for (const t of e) "first-contentful-paint" === t.name && (h.disconnect(), t.startTime <
|
|
123
|
+
for (const t of e) "first-contentful-paint" === t.name && (h.disconnect(), t.startTime < o.firstHiddenTime && (d.value = Math.max(t.startTime - r(), 0), d.entries.push(t), a(true)));
|
|
127
124
|
});
|
|
128
|
-
h && (a = i(e, d,
|
|
129
|
-
d = c("FCP"), a = i(e, d,
|
|
125
|
+
h && (a = i(e, d, T, t.reportAllChanges), n(n => {
|
|
126
|
+
d = c("FCP"), a = i(e, d, T, t.reportAllChanges), s(() => {
|
|
130
127
|
d.value = performance.now() - n.timeStamp, a(true);
|
|
131
128
|
});
|
|
132
129
|
}));
|
|
133
130
|
});
|
|
134
131
|
},
|
|
135
|
-
|
|
136
|
-
let
|
|
137
|
-
|
|
132
|
+
E = [.1, .25];
|
|
133
|
+
let L = 0,
|
|
134
|
+
P = 1 / 0,
|
|
138
135
|
_ = 0;
|
|
139
136
|
const M = e => {
|
|
140
|
-
for (const t of e) t.interactionId && (
|
|
137
|
+
for (const t of e) t.interactionId && (P = Math.min(P, t.interactionId), _ = Math.max(_, t.interactionId), L = _ ? (_ - P) / 7 + 1 : 0);
|
|
141
138
|
};
|
|
142
139
|
let w;
|
|
143
|
-
const C = () => w ?
|
|
140
|
+
const C = () => w ? L : performance.interactionCount ?? 0,
|
|
144
141
|
I = () => {
|
|
145
142
|
"interactionCount" in performance || w || (w = f("event", M, {
|
|
146
|
-
type: "event",
|
|
147
|
-
buffered: true,
|
|
148
143
|
durationThreshold: 0
|
|
149
144
|
}));
|
|
150
145
|
};
|
|
151
146
|
let F = 0;
|
|
152
147
|
class k {
|
|
153
|
-
|
|
154
|
-
|
|
148
|
+
l = [];
|
|
149
|
+
u = new Map();
|
|
155
150
|
m;
|
|
156
151
|
v;
|
|
157
152
|
p() {
|
|
158
|
-
F = C(), this.
|
|
153
|
+
F = C(), this.l.length = 0, this.u.clear();
|
|
159
154
|
}
|
|
160
|
-
|
|
161
|
-
const e = Math.min(this.
|
|
162
|
-
return this.
|
|
155
|
+
T() {
|
|
156
|
+
const e = Math.min(this.l.length - 1, Math.floor((C() - F) / 50));
|
|
157
|
+
return this.l[e];
|
|
163
158
|
}
|
|
164
159
|
h(e) {
|
|
165
160
|
if (this.m?.(e), !e.interactionId && "first-input" !== e.entryType) return;
|
|
166
|
-
const t = this.
|
|
167
|
-
let n = this.
|
|
168
|
-
if (n || this.
|
|
169
|
-
if (n ? e.duration > n.
|
|
161
|
+
const t = this.l.at(-1);
|
|
162
|
+
let n = this.u.get(e.interactionId);
|
|
163
|
+
if (n || this.l.length < 10 || e.duration > t.L) {
|
|
164
|
+
if (n ? e.duration > n.L ? (n.entries = [e], n.L = e.duration) : e.duration === n.L && e.startTime === n.entries[0].startTime && n.entries.push(e) : (n = {
|
|
170
165
|
id: e.interactionId,
|
|
171
166
|
entries: [e],
|
|
172
|
-
|
|
173
|
-
}, this.
|
|
174
|
-
const e = this.
|
|
175
|
-
for (const t of e) this.
|
|
167
|
+
L: e.duration
|
|
168
|
+
}, this.u.set(n.id, n), this.l.push(n)), this.l.sort((e, t) => t.L - e.L), this.l.length > 10) {
|
|
169
|
+
const e = this.l.splice(10);
|
|
170
|
+
for (const t of e) this.u.delete(t.id);
|
|
176
171
|
}
|
|
177
172
|
this.v?.(n);
|
|
178
173
|
}
|
|
179
174
|
}
|
|
180
175
|
}
|
|
181
176
|
const A = e => {
|
|
182
|
-
const t = globalThis.requestIdleCallback || setTimeout
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
177
|
+
const t = globalThis.requestIdleCallback || setTimeout,
|
|
178
|
+
n = globalThis.cancelIdleCallback || clearTimeout;
|
|
179
|
+
if ("hidden" === document.visibilityState) e();else {
|
|
180
|
+
const i = l(e);
|
|
181
|
+
let s = -1;
|
|
182
|
+
const o = () => {
|
|
183
|
+
n(s), i();
|
|
184
|
+
};
|
|
185
|
+
addEventListener("visibilitychange", o, {
|
|
186
|
+
once: true,
|
|
188
187
|
capture: true
|
|
188
|
+
}), s = t(() => {
|
|
189
|
+
removeEventListener("visibilitychange", o, {
|
|
190
|
+
capture: true
|
|
191
|
+
}), i();
|
|
189
192
|
});
|
|
190
|
-
}
|
|
193
|
+
}
|
|
191
194
|
},
|
|
192
195
|
B = [200, 500];
|
|
193
196
|
class S {
|
|
@@ -196,81 +199,81 @@
|
|
|
196
199
|
this.m?.(e);
|
|
197
200
|
}
|
|
198
201
|
}
|
|
199
|
-
const
|
|
200
|
-
|
|
202
|
+
const q = [2500, 4e3],
|
|
203
|
+
N = [800, 1800],
|
|
201
204
|
H = e => {
|
|
202
205
|
document.prerendering ? y(() => H(e)) : "complete" !== document.readyState ? addEventListener("load", () => H(e), true) : setTimeout(e);
|
|
203
206
|
};
|
|
204
|
-
return e.CLSThresholds =
|
|
205
|
-
const
|
|
206
|
-
|
|
207
|
-
let
|
|
207
|
+
return e.CLSThresholds = E, e.FCPThresholds = T, e.INPThresholds = B, e.LCPThresholds = q, e.TTFBThresholds = N, e.onCLS = (e, t = {}) => {
|
|
208
|
+
const o = p();
|
|
209
|
+
b(l(() => {
|
|
210
|
+
let r,
|
|
208
211
|
a = c("CLS", 0);
|
|
209
|
-
const
|
|
210
|
-
|
|
211
|
-
for (const t of e)
|
|
212
|
-
|
|
212
|
+
const l = d(t, h),
|
|
213
|
+
u = e => {
|
|
214
|
+
for (const t of e) l.h(t);
|
|
215
|
+
l.i > a.value && (a.value = l.i, a.entries = l.o, r());
|
|
213
216
|
},
|
|
214
|
-
m = f("layout-shift",
|
|
215
|
-
m && (
|
|
216
|
-
|
|
217
|
+
m = f("layout-shift", u);
|
|
218
|
+
m && (r = i(e, a, E, t.reportAllChanges), o.onHidden(() => {
|
|
219
|
+
u(m.takeRecords()), r(true);
|
|
217
220
|
}), n(() => {
|
|
218
|
-
|
|
219
|
-
}), setTimeout(
|
|
221
|
+
l.i = 0, a = c("CLS", 0), r = i(e, a, E, t.reportAllChanges), s(r);
|
|
222
|
+
}), setTimeout(r));
|
|
220
223
|
}));
|
|
221
|
-
}, e.onFCP =
|
|
224
|
+
}, e.onFCP = b, e.onINP = (e, t = {}) => {
|
|
222
225
|
if (!globalThis.PerformanceEventTiming || !("interactionId" in PerformanceEventTiming.prototype)) return;
|
|
223
|
-
const s =
|
|
226
|
+
const s = p();
|
|
224
227
|
y(() => {
|
|
225
228
|
I();
|
|
226
|
-
let
|
|
227
|
-
|
|
229
|
+
let o,
|
|
230
|
+
r = c("INP");
|
|
228
231
|
const a = d(t, k),
|
|
229
232
|
h = e => {
|
|
230
233
|
A(() => {
|
|
231
234
|
for (const t of e) a.h(t);
|
|
232
|
-
const t = a.
|
|
233
|
-
t && t.
|
|
235
|
+
const t = a.T();
|
|
236
|
+
t && t.L !== r.value && (r.value = t.L, r.entries = t.entries, o());
|
|
234
237
|
});
|
|
235
238
|
},
|
|
236
|
-
|
|
239
|
+
l = f("event", h, {
|
|
237
240
|
durationThreshold: t.durationThreshold ?? 40
|
|
238
241
|
});
|
|
239
|
-
|
|
242
|
+
o = i(e, r, B, t.reportAllChanges), l && (l.observe({
|
|
240
243
|
type: "first-input",
|
|
241
244
|
buffered: true
|
|
242
245
|
}), s.onHidden(() => {
|
|
243
|
-
h(
|
|
246
|
+
h(l.takeRecords()), o(true);
|
|
244
247
|
}), n(() => {
|
|
245
|
-
a.p(),
|
|
248
|
+
a.p(), r = c("INP"), o = i(e, r, B, t.reportAllChanges);
|
|
246
249
|
}));
|
|
247
250
|
});
|
|
248
251
|
}, e.onLCP = (e, t = {}) => {
|
|
249
252
|
y(() => {
|
|
250
|
-
const
|
|
253
|
+
const o = p();
|
|
251
254
|
let a,
|
|
252
255
|
h = c("LCP");
|
|
253
|
-
const
|
|
256
|
+
const u = d(t, S),
|
|
254
257
|
m = e => {
|
|
255
258
|
t.reportAllChanges || (e = e.slice(-1));
|
|
256
|
-
for (const t of e)
|
|
259
|
+
for (const t of e) u.h(t), t.startTime < o.firstHiddenTime && (h.value = Math.max(t.startTime - r(), 0), h.entries = [t], a());
|
|
257
260
|
},
|
|
258
|
-
|
|
259
|
-
if (
|
|
260
|
-
a = i(e, h,
|
|
261
|
-
const
|
|
262
|
-
m(
|
|
261
|
+
g = f("largest-contentful-paint", m);
|
|
262
|
+
if (g) {
|
|
263
|
+
a = i(e, h, q, t.reportAllChanges);
|
|
264
|
+
const o = l(() => {
|
|
265
|
+
m(g.takeRecords()), g.disconnect(), a(true);
|
|
263
266
|
}),
|
|
264
|
-
|
|
265
|
-
e.isTrusted && (A(
|
|
267
|
+
r = e => {
|
|
268
|
+
e.isTrusted && (A(o), removeEventListener(e.type, r, {
|
|
266
269
|
capture: true
|
|
267
270
|
}));
|
|
268
271
|
};
|
|
269
|
-
for (const e of ["keydown", "click", "visibilitychange"]) addEventListener(e,
|
|
272
|
+
for (const e of ["keydown", "click", "visibilitychange"]) addEventListener(e, r, {
|
|
270
273
|
capture: true
|
|
271
274
|
});
|
|
272
275
|
n(n => {
|
|
273
|
-
h = c("LCP"), a = i(e, h,
|
|
276
|
+
h = c("LCP"), a = i(e, h, q, t.reportAllChanges), s(() => {
|
|
274
277
|
h.value = performance.now() - n.timeStamp, a(true);
|
|
275
278
|
});
|
|
276
279
|
});
|
|
@@ -278,11 +281,11 @@
|
|
|
278
281
|
});
|
|
279
282
|
}, e.onTTFB = (e, t = {}) => {
|
|
280
283
|
let s = c("TTFB"),
|
|
281
|
-
a = i(e, s,
|
|
284
|
+
a = i(e, s, N, t.reportAllChanges);
|
|
282
285
|
H(() => {
|
|
283
|
-
const d =
|
|
284
|
-
d && (s.value = Math.max(d.responseStart -
|
|
285
|
-
s = c("TTFB", 0), a = i(e, s,
|
|
286
|
+
const d = o();
|
|
287
|
+
d && (s.value = Math.max(d.responseStart - r(), 0), s.entries = [d], a(true), n(() => {
|
|
288
|
+
s = c("TTFB", 0), a = i(e, s, N, t.reportAllChanges), a(true);
|
|
286
289
|
}));
|
|
287
290
|
});
|
|
288
291
|
}, e;
|
|
@@ -337,4 +340,4 @@ function addCWVTracking({
|
|
|
337
340
|
}
|
|
338
341
|
|
|
339
342
|
export { addCWVTracking as default };
|
|
340
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3d2Lm1hcC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vbm9kZV9tb2R1bGVzL3dlYi12aXRhbHMvZGlzdC93ZWItdml0YWxzLmlpZmUuanMiLCIuLi8uLi9wbHVnaW5zL2N3di5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgd2ViVml0YWxzPWZ1bmN0aW9uKGUpe1widXNlIHN0cmljdFwiO2xldCB0PS0xO2NvbnN0IG49ZT0+e2FkZEV2ZW50TGlzdGVuZXIoXCJwYWdlc2hvd1wiLChuPT57bi5wZXJzaXN0ZWQmJih0PW4udGltZVN0YW1wLGUobikpfSksITApfSxpPShlLHQsbixpKT0+e2xldCBzLHI7cmV0dXJuIG89Pnt0LnZhbHVlPj0wJiYob3x8aSkmJihyPXQudmFsdWUtKHM/PzApLChyfHx2b2lkIDA9PT1zKSYmKHM9dC52YWx1ZSx0LmRlbHRhPXIsdC5yYXRpbmc9KChlLHQpPT5lPnRbMV0/XCJwb29yXCI6ZT50WzBdP1wibmVlZHMtaW1wcm92ZW1lbnRcIjpcImdvb2RcIikodC52YWx1ZSxuKSxlKHQpKSl9fSxzPWU9PntyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCgpPT5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCgpPT5lKCkpKSkpfSxyPSgpPT57Y29uc3QgZT1wZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlUeXBlKFwibmF2aWdhdGlvblwiKVswXTtpZihlJiZlLnJlc3BvbnNlU3RhcnQ+MCYmZS5yZXNwb25zZVN0YXJ0PHBlcmZvcm1hbmNlLm5vdygpKXJldHVybiBlfSxvPSgpPT57Y29uc3QgZT1yKCk7cmV0dXJuIGU/LmFjdGl2YXRpb25TdGFydD8/MH0sYz0oZSxuPS0xKT0+e2NvbnN0IGk9cigpO2xldCBzPVwibmF2aWdhdGVcIjt0Pj0wP3M9XCJiYWNrLWZvcndhcmQtY2FjaGVcIjppJiYoZG9jdW1lbnQucHJlcmVuZGVyaW5nfHxvKCk+MD9zPVwicHJlcmVuZGVyXCI6ZG9jdW1lbnQud2FzRGlzY2FyZGVkP3M9XCJyZXN0b3JlXCI6aS50eXBlJiYocz1pLnR5cGUucmVwbGFjZSgvXy9nLFwiLVwiKSkpO3JldHVybntuYW1lOmUsdmFsdWU6bixyYXRpbmc6XCJnb29kXCIsZGVsdGE6MCxlbnRyaWVzOltdLGlkOmB2NS0ke0RhdGUubm93KCl9LSR7TWF0aC5mbG9vcig4OTk5OTk5OTk5OTk5Kk1hdGgucmFuZG9tKCkpKzFlMTJ9YCxuYXZpZ2F0aW9uVHlwZTpzfX0sYT1uZXcgV2Vha01hcDtmdW5jdGlvbiBkKGUsdCl7cmV0dXJuIGEuZ2V0KGUpfHxhLnNldChlLG5ldyB0KSxhLmdldChlKX1jbGFzcyBoe3Q7aT0wO289W107aChlKXtpZihlLmhhZFJlY2VudElucHV0KXJldHVybjtjb25zdCB0PXRoaXMub1swXSxuPXRoaXMuby5hdCgtMSk7dGhpcy5pJiZ0JiZuJiZlLnN0YXJ0VGltZS1uLnN0YXJ0VGltZTwxZTMmJmUuc3RhcnRUaW1lLXQuc3RhcnRUaW1lPDVlMz8odGhpcy5pKz1lLnZhbHVlLHRoaXMuby5wdXNoKGUpKToodGhpcy5pPWUudmFsdWUsdGhpcy5vPVtlXSksdGhpcy50Py4oZSl9fWNvbnN0IGY9KGUsdCxuPXt9KT0+e3RyeXtpZihQZXJmb3JtYW5jZU9ic2VydmVyLnN1cHBvcnRlZEVudHJ5VHlwZXMuaW5jbHVkZXMoZSkpe2NvbnN0IGk9bmV3IFBlcmZvcm1hbmNlT2JzZXJ2ZXIoKGU9PntQcm9taXNlLnJlc29sdmUoKS50aGVuKCgoKT0+e3QoZS5nZXRFbnRyaWVzKCkpfSkpfSkpO3JldHVybiBpLm9ic2VydmUoe3R5cGU6ZSxidWZmZXJlZDohMCwuLi5ufSksaX19Y2F0Y2h7fX0sdT1lPT57bGV0IHQ9ITE7cmV0dXJuKCk9Pnt0fHwoZSgpLHQ9ITApfX07bGV0IGw9LTE7Y29uc3QgbT1uZXcgU2V0LHY9KCk9PlwiaGlkZGVuXCIhPT1kb2N1bWVudC52aXNpYmlsaXR5U3RhdGV8fGRvY3VtZW50LnByZXJlbmRlcmluZz8xLzA6MCxwPWU9PntpZihcImhpZGRlblwiPT09ZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlKXtpZihcInZpc2liaWxpdHljaGFuZ2VcIj09PWUudHlwZSlmb3IoY29uc3QgZSBvZiBtKWUoKTtpc0Zpbml0ZShsKXx8KGw9XCJ2aXNpYmlsaXR5Y2hhbmdlXCI9PT1lLnR5cGU/ZS50aW1lU3RhbXA6MCxyZW1vdmVFdmVudExpc3RlbmVyKFwicHJlcmVuZGVyaW5nY2hhbmdlXCIscCwhMCkpfX0sZz0oKT0+e2lmKGw8MCl7Y29uc3QgZT1vKCksdD1kb2N1bWVudC5wcmVyZW5kZXJpbmc/dm9pZCAwOmdsb2JhbFRoaXMucGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5VHlwZShcInZpc2liaWxpdHktc3RhdGVcIikuZmlsdGVyKCh0PT5cImhpZGRlblwiPT09dC5uYW1lJiZ0LnN0YXJ0VGltZT5lKSlbMF0/LnN0YXJ0VGltZTtsPXQ/P3YoKSxhZGRFdmVudExpc3RlbmVyKFwidmlzaWJpbGl0eWNoYW5nZVwiLHAsITApLGFkZEV2ZW50TGlzdGVuZXIoXCJwcmVyZW5kZXJpbmdjaGFuZ2VcIixwLCEwKSxuKCgoKT0+e3NldFRpbWVvdXQoKCgpPT57bD12KCl9KSl9KSl9cmV0dXJue2dldCBmaXJzdEhpZGRlblRpbWUoKXtyZXR1cm4gbH0sb25IaWRkZW4oZSl7bS5hZGQoZSl9fX0seT1lPT57ZG9jdW1lbnQucHJlcmVuZGVyaW5nP2FkZEV2ZW50TGlzdGVuZXIoXCJwcmVyZW5kZXJpbmdjaGFuZ2VcIiwoKCk9PmUoKSksITApOmUoKX0sYj1bMTgwMCwzZTNdLEU9KGUsdD17fSk9Pnt5KCgoKT0+e2NvbnN0IHI9ZygpO2xldCBhLGQ9YyhcIkZDUFwiKTtjb25zdCBoPWYoXCJwYWludFwiLChlPT57Zm9yKGNvbnN0IHQgb2YgZSlcImZpcnN0LWNvbnRlbnRmdWwtcGFpbnRcIj09PXQubmFtZSYmKGguZGlzY29ubmVjdCgpLHQuc3RhcnRUaW1lPHIuZmlyc3RIaWRkZW5UaW1lJiYoZC52YWx1ZT1NYXRoLm1heCh0LnN0YXJ0VGltZS1vKCksMCksZC5lbnRyaWVzLnB1c2godCksYSghMCkpKX0pKTtoJiYoYT1pKGUsZCxiLHQucmVwb3J0QWxsQ2hhbmdlcyksbigobj0+e2Q9YyhcIkZDUFwiKSxhPWkoZSxkLGIsdC5yZXBvcnRBbGxDaGFuZ2VzKSxzKCgoKT0+e2QudmFsdWU9cGVyZm9ybWFuY2Uubm93KCktbi50aW1lU3RhbXAsYSghMCl9KSl9KSkpfSkpfSxMPVsuMSwuMjVdO2xldCBQPTAsVD0xLzAsXz0wO2NvbnN0IE09ZT0+e2Zvcihjb25zdCB0IG9mIGUpdC5pbnRlcmFjdGlvbklkJiYoVD1NYXRoLm1pbihULHQuaW50ZXJhY3Rpb25JZCksXz1NYXRoLm1heChfLHQuaW50ZXJhY3Rpb25JZCksUD1fPyhfLVQpLzcrMTowKX07bGV0IHc7Y29uc3QgQz0oKT0+dz9QOnBlcmZvcm1hbmNlLmludGVyYWN0aW9uQ291bnQ/PzAsST0oKT0+e1wiaW50ZXJhY3Rpb25Db3VudFwiaW4gcGVyZm9ybWFuY2V8fHd8fCh3PWYoXCJldmVudFwiLE0se3R5cGU6XCJldmVudFwiLGJ1ZmZlcmVkOiEwLGR1cmF0aW9uVGhyZXNob2xkOjB9KSl9O2xldCBGPTA7Y2xhc3Mga3t1PVtdO2w9bmV3IE1hcDttO3Y7cCgpe0Y9QygpLHRoaXMudS5sZW5ndGg9MCx0aGlzLmwuY2xlYXIoKX1MKCl7Y29uc3QgZT1NYXRoLm1pbih0aGlzLnUubGVuZ3RoLTEsTWF0aC5mbG9vcigoQygpLUYpLzUwKSk7cmV0dXJuIHRoaXMudVtlXX1oKGUpe2lmKHRoaXMubT8uKGUpLCFlLmludGVyYWN0aW9uSWQmJlwiZmlyc3QtaW5wdXRcIiE9PWUuZW50cnlUeXBlKXJldHVybjtjb25zdCB0PXRoaXMudS5hdCgtMSk7bGV0IG49dGhpcy5sLmdldChlLmludGVyYWN0aW9uSWQpO2lmKG58fHRoaXMudS5sZW5ndGg8MTB8fGUuZHVyYXRpb24+dC5QKXtpZihuP2UuZHVyYXRpb24+bi5QPyhuLmVudHJpZXM9W2VdLG4uUD1lLmR1cmF0aW9uKTplLmR1cmF0aW9uPT09bi5QJiZlLnN0YXJ0VGltZT09PW4uZW50cmllc1swXS5zdGFydFRpbWUmJm4uZW50cmllcy5wdXNoKGUpOihuPXtpZDplLmludGVyYWN0aW9uSWQsZW50cmllczpbZV0sUDplLmR1cmF0aW9ufSx0aGlzLmwuc2V0KG4uaWQsbiksdGhpcy51LnB1c2gobikpLHRoaXMudS5zb3J0KCgoZSx0KT0+dC5QLWUuUCkpLHRoaXMudS5sZW5ndGg+MTApe2NvbnN0IGU9dGhpcy51LnNwbGljZSgxMCk7Zm9yKGNvbnN0IHQgb2YgZSl0aGlzLmwuZGVsZXRlKHQuaWQpfXRoaXMudj8uKG4pfX19Y29uc3QgQT1lPT57Y29uc3QgdD1nbG9iYWxUaGlzLnJlcXVlc3RJZGxlQ2FsbGJhY2t8fHNldFRpbWVvdXQ7XCJoaWRkZW5cIj09PWRvY3VtZW50LnZpc2liaWxpdHlTdGF0ZT9lKCk6KGU9dShlKSxhZGRFdmVudExpc3RlbmVyKFwidmlzaWJpbGl0eWNoYW5nZVwiLGUse29uY2U6ITAsY2FwdHVyZTohMH0pLHQoKCgpPT57ZSgpLHJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ2aXNpYmlsaXR5Y2hhbmdlXCIsZSx7Y2FwdHVyZTohMH0pfSkpKX0sQj1bMjAwLDUwMF07Y2xhc3MgU3ttO2goZSl7dGhpcy5tPy4oZSl9fWNvbnN0IE49WzI1MDAsNGUzXSxxPVs4MDAsMTgwMF0sSD1lPT57ZG9jdW1lbnQucHJlcmVuZGVyaW5nP3koKCgpPT5IKGUpKSk6XCJjb21wbGV0ZVwiIT09ZG9jdW1lbnQucmVhZHlTdGF0ZT9hZGRFdmVudExpc3RlbmVyKFwibG9hZFwiLCgoKT0+SChlKSksITApOnNldFRpbWVvdXQoZSl9O3JldHVybiBlLkNMU1RocmVzaG9sZHM9TCxlLkZDUFRocmVzaG9sZHM9YixlLklOUFRocmVzaG9sZHM9QixlLkxDUFRocmVzaG9sZHM9TixlLlRURkJUaHJlc2hvbGRzPXEsZS5vbkNMUz0oZSx0PXt9KT0+e2NvbnN0IHI9ZygpO0UodSgoKCk9PntsZXQgbyxhPWMoXCJDTFNcIiwwKTtjb25zdCB1PWQodCxoKSxsPWU9Pntmb3IoY29uc3QgdCBvZiBlKXUuaCh0KTt1Lmk+YS52YWx1ZSYmKGEudmFsdWU9dS5pLGEuZW50cmllcz11Lm8sbygpKX0sbT1mKFwibGF5b3V0LXNoaWZ0XCIsbCk7bSYmKG89aShlLGEsTCx0LnJlcG9ydEFsbENoYW5nZXMpLHIub25IaWRkZW4oKCgpPT57bChtLnRha2VSZWNvcmRzKCkpLG8oITApfSkpLG4oKCgpPT57dS5pPTAsYT1jKFwiQ0xTXCIsMCksbz1pKGUsYSxMLHQucmVwb3J0QWxsQ2hhbmdlcykscygoKCk9Pm8oKSkpfSkpLHNldFRpbWVvdXQobykpfSkpKX0sZS5vbkZDUD1FLGUub25JTlA9KGUsdD17fSk9PntpZighZ2xvYmFsVGhpcy5QZXJmb3JtYW5jZUV2ZW50VGltaW5nfHwhKFwiaW50ZXJhY3Rpb25JZFwiaW4gUGVyZm9ybWFuY2VFdmVudFRpbWluZy5wcm90b3R5cGUpKXJldHVybjtjb25zdCBzPWcoKTt5KCgoKT0+e0koKTtsZXQgcixvPWMoXCJJTlBcIik7Y29uc3QgYT1kKHQsayksaD1lPT57QSgoKCk9Pntmb3IoY29uc3QgdCBvZiBlKWEuaCh0KTtjb25zdCB0PWEuTCgpO3QmJnQuUCE9PW8udmFsdWUmJihvLnZhbHVlPXQuUCxvLmVudHJpZXM9dC5lbnRyaWVzLHIoKSl9KSl9LHU9ZihcImV2ZW50XCIsaCx7ZHVyYXRpb25UaHJlc2hvbGQ6dC5kdXJhdGlvblRocmVzaG9sZD8/NDB9KTtyPWkoZSxvLEIsdC5yZXBvcnRBbGxDaGFuZ2VzKSx1JiYodS5vYnNlcnZlKHt0eXBlOlwiZmlyc3QtaW5wdXRcIixidWZmZXJlZDohMH0pLHMub25IaWRkZW4oKCgpPT57aCh1LnRha2VSZWNvcmRzKCkpLHIoITApfSkpLG4oKCgpPT57YS5wKCksbz1jKFwiSU5QXCIpLHI9aShlLG8sQix0LnJlcG9ydEFsbENoYW5nZXMpfSkpKX0pKX0sZS5vbkxDUD0oZSx0PXt9KT0+e3koKCgpPT57Y29uc3Qgcj1nKCk7bGV0IGEsaD1jKFwiTENQXCIpO2NvbnN0IGw9ZCh0LFMpLG09ZT0+e3QucmVwb3J0QWxsQ2hhbmdlc3x8KGU9ZS5zbGljZSgtMSkpO2Zvcihjb25zdCB0IG9mIGUpbC5oKHQpLHQuc3RhcnRUaW1lPHIuZmlyc3RIaWRkZW5UaW1lJiYoaC52YWx1ZT1NYXRoLm1heCh0LnN0YXJ0VGltZS1vKCksMCksaC5lbnRyaWVzPVt0XSxhKCkpfSx2PWYoXCJsYXJnZXN0LWNvbnRlbnRmdWwtcGFpbnRcIixtKTtpZih2KXthPWkoZSxoLE4sdC5yZXBvcnRBbGxDaGFuZ2VzKTtjb25zdCByPXUoKCgpPT57bSh2LnRha2VSZWNvcmRzKCkpLHYuZGlzY29ubmVjdCgpLGEoITApfSkpLG89ZT0+e2UuaXNUcnVzdGVkJiYoQShyKSxyZW1vdmVFdmVudExpc3RlbmVyKGUudHlwZSxvLHtjYXB0dXJlOiEwfSkpfTtmb3IoY29uc3QgZSBvZltcImtleWRvd25cIixcImNsaWNrXCIsXCJ2aXNpYmlsaXR5Y2hhbmdlXCJdKWFkZEV2ZW50TGlzdGVuZXIoZSxvLHtjYXB0dXJlOiEwfSk7bigobj0+e2g9YyhcIkxDUFwiKSxhPWkoZSxoLE4sdC5yZXBvcnRBbGxDaGFuZ2VzKSxzKCgoKT0+e2gudmFsdWU9cGVyZm9ybWFuY2Uubm93KCktbi50aW1lU3RhbXAsYSghMCl9KSl9KSl9fSkpfSxlLm9uVFRGQj0oZSx0PXt9KT0+e2xldCBzPWMoXCJUVEZCXCIpLGE9aShlLHMscSx0LnJlcG9ydEFsbENoYW5nZXMpO0goKCgpPT57Y29uc3QgZD1yKCk7ZCYmKHMudmFsdWU9TWF0aC5tYXgoZC5yZXNwb25zZVN0YXJ0LW8oKSwwKSxzLmVudHJpZXM9W2RdLGEoITApLG4oKCgpPT57cz1jKFwiVFRGQlwiLDApLGE9aShlLHMscSx0LnJlcG9ydEFsbENoYW5nZXMpLGEoITApfSkpKX0pKX0sZX0oe30pO1xuIiwiLypcbiAqIENvcHlyaWdodCAyMDI0IEFkb2JlLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHlcbiAqIG9mIHRoZSBMaWNlbnNlIGF0IGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXJcbiAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIFJFUFJFU0VOVEFUSU9OU1xuICogT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlXG4gKiBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWxlblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llcywgaW1wb3J0L25vLXJlbGF0aXZlLXBhY2thZ2VzLCBuby11bnVzZWQtdmFyc1xuaW1wb3J0ICogYXMgd2ViVml0YWxzIGZyb20gJy4uL25vZGVfbW9kdWxlcy93ZWItdml0YWxzL2Rpc3Qvd2ViLXZpdGFscy5paWZlLmpzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gYWRkQ1dWVHJhY2tpbmcoe1xuICBzYW1wbGVSVU0sIHNvdXJjZVNlbGVjdG9yLCB0YXJnZXRTZWxlY3RvciwgZmZsYWdzLFxufSkge1xuICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgY3d2U2NyaXB0ID0gbmV3IFVSTCgnLnJ1bS93ZWItdml0YWxzL2Rpc3Qvd2ViLXZpdGFscy5paWZlLmpzJywgc2FtcGxlUlVNLmJhc2VVUkwpLmhyZWY7XG4gICAgICAvKiBjOCBpZ25vcmUgbmV4dCAzICovXG4gICAgICBpZiAoZG9jdW1lbnQucXVlcnlTZWxlY3Rvcihgc2NyaXB0W3NyYz1cIiR7Y3d2U2NyaXB0fVwiXWApKSB7XG4gICAgICAgIC8vIHdlYiB2aXRhbHMgc2NyaXB0IGhhcyBiZWVuIGxvYWRlZCBhbHJlYWR5XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgICAgc2NyaXB0LnNyYyA9IGN3dlNjcmlwdDtcbiAgICAgIHNjcmlwdC5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHN0b3JlQ1dWID0gKG1lYXN1cmVtZW50KSA9PiB7XG4gICAgICAgICAgY29uc3QgZGF0YSA9IHsgY3d2OiB7fSB9O1xuICAgICAgICAgIGRhdGEuY3d2W21lYXN1cmVtZW50Lm5hbWVdID0gbWVhc3VyZW1lbnQudmFsdWU7XG4gICAgICAgICAgaWYgKG1lYXN1cmVtZW50Lm5hbWUgPT09ICdMQ1AnICYmIG1lYXN1cmVtZW50LmVudHJpZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3QgeyBlbGVtZW50IH0gPSBtZWFzdXJlbWVudC5lbnRyaWVzLnBvcCgpO1xuICAgICAgICAgICAgZGF0YS50YXJnZXQgPSB0YXJnZXRTZWxlY3RvcihlbGVtZW50KTtcbiAgICAgICAgICAgIGRhdGEuc291cmNlID0gc291cmNlU2VsZWN0b3IoZWxlbWVudCkgfHwgKGVsZW1lbnQgJiYgZWxlbWVudC5vdXRlckhUTUwuc2xpY2UoMCwgMzApKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgc2FtcGxlUlVNKCdjd3YnLCBkYXRhKTtcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBpc0VhZ2VyID0gKG1ldHJpYykgPT4gWydDTFMnLCAnTENQJ10uaW5jbHVkZXMobWV0cmljKTtcblxuICAgICAgICAvLyBXaGVuIGxvYWRpbmcgYHdlYi12aXRhbHNgIHVzaW5nIGEgY2xhc3NpYyBzY3JpcHQsIGFsbCB0aGUgcHVibGljXG4gICAgICAgIC8vIG1ldGhvZHMgY2FuIGJlIGZvdW5kIG9uIHRoZSBgd2ViVml0YWxzYCBnbG9iYWwgbmFtZXNwYWNlLlxuICAgICAgICBbJ0lOUCcsICdUVEZCJywgJ0NMUycsICdMQ1AnXS5mb3JFYWNoKChtZXRyaWMpID0+IHtcbiAgICAgICAgICBjb25zdCBtZXRyaWNGbiA9IHdpbmRvdy53ZWJWaXRhbHNbYG9uJHttZXRyaWN9YF07XG4gICAgICAgICAgaWYgKHR5cGVvZiBtZXRyaWNGbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgbGV0IG9wdHMgPSB7fTtcbiAgICAgICAgICAgIGZmbGFncy5lbmFibGVkKCdlYWdlcmN3dicsICgpID0+IHtcbiAgICAgICAgICAgICAgb3B0cyA9IHsgcmVwb3J0QWxsQ2hhbmdlczogaXNFYWdlcihtZXRyaWMpIH07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIG1ldHJpY0ZuKHN0b3JlQ1dWLCBvcHRzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfTtcbiAgICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc2NyaXB0KTtcbiAgICAgIC8qIGM4IGlnbm9yZSBuZXh0IDMgKi9cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgLy8gc29tZXRoaW5nIHdlbnQgd3JvbmdcbiAgICB9XG4gIH0sIDIwMDApOyAvLyB3YWl0IGZvciBkZWxheWVkXG59XG4iXSwibmFtZXMiOlsiZSIsInQiLCJuIiwiYWRkRXZlbnRMaXN0ZW5lciIsInBlcnNpc3RlZCIsInRpbWVTdGFtcCIsImkiLCJzIiwiciIsIm8iLCJ2YWx1ZSIsImRlbHRhIiwicmF0aW5nIiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwicGVyZm9ybWFuY2UiLCJnZXRFbnRyaWVzQnlUeXBlIiwicmVzcG9uc2VTdGFydCIsIm5vdyIsImFjdGl2YXRpb25TdGFydCIsImMiLCJkb2N1bWVudCIsInByZXJlbmRlcmluZyIsIndhc0Rpc2NhcmRlZCIsInR5cGUiLCJyZXBsYWNlIiwibmFtZSIsImVudHJpZXMiLCJpZCIsIkRhdGUiLCJNYXRoIiwiZmxvb3IiLCJyYW5kb20iLCJuYXZpZ2F0aW9uVHlwZSIsImEiLCJXZWFrTWFwIiwiZCIsImdldCIsInNldCIsImgiLCJoYWRSZWNlbnRJbnB1dCIsImF0Iiwic3RhcnRUaW1lIiwicHVzaCIsImYiLCJQZXJmb3JtYW5jZU9ic2VydmVyIiwic3VwcG9ydGVkRW50cnlUeXBlcyIsImluY2x1ZGVzIiwiUHJvbWlzZSIsInJlc29sdmUiLCJ0aGVuIiwiZ2V0RW50cmllcyIsIm9ic2VydmUiLCJidWZmZXJlZCIsInUiLCJsIiwibSIsIlNldCIsInYiLCJ2aXNpYmlsaXR5U3RhdGUiLCJwIiwiaXNGaW5pdGUiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiZyIsImdsb2JhbFRoaXMiLCJmaWx0ZXIiLCJzZXRUaW1lb3V0IiwiZmlyc3RIaWRkZW5UaW1lIiwib25IaWRkZW4iLCJhZGQiLCJ5IiwiYiIsIkUiLCJkaXNjb25uZWN0IiwibWF4IiwicmVwb3J0QWxsQ2hhbmdlcyIsIkwiLCJQIiwiVCIsIl8iLCJNIiwiaW50ZXJhY3Rpb25JZCIsIm1pbiIsInciLCJDIiwiaW50ZXJhY3Rpb25Db3VudCIsIkkiLCJkdXJhdGlvblRocmVzaG9sZCIsIkYiLCJrIiwiTWFwIiwibGVuZ3RoIiwiY2xlYXIiLCJlbnRyeVR5cGUiLCJkdXJhdGlvbiIsInNvcnQiLCJzcGxpY2UiLCJkZWxldGUiLCJBIiwicmVxdWVzdElkbGVDYWxsYmFjayIsIm9uY2UiLCJjYXB0dXJlIiwiQiIsIlMiLCJOIiwicSIsIkgiLCJyZWFkeVN0YXRlIiwiQ0xTVGhyZXNob2xkcyIsIkZDUFRocmVzaG9sZHMiLCJJTlBUaHJlc2hvbGRzIiwiTENQVGhyZXNob2xkcyIsIlRURkJUaHJlc2hvbGRzIiwib25DTFMiLCJ0YWtlUmVjb3JkcyIsIm9uRkNQIiwib25JTlAiLCJQZXJmb3JtYW5jZUV2ZW50VGltaW5nIiwicHJvdG90eXBlIiwib25MQ1AiLCJzbGljZSIsImlzVHJ1c3RlZCIsIm9uVFRGQiIsImFkZENXVlRyYWNraW5nIiwic2FtcGxlUlVNIiwic291cmNlU2VsZWN0b3IiLCJ0YXJnZXRTZWxlY3RvciIsImZmbGFncyIsImN3dlNjcmlwdCIsIlVSTCIsImJhc2VVUkwiLCJocmVmIiwicXVlcnlTZWxlY3RvciIsInNjcmlwdCIsImNyZWF0ZUVsZW1lbnQiLCJzcmMiLCJvbmxvYWQiLCJzdG9yZUNXViIsIm1lYXN1cmVtZW50IiwiZGF0YSIsImN3diIsImVsZW1lbnQiLCJwb3AiLCJ0YXJnZXQiLCJzb3VyY2UiLCJvdXRlckhUTUwiLCJpc0VhZ2VyIiwibWV0cmljIiwiZm9yRWFjaCIsIm1ldHJpY0ZuIiwid2luZG93Iiwid2ViVml0YWxzIiwib3B0cyIsImVuYWJsZWQiLCJoZWFkIiwiYXBwZW5kQ2hpbGQiLCJlcnJvciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Q0FBYyxVQUFTQSxDQUFDLEVBQUM7O0VBQWMsSUFBSUMsQ0FBQyxHQUFDLEVBQUU7RUFBQyxNQUFNQyxDQUFDLEdBQUNGLENBQUMsSUFBRTtBQUFDRyxNQUFBQSxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUVELENBQUMsSUFBRTtBQUFDQSxRQUFBQSxDQUFDLENBQUNFLFNBQVMsS0FBR0gsQ0FBQyxHQUFDQyxDQUFDLENBQUNHLFNBQVMsRUFBQ0wsQ0FBQyxDQUFDRSxDQUFDLENBQUMsQ0FBQztNQUFBLENBQUMsRUFBRSxJQUFFLENBQUM7SUFBQSxDQUFDO0lBQUNJLENBQUMsR0FBQ0EsQ0FBQ04sQ0FBQyxFQUFDQyxDQUFDLEVBQUNDLENBQUMsRUFBQ0ksQ0FBQyxLQUFHO01BQUMsSUFBSUMsQ0FBQyxFQUFDQyxDQUFDO0FBQUMsTUFBQSxPQUFPQyxDQUFDLElBQUU7QUFBQ1IsUUFBQUEsQ0FBQyxDQUFDUyxLQUFLLElBQUUsQ0FBQyxLQUFHRCxDQUFDLElBQUVILENBQUMsQ0FB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V0FBVyxDQUFDL0gsS0FBSztBQUM5QyxVQUFBLElBQUkrSCxXQUFXLENBQUNoSCxJQUFJLEtBQUssS0FBSyxJQUFJZ0gsV0FBVyxDQUFDL0csT0FBTyxDQUFDZ0UsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNoRSxNQUFNO0FBQUVrRCxjQUFBQTtBQUFRLGFBQUMsR0FBR0gsV0FBVyxDQUFDL0csT0FBTyxDQUFDbUgsR0FBRyxFQUFFO0FBQzdDSCxZQUFBQSxJQUFJLENBQUNJLE1BQU0sR0FBR2pCLGNBQWMsQ0FBQ2UsT0FBTyxDQUFDO0FBQ3JDRixZQUFBQSxJQUFJLENBQUNLLE1BQU0sR0FBR25CLGNBQWMsQ0FBQ2dCLE9BQU8sQ0FBQyxJQUFLQSxPQUFPLElBQUlBLE9BQU8sQ0FBQ0ksU0FBUyxDQUFDekIsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUU7QUFDdEYsVUFBQTtBQUNBSSxVQUFBQSxTQUFTLENBQUMsS0FBSyxFQUFFZSxJQUFJLENBQUM7UUFDeEIsQ0FBQztBQUVELFFBQUEsTUFBTU8sT0FBTyxHQUFJQyxNQUFNLElBQUssQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUNwRyxRQUFRLENBQUNvRyxNQUFNLENBQUM7QUFJM0QsUUFBQSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDQyxPQUFPLENBQUVELE1BQU0sSUFBSztVQUNoRCxNQUFNRSxRQUFRLEdBQUdDLE1BQU0sQ0FBQ0MsU0FBUyxDQUFDLENBQUEsRUFBQSxFQUFLSixNQUFNLENBQUEsQ0FBRSxDQUFDO0FBQ2hELFVBQUEsSUFBSSxPQUFPRSxRQUFRLEtBQUssVUFBVSxFQUFFO1lBQ2xDLElBQUlHLElBQUksR0FBRyxFQUFFO0FBQ2J6QixZQUFBQSxNQUFNLENBQUMwQixPQUFPLENBQUMsVUFBVSxFQUFFLE1BQU07QUFDL0JELGNBQUFBLElBQUksR0FBRztnQkFBRTdFLGdCQUFnQixFQUFFdUUsT0FBTyxDQUFDQyxNQUFNO2VBQUc7QUFDOUMsWUFBQSxDQUFDLENBQUM7QUFDRkUsWUFBQUEsUUFBUSxDQUFDWixRQUFRLEVBQUVlLElBQUksQ0FBQztBQUMxQixVQUFBO0FBQ0YsUUFBQSxDQUFDLENBQUM7TUFDSixDQUFDO0FBQ0RuSSxNQUFBQSxRQUFRLENBQUNxSSxJQUFJLENBQUNDLFdBQVcsQ0FBQ3RCLE1BQU0sQ0FBQztBQUVuQyxJQUFBLENBQUMsQ0FBQyxPQUFPdUIsS0FBSyxFQUFFLENBRWhCO0VBQ0YsQ0FBQyxFQUFFLElBQUksQ0FBQztBQUNWOzs7OyIsInhfZ29vZ2xlX2lnbm9yZUxpc3QiOlswXX0=
|
|
343
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3d2Lm1hcC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vbm9kZV9tb2R1bGVzL3dlYi12aXRhbHMvZGlzdC93ZWItdml0YWxzLmlpZmUuanMiLCIuLi8uLi9wbHVnaW5zL2N3di5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgd2ViVml0YWxzPWZ1bmN0aW9uKGUpe1widXNlIHN0cmljdFwiO2xldCB0PS0xO2NvbnN0IG49ZT0+e2FkZEV2ZW50TGlzdGVuZXIoXCJwYWdlc2hvd1wiLG49PntuLnBlcnNpc3RlZCYmKHQ9bi50aW1lU3RhbXAsZShuKSl9LCEwKX0saT0oZSx0LG4saSk9PntsZXQgcyxvO3JldHVybiByPT57dC52YWx1ZT49MCYmKHJ8fGkpJiYobz10LnZhbHVlLShzPz8wKSwob3x8dm9pZCAwPT09cykmJihzPXQudmFsdWUsdC5kZWx0YT1vLHQucmF0aW5nPSgoZSx0KT0+ZT50WzFdP1wicG9vclwiOmU+dFswXT9cIm5lZWRzLWltcHJvdmVtZW50XCI6XCJnb29kXCIpKHQudmFsdWUsbiksZSh0KSkpfX0scz1lPT57cmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZSkpfSxvPSgpPT57Y29uc3QgZT1wZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlUeXBlKFwibmF2aWdhdGlvblwiKVswXTtpZihlJiZlLnJlc3BvbnNlU3RhcnQ+MCYmZS5yZXNwb25zZVN0YXJ0PHBlcmZvcm1hbmNlLm5vdygpKXJldHVybiBlfSxyPSgpPT5vKCk/LmFjdGl2YXRpb25TdGFydD8/MCxjPShlLG49LTEpPT57Y29uc3QgaT1vKCk7bGV0IHM9XCJuYXZpZ2F0ZVwiO3Q+PTA/cz1cImJhY2stZm9yd2FyZC1jYWNoZVwiOmkmJihkb2N1bWVudC5wcmVyZW5kZXJpbmd8fHIoKT4wP3M9XCJwcmVyZW5kZXJcIjpkb2N1bWVudC53YXNEaXNjYXJkZWQ/cz1cInJlc3RvcmVcIjppLnR5cGUmJihzPWkudHlwZS5yZXBsYWNlKC9fL2csXCItXCIpKSk7cmV0dXJue25hbWU6ZSx2YWx1ZTpuLHJhdGluZzpcImdvb2RcIixkZWx0YTowLGVudHJpZXM6W10saWQ6YHY1LSR7RGF0ZS5ub3coKX0tJHtNYXRoLmZsb29yKDg5OTk5OTk5OTk5OTkqTWF0aC5yYW5kb20oKSkrMWUxMn1gLG5hdmlnYXRpb25UeXBlOnN9fSxhPW5ldyBXZWFrTWFwO2Z1bmN0aW9uIGQoZSx0KXtyZXR1cm4gYS5nZXQoZSl8fGEuc2V0KGUsbmV3IHQpLGEuZ2V0KGUpfWNsYXNzIGh7dDtpPTA7bz1bXTtoKGUpe2lmKGUuaGFkUmVjZW50SW5wdXQpcmV0dXJuO2NvbnN0IHQ9dGhpcy5vWzBdLG49dGhpcy5vLmF0KC0xKTt0aGlzLmkmJnQmJm4mJmUuc3RhcnRUaW1lLW4uc3RhcnRUaW1lPDFlMyYmZS5zdGFydFRpbWUtdC5zdGFydFRpbWU8NWUzPyh0aGlzLmkrPWUudmFsdWUsdGhpcy5vLnB1c2goZSkpOih0aGlzLmk9ZS52YWx1ZSx0aGlzLm89W2VdKSx0aGlzLnQ/LihlKX19Y29uc3QgZj0oZSx0LG49e30pPT57dHJ5e2lmKFBlcmZvcm1hbmNlT2JzZXJ2ZXIuc3VwcG9ydGVkRW50cnlUeXBlcy5pbmNsdWRlcyhlKSl7Y29uc3QgaT1uZXcgUGVyZm9ybWFuY2VPYnNlcnZlcihlPT57cXVldWVNaWNyb3Rhc2soKCk9Pnt0KGUuZ2V0RW50cmllcygpKX0pfSk7cmV0dXJuIGkub2JzZXJ2ZSh7dHlwZTplLGJ1ZmZlcmVkOiEwLC4uLm59KSxpfX1jYXRjaHt9fSxsPWU9PntsZXQgdD0hMTtyZXR1cm4oKT0+e3R8fChlKCksdD0hMCl9fTtsZXQgdT0tMTtjb25zdCBtPW5ldyBTZXQsZz0oKT0+XCJoaWRkZW5cIiE9PWRvY3VtZW50LnZpc2liaWxpdHlTdGF0ZXx8ZG9jdW1lbnQucHJlcmVuZGVyaW5nPzEvMDowLHY9ZT0+e2lmKFwiaGlkZGVuXCI9PT1kb2N1bWVudC52aXNpYmlsaXR5U3RhdGUpe2lmKFwidmlzaWJpbGl0eWNoYW5nZVwiPT09ZS50eXBlKWZvcihjb25zdCBlIG9mIG0pZSgpO2lzRmluaXRlKHUpfHwodT1cInZpc2liaWxpdHljaGFuZ2VcIj09PWUudHlwZT9lLnRpbWVTdGFtcDowLHJlbW92ZUV2ZW50TGlzdGVuZXIoXCJwcmVyZW5kZXJpbmdjaGFuZ2VcIix2LCEwKSl9fSxwPSgpPT57aWYodTwwKXtjb25zdCBlPXIoKSx0PWRvY3VtZW50LnByZXJlbmRlcmluZz92b2lkIDA6Z2xvYmFsVGhpcy5wZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlUeXBlKFwidmlzaWJpbGl0eS1zdGF0ZVwiKS5maW5kKHQ9PlwiaGlkZGVuXCI9PT10Lm5hbWUmJnQuc3RhcnRUaW1lPj1lKT8uc3RhcnRUaW1lO3U9dD8/ZygpLGFkZEV2ZW50TGlzdGVuZXIoXCJ2aXNpYmlsaXR5Y2hhbmdlXCIsdiwhMCksYWRkRXZlbnRMaXN0ZW5lcihcInByZXJlbmRlcmluZ2NoYW5nZVwiLHYsITApLG4oKCk9PntzZXRUaW1lb3V0KCgpPT57dT1nKCl9KX0pfXJldHVybntnZXQgZmlyc3RIaWRkZW5UaW1lKCl7cmV0dXJuIHV9LG9uSGlkZGVuKGUpe20uYWRkKGUpfX19LHk9ZT0+e2RvY3VtZW50LnByZXJlbmRlcmluZz9hZGRFdmVudExpc3RlbmVyKFwicHJlcmVuZGVyaW5nY2hhbmdlXCIsZSwhMCk6ZSgpfSxUPVsxODAwLDNlM10sYj0oZSx0PXt9KT0+e3koKCk9Pntjb25zdCBvPXAoKTtsZXQgYSxkPWMoXCJGQ1BcIik7Y29uc3QgaD1mKFwicGFpbnRcIixlPT57Zm9yKGNvbnN0IHQgb2YgZSlcImZpcnN0LWNvbnRlbnRmdWwtcGFpbnRcIj09PXQubmFtZSYmKGguZGlzY29ubmVjdCgpLHQuc3RhcnRUaW1lPG8uZmlyc3RIaWRkZW5UaW1lJiYoZC52YWx1ZT1NYXRoLm1heCh0LnN0YXJ0VGltZS1yKCksMCksZC5lbnRyaWVzLnB1c2godCksYSghMCkpKX0pO2gmJihhPWkoZSxkLFQsdC5yZXBvcnRBbGxDaGFuZ2VzKSxuKG49PntkPWMoXCJGQ1BcIiksYT1pKGUsZCxULHQucmVwb3J0QWxsQ2hhbmdlcykscygoKT0+e2QudmFsdWU9cGVyZm9ybWFuY2Uubm93KCktbi50aW1lU3RhbXAsYSghMCl9KX0pKX0pfSxFPVsuMSwuMjVdO2xldCBMPTAsUD0xLzAsXz0wO2NvbnN0IE09ZT0+e2Zvcihjb25zdCB0IG9mIGUpdC5pbnRlcmFjdGlvbklkJiYoUD1NYXRoLm1pbihQLHQuaW50ZXJhY3Rpb25JZCksXz1NYXRoLm1heChfLHQuaW50ZXJhY3Rpb25JZCksTD1fPyhfLVApLzcrMTowKX07bGV0IHc7Y29uc3QgQz0oKT0+dz9MOnBlcmZvcm1hbmNlLmludGVyYWN0aW9uQ291bnQ/PzAsST0oKT0+e1wiaW50ZXJhY3Rpb25Db3VudFwiaW4gcGVyZm9ybWFuY2V8fHd8fCh3PWYoXCJldmVudFwiLE0se2R1cmF0aW9uVGhyZXNob2xkOjB9KSl9O2xldCBGPTA7Y2xhc3Mga3tsPVtdO3U9bmV3IE1hcDttO3Y7cCgpe0Y9QygpLHRoaXMubC5sZW5ndGg9MCx0aGlzLnUuY2xlYXIoKX1UKCl7Y29uc3QgZT1NYXRoLm1pbih0aGlzLmwubGVuZ3RoLTEsTWF0aC5mbG9vcigoQygpLUYpLzUwKSk7cmV0dXJuIHRoaXMubFtlXX1oKGUpe2lmKHRoaXMubT8uKGUpLCFlLmludGVyYWN0aW9uSWQmJlwiZmlyc3QtaW5wdXRcIiE9PWUuZW50cnlUeXBlKXJldHVybjtjb25zdCB0PXRoaXMubC5hdCgtMSk7bGV0IG49dGhpcy51LmdldChlLmludGVyYWN0aW9uSWQpO2lmKG58fHRoaXMubC5sZW5ndGg8MTB8fGUuZHVyYXRpb24+dC5MKXtpZihuP2UuZHVyYXRpb24+bi5MPyhuLmVudHJpZXM9W2VdLG4uTD1lLmR1cmF0aW9uKTplLmR1cmF0aW9uPT09bi5MJiZlLnN0YXJ0VGltZT09PW4uZW50cmllc1swXS5zdGFydFRpbWUmJm4uZW50cmllcy5wdXNoKGUpOihuPXtpZDplLmludGVyYWN0aW9uSWQsZW50cmllczpbZV0sTDplLmR1cmF0aW9ufSx0aGlzLnUuc2V0KG4uaWQsbiksdGhpcy5sLnB1c2gobikpLHRoaXMubC5zb3J0KChlLHQpPT50LkwtZS5MKSx0aGlzLmwubGVuZ3RoPjEwKXtjb25zdCBlPXRoaXMubC5zcGxpY2UoMTApO2Zvcihjb25zdCB0IG9mIGUpdGhpcy51LmRlbGV0ZSh0LmlkKX10aGlzLnY/LihuKX19fWNvbnN0IEE9ZT0+e2NvbnN0IHQ9Z2xvYmFsVGhpcy5yZXF1ZXN0SWRsZUNhbGxiYWNrfHxzZXRUaW1lb3V0LG49Z2xvYmFsVGhpcy5jYW5jZWxJZGxlQ2FsbGJhY2t8fGNsZWFyVGltZW91dDtpZihcImhpZGRlblwiPT09ZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlKWUoKTtlbHNle2NvbnN0IGk9bChlKTtsZXQgcz0tMTtjb25zdCBvPSgpPT57bihzKSxpKCl9O2FkZEV2ZW50TGlzdGVuZXIoXCJ2aXNpYmlsaXR5Y2hhbmdlXCIsbyx7b25jZTohMCxjYXB0dXJlOiEwfSkscz10KCgpPT57cmVtb3ZlRXZlbnRMaXN0ZW5lcihcInZpc2liaWxpdHljaGFuZ2VcIixvLHtjYXB0dXJlOiEwfSksaSgpfSl9fSxCPVsyMDAsNTAwXTtjbGFzcyBTe207aChlKXt0aGlzLm0/LihlKX19Y29uc3QgcT1bMjUwMCw0ZTNdLE49WzgwMCwxODAwXSxIPWU9Pntkb2N1bWVudC5wcmVyZW5kZXJpbmc/eSgoKT0+SChlKSk6XCJjb21wbGV0ZVwiIT09ZG9jdW1lbnQucmVhZHlTdGF0ZT9hZGRFdmVudExpc3RlbmVyKFwibG9hZFwiLCgpPT5IKGUpLCEwKTpzZXRUaW1lb3V0KGUpfTtyZXR1cm4gZS5DTFNUaHJlc2hvbGRzPUUsZS5GQ1BUaHJlc2hvbGRzPVQsZS5JTlBUaHJlc2hvbGRzPUIsZS5MQ1BUaHJlc2hvbGRzPXEsZS5UVEZCVGhyZXNob2xkcz1OLGUub25DTFM9KGUsdD17fSk9Pntjb25zdCBvPXAoKTtiKGwoKCk9PntsZXQgcixhPWMoXCJDTFNcIiwwKTtjb25zdCBsPWQodCxoKSx1PWU9Pntmb3IoY29uc3QgdCBvZiBlKWwuaCh0KTtsLmk+YS52YWx1ZSYmKGEudmFsdWU9bC5pLGEuZW50cmllcz1sLm8scigpKX0sbT1mKFwibGF5b3V0LXNoaWZ0XCIsdSk7bSYmKHI9aShlLGEsRSx0LnJlcG9ydEFsbENoYW5nZXMpLG8ub25IaWRkZW4oKCk9Pnt1KG0udGFrZVJlY29yZHMoKSkscighMCl9KSxuKCgpPT57bC5pPTAsYT1jKFwiQ0xTXCIsMCkscj1pKGUsYSxFLHQucmVwb3J0QWxsQ2hhbmdlcykscyhyKX0pLHNldFRpbWVvdXQocikpfSkpfSxlLm9uRkNQPWIsZS5vbklOUD0oZSx0PXt9KT0+e2lmKCFnbG9iYWxUaGlzLlBlcmZvcm1hbmNlRXZlbnRUaW1pbmd8fCEoXCJpbnRlcmFjdGlvbklkXCJpbiBQZXJmb3JtYW5jZUV2ZW50VGltaW5nLnByb3RvdHlwZSkpcmV0dXJuO2NvbnN0IHM9cCgpO3koKCk9PntJKCk7bGV0IG8scj1jKFwiSU5QXCIpO2NvbnN0IGE9ZCh0LGspLGg9ZT0+e0EoKCk9Pntmb3IoY29uc3QgdCBvZiBlKWEuaCh0KTtjb25zdCB0PWEuVCgpO3QmJnQuTCE9PXIudmFsdWUmJihyLnZhbHVlPXQuTCxyLmVudHJpZXM9dC5lbnRyaWVzLG8oKSl9KX0sbD1mKFwiZXZlbnRcIixoLHtkdXJhdGlvblRocmVzaG9sZDp0LmR1cmF0aW9uVGhyZXNob2xkPz80MH0pO289aShlLHIsQix0LnJlcG9ydEFsbENoYW5nZXMpLGwmJihsLm9ic2VydmUoe3R5cGU6XCJmaXJzdC1pbnB1dFwiLGJ1ZmZlcmVkOiEwfSkscy5vbkhpZGRlbigoKT0+e2gobC50YWtlUmVjb3JkcygpKSxvKCEwKX0pLG4oKCk9PnthLnAoKSxyPWMoXCJJTlBcIiksbz1pKGUscixCLHQucmVwb3J0QWxsQ2hhbmdlcyl9KSl9KX0sZS5vbkxDUD0oZSx0PXt9KT0+e3koKCk9Pntjb25zdCBvPXAoKTtsZXQgYSxoPWMoXCJMQ1BcIik7Y29uc3QgdT1kKHQsUyksbT1lPT57dC5yZXBvcnRBbGxDaGFuZ2VzfHwoZT1lLnNsaWNlKC0xKSk7Zm9yKGNvbnN0IHQgb2YgZSl1LmgodCksdC5zdGFydFRpbWU8by5maXJzdEhpZGRlblRpbWUmJihoLnZhbHVlPU1hdGgubWF4KHQuc3RhcnRUaW1lLXIoKSwwKSxoLmVudHJpZXM9W3RdLGEoKSl9LGc9ZihcImxhcmdlc3QtY29udGVudGZ1bC1wYWludFwiLG0pO2lmKGcpe2E9aShlLGgscSx0LnJlcG9ydEFsbENoYW5nZXMpO2NvbnN0IG89bCgoKT0+e20oZy50YWtlUmVjb3JkcygpKSxnLmRpc2Nvbm5lY3QoKSxhKCEwKX0pLHI9ZT0+e2UuaXNUcnVzdGVkJiYoQShvKSxyZW1vdmVFdmVudExpc3RlbmVyKGUudHlwZSxyLHtjYXB0dXJlOiEwfSkpfTtmb3IoY29uc3QgZSBvZltcImtleWRvd25cIixcImNsaWNrXCIsXCJ2aXNpYmlsaXR5Y2hhbmdlXCJdKWFkZEV2ZW50TGlzdGVuZXIoZSxyLHtjYXB0dXJlOiEwfSk7bihuPT57aD1jKFwiTENQXCIpLGE9aShlLGgscSx0LnJlcG9ydEFsbENoYW5nZXMpLHMoKCk9PntoLnZhbHVlPXBlcmZvcm1hbmNlLm5vdygpLW4udGltZVN0YW1wLGEoITApfSl9KX19KX0sZS5vblRURkI9KGUsdD17fSk9PntsZXQgcz1jKFwiVFRGQlwiKSxhPWkoZSxzLE4sdC5yZXBvcnRBbGxDaGFuZ2VzKTtIKCgpPT57Y29uc3QgZD1vKCk7ZCYmKHMudmFsdWU9TWF0aC5tYXgoZC5yZXNwb25zZVN0YXJ0LXIoKSwwKSxzLmVudHJpZXM9W2RdLGEoITApLG4oKCk9PntzPWMoXCJUVEZCXCIsMCksYT1pKGUscyxOLHQucmVwb3J0QWxsQ2hhbmdlcyksYSghMCl9KSl9KX0sZX0oe30pO1xuIiwiLypcbiAqIENvcHlyaWdodCAyMDI0IEFkb2JlLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHlcbiAqIG9mIHRoZSBMaWNlbnNlIGF0IGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXJcbiAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIFJFUFJFU0VOVEFUSU9OU1xuICogT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlXG4gKiBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWxlblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llcywgaW1wb3J0L25vLXJlbGF0aXZlLXBhY2thZ2VzLCBuby11bnVzZWQtdmFyc1xuaW1wb3J0ICogYXMgd2ViVml0YWxzIGZyb20gJy4uL25vZGVfbW9kdWxlcy93ZWItdml0YWxzL2Rpc3Qvd2ViLXZpdGFscy5paWZlLmpzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gYWRkQ1dWVHJhY2tpbmcoe1xuICBzYW1wbGVSVU0sIHNvdXJjZVNlbGVjdG9yLCB0YXJnZXRTZWxlY3RvciwgZmZsYWdzLFxufSkge1xuICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgY3d2U2NyaXB0ID0gbmV3IFVSTCgnLnJ1bS93ZWItdml0YWxzL2Rpc3Qvd2ViLXZpdGFscy5paWZlLmpzJywgc2FtcGxlUlVNLmJhc2VVUkwpLmhyZWY7XG4gICAgICAvKiBjOCBpZ25vcmUgbmV4dCAzICovXG4gICAgICBpZiAoZG9jdW1lbnQucXVlcnlTZWxlY3Rvcihgc2NyaXB0W3NyYz1cIiR7Y3d2U2NyaXB0fVwiXWApKSB7XG4gICAgICAgIC8vIHdlYiB2aXRhbHMgc2NyaXB0IGhhcyBiZWVuIGxvYWRlZCBhbHJlYWR5XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgICAgc2NyaXB0LnNyYyA9IGN3dlNjcmlwdDtcbiAgICAgIHNjcmlwdC5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHN0b3JlQ1dWID0gKG1lYXN1cmVtZW50KSA9PiB7XG4gICAgICAgICAgY29uc3QgZGF0YSA9IHsgY3d2OiB7fSB9O1xuICAgICAgICAgIGRhdGEuY3d2W21lYXN1cmVtZW50Lm5hbWVdID0gbWVhc3VyZW1lbnQudmFsdWU7XG4gICAgICAgICAgaWYgKG1lYXN1cmVtZW50Lm5hbWUgPT09ICdMQ1AnICYmIG1lYXN1cmVtZW50LmVudHJpZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3QgeyBlbGVtZW50IH0gPSBtZWFzdXJlbWVudC5lbnRyaWVzLnBvcCgpO1xuICAgICAgICAgICAgZGF0YS50YXJnZXQgPSB0YXJnZXRTZWxlY3RvcihlbGVtZW50KTtcbiAgICAgICAgICAgIGRhdGEuc291cmNlID0gc291cmNlU2VsZWN0b3IoZWxlbWVudCkgfHwgKGVsZW1lbnQgJiYgZWxlbWVudC5vdXRlckhUTUwuc2xpY2UoMCwgMzApKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgc2FtcGxlUlVNKCdjd3YnLCBkYXRhKTtcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBpc0VhZ2VyID0gKG1ldHJpYykgPT4gWydDTFMnLCAnTENQJ10uaW5jbHVkZXMobWV0cmljKTtcblxuICAgICAgICAvLyBXaGVuIGxvYWRpbmcgYHdlYi12aXRhbHNgIHVzaW5nIGEgY2xhc3NpYyBzY3JpcHQsIGFsbCB0aGUgcHVibGljXG4gICAgICAgIC8vIG1ldGhvZHMgY2FuIGJlIGZvdW5kIG9uIHRoZSBgd2ViVml0YWxzYCBnbG9iYWwgbmFtZXNwYWNlLlxuICAgICAgICBbJ0lOUCcsICdUVEZCJywgJ0NMUycsICdMQ1AnXS5mb3JFYWNoKChtZXRyaWMpID0+IHtcbiAgICAgICAgICBjb25zdCBtZXRyaWNGbiA9IHdpbmRvdy53ZWJWaXRhbHNbYG9uJHttZXRyaWN9YF07XG4gICAgICAgICAgaWYgKHR5cGVvZiBtZXRyaWNGbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgbGV0IG9wdHMgPSB7fTtcbiAgICAgICAgICAgIGZmbGFncy5lbmFibGVkKCdlYWdlcmN3dicsICgpID0+IHtcbiAgICAgICAgICAgICAgb3B0cyA9IHsgcmVwb3J0QWxsQ2hhbmdlczogaXNFYWdlcihtZXRyaWMpIH07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIG1ldHJpY0ZuKHN0b3JlQ1dWLCBvcHRzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfTtcbiAgICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc2NyaXB0KTtcbiAgICAgIC8qIGM4IGlnbm9yZSBuZXh0IDMgKi9cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgLy8gc29tZXRoaW5nIHdlbnQgd3JvbmdcbiAgICB9XG4gIH0sIDIwMDApOyAvLyB3YWl0IGZvciBkZWxheWVkXG59XG4iXSwibmFtZXMiOlsiZSIsInQiLCJuIiwiYWRkRXZlbnRMaXN0ZW5lciIsInBlcnNpc3RlZCIsInRpbWVTdGFtcCIsImkiLCJzIiwibyIsInIiLCJ2YWx1ZSIsImRlbHRhIiwicmF0aW5nIiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwicGVyZm9ybWFuY2UiLCJnZXRFbnRyaWVzQnlUeXBlIiwicmVzcG9uc2VTdGFydCIsIm5vdyIsImFjdGl2YXRpb25TdGFydCIsImMiLCJkb2N1bWVudCIsInByZXJlbmRlcmluZyIsIndhc0Rpc2NhcmRlZCIsInR5cGUiLCJyZXBsYWNlIiwibmFtZSIsImVudHJpZXMiLCJpZCIsIkRhdGUiLCJNYXRoIiwiZmxvb3IiLCJyYW5kb20iLCJuYXZpZ2F0aW9uVHlwZSIsImEiLCJXZWFrTWFwIiwiZCIsImdldCIsInNldCIsImgiLCJoYWRSZWNlbnRJbnB1dCIsImF0Iiwic3RhcnRUaW1lIiwicHVzaCIsImYiLCJQZXJmb3JtYW5jZU9ic2VydmVyIiwic3VwcG9ydGVkRW50cnlUeXBlcyIsImluY2x1ZGVzIiwicXVldWVNaWNyb3Rhc2siLCJnZXRFbnRyaWVzIiwib2JzZXJ2ZSIsImJ1ZmZlcmVkIiwibCIsInUiLCJtIiwiU2V0IiwiZyIsInZpc2liaWxpdHlTdGF0ZSIsInYiLCJpc0Zpbml0ZSIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJwIiwiZ2xvYmFsVGhpcyIsImZpbmQiLCJzZXRUaW1lb3V0IiwiZmlyc3RIaWRkZW5UaW1lIiwib25IaWRkZW4iLCJhZGQiLCJ5IiwiVCIsImIiLCJkaXNjb25uZWN0IiwibWF4IiwicmVwb3J0QWxsQ2hhbmdlcyIsIkUiLCJMIiwiUCIsIl8iLCJNIiwiaW50ZXJhY3Rpb25JZCIsIm1pbiIsInciLCJDIiwiaW50ZXJhY3Rpb25Db3VudCIsIkkiLCJkdXJhdGlvblRocmVzaG9sZCIsIkYiLCJrIiwiTWFwIiwibGVuZ3RoIiwiY2xlYXIiLCJlbnRyeVR5cGUiLCJkdXJhdGlvbiIsInNvcnQiLCJzcGxpY2UiLCJkZWxldGUiLCJBIiwicmVxdWVzdElkbGVDYWxsYmFjayIsImNhbmNlbElkbGVDYWxsYmFjayIsImNsZWFyVGltZW91dCIsIm9uY2UiLCJjYXB0dXJlIiwiQiIsIlMiLCJxIiwiTiIsIkgiLCJyZWFkeVN0YXRlIiwiQ0xTVGhyZXNob2xkcyIsIkZDUFRocmVzaG9sZHMiLCJJTlBUaHJlc2hvbGRzIiwiTENQVGhyZXNob2xkcyIsIlRURkJUaHJlc2hvbGRzIiwib25DTFMiLCJ0YWtlUmVjb3JkcyIsIm9uRkNQIiwib25JTlAiLCJQZXJmb3JtYW5jZUV2ZW50VGltaW5nIiwicHJvdG90eXBlIiwib25MQ1AiLCJzbGljZSIsImlzVHJ1c3RlZCIsIm9uVFRGQiIsImFkZENXVlRyYWNraW5nIiwic2FtcGxlUlVNIiwic291cmNlU2VsZWN0b3IiLCJ0YXJnZXRTZWxlY3RvciIsImZmbGFncyIsImN3dlNjcmlwdCIsIlVSTCIsImJhc2VVUkwiLCJocmVmIiwicXVlcnlTZWxlY3RvciIsInNjcmlwdCIsImNyZWF0ZUVsZW1lbnQiLCJzcmMiLCJvbmxvYWQiLCJzdG9yZUNXViIsIm1lYXN1cmVtZW50IiwiZGF0YSIsImN3diIsImVsZW1lbnQiLCJwb3AiLCJ0YXJnZXQiLCJzb3VyY2UiLCJvdXRlckhUTUwiLCJpc0VhZ2VyIiwibWV0cmljIiwiZm9yRWFjaCIsIm1ldHJpY0ZuIiwid2luZG93Iiwid2ViVml0YWxzIiwib3B0cyIsImVuYWJsZWQiLCJoZWFkIiwiYXBwZW5kQ2hpbGQiLCJlcnJvciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Q0FBYyxVQUFTQSxDQUFDLEVBQUM7O0VBQWMsSUFBSUMsQ0FBQyxHQUFDLEVBQUU7RUFBQyxNQUFNQyxDQUFDLEdBQUNGLENBQUMsSUFBRTtBQUFDRyxNQUFBQSxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUNELENBQUMsSUFBRTtBQUFDQSxRQUFBQSxDQUFDLENBQUNFLFNBQVMsS0FBR0gsQ0FBQyxHQUFDQyxDQUFDLENBQUNHLFNBQVMsRUFBQ0wsQ0FBQyxDQUFDRSxDQUFDLENBQUMsQ0FBQztNQUFBLENBQUMsRUFBQyxJQUFFLENBQUM7SUFBQSxDQUFDO0lBQUNJLENBQUMsR0FBQ0EsQ0FBQ04sQ0FBQyxFQUFDQyxDQUFDLEVBQUNDLENBQUMsRUFBQ0ksQ0FBQyxLQUFHO01BQUMsSUFBSUMsQ0FBQyxFQUFDQyxDQUFDO0FBQUMsTUFBQSxPQUFPQyxDQUFDLElBQUU7QUFBQ1IsUUFBQUEsQ0FBQyxDQUFDUyxLQUFLLElBQUUsQ0FBQyxLQUFHRCxDQUFDLElBQUVILENBQUMsQ0FBQyxLQUFHRSxDQUFDLEdBQUNQLENB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QUNoSCxJQUFJLENBQUMsR0FBR2dILFdBQVcsQ0FBQy9ILEtBQUs7QUFDOUMsVUFBQSxJQUFJK0gsV0FBVyxDQUFDaEgsSUFBSSxLQUFLLEtBQUssSUFBSWdILFdBQVcsQ0FBQy9HLE9BQU8sQ0FBQzhELE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDaEUsTUFBTTtBQUFFb0QsY0FBQUE7QUFBUSxhQUFDLEdBQUdILFdBQVcsQ0FBQy9HLE9BQU8sQ0FBQ21ILEdBQUcsRUFBRTtBQUM3Q0gsWUFBQUEsSUFBSSxDQUFDSSxNQUFNLEdBQUdqQixjQUFjLENBQUNlLE9BQU8sQ0FBQztBQUNyQ0YsWUFBQUEsSUFBSSxDQUFDSyxNQUFNLEdBQUduQixjQUFjLENBQUNnQixPQUFPLENBQUMsSUFBS0EsT0FBTyxJQUFJQSxPQUFPLENBQUNJLFNBQVMsQ0FBQ3pCLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFFO0FBQ3RGLFVBQUE7QUFDQUksVUFBQUEsU0FBUyxDQUFDLEtBQUssRUFBRWUsSUFBSSxDQUFDO1FBQ3hCLENBQUM7QUFFRCxRQUFBLE1BQU1PLE9BQU8sR0FBSUMsTUFBTSxJQUFLLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDcEcsUUFBUSxDQUFDb0csTUFBTSxDQUFDO0FBSTNELFFBQUEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQ0MsT0FBTyxDQUFFRCxNQUFNLElBQUs7VUFDaEQsTUFBTUUsUUFBUSxHQUFHQyxNQUFNLENBQUNDLFNBQVMsQ0FBQyxDQUFBLEVBQUEsRUFBS0osTUFBTSxDQUFBLENBQUUsQ0FBQztBQUNoRCxVQUFBLElBQUksT0FBT0UsUUFBUSxLQUFLLFVBQVUsRUFBRTtZQUNsQyxJQUFJRyxJQUFJLEdBQUcsRUFBRTtBQUNiekIsWUFBQUEsTUFBTSxDQUFDMEIsT0FBTyxDQUFDLFVBQVUsRUFBRSxNQUFNO0FBQy9CRCxjQUFBQSxJQUFJLEdBQUc7Z0JBQUUvRSxnQkFBZ0IsRUFBRXlFLE9BQU8sQ0FBQ0MsTUFBTTtlQUFHO0FBQzlDLFlBQUEsQ0FBQyxDQUFDO0FBQ0ZFLFlBQUFBLFFBQVEsQ0FBQ1osUUFBUSxFQUFFZSxJQUFJLENBQUM7QUFDMUIsVUFBQTtBQUNGLFFBQUEsQ0FBQyxDQUFDO01BQ0osQ0FBQztBQUNEbkksTUFBQUEsUUFBUSxDQUFDcUksSUFBSSxDQUFDQyxXQUFXLENBQUN0QixNQUFNLENBQUM7QUFFbkMsSUFBQSxDQUFDLENBQUMsT0FBT3VCLEtBQUssRUFBRSxDQUVoQjtFQUNGLENBQUMsRUFBRSxJQUFJLENBQUM7QUFDVjs7OzsiLCJ4X2dvb2dsZV9pZ25vcmVMaXN0IjpbMF19
|
package/src/plugins/cwv.md5
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
53d5a37b9dae3321e18f25551f062fa5
|
package/src/plugins/martech.md5
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
5a20c1d914d19b130034e4df532b8b4d
|
package/src/plugins/onetrust.md5
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
c00518b019647f564ce00dce9d07c74b
|
package/src/plugins/redirect.md5
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
f7be09c5b13268f51780ee91d44006bd
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
d241929d3af96465ac32a4158c0e0fe8
|