<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">if (window.Evergage &amp;&amp; window.SalesforceInteractions &amp;&amp; window.SalesforceInteractions.mcis) {
    try {
        window.SalesforceInteractions.log.warn("Aborting SDK load since the SalesforceInteractions SDK was already found on this page.");
    } catch(e) {}
} else {
window.evergageBeaconParseTimeStart = (new Date().getTime());
'use strict';var Evergage=function(n){function tc(c,d){var a=Object.keys(c);if(Object.getOwnPropertySymbols){var b=Object.getOwnPropertySymbols(c);d&amp;&amp;(b=b.filter(function(a){return Object.getOwnPropertyDescriptor(c,a).enumerable}));a.push.apply(a,b)}return a}function t(c){for(var d=1;d&lt;arguments.length;d++){var a=null!=arguments[d]?arguments[d]:{};d%2?tc(Object(a),!0).forEach(function(b){L(c,b,a[b])}):Object.getOwnPropertyDescriptors?Object.defineProperties(c,Object.getOwnPropertyDescriptors(a)):
tc(Object(a)).forEach(function(b){Object.defineProperty(c,b,Object.getOwnPropertyDescriptor(a,b))})}return c}function uc(c){a:if("object"==typeof c&amp;&amp;c){var d=c[Symbol.toPrimitive];if(void 0!==d){c=d.call(c,"string");if("object"!=typeof c)break a;throw new TypeError("@@toPrimitive must return a primitive value.");}c=String(c)}return"symbol"==typeof c?c:String(c)}function A(c){"@babel/helpers - typeof";return A="function"==typeof Symbol&amp;&amp;"symbol"==typeof Symbol.iterator?function(c){return typeof c}:
function(c){return c&amp;&amp;"function"==typeof Symbol&amp;&amp;c.constructor===Symbol&amp;&amp;c!==Symbol.prototype?"symbol":typeof c},A(c)}function ha(c,d){if(!(c instanceof d))throw new TypeError("Cannot call a class as a function");}function vc(c,d){for(var a=0;a&lt;d.length;a++){var b=d[a];b.enumerable=b.enumerable||!1;b.configurable=!0;"value"in b&amp;&amp;(b.writable=!0);Object.defineProperty(c,uc(b.key),b)}}function ia(c,d,a){d&amp;&amp;vc(c.prototype,d);a&amp;&amp;vc(c,a);Object.defineProperty(c,"prototype",{writable:!1});return c}function L(c,
d,a){d=uc(d);d in c?Object.defineProperty(c,d,{value:a,enumerable:!0,configurable:!0,writable:!0}):c[d]=a;return c}function Na(c,d){if("function"!==typeof d&amp;&amp;null!==d)throw new TypeError("Super expression must either be null or a function");c.prototype=Object.create(d&amp;&amp;d.prototype,{constructor:{value:c,writable:!0,configurable:!0}});Object.defineProperty(c,"prototype",{writable:!1});d&amp;&amp;mb(c,d)}function R(c){R=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(c){return c.__proto__||Object.getPrototypeOf(c)};
return R(c)}function mb(c,d){mb=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(a,b){a.__proto__=b;return a};return mb(c,d)}function qe(){if("undefined"===typeof Reflect||!Reflect.construct||Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(c){return!1}}function xa(c,d){if(null==c)return{};if(null==c)var a={};else{a={};var b=Object.keys(c),e;for(e=0;e&lt;b.length;e++){var f=
b[e];0&lt;=d.indexOf(f)||(a[f]=c[f])}}if(Object.getOwnPropertySymbols)for(e=Object.getOwnPropertySymbols(c),f=0;f&lt;e.length;f++)b=e[f],0&lt;=d.indexOf(b)||Object.prototype.propertyIsEnumerable.call(c,b)&amp;&amp;(a[b]=c[b]);return a}function Oa(c){var d=qe();return function(){var a=R(c);if(d){var b=R(this).constructor;a=Reflect.construct(a,arguments,b)}else a=a.apply(this,arguments);if(!a||"object"!==typeof a&amp;&amp;"function"!==typeof a){if(void 0!==a)throw new TypeError("Derived constructors may only return object or undefined");
if(void 0===this)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");a=this}return a}}function ja(){ja="undefined"!==typeof Reflect&amp;&amp;Reflect.get?Reflect.get.bind():function(c,d,a){var b;for(b=c;!Object.prototype.hasOwnProperty.call(b,d)&amp;&amp;(b=R(b),null!==b););if(b)return b=Object.getOwnPropertyDescriptor(b,d),b.get?b.get.call(3&gt;arguments.length?c:a):b.value};return ja.apply(this,arguments)}function ya(c,d){var a=Array.isArray(c)?c:void 0;if(!a)a:{var b=null==c?null:
"undefined"!=typeof Symbol&amp;&amp;c[Symbol.iterator]||c["@@iterator"];if(null!=b){var e,f,g,h=[],l=!0,E=!1;try{if(f=(b=b.call(c)).next,0===d){if(Object(b)!==b){a=void 0;break a}l=!1}else for(;!(l=(e=f.call(b)).done)&amp;&amp;(h.push(e.value),h.length!==d);l=!0);}catch(qa){E=!0;var k=qa}finally{try{if(!l&amp;&amp;null!=b.return&amp;&amp;(g=b.return(),Object(g)!==g)){a=void 0;break a}}finally{if(E)throw k;}}a=h}else a=void 0}if(!(c=a||wc(c,d)))throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
return c}function nb(c){var d=Array.isArray(c)?ob(c):void 0;d||(d="undefined"!==typeof Symbol&amp;&amp;null!=c[Symbol.iterator]||null!=c["@@iterator"]?Array.from(c):void 0);if(!(c=d||wc(c)))throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");return c}function wc(c,d){if(c){if("string"===typeof c)return ob(c,d);var a=Object.prototype.toString.call(c).slice(8,-1);"Object"===a&amp;&amp;c.constructor&amp;&amp;(a=c.constructor.name);
if("Map"===a||"Set"===a)return Array.from(c);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return ob(c,d)}}function ob(c,d){if(null==d||d&gt;c.length)d=c.length;for(var a=0,b=Array(d);a&lt;d;a++)b[a]=c[a];return b}function pb(c){var d=1&lt;arguments.length&amp;&amp;void 0!==arguments[1]?arguments[1]:S;return d&amp;&amp;9===d.nodeType||d&amp;&amp;1===d.nodeType?re.test(c)?d.getElementsByClassName(c.slice(1)):se.test(c)?d.getElementsByTagName(c):d.querySelectorAll(c):[]}function za(c){return c.replace(te,function(c,
a){return a.toUpperCase()})}function C(c,d,a){if(a)for(a=c.length;a--&amp;&amp;!1!==d.call(c[a],a,c[a]););else{a=0;for(var b=c.length;a&lt;b&amp;&amp;!1!==d.call(c[a],a,c[a]);a++);}return c}function qb(c,d){var a=c&amp;&amp;(c.matches||c.webkitMatchesSelector||c.msMatchesSelector);return!!a&amp;&amp;a.call(c,d)}function rb(c){return!!c&amp;&amp;c===c.window}function ka(c){return"function"===typeof c}function G(c){return"string"===typeof c}function xc(c){return!isNaN(parseFloat(c))&amp;&amp;isFinite(c)}function sb(c){return G(c)?function(d,a){return qb(a,
c)}:ka(c)?c:c instanceof Pa?function(d,a){return c.is(a)}:c?function(d,a){return a===c}:function(){return!1}}function ra(c,d){return d?c.filter(d):c}function Qa(c){return G(c)?c.match(ue)||[]:[]}function V(c,d,a){for(var b=[],e=ka(d),f=0,g=c.length;f&lt;g;f++)if(e){var h=d(c[f]);h.length&amp;&amp;ve.apply(b,h)}else for(h=c[f][d];null!=h;)b.push(h),h=a?h[d]:null;return b}function T(c){return 1&lt;c.length?tb.call(c,function(c,a,b){return yc.call(b,c)===a}):c}function la(c,d,a){if(c&amp;&amp;1===c.nodeType&amp;&amp;d)return c=Aa.getComputedStyle(c,
null),d?a?c.getPropertyValue(d)||void 0:c[d]:c}function sa(c,d){return parseInt(la(c,d),10)||0}function zc(c){if(1&lt;arguments.length&amp;&amp;void 0!==arguments[1]?arguments[1]:ub.test(c))return c;if(!vb[c]){var d=za(c),a="".concat(d[0].toUpperCase()).concat(d.slice(1));d="".concat(d," ").concat(we.join("".concat(a," "))).concat(a).split(" ");C(d,function(a,d){if(d in xe)return vb[c]=d,!1})}return vb[c]}function Ac(c,d){return(2&lt;arguments.length&amp;&amp;void 0!==arguments[2]?arguments[2]:ub.test(c))||ye[c]||!xc(d)?
d:"".concat(d,"px")}function Bc(c,d){c=c.dataset[d]||c.dataset[za(d)];try{return JSON.parse(c)}catch(a){}return c}function Cc(c,d){return sa(c,"border".concat(d?"Left":"Top","Width"))+sa(c,"padding".concat(d?"Left":"Top"))+sa(c,"padding".concat(d?"Right":"Bottom"))+sa(c,"border".concat(d?"Right":"Bottom","Width"))}function Dc(c,d){return!d||!wb.call(d,function(a){return 0&gt;c.indexOf(a)})}function ze(c,d,a,b,e){e.guid=e.guid||p.guid++;var f=c.___ce=c.___ce||{};f[d]=f[d]||[];f[d].push([a,b,e]);c.addEventListener(d,
e)}function xb(c){c=c.split(".");return[c[0],c.slice(1).sort()]}function Ra(c,d,a,b,e){var f=c.___ce=c.___ce||{};if(d)f[d]&amp;&amp;(f[d]=f[d].filter(function(f){var g=ya(f,3);f=g[0];var l=g[1];g=g[2];if(e&amp;&amp;g.guid!==e.guid||!Dc(f,a)||b&amp;&amp;b!==l)return!0;c.removeEventListener(d,g)}));else for(d in f)Ra(c,d,a,b,e)}function Ec(c){return c.multiple&amp;&amp;c.options?V(tb.call(c.options,function(c){return c.selected&amp;&amp;!c.disabled&amp;&amp;!c.parentNode.disabled}),"value"):c.value||""}function Fc(c){if(!G(c))return[];if(Ae.test(c))return[ma(RegExp.$1)];
var d=Be.test(c)&amp;&amp;RegExp.$1;d=Gc[d]||Gc["*"];d.innerHTML=c;return p(d.childNodes).detach().get()}function Ce(c,d){c=p(c);c.filter("script").add(c.find("script")).each(function(a,b){if(De.test(b.type)&amp;&amp;yb.contains(b)){var c=ma("script");c.text=b.textContent.replace(Ee,"");C(Fe,function(a,d){b[d]&amp;&amp;(c[d]=b[d])});d.head.insertBefore(c,null);d.head.removeChild(c)}})}function ba(c,d,a,b,e,f,g,h){C(c,function(c,f){C(p(f),function(c,f){C(p(d),function(c,d){var g=a?d:f;d=a?f:d;c=c?g.cloneNode(!0):g;e?d.insertBefore(c,
b?d.firstElementChild:null):d.parentNode.insertBefore(c,b?d:d.nextElementSibling);Ce(c,d.ownerDocument)},h)},g)},f);return d}function Hc(c,d){var a=Object.keys(c);if(Object.getOwnPropertySymbols){var b=Object.getOwnPropertySymbols(c);d&amp;&amp;(b=b.filter(function(a){return Object.getOwnPropertyDescriptor(c,a).enumerable}));a.push.apply(a,b)}return a}function z(c){for(var d=1;d&lt;arguments.length;d++){var a=null!=arguments[d]?arguments[d]:{};d%2?Hc(Object(a),!0).forEach(function(b){Sa(c,b,a[b])}):Object.getOwnPropertyDescriptors?
Object.defineProperties(c,Object.getOwnPropertyDescriptors(a)):Hc(Object(a)).forEach(function(b){Object.defineProperty(c,b,Object.getOwnPropertyDescriptor(a,b))})}return c}function Ic(c){a:if("object"==A(c)&amp;&amp;c){var d=c[Symbol.toPrimitive];if(void 0!==d){c=d.call(c,"string");if("object"!=A(c))break a;throw new TypeError("@@toPrimitive must return a primitive value.");}c=String(c)}return"symbol"==A(c)?c:String(c)}function J(c){"@babel/helpers - typeof";return J="function"==typeof Symbol&amp;&amp;"symbol"==
typeof Symbol.iterator?function(c){return typeof c}:function(c){return c&amp;&amp;"function"==typeof Symbol&amp;&amp;c.constructor===Symbol&amp;&amp;c!==Symbol.prototype?"symbol":typeof c},J(c)}function Ba(c,d){if(!(c instanceof d))throw new TypeError("Cannot call a class as a function");}function Jc(c,d){for(var a=0;a&lt;d.length;a++){var b=d[a];b.enumerable=b.enumerable||!1;b.configurable=!0;"value"in b&amp;&amp;(b.writable=!0);Object.defineProperty(c,Ic(b.key),b)}}function Ca(c,d,a){d&amp;&amp;Jc(c.prototype,d);a&amp;&amp;Jc(c,a);Object.defineProperty(c,
"prototype",{writable:!1});return c}function Sa(c,d,a){d=Ic(d);d in c?Object.defineProperty(c,d,{value:a,enumerable:!0,configurable:!0,writable:!0}):c[d]=a;return c}function Ie(c,d){if("function"!==typeof d&amp;&amp;null!==d)throw new TypeError("Super expression must either be null or a function");c.prototype=Object.create(d&amp;&amp;d.prototype,{constructor:{value:c,writable:!0,configurable:!0}});Object.defineProperty(c,"prototype",{writable:!1});d&amp;&amp;zb(c,d)}function na(c){na=Object.setPrototypeOf?Object.getPrototypeOf.bind():
function(c){return c.__proto__||Object.getPrototypeOf(c)};return na(c)}function zb(c,d){zb=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(a,b){a.__proto__=b;return a};return zb(c,d)}function Je(){if("undefined"===typeof Reflect||!Reflect.construct||Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(c){return!1}}function Ke(c){var d=Je();return function(){var a=na(c);if(d){var b=
na(this).constructor;a=Reflect.construct(a,arguments,b)}else a=a.apply(this,arguments);if(!a||"object"!==A(a)&amp;&amp;"function"!==typeof a){if(void 0!==a)throw new TypeError("Derived constructors may only return object or undefined");if(void 0===this)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");a=this}return a}}function Ta(){Ta="undefined"!==typeof Reflect&amp;&amp;Reflect.get?Reflect.get.bind():function(c,d,a){var b;for(b=c;!Object.prototype.hasOwnProperty.call(b,d)&amp;&amp;(b=
na(b),null!==b););if(b)return b=Object.getOwnPropertyDescriptor(b,d),b.get?b.get.call(3&gt;arguments.length?c:a):b.value};return Ta.apply(this,arguments)}function Kc(c){var d=Array.isArray(c)?Ab(c):void 0;d||(d="undefined"!==typeof Symbol&amp;&amp;null!=c[Symbol.iterator]||null!=c["@@iterator"]?Array.from(c):void 0);if(!(c=d||Lc(c)))throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");return c}function Lc(c,
d){if(c){if("string"===typeof c)return Ab(c,d);var a=Object.prototype.toString.call(c).slice(8,-1);"Object"===a&amp;&amp;c.constructor&amp;&amp;(a=c.constructor.name);if("Map"===a||"Set"===a)return Array.from(c);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return Ab(c,d)}}function Ab(c,d){if(null==d||d&gt;c.length)d=c.length;for(var a=0,b=Array(d);a&lt;d;a++)b[a]=c[a];return b}function Bb(c,d){var a="undefined"!==typeof Symbol&amp;&amp;c[Symbol.iterator]||c["@@iterator"];if(!a){if(Array.isArray(c)||(a=
Lc(c))||d&amp;&amp;c&amp;&amp;"number"===typeof c.length){a&amp;&amp;(c=a);var b=0;d=function(){};return{s:d,n:function(){return b&gt;=c.length?{done:!0}:{done:!1,value:c[b++]}},e:function(a){throw a;},f:d}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}var e=!0,f=!1,g;return{s:function(){a=a.call(c)},n:function(){var b=a.next();e=b.done;return b},e:function(a){f=!0;g=a},f:function(){try{e||null==a.return||a.return()}finally{if(f)throw g;
}}}}function Mc(c){r.setLoggingLevel(c)}function Nc(){return r.getLoggingLevel()}function Cb(c){var d,a,b,e=[],f=[a=1732584193,b=4023233417,~a,~b,3285377520],g=[],h=unescape(encodeURI(c))+"\u0080",l=h.length;for(g[c=--l/4+2|15]=8*l;~l;)g[l&gt;&gt;2]|=h.charCodeAt(l)&lt;&lt;8*~l--;for(d=l=0;d&lt;c;d+=16){for(a=f;80&gt;l;a=[a[4]+(e[l]=16&gt;l?~~g[d+l]:2*h|0&gt;h)+1518500249+[b&amp;E|~b&amp;k,h=341275144+(b^E^k),882459459+(b&amp;E|b&amp;k|E&amp;k),h+1535694389][l++/5&gt;&gt;2]+((h=a[0])&lt;&lt;5|h&gt;&gt;&gt;27),h,b&lt;&lt;30|b&gt;&gt;&gt;2,E,k]){h=e[l-3]^e[l-8]^e[l-14]^e[l-16];
b=a[1];var E=a[2];var k=a[3]}for(l=5;l;)f[--l]+=a[l]}for(h="";40&gt;l;)h+=(f[l&gt;&gt;3]&gt;&gt;4*(7-l++)&amp;15).toString(16);return h}function Oc(){var c=(window.navigator.userAgent||"")+(window.navigator.platform||"")+(new Date).getTime+JSON.stringify({})+Math.random();return Da(c).slice(0,16)}function Pc(c,d,a){return"function"===typeof a?{bind:c,selector:d,callback:a}:null}function Le(){Db=v.onFireException.on(function(c,d){document.dispatchEvent(new CustomEvent(w.OnException,{detail:{error:c,context:d}}))});Eb=
v.onEventSend.on(function(c){document.dispatchEvent(new CustomEvent(w.OnBeforeEventSend,{detail:{actionEvent:c},cancelable:!0}))&amp;&amp;document.dispatchEvent(new CustomEvent(w.OnEventSend,{detail:{actionEvent:c}}))});Fb=v.onPageMatchStatusUpdated.on(function(c){document.dispatchEvent(new CustomEvent(w.OnPageMatchStatusUpdated,{detail:{matchStatus:c}}))});Gb=v.onInitSitemap.on(function(c){document.dispatchEvent(new CustomEvent(w.OnInitSitemap,{detail:{sitemapConfig:c}}))})}function W(c){Db&amp;&amp;Db();Eb&amp;&amp;Eb();
Fb&amp;&amp;Fb();Gb&amp;&amp;Gb();document.dispatchEvent(new CustomEvent(w.OnShutDown,{detail:{message:c}}));Hb="shutDown";return!1}function Ua(c,d,a,b){return c.addEventListener?(c.addEventListener(d,a,b),!0):!1}function ca(c,d,a,b){return c.removeEventListener?(c.removeEventListener(d,a,b),!0):!1}function Ib(c){var d=document.createElement("a");d.href=c;return d}function Qc(c){try{return decodeURIComponent(c.replace(/\+/g," "))}catch(d){return null}}function Rc(c){if(c=c.detail&amp;&amp;c.detail.actionEvent)if(c.itemAction&amp;&amp;
c.itemAction.includes("View"))Va();else{var d;if(d=c.interaction)c=c.interaction.name,d=c===oa.ViewCatalogObject||c===oa.ViewCatalogObjectDetail||c===oa.QuickViewCatalogObject||c===Ea.StopQuickViewCatalogObject;d&amp;&amp;Va()}}function Jb(c){-1!==X&amp;&amp;(Kb(!1,c),clearTimeout(X),X=-1)}function Va(){if(!q.beaconConfig.doNotTrackPingRequestsForActions){Jb(!0);document.removeEventListener(n.CustomEvents.OnEventSend,Rc);document.addEventListener(n.CustomEvents.OnEventSend,Rc);var c=Date.now();if(-1===H||c-H&gt;=q.beaconConfig.minimumActivityTimeToRegister)H=
c;X=setTimeout(function(){Kb(!0)},q.beaconConfig.timeOnPageTimerLengthMillis);r.info("Setting up time on page listeners.");ca(window,"unload",Lb);Ua(window,"unload",Lb);ca(window,"blur",Mb);Ua(window,"blur",Mb);ca(window,"focus",Nb);Ua(window,"focus",Nb);ca(document,"mousemove keydown scroll click",Fa);Ua(document,"mousemove keydown scroll click",Fa)}}function Kb(c,d){var a=Date.now();-1!==H&amp;&amp;(a-=H,q.beaconConfig.timeOnPageTimerLengthMillis&lt;a?Wa():(r.trace("Evergage: timeOnPage before: sendActivityPingRequest: ".concat(D)),
D+=a,r.trace("Evergage: timeOnPage after: sendActivityPingRequest: ".concat(D)),-1!==Y&amp;&amp;clearTimeout(Y),Y=setTimeout(Wa,q.beaconConfig.timeOnPageTimerLengthMillis-a)));if(0&lt;D){D=Math.min(D,q.beaconConfig.timeOnPageTimerLengthMillis);if(!0!==d||2E3&lt;=D)d=Me(D),Ne(d),Sc(d);D=0}0&gt;D&amp;&amp;(D=0);c&amp;&amp;(-1!==X&amp;&amp;clearTimeout(X),X=setTimeout(function(){Kb(!0)},q.beaconConfig.timeOnPageTimerLengthMillis))}function Me(c){c={timeOnPageMillis:c};var d=Tc(),a={};if(d&amp;&amp;d.itemAction&amp;&amp;d.catalog)a=d.catalog;else if(d&amp;&amp;d.interaction&amp;&amp;
d.interaction.catalogObject){a=d.interaction.catalogObject;var b={},e=a.id,f=a.type,g=xa(a,Oe);e&amp;&amp;f&amp;&amp;(b[a.type]={_id:e});a.relatedCatalogObjects&amp;&amp;(f=g.relatedCatalogObjects,e=f.Category,f=xa(f,Pe),Array.isArray(e)&amp;&amp;(b[a.type].categories=Uc(e)),0!==Object.keys(f).length&amp;&amp;(b[a.type].relatedCatalogObjects=f));a=b}0!==Object.keys(a).length&amp;&amp;(c.catalog=a);d&amp;&amp;d.interaction&amp;&amp;null!=d.interaction.name?c.action=d.interaction.name:d&amp;&amp;null!=d.action&amp;&amp;(c.action=d.action);Vc();c.performance={};d=xa(y,Qe);for(var h in d)y[h]&amp;&amp;
(c.performance[h]=y[h]);return c}function Lb(c){Jb()}function Mb(c){try{r.trace("Evergage: window blurred"),Wa()}catch(d){x(d,"windowBlurFunction")}}function Nb(c){try{r.trace("Evergage: window focused"),Fa()}catch(d){x(d,"windowFocusFunction")}}function Wa(){try{-1!==Y&amp;&amp;(clearTimeout(Y),Y=-1);var c=Date.now(),d=0;-1!==H&amp;&amp;(d=c-H);r.trace("Evergage: timeOnPage before: setUserInactive: ".concat(D));D+=d;r.trace("Evergage: timeOnPage after: setUserInactive: ".concat(D));H=-1}catch(a){x(a,"setUserInactive")}}
function Fa(){r.trace("activity registered");try{-1!==Y&amp;&amp;(clearTimeout(Y),Y=-1);var c=Date.now();if(-1===H||c-H&gt;=q.beaconConfig.minimumActivityTimeToRegister)-1!==H&amp;&amp;(r.trace("Evergage: timeOnPage before: activityRegistered: ".concat(D)),D+=c-Math.max(H,-1),r.trace("Evergage: timeOnPage after: activityRegistered: ".concat(D))),H=c}catch(d){x(d,"activityRegistered")}}function Ob(c,d){c="string"===typeof c?Error(c):c;for(var a in d)Object.defineProperty(c,a,{value:d[a],enumerable:!1});return c}var M=
function(c,d){return d={exports:{}},c(d,d.exports),d.exports}(function(c,d){c.exports=function(){function a(){for(var a=0,b={};a&lt;arguments.length;a++){var c=arguments[a],d;for(d in c)b[d]=c[d]}return b}function b(c){function d(){}function e(b,e,f){if("undefined"!==typeof document){f=a({path:"/"},d.defaults,f);"number"===typeof f.expires&amp;&amp;(f.expires=new Date(1*new Date+864E5*f.expires));f.expires=f.expires?f.expires.toUTCString():"";try{var g=JSON.stringify(e);/^[\{\[]/.test(g)&amp;&amp;(e=g)}catch(xg){}e=
c.write?c.write(e,b):encodeURIComponent(String(e)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent);b=encodeURIComponent(String(b)).replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent).replace(/[\(\)]/g,escape);g="";for(var h in f)f[h]&amp;&amp;(g+="; "+h,!0!==f[h]&amp;&amp;(g+="="+f[h].split(";")[0]));return document.cookie=b+"="+e+g}}function h(a,b){if("undefined"!==typeof document){for(var d={},e=document.cookie?document.cookie.split("; "):[],f=0;f&lt;e.length;f++){var g=
e[f].split("="),h=g.slice(1).join("=");b||'"'!==h.charAt(0)||(h=h.slice(1,-1));try{var l=g[0].replace(/(%[0-9A-Z]{2})+/g,decodeURIComponent);h=(c.read||c)(h,l)||h.replace(/(%[0-9A-Z]{2})+/g,decodeURIComponent);if(b)try{h=JSON.parse(h)}catch(Re){}d[l]=h;if(a===l)break}catch(Re){}}return a?d[a]:d}}d.set=e;d.get=function(a){return h(a,!1)};d.getJSON=function(a){return h(a,!0)};d.remove=function(b,c){e(b,"",a(c,{expires:-1}))};d.defaults={};d.withConverter=b;return d}return b(function(){})}()}),S=document,
Aa=window,yb=S.documentElement,ma=S.createElement.bind(S),Wc=ma("div"),Pb=ma("table"),Se=ma("tbody"),Xc=ma("tr"),Qb=Array.isArray,da=Array.prototype,tb=da.filter,yc=da.indexOf,Te=da.map,ve=da.push,Yc=da.slice,wb=da.some,Ue=da.splice,Ve=/^#[\w-]*$/,re=/^\.[\w-]*$/,We=/&lt;.+&gt;/,se=/^\w+$/,Pa=function(){function c(d){var a=1&lt;arguments.length&amp;&amp;void 0!==arguments[1]?arguments[1]:S;ha(this,c);if(d){if(d instanceof Pa)return d;var b=d;if(G(d)){if(b=a instanceof Pa?a[0]:a,b=Ve.test(d)?b.getElementById(d.slice(1)):
We.test(d)?Fc(d):pb(d,b),!b)return}else if(ka(d))return this.ready(d);if(b.nodeType||b===Aa)b=[b];this.length=b.length;a=0;for(var e=this.length;a&lt;e;a++)this[a]=b[a]}}ia(c,[{key:"init",value:function(d,a){return new c(d,a)}}]);return c}(),m=Pa.prototype,p=m.init;p.fn=p.prototype=m;m.length=0;m.splice=Ue;"function"===typeof Symbol&amp;&amp;(m[Symbol.iterator]=da[Symbol.iterator]);m.map=function(c){return p(Te.call(this,function(d,a){return c.call(d,a,d)}))};m.slice=function(c,d){return p(Yc.call(this,c,d))};
var te=/-([a-z])/g;p.camelCase=za;p.each=C;m.each=function(c){return C(this,c)};m.removeProp=function(c){return this.each(function(d,a){delete a[c]})};p.extend=function(c){for(var d=arguments.length,a=Array(1&lt;d?d-1:0),b=1;b&lt;d;b++)a[b-1]=arguments[b];d=arguments.length;for(a=2&gt;d?0:1;a&lt;d;a++)for(var e in arguments[a])c[e]=arguments[a][e];return c};m.extend=function(c){return p.extend(m,c)};p.guid=1;p.matches=qb;p.isWindow=rb;p.isFunction=ka;p.isString=G;p.isNumeric=xc;p.isArray=Qb;m.prop=function(c,
d){if(c){if(G(c))return 2&gt;arguments.length?this[0]&amp;&amp;this[0][c]:this.each(function(a,e){e[c]=d});for(var a in c)this.prop(a,c[a]);return this}};m.get=function(c){return void 0===c?Yc.call(this):this[0&gt;c?c+this.length:c]};m.eq=function(c){return p(this.get(c))};m.first=function(){return this.eq(0)};m.last=function(){return this.eq(-1)};m.filter=function(c){var d=sb(c);return p(tb.call(this,function(a,b){return d.call(a,b,a)}))};var ue=/\S+/g;m.hasClass=function(c){return!!c&amp;&amp;wb.call(this,function(d){return d.classList.contains(c)})};
m.removeAttr=function(c){var d=Qa(c);return this.each(function(a,b){C(d,function(a,c){b.removeAttribute(c)})})};m.attr=function(c,d){if(c){if(G(c)){if(2&gt;arguments.length){if(!this[0])return;var a=this[0].getAttribute(c);return null===a?void 0:a}return void 0===d?this:null===d?this.removeAttr(c):this.each(function(a,e){e.setAttribute(c,d)})}for(a in c)this.attr(a,c[a]);return this}};m.toggleClass=function(c,d){var a=Qa(c),b=void 0!==d;return this.each(function(c,f){C(a,function(a,c){b?d?f.classList.add(c):
f.classList.remove(c):f.classList.toggle(c)})})};m.addClass=function(c){return this.toggleClass(c,!0)};m.removeClass=function(c){return arguments.length?this.toggleClass(c,!1):this.attr("class","")};p.unique=T;m.add=function(c,d){return p(T(this.get().concat(p(c,d).get())))};var ub=/^--/,vb={},xe=Wc.style,we=["webkit","moz","ms"];p.prefixedProp=zc;var ye={animationIterationCount:!0,columnCount:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0};
m.css=function(c,d){if(G(c)){var a=ub.test(c);c=zc(c,a);if(2&gt;arguments.length)return this[0]&amp;&amp;la(this[0],c,a);if(!c)return this;d=Ac(c,d,a);return this.each(function(b,f){f&amp;&amp;1===f.nodeType&amp;&amp;(a?f.style.setProperty(c,d):f.style[c]=d)})}for(var b in c)this.css(b,c[b]);return this};m.data=function(c,d){if(!c){if(!this[0])return;var a={},b;for(b in this[0].dataset)a[b]=Bc(this[0],b);return a}if(G(c))return 2&gt;arguments.length?this[0]&amp;&amp;Bc(this[0],c):this.each(function(a,b){a=d;try{a=JSON.stringify(a)}catch(g){}b.dataset[za(c)]=
a});for(a in c)this.data(a,c[a]);return this};C([!0,!1],function(c,d){C(["Width","Height"],function(a,b){var c="".concat(d?"outer":"inner").concat(b);m[c]=function(e){if(this[0])return rb(this[0])?Aa[c]:this[0]["".concat(d?"offset":"client").concat(b)]+(e&amp;&amp;d?sa(this[0],"margin".concat(a?"Top":"Left"))+sa(this[0],"margin".concat(a?"Bottom":"Right")):0)}})});C(["width","height"],function(c,d){m[d]=function(a){if(!this[0])return void 0===a?void 0:this;if(!arguments.length)return rb(this[0])?this[0][za("outer-".concat(d))]:
this[0].getBoundingClientRect()[d]-Cc(this[0],!c);var b=parseInt(a,10);return this.each(function(a,f){f&amp;&amp;1===f.nodeType&amp;&amp;(a=la(f,"boxSizing"),f.style[d]=Ac(d,b+("border-box"===a?Cc(f,!c):0)))})}});var Rb={};m.toggle=function(c){return this.each(function(d,a){if(void 0===c?"none"===la(a,"display"):c){if(a.style.display=a.___cd||"","none"===la(a,"display")){d=a.style;a=a.tagName;if(Rb[a])a=Rb[a];else{var b=ma(a);S.body.insertBefore(b,null);var e=la(b,"display");S.body.removeChild(b);a=Rb[a]="none"!==
e?e:"block"}d.display=a}}else a.___cd=la(a,"display"),a.style.display="none"})};m.hide=function(){return this.toggle(!1)};m.show=function(){return this.toggle(!0)};var Sb={focus:"focusin",blur:"focusout"},Zc={mouseenter:"mouseover",mouseleave:"mouseout"},Xe=/^(mouse|pointer|contextmenu|drag|drop|click|dblclick)/i;m.off=function(c,d,a){var b=this;if(void 0===c)this.each(function(a,b){Ra(b)});else if(G(c))ka(d)&amp;&amp;(a=d,d=""),C(Qa(c),function(c,e){c=xb(Zc[e]||Sb[e]||e);c=ya(c,2);var f=c[0],g=c[1];b.each(function(b,
c){Ra(c,f,g,d,a)})});else for(var e in c)this.off(e,c[e]);return this};m.on=function(c,d,a,b){var e=this;if(!G(c)){for(var f in c)this.on(f,d,c[f]);return this}ka(d)&amp;&amp;(a=d,d="");C(Qa(c),function(c,f){c=xb(Zc[f]||Sb[f]||f);c=ya(c,2);var g=c[0],h=c[1];e.each(function(c,e){c=function He(c){if(!c.namespace||Dc(h,c.namespace.split("."))){var f=e;if(d){for(var l=c.target;!qb(l,d);){if(l===e)return;l=l.parentNode;if(!l)return}f=l;c.___cd=!0}c.___cd&amp;&amp;Object.defineProperty(c,"currentTarget",{configurable:!0,
get:function(){return f}});l=a.call(f,c,c.data);b&amp;&amp;Ra(e,g,h,d,He);!1===l&amp;&amp;(c.preventDefault(),c.stopPropagation())}};c.guid=a.guid=a.guid||p.guid++;ze(e,g,h,d,c)})});return this};m.one=function(c,d,a){return this.on(c,d,a,!0)};m.ready=function(c){"loading"!==S.readyState?c(p):S.addEventListener("DOMContentLoaded",function(){c(p)});return this};m.trigger=function(c,d){if(G(c)){var a=xb(c),b=ya(a,2);a=b[0];b=b[1];var e=Xe.test(a)?"MouseEvents":"HTMLEvents";c=S.createEvent(e);c.initEvent(a,!0,!0);c.namespace=
b.join(".")}c.data=d;var f=c.type in Sb;return this.each(function(a,b){if(f&amp;&amp;ka(b[c.type]))b[c.type]();else b.dispatchEvent(c)})};var Ye=/%20/g,Ze=/file|reset|submit|button|image/i,$e=/radio|checkbox/i;m.serialize=function(){var c="";this.each(function(d,a){C(a.elements||[a],function(a,d){d.disabled||!d.name||"FIELDSET"===d.tagName||Ze.test(d.type)||$e.test(d.type)&amp;&amp;!d.checked||(a=Ec(d),void 0!==a&amp;&amp;(a=Qb(a)?a:[a],C(a,function(a,b){a=c;b="&amp;".concat(encodeURIComponent(d.name),"=").concat(encodeURIComponent(b).replace(Ye,
"+"));c=a+b})))})});return c.slice(1)};m.val=function(c){return void 0===c?this[0]&amp;&amp;Ec(this[0]):this.each(function(d,a){if("SELECT"===a.tagName){var b=Qb(c)?c:null===c?[]:[c];C(a.options,function(a,c){c.selected=0&lt;=b.indexOf(c.value)})}else a.value=null===c?"":c})};m.clone=function(){return this.map(function(c,d){return d.cloneNode(!0)})};m.detach=function(){return this.each(function(c,d){d.parentNode&amp;&amp;d.parentNode.removeChild(d)})};var Be=/^\s*&lt;(\w+)[^&gt;]*&gt;/,Ae=/^\s*&lt;(\w+)\s*\/?&gt;(?:&lt;\/\1&gt;)?\s*$/,
Gc={"*":Wc,tr:Se,td:Xc,th:Xc,thead:Pb,tbody:Pb,tfoot:Pb};p.parseHTML=Fc;m.empty=function(){return this.each(function(c,d){for(;d.firstChild;)d.removeChild(d.firstChild)})};m.html=function(c){return void 0===c?this[0]&amp;&amp;this[0].innerHTML:this.each(function(d,a){a.innerHTML=c})};m.remove=function(){return this.detach().off()};m.text=function(c){return void 0===c?this[0]?this[0].textContent:"":this.each(function(d,a){a.textContent=c})};m.unwrap=function(){this.parent().each(function(c,d){c=p(d);c.replaceWith(c.children())});
return this};m.offset=function(){var c=this[0];if(c)return c=c.getBoundingClientRect(),{top:c.top+Aa.pageYOffset-yb.clientTop,left:c.left+Aa.pageXOffset-yb.clientLeft}};m.offsetParent=function(){return p(this[0]&amp;&amp;this[0].offsetParent)};m.position=function(){var c=this[0];if(c)return{left:c.offsetLeft,top:c.offsetTop}};m.children=function(c){return ra(p(T(V(this,function(c){return c.children}))),c)};m.contents=function(){return p(T(V(this,function(c){return"IFRAME"===c.tagName?[c.contentDocument]:
c.childNodes})))};m.find=function(c){return p(T(V(this,function(d){return pb(c,d)})))};var Ee=/^\s*&lt;!(?:\[CDATA\[|--)|(?:\]\]|--)&gt;\s*$/g,De=/^$|^module$|\/(java|ecma)script/i,Fe=["type","src","nonce","noModule"];m.after=function(){return ba(arguments,this,!1,!1,!1,!0,!0)};m.append=function(){return ba(arguments,this,!1,!1,!0)};m.appendTo=function(c){return ba(arguments,this,!0,!1,!0)};m.before=function(){return ba(arguments,this,!1,!0)};m.insertAfter=function(c){return ba(arguments,this,!0,!1,!1,
!1,!1,!0)};m.insertBefore=function(c){return ba(arguments,this,!0,!0)};m.prepend=function(){return ba(arguments,this,!1,!0,!0,!0,!0)};m.prependTo=function(c){return ba(arguments,this,!0,!0,!0,!1,!1,!0)};m.replaceWith=function(c){return this.before(c).remove()};m.replaceAll=function(c){p(c).replaceWith(this);return this};m.wrapAll=function(c){c=p(c);for(var d=c[0];d.children.length;)d=d.firstElementChild;this.first().before(c);return this.appendTo(d)};m.wrap=function(c){return this.each(function(d,
a){var b=p(c)[0];p(a).wrapAll(d?b.cloneNode(!0):b)})};m.wrapInner=function(c){return this.each(function(d,a){d=p(a);a=d.contents();a.length?a.wrapAll(c):d.append(c)})};m.has=function(c){var d=G(c)?function(a,b){return pb(c,b).length}:function(a,b){return b.contains(c)};return this.filter(d)};m.is=function(c){var d=sb(c);return wb.call(this,function(a,b){return d.call(a,b,a)})};m.next=function(c,d){return ra(p(T(V(this,"nextElementSibling",d))),c)};m.nextAll=function(c){return this.next(c,!0)};m.not=
function(c){var d=sb(c);return this.filter(function(a,b){return!d.call(b,a,b)})};m.parent=function(c){return ra(p(T(V(this,"parentNode"))),c)};m.index=function(c){var d=c?p(c)[0]:this[0];c=c?this:p(d).parent().children();return yc.call(c,d)};m.closest=function(c){var d=this.filter(c);if(d.length)return d;var a=this.parent();return a.length?a.closest(c):d};m.parents=function(c){return ra(p(T(V(this,"parentElement",!0))),c)};m.prev=function(c,d){return ra(p(T(V(this,"previousElementSibling",d))),c)};
m.prevAll=function(c){return this.prev(c,!0)};m.siblings=function(c){return ra(p(T(V(this,function(c){return p(c).parent().children().not(c)}))),c)};var Tb=["error","warn","info","debug","trace"],r=new (function(){function c(){var d=0&lt;arguments.length&amp;&amp;void 0!==arguments[0]?arguments[0]:"",a=1&lt;arguments.length&amp;&amp;void 0!==arguments[1]?arguments[1]:0;Ba(this,c);this.console=window.console;this.level=a;this.prefix=d;this.buildLogFunctions()}Ca(c,[{key:"shouldLog",value:function(c){return c&lt;=this.level}},
{key:"setLoggingLevel",value:function(c){this.level="string"===typeof c?Tb.indexOf(c.toLowerCase())+1:c||0;this.buildLogFunctions()}},{key:"getLoggingLevel",value:function(){return this.level}},{key:"setPrefix",value:function(c){this.prefix=c;this.buildLogFunctions()}},{key:"getPrefix",value:function(){return this.prefix}},{key:"buildLogFunctions",value:function(){var c=this;Tb.forEach(function(a,b){a=Tb[b];c[a]=c.shouldLog(b+1)?c.getLogFn(a):function(){}})}},{key:"getLogFn",value:function(c){return Function.prototype.bind.call(this.console.log,
this.console,"[".concat(c.toUpperCase(),"]").concat(this.prefix?"("+this.prefix+")":"",":"))}}]);return c}()),w;(function(c){c.OnEventSend="interactions:onEventSend";c.OnBeforeEventSend="interactions:onBeforeEventSend";c.OnException="interactions:onException";c.OnPageMatchStatusUpdated="interactions:onPageMatchStatusUpdated";c.OnInit="interactions:onInit";c.OnInitSitemap="interactions:onInitSitemap";c.OnShutDown="interactions:onShutDown";c.OnSetAnonymousId="interactions:onSetAnonymousId";c.OnResetAnonymousId=
"interactions:onResetAnonymousId";c.OnClearPersistedIdentities="interactions:onClearPersistedIdentities";c.OnClearCookie="interactions:onClearCookie";c.OnConsentRevoke="interactions:onConsentRevoke";c.OnBeforeInit="interactions:onBeforeInit"})(w||(w={}));var Da=Cb.default?Cb.default:Cb,$c,ea=window.location.hostname,Xa=function(c){ea=c;ad()},ad=function(){$c=Da("".concat(Da(ea+"/").slice(0,4))).slice(0,4)},Ga=function(){return"".concat("_sfid","_").concat($c)},bd;document.addEventListener(w.OnClearCookie,
function(c){var d=c.detail&amp;&amp;c.detail.options||{};d.domain&amp;&amp;Xa(c.detail.options.domain);cd(z({domain:ea},d))});var Ub=function(){return M.getJSON(Ga())},cd=function(c){M.remove(Ga(),c)},dd=function(c){ta.write(z(z({},Ub()),{},{consents:c}),730)},ta={read:Ub,write:function(c,d){bd?M.set(Ga(),c,{expires:d,domain:ea,secure:!0}):M.set(Ga(),c,{expires:d,domain:ea});M.get(Ga())||r.warn("Web SDK cookie (_sfid) could not be set. This is possibly due to a restricted top level domain. See https://publicsuffix.org/learn/ for more information.")},
remove:cd},af=[/bot/i,/spider/i,/facebookexternalhit/i,/simplepie/i,/yahooseeker/i,/embedly/i,/quora link preview/i,/outbrain/i,/vkshare/i,/monit/i,/Pingability/i,/Monitoring/i,/WinHttpRequest/i,/Apache-HttpClient/i,/getprismatic.com/i,/python-requests/i,/Twurly/i,/yandex/i,/browserproxy/i,/crawler/i,/Qwantify/i,/Yahoo! Slurp/i,/pinterest/i,/Tumblr\/14.0.835.186/i,/Tumblr Agent 14.0/i],bf=function(c){return af.some(function(d){return d.test(c)})},cf=navigator.vendor&amp;&amp;-1&lt;navigator.vendor.indexOf("Apple")&amp;&amp;
navigator.userAgent&amp;&amp;-1==navigator.userAgent.indexOf("CriOS")&amp;&amp;-1==navigator.userAgent.indexOf("FxiOS"),U="";document.addEventListener(w.OnResetAnonymousId,function(c){c=c.detail&amp;&amp;c.detail.options||{};c.domain&amp;&amp;Xa(c.domain);ta.remove(z({domain:ea},c));ed()});document.addEventListener(w.OnSetAnonymousId,function(c){c.detail&amp;&amp;c.detail.newAnonymousId&amp;&amp;(c=c.detail.newAnonymousId,ta.write(z(z({},Ub()),{},{anonymousId:c}),730))});var Ya=function(c){(U=c)?document.dispatchEvent(new CustomEvent(w.OnSetAnonymousId,
{detail:{newAnonymousId:c}})):r.warn("Attempted to setAnonymousId but not parameter is undefined")},ed=function(){fd()?(U=ta.read().anonymousId,Ya(U),r.debug("Loaded anonymous identity record from cookie: ".concat(JSON.stringify(U)))):(Ya(Oc()),r.debug("Created new anonymous identity record. anonymousId: ".concat(U)));return U},fd=function(){var c=ta.read();return!!(c&amp;&amp;"object"===J(c)&amp;&amp;0&lt;Object.keys(c).length)},Za=function(){function c(){Ba(this,c);this.listeners=[]}Ca(c,[{key:"on",value:function(c){var a=
this;(this.listeners=this.listeners||[]).push(c);return function(){a.listeners=a.listeners.filter(function(a){return a!==c})}}},{key:"once",value:function(c){var a=this;return this.on(function(){a.unbindAll();try{for(var b=arguments.length,d=Array(b),f=0;f&lt;b;f++)d[f]=arguments[f];c.apply(a,d)}catch(g){r.error("Signal listener callback error: "+g)}})}},{key:"emit",value:function(){for(var c=this,a=arguments.length,b=Array(a),e=0;e&lt;a;e++)b[e]=arguments[e];0!==this.listeners.length&amp;&amp;this.listeners.forEach(function(a){try{a.apply(c,
b)}catch(g){r.error("Signal listener callback error: "+g)}})}},{key:"unbindAll",value:function(){this.listeners=[]}}]);return c}(),df=function(c){r.debug("Unbinding all signals for type: ",c);Object.keys(c).forEach(function(d){c[d].unbindAll&amp;&amp;c[d].unbindAll()})},v=Ca(function d(){Ba(this,d)});v.onEventSend=new Za;v.onFireException=new Za;v.onPageMatchStatusUpdated=new Za;v.onInitSitemap=new Za;v.unbindAll=function(){df(v)};var u={currentPage:null,matchedConfig:null,matchStatus:null},N={pageTypes:[]},
F=null,O;(function(d){d.Pending="pending";d.Running="running";d.Selected="selected";d.Matched="matched";d.Rejected="rejected"})(O||(O={}));var $a=function(d){return new Promise(function(a,b){var e=N.pageTypeDefault;e&amp;&amp;Ha({pageName:e.name,status:O.Pending});e&amp;&amp;!d.length?(Vb(e),a(e)):(ef(d),d.map(function(f){ff(f).then(function(g){g?(e&amp;&amp;gd(e),Vb(f),a(f)):(gd(f),gf(d)||(e?(Vb(e),a(e)):b("No matching page found")))}).catch(function(a){"sitemap_reinit"!==a&amp;&amp;v.onFireException.emit(Error("isMatch failed while evaluating the ".concat(f.name,
" page config")),"Site-wide Javascript")})}))})},hd=function(){u.matchStatus&amp;&amp;(u.matchStatus.forEach(function(d){d.status===O.Running&amp;&amp;d._reject("sitemap_reinit")}),u.matchStatus=[]);v.onPageMatchStatusUpdated.emit(u.matchStatus)},ef=function(d){d.forEach(function(a){Ha({pageName:a.name,status:O.Pending})})},Vb=function(d){Ha({pageName:d.name,endTime:Date.now(),status:u.matchStatus.find(function(a){return a.status===O.Selected})?O.Matched:O.Selected})},gd=function(d){Ha({pageName:d.name,status:O.Rejected,
endTime:Date.now()})},gf=function(d){return u.matchStatus.filter(function(a){return a.status===O.Rejected},0).length&lt;d.length},ff=function(d){return new Promise(function(a,b){Ha({pageName:d.name,status:O.Running,startTime:Date.now(),_reject:b});"function"===typeof d.isMatch?(b=d.isMatch(),"object"===J(b)?b.then(function(b){a(b)}).catch(function(){}):a(b)):v.onFireException.emit(Error("isMatch failed while evaluating the ".concat(d.name," page config. isMatch must be a function.")),"Site-wide Javascript")})},
Ha=function(d){u.matchStatus=[].concat(Kc(u.matchStatus||[]),[d]);v.onPageMatchStatusUpdated.emit(u.matchStatus)},oa;(function(d){d.ViewCatalogObject="View Catalog Object";d.ViewCatalogObjectDetail="View Catalog Object Detail";d.QuickViewCatalogObject="Quick View Catalog Object";d.ShareCatalogObject="Share Catalog Object";d.ReviewCatalogObject="Review Catalog Object";d.CommentCatalogObject="Comment Catalog Object";d.FavoriteCatalogObject="Favorite Catalog Object"})(oa||(oa={}));var Wb;(function(d){d.AddToCart=
"Add To Cart";d.RemoveFromCart="Remove From Cart";d.ReplaceCart="Replace Cart"})(Wb||(Wb={}));var Xb;(function(d){d.Purchase="Purchase";d.Preorder="Preorder";d.Cancel="Cancel";d.Ship="Ship";d.Deliver="Deliver";d.Return="Return";d.Exchange="Exchange"})(Xb||(Xb={}));var ua;(ua||(ua={})).MetadataUpdate="MetadataUpdate";var id;(id||(id={})).Tracking="Tracking";(function(d){d.OptIn="Opt In";d.OptOut="Opt Out"})(n.ConsentStatus||(n.ConsentStatus={}));var x=function(d,a,b){v.onFireException.emit(d,a);r.warn("sendException",
{event,errorSection:a})},P=[],jd=function(){return P},kd=function(d){return P.find(function(a){return d.purpose==a.consent.purpose})},Yb=function(d){ld(d,!0)},ld=function(d,a){Array.isArray(d)?d.forEach(function(b){md(b,a)}):md(d,a);dd(P)},md=function(d,a){if(d&amp;&amp;"object"==J(d)&amp;&amp;d.purpose&amp;&amp;d.provider&amp;&amp;d.status)var b=!0;else x(Error("Invalid consent, check that consent is a valid object and all fields are defined: ".concat(JSON.stringify(d))),"Salesforce Web SDK"),b=!1;if(b)if(b=kd(d)){var e=b.consent.status;
if(b.consent.status!=d.status||b.consent.provider!=d.provider)b.consent=d,b.lastUpdateTime=(new Date).toISOString();a&amp;&amp;e==n.ConsentStatus.OptIn&amp;&amp;d.status==n.ConsentStatus.OptOut&amp;&amp;nd(b)}else d={consent:d,lastUpdateTime:(new Date).toISOString()},P.push(d),a&amp;&amp;d.consent.status==n.ConsentStatus.OptOut&amp;&amp;nd(d)},nd=function(d){document.dispatchEvent(new CustomEvent(w.OnConsentRevoke,{detail:{revokedConsent:d}}))},hf=function(d){var a=(new Date).toISOString();d.forEach(function(b){kd(b).lastSentTime=a});dd(P)},
kf=function(d){jf();Promise.resolve(d).then(function(a){a&amp;&amp;0&lt;a.length&amp;&amp;Yb(a)})},jf=function(){var d=ta.read();d&amp;&amp;(P=d.consents||[])},lf=function(d){return 0&lt;=d.findIndex(function(a){return a.status==n.ConsentStatus.OptIn})},mf=function(){return lf(P.map(function(d){return d.consent}))},od=function(d){d.source=d.source||{};var a=z({},d.source||{}),b;(b=d.source.pageType)||(b=u.currentPage&amp;&amp;u.currentPage.source?u.currentPage.source.pageType:void 0);d.source=z(a,{},{pageType:b,url:d.source.url||window.location.href,
urlReferrer:d.source.urlReferrer||document.referrer,channel:d.source.channel||"Web"});d.user=z(z({},d.user||{}),{},{anonymousId:U});nf(d)},nf=function(d){d.consents&amp;&amp;ld(d.consents,!1);d.consents=P.filter(function(a){return!a.lastSentTime||new Date(a.lastUpdateTime)&gt;=new Date(a.lastSentTime)}).map(function(a){return a.consent});hf(d.consents)};document.addEventListener(w.OnConsentRevoke,function(d){d.detail&amp;&amp;d.detail.revokedConsent&amp;&amp;of({interaction:{name:ua.MetadataUpdate},consents:[d.detail.revokedConsent.consent]})});
var qd=function(d){return pd(d,mf).catch(function(a){r.error(a.message);v.onFireException.emit(a,"Site-wide JavaScript");return d})},of=function(d){pd(d,function(){return!0}).then(function(){return r.debug("Consent revoked")},function(a){return v.onFireException.emit(a,"Site-wide JavaScript")})},pd=function(d,a){a:{var b=d,e=u.matchedConfig;try{b=e&amp;&amp;e.onActionEvent?e.onActionEvent(b):b;if("object"===J(b)){d=b;break a}v.onFireException.emit(Error("onActionEvent failed for the ".concat(u.matchedConfig.name,
" page config. Must return an object or null.")),"Site-wide Javascript")}catch(f){v.onFireException.emit(Error("onActionEvent failed for the ".concat(u.matchedConfig.name," page config. ").concat(f.message,".")),"Site-wide Javascript")}d=void 0}a:{b=d;try{b=N.global&amp;&amp;N.global.onActionEvent?N.global.onActionEvent(b):b;if("object"===J(b)){d=b;break a}v.onFireException.emit(Error("onActionEvent failed for the global page config. Must return an object or null."),"Site-wide Javascript")}catch(f){v.onFireException.emit(Error("onActionEvent failed for the global page config. ".concat(f.message,
".")),"Site-wide Javascript")}d=void 0}od(d);a&amp;&amp;!a()&amp;&amp;r.debug("No opt-in consents provided. Event will still be dispatched.");r.debug("Sent event: ",d);v.onEventSend.emit(d);return Promise.resolve(d)},pf=function(d){return new Promise(function(a,b){v.onInitSitemap.once(function(){return b("sitemap_reinit")});var e={name:null},f=[];Object.keys(d.interaction).forEach(function(a){var b=rd(d.interaction[a],a).then(function(b){e[a]=b});f.push(b)});Promise.all(f).then(function(){a(e)}).catch(function(a){v.onFireException.emit(Error("Catalog object interaction config was rejected"),
"Site-wide Javascript")})})},rd=function(d,a){try{return F=a,"object"===J(d)&amp;&amp;!Array.isArray(d)&amp;&amp;0&lt;Object.keys(d).length?qf(d):Promise.resolve(d).then(function(a){return"function"===typeof a?a():a})}catch(b){v.onFireException.emit(Error("getValue for ".concat(a," failed on ").concat(u.matchedConfig.name," while evaluating custom function. ").concat(b.message,".")),"Site-wide Javascript")}},qf=function(d){var a={},b=Object.keys(d),e={};b.forEach(function(b){var e=rd(d[b],b);a[b]=e});return Promise.all(Object.values(a)).then(function(a){a.forEach(function(a,
d){e[b[d]]=a});return e})},ab,rf=function(){Zb();sd()&amp;&amp;(ab=setInterval(function(){var d=!1,a=(new Date).getTime(),b=u.matchedConfig.listeners.map(function(a){if(a.selectorFound)return a;a=bb(a);d=a.selectorFound||d;return a});d&amp;&amp;Object.assign(u.matchedConfig,z(z({},u.matchedConfig),{},{listeners:b}));(50&lt;(new Date).getTime()-a||!sd())&amp;&amp;Zb()},1E3))},sd=function(){if(u.matchedConfig){var d=u.matchedConfig.listeners;return d?d.filter(function(a){return!a.selectorFound}).length:!1}return!1},Zb=function(){"number"===
typeof ab&amp;&amp;clearInterval(ab);ab=null},bb=function(d){var a=p(d.selector),b=z(z({},d),{},{selectorFound:0&lt;a.length});a.on(b.bind,function(a){try{b.callback(a)}catch(f){v.onFireException.emit(Error("Listener callback on ".concat(b.bind," bound to ").concat(b.selector," failed for the ").concat(u.matchedConfig.name," page config. ").concat(f.message,".")),"Site-wide Javascript")}});return b},sf=function(){u&amp;&amp;u.matchedConfig&amp;&amp;u.matchedConfig.listeners&amp;&amp;u.matchedConfig.listeners.forEach(function(d){p(d.selector).off(d.bind)})},
td=function(d){d.global=d.global||{};"object"!=J(d.global)&amp;&amp;v.onFireException.emit(Error("The global config has a type of ".concat(J(d.global),", but it must be an object")),"Sitewide Javascript");Object.assign(N,z({},d));v.onInitSitemap.emit(N)},ud=function(d){tf(d);return!0},vd=function(d){u.matchedConfig=z(z({},d),{},{listeners:uf(d)});u.currentPage=z(z({},u.currentPage||{}),{},{source:{pageType:d.name,locale:vf(d)},user:{anonymousId:null},interaction:null,pageView:!0});return d.interaction?pf(d).then(function(a){u.currentPage.interaction=
a}):Promise.resolve()},uf=function(d){return(d.listeners||[]).map(function(a){return bb(a)})},vf=function(d){return"function"===typeof d.locale?d.locale():d.locale},wf=function a(){for(var b=arguments.length,e=Array(b),f=0;f&lt;b;f++)e[f]=arguments[f];return e.reduce(function(b,e){Object.keys(e).forEach(function(f){var g=b[f],h=e[f];Array.isArray(g)&amp;&amp;Array.isArray(h)?Object.assign(b,Sa({},f,g.concat.apply(g,Kc(h)))):g&amp;&amp;"object"===J(g)&amp;&amp;h&amp;&amp;"object"===J(h)?Object.assign(b,Sa({},f,a(g,h))):Object.assign(b,
Sa({},f,h))});return b},{})},wd=function(a){var b=N.global||{},e=b.onActionEvent;delete b.onActionEvent;a=wf(b,a);b.onActionEvent=e;return a},xf=function(a){a.forEach(function(a){if(!a.name||!a.isMatch)throw Error("All page configs must have a name and isMatch attribute defined");})},yf=function(){var a=u;qd(u.currentPage);u=a},tf=function(a){td(a);sf();hd();Zb();u.currentPage=null;try{xf(a.pageTypes);var b=!0}catch(e){v.onFireException.emit(Error(e),"Sitemap"),b=!1}b&amp;&amp;$a(a.pageTypes).then(wd).then(vd).then(yf).then(rf).catch(function(a){"sitemap_reinit"!==
a&amp;&amp;v.onFireException.emit(Error("Unhandled exception: ".concat(a)),"Site-wide Javascript")})},I=function(a,b){if(a)try{return a(b)}catch(e){return v.onFireException.emit(Error("getValue for ".concat(F," failed on ").concat(u.matchedConfig.name," inside of the custom transform function. ").concat(e)),"Site-wide Javascript"),null}return b},$b=function(a,b){b=b||window;a=a.split(".");a=Bb(a);var e;try{for(a.s();!(e=a.n()).done;){var f=e.value;var g=/(\w+)\[([0-9]+)\]/.exec(f);if(b[f])b=b[f];else if(g){if(b[g[1]]&amp;&amp;
(b=b[g[1]][parseInt(g[2],10)],!b))return null}else return null}}catch(h){a.e(h)}finally{a.f()}return b},xd={fromSelector:function(a,b){return function(){if("string"!=typeof a)return v.onFireException.emit(Error("getValue for ".concat(F," failed on ").concat(u.matchedConfig.name,". Selector must be a string.")),"Site-wide Javascript"),null;var e=p(a).first().text();return e=I(b,e)}},fromSelectorAttribute:function(a,b,e){return function(){if("string"!=typeof a)return v.onFireException.emit(Error("getValue for ".concat(F,
" failed on ").concat(u.matchedConfig.name,". Selector must be a string.")),"Site-wide Javascript"),null;if("string"!=typeof b)return v.onFireException.emit(Error("getValue for ".concat(F," failed on ").concat(u.matchedConfig.name,". Attribute must be a string.")),"Site-wide Javascript"),null;var f=p(a).first().attr(b);return f=I(e,f)}},fromSelectorMultiple:function(a,b){return function(){if("string"!=typeof a)return v.onFireException.emit(Error("getValue for ".concat(F," failed on ").concat(u.matchedConfig.name,
". Selector must be a string.")),"Site-wide Javascript"),null;var e=p(a).get().map(function(a){return p(a).text()});return e=I(b,e)}},fromSelectorAttributeMultiple:function(a,b,e){return function(){if("string"!=typeof a)return v.onFireException.emit(Error("getValue for ".concat(F," failed on ").concat(u.matchedConfig.name,". Selector must be a string.")),"Site-wide Javascript"),null;if("string"!=typeof b)return v.onFireException.emit(Error("getValue for ".concat(F," failed on ").concat(u.matchedConfig.name,
". Attribute must be a string.")),"Site-wide Javascript"),null;var f=p(a).get().map(function(a){return p(a).attr(b)});return f=I(e,f)}},fromItemProp:function(a,b){return function(){var e=p("[itemprop='"+a+"']").first().attr("content");return e=I(b,e)}},fromMeta:function(a,b){return function(){var e=p("meta[name='"+a+"']").first().attr("content")||p("meta[property='"+a+"']").first().attr("content");return e=I(b,e)}},fromWindow:function(a,b){return function(){var e=$b(a);return e=I(b,e)}},fromJsonLd:function(a,
b){return function(){var e=p("script[type='application/ld+json']").first().text();try{var f=JSON.parse(e);if(a){var g=$b(a,f);return I(b,g)}return I(b,f)}catch(h){v.onFireException.emit(Error("Parsing JSON-LD for ".concat(F," failed on ").concat(u.matchedConfig.name,". ").concat(h)),"Site-wide Javascript")}}},fromCanonical:function(a){return function(){var b=p("link[rel=canonical]").attr("href");return b=I(a,b)}},fromHref:function(a){return function(){var b=window.location.href;return b=I(a,b)}},
buildCategoryId:function(a,b,e,f){return function(){var g=Array.from(p(a));b&amp;&amp;(g=g.slice(b));e&amp;&amp;(g=g.slice(0,-1));var h=[];g.forEach(function(a){(a=p(a).text().trim())?h.push(a):v.onFireException.emit(Error("buildCategoryId for ".concat(F," failed on ").concat(u.matchedConfig.name,". A category part is null.")),"Site-wide Javascript")});g=h.join("|");return g=I(f,g)}},buildCategoryIdAttribute:function(a,b,e,f,g){return function(){var h=Array.from(p(a));e&amp;&amp;(h=h.slice(e));f&amp;&amp;(h=h.slice(0,-1));var l=
[];h.forEach(function(a){(a=p(a).attr(b).trim())?l.push(a):v.onFireException.emit(Error("buildCategoryId for ".concat(F," failed on ").concat(u.matchedConfig.name,". A category part is null.")),"Site-wide Javascript")});h=l.join("|");return h=I(g,h)}}},B=p,fa={},Ia=function(a){if(!a||"string"!==typeof a||"function"!==typeof fa[a])return null;fa[a]();delete fa[a]},yd={resolveWhenTrue:{bind:function(a){var b=1&lt;arguments.length&amp;&amp;void 0!==arguments[1]?arguments[1]:Math.random().toString(36).slice(2),
e=2&lt;arguments.length&amp;&amp;void 0!==arguments[2]?arguments[2]:2E3,f=3&lt;arguments.length&amp;&amp;void 0!==arguments[3]?arguments[3]:100;if("function"===typeof a)return new Promise(function(g,h){var l=0,k=setInterval(function(){try{l+=f;var k=a();k?(Ia(b),g(k)):l&gt;=e&amp;&amp;(Ia(b),g(!1))}catch(qa){Ia(b),h(qa)}},f);fa[b]=function(){clearInterval(k)}})},unbind:Ia,getBindings:function(){return fa},clearBindings:function(){for(var a in fa)fa.hasOwnProperty(a)&amp;&amp;"function"===typeof fa[a]&amp;&amp;Ia(a)}}};var Hb="shutDown";var va={cookieDomain:null,
consents:null},zd=function(){function a(a,b,f){if(f)for(a=Math.random().toString(36).slice(2);e[a];)a=Math.random().toString(36).slice(2);else a=a||b;return a}function b(b,f){return{pageElementLoaded:function(h,l){if("string"!==typeof l||""===l)l=0&lt;B("body").length?"body":"html";if("string"!==typeof h||""===h)throw Error("[pageElementLoaded] Invalid arguments");return new Promise(function(k){var m=B(h);if(0&lt;m.length)k(m[0]);else{m=B(l)[0];if(!m)throw Error("pageElementLoaded cannot be bound. observerSelector ".concat(l,
" is not on the page"));var E=new MutationObserver(function(a,e){a=Bb(a);var f;try{for(a.s();!(f=a.n()).done;){var l=f.value;if(l.addedNodes&amp;&amp;0&lt;l.addedNodes.length){var m=Bb(l.addedNodes),E;try{for(m.s();!(E=m.n()).done;){var n=E.value,p=B(n).is(h)?n:B(n).find(h).get(0);if(p){b?g.unbind(b):e.disconnect();k(p);return}}}catch(ac){m.e(ac)}finally{m.f()}}}}catch(ac){a.e(ac)}finally{a.f()}});E.observe(m,{childList:!0,subtree:!0})}b=a(b,"&lt;pageElementLoaded&gt;"+h,f);e[b]=function(){E&amp;&amp;E.disconnect()}})},pageElementVisible:function(h,
l){var k=l||0;if("string"!==typeof h||""===h||"number"!==typeof k||0&gt;k||1&lt;k)throw Error("[pageElementVisible] Invalid arguments");return new Promise(function(l){var m=B(h),n=new IntersectionObserver(function(a,e){for(var f=0;f&lt;a.length;f++)if(a[f].isIntersecting){b?g.unbind(b):e.disconnect();l(a[f]);break}},{threshold:k});n.observe(m[0]);b=a(b,"&lt;pageElementVisible&gt;"+h,f);e[b]=function(){n.disconnect()}})},pageExit:function(h){h=h||0;if("number"!==typeof h||0&gt;h)throw Error("[pageExit] Invalid arguments");
return new Promise(function(l){function k(a){clearTimeout(p);10&gt;=a.pageY-window.pageYOffset&amp;&amp;(p=0&lt;h?setTimeout(m.bind(this,a),h):m.call(this,a))}function m(a){b?g.unbind(b):n.off("mousemove",k);clearTimeout(p);l(a)}var n=B(document),p;n.on("mousemove",k);b=a(b,"&lt;pageExit&gt;",f);e[b]=function(){n.off("mousemove",k)}})},pageInactive:function(h){function l(a,e){var f=new Promise(function(f){function h(a){a=a||new Event("pageInactive");b&amp;&amp;!e.isSubscribe?g.unbind(b):k.off("mousemove click scroll keyup keydown",
l);f(a)}function l(b){clearTimeout(m);m=setTimeout(h.bind(this,b),a)}var k=B(document),m;l();k.on("mousemove click scroll keyup keydown",l)});f.subscribe=function(h){delete f.subscribe;e.isSubscribe=!0;f.then(function(f){f.disconnect=function(){b?g.unbind(b):e.isDisconnected=!0};h(f);!e.isDisconnected&amp;&amp;l(a,e).subscribe(h)});return f};return f}if("number"!==typeof h||0&gt;=h)throw Error("[pageInactive] Invalid arguments");var k={isDisconnected:!1,isSubscribe:!1};b=a(b,"&lt;pageInactive&gt;",f);e[b]=function(){k.isDisconnected=
!0};return l(h,k)},pageScroll:function(h){if("number"!==typeof h||0&gt;h||1&lt;h)throw Error("[pageScroll] Invalid arguments");return new Promise(function(l){function k(a){window.scrollY/(document.documentElement.scrollHeight-window.innerHeight)&gt;=h&amp;&amp;(l(a),b?g.unbind(b):m.off("scroll",k))}var m=B(document);m.on("scroll",k);b=a(b,"&lt;pageScroll&gt;",f);e[b]=function(){m.off("scroll",k)}})}}}var e={},f=b(null,!0),g=function(){return{bind:function(a){a&amp;&amp;e[a]&amp;&amp;(e[a](),delete e[a]);return b(a)},unbind:function(a){if(!a||
"string"!==typeof a||"function"!==typeof e[a])return null;e[a]();delete e[a]},getBindings:function(){return e},clearBindings:function(){for(var a in e)e.hasOwnProperty(a)&amp;&amp;(e[a](),delete e[a])}}}();return Object.assign(f,g)}(),cb=function(){function a(b){var e=this;Ba(this,a);this.clearRateLimiter=function(){e.sentEvents=[]};this.eventWithinLimitTimeRange=function(a,b,e){return e-b.time&lt;a};this.getTimeRangeMax=function(){return e.eventRateLimiterConfig.globalTimeRange};this.removeOldEvents=function(a){for(var b=
e.getTimeRangeMax(),f=e.sentEvents.length-1;0&lt;=f;f--)if(!e.eventWithinLimitTimeRange(b,e.sentEvents[f],a)){e.sentEvents.splice(0,f+1);break}};this.checkGlobalLimits=function(a,b){var f=z({},e.eventRateLimiterConfig),g=f.globalLimit;f=f.globalTimeRange;return e.eventWithinLimitTimeRange(f,e.sentEvents[a],b)&amp;&amp;(e.globalCounter++,e.globalCounter&gt;g)?(r.info("Event rate limit exceeded. More than ".concat(g," events ")+"sent in ".concat(f,"ms.")),!0):!1};this.checkLimits=function(a,b){return e.checkGlobalLimits(a,
b.time)};this.sentEvents=[];this.eventRateLimiterConfig=b}Ca(a,[{key:"resetCounters",value:function(){this.globalCounter=0}},{key:"isTriggerLimitExceeded",value:function(a){var b=Date.now();a=z(z({},a),{},{time:b});this.sentEvents.push(a);this.removeOldEvents(b);this.resetCounters();for(b=this.sentEvents.length-1;0&lt;=b;b--)if(this.checkLimits(b,a))return!0;return!1}}]);return a}(),zf=function(a){function b(a){Ba(this,b);var f=e.call(this,a);f.getTimeRangeMax=function(){return f.eventRateLimiterConfig.perInteractionTimeRange?
Math.max(f.eventRateLimiterConfig.globalTimeRange,f.eventRateLimiterConfig.perInteractionTimeRange):f.eventRateLimiterConfig.globalTimeRange};f.checkInteractionLimits=function(a,b,e){return f.eventRateLimiterConfig.perInteractionLimit&amp;&amp;f.eventRateLimiterConfig.perInteractionTimeRange&amp;&amp;f.eventWithinLimitTimeRange(f.eventRateLimiterConfig.perInteractionTimeRange,f.sentEvents[a],b)&amp;&amp;f.sentEvents[a].name===e&amp;&amp;(f.perEventCounter++,f.perEventCounter&gt;f.eventRateLimiterConfig.perInteractionLimit)?(r.info("Event rate limit exceeded. More than ".concat(f.eventRateLimiterConfig.perInteractionLimit,
" events ")+"with interaction name of ".concat(e," sent in ").concat(f.eventRateLimiterConfig.perInteractionTimeRange,"ms.")),!0):!1};f.checkLimits=function(a,b){return f.checkGlobalLimits(a,b.time)||f.checkInteractionLimits(a,b.time,b.name)};return f}Ie(b,a);var e=Ke(b);Ca(b,[{key:"resetCounters",value:function(){Ta(na(b.prototype),"resetCounters",this).call(this);this.perEventCounter=0}},{key:"isTriggerLimitExceeded",value:function(a){return Ta(na(b.prototype),"isTriggerLimitExceeded",this).call(this,
a)}}]);return b}(cb),Db,Eb,Fb,Gb,bc=function(){var a=0&lt;arguments.length&amp;&amp;void 0!==arguments[0]?arguments[0]:{};if(!(bf(window.navigator.userAgent||"")?W("You are a robot."):"prerender"===document.visibilityState&amp;&amp;cf?W("Page is pre-rendered and loaded in Safari."):1))return Promise.reject();"initialized"==Hb&amp;&amp;W("reinitializing Web SDK");a.cookieDomain&amp;&amp;Xa(a.cookieDomain);ad();va=z(z({},va),a);document.dispatchEvent(new CustomEvent(w.OnBeforeInit,{detail:{sdkConfig:va}}));Le();ed();Hb="initialized";
document.dispatchEvent(new CustomEvent(w.OnInit,{detail:{sdkConfig:va}}));kf(va.consents);return Promise.resolve()};window.SalesforceInteractions={init:bc,reinit:function(){var a=P.map(function(a){return a.consent});bc(z(z({},va),{},{consents:a})).then(function(){ud(N)})},sendEvent:qd,sendException:x,getAnonymousId:function(){return U},setAnonymousId:Ya,getCookieDomain:function(){return ea},setCookieDomain:Xa,updateConsents:Yb,getConsents:jd,ConsentStatus:n.ConsentStatus,log:r,getLoggingLevel:Nc,
setLoggingLevel:Mc,initSitemap:ud,getSitemapConfig:function(){return N},getSitemapResult:function(){return u},CatalogObjectInteractionName:oa,CartInteractionName:Wb,OrderInteractionName:Xb,listener:Pc,build:function(a){$a(a.pageTypes).then(wd).then(vd).catch(function(a){"sitemap_reinit"!==a&amp;&amp;v.onFireException.emit(Error("Unhandled exception: ".concat(a)),"Site-wide Javascript")})},cashDom:B,resolvers:xd,util:yd,DisplayUtils:zd,CustomEvents:w};var Af="cdn.".concat("evergage.com"),cc;(function(a){a.Impression=
"i";a.Clickthrough="c";a.Dismissal="d";a.Unsubscribe="u";a.Send="s"})(cc||(cc={}));(function(a){a.Product="Product";a.Category="Category"})(n.ItemType||(n.ItemType={}));var Ea;(Ea||(Ea={})).StopQuickViewCatalogObject="Stop Quick View Catalog Object";var dc={Personalization:"Personalization"},ec;(function(a){a._id="_id";a.categories="categories";a.dimensions="dimensions";a.relatedCatalogObjects="relatedCatalogObjects"})(ec||(ec={}));(function(a){a.OnEventResponse="evergage:onEventResponse";a.OnEventSend=
"evergage:onEventSend";a.OnStatSend="evergage:onStatSend";a.OnException="evergage:onException";a.OnTemplateDisplayEnd="evergage:onTemplateDisplayEnd";a.OnPageMatchStatusUpdated="evergage:onPageMatchStatusUpdated";a.OnInit="evergage:onInit";a.OnInitSitemap="evergage:onInitSitemap";a.OnShutDown="evergage:onShutDown";a.OnConsentRevoke="evergage:onConsentRevoke"})(n.CustomEvents||(n.CustomEvents={}));var pa;(function(a){a.OnEventResponse="mcis:onEventResponse";a.OnStatSend="mcis:onStatSend";a.OnTemplateDisplayEnd=
"mcis:onTemplateDisplayEnd";a.OnBeforeEventSend="mcis:onBeforeEventSend";a.OnInit="mcis:onInit"})(pa||(pa={}));var q={endpointConfig:{},beaconConfig:{sendEvents:!0,minimumActivityTimeToRegister:300,timeOnPageTimerLengthMillis:6E4,trackAnonymousVisitors:!0,corsAllowedOrigins:["*"],identityAttributes:[],rememberMeUserIdsMillis:63072E6,actionRateLimiterConfig:{globalLimit:10,globalTimeRange:5E3,perActionLimit:5,perActionTimeRange:2E3},pingRateLimiterConfig:{globalLimit:10,globalTimeRange:5E3},campaignStatRateLimiterConfig:{globalLimit:10,
globalTimeRange:5E3,perExperienceLimit:5,perExperienceTimeRange:2E3},errorRateLimiterConfig:{globalLimit:10,globalTimeRange:5E3}},beaconState:null},fc=function(){var a=q.beaconConfig;return t(t({},q.endpointConfig),a)},Ad=function(){var a=fc();return"account dataset cookieDomain consents cdnUrl trackerUrl siteConfigVersion minimumActivityTimeToRegister timeOnPageTimerLengthMillis sendEvents trackAnonymousVisitors doNotTrackPingRequestsForActions trackContextualRelatedItems identityAttributes actionRateLimiterConfig pingRateLimiterConfig campaignStatRateLimiterConfig errorRateLimiterConfig".split(" ").reduce(function(b,
e){return b[e]=a[e],b},{})},Bd;document.addEventListener(w.OnClearCookie,function(a){a=a.detail&amp;&amp;a.detail.options||{};gc("a",t({domain:q.beaconConfig.cookieDomain},a));gc("n",t({domain:q.beaconConfig.cookieDomain},a))});var Ja=function(a){return"".concat("_evg").concat(a,"_").concat(Bd)},gc=function(a,b){M.remove(Ja(a),b)},Q={setCookieHash:function(a,b,e){Bd=Da("".concat(a,".").concat(b,".").concat(Da(e+"/").slice(0,4))).slice(0,4)},read:function(a){return M.getJSON(Ja(a))},write:function(a,b,e,f){q.beaconConfig.secureCookie?
M.set(Ja(a),b,{expires:e,domain:f,secure:!0}):M.set(Ja(a),b,{expires:e,domain:f});M.get(Ja(a))||r.warn("Web SDK cookie (_evga) for the Interaction Studio module could not be set. This is possibly due to a restricted top level domain. See https://publicsuffix.org/learn/ for more information.")},remove:gc},Cd=function(a){return{uuid:a.uuid,affinityId:a.affinityId,persistedUserId:a.puid,persistedAccountId:a.paid}},Z=function(a){a=t(t({},K()),a);Q.write("a",{uuid:a.uuid,puid:a.persistedUserId,paid:a.persistedAccountId,
affinityId:a.affinityId},730,q.beaconConfig.cookieDomain);var b=Q.read("a");b&amp;&amp;r.debug("Stored visitor cookie. ".concat(JSON.stringify(b)));return a},hc=function(a){return 0===a.indexOf("www")?a.substring(4,a.length):a},Dd=function(a){return!!(a&amp;&amp;"object"===A(a)&amp;&amp;0&lt;Object.keys(a).length)},ic=function(){var a=K().uuid;Ya(a)},K=function(){var a=Q.read("a");return Dd(a)?Cd(a):{}},Bf=function(a){if(!a)return!1;a=(a||{}).user;a=void 0===a?{}:a;var b=t(t({},a.attributes),a.identities);return Object.keys(b).some(function(a){return q.beaconConfig.identityAttributes.includes(a)})||
!!a.id||!!K().persistedUserId},k={result:t(t({},u),{},{backgroundPage:null}),config:t(t({},N),{},{settings:{canonicalizeIds:!1,runOnTranslatedPage:!1,setDefaultListPrice:!1,truncateTranslated:!0},currentKey:null}),campaignResponses:[]},Tc=function(){return k.result.currentPage||{}},db=function(){k.config.currentKey=F;return k},Ed=function(){return db().result||null},Fd=function(){return db().config||null},Gd=function(){return db().campaignResponses||[]},jc=function(a){a[".bv"]=16;a._ak=q.endpointConfig.account;
a._ds=q.endpointConfig.dataset;a[".scv"]=q.endpointConfig.siteConfigVersion;a.channel="Web";a._r=String(Math.random()).slice(2,8)},kc=function(a){var b=K();a.userId?a._reqPersistedEntityIds="":b.persistedUserId&amp;&amp;(a._persistedUserId=b.persistedUserId);k&amp;&amp;k.result&amp;&amp;k.result.currentPage&amp;&amp;k.result.currentPage.user&amp;&amp;k.result.currentPage.user.attributes&amp;&amp;k.result.currentPage.user.attributes.customer_non_consent&amp;&amp;(a.customer_non_consent=k.result.currentPage.user.attributes.customer_non_consent);q.beaconConfig.trackAnonymousVisitors&amp;&amp;
(a[".anonId"]=b.uuid,null!=b.affinityId&amp;&amp;(a[".aaId"]=b.affinityId),a.userId||a._persistedUserId||a._persistedAccountId||(a._anon="true"));return a},Ka=function(a){a="".concat(a);if(null==a||974&gt;=a.length)return a;var b=731,e=244;974!=b+e&amp;&amp;(b+=974-(b+e));10&lt;e?e-=5:10&lt;b&amp;&amp;(b-=5);return a.substring(0,b)+" ... "+a.substring(a.length-e)},Hd=function(a,b){var e=b.header,f=b.fileName,g=b.line;b=b.column;e&amp;&amp;(a[".ef"]=Ka(e));a[".eu"]=Ka(f);a[".el"]=Ka(g);a[".ec"]=Ka(b);return a},Cf=L(L(L({},".eu","sourceURL"),
".el","line"),".ec","column"),Df=L(L(L({},".eu","fileName"),".el","lineNumber"),".ec","columnNumber"),Id=function(a,b,e){return b?Hd(a,{header:!!b.stack&amp;&amp;"string"===typeof b.stack&amp;&amp;b.stack.substring(0,b.stack.indexOf("@")),fileName:b[e[".eu"]],line:b[e[".el"]],column:b[e[".ec"]]}):a},Ef=function(a){var b=Object.keys(a)[0];if(!b)return{};a=a[b];b={type:b,_id:a._id};Array.isArray(a.categories)&amp;&amp;(b.categories=a.categories.map(function(a){return"string"===typeof a?{_id:a,type:n.ItemType.Category}:a}));
if("object"===A(a.dimensions)||"object"===A(a.relatedCatalogObjects)){b.dimensions={};a=a.relatedCatalogObjects||a.dimensions;for(var e in a)if(a.hasOwnProperty(e)){var f=a[e];Array.isArray(f)?b.dimensions[e]=f:b.dimensions[e]=[f]}}return b},Gf=function(a){var b=[];Object.keys(a).forEach(function(e){b=b.concat(Ff(e,a[e]))});return b},Ff=function(a,b){return b.map(function(b){var e=Hf(a);return{_id:b,type:e,tagType:"t"===e?a:void 0}})},Hf=function(a){switch(a){case "Product":return"p";case "Article":return"a";
case "Blog":return"b";case "Category":return"c";case "Promotion":return"P";default:return"t"}},If=function(a){var b={type:"e",id:a.experienceId,stat:cc[a.stat],ug:a.control?"Control":void 0};a.catalog&amp;&amp;(b.piks=Gf(a.catalog));return b},Jf=function(a){var b={};b[".cStat"]=JSON.stringify(a.campaignStats.map(If));jc(b);kc(b);return b},Kf=function(a){var b={};b[".top"]=""+a.timeOnPageMillis;a.catalog&amp;&amp;0&lt;Object.keys(a.catalog).length&amp;&amp;(b.item=JSON.stringify(Ef(a.catalog)));a.action&amp;&amp;(b.action=a.action);
if(a.performance){var e=a.performance.networkTime;e&amp;&amp;(b[".tt"]=e);(e=a.performance.eventDnsTime)&amp;&amp;(b[".ttdns"]=e);(e=a.performance.domLoadTime)&amp;&amp;(b[".dt"]=e);(e=a.performance.pageLoadTime)&amp;&amp;(b[".lt"]=e);(e=a.performance.sdkLoadTime)&amp;&amp;(b[".bt"]=e);(e=a.performance.sdkParseTime)&amp;&amp;(b[".pt"]=e);(a=a.performance.sdkDnsTime)&amp;&amp;(b[".btdns"]=a)}jc(b);kc(b);return b},Lf=Object.prototype.hasOwnProperty,Mf=function(a){function b(a){ha(this,b);var f=e.call(this,a);f.getTimeRangeMax=function(){return f.eventRateLimiterConfig.perExperienceTimeRange?
Math.max(f.eventRateLimiterConfig.globalTimeRange,f.eventRateLimiterConfig.perExperienceTimeRange):f.eventRateLimiterConfig.globalTimeRange};f.checkExperienceLimits=function(a,b){if(f.eventRateLimiterConfig.perExperienceLimit&amp;&amp;f.eventRateLimiterConfig.perExperienceTimeRange&amp;&amp;f.eventWithinLimitTimeRange(f.eventRateLimiterConfig.perExperienceTimeRange,f.sentEvents[a],b)&amp;&amp;f.sentEvents[a].experienceIds)for(a=f.sentEvents[a].experienceIds,b=0;b&lt;a.length;b++){var e=a[b];f.experienceRates.has(e)||f.experienceRates.set(e,
0);f.experienceRates.set(e,f.experienceRates.get(e)+1);if(f.experienceRates.get(e)&gt;f.eventRateLimiterConfig.perExperienceLimit)return r.info("Event rate limit exceeded. More than ".concat(f.eventRateLimiterConfig.perExperienceLimit," events ")+"with experience id of ".concat(e," sent in ").concat(f.eventRateLimiterConfig.perExperienceTimeRange,"ms.")),!0}};f.checkLimits=function(a,b){return f.checkGlobalLimits(a,b.time)||f.checkExperienceLimits(a,b.time)};return f}Na(b,a);var e=Oa(b);ia(b,[{key:"resetCounters",
value:function(){ja(R(b.prototype),"resetCounters",this).call(this);this.experienceRates=new Map}},{key:"isTriggerLimitExceeded",value:function(a){return ja(R(b.prototype),"isTriggerLimitExceeded",this).call(this,a)}}]);return b}(cb),lc=function(){function a(b){ha(this,a);this.baseURL=b}ia(a,[{key:"send",value:function(a){Nf(a);var b=this.baseURL+"?";var f="";var g=[],h;"string"!==typeof f&amp;&amp;(f="?");for(l in a)if(Lf.call(a,l)){(h=a[l])||null!==h&amp;&amp;void 0!==h&amp;&amp;!isNaN(h)||(h="");var l=encodeURIComponent(l);
h=encodeURIComponent(h);null!==l&amp;&amp;null!==h&amp;&amp;g.push(l+"="+h)}a=g.length?f+g.join("&amp;"):"";b+=a;if(navigator&amp;&amp;navigator.sendBeacon)return a=new Blob([],{type:"application/x-www-form-urlencoded"}),navigator.sendBeacon(b,a);a=new XMLHttpRequest;a.open("GET",b,!0);a.send()}}]);return a}(),Of=function(a){function b(a,g){ha(this,b);a=e.call(this,a);a.eventRateLimiter=g||new cb({globalLimit:q.beaconConfig.errorRateLimiterConfig.globalLimit,globalTimeRange:q.beaconConfig.errorRateLimiterConfig.globalTimeRange});
return a}Na(b,a);var e=Oa(b);ia(b,[{key:"send",value:function(a){if(this.eventRateLimiter.isTriggerLimitExceeded())r.warn("Error event rate limiter triggered.");else return ja(R(b.prototype),"send",this).call(this,a)}}]);return b}(lc),Pf=function(a){function b(a,g){ha(this,b);a=e.call(this,a);a.eventRateLimiter=g||new cb({globalLimit:q.beaconConfig.pingRateLimiterConfig.globalLimit,globalTimeRange:q.beaconConfig.pingRateLimiterConfig.globalTimeRange});return a}Na(b,a);var e=Oa(b);ia(b,[{key:"send",
value:function(a){if(this.eventRateLimiter.isTriggerLimitExceeded())r.warn("Ping event rate limiter triggered.");else return ja(R(b.prototype),"send",this).call(this,a)}}]);return b}(lc),Qf=function(a){function b(a,g){ha(this,b);a=e.call(this,a);a.eventRateLimiter=g||new Mf({globalLimit:q.beaconConfig.campaignStatRateLimiterConfig.globalLimit,globalTimeRange:q.beaconConfig.campaignStatRateLimiterConfig.globalTimeRange,perExperienceLimit:q.beaconConfig.campaignStatRateLimiterConfig.perExperienceLimit,
perExperienceTimeRange:q.beaconConfig.campaignStatRateLimiterConfig.perExperienceTimeRange});return a}Na(b,a);var e=Oa(b);ia(b,[{key:"send",value:function(a,e){e=e?e:[];if(this.eventRateLimiter.isTriggerLimitExceeded({experienceIds:e}))r.warn("Campaign Stat event rate limiter triggered.");else return ja(R(b.prototype),"send",this).call(this,a)}}]);return b}(lc),Nf=function(a){Object.keys(a).forEach(function(b){var e=a[b];if("number"!=typeof e&amp;&amp;"boolean"!==typeof e&amp;&amp;null!=e)if("string"==typeof e){a:switch(b){case "url":case "urlref":e=
e.substring(0,3072);break a;case "title":e=e.substring(0,1024);break a;default:e=e.substring(0,1024)}a[b]=e}else"function"==typeof e?delete a[b]:a[b]=JSON.stringify(e)})},eb,fb,gb,Jd=!1,Kd=!1,Ld=!1,y={sdkLoadTime:null,sdkParseTime:null,sdkDnsTime:null,pageLoadTime:null,domLoadTime:null,networkTime:null,eventDnsTime:null},Md=function(){return window.performance.getEntriesByType?window.performance.getEntriesByType("resource").reverse().find(function(a){return 0&lt;=a.name.indexOf("/api2/event/")}):null},
Nd=function(){return window.performance.getEntriesByType?window.performance.getEntriesByType("resource").find(function(a){return/\/evergage(Small)?(\.min)?\.js$/.test(a.name)}):null},Od=function(){if(window.performance.getEntriesByType){var a=window.performance.getEntriesByType("navigation");if(a&amp;&amp;0&lt;a.length)return a=a[0],a||(a=window.performance.timing),a}return null},Sc=function(a){for(var b in a.performance)y[b]=null},Vc=function(){if(!Kd){var a=Od();a&amp;&amp;0&lt;a.domContentLoadedEventEnd&amp;&amp;(void 0!=a.entryType?
y.domLoadTime=Math.round(a.domContentLoadedEventEnd)||null:y.domLoadTime=Math.round(a.domContentLoadedEventEnd-window.performance.timing.navigationStart)||null);y.domLoadTime&amp;&amp;(Kd=!0)}if(!Jd){if(a=Od())void 0!=a.entryType?y.pageLoadTime=Math.round(a.loadEventEnd)||null:y.pageLoadTime=Math.round(a.loadEventEnd-window.performance.timing.navigationStart)||null;y.pageLoadTime&amp;&amp;(Jd=!0)}},Pd=function(a){a=a?(a=Ib(a))?a.pathname:"":"";return a},mc=function(a,b){b="undefined"===typeof b?location.search:b;
for(var e=/([^=?&amp;]+)=?([^&amp;]*)/g,f={},g;g=e.exec(b);){var h=Qc(g[1]);g=Qc(g[2]);null===h||null===g||h in f||(f[h]=g)}return f[a]||""},Qd=function(a,b){return(a=a.exec(b))&amp;&amp;2===a.length?a[1]:null},Rd=function(a){return Qd(/[/]?([^/]*)[/]?$/,Pd(a))},nc=function(a){return"string"!==typeof a||""===a.trim()?null:Ib(a).href},hb=function(a){return a&amp;&amp;"string"===typeof a?(a=parseFloat(a.replace(/[^0-9.]+/g,"")),isNaN(a)?null:a):null},Sd=function(a){return a&amp;&amp;"string"===typeof a?(a=parseInt(a.trim().replace(/[^0-9.]+/g,
""),10),isNaN(a)?null:a):null},Rf=function(a){var b=u;if(b.currentPage&amp;&amp;b.currentPage.interaction&amp;&amp;b.currentPage.interaction.catalogObject)return(b=b.currentPage.interaction.catalogObject)?{catalogObjectType:b.type,catalogObjectId:b.id,price:b.attributes&amp;&amp;b.attributes.price?b.attributes.price:null,quantity:hb(p(a).val())}:null},wa={extractFirstGroup:Qd,getLastPathComponent:Rd,getLastPathComponentWithoutExtension:function(a){a=Rd(nc(a));var b=a.lastIndexOf(".");return 0&lt;=b?a.substring(0,b):a},getParameterByName:mc,
getPathname:Pd,qualifyUrl:nc,removeQueryString:function(a){if(!a)return"";a=Ib(a);return[a.protocol,"//","http:"===a.protocol&amp;&amp;"80"===a.port||"https:"===a.protocol&amp;&amp;"443"===a.port?a.hostname:a.host,a?a.pathname:""].join("")},getFloatValue:hb,getIntegerValue:Sd,getUtagFirstForField:function(a){var b=window.utag_data;if(b&amp;&amp;b[a]&amp;&amp;0&lt;=b[a].length)return Array.isArray(b[a])?b[a][0]:b[a]},getValueFromNestedObject:$b,buildLineItemFromPageState:function(a){if(k.result.currentPage&amp;&amp;k.result.currentPage.catalog){var b=
k.result.currentPage.catalog[n.ItemType.Product];return b?{_id:b._id,price:b.price,quantity:hb(p(a).val())}:null}},resolveWhenTrue:yd.resolveWhenTrue,cookie:M},Sf=function(a){return new Promise(function(b,e){oc(e);aa(a,"lineItems",!1,!0).then(function(a){var e={complete:{Product:[]}};0===Object.keys(a).length&amp;&amp;b(e);a=aa(a,"lineItems",!0,!1);e.complete.Product=a;b(e)}).catch(function(){x(Error("Cart Config was rejected"),"Site-wide Javascript")})})},aa=function(a,b,e,f){try{F=b;if(a)if("dimensions"!==
b&amp;&amp;"relatedCatalogObjects"!==b&amp;&amp;"lineItems"!==b&amp;&amp;"attributes"!==b||!f){var g="function"===typeof a?a():a;"categories"===b&amp;&amp;Array.isArray(g)&amp;&amp;"object"!==A(g[0])&amp;&amp;"c"!==g[0].type&amp;&amp;"string"!==typeof g[0]._id?g=Uc(g):"lineItems"===b&amp;&amp;"object"===A(g)&amp;&amp;(g=Tf(g))}else g=Uf(a,b);return e?pc(b,g,k.config.settings.canonicalizeIds):g}catch(h){x(Error("getValue for ".concat(b," failed on ").concat(k.result.matchedConfig.name," while evaluating custom function. ").concat(h.message,".")),"Site-wide Javascript")}},
Td=function(a,b,e){if(a&amp;&amp;"object"===A(a)&amp;&amp;"function"===typeof a.then)x(Error("getValue for ".concat(b," failed on ").concat(k.result.matchedConfig.name," while evaluating custom function. ").concat(b," cannot be a Promise.")),"Site-wide Javascript");else if(a||"number"===typeof a||"boolean"===typeof a)e[b]=a},Vf=function(a,b){return new Promise(function(e,f){oc(f);var g=Object.keys(ec);f=[];for(var h=0;h&lt;g.length;h++){var l=g[h];l=aa(a[l],l,!1,!0);f.push(l)}Promise.all(f).then(function(f){var h={_id:null};
f.forEach(function(a,b){b=g[b];a=aa(a,b,!0,!1);Td(a,b,h)});Object.keys(a).forEach(function(b){if(!g.includes(b)){var e=aa(a[b],b,!0,!0);Td(e,b,h)}});f=L({},b,h);e(f)}).catch(function(){x(Error("Catalog Config was rejected"),"Site-wide Javascript")})})},Wf=function(a){return new Promise(function(b,e){oc(e);var f=[],g=Object.keys(a);g.forEach(function(b){F=b;b=aa(a[b],b,!1,!0);f.push(b)});Promise.all(f).then(function(a){var e={},f={Product:{}};a.forEach(function(a,b){b=g[b];e[b]=aa(a,b,!0,!1)});f.Product=
e;b(f)}).catch(function(){x(Error("Order Config was rejected"),"Site-wide Javascript")})})},Tf=function(a){var b;a._id?b=a._id.length:a.sku?b=a.sku.length:x(Error("Either _id or sku must be defined for lineItems"),"Sitemap");for(var e=[],f=function(){var a=ya(h[g],2),f=a[0];a=a[1];a.length!=b?x(Error("Resolving multiple values for ".concat(f," failed on ").concat(k.result.matchedConfig.name,". ").concat(f," does not have the same number of values as _id")),"Site-wide Javascript"):a.forEach(function(a,
b){e[b]||(e[b]={_id:null,quantity:null});e[b][f]=a})},g=0,h=Object.entries(a);g&lt;h.length;g++)f();return e},Uc=function(a){return a.map(function(a){return{type:"c",_id:a}})},Uf=function(a,b){var e={},f=Object.keys(a),g={};f.forEach(function(b){e[b]=aa(a[b],b,!1,!0)});return"lineItems"===b||"dimensions"===b||"relatedCatalogObjects"===b?Promise.all(Object.values(e)).then(function(a){a.forEach(function(a,b){b=f[b];(a=aa(a,b,!1,!1))&amp;&amp;(g[b]=a)});return g}):e},pc=function(a,b){var e=2&lt;arguments.length&amp;&amp;
void 0!==arguments[2]?arguments[2]:!0;return b=Array.isArray(b)?"lineItems"===a?Xf(b,e):b.map(function(b){return Ud(a,b,e)}):Ud(a,b,e)},Xf=function(a){var b=1&lt;arguments.length&amp;&amp;void 0!==arguments[1]?arguments[1]:!0;return a.map(function(a){return Yf(a,b)})},Yf=function(a){var b=1&lt;arguments.length&amp;&amp;void 0!==arguments[1]?arguments[1]:!0,e;for(e in a)if("item"===e)for(var f in a[e])a[e][f]=pc(f,a[e][f],b);else a[e]=pc(e,a[e],b);return a},Ud=function(a,b){var e=2&lt;arguments.length&amp;&amp;void 0!==arguments[2]?
arguments[2]:!0,f=b;"price"!==a&amp;&amp;"listPrice"!==a&amp;&amp;"totalValue"!==a&amp;&amp;"rating"!==a||"string"!==typeof f||(f=hb(f));if("url"===a||"imageUrl"===a)f=nc(f);"_id"!==a&amp;&amp;"sku"!==a&amp;&amp;"orderId"!==a||"number"!==typeof f||(f=f.toString());!e||"string"!==typeof f||"_id"!==a&amp;&amp;"sku"!==a&amp;&amp;"orderId"!==a&amp;&amp;"alternateId"!==a&amp;&amp;"parentId"!==a||(f=f.toUpperCase());"string"===typeof f&amp;&amp;(0&lt;=f.indexOf("&amp;")&amp;&amp;(e=document.createElement("textarea"),Object.assign(e,{innerHTML:f}),f=e.value),f=f.trim());"description"===a&amp;&amp;"string"===
typeof f&amp;&amp;200&lt;f.length&amp;&amp;(f=f.substr(0,197)+"...");"quantity"!==a&amp;&amp;"inventoryCount"!==a&amp;&amp;"numRatings"!==a||"string"!==typeof f||(f=Sd(f));return f},oc=function(a){document.addEventListener(n.CustomEvents.OnInitSitemap,function(){a("sitemap_reinit")},{once:!0})},Zf=function(a){return P.some(function(b){return b.consent.purpose===a.purpose&amp;&amp;b.consent.status===a.status})},La=function(a){return q.beaconConfig.trackAnonymousVisitors||Bf(a)?!Zf({purpose:dc.Personalization,status:n.ConsentStatus.OptOut})&amp;&amp;
q.beaconConfig.sendEvents:(r.debug("An anonymous event has been blocked. trackAnonymous has been turned off and event has no named user."),!1)},Qe=["sdkLoadTime","sdkParseTime"],Oe=["id","type"],Pe=["Category"],D=0,H=-1,X,Y,Ne=function(a){return La(a)?fb.send(Kf(a)):Promise.resolve(a)},$f={setupActivityTimers:Va,activityRegistered:Fa,setUserInactive:Wa};(function(a){a.ViewItem="View Item";a.ViewItemOutOfStock="View Item Out Of Stock";a.ViewItemDetail="View Item Detail";a.QuickViewItem="Quick View Item";
a.StopQuickViewItem="Stop Quick View Item";a.ViewCategory="View Category";a.ViewTag="View Tag";a.AddToCart="Add To Cart";a.ViewCart="View Cart";a.Purchase="Purchase";a.Share="Share";a.Review="Review";a.Comment="Comment";a.Favorite="Favorite";a.Search="Search";a.SearchViewResults="Search View Results";a.SearchClick="Search Click";a.ClickThrough="Click Through";a.UpdateLineItem="Update Line Item";a.RemoveFromCart="Remove From Cart";a.ViewBanditItems="View Bandit Items"})(n.ItemAction||(n.ItemAction=
{}));var ag=function(){function a(b,e){ha(this,a);this.baseURL=b;this.eventRateLimiter=e||new zf({globalLimit:q.beaconConfig.actionRateLimiterConfig.globalLimit,globalTimeRange:q.beaconConfig.actionRateLimiterConfig.globalTimeRange,perInteractionLimit:q.beaconConfig.actionRateLimiterConfig.perActionLimit,perInteractionTimeRange:q.beaconConfig.actionRateLimiterConfig.perActionTimeRange})}ia(a,[{key:"handleSpecialEvent",value:function(a){var b=a.interaction&amp;&amp;a.interaction.name?a.interaction.name:a.itemAction;
if(b===n.ItemAction.QuickViewItem||b===oa.QuickViewCatalogObject)k.result=t(t({},k.result),{},{backgroundPage:k.result.backgroundPage||k.result.currentPage,currentPage:t({},a)}),b===n.ItemAction.QuickViewItem&amp;&amp;(k.result.currentPage.action=a.action||n.ItemAction.QuickViewItem,k.result.currentPage.itemAction=n.ItemAction.QuickViewItem);else if(b===n.ItemAction.StopQuickViewItem||b===Ea.StopQuickViewCatalogObject)k.result=t(t({},k.result),{},{backgroundPage:null,currentPage:k.result.backgroundPage||
k.result.currentPage})}},{key:"handlePersistedIdentityInResponse",value:function(a){var b={},f=a.persistedUserId;a=a.anonAffinityId;if(f){var g=f.entityId;f=f.accountId;g&amp;&amp;(b.persistedUserId=g);f&amp;&amp;(b.persistedAccountId=f)}a&amp;&amp;a!==b.affinityId&amp;&amp;(b.affinityId=a);Z(b)}},{key:"handlePerformanceTimingBeforeEvent",value:function(){Vc();if(!Ld){y.sdkLoadTime=Math.round((Nd()||{}).duration)||null;window.evergageBeaconParseTimeStart&amp;&amp;window.window.evergageBeaconParseTimeEnd&amp;&amp;(y.sdkParseTime=window.evergageBeaconParseTimeEnd-
window.evergageBeaconParseTimeStart);var a=Nd();a&amp;&amp;void 0!=a.domainLookupEnd&amp;&amp;void 0!=a.domainLookupStart&amp;&amp;(y.sdkDnsTime=Math.round(a.domainLookupEnd-a.domainLookupStart));Ld=!0}}},{key:"handlePerformanceTimingInResponse",value:function(){y.networkTime=Math.round((Md()||{}).duration)||null;var a=Md();a&amp;&amp;(y.eventDnsTime=Math.round(a.domainLookupEnd-a.domainLookupStart)||null);Jb();Va()}},{key:"handleDebug",value:function(a){a.interaction&amp;&amp;a.interaction.name&amp;&amp;a.debug&amp;&amp;a.debug.explanations&amp;&amp;(a.explain=
a.debug.explanations,delete a.debug.explanations)}},{key:"onEventSend",value:function(a){var b=this;this.handlePerformanceTimingBeforeEvent();document.dispatchEvent(new CustomEvent(n.CustomEvents.OnEventSend,{detail:{actionEvent:a},cancelable:!0}))&amp;&amp;document.dispatchEvent(new CustomEvent(pa.OnBeforeEventSend,{detail:{actionEvent:a},cancelable:!0}))?(this.handleDebug(a),this.handleSpecialEvent(a),r.debug("Sending event: ",a),this.send(a).then(function(e){Sc(a);(a.pageView||a.flags&amp;&amp;a.flags.pageView)&amp;&amp;
b.handlePerformanceTimingInResponse();b.handlePersistedIdentityInResponse(e);r.debug("Received event response: ",e);if(e.campaignResponses){var f=e.campaignResponses.map(function(a){return a.experienceId});k.campaignResponses=[].concat(nb(e.campaignResponses),nb(k.campaignResponses.filter(function(a){return!f.includes(a.experienceId)})))}document.dispatchEvent(new CustomEvent(n.CustomEvents.OnEventResponse,{detail:{response:e,actionEvent:a}}));document.dispatchEvent(new CustomEvent(pa.OnEventResponse,
{detail:{response:e,actionEvent:a}}))}).catch(function(a){x(a,"Server Response")})):r.debug("MCIS Module onBeforeEventSend cancelled.")}},{key:"send",value:function(a){var b=this;return new Promise(function(e,g){if(b.eventRateLimiter.isTriggerLimitExceeded({name:a.action||a.interaction&amp;&amp;a.interaction.name}))g(Error("Event Rate Limiter triggered"));else{try{var f=JSON.stringify(a)}catch(qa){return g(qa)}var l=new XMLHttpRequest;l.onload=function(){if(200&lt;=this.status&amp;&amp;300&gt;this.status)try{var a=JSON.parse(l.response);
e(a)}catch(Ge){g(Ob(Ge,{status:this.status,statusText:l.statusText}))}else g(Ob("Response was not OK: ".concat(l.responseText),{status:this.status,statusText:l.statusText}))};l.onerror=function(){if(""===l.responseType||"text"===l.responseType){var a=l.responseText||l.statusText;if(a){g(Ob("Response error: ".concat(a),{status:this.status,statusText:l.statusText}));return}}r.debug("An error was sent with no text.                                      This is un-actionable so it is being logged instead of written.")};
if(a.debug&amp;&amp;a.debug.explanations||a.explain)l.withCredentials=!0;if("true"==mc("isReadableEvent"))b.sendPost(l,b.baseURL,f);else try{if(!/^[\x20-\x7E]+$/.test(f))throw Error("GET request payload contains non-ASCII characters, try sending POST request");var k=encodeURIComponent(window.btoa(f)),m=b.baseURL+"?event="+k;if(8192&lt;m.length)throw Error("GET request URL exceeds 8192 characters, try sending POST request");b.sendGet(l,m)}catch(qa){b.sendPost(l,b.baseURL,f)}}})}},{key:"sendGet",value:function(a,
e){a.open("GET",e,!0);a.setRequestHeader("Accept","application/json, text/javascript, */*; q=0.01");a.send()}},{key:"sendPost",value:function(a,e,f){a.open("POST",e,!0);a.setRequestHeader("Accept","application/json, text/javascript, */*; q=0.01");a.setRequestHeader("Content-Type","application/x-www-form-urlencoded");a.send("event="+encodeURIComponent(f))}}]);return a}(),Ma,Vd=function(a){return(a.contentZones||[]).reduce(function(a,e){e=qc(e);"string"===typeof(e||{}).name&amp;&amp;""!==(e||{}).name&amp;&amp;a.push(e);
return a},[])},Wd=function(a){return(a.contentZones||[]).reduce(function(a,e){e=qc(e);"string"===typeof(e||{}).name&amp;&amp;""!==(e||{}).name&amp;&amp;a.push((e||{}).name);return a},[])},qc=function(a){var b=!(a||{}).selector||0&lt;B((a||{}).selector).length;return t(t({},a),{},{selectorFound:b})},Xd=function(a){var b=(k.result.matchedConfig||{}).contentZones;return b?(b=b.find(function(b){return b.name===a}))&amp;&amp;b.selector?b.selector:null:null},ib,Zd=function(){var a=0&lt;arguments.length&amp;&amp;void 0!==arguments[0]?arguments[0]:
!0;jb();Yd(a)&amp;&amp;(ib=setInterval(function(){var b=!1,e=(new Date).getTime(),f=k.result.matchedConfig||{},g=f.listeners||[];f=f.contentZones||[];a&amp;&amp;(g=g.map(function(a){if(a.selectorFound)return a;a=bb(a);b=a.selectorFound||b;return a}));f=f.map(function(a){if(a.selectorFound)return a;a=qc(a);b=a.selectorFound||b;return a});b&amp;&amp;Object.assign(k.result.matchedConfig,t(t({},k.result.matchedConfig),{},{contentZones:f,listeners:g}));(50&lt;(new Date).getTime()-e||!Yd(a))&amp;&amp;jb()},1E3))},Yd=function(a){if(k.result.matchedConfig){var b=
k.result.matchedConfig,e=b.listeners;b=b.contentZones;var f,g=!1;e&amp;&amp;a&amp;&amp;(f=!!e.filter(function(a){return!a.selectorFound}).length);b&amp;&amp;(g=!!b.filter(function(a){return!a.selectorFound}).length);return f||g}return!1},jb=function(){"number"===typeof ib&amp;&amp;clearInterval(ib);ib=null},bg=function(){k.result&amp;&amp;k.result.matchedConfig&amp;&amp;k.result.matchedConfig.listeners&amp;&amp;k.result.matchedConfig.listeners.forEach(function(a){B(a.selector).off(a.bind)})},$d={_id:!0,id:!0,currency:!0,inventoryCount:!0,price:!0,tagType:!0,
type:!0},rc=function(){var a=0&lt;B('script[src*="//translate.googleusercontent.com"]').length,b=0&lt;B("html.translated-ltr").length||0&lt;B("html.translated-rtl").length;if(a||b)return r.debug("page is translated"),!0;try{var e=0&lt;B(window.parent.document).find('script[src*="//www.microsofttranslator.com"]').length,f=0&lt;B(window.parent.document).find('frame[src*="//www.worldlingo.com"]').length;if(e||f)return r.debug("page is translated"),!0;r.debug("page is not translated");return!1}catch(g){return r.debug("exception caught, assuming page is untranslated "+
g),!1}},cg=function(a){Object.keys(a).forEach(function(b){var e=a[b];Object.keys(e).forEach(function(a){$d[a]||delete e[a]})});return a},dg=function(a){Object.keys(a).forEach(function(b){$d[b]||delete a[b]});return a},ae=function(){return k.config&amp;&amp;k.config.settings&amp;&amp;k.config.settings.truncateTranslated&amp;&amp;rc()},eg=["anonymousId"],be=function(a){(1&lt;arguments.length&amp;&amp;void 0!==arguments[1]?arguments[1]:1)&amp;&amp;od(a);if(!La(a))return Promise.resolve(a);fg(a);gg(a);Ma.onEventSend(a);return new Promise(function(a){document.addEventListener(n.CustomEvents.OnEventResponse,
function(b){b&amp;&amp;b.detail&amp;&amp;b.detail.response&amp;&amp;a(b.detail.response)})})},fg=function(a){var b=K(),e=xa(a.user||{},eg);a.user=t(t({},e||{}),{},{anonId:b.uuid});ce(a)},ce=function(a){var b=K();b.persistedUserId&amp;&amp;(a.user.encryptedId=b.persistedUserId);b=K();a.account=a.account||{};b.persistedAccountId&amp;&amp;(a.account.encryptedId=b.persistedAccountId);if(b=mc("evergageTestMessages"))a.debug?a.debug.testMessages=b:a.debug={testMessages:b};b=a.pageView||(a.flags||{}).pageView;a.source=t(t({},a.source||{}),{},
{beaconVersion:16,configVersion:q.endpointConfig.siteConfigVersion,contentZones:hg(a.source,b)});if(y.domLoadTime||y.pageLoadTime||y.sdkParseTime||y.sdkLoadTime||y.sdkDnsTime)a.performance=t(t(t(t(t({},y.domLoadTime&amp;&amp;{domLoadTime:y.domLoadTime}),y.pageLoadTime&amp;&amp;{pageLoadTime:y.pageLoadTime}),y.sdkParseTime&amp;&amp;{sdkParseTime:y.sdkParseTime}),y.sdkLoadTime&amp;&amp;{sdkLoadTime:y.sdkLoadTime}),y.sdkDnsTime&amp;&amp;{sdkDnsTime:y.sdkDnsTime})},hg=function(a,b){return(a.contentZones||[]).reduce(function(a,f){!b&amp;&amp;"object"===
A(f)&amp;&amp;(f||{}).name&amp;&amp;r.warn("Using content zone objects in 'sendEvent' will soon be deprecated in favor of zone names as strings");f="string"===typeof f&amp;&amp;""!==f?f:(f||{}).name;"string"===typeof f&amp;&amp;""!==f&amp;&amp;a.push(f);return a},[])},gg=function(a){a.catalog&amp;&amp;0&lt;Object.keys(a.catalog).length&amp;&amp;Object.keys(a.catalog).forEach(function(b){if(a.catalog[b]){if(a.catalog[b].dimensions&amp;&amp;a.catalog[b].relatedCatalogObjects)return x(Error("Catalog cannot include both dimensions and relatedCatalogObjects"),"Sitemap"),
!1;var e=a.catalog[b].relatedCatalogObjects||a.catalog[b].dimensions;e&amp;&amp;"object"===A(e)&amp;&amp;Object.keys(e).forEach(function(a){if(!Array.isArray(e[a]))return x(Error("".concat(a," is not an array. Related Catalog Objects must have type of string[]")),"Sitemap"),!1})}});return!0},ig=function(a){a&amp;&amp;("catalogObject"in a?kb(a.catalogObject):"lineItem"in a?kb(a.lineItem):"lineItems"in a?a.lineItems.map(function(a){return kb(a)}):"order"in a&amp;&amp;kb(a.order))},kb=function(a){if("object"===A(a))for(var b=0,e=Object.keys(a);b&lt;
e.length;b++){var f=e[b],g=a[f];if("lineItems"===f&amp;&amp;Array.isArray(g))g.map(function(a){a.catalogObjectId&amp;&amp;"string"===typeof a.catalogObjectId&amp;&amp;(a.catalogObjectId=a.catalogObjectId.trim())});else if("relatedCatalogObjects"===f){f=0;for(var h=Object.keys(g);f&lt;h.length;f++){var l=h[f];Array.isArray(g[l])&amp;&amp;(g[l]=g[l].map(function(a){if("string"===typeof a)return a.trim()}))}}else"catalogObjectId"!==f&amp;&amp;"id"!==f||"string"!==typeof g||(a[f]=g.trim())}},lb=function(a){a:{var b=a,e=k.result.matchedConfig;
try{b=e&amp;&amp;e.onActionEvent?e.onActionEvent(b):b;if("object"===A(b)){a=b;break a}x(Error("onActionEvent failed for the ".concat(k.result.matchedConfig.name," page config. Must return an object or null.")),"Site-wide Javascript")}catch(f){x(Error("onActionEvent failed for the ".concat(k.result.matchedConfig.name," page config. ").concat(f.message,".")),"Site-wide Javascript")}a=void 0}a:{b=a;e=k.config;try{b=e.global&amp;&amp;e.global.onActionEvent?e.global.onActionEvent(b):b;if("object"===A(b)){a=b;break a}x(Error("onActionEvent failed for the global page config. Must return an object or null."),
"Site-wide Javascript")}catch(f){x(Error("onActionEvent failed for the global page config. ".concat(f.message,".")),"Site-wide Javascript")}a=void 0}return a.action===ua.MetadataUpdate?be(a,!1):be(a)},de=function(){k.config=t(t({},k.config),N);jb()},ee=function(a){a=a.detail.actionEvent;try{var b=JSON.parse(JSON.stringify(a))}catch(f){x(f,"Copy ActionEvent")}if(b){var e=u;k.result=t(t(t({},k.result),e),{currentPage:k.result.currentPage});a===e.currentPage&amp;&amp;(k.result.currentPage=b);!La(a)||!k.config.settings.runOnTranslatedPage&amp;&amp;
rc()||(b.interaction&amp;&amp;b.interaction.catalogObject&amp;&amp;ae()&amp;&amp;dg(b.interaction.catalogObject),ig(b.interaction),ce(b),b&amp;&amp;b.source&amp;&amp;Array.isArray(b.source.contentZones)&amp;&amp;0&lt;b.source.contentZones.length||(a=u.matchedConfig)&amp;&amp;b.pageView&amp;&amp;(k.result.matchedConfig=t(t({},a),{},{contentZones:Vd(a)}),k.result.currentPage=t(t({},k.result.currentPage||{}),{},{source:t(t({},k.result.currentPage.source||{}),{},{contentZones:Wd(a)})}),b.source.contentZones=k.result.currentPage.source.contentZones,Zd(!1)),Ma.onEventSend(b))}else r.warn("MCIS Module cannot parse event")},
fe=function(a){k.result.matchStatus=u.matchStatus;document.dispatchEvent(new CustomEvent(n.CustomEvents.OnPageMatchStatusUpdated,{detail:{matchStatus:a.detail.matchStatus}}))},ge=function(a){if(a&amp;&amp;a.detail){var b=a.detail.error;var e=a.detail.context;document.dispatchEvent(new CustomEvent(n.CustomEvents.OnException,{detail:{error:b,context:e}}));a={};jc(a);kc(a);a[".em"]=Ka(b.message||b);a[".es"]=e;var f=window.navigator.userAgent.toLowerCase();e="unknown";var g="";switch(!0){case -1&lt;f.indexOf("edge"):e=
"ie";g="edge";break;case -1&lt;f.indexOf("trident"):e="ie";g="trident";break;case -1&lt;f.indexOf("chrome")&amp;&amp;!!window.chrome:g=e="chrome";break;case -1&lt;f.indexOf("firefox"):g=e="mozilla";break;case -1&lt;f.indexOf("safari"):g=e="safari"}"unknown"!==e?(f=(new RegExp("".concat(g,"/(.*?)s"),"gm")).exec(f),f=parseInt(!!f&amp;&amp;f[1]),f=isNaN(f)?null:f):f=null;a[".vt"]=e;f&amp;&amp;(a[".vn"]=f);switch(e){case "safari":Id(a,b,Cf);break;case "mozilla":Id(a,b,Df);break;default:b&amp;&amp;b.stack&amp;&amp;"string"===typeof b.stack&amp;&amp;(b=b.stack.split("\n")[1],
b=b.substring(b.indexOf("at ")+3).match(/(.*) \((.*):(\d+):(\d+)\)/),Array.isArray(b)&amp;&amp;Hd(a,{header:b[1],fileName:b[2],line:b[3],column:b[4]}))}La(a)&amp;&amp;gb.send(a)}},he=function(a){document.dispatchEvent(new CustomEvent(n.CustomEvents.OnConsentRevoke,{detail:{revokedConsent:a.detail.revokedConsent}}))},ie=function(a){if(a.detail&amp;&amp;a.detail.newAnonymousId){var b=K();a=a.detail.newAnonymousId;b.uuid!==a&amp;&amp;Z({uuid:a})}},jg=function(a){var b=a.detail.actionEvent;b.interaction&amp;&amp;b.interaction.name===ua.MetadataUpdate&amp;&amp;
(a.preventDefault(),lb({action:ua.MetadataUpdate,consents:b.consents,source:b.source,user:b.user}))},sc=function(){document.removeEventListener(w.OnInitSitemap,de);document.removeEventListener(w.OnEventSend,ee);document.removeEventListener(w.OnPageMatchStatusUpdated,fe);document.removeEventListener(w.OnException,ge);document.removeEventListener(w.OnConsentRevoke,he);document.removeEventListener(w.OnSetAnonymousId,ie)},kg=["cookieDomain","consents"],lg=function(a){return(a.listeners||[]).map(function(a){return bb(a)})},
je=function(a){td(a);document.dispatchEvent(new CustomEvent(n.CustomEvents.OnInitSitemap,{detail:{sitemapConfig:k.config}}))},le=function(a){ke(a);return!0},me=function(a){k.result.matchedConfig=t(t({},a),{},{contentZones:Vd(a),listeners:lg(a)});var b=k.result,e=t({},k.result.currentPage||{});var f="function"===typeof a.action?a.action():a.action;var g=a.catalog?a.itemAction||n.ItemAction.ViewItem:null,h=a.name;var l="function"===typeof a.locale?a.locale():a.locale;b.currentPage=t(e,{},{action:f,
itemAction:g,source:{pageType:h,locale:l,contentZones:Wd(a)},flags:{pageView:!0},user:{},performance:{},debug:{}});return mg(a)},mg=function(a){return a.itemAction===n.ItemAction.ViewCart||a&amp;&amp;a.cart&amp;&amp;a.cart.complete?ng(a).then(function(a){k.result.currentPage.itemAction=n.ItemAction.ViewCart;k.result.currentPage.cart=a}):a.itemAction===n.ItemAction.Purchase||a&amp;&amp;a.order?og(a).then(function(a){k.result.currentPage.itemAction=n.ItemAction.Purchase;k.result.currentPage.order=a}):pg(a).then(function(a){k.result.currentPage.catalog=
a})},ng=function(a){var b={};if(!a.catalog&amp;&amp;!a.cart&amp;&amp;!a.order)return Promise.resolve(b);if(a.cart)var e=a.cart;else if(a.order||a.catalog){var f={},g=a.order||a.catalog;Object.keys(g).forEach(function(a){var b=g[a];b&amp;&amp;b.lineItems&amp;&amp;(f[a]=b.lineItems)});e={complete:f}}if(e.complete){a=e.complete;for(var h in a)return Array.isArray(h.match(/[A-Z]/))?"Product"!==h?(x(Error("Item type must be Product"),"Sitewide Javascript"),Promise.resolve(b)):Sf(a[h]):(x(Error("Item types must be capitalized. Did you mean ".concat(h.replace(/^\w/,
function(a){return a.toUpperCase()}),"?")),"Sitewide Javascript"),Promise.resolve(b))}},og=function(a){var b={};if(!a.catalog&amp;&amp;!a.order)return Promise.resolve(b);a=a.order||a.catalog;for(var e in a)return Array.isArray(e.match(/[A-Z]/))?"Product"!==e?(x(Error("Item type must be Product"),"Sitewide Javascript"),Promise.resolve(b)):Wf(a[e]):(x(Error("Item types must be capitalized. Did you mean ".concat(e.replace(/^\w/,function(a){return a.toUpperCase()}),"?")),"Sitewide Javascript"),Promise.resolve(b))},
pg=function(a){var b={};if(!a.catalog)return Promise.resolve(b);for(var e in a.catalog)return Array.isArray(e.match(/[A-Z]/))?qg(a.catalog[e],e):(x(Error("Item types must be capitalized. Did you mean ".concat(e.replace(/^\w/,function(a){return a.toUpperCase()}),"?")),"Sitewide Javascript"),Promise.resolve(b))},qg=function(a,b){return Vf(a,b).then(function(a){Object.keys(a).forEach(function(e){a[e]._id||x(Error("Invalid ".concat(b,", missing _id for the ").concat(k.result.matchedConfig.name," page config.")),
"Site-wide Javascript")});return ae()?cg(a):a})},rg=function b(){for(var e=arguments.length,f=Array(e),g=0;g&lt;e;g++)f[g]=arguments[g];return f.reduce(function(e,f){Object.keys(f).forEach(function(g){var h=e[g],k=f[g];Array.isArray(h)&amp;&amp;Array.isArray(k)?Object.assign(e,L({},g,h.concat.apply(h,nb(k)))):h&amp;&amp;"object"===A(h)&amp;&amp;k&amp;&amp;"object"===A(k)?Object.assign(e,L({},g,b(h,k))):Object.assign(e,L({},g,k))});return e},{})},ne=function(b){var e=k.config.global||{},f=e.onActionEvent;delete e.onActionEvent;b=rg(e,
b);e.onActionEvent=f;return b},vg=function(b){try{return sg(b.global),tg(b.pageTypeDefault),ug(b.pageTypes),!0}catch(e){return x(Error(e),"Sitemap"),!1}},tg=function(b){b&amp;&amp;Object.keys(b).forEach(function(b){if("contentZones"!==b&amp;&amp;"listeners"!==b&amp;&amp;"locale"!==b&amp;&amp;"name"!==b&amp;&amp;"onActionEvent"!=b)throw Error("".concat(b," is not a valid default config attribute."));})},sg=function(b){b&amp;&amp;Object.keys(b).forEach(function(e){if("contentZones"!==e&amp;&amp;"listeners"!==e&amp;&amp;"locale"!==e&amp;&amp;"onActionEvent"!=e)throw Error("".concat(e,
" is not a valid global config attribute."));if("contentZones"===e&amp;&amp;b[e]&amp;&amp;!Array.isArray(b[e]))throw Error("global config: contentZones must be provided as an array of objects");})},ug=function(b){b.forEach(function(b){if(!b.name||!b.isMatch)throw Error("All page configs must have a name and isMatch attribute defined");if(b&amp;&amp;b.contentZones&amp;&amp;!Array.isArray(b.contentZones))throw Error("".concat(b.name," pageType config: contentZones must be provided as an array of objects"));})},wg=function(){var b=
k.result;lb(k.result.currentPage);k.result=b},ke=function(b){je(b);hd();bg();jb();if(k.config.settings.runOnTranslatedPage||!rc())k.result.currentPage=null,vg(b)&amp;&amp;$a(b.pageTypes).then(ne).then(me).then(wg).then(function(){return Zd()}).catch(function(b){"sitemap_reinit"!==b&amp;&amp;x(Error("Unhandled exception: ".concat(b)),"Site-wide Javascript")})};document.addEventListener(w.OnInit,function(b){var e=b.detail.sdkConfig;if("running"==q.beaconState)W("reinitializing MCIS Module");else{b=e.cookieDomain;var f=
e.consents;e=xa(e,kg);b&amp;&amp;(q.beaconConfig.cookieDomain=b);f&amp;&amp;(q.beaconConfig.consents=f);var g=q.endpointConfig;b=g.account;f=g.dataset;g=g.trackerUrl;q.beaconConfig=t(t({},q.beaconConfig),{},{trackerUrl:g},e);e=Ad();g=document.dispatchEvent(new CustomEvent(n.CustomEvents.OnInit,{detail:{beaconConfig:e},cancelable:!0}));document.dispatchEvent(new CustomEvent(pa.OnInit,{detail:{sdkConfig:e}}));g?(Q.setCookieHash(b,f,ea),g=Q.read("a"),e=Q.read("n"),Dd(g)?(Z(Cd(g)).uuid!==U&amp;&amp;ic(),r.debug("Loaded visitor record from cookie: ".concat(JSON.stringify(K())))):
"string"===typeof g&amp;&amp;0&lt;g.length||null!=e&amp;&amp;"object"===A(e)?(g&amp;&amp;"object"!==A(g)&amp;&amp;(Q.remove("a",{domain:q.beaconConfig.cookieDomain}),Q.remove("a",{domain:hc(location.hostname)}),g=g.split("."),0&lt;g.length&amp;&amp;(Z({uuid:g[0]}),1&lt;g.length&amp;&amp;g[1]&amp;&amp;Z({affinityId:g[1]}))),e&amp;&amp;"object"===A(e)&amp;&amp;(Q.remove("n",{domain:q.beaconConfig.cookieDomain}),Q.remove("n",{domain:hc(location.hostname)}),e.puid&amp;&amp;"string"===typeof e.puid&amp;&amp;Z({persistedUserId:e.puid}),e.paid&amp;&amp;"string"===typeof e.paid&amp;&amp;Z({persistedAccountId:e.paid})),
ic(),r.debug("Classic cookie detected with anonymousId: ".concat(K().uuid))):(fd()?Z({uuid:U}):(Z({uuid:Oc()}),ic()),r.debug("Created new visitor record. anonymousId: ".concat(K().uuid))),K(),e=q.beaconConfig.trackerUrl,Ma=new ag(e+"/api2/event/"+q.endpointConfig.dataset,Ma?Ma.eventRateLimiter:null),eb=new Qf(e+"/msreceiver",eb?eb.eventRateLimiter:null),fb=new Pf(e+"/pr",fb?fb.eventRateLimiter:null),gb=new Of(e+"/er",gb?gb.eventRateLimiter:null),sc(),document.addEventListener(w.OnInitSitemap,de),
document.addEventListener(w.OnEventSend,ee),document.addEventListener(w.OnPageMatchStatusUpdated,fe),document.addEventListener(w.OnException,ge),document.addEventListener(w.OnConsentRevoke,he),document.addEventListener(w.OnSetAnonymousId,ie),$f.setupActivityTimers(),r.debug("Initialized Tracking Beacon v".concat(16," for account[").concat(b,"] dataset[").concat(f,"]")),q.beaconState="running"):(sc(),r.debug("Cancelling activity tracking."),clearTimeout(X),X=-1,ca(window,"unload",Lb),ca(window,"blur",
Mb),ca(window,"focus",Nb),ca(document,"mousemove keydown scroll click",Fa),r.debug("IS Module initialization canceled due to a preventDefault call in a listener for the OnInit event."))}});document.addEventListener(w.OnShutDown,function(b){b=b.detail.message;r.info("Shutting down MCIS Module: ".concat(b));document.dispatchEvent(new CustomEvent(n.CustomEvents.OnShutDown,{detail:{message:b}}));q.beaconState="shutDown";sc()});document.addEventListener(w.OnBeforeInit,function(b){bd=q.beaconConfig.secureCookie?
!0:!1});var oe=function(){var b=0&lt;arguments.length&amp;&amp;void 0!==arguments[0]?arguments[0]:{};return new Promise(function(e){document.addEventListener(w.OnBeforeEventSend,jg);bc(b).catch(function(b){});"running"===q.beaconState&amp;&amp;e(q)})},pe=function(b){var e=[];b.campaignStats.forEach(function(b){var f=k.campaignResponses.find(function(e){return e.experienceId===b.experienceId});document.dispatchEvent(new CustomEvent(n.CustomEvents.OnStatSend,{detail:{campaignStat:b,campaignResponse:f}}));document.dispatchEvent(new CustomEvent(pa.OnStatSend,
{detail:{campaignStat:b,campaignResponse:f}}));e.push(b.experienceId)});e=Array.from(new Set(e));return La(b)?eb.send(Jf(b),e):Promise.resolve(b)};window.SalesforceInteractions&amp;&amp;(window.SalesforceInteractions.mcis={extractFirstGroup:wa.extractFirstGroup,getLastPathComponentWithoutExtension:wa.getLastPathComponentWithoutExtension,getParameterByName:wa.getParameterByName,getValueFromNestedObject:wa.getValueFromNestedObject,buildLineItemFromPageState:Rf,cookie:wa.cookie,sendStat:pe,getContentZoneSelector:Xd,
getSdkConfig:Ad,getSitemapConfig:Fd,getSitemapResult:Ed,getCampaignResponses:Gd,CustomEvents:pa,ConsentPurpose:dc,CatalogObjectInteractionName:Ea});n.ConsentPurpose=dc;n.DisplayUtils=zd;n.addEventListener=function(b){r.warn("Evergage.addEventListener is deprecated. Use the Evergage.CustomEvents.OnEventSend event instead.");return null};n.addResponseListener=function(b){r.warn("Evergage.addResponseListener is deprecated. Use the Evergage.CustomEvents.OnEventResponse event instead.");return null};n.build=
function(b){$a(b.pageTypes).then(ne).then(me).catch(function(b){"sitemap_reinit"!==b&amp;&amp;x(Error("Unhandled exception: ".concat(b)),"Site-wide Javascript")})};n.cashDom=B;n.configure=function(b,e){"running"==q.beaconState&amp;&amp;r.debug("Unbinding signal subscriptions.");q.beaconState="initializing";q.endpointConfig=t(t({},q.endpointConfig),b);var f=q.endpointConfig;b=f.account;var g=f.dataset;f=f.siteConfigVersion;if(!b||!g)return W("account/dataset undefined. Check your beacon configuration.");if(!f)return W("beacon config version undefined");
q.endpointConfig.cdnUrl||(q.endpointConfig.cdnUrl="https://".concat(Af));if(!q.endpointConfig.cdnUrl)return W("cdnUrl undefined. Check your beacon configuration.");q.endpointConfig.trackerUrl||(f=q.endpointConfig,b="https://".concat({account:b,dataset:g}.account,".").concat("evergage.com"),f.trackerUrl=b);if(!q.endpointConfig.trackerUrl)return W("trackerUrl undefined. Check your beacon configuration.");q.beaconConfig.trackerUrl=q.endpointConfig.trackerUrl;q.beaconConfig=t(t({},q.beaconConfig),e);
q.beaconState="configured"};n.getCampaignResponses=Gd;n.getConfig=fc;n.getConsents=jd;n.getContentZoneSelector=Xd;n.getCurrentPage=Tc;n.getLoggingLevel=Nc;n.getSitemapConfig=Fd;n.getSitemapResult=Ed;n.getState=db;n.getVersion=function(){return 16};n.init=oe;n.initSitemap=le;n.listener=function(b,e,f){var g="object"===A(f)?function(){r.warn("ListenerOptions are deprecated. Please use a callback in the Listener instead.");var b=t(t({},f),{},{user:{}});lb(b)}:f;return Pc(b,e,g)};n.log=r;n.reinit=function(){var b=
P.map(function(b){return b.consent});oe(t(t({},fc()),{},{consents:b})).then(function(){le(k.config)})};n.removeCookies=function(b){b&amp;&amp;Q.setCookieHash(q.endpointConfig.account,q.endpointConfig.dataset,b);document.dispatchEvent(new CustomEvent(w.OnClearCookie,{detail:{options:{domain:b||q.beaconConfig.cookieDomain||hc(location.hostname)}}}))};n.resolvers=xd;n.runSpecificConfig=function(b){Object.assign(k.config,{pageTypes:[b]});ke(k.config)};n.sendEvent=lb;n.sendException=x;n.sendStat=pe;n.setConfig=
je;n.setLoggingLevel=Mc;n.shutDown=W;n.updateConsents=Yb;n.util=wa;return n}({});
window.evergageBeaconParseTimeEnd = (new Date().getTime());

