1;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="33a4d3d1-fb10-acf2-6408-aab2882d4cda")}catch(e){}}(); 2(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,588455,776742,730134,337273,77081,e=>{"use strict";e.i(639057);var t,r,i=/^[a-zA-Z:_][a-zA-Z0-9:_.-]*$/,s={revert:function(){}},n=new Map,a=new Set;function o(e){var t=n.get(e);return t||(t={element:e,attributes:{}},n.set(e,t)),t}function u(e,t,r,i,s){var n=r(e),a={isDirty:!1,originalValue:n,virtualValue:n,mutations:[],el:e,_positionTimeout:null,observer:new MutationObserver(function(){if("position"!==t||!a._positionTimeout){"position"===t&&(a._positionTimeout=setTimeout(function(){a._positionTimeout=null},1e3));var i=r(e);"position"===t&&i.parentNode===a.virtualValue.parentNode&&i.insertBeforeNode===a.virtualValue.insertBeforeNode||i!==a.virtualValue&&(a.originalValue=i,s(a))}}),mutationRunner:s,setValue:i,getCurrentValue:r};return"position"===t&&e.parentNode?a.observer.observe(e.parentNode,{childList:!0,subtree:!0,attributes:!1,characterData:!1}):a.observer.observe(e,"html"===t?{childList:!0,subtree:!0,attributes:!0,characterData:!0}:{childList:!1,subtree:!1,attributes:!0,attributeFilter:[t]}),a}function l(e,t){var r=t.getCurrentValue(t.el);t.virtualValue=e,e&&"string"!=typeof e?r&&e.parentNode===r.parentNode&&e.insertBeforeNode===r.insertBeforeNode||(t.isDirty=!0,w()):e!==r&&(t.isDirty=!0,w())}function c(e){var r,i=e.originalValue;e.mutations.forEach(function(e){return i=e.mutate(i)}),l((r=i,t||(t=document.createElement("div")),t.innerHTML=r,t.innerHTML),e)}function d(e){var t=new Set(e.originalValue.split(/\s+/).filter(Boolean));e.mutations.forEach(function(e){return e.mutate(t)}),l(Array.from(t).filter(Boolean).join(" "),e)}function h(e){var t=e.originalValue;e.mutations.forEach(function(e){return t=e.mutate(t)}),l(t,e)}function f(e){var t=e.originalValue;e.mutations.forEach(function(e){t=function(e){var t=e.parentSelector,r=e.insertBeforeSelector,i=document.querySelector(t);if(!i)return null;var s=r?document.querySelector(r):null;return r&&!s?null:{parentNode:i,insertBeforeNode:s}}(e.mutate())||t}),l(t,e)}var p=function(e){return e.innerHTML},g=function(e,t){return e.innerHTML=t};function m(e){var t=o(e);return t.html||(t.html=u(e,"html",p,g,c)),t.html}var y=function(e){return{parentNode:e.parentElement,insertBeforeNode:e.nextElementSibling}},v=function(e,t){(!t.insertBeforeNode||t.parentNode.contains(t.insertBeforeNode))&&t.parentNode.insertBefore(e,t.insertBeforeNode)};function b(e){var t=o(e);return t.position||(t.position=u(e,"position",y,v,f)),t.position}var k=function(e,t){return t?e.className=t:e.removeAttribute("class")},_=function(e){return e.className};function A(e){var t=o(e);return t.classes||(t.classes=u(e,"class",_,k,d)),t.classes}function E(e,t){var r=o(e);return r.attributes[t]||(r.attributes[t]=u(e,t,function(e){var r;return null!=(r=e.getAttribute(t))?r:null},function(e,r){return null!==r?e.setAttribute(t,r):e.removeAttribute(t)},h)),r.attributes[t]}function x(e,t,r){if(r.isDirty){r.isDirty=!1;var i,s,a,o,u,l,c,d,h,f,p=r.virtualValue;!r.mutations.length&&(f=n.get(e))&&("html"===t?(null==(i=f.html)||null==(s=i.observer)||s.disconnect(),delete f.html):"class"===t?(null==(a=f.classes)||null==(o=a.observer)||o.disconnect(),delete f.classes):"position"===t?(null==(u=f.position)||null==(l=u.observer)||l.disconnect(),delete f.position):(null==(c=f.attributes)||null==(d=c[t])||null==(h=d.observer)||h.disconnect(),delete f.attributes[t])),r.setValue(e,p)}}function S(e,t){e.html&&x(t,"html",e.html),e.classes&&x(t,"class",e.classes),e.position&&x(t,"position",e.position),Object.keys(e.attributes).forEach(function(r){x(t,r,e.attributes[r])})}function w(){n.forEach(S)}function C(e){if("position"!==e.kind||1!==e.elements.size){var t=new Set(e.elements);document.querySelectorAll(e.selector).forEach(function(r){if(!t.has(r)){var i;e.elements.add(r),i=null,"html"===e.kind?i=m(r):"class"===e.kind?i=A(r):"attribute"===e.kind?i=E(r,e.attribute):"position"===e.kind&&(i=b(r)),i&&(i.mutations.push(e),i.mutationRunner(i))}})}}function B(){a.forEach(C)}function F(e){return"u"<typeof document?s:(a.add(e),C(e),{revert:function(){e.elements.forEac
2h(function(t){var r=null;if("html"===e.kind?r=m(t):"class"===e.kind?r=A(t):"attribute"===e.kind?r=E(t,e.attribute):"position"===e.kind&&(r=b(t)),r){var i=r.mutations.indexOf(e);-1!==i&&r.mutations.splice(i,1),r.mutationRunner(r)}}),e.elements.clear(),a.delete(e)}})}function D(e,t){return F({kind:"html",elements:new Set,mutate:t,selector:e})}function V(e,t){return F({kind:"class",elements:new Set,mutate:t,selector:e})}function T(e,t,r){return i.test(t)?"class"===t||"className"===t?V(e,function(e){var t=r(Array.from(e).join(" "));e.clear(),t&&t.split(/\s+/g).filter(Boolean).forEach(function(t){return e.add(t)})}):F({kind:"attribute",attribute:t,elements:new Set,mutate:r,selector:e}):s}"u">typeof document&&(r||(r=new MutationObserver(function(){B()})),B(),r.observe(document.documentElement,{childList:!0,subtree:!0,attributes:!1,characterData:!1}));let $=function(e){var t,r,i=e.selector,n=e.action,a=e.value,o=e.attribute,u=e.parentSelector,l=e.insertBeforeSelector;if("html"===o){if("append"===n)return D(i,function(e){return e+(null!=a?a:"")});else if("set"===n)return D(i,function(){return null!=a?a:""})}else if("class"===o){if("append"===n)return V(i,function(e){a&&e.add(a)});else if("remove"===n)return V(i,function(e){a&&e.delete(a)});else if("set"===n)return V(i,function(e){e.clear(),a&&e.add(a)})}else if("position"===o){if("set"===n&&u){return t=i,r=function(){return{insertBeforeSelector:l,parentSelector:u}},F({kind:"position",elements:new Set,mutate:r,selector:t})}}else if("append"===n)return T(i,o,function(e){return null!==e?e+(null!=a?a:""):null!=a?a:""});else if("set"===n)return T(i,o,function(){return null!=a?a:""});else if("remove"===n)return T(i,o,function(){return null});return s},R={fetch:globalThis.fetch?globalThis.fetch.bind(globalThis):void 0,SubtleCrypto:globalThis.crypto?globalThis.crypto.subtle:void 0,EventSource:globalThis.EventSource};function I(){return R}function L(e){let t=0x811c9dc5,r=e.length;for(let i=0;i<r;i++)t^=e.charCodeAt(i),t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24);return t>>>0}function M(e,t,r){return 2===r?L(L(e+t)+"")%1e4/1e4:1===r?L(t+e)%1e3/1e3:null}function U(e,t){return e>=t[0]&&e<t[1]}function N(e,t){let r=M("__"+t[0],e,1);return null!==r&&r>=t[1]&&r<t[2]}function O(e,t){for(let r=0;r<t.length;r++)if(U(e,t[r]))return r;return -1}function P(e){try{let t=e.replace(/([^\\])\//g,"$1\\/");return new RegExp(t)}catch(e){console.error(e);return}}function K(e,t){if(!t.length)return!1;let r=!1,i=!1;for(let s=0;s<t.length;s++){let n=function(e,t,r){try{let i=new URL(e,"https://_");if("regex"===t){let e=P(r);if(!e)return!1;return e.test(i.href)||e.test(i.href.substring(i.origin.length))}if("simple"===t)try{let e=new URL(r.replace(/^([^:/?]*)\./i,"https://$1.").replace(/\*/g,"_____"),"https://_____"),t=[[i.host,e.host,!1],[i.pathname,e.pathname,!0]];return e.hash&&t.push([i.hash,e.hash,!1]),e.searchParams.forEach((e,r)=>{t.push([i.searchParams.get(r)||"",e,!1])}),!t.some(e=>!function(e,t,r){try{let i=t.replace(/[*.+?^${}()|[\]\\]/g,"\\$&").replace(/_____/g,".*");return r&&(i="\\/?"+i.replace(/(^\/|\/$)/g,"")+"\\/?"),RegExp("^"+i+"$","i").test(e)}catch(e){return!1}}(e[0],e[1],e[2]))}catch(e){}return!1}catch(e){return!1}}(e,t[s].type,t[s].pattern);if(!1===t[s].include){if(n)return!1}else r=!0,n&&(i=!0)}return i||!r}function j(e,t,r){(t=void 0===t?1:t)<0?t=0:t>1&&(t=1);let i=e<=0?[]:Array(e).fill(1/e);(r=r||i).length!==e&&(r=i);let s=r.reduce((e,t)=>t+e,0);(s<.99||s>1.01)&&(r=i);let n=0;return r.map(e=>{let r=n;return n+=e,[r,r+t*e]})}function H(e,t,r){if(!t)return null;let i=t.split("?")[1];if(!i)return null;let s=i.replace(/#.*/,"").split("&").map(e=>e.split("=",2)).filter(([t])=>t===e).map(([,e])=>parseInt(e));return s.length>0&&s[0]>=0&&s[0]<r?s[0]:null}function q(e){try{return e()}catch(e){return console.error(e),!1}}let G=e=>Uint8Array.from(atob(e),e=>e.charCodeAt(0));async function J(e,t,r){if(t=t||"",!(r=r||globalThis.crypto&&globalThis.crypto.subtle||R.SubtleCrypto))throw Error("No SubtleCrypto implementation found");try{let i=await r.importKey("raw",G(t),{name:"AES-CBC",length:128},!0,["encrypt","decrypt"]),[s,n]=e.split("."),a=await r.decrypt({
2name:"AES-CBC",iv:G(s)},i,G(n));return new TextDecoder().decode(a)}catch(e){throw Error("Failed to decrypt")}}function z(e){return"string"==typeof e?e:JSON.stringify(e)}function Q(e){"number"==typeof e&&(e+=""),e&&"string"==typeof e||(e="0");let t=e.replace(/(^v|\+.*$)/g,"").split(/[-.]/);return 3===t.length&&t.push("~"),t.map(e=>e.match(/^[0-9]+$/)?e.padStart(5," "):e).join("-")}function Z(){let e;try{e="1.6.5"}catch(t){e=""}return e}function W(e,t){let r,i;try{r=new URL(e),i=new URL(t)}catch(e){return console.error(`Unable to merge query strings: ${e}`),t}return r.searchParams.forEach((e,t)=>{i.searchParams.has(t)||i.searchParams.set(t,e)}),i.toString()}function X(e){return"object"==typeof e&&null!==e}function Y(e){return e.urlPatterns&&e.variations.some(e=>X(e)&&"urlRedirect"in e)?"redirect":e.variations.some(e=>X(e)&&(e.domMutations||"js"in e||"css"in e))?"visual":"unknown"}async function ee(e,t){return new Promise(r=>{let i,s=!1,n=e=>{s||(s=!0,i&&clearTimeout(i),r(e||null))};t&&(i=setTimeout(()=>n(),t)),e.then(e=>n(e)).catch(()=>n())})}e.s(["chooseVariation",0,O,"decrypt",0,J,"getAutoExperimentChangeType",0,Y,"getBucketRanges",0,j,"getPolyfills",0,I,"getQueryStringOverride",0,H,"getUrlRegExp",0,P,"hash",0,M,"inNamespace",0,N,"inRange",0,U,"isIncluded",0,q,"isURLTargeted",0,K,"loadSDKVersion",0,Z,"mergeQueryStrings",0,W,"paddedVersionString",0,Q,"promiseTimeout",0,ee,"toString",0,z],776742);let et={staleTTL:6e4,maxAge:144e5,cacheKey:"gbFeaturesCache",backgroundSync:!0,maxEntries:10,disableIdleStreams:!1,idleStreamInterval:2e4,disableCache:!1},er=I(),ei={fetchFeaturesCall:({host:e,clientKey:t,headers:r})=>er.fetch(`${e}/api/features/${t}`,{headers:r}),fetchRemoteEvalCall:({host:e,clientKey:t,payload:r,headers:i})=>{let s={method:"POST",headers:{"Content-Type":"application/json",...i},body:JSON.stringify(r)};return er.fetch(`${e}/api/eval/${t}`,s)},eventSourceCall:({host:e,clientKey:t,headers:r})=>r?new er.EventSource(`${e}/sub/${t}`,{headers:r}):new er.EventSource(`${e}/sub/${t}`),startIdleListener:()=>{let e;if(!("u">typeof window&&"u">typeof document))return;let t=()=>{"visible"===document.visibilityState?(window.clearTimeout(e),eu.forEach(e=>{e&&"idle"===e.state&&ew(e)})):"hidden"===document.visibilityState&&(e=window.setTimeout(ef,et.idleStreamInterval))};return document.addEventListener("visibilitychange",t),()=>document.removeEventListener("visibilitychange",t)},stopIdleListener:()=>{}};try{globalThis.localStorage&&(er.localStorage=globalThis.localStorage)}catch(e){}let es=new Map,en=!1,ea=new Map,eo=new Map,eu=new Map,el=new Set;function ec(e){Object.assign(et,e),et.backgroundSync||eB()}async function ed({instance:e,timeout:t,skipCache:r,allowStale:i,backgroundSync:s}){return s||(et.backgroundSync=!1),eg({instance:e,allowStale:i,timeout:t,skipCache:r})}function eh(e){es.forEach(t=>t.delete(e))}function ef(){eu.forEach(e=>{e&&(e.state="idle",eS(e))})}async function ep(){try{if(!er.localStorage)return;await er.localStorage.setItem(et.cacheKey,JSON.stringify(Array.from(ea.entries())))}catch(e){}}async function eg({instance:e,allowStale:t,timeout:r,skipCache:i}){let s=em(e),n=ey(e),a=new Date,o=new Date(a.getTime()-et.maxAge+et.staleTTL);await ev();let u=et.disableCache||i?void 0:ea.get(n);return u&&(t||u.staleAt>a)&&u.staleAt>o?(u.sse&&el.add(s),u.staleAt<a?eA(e):eE(e),{data:u.data,success:!0,source:"cache"}):await ee(eA(e),r)||{data:null,success:!1,source:"timeout",error:Error("Timeout")}}function em(e){let[t,r]=e.getApiInfo();return`${t}||${r}`}function ey(e){let t=em(e);if(!("isRemoteEval"in e)||!e.isRemoteEval())return t;let r=e.getAttributes(),i=e.getCacheKeyAttributes()||Object.keys(e.getAttributes()),s={};i.forEach(e=>{s[e]=r[e]});let n=e.getForcedVariations(),a=e.getUrl();return`${t}||${JSON.stringify({ca:s,fv:n,url:a})}`}async function ev(){if(!en){en=!0;try{if(er.localStorage){let e=await er.localStorage.getItem(et.cacheKey);if(!et.disableCache&&e){let t=JSON.parse(e);t&&Array.isArray(t)&&t.forEach(([e,t])=>{ea.set(e,{...t,staleAt:new Date(t.staleAt)})}),eb()}}}catch(e){}if(!et.disableIdleStreams){let e=ei.startIdleListener();e&&(ei.stopIdleListener=e)}}}function eb(){let e=Array.from(ea.entries()).map(([e,t])=>({key:e,staleAt:t.staleAt.getTime()})).sort((e,t)=>
2e.staleAt-t.staleAt),t=Math.min(Math.max(0,ea.size-et.maxEntries),ea.size);for(let r=0;r<t;r++)ea.delete(e[r].key)}function ek(e,t,r){let i=r.dateUpdated||"",s=new Date(Date.now()+et.staleTTL),n=et.disableCache?void 0:ea.get(t);if(n&&i&&n.version===i){n.staleAt=s,ep();return}et.disableCache||(ea.set(t,{data:r,version:i,staleAt:s,sse:el.has(e)}),eb()),ep();let a=es.get(e);a&&a.forEach(e=>e_(e,r))}async function e_(e,t){await e.setPayload(t||e.getPayload())}async function eA(e){let{apiHost:t,apiRequestHeaders:r}=e.getApiHosts(),i=e.getClientKey(),s="isRemoteEval"in e&&e.isRemoteEval(),n=em(e),a=ey(e),o=eo.get(a);return o||(o=(s?ei.fetchRemoteEvalCall({host:t,clientKey:i,payload:{attributes:e.getAttributes(),forcedVariations:e.getForcedVariations(),forcedFeatures:Array.from(e.getForcedFeatures().entries()),url:e.getUrl()},headers:r}):ei.fetchFeaturesCall({host:t,clientKey:i,headers:r})).then(e=>{if(!e.ok)throw Error(`HTTP error: ${e.status}`);return"enabled"===e.headers.get("x-sse-support")&&el.add(n),e.json()}).then(t=>(ek(n,a,t),eE(e),eo.delete(a),{data:t,success:!0,source:"network"})).catch(e=>(eo.delete(a),{data:null,source:"error",success:!1,error:e})),eo.set(a,o)),o}function eE(e,t=!1){let r=em(e),i=ey(e),{streamingHost:s,streamingHostRequestHeaders:n}=e.getApiHosts(),a=e.getClientKey();if(t&&el.add(r),et.backgroundSync&&el.has(r)&&er.EventSource){if(eu.has(r))return;let e={src:null,host:s,clientKey:a,headers:n,cb:t=>{try{if("features-updated"===t.type){let e=es.get(r);e&&e.forEach(e=>{eA(e)})}else if("features"===t.type){let e=JSON.parse(t.data);ek(r,i,e)}e.errors=0}catch(t){ex(e)}},errors:0,state:"active"};eu.set(r,e),ew(e)}}function ex(e){if("idle"!==e.state&&(e.errors++,e.errors>3||e.src&&2===e.src.readyState)){let t=Math.pow(3,e.errors-3)*(1e3+1e3*Math.random());eS(e),setTimeout(()=>{["idle","active"].includes(e.state)||ew(e)},Math.min(t,3e5))}}function eS(e){e.src&&(e.src.onopen=null,e.src.onerror=null,e.src.close(),e.src=null,"active"===e.state&&(e.state="disabled"))}function ew(e){e.src=ei.eventSourceCall({host:e.host,clientKey:e.clientKey,headers:e.headers}),e.state="active",e.src.addEventListener("features",e.cb),e.src.addEventListener("features-updated",e.cb),e.src.onerror=()=>ex(e),e.src.onopen=()=>{e.errors=0}}function eC(e,t){eS(e),eu.delete(t)}function eB(){el.clear(),eu.forEach(eC),es.clear(),ei.stopIdleListener()}function eF(e,t){if(t.streaming){let r,i;if(!e.getClientKey())throw Error("Must specify clientKey to enable streaming");t.payload&&eE(e,!0),r=em(e),(i=es.get(r)||new Set).add(e),es.set(r,i)}}e.s(["clearAutoRefresh",0,eB,"configureCache",0,ec,"refreshFeatures",0,ed,"startStreaming",0,eF,"unsubscribe",0,eh],730134);let eD={};function eV(e,t,r){for(let[i,s]of(r=r||{},Object.entries(t)))switch(i){case"$or":if(!eM(e,s,r))return!1;break;case"$nor":if(eM(e,s,r))return!1;break;case"$and":if(!function(e,t,r){for(let i=0;i<t.length;i++)if(!eV(e,t[i],r))return!1;return!0}(e,s,r))return!1;break;case"$not":if(eV(e,s,r))return!1;break;default:if(!e$(s,function(e,t){let r=t.split("."),i=e;for(let e=0;e<r.length;e++)if(!i||"object"!=typeof i||!(r[e]in i))return null;else i=i[r[e]];return i}(e,i),r))return!1}return!0}function eT(e,t=!1){let r=`${e}${t?"/i":""}`;return eD[r]||(eD[r]=new RegExp(e.replace(/([^\\])\//g,"$1\\/"),t?"i":void 0)),eD[r]}function e$(e,t,r,i=!1){if("string"==typeof e)return i?String(t).toLowerCase()===e.toLowerCase():t+""===e;if("number"==typeof e)return+t===e;if("boolean"==typeof e)return null!==t&&!!t===e;if(null===e)return null===t;if(Array.isArray(e)||!eR(e))return JSON.stringify(t)===JSON.stringify(e);for(let i in e)if(!function(e,t,r,i){switch(e){case"$veq":return Q(t)===Q(r);case"$vne":return Q(t)!==Q(r);case"$vgt":return Q(t)>Q(r);case"$vgte":return Q(t)>=Q(r);case"$vlt":return Q(t)<Q(r);case"$vlte":return Q(t)<=Q(r);case"$eq":return t===r;case"$ne":return t!==r;case"$lt":return t<r;
2case"$lte":return t<=r;case"$gt":return t>r;case"$gte":return t>=r;case"$exists":return r?null!=t:null==t;case"$in":if(!Array.isArray(r))return!1;return eI(t,r);case"$ini":if(!Array.isArray(r))return!1;return eI(t,r,!0);case"$inGroup":return eI(t,i[r]||[]);case"$notInGroup":return!eI(t,i[r]||[]);case"$nin":if(!Array.isArray(r))return!1;return!eI(t,r);case"$nini":if(!Array.isArray(r))return!1;return!eI(t,r,!0);case"$not":return!e$(r,t,i);case"$size":if(!Array.isArray(t))return!1;return e$(r,t.length,i);case"$elemMatch":if(!Array.isArray(t))return!1;let s=eR(r)?e=>e$(r,e,i):e=>eV(e,r,i);for(let e=0;e<t.length;e++)if(t[e]&&s(t[e]))return!0;return!1;case"$all":if(!Array.isArray(r))return!1;return eL(t,r,i);case"$alli":if(!Array.isArray(r))return!1;return eL(t,r,i,!0);case"$regex":try{return eT(r).test(t)}catch(e){return!1}case"$regexi":try{return eT(r,!0).test(t)}catch(e){return!1}case"$type":return function(e){if(null===e)return"null";if(Array.isArray(e))return"array";let t=typeof e;return["string","number","boolean","object","undefined"].includes(t)?t:"unknown"}(t)===r;default:return console.error("Unknown operator: "+e),!1}}(i,t,e[i],r))return!1;return!0}function eR(e){let t=Object.keys(e);return t.length>0&&t.filter(e=>"$"===e[0]).length===t.length}function eI(e,t,r=!1){if(r){let r=e=>"string"==typeof e?e.toLowerCase():e;return Array.isArray(e)?e.some(e=>t.some(t=>r(e)===r(t))):t.some(t=>r(e)===r(t))}return Array.isArray(e)?e.some(e=>t.includes(e)):t.includes(e)}function eL(e,t,r,i=!1){if(!Array.isArray(e))return!1;for(let s=0;s<t.length;s++){let n=!1;for(let a=0;a<e.length;a++)if(e$(t[s],e[a],r,i)){n=!0;break}if(!n)return!1}return!0}function eM(e,t,r){if(!t.length)return!0;for(let i=0;i<t.length;i++)if(eV(e,t[i],r))return!0;return!1}async function eU(e){try{await e()}catch(e){}}function eN(e,t,r){if(e.user.trackedExperiments){let i=e0(t,r);if(e.user.trackedExperiments.has(i))return[];e.user.trackedExperiments.add(i)}e.user.enableDevMode&&e.user.devLogs&&e.user.devLogs.push({experiment:t,result:r,timestamp:Date.now().toString(),logType:"experiment"});let i=[];if(e.global.trackingCallback){let s=e.global.trackingCallback;i.push(eU(()=>s(t,r,e.user)))}if(e.user.trackingCallback){let s=e.user.trackingCallback;i.push(eU(()=>s(t,r)))}if(e.global.eventLogger){let s=e.global.eventLogger;i.push(eU(()=>s("Experiment Viewed",{experimentId:t.key,variationId:r.key,hashAttribute:r.hashAttribute,hashValue:r.hashValue},e.user)))}return i}function eO(e,t){let r;if(t.stack.evaluatedFeatures.has(e))return eK(t,e,null,"cyclicPrerequisite");t.stack.evaluatedFeatures.add(e),t.stack.id=e;let i=(r=new Map,t.global.forcedFeatureValues&&t.global.forcedFeatureValues.forEach((e,t)=>r.set(t,e)),t.user.forcedFeatureValues&&t.user.forcedFeatureValues.forEach((e,t)=>r.set(t,e)),r);if(i.has(e))return eK(t,e,i.get(e),"override");if(!t.global.features||!t.global.features[e])return eK(t,e,null,"unknownFeature");let s=t.global.features[e];if(s.rules){let r=new Set(t.stack.evaluatedFeatures);e:for(let i of s.rules){if(i.parentConditions)for(let s of i.parentConditions){t.stack.evaluatedFeatures=new Set(r);let i=eO(s.id,t);if("cyclicPrerequisite"===i.source)return eK(t,e,null,"cyclicPrerequisite");if(!eV({value:i.value},s.condition||{})){if(s.gate)return eK(t,e,null,"prerequisite");continue e}}if(i.filters&&eq(i.filters,t))continue;if("force"in i){if(i.condition&&!eH(i.condition,t)||!function(e,t,r,i,s,n,a){if(!s&&void 0===n)return!0;if(!s&&0===n)return!1;let{hashValue:o}=eJ(e,r,i);if(!o)return!1;let u=M(t,o,a||1);return null!==u&&(s?U(u,s):void 0===n||u<=n)}(t,i.seed||e,i.hashAttribute,t.user.saveStickyBucketAssignmentDoc&&!i.disableStickyBucketing?i.fallbackAttribute:void 0,i.range,i.coverage,i.hashVersion))continue;return i.tracks&&i.tracks.forEach(e=>{!eN(t,e.experiment,e.result).length&&t.global.saveDeferredTrack&&t.global.saveDeferredTrack({experiment:e.experiment,result:e.result})}),eK(t,e,i.force,"force",i.id)}if(!i.variations)continue;let s={variations:i.variations,key:i.key||e};"coverage"in i&&(s.coverage=i.coverage),i.weights&&(s.weights=i.weights),i.hashAttribute&&(s.hashAttribute=i.hashAttribute),i.fallbackAttribute&&(s.fallbackAttribute=i.fallbackAttribute),i.disableStickyBucketing&&(s.disableStickyBucketing=i.disableStickyBucketing),void 0!==i.bucketVersion&&(s.bucketVersion=i.bucketVersion),void 0!==i.minBucketVersion&&(s.minBucketVersion=i.minBucketVersion),i.namespace&&(s.namespace=i.namespace),i.meta&&(s.meta=i.meta),i.ranges&&(s.ranges=i.ranges),i.name&&(s.name=i.name),i.phase&&(s.phase=i.phase),i.seed&&(s.seed=i.seed),i.hashVersion&&(s.hashVersion=i.hashVersion),i.filters&&(s.filters=i.filters),i.condition&&(s.condition=i.condition);let{result:n}=eP(s,e,t);if(t.global.onExperimentEval&&t.global.onExperimentEval(s,n),n.inExperiment&&!n.passthrough)return eK(t,e,n.value,"experiment",i.id,s,n)}}return eK(t,e,void 0===s.defaultValue?null:s.defaultValue,"defaultValue")}function eP(e,t,r){var i,s,n,a,o,u,l;let c,d,h=e.key,f=e.variations.length;if(f<2||!1===r.global.enabled||!1===r.user.enabled||(i=e,s=r,c=i.key,(d=s.global.overrides)&&d[c]&&"string"==typeof(i=Object.assign({},i,d[c])).url&&(i.url=P(i.url)),e=i).urlPatterns&&!K(r.user.url||"",e.urlPatterns))return{result:eG(r,e,-1,!1,t)};let p=H(h,r.user.url||"",f);if(null!==p)return{result:eG(r,e,p,!1,t)};let g=(n=r).global.forcedVariations&&n.user.forcedVariations?{...n.global.forcedVariations,...n.user.forcedVariations}:n.global.forcedVariations?n.global.forcedVariations:n.user.forcedVariations?n.user.forcedVariations:{};if(h in g)return{result:eG(r,e,g[h],!1,t)};if("draft"===e.status||!1===e.active)return{result:eG(r,e,-1,!1,t)};let{hashAttribute:m,hashValue:y}=eJ(r,e.hashAttribute,r.user.saveStickyBucketAssignmentDoc&&!e.disableStickyBucketing?e.fallbackAttribute:void 0);if(!y)return{result:eG(r,e,-1,!1,t)};let v=-1,b=!1,k=!1;if(r.user.saveStickyBucketAssignmentDoc&&!e.disableStickyBucketing){let{variation:t,versionIsBlocked:i}=function({ctx:e,expKey:t,expBucketVersion:r,expHashAttribute:i,expFallbackAttribute:s,expMinBucketVersion:n,expMeta:a}){n=n||0,i=i||"id",a=a||[];let o=ez(t,r=r||0),u=function(e,t,r){if(!e.user.stickyBucketAssignmentDocs)return{};let{hashAttribute:i,hashValue:s}=eJ(e,t),n=eQ(i,z(s)),{hashAttribute:a,hashValue:o}=eJ(e,r),u=o?eQ(a,z(o)):null,l={};return u&&e.user.stickyBucketAssignmentDocs[u]&&Object.assign(l,e.user.stickyBucketAssignmentDocs[u].assignments||{}),e.user.stickyBucketAssignmentDocs[n]&&Object.assign(l,e.user.stickyBucketAssignmentDocs[n].assignments||{}),l}(e,i,s);if(n>0){for(let e=0;e<n;e++)if(void 0!==u[ez(t,e)])return{variation:-1,versionIsBlocked:!0}}let l=u[o];if(void 0===l)return{variation:-1};let c=a.findIndex(e=>e.key===l);return c<0?{variation:-1}:{variation:c}}({ctx:r,expKey:e.key,expBucketVersion:e.bucketVersion,expHashAttribute:e.hashAttribute,expFallbackAttribute:e.fallbackAttribute,expMinBucketVersion:e.minBucketVersion,expMeta:e.meta});b=t>=0,v=t,k=!!i}if(!b){if(e.filters){if(eq(e.filters,r))return{result:eG(r,e,-1,!1,t)}}else if(e.namespace&&!N(y,e.namespace))return{result:eG(r,e,-1,!1,t)};if(e.include&&!q(e.include)||e.condition&&!eH(e.condition,r))return{result:eG(r,e,-1,!1,t)};if(e.parentConditions){let i=new Set(r.stack.evaluatedFeatures);for(let s of e.parentConditions){r.stack.evaluatedFeatures=new Set(i);let n=eO(s.id,r);if("cyclicPrerequisite"===n.source||!eV({value:n.value},s.condition||{}))return{result:eG(r,e,-1,!1,t)}}}if(e.groups&&!function(e,t){let r=t.global.groups||{};for(let t=0;t<e.length;t++)if(r[e[t]])return!0;return!1}(e.groups,r))return{result:eG(r,e,-1,!1,t)}}if(e.url&&!function(e,t){let r=t.user.url;if(!r)return!1;let i=r.replace(/^https?:\/\//,"").replace(/^[^/]*\//,"/");return!!(e.test(r)||e.test(i))}(e.url,r))return{result:eG(r,e,-1,!1,t)};let _=M(e.seed||h,y,e.hashVersion||1);if(null===_)return{result:eG(r,e,-1,!1,t)};if(b||(v=O(_,e.ranges||j(f,void 0===e.coverage?1:e.coverage,e.weights))),k)return{result:eG(r,e,-1,!1,t,void 0,!0)};if(v<0)return{result:eG(r,e,-1,!1,t)};if("force"in e)return{result:eG(r,e,void 0===e.force?-1:e.force,!1,t)};if(r.global.qaMode||r.user.qaMode||"stopped"===e.status)return{result:eG(r,e,-1,!1,t)};let A=eG(r,e,v,!0,t,_,b);if(r.user.saveStickyBucketAssignmentDoc&&!e.disableStickyBucketing){let t,i,s,n,{changed:c,key:d,doc:h}=(a=r,o=m,u=z(y),l={[ez(e.key,e.bucketVersion)]:A.key},t=eQ(o,u),s={...i=a.user.stickyBucketAssignmentDocs&&a.user.stickyBucketAssignmentDocs[t]&&a.user.stickyBucketAssignmentDocs[t].assignments||{},...l},n=JSON.stringify(i)!==JSON.stringify(s),{key:t,doc:{attributeName:o,attributeValue:u,assignments:s},changed:n});c&&(r.user.stickyBucketAssignmentDocs=r.user.stickyBucketAssignmentDocs||{},r.user.stickyBucketAssignmentDocs[d]=h,r.user.saveStickyBucketAssignmentDoc(h))}let E=eN(r,e,A);0===E.length&&r.global.saveDeferredTrack&&r.global.saveDeferredTrack({experiment:e,result:A});let x=E.length?1===E.length?E[0]:Promise.all(E).then(()=>{}):void 0;return"changeId"in e&&e.changeId&&r.global.recordChangeId&&r.global.recordChangeId(e.changeId),{result:A,trackingCall:x}}function eK(e,t,r,i,s,n,a){let o={value:r,on:!!r,off:!r,source:i,ruleId:s||""};return n&&(o.experiment=n),a&&(o.experimentResult=a),"override"!==i&&function(e,t,r){if(e.user.trackedFeatureUsage){let i=JSON.stringify(r.value);if(e.user.trackedFeatureUsage[t]===i)return;e.user.trackedFeatureUsage[t]=i,e.user.enableDevMode&&e.user.devLogs&&e.user.devLogs.push({featureKey:t,result:r,timestamp:Date.now().toString(),logType:"feature"})}if(e.global.onFeatureUsage){let i=e.global.onFeatureUsage;eU(()=>i(t,r,e.user))}if(e.user.onFeatureUsage){let i=e.user.onFeatureUsage;eU(()=>i(t,r))}if(e.global.eventLogger){let i=e.global.eventLogger;eU(()=>i("Feature Evaluated",{feature:t,source:r.source,value:r.value,ruleId:"defaultValue"===r.source?"$default":r.ruleId||"",variationId:r.experimentResult?r.experimentResult.key:""},e.user))}}(e,t,o),o}function ej(e){return{...e.user.attributes,...e.user.attributeOverrides}}function eH(e,t){return eV(ej(t),e,t.global.savedGroups||{})}function eq(e,t){return e.some(e=>{let{hashValue:r}=eJ(t,e.attribute);if(!r)return!0;let i=M(e.seed,r,e.hashVersion||2);return null===i||!e.ranges.some(e=>U(i,e))})}function eG(e,t,r,i,s,n,a){let o=!0;(r<0||r>=t.variations.length)&&(r=0,o=!1);let{hashAttribute:u,hashValue:l}=eJ(e,t.hashAttribute,e.user.saveStickyBucketAssignmentDoc&&!t.disableStickyBucketing?t.fallbackAttribute:void 0),c=t.meta?t.meta[r]:{},d={key:c.key||""+r,featureId:s,inExperiment:o,hashUsed:i,variationId:r,value:t.variations[r],hashAttribute:u,hashValue:l,stickyBucketUsed:!!a};return c.name&&(d.name=c.name),void 0!==n&&(d.bucket=n),c.passthrough&&(d.passthrough=c.passthrough),d}function eJ(e,t,r){let i=t||"id",s="",n=ej(e);return n[i]&&(s=n[i]),!s&&r&&(n[r]&&(s=n[r]),s&&(i=r)),{hashAttribute:i,hashValue:s}}function ez(e,t){return t=t||0,`${e}__${t}`}function eQ(e,t){return`${e}||${t}`}async function eZ(e,t,r){let i=eW(e,r);return t.getAllAssignments(i)}function eW(e,t){let r,i,s,n={};
2return(r=new Set,i=t&&t.features?t.features:e.global.features||{},s=t&&t.experiments?t.experiments:e.global.experiments||[],Object.keys(i).forEach(e=>{let t=i[e];if(t.rules)for(let e of t.rules)e.variations&&(r.add(e.hashAttribute||"id"),e.fallbackAttribute&&r.add(e.fallbackAttribute))}),s.map(e=>{r.add(e.hashAttribute||"id"),e.fallbackAttribute&&r.add(e.fallbackAttribute)}),Array.from(r)).forEach(t=>{let{hashValue:r}=eJ(e,t);n[t]=z(r)}),n}async function eX(e,t,r){if((e={...e}).encryptedFeatures){try{e.features=JSON.parse(await J(e.encryptedFeatures,t,r))}catch(e){console.error(e)}delete e.encryptedFeatures}if(e.encryptedExperiments){try{e.experiments=JSON.parse(await J(e.encryptedExperiments,t,r))}catch(e){console.error(e)}delete e.encryptedExperiments}if(e.encryptedSavedGroups){try{e.savedGroups=JSON.parse(await J(e.encryptedSavedGroups,t,r))}catch(e){console.error(e)}delete e.encryptedSavedGroups}return e}function eY(e){let t=e.apiHost||"https://cdn.growthbook.io";return{apiHost:t.replace(/\/*$/,""),streamingHost:(e.streamingHost||t).replace(/\/*$/,""),apiRequestHeaders:e.apiHostRequestHeaders,streamingHostRequestHeaders:e.streamingHostRequestHeaders}}function e0(e,t){return t.hashAttribute+t.hashValue+e.key+t.variationId}e.s(["decryptPayload",0,eX,"evalFeature",0,eO,"getAllStickyBucketAssignmentDocs",0,eZ,"getApiHosts",0,eY,"getExperimentDedupeKey",0,e0,"getExperimentResult",0,eG,"getStickyBucketAttributeKey",0,eQ,"getStickyBucketAttributes",0,eW,"runExperiment",0,eP],337273);let e1="u">typeof window&&"u">typeof document,e3=Z();e.s(["GrowthBook",0,class{constructor(e){if(e=e||{},this.version=e3,this._options=this.context=e,this._renderer=e.renderer||null,this._trackedExperiments=new Set,this._completedChangeIds=new Set,this._trackedFeatures={},this.debug=!!e.debug,this._subscriptions=new Set,this.ready=!1,this._assigned=new Map,this._activeAutoExperiments=new Map,this._triggeredExpKeys=new Set,this._initialized=!1,this._redirectedUrl="",this._deferredTrackingCalls=new Map,this._autoExperimentsAllowed=!e.disableExperimentsOnLoad,this._destroyCallbacks=[],this.logs=[],this.log=this.log.bind(this),this._saveDeferredTrack=this._saveDeferredTrack.bind(this),this._onExperimentEval=this._onExperimentEval.bind(this),this._fireSubscriptions=this._fireSubscriptions.bind(this),this._recordChangedId=this._recordChangedId.bind(this),e.remoteEval){if(e.decryptionKey)throw Error("Encryption is not available for remoteEval");if(!e.clientKey)throw Error("Missing clientKey");let t=!1;try{t=!!new URL(e.apiHost||"").hostname.match(/growthbook\.io$/i)}catch(e){}if(t)throw Error("Cannot use remoteEval on GrowthBook Cloud")}else if(e.cacheKeyAttributes)throw Error("cacheKeyAttributes are only used for remoteEval");if(e.stickyBucketService){const t=e.stickyBucketService;this._saveStickyBucketAssignmentDoc=e=>t.saveAssignments(e)}if(e.plugins)for(const t of e.plugins)t(this);if(e.features&&(this.ready=!0),e1&&e.enableDevMode&&(window._growthbook=this,document.dispatchEvent(new Event("gbloaded"))),e.experiments&&(this.ready=!0,this._updateAllAutoExperiments()),this._options.stickyBucketService&&this._options.stickyBucketAssignmentDocs)for(const e in this._options.stickyBucketAssignmentDocs){const t=this._options.stickyBucketAssignmentDocs[e];t&&this._options.stickyBucketService.saveAssignments(t).catch(()=>{})}this.ready&&this.refreshStickyBuckets(this.getPayload())}async setPayload(e){this._payload=e;let t=await eX(e,this._options.decryptionKey);this._decryptedPayload=t,await this.refreshStickyBuckets(t),t.features&&(this._options.features=t.features),t.savedGroups&&(this._options.savedGroups=t.savedGroups),t.experiments&&(this._options.experiments=t.experiments,this._updateAllAutoExperiments()),this.ready=!0,this._render()}initSync(e){this._initialized=!0;let t=e.payload;if(t.encryptedExperiments||t.encryptedFeatures)throw Error("initSync does not support encrypted payloads");return this._options.stickyBucketService&&!this._options.stickyBucketAssignmentDocs&&(this._options.stickyBucketAssignmentDocs=this.generateStickyBucketAssignmentDocsSync(this._options.stickyBucketService,t)),this._payload=t,this._decryptedPayload=t,t.features&&(this._options.features=t.features),t.experiments&&(this._options.experiments=t.experiments,this._updateAllAutoExperiments()),this.ready=!0,eF(this,e),this}async init(e){if(this._initialized=!0,(e=e||{}).cacheSettings&&ec(e.cacheSettings),e.payload)return await this.setPayload(e.payload),eF(this,e),{success:!0,source:"init"};{let{data:t,...r}=await this._refresh({...e,allowStale:!0});return eF(this,e),await this.setPayload(t||{}),r}}async loadFeatures(e){e=e||{},await this.init({skipCache:e.skipCache,timeout:e.timeout,streaming:(this._options.backgroundSync??!0)&&(e.autoRefresh||this._options.subscribeToChanges)})}async refreshFeatures(e){let t=await this._refresh({...e||{},allowStale:!1});t.data&&await this.setPayload(t.data)}
2getApiInfo(){return[this.getApiHosts().apiHost,this.getClientKey()]}getApiHosts(){return eY(this._options)}getClientKey(){return this._options.clientKey||""}getPayload(){return this._payload||{features:this.getFeatures(),experiments:this.getExperiments()}}getDecryptedPayload(){return this._decryptedPayload||this.getPayload()}isRemoteEval(){return this._options.remoteEval||!1}getCacheKeyAttributes(){return this._options.cacheKeyAttributes}async _refresh({timeout:e,skipCache:t,allowStale:r,streaming:i}){if(!this._options.clientKey)throw Error("Missing clientKey");return ed({instance:this,timeout:e,skipCache:t||this._options.disableCache,allowStale:r,backgroundSync:i??this._options.backgroundSync??!0})}_render(){if(this._renderer)try{this._renderer()}catch(e){console.error("Failed to render",e)}}setFeatures(e){this._options.features=e,this.ready=!0,this._render()}async setEncryptedFeatures(e,t,r){let i=await J(e,t||this._options.decryptionKey,r);this.setFeatures(JSON.parse(i))}setExperiments(e){this._options.experiments=e,this.ready=!0,this._updateAllAutoExperiments()}async setEncryptedExperiments(e,t,r){let i=await J(e,t||this._options.decryptionKey,r);this.setExperiments(JSON.parse(i))}async setAttributes(e){(this._options.attributes=e,this._options.stickyBucketService&&await this.refreshStickyBuckets(),this._options.remoteEval)?await this._refreshForRemoteEval():(this._render(),this._updateAllAutoExperiments())}async updateAttributes(e){return this.setAttributes({...this._options.attributes,...e})}async setAttributeOverrides(e){(this._options.attributeOverrides=e,this._options.stickyBucketService&&await this.refreshStickyBuckets(),this._options.remoteEval)?await this._refreshForRemoteEval():(this._render(),this._updateAllAutoExperiments())}async setForcedVariations(e){(this._options.forcedVariations=e||{},this._options.remoteEval)?await this._refreshForRemoteEval():(this._render(),this._updateAllAutoExperiments())}setForcedFeatures(e){this._options.forcedFeatureValues=e,this._render()}async setURL(e){if(e!==this._options.url){if(this._options.url=e,this._redirectedUrl="",this._options.remoteEval){await this._refreshForRemoteEval(),this._updateAllAutoExperiments(!0);return}this._updateAllAutoExperiments(!0)}}getAttributes(){return{...this._options.attributes,...this._options.attributeOverrides}}getForcedVariations(){return this._options.forcedVariations||{}}getForcedFeatures(){return this._options.forcedFeatureValues||new Map}getStickyBucketAssignmentDocs(){return this._options.stickyBucketAssignmentDocs||{}}getUrl(){return this._options.url||""}getFeatures(){return this._options.features||{}}getExperiments(){return this._options.experiments||[]}getCompletedChangeIds(){return Array.from(this._completedChangeIds)}subscribe(e){return this._subscriptions.add(e),()=>{this._subscriptions.delete(e)}}async _refreshForRemoteEval(){if(!this._options.remoteEval||!this._initialized)return;let e=await this._refresh({allowStale:!1});e.data&&await this.setPayload(e.data)}getAllResults(){return new Map(this._assigned)}onDestroy(e){this._destroyCallbacks.push(e)}isDestroyed(){return!!this._destroyed}destroy(e){e=e||{},this._destroyed=!0,this._destroyCallbacks.forEach(e=>{try{e()}catch(e){console.error(e)}}),this._subscriptions.clear(),this._assigned.clear(),this._trackedExperiments.clear(),this._completedChangeIds.clear(),this._deferredTrackingCalls.clear(),this._trackedFeatures={},this._destroyCallbacks=[],this._payload=void 0,this._saveStickyBucketAssignmentDoc=void 0,eh(this),e.destroyAllStreams&&eB(),this.logs=[],e1&&window._growthbook===this&&delete window._growthbook,this._activeAutoExperiments.forEach(e=>{e.undo()}),this._activeAutoExperiments.clear(),this._triggeredExpKeys.clear()}setRenderer(e){this._renderer=e}forceVariation(e,t){(this._options.forcedVariations=this._options.forcedVariations||{},this._options.forcedVariations[e]=t,this._options.remoteEval)?this._refreshForRemoteEval():(this._updateAllAutoExperiments(),this._render())}run(e){let{result:t}=eP(e,null,this._getEvalContext());return this._onExperimentEval(e,t),t}triggerExperiment(e){return(this._triggeredExpKeys.add(e),this._options.experiments)?this._options.experiments.filter(t=>t.key===e).map(e=>this._runAutoExperiment(e)).filter(e=>null!==e):null}triggerAutoExperiments(){this._autoExperimentsAllowed=!0,this._updateAllAutoExperiments(!0)}_getEvalContext(){return{user:this._getUserContext(),global:this._getGlobalContext(),stack:{evaluatedFeatures:new Set}}}_getUserContext(){return{attributes:this._options.user?{...this._options.user,...this._options.attributes}:this._options.attributes,enableDevMode:this._options.enableDevMode,blockedCh
2angeIds:this._options.blockedChangeIds,stickyBucketAssignmentDocs:this._options.stickyBucketAssignmentDocs,url:this._getContextUrl(),forcedVariations:this._options.forcedVariations,forcedFeatureValues:this._options.forcedFeatureValues,attributeOverrides:this._options.attributeOverrides,saveStickyBucketAssignmentDoc:this._saveStickyBucketAssignmentDoc,trackingCallback:this._options.trackingCallback,onFeatureUsage:this._options.onFeatureUsage,devLogs:this.logs,trackedExperiments:this._trackedExperiments,trackedFeatureUsage:this._trackedFeatures}}_getGlobalContext(){return{features:this._options.features,experiments:this._options.experiments,log:this.log,enabled:this._options.enabled,qaMode:this._options.qaMode,savedGroups:this._options.savedGroups,groups:this._options.groups,overrides:this._options.overrides,onExperimentEval:this._onExperimentEval,recordChangeId:this._recordChangedId,saveDeferredTrack:this._saveDeferredTrack,eventLogger:this._options.eventLogger}}_runAutoExperiment(e,t){let r,i,s=this._activeAutoExperiments.get(e);if(e.manual&&!this._triggeredExpKeys.has(e.key)&&!s)return null;this._isAutoExperimentBlockedByContext(e)?r=eG(this._getEvalContext(),e,-1,!1,""):({result:r,trackingCall:i}=eP(e,null,this._getEvalContext()),this._onExperimentEval(e,r));let n=JSON.stringify(r.value);if(!t&&r.inExperiment&&s&&s.valueHash===n)return r;if(s&&this._undoActiveAutoExperiment(e),r.inExperiment){let t=Y(e);if("redirect"===t&&r.value.urlRedirect&&e.urlPatterns){let t=e.persistQueryString?W(this._getContextUrl(),r.value.urlRedirect):r.value.urlRedirect;if(K(t,e.urlPatterns))return this.log("Skipping redirect because original URL matches redirect URL",{id:e.key}),r;this._redirectedUrl=t;let{navigate:s,delay:n}=this._getNavigateFunction();if(s)if(e1)Promise.all([...i?[ee(i,this._options.maxNavigateDelay??1e3)]:[],new Promise(e=>window.setTimeout(e,this._options.navigateDelay??n))]).then(()=>{try{s(t)}catch(e){console.error(e)}});else try{s(t)}catch(e){console.error(e)}}else if("visual"===t){let t=this._options.applyDomChangesCallback?this._options.applyDomChangesCallback(r.value):this._applyDOMChanges(r.value);t&&this._activeAutoExperiments.set(e,{undo:t,valueHash:n})}}return r}_undoActiveAutoExperiment(e){let t=this._activeAutoExperiments.get(e);t&&(t.undo(),this._activeAutoExperiments.delete(e))}_updateAllAutoExperiments(e){if(!this._autoExperimentsAllowed)return;let t=this._options.experiments||[],r=new Set(t);for(let i of(this._activeAutoExperiments.forEach((e,t)=>{r.has(t)||(e.undo(),this._activeAutoExperiments.delete(t))}),t)){let t=this._runAutoExperiment(i,e);if(t&&t.inExperiment&&"redirect"===Y(i))break}}_onExperimentEval(e,t){let r=this._assigned.get(e.key);this._assigned.set(e.key,{experiment:e,result:t}),this._subscriptions.size>0&&this._fireSubscriptions(e,t,r)}_fireSubscriptions(e,t,r){r&&r.result.inExperiment===t.inExperiment&&r.result.variationId===t.variationId||this._subscriptions.forEach(r=>{try{r(e,t)}catch(e){console.error(e)}})}_recordChangedId(e){this._completedChangeIds.add(e)}isOn(e){return this.evalFeature(e).on}isOff(e){return this.evalFeature(e).off}getFeatureValue(e,t){let r=this.evalFeature(e).value;return null===r?t:r}feature(e){return this.evalFeature(e)}evalFeature(e){return eO(e,this._getEvalContext())}log(e,t){this.debug&&(this._options.log?this._options.log(e,t):console.log(e,t))}getDeferredTrackingCalls(){return Array.from(this._deferredTrackingCalls.values())}setDeferredTrackingCalls(e){this._deferredTrackingCalls=new Map(e.filter(e=>e&&e.experiment&&e.result).map(e=>[e0(e.experiment,e.result),e]))}async fireDeferredTrackingCalls(){if(!this._options.trackingCallback)return;let e=[];this._deferredTrackingCalls.forEach(t=>{t&&t.experiment&&t.result?e.push(this._options.trackingCallback(t.experiment,t.result)):console.error("Invalid deferred tracking call",{call:t})}),this._deferredTrackingCalls.clear(),await Promise.all(e)}setTrackingCallback(e){this._options.trackingCallback=e,this.fireDeferredTrackingCalls()}setFeatureUsageCallback(e){this._options.onFeatureUsage=e}setEventLogger(e){this._options.eventLogger=e}async logEvent(e,t){if(this._destroyed)return void console.error("Cannot log event to destroyed GrowthBook instance");if(this._options.enableDevMode&&this.logs.push({eventName:e,properties:t,timestamp:Date.now().toString(),logType:"event"}),this._options.eventLogger)try{await this._options.eventLogger(e,t||{},this._getUserContext())}catch(e){console.error(e)}else console.error("No event logger configured")}_saveDeferredTrack(e){this._deferredTrackingCalls.set(e0(e.experiment,e.result),e)}_getContextUrl(){return this._options.url||(e1?window.location.href:"")}_isAutoExperimentBlockedByContext(e){let t=Y(e);if("visual"===t){if(this._options.disableVisualExperiments||this._options.disableJs
2Injection&&e.variations.some(e=>e.js))return!0}else{if("redirect"!==t||this._options.disableUrlRedirectExperiments)return!0;try{let t=new URL(this._getContextUrl());for(let r of e.variations){if(!r||!r.urlRedirect)continue;let e=new URL(r.urlRedirect);if(this._options.disableCrossOriginUrlRedirectExperiments&&(e.protocol!==t.protocol||e.host!==t.host))return!0}}catch(t){return this.log("Error parsing current or redirect URL",{id:e.key,error:t}),!0}}return!!(e.changeId&&(this._options.blockedChangeIds||[]).includes(e.changeId))}getRedirectUrl(){return this._redirectedUrl}_getNavigateFunction(){return this._options.navigate?{navigate:this._options.navigate,delay:0}:e1?{navigate:e=>{window.location.replace(e)},delay:100}:{navigate:null,delay:0}}_applyDOMChanges(e){if(!e1)return;let t=[];if(e.css){let r=document.createElement("style");r.innerHTML=e.css,document.head.appendChild(r),t.push(()=>r.remove())}if(e.js){let r=document.createElement("script");r.innerHTML=e.js,this._options.jsInjectionNonce&&(r.nonce=this._options.jsInjectionNonce),document.head.appendChild(r),t.push(()=>r.remove())}return e.domMutations&&e.domMutations.forEach(e=>{t.push($(e).revert)}),()=>{t.forEach(e=>e())}}async refreshStickyBuckets(e){if(this._options.stickyBucketService){let t=this._getEvalContext(),r=await eZ(t,this._options.stickyBucketService,e);this._options.stickyBucketAssignmentDocs=r}}generateStickyBucketAssignmentDocsSync(e,t){if(!("getAllAssignmentsSync"in e))return void console.error("generating StickyBucketAssignmentDocs docs requires StickyBucketServiceSync");let r=eW(this._getEvalContext(),t);return e.getAllAssignmentsSync(r)}inDevMode(){return!!this._options.enableDevMode}}],77081);var e7=e.i(330668);let e2=e7.createContext({});function e4(){let{growthbook:e}=e7.useContext(e2);if(!e)throw Error("Missing or invalid GrowthBookProvider");return e}e.s(["FeaturesReady",0,function({children:e,timeout:t,fallback:r}){let i=e4(),[s,n]=e7.useState(!1),a=!!i&&i.ready;return e7.useEffect(()=>{if(t&&!a){let e=setTimeout(()=>{i&&i.log("FeaturesReady timed out waiting for features to load",{timeout:t}),n(!0)},t);return()=>clearTimeout(e)}},[t,a,i]),e7.createElement(e7.Fragment,null,a||s?e:r||null)},"GrowthBookProvider",0,({children:e,growthbook:t})=>{let[r,i]=e7.useState(0);return e7.useEffect(()=>{if(t&&t.setRenderer)return t.setRenderer(()=>{i(e=>e+1)}),()=>{t.setRenderer(()=>{})}},[t]),e7.createElement(e2.Provider,{value:{growthbook:t}},e)},"useExperiment",0,function(e){let{growthbook:t}=e7.useContext(e2);return t.run(e)},"useFeature",0,function(e){return e4().evalFeature(e)},"useFeatureIsOn",0,function(e){return e4().isOn(e)},"useFeatureValue",0,function(e,t){return e4().getFeatureValue(e,t)},"useGrowthBook",0,e4],588455)}]); 3 4//# debugId=33a4d3d1-fb10-acf2-6408-aab2882d4cda 5//# sourceMappingURL=10b-xo_x9r_uf.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.