@gemx-dev/clarity-js 0.8.89 → 0.8.90
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/clarity.extended.js +1 -1
- package/build/clarity.insight.js +1 -1
- package/build/clarity.js +69 -29
- package/build/clarity.min.js +1 -1
- package/build/clarity.module.js +69 -29
- package/build/clarity.performance.js +1 -1
- package/package.json +1 -1
- package/src/clarity.ts +1 -1
- package/src/core/version.ts +1 -1
- package/src/data/gemx.ts +6 -0
- package/src/data/upload.ts +16 -1
- package/src/interaction/index.ts +2 -2
- package/src/layout/gemx-snapshot.ts +28 -9
- package/src/layout/mutation.ts +5 -1
- package/types/data.d.ts +3 -1
- package/types/global.d.ts +1 -0
package/build/clarity.module.js
CHANGED
|
@@ -222,7 +222,7 @@ function stop$O() {
|
|
|
222
222
|
startTime = 0;
|
|
223
223
|
}
|
|
224
224
|
|
|
225
|
-
var version$1 = "0.8.
|
|
225
|
+
var version$1 = "0.8.90";
|
|
226
226
|
|
|
227
227
|
// tslint:disable: no-bitwise
|
|
228
228
|
function hash (input, precision) {
|
|
@@ -1315,17 +1315,19 @@ var cookie = /*#__PURE__*/Object.freeze({
|
|
|
1315
1315
|
});
|
|
1316
1316
|
|
|
1317
1317
|
var defaultConfig = {
|
|
1318
|
+
debug: false,
|
|
1318
1319
|
excludeClassNames: [],
|
|
1319
1320
|
ignoreMutationClassNames: [],
|
|
1320
1321
|
discoverTrigger: null,
|
|
1321
1322
|
};
|
|
1322
1323
|
var _config = __assign({}, defaultConfig);
|
|
1323
1324
|
function start$J() {
|
|
1324
|
-
var _a, _b, _c, _d, _e, _f;
|
|
1325
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
1325
1326
|
_config = {
|
|
1326
|
-
|
|
1327
|
-
|
|
1328
|
-
|
|
1327
|
+
debug: new URLSearchParams(window.location.search).has("gemx_debug") || ((_b = (_a = window === null || window === void 0 ? void 0 : window.GemXHeatmap) === null || _a === void 0 ? void 0 : _a.debug) !== null && _b !== void 0 ? _b : false),
|
|
1328
|
+
excludeClassNames: ((_d = (_c = window === null || window === void 0 ? void 0 : window.GemXHeatmap) === null || _c === void 0 ? void 0 : _c.excludeClassNames) !== null && _d !== void 0 ? _d : []),
|
|
1329
|
+
ignoreMutationClassNames: ((_f = (_e = window === null || window === void 0 ? void 0 : window.GemXHeatmap) === null || _e === void 0 ? void 0 : _e.ignoreMutationClassNames) !== null && _f !== void 0 ? _f : []),
|
|
1330
|
+
discoverTrigger: ((_h = (_g = window === null || window === void 0 ? void 0 : window.GemXHeatmap) === null || _g === void 0 ? void 0 : _g.discoverTrigger) !== null && _h !== void 0 ? _h : null),
|
|
1329
1331
|
};
|
|
1330
1332
|
}
|
|
1331
1333
|
function stop$G() {
|
|
@@ -1337,10 +1339,14 @@ function set(config) {
|
|
|
1337
1339
|
function get$2() {
|
|
1338
1340
|
return _config;
|
|
1339
1341
|
}
|
|
1342
|
+
function isDebug() {
|
|
1343
|
+
return _config.debug;
|
|
1344
|
+
}
|
|
1340
1345
|
|
|
1341
1346
|
var gemx = /*#__PURE__*/Object.freeze({
|
|
1342
1347
|
__proto__: null,
|
|
1343
1348
|
get: get$2,
|
|
1349
|
+
isDebug: isDebug,
|
|
1344
1350
|
set: set,
|
|
1345
1351
|
start: start$J,
|
|
1346
1352
|
stop: stop$G
|
|
@@ -2450,14 +2456,14 @@ var GEMX_OBSERVE = { allRoots: [scroll], documentOnly: [click] };
|
|
|
2450
2456
|
var ALL_OBSERVE = { allRoots: [scroll], documentOnly: [click, clipboard, pointer, input, selection, change, submit] };
|
|
2451
2457
|
var modules$2 = ALL$1;
|
|
2452
2458
|
function start$s() {
|
|
2453
|
-
modules$2 = config$3.mode === "gemx" ? GEMX$1 : ALL$1;
|
|
2459
|
+
modules$2 = (config$3 === null || config$3 === void 0 ? void 0 : config$3.mode) === "gemx" ? GEMX$1 : ALL$1;
|
|
2454
2460
|
modules$2.forEach(function (m) { return m.start(); });
|
|
2455
2461
|
}
|
|
2456
2462
|
function stop$q() {
|
|
2457
2463
|
modules$2.forEach(function (m) { return m.stop(); });
|
|
2458
2464
|
}
|
|
2459
2465
|
function observe$4(root) {
|
|
2460
|
-
var observeModules = config$3.mode === "gemx" ? GEMX_OBSERVE : ALL_OBSERVE;
|
|
2466
|
+
var observeModules = (config$3 === null || config$3 === void 0 ? void 0 : config$3.mode) === "gemx" ? GEMX_OBSERVE : ALL_OBSERVE;
|
|
2461
2467
|
observeModules.allRoots.forEach(function (m) { return m.observe(root); });
|
|
2462
2468
|
if (root.nodeType === Node.DOCUMENT_NODE) {
|
|
2463
2469
|
observeModules.documentOnly.forEach(function (m) { return m.observe(root); });
|
|
@@ -3152,7 +3158,7 @@ function handle$1(m) {
|
|
|
3152
3158
|
}
|
|
3153
3159
|
function processMutation(timer, mutation, instance, timestamp) {
|
|
3154
3160
|
return __awaiter(this, void 0, void 0, function () {
|
|
3155
|
-
var state$1, target, ignoredClasses, el_1, type;
|
|
3161
|
+
var state$1, target, ignoredClasses, isSnapshotProcessed, el_1, type;
|
|
3156
3162
|
return __generator(this, function (_a) {
|
|
3157
3163
|
switch (_a.label) {
|
|
3158
3164
|
case 0:
|
|
@@ -3168,7 +3174,8 @@ function processMutation(timer, mutation, instance, timestamp) {
|
|
|
3168
3174
|
}
|
|
3169
3175
|
target = mutation.target;
|
|
3170
3176
|
ignoredClasses = get$2().ignoreMutationClassNames;
|
|
3171
|
-
|
|
3177
|
+
isSnapshotProcessed = isActive();
|
|
3178
|
+
if (!isSnapshotProcessed && ignoredClasses.length > 0 && target instanceof Element) {
|
|
3172
3179
|
el_1 = target;
|
|
3173
3180
|
if (ignoredClasses.some(function (cls) { return el_1.classList.contains(cls); })) {
|
|
3174
3181
|
return [2 /*return*/];
|
|
@@ -5165,9 +5172,9 @@ function stop$g() {
|
|
|
5165
5172
|
function upload(final, type) {
|
|
5166
5173
|
if (final === void 0) { final = false; }
|
|
5167
5174
|
return __awaiter(this, void 0, void 0, function () {
|
|
5168
|
-
var isGemxSnapshot, sendPlaybackBytes, last, e, a, p, encoded, payload, zipped,
|
|
5169
|
-
return __generator(this, function (
|
|
5170
|
-
switch (
|
|
5175
|
+
var isGemxSnapshot, sendPlaybackBytes, last, isDebug$1, trackedEvents, eventSet, labels, _i, trackedEvents_1, _a, eventType, label, e, a, p, encoded, payload, zipped, _b;
|
|
5176
|
+
return __generator(this, function (_c) {
|
|
5177
|
+
switch (_c.label) {
|
|
5171
5178
|
case 0:
|
|
5172
5179
|
if (!active$1) {
|
|
5173
5180
|
return [2 /*return*/];
|
|
@@ -5188,6 +5195,21 @@ function upload(final, type) {
|
|
|
5188
5195
|
// In some cases envelope has null data because it's part of the shutdown process while there's one upload call queued which might introduce runtime error
|
|
5189
5196
|
if (!data$1)
|
|
5190
5197
|
return [2 /*return*/];
|
|
5198
|
+
isDebug$1 = isDebug();
|
|
5199
|
+
if (!type && isDebug$1) {
|
|
5200
|
+
trackedEvents = [
|
|
5201
|
+
[9 /* Event.Click */, "click"],
|
|
5202
|
+
[10 /* Event.Scroll */, "scroll"],
|
|
5203
|
+
];
|
|
5204
|
+
eventSet = new Set(analysis.map(function (item) { return JSON.parse(item)[1]; }));
|
|
5205
|
+
labels = [];
|
|
5206
|
+
for (_i = 0, trackedEvents_1 = trackedEvents; _i < trackedEvents_1.length; _i++) {
|
|
5207
|
+
_a = trackedEvents_1[_i], eventType = _a[0], label = _a[1];
|
|
5208
|
+
if (eventSet.has(eventType))
|
|
5209
|
+
labels.push(label);
|
|
5210
|
+
}
|
|
5211
|
+
type = labels.length > 0 ? labels.join("-") : undefined;
|
|
5212
|
+
}
|
|
5191
5213
|
e = JSON.stringify(envelope(last));
|
|
5192
5214
|
a = "[".concat(analysis.join(), "]");
|
|
5193
5215
|
p = sendPlaybackBytes ? "[".concat(playback.join(), "]") : "" /* Constant.Empty */;
|
|
@@ -5198,14 +5220,14 @@ function upload(final, type) {
|
|
|
5198
5220
|
encoded = { e: e, a: a, p: p };
|
|
5199
5221
|
payload = stringify(encoded);
|
|
5200
5222
|
if (!last) return [3 /*break*/, 1];
|
|
5201
|
-
|
|
5223
|
+
_b = null;
|
|
5202
5224
|
return [3 /*break*/, 3];
|
|
5203
5225
|
case 1: return [4 /*yield*/, compress(payload)];
|
|
5204
5226
|
case 2:
|
|
5205
|
-
|
|
5206
|
-
|
|
5227
|
+
_b = _c.sent();
|
|
5228
|
+
_c.label = 3;
|
|
5207
5229
|
case 3:
|
|
5208
|
-
zipped =
|
|
5230
|
+
zipped = _b;
|
|
5209
5231
|
sum(2 /* Metric.TotalBytes */, zipped ? zipped.length : payload.length);
|
|
5210
5232
|
send(payload, zipped, data$1.sequence, last, type);
|
|
5211
5233
|
// Clear out events now that payload has been dispatched
|
|
@@ -6688,28 +6710,46 @@ function fire() {
|
|
|
6688
6710
|
}
|
|
6689
6711
|
function schedule(trigger) {
|
|
6690
6712
|
triggered = false;
|
|
6691
|
-
var
|
|
6713
|
+
var windowExpired = false;
|
|
6714
|
+
var delayScheduled = false;
|
|
6715
|
+
var scheduleDelayedFire = function (type) {
|
|
6716
|
+
var _a;
|
|
6717
|
+
if (delayScheduled || windowExpired)
|
|
6718
|
+
return;
|
|
6719
|
+
delayScheduled = true;
|
|
6720
|
+
console.log("[GemX Snapshot] ".concat(type, " triggered:"));
|
|
6721
|
+
setTimeout(fire, (_a = trigger.delayMs) !== null && _a !== void 0 ? _a : 0);
|
|
6722
|
+
};
|
|
6723
|
+
if (trigger.activeTimeMs) {
|
|
6724
|
+
setTimeout(function () {
|
|
6725
|
+
windowExpired = true;
|
|
6726
|
+
onTrustedScroll(null);
|
|
6727
|
+
onTrustedClick(null);
|
|
6728
|
+
}, trigger.activeTimeMs);
|
|
6729
|
+
}
|
|
6692
6730
|
if (trigger.scrollDepthPercent) {
|
|
6693
6731
|
onTrustedScroll(function () {
|
|
6694
|
-
var
|
|
6695
|
-
var
|
|
6696
|
-
|
|
6697
|
-
|
|
6732
|
+
var docH = document.documentElement.scrollHeight;
|
|
6733
|
+
var vpH = window.innerHeight;
|
|
6734
|
+
var maxScrollY = docH - vpH;
|
|
6735
|
+
if (maxScrollY <= 0)
|
|
6736
|
+
return;
|
|
6737
|
+
var scrollY = "pageYOffset" in window ? Math.round(window.pageYOffset) : Math.round(document.documentElement.scrollTop);
|
|
6738
|
+
var pct = Math.min(100, Math.round(scrollY / maxScrollY * 100));
|
|
6739
|
+
if (pct >= trigger.scrollDepthPercent) {
|
|
6740
|
+
scheduleDelayedFire('scroll');
|
|
6698
6741
|
}
|
|
6699
6742
|
});
|
|
6700
6743
|
}
|
|
6701
6744
|
if (trigger.clickCount) {
|
|
6745
|
+
var clickCount_1 = 0;
|
|
6702
6746
|
onTrustedClick(function () {
|
|
6703
|
-
|
|
6704
|
-
if (
|
|
6705
|
-
|
|
6747
|
+
clickCount_1++;
|
|
6748
|
+
if (clickCount_1 >= trigger.clickCount) {
|
|
6749
|
+
scheduleDelayedFire('click');
|
|
6706
6750
|
}
|
|
6707
6751
|
});
|
|
6708
6752
|
}
|
|
6709
|
-
if (trigger.activeTimeMs) {
|
|
6710
|
-
setTimeout(fire, trigger.activeTimeMs);
|
|
6711
|
-
}
|
|
6712
|
-
// maxPlaybackBytes trigger is handled via gemxUpload.start() callback above
|
|
6713
6753
|
}
|
|
6714
6754
|
function flush() {
|
|
6715
6755
|
inject(drain());
|
|
@@ -7046,7 +7086,7 @@ var ALL = [diagnostic, layout, interaction, performance$1, dynamic];
|
|
|
7046
7086
|
var modules = ALL;
|
|
7047
7087
|
function start(config$1) {
|
|
7048
7088
|
if (config$1 === void 0) { config$1 = null; }
|
|
7049
|
-
modules = config$1.mode === "gemx" ? GEMX : ALL;
|
|
7089
|
+
modules = (config$1 === null || config$1 === void 0 ? void 0 : config$1.mode) === "gemx" ? GEMX : ALL;
|
|
7050
7090
|
// Check that browser supports required APIs and we do not attempt to start Clarity multiple times
|
|
7051
7091
|
if (check()) {
|
|
7052
7092
|
config(config$1);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(){"use strict";var t=Object.freeze({__proto__:null,get flush(){return ae},get inject(){return oe},get queue(){return re},get start(){return ne},get stop(){return ie},get track(){return Zt}}),e=Object.freeze({__proto__:null,get check(){return pe},get compute(){return ge},get data(){return Ft},get start(){return fe},get stop(){return ve},get trigger(){return he}}),n=Object.freeze({__proto__:null,get compute(){return ke},get data(){return me},get log(){return Se},get reset(){return Ie},get start(){return be},get stop(){return _e},get updates(){return ye}}),r=Object.freeze({__proto__:null,get compute(){return Pe},get config(){return Ce},get consent(){return Ne},get data(){return Ee},get start(){return Te},get stop(){return xe},get trackConsentv2(){return ze}}),a=Object.freeze({__proto__:null,get callback(){return Ke},get callbacks(){return qe},get clear(){return Fe},get consent(){return Ye},get consentv2(){return We},get data(){return Ae},get electron(){return De},get id(){return Ve},get metadata(){return Be},get save(){return Qe},get shortid(){return tn},get start(){return Le},get stop(){return Ge}}),o=Object.freeze({__proto__:null,get data(){return an},get envelope(){return cn},get start(){return on},get stop(){return un}}),i={projectId:null,delay:1e3,lean:!1,lite:!1,track:!0,content:!0,drop:[],mask:[],unmask:[],regions:[],cookies:[],fraud:!0,checksum:[],report:null,upload:null,fallback:null,upgrade:null,action:null,dob:null,delayDom:!1,throttleDom:!0,conversions:!1,includeSubdomains:!0,modules:[],diagnostics:!1,externalSession:!1,userId:null,sessionId:null,mode:"gemx"};function u(t){return window.Zone&&"__symbol__"in window.Zone?window.Zone.__symbol__(t):t}var c=0;function s(){return performance.now()+performance.timeOrigin}function l(t){void 0===t&&(t=null);var e=0===c?s():c,n=t&&t.timeStamp>0?t.timeStamp:performance.now(),r=t&&t.view?t.view.performance.timeOrigin:performance.timeOrigin;return Math.max(Math.round(n+r-e),0)}var d="0.8.89";var f=/\S/gi,p=255,h=!0,g=null,v=null,m=null;function y(t,e,n,r,a){if(void 0===r&&(r=!1),t){if("input"==e&&("checkbox"===a||"radio"===a))return t;switch(n){case 0:return t;case 1:switch(e){case"*T":case"value":case"placeholder":case"click":return function(t){var e=-1,n=0,r=!1,a=!1,o=!1,i=null;I();for(var u=0;u<t.length;u++){var c=t.charCodeAt(u);if(r=r||c>=48&&c<=57,a=a||64===c,o=9===c||10===c||13===c||32===c,0===u||u===t.length-1||o){if(r||a){null===i&&(i=t.split(""));var s=t.substring(e+1,o?u:u+1);s=h&&null!==m?s.match(m)?s:S(s,"▪","▫"):_(s),i.splice(e+1-n,s.length,s),n+=s.length-1}o&&(r=!1,a=!1,e=u)}}return i?i.join(""):t}(t);case"input":case"change":return k(t)}return t;case 2:case 3:switch(e){case"*T":case"data-":return r?b(t):_(t);case"src":case"srcset":case"title":case"alt":case"href":case"xlink:href":return 3===n?(null==t?void 0:t.startsWith("blob:"))?"blob:":"":t;case"value":case"click":case"input":case"change":return k(t);case"placeholder":return _(t)}break;case 4:switch(e){case"*T":case"data-":return r?b(t):_(t);case"value":case"input":case"click":case"change":return Array(5).join("•");case"checksum":return""}break;case 5:switch(e){case"*T":case"data-":return S(t,"▪","▫");case"value":case"input":case"click":case"change":return Array(5).join("•");case"checksum":case"src":case"srcset":case"alt":case"title":return""}}}return t}function w(t,e,n){void 0===e&&(e=!1),void 0===n&&(n=!1);var r=t;if(e)r="".concat("https://").concat("Electron");else{var a=i.drop;if(a&&a.length>0&&t&&t.indexOf("?")>0){var o=t.split("?"),u=o[0],c=o[1];r=u+"?"+c.split("&").map((function(t){return a.some((function(e){return 0===t.indexOf("".concat(e,"="))}))?"".concat(t.split("=")[0],"=").concat("*na*"):t})).join("&")}}return n&&(r=r.substring(0,p)),r}function b(t){var e=t.trim();if(e.length>0){var n=e[0],r=t.indexOf(n),a=t.substr(0,r),o=t.substr(r+e.length);return"".concat(a).concat(e.length.toString(36)).concat(o)}return t}function _(t){return t.replace(f,"•")}function S(t,e,n){return I(),t?t.replace(v,e).replace(g,n):t}function k(t){for(var e=5*(Math.floor(t.length/5)+1),n="",r=0;r<e;r++)n+=r>0&&r%5==0?" ":"•";return n}function I(){if(h&&null===g)try{g=new RegExp("\\p{N}","gu"),v=new RegExp("\\p{L}","gu"),m=new RegExp("\\p{Sc}","gu")}catch(t){h=!1}}var E=[],O=null;function T(){}var x=[];function M(){}function C(){}function N(){}function j(){}function z(){}var P=Object.freeze({__proto__:null,checkDocumentStyles:function(t){},compute:function(){},data:O,event:j,hashText:M,keys:x,log:T,observe:function(){},register:z,reset:function(){},sheetAdoptionState:[],sheetUpdateState:[],start:function(){},state:E,stop:function(){},track:N,trigger:C}),A=null;function q(t,e){jn()&&t&&"string"==typeof t&&t.length<255&&(A=e&&"string"==typeof e&&e.length<255?{key:t,value:e}:{value:t},de(24))}var D,R=null,X=null;function H(t){t in R||(R[t]=0),t in X||(X[t]=0),R[t]++,X[t]++}function L(t,e){null!==e&&(t in R||(R[t]=0),t in X||(X[t]=0),R[t]+=e,X[t]+=e)}function U(t,e){null!==e&&!1===isNaN(e)&&(t in R||(R[t]=0),(e>R[t]||0===R[t])&&(X[t]=e,R[t]=e))}function G(t,e,n){return window.setTimeout(dn(t),e,n)}function B(t){return window.clearTimeout(t)}var V=0,Y=0,W=null;function J(){W&&B(W),W=G(Z,Y),V=l()}function Z(){var t=l();D={gap:t-V},de(25),D.gap<3e5?W=G(Z,Y):Mn&&(q("clarityGemX","suspend"),rr(),["mousemove","touchstart"].forEach((function(t){return pn(document,t,zn)})),["resize","scroll","pageshow"].forEach((function(t){return pn(window,t,zn)})))}var F=Object.freeze({__proto__:null,get data(){return D},reset:J,start:function(){Y=6e4,V=0},stop:function(){B(W),V=0,Y=0}}),K=null;function Q(t){jn()&&i.lean&&(i.lean=!1,K={key:t},Ke(),Qe(),i.upgrade&&i.upgrade(t),de(3),i.lite)}var $=Object.freeze({__proto__:null,get data(){return K},start:function(){!i.lean&&i.upgrade&&i.upgrade("Config"),K=null},stop:function(){K=null},upgrade:Q}),tt=function(){return tt=Object.assign||function(t){for(var e,n=1,r=arguments.length;n<r;n++)for(var a in e=arguments[n])Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t},tt.apply(this,arguments)};function et(t,e,n,r){return new(n||(n=Promise))((function(a,o){function i(t){try{c(r.next(t))}catch(t){o(t)}}function u(t){try{c(r.throw(t))}catch(t){o(t)}}function c(t){var e;t.done?a(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(i,u)}c((r=r.apply(t,e||[])).next())}))}function nt(t,e){var n,r,a,o,i={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return o={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function u(u){return function(c){return function(u){if(n)throw new TypeError("Generator is already executing.");for(;o&&(o=0,u[0]&&(i=0)),i;)try{if(n=1,r&&(a=2&u[0]?r.return:u[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,u[1])).done)return a;switch(r=0,a&&(u=[2&u[0],a.value]),u[0]){case 0:case 1:a=u;break;case 4:return i.label++,{value:u[1],done:!1};case 5:i.label++,r=u[1],u=[0];continue;case 7:u=i.ops.pop(),i.trys.pop();continue;default:if(!(a=i.trys,(a=a.length>0&&a[a.length-1])||6!==u[0]&&2!==u[0])){i=0;continue}if(3===u[0]&&(!a||u[1]>a[0]&&u[1]<a[3])){i.label=u[1];break}if(6===u[0]&&i.label<a[1]){i.label=a[1],a=u;break}if(a&&i.label<a[2]){i.label=a[2],i.ops.push(u);break}a[2]&&i.ops.pop(),i.trys.pop();continue}u=e.call(t,i)}catch(t){u=[6,t],r=0}finally{n=a=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}([u,c])}}}var rt=null;function at(t,e){it(t,"string"==typeof e?[e]:e)}function ot(t,e,n,r){return void 0===e&&(e=null),void 0===n&&(n=null),void 0===r&&(r=null),et(this,void 0,void 0,(function(){var a,o;return nt(this,(function(i){switch(i.label){case 0:return o={},[4,st(t)];case 1:return o.userId=i.sent(),o.userHint=r||((u=t)&&u.length>=5?"".concat(u.substring(0,2)).concat(S(u.substring(2),"*","*")):S(u,"*","*")),it("userId",[(a=o).userId]),it("userHint",[a.userHint]),it("userType",[lt(t)]),e&&(it("sessionId",[e]),a.sessionId=e),n&&(it("pageId",[n]),a.pageId=n),[2,a]}var u}))}))}function it(t,e){if(jn()&&t&&e&&"string"==typeof t&&t.length<255){for(var n=(t in rt?rt[t]:[]),r=0;r<e.length;r++)"string"==typeof e[r]&&e[r].length<255&&n.push(e[r]);rt[t]=n}}function ut(){de(34)}function ct(){rt={}}function st(t){return et(this,void 0,void 0,(function(){var e;return nt(this,(function(n){switch(n.label){case 0:return n.trys.push([0,4,,5]),crypto&&t?[4,crypto.subtle.digest("SHA-256",(new TextEncoder).encode(t))]:[3,2];case 1:return e=n.sent(),[2,Array.prototype.map.call(new Uint8Array(e),(function(t){return("00"+t.toString(16)).slice(-2)})).join("")];case 2:return[2,""];case 3:return[3,5];case 4:return n.sent(),[2,""];case 5:return[2]}}))}))}function lt(t){return t&&t.indexOf("@")>0?"email":"string"}var dt=Object.freeze({__proto__:null,compute:ut,get data(){return rt},identify:ot,reset:ct,set:at,start:function(){ct()},stop:function(){ct()}}),ft="CompressionStream"in window;function pt(t){return et(this,void 0,void 0,(function(){var e,n;return nt(this,(function(r){switch(r.label){case 0:return r.trys.push([0,3,,4]),ft?(e=new ReadableStream({start:function(e){return et(this,void 0,void 0,(function(){return nt(this,(function(n){return e.enqueue(t),e.close(),[2]}))}))}}).pipeThrough(new TextEncoderStream).pipeThrough(new window.CompressionStream("gzip")),n=Uint8Array.bind,[4,ht(e)]):[3,2];case 1:return[2,new(n.apply(Uint8Array,[void 0,r.sent()]))];case 2:return[3,4];case 3:return r.sent(),[3,4];case 4:return[2,null]}}))}))}function ht(t){return et(this,void 0,void 0,(function(){var e,n,r,a,o;return nt(this,(function(i){switch(i.label){case 0:e=t.getReader(),n=[],r=!1,a=[],i.label=1;case 1:return r?[3,3]:[4,e.read()];case 2:return o=i.sent(),r=o.done,a=o.value,r?[2,n]:(n.push.apply(n,a),[3,1]);case 3:return[2,n]}}))}))}function gt(t,e){try{return!!t[e]}catch(t){return!1}}function vt(t){try{var e=decodeURIComponent(t);return[e!=t,e]}catch(t){}return[!1,t]}var mt=null,yt="^";function wt(t,e){var n;if(void 0===e&&(e=!1),gt(document,"cookie")){var r=document.cookie.split(";");if(r)for(var a=0;a<r.length;a++){var o=r[a].split("=");if(o.length>1&&o[0]&&o[0].trim()===t){for(var i=vt(o[1]),u=i[0],c=i[1];u;)u=(n=vt(c))[0],c=n[1];return e?c.endsWith("".concat("~","1"))?c.substring(0,c.length-2):null:c}}}return null}function bt(t,e,n){if((i.track||""==e)&&(navigator&&navigator.cookieEnabled||gt(document,"cookie"))){var r=function(t){return encodeURIComponent(t)}(e),a=new Date;a.setDate(a.getDate()+n);var o=a?"expires="+a.toUTCString():"",u="".concat(t,"=").concat(r).concat(";").concat(o).concat(";path=/");try{if(null===mt){for(var c=location.hostname?location.hostname.split("."):[],s=c.length-1;s>=0;s--)if(mt=".".concat(c[s]).concat(mt||""),s<c.length-1&&(document.cookie="".concat(u).concat(";").concat("domain=").concat(mt),wt(t)===e))return;mt=""}}catch(t){mt=""}document.cookie=mt?"".concat(u).concat(";").concat("domain=").concat(mt):u}}var _t=Object.freeze({__proto__:null,COOKIE_SEP:yt,getCookie:wt,setCookie:bt,start:function(){mt=null},stop:function(){mt=null}}),St={excludeClassNames:[],ignoreMutationClassNames:[],discoverTrigger:null},kt=tt({},St);var It=Object.freeze({__proto__:null,get:function(){return kt},set:function(t){kt=tt(tt({},kt),t)},start:function(){var t,e,n,r,a,o;kt={excludeClassNames:null!==(e=null===(t=null===window||void 0===window?void 0:window.GemXHeatmap)||void 0===t?void 0:t.excludeClassNames)&&void 0!==e?e:[],ignoreMutationClassNames:null!==(r=null===(n=null===window||void 0===window?void 0:window.GemXHeatmap)||void 0===n?void 0:n.ignoreMutationClassNames)&&void 0!==r?r:[],discoverTrigger:null!==(o=null===(a=null===window||void 0===window?void 0:window.GemXHeatmap)||void 0===a?void 0:a.discoverTrigger)&&void 0!==o?o:null}},stop:function(){kt=tt({},St)}}),Et=[],Ot=0,Tt=!1,xt=0,Mt=null;function Ct(){return Tt}function Nt(t,e){Et.push(t),Ot+=e,xt>0&&Ot>=xt&&Mt&&Mt()}var jt=null;function zt(t){try{if(!jt)return;var e=function(t){try{return JSON.parse(t)}catch(t){return[]}}(t);e.forEach((function(t){jt(t)}))}catch(t){}}var Pt=[It,Object.freeze({__proto__:null,config:function(t,e){return xt=null!=t?t:0,Mt=null!=e?e:null,!0},drain:function(){Tt=!1;var t=Et;return Et=[],Ot=0,t},getBytes:function(){return Ot},hold:Nt,isActive:Ct,start:function(){Et=[],Ot=0,Tt=!0},stop:function(){Et=[],Ot=0,Tt=!1,xt=0,Mt=null}}),P,n,dt,e,P,_t,r,a,o,t,F,$,P];function At(){R={},X={},H(5),Pt.forEach((function(t){return dn(t.start)()}))}function qt(){Pt.slice().reverse().forEach((function(t){return dn(t.stop)()})),R={},X={}}function Dt(){ge(),Pe(),"gemx"!==i.mode&&(ut(),ke(),de(0))}function Rt(t,e,n,r){return"href"===t&&"LINK"===r?"".concat(t,"=").concat(e):"".concat(t,"=").concat(y(e,0===t.indexOf("data-")?"data-":t,n))}var Xt=[],Ht=1,Lt=null;function Ut(){Xt=[],function(t){var e=[t];for(;e.length>0;){for(var n=null,r=null,a=null,o=e.shift(),i=o.firstChild,u=o.parentElement?o.parentElement:o.parentNode?o.parentNode:null;i;)e.push(i),i=i.nextSibling;switch(o.nodeType){case Node.DOCUMENT_TYPE_NODE:var c=o;r="*D",n={name:c.name,publicId:c.publicId,systemId:c.systemId};break;case Node.TEXT_NODE:a=o.nodeValue,r=Lt.get(u)?"*T":r;break;case Node.ELEMENT_NODE:var s=o;n=Gt(s),r=["NOSCRIPT","SCRIPT","STYLE"].indexOf(s.tagName)<0?s.tagName:r}Bt(o,u,{tag:r,attributes:n,value:a})}}(document),function(t){et(this,void 0,void 0,(function(){var e,n,r,a,o,i,u,c,s,d,f,p,h;return nt(this,(function(g){switch(e=l(),n=[e,t],t){case 8:r=O,n.push(r.width),n.push(r.height),r.width,r.height,re(n);break;case 43:if((a=Xt).length>0){for(o=0,i=a;o<i.length;o++)for(u=i[o],c=u.metadata.privacy,s=u.data,d=0,f=["tag","attributes","value"];d<f.length;d++)if(s[p=f[d]])switch(p){case"tag":n.push(u.id),u.parent&&n.push(u.parent),u.previous&&n.push(u.previous),n.push(s[p]);break;case"attributes":for(h in s[p])void 0!==s[p][h]&&n.push(Rt(h,s[p][h],c,s.tag));break;case"value":n.push(y(s[p],s.tag,c))}re(function(t){for(var e=[],n={},r=0,a=null,o=0;o<t.length;o++)if("string"==typeof t[o]){var i=t[o],u=n[i]||-1;u>=0?a?a.push(u):(a=[u],e.push(a),r++):(a=null,e.push(i),n[i]=r++)}else a=null,e.push(t[o]),r++;return e}(n),!0)}}return[2]}))}))}(43)}function Gt(t){var e={},n=t.attributes;if(n&&n.length>0)for(var r=0;r<n.length;r++)e[n[r].name]=n[r].value;return e}function Bt(t,e,n){if(t&&n&&n.tag){var r=function(t){return null===t?null:Lt.has(t)?Lt.get(t):(Lt.set(t,Ht),Ht++)}(t),a=e?Lt.get(e):null,o=t.previousSibling?Lt.get(t.previousSibling):null;Xt.push({id:r,parent:a,previous:o,children:[],data:n,selector:null,hash:null,region:null,metadata:{active:!0,suspend:!1,privacy:5,position:null,fraud:null,size:null}})}}var Vt,Yt,Wt,Jt,Zt,Ft,Kt=0,Qt=0,$t=null,te=0,ee=!1;function ne(){Jt=!0,Kt=0,Qt=0,ee=!1,te=0,Vt=[],Yt=[],Wt={},Zt=null}function re(t,e){if(void 0===e&&(e=!0),Jt){var n=l(),r=t.length>1?t[1]:null,a=JSON.stringify(t);switch(i.lean?!ee&&Qt+a.length>10485760&&(ee=!0):ee=!1,r){case 5:if(ee)break;if(Ct()){Nt(t,a.length);break}Kt+=a.length;case 37:case 6:case 43:case 45:case 46:case 44:case 51:if(ee)break;Ct()&&Nt(t,a.length),Qt+=a.length,Vt.push(a);break;default:Yt.push(a)}H(25);var o=function(){var t=!1===i.lean&&Kt>0?100:an.sequence*i.delay;return"string"==typeof i.upload?Math.max(Math.min(t,3e4),100):i.delay}();n-te>2*o&&(B($t),$t=null),e&&null===$t&&(25!==r&&J(),$t=G(ue,o),te=n,pe(Qt))}}function ae(t){Jt&&(B($t),$t=null,ue(!1,t))}function oe(t){for(var e=0,n=t;e<n.length;e++){var r=n[e],a=JSON.stringify(r);Kt+=a.length,Qt+=a.length,Vt.push(a)}}function ie(){B($t),ue(!0),Kt=0,Qt=0,ee=!1,te=0,Vt=[],Yt=[],Wt={},Zt=null,Jt=!1}function ue(t,e){return void 0===t&&(t=!1),et(this,void 0,void 0,(function(){var n,r,a,o,u,c,s,l;return nt(this,(function(d){switch(d.label){case 0:return Jt?($t=null,(n=("gemx-snapshot"===e||!1===i.lean)&&Qt>0&&(Qt<1048576||an.sequence>0))&&U(1,1),Dt(),r=!0===t,an?(a=JSON.stringify(cn(r)),o="[".concat(Yt.join(),"]"),u=n?"[".concat(Vt.join(),"]"):"",r&&u.length>0&&a.length+o.length+u.length>65536&&(u=""),c=function(t){return t.p.length>0?'{"e":'.concat(t.e,',"a":').concat(t.a,',"p":').concat(t.p,"}"):'{"e":'.concat(t.e,',"a":').concat(t.a,"}")}({e:a,a:o,p:u}),r?(l=null,[3,3]):[3,1]):[2]):[2];case 1:return[4,pt(c)];case 2:l=d.sent(),d.label=3;case 3:return L(2,(s=l)?s.length:c.length),ce(c,s,an.sequence,r,e),Yt=[],n&&(Vt=[],Qt=0,Kt=0,ee=!1),[2]}}))}))}function ce(t,e,n,r,a){if(void 0===r&&(r=!1),"string"==typeof i.upload){var o=i.upload,u=!1;if(r&&navigator&&navigator.sendBeacon)try{(u=navigator.sendBeacon.bind(navigator)(o,t))&&le(n)}catch(t){}if(!1===u){n in Wt?Wt[n].attempts++:Wt[n]={data:t,attempts:1};var c=new XMLHttpRequest;c.open("POST",o,!0),c.timeout=15e3,c.ontimeout=function(){ln(new Error("".concat("Timeout"," : ").concat(o)))},null!==n&&(c.onreadystatechange=function(){dn(se)(c,n)}),c.withCredentials=!0,e?(c.setRequestHeader("Accept","application/x-clarity-gzip"),c.send(e)):c.send(t)}}else if(i.upload){(0,i.upload)(t,a),le(n)}}function se(t,e){var n=Wt[e];t&&4===t.readyState&&n&&((t.status<200||t.status>208)&&n.attempts<=1?t.status>=400&&t.status<500?he(6):(0===t.status&&(i.upload=i.fallback?i.fallback:i.upload),Zt={sequence:e,attempts:n.attempts,status:t.status},de(2),ce(n.data,null,e)):(Zt={sequence:e,attempts:n.attempts,status:t.status},n.attempts>1&&de(2),200===t.status&&t.responseText&&function(t){for(var e=t&&t.length>0?t.split("\n"):[],n=0,r=e;n<r.length;n++){var a=r[n],o=a&&a.length>0?a.split(/ (.*)/):[""];switch(o[0]){case"END":he(6);break;case"UPGRADE":Q("Auto");break;case"ACTION":i.action&&o.length>1&&i.action(o[1]);break;case"EXTRACT":case"MODULE":o.length>1&&o[1];break;case"SIGNAL":o.length>1&&zt(o[1]);break;case"SNAPSHOT":i.lean=!1,Ut()}}}(t.responseText),0===t.status&&(ce(n.data,null,e,!0),he(3)),t.status>=200&&t.status<=208&&le(e),delete Wt[e]))}function le(t){1===t&&(Qe(),Ke())}function de(t){var e=[l(),t];switch(t){case 4:var n=E;n&&n.data&&((e=[n.time,n.event]).push(n.data.visible),e.push(n.data.docWidth),e.push(n.data.docHeight),e.push(n.data.screenWidth),e.push(n.data.screenHeight),e.push(n.data.scrollX),e.push(n.data.scrollY),e.push(n.data.pointerX),e.push(n.data.pointerY),e.push(n.data.activityTime),e.push(n.data.scrollTime),e.push(n.data.pointerTime),e.push(n.data.moveX),e.push(n.data.moveY),e.push(n.data.moveTime),e.push(n.data.downX),e.push(n.data.downY),e.push(n.data.downTime),e.push(n.data.upX),e.push(n.data.upY),e.push(n.data.upTime),e.push(n.data.pointerPrevX),e.push(n.data.pointerPrevY),e.push(n.data.pointerPrevTime),e.push(n.data.modules),re(e,!1));break;case 25:e.push(D.gap),re(e);break;case 35:e.push(Ft.check),re(e,!1);break;case 3:e.push(K.key),re(e);break;case 2:e.push(Zt.sequence),e.push(Zt.attempts),e.push(Zt.status),re(e,!1);break;case 24:A.key&&e.push(A.key),e.push(A.value),re(e);break;case 34:var r=Object.keys(rt);if(r.length>0){for(var a=0,o=r;a<o.length;a++){var i=o[a];e.push(i),e.push(rt[i])}ct(),re(e,!1)}break;case 0:var u=Object.keys(X);if(u.length>0){for(var c=0,s=u;c<s.length;c++){var d=s[c],f=parseInt(d,10);e.push(f),e.push(Math.round(X[d]))}X={},re(e,!1)}break;case 1:var p=Object.keys(ye);if(p.length>0){for(var h=0,g=p;h<g.length;h++){var v=g[h];f=parseInt(v,10);e.push(f),e.push(ye[v])}Ie(),re(e,!1)}break;case 36:var m=Object.keys(O);if(m.length>0){for(var y=0,w=m;y<w.length;y++){var b=w[y];f=parseInt(b,10);e.push(f),e.push([].concat.apply([],O[b]))}re(e,!1)}break;case 40:x.forEach((function(t){e.push(t);var n=[];for(var r in O[t]){var a=parseInt(r,10);n.push(a),n.push(O[t][r])}e.push(n)})),re(e,!1);break;case 47:e.push(Ee.source),e.push(Ee.ad_Storage),e.push(Ee.analytics_Storage),re(e,!1)}}function fe(){Ft={check:0}}function pe(t){if(0===Ft.check){var e=Ft.check;e=an.sequence>=128?1:e,e=an.pageNum>=128?7:e,e=l()>72e5?2:e,(e=t>10485760?2:e)!==Ft.check&&he(e)}}function he(t){Ft.check=t,5!==t&&(Fe(),rr())}function ge(){0!==Ft.check&&de(35)}function ve(){Ft=null}var me=null,ye=null,we=!1;function be(){me={},ye={},we=!1}function _e(){me={},ye={},we=!1}function Se(t,e){if(e&&(e="".concat(e),t in me||(me[t]=[]),me[t].indexOf(e)<0)){if(me[t].length>128)return void(we||(we=!0,he(5)));me[t].push(e),t in ye||(ye[t]=[]),ye[t].push(e)}}function ke(){de(1)}function Ie(){ye={},we=!1}var Ee=null,Oe=!0;function Te(){var t,e=null===(t=window.google_tag_data)||void 0===t?void 0:t.ics;Oe=!0,(null==e?void 0:e.addListener)&&e.addListener(["ad_storage","analytics_storage"],Me)}function xe(){Oe=!0}function Me(){var t,e=null===(t=window.google_tag_data)||void 0===t?void 0:t.ics;if(null==e?void 0:e.getConsentState)try{var n=e.getConsentState("analytics_storage");We(function(t){var e={source:2,ad_Storage:1===t.ad_Storage?"granted":"denied",analytics_Storage:1===t.analytics_Storage?"granted":"denied"};return e}({ad_Storage:e.getConsentState("ad_storage"),analytics_Storage:n}))}catch(t){return}}function Ce(t){je(t.analytics_Storage?1:0),Ee=t}function Ne(){je(2)}function je(t){Se(36,t.toString())}function ze(t){Ee=t,de(47)}function Pe(){var t;if(Oe&&(de(47),Oe=!1,!i.track)){var e=null===(t=window.google_tag_data)||void 0===t?void 0:t.ics;(null==e?void 0:e.usedUpdate)&&Me()}}var Ae=null,qe=[],De=0,Re=null,Xe=!1,He={source:7,ad_Storage:"denied",analytics_Storage:"denied"};function Le(){var t,e,n,r=navigator&&"userAgent"in navigator?navigator.userAgent:"",a=null!==(n="undefined"!=typeof Intl&&(null===(e=null===(t=null===Intl||void 0===Intl?void 0:Intl.DateTimeFormat())||void 0===t?void 0:t.resolvedOptions())||void 0===e?void 0:e.timeZone))&&void 0!==n?n:"",o=(new Date).getTimezoneOffset().toString(),u=window.location.ancestorOrigins?Array.from(window.location.ancestorOrigins).toString():"",c=document&&document.title?document.title:"";De=r.indexOf("Electron")>0?1:0;var s=function(){var t={session:tn(),ts:Math.round(Date.now()),count:1,upgrade:null,upload:""},e=wt("_clsk",!i.includeSubdomains);if(e){var n=e.includes("^")?e.split("^"):e.split("|");n.length>=5&&t.ts-en(n[1])<18e5&&(t.session=n[0],t.count=en(n[2])+1,t.upgrade=en(n[3]),t.upload=n.length>=6?"".concat("https://").concat(n[5],"/").concat(n[4]):"".concat("https://").concat(n[4]))}return t}(),l=nn(),d=i.projectId||function(t,e){void 0===e&&(e=null);for(var n,r=5381,a=r,o=0;o<t.length;o+=2)r=(r<<5)+r^t.charCodeAt(o),o+1<t.length&&(a=(a<<5)+a^t.charCodeAt(o+1));return n=Math.abs(r+11579*a),(e?n%Math.pow(2,e):n).toString(36)}(location.host),f=i.externalSession&&i.userId?i.userId:l.id,p=i.externalSession&&i.sessionId?i.sessionId:s.session;Ae={projectId:d,userId:f,sessionId:p,pageNum:s.count},i.lean=i.track&&null!==s.upgrade?0===s.upgrade:i.lean,i.upload=i.track&&"string"==typeof i.upload&&s.upload&&s.upload.length>"https://".length?s.upload:i.upload,Se(0,r),Se(3,c),Se(1,w(location.href,!!De)),Se(2,document.referrer),Se(15,function(){var t=tn();if(i.track&>(window,"sessionStorage")){var e=sessionStorage.getItem("_cltk");t=e||t,sessionStorage.setItem("_cltk",t)}return t}()),Se(16,document.documentElement.lang),Se(17,document.dir),Se(26,"".concat(window.devicePixelRatio)),Se(28,l.dob.toString()),Se(29,l.version.toString()),Se(33,u),Se(34,a),Se(35,o),U(0,s.ts),U(1,0),U(35,De);var h,g=null===window||void 0===window?void 0:window.Zone;g&&"__symbol__"in g&&U(39,1),navigator&&(Se(9,navigator.language),U(33,navigator.hardwareConcurrency),U(32,navigator.maxTouchPoints),U(34,Math.round(navigator.deviceMemory)),(h=navigator.userAgentData)&&h.getHighEntropyValues?h.getHighEntropyValues(["model","platform","platformVersion","uaFullVersion"]).then((function(t){var e;Se(22,t.platform),Se(23,t.platformVersion),null===(e=t.brands)||void 0===e||e.forEach((function(t){Se(24,t.name+"~"+t.version)})),Se(25,t.model),U(27,t.mobile?1:0)})):Se(22,navigator.platform)),screen&&(U(14,Math.round(screen.width)),U(15,Math.round(screen.height)),U(16,Math.round(screen.colorDepth))),null===Re&&(Re={source:l.consent?6:0,ad_Storage:i.track?"granted":"denied",analytics_Storage:i.track?"granted":"denied"}),Ue(),Ce(Je(Re)),i.externalSession||$e(l)}function Ue(){if(!Xe&&"granted"===(null==Re?void 0:Re.analytics_Storage)&&"granted"===(null==Re?void 0:Re.ad_Storage)){for(var t=0,e=i.cookies;t<e.length;t++){var n=e[t],r=wt(n);r&&at(n,r)}Xe=!0}}function Ge(){Ae=null,Xe=!1,qe.forEach((function(t){t.called=!1}))}function Be(t,e,n,r){void 0===e&&(e=!0),void 0===n&&(n=!1),void 0===r&&(r=!1);var a=i.lean?0:1,o=!1;Ae&&(a||!1===e)&&(t(Ae,!i.lean,r?Re:void 0),o=!0),!n&&o||qe.push({callback:t,wait:e,recall:n,called:o,consentInfo:r})}function Ve(){return Ae?[Ae.userId,Ae.sessionId,Ae.pageNum].join("."):""}function Ye(t){void 0===t&&(t=!0),We(t?{source:4,ad_Storage:"granted",analytics_Storage:"granted"}:{source:4,ad_Storage:"denied",analytics_Storage:"denied"})}function We(t,e){var n;if(void 0===t&&(t=He),void 0===e&&(e=5),jn()){var r={source:null!==(n=t.source)&&void 0!==n?n:e,ad_Storage:Ze(t.ad_Storage,null==Re?void 0:Re.ad_Storage),analytics_Storage:Ze(t.analytics_Storage,null==Re?void 0:Re.analytics_Storage)};if(Re&&r.ad_Storage===Re.ad_Storage&&r.analytics_Storage===Re.analytics_Storage)return Re.source=r.source,ze(Je(Re)),void Ne();Re=r,Ke(!0);var a=Je(Re);if(!a.analytics_Storage&&i.track)return i.track=!1,Fe(!0),rr(),void window.setTimeout(nr,250);jn()&&a.analytics_Storage&&(i.track=!0,$e(nn(),1),Qe()),Ue(),ze(a),Ne()}}function Je(t){var e;return{source:null!==(e=t.source)&&void 0!==e?e:255,ad_Storage:"granted"===t.ad_Storage?1:0,analytics_Storage:"granted"===t.analytics_Storage?1:0}}function Ze(t,e){return void 0===e&&(e="denied"),"string"==typeof t?t.toLowerCase():e}function Fe(t){void 0===t&&(t=!1),bt("_clsk","",0),t&&bt("_clck","",0)}function Ke(t){void 0===t&&(t=!1),function(t,e){void 0===e&&(e=!1);if(qe.length>0)for(var n=0;n<qe.length;n++){var r=qe[n];r.callback&&(!r.called&&!e||r.consentInfo&&e)&&(!r.wait||t)&&(r.callback(Ae,!i.lean,r.consentInfo?Re:void 0),r.called=!0,r.recall||(qe.splice(n,1),n--))}}(i.lean?0:1,t)}function Qe(){if(Ae&&i.track&&!i.externalSession){var t=Math.round(Date.now()),e=i.upload&&"string"==typeof i.upload?i.upload.replace("https://",""):"",n=i.lean?0:1;bt("_clsk",[Ae.sessionId,t,Ae.pageNum,n,e].join(yt),1)}}function $e(t,e){void 0===e&&(e=null),e=null===e?t.consent:e;var n=Math.ceil((Date.now()+31536e6)/864e5),r=0===t.dob?null===i.dob?0:i.dob:t.dob;(null===t.expiry||Math.abs(n-t.expiry)>=1||t.consent!==e||t.dob!==r)&&bt("_clck",[Ae.userId,2,n.toString(36),e,r].join(yt),365)}function tn(){var t=Math.floor(Math.random()*Math.pow(2,32));return window&&window.crypto&&window.crypto.getRandomValues&&Uint32Array&&(t=window.crypto.getRandomValues(new Uint32Array(1))[0]),t.toString(36)}function en(t,e){return void 0===e&&(e=10),parseInt(t,e)}function nn(){var t={id:tn(),version:0,expiry:null,consent:0,dob:0},e=wt("_clck",!i.includeSubdomains);if(e&&e.length>0){var n=e.includes("^")?e.split("^"):e.split("|");n.length>1&&(t.version=en(n[1])),n.length>2&&(t.expiry=en(n[2],36)),n.length>3&&1===en(n[3])&&(t.consent=1),n.length>4&&en(n[1])>1&&(t.dob=en(n[4])),i.track=i.track||1===t.consent,t.id=i.track?n[0]:t.id}return t}var rn,an=null;function on(){var t=Ae;an={version:d,sequence:0,start:0,duration:0,projectId:t.projectId,userId:t.userId,sessionId:t.sessionId,pageNum:t.pageNum,upload:0,end:0,applicationPlatform:0,url:""}}function un(){an=null}function cn(t){return an.start=an.start+an.duration,an.duration=l()-an.start,an.sequence++,an.upload=t&&"sendBeacon"in navigator?1:0,an.end=t?1:0,an.applicationPlatform=0,an.url=w(location.href,!1,!0),[an.version,an.sequence,an.start,an.duration,an.projectId,an.userId,an.sessionId,an.pageNum,an.upload,an.end,an.applicationPlatform,an.url]}function sn(){rn=[]}function ln(t){if(rn&&-1===rn.indexOf(t.message)){var e=i.report;if(e&&e.length>0&&an){var n={v:an.version,p:an.projectId,u:an.userId,s:an.sessionId,n:an.pageNum};t.message&&(n.m=t.message),t.stack&&(n.e=t.stack);var r=new XMLHttpRequest;r.open("POST",e,!0),r.send(JSON.stringify(n)),rn.push(t.message)}}return t}function dn(t){return function(){var e=performance.now();try{t.apply(this,arguments)}catch(t){throw ln(t)}var n=performance.now()-e;L(4,n),n>30&&(H(7),U(6,n),t.dn&&"".concat(t.dn,"-").concat(n))}}var fn=new Map;function pn(t,e,n,r,a){void 0===r&&(r=!1),void 0===a&&(a=!0),n=dn(n);try{t[u("addEventListener")](e,n,{capture:r,passive:a}),function(t){return fn.has(t)}(t)||fn.set(t,[]),fn.get(t).push({event:e,listener:n,options:{capture:r,passive:a}})}catch(t){}}function hn(){fn.forEach((function(t,e){!function(t,e){t.forEach((function(t){try{e[u("removeEventListener")](t.event,t.listener,{capture:t.options.capture,passive:t.options.passive})}catch(t){}})),fn.delete(e)}(t,e)})),fn=new Map}var gn=null,vn=null,mn=null,yn=0;function wn(){return!(yn++>20)}function bn(){yn=0,mn!==Sn()&&(rr(),window.setTimeout(_n,250))}function _n(){nr(),U(29,1)}function Sn(){return location.href?location.href.replace(location.hash,""):location.href}var kn=[],In=null,En=null,On=null;function Tn(){kn=[],In=null,En=null}function xn(){var t=kn.shift();t&&(In=t,t.task().then((function(){t.id===Ve()&&(t.resolve(),In=null,xn())})).catch((function(e){t.id===Ve()&&(e&&(e.name,e.message,e.stack),In=null,xn())})))}var Mn=!1;function Cn(){Mn=!0,c=s(),Tn(),hn(),sn(),function(){if(mn=Sn(),yn=0,pn(window,"popstate",bn),null===gn)try{gn=history.pushState,history.pushState=function(){gn.apply(this,arguments),jn()&&wn()&&bn()}}catch(t){gn=null}if(null===vn)try{vn=history.replaceState,history.replaceState=function(){vn.apply(this,arguments),jn()&&wn()&&bn()}}catch(t){vn=null}}()}function Nn(){mn=null,yn=0,sn(),hn(),Tn(),c=0,Mn=!1}function jn(){return Mn}function zn(){nr(),q("clarityGemX","restart")}var Pn=null;function An(){Pn=null}function qn(t){Pn={fetchStart:Math.round(t.fetchStart),connectStart:Math.round(t.connectStart),connectEnd:Math.round(t.connectEnd),requestStart:Math.round(t.requestStart),responseStart:Math.round(t.responseStart),responseEnd:Math.round(t.responseEnd),domInteractive:Math.round(t.domInteractive),domComplete:Math.round(t.domComplete),loadEventStart:Math.round(t.loadEventStart),loadEventEnd:Math.round(t.loadEventEnd),redirectCount:Math.round(t.redirectCount),size:t.transferSize?t.transferSize:0,type:t.type,protocol:t.nextHopProtocol,encodedSize:t.encodedBodySize?t.encodedBodySize:0,decodedSize:t.decodedBodySize?t.decodedBodySize:0},function(t){et(this,void 0,void 0,(function(){var e,n;return nt(this,(function(r){return e=l(),n=[e,t],29===t&&(n.push(Pn.fetchStart),n.push(Pn.connectStart),n.push(Pn.connectEnd),n.push(Pn.requestStart),n.push(Pn.responseStart),n.push(Pn.responseEnd),n.push(Pn.domInteractive),n.push(Pn.domComplete),n.push(Pn.loadEventStart),n.push(Pn.loadEventEnd),n.push(Pn.redirectCount),n.push(Pn.size),n.push(Pn.type),n.push(Pn.protocol),n.push(Pn.encodedSize),n.push(Pn.decodedSize),An(),re(n)),[2]}))}))}(29)}var Dn,Rn=0,Xn=1/0,Hn=0,Ln=0,Un=[],Gn=new Map,Bn=function(){return Rn||0},Vn=function(){if(!Un.length)return-1;var t=Math.min(Un.length-1,Math.floor((Bn()-Ln)/50));return Un[t].latency},Yn=function(){Ln=Bn(),Un.length=0,Gn.clear()},Wn=function(t){if(t.interactionId&&!(t.duration<40)){!function(t){"interactionCount"in performance?Rn=performance.interactionCount:t.interactionId&&(Xn=Math.min(Xn,t.interactionId),Hn=Math.max(Hn,t.interactionId),Rn=Hn?(Hn-Xn)/7+1:0)}(t);var e=Un[Un.length-1],n=Gn.get(t.interactionId);if(n||Un.length<10||t.duration>(null==e?void 0:e.latency)){if(n)t.duration>n.latency&&(n.latency=t.duration);else{var r={id:t.interactionId,latency:t.duration};Gn.set(r.id,r),Un.push(r)}Un.sort((function(t,e){return e.latency-t.latency})),Un.length>10&&Un.splice(10).forEach((function(t){return Gn.delete(t.id)}))}}},Jn=["navigation","resource","longtask","first-input","layout-shift","largest-contentful-paint","event"];function Zn(){try{Dn&&Dn.disconnect(),Dn=new PerformanceObserver(dn(Fn));for(var t=0,e=Jn;t<e.length;t++){var n=e[t];PerformanceObserver.supportedEntryTypes.indexOf(n)>=0&&("layout-shift"===n&&L(9,0),Dn.observe({type:n,buffered:!0}))}}catch(t){}}function Fn(t){!function(t){for(var e=(!("visibilityState"in document)||"visible"===document.visibilityState),n=0;n<t.length;n++){var r=t[n];switch(r.entryType){case"navigation":qn(r);break;case"resource":var a=r.name;Se(4,Qn(a)),a!==i.upload&&a!==i.fallback||U(28,r.duration);break;case"longtask":H(7);break;case"first-input":e&&U(10,r.processingStart-r.startTime);break;case"event":e&&"PerformanceEventTiming"in window&&"interactionId"in PerformanceEventTiming.prototype&&(Wn(r),Se(37,Vn().toString()));break;case"layout-shift":e&&!r.hadRecentInput&&L(9,1e3*r.value);break;case"largest-contentful-paint":e&&U(8,r.startTime)}}}(t.getEntries())}var Kn=null;function Qn(t){return Kn||(Kn=document.createElement("a")),Kn.href=t,Kn.host}var $n=[P,P,P],tr=[P,P,P,Object.freeze({__proto__:null,start:function(){An(),function(){navigator&&navigator.connection&&Se(27,navigator.connection.effectiveType),window.PerformanceObserver&&PerformanceObserver.supportedEntryTypes&&("complete"!==document.readyState?pn(window,"load",G.bind(this,Zn,0)):Zn())}()},stop:function(){Dn&&Dn.disconnect(),Dn=null,Yn(),Kn=null,An()}}),P],er=tr;function nr(t){void 0===t&&(t=null),er="gemx"===t.mode?$n:tr,function(){try{var t=navigator&&"globalPrivacyControl"in navigator&&1==navigator.globalPrivacyControl;return!1===Mn&&"undefined"!=typeof Promise&&window.MutationObserver&&document.createTreeWalker&&"now"in Date&&"now"in performance&&"undefined"!=typeof WeakMap&&!t}catch(t){return!1}}()&&(!function(t){if(null===t||Mn)return!1;for(var e in t)e in i&&(i[e]=t[e])}(t),Cn(),At(),er.forEach((function(t){return dn(t.start)()})),null===t&&ur())}function rr(){jn()&&(er.slice().reverse().forEach((function(t){return dn(t.stop)()})),qt(),Nn(),void 0!==or&&(or[ir]=function(){(or[ir].q=or[ir].q||[]).push(arguments),"start"===arguments[0]&&or[ir].q.unshift(or[ir].q.pop())&&ur()}))}var ar=Object.freeze({__proto__:null,consent:Ye,consentv2:We,dlog:Se,event:q,hashText:M,identify:ot,maxMetric:U,measure:dn,metadata:Be,pause:function(){jn()&&(q("clarityGemX","pause"),null===En&&(En=new Promise((function(t){On=t}))))},queue:re,register:z,resume:function(){jn()&&(En&&(On(),En=null,null===In&&xn()),q("clarityGemX","resume"))},schedule:function(t,e){return void 0===e&&(e=0),et(this,void 0,void 0,(function(){var n,r,a;return nt(this,(function(o){for(n=0,r=kn;n<r.length;n++)if(r[n].task===t)return[2];return a=new Promise((function(n){kn[1===e?"unshift":"push"]({task:t,resolve:n,id:Ve()})})),null===In&&null===En&&xn(),[2,a]}))}))},set:at,signal:function(t){jt=t},start:nr,stop:rr,time:l,upgrade:Q,version:d}),or=window,ir="clarityGemX";function ur(){if(void 0!==or){if(or[ir]&&or[ir].v)return console.warn("Error CL001: Multiple Clarity tags detected.");var t=or[ir]&&or[ir].q||[];for(or[ir]=function(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];return ar[t].apply(ar,e)},or[ir].v=d;t.length>0;)or[ir].apply(or,t.shift())}}ur()}();
|
|
1
|
+
!function(){"use strict";var t=Object.freeze({__proto__:null,get flush(){return oe},get inject(){return ie},get queue(){return ae},get start(){return re},get stop(){return ue},get track(){return Ft}}),e=Object.freeze({__proto__:null,get check(){return he},get compute(){return ve},get data(){return Kt},get start(){return pe},get stop(){return me},get trigger(){return ge}}),n=Object.freeze({__proto__:null,get compute(){return Ie},get data(){return ye},get log(){return ke},get reset(){return Ee},get start(){return _e},get stop(){return Se},get updates(){return we}}),r=Object.freeze({__proto__:null,get compute(){return Ae},get config(){return Ne},get consent(){return je},get data(){return Oe},get start(){return xe},get stop(){return Me},get trackConsentv2(){return Pe}}),a=Object.freeze({__proto__:null,get callback(){return Qe},get callbacks(){return De},get clear(){return Ke},get consent(){return Je},get consentv2(){return We},get data(){return qe},get electron(){return Re},get id(){return Ye},get metadata(){return Ve},get save(){return $e},get shortid(){return en},get start(){return Ue},get stop(){return Be}}),o=Object.freeze({__proto__:null,get data(){return on},get envelope(){return sn},get start(){return un},get stop(){return cn}}),i={projectId:null,delay:1e3,lean:!1,lite:!1,track:!0,content:!0,drop:[],mask:[],unmask:[],regions:[],cookies:[],fraud:!0,checksum:[],report:null,upload:null,fallback:null,upgrade:null,action:null,dob:null,delayDom:!1,throttleDom:!0,conversions:!1,includeSubdomains:!0,modules:[],diagnostics:!1,externalSession:!1,userId:null,sessionId:null,mode:"gemx"};function u(t){return window.Zone&&"__symbol__"in window.Zone?window.Zone.__symbol__(t):t}var c=0;function s(){return performance.now()+performance.timeOrigin}function l(t){void 0===t&&(t=null);var e=0===c?s():c,n=t&&t.timeStamp>0?t.timeStamp:performance.now(),r=t&&t.view?t.view.performance.timeOrigin:performance.timeOrigin;return Math.max(Math.round(n+r-e),0)}var d="0.8.90";var f=/\S/gi,p=255,h=!0,g=null,v=null,m=null;function y(t,e,n,r,a){if(void 0===r&&(r=!1),t){if("input"==e&&("checkbox"===a||"radio"===a))return t;switch(n){case 0:return t;case 1:switch(e){case"*T":case"value":case"placeholder":case"click":return function(t){var e=-1,n=0,r=!1,a=!1,o=!1,i=null;I();for(var u=0;u<t.length;u++){var c=t.charCodeAt(u);if(r=r||c>=48&&c<=57,a=a||64===c,o=9===c||10===c||13===c||32===c,0===u||u===t.length-1||o){if(r||a){null===i&&(i=t.split(""));var s=t.substring(e+1,o?u:u+1);s=h&&null!==m?s.match(m)?s:S(s,"▪","▫"):_(s),i.splice(e+1-n,s.length,s),n+=s.length-1}o&&(r=!1,a=!1,e=u)}}return i?i.join(""):t}(t);case"input":case"change":return k(t)}return t;case 2:case 3:switch(e){case"*T":case"data-":return r?b(t):_(t);case"src":case"srcset":case"title":case"alt":case"href":case"xlink:href":return 3===n?(null==t?void 0:t.startsWith("blob:"))?"blob:":"":t;case"value":case"click":case"input":case"change":return k(t);case"placeholder":return _(t)}break;case 4:switch(e){case"*T":case"data-":return r?b(t):_(t);case"value":case"input":case"click":case"change":return Array(5).join("•");case"checksum":return""}break;case 5:switch(e){case"*T":case"data-":return S(t,"▪","▫");case"value":case"input":case"click":case"change":return Array(5).join("•");case"checksum":case"src":case"srcset":case"alt":case"title":return""}}}return t}function w(t,e,n){void 0===e&&(e=!1),void 0===n&&(n=!1);var r=t;if(e)r="".concat("https://").concat("Electron");else{var a=i.drop;if(a&&a.length>0&&t&&t.indexOf("?")>0){var o=t.split("?"),u=o[0],c=o[1];r=u+"?"+c.split("&").map((function(t){return a.some((function(e){return 0===t.indexOf("".concat(e,"="))}))?"".concat(t.split("=")[0],"=").concat("*na*"):t})).join("&")}}return n&&(r=r.substring(0,p)),r}function b(t){var e=t.trim();if(e.length>0){var n=e[0],r=t.indexOf(n),a=t.substr(0,r),o=t.substr(r+e.length);return"".concat(a).concat(e.length.toString(36)).concat(o)}return t}function _(t){return t.replace(f,"•")}function S(t,e,n){return I(),t?t.replace(v,e).replace(g,n):t}function k(t){for(var e=5*(Math.floor(t.length/5)+1),n="",r=0;r<e;r++)n+=r>0&&r%5==0?" ":"•";return n}function I(){if(h&&null===g)try{g=new RegExp("\\p{N}","gu"),v=new RegExp("\\p{L}","gu"),m=new RegExp("\\p{Sc}","gu")}catch(t){h=!1}}var E=[],O=null;function T(){}var x=[];function M(){}function C(){}function N(){}function j(){}function z(){}var P=Object.freeze({__proto__:null,checkDocumentStyles:function(t){},compute:function(){},data:O,event:j,hashText:M,keys:x,log:T,observe:function(){},register:z,reset:function(){},sheetAdoptionState:[],sheetUpdateState:[],start:function(){},state:E,stop:function(){},track:N,trigger:C}),A=null;function q(t,e){zn()&&t&&"string"==typeof t&&t.length<255&&(A=e&&"string"==typeof e&&e.length<255?{key:t,value:e}:{value:t},fe(24))}var D,R=null,X=null;function H(t){t in R||(R[t]=0),t in X||(X[t]=0),R[t]++,X[t]++}function L(t,e){null!==e&&(t in R||(R[t]=0),t in X||(X[t]=0),R[t]+=e,X[t]+=e)}function U(t,e){null!==e&&!1===isNaN(e)&&(t in R||(R[t]=0),(e>R[t]||0===R[t])&&(X[t]=e,R[t]=e))}function G(t,e,n){return window.setTimeout(fn(t),e,n)}function B(t){return window.clearTimeout(t)}var V=0,Y=0,J=null;function W(){J&&B(J),J=G(Z,Y),V=l()}function Z(){var t=l();D={gap:t-V},fe(25),D.gap<3e5?J=G(Z,Y):Cn&&(q("clarityGemX","suspend"),ar(),["mousemove","touchstart"].forEach((function(t){return hn(document,t,Pn)})),["resize","scroll","pageshow"].forEach((function(t){return hn(window,t,Pn)})))}var F=Object.freeze({__proto__:null,get data(){return D},reset:W,start:function(){Y=6e4,V=0},stop:function(){B(J),V=0,Y=0}}),K=null;function Q(t){zn()&&i.lean&&(i.lean=!1,K={key:t},Qe(),$e(),i.upgrade&&i.upgrade(t),fe(3),i.lite)}var $=Object.freeze({__proto__:null,get data(){return K},start:function(){!i.lean&&i.upgrade&&i.upgrade("Config"),K=null},stop:function(){K=null},upgrade:Q}),tt=function(){return tt=Object.assign||function(t){for(var e,n=1,r=arguments.length;n<r;n++)for(var a in e=arguments[n])Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t},tt.apply(this,arguments)};function et(t,e,n,r){return new(n||(n=Promise))((function(a,o){function i(t){try{c(r.next(t))}catch(t){o(t)}}function u(t){try{c(r.throw(t))}catch(t){o(t)}}function c(t){var e;t.done?a(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(i,u)}c((r=r.apply(t,e||[])).next())}))}function nt(t,e){var n,r,a,o,i={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return o={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function u(u){return function(c){return function(u){if(n)throw new TypeError("Generator is already executing.");for(;o&&(o=0,u[0]&&(i=0)),i;)try{if(n=1,r&&(a=2&u[0]?r.return:u[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,u[1])).done)return a;switch(r=0,a&&(u=[2&u[0],a.value]),u[0]){case 0:case 1:a=u;break;case 4:return i.label++,{value:u[1],done:!1};case 5:i.label++,r=u[1],u=[0];continue;case 7:u=i.ops.pop(),i.trys.pop();continue;default:if(!(a=i.trys,(a=a.length>0&&a[a.length-1])||6!==u[0]&&2!==u[0])){i=0;continue}if(3===u[0]&&(!a||u[1]>a[0]&&u[1]<a[3])){i.label=u[1];break}if(6===u[0]&&i.label<a[1]){i.label=a[1],a=u;break}if(a&&i.label<a[2]){i.label=a[2],i.ops.push(u);break}a[2]&&i.ops.pop(),i.trys.pop();continue}u=e.call(t,i)}catch(t){u=[6,t],r=0}finally{n=a=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}([u,c])}}}var rt=null;function at(t,e){it(t,"string"==typeof e?[e]:e)}function ot(t,e,n,r){return void 0===e&&(e=null),void 0===n&&(n=null),void 0===r&&(r=null),et(this,void 0,void 0,(function(){var a,o;return nt(this,(function(i){switch(i.label){case 0:return o={},[4,st(t)];case 1:return o.userId=i.sent(),o.userHint=r||((u=t)&&u.length>=5?"".concat(u.substring(0,2)).concat(S(u.substring(2),"*","*")):S(u,"*","*")),it("userId",[(a=o).userId]),it("userHint",[a.userHint]),it("userType",[lt(t)]),e&&(it("sessionId",[e]),a.sessionId=e),n&&(it("pageId",[n]),a.pageId=n),[2,a]}var u}))}))}function it(t,e){if(zn()&&t&&e&&"string"==typeof t&&t.length<255){for(var n=(t in rt?rt[t]:[]),r=0;r<e.length;r++)"string"==typeof e[r]&&e[r].length<255&&n.push(e[r]);rt[t]=n}}function ut(){fe(34)}function ct(){rt={}}function st(t){return et(this,void 0,void 0,(function(){var e;return nt(this,(function(n){switch(n.label){case 0:return n.trys.push([0,4,,5]),crypto&&t?[4,crypto.subtle.digest("SHA-256",(new TextEncoder).encode(t))]:[3,2];case 1:return e=n.sent(),[2,Array.prototype.map.call(new Uint8Array(e),(function(t){return("00"+t.toString(16)).slice(-2)})).join("")];case 2:return[2,""];case 3:return[3,5];case 4:return n.sent(),[2,""];case 5:return[2]}}))}))}function lt(t){return t&&t.indexOf("@")>0?"email":"string"}var dt=Object.freeze({__proto__:null,compute:ut,get data(){return rt},identify:ot,reset:ct,set:at,start:function(){ct()},stop:function(){ct()}}),ft="CompressionStream"in window;function pt(t){return et(this,void 0,void 0,(function(){var e,n;return nt(this,(function(r){switch(r.label){case 0:return r.trys.push([0,3,,4]),ft?(e=new ReadableStream({start:function(e){return et(this,void 0,void 0,(function(){return nt(this,(function(n){return e.enqueue(t),e.close(),[2]}))}))}}).pipeThrough(new TextEncoderStream).pipeThrough(new window.CompressionStream("gzip")),n=Uint8Array.bind,[4,ht(e)]):[3,2];case 1:return[2,new(n.apply(Uint8Array,[void 0,r.sent()]))];case 2:return[3,4];case 3:return r.sent(),[3,4];case 4:return[2,null]}}))}))}function ht(t){return et(this,void 0,void 0,(function(){var e,n,r,a,o;return nt(this,(function(i){switch(i.label){case 0:e=t.getReader(),n=[],r=!1,a=[],i.label=1;case 1:return r?[3,3]:[4,e.read()];case 2:return o=i.sent(),r=o.done,a=o.value,r?[2,n]:(n.push.apply(n,a),[3,1]);case 3:return[2,n]}}))}))}function gt(t,e){try{return!!t[e]}catch(t){return!1}}function vt(t){try{var e=decodeURIComponent(t);return[e!=t,e]}catch(t){}return[!1,t]}var mt=null,yt="^";function wt(t,e){var n;if(void 0===e&&(e=!1),gt(document,"cookie")){var r=document.cookie.split(";");if(r)for(var a=0;a<r.length;a++){var o=r[a].split("=");if(o.length>1&&o[0]&&o[0].trim()===t){for(var i=vt(o[1]),u=i[0],c=i[1];u;)u=(n=vt(c))[0],c=n[1];return e?c.endsWith("".concat("~","1"))?c.substring(0,c.length-2):null:c}}}return null}function bt(t,e,n){if((i.track||""==e)&&(navigator&&navigator.cookieEnabled||gt(document,"cookie"))){var r=function(t){return encodeURIComponent(t)}(e),a=new Date;a.setDate(a.getDate()+n);var o=a?"expires="+a.toUTCString():"",u="".concat(t,"=").concat(r).concat(";").concat(o).concat(";path=/");try{if(null===mt){for(var c=location.hostname?location.hostname.split("."):[],s=c.length-1;s>=0;s--)if(mt=".".concat(c[s]).concat(mt||""),s<c.length-1&&(document.cookie="".concat(u).concat(";").concat("domain=").concat(mt),wt(t)===e))return;mt=""}}catch(t){mt=""}document.cookie=mt?"".concat(u).concat(";").concat("domain=").concat(mt):u}}var _t=Object.freeze({__proto__:null,COOKIE_SEP:yt,getCookie:wt,setCookie:bt,start:function(){mt=null},stop:function(){mt=null}}),St={debug:!1,excludeClassNames:[],ignoreMutationClassNames:[],discoverTrigger:null},kt=tt({},St);function It(){return kt.debug}var Et=Object.freeze({__proto__:null,get:function(){return kt},isDebug:It,set:function(t){kt=tt(tt({},kt),t)},start:function(){var t,e,n,r,a,o,i,u;kt={debug:new URLSearchParams(window.location.search).has("gemx_debug")||null!==(e=null===(t=null===window||void 0===window?void 0:window.GemXHeatmap)||void 0===t?void 0:t.debug)&&void 0!==e&&e,excludeClassNames:null!==(r=null===(n=null===window||void 0===window?void 0:window.GemXHeatmap)||void 0===n?void 0:n.excludeClassNames)&&void 0!==r?r:[],ignoreMutationClassNames:null!==(o=null===(a=null===window||void 0===window?void 0:window.GemXHeatmap)||void 0===a?void 0:a.ignoreMutationClassNames)&&void 0!==o?o:[],discoverTrigger:null!==(u=null===(i=null===window||void 0===window?void 0:window.GemXHeatmap)||void 0===i?void 0:i.discoverTrigger)&&void 0!==u?u:null}},stop:function(){kt=tt({},St)}}),Ot=[],Tt=0,xt=!1,Mt=0,Ct=null;function Nt(){return xt}function jt(t,e){Ot.push(t),Tt+=e,Mt>0&&Tt>=Mt&&Ct&&Ct()}var zt=null;function Pt(t){try{if(!zt)return;var e=function(t){try{return JSON.parse(t)}catch(t){return[]}}(t);e.forEach((function(t){zt(t)}))}catch(t){}}var At=[Et,Object.freeze({__proto__:null,config:function(t,e){return Mt=null!=t?t:0,Ct=null!=e?e:null,!0},drain:function(){xt=!1;var t=Ot;return Ot=[],Tt=0,t},getBytes:function(){return Tt},hold:jt,isActive:Nt,start:function(){Ot=[],Tt=0,xt=!0},stop:function(){Ot=[],Tt=0,xt=!1,Mt=0,Ct=null}}),P,n,dt,e,P,_t,r,a,o,t,F,$,P];function qt(){R={},X={},H(5),At.forEach((function(t){return fn(t.start)()}))}function Dt(){At.slice().reverse().forEach((function(t){return fn(t.stop)()})),R={},X={}}function Rt(){ve(),Ae(),"gemx"!==i.mode&&(ut(),Ie(),fe(0))}function Xt(t,e,n,r){return"href"===t&&"LINK"===r?"".concat(t,"=").concat(e):"".concat(t,"=").concat(y(e,0===t.indexOf("data-")?"data-":t,n))}var Ht=[],Lt=1,Ut=null;function Gt(){Ht=[],function(t){var e=[t];for(;e.length>0;){for(var n=null,r=null,a=null,o=e.shift(),i=o.firstChild,u=o.parentElement?o.parentElement:o.parentNode?o.parentNode:null;i;)e.push(i),i=i.nextSibling;switch(o.nodeType){case Node.DOCUMENT_TYPE_NODE:var c=o;r="*D",n={name:c.name,publicId:c.publicId,systemId:c.systemId};break;case Node.TEXT_NODE:a=o.nodeValue,r=Ut.get(u)?"*T":r;break;case Node.ELEMENT_NODE:var s=o;n=Bt(s),r=["NOSCRIPT","SCRIPT","STYLE"].indexOf(s.tagName)<0?s.tagName:r}Vt(o,u,{tag:r,attributes:n,value:a})}}(document),function(t){et(this,void 0,void 0,(function(){var e,n,r,a,o,i,u,c,s,d,f,p,h;return nt(this,(function(g){switch(e=l(),n=[e,t],t){case 8:r=O,n.push(r.width),n.push(r.height),r.width,r.height,ae(n);break;case 43:if((a=Ht).length>0){for(o=0,i=a;o<i.length;o++)for(u=i[o],c=u.metadata.privacy,s=u.data,d=0,f=["tag","attributes","value"];d<f.length;d++)if(s[p=f[d]])switch(p){case"tag":n.push(u.id),u.parent&&n.push(u.parent),u.previous&&n.push(u.previous),n.push(s[p]);break;case"attributes":for(h in s[p])void 0!==s[p][h]&&n.push(Xt(h,s[p][h],c,s.tag));break;case"value":n.push(y(s[p],s.tag,c))}ae(function(t){for(var e=[],n={},r=0,a=null,o=0;o<t.length;o++)if("string"==typeof t[o]){var i=t[o],u=n[i]||-1;u>=0?a?a.push(u):(a=[u],e.push(a),r++):(a=null,e.push(i),n[i]=r++)}else a=null,e.push(t[o]),r++;return e}(n),!0)}}return[2]}))}))}(43)}function Bt(t){var e={},n=t.attributes;if(n&&n.length>0)for(var r=0;r<n.length;r++)e[n[r].name]=n[r].value;return e}function Vt(t,e,n){if(t&&n&&n.tag){var r=function(t){return null===t?null:Ut.has(t)?Ut.get(t):(Ut.set(t,Lt),Lt++)}(t),a=e?Ut.get(e):null,o=t.previousSibling?Ut.get(t.previousSibling):null;Ht.push({id:r,parent:a,previous:o,children:[],data:n,selector:null,hash:null,region:null,metadata:{active:!0,suspend:!1,privacy:5,position:null,fraud:null,size:null}})}}var Yt,Jt,Wt,Zt,Ft,Kt,Qt=0,$t=0,te=null,ee=0,ne=!1;function re(){Zt=!0,Qt=0,$t=0,ne=!1,ee=0,Yt=[],Jt=[],Wt={},Ft=null}function ae(t,e){if(void 0===e&&(e=!0),Zt){var n=l(),r=t.length>1?t[1]:null,a=JSON.stringify(t);switch(i.lean?!ne&&$t+a.length>10485760&&(ne=!0):ne=!1,r){case 5:if(ne)break;if(Nt()){jt(t,a.length);break}Qt+=a.length;case 37:case 6:case 43:case 45:case 46:case 44:case 51:if(ne)break;Nt()&&jt(t,a.length),$t+=a.length,Yt.push(a);break;default:Jt.push(a)}H(25);var o=function(){var t=!1===i.lean&&Qt>0?100:on.sequence*i.delay;return"string"==typeof i.upload?Math.max(Math.min(t,3e4),100):i.delay}();n-ee>2*o&&(B(te),te=null),e&&null===te&&(25!==r&&W(),te=G(ce,o),ee=n,he($t))}}function oe(t){Zt&&(B(te),te=null,ce(!1,t))}function ie(t){for(var e=0,n=t;e<n.length;e++){var r=n[e],a=JSON.stringify(r);Qt+=a.length,$t+=a.length,Yt.push(a)}}function ue(){B(te),ce(!0),Qt=0,$t=0,ne=!1,ee=0,Yt=[],Jt=[],Wt={},Ft=null,Zt=!1}function ce(t,e){return void 0===t&&(t=!1),et(this,void 0,void 0,(function(){var n,r,a,o,u,c,s,l,d,f,p,h,g,v,m,y,w;return nt(this,(function(b){switch(b.label){case 0:if(!Zt)return[2];if(te=null,(n=("gemx-snapshot"===e||!1===i.lean)&&$t>0&&($t<1048576||on.sequence>0))&&U(1,1),Rt(),r=!0===t,!on)return[2];if(a=It(),!e&&a){for(o=[[9,"click"],[10,"scroll"]],u=new Set(Jt.map((function(t){return JSON.parse(t)[1]}))),c=[],s=0,l=o;s<l.length;s++)f=(d=l[s])[0],p=d[1],u.has(f)&&c.push(p);e=c.length>0?c.join("-"):void 0}return h=JSON.stringify(sn(r)),g="[".concat(Jt.join(),"]"),v=n?"[".concat(Yt.join(),"]"):"",r&&v.length>0&&h.length+g.length+v.length>65536&&(v=""),m=function(t){return t.p.length>0?'{"e":'.concat(t.e,',"a":').concat(t.a,',"p":').concat(t.p,"}"):'{"e":'.concat(t.e,',"a":').concat(t.a,"}")}({e:h,a:g,p:v}),r?(w=null,[3,3]):[3,1];case 1:return[4,pt(m)];case 2:w=b.sent(),b.label=3;case 3:return L(2,(y=w)?y.length:m.length),se(m,y,on.sequence,r,e),Jt=[],n&&(Yt=[],$t=0,Qt=0,ne=!1),[2]}}))}))}function se(t,e,n,r,a){if(void 0===r&&(r=!1),"string"==typeof i.upload){var o=i.upload,u=!1;if(r&&navigator&&navigator.sendBeacon)try{(u=navigator.sendBeacon.bind(navigator)(o,t))&&de(n)}catch(t){}if(!1===u){n in Wt?Wt[n].attempts++:Wt[n]={data:t,attempts:1};var c=new XMLHttpRequest;c.open("POST",o,!0),c.timeout=15e3,c.ontimeout=function(){dn(new Error("".concat("Timeout"," : ").concat(o)))},null!==n&&(c.onreadystatechange=function(){fn(le)(c,n)}),c.withCredentials=!0,e?(c.setRequestHeader("Accept","application/x-clarity-gzip"),c.send(e)):c.send(t)}}else if(i.upload){(0,i.upload)(t,a),de(n)}}function le(t,e){var n=Wt[e];t&&4===t.readyState&&n&&((t.status<200||t.status>208)&&n.attempts<=1?t.status>=400&&t.status<500?ge(6):(0===t.status&&(i.upload=i.fallback?i.fallback:i.upload),Ft={sequence:e,attempts:n.attempts,status:t.status},fe(2),se(n.data,null,e)):(Ft={sequence:e,attempts:n.attempts,status:t.status},n.attempts>1&&fe(2),200===t.status&&t.responseText&&function(t){for(var e=t&&t.length>0?t.split("\n"):[],n=0,r=e;n<r.length;n++){var a=r[n],o=a&&a.length>0?a.split(/ (.*)/):[""];switch(o[0]){case"END":ge(6);break;case"UPGRADE":Q("Auto");break;case"ACTION":i.action&&o.length>1&&i.action(o[1]);break;case"EXTRACT":case"MODULE":o.length>1&&o[1];break;case"SIGNAL":o.length>1&&Pt(o[1]);break;case"SNAPSHOT":i.lean=!1,Gt()}}}(t.responseText),0===t.status&&(se(n.data,null,e,!0),ge(3)),t.status>=200&&t.status<=208&&de(e),delete Wt[e]))}function de(t){1===t&&($e(),Qe())}function fe(t){var e=[l(),t];switch(t){case 4:var n=E;n&&n.data&&((e=[n.time,n.event]).push(n.data.visible),e.push(n.data.docWidth),e.push(n.data.docHeight),e.push(n.data.screenWidth),e.push(n.data.screenHeight),e.push(n.data.scrollX),e.push(n.data.scrollY),e.push(n.data.pointerX),e.push(n.data.pointerY),e.push(n.data.activityTime),e.push(n.data.scrollTime),e.push(n.data.pointerTime),e.push(n.data.moveX),e.push(n.data.moveY),e.push(n.data.moveTime),e.push(n.data.downX),e.push(n.data.downY),e.push(n.data.downTime),e.push(n.data.upX),e.push(n.data.upY),e.push(n.data.upTime),e.push(n.data.pointerPrevX),e.push(n.data.pointerPrevY),e.push(n.data.pointerPrevTime),e.push(n.data.modules),ae(e,!1));break;case 25:e.push(D.gap),ae(e);break;case 35:e.push(Kt.check),ae(e,!1);break;case 3:e.push(K.key),ae(e);break;case 2:e.push(Ft.sequence),e.push(Ft.attempts),e.push(Ft.status),ae(e,!1);break;case 24:A.key&&e.push(A.key),e.push(A.value),ae(e);break;case 34:var r=Object.keys(rt);if(r.length>0){for(var a=0,o=r;a<o.length;a++){var i=o[a];e.push(i),e.push(rt[i])}ct(),ae(e,!1)}break;case 0:var u=Object.keys(X);if(u.length>0){for(var c=0,s=u;c<s.length;c++){var d=s[c],f=parseInt(d,10);e.push(f),e.push(Math.round(X[d]))}X={},ae(e,!1)}break;case 1:var p=Object.keys(we);if(p.length>0){for(var h=0,g=p;h<g.length;h++){var v=g[h];f=parseInt(v,10);e.push(f),e.push(we[v])}Ee(),ae(e,!1)}break;case 36:var m=Object.keys(O);if(m.length>0){for(var y=0,w=m;y<w.length;y++){var b=w[y];f=parseInt(b,10);e.push(f),e.push([].concat.apply([],O[b]))}ae(e,!1)}break;case 40:x.forEach((function(t){e.push(t);var n=[];for(var r in O[t]){var a=parseInt(r,10);n.push(a),n.push(O[t][r])}e.push(n)})),ae(e,!1);break;case 47:e.push(Oe.source),e.push(Oe.ad_Storage),e.push(Oe.analytics_Storage),ae(e,!1)}}function pe(){Kt={check:0}}function he(t){if(0===Kt.check){var e=Kt.check;e=on.sequence>=128?1:e,e=on.pageNum>=128?7:e,e=l()>72e5?2:e,(e=t>10485760?2:e)!==Kt.check&&ge(e)}}function ge(t){Kt.check=t,5!==t&&(Ke(),ar())}function ve(){0!==Kt.check&&fe(35)}function me(){Kt=null}var ye=null,we=null,be=!1;function _e(){ye={},we={},be=!1}function Se(){ye={},we={},be=!1}function ke(t,e){if(e&&(e="".concat(e),t in ye||(ye[t]=[]),ye[t].indexOf(e)<0)){if(ye[t].length>128)return void(be||(be=!0,ge(5)));ye[t].push(e),t in we||(we[t]=[]),we[t].push(e)}}function Ie(){fe(1)}function Ee(){we={},be=!1}var Oe=null,Te=!0;function xe(){var t,e=null===(t=window.google_tag_data)||void 0===t?void 0:t.ics;Te=!0,(null==e?void 0:e.addListener)&&e.addListener(["ad_storage","analytics_storage"],Ce)}function Me(){Te=!0}function Ce(){var t,e=null===(t=window.google_tag_data)||void 0===t?void 0:t.ics;if(null==e?void 0:e.getConsentState)try{var n=e.getConsentState("analytics_storage");We(function(t){var e={source:2,ad_Storage:1===t.ad_Storage?"granted":"denied",analytics_Storage:1===t.analytics_Storage?"granted":"denied"};return e}({ad_Storage:e.getConsentState("ad_storage"),analytics_Storage:n}))}catch(t){return}}function Ne(t){ze(t.analytics_Storage?1:0),Oe=t}function je(){ze(2)}function ze(t){ke(36,t.toString())}function Pe(t){Oe=t,fe(47)}function Ae(){var t;if(Te&&(fe(47),Te=!1,!i.track)){var e=null===(t=window.google_tag_data)||void 0===t?void 0:t.ics;(null==e?void 0:e.usedUpdate)&&Ce()}}var qe=null,De=[],Re=0,Xe=null,He=!1,Le={source:7,ad_Storage:"denied",analytics_Storage:"denied"};function Ue(){var t,e,n,r=navigator&&"userAgent"in navigator?navigator.userAgent:"",a=null!==(n="undefined"!=typeof Intl&&(null===(e=null===(t=null===Intl||void 0===Intl?void 0:Intl.DateTimeFormat())||void 0===t?void 0:t.resolvedOptions())||void 0===e?void 0:e.timeZone))&&void 0!==n?n:"",o=(new Date).getTimezoneOffset().toString(),u=window.location.ancestorOrigins?Array.from(window.location.ancestorOrigins).toString():"",c=document&&document.title?document.title:"";Re=r.indexOf("Electron")>0?1:0;var s=function(){var t={session:en(),ts:Math.round(Date.now()),count:1,upgrade:null,upload:""},e=wt("_clsk",!i.includeSubdomains);if(e){var n=e.includes("^")?e.split("^"):e.split("|");n.length>=5&&t.ts-nn(n[1])<18e5&&(t.session=n[0],t.count=nn(n[2])+1,t.upgrade=nn(n[3]),t.upload=n.length>=6?"".concat("https://").concat(n[5],"/").concat(n[4]):"".concat("https://").concat(n[4]))}return t}(),l=rn(),d=i.projectId||function(t,e){void 0===e&&(e=null);for(var n,r=5381,a=r,o=0;o<t.length;o+=2)r=(r<<5)+r^t.charCodeAt(o),o+1<t.length&&(a=(a<<5)+a^t.charCodeAt(o+1));return n=Math.abs(r+11579*a),(e?n%Math.pow(2,e):n).toString(36)}(location.host),f=i.externalSession&&i.userId?i.userId:l.id,p=i.externalSession&&i.sessionId?i.sessionId:s.session;qe={projectId:d,userId:f,sessionId:p,pageNum:s.count},i.lean=i.track&&null!==s.upgrade?0===s.upgrade:i.lean,i.upload=i.track&&"string"==typeof i.upload&&s.upload&&s.upload.length>"https://".length?s.upload:i.upload,ke(0,r),ke(3,c),ke(1,w(location.href,!!Re)),ke(2,document.referrer),ke(15,function(){var t=en();if(i.track&>(window,"sessionStorage")){var e=sessionStorage.getItem("_cltk");t=e||t,sessionStorage.setItem("_cltk",t)}return t}()),ke(16,document.documentElement.lang),ke(17,document.dir),ke(26,"".concat(window.devicePixelRatio)),ke(28,l.dob.toString()),ke(29,l.version.toString()),ke(33,u),ke(34,a),ke(35,o),U(0,s.ts),U(1,0),U(35,Re);var h,g=null===window||void 0===window?void 0:window.Zone;g&&"__symbol__"in g&&U(39,1),navigator&&(ke(9,navigator.language),U(33,navigator.hardwareConcurrency),U(32,navigator.maxTouchPoints),U(34,Math.round(navigator.deviceMemory)),(h=navigator.userAgentData)&&h.getHighEntropyValues?h.getHighEntropyValues(["model","platform","platformVersion","uaFullVersion"]).then((function(t){var e;ke(22,t.platform),ke(23,t.platformVersion),null===(e=t.brands)||void 0===e||e.forEach((function(t){ke(24,t.name+"~"+t.version)})),ke(25,t.model),U(27,t.mobile?1:0)})):ke(22,navigator.platform)),screen&&(U(14,Math.round(screen.width)),U(15,Math.round(screen.height)),U(16,Math.round(screen.colorDepth))),null===Xe&&(Xe={source:l.consent?6:0,ad_Storage:i.track?"granted":"denied",analytics_Storage:i.track?"granted":"denied"}),Ge(),Ne(Ze(Xe)),i.externalSession||tn(l)}function Ge(){if(!He&&"granted"===(null==Xe?void 0:Xe.analytics_Storage)&&"granted"===(null==Xe?void 0:Xe.ad_Storage)){for(var t=0,e=i.cookies;t<e.length;t++){var n=e[t],r=wt(n);r&&at(n,r)}He=!0}}function Be(){qe=null,He=!1,De.forEach((function(t){t.called=!1}))}function Ve(t,e,n,r){void 0===e&&(e=!0),void 0===n&&(n=!1),void 0===r&&(r=!1);var a=i.lean?0:1,o=!1;qe&&(a||!1===e)&&(t(qe,!i.lean,r?Xe:void 0),o=!0),!n&&o||De.push({callback:t,wait:e,recall:n,called:o,consentInfo:r})}function Ye(){return qe?[qe.userId,qe.sessionId,qe.pageNum].join("."):""}function Je(t){void 0===t&&(t=!0),We(t?{source:4,ad_Storage:"granted",analytics_Storage:"granted"}:{source:4,ad_Storage:"denied",analytics_Storage:"denied"})}function We(t,e){var n;if(void 0===t&&(t=Le),void 0===e&&(e=5),zn()){var r={source:null!==(n=t.source)&&void 0!==n?n:e,ad_Storage:Fe(t.ad_Storage,null==Xe?void 0:Xe.ad_Storage),analytics_Storage:Fe(t.analytics_Storage,null==Xe?void 0:Xe.analytics_Storage)};if(Xe&&r.ad_Storage===Xe.ad_Storage&&r.analytics_Storage===Xe.analytics_Storage)return Xe.source=r.source,Pe(Ze(Xe)),void je();Xe=r,Qe(!0);var a=Ze(Xe);if(!a.analytics_Storage&&i.track)return i.track=!1,Ke(!0),ar(),void window.setTimeout(rr,250);zn()&&a.analytics_Storage&&(i.track=!0,tn(rn(),1),$e()),Ge(),Pe(a),je()}}function Ze(t){var e;return{source:null!==(e=t.source)&&void 0!==e?e:255,ad_Storage:"granted"===t.ad_Storage?1:0,analytics_Storage:"granted"===t.analytics_Storage?1:0}}function Fe(t,e){return void 0===e&&(e="denied"),"string"==typeof t?t.toLowerCase():e}function Ke(t){void 0===t&&(t=!1),bt("_clsk","",0),t&&bt("_clck","",0)}function Qe(t){void 0===t&&(t=!1),function(t,e){void 0===e&&(e=!1);if(De.length>0)for(var n=0;n<De.length;n++){var r=De[n];r.callback&&(!r.called&&!e||r.consentInfo&&e)&&(!r.wait||t)&&(r.callback(qe,!i.lean,r.consentInfo?Xe:void 0),r.called=!0,r.recall||(De.splice(n,1),n--))}}(i.lean?0:1,t)}function $e(){if(qe&&i.track&&!i.externalSession){var t=Math.round(Date.now()),e=i.upload&&"string"==typeof i.upload?i.upload.replace("https://",""):"",n=i.lean?0:1;bt("_clsk",[qe.sessionId,t,qe.pageNum,n,e].join(yt),1)}}function tn(t,e){void 0===e&&(e=null),e=null===e?t.consent:e;var n=Math.ceil((Date.now()+31536e6)/864e5),r=0===t.dob?null===i.dob?0:i.dob:t.dob;(null===t.expiry||Math.abs(n-t.expiry)>=1||t.consent!==e||t.dob!==r)&&bt("_clck",[qe.userId,2,n.toString(36),e,r].join(yt),365)}function en(){var t=Math.floor(Math.random()*Math.pow(2,32));return window&&window.crypto&&window.crypto.getRandomValues&&Uint32Array&&(t=window.crypto.getRandomValues(new Uint32Array(1))[0]),t.toString(36)}function nn(t,e){return void 0===e&&(e=10),parseInt(t,e)}function rn(){var t={id:en(),version:0,expiry:null,consent:0,dob:0},e=wt("_clck",!i.includeSubdomains);if(e&&e.length>0){var n=e.includes("^")?e.split("^"):e.split("|");n.length>1&&(t.version=nn(n[1])),n.length>2&&(t.expiry=nn(n[2],36)),n.length>3&&1===nn(n[3])&&(t.consent=1),n.length>4&&nn(n[1])>1&&(t.dob=nn(n[4])),i.track=i.track||1===t.consent,t.id=i.track?n[0]:t.id}return t}var an,on=null;function un(){var t=qe;on={version:d,sequence:0,start:0,duration:0,projectId:t.projectId,userId:t.userId,sessionId:t.sessionId,pageNum:t.pageNum,upload:0,end:0,applicationPlatform:0,url:""}}function cn(){on=null}function sn(t){return on.start=on.start+on.duration,on.duration=l()-on.start,on.sequence++,on.upload=t&&"sendBeacon"in navigator?1:0,on.end=t?1:0,on.applicationPlatform=0,on.url=w(location.href,!1,!0),[on.version,on.sequence,on.start,on.duration,on.projectId,on.userId,on.sessionId,on.pageNum,on.upload,on.end,on.applicationPlatform,on.url]}function ln(){an=[]}function dn(t){if(an&&-1===an.indexOf(t.message)){var e=i.report;if(e&&e.length>0&&on){var n={v:on.version,p:on.projectId,u:on.userId,s:on.sessionId,n:on.pageNum};t.message&&(n.m=t.message),t.stack&&(n.e=t.stack);var r=new XMLHttpRequest;r.open("POST",e,!0),r.send(JSON.stringify(n)),an.push(t.message)}}return t}function fn(t){return function(){var e=performance.now();try{t.apply(this,arguments)}catch(t){throw dn(t)}var n=performance.now()-e;L(4,n),n>30&&(H(7),U(6,n),t.dn&&"".concat(t.dn,"-").concat(n))}}var pn=new Map;function hn(t,e,n,r,a){void 0===r&&(r=!1),void 0===a&&(a=!0),n=fn(n);try{t[u("addEventListener")](e,n,{capture:r,passive:a}),function(t){return pn.has(t)}(t)||pn.set(t,[]),pn.get(t).push({event:e,listener:n,options:{capture:r,passive:a}})}catch(t){}}function gn(){pn.forEach((function(t,e){!function(t,e){t.forEach((function(t){try{e[u("removeEventListener")](t.event,t.listener,{capture:t.options.capture,passive:t.options.passive})}catch(t){}})),pn.delete(e)}(t,e)})),pn=new Map}var vn=null,mn=null,yn=null,wn=0;function bn(){return!(wn++>20)}function _n(){wn=0,yn!==kn()&&(ar(),window.setTimeout(Sn,250))}function Sn(){rr(),U(29,1)}function kn(){return location.href?location.href.replace(location.hash,""):location.href}var In=[],En=null,On=null,Tn=null;function xn(){In=[],En=null,On=null}function Mn(){var t=In.shift();t&&(En=t,t.task().then((function(){t.id===Ye()&&(t.resolve(),En=null,Mn())})).catch((function(e){t.id===Ye()&&(e&&(e.name,e.message,e.stack),En=null,Mn())})))}var Cn=!1;function Nn(){Cn=!0,c=s(),xn(),gn(),ln(),function(){if(yn=kn(),wn=0,hn(window,"popstate",_n),null===vn)try{vn=history.pushState,history.pushState=function(){vn.apply(this,arguments),zn()&&bn()&&_n()}}catch(t){vn=null}if(null===mn)try{mn=history.replaceState,history.replaceState=function(){mn.apply(this,arguments),zn()&&bn()&&_n()}}catch(t){mn=null}}()}function jn(){yn=null,wn=0,ln(),gn(),xn(),c=0,Cn=!1}function zn(){return Cn}function Pn(){rr(),q("clarityGemX","restart")}var An=null;function qn(){An=null}function Dn(t){An={fetchStart:Math.round(t.fetchStart),connectStart:Math.round(t.connectStart),connectEnd:Math.round(t.connectEnd),requestStart:Math.round(t.requestStart),responseStart:Math.round(t.responseStart),responseEnd:Math.round(t.responseEnd),domInteractive:Math.round(t.domInteractive),domComplete:Math.round(t.domComplete),loadEventStart:Math.round(t.loadEventStart),loadEventEnd:Math.round(t.loadEventEnd),redirectCount:Math.round(t.redirectCount),size:t.transferSize?t.transferSize:0,type:t.type,protocol:t.nextHopProtocol,encodedSize:t.encodedBodySize?t.encodedBodySize:0,decodedSize:t.decodedBodySize?t.decodedBodySize:0},function(t){et(this,void 0,void 0,(function(){var e,n;return nt(this,(function(r){return e=l(),n=[e,t],29===t&&(n.push(An.fetchStart),n.push(An.connectStart),n.push(An.connectEnd),n.push(An.requestStart),n.push(An.responseStart),n.push(An.responseEnd),n.push(An.domInteractive),n.push(An.domComplete),n.push(An.loadEventStart),n.push(An.loadEventEnd),n.push(An.redirectCount),n.push(An.size),n.push(An.type),n.push(An.protocol),n.push(An.encodedSize),n.push(An.decodedSize),qn(),ae(n)),[2]}))}))}(29)}var Rn,Xn=0,Hn=1/0,Ln=0,Un=0,Gn=[],Bn=new Map,Vn=function(){return Xn||0},Yn=function(){if(!Gn.length)return-1;var t=Math.min(Gn.length-1,Math.floor((Vn()-Un)/50));return Gn[t].latency},Jn=function(){Un=Vn(),Gn.length=0,Bn.clear()},Wn=function(t){if(t.interactionId&&!(t.duration<40)){!function(t){"interactionCount"in performance?Xn=performance.interactionCount:t.interactionId&&(Hn=Math.min(Hn,t.interactionId),Ln=Math.max(Ln,t.interactionId),Xn=Ln?(Ln-Hn)/7+1:0)}(t);var e=Gn[Gn.length-1],n=Bn.get(t.interactionId);if(n||Gn.length<10||t.duration>(null==e?void 0:e.latency)){if(n)t.duration>n.latency&&(n.latency=t.duration);else{var r={id:t.interactionId,latency:t.duration};Bn.set(r.id,r),Gn.push(r)}Gn.sort((function(t,e){return e.latency-t.latency})),Gn.length>10&&Gn.splice(10).forEach((function(t){return Bn.delete(t.id)}))}}},Zn=["navigation","resource","longtask","first-input","layout-shift","largest-contentful-paint","event"];function Fn(){try{Rn&&Rn.disconnect(),Rn=new PerformanceObserver(fn(Kn));for(var t=0,e=Zn;t<e.length;t++){var n=e[t];PerformanceObserver.supportedEntryTypes.indexOf(n)>=0&&("layout-shift"===n&&L(9,0),Rn.observe({type:n,buffered:!0}))}}catch(t){}}function Kn(t){!function(t){for(var e=(!("visibilityState"in document)||"visible"===document.visibilityState),n=0;n<t.length;n++){var r=t[n];switch(r.entryType){case"navigation":Dn(r);break;case"resource":var a=r.name;ke(4,$n(a)),a!==i.upload&&a!==i.fallback||U(28,r.duration);break;case"longtask":H(7);break;case"first-input":e&&U(10,r.processingStart-r.startTime);break;case"event":e&&"PerformanceEventTiming"in window&&"interactionId"in PerformanceEventTiming.prototype&&(Wn(r),ke(37,Yn().toString()));break;case"layout-shift":e&&!r.hadRecentInput&&L(9,1e3*r.value);break;case"largest-contentful-paint":e&&U(8,r.startTime)}}}(t.getEntries())}var Qn=null;function $n(t){return Qn||(Qn=document.createElement("a")),Qn.href=t,Qn.host}var tr=[P,P,P],er=[P,P,P,Object.freeze({__proto__:null,start:function(){qn(),function(){navigator&&navigator.connection&&ke(27,navigator.connection.effectiveType),window.PerformanceObserver&&PerformanceObserver.supportedEntryTypes&&("complete"!==document.readyState?hn(window,"load",G.bind(this,Fn,0)):Fn())}()},stop:function(){Rn&&Rn.disconnect(),Rn=null,Jn(),Qn=null,qn()}}),P],nr=er;function rr(t){void 0===t&&(t=null),nr="gemx"===(null==t?void 0:t.mode)?tr:er,function(){try{var t=navigator&&"globalPrivacyControl"in navigator&&1==navigator.globalPrivacyControl;return!1===Cn&&"undefined"!=typeof Promise&&window.MutationObserver&&document.createTreeWalker&&"now"in Date&&"now"in performance&&"undefined"!=typeof WeakMap&&!t}catch(t){return!1}}()&&(!function(t){if(null===t||Cn)return!1;for(var e in t)e in i&&(i[e]=t[e])}(t),Nn(),qt(),nr.forEach((function(t){return fn(t.start)()})),null===t&&cr())}function ar(){zn()&&(nr.slice().reverse().forEach((function(t){return fn(t.stop)()})),Dt(),jn(),void 0!==ir&&(ir[ur]=function(){(ir[ur].q=ir[ur].q||[]).push(arguments),"start"===arguments[0]&&ir[ur].q.unshift(ir[ur].q.pop())&&cr()}))}var or=Object.freeze({__proto__:null,consent:Je,consentv2:We,dlog:ke,event:q,hashText:M,identify:ot,maxMetric:U,measure:fn,metadata:Ve,pause:function(){zn()&&(q("clarityGemX","pause"),null===On&&(On=new Promise((function(t){Tn=t}))))},queue:ae,register:z,resume:function(){zn()&&(On&&(Tn(),On=null,null===En&&Mn()),q("clarityGemX","resume"))},schedule:function(t,e){return void 0===e&&(e=0),et(this,void 0,void 0,(function(){var n,r,a;return nt(this,(function(o){for(n=0,r=In;n<r.length;n++)if(r[n].task===t)return[2];return a=new Promise((function(n){In[1===e?"unshift":"push"]({task:t,resolve:n,id:Ye()})})),null===En&&null===On&&Mn(),[2,a]}))}))},set:at,signal:function(t){zt=t},start:rr,stop:ar,time:l,upgrade:Q,version:d}),ir=window,ur="clarityGemX";function cr(){if(void 0!==ir){if(ir[ur]&&ir[ur].v)return console.warn("Error CL001: Multiple Clarity tags detected.");var t=ir[ur]&&ir[ur].q||[];for(ir[ur]=function(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];return or[t].apply(or,e)},ir[ur].v=d;t.length>0;)ir[ur].apply(ir,t.shift())}}cr()}();
|
package/package.json
CHANGED
package/src/clarity.ts
CHANGED
|
@@ -26,7 +26,7 @@ const ALL: Module[] = [diagnostic, layout, interaction, performance, dynamic];
|
|
|
26
26
|
let modules: Module[] = ALL;
|
|
27
27
|
|
|
28
28
|
export function start(config: Config = null): void {
|
|
29
|
-
modules = config
|
|
29
|
+
modules = config?.mode === "gemx" ? GEMX : ALL;
|
|
30
30
|
// Check that browser supports required APIs and we do not attempt to start Clarity multiple times
|
|
31
31
|
if (core.check()) {
|
|
32
32
|
core.config(config);
|
package/src/core/version.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
let version = "0.8.
|
|
1
|
+
let version = "0.8.90";
|
|
2
2
|
export default version;
|
package/src/data/gemx.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { GemXConfig } from "@clarity-types/data";
|
|
2
2
|
|
|
3
3
|
const defaultConfig: GemXConfig = {
|
|
4
|
+
debug: false,
|
|
4
5
|
excludeClassNames: [],
|
|
5
6
|
ignoreMutationClassNames: [],
|
|
6
7
|
discoverTrigger: null,
|
|
@@ -10,6 +11,7 @@ let _config: GemXConfig = { ...defaultConfig };
|
|
|
10
11
|
|
|
11
12
|
export function start(): void {
|
|
12
13
|
_config = {
|
|
14
|
+
debug: new URLSearchParams(window.location.search).has("gemx_debug") || (window?.GemXHeatmap?.debug ?? false),
|
|
13
15
|
excludeClassNames: (window?.GemXHeatmap?.excludeClassNames ?? []),
|
|
14
16
|
ignoreMutationClassNames: (window?.GemXHeatmap?.ignoreMutationClassNames ?? []),
|
|
15
17
|
discoverTrigger: (window?.GemXHeatmap?.discoverTrigger ?? null),
|
|
@@ -27,3 +29,7 @@ export function set(config: Partial<GemXConfig>): void {
|
|
|
27
29
|
export function get(): GemXConfig {
|
|
28
30
|
return _config;
|
|
29
31
|
}
|
|
32
|
+
|
|
33
|
+
export function isDebug(): boolean {
|
|
34
|
+
return _config.debug;
|
|
35
|
+
}
|
package/src/data/upload.ts
CHANGED
|
@@ -23,6 +23,7 @@ import { signalsEvent } from "@src/data/signal";
|
|
|
23
23
|
import { snapshot } from "@src/insight/snapshot";
|
|
24
24
|
import * as dynamic from "@src/core/dynamic";
|
|
25
25
|
import * as gemxUpload from "@src/data/gemx-upload";
|
|
26
|
+
import * as gemx from "@src/data/gemx";
|
|
26
27
|
|
|
27
28
|
let discoverBytes: number = 0;
|
|
28
29
|
let playbackBytes: number = 0;
|
|
@@ -173,7 +174,21 @@ async function upload(final: boolean = false, type?: string): Promise<void> {
|
|
|
173
174
|
let last = final === true;
|
|
174
175
|
|
|
175
176
|
// In some cases envelope has null data because it's part of the shutdown process while there's one upload call queued which might introduce runtime error
|
|
176
|
-
if(!envelope.data) return;
|
|
177
|
+
if (!envelope.data) return;
|
|
178
|
+
|
|
179
|
+
const isDebug = gemx.isDebug();
|
|
180
|
+
if (!type && isDebug) {
|
|
181
|
+
const trackedEvents: [number, string][] = [
|
|
182
|
+
[Event.Click, "click"],
|
|
183
|
+
[Event.Scroll, "scroll"],
|
|
184
|
+
];
|
|
185
|
+
const eventSet = new Set(analysis.map(item => (JSON.parse(item) as Token[])[1]));
|
|
186
|
+
const labels: string[] = [];
|
|
187
|
+
for (const [eventType, label] of trackedEvents) {
|
|
188
|
+
if (eventSet.has(eventType)) labels.push(label);
|
|
189
|
+
}
|
|
190
|
+
type = labels.length > 0 ? labels.join("-") : undefined;
|
|
191
|
+
}
|
|
177
192
|
|
|
178
193
|
let e = JSON.stringify(envelope.envelope(last));
|
|
179
194
|
let a = `[${analysis.join()}]`;
|
package/src/interaction/index.ts
CHANGED
|
@@ -49,7 +49,7 @@ const ALL_OBSERVE = { allRoots: [scroll], documentOnly: [click, clipboard, point
|
|
|
49
49
|
let modules: Module[] = ALL;
|
|
50
50
|
|
|
51
51
|
export function start(): void {
|
|
52
|
-
modules = config
|
|
52
|
+
modules = config?.mode === "gemx" ? GEMX : ALL;
|
|
53
53
|
modules.forEach(m => m.start());
|
|
54
54
|
}
|
|
55
55
|
|
|
@@ -58,7 +58,7 @@ export function stop(): void {
|
|
|
58
58
|
}
|
|
59
59
|
|
|
60
60
|
export function observe(root: Node): void {
|
|
61
|
-
const observeModules = config
|
|
61
|
+
const observeModules = config?.mode === "gemx" ? GEMX_OBSERVE : ALL_OBSERVE;
|
|
62
62
|
observeModules.allRoots.forEach(m => m.observe(root));
|
|
63
63
|
if (root.nodeType === Node.DOCUMENT_NODE) {
|
|
64
64
|
observeModules.documentOnly.forEach(m => m.observe(root));
|
|
@@ -36,27 +36,46 @@ function fire(): void {
|
|
|
36
36
|
flush();
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
-
function schedule(trigger: { scrollDepthPercent?: number; clickCount?: number; activeTimeMs?: number; maxPlaybackBytes?: number }): void {
|
|
39
|
+
function schedule(trigger: { scrollDepthPercent?: number; clickCount?: number; activeTimeMs?: number; delayMs?: number; maxPlaybackBytes?: number }): void {
|
|
40
40
|
triggered = false;
|
|
41
|
-
let
|
|
41
|
+
let windowExpired = false;
|
|
42
|
+
let delayScheduled = false;
|
|
43
|
+
|
|
44
|
+
const scheduleDelayedFire = (type: 'scroll' | 'click'): void => {
|
|
45
|
+
if (delayScheduled || windowExpired) return;
|
|
46
|
+
delayScheduled = true;
|
|
47
|
+
console.log(`[GemX Snapshot] ${type} triggered:`);
|
|
48
|
+
setTimeout(fire, trigger.delayMs ?? 0);
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
if (trigger.activeTimeMs) {
|
|
52
|
+
setTimeout((): void => {
|
|
53
|
+
windowExpired = true;
|
|
54
|
+
scroll.onTrustedScroll(null);
|
|
55
|
+
click.onTrustedClick(null);
|
|
56
|
+
}, trigger.activeTimeMs);
|
|
57
|
+
}
|
|
42
58
|
|
|
43
59
|
if (trigger.scrollDepthPercent) {
|
|
44
60
|
scroll.onTrustedScroll((): void => {
|
|
45
|
-
const
|
|
46
|
-
const
|
|
47
|
-
|
|
61
|
+
const docH = document.documentElement.scrollHeight;
|
|
62
|
+
const vpH = window.innerHeight;
|
|
63
|
+
const maxScrollY = docH - vpH;
|
|
64
|
+
if (maxScrollY <= 0) return;
|
|
65
|
+
|
|
66
|
+
const scrollY = "pageYOffset" in window ? Math.round(window.pageYOffset) : Math.round((document.documentElement as HTMLElement).scrollTop);
|
|
67
|
+
const pct = Math.min(100, Math.round(scrollY / maxScrollY * 100));
|
|
68
|
+
if (pct >= trigger.scrollDepthPercent) { scheduleDelayedFire('scroll'); }
|
|
48
69
|
});
|
|
49
70
|
}
|
|
50
71
|
|
|
51
72
|
if (trigger.clickCount) {
|
|
73
|
+
let clickCount = 0;
|
|
52
74
|
click.onTrustedClick((): void => {
|
|
53
75
|
clickCount++;
|
|
54
|
-
if (clickCount >= trigger.clickCount) {
|
|
76
|
+
if (clickCount >= trigger.clickCount) { scheduleDelayedFire('click'); }
|
|
55
77
|
});
|
|
56
78
|
}
|
|
57
|
-
|
|
58
|
-
if (trigger.activeTimeMs) { setTimeout(fire, trigger.activeTimeMs); }
|
|
59
|
-
// maxPlaybackBytes trigger is handled via gemxUpload.start() callback above
|
|
60
79
|
}
|
|
61
80
|
|
|
62
81
|
function flush(): void {
|
package/src/layout/mutation.ts
CHANGED
|
@@ -20,6 +20,8 @@ import traverse from "@src/layout/traverse";
|
|
|
20
20
|
import processNode from "./node";
|
|
21
21
|
import config from "@src/core/config";
|
|
22
22
|
import * as gemx from "@src/data/gemx";
|
|
23
|
+
import * as gemxUpload from "@src/data/gemx-upload";
|
|
24
|
+
|
|
23
25
|
|
|
24
26
|
let observers: Set<MutationObserver> = new Set();
|
|
25
27
|
let mutations: MutationQueue[] = [];
|
|
@@ -129,7 +131,9 @@ async function processMutation(timer: Timer, mutation: MutationRecord, instance:
|
|
|
129
131
|
let target = mutation.target;
|
|
130
132
|
|
|
131
133
|
const ignoredClasses = gemx.get().ignoreMutationClassNames;
|
|
132
|
-
|
|
134
|
+
// Before processed snapshot, we need to check if the mutation is ignored
|
|
135
|
+
const isSnapshotProcessed = gemxUpload.isActive();
|
|
136
|
+
if (!isSnapshotProcessed && ignoredClasses.length > 0 && target instanceof Element) {
|
|
133
137
|
const el = target as Element;
|
|
134
138
|
if (ignoredClasses.some(cls => el.classList.contains(cls))) { return; }
|
|
135
139
|
}
|
package/types/data.d.ts
CHANGED
|
@@ -598,11 +598,13 @@ export interface GCMConsentState {
|
|
|
598
598
|
export interface DiscoverTrigger {
|
|
599
599
|
scrollDepthPercent?: number; // trigger khi scroll đến X% chiều cao trang
|
|
600
600
|
clickCount?: number; // trigger sau X lần click
|
|
601
|
-
activeTimeMs?: number; //
|
|
601
|
+
activeTimeMs?: number; // window tối đa để nhận trigger (ms)
|
|
602
|
+
delayMs?: number; // delay thêm sau khi điều kiện thỏa trước khi fire
|
|
602
603
|
maxPlaybackBytes?: number; // trigger khi buffer đạt X bytes
|
|
603
604
|
}
|
|
604
605
|
|
|
605
606
|
export interface GemXConfig {
|
|
607
|
+
debug: boolean;
|
|
606
608
|
excludeClassNames: string[];
|
|
607
609
|
ignoreMutationClassNames: string[];
|
|
608
610
|
discoverTrigger: DiscoverTrigger | null;
|
package/types/global.d.ts
CHANGED