(function configureEvergage() {
    try {
       Evergage.configure({
           account: "keleinc",
           dataset: "kele_prod",
           cdnUrl: "https://cdn.evergage.com",
           trackerUrl: "https://keleinc.us-7.evergage.com",
           siteConfigVersion: "302"
       },{"allowBotTraffic":false,"corsAllowedOrigins":["*"],"defaultCurrency":"USD","defaultLocale":null,"disableQtipWindowScroll":false,"doNotStoreCookiesRequireProvidedAnonId":false,"doNotTrackPingRequestsForActions":false,"enableCorsRestrictedOrigins":false,"enableMessageRotation":false,"enableRememberMeUserIds":false,"enableTemplateEsc":false,"hideContentSections":false,"hideContentSectionsMillis":2500,"hidePagesForRedirect":false,"hidePagesForRedirectMillis":1000,"identityAttributes":["customerId","emailAddress","profileId","sfmcContactKey","webUserName"],"lastModified":1658329983708,"preventSensitiveDataCapture":false,"rememberMeUserIdsMillis":63072000000,"secureCookie":false,"sendErrorEvents":true,"showPoweredBy":false,"siteConfigExecBeforePageReady":false,"spaRouteChangeTimeout":500,"trackAnonymousVisitors":true,"trackContextualRelatedItems":false,"trackSubdomainAsCompany":false,"trackUnknownPagesByTitle":false,"treatHashChangeAsPageLoad":false}       );
    } catch (e) {
          console.error(e);
    }
})();


