clarity-js 0.6.30 → 0.6.31
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.js +41 -20
- package/build/clarity.min.js +1 -1
- package/build/clarity.module.js +41 -20
- package/package.json +1 -1
- package/src/core/version.ts +1 -1
- package/src/diagnostic/internal.ts +2 -1
- package/src/layout/dom.ts +27 -12
- package/src/layout/mutation.ts +1 -0
- package/src/layout/node.ts +1 -0
- package/types/layout.d.ts +1 -0
package/build/clarity.js
CHANGED
|
@@ -80,7 +80,7 @@ function stop$B() {
|
|
|
80
80
|
startTime = 0;
|
|
81
81
|
}
|
|
82
82
|
|
|
83
|
-
var version$1 = "0.6.
|
|
83
|
+
var version$1 = "0.6.31";
|
|
84
84
|
|
|
85
85
|
// tslint:disable: no-bitwise
|
|
86
86
|
function hash (input) {
|
|
@@ -1249,7 +1249,8 @@ function log$1(code, severity, name, message, stack) {
|
|
|
1249
1249
|
}
|
|
1250
1250
|
function csp(e) {
|
|
1251
1251
|
var upload = config$1.upload;
|
|
1252
|
-
|
|
1252
|
+
// Look for first "/" starting after initial "https://" string
|
|
1253
|
+
var parts = upload && typeof upload === "string" /* String */ ? upload.substr(0, upload.indexOf("/", "https://" /* HTTPS */.length)).split("." /* Dot */) : [];
|
|
1253
1254
|
var domain = parts.length >= 2 ? parts.splice(-2).join("." /* Dot */) : null;
|
|
1254
1255
|
// Capture content security policy violation only if disposition value is not explicitly set to "report"
|
|
1255
1256
|
if (domain && e.blockedURI && e.blockedURI.indexOf(domain) >= 0 && e["disposition"] !== "report" /* Report */) {
|
|
@@ -1448,13 +1449,15 @@ var nodes = [];
|
|
|
1448
1449
|
var values = [];
|
|
1449
1450
|
var updateMap = [];
|
|
1450
1451
|
var hashMap = {};
|
|
1452
|
+
var override = [];
|
|
1453
|
+
var unmask = [];
|
|
1451
1454
|
// The WeakMap object is a collection of key/value pairs in which the keys are weakly referenced
|
|
1452
1455
|
var idMap = null; // Maps node => id.
|
|
1453
1456
|
var iframeMap = null; // Maps iframe's contentDocument => parent iframe element
|
|
1454
1457
|
var privacyMap = null; // Maps node => Privacy (enum)
|
|
1455
1458
|
function start$r() {
|
|
1456
1459
|
reset$g();
|
|
1457
|
-
parse(document);
|
|
1460
|
+
parse(document, true);
|
|
1458
1461
|
}
|
|
1459
1462
|
function stop$q() {
|
|
1460
1463
|
reset$g();
|
|
@@ -1465,16 +1468,23 @@ function reset$g() {
|
|
|
1465
1468
|
values = [];
|
|
1466
1469
|
updateMap = [];
|
|
1467
1470
|
hashMap = {};
|
|
1471
|
+
override = [];
|
|
1472
|
+
unmask = [];
|
|
1468
1473
|
idMap = new WeakMap();
|
|
1469
1474
|
iframeMap = new WeakMap();
|
|
1470
1475
|
privacyMap = new WeakMap();
|
|
1471
1476
|
}
|
|
1472
1477
|
// We parse new root nodes for any regions or masked nodes in the beginning (document) and
|
|
1473
1478
|
// later whenever there are new additions or modifications to DOM (mutations)
|
|
1474
|
-
function parse(root) {
|
|
1479
|
+
function parse(root, init) {
|
|
1480
|
+
if (init === void 0) { init = false; }
|
|
1475
1481
|
// Wrap selectors in a try / catch block.
|
|
1476
1482
|
// It's possible for script to receive invalid selectors, e.g. "'#id'" with extra quotes, and cause the code below to fail
|
|
1477
1483
|
try {
|
|
1484
|
+
// Parse unmask configuration into separate query selectors and override tokens as part of initialization
|
|
1485
|
+
if (init) {
|
|
1486
|
+
config$1.unmask.forEach(function (x) { return x.indexOf("!" /* Bang */) < 0 ? unmask.push(x) : override.push(x.substr(1)); });
|
|
1487
|
+
}
|
|
1478
1488
|
// Since mutations may happen on leaf nodes too, e.g. text nodes, which may not support all selector APIs.
|
|
1479
1489
|
// We ensure that the root note supports querySelectorAll API before executing the code below to identify new regions.
|
|
1480
1490
|
if ("querySelectorAll" in root) {
|
|
@@ -1482,7 +1492,7 @@ function parse(root) {
|
|
|
1482
1492
|
metrics(root, config$1.metrics);
|
|
1483
1493
|
dimensions(root, config$1.dimensions);
|
|
1484
1494
|
config$1.mask.forEach(function (x) { return root.querySelectorAll(x).forEach(function (e) { return privacyMap.set(e, 3 /* TextImage */); }); }); // Masked Elements
|
|
1485
|
-
|
|
1495
|
+
unmask.forEach(function (x) { return root.querySelectorAll(x).forEach(function (e) { return privacyMap.set(e, 0 /* None */); }); }); // Unmasked Elements
|
|
1486
1496
|
}
|
|
1487
1497
|
}
|
|
1488
1498
|
catch (e) {
|
|
@@ -1507,17 +1517,15 @@ function add(node, parent, data, source) {
|
|
|
1507
1517
|
var previousId = getPreviousId(node);
|
|
1508
1518
|
var privacy = config$1.content ? 1 /* Sensitive */ : 2 /* Text */;
|
|
1509
1519
|
var parentValue = null;
|
|
1510
|
-
var parentTag = "" /* Empty */;
|
|
1511
1520
|
var regionId = exists(node) ? id : null;
|
|
1512
1521
|
if (parentId >= 0 && values[parentId]) {
|
|
1513
1522
|
parentValue = values[parentId];
|
|
1514
|
-
parentTag = parentValue.data.tag;
|
|
1515
1523
|
parentValue.children.push(id);
|
|
1516
1524
|
regionId = regionId === null ? parentValue.region : regionId;
|
|
1517
1525
|
privacy = parentValue.metadata.privacy;
|
|
1518
1526
|
}
|
|
1519
1527
|
// Check to see if this particular node should be masked or not
|
|
1520
|
-
privacy = getPrivacy(node, data,
|
|
1528
|
+
privacy = getPrivacy(node, data, parentValue, privacy);
|
|
1521
1529
|
// If there's an explicit region attribute set on the element, use it to mark a region on the page
|
|
1522
1530
|
if (data.attributes && "data-clarity-region" /* RegionData */ in data.attributes) {
|
|
1523
1531
|
observe$b(node, data.attributes["data-clarity-region" /* RegionData */]);
|
|
@@ -1612,21 +1620,35 @@ function iframe(node) {
|
|
|
1612
1620
|
var doc = node.nodeType === Node.DOCUMENT_NODE ? node : null;
|
|
1613
1621
|
return doc && iframeMap.has(doc) ? iframeMap.get(doc) : null;
|
|
1614
1622
|
}
|
|
1615
|
-
function getPrivacy(node, data,
|
|
1623
|
+
function getPrivacy(node, data, parent, privacy) {
|
|
1616
1624
|
var attributes = data.attributes;
|
|
1617
1625
|
var tag = data.tag.toUpperCase();
|
|
1618
1626
|
// If this node was explicitly configured to contain sensitive content, use that information and return the value
|
|
1619
1627
|
if (privacyMap.has(node)) {
|
|
1620
1628
|
return privacyMap.get(node);
|
|
1621
1629
|
}
|
|
1630
|
+
// If it's a text node belonging to a STYLE or TITLE tag;
|
|
1631
|
+
// Or, the text node belongs to one of SCRUB_EXCEPTIONS
|
|
1632
|
+
// then reset the privacy setting to ensure we capture the content
|
|
1633
|
+
if (tag === "*T" /* TextTag */ && parent && parent.data) {
|
|
1634
|
+
var path = parent.selector ? parent.selector[0 /* Stable */] : "" /* Empty */;
|
|
1635
|
+
privacy = parent.data.tag === "STYLE" /* StyleTag */ || parent.data.tag === "TITLE" /* TitleTag */ ? 0 /* None */ : privacy;
|
|
1636
|
+
for (var _i = 0, override_1 = override; _i < override_1.length; _i++) {
|
|
1637
|
+
var entry = override_1[_i];
|
|
1638
|
+
if (path.indexOf(entry) >= 0) {
|
|
1639
|
+
privacy = 0 /* None */;
|
|
1640
|
+
break;
|
|
1641
|
+
}
|
|
1642
|
+
}
|
|
1643
|
+
}
|
|
1622
1644
|
// Do not proceed if attributes are missing for the node
|
|
1623
1645
|
if (attributes === null || attributes === undefined) {
|
|
1624
1646
|
return privacy;
|
|
1625
1647
|
}
|
|
1626
1648
|
// Look up for sensitive fields
|
|
1627
1649
|
if ("class" /* Class */ in attributes && privacy === 1 /* Sensitive */) {
|
|
1628
|
-
for (var
|
|
1629
|
-
var match = DISALLOWED_MATCH_1[
|
|
1650
|
+
for (var _a = 0, DISALLOWED_MATCH_1 = DISALLOWED_MATCH; _a < DISALLOWED_MATCH_1.length; _a++) {
|
|
1651
|
+
var match = DISALLOWED_MATCH_1[_a];
|
|
1630
1652
|
if (attributes["class" /* Class */].indexOf(match) >= 0) {
|
|
1631
1653
|
privacy = 2 /* Text */;
|
|
1632
1654
|
break;
|
|
@@ -1638,12 +1660,12 @@ function getPrivacy(node, data, parentTag, privacy) {
|
|
|
1638
1660
|
if (privacy === 0 /* None */) {
|
|
1639
1661
|
var field = "" /* Empty */;
|
|
1640
1662
|
// Be aggressive in looking up any attribute (id, class, name, etc.) for disallowed names
|
|
1641
|
-
for (var
|
|
1642
|
-
var attribute = _b
|
|
1663
|
+
for (var _b = 0, _c = Object.keys(attributes); _b < _c.length; _b++) {
|
|
1664
|
+
var attribute = _c[_b];
|
|
1643
1665
|
field += attributes[attribute].toLowerCase();
|
|
1644
1666
|
}
|
|
1645
|
-
for (var
|
|
1646
|
-
var name_1 = DISALLOWED_NAMES_1[
|
|
1667
|
+
for (var _d = 0, DISALLOWED_NAMES_1 = DISALLOWED_NAMES; _d < DISALLOWED_NAMES_1.length; _d++) {
|
|
1668
|
+
var name_1 = DISALLOWED_NAMES_1[_d];
|
|
1647
1669
|
if (field.indexOf(name_1) >= 0) {
|
|
1648
1670
|
privacy = 2 /* Text */;
|
|
1649
1671
|
break;
|
|
@@ -1666,11 +1688,6 @@ function getPrivacy(node, data, parentTag, privacy) {
|
|
|
1666
1688
|
if ("data-clarity-unmask" /* UnmaskData */ in attributes) {
|
|
1667
1689
|
privacy = 0 /* None */;
|
|
1668
1690
|
}
|
|
1669
|
-
// If it's a text node belonging to a STYLE or TITLE tag; then reset the privacy setting to ensure we capture the content
|
|
1670
|
-
var cTag = tag === "*T" /* TextTag */ ? parentTag : tag;
|
|
1671
|
-
if (cTag === "STYLE" /* StyleTag */ || cTag === "TITLE" /* TitleTag */) {
|
|
1672
|
-
privacy = 0 /* None */;
|
|
1673
|
-
}
|
|
1674
1691
|
return privacy;
|
|
1675
1692
|
}
|
|
1676
1693
|
function diff(a, b, field) {
|
|
@@ -2581,6 +2598,7 @@ function processNode (node, source) {
|
|
|
2581
2598
|
case Node.DOCUMENT_FRAGMENT_NODE:
|
|
2582
2599
|
var shadowRoot = node;
|
|
2583
2600
|
if (shadowRoot.host) {
|
|
2601
|
+
parse(shadowRoot);
|
|
2584
2602
|
var type = typeof (shadowRoot.constructor);
|
|
2585
2603
|
if (type === "function" /* Function */ && shadowRoot.constructor.toString().indexOf("[native code]" /* NativeCode */) >= 0) {
|
|
2586
2604
|
observe$2(shadowRoot);
|
|
@@ -2942,6 +2960,9 @@ function process$1() {
|
|
|
2942
2960
|
if (type && target && target.ownerDocument) {
|
|
2943
2961
|
parse(target.ownerDocument);
|
|
2944
2962
|
}
|
|
2963
|
+
if (type && target && target.nodeType == Node.DOCUMENT_FRAGMENT_NODE && target.host) {
|
|
2964
|
+
parse(target);
|
|
2965
|
+
}
|
|
2945
2966
|
switch (type) {
|
|
2946
2967
|
case "attributes" /* Attributes */:
|
|
2947
2968
|
processNode(target, 3 /* Attributes */);
|
package/build/clarity.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(){"use strict";var t=Object.freeze({__proto__:null,get track(){return yr},get start(){return Or},get queue(){return Nr},get stop(){return _r}}),e=Object.freeze({__proto__:null,get data(){return wr},get start(){return jr},get check(){return zr},get trigger(){return Rr},get compute(){return Ar},get stop(){return Lr}}),n=Object.freeze({__proto__:null,get data(){return Yr},get updates(){return Hr},get start(){return qr},get stop(){return Xr},get log(){return Wr},get compute(){return Ur},get reset(){return Pr}}),r=Object.freeze({__proto__:null,get data(){return Br},get callback(){return Fr},get start(){return Gr},get userAgentData(){return Jr},get stop(){return Zr},get metadata(){return Kr},get id(){return Qr},get consent(){return $r},get clear(){return ta},get save(){return ea}}),a=Object.freeze({__proto__:null,get data(){return ca},get start(){return da},get stop(){return fa},get envelope(){return ha}}),i={projectId:null,delay:1e3,lean:!1,track:!0,content:!0,mask:[],unmask:[],regions:[],metrics:[],dimensions:[],cookies:[],report:null,upload:null,fallback:null,upgrade:null},o=0;function u(t){return void 0===t&&(t=null),t=t||performance.now(),Math.max(Math.round(t-o),0)}var l="0.6.30";function s(t){for(var e=5381,n=e,r=0;r<t.length;r+=2){if(e=(e<<5)+e^t.charCodeAt(r),r+1<t.length)n=(n<<5)+n^t.charCodeAt(r+1)}return Math.abs(e+11579*n).toString(36)}var c=null,d=null,f=!1;function h(){f&&(c={time:u(),event:4,data:{visible:d.visible,docWidth:d.docWidth,docHeight:d.docHeight,screenWidth:d.screenWidth,screenHeight:d.screenHeight,scrollX:d.scrollX,scrollY:d.scrollY,pointerX:d.pointerX,pointerY:d.pointerY,activityTime:d.activityTime}}),d=d||{visible:1,docWidth:0,docHeight:0,screenWidth:0,screenHeight:0,scrollX:0,scrollY:0,pointerX:0,pointerY:0,activityTime:0}}function p(t,e,n){switch(t){case 8:d.docWidth=e,d.docHeight=n;break;case 11:d.screenWidth=e,d.screenHeight=n;break;case 10:d.scrollX=e,d.scrollY=n;break;default:d.pointerX=e,d.pointerY=n}f=!0}function v(t){d.activityTime=t}function g(t,e){d.visible="visible"===e?1:0,d.visible||v(t),f=!0}function m(){f&&Cr(4)}var b=Object.freeze({__proto__:null,get state(){return c},start:function(){f=!1,h()},reset:h,track:p,activity:v,visibility:g,compute:m,stop:function(){h()}}),y=null;function w(t,e){Ia()&&t&&e&&"string"==typeof t&&"string"==typeof e&&t.length<255&&e.length<255&&(y={key:t,value:e},Cr(24))}var k,E=null,S=null;function M(t,e){void 0===e&&(e=1),t in E||(E[t]=0),t in S||(S[t]=0),E[t]+=e,S[t]+=e}function O(t,e){null!==e&&(t in E||(E[t]=0),t in S||(S[t]=0),E[t]+=e,S[t]+=e)}function N(t,e){null!==e&&!1===isNaN(e)&&(t in E||(E[t]=0),(e>E[t]||0===E[t])&&(S[t]=e,E[t]=e))}function _(t,e,n){return window.setTimeout(ga(t),e,n)}function T(t){return window.clearTimeout(t)}var x=0,I=0,D=null;function C(){D&&T(D),D=_(j,I),x=u()}function j(){var t=u();k={gap:t-x},Cr(25),k.gap<3e5?D=_(j,I):_a&&(w("clarity","suspend"),Pa(),["mousemove","touchstart"].forEach((function(t){return ba(document,t,Ca)})),["resize","scroll","pageshow"].forEach((function(t){return ba(window,t,Ca)})))}var z=Object.freeze({__proto__:null,get data(){return k},start:function(){I=6e4,x=0},reset:C,stop:function(){T(D),x=0,I=0}}),R=null;function A(t,e){if(t in R){var n=R[t],r=n[n.length-1];e-r[0]>100?R[t].push([e,0]):r[1]=e-r[0]}else R[t]=[[e,0]]}function L(){Cr(36)}function Y(){R={}}var H=Object.freeze({__proto__:null,get data(){return R},start:function(){R={}},stop:function(){R={}},track:A,compute:L,reset:Y}),q=null;function X(t){Ia()&&i.lean&&(i.lean=!1,q={key:t},ea(),i.upgrade&&i.upgrade(t),Cr(3))}var W=Object.freeze({__proto__:null,get data(){return q},start:function(){!i.lean&&i.upgrade&&i.upgrade("Config"),q=null},upgrade:X,stop:function(){q=null}}),U=null;function P(t,e){F(t,"string"==typeof e?[e]:e)}function B(t,e,n){void 0===e&&(e=null),void 0===n&&(n=null),F("userId",[t]),F("sessionId",[e]),F("pageId",[n])}function F(t,e){if(Ia()&&t&&e&&"string"==typeof t&&t.length<255){for(var n=(t in U?U[t]:[]),r=0;r<e.length;r++)"string"==typeof e[r]&&e[r].length<255&&n.push(e[r]);U[t]=n}}function V(){Cr(34)}function G(){U={}}function J(t,e,n,r){return new(n||(n=Promise))((function(a,i){function o(t){try{l(r.next(t))}catch(t){i(t)}}function u(t){try{l(r.throw(t))}catch(t){i(t)}}function l(t){var e;t.done?a(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(o,u)}l((r=r.apply(t,e||[])).next())}))}function Z(t,e){var n,r,a,i,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return i={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function u(i){return function(u){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(a=2&i[0]?r.return:i[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,i[1])).done)return a;switch(r=0,a&&(i=[2&i[0],a.value]),i[0]){case 0:case 1:a=i;break;case 4:return o.label++,{value:i[1],done:!1};case 5:o.label++,r=i[1],i=[0];continue;case 7:i=o.ops.pop(),o.trys.pop();continue;default:if(!(a=o.trys,(a=a.length>0&&a[a.length-1])||6!==i[0]&&2!==i[0])){o=0;continue}if(3===i[0]&&(!a||i[1]>a[0]&&i[1]<a[3])){o.label=i[1];break}if(6===i[0]&&o.label<a[1]){o.label=a[1],a=i;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(i);break}a[2]&&o.ops.pop(),o.trys.pop();continue}i=e.call(t,o)}catch(t){i=[6,t],r=0}finally{n=a=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,u])}}}var K="CompressionStream"in window;function Q(t){return J(this,void 0,void 0,(function(){var e,n;return Z(this,(function(r){switch(r.label){case 0:return r.trys.push([0,3,,4]),K?(e=new ReadableStream({start:function(e){return J(this,void 0,void 0,(function(){return Z(this,(function(n){return e.enqueue(t),e.close(),[2]}))}))}}).pipeThrough(new TextEncoderStream).pipeThrough(new window.CompressionStream("gzip")),n=Uint8Array.bind,[4,$(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 $(t){return J(this,void 0,void 0,(function(){var e,n,r,a,i;return Z(this,(function(o){switch(o.label){case 0:e=t.getReader(),n=[],r=!1,a=[],o.label=1;case 1:return r?[3,3]:[4,e.read()];case 2:return i=o.sent(),r=i.done,a=i.value,r?[2,n]:(n.push.apply(n,a),[3,1]);case 3:return[2,n]}}))}))}var tt=[b,n,Object.freeze({__proto__:null,get data(){return U},start:function(){G()},set:P,identify:B,compute:V,reset:G,stop:function(){G()}}),e,H,r,a,t,z,W];function et(){E={},S={},M(5),tt.forEach((function(t){return ga(t.start)()}))}function nt(){tt.slice().reverse().forEach((function(t){return ga(t.stop)()})),E={},S={}}function rt(){V(),m(),Ur(),Cr(0),L(),Ar()}function at(t,e,n,r){if(void 0===r&&(r=!1),t)switch(n){case 0:return t;case 1:switch(e){case"*T":case"value":case"placeholder":return function(t){for(var e=-1,n=!1,r=!1,a=!1,i=null,o=0;o<t.length;o++){var u=t.charCodeAt(o);n=n||u>=48&&u<=57,r=r||64===u,a=9===u||10===u||13===u||32===u,(0===o||o===t.length-1||a)&&((n||r)&&(null===i&&(i=t.split("")),ut(i,e,a?o:o+1)),a&&(n=!1,r=!1,e=o))}return i?i.join(""):t}(t);case"input":return ot(t)}return t;case 2:case 3:switch(e){case"*T":return r?function(t){var e=t.trim();if(e.length>0){var n=e[0],r=t.indexOf(n),a=t.substr(0,r),i=t.substr(r+e.length);return""+a+e.length.toString(36)+i}return t}(t):it(t);case"src":case"srcset":case"title":case"alt":return 3===n?"":t;case"value":case"click":case"input":return ot(t);case"placeholder":return it(t)}}return t}function it(t){return t.replace(/\S/gi,"•")}function ot(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 ut(t,e,n){for(var r=e+1;r<n;r++)t[r]="•"}var lt={},st=[],ct=null,dt=null,ft=null;function ht(){lt={},st=[],ct=null,dt=null}function pt(t,e){return void 0===e&&(e=0),J(this,void 0,void 0,(function(){var n,r,a;return Z(this,(function(i){for(n=0,r=st;n<r.length;n++)if(r[n].task===t)return[2];return a=new Promise((function(n){st[1===e?"unshift":"push"]({task:t,resolve:n,id:Qr()})})),null===ct&&null===dt&&vt(),[2,a]}))}))}function vt(){var t=st.shift();t&&(ct=t,t.task().then((function(){t.id===Qr()&&(t.resolve(),ct=null,vt())})).catch((function(e){t.id===Qr()&&(e&&Xt(0,1,e.name,e.message,e.stack),ct=null,vt())})))}function gt(t){var e=wt(t);return e in lt?performance.now()-lt[e].start>lt[e].yield?0:1:2}function mt(t){lt[wt(t)]={start:performance.now(),calls:0,yield:30}}function bt(t){var e=performance.now(),n=wt(t),r=e-lt[n].start;O(t.cost,r),M(5),lt[n].calls>0&&O(4,r)}function yt(t){return J(this,void 0,void 0,(function(){var e,n;return Z(this,(function(r){switch(r.label){case 0:return(e=wt(t))in lt?(bt(t),n=lt[e],[4,kt()]):[3,2];case 1:n.yield=r.sent().timeRemaining(),function(t){var e=wt(t);if(lt&<[e]){var n=lt[e].calls,r=lt[e].yield;mt(t),lt[e].calls=n+1,lt[e].yield=r}}(t),r.label=2;case 2:return[2,e in lt?1:2]}}))}))}function wt(t){return t.id+"."+t.cost}function kt(){return J(this,void 0,void 0,(function(){return Z(this,(function(t){switch(t.label){case 0:return dt?[4,dt]:[3,2];case 1:t.sent(),t.label=2;case 2:return[2,new Promise((function(t){St(t,{timeout:5e3})}))]}}))}))}var Et,St=window.requestIdleCallback||function(t,e){var n=performance.now(),r=new MessageChannel,a=r.port1,i=r.port2;a.onmessage=function(r){var a=performance.now(),o=a-n,u=a-r.data;if(u>30&&o<e.timeout)requestAnimationFrame((function(){i.postMessage(a)}));else{var l=o>e.timeout;t({didTimeout:l,timeRemaining:function(){return l?30:Math.max(0,30-u)}})}},requestAnimationFrame((function(){i.postMessage(performance.now())}))};function Mt(){Et=null}function Ot(){var t=document.body,e=document.documentElement,n=t?t.clientWidth:null,r=t?t.scrollWidth:null,a=t?t.offsetWidth:null,i=e?e.clientWidth:null,o=e?e.scrollWidth:null,u=e?e.offsetWidth:null,l=Math.max(n,r,a,i,o,u),s=t?t.clientHeight:null,c=t?t.scrollHeight:null,d=t?t.offsetHeight:null,f=e?e.clientHeight:null,h=e?e.scrollHeight:null,p=e?e.offsetHeight:null,v=Math.max(s,c,d,f,h,p);null!==Et&&l===Et.width&&v===Et.height||null===l||null===v||(Et={width:l,height:v},Nt(8))}function Nt(t,e,n){return void 0===e&&(e=null),void 0===n&&(n=null),J(this,void 0,void 0,(function(){var r,a,o,l,s,c,d,f,h,g,m,b,y,w,k,E,S,M,O,N,_,T,x,I,D,C;return Z(this,(function(j){switch(j.label){case 0:switch(r=n||u(),a=[r,t],t){case 8:return[3,1];case 7:return[3,2];case 37:return[3,3];case 5:case 6:return[3,4]}return[3,11];case 1:return o=Et,a.push(o.width),a.push(o.height),p(t,o.width,o.height),Nr(a),[3,11];case 2:for(l=0,s=Te;l<s.length;l++)c=s[l],(a=[c.time,7]).push(c.data.id),a.push(c.data.interaction),a.push(c.data.visibility),a.push(c.data.name),Nr(a);return qe(),[3,11];case 3:for(d=0,f=xt;d<f.length;d++)h=f[d],a.push(h.id),a.push(h.width),a.push(h.height);return jt(),Nr(a),[3,11];case 4:if(2===gt(e))return[3,11];if(!((g=Me()).length>0))return[3,10];m=0,b=g,j.label=5;case 5:return m<b.length?(y=b[m],0!==(w=gt(e))?[3,7]:[4,yt(e)]):[3,9];case 6:w=j.sent(),j.label=7;case 7:if(2===w)return[3,9];for(k=y.data,E=y.metadata.active,S=y.metadata.suspend,M=y.metadata.privacy,O=function(t){var e=t.metadata.privacy;return"*T"===t.data.tag&&!(0===e||1===e)}(y),N=E?["tag","attributes","value"]:["tag"],function(t){if(!1===It)return;if(Dt=null===Dt?new ResizeObserver(Ct):Dt){var e=ke(t);if(e&&null!==e.metadata.size&&0===e.metadata.size.length){var n=we(t);if(n&&n.nodeType===Node.ELEMENT_NODE){var r=n,a=r.getBoundingClientRect();e.metadata.size=[Math.floor(100*a.width),Math.floor(100*a.height)],Dt.observe(r)}}}}(y.id),_=0,T=N;_<T.length;_++)if(k[x=T[_]])switch(x){case"tag":I=y.metadata.size,D=O?-1:1,a.push(y.id*D),y.parent&&E&&a.push(y.parent),y.previous&&E&&a.push(y.previous),a.push(S?"*M":k[x]),I&&2===I.length&&a.push("#"+_t(I[0])+"."+_t(I[1]));break;case"attributes":for(C in k[x])void 0!==k[x][C]&&a.push(Tt(C,k[x][C],M));break;case"value":a.push(at(k[x],k.tag,M,O))}j.label=8;case 8:return m++,[3,5];case 9:6===t&&v(r),Nr(function(t){for(var e=[],n={},r=0,a=null,i=0;i<t.length;i++)if("string"==typeof t[i]){var o=t[i],u=n[o]||-1;u>=0?a?a.push(u):(a=[u],e.push(a),r++):(a=null,e.push(o),n[o]=r++)}else a=null,e.push(t[i]),r++;return e}(a),!i.lean),j.label=10;case 10:return[3,11];case 11:return[2]}}))}))}function _t(t){return t.toString(36)}function Tt(t,e,n){return t+"="+at(e,t,n)}var xt=[],It=!1,Dt=null;function Ct(t){window.requestAnimationFrame((function(){for(var e=0,n=t;e<n.length;e++){var r=n[e],a=r.target,i=a?ve(a):null;if(i){var o=ke(i).metadata.size,u=r.borderBoxSize,l=null,s=null;if(u&&u.length>0)l=Math.floor(100*u[0].inlineSize),s=Math.floor(100*u[0].blockSize);else{var c=a.getBoundingClientRect();l=Math.floor(100*c.width),s=Math.floor(100*c.height)}l!==o[0]&&s!==o[1]&&(o=[l,s],xt.push({id:i,width:l,height:s}))}}xt.length>0&&Nt(37)}))}function jt(){xt=[]}function zt(){jt(),Dt&&(Dt.disconnect(),Dt=null),It=!1}var Rt,At={};function Lt(t){var e=t.error||t;if(e.message in At||(At[e.message]=0),At[e.message]++>=5)return!0;if(e&&e.message){if(Rt={message:e.message,line:t.lineno,column:t.colno,stack:e.stack,source:t.filename},e.message.indexOf("ResizeObserver")>=0)return zt(),!1;Yt(31)}return!0}function Yt(t){return J(this,void 0,void 0,(function(){var e;return Z(this,(function(n){switch(e=[u(),t],t){case 31:e.push(Rt.message),e.push(Rt.line),e.push(Rt.column),e.push(Rt.stack),e.push(Rt.source),Nr(e);break;case 33:Ht&&(e.push(Ht.code),e.push(Ht.name),e.push(Ht.message),e.push(Ht.stack),e.push(Ht.severity),Nr(e,!1))}return[2]}))}))}var Ht,qt={};function Xt(t,e,n,r,a){void 0===n&&(n=null),void 0===r&&(r=null),void 0===a&&(a=null);var i=n?n+"|"+r:"";t in qt&&qt[t].indexOf(i)>=0||(Ht={code:t,name:n,message:r,stack:a,severity:e},t in qt?qt[t].push(i):qt[t]=[i],Yt(33))}function Wt(t){var e=i.upload,n=e?e.substr(0,e.indexOf("/","https://".length)).split("."):[],r=n.length>=2?n.splice(-2).join("."):null;r&&t.blockedURI&&t.blockedURI.indexOf(r)>=0&&"report"!==t.disposition&&Xt(7,1,t.blockedURI)}var Ut=/1/g,Pt=/[^0-9\.]/g,Bt=/[^0-9\.,]/g,Ft={};function Vt(t,e){for(var n=function(e){var n=e[0],r=e[1],a=e[2],i=e[3],o=!0;switch(a){case 0:o=i&&!!top.location.href.match(function(t){return Ft[t]=t in Ft?Ft[t]:new RegExp(t),Ft[t]}(i));break;case 1:o=i&&!!Gt(i)}o&&t.querySelectorAll(r).forEach((function(t){return ze(t,n.toString())}))},r=0,a=e;r<a.length;r++){n(a[r])}}function Gt(t,e,n){void 0===e&&(e=null),void 0===n&&(n=window);var r=t.split("."),a=r.shift();return n&&n[a]?r.length>0?Gt(r.join("."),e,n[a]):null===e||e===typeof n[a]?n[a]:null:null}function Jt(t){return t?t.substr(0,256):t}function Zt(t,e,n){void 0===n&&(n=!0);try{e=e||1;var r=document.documentElement.lang;if(Intl&&Intl.NumberFormat&&r&&n){t=t.replace(Bt,"");var a=Intl.NumberFormat(r).format(11111).replace(Ut,""),i=Intl.NumberFormat(r).format(1.1).replace(Ut,"");return Math.round(parseFloat(t.replace(new RegExp("\\"+a,"g"),"").replace(new RegExp("\\"+i),"."))*e)}return Math.round(parseFloat(t.replace(Pt,""))*e)}catch(t){return null}}var Kt=["DIV","TR","P","LI","UL","A","BUTTON"];function Qt(t,e){void 0===e&&(e=!1);var n=t.attributes,r=t.prefix?t.prefix[e?1:0]:null,a=e||n&&!("class"in n)||Kt.indexOf(t.tag)>=0?":nth-of-type("+t.position+")":"";switch(t.tag){case"STYLE":case"TITLE":case"LINK":case"META":case"*T":case"*D":return"";case"HTML":return"HTML";default:if(null===r)return"";r+=">",t.tag=0===t.tag.indexOf("svg:")?t.tag.substr("svg:".length):t.tag;var i=""+r+t.tag+a,o="class"in n&&n.class.length>0?n.class.trim().split(/\s+/):null;if(e){var u="id"in n&&n.id.length>0?n.id:null;i=(o="BODY"!==t.tag&&o?o.filter((function(t){return!$t(t)})):[]).length>0?""+r+t.tag+"."+o.join(".")+a:i,i=u&&!1===$t(u)?function(t){var e=t.lastIndexOf("*S"),n=t.lastIndexOf("iframe:HTML"),r=Math.max(e,n);if(r<0)return"";var a=t.indexOf(">",r)+1;return t.substr(0,a)}(r)+"#"+u:i}else i=o?""+r+t.tag+"."+o.join(".")+a:i;return i}}function $t(t){for(var e=0;e<t.length;e++){var n=t.charCodeAt(e);if(n>=48&&n<=57)return!0}return!1}var te=1,ee=["password","hidden","email","tel"],ne=["addr","cell","code","dob","email","mob","name","phone","secret","social","ssn","tel","zip","pass","card","account","cvv","ccv"],re=["address","password","contact"],ae=[],ie=[],oe=[],ue={},le=null,se=null,ce=null;function de(){he(),pe(document)}function fe(){he()}function he(){te=1,ae=[],ie=[],oe=[],ue={},le=new WeakMap,se=new WeakMap,ce=new WeakMap}function pe(t){try{"querySelectorAll"in t&&(Vt(t,i.regions),function(t,e){for(var n=function(e){var n=e[0],r=e[1],a=e[2],i=e[3];if(a)switch(r){case 0:t.querySelectorAll(a).forEach((function(t){N(n,Zt(t.innerText,i))}));break;case 2:t.querySelectorAll("["+a+"]").forEach((function(t){N(n,Zt(t.getAttribute(a),i,!1))}));break;case 1:N(n,Gt(a,"number"))}},r=0,a=e;r<a.length;r++)n(a[r])}(t,i.metrics),function(t,e){for(var n=function(e){var n=e[0],r=e[1],a=e[2];if(a)switch(r){case 0:t.querySelectorAll(a).forEach((function(t){Wr(n,Jt(t.innerText))}));break;case 2:t.querySelectorAll("["+a+"]").forEach((function(t){Wr(n,Jt(t.getAttribute(a)))}));break;case 1:Wr(n,Jt(Gt(a,"string")))}},r=0,a=e;r<a.length;r++)n(a[r])}(t,i.dimensions),i.mask.forEach((function(e){return t.querySelectorAll(e).forEach((function(t){return ce.set(t,3)}))})),i.unmask.forEach((function(e){return t.querySelectorAll(e).forEach((function(t){return ce.set(t,0)}))})))}catch(t){Xt(5,1,t?t.name:null)}}function ve(t,e){if(void 0===e&&(e=!1),null===t)return null;var n=le.get(t);return!n&&e&&(n=te++,le.set(t,n)),n||null}function ge(t){var e=!1;if(t.nodeType===Node.ELEMENT_NODE&&"IFRAME"===t.tagName){var n=t;try{n.contentDocument&&(se.set(n.contentDocument,n),e=!0)}catch(t){}}return e}function me(t){var e=t.nodeType===Node.DOCUMENT_NODE?t:null;return e&&se.has(e)?se.get(e):null}function be(t,e,n){if("object"==typeof t[n]&&"object"==typeof e[n]){for(var r in t[n])if(t[n][r]!==e[n][r])return!0;for(var r in e[n])if(e[n][r]!==t[n][r])return!0;return!1}return t[n]!==e[n]}function ye(t){var e=t.parent&&t.parent in ie?ie[t.parent]:null,n=e?e.selector:null,r=t.data,a=function(t,e){e.metadata.position=1;for(var n=t?t.children.indexOf(e.id):-1;n-- >0;){var r=ie[t.children[n]];if(e.data.tag===r.data.tag){e.metadata.position=r.metadata.position+1;break}}return e.metadata.position}(e,t),i={tag:r.tag,prefix:n,position:a,attributes:r.attributes};t.selector=[Qt(i),Qt(i,!0)],t.hash=t.selector.map((function(t){return t?s(t):null})),t.hash.forEach((function(e){return ue[e]=t.id}))}function we(t){return t in ae?ae[t]:null}function ke(t){return t in ie?ie[t]:null}function Ee(t){var e=ve(t);return e in ie?ie[e]:null}function Se(t){return ve(t)in ae}function Me(){for(var t=[],e=0,n=oe;e<n.length;e++){var r=n[e];r in ie&&t.push(ie[r])}return oe=[],t}function Oe(t){for(var e=null;null===e&&t.previousSibling;)e=ve(t.previousSibling),t=t.previousSibling;return e}function Ne(t,e,n,r){void 0===n&&(n=!0),void 0===r&&(r=!1);var a=oe.indexOf(t);a>=0&&1===e&&r?(oe.splice(a,1),oe.push(t)):-1===a&&n&&oe.push(t)}var _e=Object.freeze({__proto__:null,start:de,stop:fe,parse:pe,getId:ve,add:function(t,e,n,r){var a=ve(t,!0),o=e?ve(e):null,u=Oe(t),l=i.content?1:2,s=null,c="",d=Re(t)?a:null;o>=0&&ie[o]&&(c=(s=ie[o]).data.tag,s.children.push(a),d=null===d?s.region:d,l=s.metadata.privacy),l=function(t,e,n,r){var a=e.attributes,i=e.tag.toUpperCase();if(ce.has(t))return ce.get(t);if(null==a)return r;if("class"in a&&1===r)for(var o=0,u=re;o<u.length;o++){var l=u[o];if(a.class.indexOf(l)>=0){r=2;break}}if("INPUT"===i)if(0===r){for(var s="",c=0,d=Object.keys(a);c<d.length;c++){s+=a[d[c]].toLowerCase()}for(var f=0,h=ne;f<h.length;f++){var p=h[f];if(s.indexOf(p)>=0){r=2;break}}}else 1===r&&(r=a&&"submit"===a.type?0:2);"type"in a&&ee.indexOf(a.type)>=0&&(r=2);"data-clarity-mask"in a&&(r=3);"data-clarity-unmask"in a&&(r=0);var v="*T"===i?n:i;"STYLE"!==v&&"TITLE"!==v||(r=0);return r}(t,n,c,l),n.attributes&&"data-clarity-region"in n.attributes&&(ze(t,n.attributes["data-clarity-region"]),d=a),ae[a]=t,ie[a]={id:a,parent:o,previous:u,children:[],data:n,selector:null,hash:null,region:d,metadata:{active:!0,suspend:!1,privacy:l,position:null,size:null}},ye(ie[a]),function(t,e){var n=t.data,r="*T"===n.tag&&n.value&&n.value.length>15,a=2===t.metadata.privacy||3===t.metadata.privacy;r&&a&&e&&null===e.metadata.size&&(e.metadata.size=[]);"IMG"===n.tag&&3===t.metadata.privacy&&(t.metadata.size=[])}(ie[a],s),Ne(a,r)},update:function(t,e,n,r){var a=ve(t),i=e?ve(e):null,o=Oe(t),u=!1,l=!1;if(a in ie){var s=ie[a];if(s.metadata.active=!0,s.previous!==o&&(u=!0,s.previous=o),s.parent!==i){u=!0;var c=s.parent;if(s.parent=i,null!==i&&i>=0){var d=null===o?0:ie[i].children.indexOf(o)+1;ie[i].children.splice(d,0,a),s.region=Re(t)?a:ie[i].region}else!function(t,e){if(t in ie){var n=ie[t];n.metadata.active=!1,n.parent=null,Ne(t,e)}}(a,r);if(null!==c&&c>=0){var f=ie[c].children.indexOf(a);f>=0&&ie[c].children.splice(f,1)}l=!0}for(var h in n)be(s.data,n,h)&&(u=!0,s.data[h]=n[h]);ye(s),Ne(a,r,u,l)}},sameorigin:ge,iframe:me,getNode:we,getValue:ke,get:Ee,lookup:function(t){return t in ue?ue[t]:null},has:Se,updates:Me}),Te=[],xe=null,Ie={},De=[],Ce=!1,je=null;function ze(t,e){!1===xe.has(t)&&(xe.set(t,e),(je=null===je&&Ce?new IntersectionObserver(Le,{threshold:[0,.2,.4,.6,.8,1]}):je)&&t&&t.nodeType===Node.ELEMENT_NODE&&je.observe(t))}function Re(t){return xe&&xe.has(t)}function Ae(){for(var t=[],e=0,n=De;e<n.length;e++){var r=n[e],a=ve(r.node);a in Ie||(a?(r.data.id=a,Ie[a]=r.data,Te.push(He(r.data))):t.push(r))}De=t,Te.length>0&&Nt(7)}function Le(t){for(var e=0,n=t;e<n.length;e++){var r=n[e],a=r.target,i=r.boundingClientRect,o=r.intersectionRect,u=r.rootBounds;if(xe.has(a)&&i.width+i.height>0&&u.width>0&&u.height>0){var l=a?ve(a):null,s=l in Ie?Ie[l]:{id:l,name:xe.get(a),interaction:16,visibility:0},c=(o?o.width*o.height*1/(u.width*u.height):0)>.05||r.intersectionRatio>.8,d=(c||10==s.visibility)&&Math.abs(i.top)+u.height>i.height;Ye(a,s,s.interaction,d?13:c?10:0),s.visibility>=13&&je&&je.unobserve(a)}}Te.length>0&&Nt(7)}function Ye(t,e,n,r){var a=n>e.interaction||r>e.visibility;e.interaction=n>e.interaction?n:e.interaction,e.visibility=r>e.visibility?r:e.visibility,e.id?(e.id in Ie&&a||!(e.id in Ie))&&(Ie[e.id]=e,Te.push(He(e))):De.push({node:t,data:e})}function He(t){return{time:u(),data:{id:t.id,interaction:t.interaction,visibility:t.visibility,name:t.name}}}function qe(){Te=[]}function Xe(t){var e={x:0,y:0};if(t&&t.offsetParent)do{var n=t.offsetParent,r=null===n?me(t.ownerDocument):null;e.x+=t.offsetLeft,e.y+=t.offsetTop,t=r||n}while(t);return e}var We=["input","textarea","radio","button","canvas"],Ue=[];function Pe(t){ba(t,"click",Be.bind(this,9,t),!0)}function Be(t,e,n){var r=me(e),a=r?r.contentDocument.documentElement:document.documentElement,i="pageX"in n?Math.round(n.pageX):"clientX"in n?Math.round(n.clientX+a.scrollLeft):null,o="pageY"in n?Math.round(n.pageY):"clientY"in n?Math.round(n.clientY+a.scrollTop):null;if(r){var l=Xe(r);i=i?i+Math.round(l.x):i,o=o?o+Math.round(l.y):o}var s=lr(n),c=function(t){for(;t&&t!==document;){if(t.nodeType===Node.ELEMENT_NODE){var e=t;if("A"===e.tagName)return e}t=t.parentNode}return null}(s),d=function(t){var e=null,n=document.documentElement;if("function"==typeof t.getBoundingClientRect){var r=t.getBoundingClientRect();r&&r.width>0&&r.height>0&&(e={x:Math.floor(r.left+("pageXOffset"in window?window.pageXOffset:n.scrollLeft)),y:Math.floor(r.top+("pageYOffset"in window?window.pageYOffset:n.scrollTop)),w:Math.floor(r.width),h:Math.floor(r.height)})}return e}(s);0===n.detail&&d&&(i=Math.round(d.x+d.w/2),o=Math.round(d.y+d.h/2));var f=d?Math.max(Math.floor((i-d.x)/d.w*32767),0):0,h=d?Math.max(Math.floor((o-d.y)/d.h*32767),0):0;null!==i&&null!==o&&(Ue.push({time:u(),event:t,data:{target:s,x:i,y:o,eX:f,eY:h,button:n.button,reaction:Ve(s),context:Ge(c),text:Fe(s),link:c?c.href:null,hash:null}}),pt(cr.bind(this,t)))}function Fe(t){var e=null;if(t){var n=t.textContent||t.value||t.alt;n&&(e=n.trim().replace(/\s+/g," ").substr(0,25))}return e}function Ve(t){if(t.nodeType===Node.ELEMENT_NODE){var e=t.tagName.toLowerCase();if(We.indexOf(e)>=0)return 0}return 1}function Ge(t){if(t&&t.hasAttribute("target"))switch(t.getAttribute("target")){case"_blank":return 1;case"_parent":return 2;case"_top":return 3}return 0}function Je(){Ue=[]}var Ze=[];function Ke(t,e){Ze.push({time:u(),event:38,data:{target:lr(e),action:t}}),pt(cr.bind(this,38))}function Qe(){Ze=[]}var $e=null,tn=[];function en(t){var e=lr(t),n=Ee(e);if(e&&e.type&&n){var r=void 0;switch(e.type){case"radio":case"checkbox":r=e.checked?"true":"false";break;case"range":r=e.value;break;default:r=at(e.value,"input",n.metadata.privacy)}var a={target:e,value:r};tn.length>0&&tn[tn.length-1].data.target===a.target&&tn.pop(),tn.push({time:u(),event:27,data:a}),T($e),$e=_(nn,500,27)}}function nn(t){pt(cr.bind(this,t))}function rn(){tn=[]}var an,on=[],un=null;function ln(t,e,n){var r=me(e),a=r?r.contentDocument.documentElement:document.documentElement,i="pageX"in n?Math.round(n.pageX):"clientX"in n?Math.round(n.clientX+a.scrollLeft):null,o="pageY"in n?Math.round(n.pageY):"clientY"in n?Math.round(n.clientY+a.scrollTop):null;if(r){var l=Xe(r);i=i?i+Math.round(l.x):i,o=o?o+Math.round(l.y):o}null!==i&&null!==o&&cn({time:u(),event:t,data:{target:lr(n),x:i,y:o}})}function sn(t,e,n){var r=me(e),a=r?r.contentDocument.documentElement:document.documentElement,i=n.changedTouches,o=u();if(i)for(var l=0;l<i.length;l++){var s=i[l],c="clientX"in s?Math.round(s.clientX+a.scrollLeft):null,d="clientY"in s?Math.round(s.clientY+a.scrollTop):null;c=c&&r?c+Math.round(r.offsetLeft):c,d=d&&r?d+Math.round(r.offsetTop):d,null!==c&&null!==d&&cn({time:o,event:t,data:{target:lr(n),x:c,y:d}})}}function cn(t){switch(t.event){case 12:case 15:case 19:var e=on.length,n=e>1?on[e-2]:null;n&&function(t,e){var n=t.data.x-e.data.x,r=t.data.y-e.data.y,a=Math.sqrt(n*n+r*r),i=e.time-t.time,o=e.data.target===t.data.target;return e.event===t.event&&o&&a<20&&i<25}(n,t)&&on.pop(),on.push(t),T(un),un=_(dn,500,t.event);break;default:on.push(t),dn(t.event)}}function dn(t){pt(cr.bind(this,t))}function fn(){on=[]}function hn(){var t=document.documentElement;an={width:t&&"clientWidth"in t?Math.min(t.clientWidth,window.innerWidth):window.innerWidth,height:t&&"clientHeight"in t?Math.min(t.clientHeight,window.innerHeight):window.innerHeight},cr(11)}function pn(){an=null}var vn=[],gn=null;function mn(t){void 0===t&&(t=null);var e=window,n=document.documentElement,r=t?lr(t):n;if(r&&r.nodeType===Node.DOCUMENT_NODE){var a=me(r);e=a?a.contentWindow:e,r=n=r.documentElement}var i=r===n&&"pageXOffset"in e?Math.round(e.pageXOffset):Math.round(r.scrollLeft),o=r===n&&"pageYOffset"in e?Math.round(e.pageYOffset):Math.round(r.scrollTop),l={time:u(),event:10,data:{target:r,x:i,y:o}};if((null!==t||0!==i||0!==o)&&null!==i&&null!==o){var s=vn.length,c=s>1?vn[s-2]:null;c&&function(t,e){var n=t.data.x-e.data.x,r=t.data.y-e.data.y;return n*n+r*r<400&&e.time-t.time<25}(c,l)&&vn.pop(),vn.push(l),T(gn),gn=_(bn,500,10)}}function bn(t){pt(cr.bind(this,t))}var yn=null,wn=null,kn=null;function En(t){var e=(t.nodeType===Node.DOCUMENT_NODE?t:document).getSelection();if(null!==e&&!(null===e.anchorNode&&null===e.focusNode||e.anchorNode===e.focusNode&&e.anchorOffset===e.focusOffset)){var n=yn.start?yn.start:null;null!==wn&&null!==yn.start&&n!==e.anchorNode&&(T(kn),Sn(21)),yn={start:e.anchorNode,startOffset:e.anchorOffset,end:e.focusNode,endOffset:e.focusOffset},wn=e,T(kn),kn=_(Sn,500,21)}}function Sn(t){pt(cr.bind(this,t))}function Mn(){wn=null,yn={start:0,startOffset:0,end:0,endOffset:0}}var On,Nn,_n=[];function Tn(t){_n.push({time:u(),event:39,data:{target:lr(t)}}),pt(cr.bind(this,39))}function xn(){_n=[]}function In(t){On={name:t.type},cr(26),Pa()}function Dn(){On=null}function Cn(){Nn={visible:"visibilityState"in document?document.visibilityState:"default"},cr(28)}function jn(){Nn=null}function zn(t){!function(t){var e=me(t);ba(e?e.contentWindow:t===document?window:t,"scroll",mn,!0)}(t),t.nodeType===Node.DOCUMENT_NODE&&(Pe(t),function(t){ba(t,"cut",Ke.bind(this,0),!0),ba(t,"copy",Ke.bind(this,1),!0),ba(t,"paste",Ke.bind(this,2),!0)}(t),function(t){ba(t,"mousedown",ln.bind(this,13,t),!0),ba(t,"mouseup",ln.bind(this,14,t),!0),ba(t,"mousemove",ln.bind(this,12,t),!0),ba(t,"mousewheel",ln.bind(this,15,t),!0),ba(t,"dblclick",ln.bind(this,16,t),!0),ba(t,"touchstart",sn.bind(this,17,t),!0),ba(t,"touchend",sn.bind(this,18,t),!0),ba(t,"touchmove",sn.bind(this,19,t),!0),ba(t,"touchcancel",sn.bind(this,20,t),!0)}(t),function(t){ba(t,"input",en,!0)}(t),function(t){ba(t,"selectstart",En.bind(this,t),!0),ba(t,"selectionchange",En.bind(this,t),!0)}(t),function(t){ba(t,"submit",Tn,!0)}(t))}var Rn=Object.freeze({__proto__:null,start:function(){dr=[],hr(),Je(),Qe(),fn(),rn(),ba(window,"resize",hn),hn(),ba(document,"visibilitychange",Cn),Cn(),vn=[],mn(),Mn(),xn(),ba(window,"pagehide",In)},stop:function(){dr=[],hr(),Je(),Qe(),T(un),on.length>0&&dn(on[on.length-1].event),T($e),rn(),pn(),jn(),T(gn),vn=[],Mn(),T(kn),xn(),Dn()},observe:zn}),An=/[^0-9\.]/g;function Ln(t){for(var e=0,n=Object.keys(t);e<n.length;e++){var r=n[e],a=t[r];if("@type"===r&&"string"==typeof a)switch(a=(a=a.toLowerCase()).indexOf("article")>=0||a.indexOf("posting")>=0?"article":a){case"article":case"recipe":Wr(5,t[r]),Wr(8,t.creator),Wr(18,t.headline);break;case"product":Wr(5,t[r]),Wr(10,t.name),Wr(12,t.sku),t.brand&&Wr(6,t.brand.name);break;case"aggregaterating":t.ratingValue&&(N(11,Yn(t.ratingValue,100)),N(18,Yn(t.bestRating)),N(19,Yn(t.worstRating))),N(12,Yn(t.ratingCount)),N(17,Yn(t.reviewCount));break;case"person":Wr(8,t.name);break;case"offer":Wr(7,t.availability),Wr(14,t.itemCondition),Wr(13,t.priceCurrency),Wr(12,t.sku),N(13,Yn(t.price));break;case"brand":Wr(6,t.name)}null!==a&&"object"==typeof a&&Ln(a)}}function Yn(t,e){if(void 0===e&&(e=1),null!==t)switch(typeof t){case"number":return Math.round(t*e);case"string":return Math.round(parseFloat(t.replace(An,""))*e)}return null}var Hn=["title","alt","onload","onfocus","onerror"],qn=/[\r\n]+/g;function Xn(t,e){var n=null;if(2===e&&!1===Se(t))return n;0!==e&&t.nodeType===Node.TEXT_NODE&&t.parentElement&&"STYLE"===t.parentElement.tagName&&(t=t.parentNode);var r=!1===Se(t)?"add":"update",a=t.parentElement?t.parentElement:null,i=t.ownerDocument!==document;switch(t.nodeType){case Node.DOCUMENT_TYPE_NODE:a=i&&t.parentNode?me(t.parentNode):a;var o=t,u={tag:(i?"iframe:":"")+"*D",attributes:{name:o.name,publicId:o.publicId,systemId:o.systemId}};_e[r](t,a,u,e);break;case Node.DOCUMENT_NODE:t===document&&pe(document),Wn(t);break;case Node.DOCUMENT_FRAGMENT_NODE:var l=t;if(l.host)if("function"===typeof l.constructor&&l.constructor.toString().indexOf("[native code]")>=0){Wn(l);for(var s="",c=0,d=("adoptedStyleSheets"in l?l.adoptedStyleSheets:[]);c<d.length;c++){s+=Pn(d[c])}var f={tag:"*S",attributes:{style:s}};_e[r](t,l.host,f,e)}else _e[r](t,l.host,{tag:"*P",attributes:{}},e);break;case Node.TEXT_NODE:if(a=a||t.parentNode,"update"===r||a&&Se(a)&&"STYLE"!==a.tagName){var h={tag:"*T",value:t.nodeValue};_e[r](t,a,h,e)}break;case Node.ELEMENT_NODE:var p=t,v=p.tagName,g=function(t){var e={},n=t.attributes;if(n&&n.length>0)for(var r=0;r<n.length;r++){var a=n[r].name;Hn.indexOf(a)<0&&(e[a]=n[r].value)}"INPUT"===t.tagName&&!("value"in e)&&t.value&&(e.value=t.value);return e}(p);switch(a=t.parentElement?t.parentElement:t.parentNode?t.parentNode:null,"http://www.w3.org/2000/svg"===p.namespaceURI&&(v="svg:"+v),v){case"HTML":a=i&&a?me(a):null;var m={tag:(i?"iframe:":"")+v,attributes:g};_e[r](t,a,m,e);break;case"SCRIPT":if("type"in g&&"application/ld+json"===g.type)try{Ln(JSON.parse(p.text.replace(qn,"")))}catch(t){}break;case"NOSCRIPT":break;case"META":var b="property"in g?"property":"name"in g?"name":null;if(b&&"content"in g){var y=g.content;switch(g[b]){case"og:title":Wr(20,y);break;case"og:type":Wr(19,y);break;case"generator":Wr(21,y)}}break;case"HEAD":var w={tag:v,attributes:g};location&&(w.attributes["*B"]=location.protocol+"//"+location.hostname),_e[r](t,a,w,e);break;case"STYLE":var k={tag:v,attributes:g,value:Un(p)};_e[r](t,a,k,e);break;case"IFRAME":var E=t,S={tag:v,attributes:g};ge(E)&&(!function(t){!1===Se(t)&&ba(t,"load",ur.bind(this,t,"childList"),!0)}(E),S.attributes["*O"]="true",E.contentDocument&&E.contentWindow&&"loading"!==E.contentDocument.readyState&&(n=E.contentDocument)),_e[r](t,a,S,e);break;default:var M={tag:v,attributes:g};p.shadowRoot&&(n=p.shadowRoot),_e[r](t,a,M,e)}}return n}function Wn(t){Se(t)||(!function(t){try{var e=window.Zone&&"__symbol__"in window.Zone?window.Zone.__symbol__("MutationObserver"):"MutationObserver",n=e in window?new window[e](ga(er)):null;n&&(n.observe(t,{attributes:!0,childList:!0,characterData:!0,subtree:!0}),Fn.push(n))}catch(t){Xt(2,0,t?t.name:null)}}(t),zn(t))}function Un(t){var e=t.textContent?t.textContent.trim():"",n=t.dataset?Object.keys(t.dataset).length:0;return(0===e.length||n>0)&&(e=Pn(t.sheet)),e}function Pn(t){var e="",n=null;try{n=t?t.cssRules:[]}catch(t){if(Xt(1,1,t?t.name:null),t&&"SecurityError"!==t.name)throw t}if(null!==n)for(var r=0;r<n.length;r++)e+=n[r].cssText;return e}function Bn(t,e,n){return J(this,void 0,void 0,(function(){var r,a,i,o,u;return Z(this,(function(l){switch(l.label){case 0:r=[t],l.label=1;case 1:if(!(r.length>0))return[3,4];for(a=r.shift(),i=a.firstChild;i;)r.push(i),i=i.nextSibling;return 0!==(o=gt(e))?[3,3]:[4,yt(e)];case 2:o=l.sent(),l.label=3;case 3:return 2===o?[3,4]:((u=Xn(a,n))&&r.push(u),[3,1]);case 4:return[2]}}))}))}var Fn=[],Vn=[],Gn=null,Jn=null,Zn=null,Kn=[],Qn=null,$n=null,tr={};function er(t){var e=u();A(6,e),Vn.push({time:e,mutations:t}),pt(nr,1).then((function(){ga(Ot)(),ga(Ae)()}))}function nr(){return J(this,void 0,void 0,(function(){var t,e,n,r,a,i,o,l,s;return Z(this,(function(c){switch(c.label){case 0:mt(t={id:Qr(),cost:3}),c.label=1;case 1:if(!(Vn.length>0))return[3,8];e=Vn.shift(),n=0,r=e.mutations,c.label=2;case 2:return n<r.length?(a=r[n],0!==(i=gt(t))?[3,4]:[4,yt(t)]):[3,6];case 3:i=c.sent(),c.label=4;case 4:if(2===i)return[3,6];switch(o=a.target,(l=function(t,e){var n=t.target?Ee(t.target.parentNode):null;if(n&&"HTML"!==n.data.tag){var r=u()>$n,a=Ee(t.target),i=a&&a.selector?a.selector.join():t.target.nodeName,o=[n.selector?n.selector.join():"",i,t.attributeName,rr(t.addedNodes),rr(t.removedNodes)].join();tr[o]=o in tr?tr[o]:[0];var l=tr[o];if(!1===r&&l[0]>=10&&ar(l[1],2,e),l[0]=r?l[0]+1:1,10===l[0])return l[1]=t.removedNodes,"suspend";if(l[0]>10)return""}return t.type}(a,t))&&o&&o.ownerDocument&&pe(o.ownerDocument),l){case"attributes":Xn(o,3);break;case"characterData":Xn(o,4);break;case"childList":ar(a.addedNodes,1,t),ar(a.removedNodes,2,t);break;case"suspend":(s=Ee(o))&&(s.metadata.suspend=!0)}c.label=5;case 5:return n++,[3,2];case 6:return[4,Nt(6,t,e.time)];case 7:return c.sent(),[3,1];case 8:return bt(t),[2]}}))}))}function rr(t){for(var e=[],n=0;t&&n<t.length;n++)e.push(t[n].nodeName);return e.join()}function ar(t,e,n){return J(this,void 0,void 0,(function(){var r,a,i;return Z(this,(function(o){switch(o.label){case 0:r=t?t.length:0,a=0,o.label=1;case 1:return a<r?1!==e?[3,2]:(Bn(t[a],n,e),[3,5]):[3,6];case 2:return 0!==(i=gt(n))?[3,4]:[4,yt(n)];case 3:i=o.sent(),o.label=4;case 4:if(2===i)return[3,6];Xn(t[a],e),o.label=5;case 5:return a++,[3,1];case 6:return[2]}}))}))}function ir(t){return Kn.indexOf(t)<0&&Kn.push(t),Qn&&T(Qn),Qn=_(or,33),t}function or(){for(var t=0,e=Kn;t<e.length;t++){var n=e[t],r=n&&n.nodeType===Node.DOCUMENT_FRAGMENT_NODE;r&&Se(n)||ur(n,r?"childList":"characterData")}Kn=[]}function ur(t,e){ga(er)([{addedNodes:[t],attributeName:null,attributeNamespace:null,nextSibling:null,oldValue:null,previousSibling:null,removedNodes:[],target:t,type:e}])}function lr(t){var e=t.composed&&t.composedPath?t.composedPath():null,n=e&&e.length>0?e[0]:t.target;return $n=u()+3e3,n.nodeType===Node.DOCUMENT_NODE?n.documentElement:n}function sr(t,e){var n={id:0,hash:null,privacy:2,node:t};if(t){var r=Ee(t);null!==r&&(n.id=r.id,n.hash=r.hash,n.privacy=r.metadata.privacy,r.region&&function(t,e){var n=we(t),r=t in Ie?Ie[t]:{id:t,visibility:0,interaction:16,name:xe.get(n)},a=16;switch(e){case 9:a=20;break;case 27:a=30}Ye(n,r,a,r.visibility)}(r.region,e))}return n}function cr(t){return J(this,void 0,void 0,(function(){var e,n,r,a,i,o,l,s,c,d,f,h,v,m,b,y,w,k,E,S,M,O,N,_,T,x,I,D,C;return Z(this,(function(j){switch(e=u(),n=[e,t],t){case 13:case 14:case 12:case 15:case 16:case 17:case 18:case 19:case 20:for(r=0,a=on;r<a.length;r++)D=a[r],(i=sr(D.data.target,D.event)).id>0&&((n=[D.time,D.event]).push(i.id),n.push(D.data.x),n.push(D.data.y),Nr(n),p(D.event,D.data.x,D.data.y));fn();break;case 9:for(o=0,l=Ue;o<l.length;o++)D=l[o],s=sr(D.data.target,D.event),n=[D.time,D.event],c=s.hash.join("."),n.push(s.id),n.push(D.data.x),n.push(D.data.y),n.push(D.data.eX),n.push(D.data.eY),n.push(D.data.button),n.push(D.data.reaction),n.push(D.data.context),n.push(at(D.data.text,"click",s.privacy)),n.push(D.data.link),n.push(c),Nr(n),pr(D.time,D.event,c,D.data.x,D.data.y,D.data.reaction,D.data.context);Je();break;case 38:for(d=0,f=Ze;d<f.length;d++)D=f[d],n=[D.time,D.event],(T=sr(D.data.target,D.event)).id>0&&(n.push(T.id),n.push(D.data.action),Nr(n));Qe();break;case 11:h=an,n.push(h.width),n.push(h.height),p(t,h.width,h.height),pn(),Nr(n);break;case 26:v=On,n.push(v.name),Dn(),Nr(n);break;case 27:for(m=0,b=tn;m<b.length;m++)D=b[m],y=sr(D.data.target,D.event),(n=[D.time,D.event]).push(y.id),n.push(D.data.value),Nr(n);rn();break;case 21:(w=yn)&&(k=sr(w.start,t),E=sr(w.end,t),n.push(k.id),n.push(w.startOffset),n.push(E.id),n.push(w.endOffset),Mn(),Nr(n));break;case 10:for(S=0,M=vn;S<M.length;S++)D=M[S],(O=sr(D.data.target,D.event)).id>0&&((n=[D.time,D.event]).push(O.id),n.push(D.data.x),n.push(D.data.y),Nr(n),p(D.event,D.data.x,D.data.y));vn=[];break;case 39:for(N=0,_=_n;N<_.length;N++)D=_[N],n=[D.time,D.event],(T=sr(D.data.target,D.event)).id>0&&(n.push(T.id),Nr(n));xn();break;case 22:for(x=0,I=fr;x<I.length;x++)D=I[x],(n=[D.time,D.event]).push(D.data.type),n.push(D.data.hash),n.push(D.data.x),n.push(D.data.y),n.push(D.data.reaction),n.push(D.data.context),Nr(n,!1);hr();break;case 28:C=Nn,n.push(C.visible),Nr(n),g(e,C.visible),jn()}return[2]}))}))}var dr=[],fr=[];function hr(){fr=[]}function pr(t,e,n,r,a,i,o){void 0===i&&(i=1),void 0===o&&(o=0),dr.push({time:t,event:22,data:{type:e,hash:n,x:r,y:a,reaction:i,context:o}}),p(e,r,a)}var vr,gr,mr,br,yr,wr,kr=0,Er=0,Sr=null,Mr=0;function Or(){br=!0,kr=0,Er=0,Mr=0,vr=[],gr=[],mr={},yr=null}function Nr(t,e){if(void 0===e&&(e=!0),br){var n=u(),r=t.length>1?t[1]:null,a=JSON.stringify(t);switch(r){case 5:kr+=a.length;case 37:case 6:Er+=a.length,vr.push(a);break;default:gr.push(a)}M(25);var o=function(){var t=!1===i.lean&&kr>0?100:ca.sequence*i.delay;return"string"==typeof i.upload?Math.max(Math.min(t,3e4),100):i.delay}();n-Mr>2*o&&(T(Sr),Sr=null),e&&null===Sr&&(25!==r&&C(),Sr=_(Tr,o),Mr=n,zr(Er))}}function _r(){T(Sr),Tr(!0),kr=0,Er=0,Mr=0,vr=[],gr=[],mr={},yr=null,br=!1}function Tr(t){return void 0===t&&(t=!1),J(this,void 0,void 0,(function(){var e,n,r,a,o,u,l,s;return Z(this,(function(c){switch(c.label){case 0:return Sr=null,(e=!1===i.lean&&Er>0&&(Er<1048576||ca.sequence>0))&&N(1,1),Ae(),function(){var t=[];fr=[];for(var e=ca.start+ca.duration,n=Math.max(e-2e3,0),r=0,a=dr;r<a.length;r++){var i=a[r];i.time>=n&&(i.time<=e&&fr.push(i),t.push(i))}dr=t,cr(22)}(),rt(),n=!0===t,r=JSON.stringify(ha(n)),a="["+gr.join()+"]",o=e?"["+vr.join()+"]":"",u=function(t){return t.p.length>0?'{"e":'+t.e+',"a":'+t.a+',"p":'+t.p+"}":'{"e":'+t.e+',"a":'+t.a+"}"}({e:r,a:a,p:o}),n?(s=null,[3,3]):[3,1];case 1:return[4,Q(u)];case 2:s=c.sent(),c.label=3;case 3:return O(2,(l=s)?l.length:u.length),xr(u,l,ca.sequence,n),gr=[],e&&(vr=[],Er=0,kr=0),[2]}}))}))}function xr(t,e,n,r){if(void 0===r&&(r=!1),"string"==typeof i.upload){var a=i.upload,o=!1;if(r&&"sendBeacon"in navigator&&(o=navigator.sendBeacon(a,t))&&Dr(n),!1===o){n in mr?mr[n].attempts++:mr[n]={data:t,attempts:1};var u=new XMLHttpRequest;u.open("POST",a),null!==n&&(u.onreadystatechange=function(){ga(Ir)(u,n)}),u.withCredentials=!0,e?(u.setRequestHeader("Accept","application/x-clarity-gzip"),u.send(e)):u.send(t)}}else if(i.upload){(0,i.upload)(t),Dr(n)}}function Ir(t,e){var n=mr[e];t&&4===t.readyState&&n&&((t.status<200||t.status>208)&&n.attempts<=1?t.status>=400&&t.status<500?Rr(6):(0===t.status&&(i.upload=i.fallback?i.fallback:i.upload),xr(n.data,null,e)):(yr={sequence:e,attempts:n.attempts,status:t.status},n.attempts>1&&Cr(2),200===t.status&&t.responseText&&function(t){switch(t&&t.length>0?t.split(" ")[0]:""){case"END":Rr(6);break;case"UPGRADE":X("Auto")}}(t.responseText),0===t.status&&(xr(n.data,null,e,!0),Rr(3)),t.status>=200&&t.status<=208&&Dr(e),delete mr[e]))}function Dr(t){1===t&&ea()}function Cr(t){var e=[u(),t];switch(t){case 4:var n=c;n&&((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),Nr(e,!1)),h();break;case 25:e.push(k.gap),Nr(e);break;case 35:e.push(wr.check),Nr(e,!1);break;case 3:e.push(q.key),Nr(e);break;case 2:e.push(yr.sequence),e.push(yr.attempts),e.push(yr.status),Nr(e,!1);break;case 24:e.push(y.key),e.push(y.value),Nr(e);break;case 34:var r=Object.keys(U);if(r.length>0){for(var a=0,i=r;a<i.length;a++){var o=i[a];e.push(o),e.push(U[o])}G(),Nr(e,!1)}break;case 0:var l=Object.keys(S);if(l.length>0){for(var s=0,d=l;s<d.length;s++){var f=d[s],p=parseInt(f,10);e.push(p),e.push(Math.round(S[f]))}S={},Nr(e,!1)}break;case 1:var v=Object.keys(Hr);if(v.length>0){for(var g=0,m=v;g<m.length;g++){var b=m[g];p=parseInt(b,10);e.push(p),e.push(Hr[b])}Pr(),Nr(e,!1)}break;case 36:var w=Object.keys(R);if(w.length>0){for(var E=0,M=w;E<M.length;E++){var O=M[E];p=parseInt(O,10);e.push(p),e.push([].concat.apply([],R[O]))}Y(),Nr(e,!1)}}}function jr(){wr={check:0}}function zr(t){if(0===wr.check){var e=wr.check;e=ca.sequence>=128?1:e,e=u()>72e5?2:e,(e=t>10485760?2:e)!==wr.check&&Rr(e)}}function Rr(t){wr.check=t,ta(),Pa()}function Ar(){0!==wr.check&&Cr(35)}function Lr(){wr=null}var Yr=null,Hr=null;function qr(){Yr={},Hr={}}function Xr(){Yr={},Hr={}}function Wr(t,e){e&&(e=""+e,t in Yr||(Yr[t]=[]),Yr[t].indexOf(e)<0&&(Yr[t].push(e),t in Hr||(Hr[t]=[]),Hr[t].push(e),Yr[t].length>128&&Rr(5)))}function Ur(){Cr(1)}function Pr(){Hr={}}var Br=null,Fr=null,Vr=null;function Gr(){Fr=null,Vr=null;var t=navigator&&"userAgent"in navigator?navigator.userAgent:"",e=document&&document.title?document.title:"",n=function(){var t={session:aa(),ts:Math.round(Date.now()),count:1,upgrade:null,upload:""},e=ua("_clsk");if(e){var n=e.split("|");n.length>=5&&t.ts-ia(n[1])<18e5&&(t.session=n[0],t.count=ia(n[2])+1,t.upgrade=ia(n[3]),t.upload=n.length>=6?"https://"+n[5]+"/"+n[4]:"https://"+n[4])}return t}(),r=oa();Br={projectId:i.projectId||s(location.host),userId:r.id,sessionId:n.session,pageNum:n.count},i.lean=i.track&&null!==n.upgrade?0===n.upgrade:i.lean,i.upload=i.track&&"string"==typeof i.upload&&n.upload&&n.upload.length>"https://".length?n.upload:i.upload,Wr(0,t),Wr(3,e),Wr(1,location.href),Wr(2,document.referrer),Wr(15,function(){var t=aa();if(i.track&&na(window,"sessionStorage")){var e=sessionStorage.getItem("_cltk");t=e||t,sessionStorage.setItem("_cltk",t)}return t}()),Wr(16,document.documentElement.lang),Wr(17,document.dir),navigator&&(Wr(9,navigator.userLanguage||navigator.language),N(26,navigator.webdriver?1:0),Jr()),N(0,n.ts),N(1,0),screen&&(N(14,Math.round(screen.width)),N(15,Math.round(screen.height)),N(16,Math.round(screen.colorDepth)));for(var a=0,o=i.cookies;a<o.length;a++){var u=o[a],l=ua(u);l&&P(u,l)}ra(r)}function Jr(){navigator.userAgentData&&navigator.userAgentData.getHighEntropyValues&&navigator.userAgentData.getHighEntropyValues(["model","platform","platformVersion","uaFullVersion"]).then((function(t){var e;Wr(22,t.platform),Wr(23,t.platformVersion),null===(e=t.brands)||void 0===e||e.forEach((function(t){Wr(24,t.name+"~"+t.version)})),Wr(25,t.model),N(27,t.mobile?1:0)}))}function Zr(){Fr=null,Vr=null,Br=null}function Kr(t,e){void 0===e&&(e=!0),Br&&!1===e?t(Br,!i.lean):Fr=t}function Qr(){return Br?[Br.userId,Br.sessionId,Br.pageNum].join("."):""}function $r(){Ia()&&(i.track=!0,ra(oa(),1))}function ta(){la("_clsk","",0)}function ea(){var t=Math.round(Date.now()),e=i.lean?0:1,n=i.upload&&"string"==typeof i.upload?i.upload.replace("https://",""):"";e&&Fr&&Fr(Br,!i.lean),la("_clsk",[Br.sessionId,t,Br.pageNum,e,n].join("|"),1)}function na(t,e){try{return!!t[e]}catch(t){return!1}}function ra(t,e){void 0===e&&(e=null),e=null===e?t.consent:e;var n=Math.ceil((Date.now()+31536e6)/864e5);(null===t.expiry||Math.abs(n-t.expiry)>=1||t.consent!==e)&&la("_clck",[Br.userId,1,n.toString(36),e].join("|"),365)}function aa(){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 ia(t,e){return void 0===e&&(e=10),parseInt(t,e)}function oa(){var t={id:aa(),expiry:null,consent:0},e=ua("_clck");if(e&&e.length>0){for(var n=e.split("|"),r=0,a=0,o=document.cookie.split(";");a<o.length;a++){r+="_clck"===o[a].split("=")[0].trim()?1:0}if(1===n.length||r>1){var u=";expires="+new Date(0).toUTCString()+";path=/";document.cookie="_clck="+u,document.cookie="_clsk="+u}n.length>2&&(t.expiry=ia(n[2],36)),n.length>3&&1===ia(n[3])&&(t.consent=1),i.track=i.track||1===t.consent,t.id=i.track?n[0]:t.id}return t}function ua(t){if(na(document,"cookie")){var e=document.cookie.split(";");if(e)for(var n=0;n<e.length;n++){var r=e[n].split("=");if(r.length>1&&r[0]&&r[0].trim()===t)return r[1]}}return null}function la(t,e,n){if(i.track&&(navigator&&navigator.cookieEnabled||na(document,"cookie"))){var r=new Date;r.setDate(r.getDate()+n);var a=t+"="+e+";"+(r?"expires="+r.toUTCString():"")+";path=/";try{if(null===Vr){for(var o=location.hostname?location.hostname.split("."):[],u=o.length-1;u>=0;u--)if(Vr="."+o[u]+(Vr||""),u<o.length-1&&(document.cookie=a+";domain="+Vr,ua(t)===e))return;Vr=""}}catch(t){Vr=""}document.cookie=Vr?a+";domain="+Vr:a}}var sa,ca=null;function da(){var t=Br;ca={version:l,sequence:0,start:0,duration:0,projectId:t.projectId,userId:t.userId,sessionId:t.sessionId,pageNum:t.pageNum,upload:0,end:0}}function fa(){ca=null}function ha(t){return ca.start=ca.start+ca.duration,ca.duration=u()-ca.start,ca.sequence++,ca.upload=t&&"sendBeacon"in navigator?1:0,ca.end=t?1:0,[ca.version,ca.sequence,ca.start,ca.duration,ca.projectId,ca.userId,ca.sessionId,ca.pageNum,ca.upload,ca.end]}function pa(){sa=[]}function va(t){if(sa&&-1===sa.indexOf(t.message)){var e=i.report;if(e&&e.length>0){var n={v:ca.version,p:ca.projectId,u:ca.userId,s:ca.sessionId,n:ca.pageNum};t.message&&(n.m=t.message),t.stack&&(n.e=t.stack);var r=new XMLHttpRequest;r.open("POST",e),r.send(JSON.stringify(n)),sa.push(t.message)}}return t}function ga(t){return function(){var e=performance.now();try{t.apply(this,arguments)}catch(t){throw va(t)}var n=performance.now()-e;O(4,n),n>30&&(M(7),N(6,n))}}var ma=[];function ba(t,e,n,r){void 0===r&&(r=!1),n=ga(n);try{t.addEventListener(e,n,r),ma.push({event:e,target:t,listener:n,capture:r})}catch(t){}}function ya(){for(var t=0,e=ma;t<e.length;t++){var n=e[t];try{n.target.removeEventListener(n.event,n.listener,n.capture)}catch(t){}}ma=[]}var wa=null,ka=null,Ea=null,Sa=0;function Ma(){return!(Sa++>20)||(Xt(4,0),!1)}function Oa(){Sa=0,Ea!==Na()&&(Pa(),window.setTimeout(Ua,250))}function Na(){return location.href?location.href.replace(location.hash,""):location.href}var _a=!1;function Ta(){_a=!0,o=performance.now(),ht(),ya(),pa(),Ea=Na(),Sa=0,ba(window,"popstate",Oa),null===wa&&(wa=history.pushState),history.pushState=function(){Ma()&&(wa.apply(this,arguments),Oa())},null===ka&&(ka=history.replaceState),history.replaceState=function(){Ma()&&(ka.apply(this,arguments),Oa())}}function xa(){null!==wa&&(history.pushState=wa,wa=null),null!==ka&&(history.replaceState=ka,ka=null),Ea=null,Sa=0,pa(),ya(),ht(),o=0,_a=!1}function Ia(){return _a}function Da(t){if(null===t||_a)return!1;for(var e in t)e in i&&(i[e]=t[e]);return!0}function Ca(){Ua(),w("clarity","restart")}function ja(){return J(this,void 0,void 0,(function(){var t,e;return Z(this,(function(n){switch(n.label){case 0:return t=u(),mt(e={id:Qr(),cost:3}),[4,Bn(document,e,0)];case 1:return n.sent(),[4,Nt(5,e,t)];case 2:return n.sent(),bt(e),[2]}}))}))}var za,Ra=null;function Aa(){Ra=null}function La(t){Ra={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){J(this,void 0,void 0,(function(){var e,n;return Z(this,(function(r){switch(e=u(),n=[e,t],t){case 29:n.push(Ra.fetchStart),n.push(Ra.connectStart),n.push(Ra.connectEnd),n.push(Ra.requestStart),n.push(Ra.responseStart),n.push(Ra.responseEnd),n.push(Ra.domInteractive),n.push(Ra.domComplete),n.push(Ra.loadEventStart),n.push(Ra.loadEventEnd),n.push(Ra.redirectCount),n.push(Ra.size),n.push(Ra.type),n.push(Ra.protocol),n.push(Ra.encodedSize),n.push(Ra.decodedSize),Aa(),Nr(n,!1)}return[2]}))}))}(29)}var Ya=["navigation","resource","longtask","first-input","layout-shift","largest-contentful-paint"];function Ha(){try{za&&za.disconnect(),za=new PerformanceObserver(ga(qa));for(var t=0,e=Ya;t<e.length;t++){var n=e[t];PerformanceObserver.supportedEntryTypes.indexOf(n)>=0&&("layout-shift"===n&&O(9,0),za.observe({type:n,buffered:!0}))}}catch(t){Xt(3,1)}}function qa(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":La(r);break;case"resource":Wr(4,Xa(r.name));break;case"longtask":M(7);break;case"first-input":e&&N(10,r.processingStart-r.startTime);break;case"layout-shift":e&&!r.hadRecentInput&&O(9,1e3*r.value);break;case"largest-contentful-paint":e&&N(8,r.startTime)}}}(t.getEntries())}function Xa(t){var e=document.createElement("a");return e.href=t,e.hostname}var Wa=[Object.freeze({__proto__:null,start:function(){ba(window,"error",Lt),At={},qt={},ba(document,"securitypolicyviolation",Wt)},stop:function(){qt={}}}),Object.freeze({__proto__:null,start:function(){Mt(),Ot(),qe(),je=null,xe=new WeakMap,Ie={},De=[],Ce=!!window.IntersectionObserver,de(),function(){Fn=[],Kn=[],Qn=null,$n=0,tr={},null===Gn&&(Gn=CSSStyleSheet.prototype.insertRule),null===Jn&&(Jn=CSSStyleSheet.prototype.deleteRule),null===Zn&&(Zn=Element.prototype.attachShadow),CSSStyleSheet.prototype.insertRule=function(){return ir(this.ownerNode),Gn.apply(this,arguments)},CSSStyleSheet.prototype.deleteRule=function(){return ir(this.ownerNode),Jn.apply(this,arguments)};try{Element.prototype.attachShadow=function(){return ir(Zn.apply(this,arguments))}}catch(t){Zn=null}}(),pt(ja,1).then((function(){ga(Ot)(),ga(Ae)()})),jt(),Dt=null,It=!!window.ResizeObserver},stop:function(){qe(),xe=null,Ie={},De=[],je&&(je.disconnect(),je=null),Ce=!1,fe(),function(){for(var t=0,e=Fn;t<e.length;t++){var n=e[t];n&&n.disconnect()}Fn=[],null!==Gn&&(CSSStyleSheet.prototype.insertRule=Gn,Gn=null),null!==Jn&&(CSSStyleSheet.prototype.deleteRule=Jn,Jn=null),null!=Zn&&(Element.prototype.attachShadow=Zn,Zn=null),tr={},Vn=[],Kn=[],$n=0,Qn=null}(),zt(),Mt()}}),Rn,Object.freeze({__proto__:null,start:function(){Aa(),function(){window.PerformanceObserver&&PerformanceObserver.supportedEntryTypes?"complete"!==document.readyState?ba(window,"load",_.bind(this,Ha,0)):Ha():Xt(3,0)}()},stop:function(){za&&za.disconnect(),za=null,Aa()}})];function Ua(t){void 0===t&&(t=null),function(){try{return!1===_a&&"undefined"!=typeof Promise&&window.MutationObserver&&document.createTreeWalker&&"now"in Date&&"now"in performance&&"undefined"!=typeof WeakMap}catch(t){return!1}}()&&(Da(t),Ta(),et(),Wa.forEach((function(t){return ga(t.start)()})))}function Pa(){Ia()&&(Wa.slice().reverse().forEach((function(t){return ga(t.stop)()})),nt(),xa())}var Ba=Object.freeze({__proto__:null,version:l,start:Ua,pause:function(){Ia()&&(w("clarity","pause"),null===dt&&(dt=new Promise((function(t){ft=t}))))},resume:function(){Ia()&&(dt&&(ft(),dt=null,null===ct&&vt()),w("clarity","resume"))},stop:Pa,consent:$r,event:w,identify:B,set:P,upgrade:X,metadata:Kr});!function(){if("undefined"!=typeof window){var t=window,e="clarity";if(t[e]&&t[e].v)return console.warn("Error CL001: Multiple Clarity tags detected.");var n=t[e]&&t[e].q||[];for(t[e]=function(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];return Ba[t].apply(Ba,e)},t[e].v=l;n.length>0;)t[e].apply(t,n.shift())}}()}();
|
|
1
|
+
!function(){"use strict";var t=Object.freeze({__proto__:null,get track(){return kr},get start(){return _r},get queue(){return Tr},get stop(){return xr}}),e=Object.freeze({__proto__:null,get data(){return Er},get start(){return Rr},get check(){return Ar},get trigger(){return Lr},get compute(){return Yr},get stop(){return Hr}}),n=Object.freeze({__proto__:null,get data(){return qr},get updates(){return Xr},get start(){return Wr},get stop(){return Ur},get log(){return Pr},get compute(){return Br},get reset(){return Fr}}),r=Object.freeze({__proto__:null,get data(){return Vr},get callback(){return Gr},get start(){return Zr},get userAgentData(){return Kr},get stop(){return Qr},get metadata(){return $r},get id(){return ta},get consent(){return ea},get clear(){return na},get save(){return ra}}),a=Object.freeze({__proto__:null,get data(){return fa},get start(){return ha},get stop(){return pa},get envelope(){return va}}),i={projectId:null,delay:1e3,lean:!1,track:!0,content:!0,mask:[],unmask:[],regions:[],metrics:[],dimensions:[],cookies:[],report:null,upload:null,fallback:null,upgrade:null},o=0;function u(t){return void 0===t&&(t=null),t=t||performance.now(),Math.max(Math.round(t-o),0)}var s="0.6.31";function l(t){for(var e=5381,n=e,r=0;r<t.length;r+=2){if(e=(e<<5)+e^t.charCodeAt(r),r+1<t.length)n=(n<<5)+n^t.charCodeAt(r+1)}return Math.abs(e+11579*n).toString(36)}var c=null,d=null,f=!1;function h(){f&&(c={time:u(),event:4,data:{visible:d.visible,docWidth:d.docWidth,docHeight:d.docHeight,screenWidth:d.screenWidth,screenHeight:d.screenHeight,scrollX:d.scrollX,scrollY:d.scrollY,pointerX:d.pointerX,pointerY:d.pointerY,activityTime:d.activityTime}}),d=d||{visible:1,docWidth:0,docHeight:0,screenWidth:0,screenHeight:0,scrollX:0,scrollY:0,pointerX:0,pointerY:0,activityTime:0}}function p(t,e,n){switch(t){case 8:d.docWidth=e,d.docHeight=n;break;case 11:d.screenWidth=e,d.screenHeight=n;break;case 10:d.scrollX=e,d.scrollY=n;break;default:d.pointerX=e,d.pointerY=n}f=!0}function v(t){d.activityTime=t}function g(t,e){d.visible="visible"===e?1:0,d.visible||v(t),f=!0}function m(){f&&zr(4)}var b=Object.freeze({__proto__:null,get state(){return c},start:function(){f=!1,h()},reset:h,track:p,activity:v,visibility:g,compute:m,stop:function(){h()}}),y=null;function w(t,e){Ca()&&t&&e&&"string"==typeof t&&"string"==typeof e&&t.length<255&&e.length<255&&(y={key:t,value:e},zr(24))}var k,E=null,S=null;function M(t,e){void 0===e&&(e=1),t in E||(E[t]=0),t in S||(S[t]=0),E[t]+=e,S[t]+=e}function O(t,e){null!==e&&(t in E||(E[t]=0),t in S||(S[t]=0),E[t]+=e,S[t]+=e)}function N(t,e){null!==e&&!1===isNaN(e)&&(t in E||(E[t]=0),(e>E[t]||0===E[t])&&(S[t]=e,E[t]=e))}function _(t,e,n){return window.setTimeout(ba(t),e,n)}function T(t){return window.clearTimeout(t)}var x=0,I=0,D=null;function C(){D&&T(D),D=_(j,I),x=u()}function j(){var t=u();k={gap:t-x},zr(25),k.gap<3e5?D=_(j,I):xa&&(w("clarity","suspend"),Fa(),["mousemove","touchstart"].forEach((function(t){return wa(document,t,za)})),["resize","scroll","pageshow"].forEach((function(t){return wa(window,t,za)})))}var z=Object.freeze({__proto__:null,get data(){return k},start:function(){I=6e4,x=0},reset:C,stop:function(){T(D),x=0,I=0}}),R=null;function A(t,e){if(t in R){var n=R[t],r=n[n.length-1];e-r[0]>100?R[t].push([e,0]):r[1]=e-r[0]}else R[t]=[[e,0]]}function L(){zr(36)}function Y(){R={}}var H=Object.freeze({__proto__:null,get data(){return R},start:function(){R={}},stop:function(){R={}},track:A,compute:L,reset:Y}),q=null;function X(t){Ca()&&i.lean&&(i.lean=!1,q={key:t},ra(),i.upgrade&&i.upgrade(t),zr(3))}var W=Object.freeze({__proto__:null,get data(){return q},start:function(){!i.lean&&i.upgrade&&i.upgrade("Config"),q=null},upgrade:X,stop:function(){q=null}}),U=null;function P(t,e){F(t,"string"==typeof e?[e]:e)}function B(t,e,n){void 0===e&&(e=null),void 0===n&&(n=null),F("userId",[t]),F("sessionId",[e]),F("pageId",[n])}function F(t,e){if(Ca()&&t&&e&&"string"==typeof t&&t.length<255){for(var n=(t in U?U[t]:[]),r=0;r<e.length;r++)"string"==typeof e[r]&&e[r].length<255&&n.push(e[r]);U[t]=n}}function V(){zr(34)}function G(){U={}}function J(t,e,n,r){return new(n||(n=Promise))((function(a,i){function o(t){try{s(r.next(t))}catch(t){i(t)}}function u(t){try{s(r.throw(t))}catch(t){i(t)}}function s(t){var e;t.done?a(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(o,u)}s((r=r.apply(t,e||[])).next())}))}function Z(t,e){var n,r,a,i,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return i={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function u(i){return function(u){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(a=2&i[0]?r.return:i[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,i[1])).done)return a;switch(r=0,a&&(i=[2&i[0],a.value]),i[0]){case 0:case 1:a=i;break;case 4:return o.label++,{value:i[1],done:!1};case 5:o.label++,r=i[1],i=[0];continue;case 7:i=o.ops.pop(),o.trys.pop();continue;default:if(!(a=o.trys,(a=a.length>0&&a[a.length-1])||6!==i[0]&&2!==i[0])){o=0;continue}if(3===i[0]&&(!a||i[1]>a[0]&&i[1]<a[3])){o.label=i[1];break}if(6===i[0]&&o.label<a[1]){o.label=a[1],a=i;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(i);break}a[2]&&o.ops.pop(),o.trys.pop();continue}i=e.call(t,o)}catch(t){i=[6,t],r=0}finally{n=a=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,u])}}}var K="CompressionStream"in window;function Q(t){return J(this,void 0,void 0,(function(){var e,n;return Z(this,(function(r){switch(r.label){case 0:return r.trys.push([0,3,,4]),K?(e=new ReadableStream({start:function(e){return J(this,void 0,void 0,(function(){return Z(this,(function(n){return e.enqueue(t),e.close(),[2]}))}))}}).pipeThrough(new TextEncoderStream).pipeThrough(new window.CompressionStream("gzip")),n=Uint8Array.bind,[4,$(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 $(t){return J(this,void 0,void 0,(function(){var e,n,r,a,i;return Z(this,(function(o){switch(o.label){case 0:e=t.getReader(),n=[],r=!1,a=[],o.label=1;case 1:return r?[3,3]:[4,e.read()];case 2:return i=o.sent(),r=i.done,a=i.value,r?[2,n]:(n.push.apply(n,a),[3,1]);case 3:return[2,n]}}))}))}var tt=[b,n,Object.freeze({__proto__:null,get data(){return U},start:function(){G()},set:P,identify:B,compute:V,reset:G,stop:function(){G()}}),e,H,r,a,t,z,W];function et(){E={},S={},M(5),tt.forEach((function(t){return ba(t.start)()}))}function nt(){tt.slice().reverse().forEach((function(t){return ba(t.stop)()})),E={},S={}}function rt(){V(),m(),Br(),zr(0),L(),Yr()}function at(t,e,n,r){if(void 0===r&&(r=!1),t)switch(n){case 0:return t;case 1:switch(e){case"*T":case"value":case"placeholder":return function(t){for(var e=-1,n=!1,r=!1,a=!1,i=null,o=0;o<t.length;o++){var u=t.charCodeAt(o);n=n||u>=48&&u<=57,r=r||64===u,a=9===u||10===u||13===u||32===u,(0===o||o===t.length-1||a)&&((n||r)&&(null===i&&(i=t.split("")),ut(i,e,a?o:o+1)),a&&(n=!1,r=!1,e=o))}return i?i.join(""):t}(t);case"input":return ot(t)}return t;case 2:case 3:switch(e){case"*T":return r?function(t){var e=t.trim();if(e.length>0){var n=e[0],r=t.indexOf(n),a=t.substr(0,r),i=t.substr(r+e.length);return""+a+e.length.toString(36)+i}return t}(t):it(t);case"src":case"srcset":case"title":case"alt":return 3===n?"":t;case"value":case"click":case"input":return ot(t);case"placeholder":return it(t)}}return t}function it(t){return t.replace(/\S/gi,"•")}function ot(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 ut(t,e,n){for(var r=e+1;r<n;r++)t[r]="•"}var st={},lt=[],ct=null,dt=null,ft=null;function ht(){st={},lt=[],ct=null,dt=null}function pt(t,e){return void 0===e&&(e=0),J(this,void 0,void 0,(function(){var n,r,a;return Z(this,(function(i){for(n=0,r=lt;n<r.length;n++)if(r[n].task===t)return[2];return a=new Promise((function(n){lt[1===e?"unshift":"push"]({task:t,resolve:n,id:ta()})})),null===ct&&null===dt&&vt(),[2,a]}))}))}function vt(){var t=lt.shift();t&&(ct=t,t.task().then((function(){t.id===ta()&&(t.resolve(),ct=null,vt())})).catch((function(e){t.id===ta()&&(e&&Xt(0,1,e.name,e.message,e.stack),ct=null,vt())})))}function gt(t){var e=wt(t);return e in st?performance.now()-st[e].start>st[e].yield?0:1:2}function mt(t){st[wt(t)]={start:performance.now(),calls:0,yield:30}}function bt(t){var e=performance.now(),n=wt(t),r=e-st[n].start;O(t.cost,r),M(5),st[n].calls>0&&O(4,r)}function yt(t){return J(this,void 0,void 0,(function(){var e,n;return Z(this,(function(r){switch(r.label){case 0:return(e=wt(t))in st?(bt(t),n=st[e],[4,kt()]):[3,2];case 1:n.yield=r.sent().timeRemaining(),function(t){var e=wt(t);if(st&&st[e]){var n=st[e].calls,r=st[e].yield;mt(t),st[e].calls=n+1,st[e].yield=r}}(t),r.label=2;case 2:return[2,e in st?1:2]}}))}))}function wt(t){return t.id+"."+t.cost}function kt(){return J(this,void 0,void 0,(function(){return Z(this,(function(t){switch(t.label){case 0:return dt?[4,dt]:[3,2];case 1:t.sent(),t.label=2;case 2:return[2,new Promise((function(t){St(t,{timeout:5e3})}))]}}))}))}var Et,St=window.requestIdleCallback||function(t,e){var n=performance.now(),r=new MessageChannel,a=r.port1,i=r.port2;a.onmessage=function(r){var a=performance.now(),o=a-n,u=a-r.data;if(u>30&&o<e.timeout)requestAnimationFrame((function(){i.postMessage(a)}));else{var s=o>e.timeout;t({didTimeout:s,timeRemaining:function(){return s?30:Math.max(0,30-u)}})}},requestAnimationFrame((function(){i.postMessage(performance.now())}))};function Mt(){Et=null}function Ot(){var t=document.body,e=document.documentElement,n=t?t.clientWidth:null,r=t?t.scrollWidth:null,a=t?t.offsetWidth:null,i=e?e.clientWidth:null,o=e?e.scrollWidth:null,u=e?e.offsetWidth:null,s=Math.max(n,r,a,i,o,u),l=t?t.clientHeight:null,c=t?t.scrollHeight:null,d=t?t.offsetHeight:null,f=e?e.clientHeight:null,h=e?e.scrollHeight:null,p=e?e.offsetHeight:null,v=Math.max(l,c,d,f,h,p);null!==Et&&s===Et.width&&v===Et.height||null===s||null===v||(Et={width:s,height:v},Nt(8))}function Nt(t,e,n){return void 0===e&&(e=null),void 0===n&&(n=null),J(this,void 0,void 0,(function(){var r,a,o,s,l,c,d,f,h,g,m,b,y,w,k,E,S,M,O,N,_,T,x,I,D,C;return Z(this,(function(j){switch(j.label){case 0:switch(r=n||u(),a=[r,t],t){case 8:return[3,1];case 7:return[3,2];case 37:return[3,3];case 5:case 6:return[3,4]}return[3,11];case 1:return o=Et,a.push(o.width),a.push(o.height),p(t,o.width,o.height),Tr(a),[3,11];case 2:for(s=0,l=Ie;s<l.length;s++)c=l[s],(a=[c.time,7]).push(c.data.id),a.push(c.data.interaction),a.push(c.data.visibility),a.push(c.data.name),Tr(a);return We(),[3,11];case 3:for(d=0,f=xt;d<f.length;d++)h=f[d],a.push(h.id),a.push(h.width),a.push(h.height);return jt(),Tr(a),[3,11];case 4:if(2===gt(e))return[3,11];if(!((g=Ne()).length>0))return[3,10];m=0,b=g,j.label=5;case 5:return m<b.length?(y=b[m],0!==(w=gt(e))?[3,7]:[4,yt(e)]):[3,9];case 6:w=j.sent(),j.label=7;case 7:if(2===w)return[3,9];for(k=y.data,E=y.metadata.active,S=y.metadata.suspend,M=y.metadata.privacy,O=function(t){var e=t.metadata.privacy;return"*T"===t.data.tag&&!(0===e||1===e)}(y),N=E?["tag","attributes","value"]:["tag"],function(t){if(!1===It)return;if(Dt=null===Dt?new ResizeObserver(Ct):Dt){var e=Se(t);if(e&&null!==e.metadata.size&&0===e.metadata.size.length){var n=Ee(t);if(n&&n.nodeType===Node.ELEMENT_NODE){var r=n,a=r.getBoundingClientRect();e.metadata.size=[Math.floor(100*a.width),Math.floor(100*a.height)],Dt.observe(r)}}}}(y.id),_=0,T=N;_<T.length;_++)if(k[x=T[_]])switch(x){case"tag":I=y.metadata.size,D=O?-1:1,a.push(y.id*D),y.parent&&E&&a.push(y.parent),y.previous&&E&&a.push(y.previous),a.push(S?"*M":k[x]),I&&2===I.length&&a.push("#"+_t(I[0])+"."+_t(I[1]));break;case"attributes":for(C in k[x])void 0!==k[x][C]&&a.push(Tt(C,k[x][C],M));break;case"value":a.push(at(k[x],k.tag,M,O))}j.label=8;case 8:return m++,[3,5];case 9:6===t&&v(r),Tr(function(t){for(var e=[],n={},r=0,a=null,i=0;i<t.length;i++)if("string"==typeof t[i]){var o=t[i],u=n[o]||-1;u>=0?a?a.push(u):(a=[u],e.push(a),r++):(a=null,e.push(o),n[o]=r++)}else a=null,e.push(t[i]),r++;return e}(a),!i.lean),j.label=10;case 10:return[3,11];case 11:return[2]}}))}))}function _t(t){return t.toString(36)}function Tt(t,e,n){return t+"="+at(e,t,n)}var xt=[],It=!1,Dt=null;function Ct(t){window.requestAnimationFrame((function(){for(var e=0,n=t;e<n.length;e++){var r=n[e],a=r.target,i=a?me(a):null;if(i){var o=Se(i).metadata.size,u=r.borderBoxSize,s=null,l=null;if(u&&u.length>0)s=Math.floor(100*u[0].inlineSize),l=Math.floor(100*u[0].blockSize);else{var c=a.getBoundingClientRect();s=Math.floor(100*c.width),l=Math.floor(100*c.height)}s!==o[0]&&l!==o[1]&&(o=[s,l],xt.push({id:i,width:s,height:l}))}}xt.length>0&&Nt(37)}))}function jt(){xt=[]}function zt(){jt(),Dt&&(Dt.disconnect(),Dt=null),It=!1}var Rt,At={};function Lt(t){var e=t.error||t;if(e.message in At||(At[e.message]=0),At[e.message]++>=5)return!0;if(e&&e.message){if(Rt={message:e.message,line:t.lineno,column:t.colno,stack:e.stack,source:t.filename},e.message.indexOf("ResizeObserver")>=0)return zt(),!1;Yt(31)}return!0}function Yt(t){return J(this,void 0,void 0,(function(){var e;return Z(this,(function(n){switch(e=[u(),t],t){case 31:e.push(Rt.message),e.push(Rt.line),e.push(Rt.column),e.push(Rt.stack),e.push(Rt.source),Tr(e);break;case 33:Ht&&(e.push(Ht.code),e.push(Ht.name),e.push(Ht.message),e.push(Ht.stack),e.push(Ht.severity),Tr(e,!1))}return[2]}))}))}var Ht,qt={};function Xt(t,e,n,r,a){void 0===n&&(n=null),void 0===r&&(r=null),void 0===a&&(a=null);var i=n?n+"|"+r:"";t in qt&&qt[t].indexOf(i)>=0||(Ht={code:t,name:n,message:r,stack:a,severity:e},t in qt?qt[t].push(i):qt[t]=[i],Yt(33))}function Wt(t){var e=i.upload,n=e&&"string"==typeof e?e.substr(0,e.indexOf("/","https://".length)).split("."):[],r=n.length>=2?n.splice(-2).join("."):null;r&&t.blockedURI&&t.blockedURI.indexOf(r)>=0&&"report"!==t.disposition&&Xt(7,1,t.blockedURI)}var Ut=/1/g,Pt=/[^0-9\.]/g,Bt=/[^0-9\.,]/g,Ft={};function Vt(t,e){for(var n=function(e){var n=e[0],r=e[1],a=e[2],i=e[3],o=!0;switch(a){case 0:o=i&&!!top.location.href.match(function(t){return Ft[t]=t in Ft?Ft[t]:new RegExp(t),Ft[t]}(i));break;case 1:o=i&&!!Gt(i)}o&&t.querySelectorAll(r).forEach((function(t){return Ae(t,n.toString())}))},r=0,a=e;r<a.length;r++){n(a[r])}}function Gt(t,e,n){void 0===e&&(e=null),void 0===n&&(n=window);var r=t.split("."),a=r.shift();return n&&n[a]?r.length>0?Gt(r.join("."),e,n[a]):null===e||e===typeof n[a]?n[a]:null:null}function Jt(t){return t?t.substr(0,256):t}function Zt(t,e,n){void 0===n&&(n=!0);try{e=e||1;var r=document.documentElement.lang;if(Intl&&Intl.NumberFormat&&r&&n){t=t.replace(Bt,"");var a=Intl.NumberFormat(r).format(11111).replace(Ut,""),i=Intl.NumberFormat(r).format(1.1).replace(Ut,"");return Math.round(parseFloat(t.replace(new RegExp("\\"+a,"g"),"").replace(new RegExp("\\"+i),"."))*e)}return Math.round(parseFloat(t.replace(Pt,""))*e)}catch(t){return null}}var Kt=["DIV","TR","P","LI","UL","A","BUTTON"];function Qt(t,e){void 0===e&&(e=!1);var n=t.attributes,r=t.prefix?t.prefix[e?1:0]:null,a=e||n&&!("class"in n)||Kt.indexOf(t.tag)>=0?":nth-of-type("+t.position+")":"";switch(t.tag){case"STYLE":case"TITLE":case"LINK":case"META":case"*T":case"*D":return"";case"HTML":return"HTML";default:if(null===r)return"";r+=">",t.tag=0===t.tag.indexOf("svg:")?t.tag.substr("svg:".length):t.tag;var i=""+r+t.tag+a,o="class"in n&&n.class.length>0?n.class.trim().split(/\s+/):null;if(e){var u="id"in n&&n.id.length>0?n.id:null;i=(o="BODY"!==t.tag&&o?o.filter((function(t){return!$t(t)})):[]).length>0?""+r+t.tag+"."+o.join(".")+a:i,i=u&&!1===$t(u)?function(t){var e=t.lastIndexOf("*S"),n=t.lastIndexOf("iframe:HTML"),r=Math.max(e,n);if(r<0)return"";var a=t.indexOf(">",r)+1;return t.substr(0,a)}(r)+"#"+u:i}else i=o?""+r+t.tag+"."+o.join(".")+a:i;return i}}function $t(t){for(var e=0;e<t.length;e++){var n=t.charCodeAt(e);if(n>=48&&n<=57)return!0}return!1}var te=1,ee=["password","hidden","email","tel"],ne=["addr","cell","code","dob","email","mob","name","phone","secret","social","ssn","tel","zip","pass","card","account","cvv","ccv"],re=["address","password","contact"],ae=[],ie=[],oe=[],ue={},se=[],le=[],ce=null,de=null,fe=null;function he(){ve(),ge(document,!0)}function pe(){ve()}function ve(){te=1,ae=[],ie=[],oe=[],ue={},se=[],le=[],ce=new WeakMap,de=new WeakMap,fe=new WeakMap}function ge(t,e){void 0===e&&(e=!1);try{e&&i.unmask.forEach((function(t){return t.indexOf("!")<0?le.push(t):se.push(t.substr(1))})),"querySelectorAll"in t&&(Vt(t,i.regions),function(t,e){for(var n=function(e){var n=e[0],r=e[1],a=e[2],i=e[3];if(a)switch(r){case 0:t.querySelectorAll(a).forEach((function(t){N(n,Zt(t.innerText,i))}));break;case 2:t.querySelectorAll("["+a+"]").forEach((function(t){N(n,Zt(t.getAttribute(a),i,!1))}));break;case 1:N(n,Gt(a,"number"))}},r=0,a=e;r<a.length;r++)n(a[r])}(t,i.metrics),function(t,e){for(var n=function(e){var n=e[0],r=e[1],a=e[2];if(a)switch(r){case 0:t.querySelectorAll(a).forEach((function(t){Pr(n,Jt(t.innerText))}));break;case 2:t.querySelectorAll("["+a+"]").forEach((function(t){Pr(n,Jt(t.getAttribute(a)))}));break;case 1:Pr(n,Jt(Gt(a,"string")))}},r=0,a=e;r<a.length;r++)n(a[r])}(t,i.dimensions),i.mask.forEach((function(e){return t.querySelectorAll(e).forEach((function(t){return fe.set(t,3)}))})),le.forEach((function(e){return t.querySelectorAll(e).forEach((function(t){return fe.set(t,0)}))})))}catch(t){Xt(5,1,t?t.name:null)}}function me(t,e){if(void 0===e&&(e=!1),null===t)return null;var n=ce.get(t);return!n&&e&&(n=te++,ce.set(t,n)),n||null}function be(t){var e=!1;if(t.nodeType===Node.ELEMENT_NODE&&"IFRAME"===t.tagName){var n=t;try{n.contentDocument&&(de.set(n.contentDocument,n),e=!0)}catch(t){}}return e}function ye(t){var e=t.nodeType===Node.DOCUMENT_NODE?t:null;return e&&de.has(e)?de.get(e):null}function we(t,e,n){if("object"==typeof t[n]&&"object"==typeof e[n]){for(var r in t[n])if(t[n][r]!==e[n][r])return!0;for(var r in e[n])if(e[n][r]!==t[n][r])return!0;return!1}return t[n]!==e[n]}function ke(t){var e=t.parent&&t.parent in ie?ie[t.parent]:null,n=e?e.selector:null,r=t.data,a=function(t,e){e.metadata.position=1;for(var n=t?t.children.indexOf(e.id):-1;n-- >0;){var r=ie[t.children[n]];if(e.data.tag===r.data.tag){e.metadata.position=r.metadata.position+1;break}}return e.metadata.position}(e,t),i={tag:r.tag,prefix:n,position:a,attributes:r.attributes};t.selector=[Qt(i),Qt(i,!0)],t.hash=t.selector.map((function(t){return t?l(t):null})),t.hash.forEach((function(e){return ue[e]=t.id}))}function Ee(t){return t in ae?ae[t]:null}function Se(t){return t in ie?ie[t]:null}function Me(t){var e=me(t);return e in ie?ie[e]:null}function Oe(t){return me(t)in ae}function Ne(){for(var t=[],e=0,n=oe;e<n.length;e++){var r=n[e];r in ie&&t.push(ie[r])}return oe=[],t}function _e(t){for(var e=null;null===e&&t.previousSibling;)e=me(t.previousSibling),t=t.previousSibling;return e}function Te(t,e,n,r){void 0===n&&(n=!0),void 0===r&&(r=!1);var a=oe.indexOf(t);a>=0&&1===e&&r?(oe.splice(a,1),oe.push(t)):-1===a&&n&&oe.push(t)}var xe=Object.freeze({__proto__:null,start:he,stop:pe,parse:ge,getId:me,add:function(t,e,n,r){var a=me(t,!0),o=e?me(e):null,u=_e(t),s=i.content?1:2,l=null,c=Le(t)?a:null;o>=0&&ie[o]&&((l=ie[o]).children.push(a),c=null===c?l.region:c,s=l.metadata.privacy),s=function(t,e,n,r){var a=e.attributes,i=e.tag.toUpperCase();if(fe.has(t))return fe.get(t);if("*T"===i&&n&&n.data){var o=n.selector?n.selector[0]:"";r="STYLE"===n.data.tag||"TITLE"===n.data.tag?0:r;for(var u=0,s=se;u<s.length;u++){var l=s[u];if(o.indexOf(l)>=0){r=0;break}}}if(null==a)return r;if("class"in a&&1===r)for(var c=0,d=re;c<d.length;c++){var f=d[c];if(a.class.indexOf(f)>=0){r=2;break}}if("INPUT"===i)if(0===r){for(var h="",p=0,v=Object.keys(a);p<v.length;p++){h+=a[v[p]].toLowerCase()}for(var g=0,m=ne;g<m.length;g++){var b=m[g];if(h.indexOf(b)>=0){r=2;break}}}else 1===r&&(r=a&&"submit"===a.type?0:2);"type"in a&&ee.indexOf(a.type)>=0&&(r=2);"data-clarity-mask"in a&&(r=3);"data-clarity-unmask"in a&&(r=0);return r}(t,n,l,s),n.attributes&&"data-clarity-region"in n.attributes&&(Ae(t,n.attributes["data-clarity-region"]),c=a),ae[a]=t,ie[a]={id:a,parent:o,previous:u,children:[],data:n,selector:null,hash:null,region:c,metadata:{active:!0,suspend:!1,privacy:s,position:null,size:null}},ke(ie[a]),function(t,e){var n=t.data,r="*T"===n.tag&&n.value&&n.value.length>15,a=2===t.metadata.privacy||3===t.metadata.privacy;r&&a&&e&&null===e.metadata.size&&(e.metadata.size=[]);"IMG"===n.tag&&3===t.metadata.privacy&&(t.metadata.size=[])}(ie[a],l),Te(a,r)},update:function(t,e,n,r){var a=me(t),i=e?me(e):null,o=_e(t),u=!1,s=!1;if(a in ie){var l=ie[a];if(l.metadata.active=!0,l.previous!==o&&(u=!0,l.previous=o),l.parent!==i){u=!0;var c=l.parent;if(l.parent=i,null!==i&&i>=0){var d=null===o?0:ie[i].children.indexOf(o)+1;ie[i].children.splice(d,0,a),l.region=Le(t)?a:ie[i].region}else!function(t,e){if(t in ie){var n=ie[t];n.metadata.active=!1,n.parent=null,Te(t,e)}}(a,r);if(null!==c&&c>=0){var f=ie[c].children.indexOf(a);f>=0&&ie[c].children.splice(f,1)}s=!0}for(var h in n)we(l.data,n,h)&&(u=!0,l.data[h]=n[h]);ke(l),Te(a,r,u,s)}},sameorigin:be,iframe:ye,getNode:Ee,getValue:Se,get:Me,lookup:function(t){return t in ue?ue[t]:null},has:Oe,updates:Ne}),Ie=[],De=null,Ce={},je=[],ze=!1,Re=null;function Ae(t,e){!1===De.has(t)&&(De.set(t,e),(Re=null===Re&&ze?new IntersectionObserver(He,{threshold:[0,.2,.4,.6,.8,1]}):Re)&&t&&t.nodeType===Node.ELEMENT_NODE&&Re.observe(t))}function Le(t){return De&&De.has(t)}function Ye(){for(var t=[],e=0,n=je;e<n.length;e++){var r=n[e],a=me(r.node);a in Ce||(a?(r.data.id=a,Ce[a]=r.data,Ie.push(Xe(r.data))):t.push(r))}je=t,Ie.length>0&&Nt(7)}function He(t){for(var e=0,n=t;e<n.length;e++){var r=n[e],a=r.target,i=r.boundingClientRect,o=r.intersectionRect,u=r.rootBounds;if(De.has(a)&&i.width+i.height>0&&u.width>0&&u.height>0){var s=a?me(a):null,l=s in Ce?Ce[s]:{id:s,name:De.get(a),interaction:16,visibility:0},c=(o?o.width*o.height*1/(u.width*u.height):0)>.05||r.intersectionRatio>.8,d=(c||10==l.visibility)&&Math.abs(i.top)+u.height>i.height;qe(a,l,l.interaction,d?13:c?10:0),l.visibility>=13&&Re&&Re.unobserve(a)}}Ie.length>0&&Nt(7)}function qe(t,e,n,r){var a=n>e.interaction||r>e.visibility;e.interaction=n>e.interaction?n:e.interaction,e.visibility=r>e.visibility?r:e.visibility,e.id?(e.id in Ce&&a||!(e.id in Ce))&&(Ce[e.id]=e,Ie.push(Xe(e))):je.push({node:t,data:e})}function Xe(t){return{time:u(),data:{id:t.id,interaction:t.interaction,visibility:t.visibility,name:t.name}}}function We(){Ie=[]}function Ue(t){var e={x:0,y:0};if(t&&t.offsetParent)do{var n=t.offsetParent,r=null===n?ye(t.ownerDocument):null;e.x+=t.offsetLeft,e.y+=t.offsetTop,t=r||n}while(t);return e}var Pe=["input","textarea","radio","button","canvas"],Be=[];function Fe(t){wa(t,"click",Ve.bind(this,9,t),!0)}function Ve(t,e,n){var r=ye(e),a=r?r.contentDocument.documentElement:document.documentElement,i="pageX"in n?Math.round(n.pageX):"clientX"in n?Math.round(n.clientX+a.scrollLeft):null,o="pageY"in n?Math.round(n.pageY):"clientY"in n?Math.round(n.clientY+a.scrollTop):null;if(r){var s=Ue(r);i=i?i+Math.round(s.x):i,o=o?o+Math.round(s.y):o}var l=cr(n),c=function(t){for(;t&&t!==document;){if(t.nodeType===Node.ELEMENT_NODE){var e=t;if("A"===e.tagName)return e}t=t.parentNode}return null}(l),d=function(t){var e=null,n=document.documentElement;if("function"==typeof t.getBoundingClientRect){var r=t.getBoundingClientRect();r&&r.width>0&&r.height>0&&(e={x:Math.floor(r.left+("pageXOffset"in window?window.pageXOffset:n.scrollLeft)),y:Math.floor(r.top+("pageYOffset"in window?window.pageYOffset:n.scrollTop)),w:Math.floor(r.width),h:Math.floor(r.height)})}return e}(l);0===n.detail&&d&&(i=Math.round(d.x+d.w/2),o=Math.round(d.y+d.h/2));var f=d?Math.max(Math.floor((i-d.x)/d.w*32767),0):0,h=d?Math.max(Math.floor((o-d.y)/d.h*32767),0):0;null!==i&&null!==o&&(Be.push({time:u(),event:t,data:{target:l,x:i,y:o,eX:f,eY:h,button:n.button,reaction:Je(l),context:Ze(c),text:Ge(l),link:c?c.href:null,hash:null}}),pt(fr.bind(this,t)))}function Ge(t){var e=null;if(t){var n=t.textContent||t.value||t.alt;n&&(e=n.trim().replace(/\s+/g," ").substr(0,25))}return e}function Je(t){if(t.nodeType===Node.ELEMENT_NODE){var e=t.tagName.toLowerCase();if(Pe.indexOf(e)>=0)return 0}return 1}function Ze(t){if(t&&t.hasAttribute("target"))switch(t.getAttribute("target")){case"_blank":return 1;case"_parent":return 2;case"_top":return 3}return 0}function Ke(){Be=[]}var Qe=[];function $e(t,e){Qe.push({time:u(),event:38,data:{target:cr(e),action:t}}),pt(fr.bind(this,38))}function tn(){Qe=[]}var en=null,nn=[];function rn(t){var e=cr(t),n=Me(e);if(e&&e.type&&n){var r=void 0;switch(e.type){case"radio":case"checkbox":r=e.checked?"true":"false";break;case"range":r=e.value;break;default:r=at(e.value,"input",n.metadata.privacy)}var a={target:e,value:r};nn.length>0&&nn[nn.length-1].data.target===a.target&&nn.pop(),nn.push({time:u(),event:27,data:a}),T(en),en=_(an,500,27)}}function an(t){pt(fr.bind(this,t))}function on(){nn=[]}var un,sn=[],ln=null;function cn(t,e,n){var r=ye(e),a=r?r.contentDocument.documentElement:document.documentElement,i="pageX"in n?Math.round(n.pageX):"clientX"in n?Math.round(n.clientX+a.scrollLeft):null,o="pageY"in n?Math.round(n.pageY):"clientY"in n?Math.round(n.clientY+a.scrollTop):null;if(r){var s=Ue(r);i=i?i+Math.round(s.x):i,o=o?o+Math.round(s.y):o}null!==i&&null!==o&&fn({time:u(),event:t,data:{target:cr(n),x:i,y:o}})}function dn(t,e,n){var r=ye(e),a=r?r.contentDocument.documentElement:document.documentElement,i=n.changedTouches,o=u();if(i)for(var s=0;s<i.length;s++){var l=i[s],c="clientX"in l?Math.round(l.clientX+a.scrollLeft):null,d="clientY"in l?Math.round(l.clientY+a.scrollTop):null;c=c&&r?c+Math.round(r.offsetLeft):c,d=d&&r?d+Math.round(r.offsetTop):d,null!==c&&null!==d&&fn({time:o,event:t,data:{target:cr(n),x:c,y:d}})}}function fn(t){switch(t.event){case 12:case 15:case 19:var e=sn.length,n=e>1?sn[e-2]:null;n&&function(t,e){var n=t.data.x-e.data.x,r=t.data.y-e.data.y,a=Math.sqrt(n*n+r*r),i=e.time-t.time,o=e.data.target===t.data.target;return e.event===t.event&&o&&a<20&&i<25}(n,t)&&sn.pop(),sn.push(t),T(ln),ln=_(hn,500,t.event);break;default:sn.push(t),hn(t.event)}}function hn(t){pt(fr.bind(this,t))}function pn(){sn=[]}function vn(){var t=document.documentElement;un={width:t&&"clientWidth"in t?Math.min(t.clientWidth,window.innerWidth):window.innerWidth,height:t&&"clientHeight"in t?Math.min(t.clientHeight,window.innerHeight):window.innerHeight},fr(11)}function gn(){un=null}var mn=[],bn=null;function yn(t){void 0===t&&(t=null);var e=window,n=document.documentElement,r=t?cr(t):n;if(r&&r.nodeType===Node.DOCUMENT_NODE){var a=ye(r);e=a?a.contentWindow:e,r=n=r.documentElement}var i=r===n&&"pageXOffset"in e?Math.round(e.pageXOffset):Math.round(r.scrollLeft),o=r===n&&"pageYOffset"in e?Math.round(e.pageYOffset):Math.round(r.scrollTop),s={time:u(),event:10,data:{target:r,x:i,y:o}};if((null!==t||0!==i||0!==o)&&null!==i&&null!==o){var l=mn.length,c=l>1?mn[l-2]:null;c&&function(t,e){var n=t.data.x-e.data.x,r=t.data.y-e.data.y;return n*n+r*r<400&&e.time-t.time<25}(c,s)&&mn.pop(),mn.push(s),T(bn),bn=_(wn,500,10)}}function wn(t){pt(fr.bind(this,t))}var kn=null,En=null,Sn=null;function Mn(t){var e=(t.nodeType===Node.DOCUMENT_NODE?t:document).getSelection();if(null!==e&&!(null===e.anchorNode&&null===e.focusNode||e.anchorNode===e.focusNode&&e.anchorOffset===e.focusOffset)){var n=kn.start?kn.start:null;null!==En&&null!==kn.start&&n!==e.anchorNode&&(T(Sn),On(21)),kn={start:e.anchorNode,startOffset:e.anchorOffset,end:e.focusNode,endOffset:e.focusOffset},En=e,T(Sn),Sn=_(On,500,21)}}function On(t){pt(fr.bind(this,t))}function Nn(){En=null,kn={start:0,startOffset:0,end:0,endOffset:0}}var _n,Tn,xn=[];function In(t){xn.push({time:u(),event:39,data:{target:cr(t)}}),pt(fr.bind(this,39))}function Dn(){xn=[]}function Cn(t){_n={name:t.type},fr(26),Fa()}function jn(){_n=null}function zn(){Tn={visible:"visibilityState"in document?document.visibilityState:"default"},fr(28)}function Rn(){Tn=null}function An(t){!function(t){var e=ye(t);wa(e?e.contentWindow:t===document?window:t,"scroll",yn,!0)}(t),t.nodeType===Node.DOCUMENT_NODE&&(Fe(t),function(t){wa(t,"cut",$e.bind(this,0),!0),wa(t,"copy",$e.bind(this,1),!0),wa(t,"paste",$e.bind(this,2),!0)}(t),function(t){wa(t,"mousedown",cn.bind(this,13,t),!0),wa(t,"mouseup",cn.bind(this,14,t),!0),wa(t,"mousemove",cn.bind(this,12,t),!0),wa(t,"mousewheel",cn.bind(this,15,t),!0),wa(t,"dblclick",cn.bind(this,16,t),!0),wa(t,"touchstart",dn.bind(this,17,t),!0),wa(t,"touchend",dn.bind(this,18,t),!0),wa(t,"touchmove",dn.bind(this,19,t),!0),wa(t,"touchcancel",dn.bind(this,20,t),!0)}(t),function(t){wa(t,"input",rn,!0)}(t),function(t){wa(t,"selectstart",Mn.bind(this,t),!0),wa(t,"selectionchange",Mn.bind(this,t),!0)}(t),function(t){wa(t,"submit",In,!0)}(t))}var Ln=Object.freeze({__proto__:null,start:function(){hr=[],vr(),Ke(),tn(),pn(),on(),wa(window,"resize",vn),vn(),wa(document,"visibilitychange",zn),zn(),mn=[],yn(),Nn(),Dn(),wa(window,"pagehide",Cn)},stop:function(){hr=[],vr(),Ke(),tn(),T(ln),sn.length>0&&hn(sn[sn.length-1].event),T(en),on(),gn(),Rn(),T(bn),mn=[],Nn(),T(Sn),Dn(),jn()},observe:An}),Yn=/[^0-9\.]/g;function Hn(t){for(var e=0,n=Object.keys(t);e<n.length;e++){var r=n[e],a=t[r];if("@type"===r&&"string"==typeof a)switch(a=(a=a.toLowerCase()).indexOf("article")>=0||a.indexOf("posting")>=0?"article":a){case"article":case"recipe":Pr(5,t[r]),Pr(8,t.creator),Pr(18,t.headline);break;case"product":Pr(5,t[r]),Pr(10,t.name),Pr(12,t.sku),t.brand&&Pr(6,t.brand.name);break;case"aggregaterating":t.ratingValue&&(N(11,qn(t.ratingValue,100)),N(18,qn(t.bestRating)),N(19,qn(t.worstRating))),N(12,qn(t.ratingCount)),N(17,qn(t.reviewCount));break;case"person":Pr(8,t.name);break;case"offer":Pr(7,t.availability),Pr(14,t.itemCondition),Pr(13,t.priceCurrency),Pr(12,t.sku),N(13,qn(t.price));break;case"brand":Pr(6,t.name)}null!==a&&"object"==typeof a&&Hn(a)}}function qn(t,e){if(void 0===e&&(e=1),null!==t)switch(typeof t){case"number":return Math.round(t*e);case"string":return Math.round(parseFloat(t.replace(Yn,""))*e)}return null}var Xn=["title","alt","onload","onfocus","onerror"],Wn=/[\r\n]+/g;function Un(t,e){var n=null;if(2===e&&!1===Oe(t))return n;0!==e&&t.nodeType===Node.TEXT_NODE&&t.parentElement&&"STYLE"===t.parentElement.tagName&&(t=t.parentNode);var r=!1===Oe(t)?"add":"update",a=t.parentElement?t.parentElement:null,i=t.ownerDocument!==document;switch(t.nodeType){case Node.DOCUMENT_TYPE_NODE:a=i&&t.parentNode?ye(t.parentNode):a;var o=t,u={tag:(i?"iframe:":"")+"*D",attributes:{name:o.name,publicId:o.publicId,systemId:o.systemId}};xe[r](t,a,u,e);break;case Node.DOCUMENT_NODE:t===document&&ge(document),Pn(t);break;case Node.DOCUMENT_FRAGMENT_NODE:var s=t;if(s.host)if(ge(s),"function"===typeof s.constructor&&s.constructor.toString().indexOf("[native code]")>=0){Pn(s);for(var l="",c=0,d=("adoptedStyleSheets"in s?s.adoptedStyleSheets:[]);c<d.length;c++){l+=Fn(d[c])}var f={tag:"*S",attributes:{style:l}};xe[r](t,s.host,f,e)}else xe[r](t,s.host,{tag:"*P",attributes:{}},e);break;case Node.TEXT_NODE:if(a=a||t.parentNode,"update"===r||a&&Oe(a)&&"STYLE"!==a.tagName){var h={tag:"*T",value:t.nodeValue};xe[r](t,a,h,e)}break;case Node.ELEMENT_NODE:var p=t,v=p.tagName,g=function(t){var e={},n=t.attributes;if(n&&n.length>0)for(var r=0;r<n.length;r++){var a=n[r].name;Xn.indexOf(a)<0&&(e[a]=n[r].value)}"INPUT"===t.tagName&&!("value"in e)&&t.value&&(e.value=t.value);return e}(p);switch(a=t.parentElement?t.parentElement:t.parentNode?t.parentNode:null,"http://www.w3.org/2000/svg"===p.namespaceURI&&(v="svg:"+v),v){case"HTML":a=i&&a?ye(a):null;var m={tag:(i?"iframe:":"")+v,attributes:g};xe[r](t,a,m,e);break;case"SCRIPT":if("type"in g&&"application/ld+json"===g.type)try{Hn(JSON.parse(p.text.replace(Wn,"")))}catch(t){}break;case"NOSCRIPT":break;case"META":var b="property"in g?"property":"name"in g?"name":null;if(b&&"content"in g){var y=g.content;switch(g[b]){case"og:title":Pr(20,y);break;case"og:type":Pr(19,y);break;case"generator":Pr(21,y)}}break;case"HEAD":var w={tag:v,attributes:g};location&&(w.attributes["*B"]=location.protocol+"//"+location.hostname),xe[r](t,a,w,e);break;case"STYLE":var k={tag:v,attributes:g,value:Bn(p)};xe[r](t,a,k,e);break;case"IFRAME":var E=t,S={tag:v,attributes:g};be(E)&&(!function(t){!1===Oe(t)&&wa(t,"load",lr.bind(this,t,"childList"),!0)}(E),S.attributes["*O"]="true",E.contentDocument&&E.contentWindow&&"loading"!==E.contentDocument.readyState&&(n=E.contentDocument)),xe[r](t,a,S,e);break;default:var M={tag:v,attributes:g};p.shadowRoot&&(n=p.shadowRoot),xe[r](t,a,M,e)}}return n}function Pn(t){Oe(t)||(!function(t){try{var e=window.Zone&&"__symbol__"in window.Zone?window.Zone.__symbol__("MutationObserver"):"MutationObserver",n=e in window?new window[e](ba(rr)):null;n&&(n.observe(t,{attributes:!0,childList:!0,characterData:!0,subtree:!0}),Gn.push(n))}catch(t){Xt(2,0,t?t.name:null)}}(t),An(t))}function Bn(t){var e=t.textContent?t.textContent.trim():"",n=t.dataset?Object.keys(t.dataset).length:0;return(0===e.length||n>0)&&(e=Fn(t.sheet)),e}function Fn(t){var e="",n=null;try{n=t?t.cssRules:[]}catch(t){if(Xt(1,1,t?t.name:null),t&&"SecurityError"!==t.name)throw t}if(null!==n)for(var r=0;r<n.length;r++)e+=n[r].cssText;return e}function Vn(t,e,n){return J(this,void 0,void 0,(function(){var r,a,i,o,u;return Z(this,(function(s){switch(s.label){case 0:r=[t],s.label=1;case 1:if(!(r.length>0))return[3,4];for(a=r.shift(),i=a.firstChild;i;)r.push(i),i=i.nextSibling;return 0!==(o=gt(e))?[3,3]:[4,yt(e)];case 2:o=s.sent(),s.label=3;case 3:return 2===o?[3,4]:((u=Un(a,n))&&r.push(u),[3,1]);case 4:return[2]}}))}))}var Gn=[],Jn=[],Zn=null,Kn=null,Qn=null,$n=[],tr=null,er=null,nr={};function rr(t){var e=u();A(6,e),Jn.push({time:e,mutations:t}),pt(ar,1).then((function(){ba(Ot)(),ba(Ye)()}))}function ar(){return J(this,void 0,void 0,(function(){var t,e,n,r,a,i,o,s,l;return Z(this,(function(c){switch(c.label){case 0:mt(t={id:ta(),cost:3}),c.label=1;case 1:if(!(Jn.length>0))return[3,8];e=Jn.shift(),n=0,r=e.mutations,c.label=2;case 2:return n<r.length?(a=r[n],0!==(i=gt(t))?[3,4]:[4,yt(t)]):[3,6];case 3:i=c.sent(),c.label=4;case 4:if(2===i)return[3,6];switch(o=a.target,(s=function(t,e){var n=t.target?Me(t.target.parentNode):null;if(n&&"HTML"!==n.data.tag){var r=u()>er,a=Me(t.target),i=a&&a.selector?a.selector.join():t.target.nodeName,o=[n.selector?n.selector.join():"",i,t.attributeName,ir(t.addedNodes),ir(t.removedNodes)].join();nr[o]=o in nr?nr[o]:[0];var s=nr[o];if(!1===r&&s[0]>=10&&or(s[1],2,e),s[0]=r?s[0]+1:1,10===s[0])return s[1]=t.removedNodes,"suspend";if(s[0]>10)return""}return t.type}(a,t))&&o&&o.ownerDocument&&ge(o.ownerDocument),s&&o&&o.nodeType==Node.DOCUMENT_FRAGMENT_NODE&&o.host&&ge(o),s){case"attributes":Un(o,3);break;case"characterData":Un(o,4);break;case"childList":or(a.addedNodes,1,t),or(a.removedNodes,2,t);break;case"suspend":(l=Me(o))&&(l.metadata.suspend=!0)}c.label=5;case 5:return n++,[3,2];case 6:return[4,Nt(6,t,e.time)];case 7:return c.sent(),[3,1];case 8:return bt(t),[2]}}))}))}function ir(t){for(var e=[],n=0;t&&n<t.length;n++)e.push(t[n].nodeName);return e.join()}function or(t,e,n){return J(this,void 0,void 0,(function(){var r,a,i;return Z(this,(function(o){switch(o.label){case 0:r=t?t.length:0,a=0,o.label=1;case 1:return a<r?1!==e?[3,2]:(Vn(t[a],n,e),[3,5]):[3,6];case 2:return 0!==(i=gt(n))?[3,4]:[4,yt(n)];case 3:i=o.sent(),o.label=4;case 4:if(2===i)return[3,6];Un(t[a],e),o.label=5;case 5:return a++,[3,1];case 6:return[2]}}))}))}function ur(t){return $n.indexOf(t)<0&&$n.push(t),tr&&T(tr),tr=_(sr,33),t}function sr(){for(var t=0,e=$n;t<e.length;t++){var n=e[t],r=n&&n.nodeType===Node.DOCUMENT_FRAGMENT_NODE;r&&Oe(n)||lr(n,r?"childList":"characterData")}$n=[]}function lr(t,e){ba(rr)([{addedNodes:[t],attributeName:null,attributeNamespace:null,nextSibling:null,oldValue:null,previousSibling:null,removedNodes:[],target:t,type:e}])}function cr(t){var e=t.composed&&t.composedPath?t.composedPath():null,n=e&&e.length>0?e[0]:t.target;return er=u()+3e3,n.nodeType===Node.DOCUMENT_NODE?n.documentElement:n}function dr(t,e){var n={id:0,hash:null,privacy:2,node:t};if(t){var r=Me(t);null!==r&&(n.id=r.id,n.hash=r.hash,n.privacy=r.metadata.privacy,r.region&&function(t,e){var n=Ee(t),r=t in Ce?Ce[t]:{id:t,visibility:0,interaction:16,name:De.get(n)},a=16;switch(e){case 9:a=20;break;case 27:a=30}qe(n,r,a,r.visibility)}(r.region,e))}return n}function fr(t){return J(this,void 0,void 0,(function(){var e,n,r,a,i,o,s,l,c,d,f,h,v,m,b,y,w,k,E,S,M,O,N,_,T,x,I,D,C;return Z(this,(function(j){switch(e=u(),n=[e,t],t){case 13:case 14:case 12:case 15:case 16:case 17:case 18:case 19:case 20:for(r=0,a=sn;r<a.length;r++)D=a[r],(i=dr(D.data.target,D.event)).id>0&&((n=[D.time,D.event]).push(i.id),n.push(D.data.x),n.push(D.data.y),Tr(n),p(D.event,D.data.x,D.data.y));pn();break;case 9:for(o=0,s=Be;o<s.length;o++)D=s[o],l=dr(D.data.target,D.event),n=[D.time,D.event],c=l.hash.join("."),n.push(l.id),n.push(D.data.x),n.push(D.data.y),n.push(D.data.eX),n.push(D.data.eY),n.push(D.data.button),n.push(D.data.reaction),n.push(D.data.context),n.push(at(D.data.text,"click",l.privacy)),n.push(D.data.link),n.push(c),Tr(n),gr(D.time,D.event,c,D.data.x,D.data.y,D.data.reaction,D.data.context);Ke();break;case 38:for(d=0,f=Qe;d<f.length;d++)D=f[d],n=[D.time,D.event],(T=dr(D.data.target,D.event)).id>0&&(n.push(T.id),n.push(D.data.action),Tr(n));tn();break;case 11:h=un,n.push(h.width),n.push(h.height),p(t,h.width,h.height),gn(),Tr(n);break;case 26:v=_n,n.push(v.name),jn(),Tr(n);break;case 27:for(m=0,b=nn;m<b.length;m++)D=b[m],y=dr(D.data.target,D.event),(n=[D.time,D.event]).push(y.id),n.push(D.data.value),Tr(n);on();break;case 21:(w=kn)&&(k=dr(w.start,t),E=dr(w.end,t),n.push(k.id),n.push(w.startOffset),n.push(E.id),n.push(w.endOffset),Nn(),Tr(n));break;case 10:for(S=0,M=mn;S<M.length;S++)D=M[S],(O=dr(D.data.target,D.event)).id>0&&((n=[D.time,D.event]).push(O.id),n.push(D.data.x),n.push(D.data.y),Tr(n),p(D.event,D.data.x,D.data.y));mn=[];break;case 39:for(N=0,_=xn;N<_.length;N++)D=_[N],n=[D.time,D.event],(T=dr(D.data.target,D.event)).id>0&&(n.push(T.id),Tr(n));Dn();break;case 22:for(x=0,I=pr;x<I.length;x++)D=I[x],(n=[D.time,D.event]).push(D.data.type),n.push(D.data.hash),n.push(D.data.x),n.push(D.data.y),n.push(D.data.reaction),n.push(D.data.context),Tr(n,!1);vr();break;case 28:C=Tn,n.push(C.visible),Tr(n),g(e,C.visible),Rn()}return[2]}))}))}var hr=[],pr=[];function vr(){pr=[]}function gr(t,e,n,r,a,i,o){void 0===i&&(i=1),void 0===o&&(o=0),hr.push({time:t,event:22,data:{type:e,hash:n,x:r,y:a,reaction:i,context:o}}),p(e,r,a)}var mr,br,yr,wr,kr,Er,Sr=0,Mr=0,Or=null,Nr=0;function _r(){wr=!0,Sr=0,Mr=0,Nr=0,mr=[],br=[],yr={},kr=null}function Tr(t,e){if(void 0===e&&(e=!0),wr){var n=u(),r=t.length>1?t[1]:null,a=JSON.stringify(t);switch(r){case 5:Sr+=a.length;case 37:case 6:Mr+=a.length,mr.push(a);break;default:br.push(a)}M(25);var o=function(){var t=!1===i.lean&&Sr>0?100:fa.sequence*i.delay;return"string"==typeof i.upload?Math.max(Math.min(t,3e4),100):i.delay}();n-Nr>2*o&&(T(Or),Or=null),e&&null===Or&&(25!==r&&C(),Or=_(Ir,o),Nr=n,Ar(Mr))}}function xr(){T(Or),Ir(!0),Sr=0,Mr=0,Nr=0,mr=[],br=[],yr={},kr=null,wr=!1}function Ir(t){return void 0===t&&(t=!1),J(this,void 0,void 0,(function(){var e,n,r,a,o,u,s,l;return Z(this,(function(c){switch(c.label){case 0:return Or=null,(e=!1===i.lean&&Mr>0&&(Mr<1048576||fa.sequence>0))&&N(1,1),Ye(),function(){var t=[];pr=[];for(var e=fa.start+fa.duration,n=Math.max(e-2e3,0),r=0,a=hr;r<a.length;r++){var i=a[r];i.time>=n&&(i.time<=e&&pr.push(i),t.push(i))}hr=t,fr(22)}(),rt(),n=!0===t,r=JSON.stringify(va(n)),a="["+br.join()+"]",o=e?"["+mr.join()+"]":"",u=function(t){return t.p.length>0?'{"e":'+t.e+',"a":'+t.a+',"p":'+t.p+"}":'{"e":'+t.e+',"a":'+t.a+"}"}({e:r,a:a,p:o}),n?(l=null,[3,3]):[3,1];case 1:return[4,Q(u)];case 2:l=c.sent(),c.label=3;case 3:return O(2,(s=l)?s.length:u.length),Dr(u,s,fa.sequence,n),br=[],e&&(mr=[],Mr=0,Sr=0),[2]}}))}))}function Dr(t,e,n,r){if(void 0===r&&(r=!1),"string"==typeof i.upload){var a=i.upload,o=!1;if(r&&"sendBeacon"in navigator&&(o=navigator.sendBeacon(a,t))&&jr(n),!1===o){n in yr?yr[n].attempts++:yr[n]={data:t,attempts:1};var u=new XMLHttpRequest;u.open("POST",a),null!==n&&(u.onreadystatechange=function(){ba(Cr)(u,n)}),u.withCredentials=!0,e?(u.setRequestHeader("Accept","application/x-clarity-gzip"),u.send(e)):u.send(t)}}else if(i.upload){(0,i.upload)(t),jr(n)}}function Cr(t,e){var n=yr[e];t&&4===t.readyState&&n&&((t.status<200||t.status>208)&&n.attempts<=1?t.status>=400&&t.status<500?Lr(6):(0===t.status&&(i.upload=i.fallback?i.fallback:i.upload),Dr(n.data,null,e)):(kr={sequence:e,attempts:n.attempts,status:t.status},n.attempts>1&&zr(2),200===t.status&&t.responseText&&function(t){switch(t&&t.length>0?t.split(" ")[0]:""){case"END":Lr(6);break;case"UPGRADE":X("Auto")}}(t.responseText),0===t.status&&(Dr(n.data,null,e,!0),Lr(3)),t.status>=200&&t.status<=208&&jr(e),delete yr[e]))}function jr(t){1===t&&ra()}function zr(t){var e=[u(),t];switch(t){case 4:var n=c;n&&((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),Tr(e,!1)),h();break;case 25:e.push(k.gap),Tr(e);break;case 35:e.push(Er.check),Tr(e,!1);break;case 3:e.push(q.key),Tr(e);break;case 2:e.push(kr.sequence),e.push(kr.attempts),e.push(kr.status),Tr(e,!1);break;case 24:e.push(y.key),e.push(y.value),Tr(e);break;case 34:var r=Object.keys(U);if(r.length>0){for(var a=0,i=r;a<i.length;a++){var o=i[a];e.push(o),e.push(U[o])}G(),Tr(e,!1)}break;case 0:var s=Object.keys(S);if(s.length>0){for(var l=0,d=s;l<d.length;l++){var f=d[l],p=parseInt(f,10);e.push(p),e.push(Math.round(S[f]))}S={},Tr(e,!1)}break;case 1:var v=Object.keys(Xr);if(v.length>0){for(var g=0,m=v;g<m.length;g++){var b=m[g];p=parseInt(b,10);e.push(p),e.push(Xr[b])}Fr(),Tr(e,!1)}break;case 36:var w=Object.keys(R);if(w.length>0){for(var E=0,M=w;E<M.length;E++){var O=M[E];p=parseInt(O,10);e.push(p),e.push([].concat.apply([],R[O]))}Y(),Tr(e,!1)}}}function Rr(){Er={check:0}}function Ar(t){if(0===Er.check){var e=Er.check;e=fa.sequence>=128?1:e,e=u()>72e5?2:e,(e=t>10485760?2:e)!==Er.check&&Lr(e)}}function Lr(t){Er.check=t,na(),Fa()}function Yr(){0!==Er.check&&zr(35)}function Hr(){Er=null}var qr=null,Xr=null;function Wr(){qr={},Xr={}}function Ur(){qr={},Xr={}}function Pr(t,e){e&&(e=""+e,t in qr||(qr[t]=[]),qr[t].indexOf(e)<0&&(qr[t].push(e),t in Xr||(Xr[t]=[]),Xr[t].push(e),qr[t].length>128&&Lr(5)))}function Br(){zr(1)}function Fr(){Xr={}}var Vr=null,Gr=null,Jr=null;function Zr(){Gr=null,Jr=null;var t=navigator&&"userAgent"in navigator?navigator.userAgent:"",e=document&&document.title?document.title:"",n=function(){var t={session:oa(),ts:Math.round(Date.now()),count:1,upgrade:null,upload:""},e=la("_clsk");if(e){var n=e.split("|");n.length>=5&&t.ts-ua(n[1])<18e5&&(t.session=n[0],t.count=ua(n[2])+1,t.upgrade=ua(n[3]),t.upload=n.length>=6?"https://"+n[5]+"/"+n[4]:"https://"+n[4])}return t}(),r=sa();Vr={projectId:i.projectId||l(location.host),userId:r.id,sessionId:n.session,pageNum:n.count},i.lean=i.track&&null!==n.upgrade?0===n.upgrade:i.lean,i.upload=i.track&&"string"==typeof i.upload&&n.upload&&n.upload.length>"https://".length?n.upload:i.upload,Pr(0,t),Pr(3,e),Pr(1,location.href),Pr(2,document.referrer),Pr(15,function(){var t=oa();if(i.track&&aa(window,"sessionStorage")){var e=sessionStorage.getItem("_cltk");t=e||t,sessionStorage.setItem("_cltk",t)}return t}()),Pr(16,document.documentElement.lang),Pr(17,document.dir),navigator&&(Pr(9,navigator.userLanguage||navigator.language),N(26,navigator.webdriver?1:0),Kr()),N(0,n.ts),N(1,0),screen&&(N(14,Math.round(screen.width)),N(15,Math.round(screen.height)),N(16,Math.round(screen.colorDepth)));for(var a=0,o=i.cookies;a<o.length;a++){var u=o[a],s=la(u);s&&P(u,s)}ia(r)}function Kr(){navigator.userAgentData&&navigator.userAgentData.getHighEntropyValues&&navigator.userAgentData.getHighEntropyValues(["model","platform","platformVersion","uaFullVersion"]).then((function(t){var e;Pr(22,t.platform),Pr(23,t.platformVersion),null===(e=t.brands)||void 0===e||e.forEach((function(t){Pr(24,t.name+"~"+t.version)})),Pr(25,t.model),N(27,t.mobile?1:0)}))}function Qr(){Gr=null,Jr=null,Vr=null}function $r(t,e){void 0===e&&(e=!0),Vr&&!1===e?t(Vr,!i.lean):Gr=t}function ta(){return Vr?[Vr.userId,Vr.sessionId,Vr.pageNum].join("."):""}function ea(){Ca()&&(i.track=!0,ia(sa(),1))}function na(){ca("_clsk","",0)}function ra(){var t=Math.round(Date.now()),e=i.lean?0:1,n=i.upload&&"string"==typeof i.upload?i.upload.replace("https://",""):"";e&&Gr&&Gr(Vr,!i.lean),ca("_clsk",[Vr.sessionId,t,Vr.pageNum,e,n].join("|"),1)}function aa(t,e){try{return!!t[e]}catch(t){return!1}}function ia(t,e){void 0===e&&(e=null),e=null===e?t.consent:e;var n=Math.ceil((Date.now()+31536e6)/864e5);(null===t.expiry||Math.abs(n-t.expiry)>=1||t.consent!==e)&&ca("_clck",[Vr.userId,1,n.toString(36),e].join("|"),365)}function oa(){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 ua(t,e){return void 0===e&&(e=10),parseInt(t,e)}function sa(){var t={id:oa(),expiry:null,consent:0},e=la("_clck");if(e&&e.length>0){for(var n=e.split("|"),r=0,a=0,o=document.cookie.split(";");a<o.length;a++){r+="_clck"===o[a].split("=")[0].trim()?1:0}if(1===n.length||r>1){var u=";expires="+new Date(0).toUTCString()+";path=/";document.cookie="_clck="+u,document.cookie="_clsk="+u}n.length>2&&(t.expiry=ua(n[2],36)),n.length>3&&1===ua(n[3])&&(t.consent=1),i.track=i.track||1===t.consent,t.id=i.track?n[0]:t.id}return t}function la(t){if(aa(document,"cookie")){var e=document.cookie.split(";");if(e)for(var n=0;n<e.length;n++){var r=e[n].split("=");if(r.length>1&&r[0]&&r[0].trim()===t)return r[1]}}return null}function ca(t,e,n){if(i.track&&(navigator&&navigator.cookieEnabled||aa(document,"cookie"))){var r=new Date;r.setDate(r.getDate()+n);var a=t+"="+e+";"+(r?"expires="+r.toUTCString():"")+";path=/";try{if(null===Jr){for(var o=location.hostname?location.hostname.split("."):[],u=o.length-1;u>=0;u--)if(Jr="."+o[u]+(Jr||""),u<o.length-1&&(document.cookie=a+";domain="+Jr,la(t)===e))return;Jr=""}}catch(t){Jr=""}document.cookie=Jr?a+";domain="+Jr:a}}var da,fa=null;function ha(){var t=Vr;fa={version:s,sequence:0,start:0,duration:0,projectId:t.projectId,userId:t.userId,sessionId:t.sessionId,pageNum:t.pageNum,upload:0,end:0}}function pa(){fa=null}function va(t){return fa.start=fa.start+fa.duration,fa.duration=u()-fa.start,fa.sequence++,fa.upload=t&&"sendBeacon"in navigator?1:0,fa.end=t?1:0,[fa.version,fa.sequence,fa.start,fa.duration,fa.projectId,fa.userId,fa.sessionId,fa.pageNum,fa.upload,fa.end]}function ga(){da=[]}function ma(t){if(da&&-1===da.indexOf(t.message)){var e=i.report;if(e&&e.length>0){var n={v:fa.version,p:fa.projectId,u:fa.userId,s:fa.sessionId,n:fa.pageNum};t.message&&(n.m=t.message),t.stack&&(n.e=t.stack);var r=new XMLHttpRequest;r.open("POST",e),r.send(JSON.stringify(n)),da.push(t.message)}}return t}function ba(t){return function(){var e=performance.now();try{t.apply(this,arguments)}catch(t){throw ma(t)}var n=performance.now()-e;O(4,n),n>30&&(M(7),N(6,n))}}var ya=[];function wa(t,e,n,r){void 0===r&&(r=!1),n=ba(n);try{t.addEventListener(e,n,r),ya.push({event:e,target:t,listener:n,capture:r})}catch(t){}}function ka(){for(var t=0,e=ya;t<e.length;t++){var n=e[t];try{n.target.removeEventListener(n.event,n.listener,n.capture)}catch(t){}}ya=[]}var Ea=null,Sa=null,Ma=null,Oa=0;function Na(){return!(Oa++>20)||(Xt(4,0),!1)}function _a(){Oa=0,Ma!==Ta()&&(Fa(),window.setTimeout(Ba,250))}function Ta(){return location.href?location.href.replace(location.hash,""):location.href}var xa=!1;function Ia(){xa=!0,o=performance.now(),ht(),ka(),ga(),Ma=Ta(),Oa=0,wa(window,"popstate",_a),null===Ea&&(Ea=history.pushState),history.pushState=function(){Na()&&(Ea.apply(this,arguments),_a())},null===Sa&&(Sa=history.replaceState),history.replaceState=function(){Na()&&(Sa.apply(this,arguments),_a())}}function Da(){null!==Ea&&(history.pushState=Ea,Ea=null),null!==Sa&&(history.replaceState=Sa,Sa=null),Ma=null,Oa=0,ga(),ka(),ht(),o=0,xa=!1}function Ca(){return xa}function ja(t){if(null===t||xa)return!1;for(var e in t)e in i&&(i[e]=t[e]);return!0}function za(){Ba(),w("clarity","restart")}function Ra(){return J(this,void 0,void 0,(function(){var t,e;return Z(this,(function(n){switch(n.label){case 0:return t=u(),mt(e={id:ta(),cost:3}),[4,Vn(document,e,0)];case 1:return n.sent(),[4,Nt(5,e,t)];case 2:return n.sent(),bt(e),[2]}}))}))}var Aa,La=null;function Ya(){La=null}function Ha(t){La={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){J(this,void 0,void 0,(function(){var e,n;return Z(this,(function(r){switch(e=u(),n=[e,t],t){case 29:n.push(La.fetchStart),n.push(La.connectStart),n.push(La.connectEnd),n.push(La.requestStart),n.push(La.responseStart),n.push(La.responseEnd),n.push(La.domInteractive),n.push(La.domComplete),n.push(La.loadEventStart),n.push(La.loadEventEnd),n.push(La.redirectCount),n.push(La.size),n.push(La.type),n.push(La.protocol),n.push(La.encodedSize),n.push(La.decodedSize),Ya(),Tr(n,!1)}return[2]}))}))}(29)}var qa=["navigation","resource","longtask","first-input","layout-shift","largest-contentful-paint"];function Xa(){try{Aa&&Aa.disconnect(),Aa=new PerformanceObserver(ba(Wa));for(var t=0,e=qa;t<e.length;t++){var n=e[t];PerformanceObserver.supportedEntryTypes.indexOf(n)>=0&&("layout-shift"===n&&O(9,0),Aa.observe({type:n,buffered:!0}))}}catch(t){Xt(3,1)}}function Wa(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":Ha(r);break;case"resource":Pr(4,Ua(r.name));break;case"longtask":M(7);break;case"first-input":e&&N(10,r.processingStart-r.startTime);break;case"layout-shift":e&&!r.hadRecentInput&&O(9,1e3*r.value);break;case"largest-contentful-paint":e&&N(8,r.startTime)}}}(t.getEntries())}function Ua(t){var e=document.createElement("a");return e.href=t,e.hostname}var Pa=[Object.freeze({__proto__:null,start:function(){wa(window,"error",Lt),At={},qt={},wa(document,"securitypolicyviolation",Wt)},stop:function(){qt={}}}),Object.freeze({__proto__:null,start:function(){Mt(),Ot(),We(),Re=null,De=new WeakMap,Ce={},je=[],ze=!!window.IntersectionObserver,he(),function(){Gn=[],$n=[],tr=null,er=0,nr={},null===Zn&&(Zn=CSSStyleSheet.prototype.insertRule),null===Kn&&(Kn=CSSStyleSheet.prototype.deleteRule),null===Qn&&(Qn=Element.prototype.attachShadow),CSSStyleSheet.prototype.insertRule=function(){return ur(this.ownerNode),Zn.apply(this,arguments)},CSSStyleSheet.prototype.deleteRule=function(){return ur(this.ownerNode),Kn.apply(this,arguments)};try{Element.prototype.attachShadow=function(){return ur(Qn.apply(this,arguments))}}catch(t){Qn=null}}(),pt(Ra,1).then((function(){ba(Ot)(),ba(Ye)()})),jt(),Dt=null,It=!!window.ResizeObserver},stop:function(){We(),De=null,Ce={},je=[],Re&&(Re.disconnect(),Re=null),ze=!1,pe(),function(){for(var t=0,e=Gn;t<e.length;t++){var n=e[t];n&&n.disconnect()}Gn=[],null!==Zn&&(CSSStyleSheet.prototype.insertRule=Zn,Zn=null),null!==Kn&&(CSSStyleSheet.prototype.deleteRule=Kn,Kn=null),null!=Qn&&(Element.prototype.attachShadow=Qn,Qn=null),nr={},Jn=[],$n=[],er=0,tr=null}(),zt(),Mt()}}),Ln,Object.freeze({__proto__:null,start:function(){Ya(),function(){window.PerformanceObserver&&PerformanceObserver.supportedEntryTypes?"complete"!==document.readyState?wa(window,"load",_.bind(this,Xa,0)):Xa():Xt(3,0)}()},stop:function(){Aa&&Aa.disconnect(),Aa=null,Ya()}})];function Ba(t){void 0===t&&(t=null),function(){try{return!1===xa&&"undefined"!=typeof Promise&&window.MutationObserver&&document.createTreeWalker&&"now"in Date&&"now"in performance&&"undefined"!=typeof WeakMap}catch(t){return!1}}()&&(ja(t),Ia(),et(),Pa.forEach((function(t){return ba(t.start)()})))}function Fa(){Ca()&&(Pa.slice().reverse().forEach((function(t){return ba(t.stop)()})),nt(),Da())}var Va=Object.freeze({__proto__:null,version:s,start:Ba,pause:function(){Ca()&&(w("clarity","pause"),null===dt&&(dt=new Promise((function(t){ft=t}))))},resume:function(){Ca()&&(dt&&(ft(),dt=null,null===ct&&vt()),w("clarity","resume"))},stop:Fa,consent:ea,event:w,identify:B,set:P,upgrade:X,metadata:$r});!function(){if("undefined"!=typeof window){var t=window,e="clarity";if(t[e]&&t[e].v)return console.warn("Error CL001: Multiple Clarity tags detected.");var n=t[e]&&t[e].q||[];for(t[e]=function(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];return Va[t].apply(Va,e)},t[e].v=s;n.length>0;)t[e].apply(t,n.shift())}}()}();
|
package/build/clarity.module.js
CHANGED
|
@@ -76,7 +76,7 @@ function stop$B() {
|
|
|
76
76
|
startTime = 0;
|
|
77
77
|
}
|
|
78
78
|
|
|
79
|
-
var version$1 = "0.6.
|
|
79
|
+
var version$1 = "0.6.31";
|
|
80
80
|
|
|
81
81
|
// tslint:disable: no-bitwise
|
|
82
82
|
function hash (input) {
|
|
@@ -1245,7 +1245,8 @@ function log$1(code, severity, name, message, stack) {
|
|
|
1245
1245
|
}
|
|
1246
1246
|
function csp(e) {
|
|
1247
1247
|
var upload = config$1.upload;
|
|
1248
|
-
|
|
1248
|
+
// Look for first "/" starting after initial "https://" string
|
|
1249
|
+
var parts = upload && typeof upload === "string" /* String */ ? upload.substr(0, upload.indexOf("/", "https://" /* HTTPS */.length)).split("." /* Dot */) : [];
|
|
1249
1250
|
var domain = parts.length >= 2 ? parts.splice(-2).join("." /* Dot */) : null;
|
|
1250
1251
|
// Capture content security policy violation only if disposition value is not explicitly set to "report"
|
|
1251
1252
|
if (domain && e.blockedURI && e.blockedURI.indexOf(domain) >= 0 && e["disposition"] !== "report" /* Report */) {
|
|
@@ -1444,13 +1445,15 @@ var nodes = [];
|
|
|
1444
1445
|
var values = [];
|
|
1445
1446
|
var updateMap = [];
|
|
1446
1447
|
var hashMap = {};
|
|
1448
|
+
var override = [];
|
|
1449
|
+
var unmask = [];
|
|
1447
1450
|
// The WeakMap object is a collection of key/value pairs in which the keys are weakly referenced
|
|
1448
1451
|
var idMap = null; // Maps node => id.
|
|
1449
1452
|
var iframeMap = null; // Maps iframe's contentDocument => parent iframe element
|
|
1450
1453
|
var privacyMap = null; // Maps node => Privacy (enum)
|
|
1451
1454
|
function start$r() {
|
|
1452
1455
|
reset$g();
|
|
1453
|
-
parse(document);
|
|
1456
|
+
parse(document, true);
|
|
1454
1457
|
}
|
|
1455
1458
|
function stop$q() {
|
|
1456
1459
|
reset$g();
|
|
@@ -1461,16 +1464,23 @@ function reset$g() {
|
|
|
1461
1464
|
values = [];
|
|
1462
1465
|
updateMap = [];
|
|
1463
1466
|
hashMap = {};
|
|
1467
|
+
override = [];
|
|
1468
|
+
unmask = [];
|
|
1464
1469
|
idMap = new WeakMap();
|
|
1465
1470
|
iframeMap = new WeakMap();
|
|
1466
1471
|
privacyMap = new WeakMap();
|
|
1467
1472
|
}
|
|
1468
1473
|
// We parse new root nodes for any regions or masked nodes in the beginning (document) and
|
|
1469
1474
|
// later whenever there are new additions or modifications to DOM (mutations)
|
|
1470
|
-
function parse(root) {
|
|
1475
|
+
function parse(root, init) {
|
|
1476
|
+
if (init === void 0) { init = false; }
|
|
1471
1477
|
// Wrap selectors in a try / catch block.
|
|
1472
1478
|
// It's possible for script to receive invalid selectors, e.g. "'#id'" with extra quotes, and cause the code below to fail
|
|
1473
1479
|
try {
|
|
1480
|
+
// Parse unmask configuration into separate query selectors and override tokens as part of initialization
|
|
1481
|
+
if (init) {
|
|
1482
|
+
config$1.unmask.forEach(function (x) { return x.indexOf("!" /* Bang */) < 0 ? unmask.push(x) : override.push(x.substr(1)); });
|
|
1483
|
+
}
|
|
1474
1484
|
// Since mutations may happen on leaf nodes too, e.g. text nodes, which may not support all selector APIs.
|
|
1475
1485
|
// We ensure that the root note supports querySelectorAll API before executing the code below to identify new regions.
|
|
1476
1486
|
if ("querySelectorAll" in root) {
|
|
@@ -1478,7 +1488,7 @@ function parse(root) {
|
|
|
1478
1488
|
metrics(root, config$1.metrics);
|
|
1479
1489
|
dimensions(root, config$1.dimensions);
|
|
1480
1490
|
config$1.mask.forEach(function (x) { return root.querySelectorAll(x).forEach(function (e) { return privacyMap.set(e, 3 /* TextImage */); }); }); // Masked Elements
|
|
1481
|
-
|
|
1491
|
+
unmask.forEach(function (x) { return root.querySelectorAll(x).forEach(function (e) { return privacyMap.set(e, 0 /* None */); }); }); // Unmasked Elements
|
|
1482
1492
|
}
|
|
1483
1493
|
}
|
|
1484
1494
|
catch (e) {
|
|
@@ -1503,17 +1513,15 @@ function add(node, parent, data, source) {
|
|
|
1503
1513
|
var previousId = getPreviousId(node);
|
|
1504
1514
|
var privacy = config$1.content ? 1 /* Sensitive */ : 2 /* Text */;
|
|
1505
1515
|
var parentValue = null;
|
|
1506
|
-
var parentTag = "" /* Empty */;
|
|
1507
1516
|
var regionId = exists(node) ? id : null;
|
|
1508
1517
|
if (parentId >= 0 && values[parentId]) {
|
|
1509
1518
|
parentValue = values[parentId];
|
|
1510
|
-
parentTag = parentValue.data.tag;
|
|
1511
1519
|
parentValue.children.push(id);
|
|
1512
1520
|
regionId = regionId === null ? parentValue.region : regionId;
|
|
1513
1521
|
privacy = parentValue.metadata.privacy;
|
|
1514
1522
|
}
|
|
1515
1523
|
// Check to see if this particular node should be masked or not
|
|
1516
|
-
privacy = getPrivacy(node, data,
|
|
1524
|
+
privacy = getPrivacy(node, data, parentValue, privacy);
|
|
1517
1525
|
// If there's an explicit region attribute set on the element, use it to mark a region on the page
|
|
1518
1526
|
if (data.attributes && "data-clarity-region" /* RegionData */ in data.attributes) {
|
|
1519
1527
|
observe$b(node, data.attributes["data-clarity-region" /* RegionData */]);
|
|
@@ -1608,21 +1616,35 @@ function iframe(node) {
|
|
|
1608
1616
|
var doc = node.nodeType === Node.DOCUMENT_NODE ? node : null;
|
|
1609
1617
|
return doc && iframeMap.has(doc) ? iframeMap.get(doc) : null;
|
|
1610
1618
|
}
|
|
1611
|
-
function getPrivacy(node, data,
|
|
1619
|
+
function getPrivacy(node, data, parent, privacy) {
|
|
1612
1620
|
var attributes = data.attributes;
|
|
1613
1621
|
var tag = data.tag.toUpperCase();
|
|
1614
1622
|
// If this node was explicitly configured to contain sensitive content, use that information and return the value
|
|
1615
1623
|
if (privacyMap.has(node)) {
|
|
1616
1624
|
return privacyMap.get(node);
|
|
1617
1625
|
}
|
|
1626
|
+
// If it's a text node belonging to a STYLE or TITLE tag;
|
|
1627
|
+
// Or, the text node belongs to one of SCRUB_EXCEPTIONS
|
|
1628
|
+
// then reset the privacy setting to ensure we capture the content
|
|
1629
|
+
if (tag === "*T" /* TextTag */ && parent && parent.data) {
|
|
1630
|
+
var path = parent.selector ? parent.selector[0 /* Stable */] : "" /* Empty */;
|
|
1631
|
+
privacy = parent.data.tag === "STYLE" /* StyleTag */ || parent.data.tag === "TITLE" /* TitleTag */ ? 0 /* None */ : privacy;
|
|
1632
|
+
for (var _i = 0, override_1 = override; _i < override_1.length; _i++) {
|
|
1633
|
+
var entry = override_1[_i];
|
|
1634
|
+
if (path.indexOf(entry) >= 0) {
|
|
1635
|
+
privacy = 0 /* None */;
|
|
1636
|
+
break;
|
|
1637
|
+
}
|
|
1638
|
+
}
|
|
1639
|
+
}
|
|
1618
1640
|
// Do not proceed if attributes are missing for the node
|
|
1619
1641
|
if (attributes === null || attributes === undefined) {
|
|
1620
1642
|
return privacy;
|
|
1621
1643
|
}
|
|
1622
1644
|
// Look up for sensitive fields
|
|
1623
1645
|
if ("class" /* Class */ in attributes && privacy === 1 /* Sensitive */) {
|
|
1624
|
-
for (var
|
|
1625
|
-
var match = DISALLOWED_MATCH_1[
|
|
1646
|
+
for (var _a = 0, DISALLOWED_MATCH_1 = DISALLOWED_MATCH; _a < DISALLOWED_MATCH_1.length; _a++) {
|
|
1647
|
+
var match = DISALLOWED_MATCH_1[_a];
|
|
1626
1648
|
if (attributes["class" /* Class */].indexOf(match) >= 0) {
|
|
1627
1649
|
privacy = 2 /* Text */;
|
|
1628
1650
|
break;
|
|
@@ -1634,12 +1656,12 @@ function getPrivacy(node, data, parentTag, privacy) {
|
|
|
1634
1656
|
if (privacy === 0 /* None */) {
|
|
1635
1657
|
var field = "" /* Empty */;
|
|
1636
1658
|
// Be aggressive in looking up any attribute (id, class, name, etc.) for disallowed names
|
|
1637
|
-
for (var
|
|
1638
|
-
var attribute = _b
|
|
1659
|
+
for (var _b = 0, _c = Object.keys(attributes); _b < _c.length; _b++) {
|
|
1660
|
+
var attribute = _c[_b];
|
|
1639
1661
|
field += attributes[attribute].toLowerCase();
|
|
1640
1662
|
}
|
|
1641
|
-
for (var
|
|
1642
|
-
var name_1 = DISALLOWED_NAMES_1[
|
|
1663
|
+
for (var _d = 0, DISALLOWED_NAMES_1 = DISALLOWED_NAMES; _d < DISALLOWED_NAMES_1.length; _d++) {
|
|
1664
|
+
var name_1 = DISALLOWED_NAMES_1[_d];
|
|
1643
1665
|
if (field.indexOf(name_1) >= 0) {
|
|
1644
1666
|
privacy = 2 /* Text */;
|
|
1645
1667
|
break;
|
|
@@ -1662,11 +1684,6 @@ function getPrivacy(node, data, parentTag, privacy) {
|
|
|
1662
1684
|
if ("data-clarity-unmask" /* UnmaskData */ in attributes) {
|
|
1663
1685
|
privacy = 0 /* None */;
|
|
1664
1686
|
}
|
|
1665
|
-
// If it's a text node belonging to a STYLE or TITLE tag; then reset the privacy setting to ensure we capture the content
|
|
1666
|
-
var cTag = tag === "*T" /* TextTag */ ? parentTag : tag;
|
|
1667
|
-
if (cTag === "STYLE" /* StyleTag */ || cTag === "TITLE" /* TitleTag */) {
|
|
1668
|
-
privacy = 0 /* None */;
|
|
1669
|
-
}
|
|
1670
1687
|
return privacy;
|
|
1671
1688
|
}
|
|
1672
1689
|
function diff(a, b, field) {
|
|
@@ -2577,6 +2594,7 @@ function processNode (node, source) {
|
|
|
2577
2594
|
case Node.DOCUMENT_FRAGMENT_NODE:
|
|
2578
2595
|
var shadowRoot = node;
|
|
2579
2596
|
if (shadowRoot.host) {
|
|
2597
|
+
parse(shadowRoot);
|
|
2580
2598
|
var type = typeof (shadowRoot.constructor);
|
|
2581
2599
|
if (type === "function" /* Function */ && shadowRoot.constructor.toString().indexOf("[native code]" /* NativeCode */) >= 0) {
|
|
2582
2600
|
observe$2(shadowRoot);
|
|
@@ -2938,6 +2956,9 @@ function process$1() {
|
|
|
2938
2956
|
if (type && target && target.ownerDocument) {
|
|
2939
2957
|
parse(target.ownerDocument);
|
|
2940
2958
|
}
|
|
2959
|
+
if (type && target && target.nodeType == Node.DOCUMENT_FRAGMENT_NODE && target.host) {
|
|
2960
|
+
parse(target);
|
|
2961
|
+
}
|
|
2941
2962
|
switch (type) {
|
|
2942
2963
|
case "attributes" /* Attributes */:
|
|
2943
2964
|
processNode(target, 3 /* Attributes */);
|
package/package.json
CHANGED
package/src/core/version.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
let version = "0.6.
|
|
1
|
+
let version = "0.6.31";
|
|
2
2
|
export default version;
|
|
@@ -28,7 +28,8 @@ export function log(code: Code, severity: Severity, name: string = null, message
|
|
|
28
28
|
|
|
29
29
|
function csp(e: SecurityPolicyViolationEvent): void {
|
|
30
30
|
let upload = config.upload as string;
|
|
31
|
-
|
|
31
|
+
// Look for first "/" starting after initial "https://" string
|
|
32
|
+
let parts = upload && typeof upload === Constant.String ? upload.substr(0, upload.indexOf("/", Constant.HTTPS.length)).split(Constant.Dot) : [];
|
|
32
33
|
let domain = parts.length >= 2 ? parts.splice(-2).join(Constant.Dot) : null;
|
|
33
34
|
// Capture content security policy violation only if disposition value is not explicitly set to "report"
|
|
34
35
|
if (domain && e.blockedURI && e.blockedURI.indexOf(domain) >= 0 && e["disposition"] !== Constant.Report) {
|
package/src/layout/dom.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Privacy } from "@clarity-types/core";
|
|
2
2
|
import { Code, Setting, Severity } from "@clarity-types/data";
|
|
3
|
-
import { Constant, NodeInfo, NodeValue, SelectorInput, Source } from "@clarity-types/layout";
|
|
3
|
+
import { Constant, NodeInfo, NodeValue, Selector, SelectorInput, Source } from "@clarity-types/layout";
|
|
4
4
|
import config from "@src/core/config";
|
|
5
5
|
import hash from "@src/core/hash";
|
|
6
6
|
import * as internal from "@src/diagnostic/internal";
|
|
@@ -19,6 +19,8 @@ let nodes: Node[] = [];
|
|
|
19
19
|
let values: NodeValue[] = [];
|
|
20
20
|
let updateMap: number[] = [];
|
|
21
21
|
let hashMap: { [hash: string]: number } = {};
|
|
22
|
+
let override = [];
|
|
23
|
+
let unmask = [];
|
|
22
24
|
|
|
23
25
|
// The WeakMap object is a collection of key/value pairs in which the keys are weakly referenced
|
|
24
26
|
let idMap: WeakMap<Node, number> = null; // Maps node => id.
|
|
@@ -27,7 +29,7 @@ let privacyMap: WeakMap<Node, Privacy> = null; // Maps node => Privacy (enum)
|
|
|
27
29
|
|
|
28
30
|
export function start(): void {
|
|
29
31
|
reset();
|
|
30
|
-
parse(document);
|
|
32
|
+
parse(document, true);
|
|
31
33
|
}
|
|
32
34
|
|
|
33
35
|
export function stop(): void {
|
|
@@ -40,6 +42,8 @@ function reset(): void {
|
|
|
40
42
|
values = [];
|
|
41
43
|
updateMap = [];
|
|
42
44
|
hashMap = {};
|
|
45
|
+
override = [];
|
|
46
|
+
unmask = [];
|
|
43
47
|
idMap = new WeakMap();
|
|
44
48
|
iframeMap = new WeakMap();
|
|
45
49
|
privacyMap = new WeakMap();
|
|
@@ -47,10 +51,13 @@ function reset(): void {
|
|
|
47
51
|
|
|
48
52
|
// We parse new root nodes for any regions or masked nodes in the beginning (document) and
|
|
49
53
|
// later whenever there are new additions or modifications to DOM (mutations)
|
|
50
|
-
export function parse(root: ParentNode): void {
|
|
54
|
+
export function parse(root: ParentNode, init: boolean = false): void {
|
|
51
55
|
// Wrap selectors in a try / catch block.
|
|
52
56
|
// It's possible for script to receive invalid selectors, e.g. "'#id'" with extra quotes, and cause the code below to fail
|
|
53
57
|
try {
|
|
58
|
+
// Parse unmask configuration into separate query selectors and override tokens as part of initialization
|
|
59
|
+
if (init) { config.unmask.forEach(x => x.indexOf(Constant.Bang) < 0 ? unmask.push(x) : override.push(x.substr(1))); }
|
|
60
|
+
|
|
54
61
|
// Since mutations may happen on leaf nodes too, e.g. text nodes, which may not support all selector APIs.
|
|
55
62
|
// We ensure that the root note supports querySelectorAll API before executing the code below to identify new regions.
|
|
56
63
|
if ("querySelectorAll" in root) {
|
|
@@ -58,7 +65,7 @@ export function parse(root: ParentNode): void {
|
|
|
58
65
|
extract.metrics(root, config.metrics);
|
|
59
66
|
extract.dimensions(root, config.dimensions);
|
|
60
67
|
config.mask.forEach(x => root.querySelectorAll(x).forEach(e => privacyMap.set(e, Privacy.TextImage))); // Masked Elements
|
|
61
|
-
|
|
68
|
+
unmask.forEach(x => root.querySelectorAll(x).forEach(e => privacyMap.set(e, Privacy.None))); // Unmasked Elements
|
|
62
69
|
}
|
|
63
70
|
} catch (e) { internal.log(Code.Selector, Severity.Warning, e ? e.name : null); }
|
|
64
71
|
}
|
|
@@ -80,19 +87,17 @@ export function add(node: Node, parent: Node, data: NodeInfo, source: Source): v
|
|
|
80
87
|
let previousId = getPreviousId(node);
|
|
81
88
|
let privacy = config.content ? Privacy.Sensitive : Privacy.Text;
|
|
82
89
|
let parentValue = null;
|
|
83
|
-
let parentTag = Constant.Empty;
|
|
84
90
|
let regionId = region.exists(node) ? id : null;
|
|
85
91
|
|
|
86
92
|
if (parentId >= 0 && values[parentId]) {
|
|
87
93
|
parentValue = values[parentId];
|
|
88
|
-
parentTag = parentValue.data.tag;
|
|
89
94
|
parentValue.children.push(id);
|
|
90
95
|
regionId = regionId === null ? parentValue.region : regionId;
|
|
91
96
|
privacy = parentValue.metadata.privacy;
|
|
92
97
|
}
|
|
93
98
|
|
|
94
99
|
// Check to see if this particular node should be masked or not
|
|
95
|
-
privacy = getPrivacy(node, data,
|
|
100
|
+
privacy = getPrivacy(node, data, parentValue, privacy);
|
|
96
101
|
|
|
97
102
|
// If there's an explicit region attribute set on the element, use it to mark a region on the page
|
|
98
103
|
if (data.attributes && Constant.RegionData in data.attributes) {
|
|
@@ -198,13 +203,27 @@ export function iframe(node: Node): HTMLIFrameElement {
|
|
|
198
203
|
return doc && iframeMap.has(doc) ? iframeMap.get(doc) : null;
|
|
199
204
|
}
|
|
200
205
|
|
|
201
|
-
function getPrivacy(node: Node, data: NodeInfo,
|
|
206
|
+
function getPrivacy(node: Node, data: NodeInfo, parent: NodeValue, privacy: Privacy): Privacy {
|
|
202
207
|
let attributes = data.attributes;
|
|
203
208
|
let tag = data.tag.toUpperCase();
|
|
204
209
|
|
|
205
210
|
// If this node was explicitly configured to contain sensitive content, use that information and return the value
|
|
206
211
|
if (privacyMap.has(node)) { return privacyMap.get(node); }
|
|
207
212
|
|
|
213
|
+
// If it's a text node belonging to a STYLE or TITLE tag;
|
|
214
|
+
// Or, the text node belongs to one of SCRUB_EXCEPTIONS
|
|
215
|
+
// then reset the privacy setting to ensure we capture the content
|
|
216
|
+
if (tag === Constant.TextTag && parent && parent.data) {
|
|
217
|
+
let path = parent.selector ? parent.selector[Selector.Stable] : Constant.Empty;
|
|
218
|
+
privacy = parent.data.tag === Constant.StyleTag || parent.data.tag === Constant.TitleTag ? Privacy.None : privacy;
|
|
219
|
+
for (let entry of override) {
|
|
220
|
+
if (path.indexOf(entry) >= 0) {
|
|
221
|
+
privacy = Privacy.None;
|
|
222
|
+
break;
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
|
|
208
227
|
// Do not proceed if attributes are missing for the node
|
|
209
228
|
if (attributes === null || attributes === undefined) { return privacy; }
|
|
210
229
|
|
|
@@ -243,10 +262,6 @@ function getPrivacy(node: Node, data: NodeInfo, parentTag: string, privacy: Priv
|
|
|
243
262
|
if (Constant.MaskData in attributes) { privacy = Privacy.TextImage; }
|
|
244
263
|
if (Constant.UnmaskData in attributes) { privacy = Privacy.None; }
|
|
245
264
|
|
|
246
|
-
// If it's a text node belonging to a STYLE or TITLE tag; then reset the privacy setting to ensure we capture the content
|
|
247
|
-
let cTag = tag === Constant.TextTag ? parentTag : tag;
|
|
248
|
-
if (cTag === Constant.StyleTag || cTag === Constant.TitleTag) { privacy = Privacy.None; }
|
|
249
|
-
|
|
250
265
|
return privacy;
|
|
251
266
|
}
|
|
252
267
|
|
package/src/layout/mutation.ts
CHANGED
|
@@ -145,6 +145,7 @@ async function process(): Promise<void> {
|
|
|
145
145
|
let target = mutation.target;
|
|
146
146
|
let type = track(mutation, timer);
|
|
147
147
|
if (type && target && target.ownerDocument) { dom.parse(target.ownerDocument); }
|
|
148
|
+
if (type && target && target.nodeType == Node.DOCUMENT_FRAGMENT_NODE && (target as ShadowRoot).host) { dom.parse(target as ShadowRoot); }
|
|
148
149
|
switch (type) {
|
|
149
150
|
case Constant.Attributes:
|
|
150
151
|
processNode(target, Source.Attributes);
|
package/src/layout/node.ts
CHANGED
|
@@ -46,6 +46,7 @@ export default function (node: Node, source: Source): Node {
|
|
|
46
46
|
case Node.DOCUMENT_FRAGMENT_NODE:
|
|
47
47
|
let shadowRoot = (node as ShadowRoot);
|
|
48
48
|
if (shadowRoot.host) {
|
|
49
|
+
dom.parse(shadowRoot);
|
|
49
50
|
let type = typeof (shadowRoot.constructor);
|
|
50
51
|
if (type === Constant.Function && shadowRoot.constructor.toString().indexOf(Constant.NativeCode) >= 0) {
|
|
51
52
|
observe(shadowRoot);
|