1function e(e){function t(e,t){Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.message=e,this.code=t}return t.prototype=Error(),t.prototype.name=e,t.prototype.constructor=t,t}for(var t=e(`LaunchDarklyUnexpectedResponseError`),n=e(`LaunchDarklyInvalidEnvironmentIdError`),r=e(`LaunchDarklyInvalidUserError`),i=e(`LaunchDarklyInvalidEventKeyError`),a=e(`LaunchDarklyInvalidArgumentError`),o=e(`LaunchDarklyFlagFetchError`),s={LDUnexpectedResponseError:t,LDInvalidEnvironmentIdError:n,LDInvalidUserError:r,LDInvalidEventKeyError:i,LDInvalidArgumentError:a,LDInvalidDataError:e(`LaunchDarklyInvalidDataError`),LDFlagFetchError:o,LDTimeoutError:e(`LaunchDarklyTimeoutError`),isHttpErrorRecoverable:function(e){return!(e>=400&&e<500)||e===400||e===408||e===429}},c=function(e){var t=g(e),n=t[0],r=t[1];return 3*(n+r)/4-r},l=function(e){var t,n,r=g(e),i=r[0],a=r[1],o=new p(function(e,t,n){return 3*(t+n)/4-n}(0,i,a)),s=0,c=a>0?i-4:i;for(n=0;n<c;n+=4)t=f[e.charCodeAt(n)]<<18|f[e.charCodeAt(n+1)]<<12|f[e.charCodeAt(n+2)]<<6|f[e.charCodeAt(n+3)],o[s++]=t>>16&255,o[s++]=t>>8&255,o[s++]=255&t;return a===2&&(t=f[e.charCodeAt(n)]<<2|f[e.charCodeAt(n+1)]>>4,o[s++]=255&t),a===1&&(t=f[e.charCodeAt(n)]<<10|f[e.charCodeAt(n+1)]<<4|f[e.charCodeAt(n+2)]>>2,o[s++]=t>>8&255,o[s++]=255&t),o},u=function(e){for(var t,n=e.length,r=n%3,i=[],a=16383,o=0,s=n-r;o<s;o+=a)i.push(v(e,o,o+a>s?s:o+a));return r===1?(t=e[n-1],i.push(d[t>>2]+d[t<<4&63]+`==`)):r===2&&(t=(e[n-2]<<8)+e[n-1],i.push(d[t>>10]+d[t>>4&63]+d[t<<2&63]+`=`)),i.join(``)},d=[],f=[],p=typeof Uint8Array<`u`?Uint8Array:Array,m=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,h=0;h<64;++h)d[h]=m[h],f[m.charCodeAt(h)]=h;function g(e){var t=e.length;if(t%4>0)throw Error(`Invalid string. Length must be a multiple of 4`);var n=e.indexOf(`=`);return n===-1&&(n=t),[n,n===t?0:4-n%4]}function _(e){return d[e>>18&63]+d[e>>12&63]+d[e>>6&63]+d[63&e]}function v(e,t,n){for(var r,i=[],a=t;a<n;a+=3)r=(e[a]<<16&16711680)+(e[a+1]<<8&65280)+(255&e[a+2]),i.push(_(r));return i.join(``)}f[45]=62,f[95]=63;var y={byteLength:c,toByteArray:l,fromByteArray:u},b=Array.isArray,x=Object.keys,S=Object.prototype.hasOwnProperty,C=function e(t,n){if(t===n)return!0;if(t&&n&&typeof t==`object`&&typeof n==`object`){var r,i,a,o=b(t),s=b(n);if(o&&s){if((i=t.length)!=n.length)return!1;for(r=i;r--!==0;)if(!e(t[r],n[r]))return!1;return!0}if(o!=s)return!1;var c=t instanceof Date,l=n instanceof Date;if(c!=l)return!1;if(c&&l)return t.getTime()==n.getTime();var u=t instanceof RegExp,d=n instanceof RegExp;if(u!=d)return!1;if(u&&d)return t.toString()==n.toString();var f=x(t);if((i=f.length)!==x(n).length)return!1;for(r=i;r--!==0;)if(!S.call(n,f[r]))return!1;for(r=i;r--!==0;)if(!e(t[a=f[r]],n[a]))return!1;return!0}return t!=t&&n!=n},w=[`key`,`ip`,`country`,`email`,`firstName`,`lastName`,`avatar`,`name`];function T(e){let t=unescape(encodeURIComponent(e));return y.fromByteArray(function(e){let t=[];for(let n=0;n<e.length;n++)t.push(e.charCodeAt(n));return t}(t))}function E(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var D={appendUrlPath:function(e,t){return(e.endsWith(`/`)?e.substring(0,e.length-1):e)+(t.startsWith(`/`)?``:`/`)+t},base64URLEncode:function(e){return T(e).replace(/=/g,``).replace(/\+/g,`-`).replace(/\//g,`_`)},btoa:T,clone:function(e){return JSON.parse(JSON.stringify(e))},deepEquals:function(e,t){return C(e,t)},extend:function(...e){return e.reduce((e,t)=>({...e,...t}),{})},getLDUserAgentString:function(e){let t=e.version||`?`;return e.userAgent+`/`+t},objectHasOwnProperty:E,onNextTick:function(e){setTimeout(e,0)},sanitizeContext:function(e){if(!e)return e;let t;return e.kind!==null&&e.kind!==void 0||w.forEach(n=>{let r=e[n];r!==void 0&&typeof r!=`string`&&(t||={...e},t[n]=String(r))}),t||e},transformValuesToVersionedValues:function(e){let t={};for(let n in e)E(e,n)&&(t[n]={value:e[n],version:0});return t},transformVersionedValuesToValues:function(e){let t={};for(let n in e)E(e,n)&&(t[n]=e[n].value);return t},wrapPromiseCallback:function(e,t){let n=e.then(e=>(t&&setTimeout(()=>{t(null,e)},0),e),e=>{if(!t)return Promise.reject(e);setTimeout(()=>{t(e,null)},0)});return t?void 0:n},once:function(e){let t,n=!1;return function(...r){return n||(n=!0,t=e.apply(this,r)),t}}},O={start:0,end:3},k={start:4,end:5},A={start:6,end:7},j={start:8,end:8},M={start:9,end:9},ee={start:10,end:15};function N(e,t){let n=``;for(let r=t.start;r<=t.end;r+=1)n+=e[r].toString(16).padStart(2,`0`);return n}function te(e){return e[j.start]=191&e[j.start]|128,e[A.start]=15&e[A.start]|64,`${N(e,O)}-${N(e,k)}-${N(e,A)}
1-${N(e,j)}${N(e,M)}-${N(e,ee)}`}function P(){return te(function(){if(typeof crypto<`u`&&crypto.getRandomValues){let e=new Uint8Array(16);return crypto.getRandomValues(e),[...e.values()]}let e=[];for(let t=0;t<16;t+=1)e.push(Math.floor(256*Math.random()));return e}())}var F={randomUuidV4:function(){return typeof crypto<`u`&&typeof crypto.randomUUID==`function`?crypto.randomUUID():P()},fallbackUuidV4:P,formatDataAsUuidV4:te},I=[`debug`,`info`,`warn`,`error`,`none`],L={commonBasicLogger:function(e,t){if(e&&e.destination&&typeof e.destination!=`function`)throw Error(`destination for basicLogger was set to a non-function`);function n(e){return function(t){console&&console[e]&&console[e].call(console,t)}}let r=e&&e.destination?[e.destination,e.destination,e.destination,e.destination]:[n(`log`),n(`info`),n(`warn`),n(`error`)],i=!(!e||!e.destination),a=e&&e.prefix!==void 0&&e.prefix!==null?e.prefix:`[LaunchDarkly] `,o=1;if(e&&e.level)for(let t=0;t<I.length;t++)I[t]===e.level&&(o=t);function s(e,n,o){if(o.length<1)return;let s,c=i?n+`: `+a:a;if(o.length!==1&&t){let e=[...o];e[0]=c+e[0],s=t(...e)}else s=c+o[0];try{r[e](s)}catch(e){console&&console.log&&console.log(`[LaunchDarkly] Configured logger's `+n+` method threw an exception: `+e)}}let c={};for(let e=0;e<I.length;e++){let t=I[e];if(t!==`none`)if(e<o)c[t]=()=>{};else{let n=e;c[t]=function(){s(n,t,arguments)}}}return c},validateLogger:function(e){I.forEach(t=>{if(t!==`none`&&(!e[t]||typeof e[t]!=`function`))throw Error(`Provided logger instance must support logger.`+t+`(...) method`)})}};function R(e){return e&&e.message?e.message:typeof e==`string`||e instanceof String?e:JSON.stringify(e)}var z={bootstrapInvalid:function(){return`LaunchDarkly bootstrap data is not available because the back end could not read the flags.`},bootstrapOldFormat:function(){return`LaunchDarkly client was initialized with bootstrap data that did not include flag metadata. Events may not be sent correctly. Please see https://docs.launchdarkly.com/sdk/client-side/javascript#initialize-the-client for instructions on SDK initialization.`},clientInitialized:function(){return`LaunchDarkly client initialized`},clientNotReady:function(){return`LaunchDarkly client is not ready`},debugEnqueueingEvent:function(e){return`enqueueing "`+e+`" event`},debugPostingDiagnosticEvent:function(e){return`sending diagnostic event (`+e.kind+`)`},debugPostingEvents:function(e){return`sending `+e+` events`},debugStreamDelete:function(e){return`received streaming deletion for flag "`+e+`"`},debugStreamDeleteIgnored:function(e){return`received streaming deletion for flag "`+e+`" but ignored due to version check`},debugStreamPatch:function(e){return`received streaming update for flag "`+e+`"`},debugStreamPatchIgnored:function(e){return`received streaming update for flag "`+e+`" but ignored due to version check`},debugStreamPing:function(){return`received ping message from stream`},debugPolling:function(e){return`polling for feature flags at `+e},debugStreamPut:function(){return`received streaming update for all flags`},deprecated:function(e,t){return t?`"`+e+`" is deprecated, please use "`+t+`"`:`"`+e+`" is deprecated`},environmentNotFound:function(){return`Environment not found. Double check that you specified a valid environment/client-side ID. Please see https://docs.launchdarkly.com/sdk/client-side/javascript#initialize-the-client for instructions on SDK initialization.`},environmentNotSpecified:function(){return`No environment/client-side ID was specified. Please see https://docs.launchdarkly.com/sdk/client-side/javascript#initialize-the-client for instructions on SDK initialization.`},errorFetchingFlags:function(e){return`Error fetching flag settings: `+R(e)},eventCapacityExceeded:function(){return`Exceeded event queue capacity. Increase capacity to avoid dropping events.`},eventWithoutContext:function(){return"Be sure to call `identify` in the LaunchDarkly client: https://docs.launchdarkly.com/sdk/features/identify#javascript"},httpErrorMessage:function(e,t,n){return`Received error `+e+(e===401?` (invalid SDK key)`:``)+` for `+t+` - `+(s.isHttpErrorRecoverable(e)?n:`giving up permanently`)},httpUnavailable:function(){return`Cannot make HTTP requests in this environment. Please see https://docs.lau
1nchdarkly.com/sdk/client-side/javascript#initialize-the-client for instructions on SDK initialization.`},identifyDisabled:function(){return`identify() has no effect here; it must be called on the main client instance`},inspectorMethodError:(e,t)=>`an inspector: "${t}" of type: "${e}" generated an exception`,invalidContentType:function(e){return`Expected application/json content type but got "`+e+`"`},invalidData:function(){return`Invalid data received from LaunchDarkly; connection may have been interrupted`},invalidInspector:(e,t)=>`an inspector: "${t}" of an invalid type (${e}) was configured`,invalidKey:function(){return`Event key must be a string`},invalidMetricValue:e=>`The track function was called with a non-numeric "metricValue" (${e}), only numeric metric values are supported.`,invalidContext:function(){return`Invalid context specified. Please see https://docs.launchdarkly.com/sdk/client-side/javascript#initialize-the-client for instructions on SDK initialization.`},invalidTagValue:e=>`Config option "${e}" must only contain letters, numbers, ., _ or -.`,localStorageUnavailable:function(e){return`local storage is unavailable: `+R(e)},networkError:e=>`network error`+(e?` (`+e+`)`:``),optionBelowMinimum:(e,t,n)=>`Config option "`+e+`" was set to `+t+`, changing to minimum value of `+n,streamClosing:function(){return`Closing stream connection`},streamConnecting:function(e){return`Opening stream connection to `+e},streamError:function(e,t){return`Error on stream connection: `+R(e)+`, will continue retrying after `+t+` milliseconds.`},tagValueTooLong:e=>`Value of "${e}" was longer than 64 characters and was discarded.`,unknownCustomEventKey:function(e){return`Custom event "`+e+`" does not exist`},unknownOption:e=>`Ignoring unknown config option "`+e+`"`,contextNotSpecified:function(){return`No context specified. Please see https://docs.launchdarkly.com/sdk/client-side/javascript#initialize-the-client for instructions on SDK initialization.`},unrecoverableStreamError:e=>`Error on stream connection ${R(e)}, giving up permanently`,wrongOptionType:(e,t,n)=>`Config option "`+e+`" should be of type `+t+`, got `+n+`, using default value`,wrongOptionTypeBoolean:(e,t)=>`Config option "`+e+`" should be a boolean, got `+t+`, converting to boolean`},{validateLogger:B}=L,ne={baseUrl:{default:`https://app.launchdarkly.com`},streamUrl:{default:`https://clientstream.launchdarkly.com`},eventsUrl:{default:`https://events.launchdarkly.com`},sendEvents:{default:!0},streaming:{type:`boolean`},sendLDHeaders:{default:!0},requestHeaderTransform:{type:`function`},sendEventsOnlyForVariation:{default:!1},useReport:{default:!1},evaluationReasons:{default:!1},eventCapacity:{default:100,minimum:1},flushInterval:{default:2e3,minimum:2e3},samplingInterval:{default:0,minimum:0},streamReconnectDelay:{default:1e3,minimum:0},allAttributesPrivate:{default:!1},privateAttributes:{default:[]},bootstrap:{type:`string|object`},diagnosticRecordingInterval:{default:9e5,minimum:2e3},diagnosticOptOut:{default:!1},wrapperName:{type:`string`},wrapperVersion:{type:`string`},stateProvider:{type:`object`},application:{validator:function(e,t,n){let r={};return t.id&&(r.id=H(`${e}.id`,t.id,n)),t.version&&(r.version=H(`${e}.version`,t.version,n)),r}},inspectors:{default:[]},hooks:{default:[]},plugins:{default:[]}},re=/^(\w|\.|-)+$/;function V(e){return e&&e.replace(/\/+$/,``)}function H(e,t,n){if(typeof t==`string`&&t.match(re)){if(!(t.length>64))return t;n.warn(z.tagValueTooLong(e))}else n.warn(z.invalidTagValue(e))}var ie={baseOptionDefs:ne,validate:function(e,t,n,r){let i=D.extend({logger:{default:r}},ne,n),a={};function o(e){D.onNextTick(()=>{t&&t.maybeReportError(new s.LDInvalidArgumentError(e))})}let c=D.extend({},e||{});return function(e){let t=e;Object.keys(a).forEach(e=>{if(t[e]!==void 0){let n=a[e];r&&r.warn(z.deprecated(e,n)),n&&(t[n]===void 0&&(t[n]=t[e]),delete t[e])}})}(c),c=function(e){let t=D.extend({},e);
1return Object.keys(i).forEach(e=>{t[e]!==void 0&&t[e]!==null||(t[e]=i[e]&&i[e].default)}),t}(c),c=function(e){let t=D.extend({},e),n=e=>{if(e===null)return`any`;if(e===void 0)return;if(Array.isArray(e))return`array`;let t=typeof e;return t===`boolean`||t===`string`||t===`number`||t===`function`?t:`object`};return Object.keys(e).forEach(a=>{let s=e[a];if(s!=null){let c=i[a];if(c===void 0)o(z.unknownOption(a));else{let i=c.type||n(c.default),l=c.validator;if(l){let n=l(a,e[a],r);n===void 0?delete t[a]:t[a]=n}else if(i!==`any`){let e=i.split(`|`),r=n(s);e.indexOf(r)<0?i===`boolean`?(t[a]=!!s,o(z.wrongOptionTypeBoolean(a,r))):(o(z.wrongOptionType(a,i,r)),t[a]=c.default):r===`number`&&c.minimum!==void 0&&s<c.minimum&&(o(z.optionBelowMinimum(a,s,c.minimum)),t[a]=c.minimum)}}}}),t.baseUrl=V(t.baseUrl),t.streamUrl=V(t.streamUrl),t.eventsUrl=V(t.eventsUrl),t}(c),B(c.logger),c},getTags:function(e){let t={};return e&&(e.application&&e.application.id!==void 0&&e.application.id!==null&&(t[`application-id`]=[e.application.id]),e.application&&e.application.version!==void 0&&e.application.id!==null&&(t[`application-version`]=[e.application.version])),t}},{getLDUserAgentString:U}=D,W={getLDHeaders:function(e,t){if(t&&!t.sendLDHeaders)return{};let n={};n[e.userAgentHeaderName||`User-Agent`]=U(e),t&&t.wrapperName&&(n[`X-LaunchDarkly-Wrapper`]=t.wrapperVersion?t.wrapperName+`/`+t.wrapperVersion:t.wrapperName);let r=ie.getTags(t),i=Object.keys(r);return i.length&&(n[`x-launchdarkly-tags`]=i.sort().map(e=>Array.isArray(r[e])?r[e].sort().map(t=>`${e}/${t}`):[`${e}/${r[e]}`]).reduce((e,t)=>e.concat(t),[]).join(` `)),n},transformHeaders:function(e,t){return t&&t.requestHeaderTransform?t.requestHeaderTransform({...e}):e}},{randomUuidV4:G}=F,{getLDHeaders:K,transformHeaders:q}=W,ae=function(e,t,n){let r=D.extend({"Content-Type":`application/json`},K(e,n)),i={};return i.sendEvents=(t,i,a)=>{if(!e.httpRequest)return Promise.resolve();let o=JSON.stringify(t),c=a?null:G();return function t(l){let u=a?r:D.extend({},r,{"X-LaunchDarkly-Event-Schema":`4`,"X-LaunchDarkly-Payload-ID":c});return e.httpRequest(`POST`,i,q(u,n),o).promise.then(e=>{if(e)return e.status>=400&&s.isHttpErrorRecoverable(e.status)&&l?t(!1):function(e){let t={status:e.status},n=e.header(`date`);if(n){let e=Date.parse(n);e&&(t.serverTime=e)}return t}(e)}).catch(()=>l?t(!1):Promise.reject())}(!0).catch(()=>{})},i},J=function e(t,n=[]){if(typeof t!=`object`||!t)return JSON.stringify(t);if(n.includes(t))throw Error(`Cycle detected`);return Array.isArray(t)?`[${t.map(r=>e(r,[...n,t])).map(e=>e===void 0?`null`:e).join(`,`)}]`:`{${Object.keys(t).sort().map(r=>{let i=e(t[r],[...n,t]);if(i!==void 0)return`${JSON.stringify(r)}:${i}`}).filter(e=>e!==void 0).join(`,`)}}`},{commonBasicLogger:oe}=L;function se(e){return typeof e==`string`&&e!==`kind`&&e.match(/^(\w|\.|-)+$/)}function Y(e){return e.includes(`%`)||e.includes(`:`)?e.replace(/%/g,`%25`).replace(/:/g,`%3A`):e}var X={checkContext:function(e,t){if(e){if(t&&(e.kind===void 0||e.kind===null))return e.key!==void 0&&e.key!==null;let n=e.key,r=e.kind===void 0?`user`:e.kind,i=se(r),a=r===`multi`||n!=null&&n!==``;if(r===`multi`){let t=Object.keys(e).filter(e=>e!==`kind`);return a&&t.every(e=>se(e))&&t.every(t=>{let n=e[t].key;return n!=null&&n!==``})}return a&&i}return!1},getContextKeys:function(e,t=oe()){if(!e)return;let n={},{kind:r,key:i}=e;switch(r){case void 0:n.user=`${i}`;break;case`multi`:Object.entries(e).filter(([e])=>e!==`kind`).forEach(([e,t])=>{t&&t.key&&(n[e]=t.key)});break;case null:t.warn(`null is not a valid context kind: ${e}`);break;case``:t.warn(`'' is not a valid context kind: ${e}`);break;default:n[r]=`${i}`}return n},getContextKinds:function(e){return e?e.kind===null||e.kind===void 0?[`user`]:e.kind===`multi`?Object.keys(e).filter(e=>e!==`kind`):[e.kind]:[]},getCanonicalKey:function(e){if(e){if((e.kind===void 0||e.kind===null||e.kind===`user`)&&e.key)return e.key;if(e.kind!==`multi`&&e.key)return`${e.kind}:${Y(e.key)}`;if(e.kind===`multi`)return Object.keys(e).sort().filter(e=>e!==`kind`).map(t=>`${t}:${Y(e[t].key)}`).join(`:`)}}},{getContextKinds:ce}=X,le=function(){let e={},t=0,n=0,r={},i={};return e.summarizeEvent=e=>{if(e.kind===`feature`){let a=e.key+`:`+(e.variation!==null&&e.variation!==void 0?e.variation:``)+`:`+(e.version!==null&&e.version!==void 0?e.version:``),o=r[a],s=i[e.key];
1s||(s=new Set,i[e.key]=s),function(e){return e.context?ce(e.context):e.contextKeys?Object.keys(e.contextKeys):[]}(e).forEach(e=>s.add(e)),o?o.count+=1:r[a]={count:1,key:e.key,version:e.version,variation:e.variation,value:e.value,default:e.default},(t===0||e.creationDate<t)&&(t=e.creationDate),e.creationDate>n&&(n=e.creationDate)}},e.getSummary=()=>{let e={},a=!0;for(let t of Object.values(r)){let n=e[t.key];n||(n={default:t.default,counters:[],contextKinds:[...i[t.key]]},e[t.key]=n);let r={value:t.value,count:t.count};t.variation!==void 0&&t.variation!==null&&(r.variation=t.variation),t.version!==void 0&&t.version!==null?r.version=t.version:r.unknown=!0,n.counters.push(r),a=!1}return a?null:{startDate:t,endDate:n,features:e,kind:`summary`}},e.clearSummary=()=>{t=0,n=0,r={},i={}},e},ue=function(e){let t={},n={};return{summarizeEvent:function(e){if(e.kind===`feature`){let r=J(e.context);if(!r)return;let i=t[r];i||(t[r]=le(),i=t[r],n[r]=e.context),i.summarizeEvent(e)}},getSummaries:function(){let r=t,i=n;return t={},n={},Object.entries(r).map(([t,n])=>{let r=n.getSummary();return r.context=e.filter(i[t]),r})}}};function de(e){return e.replace(/~/g,`~0`).replace(/\//g,`~1`)}function fe(e){return(e.startsWith(`/`)?e.substring(1):e).split(`/`).map(e=>e.indexOf(`~`)>=0?e.replace(/~1/g,`/`).replace(/~0/g,`~`):e)}function pe(e){return!e.startsWith(`/`)}function me(e,t){let n=pe(e),r=pe(t);if(n&&r)return e===t;if(n){let n=fe(t);return n.length===1&&e===n[0]}if(r){let n=fe(e);return n.length===1&&t===n[0]}return e===t}function he(e){return`/${de(e)}`}var ge={cloneExcluding:function(e,t){let n=[],r={},i=[];for(n.push(...Object.keys(e).map(t=>({key:t,ptr:he(t),source:e,parent:r,visited:[e]})));n.length;){let e=n.pop();if(t.some(t=>me(t,e.ptr)))i.push(e.ptr);else{let t=e.source[e.key];if(t===null)e.parent[e.key]=t;else if(Array.isArray(t))e.parent[e.key]=[...t];else if(typeof t==`object`){if(e.visited.includes(t))continue;e.parent[e.key]={},n.push(...Object.keys(t).map(n=>{return{key:n,ptr:(r=e.ptr,i=de(n),`${r}/${i}`),source:t,parent:e.parent[e.key],visited:[...e.visited,t]};var r,i}))}else e.parent[e.key]=t}}return{cloned:r,excluded:i.sort()}},compare:me,literalToReference:he},_e=function(e){let t={},n=e.allAttributesPrivate,r=e.privateAttributes||[],i=[`key`,`kind`,`_meta`,`anonymous`],a=[`name`,`ip`,`firstName`,`lastName`,`email`,`avatar`,`country`],o=(e,t)=>{if(typeof e!=`object`||!e||Array.isArray(e))return;let{cloned:a,excluded:o}=ge.cloneExcluding(e,((e,t)=>(n||t&&e.anonymous?Object.keys(e):[...r,...e._meta&&e._meta.privateAttributes||[]]).filter(e=>!i.some(t=>ge.compare(e,t))))(e,t));return a.key=String(a.key),o.length&&(a._meta||={},a._meta.redactedAttributes=o),a._meta&&(delete a._meta.privateAttributes,Object.keys(a._meta).length===0&&delete a._meta),a.anonymous!==void 0&&(a.anonymous=!!a.anonymous),a};return t.filter=(e,t=!1)=>e.kind===void 0||e.kind===null?o((e=>{let t={...e.custom||{},kind:`user`,key:e.key};e.anonymous!==void 0&&(t.anonymous=!!e.anonymous);for(let n of a)delete t[n],e[n]!==void 0&&e[n]!==null&&(t[n]=String(e[n]));return e.privateAttributeNames!==void 0&&e.privateAttributeNames!==null&&(t._meta=t._meta||{},t._meta.privateAttributes=e.privateAttributeNames.map(e=>e.startsWith(`/`)?ge.literalToReference(e):e)),t})(e),t):e.kind===`multi`?((e,t)=>{let n={kind:e.kind},r=Object.keys(e);for(let i of r)if(i!==`kind`){let r=o(e[i],t);r&&(n[i]=r)}return n})(e,t):o(e,t),t},{getContextKeys:ve}=X,ye=function(e,t,n,r=null,i=null,a=null){let o={},c=a||ae(e,n,t),l=D.appendUrlPath(t.eventsUrl,`/events/bulk/`+n),u=_e(t),d=ue(u),f=t.samplingInterval,p=t.eventCapacity,m=t.flushInterval,h=t.logger,g,_=[],v=0,y=!1,b=!1;function x(){return f===0||Math.floor(Math.random()*f)===0}function S(e){let t=D.extend({},e);return e.kind===`identify`||e.kind===`feature`||e.kind===`custom`?t.context=u.filter(e.context):(t.contextKeys=ve(e.context,h),delete t.context),e.kind===`feature`&&(delete t.trackEvents,delete t.debugEventsUntilDate),t}function C(e){_.length<p?(_.push(e),b=!1):(b||(b=!0,h.warn(z.eventCapacityExceeded())),r&&r.incrementDroppedEvents())}return o.enqueue=function(e){if(y)return;let t=!1,n=!1;var r;if(d.summarizeEvent(e),e.kind===`feature`?x()&&(t=!!e.trackEvents,n=!!(r=e).debugEventsUntilDate&&r.debugEventsUntilDate>v&&r.debugEventsUntilDate>new Date().getTime()):t=x(),t&&C(S(e)),n){let t=D.extend({},e,{kind:`debug`});t.context=u.filter(t.context),delete t.trackEvents,delete t.debugEventsUntilDate,C(t)}},o.flush=async function(){if(y)return Promise.resolve();let e=_;
1return d.getSummaries().forEach(t=>{Object.keys(t.features).length&&e.push(t)}),r&&r.setEventsInLastBatch(e.length),e.length===0?Promise.resolve():(_=[],h.debug(z.debugPostingEvents(e.length)),c.sendEvents(e,l).then(e=>{e&&(e.serverTime&&(v=e.serverTime),s.isHttpErrorRecoverable(e.status)||(y=!0),e.status>=400&&D.onNextTick(()=>{i.maybeReportError(new s.LDUnexpectedResponseError(z.httpErrorMessage(e.status,`event posting`,`some events were dropped`)))}))}))},o.start=function(){let e=()=>{o.flush(),g=setTimeout(e,m)};g=setTimeout(e,m)},o.stop=function(){clearTimeout(g)},o},be=function(e){let t={},n={};return t.on=function(e,t,r){n[e]=n[e]||[],n[e]=n[e].concat({handler:t,context:r})},t.off=function(e,t,r){if(n[e])for(let i=0;i<n[e].length;i++)n[e][i].handler===t&&n[e][i].context===r&&(n[e]=n[e].slice(0,i).concat(n[e].slice(i+1)))},t.emit=function(e){if(!n[e])return;let t=n[e].slice(0);for(let e=0;e<t.length;e++)t[e].handler.apply(t[e].context,Array.prototype.slice.call(arguments,1))},t.getEvents=function(){return Object.keys(n)},t.getEventListenerCount=function(e){return n[e]?n[e].length:0},t.maybeReportError=function(t){t&&(n.error?this.emit(`error`,t):(e||console).error(t.message))},t},xe=`ready`,Se=`initialized`,Ce=`failed`,we=function(e){let t=!1,n=!1,r=null,i=null,a=new Promise(t=>{let n=()=>{e.off(xe,n),t()};e.on(xe,n)}).catch(()=>{});return{getInitializationPromise:()=>i||(t?Promise.resolve():n?Promise.reject(r):(i=new Promise((t,n)=>{let r=()=>{e.off(Se,r),t()},i=t=>{e.off(Ce,i),n(t)};e.on(Se,r),e.on(Ce,i)}),i)),getReadyPromise:()=>a,signalSuccess:()=>{t||n||(t=!0,e.emit(Se),e.emit(xe))},signalFailure:i=>{t||n||(n=!0,r=i,e.emit(Ce,i),e.emit(xe)),e.maybeReportError(i)}}},Te=function(e,t,n,r){let i={};function a(){let e=``,i=r.getContext();return i&&(e=n||D.btoa(JSON.stringify(i))),`ld:`+t+`:`+e}return i.loadFlags=()=>e.get(a()).then(e=>{if(e==null)return null;try{let t=JSON.parse(e);if(t){let e=t.$schema;e===void 0||e<1?t=D.transformValuesToVersionedValues(t):delete t.$schema}return t}catch{return i.clearFlags().then(()=>null)}}),i.saveFlags=t=>{let n=D.extend({},t,{$schema:1});return e.set(a(),JSON.stringify(n))},i.clearFlags=()=>e.clear(a()),i},Ee=function(e,t){let n={},r=!1,i=e=>{r||(r=!0,t.warn(z.localStorageUnavailable(e)))};return n.isEnabled=()=>!!e,n.get=t=>new Promise(n=>{e?e.get(t).then(n).catch(e=>{i(e),n(void 0)}):n(void 0)}),n.set=(t,n)=>new Promise(r=>{e?e.set(t,n).then(()=>r(!0)).catch(e=>{i(e),r(!1)}):r(!1)}),n.clear=t=>new Promise(n=>{e?e.clear(t).then(()=>n(!0)).catch(e=>{i(e),n(!1)}):n(!1)}),n},{appendUrlPath:De,base64URLEncode:Oe,objectHasOwnProperty:ke}=D,{getLDHeaders:Ae,transformHeaders:je}=W,{isHttpErrorRecoverable:Me}=s,Ne=function(e,t,n,r){let i=t.streamUrl,a=t.logger,o={},s=De(i,`/eval/`+n),c=t.useReport,l=t.evaluationReasons,u=t.streamReconnectDelay,d=Ae(e,t),f,p=!1,m=null,h=null,g=null,_=null,v=null,y=0;function b(){let e=(t=function(){let e=u*2**y;return e>3e4?3e4:e}(),t-Math.trunc(.5*Math.random()*t));var t;return y+=1,e}function x(e){if(e.status&&typeof e.status==`number`&&!Me(e.status))return w(),a.error(z.unrecoverableStreamError(e)),void(h&&=(clearTimeout(h),null));let t=b();p||=(a.warn(z.streamError(e,t)),!0),T(!1),w(),S(t)}function S(e){h||(e?h=setTimeout(C,e):C())}function C(){let r;h=null;let o=``,u={headers:d,readTimeoutMillis:3e5};if(e.eventSourceFactory){_!=null&&(o=`h=`+_),c?e.eventSourceAllowsReport?(r=s,u.method=`REPORT`,u.headers[`Content-Type`]=`application/json`,u.body=JSON.stringify(g)):(r=De(i,`/ping/`+n),o=``):r=s+`/`+Oe(JSON.stringify(g)),u.headers=je(u.headers,t),l&&(o=o+(o?`&`:``)+`withReasons=true`),r=r+(o?`?`:``)+o,w(),a.info(z.streamConnecting(r)),f=new Date().getTime(),m=e.eventSourceFactory(r,u);for(let e in v)ke(v,e)&&m.addEventListener(e,v[e]);m.onerror=x,m.onopen=()=>{y=0}}}function w(){m&&=(a.info(z.streamClosing()),m.close(),null)}function T(e){f&&r&&r.recordStreamInit(f,!e,new Date().getTime()-f),f=null}return o.connect=function(e,t,n){g=e,_=t,v={};for(let e in n||{})v[e]=function(t){p=!1,T(!0),n[e]&&n[e](t)};S()},o.disconnect=function(){clearTimeout(h),h=null,w()},o.isConnected=function(){return!!(m&&e.eventSourceIsActive&&e.eventSourceIsActive(m))},o},Pe=function(e){let t,n,r,i,a={addPromise:(a,o)=>{t=a,n&&n(),n=o,a.then(n=>{t===a&&(r(n),e&&e())},n=>{t===a&&(i(n),e&&e())})}};return a.resultPromise=new Promise((e,t)=>
1{r=e,i=t}),a},{transformHeaders:Fe,getLDHeaders:Ie}=W,Le=`application/json`,Re=function(e,t,n){let r=t.baseUrl,i=t.useReport,a=t.evaluationReasons,o=t.logger,c={},l={};function u(n,r){if(!e.httpRequest)return new Promise((e,t)=>{t(new s.LDFlagFetchError(z.httpUnavailable()))});let i=r?`REPORT`:`GET`,a=Ie(e,t);r&&(a[`Content-Type`]=Le);let o=l[n];o||(o=Pe(()=>{delete l[n]}),l[n]=o);let c=e.httpRequest(i,n,Fe(a,t),r),u=c.promise.then(e=>{if(e.status===200){if(e.header(`content-type`)&&e.header(`content-type`).substring(0,16)===Le)return JSON.parse(e.body);{let t=z.invalidContentType(e.header(`content-type`)||``);return Promise.reject(new s.LDFlagFetchError(t))}}return Promise.reject(function(e){return e.status===404?new s.LDInvalidEnvironmentIdError(z.environmentNotFound()):new s.LDFlagFetchError(z.errorFetchingFlags(e.statusText||String(e.status)))}(e))},e=>Promise.reject(new s.LDFlagFetchError(z.networkError(e))));return o.addPromise(u,()=>{c.cancel&&c.cancel()}),o.resultPromise}return c.fetchJSON=function(e){return u(D.appendUrlPath(r,e),null)},c.fetchFlagSettings=function(e,t){let s,c,l,d=``;return i?(c=[r,`/sdk/evalx/`,n,`/context`].join(``),l=JSON.stringify(e)):(s=D.base64URLEncode(JSON.stringify(e)),c=[r,`/sdk/evalx/`,n,`/contexts/`,s].join(``)),t&&(d=`h=`+t),a&&(d=d+(d?`&`:``)+`withReasons=true`),c=c+(d?`?`:``)+d,o.debug(z.debugPolling(c)),u(c,l)},c},ze=function(e,t){let n={},r;return n.setContext=function(e){r=D.sanitizeContext(e),r&&t&&t(D.clone(r))},n.getContext=function(){return r?D.clone(r):null},e&&n.setContext(e),n},{randomUuidV4:Be}=F,{getContextKinds:Ve}=X,He=function(e){function t(e){return e==null||e===`user`?`ld:$anonUserId`:`ld:$contextKey:${e}`}function n(n,r){return r.key!==null&&r.key!==void 0?(r.key=r.key.toString(),Promise.resolve(r)):r.anonymous?function(n){return e.get(t(n))}(n).then(i=>{if(i)return r.key=i,r;{let i=Be();return r.key=i,function(n,r){return e.set(t(r),n)}(i,n).then(()=>r)}}):Promise.reject(new s.LDInvalidUserError(z.invalidContext()))}this.processContext=e=>{if(!e)return Promise.reject(new s.LDInvalidUserError(z.contextNotSpecified()));let t=D.clone(e);if(e.kind===`multi`){let e=Ve(t);return Promise.all(e.map(e=>n(e,t[e]))).then(()=>t)}return n(e.kind,t)}},{randomUuidV4:Ue}=F,{baseOptionDefs:We}=ie,{appendUrlPath:Ge}=D,Ke={DiagnosticId:function(e){let t={diagnosticId:Ue()};return e&&(t.sdkKeySuffix=e.length>6?e.substring(e.length-6):e),t},DiagnosticsAccumulator:function(e){let t,n,r,i;function a(e){t=e,n=0,r=0,i=[]}return a(e),{getProps:()=>({dataSinceDate:t,droppedEvents:n,eventsInLastBatch:r,streamInits:i}),setProps:e=>{t=e.dataSinceDate,n=e.droppedEvents||0,r=e.eventsInLastBatch||0,i=e.streamInits||[]},incrementDroppedEvents:()=>{n++},setEventsInLastBatch:e=>{r=e},recordStreamInit:(e,t,n)=>{let r={timestamp:e,failed:t,durationMillis:n};i.push(r)},reset:a}},DiagnosticsManager:function(e,t,n,r,i,a,o){let s=!!e.diagnosticUseCombinedEvent,c=`ld:`+i+`:$diagnostics`,l=Ge(a.eventsUrl,`/events/diagnostic/`+i),u=a.diagnosticRecordingInterval,d=n,f,p,m=!!a.streaming,h={};function g(){return{sdk:y(),configuration:b(),platform:e.diagnosticPlatformData}}function _(e){a.logger&&a.logger.debug(z.debugPostingDiagnosticEvent(e)),r.sendEvents(e,l,!0).then(()=>{}).catch(()=>{})}function v(){_(function(){let e=new Date().getTime(),t={kind:s?`diagnostic-combined`:`diagnostic`,id:o,creationDate:e,...d.getProps()};return s&&(t={...t,...g()}),d.reset(e),t}()),p=setTimeout(v,u),f=new Date().getTime(),s&&function(){if(t.isEnabled()){let e={...d.getProps()};t.set(c,JSON.stringify(e))}}()}function y(){let t={...e.diagnosticSdkData};return a.wrapperName&&(t.wrapperName=a.wrapperName),a.wrapperVersion&&(t.wrapperVersion=a.wrapperVersion),t}function b(){return{customBaseURI:a.baseUrl!==We.baseUrl.default,customStreamURI:a.streamUrl!==We.streamUrl.default,customEventsURI:a.eventsUrl!==We.eventsUrl.default,eventsCapacity:a.eventCapacity,eventsFlushIntervalMillis:a.flushInterval,reconnectTimeMillis:a.streamReconnectDelay,streamingDisabled:!m,allAttributesPrivate:!!a.allAttributesPrivate,diagnosticRecordingIntervalMillis:a.diagnosticRecordingInterval,usingSecureMode:!!a.hash,bootstrapMode:!!a.bootstrap,fetchGoalsDisabled:!a.fetchGoals,sendEventsOnlyForVariation:!!a.sendEventsOnlyForVariation}}return h.start=()=>{s?function(e){if(!t.isEnabled())return e(!1);t.get(c).then(t=>{if(t)try{let e=JSON.parse(t);d.setProps(e),f=e.dataSinceDate}catch{}e(!0)}).catch(()=>{e(!1)})}(e=>{if(e){let e=(f||0)+u,t=new Date().getTime();t>=e?v():p=setTimeout(v,e-t)}else Math.floor(4*Math.random())===0?v():p=setTimeout(v,u)}):(_({kind:`diagnostic-init`,id:o,creationDate:d.getProps().dataSinceDate,...g()}),p=setTimeout(v,u))},h.stop=()=>{p&&clearTimeout(p)},h.setStreaming=e=>{m=e},h}},qe=function(e,t){let n=!1,r={type:e.type,name:e.name,synchronous:e.synchronous,method:(...i)=>{try{e.method(...i)}
1catch{n||(n=!0,t.warn(z.inspectorMethodError(r.type,r.name)))}}};return r},{onNextTick:Je}=D,Z={flagUsed:`flag-used`,flagDetailsChanged:`flag-details-changed`,flagDetailChanged:`flag-detail-changed`,clientIdentityChanged:`client-identity-changed`};Object.freeze(Z);var Ye={InspectorTypes:Z,InspectorManager:function(e,t){let n={},r={[Z.flagUsed]:[],[Z.flagDetailsChanged]:[],[Z.flagDetailChanged]:[],[Z.clientIdentityChanged]:[]},i={[Z.flagUsed]:[],[Z.flagDetailsChanged]:[],[Z.flagDetailChanged]:[],[Z.clientIdentityChanged]:[]},a=e&&e.map(e=>qe(e,t));return a&&a.forEach(e=>{Object.prototype.hasOwnProperty.call(r,e.type)&&!e.synchronous?r[e.type].push(e):Object.prototype.hasOwnProperty.call(i,e.type)&&e.synchronous?i[e.type].push(e):t.warn(z.invalidInspector(e.type,e.name))}),n.hasListeners=e=>r[e]&&r[e].length||i[e]&&i[e].length,n.onFlagUsed=(e,t,n)=>{let a=Z.flagUsed;i[a].length&&i[a].forEach(r=>r.method(e,t,n)),r[a].length&&Je(()=>{r[a].forEach(r=>r.method(e,t,n))})},n.onFlags=e=>{let t=Z.flagDetailsChanged;i[t].length&&i[t].forEach(t=>t.method(e)),r[t].length&&Je(()=>{r[t].forEach(t=>t.method(e))})},n.onFlagChanged=(e,t)=>{let n=Z.flagDetailChanged;
1i[n].length&&i[n].forEach(n=>n.method(e,t)),r[n].length&&Je(()=>{r[n].forEach(n=>n.method(e,t))})},n.onIdentityChanged=e=>{let t=Z.clientIdentityChanged;i[t].length&&i[t].forEach(t=>t.method(e)),r[t].length&&Je(()=>{r[t].forEach(t=>t.method(e))})},n}},{LDTimeoutError:Xe}=s,Ze=function(e,t){return new Promise((n,r)=>{setTimeout(()=>{r(new Xe(`${t} timed out after ${e} seconds.`))},1e3*e)})},Qe=`unknown hook`;function Q(e,t,n,r,i){try{return r()}catch(r){return e?.error(`An error was encountered in "${t}" of the "${n}" hook: ${r}`),i}}function $(e,t){try{return t.getMetadata().name||Qe}catch{return e.error(`Exception thrown getting metadata for hook. Unable to get hook name.`),Qe}}var $e=function(e,t){let n=t?[...t]:[];return{withEvaluation:function(t,r,i,a){if(n.length===0)return a();let o=[...n],s={flagKey:t,context:r,defaultValue:i},c=function(e,t,n){return t.map(t=>Q(e,`beforeEvaluation`,$(e,t),()=>t?.beforeEvaluation?.(n,{})??{},{}))}(e,o,s),l=a();return function(e,t,n,r,i){for(let a=t.length-1;a>=0;--a){let o=t[a],s=r[a];Q(e,`afterEvaluation`,$(e,o),()=>o?.afterEvaluation?.(n,s,i)??{},{})}}(e,o,s,c,l),l},identify:function(t,r){let i=[...n],a={context:t,timeout:r},o=function(e,t,n){return t.map(t=>Q(e,`beforeIdentify`,$(e,t),()=>t?.beforeIdentify?.(n,{})??{},{}))}(e,i,a);return t=>{(function(e,t,n,r,i){for(let a=t.length-1;a>=0;--a){let o=t[a],s=r[a];Q(e,`afterIdentify`,$(e,o),()=>o?.afterIdentify?.(n,s,i)??{},{})}})(e,i,a,o,t)}},addHook:function(e){n.push(e)},afterTrack:function(t){n.length!==0&&(function(e,t,n){for(let r=t.length-1;r>=0;--r){let i=t[r];Q(e,`afterTrack`,$(e,i),()=>i?.afterTrack?.(n),void 0)}})(e,[...n],t)}}},et=function(){let e,t={};function n(n){return e&&D.objectHasOwnProperty(e,n)&&e[n]?e[n]:t&&D.objectHasOwnProperty(t,n)&&t[n]&&!t[n].deleted?t[n]:null}return{clearAllOverrides:function(){if(!e)return{};let t={...e};return e=void 0,t},get:n,getFlagOverrides:function(){return e||{}},getFlags:function(){return t},getFlagsWithOverrides:function(){let r={};for(let e in t){let t=n(e);t&&(r[e]=t)}if(e)for(let t in e){let e=n(t);e&&(r[t]=e)}return r},removeOverride:function(t){e&&e[t]&&(delete e[t],Object.keys(e).length===0&&(e=void 0))},setFlags:function(e){t={...e}},setOverride:function(t,n){e||={},e[t]={value:n}}}},tt=`unknown plugin`;function nt(e,t){try{return t.getMetadata().name||tt}catch{return e.error(`Exception thrown getting metadata for plugin. Unable to get plugin name.`),tt}}var rt={getPluginHooks:function(e,t,n){let r=[];return n.forEach(n=>{try{let i=n.getHooks?.(t);i===void 0?e.error(`Plugin ${nt(e,n)} returned undefined from getHooks.`):i&&i.length>0&&r.push(...i)}catch{e.error(`Exception thrown getting hooks for plugin ${nt(e,n)}. Unable to get hooks.`)}}),r},registerPlugins:function(e,t,n,r){r.forEach(r=>{try{r.register(n,t)}catch{e.error(`Exception thrown registering plugin ${nt(e,r)}.`)}})},registerPluginsForDebugOverride:function(e,t,n){n.forEach(n=>{try{n.registerDebug?.(t)}catch{e.error(`Exception thrown registering debug override with plugin ${nt(e,n)}.`)}})},createPluginEnvironment:function(e,t,n){let r={};e.userAgent&&(r.name=e.userAgent),e.version&&(r.version=e.version),n.wrapperName&&(r.wrapperName=n.wrapperName),n.wrapperVersion&&(r.wrapperVersion=n.wrapperVersion);let i={};n.application&&(n.application.name&&(i.name=n.application.name),n.application.version&&(i.version=n.application.version));let a={sdk:r,clientSideId:t};return Object.keys(i).length>0&&(a.application=i),a}},{commonBasicLogger:it}=L,{checkContext:at,getContextKeys:ot}=X,{InspectorTypes:st,InspectorManager:ct}=Ye,{getPluginHooks:lt,registerPlugins:ut,registerPluginsForDebugOverride:dt,createPluginEnvironment:ft}=rt,pt=`change`,mt=`internal-change`,ht={initialize:function(e,t,n,r,i){let a=function(){return n&&n.logger?n.logger:i&&i.logger&&i.logger.default||it(`warn`)}(),o=be(a),c=we(o),l=ie.validate(n,o,i,a),u=ct(l.inspectors,a),d=l.sendEvents,f=e,p=l.hash,m=[...l.plugins],h=ft(r,e,l),g=lt(a,h,m),_=$e(a,[...l.hooks,...g]),v=Ee(r.localStorage,a),y=ae(r,f,l),b=l.sendEvents&&!l.diagnosticOptOut,x=b?Ke.DiagnosticId(f):null,S=b?Ke.DiagnosticsAccumulator(new Date().getTime()):null,C=b?Ke.DiagnosticsManager(r,v,S,y,f,l,x):null,w=Ne(r,l,f,S),T=l.eventProcessor||ye(r,l,f,S,o,y),E=Re(r,l,f),O=et(),k,A,j,M=l.streaming,ee=!1,N=!1,te=!0,P=l.stateProvider,F=ze(null,function(e){(function(e){P||e&&R({kind:`identify`,context:e,creationDate:new Date().getTime()})})(e),u.hasListeners(st.clientIdentityChanged)&&u.onIdentityChanged(F.getContext())}),I=new He(v),L=v.isEnabled()?Te(v,f,p,F):null;function R(e){f&&(P&&P.enqueueEvent&&P.enqueueEvent(e)||(e.context?(te=!1,!d||N||r.isDoNotTrack()||(a.debug(z.debugEnqueueingEvent(e.kind)),T.enqueue(e))):te&&=(a.warn(z.eventWithoutContext()),!1)))}function B(e,t){u.hasListeners(st.flagDetailChanged)&&u.onFlagChanged(e.key,U(t))}function ne(){u.hasListeners(st.flagDetailsChanged)&&u.onFlags(Object.entries(O.getFlagsWithOverrides()).map(([e,t])=>({key:e,detail:U(t)})).reduce((e,t)=>
1(e[t.key]=t.detail,e),{}))}function re(e,t,n,r){let i=F.getContext(),a=new Date,o={kind:`feature`,key:e,context:i,value:t?t.value:null,variation:t?t.variationIndex:null,default:n,creationDate:a.getTime()},s=O.getFlags()[e];s&&(o.version=s.flagVersion?s.flagVersion:s.version,o.trackEvents=s.trackEvents,o.debugEventsUntilDate=s.debugEventsUntilDate),(r||s&&s.trackReason)&&t&&(o.reason=t.reason),R(o)}function V(e){return at(e,!1)?Promise.resolve(e):Promise.reject(new s.LDInvalidUserError(z.invalidContext()))}function H(e,t,n,r,i,a){let o,s=O.get(e);return s?(o=U(s),s.value!==null&&s.value!==void 0||(o.value=t)):o={value:t,variationIndex:null,reason:{kind:`ERROR`,errorKind:`FLAG_NOT_FOUND`}},n&&(i||s?.prerequisites?.forEach(e=>{H(e,void 0,n,!1,!1,!1)}),re(e,o,t,r)),!i&&a&&function(e,t){u.hasListeners(st.flagUsed)&&u.onFlagUsed(e,t,F.getContext())}(e,o),o}function U(e){return{value:e.value,variationIndex:e.variation===void 0?null:e.variation,reason:e.reason||null}}function W(){if(A=!0,!F.getContext())return;let e=e=>{try{return JSON.parse(e)}catch{o.maybeReportError(new s.LDInvalidDataError(z.invalidData()));return}};w.connect(F.getContext(),p,{ping:function(){a.debug(z.debugStreamPing());let e=F.getContext();E.fetchFlagSettings(e,p).then(t=>{D.deepEquals(e,F.getContext())&&K(t||{})}).catch(e=>{o.maybeReportError(new s.LDFlagFetchError(z.errorFetchingFlags(e)))})},put:function(t){let n=e(t.data);n&&(a.debug(z.debugStreamPut()),K(n))},patch:function(t){let n=e(t.data);if(!n)return;let r=O.getFlags(),i=r[n.key];if(!i||!i.version||!n.version||i.version<n.version){a.debug(z.debugStreamPatch(n.key));let e={},t=D.extend({},n);delete t.key,r[n.key]=t,O.setFlags(r);let o=U(t);e[n.key]=i?{previous:i.value,current:o}:{current:o},B(n,t),q(e)}else a.debug(z.debugStreamPatchIgnored(n.key))},delete:function(t){let n=e(t.data);if(!n)return;let r=O.getFlags();if(!r[n.key]||r[n.key].version<n.version){a.debug(z.debugStreamDelete(n.key));let e={};r[n.key]&&!r[n.key].deleted&&(e[n.key]={previous:r[n.key].value}),r[n.key]={version:n.version,deleted:!0},O.setFlags(r),B(n,r[n.key]),q(e)}else a.debug(z.debugStreamDeleteIgnored(n.key))}})}function G(){A&&=(w.disconnect(),!1)}function K(e){let t={};if(!e)return Promise.resolve();let n=O.getFlags();for(let r in n)D.objectHasOwnProperty(n,r)&&n[r]&&(e[r]&&!D.deepEquals(e[r].value,n[r].value)?t[r]={previous:n[r].value,current:U(e[r])}:e[r]&&!e[r].deleted||(t[r]={previous:n[r].value}));for(let r in e)D.objectHasOwnProperty(e,r)&&e[r]&&(!n[r]||n[r].deleted)&&(t[r]={current:U(e[r])});return O.setFlags({...e}),ne(),q(t).catch(()=>{})}function q(e){let t=Object.keys(e);if(t.length>0){let n={};t.forEach(t=>{let r=e[t].current,i=r?r.value:void 0,a=e[t].previous;o.emit(`change:`+t,i,a),n[t]=r?{current:i,previous:a}:{previous:a}}),o.emit(pt,n),o.emit(mt,O.getFlagsWithOverrides()),l.sendEventsOnlyForVariation||P||t.forEach(t=>{re(t,e[t].current)})}return k&&L?L.saveFlags(O.getFlags()):Promise.resolve()}function J(){let e=M||j&&M===void 0;e&&!A?W():!e&&A&&G(),C&&C.setStreaming(e)}function oe(e){return e===pt||e.substr(0,7)===`change:`}if(typeof l.bootstrap==`string`&&l.bootstrap.toUpperCase()===`LOCALSTORAGE`&&(L?k=!0:a.warn(z.localStorageUnavailable())),typeof l.bootstrap==`object`&&O.setFlags(function(e){let t=Object.keys(e),n=`$flagsState`,r=`$valid`,i=e[n];!i&&t.length&&a.warn(z.bootstrapOldFormat()),!1===e[r]&&a.warn(z.bootstrapInvalid());let o={};return t.forEach(t=>{if(t!==n&&t!==r){let n={value:e[t]};i&&i[t]?n=D.extend(n,i[t]):n.version=0,o[t]=n}}),o}(l.bootstrap)),P){let e=P.getInitialState();e?se(e):P.on(`init`,se),P.on(`update`,function(e){e.context&&F.setContext(e.context),e.flags&&K(e.flags)})}else (function(){if(!e)return Promise.reject(new s.LDInvalidEnvironmentIdError(z.environmentNotSpecified()));let n;return I.processContext(t).then(V).then(e=>(n=D.once(_.identify(e,void 0)),e)).then(e=>(n?.({status:`completed`}),F.setContext(e),typeof l.bootstrap==`object`?Y():k?L.loadFlags().then(e=>e==null?(O.setFlags({}),E.fetchFlagSettings(F.getContext(),p).then(e=>K(e||{})).then(Y).catch(e=>{X(new s.LDFlagFetchError(z.errorFetchingFlags(e)))})):(O.setFlags(e),D.onNextTick(Y),E.fetchFlagSettings(F.getContext(),p).then(e=>K(e)).catch(e=>o.maybeReportError(e)))):E.fetchFlagSettings(F.getContext(),p).then(e=>{O.setFlags(e||{}),ne(),Y()}).catch(e=>{O.setFlags({}),X(e)}
1))).catch(e=>{throw n?.({status:`error`}),e})})().catch(X);function se(e){f=e.environment,F.setContext(e.context),O.setFlags({...e.flags}),D.onNextTick(Y)}function Y(){a.info(z.clientInitialized()),ee=!0,J(),c.signalSuccess()}function X(e){c.signalFailure(e)}let ce={waitForInitialization:function(e=void 0){if(e!=null){if(typeof e==`number`)return function(e){e>5&&a.warn(`The waitForInitialization function was called with a timeout greater than 5 seconds. We recommend a timeout of 5 seconds or less.`);let t=c.getInitializationPromise(),n=Ze(e,`waitForInitialization`);return Promise.race([n,t]).catch(e=>{throw e instanceof s.LDTimeoutError&&a.error(`waitForInitialization error: ${e}`),e})}(e);a.warn(`The waitForInitialization method was provided with a non-numeric timeout.`)}return a.warn(`The waitForInitialization function was called without a timeout specified. In a future version a default timeout will be applied.`),c.getInitializationPromise()},waitUntilReady:()=>c.getReadyPromise(),identify:function(e,t,n){if(N)return D.wrapPromiseCallback(Promise.resolve({}),n);if(P)return a.warn(z.identifyDisabled()),D.wrapPromiseCallback(Promise.resolve(D.transformVersionedValuesToValues(O.getFlagsWithOverrides())),n);let r,i=k&&L?L.clearFlags():Promise.resolve();return D.wrapPromiseCallback(i.then(()=>I.processContext(e)).then(V).then(e=>(r=D.once(_.identify(e,void 0)),e)).then(e=>E.fetchFlagSettings(e,t).then(n=>{let r=D.transformVersionedValuesToValues(n);return F.setContext(e),p=t,n?K(n).then(()=>r):r})).then(e=>(r?.({status:`completed`}),A&&W(),e)).catch(e=>(r?.({status:`error`}),o.maybeReportError(e),Promise.reject(e))),n)},getContext:function(){return F.getContext()},variation:function(e,t){let{value:n}=_.withEvaluation(e,F.getContext(),t,()=>H(e,t,!0,!1,!1,!0));return n},variationDetail:function(e,t){return _.withEvaluation(e,F.getContext(),t,()=>H(e,t,!0,!0,!1,!0))},track:function(e,t,n){if(typeof e!=`string`)return void o.maybeReportError(new s.LDInvalidEventKeyError(z.unknownCustomEventKey(e)));n!==void 0&&typeof n!=`number`&&a.warn(z.invalidMetricValue(typeof n)),r.customEventFilter&&!r.customEventFilter(e)&&a.warn(z.unknownCustomEventKey(e));let i=F.getContext(),c={kind:`custom`,key:e,context:i,url:r.getCurrentUrl(),creationDate:new Date().getTime()};i&&i.anonymous&&(c.contextKind=i.anonymous?`anonymousUser`:`user`),t!=null&&(c.data=t),n!=null&&(c.metricValue=n),R(c),_.afterTrack({context:i,key:e,data:t,metricValue:n})},on:function(e,t,n){oe(e)?(j=!0,ee&&J(),o.on(e,t,n)):o.on(...arguments)},off:function(e){if(o.off(...arguments),oe(e)){let e=!1;o.getEvents().forEach(t=>{oe(t)&&o.getEventListenerCount(t)>0&&(e=!0)}),e||(j=!1,A&&M===void 0&&G())}},setStreaming:function(e){let t=e===null?void 0:e;t!==M&&(M=t,J())},flush:function(e){return D.wrapPromiseCallback(d?T.flush():Promise.resolve(),e)},allFlags:function(){let e={},t=O.getFlagsWithOverrides();if(!t)return e;for(let n in t)e[n]=H(n,null,!l.sendEventsOnlyForVariation,!1,!0,!1).value;return e},close:function(e){if(N)return D.wrapPromiseCallback(Promise.resolve(),e);let t=()=>{N=!0,O.setFlags({})},n=Promise.resolve().then(()=>{if(G(),C&&C.stop(),d)return T.stop(),T.flush()}).then(t).catch(t);return D.wrapPromiseCallback(n,e)},addHook:function(e){_.addHook(e)}};return ut(a,h,ce,m),dt(a,{setOverride:function(e,t){let n={},r=O.get(e),i=r?r.value:null;if(i===t)return void a.debug(`setOverride: No change needed for ${e}, value already ${t}`);O.setOverride(e,t);let o=O.get(e);n[e]={previous:i,current:U(o)},B({key:e},o),q(n)},removeOverride:function(e){let t=O.getFlagOverrides();if(!t[e])return;let n={},r=t[e],i=O.getFlags()[e];n[e]={previous:r.value,current:i?U(i):void 0},O.removeOverride(e),B({key:e},i),q(n)},clearAllOverrides:function(){let e=O.getFlagOverrides();if(Object.keys(e).length===0)return;let t={},n=O.getFlags();Object.keys(e).forEach(r=>{let i=e[r],a=n[r];t[r]={previous:i.value,current:a?U(a):void 0}}),O.clearAllOverrides(),Object.keys(t).length>0&&q(t)},getAllOverrides:function(){let e=O.getFlagOverrides();if(!e)return{};let t={};return Object.keys(e).forEach(n=>{let r=e[n];r&&(t[n]=r.value)}),t}},m),{client:ce,options:l,emitter:o,ident:F,logger:a,requestor:E,start:function(){d&&(C&&C.start(),T.start())},enqueueEvent:R,getFlagsInternal:function(){return O.getFlagsWithOverrides()},getEnvironmentId:()=>f,internalChangeEventName:mt}},commonBasicLogger:it,errors:s,messages:z,utils:D,getContextKeys:ot},gt=ht.initialize,_t=ht.errors;ht.messages;function vt(e,t,n){return(t=function(e){var t=function(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}(e,`string`);return typeof t==`symbol`?t:t+``}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function yt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function bt(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];
1t%2?yt(Object(n),!0).forEach(function(t){vt(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):yt(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}ht.commonBasicLogger;var xt={promise:Promise.resolve({status:200,header:function(){return null},body:null})};function St(e,t,n,r,i){if(i&&!function(){var e=window.navigator&&window.navigator.userAgent;if(e){var t=e.match(/Chrom(e|ium)\/([0-9]+)\./);if(t)return parseInt(t[2],10)<73}return!0}())return xt;var a=new window.XMLHttpRequest;for(var o in a.open(e,t,!i),n||{})Object.prototype.hasOwnProperty.call(n,o)&&a.setRequestHeader(o,n[o]);if(i){try{a.send(r)}catch{}return xt}var s;return{promise:new Promise(function(e,t){a.addEventListener(`load`,function(){s||e({status:a.status,header:function(e){return a.getResponseHeader(e)},body:a.responseText})}),a.addEventListener(`error`,function(){s||t(Error())}),a.send(r)}),cancel:function(){s=!0,a.abort()}}}var Ct=e=>{if(typeof e!=`string`)throw TypeError(`Expected a string`);return e.replace(/[|\\{}()[\]^$+*?.]/g,`\\$&`).replace(/-/g,`\\x2d`)};function wt(e,t,n,r){var i,a,o=((e.kind===`substring`||e.kind===`regex`)&&r.includes(`/`)?t:t.replace(r,``)).replace(n,``);switch(e.kind){case`exact`:a=t,i=RegExp(`^`+Ct(e.url)+`/?$`);break;case`canonical`:a=o,i=RegExp(`^`+Ct(e.url)+`/?$`);break;case`substring`:a=o,i=RegExp(`.*`+Ct(e.substring)+`.*$`);break;case`regex`:a=o,i=new RegExp(e.pattern);break;default:return!1}return i.test(a)}function Tt(e,t){for(var n={},r=null,i=[],a=0;a<e.length;a++)for(var o=e[a],s=o.urls||[],c=0;c<s.length;c++)if(wt(s[c],window.location.href,window.location.search,window.location.hash)){o.kind===`pageview`?t(`pageview`,o):(i.push(o),t(`click_pageview`,o));break}return i.length>0&&(r=function(e){for(var n=function(e,t){for(var n=[],r=0;r<t.length;r++)for(var i=e.target,a=t[r],o=a.selector,s=document.querySelectorAll(o);i&&s.length>0;){for(var c=0;c<s.length;c++)i===s[c]&&n.push(a);i=i.parentNode}return n}(e,i),r=0;r<n.length;r++)t(`click`,n[r])},document.addEventListener(`click`,r)),n.dispose=function(){document.removeEventListener(`click`,r)},n}function Et(e,t,n){var r,i;function a(){i&&i.dispose(),r&&r.length&&(i=Tt(r,o))}function o(n,r){var i=e.ident.getContext(),a={kind:n,key:r.key,data:null,url:t.getCurrentUrl(),creationDate:new Date().getTime(),context:i};return n===`click`&&(a.selector=r.selector),e.enqueueEvent(a)}return e.requestor.fetchJSON(`/sdk/goals/`+e.getEnvironmentId()).then(function(e){e&&e.length>0&&(i=Tt(r=e,o),function(e,t){var n,r=window.location.href;function i(){(n=window.location.href)!==r&&(r=n,t())}(function e(t,n){t(),setTimeout(function(){e(t,n)},n)})(i,e),window.history&&window.history.pushState?window.addEventListener(`popstate`,i):window.addEventListener(`hashchange`,i)}(300,a)),n()}).catch(function(t){e.emitter.maybeReportError(new _t.LDUnexpectedResponseError((t&&t.message,t.message))),n()}),{}}var Dt=`goalsReady`,Ot={fetchGoals:{default:!0},hash:{type:`string`},eventProcessor:{type:`object`},eventUrlTransformer:{type:`function`},disableSyncEventPost:{default:!1}};function kt(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},r=function(e){var t,n={userAgentHeaderName:`X-LaunchDarkly-User-Agent`,synchronousFlush:!1};if(window.XMLHttpRequest){var r=e&&e.disableSyncEventPost;n.httpRequest=function(e,t,i,a){var o=n.synchronousFlush&!r;return n.synchronousFlush=!1,St(e,t,i,a,o)}}n.httpAllowsPost=function(){return t===void 0&&(t=!!window.XMLHttpRequest&&`withCredentials`in new window.XMLHttpRequest),t},n.httpFallbackPing=function(e){new window.Image().src=e};var i,a=e&&e.eventUrlTransformer;n.getCurrentUrl=function(){return a?a(window.location.href):window.location.href},n.isDoNotTrack=function(){var e;return(e=window.navigator&&window.navigator.doNotTrack!==void 0?window.navigator.doNotTrack:window.navigator&&window.navigator.msDoNotTrack!==void 0?window.navigator.msDoNotTrack:window.doNotTrack)===1||!0===e||e===`1`||e===`yes`};try{window.localStorage&&(n.localStorage={get:function(e){return new Promise(function(t){t(window.localStorage.getItem(e))})},set:function(e,t){return new Promise(function(n){window.localStorage.setItem(e,t),n()})},clear:function(e){return new Promise(function(t){window.localStorage.removeItem(e),t()})}})}catch{n.localStorage=null}if(e&&e.useReport&&typeof window.EventSourcePolyfill==`function`&&window.EventSourcePolyfill.supp
1ortedOptions&&window.EventSourcePolyfill.supportedOptions.method?(n.eventSourceAllowsReport=!0,i=window.EventSourcePolyfill):(n.eventSourceAllowsReport=!1,i=window.EventSource),window.EventSource){var o=3e5;n.eventSourceFactory=function(e,t){var n=bt(bt({},{heartbeatTimeout:o,silentTimeout:o,skipDefaultHeaders:!0}),t);return new i(e,n)},n.eventSourceIsActive=function(e){return e.readyState===window.EventSource.OPEN||e.readyState===window.EventSource.CONNECTING}}return n.userAgent=`JSClient`,n.version=`3.9.3`,n.diagnosticSdkData={name:`js-client-sdk`,version:`3.9.3`},n.diagnosticPlatformData={name:`JS`},n.diagnosticUseCombinedEvent=!0,n}(n),i=gt(e,t,n,r,Ot),a=i.client,o=i.options,s=i.emitter,c=new Promise(function(e){var t=s.on(Dt,function(){s.off(Dt,t),e()})});a.waitUntilGoalsReady=function(){return c},o.fetchGoals?Et(i,r,function(){return s.emit(Dt)}):s.emit(Dt),document.readyState===`complete`?i.start():window.addEventListener(`load`,i.start);var l=function(){r.synchronousFlush=!0,a.flush().catch(function(){}),r.synchronousFlush=!1};return document.addEventListener(`visibilitychange`,function(){document.visibilityState===`hidden`&&l()}),window.addEventListener(`pagehide`,l),a}export{kt as initialize};
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.