try {
    const CAMPAIGN_STAT_ATTRIBUTE = {
    CAMPAIGN: "data-evg-campaign-id",
    EXPERIENCE: "data-evg-experience-id",
    USER_GROUP: "data-evg-user-group",
    CLICKTHROUGH: "data-evg-clickthrough",
    IGNORE_CLICKTHROUGH: "data-evg-ignore-clickthrough",
    DISMISSAL: "data-evg-dismissal",
    ITEM: "data-evg-item-id",
    ITEM_TYPE: "data-evg-item-type"
};

const CAMPAIGN_STAT_TYPE = {
    IMPRESSION: "Impression",
    CLICKTHROUGH: "Clickthrough",
    DISMISSAL: "Dismissal"
};

const CAMPAIGN_STAT_USER_GROUP = {
    TEST: "Test",
    CONTROL: "Control"
};

document.addEventListener(Evergage.CustomEvents.OnTemplateDisplayEnd, (event) =&gt; {
    if (validateOnTemplateDisplayEndEvent(event)) {
        const payload = event.detail.payload;
        const campaignElement = getCampaignElementFromPayload(payload);
        sendImpression(payload, campaignElement);
        bindCampaignClickthroughsAndDismissals(campaignElement);
    }
});

const sendImpression = (payload, campaignElement) =&gt; {
    const userGroup = payload.userGroup;
    const stat = {
        control: userGroup === CAMPAIGN_STAT_USER_GROUP.CONTROL,
        experienceId: payload.experience,
        stat: CAMPAIGN_STAT_TYPE.IMPRESSION
    };
    const itemStats = generateItemStats(campaignElement);
    if (Object.keys(itemStats).length &gt; 0) {
        stat.catalog = itemStats;
    }
    if (userGroup === CAMPAIGN_STAT_USER_GROUP.CONTROL || (userGroup === CAMPAIGN_STAT_USER_GROUP.TEST &amp;&amp; campaignElement.length &gt; 0)) {
        Evergage.sendStat({campaignStats: [stat]});
    } else {
        Evergage.log.warn("campaignStatsTracking.js", "Experience", payload.experience, "not found in DOM.");
    }
};

const generateItemStats = (campaignElement) =&gt; {
    const catalogStats = {};
    const itemNodes = Evergage.cashDom(campaignElement).find("[" + CAMPAIGN_STAT_ATTRIBUTE.ITEM_TYPE + "]");
    if (!itemNodes || itemNodes.length === 0) {
        return catalogStats;
    }
    Array.from(itemNodes).forEach(function(itemNode) {
        const itemId = Evergage.cashDom(itemNode).attr(CAMPAIGN_STAT_ATTRIBUTE.ITEM);
        const itemType = Evergage.cashDom(itemNode).attr(CAMPAIGN_STAT_ATTRIBUTE.ITEM_TYPE);
        if (itemId &amp;&amp; itemType) {
            if (!catalogStats[itemType]) {
                catalogStats[itemType] = [];
            }
            if (!catalogStats[itemType].includes(itemId)) {
                catalogStats[itemType].push(itemId);
            }
        }
    });
    return catalogStats;
}

const buildCampaignSelector = (experienceId) =&gt; {
    return `[${CAMPAIGN_STAT_ATTRIBUTE.EXPERIENCE}='${experienceId}']`
}

const getCampaignElementFromPayload = (payload) =&gt; {
    const experienceId = payload.experience;
    const campaignSelector = buildCampaignSelector(experienceId);
    return Evergage.cashDom(campaignSelector);
};

const getCampaignClickthroughAndDismissalElements = (campaignElement) =&gt; {
    const experienceId = Evergage.cashDom(campaignElement).attr(`${CAMPAIGN_STAT_ATTRIBUTE.EXPERIENCE}`);
    const campaignSelector = buildCampaignSelector(experienceId);
    return Evergage.cashDom(campaignElement).parent().find(`
        ${campaignSelector}[${CAMPAIGN_STAT_ATTRIBUTE.CLICKTHROUGH}],
        ${campaignSelector} a,
        ${campaignSelector} [${CAMPAIGN_STAT_ATTRIBUTE.CLICKTHROUGH}],
        ${campaignSelector} [${CAMPAIGN_STAT_ATTRIBUTE.DISMISSAL}]
    `);
};

const sendClickthroughOrDismissal = (e) =&gt; {
    if (Evergage.cashDom(e.target).closest(`[${CAMPAIGN_STAT_ATTRIBUTE.IGNORE_CLICKTHROUGH}]`).length &gt; 0) {
        return;
    }
    const campaignElement = Evergage.cashDom(e.target).closest(`[${CAMPAIGN_STAT_ATTRIBUTE.EXPERIENCE}]`);
    if (campaignElement.length &gt; 0  &amp;&amp; Evergage.cashDom(e.target).closest(`
        a,
        [${CAMPAIGN_STAT_ATTRIBUTE.CLICKTHROUGH}],
        [${CAMPAIGN_STAT_ATTRIBUTE.DISMISSAL}]`).length &gt; 0) {

        const stat = {
            control: campaignElement.attr(CAMPAIGN_STAT_ATTRIBUTE.USER_GROUP) === CAMPAIGN_STAT_USER_GROUP.CONTROL,
            experienceId: campaignElement.attr(CAMPAIGN_STAT_ATTRIBUTE.EXPERIENCE),
            stat: Evergage.cashDom(e.target).closest(`[${CAMPAIGN_STAT_ATTRIBUTE.CLICKTHROUGH}]`).length &gt; 0 || Evergage.cashDom(e.target).closest("a").length &gt; 0
                ? CAMPAIGN_STAT_TYPE.CLICKTHROUGH
                : CAMPAIGN_STAT_TYPE.DISMISSAL
        };

        if (stat.stat === CAMPAIGN_STAT_TYPE.CLICKTHROUGH) {
            const itemClickthroughStats = generateItemClickthroughStats(e.target);
            if (Object.keys(itemClickthroughStats).length &gt; 0) {
                stat.catalog = itemClickthroughStats;
            }
        }

        Evergage.sendStat({campaignStats: [stat]});
    }
};

const generateItemClickthroughStats = (target) =&gt; {
    const itemStats = {};
    const itemId = Evergage.cashDom(target).closest("[" + CAMPAIGN_STAT_ATTRIBUTE.ITEM + "]").attr(CAMPAIGN_STAT_ATTRIBUTE.ITEM);
    const itemType = Evergage.cashDom(target).closest("[" + CAMPAIGN_STAT_ATTRIBUTE.ITEM_TYPE + "]").attr(CAMPAIGN_STAT_ATTRIBUTE.ITEM_TYPE);

    if (itemId &amp;&amp; itemType) {
        itemStats[itemType] = [itemId];
    }
    return itemStats;
}

const bindCampaignClickthroughsAndDismissals = (campaignElement) =&gt; {
    const elements = getCampaignClickthroughAndDismissalElements(campaignElement);
    elements.off("click", sendClickthroughOrDismissal);
    elements.on("click", sendClickthroughOrDismissal);
};

const validateOnTemplateDisplayEndEvent = (event) =&gt; {
    if (!event.detail) {
        Evergage.log.warn("campaignStatsTracking.js", "No detail object found for onTemplateDisplayEndEvent", event);
        return false;
    }
    if (!event.detail.payload) {
        Evergage.log.warn("campaignStatsTracking.js", "No payload object found for onTemplateDisplayEndEvent", event);
        return false;
    }
    if (!event.detail.payload.campaign) {
        Evergage.log.warn("campaignStatsTracking.js", "No campaign found in payload object", event.detail);
        return false;
    }
    if (!event.detail.payload.experience) {
        Evergage.log.warn("campaignStatsTracking.js", "No experience found in payload object", event.detail);
        return false;
    }
    if (!event.detail.payload.userGroup) {
        Evergage.log.warn("campaignStatsTracking.js", "No user group found in payload object", event.detail);
        return false;
    }
    return true;
};

} catch (e) {
    if (typeof window.Evergage === "object" &amp;&amp; typeof window.Evergage.getVersion === "function" &amp;&amp; window.Evergage.getVersion() &gt;= 5) {
        Evergage.sendException(e, "beaconExtension: Campaign Stats Tracking:campaignStatsTracking.js");
    }
};


