@brainfish-ai/web-tracker 0.0.4-alpha.9 → 0.0.4-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/dist/index.cjs.js +30 -0
  2. package/dist/index.cjs.js.gz +0 -0
  3. package/dist/index.cjs.js.map +1 -0
  4. package/dist/index.d.ts +2 -0
  5. package/dist/index.js +3816 -0
  6. package/dist/index.js.gz +0 -0
  7. package/dist/index.js.map +1 -0
  8. package/dist/src/common/isLocal.d.ts +1 -0
  9. package/dist/src/index.d.ts +24 -0
  10. package/dist/src/record/eventBuffer.d.ts +7 -0
  11. package/dist/src/record/index.d.ts +16 -0
  12. package/dist/src/record/recorder.d.ts +41 -0
  13. package/dist/src/record/recordingManager.d.ts +17 -0
  14. package/dist/src/record/sender.d.ts +11 -0
  15. package/dist/src/record/stasher.d.ts +23 -0
  16. package/dist/src/record/timer.d.ts +11 -0
  17. package/dist/src/redact/built-ins/NameRedactor.d.ts +6 -0
  18. package/dist/src/redact/built-ins/SimpleRegexpRedactor.d.ts +10 -0
  19. package/dist/src/redact/built-ins/simple-regexp-patterns.d.ts +12 -0
  20. package/dist/src/redact/built-ins/well-known-names.d.ts +2 -0
  21. package/dist/src/redact/composition.d.ts +2 -0
  22. package/dist/src/redact/index.d.ts +10 -0
  23. package/dist/src/redact/types.d.ts +27 -0
  24. package/dist/src/redact/utils.d.ts +4 -0
  25. package/dist/src/screenshot/capture.d.ts +2 -0
  26. package/dist/src/screenshot/redact.d.ts +3 -0
  27. package/dist/src/screenshot/snapshot.d.ts +2 -0
  28. package/dist/src/setupTests.d.ts +0 -0
  29. package/dist/src/tracker.d.ts +9 -0
  30. package/dist/tracker.cjs.js +2 -0
  31. package/dist/tracker.cjs.js.map +1 -0
  32. package/dist/tracker.d.ts +1 -0
  33. package/dist/tracker.js +15 -0
  34. package/dist/tracker.js.map +1 -0
  35. package/package.json +14 -11
  36. package/index.ts +0 -2
  37. package/postcss.config.cjs +0 -6
  38. package/src/index.ts +0 -193
  39. package/src/setupTests.ts +0 -1
  40. package/src/tracker.ts +0 -31
  41. package/src/types.d.ts +0 -31
  42. package/src/utils/capture.test.ts +0 -83
  43. package/src/utils/capture.ts +0 -51
  44. package/src/utils/redact.test.ts +0 -74
  45. package/src/utils/redact.ts +0 -57
  46. package/src/utils/snapshot.ts +0 -35
  47. package/src/vite-env.d.ts +0 -7
  48. package/tailwind.config.cjs +0 -9
  49. package/tsconfig.json +0 -15
  50. package/vite.config.ts +0 -50
package/dist/index.js ADDED
@@ -0,0 +1,3816 @@
1
+ var Vn = Object.defineProperty, Un = Object.defineProperties;
2
+ var Pn = Object.getOwnPropertyDescriptors;
3
+ var aa = Object.getOwnPropertySymbols, Zn = Object.getPrototypeOf, Gn = Object.prototype.hasOwnProperty, Kn = Object.prototype.propertyIsEnumerable, Yn = Reflect.get;
4
+ var na = Math.pow, kt = (a, e, t) => e in a ? Vn(a, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : a[e] = t, he = (a, e) => {
5
+ for (var t in e || (e = {}))
6
+ Gn.call(e, t) && kt(a, t, e[t]);
7
+ if (aa)
8
+ for (var t of aa(e))
9
+ Kn.call(e, t) && kt(a, t, e[t]);
10
+ return a;
11
+ }, xe = (a, e) => Un(a, Pn(e));
12
+ var _ = (a, e, t) => kt(a, typeof e != "symbol" ? e + "" : e, t);
13
+ var wt = (a, e, t) => Yn(Zn(a), t, e);
14
+ var O = (a, e, t) => new Promise((n, r) => {
15
+ var i = (l) => {
16
+ try {
17
+ s(t.next(l));
18
+ } catch (c) {
19
+ r(c);
20
+ }
21
+ }, o = (l) => {
22
+ try {
23
+ s(t.throw(l));
24
+ } catch (c) {
25
+ r(c);
26
+ }
27
+ }, s = (l) => l.done ? n(l.value) : Promise.resolve(l.value).then(i, o);
28
+ s((t = t.apply(a, e)).next());
29
+ });
30
+ const we = /* @__PURE__ */ Object.create(null);
31
+ we.open = "0", we.close = "1", we.ping = "2", we.pong = "3", we.message = "4", we.upgrade = "5", we.noop = "6";
32
+ const nt = /* @__PURE__ */ Object.create(null);
33
+ Object.keys(we).forEach((a) => {
34
+ nt[we[a]] = a;
35
+ });
36
+ const Tt = { type: "error", data: "parser error" }, Fa = typeof Blob == "function" || typeof Blob != "undefined" && Object.prototype.toString.call(Blob) === "[object BlobConstructor]", Ba = typeof ArrayBuffer == "function", Da = (a) => typeof ArrayBuffer.isView == "function" ? ArrayBuffer.isView(a) : a && a.buffer instanceof ArrayBuffer, Ut = ({ type: a, data: e }, t, n) => Fa && e instanceof Blob ? t ? n(e) : ra(e, n) : Ba && (e instanceof ArrayBuffer || Da(e)) ? t ? n(e) : ra(new Blob([e]), n) : n(we[a] + (e || "")), ra = (a, e) => {
37
+ const t = new FileReader();
38
+ return t.onload = function() {
39
+ const n = t.result.split(",")[1];
40
+ e("b" + (n || ""));
41
+ }, t.readAsDataURL(a);
42
+ };
43
+ function ia(a) {
44
+ return a instanceof Uint8Array ? a : a instanceof ArrayBuffer ? new Uint8Array(a) : new Uint8Array(a.buffer, a.byteOffset, a.byteLength);
45
+ }
46
+ let vt;
47
+ const Hn = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", Ue = typeof Uint8Array == "undefined" ? [] : new Uint8Array(256);
48
+ for (let a = 0; a < 64; a++) Ue[Hn.charCodeAt(a)] = a;
49
+ const Jn = typeof ArrayBuffer == "function", Pt = (a, e) => {
50
+ if (typeof a != "string") return { type: "message", data: qa(a, e) };
51
+ const t = a.charAt(0);
52
+ return t === "b" ? { type: "message", data: Qn(a.substring(1), e) } : nt[t] ? a.length > 1 ? { type: nt[t], data: a.substring(1) } : { type: nt[t] } : Tt;
53
+ }, Qn = (a, e) => {
54
+ if (Jn) {
55
+ const t = ((n) => {
56
+ let r, i, o, s, l, c = 0.75 * n.length, h = n.length, d = 0;
57
+ n[n.length - 1] === "=" && (c--, n[n.length - 2] === "=" && c--);
58
+ const u = new ArrayBuffer(c), b = new Uint8Array(u);
59
+ for (r = 0; r < h; r += 4) i = Ue[n.charCodeAt(r)], o = Ue[n.charCodeAt(r + 1)], s = Ue[n.charCodeAt(r + 2)], l = Ue[n.charCodeAt(r + 3)], b[d++] = i << 2 | o >> 4, b[d++] = (15 & o) << 4 | s >> 2, b[d++] = (3 & s) << 6 | 63 & l;
60
+ return u;
61
+ })(a);
62
+ return qa(t, e);
63
+ }
64
+ return { base64: !0, data: a };
65
+ }, qa = (a, e) => e === "blob" ? a instanceof Blob ? a : new Blob([a]) : a instanceof ArrayBuffer ? a : a.buffer, oa = "";
66
+ function Xn() {
67
+ return new TransformStream({ transform(a, e) {
68
+ (function(t, n) {
69
+ Fa && t.data instanceof Blob ? t.data.arrayBuffer().then(ia).then(n) : Ba && (t.data instanceof ArrayBuffer || Da(t.data)) ? n(ia(t.data)) : Ut(t, !1, (r) => {
70
+ vt || (vt = new TextEncoder()), n(vt.encode(r));
71
+ });
72
+ })(a, (t) => {
73
+ const n = t.length;
74
+ let r;
75
+ if (n < 126) r = new Uint8Array(1), new DataView(r.buffer).setUint8(0, n);
76
+ else if (n < 65536) {
77
+ r = new Uint8Array(3);
78
+ const i = new DataView(r.buffer);
79
+ i.setUint8(0, 126), i.setUint16(1, n);
80
+ } else {
81
+ r = new Uint8Array(9);
82
+ const i = new DataView(r.buffer);
83
+ i.setUint8(0, 127), i.setBigUint64(1, BigInt(n));
84
+ }
85
+ a.data && typeof a.data != "string" && (r[0] |= 128), e.enqueue(r), e.enqueue(t);
86
+ });
87
+ } });
88
+ }
89
+ let It;
90
+ function Qe(a) {
91
+ return a.reduce((e, t) => e + t.length, 0);
92
+ }
93
+ function Xe(a, e) {
94
+ if (a[0].length === e) return a.shift();
95
+ const t = new Uint8Array(e);
96
+ let n = 0;
97
+ for (let r = 0; r < e; r++) t[r] = a[0][n++], n === a[0].length && (a.shift(), n = 0);
98
+ return a.length && n < a[0].length && (a[0] = a[0].slice(n)), t;
99
+ }
100
+ function te(a) {
101
+ if (a) return function(e) {
102
+ for (var t in te.prototype) e[t] = te.prototype[t];
103
+ return e;
104
+ }(a);
105
+ }
106
+ te.prototype.on = te.prototype.addEventListener = function(a, e) {
107
+ return this._callbacks = this._callbacks || {}, (this._callbacks["$" + a] = this._callbacks["$" + a] || []).push(e), this;
108
+ }, te.prototype.once = function(a, e) {
109
+ function t() {
110
+ this.off(a, t), e.apply(this, arguments);
111
+ }
112
+ return t.fn = e, this.on(a, t), this;
113
+ }, te.prototype.off = te.prototype.removeListener = te.prototype.removeAllListeners = te.prototype.removeEventListener = function(a, e) {
114
+ if (this._callbacks = this._callbacks || {}, arguments.length == 0) return this._callbacks = {}, this;
115
+ var t, n = this._callbacks["$" + a];
116
+ if (!n) return this;
117
+ if (arguments.length == 1) return delete this._callbacks["$" + a], this;
118
+ for (var r = 0; r < n.length; r++) if ((t = n[r]) === e || t.fn === e) {
119
+ n.splice(r, 1);
120
+ break;
121
+ }
122
+ return n.length === 0 && delete this._callbacks["$" + a], this;
123
+ }, te.prototype.emit = function(a) {
124
+ this._callbacks = this._callbacks || {};
125
+ for (var e = new Array(arguments.length - 1), t = this._callbacks["$" + a], n = 1; n < arguments.length; n++) e[n - 1] = arguments[n];
126
+ if (t) {
127
+ n = 0;
128
+ for (var r = (t = t.slice(0)).length; n < r; ++n) t[n].apply(this, e);
129
+ }
130
+ return this;
131
+ }, te.prototype.emitReserved = te.prototype.emit, te.prototype.listeners = function(a) {
132
+ return this._callbacks = this._callbacks || {}, this._callbacks["$" + a] || [];
133
+ }, te.prototype.hasListeners = function(a) {
134
+ return !!this.listeners(a).length;
135
+ };
136
+ const gt = typeof Promise == "function" && typeof Promise.resolve == "function" ? (a) => Promise.resolve().then(a) : (a, e) => e(a, 0), pe = typeof self != "undefined" ? self : typeof window != "undefined" ? window : Function("return this")();
137
+ function Wa(a, ...e) {
138
+ return e.reduce((t, n) => (a.hasOwnProperty(n) && (t[n] = a[n]), t), {});
139
+ }
140
+ const $n = pe.setTimeout, er = pe.clearTimeout;
141
+ function pt(a, e) {
142
+ e.useNativeTimers ? (a.setTimeoutFn = $n.bind(pe), a.clearTimeoutFn = er.bind(pe)) : (a.setTimeoutFn = pe.setTimeout.bind(pe), a.clearTimeoutFn = pe.clearTimeout.bind(pe));
143
+ }
144
+ function Va() {
145
+ return Date.now().toString(36).substring(3) + Math.random().toString(36).substring(2, 5);
146
+ }
147
+ class tr extends Error {
148
+ constructor(e, t, n) {
149
+ super(e), this.description = t, this.context = n, this.type = "TransportError";
150
+ }
151
+ }
152
+ class Zt extends te {
153
+ constructor(e) {
154
+ super(), this.writable = !1, pt(this, e), this.opts = e, this.query = e.query, this.socket = e.socket, this.supportsBinary = !e.forceBase64;
155
+ }
156
+ onError(e, t, n) {
157
+ return super.emitReserved("error", new tr(e, t, n)), this;
158
+ }
159
+ open() {
160
+ return this.readyState = "opening", this.doOpen(), this;
161
+ }
162
+ close() {
163
+ return this.readyState !== "opening" && this.readyState !== "open" || (this.doClose(), this.onClose()), this;
164
+ }
165
+ send(e) {
166
+ this.readyState === "open" && this.write(e);
167
+ }
168
+ onOpen() {
169
+ this.readyState = "open", this.writable = !0, super.emitReserved("open");
170
+ }
171
+ onData(e) {
172
+ const t = Pt(e, this.socket.binaryType);
173
+ this.onPacket(t);
174
+ }
175
+ onPacket(e) {
176
+ super.emitReserved("packet", e);
177
+ }
178
+ onClose(e) {
179
+ this.readyState = "closed", super.emitReserved("close", e);
180
+ }
181
+ pause(e) {
182
+ }
183
+ createUri(e, t = {}) {
184
+ return e + "://" + this._hostname() + this._port() + this.opts.path + this._query(t);
185
+ }
186
+ _hostname() {
187
+ const e = this.opts.hostname;
188
+ return e.indexOf(":") === -1 ? e : "[" + e + "]";
189
+ }
190
+ _port() {
191
+ return this.opts.port && (this.opts.secure && +(this.opts.port !== 443) || !this.opts.secure && Number(this.opts.port) !== 80) ? ":" + this.opts.port : "";
192
+ }
193
+ _query(e) {
194
+ const t = function(n) {
195
+ let r = "";
196
+ for (let i in n) n.hasOwnProperty(i) && (r.length && (r += "&"), r += encodeURIComponent(i) + "=" + encodeURIComponent(n[i]));
197
+ return r;
198
+ }(e);
199
+ return t.length ? "?" + t : "";
200
+ }
201
+ }
202
+ class ar extends Zt {
203
+ constructor() {
204
+ super(...arguments), this._polling = !1;
205
+ }
206
+ get name() {
207
+ return "polling";
208
+ }
209
+ doOpen() {
210
+ this._poll();
211
+ }
212
+ pause(e) {
213
+ this.readyState = "pausing";
214
+ const t = () => {
215
+ this.readyState = "paused", e();
216
+ };
217
+ if (this._polling || !this.writable) {
218
+ let n = 0;
219
+ this._polling && (n++, this.once("pollComplete", function() {
220
+ --n || t();
221
+ })), this.writable || (n++, this.once("drain", function() {
222
+ --n || t();
223
+ }));
224
+ } else t();
225
+ }
226
+ _poll() {
227
+ this._polling = !0, this.doPoll(), this.emitReserved("poll");
228
+ }
229
+ onData(e) {
230
+ ((t, n) => {
231
+ const r = t.split(oa), i = [];
232
+ for (let o = 0; o < r.length; o++) {
233
+ const s = Pt(r[o], n);
234
+ if (i.push(s), s.type === "error") break;
235
+ }
236
+ return i;
237
+ })(e, this.socket.binaryType).forEach((t) => {
238
+ if (this.readyState === "opening" && t.type === "open" && this.onOpen(), t.type === "close") return this.onClose({ description: "transport closed by the server" }), !1;
239
+ this.onPacket(t);
240
+ }), this.readyState !== "closed" && (this._polling = !1, this.emitReserved("pollComplete"), this.readyState === "open" && this._poll());
241
+ }
242
+ doClose() {
243
+ const e = () => {
244
+ this.write([{ type: "close" }]);
245
+ };
246
+ this.readyState === "open" ? e() : this.once("open", e);
247
+ }
248
+ write(e) {
249
+ this.writable = !1, ((t, n) => {
250
+ const r = t.length, i = new Array(r);
251
+ let o = 0;
252
+ t.forEach((s, l) => {
253
+ Ut(s, !1, (c) => {
254
+ i[l] = c, ++o === r && n(i.join(oa));
255
+ });
256
+ });
257
+ })(e, (t) => {
258
+ this.doWrite(t, () => {
259
+ this.writable = !0, this.emitReserved("drain");
260
+ });
261
+ });
262
+ }
263
+ uri() {
264
+ const e = this.opts.secure ? "https" : "http", t = this.query || {};
265
+ return this.opts.timestampRequests !== !1 && (t[this.opts.timestampParam] = Va()), this.supportsBinary || t.sid || (t.b64 = 1), this.createUri(e, t);
266
+ }
267
+ }
268
+ let Ua = !1;
269
+ try {
270
+ Ua = typeof XMLHttpRequest != "undefined" && "withCredentials" in new XMLHttpRequest();
271
+ } catch (a) {
272
+ }
273
+ const nr = Ua;
274
+ function rr() {
275
+ }
276
+ class ir extends ar {
277
+ constructor(e) {
278
+ if (super(e), typeof location != "undefined") {
279
+ const t = location.protocol === "https:";
280
+ let n = location.port;
281
+ n || (n = t ? "443" : "80"), this.xd = typeof location != "undefined" && e.hostname !== location.hostname || n !== e.port;
282
+ }
283
+ }
284
+ doWrite(e, t) {
285
+ const n = this.request({ method: "POST", data: e });
286
+ n.on("success", t), n.on("error", (r, i) => {
287
+ this.onError("xhr post error", r, i);
288
+ });
289
+ }
290
+ doPoll() {
291
+ const e = this.request();
292
+ e.on("data", this.onData.bind(this)), e.on("error", (t, n) => {
293
+ this.onError("xhr poll error", t, n);
294
+ }), this.pollXhr = e;
295
+ }
296
+ }
297
+ class ve extends te {
298
+ constructor(e, t, n) {
299
+ super(), this.createRequest = e, pt(this, n), this._opts = n, this._method = n.method || "GET", this._uri = t, this._data = n.data !== void 0 ? n.data : null, this._create();
300
+ }
301
+ _create() {
302
+ var e;
303
+ const t = Wa(this._opts, "agent", "pfx", "key", "passphrase", "cert", "ca", "ciphers", "rejectUnauthorized", "autoUnref");
304
+ t.xdomain = !!this._opts.xd;
305
+ const n = this._xhr = this.createRequest(t);
306
+ try {
307
+ n.open(this._method, this._uri, !0);
308
+ try {
309
+ if (this._opts.extraHeaders) {
310
+ n.setDisableHeaderCheck && n.setDisableHeaderCheck(!0);
311
+ for (let r in this._opts.extraHeaders) this._opts.extraHeaders.hasOwnProperty(r) && n.setRequestHeader(r, this._opts.extraHeaders[r]);
312
+ }
313
+ } catch (r) {
314
+ }
315
+ if (this._method === "POST") try {
316
+ n.setRequestHeader("Content-type", "text/plain;charset=UTF-8");
317
+ } catch (r) {
318
+ }
319
+ try {
320
+ n.setRequestHeader("Accept", "*/*");
321
+ } catch (r) {
322
+ }
323
+ (e = this._opts.cookieJar) === null || e === void 0 || e.addCookies(n), "withCredentials" in n && (n.withCredentials = this._opts.withCredentials), this._opts.requestTimeout && (n.timeout = this._opts.requestTimeout), n.onreadystatechange = () => {
324
+ var r;
325
+ n.readyState === 3 && ((r = this._opts.cookieJar) === null || r === void 0 || r.parseCookies(n.getResponseHeader("set-cookie"))), n.readyState === 4 && (n.status === 200 || n.status === 1223 ? this._onLoad() : this.setTimeoutFn(() => {
326
+ this._onError(typeof n.status == "number" ? n.status : 0);
327
+ }, 0));
328
+ }, n.send(this._data);
329
+ } catch (r) {
330
+ return void this.setTimeoutFn(() => {
331
+ this._onError(r);
332
+ }, 0);
333
+ }
334
+ typeof document != "undefined" && (this._index = ve.requestsCount++, ve.requests[this._index] = this);
335
+ }
336
+ _onError(e) {
337
+ this.emitReserved("error", e, this._xhr), this._cleanup(!0);
338
+ }
339
+ _cleanup(e) {
340
+ if (this._xhr !== void 0 && this._xhr !== null) {
341
+ if (this._xhr.onreadystatechange = rr, e) try {
342
+ this._xhr.abort();
343
+ } catch (t) {
344
+ }
345
+ typeof document != "undefined" && delete ve.requests[this._index], this._xhr = null;
346
+ }
347
+ }
348
+ _onLoad() {
349
+ const e = this._xhr.responseText;
350
+ e !== null && (this.emitReserved("data", e), this.emitReserved("success"), this._cleanup());
351
+ }
352
+ abort() {
353
+ this._cleanup();
354
+ }
355
+ }
356
+ ve.requestsCount = 0, ve.requests = {}, typeof document != "undefined" && (typeof attachEvent == "function" ? attachEvent("onunload", sa) : typeof addEventListener == "function" && addEventListener("onpagehide" in pe ? "pagehide" : "unload", sa, !1));
357
+ function sa() {
358
+ for (let a in ve.requests) ve.requests.hasOwnProperty(a) && ve.requests[a].abort();
359
+ }
360
+ const or = function() {
361
+ const a = Pa({ xdomain: !1 });
362
+ return a && a.responseType !== null;
363
+ }();
364
+ function Pa(a) {
365
+ const e = a.xdomain;
366
+ try {
367
+ if (typeof XMLHttpRequest != "undefined" && (!e || nr)) return new XMLHttpRequest();
368
+ } catch (t) {
369
+ }
370
+ if (!e) try {
371
+ return new pe[["Active"].concat("Object").join("X")]("Microsoft.XMLHTTP");
372
+ } catch (t) {
373
+ }
374
+ }
375
+ const Za = typeof navigator != "undefined" && typeof navigator.product == "string" && navigator.product.toLowerCase() === "reactnative";
376
+ class sr extends Zt {
377
+ get name() {
378
+ return "websocket";
379
+ }
380
+ doOpen() {
381
+ const e = this.uri(), t = this.opts.protocols, n = Za ? {} : Wa(this.opts, "agent", "perMessageDeflate", "pfx", "key", "passphrase", "cert", "ca", "ciphers", "rejectUnauthorized", "localAddress", "protocolVersion", "origin", "maxPayload", "family", "checkServerIdentity");
382
+ this.opts.extraHeaders && (n.headers = this.opts.extraHeaders);
383
+ try {
384
+ this.ws = this.createSocket(e, t, n);
385
+ } catch (r) {
386
+ return this.emitReserved("error", r);
387
+ }
388
+ this.ws.binaryType = this.socket.binaryType, this.addEventListeners();
389
+ }
390
+ addEventListeners() {
391
+ this.ws.onopen = () => {
392
+ this.opts.autoUnref && this.ws._socket.unref(), this.onOpen();
393
+ }, this.ws.onclose = (e) => this.onClose({ description: "websocket connection closed", context: e }), this.ws.onmessage = (e) => this.onData(e.data), this.ws.onerror = (e) => this.onError("websocket error", e);
394
+ }
395
+ write(e) {
396
+ this.writable = !1;
397
+ for (let t = 0; t < e.length; t++) {
398
+ const n = e[t], r = t === e.length - 1;
399
+ Ut(n, this.supportsBinary, (i) => {
400
+ try {
401
+ this.doWrite(n, i);
402
+ } catch (o) {
403
+ }
404
+ r && gt(() => {
405
+ this.writable = !0, this.emitReserved("drain");
406
+ }, this.setTimeoutFn);
407
+ });
408
+ }
409
+ }
410
+ doClose() {
411
+ this.ws !== void 0 && (this.ws.close(), this.ws = null);
412
+ }
413
+ uri() {
414
+ const e = this.opts.secure ? "wss" : "ws", t = this.query || {};
415
+ return this.opts.timestampRequests && (t[this.opts.timestampParam] = Va()), this.supportsBinary || (t.b64 = 1), this.createUri(e, t);
416
+ }
417
+ }
418
+ const Ct = pe.WebSocket || pe.MozWebSocket, lr = { websocket: class extends sr {
419
+ createSocket(a, e, t) {
420
+ return Za ? new Ct(a, e, t) : e ? new Ct(a, e) : new Ct(a);
421
+ }
422
+ doWrite(a, e) {
423
+ this.ws.send(e);
424
+ }
425
+ }, webtransport: class extends Zt {
426
+ get name() {
427
+ return "webtransport";
428
+ }
429
+ doOpen() {
430
+ try {
431
+ this._transport = new WebTransport(this.createUri("https"), this.opts.transportOptions[this.name]);
432
+ } catch (a) {
433
+ return this.emitReserved("error", a);
434
+ }
435
+ this._transport.closed.then(() => {
436
+ this.onClose();
437
+ }).catch((a) => {
438
+ this.onError("webtransport error", a);
439
+ }), this._transport.ready.then(() => {
440
+ this._transport.createBidirectionalStream().then((a) => {
441
+ const e = function(o, s) {
442
+ It || (It = new TextDecoder());
443
+ const l = [];
444
+ let c = 0, h = -1, d = !1;
445
+ return new TransformStream({ transform(u, b) {
446
+ for (l.push(u); ; ) {
447
+ if (c === 0) {
448
+ if (Qe(l) < 1) break;
449
+ const f = Xe(l, 1);
450
+ d = !(128 & ~f[0]), h = 127 & f[0], c = h < 126 ? 3 : h === 126 ? 1 : 2;
451
+ } else if (c === 1) {
452
+ if (Qe(l) < 2) break;
453
+ const f = Xe(l, 2);
454
+ h = new DataView(f.buffer, f.byteOffset, f.length).getUint16(0), c = 3;
455
+ } else if (c === 2) {
456
+ if (Qe(l) < 8) break;
457
+ const f = Xe(l, 8), R = new DataView(f.buffer, f.byteOffset, f.length), p = R.getUint32(0);
458
+ if (p > Math.pow(2, 21) - 1) {
459
+ b.enqueue(Tt);
460
+ break;
461
+ }
462
+ h = p * Math.pow(2, 32) + R.getUint32(4), c = 3;
463
+ } else {
464
+ if (Qe(l) < h) break;
465
+ const f = Xe(l, h);
466
+ b.enqueue(Pt(d ? f : It.decode(f), s)), c = 0;
467
+ }
468
+ if (h === 0 || h > o) {
469
+ b.enqueue(Tt);
470
+ break;
471
+ }
472
+ }
473
+ } });
474
+ }(Number.MAX_SAFE_INTEGER, this.socket.binaryType), t = a.readable.pipeThrough(e).getReader(), n = Xn();
475
+ n.readable.pipeTo(a.writable), this._writer = n.writable.getWriter();
476
+ const r = () => {
477
+ t.read().then(({ done: o, value: s }) => {
478
+ o || (this.onPacket(s), r());
479
+ }).catch((o) => {
480
+ });
481
+ };
482
+ r();
483
+ const i = { type: "open" };
484
+ this.query.sid && (i.data = `{"sid":"${this.query.sid}"}`), this._writer.write(i).then(() => this.onOpen());
485
+ });
486
+ });
487
+ }
488
+ write(a) {
489
+ this.writable = !1;
490
+ for (let e = 0; e < a.length; e++) {
491
+ const t = a[e], n = e === a.length - 1;
492
+ this._writer.write(t).then(() => {
493
+ n && gt(() => {
494
+ this.writable = !0, this.emitReserved("drain");
495
+ }, this.setTimeoutFn);
496
+ });
497
+ }
498
+ }
499
+ doClose() {
500
+ var a;
501
+ (a = this._transport) === null || a === void 0 || a.close();
502
+ }
503
+ }, polling: class extends ir {
504
+ constructor(a) {
505
+ super(a);
506
+ const e = a && a.forceBase64;
507
+ this.supportsBinary = or && !e;
508
+ }
509
+ request(a = {}) {
510
+ return Object.assign(a, { xd: this.xd }, this.opts), new ve(Pa, this.uri(), a);
511
+ }
512
+ } }, cr = /^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/, hr = ["source", "protocol", "authority", "userInfo", "user", "password", "host", "port", "relative", "path", "directory", "file", "query", "anchor"];
513
+ function Rt(a) {
514
+ if (a.length > 8e3) throw "URI too long";
515
+ const e = a, t = a.indexOf("["), n = a.indexOf("]");
516
+ t != -1 && n != -1 && (a = a.substring(0, t) + a.substring(t, n).replace(/:/g, ";") + a.substring(n, a.length));
517
+ let r = cr.exec(a || ""), i = {}, o = 14;
518
+ for (; o--; ) i[hr[o]] = r[o] || "";
519
+ return t != -1 && n != -1 && (i.source = e, i.host = i.host.substring(1, i.host.length - 1).replace(/;/g, ":"), i.authority = i.authority.replace("[", "").replace("]", "").replace(/;/g, ":"), i.ipv6uri = !0), i.pathNames = function(s, l) {
520
+ const c = /\/{2,9}/g, h = l.replace(c, "/").split("/");
521
+ return l.slice(0, 1) != "/" && l.length !== 0 || h.splice(0, 1), l.slice(-1) == "/" && h.splice(h.length - 1, 1), h;
522
+ }(0, i.path), i.queryKey = function(s, l) {
523
+ const c = {};
524
+ return l.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function(h, d, u) {
525
+ d && (c[d] = u);
526
+ }), c;
527
+ }(0, i.query), i;
528
+ }
529
+ const Nt = typeof addEventListener == "function" && typeof removeEventListener == "function", rt = [];
530
+ Nt && addEventListener("offline", () => {
531
+ rt.forEach((a) => a());
532
+ }, !1);
533
+ class Ee extends te {
534
+ constructor(e, t) {
535
+ if (super(), this.binaryType = "arraybuffer", this.writeBuffer = [], this._prevBufferLen = 0, this._pingInterval = -1, this._pingTimeout = -1, this._maxPayload = -1, this._pingTimeoutTime = 1 / 0, e && typeof e == "object" && (t = e, e = null), e) {
536
+ const n = Rt(e);
537
+ t.hostname = n.host, t.secure = n.protocol === "https" || n.protocol === "wss", t.port = n.port, n.query && (t.query = n.query);
538
+ } else t.host && (t.hostname = Rt(t.host).host);
539
+ pt(this, t), this.secure = t.secure != null ? t.secure : typeof location != "undefined" && location.protocol === "https:", t.hostname && !t.port && (t.port = this.secure ? "443" : "80"), this.hostname = t.hostname || (typeof location != "undefined" ? location.hostname : "localhost"), this.port = t.port || (typeof location != "undefined" && location.port ? location.port : this.secure ? "443" : "80"), this.transports = [], this._transportsByName = {}, t.transports.forEach((n) => {
540
+ const r = n.prototype.name;
541
+ this.transports.push(r), this._transportsByName[r] = n;
542
+ }), this.opts = Object.assign({ path: "/engine.io", agent: !1, withCredentials: !1, upgrade: !0, timestampParam: "t", rememberUpgrade: !1, addTrailingSlash: !0, rejectUnauthorized: !0, perMessageDeflate: { threshold: 1024 }, transportOptions: {}, closeOnBeforeunload: !1 }, t), this.opts.path = this.opts.path.replace(/\/$/, "") + (this.opts.addTrailingSlash ? "/" : ""), typeof this.opts.query == "string" && (this.opts.query = function(n) {
543
+ let r = {}, i = n.split("&");
544
+ for (let o = 0, s = i.length; o < s; o++) {
545
+ let l = i[o].split("=");
546
+ r[decodeURIComponent(l[0])] = decodeURIComponent(l[1]);
547
+ }
548
+ return r;
549
+ }(this.opts.query)), Nt && (this.opts.closeOnBeforeunload && (this._beforeunloadEventListener = () => {
550
+ this.transport && (this.transport.removeAllListeners(), this.transport.close());
551
+ }, addEventListener("beforeunload", this._beforeunloadEventListener, !1)), this.hostname !== "localhost" && (this._offlineEventListener = () => {
552
+ this._onClose("transport close", { description: "network connection lost" });
553
+ }, rt.push(this._offlineEventListener))), this.opts.withCredentials && (this._cookieJar = void 0), this._open();
554
+ }
555
+ createTransport(e) {
556
+ const t = Object.assign({}, this.opts.query);
557
+ t.EIO = 4, t.transport = e, this.id && (t.sid = this.id);
558
+ const n = Object.assign({}, this.opts, { query: t, socket: this, hostname: this.hostname, secure: this.secure, port: this.port }, this.opts.transportOptions[e]);
559
+ return new this._transportsByName[e](n);
560
+ }
561
+ _open() {
562
+ if (this.transports.length === 0) return void this.setTimeoutFn(() => {
563
+ this.emitReserved("error", "No transports available");
564
+ }, 0);
565
+ const e = this.opts.rememberUpgrade && Ee.priorWebsocketSuccess && this.transports.indexOf("websocket") !== -1 ? "websocket" : this.transports[0];
566
+ this.readyState = "opening";
567
+ const t = this.createTransport(e);
568
+ t.open(), this.setTransport(t);
569
+ }
570
+ setTransport(e) {
571
+ this.transport && this.transport.removeAllListeners(), this.transport = e, e.on("drain", this._onDrain.bind(this)).on("packet", this._onPacket.bind(this)).on("error", this._onError.bind(this)).on("close", (t) => this._onClose("transport close", t));
572
+ }
573
+ onOpen() {
574
+ this.readyState = "open", Ee.priorWebsocketSuccess = this.transport.name === "websocket", this.emitReserved("open"), this.flush();
575
+ }
576
+ _onPacket(e) {
577
+ if (this.readyState === "opening" || this.readyState === "open" || this.readyState === "closing") switch (this.emitReserved("packet", e), this.emitReserved("heartbeat"), e.type) {
578
+ case "open":
579
+ this.onHandshake(JSON.parse(e.data));
580
+ break;
581
+ case "ping":
582
+ this._sendPacket("pong"), this.emitReserved("ping"), this.emitReserved("pong"), this._resetPingTimeout();
583
+ break;
584
+ case "error":
585
+ const t = new Error("server error");
586
+ t.code = e.data, this._onError(t);
587
+ break;
588
+ case "message":
589
+ this.emitReserved("data", e.data), this.emitReserved("message", e.data);
590
+ }
591
+ }
592
+ onHandshake(e) {
593
+ this.emitReserved("handshake", e), this.id = e.sid, this.transport.query.sid = e.sid, this._pingInterval = e.pingInterval, this._pingTimeout = e.pingTimeout, this._maxPayload = e.maxPayload, this.onOpen(), this.readyState !== "closed" && this._resetPingTimeout();
594
+ }
595
+ _resetPingTimeout() {
596
+ this.clearTimeoutFn(this._pingTimeoutTimer);
597
+ const e = this._pingInterval + this._pingTimeout;
598
+ this._pingTimeoutTime = Date.now() + e, this._pingTimeoutTimer = this.setTimeoutFn(() => {
599
+ this._onClose("ping timeout");
600
+ }, e), this.opts.autoUnref && this._pingTimeoutTimer.unref();
601
+ }
602
+ _onDrain() {
603
+ this.writeBuffer.splice(0, this._prevBufferLen), this._prevBufferLen = 0, this.writeBuffer.length === 0 ? this.emitReserved("drain") : this.flush();
604
+ }
605
+ flush() {
606
+ if (this.readyState !== "closed" && this.transport.writable && !this.upgrading && this.writeBuffer.length) {
607
+ const e = this._getWritablePackets();
608
+ this.transport.send(e), this._prevBufferLen = e.length, this.emitReserved("flush");
609
+ }
610
+ }
611
+ _getWritablePackets() {
612
+ if (!(this._maxPayload && this.transport.name === "polling" && this.writeBuffer.length > 1)) return this.writeBuffer;
613
+ let e = 1;
614
+ for (let n = 0; n < this.writeBuffer.length; n++) {
615
+ const r = this.writeBuffer[n].data;
616
+ if (r && (e += typeof (t = r) == "string" ? function(i) {
617
+ let o = 0, s = 0;
618
+ for (let l = 0, c = i.length; l < c; l++) o = i.charCodeAt(l), o < 128 ? s += 1 : o < 2048 ? s += 2 : o < 55296 || o >= 57344 ? s += 3 : (l++, s += 4);
619
+ return s;
620
+ }(t) : Math.ceil(1.33 * (t.byteLength || t.size))), n > 0 && e > this._maxPayload) return this.writeBuffer.slice(0, n);
621
+ e += 2;
622
+ }
623
+ var t;
624
+ return this.writeBuffer;
625
+ }
626
+ _hasPingExpired() {
627
+ if (!this._pingTimeoutTime) return !0;
628
+ const e = Date.now() > this._pingTimeoutTime;
629
+ return e && (this._pingTimeoutTime = 0, gt(() => {
630
+ this._onClose("ping timeout");
631
+ }, this.setTimeoutFn)), e;
632
+ }
633
+ write(e, t, n) {
634
+ return this._sendPacket("message", e, t, n), this;
635
+ }
636
+ send(e, t, n) {
637
+ return this._sendPacket("message", e, t, n), this;
638
+ }
639
+ _sendPacket(e, t, n, r) {
640
+ if (typeof t == "function" && (r = t, t = void 0), typeof n == "function" && (r = n, n = null), this.readyState === "closing" || this.readyState === "closed") return;
641
+ (n = n || {}).compress = n.compress !== !1;
642
+ const i = { type: e, data: t, options: n };
643
+ this.emitReserved("packetCreate", i), this.writeBuffer.push(i), r && this.once("flush", r), this.flush();
644
+ }
645
+ close() {
646
+ const e = () => {
647
+ this._onClose("forced close"), this.transport.close();
648
+ }, t = () => {
649
+ this.off("upgrade", t), this.off("upgradeError", t), e();
650
+ }, n = () => {
651
+ this.once("upgrade", t), this.once("upgradeError", t);
652
+ };
653
+ return this.readyState !== "opening" && this.readyState !== "open" || (this.readyState = "closing", this.writeBuffer.length ? this.once("drain", () => {
654
+ this.upgrading ? n() : e();
655
+ }) : this.upgrading ? n() : e()), this;
656
+ }
657
+ _onError(e) {
658
+ if (Ee.priorWebsocketSuccess = !1, this.opts.tryAllTransports && this.transports.length > 1 && this.readyState === "opening") return this.transports.shift(), this._open();
659
+ this.emitReserved("error", e), this._onClose("transport error", e);
660
+ }
661
+ _onClose(e, t) {
662
+ if (this.readyState === "opening" || this.readyState === "open" || this.readyState === "closing") {
663
+ if (this.clearTimeoutFn(this._pingTimeoutTimer), this.transport.removeAllListeners("close"), this.transport.close(), this.transport.removeAllListeners(), Nt && (this._beforeunloadEventListener && removeEventListener("beforeunload", this._beforeunloadEventListener, !1), this._offlineEventListener)) {
664
+ const n = rt.indexOf(this._offlineEventListener);
665
+ n !== -1 && rt.splice(n, 1);
666
+ }
667
+ this.readyState = "closed", this.id = null, this.emitReserved("close", e, t), this.writeBuffer = [], this._prevBufferLen = 0;
668
+ }
669
+ }
670
+ }
671
+ Ee.protocol = 4;
672
+ class dr extends Ee {
673
+ constructor() {
674
+ super(...arguments), this._upgrades = [];
675
+ }
676
+ onOpen() {
677
+ if (super.onOpen(), this.readyState === "open" && this.opts.upgrade) for (let e = 0; e < this._upgrades.length; e++) this._probe(this._upgrades[e]);
678
+ }
679
+ _probe(e) {
680
+ let t = this.createTransport(e), n = !1;
681
+ Ee.priorWebsocketSuccess = !1;
682
+ const r = () => {
683
+ n || (t.send([{ type: "ping", data: "probe" }]), t.once("packet", (d) => {
684
+ if (!n) if (d.type === "pong" && d.data === "probe") {
685
+ if (this.upgrading = !0, this.emitReserved("upgrading", t), !t) return;
686
+ Ee.priorWebsocketSuccess = t.name === "websocket", this.transport.pause(() => {
687
+ n || this.readyState !== "closed" && (h(), this.setTransport(t), t.send([{ type: "upgrade" }]), this.emitReserved("upgrade", t), t = null, this.upgrading = !1, this.flush());
688
+ });
689
+ } else {
690
+ const u = new Error("probe error");
691
+ u.transport = t.name, this.emitReserved("upgradeError", u);
692
+ }
693
+ }));
694
+ };
695
+ function i() {
696
+ n || (n = !0, h(), t.close(), t = null);
697
+ }
698
+ const o = (d) => {
699
+ const u = new Error("probe error: " + d);
700
+ u.transport = t.name, i(), this.emitReserved("upgradeError", u);
701
+ };
702
+ function s() {
703
+ o("transport closed");
704
+ }
705
+ function l() {
706
+ o("socket closed");
707
+ }
708
+ function c(d) {
709
+ t && d.name !== t.name && i();
710
+ }
711
+ const h = () => {
712
+ t.removeListener("open", r), t.removeListener("error", o), t.removeListener("close", s), this.off("close", l), this.off("upgrading", c);
713
+ };
714
+ t.once("open", r), t.once("error", o), t.once("close", s), this.once("close", l), this.once("upgrading", c), this._upgrades.indexOf("webtransport") !== -1 && e !== "webtransport" ? this.setTimeoutFn(() => {
715
+ n || t.open();
716
+ }, 200) : t.open();
717
+ }
718
+ onHandshake(e) {
719
+ this._upgrades = this._filterUpgrades(e.upgrades), super.onHandshake(e);
720
+ }
721
+ _filterUpgrades(e) {
722
+ const t = [];
723
+ for (let n = 0; n < e.length; n++) ~this.transports.indexOf(e[n]) && t.push(e[n]);
724
+ return t;
725
+ }
726
+ }
727
+ let ur = class extends dr {
728
+ constructor(a, e = {}) {
729
+ const t = typeof a == "object" ? a : e;
730
+ (!t.transports || t.transports && typeof t.transports[0] == "string") && (t.transports = (t.transports || ["polling", "websocket", "webtransport"]).map((n) => lr[n]).filter((n) => !!n)), super(a, t);
731
+ }
732
+ };
733
+ const mr = typeof ArrayBuffer == "function", Ga = Object.prototype.toString, gr = typeof Blob == "function" || typeof Blob != "undefined" && Ga.call(Blob) === "[object BlobConstructor]", pr = typeof File == "function" || typeof File != "undefined" && Ga.call(File) === "[object FileConstructor]";
734
+ function Gt(a) {
735
+ return mr && (a instanceof ArrayBuffer || ((e) => typeof ArrayBuffer.isView == "function" ? ArrayBuffer.isView(e) : e.buffer instanceof ArrayBuffer)(a)) || gr && a instanceof Blob || pr && a instanceof File;
736
+ }
737
+ function it(a, e) {
738
+ if (!a || typeof a != "object") return !1;
739
+ if (Array.isArray(a)) {
740
+ for (let t = 0, n = a.length; t < n; t++) if (it(a[t])) return !0;
741
+ return !1;
742
+ }
743
+ if (Gt(a)) return !0;
744
+ if (a.toJSON && typeof a.toJSON == "function" && arguments.length === 1) return it(a.toJSON(), !0);
745
+ for (const t in a) if (Object.prototype.hasOwnProperty.call(a, t) && it(a[t])) return !0;
746
+ return !1;
747
+ }
748
+ function yr(a) {
749
+ const e = [], t = a.data, n = a;
750
+ return n.data = Ot(t, e), n.attachments = e.length, { packet: n, buffers: e };
751
+ }
752
+ function Ot(a, e) {
753
+ if (!a) return a;
754
+ if (Gt(a)) {
755
+ const t = { _placeholder: !0, num: e.length };
756
+ return e.push(a), t;
757
+ }
758
+ if (Array.isArray(a)) {
759
+ const t = new Array(a.length);
760
+ for (let n = 0; n < a.length; n++) t[n] = Ot(a[n], e);
761
+ return t;
762
+ }
763
+ if (typeof a == "object" && !(a instanceof Date)) {
764
+ const t = {};
765
+ for (const n in a) Object.prototype.hasOwnProperty.call(a, n) && (t[n] = Ot(a[n], e));
766
+ return t;
767
+ }
768
+ return a;
769
+ }
770
+ function br(a, e) {
771
+ return a.data = _t(a.data, e), delete a.attachments, a;
772
+ }
773
+ function _t(a, e) {
774
+ if (!a) return a;
775
+ if (a && a._placeholder === !0) {
776
+ if (typeof a.num == "number" && a.num >= 0 && a.num < e.length) return e[a.num];
777
+ throw new Error("illegal attachments");
778
+ }
779
+ if (Array.isArray(a)) for (let t = 0; t < a.length; t++) a[t] = _t(a[t], e);
780
+ else if (typeof a == "object") for (const t in a) Object.prototype.hasOwnProperty.call(a, t) && (a[t] = _t(a[t], e));
781
+ return a;
782
+ }
783
+ const fr = ["connect", "connect_error", "disconnect", "disconnecting", "newListener", "removeListener"];
784
+ var B;
785
+ (function(a) {
786
+ a[a.CONNECT = 0] = "CONNECT", a[a.DISCONNECT = 1] = "DISCONNECT", a[a.EVENT = 2] = "EVENT", a[a.ACK = 3] = "ACK", a[a.CONNECT_ERROR = 4] = "CONNECT_ERROR", a[a.BINARY_EVENT = 5] = "BINARY_EVENT", a[a.BINARY_ACK = 6] = "BINARY_ACK";
787
+ })(B || (B = {}));
788
+ function la(a) {
789
+ return Object.prototype.toString.call(a) === "[object Object]";
790
+ }
791
+ class Kt extends te {
792
+ constructor(e) {
793
+ super(), this.reviver = e;
794
+ }
795
+ add(e) {
796
+ let t;
797
+ if (typeof e == "string") {
798
+ if (this.reconstructor) throw new Error("got plaintext data when reconstructing a packet");
799
+ t = this.decodeString(e);
800
+ const n = t.type === B.BINARY_EVENT;
801
+ n || t.type === B.BINARY_ACK ? (t.type = n ? B.EVENT : B.ACK, this.reconstructor = new kr(t), t.attachments === 0 && super.emitReserved("decoded", t)) : super.emitReserved("decoded", t);
802
+ } else {
803
+ if (!Gt(e) && !e.base64) throw new Error("Unknown type: " + e);
804
+ if (!this.reconstructor) throw new Error("got binary data when not reconstructing a packet");
805
+ t = this.reconstructor.takeBinaryData(e), t && (this.reconstructor = null, super.emitReserved("decoded", t));
806
+ }
807
+ }
808
+ decodeString(e) {
809
+ let t = 0;
810
+ const n = { type: Number(e.charAt(0)) };
811
+ if (B[n.type] === void 0) throw new Error("unknown packet type " + n.type);
812
+ if (n.type === B.BINARY_EVENT || n.type === B.BINARY_ACK) {
813
+ const i = t + 1;
814
+ for (; e.charAt(++t) !== "-" && t != e.length; ) ;
815
+ const o = e.substring(i, t);
816
+ if (o != Number(o) || e.charAt(t) !== "-") throw new Error("Illegal attachments");
817
+ n.attachments = Number(o);
818
+ }
819
+ if (e.charAt(t + 1) === "/") {
820
+ const i = t + 1;
821
+ for (; ++t && !(e.charAt(t) === "," || t === e.length); )
822
+ ;
823
+ n.nsp = e.substring(i, t);
824
+ } else n.nsp = "/";
825
+ const r = e.charAt(t + 1);
826
+ if (r !== "" && Number(r) == r) {
827
+ const i = t + 1;
828
+ for (; ++t; ) {
829
+ const o = e.charAt(t);
830
+ if (o == null || Number(o) != o) {
831
+ --t;
832
+ break;
833
+ }
834
+ if (t === e.length) break;
835
+ }
836
+ n.id = Number(e.substring(i, t + 1));
837
+ }
838
+ if (e.charAt(++t)) {
839
+ const i = this.tryParse(e.substr(t));
840
+ if (!Kt.isPayloadValid(n.type, i)) throw new Error("invalid payload");
841
+ n.data = i;
842
+ }
843
+ return n;
844
+ }
845
+ tryParse(e) {
846
+ try {
847
+ return JSON.parse(e, this.reviver);
848
+ } catch (t) {
849
+ return !1;
850
+ }
851
+ }
852
+ static isPayloadValid(e, t) {
853
+ switch (e) {
854
+ case B.CONNECT:
855
+ return la(t);
856
+ case B.DISCONNECT:
857
+ return t === void 0;
858
+ case B.CONNECT_ERROR:
859
+ return typeof t == "string" || la(t);
860
+ case B.EVENT:
861
+ case B.BINARY_EVENT:
862
+ return Array.isArray(t) && (typeof t[0] == "number" || typeof t[0] == "string" && fr.indexOf(t[0]) === -1);
863
+ case B.ACK:
864
+ case B.BINARY_ACK:
865
+ return Array.isArray(t);
866
+ }
867
+ }
868
+ destroy() {
869
+ this.reconstructor && (this.reconstructor.finishedReconstruction(), this.reconstructor = null);
870
+ }
871
+ }
872
+ class kr {
873
+ constructor(e) {
874
+ this.packet = e, this.buffers = [], this.reconPack = e;
875
+ }
876
+ takeBinaryData(e) {
877
+ if (this.buffers.push(e), this.buffers.length === this.reconPack.attachments) {
878
+ const t = br(this.reconPack, this.buffers);
879
+ return this.finishedReconstruction(), t;
880
+ }
881
+ return null;
882
+ }
883
+ finishedReconstruction() {
884
+ this.reconPack = null, this.buffers = [];
885
+ }
886
+ }
887
+ const wr = Object.freeze(Object.defineProperty({ __proto__: null, Decoder: Kt, Encoder: class {
888
+ constructor(a) {
889
+ this.replacer = a;
890
+ }
891
+ encode(a) {
892
+ return a.type !== B.EVENT && a.type !== B.ACK || !it(a) ? [this.encodeAsString(a)] : this.encodeAsBinary({ type: a.type === B.EVENT ? B.BINARY_EVENT : B.BINARY_ACK, nsp: a.nsp, data: a.data, id: a.id });
893
+ }
894
+ encodeAsString(a) {
895
+ let e = "" + a.type;
896
+ return a.type !== B.BINARY_EVENT && a.type !== B.BINARY_ACK || (e += a.attachments + "-"), a.nsp && a.nsp !== "/" && (e += a.nsp + ","), a.id != null && (e += a.id), a.data != null && (e += JSON.stringify(a.data, this.replacer)), e;
897
+ }
898
+ encodeAsBinary(a) {
899
+ const e = yr(a), t = this.encodeAsString(e.packet), n = e.buffers;
900
+ return n.unshift(t), n;
901
+ }
902
+ }, get PacketType() {
903
+ return B;
904
+ }, protocol: 5 }, Symbol.toStringTag, { value: "Module" }));
905
+ function fe(a, e, t) {
906
+ return a.on(e, t), function() {
907
+ a.off(e, t);
908
+ };
909
+ }
910
+ const vr = Object.freeze({ connect: 1, connect_error: 1, disconnect: 1, disconnecting: 1, newListener: 1, removeListener: 1 });
911
+ class Ka extends te {
912
+ constructor(e, t, n) {
913
+ super(), this.connected = !1, this.recovered = !1, this.receiveBuffer = [], this.sendBuffer = [], this._queue = [], this._queueSeq = 0, this.ids = 0, this.acks = {}, this.flags = {}, this.io = e, this.nsp = t, n && n.auth && (this.auth = n.auth), this._opts = Object.assign({}, n), this.io._autoConnect && this.open();
914
+ }
915
+ get disconnected() {
916
+ return !this.connected;
917
+ }
918
+ subEvents() {
919
+ if (this.subs) return;
920
+ const e = this.io;
921
+ this.subs = [fe(e, "open", this.onopen.bind(this)), fe(e, "packet", this.onpacket.bind(this)), fe(e, "error", this.onerror.bind(this)), fe(e, "close", this.onclose.bind(this))];
922
+ }
923
+ get active() {
924
+ return !!this.subs;
925
+ }
926
+ connect() {
927
+ return this.connected || (this.subEvents(), this.io._reconnecting || this.io.open(), this.io._readyState === "open" && this.onopen()), this;
928
+ }
929
+ open() {
930
+ return this.connect();
931
+ }
932
+ send(...e) {
933
+ return e.unshift("message"), this.emit.apply(this, e), this;
934
+ }
935
+ emit(e, ...t) {
936
+ var n, r, i;
937
+ if (vr.hasOwnProperty(e)) throw new Error('"' + e.toString() + '" is a reserved event name');
938
+ if (t.unshift(e), this._opts.retries && !this.flags.fromQueue && !this.flags.volatile) return this._addToQueue(t), this;
939
+ const o = { type: B.EVENT, data: t, options: {} };
940
+ if (o.options.compress = this.flags.compress !== !1, typeof t[t.length - 1] == "function") {
941
+ const c = this.ids++, h = t.pop();
942
+ this._registerAckCallback(c, h), o.id = c;
943
+ }
944
+ const s = (r = (n = this.io.engine) === null || n === void 0 ? void 0 : n.transport) === null || r === void 0 ? void 0 : r.writable, l = this.connected && !(!((i = this.io.engine) === null || i === void 0) && i._hasPingExpired());
945
+ return this.flags.volatile && !s || (l ? (this.notifyOutgoingListeners(o), this.packet(o)) : this.sendBuffer.push(o)), this.flags = {}, this;
946
+ }
947
+ _registerAckCallback(e, t) {
948
+ var n;
949
+ const r = (n = this.flags.timeout) !== null && n !== void 0 ? n : this._opts.ackTimeout;
950
+ if (r === void 0) return void (this.acks[e] = t);
951
+ const i = this.io.setTimeoutFn(() => {
952
+ delete this.acks[e];
953
+ for (let s = 0; s < this.sendBuffer.length; s++) this.sendBuffer[s].id === e && this.sendBuffer.splice(s, 1);
954
+ t.call(this, new Error("operation has timed out"));
955
+ }, r), o = (...s) => {
956
+ this.io.clearTimeoutFn(i), t.apply(this, s);
957
+ };
958
+ o.withError = !0, this.acks[e] = o;
959
+ }
960
+ emitWithAck(e, ...t) {
961
+ return new Promise((n, r) => {
962
+ const i = (o, s) => o ? r(o) : n(s);
963
+ i.withError = !0, t.push(i), this.emit(e, ...t);
964
+ });
965
+ }
966
+ _addToQueue(e) {
967
+ let t;
968
+ typeof e[e.length - 1] == "function" && (t = e.pop());
969
+ const n = { id: this._queueSeq++, tryCount: 0, pending: !1, args: e, flags: Object.assign({ fromQueue: !0 }, this.flags) };
970
+ e.push((r, ...i) => {
971
+ if (n === this._queue[0])
972
+ return r !== null ? n.tryCount > this._opts.retries && (this._queue.shift(), t && t(r)) : (this._queue.shift(), t && t(null, ...i)), n.pending = !1, this._drainQueue();
973
+ }), this._queue.push(n), this._drainQueue();
974
+ }
975
+ _drainQueue(e = !1) {
976
+ if (!this.connected || this._queue.length === 0) return;
977
+ const t = this._queue[0];
978
+ t.pending && !e || (t.pending = !0, t.tryCount++, this.flags = t.flags, this.emit.apply(this, t.args));
979
+ }
980
+ packet(e) {
981
+ e.nsp = this.nsp, this.io._packet(e);
982
+ }
983
+ onopen() {
984
+ typeof this.auth == "function" ? this.auth((e) => {
985
+ this._sendConnectPacket(e);
986
+ }) : this._sendConnectPacket(this.auth);
987
+ }
988
+ _sendConnectPacket(e) {
989
+ this.packet({ type: B.CONNECT, data: this._pid ? Object.assign({ pid: this._pid, offset: this._lastOffset }, e) : e });
990
+ }
991
+ onerror(e) {
992
+ this.connected || this.emitReserved("connect_error", e);
993
+ }
994
+ onclose(e, t) {
995
+ this.connected = !1, delete this.id, this.emitReserved("disconnect", e, t), this._clearAcks();
996
+ }
997
+ _clearAcks() {
998
+ Object.keys(this.acks).forEach((e) => {
999
+ if (!this.sendBuffer.some((t) => String(t.id) === e)) {
1000
+ const t = this.acks[e];
1001
+ delete this.acks[e], t.withError && t.call(this, new Error("socket has been disconnected"));
1002
+ }
1003
+ });
1004
+ }
1005
+ onpacket(e) {
1006
+ if (e.nsp === this.nsp) switch (e.type) {
1007
+ case B.CONNECT:
1008
+ e.data && e.data.sid ? this.onconnect(e.data.sid, e.data.pid) : this.emitReserved("connect_error", new Error("It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)"));
1009
+ break;
1010
+ case B.EVENT:
1011
+ case B.BINARY_EVENT:
1012
+ this.onevent(e);
1013
+ break;
1014
+ case B.ACK:
1015
+ case B.BINARY_ACK:
1016
+ this.onack(e);
1017
+ break;
1018
+ case B.DISCONNECT:
1019
+ this.ondisconnect();
1020
+ break;
1021
+ case B.CONNECT_ERROR:
1022
+ this.destroy();
1023
+ const t = new Error(e.data.message);
1024
+ t.data = e.data.data, this.emitReserved("connect_error", t);
1025
+ }
1026
+ }
1027
+ onevent(e) {
1028
+ const t = e.data || [];
1029
+ e.id != null && t.push(this.ack(e.id)), this.connected ? this.emitEvent(t) : this.receiveBuffer.push(Object.freeze(t));
1030
+ }
1031
+ emitEvent(e) {
1032
+ if (this._anyListeners && this._anyListeners.length) {
1033
+ const t = this._anyListeners.slice();
1034
+ for (const n of t) n.apply(this, e);
1035
+ }
1036
+ super.emit.apply(this, e), this._pid && e.length && typeof e[e.length - 1] == "string" && (this._lastOffset = e[e.length - 1]);
1037
+ }
1038
+ ack(e) {
1039
+ const t = this;
1040
+ let n = !1;
1041
+ return function(...r) {
1042
+ n || (n = !0, t.packet({ type: B.ACK, id: e, data: r }));
1043
+ };
1044
+ }
1045
+ onack(e) {
1046
+ const t = this.acks[e.id];
1047
+ typeof t == "function" && (delete this.acks[e.id], t.withError && e.data.unshift(null), t.apply(this, e.data));
1048
+ }
1049
+ onconnect(e, t) {
1050
+ this.id = e, this.recovered = t && this._pid === t, this._pid = t, this.connected = !0, this.emitBuffered(), this.emitReserved("connect"), this._drainQueue(!0);
1051
+ }
1052
+ emitBuffered() {
1053
+ this.receiveBuffer.forEach((e) => this.emitEvent(e)), this.receiveBuffer = [], this.sendBuffer.forEach((e) => {
1054
+ this.notifyOutgoingListeners(e), this.packet(e);
1055
+ }), this.sendBuffer = [];
1056
+ }
1057
+ ondisconnect() {
1058
+ this.destroy(), this.onclose("io server disconnect");
1059
+ }
1060
+ destroy() {
1061
+ this.subs && (this.subs.forEach((e) => e()), this.subs = void 0), this.io._destroy(this);
1062
+ }
1063
+ disconnect() {
1064
+ return this.connected && this.packet({ type: B.DISCONNECT }), this.destroy(), this.connected && this.onclose("io client disconnect"), this;
1065
+ }
1066
+ close() {
1067
+ return this.disconnect();
1068
+ }
1069
+ compress(e) {
1070
+ return this.flags.compress = e, this;
1071
+ }
1072
+ get volatile() {
1073
+ return this.flags.volatile = !0, this;
1074
+ }
1075
+ timeout(e) {
1076
+ return this.flags.timeout = e, this;
1077
+ }
1078
+ onAny(e) {
1079
+ return this._anyListeners = this._anyListeners || [], this._anyListeners.push(e), this;
1080
+ }
1081
+ prependAny(e) {
1082
+ return this._anyListeners = this._anyListeners || [], this._anyListeners.unshift(e), this;
1083
+ }
1084
+ offAny(e) {
1085
+ if (!this._anyListeners) return this;
1086
+ if (e) {
1087
+ const t = this._anyListeners;
1088
+ for (let n = 0; n < t.length; n++) if (e === t[n]) return t.splice(n, 1), this;
1089
+ } else this._anyListeners = [];
1090
+ return this;
1091
+ }
1092
+ listenersAny() {
1093
+ return this._anyListeners || [];
1094
+ }
1095
+ onAnyOutgoing(e) {
1096
+ return this._anyOutgoingListeners = this._anyOutgoingListeners || [], this._anyOutgoingListeners.push(e), this;
1097
+ }
1098
+ prependAnyOutgoing(e) {
1099
+ return this._anyOutgoingListeners = this._anyOutgoingListeners || [], this._anyOutgoingListeners.unshift(e), this;
1100
+ }
1101
+ offAnyOutgoing(e) {
1102
+ if (!this._anyOutgoingListeners) return this;
1103
+ if (e) {
1104
+ const t = this._anyOutgoingListeners;
1105
+ for (let n = 0; n < t.length; n++) if (e === t[n]) return t.splice(n, 1), this;
1106
+ } else this._anyOutgoingListeners = [];
1107
+ return this;
1108
+ }
1109
+ listenersAnyOutgoing() {
1110
+ return this._anyOutgoingListeners || [];
1111
+ }
1112
+ notifyOutgoingListeners(e) {
1113
+ if (this._anyOutgoingListeners && this._anyOutgoingListeners.length) {
1114
+ const t = this._anyOutgoingListeners.slice();
1115
+ for (const n of t) n.apply(this, e.data);
1116
+ }
1117
+ }
1118
+ }
1119
+ function Me(a) {
1120
+ a = a || {}, this.ms = a.min || 100, this.max = a.max || 1e4, this.factor = a.factor || 2, this.jitter = a.jitter > 0 && a.jitter <= 1 ? a.jitter : 0, this.attempts = 0;
1121
+ }
1122
+ Me.prototype.duration = function() {
1123
+ var a = this.ms * Math.pow(this.factor, this.attempts++);
1124
+ if (this.jitter) {
1125
+ var e = Math.random(), t = Math.floor(e * this.jitter * a);
1126
+ a = 1 & Math.floor(10 * e) ? a + t : a - t;
1127
+ }
1128
+ return 0 | Math.min(a, this.max);
1129
+ }, Me.prototype.reset = function() {
1130
+ this.attempts = 0;
1131
+ }, Me.prototype.setMin = function(a) {
1132
+ this.ms = a;
1133
+ }, Me.prototype.setMax = function(a) {
1134
+ this.max = a;
1135
+ }, Me.prototype.setJitter = function(a) {
1136
+ this.jitter = a;
1137
+ };
1138
+ class Mt extends te {
1139
+ constructor(e, t) {
1140
+ var n;
1141
+ super(), this.nsps = {}, this.subs = [], e && typeof e == "object" && (t = e, e = void 0), (t = t || {}).path = t.path || "/socket.io", this.opts = t, pt(this, t), this.reconnection(t.reconnection !== !1), this.reconnectionAttempts(t.reconnectionAttempts || 1 / 0), this.reconnectionDelay(t.reconnectionDelay || 1e3), this.reconnectionDelayMax(t.reconnectionDelayMax || 5e3), this.randomizationFactor((n = t.randomizationFactor) !== null && n !== void 0 ? n : 0.5), this.backoff = new Me({ min: this.reconnectionDelay(), max: this.reconnectionDelayMax(), jitter: this.randomizationFactor() }), this.timeout(t.timeout == null ? 2e4 : t.timeout), this._readyState = "closed", this.uri = e;
1142
+ const r = t.parser || wr;
1143
+ this.encoder = new r.Encoder(), this.decoder = new r.Decoder(), this._autoConnect = t.autoConnect !== !1, this._autoConnect && this.open();
1144
+ }
1145
+ reconnection(e) {
1146
+ return arguments.length ? (this._reconnection = !!e, e || (this.skipReconnect = !0), this) : this._reconnection;
1147
+ }
1148
+ reconnectionAttempts(e) {
1149
+ return e === void 0 ? this._reconnectionAttempts : (this._reconnectionAttempts = e, this);
1150
+ }
1151
+ reconnectionDelay(e) {
1152
+ var t;
1153
+ return e === void 0 ? this._reconnectionDelay : (this._reconnectionDelay = e, (t = this.backoff) === null || t === void 0 || t.setMin(e), this);
1154
+ }
1155
+ randomizationFactor(e) {
1156
+ var t;
1157
+ return e === void 0 ? this._randomizationFactor : (this._randomizationFactor = e, (t = this.backoff) === null || t === void 0 || t.setJitter(e), this);
1158
+ }
1159
+ reconnectionDelayMax(e) {
1160
+ var t;
1161
+ return e === void 0 ? this._reconnectionDelayMax : (this._reconnectionDelayMax = e, (t = this.backoff) === null || t === void 0 || t.setMax(e), this);
1162
+ }
1163
+ timeout(e) {
1164
+ return arguments.length ? (this._timeout = e, this) : this._timeout;
1165
+ }
1166
+ maybeReconnectOnOpen() {
1167
+ !this._reconnecting && this._reconnection && this.backoff.attempts === 0 && this.reconnect();
1168
+ }
1169
+ open(e) {
1170
+ if (~this._readyState.indexOf("open")) return this;
1171
+ this.engine = new ur(this.uri, this.opts);
1172
+ const t = this.engine, n = this;
1173
+ this._readyState = "opening", this.skipReconnect = !1;
1174
+ const r = fe(t, "open", function() {
1175
+ n.onopen(), e && e();
1176
+ }), i = (s) => {
1177
+ this.cleanup(), this._readyState = "closed", this.emitReserved("error", s), e ? e(s) : this.maybeReconnectOnOpen();
1178
+ }, o = fe(t, "error", i);
1179
+ if (this._timeout !== !1) {
1180
+ const s = this._timeout, l = this.setTimeoutFn(() => {
1181
+ r(), i(new Error("timeout")), t.close();
1182
+ }, s);
1183
+ this.opts.autoUnref && l.unref(), this.subs.push(() => {
1184
+ this.clearTimeoutFn(l);
1185
+ });
1186
+ }
1187
+ return this.subs.push(r), this.subs.push(o), this;
1188
+ }
1189
+ connect(e) {
1190
+ return this.open(e);
1191
+ }
1192
+ onopen() {
1193
+ this.cleanup(), this._readyState = "open", this.emitReserved("open");
1194
+ const e = this.engine;
1195
+ this.subs.push(fe(e, "ping", this.onping.bind(this)), fe(e, "data", this.ondata.bind(this)), fe(e, "error", this.onerror.bind(this)), fe(e, "close", this.onclose.bind(this)), fe(this.decoder, "decoded", this.ondecoded.bind(this)));
1196
+ }
1197
+ onping() {
1198
+ this.emitReserved("ping");
1199
+ }
1200
+ ondata(e) {
1201
+ try {
1202
+ this.decoder.add(e);
1203
+ } catch (t) {
1204
+ this.onclose("parse error", t);
1205
+ }
1206
+ }
1207
+ ondecoded(e) {
1208
+ gt(() => {
1209
+ this.emitReserved("packet", e);
1210
+ }, this.setTimeoutFn);
1211
+ }
1212
+ onerror(e) {
1213
+ this.emitReserved("error", e);
1214
+ }
1215
+ socket(e, t) {
1216
+ let n = this.nsps[e];
1217
+ return n ? this._autoConnect && !n.active && n.connect() : (n = new Ka(this, e, t), this.nsps[e] = n), n;
1218
+ }
1219
+ _destroy(e) {
1220
+ const t = Object.keys(this.nsps);
1221
+ for (const n of t)
1222
+ if (this.nsps[n].active) return;
1223
+ this._close();
1224
+ }
1225
+ _packet(e) {
1226
+ const t = this.encoder.encode(e);
1227
+ for (let n = 0; n < t.length; n++) this.engine.write(t[n], e.options);
1228
+ }
1229
+ cleanup() {
1230
+ this.subs.forEach((e) => e()), this.subs.length = 0, this.decoder.destroy();
1231
+ }
1232
+ _close() {
1233
+ this.skipReconnect = !0, this._reconnecting = !1, this.onclose("forced close");
1234
+ }
1235
+ disconnect() {
1236
+ return this._close();
1237
+ }
1238
+ onclose(e, t) {
1239
+ var n;
1240
+ this.cleanup(), (n = this.engine) === null || n === void 0 || n.close(), this.backoff.reset(), this._readyState = "closed", this.emitReserved("close", e, t), this._reconnection && !this.skipReconnect && this.reconnect();
1241
+ }
1242
+ reconnect() {
1243
+ if (this._reconnecting || this.skipReconnect) return this;
1244
+ const e = this;
1245
+ if (this.backoff.attempts >= this._reconnectionAttempts) this.backoff.reset(), this.emitReserved("reconnect_failed"), this._reconnecting = !1;
1246
+ else {
1247
+ const t = this.backoff.duration();
1248
+ this._reconnecting = !0;
1249
+ const n = this.setTimeoutFn(() => {
1250
+ e.skipReconnect || (this.emitReserved("reconnect_attempt", e.backoff.attempts), e.skipReconnect || e.open((r) => {
1251
+ r ? (e._reconnecting = !1, e.reconnect(), this.emitReserved("reconnect_error", r)) : e.onreconnect();
1252
+ }));
1253
+ }, t);
1254
+ this.opts.autoUnref && n.unref(), this.subs.push(() => {
1255
+ this.clearTimeoutFn(n);
1256
+ });
1257
+ }
1258
+ }
1259
+ onreconnect() {
1260
+ const e = this.backoff.attempts;
1261
+ this._reconnecting = !1, this.backoff.reset(), this.emitReserved("reconnect", e);
1262
+ }
1263
+ }
1264
+ const qe = {};
1265
+ function ot(a, e) {
1266
+ typeof a == "object" && (e = a, a = void 0);
1267
+ const t = function(l, c = "", h) {
1268
+ let d = l;
1269
+ h = h || typeof location != "undefined" && location, l == null && (l = h.protocol + "//" + h.host), typeof l == "string" && (l.charAt(0) === "/" && (l = l.charAt(1) === "/" ? h.protocol + l : h.host + l), /^(https?|wss?):\/\//.test(l) || (l = h !== void 0 ? h.protocol + "//" + l : "https://" + l), d = Rt(l)), d.port || (/^(http|ws)$/.test(d.protocol) ? d.port = "80" : /^(http|ws)s$/.test(d.protocol) && (d.port = "443")), d.path = d.path || "/";
1270
+ const u = d.host.indexOf(":") !== -1 ? "[" + d.host + "]" : d.host;
1271
+ return d.id = d.protocol + "://" + u + ":" + d.port + c, d.href = d.protocol + "://" + u + (h && h.port === d.port ? "" : ":" + d.port), d;
1272
+ }(a, (e = e || {}).path || "/socket.io"), n = t.source, r = t.id, i = t.path, o = qe[r] && i in qe[r].nsps;
1273
+ let s;
1274
+ return e.forceNew || e["force new connection"] || e.multiplex === !1 || o ? s = new Mt(n, e) : (qe[r] || (qe[r] = new Mt(n, e)), s = qe[r]), t.query && !e.query && (e.query = t.queryKey), s.socket(t.path, e);
1275
+ }
1276
+ Object.assign(ot, { Manager: Mt, Socket: Ka, io: ot, connect: ot });
1277
+ class Ir {
1278
+ constructor(e) {
1279
+ _(this, "socket");
1280
+ _(this, "encode");
1281
+ _(this, "decode");
1282
+ var t, n;
1283
+ this.socket = ot(e.baseUrl, { transports: ["websocket"], path: "/analytics/ws", auth: { token: e.authToken }, query: e.query }), this.encode = (t = e.encoder) != null ? t : (r) => function(i) {
1284
+ const o = new TextEncoder().encode(i);
1285
+ if (typeof window != "undefined" && typeof window.btoa == "function") {
1286
+ const s = Array.from(o, (l) => String.fromCharCode(l)).join("");
1287
+ return btoa(s);
1288
+ }
1289
+ if (typeof Buffer != "undefined") return Buffer.from(o).toString("base64");
1290
+ throw new Error("[utils.base64Encode]: Unsupported environment");
1291
+ }(JSON.stringify(r)), this.decode = (n = e.decoder) != null ? n : (r) => JSON.parse(((i) => {
1292
+ if (typeof window != "undefined" && typeof window.atob == "function") {
1293
+ const o = atob(i), s = o.length, l = new Uint8Array(s);
1294
+ for (let c = 0; c < s; c++) l[c] = o.charCodeAt(c);
1295
+ return new TextDecoder().decode(l);
1296
+ }
1297
+ if (typeof Buffer != "undefined") return Buffer.from(i, "base64").toString("utf-8");
1298
+ throw new Error("[utils.base64Decode]: Unsupported environment");
1299
+ })(r));
1300
+ }
1301
+ send(e, t) {
1302
+ this.socket.emit(e, this.encode(t));
1303
+ }
1304
+ on(e, t) {
1305
+ this.socket.on(e, (n) => t(this.decode(n)));
1306
+ }
1307
+ }
1308
+ class Cr {
1309
+ constructor(e) {
1310
+ _(this, "defaultTTL");
1311
+ _(this, "items");
1312
+ if (this.defaultTTL = e, e <= 0) throw new Error("Default TTL must be a positive number.");
1313
+ this.items = /* @__PURE__ */ new Map(), this.defaultTTL = e, setInterval(() => this.cleanup(), e);
1314
+ }
1315
+ add(e, t) {
1316
+ const n = t !== void 0 ? t : this.defaultTTL;
1317
+ if (n <= 0) throw new Error("TTL must be a positive number.");
1318
+ const r = Date.now() + n;
1319
+ this.items.set(e, r);
1320
+ }
1321
+ has(e) {
1322
+ const t = this.items.get(e);
1323
+ return t !== void 0 && (!(Date.now() > t) || (this.items.delete(e), !1));
1324
+ }
1325
+ delete(e) {
1326
+ this.items.delete(e);
1327
+ }
1328
+ get size() {
1329
+ return this.cleanup(), this.items.size;
1330
+ }
1331
+ clear() {
1332
+ this.items.clear();
1333
+ }
1334
+ cleanup() {
1335
+ const e = Date.now();
1336
+ for (const [t, n] of this.items.entries()) n <= e && this.items.delete(t);
1337
+ }
1338
+ toArray() {
1339
+ return this.cleanup(), Array.from(this.items.keys());
1340
+ }
1341
+ }
1342
+ var ca, ha;
1343
+ (function(a) {
1344
+ a.OpenUrl = "openUrl", a.CallPhone = "callPhone", a.SendEmail = "sendEmail", a.TriggerEvent = "triggerEvent";
1345
+ })(ca || (ca = {})), function(a) {
1346
+ a.Button = "button", a.Link = "link";
1347
+ }(ha || (ha = {}));
1348
+ class Sr {
1349
+ constructor(e) {
1350
+ _(this, "options");
1351
+ _(this, "client");
1352
+ _(this, "userId");
1353
+ _(this, "global");
1354
+ _(this, "queue", []);
1355
+ _(this, "knownEvents", ["nudge.show"]);
1356
+ _(this, "eventListeners", {});
1357
+ _(this, "recentNudgeIds", new Cr(1e3));
1358
+ this.options = e;
1359
+ const t = { sdk_name: e.sdk || "node", sdk_version: e.sdkVersion || "" };
1360
+ this.client = new Ir({ baseUrl: e.apiUrl || "https://analytic.brainfi.sh", authToken: e.accessKey, query: t }), this.setupIncomingPayloadHandler();
1361
+ }
1362
+ init() {
1363
+ }
1364
+ ready() {
1365
+ this.options.waitForUser = !1, this.flush();
1366
+ }
1367
+ setupIncomingPayloadHandler() {
1368
+ this.client.on("e", this.handleIncomingPayload.bind(this));
1369
+ }
1370
+ handleIncomingPayload(e) {
1371
+ if (e.type === "nudge.show") {
1372
+ const { nudgeId: t } = e.payload;
1373
+ if (this.recentNudgeIds.has(t)) return;
1374
+ this.recentNudgeIds.add(t), this.dispatchEventListeners("nudge.show", e.payload);
1375
+ }
1376
+ }
1377
+ dispatchEventListeners(e, t) {
1378
+ var n;
1379
+ (n = this.eventListeners[e]) == null || n.forEach((r) => r(t));
1380
+ }
1381
+ on(e, t) {
1382
+ this.knownEvents.includes(e) && (this.eventListeners[e] || (this.eventListeners[e] = []), this.eventListeners[e].push(t));
1383
+ }
1384
+ off(e, t) {
1385
+ this.knownEvents.includes(e) && this.eventListeners[e] && (this.eventListeners[e] = this.eventListeners[e].filter((n) => n !== t), this.eventListeners[e].length === 0 && delete this.eventListeners[e]);
1386
+ }
1387
+ send(e) {
1388
+ return O(this, null, function* () {
1389
+ return this.options.disabled || this.options.filter && !this.options.filter(e) ? Promise.resolve() : this.options.waitForUser && !this.userId ? (this.queue.push(e), Promise.resolve()) : this.client.send("t", e);
1390
+ });
1391
+ }
1392
+ setGlobalProperties(e) {
1393
+ this.global = he(he({}, this.global), e);
1394
+ }
1395
+ track(e, t) {
1396
+ return O(this, null, function* () {
1397
+ var n, r;
1398
+ return this.send({ type: "event.track", payload: { name: e, userId: (n = t == null ? void 0 : t.userId) != null ? n : this.userId, properties: he(he({}, (r = this.global) != null ? r : {}), t != null ? t : {}) } });
1399
+ });
1400
+ }
1401
+ identify(e) {
1402
+ return O(this, null, function* () {
1403
+ if (e.userId && (this.userId = e.userId, this.flush()), Object.keys(e).length > 1) return this.send({ type: "user.identify", payload: xe(he({}, e), { properties: he(he({}, this.global), e.properties) }) });
1404
+ });
1405
+ }
1406
+ record(e) {
1407
+ return O(this, null, function* () {
1408
+ return this.send({ type: "event.record", payload: { events: e, userId: this.userId } });
1409
+ });
1410
+ }
1411
+ alias(e) {
1412
+ return O(this, null, function* () {
1413
+ return this.send({ type: "user.alias", payload: e });
1414
+ });
1415
+ }
1416
+ increment(e) {
1417
+ return O(this, null, function* () {
1418
+ return this.send({ type: "user.increment", payload: e });
1419
+ });
1420
+ }
1421
+ decrement(e) {
1422
+ return O(this, null, function* () {
1423
+ return this.send({ type: "user.decrement", payload: e });
1424
+ });
1425
+ }
1426
+ clear() {
1427
+ this.userId = void 0;
1428
+ }
1429
+ flush() {
1430
+ this.queue.forEach((e) => {
1431
+ var t;
1432
+ this.send(xe(he({}, e), { payload: xe(he({}, e.payload), { userId: (t = e.payload.userId) != null ? t : this.userId }) }));
1433
+ }), this.queue = [];
1434
+ }
1435
+ }
1436
+ const Ar = /* @__PURE__ */ (() => {
1437
+ let a = 0;
1438
+ return () => (a += 1, `u${`0000${(Math.random() * na(36, 4) | 0).toString(36)}`.slice(-4)}${a}`);
1439
+ })();
1440
+ function Ce(a) {
1441
+ const e = [];
1442
+ for (let t = 0, n = a.length; t < n; t++) e.push(a[t]);
1443
+ return e;
1444
+ }
1445
+ function $e(a, e) {
1446
+ const t = (a.ownerDocument.defaultView || window).getComputedStyle(a).getPropertyValue(e);
1447
+ return t ? parseFloat(t.replace("px", "")) : 0;
1448
+ }
1449
+ function Ya(a, e = {}) {
1450
+ return { width: e.width || function(t) {
1451
+ const n = $e(t, "border-left-width"), r = $e(t, "border-right-width");
1452
+ return t.clientWidth + n + r;
1453
+ }(a), height: e.height || function(t) {
1454
+ const n = $e(t, "border-top-width"), r = $e(t, "border-bottom-width");
1455
+ return t.clientHeight + n + r;
1456
+ }(a) };
1457
+ }
1458
+ const ue = 16384;
1459
+ function st(a) {
1460
+ return new Promise((e, t) => {
1461
+ const n = new Image();
1462
+ n.decode = () => e(n), n.onload = () => e(n), n.onerror = t, n.crossOrigin = "anonymous", n.decoding = "async", n.src = a;
1463
+ });
1464
+ }
1465
+ function jr(a, e, t) {
1466
+ return O(this, null, function* () {
1467
+ const n = "http://www.w3.org/2000/svg", r = document.createElementNS(n, "svg"), i = document.createElementNS(n, "foreignObject");
1468
+ return r.setAttribute("width", `${e}`), r.setAttribute("height", `${t}`), r.setAttribute("viewBox", `0 0 ${e} ${t}`), i.setAttribute("width", "100%"), i.setAttribute("height", "100%"), i.setAttribute("x", "0"), i.setAttribute("y", "0"), i.setAttribute("externalResourcesRequired", "true"), r.appendChild(i), i.appendChild(a), function(o) {
1469
+ return O(this, null, function* () {
1470
+ return Promise.resolve().then(() => new XMLSerializer().serializeToString(o)).then(encodeURIComponent).then((s) => `data:image/svg+xml;charset=utf-8,${s}`);
1471
+ });
1472
+ }(r);
1473
+ });
1474
+ }
1475
+ const de = (a, e) => {
1476
+ if (a instanceof e) return !0;
1477
+ const t = Object.getPrototypeOf(a);
1478
+ return t !== null && (t.constructor.name === e.name || de(t, e));
1479
+ };
1480
+ function zr(a, e, t) {
1481
+ const n = `.${a}:${e}`, r = t.cssText ? function(i) {
1482
+ const o = i.getPropertyValue("content");
1483
+ return `${i.cssText} content: '${o.replace(/'|"/g, "")}';`;
1484
+ }(t) : function(i) {
1485
+ return Ce(i).map((o) => `${o}: ${i.getPropertyValue(o)}${i.getPropertyPriority(o) ? " !important" : ""};`).join(" ");
1486
+ }(t);
1487
+ return document.createTextNode(`${n}{${r}}`);
1488
+ }
1489
+ function da(a, e, t) {
1490
+ const n = window.getComputedStyle(a, t), r = n.getPropertyValue("content");
1491
+ if (r === "" || r === "none") return;
1492
+ const i = Ar();
1493
+ try {
1494
+ e.className = `${e.className} ${i}`;
1495
+ } catch (s) {
1496
+ return;
1497
+ }
1498
+ const o = document.createElement("style");
1499
+ o.appendChild(zr(i, t, n)), e.appendChild(o);
1500
+ }
1501
+ const ua = "application/font-woff", ma = "image/jpeg", Er = { woff: ua, woff2: ua, ttf: "application/font-truetype", eot: "application/vnd.ms-fontobject", png: "image/png", jpg: ma, jpeg: ma, gif: "image/gif", tiff: "image/tiff", svg: "image/svg+xml", webp: "image/webp" };
1502
+ function Yt(a) {
1503
+ const e = function(t) {
1504
+ const n = /\.([^./]*?)$/g.exec(t);
1505
+ return n ? n[1] : "";
1506
+ }(a).toLowerCase();
1507
+ return Er[e] || "";
1508
+ }
1509
+ function Lt(a) {
1510
+ return a.search(/^(data:)/) !== -1;
1511
+ }
1512
+ function Ha(a, e, t) {
1513
+ return O(this, null, function* () {
1514
+ const n = yield fetch(a, e);
1515
+ if (n.status === 404) throw new Error(`Resource "${n.url}" not found`);
1516
+ const r = yield n.blob();
1517
+ return new Promise((i, o) => {
1518
+ const s = new FileReader();
1519
+ s.onerror = o, s.onloadend = () => {
1520
+ try {
1521
+ i(t({ res: n, result: s.result }));
1522
+ } catch (l) {
1523
+ o(l);
1524
+ }
1525
+ }, s.readAsDataURL(r);
1526
+ });
1527
+ });
1528
+ }
1529
+ const St = {};
1530
+ function Ht(a, e, t) {
1531
+ return O(this, null, function* () {
1532
+ const n = function(i, o, s) {
1533
+ let l = i.replace(/\?.*/, "");
1534
+ return s && (l = i), /ttf|otf|eot|woff2?/i.test(l) && (l = l.replace(/.*\//, "")), o ? `[${o}]${l}` : l;
1535
+ }(a, e, t.includeQueryParams);
1536
+ if (St[n] != null) return St[n];
1537
+ let r;
1538
+ t.cacheBust && (a += (/\?/.test(a) ? "&" : "?") + (/* @__PURE__ */ new Date()).getTime());
1539
+ try {
1540
+ const i = yield Ha(a, t.fetchRequestInit, ({ res: o, result: s }) => (e || (e = o.headers.get("Content-Type") || ""), function(l) {
1541
+ return l.split(/,/)[1];
1542
+ }(s)));
1543
+ r = function(o, s) {
1544
+ return `data:${s};base64,${o}`;
1545
+ }(i, e);
1546
+ } catch (i) {
1547
+ r = t.imagePlaceholder || "";
1548
+ let o = `Failed to fetch resource: ${a}`;
1549
+ i && (o = typeof i == "string" ? i : i.message), o && console.warn(o);
1550
+ }
1551
+ return St[n] = r, r;
1552
+ });
1553
+ }
1554
+ function xr(a, e) {
1555
+ return O(this, null, function* () {
1556
+ return de(a, HTMLCanvasElement) ? function(t) {
1557
+ return O(this, null, function* () {
1558
+ const n = t.toDataURL();
1559
+ return n === "data:," ? t.cloneNode(!1) : st(n);
1560
+ });
1561
+ }(a) : de(a, HTMLVideoElement) ? function(t, n) {
1562
+ return O(this, null, function* () {
1563
+ if (t.currentSrc) {
1564
+ const o = document.createElement("canvas"), s = o.getContext("2d");
1565
+ return o.width = t.clientWidth, o.height = t.clientHeight, s == null || s.drawImage(t, 0, 0, o.width, o.height), st(o.toDataURL());
1566
+ }
1567
+ const r = t.poster, i = Yt(r);
1568
+ return st(yield Ht(r, i, n));
1569
+ });
1570
+ }(a, e) : de(a, HTMLIFrameElement) ? function(t) {
1571
+ return O(this, null, function* () {
1572
+ var n;
1573
+ try {
1574
+ if (!((n = t == null ? void 0 : t.contentDocument) === null || n === void 0) && n.body) return yield dt(t.contentDocument.body, {}, !0);
1575
+ } catch (r) {
1576
+ }
1577
+ return t.cloneNode(!1);
1578
+ });
1579
+ }(a) : a.cloneNode(!1);
1580
+ });
1581
+ }
1582
+ const Tr = (a) => a.tagName != null && a.tagName.toUpperCase() === "SLOT";
1583
+ function Rr(a, e) {
1584
+ return de(e, Element) && (function(t, n) {
1585
+ const r = n.style;
1586
+ if (!r) return;
1587
+ const i = window.getComputedStyle(t);
1588
+ i.cssText ? (r.cssText = i.cssText, r.transformOrigin = i.transformOrigin) : Ce(i).forEach((o) => {
1589
+ let s = i.getPropertyValue(o);
1590
+ o === "font-size" && s.endsWith("px") && (s = `${Math.floor(parseFloat(s.substring(0, s.length - 2))) - 0.1}px`), de(t, HTMLIFrameElement) && o === "display" && s === "inline" && (s = "block"), o === "d" && n.getAttribute("d") && (s = `path(${n.getAttribute("d")})`), r.setProperty(o, s, i.getPropertyPriority(o));
1591
+ });
1592
+ }(a, e), function(t, n) {
1593
+ da(t, n, ":before"), da(t, n, ":after");
1594
+ }(a, e), function(t, n) {
1595
+ de(t, HTMLTextAreaElement) && (n.innerHTML = t.value), de(t, HTMLInputElement) && n.setAttribute("value", t.value);
1596
+ }(a, e), function(t, n) {
1597
+ if (de(t, HTMLSelectElement)) {
1598
+ const r = n, i = Array.from(r.children).find((o) => t.value === o.getAttribute("value"));
1599
+ i && i.setAttribute("selected", "");
1600
+ }
1601
+ }(a, e)), e;
1602
+ }
1603
+ function dt(a, e, t) {
1604
+ return O(this, null, function* () {
1605
+ return t || !e.filter || e.filter(a) ? Promise.resolve(a).then((n) => xr(n, e)).then((n) => function(r, i, o) {
1606
+ return O(this, null, function* () {
1607
+ var s, l;
1608
+ let c = [];
1609
+ return c = Tr(r) && r.assignedNodes ? Ce(r.assignedNodes()) : de(r, HTMLIFrameElement) && (!((s = r.contentDocument) === null || s === void 0) && s.body) ? Ce(r.contentDocument.body.childNodes) : Ce(((l = r.shadowRoot) !== null && l !== void 0 ? l : r).childNodes), c.length === 0 || de(r, HTMLVideoElement) || (yield c.reduce((h, d) => h.then(() => dt(d, o)).then((u) => {
1610
+ u && i.appendChild(u);
1611
+ }), Promise.resolve())), i;
1612
+ });
1613
+ }(a, n, e)).then((n) => Rr(a, n)).then((n) => function(r, i) {
1614
+ return O(this, null, function* () {
1615
+ const o = r.querySelectorAll ? r.querySelectorAll("use") : [];
1616
+ if (o.length === 0) return r;
1617
+ const s = {};
1618
+ for (let c = 0; c < o.length; c++) {
1619
+ const h = o[c].getAttribute("xlink:href");
1620
+ if (h) {
1621
+ const d = r.querySelector(h), u = document.querySelector(h);
1622
+ d || !u || s[h] || (s[h] = yield dt(u, i, !0));
1623
+ }
1624
+ }
1625
+ const l = Object.values(s);
1626
+ if (l.length) {
1627
+ const c = "http://www.w3.org/1999/xhtml", h = document.createElementNS(c, "svg");
1628
+ h.setAttribute("xmlns", c), h.style.position = "absolute", h.style.width = "0", h.style.height = "0", h.style.overflow = "hidden", h.style.display = "none";
1629
+ const d = document.createElementNS(c, "defs");
1630
+ h.appendChild(d);
1631
+ for (let u = 0; u < l.length; u++) d.appendChild(l[u]);
1632
+ r.appendChild(h);
1633
+ }
1634
+ return r;
1635
+ });
1636
+ }(n, e)) : null;
1637
+ });
1638
+ }
1639
+ const Ja = /url\((['"]?)([^'"]+?)\1\)/g, Nr = /url\([^)]+\)\s*format\((["']?)([^"']+)\1\)/g, Or = /src:\s*(?:url\([^)]+\)\s*format\([^)]+\)[,;]\s*)+/g;
1640
+ function _r(a, e, t, n, r) {
1641
+ return O(this, null, function* () {
1642
+ try {
1643
+ const i = t ? function(l, c) {
1644
+ if (l.match(/^[a-z]+:\/\//i)) return l;
1645
+ if (l.match(/^\/\//)) return window.location.protocol + l;
1646
+ if (l.match(/^[a-z]+:/i)) return l;
1647
+ const h = document.implementation.createHTMLDocument(), d = h.createElement("base"), u = h.createElement("a");
1648
+ return h.head.appendChild(d), h.body.appendChild(u), c && (d.href = c), u.href = l, u.href;
1649
+ }(e, t) : e, o = Yt(e);
1650
+ let s;
1651
+ return r || (s = yield Ht(i, o, n)), a.replace(function(l) {
1652
+ const c = l.replace(/([.*+?^${}()|\[\]\/\\])/g, "\\$1");
1653
+ return new RegExp(`(url\\(['"]?)(${c})(['"]?\\))`, "g");
1654
+ }(e), `$1${s}$3`);
1655
+ } catch (i) {
1656
+ }
1657
+ return a;
1658
+ });
1659
+ }
1660
+ function Qa(a) {
1661
+ return a.search(Ja) !== -1;
1662
+ }
1663
+ function Xa(a, e, t) {
1664
+ return O(this, null, function* () {
1665
+ if (!Qa(a)) return a;
1666
+ const n = function(i, { preferredFontFormat: o }) {
1667
+ return o ? i.replace(Or, (s) => {
1668
+ for (; ; ) {
1669
+ const [l, , c] = Nr.exec(s) || [];
1670
+ if (!c) return "";
1671
+ if (c === o) return `src: ${l};`;
1672
+ }
1673
+ }) : i;
1674
+ }(a, t);
1675
+ return function(i) {
1676
+ const o = [];
1677
+ return i.replace(Ja, (s, l, c) => (o.push(c), s)), o.filter((s) => !Lt(s));
1678
+ }(n).reduce((i, o) => i.then((s) => _r(s, o, e, t)), Promise.resolve(n));
1679
+ });
1680
+ }
1681
+ function et(a, e, t) {
1682
+ return O(this, null, function* () {
1683
+ var n;
1684
+ const r = (n = e.style) === null || n === void 0 ? void 0 : n.getPropertyValue(a);
1685
+ if (r) {
1686
+ const i = yield Xa(r, null, t);
1687
+ return e.style.setProperty(a, i, e.style.getPropertyPriority(a)), !0;
1688
+ }
1689
+ return !1;
1690
+ });
1691
+ }
1692
+ function $a(a, e) {
1693
+ return O(this, null, function* () {
1694
+ de(a, Element) && (yield function(t, n) {
1695
+ return O(this, null, function* () {
1696
+ (yield et("background", t, n)) || (yield et("background-image", t, n)), (yield et("mask", t, n)) || (yield et("mask-image", t, n));
1697
+ });
1698
+ }(a, e), yield function(t, n) {
1699
+ return O(this, null, function* () {
1700
+ const r = de(t, HTMLImageElement);
1701
+ if ((!r || Lt(t.src)) && (!de(t, SVGImageElement) || Lt(t.href.baseVal))) return;
1702
+ const i = r ? t.src : t.href.baseVal, o = yield Ht(i, Yt(i), n);
1703
+ yield new Promise((s, l) => {
1704
+ t.onload = s, t.onerror = l;
1705
+ const c = t;
1706
+ c.decode && (c.decode = s), c.loading === "lazy" && (c.loading = "eager"), r ? (t.srcset = "", t.src = o) : t.href.baseVal = o;
1707
+ });
1708
+ });
1709
+ }(a, e), yield function(t, n) {
1710
+ return O(this, null, function* () {
1711
+ const r = Ce(t.childNodes).map((i) => $a(i, n));
1712
+ yield Promise.all(r).then(() => t);
1713
+ });
1714
+ }(a, e));
1715
+ });
1716
+ }
1717
+ const ga = {};
1718
+ function pa(a) {
1719
+ return O(this, null, function* () {
1720
+ let e = ga[a];
1721
+ if (e != null) return e;
1722
+ const t = yield fetch(a);
1723
+ return e = { url: a, cssText: yield t.text() }, ga[a] = e, e;
1724
+ });
1725
+ }
1726
+ function ya(a, e) {
1727
+ return O(this, null, function* () {
1728
+ let t = a.cssText;
1729
+ const n = /url\(["']?([^"')]+)["']?\)/g, r = (t.match(/url\([^)]+\)/g) || []).map((i) => O(this, null, function* () {
1730
+ let o = i.replace(n, "$1");
1731
+ return o.startsWith("https://") || (o = new URL(o, a.url).href), Ha(o, e.fetchRequestInit, ({ result: s }) => (t = t.replace(i, `url(${s})`), [i, s]));
1732
+ }));
1733
+ return Promise.all(r).then(() => t);
1734
+ });
1735
+ }
1736
+ function ba(a) {
1737
+ if (a == null) return [];
1738
+ const e = [];
1739
+ let t = a.replace(/(\/\*[\s\S]*?\*\/)/gi, "");
1740
+ const n = new RegExp("((@.*?keyframes [\\s\\S]*?){([\\s\\S]*?}\\s*?)})", "gi");
1741
+ for (; ; ) {
1742
+ const o = n.exec(t);
1743
+ if (o === null) break;
1744
+ e.push(o[0]);
1745
+ }
1746
+ t = t.replace(n, "");
1747
+ const r = /@import[\s\S]*?url\([^)]*\)[\s\S]*?;/gi, i = new RegExp("((\\s*?(?:\\/\\*[\\s\\S]*?\\*\\/)?\\s*?@media[\\s\\S]*?){([\\s\\S]*?)}\\s*?})|(([\\s\\S]*?){([\\s\\S]*?)})", "gi");
1748
+ for (; ; ) {
1749
+ let o = r.exec(t);
1750
+ if (o === null) {
1751
+ if (o = i.exec(t), o === null) break;
1752
+ r.lastIndex = i.lastIndex;
1753
+ } else i.lastIndex = r.lastIndex;
1754
+ e.push(o[0]);
1755
+ }
1756
+ return e;
1757
+ }
1758
+ function Mr(a, e) {
1759
+ return O(this, null, function* () {
1760
+ if (a.ownerDocument == null) throw new Error("Provided element is not within a Document");
1761
+ const t = Ce(a.ownerDocument.styleSheets), n = yield function(r, i) {
1762
+ return O(this, null, function* () {
1763
+ const o = [], s = [];
1764
+ return r.forEach((l) => {
1765
+ if ("cssRules" in l) try {
1766
+ Ce(l.cssRules || []).forEach((c, h) => {
1767
+ if (c.type === CSSRule.IMPORT_RULE) {
1768
+ let d = h + 1;
1769
+ const u = pa(c.href).then((b) => ya(b, i)).then((b) => ba(b).forEach((f) => {
1770
+ try {
1771
+ l.insertRule(f, f.startsWith("@import") ? d += 1 : l.cssRules.length);
1772
+ } catch (R) {
1773
+ console.error("Error inserting rule from remote css", { rule: f, error: R });
1774
+ }
1775
+ })).catch((b) => {
1776
+ console.error("Error loading remote css", b.toString());
1777
+ });
1778
+ s.push(u);
1779
+ }
1780
+ });
1781
+ } catch (c) {
1782
+ const h = r.find((d) => d.href == null) || document.styleSheets[0];
1783
+ l.href != null && s.push(pa(l.href).then((d) => ya(d, i)).then((d) => ba(d).forEach((u) => {
1784
+ h.insertRule(u, l.cssRules.length);
1785
+ })).catch((d) => {
1786
+ console.error("Error loading remote stylesheet", d);
1787
+ })), console.error("Error inlining remote css file", c);
1788
+ }
1789
+ }), Promise.all(s).then(() => (r.forEach((l) => {
1790
+ if ("cssRules" in l) try {
1791
+ Ce(l.cssRules || []).forEach((c) => {
1792
+ o.push(c);
1793
+ });
1794
+ } catch (c) {
1795
+ console.error(`Error while reading CSS rules from ${l.href}`, c);
1796
+ }
1797
+ }), o));
1798
+ });
1799
+ }(t, e);
1800
+ return function(r) {
1801
+ return r.filter((i) => i.type === CSSRule.FONT_FACE_RULE).filter((i) => Qa(i.style.getPropertyValue("src")));
1802
+ }(n);
1803
+ });
1804
+ }
1805
+ function Lr(a, e) {
1806
+ return O(this, null, function* () {
1807
+ const t = e.fontEmbedCSS != null ? e.fontEmbedCSS : e.skipFonts ? null : yield function(n, r) {
1808
+ return O(this, null, function* () {
1809
+ const i = yield Mr(n, r);
1810
+ return (yield Promise.all(i.map((o) => {
1811
+ const s = o.parentStyleSheet ? o.parentStyleSheet.href : null;
1812
+ return Xa(o.cssText, s, r);
1813
+ }))).join(`
1814
+ `);
1815
+ });
1816
+ }(a, e);
1817
+ if (t) {
1818
+ const n = document.createElement("style"), r = document.createTextNode(t);
1819
+ n.appendChild(r), a.firstChild ? a.insertBefore(n, a.firstChild) : a.appendChild(n);
1820
+ }
1821
+ });
1822
+ }
1823
+ function Fr(t) {
1824
+ return O(this, arguments, function* (a, e = {}) {
1825
+ const { width: n, height: r } = Ya(a, e), i = yield dt(a, e, !0);
1826
+ return yield Lr(i, e), yield $a(i, e), function(o, s) {
1827
+ const { style: l } = o;
1828
+ s.backgroundColor && (l.backgroundColor = s.backgroundColor), s.width && (l.width = `${s.width}px`), s.height && (l.height = `${s.height}px`);
1829
+ const c = s.style;
1830
+ c != null && Object.keys(c).forEach((h) => {
1831
+ l[h] = c[h];
1832
+ });
1833
+ }(i, e), yield jr(i, n, r);
1834
+ });
1835
+ }
1836
+ function Br(t) {
1837
+ return O(this, arguments, function* (a, e = {}) {
1838
+ const { width: n, height: r } = Ya(a, e), i = yield Fr(a, e), o = yield st(i), s = document.createElement("canvas"), l = s.getContext("2d"), c = e.pixelRatio || function() {
1839
+ let u, b;
1840
+ try {
1841
+ b = process;
1842
+ } catch (R) {
1843
+ }
1844
+ const f = b && b.env ? b.env.devicePixelRatio : null;
1845
+ return f && (u = parseInt(f, 10), Number.isNaN(u) && (u = 1)), u || window.devicePixelRatio || 1;
1846
+ }(), h = e.canvasWidth || n, d = e.canvasHeight || r;
1847
+ return s.width = h * c, s.height = d * c, e.skipAutoScale || function(u) {
1848
+ (u.width > ue || u.height > ue) && (u.width > ue && u.height > ue ? u.width > u.height ? (u.height *= ue / u.width, u.width = ue) : (u.width *= ue / u.height, u.height = ue) : u.width > ue ? (u.height *= ue / u.width, u.width = ue) : (u.width *= ue / u.height, u.height = ue));
1849
+ }(s), s.style.width = `${h}`, s.style.height = `${d}`, e.backgroundColor && (l.fillStyle = e.backgroundColor, l.fillRect(0, 0, s.width, s.height)), l.drawImage(o, 0, 0, s.width, s.height), s;
1850
+ });
1851
+ }
1852
+ function Dr(a) {
1853
+ return O(this, null, function* () {
1854
+ const e = document.documentElement.scrollHeight, t = document.documentElement.scrollWidth, n = Array.from(document.styleSheets).map((o) => {
1855
+ try {
1856
+ return Array.from(o.cssRules).map((s) => s.cssText).join("");
1857
+ } catch (s) {
1858
+ return "";
1859
+ }
1860
+ }).join(`
1861
+ `), r = document.createElement("style");
1862
+ r.textContent = n, a.appendChild(r);
1863
+ const i = yield function(l) {
1864
+ return O(this, arguments, function* (o, s = {}) {
1865
+ return (yield Br(o, s)).toDataURL();
1866
+ });
1867
+ }(a, { quality: 0.7, width: t, height: e, style: { transform: "scale(1)" }, skipFonts: !0, cacheBust: !0, backgroundColor: "white", fetchRequestInit: { mode: "cors" } });
1868
+ return a.removeChild(r), i;
1869
+ });
1870
+ }
1871
+ const We = new RegExp("(((" + /(^|\.\s+)(dear|hi|hello|greetings|hey|hey there)/gi.source + ")|(" + /(thx|thanks|thank you|regards|best|[a-z]+ly|[a-z]+ regards|all the best|happy [a-z]+ing|take care|have a [a-z]+ (weekend|night|day))/gi.source + "\\s*[,.!]*))[\\s-]*)", "gi"), At = new RegExp("( ?(([A-Z][a-z]+)|([A-Z]\\.)))+([,.]|[,.]?$)", "gm"), qr = new RegExp("\\b(\\s*)(\\s*(" + ["aaron", "abad", "abarca", "abbate", "abbey", "abbie", "abbott", "abby", "abdullah", "abel", "abell", "abercrombie", "abernathy", "abernethy", "abeyta", "abigail", "ables", "abner", "abney", "abraham", "abrams", "abramson", "abrego", "abreu", "absher", "abshire", "acevedo", "aceves", "acker", "ackerman", "ackley", "acklin", "acord", "acosta", "acree", "acuff", "acuna", "ada", "adah", "adair", "adaline", "adam", "adame", "adames", "adams", "adamski", "adamson", "adcock", "addie", "addington", "addis", "addison", "adela", "adelaida", "adelaide", "adele", "adelia", "adelina", "adeline", "adell", "adella", "adelle", "adena", "adina", "adkins", "adkinson", "adkison", "adkisson", "adler", "adorno", "adria", "adrian", "adriana", "adriane", "adrianna", "adrianne", "adrien", "adriene", "adrienne", "afton", "agatha", "agnes", "agnew", "agnus", "agosto", "agripina", "aguayo", "agueda", "aguero", "aguiar", "aguila", "aguilar", "aguilera", "aguirre", "agustin", "agustina", "ahearn", "ahern", "ahlers", "ahmad", "ahmed", "ahn", "ahner", "aho", "ahrens", "ahumada", "aida", "aiello", "aiken", "aikens", "aiko", "aileen", "ailene", "aimee", "ainsworth", "aisha", "aitken", "aja", "aker", "akers", "akiko", "akilah", "akins", "alaina", "alaine", "alan", "alana", "alane", "alanis", "alaniz", "alanna", "alarcon", "alayna", "alba", "albanese", "albano", "albaugh", "albers", "albert", "alberta", "albertha", "albertina", "albertine", "alberto", "albertson", "albin", "albina", "albrecht", "albright", "albritton", "alcala", "alcantar", "alcantara", "alcaraz", "alcorn", "alda", "aldana", "alden", "alderete", "alderson", "aldrich", "aldridge", "alease", "alecia", "aleen", "aleida", "aleisha", "alejandra", "alejandrina", "alejandro", "aleman", "alena", "alene", "alesha", "aleshia", "alesia", "alessandra", "alessi", "aleta", "aletha", "alethea", "alethia", "alex", "alexa", "alexander", "alexandra", "alexandria", "alexia", "alexis", "alfano", "alfaro", "alfonso", "alford", "alfred", "alfreda", "alfredia", "alger", "ali", "alia", "alica", "alice", "alicea", "alicia", "alida", "alina", "aline", "alisa", "alise", "alisha", "alishia", "alisia", "alison", "alissa", "alita", "alix", "aliza", "alla", "allain", "allan", "allard", "alleen", "allegra", "alleman", "allen", "allena", "allene", "alleyne", "allgood", "allie", "alline", "allison", "allman", "allmon", "allred", "allyn", "allyson", "alma", "almanza", "almaraz", "almazan", "almeda", "almeida", "almeta", "almonte", "alona", "alonso", "alonzo", "alpert", "alston", "alsup", "alta", "altagracia", "altamirano", "altha", "althea", "altman", "alton", "alva", "alvarado", "alvardo", "alvarez", "alvera", "alverez", "alverson", "alverta", "alves", "alvey", "alvina", "alvis", "alyce", "alycia", "alysa", "alyse", "alysha", "alysia", "alyson", "alyssa", "amada", "amador", "amal", "amalia", "aman", "amanda", "amaral", "amaro", "amato", "amaya", "amber", "amberly", "ambriz", "ambrose", "amee", "amelia", "america", "amerson", "ames", "amey", "amick", "amie", "amiee", "amin", "amina", "amira", "ammerman", "ammie", "amos", "amparo", "amundson", "amy", "anabel", "analisa", "anamaria", "anastacia", "anastasia", "anaya", "ancheta", "andera", "anders", "andersen", "anderson", "anderton", "andes", "andino", "andra", "andrade", "andre", "andrea", "andree", "andres", "andresen", "andress", "andrew", "andrews", "andria", "andrus", "anette", "ange", "angela", "angele", "angelena", "angeles", "angelia", "angelica", "angelika", "angelina", "angeline", "angelique", "angelita", "angell", "angella", "angelo", "angelyn", "angie", "angila", "angla", "anglea", "anglin", "anguiano", "angulo", "angus", "anh", "anika", "anisa", "anisha", "anissa", "anita", "anitra", "anja", "anjanette", "anjelica", "ann", "anna", "annabel", "annabell", "annabelle", "annalee", "annalisa", "annamae", "annamaria", "annamarie", "anne", "anneliese", "annelle", "annemarie", "annett", "annetta", "annette", "annice", "annie", "annika", "annis", "annita", "annmarie", "anselmo", "ansley", "anson", "anthony", "antionette", "antoine", "antoinette", "anton", "antonelli", "antonetta", "antonette", "antonia", "antonietta", "antonina", "antonio", "anya", "aparicio", "apodaca", "apolonia", "aponte", "appleby", "applegate", "appleton", "applewhite", "appling", "apryl", "aquilar", "aquino", "araceli", "aracelis", "aracely", "aragon", "araiza", "arana", "aranda", "arango", "araujo", "arbogast", "arbuckle", "arce", "arcelia", "arceneaux", "archambault", "archibald", "archie", "archuleta", "arciniega", "ardath", "ardelia", "ardell", "ardella", "ardelle", "ardis", "ardith", "ardoin", "arellano", "aretha", "arevalo", "argelia", "argentina", "argo", "arguelles", "arguello", "argueta", "ariana", "ariane", "arianna", "arianne", "arica", "arie", "ariel", "arielle", "arla", "arlean", "arleen", "arlena", "arlene", "arletha", "arletta", "arlette", "arlinda", "arline", "arlyne", "armanda", "armandina", "armbruster", "armendariz", "armenta", "armentrout", "armes", "armida", "armijo", "arminda", "armistead", "armitage", "armstead", "armstrong", "arndt", "arneson", "arnett", "arnetta", "arnette", "arnita", "arnold", "arnone", "aronson", "arredondo", "arreola", "arriaga", "arrington", "arriola", "arrowood", "arruda", "arsenault", "arteaga", "arthur", "artie", "artis", "arvilla", "arvizu", "arwood", "arzola", "asberry", "asbury", "asha", "ashanti", "ashbaugh", "ashburn", "ashby", "ashcraft", "ashe", "ashely", "asher", "ashford", "ashlea", "ashlee", "ashleigh", "ashley", "ashli", "ashlie", "ashly", "ashlyn", "ashmore", "ashton", "ashworth", "asia", "askins", "asley", "assunta", "aston", "astrid", "asuncion", "atchison", "atchley", "atencio", "athena", "atherton", "athey", "atkins", "atkinson", "attaway", "atwater", "atwell", "atwood", "aube", "aubin", "aubrey", "aucoin", "audet", "audette", "audie", "audra", "audrea", "audrey", "audria", "audrie", "audry", "augusta", "augustin", "augustina", "augustine", "augustus", "ault", "aultman", "aundrea", "aurea", "aurelia", "aurora", "aurore", "austin", "auten", "autrey", "autry", "ava", "avalos", "avelar", "avelina", "avent", "averett", "averill", "avery", "avila", "aviles", "avina", "avis", "avril", "awilda", "ayako", "ayala", "ayana", "ayanna", "aycock", "ayer", "ayers", "ayesha", "ayotte", "azalee", "azar", "azevedo", "azucena", "azzie", "babara", "babb", "babcock", "baber", "babette", "babin", "babineaux", "baca", "bachman", "backman", "backus", "bader", "badgett", "badillo", "baer", "baez", "baeza", "bagby", "baggett", "bagley", "bagwell", "bahena", "bahr", "baier", "bailes", "bailey", "baillargeon", "baily", "bain", "baines", "bair", "baird", "baisden", "bakke", "bakken", "bakker", "balch", "balcom", "balderas", "baldridge", "baldwin", "ballance", "ballard", "ballenger", "ballentine", "ballesteros", "ballew", "ballinger", "ballou", "baltazar", "balzer", "bambi", "banas", "bancroft", "bankhead", "bankston", "bannon", "banta", "banuelos", "bao", "baptiste", "barabara", "barahona", "barajas", "baran", "baranowski", "barba", "barbar", "barbara", "barbee", "barbera", "barbieri", "barbosa", "barbour", "barboza", "barbra", "barclay", "barden", "bardwell", "barela", "barfield", "barger", "barham", "barhorst", "barkley", "barksdale", "barlow", "barnard", "barner", "barnes", "barnett", "barnette", "barnhart", "barnhill", "barnum", "barnwell", "barone", "barr", "barragan", "barraza", "barrera", "barreto", "barrett", "barrick", "barrie", "barrientos", "barringer", "barrington", "barron", "barros", "barry", "barta", "bartel", "bartell", "bartels", "barth", "bartholomew", "bartlett", "bartley", "barto", "bartz", "bascom", "basham", "basile", "basilia", "basinger", "baskerville", "baskin", "bassett", "bastian", "batchelder", "batchelor", "bateman", "batey", "batista", "batson", "battaglia", "battista", "batton", "baty", "baucom", "bauer", "baugh", "baugher", "baughman", "baum", "bauman", "baumann", "baumgardner", "baumgartner", "bautista", "baxley", "bayer", "bayless", "baylor", "bayne", "bazan", "bazemore", "beaird", "beal", "beale", "beall", "beals", "beaman", "beamon", "beane", "bearden", "beardsley", "beasley", "beason", "beaton", "beatrice", "beatris", "beatriz", "beattie", "beatty", "beaty", "beauchamp", "beaudette", "beaudoin", "beaudry", "beaulah", "beaulieu", "beaumont", "beauregard", "bebe", "becerra", "bechtel", "bechtold", "becker", "beckett", "beckford", "beckham", "becki", "beckie", "beckley", "beckman", "beckner", "beckwith", "becky", "becnel", "bedard", "bedford", "bedwell", "beebe", "beecher", "beeler", "beem", "beeman", "beene", "beesley", "beeson", "begay", "beggs", "begley", "behling", "behr", "behrens", "bejarano", "belanger", "belden", "belen", "belew", "belia", "belinda", "belisle", "belk", "belkis", "belknap", "bella", "bellamy", "belle", "beller", "bellinger", "bello", "belton", "beltran", "beltz", "belva", "bemis", "benally", "benavides", "benavidez", "benbow", "benedetto", "benedict", "benefield", "benfield", "benford", "benge", "benham", "benita", "benites", "benitez", "benn", "benner", "bennett", "bennie", "benning", "bennington", "benoit", "benson", "bentley", "benton", "bentz", "benz", "berard", "berenice", "bergen", "berger", "bergeron", "bergin", "berglund", "bergman", "bergmann", "bergquist", "bergstrom", "berkey", "berkley", "berkowitz", "berman", "bermudez", "berna", "bernadette", "bernadine", "bernal", "bernard", "bernarda", "bernardina", "bernardine", "bernardo", "berndt", "berneice", "berner", "bernetta", "bernhardt", "bernice", "bernie", "berniece", "bernier", "bernita", "bernstein", "berrios", "berryhill", "berryman", "berta", "bertha", "bertie", "bertram", "bertrand", "berube", "beryl", "bess", "bessette", "bessie", "betancourt", "beth", "bethanie", "bethann", "bethany", "bethea", "bethel", "bethune", "betsey", "betsy", "bette", "bettencourt", "bettie", "bettina", "bettis", "betts", "betty", "bettyann", "bettye", "betz", "beula", "beulah", "bev", "bevan", "beveridge", "beverlee", "beverley", "beverly", "bevins", "bevis", "bewley", "beyer", "bianca", "bianchi", "bianco", "bibb", "bibbs", "bickel", "bickerstaff", "bickford", "biddle", "bidwell", "bieber", "bierman", "bigelow", "biggers", "biggerstaff", "bigham", "bigler", "bigley", "bilbrey", "biller", "billi", "billie", "billingsley", "billington", "billiot", "billups", "billy", "billye", "bilodeau", "bilyeu", "binette", "binford", "bingaman", "bingham", "binion", "binkley", "binns", "birchfield", "birdsall", "birdsong", "birdwell", "birgit", "birmingham", "birnbaum", "birt", "bischoff", "bissell", "bissonnette", "bitner", "bittner", "bivens", "bivins", "bixby", "bixler", "blackburn", "blackford", "blackman", "blackmon", "blackmore", "blackshear", "blackstock", "blackstone", "blackwell", "blaine", "blair", "blais", "blaisdell", "blake", "blakely", "blakemore", "blakeney", "blakeslee", "blakey", "blakley", "blakney", "blalock", "blanc", "blanca", "blanch", "blanchard", "blanche", "blanchette", "blanding", "blaney", "blankenship", "blanton", "blaylock", "bledsoe", "blevins", "bloch", "blodgett", "blomquist", "blondell", "bloodworth", "bloomfield", "blouin", "blount", "bluhm", "blum", "blume", "blumenthal", "bly", "blythe", "boardman", "boatright", "boatwright", "bobb", "bobbi", "bobbie", "bobbitt", "bobby", "bobbye", "bobette", "bobo", "bocanegra", "boddie", "boden", "bodine", "bodnar", "boehm", "boettcher", "bogard", "bogart", "boger", "boggess", "boggs", "bohannan", "bohannon", "bohn", "boisvert", "bojorquez", "bok", "boland", "bolanos", "bolding", "boldt", "bolduc", "bolen", "boley", "bolick", "bolin", "boling", "bolinger", "bollinger", "bolton", "bolyard", "boman", "bomar", "bonanno", "boney", "bonham", "bonilla", "bonin", "bonita", "bonnell", "bonner", "bonnett", "bonney", "bonnie", "bonny", "bono", "booher", "booker", "bookout", "boone", "boothe", "bopp", "borchardt", "borchers", "bordeaux", "bordelon", "borden", "boren", "borg", "borges", "borja", "borkowski", "borowski", "borrego", "borrero", "borst", "bosch", "bosco", "bosley", "bost", "bostic", "bostick", "bostwick", "boswell", "bosworth", "botelho", "botello", "bouchard", "boucher", "boudreau", "boudreaux", "bouffard", "boughton", "bouie", "boulanger", "bouldin", "boulware", "bourassa", "bourque", "bousquet", "boutin", "boutte", "boutwell", "bova", "bove", "bowden", "bowe", "bowen", "bowens", "bowes", "bowie", "bowker", "bowles", "bowlin", "boyce", "boyd", "boyer", "boyes", "boyett", "boyette", "boykin", "boykins", "boylan", "boyle", "boyles", "boynton", "bozarth", "bozeman", "bracey", "brackett", "bracy", "bradberry", "bradbury", "braddock", "braddy", "braden", "bradfield", "bradford", "bradley", "bradshaw", "brady", "bragdon", "bragg", "brainard", "braithwaite", "braley", "bramblett", "bramlett", "brammer", "branda", "brande", "brandee", "brandenburg", "brandes", "brandi", "brandie", "brandon", "brandt", "branham", "brann", "brannan", "brannen", "brannon", "branscum", "branson", "brantley", "branton", "branum", "brashear", "braswell", "bratcher", "bratton", "braud", "brauer", "braun", "brawley", "brawner", "braxton", "brayton", "brazell", "braziel", "breana", "breann", "breanna", "breanne", "breault", "breaux", "breazeale", "breckenridge", "bree", "breeden", "breedlove", "breen", "brehm", "breland", "bremer", "brenda", "brenna", "brennan", "brenneman", "brenner", "bresnahan", "brett", "bretz", "breunig", "brewington", "brewton", "brian", "briana", "brianna", "brianne", "brice", "briceno", "bricker", "brickey", "bridgeman", "bridgers", "bridget", "bridgett", "bridgette", "bridgewater", "brien", "brigette", "briggs", "brigham", "brigid", "brigida", "brigitte", "briley", "brinda", "brinker", "brinkley", "brinkman", "brinson", "brinton", "briones", "brisco", "briscoe", "briseno", "brisson", "brister", "bristol", "bristow", "britany", "britney", "britni", "brito", "britt", "britta", "brittain", "brittaney", "brittani", "brittanie", "brittany", "britteny", "brittingham", "brittney", "brittni", "brittny", "britton", "broadbent", "broaddus", "broadnax", "broadus", "broadwater", "brochu", "brockington", "brockman", "brockway", "broderick", "brodeur", "brodie", "brodsky", "brody", "brogdon", "brokaw", "bromley", "bronson", "bronwyn", "brooke", "brooker", "brookins", "brookshire", "broome", "broomfield", "brophy", "brotherton", "broughton", "broussard", "browder", "brower", "browne", "brownell", "brownfield", "brownlee", "broyles", "brubaker", "bruce", "brumbaugh", "brumfield", "brumley", "brummett", "bruna", "brundage", "brune", "brunelle", "bruner", "brunilda", "brunner", "bruno", "bruns", "brunson", "bruton", "bryan", "bryanna", "bryant", "bryce", "brynn", "bryson", "bucci", "buchanan", "bucher", "buchholz", "buckingham", "buckley", "buckman", "buckner", "budd", "budde", "buehler", "buell", "buena", "bueno", "buenrostro", "buettner", "buffington", "bufford", "buffy", "buford", "bugg", "buggs", "bui", "buie", "bula", "bulah", "bullard", "bullen", "buller", "bullington", "bullins", "bullis", "bulter", "bumgardner", "bumgarner", "bunn", "bunnell", "bunton", "burbank", "burch", "burcham", "burchell", "burchett", "burchette", "burchfield", "burdett", "burdette", "burdick", "burdine", "burford", "burge", "burgett", "burgin", "burgos", "burkett", "burkey", "burkhalter", "burkhardt", "burkhart", "burkholder", "burleigh", "burleson", "burlingame", "burma", "burmeister", "burnell", "burnett", "burnette", "burney", "burnham", "burrell", "burress", "burris", "burroughs", "burrus", "burruss", "burson", "burt", "burwell", "busch", "bushey", "bushnell", "bussard", "busse", "bussell", "bussey", "bustamante", "bustos", "butterfield", "butterworth", "butz", "buxton", "buzzell", "byars", "bybee", "byer", "byerly", "byers", "byington", "byler", "bynum", "byrd", "byrne", "byrnes", "byron", "byrum", "caballero", "caban", "cabe", "cabral", "cabrales", "cabrera", "caceres", "caddell", "cadena", "cadwell", "cady", "caffey", "cagle", "cahill", "cahoon", "caine", "caines", "caitlin", "caitlyn", "calabro", "calandra", "calder", "calderon", "caldwell", "calfee", "calhoun", "calista", "callaghan", "callahan", "callaway", "callen", "callender", "callie", "callihan", "callis", "callison", "calloway", "calton", "calvert", "calvillo", "calvin", "calvo", "calzada", "camacho", "camara", "camarena", "camargo", "camarillo", "cambell", "camelia", "camellia", "cameron", "cami", "camie", "camila", "camilla", "camille", "camire", "cammack", "cammie", "cammy", "campbell", "campuzano", "canada", "canaday", "canady", "canales", "candace", "candance", "candelaria", "candelario", "candi", "candice", "candida", "candie", "candis", "candler", "candra", "candyce", "cannady", "cano", "cantara", "cantrell", "cantu", "cantwell", "cao", "capel", "capone", "capps", "caprice", "capuano", "caputo", "cara", "caraballo", "carbajal", "carbaugh", "carbone", "carden", "cardenas", "cardin", "cardinale", "cardona", "cardoso", "cardoza", "cardwell", "caren", "carey", "cargile", "cargill", "cari", "caridad", "carie", "carillo", "carin", "carina", "carisa", "carissa", "carita", "carl", "carla", "carlee", "carleen", "carlena", "carlene", "carleton", "carletta", "carley", "carli", "carlie", "carlile", "carlin", "carline", "carlisle", "carlita", "carlo", "carlos", "carlota", "carlotta", "carlsen", "carlson", "carlton", "carly", "carlyle", "carlyn", "carma", "carmack", "carman", "carmel", "carmela", "carmelia", "carmelina", "carmelita", "carmella", "carmen", "carmichael", "carmina", "carmody", "carmon", "carmona", "carnahan", "carner", "carnes", "caro", "carola", "carolann", "carole", "carolee", "carolin", "carolina", "caroline", "caroll", "carolyn", "carolyne", "carolynn", "caron", "carothers", "caroyln", "carpio", "carranza", "carrasco", "carrasquillo", "carreno", "carreon", "carrera", "carrero", "carri", "carrico", "carrie", "carrigan", "carrillo", "carrington", "carrizales", "carrol", "carroll", "carruth", "carruthers", "carson", "carswell", "cartagena", "cartier", "carty", "caruso", "caruthers", "carvajal", "carvalho", "cary", "caryl", "carylon", "caryn", "casandra", "casanova", "casares", "casarez", "casavant", "cascio", "casey", "cashman", "casiano", "casias", "casie", "casillas", "casimira", "caskey", "cason", "casper", "cass", "cassady", "cassandra", "cassaundra", "cassel", "cassell", "cassey", "cassi", "cassidy", "cassie", "cassity", "cassondra", "cassy", "castaneda", "castano", "castanon", "casteel", "castellano", "castellanos", "castello", "castillo", "castleberry", "castleman", "casto", "caston", "castorena", "castro", "caswell", "catalan", "catalano", "catalina", "catarina", "caterina", "catharine", "cathcart", "catherin", "catherina", "catherine", "cathern", "catheryn", "cathey", "cathi", "cathie", "cathleen", "cathrine", "cathryn", "cathy", "catina", "catlett", "catlin", "cato", "caton", "catrice", "catrina", "catron", "caudell", "caudill", "cauley", "caulfield", "cauthen", "cavanaugh", "cavazos", "cavender", "cavin", "caviness", "cawley", "cawthon", "cayla", "caylor", "cazares", "ceasar", "ceballos", "cecelia", "cecil", "cecila", "cecile", "cecilia", "cecille", "cecily", "cedeno", "cedillo", "ceja", "celena", "celesta", "celeste", "celestina", "celestine", "celia", "celina", "celinda", "celine", "celsa", "centeno", "ceola", "cepeda", "cerda", "cervantes", "cervantez", "chabot", "chacon", "chadwell", "chadwick", "chae", "chaffee", "chaffin", "chafin", "chaisson", "chalfant", "chalmers", "chamberlain", "chamberlin", "chamblee", "chambless", "chambliss", "chamness", "champlin", "chan", "chana", "chanda", "chandra", "chanel", "chanell", "chanelle", "chaney", "chang", "chantal", "chantay", "chante", "chantel", "chantell", "chantelle", "chao", "chapa", "chaparro", "chapin", "chaplin", "chappell", "chapple", "chara", "charbonneau", "charest", "charette", "charis", "charise", "charissa", "charisse", "charita", "charla", "charland", "charleen", "charlena", "charlene", "charles", "charlesetta", "charlette", "charley", "charlie", "charline", "charlott", "charlotte", "charlsie", "charlton", "charlyn", "charmain", "charmaine", "charolette", "charron", "chartier", "chasidy", "chasity", "chassidy", "chastain", "chasteen", "chatham", "chatman", "chau", "chavarria", "chavers", "chaves", "chavez", "chavira", "chavis", "chaya", "cheatham", "chee", "chelsea", "chelsey", "chelsie", "chen", "chenault", "cheney", "cheng", "chenoweth", "cher", "chere", "cheree", "cherelle", "cheri", "cherie", "cherilyn", "cherise", "cherly", "cherlyn", "cherri", "cherrie", "cherryl", "chery", "cheryl", "cheryle", "cheryll", "chesser", "chesson", "chester", "cheung", "chewning", "cheyenne", "chiang", "chidester", "chieko", "childers", "childress", "childs", "chilton", "ching", "chinn", "chipman", "chiquita", "chisholm", "chism", "chisolm", "chitwood", "chiu", "chloe", "cho", "choate", "choe", "choi", "chong", "chouinard", "chris", "chrisman", "chrissy", "christ", "christa", "christal", "christeen", "christel", "christen", "christena", "christene", "christensen", "christenson", "christi", "christia", "christian", "christiana", "christiane", "christiansen", "christianson", "christie", "christin", "christina", "christine", "christinia", "christman", "christmas", "christner", "christopher", "christopherso", "christy", "chronister", "chrystal", "chu", "chun", "chung", "churchill", "churchwell", "ciara", "cicely", "ciera", "cierra", "cimino", "cinda", "cinderella", "cindi", "cindie", "cindy", "cinthia", "cintron", "cioffi", "cira", "cisneros", "claar", "claiborne", "clair", "claire", "clancy", "clanton", "clapp", "clara", "clardy", "clare", "clarence", "claretha", "claretta", "claribel", "clarice", "clarinda", "clarine", "claris", "clarisa", "clarissa", "clarita", "clark", "clarke", "clarkson", "classie", "claude", "claudette", "claudia", "claudie", "claudine", "claudio", "claus", "clausen", "claussen", "clawson", "claxton", "claycomb", "claypool", "claypoole", "clayton", "claytor", "cleary", "clegg", "cleghorn", "cleland", "clelia", "clemencia", "clemens", "clemente", "clementina", "clementine", "clements", "clemmer", "clemmie", "clemmons", "clemons", "cleo", "cleopatra", "cleora", "cleotilde", "cleta", "cleveland", "clevenger", "clifford", "clifton", "clinkscales", "clinton", "cloninger", "clora", "clorinda", "clotilde", "clouse", "cloutier", "clower", "clowers", "cloyd", "cluff", "clyburn", "clyde", "clymer", "coakley", "coan", "coates", "cobos", "coburn", "cochran", "cochrane", "cockerham", "cockrell", "codi", "cody", "coe", "coelho", "coen", "cofer", "coffelt", "coffey", "coffman", "cofield", "cogan", "coggins", "cogswell", "cohen", "cohn", "coker", "colangelo", "colbert", "colburn", "colby", "coldiron", "coleen", "colella", "coleman", "colene", "coletta", "colette", "collado", "collazo", "colleen", "collen", "collene", "collett", "collette", "colletti", "colley", "collin", "collins", "collinsworth", "collum", "colman", "colombo", "colquitt", "colson", "colston", "colton", "colucci", "colunga", "colvin", "colwell", "comeau", "comeaux", "compton", "comstock", "conant", "conaway", "concepcion", "concetta", "concha", "conchita", "conde", "condon", "congdon", "conklin", "conley", "conlin", "conlon", "connally", "connell", "connelly", "connie", "connolly", "connor", "connors", "conover", "conrad", "conroy", "constance", "constantine", "constantino", "consuela", "consuelo", "contessa", "conti", "contreras", "conway", "conwell", "conyers", "cooke", "cooksey", "cookson", "cooley", "coolidge", "coomer", "cooney", "copeland", "copenhaver", "copley", "coppage", "coppola", "cora", "coralee", "coralie", "corazon", "corbett", "corbin", "corbitt", "corcoran", "cordeiro", "cordelia", "cordell", "corder", "cordero", "cordes", "cordia", "cordie", "cordoba", "cordova", "coreen", "corene", "coretta", "corey", "cori", "corie", "corina", "corine", "corinna", "corinne", "corley", "corliss", "cormier", "cornejo", "cornelia", "cornelison", "cornelius", "cornell", "cornish", "cornwell", "coronado", "coronel", "corpuz", "corr", "corrales", "correa", "correia", "correll", "corrie", "corrigan", "corrin", "corrina", "corrine", "corrinne", "corriveau", "corson", "cortes", "cortese", "cortez", "cortney", "corum", "corwin", "cory", "cosby", "cosentino", "cosgrove", "cosme", "cosper", "costanzo", "costello", "coston", "cota", "cothran", "cotten", "cottingham", "cottle", "cotto", "cottrell", "cottrill", "coughlin", "coulombe", "coulson", "courson", "courtney", "covarrubias", "covington", "cowart", "cowden", "cowell", "cowen", "cowgill", "cowles", "cowley", "coyle", "coyne", "cozart", "crabb", "crabtree", "craddock", "crafton", "craighead", "crain", "cramer", "crampton", "crandall", "crandell", "cranford", "crawford", "crawley", "crayton", "creech", "creekmore", "creighton", "crenshaw", "creola", "crespo", "creswell", "cribb", "cribbs", "crider", "crigger", "crim", "criner", "crippen", "cris", "criselda", "criss", "crissman", "crissy", "crist", "crista", "cristal", "cristen", "cristi", "cristie", "cristin", "cristina", "cristine", "cristy", "criswell", "crites", "crittenden", "crocker", "crockett", "cromer", "cromwell", "cronin", "croom", "crosby", "crossland", "crossley", "crossman", "crosson", "croteau", "crotty", "crowe", "crowell", "crowl", "crowley", "crowson", "crowther", "croy", "cruce", "crum", "crumley", "crumpler", "crumpton", "crutcher", "crutchfield", "cruz", "crysta", "crystle", "cuc", "cuellar", "cuevas", "culbertson", "culbreth", "cullen", "culley", "cullum", "culp", "culpepper", "cumming", "cummings", "cundiff", "cunha", "cunningham", "cuomo", "cupp", "curcio", "cureton", "curiel", "curley", "curran", "currey", "currin", "curtin", "curtis", "curtiss", "cusack", "cushing", "cushman", "cusick", "custer", "cuthbertson", "cutright", "cutshall", "cyndi", "cyndy", "cynthia", "cyr", "cyrstal", "cyrus", "cythia", "dabbs", "dabney", "dacia", "dacosta", "dade", "daggett", "dagmar", "dagny", "dagostino", "dahlberg", "dahlgren", "dahlia", "daigle", "dail", "dailey", "daina", "daine", "daisey", "dakota", "dale", "dalene", "dalessandro", "dalessio", "daley", "dalia", "dalila", "dallas", "dalrymple", "dalton", "daly", "damaris", "damato", "dambrosio", "dameron", "damian", "damiano", "damico", "damon", "dampier", "damron", "dan", "dana", "danae", "dancy", "dandrea", "dandridge", "danelle", "danette", "danford", "danforth", "dangelo", "dangerfield", "dani", "dania", "danica", "daniel", "daniela", "daniele", "daniell", "daniella", "danielle", "daniels", "danielson", "danika", "danille", "danita", "danley", "dann", "danna", "danner", "dannette", "dannie", "dannielle", "dansby", "dantzler", "danuta", "danyel", "danyell", "danyelle", "dao", "daphine", "daphne", "dara", "darby", "darcel", "darcey", "darci", "darcie", "darcy", "dardar", "darden", "daria", "darla", "darleen", "darlena", "darlene", "darline", "darnell", "darr", "darrow", "daryl", "dashiell", "dasilva", "daugherty", "daughtry", "daves", "davey", "david", "davida", "davidson", "davie", "davies", "davila", "davina", "davis", "davison", "davisson", "davy", "dawes", "dawkins", "dawna", "dawne", "dawson", "daye", "dayle", "dayna", "daysi", "dayton", "deadra", "deana", "deanda", "deandra", "deandrea", "deane", "deangelis", "deangelo", "deann", "deanna", "deanne", "dearborn", "dearing", "dearman", "deas", "deason", "deaton", "deaver", "deb", "debbi", "debbie", "debbra", "debby", "debera", "deberry", "debi", "deboer", "debora", "deborah", "debose", "debra", "debrah", "debroah", "decarlo", "decastro", "deckard", "decosta", "decoteau", "dede", "dedra", "dee", "deeann", "deeanna", "deedee", "deedra", "deegan", "deel", "deen", "deena", "deering", "deese", "deetta", "defazio", "defelice", "degraw", "degroot", "deguzman", "dehart", "dehaven", "deherrera", "deidra", "deidre", "deirdre", "deitz", "deja", "dejesus", "dejong", "delacruz", "delafuente", "delagarza", "delaine", "delana", "delancey", "delaney", "delano", "delao", "delapaz", "delarosa", "delatorre", "delcie", "delena", "deleon", "delfina", "delgadillo", "delgado", "delia", "delicia", "delila", "delilah", "delinda", "delisa", "delisle", "delk", "dell", "della", "dellinger", "delma", "delmy", "deloach", "delois", "deloise", "delong", "delora", "deloras", "delorenzo", "delores", "deloris", "delorse", "delossantos", "delozier", "delp", "delpha", "delphia", "delphine", "delrio", "delrosario", "delsie", "deltoro", "deluca", "deluna", "delvalle", "delvecchio", "demarco", "demars", "demello", "demers", "demetra", "demetria", "demetrice", "demetrius", "deming", "demoss", "dempsey", "dena", "denae", "dendy", "deneen", "denese", "denham", "denice", "denis", "denise", "denisha", "denison", "denisse", "denita", "denman", "denna", "dennard", "denney", "dennis", "dennise", "dennison", "denny", "densmore", "denson", "denton", "denyse", "deon", "deonna", "depalma", "depew", "depriest", "derosa", "derose", "derosier", "derouen", "derr", "derryberry", "desai", "desalvo", "desantis", "desilva", "desimone", "desirae", "desiree", "desjardins", "desmarais", "desmond", "desouza", "despain", "despina", "desrochers", "desrosiers", "dessie", "destefano", "detra", "detwiler", "deutsch", "devaney", "devaughn", "devault", "dever", "deville", "devin", "devine", "devito", "devlin", "devoe", "devon", "devona", "devora", "devorah", "devore", "devries", "dewberry", "deweese", "dewey", "deyo", "deyoung", "dia", "dian", "diana", "diane", "diann", "dianna", "dianne", "dias", "diaz", "dicarlo", "dicken", "dickenson", "dickerson", "dickinson", "dickman", "dickson", "diedra", "diedre", "diego", "diehl", "diep", "dierdre", "dietrich", "dietz", "diez", "diggins", "diggs", "digiacomo", "digiovanni", "digna", "dillard", "diller", "dilley", "dillingham", "dillion", "dillman", "dillon", "dillow", "dilorenzo", "dilworth", "dimaggio", "dimarco", "dimmick", "dina", "dinah", "dineen", "dingess", "dingman", "dinh", "dinkins", "dinorah", "dinsmore", "dion", "dione", "dionna", "dionne", "diorio", "dipietro", "dishman", "dismuke", "disney", "distefano", "dittman", "dittmer", "divina", "dix", "dixie", "dixon", "dixson", "dizon", "doak", "doan", "doane", "dobbs", "dobson", "doby", "dockery", "dodd", "dodds", "dodie", "dodson", "doering", "doerr", "doggett", "doherty", "doiron", "dolan", "dollie", "dolores", "doloris", "dombrowski", "domenica", "dominga", "domingo", "dominguez", "dominica", "dominick", "dominique", "dominque", "dominquez", "domitila", "domonique", "dona", "donahue", "donald", "donaldson", "donato", "donegan", "donella", "donelson", "donetta", "donette", "doney", "donita", "donley", "donna", "donnell", "donnelly", "donner", "donnetta", "donnette", "donnie", "donofrio", "donohoe", "donohue", "donovan", "donya", "doody", "dooley", "doolittle", "dora", "doran", "dorathy", "dorcas", "dore", "doreatha", "doreen", "dorene", "doretha", "dorethea", "doretta", "dori", "doria", "dorian", "dorie", "dorinda", "dorine", "doris", "dorla", "dorman", "dorn", "dorotha", "dorothea", "dorothy", "dorris", "dorsett", "dorsey", "dortch", "dortha", "dorthea", "dorthey", "dorthy", "dorton", "dostie", "dotson", "dottie", "dotty", "doucette", "doud", "dougherty", "douglas", "douglass", "dovie", "dowdell", "dowden", "dowell", "dowling", "downes", "downey", "doyle", "doyon", "drayton", "dreama", "dreher", "drema", "drennan", "drennen", "dressler", "drews", "dreyer", "driggers", "driscoll", "driskell", "drouin", "drucilla", "drumm", "drummond", "drury", "drusilla", "dryden", "drye", "duarte", "dube", "dubois", "dubose", "ducharme", "duckett", "duckworth", "duclos", "duda", "dudek", "dudley", "duenas", "duffey", "duffy", "dufour", "dufrene", "dufresne", "dugan", "dugas", "duggan", "dugger", "duggins", "duhon", "dulaney", "dulce", "dulcie", "duley", "dulin", "dumont", "dunagan", "dunaway", "dunbar", "duncan", "dunford", "dungan", "dunham", "dunigan", "dunkin", "dunkle", "dunlap", "dunleavy", "dunlop", "dunn", "dunne", "dunson", "dunston", "dunton", "duong", "duplessis", "dupont", "dupre", "dupree", "duprey", "dupuis", "duque", "duquette", "duran", "durand", "durante", "durbin", "durden", "duren", "durfee", "durham", "durkee", "durkin", "duron", "durr", "durrett", "dusti", "dustin", "dutcher", "dutra", "dutton", "duval", "duvall", "dvorak", "dwana", "dwyer", "dyan", "dykstra", "dyson", "eaddy", "eades", "eads", "eady", "eagan", "eakin", "eakins", "eames", "eanes", "earle", "earlean", "earleen", "earlene", "earley", "earlie", "earline", "earnestine", "earp", "eartha", "easley", "eason", "easterday", "eastman", "easton", "eastwood", "eatmon", "eaton", "eberhardt", "eberle", "eberly", "ebersole", "ebert", "ebner", "eboni", "ebonie", "eby", "eccles", "echevarria", "echeverria", "echols", "eck", "eckard", "eckenrode", "ecker", "eckert", "eckhardt", "ecklund", "eckman", "eckstein", "eda", "edda", "eddie", "eddings", "eddington", "eddins", "edelman", "edelmira", "edelstein", "eden", "edens", "edgar", "edgerton", "edgington", "edie", "edington", "edison", "edith", "edmiston", "edmond", "edmonds", "edmondson", "edmonson", "edmunds", "edmundson", "edna", "edra", "edris", "edson", "edward", "edwards", "edwina", "edyth", "edythe", "effie", "egan", "egbert", "eggert", "eggleston", "ehlers", "ehrlich", "ehtel", "eichelberger", "eicher", "eichhorn", "eichler", "eidson", "eiland", "eileen", "eilene", "eisele", "eisenberg", "eklund", "ela", "eladia", "elaina", "elaine", "elam", "elana", "elane", "elanor", "elayne", "elba", "elbert", "elda", "eldora", "eldred", "eldredge", "eldridge", "eleanor", "eleanora", "eleanore", "elease", "elena", "elene", "eleni", "elenor", "elenora", "elenore", "eleonor", "eleonora", "eleonore", "eley", "elfreda", "elfrieda", "elfriede", "elgin", "elia", "eliana", "elias", "eliason", "elicia", "elida", "elidia", "elin", "elina", "elinor", "elinore", "elisa", "elisabeth", "elise", "elisha", "elissa", "eliz", "eliza", "elizabet", "elizabeth", "elizbeth", "elizebeth", "elizondo", "elke", "elkins", "ella", "ellamae", "ellan", "elledge", "ellen", "ellena", "ellender", "eller", "elli", "ellie", "ellinger", "ellingson", "ellington", "elliot", "elliott", "ellis", "ellison", "ellsworth", "elly", "ellyn", "elma", "elmer", "elmira", "elmore", "elna", "elnora", "elodia", "elois", "eloisa", "eloise", "elouise", "elrod", "elsa", "elsie", "elson", "elston", "elswick", "elsy", "elva", "elvera", "elvia", "elvie", "elvina", "elvira", "elwanda", "elwell", "elwood", "ely", "elyse", "elza", "ema", "emanuel", "embree", "embrey", "embry", "emelda", "emelia", "emelina", "emeline", "emely", "emerick", "emerita", "emerson", "emiko", "emilee", "emilia", "emilie", "emily", "emma", "emmaline", "emmert", "emmett", "emmie", "emmons", "emmy", "emogene", "emory", "emrich", "emrick", "encarnacion", "enciso", "enda", "endicott", "endres", "endsley", "enedina", "eneida", "eng", "engel", "engelhardt", "england", "engle", "engleman", "engler", "englert", "english", "engstrom", "enid", "enloe", "ennis", "enoch", "enola", "enos", "enright", "enriqueta", "enriquez", "ensor", "epifania", "epley", "epperson", "epps", "epstein", "erb", "erdman", "erdmann", "eric", "erica", "ericka", "erickson", "ericson", "erika", "erin", "erinn", "erlene", "erlinda", "erline", "erma", "ermelinda", "erminia", "erna", "ernest", "ernestina", "ernestine", "ernst", "erskine", "ervin", "erwin", "eryn", "escalante", "escalera", "escamilla", "escobar", "escobedo", "eshelman", "eskew", "eskridge", "eslinger", "esmeralda", "esparza", "esperanza", "espinal", "espino", "espinosa", "espinoza", "esposito", "esqueda", "esquibel", "esquivel", "essary", "essex", "essie", "esta", "estabrook", "estefana", "estela", "estell", "estella", "estelle", "estep", "ester", "estes", "estevez", "esther", "estrada", "estrella", "etha", "ethel", "ethelene", "ethelyn", "etheridge", "ethridge", "ethyl", "etienne", "etsuko", "etta", "etter", "ettie", "eubank", "eubanks", "eudy", "eufemia", "eugena", "eugene", "eugenia", "eugenie", "eulah", "eulalia", "eun", "euna", "eunice", "eura", "eure", "eusebia", "eustolia", "eva", "evalyn", "evan", "evangelina", "evangeline", "evangelista", "evans", "eveland", "evelia", "evelin", "evelina", "eveline", "evelyn", "evelyne", "evelynn", "evenson", "everett", "everette", "everhart", "evers", "eversole", "everson", "evette", "evia", "evie", "evita", "evon", "evonne", "ewa", "ewald", "ewell", "ewing", "exie", "exum", "eyler", "ezell", "ezzell", "faber", "fabian", "fabiola", "fabrizio", "fagan", "fahey", "fairbanks", "fairchild", "faircloth", "fairfield", "fairley", "faison", "fajardo", "falco", "falcone", "falgoust", "falgout", "falk", "falkner", "fallon", "fancher", "fanelli", "fann", "fannie", "fannin", "fanny", "fant", "farah", "farber", "faria", "farias", "faris", "farkas", "farley", "farnham", "farnsworth", "farr", "farrah", "farrar", "farrell", "farrington", "farris", "farwell", "fasano", "fassett", "fatima", "fatimah", "faucher", "faught", "faulk", "faulkner", "faust", "faustina", "faviola", "fawcett", "faye", "fazio", "featherston", "featherstone", "fecteau", "feder", "federico", "feeley", "feeney", "fehr", "feinberg", "feinstein", "felder", "feldman", "felecia", "felica", "felice", "felicia", "feliciano", "felicidad", "felicita", "felicitas", "felipa", "felipe", "felisa", "felisha", "felix", "felker", "feltner", "felton", "fenderson", "fendley", "fenn", "fennell", "fenner", "fenske", "fenton", "fenwick", "ferebee", "ferguson", "ferland", "fermina", "fernanda", "fernande", "fernandes", "fernandez", "fernando", "ferne", "ferrante", "ferrari", "ferraro", "ferree", "ferreira", "ferrell", "ferrer", "ferretti", "ferri", "ferrin", "ferris", "ferro", "fessler", "fewell", "fick", "fidela", "fidelia", "fidler", "fiedler", "fierro", "fifield", "figueroa", "fike", "fikes", "fillmore", "filomena", "fincher", "findlay", "findley", "finke", "finkelstein", "finkle", "finlay", "finley", "finn", "finnegan", "finnell", "finney", "fiona", "fiore", "fischer", "fiscus", "fishman", "fiske", "fite", "fitz", "fitzgerald", "fitzhugh", "fitzpatrick", "fitzsimmons", "fitzwater", "flagg", "flaherty", "flanagan", "flanders", "flanigan", "flannery", "flatt", "flavia", "fleenor", "fleetwood", "fleischer", "fleischman", "flemming", "fleta", "flickinger", "flinn", "florance", "florencia", "florene", "florentina", "flores", "floretta", "florez", "floria", "florinda", "florine", "florio", "florrie", "flossie", "flournoy", "floy", "floyd", "fluellen", "fluker", "flynn", "flynt", "fogarty", "fogel", "fogg", "foley", "follett", "folse", "folsom", "foltz", "fonda", "fong", "fonseca", "fontaine", "fontana", "fontanez", "fontenot", "fontes", "foote", "foran", "forbes", "forbis", "forcier", "forde", "fordham", "foret", "forman", "forney", "forrest", "forrester", "forsberg", "forster", "forsyth", "forsythe", "fortenberry", "fortier", "fortin", "fortner", "fortney", "fortson", "fortuna", "fortunato", "foti", "fournier", "foust", "fouts", "fowlkes", "foxworth", "frady", "fraga", "fraley", "frampton", "fran", "france", "francene", "frances", "francesca", "franchesca", "francie", "francina", "francine", "francis", "francisca", "francisco", "franck", "franco", "francois", "francoise", "franke", "frankel", "frankie", "franko", "fransisca", "frantz", "franz", "franzen", "fraser", "frasier", "frausto", "frawley", "frazee", "frazer", "frazier", "frechette", "fred", "freda", "fredda", "freddie", "frederica", "frederick", "fredericka", "fredericks", "frederickson", "fredette", "fredia", "fredrick", "fredricka", "fredrickson", "freeda", "freeland", "freese", "fregoso", "freida", "freitag", "freitas", "fretwell", "freund", "frey", "frias", "frick", "fricke", "frida", "friday", "frieda", "friedman", "friedrich", "friel", "frierson", "friesen", "frink", "frisbee", "frisbie", "frisby", "frisch", "fritts", "fritz", "frizzell", "froehlich", "fromm", "fruge", "frye", "fuchs", "fuentes", "fugate", "fuhrman", "fujimoto", "fulbright", "fulcher", "fulford", "fulk", "fulkerson", "fulks", "fullerton", "fullmer", "fulmer", "fulton", "fults", "fultz", "fumiko", "funches", "funderburk", "fung", "funke", "funkhouser", "fuqua", "furman", "furr", "furst", "furtado", "fusco", "fussell", "futch", "futrell", "fye", "gabel", "gabriel", "gabriela", "gabriele", "gabriella", "gabrielle", "gaddis", "gaddy", "gadson", "gaffney", "gagliano", "gagliardi", "gagne", "gagnon", "gailey", "gaines", "gainey", "gaitan", "gaither", "galan", "galarza", "galbraith", "galbreath", "galicia", "galina", "galindo", "gallagher", "gallaher", "gallardo", "gallaway", "gallego", "gallegos", "galligan", "gallion", "gallman", "gallo", "galloway", "gallup", "galvan", "galvez", "galvin", "gamache", "gambill", "gamboa", "gambrell", "gamez", "gandy", "gann", "gannon", "gantt", "gantz", "gaona", "garay", "garber", "garcia", "gard", "gardiner", "gardner", "garfield", "garibay", "garica", "garman", "garmon", "garnet", "garnett", "garofalo", "garrard", "garretson", "garrett", "garrick", "garrido", "garris", "garrity", "garrow", "garry", "gartner", "garton", "garver", "garvey", "garvin", "gary", "garza", "gasaway", "gaskill", "gaspar", "gaspard", "gass", "gassaway", "gastelum", "gaston", "gatewood", "gatlin", "gatling", "gattis", "gatto", "gaudet", "gaudette", "gaudreau", "gaughan", "gaul", "gause", "gauthier", "gauvin", "gavin", "gayden", "gaye", "gayla", "gayle", "gaylene", "gaylor", "gaylord", "gaynell", "gaynelle", "gaynor", "gaytan", "gayton", "gearhart", "gearldine", "geary", "gebhardt", "gebhart", "geddes", "geer", "gehring", "gehrke", "geier", "geiger", "geis", "geisler", "gelinas", "geller", "gema", "gendron", "genevie", "genevieve", "genevive", "genia", "genna", "gennie", "genny", "genovese", "genoveva", "georgann", "george", "georgeann", "georgeanna", "georgene", "georgetta", "georgette", "georgia", "georgiana", "georgiann", "georgianna", "georgianne", "georgie", "georgina", "georgine", "gerald", "geraldine", "geralyn", "gerard", "gerber", "gerda", "gerdes", "gerena", "gerhardt", "gerhart", "geri", "gerlach", "germaine", "germany", "gerri", "gerry", "gertha", "gertie", "gertrud", "gertrude", "gertrudis", "gertude", "gervais", "geter", "getty", "getz", "geyer", "ghislaine", "gholston", "gia", "gianna", "gibb", "gibbs", "gibson", "giddens", "giddings", "gideon", "gidget", "giese", "giffin", "gifford", "gigi", "giglio", "giguere", "gil", "gilberte", "gilbertson", "gilbreath", "gilchrist", "gilda", "gile", "giles", "gilkey", "gillam", "gillard", "gillen", "gillenwater", "gilles", "gillespie", "gillett", "gillette", "gilley", "gilliam", "gillian", "gilliard", "gilligan", "gilliland", "gillis", "gillispie", "gillman", "gillum", "gilma", "gilman", "gilmer", "gilmore", "gilpin", "gilreath", "gilroy", "gilson", "gilstrap", "gina", "ginder", "ginette", "gingerich", "gingras", "gingrich", "ginny", "ginsberg", "ginter", "giordano", "giovanna", "gipson", "girard", "giroux", "gisela", "gisele", "giselle", "gish", "gita", "gittens", "giuseppina", "givens", "gladis", "gladney", "gladstone", "glady", "gladys", "glaser", "glasgow", "glasper", "glasscock", "glasser", "glayds", "gleason", "glenda", "glendora", "glenn", "glenna", "glennie", "glennis", "glick", "glidden", "glidewell", "glinda", "glisson", "gloria", "gluck", "glynda", "glynis", "glynn", "gober", "goble", "godbey", "goddard", "godfrey", "godin", "godinez", "godoy", "godsey", "godwin", "goebel", "goetz", "goforth", "goines", "goins", "golda", "goldberg", "goldfarb", "golding", "goldman", "goldsberry", "goldstein", "gomes", "gomez", "gonsalez", "gonsalves", "gonzales", "gonzalez", "gooch", "goodale", "goodall", "goode", "goodell", "gooden", "goodin", "gooding", "goodloe", "goodnight", "goodrich", "goodrum", "goodsell", "goodson", "goodwin", "goolsby", "gordan", "gordon", "gordy", "goree", "gorham", "gorman", "gormley", "gorski", "gorton", "goshorn", "gosnell", "goss", "gosselin", "gossett", "gott", "gottlieb", "gottschalk", "gough", "gould", "goulet", "gourley", "gouveia", "govan", "gove", "govea", "gowen", "gower", "goyette", "graber", "grabowski", "gracia", "gracie", "graciela", "grady", "graf", "graff", "grafton", "gragg", "graham", "grajeda", "grammer", "granado", "granados", "grantham", "granville", "grasso", "grau", "gravitt", "gravois", "graybill", "grayce", "grayson", "graziano", "grazyna", "greathouse", "greco", "greeley", "greenberg", "greene", "greenhaw", "greenlaw", "greenleaf", "greenlee", "greenwald", "greenway", "greenwell", "greer", "greeson", "gregg", "gregoire", "gregor", "gregoria", "gregorio", "gregory", "greig", "greiner", "grenier", "gresham", "greta", "gretchen", "gretta", "gricelda", "grider", "grieco", "griego", "grier", "griffen", "griffey", "griffis", "griffith", "griffiths", "grigg", "griggs", "grigsby", "grijalva", "grillo", "grimaldi", "grimaldo", "grimm", "grimmett", "grimsley", "grindle", "griner", "grisby", "grisel", "griselda", "grisham", "grissom", "griswold", "groce", "groff", "grogan", "groh", "grose", "grossman", "grosso", "groth", "grover", "grubb", "grubbs", "grube", "gruber", "grundy", "guadalupe", "guajardo", "guardado", "guarino", "guay", "gudrun", "guenther", "guerin", "guerra", "guerrero", "guertin", "guevara", "guffey", "guido", "guidry", "guilford", "guillen", "guillermina", "guillermo", "guillory", "guillot", "guimond", "guinn", "gulick", "gulledge", "gullett", "gumm", "gump", "gunderson", "gunn", "gunther", "gupta", "gupton", "gurley", "gurrola", "gurule", "gusman", "gussie", "gustafson", "gustin", "guth", "guthrie", "gutierrez", "gutshall", "guyer", "guyette", "guyton", "guzman", "gwen", "gwenda", "gwendolyn", "gwenn", "gwin", "gwinn", "gwyn", "gwyneth", "haag", "haas", "haase", "haber", "haberman", "hackett", "hackman", "hackworth", "haddad", "haddix", "hadfield", "hadley", "hadlock", "hae", "hafer", "haffner", "hafner", "haga", "hagan", "hagans", "hagar", "hage", "hageman", "hagen", "hager", "hagerman", "hagerty", "haggerty", "hagler", "hagood", "hague", "hagy", "hahn", "haigh", "haight", "haile", "hailey", "haines", "haire", "hairston", "halcomb", "hales", "haley", "halford", "halina", "halle", "haller", "hallett", "halley", "halliburton", "halliday", "hallie", "hallman", "hallock", "halloran", "hallowell", "halpern", "halpin", "halsey", "halstead", "halverson", "halvorsen", "halvorson", "hamann", "hamblin", "hambrick", "hamby", "hamel", "hamer", "hamill", "hamilton", "hamlett", "hamlin", "hamm", "hammack", "hamman", "hammel", "hammett", "hammon", "hammond", "hammonds", "hammons", "hamner", "hampson", "hampton", "hamrick", "han", "hana", "hancock", "handley", "hanes", "haney", "hanh", "hanke", "hankins", "hanley", "hanlon", "hann", "hanna", "hannah", "hannan", "hannelore", "hanner", "hannigan", "hannon", "hanrahan", "hans", "hansen", "hanson", "harbaugh", "harber", "harbin", "harbison", "hardaway", "hardcastle", "hardee", "hardeman", "hardesty", "hardie", "hardiman", "hardin", "harding", "hardison", "hardman", "hardnett", "hardwick", "hargett", "hargis", "hargrave", "hargrove", "harker", "harkey", "harkins", "harkness", "harlan", "harless", "harley", "harlow", "harmon", "harner", "harney", "haro", "harold", "harr", "harrell", "harrelson", "harriet", "harriett", "harriette", "harrigan", "harriman", "harrington", "harris", "harrison", "harrod", "harrold", "harter", "hartfield", "hartford", "hartle", "hartley", "hartman", "hartmann", "hartnett", "hartsell", "hartsfield", "hartsock", "hartung", "hartwell", "hartwig", "harty", "hartz", "hartzell", "hartzog", "harvell", "harvey", "harville", "harvin", "harwell", "harwood", "hashimoto", "haskell", "haskins", "hass", "hassan", "hassell", "hassett", "hassie", "hassler", "hasson", "hatchett", "hatfield", "hathaway", "hathcock", "hathorn", "hatley", "hatten", "hattie", "hatton", "hauck", "haug", "haugen", "haun", "haupt", "hauser", "havard", "haviland", "hawes", "hawkes", "hawkins", "hawkinson", "hawley", "hawn", "haworth", "hawthorne", "hayashi", "haydee", "hayden", "haydon", "hayes", "haygood", "hayley", "hayman", "hayner", "haynes", "haynie", "haywood", "hazelton", "hazelwood", "hazen", "hazlett", "hazzard", "headley", "headrick", "healey", "healy", "heaney", "hearn", "hearne", "heather", "heatherly", "heaton", "hebert", "hecht", "hecker", "heckman", "hedden", "hedgepeth", "hedrick", "hedwig", "hedy", "hee", "heffernan", "heffner", "heflin", "hefner", "hegarty", "heide", "heidi", "heidy", "heike", "heil", "heilman", "heim", "hein", "heine", "heinrich", "heins", "heintz", "heinz", "heise", "heiser", "heisler", "helaine", "helen", "helena", "helene", "helfrich", "helga", "helgeson", "hellen", "hellman", "helman", "helmer", "helmick", "helmuth", "helton", "helwig", "hembree", "hemingway", "hemphill", "hendershot", "henderson", "hendley", "hendon", "hendren", "hendrick", "hendricks", "hendrickson", "hendrix", "hendry", "henke", "henkel", "henley", "hennessey", "hennessy", "henninger", "henrietta", "henriette", "henriques", "henriquez", "henry", "hensel", "henshaw", "hensley", "henson", "henton", "hepburn", "hepler", "hepner", "herbert", "herbst", "heredia", "hereford", "herlinda", "herma", "herman", "hermann", "hermelinda", "hermes", "hermila", "hermina", "hermine", "herminia", "hermosillo", "hernadez", "hernandes", "hernandez", "herndon", "herod", "herold", "herr", "herren", "herrera", "herrick", "herrin", "herrington", "herrmann", "herrod", "herron", "hersey", "hersh", "hershberger", "hershey", "herta", "hertel", "hertha", "herzog", "hess", "hesse", "hesson", "hester", "hetrick", "hettie", "hetzel", "heuer", "hewett", "hewitt", "hewlett", "heyer", "heyward", "heywood", "hiatt", "hibbard", "hibbert", "hibbler", "hibbs", "hickerson", "hickman", "hickok", "hickox", "hickson", "hiedi", "hien", "hiers", "higa", "higbee", "higdon", "higginbotham", "higgins", "higgs", "highsmith", "hightower", "higley", "hilaria", "hilary", "hilbert", "hilburn", "hilda", "hilde", "hildebrand", "hildebrandt", "hildegard", "hildegarde", "hildred", "hildreth", "hileman", "hiles", "hillard", "hillary", "hiller", "hilliard", "hillis", "hillman", "hillyer", "hilma", "hilton", "himes", "hinckley", "hindman", "hine", "hines", "hinkle", "hinkley", "hinman", "hinojosa", "hinrichs", "hinshaw", "hinson", "hinton", "hintz", "hinz", "hipp", "hiroko", "hirsch", "hirst", "hisako", "hitchcock", "hite", "hitt", "hix", "hixon", "hixson", "hoa", "hoag", "hoagland", "hoang", "hobart", "hobbs", "hobson", "hoch", "hochstetler", "hockenberry", "hockett", "hodge", "hodges", "hodgkins", "hodgson", "hodson", "hoekstra", "hoelscher", "hoey", "hofer", "hoff", "hoffer", "hoffman", "hoffmann", "hofmann", "hoggard", "hogue", "holbert", "holbrook", "holcomb", "holcombe", "holguin", "holifield", "holladay", "hollander", "hollar", "hollenbeck", "holley", "holli", "holliday", "hollie", "hollifield", "holliman", "hollinger", "hollingshead", "hollingsworth", "hollins", "hollis", "hollister", "holloman", "holloway", "hollowell", "holman", "holmberg", "holmes", "holmgren", "holmquist", "holsinger", "holst", "holstein", "holston", "holter", "holton", "holtz", "holzer", "hom", "homan", "honaker", "honea", "honeycutt", "hoopes", "hooten", "hopkins", "hoppe", "hopson", "horan", "hord", "horgan", "hornback", "hornbeck", "horne", "hornsby", "horowitz", "horrocks", "horsley", "horta", "hortencia", "hortense", "hortensia", "horton", "horvath", "hosey", "hoskins", "hosmer", "hostetler", "hostetter", "hotchkiss", "houchens", "houck", "houghton", "houk", "houle", "houlihan", "householder", "houser", "housley", "housman", "houston", "hovey", "hovis", "howard", "howarth", "howell", "howells", "hower", "howerton", "howie", "howland", "howlett", "howse", "howze", "hoye", "hoyle", "hoyos", "hoyt", "hsiu", "hsu", "hua", "huang", "hubbard", "hubbell", "hubble", "hubbs", "huber", "hubert", "huckaby", "hudak", "huddleston", "hudgens", "hudgins", "hudnall", "hudson", "hudspeth", "huebner", "huerta", "huertas", "huey", "huffman", "hufford", "huggins", "hughes", "hughey", "hughs", "hui", "huie", "hulbert", "hulda", "hulett", "hulse", "hulsey", "humbert", "hume", "humes", "humphrey", "humphreys", "humphries", "hundley", "huneycutt", "hungerford", "hunley", "hunnicutt", "hunsaker", "huntington", "huntley", "huong", "hupp", "hurd", "hurlburt", "hurtado", "huskey", "hussey", "husted", "huston", "hutchens", "hutcherson", "hutcheson", "hutchings", "hutchins", "hutchinson", "hutchison", "huth", "hutson", "hutt", "hutto", "hutton", "huynh", "hwa", "hwang", "hyacinth", "hyatt", "hyde", "hyden", "hyder", "hye", "hyland", "hylton", "hyman", "hynes", "hyo", "hyon", "hysell", "hyun", "ibanez", "ibarra", "ibrahim", "ickes", "idell", "idella", "iesha", "iglesias", "ignacia", "ilana", "ilda", "ileana", "ileen", "ilene", "iliana", "ilona", "ilse", "iluminada", "imelda", "imes", "imhoff", "imogene", "india", "indira", "inell", "ines", "inez", "inga", "ingalls", "ingeborg", "ingersoll", "ingham", "ingraham", "ingrid", "inman", "inocencia", "iona", "ione", "ira", "iraida", "irby", "ireland", "irena", "irene", "irick", "irina", "irish", "irizarry", "irma", "irmgard", "irvin", "irvine", "irving", "irwin", "iryna", "isa", "isaac", "isaacs", "isaacson", "isabel", "isabell", "isabella", "isabelle", "isadora", "isaura", "isbell", "isela", "isenberg", "isham", "isidra", "isis", "islas", "isley", "isobel", "isom", "ison", "israel", "ito", "ivana", "ivelisse", "iverson", "ives", "ivette", "ivey", "ivie", "ivonne", "izaguirre", "izetta", "izola", "izzo", "jablonski", "jacalyn", "jacelyn", "jacinda", "jacinta", "jacinto", "jackeline", "jackelyn", "jacki", "jackie", "jacklyn", "jackqueline", "jackson", "jaclyn", "jaco", "jacob", "jacobi", "jacobo", "jacobs", "jacobsen", "jacobson", "jacoby", "jacqualine", "jacque", "jacquelin", "jacqueline", "jacquelyn", "jacquelyne", "jacquelynn", "jacques", "jacquetta", "jacquez", "jacqui", "jacquie", "jacquiline", "jacquline", "jacqulyn", "jada", "jadwiga", "jae", "jaffe", "jahn", "jahnke", "jaime", "jaimee", "jaimes", "jaimie", "jalbert", "jaleesa", "jalisa", "jama", "jame", "jamee", "jamerson", "james", "jameson", "jamey", "jami", "jamie", "jamieson", "jamika", "jamila", "jamison", "jammie", "jan", "jana", "janae", "janay", "jane", "janean", "janee", "janeen", "janel", "janell", "janella", "janelle", "janene", "janessa", "janet", "janeth", "janett", "janetta", "janette", "janey", "jani", "janice", "janie", "janiece", "janina", "janine", "janis", "janise", "janita", "jankowski", "jann", "janna", "jannet", "jannette", "jannie", "jansen", "janson", "janssen", "janyce", "jaqueline", "jaquelyn", "jaques", "jaquez", "jara", "jaramillo", "jarboe", "jardine", "jarman", "jarmon", "jarrell", "jarrett", "jarvis", "jason", "jasso", "jaunita", "jauregui", "javier", "jaworski", "jaye", "jayme", "jaymie", "jayna", "jayne", "jaynes", "jazmin", "jazmine", "jeana", "jeanbaptiste", "jeane", "jeanelle", "jeanene", "jeanett", "jeanetta", "jeanette", "jeanice", "jeanie", "jeanine", "jeanlouis", "jeanmarie", "jeanna", "jeanne", "jeannetta", "jeannette", "jeannie", "jeannine", "jeffcoat", "jefferies", "jeffers", "jefferson", "jeffery", "jeffie", "jeffrey", "jeffreys", "jeffries", "jemison", "jen", "jena", "jenae", "jene", "jenee", "jenell", "jenelle", "jenette", "jeneva", "jeni", "jenice", "jenifer", "jeniffer", "jenine", "jenise", "jenkins", "jenks", "jenna", "jennefer", "jennell", "jennette", "jenni", "jennie", "jennifer", "jenniffer", "jennine", "jennings", "jenny", "jensen", "jenson", "jepson", "jeraldine", "jeremy", "jeri", "jerica", "jerilyn", "jerlene", "jernigan", "jerome", "jerri", "jerrica", "jerrie", "jerry", "jesenia", "jesica", "jeske", "jesse", "jessee", "jessen", "jessenia", "jessi", "jessia", "jessica", "jessie", "jessika", "jessup", "jestine", "jesus", "jesusa", "jesusita", "jeter", "jett", "jetta", "jettie", "jewell", "jewett", "jiles", "jill", "jillian", "jim", "jimenez", "jimerson", "jiminez", "jimmie", "joan", "joana", "joane", "joanie", "joann", "joanna", "joanne", "joannie", "joaquina", "jobe", "jocelyn", "jodee", "jodi", "jodie", "jody", "joe", "joeann", "joel", "joella", "joelle", "joellen", "joeseph", "joesph", "joetta", "joette", "joey", "johana", "johanna", "johanne", "johansen", "johanson", "john", "johna", "johnetta", "johnette", "johnie", "johnna", "johnnie", "johnny", "johnsen", "johnsie", "johnson", "johnston", "johnstone", "joi", "joie", "jolanda", "joleen", "jolene", "jolie", "jolin", "joline", "jolley", "jolyn", "jolynn", "jon", "jona", "jonas", "jone", "jonell", "jonelle", "jones", "jong", "joni", "jonie", "jonna", "jonnie", "joplin", "jordan", "jordon", "jorge", "jorgensen", "jorgenson", "jose", "josefa", "josefina", "josefine", "joselyn", "joseph", "josephina", "josephine", "josephson", "josette", "josey", "joshua", "josie", "joslin", "joslyn", "josphine", "jost", "joubert", "jovan", "jovita", "jowers", "joya", "joyce", "joycelyn", "joye", "joyner", "juan", "juana", "juanita", "juarez", "judd", "jude", "judi", "judie", "judith", "judkins", "judson", "judy", "jule", "julee", "julene", "juli", "julia", "julian", "juliana", "juliane", "juliann", "julianna", "julianne", "julie", "julieann", "julien", "julienne", "juliet", "julieta", "julietta", "juliette", "julio", "julissa", "julius", "jung", "junie", "junita", "junko", "jurado", "justa", "justin", "justina", "justine", "justus", "jutta", "kacey", "kaci", "kacie", "kacy", "kaczmarek", "kahl", "kahle", "kahler", "kahn", "kaila", "kaitlin", "kaitlyn", "kala", "kaleigh", "kaley", "kali", "kallie", "kalyn", "kam", "kamala", "kami", "kamilah", "kaminski", "kaminsky", "kammerer", "kamp", "kandace", "kandi", "kandice", "kandis", "kandra", "kandy", "kane", "kanesha", "kanisha", "kantor", "kao", "kaplan", "kapp", "kara", "karan", "kareen", "karen", "karena", "karey", "kari", "karie", "karima", "karin", "karina", "karine", "karisa", "karissa", "karl", "karla", "karleen", "karlene", "karly", "karlyn", "karmen", "karnes", "karns", "karol", "karole", "karoline", "karolyn", "karon", "karp", "karr", "karren", "karri", "karrie", "karry", "kary", "karyl", "karyn", "kasandra", "kasey", "kasha", "kasi", "kasie", "kasper", "kass", "kassandra", "kassie", "kasten", "kastner", "kate", "katelin", "katelyn", "katelynn", "katerine", "kates", "kathaleen", "katharina", "katharine", "katharyn", "kathe", "katheleen", "katherin", "katherina", "katherine", "kathern", "katheryn", "kathey", "kathi", "kathie", "kathleen", "kathlene", "kathline", "kathlyn", "kathrin", "kathrine", "kathryn", "kathryne", "kathy", "kathyrn", "kati", "katia", "katie", "katina", "katlyn", "kato", "katrice", "katrina", "kattie", "katy", "katz", "kauffman", "kaufman", "kaufmann", "kautz", "kavanagh", "kavanaugh", "kay", "kayce", "kaycee", "kaye", "kayla", "kaylee", "kayleen", "kayleigh", "kaylene", "kaylor", "kayser", "kazuko", "kean", "keane", "kearney", "kearns", "kearse", "keating", "keaton", "kecia", "kee", "keefe", "keefer", "keegan", "keele", "keeley", "keely", "keena", "keenan", "keene", "keeney", "keesee", "keesha", "keeter", "keeton", "keever", "keffer", "kehoe", "keiko", "keil", "keila", "keim", "keira", "keiser", "keisha", "keith", "keitha", "keitt", "keli", "kellam", "kellar", "kelle", "kellee", "kelleher", "keller", "kellerman", "kelley", "kelli", "kellie", "kellner", "kellogg", "kellum", "kelly", "kellye", "kelm", "kelsey", "kelsi", "kelsie", "kelso", "kelton", "kemberly", "kempf", "kena", "kenda", "kendal", "kendall", "kendra", "kendrick", "kendricks", "kenia", "kenisha", "kenna", "kennard", "kennedy", "kenneth", "kenney", "kennon", "kenny", "kenya", "kenyatta", "kenyetta", "kenyon", "keown", "kephart", "kepler", "kera", "kerby", "keren", "keri", "kerley", "kerr", "kerri", "kerrie", "kerrigan", "kerry", "kershaw", "kershner", "kerstin", "kesha", "keshia", "kesler", "kessel", "kessinger", "kessler", "kester", "kesterson", "ketcham", "ketchum", "ketron", "keturah", "keva", "kevin", "keyes", "keyser", "khadijah", "khalilah", "khoury", "kia", "kiana", "kiara", "kibler", "kidd", "kidwell", "kiefer", "kieffer", "kiel", "kiely", "kiera", "kiernan", "kiersten", "kiesha", "kiger", "kight", "kilburn", "kilby", "kile", "kiley", "kilgore", "killebrew", "killen", "killian", "killingsworth", "killion", "killough", "kilmer", "kilpatrick", "kim", "kimball", "kimber", "kimberely", "kimberlee", "kimberley", "kimberli", "kimberlie", "kimberlin", "kimberly", "kimbery", "kimble", "kimbra", "kimbrell", "kimbro", "kimbrough", "kimes", "kimi", "kimiko", "kimmel", "kimsey", "kimura", "kina", "kinard", "kincaid", "kindra", "kingery", "kingsbury", "kingsley", "kingston", "kinlaw", "kinnard", "kinney", "kinsella", "kinser", "kinsey", "kinsler", "kinsley", "kinslow", "kinzer", "kira", "kirby", "kirchner", "kirkendall", "kirkham", "kirkland", "kirkpatrick", "kirksey", "kirkwood", "kirschner", "kirsten", "kirstie", "kirstin", "kirtley", "kirwan", "kiser", "kisha", "kisner", "kissinger", "kistler", "kittie", "kittrell", "kitts", "kitty", "kiyoko", "kizer", "kizzie", "kizzy", "klara", "klatt", "klaus", "klein", "kline", "kling", "klingensmith", "klinger", "klink", "klotz", "klug", "knapp", "knecht", "knepper", "knighten", "knighton", "knisley", "knopp", "knorr", "knott", "knotts", "knowles", "knowlton", "knox", "knudsen", "knudson", "knuth", "knutson", "kobayashi", "koch", "kocher", "koehler", "koehn", "koenig", "koerner", "koester", "koger", "kohler", "kohn", "kolb", "koller", "kong", "konrad", "koon", "koonce", "koons", "koontz", "koopman", "kopp", "kori", "korn", "kornegay", "korte", "kortney", "koski", "koster", "kourtney", "kovac", "kovach", "kovacs", "kowal", "kowalczyk", "kowalewski", "kowalski", "kozak", "koziol", "kozlowski", "kraemer", "krall", "kramer", "kratz", "kratzer", "kraus", "krause", "krauss", "krawczyk", "krebs", "kremer", "kress", "krick", "krieg", "krieger", "kris", "krishna", "krissy", "krista", "kristal", "kristan", "kristeen", "kristel", "kristen", "kristi", "kristian", "kristie", "kristin", "kristina", "kristine", "kristle", "kristy", "kristyn", "kroeger", "krohn", "krol", "kroll", "kropp", "krouse", "krueger", "krug", "kruger", "krumm", "kruse", "krysta", "krystal", "krysten", "krystin", "krystina", "krystle", "krystyna", "kubiak", "kucera", "kuehl", "kuehn", "kugler", "kuhl", "kuhlman", "kuhlmann", "kuhn", "kuhns", "kujawa", "kulp", "kum", "kumar", "kunkel", "kunkle", "kuntz", "kunz", "kurth", "kurtz", "kushner", "kuster", "kutz", "kuykendall", "kwan", "kwiatkowski", "kwon", "kyla", "kyle", "kylee", "kylie", "kym", "kymberly", "kyoko", "kyong", "kyra", "kyser", "kyung", "labarbera", "labbe", "labelle", "labonte", "laboy", "labrecque", "labrie", "lacasse", "lacey", "lach", "lachance", "lachelle", "laci", "lacie", "laclair", "lacombe", "lacour", "lacresha", "lacroix", "ladawn", "ladd", "ladner", "ladonna", "lael", "lafave", "lafayette", "lafferty", "laflamme", "lafleur", "lafollette", "lafond", "lafontaine", "lafountain", "lafrance", "lafreniere", "lagasse", "laguna", "lagunas", "lahoma", "lahr", "lai", "lail", "laila", "laine", "laing", "lajoie", "lajuana", "lakeesha", "lakeisha", "lakendra", "lakenya", "lakesha", "lakeshia", "lakey", "lakia", "lakiesha", "lakisha", "lakita", "lala", "laliberte", "lally", "lalonde", "lamanna", "lamar", "lambrecht", "lamere", "lamkin", "lamm", "lamonica", "lamont", "lamontagne", "lamoreaux", "lamothe", "lamoureux", "lampe", "lampkin", "lampley", "lana", "lancaster", "landa", "landeros", "landes", "landin", "landis", "landon", "landreth", "landrum", "landry", "lanell", "lanelle", "lanette", "laney", "lang", "langan", "langdon", "lange", "langer", "langevin", "langford", "langham", "langley", "langlois", "langston", "lanham", "lani", "lanie", "lanier", "lanita", "lankford", "lannie", "lanning", "lanora", "lansing", "lantz", "lanza", "lao", "lapierre", "laplante", "lapoint", "lapointe", "laporte", "lapp", "laquanda", "laquita", "lara", "larae", "laraine", "laree", "largent", "larhonda", "larios", "larisa", "larissa", "larita", "lariviere", "larkin", "larkins", "larocca", "laroche", "larochelle", "larock", "laronda", "larosa", "larose", "larrabee", "larraine", "larry", "larsen", "larson", "larue", "lasalle", "lasandra", "lasater", "lashanda", "lashandra", "lashaun", "lashaunda", "lashawn", "lashawna", "lashawnda", "lashay", "lashell", "lashley", "lashon", "lashonda", "lashunda", "laskowski", "lasky", "lasley", "lasonya", "lasseter", "lassiter", "latanya", "latarsha", "latasha", "latashia", "latesha", "latham", "lathan", "lathrop", "latia", "laticia", "latimer", "latina", "latisha", "latonia", "latonya", "latoria", "latosha", "latour", "latoya", "latoyia", "latrice", "latricia", "latrina", "latrisha", "latta", "lattimore", "lau", "lauderdale", "lauer", "laughlin", "launa", "laura", "lauralee", "lauran", "laure", "laureano", "laureen", "lauren", "laurena", "laurence", "laurene", "laurent", "lauretta", "laurette", "lauri", "laurice", "laurie", "laurinda", "laurine", "lauryn", "laux", "lavada", "lavallee", "lavalley", "lavelle", "lavenia", "lavera", "lavergne", "lavern", "laverna", "laverne", "laverty", "lavery", "laveta", "lavette", "lavigne", "lavin", "lavina", "lavine", "lavinia", "lavoie", "lavon", "lavona", "lavonda", "lavone", "lavonia", "lavonna", "lavonne", "lawana", "lawanda", "lawanna", "lawhorn", "lawler", "lawlor", "lawrence", "lawson", "lawton", "layfield", "layla", "layne", "layton", "lazarus", "lazo", "leah", "leahy", "leake", "leana", "leandra", "leann", "leanna", "leanne", "leanora", "leath", "leatha", "leatherman", "leatherwood", "leatrice", "leavitt", "lebeau", "lebel", "leblanc", "leboeuf", "lebron", "lebrun", "lechner", "lecia", "leclair", "leclaire", "leclerc", "lecompte", "leda", "ledbetter", "lederman", "ledesma", "ledet", "ledezma", "ledford", "ledoux", "leduc", "leeann", "leeanna", "leeanne", "leeds", "leena", "leeper", "leesa", "lefebvre", "lefevre", "leffler", "lefler", "leflore", "leftwich", "legault", "legere", "legg", "leggett", "legrand", "lehman", "lehmann", "leia", "leibowitz", "leida", "leigh", "leigha", "leighann", "leighton", "leija", "leiker", "leila", "leilani", "leininger", "leisa", "leisha", "leith", "leiva", "lejeune", "lekisha", "lela", "lelah", "leland", "lelia", "lemaster", "lemay", "lemieux", "lemire", "lemke", "lemley", "lemmon", "lemmons", "lemoine", "lemos", "lemus", "lena", "lenard", "lenhart", "lenita", "lenna", "lennie", "lennon", "lennox", "lenoir", "lenora", "lenore", "lentz", "lenz", "leo", "leola", "leoma", "leon", "leona", "leonard", "leonarda", "leonardo", "leone", "leong", "leonia", "leonida", "leonie", "leonila", "leonor", "leonora", "leonore", "leontine", "leora", "leos", "leota", "lepage", "lepore", "lera", "lerch", "lerma", "lerner", "leroy", "lesa", "lesha", "lesher", "lesia", "lesko", "leslee", "lesley", "lesli", "leslie", "lessard", "lessie", "lester", "leta", "letendre", "letha", "leticia", "letisha", "letitia", "letourneau", "lett", "lettie", "letty", "leung", "levan", "levasseur", "leveille", "leverett", "levesque", "levi", "levine", "levinson", "levitt", "lewallen", "lewandowski", "lewellen", "lewin", "lewis", "lexie", "leyba", "leyva", "lezlie", "lheureux", "liane", "lianne", "libbie", "libby", "librada", "lida", "liddell", "liddle", "lidia", "lieb", "lieberman", "lieselotte", "liggett", "liggins", "lightfoot", "lightner", "ligia", "ligon", "lila", "liles", "lili", "lilia", "lilian", "liliana", "lilla", "lillard", "lilley", "lilli", "lillia", "lilliam", "lillian", "lilliana", "lillie", "lilly", "lim", "limon", "linares", "lincoln", "linda", "lindahl", "lindberg", "lindell", "lindeman", "linder", "linderman", "lindgren", "lindholm", "lindley", "lindner", "lindo", "lindquist", "lindsay", "lindsey", "lindsley", "lindstrom", "lindsy", "lindy", "lineberry", "linette", "ling", "lingenfelter", "lingerfelt", "lingle", "linh", "linkous", "linn", "linnea", "linnie", "linsey", "linton", "linville", "lippert", "lipps", "lipscomb", "lipsey", "lisa", "lisabeth", "lisandra", "lisbeth", "lise", "lisette", "lisha", "lissa", "lissette", "liston", "lita", "litchfield", "littlefield", "littlejohn", "littleton", "litton", "littrell", "liu", "livengood", "livesay", "livia", "livingston", "liz", "liza", "lizabeth", "lizarraga", "lizbeth", "lizeth", "lizette", "lizotte", "lizzette", "lizzie", "llanes", "llewellyn", "lloyd", "lockard", "locke", "lockett", "lockhart", "locklear", "lockridge", "lockwood", "loeb", "loeffler", "loehr", "loera", "loesch", "loftin", "loftis", "lofton", "loftus", "logan", "loggins", "logsdon", "logue", "lohman", "lohr", "loida", "lois", "loise", "lola", "lolita", "lollar", "lollis", "loma", "lomax", "lombardi", "lombardo", "lomeli", "lona", "londa", "london", "lonergan", "loney", "longley", "longmire", "longo", "longoria", "loni", "lonna", "lonnie", "loomis", "looney", "lopez", "lora", "loraine", "loralee", "lorean", "loree", "loreen", "lorelei", "loren", "lorena", "lorene", "lorenz", "lorenza", "lorenzen", "lorenzo", "loreta", "loretta", "lorette", "lori", "loria", "loriann", "lorie", "lorilee", "lorina", "lorinda", "lorine", "lorita", "lorna", "lorraine", "lorretta", "lorri", "lorriane", "lorrie", "lorrine", "lory", "lott", "lottie", "lotz", "lou", "louann", "louanne", "loucks", "loudermilk", "louella", "louetta", "loughlin", "louie", "louis", "louisa", "louise", "louque", "loura", "lourdes", "lourie", "louvenia", "lovato", "lovejoy", "lovelace", "lovelady", "loveland", "lovell", "lovella", "lovett", "lovetta", "lovie", "lovins", "lowder", "lowell", "lowman", "lowrance", "lowrey", "lowry", "lowther", "loya", "loyce", "loyd", "lozada", "lozano", "lozier", "lozoya", "luana", "luann", "luanna", "luanne", "luba", "lubin", "lucas", "lucero", "luci", "lucia", "luciana", "luciano", "lucie", "lucienne", "lucier", "lucila", "lucile", "lucilla", "lucille", "lucina", "lucinda", "lucio", "luckett", "luckey", "lucrecia", "lucretia", "lucy", "ludie", "ludivina", "ludlow", "ludwick", "ludwig", "lueck", "luella", "luetta", "luevano", "lugo", "lui", "luis", "luisa", "luise", "lujan", "lukas", "lukens", "luker", "lula", "lulu", "luna", "lund", "lundberg", "lunde", "lundgren", "lundquist", "lundy", "lunn", "lunsford", "luong", "lupe", "lupita", "lupo", "lura", "lurlene", "lurline", "lussier", "luther", "luttrell", "luu", "luvenia", "luz", "lyda", "lydia", "lydon", "lykins", "lyla", "lyle", "lyles", "lyman", "lyn", "lynda", "lyndia", "lyndsay", "lyndsey", "lynell", "lynelle", "lynetta", "lynette", "lynn", "lynna", "lynne", "lynnette", "lynsey", "lyon", "lyons", "lytle", "mabe", "mabel", "mabelle", "mable", "mabry", "macaluso", "macarthur", "macdonald", "macdougall", "macedo", "macfarlane", "macgregor", "mach", "machado", "machelle", "machuca", "macias", "macie", "maciel", "mackay", "mackenzie", "mackey", "mackie", "mackinnon", "macklin", "maclean", "macleod", "macmillan", "macneil", "macomber", "macon", "macpherson", "macy", "madalene", "madaline", "madalyn", "maddie", "maddox", "maddux", "madelaine", "madeleine", "madelene", "madeline", "madelyn", "mader", "madera", "madewell", "madge", "madie", "madigan", "madison", "madlyn", "madonna", "madore", "madrid", "madsen", "madson", "mae", "maeda", "maegan", "maes", "maestas", "mafalda", "magali", "magallanes", "magaly", "magan", "magana", "magaret", "magda", "magdalen", "magdalena", "magdalene", "magdaleno", "magee", "magen", "maggard", "maggie", "maggio", "magill", "magness", "magnolia", "magnuson", "magruder", "maguire", "mahaffey", "mahalia", "mahan", "maher", "mahler", "mahon", "mahone", "mahoney", "mai", "maia", "maida", "maier", "maile", "maines", "maira", "maire", "maisha", "maisie", "majewski", "majorie", "makeda", "maki", "makowski", "malave", "malcolm", "malcom", "maldonado", "malek", "malena", "maley", "malia", "malika", "malinda", "malinowski", "malisa", "malissa", "malka", "mallett", "mallette", "malley", "mallie", "mallon", "mallory", "malloy", "malone", "maloney", "malorie", "maloy", "malvina", "mamie", "mammie", "manchester", "mancilla", "mancini", "mancuso", "manda", "mandel", "mandeville", "mandi", "mandie", "mandy", "maness", "mangan", "mangrum", "mangum", "manie", "manion", "manis", "manley", "mann", "mannino", "manns", "manriquez", "mansell", "mansfield", "manson", "mansour", "mantooth", "manuel", "manuela", "manzanares", "manzano", "manzo", "mapes", "mapp", "marable", "maragaret", "maragret", "maranda", "marasco", "marcano", "marceau", "marcela", "marcelene", "marcelina", "marceline", "marcell", "marcella", "marcelle", "marcene", "marchand", "marchant", "marchelle", "marchetti", "marci", "marcia", "marciano", "marcie", "marcotte", "marcoux", "marcum", "marcus", "marcy", "mardell", "marden", "mardis", "marek", "maren", "margaret", "margareta", "margarete", "margarett", "margaretta", "margarette", "margart", "marge", "margene", "margeret", "margert", "margery", "marget", "margherita", "margie", "margit", "margo", "margorie", "margot", "margret", "margrett", "marguerita", "marguerite", "margurite", "margy", "marhta", "mari", "maria", "mariah", "mariam", "marian", "mariana", "marianela", "mariani", "mariann", "marianna", "marianne", "mariano", "maribel", "maribeth", "marica", "maricela", "maricruz", "marie", "mariel", "mariela", "mariella", "marielle", "marietta", "mariette", "mariko", "marilee", "marilou", "marilu", "marilyn", "marilynn", "marin", "marinda", "marinelli", "marino", "mario", "marion", "maris", "marisa", "mariscal", "marisela", "marisha", "marisol", "marissa", "marita", "maritza", "marivel", "marjorie", "marjory", "markel", "marketta", "markey", "markham", "markita", "markle", "markley", "markowitz", "markus", "marla", "marlana", "marleen", "marlen", "marlena", "marlene", "marler", "marley", "marlin", "marline", "marlo", "marlow", "marlowe", "marlyn", "marlys", "marna", "marni", "marnie", "maroney", "marotta", "marquardt", "marquerite", "marquetta", "marquez", "marquita", "marquitta", "marr", "marra", "marrero", "marriott", "marron", "marroquin", "marrs", "marrufo", "marsha", "marshall", "marston", "marta", "marte", "martell", "marth", "martha", "marti", "martin", "martina", "martindale", "martine", "martineau", "martinelli", "martines", "martinez", "martino", "martinson", "marty", "martz", "marva", "marvella", "marvin", "marvis", "marx", "mary", "marya", "maryalice", "maryam", "maryann", "maryanna", "maryanne", "marybelle", "marybeth", "maryellen", "maryetta", "maryjane", "maryjo", "maryland", "marylee", "marylin", "maryln", "marylou", "marylouise", "marylyn", "marylynn", "maryrose", "masako", "mascarenas", "mashburn", "masse", "massengale", "massey", "massie", "masterson", "mastin", "mata", "mateo", "matha", "matheny", "mather", "matherly", "matherne", "mathers", "mathes", "matheson", "mathew", "mathews", "mathewson", "mathias", "mathieu", "mathilda", "mathilde", "mathis", "mathison", "matias", "matilda", "matilde", "matlock", "matney", "matos", "matson", "matsumoto", "matta", "mattern", "matteson", "matthew", "matthews", "mattie", "mattingly", "mattison", "mattos", "mattox", "mattson", "matz", "maude", "maudie", "mauk", "mauldin", "mauney", "maupin", "maura", "maureen", "maurer", "maurice", "mauricio", "maurine", "maurita", "mauro", "maus", "mavis", "maxey", "maxfield", "maxie", "maxima", "maximina", "maxine", "maxon", "maxson", "maybell", "maybelle", "mayberry", "maye", "mayer", "mayers", "mayes", "mayfield", "mayhew", "mayle", "mayme", "maynard", "mayne", "maynor", "mayo", "mayola", "mayorga", "mayra", "mazie", "mazur", "mazurek", "mazza", "mazzola", "mcabee", "mcadams", "mcadoo", "mcafee", "mcalister", "mcallister", "mcalpin", "mcalpine", "mcanally", "mcandrew", "mcardle", "mcarthur", "mcatee", "mcauley", "mcauliffe", "mcavoy", "mcbee", "mcbrayer", "mcbride", "mcbroom", "mcbryde", "mcburney", "mccabe", "mccafferty", "mccaffrey", "mccain", "mccaleb", "mccall", "mccalla", "mccallister", "mccallum", "mccammon", "mccandless", "mccann", "mccants", "mccarley", "mccarron", "mccarter", "mccarthy", "mccartney", "mccarty", "mccarver", "mccary", "mccaskill", "mccaslin", "mccauley", "mccay", "mcchesney", "mcclain", "mcclanahan", "mcclary", "mcclean", "mccleary", "mcclellan", "mcclelland", "mcclendon", "mcclintock", "mcclinton", "mccloskey", "mccloud", "mcclung", "mcclure", "mcclurg", "mccluskey", "mccollough", "mccollum", "mccomas", "mccomb", "mccombs", "mcconnell", "mccool", "mccord", "mccorkle", "mccormack", "mccormick", "mccourt", "mccowan", "mccown", "mccoy", "mccracken", "mccrae", "mccrary", "mccraw", "mccray", "mccrea", "mccready", "mccreary", "mccrory", "mccubbin", "mccue", "mcculley", "mcculloch", "mccullough", "mccullum", "mccully", "mccune", "mccurdy", "mccurry", "mccusker", "mccutchen", "mccutcheon", "mcdade", "mcdaniel", "mcdaniels", "mcdavid", "mcdermott", "mcdevitt", "mcdonald", "mcdonnell", "mcdonough", "mcdougal", "mcdougald", "mcdougall", "mcdowell", "mcduffie", "mceachern", "mcelhaney", "mcelrath", "mcelroy", "mcentire", "mcevoy", "mcewen", "mcfadden", "mcfall", "mcfarland", "mcfarlane", "mcfarlin", "mcgaha", "mcgann", "mcgarry", "mcgary", "mcgee", "mcgehee", "mcghee", "mcgill", "mcginley", "mcginn", "mcginnis", "mcginty", "mcglone", "mcglothlin", "mcglynn", "mcgough", "mcgovern", "mcgowan", "mcgowen", "mcgrath", "mcgraw", "mcgregor", "mcgrew", "mcgriff", "mcgruder", "mcguigan", "mcguinness", "mcguire", "mchale", "mchenry", "mchugh", "mcilwain", "mcinerney", "mcinnis", "mcintire", "mcintosh", "mcintyre", "mciver", "mckamey", "mckay", "mckean", "mckee", "mckeehan", "mckeever", "mckellar", "mckelvey", "mckenna", "mckenney", "mckenzie", "mckeon", "mckeown", "mckibben", "mckie", "mckim", "mckinley", "mckinney", "mckinnie", "mckinnon", "mckinzie", "mckissick", "mcknight", "mckown", "mckoy", "mclain", "mclane", "mclaren", "mclaughlin", "mclaurin", "mclean", "mclellan", "mclemore", "mclendon", "mcleod", "mclin", "mcloughlin", "mcmahan", "mcmahon", "mcmann", "mcmanus", "mcmaster", "mcmasters", "mcmichael", "mcmillan", "mcmillen", "mcmillian", "mcmillin", "mcmillon", "mcminn", "mcmorris", "mcmullen", "mcmullin", "mcmurray", "mcmurry", "mcnabb", "mcnair", "mcnally", "mcnamara", "mcnamee", "mcnary", "mcneal", "mcneely", "mcneese", "mcneil", "mcneill", "mcnew", "mcniel", "mcnulty", "mcnutt", "mcpeak", "mcphail", "mcphee", "mcpherson", "mcquade", "mcqueen", "mcquiston", "mcrae", "mcreynolds", "mcroberts", "mcshane", "mcswain", "mcsweeney", "mcvay", "mcvey", "mcwhirter", "mcwhorter", "mcwilliams", "meacham", "meade", "meader", "meador", "meadors", "meagan", "meaghan", "meagher", "mears", "mebane", "mecham", "mechelle", "meda", "medeiros", "medellin", "medford", "medlin", "medlock", "medrano", "mee", "meehan", "meekins", "meeks", "mefford", "meg", "megan", "meggan", "meghan", "meghann", "mehta", "mei", "meier", "meissner", "mejia", "mejias", "melaine", "melancon", "melani", "melania", "melanie", "melanson", "melany", "melba", "melcher", "melchor", "melda", "mele", "melendez", "melgar", "melia", "melida", "melina", "melinda", "melisa", "melissa", "melissia", "melita", "mellie", "mellisa", "mellissa", "mello", "mellon", "mellott", "melnick", "melo", "melodee", "melodi", "melodie", "melonie", "melony", "melson", "melva", "melville", "melvin", "melvina", "melynda", "mena", "menard", "menchaca", "mendenhall", "mendes", "mendez", "mendiola", "mendoza", "mendy", "menefee", "menendez", "meneses", "menjivar", "menke", "meraz", "mercado", "mercedes", "mercedez", "mercier", "mercurio", "meredith", "meri", "merida", "merideth", "meridith", "merilyn", "merissa", "merkel", "merkle", "merle", "merlene", "merlyn", "merna", "merrell", "merri", "merrick", "merrie", "merrifield", "merrilee", "merrill", "merriman", "merritt", "merriweather", "mertens", "mertie", "mertz", "merwin", "meryl", "messer", "messick", "messina", "messinger", "messner", "mestas", "metcalf", "metcalfe", "metts", "metz", "metzger", "metzler", "meunier", "meyer", "meyers", "meza", "mia", "mica", "micaela", "micah", "miceli", "micha", "michael", "michaela", "michaele", "michaelis", "michaels", "michaelson", "michal", "michalak", "michalski", "michaud", "micheal", "michel", "michele", "michelina", "micheline", "michell", "michelle", "michels", "michiko", "mickel", "mickelson", "mickens", "mickey", "micki", "mickie", "middaugh", "middlebrooks", "middleton", "midgett", "midkiff", "miele", "mielke", "mier", "miesha", "migdalia", "mignon", "miguel", "miguelina", "mika", "mikaela", "mike", "mikell", "mikesell", "miki", "mikki", "mila", "milagro", "milagros", "milam", "milan", "milano", "milburn", "milda", "mildred", "miley", "milford", "milissa", "millan", "millar", "millard", "millen", "millett", "millican", "millicent", "millie", "milligan", "milliken", "millner", "millsap", "millsaps", "milly", "milne", "milner", "milton", "mimi", "mims", "minard", "mincey", "minda", "mindi", "mindy", "minerva", "ming", "mingo", "minh", "minna", "minnich", "minnick", "minnie", "minta", "minton", "mintz", "mira", "miramontes", "miranda", "mireille", "mireles", "mirella", "mireya", "miriam", "mirian", "mirna", "mirta", "mirtha", "misha", "miss", "missy", "misti", "mistie", "mitchel", "mitchell", "mitchem", "mitchum", "mitsue", "mitsuko", "mittie", "mitzi", "mitzie", "mixon", "miyamoto", "miyoko", "mize", "mizell", "moberg", "mobley", "modesta", "modica", "modlin", "moeller", "moen", "moffatt", "moffett", "moffitt", "mohamed", "mohammed", "mohan", "mohler", "moira", "mojica", "molina", "moller", "mollie", "molloy", "molly", "molnar", "mona", "monaco", "monaghan", "monahan", "moncada", "moncrief", "monday", "mondragon", "monet", "monge", "monica", "monika", "monique", "moniz", "monnie", "monroe", "monroy", "monserrate", "monson", "montague", "montalvo", "montana", "montanez", "montano", "monteiro", "montelongo", "montemayor", "montenegro", "montez", "montgomery", "monti", "montiel", "montoya", "monzon", "mooney", "mooneyham", "moore", "moorefield", "moorehead", "moorer", "moores", "moorhead", "mora", "morabito", "moralez", "moran", "moreau", "morehead", "morehouse", "moreira", "moreland", "morell", "morelli", "morelock", "moreno", "morey", "morgan", "mori", "moriah", "moriarty", "morin", "moritz", "morley", "morman", "morrell", "morrill", "morrison", "morrissette", "morrissey", "mortensen", "mortenson", "mortimer", "morton", "mosby", "moseley", "mosely", "moser", "mosher", "mosier", "moskowitz", "mosley", "mosqueda", "mota", "moten", "moton", "motta", "moua", "moulton", "moultrie", "mowery", "mowry", "moxley", "moye", "moyer", "moyers", "moynihan", "mozell", "mozella", "mozelle", "mudd", "mueller", "muhammad", "mui", "mulcahy", "mulder", "muldoon", "muldrow", "mulholland", "mulkey", "mullen", "mullens", "mullin", "mullinax", "mullins", "mullis", "mulvaney", "mulvey", "mumford", "muncy", "munday", "mundell", "mundy", "munford", "munger", "munguia", "muniz", "munn", "munos", "munoz", "munro", "munroe", "munsey", "munson", "muoi", "murchison", "murdoch", "murdock", "murguia", "muriel", "murillo", "muro", "murphey", "murphree", "murr", "murrell", "musgrave", "musgrove", "musick", "musselman", "musser", "musso", "muth", "myatt", "myer", "myers", "myesha", "myhre", "myles", "myong", "myra", "myriam", "myrick", "myrl", "myrle", "myrna", "myrta", "myrtice", "myrtie", "myrtis", "myrtle", "myung", "nabors", "nadeau", "nadene", "nader", "nadia", "nadine", "nadler", "nagel", "nagle", "nagy", "naida", "najera", "nakamura", "nakano", "nakesha", "nakia", "nakisha", "nakita", "nall", "nalley", "nancee", "nancey", "nanci", "nancie", "nancy", "nanette", "nannette", "nannie", "naoma", "naomi", "napier", "napoli", "napolitano", "naquin", "naranjo", "narcisa", "nardi", "nardone", "narvaez", "nash", "nason", "natacha", "natale", "natalia", "natalie", "natalya", "natasha", "natashia", "nate", "nathalie", "nathan", "natisha", "natividad", "natosha", "naughton", "naumann", "nava", "navarra", "navarrete", "navarrette", "navarro", "naylor", "nazario", "neace", "neale", "nealy", "neary", "necaise", "necole", "neda", "nedra", "needham", "neel", "neeley", "neely", "neff", "negrete", "negron", "neida", "neil", "neill", "neilson", "nelda", "nelia", "nelida", "nell", "nella", "nelle", "nellie", "nelly", "nelms", "nelsen", "nemeth", "nena", "nenita", "neoma", "neomi", "nereida", "neri", "nerissa", "nero", "nery", "nesbit", "nesbitt", "nesmith", "nestor", "neta", "nettie", "neu", "neubauer", "neuman", "neumann", "neva", "nevada", "nevarez", "neville", "nevins", "newberry", "newby", "newcomb", "newhouse", "newkirk", "newland", "newlin", "newman", "newport", "newsom", "newsome", "newson", "ney", "nez", "ngan", "ngo", "ngoc", "nguyen", "nguyet", "nichelle", "nichol", "nicholas", "nichole", "nicholle", "nicholls", "nichols", "nicholson", "nickell", "nickelson", "nickens", "nickerson", "nicki", "nickie", "nickles", "nickole", "nicky", "nicol", "nicola", "nicolas", "nicolasa", "nicole", "nicolette", "nicolle", "nida", "nidia", "nielsen", "nielson", "nieman", "niemann", "niemeyer", "niemi", "niesha", "nieto", "nieves", "nightingale", "nigro", "niki", "nikia", "nikita", "nikki", "nikole", "nila", "nilda", "niles", "nilsa", "nilsen", "nilsson", "nimmons", "nina", "ninfa", "nino", "nisha", "nissen", "nita", "nixon", "noah", "nobuko", "noe", "noel", "noelia", "noella", "noelle", "noemi", "nohemi", "nola", "nolan", "noland", "nolasco", "nolen", "noles", "nolin", "nolte", "noma", "nona", "noonan", "nora", "norah", "nord", "nordstrom", "noreen", "norene", "norfleet", "noriega", "noriko", "norine", "norma", "norman", "normand", "norris", "norsworthy", "northcutt", "northrop", "northrup", "norton", "norvell", "norwood", "nottingham", "novak", "novotny", "nowak", "nowell", "nowicki", "nowlin", "nubia", "nugent", "nunes", "nunez", "nunley", "nunn", "nunnally", "nuno", "nuss", "nussbaum", "nutt", "nyberg", "nydia", "nygaard", "nyla", "nystrom", "oakes", "oakley", "oates", "obannon", "obdulia", "ober", "oberg", "obregon", "obrian", "obrien", "obryan", "obryant", "ocampo", "ocasio", "ochoa", "ocie", "oconnell", "oconner", "oconnor", "octavia", "oda", "odaniel", "oday", "odelia", "odell", "oden", "odessa", "odette", "odilia", "odle", "odom", "odonnell", "odum", "ofelia", "offutt", "ogburn", "ogden", "oglesby", "ogletree", "ogrady", "ohalloran", "ohara", "ohare", "ojeda", "okeefe", "okelley", "olander", "oldham", "oleary", "olene", "oleson", "oleta", "olevia", "olga", "olguin", "olimpia", "olin", "olinda", "olinger", "oliva", "olivares", "olivarez", "olivas", "oliveira", "olivera", "olivia", "olivier", "olivo", "oller", "ollie", "ollis", "olmos", "olmstead", "olney", "oloughlin", "olsen", "olson", "olszewski", "olvera", "olympia", "omalley", "omar", "omara", "omeara", "oneal", "oneida", "oneil", "oneill", "oney", "ong", "onie", "onita", "ontiveros", "ophelia", "oquendo", "oquinn", "oralee", "oralia", "orcutt", "ordonez", "ordway", "oreilly", "orellana", "oretha", "orlando", "orman", "ormsby", "orndorff", "ornelas", "orosco", "orourke", "orozco", "orpha", "orr", "orta", "ortega", "ortego", "orth", "ortiz", "orton", "osborn", "osborne", "osburn", "oscar", "osgood", "oshaughnessy", "oshea", "oshiro", "osman", "osorio", "ossie", "osteen", "oster", "osterman", "ostrander", "ostrom", "ostrowski", "osullivan", "osuna", "oswald", "oswalt", "otelia", "otero", "otey", "otha", "otilia", "otis", "otoole", "ott", "otte", "otten", "ottinger", "oubre", "ouellette", "ouida", "ousley", "ovalle", "overcash", "overstreet", "overton", "overturf", "owen", "owens", "owensby", "owings", "owsley", "oxendine", "oxford", "oxley", "oyler", "ozell", "ozella", "ozie", "ozuna", "pabon", "pacheco", "packard", "padgett", "padilla", "padron", "paez", "pagano", "pagel", "paige", "paine", "paiz", "pak", "palacio", "palacios", "palermo", "palladino", "palma", "palmieri", "palmira", "palmore", "palomo", "palumbo", "pam", "pamala", "pamela", "pamelia", "pamella", "pamila", "pamula", "panek", "paniagua", "pankey", "pannell", "pantoja", "paola", "pappas", "paquette", "paquin", "parada", "paradis", "pardo", "pardue", "paredes", "parenteau", "parham", "paris", "parisi", "parke", "parkhurst", "parkinson", "parkman", "parmenter", "parmer", "parnell", "parra", "parrett", "parris", "parrish", "parrott", "partain", "partee", "parthenia", "particia", "partida", "partin", "partlow", "paschall", "pascoe", "pasley", "pasquale", "passmore", "pastore", "patel", "paterson", "patino", "patnode", "patria", "patrica", "patrice", "patricia", "patrick", "patrina", "patsy", "patterson", "patti", "pattie", "pattison", "patton", "patty", "paugh", "paul", "paula", "paulene", "pauletta", "paulette", "pauley", "paulin", "paulina", "pauline", "paulino", "paulita", "paulk", "paulsen", "paulson", "paulus", "paxton", "payne", "paynter", "payton", "paz", "peabody", "peachey", "peake", "pearcy", "pearle", "pearlene", "pearlie", "pearline", "pearman", "pearsall", "pearson", "peaslee", "peay", "peckham", "pecoraro", "peden", "pedersen", "pederson", "pedigo", "pedraza", "pedroza", "peebles", "peele", "peeples", "peggie", "peggy", "pegram", "pegues", "pei", "peiffer", "pelayo", "pelfrey", "pelkey", "pellegrini", "pellegrino", "pellerin", "pelletier", "peloquin", "peltier", "pelton", "peluso", "pemberton", "pena", "pender", "pendergast", "pendergrass", "pendleton", "pendley", "penelope", "penick", "penland", "penley", "penn", "pennell", "penney", "penni", "pennie", "pennington", "penrod", "penton", "pepe", "pepin", "perales", "peralta", "peraza", "percy", "perdomo", "perea", "peres", "pereyra", "perez", "perla", "perlman", "permenter", "pernell", "perrault", "perreault", "perreira", "perri", "perrin", "perrine", "perrone", "perrotta", "perry", "perryman", "persaud", "persinger", "pesce", "pete", "peter", "peterkin", "peterman", "petersen", "peterson", "petra", "petree", "petrie", "petrillo", "petrina", "petro", "petronila", "petry", "pettaway", "petterson", "pettiford", "pettigrew", "pettis", "pettit", "pettus", "pettway", "peyton", "pfaff", "pfeffer", "pfeifer", "pfeiffer", "pfister", "pham", "phan", "pharr", "phebe", "phelan", "phelps", "phifer", "philbrick", "philip", "philips", "phillip", "phillips", "phillis", "philomena", "philpot", "philpott", "phinney", "phipps", "phoebe", "phung", "phuong", "phylicia", "phylis", "phyliss", "phyllis", "piatt", "picard", "pichardo", "pickard", "pickel", "pickens", "pickering", "pickett", "piedad", "pieper", "piercy", "pierre", "pierson", "pifer", "pigg", "pilkington", "pimental", "pimentel", "pina", "pinard", "pinckney", "pineda", "pinero", "pinkard", "pinkerton", "pinkham", "pinkney", "pinkston", "pino", "pinon", "pinson", "piotrowski", "pires", "pirtle", "pisano", "pitchford", "pitre", "pitt", "pittman", "pitts", "pitzer", "pizarro", "placencia", "plante", "plascencia", "platt", "plemmons", "pless", "plotkin", "plott", "plourde", "plumlee", "plumley", "plummer", "plunkett", "plyler", "poche", "poe", "poff", "pogue", "pohl", "poindexter", "poirier", "poisson", "pok", "polanco", "poland", "polito", "polley", "polly", "polson", "polston", "pomerleau", "pomeroy", "poole", "pooler", "poore", "popham", "popovich", "popp", "porras", "porsche", "porsha", "porterfield", "portia", "portillo", "portis", "posner", "poston", "poteat", "poteet", "poulin", "pouliot", "poulos", "poulson", "powe", "powell", "poynter", "prado", "prather", "preciado", "preece", "prendergast", "prentiss", "prescott", "presley", "presnell", "pressley", "preston", "prevost", "prewitt", "prichard", "pricilla", "prickett", "priddy", "pridemore", "pridgen", "priester", "prieto", "primm", "prindle", "prine", "pringle", "priscila", "priscilla", "pritchard", "pritchett", "privett", "probst", "proffitt", "propst", "prosser", "proulx", "prouty", "provencher", "providencia", "pruett", "pruitt", "pryor", "puckett", "puente", "puentes", "puga", "pugliese", "puleo", "pulido", "pullen", "pulliam", "pumphrey", "pura", "purcell", "purdy", "purifoy", "purkey", "purnell", "pursley", "purvis", "puryear", "putman", "putnam", "pyatt", "pyle", "pyles", "qiana", "quach", "quackenbush", "quade", "qualls", "quan", "quattlebaum", "queenie", "quesada", "quesenberry", "quevedo", "quezada", "quiana", "quigley", "quijano", "quiles", "quillen", "quimby", "quinlan", "quinn", "quinonez", "quintana", "quintanilla", "quintero", "quinton", "quiroz", "quyen", "raab", "rabb", "rabe", "raber", "rabideau", "rabinowitz", "rabon", "raby", "rachael", "rachal", "racheal", "rachel", "rachele", "rachell", "rachelle", "racine", "rackley", "racquel", "radcliff", "radcliffe", "rademacher", "rader", "radford", "radke", "radtke", "rae", "raeann", "rael", "raelene", "rafaela", "rafferty", "ragan", "ragin", "ragland", "ragsdale", "raguel", "rahman", "rahn", "railey", "raina", "rainbolt", "rainer", "raines", "rainey", "rainwater", "raisa", "raleigh", "raley", "ralph", "ralston", "ramage", "rambo", "ramer", "rameriz", "ramey", "ramires", "ramirez", "ramon", "ramona", "ramonita", "ramos", "ramsay", "ramsdell", "ramsey", "ranae", "rancourt", "randa", "randall", "randazzo", "randee", "randel", "randell", "randi", "randle", "randolph", "randy", "ranee", "raney", "rangel", "rankin", "rankins", "ransdell", "ranson", "rao", "raphael", "raposa", "rapp", "raquel", "rasberry", "rascon", "rasheeda", "rashid", "rashida", "rasmussen", "ratchford", "ratcliff", "ratcliffe", "rathbone", "rathbun", "ratliff", "rau", "rauch", "rausch", "rawlings", "rawlins", "rawls", "rawson", "raya", "rayborn", "rayburn", "raye", "rayfield", "rayford", "raylene", "raymer", "raymond", "raymonde", "raymund", "rayna", "rayner", "raynor", "razo", "rea", "reagan", "reanna", "reardon", "reatha", "reavis", "reba", "rebbeca", "rebbecca", "rebeca", "rebecca", "rebecka", "rebekah", "reber", "reda", "reddick", "redford", "redman", "redmon", "redmond", "redwine", "reece", "reena", "reese", "refugia", "refugio", "regalado", "regan", "regena", "regenia", "regina", "regine", "reginia", "rehm", "reich", "reichard", "reichel", "reichert", "reid", "reiff", "reiko", "reilly", "reimer", "reimers", "reina", "reiner", "reinert", "reinhardt", "reinhart", "reinhold", "reinke", "reiser", "reiss", "reita", "reitz", "rema", "rembert", "remedios", "remillard", "remington", "remona", "remy", "rena", "renae", "renata", "renate", "renaud", "renay", "renda", "rendon", "rene", "renea", "reneau", "renee", "renetta", "renfro", "renfroe", "renfrow", "renita", "renn", "renna", "renner", "rennie", "reno", "renshaw", "renteria", "renz", "resendez", "resnick", "ressie", "ressler", "reta", "retha", "retta", "reuter", "reva", "revell", "revis", "rey", "reyes", "reyna", "reynalda", "reynolds", "reynoso", "rhea", "rheba", "rhee", "rhiannon", "rhinehart", "rhoades", "rhoads", "rhoda", "rhoden", "rhodes", "rhona", "rhonda", "rhyne", "ribeiro", "ricarda", "ricci", "ricciardi", "riccio", "richard", "richards", "richardson", "richburg", "richelle", "richerson", "richert", "richey", "richie", "richman", "richmond", "rickard", "rickert", "ricketts", "ricki", "rickie", "rickman", "rico", "riddell", "riddick", "ridenhour", "ridenour", "rideout", "ridgway", "ridley", "riedel", "rieger", "riehl", "riendeau", "ries", "riffe", "rigby", "rigdon", "riggins", "riggle", "rigney", "rigsby", "riker", "rikki", "riley", "rimmer", "rinaldi", "rincon", "rinehart", "ringler", "rinker", "riojas", "riordan", "rios", "rioux", "ripley", "rippy", "risa", "risinger", "risley", "risner", "ritchey", "ritchie", "rittenhouse", "ritz", "rivard", "rivera", "rivero", "rivka", "rizo", "rizzo", "roa", "roane", "roark", "robb", "robbie", "robbin", "robbins", "robbyn", "robena", "roberge", "roberson", "robert", "roberta", "roberto", "roberts", "robertson", "robeson", "robey", "robichaud", "robichaux", "robinett", "robinette", "robinson", "robison", "robledo", "robson", "roby", "robyn", "rocco", "rocha", "roche", "rochel", "rochell", "rochelle", "rochester", "rocio", "rockett", "rockwell", "rockwood", "rodarte", "rodas", "roddy", "roden", "roderick", "rodgers", "rodney", "rodrigez", "rodrigue", "rodrigues", "rodriguez", "rodriques", "rodriquez", "roeder", "roemer", "roesch", "roesler", "rogan", "roger", "rogers", "rohde", "rohr", "rohrer", "rojas", "rojo", "roland", "rolanda", "rolande", "roldan", "rolf", "rolfe", "rolle", "rollins", "rollo", "rolon", "romana", "romano", "rome", "romelia", "romeo", "romero", "romine", "romo", "romona", "rona", "ronald", "ronda", "roney", "roni", "ronna", "ronni", "ronnie", "rooker", "rooney", "rory", "rosa", "rosado", "rosalba", "rosalee", "rosales", "rosalia", "rosalie", "rosalina", "rosalind", "rosalinda", "rosaline", "rosalva", "rosalyn", "rosamaria", "rosamond", "rosana", "rosann", "rosanna", "rosanne", "rosaria", "rosario", "rosas", "rosaura", "roscoe", "roseann", "roseanna", "roseanne", "roseberry", "roseboro", "roselee", "roselia", "roseline", "rosella", "roselle", "roselyn", "roseman", "rosemarie", "rosemond", "rosen", "rosena", "rosenbaum", "rosenberg", "rosenberger", "rosenberry", "rosenblatt", "rosenblum", "rosenda", "rosenfeld", "rosenthal", "rosetta", "rosette", "rosia", "rosie", "rosina", "rosio", "rosita", "roslyn", "ross", "rossana", "rossi", "rossie", "rossiter", "rossman", "rost", "roth", "rothman", "rothrock", "rothstein", "rothwell", "rotz", "roundtree", "roundy", "rountree", "rourke", "roush", "rousseau", "roussel", "rowden", "rowe", "rowell", "rowena", "rowland", "rowles", "rowlett", "rowley", "roxana", "roxane", "roxann", "roxanna", "roxanne", "roxie", "roy", "roybal", "royce", "royer", "royston", "rozanne", "rozella", "rozier", "ruano", "rubalcava", "ruben", "rubenstein", "rubi", "rubie", "rubin", "rubino", "rubio", "rubye", "ruch", "rucker", "ruckman", "rudnick", "rudolph", "rudy", "rueda", "ruelas", "ruffner", "rufina", "rugg", "ruggiero", "ruggles", "ruhl", "ruiz", "rummel", "rumph", "rumsey", "rundell", "runge", "runion", "runyan", "runyon", "rupe", "rupert", "rupp", "ruppert", "rusch", "rushton", "russ", "russell", "russo", "rutan", "ruth", "rutha", "ruthann", "ruthanne", "ruthe", "ruthie", "rutkowski", "rutland", "rutledge", "ruvalcaba", "ryan", "ryann", "ryder", "saad", "saari", "saavedra", "sabina", "sabine", "sabo", "sabol", "sabra", "sabrina", "sacco", "sacha", "sachiko", "sachs", "sackett", "sadie", "sadler", "sadowski", "sadye", "saechao", "saenz", "saez", "safford", "saito", "saiz", "sala", "salas", "salazar", "salcedo", "salcido", "saldana", "saldivar", "saleh", "salem", "salena", "salerno", "salgado", "salisbury", "salley", "sallie", "sally", "salo", "salome", "salomon", "saltzman", "salvador", "salvatore", "salyer", "salyers", "salzman", "sam", "samaniego", "samantha", "samara", "samatha", "samella", "samira", "sammie", "sammons", "sammy", "samons", "samora", "sampson", "sams", "samson", "samuel", "samuels", "samuelson", "sana", "sanabria", "sanborn", "sanches", "sanchez", "sanda", "sandberg", "sandee", "sanderlin", "sanderson", "sandi", "sandidge", "sandie", "sandifer", "sandler", "sandlin", "sandoval", "sandra", "sandstrom", "sandusky", "sanford", "sanjuana", "sanjuanita", "sankey", "sanmiguel", "sanora", "sansom", "sansone", "santa", "santacruz", "santamaria", "santana", "santiago", "santillan", "santina", "santo", "santoro", "santos", "santoyo", "sapp", "sappington", "sara", "sarabia", "sarah", "sarai", "saran", "sargeant", "sargent", "sari", "sarina", "sarita", "sarmiento", "sartain", "sartin", "sarver", "sasaki", "sasha", "sasser", "sather", "sato", "satterfield", "satterwhite", "sattler", "saturnina", "sau", "sauceda", "saucedo", "sauer", "saunders", "saundra", "sauter", "savannah", "saville", "savino", "savoie", "sawicki", "saxon", "saxton", "sayles", "saylor", "sayre", "scaife", "scalf", "scalise", "scanlan", "scanlon", "scarberry", "scarborough", "scarbrough", "scarlett", "schaaf", "schaal", "schade", "schaefer", "schaeffer", "schafer", "schaffer", "schaffner", "schall", "schaller", "scharf", "schatz", "schaub", "schauer", "scheel", "scheer", "scheffler", "schell", "scheller", "schenck", "schenk", "scherer", "schermerhorn", "schexnayder", "schick", "schiff", "schiffman", "schindler", "schlegel", "schleicher", "schlosser", "schlueter", "schmid", "schmidt", "schmit", "schmitt", "schmitz", "schneider", "schock", "schoen", "schoenfeld", "schofield", "scholl", "scholz", "schoonmaker", "schoonover", "schott", "schrader", "schram", "schramm", "schreck", "schreiber", "schreiner", "schrimsher", "schrock", "schroder", "schroeder", "schubert", "schuck", "schuh", "schuler", "schuller", "schulman", "schulte", "schultz", "schulz", "schulze", "schumacher", "schuman", "schumann", "schuster", "schutt", "schutz", "schuyler", "schwab", "schwartz", "schwarz", "schweitzer", "scofield", "scoggins", "scott", "scottie", "scoville", "scribner", "scrivner", "scroggins", "scruggs", "scully", "seabolt", "seabrook", "seagraves", "seale", "sealey", "sealy", "sean", "searcy", "searle", "searles", "seaton", "seaver", "seavey", "seawright", "seay", "sebastian", "sebrina", "sechrist", "seda", "sedillo", "seeger", "seeley", "seema", "segal", "segarra", "seger", "segovia", "segura", "seibel", "seiber", "seibert", "seidel", "seifert", "seiler", "seitz", "selby", "selena", "selene", "selina", "sellars", "selma", "selman", "sena", "senaida", "seng", "senn", "senter", "sepulveda", "serafina", "serena", "sergent", "serina", "serita", "serna", "serrano", "serrato", "sessoms", "setser", "setsuko", "setzer", "severson", "sevier", "sevigny", "sevilla", "seward", "sewell", "seymore", "seymour", "shackelford", "shackleford", "shae", "shafer", "shaffer", "shaina", "shakia", "shakira", "shakita", "shala", "shalanda", "shalon", "shalonda", "shamblin", "shameka", "shamika", "shana", "shanae", "shanahan", "shanda", "shandi", "shandra", "shane", "shaneka", "shanel", "shanell", "shanelle", "shaner", "shani", "shanice", "shanika", "shaniqua", "shanita", "shankle", "shanklin", "shanna", "shannan", "shannon", "shanon", "shanta", "shantae", "shantay", "shante", "shantel", "shantell", "shantelle", "shanti", "shapiro", "shaquana", "shaquita", "shara", "sharan", "sharda", "sharee", "sharell", "sharen", "shari", "sharice", "sharie", "sharika", "sharilyn", "sharita", "sharkey", "sharla", "sharleen", "sharlene", "sharma", "sharmaine", "sharolyn", "sharon", "sharonda", "sharpe", "sharri", "sharron", "sharyl", "sharyn", "shasta", "shattuck", "shaughnessy", "shaun", "shauna", "shaunda", "shaunna", "shaunta", "shaunte", "shavon", "shavonda", "shavonne", "shawana", "shawanda", "shawanna", "shawn", "shawna", "shawnda", "shawnee", "shawnna", "shawnta", "shay", "shayla", "shayna", "shayne", "shea", "shealy", "shearin", "sheba", "shedd", "sheehan", "sheehy", "sheena", "sheffield", "sheila", "sheilah", "shela", "shelba", "shelby", "sheldon", "shelia", "shella", "shelley", "shelli", "shellie", "shelly", "shelton", "shemeka", "shemika", "shena", "shenika", "shenita", "shenk", "shenna", "shepard", "shephard", "sheppard", "shera", "sheree", "sherell", "sherer", "sheri", "sherice", "sheridan", "sherie", "sherika", "sherill", "sherilyn", "sherise", "sherita", "sherlene", "sherley", "sherly", "sherlyn", "sherman", "sheron", "sherrell", "sherrer", "sherri", "sherrie", "sherril", "sherrill", "sherrod", "sherron", "sherryl", "sherwin", "sherwood", "shery", "sheryl", "sheryll", "shetler", "shick", "shiela", "shifflett", "shiflett", "shila", "shiloh", "shinn", "shipe", "shipley", "shipp", "shippy", "shira", "shirely", "shirey", "shirl", "shirlee", "shirleen", "shirlene", "shirley", "shirly", "shively", "shizue", "shizuko", "shockey", "shockley", "shoemake", "shoffner", "shona", "shonda", "shondra", "shonna", "shonta", "shoop", "shortridge", "shoshana", "shotwell", "shoup", "shouse", "showalter", "shrader", "shreve", "shropshire", "shroyer", "shrum", "shu", "shubert", "shuler", "shull", "shults", "shultz", "shumaker", "shuman", "shumate", "shumpert", "shumway", "shupe", "shuster", "shutt", "shyla", "sibert", "sibley", "sibyl", "sickler", "sidney", "siebert", "siegel", "siegfried", "sievers", "sifuentes", "sigler", "sigman", "sigmon", "signe", "sigrid", "sikora", "silas", "silva", "silvana", "silveira", "silverman", "silverstein", "silvey", "silvia", "simard", "simas", "simmon", "simmons", "simms", "simon", "simona", "simonds", "simone", "simoneau", "simoneaux", "simonne", "simons", "simonson", "simonton", "simpkins", "simpson", "sinclair", "sindy", "singh", "singletary", "singley", "siobhan", "sirena", "sirois", "sisco", "sisk", "sisneros", "sisson", "sistrunk", "sitton", "siu", "sixta", "sizemore", "skaggs", "skeen", "skeens", "skelton", "skidmore", "skiles", "skye", "slagle", "slaton", "slavin", "slayton", "sloat", "slocum", "slone", "slover", "slusher", "slyvia", "smalley", "smallwood", "smedley", "smelser", "smitherman", "smithson", "smtih", "smyth", "smythe", "snapp", "snavely", "snodgrass", "snowden", "snyder", "soares", "sobel", "socorro", "sofia", "sohn", "soila", "soileau", "sokol", "solange", "solberg", "soledad", "solis", "soliz", "soloman", "solomon", "solorio", "solorzano", "somer", "somers", "somerville", "sommer", "sommers", "sommerville", "sona", "sondra", "songer", "sonia", "sonja", "sonnier", "sonya", "soper", "sophia", "sophie", "sophy", "soraya", "sorensen", "sorenson", "soria", "soriano", "sorrell", "sorrells", "sosa", "sotelo", "soto", "soucy", "soukup", "soule", "sousa", "southard", "southerland", "southwick", "southworth", "souza", "sowder", "sowell", "spalding", "spann", "spano", "sparkman", "spaulding", "specht", "spector", "speight", "spellman", "sperry", "spiegel", "spielman", "spiers", "spiker", "spillman", "spinelli", "spitler", "spitzer", "spivey", "spooner", "spradlin", "spradling", "spraggins", "sprague", "spratt", "sprayberry", "spriggs", "sproul", "sprouse", "spruill", "spurgeon", "spurlock", "staats", "stacee", "stacey", "staci", "stacia", "stacie", "stackhouse", "stacy", "stadler", "stafford", "stagg", "staggs", "stagner", "stahl", "staley", "stallard", "stallworth", "stalnaker", "stambaugh", "stamey", "stamm", "stancil", "standifer", "standley", "standridge", "stanfield", "stanfill", "stanford", "stanger", "stanley", "stansberry", "stansbury", "stanton", "stapleton", "starkey", "starla", "starnes", "starr", "stasia", "staten", "staton", "staub", "stauffer", "stclair", "stcyr", "steadman", "stearns", "stebbins", "steck", "stedman", "steele", "steelman", "stefani", "stefania", "stefanie", "stefany", "steffanie", "steffen", "steffens", "stegall", "steger", "steib", "steiger", "steinbach", "steinberg", "steiner", "steinke", "steinman", "steinmetz", "stella", "stelly", "stenson", "stepanie", "stephaine", "stephan", "stephane", "stephani", "stephania", "stephanie", "stephany", "stephen", "stephenie", "stephens", "stephenson", "stephine", "stephnie", "stepp", "sternberg", "stetson", "steven", "stevenson", "steverson", "stevie", "stewart", "stgermain", "sthilaire", "stickney", "stidham", "stier", "stiffler", "stillman", "stillwell", "stiltner", "stilwell", "stine", "stines", "stinnett", "stinson", "stites", "stith", "stitt", "stjohn", "stlaurent", "stlouis", "stockdale", "stockton", "stockwell", "stoddard", "stoffel", "stogner", "stoll", "stollings", "stoltz", "stoltzfus", "stonge", "stott", "stotts", "stouffer", "stovall", "stowe", "stowell", "stpeter", "stpierre", "strachan", "strader", "strahan", "straka", "straley", "strasser", "stratton", "straub", "strauss", "strawn", "strawser", "streeter", "streit", "stribling", "stricker", "strickland", "strickler", "stricklin", "stringfellow", "strobel", "stroh", "strom", "stroman", "stromberg", "strother", "strouse", "struble", "strunk", "stuart", "stubblefield", "stuckey", "studer", "stultz", "stumpf", "sturdivant", "sturges", "sturgill", "sturgis", "sturm", "sturtevant", "stutz", "stutzman", "suanne", "suarez", "suazo", "sublett", "sudduth", "sudie", "sueann", "suellen", "suggs", "suh", "suiter", "suk", "sulema", "sullins", "sullivan", "sumiko", "summerlin", "summerville", "sumner", "sumrall", "sundberg", "sunderland", "sunni", "surber", "surratt", "susan", "susana", "susann", "susanna", "susannah", "susanne", "susie", "sussman", "susy", "suter", "sutherland", "sutphin", "sutter", "sutton", "suzan", "suzann", "suzanna", "suzanne", "suzette", "suzi", "suzie", "suzuki", "suzy", "svetlana", "svitlana", "svoboda", "swafford", "swaim", "swaney", "swanger", "swann", "swanner", "swanson", "swarey", "swartz", "swearingen", "sweatt", "sweitzer", "swenson", "swett", "swick", "swiger", "swindell", "swinford", "swinney", "swinson", "swint", "swinton", "switzer", "swope", "sybil", "syble", "sydney", "sydnor", "sylvester", "sylvia", "sylvie", "symons", "synder", "synthia", "syreeta", "szabo", "szymanski", "tabatha", "tabb", "taber", "tabetha", "tabitha", "tackett", "tafoya", "taft", "taggart", "tague", "taina", "taisha", "tajuana", "takahashi", "takako", "takisha", "talamantes", "talavera", "talbert", "talbott", "talia", "taliaferro", "talisha", "talitha", "talkington", "tallent", "talley", "tallman", "talton", "tamala", "tamar", "tamara", "tamatha", "tamayo", "tambra", "tameika", "tameka", "tamekia", "tamela", "tamera", "tamesha", "tamez", "tami", "tamica", "tamie", "tamika", "tamiko", "tamisha", "tammara", "tammera", "tammi", "tammie", "tammy", "tamra", "tana", "tanaka", "tandra", "tandy", "taneka", "tanesha", "tangela", "tanguay", "tania", "tanika", "tanisha", "tanja", "tankersley", "tanna", "tanya", "tapia", "tapley", "tapp", "tara", "tarah", "tarango", "tarbox", "tardif", "tardiff", "taren", "tari", "tarpley", "tarr", "tarra", "tarrant", "tarsha", "tarver", "taryn", "tasha", "tashia", "tashina", "tasia", "tatiana", "tatro", "tatum", "tatyana", "taunya", "tavares", "tavarez", "taveras", "tawana", "tawanda", "tawanna", "tawna", "tawnya", "taylor", "tayna", "teague", "teasley", "tedford", "teena", "teets", "tegan", "teisha", "teixeira", "tejada", "tejeda", "telford", "telles", "tellez", "tello", "telma", "temeka", "temika", "tempie", "templeton", "templin", "tena", "tenesha", "tenisha", "tennant", "tenney", "tennie", "tennille", "tennison", "tennyson", "tenorio", "teodora", "teofila", "tera", "teran", "tereasa", "teresa", "terese", "teresia", "teresita", "teressa", "teri", "terica", "terina", "terisa", "terra", "terrazas", "terrell", "terresa", "terri", "terrie", "terrill", "terrilyn", "terry", "terwilliger", "tesch", "tesha", "tess", "tessa", "tessie", "tessier", "testerman", "teter", "tetreault", "thach", "thacker", "thai", "thalia", "thames", "thanh", "thao", "tharp", "tharpe", "thaxton", "thayer", "thea", "theda", "theis", "theisen", "theiss", "thelen", "thelma", "theo", "theobald", "theodora", "theodore", "theola", "theresa", "therese", "theresia", "theressa", "theriault", "theriot", "therrien", "thersa", "thi", "thibault", "thibeault", "thibodeau", "thibodeaux", "thiel", "thiele", "thielen", "thies", "thigpen", "thom", "thoma", "thomas", "thomasena", "thomasina", "thomasine", "thomason", "thomasson", "thompkins", "thompson", "thomsen", "thomson", "thora", "thornberry", "thornburg", "thorne", "thornhill", "thornton", "thorson", "thorton", "threadgill", "threatt", "thresa", "throckmorton", "thu", "thurber", "thurman", "thurmond", "thurston", "thuy", "tia", "tiana", "tianna", "tibbetts", "tibbs", "tidwell", "tiera", "tierney", "tierra", "tiesha", "tifany", "tiffaney", "tiffani", "tiffanie", "tiffany", "tiffiny", "tighe", "tijerina", "tijuana", "tilda", "tilghman", "tillery", "tillett", "tilley", "tillie", "tillis", "tillman", "tillotson", "tilton", "timberlake", "timika", "timm", "timmerman", "timmons", "timms", "timothy", "tims", "tina", "tincher", "tindall", "tindle", "tingley", "tinisha", "tinney", "tinsley", "tippett", "tipton", "tirado", "tisa", "tisdale", "tish", "tisha", "titus", "tobar", "tobey", "tobi", "tobias", "tobie", "tobin", "toby", "toccara", "todd", "toi", "toland", "tolbert", "toledo", "tolentino", "toler", "toliver", "tolle", "tollefson", "tolley", "tolliver", "tolman", "tolson", "tomas", "tomasa", "tomblin", "tomeka", "tomi", "tomika", "tomiko", "tomlin", "tomlinson", "tommie", "tommy", "tommye", "tomoko", "tompkins", "tona", "tonda", "tonette", "toni", "tonia", "tonie", "tonisha", "tonita", "tonja", "tony", "tonya", "toole", "tooley", "toombs", "toomer", "toomey", "tora", "torgerson", "tori", "torie", "toro", "torre", "torrence", "torres", "torrey", "torrez", "torri", "torrie", "tory", "toscano", "tosha", "toshia", "toshiko", "toth", "totten", "toussaint", "tova", "tovar", "towanda", "towe", "towle", "towne", "towner", "townes", "townley", "townsend", "townsley", "toya", "tracee", "tracey", "traci", "tracie", "tracy", "trahan", "trainor", "tramel", "trammell", "tran", "trang", "trantham", "trapp", "trask", "travers", "travis", "trawick", "traylor", "traynor", "treadway", "treadwell", "treasa", "treece", "treena", "trejo", "tremblay", "trena", "trent", "tresa", "tressa", "tressie", "treva", "trevino", "trexler", "tricia", "trigg", "trimble", "trina", "trinh", "trinidad", "triplett", "tripp", "trish", "trisha", "trista", "tristan", "trombley", "trost", "trotman", "trott", "trottier", "troup", "troutman", "trowbridge", "troxell", "troxler", "troy", "troyer", "truax", "trudeau", "trudi", "trudie", "trudy", "trueblood", "truelove", "truesdale", "truett", "truitt", "trujillo", "trula", "truman", "truong", "trussell", "tsai", "tsang", "tse", "tso", "tsosie", "tubbs", "tucci", "tudor", "tuggle", "tula", "tull", "tullis", "tully", "tunnell", "tunstall", "tupper", "turcotte", "turgeon", "turk", "turley", "turman", "turnage", "turnbow", "turnbull", "turney", "turpin", "tutt", "tuttle", "tuyet", "twana", "twanda", "twanna", "twigg", "twila", "twilley", "twitty", "twombly", "twomey", "twyla", "twyman", "tyesha", "tyisha", "tyler", "tyndall", "tyner", "tynisha", "tyra", "tyree", "tyrrell", "tyson", "tyus", "uhl", "ulibarri", "ullman", "ulloa", "ullrich", "ulmer", "ulrich", "ulrike", "underhill", "ung", "unger", "unknow", "unruh", "upchurch", "upshaw", "upton", "urbina", "urias", "uribe", "urquhart", "urrutia", "ursula", "usha", "ussery", "ute", "utley", "vaca", "vaccaro", "vachon", "vada", "vaden", "vadnais", "vaillancourt", "val", "valadez", "valarie", "valda", "valdes", "valdez", "valdivia", "valdovinos", "valencia", "valene", "valente", "valenti", "valentin", "valentina", "valentino", "valenzuela", "valeri", "valeria", "valerie", "valerio", "valero", "valery", "valladares", "valle", "vallee", "vallejo", "valles", "vallie", "valliere", "valorie", "valrie", "valverde", "vanatta", "vanburen", "vanbuskirk", "vance", "vancleave", "vanda", "vandenberg", "vanderpool", "vandiver", "vandusen", "vandyke", "vanegas", "vanesa", "vanessa", "vanetta", "vanhook", "vanhoose", "vanhorn", "vanhouten", "vania", "vanita", "vankirk", "vanlandingham", "vanmeter", "vann", "vanna", "vannatta", "vannesa", "vanness", "vannessa", "vannoy", "vanover", "vanpelt", "vanscoy", "vansickle", "vantassel", "vanwinkle", "vanzandt", "vanzant", "varela", "varga", "vargas", "vargo", "varnado", "varner", "varney", "vashti", "vasiliki", "vasques", "vasquez", "vassallo", "vassar", "vaughan", "vaughn", "vaught", "vazquez", "veach", "veasey", "veda", "veilleux", "velarde", "velasco", "velasquez", "velazquez", "velda", "velez", "velia", "veliz", "vella", "velma", "veloz", "velva", "vena", "venable", "venegas", "venessa", "venetta", "venice", "venita", "vennie", "ventura", "veola", "vera", "verda", "verdell", "verdie", "verdugo", "verduzco", "vereen", "verena", "vergara", "vergie", "verla", "verlene", "verlie", "verline", "vermillion", "verna", "vernell", "vernetta", "vernia", "vernice", "vernie", "vernita", "vernon", "verona", "veronica", "veronika", "veronique", "verret", "versie", "vertie", "vesta", "veta", "vetter", "vicenta", "vick", "vickers", "vickery", "vickey", "vicki", "vickie", "vicky", "victoria", "victorina", "vida", "vidal", "vidrine", "vieira", "viera", "vierra", "vigue", "viki", "vikki", "villagomez", "villalba", "villalobos", "villalpando", "villanueva", "villareal", "villarreal", "villasenor", "villatoro", "villegas", "villeneuve", "vilma", "vincent", "vincenza", "vinita", "vinnie", "vinson", "violeta", "violette", "virgen", "virgie", "virgil", "virgina", "virginia", "visser", "vitale", "vivan", "vivian", "viviana", "vivien", "vivienne", "voelker", "vogel", "vogler", "vogt", "voight", "voigt", "volkman", "vollmer", "volpe", "volz", "voncile", "vonda", "vonnie", "voorhees", "voss", "vowell", "voyles", "vue", "vuong", "wachter", "waddell", "wadley", "wadsworth", "wagner", "wagstaff", "wahl", "wai", "waite", "waites", "wakefield", "walcott", "walczak", "walden", "waldman", "waldon", "waldron", "waldrop", "waldrup", "wallace", "wallen", "walley", "wallin", "wallis", "walsh", "walston", "walter", "walters", "walther", "waltman", "walton", "waltraud", "walz", "wampler", "wanda", "waneta", "wanetta", "wanita", "wardell", "wardlaw", "warfield", "wargo", "warnke", "warnock", "warr", "warrick", "warrington", "warwick", "washburn", "washington", "wasson", "watanabe", "waterhouse", "watford", "watkins", "watson", "watters", "watterson", "wava", "wayland", "wayman", "wayne", "weatherby", "weatherford", "weathersby", "weatherspoon", "webb", "webber", "weddle", "weeden", "weekley", "weese", "wegner", "wei", "weidman", "weidner", "weigand", "weigel", "weiland", "weiler", "weimer", "weinberg", "weinberger", "weiner", "weinstein", "weintraub", "weis", "weisberg", "weise", "weiser", "weisman", "weiss", "weissman", "weitzel", "welborn", "weldon", "welker", "weller", "wellington", "wellman", "welton", "welty", "wendel", "wendell", "wendi", "wendie", "wendling", "wendolyn", "wendt", "wendy", "wenger", "wenona", "wentworth", "wentz", "wentzel", "wenzel", "werner", "werth", "wertz", "wescott", "wesley", "wessel", "wessels", "wesson", "westberry", "westbrook", "westbrooks", "westcott", "westerfield", "westerman", "westfall", "westlund", "westmoreland", "weston", "westover", "westphal", "wethington", "wetmore", "wetzel", "wexler", "whalen", "whaley", "wharton", "whatley", "wheatley", "wheaton", "wheelock", "whelan", "whipple", "whisenant", "whisenhunt", "whisler", "whitacre", "whitaker", "whitcomb", "whitehead", "whitehouse", "whitehurst", "whiteley", "whiteman", "whitesell", "whiteside", "whitfield", "whitford", "whitley", "whitlock", "whitman", "whitmer", "whitmire", "whitmore", "whitney", "whitson", "whitt", "whittaker", "whitted", "whittemore", "whitten", "whittier", "whittington", "whitton", "whitworth", "whorton", "whyte", "wickham", "wicklund", "wickman", "wideman", "widmer", "widner", "wiegand", "wieland", "wiener", "wiese", "wigfall", "wiggins", "wiggs", "wigley", "wilbanks", "wilber", "wilborn", "wilbourn", "wilbur", "wilburn", "wilcher", "wilcox", "wilda", "wilde", "wildman", "wiley", "wilfong", "wilford", "wilhelm", "wilhelmina", "wilhemina", "wilhite", "wilhoit", "wilk", "wilke", "wilkens", "wilkerson", "wilkes", "wilkey", "wilkie", "wilkins", "wilkinson", "wilks", "willa", "willaims", "willams", "willard", "wille", "willena", "willene", "willett", "willetta", "willette", "willhite", "willia", "william", "williams", "williamson", "willie", "williemae", "williford", "willingham", "willis", "willison", "willman", "willodean", "willoughby", "willson", "wilma", "wilmot", "wilmoth", "wilson", "wilton", "wimberly", "wimbush", "wimer", "wimmer", "winburn", "winchell", "winchester", "windham", "windom", "windsor", "winegar", "winfield", "winfrey", "wingard", "wingate", "wingfield", "wingo", "winifred", "winkelman", "winkler", "winn", "winnie", "winnifred", "winona", "winslow", "winstead", "winston", "winton", "wirth", "wiseman", "wisner", "wisniewski", "witcher", "witham", "witherspoon", "withrow", "witkowski", "witmer", "witt", "witte", "witten", "wittman", "wofford", "wojcik", "wolcott", "wolfe", "wolfenbarger", "wolff", "wolfgang", "wolford", "wolfson", "wolter", "wolters", "womack", "wonda", "wong", "woodall", "woodard", "woodbury", "woodford", "woodham", "woodley", "woodring", "woodrow", "woodrum", "woodson", "woodworth", "woolard", "wooldridge", "woolery", "wooley", "woolf", "woolfolk", "woolley", "woolridge", "woosley", "wooster", "wooten", "wooton", "worden", "worley", "worrell", "worsham", "worsley", "wortham", "worthen", "worthington", "wortman", "wozniak", "wray", "wrenn", "wulf", "wunderlich", "wurth", "wyant", "wyatt", "wyche", "wyckoff", "wylie", "wyman", "wynell", "wynne", "wynona", "wyrick", "wysocki", "xenia", "xiao", "xiomara", "xiong", "xochitl", "xuan", "yadira", "yaeko", "yael", "yahaira", "yajaira", "yamada", "yamamoto", "yan", "yancey", "yancy", "yandell", "yanez", "yanira", "yarber", "yarborough", "yarbrough", "yasmin", "yasmine", "yasuko", "yates", "yazzie", "ybarra", "yeager", "yee", "yeh", "yelena", "yepez", "yer", "yesenia", "yessenia", "yetta", "yeung", "yevette", "yi", "yim", "ying", "yingling", "yoakum", "yockey", "yocum", "yoder", "yoel", "yoho", "yoko", "yolanda", "yolande", "yolando", "yolonda", "yong", "yoo", "yoon", "yoshida", "yoshie", "yoshiko", "yost", "youlanda", "youmans", "youngblood", "youngman", "youngs", "yount", "younts", "yu", "yuen", "yuette", "yuk", "yuki", "yukiko", "yuko", "yulanda", "yun", "yung", "yuonne", "yuri", "yuriko", "yvette", "yvone", "yvonne", "zachary", "zack", "zada", "zahn", "zaida", "zajac", "zak", "zamarripa", "zambrano", "zamora", "zamudio", "zana", "zandra", "zaragoza", "zarate", "zavala", "zayas", "zeigler", "zelaya", "zelda", "zella", "zeller", "zellers", "zelma", "zena", "zenaida", "zendejas", "zenia", "zenobia", "zepeda", "zeringue", "zetta", "zhang", "zhao", "ziegler", "zielinski", "zimmerman", "zimmermann", "zina", "zink", "zinn", "zita", "zito", "zoe", "zofia", "zoila", "zola", "zona", "zonia", "zook", "zora", "zoraida", "zorn", "zuber", "zucker", "zula", "zulema", "zulma", "zumwalt", "zuniga"].join("|") + "))+\\b", "gim");
1872
+ class Wr {
1873
+ constructor(e = "PERSON_NAME") {
1874
+ this.replaceWith = e;
1875
+ }
1876
+ redact(e) {
1877
+ We.lastIndex = 0, At.lastIndex = 0;
1878
+ let t = We.exec(e);
1879
+ for (; t !== null; ) {
1880
+ At.lastIndex = We.lastIndex;
1881
+ let n = At.exec(e);
1882
+ if (n !== null && n.index === We.lastIndex) {
1883
+ let r = n[5] === null ? "" : n[5];
1884
+ e = e.slice(0, n.index) + this.replaceWith + r + e.slice(n.index + n[0].length);
1885
+ }
1886
+ t = We.exec(e);
1887
+ }
1888
+ return e = e.replace(qr, "$1" + this.replaceWith);
1889
+ }
1890
+ }
1891
+ const Vr = new RegExp("(\\d+\\s*(\\w+ ){1,2}" + /(street|st|road|rd|avenue|ave|drive|dr|loop|court|ct|circle|cir|lane|ln|boulevard|blvd|way)\.?\b/gi.source + "(\\s+" + /(apt|bldg|dept|fl|hngr|lot|pier|rm|ste|slip|trlr|unit|#)\.? *[a-z0-9-]+\b/gi.source + ")?)|(" + /P\.? ?O\.? *Box +\d+/gi.source + ")", "gi"), fa = Object.freeze(Object.defineProperty({ __proto__: null, credentials: /(login( cred(ential)?s| info(rmation)?)?|cred(ential)?s) ?:\s*\S+\s+\/?\s*\S+/gi, creditCardNumber: /\d{4}[ -]?\d{4}[ -]?\d{4}[ -]?\d{4}|\d{4}[ -]?\d{6}[ -]?\d{4}\d?/g, digits: /\b\d{4,}\b/g, emailAddress: /([a-z0-9_\-.+]+)@\w+(\.\w+)*/gi, ipAddress: /(\d{1,3}(\.\d{1,3}){3}|[0-9A-F]{4}(:[0-9A-F]{4}){5}(::|(:0000)+))/gi, password: /(pass(word|phrase)?|secret): \S+/gi, phoneNumber: /(\(?\+?[0-9]{1,2}\)?[-. ]?)?(\(?[0-9]{3}\)?|[0-9]{3})[-. ]?([0-9]{3}[-. ]?[0-9]{4}|\b[A-Z0-9]{7}\b)/g, streetAddress: Vr, url: /([^\s:/?#]+):\/\/([^/?#\s]*)([^?#\s]*)(\?([^#\s]*))?(#([^\s]*))?/g, usSocialSecurityNumber: /\b\d{3}[ -.]\d{2}[ -.]\d{4}\b/g, username: /(user( ?name)?|login): \S+/gi, zipcode: /\b\d{5}\b(-\d{4})?\b/g }, Symbol.toStringTag, { value: "Module" }));
1892
+ function en(a) {
1893
+ return a.replace(/[A-Z]/g, (e, t) => t !== 0 ? `_${e.toLowerCase()}` : e.toLowerCase());
1894
+ }
1895
+ class tn {
1896
+ constructor({ replaceWith: e = en("default").toUpperCase(), regexpPattern: t }) {
1897
+ _(this, "regexpMatcher");
1898
+ _(this, "replaceWith");
1899
+ this.replaceWith = e, this.regexpMatcher = t;
1900
+ }
1901
+ redact(e) {
1902
+ return e.replace(this.regexpMatcher, this.replaceWith);
1903
+ }
1904
+ }
1905
+ function ka(a) {
1906
+ return a.regexpPattern !== void 0 ? new tn({ regexpPattern: a.regexpPattern, replaceWith: a.replaceWith }) : a;
1907
+ }
1908
+ class Ur {
1909
+ constructor(e) {
1910
+ _(this, "childRedactors", []);
1911
+ _(this, "redact", (e) => {
1912
+ for (const t of this.childRedactors) e = t.redact(e);
1913
+ return e;
1914
+ });
1915
+ this.childRedactors = function(t = {}) {
1916
+ const n = [];
1917
+ t.customRedactors && t.customRedactors.before && t.customRedactors.before.map(ka).forEach((r) => n.push(r));
1918
+ for (const r of Object.keys(fa)) t.builtInRedactors && t.builtInRedactors[r] && t.builtInRedactors[r].enabled === !1 || n.push(new tn({ regexpPattern: fa[r], replaceWith: t.globalReplaceWith || en(r).toUpperCase() }));
1919
+ return t.builtInRedactors && t.builtInRedactors.names && t.builtInRedactors.names.enabled === !1 || n.push(new Wr(t.globalReplaceWith)), t.customRedactors && t.customRedactors.after && t.customRedactors.after.map(ka).forEach((r) => n.push(r)), n;
1920
+ }(e);
1921
+ }
1922
+ }
1923
+ const Pr = { before: [{ regexpPattern: /\b[A-Z]\d{7}\b/g, replaceWith: "PASSPORT_NUMBER" }, { regexpPattern: new RegExp("(?<=password: )(.*)", "gi"), replaceWith: "[REDACTED]" }] };
1924
+ function Zr(a) {
1925
+ const e = document.createTreeWalker(a, NodeFilter.SHOW_TEXT, null);
1926
+ let t;
1927
+ for (; t = e.nextNode(); ) {
1928
+ const r = t.nodeValue, i = (n = r, new Ur({ builtInRedactors: { names: { replaceWith: "ANONYMOUS_PERSON" } }, customRedactors: Pr }).redact(n));
1929
+ r !== i && (t.nodeValue = i);
1930
+ }
1931
+ var n;
1932
+ (function(r) {
1933
+ Array.from(r.querySelectorAll('input[type="password"]')).forEach((o) => {
1934
+ o.value = "[REDACTED]";
1935
+ });
1936
+ })(a);
1937
+ }
1938
+ var ie;
1939
+ function Ge(a) {
1940
+ var e = a == null ? void 0 : a.host;
1941
+ return (e == null ? void 0 : e.shadowRoot) === a;
1942
+ }
1943
+ function Ke(a) {
1944
+ return Object.prototype.toString.call(a) === "[object ShadowRoot]";
1945
+ }
1946
+ function Ft(a) {
1947
+ try {
1948
+ var e = a.rules || a.cssRules;
1949
+ return e ? ((t = Array.from(e).map(an).join("")).includes(" background-clip: text;") && !t.includes(" -webkit-background-clip: text;") && (t = t.replace(" background-clip: text;", " -webkit-background-clip: text; background-clip: text;")), t) : null;
1950
+ } catch (n) {
1951
+ return null;
1952
+ }
1953
+ var t;
1954
+ }
1955
+ function an(a) {
1956
+ var e = a.cssText;
1957
+ if (function(t) {
1958
+ return "styleSheet" in t;
1959
+ }(a)) try {
1960
+ e = Ft(a.styleSheet) || e;
1961
+ } catch (t) {
1962
+ }
1963
+ return e;
1964
+ }
1965
+ (function(a) {
1966
+ a[a.Document = 0] = "Document", a[a.DocumentType = 1] = "DocumentType", a[a.Element = 2] = "Element", a[a.Text = 3] = "Text", a[a.CDATA = 4] = "CDATA", a[a.Comment = 5] = "Comment";
1967
+ })(ie || (ie = {}));
1968
+ var nn = function() {
1969
+ function a() {
1970
+ this.idNodeMap = /* @__PURE__ */ new Map(), this.nodeMetaMap = /* @__PURE__ */ new WeakMap();
1971
+ }
1972
+ return a.prototype.getId = function(e) {
1973
+ var t;
1974
+ if (!e) return -1;
1975
+ var n = (t = this.getMeta(e)) === null || t === void 0 ? void 0 : t.id;
1976
+ return n != null ? n : -1;
1977
+ }, a.prototype.getNode = function(e) {
1978
+ return this.idNodeMap.get(e) || null;
1979
+ }, a.prototype.getIds = function() {
1980
+ return Array.from(this.idNodeMap.keys());
1981
+ }, a.prototype.getMeta = function(e) {
1982
+ return this.nodeMetaMap.get(e) || null;
1983
+ }, a.prototype.removeNodeFromMap = function(e) {
1984
+ var t = this, n = this.getId(e);
1985
+ this.idNodeMap.delete(n), e.childNodes && e.childNodes.forEach(function(r) {
1986
+ return t.removeNodeFromMap(r);
1987
+ });
1988
+ }, a.prototype.has = function(e) {
1989
+ return this.idNodeMap.has(e);
1990
+ }, a.prototype.hasNode = function(e) {
1991
+ return this.nodeMetaMap.has(e);
1992
+ }, a.prototype.add = function(e, t) {
1993
+ var n = t.id;
1994
+ this.idNodeMap.set(n, e), this.nodeMetaMap.set(e, t);
1995
+ }, a.prototype.replace = function(e, t) {
1996
+ var n = this.getNode(e);
1997
+ if (n) {
1998
+ var r = this.nodeMetaMap.get(n);
1999
+ r && this.nodeMetaMap.set(t, r);
2000
+ }
2001
+ this.idNodeMap.set(e, t);
2002
+ }, a.prototype.reset = function() {
2003
+ this.idNodeMap = /* @__PURE__ */ new Map(), this.nodeMetaMap = /* @__PURE__ */ new WeakMap();
2004
+ }, a;
2005
+ }();
2006
+ function Jt(a) {
2007
+ var e = a.maskInputOptions, t = a.tagName, n = a.type, r = a.value, i = a.maskInputFn, o = r || "";
2008
+ return (e[t.toLowerCase()] || e[n]) && (o = i ? i(o) : "*".repeat(o.length)), o;
2009
+ }
2010
+ var wa = "__rrweb_original__", Oe, va, Gr = 1, Kr = new RegExp("[^a-z0-9-_:]");
2011
+ function rn() {
2012
+ return Gr++;
2013
+ }
2014
+ var Yr = /url\((?:(')([^']*)'|(")(.*?)"|([^)]*))\)/gm, Hr = /^(?!www\.|(?:http|ftp)s?:\/\/|[A-Za-z]:\\|\/\/|#).*/, Jr = /^(data:)([^,]*),(.*)/i;
2015
+ function lt(a, e) {
2016
+ return (a || "").replace(Yr, function(t, n, r, i, o, s) {
2017
+ var l = r || o || s, c = n || i || "";
2018
+ if (!l) return t;
2019
+ if (!Hr.test(l) || Jr.test(l)) return "url(".concat(c).concat(l).concat(c, ")");
2020
+ if (l[0] === "/") return "url(".concat(c).concat(function(R) {
2021
+ return (R.indexOf("//") > -1 ? R.split("/").slice(0, 3).join("/") : R.split("/")[0]).split("?")[0];
2022
+ }(e) + l).concat(c, ")");
2023
+ var h = e.split("/"), d = l.split("/");
2024
+ h.pop();
2025
+ for (var u = 0, b = d; u < b.length; u++) {
2026
+ var f = b[u];
2027
+ f !== "." && (f === ".." ? h.pop() : h.push(f));
2028
+ }
2029
+ return "url(".concat(c).concat(h.join("/")).concat(c, ")");
2030
+ });
2031
+ }
2032
+ var Qr = /^[^ \t\n\r\u000c]+/, Xr = /^[, \t\n\r\u000c]+/;
2033
+ function Ve(a, e) {
2034
+ if (!e || e.trim() === "") return e;
2035
+ var t = a.createElement("a");
2036
+ return t.href = e, t.href;
2037
+ }
2038
+ function $r(a) {
2039
+ return !!(a.tagName === "svg" || a.ownerSVGElement);
2040
+ }
2041
+ function Bt() {
2042
+ var a = document.createElement("a");
2043
+ return a.href = "", a.href;
2044
+ }
2045
+ function on(a, e, t, n) {
2046
+ return t === "src" || t === "href" && n && (e !== "use" || n[0] !== "#") || t === "xlink:href" && n && n[0] !== "#" ? Ve(a, n) : t !== "background" || !n || e !== "table" && e !== "td" && e !== "th" ? t === "srcset" && n ? function(r, i) {
2047
+ if (i.trim() === "") return i;
2048
+ var o = 0;
2049
+ function s(b) {
2050
+ var f, R = b.exec(i.substring(o));
2051
+ return R ? (f = R[0], o += f.length, f) : "";
2052
+ }
2053
+ for (var l = []; s(Xr), !(o >= i.length); ) {
2054
+ var c = s(Qr);
2055
+ if (c.slice(-1) === ",") c = Ve(r, c.substring(0, c.length - 1)), l.push(c);
2056
+ else {
2057
+ var h = "";
2058
+ c = Ve(r, c);
2059
+ for (var d = !1; ; ) {
2060
+ var u = i.charAt(o);
2061
+ if (u === "") {
2062
+ l.push((c + h).trim());
2063
+ break;
2064
+ }
2065
+ if (d) u === ")" && (d = !1);
2066
+ else {
2067
+ if (u === ",") {
2068
+ o += 1, l.push((c + h).trim());
2069
+ break;
2070
+ }
2071
+ u === "(" && (d = !0);
2072
+ }
2073
+ h += u, o += 1;
2074
+ }
2075
+ }
2076
+ }
2077
+ return l.join(", ");
2078
+ }(a, n) : t === "style" && n ? lt(n, Bt()) : e === "object" && t === "data" && n ? Ve(a, n) : n : Ve(a, n);
2079
+ }
2080
+ function ut(a, e, t) {
2081
+ if (!a) return !1;
2082
+ if (a.nodeType !== a.ELEMENT_NODE) return !!t && ut(a.parentNode, e, t);
2083
+ for (var n = a.classList.length; n--; ) {
2084
+ var r = a.classList[n];
2085
+ if (e.test(r)) return !0;
2086
+ }
2087
+ return !!t && ut(a.parentNode, e, t);
2088
+ }
2089
+ function sn(a, e, t) {
2090
+ var n = a.nodeType === a.ELEMENT_NODE ? a : a.parentElement;
2091
+ if (n === null) return !1;
2092
+ if (typeof e == "string") {
2093
+ if (n.classList.contains(e) || n.closest(".".concat(e))) return !0;
2094
+ } else if (ut(n, e, !0)) return !0;
2095
+ return !!(t && (n.matches(t) || n.closest(t)));
2096
+ }
2097
+ function ei(a, e) {
2098
+ var t = e.doc, n = e.mirror, r = e.blockClass, i = e.blockSelector, o = e.maskTextClass, s = e.maskTextSelector, l = e.inlineStylesheet, c = e.maskInputOptions, h = c === void 0 ? {} : c, d = e.maskTextFn, u = e.maskInputFn, b = e.dataURLOptions, f = b === void 0 ? {} : b, R = e.inlineImages, p = e.recordCanvas, m = e.keepIframeSrcFn, v = e.newlyAddedElement, C = v !== void 0 && v, N = function(g, A) {
2099
+ if (A.hasNode(g)) {
2100
+ var S = A.getId(g);
2101
+ return S === 1 ? void 0 : S;
2102
+ }
2103
+ }(t, n);
2104
+ switch (a.nodeType) {
2105
+ case a.DOCUMENT_NODE:
2106
+ return a.compatMode !== "CSS1Compat" ? { type: ie.Document, childNodes: [], compatMode: a.compatMode } : { type: ie.Document, childNodes: [] };
2107
+ case a.DOCUMENT_TYPE_NODE:
2108
+ return { type: ie.DocumentType, name: a.name, publicId: a.publicId, systemId: a.systemId, rootId: N };
2109
+ case a.ELEMENT_NODE:
2110
+ return function(g, A) {
2111
+ for (var S = A.doc, j = A.blockClass, x = A.blockSelector, E = A.inlineStylesheet, w = A.maskInputOptions, I = w === void 0 ? {} : w, z = A.maskInputFn, k = A.dataURLOptions, Z = k === void 0 ? {} : k, V = A.inlineImages, F = A.recordCanvas, me = A.keepIframeSrcFn, ne = A.newlyAddedElement, ce = ne !== void 0 && ne, oe = A.rootId, q = function(ee, ge, ke) {
2112
+ if (typeof ge == "string") {
2113
+ if (ee.classList.contains(ge)) return !0;
2114
+ } else for (var Ie = ee.classList.length; Ie--; ) {
2115
+ var Ae = ee.classList[Ie];
2116
+ if (ge.test(Ae)) return !0;
2117
+ }
2118
+ return !!ke && ee.matches(ke);
2119
+ }(g, j, x), U = function(ee) {
2120
+ if (ee instanceof HTMLFormElement) return "form";
2121
+ var ge = ee.tagName.toLowerCase().trim();
2122
+ return Kr.test(ge) ? "div" : ge;
2123
+ }(g), M = {}, T = g.attributes.length, H = 0; H < T; H++) {
2124
+ var X = g.attributes[H];
2125
+ M[X.name] = on(S, U, X.name, X.value);
2126
+ }
2127
+ if (U === "link" && E) {
2128
+ var J = Array.from(S.styleSheets).find(function(ee) {
2129
+ return ee.href === g.href;
2130
+ }), re = null;
2131
+ J && (re = Ft(J)), re && (delete M.rel, delete M.href, M._cssText = lt(re, J.href));
2132
+ }
2133
+ if (U === "style" && g.sheet && !(g.innerText || g.textContent || "").trim().length && (re = Ft(g.sheet)) && (M._cssText = lt(re, Bt())), U === "input" || U === "textarea" || U === "select") {
2134
+ var L = g.value, y = g.checked;
2135
+ M.type !== "radio" && M.type !== "checkbox" && M.type !== "submit" && M.type !== "button" && L ? M.value = Jt({ type: M.type, tagName: U, value: L, maskInputOptions: I, maskInputFn: z }) : y && (M.checked = y);
2136
+ }
2137
+ if (U === "option" && (g.selected && !I.select ? M.selected = !0 : delete M.selected), U === "canvas" && F) {
2138
+ if (g.__context === "2d") (function(ee) {
2139
+ var ge = ee.getContext("2d");
2140
+ if (!ge) return !0;
2141
+ for (var ke = 0; ke < ee.width; ke += 50) for (var Ie = 0; Ie < ee.height; Ie += 50) {
2142
+ var Ae = ge.getImageData, bt = wa in Ae ? Ae[wa] : Ae;
2143
+ if (new Uint32Array(bt.call(ge, ke, Ie, Math.min(50, ee.width - ke), Math.min(50, ee.height - Ie)).data.buffer).some(function(Je) {
2144
+ return Je !== 0;
2145
+ })) return !1;
2146
+ }
2147
+ return !0;
2148
+ })(g) || (M.rr_dataURL = g.toDataURL(Z.type, Z.quality));
2149
+ else if (!("__context" in g)) {
2150
+ var G = g.toDataURL(Z.type, Z.quality), K = document.createElement("canvas");
2151
+ K.width = g.width, K.height = g.height, G !== K.toDataURL(Z.type, Z.quality) && (M.rr_dataURL = G);
2152
+ }
2153
+ }
2154
+ if (U === "img" && V) {
2155
+ Oe || (Oe = S.createElement("canvas"), va = Oe.getContext("2d"));
2156
+ var Q = g, P = Q.crossOrigin;
2157
+ Q.crossOrigin = "anonymous";
2158
+ var ye = function() {
2159
+ try {
2160
+ Oe.width = Q.naturalWidth, Oe.height = Q.naturalHeight, va.drawImage(Q, 0, 0), M.rr_dataURL = Oe.toDataURL(Z.type, Z.quality);
2161
+ } catch (ee) {
2162
+ console.warn("Cannot inline img src=".concat(Q.currentSrc, "! Error: ").concat(ee));
2163
+ }
2164
+ P ? M.crossOrigin = P : Q.removeAttribute("crossorigin");
2165
+ };
2166
+ Q.complete && Q.naturalWidth !== 0 ? ye() : Q.onload = ye;
2167
+ }
2168
+ if (U !== "audio" && U !== "video" || (M.rr_mediaState = g.paused ? "paused" : "played", M.rr_mediaCurrentTime = g.currentTime), ce || (g.scrollLeft && (M.rr_scrollLeft = g.scrollLeft), g.scrollTop && (M.rr_scrollTop = g.scrollTop)), q) {
2169
+ var Se = g.getBoundingClientRect(), Ne = Se.width, He = Se.height;
2170
+ M = { class: M.class, rr_width: "".concat(Ne, "px"), rr_height: "".concat(He, "px") };
2171
+ }
2172
+ return U !== "iframe" || me(M.src) || (g.contentDocument || (M.rr_src = M.src), delete M.src), { type: ie.Element, tagName: U, attributes: M, childNodes: [], isSVG: $r(g) || void 0, needBlock: q, rootId: oe };
2173
+ }(a, { doc: t, blockClass: r, blockSelector: i, inlineStylesheet: l, maskInputOptions: h, maskInputFn: u, dataURLOptions: f, inlineImages: R, recordCanvas: p, keepIframeSrcFn: m, newlyAddedElement: C, rootId: N });
2174
+ case a.TEXT_NODE:
2175
+ return function(g, A) {
2176
+ var S, j = A.maskTextClass, x = A.maskTextSelector, E = A.maskTextFn, w = A.rootId, I = g.parentNode && g.parentNode.tagName, z = g.textContent, k = I === "STYLE" || void 0, Z = I === "SCRIPT" || void 0;
2177
+ if (k && z) {
2178
+ try {
2179
+ g.nextSibling || g.previousSibling || !((S = g.parentNode.sheet) === null || S === void 0) && S.cssRules && (z = (V = g.parentNode.sheet).cssRules ? Array.from(V.cssRules).map(function(F) {
2180
+ return F.cssText || "";
2181
+ }).join("") : "");
2182
+ } catch (F) {
2183
+ console.warn("Cannot get CSS styles from text's parentNode. Error: ".concat(F), g);
2184
+ }
2185
+ z = lt(z, Bt());
2186
+ }
2187
+ var V;
2188
+ return Z && (z = "SCRIPT_PLACEHOLDER"), !k && !Z && z && sn(g, j, x) && (z = E ? E(z) : z.replace(/[\S]/g, "*")), { type: ie.Text, textContent: z || "", isStyle: k, rootId: w };
2189
+ }(a, { maskTextClass: o, maskTextSelector: s, maskTextFn: d, rootId: N });
2190
+ case a.CDATA_SECTION_NODE:
2191
+ return { type: ie.CDATA, textContent: "", rootId: N };
2192
+ case a.COMMENT_NODE:
2193
+ return { type: ie.Comment, textContent: a.textContent || "", rootId: N };
2194
+ default:
2195
+ return !1;
2196
+ }
2197
+ }
2198
+ function Y(a) {
2199
+ return a === void 0 ? "" : a.toLowerCase();
2200
+ }
2201
+ function Be(a, e) {
2202
+ var t, n = e.doc, r = e.mirror, i = e.blockClass, o = e.blockSelector, s = e.maskTextClass, l = e.maskTextSelector, c = e.skipChild, h = c !== void 0 && c, d = e.inlineStylesheet, u = d === void 0 || d, b = e.maskInputOptions, f = b === void 0 ? {} : b, R = e.maskTextFn, p = e.maskInputFn, m = e.slimDOMOptions, v = e.dataURLOptions, C = v === void 0 ? {} : v, N = e.inlineImages, g = N !== void 0 && N, A = e.recordCanvas, S = A !== void 0 && A, j = e.onSerialize, x = e.onIframeLoad, E = e.iframeLoadTimeout, w = E === void 0 ? 5e3 : E, I = e.onStylesheetLoad, z = e.stylesheetLoadTimeout, k = z === void 0 ? 5e3 : z, Z = e.keepIframeSrcFn, V = Z === void 0 ? function() {
2203
+ return !1;
2204
+ } : Z, F = e.newlyAddedElement, me = F !== void 0 && F, ne = e.preserveWhiteSpace, ce = ne === void 0 || ne, oe = ei(a, { doc: n, mirror: r, blockClass: i, blockSelector: o, maskTextClass: s, maskTextSelector: l, inlineStylesheet: u, maskInputOptions: f, maskTextFn: R, maskInputFn: p, dataURLOptions: C, inlineImages: g, recordCanvas: S, keepIframeSrcFn: V, newlyAddedElement: me });
2205
+ if (!oe) return console.warn(a, "not serialized"), null;
2206
+ t = r.hasNode(a) ? r.getId(a) : !function(y, G) {
2207
+ return !!(G.comment && y.type === ie.Comment || y.type === ie.Element && (G.script && (y.tagName === "script" || y.tagName === "link" && y.attributes.rel === "preload" && y.attributes.as === "script" || y.tagName === "link" && y.attributes.rel === "prefetch" && typeof y.attributes.href == "string" && y.attributes.href.endsWith(".js")) || G.headFavicon && (y.tagName === "link" && y.attributes.rel === "shortcut icon" || y.tagName === "meta" && (Y(y.attributes.name).match(/^msapplication-tile(image|color)$/) || Y(y.attributes.name) === "application-name" || Y(y.attributes.rel) === "icon" || Y(y.attributes.rel) === "apple-touch-icon" || Y(y.attributes.rel) === "shortcut icon")) || y.tagName === "meta" && (G.headMetaDescKeywords && Y(y.attributes.name).match(/^description|keywords$/) || G.headMetaSocial && (Y(y.attributes.property).match(/^(og|twitter|fb):/) || Y(y.attributes.name).match(/^(og|twitter):/) || Y(y.attributes.name) === "pinterest") || G.headMetaRobots && (Y(y.attributes.name) === "robots" || Y(y.attributes.name) === "googlebot" || Y(y.attributes.name) === "bingbot") || G.headMetaHttpEquiv && y.attributes["http-equiv"] !== void 0 || G.headMetaAuthorship && (Y(y.attributes.name) === "author" || Y(y.attributes.name) === "generator" || Y(y.attributes.name) === "framework" || Y(y.attributes.name) === "publisher" || Y(y.attributes.name) === "progid" || Y(y.attributes.property).match(/^article:/) || Y(y.attributes.property).match(/^product:/)) || G.headMetaVerification && (Y(y.attributes.name) === "google-site-verification" || Y(y.attributes.name) === "yandex-verification" || Y(y.attributes.name) === "csrf-token" || Y(y.attributes.name) === "p:domain_verify" || Y(y.attributes.name) === "verify-v1" || Y(y.attributes.name) === "verification" || Y(y.attributes.name) === "shopify-checkout-api-token"))));
2208
+ }(oe, m) && (ce || oe.type !== ie.Text || oe.isStyle || oe.textContent.replace(/^\s+|\s+$/gm, "").length) ? rn() : -2;
2209
+ var q = Object.assign(oe, { id: t });
2210
+ if (r.add(a, q), t === -2) return null;
2211
+ j && j(a);
2212
+ var U = !h;
2213
+ if (q.type === ie.Element) {
2214
+ U = U && !q.needBlock, delete q.needBlock;
2215
+ var M = a.shadowRoot;
2216
+ M && Ke(M) && (q.isShadowHost = !0);
2217
+ }
2218
+ if ((q.type === ie.Document || q.type === ie.Element) && U) {
2219
+ m.headWhitespace && q.type === ie.Element && q.tagName === "head" && (ce = !1);
2220
+ for (var T = { doc: n, mirror: r, blockClass: i, blockSelector: o, maskTextClass: s, maskTextSelector: l, skipChild: h, inlineStylesheet: u, maskInputOptions: f, maskTextFn: R, maskInputFn: p, slimDOMOptions: m, dataURLOptions: C, inlineImages: g, recordCanvas: S, preserveWhiteSpace: ce, onSerialize: j, onIframeLoad: x, iframeLoadTimeout: w, onStylesheetLoad: I, stylesheetLoadTimeout: k, keepIframeSrcFn: V }, H = 0, X = Array.from(a.childNodes); H < X.length; H++)
2221
+ (L = Be(X[H], T)) && q.childNodes.push(L);
2222
+ if (function(y) {
2223
+ return y.nodeType === y.ELEMENT_NODE;
2224
+ }(a) && a.shadowRoot) for (var J = 0, re = Array.from(a.shadowRoot.childNodes); J < re.length; J++) {
2225
+ var L;
2226
+ (L = Be(re[J], T)) && (Ke(a.shadowRoot) && (L.isShadow = !0), q.childNodes.push(L));
2227
+ }
2228
+ }
2229
+ return a.parentNode && Ge(a.parentNode) && Ke(a.parentNode) && (q.isShadow = !0), q.type === ie.Element && q.tagName === "iframe" && function(y, G, K) {
2230
+ var Q = y.contentWindow;
2231
+ if (Q) {
2232
+ var P, ye = !1;
2233
+ try {
2234
+ P = Q.document.readyState;
2235
+ } catch (He) {
2236
+ return;
2237
+ }
2238
+ if (P === "complete") {
2239
+ var Se = "about:blank";
2240
+ if (Q.location.href !== Se || y.src === Se || y.src === "") return setTimeout(G, 0), y.addEventListener("load", G);
2241
+ y.addEventListener("load", G);
2242
+ } else {
2243
+ var Ne = setTimeout(function() {
2244
+ ye || (G(), ye = !0);
2245
+ }, K);
2246
+ y.addEventListener("load", function() {
2247
+ clearTimeout(Ne), ye = !0, G();
2248
+ });
2249
+ }
2250
+ }
2251
+ }(a, function() {
2252
+ var y = a.contentDocument;
2253
+ if (y && x) {
2254
+ var G = Be(y, { doc: y, mirror: r, blockClass: i, blockSelector: o, maskTextClass: s, maskTextSelector: l, skipChild: !1, inlineStylesheet: u, maskInputOptions: f, maskTextFn: R, maskInputFn: p, slimDOMOptions: m, dataURLOptions: C, inlineImages: g, recordCanvas: S, preserveWhiteSpace: ce, onSerialize: j, onIframeLoad: x, iframeLoadTimeout: w, onStylesheetLoad: I, stylesheetLoadTimeout: k, keepIframeSrcFn: V });
2255
+ G && x(a, G);
2256
+ }
2257
+ }, w), q.type === ie.Element && q.tagName === "link" && q.attributes.rel === "stylesheet" && function(y, G, K) {
2258
+ var Q, P = !1;
2259
+ try {
2260
+ Q = y.sheet;
2261
+ } catch (Se) {
2262
+ return;
2263
+ }
2264
+ if (!Q) {
2265
+ var ye = setTimeout(function() {
2266
+ P || (G(), P = !0);
2267
+ }, K);
2268
+ y.addEventListener("load", function() {
2269
+ clearTimeout(ye), P = !0, G();
2270
+ });
2271
+ }
2272
+ }(a, function() {
2273
+ if (I) {
2274
+ var y = Be(a, { doc: n, mirror: r, blockClass: i, blockSelector: o, maskTextClass: s, maskTextSelector: l, skipChild: !1, inlineStylesheet: u, maskInputOptions: f, maskTextFn: R, maskInputFn: p, slimDOMOptions: m, dataURLOptions: C, inlineImages: g, recordCanvas: S, preserveWhiteSpace: ce, onSerialize: j, onIframeLoad: x, iframeLoadTimeout: w, onStylesheetLoad: I, stylesheetLoadTimeout: k, keepIframeSrcFn: V });
2275
+ y && I(a, y);
2276
+ }
2277
+ }, k), q;
2278
+ }
2279
+ function se(a, e, t = document) {
2280
+ const n = { capture: !0, passive: !0 };
2281
+ return t.addEventListener(a, e, n), () => t.removeEventListener(a, e, n);
2282
+ }
2283
+ const Le = `Please stop import mirror directly. Instead of that,\r
2284
+ now you can use replayer.getMirror() to access the mirror instance of a replayer,\r
2285
+ or you can use record.mirror to access the mirror instance during recording.`;
2286
+ let Ia = { map: {}, getId: () => (console.error(Le), -1), getNode: () => (console.error(Le), null), removeNodeFromMap() {
2287
+ console.error(Le);
2288
+ }, has: () => (console.error(Le), !1), reset() {
2289
+ console.error(Le);
2290
+ } };
2291
+ function Pe(a, e, t = {}) {
2292
+ let n = null, r = 0;
2293
+ return function(...i) {
2294
+ const o = Date.now();
2295
+ r || t.leading !== !1 || (r = o);
2296
+ const s = e - (o - r), l = this;
2297
+ s <= 0 || s > e ? (n && (clearTimeout(n), n = null), r = o, a.apply(l, i)) : n || t.trailing === !1 || (n = setTimeout(() => {
2298
+ r = t.leading === !1 ? 0 : Date.now(), n = null, a.apply(l, i);
2299
+ }, s));
2300
+ };
2301
+ }
2302
+ function yt(a, e, t, n, r = window) {
2303
+ const i = r.Object.getOwnPropertyDescriptor(a, e);
2304
+ return r.Object.defineProperty(a, e, n ? t : { set(o) {
2305
+ setTimeout(() => {
2306
+ t.set.call(this, o);
2307
+ }, 0), i && i.set && i.set.call(this, o);
2308
+ } }), () => yt(a, e, i || {}, !0);
2309
+ }
2310
+ function Re(a, e, t) {
2311
+ try {
2312
+ if (!(e in a)) return () => {
2313
+ };
2314
+ const n = a[e], r = t(n);
2315
+ return typeof r == "function" && (r.prototype = r.prototype || {}, Object.defineProperties(r, { __rrweb_original__: { enumerable: !1, value: n } })), a[e] = r, () => {
2316
+ a[e] = n;
2317
+ };
2318
+ } catch (n) {
2319
+ return () => {
2320
+ };
2321
+ }
2322
+ }
2323
+ function ln() {
2324
+ return window.innerHeight || document.documentElement && document.documentElement.clientHeight || document.body && document.body.clientHeight;
2325
+ }
2326
+ function cn() {
2327
+ return window.innerWidth || document.documentElement && document.documentElement.clientWidth || document.body && document.body.clientWidth;
2328
+ }
2329
+ function le(a, e, t, n) {
2330
+ if (!a) return !1;
2331
+ const r = a.nodeType === a.ELEMENT_NODE ? a : a.parentElement;
2332
+ if (!r) return !1;
2333
+ if (typeof e == "string") {
2334
+ if (r.classList.contains(e) || n && r.closest("." + e) !== null) return !0;
2335
+ } else if (ut(r, e, n)) return !0;
2336
+ return !!(t && (a.matches(t) || n && r.closest(t) !== null));
2337
+ }
2338
+ function jt(a, e) {
2339
+ return e.getId(a) === -2;
2340
+ }
2341
+ function hn(a, e) {
2342
+ if (Ge(a)) return !1;
2343
+ const t = e.getId(a);
2344
+ return !e.has(t) || (!a.parentNode || a.parentNode.nodeType !== a.DOCUMENT_NODE) && (!a.parentNode || hn(a.parentNode, e));
2345
+ }
2346
+ function dn(a) {
2347
+ return !!a.changedTouches;
2348
+ }
2349
+ function un(a, e) {
2350
+ return !!(a.nodeName === "IFRAME" && e.getMeta(a));
2351
+ }
2352
+ function mn(a, e) {
2353
+ return !!(a.nodeName === "LINK" && a.nodeType === a.ELEMENT_NODE && a.getAttribute && a.getAttribute("rel") === "stylesheet" && e.getMeta(a));
2354
+ }
2355
+ function gn(a) {
2356
+ return !!(a != null && a.shadowRoot);
2357
+ }
2358
+ typeof window != "undefined" && window.Proxy && window.Reflect && (Ia = new Proxy(Ia, { get: (a, e, t) => (e === "map" && console.error(Le), Reflect.get(a, e, t)) }));
2359
+ class ti {
2360
+ constructor() {
2361
+ this.id = 1, this.styleIDMap = /* @__PURE__ */ new WeakMap(), this.idStyleMap = /* @__PURE__ */ new Map();
2362
+ }
2363
+ getId(e) {
2364
+ var t;
2365
+ return (t = this.styleIDMap.get(e)) !== null && t !== void 0 ? t : -1;
2366
+ }
2367
+ has(e) {
2368
+ return this.styleIDMap.has(e);
2369
+ }
2370
+ add(e, t) {
2371
+ if (this.has(e)) return this.getId(e);
2372
+ let n;
2373
+ return n = t === void 0 ? this.id++ : t, this.styleIDMap.set(e, n), this.idStyleMap.set(n, e), n;
2374
+ }
2375
+ getStyle(e) {
2376
+ return this.idStyleMap.get(e) || null;
2377
+ }
2378
+ reset() {
2379
+ this.styleIDMap = /* @__PURE__ */ new WeakMap(), this.idStyleMap = /* @__PURE__ */ new Map(), this.id = 1;
2380
+ }
2381
+ generateId() {
2382
+ return this.id++;
2383
+ }
2384
+ }
2385
+ var W = ((a) => (a[a.DomContentLoaded = 0] = "DomContentLoaded", a[a.Load = 1] = "Load", a[a.FullSnapshot = 2] = "FullSnapshot", a[a.IncrementalSnapshot = 3] = "IncrementalSnapshot", a[a.Meta = 4] = "Meta", a[a.Custom = 5] = "Custom", a[a.Plugin = 6] = "Plugin", a))(W || {}), D = ((a) => (a[a.Mutation = 0] = "Mutation", a[a.MouseMove = 1] = "MouseMove", a[a.MouseInteraction = 2] = "MouseInteraction", a[a.Scroll = 3] = "Scroll", a[a.ViewportResize = 4] = "ViewportResize", a[a.Input = 5] = "Input", a[a.TouchMove = 6] = "TouchMove", a[a.MediaInteraction = 7] = "MediaInteraction", a[a.StyleSheetRule = 8] = "StyleSheetRule", a[a.CanvasMutation = 9] = "CanvasMutation", a[a.Font = 10] = "Font", a[a.Log = 11] = "Log", a[a.Drag = 12] = "Drag", a[a.StyleDeclaration = 13] = "StyleDeclaration", a[a.Selection = 14] = "Selection", a[a.AdoptedStyleSheet = 15] = "AdoptedStyleSheet", a))(D || {}), Dt = ((a) => (a[a.MouseUp = 0] = "MouseUp", a[a.MouseDown = 1] = "MouseDown", a[a.Click = 2] = "Click", a[a.ContextMenu = 3] = "ContextMenu", a[a.DblClick = 4] = "DblClick", a[a.Focus = 5] = "Focus", a[a.Blur = 6] = "Blur", a[a.TouchStart = 7] = "TouchStart", a[a.TouchMove_Departed = 8] = "TouchMove_Departed", a[a.TouchEnd = 9] = "TouchEnd", a[a.TouchCancel = 10] = "TouchCancel", a))(Dt || {}), Fe = ((a) => (a[a["2D"] = 0] = "2D", a[a.WebGL = 1] = "WebGL", a[a.WebGL2 = 2] = "WebGL2", a))(Fe || {});
2386
+ function Ca(a) {
2387
+ return "__ln" in a;
2388
+ }
2389
+ class ai {
2390
+ constructor() {
2391
+ this.length = 0, this.head = null;
2392
+ }
2393
+ get(e) {
2394
+ if (e >= this.length) throw new Error("Position outside of list range");
2395
+ let t = this.head;
2396
+ for (let n = 0; n < e; n++) t = (t == null ? void 0 : t.next) || null;
2397
+ return t;
2398
+ }
2399
+ addNode(e) {
2400
+ const t = { value: e, previous: null, next: null };
2401
+ if (e.__ln = t, e.previousSibling && Ca(e.previousSibling)) {
2402
+ const n = e.previousSibling.__ln.next;
2403
+ t.next = n, t.previous = e.previousSibling.__ln, e.previousSibling.__ln.next = t, n && (n.previous = t);
2404
+ } else if (e.nextSibling && Ca(e.nextSibling) && e.nextSibling.__ln.previous) {
2405
+ const n = e.nextSibling.__ln.previous;
2406
+ t.previous = n, t.next = e.nextSibling.__ln, e.nextSibling.__ln.previous = t, n && (n.next = t);
2407
+ } else this.head && (this.head.previous = t), t.next = this.head, this.head = t;
2408
+ this.length++;
2409
+ }
2410
+ removeNode(e) {
2411
+ const t = e.__ln;
2412
+ this.head && (t.previous ? (t.previous.next = t.next, t.next && (t.next.previous = t.previous)) : (this.head = t.next, this.head && (this.head.previous = null)), e.__ln && delete e.__ln, this.length--);
2413
+ }
2414
+ }
2415
+ const Sa = (a, e) => `${a}@${e}`;
2416
+ class ni {
2417
+ constructor() {
2418
+ this.frozen = !1, this.locked = !1, this.texts = [], this.attributes = [], this.removes = [], this.mapRemoves = [], this.movedMap = {}, this.addedSet = /* @__PURE__ */ new Set(), this.movedSet = /* @__PURE__ */ new Set(), this.droppedSet = /* @__PURE__ */ new Set(), this.processMutations = (e) => {
2419
+ e.forEach(this.processMutation), this.emit();
2420
+ }, this.emit = () => {
2421
+ if (this.frozen || this.locked) return;
2422
+ const e = [], t = new ai(), n = (s) => {
2423
+ let l = s, c = -2;
2424
+ for (; c === -2; ) l = l && l.nextSibling, c = l && this.mirror.getId(l);
2425
+ return c;
2426
+ }, r = (s) => {
2427
+ var l, c, h, d;
2428
+ let u = null;
2429
+ ((c = (l = s.getRootNode) === null || l === void 0 ? void 0 : l.call(s)) === null || c === void 0 ? void 0 : c.nodeType) === Node.DOCUMENT_FRAGMENT_NODE && s.getRootNode().host && (u = s.getRootNode().host);
2430
+ let b = u;
2431
+ for (; ((d = (h = b == null ? void 0 : b.getRootNode) === null || h === void 0 ? void 0 : h.call(b)) === null || d === void 0 ? void 0 : d.nodeType) === Node.DOCUMENT_FRAGMENT_NODE && b.getRootNode().host; ) b = b.getRootNode().host;
2432
+ const f = !(this.doc.contains(s) || b && this.doc.contains(b));
2433
+ if (!s.parentNode || f) return;
2434
+ const R = Ge(s.parentNode) ? this.mirror.getId(u) : this.mirror.getId(s.parentNode), p = n(s);
2435
+ if (R === -1 || p === -1) return t.addNode(s);
2436
+ const m = Be(s, { doc: this.doc, mirror: this.mirror, blockClass: this.blockClass, blockSelector: this.blockSelector, maskTextClass: this.maskTextClass, maskTextSelector: this.maskTextSelector, skipChild: !0, newlyAddedElement: !0, inlineStylesheet: this.inlineStylesheet, maskInputOptions: this.maskInputOptions, maskTextFn: this.maskTextFn, maskInputFn: this.maskInputFn, slimDOMOptions: this.slimDOMOptions, dataURLOptions: this.dataURLOptions, recordCanvas: this.recordCanvas, inlineImages: this.inlineImages, onSerialize: (v) => {
2437
+ un(v, this.mirror) && this.iframeManager.addIframe(v), mn(v, this.mirror) && this.stylesheetManager.trackLinkElement(v), gn(s) && this.shadowDomManager.addShadowRoot(s.shadowRoot, this.doc);
2438
+ }, onIframeLoad: (v, C) => {
2439
+ this.iframeManager.attachIframe(v, C), this.shadowDomManager.observeAttachShadow(v);
2440
+ }, onStylesheetLoad: (v, C) => {
2441
+ this.stylesheetManager.attachLinkElement(v, C);
2442
+ } });
2443
+ m && e.push({ parentId: R, nextId: p, node: m });
2444
+ };
2445
+ for (; this.mapRemoves.length; ) this.mirror.removeNodeFromMap(this.mapRemoves.shift());
2446
+ for (const s of Array.from(this.movedSet.values())) Aa(this.removes, s, this.mirror) && !this.movedSet.has(s.parentNode) || r(s);
2447
+ for (const s of Array.from(this.addedSet.values())) ja(this.droppedSet, s) || Aa(this.removes, s, this.mirror) ? ja(this.movedSet, s) ? r(s) : this.droppedSet.add(s) : r(s);
2448
+ let i = null;
2449
+ for (; t.length; ) {
2450
+ let s = null;
2451
+ if (i) {
2452
+ const l = this.mirror.getId(i.value.parentNode), c = n(i.value);
2453
+ l !== -1 && c !== -1 && (s = i);
2454
+ }
2455
+ if (!s) for (let l = t.length - 1; l >= 0; l--) {
2456
+ const c = t.get(l);
2457
+ if (c) {
2458
+ const h = this.mirror.getId(c.value.parentNode);
2459
+ if (n(c.value) === -1) continue;
2460
+ if (h !== -1) {
2461
+ s = c;
2462
+ break;
2463
+ }
2464
+ {
2465
+ const d = c.value;
2466
+ if (d.parentNode && d.parentNode.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {
2467
+ const u = d.parentNode.host;
2468
+ if (this.mirror.getId(u) !== -1) {
2469
+ s = c;
2470
+ break;
2471
+ }
2472
+ }
2473
+ }
2474
+ }
2475
+ }
2476
+ if (!s) {
2477
+ for (; t.head; ) t.removeNode(t.head.value);
2478
+ break;
2479
+ }
2480
+ i = s.previous, t.removeNode(s.value), r(s.value);
2481
+ }
2482
+ const o = { texts: this.texts.map((s) => ({ id: this.mirror.getId(s.node), value: s.value })).filter((s) => this.mirror.has(s.id)), attributes: this.attributes.map((s) => ({ id: this.mirror.getId(s.node), attributes: s.attributes })).filter((s) => this.mirror.has(s.id)), removes: this.removes, adds: e };
2483
+ (o.texts.length || o.attributes.length || o.removes.length || o.adds.length) && (this.texts = [], this.attributes = [], this.removes = [], this.addedSet = /* @__PURE__ */ new Set(), this.movedSet = /* @__PURE__ */ new Set(), this.droppedSet = /* @__PURE__ */ new Set(), this.movedMap = {}, this.mutationCb(o));
2484
+ }, this.processMutation = (e) => {
2485
+ if (!jt(e.target, this.mirror)) switch (e.type) {
2486
+ case "characterData": {
2487
+ const t = e.target.textContent;
2488
+ le(e.target, this.blockClass, this.blockSelector, !1) || t === e.oldValue || this.texts.push({ value: sn(e.target, this.maskTextClass, this.maskTextSelector) && t ? this.maskTextFn ? this.maskTextFn(t) : t.replace(/[\S]/g, "*") : t, node: e.target });
2489
+ break;
2490
+ }
2491
+ case "attributes": {
2492
+ const t = e.target;
2493
+ let n = e.target.getAttribute(e.attributeName);
2494
+ if (e.attributeName === "value" && (n = Jt({ maskInputOptions: this.maskInputOptions, tagName: e.target.tagName, type: e.target.getAttribute("type"), value: n, maskInputFn: this.maskInputFn })), le(e.target, this.blockClass, this.blockSelector, !1) || n === e.oldValue) return;
2495
+ let r = this.attributes.find((i) => i.node === e.target);
2496
+ if (t.tagName === "IFRAME" && e.attributeName === "src" && !this.keepIframeSrcFn(n)) {
2497
+ if (t.contentDocument) return;
2498
+ e.attributeName = "rr_src";
2499
+ }
2500
+ if (r || (r = { node: e.target, attributes: {} }, this.attributes.push(r)), e.attributeName === "style") {
2501
+ const i = this.doc.createElement("span");
2502
+ e.oldValue && i.setAttribute("style", e.oldValue), r.attributes.style !== void 0 && r.attributes.style !== null || (r.attributes.style = {});
2503
+ const o = r.attributes.style;
2504
+ for (const s of Array.from(t.style)) {
2505
+ const l = t.style.getPropertyValue(s), c = t.style.getPropertyPriority(s);
2506
+ l === i.style.getPropertyValue(s) && c === i.style.getPropertyPriority(s) || (o[s] = c === "" ? l : [l, c]);
2507
+ }
2508
+ for (const s of Array.from(i.style)) t.style.getPropertyValue(s) === "" && (o[s] = !1);
2509
+ } else r.attributes[e.attributeName] = on(this.doc, t.tagName, e.attributeName, n);
2510
+ break;
2511
+ }
2512
+ case "childList":
2513
+ if (le(e.target, this.blockClass, this.blockSelector, !0)) return;
2514
+ e.addedNodes.forEach((t) => this.genAdds(t, e.target)), e.removedNodes.forEach((t) => {
2515
+ const n = this.mirror.getId(t), r = Ge(e.target) ? this.mirror.getId(e.target.host) : this.mirror.getId(e.target);
2516
+ le(e.target, this.blockClass, this.blockSelector, !1) || jt(t, this.mirror) || !function(i, o) {
2517
+ return o.getId(i) !== -1;
2518
+ }(t, this.mirror) || (this.addedSet.has(t) ? (qt(this.addedSet, t), this.droppedSet.add(t)) : this.addedSet.has(e.target) && n === -1 || hn(e.target, this.mirror) || (this.movedSet.has(t) && this.movedMap[Sa(n, r)] ? qt(this.movedSet, t) : this.removes.push({ parentId: r, id: n, isShadow: !(!Ge(e.target) || !Ke(e.target)) || void 0 })), this.mapRemoves.push(t));
2519
+ });
2520
+ }
2521
+ }, this.genAdds = (e, t) => {
2522
+ if (this.mirror.hasNode(e)) {
2523
+ if (jt(e, this.mirror)) return;
2524
+ this.movedSet.add(e);
2525
+ let n = null;
2526
+ t && this.mirror.hasNode(t) && (n = this.mirror.getId(t)), n && n !== -1 && (this.movedMap[Sa(this.mirror.getId(e), n)] = !0);
2527
+ } else this.addedSet.add(e), this.droppedSet.delete(e);
2528
+ le(e, this.blockClass, this.blockSelector, !1) || e.childNodes.forEach((n) => this.genAdds(n));
2529
+ };
2530
+ }
2531
+ init(e) {
2532
+ ["mutationCb", "blockClass", "blockSelector", "maskTextClass", "maskTextSelector", "inlineStylesheet", "maskInputOptions", "maskTextFn", "maskInputFn", "keepIframeSrcFn", "recordCanvas", "inlineImages", "slimDOMOptions", "dataURLOptions", "doc", "mirror", "iframeManager", "stylesheetManager", "shadowDomManager", "canvasManager"].forEach((t) => {
2533
+ this[t] = e[t];
2534
+ });
2535
+ }
2536
+ freeze() {
2537
+ this.frozen = !0, this.canvasManager.freeze();
2538
+ }
2539
+ unfreeze() {
2540
+ this.frozen = !1, this.canvasManager.unfreeze(), this.emit();
2541
+ }
2542
+ isFrozen() {
2543
+ return this.frozen;
2544
+ }
2545
+ lock() {
2546
+ this.locked = !0, this.canvasManager.lock();
2547
+ }
2548
+ unlock() {
2549
+ this.locked = !1, this.canvasManager.unlock(), this.emit();
2550
+ }
2551
+ reset() {
2552
+ this.shadowDomManager.reset(), this.canvasManager.reset();
2553
+ }
2554
+ }
2555
+ function qt(a, e) {
2556
+ a.delete(e), e.childNodes.forEach((t) => qt(a, t));
2557
+ }
2558
+ function Aa(a, e, t) {
2559
+ return a.length !== 0 && pn(a, e, t);
2560
+ }
2561
+ function pn(a, e, t) {
2562
+ const { parentNode: n } = e;
2563
+ if (!n) return !1;
2564
+ const r = t.getId(n);
2565
+ return !!a.some((i) => i.id === r) || pn(a, n, t);
2566
+ }
2567
+ function ja(a, e) {
2568
+ return a.size !== 0 && yn(a, e);
2569
+ }
2570
+ function yn(a, e) {
2571
+ const { parentNode: t } = e;
2572
+ return !!t && (!!a.has(t) || yn(a, t));
2573
+ }
2574
+ const Te = [], bn = typeof CSSGroupingRule != "undefined", fn = typeof CSSMediaRule != "undefined", kn = typeof CSSSupportsRule != "undefined", wn = typeof CSSConditionRule != "undefined";
2575
+ function Ye(a) {
2576
+ try {
2577
+ if ("composedPath" in a) {
2578
+ const e = a.composedPath();
2579
+ if (e.length) return e[0];
2580
+ } else if ("path" in a && a.path.length) return a.path[0];
2581
+ return a.target;
2582
+ } catch (e) {
2583
+ return a.target;
2584
+ }
2585
+ }
2586
+ function vn(a, e) {
2587
+ var t, n;
2588
+ const r = new ni();
2589
+ Te.push(r), r.init(a);
2590
+ let i = window.MutationObserver || window.__rrMutationObserver;
2591
+ const o = (n = (t = window == null ? void 0 : window.Zone) === null || t === void 0 ? void 0 : t.__symbol__) === null || n === void 0 ? void 0 : n.call(t, "MutationObserver");
2592
+ o && window[o] && (i = window[o]);
2593
+ const s = new i(r.processMutations.bind(r));
2594
+ return s.observe(e, { attributes: !0, attributeOldValue: !0, characterData: !0, characterDataOldValue: !0, childList: !0, subtree: !0 }), s;
2595
+ }
2596
+ function ri({ mouseInteractionCb: a, doc: e, mirror: t, blockClass: n, blockSelector: r, sampling: i }) {
2597
+ if (i.mouseInteraction === !1) return () => {
2598
+ };
2599
+ const o = i.mouseInteraction === !0 || i.mouseInteraction === void 0 ? {} : i.mouseInteraction, s = [];
2600
+ return Object.keys(Dt).filter((l) => Number.isNaN(Number(l)) && !l.endsWith("_Departed") && o[l] !== !1).forEach((l) => {
2601
+ const c = l.toLowerCase(), h = /* @__PURE__ */ ((d) => (u) => {
2602
+ const b = Ye(u);
2603
+ if (le(b, n, r, !0)) return;
2604
+ const f = dn(u) ? u.changedTouches[0] : u;
2605
+ if (!f) return;
2606
+ const R = t.getId(b), { clientX: p, clientY: m } = f;
2607
+ a({ type: Dt[d], id: R, x: p, y: m });
2608
+ })(l);
2609
+ s.push(se(c, h, e));
2610
+ }), () => {
2611
+ s.forEach((l) => l());
2612
+ };
2613
+ }
2614
+ function In({ scrollCb: a, doc: e, mirror: t, blockClass: n, blockSelector: r, sampling: i }) {
2615
+ return se("scroll", Pe((o) => {
2616
+ const s = Ye(o);
2617
+ if (!s || le(s, n, r, !0)) return;
2618
+ const l = t.getId(s);
2619
+ if (s === e) {
2620
+ const c = e.scrollingElement || e.documentElement;
2621
+ a({ id: l, x: c.scrollLeft, y: c.scrollTop });
2622
+ } else a({ id: l, x: s.scrollLeft, y: s.scrollTop });
2623
+ }, i.scroll || 100), e);
2624
+ }
2625
+ function za(a, e) {
2626
+ const t = Object.assign({}, a);
2627
+ return e || delete t.userTriggered, t;
2628
+ }
2629
+ const ii = ["INPUT", "TEXTAREA", "SELECT"], Ea = /* @__PURE__ */ new WeakMap();
2630
+ function tt(a) {
2631
+ return function(e, t) {
2632
+ if (bn && e.parentRule instanceof CSSGroupingRule || fn && e.parentRule instanceof CSSMediaRule || kn && e.parentRule instanceof CSSSupportsRule || wn && e.parentRule instanceof CSSConditionRule) {
2633
+ const n = Array.from(e.parentRule.cssRules).indexOf(e);
2634
+ t.unshift(n);
2635
+ } else if (e.parentStyleSheet) {
2636
+ const n = Array.from(e.parentStyleSheet.cssRules).indexOf(e);
2637
+ t.unshift(n);
2638
+ }
2639
+ return t;
2640
+ }(a, []);
2641
+ }
2642
+ function je(a, e, t) {
2643
+ let n, r;
2644
+ return a ? (a.ownerNode ? n = e.getId(a.ownerNode) : r = t.getId(a), { styleId: r, id: n }) : {};
2645
+ }
2646
+ function Cn({ mirror: a, stylesheetManager: e }, t) {
2647
+ var n, r, i;
2648
+ let o = null;
2649
+ o = t.nodeName === "#document" ? a.getId(t) : a.getId(t.host);
2650
+ const s = t.nodeName === "#document" ? (n = t.defaultView) === null || n === void 0 ? void 0 : n.Document : (i = (r = t.ownerDocument) === null || r === void 0 ? void 0 : r.defaultView) === null || i === void 0 ? void 0 : i.ShadowRoot, l = Object.getOwnPropertyDescriptor(s == null ? void 0 : s.prototype, "adoptedStyleSheets");
2651
+ return o !== null && o !== -1 && s && l ? (Object.defineProperty(t, "adoptedStyleSheets", { configurable: l.configurable, enumerable: l.enumerable, get() {
2652
+ var c;
2653
+ return (c = l.get) === null || c === void 0 ? void 0 : c.call(this);
2654
+ }, set(c) {
2655
+ var h;
2656
+ const d = (h = l.set) === null || h === void 0 ? void 0 : h.call(this, c);
2657
+ if (o !== null && o !== -1) try {
2658
+ e.adoptStyleSheets(c, o);
2659
+ } catch (u) {
2660
+ }
2661
+ return d;
2662
+ } }), () => {
2663
+ Object.defineProperty(t, "adoptedStyleSheets", { configurable: l.configurable, enumerable: l.enumerable, get: l.get, set: l.set });
2664
+ }) : () => {
2665
+ };
2666
+ }
2667
+ function oi(a, e = {}) {
2668
+ const t = a.doc.defaultView;
2669
+ if (!t) return () => {
2670
+ };
2671
+ (function(p, m) {
2672
+ const { mutationCb: v, mousemoveCb: C, mouseInteractionCb: N, scrollCb: g, viewportResizeCb: A, inputCb: S, mediaInteractionCb: j, styleSheetRuleCb: x, styleDeclarationCb: E, canvasMutationCb: w, fontCb: I, selectionCb: z } = p;
2673
+ p.mutationCb = (...k) => {
2674
+ m.mutation && m.mutation(...k), v(...k);
2675
+ }, p.mousemoveCb = (...k) => {
2676
+ m.mousemove && m.mousemove(...k), C(...k);
2677
+ }, p.mouseInteractionCb = (...k) => {
2678
+ m.mouseInteraction && m.mouseInteraction(...k), N(...k);
2679
+ }, p.scrollCb = (...k) => {
2680
+ m.scroll && m.scroll(...k), g(...k);
2681
+ }, p.viewportResizeCb = (...k) => {
2682
+ m.viewportResize && m.viewportResize(...k), A(...k);
2683
+ }, p.inputCb = (...k) => {
2684
+ m.input && m.input(...k), S(...k);
2685
+ }, p.mediaInteractionCb = (...k) => {
2686
+ m.mediaInteaction && m.mediaInteaction(...k), j(...k);
2687
+ }, p.styleSheetRuleCb = (...k) => {
2688
+ m.styleSheetRule && m.styleSheetRule(...k), x(...k);
2689
+ }, p.styleDeclarationCb = (...k) => {
2690
+ m.styleDeclaration && m.styleDeclaration(...k), E(...k);
2691
+ }, p.canvasMutationCb = (...k) => {
2692
+ m.canvasMutation && m.canvasMutation(...k), w(...k);
2693
+ }, p.fontCb = (...k) => {
2694
+ m.font && m.font(...k), I(...k);
2695
+ }, p.selectionCb = (...k) => {
2696
+ m.selection && m.selection(...k), z(...k);
2697
+ };
2698
+ })(a, e);
2699
+ const n = vn(a, a.doc), r = function({ mousemoveCb: p, sampling: m, doc: v, mirror: C }) {
2700
+ if (m.mousemove === !1) return () => {
2701
+ };
2702
+ const N = typeof m.mousemove == "number" ? m.mousemove : 50, g = typeof m.mousemoveCallback == "number" ? m.mousemoveCallback : 500;
2703
+ let A, S = [];
2704
+ const j = Pe((w) => {
2705
+ const I = Date.now() - A;
2706
+ p(S.map((z) => (z.timeOffset -= I, z)), w), S = [], A = null;
2707
+ }, g), x = Pe((w) => {
2708
+ const I = Ye(w), { clientX: z, clientY: k } = dn(w) ? w.changedTouches[0] : w;
2709
+ A || (A = Date.now()), S.push({ x: z, y: k, id: C.getId(I), timeOffset: Date.now() - A }), j(typeof DragEvent != "undefined" && w instanceof DragEvent ? D.Drag : w instanceof MouseEvent ? D.MouseMove : D.TouchMove);
2710
+ }, N, { trailing: !1 }), E = [se("mousemove", x, v), se("touchmove", x, v), se("drag", x, v)];
2711
+ return () => {
2712
+ E.forEach((w) => w());
2713
+ };
2714
+ }(a), i = ri(a), o = In(a), s = function({ viewportResizeCb: p }) {
2715
+ let m = -1, v = -1;
2716
+ return se("resize", Pe(() => {
2717
+ const C = ln(), N = cn();
2718
+ m === C && v === N || (p({ width: Number(N), height: Number(C) }), m = C, v = N);
2719
+ }, 200), window);
2720
+ }(a), l = function({ inputCb: p, doc: m, mirror: v, blockClass: C, blockSelector: N, ignoreClass: g, maskInputOptions: A, maskInputFn: S, sampling: j, userTriggeredOnInput: x }) {
2721
+ function E(V) {
2722
+ let F = Ye(V);
2723
+ const me = V.isTrusted;
2724
+ if (F && F.tagName === "OPTION" && (F = F.parentElement), !F || !F.tagName || ii.indexOf(F.tagName) < 0 || le(F, C, N, !0)) return;
2725
+ const ne = F.type;
2726
+ if (F.classList.contains(g)) return;
2727
+ let ce = F.value, oe = !1;
2728
+ ne === "radio" || ne === "checkbox" ? oe = F.checked : (A[F.tagName.toLowerCase()] || A[ne]) && (ce = Jt({ maskInputOptions: A, tagName: F.tagName, type: ne, value: ce, maskInputFn: S })), w(F, za({ text: ce, isChecked: oe, userTriggered: me }, x));
2729
+ const q = F.name;
2730
+ ne === "radio" && q && oe && m.querySelectorAll(`input[type="radio"][name="${q}"]`).forEach((U) => {
2731
+ U !== F && w(U, za({ text: U.value, isChecked: !oe, userTriggered: !1 }, x));
2732
+ });
2733
+ }
2734
+ function w(V, F) {
2735
+ const me = Ea.get(V);
2736
+ if (!me || me.text !== F.text || me.isChecked !== F.isChecked) {
2737
+ Ea.set(V, F);
2738
+ const ne = v.getId(V);
2739
+ p(Object.assign(Object.assign({}, F), { id: ne }));
2740
+ }
2741
+ }
2742
+ const I = (j.input === "last" ? ["change"] : ["input", "change"]).map((V) => se(V, E, m)), z = m.defaultView;
2743
+ if (!z) return () => {
2744
+ I.forEach((V) => V());
2745
+ };
2746
+ const k = z.Object.getOwnPropertyDescriptor(z.HTMLInputElement.prototype, "value"), Z = [[z.HTMLInputElement.prototype, "value"], [z.HTMLInputElement.prototype, "checked"], [z.HTMLSelectElement.prototype, "value"], [z.HTMLTextAreaElement.prototype, "value"], [z.HTMLSelectElement.prototype, "selectedIndex"], [z.HTMLOptionElement.prototype, "selected"]];
2747
+ return k && k.set && I.push(...Z.map((V) => yt(V[0], V[1], { set() {
2748
+ E({ target: this });
2749
+ } }, !1, z))), () => {
2750
+ I.forEach((V) => V());
2751
+ };
2752
+ }(a), c = function({ mediaInteractionCb: p, blockClass: m, blockSelector: v, mirror: C, sampling: N }) {
2753
+ const g = (S) => Pe((j) => {
2754
+ const x = Ye(j);
2755
+ if (!x || le(x, m, v, !0)) return;
2756
+ const { currentTime: E, volume: w, muted: I, playbackRate: z } = x;
2757
+ p({ type: S, id: C.getId(x), currentTime: E, volume: w, muted: I, playbackRate: z });
2758
+ }, N.media || 500), A = [se("play", g(0)), se("pause", g(1)), se("seeked", g(2)), se("volumechange", g(3)), se("ratechange", g(4))];
2759
+ return () => {
2760
+ A.forEach((S) => S());
2761
+ };
2762
+ }(a), h = function({ styleSheetRuleCb: p, mirror: m, stylesheetManager: v }, { win: C }) {
2763
+ const N = C.CSSStyleSheet.prototype.insertRule;
2764
+ C.CSSStyleSheet.prototype.insertRule = function(E, w) {
2765
+ const { id: I, styleId: z } = je(this, m, v.styleMirror);
2766
+ return (I && I !== -1 || z && z !== -1) && p({ id: I, styleId: z, adds: [{ rule: E, index: w }] }), N.apply(this, [E, w]);
2767
+ };
2768
+ const g = C.CSSStyleSheet.prototype.deleteRule;
2769
+ let A, S;
2770
+ C.CSSStyleSheet.prototype.deleteRule = function(E) {
2771
+ const { id: w, styleId: I } = je(this, m, v.styleMirror);
2772
+ return (w && w !== -1 || I && I !== -1) && p({ id: w, styleId: I, removes: [{ index: E }] }), g.apply(this, [E]);
2773
+ }, C.CSSStyleSheet.prototype.replace && (A = C.CSSStyleSheet.prototype.replace, C.CSSStyleSheet.prototype.replace = function(E) {
2774
+ const { id: w, styleId: I } = je(this, m, v.styleMirror);
2775
+ return (w && w !== -1 || I && I !== -1) && p({ id: w, styleId: I, replace: E }), A.apply(this, [E]);
2776
+ }), C.CSSStyleSheet.prototype.replaceSync && (S = C.CSSStyleSheet.prototype.replaceSync, C.CSSStyleSheet.prototype.replaceSync = function(E) {
2777
+ const { id: w, styleId: I } = je(this, m, v.styleMirror);
2778
+ return (w && w !== -1 || I && I !== -1) && p({ id: w, styleId: I, replaceSync: E }), S.apply(this, [E]);
2779
+ });
2780
+ const j = {};
2781
+ bn ? j.CSSGroupingRule = C.CSSGroupingRule : (fn && (j.CSSMediaRule = C.CSSMediaRule), wn && (j.CSSConditionRule = C.CSSConditionRule), kn && (j.CSSSupportsRule = C.CSSSupportsRule));
2782
+ const x = {};
2783
+ return Object.entries(j).forEach(([E, w]) => {
2784
+ x[E] = { insertRule: w.prototype.insertRule, deleteRule: w.prototype.deleteRule }, w.prototype.insertRule = function(I, z) {
2785
+ const { id: k, styleId: Z } = je(this.parentStyleSheet, m, v.styleMirror);
2786
+ return (k && k !== -1 || Z && Z !== -1) && p({ id: k, styleId: Z, adds: [{ rule: I, index: [...tt(this), z || 0] }] }), x[E].insertRule.apply(this, [I, z]);
2787
+ }, w.prototype.deleteRule = function(I) {
2788
+ const { id: z, styleId: k } = je(this.parentStyleSheet, m, v.styleMirror);
2789
+ return (z && z !== -1 || k && k !== -1) && p({ id: z, styleId: k, removes: [{ index: [...tt(this), I] }] }), x[E].deleteRule.apply(this, [I]);
2790
+ };
2791
+ }), () => {
2792
+ C.CSSStyleSheet.prototype.insertRule = N, C.CSSStyleSheet.prototype.deleteRule = g, A && (C.CSSStyleSheet.prototype.replace = A), S && (C.CSSStyleSheet.prototype.replaceSync = S), Object.entries(j).forEach(([E, w]) => {
2793
+ w.prototype.insertRule = x[E].insertRule, w.prototype.deleteRule = x[E].deleteRule;
2794
+ });
2795
+ };
2796
+ }(a, { win: t }), d = Cn(a, a.doc), u = function({ styleDeclarationCb: p, mirror: m, ignoreCSSAttributes: v, stylesheetManager: C }, { win: N }) {
2797
+ const g = N.CSSStyleDeclaration.prototype.setProperty;
2798
+ N.CSSStyleDeclaration.prototype.setProperty = function(S, j, x) {
2799
+ var E;
2800
+ if (v.has(S)) return g.apply(this, [S, j, x]);
2801
+ const { id: w, styleId: I } = je((E = this.parentRule) === null || E === void 0 ? void 0 : E.parentStyleSheet, m, C.styleMirror);
2802
+ return (w && w !== -1 || I && I !== -1) && p({ id: w, styleId: I, set: { property: S, value: j, priority: x }, index: tt(this.parentRule) }), g.apply(this, [S, j, x]);
2803
+ };
2804
+ const A = N.CSSStyleDeclaration.prototype.removeProperty;
2805
+ return N.CSSStyleDeclaration.prototype.removeProperty = function(S) {
2806
+ var j;
2807
+ if (v.has(S)) return A.apply(this, [S]);
2808
+ const { id: x, styleId: E } = je((j = this.parentRule) === null || j === void 0 ? void 0 : j.parentStyleSheet, m, C.styleMirror);
2809
+ return (x && x !== -1 || E && E !== -1) && p({ id: x, styleId: E, remove: { property: S }, index: tt(this.parentRule) }), A.apply(this, [S]);
2810
+ }, () => {
2811
+ N.CSSStyleDeclaration.prototype.setProperty = g, N.CSSStyleDeclaration.prototype.removeProperty = A;
2812
+ };
2813
+ }(a, { win: t }), b = a.collectFonts ? function({ fontCb: p, doc: m }) {
2814
+ const v = m.defaultView;
2815
+ if (!v) return () => {
2816
+ };
2817
+ const C = [], N = /* @__PURE__ */ new WeakMap(), g = v.FontFace;
2818
+ v.FontFace = function(S, j, x) {
2819
+ const E = new g(S, j, x);
2820
+ return N.set(E, { family: S, buffer: typeof j != "string", descriptors: x, fontSource: typeof j == "string" ? j : JSON.stringify(Array.from(new Uint8Array(j))) }), E;
2821
+ };
2822
+ const A = Re(m.fonts, "add", function(S) {
2823
+ return function(j) {
2824
+ return setTimeout(() => {
2825
+ const x = N.get(j);
2826
+ x && (p(x), N.delete(j));
2827
+ }, 0), S.apply(this, [j]);
2828
+ };
2829
+ });
2830
+ return C.push(() => {
2831
+ v.FontFace = g;
2832
+ }), C.push(A), () => {
2833
+ C.forEach((S) => S());
2834
+ };
2835
+ }(a) : () => {
2836
+ }, f = function(p) {
2837
+ const { doc: m, mirror: v, blockClass: C, blockSelector: N, selectionCb: g } = p;
2838
+ let A = !0;
2839
+ const S = () => {
2840
+ const j = m.getSelection();
2841
+ if (!j || A && (j != null && j.isCollapsed)) return;
2842
+ A = j.isCollapsed || !1;
2843
+ const x = [], E = j.rangeCount || 0;
2844
+ for (let w = 0; w < E; w++) {
2845
+ const I = j.getRangeAt(w), { startContainer: z, startOffset: k, endContainer: Z, endOffset: V } = I;
2846
+ le(z, C, N, !0) || le(Z, C, N, !0) || x.push({ start: v.getId(z), startOffset: k, end: v.getId(Z), endOffset: V });
2847
+ }
2848
+ g({ ranges: x });
2849
+ };
2850
+ return S(), se("selectionchange", S);
2851
+ }(a), R = [];
2852
+ for (const p of a.plugins) R.push(p.observer(p.callback, t, p.options));
2853
+ return () => {
2854
+ Te.forEach((p) => p.reset()), n.disconnect(), r(), i(), o(), s(), l(), c(), h(), d(), u(), b(), f(), R.forEach((p) => p());
2855
+ };
2856
+ }
2857
+ class xa {
2858
+ constructor(e) {
2859
+ this.generateIdFn = e, this.iframeIdToRemoteIdMap = /* @__PURE__ */ new WeakMap(), this.iframeRemoteIdToIdMap = /* @__PURE__ */ new WeakMap();
2860
+ }
2861
+ getId(e, t, n, r) {
2862
+ const i = n || this.getIdToRemoteIdMap(e), o = r || this.getRemoteIdToIdMap(e);
2863
+ let s = i.get(t);
2864
+ return s || (s = this.generateIdFn(), i.set(t, s), o.set(s, t)), s;
2865
+ }
2866
+ getIds(e, t) {
2867
+ const n = this.getIdToRemoteIdMap(e), r = this.getRemoteIdToIdMap(e);
2868
+ return t.map((i) => this.getId(e, i, n, r));
2869
+ }
2870
+ getRemoteId(e, t, n) {
2871
+ const r = n || this.getRemoteIdToIdMap(e);
2872
+ return typeof t != "number" ? t : r.get(t) || -1;
2873
+ }
2874
+ getRemoteIds(e, t) {
2875
+ const n = this.getRemoteIdToIdMap(e);
2876
+ return t.map((r) => this.getRemoteId(e, r, n));
2877
+ }
2878
+ reset(e) {
2879
+ if (!e) return this.iframeIdToRemoteIdMap = /* @__PURE__ */ new WeakMap(), void (this.iframeRemoteIdToIdMap = /* @__PURE__ */ new WeakMap());
2880
+ this.iframeIdToRemoteIdMap.delete(e), this.iframeRemoteIdToIdMap.delete(e);
2881
+ }
2882
+ getIdToRemoteIdMap(e) {
2883
+ let t = this.iframeIdToRemoteIdMap.get(e);
2884
+ return t || (t = /* @__PURE__ */ new Map(), this.iframeIdToRemoteIdMap.set(e, t)), t;
2885
+ }
2886
+ getRemoteIdToIdMap(e) {
2887
+ let t = this.iframeRemoteIdToIdMap.get(e);
2888
+ return t || (t = /* @__PURE__ */ new Map(), this.iframeRemoteIdToIdMap.set(e, t)), t;
2889
+ }
2890
+ }
2891
+ class si {
2892
+ constructor(e) {
2893
+ this.iframes = /* @__PURE__ */ new WeakMap(), this.crossOriginIframeMap = /* @__PURE__ */ new WeakMap(), this.crossOriginIframeMirror = new xa(rn), this.mutationCb = e.mutationCb, this.wrappedEmit = e.wrappedEmit, this.stylesheetManager = e.stylesheetManager, this.recordCrossOriginIframes = e.recordCrossOriginIframes, this.crossOriginIframeStyleMirror = new xa(this.stylesheetManager.styleMirror.generateId.bind(this.stylesheetManager.styleMirror)), this.mirror = e.mirror, this.recordCrossOriginIframes && window.addEventListener("message", this.handleMessage.bind(this));
2894
+ }
2895
+ addIframe(e) {
2896
+ this.iframes.set(e, !0), e.contentWindow && this.crossOriginIframeMap.set(e.contentWindow, e);
2897
+ }
2898
+ addLoadListener(e) {
2899
+ this.loadListener = e;
2900
+ }
2901
+ attachIframe(e, t) {
2902
+ var n;
2903
+ this.mutationCb({ adds: [{ parentId: this.mirror.getId(e), nextId: null, node: t }], removes: [], texts: [], attributes: [], isAttachIframe: !0 }), (n = this.loadListener) === null || n === void 0 || n.call(this, e), e.contentDocument && e.contentDocument.adoptedStyleSheets && e.contentDocument.adoptedStyleSheets.length > 0 && this.stylesheetManager.adoptStyleSheets(e.contentDocument.adoptedStyleSheets, this.mirror.getId(e.contentDocument));
2904
+ }
2905
+ handleMessage(e) {
2906
+ if (e.data.type === "rrweb") {
2907
+ if (!e.source) return;
2908
+ const t = this.crossOriginIframeMap.get(e.source);
2909
+ if (!t) return;
2910
+ const n = this.transformCrossOriginEvent(t, e.data.event);
2911
+ n && this.wrappedEmit(n, e.data.isCheckout);
2912
+ }
2913
+ }
2914
+ transformCrossOriginEvent(e, t) {
2915
+ var n;
2916
+ switch (t.type) {
2917
+ case W.FullSnapshot:
2918
+ return this.crossOriginIframeMirror.reset(e), this.crossOriginIframeStyleMirror.reset(e), this.replaceIdOnNode(t.data.node, e), { timestamp: t.timestamp, type: W.IncrementalSnapshot, data: { source: D.Mutation, adds: [{ parentId: this.mirror.getId(e), nextId: null, node: t.data.node }], removes: [], texts: [], attributes: [], isAttachIframe: !0 } };
2919
+ case W.Meta:
2920
+ case W.Load:
2921
+ case W.DomContentLoaded:
2922
+ return !1;
2923
+ case W.Plugin:
2924
+ return t;
2925
+ case W.Custom:
2926
+ return this.replaceIds(t.data.payload, e, ["id", "parentId", "previousId", "nextId"]), t;
2927
+ case W.IncrementalSnapshot:
2928
+ switch (t.data.source) {
2929
+ case D.Mutation:
2930
+ return t.data.adds.forEach((r) => {
2931
+ this.replaceIds(r, e, ["parentId", "nextId", "previousId"]), this.replaceIdOnNode(r.node, e);
2932
+ }), t.data.removes.forEach((r) => {
2933
+ this.replaceIds(r, e, ["parentId", "id"]);
2934
+ }), t.data.attributes.forEach((r) => {
2935
+ this.replaceIds(r, e, ["id"]);
2936
+ }), t.data.texts.forEach((r) => {
2937
+ this.replaceIds(r, e, ["id"]);
2938
+ }), t;
2939
+ case D.Drag:
2940
+ case D.TouchMove:
2941
+ case D.MouseMove:
2942
+ return t.data.positions.forEach((r) => {
2943
+ this.replaceIds(r, e, ["id"]);
2944
+ }), t;
2945
+ case D.ViewportResize:
2946
+ return !1;
2947
+ case D.MediaInteraction:
2948
+ case D.MouseInteraction:
2949
+ case D.Scroll:
2950
+ case D.CanvasMutation:
2951
+ case D.Input:
2952
+ return this.replaceIds(t.data, e, ["id"]), t;
2953
+ case D.StyleSheetRule:
2954
+ case D.StyleDeclaration:
2955
+ return this.replaceIds(t.data, e, ["id"]), this.replaceStyleIds(t.data, e, ["styleId"]), t;
2956
+ case D.Font:
2957
+ return t;
2958
+ case D.Selection:
2959
+ return t.data.ranges.forEach((r) => {
2960
+ this.replaceIds(r, e, ["start", "end"]);
2961
+ }), t;
2962
+ case D.AdoptedStyleSheet:
2963
+ return this.replaceIds(t.data, e, ["id"]), this.replaceStyleIds(t.data, e, ["styleIds"]), (n = t.data.styles) === null || n === void 0 || n.forEach((r) => {
2964
+ this.replaceStyleIds(r, e, ["styleId"]);
2965
+ }), t;
2966
+ }
2967
+ }
2968
+ }
2969
+ replace(e, t, n, r) {
2970
+ for (const i of r) (Array.isArray(t[i]) || typeof t[i] == "number") && (Array.isArray(t[i]) ? t[i] = e.getIds(n, t[i]) : t[i] = e.getId(n, t[i]));
2971
+ return t;
2972
+ }
2973
+ replaceIds(e, t, n) {
2974
+ return this.replace(this.crossOriginIframeMirror, e, t, n);
2975
+ }
2976
+ replaceStyleIds(e, t, n) {
2977
+ return this.replace(this.crossOriginIframeStyleMirror, e, t, n);
2978
+ }
2979
+ replaceIdOnNode(e, t) {
2980
+ this.replaceIds(e, t, ["id"]), "childNodes" in e && e.childNodes.forEach((n) => {
2981
+ this.replaceIdOnNode(n, t);
2982
+ });
2983
+ }
2984
+ }
2985
+ class li {
2986
+ constructor(e) {
2987
+ this.shadowDoms = /* @__PURE__ */ new WeakSet(), this.restorePatches = [], this.mutationCb = e.mutationCb, this.scrollCb = e.scrollCb, this.bypassOptions = e.bypassOptions, this.mirror = e.mirror;
2988
+ const t = this;
2989
+ this.restorePatches.push(Re(Element.prototype, "attachShadow", function(n) {
2990
+ return function(r) {
2991
+ const i = n.call(this, r);
2992
+ return this.shadowRoot && t.addShadowRoot(this.shadowRoot, this.ownerDocument), i;
2993
+ };
2994
+ }));
2995
+ }
2996
+ addShadowRoot(e, t) {
2997
+ Ke(e) && (this.shadowDoms.has(e) || (this.shadowDoms.add(e), vn(Object.assign(Object.assign({}, this.bypassOptions), { doc: t, mutationCb: this.mutationCb, mirror: this.mirror, shadowDomManager: this }), e), In(Object.assign(Object.assign({}, this.bypassOptions), { scrollCb: this.scrollCb, doc: e, mirror: this.mirror })), setTimeout(() => {
2998
+ e.adoptedStyleSheets && e.adoptedStyleSheets.length > 0 && this.bypassOptions.stylesheetManager.adoptStyleSheets(e.adoptedStyleSheets, this.mirror.getId(e.host)), Cn({ mirror: this.mirror, stylesheetManager: this.bypassOptions.stylesheetManager }, e);
2999
+ }, 0)));
3000
+ }
3001
+ observeAttachShadow(e) {
3002
+ if (e.contentWindow) {
3003
+ const t = this;
3004
+ this.restorePatches.push(Re(e.contentWindow.HTMLElement.prototype, "attachShadow", function(n) {
3005
+ return function(r) {
3006
+ const i = n.call(this, r);
3007
+ return this.shadowRoot && t.addShadowRoot(this.shadowRoot, e.contentDocument), i;
3008
+ };
3009
+ }));
3010
+ }
3011
+ }
3012
+ reset() {
3013
+ this.restorePatches.forEach((e) => e()), this.shadowDoms = /* @__PURE__ */ new WeakSet();
3014
+ }
3015
+ }
3016
+ /*! *****************************************************************************
3017
+ Copyright (c) Microsoft Corporation.
3018
+
3019
+ Permission to use, copy, modify, and/or distribute this software for any
3020
+ purpose with or without fee is hereby granted.
3021
+
3022
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
3023
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
3024
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
3025
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
3026
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
3027
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
3028
+ PERFORMANCE OF THIS SOFTWARE.
3029
+ ***************************************************************************** */
3030
+ function ci(a, e, t, n) {
3031
+ return new (t || (t = Promise))(function(r, i) {
3032
+ function o(c) {
3033
+ try {
3034
+ l(n.next(c));
3035
+ } catch (h) {
3036
+ i(h);
3037
+ }
3038
+ }
3039
+ function s(c) {
3040
+ try {
3041
+ l(n.throw(c));
3042
+ } catch (h) {
3043
+ i(h);
3044
+ }
3045
+ }
3046
+ function l(c) {
3047
+ c.done ? r(c.value) : function(h) {
3048
+ return h instanceof t ? h : new t(function(d) {
3049
+ d(h);
3050
+ });
3051
+ }(c.value).then(o, s);
3052
+ }
3053
+ l((n = n.apply(a, [])).next());
3054
+ });
3055
+ }
3056
+ for (var Ze = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", hi = typeof Uint8Array == "undefined" ? [] : new Uint8Array(256), at = 0; at < 64; at++) hi[Ze.charCodeAt(at)] = at;
3057
+ const Ta = /* @__PURE__ */ new Map(), Sn = (a, e, t) => {
3058
+ if (!a || !jn(a, e) && typeof a != "object") return;
3059
+ const n = function(i, o) {
3060
+ let s = Ta.get(i);
3061
+ return s || (s = /* @__PURE__ */ new Map(), Ta.set(i, s)), s.has(o) || s.set(o, []), s.get(o);
3062
+ }(t, a.constructor.name);
3063
+ let r = n.indexOf(a);
3064
+ return r === -1 && (r = n.length, n.push(a)), r;
3065
+ };
3066
+ function ct(a, e, t) {
3067
+ if (a instanceof Array) return a.map((n) => ct(n, e, t));
3068
+ if (a === null) return a;
3069
+ if (a instanceof Float32Array || a instanceof Float64Array || a instanceof Int32Array || a instanceof Uint32Array || a instanceof Uint8Array || a instanceof Uint16Array || a instanceof Int16Array || a instanceof Int8Array || a instanceof Uint8ClampedArray)
3070
+ return { rr_type: a.constructor.name, args: [Object.values(a)] };
3071
+ if (a instanceof ArrayBuffer) {
3072
+ const n = a.constructor.name, r = function(i) {
3073
+ var o, s = new Uint8Array(i), l = s.length, c = "";
3074
+ for (o = 0; o < l; o += 3) c += Ze[s[o] >> 2], c += Ze[(3 & s[o]) << 4 | s[o + 1] >> 4], c += Ze[(15 & s[o + 1]) << 2 | s[o + 2] >> 6], c += Ze[63 & s[o + 2]];
3075
+ return l % 3 == 2 ? c = c.substring(0, c.length - 1) + "=" : l % 3 == 1 && (c = c.substring(0, c.length - 2) + "=="), c;
3076
+ }(a);
3077
+ return { rr_type: n, base64: r };
3078
+ }
3079
+ if (a instanceof DataView)
3080
+ return { rr_type: a.constructor.name, args: [ct(a.buffer, e, t), a.byteOffset, a.byteLength] };
3081
+ if (a instanceof HTMLImageElement) {
3082
+ const n = a.constructor.name, { src: r } = a;
3083
+ return { rr_type: n, src: r };
3084
+ }
3085
+ return a instanceof HTMLCanvasElement ? { rr_type: "HTMLImageElement", src: a.toDataURL() } : a instanceof ImageData ? { rr_type: a.constructor.name, args: [ct(a.data, e, t), a.width, a.height] } : jn(a, e) || typeof a == "object" ? { rr_type: a.constructor.name, index: Sn(a, e, t) } : a;
3086
+ }
3087
+ const An = (a, e, t) => [...a].map((n) => ct(n, e, t)), jn = (a, e) => !!["WebGLActiveInfo", "WebGLBuffer", "WebGLFramebuffer", "WebGLProgram", "WebGLRenderbuffer", "WebGLShader", "WebGLShaderPrecisionFormat", "WebGLTexture", "WebGLUniformLocation", "WebGLVertexArrayObject", "WebGLVertexArrayObjectOES"].filter((n) => typeof e[n] == "function").find((n) => a instanceof e[n]);
3088
+ function Ra(a, e, t) {
3089
+ const n = [];
3090
+ try {
3091
+ const r = Re(a.HTMLCanvasElement.prototype, "getContext", function(i) {
3092
+ return function(o, ...s) {
3093
+ return le(this, e, t, !0) || "__context" in this || (this.__context = o), i.apply(this, [o, ...s]);
3094
+ };
3095
+ });
3096
+ n.push(r);
3097
+ } catch (r) {
3098
+ console.error("failed to patch HTMLCanvasElement.prototype.getContext");
3099
+ }
3100
+ return () => {
3101
+ n.forEach((r) => r());
3102
+ };
3103
+ }
3104
+ function Na(a, e, t, n, r, i, o) {
3105
+ const s = [], l = Object.getOwnPropertyNames(a);
3106
+ for (const c of l) if (!["isContextLost", "canvas", "drawingBufferWidth", "drawingBufferHeight"].includes(c)) try {
3107
+ if (typeof a[c] != "function") continue;
3108
+ const h = Re(a, c, function(d) {
3109
+ return function(...u) {
3110
+ const b = d.apply(this, u);
3111
+ if (Sn(b, o, this), !le(this.canvas, n, r, !0)) {
3112
+ const f = An([...u], o, this), R = { type: e, property: c, args: f };
3113
+ t(this.canvas, R);
3114
+ }
3115
+ return b;
3116
+ };
3117
+ });
3118
+ s.push(h);
3119
+ } catch (h) {
3120
+ const d = yt(a, c, { set(u) {
3121
+ t(this.canvas, { type: e, property: c, args: [u], setter: !0 });
3122
+ } });
3123
+ s.push(d);
3124
+ }
3125
+ return s;
3126
+ }
3127
+ var zn = null;
3128
+ try {
3129
+ var di = typeof module != "undefined" && typeof module.require == "function" && module.require("worker_threads") || typeof __non_webpack_require__ == "function" && __non_webpack_require__("worker_threads") || typeof require == "function" && require("worker_threads");
3130
+ zn = di.Worker;
3131
+ } catch (a) {
3132
+ }
3133
+ function ui(a, e, t) {
3134
+ var n = function(o) {
3135
+ return Buffer.from(o, "base64").toString("utf8");
3136
+ }(a), r = n.indexOf(`
3137
+ `, 10) + 1, i = n.substring(r) + "";
3138
+ return function(o) {
3139
+ return new zn(i, Object.assign({}, o, { eval: !0 }));
3140
+ };
3141
+ }
3142
+ function mi(a, e, t) {
3143
+ var n = function(s) {
3144
+ return atob(s);
3145
+ }(a), r = n.indexOf(`
3146
+ `, 10) + 1, i = n.substring(r) + "", o = new Blob([i], { type: "application/javascript" });
3147
+ return URL.createObjectURL(o);
3148
+ }
3149
+ var gi = Object.prototype.toString.call(typeof process != "undefined" ? process : 0) === "[object process]", zt, pi = (zt = "Lyogcm9sbHVwLXBsdWdpbi13ZWItd29ya2VyLWxvYWRlciAqLwooZnVuY3Rpb24gKCkgewogICAgJ3VzZSBzdHJpY3QnOwoKICAgIC8qISAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KICAgIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLg0KDQogICAgUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55DQogICAgcHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLg0KDQogICAgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTIFdJVEgNCiAgICBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkNCiAgICBBTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsDQogICAgSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NDQogICAgTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1INCiAgICBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SDQogICAgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS4NCiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLw0KDQogICAgZnVuY3Rpb24gX19hd2FpdGVyKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikgew0KICAgICAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH0NCiAgICAgICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7DQogICAgICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9DQogICAgICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvclsidGhyb3ciXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9DQogICAgICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfQ0KICAgICAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpOw0KICAgICAgICB9KTsNCiAgICB9CgogICAgLyoKICAgICAqIGJhc2U2NC1hcnJheWJ1ZmZlciAxLjAuMSA8aHR0cHM6Ly9naXRodWIuY29tL25pa2xhc3ZoL2Jhc2U2NC1hcnJheWJ1ZmZlcj4KICAgICAqIENvcHlyaWdodCAoYykgMjAyMSBOaWtsYXMgdm9uIEhlcnR6ZW4gPGh0dHBzOi8vaGVydHplbi5jb20+CiAgICAgKiBSZWxlYXNlZCB1bmRlciBNSVQgTGljZW5zZQogICAgICovCiAgICB2YXIgY2hhcnMgPSAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyc7CiAgICAvLyBVc2UgYSBsb29rdXAgdGFibGUgdG8gZmluZCB0aGUgaW5kZXguCiAgICB2YXIgbG9va3VwID0gdHlwZW9mIFVpbnQ4QXJyYXkgPT09ICd1bmRlZmluZWQnID8gW10gOiBuZXcgVWludDhBcnJheSgyNTYpOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGFycy5sZW5ndGg7IGkrKykgewogICAgICAgIGxvb2t1cFtjaGFycy5jaGFyQ29kZUF0KGkpXSA9IGk7CiAgICB9CiAgICB2YXIgZW5jb2RlID0gZnVuY3Rpb24gKGFycmF5YnVmZmVyKSB7CiAgICAgICAgdmFyIGJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkoYXJyYXlidWZmZXIpLCBpLCBsZW4gPSBieXRlcy5sZW5ndGgsIGJhc2U2NCA9ICcnOwogICAgICAgIGZvciAoaSA9IDA7IGkgPCBsZW47IGkgKz0gMykgewogICAgICAgICAgICBiYXNlNjQgKz0gY2hhcnNbYnl0ZXNbaV0gPj4gMl07CiAgICAgICAgICAgIGJhc2U2NCArPSBjaGFyc1soKGJ5dGVzW2ldICYgMykgPDwgNCkgfCAoYnl0ZXNbaSArIDFdID4+IDQpXTsKICAgICAgICAgICAgYmFzZTY0ICs9IGNoYXJzWygoYnl0ZXNbaSArIDFdICYgMTUpIDw8IDIpIHwgKGJ5dGVzW2kgKyAyXSA+PiA2KV07CiAgICAgICAgICAgIGJhc2U2NCArPSBjaGFyc1tieXRlc1tpICsgMl0gJiA2M107CiAgICAgICAgfQogICAgICAgIGlmIChsZW4gJSAzID09PSAyKSB7CiAgICAgICAgICAgIGJhc2U2NCA9IGJhc2U2NC5zdWJzdHJpbmcoMCwgYmFzZTY0Lmxlbmd0aCAtIDEpICsgJz0nOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmIChsZW4gJSAzID09PSAxKSB7CiAgICAgICAgICAgIGJhc2U2NCA9IGJhc2U2NC5zdWJzdHJpbmcoMCwgYmFzZTY0Lmxlbmd0aCAtIDIpICsgJz09JzsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGJhc2U2NDsKICAgIH07CgogICAgY29uc3QgbGFzdEJsb2JNYXAgPSBuZXcgTWFwKCk7DQogICAgY29uc3QgdHJhbnNwYXJlbnRCbG9iTWFwID0gbmV3IE1hcCgpOw0KICAgIGZ1bmN0aW9uIGdldFRyYW5zcGFyZW50QmxvYkZvcih3aWR0aCwgaGVpZ2h0LCBkYXRhVVJMT3B0aW9ucykgew0KICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkgew0KICAgICAgICAgICAgY29uc3QgaWQgPSBgJHt3aWR0aH0tJHtoZWlnaHR9YDsNCiAgICAgICAgICAgIGlmICgnT2Zmc2NyZWVuQ2FudmFzJyBpbiBnbG9iYWxUaGlzKSB7DQogICAgICAgICAgICAgICAgaWYgKHRyYW5zcGFyZW50QmxvYk1hcC5oYXMoaWQpKQ0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJhbnNwYXJlbnRCbG9iTWFwLmdldChpZCk7DQogICAgICAgICAgICAgICAgY29uc3Qgb2Zmc2NyZWVuID0gbmV3IE9mZnNjcmVlbkNhbnZhcyh3aWR0aCwgaGVpZ2h0KTsNCiAgICAgICAgICAgICAgICBvZmZzY3JlZW4uZ2V0Q29udGV4dCgnMmQnKTsNCiAgICAgICAgICAgICAgICBjb25zdCBibG9iID0geWllbGQgb2Zmc2NyZWVuLmNvbnZlcnRUb0Jsb2IoZGF0YVVSTE9wdGlvbnMpOw0KICAgICAgICAgICAgICAgIGNvbnN0IGFycmF5QnVmZmVyID0geWllbGQgYmxvYi5hcnJheUJ1ZmZlcigpOw0KICAgICAgICAgICAgICAgIGNvbnN0IGJhc2U2NCA9IGVuY29kZShhcnJheUJ1ZmZlcik7DQogICAgICAgICAgICAgICAgdHJhbnNwYXJlbnRCbG9iTWFwLnNldChpZCwgYmFzZTY0KTsNCiAgICAgICAgICAgICAgICByZXR1cm4gYmFzZTY0Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgcmV0dXJuICcnOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9KTsNCiAgICB9DQogICAgY29uc3Qgd29ya2VyID0gc2VsZjsNCiAgICB3b3JrZXIub25tZXNzYWdlID0gZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHsNCiAgICAgICAgICAgIGlmICgnT2Zmc2NyZWVuQ2FudmFzJyBpbiBnbG9iYWxUaGlzKSB7DQogICAgICAgICAgICAgICAgY29uc3QgeyBpZCwgYml0bWFwLCB3aWR0aCwgaGVpZ2h0LCBkYXRhVVJMT3B0aW9ucyB9ID0gZS5kYXRhOw0KICAgICAgICAgICAgICAgIGNvbnN0IHRyYW5zcGFyZW50QmFzZTY0ID0gZ2V0VHJhbnNwYXJlbnRCbG9iRm9yKHdpZHRoLCBoZWlnaHQsIGRhdGFVUkxPcHRpb25zKTsNCiAgICAgICAgICAgICAgICBjb25zdCBvZmZzY3JlZW4gPSBuZXcgT2Zmc2NyZWVuQ2FudmFzKHdpZHRoLCBoZWlnaHQpOw0KICAgICAgICAgICAgICAgIGNvbnN0IGN0eCA9IG9mZnNjcmVlbi5nZXRDb250ZXh0KCcyZCcpOw0KICAgICAgICAgICAgICAgIGN0eC5kcmF3SW1hZ2UoYml0bWFwLCAwLCAwKTsNCiAgICAgICAgICAgICAgICBiaXRtYXAuY2xvc2UoKTsNCiAgICAgICAgICAgICAgICBjb25zdCBibG9iID0geWllbGQgb2Zmc2NyZWVuLmNvbnZlcnRUb0Jsb2IoZGF0YVVSTE9wdGlvbnMpOw0KICAgICAgICAgICAgICAgIGNvbnN0IHR5cGUgPSBibG9iLnR5cGU7DQogICAgICAgICAgICAgICAgY29uc3QgYXJyYXlCdWZmZXIgPSB5aWVsZCBibG9iLmFycmF5QnVmZmVyKCk7DQogICAgICAgICAgICAgICAgY29uc3QgYmFzZTY0ID0gZW5jb2RlKGFycmF5QnVmZmVyKTsNCiAgICAgICAgICAgICAgICBpZiAoIWxhc3RCbG9iTWFwLmhhcyhpZCkgJiYgKHlpZWxkIHRyYW5zcGFyZW50QmFzZTY0KSA9PT0gYmFzZTY0KSB7DQogICAgICAgICAgICAgICAgICAgIGxhc3RCbG9iTWFwLnNldChpZCwgYmFzZTY0KTsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHdvcmtlci5wb3N0TWVzc2FnZSh7IGlkIH0pOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAobGFzdEJsb2JNYXAuZ2V0KGlkKSA9PT0gYmFzZTY0KQ0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gd29ya2VyLnBvc3RNZXNzYWdlKHsgaWQgfSk7DQogICAgICAgICAgICAgICAgd29ya2VyLnBvc3RNZXNzYWdlKHsNCiAgICAgICAgICAgICAgICAgICAgaWQsDQogICAgICAgICAgICAgICAgICAgIHR5cGUsDQogICAgICAgICAgICAgICAgICAgIGJhc2U2NCwNCiAgICAgICAgICAgICAgICAgICAgd2lkdGgsDQogICAgICAgICAgICAgICAgICAgIGhlaWdodCwNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBsYXN0QmxvYk1hcC5zZXQoaWQsIGJhc2U2NCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gd29ya2VyLnBvc3RNZXNzYWdlKHsgaWQ6IGUuZGF0YS5pZCB9KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfSk7DQogICAgfTsKCn0pKCk7Cgo=", gi ? ui(zt) : /* @__PURE__ */ function(a) {
3150
+ var e;
3151
+ return function(t) {
3152
+ return e = e || mi(a), new Worker(e, t);
3153
+ };
3154
+ }(zt));
3155
+ class yi {
3156
+ constructor(e) {
3157
+ this.pendingCanvasMutations = /* @__PURE__ */ new Map(), this.rafStamps = { latestId: 0, invokeId: null }, this.frozen = !1, this.locked = !1, this.processMutation = (l, c) => {
3158
+ !(this.rafStamps.invokeId && this.rafStamps.latestId !== this.rafStamps.invokeId) && this.rafStamps.invokeId || (this.rafStamps.invokeId = this.rafStamps.latestId), this.pendingCanvasMutations.has(l) || this.pendingCanvasMutations.set(l, []), this.pendingCanvasMutations.get(l).push(c);
3159
+ };
3160
+ const { sampling: t = "all", win: n, blockClass: r, blockSelector: i, recordCanvas: o, dataURLOptions: s } = e;
3161
+ this.mutationCb = e.mutationCb, this.mirror = e.mirror, o && t === "all" && this.initCanvasMutationObserver(n, r, i), o && typeof t == "number" && this.initCanvasFPSObserver(t, n, r, i, { dataURLOptions: s });
3162
+ }
3163
+ reset() {
3164
+ this.pendingCanvasMutations.clear(), this.resetObservers && this.resetObservers();
3165
+ }
3166
+ freeze() {
3167
+ this.frozen = !0;
3168
+ }
3169
+ unfreeze() {
3170
+ this.frozen = !1;
3171
+ }
3172
+ lock() {
3173
+ this.locked = !0;
3174
+ }
3175
+ unlock() {
3176
+ this.locked = !1;
3177
+ }
3178
+ initCanvasFPSObserver(e, t, n, r, i) {
3179
+ const o = Ra(t, n, r), s = /* @__PURE__ */ new Map(), l = new pi();
3180
+ l.onmessage = (b) => {
3181
+ const { id: f } = b.data;
3182
+ if (s.set(f, !1), !("base64" in b.data)) return;
3183
+ const { base64: R, type: p, width: m, height: v } = b.data;
3184
+ this.mutationCb({ id: f, type: Fe["2D"], commands: [{ property: "clearRect", args: [0, 0, m, v] }, { property: "drawImage", args: [{ rr_type: "ImageBitmap", args: [{ rr_type: "Blob", data: [{ rr_type: "ArrayBuffer", base64: R }], type: p }] }, 0, 0] }] });
3185
+ };
3186
+ const c = 1e3 / e;
3187
+ let h, d = 0;
3188
+ const u = (b) => {
3189
+ d && b - d < c || (d = b, (() => {
3190
+ const f = [];
3191
+ return t.document.querySelectorAll("canvas").forEach((R) => {
3192
+ le(R, n, r, !0) || f.push(R);
3193
+ }), f;
3194
+ })().forEach((f) => ci(this, 0, void 0, function* () {
3195
+ var R;
3196
+ const p = this.mirror.getId(f);
3197
+ if (s.get(p)) return;
3198
+ if (s.set(p, !0), ["webgl", "webgl2"].includes(f.__context)) {
3199
+ const v = f.getContext(f.__context);
3200
+ ((R = v == null ? void 0 : v.getContextAttributes()) === null || R === void 0 ? void 0 : R.preserveDrawingBuffer) === !1 && (v == null || v.clear(v.COLOR_BUFFER_BIT));
3201
+ }
3202
+ const m = yield createImageBitmap(f);
3203
+ l.postMessage({ id: p, bitmap: m, width: f.width, height: f.height, dataURLOptions: i.dataURLOptions }, [m]);
3204
+ }))), h = requestAnimationFrame(u);
3205
+ };
3206
+ h = requestAnimationFrame(u), this.resetObservers = () => {
3207
+ o(), cancelAnimationFrame(h);
3208
+ };
3209
+ }
3210
+ initCanvasMutationObserver(e, t, n) {
3211
+ this.startRAFTimestamping(), this.startPendingCanvasMutationFlusher();
3212
+ const r = Ra(e, t, n), i = function(s, l, c, h) {
3213
+ const d = [], u = Object.getOwnPropertyNames(l.CanvasRenderingContext2D.prototype);
3214
+ for (const b of u) try {
3215
+ if (typeof l.CanvasRenderingContext2D.prototype[b] != "function") continue;
3216
+ const f = Re(l.CanvasRenderingContext2D.prototype, b, function(R) {
3217
+ return function(...p) {
3218
+ return le(this.canvas, c, h, !0) || setTimeout(() => {
3219
+ const m = An([...p], l, this);
3220
+ s(this.canvas, { type: Fe["2D"], property: b, args: m });
3221
+ }, 0), R.apply(this, p);
3222
+ };
3223
+ });
3224
+ d.push(f);
3225
+ } catch (f) {
3226
+ const R = yt(l.CanvasRenderingContext2D.prototype, b, { set(p) {
3227
+ s(this.canvas, { type: Fe["2D"], property: b, args: [p], setter: !0 });
3228
+ } });
3229
+ d.push(R);
3230
+ }
3231
+ return () => {
3232
+ d.forEach((b) => b());
3233
+ };
3234
+ }(this.processMutation.bind(this), e, t, n), o = function(s, l, c, h) {
3235
+ const d = [];
3236
+ return d.push(...Na(l.WebGLRenderingContext.prototype, Fe.WebGL, s, c, h, 0, l)), l.WebGL2RenderingContext !== void 0 && d.push(...Na(l.WebGL2RenderingContext.prototype, Fe.WebGL2, s, c, h, 0, l)), () => {
3237
+ d.forEach((u) => u());
3238
+ };
3239
+ }(this.processMutation.bind(this), e, t, n, this.mirror);
3240
+ this.resetObservers = () => {
3241
+ r(), i(), o();
3242
+ };
3243
+ }
3244
+ startPendingCanvasMutationFlusher() {
3245
+ requestAnimationFrame(() => this.flushPendingCanvasMutations());
3246
+ }
3247
+ startRAFTimestamping() {
3248
+ const e = (t) => {
3249
+ this.rafStamps.latestId = t, requestAnimationFrame(e);
3250
+ };
3251
+ requestAnimationFrame(e);
3252
+ }
3253
+ flushPendingCanvasMutations() {
3254
+ this.pendingCanvasMutations.forEach((e, t) => {
3255
+ const n = this.mirror.getId(t);
3256
+ this.flushPendingCanvasMutationFor(t, n);
3257
+ }), requestAnimationFrame(() => this.flushPendingCanvasMutations());
3258
+ }
3259
+ flushPendingCanvasMutationFor(e, t) {
3260
+ if (this.frozen || this.locked) return;
3261
+ const n = this.pendingCanvasMutations.get(e);
3262
+ if (!n || t === -1) return;
3263
+ const r = n.map((o) => function(l, c) {
3264
+ var h = {};
3265
+ for (var d in l) Object.prototype.hasOwnProperty.call(l, d) && c.indexOf(d) < 0 && (h[d] = l[d]);
3266
+ if (l != null && typeof Object.getOwnPropertySymbols == "function") {
3267
+ var u = 0;
3268
+ for (d = Object.getOwnPropertySymbols(l); u < d.length; u++) c.indexOf(d[u]) < 0 && Object.prototype.propertyIsEnumerable.call(l, d[u]) && (h[d[u]] = l[d[u]]);
3269
+ }
3270
+ return h;
3271
+ }(o, ["type"])), { type: i } = n[0];
3272
+ this.mutationCb({ id: t, type: i, commands: r }), this.pendingCanvasMutations.delete(e);
3273
+ }
3274
+ }
3275
+ class bi {
3276
+ constructor(e) {
3277
+ this.trackedLinkElements = /* @__PURE__ */ new WeakSet(), this.styleMirror = new ti(), this.mutationCb = e.mutationCb, this.adoptedStyleSheetCb = e.adoptedStyleSheetCb;
3278
+ }
3279
+ attachLinkElement(e, t) {
3280
+ "_cssText" in t.attributes && this.mutationCb({ adds: [], removes: [], texts: [], attributes: [{ id: t.id, attributes: t.attributes }] }), this.trackLinkElement(e);
3281
+ }
3282
+ trackLinkElement(e) {
3283
+ this.trackedLinkElements.has(e) || (this.trackedLinkElements.add(e), this.trackStylesheetInLinkElement(e));
3284
+ }
3285
+ adoptStyleSheets(e, t) {
3286
+ if (e.length === 0) return;
3287
+ const n = { id: t, styleIds: [] }, r = [];
3288
+ for (const i of e) {
3289
+ let o;
3290
+ if (this.styleMirror.has(i)) o = this.styleMirror.getId(i);
3291
+ else {
3292
+ o = this.styleMirror.add(i);
3293
+ const s = Array.from(i.rules || CSSRule);
3294
+ r.push({ styleId: o, rules: s.map((l, c) => ({ rule: an(l), index: c })) });
3295
+ }
3296
+ n.styleIds.push(o);
3297
+ }
3298
+ r.length > 0 && (n.styles = r), this.adoptedStyleSheetCb(n);
3299
+ }
3300
+ reset() {
3301
+ this.styleMirror.reset(), this.trackedLinkElements = /* @__PURE__ */ new WeakSet();
3302
+ }
3303
+ trackStylesheetInLinkElement(e) {
3304
+ }
3305
+ }
3306
+ function ae(a) {
3307
+ return Object.assign(Object.assign({}, a), { timestamp: Date.now() });
3308
+ }
3309
+ let $, ht, Et, mt = !1;
3310
+ const be = new nn();
3311
+ function ze(a = {}) {
3312
+ const { emit: e, checkoutEveryNms: t, checkoutEveryNth: n, blockClass: r = "rr-block", blockSelector: i = null, ignoreClass: o = "rr-ignore", maskTextClass: s = "rr-mask", maskTextSelector: l = null, inlineStylesheet: c = !0, maskAllInputs: h, maskInputOptions: d, slimDOMOptions: u, maskInputFn: b, maskTextFn: f, hooks: R, packFn: p, sampling: m = {}, dataURLOptions: v = {}, mousemoveWait: C, recordCanvas: N = !1, recordCrossOriginIframes: g = !1, userTriggeredOnInput: A = !1, collectFonts: S = !1, inlineImages: j = !1, plugins: x, keepIframeSrcFn: E = () => !1, ignoreCSSAttributes: w = /* @__PURE__ */ new Set([]) } = a, I = !g || window.parent === window;
3313
+ let z = !1;
3314
+ if (!I) try {
3315
+ window.parent.document, z = !1;
3316
+ } catch (T) {
3317
+ z = !0;
3318
+ }
3319
+ if (I && !e) throw new Error("emit function is required");
3320
+ C !== void 0 && m.mousemove === void 0 && (m.mousemove = C), be.reset();
3321
+ const k = h === !0 ? { color: !0, date: !0, "datetime-local": !0, email: !0, month: !0, number: !0, range: !0, search: !0, tel: !0, text: !0, time: !0, url: !0, week: !0, textarea: !0, select: !0, password: !0 } : d !== void 0 ? d : { password: !0 }, Z = u === !0 || u === "all" ? { script: !0, comment: !0, headFavicon: !0, headWhitespace: !0, headMetaSocial: !0, headMetaRobots: !0, headMetaHttpEquiv: !0, headMetaVerification: !0, headMetaAuthorship: u === "all", headMetaDescKeywords: u === "all" } : u || {};
3322
+ let V;
3323
+ (function(T = window) {
3324
+ "NodeList" in T && !T.NodeList.prototype.forEach && (T.NodeList.prototype.forEach = Array.prototype.forEach), "DOMTokenList" in T && !T.DOMTokenList.prototype.forEach && (T.DOMTokenList.prototype.forEach = Array.prototype.forEach), Node.prototype.contains || (Node.prototype.contains = (...H) => {
3325
+ let X = H[0];
3326
+ if (!(0 in H)) throw new TypeError("1 argument is required");
3327
+ do
3328
+ if (this === X) return !0;
3329
+ while (X = X && X.parentNode);
3330
+ return !1;
3331
+ });
3332
+ })();
3333
+ let F = 0;
3334
+ const me = (T) => {
3335
+ for (const H of x || []) H.eventProcessor && (T = H.eventProcessor(T));
3336
+ return p && (T = p(T)), T;
3337
+ };
3338
+ $ = (T, H) => {
3339
+ var X;
3340
+ if (!(!((X = Te[0]) === null || X === void 0) && X.isFrozen()) || T.type === W.FullSnapshot || T.type === W.IncrementalSnapshot && T.data.source === D.Mutation || Te.forEach((J) => J.unfreeze()), I) e == null || e(me(T), H);
3341
+ else if (z) {
3342
+ const J = { type: "rrweb", event: me(T), isCheckout: H };
3343
+ window.parent.postMessage(J, "*");
3344
+ }
3345
+ if (T.type === W.FullSnapshot) V = T, F = 0;
3346
+ else if (T.type === W.IncrementalSnapshot) {
3347
+ if (T.data.source === D.Mutation && T.data.isAttachIframe) return;
3348
+ F++;
3349
+ const J = n && F >= n, re = t && T.timestamp - V.timestamp > t;
3350
+ (J || re) && ht(!0);
3351
+ }
3352
+ };
3353
+ const ne = (T) => {
3354
+ $(ae({ type: W.IncrementalSnapshot, data: Object.assign({ source: D.Mutation }, T) }));
3355
+ }, ce = (T) => $(ae({ type: W.IncrementalSnapshot, data: Object.assign({ source: D.Scroll }, T) })), oe = (T) => $(ae({ type: W.IncrementalSnapshot, data: Object.assign({ source: D.CanvasMutation }, T) })), q = new bi({ mutationCb: ne, adoptedStyleSheetCb: (T) => $(ae({ type: W.IncrementalSnapshot, data: Object.assign({ source: D.AdoptedStyleSheet }, T) })) }), U = new si({ mirror: be, mutationCb: ne, stylesheetManager: q, recordCrossOriginIframes: g, wrappedEmit: $ });
3356
+ for (const T of x || []) T.getMirror && T.getMirror({ nodeMirror: be, crossOriginIframeMirror: U.crossOriginIframeMirror, crossOriginIframeStyleMirror: U.crossOriginIframeStyleMirror });
3357
+ Et = new yi({ recordCanvas: N, mutationCb: oe, win: window, blockClass: r, blockSelector: i, mirror: be, sampling: m.canvas, dataURLOptions: v });
3358
+ const M = new li({ mutationCb: ne, scrollCb: ce, bypassOptions: { blockClass: r, blockSelector: i, maskTextClass: s, maskTextSelector: l, inlineStylesheet: c, maskInputOptions: k, dataURLOptions: v, maskTextFn: f, maskInputFn: b, recordCanvas: N, inlineImages: j, sampling: m, slimDOMOptions: Z, iframeManager: U, stylesheetManager: q, canvasManager: Et, keepIframeSrcFn: E }, mirror: be });
3359
+ ht = (T = !1) => {
3360
+ var H, X, J, re, L, y;
3361
+ $(ae({ type: W.Meta, data: { href: window.location.href, width: cn(), height: ln() } }), T), q.reset(), Te.forEach((K) => K.lock());
3362
+ const G = function(K, Q) {
3363
+ var P = Q || {}, ye = P.mirror, Se = ye === void 0 ? new nn() : ye, Ne = P.blockClass, He = Ne === void 0 ? "rr-block" : Ne, ee = P.blockSelector, ge = ee === void 0 ? null : ee, ke = P.maskTextClass, Ie = ke === void 0 ? "rr-mask" : ke, Ae = P.maskTextSelector, bt = Ae === void 0 ? null : Ae, Je = P.inlineStylesheet, Tn = Je === void 0 || Je, Qt = P.inlineImages, Rn = Qt !== void 0 && Qt, Xt = P.recordCanvas, Nn = Xt !== void 0 && Xt, $t = P.maskAllInputs, ft = $t !== void 0 && $t, On = P.maskTextFn, _n = P.maskInputFn, ea = P.slimDOM, De = ea !== void 0 && ea, Mn = P.dataURLOptions, Ln = P.preserveWhiteSpace, Fn = P.onSerialize, Bn = P.onIframeLoad, Dn = P.iframeLoadTimeout, qn = P.onStylesheetLoad, Wn = P.stylesheetLoadTimeout, ta = P.keepIframeSrcFn;
3364
+ return Be(K, { doc: K, mirror: Se, blockClass: He, blockSelector: ge, maskTextClass: Ie, maskTextSelector: bt, skipChild: !1, inlineStylesheet: Tn, maskInputOptions: ft === !0 ? { color: !0, date: !0, "datetime-local": !0, email: !0, month: !0, number: !0, range: !0, search: !0, tel: !0, text: !0, time: !0, url: !0, week: !0, textarea: !0, select: !0, password: !0 } : ft === !1 ? { password: !0 } : ft, maskTextFn: On, maskInputFn: _n, slimDOMOptions: De === !0 || De === "all" ? { script: !0, comment: !0, headFavicon: !0, headWhitespace: !0, headMetaDescKeywords: De === "all", headMetaSocial: !0, headMetaRobots: !0, headMetaHttpEquiv: !0, headMetaAuthorship: !0, headMetaVerification: !0 } : De === !1 ? {} : De, dataURLOptions: Mn, inlineImages: Rn, recordCanvas: Nn, preserveWhiteSpace: Ln, onSerialize: Fn, onIframeLoad: Bn, iframeLoadTimeout: Dn, onStylesheetLoad: qn, stylesheetLoadTimeout: Wn, keepIframeSrcFn: ta === void 0 ? function() {
3365
+ return !1;
3366
+ } : ta, newlyAddedElement: !1 });
3367
+ }(document, { mirror: be, blockClass: r, blockSelector: i, maskTextClass: s, maskTextSelector: l, inlineStylesheet: c, maskAllInputs: k, maskTextFn: f, slimDOM: Z, dataURLOptions: v, recordCanvas: N, inlineImages: j, onSerialize: (K) => {
3368
+ un(K, be) && U.addIframe(K), mn(K, be) && q.trackLinkElement(K), gn(K) && M.addShadowRoot(K.shadowRoot, document);
3369
+ }, onIframeLoad: (K, Q) => {
3370
+ U.attachIframe(K, Q), M.observeAttachShadow(K);
3371
+ }, onStylesheetLoad: (K, Q) => {
3372
+ q.attachLinkElement(K, Q);
3373
+ }, keepIframeSrcFn: E });
3374
+ if (!G) return console.warn("Failed to snapshot the document");
3375
+ $(ae({ type: W.FullSnapshot, data: { node: G, initialOffset: { left: window.pageXOffset !== void 0 ? window.pageXOffset : (document == null ? void 0 : document.documentElement.scrollLeft) || ((X = (H = document == null ? void 0 : document.body) === null || H === void 0 ? void 0 : H.parentElement) === null || X === void 0 ? void 0 : X.scrollLeft) || ((J = document == null ? void 0 : document.body) === null || J === void 0 ? void 0 : J.scrollLeft) || 0, top: window.pageYOffset !== void 0 ? window.pageYOffset : (document == null ? void 0 : document.documentElement.scrollTop) || ((L = (re = document == null ? void 0 : document.body) === null || re === void 0 ? void 0 : re.parentElement) === null || L === void 0 ? void 0 : L.scrollTop) || ((y = document == null ? void 0 : document.body) === null || y === void 0 ? void 0 : y.scrollTop) || 0 } } })), Te.forEach((K) => K.unlock()), document.adoptedStyleSheets && document.adoptedStyleSheets.length > 0 && q.adoptStyleSheets(document.adoptedStyleSheets, be.getId(document));
3376
+ };
3377
+ try {
3378
+ const T = [];
3379
+ T.push(se("DOMContentLoaded", () => {
3380
+ $(ae({ type: W.DomContentLoaded, data: {} }));
3381
+ }));
3382
+ const H = (J) => {
3383
+ var re;
3384
+ return oi({ mutationCb: ne, mousemoveCb: (L, y) => $(ae({ type: W.IncrementalSnapshot, data: { source: y, positions: L } })), mouseInteractionCb: (L) => $(ae({ type: W.IncrementalSnapshot, data: Object.assign({ source: D.MouseInteraction }, L) })), scrollCb: ce, viewportResizeCb: (L) => $(ae({ type: W.IncrementalSnapshot, data: Object.assign({ source: D.ViewportResize }, L) })), inputCb: (L) => $(ae({ type: W.IncrementalSnapshot, data: Object.assign({ source: D.Input }, L) })), mediaInteractionCb: (L) => $(ae({ type: W.IncrementalSnapshot, data: Object.assign({ source: D.MediaInteraction }, L) })), styleSheetRuleCb: (L) => $(ae({ type: W.IncrementalSnapshot, data: Object.assign({ source: D.StyleSheetRule }, L) })), styleDeclarationCb: (L) => $(ae({ type: W.IncrementalSnapshot, data: Object.assign({ source: D.StyleDeclaration }, L) })), canvasMutationCb: oe, fontCb: (L) => $(ae({ type: W.IncrementalSnapshot, data: Object.assign({ source: D.Font }, L) })), selectionCb: (L) => {
3385
+ $(ae({ type: W.IncrementalSnapshot, data: Object.assign({ source: D.Selection }, L) }));
3386
+ }, blockClass: r, ignoreClass: o, maskTextClass: s, maskTextSelector: l, maskInputOptions: k, inlineStylesheet: c, sampling: m, recordCanvas: N, inlineImages: j, userTriggeredOnInput: A, collectFonts: S, doc: J, maskInputFn: b, maskTextFn: f, keepIframeSrcFn: E, blockSelector: i, slimDOMOptions: Z, dataURLOptions: v, mirror: be, iframeManager: U, stylesheetManager: q, shadowDomManager: M, canvasManager: Et, ignoreCSSAttributes: w, plugins: ((re = x == null ? void 0 : x.filter((L) => L.observer)) === null || re === void 0 ? void 0 : re.map((L) => ({ observer: L.observer, options: L.options, callback: (y) => $(ae({ type: W.Plugin, data: { plugin: L.name, payload: y } })) }))) || [] }, R);
3387
+ };
3388
+ U.addLoadListener((J) => {
3389
+ T.push(H(J.contentDocument));
3390
+ });
3391
+ const X = () => {
3392
+ ht(), T.push(H(document)), mt = !0;
3393
+ };
3394
+ return document.readyState === "interactive" || document.readyState === "complete" ? X() : T.push(se("load", () => {
3395
+ $(ae({ type: W.Load, data: {} })), X();
3396
+ }, window)), () => {
3397
+ T.forEach((J) => J()), mt = !1;
3398
+ };
3399
+ } catch (T) {
3400
+ console.warn(T);
3401
+ }
3402
+ }
3403
+ ze.addCustomEvent = (a, e) => {
3404
+ if (!mt) throw new Error("please add custom event after start recording");
3405
+ $(ae({ type: W.Custom, data: { tag: a, payload: e } }));
3406
+ }, ze.freezePage = () => {
3407
+ Te.forEach((a) => a.freeze());
3408
+ }, ze.takeFullSnapshot = (a) => {
3409
+ if (!mt) throw new Error("please take full snapshot after start recording");
3410
+ ht(a);
3411
+ }, ze.mirror = be;
3412
+ class _e {
3413
+ constructor(e) {
3414
+ this.fileName = e.fileName || "", this.functionName = e.functionName || "", this.lineNumber = e.lineNumber, this.columnNumber = e.columnNumber;
3415
+ }
3416
+ toString() {
3417
+ const e = this.lineNumber || "", t = this.columnNumber || "";
3418
+ return this.functionName ? `${this.functionName} (${this.fileName}:${e}:${t})` : `${this.fileName}:${e}:${t}`;
3419
+ }
3420
+ }
3421
+ const fi = /(^|@)\S+:\d+/, Oa = /^\s*at .*(\S+:\d+|\(native\))/m, ki = /^(eval@)?(\[native code])?$/, _a = { parse: function(a) {
3422
+ if (!a) return [];
3423
+ if (a.stacktrace !== void 0 || a["opera#sourceloc"] !== void 0) return this.parseOpera(a);
3424
+ if (a.stack && a.stack.match(Oa)) return this.parseV8OrIE(a);
3425
+ if (a.stack) return this.parseFFOrSafari(a);
3426
+ throw new Error("Cannot parse given Error object");
3427
+ }, extractLocation: function(a) {
3428
+ if (a.indexOf(":") === -1) return [a];
3429
+ const e = /(.+?)(?::(\d+))?(?::(\d+))?$/.exec(a.replace(/[()]/g, ""));
3430
+ if (!e) throw new Error(`Cannot parse given url: ${a}`);
3431
+ return [e[1], e[2] || void 0, e[3] || void 0];
3432
+ }, parseV8OrIE: function(a) {
3433
+ return a.stack.split(`
3434
+ `).filter(function(e) {
3435
+ return !!e.match(Oa);
3436
+ }, this).map(function(e) {
3437
+ e.indexOf("(eval ") > -1 && (e = e.replace(/eval code/g, "eval").replace(/(\(eval at [^()]*)|(\),.*$)/g, ""));
3438
+ let t = e.replace(/^\s+/, "").replace(/\(eval code/g, "(");
3439
+ const n = t.match(/ (\((.+):(\d+):(\d+)\)$)/);
3440
+ t = n ? t.replace(n[0], "") : t;
3441
+ const r = t.split(/\s+/).slice(1), i = this.extractLocation(n ? n[1] : r.pop()), o = r.join(" ") || void 0, s = ["eval", "<anonymous>"].indexOf(i[0]) > -1 ? void 0 : i[0];
3442
+ return new _e({ functionName: o, fileName: s, lineNumber: i[1], columnNumber: i[2] });
3443
+ }, this);
3444
+ }, parseFFOrSafari: function(a) {
3445
+ return a.stack.split(`
3446
+ `).filter(function(e) {
3447
+ return !e.match(ki);
3448
+ }, this).map(function(e) {
3449
+ if (e.indexOf(" > eval") > -1 && (e = e.replace(/ line (\d+)(?: > eval line \d+)* > eval:\d+:\d+/g, ":$1")), e.indexOf("@") === -1 && e.indexOf(":") === -1) return new _e({ functionName: e });
3450
+ {
3451
+ const t = /((.*".+"[^@]*)?[^@]*)(?:@)/, n = e.match(t), r = n && n[1] ? n[1] : void 0, i = this.extractLocation(e.replace(t, ""));
3452
+ return new _e({ functionName: r, fileName: i[0], lineNumber: i[1], columnNumber: i[2] });
3453
+ }
3454
+ }, this);
3455
+ }, parseOpera: function(a) {
3456
+ return !a.stacktrace || a.message.indexOf(`
3457
+ `) > -1 && a.message.split(`
3458
+ `).length > a.stacktrace.split(`
3459
+ `).length ? this.parseOpera9(a) : a.stack ? this.parseOpera11(a) : this.parseOpera10(a);
3460
+ }, parseOpera9: function(a) {
3461
+ const e = /Line (\d+).*script (?:in )?(\S+)/i, t = a.message.split(`
3462
+ `), n = [];
3463
+ for (let r = 2, i = t.length; r < i; r += 2) {
3464
+ const o = e.exec(t[r]);
3465
+ o && n.push(new _e({ fileName: o[2], lineNumber: parseFloat(o[1]) }));
3466
+ }
3467
+ return n;
3468
+ }, parseOpera10: function(a) {
3469
+ const e = /Line (\d+).*script (?:in )?(\S+)(?:: In function (\S+))?$/i, t = a.stacktrace.split(`
3470
+ `), n = [];
3471
+ for (let r = 0, i = t.length; r < i; r += 2) {
3472
+ const o = e.exec(t[r]);
3473
+ o && n.push(new _e({ functionName: o[3] || void 0, fileName: o[2], lineNumber: parseFloat(o[1]) }));
3474
+ }
3475
+ return n;
3476
+ }, parseOpera11: function(a) {
3477
+ return a.stack.split(`
3478
+ `).filter(function(e) {
3479
+ return !!e.match(fi) && !e.match(/^Error created at/);
3480
+ }, this).map(function(e) {
3481
+ const t = e.split("@"), n = this.extractLocation(t.pop()), r = (t.shift() || "").replace(/<anonymous function(: (\w+))?>/, "$2").replace(/\([^)]*\)/g, "") || void 0;
3482
+ return new _e({ functionName: r, fileName: n[0], lineNumber: n[1], columnNumber: n[2] });
3483
+ }, this);
3484
+ } };
3485
+ function wi(a) {
3486
+ if (!a || !a.outerHTML) return "";
3487
+ let e = "";
3488
+ for (; a.parentElement; ) {
3489
+ let t = a.localName;
3490
+ if (!t) break;
3491
+ t = t.toLowerCase();
3492
+ const n = a.parentElement, r = [];
3493
+ if (n.children && n.children.length > 0) for (let i = 0; i < n.children.length; i++) {
3494
+ const o = n.children[i];
3495
+ o.localName && o.localName.toLowerCase && o.localName.toLowerCase() === t && r.push(o);
3496
+ }
3497
+ r.length > 1 && (t += `:eq(${r.indexOf(a)})`), e = t + (e ? ">" + e : ""), a = n;
3498
+ }
3499
+ return e;
3500
+ }
3501
+ function Wt(a) {
3502
+ return Object.prototype.toString.call(a) === "[object Object]";
3503
+ }
3504
+ function En(a, e) {
3505
+ if (e === 0) return !0;
3506
+ const t = Object.keys(a);
3507
+ for (const n of t) if (Wt(a[n]) && En(a[n], e - 1)) return !0;
3508
+ return !1;
3509
+ }
3510
+ function xt(a, e) {
3511
+ const t = { numOfKeysLimit: 50, depthOfLimit: 4 };
3512
+ Object.assign(t, e);
3513
+ const n = [], r = [];
3514
+ return JSON.stringify(a, function(i, o) {
3515
+ if (n.length > 0) {
3516
+ const s = n.indexOf(this);
3517
+ ~s ? n.splice(s + 1) : n.push(this), ~s ? r.splice(s, 1 / 0, i) : r.push(i), ~n.indexOf(o) && (o = n[0] === o ? "[Circular ~]" : "[Circular ~." + r.slice(0, n.indexOf(o)).join(".") + "]");
3518
+ } else n.push(o);
3519
+ if (o === null) return o;
3520
+ if (o === void 0) return "undefined";
3521
+ if (function(s) {
3522
+ return !!(Wt(s) && Object.keys(s).length > t.numOfKeysLimit || typeof s == "function" || Wt(s) && En(s, t.depthOfLimit));
3523
+ }(o)) return function(s) {
3524
+ let l = s.toString();
3525
+ return t.stringLengthLimit && l.length > t.stringLengthLimit && (l = `${l.slice(0, t.stringLengthLimit)}...`), l;
3526
+ }(o);
3527
+ if (o instanceof Event) {
3528
+ const s = {};
3529
+ for (const l in o) {
3530
+ const c = o[l];
3531
+ Array.isArray(c) ? s[l] = wi(c.length ? c[0] : null) : s[l] = c;
3532
+ }
3533
+ return s;
3534
+ }
3535
+ return o instanceof Node ? o instanceof HTMLElement ? o ? o.outerHTML : "" : o.nodeName : o instanceof Error ? o.stack ? o.stack + `
3536
+ End of stack for Error object` : o.name + ": " + o.message : o;
3537
+ });
3538
+ }
3539
+ const Ma = { level: ["assert", "clear", "count", "countReset", "debug", "dir", "dirxml", "error", "group", "groupCollapsed", "groupEnd", "info", "log", "table", "time", "timeEnd", "timeLog", "trace", "warn"], lengthThreshold: 1e3, logger: "console" };
3540
+ function vi(a, e, t) {
3541
+ const n = t ? Object.assign({}, Ma, t) : Ma, r = n.logger;
3542
+ if (!r) return () => {
3543
+ };
3544
+ let i;
3545
+ i = typeof r == "string" ? e[r] : r;
3546
+ let o = 0;
3547
+ const s = [];
3548
+ if (n.level.includes("error") && window) {
3549
+ const c = (h) => {
3550
+ const d = h.message, u = h.error, b = _a.parse(u).map((R) => R.toString()), f = [xt(d, n.stringifyOptions)];
3551
+ a({ level: "error", trace: b, payload: f });
3552
+ };
3553
+ window.addEventListener("error", c), s.push(() => {
3554
+ window && window.removeEventListener("error", c);
3555
+ });
3556
+ }
3557
+ for (const c of n.level) s.push(l(i, c));
3558
+ return () => {
3559
+ s.forEach((c) => c());
3560
+ };
3561
+ function l(c, h) {
3562
+ return c[h] ? Re(c, h, (d) => (...u) => {
3563
+ d.apply(this, u);
3564
+ try {
3565
+ const b = _a.parse(new Error()).map((R) => R.toString()).splice(1), f = u.map((R) => xt(R, n.stringifyOptions));
3566
+ o++, o < n.lengthThreshold ? a({ level: h, trace: b, payload: f }) : o === n.lengthThreshold && a({ level: "warn", trace: [], payload: [xt("The number of log records reached the threshold.")] });
3567
+ } catch (b) {
3568
+ d("rrweb logger error:", b, ...u);
3569
+ }
3570
+ }) : () => {
3571
+ };
3572
+ }
3573
+ }
3574
+ function xn() {
3575
+ return typeof window != "undefined" && window.location.hostname === "localhost";
3576
+ }
3577
+ class Ii extends Array {
3578
+ constructor() {
3579
+ super();
3580
+ }
3581
+ isEmpty() {
3582
+ return this.length === 0;
3583
+ }
3584
+ isFull() {
3585
+ return this.length === 10;
3586
+ }
3587
+ flush() {
3588
+ return this.splice(0, this.length);
3589
+ }
3590
+ }
3591
+ class Ci {
3592
+ constructor(e) {
3593
+ _(this, "agent");
3594
+ _(this, "eventBuffer");
3595
+ this.agent = e, this.eventBuffer = new Ii();
3596
+ }
3597
+ start() {
3598
+ document.addEventListener("visibilitychange", () => {
3599
+ document.visibilityState === "hidden" && this.send();
3600
+ });
3601
+ }
3602
+ handle(e) {
3603
+ this.eventBuffer.push(e), this.eventBuffer.isFull() && this.send();
3604
+ }
3605
+ send() {
3606
+ this.eventBuffer.isEmpty() || xn() && console.log("Sending events to the server:", this.eventBuffer.flush());
3607
+ }
3608
+ }
3609
+ const Si = { recordOptions: { blockClass: "rr-block", blockSelector: null, ignoreClass: "rr-ignore", ignoreCSSAttributes: null, maskTextClass: "rr-mask", maskTextSelector: null, maskAllInputs: !0, maskInputOptions: { password: !0 }, maskInputFn: void 0, maskTextFn: void 0 }, recordConsolePlugin: { level: ["error"], lengthThreshold: Number.POSITIVE_INFINITY, stringifyOptions: { stringLengthLimit: Number.POSITIVE_INFINITY, numOfKeysLimit: Number.POSITIVE_INFINITY, depthOfLimit: Number.POSITIVE_INFINITY } } };
3610
+ class La {
3611
+ constructor(e) {
3612
+ _(this, "options");
3613
+ _(this, "stop");
3614
+ var t;
3615
+ this.options = xe(he({}, Si), { emit: e, plugins: [{ name: "rrweb/console@1", observer: vi, options: t }] }), this.stop = null;
3616
+ }
3617
+ static mockImplementation(e) {
3618
+ throw new Error("Method not implemented.");
3619
+ }
3620
+ start() {
3621
+ var e;
3622
+ this.stop = (e = ze(this.options)) != null ? e : null;
3623
+ }
3624
+ getMirror() {
3625
+ return ze.mirror;
3626
+ }
3627
+ }
3628
+ class Ai {
3629
+ constructor(e) {
3630
+ _(this, "recordingManager");
3631
+ _(this, "isRunning");
3632
+ _(this, "events");
3633
+ this.recordingManager = e, this.isRunning = !1, this.events = [];
3634
+ }
3635
+ start() {
3636
+ this.isRunning = !0;
3637
+ }
3638
+ handle(e) {
3639
+ this.isInitializingEvent(e) ? this.events.push(e) : this.stop(e);
3640
+ }
3641
+ isInitializingEvent(e) {
3642
+ return [2, 4].includes(e.type) || this.isSelectionEvent(e) || this.isConsoleEvent(e);
3643
+ }
3644
+ isSelectionEvent(e) {
3645
+ return e.type === 3 && e.data.source === 14;
3646
+ }
3647
+ isConsoleEvent(e) {
3648
+ return e.type === 6;
3649
+ }
3650
+ stop(e) {
3651
+ this.stamp(this.events, e.timestamp - 1), this.publish(...this.events, e), this.events = [], this.isRunning = !1;
3652
+ }
3653
+ stamp(e, t) {
3654
+ e.forEach((n) => n.timestamp = t);
3655
+ }
3656
+ publish(...e) {
3657
+ e.forEach((t) => {
3658
+ this.recordingManager.publishEvent(t);
3659
+ });
3660
+ }
3661
+ }
3662
+ class ji {
3663
+ constructor(e) {
3664
+ _(this, "agent");
3665
+ _(this, "recorder");
3666
+ _(this, "stasher");
3667
+ this.agent = e, this.recorder = new La(this.handleEvent.bind(this)), this.stasher = new Ai(this);
3668
+ }
3669
+ start() {
3670
+ this.recorder.start();
3671
+ }
3672
+ handleEvent(e) {
3673
+ if (this.isClick(e)) {
3674
+ let t = ze.mirror.getNode(e.data.id);
3675
+ t && this.nodeIsInteresting(t) && (e.conversionData = {}, e.conversionData.eventType = "click", e.conversionData.textContent = t.textContent);
3676
+ }
3677
+ this.isCustom(e) && (e.conversionData = {}, e.conversionData.eventType = "custom", e.conversionData.customEventType = e.data.tag), this.stasher.isRunning ? this.stasher.handle(e) : this.publishEvent(e);
3678
+ }
3679
+ publishEvent(e) {
3680
+ this.agent.sender.handle(e), this.agent.timer && this.agent.timer.restart();
3681
+ }
3682
+ startRecorderWithStasher() {
3683
+ this.stasher.start(), this.recorder = new La(this.handleEvent.bind(this)), this.recorder.start();
3684
+ }
3685
+ isClick(e) {
3686
+ return e.type === 3 && e.data.source === 2 && e.data.type === 2;
3687
+ }
3688
+ nodeIsInteresting(e) {
3689
+ return e.nodeName === "BUTTON" || e.nodeName === "ANCHOR";
3690
+ }
3691
+ isCustom(e) {
3692
+ return e.type === 5;
3693
+ }
3694
+ }
3695
+ class zi {
3696
+ constructor(e, t) {
3697
+ _(this, "agent");
3698
+ _(this, "MAX_IDLE_TIME");
3699
+ _(this, "timeoutId");
3700
+ this.agent = e, this.MAX_IDLE_TIME = t, this.timeoutId = 0;
3701
+ }
3702
+ restart() {
3703
+ this.stop(), this.start();
3704
+ }
3705
+ stop() {
3706
+ clearTimeout(this.timeoutId);
3707
+ }
3708
+ start() {
3709
+ this.timeoutId = window.setTimeout(this.agent.handleTimeout.bind(this.agent), this.MAX_IDLE_TIME);
3710
+ }
3711
+ }
3712
+ class Ei {
3713
+ constructor() {
3714
+ _(this, "recordingManager");
3715
+ _(this, "sender");
3716
+ _(this, "endpoint");
3717
+ _(this, "MAX_IDLE_TIME");
3718
+ _(this, "timer");
3719
+ this.recordingManager = new ji(this), this.sender = new Ci(this);
3720
+ }
3721
+ start(t) {
3722
+ return O(this, arguments, function* ({ endpoint: e }) {
3723
+ this.endpoint = e, this.MAX_IDLE_TIME = 6e4, this.timer = new zi(this, this.MAX_IDLE_TIME), this.sender.start(), this.recordingManager.start();
3724
+ });
3725
+ }
3726
+ handleTimeout() {
3727
+ this.recordingManager.recorder.stop && this.recordingManager.recorder.stop(), this.sender.send(), this.recordingManager.startRecorderWithStasher();
3728
+ }
3729
+ static handleCustomEvent(e) {
3730
+ ze.addCustomEvent(e, null);
3731
+ }
3732
+ }
3733
+ const xi = "0.0.4-beta.1";
3734
+ class Vt extends Sr {
3735
+ constructor(t) {
3736
+ super(he({ sdk: "web", sdkVersion: xi }, t));
3737
+ _(this, "lastPath", "");
3738
+ _(this, "debounceTimer", null);
3739
+ this.options = t, this.isServer() || (this.setGlobalProperties({ __referrer: document.referrer }), this.options.trackOutgoingLinks && this.trackOutgoingLinks(), this.options.trackScreenViews && this.trackScreenViews(), this.options.trackAttributes && this.trackAttributes(), this.options.enableRecording && xn() && this.startRecording());
3740
+ }
3741
+ debounce(t, n) {
3742
+ this.debounceTimer && clearTimeout(this.debounceTimer), this.debounceTimer = setTimeout(t, n);
3743
+ }
3744
+ isServer() {
3745
+ return typeof document == "undefined";
3746
+ }
3747
+ trackOutgoingLinks() {
3748
+ this.isServer() || document.addEventListener("click", (t) => {
3749
+ const n = t.target, r = n.closest("a");
3750
+ if (r && n) {
3751
+ const i = r.getAttribute("href");
3752
+ i != null && i.startsWith("http") && super.track("link_out", { href: i, text: r.innerText || r.getAttribute("title") || n.getAttribute("alt") || n.getAttribute("title") });
3753
+ }
3754
+ });
3755
+ }
3756
+ trackScreenViews() {
3757
+ if (this.isServer()) return;
3758
+ this.screenView();
3759
+ const t = history.pushState;
3760
+ history.pushState = function(...i) {
3761
+ const o = t.apply(this, i);
3762
+ return window.dispatchEvent(new Event("pushstate")), window.dispatchEvent(new Event("locationchange")), o;
3763
+ };
3764
+ const n = history.replaceState;
3765
+ history.replaceState = function(...i) {
3766
+ const o = n.apply(this, i);
3767
+ return window.dispatchEvent(new Event("replacestate")), window.dispatchEvent(new Event("locationchange")), o;
3768
+ }, window.addEventListener("popstate", function() {
3769
+ window.dispatchEvent(new Event("locationchange"));
3770
+ });
3771
+ const r = () => this.debounce(() => this.screenView(), 50);
3772
+ this.options.trackHashChanges ? window.addEventListener("hashchange", r) : window.addEventListener("locationchange", r);
3773
+ }
3774
+ trackAttributes() {
3775
+ this.isServer() || document.addEventListener("click", (t) => {
3776
+ const n = t.target, r = n.closest("button"), i = n.closest("a"), o = r != null && r.getAttribute("data-track") ? r : i != null && i.getAttribute("data-track") ? i : null;
3777
+ if (o) {
3778
+ const l = {};
3779
+ for (const h of o.attributes) h.name.startsWith("data-") && h.name !== "data-track" && (l[s = h.name.replace(/^data-/, ""), s.replace(/([-_][a-z])/gi, (d) => d.toUpperCase().replace("-", "").replace("_", ""))] = h.value);
3780
+ const c = o.getAttribute("data-track");
3781
+ c && super.track(c, l);
3782
+ }
3783
+ var s;
3784
+ });
3785
+ }
3786
+ startRecording() {
3787
+ this.isServer() || new Ei().start({ endpoint: "http://localhost:3337" });
3788
+ }
3789
+ screenView(t, n) {
3790
+ return O(this, null, function* () {
3791
+ if (this.isServer()) return;
3792
+ let r, i;
3793
+ if (typeof t == "string" ? (r = t, i = n) : (r = window.location.href, i = t), this.lastPath !== r) if (this.options.enableRecording) {
3794
+ const o = yield function() {
3795
+ return O(this, null, function* () {
3796
+ try {
3797
+ yield new Promise((l) => {
3798
+ document.readyState === "complete" ? l(null) : window.addEventListener("load", l);
3799
+ });
3800
+ const s = document.body.cloneNode(!0);
3801
+ return Zr(s), yield Dr(s);
3802
+ } catch (s) {
3803
+ console.error("An error occurred:", s);
3804
+ }
3805
+ });
3806
+ }();
3807
+ this.lastPath = r, wt(Vt.prototype, this, "track").call(this, "screen_view", xe(he({}, i != null ? i : {}), { __screenshot: o, __path: r, __title: document.title }));
3808
+ } else this.lastPath = r, wt(Vt.prototype, this, "track").call(this, "screen_view", xe(he({}, i != null ? i : {}), { __path: r, __title: document.title }));
3809
+ });
3810
+ }
3811
+ }
3812
+ export {
3813
+ Vt as Tracker,
3814
+ xi as VERSION
3815
+ };
3816
+ //# sourceMappingURL=index.js.map