try {
    !function(e,t){for(var n in t)e[n]=t[n]}(window,function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&amp;&amp;Symbol.toStringTag&amp;&amp;Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&amp;t&amp;&amp;(e=n(e)),8&amp;t)return e;if(4&amp;t&amp;&amp;"object"==typeof e&amp;&amp;e&amp;&amp;e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&amp;t&amp;&amp;"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&amp;&amp;e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=3)}([function(e,t,n){"use strict";var r=this&amp;&amp;this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&amp;&amp;(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&amp;&amp;(r=n),e[r]=t[n]}),o=this&amp;&amp;this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&amp;&amp;this.__importStar||function(e){if(e&amp;&amp;e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&amp;&amp;Object.hasOwnProperty.call(e,n)&amp;&amp;r(t,e,n);return o(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.restrictContentZone=t.executeControl=t.handleCampaignResponses=t.renderTemplate=t.resetTemplate=t.registerTemplate=t.executeBundles=void 0;var a=n(5),l=n(1),s=i(n(2)),c=new Map,u=new Map,p=new Set,d=function(){return document.getElementsByTagName("html").length&gt;0&amp;&amp;null!=document.getElementsByTagName("html")[0].getAttribute(s.VE_LOADING_ATTRIBUTE)||null!=document.getElementById(s.VE_ACTIVE_ELEMENT_ID)||"true"===localStorage.getItem(s.VE_INDICATOR_FLAG)||document.location.href.includes(s.TEST_TEMPLATE_PARAMETER)},f=function(e){return c.get(e)},h=function(e,t){return[e,t.campaign,t.experience].join(":")};t.executeBundles=function(e){if(e){var n=!0;e.forEach((function(e){var r,o;try{try{var i=document.createElement("script");o="prepareTemplate"+e.id,i.text="function "+o+"(TemplateService) { "+e.bundle+" }",r=document.head.appendChild(i),window[o]({registerTemplate:t.registerTemplate})}catch(r){n=!1,Function("TemplateService",e.bundle)({registerTemplate:t.registerTemplate})}}catch(e){l.dispatchError(e)}finally{r&amp;&amp;r.parentNode.removeChild(r),o&amp;&amp;window[o]&amp;&amp;(window[o]=void 0)}})),n||console.log("Marketing Cloud Personalization will soon require your Content Security Policy to allow `unsafe-inline`.")}},t.registerTemplate=function(e){var t=new a.Template(e);c.set(e.name,t)},t.resetTemplate=function(e,t){var n=h(e,t),r=u.get(n);if(r)try{r()}catch(e){l.dispatchError(e)}u.delete(n)},t.renderTemplate=function(e,t){if(c.has(e)){var n=f(e).render(t);u.set(h(e,t),n)}},t.handleCampaignResponses=function(e){d()||e.filter((function(e){return"ng"===e.type})).filter((function(e){return!g(e)})).forEach((function(e){switch(e.userGroup){case"Default":m(e);break;case"Control":t.executeControl(e)}}))};var m=function(e){e.templateNames.forEach((function(n){t.renderTemplate(n,e.payload)}))};t.executeControl=function(e){e.templateNames.forEach((function(t){var n=f(t),r=e.payload;if(n.control)try{var o=n.control(r);l.handleTemplateDispatch(o,r)}catch(e){l.dispatchError(e)}}))};var g=function(e){return e.payload.contentZone&amp;&amp;p.has(e.payload.contentZone)};t.restrictContentZone=function(e){e&amp;&amp;p.add(e)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.dispatchError=t.handleTemplateDispatch=t.getQueryParam=void 0,t.getQueryParam=function(e){var t=location.search;e=e.replace(/[[]/,"\\[").replace(/[\]]/,"\\]");var n=new RegExp("[\\?&amp;]"+e+"=([^&amp;#]*)").exec(t);return null===n?"":decodeURIComponent(n[1].replace(/\+/g," "))};var r=function(e){document.dispatchEvent(new CustomEvent(window.Evergage.CustomEvents.OnTemplateDisplayEnd,{detail:{payload:e}})),document.dispatchEvent(new CustomEvent(window.SalesforceInteractions.mcis.CustomEvents.OnTemplateDisplayEnd,{detail:{payload:e}}))};t.handleTemplateDispatch=function(e,t){window.Promise&amp;&amp;"function"==typeof window.Promise.resolve?window.Promise.resolve(e).then((function(){r(t)})):r(t)},t.dispatchError=function(e){document.dispatchEvent(new CustomEvent(window.SalesforceInteractions.CustomEvents.OnException,{detail:{error:new Error(e),context:"Handlebars Template Gear"}}))}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.VE_ACTIVE_ELEMENT_ID=t.VE_INDICATOR_FLAG=t.VE_LOADING_ATTRIBUTE=t.TEST_TEMPLATE_PARAMETER=t.TEST_TEMPLATE_STORAGE_KEY=void 0,t.TEST_TEMPLATE_STORAGE_KEY="testTemplate",t.TEST_TEMPLATE_PARAMETER="evergageTestTemplate",t.VE_LOADING_ATTRIBUTE="evergagevisualeditorloading",t.VE_INDICATOR_FLAG="evgVE",t.VE_ACTIVE_ELEMENT_ID="evg_ui-visual-editor"},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.render=void 0;var r=n(4),o=n(6),i=n(0);function a(){/complete|interactive|loaded/.test(document.readyState)?(r.renderTestTemplate(),o.initPreview()):document.addEventListener("DOMContentLoaded",(function(){r.renderTestTemplate(),o.initPreview()}))}document.addEventListener(window.Evergage.CustomEvents.OnEventResponse,(function(e){i.executeBundles(e.detail.response.compiledCampaignTemplates),i.handleCampaignResponses(e.detail.response.campaignResponses)})),t.render=a,a()},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.renderTestTemplate=void 0;var r=n(0),o=n(1),i=n(2);t.renderTestTemplate=function(){if("true"==o.getQueryParam(i.TEST_TEMPLATE_PARAMETER)){var e=a();addEventListener("storage",(function(t){t.key==i.TEST_TEMPLATE_STORAGE_KEY&amp;&amp;(e&amp;&amp;r.resetTemplate(e.templateName,e.templateConfig),e=a())}))}};var a=function(){var e=localStorage.getItem(i.TEST_TEMPLATE_STORAGE_KEY);if(e)try{var t=JSON.parse(e);return r.executeBundles(t.templates),r.renderTemplate(t.templateName,t.templateConfig),r.restrictContentZone(t.templateConfig.contentZone),t}catch(e){}}},function(e,t,n){"use strict";var r=this&amp;&amp;this.__importDefault||function(e){return e&amp;&amp;e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Template=void 0;var o=r(n(7)),i=n(1),a=function(){function e(e){var t=this;if(this.getContentZoneFromMatchedConfig=function(e){var t=window.Evergage.getState().result.matchedConfig;return e.contentZone&amp;&amp;t&amp;&amp;t.contentZones&amp;&amp;0!==t.contentZones.length&amp;&amp;t.contentZones.find((function(t){return t.name===e.contentZone}))||null},this.applyRender=function(e){var n=t.getContentZoneFromMatchedConfig(e);n&amp;&amp;t.executeInsertionForTarget(n,e)},this.replaceContentAtTarget=function(e,t){t.innerHTML=e},this.name=e.name,this.apply=e.apply,this.reset=e.reset,this.control=e.control,e.handlebars)try{this.generateHtml=o.default.template(e.handlebars),o.default.partials[e.name]=o.default.template(e.handlebars)}catch(e){i.dispatchError(e)}else this.generateHtml=function(){}}return e.prototype.render=function(e){try{var t=this.apply(e,this.generateHtml,this.applyRender);return i.handleTemplateDispatch(t,e),this.reset.bind(this,e,this.generateHtml)}catch(e){i.dispatchError(e)}},e.prototype.executeInsertionForTarget=function(e,t){if(this.generateHtml){var n=e.selector;try{var r=document.querySelector(n);if(!r){var o='Could not render template. Content zone "'+e.name+'" defined but the selector "'+n+'" not found on the page.';return void i.dispatchError(o)}var a=this.generateHtml(t);if(!a)return;this.replaceContentAtTarget(a,r)}catch(e){i.dispatchError(e)}}},e}();t.Template=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initPreview=void 0;var r=n(2),o=n(0);t.initPreview=function(){window.Evergage.Render={render:function(e,t,n){var i=JSON.stringify({templateName:e,templateConfig:t,templates:n});window.localStorage.setItem(r.TEST_TEMPLATE_STORAGE_KEY,i),o.resetTemplate(e,t),o.executeBundles(n),o.renderTemplate(e,t)},reset:o.resetTemplate}}},function(e,t,n){"use strict";n.r(t);var r={};n.r(r),n.d(r,"extend",(function(){return u})),n.d(r,"toString",(function(){return p})),n.d(r,"isFunction",(function(){return d})),n.d(r,"isArray",(function(){return f})),n.d(r,"indexOf",(function(){return h})),n.d(r,"escapeExpression",(function(){return m})),n.d(r,"isEmpty",(function(){return g})),n.d(r,"createFrame",(function(){return v})),n.d(r,"blockParams",(function(){return E})),n.d(r,"appendContextPath",(function(){return T}));var o={};n.r(o),n.d(o,"VERSION",(function(){return k})),n.d(o,"COMPILER_REVISION",(function(){return j})),n.d(o,"LAST_COMPATIBLE_COMPILER_REVISION",(function(){return I})),n.d(o,"REVISION_CHANGES",(function(){return L})),n.d(o,"HandlebarsEnvironment",(function(){return R})),n.d(o,"log",(function(){return H})),n.d(o,"createFrame",(function(){return v})),n.d(o,"logger",(function(){return M}));var i={};n.r(i),n.d(i,"checkRevision",(function(){return V})),n.d(i,"template",(function(){return B})),n.d(i,"wrapProgram",(function(){return G})),n.d(i,"resolvePartial",(function(){return Z})),n.d(i,"invokePartial",(function(){return F})),n.d(i,"noop",(function(){return q}));const a={"&amp;":"&amp;amp;","&lt;":"&amp;lt;","&gt;":"&amp;gt;",'"':"&amp;quot;","'":"&amp;#x27;","`":"&amp;#x60;","=":"&amp;#x3D;"},l=/[&amp;&lt;&gt;"'`=]/g,s=/[&amp;&lt;&gt;"'`=]/;function c(e){return a[e]}function u(e){for(let t=1;t&lt;arguments.length;t++)for(let n in arguments[t])Object.prototype.hasOwnProperty.call(arguments[t],n)&amp;&amp;(e[n]=arguments[t][n]);return e}let p=Object.prototype.toString,d=function(e){return"function"==typeof e};d(/x/)&amp;&amp;(d=function(e){return"function"==typeof e&amp;&amp;"[object Function]"===p.call(e)});const f=Array.isArray||function(e){return!(!e||"object"!=typeof e)&amp;&amp;"[object Array]"===p.call(e)};function h(e,t){for(let n=0,r=e.length;n&lt;r;n++)if(e[n]===t)return n;return-1}function m(e){if("string"!=typeof e){if(e&amp;&amp;e.toHTML)return e.toHTML();if(null==e)return"";if(!e)return e+"";e=""+e}return s.test(e)?e.replace(l,c):e}function g(e){return!e&amp;&amp;0!==e||!(!f(e)||0!==e.length)}function v(e){let t=u({},e);return t._parent=e,t}function E(e,t){return e.path=t,e}function T(e,t){return(e?e+".":"")+t}const y=["description","fileName","lineNumber","endLineNumber","message","name","number","stack"];function w(e,t){let n,r,o,i,a=t&amp;&amp;t.loc;a&amp;&amp;(n=a.start.line,r=a.end.line,o=a.start.column,i=a.end.column,e+=" - "+n+":"+o);let l=Error.prototype.constructor.call(this,e);for(let e=0;e&lt;y.length;e++)this[y[e]]=l[y[e]];Error.captureStackTrace&amp;&amp;Error.captureStackTrace(this,w);try{a&amp;&amp;(this.lineNumber=n,this.endLineNumber=r,Object.defineProperty?(Object.defineProperty(this,"column",{value:o,enumerable:!0}),Object.defineProperty(this,"endColumn",{value:i,enumerable:!0})):(this.column=o,this.endColumn=i))}catch(e){}}w.prototype=new Error;var b=w;function _(e){!function(e){e.registerHelper("blockHelperMissing",(function(t,n){let r=n.inverse,o=n.fn;if(!0===t)return o(this);if(!1===t||null==t)return r(this);if(f(t))return t.length&gt;0?(n.ids&amp;&amp;(n.ids=[n.name]),e.helpers.each(t,n)):r(this);if(n.data&amp;&amp;n.ids){let e=v(n.data);e.contextPath=T(n.data.contextPath,n.name),n={data:e}}return o(t,n)}))}(e),function(e){e.registerHelper("each",(function(e,t){if(!t)throw new b("Must pass iterator to #each");let n,r,o=t.fn,i=t.inverse,a=0,l="";function s(t,i,a){n&amp;&amp;(n.key=t,n.index=i,n.first=0===i,n.last=!!a,r&amp;&amp;(n.contextPath=r+t)),l+=o(e[t],{data:n,blockParams:E([e[t],t],[r+t,null])})}if(t.data&amp;&amp;t.ids&amp;&amp;(r=T(t.data.contextPath,t.ids[0])+"."),d(e)&amp;&amp;(e=e.call(this)),t.data&amp;&amp;(n=v(t.data)),e&amp;&amp;"object"==typeof e)if(f(e))for(let t=e.length;a&lt;t;a++)a in e&amp;&amp;s(a,a,a===e.length-1);else if(global.Symbol&amp;&amp;e[global.Symbol.iterator]){const t=[],n=e[global.Symbol.iterator]();for(let e=n.next();!e.done;e=n.next())t.push(e.value);for(let n=(e=t).length;a&lt;n;a++)s(a,a,a===e.length-1)}else{let t;Object.keys(e).forEach(e=&gt;{void 0!==t&amp;&amp;s(t,a-1),t=e,a++}),void 0!==t&amp;&amp;s(t,a-1,!0)}return 0===a&amp;&amp;(l=i(this)),l}))}(e),function(e){e.registerHelper("helperMissing",(function(){if(1!==arguments.length)throw new b('Missing helper: "'+arguments[arguments.length-1].name+'"')}))}(e),function(e){e.registerHelper("if",(function(e,t){if(2!=arguments.length)throw new b("#if requires exactly one argument");return d(e)&amp;&amp;(e=e.call(this)),!t.hash.includeZero&amp;&amp;!e||g(e)?t.inverse(this):t.fn(this)})),e.registerHelper("unless",(function(t,n){if(2!=arguments.length)throw new b("#unless requires exactly one argument");return e.helpers.if.call(this,t,{fn:n.inverse,inverse:n.fn,hash:n.hash})}))}(e),function(e){e.registerHelper("log",(function(){let t=[void 0],n=arguments[arguments.length-1];for(let e=0;e&lt;arguments.length-1;e++)t.push(arguments[e]);let r=1;null!=n.hash.level?r=n.hash.level:n.data&amp;&amp;null!=n.data.level&amp;&amp;(r=n.data.level),t[0]=r,e.log(...t)}))}(e),function(e){e.registerHelper("lookup",(function(e,t,n){return e?n.lookupProperty(e,t):e}))}(e),function(e){e.registerHelper("with",(function(e,t){if(2!=arguments.length)throw new b("#with requires exactly one argument");d(e)&amp;&amp;(e=e.call(this));let n=t.fn;if(g(e))return t.inverse(this);{let r=t.data;return t.data&amp;&amp;t.ids&amp;&amp;(r=v(t.data),r.contextPath=T(t.data.contextPath,t.ids[0])),n(e,{data:r,blockParams:E([e],[r&amp;&amp;r.contextPath])})}}))}(e)}function P(e,t,n){e.helpers[t]&amp;&amp;(e.hooks[t]=e.helpers[t],n||delete e.helpers[t])}function O(e){!function(e){e.registerDecorator("inline",(function(e,t,n,r){let o=e;return t.partials||(t.partials={},o=function(r,o){let i=n.partials;n.partials=u({},i,t.partials);let a=e(r,o);return n.partials=i,a}),t.partials[r.args[0]]=r.fn,o}))}(e)}let C={methodMap:["debug","info","warn","error"],level:"info",lookupLevel:function(e){if("string"==typeof e){let t=h(C.methodMap,e.toLowerCase());e=t&gt;=0?t:parseInt(e,10)}return e},log:function(e,...t){if(e=C.lookupLevel(e),"undefined"!=typeof console&amp;&amp;C.lookupLevel(C.level)&lt;=e){let n=C.methodMap[e];console[n]||(n="log"),console[n](...t)}}};var M=C;function A(...e){return u(Object.create(null),...e)}const x=Object.create(null);function S(e,t){return void 0!==e.whitelist[t]?!0===e.whitelist[t]:void 0!==e.defaultValue?e.defaultValue:(function(e){!0!==x[e]&amp;&amp;(x[e]=!0,(void 0)("error",`Handlebars: Access has been denied to resolve the property "${e}" because it is not an "own property" of its parent.\nYou can add a runtime option to disable the check or this warning:\nSee https://handlebarsjs.com/api-reference/runtime-options.html#options-to-control-prototype-access for details`))}(t),!1)}const k="4.7.7",j=8,I=7,L={1:"&lt;= 1.0.rc.2",2:"== 1.0.0-rc.3",3:"== 1.0.0-rc.4",4:"== 1.x.x",5:"== 2.0.0-alpha.x",6:"&gt;= 2.0.0-beta.1",7:"&gt;= 4.0.0 &lt;4.3.0",8:"&gt;= 4.3.0"};function R(e,t,n){this.helpers=e||{},this.partials=t||{},this.decorators=n||{},_(this),O(this)}R.prototype={constructor:R,logger:M,log:M.log,registerHelper:function(e,t){if("[object Object]"===p.call(e)){if(t)throw new b("Arg not supported with multiple helpers");u(this.helpers,e)}else this.helpers[e]=t},unregisterHelper:function(e){delete this.helpers[e]},registerPartial:function(e,t){if("[object Object]"===p.call(e))u(this.partials,e);else{if(void 0===t)throw new b(`Attempting to register a partial called "${e}" as undefined`);this.partials[e]=t}},unregisterPartial:function(e){delete this.partials[e]},registerDecorator:function(e,t){if("[object Object]"===p.call(e)){if(t)throw new b("Arg not supported with multiple decorators");u(this.decorators,e)}else this.decorators[e]=t},unregisterDecorator:function(e){delete this.decorators[e]},resetLoggedPropertyAccesses(){Object.keys(x).forEach(e=&gt;{delete x[e]})}};let H=M.log;function N(e){this.string=e}N.prototype.toString=N.prototype.toHTML=function(){return""+this.string};var D=N;function V(e){const t=e&amp;&amp;e[0]||1;if(!(t&gt;=I&amp;&amp;t&lt;=j)){if(t&lt;I){const e=L[j],n=L[t];throw new b("Template was precompiled with an older version of Handlebars than the current runtime. Please update your precompiler to a newer version ("+e+") or downgrade your runtime to an older version ("+n+").")}throw new b("Template was precompiled with a newer version of Handlebars than the current runtime. Please update your runtime to a newer version ("+e[1]+").")}}function B(e,t){if(!t)throw new b("No environment passed to template");if(!e||!e.main)throw new b("Unknown template object: "+typeof e);e.main.decorator=e.main_d,t.VM.checkRevision(e.compiler);const n=e.compiler&amp;&amp;7===e.compiler[0];let r={strict:function(e,t,n){if(!e||!(t in e))throw new b('"'+t+'" not defined in '+e,{loc:n});return r.lookupProperty(e,t)},lookupProperty:function(e,t){let n=e[t];return null==n||Object.prototype.hasOwnProperty.call(e,t)||function(e,t,n){return S("function"==typeof e?t.methods:t.properties,n)}(n,r.protoAccessControl,t)?n:void 0},lookup:function(e,t){const n=e.length;for(let o=0;o&lt;n;o++){if(null!=(e[o]&amp;&amp;r.lookupProperty(e[o],t)))return e[o][t]}},lambda:function(e,t){return"function"==typeof e?e.call(t):e},escapeExpression:m,invokePartial:function(n,r,o){o.hash&amp;&amp;(r=u({},r,o.hash),o.ids&amp;&amp;(o.ids[0]=!0)),n=t.VM.resolvePartial.call(this,n,r,o);let i=u({},o,{hooks:this.hooks,protoAccessControl:this.protoAccessControl}),a=t.VM.invokePartial.call(this,n,r,i);if(null==a&amp;&amp;t.compile&amp;&amp;(o.partials[o.name]=t.compile(n,e.compilerOptions,t),a=o.partials[o.name](r,i)),null!=a){if(o.indent){let e=a.split("\n");for(let t=0,n=e.length;t&lt;n&amp;&amp;(e[t]||t+1!==n);t++)e[t]=o.indent+e[t];a=e.join("\n")}return a}throw new b("The partial "+o.name+" could not be compiled when running in runtime-only mode")},fn:function(t){let n=e[t];return n.decorator=e[t+"_d"],n},programs:[],program:function(e,t,n,r,o){let i=this.programs[e],a=this.fn(e);return t||o||r||n?i=G(this,e,a,t,n,r,o):i||(i=this.programs[e]=G(this,e,a)),i},data:function(e,t){for(;e&amp;&amp;t--;)e=e._parent;return e},mergeIfNeeded:function(e,t){let n=e||t;return e&amp;&amp;t&amp;&amp;e!==t&amp;&amp;(n=u({},t,e)),n},nullContext:Object.seal({}),noop:t.VM.noop,compilerInfo:e.compiler};function o(t,n={}){let i=n.data;o._setup(n),!n.partial&amp;&amp;e.useData&amp;&amp;(i=function(e,t){t&amp;&amp;"root"in t||((t=t?v(t):{}).root=e);return t}(t,i));let a,l=e.useBlockParams?[]:void 0;function s(t){return""+e.main(r,t,r.helpers,r.partials,i,l,a)}return e.useDepths&amp;&amp;(a=n.depths?t!=n.depths[0]?[t].concat(n.depths):n.depths:[t]),(s=U(e.main,s,r,n.depths||[],i,l))(t,n)}return o.isTop=!0,o._setup=function(o){if(o.partial)r.protoAccessControl=o.protoAccessControl,r.helpers=o.helpers,r.partials=o.partials,r.decorators=o.decorators,r.hooks=o.hooks;else{let i=u({},t.helpers,o.helpers);!function(e,t){Object.keys(e).forEach(n=&gt;{let r=e[n];e[n]=function(e,t){const n=t.lookupProperty;return function(e,t){return"function"!=typeof e?e:function(){const n=arguments[arguments.length-1];return arguments[arguments.length-1]=t(n),e.apply(this,arguments)}}(e,e=&gt;u({lookupProperty:n},e))}(r,t)})}(i,r),r.helpers=i,e.usePartial&amp;&amp;(r.partials=r.mergeIfNeeded(o.partials,t.partials)),(e.usePartial||e.useDecorators)&amp;&amp;(r.decorators=u({},t.decorators,o.decorators)),r.hooks={},r.protoAccessControl=function(e){let t=Object.create(null);t.constructor=!1,t.__defineGetter__=!1,t.__defineSetter__=!1,t.__lookupGetter__=!1;let n=Object.create(null);return n.__proto__=!1,{properties:{whitelist:A(n,e.allowedProtoProperties),defaultValue:e.allowProtoPropertiesByDefault},methods:{whitelist:A(t,e.allowedProtoMethods),defaultValue:e.allowProtoMethodsByDefault}}}(o);let a=o.allowCallsToHelperMissing||n;P(r,"helperMissing",a),P(r,"blockHelperMissing",a)}},o._child=function(t,n,o,i){if(e.useBlockParams&amp;&amp;!o)throw new b("must pass block params");if(e.useDepths&amp;&amp;!i)throw new b("must pass parent depths");return G(r,t,e[t],n,0,o,i)},o}function G(e,t,n,r,o,i,a){function l(t,o={}){let l=a;return!a||t==a[0]||t===e.nullContext&amp;&amp;null===a[0]||(l=[t].concat(a)),n(e,t,e.helpers,e.partials,o.data||r,i&amp;&amp;[o.blockParams].concat(i),l)}return(l=U(n,l,e,a,r,i)).program=t,l.depth=a?a.length:0,l.blockParams=o||0,l}function Z(e,t,n){return e?e.call||n.name||(n.name=e,e=n.partials[e]):e="@partial-block"===n.name?n.data["partial-block"]:n.partials[n.name],e}function F(e,t,n){const r=n.data&amp;&amp;n.data["partial-block"];let o;if(n.partial=!0,n.ids&amp;&amp;(n.data.contextPath=n.ids[0]||n.data.contextPath),n.fn&amp;&amp;n.fn!==q){n.data=v(n.data);let e=n.fn;o=n.data["partial-block"]=function(t,n={}){return n.data=v(n.data),n.data["partial-block"]=r,e(t,n)},e.partials&amp;&amp;(n.partials=u({},n.partials,e.partials))}if(void 0===e&amp;&amp;o&amp;&amp;(e=o),void 0===e)throw new b("The partial "+n.name+" could not be found");if(e instanceof Function)return e(t,n)}function q(){return""}function U(e,t,n,r,o,i){if(e.decorator){let a={};u(t=e.decorator(t,a,n,r&amp;&amp;r[0],o,i,r),a)}return t}function Y(){let e=new R;return u(e,o),e.SafeString=D,e.Exception=b,e.Utils=r,e.escapeExpression=m,e.VM=i,e.template=function(t){return B(t,e)},e}let K=Y();K.create=Y,function(e){let t="undefined"!=typeof global?global:window,n=t.Handlebars;e.noConflict=function(){return t.Handlebars===e&amp;&amp;(t.Handlebars=n),e}}(K),K.default=K;t.default=K}]));
} catch (e) {
    if (typeof window.Evergage === "object" &amp;&amp; typeof window.Evergage.getVersion === "function" &amp;&amp; window.Evergage.getVersion() &gt;= 5) {
        Evergage.sendException(e, "beaconExtension: Handlebars Templates:index.js");
    }
};


try {
    // syncs with @frontend/packages/ui-chrome-extension/src/constants.ts#CUSTOM_EVENT.MESSAGE_FROM_INTERACTION_STUDIO_TOOLS_GEAR
var VE_CUSTOM_EVENT_NAME = 'msg_from_interaction_studio_tools_gear';
// syncs with @frontend/packages/ui-chrome-extension/src/constants.ts#EVENT_TYPE.MESSAGE_FROM_INTERACTION_STUDIO_TOOLS_GEAR
var TO_LAUNCHER_MESSAGE_TYPE = 'nxve_messageFromInteractionStudioToolsGear';

var TO_LAUNCHER_PAYLOAD_TYPE = 'beaconSDK_domEvent';

function sendMessageToEvergageLauncher(message) {
    try {
        document.dispatchEvent(
            new CustomEvent(VE_CUSTOM_EVENT_NAME, {
                detail: JSON.stringify(message),
            })
        );
    } catch (e) {
        console.error(e);
    }
}

var eventLinkId = null;

if (Evergage !== null) {
    document.addEventListener(Evergage.CustomEvents.OnInit, function (
        domEvent
    ) {
        sendMessageToEvergageLauncher({
            type: TO_LAUNCHER_MESSAGE_TYPE,
            payload: {
                type: TO_LAUNCHER_PAYLOAD_TYPE,
                payload: {
                    name: Evergage.CustomEvents.OnInit,
                    detail: domEvent.detail,
                },
            },
        });
    });

    document.addEventListener(Evergage.CustomEvents.OnEventSend, function (
        domEvent
    ) {
        eventLinkId = Math.random().toString().slice(2);

        const { actionEvent } = domEvent.detail || {};
        actionEvent._toolsEventLinkId = eventLinkId;
        if (actionEvent.interaction) {
            actionEvent.explain = true;
        } else {
            actionEvent.debug = Object.assign(
                (actionEvent.debug || {}),
                { explanations: true }
            );
        }

        sendMessageToEvergageLauncher({
            type: TO_LAUNCHER_MESSAGE_TYPE,
            payload: {
                type: TO_LAUNCHER_PAYLOAD_TYPE,
                payload: {
                    name: Evergage.CustomEvents.OnEventSend,
                    detail: domEvent.detail,
                },
            },
        });
    });

    document.addEventListener(Evergage.CustomEvents.OnEventResponse, function (
        domEvent
    ) {
        if (domEvent.detail) {
            const currentPage = Evergage.getCurrentPage();
            const sitemapConfig = Evergage.getState().config;
            const matchedPageConfig =
                Evergage.getState().result &amp;&amp;
                Evergage.getState().result.matchedConfig;

            eventLinkId = null;

            sendMessageToEvergageLauncher({
                type: TO_LAUNCHER_MESSAGE_TYPE,
                payload: {
                    type: TO_LAUNCHER_PAYLOAD_TYPE,
                    payload: {
                        name: Evergage.CustomEvents.OnEventResponse,
                        detail: {
                            response: domEvent.detail.response,
                            currentPage: currentPage,
                            sitemapConfig: sitemapConfig,
                            matchedPageConfig: matchedPageConfig,
                        },
                    },
                },
            });
        }
    });
}

} catch (e) {
    if (typeof window.Evergage === "object" &amp;&amp; typeof window.Evergage.getVersion === "function" &amp;&amp; window.Evergage.getVersion() &gt;= 5) {
        Evergage.sendException(e, "beaconExtension: System Tools:interactionStudioTools.js");
    }
};


try {
    Evergage.Surveys = Evergage.Surveys || (function() {

    var SURVEY_ACTION = {
        SUBMIT: "submit",
        PAGE_NEXT: "pageNext",
        PAGE_PREV: "pagePrev"
    };

    var SURVEY_EVENT_PARAM = {
        SURVEY_ACTION: 'surveyAction',
        SURVEY_ID: 'surveyId',
        SURVEY_START_TIME: 'surveyStartTime'
    };

    var initialized = false;

    function isInitialized() {
        return (initialized || typeof window.Survey === 'object');
    }

    /**
     * processSurveyResponses
     * ** recursive **
     * @param responses {object} a collection of survey element response values keyed by element.name (question.name)
     * @param elements {object} a collection of SurveyElements for a given page or panel of a survey
     * @param addResponseFn {function} invoked for each questionType element that has been processed
     */
    function processSurveyResponses(elements, survey, sender) {
        try {

            var shouldHandleElementAsPanel = function(element) {
                return (element.type === 'panel'
                        &amp;&amp; Evergage.cashDom.isArray(element.elements)
                        &amp;&amp; element.elements.length !== 0
                        &amp;&amp; !isString(element.questionId));
            };

            var formatAnswer = function(answer) {
                var result = (answer) ? answer : null;
                if (result != null &amp;&amp; Evergage.cashDom.isArray(result) || isPlainObject(result)) {
                    result = JSON.stringify(result);
                }
                return result;
            };

            var formatQuestionId = function(element, rowId) {
                var questionId = "survey:" + survey.id + ":" + element.questionId;
                if (isString(rowId)) {
                    questionId += ":" + rowId;
                }
                return questionId;
            };

            var responses = [];
            for (var elementIndex = 0; elementIndex &lt; elements.length; elementIndex++) {
                var element = elements[elementIndex];
                if (shouldHandleElementAsPanel(element)) {
                    responses = responses.concat(processSurveyResponses(element.elements, survey, sender));
                } else {
                    if (element.type === "matrix") {
                        for (var rowIndex = 0; rowIndex &lt; element.rows.length; rowIndex++) {
                            var row = element.rows[rowIndex];
                            var rowId = element.rowIds[rowIndex];
                            var allRowsValues = sender.data[element.name] ? sender.data[element.name] : {};
                            if (allRowsValues[row.value]) {
                                var rowValue = allRowsValues[row.value];
                                responses.push({ questionId: formatQuestionId(element, rowId), answer: rowValue });
                            }
                        }
                    } else {
                        var answer = formatAnswer(sender.data[element.name]);
                        if (answer) {
                            responses.push({ questionId: formatQuestionId(element), answer: answer });
                        }
                    }
                }
            }
            return responses;
        } catch (e) {
            Evergage.log.error('Evergage: There was an error when attempting to ' +
                                       'process survey responses: ', e);
        }
    }

    function isPlainObject(obj) {
        if (typeof obj !== 'object' || obj === null) return false;
        const proto = Object.getPrototypeOf(obj);
        return proto === null || proto === Object.prototype;
    }

    function isString(property) {
        return typeof property === 'string' || property instanceof String;
    }

    function handleSurveyAction(surveyAction, survey, sender) {

        try {
            if (surveyAction === SURVEY_ACTION.PAGE_NEXT) {
                return;
            } else {
                var surveyActionEvent = new SurveyActionEvent(surveyAction, survey.id, new Date().getTime());
                Evergage.cashDom.each(survey.config.pages, function(index, page) {
                    surveyActionEvent.addResponses(processSurveyResponses(page.elements, survey, sender));
                });
                surveyActionEvent.send();
            }
        } catch (e) {
            Evergage.log.error('Evergage: There was an error when attempting to ' +
                                       'submit survey responses surveyId[' + message.surveyConfig.survey.id + ']: ', e);
        }
    }

    function renderSurvey(survey, renderTarget) {
        if (typeof survey !== "object" || !renderTarget) return Evergage.log.error("Evergage: renderSurvey arguments are not valid");
        return injectSurveyResourcesIntoPage().then(() =&gt; {
            try {
                if (surveyAlreadyRendered(survey.id, renderTarget)) return;
                window.Survey.JsonObject.metaData.addProperty("questionbase", "questionId");
                window.Survey.JsonObject.metaData.addProperty("questionbase", "rowIds");
                var surveyModel = new window.Survey.Model(survey.config);
                // eslint-disable-next-line new-cap
                Evergage.cashDom(renderTarget).Survey({
                    model: surveyModel,
                    onComplete: function(sender) {
                        handleSurveyAction(SURVEY_ACTION.SUBMIT, survey, sender);
                    },
                    onPartialSend: function(sender) {
                        handleSurveyAction(SURVEY_ACTION.PAGE_NEXT, survey, sender);
                    }
                });
                Evergage.cashDom(renderTarget).attr("data-evg-survey-id", survey.id);
            } catch (e) {
                Evergage.log.error('Evergage: There was an error when attempting to render the survey', e);
            }
        });
    }

    function injectSurveyResourceIntoPage(type, url) {
        try {
            var documentHead = document.head || document.getElementsByTagName('head')[0];
            var isStylesheet = (type === 'style');
            var surveyResourceElement = document.createElement(isStylesheet ? 'link' : 'script');
            surveyResourceElement.setAttribute('type', ((isStylesheet) ? 'text/css' : 'text/javascript'));
            surveyResourceElement.setAttribute('class', 'evergageSurvey-' + type);
            surveyResourceElement.setAttribute(((isStylesheet) ? 'href' : 'src'), url);
            if (isStylesheet) {
                surveyResourceElement.setAttribute('rel', 'stylesheet');
            }
            documentHead.appendChild(surveyResourceElement);
            Evergage.log.trace('Evergage: Injected survey resource of type[' + type + '] url[' + url + ']');
        } catch (e) {
            Evergage.log.error('Evergage: There was an error when attempting to inject surveyJS resources into the page: ', e);
        }

    }

    function injectSurveyResourcesIntoPage() {
        return new Promise(resolve =&gt; {
            if (isInitialized()) {
                return resolve();
            }
            var SURVEY_JS_CDN_BASE_URL = '//cdn.evergage.com/evergage-content/3pp';
            var SURVEY_JS_VERSION = 'surveyjs-1.0.95';
            var SURVEY_JS_SCRIPT_NAME = 'survey.cash.min.js';
            var SURVEY_JS_STYLESHEET_NAME = 'survey.min.css';
            Object.entries({
                script: [SURVEY_JS_CDN_BASE_URL, SURVEY_JS_VERSION, SURVEY_JS_SCRIPT_NAME].join('/'),
                style: [SURVEY_JS_CDN_BASE_URL, SURVEY_JS_VERSION, SURVEY_JS_STYLESHEET_NAME].join('/')
            }).forEach(function(entry) {
                const [resourceType, resourceUrl] = entry
                injectSurveyResourceIntoPage(resourceType, resourceUrl);
            });
            var interval = setInterval(function(){
                if (Evergage.cashDom.fn.Survey != null &amp;&amp; window.Survey != null) {
                    clearInterval(interval);
                    initialized = true;
                    resolve();
                }
            }, 100);
        })
    }

    function surveyAlreadyRendered(surveyId, renderTarget) {
        return Evergage.cashDom(renderTarget).attr("data-evg-survey-id") === surveyId;
    }

    function SurveyActionEvent(surveyAction, surveyId, timestamp) {
        this.params = { source: {}, attributes: {} };
        this.params.source[SURVEY_EVENT_PARAM.SURVEY_ACTION] = surveyAction;
        this.params.source[SURVEY_EVENT_PARAM.SURVEY_ID] = surveyId;
        this.params.source[SURVEY_EVENT_PARAM.SURVEY_START_TIME] = timestamp;
    }

    SurveyActionEvent.prototype.addResponses = function(responses) {
        for (var i = 0; i &lt; responses.length; i++) {
            var response = responses[i];
            this.addResponse(response.questionId, response.answer);
        }
    };

    SurveyActionEvent.prototype.addResponse = function(name, value) {
        Evergage.log.trace('Evergage: Adding response to SurveyActionEvent: ' + JSON.stringify({ name: name, value: value }));
        this.params.attributes[name] = value;
    };

    SurveyActionEvent.prototype.send = function() {
        Evergage.log.trace('Evergage: Tracking survey event: ', this.params);
        Evergage.sendEvent({
            action: "Survey " + this.params.source[SURVEY_EVENT_PARAM.SURVEY_ACTION],
            source: this.params.source,
            user: {
                attributes: this.params.attributes
            }
        });
    };

    return {
        renderSurvey: renderSurvey,
        injectSurveyResourcesIntoPage: injectSurveyResourcesIntoPage
    };

})(window);

if (window.SalesforceInteractions &amp;&amp; window.SalesforceInteractions.mcis) {
    window.SalesforceInteractions.mcis.Surveys = Evergage.Surveys;
}
} catch (e) {
    if (typeof window.Evergage === "object" &amp;&amp; typeof window.Evergage.getVersion === "function" &amp;&amp; window.Evergage.getVersion() &gt;= 5) {
        Evergage.sendException(e, "beaconExtension: Surveys:SurveyJS.js");
    }
};


try {
    (function () {
    var VE_LOCAL_STORAGE_KEY = 'evgVE';
    var SITEMAP_EDITOR_LOCAL_STORAGE_KEY = 'evgVE-cdp-sitemap-editor';

    var SdkNamespace = window.Evergage || window.SalesforceInteractions;

    function injectEditorLaunchScript(isStandaloneSitemapEditor) {
        try {
            // getConfig() is not exposed on the Salesforce/CDP build of the SDK
            var trackerUrl =
                typeof SdkNamespace.getConfig === 'function' &amp;&amp;
                SdkNamespace.getConfig().trackerUrl;

            var baseUrl = !isStandaloneSitemapEditor &amp;&amp; trackerUrl ? trackerUrl : 'https://cdn.evergage.com';
            var scriptPath = isStandaloneSitemapEditor
                ? '/evergage-content/sitemap-editor/4.0.2/launch.sitemap-editor.js'
                : '/visual-editor/launch.js';

            var scriptUrl = [baseUrl, scriptPath].join('');

            var scriptTag = document.createElement('script');
            scriptTag.setAttribute('id', 'salesforceInteractionsLauncherScript');
            scriptTag.src = scriptUrl;

            if (
                document.getElementById('salesforceInteractionsLauncherScript') == null
            ) {
                document.head.appendChild(scriptTag);
            } else {
                SdkNamespace.log.info('Launch script is already here.');
            }
        } catch (err) {
            SdkNamespace.log.error(
                'Failed to inject Salesforce Interactions Launcher script: ' + err
            );
        }
    }

    function getUrlBoolean(name) {
        name = name.replace(/[\[]/, '\\[').replace(/[\]]/, '\\]');
        var regex = new RegExp('[\\?&amp;]' + name + '=([^&amp;#]*)');
        var results = regex.exec(location.search);
        return results === null ? null : results[1] === 'true';
    }

    var visualEditorParam = getUrlBoolean('evergageEditor');
    var standaloneEditorParam = getUrlBoolean('salesforceInteractionsSitemapEditor');

    var visualEditorEnabledInStorage = function () {
        return window.localStorage[VE_LOCAL_STORAGE_KEY] === 'true';
    };

    var standloneSitemapEditorEnabledInStorage = function () {
        return window.localStorage[SITEMAP_EDITOR_LOCAL_STORAGE_KEY] === 'true';
    };

    // honor and set local storage based off queryParam
    if (visualEditorParam !== null) {
        window.localStorage.setItem(VE_LOCAL_STORAGE_KEY, visualEditorParam);
    }

    if (standaloneEditorParam !== null) {
        window.localStorage.setItem(
            SITEMAP_EDITOR_LOCAL_STORAGE_KEY,
            standaloneEditorParam
        );
    }

    var inSiteEditorFrameContext =
        window.frameElement &amp;&amp; window.frameElement.id === 'siteEditorFrame';

    // trigger off of localStorage only
    // chrome extension reads/sets localStorage more easily than modifying the currentTab URL
    if (
        !visualEditorEnabledInStorage() &amp;&amp;
        !standloneSitemapEditorEnabledInStorage() &amp;&amp;
        !inSiteEditorFrameContext
    ) {
        return;
    }

    if (window.top === window.self || inSiteEditorFrameContext) {
        document.addEventListener(
            SdkNamespace.CustomEvents.OnInit,
            (event) =&gt; {
                injectEditorLaunchScript(
                    standloneSitemapEditorEnabledInStorage()
                );
                event.preventDefault();
            },
            { once: true }
        );
    }
})();

} catch (e) {
    if (typeof window.Evergage === "object" &amp;&amp; typeof window.Evergage.getVersion === "function" &amp;&amp; window.Evergage.getVersion() &gt;= 5) {
        Evergage.sendException(e, "beaconExtension: Visual Editor:visualEditor.js");
    }
};


try {
var evgr = Evergage.resolvers;
/*************************************************
 _   _
 (_) | |
 ___   _  | |_    ___   _ __ ___     __ _   _ __
 / __| | | | __|  / _ \ | '_ ` _ \   / _` | | '_ \
 \__ \ | | | |_  |  __/ | | | | | | | (_| | | |_) |
 |___/ |_|  \__|  \___| |_| |_| |_|  \__,_| | .__/
 | |
 |_|
 ***************************************************/
window.kele = window.kele || {};

window.kele.IS = {
    isInitialized: false,
    global: {
        isHydrated: false
    },
    testOn: () =&gt; {
        const event = {
            interaction: {
                name: "[Admin] Enable Testing"
            },
            user: {
                attributes: {
                    test_user: true
                }
            }
        };
        if (kele.IS.flags.log) {
            ez.dbg('sendEvent: ' + JSON.stringify(event), 'IS', 'sendEvent');
        }
        SalesforceInteractions.sendEvent(event);
    },
    testOff: () =&gt; {
        const event = {
            interaction: {
                name: "[Admin] Enable Testing"
            },
            user: {
                attributes: {
                    test_user: true
                }
            }
        };
        if (kele.IS.flags.log) {
            ez.dbg('sendEvent: ' + JSON.stringify(event), 'IS', 'sendEvent');
        }
        SalesforceInteractions.sendEvent(event);
    },
    flags: {
        log: false,
        controlsProductDetailAltRiver: false
    },
    tileClickHandler: (e) =&gt; {
        // For the tiles on Search page and Product Recs template
        const target = e.target;
        kele.IS.flags.log &amp;&amp; ez.dbg('Clicked on tile-container element: ' + target.innerHTML, 'IS', 'Sitemap: tileClickHandler');

        // Track clicks leading to PDP
        if (target.closest('figure &gt; a, header &gt; a, .has-no-pricing-availability')) {
            const event = {
                name: `Tile to PDP`,
                interaction: {
                    name: `[Click] Tile to PDP`,
                }
            };
            SalesforceInteractions.sendEvent(event);
            kele.IS.flags.log &amp;&amp; ez.dbg('Sending Tile to PDP event: ' + JSON.stringify(event), 'IS', 'tileClickHandler');
            return;
        }

        // Otherwise only listen to the clicks on add-to-cart button
        if (!target.closest('.add-to-cart-button')) return; // data-sfp-add-to-cart-button

        const tileContent = target.closest('.tile-content'); // data-sfp-tile-content
        if (!tileContent) return;

        const quantityInput = tileContent.querySelector('input[name="quantity"]'); // data-sfp-quantity
        const quantity = quantityInput &amp;&amp; quantityInput.value ? Number(quantityInput.value) : 0;
        if (quantity &lt;= 0) return;

        const img = tileContent.querySelector('figure img');
        const id = img ? img.getAttribute('alt') : (tileContent.querySelector('.product-tile-sku') ? tileContent.querySelector('.product-tile-sku').textContent.trim() : ''); // [attr.data-sfp-id] matches SFP Product ID. EIN [attr.data-sfp-ein] is being used only as a fallback here.

        const priceElement = tileContent.querySelector('.calculated-price span');
        const price = priceElement ? parseFloat(priceElement.textContent.replace(/[^0-9.-]+/g, '')) : 0; // [attr.data-sfp-price] or less likely [attr.data-sfp-cust-price]

        const lineItem = {
            catalogObjectId: id,
            catalogObjectType: "Product",
            price: price,
            quantity: quantity
        };

        const event = {
            interaction: {
                name: SalesforceInteractions.CartInteractionName.AddToCart,
                lineItem: lineItem,
            }
        };

        SalesforceInteractions.sendEvent(event);
        kele.IS.flags.log &amp;&amp; ez.dbg('Sending Add to Cart Event: ' + JSON.stringify(event), 'IS', 'Sitemap: tileClickHandler');
    }
};

// Add animation support to cashDom
try {
    if (window.jQuery) {
        Evergage.cashDom.fn.animate = jQuery.fn.animate;
        Evergage.cashDom.fn.queue = jQuery.fn.queue;
        Evergage.cashDom.fn.fadeIn = jQuery.fn.fadeIn;
        Evergage.cashDom.fn.fadeOut = jQuery.fn.fadeOut;
        Evergage.cashDom.fn.fadeTo = jQuery.fn.fadeTo;
        Evergage.cashDom.fn.fadeToggle = jQuery.fn.fadeToggle;
        Evergage.cashDom.fn.delay = jQuery.fn.delay;
    }
}
catch(e){}

function throttle(fn, delay = 400) {
    let lastCall = 0;
    return function(...args) {
        const now = new Date().getTime();
        if (now - lastCall &lt; delay) return;
        lastCall = now;
        return fn(...args);
    };
}

function waitForElement(selector, callback, iterations) {
    if (SalesforceInteractions.cashDom(selector).length) {
        callback();
    } else {
        setTimeout(function() {
            iterations = iterations - 1;
            waitForElement(selector, callback, iterations);
        }, 500);
    }
}

function sendSalesforceEvent({ eventName, interactionName, lineItem, customParams = {} }) {
    const event = {
        ...(eventName &amp;&amp; { name: eventName }),
        ...(interactionName || lineItem ? {
            interaction: {
                ...(interactionName &amp;&amp; { name: interactionName }),
                ...(lineItem &amp;&amp; { lineItem })
            }
        } : {}),
        ...customParams
    };

    if (kele.IS.flags.log) {
        ez.dbg('Sending event: ' + JSON.stringify(event), 'IS', 'sendSalesforceEvent');
    }
    SalesforceInteractions.sendEvent(event);
}

function eventPath(event) {
    if (kele.IS.flags.log) {
        ez.dbg('BEGIN', 'IS', 'eventPath(event)');
    }
    let path = [];
    let complete = true;
    let currentParentNode;
    let x = 1;
    if (event.target) {
        path.push(event.target);
        if (event.target.parentNode) {
            complete = false;
            currentParentNode = event.target.parentNode
        }
        while (!complete) {
            x++;
            path.push(currentParentNode)
            if (currentParentNode &amp;&amp; currentParentNode.parentNode) {
                currentParentNode = currentParentNode.parentNode
            }
            else {
                complete = true;
            }
            if (x === 20) {
                complete = true;
            }
        }
    }
    return path;
}
window.kele.IS.eventPath = eventPath;
/*Checking if we are on the product page. if we are,
 * try and parse the kelestate json file with needed data
 * create 4 object for product, pricing, user,and server request data and put it in to window.kele.IS
 */

//function for user attribute creation
function addUserAttribute(actionEvent, name, value) {
    if (kele.IS.flags.log) {
        ez.dbg('BEGIN', 'IS', 'addUserAttribute(actionEvent, name, value):' + JSON.stringify(actionEvent), + ", " + name + ", " + value);
    }
    if (value || value === false) {
        actionEvent.user = actionEvent.user || {};
        actionEvent.user.attributes = actionEvent.user.attributes || {};
        actionEvent.user.attributes[name] = value;
    }
    return actionEvent;
}

//function for Identity creation
function addUserIdentity(actionEvent, name, value) {
    if (kele.IS.flags.log) {
        ez.dbg('BEGIN', 'IS', 'addUserIdentity(actionEvent, name, value):' + JSON.stringify(actionEvent), + ", " + name + ", " + value);
    }
    if (value &amp;&amp; name) {
        actionEvent.user = actionEvent.user || {};
        actionEvent.user.identities = actionEvent.user.identities || {};
        actionEvent.user.identities[name] = value;
    }
    return actionEvent;
}

function updateUserAttributesAndIdentities(actionEvent) {
    if (kele.IS.flags.log) {ez.dbg('BEGIN', 'IS', 'Sitemap: updateUserAttributesAndIdentities()');}
    addUserAttributesAndIdentities(actionEvent);
}

function addUserAttributesAndIdentities(actionEvent) {
    if (kele.IS.flags.log) {ez.dbg('BEGIN', 'IS', 'Sitemap: addUserAttributesAndIdentities()');}

    if (navigator &amp;&amp; navigator.userAgent) {
        if (kele.IS.flags.log) {ez.dbg('addUserAttribute() - lastUserAgent: ' + ez.type, 'IS', 'Sitemap: addUserAttributesAndIdentities()');}
        addUserAttribute(actionEvent, 'lastUserAgent', navigator.userAgent);
    }
    if (kele.IS.flags.log) {ez.dbg('addUserAttribute() - ez_type: ' + ez.type, 'IS', 'Sitemap: addUserAttributesAndIdentities()');}
    addUserAttribute(actionEvent, 'ez_type', ez.type);
    if (kele.IS.flags.log) {ez.dbg('addUserAttribute() - ez_segment: ' + ez.segment, 'IS', 'Sitemap: addUserAttributesAndIdentities()');}
    addUserAttribute(actionEvent, 'ez_segment', ez.segment);
    if (kele.IS.flags.log) {ez.dbg('addUserAttribute() - ez_segmentGroup: ' + ez.segmentGroup, 'IS', 'Sitemap: addUserAttributesAndIdentities()');}
    addUserAttribute(actionEvent, 'ez_segmentGroup', ez.segmentGroup);
    if (kele.IS.flags.log) {ez.dbg('addUserAttribute() - ez_segment_refer: ' + ez.segmentReferer, 'IS', 'Sitemap: addUserAttributesAndIdentities()');}
    addUserAttribute(actionEvent, 'ez_segment_refer', ez.segmentRefer);
    if (kele.IS.flags.log) {ez.dbg('addUserAttribute() - ez_branch: ' + ez.branch, 'IS', 'Sitemap: addUserAttributesAndIdentities()');}
    addUserAttribute(actionEvent, 'ez_branch', ez.branch);
    if (kele.IS.flags.log) {ez.dbg('addUserAttribute() - ez_owner: ' + ez.owner, 'IS', 'Sitemap: addUserAttributesAndIdentities()');}
    addUserAttribute(actionEvent, 'ez_owner', ez.owner);
    if (ez.user &amp;&amp; ez.user.userName &amp;&amp; ez.user.userName !== '') {
        if (kele.IS.flags.log) {ez.dbg('addUserIdentity() - webUserName: ' + ez.user.userName, 'IS', 'Sitemap: addUserAttributesAndIdentities()');}
        addUserIdentity(actionEvent, 'webUserName', ez.user.userName);
        if (kele.IS.flags.log) {ez.dbg('addUserIdentity() - userName: ' + ez.user.userName, 'IS', 'Sitemap: addUserAttributesAndIdentities()');}
        addUserIdentity(actionEvent, 'userName', ez.user.userName);
    }
    if (ez.user &amp;&amp; ez.user.emailAddress &amp;&amp; ez.user.emailAddress !== '') {
        if (kele.IS.flags.log) {ez.dbg('addUserAttribute() - emailAddress: ' + ez.user.emailAddress, 'IS', 'Sitemap: addUserAttributesAndIdentities()');}
        addUserAttribute(actionEvent, 'emailAddress', ez.user.emailAddress);
        if (kele.IS.flags.log) {ez.dbg('addUserIdentity() - emailAddress: ' + ez.user.emailAddress, 'IS', 'Sitemap: addUserAttributesAndIdentities()');}
        addUserIdentity(actionEvent, 'emailAddress', ez.user.emailAddress);
    }
    if (ez.user &amp;&amp; ez.user.contactId &amp;&amp; ez.user.contactId !== '') {
        if (kele.IS.flags.log) {ez.dbg('addUserAttribute() - customerId: ' + ez.user.contactId, 'IS', 'Sitemap: addUserAttributesAndIdentities()');}
        addUserAttribute(actionEvent, 'customerId', ez.user.contactId);
        if (kele.IS.flags.log) {ez.dbg('addUserIdentity() - sfcrmContactId: ' + ez.user.contactId, 'IS', 'Sitemap: addUserAttributesAndIdentities()');}
        addUserIdentity(actionEvent, 'sfcrmContactId', ez.user.contactId);
        if (kele.IS.flags.log) {ez.dbg('addUserAttribute() - sfcrmContactId: ' + ez.user.contactId, 'IS', 'Sitemap: addUserAttributesAndIdentities()');}
        addUserAttribute(actionEvent, 'sfcrmContactId', ez.user.contactId);
    }
    if (ez.user &amp;&amp; ez.user.displayName &amp;&amp; ez.user.displayName !== '') {
        if (kele.IS.flags.log) {ez.dbg('addUserIdentity() - firstName: ' + ez.user.displayName, 'IS', 'Sitemap: addUserAttributesAndIdentities()');}
        addUserIdentity(actionEvent, 'firstName', ez.user.displayName);
    }
    if (kele.IS.flags.log) {ez.dbg('addUserAttribute() - ektronUserId: ' + ez.user.legacyUUID, 'IS', 'Sitemap: addUserAttributesAndIdentities()');}
    addUserAttribute(actionEvent, 'ektronUserId', ez.user.legacyUUID);
    if (kele.IS.flags.log) {ez.dbg('addUserAttribute() - salesforceUserId: ' + ez.user.UUID, 'IS', 'Sitemap: addUserAttributesAndIdentities()');}
    addUserAttribute(actionEvent, 'salesforceUserId', ez.user.UUID);
    if (ez.user &amp;&amp; ez.user.UUID &amp;&amp; ez.user.UUID !== '0') {
        if (kele.IS.flags.log) {ez.dbg('addUserAttribute() - salesforceUserIdPersistent: ' + ez.user.UUID, 'IS', 'Sitemap: addUserAttributesAndIdentities()');}
        addUserAttribute(actionEvent, 'salesforceUserIdPersistent', ez.user.UUID);
    }
    if (ez.user &amp;&amp; ez.user.migrationId &amp;&amp; ez.user.migrationId !== null &amp;&amp; ez.user.migrationId !== '') {
        if (kele.IS.flags.log) {ez.dbg('addUserAttribute() - salesforceMigrationId: ' + ez.user.migrationId.toString(), 'IS', 'Sitemap: addUserAttributesAndIdentities()');}
        addUserAttribute(actionEvent, 'salesforceMigrationId', ez.user.migrationId.toString());
    }
    if (ez.user &amp;&amp; ez.user.GPCN &amp;&amp; ez.user.GPCN !== '') {
        if (kele.IS.flags.log) {ez.dbg('addUserAttribute() - GPCN: ' + ez.user.GPCN, 'IS', 'Sitemap: addUserAttributesAndIdentities()');}
        addUserAttribute(actionEvent, 'GP_Customer_ID', ez.user.GPCN);
    }
    if (kele.IS.flags.log) {ez.dbg('addUserAttribute() - shoppingCart: ' + ez.cookie.get('shoppingCart'), 'IS', 'Sitemap: addUserAttributesAndIdentities()');}
    addUserAttribute(actionEvent, 'latestShoppingCartId', ez.cookie.get('shoppingCart'));
    const twoDay = (typeof ez.cookie.ez_pers.get('twoDayZipQualifies') !== 'undefined') ? ez.cookie.ez_pers.get('twoDayZipQualifies') : 'false';
    if (kele.IS.flags.log) {ez.dbg('addUserAttribute() - twoDay: ' + twoDay, 'IS', 'Sitemap: addUserAttributesAndIdentities()');}
    addUserAttribute(actionEvent, 'twoDay', twoDay);
}

function addToCartFromRiver(target, productDiv) {
    if (kele.IS.flags.log) {
        ez.dbg('BEGIN', 'IS', 'addToCartFromRiver(target, productDiv)');
    }
    if (target.getAttribute("class") === 'add-to-riverCart') {
        const content = event.path[4];
        let catalogObjectId = "";
        let quantity = 0;
        let price = 0;
        if (content.querySelector('.smartbuyriverImg img')) {
            catalogObjectId = content.querySelector('.smartbuyriverImg img').getAttribute('alt');
        } else if (content.querySelector('.riverImg img')) {
            catalogObjectId = content.querySelector('.riverImg img').getAttribute('alt');
        }
        quantity = Number(content.querySelector('input').value);
        price = content.querySelector("span[style='font-size: 0.7em; font-weight: bold; color: #4EADDE;']").innerHTML.replace(/[,$]/g, '');
        let lineItem = {
            catalogObjectType: 'Product',
            catalogObjectId,
            quantity,
            price
        };
        if (quantity &gt; 0) {
            const event = {
                interaction: {
                    name: SalesforceInteractions.CartInteractionName.AddToCart,
                    lineItem: lineItem,
                }
            };
            if (kele.IS.flags.log) {
                ez.dbg('Add to cart smart buy sendEvent: ' + JSON.stringify(event), 'IS', 'sendEvent');
            }
            SalesforceInteractions.sendEvent(event);
        }
    }
}
//Parse the slideout shopping cart container.
function parseSlideOutCartContainer() {
    if (kele.IS.flags.log) {
        ez.dbg('BEGIN', 'IS', 'parseSlideOutCartContainer()');
    }
    const cartItems = SalesforceInteractions.cashDom("#keleTab .cart-container .cart-item");
    let lineItems = [];

    if (cartItems) {
        for (let x = 0; x &lt; cartItems.length; x++) {
            const item = SalesforceInteractions.cashDom(cartItems[x]);
            //if (item &amp;&amp; item.querySelector("span.item-SKU").innerHTML &amp;&amp; item.querySelector("input") &amp;&amp; item.querySelector(".item-price-each").innerHTML) {
            if (item &amp;&amp; item.find('div.item-number').length &gt; 0 &amp;&amp; item.find('input.item-quantity').length &gt; 0 &amp;&amp; item.find(".item-price-each").length &gt; 0) {
                let exists = false;
                //const catalogObjectId = item.querySelector("span.item-SKU").innerHTML.toUpperCase();
                const catalogObjectId = item.find('div.item-number').text().trim();
                //const quantity = Number(item.querySelector("input").value);
                const quantity = Number(item.find('input.item-quantity').attr('value'));
                //const price = Number(item.querySelector(".item-price-each").innerHTML.trim().replace("$", ""));
                const price = parseFloat(/([^$\s]+)/g.exec(item.find(".item-price-each").text().trim()));
                const lineItem = {
                    catalogObjectId,
                    price,
                    quantity,
                    catalogObjectType: "Product"
                };
                for (let i = 0; i &lt; lineItems.length; i++) {
                    const lItem = lineItems[i];
                    if (lItem.catalogObjectId === catalogObjectId) {
                        exists = true;
                        lItem.quantity = lItem.quantity + quantity;
                    }
                }
                if (!exists) {
                    lineItems.push(lineItem);
                }
            }
        }
    }

    return lineItems;
}

//Parse the view cart shopping container.
function parseViewCartContainer() {
    if (kele.IS.flags.log) {
        ez.dbg('BEGIN', 'IS', 'parseViewCartContainer()');
    }

    let cartLineItems = [];

    SalesforceInteractions.cashDom(".kele-item").each((index, ele) =&gt; {
        let itemqty = SalesforceInteractions.cashDom(ele).find("input[type=number]").val();
        //Combine items with the same ID and add their totals [update the qty]
        if (itemqty &gt; 0) {
            let lineItem = {
                catalogObjectType: "Product",
                catalogObjectId: SalesforceInteractions.cashDom(ele).find(".link-no-style").text().trim(),
                /*price: parseFloat(/^.*?: \$(.*?) .*$/g.exec(SalesforceInteractions.cashDom(ele).find(".todays-price").text().trim())[1]),*/
                price: parseFloat(/([^$\s]+)/g.exec(SalesforceInteractions.cashDom(SalesforceInteractions.cashDom(".kele-item")).find(".todays-price").text().trim())[1]),
                quantity: parseInt(itemqty),
                currency: 'USD'
            };

            let match = false;
            cartLineItems.forEach((item) =&gt; {
                if (item.catalogObjectId === lineItem.catalogObjectId) {
                    item.quantity = item.quantity + lineItem.quantity;
                    match = true;
                }
            });
            if (!match) cartLineItems.push(lineItem);

        }
    });

    if (kele.IS.flags.log) {
        ez.dbg('CART ITEMS: ' + JSON.stringify(cartLineItems), 'IS', 'parseViewCartContainer()');
    }
    return cartLineItems;
}

function buildFunctionaList() {
    if (kele.IS.flags.log) {
        ez.dbg('BEGIN', 'IS', 'buildFunctionaList()');
    }
    let pageFuncAlts = window.kele.IS.product.Cross_Ref.Functional_Alternatives;
    let filtered = pageFuncAlts.filter((el) =&gt; {
        return el != null;
    });
    let result = filtered.map(a =&gt; a.item);
    return result;
}

function buildDirectList() {
    if (kele.IS.flags.log) {
        ez.dbg('BEGIN', 'IS', 'buildDirectList()');
    }
    let pageDirAlts = window.kele.IS.product.Cross_Ref.Direct_Alternatives;
    let filtered = pageDirAlts.filter((el) =&gt; {
        return el != null;
    });
    let result = filtered.map(a =&gt; a.item);
    return result;
}

function slideOutCartReplaceContents(sender) {
    if (kele.IS.flags.log) {
        ez.dbg('BEGIN', 'IS', 'slideOutCartReplaceContents(sender)');
    }
    try {
        const lineItems = parseSlideOutCartContainer();
        if (lineItems.length &gt; 0) {
            return setTimeout(function() {
                const event = {
                    interaction: {
                        name: SalesforceInteractions.CartInteractionName.ReplaceCart,
                        lineItems: lineItems
                    }
                };
                if (kele.IS.flags.log) {
                    ez.dbg('sendEvent: ' + JSON.stringify(event), 'IS', 'slideOutCartReplaceContents() - sendEvent');
                }
                SalesforceInteractions.sendEvent(event);
            }, 3000);
        }
    } catch (err) {
        if (kele.IS.flags.log) {
            ez.dbg('ERROR: ' + err, 'IS', 'Sitemap: slideOutCartReplaceContents');
        }
    }
}

function viewCartReplaceContents(sender) {
    if (kele.IS.flags.log) {
        ez.dbg('BEGIN', 'IS', 'viewCartReplaceContents(sender)');
    }

    try {
        const start = new Date();
        const interval = 1000;
        const timeoutPeriod = 30000;

        let wait = setInterval(function() {
            if (kele.IS.flags.log) {
                ez.dbg('sender: ' + sender + ' - setInterval', 'IS', 'viewCartReplaceContents(sender)');
            }

            let lineItems = [];
            const finalTotal = SalesforceInteractions.cashDom('.final-total').text().replace('$', '');     //document.querySelector('.final-total span strong').innerHTML.replace("$", "");
            const shoppingContainer = SalesforceInteractions.cashDom('#shopping-content-container').html();  //document.getElementById("shopping-content-container").innerHTML;
            let totalValue = 0;

            if (finalTotal === "-.--" &amp;&amp; shoppingContainer.indexOf("Loading your cart") === -1) {
                clearInterval(wait);
                totalValue = 0;
            } else if(finalTotal !== "-.--") {
                clearInterval(wait);
                totalValue = 0;
                lineItems = parseViewCartContainer();
                if (lineItems.length &gt; 0) {
                    const event = {
                        interaction: {
                            name: SalesforceInteractions.CartInteractionName.ReplaceCart,
                            lineItems: lineItems
                        }
                    };
                    if (kele.IS.flags.log) {
                        ez.dbg('sendEvent: ' + JSON.stringify(event), 'IS', 'viewCartReplaceContents(sender) - sendEvent');
                    }
                    SalesforceInteractions.sendEvent(event);
                }
            } else if (new Date() - start &gt; timeoutPeriod) {
                clearInterval(wait);
                totalValue = 0;
                if (kele.IS.flags.log) {
                    ez.dbg('TIMEOUT!!!', 'IS', 'viewCartReplaceContents(sender)');
                }
            }
        }, interval);
    } catch (err) {
        if (kele.IS.flags.log) {
            ez.dbg('ERROR: ' + err, 'IS', 'Sitemap: viewCartReplaceContents');
        }
    }
}

function buildCategoryObjects() {
    if (kele.IS.flags.log) {
        ez.dbg('BEGIN', 'IS', 'buildCategoryObjects()');
    }
    try {
        const cName = window.kele.IS.product.taxonomy.category.display.en.replace("&amp;a;", "&amp;");
        const scName = window.kele.IS.product.taxonomy.subCategory.display.en.replace("&amp;a;", "&amp;");
        const ser = window.kele.IS.product.FamilyName.replace("&amp;a;", "&amp;");
        const catName = "Category: " + cName;
        const subCat = "SubCategory: " + cName + " | " + scName;
        const series = "Series: " + cName + " | " + scName + " | " + ser;
        const testCategoriesVal = "Category: " + cName + " | " + "SubCategory: " + scName + " | " + "Series: " + ser;
        // const skuDescription = document.querySelectorAll(".product-overview-column .sku-name")[0].innerHTML; // unused
        return [testCategoriesVal];
    } catch (err) {
        kele.IS.flags.log &amp;&amp; ez.dbg('ERROR: ' + err, 'IS', 'buildCategoryObjects()');
        return [];
    }
}

async function getClientPricing(timeout = 6000) {
    const pricingStart = Date.now();
    return new Promise((resolve) =&gt; {
        function getPricing() {
            if (window.ng?.productPricing &amp;&amp; Object.keys(ng.productPricing).length !== 0) {
                kele.IS.flags.log &amp;&amp; ez.dbg('ng.productPricing (after delay): ' + JSON.stringify(ng.productPricing), 'IS','getClientPricing');
                clearInterval(pricingInterval);
                resolve(ng.productPricing);
            } else if (Date.now() - pricingStart &gt; timeout) {
                kele.IS.flags.log &amp;&amp; ez.dbg('ProductPricing parsing timed out at ' + performance.now(), 'IS','getClientPricing');
                clearInterval(pricingInterval);
                resolve({}); // Resolve with an empty object on timeout
            } else {
                kele.IS.flags.log &amp;&amp; ez.dbg('Checking for ng.productPricing... ' + performance.now(), 'IS','getClientPricing');
            }
        }

        const pricingInterval = setInterval(getPricing, 250)
    })
}

function resolveItemAttributes() {
    if (kele.IS.flags.log) {
        ez.dbg('BEGIN at ' + performance.now(), 'IS', 'resolveItemAttributes()');
    }
    return new Promise((resolve) =&gt; {
        const start = Date.now();
        const interval = 100;
        const timeoutPeriod = 5500;
        const defaultValue = {
            type: "Product",
            id: "DUMMY"
        };
        let wait = setInterval(async function() {
            const idDiv = SalesforceInteractions.cashDom("h3.sku-id-container span[itemprop='sku productID']");
            if (idDiv &amp;&amp; idDiv.length &gt; 0) {
                clearInterval(wait);
                if (
                    window.location.pathname.startsWith("/product/") &amp;&amp; 
                    SalesforceInteractions.cashDom(".product-detail").length &gt; 0
                ) {
                    try {
                        const productJson = JSON.parse(document.getElementById("kele-web-ng-state").innerHTML.replace(/&amp;q;/g, '"'));
                        let {
                            state_env_product_pricing: statePricing,
                            state_env_product_product: stateProduct
                        } = productJson;
                        let productInfo;

                        for (let key in stateProduct) {
                            productInfo = stateProduct[key]; 
                        }

                        if (kele.IS.flags.log) {
                            ez.dbg('productJson: ' + JSON.stringify(productJson), 'IS', 'resolveItemAttributes');
                            ez.dbg('StatePricing (as obtained from state_env): ' + JSON.stringify(statePricing), 'IS', 'resolveItemAttributes');
                        }

                        // Fallback from server side data to client side
                        if (ez.isNullOrUndefined(statePricing) &amp;&amp; window.ng &amp;&amp; ng.productPricing &amp;&amp; Object.keys(ng.productPricing).length !== 0) {
                            kele.IS.flags.log &amp;&amp; ez.dbg('ng.productPricing: ' + JSON.stringify(ng.productPricing), 'IS','resolveItemAttributes');
                            statePricing = ng.productPricing;
                        } else if (ez.isNullOrUndefined(statePricing)) {
                            kele.IS.flags.log &amp;&amp; ez.dbg('ng.productPricing (waiting...)', 'IS','resolveItemAttributes');
                            statePricing = await getClientPricing();
                        }

                        if (kele.IS.flags.log) {
                            ez.dbg('StatePricing (with client fallback if needed): ' + JSON.stringify(statePricing), 'IS', 'resolveItemAttributes');
                        }

                        window.kele.IS.product = productInfo;
                        window.kele.IS.eventPath = eventPath;
                        window.kele.IS.pricing = statePricing;
                        // window.kele.IS.user = productJson.state_user; // no such state
                        window.kele.IS.serverRequest = productJson.state_server_request;

                        if (kele.IS.flags.log) {
                            ez.dbg('IS Product: ' + JSON.stringify(window.kele.IS.product), 'IS', 'resolveItemAttributes');
                            ez.dbg('IS Pricing: ' + JSON.stringify(window.kele.IS.pricing), 'IS', 'resolveItemAttributes');
                        }
                    }
                        
                    catch (err) {
                        ez.dbg('ERROR - Get IS Product/Pricing: ' + err, 'IS', 'resolveItemAttributes');

                        window.kele.IS = {
                            ...window.kele.IS, 
                            eventPath: eventPath,
                            product: {},
                            pricing: {},
                            // user: {},
                            serverRequest: {}
                        };
                    }
                }
                const mpn = SalesforceInteractions.cashDom(".sku-id-container span[itemprop='mpn model']").text();
                const brand = SalesforceInteractions.cashDom("h3.sku-id-container span[itemprop='manufacturer brand']").text();

                const product = {
                    type: "Product",
                    id: idDiv.text().toUpperCase(),
                    attributes: {
                        MPN: mpn,
                        EIN: window.kele?.IS?.product?.Extended_Item_Number ?? SalesforceInteractions.cashDom('[data-ein]').first()?.attr('data-ein'),
                        description: SalesforceInteractions.cashDom(".item-short-description").text(),
                        imageUrl: document.querySelector(".sku-image")?.getAttribute("src") ?? '//assets.kele.com/content/wp-content/uploads/2025/01/Item_Image_Placeholder.svg',
                        name: mpn,
                        ektronID: window.kele?.IS?.product?.Ektron_ID ? String(window.kele.IS.product.Ektron_ID) : undefined,
                        brand: brand,
                        manufacturer: brand,
                        listPrice: !isNaN(Number(window.kele?.IS?.pricing?.ListPrice)) ? Number(window.kele.IS.pricing.ListPrice) : 0,
                        price: !isNaN(Number(window.kele?.IS?.pricing?.UnitPrice)) ? Number(window.kele.IS.pricing.UnitPrice) : 0,
                        leadTime: !isNaN(Number(window.kele?.IS?.pricing?.LeadTime)) ? Number(window.kele.IS.pricing.LeadTime) : undefined,
                        managed: window.kele?.IS?.product?.ManagedSku,
                        twoDay: !!window.kele?.IS?.product?.TwoDay,
                        smartBuy: !!window.kele?.IS?.product?.Programs?.SMART_BUY,
                        alternateAvailable: !!SalesforceInteractions.cashDom(".altMainRiver")?.length,
                        functionalAlternatives: window.kele?.IS?.product?.Cross_Ref?.Functional_Alternatives ? buildFunctionaList() : [],
                        directAlternatives: window.kele?.IS?.product?.Cross_Ref?.Direct_Alternatives ? buildDirectList() : [],
                        inventoryCount: !isNaN(Number(window.kele?.IS?.pricing?.Availability)) ? Number(window.kele.IS.pricing.Availability) : 0,
                        url: window.location.href
                    },
                    relatedCatalogObjects: {
                        Category: buildCategoryObjects(),
                        Brand: [brand],
                        Style: window.kele?.IS?.product?.BU ? [window.kele.IS.product.BU.toUpperCase()] : undefined
                    }
                }
                resolve(product);
                kele.IS.flags.log &amp;&amp; ez.dbg('Resolved product: ' + JSON.stringify(product), 'IS', 'resolveItemAttributes');
                
            } else if (Date.now() - start &gt; timeoutPeriod) {
                clearInterval(wait);
                kele.IS.flags.log &amp;&amp; ez.dbg('productID not found, resolving with default value: ' + JSON.stringify(defaultValue), 'IS', 'resolveItemAttributes');
                resolve(defaultValue);
            }

        }, interval);
    });
}

// Start of the site map code
SalesforceInteractions.init().then(() =&gt; {
    if (kele.IS.flags.log) {
        ez.dbg('BEGIN INIT', 'IS', 'Sitemap: init');
        SalesforceInteractions.setLoggingLevel("trace");
    }

    const event = {
        interaction: {
            name: "Update User Attributes and Identities"
        }
    };

    if (ez.user.hydrated) {
        kele.IS.global.isHydrated = true;
        if (kele.IS.flags.log) {
            ez.dbg('kele.IS.global.isHydrated', 'IS', 'Sitemap: init');
        }

        addUserAttributesAndIdentities(event);
        if (kele.IS.flags.log) {
            ez.dbg('sendEvent: ' + JSON.stringify(event), 'IS', 'sendEvent');
        }
        SalesforceInteractions.sendEvent(event);
    }
    else {
        if (kele.IS.flags.log) {
            ez.dbg('!kele.IS.global.isHydrated - waiting...', 'IS', 'Sitemap: init');
        }
        kele.IS.global.actionEvent = event;
        // KeleEZUserHydrated - Listen for EZ to finish hydrating
        document.addEventListener("KeleEZUserHydrated", (listenerEvent) =&gt; {
            kele.IS.global.isHydrated = true;
            if (kele.IS.flags.log) {
                ez.dbg('kele.IS.global.isHydrated - NOW hydrated', 'IS', 'Sitemap: init');
            }
            addUserAttributesAndIdentities(kele.IS.global.actionEvent);
            SalesforceInteractions.sendEvent(kele.IS.global.actionEvent);
        });
    }

    const config = {
        global: {
            // WARNING!!! - DO NOT SET SELECTORS GLOBALLY THAT DO NOT EXIST GLOBALLY!!!  EVERGAGE MAY FREEZE BROWSER!!!  (SEE GLOBAL - MESSAGING RIBBON)
            contentZones: [{
                name: "Global - Lightbox 1",
                selector: ".main-header"
            },
                {
                    name: "Global - Lightbox 2",
                    selector: ".footer"
                },
                {
                    name: "Global - Messaging Ribbon",
                    selector: "#promo-container"
                },
                {
                    name: "Admin - User Logging",
                    selector: ".two-day-truck"
                },
                {
                    name: "Global - Kele Logo",
                    selector: ".logo a"
                },
                {
                    name: "Global - Header Ribbon",
                    selector: "#kele-is-placement7"
                }
            ],
            //Global listeners for ... slide out shopping cart, chat, etc.
            listeners: [
                SalesforceInteractions.listener("click", ".kele-tab-toggles", (e) =&gt; {
                    e.path = window.kele.IS.eventPath(e);
                    if (e &amp;&amp; e.path &amp;&amp; e.path[1].getAttribute("id") === "cart-toggle") {
                        setTimeout(function() {
                            slideOutCartReplaceContents("cart toggle");
                        }, 3000);
                    }
                }),
                SalesforceInteractions.listener("click", "#keleTab .close-kele-slideout", () =&gt; {
                    slideOutCartReplaceContents("close tab");
                }),
                SalesforceInteractions.listener("click", ".empty-cart", () =&gt; {
                    const lineItems = parseSlideOutCartContainer();
                    lineItems.forEach(lineItem =&gt; {
                        const event = {
                            interaction: {
                                name: SalesforceInteractions.CartInteractionName.RemoveFromCart,
                                lineItem
                            }
                        };
                        if (kele.IS.flags.log) {
                            ez.dbg('sendEvent: ' + JSON.stringify(event), 'IS', 'sendEvent');
                        }
                        SalesforceInteractions.sendEvent(event);
                    });
                }),
                SalesforceInteractions.listener("click", ".update-item", () =&gt; {
                    slideOutCartReplaceContents("update item");
                }),
                SalesforceInteractions.listener("click", ".cart-container .remove-item", (e) =&gt; {
                    e.path = window.kele.IS.eventPath(e);
                    if (e &amp;&amp; e.path.length &gt; 3) {
                        const row = e.path[3];
                        let catalogObjectItem = row.querySelector("span.item-SKU");
                        let quantityItem = row.querySelector(".item-quantity input");
                        let priceItem = row.querySelector(".item-price");
                        if (catalogObjectItem &amp;&amp; quantityItem &amp;&amp; priceItem) {
                            const catalogObjectId = catalogObjectItem.innerHTML.toUpperCase();
                            const quantity = isNaN(Number(quantityItem.value)) ? 1 : Number(quantityItem.value);
                            const price = Number(priceItem.innerHTML.trim().replace("$", ""));
                            const event = {
                                interaction: {
                                    name: SalesforceInteractions.CartInteractionName.RemoveFromCart,
                                    lineItem: {
                                        catalogObjectId,
                                        price,
                                        quantity,
                                        catalogObjectType: "Product"
                                    }
                                }
                            };
                            if (kele.IS.flags.log) {
                                ez.dbg('sendEvent: ' + JSON.stringify(event), 'IS', 'sendEvent');
                            }
                            SalesforceInteractions.sendEvent(event);
                        }
                    }
                }),
                //chat Form listener to capture email address.
                SalesforceInteractions.listener("click", ".submitButton", () =&gt; {
                    const chatEmail = SalesforceInteractions.cashDom("#SuppliedEmail").val();
                    if (chatEmail) {
                        let event = {
                            interaction: {
                                name: "Chat Form",
                            },
                            user: {
                                identities: {
                                    emailAddress: chatEmail
                                },
                                attributes: {
                                    add_emailAddress_contactUs: chatEmail
                                }
                            }
                        };

                        if (kele.IS.flags.log) {
                            ez.dbg('sendEvent: ' + JSON.stringify(event), 'IS', 'sendEvent');
                        }
                        SalesforceInteractions.sendEvent(event);
                    }
                })
            ]
        }, //Object used to contain Global site object configuration
        //pageTypeDefaul is required as default when there is no pageType associated.
        pageTypeDefault: {
            name: "Default",
            interaction: {
                name: "Default Page",
            }
        },
        pageTypes: [
            // Array used to contain the page type object config
            {
                name: "Home",
                interaction: {
                    name: "Home Page",
                },
                isMatch: () =&gt; {
                    const validPaths = ["/content/home/", "/", "/content/home", "/content/", "/content", "/content/staging/home/", "/content/staging/home", "/content/home-test", "/content/home-test/"];
                    const isMatched = validPaths.includes(window.location.pathname);
                    isMatched &amp;&amp; kele.IS.flags.log &amp;&amp; ez.dbg('MATCHED', 'IS', 'Sitemap: Page - Home Page');
                    return isMatched;
                },
                contentZones: [{
                    name: "Home - Hero Banner",
                    selector: "#kele-is-hero-banner"
                },
                    {
                        name: "Home - Hero Section",
                        selector: ".js-sfp-hero"
                    },
                    {
                        name: "Home - Hero Left Column",
                        selector: ".js-sfp-hero-left"
                    },
                    {
                        name: "Home - Hero Slider",
                        selector: ".js-sfp-hero-slider"
                    },
                    {
                        name: "Home - Featured River",
                        selector: ".et_pb_row_15"
                    },
                    {
                        name: "Home - IS River 1",
                        selector: "#kele-is-placement1"
                    },
                    {
                        name: "Home - IS River 2",
                        selector: "#kele-is-placement2"
                    },
                    {
                        name: "Home - BAG Top",
                        selector: "#kele-is-placement3"
                    },
                    {
                        name: "Home - BAG Middle",
                        selector: "#kele-is-placement4"
                    },
                    {
                        name: "Home - SAG Top",
                        selector: "#kele-is-placement5"
                    },
                    {
                        name: "Home - BAG Bottom",
                        selector: "#kele-is-placement6"
                    }
                ],
                //Listener for add to cart on the homepage river
                listeners: [
                    //Hero banner
                    SalesforceInteractions.listener("click", ".js-sfp-hero", (e) =&gt; {
                        kele.IS.flags.log &amp;&amp; ez.dbg('Listener: Clicked - .js-sfp-hero' + e.target, 'IS', 'Sitemap: Page - Home Page');

                        const button = e.target.closest(".kele-hero__button");
                        if (!button) return;

                        // Find the closest ancestor with an `id` attribute within .js-sfp-hero and get the id
                        const parentId = button.closest(".js-sfp-hero [id]")?.id || null;

                        const buttonName = button.textContent.trim();
                        const buttonId = parentId ? `${buttonName} - ${parentId}` : `${buttonName}`;

                        const event = {
                            name: `Click ${buttonId} Button`,
                            interaction: {
                                name: `[Click] Home Page ${buttonId} Button`,
                            }
                        };

                        SalesforceInteractions.sendEvent(event);
                        kele.IS.flags.log &amp;&amp; ez.dbg('Sending click event: ' + JSON.stringify(event), 'IS', 'sendEvent');
                    })
                ]
            },
            {
                name: "Panel Shop",
                interaction: {
                    name: "[View] Panel Shop",
                },
                isMatch: () =&gt; {
                    if (window.location.pathname === "/content/services/custom-panel-shop") {
                        if (kele.IS.flags.log) {
                            ez.dbg('MATCHED', 'IS', 'Sitemap: Page - Custom Panel Shop Page');
                        }
                        return true;
                    }
                    else {
                        return false;
                    }
                }
            },
            {
                name: "Custom Panel Quote",
                interaction: {
                    name: "[View] Custom Panel Quote",
                },
                isMatch: () =&gt; {
                    if (window.location.pathname === "/content/forms/panel-quote-request") {
                        if (kele.IS.flags.log) {
                            ez.dbg('MATCHED', 'IS', 'Sitemap: Page - Custom Panel Quote Page');
                        }
                        return true;
                    }
                    else {
                        return false;
                    }
                }
            },
            {
                name: "Custom Panel Quote Submittal",
                interaction: {
                    name: "[View] Custom Panel Quote Submittal",
                },
                isMatch: () =&gt; {
                    if (window.location.pathname === "/content/panel-quote-submittal") {
                        if (kele.IS.flags.log) {
                            ez.dbg('MATCHED', 'IS', 'Sitemap: Page - Custom Panel Quote Submittal Page');
                        }
                        return true;
                    }
                    else {
                        return false;
                    }
                }
            },
            {
                name: "RMA Request",
                interaction: {
                    name: "[View] RMA Request",
                },
                isMatch: () =&gt; {
                    if (window.location.pathname === "/rma-request") {
                        if (kele.IS.flags.log) {
                            ez.dbg('MATCHED', 'IS', 'Sitemap: Page - RMA Request Page');
                        }
                        return true;
                    }
                    else {
                        return false;
                    }
                }
            },
            {
                name: "Special Offers Signup",
                interaction: {
                    name: "[View] Special Offers Signup",
                },
                isMatch: () =&gt; {
                    if (window.location.pathname === "/content/special-offers-signup") {
                        if (kele.IS.flags.log) {
                            ez.dbg('MATCHED', 'IS', 'Sitemap: Page - Special Offers Signup Page');
                        }
                        return true;
                    }
                    else {
                        return false;
                    }
                }
            },
            {
                name: "Kele History",
                interaction: {
                    name: "[View] Kele History",
                },
                isMatch: () =&gt; {
                    if (window.location.pathname === "/content/kele-history") {
                        if (kele.IS.flags.log) {
                            ez.dbg('MATCHED', 'IS', 'Sitemap: Page - Kele History Page');
                        }
                        return true;
                    }
                    else {
                        return false;
                    }
                }
            },
            {
                name: "Kele Difference",
                interaction: {
                    name: "[View] Kele Difference",
                },
                isMatch: () =&gt; {
                    if (window.location.pathname === "/content/value-prop-pages/kele-difference") {
                        if (kele.IS.flags.log) {
                            ez.dbg('MATCHED', 'IS', 'Sitemap: Page - Kele Difference Page');
                        }
                        return true;
                    }
                    else {
                        return false;
                    }
                }
            },
            {
                name: "Value-Added Services",
                interaction: {
                    name: "[View] Value-Added Services",
                },
                isMatch: () =&gt; {
                    if (window.location.pathname === "/content/value-added-services") {
                        if (kele.IS.flags.log) {
                            ez.dbg('MATCHED', 'IS', 'Sitemap: Page - Value-Added Services Page');
                        }
                        return true;
                    }
                    else {
                        return false;
                    }
                }
            },
            {
                name: "Project Services",
                interaction: {
                    name: "[View] Project Services",
                },
                isMatch: () =&gt; {
                    if (window.location.pathname === "/content/kele-project-services") {
                        if (kele.IS.flags.log) {
                            ez.dbg('MATCHED', 'IS', 'Sitemap: Page - Project Services Page');
                        }
                        return true;
                    }
                    else {
                        return false;
                    }
                }
            },
            {
                name: "Kele Calculator",
                interaction: {
                    name: "[View] Kele Calculator",
                },
                isMatch: () =&gt; {
                    if (window.location.pathname === "/content/kele-calculator") {
                        if (kele.IS.flags.log) {
                            ez.dbg('MATCHED', 'IS', 'Sitemap: Page - Kele Calculator Page');
                        }
                        return true;
                    }
                    else {
                        return false;
                    }
                }
            },/*
            // TODO - Update after replaced in Angular
            {
                name: "Bulk Order",
                interaction: {
                    name: "[View] Bulk Order",
                },
                isMatch: () =&gt; {
                    if (window.location.pathname === "/shopping/bulkorder.aspx") {
                        if (kele.IS.flags.log) {
                            ez.dbg('MATCHED', 'IS', 'Sitemap: Page - Bulk Order Page');
                        }
                        return true;
                    }
                    else {
                        return false;
                    }
                }
            },*/
            {
                name: "Page Not Found",
                interaction: {
                    name: "[View] Page Not Found",
                },
                isMatch: () =&gt; {
                    if (window.location.pathname === "/pagenotfound") {
                        if (kele.IS.flags.log) {
                            ez.dbg('MATCHED', 'IS', 'Sitemap: Page - Page Not Found Page');
                        }
                        return true;
                    }
                    else {
                        return false;
                    }
                }
            },
            {
                name: "System Unavailable",
                interaction: {
                    name: "[View] System Unavailable",
                },
                isMatch: () =&gt; {
                    if (window.location.pathname === "/systemunavailable") {
                        if (kele.IS.flags.log) {
                            ez.dbg('MATCHED', 'IS', 'Sitemap: Page - System Unavailable Page');
                        }
                        return true;
                    }
                    else {
                        return false;
                    }
                }
            },
            {
                name: "Order History",
                interaction: {
                    name: "[View] Order History",
                },
                isMatch: () =&gt; {
                    if (window.location.pathname === "/accounts/my-account/order-history") {
                        if (kele.IS.flags.log) {
                            ez.dbg('MATCHED', 'IS', 'Sitemap: Page - Order History Page');
                        }
                        return true;
                    }
                    else {
                        return false;
                    }
                },
                contentZones: [{
                    name: "Order History - Product Recommendations",
                    selector: "#kele-is-placement1"
                }]
            },
            {
                name: "Product Categories",
                interaction: {
                    name: "[View] Product Categories",
                },
                isMatch: () =&gt; {
                    if (window.location.pathname === "/product/categories") {
                        if (kele.IS.flags.log) {
                            ez.dbg('MATCHED', 'IS', 'Sitemap: Page - Product Categories Page');
                        }
                        return true;
                    }
                    else {
                        return false;
                    }
                }
            },
            {
                name: "Sign In",
                interaction: {
                    name: "[View] Sign In",
                },
                isMatch: () =&gt; {
                    if (window.location.pathname === "/accounts/login") {
                        if (kele.IS.flags.log) {
                            ez.dbg('MATCHED', 'IS', 'Sitemap: Page - Sign In Page');
                        }
                        return true;
                    }
                    else {
                        return false;
                    }
                },
                listeners: [
                    SalesforceInteractions.listener(
                        "click",
                        ".btn-submit",
                        () =&gt; {
                            const webFormuserName = SalesforceInteractions.cashDom(
                                "#login-username"
                            ).val();
                            if (webFormuserName) {
                                let event = {
                                    interaction: {
                                        name: "[Sign In] Submit"
                                    },
                                    user: {
                                        identities: {
                                            webUserName: webFormuserName,
                                            userName: webFormuserName
                                        },
                                    },
                                };

                                if (kele.IS.flags.log) {
                                    ez.dbg('sendEvent: ' + JSON.stringify(event), 'IS', 'sendEvent');
                                }
                                SalesforceInteractions.sendEvent(event);
                            }
                        }
                    )
                ]
            },
            {
                name: "Sign Out",
                interaction: {
                    name: "[View] Sign Out",
                },
                isMatch: () =&gt; {
                    if (window.location.pathname === "/accounts/logout") {
                        if (kele.IS.flags.log) {
                            ez.dbg('MATCHED', 'IS', 'Sitemap: Page - Sign Out Page');
                        }
                        return true;
                    }
                    else {
                        return false;
                    }
                }
            },
            {
                name: "Register",
                interaction: {
                    name: "[View] Register",
                },
                isMatch: () =&gt; {
                    if (window.location.pathname === "/accounts/register") {
                        if (kele.IS.flags.log) {
                            ez.dbg('MATCHED', 'IS', 'Sitemap: Page - Register Page');
                        }
                        return true;
                    }
                    else {
                        return false;
                    }
                },
                listeners: [
                    //Account Registration Form
                    SalesforceInteractions.listener(
                        "click",
                        ".btn-register",
                        (event) =&gt; {
                            event.path = window.kele.IS.eventPath(event);
                            if (event.path[0].getAttribute('class') === 'btn btn-register') {
                                const formemail = SalesforceInteractions.cashDom(
                                    "#register-email"
                                ).val();
                                if (formemail) {
                                    let event = {
                                        interaction: {
                                            name: "[Register] Submit",
                                        },
                                        user: {
                                            identities: {
                                                emailAddress: formemail,
                                                webUserName: formemail,
                                                userName: formemail
                                            },
                                            attributes: {
                                                firstName: SalesforceInteractions.cashDom(
                                                    "#register-firstname"
                                                ).val(),
                                                lastName: SalesforceInteractions.cashDom(
                                                    "#register-lastname"
                                                ).val(),
                                                businessType__c: SalesforceInteractions.cashDom(
                                                    "#register-businesstype"
                                                ).text()
                                            }
                                        }
                                    };

                                    if (kele.IS.flags.log) {
                                        ez.dbg('sendEvent: ' + JSON.stringify(event), 'IS', 'sendEvent');
                                    }
                                    SalesforceInteractions.sendEvent(event);
                                }
                            }
                        }
                    )
                ]
            },
            {
                name: "Register Confirmation",
                interaction: {
                    name: "[View] Register Confirmation",
                },
                isMatch: () =&gt; {
                    if (window.location.pathname === "/accounts/register/confirm") {
                        if (kele.IS.flags.log) {
                            ez.dbg('MATCHED', 'IS', 'Sitemap: Page - Register Confirmation Page');
                        }
                        return true;
                    }
                    else {
                        return false;
                    }
                }
            },
            {
                name: "View Cart",
                interaction: {
                    name: "[View] View Cart",
                },
                isMatch: () =&gt; {
                    if (window.location.pathname == "/shopping/viewcart") {
                        if (kele.IS.flags.log) {
                            ez.dbg('MATCHED', 'IS', 'Sitemap: Page - View Cart Page');
                        }
                        return SalesforceInteractions.util.resolveWhenTrue.bind(() =&gt; {
                            if (document.getElementById("shopping-content-container")) {
                                if (kele.IS.flags.log) {
                                    ez.dbg('MATCHED (bind)', 'IS', 'Sitemap: Page - View Cart Page');
                                }
                                viewCartReplaceContents('View Cart - Replace Cart');
                                return true;
                            }
                            else {
                                return false;
                            }
                        }, undefined, 10000);
                    } else {
                        return false;
                    }
                },
                contentZones: [{
                    name: "View Cart - Right Column",
                    selector: ".tip-kelesaver"
                },
                    {
                        name: "View Cart - Bottom Center Banner",
                        selector: "#kele-is-placement1"
                    },
                    {
                        name: "View Cart - Bottom Right Column",
                        selector: "#kele-is-placement2"
                    }],
                listeners: [ 
                    SalesforceInteractions.listener("click", "#shopping-content-container .remove-item", (e) =&gt; {
                        if (kele.IS.flags.log) {
                            ez.dbg('Listener: Click - #shopping-content-container .remove-item', 'IS', 'Sitemap: Page - View Cart Page');
                        }
                        e.path = window.kele.IS.eventPath(e);
                        if (e &amp;&amp; e.path.length &gt; 1) {
                            const row = e.path[1];
                            let catalogObjectItem = row.querySelector('span strong a');
                            let quantityItem = row.querySelector("input");
                            let priceItem = row.querySelector(".kele-item-col-2 span strong");
                            if (catalogObjectItem &amp;&amp;
                                quantityItem &amp;&amp;
                                priceItem) {
                                const catalogObjectId = catalogObjectItem.innerHTML.toUpperCase();
                                const quantity = Number(quantityItem.value);
                                const price = Number(priceItem.innerHTML.trim().replace("$", "").replace("Today's Price: ", "").replace(" ea.", ""));
                                const event = {
                                    interaction: {
                                        name: SalesforceInteractions.CartInteractionName.RemoveFromCart,
                                        lineItem: {
                                            catalogObjectId,
                                            price,
                                            quantity,
                                            catalogObjectType: "Product"
                                        }
                                    }
                                };

                                if (kele.IS.flags.log) {
                                    ez.dbg('sendEvent: ' + JSON.stringify(event), 'IS', 'sendEvent');
                                }
                                SalesforceInteractions.sendEvent(event);
                            }
                        }
                    }),
                ]
            },
            {
                name: "Checkout",
                interaction: {
                    name: "[View] Checkout",
                },
                isMatch: () =&gt; {
                    if ((window.location.pathname.indexOf('/shopping/checkout') === 0) &amp;&amp; (SalesforceInteractions.cashDom('div.checkout-complete-container.checkout-success').length === 0)) {
                        if (kele.IS.flags.log) {
                            ez.dbg('MATCHED PATHNAME (' + window.location.pathname + ')', 'IS', 'Sitemap: Page - Checkout');
                        }

                            // todo: move the following block under listeners?
                            //listen for Purchase events
                            document.addEventListener("KeleNGPurchaseSuccess", (event) =&gt; {
                                if (kele.IS.flags.log) {
                                    ez.dbg('EVENT FIRED: KeleNGPurchaseSuccess', 'IS', 'Sitemap: [View] Checkout / Order Confirmation - Purchase Event Trigger');
                                }

                                const eventPurchaseSuccess = {
                                    name: "Purchase Success",
                                    interaction: {
                                        name: "[Purchase] Success",
                                    }
                                };

                                if (kele.IS.flags.log) {
                                    ez.dbg('sendEvent: ' + JSON.stringify(eventPurchaseSuccess), 'IS', 'sendEvent');
                                }
                                SalesforceInteractions.sendEvent(eventPurchaseSuccess);
                            });

                            document.addEventListener("KeleNGPurchaseError", (event) =&gt; {
                                if (kele.IS.flags.log) {
                                    ez.dbg('EVENT FIRED: KeleNGPurchaseError', 'IS', 'Sitemap: [View] Checkout / Order Confirmation - Purchase Event Trigger');
                                }

                                const eventPurchaseError = {
                                    name: "Purchase Error",
                                    interaction: {
                                        name: "[Purchase] Error",
                                    }
                                };

                                if (kele.IS.flags.log) {
                                    ez.dbg('sendEvent: ' + JSON.stringify(eventPurchaseError), 'IS', 'sendEvent');
                                }
                                SalesforceInteractions.sendEvent(eventPurchaseError);
                            });

                            document.addEventListener("KeleNGPurchaseGA4", (event) =&gt; {
                                if (kele.IS.flags.log) {
                                    ez.dbg('EVENT FIRED: KeleNGPurchaseGA4', 'IS', 'Sitemap: [View] Checkout / Order Confirmation - Purchase Event Trigger');
                                }

                                const eventPurchaseGA4 = {
                                    name: "Purchase GA4 Success",
                                    interaction: {
                                        name: "[Purchase] GA4 Tracking Success",
                                    }
                                };

                                if (kele.IS.flags.log) {
                                    ez.dbg('sendEvent: ' + JSON.stringify(eventPurchaseGA4), 'IS', 'sendEvent');
                                }
                                SalesforceInteractions.sendEvent(eventPurchaseGA4);

                                waitForElement('div.checkout-complete-container.checkout-success', function() {
                                    // Artificially signal route change since confirmation isn't triggering the event
                                    ez.dispatchNewEvent("KeleNGAfterRouteChange");
                                }, 60);
                            });
                            document.addEventListener("KeleNGQuoteSuccess", (event) =&gt; {
                                if (kele.IS.flags.log) {
                                    ez.dbg('EVENT FIRED: KeleNGQuoteSuccess', 'IS', 'Sitemap: [View] Checkout / Order Confirmation - Quote Event Trigger');
                                }

                                const eventQuoteSuccess = {
                                    name: "Quote Success",
                                    interaction: {
                                        name: "[Quote] Success",
                                    }
                                };

                                if (kele.IS.flags.log) {
                                    ez.dbg('sendEvent: ' + JSON.stringify(eventQuoteSuccess), 'IS', 'sendEvent');
                                }
                                SalesforceInteractions.sendEvent(eventQuoteSuccess);
                            });
                        return true;
                    }
                    else {
                        return false;
                    }
                },
                contentZones: [{
                    name: "Checkout - Left Column",
                    selector: ".btn-login"
                }],
                listeners: [
                    SalesforceInteractions.listener("click", ".login-container button.btn-complete.kele-button", (e) =&gt; {
                        let btnName = SalesforceInteractions.cashDom(e.target).text().trim().toUpperCase();

                        if(btnName === "CONTINUE AS A GUEST") {
                            if (kele.IS.flags.log) {
                                ez.dbg('Listener: Click - CONTINUE AS A GUEST', 'IS', 'Sitemap: Page - Checkout');
                            }
                            const event = {
                                name: "Click CONTINUE AS A GUEST at Checkout",
                                interaction: {
                                    name: "[Click] CONTINUE AS A GUEST at Checkout",
                                }
                            };

                            if (kele.IS.flags.log) {
                                ez.dbg('sendEvent: ' + JSON.stringify(event), 'IS', 'sendEvent');
                            }
                            SalesforceInteractions.sendEvent(event);
                        }
                    })
                ]
            },
            {
                name: "Order Confirmation",
                isMatch: () =&gt; {
                    if ((window.location.pathname.indexOf('/shopping/checkout') === 0) &amp;&amp; (SalesforceInteractions.cashDom('div.checkout-complete-container.checkout-success').length &gt; 0)) {
                        if (kele.IS.flags.log) {
                            ez.dbg('MATCHED', 'IS', 'Sitemap: Page - Order Confirmation Page');
                        }
                        return SalesforceInteractions.util.resolveWhenTrue.bind(() =&gt; {
                            if (kele.IS.flags.log) {
                                ez.dbg('MATCHED (bind)', 'IS', 'Sitemap: Page - Order Confirmation Page');
                            }

                            const event = {
                                name: "[View] Order Confirmation",
                                interaction: {
                                    name: "[View] Order Confirmation",
                                }
                            };

                            if (kele.IS.flags.log) {
                                ez.dbg('sendEvent: ' + JSON.stringify(event), 'IS', 'sendEvent');
                            }
                            SalesforceInteractions.sendEvent(event);

                            return window.ezDL ? true : false;
                        }, undefined, 5500);
                    } else {
                        return false;
                    }
                },
                interaction: {
                    name: SalesforceInteractions.OrderInteractionName.Purchase,
                    order: () =&gt; {
                        if (kele.IS.flags.log) {
                            ez.dbg('Interaction: SalesforceInteractions.OrderInteractionName.Purchase', 'IS', 'Sitemap: Page - Order Confirmation Page');
                        }
                        try {
                            //TODO - Remove this timer hack
                            return new Promise((resolve) =&gt; {
                                if (kele.IS.flags.log) {
                                    ez.dbg('Interaction: SalesforceInteractions.OrderInteractionName.Purchase - return new Promise', 'IS', 'Sitemap: Page - Order Confirmation Page');
                                }
                                const start = new Date();
                                const interval = 100;
                                const timeoutPeriod = 5500;
                                let wait = setInterval(function() {
                                        clearInterval(wait);
                                        if (window.ezDL) {
                                            let order = {};
                                            let orderInfo = window.ezDL;
                                            let purchaseType = 'Purchase';
                                            let gaPurchaseObject = {};
                                            let purchaseObject = {};
                                            let id = "";
                                            let shipping = 0;
                                            let tax = 0;
                                            let revenue = 0;
                                            let totalLineValue = 0;
                                            let totalValue = 0;

                                            if (document.location.hostname !== 'www.kele.com') {
                                                purchaseType = 'PurchaseTest';
                                            }

                                            gaPurchaseObject = orderInfo.find(obj =&gt; {
                                                return obj.event === purchaseType;
                                            });

                                            if (kele.IS.flags.log) {
                                                ez.dbg(purchaseType + ': ' + JSON.stringify(gaPurchaseObject), 'IS', 'Sitemap: Page - Order Confirmation Page');
                                            }

                                            if (gaPurchaseObject) {
                                                if (gaPurchaseObject.ecommerce &amp;&amp; gaPurchaseObject.ecommerce.purchase) {
                                                    purchaseObject = gaPurchaseObject.ecommerce.purchase;
                                                }
                                                else if (gaPurchaseObject.ecommerce &amp;&amp; gaPurchaseObject.ecommerce.purchase_test) {
                                                    purchaseObject = gaPurchaseObject.ecommerce.purchase_test;
                                                }

                                                if (purchaseObject.actionField &amp;&amp; purchaseObject.actionField.id) {
                                                    id = purchaseObject.actionField.id;
                                                }

                                                if (id) {
                                                    shipping = ((purchaseObject.actionField.shipping) === '--') ? 0 : parseFloat(purchaseObject.actionField.shipping);
                                                    tax = ((purchaseObject.actionField.tax) === '--') ? 0 : parseFloat(purchaseObject.actionField.tax);
                                                    revenue = ((purchaseObject.actionField.revenue) === '--') ? 0 : parseFloat(purchaseObject.actionField.revenue);;

                                                    order.id = id;
                                                    let lineItems = [];
                                                    //syntax change: removing optional chaining and replacing with if block
                                                    if (purchaseObject.products) {
                                                        purchaseObject.products.forEach(product =&gt; {
                                                            const lineItem = {
                                                                catalogObjectId: product.id.toUpperCase(),
                                                                price: Number(product.price),
                                                                quantity: product.quantity,
                                                                catalogObjectType: "Product"
                                                            };
                                                            totalLineValue = totalLineValue + (lineItem.quantity * lineItem.price);
                                                            let match = false;
                                                            lineItems.forEach((item) =&gt; {
                                                                if (item.catalogObjectId === lineItem.catalogObjectId) {
                                                                    item.quantity = item.quantity + lineItem.quantity;
                                                                    match = true;
                                                                }
                                                            });
                                                            if (!match) lineItems.push(lineItem);
                                                        });

                                                        order.lineItems = lineItems;

                                                        totalLineValue = totalLineValue.toFixed(2);  // Keeping, but currently not used as it doesn't factor in discounts, tax, and shipping

                                                        // Total estimated order value including discounts, tax, and shipping
                                                        order.totalValue = (revenue + shipping + tax).toFixed(2);
                                                    }

                                                } else {
                                                    order.id = Math.random().toString();
                                                    order.lineItems = [];
                                                    // Example: {catalogObjectId: "dummy", catalogObjectType: "Product", price: 0.00, quantity: 1}
                                                }

                                                if (id &amp;&amp; (id.startsWith('WG') || id.startsWith('BG'))) {
                                                    const eventGC = {
                                                        name: 'Guest Checkout',
                                                        interaction: {
                                                            name: "[Completed] Guest Checkout",
                                                        }
                                                    };

                                                    if (kele.IS.flags.log) {ez.dbg('addUserAttribute() - lastOrderId: ' + id, 'IS', 'Sitemap: Page - Order Confirmation Page');}
                                                    addUserAttribute(eventGC, 'lastOrderId', id);

                                                    let guestEmail = '';

                                                    if (SalesforceInteractions.cashDom('.confirmation-purchaser-email').length &gt; 0) {
                                                        guestEmail = SalesforceInteractions.cashDom('.confirmation-purchaser-email').text().trim();
                                                    }
                                                    else if(SalesforceInteractions.cashDom('div.checkout-complete-info &gt; div:nth-child(8) &gt; div.section-text &gt; p:nth-child(3)').length &gt; 0) {
                                                        guestEmail = SalesforceInteractions.cashDom('div.checkout-complete-info &gt; div:nth-child(8) &gt; div.section-text &gt; p:nth-child(3)').text().trim();
                                                    }

                                                    if (kele.IS.flags.log) {
                                                        ez.dbg('GUEST EMAIL: ' + guestEmail, 'IS', 'Sitemap: Page - Order Confirmation Page');
                                                    }

                                                    if (guestEmail !== '') {
                                                        if (kele.IS.flags.log) {ez.dbg('addUserAttribute() - emailAddress: ' + guestEmail, 'IS', 'Sitemap: addUserAttributesAndIdentities()');}
                                                        addUserAttribute(eventGC, 'emailAddress', guestEmail);
                                                        if (kele.IS.flags.log) {ez.dbg('addUserIdentity() - emailAddress: ' + guestEmail, 'IS', 'Sitemap: addUserAttributesAndIdentities()');}
                                                        addUserIdentity(eventGC, 'emailAddress', guestEmail);
                                                    }

                                                    if (kele.IS.flags.log) {
                                                        ez.dbg('sendEvent: ' + JSON.stringify(eventGC), 'IS', 'sendEvent');
                                                    }
                                                    SalesforceInteractions.sendEvent(eventGC);
                                                }
                                                else if (id) {
                                                    const eventSIC = {
                                                        name: 'Signed In Checkout',
                                                        interaction: {
                                                            name: "[Completed] Signed In Checkout",
                                                        }
                                                    };

                                                    if (kele.IS.flags.log) {ez.dbg('addUserAttribute() - lastOrderId: ' + id, 'IS', 'Sitemap: Page - Order Confirmation Page');}
                                                    addUserAttribute(eventSIC, 'lastOrderId', id);

                                                    if (kele.IS.flags.log) {
                                                        ez.dbg('sendEvent: ' + JSON.stringify(eventSIC), 'IS', 'sendEvent');
                                                    }
                                                    SalesforceInteractions.sendEvent(eventSIC);
                                                }


                                                resolve(order);
                                            }
                                        } else if (new Date() - start &gt; timeoutPeriod) {
                                            clearInterval(wait);
                                            resolve(defaultValue);
                                        }
                                    },
                                    interval);
                            });
                        } catch (err) {
                            throw err;
                        }
                    }
                }
            },
            {
                name: "My Account",
                interaction: {
                    name: "[View] My Account",
                },
                isMatch: () =&gt; {
                    if (window.location.pathname === "/accounts/my-account"){
                        if (kele.IS.flags.log) {
                            ez.dbg('MATCHED', 'IS', 'Sitemap: Page - My Account Page');
                        }
                        return true;
                    }
                    else {
                        return false;
                    }
                }
            },
            {
                name: "Shipping Policy",
                interaction: {
                    name: "[View] Shipping Policy"
                },
                isMatch: () =&gt; {
                    if (window.location.pathname === "/content/kele-shipping-policy"){
                        if (kele.IS.flags.log) {
                            ez.dbg('MATCHED', 'IS', 'Sitemap: Page - Shipping Policy Page');
                        }
                        return true;
                    }
                    else {
                        return false;
                    }
                }
            },
            {
                name: "Contact Us",
                interaction: {
                    name: "[View] Contact Us"
                },
                isMatch: () =&gt; {
                    if (window.location.pathname === "/content/contact-kele"){
                        if (kele.IS.flags.log) {
                            ez.dbg('MATCHED', 'IS', 'Sitemap: Page - Contact Us Page');
                        }
                        return true;
                    }
                    else {
                        return false;
                    }
                }
            },
            {
                name: "Project Portal",
                interaction: {
                    name: "[View] Project Portal"
                },
                isMatch: () =&gt; {
                    if (window.location.pathname === "/portal/projects"){
                        if (kele.IS.flags.log) {
                            ez.dbg('MATCHED', 'IS', 'Sitemap: Page - Project Portal Page');
                        }
                        return true;
                    }
                    else {
                        return false;
                    }
                }
            },
            {
                name: "Meta Portal",
                interaction: {
                    name: "[View] Meta Portal"
                },
                isMatch: () =&gt; {
                    if (window.location.pathname === "/portal/meta/projects"){
                        if (kele.IS.flags.log) {
                            ez.dbg('MATCHED', 'IS', 'Sitemap: Page - Meta Portal Page');
                        }
                        return true;
                    }
                    else {
                        return false;
                    }
                }
            },
            {
                name: "Credit Request",
                interaction: {
                    name: "[View] Credit Request"
                },
                isMatch: () =&gt; {
                    if (window.location.pathname === "/kele-credit-request"){
                        if (kele.IS.flags.log) {
                            ez.dbg('MATCHED', 'IS', 'Sitemap: Page - Credit Request Page');
                        }
                        return true;
                    }
                    else {
                        return false;
                    }
                }
            },
            {
                name: "Blog Posts",
                interaction: {
                    name: "[View] Blog Posts"
                },
                isMatch: () =&gt; {
                    if (window.location.pathname === "/content/blog"){
                        if (kele.IS.flags.log) {
                            ez.dbg('MATCHED', 'IS', 'Sitemap: Page - Blog Posts Page');
                        }
                        return true;
                    }
                    else {
                        return false;
                    }
                }
            },
            {
                name: "Blog Post",
                isMatch: () =&gt; {
                    if (window.location.pathname.indexOf("/content/blog/") &gt; -1) {
                        if (kele.IS.flags.log) {
                            ez.dbg('MATCHED', 'IS', 'Sitemap: Page - Blog Post Page');
                        }
                        return SalesforceInteractions.util.resolveWhenTrue.bind(() =&gt; {
                            if (kele.IS.flags.log) {
                                ez.dbg('MATCHED (bind)', 'IS', 'Sitemap: Page - Blog Post Page');
                            }
                            const meta = document.querySelector("meta[property='og:type']")
                            if (meta) {
                                return meta.getAttribute("content") === 'article';
                            } else {
                                return false;
                            }
                        })
                    } else {
                        return false;
                    }
                },
                interaction: {
                    name: SalesforceInteractions.CatalogObjectInteractionName
                        .ViewCatalogObject,
                    catalogObject: {
                        type: "Blog",
                        id: window.location.pathname.split("/")[window.location.pathname.split("/").length - 1],
                        attributes: {
                            name: () =&gt; {
                                return SalesforceInteractions.DisplayUtils.pageElementLoaded(".entry-title").then(el =&gt; {
                                    const title = el.innerHTML;
                                    return title;
                                })
                            },
                            description: () =&gt; {
                                return SalesforceInteractions.DisplayUtils.pageElementLoaded("meta[name='description']").then(el =&gt; {
                                    return el.getAttribute("content");
                                })
                            },
                            imageUrl: () =&gt; {
                                return SalesforceInteractions.DisplayUtils.pageElementLoaded("meta[name='ogimage']").then(el =&gt; {
                                    return el.getAttribute("content");
                                })
                            },
                            url: window.location.href
                        }
                    }
                }
            },
            {
                name: "Employment",
                interaction: {
                    name: "[View] Employment"
                },
                isMatch: () =&gt; {
                    if (window.location.pathname === "/content/kele-employment"){
                        if (kele.IS.flags.log) {
                            ez.dbg('MATCHED', 'IS', 'Sitemap: Page - Kele Employment Page');
                        }
                        return true;
                    }
                    else {
                        return false;
                    }
                }
            },
            {
                name: "Schools",
                interaction: {
                    name: "[View] Schools"
                },
                isMatch: () =&gt; {
                    const validPaths = ["/content/schools/", "/content/schools", "/content/education/", "/content/education"];
                    if (validPaths.includes(window.location.pathname)){
                        if (kele.IS.flags.log) {
                            ez.dbg('MATCHED', 'IS', 'Sitemap: Page - Schools Page');
                        }
                        return true;
                    }
                    else {
                        return false;
                    }
                },
                contentZones: [
                    {
                        name: "Featured Products 1",
                        selector: "#kele-sfp-river1"
                    },
                    {
                        name: "Featured Products 2",
                        selector: "#kele-sfp-river2"
                    },
                    {
                        name: "Featured Products 3",
                        selector: "#kele-sfp-river3"
                    },
                ]
            },
            {
                name: "Construction",
                interaction: {
                    name: "[View] Construction"
                },
                isMatch: () =&gt; {
                    const validPaths = ["/content/construction/", "/content/construction"];
                    if (validPaths.includes(window.location.pathname)){
                        if (kele.IS.flags.log) {
                            ez.dbg('MATCHED', 'IS', 'Sitemap: Page - Construction Page ');
                        }
                        return true;
                    }
                    else {
                        return false;
                    }
                },
                contentZones: [
                    {
                        name: "Featured Products 1",
                        selector: "#kele-sfp-river1"
                    },
                    {
                        name: "Featured Products 2",
                        selector: "#kele-sfp-river2"
                    },
                ]
            },
            {
                name: "Data Centers",
                interaction: {
                    name: "[View] Data Centers"
                },
                isMatch: () =&gt; {
                    const validPaths = ["/content/data-centers/", "/content/data-centers"];
                    if (validPaths.includes(window.location.pathname)){
                        if (kele.IS.flags.log) {
                            ez.dbg('MATCHED', 'IS', 'Sitemap: Page - Data Centers Page');
                        }
                        return true;
                    }
                    else {
                        return false;
                    }
                },
                contentZones: [
                    {
                        name: "Featured Products 1",
                        selector: "#kele-sfp-river1"
                    },
                    {
                        name: "Featured Products 2",
                        selector: "#kele-sfp-river2"
                    },
                ]
            },
            {
                name: "Facility Management",
                interaction: {
                    name: "[View] Facility Management"
                },
                isMatch: () =&gt; {
                    const validPaths = ["/content/facility-management/", "/content/facility-management"];
                    if (validPaths.includes(window.location.pathname)){
                        if (kele.IS.flags.log) {
                            ez.dbg('MATCHED', 'IS', 'Sitemap: Page - Facility Management Page');
                        }
                        return true;
                    }
                    else {
                        return false;
                    }
                },
                contentZones: [
                    {
                        name: "Featured Products 1",
                        selector: "#kele-sfp-river1"
                    },
                    {
                        name: "Featured Products 2",
                        selector: "#kele-sfp-river2"
                    },
                ]
            },
            {
                name: "Food and Beverage",
                interaction: {
                    name: "[View] Food and Beverage"
                },
                isMatch: () =&gt; {
                    const validPaths = ["/content/food-and-beverage/", "/content/food-and-beverage"];
                    if (validPaths.includes(window.location.pathname)){
                        if (kele.IS.flags.log) {
                            ez.dbg('MATCHED', 'IS', 'Sitemap: Page - Food and Beverage Page');
                        }
                        return true;
                    }
                    else {
                        return false;
                    }
                },
                contentZones: [
                    {
                        name: "Featured Products 1",
                        selector: "#kele-sfp-river1"
                    },
                    {
                        name: "Featured Products 2",
                        selector: "#kele-sfp-river2"
                    },
                ]
            },
            {
                name: "Government",
                interaction: {
                    name: "[View] Government"
                },
                isMatch: () =&gt; {
                    const validPaths = ["/content/government/", "/content/government"];
                    if (validPaths.includes(window.location.pathname)){
                        if (kele.IS.flags.log) {
                            ez.dbg('MATCHED', 'IS', 'Sitemap: Page - Government Page');
                        }
                        return true;
                    }
                    else {
                        return false;
                    }
                },
                contentZones: [
                    {
                        name: "Featured Products 1",
                        selector: "#kele-sfp-river1"
                    },
                    {
                        name: "Featured Products 2",
                        selector: "#kele-sfp-river2"
                    },
                ]
            },
            {
                name: "Healthcare",
                interaction: {
                    name: "[View] Healthcare"
                },
                isMatch: () =&gt; {
                    const validPaths = ["/content/healthcare/", "/content/healthcare"];
                    if (validPaths.includes(window.location.pathname)){
                        if (kele.IS.flags.log) {
                            ez.dbg('MATCHED', 'IS', 'Sitemap: Page - Healthcare Page');
                        }
                        return true;
                    }
                    else {
                        return false;
                    }
                },
                contentZones: [
                    {
                        name: "Featured Products 1",
                        selector: "#kele-sfp-river1"
                    },
                    {
                        name: "Featured Products 2",
                        selector: "#kele-sfp-river2"
                    },
                ]
            },
            {
                name: "Hospitality",
                interaction: {
                    name: "[View] Hospitality"
                },
                isMatch: () =&gt; {
                    const validPaths = ["/content/hospitality/", "/content/hospitality"];
                    if (validPaths.includes(window.location.pathname)){
                        if (kele.IS.flags.log) {
                            ez.dbg('MATCHED', 'IS', 'Sitemap: Page - Hospitality Page');
                        }
                        return true;
                    }
                    else {
                        return false;
                    }
                },
                contentZones: [
                    {
                        name: "Featured Products 1",
                        selector: "#kele-sfp-river1"
                    },
                    {
                        name: "Featured Products 2",
                        selector: "#kele-sfp-river2"
                    },
                ]
            },
            {
                name: "Retail",
                interaction: {
                    name: "[View] Retail"
                },
                isMatch: () =&gt; {
                    const validPaths = ["/content/retail/", "/content/retail"];
                    if (validPaths.includes(window.location.pathname)){
                        if (kele.IS.flags.log) {
                            ez.dbg('MATCHED', 'IS', 'Sitemap: Page - Retail Page ');
                        }
                        return true;
                    }
                    else {
                        return false;
                    }
                },
                contentZones: [
                    {
                        name: "Featured Products 1",
                        selector: "#kele-sfp-river1"
                    },
                    {
                        name: "Featured Products 2",
                        selector: "#kele-sfp-river2"
                    },
                ]
            },
            {
                name: "Search",
                interaction: {
                    name: "[View] Search",
                },
                isMatch: () =&gt; {
                    if (window.location.pathname === "/search") {
                        return SalesforceInteractions.util.resolveWhenTrue.bind(() =&gt; {
                            if (SalesforceInteractions.cashDom('body').hasClass('kele-ng-route-search') &amp;&amp; !SalesforceInteractions.cashDom('body').hasClass('kele-ng-route-product-category') &amp;&amp; !SalesforceInteractions.cashDom('body').hasClass('kele-ng-route-product-subcategory')) {
                                if (kele.IS.flags.log) {
                                    ez.dbg('MATCHED (bind)', 'IS', 'Sitemap: Page - Search Page');
                                }
                                return true;
                            } else {
                                return false;
                            }
                        }, undefined, 5000);
                    }
                    else {
                        return false;
                    }
                },
                onActionEvent: (actionEvent) =&gt; {
                    const urlParams = new URLSearchParams(window.location.search);
                    const searchTerm = urlParams.get('keywords');

                    if (searchTerm) {
                        actionEvent.user = actionEvent.user || {};
                        actionEvent.user.attributes = actionEvent.user.attributes || {};
                        actionEvent.user.attributes.lastSearchTerm = searchTerm;
                    }
                    return actionEvent;
                },
                contentZones: [{
                    name: "Search - Top Promotional Banner",
                    selector: "#banner-wrapper"
                },
                    {
                        name: "Search - Product Recommendations",
                        selector: "#kele-is-placement1"
                    },
                    {
                        name: "Skyscraper Div",
                        selector: "#kele-is-placement-search-results"
                    }],
                listeners: [
                    SalesforceInteractions.listener("click", ".tile-container", window.kele.IS.tileClickHandler),
                ]
            },
            {
                name: "Product Category",
                isMatch: () =&gt; {
                    if (window.location.pathname.indexOf("/product/") === 0) {
                        return SalesforceInteractions.util.resolveWhenTrue.bind(() =&gt; {
                            if (SalesforceInteractions.cashDom('body').hasClass('kele-ng-route-product-category') &amp;&amp; !SalesforceInteractions.cashDom('body').hasClass('kele-ng-route-product-subcategory') &amp;&amp; SalesforceInteractions.cashDom('.section-hero-name h1').text().length &gt; 0) {
                                if (kele.IS.flags.log) {
                                    ez.dbg('MATCHED (bind) - return true;', 'IS', 'Sitemap: Page - Product Category Page');
                                }
                                return true;
                            } else {
                                return false;
                            }
                        }, undefined, 5000);
                    } else {
                        return false;
                    }
                },
                interaction: {
                    name: () =&gt; {
                        try {
                            if (SalesforceInteractions.cashDom(".breadcrumb-container").length &gt; 0) {
                                if (kele.IS.flags.log) {
                                    ez.dbg('[View] Product Category: ' + SalesforceInteractions.cashDom('.section-hero-name h1').text().replace('&amp;','and'), 'IS', 'Sitemap: Page - Product Category Page');
                                }
                                return '[View] Product Category: ' + SalesforceInteractions.cashDom('.section-hero-name h1').text().replace('&amp;','and');
                            } else return "[View] Product Category";
                        } catch (err) {
                            if (kele.IS.flags.log) {
                                ez.dbg('ERROR: ' + err, 'IS', 'Sitemap: Page - Product Category Page');
                            }
                            return "[View] Product Category";
                        }

                    }
                },
                contentZones: [
                    {
                        name: "Tile Grid",
                        selector: ".tile-container"
                    },
                    {
                        name: "Skyscraper Div",
                        selector: "#kele-is-placement-search-results"
                    }
                ]
            },
            {
                name: "Product Subcategory",
                isMatch: () =&gt; {
                    if (window.location.pathname.indexOf("/product/") === 0) {
                        return SalesforceInteractions.util.resolveWhenTrue.bind(() =&gt; {
                            if (SalesforceInteractions.cashDom('body').hasClass('kele-ng-route-product-subcategory') &amp;&amp; SalesforceInteractions.cashDom('.breadcrumb-container').text().replace('Home&gt;Search Results','').length &gt; 0) {
                                if (kele.IS.flags.log) {
                                    ez.dbg('MATCHED (bind)', 'IS', 'Sitemap: Page - Product Subcategory Page');
                                }
                                return true;
                            } else {
                                return false;
                            }
                        }, undefined, 5000);
                    } else {
                        return false;
                    }
                },
                interaction: {
                    name: () =&gt; {
                        try {
                            if (SalesforceInteractions.cashDom(".breadcrumb-container").length &gt; 0) {
                                if (kele.IS.flags.log) {
                                    ez.dbg('[View] Product Subcategory: ' + SalesforceInteractions.cashDom('.breadcrumb-container').text().replace('Home&gt;Search Results&gt;','').replace('&gt;',' - ').replace('&amp;','and'), 'IS', 'Sitemap: Page - Product Subcategory Page');
                                }
                                return '[View] Product Subcategory: ' + SalesforceInteractions.cashDom('.breadcrumb-container').text().replace('Home&gt;Search Results&gt;','').replace('&gt;',' - ').replace('&amp;','and');
                            } else return "[View] Product Category";
                        } catch (err) {
                            if (kele.IS.flags.log) {
                                ez.dbg('ERROR: ' + err, 'IS', 'Sitemap: Page - Product Subcategory Page');
                            }

                            return "[View] Product Subcategory";
                        }

                    }
                }
            },
            {
                name: "Product Detail",
                isMatch: () =&gt; {
                    if (window.location.pathname.indexOf("/product/") === 0) {
                        return SalesforceInteractions.util.resolveWhenTrue.bind(() =&gt; {
                            if (SalesforceInteractions.cashDom('body').hasClass('kele-ng-route-product-detail')) {
                                if (kele.IS.flags.log) {
                                    ez.dbg('MATCHED (bind)', 'IS', 'Sitemap: Page - Product Detail Page');
                                }
                                return true;
                            } else {
                                return false;
                            }
                        }, undefined, 5000);
                    } else {
                        return false;
                    }
                },
                onActionEvent: (actionEvent) =&gt; {
                    const lastViewedMPN = SalesforceInteractions.cashDom(".sku-id-container span[itemprop='mpn model']").text();

                    if (lastViewedMPN) {
                        actionEvent.user = actionEvent.user || {};
                        actionEvent.user.attributes = actionEvent.user.attributes || {};
                        actionEvent.user.attributes.lastViewedProduct = lastViewedMPN;
                    }
                    return actionEvent;
                },
                contentZones: [
                    {
                        name: "[Admin] Product Detail - Update User",
                        selector: "app-product-detail"
                    },
                    {
                        name: "Product Detail - OOS Right Col",
                        selector: "#smart-buys-river"
                    }
                ],
                //Product detail page add to cart listener
                listeners: [
                    SalesforceInteractions.listener("click", ".add-to-cart-button", throttle(function (e) {    // data-sfp-add-to-cart-button
                            if (!e.target) return;

                            if (kele.IS.flags.log) {
                                ez.dbg('Add to Cart button clicked on element: ' + JSON.stringify(e.target), 'IS', 'Sitemap (listener): Page - Product Detail Page');
                            }

                            const quantity = Number(SalesforceInteractions.cashDom("input[name='quantity']")?.val() || 0); // data-sfp-quantity
                            if (quantity &lt;= 0) return;

                            const lineItem = {
                                catalogObjectId: window.kele?.IS?.product?.ITEMNMBR || document.querySelector('span[itemprop="sku productID"]').innerHTML || '', // [attr.data-sfp-item-number], this is ID - not EIN
                                catalogObjectType: "Product",
                                price: window.kele?.IS?.pricing?.UnitPrice || Number(document.getElementById('sku-price').innerHTML) || 0, // [attr.data-sfp-sku-price]
                                quantity: quantity
                            }

                            sendSalesforceEvent({
                                interactionName: SalesforceInteractions.CartInteractionName.AddToCart,
                                lineItem: lineItem
                            });
                        })
                    ),
                    //Product Feedback Button:
                    SalesforceInteractions.listener("click", '[data-sfp-selector="productFeedbackButton"]', (event) =&gt; {
                        sendSalesforceEvent({
                            eventName: "Click Product Feedback button",
                            interactionName: "[Click] Product Feedback button"
                        });
                    }),
                    //river add to cart listener
                    //smart buy
                    SalesforceInteractions.listener("click", '.sb-river-item', (event) =&gt; {

                        if (event &amp;&amp; event.path &amp;&amp; event.path.length &gt; 5) {
                            addToCartFromRiver(event.path[2], event.path[5]);
                        }
                    }),
                    //typically required, direct, functional, other
                    SalesforceInteractions.listener("click", '.altriverItem', (event) =&gt; {

                        if (event &amp;&amp; event.path &amp;&amp; event.path.length &gt; 5) {
                            addToCartFromRiver(event.path[2], event.path[5]);
                        }
                    }),
                    SalesforceInteractions.listener("click", '.riverItem', (event) =&gt; {

                        if (event &amp;&amp; event.path &amp;&amp; event.path.length &gt; 5) {
                            addToCartFromRiver(event.path[2], event.path[5]);
                        }
                    }),
                    SalesforceInteractions.listener("click", ".product-aux-buttons", (e) =&gt; {
                        e.path = window.kele.IS.eventPath(e);
                        if (e &amp;&amp; e.path &amp;&amp; e.path.length &gt; 1) {
                            const buttonName = e.path[0].innerHTML;
                            if (buttonName.indexOf('product datasheet') &gt; -1) {
                                sendSalesforceEvent({
                                    eventName: "Click Product Data Sheet",
                                    interactionName: "[Click] Product Datasheet"
                                });
                            } else if (buttonName.indexOf('catalog page') &gt; -1) {
                                sendSalesforceEvent({
                                    eventName: "Click Catalog Page",
                                    interactionName: "[Click] Catalog Page"
                                });
                            } else if (buttonName.indexOf('installation instructions') &gt; -1) {
                                sendSalesforceEvent({
                                    eventName: "Click view installation instructions",
                                    interactionName: "[Click] View installation instructions"
                                });
                            }
                        }
                    })
                    //end listener
                ],
                //Product cataloguing starts here.
                interaction: {
                    name: SalesforceInteractions.CatalogObjectInteractionName.ViewCatalogObject,
                    catalogObject: () =&gt; {
                        return resolveItemAttributes();
                    },
                },
            }
        ], //end page type section
    }; //eng config section

    const handleInit = () =&gt; {
        if (kele.IS.flags.log) {
            ez.dbg('HANDLE INIT', 'IS', 'Sitemap: handleInit');
        }

        let isSFVEMode = false;

        if (document &amp;&amp; document.body)
        {
            isSFVEMode = document.body.classList.contains('evg_ve__iframed_page');
        }

        if (kele.IS.flags.log) {
            ez.dbg('isSFVEMode: ' + isSFVEMode, 'IS', 'Sitemap: handleInit');
            ez.dbg('isNG: ' + isNG, 'IS', 'Sitemap: handleInit');
        }

        if (ez.isNG &amp;&amp; isSFVEMode) {
            // Init sitemap on NG pages immediately with Salesforce Visual Editor Mode
            if (kele.IS.flags.log) {
                ez.dbg('NG SPA INIT - SF VE MODE', 'IS', 'Sitemap: handleInit');
            }
            SalesforceInteractions.initSitemap(config); //initializes the sitemap
        }

        if (ez.isNG) {
            // Available Events
            // KeleNGAfterViewInit - Delay sitemap init on NG pages until NG view is initialized
            // KeleNGAfterRouteChange - Re-init sitemap on NG pages if route changes after NG view is initialized
            document.addEventListener("KeleNGAfterRouteChange", (event) =&gt; {
                if (!kele.IS.isInitialized){
                    if (kele.IS.flags.log) {
                        ez.dbg('EVENT FIRED: KeleNGAfterRouteChange', 'IS', 'Sitemap: handleInit');
                        ez.dbg('NG SPA INIT - NG EVENT MODE', 'IS', 'Sitemap: handleInit');
                    }
                    SalesforceInteractions.initSitemap(config); //initializes the sitemap
                    kele.IS.isInitialized = true;
                }
                else {
                    if (kele.IS.flags.log) {
                        ez.dbg('EVENT FIRED: KeleNGAfterRouteChange', 'IS', 'Sitemap: handleInit');
                        ez.dbg('NG SPA RE-INIT (' + window.location.href + ') - NG EVENT MODE', 'IS', 'Sitemap: handleInit');
                    }
                    SalesforceInteractions.reinit(config); //re-initializes the sitemap on route change
                }
            });
        }
        else {
            if (kele.IS.flags.log) {
                ez.dbg('STANDARD INIT', 'IS', 'Sitemap: handleInit');
            }
            SalesforceInteractions.initSitemap(config); //initializes the sitemap
            kele.IS.isInitialized = true;
        }
    }
    handleInit();
});
} catch (e) {
    if (typeof window.Evergage === "object" &amp;&amp; typeof window.Evergage.getVersion === "function" &amp;&amp; window.Evergage.getVersion() &gt;= 5) {
          console.error("siteWideJavascriptError" + e);    }
};


}</pre></body></html>