{"version":3,"file":"tailwind-generic-page.js","mappings":"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","sources":["webpack://bijleshuis/./node_modules/aos/dist/aos.js","webpack://bijleshuis/./build/styleLoaderInsert.js","webpack://bijleshuis/./node_modules/aos/dist/aos.css","webpack://bijleshuis/./node_modules/css-loader/dist/runtime/api.js","webpack://bijleshuis/./node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://bijleshuis/./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://bijleshuis/./node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://bijleshuis/./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://bijleshuis/./node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://bijleshuis/./node_modules/style-loader/dist/runtime/styleTagTransform.js","webpack://bijleshuis/./node_modules/@statsig/client-core/src/$_StatsigGlobal.js","webpack://bijleshuis/./node_modules/@statsig/client-core/src/BatchedEventsQueue.js","webpack://bijleshuis/./node_modules/@statsig/client-core/src/CacheKey.js","webpack://bijleshuis/./node_modules/@statsig/client-core/src/ClientInterfaces.js","webpack://bijleshuis/./node_modules/@statsig/client-core/src/DataAdapterCore.js","webpack://bijleshuis/./node_modules/@statsig/client-core/src/Diagnostics.js","webpack://bijleshuis/./node_modules/@statsig/client-core/src/DnsTxtQuery.js","webpack://bijleshuis/./node_modules/@statsig/client-core/src/DownloadConfigSpecsResponse.js","webpack://bijleshuis/./node_modules/@statsig/client-core/src/ErrorBoundary.js","webpack://bijleshuis/./node_modules/@statsig/client-core/src/EvaluationOptions.js","webpack://bijleshuis/./node_modules/@statsig/client-core/src/EvaluationTypes.js","webpack://bijleshuis/./node_modules/@statsig/client-core/src/EventBatch.js","webpack://bijleshuis/./node_modules/@statsig/client-core/src/EventLogger.js","webpack://bijleshuis/./node_modules/@statsig/client-core/src/EventRetryConstants.js","webpack://bijleshuis/./node_modules/@statsig/client-core/src/EventSender.js","webpack://bijleshuis/./node_modules/@statsig/client-core/src/FlushCoordinator.js","webpack://bijleshuis/./node_modules/@statsig/client-core/src/FlushInterval.js","webpack://bijleshuis/./node_modules/@statsig/client-core/src/FlushTypes.js","webpack://bijleshuis/./node_modules/@statsig/client-core/src/Hashing.js","webpack://bijleshuis/./node_modules/@statsig/client-core/src/InitializeResponse.js","webpack://bijleshuis/./node_modules/@statsig/client-core/src/Log.js","webpack://bijleshuis/./node_modules/@statsig/client-core/src/MemoKey.js","webpack://bijleshuis/./node_modules/@statsig/client-core/src/NetworkConfig.js","webpack://bijleshuis/./node_modules/@statsig/client-core/src/NetworkCore.js","webpack://bijleshuis/./node_modules/@statsig/client-core/src/NetworkFallbackResolver.js","webpack://bijleshuis/./node_modules/@statsig/client-core/src/OverrideAdapter.js","webpack://bijleshuis/./node_modules/@statsig/client-core/src/ParamStoreTypes.js","webpack://bijleshuis/./node_modules/@statsig/client-core/src/PendingEvents.js","webpack://bijleshuis/./node_modules/@statsig/client-core/src/SDKFlags.js","webpack://bijleshuis/./node_modules/@statsig/client-core/src/SDKType.js","webpack://bijleshuis/./node_modules/@statsig/client-core/src/SafeJs.js","webpack://bijleshuis/./node_modules/@statsig/client-core/src/SessionID.js","webpack://bijleshuis/./node_modules/@statsig/client-core/src/SizeOf.js","webpack://bijleshuis/./node_modules/@statsig/client-core/src/StableID.js","webpack://bijleshuis/./node_modules/@statsig/client-core/src/StatsigClientBase.js","webpack://bijleshuis/./node_modules/@statsig/client-core/src/StatsigClientEventEmitter.js","webpack://bijleshuis/./node_modules/@statsig/client-core/src/StatsigDataAdapter.js","webpack://bijleshuis/./node_modules/@statsig/client-core/src/StatsigEvent.js","webpack://bijleshuis/./node_modules/@statsig/client-core/src/StatsigMetadata.js","webpack://bijleshuis/./node_modules/@statsig/client-core/src/StatsigOptionsCommon.js","webpack://bijleshuis/./node_modules/@statsig/client-core/src/StatsigPlugin.js","webpack://bijleshuis/./node_modules/@statsig/client-core/src/StatsigTypeFactories.js","webpack://bijleshuis/./node_modules/@statsig/client-core/src/StatsigTypes.js","webpack://bijleshuis/./node_modules/@statsig/client-core/src/StatsigUpdateDetails.js","webpack://bijleshuis/./node_modules/@statsig/client-core/src/StatsigUser.js","webpack://bijleshuis/./node_modules/@statsig/client-core/src/StorageProvider.js","webpack://bijleshuis/./node_modules/@statsig/client-core/src/TypedJsonParse.js","webpack://bijleshuis/./node_modules/@statsig/client-core/src/TypingUtils.js","webpack://bijleshuis/./node_modules/@statsig/client-core/src/UUID.js","webpack://bijleshuis/./node_modules/@statsig/client-core/src/UrlConfiguration.js","webpack://bijleshuis/./node_modules/@statsig/client-core/src/VisibilityObserving.js","webpack://bijleshuis/./node_modules/@statsig/client-core/src/index.js","webpack://bijleshuis/./node_modules/@statsig/js-client/src/EvaluationResponseDeltas.js","webpack://bijleshuis/./node_modules/@statsig/js-client/src/EvaluationStore.js","webpack://bijleshuis/./node_modules/@statsig/js-client/src/Network.js","webpack://bijleshuis/./node_modules/@statsig/js-client/src/ParamStoreGetterFactory.js","webpack://bijleshuis/./node_modules/@statsig/js-client/src/StatsigClient.js","webpack://bijleshuis/./node_modules/@statsig/js-client/src/StatsigEvaluationsDataAdapter.js","webpack://bijleshuis/./node_modules/@statsig/js-client/src/V1InitializeContainer.js","webpack://bijleshuis/./node_modules/@statsig/js-client/src/V2InitializeContainer.js","webpack://bijleshuis/./node_modules/@statsig/js-client/src/index.js","webpack://bijleshuis/./node_modules/@statsig/web-analytics/src/AutoCapture.js","webpack://bijleshuis/./node_modules/@statsig/web-analytics/src/AutoCaptureEvent.js","webpack://bijleshuis/./node_modules/@statsig/web-analytics/src/ConsoleLogManager.js","webpack://bijleshuis/./node_modules/@statsig/web-analytics/src/DeadClickManager.js","webpack://bijleshuis/./node_modules/@statsig/web-analytics/src/EngagementManager.js","webpack://bijleshuis/./node_modules/@statsig/web-analytics/src/RageClickManager.js","webpack://bijleshuis/./node_modules/@statsig/web-analytics/src/WebVitalsManager.js","webpack://bijleshuis/./node_modules/@statsig/web-analytics/src/index.js","webpack://bijleshuis/./node_modules/@statsig/web-analytics/src/utils/commonUtils.js","webpack://bijleshuis/./node_modules/@statsig/web-analytics/src/utils/consoleLogsUtils.js","webpack://bijleshuis/./node_modules/@statsig/web-analytics/src/utils/eventUtils.js","webpack://bijleshuis/./node_modules/@statsig/web-analytics/src/utils/metadataUtils.js","webpack://bijleshuis/./node_modules/web-vitals/dist/web-vitals.umd.cjs","webpack://bijleshuis/webpack/bootstrap","webpack://bijleshuis/webpack/runtime/compat get default export","webpack://bijleshuis/webpack/runtime/define property getters","webpack://bijleshuis/webpack/runtime/global","webpack://bijleshuis/webpack/runtime/hasOwnProperty shorthand","webpack://bijleshuis/webpack/runtime/nonce","webpack://bijleshuis/./node_modules/alpinejs/dist/module.esm.js","webpack://bijleshuis/./node_modules/aos/dist/aos.css?75ae","webpack://bijleshuis/./src/bijleshuis/js/components/signup-loading.js","webpack://bijleshuis/./src/bijleshuis/js/components/footer-contact-form.js","webpack://bijleshuis/./src/bijleshuis/js/components/tailwind-navbar.js","webpack://bijleshuis/./src/bijleshuis/js/utils/statsig.js","webpack://bijleshuis/./node_modules/web-vitals/dist/web-vitals.js","webpack://bijleshuis/./src/bijleshuis/static_src/js/tailwind_generic_page/hero_signup/vitals.js","webpack://bijleshuis/./src/bijleshuis/static_src/js/tailwind_generic_page/chrome.js","webpack://bijleshuis/./src/bijleshuis/js/components/country-language-picker.js","webpack://bijleshuis/./src/bijleshuis/static_src/js/tailwind_generic_page/coupon.js","webpack://bijleshuis/./src/bijleshuis/static_src/js/tailwind_generic_page/start.js","webpack://bijleshuis/./src/bijleshuis/static_src/js/tailwind_generic_page/entry_generic.js"],"sourcesContent":["!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.AOS=t():e.AOS=t()}(this,function(){return function(e){function t(o){if(n[o])return n[o].exports;var i=n[o]={exports:{},id:o,loaded:!1};return e[o].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var n={};return t.m=e,t.c=n,t.p=\"dist/\",t(0)}([function(e,t,n){\"use strict\";function o(e){return e&&e.__esModule?e:{default:e}}var i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},r=n(1),a=(o(r),n(6)),u=o(a),c=n(7),s=o(c),f=n(8),d=o(f),l=n(9),p=o(l),m=n(10),b=o(m),v=n(11),y=o(v),g=n(14),h=o(g),w=[],k=!1,x={offset:120,delay:0,easing:\"ease\",duration:400,disable:!1,once:!1,startEvent:\"DOMContentLoaded\",throttleDelay:99,debounceDelay:50,disableMutationObserver:!1},j=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(e&&(k=!0),k)return w=(0,y.default)(w,x),(0,b.default)(w,x.once),w},O=function(){w=(0,h.default)(),j()},M=function(){w.forEach(function(e,t){e.node.removeAttribute(\"data-aos\"),e.node.removeAttribute(\"data-aos-easing\"),e.node.removeAttribute(\"data-aos-duration\"),e.node.removeAttribute(\"data-aos-delay\")})},S=function(e){return e===!0||\"mobile\"===e&&p.default.mobile()||\"phone\"===e&&p.default.phone()||\"tablet\"===e&&p.default.tablet()||\"function\"==typeof e&&e()===!0},_=function(e){x=i(x,e),w=(0,h.default)();var t=document.all&&!window.atob;return S(x.disable)||t?M():(x.disableMutationObserver||d.default.isSupported()||(console.info('\\n      aos: MutationObserver is not supported on this browser,\\n      code mutations observing has been disabled.\\n      You may have to call \"refreshHard()\" by yourself.\\n    '),x.disableMutationObserver=!0),document.querySelector(\"body\").setAttribute(\"data-aos-easing\",x.easing),document.querySelector(\"body\").setAttribute(\"data-aos-duration\",x.duration),document.querySelector(\"body\").setAttribute(\"data-aos-delay\",x.delay),\"DOMContentLoaded\"===x.startEvent&&[\"complete\",\"interactive\"].indexOf(document.readyState)>-1?j(!0):\"load\"===x.startEvent?window.addEventListener(x.startEvent,function(){j(!0)}):document.addEventListener(x.startEvent,function(){j(!0)}),window.addEventListener(\"resize\",(0,s.default)(j,x.debounceDelay,!0)),window.addEventListener(\"orientationchange\",(0,s.default)(j,x.debounceDelay,!0)),window.addEventListener(\"scroll\",(0,u.default)(function(){(0,b.default)(w,x.once)},x.throttleDelay)),x.disableMutationObserver||d.default.ready(\"[data-aos]\",O),w)};e.exports={init:_,refresh:j,refreshHard:O}},function(e,t){},,,,,function(e,t){(function(t){\"use strict\";function n(e,t,n){function o(t){var n=b,o=v;return b=v=void 0,k=t,g=e.apply(o,n)}function r(e){return k=e,h=setTimeout(f,t),M?o(e):g}function a(e){var n=e-w,o=e-k,i=t-n;return S?j(i,y-o):i}function c(e){var n=e-w,o=e-k;return void 0===w||n>=t||n<0||S&&o>=y}function f(){var e=O();return c(e)?d(e):void(h=setTimeout(f,a(e)))}function d(e){return h=void 0,_&&b?o(e):(b=v=void 0,g)}function l(){void 0!==h&&clearTimeout(h),k=0,b=w=v=h=void 0}function p(){return void 0===h?g:d(O())}function m(){var e=O(),n=c(e);if(b=arguments,v=this,w=e,n){if(void 0===h)return r(w);if(S)return h=setTimeout(f,t),o(w)}return void 0===h&&(h=setTimeout(f,t)),g}var b,v,y,g,h,w,k=0,M=!1,S=!1,_=!0;if(\"function\"!=typeof e)throw new TypeError(s);return t=u(t)||0,i(n)&&(M=!!n.leading,S=\"maxWait\"in n,y=S?x(u(n.maxWait)||0,t):y,_=\"trailing\"in n?!!n.trailing:_),m.cancel=l,m.flush=p,m}function o(e,t,o){var r=!0,a=!0;if(\"function\"!=typeof e)throw new TypeError(s);return i(o)&&(r=\"leading\"in o?!!o.leading:r,a=\"trailing\"in o?!!o.trailing:a),n(e,t,{leading:r,maxWait:t,trailing:a})}function i(e){var t=\"undefined\"==typeof e?\"undefined\":c(e);return!!e&&(\"object\"==t||\"function\"==t)}function r(e){return!!e&&\"object\"==(\"undefined\"==typeof e?\"undefined\":c(e))}function a(e){return\"symbol\"==(\"undefined\"==typeof e?\"undefined\":c(e))||r(e)&&k.call(e)==d}function u(e){if(\"number\"==typeof e)return e;if(a(e))return f;if(i(e)){var t=\"function\"==typeof e.valueOf?e.valueOf():e;e=i(t)?t+\"\":t}if(\"string\"!=typeof e)return 0===e?e:+e;e=e.replace(l,\"\");var n=m.test(e);return n||b.test(e)?v(e.slice(2),n?2:8):p.test(e)?f:+e}var c=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},s=\"Expected a function\",f=NaN,d=\"[object Symbol]\",l=/^\\s+|\\s+$/g,p=/^[-+]0x[0-9a-f]+$/i,m=/^0b[01]+$/i,b=/^0o[0-7]+$/i,v=parseInt,y=\"object\"==(\"undefined\"==typeof t?\"undefined\":c(t))&&t&&t.Object===Object&&t,g=\"object\"==(\"undefined\"==typeof self?\"undefined\":c(self))&&self&&self.Object===Object&&self,h=y||g||Function(\"return this\")(),w=Object.prototype,k=w.toString,x=Math.max,j=Math.min,O=function(){return h.Date.now()};e.exports=o}).call(t,function(){return this}())},function(e,t){(function(t){\"use strict\";function n(e,t,n){function i(t){var n=b,o=v;return b=v=void 0,O=t,g=e.apply(o,n)}function r(e){return O=e,h=setTimeout(f,t),M?i(e):g}function u(e){var n=e-w,o=e-O,i=t-n;return S?x(i,y-o):i}function s(e){var n=e-w,o=e-O;return void 0===w||n>=t||n<0||S&&o>=y}function f(){var e=j();return s(e)?d(e):void(h=setTimeout(f,u(e)))}function d(e){return h=void 0,_&&b?i(e):(b=v=void 0,g)}function l(){void 0!==h&&clearTimeout(h),O=0,b=w=v=h=void 0}function p(){return void 0===h?g:d(j())}function m(){var e=j(),n=s(e);if(b=arguments,v=this,w=e,n){if(void 0===h)return r(w);if(S)return h=setTimeout(f,t),i(w)}return void 0===h&&(h=setTimeout(f,t)),g}var b,v,y,g,h,w,O=0,M=!1,S=!1,_=!0;if(\"function\"!=typeof e)throw new TypeError(c);return t=a(t)||0,o(n)&&(M=!!n.leading,S=\"maxWait\"in n,y=S?k(a(n.maxWait)||0,t):y,_=\"trailing\"in n?!!n.trailing:_),m.cancel=l,m.flush=p,m}function o(e){var t=\"undefined\"==typeof e?\"undefined\":u(e);return!!e&&(\"object\"==t||\"function\"==t)}function i(e){return!!e&&\"object\"==(\"undefined\"==typeof e?\"undefined\":u(e))}function r(e){return\"symbol\"==(\"undefined\"==typeof e?\"undefined\":u(e))||i(e)&&w.call(e)==f}function a(e){if(\"number\"==typeof e)return e;if(r(e))return s;if(o(e)){var t=\"function\"==typeof e.valueOf?e.valueOf():e;e=o(t)?t+\"\":t}if(\"string\"!=typeof e)return 0===e?e:+e;e=e.replace(d,\"\");var n=p.test(e);return n||m.test(e)?b(e.slice(2),n?2:8):l.test(e)?s:+e}var u=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},c=\"Expected a function\",s=NaN,f=\"[object Symbol]\",d=/^\\s+|\\s+$/g,l=/^[-+]0x[0-9a-f]+$/i,p=/^0b[01]+$/i,m=/^0o[0-7]+$/i,b=parseInt,v=\"object\"==(\"undefined\"==typeof t?\"undefined\":u(t))&&t&&t.Object===Object&&t,y=\"object\"==(\"undefined\"==typeof self?\"undefined\":u(self))&&self&&self.Object===Object&&self,g=v||y||Function(\"return this\")(),h=Object.prototype,w=h.toString,k=Math.max,x=Math.min,j=function(){return g.Date.now()};e.exports=n}).call(t,function(){return this}())},function(e,t){\"use strict\";function n(e){var t=void 0,o=void 0,i=void 0;for(t=0;t<e.length;t+=1){if(o=e[t],o.dataset&&o.dataset.aos)return!0;if(i=o.children&&n(o.children))return!0}return!1}function o(){return window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver}function i(){return!!o()}function r(e,t){var n=window.document,i=o(),r=new i(a);u=t,r.observe(n.documentElement,{childList:!0,subtree:!0,removedNodes:!0})}function a(e){e&&e.forEach(function(e){var t=Array.prototype.slice.call(e.addedNodes),o=Array.prototype.slice.call(e.removedNodes),i=t.concat(o);if(n(i))return u()})}Object.defineProperty(t,\"__esModule\",{value:!0});var u=function(){};t.default={isSupported:i,ready:r}},function(e,t){\"use strict\";function n(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function o(){return navigator.userAgent||navigator.vendor||window.opera||\"\"}Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,\"value\"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,n,o){return n&&e(t.prototype,n),o&&e(t,o),t}}(),r=/(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i,a=/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i,u=/(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i,c=/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i,s=function(){function e(){n(this,e)}return i(e,[{key:\"phone\",value:function(){var e=o();return!(!r.test(e)&&!a.test(e.substr(0,4)))}},{key:\"mobile\",value:function(){var e=o();return!(!u.test(e)&&!c.test(e.substr(0,4)))}},{key:\"tablet\",value:function(){return this.mobile()&&!this.phone()}}]),e}();t.default=new s},function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(e,t,n){var o=e.node.getAttribute(\"data-aos-once\");t>e.position?e.node.classList.add(\"aos-animate\"):\"undefined\"!=typeof o&&(\"false\"===o||!n&&\"true\"!==o)&&e.node.classList.remove(\"aos-animate\")},o=function(e,t){var o=window.pageYOffset,i=window.innerHeight;e.forEach(function(e,r){n(e,i+o,t)})};t.default=o},function(e,t,n){\"use strict\";function o(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,\"__esModule\",{value:!0});var i=n(12),r=o(i),a=function(e,t){return e.forEach(function(e,n){e.node.classList.add(\"aos-init\"),e.position=(0,r.default)(e.node,t.offset)}),e};t.default=a},function(e,t,n){\"use strict\";function o(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,\"__esModule\",{value:!0});var i=n(13),r=o(i),a=function(e,t){var n=0,o=0,i=window.innerHeight,a={offset:e.getAttribute(\"data-aos-offset\"),anchor:e.getAttribute(\"data-aos-anchor\"),anchorPlacement:e.getAttribute(\"data-aos-anchor-placement\")};switch(a.offset&&!isNaN(a.offset)&&(o=parseInt(a.offset)),a.anchor&&document.querySelectorAll(a.anchor)&&(e=document.querySelectorAll(a.anchor)[0]),n=(0,r.default)(e).top,a.anchorPlacement){case\"top-bottom\":break;case\"center-bottom\":n+=e.offsetHeight/2;break;case\"bottom-bottom\":n+=e.offsetHeight;break;case\"top-center\":n+=i/2;break;case\"bottom-center\":n+=i/2+e.offsetHeight;break;case\"center-center\":n+=i/2+e.offsetHeight/2;break;case\"top-top\":n+=i;break;case\"bottom-top\":n+=e.offsetHeight+i;break;case\"center-top\":n+=e.offsetHeight/2+i}return a.anchorPlacement||a.offset||isNaN(t)||(o=t),n+o};t.default=a},function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(e){for(var t=0,n=0;e&&!isNaN(e.offsetLeft)&&!isNaN(e.offsetTop);)t+=e.offsetLeft-(\"BODY\"!=e.tagName?e.scrollLeft:0),n+=e.offsetTop-(\"BODY\"!=e.tagName?e.scrollTop:0),e=e.offsetParent;return{top:n,left:t}};t.default=n},function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(e){return e=e||document.querySelectorAll(\"[data-aos]\"),Array.prototype.map.call(e,function(e){return{node:e}})};t.default=n}])});","module.exports = function(element) {\n    var parent = document.querySelector('head');\n    // Insert at the top of <head> so portal_v2.css link can override\n    parent.insertBefore(element, parent.firstChild);\n};\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"[data-aos][data-aos][data-aos-duration=\\\"50\\\"],body[data-aos-duration=\\\"50\\\"] [data-aos]{transition-duration:50ms}[data-aos][data-aos][data-aos-delay=\\\"50\\\"],body[data-aos-delay=\\\"50\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"50\\\"].aos-animate,body[data-aos-delay=\\\"50\\\"] [data-aos].aos-animate{transition-delay:50ms}[data-aos][data-aos][data-aos-duration=\\\"100\\\"],body[data-aos-duration=\\\"100\\\"] [data-aos]{transition-duration:.1s}[data-aos][data-aos][data-aos-delay=\\\"100\\\"],body[data-aos-delay=\\\"100\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"100\\\"].aos-animate,body[data-aos-delay=\\\"100\\\"] [data-aos].aos-animate{transition-delay:.1s}[data-aos][data-aos][data-aos-duration=\\\"150\\\"],body[data-aos-duration=\\\"150\\\"] [data-aos]{transition-duration:.15s}[data-aos][data-aos][data-aos-delay=\\\"150\\\"],body[data-aos-delay=\\\"150\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"150\\\"].aos-animate,body[data-aos-delay=\\\"150\\\"] [data-aos].aos-animate{transition-delay:.15s}[data-aos][data-aos][data-aos-duration=\\\"200\\\"],body[data-aos-duration=\\\"200\\\"] [data-aos]{transition-duration:.2s}[data-aos][data-aos][data-aos-delay=\\\"200\\\"],body[data-aos-delay=\\\"200\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"200\\\"].aos-animate,body[data-aos-delay=\\\"200\\\"] [data-aos].aos-animate{transition-delay:.2s}[data-aos][data-aos][data-aos-duration=\\\"250\\\"],body[data-aos-duration=\\\"250\\\"] [data-aos]{transition-duration:.25s}[data-aos][data-aos][data-aos-delay=\\\"250\\\"],body[data-aos-delay=\\\"250\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"250\\\"].aos-animate,body[data-aos-delay=\\\"250\\\"] [data-aos].aos-animate{transition-delay:.25s}[data-aos][data-aos][data-aos-duration=\\\"300\\\"],body[data-aos-duration=\\\"300\\\"] [data-aos]{transition-duration:.3s}[data-aos][data-aos][data-aos-delay=\\\"300\\\"],body[data-aos-delay=\\\"300\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"300\\\"].aos-animate,body[data-aos-delay=\\\"300\\\"] [data-aos].aos-animate{transition-delay:.3s}[data-aos][data-aos][data-aos-duration=\\\"350\\\"],body[data-aos-duration=\\\"350\\\"] [data-aos]{transition-duration:.35s}[data-aos][data-aos][data-aos-delay=\\\"350\\\"],body[data-aos-delay=\\\"350\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"350\\\"].aos-animate,body[data-aos-delay=\\\"350\\\"] [data-aos].aos-animate{transition-delay:.35s}[data-aos][data-aos][data-aos-duration=\\\"400\\\"],body[data-aos-duration=\\\"400\\\"] [data-aos]{transition-duration:.4s}[data-aos][data-aos][data-aos-delay=\\\"400\\\"],body[data-aos-delay=\\\"400\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"400\\\"].aos-animate,body[data-aos-delay=\\\"400\\\"] [data-aos].aos-animate{transition-delay:.4s}[data-aos][data-aos][data-aos-duration=\\\"450\\\"],body[data-aos-duration=\\\"450\\\"] [data-aos]{transition-duration:.45s}[data-aos][data-aos][data-aos-delay=\\\"450\\\"],body[data-aos-delay=\\\"450\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"450\\\"].aos-animate,body[data-aos-delay=\\\"450\\\"] [data-aos].aos-animate{transition-delay:.45s}[data-aos][data-aos][data-aos-duration=\\\"500\\\"],body[data-aos-duration=\\\"500\\\"] [data-aos]{transition-duration:.5s}[data-aos][data-aos][data-aos-delay=\\\"500\\\"],body[data-aos-delay=\\\"500\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"500\\\"].aos-animate,body[data-aos-delay=\\\"500\\\"] [data-aos].aos-animate{transition-delay:.5s}[data-aos][data-aos][data-aos-duration=\\\"550\\\"],body[data-aos-duration=\\\"550\\\"] [data-aos]{transition-duration:.55s}[data-aos][data-aos][data-aos-delay=\\\"550\\\"],body[data-aos-delay=\\\"550\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"550\\\"].aos-animate,body[data-aos-delay=\\\"550\\\"] [data-aos].aos-animate{transition-delay:.55s}[data-aos][data-aos][data-aos-duration=\\\"600\\\"],body[data-aos-duration=\\\"600\\\"] [data-aos]{transition-duration:.6s}[data-aos][data-aos][data-aos-delay=\\\"600\\\"],body[data-aos-delay=\\\"600\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"600\\\"].aos-animate,body[data-aos-delay=\\\"600\\\"] [data-aos].aos-animate{transition-delay:.6s}[data-aos][data-aos][data-aos-duration=\\\"650\\\"],body[data-aos-duration=\\\"650\\\"] [data-aos]{transition-duration:.65s}[data-aos][data-aos][data-aos-delay=\\\"650\\\"],body[data-aos-delay=\\\"650\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"650\\\"].aos-animate,body[data-aos-delay=\\\"650\\\"] [data-aos].aos-animate{transition-delay:.65s}[data-aos][data-aos][data-aos-duration=\\\"700\\\"],body[data-aos-duration=\\\"700\\\"] [data-aos]{transition-duration:.7s}[data-aos][data-aos][data-aos-delay=\\\"700\\\"],body[data-aos-delay=\\\"700\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"700\\\"].aos-animate,body[data-aos-delay=\\\"700\\\"] [data-aos].aos-animate{transition-delay:.7s}[data-aos][data-aos][data-aos-duration=\\\"750\\\"],body[data-aos-duration=\\\"750\\\"] [data-aos]{transition-duration:.75s}[data-aos][data-aos][data-aos-delay=\\\"750\\\"],body[data-aos-delay=\\\"750\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"750\\\"].aos-animate,body[data-aos-delay=\\\"750\\\"] [data-aos].aos-animate{transition-delay:.75s}[data-aos][data-aos][data-aos-duration=\\\"800\\\"],body[data-aos-duration=\\\"800\\\"] [data-aos]{transition-duration:.8s}[data-aos][data-aos][data-aos-delay=\\\"800\\\"],body[data-aos-delay=\\\"800\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"800\\\"].aos-animate,body[data-aos-delay=\\\"800\\\"] [data-aos].aos-animate{transition-delay:.8s}[data-aos][data-aos][data-aos-duration=\\\"850\\\"],body[data-aos-duration=\\\"850\\\"] [data-aos]{transition-duration:.85s}[data-aos][data-aos][data-aos-delay=\\\"850\\\"],body[data-aos-delay=\\\"850\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"850\\\"].aos-animate,body[data-aos-delay=\\\"850\\\"] [data-aos].aos-animate{transition-delay:.85s}[data-aos][data-aos][data-aos-duration=\\\"900\\\"],body[data-aos-duration=\\\"900\\\"] [data-aos]{transition-duration:.9s}[data-aos][data-aos][data-aos-delay=\\\"900\\\"],body[data-aos-delay=\\\"900\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"900\\\"].aos-animate,body[data-aos-delay=\\\"900\\\"] [data-aos].aos-animate{transition-delay:.9s}[data-aos][data-aos][data-aos-duration=\\\"950\\\"],body[data-aos-duration=\\\"950\\\"] [data-aos]{transition-duration:.95s}[data-aos][data-aos][data-aos-delay=\\\"950\\\"],body[data-aos-delay=\\\"950\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"950\\\"].aos-animate,body[data-aos-delay=\\\"950\\\"] [data-aos].aos-animate{transition-delay:.95s}[data-aos][data-aos][data-aos-duration=\\\"1000\\\"],body[data-aos-duration=\\\"1000\\\"] [data-aos]{transition-duration:1s}[data-aos][data-aos][data-aos-delay=\\\"1000\\\"],body[data-aos-delay=\\\"1000\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"1000\\\"].aos-animate,body[data-aos-delay=\\\"1000\\\"] [data-aos].aos-animate{transition-delay:1s}[data-aos][data-aos][data-aos-duration=\\\"1050\\\"],body[data-aos-duration=\\\"1050\\\"] [data-aos]{transition-duration:1.05s}[data-aos][data-aos][data-aos-delay=\\\"1050\\\"],body[data-aos-delay=\\\"1050\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"1050\\\"].aos-animate,body[data-aos-delay=\\\"1050\\\"] [data-aos].aos-animate{transition-delay:1.05s}[data-aos][data-aos][data-aos-duration=\\\"1100\\\"],body[data-aos-duration=\\\"1100\\\"] [data-aos]{transition-duration:1.1s}[data-aos][data-aos][data-aos-delay=\\\"1100\\\"],body[data-aos-delay=\\\"1100\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"1100\\\"].aos-animate,body[data-aos-delay=\\\"1100\\\"] [data-aos].aos-animate{transition-delay:1.1s}[data-aos][data-aos][data-aos-duration=\\\"1150\\\"],body[data-aos-duration=\\\"1150\\\"] [data-aos]{transition-duration:1.15s}[data-aos][data-aos][data-aos-delay=\\\"1150\\\"],body[data-aos-delay=\\\"1150\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"1150\\\"].aos-animate,body[data-aos-delay=\\\"1150\\\"] [data-aos].aos-animate{transition-delay:1.15s}[data-aos][data-aos][data-aos-duration=\\\"1200\\\"],body[data-aos-duration=\\\"1200\\\"] [data-aos]{transition-duration:1.2s}[data-aos][data-aos][data-aos-delay=\\\"1200\\\"],body[data-aos-delay=\\\"1200\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"1200\\\"].aos-animate,body[data-aos-delay=\\\"1200\\\"] [data-aos].aos-animate{transition-delay:1.2s}[data-aos][data-aos][data-aos-duration=\\\"1250\\\"],body[data-aos-duration=\\\"1250\\\"] [data-aos]{transition-duration:1.25s}[data-aos][data-aos][data-aos-delay=\\\"1250\\\"],body[data-aos-delay=\\\"1250\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"1250\\\"].aos-animate,body[data-aos-delay=\\\"1250\\\"] [data-aos].aos-animate{transition-delay:1.25s}[data-aos][data-aos][data-aos-duration=\\\"1300\\\"],body[data-aos-duration=\\\"1300\\\"] [data-aos]{transition-duration:1.3s}[data-aos][data-aos][data-aos-delay=\\\"1300\\\"],body[data-aos-delay=\\\"1300\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"1300\\\"].aos-animate,body[data-aos-delay=\\\"1300\\\"] [data-aos].aos-animate{transition-delay:1.3s}[data-aos][data-aos][data-aos-duration=\\\"1350\\\"],body[data-aos-duration=\\\"1350\\\"] [data-aos]{transition-duration:1.35s}[data-aos][data-aos][data-aos-delay=\\\"1350\\\"],body[data-aos-delay=\\\"1350\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"1350\\\"].aos-animate,body[data-aos-delay=\\\"1350\\\"] [data-aos].aos-animate{transition-delay:1.35s}[data-aos][data-aos][data-aos-duration=\\\"1400\\\"],body[data-aos-duration=\\\"1400\\\"] [data-aos]{transition-duration:1.4s}[data-aos][data-aos][data-aos-delay=\\\"1400\\\"],body[data-aos-delay=\\\"1400\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"1400\\\"].aos-animate,body[data-aos-delay=\\\"1400\\\"] [data-aos].aos-animate{transition-delay:1.4s}[data-aos][data-aos][data-aos-duration=\\\"1450\\\"],body[data-aos-duration=\\\"1450\\\"] [data-aos]{transition-duration:1.45s}[data-aos][data-aos][data-aos-delay=\\\"1450\\\"],body[data-aos-delay=\\\"1450\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"1450\\\"].aos-animate,body[data-aos-delay=\\\"1450\\\"] [data-aos].aos-animate{transition-delay:1.45s}[data-aos][data-aos][data-aos-duration=\\\"1500\\\"],body[data-aos-duration=\\\"1500\\\"] [data-aos]{transition-duration:1.5s}[data-aos][data-aos][data-aos-delay=\\\"1500\\\"],body[data-aos-delay=\\\"1500\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"1500\\\"].aos-animate,body[data-aos-delay=\\\"1500\\\"] [data-aos].aos-animate{transition-delay:1.5s}[data-aos][data-aos][data-aos-duration=\\\"1550\\\"],body[data-aos-duration=\\\"1550\\\"] [data-aos]{transition-duration:1.55s}[data-aos][data-aos][data-aos-delay=\\\"1550\\\"],body[data-aos-delay=\\\"1550\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"1550\\\"].aos-animate,body[data-aos-delay=\\\"1550\\\"] [data-aos].aos-animate{transition-delay:1.55s}[data-aos][data-aos][data-aos-duration=\\\"1600\\\"],body[data-aos-duration=\\\"1600\\\"] [data-aos]{transition-duration:1.6s}[data-aos][data-aos][data-aos-delay=\\\"1600\\\"],body[data-aos-delay=\\\"1600\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"1600\\\"].aos-animate,body[data-aos-delay=\\\"1600\\\"] [data-aos].aos-animate{transition-delay:1.6s}[data-aos][data-aos][data-aos-duration=\\\"1650\\\"],body[data-aos-duration=\\\"1650\\\"] [data-aos]{transition-duration:1.65s}[data-aos][data-aos][data-aos-delay=\\\"1650\\\"],body[data-aos-delay=\\\"1650\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"1650\\\"].aos-animate,body[data-aos-delay=\\\"1650\\\"] [data-aos].aos-animate{transition-delay:1.65s}[data-aos][data-aos][data-aos-duration=\\\"1700\\\"],body[data-aos-duration=\\\"1700\\\"] [data-aos]{transition-duration:1.7s}[data-aos][data-aos][data-aos-delay=\\\"1700\\\"],body[data-aos-delay=\\\"1700\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"1700\\\"].aos-animate,body[data-aos-delay=\\\"1700\\\"] [data-aos].aos-animate{transition-delay:1.7s}[data-aos][data-aos][data-aos-duration=\\\"1750\\\"],body[data-aos-duration=\\\"1750\\\"] [data-aos]{transition-duration:1.75s}[data-aos][data-aos][data-aos-delay=\\\"1750\\\"],body[data-aos-delay=\\\"1750\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"1750\\\"].aos-animate,body[data-aos-delay=\\\"1750\\\"] [data-aos].aos-animate{transition-delay:1.75s}[data-aos][data-aos][data-aos-duration=\\\"1800\\\"],body[data-aos-duration=\\\"1800\\\"] [data-aos]{transition-duration:1.8s}[data-aos][data-aos][data-aos-delay=\\\"1800\\\"],body[data-aos-delay=\\\"1800\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"1800\\\"].aos-animate,body[data-aos-delay=\\\"1800\\\"] [data-aos].aos-animate{transition-delay:1.8s}[data-aos][data-aos][data-aos-duration=\\\"1850\\\"],body[data-aos-duration=\\\"1850\\\"] [data-aos]{transition-duration:1.85s}[data-aos][data-aos][data-aos-delay=\\\"1850\\\"],body[data-aos-delay=\\\"1850\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"1850\\\"].aos-animate,body[data-aos-delay=\\\"1850\\\"] [data-aos].aos-animate{transition-delay:1.85s}[data-aos][data-aos][data-aos-duration=\\\"1900\\\"],body[data-aos-duration=\\\"1900\\\"] [data-aos]{transition-duration:1.9s}[data-aos][data-aos][data-aos-delay=\\\"1900\\\"],body[data-aos-delay=\\\"1900\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"1900\\\"].aos-animate,body[data-aos-delay=\\\"1900\\\"] [data-aos].aos-animate{transition-delay:1.9s}[data-aos][data-aos][data-aos-duration=\\\"1950\\\"],body[data-aos-duration=\\\"1950\\\"] [data-aos]{transition-duration:1.95s}[data-aos][data-aos][data-aos-delay=\\\"1950\\\"],body[data-aos-delay=\\\"1950\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"1950\\\"].aos-animate,body[data-aos-delay=\\\"1950\\\"] [data-aos].aos-animate{transition-delay:1.95s}[data-aos][data-aos][data-aos-duration=\\\"2000\\\"],body[data-aos-duration=\\\"2000\\\"] [data-aos]{transition-duration:2s}[data-aos][data-aos][data-aos-delay=\\\"2000\\\"],body[data-aos-delay=\\\"2000\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"2000\\\"].aos-animate,body[data-aos-delay=\\\"2000\\\"] [data-aos].aos-animate{transition-delay:2s}[data-aos][data-aos][data-aos-duration=\\\"2050\\\"],body[data-aos-duration=\\\"2050\\\"] [data-aos]{transition-duration:2.05s}[data-aos][data-aos][data-aos-delay=\\\"2050\\\"],body[data-aos-delay=\\\"2050\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"2050\\\"].aos-animate,body[data-aos-delay=\\\"2050\\\"] [data-aos].aos-animate{transition-delay:2.05s}[data-aos][data-aos][data-aos-duration=\\\"2100\\\"],body[data-aos-duration=\\\"2100\\\"] [data-aos]{transition-duration:2.1s}[data-aos][data-aos][data-aos-delay=\\\"2100\\\"],body[data-aos-delay=\\\"2100\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"2100\\\"].aos-animate,body[data-aos-delay=\\\"2100\\\"] [data-aos].aos-animate{transition-delay:2.1s}[data-aos][data-aos][data-aos-duration=\\\"2150\\\"],body[data-aos-duration=\\\"2150\\\"] [data-aos]{transition-duration:2.15s}[data-aos][data-aos][data-aos-delay=\\\"2150\\\"],body[data-aos-delay=\\\"2150\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"2150\\\"].aos-animate,body[data-aos-delay=\\\"2150\\\"] [data-aos].aos-animate{transition-delay:2.15s}[data-aos][data-aos][data-aos-duration=\\\"2200\\\"],body[data-aos-duration=\\\"2200\\\"] [data-aos]{transition-duration:2.2s}[data-aos][data-aos][data-aos-delay=\\\"2200\\\"],body[data-aos-delay=\\\"2200\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"2200\\\"].aos-animate,body[data-aos-delay=\\\"2200\\\"] [data-aos].aos-animate{transition-delay:2.2s}[data-aos][data-aos][data-aos-duration=\\\"2250\\\"],body[data-aos-duration=\\\"2250\\\"] [data-aos]{transition-duration:2.25s}[data-aos][data-aos][data-aos-delay=\\\"2250\\\"],body[data-aos-delay=\\\"2250\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"2250\\\"].aos-animate,body[data-aos-delay=\\\"2250\\\"] [data-aos].aos-animate{transition-delay:2.25s}[data-aos][data-aos][data-aos-duration=\\\"2300\\\"],body[data-aos-duration=\\\"2300\\\"] [data-aos]{transition-duration:2.3s}[data-aos][data-aos][data-aos-delay=\\\"2300\\\"],body[data-aos-delay=\\\"2300\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"2300\\\"].aos-animate,body[data-aos-delay=\\\"2300\\\"] [data-aos].aos-animate{transition-delay:2.3s}[data-aos][data-aos][data-aos-duration=\\\"2350\\\"],body[data-aos-duration=\\\"2350\\\"] [data-aos]{transition-duration:2.35s}[data-aos][data-aos][data-aos-delay=\\\"2350\\\"],body[data-aos-delay=\\\"2350\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"2350\\\"].aos-animate,body[data-aos-delay=\\\"2350\\\"] [data-aos].aos-animate{transition-delay:2.35s}[data-aos][data-aos][data-aos-duration=\\\"2400\\\"],body[data-aos-duration=\\\"2400\\\"] [data-aos]{transition-duration:2.4s}[data-aos][data-aos][data-aos-delay=\\\"2400\\\"],body[data-aos-delay=\\\"2400\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"2400\\\"].aos-animate,body[data-aos-delay=\\\"2400\\\"] [data-aos].aos-animate{transition-delay:2.4s}[data-aos][data-aos][data-aos-duration=\\\"2450\\\"],body[data-aos-duration=\\\"2450\\\"] [data-aos]{transition-duration:2.45s}[data-aos][data-aos][data-aos-delay=\\\"2450\\\"],body[data-aos-delay=\\\"2450\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"2450\\\"].aos-animate,body[data-aos-delay=\\\"2450\\\"] [data-aos].aos-animate{transition-delay:2.45s}[data-aos][data-aos][data-aos-duration=\\\"2500\\\"],body[data-aos-duration=\\\"2500\\\"] [data-aos]{transition-duration:2.5s}[data-aos][data-aos][data-aos-delay=\\\"2500\\\"],body[data-aos-delay=\\\"2500\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"2500\\\"].aos-animate,body[data-aos-delay=\\\"2500\\\"] [data-aos].aos-animate{transition-delay:2.5s}[data-aos][data-aos][data-aos-duration=\\\"2550\\\"],body[data-aos-duration=\\\"2550\\\"] [data-aos]{transition-duration:2.55s}[data-aos][data-aos][data-aos-delay=\\\"2550\\\"],body[data-aos-delay=\\\"2550\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"2550\\\"].aos-animate,body[data-aos-delay=\\\"2550\\\"] [data-aos].aos-animate{transition-delay:2.55s}[data-aos][data-aos][data-aos-duration=\\\"2600\\\"],body[data-aos-duration=\\\"2600\\\"] [data-aos]{transition-duration:2.6s}[data-aos][data-aos][data-aos-delay=\\\"2600\\\"],body[data-aos-delay=\\\"2600\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"2600\\\"].aos-animate,body[data-aos-delay=\\\"2600\\\"] [data-aos].aos-animate{transition-delay:2.6s}[data-aos][data-aos][data-aos-duration=\\\"2650\\\"],body[data-aos-duration=\\\"2650\\\"] [data-aos]{transition-duration:2.65s}[data-aos][data-aos][data-aos-delay=\\\"2650\\\"],body[data-aos-delay=\\\"2650\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"2650\\\"].aos-animate,body[data-aos-delay=\\\"2650\\\"] [data-aos].aos-animate{transition-delay:2.65s}[data-aos][data-aos][data-aos-duration=\\\"2700\\\"],body[data-aos-duration=\\\"2700\\\"] [data-aos]{transition-duration:2.7s}[data-aos][data-aos][data-aos-delay=\\\"2700\\\"],body[data-aos-delay=\\\"2700\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"2700\\\"].aos-animate,body[data-aos-delay=\\\"2700\\\"] [data-aos].aos-animate{transition-delay:2.7s}[data-aos][data-aos][data-aos-duration=\\\"2750\\\"],body[data-aos-duration=\\\"2750\\\"] [data-aos]{transition-duration:2.75s}[data-aos][data-aos][data-aos-delay=\\\"2750\\\"],body[data-aos-delay=\\\"2750\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"2750\\\"].aos-animate,body[data-aos-delay=\\\"2750\\\"] [data-aos].aos-animate{transition-delay:2.75s}[data-aos][data-aos][data-aos-duration=\\\"2800\\\"],body[data-aos-duration=\\\"2800\\\"] [data-aos]{transition-duration:2.8s}[data-aos][data-aos][data-aos-delay=\\\"2800\\\"],body[data-aos-delay=\\\"2800\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"2800\\\"].aos-animate,body[data-aos-delay=\\\"2800\\\"] [data-aos].aos-animate{transition-delay:2.8s}[data-aos][data-aos][data-aos-duration=\\\"2850\\\"],body[data-aos-duration=\\\"2850\\\"] [data-aos]{transition-duration:2.85s}[data-aos][data-aos][data-aos-delay=\\\"2850\\\"],body[data-aos-delay=\\\"2850\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"2850\\\"].aos-animate,body[data-aos-delay=\\\"2850\\\"] [data-aos].aos-animate{transition-delay:2.85s}[data-aos][data-aos][data-aos-duration=\\\"2900\\\"],body[data-aos-duration=\\\"2900\\\"] [data-aos]{transition-duration:2.9s}[data-aos][data-aos][data-aos-delay=\\\"2900\\\"],body[data-aos-delay=\\\"2900\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"2900\\\"].aos-animate,body[data-aos-delay=\\\"2900\\\"] [data-aos].aos-animate{transition-delay:2.9s}[data-aos][data-aos][data-aos-duration=\\\"2950\\\"],body[data-aos-duration=\\\"2950\\\"] [data-aos]{transition-duration:2.95s}[data-aos][data-aos][data-aos-delay=\\\"2950\\\"],body[data-aos-delay=\\\"2950\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"2950\\\"].aos-animate,body[data-aos-delay=\\\"2950\\\"] [data-aos].aos-animate{transition-delay:2.95s}[data-aos][data-aos][data-aos-duration=\\\"3000\\\"],body[data-aos-duration=\\\"3000\\\"] [data-aos]{transition-duration:3s}[data-aos][data-aos][data-aos-delay=\\\"3000\\\"],body[data-aos-delay=\\\"3000\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"3000\\\"].aos-animate,body[data-aos-delay=\\\"3000\\\"] [data-aos].aos-animate{transition-delay:3s}[data-aos][data-aos][data-aos-easing=linear],body[data-aos-easing=linear] [data-aos]{transition-timing-function:cubic-bezier(.25,.25,.75,.75)}[data-aos][data-aos][data-aos-easing=ease],body[data-aos-easing=ease] [data-aos]{transition-timing-function:ease}[data-aos][data-aos][data-aos-easing=ease-in],body[data-aos-easing=ease-in] [data-aos]{transition-timing-function:ease-in}[data-aos][data-aos][data-aos-easing=ease-out],body[data-aos-easing=ease-out] [data-aos]{transition-timing-function:ease-out}[data-aos][data-aos][data-aos-easing=ease-in-out],body[data-aos-easing=ease-in-out] [data-aos]{transition-timing-function:ease-in-out}[data-aos][data-aos][data-aos-easing=ease-in-back],body[data-aos-easing=ease-in-back] [data-aos]{transition-timing-function:cubic-bezier(.6,-.28,.735,.045)}[data-aos][data-aos][data-aos-easing=ease-out-back],body[data-aos-easing=ease-out-back] [data-aos]{transition-timing-function:cubic-bezier(.175,.885,.32,1.275)}[data-aos][data-aos][data-aos-easing=ease-in-out-back],body[data-aos-easing=ease-in-out-back] [data-aos]{transition-timing-function:cubic-bezier(.68,-.55,.265,1.55)}[data-aos][data-aos][data-aos-easing=ease-in-sine],body[data-aos-easing=ease-in-sine] [data-aos]{transition-timing-function:cubic-bezier(.47,0,.745,.715)}[data-aos][data-aos][data-aos-easing=ease-out-sine],body[data-aos-easing=ease-out-sine] [data-aos]{transition-timing-function:cubic-bezier(.39,.575,.565,1)}[data-aos][data-aos][data-aos-easing=ease-in-out-sine],body[data-aos-easing=ease-in-out-sine] [data-aos]{transition-timing-function:cubic-bezier(.445,.05,.55,.95)}[data-aos][data-aos][data-aos-easing=ease-in-quad],body[data-aos-easing=ease-in-quad] [data-aos]{transition-timing-function:cubic-bezier(.55,.085,.68,.53)}[data-aos][data-aos][data-aos-easing=ease-out-quad],body[data-aos-easing=ease-out-quad] [data-aos]{transition-timing-function:cubic-bezier(.25,.46,.45,.94)}[data-aos][data-aos][data-aos-easing=ease-in-out-quad],body[data-aos-easing=ease-in-out-quad] [data-aos]{transition-timing-function:cubic-bezier(.455,.03,.515,.955)}[data-aos][data-aos][data-aos-easing=ease-in-cubic],body[data-aos-easing=ease-in-cubic] [data-aos]{transition-timing-function:cubic-bezier(.55,.085,.68,.53)}[data-aos][data-aos][data-aos-easing=ease-out-cubic],body[data-aos-easing=ease-out-cubic] [data-aos]{transition-timing-function:cubic-bezier(.25,.46,.45,.94)}[data-aos][data-aos][data-aos-easing=ease-in-out-cubic],body[data-aos-easing=ease-in-out-cubic] [data-aos]{transition-timing-function:cubic-bezier(.455,.03,.515,.955)}[data-aos][data-aos][data-aos-easing=ease-in-quart],body[data-aos-easing=ease-in-quart] [data-aos]{transition-timing-function:cubic-bezier(.55,.085,.68,.53)}[data-aos][data-aos][data-aos-easing=ease-out-quart],body[data-aos-easing=ease-out-quart] [data-aos]{transition-timing-function:cubic-bezier(.25,.46,.45,.94)}[data-aos][data-aos][data-aos-easing=ease-in-out-quart],body[data-aos-easing=ease-in-out-quart] [data-aos]{transition-timing-function:cubic-bezier(.455,.03,.515,.955)}[data-aos^=fade][data-aos^=fade]{opacity:0;transition-property:opacity,transform}[data-aos^=fade][data-aos^=fade].aos-animate{opacity:1;transform:translateZ(0)}[data-aos=fade-up]{transform:translate3d(0,100px,0)}[data-aos=fade-down]{transform:translate3d(0,-100px,0)}[data-aos=fade-right]{transform:translate3d(-100px,0,0)}[data-aos=fade-left]{transform:translate3d(100px,0,0)}[data-aos=fade-up-right]{transform:translate3d(-100px,100px,0)}[data-aos=fade-up-left]{transform:translate3d(100px,100px,0)}[data-aos=fade-down-right]{transform:translate3d(-100px,-100px,0)}[data-aos=fade-down-left]{transform:translate3d(100px,-100px,0)}[data-aos^=zoom][data-aos^=zoom]{opacity:0;transition-property:opacity,transform}[data-aos^=zoom][data-aos^=zoom].aos-animate{opacity:1;transform:translateZ(0) scale(1)}[data-aos=zoom-in]{transform:scale(.6)}[data-aos=zoom-in-up]{transform:translate3d(0,100px,0) scale(.6)}[data-aos=zoom-in-down]{transform:translate3d(0,-100px,0) scale(.6)}[data-aos=zoom-in-right]{transform:translate3d(-100px,0,0) scale(.6)}[data-aos=zoom-in-left]{transform:translate3d(100px,0,0) scale(.6)}[data-aos=zoom-out]{transform:scale(1.2)}[data-aos=zoom-out-up]{transform:translate3d(0,100px,0) scale(1.2)}[data-aos=zoom-out-down]{transform:translate3d(0,-100px,0) scale(1.2)}[data-aos=zoom-out-right]{transform:translate3d(-100px,0,0) scale(1.2)}[data-aos=zoom-out-left]{transform:translate3d(100px,0,0) scale(1.2)}[data-aos^=slide][data-aos^=slide]{transition-property:transform}[data-aos^=slide][data-aos^=slide].aos-animate{transform:translateZ(0)}[data-aos=slide-up]{transform:translate3d(0,100%,0)}[data-aos=slide-down]{transform:translate3d(0,-100%,0)}[data-aos=slide-right]{transform:translate3d(-100%,0,0)}[data-aos=slide-left]{transform:translate3d(100%,0,0)}[data-aos^=flip][data-aos^=flip]{backface-visibility:hidden;transition-property:transform}[data-aos=flip-left]{transform:perspective(2500px) rotateY(-100deg)}[data-aos=flip-left].aos-animate{transform:perspective(2500px) rotateY(0)}[data-aos=flip-right]{transform:perspective(2500px) rotateY(100deg)}[data-aos=flip-right].aos-animate{transform:perspective(2500px) rotateY(0)}[data-aos=flip-up]{transform:perspective(2500px) rotateX(-100deg)}[data-aos=flip-up].aos-animate{transform:perspective(2500px) rotateX(0)}[data-aos=flip-down]{transform:perspective(2500px) rotateX(100deg)}[data-aos=flip-down].aos-animate{transform:perspective(2500px) rotateX(0)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/aos/dist/aos.css\"],\"names\":[],\"mappings\":\"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\",\"sourcesContent\":[\"[data-aos][data-aos][data-aos-duration=\\\"50\\\"],body[data-aos-duration=\\\"50\\\"] [data-aos]{transition-duration:50ms}[data-aos][data-aos][data-aos-delay=\\\"50\\\"],body[data-aos-delay=\\\"50\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"50\\\"].aos-animate,body[data-aos-delay=\\\"50\\\"] [data-aos].aos-animate{transition-delay:50ms}[data-aos][data-aos][data-aos-duration=\\\"100\\\"],body[data-aos-duration=\\\"100\\\"] [data-aos]{transition-duration:.1s}[data-aos][data-aos][data-aos-delay=\\\"100\\\"],body[data-aos-delay=\\\"100\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"100\\\"].aos-animate,body[data-aos-delay=\\\"100\\\"] [data-aos].aos-animate{transition-delay:.1s}[data-aos][data-aos][data-aos-duration=\\\"150\\\"],body[data-aos-duration=\\\"150\\\"] [data-aos]{transition-duration:.15s}[data-aos][data-aos][data-aos-delay=\\\"150\\\"],body[data-aos-delay=\\\"150\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"150\\\"].aos-animate,body[data-aos-delay=\\\"150\\\"] [data-aos].aos-animate{transition-delay:.15s}[data-aos][data-aos][data-aos-duration=\\\"200\\\"],body[data-aos-duration=\\\"200\\\"] [data-aos]{transition-duration:.2s}[data-aos][data-aos][data-aos-delay=\\\"200\\\"],body[data-aos-delay=\\\"200\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"200\\\"].aos-animate,body[data-aos-delay=\\\"200\\\"] [data-aos].aos-animate{transition-delay:.2s}[data-aos][data-aos][data-aos-duration=\\\"250\\\"],body[data-aos-duration=\\\"250\\\"] [data-aos]{transition-duration:.25s}[data-aos][data-aos][data-aos-delay=\\\"250\\\"],body[data-aos-delay=\\\"250\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"250\\\"].aos-animate,body[data-aos-delay=\\\"250\\\"] [data-aos].aos-animate{transition-delay:.25s}[data-aos][data-aos][data-aos-duration=\\\"300\\\"],body[data-aos-duration=\\\"300\\\"] [data-aos]{transition-duration:.3s}[data-aos][data-aos][data-aos-delay=\\\"300\\\"],body[data-aos-delay=\\\"300\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"300\\\"].aos-animate,body[data-aos-delay=\\\"300\\\"] [data-aos].aos-animate{transition-delay:.3s}[data-aos][data-aos][data-aos-duration=\\\"350\\\"],body[data-aos-duration=\\\"350\\\"] [data-aos]{transition-duration:.35s}[data-aos][data-aos][data-aos-delay=\\\"350\\\"],body[data-aos-delay=\\\"350\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"350\\\"].aos-animate,body[data-aos-delay=\\\"350\\\"] [data-aos].aos-animate{transition-delay:.35s}[data-aos][data-aos][data-aos-duration=\\\"400\\\"],body[data-aos-duration=\\\"400\\\"] [data-aos]{transition-duration:.4s}[data-aos][data-aos][data-aos-delay=\\\"400\\\"],body[data-aos-delay=\\\"400\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"400\\\"].aos-animate,body[data-aos-delay=\\\"400\\\"] [data-aos].aos-animate{transition-delay:.4s}[data-aos][data-aos][data-aos-duration=\\\"450\\\"],body[data-aos-duration=\\\"450\\\"] [data-aos]{transition-duration:.45s}[data-aos][data-aos][data-aos-delay=\\\"450\\\"],body[data-aos-delay=\\\"450\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"450\\\"].aos-animate,body[data-aos-delay=\\\"450\\\"] [data-aos].aos-animate{transition-delay:.45s}[data-aos][data-aos][data-aos-duration=\\\"500\\\"],body[data-aos-duration=\\\"500\\\"] [data-aos]{transition-duration:.5s}[data-aos][data-aos][data-aos-delay=\\\"500\\\"],body[data-aos-delay=\\\"500\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"500\\\"].aos-animate,body[data-aos-delay=\\\"500\\\"] [data-aos].aos-animate{transition-delay:.5s}[data-aos][data-aos][data-aos-duration=\\\"550\\\"],body[data-aos-duration=\\\"550\\\"] [data-aos]{transition-duration:.55s}[data-aos][data-aos][data-aos-delay=\\\"550\\\"],body[data-aos-delay=\\\"550\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"550\\\"].aos-animate,body[data-aos-delay=\\\"550\\\"] [data-aos].aos-animate{transition-delay:.55s}[data-aos][data-aos][data-aos-duration=\\\"600\\\"],body[data-aos-duration=\\\"600\\\"] [data-aos]{transition-duration:.6s}[data-aos][data-aos][data-aos-delay=\\\"600\\\"],body[data-aos-delay=\\\"600\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"600\\\"].aos-animate,body[data-aos-delay=\\\"600\\\"] [data-aos].aos-animate{transition-delay:.6s}[data-aos][data-aos][data-aos-duration=\\\"650\\\"],body[data-aos-duration=\\\"650\\\"] [data-aos]{transition-duration:.65s}[data-aos][data-aos][data-aos-delay=\\\"650\\\"],body[data-aos-delay=\\\"650\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"650\\\"].aos-animate,body[data-aos-delay=\\\"650\\\"] [data-aos].aos-animate{transition-delay:.65s}[data-aos][data-aos][data-aos-duration=\\\"700\\\"],body[data-aos-duration=\\\"700\\\"] [data-aos]{transition-duration:.7s}[data-aos][data-aos][data-aos-delay=\\\"700\\\"],body[data-aos-delay=\\\"700\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"700\\\"].aos-animate,body[data-aos-delay=\\\"700\\\"] [data-aos].aos-animate{transition-delay:.7s}[data-aos][data-aos][data-aos-duration=\\\"750\\\"],body[data-aos-duration=\\\"750\\\"] [data-aos]{transition-duration:.75s}[data-aos][data-aos][data-aos-delay=\\\"750\\\"],body[data-aos-delay=\\\"750\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"750\\\"].aos-animate,body[data-aos-delay=\\\"750\\\"] [data-aos].aos-animate{transition-delay:.75s}[data-aos][data-aos][data-aos-duration=\\\"800\\\"],body[data-aos-duration=\\\"800\\\"] [data-aos]{transition-duration:.8s}[data-aos][data-aos][data-aos-delay=\\\"800\\\"],body[data-aos-delay=\\\"800\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"800\\\"].aos-animate,body[data-aos-delay=\\\"800\\\"] [data-aos].aos-animate{transition-delay:.8s}[data-aos][data-aos][data-aos-duration=\\\"850\\\"],body[data-aos-duration=\\\"850\\\"] [data-aos]{transition-duration:.85s}[data-aos][data-aos][data-aos-delay=\\\"850\\\"],body[data-aos-delay=\\\"850\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"850\\\"].aos-animate,body[data-aos-delay=\\\"850\\\"] [data-aos].aos-animate{transition-delay:.85s}[data-aos][data-aos][data-aos-duration=\\\"900\\\"],body[data-aos-duration=\\\"900\\\"] [data-aos]{transition-duration:.9s}[data-aos][data-aos][data-aos-delay=\\\"900\\\"],body[data-aos-delay=\\\"900\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"900\\\"].aos-animate,body[data-aos-delay=\\\"900\\\"] [data-aos].aos-animate{transition-delay:.9s}[data-aos][data-aos][data-aos-duration=\\\"950\\\"],body[data-aos-duration=\\\"950\\\"] [data-aos]{transition-duration:.95s}[data-aos][data-aos][data-aos-delay=\\\"950\\\"],body[data-aos-delay=\\\"950\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"950\\\"].aos-animate,body[data-aos-delay=\\\"950\\\"] [data-aos].aos-animate{transition-delay:.95s}[data-aos][data-aos][data-aos-duration=\\\"1000\\\"],body[data-aos-duration=\\\"1000\\\"] [data-aos]{transition-duration:1s}[data-aos][data-aos][data-aos-delay=\\\"1000\\\"],body[data-aos-delay=\\\"1000\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"1000\\\"].aos-animate,body[data-aos-delay=\\\"1000\\\"] [data-aos].aos-animate{transition-delay:1s}[data-aos][data-aos][data-aos-duration=\\\"1050\\\"],body[data-aos-duration=\\\"1050\\\"] [data-aos]{transition-duration:1.05s}[data-aos][data-aos][data-aos-delay=\\\"1050\\\"],body[data-aos-delay=\\\"1050\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"1050\\\"].aos-animate,body[data-aos-delay=\\\"1050\\\"] [data-aos].aos-animate{transition-delay:1.05s}[data-aos][data-aos][data-aos-duration=\\\"1100\\\"],body[data-aos-duration=\\\"1100\\\"] [data-aos]{transition-duration:1.1s}[data-aos][data-aos][data-aos-delay=\\\"1100\\\"],body[data-aos-delay=\\\"1100\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"1100\\\"].aos-animate,body[data-aos-delay=\\\"1100\\\"] [data-aos].aos-animate{transition-delay:1.1s}[data-aos][data-aos][data-aos-duration=\\\"1150\\\"],body[data-aos-duration=\\\"1150\\\"] [data-aos]{transition-duration:1.15s}[data-aos][data-aos][data-aos-delay=\\\"1150\\\"],body[data-aos-delay=\\\"1150\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"1150\\\"].aos-animate,body[data-aos-delay=\\\"1150\\\"] [data-aos].aos-animate{transition-delay:1.15s}[data-aos][data-aos][data-aos-duration=\\\"1200\\\"],body[data-aos-duration=\\\"1200\\\"] [data-aos]{transition-duration:1.2s}[data-aos][data-aos][data-aos-delay=\\\"1200\\\"],body[data-aos-delay=\\\"1200\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"1200\\\"].aos-animate,body[data-aos-delay=\\\"1200\\\"] [data-aos].aos-animate{transition-delay:1.2s}[data-aos][data-aos][data-aos-duration=\\\"1250\\\"],body[data-aos-duration=\\\"1250\\\"] [data-aos]{transition-duration:1.25s}[data-aos][data-aos][data-aos-delay=\\\"1250\\\"],body[data-aos-delay=\\\"1250\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"1250\\\"].aos-animate,body[data-aos-delay=\\\"1250\\\"] [data-aos].aos-animate{transition-delay:1.25s}[data-aos][data-aos][data-aos-duration=\\\"1300\\\"],body[data-aos-duration=\\\"1300\\\"] [data-aos]{transition-duration:1.3s}[data-aos][data-aos][data-aos-delay=\\\"1300\\\"],body[data-aos-delay=\\\"1300\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"1300\\\"].aos-animate,body[data-aos-delay=\\\"1300\\\"] [data-aos].aos-animate{transition-delay:1.3s}[data-aos][data-aos][data-aos-duration=\\\"1350\\\"],body[data-aos-duration=\\\"1350\\\"] [data-aos]{transition-duration:1.35s}[data-aos][data-aos][data-aos-delay=\\\"1350\\\"],body[data-aos-delay=\\\"1350\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"1350\\\"].aos-animate,body[data-aos-delay=\\\"1350\\\"] [data-aos].aos-animate{transition-delay:1.35s}[data-aos][data-aos][data-aos-duration=\\\"1400\\\"],body[data-aos-duration=\\\"1400\\\"] [data-aos]{transition-duration:1.4s}[data-aos][data-aos][data-aos-delay=\\\"1400\\\"],body[data-aos-delay=\\\"1400\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"1400\\\"].aos-animate,body[data-aos-delay=\\\"1400\\\"] [data-aos].aos-animate{transition-delay:1.4s}[data-aos][data-aos][data-aos-duration=\\\"1450\\\"],body[data-aos-duration=\\\"1450\\\"] [data-aos]{transition-duration:1.45s}[data-aos][data-aos][data-aos-delay=\\\"1450\\\"],body[data-aos-delay=\\\"1450\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"1450\\\"].aos-animate,body[data-aos-delay=\\\"1450\\\"] [data-aos].aos-animate{transition-delay:1.45s}[data-aos][data-aos][data-aos-duration=\\\"1500\\\"],body[data-aos-duration=\\\"1500\\\"] [data-aos]{transition-duration:1.5s}[data-aos][data-aos][data-aos-delay=\\\"1500\\\"],body[data-aos-delay=\\\"1500\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"1500\\\"].aos-animate,body[data-aos-delay=\\\"1500\\\"] [data-aos].aos-animate{transition-delay:1.5s}[data-aos][data-aos][data-aos-duration=\\\"1550\\\"],body[data-aos-duration=\\\"1550\\\"] [data-aos]{transition-duration:1.55s}[data-aos][data-aos][data-aos-delay=\\\"1550\\\"],body[data-aos-delay=\\\"1550\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"1550\\\"].aos-animate,body[data-aos-delay=\\\"1550\\\"] [data-aos].aos-animate{transition-delay:1.55s}[data-aos][data-aos][data-aos-duration=\\\"1600\\\"],body[data-aos-duration=\\\"1600\\\"] [data-aos]{transition-duration:1.6s}[data-aos][data-aos][data-aos-delay=\\\"1600\\\"],body[data-aos-delay=\\\"1600\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"1600\\\"].aos-animate,body[data-aos-delay=\\\"1600\\\"] [data-aos].aos-animate{transition-delay:1.6s}[data-aos][data-aos][data-aos-duration=\\\"1650\\\"],body[data-aos-duration=\\\"1650\\\"] [data-aos]{transition-duration:1.65s}[data-aos][data-aos][data-aos-delay=\\\"1650\\\"],body[data-aos-delay=\\\"1650\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"1650\\\"].aos-animate,body[data-aos-delay=\\\"1650\\\"] [data-aos].aos-animate{transition-delay:1.65s}[data-aos][data-aos][data-aos-duration=\\\"1700\\\"],body[data-aos-duration=\\\"1700\\\"] [data-aos]{transition-duration:1.7s}[data-aos][data-aos][data-aos-delay=\\\"1700\\\"],body[data-aos-delay=\\\"1700\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"1700\\\"].aos-animate,body[data-aos-delay=\\\"1700\\\"] [data-aos].aos-animate{transition-delay:1.7s}[data-aos][data-aos][data-aos-duration=\\\"1750\\\"],body[data-aos-duration=\\\"1750\\\"] [data-aos]{transition-duration:1.75s}[data-aos][data-aos][data-aos-delay=\\\"1750\\\"],body[data-aos-delay=\\\"1750\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"1750\\\"].aos-animate,body[data-aos-delay=\\\"1750\\\"] [data-aos].aos-animate{transition-delay:1.75s}[data-aos][data-aos][data-aos-duration=\\\"1800\\\"],body[data-aos-duration=\\\"1800\\\"] [data-aos]{transition-duration:1.8s}[data-aos][data-aos][data-aos-delay=\\\"1800\\\"],body[data-aos-delay=\\\"1800\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"1800\\\"].aos-animate,body[data-aos-delay=\\\"1800\\\"] [data-aos].aos-animate{transition-delay:1.8s}[data-aos][data-aos][data-aos-duration=\\\"1850\\\"],body[data-aos-duration=\\\"1850\\\"] [data-aos]{transition-duration:1.85s}[data-aos][data-aos][data-aos-delay=\\\"1850\\\"],body[data-aos-delay=\\\"1850\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"1850\\\"].aos-animate,body[data-aos-delay=\\\"1850\\\"] [data-aos].aos-animate{transition-delay:1.85s}[data-aos][data-aos][data-aos-duration=\\\"1900\\\"],body[data-aos-duration=\\\"1900\\\"] [data-aos]{transition-duration:1.9s}[data-aos][data-aos][data-aos-delay=\\\"1900\\\"],body[data-aos-delay=\\\"1900\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"1900\\\"].aos-animate,body[data-aos-delay=\\\"1900\\\"] [data-aos].aos-animate{transition-delay:1.9s}[data-aos][data-aos][data-aos-duration=\\\"1950\\\"],body[data-aos-duration=\\\"1950\\\"] [data-aos]{transition-duration:1.95s}[data-aos][data-aos][data-aos-delay=\\\"1950\\\"],body[data-aos-delay=\\\"1950\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"1950\\\"].aos-animate,body[data-aos-delay=\\\"1950\\\"] [data-aos].aos-animate{transition-delay:1.95s}[data-aos][data-aos][data-aos-duration=\\\"2000\\\"],body[data-aos-duration=\\\"2000\\\"] [data-aos]{transition-duration:2s}[data-aos][data-aos][data-aos-delay=\\\"2000\\\"],body[data-aos-delay=\\\"2000\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"2000\\\"].aos-animate,body[data-aos-delay=\\\"2000\\\"] [data-aos].aos-animate{transition-delay:2s}[data-aos][data-aos][data-aos-duration=\\\"2050\\\"],body[data-aos-duration=\\\"2050\\\"] [data-aos]{transition-duration:2.05s}[data-aos][data-aos][data-aos-delay=\\\"2050\\\"],body[data-aos-delay=\\\"2050\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"2050\\\"].aos-animate,body[data-aos-delay=\\\"2050\\\"] [data-aos].aos-animate{transition-delay:2.05s}[data-aos][data-aos][data-aos-duration=\\\"2100\\\"],body[data-aos-duration=\\\"2100\\\"] [data-aos]{transition-duration:2.1s}[data-aos][data-aos][data-aos-delay=\\\"2100\\\"],body[data-aos-delay=\\\"2100\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"2100\\\"].aos-animate,body[data-aos-delay=\\\"2100\\\"] [data-aos].aos-animate{transition-delay:2.1s}[data-aos][data-aos][data-aos-duration=\\\"2150\\\"],body[data-aos-duration=\\\"2150\\\"] [data-aos]{transition-duration:2.15s}[data-aos][data-aos][data-aos-delay=\\\"2150\\\"],body[data-aos-delay=\\\"2150\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"2150\\\"].aos-animate,body[data-aos-delay=\\\"2150\\\"] [data-aos].aos-animate{transition-delay:2.15s}[data-aos][data-aos][data-aos-duration=\\\"2200\\\"],body[data-aos-duration=\\\"2200\\\"] [data-aos]{transition-duration:2.2s}[data-aos][data-aos][data-aos-delay=\\\"2200\\\"],body[data-aos-delay=\\\"2200\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"2200\\\"].aos-animate,body[data-aos-delay=\\\"2200\\\"] [data-aos].aos-animate{transition-delay:2.2s}[data-aos][data-aos][data-aos-duration=\\\"2250\\\"],body[data-aos-duration=\\\"2250\\\"] [data-aos]{transition-duration:2.25s}[data-aos][data-aos][data-aos-delay=\\\"2250\\\"],body[data-aos-delay=\\\"2250\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"2250\\\"].aos-animate,body[data-aos-delay=\\\"2250\\\"] [data-aos].aos-animate{transition-delay:2.25s}[data-aos][data-aos][data-aos-duration=\\\"2300\\\"],body[data-aos-duration=\\\"2300\\\"] [data-aos]{transition-duration:2.3s}[data-aos][data-aos][data-aos-delay=\\\"2300\\\"],body[data-aos-delay=\\\"2300\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"2300\\\"].aos-animate,body[data-aos-delay=\\\"2300\\\"] [data-aos].aos-animate{transition-delay:2.3s}[data-aos][data-aos][data-aos-duration=\\\"2350\\\"],body[data-aos-duration=\\\"2350\\\"] [data-aos]{transition-duration:2.35s}[data-aos][data-aos][data-aos-delay=\\\"2350\\\"],body[data-aos-delay=\\\"2350\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"2350\\\"].aos-animate,body[data-aos-delay=\\\"2350\\\"] [data-aos].aos-animate{transition-delay:2.35s}[data-aos][data-aos][data-aos-duration=\\\"2400\\\"],body[data-aos-duration=\\\"2400\\\"] [data-aos]{transition-duration:2.4s}[data-aos][data-aos][data-aos-delay=\\\"2400\\\"],body[data-aos-delay=\\\"2400\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"2400\\\"].aos-animate,body[data-aos-delay=\\\"2400\\\"] [data-aos].aos-animate{transition-delay:2.4s}[data-aos][data-aos][data-aos-duration=\\\"2450\\\"],body[data-aos-duration=\\\"2450\\\"] [data-aos]{transition-duration:2.45s}[data-aos][data-aos][data-aos-delay=\\\"2450\\\"],body[data-aos-delay=\\\"2450\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"2450\\\"].aos-animate,body[data-aos-delay=\\\"2450\\\"] [data-aos].aos-animate{transition-delay:2.45s}[data-aos][data-aos][data-aos-duration=\\\"2500\\\"],body[data-aos-duration=\\\"2500\\\"] [data-aos]{transition-duration:2.5s}[data-aos][data-aos][data-aos-delay=\\\"2500\\\"],body[data-aos-delay=\\\"2500\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"2500\\\"].aos-animate,body[data-aos-delay=\\\"2500\\\"] [data-aos].aos-animate{transition-delay:2.5s}[data-aos][data-aos][data-aos-duration=\\\"2550\\\"],body[data-aos-duration=\\\"2550\\\"] [data-aos]{transition-duration:2.55s}[data-aos][data-aos][data-aos-delay=\\\"2550\\\"],body[data-aos-delay=\\\"2550\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"2550\\\"].aos-animate,body[data-aos-delay=\\\"2550\\\"] [data-aos].aos-animate{transition-delay:2.55s}[data-aos][data-aos][data-aos-duration=\\\"2600\\\"],body[data-aos-duration=\\\"2600\\\"] [data-aos]{transition-duration:2.6s}[data-aos][data-aos][data-aos-delay=\\\"2600\\\"],body[data-aos-delay=\\\"2600\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"2600\\\"].aos-animate,body[data-aos-delay=\\\"2600\\\"] [data-aos].aos-animate{transition-delay:2.6s}[data-aos][data-aos][data-aos-duration=\\\"2650\\\"],body[data-aos-duration=\\\"2650\\\"] [data-aos]{transition-duration:2.65s}[data-aos][data-aos][data-aos-delay=\\\"2650\\\"],body[data-aos-delay=\\\"2650\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"2650\\\"].aos-animate,body[data-aos-delay=\\\"2650\\\"] [data-aos].aos-animate{transition-delay:2.65s}[data-aos][data-aos][data-aos-duration=\\\"2700\\\"],body[data-aos-duration=\\\"2700\\\"] [data-aos]{transition-duration:2.7s}[data-aos][data-aos][data-aos-delay=\\\"2700\\\"],body[data-aos-delay=\\\"2700\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"2700\\\"].aos-animate,body[data-aos-delay=\\\"2700\\\"] [data-aos].aos-animate{transition-delay:2.7s}[data-aos][data-aos][data-aos-duration=\\\"2750\\\"],body[data-aos-duration=\\\"2750\\\"] [data-aos]{transition-duration:2.75s}[data-aos][data-aos][data-aos-delay=\\\"2750\\\"],body[data-aos-delay=\\\"2750\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"2750\\\"].aos-animate,body[data-aos-delay=\\\"2750\\\"] [data-aos].aos-animate{transition-delay:2.75s}[data-aos][data-aos][data-aos-duration=\\\"2800\\\"],body[data-aos-duration=\\\"2800\\\"] [data-aos]{transition-duration:2.8s}[data-aos][data-aos][data-aos-delay=\\\"2800\\\"],body[data-aos-delay=\\\"2800\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"2800\\\"].aos-animate,body[data-aos-delay=\\\"2800\\\"] [data-aos].aos-animate{transition-delay:2.8s}[data-aos][data-aos][data-aos-duration=\\\"2850\\\"],body[data-aos-duration=\\\"2850\\\"] [data-aos]{transition-duration:2.85s}[data-aos][data-aos][data-aos-delay=\\\"2850\\\"],body[data-aos-delay=\\\"2850\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"2850\\\"].aos-animate,body[data-aos-delay=\\\"2850\\\"] [data-aos].aos-animate{transition-delay:2.85s}[data-aos][data-aos][data-aos-duration=\\\"2900\\\"],body[data-aos-duration=\\\"2900\\\"] [data-aos]{transition-duration:2.9s}[data-aos][data-aos][data-aos-delay=\\\"2900\\\"],body[data-aos-delay=\\\"2900\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"2900\\\"].aos-animate,body[data-aos-delay=\\\"2900\\\"] [data-aos].aos-animate{transition-delay:2.9s}[data-aos][data-aos][data-aos-duration=\\\"2950\\\"],body[data-aos-duration=\\\"2950\\\"] [data-aos]{transition-duration:2.95s}[data-aos][data-aos][data-aos-delay=\\\"2950\\\"],body[data-aos-delay=\\\"2950\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"2950\\\"].aos-animate,body[data-aos-delay=\\\"2950\\\"] [data-aos].aos-animate{transition-delay:2.95s}[data-aos][data-aos][data-aos-duration=\\\"3000\\\"],body[data-aos-duration=\\\"3000\\\"] [data-aos]{transition-duration:3s}[data-aos][data-aos][data-aos-delay=\\\"3000\\\"],body[data-aos-delay=\\\"3000\\\"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay=\\\"3000\\\"].aos-animate,body[data-aos-delay=\\\"3000\\\"] [data-aos].aos-animate{transition-delay:3s}[data-aos][data-aos][data-aos-easing=linear],body[data-aos-easing=linear] [data-aos]{transition-timing-function:cubic-bezier(.25,.25,.75,.75)}[data-aos][data-aos][data-aos-easing=ease],body[data-aos-easing=ease] [data-aos]{transition-timing-function:ease}[data-aos][data-aos][data-aos-easing=ease-in],body[data-aos-easing=ease-in] [data-aos]{transition-timing-function:ease-in}[data-aos][data-aos][data-aos-easing=ease-out],body[data-aos-easing=ease-out] [data-aos]{transition-timing-function:ease-out}[data-aos][data-aos][data-aos-easing=ease-in-out],body[data-aos-easing=ease-in-out] [data-aos]{transition-timing-function:ease-in-out}[data-aos][data-aos][data-aos-easing=ease-in-back],body[data-aos-easing=ease-in-back] [data-aos]{transition-timing-function:cubic-bezier(.6,-.28,.735,.045)}[data-aos][data-aos][data-aos-easing=ease-out-back],body[data-aos-easing=ease-out-back] [data-aos]{transition-timing-function:cubic-bezier(.175,.885,.32,1.275)}[data-aos][data-aos][data-aos-easing=ease-in-out-back],body[data-aos-easing=ease-in-out-back] [data-aos]{transition-timing-function:cubic-bezier(.68,-.55,.265,1.55)}[data-aos][data-aos][data-aos-easing=ease-in-sine],body[data-aos-easing=ease-in-sine] [data-aos]{transition-timing-function:cubic-bezier(.47,0,.745,.715)}[data-aos][data-aos][data-aos-easing=ease-out-sine],body[data-aos-easing=ease-out-sine] [data-aos]{transition-timing-function:cubic-bezier(.39,.575,.565,1)}[data-aos][data-aos][data-aos-easing=ease-in-out-sine],body[data-aos-easing=ease-in-out-sine] [data-aos]{transition-timing-function:cubic-bezier(.445,.05,.55,.95)}[data-aos][data-aos][data-aos-easing=ease-in-quad],body[data-aos-easing=ease-in-quad] [data-aos]{transition-timing-function:cubic-bezier(.55,.085,.68,.53)}[data-aos][data-aos][data-aos-easing=ease-out-quad],body[data-aos-easing=ease-out-quad] [data-aos]{transition-timing-function:cubic-bezier(.25,.46,.45,.94)}[data-aos][data-aos][data-aos-easing=ease-in-out-quad],body[data-aos-easing=ease-in-out-quad] [data-aos]{transition-timing-function:cubic-bezier(.455,.03,.515,.955)}[data-aos][data-aos][data-aos-easing=ease-in-cubic],body[data-aos-easing=ease-in-cubic] [data-aos]{transition-timing-function:cubic-bezier(.55,.085,.68,.53)}[data-aos][data-aos][data-aos-easing=ease-out-cubic],body[data-aos-easing=ease-out-cubic] [data-aos]{transition-timing-function:cubic-bezier(.25,.46,.45,.94)}[data-aos][data-aos][data-aos-easing=ease-in-out-cubic],body[data-aos-easing=ease-in-out-cubic] [data-aos]{transition-timing-function:cubic-bezier(.455,.03,.515,.955)}[data-aos][data-aos][data-aos-easing=ease-in-quart],body[data-aos-easing=ease-in-quart] [data-aos]{transition-timing-function:cubic-bezier(.55,.085,.68,.53)}[data-aos][data-aos][data-aos-easing=ease-out-quart],body[data-aos-easing=ease-out-quart] [data-aos]{transition-timing-function:cubic-bezier(.25,.46,.45,.94)}[data-aos][data-aos][data-aos-easing=ease-in-out-quart],body[data-aos-easing=ease-in-out-quart] [data-aos]{transition-timing-function:cubic-bezier(.455,.03,.515,.955)}[data-aos^=fade][data-aos^=fade]{opacity:0;transition-property:opacity,transform}[data-aos^=fade][data-aos^=fade].aos-animate{opacity:1;transform:translateZ(0)}[data-aos=fade-up]{transform:translate3d(0,100px,0)}[data-aos=fade-down]{transform:translate3d(0,-100px,0)}[data-aos=fade-right]{transform:translate3d(-100px,0,0)}[data-aos=fade-left]{transform:translate3d(100px,0,0)}[data-aos=fade-up-right]{transform:translate3d(-100px,100px,0)}[data-aos=fade-up-left]{transform:translate3d(100px,100px,0)}[data-aos=fade-down-right]{transform:translate3d(-100px,-100px,0)}[data-aos=fade-down-left]{transform:translate3d(100px,-100px,0)}[data-aos^=zoom][data-aos^=zoom]{opacity:0;transition-property:opacity,transform}[data-aos^=zoom][data-aos^=zoom].aos-animate{opacity:1;transform:translateZ(0) scale(1)}[data-aos=zoom-in]{transform:scale(.6)}[data-aos=zoom-in-up]{transform:translate3d(0,100px,0) scale(.6)}[data-aos=zoom-in-down]{transform:translate3d(0,-100px,0) scale(.6)}[data-aos=zoom-in-right]{transform:translate3d(-100px,0,0) scale(.6)}[data-aos=zoom-in-left]{transform:translate3d(100px,0,0) scale(.6)}[data-aos=zoom-out]{transform:scale(1.2)}[data-aos=zoom-out-up]{transform:translate3d(0,100px,0) scale(1.2)}[data-aos=zoom-out-down]{transform:translate3d(0,-100px,0) scale(1.2)}[data-aos=zoom-out-right]{transform:translate3d(-100px,0,0) scale(1.2)}[data-aos=zoom-out-left]{transform:translate3d(100px,0,0) scale(1.2)}[data-aos^=slide][data-aos^=slide]{transition-property:transform}[data-aos^=slide][data-aos^=slide].aos-animate{transform:translateZ(0)}[data-aos=slide-up]{transform:translate3d(0,100%,0)}[data-aos=slide-down]{transform:translate3d(0,-100%,0)}[data-aos=slide-right]{transform:translate3d(-100%,0,0)}[data-aos=slide-left]{transform:translate3d(100%,0,0)}[data-aos^=flip][data-aos^=flip]{backface-visibility:hidden;transition-property:transform}[data-aos=flip-left]{transform:perspective(2500px) rotateY(-100deg)}[data-aos=flip-left].aos-animate{transform:perspective(2500px) rotateY(0)}[data-aos=flip-right]{transform:perspective(2500px) rotateY(100deg)}[data-aos=flip-right].aos-animate{transform:perspective(2500px) rotateY(0)}[data-aos=flip-up]{transform:perspective(2500px) rotateX(-100deg)}[data-aos=flip-up].aos-animate{transform:perspective(2500px) rotateX(0)}[data-aos=flip-down]{transform:perspective(2500px) rotateX(100deg)}[data-aos=flip-down].aos-animate{transform:perspective(2500px) rotateX(0)}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n  MIT License http://www.opensource.org/licenses/mit-license.php\n  Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n  var list = [];\n\n  // return the list of modules as css string\n  list.toString = function toString() {\n    return this.map(function (item) {\n      var content = \"\";\n      var needLayer = typeof item[5] !== \"undefined\";\n      if (item[4]) {\n        content += \"@supports (\".concat(item[4], \") {\");\n      }\n      if (item[2]) {\n        content += \"@media \".concat(item[2], \" {\");\n      }\n      if (needLayer) {\n        content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n      }\n      content += cssWithMappingToString(item);\n      if (needLayer) {\n        content += \"}\";\n      }\n      if (item[2]) {\n        content += \"}\";\n      }\n      if (item[4]) {\n        content += \"}\";\n      }\n      return content;\n    }).join(\"\");\n  };\n\n  // import a list of modules into the list\n  list.i = function i(modules, media, dedupe, supports, layer) {\n    if (typeof modules === \"string\") {\n      modules = [[null, modules, undefined]];\n    }\n    var alreadyImportedModules = {};\n    if (dedupe) {\n      for (var k = 0; k < this.length; k++) {\n        var id = this[k][0];\n        if (id != null) {\n          alreadyImportedModules[id] = true;\n        }\n      }\n    }\n    for (var _k = 0; _k < modules.length; _k++) {\n      var item = [].concat(modules[_k]);\n      if (dedupe && alreadyImportedModules[item[0]]) {\n        continue;\n      }\n      if (typeof layer !== \"undefined\") {\n        if (typeof item[5] === \"undefined\") {\n          item[5] = layer;\n        } else {\n          item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n          item[5] = layer;\n        }\n      }\n      if (media) {\n        if (!item[2]) {\n          item[2] = media;\n        } else {\n          item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n          item[2] = media;\n        }\n      }\n      if (supports) {\n        if (!item[4]) {\n          item[4] = \"\".concat(supports);\n        } else {\n          item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n          item[4] = supports;\n        }\n      }\n      list.push(item);\n    }\n  };\n  return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n  var content = item[1];\n  var cssMapping = item[3];\n  if (!cssMapping) {\n    return content;\n  }\n  if (typeof btoa === \"function\") {\n    var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n    var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n    var sourceMapping = \"/*# \".concat(data, \" */\");\n    return [content].concat([sourceMapping]).join(\"\\n\");\n  }\n  return [content].join(\"\\n\");\n};","\"use strict\";\n\nvar stylesInDOM = [];\nfunction getIndexByIdentifier(identifier) {\n  var result = -1;\n  for (var i = 0; i < stylesInDOM.length; i++) {\n    if (stylesInDOM[i].identifier === identifier) {\n      result = i;\n      break;\n    }\n  }\n  return result;\n}\nfunction modulesToDom(list, options) {\n  var idCountMap = {};\n  var identifiers = [];\n  for (var i = 0; i < list.length; i++) {\n    var item = list[i];\n    var id = options.base ? item[0] + options.base : item[0];\n    var count = idCountMap[id] || 0;\n    var identifier = \"\".concat(id, \" \").concat(count);\n    idCountMap[id] = count + 1;\n    var indexByIdentifier = getIndexByIdentifier(identifier);\n    var obj = {\n      css: item[1],\n      media: item[2],\n      sourceMap: item[3],\n      supports: item[4],\n      layer: item[5]\n    };\n    if (indexByIdentifier !== -1) {\n      stylesInDOM[indexByIdentifier].references++;\n      stylesInDOM[indexByIdentifier].updater(obj);\n    } else {\n      var updater = addElementStyle(obj, options);\n      options.byIndex = i;\n      stylesInDOM.splice(i, 0, {\n        identifier: identifier,\n        updater: updater,\n        references: 1\n      });\n    }\n    identifiers.push(identifier);\n  }\n  return identifiers;\n}\nfunction addElementStyle(obj, options) {\n  var api = options.domAPI(options);\n  api.update(obj);\n  var updater = function updater(newObj) {\n    if (newObj) {\n      if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n        return;\n      }\n      api.update(obj = newObj);\n    } else {\n      api.remove();\n    }\n  };\n  return updater;\n}\nmodule.exports = function (list, options) {\n  options = options || {};\n  list = list || [];\n  var lastIdentifiers = modulesToDom(list, options);\n  return function update(newList) {\n    newList = newList || [];\n    for (var i = 0; i < lastIdentifiers.length; i++) {\n      var identifier = lastIdentifiers[i];\n      var index = getIndexByIdentifier(identifier);\n      stylesInDOM[index].references--;\n    }\n    var newLastIdentifiers = modulesToDom(newList, options);\n    for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n      var _identifier = lastIdentifiers[_i];\n      var _index = getIndexByIdentifier(_identifier);\n      if (stylesInDOM[_index].references === 0) {\n        stylesInDOM[_index].updater();\n        stylesInDOM.splice(_index, 1);\n      }\n    }\n    lastIdentifiers = newLastIdentifiers;\n  };\n};","\"use strict\";\n\n/* istanbul ignore next  */\nfunction insertStyleElement(options) {\n  var element = document.createElement(\"style\");\n  options.setAttributes(element, options.attributes);\n  options.insert(element, options.options);\n  return element;\n}\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next  */\nfunction setAttributesWithoutAttributes(styleElement) {\n  var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n  if (nonce) {\n    styleElement.setAttribute(\"nonce\", nonce);\n  }\n}\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next  */\nfunction apply(styleElement, options, obj) {\n  var css = \"\";\n  if (obj.supports) {\n    css += \"@supports (\".concat(obj.supports, \") {\");\n  }\n  if (obj.media) {\n    css += \"@media \".concat(obj.media, \" {\");\n  }\n  var needLayer = typeof obj.layer !== \"undefined\";\n  if (needLayer) {\n    css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n  }\n  css += obj.css;\n  if (needLayer) {\n    css += \"}\";\n  }\n  if (obj.media) {\n    css += \"}\";\n  }\n  if (obj.supports) {\n    css += \"}\";\n  }\n  var sourceMap = obj.sourceMap;\n  if (sourceMap && typeof btoa !== \"undefined\") {\n    css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n  }\n\n  // For old IE\n  /* istanbul ignore if  */\n  options.styleTagTransform(css, styleElement, options.options);\n}\nfunction removeStyleElement(styleElement) {\n  // istanbul ignore if\n  if (styleElement.parentNode === null) {\n    return false;\n  }\n  styleElement.parentNode.removeChild(styleElement);\n}\n\n/* istanbul ignore next  */\nfunction domAPI(options) {\n  if (typeof document === \"undefined\") {\n    return {\n      update: function update() {},\n      remove: function remove() {}\n    };\n  }\n  var styleElement = options.insertStyleElement(options);\n  return {\n    update: function update(obj) {\n      apply(styleElement, options, obj);\n    },\n    remove: function remove() {\n      removeStyleElement(styleElement);\n    }\n  };\n}\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next  */\nfunction styleTagTransform(css, styleElement) {\n  if (styleElement.styleSheet) {\n    styleElement.styleSheet.cssText = css;\n  } else {\n    while (styleElement.firstChild) {\n      styleElement.removeChild(styleElement.firstChild);\n    }\n    styleElement.appendChild(document.createTextNode(css));\n  }\n}\nmodule.exports = styleTagTransform;","\"use strict\";\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\nvar _a, _b, _c;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._getInstance = exports._getStatsigGlobalFlag = exports._getStatsigGlobal = void 0;\nconst Log_1 = require(\"./Log\");\nconst _getStatsigGlobal = () => {\n    // Avoid ReferenceError, which is happening with Cloudflare pages\n    try {\n        return typeof __STATSIG__ !== 'undefined' ? __STATSIG__ : statsigGlobal;\n    }\n    catch (e) {\n        return statsigGlobal;\n    }\n};\nexports._getStatsigGlobal = _getStatsigGlobal;\nconst _getStatsigGlobalFlag = (flag) => {\n    return (0, exports._getStatsigGlobal)()[flag];\n};\nexports._getStatsigGlobalFlag = _getStatsigGlobalFlag;\nconst _getInstance = (sdkKey) => {\n    const gbl = (0, exports._getStatsigGlobal)();\n    if (!sdkKey) {\n        if (gbl.instances && Object.keys(gbl.instances).length > 1) {\n            Log_1.Log.warn('Call made to Statsig global instance without an SDK key but there is more than one client instance. If you are using mulitple clients, please specify the SDK key.');\n        }\n        return gbl.firstInstance;\n    }\n    return gbl.instances && gbl.instances[sdkKey];\n};\nexports._getInstance = _getInstance;\nconst GLOBAL_KEY = '__STATSIG__';\nconst _window = typeof window !== 'undefined' ? window : {};\nconst _global = typeof global !== 'undefined' ? global : {};\nconst _globalThis = typeof globalThis !== 'undefined' ? globalThis : {};\nconst statsigGlobal = (_c = (_b = (_a = _window[GLOBAL_KEY]) !== null && _a !== void 0 ? _a : _global[GLOBAL_KEY]) !== null && _b !== void 0 ? _b : _globalThis[GLOBAL_KEY]) !== null && _c !== void 0 ? _c : {\n    instance: exports._getInstance,\n};\n_window[GLOBAL_KEY] = statsigGlobal;\n_global[GLOBAL_KEY] = statsigGlobal;\n_globalThis[GLOBAL_KEY] = statsigGlobal;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BatchQueue = void 0;\nconst EventBatch_1 = require(\"./EventBatch\");\nconst EventRetryConstants_1 = require(\"./EventRetryConstants\");\nclass BatchQueue {\n    constructor(batchSize = EventRetryConstants_1.EventRetryConstants.DEFAULT_BATCH_SIZE) {\n        this._batches = [];\n        this._batchSize = batchSize;\n    }\n    batchSize() {\n        return this._batchSize;\n    }\n    requeueBatch(batch) {\n        return this._enqueueBatch(batch);\n    }\n    hasFullBatch() {\n        return this._batches.some((batch) => batch.events.length >= this._batchSize);\n    }\n    takeNextBatch() {\n        return this._batches.shift();\n    }\n    takeAllBatches() {\n        const batches = this._batches;\n        this._batches = [];\n        return batches;\n    }\n    createBatches(events) {\n        let i = 0;\n        let droppedCount = 0;\n        while (i < events.length) {\n            const chunk = events.slice(i, i + this._batchSize);\n            droppedCount += this._enqueueBatch(new EventBatch_1.EventBatch(chunk));\n            i += this._batchSize;\n        }\n        return droppedCount;\n    }\n    _enqueueBatch(batch) {\n        this._batches.push(batch);\n        let droppedEventCount = 0;\n        while (this._batches.length > EventRetryConstants_1.EventRetryConstants.MAX_PENDING_BATCHES) {\n            const dropped = this._batches.shift();\n            if (dropped) {\n                droppedEventCount += dropped.events.length;\n            }\n        }\n        return droppedEventCount;\n    }\n}\nexports.BatchQueue = BatchQueue;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._getStorageKey = exports._getUserStorageKey = void 0;\nconst Hashing_1 = require(\"./Hashing\");\nfunction _getUserStorageKey(sdkKey, user, customKeyGenerator) {\n    var _a;\n    if (customKeyGenerator) {\n        return customKeyGenerator(sdkKey, user);\n    }\n    const cids = user && user.customIDs ? user.customIDs : {};\n    const parts = [\n        `uid:${(_a = user === null || user === void 0 ? void 0 : user.userID) !== null && _a !== void 0 ? _a : ''}`,\n        `cids:${Object.keys(cids)\n            .sort((leftKey, rightKey) => leftKey.localeCompare(rightKey))\n            .map((key) => `${key}-${cids[key]}`)\n            .join(',')}`,\n        `k:${sdkKey}`,\n    ];\n    return (0, Hashing_1._DJB2)(parts.join('|'));\n}\nexports._getUserStorageKey = _getUserStorageKey;\nfunction _getStorageKey(sdkKey, user, customKeyGenerator) {\n    if (user) {\n        return _getUserStorageKey(sdkKey, user, customKeyGenerator);\n    }\n    return (0, Hashing_1._DJB2)(`k:${sdkKey}`);\n}\nexports._getStorageKey = _getStorageKey;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PrecomputedEvaluationsContextHandle = void 0;\nconst Log_1 = require(\"./Log\");\nconst SafeJs_1 = require(\"./SafeJs\");\nconst SessionID_1 = require(\"./SessionID\");\nconst StableID_1 = require(\"./StableID\");\n/**\n * A handle to the PrecomputedEvaluationsContext that computes fields lazily on access.\n * This avoids unnecessary computation (e.g., cloning the user) when only certain fields are needed.\n * The handle is created once and reused; individual getters fetch current values on each access.\n */\nclass PrecomputedEvaluationsContextHandle {\n    constructor(sdkKey, getOptions, getErrorBoundary, getValues, getUser, getSdkInstanceID) {\n        this._sdkKey = sdkKey;\n        this._getOptions = getOptions;\n        this._getErrorBoundary = getErrorBoundary;\n        this._getValues = getValues;\n        this._getUser = getUser;\n        this._getSdkInstanceID = getSdkInstanceID;\n    }\n    get sdkKey() {\n        return this._sdkKey;\n    }\n    get options() {\n        return this._getOptions();\n    }\n    get errorBoundary() {\n        return this._getErrorBoundary();\n    }\n    get values() {\n        return this._getValues();\n    }\n    get user() {\n        let user = (0, SafeJs_1._cloneObject)('StatsigUser', this._getUser());\n        if (user == null) {\n            Log_1.Log.error('Failed to clone user');\n            user = {};\n        }\n        return user;\n    }\n    /**\n     * Gets the current session.\n     * @param {boolean} [bumpSession=true] - Whether to bump/update the session timing. Set to false to read without affecting session state.\n     */\n    getSession(bumpSession = true) {\n        return SessionID_1.StatsigSession.get(this._sdkKey, bumpSession);\n    }\n    get stableID() {\n        return StableID_1.StableID.get(this._sdkKey);\n    }\n    get sdkInstanceID() {\n        return this._getSdkInstanceID();\n    }\n    /**\n     * Returns the full PrecomputedEvaluationsContext object.\n     * Use this when you need all fields at once.\n     * @param {boolean} [bumpSession=true] - Whether to bump the session when building the context.\n     */\n    toContext(bumpSession = true) {\n        return {\n            sdkKey: this.sdkKey,\n            options: this.options,\n            values: this.values,\n            user: this.user,\n            errorBoundary: this.errorBoundary,\n            session: this.getSession(bumpSession),\n            stableID: this.stableID,\n            sdkInstanceID: this.sdkInstanceID,\n        };\n    }\n}\nexports.PrecomputedEvaluationsContextHandle = PrecomputedEvaluationsContextHandle;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n    return new (P || (P = Promise))(function (resolve, reject) {\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\n    });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._makeDataAdapterResult = exports.DataAdapterCore = void 0;\nconst Log_1 = require(\"./Log\");\nconst StableID_1 = require(\"./StableID\");\nconst StatsigUser_1 = require(\"./StatsigUser\");\nconst StorageProvider_1 = require(\"./StorageProvider\");\nconst TypedJsonParse_1 = require(\"./TypedJsonParse\");\nconst CACHE_LIMIT = 10;\nconst MAX_CACHE_WRITE_ATTEMPTS = 8;\nclass DataAdapterCore {\n    constructor(_adapterName, _cacheSuffix) {\n        this._adapterName = _adapterName;\n        this._cacheSuffix = _cacheSuffix;\n        this._options = null;\n        this._sdkKey = null;\n        this._cacheLimit = CACHE_LIMIT;\n        this._lastModifiedStoreKey = `statsig.last_modified_time.${_cacheSuffix}`;\n        this._inMemoryCache = new InMemoryCache();\n    }\n    attach(sdkKey, options, _network) {\n        this._sdkKey = sdkKey;\n        this._options = options;\n    }\n    getDataSync(user) {\n        const normalized = user && (0, StatsigUser_1._normalizeUser)(user, this._options);\n        const cacheKey = this._getCacheKey(normalized);\n        const inMem = this._inMemoryCache.get(cacheKey, normalized);\n        if (inMem && this._getIsCacheValueValid(inMem)) {\n            return inMem;\n        }\n        const cache = this._loadFromCache(cacheKey);\n        if (cache && this._getIsCacheValueValid(cache)) {\n            this._inMemoryCache.add(cacheKey, cache, this._cacheLimit);\n            return this._inMemoryCache.get(cacheKey, normalized);\n        }\n        return null;\n    }\n    setData(data, user) {\n        const normalized = user && (0, StatsigUser_1._normalizeUser)(user, this._options);\n        const cacheKey = this._getCacheKey(normalized);\n        this._inMemoryCache.add(cacheKey, _makeDataAdapterResult('Bootstrap', data, null, normalized), this._cacheLimit);\n    }\n    _getIsCacheValueValid(current) {\n        return (current.stableID == null ||\n            current.stableID === StableID_1.StableID.get(this._getSdkKey()));\n    }\n    _getDataAsyncImpl(current, user, options) {\n        return __awaiter(this, void 0, void 0, function* () {\n            if (!StorageProvider_1.Storage.isReady()) {\n                yield StorageProvider_1.Storage.isReadyResolver();\n            }\n            const cache = current !== null && current !== void 0 ? current : this.getDataSync(user);\n            const ops = [this._fetchAndPrepFromNetwork(cache, user, options)];\n            if (options === null || options === void 0 ? void 0 : options.timeoutMs) {\n                ops.push(new Promise((r) => setTimeout(r, options.timeoutMs)).then(() => {\n                    Log_1.Log.debug('Fetching latest value timed out');\n                    return null;\n                }));\n            }\n            return yield Promise.race(ops);\n        });\n    }\n    _prefetchDataImpl(user, options) {\n        return __awaiter(this, void 0, void 0, function* () {\n            const normalized = user && (0, StatsigUser_1._normalizeUser)(user, this._options);\n            const cacheKey = this._getCacheKey(normalized);\n            const result = yield this._getDataAsyncImpl(null, normalized, options);\n            if (result) {\n                this._inMemoryCache.add(cacheKey, Object.assign(Object.assign({}, result), { source: 'Prefetch' }), this._cacheLimit);\n            }\n        });\n    }\n    _fetchAndPrepFromNetwork(cachedResult, user, options) {\n        return __awaiter(this, void 0, void 0, function* () {\n            var _a;\n            const cachedData = (_a = cachedResult === null || cachedResult === void 0 ? void 0 : cachedResult.data) !== null && _a !== void 0 ? _a : null;\n            const isCacheValidFor204 = cachedResult != null &&\n                this._isCachedResultValidFor204(cachedResult, user);\n            const latest = yield this._fetchFromNetwork(cachedData, user, options, isCacheValidFor204);\n            if (!latest) {\n                Log_1.Log.debug('No response returned for latest value');\n                return null;\n            }\n            const response = (0, TypedJsonParse_1._typedJsonParse)(latest, 'has_updates', 'Response');\n            const sdkKey = this._getSdkKey();\n            const stableID = StableID_1.StableID.get(sdkKey);\n            let result = null;\n            if ((response === null || response === void 0 ? void 0 : response.has_updates) === true) {\n                result = _makeDataAdapterResult('Network', latest, stableID, user);\n            }\n            else if (cachedData && (response === null || response === void 0 ? void 0 : response.has_updates) === false) {\n                result = _makeDataAdapterResult('NetworkNotModified', cachedData, stableID, user);\n            }\n            else {\n                return null;\n            }\n            const cacheKey = this._getCacheKey(user);\n            this._inMemoryCache.add(cacheKey, result, this._cacheLimit);\n            this._writeToCache(cacheKey, result);\n            return result;\n        });\n    }\n    _getSdkKey() {\n        if (this._sdkKey != null) {\n            return this._sdkKey;\n        }\n        Log_1.Log.error(`${this._adapterName} is not attached to a Client`);\n        return '';\n    }\n    _loadFromCache(cacheKey) {\n        var _a;\n        const cache = (_a = StorageProvider_1.Storage.getItem) === null || _a === void 0 ? void 0 : _a.call(StorageProvider_1.Storage, cacheKey);\n        if (cache == null) {\n            return null;\n        }\n        const result = (0, TypedJsonParse_1._typedJsonParse)(cache, 'source', 'Cached Result');\n        return result ? Object.assign(Object.assign({}, result), { source: 'Cache' }) : null;\n    }\n    _writeToCache(cacheKey, result) {\n        const resultString = JSON.stringify(result);\n        for (let i = 0; i < MAX_CACHE_WRITE_ATTEMPTS; i++) {\n            try {\n                StorageProvider_1.Storage.setItem(cacheKey, resultString);\n                break;\n            }\n            catch (error) {\n                if (!(error instanceof Error) ||\n                    !(error.toString().includes('QuotaExceededError') ||\n                        error.toString().includes('QUOTA_EXCEEDED_ERR')) ||\n                    this._cacheLimit <= 1) {\n                    throw error;\n                }\n                this._cacheLimit = Math.ceil(this._cacheLimit / 2);\n                this._runLocalStorageCacheEviction(cacheKey, this._cacheLimit - 1);\n            }\n        }\n        this._runLocalStorageCacheEviction(cacheKey);\n    }\n    _runLocalStorageCacheEviction(cacheKey, cacheLimit = this._cacheLimit) {\n        var _a;\n        const lastModifiedTimeMap = (_a = (0, StorageProvider_1._getObjectFromStorage)(this._lastModifiedStoreKey)) !== null && _a !== void 0 ? _a : {};\n        lastModifiedTimeMap[cacheKey] = Date.now();\n        const evictableKeys = _getEvictableKeys(lastModifiedTimeMap, cacheLimit);\n        for (const evictable of evictableKeys) {\n            delete lastModifiedTimeMap[evictable];\n            StorageProvider_1.Storage.removeItem(evictable);\n        }\n        (0, StorageProvider_1._setObjectInStorage)(this._lastModifiedStoreKey, lastModifiedTimeMap);\n    }\n}\nexports.DataAdapterCore = DataAdapterCore;\nfunction _makeDataAdapterResult(source, data, stableID, user) {\n    return {\n        source,\n        data,\n        receivedAt: Date.now(),\n        stableID,\n        fullUserHash: (0, StatsigUser_1._getFullUserHash)(user),\n    };\n}\nexports._makeDataAdapterResult = _makeDataAdapterResult;\nclass InMemoryCache {\n    constructor() {\n        this._data = {};\n    }\n    get(cacheKey, user) {\n        var _a;\n        const result = this._data[cacheKey];\n        const cached = result === null || result === void 0 ? void 0 : result.stableID;\n        const provided = (_a = user === null || user === void 0 ? void 0 : user.customIDs) === null || _a === void 0 ? void 0 : _a.stableID;\n        if (provided && cached && provided !== cached) {\n            Log_1.Log.warn(\"'StatsigUser.customIDs.stableID' mismatch\");\n            return null;\n        }\n        return result;\n    }\n    add(cacheKey, value, cacheLimit) {\n        const evictableKeys = _getEvictableKeys(this._data, cacheLimit - 1);\n        for (const evictable of evictableKeys) {\n            delete this._data[evictable];\n        }\n        this._data[cacheKey] = value;\n    }\n    merge(values) {\n        this._data = Object.assign(Object.assign({}, this._data), values);\n    }\n}\nfunction _getEvictableKeys(data, limit) {\n    const keys = Object.keys(data);\n    if (keys.length <= limit) {\n        return [];\n    }\n    if (limit === 0) {\n        return keys;\n    }\n    return keys\n        .sort((keyA, keyB) => {\n        const valueA = data[keyA];\n        const valueB = data[keyB];\n        if (typeof valueA === 'object' && typeof valueB === 'object') {\n            return valueA.receivedAt - valueB.receivedAt;\n        }\n        return valueA - valueB;\n    })\n        .slice(0, keys.length - limit);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Diagnostics = void 0;\nconst MARKER_MAP = new Map();\nconst ACT_START = 'start';\nconst ACT_END = 'end';\nconst DIAGNOSTICS_EVENT = 'statsig::diagnostics';\nexports.Diagnostics = {\n    _getMarkers: (sdkKey) => {\n        return MARKER_MAP.get(sdkKey);\n    },\n    _markInitOverallStart: (sdkKey) => {\n        _addMarker(sdkKey, _createMarker({}, ACT_START, 'overall'));\n    },\n    _markInitOverallEnd: (sdkKey, success, evaluationDetails) => {\n        _addMarker(sdkKey, _createMarker({\n            success,\n            error: success\n                ? undefined\n                : { name: 'InitializeError', message: 'Failed to initialize' },\n            evaluationDetails,\n        }, ACT_END, 'overall'));\n    },\n    _markInitNetworkReqStart: (sdkKey, data) => {\n        _addMarker(sdkKey, _createMarker(data, ACT_START, 'initialize', 'network_request'));\n    },\n    _markInitNetworkReqEnd: (sdkKey, data) => {\n        _addMarker(sdkKey, _createMarker(data, ACT_END, 'initialize', 'network_request'));\n    },\n    _markInitProcessStart: (sdkKey) => {\n        _addMarker(sdkKey, _createMarker({}, ACT_START, 'initialize', 'process'));\n    },\n    _markInitProcessEnd: (sdkKey, data) => {\n        _addMarker(sdkKey, _createMarker(data, ACT_END, 'initialize', 'process'));\n    },\n    _clearMarkers: (sdkKey) => {\n        MARKER_MAP.delete(sdkKey);\n    },\n    _formatError(e) {\n        if (!(e && typeof e === 'object')) {\n            return;\n        }\n        return {\n            code: _safeGetField(e, 'code'),\n            name: _safeGetField(e, 'name'),\n            message: _safeGetField(e, 'message'),\n        };\n    },\n    _getDiagnosticsData(res, attempt, body, e) {\n        var _a;\n        return {\n            success: (res === null || res === void 0 ? void 0 : res.ok) === true,\n            statusCode: res === null || res === void 0 ? void 0 : res.status,\n            sdkRegion: (_a = res === null || res === void 0 ? void 0 : res.headers) === null || _a === void 0 ? void 0 : _a.get('x-statsig-region'),\n            isDelta: body.includes('\"is_delta\":true') === true ? true : undefined,\n            attempt,\n            error: exports.Diagnostics._formatError(e),\n        };\n    },\n    _enqueueDiagnosticsEvent(user, logger, sdk, options) {\n        const markers = exports.Diagnostics._getMarkers(sdk);\n        if (markers == null || markers.length <= 0) {\n            return -1;\n        }\n        const overallInitDuration = markers[markers.length - 1].timestamp - markers[0].timestamp;\n        exports.Diagnostics._clearMarkers(sdk);\n        const event = _makeDiagnosticsEvent(user, {\n            context: 'initialize',\n            markers: markers.slice(),\n            statsigOptions: options,\n        });\n        logger.enqueue(event);\n        return overallInitDuration;\n    },\n};\nfunction _createMarker(data, action, key, step) {\n    return Object.assign({ key: key, action: action, step: step, timestamp: Date.now() }, data);\n}\nfunction _makeDiagnosticsEvent(user, data) {\n    const latencyEvent = {\n        eventName: DIAGNOSTICS_EVENT,\n        user,\n        value: null,\n        metadata: data,\n        time: Date.now(),\n    };\n    return latencyEvent;\n}\nfunction _addMarker(sdkKey, marker) {\n    var _a;\n    const markers = (_a = MARKER_MAP.get(sdkKey)) !== null && _a !== void 0 ? _a : [];\n    markers.push(marker);\n    MARKER_MAP.set(sdkKey, markers);\n}\nfunction _safeGetField(data, field) {\n    if (field in data) {\n        return data[field];\n    }\n    return undefined;\n}\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n    return new (P || (P = Promise))(function (resolve, reject) {\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\n    });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._fetchTxtRecords = void 0;\n// See example: https://github.com/statsig-io/private-js-client-monorepo/pull/340\nconst FEATURE_ASSETS_DNS_QUERY = new Uint8Array([\n    0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d,\n    0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73,\n    0x03, 0x6f, 0x72, 0x67, 0x00, 0x00, 0x10, 0x00, 0x01,\n]);\nconst DNS_QUERY_ENDPOINT = 'https://cloudflare-dns.com/dns-query';\nconst DOMAIN_CHARS = [\n    'i', // initialize\n    'e', // events\n    'd', // dcs\n];\nconst MAX_START_LOOKUP = 200;\nfunction _fetchTxtRecords(networkFunc) {\n    return __awaiter(this, void 0, void 0, function* () {\n        const response = yield networkFunc(DNS_QUERY_ENDPOINT, {\n            method: 'POST',\n            headers: {\n                'Content-Type': 'application/dns-message',\n                Accept: 'application/dns-message',\n            },\n            body: FEATURE_ASSETS_DNS_QUERY,\n        });\n        if (!response.ok) {\n            const err = new Error('Failed to fetch TXT records from DNS');\n            err.name = 'DnsTxtFetchError';\n            throw err;\n        }\n        const data = yield response.arrayBuffer();\n        const bytes = new Uint8Array(data);\n        return _parseDnsResponse(bytes);\n    });\n}\nexports._fetchTxtRecords = _fetchTxtRecords;\nfunction _parseDnsResponse(input) {\n    // loop until we find the first valid domain char. One of [i=, e=, d=]\n    const start = input.findIndex((byte, index) => index < MAX_START_LOOKUP &&\n        String.fromCharCode(byte) === '=' &&\n        DOMAIN_CHARS.includes(String.fromCharCode(input[index - 1])));\n    if (start === -1) {\n        const err = new Error('Failed to parse TXT records from DNS');\n        err.name = 'DnsTxtParseError';\n        throw err;\n    }\n    // decode the remaining bytes as a string\n    let result = '';\n    for (let i = start - 1; i < input.length; i++) {\n        result += String.fromCharCode(input[i]);\n    }\n    return result.split(',');\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n    return new (P || (P = Promise))(function (resolve, reject) {\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\n    });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ErrorBoundary = exports.EXCEPTION_ENDPOINT = void 0;\nconst Log_1 = require(\"./Log\");\nconst SDKType_1 = require(\"./SDKType\");\nconst StatsigMetadata_1 = require(\"./StatsigMetadata\");\nexports.EXCEPTION_ENDPOINT = 'https://statsigapi.net/v1/sdk_exception';\nconst UNKNOWN_ERROR = '[Statsig] UnknownError';\nclass ErrorBoundary {\n    constructor(_sdkKey, _options, _emitter, _lastSeenError) {\n        this._sdkKey = _sdkKey;\n        this._options = _options;\n        this._emitter = _emitter;\n        this._lastSeenError = _lastSeenError;\n        this._seen = new Set();\n    }\n    wrap(instance, namePrefix) {\n        try {\n            const obj = instance;\n            _getAllInstanceMethodNames(obj).forEach((name) => {\n                const original = obj[name];\n                if ('$EB' in original) {\n                    return;\n                }\n                obj[name] = (...args) => {\n                    return this._capture(namePrefix ? `${namePrefix}:${name}` : name, () => original.apply(instance, args));\n                };\n                obj[name].$EB = true;\n            });\n        }\n        catch (err) {\n            this._onError('eb:wrap', err);\n        }\n    }\n    logError(tag, error) {\n        this._onError(tag, error);\n    }\n    logDroppedEvents(count, reason, metadata) {\n        const extra = {\n            eventCount: String(count),\n            reason,\n        };\n        if (metadata) {\n            Object.keys(metadata).forEach((key) => {\n                extra[key] = String(metadata[key]);\n            });\n        }\n        this._onError(`statsig::log_event_dropped_event_count`, new Error(reason), true, extra);\n    }\n    logEventRequestFailure(count, reason, flushType, statusCode, retries, failurePath, failureErrorMessage, failureDiagnosticBucket, failureDiagnosticMetadata) {\n        const extra = {\n            eventCount: String(count),\n            flushType: flushType,\n            statusCode: String(statusCode),\n            reason: reason,\n            retries: String(retries),\n        };\n        if (failurePath) {\n            extra['failurePath'] = failurePath;\n        }\n        if (typeof failureErrorMessage === 'string' &&\n            failureErrorMessage.length > 0) {\n            extra['failureErrorMessage'] = failureErrorMessage;\n        }\n        if (typeof failureDiagnosticBucket === 'string' &&\n            failureDiagnosticBucket.length > 0) {\n            extra['failureDiagnosticBucket'] = failureDiagnosticBucket;\n        }\n        if (failureDiagnosticMetadata) {\n            Object.keys(failureDiagnosticMetadata).forEach((key) => {\n                const value = failureDiagnosticMetadata[key];\n                if (value.length > 0) {\n                    extra[`failureDiagnostic_${key}`] = value;\n                }\n            });\n        }\n        this._onError(`statsig::log_event_failed`, new Error(reason), true, extra);\n    }\n    getLastSeenErrorAndReset() {\n        const tempError = this._lastSeenError;\n        this._lastSeenError = undefined;\n        return tempError !== null && tempError !== void 0 ? tempError : null;\n    }\n    attachErrorIfNoneExists(error) {\n        if (this._lastSeenError) {\n            return;\n        }\n        this._lastSeenError = _resolveError(error);\n    }\n    _capture(tag, task) {\n        try {\n            const res = task();\n            if (res && res instanceof Promise) {\n                return res.catch((err) => this._onError(tag, err));\n            }\n            return res;\n        }\n        catch (error) {\n            this._onError(tag, error);\n            return null;\n        }\n    }\n    _onError(tag, error, bypassDedupe = false, extra) {\n        try {\n            Log_1.Log.warn(`Caught error in ${tag}`, { error });\n            const impl = () => __awaiter(this, void 0, void 0, function* () {\n                var _a, _b, _c, _d, _e, _f, _g;\n                const unwrapped = (error ? error : Error(UNKNOWN_ERROR));\n                const isError = unwrapped instanceof Error;\n                const name = isError ? unwrapped.name : 'No Name';\n                const resolvedError = _resolveError(unwrapped);\n                this._lastSeenError = resolvedError;\n                if (!bypassDedupe && this._seen.has(name)) {\n                    return;\n                }\n                this._seen.add(name);\n                if ((_b = (_a = this._options) === null || _a === void 0 ? void 0 : _a.networkConfig) === null || _b === void 0 ? void 0 : _b.preventAllNetworkTraffic) {\n                    (_c = this._emitter) === null || _c === void 0 ? void 0 : _c.call(this, {\n                        name: 'error',\n                        error,\n                        tag,\n                    });\n                    return;\n                }\n                const sdkType = SDKType_1.SDKType._get(this._sdkKey);\n                const statsigMetadata = StatsigMetadata_1.StatsigMetadataProvider.get();\n                const info = isError ? unwrapped.stack : _getDescription(unwrapped);\n                const body = Object.assign(Object.assign({ tag, exception: name, info, statsigOptions: _getStatsigOptionLoggingCopy(this._options) }, Object.assign(Object.assign({}, statsigMetadata), { sdkType })), (extra !== null && extra !== void 0 ? extra : {}));\n                const networkConfig = (_d = this._options) === null || _d === void 0 ? void 0 : _d.networkConfig;\n                const func = (_e = networkConfig === null || networkConfig === void 0 ? void 0 : networkConfig.networkOverrideFunc) !== null && _e !== void 0 ? _e : fetch;\n                yield func((_f = networkConfig === null || networkConfig === void 0 ? void 0 : networkConfig.sdkExceptionUrl) !== null && _f !== void 0 ? _f : exports.EXCEPTION_ENDPOINT, {\n                    method: 'POST',\n                    headers: {\n                        'STATSIG-API-KEY': this._sdkKey,\n                        'STATSIG-SDK-TYPE': String(sdkType),\n                        'STATSIG-SDK-VERSION': String(statsigMetadata.sdkVersion),\n                        'Content-Type': 'application/json',\n                    },\n                    body: JSON.stringify(body),\n                });\n                (_g = this._emitter) === null || _g === void 0 ? void 0 : _g.call(this, {\n                    name: 'error',\n                    error,\n                    tag,\n                });\n            });\n            impl()\n                .then(() => {\n                /* noop */\n            })\n                .catch(() => {\n                /* noop */\n            });\n        }\n        catch (_error) {\n            /* noop */\n        }\n    }\n}\nexports.ErrorBoundary = ErrorBoundary;\nfunction _resolveError(error) {\n    if (error instanceof Error) {\n        return error;\n    }\n    else if (typeof error === 'string') {\n        return new Error(error);\n    }\n    else {\n        return new Error('An unknown error occurred.');\n    }\n}\nfunction _getDescription(obj) {\n    try {\n        return JSON.stringify(obj);\n    }\n    catch (_a) {\n        return UNKNOWN_ERROR;\n    }\n}\nfunction _getAllInstanceMethodNames(instance) {\n    const names = new Set();\n    let proto = Object.getPrototypeOf(instance);\n    while (proto && proto !== Object.prototype) {\n        Object.getOwnPropertyNames(proto)\n            .filter((prop) => typeof (proto === null || proto === void 0 ? void 0 : proto[prop]) === 'function')\n            .forEach((name) => names.add(name));\n        proto = Object.getPrototypeOf(proto);\n    }\n    return Array.from(names);\n}\nfunction _getStatsigOptionLoggingCopy(options) {\n    if (!options) {\n        return {};\n    }\n    const loggingCopy = {};\n    Object.keys(options).forEach((key) => {\n        const option = key;\n        const value = options[option];\n        const valueType = typeof value;\n        switch (valueType) {\n            case 'number':\n            case 'bigint':\n            case 'boolean':\n                loggingCopy[String(option)] = value;\n                break;\n            case 'string':\n                if (value.length < 50) {\n                    loggingCopy[String(option)] = value;\n                }\n                else {\n                    loggingCopy[String(option)] = 'set';\n                }\n                break;\n            case 'object':\n                if (option === 'environment') {\n                    loggingCopy['environment'] = value;\n                }\n                else if (option === 'networkConfig') {\n                    loggingCopy['networkConfig'] = value;\n                }\n                else {\n                    loggingCopy[String(option)] = value != null ? 'set' : 'unset';\n                }\n                break;\n            default:\n            // Ignore other fields\n        }\n    });\n    return loggingCopy;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EventBatch = void 0;\nclass EventBatch {\n    constructor(events) {\n        this.attempts = 0;\n        this.createdAt = Date.now();\n        this.events = events;\n    }\n    incrementAttempts() {\n        this.attempts++;\n    }\n}\nexports.EventBatch = EventBatch;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n    return new (P || (P = Promise))(function (resolve, reject) {\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\n    });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EventLogger = void 0;\nconst BatchedEventsQueue_1 = require(\"./BatchedEventsQueue\");\nconst CacheKey_1 = require(\"./CacheKey\");\nconst EventRetryConstants_1 = require(\"./EventRetryConstants\");\nconst FlushCoordinator_1 = require(\"./FlushCoordinator\");\nconst Hashing_1 = require(\"./Hashing\");\nconst Log_1 = require(\"./Log\");\nconst NetworkConfig_1 = require(\"./NetworkConfig\");\nconst PendingEvents_1 = require(\"./PendingEvents\");\nconst SafeJs_1 = require(\"./SafeJs\");\nconst StatsigEvent_1 = require(\"./StatsigEvent\");\nconst StatsigOptionsCommon_1 = require(\"./StatsigOptionsCommon\");\nconst StorageProvider_1 = require(\"./StorageProvider\");\nconst UrlConfiguration_1 = require(\"./UrlConfiguration\");\nconst VisibilityObserving_1 = require(\"./VisibilityObserving\");\nconst MAX_DEDUPER_KEYS = 1000;\nconst DEDUPER_WINDOW_DURATION_MS = 600000;\nconst EVENT_LOGGER_MAP = {};\nclass EventLogger {\n    static _safeFlushAndForget(sdkKey) {\n        var _a;\n        (_a = EVENT_LOGGER_MAP[sdkKey]) === null || _a === void 0 ? void 0 : _a.flush().catch(() => {\n            // noop\n        });\n    }\n    constructor(_sdkKey, _emitter, _network, _options, _errorBoundary) {\n        var _a;\n        this._sdkKey = _sdkKey;\n        this._emitter = _emitter;\n        this._network = _network;\n        this._options = _options;\n        this._errorBoundary = _errorBoundary;\n        this._pendingEvents = null;\n        this._batchQueue = null;\n        this._flushCoordinator = null;\n        this._lastExposureTimeMap = {};\n        this._nonExposedChecks = {};\n        this._isShuttingDown = false;\n        this._storageKey = null;\n        this._pendingCompressionMode = null;\n        this._loggingEnabled =\n            (_a = _options === null || _options === void 0 ? void 0 : _options.loggingEnabled) !== null && _a !== void 0 ? _a : ((_options === null || _options === void 0 ? void 0 : _options.disableLogging) === true\n                ? StatsigOptionsCommon_1.LoggingEnabledOption.disabled\n                : StatsigOptionsCommon_1.LoggingEnabledOption.browserOnly);\n        if ((_options === null || _options === void 0 ? void 0 : _options.loggingEnabled) && _options.disableLogging !== undefined) {\n            Log_1.Log.warn('Detected both loggingEnabled and disableLogging options. loggingEnabled takes precedence - please remove disableLogging.');\n        }\n        const config = _options === null || _options === void 0 ? void 0 : _options.networkConfig;\n        this._logEventUrlConfig = new UrlConfiguration_1.UrlConfiguration(NetworkConfig_1.Endpoint._rgstr, config === null || config === void 0 ? void 0 : config.logEventUrl, config === null || config === void 0 ? void 0 : config.api, config === null || config === void 0 ? void 0 : config.logEventFallbackUrls);\n    }\n    setLogEventCompressionMode(mode) {\n        if (this._flushCoordinator) {\n            this._flushCoordinator.setLogEventCompressionMode(mode);\n        }\n        else {\n            this._pendingCompressionMode = mode;\n        }\n    }\n    setLoggingEnabled(loggingEnabled) {\n        const wasDisabled = this._loggingEnabled === 'disabled';\n        const isNowEnabled = loggingEnabled !== 'disabled';\n        this._loggingEnabled = loggingEnabled;\n        if (this._flushCoordinator) {\n            this._flushCoordinator.setLoggingEnabled(loggingEnabled);\n        }\n        if (wasDisabled && isNowEnabled) {\n            const events = this._loadStoredEvents();\n            Log_1.Log.debug(`Loaded ${events.length} stored event(s) from storage`);\n            if (events.length > 0) {\n                events.forEach((event) => {\n                    this._initFlushCoordinator().addEvent(event);\n                });\n                this.flush().catch((error) => {\n                    Log_1.Log.warn('Failed to flush events after enabling logging:', error);\n                });\n            }\n        }\n    }\n    enqueue(event) {\n        var _a;\n        if (!this._shouldLogEvent(event)) {\n            return;\n        }\n        const normalizedEvent = this._normalizeEvent(event);\n        if (this._loggingEnabled === 'disabled') {\n            this._storeEventToStorage(normalizedEvent);\n            return;\n        }\n        this._initFlushCoordinator().addEvent(normalizedEvent);\n        (_a = this._flushCoordinator) === null || _a === void 0 ? void 0 : _a.checkQuickFlush();\n    }\n    incrementNonExposureCount(name) {\n        var _a;\n        const current = (_a = this._nonExposedChecks[name]) !== null && _a !== void 0 ? _a : 0;\n        this._nonExposedChecks[name] = current + 1;\n    }\n    reset() {\n        // attempt to flush any remaining events\n        this.flush().catch(() => {\n            // noop\n        });\n        this._lastExposureTimeMap = {};\n    }\n    start() {\n        var _a;\n        const isServerEnv = (0, SafeJs_1._isServerEnv)();\n        if (isServerEnv && ((_a = this._options) === null || _a === void 0 ? void 0 : _a.loggingEnabled) !== 'always') {\n            return;\n        }\n        const flushCoordinator = this._initFlushCoordinator();\n        EVENT_LOGGER_MAP[this._sdkKey] = this;\n        if (!isServerEnv) {\n            (0, VisibilityObserving_1._subscribeToVisiblityChanged)((visibility) => {\n                if (visibility === 'background') {\n                    EventLogger._safeFlushAndForget(this._sdkKey);\n                }\n                else if (visibility === 'foreground') {\n                    flushCoordinator.startScheduledFlushCycle();\n                }\n            });\n        }\n        flushCoordinator.loadAndRetryShutdownFailedEvents().catch((error) => {\n            Log_1.Log.warn('Failed to load failed shutdown events:', error);\n        });\n        flushCoordinator.startScheduledFlushCycle();\n    }\n    stop() {\n        return __awaiter(this, void 0, void 0, function* () {\n            this._isShuttingDown = true;\n            if (this._flushCoordinator) {\n                yield this._flushCoordinator.processShutdown();\n            }\n            delete EVENT_LOGGER_MAP[this._sdkKey];\n            this._flushCoordinator = null;\n            this._pendingEvents = null;\n            this._batchQueue = null;\n        });\n    }\n    flush() {\n        return __awaiter(this, void 0, void 0, function* () {\n            if (!this._flushCoordinator) {\n                return;\n            }\n            return this._flushCoordinator.processManualFlush();\n        });\n    }\n    appendAndResetNonExposedChecks() {\n        if (Object.keys(this._nonExposedChecks).length === 0) {\n            return;\n        }\n        const checks = Object.assign({}, this._nonExposedChecks);\n        this._nonExposedChecks = {};\n        const event = this._normalizeEvent({\n            eventName: 'statsig::non_exposed_checks',\n            user: null,\n            time: Date.now(),\n            metadata: {\n                checks,\n            },\n        });\n        if (!this._flushCoordinator) {\n            return;\n        }\n        this._flushCoordinator.addEvent(event);\n    }\n    _shouldLogEvent(event) {\n        var _a;\n        if (((_a = this._options) === null || _a === void 0 ? void 0 : _a.loggingEnabled) !== 'always' && (0, SafeJs_1._isServerEnv)()) {\n            return false;\n        }\n        if (!(0, StatsigEvent_1._isExposureEvent)(event)) {\n            return true;\n        }\n        const user = event.user ? event.user : { statsigEnvironment: undefined };\n        const userKey = (0, CacheKey_1._getUserStorageKey)(this._sdkKey, user);\n        const metadata = event.metadata ? event.metadata : {};\n        const key = [\n            event.eventName,\n            userKey,\n            metadata['gate'],\n            metadata['config'],\n            metadata['ruleID'],\n            metadata['allocatedExperiment'],\n            metadata['parameterName'],\n            String(metadata['isExplicitParameter']),\n            metadata['reason'],\n        ].join('|');\n        const previous = this._lastExposureTimeMap[key];\n        const now = Date.now();\n        if (previous && now - previous < DEDUPER_WINDOW_DURATION_MS) {\n            return false;\n        }\n        if (Object.keys(this._lastExposureTimeMap).length > MAX_DEDUPER_KEYS) {\n            this._lastExposureTimeMap = {};\n        }\n        this._lastExposureTimeMap[key] = now;\n        return true;\n    }\n    _getCurrentPageUrl() {\n        var _a;\n        if (((_a = this._options) === null || _a === void 0 ? void 0 : _a.includeCurrentPageUrlWithEvents) === false) {\n            return;\n        }\n        return (0, SafeJs_1._getCurrentPageUrlSafe)();\n    }\n    _getStorageKey() {\n        if (!this._storageKey) {\n            this._storageKey = `statsig.pending_events.${(0, Hashing_1._DJB2)(this._sdkKey)}`;\n        }\n        return this._storageKey;\n    }\n    _initFlushCoordinator() {\n        var _a, _b;\n        if (this._flushCoordinator) {\n            return this._flushCoordinator;\n        }\n        const batchSize = (_b = (_a = this._options) === null || _a === void 0 ? void 0 : _a.loggingBufferMaxSize) !== null && _b !== void 0 ? _b : EventRetryConstants_1.EventRetryConstants.DEFAULT_BATCH_SIZE;\n        this._pendingEvents = new PendingEvents_1.PendingEvents(batchSize);\n        this._batchQueue = new BatchedEventsQueue_1.BatchQueue(batchSize);\n        this._flushCoordinator = new FlushCoordinator_1.FlushCoordinator(this._batchQueue, this._pendingEvents, () => this.appendAndResetNonExposedChecks(), this._sdkKey, this._network, this._emitter, this._logEventUrlConfig, this._options, this._loggingEnabled, this._errorBoundary);\n        if (this._pendingCompressionMode) {\n            this._flushCoordinator.setLogEventCompressionMode(this._pendingCompressionMode);\n            this._pendingCompressionMode = null;\n        }\n        return this._flushCoordinator;\n    }\n    _storeEventToStorage(event) {\n        const storageKey = this._getStorageKey();\n        try {\n            let existingEvents = this._getEventsFromStorage(storageKey);\n            existingEvents.push(event);\n            if (existingEvents.length > EventRetryConstants_1.EventRetryConstants.MAX_LOCAL_STORAGE) {\n                existingEvents = existingEvents.slice(-EventRetryConstants_1.EventRetryConstants.MAX_LOCAL_STORAGE);\n            }\n            (0, StorageProvider_1._setObjectInStorage)(storageKey, existingEvents);\n        }\n        catch (error) {\n            Log_1.Log.warn('Unable to save events to storage');\n        }\n    }\n    _getEventsFromStorage(storageKey) {\n        try {\n            const events = (0, StorageProvider_1._getObjectFromStorage)(storageKey);\n            if (Array.isArray(events)) {\n                return events;\n            }\n            return [];\n        }\n        catch (_a) {\n            return [];\n        }\n    }\n    _loadStoredEvents() {\n        const storageKey = this._getStorageKey();\n        const events = this._getEventsFromStorage(storageKey);\n        if (events.length > 0) {\n            StorageProvider_1.Storage.removeItem(storageKey);\n        }\n        return events;\n    }\n    _normalizeEvent(event) {\n        if (event.user) {\n            event.user = Object.assign({}, event.user);\n            delete event.user.privateAttributes;\n        }\n        const extras = {};\n        const currentPage = this._getCurrentPageUrl();\n        if (currentPage) {\n            extras.statsigMetadata = { currentPage };\n        }\n        return Object.assign(Object.assign({}, event), extras);\n    }\n}\nexports.EventLogger = EventLogger;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EventRetryConstants = void 0;\nexports.EventRetryConstants = {\n    MAX_RETRY_ATTEMPTS: 8,\n    DEFAULT_BATCH_SIZE: 100,\n    MAX_PENDING_BATCHES: 40,\n    TICK_INTERVAL_MS: 1000,\n    QUICK_FLUSH_WINDOW_MS: 200,\n    MAX_LOCAL_STORAGE: 500,\n    get MAX_QUEUED_EVENTS() {\n        return this.DEFAULT_BATCH_SIZE * this.MAX_PENDING_BATCHES;\n    },\n};\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n    return new (P || (P = Promise))(function (resolve, reject) {\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\n    });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EventSender = void 0;\nconst Log_1 = require(\"./Log\");\nconst NetworkConfig_1 = require(\"./NetworkConfig\");\nconst SDKType_1 = require(\"./SDKType\");\nconst StatsigMetadata_1 = require(\"./StatsigMetadata\");\nconst VisibilityObserving_1 = require(\"./VisibilityObserving\");\nclass EventSender {\n    constructor(sdkKey, network, emitter, logEventUrlConfig, options) {\n        this._sdkKey = sdkKey;\n        this._network = network;\n        this._emitter = emitter;\n        this._options = options;\n        this._logEventUrlConfig = logEventUrlConfig;\n    }\n    setLogEventCompressionMode(mode) {\n        this._network.setLogEventCompressionMode(mode);\n    }\n    sendBatch(batch) {\n        return __awaiter(this, void 0, void 0, function* () {\n            var _a, _b, _c;\n            let failurePath = 'event_sender_unexpected_exception';\n            const transportFailure = {};\n            try {\n                const isClosing = (0, VisibilityObserving_1._isUnloading)();\n                const shouldUseBeacon = isClosing &&\n                    this._network.isBeaconSupported() &&\n                    ((_b = (_a = this._options) === null || _a === void 0 ? void 0 : _a.networkConfig) === null || _b === void 0 ? void 0 : _b.networkOverrideFunc) == null;\n                failurePath = 'event_sender_pre_logs_flushed_emitter_exception';\n                this._emitter({\n                    name: 'pre_logs_flushed',\n                    events: batch.events,\n                });\n                failurePath = shouldUseBeacon\n                    ? 'event_sender_unexpected_exception'\n                    : 'event_sender_post_exception';\n                const response = shouldUseBeacon\n                    ? this._sendEventsViaBeacon(batch, transportFailure)\n                    : yield this._sendEventsViaPost(batch, transportFailure);\n                if (response.success) {\n                    failurePath = 'event_sender_logs_flushed_emitter_exception';\n                    this._emitter({\n                        name: 'logs_flushed',\n                        events: batch.events,\n                    });\n                    return response;\n                }\n                return Object.assign(Object.assign(Object.assign({ success: false, statusCode: response.statusCode, failurePath: response.failurePath }, (response.failureErrorMessage\n                    ? { failureErrorMessage: response.failureErrorMessage }\n                    : {})), (response.failureDiagnosticBucket\n                    ? { failureDiagnosticBucket: response.failureDiagnosticBucket }\n                    : {})), (response.failureDiagnosticMetadata\n                    ? { failureDiagnosticMetadata: response.failureDiagnosticMetadata }\n                    : {}));\n            }\n            catch (error) {\n                Log_1.Log.warn('Failed to send batch:', error);\n                return Object.assign(Object.assign(Object.assign({ success: false, statusCode: -1, failurePath: (_c = transportFailure.path) !== null && _c !== void 0 ? _c : failurePath }, (transportFailure.errorMessage\n                    ? { failureErrorMessage: transportFailure.errorMessage }\n                    : {})), (transportFailure.diagnosticBucket\n                    ? { failureDiagnosticBucket: transportFailure.diagnosticBucket }\n                    : {})), (transportFailure.diagnosticMetadata\n                    ? { failureDiagnosticMetadata: transportFailure.diagnosticMetadata }\n                    : {}));\n            }\n        });\n    }\n    _sendEventsViaPost(batch, failureInfo) {\n        return __awaiter(this, void 0, void 0, function* () {\n            var _a, _b;\n            const result = yield this._network.post(this._getRequestData(batch), failureInfo);\n            const code = (_a = result === null || result === void 0 ? void 0 : result.code) !== null && _a !== void 0 ? _a : -1;\n            if (code === -1) {\n                return Object.assign(Object.assign(Object.assign({ success: false, statusCode: -1, failurePath: (_b = failureInfo.path) !== null && _b !== void 0 ? _b : (result === undefined\n                        ? 'event_sender_post_returned_undefined'\n                        : 'event_sender_post_returned_null') }, (failureInfo.errorMessage\n                    ? { failureErrorMessage: failureInfo.errorMessage }\n                    : {})), (failureInfo.diagnosticBucket\n                    ? { failureDiagnosticBucket: failureInfo.diagnosticBucket }\n                    : {})), (failureInfo.diagnosticMetadata\n                    ? { failureDiagnosticMetadata: failureInfo.diagnosticMetadata }\n                    : {}));\n            }\n            return { success: code >= 200 && code < 300, statusCode: code };\n        });\n    }\n    _sendEventsViaBeacon(batch, failureInfo) {\n        var _a;\n        const success = this._network.beacon(this._getRequestData(batch), failureInfo);\n        return Object.assign(Object.assign(Object.assign({ success, statusCode: success ? 200 : -1, failurePath: success\n                ? undefined\n                : (_a = failureInfo.path) !== null && _a !== void 0 ? _a : 'beacon_send_false' }, (!success && failureInfo.errorMessage\n            ? { failureErrorMessage: failureInfo.errorMessage }\n            : {})), (!success && failureInfo.diagnosticBucket\n            ? { failureDiagnosticBucket: failureInfo.diagnosticBucket }\n            : {})), (!success && failureInfo.diagnosticMetadata\n            ? { failureDiagnosticMetadata: failureInfo.diagnosticMetadata }\n            : {}));\n    }\n    _getRequestData(batch) {\n        return {\n            sdkKey: this._sdkKey,\n            data: {\n                events: batch.events,\n            },\n            urlConfig: this._logEventUrlConfig,\n            retries: 3,\n            preserveFailedStatusCode: true,\n            isCompressable: true,\n            params: {\n                [NetworkConfig_1.NetworkParam.EventCount]: String(batch.events.length),\n            },\n            headers: {\n                'statsig-event-count': String(batch.events.length),\n                'statsig-retry-count': String(batch.attempts),\n                'statsig-sdk-type': SDKType_1.SDKType._get(this._sdkKey),\n                'statsig-sdk-version': StatsigMetadata_1.SDK_VERSION,\n            },\n            credentials: 'same-origin',\n        };\n    }\n}\nexports.EventSender = EventSender;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n    return new (P || (P = Promise))(function (resolve, reject) {\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\n    });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FlushCoordinator = void 0;\nconst EventRetryConstants_1 = require(\"./EventRetryConstants\");\nconst EventSender_1 = require(\"./EventSender\");\nconst FlushInterval_1 = require(\"./FlushInterval\");\nconst FlushTypes_1 = require(\"./FlushTypes\");\nconst Hashing_1 = require(\"./Hashing\");\nconst Log_1 = require(\"./Log\");\nconst NetworkCore_1 = require(\"./NetworkCore\");\nconst SafeJs_1 = require(\"./SafeJs\");\nconst SessionID_1 = require(\"./SessionID\");\nconst StatsigOptionsCommon_1 = require(\"./StatsigOptionsCommon\");\nconst StorageProvider_1 = require(\"./StorageProvider\");\nconst RETRYABLE_NO_RESPONSE_FAILURE_PATHS = new Set([\n    'network_request_timed_out_no_response',\n    'network_request_exception_no_response',\n    'event_sender_post_returned_null',\n    'event_sender_post_returned_undefined',\n    'event_sender_post_exception',\n]);\nclass FlushCoordinator {\n    constructor(batchQueue, pendingEvents, onPrepareFlush, \n    // For Event Sender\n    sdkKey, network, emitter, logEventUrlConfig, options, loggingEnabled, errorBoundary) {\n        this._cooldownTimer = null;\n        this._maxIntervalTimer = null;\n        this._hasRunQuickFlush = false;\n        this._currentFlushPromise = null;\n        this._creationTime = Date.now();\n        this._isShuttingDown = false;\n        this._storageKey = null;\n        this._flushInterval = new FlushInterval_1.FlushInterval();\n        this._batchQueue = batchQueue;\n        this._pendingEvents = pendingEvents;\n        this._onPrepareFlush = onPrepareFlush;\n        this._errorBoundary = errorBoundary;\n        this._sdkKey = sdkKey;\n        this._loggingEnabled = loggingEnabled;\n        this._eventSender = new EventSender_1.EventSender(sdkKey, network, emitter, logEventUrlConfig, options);\n    }\n    setLoggingEnabled(loggingEnabled) {\n        this._loggingEnabled = loggingEnabled;\n    }\n    setLogEventCompressionMode(mode) {\n        this._eventSender.setLogEventCompressionMode(mode);\n    }\n    startScheduledFlushCycle() {\n        this._scheduleNextFlush();\n    }\n    stopScheduledFlushCycle() {\n        this._clearAllTimers();\n    }\n    addEvent(event) {\n        this._pendingEvents.addToPendingEventsQueue(event);\n        if (this._currentFlushPromise) {\n            return;\n        }\n        if (this._pendingEvents.hasEventsForFullBatch()) {\n            this.processLimitFlush();\n        }\n    }\n    processManualFlush() {\n        return __awaiter(this, void 0, void 0, function* () {\n            if (this._currentFlushPromise) {\n                yield this._currentFlushPromise;\n            }\n            this._currentFlushPromise = this._executeFlush(FlushTypes_1.FlushTypeValues.Manual).finally(() => {\n                this._currentFlushPromise = null;\n                this._scheduleNextFlush();\n            });\n            return this._currentFlushPromise;\n        });\n    }\n    processShutdown() {\n        return __awaiter(this, void 0, void 0, function* () {\n            this._isShuttingDown = true;\n            this._clearAllTimers();\n            if (this._currentFlushPromise) {\n                yield this._currentFlushPromise;\n            }\n            this._currentFlushPromise = this._executeFlush(FlushTypes_1.FlushTypeValues.Shutdown)\n                .catch((error) => {\n                Log_1.Log.error(`Error during shutdown flush: ${error}`);\n            })\n                .finally(() => {\n                this._currentFlushPromise = null;\n            });\n            return this._currentFlushPromise;\n        });\n    }\n    _executeFlush(flushType) {\n        return __awaiter(this, void 0, void 0, function* () {\n            this._clearAllTimers();\n            try {\n                this._prepareQueueForFlush(flushType);\n                const batches = this._batchQueue.takeAllBatches();\n                if (batches.length === 0) {\n                    return;\n                }\n                yield Promise.all(batches.map((batch) => this._processOneBatch(batch, flushType)));\n            }\n            finally {\n                if (!this._isShuttingDown) {\n                    this._scheduleNextFlush();\n                }\n            }\n        });\n    }\n    checkQuickFlush() {\n        if (this._hasRunQuickFlush) {\n            return;\n        }\n        if (Date.now() - this._creationTime >\n            EventRetryConstants_1.EventRetryConstants.QUICK_FLUSH_WINDOW_MS) {\n            return;\n        }\n        this._hasRunQuickFlush = true;\n        setTimeout(() => {\n            this.processManualFlush().catch((error) => {\n                Log_1.Log.warn('Quick flush failed:', error);\n            });\n        }, EventRetryConstants_1.EventRetryConstants.QUICK_FLUSH_WINDOW_MS);\n    }\n    _attemptScheduledFlush() {\n        if (this._currentFlushPromise) {\n            this._scheduleNextFlush();\n            return;\n        }\n        const shouldFlushBySize = this.containsAtLeastOneFullBatch();\n        const shouldFlushByTime = this._flushInterval.hasReachedMaxInterval();\n        if (!shouldFlushBySize && !shouldFlushByTime) {\n            this._scheduleNoopPollTick();\n            return;\n        }\n        this._flushInterval.markFlushAttempt();\n        let flushType;\n        if (shouldFlushBySize) {\n            flushType = FlushTypes_1.FlushTypeValues.ScheduledFullBatch;\n        }\n        else {\n            flushType = FlushTypes_1.FlushTypeValues.ScheduledMaxTime;\n        }\n        this._currentFlushPromise = this._processNextBatch(flushType)\n            .then(() => {\n            //This discards boolean result. Main goal here is to track completion\n        })\n            .catch((error) => {\n            Log_1.Log.error('Error during scheduled flush:', error);\n        })\n            .finally(() => {\n            this._currentFlushPromise = null;\n            this._scheduleNextFlush();\n        });\n    }\n    processLimitFlush() {\n        if (!this._flushInterval.hasCompletelyRecoveredFromBackoff()) {\n            return;\n        }\n        if (this._currentFlushPromise) {\n            return;\n        }\n        this._currentFlushPromise = this._processLimitFlushInternal()\n            .catch((error) => {\n            Log_1.Log.error(`Error during limit flush`, error);\n        })\n            .finally(() => {\n            this._currentFlushPromise = null;\n            this._scheduleNextFlush();\n        });\n    }\n    _processLimitFlushInternal() {\n        return __awaiter(this, void 0, void 0, function* () {\n            const success = yield this._processNextBatch(FlushTypes_1.FlushTypeValues.Limit);\n            if (!success) {\n                return;\n            }\n            while (this._flushInterval.hasCompletelyRecoveredFromBackoff() &&\n                this.containsAtLeastOneFullBatch()) {\n                const success = yield this._processNextBatch(FlushTypes_1.FlushTypeValues.Limit);\n                if (!success) {\n                    break;\n                }\n            }\n        });\n    }\n    _scheduleNextFlush() {\n        this._clearAllTimers();\n        if (this._isShuttingDown) {\n            return;\n        }\n        const cooldownDelay = Math.max(0, this._flushInterval.getTimeUntilNextFlush());\n        this._cooldownTimer = setTimeout(() => {\n            this._cooldownTimer = null;\n            SessionID_1.StatsigSession.checkForIdleSession(this._sdkKey);\n            this._attemptScheduledFlush();\n        }, cooldownDelay);\n        const maxIntervalDelay = Math.max(0, this._flushInterval.getTimeTillMaxInterval());\n        this._maxIntervalTimer = setTimeout(() => {\n            this._maxIntervalTimer = null;\n            SessionID_1.StatsigSession.checkForIdleSession(this._sdkKey);\n            this._attemptScheduledFlush();\n        }, maxIntervalDelay);\n    }\n    _clearAllTimers() {\n        if (this._cooldownTimer !== null) {\n            clearTimeout(this._cooldownTimer);\n            this._cooldownTimer = null;\n        }\n        if (this._maxIntervalTimer !== null) {\n            clearTimeout(this._maxIntervalTimer);\n            this._maxIntervalTimer = null;\n        }\n    }\n    _scheduleNoopPollTick() {\n        this._clearAllTimers();\n        if (this._isShuttingDown) {\n            return;\n        }\n        this._cooldownTimer = setTimeout(() => {\n            this._cooldownTimer = null;\n            SessionID_1.StatsigSession.checkForIdleSession(this._sdkKey);\n            this._attemptScheduledFlush();\n        }, EventRetryConstants_1.EventRetryConstants.TICK_INTERVAL_MS);\n        const maxIntervalDelay = Math.max(0, this._flushInterval.getTimeTillMaxInterval());\n        this._maxIntervalTimer = setTimeout(() => {\n            this._maxIntervalTimer = null;\n            SessionID_1.StatsigSession.checkForIdleSession(this._sdkKey);\n            this._attemptScheduledFlush();\n        }, maxIntervalDelay);\n    }\n    _processNextBatch(flushType) {\n        return __awaiter(this, void 0, void 0, function* () {\n            this._prepareQueueForFlush(flushType);\n            const batch = this._batchQueue.takeNextBatch();\n            if (!batch) {\n                return false;\n            }\n            return this._processOneBatch(batch, flushType);\n        });\n    }\n    _processOneBatch(batch, flushType) {\n        return __awaiter(this, void 0, void 0, function* () {\n            if (this._loggingEnabled !== StatsigOptionsCommon_1.LoggingEnabledOption.always &&\n                (0, SafeJs_1._isServerEnv)()) {\n                this._flushInterval.adjustForSuccess();\n                return true;\n            }\n            const result = yield this._eventSender.sendBatch(batch);\n            if (result.success) {\n                this._flushInterval.adjustForSuccess();\n                return true;\n            }\n            this._flushInterval.adjustForFailure();\n            this._handleFailure(batch, flushType, result.statusCode, result.failurePath, result.failureErrorMessage, result.failureDiagnosticBucket, result.failureDiagnosticMetadata);\n            return false;\n        });\n    }\n    _prepareQueueForFlush(flushType) {\n        this._onPrepareFlush();\n        const droppedCount = this.convertPendingEventsToBatches();\n        if (droppedCount > 0) {\n            Log_1.Log.warn(`Dropped ${droppedCount} events`);\n            this._errorBoundary.logDroppedEvents(droppedCount, `Batch queue limit reached during batching`, {\n                loggingInterval: this._flushInterval.getCurrentIntervalMs(),\n                batchSize: this._batchQueue.batchSize(),\n                maxPendingBatches: EventRetryConstants_1.EventRetryConstants.MAX_PENDING_BATCHES,\n                flushType: flushType,\n                retries: 'dropped before batching',\n            });\n        }\n    }\n    containsAtLeastOneFullBatch() {\n        return (this._pendingEvents.hasEventsForFullBatch() ||\n            this._batchQueue.hasFullBatch());\n    }\n    convertPendingEventsToBatches() {\n        if (this._pendingEvents.isEmpty()) {\n            return 0;\n        }\n        const allEvents = this._pendingEvents.takeAll();\n        return this._batchQueue.createBatches(allEvents);\n    }\n    _isRetryableBatch(statusCode, failurePath) {\n        if (NetworkCore_1.RETRYABLE_CODES.has(statusCode)) {\n            return true;\n        }\n        if (statusCode === -1 &&\n            failurePath &&\n            RETRYABLE_NO_RESPONSE_FAILURE_PATHS.has(failurePath)) {\n            return true;\n        }\n        return false;\n    }\n    _handleFailure(batch, flushType, statusCode, failurePath, failureErrorMessage, failureDiagnosticBucket, failureDiagnosticMetadata) {\n        if (flushType === FlushTypes_1.FlushTypeValues.Shutdown) {\n            Log_1.Log.warn(`${flushType} flush failed during shutdown. ` +\n                `${batch.events.length} event(s) will be saved to storage for retry in next session.`);\n            this._saveShutdownFailedEventsToStorage(batch.events);\n            return;\n        }\n        if (!this._isRetryableBatch(statusCode, failurePath)) {\n            const reason = `non-retryable error`;\n            Log_1.Log.warn(`${flushType} flush failed after ${batch.attempts} attempt(s). ` +\n                `${batch.events.length} event(s) will be dropped. Non-retryable error: ${statusCode}`);\n            this._errorBoundary.logEventRequestFailure(batch.events.length, reason, flushType, statusCode, batch.attempts, failurePath, failureErrorMessage, failureDiagnosticBucket, failureDiagnosticMetadata);\n            return;\n        }\n        if (batch.attempts >= EventRetryConstants_1.EventRetryConstants.MAX_RETRY_ATTEMPTS) {\n            const reason = `max retry attempts exceeded`;\n            Log_1.Log.warn(`${flushType} flush failed after ${batch.attempts} attempt(s). ` +\n                `${batch.events.length} event(s) will be dropped.`);\n            this._errorBoundary.logEventRequestFailure(batch.events.length, reason, flushType, statusCode, batch.attempts, failurePath, failureErrorMessage, failureDiagnosticBucket, failureDiagnosticMetadata);\n            return;\n        }\n        batch.incrementAttempts();\n        const droppedCount = this._batchQueue.requeueBatch(batch);\n        if (droppedCount > 0) {\n            Log_1.Log.warn(`Failed to requeue batch : dropped ${droppedCount} events due to full queue`);\n            this._errorBoundary.logDroppedEvents(droppedCount, `Batch queue limit reached during requeue`, {\n                loggingInterval: this._flushInterval.getCurrentIntervalMs(),\n                batchSize: this._batchQueue.batchSize(),\n                maxPendingBatches: EventRetryConstants_1.EventRetryConstants.MAX_PENDING_BATCHES,\n                flushType: flushType,\n                retries: batch.attempts,\n            });\n        }\n    }\n    loadAndRetryShutdownFailedEvents() {\n        return __awaiter(this, void 0, void 0, function* () {\n            const storageKey = this._getStorageKey();\n            try {\n                if (!StorageProvider_1.Storage.isReady()) {\n                    yield StorageProvider_1.Storage.isReadyResolver();\n                }\n                const events = this._getShutdownFailedEventsFromStorage(storageKey);\n                if (events.length === 0) {\n                    return;\n                }\n                Log_1.Log.debug(`Loading ${events.length} failed shutdown event(s) from storage for retry`);\n                StorageProvider_1.Storage.removeItem(storageKey);\n                events.forEach((event) => {\n                    this.addEvent(event);\n                });\n                yield this.processManualFlush();\n            }\n            catch (error) {\n                Log_1.Log.warn('Failed to load and retry failed shutdown events:', error);\n            }\n        });\n    }\n    _getStorageKey() {\n        if (!this._storageKey) {\n            this._storageKey = `statsig.failed_shutdown_events.${(0, Hashing_1._DJB2)(this._sdkKey)}`;\n        }\n        return this._storageKey;\n    }\n    _saveShutdownFailedEventsToStorage(events) {\n        const storageKey = this._getStorageKey();\n        try {\n            const existingEvents = this._getShutdownFailedEventsFromStorage(storageKey);\n            let allEvents = [...existingEvents, ...events];\n            if (allEvents.length > EventRetryConstants_1.EventRetryConstants.MAX_LOCAL_STORAGE) {\n                allEvents = allEvents.slice(-EventRetryConstants_1.EventRetryConstants.MAX_LOCAL_STORAGE);\n            }\n            (0, StorageProvider_1._setObjectInStorage)(storageKey, allEvents);\n            Log_1.Log.debug(`Saved ${events.length} failed shutdown event(s) to storage (total stored: ${allEvents.length})`);\n        }\n        catch (error) {\n            Log_1.Log.warn('Unable to save failed shutdown events to storage:', error);\n        }\n    }\n    _getShutdownFailedEventsFromStorage(storageKey) {\n        try {\n            const events = (0, StorageProvider_1._getObjectFromStorage)(storageKey);\n            if (Array.isArray(events)) {\n                return events;\n            }\n            return [];\n        }\n        catch (_a) {\n            return [];\n        }\n    }\n}\nexports.FlushCoordinator = FlushCoordinator;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FlushInterval = void 0;\nconst MIN_FLUSH_INTERVAL_MS = 1000;\nconst MAX_FLUSH_INTERVAL_MS = 60000;\nclass FlushInterval {\n    constructor() {\n        this._currentIntervalMs = MIN_FLUSH_INTERVAL_MS;\n        this._lastFlushAttemptTime = Date.now();\n    }\n    getCurrentIntervalMs() {\n        return this._currentIntervalMs;\n    }\n    markFlushAttempt() {\n        this._lastFlushAttemptTime = Date.now();\n    }\n    getTimeSinceLastAttempt() {\n        return Date.now() - this._lastFlushAttemptTime;\n    }\n    hasReachedMaxInterval() {\n        return this.getTimeSinceLastAttempt() >= MAX_FLUSH_INTERVAL_MS;\n    }\n    getTimeTillMaxInterval() {\n        return MAX_FLUSH_INTERVAL_MS - this.getTimeSinceLastAttempt();\n    }\n    hasCompletelyRecoveredFromBackoff() {\n        return this._currentIntervalMs <= MIN_FLUSH_INTERVAL_MS;\n    }\n    adjustForSuccess() {\n        const current = this._currentIntervalMs;\n        if (current === MIN_FLUSH_INTERVAL_MS) {\n            return;\n        }\n        this._currentIntervalMs = Math.max(MIN_FLUSH_INTERVAL_MS, Math.floor(current / 2));\n    }\n    adjustForFailure() {\n        const current = this._currentIntervalMs;\n        this._currentIntervalMs = Math.min(MAX_FLUSH_INTERVAL_MS, current * 2);\n    }\n    getTimeUntilNextFlush() {\n        return this.getCurrentIntervalMs() - this.getTimeSinceLastAttempt();\n    }\n}\nexports.FlushInterval = FlushInterval;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FlushTypeValues = void 0;\nexports.FlushTypeValues = {\n    ScheduledMaxTime: 'scheduled:max_time',\n    ScheduledFullBatch: 'scheduled:full_batch',\n    Limit: 'limit',\n    Manual: 'manual',\n    Shutdown: 'shutdown',\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._getSortedObject = exports._DJB2Object = exports._DJB2 = void 0;\nconst TypingUtils_1 = require(\"./TypingUtils\");\nconst _DJB2 = (value) => {\n    let hash = 0;\n    for (let i = 0; i < value.length; i++) {\n        const character = value.charCodeAt(i);\n        hash = (hash << 5) - hash + character;\n        hash = hash & hash; // Convert to 32bit integer\n    }\n    return String(hash >>> 0);\n};\nexports._DJB2 = _DJB2;\nconst _DJB2Object = (value, maxLevels) => {\n    return (0, exports._DJB2)(JSON.stringify((0, exports._getSortedObject)(value, maxLevels)));\n};\nexports._DJB2Object = _DJB2Object;\nconst _getSortedObject = (object, maxDepth) => {\n    if (object == null) {\n        return null;\n    }\n    const keys = Object.keys(object).sort();\n    const sortedObject = {};\n    keys.forEach((key) => {\n        const value = object[key];\n        if (maxDepth === 0 || (0, TypingUtils_1._typeOf)(value) !== 'object') {\n            sortedObject[key] = value;\n            return;\n        }\n        sortedObject[key] = (0, exports._getSortedObject)(value, maxDepth != null ? maxDepth - 1 : maxDepth);\n    });\n    return sortedObject;\n};\nexports._getSortedObject = _getSortedObject;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\n/* eslint-disable no-console */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Log = exports.LogLevel = void 0;\n// intentionally spaced for formatting\nconst DEBUG = ' DEBUG ';\nconst _INFO = '  INFO ';\nconst _WARN = '  WARN ';\nconst ERROR = ' ERROR ';\nfunction addTag(args) {\n    args.unshift('[Statsig]');\n    return args; // ['[Statsig]', ...args];\n}\nexports.LogLevel = {\n    None: 0,\n    Error: 1,\n    Warn: 2,\n    Info: 3,\n    Debug: 4,\n};\nclass Log {\n    static info(...args) {\n        if (Log.level >= exports.LogLevel.Info) {\n            console.info(_INFO, ...addTag(args));\n        }\n    }\n    static debug(...args) {\n        if (Log.level >= exports.LogLevel.Debug) {\n            console.debug(DEBUG, ...addTag(args));\n        }\n    }\n    static warn(...args) {\n        if (Log.level >= exports.LogLevel.Warn) {\n            console.warn(_WARN, ...addTag(args));\n        }\n    }\n    static error(...args) {\n        if (Log.level >= exports.LogLevel.Error) {\n            console.error(ERROR, ...addTag(args));\n        }\n    }\n}\nexports.Log = Log;\nLog.level = exports.LogLevel.Warn;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createMemoKey = exports.MemoPrefix = void 0;\nexports.MemoPrefix = {\n    _gate: 'g',\n    _dynamicConfig: 'c',\n    _experiment: 'e',\n    _configList: 'cl',\n    _layer: 'l',\n    _paramStore: 'p',\n};\nconst EXIST_KEYS = new Set([\n// Add keys that should be memoized based only on their existence, not their value\n]);\nconst DO_NOT_MEMO_KEYS = new Set([\n    // Add keys that if exist, should not be memoized\n    'userPersistedValues',\n]);\nfunction createMemoKey(prefix, name, options) {\n    let cacheKey = `${prefix}|${name}`;\n    if (!options) {\n        return cacheKey;\n    }\n    for (const key of Object.keys(options)) {\n        if (DO_NOT_MEMO_KEYS.has(key)) {\n            return undefined;\n        }\n        if (EXIST_KEYS.has(key)) {\n            cacheKey += `|${key}=true`;\n        }\n        else {\n            cacheKey += `|${key}=${options[key]}`;\n        }\n    }\n    return cacheKey;\n}\nexports.createMemoKey = createMemoKey;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NetworkParam = exports.NetworkDefault = exports.Endpoint = void 0;\nexports.Endpoint = {\n    _initialize: 'initialize',\n    _rgstr: 'rgstr',\n    _download_config_specs: 'download_config_specs',\n};\nexports.NetworkDefault = {\n    [exports.Endpoint._rgstr]: 'https://prodregistryv2.org/v1',\n    [exports.Endpoint._initialize]: 'https://featureassets.org/v1',\n    [exports.Endpoint._download_config_specs]: 'https://api.statsigcdn.com/v1',\n};\nexports.NetworkParam = {\n    EventCount: 'ec',\n    SdkKey: 'k',\n    SdkType: 'st',\n    SdkVersion: 'sv',\n    Time: 't',\n    SessionID: 'sid',\n    StatsigEncoded: 'se',\n    IsGzipped: 'gz',\n};\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n    return new (P || (P = Promise))(function (resolve, reject) {\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\n    });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NetworkCore = exports.RETRYABLE_CODES = void 0;\nrequire(\"./$_StatsigGlobal\");\nconst __StatsigGlobal_1 = require(\"./$_StatsigGlobal\");\nconst Diagnostics_1 = require(\"./Diagnostics\");\nconst Log_1 = require(\"./Log\");\nconst NetworkConfig_1 = require(\"./NetworkConfig\");\nconst NetworkFallbackResolver_1 = require(\"./NetworkFallbackResolver\");\nconst SDKFlags_1 = require(\"./SDKFlags\");\nconst SDKType_1 = require(\"./SDKType\");\nconst SafeJs_1 = require(\"./SafeJs\");\nconst SessionID_1 = require(\"./SessionID\");\nconst StableID_1 = require(\"./StableID\");\nconst StatsigClientEventEmitter_1 = require(\"./StatsigClientEventEmitter\");\nconst StatsigMetadata_1 = require(\"./StatsigMetadata\");\nconst StatsigOptionsCommon_1 = require(\"./StatsigOptionsCommon\");\nconst VisibilityObserving_1 = require(\"./VisibilityObserving\");\nconst DEFAULT_TIMEOUT_MS = 10000;\nconst BACKOFF_BASE_MS = 500;\nconst BACKOFF_MAX_MS = 30000;\nconst RATE_LIMIT_WINDOW_MS = 1000;\nconst RATE_LIMIT_MAX_REQ_COUNT = 50;\nconst LEAK_RATE = RATE_LIMIT_MAX_REQ_COUNT / RATE_LIMIT_WINDOW_MS;\nexports.RETRYABLE_CODES = new Set([\n    408, 500, 502, 503, 504, 522, 524, 599,\n]);\nclass NetworkCore {\n    constructor(options, _emitter) {\n        this._emitter = _emitter;\n        this._errorBoundary = null;\n        this._timeout = DEFAULT_TIMEOUT_MS;\n        this._netConfig = {};\n        this._options = {};\n        this._leakyBucket = {};\n        this._lastUsedInitUrl = null;\n        if (options) {\n            this._options = options;\n        }\n        if (this._options.networkConfig) {\n            this._netConfig = this._options.networkConfig;\n        }\n        if (this._netConfig.networkTimeoutMs) {\n            this._timeout = this._netConfig.networkTimeoutMs;\n        }\n        this._fallbackResolver = new NetworkFallbackResolver_1.NetworkFallbackResolver(this._options);\n        this.setLogEventCompressionMode(this._getLogEventCompressionMode(options));\n    }\n    setLogEventCompressionMode(mode) {\n        this._options.logEventCompressionMode = mode;\n    }\n    setErrorBoundary(errorBoundary) {\n        this._errorBoundary = errorBoundary;\n        this._errorBoundary.wrap(this);\n        this._errorBoundary.wrap(this._fallbackResolver);\n        this._fallbackResolver.setErrorBoundary(errorBoundary);\n    }\n    isBeaconSupported() {\n        return (typeof navigator !== 'undefined' &&\n            typeof navigator.sendBeacon === 'function');\n    }\n    getLastUsedInitUrlAndReset() {\n        const tempUrl = this._lastUsedInitUrl;\n        this._lastUsedInitUrl = null;\n        return tempUrl;\n    }\n    beacon(args, failureInfo) {\n        if (!_ensureValidSdkKey(args)) {\n            if (failureInfo) {\n                failureInfo.path = 'beacon_invalid_sdk_key';\n            }\n            return false;\n        }\n        const argsInternal = this._getInternalRequestArgs('POST', args);\n        const url = this._getPopulatedURL(argsInternal);\n        const nav = navigator;\n        try {\n            const success = nav.sendBeacon.bind(nav)(url, argsInternal.body);\n            if (!success) {\n                if (failureInfo) {\n                    failureInfo.path = 'beacon_send_false';\n                }\n            }\n            return success;\n        }\n        catch (error) {\n            if (failureInfo) {\n                failureInfo.path = 'beacon_send_exception';\n            }\n            throw error;\n        }\n    }\n    post(args, failureInfo) {\n        return __awaiter(this, void 0, void 0, function* () {\n            const argsInternal = this._getInternalRequestArgs('POST', args);\n            this._tryEncodeBody(argsInternal);\n            yield this._tryToCompressBody(argsInternal);\n            return this._sendRequest(argsInternal, failureInfo);\n        });\n    }\n    get(args) {\n        const argsInternal = this._getInternalRequestArgs('GET', args);\n        return this._sendRequest(argsInternal);\n    }\n    _sendRequest(args, failureInfo) {\n        return __awaiter(this, void 0, void 0, function* () {\n            var _a, _b, _c, _d;\n            if (!_ensureValidSdkKey(args)) {\n                if (failureInfo) {\n                    failureInfo.path = 'network_invalid_sdk_key';\n                }\n                return null;\n            }\n            if (this._netConfig.preventAllNetworkTraffic) {\n                if (failureInfo) {\n                    failureInfo.path = 'network_prevent_all_network_traffic';\n                }\n                return null;\n            }\n            const { method, body, retries, attempt } = args;\n            const endpoint = args.urlConfig.endpoint;\n            if (this._isRateLimited(endpoint)) {\n                Log_1.Log.warn(`Request to ${endpoint} was blocked because you are making requests too frequently.`);\n                if (failureInfo) {\n                    failureInfo.path = 'network_rate_limited';\n                }\n                return null;\n            }\n            const currentAttempt = attempt !== null && attempt !== void 0 ? attempt : 1;\n            let reqTimedOut = false;\n            const populatedUrl = this._getPopulatedURL(args);\n            const startTime = Date.now();\n            let response = null;\n            const keepalive = (0, VisibilityObserving_1._isUnloading)();\n            try {\n                const config = {\n                    method,\n                    body,\n                    headers: Object.assign({}, args.headers),\n                    priority: args.priority,\n                    keepalive,\n                };\n                _tryMarkInitStart(args, currentAttempt);\n                const bucket = this._leakyBucket[endpoint];\n                if (bucket) {\n                    bucket.lastRequestTime = Date.now();\n                    this._leakyBucket[endpoint] = bucket;\n                }\n                const func = (_a = this._netConfig.networkOverrideFunc) !== null && _a !== void 0 ? _a : fetch;\n                let timeoutId;\n                response = yield Promise.race([\n                    func(populatedUrl, config).finally(() => clearTimeout(timeoutId)),\n                    new Promise((_, reject) => {\n                        timeoutId = setTimeout(() => {\n                            reqTimedOut = true;\n                            reject(new Error(`Timeout of ${this._timeout}ms expired.`));\n                        }, this._timeout);\n                    }),\n                ]);\n                if (!response.ok) {\n                    const text = yield response.text().catch(() => 'No Text');\n                    const err = new Error(`NetworkError: ${populatedUrl} ${text}`);\n                    err.name = 'NetworkError';\n                    throw err;\n                }\n                const text = yield response.text();\n                _tryMarkInitEnd(args, response, currentAttempt, text);\n                this._fallbackResolver.tryBumpExpiryTime(args.sdkKey, args.urlConfig);\n                return {\n                    body: text,\n                    code: response.status,\n                };\n            }\n            catch (error) {\n                const errorMessage = _getErrorMessage(error);\n                const timedOut = _didTimeout(errorMessage !== null && errorMessage !== void 0 ? errorMessage : '', reqTimedOut);\n                _tryMarkInitEnd(args, response, currentAttempt, '', error);\n                const fallbackUpdated = yield this._fallbackResolver.tryFetchUpdatedFallbackInfo(args.sdkKey, args.urlConfig, errorMessage, timedOut);\n                if (fallbackUpdated) {\n                    args.fallbackUrl = this._fallbackResolver.getActiveFallbackUrl(args.sdkKey, args.urlConfig);\n                }\n                if (!retries ||\n                    currentAttempt > retries ||\n                    !exports.RETRYABLE_CODES.has((_b = response === null || response === void 0 ? void 0 : response.status) !== null && _b !== void 0 ? _b : 500)) {\n                    (_c = this._emitter) === null || _c === void 0 ? void 0 : _c.call(this, {\n                        name: 'error',\n                        error,\n                        tag: StatsigClientEventEmitter_1.ErrorTag.NetworkError,\n                        requestArgs: args,\n                    });\n                    const formattedErrorMsg = `A networking error occurred during ${method} request to ${populatedUrl}.`;\n                    Log_1.Log.error(formattedErrorMsg, errorMessage, error);\n                    (_d = this._errorBoundary) === null || _d === void 0 ? void 0 : _d.attachErrorIfNoneExists(formattedErrorMsg);\n                    if (args.preserveFailedStatusCode && response != null) {\n                        return {\n                            body: null,\n                            code: response.status,\n                        };\n                    }\n                    if (response == null) {\n                        if (failureInfo) {\n                            failureInfo.path = timedOut\n                                ? 'network_request_timed_out_no_response'\n                                : 'network_request_exception_no_response';\n                            if (errorMessage) {\n                                failureInfo.errorMessage = errorMessage;\n                            }\n                            try {\n                                const diagnostics = _getNoResponseDiagnostics(args, populatedUrl, timedOut, Date.now() - startTime);\n                                failureInfo.diagnosticBucket = diagnostics.bucket;\n                                failureInfo.diagnosticMetadata = diagnostics.metadata;\n                            }\n                            catch (_e) {\n                                // Diagnostics should not affect request failure handling.\n                            }\n                        }\n                    }\n                    return null;\n                }\n                yield _exponentialBackoff(currentAttempt);\n                return this._sendRequest(Object.assign(Object.assign({}, args), { retries, attempt: currentAttempt + 1 }), failureInfo);\n            }\n        });\n    }\n    _getLogEventCompressionMode(options) {\n        // Handle backward compatibility for deprecated disableCompression flag\n        let compressionMode = options === null || options === void 0 ? void 0 : options.logEventCompressionMode;\n        if (!compressionMode && (options === null || options === void 0 ? void 0 : options.disableCompression) === true) {\n            compressionMode = StatsigOptionsCommon_1.LogEventCompressionMode.Disabled;\n        }\n        // Default to enabled if unset\n        if (!compressionMode) {\n            compressionMode = StatsigOptionsCommon_1.LogEventCompressionMode.Enabled;\n        }\n        return compressionMode;\n    }\n    _isRateLimited(endpoint) {\n        var _a;\n        const now = Date.now();\n        const bucket = (_a = this._leakyBucket[endpoint]) !== null && _a !== void 0 ? _a : {\n            count: 0,\n            lastRequestTime: now,\n        };\n        const elapsed = now - bucket.lastRequestTime;\n        const leakedRequests = Math.floor(elapsed * LEAK_RATE);\n        bucket.count = Math.max(0, bucket.count - leakedRequests);\n        if (bucket.count >= RATE_LIMIT_MAX_REQ_COUNT) {\n            return true;\n        }\n        bucket.count += 1;\n        bucket.lastRequestTime = now;\n        this._leakyBucket[endpoint] = bucket;\n        return false;\n    }\n    _getPopulatedURL(args) {\n        var _a;\n        const url = (_a = args.fallbackUrl) !== null && _a !== void 0 ? _a : args.urlConfig.getUrl();\n        if (args.urlConfig.endpoint === NetworkConfig_1.Endpoint._initialize ||\n            args.urlConfig.endpoint === NetworkConfig_1.Endpoint._download_config_specs) {\n            this._lastUsedInitUrl = url;\n        }\n        const params = Object.assign({ [NetworkConfig_1.NetworkParam.SdkKey]: args.sdkKey, [NetworkConfig_1.NetworkParam.SdkType]: SDKType_1.SDKType._get(args.sdkKey), [NetworkConfig_1.NetworkParam.SdkVersion]: StatsigMetadata_1.SDK_VERSION, [NetworkConfig_1.NetworkParam.Time]: String(Date.now()), [NetworkConfig_1.NetworkParam.SessionID]: SessionID_1.SessionID.get(args.sdkKey) }, args.params);\n        const query = Object.keys(params)\n            .map((key) => {\n            return `${encodeURIComponent(key)}=${encodeURIComponent(params[key])}`;\n        })\n            .join('&');\n        return `${url}${query ? `?${query}` : ''}`;\n    }\n    _tryEncodeBody(args) {\n        var _a;\n        const win = (0, SafeJs_1._getWindowSafe)();\n        const body = args.body;\n        if (!args.isStatsigEncodable ||\n            this._options.disableStatsigEncoding ||\n            typeof body !== 'string' ||\n            (0, __StatsigGlobal_1._getStatsigGlobalFlag)('no-encode') != null ||\n            !(win === null || win === void 0 ? void 0 : win.btoa)) {\n            return;\n        }\n        try {\n            args.body = win.btoa(body).split('').reverse().join('');\n            args.params = Object.assign(Object.assign({}, ((_a = args.params) !== null && _a !== void 0 ? _a : {})), { [NetworkConfig_1.NetworkParam.StatsigEncoded]: '1' });\n        }\n        catch (e) {\n            Log_1.Log.warn(`Request encoding failed for ${args.urlConfig.getUrl()}`, e);\n        }\n    }\n    _tryToCompressBody(args) {\n        return __awaiter(this, void 0, void 0, function* () {\n            var _a;\n            const body = args.body;\n            if (typeof body !== 'string' || !_allowCompression(args, this._options)) {\n                return;\n            }\n            try {\n                const bytes = new TextEncoder().encode(body);\n                const stream = new CompressionStream('gzip');\n                const writer = stream.writable.getWriter();\n                writer.write(bytes).catch(Log_1.Log.error);\n                writer.close().catch(Log_1.Log.error);\n                const reader = stream.readable.getReader();\n                const chunks = [];\n                let result;\n                // eslint-disable-next-line no-await-in-loop\n                while (!(result = yield reader.read()).done) {\n                    chunks.push(result.value);\n                }\n                const totalLength = chunks.reduce((acc, chunk) => acc + chunk.length, 0);\n                const combined = new Uint8Array(totalLength);\n                let offset = 0;\n                for (const chunk of chunks) {\n                    combined.set(chunk, offset);\n                    offset += chunk.length;\n                }\n                args.body = combined;\n                args.params = Object.assign(Object.assign({}, ((_a = args.params) !== null && _a !== void 0 ? _a : {})), { [NetworkConfig_1.NetworkParam.IsGzipped]: '1' });\n            }\n            catch (e) {\n                Log_1.Log.warn(`Request compression failed for ${args.urlConfig.getUrl()}`, e);\n            }\n        });\n    }\n    _getInternalRequestArgs(method, args) {\n        const fallbackUrl = this._fallbackResolver.getActiveFallbackUrl(args.sdkKey, args.urlConfig);\n        const result = Object.assign(Object.assign({}, args), { method,\n            fallbackUrl });\n        if ('data' in args) {\n            _populateRequestBody(result, args.data);\n        }\n        return result;\n    }\n}\nexports.NetworkCore = NetworkCore;\nconst _ensureValidSdkKey = (args) => {\n    if (!args.sdkKey) {\n        Log_1.Log.warn('Unable to make request without an SDK key');\n        return false;\n    }\n    return true;\n};\nconst _populateRequestBody = (args, data) => {\n    const { sdkKey, fallbackUrl } = args;\n    const stableID = StableID_1.StableID.get(sdkKey);\n    const sessionID = SessionID_1.SessionID.get(sdkKey);\n    const sdkType = SDKType_1.SDKType._get(sdkKey);\n    args.body = JSON.stringify(Object.assign(Object.assign({}, data), { statsigMetadata: Object.assign(Object.assign({}, StatsigMetadata_1.StatsigMetadataProvider.get()), { stableID,\n            sessionID,\n            sdkType,\n            fallbackUrl }) }));\n};\nfunction _allowCompression(args, options) {\n    if (!args.isCompressable) {\n        return false;\n    }\n    // Never compress if 'no-compress' is set globally or required APIs are unavailable\n    if ((0, __StatsigGlobal_1._getStatsigGlobalFlag)('no-compress') != null ||\n        typeof CompressionStream === 'undefined' ||\n        typeof TextEncoder === 'undefined') {\n        return false;\n    }\n    const isProxy = args.urlConfig.customUrl != null || args.urlConfig.fallbackUrls != null;\n    const flagEnabled = SDKFlags_1.SDKFlags.get(args.sdkKey, 'enable_log_event_compression') === true;\n    switch (options.logEventCompressionMode) {\n        case StatsigOptionsCommon_1.LogEventCompressionMode.Disabled:\n            return false;\n        case StatsigOptionsCommon_1.LogEventCompressionMode.Enabled:\n            // Only compress through proxy if flag is explicitly on\n            if (isProxy && !flagEnabled) {\n                return false;\n            }\n            return true;\n        case StatsigOptionsCommon_1.LogEventCompressionMode.Forced:\n            return true;\n        default:\n            return false;\n    }\n}\nfunction _getErrorMessage(error) {\n    if (typeof error === 'string') {\n        return error;\n    }\n    if (error instanceof Error) {\n        return `${error.name}: ${error.message}`;\n    }\n    return 'Unknown Error';\n}\nfunction _didTimeout(errorMsg, abortedByTimeout) {\n    const timeout = errorMsg.includes('Timeout'); // probably not needed but just in case\n    return timeout || abortedByTimeout;\n}\nfunction _getNoResponseDiagnostics(args, populatedUrl, timedOut, elapsedMs) {\n    var _a, _b, _c;\n    const win = (0, SafeJs_1._getWindowSafe)();\n    const doc = win === null || win === void 0 ? void 0 : win.document;\n    const nav = typeof navigator !== 'undefined' ? navigator : null;\n    const isUnloading = (0, VisibilityObserving_1._isUnloading)();\n    const online = nav && typeof nav.onLine === 'boolean' ? String(nav.onLine) : 'unknown';\n    const visibilityState = (_a = doc === null || doc === void 0 ? void 0 : doc.visibilityState) !== null && _a !== void 0 ? _a : 'unknown';\n    const hasCustomHeaders = Object.keys((_b = args.headers) !== null && _b !== void 0 ? _b : {}).length > 0;\n    const crossOrigin = _isCrossOrigin(populatedUrl, (_c = win === null || win === void 0 ? void 0 : win.location) === null || _c === void 0 ? void 0 : _c.origin);\n    const hasCustomUrl = args.urlConfig.customUrl != null;\n    const hasFallbackUrl = args.fallbackUrl != null;\n    const elapsedMsBucket = _bucketNumber(elapsedMs, [250, 1000, 5000, 10000]);\n    const bodySizeBucket = _bucketNumber(_getBodySize(args.body), [16384, 65536, 262144, 1048576]);\n    let bucket = 'unknown_no_response';\n    if (timedOut) {\n        bucket = 'timeout';\n    }\n    else if (online === 'false') {\n        bucket = 'browser_offline';\n    }\n    else if (isUnloading) {\n        bucket = 'page_unloading';\n    }\n    else if (visibilityState === 'hidden') {\n        bucket = 'page_hidden';\n    }\n    else if (crossOrigin && hasCustomHeaders) {\n        bucket = 'cross_origin_custom_headers_preflight_risk';\n    }\n    else if (hasCustomUrl || hasFallbackUrl) {\n        bucket = 'custom_url_no_response';\n    }\n    else if (elapsedMs < 250) {\n        bucket = 'immediate_network_rejection';\n    }\n    return {\n        bucket,\n        metadata: {\n            elapsedMsBucket,\n            bodySizeBucket,\n            online,\n            visibilityState,\n            isUnloading: String(isUnloading),\n            crossOrigin: String(crossOrigin),\n            hasCustomUrl: String(hasCustomUrl),\n        },\n    };\n}\nfunction _isCrossOrigin(url, currentOrigin) {\n    if (!currentOrigin) {\n        return true;\n    }\n    return (!url.startsWith(`${currentOrigin}/`) &&\n        !url.startsWith(`${currentOrigin}?`) &&\n        url !== currentOrigin);\n}\nfunction _getBodySize(body) {\n    if (body == null) {\n        return 0;\n    }\n    if (typeof body === 'string') {\n        return body.length;\n    }\n    if (body instanceof Uint8Array) {\n        return body.byteLength;\n    }\n    if (typeof Blob !== 'undefined' && body instanceof Blob) {\n        return body.size;\n    }\n    return -1;\n}\nfunction _bucketNumber(value, thresholds) {\n    if (value < 0) {\n        return 'unknown';\n    }\n    for (const threshold of thresholds) {\n        if (value < threshold) {\n            return `<${threshold}`;\n        }\n    }\n    return `>=${thresholds[thresholds.length - 1]}`;\n}\nfunction _tryMarkInitStart(args, attempt) {\n    if (args.urlConfig.endpoint !== NetworkConfig_1.Endpoint._initialize) {\n        return;\n    }\n    Diagnostics_1.Diagnostics._markInitNetworkReqStart(args.sdkKey, {\n        attempt,\n    });\n}\nfunction _tryMarkInitEnd(args, response, attempt, body, err) {\n    if (args.urlConfig.endpoint !== NetworkConfig_1.Endpoint._initialize) {\n        return;\n    }\n    Diagnostics_1.Diagnostics._markInitNetworkReqEnd(args.sdkKey, Diagnostics_1.Diagnostics._getDiagnosticsData(response, attempt, body, err));\n}\nfunction _exponentialBackoff(attempt) {\n    return __awaiter(this, void 0, void 0, function* () {\n        // 1*1*1000 1s\n        // 2*2*1000 4s\n        // 3*3*1000 9s\n        // 4*4*1000 16s\n        // 5*5*1000 25s\n        yield new Promise((r) => setTimeout(r, Math.min(BACKOFF_BASE_MS * (attempt * attempt), BACKOFF_MAX_MS)));\n    });\n}\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n    return new (P || (P = Promise))(function (resolve, reject) {\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\n    });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._isDomainFailure = exports.NetworkFallbackResolver = void 0;\nconst DnsTxtQuery_1 = require(\"./DnsTxtQuery\");\nconst Hashing_1 = require(\"./Hashing\");\nconst Log_1 = require(\"./Log\");\nconst StorageProvider_1 = require(\"./StorageProvider\");\nconst DEFAULT_TTL_MS = 7 * 24 * 60 * 60 * 1000; // 7 days\nconst COOLDOWN_TIME_MS = 4 * 60 * 60 * 1000; // 4 hours\nclass NetworkFallbackResolver {\n    constructor(options) {\n        var _a;\n        this._fallbackInfo = null;\n        this._errorBoundary = null;\n        this._dnsQueryCooldowns = {};\n        this._networkOverrideFunc = (_a = options.networkConfig) === null || _a === void 0 ? void 0 : _a.networkOverrideFunc;\n    }\n    setErrorBoundary(errorBoundary) {\n        this._errorBoundary = errorBoundary;\n    }\n    tryBumpExpiryTime(sdkKey, urlConfig) {\n        var _a;\n        const info = (_a = this._fallbackInfo) === null || _a === void 0 ? void 0 : _a[urlConfig.endpoint];\n        if (!info) {\n            return;\n        }\n        info.expiryTime = Date.now() + DEFAULT_TTL_MS;\n        _tryWriteFallbackInfoToCache(sdkKey, Object.assign(Object.assign({}, this._fallbackInfo), { [urlConfig.endpoint]: info }));\n    }\n    getActiveFallbackUrl(sdkKey, urlConfig) {\n        var _a, _b;\n        if (urlConfig.customUrl != null && urlConfig.fallbackUrls != null) {\n            return null;\n        }\n        let info = this._fallbackInfo;\n        if (info == null) {\n            info = (_a = _readFallbackInfoFromCache(sdkKey)) !== null && _a !== void 0 ? _a : {};\n            this._fallbackInfo = info;\n        }\n        const entry = info[urlConfig.endpoint];\n        if (!entry ||\n            Date.now() > ((_b = entry.expiryTime) !== null && _b !== void 0 ? _b : 0) ||\n            urlConfig.getChecksum() !== entry.urlConfigChecksum) {\n            delete info[urlConfig.endpoint];\n            this._fallbackInfo = info;\n            _tryWriteFallbackInfoToCache(sdkKey, this._fallbackInfo);\n            return null;\n        }\n        if (entry.url) {\n            return entry.url;\n        }\n        return null;\n    }\n    tryFetchUpdatedFallbackInfo(sdkKey, urlConfig, errorMessage, timedOut) {\n        return __awaiter(this, void 0, void 0, function* () {\n            var _a, _b;\n            try {\n                if (!_isDomainFailure(errorMessage, timedOut)) {\n                    return false;\n                }\n                const canUseNetworkFallbacks = urlConfig.customUrl == null && urlConfig.fallbackUrls == null;\n                const urls = canUseNetworkFallbacks\n                    ? yield this._tryFetchFallbackUrlsFromNetwork(urlConfig)\n                    : urlConfig.fallbackUrls;\n                const newUrl = this._pickNewFallbackUrl((_a = this._fallbackInfo) === null || _a === void 0 ? void 0 : _a[urlConfig.endpoint], urls);\n                if (!newUrl) {\n                    return false;\n                }\n                this._updateFallbackInfoWithNewUrl(sdkKey, urlConfig, newUrl);\n                return true;\n            }\n            catch (error) {\n                (_b = this._errorBoundary) === null || _b === void 0 ? void 0 : _b.logError('tryFetchUpdatedFallbackInfo', error);\n                return false;\n            }\n        });\n    }\n    _updateFallbackInfoWithNewUrl(sdkKey, urlConfig, newUrl) {\n        var _a, _b, _c;\n        const newFallbackInfo = {\n            urlConfigChecksum: urlConfig.getChecksum(),\n            url: newUrl,\n            expiryTime: Date.now() + DEFAULT_TTL_MS,\n            previous: [],\n        };\n        const endpoint = urlConfig.endpoint;\n        const previousInfo = (_a = this._fallbackInfo) === null || _a === void 0 ? void 0 : _a[endpoint];\n        if (previousInfo) {\n            newFallbackInfo.previous.push(...previousInfo.previous);\n        }\n        if (newFallbackInfo.previous.length > 10) {\n            newFallbackInfo.previous = [];\n        }\n        const previousUrl = (_c = (_b = this._fallbackInfo) === null || _b === void 0 ? void 0 : _b[endpoint]) === null || _c === void 0 ? void 0 : _c.url;\n        if (previousUrl != null) {\n            newFallbackInfo.previous.push(previousUrl);\n        }\n        this._fallbackInfo = Object.assign(Object.assign({}, this._fallbackInfo), { [endpoint]: newFallbackInfo });\n        _tryWriteFallbackInfoToCache(sdkKey, this._fallbackInfo);\n    }\n    _tryFetchFallbackUrlsFromNetwork(urlConfig) {\n        return __awaiter(this, void 0, void 0, function* () {\n            var _a;\n            const cooldown = this._dnsQueryCooldowns[urlConfig.endpoint];\n            if (cooldown && Date.now() < cooldown) {\n                return null;\n            }\n            this._dnsQueryCooldowns[urlConfig.endpoint] = Date.now() + COOLDOWN_TIME_MS;\n            const result = [];\n            const records = yield (0, DnsTxtQuery_1._fetchTxtRecords)((_a = this._networkOverrideFunc) !== null && _a !== void 0 ? _a : fetch);\n            const path = _extractPathFromUrl(urlConfig.defaultUrl);\n            for (const record of records) {\n                if (!record.startsWith(urlConfig.endpointDnsKey + '=')) {\n                    continue;\n                }\n                const parts = record.split('=');\n                if (parts.length > 1) {\n                    let baseUrl = parts[1];\n                    if (baseUrl.endsWith('/')) {\n                        baseUrl = baseUrl.slice(0, -1);\n                    }\n                    result.push(`https://${baseUrl}${path}`);\n                }\n            }\n            return result;\n        });\n    }\n    _pickNewFallbackUrl(currentFallbackInfo, urls) {\n        var _a;\n        if (urls == null) {\n            return null;\n        }\n        const previouslyUsed = new Set((_a = currentFallbackInfo === null || currentFallbackInfo === void 0 ? void 0 : currentFallbackInfo.previous) !== null && _a !== void 0 ? _a : []);\n        const currentFallbackUrl = currentFallbackInfo === null || currentFallbackInfo === void 0 ? void 0 : currentFallbackInfo.url;\n        let found = null;\n        for (const loopUrl of urls) {\n            const url = loopUrl.endsWith('/') ? loopUrl.slice(0, -1) : loopUrl;\n            if (!previouslyUsed.has(loopUrl) && url !== currentFallbackUrl) {\n                found = url;\n                break;\n            }\n        }\n        return found;\n    }\n}\nexports.NetworkFallbackResolver = NetworkFallbackResolver;\nfunction _isDomainFailure(errorMsg, timedOut) {\n    var _a;\n    const lowerErrorMsg = (_a = errorMsg === null || errorMsg === void 0 ? void 0 : errorMsg.toLowerCase()) !== null && _a !== void 0 ? _a : '';\n    return (timedOut ||\n        lowerErrorMsg.includes('uncaught exception') ||\n        lowerErrorMsg.includes('failed to fetch') ||\n        lowerErrorMsg.includes('networkerror when attempting to fetch resource'));\n}\nexports._isDomainFailure = _isDomainFailure;\nfunction _getFallbackInfoStorageKey(sdkKey) {\n    return `statsig.network_fallback.${(0, Hashing_1._DJB2)(sdkKey)}`;\n}\nfunction _tryWriteFallbackInfoToCache(sdkKey, info) {\n    const hashKey = _getFallbackInfoStorageKey(sdkKey);\n    if (!info || Object.keys(info).length === 0) {\n        StorageProvider_1.Storage.removeItem(hashKey);\n        return;\n    }\n    StorageProvider_1.Storage.setItem(hashKey, JSON.stringify(info));\n}\nfunction _readFallbackInfoFromCache(sdkKey) {\n    const hashKey = _getFallbackInfoStorageKey(sdkKey);\n    const data = StorageProvider_1.Storage.getItem(hashKey);\n    if (!data) {\n        return null;\n    }\n    try {\n        return JSON.parse(data);\n    }\n    catch (_a) {\n        Log_1.Log.error('Failed to parse FallbackInfo');\n        return null;\n    }\n}\nfunction _extractPathFromUrl(urlString) {\n    try {\n        const url = new URL(urlString);\n        return url.pathname;\n    }\n    catch (error) {\n        return null;\n    }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PendingEvents = void 0;\nconst Log_1 = require(\"./Log\");\nclass PendingEvents {\n    constructor(batchSize) {\n        this._pendingEvents = [];\n        this._batchSize = batchSize;\n    }\n    addToPendingEventsQueue(event) {\n        this._pendingEvents.push(event);\n        Log_1.Log.debug('Enqueued Event:', event);\n    }\n    hasEventsForFullBatch() {\n        return this._pendingEvents.length >= this._batchSize;\n    }\n    takeAll() {\n        const events = this._pendingEvents;\n        this._pendingEvents = [];\n        return events;\n    }\n    isEmpty() {\n        return this._pendingEvents.length === 0;\n    }\n}\nexports.PendingEvents = PendingEvents;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SDKFlags = void 0;\nconst FLAGMAP = {};\nexports.SDKFlags = {\n    setFlags: (sdkKey, flags) => {\n        FLAGMAP[sdkKey] = flags;\n    },\n    get: (sdkKey, flagKey) => {\n        var _a, _b;\n        return (_b = (_a = FLAGMAP[sdkKey]) === null || _a === void 0 ? void 0 : _a[flagKey]) !== null && _b !== void 0 ? _b : false;\n    },\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SDKType = void 0;\nconst SDK_CLIENT = {};\nlet suffix;\nexports.SDKType = {\n    _get: (sdkKey) => {\n        var _a;\n        return ((_a = SDK_CLIENT[sdkKey]) !== null && _a !== void 0 ? _a : 'js-mono') + (suffix !== null && suffix !== void 0 ? suffix : '');\n    },\n    _setClientType(sdkKey, client) {\n        SDK_CLIENT[sdkKey] = client;\n    },\n    _setBindingType(binding) {\n        if (!suffix || suffix === '-react') {\n            suffix = '-' + binding;\n        }\n    },\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._cloneObject = exports._getUnloadEvent = exports._getCurrentPageUrlSafe = exports._addDocumentEventListenerSafe = exports._addWindowEventListenerSafe = exports._isServerEnv = exports._getDocumentSafe = exports._getWindowSafe = void 0;\nconst Log_1 = require(\"./Log\");\nconst _getWindowSafe = () => {\n    return typeof window !== 'undefined' ? window : null;\n};\nexports._getWindowSafe = _getWindowSafe;\nconst _getDocumentSafe = () => {\n    var _a;\n    const win = (0, exports._getWindowSafe)();\n    return (_a = win === null || win === void 0 ? void 0 : win.document) !== null && _a !== void 0 ? _a : null;\n};\nexports._getDocumentSafe = _getDocumentSafe;\nconst _isServerEnv = () => {\n    if ((0, exports._getDocumentSafe)() !== null) {\n        return false;\n    }\n    const isNode = typeof process !== 'undefined' &&\n        process.versions != null &&\n        process.versions.node != null;\n    const isVercel = typeof EdgeRuntime === 'string';\n    return isVercel || isNode;\n};\nexports._isServerEnv = _isServerEnv;\nconst _addWindowEventListenerSafe = (key, listener) => {\n    const win = (0, exports._getWindowSafe)();\n    if (typeof (win === null || win === void 0 ? void 0 : win.addEventListener) === 'function') {\n        win.addEventListener(key, listener);\n    }\n};\nexports._addWindowEventListenerSafe = _addWindowEventListenerSafe;\nconst _addDocumentEventListenerSafe = (key, listener) => {\n    const doc = (0, exports._getDocumentSafe)();\n    if (typeof (doc === null || doc === void 0 ? void 0 : doc.addEventListener) === 'function') {\n        doc.addEventListener(key, listener);\n    }\n};\nexports._addDocumentEventListenerSafe = _addDocumentEventListenerSafe;\nconst _getCurrentPageUrlSafe = () => {\n    var _a;\n    try {\n        return (_a = (0, exports._getWindowSafe)()) === null || _a === void 0 ? void 0 : _a.location.href.split(/[?#]/)[0];\n    }\n    catch (_b) {\n        return;\n    }\n};\nexports._getCurrentPageUrlSafe = _getCurrentPageUrlSafe;\nconst _getUnloadEvent = () => {\n    const win = (0, exports._getWindowSafe)();\n    if (!win) {\n        return 'beforeunload';\n    }\n    const eventType = 'onpagehide' in win ? 'pagehide' : 'beforeunload';\n    return eventType;\n};\nexports._getUnloadEvent = _getUnloadEvent;\nconst _cloneObject = (tag, obj) => {\n    try {\n        return JSON.parse(JSON.stringify(obj));\n    }\n    catch (error) {\n        Log_1.Log.error(`Failed to clone object ${tag}`);\n        return null;\n    }\n};\nexports._cloneObject = _cloneObject;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StatsigSession = exports.SessionID = void 0;\nconst CacheKey_1 = require(\"./CacheKey\");\nconst Log_1 = require(\"./Log\");\nconst StorageProvider_1 = require(\"./StorageProvider\");\nconst UUID_1 = require(\"./UUID\");\nconst VisibilityObserving_1 = require(\"./VisibilityObserving\");\nconst MAX_SESSION_IDLE_TIME = 30 * 60 * 1000; // 30 minutes\nconst MAX_SESSION_AGE = 4 * 60 * 60 * 1000; // 4 hours\nconst PERSIST_THROTTLE_MS = 15000;\nconst SESSION_MAP = {};\n(0, VisibilityObserving_1._subscribeToVisiblityChanged)((visibility) => {\n    if (visibility === 'background') {\n        Object.values(SESSION_MAP).forEach((session) => _persistNow(session));\n    }\n});\nexports.SessionID = {\n    get: (sdkKey) => {\n        return exports.StatsigSession.get(sdkKey).data.sessionID;\n    },\n};\nexports.StatsigSession = {\n    get: (sdkKey, bumpSession = true) => {\n        if (SESSION_MAP[sdkKey] == null) {\n            SESSION_MAP[sdkKey] = _loadOrCreateSharedSession(sdkKey);\n        }\n        const session = SESSION_MAP[sdkKey];\n        return _maybeBumpSession(session, bumpSession);\n    },\n    overrideInitialSessionID: (override, sdkKey) => {\n        const now = Date.now();\n        const session = {\n            data: {\n                sessionID: override,\n                startTime: now,\n                lastUpdate: now,\n            },\n            sdkKey,\n            lastPersistedAt: Date.now(),\n            storageKey: _getSessionIDStorageKey(sdkKey),\n        };\n        _persistNow(session);\n        SESSION_MAP[sdkKey] = session;\n    },\n    checkForIdleSession: (sdkKey) => {\n        const session = SESSION_MAP[sdkKey];\n        if (!session) {\n            return;\n        }\n        const sessionExpired = _checkForExpiredSession(session);\n        if (sessionExpired) {\n            _persistNow(session);\n        }\n    },\n};\nfunction _maybeBumpSession(session, allowSessionBump) {\n    const now = Date.now();\n    const sessionExpired = _checkForExpiredSession(session);\n    if (sessionExpired) {\n        _persistNow(session);\n    }\n    else if (allowSessionBump) {\n        session.data.lastUpdate = now;\n        _persistThrottled(session);\n    }\n    return session;\n}\nfunction _checkForExpiredSession(session) {\n    var _a;\n    const data = session.data;\n    const sessionExpired = _isIdle(data) || _hasRunTooLong(data);\n    if (sessionExpired) {\n        session.data = _newSessionData();\n        (_a = __STATSIG__ === null || __STATSIG__ === void 0 ? void 0 : __STATSIG__.instance(session.sdkKey)) === null || _a === void 0 ? void 0 : _a.$emt({ name: 'session_expired' });\n    }\n    return sessionExpired;\n}\nfunction _isIdle({ lastUpdate }) {\n    return Date.now() - lastUpdate > MAX_SESSION_IDLE_TIME;\n}\nfunction _hasRunTooLong({ startTime }) {\n    return Date.now() - startTime > MAX_SESSION_AGE;\n}\nfunction _getSessionIDStorageKey(sdkKey) {\n    return `statsig.session_id.${(0, CacheKey_1._getStorageKey)(sdkKey)}`;\n}\nfunction _persistNow(session) {\n    try {\n        (0, StorageProvider_1._setObjectInStorage)(session.storageKey, session.data);\n        session.lastPersistedAt = Date.now();\n    }\n    catch (e) {\n        Log_1.Log.warn('Failed to save SessionID');\n    }\n}\nfunction _persistThrottled(session) {\n    const now = Date.now();\n    if (now - session.lastPersistedAt > PERSIST_THROTTLE_MS) {\n        _persistNow(session);\n    }\n}\nfunction _loadSessionFromStorage(storageKey) {\n    const data = (0, StorageProvider_1._getObjectFromStorage)(storageKey);\n    return data;\n}\nfunction _loadOrCreateSharedSession(sdkKey) {\n    const storageKey = _getSessionIDStorageKey(sdkKey);\n    const existing = _loadSessionFromStorage(storageKey);\n    if (existing &&\n        existing.sessionID &&\n        existing.startTime &&\n        existing.lastUpdate) {\n        return { data: existing, sdkKey, lastPersistedAt: 0, storageKey };\n    }\n    return {\n        data: _newSessionData(),\n        sdkKey,\n        lastPersistedAt: 0,\n        storageKey,\n    };\n}\nfunction _newSessionData() {\n    return {\n        sessionID: (0, UUID_1.getUUID)(),\n        startTime: Date.now(),\n        lastUpdate: Date.now(),\n    };\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._fastApproxSizeOf = void 0;\nconst CURLY_AND_SQUARE_BRACKET_SIZE = 2; // [] for array, {} for object\nconst APPROX_ADDITIONAL_SIZE = 1; // additional size for comma and stuff\nconst _fastApproxSizeOf = (obj, max) => {\n    let size = 0;\n    const keys = Object.keys(obj);\n    for (let i = 0; i < keys.length; i++) {\n        const key = keys[i];\n        const value = obj[key];\n        size += key.length;\n        if (typeof value === 'object' && value !== null) {\n            size += (0, exports._fastApproxSizeOf)(value, max) + CURLY_AND_SQUARE_BRACKET_SIZE;\n        }\n        else {\n            size += String(value).length + APPROX_ADDITIONAL_SIZE;\n        }\n        if (size >= max) {\n            // exit early if we've exceeded the max\n            return size;\n        }\n    }\n    return size;\n};\nexports._fastApproxSizeOf = _fastApproxSizeOf;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getCookieName = exports.StableID = void 0;\nconst CacheKey_1 = require(\"./CacheKey\");\nconst Log_1 = require(\"./Log\");\nconst SafeJs_1 = require(\"./SafeJs\");\nconst StorageProvider_1 = require(\"./StorageProvider\");\nconst UUID_1 = require(\"./UUID\");\nconst PROMISE_MAP = {};\nconst COOKIE_ENABLED_MAP = {};\nconst DISABLED_MAP = {};\nexports.StableID = {\n    cookiesEnabled: false,\n    randomID: Math.random().toString(36),\n    get: (sdkKey) => {\n        if (DISABLED_MAP[sdkKey]) {\n            return null;\n        }\n        if (PROMISE_MAP[sdkKey] != null) {\n            return PROMISE_MAP[sdkKey];\n        }\n        let stableID = null;\n        stableID = _loadFromCookie(sdkKey);\n        if (stableID != null) {\n            PROMISE_MAP[sdkKey] = stableID;\n            _persistToStorage(stableID, sdkKey);\n            return stableID;\n        }\n        stableID = _loadFromStorage(sdkKey);\n        if (stableID == null) {\n            stableID = (0, UUID_1.getUUID)();\n        }\n        _persistToStorage(stableID, sdkKey);\n        _persistToCookie(stableID, sdkKey);\n        PROMISE_MAP[sdkKey] = stableID;\n        return stableID;\n    },\n    setOverride: (override, sdkKey) => {\n        PROMISE_MAP[sdkKey] = override;\n        _persistToStorage(override, sdkKey);\n        _persistToCookie(override, sdkKey);\n    },\n    _setCookiesEnabled: (sdkKey, cookiesEnabled) => {\n        COOKIE_ENABLED_MAP[sdkKey] = cookiesEnabled;\n    },\n    _setDisabled: (sdkKey, disabled) => {\n        DISABLED_MAP[sdkKey] = disabled;\n    },\n};\nfunction _getStableIDStorageKey(sdkKey) {\n    return `statsig.stable_id.${(0, CacheKey_1._getStorageKey)(sdkKey)}`;\n}\nfunction _persistToStorage(stableID, sdkKey) {\n    const storageKey = _getStableIDStorageKey(sdkKey);\n    try {\n        (0, StorageProvider_1._setObjectInStorage)(storageKey, stableID);\n    }\n    catch (e) {\n        Log_1.Log.warn('Failed to save StableID to storage');\n    }\n}\nfunction _loadFromStorage(sdkKey) {\n    const storageKey = _getStableIDStorageKey(sdkKey);\n    return (0, StorageProvider_1._getObjectFromStorage)(storageKey);\n}\nfunction _loadFromCookie(sdkKey) {\n    if (!COOKIE_ENABLED_MAP[sdkKey] || (0, SafeJs_1._getDocumentSafe)() == null) {\n        return null;\n    }\n    const cookies = document.cookie.split(';');\n    for (const cookie of cookies) {\n        const [key, value] = cookie.trim().split('=');\n        if (key === getCookieName(sdkKey)) {\n            return decodeURIComponent(value);\n        }\n    }\n    return null;\n}\nfunction _persistToCookie(stableID, sdkKey) {\n    if (!COOKIE_ENABLED_MAP[sdkKey] || (0, SafeJs_1._getDocumentSafe)() == null) {\n        return;\n    }\n    const expiryDate = new Date();\n    expiryDate.setFullYear(expiryDate.getFullYear() + 1);\n    document.cookie = `${getCookieName(sdkKey)}=${encodeURIComponent(stableID)}; expires=${expiryDate.toUTCString()}; path=/`;\n}\nfunction getCookieName(sdkKey) {\n    return `statsig.stable_id.${(0, CacheKey_1._getStorageKey)(sdkKey)}`;\n}\nexports.getCookieName = getCookieName;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n    return new (P || (P = Promise))(function (resolve, reject) {\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\n    });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StatsigClientBase = void 0;\nrequire(\"./$_StatsigGlobal\");\nconst __StatsigGlobal_1 = require(\"./$_StatsigGlobal\");\nconst ErrorBoundary_1 = require(\"./ErrorBoundary\");\nconst EventLogger_1 = require(\"./EventLogger\");\nconst Log_1 = require(\"./Log\");\nconst MemoKey_1 = require(\"./MemoKey\");\nconst SafeJs_1 = require(\"./SafeJs\");\nconst SessionID_1 = require(\"./SessionID\");\nconst StableID_1 = require(\"./StableID\");\nconst StatsigOptionsCommon_1 = require(\"./StatsigOptionsCommon\");\nconst StorageProvider_1 = require(\"./StorageProvider\");\nconst MAX_MEMO_CACHE_SIZE = 3000;\nclass StatsigClientBase {\n    constructor(sdkKey, adapter, network, options) {\n        var _a, _b, _c, _d;\n        this.loadingStatus = 'Uninitialized';\n        this._initializePromise = null;\n        this._listeners = {};\n        const emitter = this.$emt.bind(this);\n        (options === null || options === void 0 ? void 0 : options.logLevel) != null && (Log_1.Log.level = options.logLevel);\n        (options === null || options === void 0 ? void 0 : options.disableStorage) && StorageProvider_1.Storage._setDisabled(true);\n        (options === null || options === void 0 ? void 0 : options.initialSessionID) &&\n            SessionID_1.StatsigSession.overrideInitialSessionID(options.initialSessionID, sdkKey);\n        (options === null || options === void 0 ? void 0 : options.storageProvider) && StorageProvider_1.Storage._setProvider(options.storageProvider);\n        (options === null || options === void 0 ? void 0 : options.enableCookies) &&\n            StableID_1.StableID._setCookiesEnabled(sdkKey, options.enableCookies);\n        (options === null || options === void 0 ? void 0 : options.disableStableID) && StableID_1.StableID._setDisabled(sdkKey, true);\n        this._sdkKey = sdkKey;\n        this._options = options !== null && options !== void 0 ? options : {};\n        this._memoCache = {};\n        this.overrideAdapter = (_a = options === null || options === void 0 ? void 0 : options.overrideAdapter) !== null && _a !== void 0 ? _a : null;\n        this._errorBoundary = new ErrorBoundary_1.ErrorBoundary(sdkKey, options, emitter);\n        this._logger = new EventLogger_1.EventLogger(sdkKey, emitter, network, options, this._errorBoundary);\n        this._errorBoundary.wrap(this);\n        this._errorBoundary.wrap(adapter);\n        this._errorBoundary.wrap(this._logger);\n        network.setErrorBoundary(this._errorBoundary);\n        this.dataAdapter = adapter;\n        this.dataAdapter.attach(sdkKey, options, network);\n        this.storageProvider = StorageProvider_1.Storage;\n        (_d = (_c = (_b = this.overrideAdapter) === null || _b === void 0 ? void 0 : _b.loadFromStorage) === null || _c === void 0 ? void 0 : _c.call(_b)) === null || _d === void 0 ? void 0 : _d.catch((e) => this._errorBoundary.logError('OA::loadFromStorage', e));\n        this._primeReadyRipcord();\n        _assignGlobalInstance(sdkKey, this);\n    }\n    /**\n     * Updates runtime configuration options for the SDK, allowing toggling of certain behaviors such as logging and storage to comply with user preferences or regulations such as GDPR.\n     *\n     * @param {StatsigRuntimeMutableOptions} options - The configuration options that dictate the runtime behavior of the SDK.\n     */\n    updateRuntimeOptions(options) {\n        if (options.loggingEnabled) {\n            this._options.loggingEnabled = options.loggingEnabled;\n            this._logger.setLoggingEnabled(options.loggingEnabled);\n        }\n        else if (options.disableLogging != null) {\n            this._options.disableLogging = options.disableLogging;\n            this._logger.setLoggingEnabled(options.disableLogging ? 'disabled' : 'browser-only');\n        }\n        if (options.disableStorage != null) {\n            this._options.disableStorage = options.disableStorage;\n            StorageProvider_1.Storage._setDisabled(options.disableStorage);\n        }\n        if (options.enableCookies != null) {\n            this._options.enableCookies = options.enableCookies;\n            StableID_1.StableID._setCookiesEnabled(this._sdkKey, options.enableCookies);\n        }\n        if (options.logEventCompressionMode) {\n            this._logger.setLogEventCompressionMode(options.logEventCompressionMode);\n        }\n        else if (options.disableCompression) {\n            this._logger.setLogEventCompressionMode(StatsigOptionsCommon_1.LogEventCompressionMode.Disabled);\n        }\n    }\n    /**\n     * Flushes any currently queued events.\n     */\n    flush() {\n        return this._logger.flush();\n    }\n    /**\n     * Gracefully shuts down the SDK, ensuring that all pending events are send before the SDK stops.\n     * This function emits a 'pre_shutdown' event and then waits for the logger to complete its shutdown process.\n     *\n     * @returns {Promise<void>} A promise that resolves when all shutdown procedures, including logging shutdown, have been completed.\n     */\n    shutdown() {\n        return __awaiter(this, void 0, void 0, function* () {\n            this.$emt({ name: 'pre_shutdown' });\n            this._setStatus('Uninitialized', null);\n            this._initializePromise = null;\n            yield this._logger.stop();\n        });\n    }\n    /**\n     * Subscribes a callback function to a specific {@link StatsigClientEvent} or all StatsigClientEvents if the wildcard '*' is used.\n     * Once subscribed, the listener callback will be invoked whenever the specified event is emitted.\n     *\n     * @param {StatsigClientEventName} event - The name of the event to subscribe to, or '*' to subscribe to all events.\n     * @param {StatsigClientEventCallback<T>} listener - The callback function to execute when the event occurs. The function receives event-specific data as its parameter.\n     * @see {@link off} for unsubscribing from events.\n     */\n    on(event, listener) {\n        if (!this._listeners[event]) {\n            this._listeners[event] = [];\n        }\n        this._listeners[event].push(listener);\n    }\n    /**\n     * Unsubscribes a previously registered callback function from a specific {@link StatsigClientEvent} or all StatsigClientEvents if the wildcard '*' is used.\n     *\n     * @param {StatsigClientEventName} event - The name of the event from which to unsubscribe, or '*' to unsubscribe from all events.\n     * @param {StatsigClientEventCallback<T>} listener - The callback function to remove from the event's notification list.\n     * @see {@link on} for subscribing to events.\n     */\n    off(event, listener) {\n        if (this._listeners[event]) {\n            const index = this._listeners[event].indexOf(listener);\n            if (index !== -1) {\n                this._listeners[event].splice(index, 1);\n            }\n        }\n    }\n    $on(event, listener) {\n        listener.__isInternal = true;\n        this.on(event, listener);\n    }\n    $emt(event) {\n        var _a;\n        const barrier = (listener) => {\n            try {\n                listener(event);\n            }\n            catch (error) {\n                if (listener.__isInternal === true) {\n                    this._errorBoundary.logError(`__emit:${event.name}`, error);\n                    return;\n                }\n                Log_1.Log.error(`An error occurred in a StatsigClientEvent listener. This is not an issue with Statsig.`, event);\n            }\n        };\n        if (this._listeners[event.name]) {\n            this._listeners[event.name].forEach((l) => barrier(l));\n        }\n        (_a = this._listeners['*']) === null || _a === void 0 ? void 0 : _a.forEach(barrier);\n    }\n    _setStatus(newStatus, values) {\n        this.loadingStatus = newStatus;\n        this._memoCache = {};\n        this.$emt({ name: 'values_updated', status: newStatus, values });\n    }\n    _enqueueExposure(name, exposure, options) {\n        if ((options === null || options === void 0 ? void 0 : options.disableExposureLog) === true) {\n            this._logger.incrementNonExposureCount(name);\n            return;\n        }\n        this._logger.enqueue(exposure);\n    }\n    _memoize(prefix, fn) {\n        return (name, options) => {\n            if (this._options.disableEvaluationMemoization) {\n                return fn(name, options);\n            }\n            const memoKey = (0, MemoKey_1.createMemoKey)(prefix, name, options);\n            if (!memoKey) {\n                return fn(name, options);\n            }\n            if (!(memoKey in this._memoCache)) {\n                if (Object.keys(this._memoCache).length >= MAX_MEMO_CACHE_SIZE) {\n                    this._memoCache = {};\n                }\n                this._memoCache[memoKey] = fn(name, options);\n            }\n            return this._memoCache[memoKey];\n        };\n    }\n}\nexports.StatsigClientBase = StatsigClientBase;\nfunction _assignGlobalInstance(sdkKey, client) {\n    var _a;\n    if ((0, SafeJs_1._isServerEnv)()) {\n        return;\n    }\n    const statsigGlobal = (0, __StatsigGlobal_1._getStatsigGlobal)();\n    const instances = (_a = statsigGlobal.instances) !== null && _a !== void 0 ? _a : {};\n    const inst = client;\n    if (instances[sdkKey] != null) {\n        Log_1.Log.warn('Creating multiple Statsig clients with the same SDK key can lead to unexpected behavior. Multi-instance support requires different SDK keys.');\n    }\n    instances[sdkKey] = inst;\n    if (!statsigGlobal.firstInstance) {\n        statsigGlobal.firstInstance = inst;\n    }\n    statsigGlobal.instances = instances;\n    __STATSIG__ = statsigGlobal;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ErrorTag = void 0;\nexports.ErrorTag = {\n    NetworkError: 'NetworkError',\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DataAdapterCachePrefix = void 0;\nexports.DataAdapterCachePrefix = 'statsig.cached';\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._createLayerParameterExposure = exports._createConfigExposure = exports._mapExposures = exports._createGateExposure = exports._isExposureEvent = void 0;\nconst CONFIG_EXPOSURE_NAME = 'statsig::config_exposure';\nconst GATE_EXPOSURE_NAME = 'statsig::gate_exposure';\nconst LAYER_EXPOSURE_NAME = 'statsig::layer_exposure';\nconst _createExposure = (eventName, user, details, metadata, secondaryExposures) => {\n    if (details.bootstrapMetadata) {\n        metadata['bootstrapMetadata'] = details.bootstrapMetadata;\n    }\n    return {\n        eventName,\n        user,\n        value: null,\n        metadata: _addEvaluationDetailsToMetadata(details, metadata),\n        secondaryExposures,\n        time: Date.now(),\n    };\n};\nconst _isExposureEvent = ({ eventName, }) => {\n    return (eventName === GATE_EXPOSURE_NAME ||\n        eventName === CONFIG_EXPOSURE_NAME ||\n        eventName === LAYER_EXPOSURE_NAME);\n};\nexports._isExposureEvent = _isExposureEvent;\nconst _createGateExposure = (user, gate, exposureMapping) => {\n    var _a, _b, _c;\n    const metadata = {\n        gate: gate.name,\n        gateValue: String(gate.value),\n        ruleID: gate.ruleID,\n    };\n    if (((_a = gate.__evaluation) === null || _a === void 0 ? void 0 : _a.version) != null) {\n        metadata['configVersion'] = gate.__evaluation.version;\n    }\n    return _createExposure(GATE_EXPOSURE_NAME, user, gate.details, metadata, _mapExposures((_c = (_b = gate.__evaluation) === null || _b === void 0 ? void 0 : _b.secondary_exposures) !== null && _c !== void 0 ? _c : [], exposureMapping));\n};\nexports._createGateExposure = _createGateExposure;\nfunction _mapExposures(exposures, exposureMapping) {\n    return exposures\n        .map((exposure) => {\n        if (typeof exposure === 'string') {\n            return (exposureMapping !== null && exposureMapping !== void 0 ? exposureMapping : {})[exposure];\n        }\n        return exposure;\n    })\n        .filter((exposure) => exposure != null);\n}\nexports._mapExposures = _mapExposures;\nconst _createConfigExposure = (user, config, exposureMapping) => {\n    var _a, _b, _c, _d;\n    const metadata = {\n        config: config.name,\n        ruleID: config.ruleID,\n    };\n    if (((_a = config.__evaluation) === null || _a === void 0 ? void 0 : _a.version) != null) {\n        metadata['configVersion'] = config.__evaluation.version;\n    }\n    if (((_b = config.__evaluation) === null || _b === void 0 ? void 0 : _b.passed) != null) {\n        metadata['rulePassed'] = String(config.__evaluation.passed);\n    }\n    return _createExposure(CONFIG_EXPOSURE_NAME, user, config.details, metadata, _mapExposures((_d = (_c = config.__evaluation) === null || _c === void 0 ? void 0 : _c.secondary_exposures) !== null && _d !== void 0 ? _d : [], exposureMapping));\n};\nexports._createConfigExposure = _createConfigExposure;\nconst _createLayerParameterExposure = (user, layer, parameterName, exposureMapping) => {\n    var _a, _b, _c, _d, _e, _f, _g;\n    const evaluation = layer.__evaluation;\n    const isExplicit = ((_a = evaluation === null || evaluation === void 0 ? void 0 : evaluation.explicit_parameters) === null || _a === void 0 ? void 0 : _a.includes(parameterName)) === true;\n    let allocatedExperiment = '';\n    let secondaryExposures = (_b = evaluation === null || evaluation === void 0 ? void 0 : evaluation.undelegated_secondary_exposures) !== null && _b !== void 0 ? _b : [];\n    if (isExplicit) {\n        allocatedExperiment = (_c = evaluation.allocated_experiment_name) !== null && _c !== void 0 ? _c : '';\n        secondaryExposures = (_d = evaluation.secondary_exposures) !== null && _d !== void 0 ? _d : [];\n    }\n    const parameterRuleIDs = (_e = layer.__evaluation) === null || _e === void 0 ? void 0 : _e.parameter_rule_ids;\n    const metadata = {\n        config: layer.name,\n        parameterName,\n        ruleID: (_f = parameterRuleIDs === null || parameterRuleIDs === void 0 ? void 0 : parameterRuleIDs[parameterName]) !== null && _f !== void 0 ? _f : layer.ruleID,\n        allocatedExperiment,\n        isExplicitParameter: String(isExplicit),\n    };\n    if (((_g = layer.__evaluation) === null || _g === void 0 ? void 0 : _g.version) != null) {\n        metadata['configVersion'] = layer.__evaluation.version;\n    }\n    return _createExposure(LAYER_EXPOSURE_NAME, user, layer.details, metadata, _mapExposures(secondaryExposures, exposureMapping));\n};\nexports._createLayerParameterExposure = _createLayerParameterExposure;\nconst _addEvaluationDetailsToMetadata = (details, metadata) => {\n    metadata['reason'] = details.reason;\n    if (details.lcut) {\n        metadata['lcut'] = String(details.lcut);\n    }\n    if (details.receivedAt) {\n        metadata['receivedAt'] = String(details.receivedAt);\n    }\n    return metadata;\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StatsigMetadataProvider = exports.SDK_VERSION = void 0;\nexports.SDK_VERSION = '3.33.2';\nlet metadata = {\n    sdkVersion: exports.SDK_VERSION,\n    sdkType: 'js-mono', // js-mono is overwritten by Precomp and OnDevice clients\n};\nexports.StatsigMetadataProvider = {\n    get: () => metadata,\n    add: (additions) => {\n        metadata = Object.assign(Object.assign({}, metadata), additions);\n    },\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LoggingEnabledOption = exports.LogEventCompressionMode = void 0;\nexports.LogEventCompressionMode = {\n    /** Do not compress request bodies */\n    Disabled: 'd',\n    /** Compress request bodies unless a network proxy is configured */\n    Enabled: 'e',\n    /** Always compress request bodies, even when a proxy is configured */\n    Forced: 'f',\n};\nexports.LoggingEnabledOption = {\n    disabled: 'disabled',\n    browserOnly: 'browser-only',\n    always: 'always',\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._makeTypedGet = exports._mergeOverride = exports._makeLayer = exports._makeExperiment = exports._makeDynamicConfig = exports._makeFeatureGate = void 0;\nconst Log_1 = require(\"./Log\");\nconst TypingUtils_1 = require(\"./TypingUtils\");\nfunction _makeEvaluation(name, details, evaluation, value) {\n    var _a;\n    return {\n        name,\n        details,\n        ruleID: (_a = evaluation === null || evaluation === void 0 ? void 0 : evaluation.rule_id) !== null && _a !== void 0 ? _a : '',\n        __evaluation: evaluation,\n        value,\n    };\n}\nfunction _makeFeatureGate(name, details, evaluation) {\n    var _a;\n    return Object.assign(Object.assign({}, _makeEvaluation(name, details, evaluation, (evaluation === null || evaluation === void 0 ? void 0 : evaluation.value) === true)), { idType: (_a = evaluation === null || evaluation === void 0 ? void 0 : evaluation.id_type) !== null && _a !== void 0 ? _a : null });\n}\nexports._makeFeatureGate = _makeFeatureGate;\nfunction _makeDynamicConfig(name, details, evaluation) {\n    var _a, _b;\n    const value = (_a = evaluation === null || evaluation === void 0 ? void 0 : evaluation.value) !== null && _a !== void 0 ? _a : {};\n    return Object.assign(Object.assign({}, _makeEvaluation(name, details, evaluation, value)), { idType: (_b = evaluation === null || evaluation === void 0 ? void 0 : evaluation.id_type) !== null && _b !== void 0 ? _b : null, get: _makeTypedGet(name, evaluation === null || evaluation === void 0 ? void 0 : evaluation.value) });\n}\nexports._makeDynamicConfig = _makeDynamicConfig;\nfunction _makeExperiment(name, details, evaluation) {\n    var _a;\n    const result = _makeDynamicConfig(name, details, evaluation);\n    return Object.assign(Object.assign({}, result), { groupName: (_a = evaluation === null || evaluation === void 0 ? void 0 : evaluation.group_name) !== null && _a !== void 0 ? _a : null });\n}\nexports._makeExperiment = _makeExperiment;\nfunction _makeLayer(name, details, evaluation, exposeFunc) {\n    var _a, _b;\n    return Object.assign(Object.assign({}, _makeEvaluation(name, details, evaluation, undefined)), { get: _makeTypedGet(name, evaluation === null || evaluation === void 0 ? void 0 : evaluation.value, exposeFunc), groupName: (_a = evaluation === null || evaluation === void 0 ? void 0 : evaluation.group_name) !== null && _a !== void 0 ? _a : null, __value: (_b = evaluation === null || evaluation === void 0 ? void 0 : evaluation.value) !== null && _b !== void 0 ? _b : {} });\n}\nexports._makeLayer = _makeLayer;\nfunction _mergeOverride(original, overridden, value, exposeFunc) {\n    return Object.assign(Object.assign(Object.assign({}, original), overridden), { get: _makeTypedGet(original.name, value, exposeFunc) });\n}\nexports._mergeOverride = _mergeOverride;\nfunction _makeTypedGet(name, value, exposeFunc) {\n    return (param, fallback) => {\n        var _a;\n        const found = (_a = value === null || value === void 0 ? void 0 : value[param]) !== null && _a !== void 0 ? _a : null;\n        if (found == null) {\n            return (fallback !== null && fallback !== void 0 ? fallback : null);\n        }\n        if (fallback != null && !(0, TypingUtils_1._isTypeMatch)(found, fallback)) {\n            Log_1.Log.warn(`Parameter type mismatch. '${name}.${param}' was found to be type '${typeof found}' but fallback/return type is '${typeof fallback}'. See https://docs.statsig.com/client/javascript-sdk/#typed-getters`);\n            return (fallback !== null && fallback !== void 0 ? fallback : null);\n        }\n        exposeFunc === null || exposeFunc === void 0 ? void 0 : exposeFunc(param);\n        return found;\n    };\n}\nexports._makeTypedGet = _makeTypedGet;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UPDATE_DETAIL_ERROR_MESSAGES = exports.createUpdateDetails = void 0;\nconst createUpdateDetails = (success, source, initDuration, error, sourceUrl, warnings) => {\n    return {\n        duration: initDuration,\n        source,\n        success,\n        error,\n        sourceUrl,\n        warnings,\n    };\n};\nexports.createUpdateDetails = createUpdateDetails;\nexports.UPDATE_DETAIL_ERROR_MESSAGES = {\n    NO_NETWORK_DATA: 'No data was returned from the network. This may be due to a network timeout if a timeout value was specified in the options or ad blocker error.',\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._getUnitIDFromUser = exports._getFullUserHash = exports._normalizeUser = void 0;\nconst Hashing_1 = require(\"./Hashing\");\nconst Log_1 = require(\"./Log\");\nconst SafeJs_1 = require(\"./SafeJs\");\nfunction _normalizeUser(original, options, fallbackEnvironment) {\n    const copy = (0, SafeJs_1._cloneObject)('StatsigUser', original);\n    if (copy == null) {\n        Log_1.Log.error('Failed to clone user');\n        return { statsigEnvironment: undefined };\n    }\n    if (options != null && options.environment != null) {\n        copy.statsigEnvironment = options.environment;\n    }\n    else if (fallbackEnvironment != null) {\n        copy.statsigEnvironment = { tier: fallbackEnvironment };\n    }\n    return copy;\n}\nexports._normalizeUser = _normalizeUser;\nfunction _getFullUserHash(user) {\n    return user ? (0, Hashing_1._DJB2Object)(user) : null;\n}\nexports._getFullUserHash = _getFullUserHash;\nfunction _getUnitIDFromUser(user, idType) {\n    var _a, _b, _c;\n    if (typeof idType !== 'string') {\n        return user.userID;\n    }\n    const lowered = idType.toLowerCase();\n    if (lowered !== 'userid') {\n        return (_b = (_a = user.customIDs) === null || _a === void 0 ? void 0 : _a[idType]) !== null && _b !== void 0 ? _b : (_c = user.customIDs) === null || _c === void 0 ? void 0 : _c[lowered];\n    }\n    return user.userID;\n}\nexports._getUnitIDFromUser = _getUnitIDFromUser;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._setObjectInStorage = exports._getObjectFromStorage = exports.Storage = void 0;\nconst Log_1 = require(\"./Log\");\nconst SafeJs_1 = require(\"./SafeJs\");\nconst inMemoryStore = {};\nconst _inMemoryProvider = {\n    isReady: () => true,\n    isReadyResolver: () => null,\n    getProviderName: () => 'InMemory',\n    getItem: (key) => inMemoryStore[key] ? inMemoryStore[key] : null,\n    setItem: (key, value) => {\n        inMemoryStore[key] = value;\n    },\n    removeItem: (key) => {\n        delete inMemoryStore[key];\n    },\n    getAllKeys: () => Object.keys(inMemoryStore),\n};\nlet _localStorageProvider = null;\ntry {\n    const win = (0, SafeJs_1._getWindowSafe)();\n    if (win &&\n        win.localStorage &&\n        typeof win.localStorage.getItem === 'function') {\n        _localStorageProvider = {\n            isReady: () => true,\n            isReadyResolver: () => null,\n            getProviderName: () => 'LocalStorage',\n            getItem: (key) => win.localStorage.getItem(key),\n            setItem: (key, value) => win.localStorage.setItem(key, value),\n            removeItem: (key) => win.localStorage.removeItem(key),\n            getAllKeys: () => Object.keys(win.localStorage),\n        };\n    }\n}\ncatch (error) {\n    Log_1.Log.warn('Failed to setup localStorageProvider.');\n}\nlet _main = _localStorageProvider !== null && _localStorageProvider !== void 0 ? _localStorageProvider : _inMemoryProvider;\nlet _current = _main;\nfunction _inMemoryBreaker(action) {\n    try {\n        return action();\n    }\n    catch (error) {\n        if (error instanceof Error && error.name === 'SecurityError') {\n            exports.Storage._setProvider(_inMemoryProvider);\n            return null;\n        }\n        throw error;\n    }\n}\nexports.Storage = {\n    isReady: () => _current.isReady(),\n    isReadyResolver: () => _current.isReadyResolver(),\n    getProviderName: () => _current.getProviderName(),\n    getItem: (key) => _inMemoryBreaker(() => _current.getItem(key)),\n    setItem: (key, value) => _inMemoryBreaker(() => _current.setItem(key, value)),\n    removeItem: (key) => _current.removeItem(key),\n    getAllKeys: () => _current.getAllKeys(),\n    // StorageProviderManagment\n    _setProvider: (newProvider) => {\n        _main = newProvider;\n        _current = newProvider;\n    },\n    _setDisabled: (isDisabled) => {\n        if (isDisabled) {\n            _current = _inMemoryProvider;\n        }\n        else {\n            _current = _main;\n        }\n    },\n};\nfunction _getObjectFromStorage(key) {\n    const value = exports.Storage.getItem(key);\n    try {\n        return JSON.parse(value !== null && value !== void 0 ? value : 'null');\n    }\n    catch (e) {\n        Log_1.Log.error(`Failed to parse value for key \"${key}\"`);\n        return null;\n    }\n}\nexports._getObjectFromStorage = _getObjectFromStorage;\nfunction _setObjectInStorage(key, obj) {\n    exports.Storage.setItem(key, JSON.stringify(obj));\n}\nexports._setObjectInStorage = _setObjectInStorage;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._typedJsonParse = void 0;\nconst Log_1 = require(\"./Log\");\n/**\n *\n * @param {string} data The values to parse into T\n * @param {string} guard A field that must exists on the parsed object for the parse to be valid\n * @param {string} error An error to print via Log.error() when parsing fails\n * @returns {T | null} The parse object T or null if it failed\n */\nfunction _typedJsonParse(data, guard, typeName) {\n    try {\n        const result = JSON.parse(data);\n        if (result &&\n            typeof result === 'object' &&\n            guard in result) {\n            return result;\n        }\n    }\n    catch (_a) {\n        // noop\n    }\n    Log_1.Log.error(`Failed to parse ${typeName}`);\n    return null;\n}\nexports._typedJsonParse = _typedJsonParse;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._isTypeMatch = exports._typeOf = void 0;\nfunction _typeOf(input) {\n    return Array.isArray(input) ? 'array' : typeof input;\n}\nexports._typeOf = _typeOf;\nfunction _isTypeMatch(a, b) {\n    const typeOf = (x) => Array.isArray(x) ? 'array' : x === null ? 'null' : typeof x;\n    return typeOf(a) === typeOf(b);\n}\nexports._isTypeMatch = _isTypeMatch;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getUUID = void 0;\nfunction getUUID() {\n    if (typeof crypto !== 'undefined' &&\n        typeof crypto.randomUUID === 'function') {\n        return crypto.randomUUID();\n    }\n    let d = new Date().getTime();\n    let d2 = (typeof performance !== 'undefined' &&\n        performance.now &&\n        performance.now() * 1000) ||\n        0;\n    const y = '89ab'[Math.floor(Math.random() * 4)];\n    return `xxxxxxxx-xxxx-4xxx-${y}xxx-xxxxxxxxxxxx`.replace(/[xy]/g, (c) => {\n        let r = Math.random() * 16;\n        if (d > 0) {\n            r = (d + r) % 16 | 0;\n            d = Math.floor(d / 16);\n        }\n        else {\n            r = (d2 + r) % 16 | 0;\n            d2 = Math.floor(d2 / 16);\n        }\n        return (c === 'x' ? r : (r & 0x7) | 0x8).toString(16);\n    });\n}\nexports.getUUID = getUUID;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UrlConfiguration = void 0;\nconst Hashing_1 = require(\"./Hashing\");\nconst NetworkConfig_1 = require(\"./NetworkConfig\");\nconst ENDPOINT_DNS_KEY_MAP = {\n    [NetworkConfig_1.Endpoint._initialize]: 'i',\n    [NetworkConfig_1.Endpoint._rgstr]: 'e',\n    [NetworkConfig_1.Endpoint._download_config_specs]: 'd',\n};\nclass UrlConfiguration {\n    constructor(endpoint, customUrl, customApi, fallbackUrls) {\n        this.customUrl = null;\n        this.fallbackUrls = null;\n        this.endpoint = endpoint;\n        this.endpointDnsKey = ENDPOINT_DNS_KEY_MAP[endpoint];\n        if (customUrl) {\n            this.customUrl = customUrl;\n        }\n        if (!customUrl && customApi) {\n            this.customUrl = customApi.endsWith('/')\n                ? `${customApi}${endpoint}`\n                : `${customApi}/${endpoint}`;\n        }\n        if (fallbackUrls) {\n            this.fallbackUrls = fallbackUrls;\n        }\n        const defaultApi = NetworkConfig_1.NetworkDefault[endpoint];\n        this.defaultUrl = `${defaultApi}/${endpoint}`;\n    }\n    getUrl() {\n        var _a;\n        return (_a = this.customUrl) !== null && _a !== void 0 ? _a : this.defaultUrl;\n    }\n    getChecksum() {\n        var _a;\n        const fallbacks = ((_a = this.fallbackUrls) !== null && _a !== void 0 ? _a : []).sort().join(',');\n        return (0, Hashing_1._DJB2)(this.customUrl + fallbacks);\n    }\n}\nexports.UrlConfiguration = UrlConfiguration;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._notifyVisibilityChanged = exports._subscribeToVisiblityChanged = exports._isUnloading = exports._isCurrentlyVisible = void 0;\nconst SafeJs_1 = require(\"./SafeJs\");\nconst FOREGROUND = 'foreground';\nconst BACKGROUND = 'background';\nconst LISTENERS = [];\nlet current = FOREGROUND;\nlet isUnloading = false;\nconst _isCurrentlyVisible = () => {\n    return current === FOREGROUND;\n};\nexports._isCurrentlyVisible = _isCurrentlyVisible;\nconst _isUnloading = () => isUnloading;\nexports._isUnloading = _isUnloading;\nconst _subscribeToVisiblityChanged = (listener) => {\n    LISTENERS.unshift(listener);\n};\nexports._subscribeToVisiblityChanged = _subscribeToVisiblityChanged;\nconst _notifyVisibilityChanged = (visibility) => {\n    if (visibility === current) {\n        return;\n    }\n    current = visibility;\n    LISTENERS.forEach((l) => l(visibility));\n};\nexports._notifyVisibilityChanged = _notifyVisibilityChanged;\n(0, SafeJs_1._addWindowEventListenerSafe)('focus', () => {\n    isUnloading = false;\n    (0, exports._notifyVisibilityChanged)(FOREGROUND);\n});\n(0, SafeJs_1._addWindowEventListenerSafe)('blur', () => (0, exports._notifyVisibilityChanged)(BACKGROUND));\n(0, SafeJs_1._addDocumentEventListenerSafe)('visibilitychange', () => {\n    (0, exports._notifyVisibilityChanged)(document.visibilityState === 'visible' ? FOREGROUND : BACKGROUND);\n});\n(0, SafeJs_1._addWindowEventListenerSafe)((0, SafeJs_1._getUnloadEvent)(), () => {\n    isUnloading = true;\n    (0, exports._notifyVisibilityChanged)(BACKGROUND);\n});\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Storage = exports.Log = exports.EventLogger = exports.Diagnostics = void 0;\n/** Statsig Global should go first */\nrequire(\"./$_StatsigGlobal\");\nconst __StatsigGlobal_1 = require(\"./$_StatsigGlobal\");\nconst Diagnostics_1 = require(\"./Diagnostics\");\nObject.defineProperty(exports, \"Diagnostics\", { enumerable: true, get: function () { return Diagnostics_1.Diagnostics; } });\nconst EventLogger_1 = require(\"./EventLogger\");\nObject.defineProperty(exports, \"EventLogger\", { enumerable: true, get: function () { return EventLogger_1.EventLogger; } });\nconst Log_1 = require(\"./Log\");\nObject.defineProperty(exports, \"Log\", { enumerable: true, get: function () { return Log_1.Log; } });\nconst StatsigMetadata_1 = require(\"./StatsigMetadata\");\nconst StorageProvider_1 = require(\"./StorageProvider\");\nObject.defineProperty(exports, \"Storage\", { enumerable: true, get: function () { return StorageProvider_1.Storage; } });\n__exportStar(require(\"./$_StatsigGlobal\"), exports);\n__exportStar(require(\"./CacheKey\"), exports);\n__exportStar(require(\"./ClientInterfaces\"), exports);\n__exportStar(require(\"./DataAdapterCore\"), exports);\n__exportStar(require(\"./Diagnostics\"), exports);\n__exportStar(require(\"./DownloadConfigSpecsResponse\"), exports);\n__exportStar(require(\"./ErrorBoundary\"), exports);\n__exportStar(require(\"./EvaluationOptions\"), exports);\n__exportStar(require(\"./EvaluationTypes\"), exports);\n__exportStar(require(\"./Hashing\"), exports);\n__exportStar(require(\"./InitializeResponse\"), exports);\n__exportStar(require(\"./Log\"), exports);\n__exportStar(require(\"./MemoKey\"), exports);\n__exportStar(require(\"./NetworkConfig\"), exports);\n__exportStar(require(\"./NetworkCore\"), exports);\n__exportStar(require(\"./OverrideAdapter\"), exports);\n__exportStar(require(\"./ParamStoreTypes\"), exports);\n__exportStar(require(\"./SafeJs\"), exports);\n__exportStar(require(\"./SDKType\"), exports);\n__exportStar(require(\"./SessionID\"), exports);\n__exportStar(require(\"./SizeOf\"), exports);\n__exportStar(require(\"./StableID\"), exports);\n__exportStar(require(\"./StatsigClientBase\"), exports);\n__exportStar(require(\"./StatsigClientEventEmitter\"), exports);\n__exportStar(require(\"./StatsigDataAdapter\"), exports);\n__exportStar(require(\"./StatsigEvent\"), exports);\n__exportStar(require(\"./StatsigMetadata\"), exports);\n__exportStar(require(\"./StatsigOptionsCommon\"), exports);\n__exportStar(require(\"./StatsigPlugin\"), exports);\n__exportStar(require(\"./StatsigTypeFactories\"), exports);\n__exportStar(require(\"./StatsigTypes\"), exports);\n__exportStar(require(\"./StatsigUser\"), exports);\n__exportStar(require(\"./StorageProvider\"), exports);\n__exportStar(require(\"./TypedJsonParse\"), exports);\n__exportStar(require(\"./TypingUtils\"), exports);\n__exportStar(require(\"./UrlConfiguration\"), exports);\n__exportStar(require(\"./UUID\"), exports);\n__exportStar(require(\"./VisibilityObserving\"), exports);\n__exportStar(require(\"./StatsigUpdateDetails\"), exports);\n__exportStar(require(\"./SDKFlags\"), exports);\nObject.assign((0, __StatsigGlobal_1._getStatsigGlobal)(), { Log: Log_1.Log, SDK_VERSION: StatsigMetadata_1.SDK_VERSION });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._resolveDeltasResponse = void 0;\nconst client_core_1 = require(\"@statsig/client-core\");\nconst MAX_DELTAS_SORT_DEPTH = 2;\nfunction _resolveDeltasResponse(cache, deltasString) {\n    const deltas = (0, client_core_1._typedJsonParse)(deltasString, 'checksum', 'DeltasEvaluationResponse');\n    if (!deltas) {\n        return {\n            hadBadDeltaChecksum: true,\n        };\n    }\n    const merged = _mergeDeltasIntoCache(cache, deltas);\n    const resolved = _handleDeletedEntries(merged);\n    const actualChecksum = (0, client_core_1._DJB2Object)({\n        feature_gates: resolved.feature_gates,\n        dynamic_configs: resolved.dynamic_configs,\n        layer_configs: resolved.layer_configs,\n    }, MAX_DELTAS_SORT_DEPTH);\n    const isMatch = actualChecksum === deltas.checksumV2;\n    if (!isMatch) {\n        return {\n            hadBadDeltaChecksum: true,\n            badChecksum: actualChecksum,\n            badMergedConfigs: resolved,\n            badFullResponse: deltas.deltas_full_response,\n        };\n    }\n    return JSON.stringify(resolved);\n}\nexports._resolveDeltasResponse = _resolveDeltasResponse;\nfunction _mergeDeltasIntoCache(cache, deltas) {\n    return Object.assign(Object.assign(Object.assign({}, cache), deltas), { feature_gates: Object.assign(Object.assign({}, cache.feature_gates), deltas.feature_gates), layer_configs: Object.assign(Object.assign({}, cache.layer_configs), deltas.layer_configs), dynamic_configs: Object.assign(Object.assign({}, cache.dynamic_configs), deltas.dynamic_configs) });\n}\nfunction _handleDeletedEntries(deltas) {\n    const result = deltas;\n    _deleteEntriesInRecord(deltas.deleted_gates, result.feature_gates);\n    delete result.deleted_gates;\n    _deleteEntriesInRecord(deltas.deleted_configs, result.dynamic_configs);\n    delete result.deleted_configs;\n    _deleteEntriesInRecord(deltas.deleted_layers, result.layer_configs);\n    delete result.deleted_layers;\n    return result;\n}\nfunction _deleteEntriesInRecord(keys, values) {\n    keys === null || keys === void 0 ? void 0 : keys.forEach((key) => {\n        delete values[key];\n    });\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst client_core_1 = require(\"@statsig/client-core\");\nconst V1InitializeContainer_1 = require(\"./V1InitializeContainer\");\nconst V2InitializeContainer_1 = require(\"./V2InitializeContainer\");\nclass EvaluationStore {\n    constructor(_sdkKey, _options) {\n        this._sdkKey = _sdkKey;\n        this._options = _options;\n        this._valuesForExternalUse = null;\n        this._values = null;\n        this._source = 'Uninitialized';\n        this._lcut = 0;\n        this._receivedAt = 0;\n        this._bootstrapMetadata = null;\n        this._warnings = new Set();\n    }\n    reset() {\n        this._values = null;\n        this._valuesForExternalUse = null;\n        this._source = 'Loading';\n        this._lcut = 0;\n        this._receivedAt = 0;\n        this._bootstrapMetadata = null;\n        this._warnings.clear();\n    }\n    finalize() {\n        if (this._values) {\n            return;\n        }\n        this._source = 'NoValues';\n    }\n    getValues() {\n        // we do not give out the actual _values object to avoid mutating it\n        return this._valuesForExternalUse;\n    }\n    setValues(result, user) {\n        var _a, _b;\n        if (!result) {\n            return false;\n        }\n        const values = (0, client_core_1._typedJsonParse)(result.data, 'has_updates', 'EvaluationResponse');\n        if (values == null) {\n            return false;\n        }\n        this._source = result.source;\n        if ((values === null || values === void 0 ? void 0 : values.has_updates) !== true) {\n            return true;\n        }\n        const updatedLcut = (_a = values.time) !== null && _a !== void 0 ? _a : 0;\n        if (updatedLcut < this._lcut) {\n            return true;\n        }\n        this._valuesForExternalUse = (0, client_core_1._typedJsonParse)(result.data, 'has_updates', 'EvaluationResponse');\n        this._lcut = values.time;\n        this._receivedAt = result.receivedAt;\n        if (values.response_format === 'init-v2') {\n            this._values = new V2InitializeContainer_1.V2InitializeContainer(values);\n        }\n        else {\n            this._values = new V1InitializeContainer_1.V1InitializeContainer(values);\n        }\n        this._bootstrapMetadata = this._extractBootstrapMetadata(result.source, values);\n        if (result.source && values.user) {\n            this._setWarningState(user, values);\n        }\n        client_core_1.SDKFlags.setFlags(this._sdkKey, (_b = values.sdk_flags) !== null && _b !== void 0 ? _b : {});\n        return true;\n    }\n    getWarnings() {\n        if (this._warnings.size === 0) {\n            return undefined;\n        }\n        return Array.from(this._warnings);\n    }\n    getGate(name) {\n        const res = this._values ? this._values.getGate(name) : null;\n        return this._getDetailedStoreResult(res);\n    }\n    getConfig(name) {\n        const res = this._values ? this._values.getConfig(name) : null;\n        return this._getDetailedStoreResult(res);\n    }\n    getConfigList() {\n        if (!this._values) {\n            return [];\n        }\n        return this._values.getConfigList();\n    }\n    getLayer(name) {\n        const res = this._values ? this._values.getLayer(name) : null;\n        return this._getDetailedStoreResult(res);\n    }\n    getParamStore(name) {\n        const res = this._values ? this._values.getParamStore(name) : null;\n        return this._getDetailedStoreResult(res);\n    }\n    getSource() {\n        return this._source;\n    }\n    getExposureMapping() {\n        var _a;\n        return (_a = this._values) === null || _a === void 0 ? void 0 : _a.getExposureMapping();\n    }\n    _extractBootstrapMetadata(source, values) {\n        if (source !== 'Bootstrap') {\n            return null;\n        }\n        const bootstrapMetadata = {};\n        if (values.user) {\n            bootstrapMetadata.user = values.user;\n        }\n        if (values.sdkInfo) {\n            bootstrapMetadata.generatorSDKInfo = values.sdkInfo;\n        }\n        bootstrapMetadata.lcut = values.time;\n        return bootstrapMetadata;\n    }\n    _getDetailedStoreResult(result) {\n        return {\n            result,\n            details: this._getDetails(result == null),\n        };\n    }\n    _setWarningState(user, values) {\n        var _a, _b, _c;\n        const stableID = client_core_1.StableID.get(this._sdkKey);\n        if (((_a = user.customIDs) === null || _a === void 0 ? void 0 : _a.stableID) !== stableID && // don't throw if they're both undefined\n            (((_b = user.customIDs) === null || _b === void 0 ? void 0 : _b.stableID) || stableID)) {\n            this._warnings.add('StableIDMismatch');\n            return;\n        }\n        if ('user' in values) {\n            let bootstrapUser = values['user'];\n            let userForComparison = Object.assign(Object.assign({}, user), { analyticsOnlyMetadata: undefined, privateAttributes: undefined });\n            if ((_c = this._options) === null || _c === void 0 ? void 0 : _c.disableStableID) {\n                userForComparison = Object.assign(Object.assign({}, userForComparison), { customIDs: Object.assign(Object.assign({}, userForComparison.customIDs), { stableID: undefined }) });\n                bootstrapUser = Object.assign(Object.assign({}, bootstrapUser), { customIDs: Object.assign(Object.assign({}, bootstrapUser.customIDs), { stableID: undefined }) });\n            }\n            if ((0, client_core_1._getFullUserHash)(userForComparison) !== (0, client_core_1._getFullUserHash)(bootstrapUser)) {\n                this._warnings.add('PartialUserMatch');\n            }\n        }\n    }\n    getCurrentSourceDetails() {\n        if (this._source === 'Uninitialized' || this._source === 'NoValues') {\n            return { reason: this._source };\n        }\n        const sourceDetails = {\n            reason: this._source,\n            lcut: this._lcut,\n            receivedAt: this._receivedAt,\n        };\n        if (this._warnings.size > 0) {\n            sourceDetails.warnings = Array.from(this._warnings);\n        }\n        return sourceDetails;\n    }\n    _getDetails(isUnrecognized) {\n        var _a, _b;\n        const sourceDetails = this.getCurrentSourceDetails();\n        let reason = sourceDetails.reason;\n        const warnings = (_a = sourceDetails.warnings) !== null && _a !== void 0 ? _a : [];\n        if (this._source === 'Bootstrap' && warnings.length > 0) {\n            reason = reason + warnings[0];\n        }\n        if (reason !== 'Uninitialized' && reason !== 'NoValues') {\n            const subreason = isUnrecognized ? 'Unrecognized' : 'Recognized';\n            reason = `${reason}:${subreason}`;\n        }\n        const bootstrapMetadata = this._source === 'Bootstrap'\n            ? (_b = this._bootstrapMetadata) !== null && _b !== void 0 ? _b : undefined\n            : undefined;\n        if (bootstrapMetadata) {\n            sourceDetails.bootstrapMetadata = bootstrapMetadata;\n        }\n        return Object.assign(Object.assign({}, sourceDetails), { reason });\n    }\n}\nexports.default = EvaluationStore;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n    return new (P || (P = Promise))(function (resolve, reject) {\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\n    });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst client_core_1 = require(\"@statsig/client-core\");\nconst EvaluationResponseDeltas_1 = require(\"./EvaluationResponseDeltas\");\nclass StatsigNetwork extends client_core_1.NetworkCore {\n    constructor(options, emitter) {\n        super(options, emitter);\n        const config = options === null || options === void 0 ? void 0 : options.networkConfig;\n        this._option = options;\n        this._initializeUrlConfig = new client_core_1.UrlConfiguration(client_core_1.Endpoint._initialize, config === null || config === void 0 ? void 0 : config.initializeUrl, config === null || config === void 0 ? void 0 : config.api, config === null || config === void 0 ? void 0 : config.initializeFallbackUrls);\n    }\n    fetchEvaluations(sdkKey, current, priority, user, isCacheValidFor204) {\n        return __awaiter(this, void 0, void 0, function* () {\n            var _a, _b, _c, _d, _e, _f;\n            const cache = current\n                ? (0, client_core_1._typedJsonParse)(current, 'has_updates', 'InitializeResponse')\n                : null;\n            let data = {\n                user,\n                hash: (_c = (_b = (_a = this._option) === null || _a === void 0 ? void 0 : _a.networkConfig) === null || _b === void 0 ? void 0 : _b.initializeHashAlgorithm) !== null && _c !== void 0 ? _c : 'djb2',\n                deltasResponseRequested: false,\n                full_checksum: null,\n            };\n            if (cache === null || cache === void 0 ? void 0 : cache.has_updates) {\n                const hasHashChanged = (cache === null || cache === void 0 ? void 0 : cache.hash_used) !==\n                    ((_f = (_e = (_d = this._option) === null || _d === void 0 ? void 0 : _d.networkConfig) === null || _e === void 0 ? void 0 : _e.initializeHashAlgorithm) !== null && _f !== void 0 ? _f : 'djb2');\n                data = Object.assign(Object.assign({}, data), { sinceTime: isCacheValidFor204 && !hasHashChanged ? cache.time : 0, previousDerivedFields: 'derived_fields' in cache && isCacheValidFor204\n                        ? cache.derived_fields\n                        : {}, deltasResponseRequested: true, full_checksum: cache.full_checksum, partialUserMatchSinceTime: !hasHashChanged ? cache.time : 0 });\n            }\n            return this._fetchEvaluations(sdkKey, cache, data, priority);\n        });\n    }\n    _fetchEvaluations(sdkKey, cache, data, priority) {\n        return __awaiter(this, void 0, void 0, function* () {\n            var _a, _b;\n            const response = yield this.post({\n                sdkKey,\n                urlConfig: this._initializeUrlConfig,\n                data,\n                retries: 2,\n                isStatsigEncodable: true,\n                priority,\n            });\n            if ((response === null || response === void 0 ? void 0 : response.code) === 204) {\n                return '{\"has_updates\": false}';\n            }\n            if ((response === null || response === void 0 ? void 0 : response.code) !== 200) {\n                return (_a = response === null || response === void 0 ? void 0 : response.body) !== null && _a !== void 0 ? _a : null;\n            }\n            if ((cache === null || cache === void 0 ? void 0 : cache.has_updates) !== true ||\n                ((_b = response.body) === null || _b === void 0 ? void 0 : _b.includes('\"is_delta\":true')) !== true ||\n                data.deltasResponseRequested !== true) {\n                return response.body;\n            }\n            const result = (0, EvaluationResponseDeltas_1._resolveDeltasResponse)(cache, response.body);\n            if (typeof result === 'string') {\n                return result;\n            }\n            // retry without deltas\n            return this._fetchEvaluations(sdkKey, cache, Object.assign(Object.assign(Object.assign({}, data), result), { deltasResponseRequested: false }), priority);\n        });\n    }\n}\nexports.default = StatsigNetwork;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._makeParamStoreGetter = void 0;\nconst client_core_1 = require(\"@statsig/client-core\");\nconst NO_EXPOSURE_OPT = {\n    disableExposureLog: true,\n};\nfunction _shouldLogExposure(options) {\n    return options == null || options.disableExposureLog === false;\n}\nfunction _shouldReturnFallback(value, fallback) {\n    return fallback != null && !(0, client_core_1._isTypeMatch)(value, fallback);\n}\nfunction _getMappedStaticValue(param, _options) {\n    return param.value;\n}\nfunction _getMappedGateValue(client, param, options) {\n    const gate = client.getFeatureGate(param.gate_name, _shouldLogExposure(options) ? undefined : NO_EXPOSURE_OPT);\n    if (gate.value) {\n        return param.pass_value;\n    }\n    return param.fail_value;\n}\nfunction _getMappedDynamicConfigValue(client, param, fallback, options) {\n    const config = client.getDynamicConfig(param.config_name, _shouldLogExposure(options) ? undefined : NO_EXPOSURE_OPT);\n    const value = config.get(param.param_name);\n    if (_shouldReturnFallback(value, fallback)) {\n        return fallback;\n    }\n    return value;\n}\nfunction _getMappedExperimentValue(client, param, fallback, options) {\n    const experiment = client.getExperiment(param.experiment_name, _shouldLogExposure(options) ? undefined : NO_EXPOSURE_OPT);\n    const value = experiment.get(param.param_name);\n    if (_shouldReturnFallback(value, fallback)) {\n        return fallback;\n    }\n    return value;\n}\nfunction _getMappedLayerValue(client, param, fallback, options) {\n    const layer = client.getLayer(param.layer_name, _shouldLogExposure(options) ? undefined : NO_EXPOSURE_OPT);\n    const value = layer.get(param.param_name);\n    if (_shouldReturnFallback(value, fallback)) {\n        return fallback;\n    }\n    return value;\n}\nfunction _makeParamStoreGetter(client, config, options) {\n    return (paramName, fallback) => {\n        if (config == null) {\n            return fallback;\n        }\n        const param = config[paramName];\n        if (param == null ||\n            (fallback != null && (0, client_core_1._typeOf)(fallback) !== param.param_type)) {\n            return fallback;\n        }\n        switch (param.ref_type) {\n            case 'static':\n                return _getMappedStaticValue(param, options);\n            case 'gate':\n                return _getMappedGateValue(client, param, options);\n            case 'dynamic_config':\n                return _getMappedDynamicConfigValue(client, param, fallback, options);\n            case 'experiment':\n                return _getMappedExperimentValue(client, param, fallback, options);\n            case 'layer':\n                return _getMappedLayerValue(client, param, fallback, options);\n            default:\n                return fallback;\n        }\n    };\n}\nexports._makeParamStoreGetter = _makeParamStoreGetter;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n    return new (P || (P = Promise))(function (resolve, reject) {\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\n    });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst client_core_1 = require(\"@statsig/client-core\");\nconst EvaluationStore_1 = require(\"./EvaluationStore\");\nconst Network_1 = require(\"./Network\");\nconst ParamStoreGetterFactory_1 = require(\"./ParamStoreGetterFactory\");\nconst StatsigEvaluationsDataAdapter_1 = require(\"./StatsigEvaluationsDataAdapter\");\nclass StatsigClient extends client_core_1.StatsigClientBase {\n    /**\n     * Retrieves an instance of the StatsigClient based on the provided SDK key.\n     *  If no SDK key is provided, the method returns the most recently created instance of the StatsigClient.\n     *  The method ensures that each unique SDK key corresponds to a single instance of StatsigClient, effectively implementing a singleton pattern for each key.\n     *  If no instance exists for the given SDK key, a new StatsigClient instance will be created and returned.\n     *\n     * @param {string} [sdkKey] - Optional. The SDK key used to identify a specific instance of the StatsigClient. If omitted, the method returns the last created instance.\n     * @returns {StatsigClient} Returns the StatsigClient instance associated with the given SDK key, creating a new one if needed.\n     */\n    static instance(sdkKey) {\n        const instance = (0, client_core_1._getStatsigGlobal)().instance(sdkKey);\n        if (instance instanceof StatsigClient) {\n            return instance;\n        }\n        client_core_1.Log.warn((0, client_core_1._isServerEnv)()\n            ? 'StatsigClient.instance is not supported in server environments'\n            : 'Unable to find StatsigClient instance');\n        return new StatsigClient(sdkKey !== null && sdkKey !== void 0 ? sdkKey : '', {});\n    }\n    /**\n     * StatsigClient constructor\n     *\n     * @param {string} sdkKey A Statsig client SDK key. eg \"client-xyz123...\"\n     * @param {StatsigUser} user StatsigUser object containing various attributes related to a user.\n     * @param {StatsigOptions | null} options StatsigOptions, used to customize the behavior of the SDK.\n     */\n    constructor(sdkKey, user, options = null) {\n        var _a, _b;\n        client_core_1.SDKType._setClientType(sdkKey, 'javascript-client');\n        const network = new Network_1.default(options, (e) => {\n            this.$emt(e);\n        });\n        super(sdkKey, (_a = options === null || options === void 0 ? void 0 : options.dataAdapter) !== null && _a !== void 0 ? _a : new StatsigEvaluationsDataAdapter_1.StatsigEvaluationsDataAdapter(), network, options);\n        this._possibleFirstTouchMetadata = {};\n        /**\n         * Retrieves the value of a feature gate for the current user, represented as a {@link FeatureGate} object.\n         *\n         * @param {string} name - The name of the feature gate to retrieve.\n         * @param {FeatureGateEvaluationOptions} [options] - Optional. Additional options to customize the method call.\n         * @returns {FeatureGate} - The {@link FeatureGate} object representing the gate's current evaluation results for the user.\n         */\n        this.getFeatureGate = this._memoize(client_core_1.MemoPrefix._gate, this._getFeatureGateImpl.bind(this));\n        /**\n         * Retrieves the value of a dynamic config for the current user.\n         *\n         * @param {string} name The name of the dynamic config to get.\n         * @param {DynamicConfigEvaluationOptions} [options] - Optional. Additional options to customize the method call.\n         * @returns {DynamicConfig} - The {@link DynamicConfig} object representing the dynamic configs's current evaluation results for the user.\n         */\n        this.getDynamicConfig = this._memoize(client_core_1.MemoPrefix._dynamicConfig, this._getDynamicConfigImpl.bind(this));\n        /**\n         * Retrieves the value of a experiment for the current user.\n         *\n         * @param {string} name The name of the experiment to get.\n         * @param {ExperimentEvaluationOptions} [options] - Optional. Additional options to customize the method call.\n         * @returns {Experiment} - The {@link Experiment} object representing the experiments's current evaluation results for the user.\n         */\n        this.getExperiment = this._memoize(client_core_1.MemoPrefix._experiment, this._getExperimentImpl.bind(this));\n        /**\n         * Retrieves the list of all Dynamic Configs and Experiments for the current user.\n         *\n         * @returns {string[]} The list of all Dynamic Config and Experiment names for the current user. Note - these will be hashed unless you've disabled hashing.\n         * This is intended to be used for debugging.\n         */\n        this.getConfigList = this._memoize(client_core_1.MemoPrefix._configList, this._getConfigListImpl.bind(this));\n        /**\n         * Retrieves the value of a layer for the current user.\n         *\n         * @param {string} name The name of the layer to get.\n         * @param {LayerEvaluationOptions} [options] - Optional. Additional options to customize the method call.\n         * @returns {Layer} - The {@link Layer} object representing the layers's current evaluation results for the user.\n         */\n        this.getLayer = this._memoize(client_core_1.MemoPrefix._layer, this._getLayerImpl.bind(this));\n        /**\n         * Retrieves the value of a parameter store for the current user.\n         *\n         * @param {string} name The name of the parameter store to get.\n         * @param {ParameterStoreEvaluationOptions} [options] - Optional. Additional options to customize the method call.\n         * @returns {ParameterStore} - The {@link ParameterStore} object representing the parameter store's current mappings for the user.\n         */\n        this.getParameterStore = this._memoize(client_core_1.MemoPrefix._paramStore, this._getParameterStoreImpl.bind(this));\n        this._store = new EvaluationStore_1.default(sdkKey, options !== null && options !== void 0 ? options : null);\n        this._network = network;\n        this._user = this._configureUser(user, options);\n        this._sdkInstanceID = (0, client_core_1.getUUID)();\n        this._contextHandle = new client_core_1.PrecomputedEvaluationsContextHandle(sdkKey, () => this._options, () => this._errorBoundary, () => this._store.getValues(), () => this._user, () => this._sdkInstanceID);\n        const plugins = (_b = options === null || options === void 0 ? void 0 : options.plugins) !== null && _b !== void 0 ? _b : [];\n        for (const plugin of plugins) {\n            plugin.bind(this);\n        }\n    }\n    /**\n     * Initializes the StatsigClient using cached values. This method sets up the client synchronously by utilizing previously cached values.\n     * After initialization, cache values are updated in the background for future use, either in subsequent sessions or when `updateUser` is called.\n     * This is useful for quickly starting with the last-known-good configurations while refreshing data to keep settings up-to-date.\n     *\n     * @see {@link initializeAsync} for the asynchronous version of this method.\n     */\n    initializeSync(options) {\n        var _a;\n        if (this.loadingStatus !== 'Uninitialized') {\n            return (0, client_core_1.createUpdateDetails)(true, this._store.getSource(), -1, null, null, ['MultipleInitializations', ...((_a = this._store.getWarnings()) !== null && _a !== void 0 ? _a : [])]);\n        }\n        this._logger.start();\n        return this.updateUserSync(this._user, options);\n    }\n    /**\n     * Initializes the StatsigClient asynchronously by first using cached values and then updating to the latest values from the network.\n     * Once the network values are fetched, they replace the existing cached values. If this method's promise is not awaited,\n     * there might be a transition from cached to network values during the session, which can affect consistency.\n     * This method is useful when it's acceptable to begin with potentially stale data and switch to the latest configuration as it becomes available.\n     *\n     * @param {AsyncUpdateOptions} [options] - Optional. Additional options to customize the method call.\n     * @returns {Promise<void>} A promise that resolves once the client is fully initialized with the latest values from the network or a timeout (if set) is hit.\n     * @see {@link initializeSync} for the synchronous version of this method.\n     */\n    initializeAsync(options) {\n        return __awaiter(this, void 0, void 0, function* () {\n            if (this._initializePromise) {\n                return this._initializePromise;\n            }\n            this._initializePromise = this._initializeAsyncImpl(options);\n            return this._initializePromise;\n        });\n    }\n    /**\n     * Synchronously updates the user in the Statsig client and switches the internal state to use cached values for the newly specified user.\n     * After the initial switch to cached values, this method updates these values in the background, preparing them for future sessions or subsequent calls to updateUser.\n     * This method ensures the client is quickly ready with available data.\n     *\n     * @param {StatsigUser} user - The new StatsigUser for which the client should update its internal state.\n     * @see {@link updateUserAsync} for the asynchronous version of this method.\n     */\n    updateUserSync(user, options) {\n        const startTime = performance.now();\n        try {\n            return this._updateUserSyncImpl(user, options, startTime);\n        }\n        catch (e) {\n            const err = e instanceof Error ? e : new Error(String(e));\n            return this._createErrorUpdateDetails(err, startTime);\n        }\n    }\n    _updateUserSyncImpl(user, options, startTime) {\n        var _a;\n        const warnings = [...((_a = this._store.getWarnings()) !== null && _a !== void 0 ? _a : [])];\n        this._resetForUser(user);\n        const result = this.dataAdapter.getDataSync(this._user);\n        if (result == null) {\n            warnings.push('NoCachedValues');\n        }\n        this._store.setValues(result, this._user);\n        this._finalizeUpdate(result);\n        const disable = options === null || options === void 0 ? void 0 : options.disableBackgroundCacheRefresh;\n        if (disable === true ||\n            (disable == null && (result === null || result === void 0 ? void 0 : result.source) === 'Bootstrap')) {\n            return (0, client_core_1.createUpdateDetails)(true, this._store.getSource(), performance.now() - startTime, this._errorBoundary.getLastSeenErrorAndReset(), this._network.getLastUsedInitUrlAndReset(), warnings);\n        }\n        this._runPostUpdate(result !== null && result !== void 0 ? result : null, this._user);\n        return (0, client_core_1.createUpdateDetails)(true, this._store.getSource(), performance.now() - startTime, this._errorBoundary.getLastSeenErrorAndReset(), this._network.getLastUsedInitUrlAndReset(), warnings);\n    }\n    /**\n     * Asynchronously updates the user in the Statsig client by initially using cached values and then fetching the latest values from the network.\n     * When the latest values are fetched, they replace the cached values. If the promise returned by this method is not awaited,\n     * the client's state may shift from cached to updated network values during the session, potentially affecting consistency.\n     * This method is best used in scenarios where up-to-date configuration is critical and initial delays are acceptable.\n     *\n     * @param {StatsigUser} user - The new StatsigUser for which the client should update its internal state.\n     * @param {AsyncUpdateOptions} [options] - Optional. Additional options to customize the method call.\n     * @returns {Promise<void>} A promise that resolves once the client is fully updated with the latest values from the network or a timeout (if set) is hit.\n     * @see {@link updateUserSync} for the synchronous version of this method.\n     */\n    updateUserAsync(user, options) {\n        return __awaiter(this, void 0, void 0, function* () {\n            const startTime = performance.now();\n            try {\n                return yield this._updateUserAsyncImpl(user, options);\n            }\n            catch (e) {\n                const err = e instanceof Error ? e : new Error(String(e));\n                return this._createErrorUpdateDetails(err, startTime);\n            }\n        });\n    }\n    _updateUserAsyncImpl(user, options) {\n        return __awaiter(this, void 0, void 0, function* () {\n            this._resetForUser(user);\n            const initiator = this._user;\n            client_core_1.Diagnostics._markInitOverallStart(this._sdkKey);\n            let result = this.dataAdapter.getDataSync(initiator);\n            this._store.setValues(result, this._user);\n            this._setStatus('Loading', result);\n            result = yield this.dataAdapter.getDataAsync(result, initiator, options);\n            // ensure the user hasn't changed while we were waiting\n            if (initiator !== this._user) {\n                return (0, client_core_1.createUpdateDetails)(false, this._store.getSource(), -1, new Error('User changed during update'), this._network.getLastUsedInitUrlAndReset());\n            }\n            let isUsingNetworkValues = false;\n            if (result != null) {\n                client_core_1.Diagnostics._markInitProcessStart(this._sdkKey);\n                isUsingNetworkValues = this._store.setValues(result, this._user);\n                client_core_1.Diagnostics._markInitProcessEnd(this._sdkKey, {\n                    success: isUsingNetworkValues,\n                });\n            }\n            this._finalizeUpdate(result);\n            if (!isUsingNetworkValues) {\n                this._errorBoundary.attachErrorIfNoneExists(client_core_1.UPDATE_DETAIL_ERROR_MESSAGES.NO_NETWORK_DATA);\n                this.$emt({ name: 'initialization_failure' });\n            }\n            client_core_1.Diagnostics._markInitOverallEnd(this._sdkKey, isUsingNetworkValues, this._store.getCurrentSourceDetails());\n            const initDuration = client_core_1.Diagnostics._enqueueDiagnosticsEvent(this._user, this._logger, this._sdkKey, this._options);\n            return (0, client_core_1.createUpdateDetails)(isUsingNetworkValues, this._store.getSource(), initDuration, this._errorBoundary.getLastSeenErrorAndReset(), this._network.getLastUsedInitUrlAndReset(), this._store.getWarnings());\n        });\n    }\n    /**\n     * Retrieves a synchronous context containing data currently being used by the SDK. Represented as a {@link PrecomputedEvaluationsContext} object.\n     *\n     * @returns {PrecomputedEvaluationsContext} The current synchronous context for the this StatsigClient instance.\n     */\n    getContext() {\n        let user = (0, client_core_1._cloneObject)('StatsigUser', this._user);\n        if (user == null) {\n            client_core_1.Log.error('Failed to clone user');\n            user = {};\n        }\n        return {\n            sdkKey: this._sdkKey,\n            options: this._options,\n            values: this._store.getValues(),\n            user,\n            errorBoundary: this._errorBoundary,\n            session: client_core_1.StatsigSession.get(this._sdkKey),\n            stableID: client_core_1.StableID.get(this._sdkKey),\n            sdkInstanceID: this._sdkInstanceID,\n        };\n    }\n    /**\n     * Retrieves a context handle that computes fields lazily on access.\n     * This is more efficient than getContext() when you only need certain fields,\n     *\n     * @returns {PrecomputedEvaluationsContextHandle} A handle with lazy getters for context fields.\n     */\n    getContextHandle() {\n        return this._contextHandle;\n    }\n    /**\n     * Retrieves the value of a feature gate for the current user, represented as a simple boolean.\n     *\n     * @param {string} name - The name of the feature gate to retrieve.\n     * @param {FeatureGateEvaluationOptions} [options] - Optional. Additional options to customize the method call.\n     * @returns {boolean} - The boolean value representing the gate's current evaluation results for the user.\n     */\n    checkGate(name, options) {\n        return this.getFeatureGate(name, options).value;\n    }\n    /**\n     * Logs an event to the internal logging system. This function allows logging by either passing a fully formed event object or by specifying the event name with optional value and metadata.\n     *\n     * @param {StatsigEvent|string} eventOrName - The event object conforming to the StatsigEvent interface, or the name of the event as a string.\n     * @param {string|number} value - Optional. The value associated with the event, which can be a string or a number. This parameter is ignored if the first parameter is a StatsigEvent object.\n     * @param {Record<string, string>} metadata - Optional. A key-value record containing metadata about the event. This is also ignored if the first parameter is an event object.\n     */\n    logEvent(eventOrName, value, metadata) {\n        const event = typeof eventOrName === 'string'\n            ? {\n                eventName: eventOrName,\n                value,\n                metadata,\n            }\n            : eventOrName;\n        this.$emt({\n            name: 'log_event_called',\n            event,\n        });\n        this._logger.enqueue(Object.assign(Object.assign({}, event), { user: this._user, time: Date.now() }));\n    }\n    /**\n     * Updates the user with analytics only metadata. This will override any existing analytics only metadata.\n     *\n     * @param {Record<string, string | number | boolean>} metadata - The metadata to add to the user.\n     */\n    updateUserWithAnalyticsOnlyMetadata(metadata) {\n        this._user = this._configureUser(Object.assign(Object.assign({}, this._user), { analyticsOnlyMetadata: metadata }), this._options);\n    }\n    _primeReadyRipcord() {\n        this.$on('error', () => {\n            this.loadingStatus === 'Loading' && this._finalizeUpdate(null);\n        });\n    }\n    _initializeAsyncImpl(options) {\n        return __awaiter(this, void 0, void 0, function* () {\n            if (!client_core_1.Storage.isReady()) {\n                yield client_core_1.Storage.isReadyResolver();\n            }\n            this._logger.start();\n            return this.updateUserAsync(this._user, options);\n        });\n    }\n    _createErrorUpdateDetails(error, startTime) {\n        var _a;\n        return (0, client_core_1.createUpdateDetails)(false, this._store.getSource(), performance.now() - startTime, error, null, [...((_a = this._store.getWarnings()) !== null && _a !== void 0 ? _a : [])]);\n    }\n    _finalizeUpdate(values) {\n        this._store.finalize();\n        this._setStatus('Ready', values);\n    }\n    _runPostUpdate(current, user) {\n        this.dataAdapter\n            .getDataAsync(current, user, { priority: 'low' })\n            .catch((err) => {\n            client_core_1.Log.error('An error occurred after update.', err);\n        });\n    }\n    _resetForUser(user) {\n        this._logger.reset();\n        this._store.reset();\n        this._user = this._configureUser(user, this._options);\n    }\n    _configureUser(originalUser, options) {\n        var _a, _b, _c;\n        const user = (0, client_core_1._normalizeUser)(originalUser, options);\n        const stableIdOverride = (_a = user.customIDs) === null || _a === void 0 ? void 0 : _a.stableID;\n        if (stableIdOverride) {\n            const readyPromise = (_c = (_b = this.storageProvider).isReadyResolver) === null || _c === void 0 ? void 0 : _c.call(_b);\n            if (readyPromise) {\n                readyPromise.then(() => client_core_1.StableID.setOverride(stableIdOverride, this._sdkKey), () => client_core_1.StableID.setOverride(stableIdOverride, this._sdkKey));\n            }\n            else {\n                client_core_1.StableID.setOverride(stableIdOverride, this._sdkKey);\n            }\n        }\n        // Only attach first touch metadata if it's not empty\n        if (Object.keys(this._possibleFirstTouchMetadata).length > 0) {\n            user.analyticsOnlyMetadata = Object.assign(Object.assign({}, user.analyticsOnlyMetadata), this._possibleFirstTouchMetadata);\n        }\n        return user;\n    }\n    _getFeatureGateImpl(name, options) {\n        var _a, _b;\n        const { result: evaluation, details } = this._store.getGate(name);\n        this._checkUserHasIdForEvaluation(evaluation === null || evaluation === void 0 ? void 0 : evaluation.id_type, name, 'Gate');\n        this._checkInitializationStatus(details.reason);\n        const gate = (0, client_core_1._makeFeatureGate)(name, details, evaluation);\n        const overridden = (_b = (_a = this.overrideAdapter) === null || _a === void 0 ? void 0 : _a.getGateOverride) === null || _b === void 0 ? void 0 : _b.call(_a, gate, this._user, options);\n        const result = overridden !== null && overridden !== void 0 ? overridden : gate;\n        this._enqueueExposure(name, (0, client_core_1._createGateExposure)(this._user, result, this._store.getExposureMapping()), options);\n        this.$emt({ name: 'gate_evaluation', gate: result });\n        return result;\n    }\n    _getDynamicConfigImpl(name, options) {\n        var _a, _b;\n        const { result: evaluation, details } = this._store.getConfig(name);\n        this._checkUserHasIdForEvaluation(evaluation === null || evaluation === void 0 ? void 0 : evaluation.id_type, name, 'Dynamic config');\n        this._checkInitializationStatus(details.reason);\n        const config = (0, client_core_1._makeDynamicConfig)(name, details, evaluation);\n        const overridden = (_b = (_a = this.overrideAdapter) === null || _a === void 0 ? void 0 : _a.getDynamicConfigOverride) === null || _b === void 0 ? void 0 : _b.call(_a, config, this._user, options);\n        const result = overridden !== null && overridden !== void 0 ? overridden : config;\n        this._enqueueExposure(name, (0, client_core_1._createConfigExposure)(this._user, result, this._store.getExposureMapping()), options);\n        this.$emt({ name: 'dynamic_config_evaluation', dynamicConfig: result });\n        return result;\n    }\n    _getExperimentImpl(name, options) {\n        var _a, _b, _c, _d;\n        const { result: evaluation, details } = this._store.getConfig(name);\n        this._checkUserHasIdForEvaluation(evaluation === null || evaluation === void 0 ? void 0 : evaluation.id_type, name, 'Experiment');\n        this._checkInitializationStatus(details.reason);\n        const experiment = (0, client_core_1._makeExperiment)(name, details, evaluation);\n        if (experiment.__evaluation != null) {\n            experiment.__evaluation.secondary_exposures = (0, client_core_1._mapExposures)((_b = (_a = experiment.__evaluation) === null || _a === void 0 ? void 0 : _a.secondary_exposures) !== null && _b !== void 0 ? _b : [], this._store.getExposureMapping());\n        }\n        const overridden = (_d = (_c = this.overrideAdapter) === null || _c === void 0 ? void 0 : _c.getExperimentOverride) === null || _d === void 0 ? void 0 : _d.call(_c, experiment, this._user, options);\n        const result = overridden !== null && overridden !== void 0 ? overridden : experiment;\n        this._enqueueExposure(name, (0, client_core_1._createConfigExposure)(this._user, result, this._store.getExposureMapping()), options);\n        this.$emt({ name: 'experiment_evaluation', experiment: result });\n        return result;\n    }\n    _getConfigListImpl() {\n        return this._store.getConfigList();\n    }\n    _getLayerImpl(name, options) {\n        var _a, _b, _c;\n        const { result: evaluation, details } = this._store.getLayer(name);\n        const layer = (0, client_core_1._makeLayer)(name, details, evaluation);\n        const overridden = (_b = (_a = this.overrideAdapter) === null || _a === void 0 ? void 0 : _a.getLayerOverride) === null || _b === void 0 ? void 0 : _b.call(_a, layer, this._user, options);\n        if (options === null || options === void 0 ? void 0 : options.disableExposureLog) {\n            this._logger.incrementNonExposureCount(name);\n        }\n        const result = (0, client_core_1._mergeOverride)(layer, overridden, (_c = overridden === null || overridden === void 0 ? void 0 : overridden.__value) !== null && _c !== void 0 ? _c : layer.__value, (param) => {\n            if (options === null || options === void 0 ? void 0 : options.disableExposureLog) {\n                return;\n            }\n            this._enqueueExposure(name, (0, client_core_1._createLayerParameterExposure)(this._user, result, param, this._store.getExposureMapping()), options);\n        });\n        this.$emt({ name: 'layer_evaluation', layer: result });\n        return result;\n    }\n    _getParameterStoreImpl(name, options) {\n        var _a, _b;\n        const { result: configuration, details } = this._store.getParamStore(name);\n        this._logger.incrementNonExposureCount(name);\n        const paramStore = {\n            name,\n            details: details,\n            __configuration: configuration,\n            get: (0, ParamStoreGetterFactory_1._makeParamStoreGetter)(this, configuration, options),\n        };\n        const overridden = (_b = (_a = this.overrideAdapter) === null || _a === void 0 ? void 0 : _a.getParamStoreOverride) === null || _b === void 0 ? void 0 : _b.call(_a, paramStore, options);\n        if (overridden != null) {\n            paramStore.__configuration = overridden.config;\n            paramStore.details = overridden.details;\n            paramStore.get = (0, ParamStoreGetterFactory_1._makeParamStoreGetter)(this, overridden.config, options);\n        }\n        return paramStore;\n    }\n    _checkUserHasIdForEvaluation(idType, name, type) {\n        if (!idType) {\n            return;\n        }\n        if (!(0, client_core_1._getUnitIDFromUser)(this._user, idType)) {\n            client_core_1.Log.warn(`The user does not have the required id_type \"${idType}\" for ${type} \"${name}\"`);\n        }\n    }\n    _checkInitializationStatus(reason) {\n        if (reason === 'Uninitialized' || reason.startsWith('Loading')) {\n            client_core_1.Log.warn(`SDK initialization has not completed. Reason: ${reason}`);\n        }\n    }\n}\nexports.default = StatsigClient;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n    return new (P || (P = Promise))(function (resolve, reject) {\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\n    });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StatsigEvaluationsDataAdapter = void 0;\nconst client_core_1 = require(\"@statsig/client-core\");\nconst Network_1 = require(\"./Network\");\nclass StatsigEvaluationsDataAdapter extends client_core_1.DataAdapterCore {\n    constructor() {\n        super('EvaluationsDataAdapter', 'evaluations');\n        this._network = null;\n        this._options = null;\n    }\n    attach(sdkKey, options, network) {\n        super.attach(sdkKey, options, network);\n        if (network !== null && network instanceof Network_1.default) {\n            this._network = network;\n        }\n        else {\n            this._network = new Network_1.default(options !== null && options !== void 0 ? options : {});\n        }\n    }\n    getDataAsync(current, user, options) {\n        return this._getDataAsyncImpl(current, (0, client_core_1._normalizeUser)(user, this._options), options);\n    }\n    prefetchData(user, options) {\n        return this._prefetchDataImpl(user, options);\n    }\n    setData(data) {\n        const values = (0, client_core_1._typedJsonParse)(data, 'has_updates', 'data');\n        if (values && 'user' in values) {\n            super.setData(data, values.user);\n        }\n        else {\n            client_core_1.Log.error('StatsigUser not found. You may be using an older server SDK version. Please upgrade your SDK or use setDataLegacy.');\n        }\n    }\n    setDataLegacy(data, user) {\n        super.setData(data, user);\n    }\n    _fetchFromNetwork(current, user, options, isCacheValidFor204) {\n        return __awaiter(this, void 0, void 0, function* () {\n            var _a;\n            const result = yield ((_a = this._network) === null || _a === void 0 ? void 0 : _a.fetchEvaluations(this._getSdkKey(), current, options === null || options === void 0 ? void 0 : options.priority, user, isCacheValidFor204));\n            return result !== null && result !== void 0 ? result : null;\n        });\n    }\n    _getCacheKey(user) {\n        var _a;\n        const key = (0, client_core_1._getStorageKey)(this._getSdkKey(), user, (_a = this._options) === null || _a === void 0 ? void 0 : _a.customUserCacheKeyFunc);\n        return `${client_core_1.DataAdapterCachePrefix}.${this._cacheSuffix}.${key}`;\n    }\n    _isCachedResultValidFor204(result, user) {\n        return (result.fullUserHash != null &&\n            result.fullUserHash === (0, client_core_1._getFullUserHash)(user));\n    }\n}\nexports.StatsigEvaluationsDataAdapter = StatsigEvaluationsDataAdapter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.V1InitializeContainer = void 0;\nconst client_core_1 = require(\"@statsig/client-core\");\nclass V1InitializeContainer {\n    constructor(_values) {\n        this._values = _values;\n    }\n    getGate(name) {\n        return this._getResultFromLookup(this._values.feature_gates, name);\n    }\n    getConfig(name) {\n        return this._getResultFromLookup(this._values.dynamic_configs, name);\n    }\n    getLayer(name) {\n        return this._getResultFromLookup(this._values.layer_configs, name);\n    }\n    getParamStore(name) {\n        return this._getResultFromLookup(this._values.param_stores, name);\n    }\n    getConfigList() {\n        return Object.keys(this._values.dynamic_configs);\n    }\n    getExposureMapping() {\n        return this._values.exposures;\n    }\n    _getResultFromLookup(lookup, name) {\n        var _a, _b;\n        if (!lookup) {\n            return null;\n        }\n        return (_b = (_a = lookup[name]) !== null && _a !== void 0 ? _a : lookup[(0, client_core_1._DJB2)(name)]) !== null && _b !== void 0 ? _b : null;\n    }\n}\nexports.V1InitializeContainer = V1InitializeContainer;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.V2InitializeContainer = void 0;\nconst client_core_1 = require(\"@statsig/client-core\");\nclass V2InitializeContainer {\n    constructor(_values) {\n        this._values = _values;\n    }\n    getGate(name) {\n        var _a, _b, _c;\n        const evalV2 = this._getResultFromLookup(this._values.feature_gates, name);\n        if (!evalV2) {\n            return null;\n        }\n        return {\n            name: name,\n            value: evalV2.v === true,\n            rule_id: (_a = evalV2.r) !== null && _a !== void 0 ? _a : 'default',\n            secondary_exposures: (_b = evalV2.s) !== null && _b !== void 0 ? _b : [],\n            id_type: (_c = evalV2.i) !== null && _c !== void 0 ? _c : '',\n        };\n    }\n    getConfig(name) {\n        var _a, _b, _c, _d;\n        const evalV2 = this._getResultFromLookup(this._values.dynamic_configs, name);\n        if (!evalV2) {\n            return null;\n        }\n        return {\n            name: name,\n            value: (_a = this._values.values[evalV2.v]) !== null && _a !== void 0 ? _a : {},\n            rule_id: evalV2.r,\n            secondary_exposures: (_b = evalV2.s) !== null && _b !== void 0 ? _b : [],\n            id_type: (_c = evalV2.i) !== null && _c !== void 0 ? _c : '',\n            is_user_in_experiment: evalV2.ue === true ? true : false,\n            passed: evalV2.p === true,\n            group_name: (_d = evalV2.gn) !== null && _d !== void 0 ? _d : undefined,\n            is_experiment_active: evalV2.ea === true ? true : false,\n            group: evalV2.r,\n            is_device_based: evalV2.i === 'stableID',\n        };\n    }\n    getLayer(name) {\n        var _a, _b, _c, _d, _e, _f;\n        const evalV2 = this._getResultFromLookup(this._values.layer_configs, name);\n        if (!evalV2) {\n            return null;\n        }\n        return {\n            name: name,\n            value: (_a = this._values.values[evalV2.v]) !== null && _a !== void 0 ? _a : {},\n            rule_id: evalV2.r,\n            secondary_exposures: (_b = evalV2.s) !== null && _b !== void 0 ? _b : [],\n            is_user_in_experiment: evalV2.ue === true ? true : false,\n            group_name: (_c = evalV2.gn) !== null && _c !== void 0 ? _c : undefined,\n            is_experiment_active: evalV2.ea === true ? true : false,\n            group: evalV2.r,\n            is_device_based: evalV2.i === 'stableID',\n            allocated_experiment_name: (_d = evalV2.ae) !== null && _d !== void 0 ? _d : '',\n            explicit_parameters: (_e = evalV2.ep) !== null && _e !== void 0 ? _e : [],\n            undelegated_secondary_exposures: (_f = evalV2.us) !== null && _f !== void 0 ? _f : [],\n            parameter_rule_ids: evalV2.pr,\n        };\n    }\n    getParamStore(name) {\n        return this._getResultFromLookup(this._values.param_stores, name);\n    }\n    getConfigList() {\n        return Object.keys(this._values.dynamic_configs);\n    }\n    getExposureMapping() {\n        return this._values.exposures;\n    }\n    _getResultFromLookup(lookup, name) {\n        var _a, _b;\n        if (!lookup) {\n            return null;\n        }\n        return (_b = (_a = lookup[name]) !== null && _a !== void 0 ? _a : lookup[(0, client_core_1._DJB2)(name)]) !== null && _b !== void 0 ? _b : null;\n    }\n}\nexports.V2InitializeContainer = V2InitializeContainer;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StatsigClient = void 0;\nconst client_core_1 = require(\"@statsig/client-core\");\nconst StatsigClient_1 = require(\"./StatsigClient\");\nexports.StatsigClient = StatsigClient_1.default;\n__exportStar(require(\"@statsig/client-core\"), exports);\nconst __STATSIG__ = Object.assign((0, client_core_1._getStatsigGlobal)(), {\n    StatsigClient: StatsigClient_1.default,\n});\nexports.default = __STATSIG__;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AutoCapture = exports.runStatsigAutoCapture = exports.StatsigAutoCapturePlugin = void 0;\nconst client_core_1 = require(\"@statsig/client-core\");\nconst AutoCaptureEvent_1 = require(\"./AutoCaptureEvent\");\nconst ConsoleLogManager_1 = require(\"./ConsoleLogManager\");\nconst DeadClickManager_1 = require(\"./DeadClickManager\");\nconst EngagementManager_1 = require(\"./EngagementManager\");\nconst RageClickManager_1 = require(\"./RageClickManager\");\nconst WebVitalsManager_1 = require(\"./WebVitalsManager\");\nconst commonUtils_1 = require(\"./utils/commonUtils\");\nconst eventUtils_1 = require(\"./utils/eventUtils\");\nconst metadataUtils_1 = require(\"./utils/metadataUtils\");\nconst AUTO_EVENT_MAPPING = {\n    submit: AutoCaptureEvent_1.AutoCaptureEventName.FORM_SUBMIT,\n    click: AutoCaptureEvent_1.AutoCaptureEventName.CLICK,\n    copy: AutoCaptureEvent_1.AutoCaptureEventName.COPY,\n    cut: AutoCaptureEvent_1.AutoCaptureEventName.COPY,\n};\nclass StatsigAutoCapturePlugin {\n    constructor(_options) {\n        this._options = _options;\n        this.__plugin = 'auto-capture';\n    }\n    bind(client) {\n        runStatsigAutoCapture(client, this._options);\n    }\n}\nexports.StatsigAutoCapturePlugin = StatsigAutoCapturePlugin;\nfunction runStatsigAutoCapture(client, options) {\n    var _a;\n    // Early exit for server-side rendering - plugins should only run in browser\n    if ((0, client_core_1._isServerEnv)()) {\n        return null;\n    }\n    const { sdkKey } = client.getContextHandle();\n    if (!(0, client_core_1._isServerEnv)()) {\n        const global = (0, client_core_1._getStatsigGlobal)();\n        const instances = (_a = global.acInstances) !== null && _a !== void 0 ? _a : {};\n        if (instances[sdkKey]) {\n            return instances[sdkKey];\n        }\n    }\n    return new AutoCapture(client, options);\n}\nexports.runStatsigAutoCapture = runStatsigAutoCapture;\nclass AutoCapture {\n    constructor(_client, options) {\n        var _a, _b, _c, _d;\n        this._client = _client;\n        this._disabledEvents = {};\n        this._previousLoggedPageViewUrl = null;\n        this._hasLoggedPageViewEnd = false;\n        this._pageViewLogged = false;\n        const { sdkKey, errorBoundary, values } = _client.getContextHandle();\n        this._options = options;\n        this._disabledEvents = (_b = (_a = values === null || values === void 0 ? void 0 : values.auto_capture_settings) === null || _a === void 0 ? void 0 : _a.disabled_events) !== null && _b !== void 0 ? _b : {};\n        this._errorBoundary = errorBoundary;\n        this._errorBoundary.wrap(this, 'autoCapture:');\n        this._client.$on('values_updated', () => {\n            var _a, _b;\n            const values = this._client.getContextHandle().values;\n            this._disabledEvents =\n                (_b = (_a = values === null || values === void 0 ? void 0 : values.auto_capture_settings) === null || _a === void 0 ? void 0 : _a.disabled_events) !== null && _b !== void 0 ? _b : this._disabledEvents;\n        });\n        this._engagementManager = new EngagementManager_1.EngagementManager();\n        this._rageClickManager = new RageClickManager_1.default();\n        this._webVitalsManager = new WebVitalsManager_1.WebVitalsManager(this._enqueueAutoCapture.bind(this), errorBoundary);\n        this._deadClickManager = new DeadClickManager_1.default(this._enqueueAutoCapture.bind(this), errorBoundary);\n        this._consoleLogManager = new ConsoleLogManager_1.ConsoleLogManager(this._enqueueAutoCapture.bind(this), errorBoundary, (_c = options === null || options === void 0 ? void 0 : options.consoleLogAutoCaptureSettings) !== null && _c !== void 0 ? _c : { enabled: false });\n        this._eventFilterFunc = options === null || options === void 0 ? void 0 : options.eventFilterFunc;\n        const doc = (0, client_core_1._getDocumentSafe)();\n        if (!(0, client_core_1._isServerEnv)()) {\n            __STATSIG__ = (0, client_core_1._getStatsigGlobal)();\n            const instances = (_d = __STATSIG__.acInstances) !== null && _d !== void 0 ? _d : {};\n            instances[sdkKey] = this;\n            __STATSIG__.acInstances = instances;\n        }\n        if ((doc === null || doc === void 0 ? void 0 : doc.readyState) === 'loading') {\n            doc.addEventListener('DOMContentLoaded', () => this._initialize());\n            return;\n        }\n        this._initialize();\n    }\n    _addEventHandlers() {\n        const win = (0, client_core_1._getWindowSafe)();\n        const doc = (0, client_core_1._getDocumentSafe)();\n        if (!win || !doc) {\n            return;\n        }\n        const eventHandler = (event, userAction = true) => {\n            var _a;\n            const e = event || ((_a = (0, client_core_1._getWindowSafe)()) === null || _a === void 0 ? void 0 : _a.event);\n            this._autoLogEvent(e);\n            if (userAction) {\n                this._engagementManager.bumpInactiveTimer();\n            }\n            if (e.type === 'click' && e instanceof MouseEvent) {\n                const isRageClick = this._rageClickManager.isRageClick(e.clientX, e.clientY, Date.now());\n                if (isRageClick) {\n                    this._logRageClick(e);\n                }\n            }\n        };\n        (0, commonUtils_1._registerEventHandler)(doc, 'click', (e) => eventHandler(e));\n        (0, commonUtils_1._registerEventHandler)(doc, 'submit', (e) => eventHandler(e));\n        (0, commonUtils_1._registerEventHandler)(doc, 'copy', (e) => eventHandler(e));\n        (0, commonUtils_1._registerEventHandler)(doc, 'cut', (e) => eventHandler(e));\n        (0, commonUtils_1._registerEventHandler)(win, 'error', (e) => eventHandler(e, false));\n        (0, commonUtils_1._registerEventHandler)(win, 'pagehide', () => this._tryLogPageViewEnd());\n        (0, commonUtils_1._registerEventHandler)(win, 'beforeunload', () => this._tryLogPageViewEnd());\n    }\n    _addPageViewTracking() {\n        const win = (0, client_core_1._getWindowSafe)();\n        const doc = (0, client_core_1._getDocumentSafe)();\n        if (!win || !doc) {\n            return;\n        }\n        (0, commonUtils_1._registerEventHandler)(win, 'popstate', () => this._tryLogPageView('popstate'));\n        if (win.history &&\n            typeof Proxy === 'function' &&\n            typeof win.history.pushState === 'function') {\n            try {\n                const originalPushState = win.history.pushState;\n                win.history.pushState = new Proxy(originalPushState, {\n                    apply: (target, thisArg, [state, unused, url]) => {\n                        const result = target.apply(thisArg, [state, unused, url]);\n                        this._tryLogPageView('pushstate');\n                        return result;\n                    },\n                });\n            }\n            catch (e) {\n                // Silently fail if Proxy creation is not supported\n            }\n        }\n        if (win.history &&\n            typeof Proxy === 'function' &&\n            typeof win.history.replaceState === 'function') {\n            try {\n                const originalReplaceState = win.history.replaceState;\n                win.history.replaceState = new Proxy(originalReplaceState, {\n                    apply: (target, thisArg, [state, unused, url]) => {\n                        const result = target.apply(thisArg, [state, unused, url]);\n                        this._tryLogPageView('replacestate');\n                        return result;\n                    },\n                });\n            }\n            catch (e) {\n                // Silently fail if Proxy creation is not supported (important-comment)\n            }\n        }\n        this._tryLogPageView();\n    }\n    _autoLogEvent(event) {\n        var _a, _b, _c, _d;\n        const eventType = (_a = event.type) === null || _a === void 0 ? void 0 : _a.toLowerCase();\n        if (eventType === 'error' && event instanceof ErrorEvent) {\n            this._logError(event);\n            return;\n        }\n        const target = (0, commonUtils_1._getTargetNode)(event);\n        if (!target) {\n            return;\n        }\n        const eventName = AUTO_EVENT_MAPPING[eventType];\n        if (!eventName) {\n            return;\n        }\n        const isCopyEvent = eventName === AutoCaptureEvent_1.AutoCaptureEventName.COPY;\n        if (!(0, commonUtils_1._shouldLogEvent)(event, target, isCopyEvent)) {\n            return;\n        }\n        const metadata = {};\n        if (isCopyEvent) {\n            const selectedText = (_c = (_b = (0, client_core_1._getWindowSafe)()) === null || _b === void 0 ? void 0 : _b.getSelection()) === null || _c === void 0 ? void 0 : _c.toString();\n            if (!selectedText) {\n                return;\n            }\n            if ((_d = this._options) === null || _d === void 0 ? void 0 : _d.captureCopyText) {\n                metadata['selectedText'] = (0, commonUtils_1._sanitizeString)(selectedText);\n            }\n            const clipType = event.type || 'clipboard';\n            metadata['clipType'] = clipType;\n        }\n        const { value, metadata: eventMetadata } = (0, eventUtils_1._gatherEventData)(target);\n        if (eventMetadata['isOutbound']) {\n            this._engagementManager.setMeaningfulEngagementOccurred(true);\n        }\n        Object.assign(metadata, eventMetadata);\n        const allMetadata = (0, metadataUtils_1._gatherAllMetadata)((0, commonUtils_1._getSafeUrl)());\n        this._enqueueAutoCapture(eventName, value, Object.assign(Object.assign({}, allMetadata), metadata));\n    }\n    _initialize() {\n        this._webVitalsManager.startTracking();\n        this._deadClickManager.startTracking();\n        this._consoleLogManager.startTracking();\n        this._engagementManager.startInactivityTracking(() => this._tryLogPageViewEnd(true));\n        this._addEventHandlers();\n        this._addPageViewTracking();\n        this._logSessionStart();\n        this._logPerformance();\n    }\n    _logError(event) {\n        const error = (event === null || event === void 0 ? void 0 : event.error) || {};\n        let errorStr = error;\n        if (typeof error === 'object') {\n            try {\n                errorStr = JSON.stringify(error);\n            }\n            catch (e) {\n                errorStr =\n                    typeof (error === null || error === void 0 ? void 0 : error.toString) === 'function'\n                        ? error.toString()\n                        : 'Unknown Error';\n            }\n        }\n        this._enqueueAutoCapture(AutoCaptureEvent_1.AutoCaptureEventName.ERROR, event.message, {\n            message: event.message,\n            filename: event.filename,\n            lineno: event.lineno,\n            colno: event.colno,\n            error_str: errorStr,\n        });\n    }\n    _logSessionStart() {\n        const session = this._client.getContextHandle().getSession();\n        try {\n            if (!this._isNewSession(session)) {\n                return;\n            }\n            this._enqueueAutoCapture(AutoCaptureEvent_1.AutoCaptureEventName.SESSION_START, (0, commonUtils_1._getSanitizedPageUrl)(), Object.assign({ sessionID: session.data.sessionID }, (0, metadataUtils_1._gatherAllMetadata)((0, commonUtils_1._getSafeUrl)())), { flushImmediately: true });\n        }\n        catch (err) {\n            this._errorBoundary.logError('AC::logSession', err);\n        }\n    }\n    _tryLogPageView(navigationType) {\n        if (this._webVitalsManager.flushPendingMetrics()) {\n            this._flushImmediately();\n        }\n        const url = (0, commonUtils_1._getSafeUrl)();\n        const last = this._previousLoggedPageViewUrl;\n        if (last && url.pathname === last.pathname) {\n            return;\n        }\n        this._engagementManager.setLastPageViewTime(Date.now());\n        this._hasLoggedPageViewEnd = false;\n        const payload = (0, metadataUtils_1._gatherAllMetadata)(url);\n        if (navigationType) {\n            payload['navigation_type'] = navigationType;\n        }\n        if (this._previousLoggedPageViewUrl) {\n            payload['last_page_view_url'] = this._previousLoggedPageViewUrl.href;\n        }\n        if (!this._pageViewLogged) {\n            this._updateClientWithPossibleFirstTouchMetadata();\n            this._pageViewLogged = true;\n        }\n        this._enqueueAutoCapture(AutoCaptureEvent_1.AutoCaptureEventName.PAGE_VIEW, (0, commonUtils_1._getSanitizedPageUrl)(), payload, {\n            flushImmediately: true,\n            addNewSessionMetadata: true,\n        });\n        this._previousLoggedPageViewUrl = url;\n        this._engagementManager.bumpInactiveTimer();\n    }\n    _tryLogPageViewEnd(dueToInactivity = false) {\n        if (this._webVitalsManager.flushPendingMetrics()) {\n            this._flushImmediately();\n        }\n        if (this._hasLoggedPageViewEnd) {\n            return;\n        }\n        this._hasLoggedPageViewEnd = true;\n        this._enqueueAutoCapture(AutoCaptureEvent_1.AutoCaptureEventName.PAGE_VIEW_END, (0, commonUtils_1._getSanitizedPageUrl)(), Object.assign(Object.assign({}, this._engagementManager.getPageViewEndMetadata()), { dueToInactivity }), {\n            flushImmediately: true,\n        });\n    }\n    _logRageClick(e) {\n        if (!(0, commonUtils_1._shouldLogEvent)(e, e.target)) {\n            return;\n        }\n        const { value, metadata } = (0, eventUtils_1._gatherEventData)(e.target);\n        this._enqueueAutoCapture(AutoCaptureEvent_1.AutoCaptureEventName.RAGE_CLICK, value, Object.assign(Object.assign({ x: e.clientX, y: e.clientY, timestamp: Date.now() }, (0, metadataUtils_1._gatherAllMetadata)((0, commonUtils_1._getSafeUrl)())), metadata));\n    }\n    _logPerformance() {\n        const win = (0, client_core_1._getWindowSafe)();\n        if (!win || !win.performance) {\n            return;\n        }\n        if (typeof (win === null || win === void 0 ? void 0 : win.performance) === 'undefined' ||\n            typeof win.performance.getEntriesByType !== 'function' ||\n            typeof win.performance.getEntriesByName !== 'function') {\n            return;\n        }\n        setTimeout(() => {\n            const metadata = {};\n            const navEntries = win.performance.getEntriesByType('navigation');\n            if (navEntries &&\n                navEntries.length > 0 &&\n                navEntries[0] instanceof PerformanceNavigationTiming) {\n                const nav = navEntries[0];\n                metadata['load_time_ms'] = nav.duration;\n                metadata['dom_interactive_time_ms'] =\n                    nav.domInteractive - nav.startTime;\n                metadata['redirect_count'] = nav.redirectCount;\n                metadata['transfer_bytes'] = nav.transferSize;\n            }\n            const fpEntries = win.performance.getEntriesByName('first-contentful-paint');\n            if (fpEntries &&\n                fpEntries.length > 0 &&\n                fpEntries[0] instanceof PerformancePaintTiming) {\n                metadata['first_contentful_paint_time_ms'] = fpEntries[0].startTime;\n            }\n            this._enqueueAutoCapture(AutoCaptureEvent_1.AutoCaptureEventName.PERFORMANCE, (0, commonUtils_1._getSanitizedPageUrl)(), Object.assign(Object.assign({}, metadata), (0, metadataUtils_1._getNetworkInfo)()));\n        }, 1);\n    }\n    _enqueueAutoCapture(eventName, value, metadata, options) {\n        var _a, _b, _c;\n        if (!value) {\n            return;\n        }\n        const subname = eventName.slice('auto_capture::'.length);\n        if (this._disabledEvents[eventName] || this._disabledEvents[subname]) {\n            return;\n        }\n        const isUserAction = (0, AutoCaptureEvent_1.isUserActionAutoCaptureEvent)(eventName);\n        const session = this._client.getContextHandle().getSession(isUserAction);\n        try {\n            const logMetadata = Object.assign({ sessionID: session.data.sessionID, page_url: (_c = (_b = (_a = (0, client_core_1._getWindowSafe)()) === null || _a === void 0 ? void 0 : _a.location) === null || _b === void 0 ? void 0 : _b.href) !== null && _c !== void 0 ? _c : '' }, metadata);\n            if (options === null || options === void 0 ? void 0 : options.addNewSessionMetadata) {\n                logMetadata['isNewSession'] = String(this._isNewSession(session));\n            }\n            const event = {\n                eventName,\n                value,\n                metadata: logMetadata,\n            };\n            if (this._eventFilterFunc && !this._eventFilterFunc(event)) {\n                return;\n            }\n            this._client.logEvent(event);\n            if (options === null || options === void 0 ? void 0 : options.flushImmediately) {\n                this._flushImmediately();\n            }\n        }\n        catch (err) {\n            this._errorBoundary.logError('AC::enqueue', err);\n        }\n    }\n    _updateClientWithPossibleFirstTouchMetadata() {\n        const typedClient = this._client;\n        typedClient._possibleFirstTouchMetadata =\n            (0, metadataUtils_1._getPossibleFirstTouchMetadata)((0, commonUtils_1._getSafeUrl)());\n        // Only update user if first touch metadata is not empty\n        if (Object.keys(typedClient._possibleFirstTouchMetadata).length > 0) {\n            typedClient._user = Object.assign(Object.assign({}, typedClient._user), { analyticsOnlyMetadata: Object.assign(Object.assign({}, typedClient._possibleFirstTouchMetadata), typedClient._user.analyticsOnlyMetadata) });\n        }\n    }\n    _flushImmediately() {\n        this._client.flush().catch((e) => {\n            client_core_1.Log.error(e);\n        });\n    }\n    _isNewSession(session) {\n        // within the last second\n        return Math.abs(session.data.startTime - Date.now()) < 1000;\n    }\n    static getAllMetadata() {\n        return (0, metadataUtils_1._gatherAllMetadata)((0, commonUtils_1._getSafeUrl)());\n    }\n}\nexports.AutoCapture = AutoCapture;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isUserActionAutoCaptureEvent = exports.AutoCaptureEventName = void 0;\nexports.AutoCaptureEventName = {\n    PAGE_VIEW: 'auto_capture::page_view',\n    PAGE_VIEW_END: 'auto_capture::page_view_end',\n    ERROR: 'auto_capture::error',\n    SESSION_START: 'auto_capture::session_start',\n    PERFORMANCE: 'auto_capture::performance',\n    FORM_SUBMIT: 'auto_capture::form_submit',\n    CLICK: 'auto_capture::click',\n    RAGE_CLICK: 'auto_capture::rage_click',\n    WEB_VITALS: 'auto_capture::web_vitals',\n    DEAD_CLICK: 'auto_capture::dead_click',\n    COPY: 'auto_capture::copy',\n    // log line is a special event name used to populate logs metrics explorer\n    CONSOLE_LOG: 'statsig::log_line',\n};\nconst USER_ACTION_EVENTS = new Set([\n    exports.AutoCaptureEventName.PAGE_VIEW,\n    exports.AutoCaptureEventName.PAGE_VIEW_END,\n    exports.AutoCaptureEventName.SESSION_START,\n    exports.AutoCaptureEventName.FORM_SUBMIT,\n    exports.AutoCaptureEventName.CLICK,\n    exports.AutoCaptureEventName.RAGE_CLICK,\n    exports.AutoCaptureEventName.COPY,\n]);\nconst isUserActionAutoCaptureEvent = (eventName) => {\n    return USER_ACTION_EVENTS.has(eventName);\n};\nexports.isUserActionAutoCaptureEvent = isUserActionAutoCaptureEvent;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConsoleLogManager = void 0;\n/* eslint-disable no-console */\nconst client_core_1 = require(\"@statsig/client-core\");\nconst AutoCaptureEvent_1 = require(\"./AutoCaptureEvent\");\nconst commonUtils_1 = require(\"./utils/commonUtils\");\nconst consoleLogsUtils_1 = require(\"./utils/consoleLogsUtils\");\nconst metadataUtils_1 = require(\"./utils/metadataUtils\");\nconst ConsoleLogPriority = {\n    trace: 10,\n    debug: 20,\n    log: 30, // log & info are the same priority\n    info: 30,\n    warn: 40,\n    error: 50,\n};\nconst DEFAULT_MAX_KEYS = 50;\nconst DEFAULT_MAX_DEPTH = 10;\nconst DEFAULT_MAX_STRING_LENGTH = 2500;\nclass ConsoleLogManager {\n    constructor(_enqueueFn, _errorBoundary, _options) {\n        var _a, _b, _c, _d;\n        this._enqueueFn = _enqueueFn;\n        this._errorBoundary = _errorBoundary;\n        this._options = _options;\n        this._restoreFns = [];\n        this._isTracking = false;\n        this._logLevel = 'info';\n        this.__source = 'js-auto-capture';\n        this._logLevel = (_a = this._options.logLevel) !== null && _a !== void 0 ? _a : 'info';\n        this._maxKeys = (_b = this._options.maxKeys) !== null && _b !== void 0 ? _b : DEFAULT_MAX_KEYS;\n        this._maxDepth = (_c = this._options.maxDepth) !== null && _c !== void 0 ? _c : DEFAULT_MAX_DEPTH;\n        this._maxStringLength =\n            (_d = this._options.maxStringLength) !== null && _d !== void 0 ? _d : DEFAULT_MAX_STRING_LENGTH;\n    }\n    startTracking() {\n        try {\n            if (this._isTracking || !this._options.enabled)\n                return;\n            const win = (0, client_core_1._getWindowSafe)();\n            if (!win)\n                return;\n            this._patchConsole();\n            this._isTracking = true;\n        }\n        catch (error) {\n            client_core_1.Log.error('Error starting console log tracking', error);\n            this._errorBoundary.logError('autoCapture:ConsoleLogManager', error);\n        }\n    }\n    stopTracking() {\n        if (!this._isTracking)\n            return;\n        this._restoreFns.forEach((restore) => restore());\n        this._restoreFns = [];\n        this._isTracking = false;\n    }\n    _patchConsole() {\n        Object.entries(ConsoleLogPriority).forEach(([level, priority]) => {\n            if (priority < ConsoleLogPriority[this._logLevel])\n                return;\n            if (!console[level])\n                return;\n            const original = console[level].bind(console);\n            let inStack = false;\n            const restore = (0, commonUtils_1.wrapFunctionWithRestore)(console, level, (originalFn) => {\n                return (...args) => {\n                    originalFn(...args);\n                    if (inStack)\n                        return;\n                    inStack = true;\n                    try {\n                        const payload = args.map((a) => (0, consoleLogsUtils_1._safeStringify)(a, this._maxKeys, this._maxDepth, this._maxStringLength));\n                        const trace = (0, consoleLogsUtils_1._getStackTrace)();\n                        this._enqueueConsoleLog(level, payload, trace);\n                    }\n                    catch (err) {\n                        original('console observer error:', err, ...args);\n                        this._errorBoundary.logError('autoCapture:ConsoleLogManager', err);\n                    }\n                    finally {\n                        inStack = false;\n                    }\n                };\n            });\n            this._restoreFns.push(restore);\n        });\n    }\n    _enqueueConsoleLog(level, payload, trace) {\n        if (!this._shouldLog(payload))\n            return;\n        const metadata = Object.assign({ status: level === 'log' ? 'info' : level, log_level: level, payload,\n            trace, timestamp: Date.now(), source: this.__source }, (0, metadataUtils_1._gatherAllMetadata)((0, commonUtils_1._getSafeUrl)()));\n        this._enqueueFn(AutoCaptureEvent_1.AutoCaptureEventName.CONSOLE_LOG, payload.join(' '), metadata);\n    }\n    _shouldLog(payload) {\n        for (const p of payload) {\n            if (p.includes('[Statsig]')) {\n                return false;\n            }\n        }\n        if (!this._options.sampleRate ||\n            typeof this._options.sampleRate !== 'number' ||\n            this._options.sampleRate <= 0 ||\n            this._options.sampleRate >= 1) {\n            return true;\n        }\n        return Math.random() < this._options.sampleRate;\n    }\n}\nexports.ConsoleLogManager = ConsoleLogManager;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DeadClickConfig = void 0;\nconst client_core_1 = require(\"@statsig/client-core\");\nconst AutoCaptureEvent_1 = require(\"./AutoCaptureEvent\");\nconst commonUtils_1 = require(\"./utils/commonUtils\");\nconst eventUtils_1 = require(\"./utils/eventUtils\");\nconst metadataUtils_1 = require(\"./utils/metadataUtils\");\nexports.DeadClickConfig = {\n    CLICK_CHECK_TIMEOUT: 1000,\n    SCROLL_DELAY_MS: 100,\n    SELECTION_CHANGE_DELAY_MS: 100,\n    MUTATION_DELAY_MS: 2500,\n    ABSOLUTE_DEAD_CLICK_TIMEOUT: 2750,\n};\n// A dead click is a click that fires an event but produces no meaningful change within a set timeframe.\nclass DeadClickManager {\n    constructor(_enqueueFn, _errorBoundary) {\n        this._enqueueFn = _enqueueFn;\n        this._errorBoundary = _errorBoundary;\n        this._lastMutationTime = 0;\n        this._lastSelectionChangeTime = 0;\n        this._clicks = [];\n        this._deadClickConfig = exports.DeadClickConfig;\n        this._handleScroll = (0, commonUtils_1.throttle)(() => {\n            const scrollTime = Date.now();\n            this._clicks.forEach((click) => {\n                if (!click.scrollDelayMs) {\n                    click.scrollDelayMs = scrollTime - click.timestamp;\n                }\n            });\n        }, 50);\n    }\n    startTracking() {\n        try {\n            const win = (0, client_core_1._getWindowSafe)();\n            if (!win) {\n                return;\n            }\n            // `capture: true` - Needed to listen to scroll events on all scrollable elements, not just the window.\n            // docs: https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#usecapture\n            //\n            // `passive: true` - Indicates the scroll handler won’t call preventDefault(),\n            // allowing the browser to optimize scrolling performance by not blocking it.\n            // docs: https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#passive\n            win.addEventListener('click', (event) => this._handleClick(event), {\n                capture: true,\n            });\n            win.addEventListener('scroll', () => this._handleScroll(), {\n                capture: true,\n                passive: true,\n            });\n            win.addEventListener('selectionchange', () => this._handleSelectionChange());\n            this._setupMutationObserver();\n        }\n        catch (error) {\n            client_core_1.Log.error('Error starting dead click tracking', error);\n            this._errorBoundary.logError('autoCapture:DeadClickManager', error);\n        }\n    }\n    _handleClick(event) {\n        var _a, _b;\n        const eventTarget = event.target;\n        if (!eventTarget) {\n            return;\n        }\n        const click = {\n            timestamp: Date.now(),\n            eventTarget,\n        };\n        if (!commonUtils_1.interactiveElements.includes((_a = eventTarget === null || eventTarget === void 0 ? void 0 : eventTarget.tagName) === null || _a === void 0 ? void 0 : _a.toLowerCase())) {\n            this._clicks.push(click);\n        }\n        if (this._clicks.length && !this._clickCheckTimer) {\n            this._clickCheckTimer = (_b = (0, client_core_1._getWindowSafe)()) === null || _b === void 0 ? void 0 : _b.setTimeout(() => {\n                this._checkForDeadClick();\n            }, this._deadClickConfig.CLICK_CHECK_TIMEOUT);\n        }\n    }\n    _handleSelectionChange() {\n        this._lastSelectionChangeTime = Date.now();\n    }\n    _setupMutationObserver() {\n        const doc = (0, client_core_1._getDocumentSafe)();\n        if (!doc) {\n            return;\n        }\n        this._observer = new MutationObserver(() => {\n            this._lastMutationTime = Date.now();\n        });\n        this._observer.observe(doc.body, {\n            childList: true,\n            subtree: true,\n            attributes: true,\n            characterData: true,\n        });\n    }\n    _checkForDeadClick() {\n        var _a;\n        if (!this._clicks.length) {\n            return;\n        }\n        clearTimeout(this._clickCheckTimer);\n        this._clickCheckTimer = undefined;\n        const clicksToCheck = this._clicks;\n        this._clicks = [];\n        for (const click of clicksToCheck) {\n            this._updateClickDelayMs(click);\n            const hadScroll = click.scrollDelayMs != null &&\n                click.scrollDelayMs < this._deadClickConfig.SCROLL_DELAY_MS;\n            const hadSelectionChange = click.selectionChangeDelayMs != null &&\n                click.selectionChangeDelayMs <\n                    this._deadClickConfig.SELECTION_CHANGE_DELAY_MS;\n            const hadMutation = click.mutationDelayMs != null &&\n                click.mutationDelayMs < this._deadClickConfig.MUTATION_DELAY_MS;\n            if (hadScroll || hadSelectionChange || hadMutation) {\n                continue;\n            }\n            const scrollTimeout = click.scrollDelayMs != null &&\n                click.scrollDelayMs > this._deadClickConfig.SCROLL_DELAY_MS;\n            const selectionChangeTimeout = click.selectionChangeDelayMs != null &&\n                click.selectionChangeDelayMs >\n                    this._deadClickConfig.SELECTION_CHANGE_DELAY_MS;\n            const mutationTimeout = click.mutationDelayMs != null &&\n                click.mutationDelayMs > this._deadClickConfig.MUTATION_DELAY_MS;\n            const absoluteTimeout = click.absoluteDelayMs != null &&\n                click.absoluteDelayMs >\n                    this._deadClickConfig.ABSOLUTE_DEAD_CLICK_TIMEOUT;\n            if (scrollTimeout ||\n                selectionChangeTimeout ||\n                mutationTimeout ||\n                absoluteTimeout) {\n                this._logDeadClick(click, {\n                    scrollTimeout,\n                    selectionChangeTimeout,\n                    mutationTimeout,\n                    absoluteTimeout,\n                });\n            }\n            else if (click.absoluteDelayMs != null &&\n                click.absoluteDelayMs <\n                    this._deadClickConfig.ABSOLUTE_DEAD_CLICK_TIMEOUT) {\n                this._clicks.push(click);\n            }\n        }\n        if (this._clicks.length && !this._clickCheckTimer) {\n            this._clickCheckTimer = (_a = (0, client_core_1._getWindowSafe)()) === null || _a === void 0 ? void 0 : _a.setTimeout(() => {\n                this._checkForDeadClick();\n            }, this._deadClickConfig.CLICK_CHECK_TIMEOUT);\n        }\n    }\n    _logDeadClick(click, extraMetadata) {\n        const { value, metadata } = (0, eventUtils_1._gatherEventData)(click.eventTarget);\n        if (!value) {\n            return;\n        }\n        this._enqueueFn(AutoCaptureEvent_1.AutoCaptureEventName.DEAD_CLICK, value, Object.assign(Object.assign(Object.assign(Object.assign({}, metadata), extraMetadata), (0, metadataUtils_1._gatherCommonMetadata)((0, commonUtils_1._getSafeUrl)())), { scrollDelayMs: click.scrollDelayMs, selectionChangeDelayMs: click.selectionChangeDelayMs, mutationDelayMs: click.mutationDelayMs, absoluteDelayMs: click.absoluteDelayMs }));\n    }\n    _updateClickDelayMs(click) {\n        if (!click.mutationDelayMs &&\n            this._lastMutationTime > 0 &&\n            click.timestamp <= this._lastMutationTime) {\n            click.mutationDelayMs = Date.now() - this._lastMutationTime;\n        }\n        if (!click.selectionChangeDelayMs &&\n            this._lastSelectionChangeTime > 0 &&\n            click.timestamp <= this._lastSelectionChangeTime) {\n            click.selectionChangeDelayMs = Date.now() - this._lastSelectionChangeTime;\n        }\n        click.absoluteDelayMs = Date.now() - click.timestamp;\n    }\n}\nexports.default = DeadClickManager;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EngagementManager = void 0;\nconst client_core_1 = require(\"@statsig/client-core\");\nconst PAGE_INACTIVE_TIMEOUT = 600000; // 10 minutes\nconst BUMP_THROTTLE_MS = 1000;\nclass EngagementManager {\n    constructor() {\n        this._lastScrollY = 0;\n        this._maxScrollY = 0;\n        this._lastScrollPercentage = 0;\n        this._maxScrollPercentage = 0;\n        this._lastPageViewTime = Date.now();\n        this._inactiveTimer = null;\n        this._onInactivityCallback = null;\n        this._meaningfulEngagementOccurred = false;\n        this._lastBumpTime = 0;\n        this._initializeScrollTracking();\n    }\n    _initializeScrollTracking() {\n        const win = (0, client_core_1._getWindowSafe)();\n        if (!win)\n            return;\n        win.addEventListener('scroll', () => this._handleScroll());\n        win.addEventListener('scrollend', () => this._handleScroll());\n        win.addEventListener('resize', () => this._handleScroll());\n    }\n    _handleScroll() {\n        const win = (0, client_core_1._getWindowSafe)();\n        const doc = (0, client_core_1._getDocumentSafe)();\n        if (!win || !doc)\n            return;\n        const scrollHeight = doc.body.scrollHeight;\n        const scrollY = win.scrollY || doc.documentElement.scrollTop || 0;\n        const innerHeight = win.innerHeight;\n        this._lastScrollY = scrollY;\n        this._maxScrollY = Math.max(this._maxScrollY, scrollY);\n        const currentScrollPercentage = Math.min(100, Math.round(((scrollY + innerHeight) / scrollHeight) * 100));\n        this._lastScrollPercentage = currentScrollPercentage;\n        this._maxScrollPercentage = Math.max(this._maxScrollPercentage, currentScrollPercentage);\n        this.bumpInactiveTimer();\n    }\n    getScrollMetrics() {\n        return {\n            lastScrollY: this._lastScrollY,\n            maxScrollY: this._maxScrollY,\n            lastScrollPercentage: this._lastScrollPercentage,\n            maxScrollPercentage: this._maxScrollPercentage,\n            scrollDepth: this._maxScrollPercentage, // deprecated\n        };\n    }\n    getPageViewLength() {\n        return Date.now() - this._lastPageViewTime;\n    }\n    setLastPageViewTime(time) {\n        this._lastPageViewTime = time;\n    }\n    startInactivityTracking(callback) {\n        this._onInactivityCallback = callback;\n    }\n    bumpInactiveTimer() {\n        const win = (0, client_core_1._getWindowSafe)();\n        if (!win) {\n            return;\n        }\n        const now = Date.now();\n        if (now - this._lastBumpTime < BUMP_THROTTLE_MS) {\n            return;\n        }\n        this._lastBumpTime = now;\n        if (this._inactiveTimer) {\n            clearTimeout(this._inactiveTimer);\n        }\n        this._inactiveTimer = win.setTimeout(() => {\n            if (this._onInactivityCallback) {\n                this._onInactivityCallback();\n            }\n        }, PAGE_INACTIVE_TIMEOUT);\n    }\n    setMeaningfulEngagementOccurred(occurred) {\n        this._meaningfulEngagementOccurred = occurred;\n    }\n    getPageViewEndMetadata() {\n        const pageviewEndMetadata = Object.assign(Object.assign({}, this.getScrollMetrics()), { pageViewLength: this.getPageViewLength(), meaningfulEngagementOccurred: this._meaningfulEngagementOccurred });\n        this.setMeaningfulEngagementOccurred(false);\n        return pageviewEndMetadata;\n    }\n}\nexports.EngagementManager = EngagementManager;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst RAGE_CLICK_THRESHOLD_PX = 30;\nconst RAGE_CLICK_TIMEOUT_MS = 1000;\nconst RAGE_CLICK_CLICK_COUNT = 3;\nclass RageClickManager {\n    constructor() {\n        this._clicks = [];\n    }\n    isRageClick(x, y, timestamp) {\n        // Remove clicks outside the timeout window\n        this._clicks = this._clicks.filter((click) => timestamp - click.timestamp < RAGE_CLICK_TIMEOUT_MS);\n        const isCloseEnough = (click) => {\n            const dx = x - click.x;\n            const dy = y - click.y;\n            return Math.abs(dx) + Math.abs(dy) <= RAGE_CLICK_THRESHOLD_PX;\n        };\n        // If previous clicks exist, check spatial threshold\n        if (this._clicks.length > 0 &&\n            !isCloseEnough(this._clicks[this._clicks.length - 1])) {\n            this._clicks = [];\n        }\n        this._clicks.push({ x, y, timestamp });\n        return this._clicks.length >= RAGE_CLICK_CLICK_COUNT;\n    }\n}\nexports.default = RageClickManager;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WebVitalsManager = void 0;\nconst web_vitals_1 = require(\"web-vitals\");\nconst client_core_1 = require(\"@statsig/client-core\");\nconst AutoCaptureEvent_1 = require(\"./AutoCaptureEvent\");\nconst commonUtils_1 = require(\"./utils/commonUtils\");\nconst VALID_METRIC_NAMES = ['CLS', 'FCP', 'INP', 'LCP', 'TTFB'];\nclass WebVitalsManager {\n    constructor(_enqueueFn, _errorBoundary) {\n        this._enqueueFn = _enqueueFn;\n        this._errorBoundary = _errorBoundary;\n        this._isInitialized = false;\n        this._metricEvent = {\n            url: (0, commonUtils_1._getSafeUrlString)(),\n            sanitizedUrl: (0, commonUtils_1._getSanitizedPageUrl)(),\n            metrics: [],\n            firstMetricTimestamp: undefined,\n        };\n    }\n    startTracking() {\n        var _a, _b;\n        try {\n            if (this._isInitialized) {\n                return;\n            }\n            const protocol = (_b = (_a = (0, client_core_1._getWindowSafe)()) === null || _a === void 0 ? void 0 : _a.location) === null || _b === void 0 ? void 0 : _b.protocol;\n            if (protocol !== 'https:' && protocol !== 'http:') {\n                return;\n            }\n            (0, web_vitals_1.onCLS)((metric) => this._handleMetric(metric));\n            (0, web_vitals_1.onFCP)((metric) => this._handleMetric(metric));\n            (0, web_vitals_1.onINP)((metric) => this._handleMetric(metric));\n            (0, web_vitals_1.onLCP)((metric) => this._handleMetric(metric));\n            (0, web_vitals_1.onTTFB)((metric) => this._handleMetric(metric));\n            this._isInitialized = true;\n        }\n        catch (error) {\n            client_core_1.Log.error('Error starting web vitals tracking', error);\n            this._errorBoundary.logError('autoCapture:WebVitalsManager', error);\n        }\n    }\n    flushPendingMetrics() {\n        if (this._metricEvent.metrics.length === 0) {\n            return false;\n        }\n        this._enqueueWebVitalsAutoCaptureEvent();\n        return true;\n    }\n    _handleMetric(metric) {\n        if (this._metricEvent.firstMetricTimestamp === undefined) {\n            this._metricEvent.firstMetricTimestamp = Date.now();\n        }\n        if (metric === undefined ||\n            (metric === null || metric === void 0 ? void 0 : metric.name) === undefined) {\n            return;\n        }\n        const currentUrl = (0, commonUtils_1._getSafeUrlString)();\n        if (currentUrl === '') {\n            // If the URL is not valid, we don't want to track the metric\n            return;\n        }\n        if (!VALID_METRIC_NAMES.includes(metric.name)) {\n            return;\n        }\n        if (currentUrl !== this._metricEvent.url) {\n            this._enqueueWebVitalsAutoCaptureEvent();\n            this._metricEvent.url = currentUrl;\n        }\n        const metricData = metric;\n        this._metricEvent.metrics.push({\n            name: metricData.name,\n            value: metricData.value,\n            delta: metricData.delta,\n            id: metricData.id,\n            rating: metricData.rating,\n            navigationType: metricData.navigationType,\n        });\n        if (this._metricEvent.metrics.length === VALID_METRIC_NAMES.length) {\n            this._enqueueWebVitalsAutoCaptureEvent();\n        }\n    }\n    _enqueueWebVitalsAutoCaptureEvent() {\n        if (this._metricEvent.url === '' ||\n            this._metricEvent.metrics.length === 0) {\n            return;\n        }\n        const flattenedMetrics = {};\n        this._metricEvent.metrics.forEach((metric) => {\n            const prefix = metric.name.toLowerCase();\n            flattenedMetrics[`${prefix}_value`] = metric.value;\n            flattenedMetrics[`${prefix}_delta`] = metric.delta;\n            flattenedMetrics[`${prefix}_id`] = metric.id;\n            flattenedMetrics[`${prefix}_rating`] = metric.rating;\n            if (metric.navigationType != null) {\n                flattenedMetrics['navigation_type'] = metric.navigationType;\n            }\n        });\n        this._enqueueFn(AutoCaptureEvent_1.AutoCaptureEventName.WEB_VITALS, this._metricEvent.sanitizedUrl, Object.assign(Object.assign({}, flattenedMetrics), { first_metric_timestamp: this._metricEvent.firstMetricTimestamp }));\n        this._metricEvent = {\n            url: (0, commonUtils_1._getSafeUrlString)(),\n            sanitizedUrl: (0, commonUtils_1._getSanitizedPageUrl)(),\n            metrics: [],\n            firstMetricTimestamp: undefined,\n        };\n    }\n}\nexports.WebVitalsManager = WebVitalsManager;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StatsigAutoCapturePlugin = exports.runStatsigAutoCapture = exports.AutoCapture = exports.AutoCaptureEventName = void 0;\nconst client_core_1 = require(\"@statsig/client-core\");\nconst AutoCapture_1 = require(\"./AutoCapture\");\nObject.defineProperty(exports, \"AutoCapture\", { enumerable: true, get: function () { return AutoCapture_1.AutoCapture; } });\nObject.defineProperty(exports, \"StatsigAutoCapturePlugin\", { enumerable: true, get: function () { return AutoCapture_1.StatsigAutoCapturePlugin; } });\nObject.defineProperty(exports, \"runStatsigAutoCapture\", { enumerable: true, get: function () { return AutoCapture_1.runStatsigAutoCapture; } });\nvar AutoCaptureEvent_1 = require(\"./AutoCaptureEvent\");\nObject.defineProperty(exports, \"AutoCaptureEventName\", { enumerable: true, get: function () { return AutoCaptureEvent_1.AutoCaptureEventName; } });\nconst __STATSIG__ = Object.assign((0, client_core_1._getStatsigGlobal)(), {\n    AutoCapture: AutoCapture_1.AutoCapture,\n    runStatsigAutoCapture: AutoCapture_1.runStatsigAutoCapture,\n    StatsigAutoCapturePlugin: AutoCapture_1.StatsigAutoCapturePlugin,\n});\nexports.default = __STATSIG__;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.wrapFunctionWithRestore = exports.throttle = exports._sanitizeString = exports._getAnchorNodeInHierarchy = exports._getSafeTimezoneOffset = exports._getSafeTimezone = exports._getSafeNavigationType = exports._getSafeNetworkInformation = exports._registerEventHandler = exports._getSanitizedPageUrl = exports._getSafeUrlString = exports._getSafeUrl = exports._shouldLogEvent = exports._getTargetNode = exports._stripEmptyValues = exports.interactiveElements = void 0;\nconst client_core_1 = require(\"@statsig/client-core\");\nconst coreCCPattern = `(4[0-9]{12}(?:[0-9]{3})?)|(5[1-5][0-9]{14})|(6(?:011|5[0-9]{2})[0-9]{12})|(3[47][0-9]{13})|(3(?:0[0-5]|[68][0-9])[0-9]{11})|((?:2131|1800|35[0-9]{3})[0-9]{11})`;\nconst CC_REGEX = new RegExp(`^(?:${coreCCPattern})$`);\nconst coreSSNPattern = `\\\\d{3}-?\\\\d{2}-?\\\\d{4}`;\nconst SSN_REGEX = new RegExp(`^(${coreSSNPattern})$`);\nexports.interactiveElements = [\n    'button',\n    'a',\n    'input',\n    'select',\n    'textarea',\n    'form',\n    'select',\n    'label',\n];\nfunction _stripEmptyValues(obj) {\n    return Object.fromEntries(Object.entries(obj).filter(([_, value]) => value != null && value !== '' && value !== undefined));\n}\nexports._stripEmptyValues = _stripEmptyValues;\nfunction _getTargetNode(e) {\n    if (!e) {\n        return null;\n    }\n    let target = e.target || e.srcElement;\n    if (!target || !(target instanceof Element)) {\n        return null;\n    }\n    if (target.nodeType === 3) {\n        target = (target.parentNode || null);\n    }\n    return target;\n}\nexports._getTargetNode = _getTargetNode;\nfunction _shouldLogEvent(e, el, isCopyEvent = false) {\n    if (!e || !el || el.nodeType !== 1) {\n        return false;\n    }\n    const tagName = el.tagName.toLowerCase();\n    const eventType = e.type.toLowerCase();\n    const classList = el.classList;\n    if (classList.contains('statsig-no-capture')) {\n        return false;\n    }\n    if (isCopyEvent) {\n        // We don't want to force strict event filtering for copy events\n        return true;\n    }\n    switch (tagName) {\n        case 'html':\n            return false;\n        case 'form':\n            return ['submit'].indexOf(eventType) >= 0;\n        case 'input':\n        case 'select':\n        case 'textarea':\n            return ['change', 'click'].indexOf(eventType) >= 0;\n        default:\n            if (eventType === 'click') {\n                const compStyles = window.getComputedStyle(el);\n                if (compStyles && compStyles.getPropertyValue('cursor') === 'pointer') {\n                    return true;\n                }\n                if (exports.interactiveElements.includes(tagName)) {\n                    return true;\n                }\n                if (el.getAttribute('contenteditable') === 'true') {\n                    return true;\n                }\n                const anchor = _getAnchorNodeInHierarchy(el);\n                if (anchor) {\n                    return true;\n                }\n            }\n            return false;\n    }\n}\nexports._shouldLogEvent = _shouldLogEvent;\nfunction _getSafeUrl() {\n    var _a, _b, _c;\n    const href = (_c = (_b = (_a = (0, client_core_1._getWindowSafe)()) === null || _a === void 0 ? void 0 : _a.location) === null || _b === void 0 ? void 0 : _b.href) !== null && _c !== void 0 ? _c : '';\n    let url;\n    try {\n        url = new URL(href);\n    }\n    catch (e) {\n        url = new URL('error:');\n    }\n    return url;\n}\nexports._getSafeUrl = _getSafeUrl;\nfunction _getSafeUrlString() {\n    const urlString = _getSafeUrl().toString();\n    if (urlString.startsWith('error:')) {\n        return '';\n    }\n    return urlString;\n}\nexports._getSafeUrlString = _getSafeUrlString;\nfunction _getSanitizedPageUrl() {\n    return (0, client_core_1._getCurrentPageUrlSafe)() || '';\n}\nexports._getSanitizedPageUrl = _getSanitizedPageUrl;\nfunction _registerEventHandler(element, eventType, handler) {\n    if (!element || !element.addEventListener) {\n        return;\n    }\n    element.addEventListener(eventType, handler, true);\n}\nexports._registerEventHandler = _registerEventHandler;\nfunction _getSafeNetworkInformation() {\n    const win = (0, client_core_1._getWindowSafe)();\n    if (!win || !win.navigator) {\n        return null;\n    }\n    const connection = win.navigator.connection;\n    if (!connection) {\n        return null;\n    }\n    return connection;\n}\nexports._getSafeNetworkInformation = _getSafeNetworkInformation;\nfunction _getSafeNavigationType() {\n    var _a;\n    const win = (0, client_core_1._getWindowSafe)();\n    if (!win ||\n        !win.performance ||\n        typeof win.performance.getEntriesByType !== 'function') {\n        return null;\n    }\n    try {\n        const navEntry = win.performance.getEntriesByType('navigation')[0];\n        return (_a = navEntry === null || navEntry === void 0 ? void 0 : navEntry.type) !== null && _a !== void 0 ? _a : null;\n    }\n    catch (_b) {\n        return null;\n    }\n}\nexports._getSafeNavigationType = _getSafeNavigationType;\nfunction _getSafeTimezone() {\n    try {\n        return Intl.DateTimeFormat().resolvedOptions().timeZone;\n    }\n    catch (e) {\n        return null;\n    }\n}\nexports._getSafeTimezone = _getSafeTimezone;\nfunction _getSafeTimezoneOffset() {\n    try {\n        return new Date().getTimezoneOffset();\n    }\n    catch (e) {\n        return null;\n    }\n}\nexports._getSafeTimezoneOffset = _getSafeTimezoneOffset;\nfunction _getAnchorNodeInHierarchy(node) {\n    if (!node) {\n        return null;\n    }\n    let parent = node;\n    while (parent) {\n        const parentTagName = parent.tagName.toLowerCase();\n        if (['body', 'document'].includes(parentTagName)) {\n            return null;\n        }\n        if (parent.tagName.toLowerCase() === 'a') {\n            return parent;\n        }\n        parent = parent.parentElement;\n    }\n    return null;\n}\nexports._getAnchorNodeInHierarchy = _getAnchorNodeInHierarchy;\nfunction _sanitizeString(maybeString) {\n    if (!maybeString) {\n        return null;\n    }\n    return maybeString\n        .replace(/<[^>]*>/g, '')\n        .trim()\n        .split(/(\\s+)/)\n        .filter((s) => _shouldCaptureTextValue(s))\n        .join('')\n        .replace(/[\\r\\n]/g, ' ')\n        .replace(/[ ]+/g, ' ')\n        .substring(0, 255);\n}\nexports._sanitizeString = _sanitizeString;\nfunction _shouldCaptureTextValue(text) {\n    if (CC_REGEX.test((text || '').replace(/[- ]/g, ''))) {\n        return false;\n    }\n    if (SSN_REGEX.test((text || '').replace(/[- ]/g, ''))) {\n        return false;\n    }\n    return true;\n}\nfunction throttle(fn, limit) {\n    let lastCall = 0;\n    return function (...args) {\n        const now = Date.now();\n        if (now - lastCall >= limit) {\n            lastCall = now;\n            fn(...args);\n        }\n    };\n}\nexports.throttle = throttle;\nfunction wrapFunctionWithRestore(targetObject, functionName, wrapperFactory) {\n    const originalFunction = targetObject[functionName];\n    if (typeof originalFunction !== 'function') {\n        return () => {\n            // noop\n        };\n    }\n    try {\n        const wrappedFunction = wrapperFactory(originalFunction);\n        Object.defineProperty(wrappedFunction, '__statsig_original__', {\n            enumerable: false,\n            value: originalFunction,\n        });\n        targetObject[functionName] = wrappedFunction;\n        // Restore function\n        return () => {\n            targetObject[functionName] = originalFunction;\n        };\n    }\n    catch (_a) {\n        return () => {\n            // noop\n        };\n    }\n}\nexports.wrapFunctionWithRestore = wrapFunctionWithRestore;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._getStackTrace = exports._safeStringify = void 0;\nfunction _truncateString(str, maxLength) {\n    if (str.length <= maxLength) {\n        return str;\n    }\n    return str.slice(0, maxLength) + '...';\n}\nfunction _safeStringify(val, maxKeysCount, maxDepth, maxLength) {\n    try {\n        if (_shouldNotStringify(val, maxKeysCount, maxDepth)) {\n            return _simpleStringify(val, maxLength);\n        }\n        if (typeof val === 'string') {\n            return _truncateString(val, maxLength);\n        }\n        if (typeof val === 'object' && val !== null) {\n            return _truncateString(JSON.stringify(val), maxLength);\n        }\n        return _truncateString(String(val), maxLength);\n    }\n    catch (_a) {\n        return _truncateString('[Unserializable]', maxLength);\n    }\n}\nexports._safeStringify = _safeStringify;\nfunction _getStackTrace() {\n    var _a, _b;\n    try {\n        return (_b = (_a = new Error().stack) === null || _a === void 0 ? void 0 : _a.split('\\n').slice(2)) !== null && _b !== void 0 ? _b : [];\n    }\n    catch (_c) {\n        return [];\n    }\n}\nexports._getStackTrace = _getStackTrace;\nfunction _shouldNotStringify(val, maxKeysCount, maxDepth) {\n    if (_isPlainObject(val)) {\n        if (Object.keys(val).length > maxKeysCount) {\n            return true;\n        }\n        if (_isObjectTooDeep(val, maxDepth)) {\n            return true;\n        }\n    }\n    if (typeof val === 'function') {\n        return true;\n    }\n    return false;\n}\nfunction _isPlainObject(obj) {\n    return Object.prototype.toString.call(obj) === '[object Object]';\n}\nfunction _isObjectTooDeep(obj, maxDepth) {\n    if (maxDepth <= 0) {\n        return true;\n    }\n    if (typeof obj !== 'object' || obj === null) {\n        return false;\n    }\n    return Object.keys(obj).some((key) => _isObjectTooDeep(obj[key], maxDepth - 1));\n}\nfunction _simpleStringify(val, maxLength) {\n    return _truncateString(val.toString(), maxLength);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._getMetadataFromElement = exports._gatherCopyEventData = exports._gatherEventData = void 0;\nconst client_core_1 = require(\"@statsig/client-core\");\nconst commonUtils_1 = require(\"./commonUtils\");\nconst MAX_ATTRIBUTE_LENGTH = 1000;\nconst MAX_CLASS_LIST_LENGTH = 100;\nconst MAX_SELECTOR_DEPTH = 50;\nfunction _gatherEventData(target) {\n    const value = (0, commonUtils_1._getSanitizedPageUrl)() || '';\n    const tagName = target.tagName.toLowerCase();\n    // If the element is sensitive, we only gather safe attribute fields\n    if (_isSensitiveElement(target)) {\n        return { value, metadata: _getSafeMetadataAttributes(target) };\n    }\n    const metadata = {};\n    metadata['tagName'] = tagName;\n    const elementMetadata = _getMetadataFromElement(target);\n    Object.assign(metadata, elementMetadata);\n    if (tagName === 'form') {\n        Object.assign(metadata, _getFormMetadata(target));\n    }\n    if (tagName === 'input') {\n        Object.assign(metadata, _getInputMetadata(target));\n    }\n    const anchor = (0, commonUtils_1._getAnchorNodeInHierarchy)(target);\n    if (anchor) {\n        Object.assign(metadata, _getAnchorMetadata(anchor));\n    }\n    if (tagName === 'button' || anchor) {\n        Object.assign(metadata, _getButtonMetadata(anchor || target));\n    }\n    if (_isOutboundLink(metadata)) {\n        metadata['isOutbound'] = 'true';\n    }\n    return { value, metadata };\n}\nexports._gatherEventData = _gatherEventData;\nfunction _gatherCopyEventData(e) {\n    var _a, _b;\n    const selectedText = (_b = (_a = (0, client_core_1._getWindowSafe)()) === null || _a === void 0 ? void 0 : _a.getSelection()) === null || _b === void 0 ? void 0 : _b.toString();\n    const metadata = {};\n    metadata['selectedText'] = (0, commonUtils_1._sanitizeString)(selectedText);\n    const clipType = e.type || 'clipboard';\n    metadata['clipType'] = clipType;\n    return metadata;\n}\nexports._gatherCopyEventData = _gatherCopyEventData;\nfunction _isSensitiveElement(target) {\n    return ((target.tagName.toLowerCase() === 'input' &&\n        ['button', 'checkbox', 'submit', 'reset'].includes(target.getAttribute('type') || '')) ||\n        target.tagName.toLowerCase() === 'textarea' ||\n        target.tagName.toLowerCase() === 'select' ||\n        target.getAttribute('contenteditable') === 'true');\n}\nfunction _getFormMetadata(target) {\n    var _a;\n    const metadata = {};\n    metadata['action'] = target.getAttribute('action');\n    metadata['method'] = (_a = target.getAttribute('method')) !== null && _a !== void 0 ? _a : 'GET';\n    metadata['formName'] = target.getAttribute('name');\n    metadata['formId'] = target.getAttribute('id');\n    return metadata;\n}\nfunction _getInputMetadata(target) {\n    const metadata = {};\n    metadata['content'] = target.value;\n    metadata['inputName'] = target.getAttribute('name');\n    return metadata;\n}\nfunction _getAnchorMetadata(anchor) {\n    const metadata = {};\n    metadata['href'] = anchor.getAttribute('href');\n    return metadata;\n}\nfunction _getButtonMetadata(target) {\n    const metadata = {};\n    metadata['content'] = (target.textContent || '').trim();\n    const dataset = _gatherDatasetProperties(target);\n    Object.assign(metadata, dataset);\n    return metadata;\n}\nfunction _gatherDatasetProperties(el) {\n    const dataset = {};\n    if (!el) {\n        return dataset;\n    }\n    const attr = el === null || el === void 0 ? void 0 : el.dataset;\n    if (!attr) {\n        return dataset;\n    }\n    for (const key in attr) {\n        dataset[`data-${key}`] = attr[key] || '';\n    }\n    return dataset;\n}\nfunction _truncateString(str, maxLength) {\n    if (!str)\n        return null;\n    return str.length > maxLength ? str.substring(0, maxLength) + '...' : str;\n}\nfunction _isOutboundLink(metadata) {\n    var _a;\n    if (Array.isArray(metadata['classList']) &&\n        ((_a = metadata['classList']) === null || _a === void 0 ? void 0 : _a.includes('statsig-ctr-capture'))) {\n        return true;\n    }\n    const href = metadata['href'];\n    if (href) {\n        try {\n            const currentUrl = (0, commonUtils_1._getSafeUrl)();\n            const linkUrl = new URL(href);\n            return currentUrl.host !== linkUrl.host;\n        }\n        catch (_b) {\n            // Invalid URL, treat as non-outbound\n            return false;\n        }\n    }\n    return false;\n}\nfunction _getSafeMetadataAttributes(elem) {\n    const metadata = {};\n    metadata['class'] = _normalizeClassAttribute(_truncateString(elem.getAttribute('class'), MAX_ATTRIBUTE_LENGTH) || '');\n    metadata['id'] = _truncateString(elem.getAttribute('id'), MAX_ATTRIBUTE_LENGTH);\n    metadata['ariaLabel'] = _truncateString(elem.getAttribute('aria-label'), MAX_ATTRIBUTE_LENGTH);\n    metadata['name'] = _truncateString(elem.getAttribute('name'), MAX_ATTRIBUTE_LENGTH);\n    return metadata;\n}\nfunction _getMetadataFromElement(target) {\n    const metadata = {};\n    const safeAttributes = _getSafeMetadataAttributes(target);\n    Object.assign(metadata, safeAttributes);\n    const classList = Array.from(target.classList);\n    metadata['classList'] =\n        classList.length > 0 ? classList.slice(0, MAX_CLASS_LIST_LENGTH) : null;\n    metadata['selector'] = _generateCssSelector(target);\n    return metadata;\n}\nexports._getMetadataFromElement = _getMetadataFromElement;\nfunction _normalizeClassAttribute(className) {\n    return className.replace(/\\s+/g, ' ').trim();\n}\nfunction hasNextSiblingWithSameTag(element) {\n    let sibling = element.nextElementSibling;\n    while (sibling) {\n        if (sibling.tagName === element.tagName) {\n            return true;\n        }\n        sibling = sibling.nextElementSibling;\n    }\n    return false;\n}\nfunction getElementSelector(element) {\n    const tagName = element.tagName.toLowerCase();\n    // 1. Use ID if available\n    if (element.id) {\n        return `#${element.id}`;\n    }\n    // 2. Build class-based selector\n    let selector = tagName;\n    if (element.className && typeof element.className === 'string') {\n        const classes = element.className.trim().split(/\\s+/);\n        if (classes.length > 0 && classes[0] !== '') {\n            selector += '.' + classes.join('.');\n        }\n    }\n    const parent = element.parentElement;\n    if (parent && parent.children.length > 1) {\n        let nthChild = 1;\n        let nthOfType = 1;\n        let sibling = element.previousElementSibling;\n        while (sibling) {\n            nthChild++;\n            if (sibling.tagName === element.tagName) {\n                nthOfType++;\n            }\n            sibling = sibling.previousElementSibling;\n        }\n        selector += `:nth-child(${nthChild})`;\n        // Only add nth-of-type if there are other elements with the same tag\n        if (nthOfType > 1 || hasNextSiblingWithSameTag(element)) {\n            selector += `:nth-of-type(${nthOfType})`;\n        }\n    }\n    return selector;\n}\nfunction _generateCssSelector(element) {\n    if (!element) {\n        return '';\n    }\n    // Handle case where element has no parent (e.g., detached element)\n    if (!element.parentNode) {\n        const tagName = element.tagName.toLowerCase();\n        if (element.id) {\n            return `#${element.id}`;\n        }\n        let selector = tagName;\n        if (element.className && typeof element.className === 'string') {\n            const classes = element.className.trim().split(/\\s+/);\n            if (classes.length > 0 && classes[0] !== '') {\n                selector += '.' + classes.join('.');\n            }\n        }\n        return selector;\n    }\n    // Build the full selector path\n    const selectors = [];\n    let currentElement = element;\n    let depth = 0;\n    while (currentElement &&\n        currentElement.nodeType === Node.ELEMENT_NODE &&\n        depth < MAX_SELECTOR_DEPTH) {\n        const selector = getElementSelector(currentElement);\n        selectors.unshift(selector);\n        // Stop if we found an ID (since IDs should be unique)\n        if (currentElement.id) {\n            break;\n        }\n        currentElement = currentElement.parentElement;\n        // Stop at document body to avoid going too far up\n        if (currentElement && currentElement.tagName.toLowerCase() === 'body') {\n            break;\n        }\n        depth++;\n    }\n    return selectors.join(' > ');\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._getPossibleFirstTouchMetadata = exports._getNetworkInfo = exports._gatherAllMetadata = exports._gatherCommonMetadata = void 0;\nconst client_core_1 = require(\"@statsig/client-core\");\nconst commonUtils_1 = require(\"./commonUtils\");\nfunction _gatherCommonMetadata(url) {\n    var _a, _b, _c, _d, _e, _f, _g, _h;\n    const safeDoc = (0, client_core_1._getDocumentSafe)();\n    const safeWnd = (0, client_core_1._getWindowSafe)();\n    return (0, commonUtils_1._stripEmptyValues)(Object.assign({ title: safeDoc === null || safeDoc === void 0 ? void 0 : safeDoc.title, current_url: (_a = safeWnd === null || safeWnd === void 0 ? void 0 : safeWnd.location) === null || _a === void 0 ? void 0 : _a.href, user_agent: ((_b = safeWnd === null || safeWnd === void 0 ? void 0 : safeWnd.navigator) === null || _b === void 0 ? void 0 : _b.userAgent) &&\n            ((_d = (_c = safeWnd === null || safeWnd === void 0 ? void 0 : safeWnd.navigator) === null || _c === void 0 ? void 0 : _c.userAgent) === null || _d === void 0 ? void 0 : _d.length) > 200\n            ? safeWnd.navigator.userAgent.substring(0, 200)\n            : (_e = safeWnd === null || safeWnd === void 0 ? void 0 : safeWnd.navigator) === null || _e === void 0 ? void 0 : _e.userAgent, locale: (_f = safeWnd === null || safeWnd === void 0 ? void 0 : safeWnd.navigator) === null || _f === void 0 ? void 0 : _f.language, hostname: url.hostname, pathname: url.pathname, screen_width: (_g = safeWnd === null || safeWnd === void 0 ? void 0 : safeWnd.screen) === null || _g === void 0 ? void 0 : _g.width, screen_height: (_h = safeWnd === null || safeWnd === void 0 ? void 0 : safeWnd.screen) === null || _h === void 0 ? void 0 : _h.height, viewport_width: safeWnd === null || safeWnd === void 0 ? void 0 : safeWnd.innerWidth, viewport_height: safeWnd === null || safeWnd === void 0 ? void 0 : safeWnd.innerHeight, viewport: `${safeWnd === null || safeWnd === void 0 ? void 0 : safeWnd.innerWidth}x${safeWnd === null || safeWnd === void 0 ? void 0 : safeWnd.innerHeight}`, timestamp: Date.now(), timezone: (0, commonUtils_1._getSafeTimezone)(), timezone_offset: (0, commonUtils_1._getSafeTimezoneOffset)(), navigation_type: (0, commonUtils_1._getSafeNavigationType)() }, _getNetworkInfo()));\n}\nexports._gatherCommonMetadata = _gatherCommonMetadata;\nfunction _gatherAllMetadata(url) {\n    const safeDoc = (0, client_core_1._getDocumentSafe)();\n    const safeWnd = (0, client_core_1._getWindowSafe)();\n    if (!safeDoc || !safeWnd) {\n        return {};\n    }\n    const referrerInfo = getReferrerInfo(safeDoc);\n    const commonInfo = _gatherCommonMetadata(url);\n    const campaignParams = getCampaignParams(url);\n    const queryParams = {};\n    url.searchParams.forEach((v, k) => {\n        queryParams[k] = v;\n    });\n    return Object.assign(Object.assign({}, commonInfo), (0, commonUtils_1._stripEmptyValues)(Object.assign(Object.assign(Object.assign({}, referrerInfo), campaignParams), queryParams)));\n}\nexports._gatherAllMetadata = _gatherAllMetadata;\nfunction _getNetworkInfo() {\n    const networkInfo = (0, commonUtils_1._getSafeNetworkInformation)();\n    const result = {};\n    if ((networkInfo === null || networkInfo === void 0 ? void 0 : networkInfo.effectiveType) !== undefined) {\n        result['effective_connection_type'] = networkInfo.effectiveType;\n    }\n    if ((networkInfo === null || networkInfo === void 0 ? void 0 : networkInfo.rtt) !== undefined) {\n        result['rtt_ms'] = networkInfo.rtt;\n    }\n    if ((networkInfo === null || networkInfo === void 0 ? void 0 : networkInfo.downlink) !== undefined) {\n        result['downlink_mbps'] = networkInfo.downlink;\n        result['downlink_kbps'] = networkInfo.downlink * 1000; // deprecated\n    }\n    if ((networkInfo === null || networkInfo === void 0 ? void 0 : networkInfo.saveData) !== undefined) {\n        result['save_data'] = networkInfo.saveData;\n    }\n    return result;\n}\nexports._getNetworkInfo = _getNetworkInfo;\nfunction _getPossibleFirstTouchMetadata(url) {\n    const safeDoc = (0, client_core_1._getDocumentSafe)();\n    const safeWnd = (0, client_core_1._getWindowSafe)();\n    if (!safeDoc || !safeWnd) {\n        return {};\n    }\n    const referrerInfo = getReferrerInfo(safeDoc);\n    const campaignParams = getCampaignParams(url);\n    const combined = (0, commonUtils_1._stripEmptyValues)(Object.assign(Object.assign({}, referrerInfo), campaignParams));\n    const prefixed = {};\n    for (const [key, value] of Object.entries(combined)) {\n        prefixed[`$s_${key}`] = value;\n    }\n    return prefixed;\n}\nexports._getPossibleFirstTouchMetadata = _getPossibleFirstTouchMetadata;\nfunction getReferrerInfo(safeDoc) {\n    const referrer = (safeDoc === null || safeDoc === void 0 ? void 0 : safeDoc.referrer) || '';\n    if (!referrer) {\n        return {\n            referrer: null,\n            referrer_domain: null,\n            referrer_path: null,\n            searchEngine: '',\n            searchQuery: '',\n        };\n    }\n    try {\n        const url = new URL(referrer);\n        const host = url.hostname;\n        const searchEngine = ['google', 'bing', 'yahoo', 'duckduckgo', 'baidu'].find((e) => host.includes(e + '.')) || '';\n        const searchQuery = url.searchParams.get(searchEngine === 'yahoo' ? 'p' : 'q') || '';\n        return {\n            referrer,\n            referrer_domain: url.hostname,\n            referrer_path: url.pathname,\n            searchEngine,\n            searchQuery,\n        };\n    }\n    catch (e) {\n        return {\n            referrer: null,\n            referrer_domain: null,\n            referrer_path: null,\n            searchEngine: '',\n            searchQuery: '',\n        };\n    }\n}\nfunction getCampaignParams(url) {\n    const urlParams = url.searchParams;\n    const campaignParams = {};\n    const commonUtms = [\n        'utm_source',\n        'utm_medium',\n        'utm_campaign',\n        'utm_term',\n        'utm_content',\n        'msclkid', // Bing\n        'dclid', // DoubleClick\n        'fbclid', // Facebook\n        'gad_source', // Google\n        'gclid', // Google\n        'gclsrc', // Google\n        'wbraid', // Google\n        'utm_id', // Hubspot\n        'irclid', // Impact\n        'igshid', // Instagram\n        '_kx', // Klaviyo\n        'li_fat_id', // LinkedIn\n        'mc_cid', // Mailchimp\n        'mc_eid', // Mailchimp\n        'epik', // Pinterest\n        'qclid', // Quora\n        'rdt_cid', // Reddit\n        'sccid', // Snapchat\n        'ttc', // TikTok\n        'ttclid', // TikTok\n        'ttc_id', // TikTok\n        'twclid', // Twitter\n    ];\n    commonUtms.forEach((p) => {\n        const val = urlParams.get(p);\n        if (val) {\n            campaignParams[p] = val;\n        }\n    });\n    return campaignParams;\n}\n","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?t(exports):\"function\"==typeof define&&define.amd?define([\"exports\"],t):t((e=\"undefined\"!=typeof globalThis?globalThis:e||self).webVitals={})}(this,(function(e){\"use strict\";let t=-1;const n=e=>{addEventListener(\"pageshow\",(n=>{n.persisted&&(t=n.timeStamp,e(n))}),!0)},i=(e,t,n,i)=>{let o,s;return r=>{t.value>=0&&(r||i)&&(s=t.value-(o??0),(s||void 0===o)&&(o=t.value,t.delta=s,t.rating=((e,t)=>e>t[1]?\"poor\":e>t[0]?\"needs-improvement\":\"good\")(t.value,n),e(t)))}},o=e=>{requestAnimationFrame((()=>requestAnimationFrame((()=>e()))))},s=()=>{const e=performance.getEntriesByType(\"navigation\")[0];if(e&&e.responseStart>0&&e.responseStart<performance.now())return e},r=()=>{const e=s();return e?.activationStart??0},c=(e,n=-1)=>{const i=s();let o=\"navigate\";t>=0?o=\"back-forward-cache\":i&&(document.prerendering||r()>0?o=\"prerender\":document.wasDiscarded?o=\"restore\":i.type&&(o=i.type.replace(/_/g,\"-\")));return{name:e,value:n,rating:\"good\",delta:0,entries:[],id:`v5-${Date.now()}-${Math.floor(8999999999999*Math.random())+1e12}`,navigationType:o}},a=new WeakMap;function d(e,t){return a.get(e)||a.set(e,new t),a.get(e)}class h{t;i=0;o=[];h(e){if(e.hadRecentInput)return;const t=this.o[0],n=this.o.at(-1);this.i&&t&&n&&e.startTime-n.startTime<1e3&&e.startTime-t.startTime<5e3?(this.i+=e.value,this.o.push(e)):(this.i=e.value,this.o=[e]),this.t?.(e)}}const f=(e,t,n={})=>{try{if(PerformanceObserver.supportedEntryTypes.includes(e)){const i=new PerformanceObserver((e=>{Promise.resolve().then((()=>{t(e.getEntries())}))}));return i.observe({type:e,buffered:!0,...n}),i}}catch{}},u=e=>{let t=!1;return()=>{t||(e(),t=!0)}};let l=-1;const m=()=>\"hidden\"!==document.visibilityState||document.prerendering?1/0:0,p=e=>{\"hidden\"===document.visibilityState&&l>-1&&(l=\"visibilitychange\"===e.type?e.timeStamp:0,v())},g=()=>{addEventListener(\"visibilitychange\",p,!0),addEventListener(\"prerenderingchange\",p,!0)},v=()=>{removeEventListener(\"visibilitychange\",p,!0),removeEventListener(\"prerenderingchange\",p,!0)},y=()=>{if(l<0){const e=r(),t=document.prerendering?void 0:globalThis.performance.getEntriesByType(\"visibility-state\").filter((t=>\"hidden\"===t.name&&t.startTime>e))[0]?.startTime;l=t??m(),g(),n((()=>{setTimeout((()=>{l=m(),g()}))}))}return{get firstHiddenTime(){return l}}},b=e=>{document.prerendering?addEventListener(\"prerenderingchange\",(()=>e()),!0):e()},T=[1800,3e3],P=(e,t={})=>{b((()=>{const s=y();let a,d=c(\"FCP\");const h=f(\"paint\",(e=>{for(const t of e)\"first-contentful-paint\"===t.name&&(h.disconnect(),t.startTime<s.firstHiddenTime&&(d.value=Math.max(t.startTime-r(),0),d.entries.push(t),a(!0)))}));h&&(a=i(e,d,T,t.reportAllChanges),n((n=>{d=c(\"FCP\"),a=i(e,d,T,t.reportAllChanges),o((()=>{d.value=performance.now()-n.timeStamp,a(!0)}))})))}))},E=[.1,.25];let _=0,L=1/0,M=0;const C=e=>{for(const t of e)t.interactionId&&(L=Math.min(L,t.interactionId),M=Math.max(M,t.interactionId),_=M?(M-L)/7+1:0)};let I;const w=()=>I?_:performance.interactionCount??0,F=()=>{\"interactionCount\"in performance||I||(I=f(\"event\",C,{type:\"event\",buffered:!0,durationThreshold:0}))};let k=0;class x{u=[];l=new Map;m;p;v(){k=w(),this.u.length=0,this.l.clear()}T(){const e=Math.min(this.u.length-1,Math.floor((w()-k)/50));return this.u[e]}h(e){if(this.m?.(e),!e.interactionId&&\"first-input\"!==e.entryType)return;const t=this.u.at(-1);let n=this.l.get(e.interactionId);if(n||this.u.length<10||e.duration>t.P){if(n?e.duration>n.P?(n.entries=[e],n.P=e.duration):e.duration===n.P&&e.startTime===n.entries[0].startTime&&n.entries.push(e):(n={id:e.interactionId,entries:[e],P:e.duration},this.l.set(n.id,n),this.u.push(n)),this.u.sort(((e,t)=>t.P-e.P)),this.u.length>10){const e=this.u.splice(10);for(const t of e)this.l.delete(t.id)}this.p?.(n)}}}const A=e=>{const t=globalThis.requestIdleCallback||setTimeout;\"hidden\"===document.visibilityState?e():(e=u(e),document.addEventListener(\"visibilitychange\",e,{once:!0}),t((()=>{e(),document.removeEventListener(\"visibilitychange\",e)})))},B=[200,500];class N{m;h(e){this.m?.(e)}}const S=[2500,4e3],q=[800,1800],O=e=>{document.prerendering?b((()=>O(e))):\"complete\"!==document.readyState?addEventListener(\"load\",(()=>O(e)),!0):setTimeout(e)};e.CLSThresholds=E,e.FCPThresholds=T,e.INPThresholds=B,e.LCPThresholds=S,e.TTFBThresholds=q,e.onCLS=(e,t={})=>{P(u((()=>{let s,r=c(\"CLS\",0);const a=d(t,h),u=e=>{for(const t of e)a.h(t);a.i>r.value&&(r.value=a.i,r.entries=a.o,s())},l=f(\"layout-shift\",u);l&&(s=i(e,r,E,t.reportAllChanges),document.addEventListener(\"visibilitychange\",(()=>{\"hidden\"===document.visibilityState&&(u(l.takeRecords()),s(!0))})),n((()=>{a.i=0,r=c(\"CLS\",0),s=i(e,r,E,t.reportAllChanges),o((()=>s()))})),setTimeout(s))})))},e.onFCP=P,e.onINP=(e,t={})=>{globalThis.PerformanceEventTiming&&\"interactionId\"in PerformanceEventTiming.prototype&&b((()=>{F();let o,s=c(\"INP\");const r=d(t,x),a=e=>{A((()=>{for(const t of e)r.h(t);const t=r.T();t&&t.P!==s.value&&(s.value=t.P,s.entries=t.entries,o())}))},h=f(\"event\",a,{durationThreshold:t.durationThreshold??40});o=i(e,s,B,t.reportAllChanges),h&&(h.observe({type:\"first-input\",buffered:!0}),document.addEventListener(\"visibilitychange\",(()=>{\"hidden\"===document.visibilityState&&(a(h.takeRecords()),o(!0))})),n((()=>{r.v(),s=c(\"INP\"),o=i(e,s,B,t.reportAllChanges)})))}))},e.onLCP=(e,t={})=>{b((()=>{const s=y();let a,h=c(\"LCP\");const l=d(t,N),m=e=>{t.reportAllChanges||(e=e.slice(-1));for(const t of e)l.h(t),t.startTime<s.firstHiddenTime&&(h.value=Math.max(t.startTime-r(),0),h.entries=[t],a())},p=f(\"largest-contentful-paint\",m);if(p){a=i(e,h,S,t.reportAllChanges);const s=u((()=>{m(p.takeRecords()),p.disconnect(),a(!0)}));for(const e of[\"keydown\",\"click\",\"visibilitychange\"])addEventListener(e,(()=>A(s)),{capture:!0,once:!0});n((n=>{h=c(\"LCP\"),a=i(e,h,S,t.reportAllChanges),o((()=>{h.value=performance.now()-n.timeStamp,a(!0)}))}))}}))},e.onTTFB=(e,t={})=>{let o=c(\"TTFB\"),a=i(e,o,q,t.reportAllChanges);O((()=>{const d=s();d&&(o.value=Math.max(d.responseStart-r(),0),o.entries=[d],a(!0),n((()=>{o=c(\"TTFB\",0),a=i(e,o,q,t.reportAllChanges),a(!0)})))}))}}));\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","__webpack_require__.nc = undefined;","// packages/alpinejs/src/scheduler.js\nvar flushPending = false;\nvar flushing = false;\nvar queue = [];\nvar lastFlushedIndex = -1;\nvar transactionActive = false;\nfunction scheduler(callback) {\n  queueJob(callback);\n}\nfunction startTransaction() {\n  transactionActive = true;\n}\nfunction commitTransaction() {\n  transactionActive = false;\n  queueFlush();\n}\nfunction queueJob(job) {\n  if (!queue.includes(job))\n    queue.push(job);\n  queueFlush();\n}\nfunction dequeueJob(job) {\n  let index = queue.indexOf(job);\n  if (index !== -1 && index > lastFlushedIndex)\n    queue.splice(index, 1);\n}\nfunction queueFlush() {\n  if (!flushing && !flushPending) {\n    if (transactionActive)\n      return;\n    flushPending = true;\n    queueMicrotask(flushJobs);\n  }\n}\nfunction flushJobs() {\n  flushPending = false;\n  flushing = true;\n  for (let i = 0; i < queue.length; i++) {\n    queue[i]();\n    lastFlushedIndex = i;\n  }\n  queue.length = 0;\n  lastFlushedIndex = -1;\n  flushing = false;\n}\n\n// packages/alpinejs/src/reactivity.js\nvar reactive;\nvar effect;\nvar release;\nvar raw;\nvar shouldSchedule = true;\nfunction disableEffectScheduling(callback) {\n  shouldSchedule = false;\n  callback();\n  shouldSchedule = true;\n}\nfunction setReactivityEngine(engine) {\n  reactive = engine.reactive;\n  release = engine.release;\n  effect = (callback) => engine.effect(callback, { scheduler: (task) => {\n    if (shouldSchedule) {\n      scheduler(task);\n    } else {\n      task();\n    }\n  } });\n  raw = engine.raw;\n}\nfunction overrideEffect(override) {\n  effect = override;\n}\nfunction elementBoundEffect(el) {\n  let cleanup2 = () => {\n  };\n  let wrappedEffect = (callback) => {\n    let effectReference = effect(callback);\n    if (!el._x_effects) {\n      el._x_effects = /* @__PURE__ */ new Set();\n      el._x_runEffects = () => {\n        el._x_effects.forEach((i) => i());\n      };\n    }\n    el._x_effects.add(effectReference);\n    cleanup2 = () => {\n      if (effectReference === void 0)\n        return;\n      el._x_effects.delete(effectReference);\n      release(effectReference);\n    };\n    return effectReference;\n  };\n  return [wrappedEffect, () => {\n    cleanup2();\n  }];\n}\nfunction watch(getter, callback) {\n  let firstTime = true;\n  let oldValue;\n  let effectReference = effect(() => {\n    let value = getter();\n    JSON.stringify(value);\n    if (!firstTime) {\n      if (typeof value === \"object\" || value !== oldValue) {\n        let previousValue = oldValue;\n        queueMicrotask(() => {\n          callback(value, previousValue);\n        });\n      }\n    }\n    oldValue = value;\n    firstTime = false;\n  });\n  return () => release(effectReference);\n}\nasync function transaction(callback) {\n  startTransaction();\n  try {\n    await callback();\n    await Promise.resolve();\n  } finally {\n    commitTransaction();\n  }\n}\n\n// packages/alpinejs/src/mutation.js\nvar onAttributeAddeds = [];\nvar onElRemoveds = [];\nvar onElAddeds = [];\nfunction onElAdded(callback) {\n  onElAddeds.push(callback);\n}\nfunction onElRemoved(el, callback) {\n  if (typeof callback === \"function\") {\n    if (!el._x_cleanups)\n      el._x_cleanups = [];\n    el._x_cleanups.push(callback);\n  } else {\n    callback = el;\n    onElRemoveds.push(callback);\n  }\n}\nfunction onAttributesAdded(callback) {\n  onAttributeAddeds.push(callback);\n}\nfunction onAttributeRemoved(el, name, callback) {\n  if (!el._x_attributeCleanups)\n    el._x_attributeCleanups = {};\n  if (!el._x_attributeCleanups[name])\n    el._x_attributeCleanups[name] = [];\n  el._x_attributeCleanups[name].push(callback);\n}\nfunction cleanupAttributes(el, names) {\n  if (!el._x_attributeCleanups)\n    return;\n  Object.entries(el._x_attributeCleanups).forEach(([name, value]) => {\n    if (names === void 0 || names.includes(name)) {\n      value.forEach((i) => i());\n      delete el._x_attributeCleanups[name];\n    }\n  });\n}\nfunction cleanupElement(el) {\n  el._x_effects?.forEach(dequeueJob);\n  while (el._x_cleanups?.length)\n    el._x_cleanups.pop()();\n}\nvar observer = new MutationObserver(onMutate);\nvar currentlyObserving = false;\nfunction startObservingMutations() {\n  observer.observe(document, { subtree: true, childList: true, attributes: true, attributeOldValue: true });\n  currentlyObserving = true;\n}\nfunction stopObservingMutations() {\n  flushObserver();\n  observer.disconnect();\n  currentlyObserving = false;\n}\nvar queuedMutations = [];\nfunction flushObserver() {\n  let records = observer.takeRecords();\n  queuedMutations.push(() => records.length > 0 && onMutate(records));\n  let queueLengthWhenTriggered = queuedMutations.length;\n  queueMicrotask(() => {\n    if (queuedMutations.length === queueLengthWhenTriggered) {\n      while (queuedMutations.length > 0)\n        queuedMutations.shift()();\n    }\n  });\n}\nfunction mutateDom(callback) {\n  if (!currentlyObserving)\n    return callback();\n  stopObservingMutations();\n  let result = callback();\n  startObservingMutations();\n  return result;\n}\nvar isCollecting = false;\nvar deferredMutations = [];\nfunction deferMutations() {\n  isCollecting = true;\n}\nfunction flushAndStopDeferringMutations() {\n  isCollecting = false;\n  onMutate(deferredMutations);\n  deferredMutations = [];\n}\nfunction onMutate(mutations) {\n  if (isCollecting) {\n    deferredMutations = deferredMutations.concat(mutations);\n    return;\n  }\n  let addedNodes = [];\n  let removedNodes = /* @__PURE__ */ new Set();\n  let addedAttributes = /* @__PURE__ */ new Map();\n  let removedAttributes = /* @__PURE__ */ new Map();\n  for (let i = 0; i < mutations.length; i++) {\n    if (mutations[i].target._x_ignoreMutationObserver)\n      continue;\n    if (mutations[i].type === \"childList\") {\n      mutations[i].removedNodes.forEach((node) => {\n        if (node.nodeType !== 1)\n          return;\n        if (!node._x_marker)\n          return;\n        removedNodes.add(node);\n      });\n      mutations[i].addedNodes.forEach((node) => {\n        if (node.nodeType !== 1)\n          return;\n        if (removedNodes.has(node)) {\n          removedNodes.delete(node);\n          return;\n        }\n        if (node._x_marker)\n          return;\n        addedNodes.push(node);\n      });\n    }\n    if (mutations[i].type === \"attributes\") {\n      let el = mutations[i].target;\n      let name = mutations[i].attributeName;\n      let oldValue = mutations[i].oldValue;\n      let add2 = () => {\n        if (!addedAttributes.has(el))\n          addedAttributes.set(el, []);\n        addedAttributes.get(el).push({ name, value: el.getAttribute(name) });\n      };\n      let remove = () => {\n        if (!removedAttributes.has(el))\n          removedAttributes.set(el, []);\n        removedAttributes.get(el).push(name);\n      };\n      if (el.hasAttribute(name) && oldValue === null) {\n        add2();\n      } else if (el.hasAttribute(name)) {\n        remove();\n        add2();\n      } else {\n        remove();\n      }\n    }\n  }\n  removedAttributes.forEach((attrs, el) => {\n    cleanupAttributes(el, attrs);\n  });\n  addedAttributes.forEach((attrs, el) => {\n    onAttributeAddeds.forEach((i) => i(el, attrs));\n  });\n  for (let node of removedNodes) {\n    if (addedNodes.some((i) => i.contains(node)))\n      continue;\n    onElRemoveds.forEach((i) => i(node));\n  }\n  for (let node of addedNodes) {\n    if (!node.isConnected)\n      continue;\n    onElAddeds.forEach((i) => i(node));\n  }\n  addedNodes = null;\n  removedNodes = null;\n  addedAttributes = null;\n  removedAttributes = null;\n}\n\n// packages/alpinejs/src/scope.js\nfunction scope(node) {\n  return mergeProxies(closestDataStack(node));\n}\nfunction addScopeToNode(node, data2, referenceNode) {\n  node._x_dataStack = [data2, ...closestDataStack(referenceNode || node)];\n  return () => {\n    node._x_dataStack = node._x_dataStack.filter((i) => i !== data2);\n  };\n}\nfunction closestDataStack(node) {\n  if (node._x_dataStack)\n    return node._x_dataStack;\n  if (typeof ShadowRoot === \"function\" && node instanceof ShadowRoot) {\n    return closestDataStack(node.host);\n  }\n  if (!node.parentNode) {\n    return [];\n  }\n  return closestDataStack(node.parentNode);\n}\nfunction mergeProxies(objects) {\n  return new Proxy({ objects }, mergeProxyTrap);\n}\nvar mergeProxyTrap = {\n  ownKeys({ objects }) {\n    return Array.from(\n      new Set(objects.flatMap((i) => Object.keys(i)))\n    );\n  },\n  has({ objects }, name) {\n    if (name == Symbol.unscopables)\n      return false;\n    return objects.some(\n      (obj) => Object.prototype.hasOwnProperty.call(obj, name) || Reflect.has(obj, name)\n    );\n  },\n  get({ objects }, name, thisProxy) {\n    if (name == \"toJSON\")\n      return collapseProxies;\n    return Reflect.get(\n      objects.find(\n        (obj) => Reflect.has(obj, name)\n      ) || {},\n      name,\n      thisProxy\n    );\n  },\n  set({ objects }, name, value, thisProxy) {\n    const target = objects.find(\n      (obj) => Object.prototype.hasOwnProperty.call(obj, name)\n    ) || objects[objects.length - 1];\n    const descriptor = Object.getOwnPropertyDescriptor(target, name);\n    if (descriptor?.set && descriptor?.get)\n      return descriptor.set.call(thisProxy, value) || true;\n    return Reflect.set(target, name, value);\n  }\n};\nfunction collapseProxies() {\n  let keys = Reflect.ownKeys(this);\n  return keys.reduce((acc, key) => {\n    acc[key] = Reflect.get(this, key);\n    return acc;\n  }, {});\n}\n\n// packages/alpinejs/src/interceptor.js\nfunction initInterceptors(data2) {\n  let isObject2 = (val) => typeof val === \"object\" && !Array.isArray(val) && val !== null;\n  let recurse = (obj, basePath = \"\") => {\n    Object.entries(Object.getOwnPropertyDescriptors(obj)).forEach(([key, { value, enumerable }]) => {\n      if (enumerable === false || value === void 0)\n        return;\n      if (typeof value === \"object\" && value !== null && value.__v_skip)\n        return;\n      let path = basePath === \"\" ? key : `${basePath}.${key}`;\n      if (typeof value === \"object\" && value !== null && value._x_interceptor) {\n        obj[key] = value.initialize(data2, path, key);\n      } else {\n        if (isObject2(value) && value !== obj && !(value instanceof Element)) {\n          recurse(value, path);\n        }\n      }\n    });\n  };\n  return recurse(data2);\n}\nfunction interceptor(callback, mutateObj = () => {\n}) {\n  let obj = {\n    initialValue: void 0,\n    _x_interceptor: true,\n    initialize(data2, path, key) {\n      return callback(this.initialValue, () => get(data2, path), (value) => set(data2, path, value), path, key);\n    }\n  };\n  mutateObj(obj);\n  return (initialValue) => {\n    if (typeof initialValue === \"object\" && initialValue !== null && initialValue._x_interceptor) {\n      let initialize = obj.initialize.bind(obj);\n      obj.initialize = (data2, path, key) => {\n        let innerValue = initialValue.initialize(data2, path, key);\n        obj.initialValue = innerValue;\n        return initialize(data2, path, key);\n      };\n    } else {\n      obj.initialValue = initialValue;\n    }\n    return obj;\n  };\n}\nfunction get(obj, path) {\n  return path.split(\".\").reduce((carry, segment) => carry[segment], obj);\n}\nfunction set(obj, path, value) {\n  if (typeof path === \"string\")\n    path = path.split(\".\");\n  if (path.length === 1)\n    obj[path[0]] = value;\n  else if (path.length === 0)\n    throw error;\n  else {\n    if (obj[path[0]])\n      return set(obj[path[0]], path.slice(1), value);\n    else {\n      obj[path[0]] = {};\n      return set(obj[path[0]], path.slice(1), value);\n    }\n  }\n}\n\n// packages/alpinejs/src/magics.js\nvar magics = {};\nfunction magic(name, callback) {\n  magics[name] = callback;\n}\nfunction injectMagics(obj, el) {\n  let memoizedUtilities = getUtilities(el);\n  Object.entries(magics).forEach(([name, callback]) => {\n    Object.defineProperty(obj, `$${name}`, {\n      get() {\n        return callback(el, memoizedUtilities);\n      },\n      enumerable: false\n    });\n  });\n  return obj;\n}\nfunction getUtilities(el) {\n  let [utilities, cleanup2] = getElementBoundUtilities(el);\n  let utils = { interceptor, ...utilities };\n  onElRemoved(el, cleanup2);\n  return utils;\n}\n\n// packages/alpinejs/src/utils/error.js\nfunction tryCatch(el, expression, callback, ...args) {\n  try {\n    return callback(...args);\n  } catch (e) {\n    handleError(e, el, expression);\n  }\n}\nfunction handleError(...args) {\n  return errorHandler(...args);\n}\nvar errorHandler = normalErrorHandler;\nfunction setErrorHandler(handler4) {\n  errorHandler = handler4;\n}\nfunction normalErrorHandler(error2, el, expression = void 0) {\n  error2 = Object.assign(\n    error2 ?? { message: \"No error message given.\" },\n    { el, expression }\n  );\n  console.warn(`Alpine Expression Error: ${error2.message}\n\n${expression ? 'Expression: \"' + expression + '\"\\n\\n' : \"\"}`, el);\n  setTimeout(() => {\n    throw error2;\n  }, 0);\n}\n\n// packages/alpinejs/src/evaluator.js\nvar shouldAutoEvaluateFunctions = true;\nfunction dontAutoEvaluateFunctions(callback) {\n  let cache = shouldAutoEvaluateFunctions;\n  shouldAutoEvaluateFunctions = false;\n  let result = callback();\n  shouldAutoEvaluateFunctions = cache;\n  return result;\n}\nfunction evaluate(el, expression, extras = {}) {\n  let result;\n  evaluateLater(el, expression)((value) => result = value, extras);\n  return result;\n}\nfunction evaluateLater(...args) {\n  return theEvaluatorFunction(...args);\n}\nvar theEvaluatorFunction = normalEvaluator;\nfunction setEvaluator(newEvaluator) {\n  theEvaluatorFunction = newEvaluator;\n}\nvar theRawEvaluatorFunction;\nfunction setRawEvaluator(newEvaluator) {\n  theRawEvaluatorFunction = newEvaluator;\n}\nfunction normalEvaluator(el, expression) {\n  let overriddenMagics = {};\n  injectMagics(overriddenMagics, el);\n  let dataStack = [overriddenMagics, ...closestDataStack(el)];\n  let evaluator = typeof expression === \"function\" ? generateEvaluatorFromFunction(dataStack, expression) : generateEvaluatorFromString(dataStack, expression, el);\n  return tryCatch.bind(null, el, expression, evaluator);\n}\nfunction generateEvaluatorFromFunction(dataStack, func) {\n  return (receiver = () => {\n  }, { scope: scope2 = {}, params = [], context } = {}) => {\n    if (!shouldAutoEvaluateFunctions) {\n      runIfTypeOfFunction(receiver, func, mergeProxies([scope2, ...dataStack]), params);\n      return;\n    }\n    let result = func.apply(mergeProxies([scope2, ...dataStack]), params);\n    runIfTypeOfFunction(receiver, result);\n  };\n}\nvar evaluatorMemo = {};\nfunction generateFunctionFromString(expression, el) {\n  if (evaluatorMemo[expression]) {\n    return evaluatorMemo[expression];\n  }\n  let AsyncFunction = Object.getPrototypeOf(async function() {\n  }).constructor;\n  let rightSideSafeExpression = /^[\\n\\s]*if.*\\(.*\\)/.test(expression.trim()) || /^(let|const)\\s/.test(expression.trim()) ? `(async()=>{ ${expression} })()` : expression;\n  const safeAsyncFunction = () => {\n    try {\n      let func2 = new AsyncFunction(\n        [\"__self\", \"scope\"],\n        `with (scope) { __self.result = ${rightSideSafeExpression} }; __self.finished = true; return __self.result;`\n      );\n      Object.defineProperty(func2, \"name\", {\n        value: `[Alpine] ${expression}`\n      });\n      return func2;\n    } catch (error2) {\n      handleError(error2, el, expression);\n      return Promise.resolve();\n    }\n  };\n  let func = safeAsyncFunction();\n  evaluatorMemo[expression] = func;\n  return func;\n}\nfunction generateEvaluatorFromString(dataStack, expression, el) {\n  let func = generateFunctionFromString(expression, el);\n  return (receiver = () => {\n  }, { scope: scope2 = {}, params = [], context } = {}) => {\n    func.result = void 0;\n    func.finished = false;\n    let completeScope = mergeProxies([scope2, ...dataStack]);\n    if (typeof func === \"function\") {\n      let promise = func.call(context, func, completeScope).catch((error2) => handleError(error2, el, expression));\n      if (func.finished) {\n        runIfTypeOfFunction(receiver, func.result, completeScope, params, el);\n        func.result = void 0;\n      } else {\n        promise.then((result) => {\n          runIfTypeOfFunction(receiver, result, completeScope, params, el);\n        }).catch((error2) => handleError(error2, el, expression)).finally(() => func.result = void 0);\n      }\n    }\n  };\n}\nfunction runIfTypeOfFunction(receiver, value, scope2, params, el) {\n  if (shouldAutoEvaluateFunctions && typeof value === \"function\") {\n    let result = value.apply(scope2, params);\n    if (result instanceof Promise) {\n      result.then((i) => runIfTypeOfFunction(receiver, i, scope2, params)).catch((error2) => handleError(error2, el, value));\n    } else {\n      receiver(result);\n    }\n  } else if (typeof value === \"object\" && value instanceof Promise) {\n    value.then((i) => receiver(i));\n  } else {\n    receiver(value);\n  }\n}\nfunction evaluateRaw(...args) {\n  return theRawEvaluatorFunction(...args);\n}\nfunction normalRawEvaluator(el, expression, extras = {}) {\n  let overriddenMagics = {};\n  injectMagics(overriddenMagics, el);\n  let dataStack = [overriddenMagics, ...closestDataStack(el)];\n  let scope2 = mergeProxies([extras.scope ?? {}, ...dataStack]);\n  let params = extras.params ?? [];\n  if (expression.includes(\"await\")) {\n    let AsyncFunction = Object.getPrototypeOf(async function() {\n    }).constructor;\n    let rightSideSafeExpression = /^[\\n\\s]*if.*\\(.*\\)/.test(expression.trim()) || /^(let|const)\\s/.test(expression.trim()) ? `(async()=>{ ${expression} })()` : expression;\n    let func = new AsyncFunction(\n      [\"scope\"],\n      `with (scope) { let __result = ${rightSideSafeExpression}; return __result }`\n    );\n    let result = func.call(extras.context, scope2);\n    return result;\n  } else {\n    let rightSideSafeExpression = /^[\\n\\s]*if.*\\(.*\\)/.test(expression.trim()) || /^(let|const)\\s/.test(expression.trim()) ? `(()=>{ ${expression} })()` : expression;\n    let func = new Function(\n      [\"scope\"],\n      `with (scope) { let __result = ${rightSideSafeExpression}; return __result }`\n    );\n    let result = func.call(extras.context, scope2);\n    if (typeof result === \"function\" && shouldAutoEvaluateFunctions) {\n      return result.apply(scope2, params);\n    }\n    return result;\n  }\n}\n\n// packages/alpinejs/src/directives.js\nvar prefixAsString = \"x-\";\nfunction prefix(subject = \"\") {\n  return prefixAsString + subject;\n}\nfunction setPrefix(newPrefix) {\n  prefixAsString = newPrefix;\n}\nvar directiveHandlers = {};\nfunction directive(name, callback) {\n  directiveHandlers[name] = callback;\n  return {\n    before(directive2) {\n      if (!directiveHandlers[directive2]) {\n        console.warn(String.raw`Cannot find directive \\`${directive2}\\`. \\`${name}\\` will use the default order of execution`);\n        return;\n      }\n      const pos = directiveOrder.indexOf(directive2);\n      directiveOrder.splice(pos >= 0 ? pos : directiveOrder.indexOf(\"DEFAULT\"), 0, name);\n    }\n  };\n}\nfunction directiveExists(name) {\n  return Object.keys(directiveHandlers).includes(name);\n}\nfunction directives(el, attributes, originalAttributeOverride) {\n  attributes = Array.from(attributes);\n  if (el._x_virtualDirectives) {\n    let vAttributes = Object.entries(el._x_virtualDirectives).map(([name, value]) => ({ name, value }));\n    let staticAttributes = attributesOnly(vAttributes);\n    vAttributes = vAttributes.map((attribute) => {\n      if (staticAttributes.find((attr) => attr.name === attribute.name)) {\n        return {\n          name: `x-bind:${attribute.name}`,\n          value: `\"${attribute.value}\"`\n        };\n      }\n      return attribute;\n    });\n    attributes = attributes.concat(vAttributes);\n  }\n  let transformedAttributeMap = {};\n  let directives2 = attributes.map(toTransformedAttributes((newName, oldName) => transformedAttributeMap[newName] = oldName)).filter(outNonAlpineAttributes).map(toParsedDirectives(transformedAttributeMap, originalAttributeOverride)).sort(byPriority);\n  return directives2.map((directive2) => {\n    return getDirectiveHandler(el, directive2);\n  });\n}\nfunction attributesOnly(attributes) {\n  return Array.from(attributes).map(toTransformedAttributes()).filter((attr) => !outNonAlpineAttributes(attr));\n}\nvar isDeferringHandlers = false;\nvar directiveHandlerStacks = /* @__PURE__ */ new Map();\nvar currentHandlerStackKey = Symbol();\nfunction deferHandlingDirectives(callback) {\n  isDeferringHandlers = true;\n  let key = Symbol();\n  currentHandlerStackKey = key;\n  directiveHandlerStacks.set(key, []);\n  let flushHandlers = () => {\n    while (directiveHandlerStacks.get(key).length)\n      directiveHandlerStacks.get(key).shift()();\n    directiveHandlerStacks.delete(key);\n  };\n  let stopDeferring = () => {\n    isDeferringHandlers = false;\n    flushHandlers();\n  };\n  callback(flushHandlers);\n  stopDeferring();\n}\nfunction getElementBoundUtilities(el) {\n  let cleanups = [];\n  let cleanup2 = (callback) => cleanups.push(callback);\n  let [effect3, cleanupEffect] = elementBoundEffect(el);\n  cleanups.push(cleanupEffect);\n  let utilities = {\n    Alpine: alpine_default,\n    effect: effect3,\n    cleanup: cleanup2,\n    evaluateLater: evaluateLater.bind(evaluateLater, el),\n    evaluate: evaluate.bind(evaluate, el)\n  };\n  let doCleanup = () => cleanups.forEach((i) => i());\n  return [utilities, doCleanup];\n}\nfunction getDirectiveHandler(el, directive2) {\n  let noop = () => {\n  };\n  let handler4 = directiveHandlers[directive2.type] || noop;\n  let [utilities, cleanup2] = getElementBoundUtilities(el);\n  onAttributeRemoved(el, directive2.original, cleanup2);\n  let fullHandler = () => {\n    if (el._x_ignore || el._x_ignoreSelf)\n      return;\n    handler4.inline && handler4.inline(el, directive2, utilities);\n    handler4 = handler4.bind(handler4, el, directive2, utilities);\n    isDeferringHandlers ? directiveHandlerStacks.get(currentHandlerStackKey).push(handler4) : handler4();\n  };\n  fullHandler.runCleanups = cleanup2;\n  return fullHandler;\n}\nvar startingWith = (subject, replacement) => ({ name, value }) => {\n  if (name.startsWith(subject))\n    name = name.replace(subject, replacement);\n  return { name, value };\n};\nvar into = (i) => i;\nfunction toTransformedAttributes(callback = () => {\n}) {\n  return ({ name, value }) => {\n    let { name: newName, value: newValue } = attributeTransformers.reduce((carry, transform) => {\n      return transform(carry);\n    }, { name, value });\n    if (newName !== name)\n      callback(newName, name);\n    return { name: newName, value: newValue };\n  };\n}\nvar attributeTransformers = [];\nfunction mapAttributes(callback) {\n  attributeTransformers.push(callback);\n}\nfunction outNonAlpineAttributes({ name }) {\n  return alpineAttributeRegex().test(name);\n}\nvar alpineAttributeRegex = () => new RegExp(`^${prefixAsString}([^:^.]+)\\\\b`);\nfunction toParsedDirectives(transformedAttributeMap, originalAttributeOverride) {\n  return ({ name, value }) => {\n    if (name === value)\n      value = \"\";\n    let typeMatch = name.match(alpineAttributeRegex());\n    let valueMatch = name.match(/:([a-zA-Z0-9\\-_:]+)/);\n    let modifiers = name.match(/\\.[^.\\]]+(?=[^\\]]*$)/g) || [];\n    let original = originalAttributeOverride || transformedAttributeMap[name] || name;\n    return {\n      type: typeMatch ? typeMatch[1] : null,\n      value: valueMatch ? valueMatch[1] : null,\n      modifiers: modifiers.map((i) => i.replace(\".\", \"\")),\n      expression: value,\n      original\n    };\n  };\n}\nvar DEFAULT = \"DEFAULT\";\nvar directiveOrder = [\n  \"ignore\",\n  \"ref\",\n  \"data\",\n  \"id\",\n  \"anchor\",\n  \"bind\",\n  \"init\",\n  \"for\",\n  \"model\",\n  \"modelable\",\n  \"transition\",\n  \"show\",\n  \"if\",\n  DEFAULT,\n  \"teleport\"\n];\nfunction byPriority(a, b) {\n  let typeA = directiveOrder.indexOf(a.type) === -1 ? DEFAULT : a.type;\n  let typeB = directiveOrder.indexOf(b.type) === -1 ? DEFAULT : b.type;\n  return directiveOrder.indexOf(typeA) - directiveOrder.indexOf(typeB);\n}\n\n// packages/alpinejs/src/utils/dispatch.js\nfunction dispatch(el, name, detail = {}) {\n  el.dispatchEvent(\n    new CustomEvent(name, {\n      detail,\n      bubbles: true,\n      // Allows events to pass the shadow DOM barrier.\n      composed: true,\n      cancelable: true\n    })\n  );\n}\n\n// packages/alpinejs/src/utils/walk.js\nfunction walk(el, callback) {\n  if (typeof ShadowRoot === \"function\" && el instanceof ShadowRoot) {\n    Array.from(el.children).forEach((el2) => walk(el2, callback));\n    return;\n  }\n  let skip = false;\n  callback(el, () => skip = true);\n  if (skip)\n    return;\n  let node = el.firstElementChild;\n  while (node) {\n    walk(node, callback, false);\n    node = node.nextElementSibling;\n  }\n}\n\n// packages/alpinejs/src/utils/warn.js\nfunction warn(message, ...args) {\n  console.warn(`Alpine Warning: ${message}`, ...args);\n}\n\n// packages/alpinejs/src/lifecycle.js\nvar started = false;\nfunction start() {\n  if (started)\n    warn(\"Alpine has already been initialized on this page. Calling Alpine.start() more than once can cause problems.\");\n  started = true;\n  if (!document.body)\n    warn(\"Unable to initialize. Trying to load Alpine before `<body>` is available. Did you forget to add `defer` in Alpine's `<script>` tag?\");\n  dispatch(document, \"alpine:init\");\n  dispatch(document, \"alpine:initializing\");\n  startObservingMutations();\n  onElAdded((el) => initTree(el, walk));\n  onElRemoved((el) => destroyTree(el));\n  onAttributesAdded((el, attrs) => {\n    directives(el, attrs).forEach((handle) => handle());\n  });\n  let outNestedComponents = (el) => !closestRoot(el.parentElement, true);\n  Array.from(document.querySelectorAll(allSelectors().join(\",\"))).filter(outNestedComponents).forEach((el) => {\n    initTree(el);\n  });\n  dispatch(document, \"alpine:initialized\");\n  setTimeout(() => {\n    warnAboutMissingPlugins();\n  });\n}\nvar rootSelectorCallbacks = [];\nvar initSelectorCallbacks = [];\nfunction rootSelectors() {\n  return rootSelectorCallbacks.map((fn) => fn());\n}\nfunction allSelectors() {\n  return rootSelectorCallbacks.concat(initSelectorCallbacks).map((fn) => fn());\n}\nfunction addRootSelector(selectorCallback) {\n  rootSelectorCallbacks.push(selectorCallback);\n}\nfunction addInitSelector(selectorCallback) {\n  initSelectorCallbacks.push(selectorCallback);\n}\nfunction closestRoot(el, includeInitSelectors = false) {\n  return findClosest(el, (element) => {\n    const selectors = includeInitSelectors ? allSelectors() : rootSelectors();\n    if (selectors.some((selector) => element.matches(selector)))\n      return true;\n  });\n}\nfunction findClosest(el, callback) {\n  if (!el)\n    return;\n  if (callback(el))\n    return el;\n  if (el._x_teleportBack)\n    el = el._x_teleportBack;\n  if (el.parentNode instanceof ShadowRoot) {\n    return findClosest(el.parentNode.host, callback);\n  }\n  if (!el.parentElement)\n    return;\n  return findClosest(el.parentElement, callback);\n}\nfunction isRoot(el) {\n  return rootSelectors().some((selector) => el.matches(selector));\n}\nvar initInterceptors2 = [];\nfunction interceptInit(callback) {\n  initInterceptors2.push(callback);\n}\nvar markerDispenser = 1;\nfunction initTree(el, walker = walk, intercept = () => {\n}) {\n  if (findClosest(el, (i) => i._x_ignore))\n    return;\n  deferHandlingDirectives(() => {\n    walker(el, (el2, skip) => {\n      if (el2._x_marker)\n        return;\n      intercept(el2, skip);\n      initInterceptors2.forEach((i) => i(el2, skip));\n      directives(el2, el2.attributes).forEach((handle) => handle());\n      if (!el2._x_ignore)\n        el2._x_marker = markerDispenser++;\n      el2._x_ignore && skip();\n    });\n  });\n}\nfunction destroyTree(root, walker = walk) {\n  walker(root, (el) => {\n    cleanupElement(el);\n    cleanupAttributes(el);\n    delete el._x_marker;\n  });\n}\nfunction warnAboutMissingPlugins() {\n  let pluginDirectives = [\n    [\"ui\", \"dialog\", [\"[x-dialog], [x-popover]\"]],\n    [\"anchor\", \"anchor\", [\"[x-anchor]\"]],\n    [\"sort\", \"sort\", [\"[x-sort]\"]]\n  ];\n  pluginDirectives.forEach(([plugin2, directive2, selectors]) => {\n    if (directiveExists(directive2))\n      return;\n    selectors.some((selector) => {\n      if (document.querySelector(selector)) {\n        warn(`found \"${selector}\", but missing ${plugin2} plugin`);\n        return true;\n      }\n    });\n  });\n}\n\n// packages/alpinejs/src/nextTick.js\nvar tickStack = [];\nvar isHolding = false;\nfunction nextTick(callback = () => {\n}) {\n  queueMicrotask(() => {\n    isHolding || setTimeout(() => {\n      releaseNextTicks();\n    });\n  });\n  return new Promise((res) => {\n    tickStack.push(() => {\n      callback();\n      res();\n    });\n  });\n}\nfunction releaseNextTicks() {\n  isHolding = false;\n  while (tickStack.length)\n    tickStack.shift()();\n}\nfunction holdNextTicks() {\n  isHolding = true;\n}\n\n// packages/alpinejs/src/utils/classes.js\nfunction setClasses(el, value) {\n  if (Array.isArray(value)) {\n    return setClassesFromString(el, value.join(\" \"));\n  } else if (typeof value === \"object\" && value !== null) {\n    return setClassesFromObject(el, value);\n  } else if (typeof value === \"function\") {\n    return setClasses(el, value());\n  }\n  return setClassesFromString(el, value);\n}\nfunction setClassesFromString(el, classString) {\n  let split = (classString2) => classString2.split(\" \").filter(Boolean);\n  let missingClasses = (classString2) => classString2.split(\" \").filter((i) => !el.classList.contains(i)).filter(Boolean);\n  let addClassesAndReturnUndo = (classes) => {\n    el.classList.add(...classes);\n    return () => {\n      el.classList.remove(...classes);\n    };\n  };\n  classString = classString === true ? classString = \"\" : classString || \"\";\n  return addClassesAndReturnUndo(missingClasses(classString));\n}\nfunction setClassesFromObject(el, classObject) {\n  let split = (classString) => classString.split(\" \").filter(Boolean);\n  let forAdd = Object.entries(classObject).flatMap(([classString, bool]) => bool ? split(classString) : false).filter(Boolean);\n  let forRemove = Object.entries(classObject).flatMap(([classString, bool]) => !bool ? split(classString) : false).filter(Boolean);\n  let added = [];\n  let removed = [];\n  forRemove.forEach((i) => {\n    if (el.classList.contains(i)) {\n      el.classList.remove(i);\n      removed.push(i);\n    }\n  });\n  forAdd.forEach((i) => {\n    if (!el.classList.contains(i)) {\n      el.classList.add(i);\n      added.push(i);\n    }\n  });\n  return () => {\n    removed.forEach((i) => el.classList.add(i));\n    added.forEach((i) => el.classList.remove(i));\n  };\n}\n\n// packages/alpinejs/src/utils/styles.js\nfunction setStyles(el, value) {\n  if (typeof value === \"object\" && value !== null) {\n    return setStylesFromObject(el, value);\n  }\n  return setStylesFromString(el, value);\n}\nfunction setStylesFromObject(el, value) {\n  let previousStyles = {};\n  Object.entries(value).forEach(([key, value2]) => {\n    previousStyles[key] = el.style[key];\n    if (!key.startsWith(\"--\")) {\n      key = kebabCase(key);\n    }\n    el.style.setProperty(key, value2);\n  });\n  setTimeout(() => {\n    if (el.style.length === 0) {\n      el.removeAttribute(\"style\");\n    }\n  });\n  return () => {\n    setStyles(el, previousStyles);\n  };\n}\nfunction setStylesFromString(el, value) {\n  let cache = el.getAttribute(\"style\", value);\n  el.setAttribute(\"style\", value);\n  return () => {\n    el.setAttribute(\"style\", cache || \"\");\n  };\n}\nfunction kebabCase(subject) {\n  return subject.replace(/([a-z])([A-Z])/g, \"$1-$2\").toLowerCase();\n}\n\n// packages/alpinejs/src/utils/once.js\nfunction once(callback, fallback = () => {\n}) {\n  let called = false;\n  return function() {\n    if (!called) {\n      called = true;\n      callback.apply(this, arguments);\n    } else {\n      fallback.apply(this, arguments);\n    }\n  };\n}\n\n// packages/alpinejs/src/directives/x-transition.js\ndirective(\"transition\", (el, { value, modifiers, expression }, { evaluate: evaluate2 }) => {\n  if (typeof expression === \"function\")\n    expression = evaluate2(expression);\n  if (expression === false)\n    return;\n  if (!expression || typeof expression === \"boolean\") {\n    registerTransitionsFromHelper(el, modifiers, value);\n  } else {\n    registerTransitionsFromClassString(el, expression, value);\n  }\n});\nfunction registerTransitionsFromClassString(el, classString, stage) {\n  registerTransitionObject(el, setClasses, \"\");\n  let directiveStorageMap = {\n    \"enter\": (classes) => {\n      el._x_transition.enter.during = classes;\n    },\n    \"enter-start\": (classes) => {\n      el._x_transition.enter.start = classes;\n    },\n    \"enter-end\": (classes) => {\n      el._x_transition.enter.end = classes;\n    },\n    \"leave\": (classes) => {\n      el._x_transition.leave.during = classes;\n    },\n    \"leave-start\": (classes) => {\n      el._x_transition.leave.start = classes;\n    },\n    \"leave-end\": (classes) => {\n      el._x_transition.leave.end = classes;\n    }\n  };\n  directiveStorageMap[stage](classString);\n}\nfunction registerTransitionsFromHelper(el, modifiers, stage) {\n  registerTransitionObject(el, setStyles);\n  let doesntSpecify = !modifiers.includes(\"in\") && !modifiers.includes(\"out\") && !stage;\n  let transitioningIn = doesntSpecify || modifiers.includes(\"in\") || [\"enter\"].includes(stage);\n  let transitioningOut = doesntSpecify || modifiers.includes(\"out\") || [\"leave\"].includes(stage);\n  if (modifiers.includes(\"in\") && !doesntSpecify) {\n    modifiers = modifiers.filter((i, index) => index < modifiers.indexOf(\"out\"));\n  }\n  if (modifiers.includes(\"out\") && !doesntSpecify) {\n    modifiers = modifiers.filter((i, index) => index > modifiers.indexOf(\"out\"));\n  }\n  let wantsAll = !modifiers.includes(\"opacity\") && !modifiers.includes(\"scale\");\n  let wantsOpacity = wantsAll || modifiers.includes(\"opacity\");\n  let wantsScale = wantsAll || modifiers.includes(\"scale\");\n  let opacityValue = wantsOpacity ? 0 : 1;\n  let scaleValue = wantsScale ? modifierValue(modifiers, \"scale\", 95) / 100 : 1;\n  let delay = modifierValue(modifiers, \"delay\", 0) / 1e3;\n  let origin = modifierValue(modifiers, \"origin\", \"center\");\n  let property = \"opacity, transform\";\n  let durationIn = modifierValue(modifiers, \"duration\", 150) / 1e3;\n  let durationOut = modifierValue(modifiers, \"duration\", 75) / 1e3;\n  let easing = `cubic-bezier(0.4, 0.0, 0.2, 1)`;\n  if (transitioningIn) {\n    el._x_transition.enter.during = {\n      transformOrigin: origin,\n      transitionDelay: `${delay}s`,\n      transitionProperty: property,\n      transitionDuration: `${durationIn}s`,\n      transitionTimingFunction: easing\n    };\n    el._x_transition.enter.start = {\n      opacity: opacityValue,\n      transform: `scale(${scaleValue})`\n    };\n    el._x_transition.enter.end = {\n      opacity: 1,\n      transform: `scale(1)`\n    };\n  }\n  if (transitioningOut) {\n    el._x_transition.leave.during = {\n      transformOrigin: origin,\n      transitionDelay: `${delay}s`,\n      transitionProperty: property,\n      transitionDuration: `${durationOut}s`,\n      transitionTimingFunction: easing\n    };\n    el._x_transition.leave.start = {\n      opacity: 1,\n      transform: `scale(1)`\n    };\n    el._x_transition.leave.end = {\n      opacity: opacityValue,\n      transform: `scale(${scaleValue})`\n    };\n  }\n}\nfunction registerTransitionObject(el, setFunction, defaultValue = {}) {\n  if (!el._x_transition)\n    el._x_transition = {\n      enter: { during: defaultValue, start: defaultValue, end: defaultValue },\n      leave: { during: defaultValue, start: defaultValue, end: defaultValue },\n      in(before = () => {\n      }, after = () => {\n      }) {\n        transition(el, setFunction, {\n          during: this.enter.during,\n          start: this.enter.start,\n          end: this.enter.end\n        }, before, after);\n      },\n      out(before = () => {\n      }, after = () => {\n      }) {\n        transition(el, setFunction, {\n          during: this.leave.during,\n          start: this.leave.start,\n          end: this.leave.end\n        }, before, after);\n      }\n    };\n}\nwindow.Element.prototype._x_toggleAndCascadeWithTransitions = function(el, value, show, hide) {\n  const nextTick2 = document.visibilityState === \"visible\" ? requestAnimationFrame : setTimeout;\n  let clickAwayCompatibleShow = () => nextTick2(show);\n  if (value) {\n    if (el._x_transition && (el._x_transition.enter || el._x_transition.leave)) {\n      el._x_transition.enter && (Object.entries(el._x_transition.enter.during).length || Object.entries(el._x_transition.enter.start).length || Object.entries(el._x_transition.enter.end).length) ? el._x_transition.in(show) : clickAwayCompatibleShow();\n    } else {\n      el._x_transition ? el._x_transition.in(show) : clickAwayCompatibleShow();\n    }\n    return;\n  }\n  el._x_hidePromise = el._x_transition ? new Promise((resolve, reject) => {\n    el._x_transition.out(() => {\n    }, () => resolve(hide));\n    el._x_transitioning && el._x_transitioning.beforeCancel(() => reject({ isFromCancelledTransition: true }));\n  }) : Promise.resolve(hide);\n  queueMicrotask(() => {\n    let closest = closestHide(el);\n    if (closest) {\n      if (!closest._x_hideChildren)\n        closest._x_hideChildren = [];\n      closest._x_hideChildren.push(el);\n    } else {\n      nextTick2(() => {\n        let hideAfterChildren = (el2) => {\n          let carry = Promise.all([\n            el2._x_hidePromise,\n            ...(el2._x_hideChildren || []).map(hideAfterChildren)\n          ]).then(([i]) => i?.());\n          delete el2._x_hidePromise;\n          delete el2._x_hideChildren;\n          return carry;\n        };\n        hideAfterChildren(el).catch((e) => {\n          if (!e.isFromCancelledTransition)\n            throw e;\n        });\n      });\n    }\n  });\n};\nfunction closestHide(el) {\n  let parent = el.parentNode;\n  if (!parent)\n    return;\n  return parent._x_hidePromise ? parent : closestHide(parent);\n}\nfunction transition(el, setFunction, { during, start: start2, end } = {}, before = () => {\n}, after = () => {\n}) {\n  if (el._x_transitioning)\n    el._x_transitioning.cancel();\n  if (Object.keys(during).length === 0 && Object.keys(start2).length === 0 && Object.keys(end).length === 0) {\n    before();\n    after();\n    return;\n  }\n  let undoStart, undoDuring, undoEnd;\n  performTransition(el, {\n    start() {\n      undoStart = setFunction(el, start2);\n    },\n    during() {\n      undoDuring = setFunction(el, during);\n    },\n    before,\n    end() {\n      undoStart();\n      undoEnd = setFunction(el, end);\n    },\n    after,\n    cleanup() {\n      undoDuring();\n      undoEnd();\n    }\n  });\n}\nfunction performTransition(el, stages) {\n  let interrupted, reachedBefore, reachedEnd;\n  let finish = once(() => {\n    mutateDom(() => {\n      interrupted = true;\n      if (!reachedBefore)\n        stages.before();\n      if (!reachedEnd) {\n        stages.end();\n        releaseNextTicks();\n      }\n      stages.after();\n      if (el.isConnected)\n        stages.cleanup();\n      delete el._x_transitioning;\n    });\n  });\n  el._x_transitioning = {\n    beforeCancels: [],\n    beforeCancel(callback) {\n      this.beforeCancels.push(callback);\n    },\n    cancel: once(function() {\n      while (this.beforeCancels.length) {\n        this.beforeCancels.shift()();\n      }\n      ;\n      finish();\n    }),\n    finish\n  };\n  mutateDom(() => {\n    stages.start();\n    stages.during();\n  });\n  holdNextTicks();\n  requestAnimationFrame(() => {\n    if (interrupted)\n      return;\n    let duration = Number(getComputedStyle(el).transitionDuration.replace(/,.*/, \"\").replace(\"s\", \"\")) * 1e3;\n    let delay = Number(getComputedStyle(el).transitionDelay.replace(/,.*/, \"\").replace(\"s\", \"\")) * 1e3;\n    if (duration === 0)\n      duration = Number(getComputedStyle(el).animationDuration.replace(\"s\", \"\")) * 1e3;\n    mutateDom(() => {\n      stages.before();\n    });\n    reachedBefore = true;\n    requestAnimationFrame(() => {\n      if (interrupted)\n        return;\n      mutateDom(() => {\n        stages.end();\n      });\n      releaseNextTicks();\n      setTimeout(el._x_transitioning.finish, duration + delay);\n      reachedEnd = true;\n    });\n  });\n}\nfunction modifierValue(modifiers, key, fallback) {\n  if (modifiers.indexOf(key) === -1)\n    return fallback;\n  const rawValue = modifiers[modifiers.indexOf(key) + 1];\n  if (!rawValue)\n    return fallback;\n  if (key === \"scale\") {\n    if (isNaN(rawValue))\n      return fallback;\n  }\n  if (key === \"duration\" || key === \"delay\") {\n    let match = rawValue.match(/([0-9]+)ms/);\n    if (match)\n      return match[1];\n  }\n  if (key === \"origin\") {\n    if ([\"top\", \"right\", \"left\", \"center\", \"bottom\"].includes(modifiers[modifiers.indexOf(key) + 2])) {\n      return [rawValue, modifiers[modifiers.indexOf(key) + 2]].join(\" \");\n    }\n  }\n  return rawValue;\n}\n\n// packages/alpinejs/src/clone.js\nvar isCloning = false;\nfunction skipDuringClone(callback, fallback = () => {\n}) {\n  return (...args) => isCloning ? fallback(...args) : callback(...args);\n}\nfunction onlyDuringClone(callback) {\n  return (...args) => isCloning && callback(...args);\n}\nvar interceptors = [];\nfunction interceptClone(callback) {\n  interceptors.push(callback);\n}\nfunction cloneNode(from, to) {\n  interceptors.forEach((i) => i(from, to));\n  isCloning = true;\n  dontRegisterReactiveSideEffects(() => {\n    initTree(to, (el, callback) => {\n      callback(el, () => {\n      });\n    });\n  });\n  isCloning = false;\n}\nvar isCloningLegacy = false;\nfunction clone(oldEl, newEl) {\n  if (!newEl._x_dataStack)\n    newEl._x_dataStack = oldEl._x_dataStack;\n  isCloning = true;\n  isCloningLegacy = true;\n  dontRegisterReactiveSideEffects(() => {\n    cloneTree(newEl);\n  });\n  isCloning = false;\n  isCloningLegacy = false;\n}\nfunction cloneTree(el) {\n  let hasRunThroughFirstEl = false;\n  let shallowWalker = (el2, callback) => {\n    walk(el2, (el3, skip) => {\n      if (hasRunThroughFirstEl && isRoot(el3))\n        return skip();\n      hasRunThroughFirstEl = true;\n      callback(el3, skip);\n    });\n  };\n  initTree(el, shallowWalker);\n}\nfunction dontRegisterReactiveSideEffects(callback) {\n  let cache = effect;\n  overrideEffect((callback2, el) => {\n    let storedEffect = cache(callback2);\n    release(storedEffect);\n    return () => {\n    };\n  });\n  callback();\n  overrideEffect(cache);\n}\n\n// packages/alpinejs/src/utils/bind.js\nfunction bind(el, name, value, modifiers = []) {\n  if (!el._x_bindings)\n    el._x_bindings = reactive({});\n  el._x_bindings[name] = value;\n  name = modifiers.includes(\"camel\") ? camelCase(name) : name;\n  switch (name) {\n    case \"value\":\n      bindInputValue(el, value);\n      break;\n    case \"style\":\n      bindStyles(el, value);\n      break;\n    case \"class\":\n      bindClasses(el, value);\n      break;\n    case \"selected\":\n    case \"checked\":\n      bindAttributeAndProperty(el, name, value);\n      break;\n    default:\n      bindAttribute(el, name, value);\n      break;\n  }\n}\nfunction bindInputValue(el, value) {\n  if (isRadio(el)) {\n    if (el.attributes.value === void 0) {\n      el.value = value;\n    }\n    if (window.fromModel) {\n      if (typeof value === \"boolean\") {\n        el.checked = safeParseBoolean(el.value) === value;\n      } else {\n        el.checked = checkedAttrLooseCompare(el.value, value);\n      }\n    }\n  } else if (isCheckbox(el)) {\n    if (Number.isInteger(value)) {\n      el.value = value;\n    } else if (!Array.isArray(value) && typeof value !== \"boolean\" && ![null, void 0].includes(value)) {\n      el.value = String(value);\n    } else {\n      if (Array.isArray(value)) {\n        el.checked = value.some((val) => checkedAttrLooseCompare(val, el.value));\n      } else {\n        el.checked = !!value;\n      }\n    }\n  } else if (el.tagName === \"SELECT\") {\n    updateSelect(el, value);\n  } else {\n    if (el.value === value)\n      return;\n    el.value = value === void 0 ? \"\" : value;\n  }\n}\nfunction bindClasses(el, value) {\n  if (el._x_undoAddedClasses)\n    el._x_undoAddedClasses();\n  el._x_undoAddedClasses = setClasses(el, value);\n}\nfunction bindStyles(el, value) {\n  if (el._x_undoAddedStyles)\n    el._x_undoAddedStyles();\n  el._x_undoAddedStyles = setStyles(el, value);\n}\nfunction bindAttributeAndProperty(el, name, value) {\n  bindAttribute(el, name, value);\n  setPropertyIfChanged(el, name, value);\n}\nfunction bindAttribute(el, name, value) {\n  if ([null, void 0, false].includes(value) && attributeShouldntBePreservedIfFalsy(name)) {\n    el.removeAttribute(name);\n  } else {\n    if (isBooleanAttr(name))\n      value = name;\n    setIfChanged(el, name, value);\n  }\n}\nfunction setIfChanged(el, attrName, value) {\n  if (el.getAttribute(attrName) != value) {\n    el.setAttribute(attrName, value);\n  }\n}\nfunction setPropertyIfChanged(el, propName, value) {\n  if (el[propName] !== value) {\n    el[propName] = value;\n  }\n}\nfunction updateSelect(el, value) {\n  const arrayWrappedValue = [].concat(value).map((value2) => {\n    return value2 + \"\";\n  });\n  Array.from(el.options).forEach((option) => {\n    option.selected = arrayWrappedValue.includes(option.value);\n  });\n}\nfunction camelCase(subject) {\n  return subject.toLowerCase().replace(/-(\\w)/g, (match, char) => char.toUpperCase());\n}\nfunction checkedAttrLooseCompare(valueA, valueB) {\n  return valueA == valueB;\n}\nfunction safeParseBoolean(rawValue) {\n  if ([1, \"1\", \"true\", \"on\", \"yes\", true].includes(rawValue)) {\n    return true;\n  }\n  if ([0, \"0\", \"false\", \"off\", \"no\", false].includes(rawValue)) {\n    return false;\n  }\n  return rawValue ? Boolean(rawValue) : null;\n}\nvar booleanAttributes = /* @__PURE__ */ new Set([\n  \"allowfullscreen\",\n  \"async\",\n  \"autofocus\",\n  \"autoplay\",\n  \"checked\",\n  \"controls\",\n  \"default\",\n  \"defer\",\n  \"disabled\",\n  \"formnovalidate\",\n  \"inert\",\n  \"ismap\",\n  \"itemscope\",\n  \"loop\",\n  \"multiple\",\n  \"muted\",\n  \"nomodule\",\n  \"novalidate\",\n  \"open\",\n  \"playsinline\",\n  \"readonly\",\n  \"required\",\n  \"reversed\",\n  \"selected\",\n  \"shadowrootclonable\",\n  \"shadowrootdelegatesfocus\",\n  \"shadowrootserializable\"\n]);\nfunction isBooleanAttr(attrName) {\n  return booleanAttributes.has(attrName);\n}\nfunction attributeShouldntBePreservedIfFalsy(name) {\n  return ![\"aria-pressed\", \"aria-checked\", \"aria-expanded\", \"aria-selected\"].includes(name);\n}\nfunction getBinding(el, name, fallback) {\n  if (el._x_bindings && el._x_bindings[name] !== void 0)\n    return el._x_bindings[name];\n  return getAttributeBinding(el, name, fallback);\n}\nfunction extractProp(el, name, fallback, extract = true) {\n  if (el._x_bindings && el._x_bindings[name] !== void 0)\n    return el._x_bindings[name];\n  if (el._x_inlineBindings && el._x_inlineBindings[name] !== void 0) {\n    let binding = el._x_inlineBindings[name];\n    binding.extract = extract;\n    return dontAutoEvaluateFunctions(() => {\n      return evaluate(el, binding.expression);\n    });\n  }\n  return getAttributeBinding(el, name, fallback);\n}\nfunction getAttributeBinding(el, name, fallback) {\n  let attr = el.getAttribute(name);\n  if (attr === null)\n    return typeof fallback === \"function\" ? fallback() : fallback;\n  if (attr === \"\")\n    return true;\n  if (isBooleanAttr(name)) {\n    return !![name, \"true\"].includes(attr);\n  }\n  return attr;\n}\nfunction isCheckbox(el) {\n  return el.type === \"checkbox\" || el.localName === \"ui-checkbox\" || el.localName === \"ui-switch\";\n}\nfunction isRadio(el) {\n  return el.type === \"radio\" || el.localName === \"ui-radio\";\n}\n\n// packages/alpinejs/src/utils/debounce.js\nfunction debounce(func, wait) {\n  let timeout;\n  return function() {\n    const context = this, args = arguments;\n    const later = function() {\n      timeout = null;\n      func.apply(context, args);\n    };\n    clearTimeout(timeout);\n    timeout = setTimeout(later, wait);\n  };\n}\n\n// packages/alpinejs/src/utils/throttle.js\nfunction throttle(func, limit) {\n  let inThrottle;\n  return function() {\n    let context = this, args = arguments;\n    if (!inThrottle) {\n      func.apply(context, args);\n      inThrottle = true;\n      setTimeout(() => inThrottle = false, limit);\n    }\n  };\n}\n\n// packages/alpinejs/src/entangle.js\nfunction entangle({ get: outerGet, set: outerSet }, { get: innerGet, set: innerSet }) {\n  let firstRun = true;\n  let outerHash;\n  let innerHash;\n  let reference = effect(() => {\n    let outer = outerGet();\n    let inner = innerGet();\n    if (firstRun) {\n      innerSet(cloneIfObject(outer));\n      firstRun = false;\n    } else {\n      let outerHashLatest = JSON.stringify(outer);\n      let innerHashLatest = JSON.stringify(inner);\n      if (outerHashLatest !== outerHash) {\n        innerSet(cloneIfObject(outer));\n      } else if (outerHashLatest !== innerHashLatest) {\n        outerSet(cloneIfObject(inner));\n      } else {\n      }\n    }\n    outerHash = JSON.stringify(outerGet());\n    innerHash = JSON.stringify(innerGet());\n  });\n  return () => {\n    release(reference);\n  };\n}\nfunction cloneIfObject(value) {\n  return typeof value === \"object\" ? JSON.parse(JSON.stringify(value)) : value;\n}\n\n// packages/alpinejs/src/plugin.js\nfunction plugin(callback) {\n  let callbacks = Array.isArray(callback) ? callback : [callback];\n  callbacks.forEach((i) => i(alpine_default));\n}\n\n// packages/alpinejs/src/store.js\nvar stores = {};\nvar isReactive = false;\nfunction store(name, value) {\n  if (!isReactive) {\n    stores = reactive(stores);\n    isReactive = true;\n  }\n  if (value === void 0) {\n    return stores[name];\n  }\n  stores[name] = value;\n  initInterceptors(stores[name]);\n  if (typeof value === \"object\" && value !== null && value.hasOwnProperty(\"init\") && typeof value.init === \"function\") {\n    stores[name].init();\n  }\n}\nfunction getStores() {\n  return stores;\n}\n\n// packages/alpinejs/src/binds.js\nvar binds = {};\nfunction bind2(name, bindings) {\n  let getBindings = typeof bindings !== \"function\" ? () => bindings : bindings;\n  if (name instanceof Element) {\n    return applyBindingsObject(name, getBindings());\n  } else {\n    binds[name] = getBindings;\n  }\n  return () => {\n  };\n}\nfunction injectBindingProviders(obj) {\n  Object.entries(binds).forEach(([name, callback]) => {\n    Object.defineProperty(obj, name, {\n      get() {\n        return (...args) => {\n          return callback(...args);\n        };\n      }\n    });\n  });\n  return obj;\n}\nfunction applyBindingsObject(el, obj, original) {\n  let cleanupRunners = [];\n  while (cleanupRunners.length)\n    cleanupRunners.pop()();\n  let attributes = Object.entries(obj).map(([name, value]) => ({ name, value }));\n  let staticAttributes = attributesOnly(attributes);\n  attributes = attributes.map((attribute) => {\n    if (staticAttributes.find((attr) => attr.name === attribute.name)) {\n      return {\n        name: `x-bind:${attribute.name}`,\n        value: `\"${attribute.value}\"`\n      };\n    }\n    return attribute;\n  });\n  directives(el, attributes, original).map((handle) => {\n    cleanupRunners.push(handle.runCleanups);\n    handle();\n  });\n  return () => {\n    while (cleanupRunners.length)\n      cleanupRunners.pop()();\n  };\n}\n\n// packages/alpinejs/src/datas.js\nvar datas = {};\nfunction data(name, callback) {\n  datas[name] = callback;\n}\nfunction injectDataProviders(obj, context) {\n  Object.entries(datas).forEach(([name, callback]) => {\n    Object.defineProperty(obj, name, {\n      get() {\n        return (...args) => {\n          return callback.bind(context)(...args);\n        };\n      },\n      enumerable: false\n    });\n  });\n  return obj;\n}\n\n// packages/alpinejs/src/alpine.js\nvar Alpine = {\n  get reactive() {\n    return reactive;\n  },\n  get release() {\n    return release;\n  },\n  get effect() {\n    return effect;\n  },\n  get raw() {\n    return raw;\n  },\n  get transaction() {\n    return transaction;\n  },\n  version: \"3.15.8\",\n  flushAndStopDeferringMutations,\n  dontAutoEvaluateFunctions,\n  disableEffectScheduling,\n  startObservingMutations,\n  stopObservingMutations,\n  setReactivityEngine,\n  onAttributeRemoved,\n  onAttributesAdded,\n  closestDataStack,\n  skipDuringClone,\n  onlyDuringClone,\n  addRootSelector,\n  addInitSelector,\n  setErrorHandler,\n  interceptClone,\n  addScopeToNode,\n  deferMutations,\n  mapAttributes,\n  evaluateLater,\n  interceptInit,\n  initInterceptors,\n  injectMagics,\n  setEvaluator,\n  setRawEvaluator,\n  mergeProxies,\n  extractProp,\n  findClosest,\n  onElRemoved,\n  closestRoot,\n  destroyTree,\n  interceptor,\n  // INTERNAL: not public API and is subject to change without major release.\n  transition,\n  // INTERNAL\n  setStyles,\n  // INTERNAL\n  mutateDom,\n  directive,\n  entangle,\n  throttle,\n  debounce,\n  evaluate,\n  evaluateRaw,\n  initTree,\n  nextTick,\n  prefixed: prefix,\n  prefix: setPrefix,\n  plugin,\n  magic,\n  store,\n  start,\n  clone,\n  // INTERNAL\n  cloneNode,\n  // INTERNAL\n  bound: getBinding,\n  $data: scope,\n  watch,\n  walk,\n  data,\n  bind: bind2\n};\nvar alpine_default = Alpine;\n\n// node_modules/@vue/shared/dist/shared.esm-bundler.js\nfunction makeMap(str, expectsLowerCase) {\n  const map = /* @__PURE__ */ Object.create(null);\n  const list = str.split(\",\");\n  for (let i = 0; i < list.length; i++) {\n    map[list[i]] = true;\n  }\n  return expectsLowerCase ? (val) => !!map[val.toLowerCase()] : (val) => !!map[val];\n}\nvar specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nvar isBooleanAttr2 = /* @__PURE__ */ makeMap(specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`);\nvar EMPTY_OBJ = true ? Object.freeze({}) : {};\nvar EMPTY_ARR = true ? Object.freeze([]) : [];\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar hasOwn = (val, key) => hasOwnProperty.call(val, key);\nvar isArray = Array.isArray;\nvar isMap = (val) => toTypeString(val) === \"[object Map]\";\nvar isString = (val) => typeof val === \"string\";\nvar isSymbol = (val) => typeof val === \"symbol\";\nvar isObject = (val) => val !== null && typeof val === \"object\";\nvar objectToString = Object.prototype.toString;\nvar toTypeString = (value) => objectToString.call(value);\nvar toRawType = (value) => {\n  return toTypeString(value).slice(8, -1);\n};\nvar isIntegerKey = (key) => isString(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\nvar cacheStringFunction = (fn) => {\n  const cache = /* @__PURE__ */ Object.create(null);\n  return (str) => {\n    const hit = cache[str];\n    return hit || (cache[str] = fn(str));\n  };\n};\nvar camelizeRE = /-(\\w)/g;\nvar camelize = cacheStringFunction((str) => {\n  return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n});\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = cacheStringFunction((str) => str.replace(hyphenateRE, \"-$1\").toLowerCase());\nvar capitalize = cacheStringFunction((str) => str.charAt(0).toUpperCase() + str.slice(1));\nvar toHandlerKey = cacheStringFunction((str) => str ? `on${capitalize(str)}` : ``);\nvar hasChanged = (value, oldValue) => value !== oldValue && (value === value || oldValue === oldValue);\n\n// node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js\nvar targetMap = /* @__PURE__ */ new WeakMap();\nvar effectStack = [];\nvar activeEffect;\nvar ITERATE_KEY = Symbol(true ? \"iterate\" : \"\");\nvar MAP_KEY_ITERATE_KEY = Symbol(true ? \"Map key iterate\" : \"\");\nfunction isEffect(fn) {\n  return fn && fn._isEffect === true;\n}\nfunction effect2(fn, options = EMPTY_OBJ) {\n  if (isEffect(fn)) {\n    fn = fn.raw;\n  }\n  const effect3 = createReactiveEffect(fn, options);\n  if (!options.lazy) {\n    effect3();\n  }\n  return effect3;\n}\nfunction stop(effect3) {\n  if (effect3.active) {\n    cleanup(effect3);\n    if (effect3.options.onStop) {\n      effect3.options.onStop();\n    }\n    effect3.active = false;\n  }\n}\nvar uid = 0;\nfunction createReactiveEffect(fn, options) {\n  const effect3 = function reactiveEffect() {\n    if (!effect3.active) {\n      return fn();\n    }\n    if (!effectStack.includes(effect3)) {\n      cleanup(effect3);\n      try {\n        enableTracking();\n        effectStack.push(effect3);\n        activeEffect = effect3;\n        return fn();\n      } finally {\n        effectStack.pop();\n        resetTracking();\n        activeEffect = effectStack[effectStack.length - 1];\n      }\n    }\n  };\n  effect3.id = uid++;\n  effect3.allowRecurse = !!options.allowRecurse;\n  effect3._isEffect = true;\n  effect3.active = true;\n  effect3.raw = fn;\n  effect3.deps = [];\n  effect3.options = options;\n  return effect3;\n}\nfunction cleanup(effect3) {\n  const { deps } = effect3;\n  if (deps.length) {\n    for (let i = 0; i < deps.length; i++) {\n      deps[i].delete(effect3);\n    }\n    deps.length = 0;\n  }\n}\nvar shouldTrack = true;\nvar trackStack = [];\nfunction pauseTracking() {\n  trackStack.push(shouldTrack);\n  shouldTrack = false;\n}\nfunction enableTracking() {\n  trackStack.push(shouldTrack);\n  shouldTrack = true;\n}\nfunction resetTracking() {\n  const last = trackStack.pop();\n  shouldTrack = last === void 0 ? true : last;\n}\nfunction track(target, type, key) {\n  if (!shouldTrack || activeEffect === void 0) {\n    return;\n  }\n  let depsMap = targetMap.get(target);\n  if (!depsMap) {\n    targetMap.set(target, depsMap = /* @__PURE__ */ new Map());\n  }\n  let dep = depsMap.get(key);\n  if (!dep) {\n    depsMap.set(key, dep = /* @__PURE__ */ new Set());\n  }\n  if (!dep.has(activeEffect)) {\n    dep.add(activeEffect);\n    activeEffect.deps.push(dep);\n    if (activeEffect.options.onTrack) {\n      activeEffect.options.onTrack({\n        effect: activeEffect,\n        target,\n        type,\n        key\n      });\n    }\n  }\n}\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\n  const depsMap = targetMap.get(target);\n  if (!depsMap) {\n    return;\n  }\n  const effects = /* @__PURE__ */ new Set();\n  const add2 = (effectsToAdd) => {\n    if (effectsToAdd) {\n      effectsToAdd.forEach((effect3) => {\n        if (effect3 !== activeEffect || effect3.allowRecurse) {\n          effects.add(effect3);\n        }\n      });\n    }\n  };\n  if (type === \"clear\") {\n    depsMap.forEach(add2);\n  } else if (key === \"length\" && isArray(target)) {\n    depsMap.forEach((dep, key2) => {\n      if (key2 === \"length\" || key2 >= newValue) {\n        add2(dep);\n      }\n    });\n  } else {\n    if (key !== void 0) {\n      add2(depsMap.get(key));\n    }\n    switch (type) {\n      case \"add\":\n        if (!isArray(target)) {\n          add2(depsMap.get(ITERATE_KEY));\n          if (isMap(target)) {\n            add2(depsMap.get(MAP_KEY_ITERATE_KEY));\n          }\n        } else if (isIntegerKey(key)) {\n          add2(depsMap.get(\"length\"));\n        }\n        break;\n      case \"delete\":\n        if (!isArray(target)) {\n          add2(depsMap.get(ITERATE_KEY));\n          if (isMap(target)) {\n            add2(depsMap.get(MAP_KEY_ITERATE_KEY));\n          }\n        }\n        break;\n      case \"set\":\n        if (isMap(target)) {\n          add2(depsMap.get(ITERATE_KEY));\n        }\n        break;\n    }\n  }\n  const run = (effect3) => {\n    if (effect3.options.onTrigger) {\n      effect3.options.onTrigger({\n        effect: effect3,\n        target,\n        key,\n        type,\n        newValue,\n        oldValue,\n        oldTarget\n      });\n    }\n    if (effect3.options.scheduler) {\n      effect3.options.scheduler(effect3);\n    } else {\n      effect3();\n    }\n  };\n  effects.forEach(run);\n}\nvar isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);\nvar builtInSymbols = new Set(Object.getOwnPropertyNames(Symbol).map((key) => Symbol[key]).filter(isSymbol));\nvar get2 = /* @__PURE__ */ createGetter();\nvar readonlyGet = /* @__PURE__ */ createGetter(true);\nvar arrayInstrumentations = /* @__PURE__ */ createArrayInstrumentations();\nfunction createArrayInstrumentations() {\n  const instrumentations = {};\n  [\"includes\", \"indexOf\", \"lastIndexOf\"].forEach((key) => {\n    instrumentations[key] = function(...args) {\n      const arr = toRaw(this);\n      for (let i = 0, l = this.length; i < l; i++) {\n        track(arr, \"get\", i + \"\");\n      }\n      const res = arr[key](...args);\n      if (res === -1 || res === false) {\n        return arr[key](...args.map(toRaw));\n      } else {\n        return res;\n      }\n    };\n  });\n  [\"push\", \"pop\", \"shift\", \"unshift\", \"splice\"].forEach((key) => {\n    instrumentations[key] = function(...args) {\n      pauseTracking();\n      const res = toRaw(this)[key].apply(this, args);\n      resetTracking();\n      return res;\n    };\n  });\n  return instrumentations;\n}\nfunction createGetter(isReadonly = false, shallow = false) {\n  return function get3(target, key, receiver) {\n    if (key === \"__v_isReactive\") {\n      return !isReadonly;\n    } else if (key === \"__v_isReadonly\") {\n      return isReadonly;\n    } else if (key === \"__v_raw\" && receiver === (isReadonly ? shallow ? shallowReadonlyMap : readonlyMap : shallow ? shallowReactiveMap : reactiveMap).get(target)) {\n      return target;\n    }\n    const targetIsArray = isArray(target);\n    if (!isReadonly && targetIsArray && hasOwn(arrayInstrumentations, key)) {\n      return Reflect.get(arrayInstrumentations, key, receiver);\n    }\n    const res = Reflect.get(target, key, receiver);\n    if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n      return res;\n    }\n    if (!isReadonly) {\n      track(target, \"get\", key);\n    }\n    if (shallow) {\n      return res;\n    }\n    if (isRef(res)) {\n      const shouldUnwrap = !targetIsArray || !isIntegerKey(key);\n      return shouldUnwrap ? res.value : res;\n    }\n    if (isObject(res)) {\n      return isReadonly ? readonly(res) : reactive2(res);\n    }\n    return res;\n  };\n}\nvar set2 = /* @__PURE__ */ createSetter();\nfunction createSetter(shallow = false) {\n  return function set3(target, key, value, receiver) {\n    let oldValue = target[key];\n    if (!shallow) {\n      value = toRaw(value);\n      oldValue = toRaw(oldValue);\n      if (!isArray(target) && isRef(oldValue) && !isRef(value)) {\n        oldValue.value = value;\n        return true;\n      }\n    }\n    const hadKey = isArray(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn(target, key);\n    const result = Reflect.set(target, key, value, receiver);\n    if (target === toRaw(receiver)) {\n      if (!hadKey) {\n        trigger(target, \"add\", key, value);\n      } else if (hasChanged(value, oldValue)) {\n        trigger(target, \"set\", key, value, oldValue);\n      }\n    }\n    return result;\n  };\n}\nfunction deleteProperty(target, key) {\n  const hadKey = hasOwn(target, key);\n  const oldValue = target[key];\n  const result = Reflect.deleteProperty(target, key);\n  if (result && hadKey) {\n    trigger(target, \"delete\", key, void 0, oldValue);\n  }\n  return result;\n}\nfunction has(target, key) {\n  const result = Reflect.has(target, key);\n  if (!isSymbol(key) || !builtInSymbols.has(key)) {\n    track(target, \"has\", key);\n  }\n  return result;\n}\nfunction ownKeys(target) {\n  track(target, \"iterate\", isArray(target) ? \"length\" : ITERATE_KEY);\n  return Reflect.ownKeys(target);\n}\nvar mutableHandlers = {\n  get: get2,\n  set: set2,\n  deleteProperty,\n  has,\n  ownKeys\n};\nvar readonlyHandlers = {\n  get: readonlyGet,\n  set(target, key) {\n    if (true) {\n      console.warn(`Set operation on key \"${String(key)}\" failed: target is readonly.`, target);\n    }\n    return true;\n  },\n  deleteProperty(target, key) {\n    if (true) {\n      console.warn(`Delete operation on key \"${String(key)}\" failed: target is readonly.`, target);\n    }\n    return true;\n  }\n};\nvar toReactive = (value) => isObject(value) ? reactive2(value) : value;\nvar toReadonly = (value) => isObject(value) ? readonly(value) : value;\nvar toShallow = (value) => value;\nvar getProto = (v) => Reflect.getPrototypeOf(v);\nfunction get$1(target, key, isReadonly = false, isShallow = false) {\n  target = target[\n    \"__v_raw\"\n    /* RAW */\n  ];\n  const rawTarget = toRaw(target);\n  const rawKey = toRaw(key);\n  if (key !== rawKey) {\n    !isReadonly && track(rawTarget, \"get\", key);\n  }\n  !isReadonly && track(rawTarget, \"get\", rawKey);\n  const { has: has2 } = getProto(rawTarget);\n  const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n  if (has2.call(rawTarget, key)) {\n    return wrap(target.get(key));\n  } else if (has2.call(rawTarget, rawKey)) {\n    return wrap(target.get(rawKey));\n  } else if (target !== rawTarget) {\n    target.get(key);\n  }\n}\nfunction has$1(key, isReadonly = false) {\n  const target = this[\n    \"__v_raw\"\n    /* RAW */\n  ];\n  const rawTarget = toRaw(target);\n  const rawKey = toRaw(key);\n  if (key !== rawKey) {\n    !isReadonly && track(rawTarget, \"has\", key);\n  }\n  !isReadonly && track(rawTarget, \"has\", rawKey);\n  return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);\n}\nfunction size(target, isReadonly = false) {\n  target = target[\n    \"__v_raw\"\n    /* RAW */\n  ];\n  !isReadonly && track(toRaw(target), \"iterate\", ITERATE_KEY);\n  return Reflect.get(target, \"size\", target);\n}\nfunction add(value) {\n  value = toRaw(value);\n  const target = toRaw(this);\n  const proto = getProto(target);\n  const hadKey = proto.has.call(target, value);\n  if (!hadKey) {\n    target.add(value);\n    trigger(target, \"add\", value, value);\n  }\n  return this;\n}\nfunction set$1(key, value) {\n  value = toRaw(value);\n  const target = toRaw(this);\n  const { has: has2, get: get3 } = getProto(target);\n  let hadKey = has2.call(target, key);\n  if (!hadKey) {\n    key = toRaw(key);\n    hadKey = has2.call(target, key);\n  } else if (true) {\n    checkIdentityKeys(target, has2, key);\n  }\n  const oldValue = get3.call(target, key);\n  target.set(key, value);\n  if (!hadKey) {\n    trigger(target, \"add\", key, value);\n  } else if (hasChanged(value, oldValue)) {\n    trigger(target, \"set\", key, value, oldValue);\n  }\n  return this;\n}\nfunction deleteEntry(key) {\n  const target = toRaw(this);\n  const { has: has2, get: get3 } = getProto(target);\n  let hadKey = has2.call(target, key);\n  if (!hadKey) {\n    key = toRaw(key);\n    hadKey = has2.call(target, key);\n  } else if (true) {\n    checkIdentityKeys(target, has2, key);\n  }\n  const oldValue = get3 ? get3.call(target, key) : void 0;\n  const result = target.delete(key);\n  if (hadKey) {\n    trigger(target, \"delete\", key, void 0, oldValue);\n  }\n  return result;\n}\nfunction clear() {\n  const target = toRaw(this);\n  const hadItems = target.size !== 0;\n  const oldTarget = true ? isMap(target) ? new Map(target) : new Set(target) : void 0;\n  const result = target.clear();\n  if (hadItems) {\n    trigger(target, \"clear\", void 0, void 0, oldTarget);\n  }\n  return result;\n}\nfunction createForEach(isReadonly, isShallow) {\n  return function forEach(callback, thisArg) {\n    const observed = this;\n    const target = observed[\n      \"__v_raw\"\n      /* RAW */\n    ];\n    const rawTarget = toRaw(target);\n    const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n    !isReadonly && track(rawTarget, \"iterate\", ITERATE_KEY);\n    return target.forEach((value, key) => {\n      return callback.call(thisArg, wrap(value), wrap(key), observed);\n    });\n  };\n}\nfunction createIterableMethod(method, isReadonly, isShallow) {\n  return function(...args) {\n    const target = this[\n      \"__v_raw\"\n      /* RAW */\n    ];\n    const rawTarget = toRaw(target);\n    const targetIsMap = isMap(rawTarget);\n    const isPair = method === \"entries\" || method === Symbol.iterator && targetIsMap;\n    const isKeyOnly = method === \"keys\" && targetIsMap;\n    const innerIterator = target[method](...args);\n    const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n    !isReadonly && track(rawTarget, \"iterate\", isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY);\n    return {\n      // iterator protocol\n      next() {\n        const { value, done } = innerIterator.next();\n        return done ? { value, done } : {\n          value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\n          done\n        };\n      },\n      // iterable protocol\n      [Symbol.iterator]() {\n        return this;\n      }\n    };\n  };\n}\nfunction createReadonlyMethod(type) {\n  return function(...args) {\n    if (true) {\n      const key = args[0] ? `on key \"${args[0]}\" ` : ``;\n      console.warn(`${capitalize(type)} operation ${key}failed: target is readonly.`, toRaw(this));\n    }\n    return type === \"delete\" ? false : this;\n  };\n}\nfunction createInstrumentations() {\n  const mutableInstrumentations2 = {\n    get(key) {\n      return get$1(this, key);\n    },\n    get size() {\n      return size(this);\n    },\n    has: has$1,\n    add,\n    set: set$1,\n    delete: deleteEntry,\n    clear,\n    forEach: createForEach(false, false)\n  };\n  const shallowInstrumentations2 = {\n    get(key) {\n      return get$1(this, key, false, true);\n    },\n    get size() {\n      return size(this);\n    },\n    has: has$1,\n    add,\n    set: set$1,\n    delete: deleteEntry,\n    clear,\n    forEach: createForEach(false, true)\n  };\n  const readonlyInstrumentations2 = {\n    get(key) {\n      return get$1(this, key, true);\n    },\n    get size() {\n      return size(this, true);\n    },\n    has(key) {\n      return has$1.call(this, key, true);\n    },\n    add: createReadonlyMethod(\n      \"add\"\n      /* ADD */\n    ),\n    set: createReadonlyMethod(\n      \"set\"\n      /* SET */\n    ),\n    delete: createReadonlyMethod(\n      \"delete\"\n      /* DELETE */\n    ),\n    clear: createReadonlyMethod(\n      \"clear\"\n      /* CLEAR */\n    ),\n    forEach: createForEach(true, false)\n  };\n  const shallowReadonlyInstrumentations2 = {\n    get(key) {\n      return get$1(this, key, true, true);\n    },\n    get size() {\n      return size(this, true);\n    },\n    has(key) {\n      return has$1.call(this, key, true);\n    },\n    add: createReadonlyMethod(\n      \"add\"\n      /* ADD */\n    ),\n    set: createReadonlyMethod(\n      \"set\"\n      /* SET */\n    ),\n    delete: createReadonlyMethod(\n      \"delete\"\n      /* DELETE */\n    ),\n    clear: createReadonlyMethod(\n      \"clear\"\n      /* CLEAR */\n    ),\n    forEach: createForEach(true, true)\n  };\n  const iteratorMethods = [\"keys\", \"values\", \"entries\", Symbol.iterator];\n  iteratorMethods.forEach((method) => {\n    mutableInstrumentations2[method] = createIterableMethod(method, false, false);\n    readonlyInstrumentations2[method] = createIterableMethod(method, true, false);\n    shallowInstrumentations2[method] = createIterableMethod(method, false, true);\n    shallowReadonlyInstrumentations2[method] = createIterableMethod(method, true, true);\n  });\n  return [\n    mutableInstrumentations2,\n    readonlyInstrumentations2,\n    shallowInstrumentations2,\n    shallowReadonlyInstrumentations2\n  ];\n}\nvar [mutableInstrumentations, readonlyInstrumentations, shallowInstrumentations, shallowReadonlyInstrumentations] = /* @__PURE__ */ createInstrumentations();\nfunction createInstrumentationGetter(isReadonly, shallow) {\n  const instrumentations = shallow ? isReadonly ? shallowReadonlyInstrumentations : shallowInstrumentations : isReadonly ? readonlyInstrumentations : mutableInstrumentations;\n  return (target, key, receiver) => {\n    if (key === \"__v_isReactive\") {\n      return !isReadonly;\n    } else if (key === \"__v_isReadonly\") {\n      return isReadonly;\n    } else if (key === \"__v_raw\") {\n      return target;\n    }\n    return Reflect.get(hasOwn(instrumentations, key) && key in target ? instrumentations : target, key, receiver);\n  };\n}\nvar mutableCollectionHandlers = {\n  get: /* @__PURE__ */ createInstrumentationGetter(false, false)\n};\nvar readonlyCollectionHandlers = {\n  get: /* @__PURE__ */ createInstrumentationGetter(true, false)\n};\nfunction checkIdentityKeys(target, has2, key) {\n  const rawKey = toRaw(key);\n  if (rawKey !== key && has2.call(target, rawKey)) {\n    const type = toRawType(target);\n    console.warn(`Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`);\n  }\n}\nvar reactiveMap = /* @__PURE__ */ new WeakMap();\nvar shallowReactiveMap = /* @__PURE__ */ new WeakMap();\nvar readonlyMap = /* @__PURE__ */ new WeakMap();\nvar shallowReadonlyMap = /* @__PURE__ */ new WeakMap();\nfunction targetTypeMap(rawType) {\n  switch (rawType) {\n    case \"Object\":\n    case \"Array\":\n      return 1;\n    case \"Map\":\n    case \"Set\":\n    case \"WeakMap\":\n    case \"WeakSet\":\n      return 2;\n    default:\n      return 0;\n  }\n}\nfunction getTargetType(value) {\n  return value[\n    \"__v_skip\"\n    /* SKIP */\n  ] || !Object.isExtensible(value) ? 0 : targetTypeMap(toRawType(value));\n}\nfunction reactive2(target) {\n  if (target && target[\n    \"__v_isReadonly\"\n    /* IS_READONLY */\n  ]) {\n    return target;\n  }\n  return createReactiveObject(target, false, mutableHandlers, mutableCollectionHandlers, reactiveMap);\n}\nfunction readonly(target) {\n  return createReactiveObject(target, true, readonlyHandlers, readonlyCollectionHandlers, readonlyMap);\n}\nfunction createReactiveObject(target, isReadonly, baseHandlers, collectionHandlers, proxyMap) {\n  if (!isObject(target)) {\n    if (true) {\n      console.warn(`value cannot be made reactive: ${String(target)}`);\n    }\n    return target;\n  }\n  if (target[\n    \"__v_raw\"\n    /* RAW */\n  ] && !(isReadonly && target[\n    \"__v_isReactive\"\n    /* IS_REACTIVE */\n  ])) {\n    return target;\n  }\n  const existingProxy = proxyMap.get(target);\n  if (existingProxy) {\n    return existingProxy;\n  }\n  const targetType = getTargetType(target);\n  if (targetType === 0) {\n    return target;\n  }\n  const proxy = new Proxy(target, targetType === 2 ? collectionHandlers : baseHandlers);\n  proxyMap.set(target, proxy);\n  return proxy;\n}\nfunction toRaw(observed) {\n  return observed && toRaw(observed[\n    \"__v_raw\"\n    /* RAW */\n  ]) || observed;\n}\nfunction isRef(r) {\n  return Boolean(r && r.__v_isRef === true);\n}\n\n// packages/alpinejs/src/magics/$nextTick.js\nmagic(\"nextTick\", () => nextTick);\n\n// packages/alpinejs/src/magics/$dispatch.js\nmagic(\"dispatch\", (el) => dispatch.bind(dispatch, el));\n\n// packages/alpinejs/src/magics/$watch.js\nmagic(\"watch\", (el, { evaluateLater: evaluateLater2, cleanup: cleanup2 }) => (key, callback) => {\n  let evaluate2 = evaluateLater2(key);\n  let getter = () => {\n    let value;\n    evaluate2((i) => value = i);\n    return value;\n  };\n  let unwatch = watch(getter, callback);\n  cleanup2(unwatch);\n});\n\n// packages/alpinejs/src/magics/$store.js\nmagic(\"store\", getStores);\n\n// packages/alpinejs/src/magics/$data.js\nmagic(\"data\", (el) => scope(el));\n\n// packages/alpinejs/src/magics/$root.js\nmagic(\"root\", (el) => closestRoot(el));\n\n// packages/alpinejs/src/magics/$refs.js\nmagic(\"refs\", (el) => {\n  if (el._x_refs_proxy)\n    return el._x_refs_proxy;\n  el._x_refs_proxy = mergeProxies(getArrayOfRefObject(el));\n  return el._x_refs_proxy;\n});\nfunction getArrayOfRefObject(el) {\n  let refObjects = [];\n  findClosest(el, (i) => {\n    if (i._x_refs)\n      refObjects.push(i._x_refs);\n  });\n  return refObjects;\n}\n\n// packages/alpinejs/src/ids.js\nvar globalIdMemo = {};\nfunction findAndIncrementId(name) {\n  if (!globalIdMemo[name])\n    globalIdMemo[name] = 0;\n  return ++globalIdMemo[name];\n}\nfunction closestIdRoot(el, name) {\n  return findClosest(el, (element) => {\n    if (element._x_ids && element._x_ids[name])\n      return true;\n  });\n}\nfunction setIdRoot(el, name) {\n  if (!el._x_ids)\n    el._x_ids = {};\n  if (!el._x_ids[name])\n    el._x_ids[name] = findAndIncrementId(name);\n}\n\n// packages/alpinejs/src/magics/$id.js\nmagic(\"id\", (el, { cleanup: cleanup2 }) => (name, key = null) => {\n  let cacheKey = `${name}${key ? `-${key}` : \"\"}`;\n  return cacheIdByNameOnElement(el, cacheKey, cleanup2, () => {\n    let root = closestIdRoot(el, name);\n    let id = root ? root._x_ids[name] : findAndIncrementId(name);\n    return key ? `${name}-${id}-${key}` : `${name}-${id}`;\n  });\n});\ninterceptClone((from, to) => {\n  if (from._x_id) {\n    to._x_id = from._x_id;\n  }\n});\nfunction cacheIdByNameOnElement(el, cacheKey, cleanup2, callback) {\n  if (!el._x_id)\n    el._x_id = {};\n  if (el._x_id[cacheKey])\n    return el._x_id[cacheKey];\n  let output = callback();\n  el._x_id[cacheKey] = output;\n  cleanup2(() => {\n    delete el._x_id[cacheKey];\n  });\n  return output;\n}\n\n// packages/alpinejs/src/magics/$el.js\nmagic(\"el\", (el) => el);\n\n// packages/alpinejs/src/magics/index.js\nwarnMissingPluginMagic(\"Focus\", \"focus\", \"focus\");\nwarnMissingPluginMagic(\"Persist\", \"persist\", \"persist\");\nfunction warnMissingPluginMagic(name, magicName, slug) {\n  magic(magicName, (el) => warn(`You can't use [$${magicName}] without first installing the \"${name}\" plugin here: https://alpinejs.dev/plugins/${slug}`, el));\n}\n\n// packages/alpinejs/src/directives/x-modelable.js\ndirective(\"modelable\", (el, { expression }, { effect: effect3, evaluateLater: evaluateLater2, cleanup: cleanup2 }) => {\n  let func = evaluateLater2(expression);\n  let innerGet = () => {\n    let result;\n    func((i) => result = i);\n    return result;\n  };\n  let evaluateInnerSet = evaluateLater2(`${expression} = __placeholder`);\n  let innerSet = (val) => evaluateInnerSet(() => {\n  }, { scope: { \"__placeholder\": val } });\n  let initialValue = innerGet();\n  innerSet(initialValue);\n  queueMicrotask(() => {\n    if (!el._x_model)\n      return;\n    el._x_removeModelListeners[\"default\"]();\n    let outerGet = el._x_model.get;\n    let outerSet = el._x_model.set;\n    let releaseEntanglement = entangle(\n      {\n        get() {\n          return outerGet();\n        },\n        set(value) {\n          outerSet(value);\n        }\n      },\n      {\n        get() {\n          return innerGet();\n        },\n        set(value) {\n          innerSet(value);\n        }\n      }\n    );\n    cleanup2(releaseEntanglement);\n  });\n});\n\n// packages/alpinejs/src/directives/x-teleport.js\ndirective(\"teleport\", (el, { modifiers, expression }, { cleanup: cleanup2 }) => {\n  if (el.tagName.toLowerCase() !== \"template\")\n    warn(\"x-teleport can only be used on a <template> tag\", el);\n  let target = getTarget(expression);\n  let clone2 = el.content.cloneNode(true).firstElementChild;\n  el._x_teleport = clone2;\n  clone2._x_teleportBack = el;\n  el.setAttribute(\"data-teleport-template\", true);\n  clone2.setAttribute(\"data-teleport-target\", true);\n  if (el._x_forwardEvents) {\n    el._x_forwardEvents.forEach((eventName) => {\n      clone2.addEventListener(eventName, (e) => {\n        e.stopPropagation();\n        el.dispatchEvent(new e.constructor(e.type, e));\n      });\n    });\n  }\n  addScopeToNode(clone2, {}, el);\n  let placeInDom = (clone3, target2, modifiers2) => {\n    if (modifiers2.includes(\"prepend\")) {\n      target2.parentNode.insertBefore(clone3, target2);\n    } else if (modifiers2.includes(\"append\")) {\n      target2.parentNode.insertBefore(clone3, target2.nextSibling);\n    } else {\n      target2.appendChild(clone3);\n    }\n  };\n  mutateDom(() => {\n    placeInDom(clone2, target, modifiers);\n    skipDuringClone(() => {\n      initTree(clone2);\n    })();\n  });\n  el._x_teleportPutBack = () => {\n    let target2 = getTarget(expression);\n    mutateDom(() => {\n      placeInDom(el._x_teleport, target2, modifiers);\n    });\n  };\n  cleanup2(\n    () => mutateDom(() => {\n      clone2.remove();\n      destroyTree(clone2);\n    })\n  );\n});\nvar teleportContainerDuringClone = document.createElement(\"div\");\nfunction getTarget(expression) {\n  let target = skipDuringClone(() => {\n    return document.querySelector(expression);\n  }, () => {\n    return teleportContainerDuringClone;\n  })();\n  if (!target)\n    warn(`Cannot find x-teleport element for selector: \"${expression}\"`);\n  return target;\n}\n\n// packages/alpinejs/src/directives/x-ignore.js\nvar handler = () => {\n};\nhandler.inline = (el, { modifiers }, { cleanup: cleanup2 }) => {\n  modifiers.includes(\"self\") ? el._x_ignoreSelf = true : el._x_ignore = true;\n  cleanup2(() => {\n    modifiers.includes(\"self\") ? delete el._x_ignoreSelf : delete el._x_ignore;\n  });\n};\ndirective(\"ignore\", handler);\n\n// packages/alpinejs/src/directives/x-effect.js\ndirective(\"effect\", skipDuringClone((el, { expression }, { effect: effect3 }) => {\n  effect3(evaluateLater(el, expression));\n}));\n\n// packages/alpinejs/src/utils/on.js\nfunction on(el, event, modifiers, callback) {\n  let listenerTarget = el;\n  let handler4 = (e) => callback(e);\n  let options = {};\n  let wrapHandler = (callback2, wrapper) => (e) => wrapper(callback2, e);\n  if (modifiers.includes(\"dot\"))\n    event = dotSyntax(event);\n  if (modifiers.includes(\"camel\"))\n    event = camelCase2(event);\n  if (modifiers.includes(\"passive\"))\n    options.passive = true;\n  if (modifiers.includes(\"capture\"))\n    options.capture = true;\n  if (modifiers.includes(\"window\"))\n    listenerTarget = window;\n  if (modifiers.includes(\"document\"))\n    listenerTarget = document;\n  if (modifiers.includes(\"debounce\")) {\n    let nextModifier = modifiers[modifiers.indexOf(\"debounce\") + 1] || \"invalid-wait\";\n    let wait = isNumeric(nextModifier.split(\"ms\")[0]) ? Number(nextModifier.split(\"ms\")[0]) : 250;\n    handler4 = debounce(handler4, wait);\n  }\n  if (modifiers.includes(\"throttle\")) {\n    let nextModifier = modifiers[modifiers.indexOf(\"throttle\") + 1] || \"invalid-wait\";\n    let wait = isNumeric(nextModifier.split(\"ms\")[0]) ? Number(nextModifier.split(\"ms\")[0]) : 250;\n    handler4 = throttle(handler4, wait);\n  }\n  if (modifiers.includes(\"prevent\"))\n    handler4 = wrapHandler(handler4, (next, e) => {\n      e.preventDefault();\n      next(e);\n    });\n  if (modifiers.includes(\"stop\"))\n    handler4 = wrapHandler(handler4, (next, e) => {\n      e.stopPropagation();\n      next(e);\n    });\n  if (modifiers.includes(\"once\")) {\n    handler4 = wrapHandler(handler4, (next, e) => {\n      next(e);\n      listenerTarget.removeEventListener(event, handler4, options);\n    });\n  }\n  if (modifiers.includes(\"away\") || modifiers.includes(\"outside\")) {\n    listenerTarget = document;\n    handler4 = wrapHandler(handler4, (next, e) => {\n      if (el.contains(e.target))\n        return;\n      if (e.target.isConnected === false)\n        return;\n      if (el.offsetWidth < 1 && el.offsetHeight < 1)\n        return;\n      if (el._x_isShown === false)\n        return;\n      next(e);\n    });\n  }\n  if (modifiers.includes(\"self\"))\n    handler4 = wrapHandler(handler4, (next, e) => {\n      e.target === el && next(e);\n    });\n  if (event === \"submit\") {\n    handler4 = wrapHandler(handler4, (next, e) => {\n      if (e.target._x_pendingModelUpdates) {\n        e.target._x_pendingModelUpdates.forEach((fn) => fn());\n      }\n      next(e);\n    });\n  }\n  if (isKeyEvent(event) || isClickEvent(event)) {\n    handler4 = wrapHandler(handler4, (next, e) => {\n      if (isListeningForASpecificKeyThatHasntBeenPressed(e, modifiers)) {\n        return;\n      }\n      next(e);\n    });\n  }\n  listenerTarget.addEventListener(event, handler4, options);\n  return () => {\n    listenerTarget.removeEventListener(event, handler4, options);\n  };\n}\nfunction dotSyntax(subject) {\n  return subject.replace(/-/g, \".\");\n}\nfunction camelCase2(subject) {\n  return subject.toLowerCase().replace(/-(\\w)/g, (match, char) => char.toUpperCase());\n}\nfunction isNumeric(subject) {\n  return !Array.isArray(subject) && !isNaN(subject);\n}\nfunction kebabCase2(subject) {\n  if ([\" \", \"_\"].includes(\n    subject\n  ))\n    return subject;\n  return subject.replace(/([a-z])([A-Z])/g, \"$1-$2\").replace(/[_\\s]/, \"-\").toLowerCase();\n}\nfunction isKeyEvent(event) {\n  return [\"keydown\", \"keyup\"].includes(event);\n}\nfunction isClickEvent(event) {\n  return [\"contextmenu\", \"click\", \"mouse\"].some((i) => event.includes(i));\n}\nfunction isListeningForASpecificKeyThatHasntBeenPressed(e, modifiers) {\n  let keyModifiers = modifiers.filter((i) => {\n    return ![\"window\", \"document\", \"prevent\", \"stop\", \"once\", \"capture\", \"self\", \"away\", \"outside\", \"passive\", \"preserve-scroll\", \"blur\", \"change\", \"lazy\"].includes(i);\n  });\n  if (keyModifiers.includes(\"debounce\")) {\n    let debounceIndex = keyModifiers.indexOf(\"debounce\");\n    keyModifiers.splice(debounceIndex, isNumeric((keyModifiers[debounceIndex + 1] || \"invalid-wait\").split(\"ms\")[0]) ? 2 : 1);\n  }\n  if (keyModifiers.includes(\"throttle\")) {\n    let debounceIndex = keyModifiers.indexOf(\"throttle\");\n    keyModifiers.splice(debounceIndex, isNumeric((keyModifiers[debounceIndex + 1] || \"invalid-wait\").split(\"ms\")[0]) ? 2 : 1);\n  }\n  if (keyModifiers.length === 0)\n    return false;\n  if (keyModifiers.length === 1 && keyToModifiers(e.key).includes(keyModifiers[0]))\n    return false;\n  const systemKeyModifiers = [\"ctrl\", \"shift\", \"alt\", \"meta\", \"cmd\", \"super\"];\n  const selectedSystemKeyModifiers = systemKeyModifiers.filter((modifier) => keyModifiers.includes(modifier));\n  keyModifiers = keyModifiers.filter((i) => !selectedSystemKeyModifiers.includes(i));\n  if (selectedSystemKeyModifiers.length > 0) {\n    const activelyPressedKeyModifiers = selectedSystemKeyModifiers.filter((modifier) => {\n      if (modifier === \"cmd\" || modifier === \"super\")\n        modifier = \"meta\";\n      return e[`${modifier}Key`];\n    });\n    if (activelyPressedKeyModifiers.length === selectedSystemKeyModifiers.length) {\n      if (isClickEvent(e.type))\n        return false;\n      if (keyToModifiers(e.key).includes(keyModifiers[0]))\n        return false;\n    }\n  }\n  return true;\n}\nfunction keyToModifiers(key) {\n  if (!key)\n    return [];\n  key = kebabCase2(key);\n  let modifierToKeyMap = {\n    \"ctrl\": \"control\",\n    \"slash\": \"/\",\n    \"space\": \" \",\n    \"spacebar\": \" \",\n    \"cmd\": \"meta\",\n    \"esc\": \"escape\",\n    \"up\": \"arrow-up\",\n    \"down\": \"arrow-down\",\n    \"left\": \"arrow-left\",\n    \"right\": \"arrow-right\",\n    \"period\": \".\",\n    \"comma\": \",\",\n    \"equal\": \"=\",\n    \"minus\": \"-\",\n    \"underscore\": \"_\"\n  };\n  modifierToKeyMap[key] = key;\n  return Object.keys(modifierToKeyMap).map((modifier) => {\n    if (modifierToKeyMap[modifier] === key)\n      return modifier;\n  }).filter((modifier) => modifier);\n}\n\n// packages/alpinejs/src/directives/x-model.js\ndirective(\"model\", (el, { modifiers, expression }, { effect: effect3, cleanup: cleanup2 }) => {\n  let scopeTarget = el;\n  if (modifiers.includes(\"parent\")) {\n    scopeTarget = el.parentNode;\n  }\n  let evaluateGet = evaluateLater(scopeTarget, expression);\n  let evaluateSet;\n  if (typeof expression === \"string\") {\n    evaluateSet = evaluateLater(scopeTarget, `${expression} = __placeholder`);\n  } else if (typeof expression === \"function\" && typeof expression() === \"string\") {\n    evaluateSet = evaluateLater(scopeTarget, `${expression()} = __placeholder`);\n  } else {\n    evaluateSet = () => {\n    };\n  }\n  let getValue = () => {\n    let result;\n    evaluateGet((value) => result = value);\n    return isGetterSetter(result) ? result.get() : result;\n  };\n  let setValue = (value) => {\n    let result;\n    evaluateGet((value2) => result = value2);\n    if (isGetterSetter(result)) {\n      result.set(value);\n    } else {\n      evaluateSet(() => {\n      }, {\n        scope: { \"__placeholder\": value }\n      });\n    }\n  };\n  if (typeof expression === \"string\" && el.type === \"radio\") {\n    mutateDom(() => {\n      if (!el.hasAttribute(\"name\"))\n        el.setAttribute(\"name\", expression);\n    });\n  }\n  let hasChangeModifier = modifiers.includes(\"change\") || modifiers.includes(\"lazy\");\n  let hasBlurModifier = modifiers.includes(\"blur\");\n  let hasEnterModifier = modifiers.includes(\"enter\");\n  let hasExplicitEventModifiers = hasChangeModifier || hasBlurModifier || hasEnterModifier;\n  let removeListener;\n  if (isCloning) {\n    removeListener = () => {\n    };\n  } else if (hasExplicitEventModifiers) {\n    let listeners = [];\n    let syncValue = (e) => setValue(getInputValue(el, modifiers, e, getValue()));\n    if (hasChangeModifier) {\n      listeners.push(on(el, \"change\", modifiers, syncValue));\n    }\n    if (hasBlurModifier) {\n      listeners.push(on(el, \"blur\", modifiers, syncValue));\n      if (el.form) {\n        let syncCallback = () => syncValue({ target: el });\n        if (!el.form._x_pendingModelUpdates)\n          el.form._x_pendingModelUpdates = [];\n        el.form._x_pendingModelUpdates.push(syncCallback);\n        cleanup2(() => el.form._x_pendingModelUpdates.splice(el.form._x_pendingModelUpdates.indexOf(syncCallback), 1));\n      }\n    }\n    if (hasEnterModifier) {\n      listeners.push(on(el, \"keydown\", modifiers, (e) => {\n        if (e.key === \"Enter\")\n          syncValue(e);\n      }));\n    }\n    removeListener = () => listeners.forEach((remove) => remove());\n  } else {\n    let event = el.tagName.toLowerCase() === \"select\" || [\"checkbox\", \"radio\"].includes(el.type) ? \"change\" : \"input\";\n    removeListener = on(el, event, modifiers, (e) => {\n      setValue(getInputValue(el, modifiers, e, getValue()));\n    });\n  }\n  if (modifiers.includes(\"fill\")) {\n    if ([void 0, null, \"\"].includes(getValue()) || isCheckbox(el) && Array.isArray(getValue()) || el.tagName.toLowerCase() === \"select\" && el.multiple) {\n      setValue(\n        getInputValue(el, modifiers, { target: el }, getValue())\n      );\n    }\n  }\n  if (!el._x_removeModelListeners)\n    el._x_removeModelListeners = {};\n  el._x_removeModelListeners[\"default\"] = removeListener;\n  cleanup2(() => el._x_removeModelListeners[\"default\"]());\n  if (el.form) {\n    let removeResetListener = on(el.form, \"reset\", [], (e) => {\n      nextTick(() => el._x_model && el._x_model.set(getInputValue(el, modifiers, { target: el }, getValue())));\n    });\n    cleanup2(() => removeResetListener());\n  }\n  el._x_model = {\n    get() {\n      return getValue();\n    },\n    set(value) {\n      setValue(value);\n    }\n  };\n  el._x_forceModelUpdate = (value) => {\n    if (value === void 0 && typeof expression === \"string\" && expression.match(/\\./))\n      value = \"\";\n    window.fromModel = true;\n    mutateDom(() => bind(el, \"value\", value));\n    delete window.fromModel;\n  };\n  effect3(() => {\n    let value = getValue();\n    if (modifiers.includes(\"unintrusive\") && document.activeElement.isSameNode(el))\n      return;\n    el._x_forceModelUpdate(value);\n  });\n});\nfunction getInputValue(el, modifiers, event, currentValue) {\n  return mutateDom(() => {\n    if (event instanceof CustomEvent && event.detail !== void 0)\n      return event.detail !== null && event.detail !== void 0 ? event.detail : event.target.value;\n    else if (isCheckbox(el)) {\n      if (Array.isArray(currentValue)) {\n        let newValue = null;\n        if (modifiers.includes(\"number\")) {\n          newValue = safeParseNumber(event.target.value);\n        } else if (modifiers.includes(\"boolean\")) {\n          newValue = safeParseBoolean(event.target.value);\n        } else {\n          newValue = event.target.value;\n        }\n        return event.target.checked ? currentValue.includes(newValue) ? currentValue : currentValue.concat([newValue]) : currentValue.filter((el2) => !checkedAttrLooseCompare2(el2, newValue));\n      } else {\n        return event.target.checked;\n      }\n    } else if (el.tagName.toLowerCase() === \"select\" && el.multiple) {\n      if (modifiers.includes(\"number\")) {\n        return Array.from(event.target.selectedOptions).map((option) => {\n          let rawValue = option.value || option.text;\n          return safeParseNumber(rawValue);\n        });\n      } else if (modifiers.includes(\"boolean\")) {\n        return Array.from(event.target.selectedOptions).map((option) => {\n          let rawValue = option.value || option.text;\n          return safeParseBoolean(rawValue);\n        });\n      }\n      return Array.from(event.target.selectedOptions).map((option) => {\n        return option.value || option.text;\n      });\n    } else {\n      let newValue;\n      if (isRadio(el)) {\n        if (event.target.checked) {\n          newValue = event.target.value;\n        } else {\n          newValue = currentValue;\n        }\n      } else {\n        newValue = event.target.value;\n      }\n      if (modifiers.includes(\"number\")) {\n        return safeParseNumber(newValue);\n      } else if (modifiers.includes(\"boolean\")) {\n        return safeParseBoolean(newValue);\n      } else if (modifiers.includes(\"trim\")) {\n        return newValue.trim();\n      } else {\n        return newValue;\n      }\n    }\n  });\n}\nfunction safeParseNumber(rawValue) {\n  let number = rawValue ? parseFloat(rawValue) : null;\n  return isNumeric2(number) ? number : rawValue;\n}\nfunction checkedAttrLooseCompare2(valueA, valueB) {\n  return valueA == valueB;\n}\nfunction isNumeric2(subject) {\n  return !Array.isArray(subject) && !isNaN(subject);\n}\nfunction isGetterSetter(value) {\n  return value !== null && typeof value === \"object\" && typeof value.get === \"function\" && typeof value.set === \"function\";\n}\n\n// packages/alpinejs/src/directives/x-cloak.js\ndirective(\"cloak\", (el) => queueMicrotask(() => mutateDom(() => el.removeAttribute(prefix(\"cloak\")))));\n\n// packages/alpinejs/src/directives/x-init.js\naddInitSelector(() => `[${prefix(\"init\")}]`);\ndirective(\"init\", skipDuringClone((el, { expression }, { evaluate: evaluate2 }) => {\n  if (typeof expression === \"string\") {\n    return !!expression.trim() && evaluate2(expression, {}, false);\n  }\n  return evaluate2(expression, {}, false);\n}));\n\n// packages/alpinejs/src/directives/x-text.js\ndirective(\"text\", (el, { expression }, { effect: effect3, evaluateLater: evaluateLater2 }) => {\n  let evaluate2 = evaluateLater2(expression);\n  effect3(() => {\n    evaluate2((value) => {\n      mutateDom(() => {\n        el.textContent = value;\n      });\n    });\n  });\n});\n\n// packages/alpinejs/src/directives/x-html.js\ndirective(\"html\", (el, { expression }, { effect: effect3, evaluateLater: evaluateLater2 }) => {\n  let evaluate2 = evaluateLater2(expression);\n  effect3(() => {\n    evaluate2((value) => {\n      mutateDom(() => {\n        el.innerHTML = value;\n        el._x_ignoreSelf = true;\n        initTree(el);\n        delete el._x_ignoreSelf;\n      });\n    });\n  });\n});\n\n// packages/alpinejs/src/directives/x-bind.js\nmapAttributes(startingWith(\":\", into(prefix(\"bind:\"))));\nvar handler2 = (el, { value, modifiers, expression, original }, { effect: effect3, cleanup: cleanup2 }) => {\n  if (!value) {\n    let bindingProviders = {};\n    injectBindingProviders(bindingProviders);\n    let getBindings = evaluateLater(el, expression);\n    getBindings((bindings) => {\n      applyBindingsObject(el, bindings, original);\n    }, { scope: bindingProviders });\n    return;\n  }\n  if (value === \"key\")\n    return storeKeyForXFor(el, expression);\n  if (el._x_inlineBindings && el._x_inlineBindings[value] && el._x_inlineBindings[value].extract) {\n    return;\n  }\n  let evaluate2 = evaluateLater(el, expression);\n  effect3(() => evaluate2((result) => {\n    if (result === void 0 && typeof expression === \"string\" && expression.match(/\\./)) {\n      result = \"\";\n    }\n    mutateDom(() => bind(el, value, result, modifiers));\n  }));\n  cleanup2(() => {\n    el._x_undoAddedClasses && el._x_undoAddedClasses();\n    el._x_undoAddedStyles && el._x_undoAddedStyles();\n  });\n};\nhandler2.inline = (el, { value, modifiers, expression }) => {\n  if (!value)\n    return;\n  if (!el._x_inlineBindings)\n    el._x_inlineBindings = {};\n  el._x_inlineBindings[value] = { expression, extract: false };\n};\ndirective(\"bind\", handler2);\nfunction storeKeyForXFor(el, expression) {\n  el._x_keyExpression = expression;\n}\n\n// packages/alpinejs/src/directives/x-data.js\naddRootSelector(() => `[${prefix(\"data\")}]`);\ndirective(\"data\", (el, { expression }, { cleanup: cleanup2 }) => {\n  if (shouldSkipRegisteringDataDuringClone(el))\n    return;\n  expression = expression === \"\" ? \"{}\" : expression;\n  let magicContext = {};\n  injectMagics(magicContext, el);\n  let dataProviderContext = {};\n  injectDataProviders(dataProviderContext, magicContext);\n  let data2 = evaluate(el, expression, { scope: dataProviderContext });\n  if (data2 === void 0 || data2 === true)\n    data2 = {};\n  injectMagics(data2, el);\n  let reactiveData = reactive(data2);\n  initInterceptors(reactiveData);\n  let undo = addScopeToNode(el, reactiveData);\n  reactiveData[\"init\"] && evaluate(el, reactiveData[\"init\"]);\n  cleanup2(() => {\n    reactiveData[\"destroy\"] && evaluate(el, reactiveData[\"destroy\"]);\n    undo();\n  });\n});\ninterceptClone((from, to) => {\n  if (from._x_dataStack) {\n    to._x_dataStack = from._x_dataStack;\n    to.setAttribute(\"data-has-alpine-state\", true);\n  }\n});\nfunction shouldSkipRegisteringDataDuringClone(el) {\n  if (!isCloning)\n    return false;\n  if (isCloningLegacy)\n    return true;\n  return el.hasAttribute(\"data-has-alpine-state\");\n}\n\n// packages/alpinejs/src/directives/x-show.js\ndirective(\"show\", (el, { modifiers, expression }, { effect: effect3 }) => {\n  let evaluate2 = evaluateLater(el, expression);\n  if (!el._x_doHide)\n    el._x_doHide = () => {\n      mutateDom(() => {\n        el.style.setProperty(\"display\", \"none\", modifiers.includes(\"important\") ? \"important\" : void 0);\n      });\n    };\n  if (!el._x_doShow)\n    el._x_doShow = () => {\n      mutateDom(() => {\n        if (el.style.length === 1 && el.style.display === \"none\") {\n          el.removeAttribute(\"style\");\n        } else {\n          el.style.removeProperty(\"display\");\n        }\n      });\n    };\n  let hide = () => {\n    el._x_doHide();\n    el._x_isShown = false;\n  };\n  let show = () => {\n    el._x_doShow();\n    el._x_isShown = true;\n  };\n  let clickAwayCompatibleShow = () => setTimeout(show);\n  let toggle = once(\n    (value) => value ? show() : hide(),\n    (value) => {\n      if (typeof el._x_toggleAndCascadeWithTransitions === \"function\") {\n        el._x_toggleAndCascadeWithTransitions(el, value, show, hide);\n      } else {\n        value ? clickAwayCompatibleShow() : hide();\n      }\n    }\n  );\n  let oldValue;\n  let firstTime = true;\n  effect3(() => evaluate2((value) => {\n    if (!firstTime && value === oldValue)\n      return;\n    if (modifiers.includes(\"immediate\"))\n      value ? clickAwayCompatibleShow() : hide();\n    toggle(value);\n    oldValue = value;\n    firstTime = false;\n  }));\n});\n\n// packages/alpinejs/src/directives/x-for.js\ndirective(\"for\", (el, { expression }, { effect: effect3, cleanup: cleanup2 }) => {\n  let iteratorNames = parseForExpression(expression);\n  let evaluateItems = evaluateLater(el, iteratorNames.items);\n  let evaluateKey = evaluateLater(\n    el,\n    // the x-bind:key expression is stored for our use instead of evaluated.\n    el._x_keyExpression || \"index\"\n  );\n  el._x_prevKeys = [];\n  el._x_lookup = {};\n  effect3(() => loop(el, iteratorNames, evaluateItems, evaluateKey));\n  cleanup2(() => {\n    Object.values(el._x_lookup).forEach((el2) => mutateDom(\n      () => {\n        destroyTree(el2);\n        el2.remove();\n      }\n    ));\n    delete el._x_prevKeys;\n    delete el._x_lookup;\n  });\n});\nfunction loop(el, iteratorNames, evaluateItems, evaluateKey) {\n  let isObject2 = (i) => typeof i === \"object\" && !Array.isArray(i);\n  let templateEl = el;\n  evaluateItems((items) => {\n    if (isNumeric3(items) && items >= 0) {\n      items = Array.from(Array(items).keys(), (i) => i + 1);\n    }\n    if (items === void 0)\n      items = [];\n    let lookup = el._x_lookup;\n    let prevKeys = el._x_prevKeys;\n    let scopes = [];\n    let keys = [];\n    if (isObject2(items)) {\n      items = Object.entries(items).map(([key, value]) => {\n        let scope2 = getIterationScopeVariables(iteratorNames, value, key, items);\n        evaluateKey((value2) => {\n          if (keys.includes(value2))\n            warn(\"Duplicate key on x-for\", el);\n          keys.push(value2);\n        }, { scope: { index: key, ...scope2 } });\n        scopes.push(scope2);\n      });\n    } else {\n      for (let i = 0; i < items.length; i++) {\n        let scope2 = getIterationScopeVariables(iteratorNames, items[i], i, items);\n        evaluateKey((value) => {\n          if (keys.includes(value))\n            warn(\"Duplicate key on x-for\", el);\n          keys.push(value);\n        }, { scope: { index: i, ...scope2 } });\n        scopes.push(scope2);\n      }\n    }\n    let adds = [];\n    let moves = [];\n    let removes = [];\n    let sames = [];\n    for (let i = 0; i < prevKeys.length; i++) {\n      let key = prevKeys[i];\n      if (keys.indexOf(key) === -1)\n        removes.push(key);\n    }\n    prevKeys = prevKeys.filter((key) => !removes.includes(key));\n    let lastKey = \"template\";\n    for (let i = 0; i < keys.length; i++) {\n      let key = keys[i];\n      let prevIndex = prevKeys.indexOf(key);\n      if (prevIndex === -1) {\n        prevKeys.splice(i, 0, key);\n        adds.push([lastKey, i]);\n      } else if (prevIndex !== i) {\n        let keyInSpot = prevKeys.splice(i, 1)[0];\n        let keyForSpot = prevKeys.splice(prevIndex - 1, 1)[0];\n        prevKeys.splice(i, 0, keyForSpot);\n        prevKeys.splice(prevIndex, 0, keyInSpot);\n        moves.push([keyInSpot, keyForSpot]);\n      } else {\n        sames.push(key);\n      }\n      lastKey = key;\n    }\n    for (let i = 0; i < removes.length; i++) {\n      let key = removes[i];\n      if (!(key in lookup))\n        continue;\n      mutateDom(() => {\n        destroyTree(lookup[key]);\n        lookup[key].remove();\n      });\n      delete lookup[key];\n    }\n    for (let i = 0; i < moves.length; i++) {\n      let [keyInSpot, keyForSpot] = moves[i];\n      let elInSpot = lookup[keyInSpot];\n      let elForSpot = lookup[keyForSpot];\n      let marker = document.createElement(\"div\");\n      mutateDom(() => {\n        if (!elForSpot)\n          warn(`x-for \":key\" is undefined or invalid`, templateEl, keyForSpot, lookup);\n        elForSpot.after(marker);\n        elInSpot.after(elForSpot);\n        elForSpot._x_currentIfEl && elForSpot.after(elForSpot._x_currentIfEl);\n        marker.before(elInSpot);\n        elInSpot._x_currentIfEl && elInSpot.after(elInSpot._x_currentIfEl);\n        marker.remove();\n      });\n      elForSpot._x_refreshXForScope(scopes[keys.indexOf(keyForSpot)]);\n    }\n    for (let i = 0; i < adds.length; i++) {\n      let [lastKey2, index] = adds[i];\n      let lastEl = lastKey2 === \"template\" ? templateEl : lookup[lastKey2];\n      if (lastEl._x_currentIfEl)\n        lastEl = lastEl._x_currentIfEl;\n      let scope2 = scopes[index];\n      let key = keys[index];\n      let clone2 = document.importNode(templateEl.content, true).firstElementChild;\n      let reactiveScope = reactive(scope2);\n      addScopeToNode(clone2, reactiveScope, templateEl);\n      clone2._x_refreshXForScope = (newScope) => {\n        Object.entries(newScope).forEach(([key2, value]) => {\n          reactiveScope[key2] = value;\n        });\n      };\n      mutateDom(() => {\n        lastEl.after(clone2);\n        skipDuringClone(() => initTree(clone2))();\n      });\n      if (typeof key === \"object\") {\n        warn(\"x-for key cannot be an object, it must be a string or an integer\", templateEl);\n      }\n      lookup[key] = clone2;\n    }\n    for (let i = 0; i < sames.length; i++) {\n      lookup[sames[i]]._x_refreshXForScope(scopes[keys.indexOf(sames[i])]);\n    }\n    templateEl._x_prevKeys = keys;\n  });\n}\nfunction parseForExpression(expression) {\n  let forIteratorRE = /,([^,\\}\\]]*)(?:,([^,\\}\\]]*))?$/;\n  let stripParensRE = /^\\s*\\(|\\)\\s*$/g;\n  let forAliasRE = /([\\s\\S]*?)\\s+(?:in|of)\\s+([\\s\\S]*)/;\n  let inMatch = expression.match(forAliasRE);\n  if (!inMatch)\n    return;\n  let res = {};\n  res.items = inMatch[2].trim();\n  let item = inMatch[1].replace(stripParensRE, \"\").trim();\n  let iteratorMatch = item.match(forIteratorRE);\n  if (iteratorMatch) {\n    res.item = item.replace(forIteratorRE, \"\").trim();\n    res.index = iteratorMatch[1].trim();\n    if (iteratorMatch[2]) {\n      res.collection = iteratorMatch[2].trim();\n    }\n  } else {\n    res.item = item;\n  }\n  return res;\n}\nfunction getIterationScopeVariables(iteratorNames, item, index, items) {\n  let scopeVariables = {};\n  if (/^\\[.*\\]$/.test(iteratorNames.item) && Array.isArray(item)) {\n    let names = iteratorNames.item.replace(\"[\", \"\").replace(\"]\", \"\").split(\",\").map((i) => i.trim());\n    names.forEach((name, i) => {\n      scopeVariables[name] = item[i];\n    });\n  } else if (/^\\{.*\\}$/.test(iteratorNames.item) && !Array.isArray(item) && typeof item === \"object\") {\n    let names = iteratorNames.item.replace(\"{\", \"\").replace(\"}\", \"\").split(\",\").map((i) => i.trim());\n    names.forEach((name) => {\n      scopeVariables[name] = item[name];\n    });\n  } else {\n    scopeVariables[iteratorNames.item] = item;\n  }\n  if (iteratorNames.index)\n    scopeVariables[iteratorNames.index] = index;\n  if (iteratorNames.collection)\n    scopeVariables[iteratorNames.collection] = items;\n  return scopeVariables;\n}\nfunction isNumeric3(subject) {\n  return !Array.isArray(subject) && !isNaN(subject);\n}\n\n// packages/alpinejs/src/directives/x-ref.js\nfunction handler3() {\n}\nhandler3.inline = (el, { expression }, { cleanup: cleanup2 }) => {\n  let root = closestRoot(el);\n  if (!root._x_refs)\n    root._x_refs = {};\n  root._x_refs[expression] = el;\n  cleanup2(() => delete root._x_refs[expression]);\n};\ndirective(\"ref\", handler3);\n\n// packages/alpinejs/src/directives/x-if.js\ndirective(\"if\", (el, { expression }, { effect: effect3, cleanup: cleanup2 }) => {\n  if (el.tagName.toLowerCase() !== \"template\")\n    warn(\"x-if can only be used on a <template> tag\", el);\n  let evaluate2 = evaluateLater(el, expression);\n  let show = () => {\n    if (el._x_currentIfEl)\n      return el._x_currentIfEl;\n    let clone2 = el.content.cloneNode(true).firstElementChild;\n    addScopeToNode(clone2, {}, el);\n    mutateDom(() => {\n      el.after(clone2);\n      skipDuringClone(() => initTree(clone2))();\n    });\n    el._x_currentIfEl = clone2;\n    el._x_undoIf = () => {\n      mutateDom(() => {\n        destroyTree(clone2);\n        clone2.remove();\n      });\n      delete el._x_currentIfEl;\n    };\n    return clone2;\n  };\n  let hide = () => {\n    if (!el._x_undoIf)\n      return;\n    el._x_undoIf();\n    delete el._x_undoIf;\n  };\n  effect3(() => evaluate2((value) => {\n    value ? show() : hide();\n  }));\n  cleanup2(() => el._x_undoIf && el._x_undoIf());\n});\n\n// packages/alpinejs/src/directives/x-id.js\ndirective(\"id\", (el, { expression }, { evaluate: evaluate2 }) => {\n  let names = evaluate2(expression);\n  names.forEach((name) => setIdRoot(el, name));\n});\ninterceptClone((from, to) => {\n  if (from._x_ids) {\n    to._x_ids = from._x_ids;\n  }\n});\n\n// packages/alpinejs/src/directives/x-on.js\nmapAttributes(startingWith(\"@\", into(prefix(\"on:\"))));\ndirective(\"on\", skipDuringClone((el, { value, modifiers, expression }, { cleanup: cleanup2 }) => {\n  let evaluate2 = expression ? evaluateLater(el, expression) : () => {\n  };\n  if (el.tagName.toLowerCase() === \"template\") {\n    if (!el._x_forwardEvents)\n      el._x_forwardEvents = [];\n    if (!el._x_forwardEvents.includes(value))\n      el._x_forwardEvents.push(value);\n  }\n  let removeListener = on(el, value, modifiers, (e) => {\n    evaluate2(() => {\n    }, { scope: { \"$event\": e }, params: [e] });\n  });\n  cleanup2(() => removeListener());\n}));\n\n// packages/alpinejs/src/directives/index.js\nwarnMissingPluginDirective(\"Collapse\", \"collapse\", \"collapse\");\nwarnMissingPluginDirective(\"Intersect\", \"intersect\", \"intersect\");\nwarnMissingPluginDirective(\"Focus\", \"trap\", \"focus\");\nwarnMissingPluginDirective(\"Mask\", \"mask\", \"mask\");\nfunction warnMissingPluginDirective(name, directiveName, slug) {\n  directive(directiveName, (el) => warn(`You can't use [x-${directiveName}] without first installing the \"${name}\" plugin here: https://alpinejs.dev/plugins/${slug}`, el));\n}\n\n// packages/alpinejs/src/index.js\nalpine_default.setEvaluator(normalEvaluator);\nalpine_default.setRawEvaluator(normalRawEvaluator);\nalpine_default.setReactivityEngine({ reactive: reactive2, effect: effect2, release: stop, raw: toRaw });\nvar src_default = alpine_default;\n\n// packages/alpinejs/builds/module.js\nvar module_default = src_default;\nexport {\n  src_default as Alpine,\n  module_default as default\n};\n","\n      import API from \"!../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n      import domAPI from \"!../../style-loader/dist/runtime/styleDomAPI.js\";\n      import insertFn from \"../../../build/styleLoaderInsert.js\";\n      import setAttributes from \"!../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n      import insertStyleElement from \"!../../style-loader/dist/runtime/insertStyleElement.js\";\n      import styleTagTransformFn from \"!../../style-loader/dist/runtime/styleTagTransform.js\";\n      import content, * as namedExport from \"!!../../css-loader/dist/cjs.js!./aos.css\";\n      \n      \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn;\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../css-loader/dist/cjs.js!./aos.css\";\n       export default content && content.locals ? content.locals : undefined;\n","/**\n * Branded full-bleed loading overlay shown during any signup POST.\n *\n * Overlay state lives in-memory. startSignupLoading/stopSignupLoading mutate\n * DOM only — they do not touch the URL. This keeps the back-button clean: the\n * outgoing history entry never carries ?signup-loading=1, so navigating back\n * lands on the original URL with no stuck overlay.\n *\n * QA can still trigger the overlay manually by visiting any page with\n * ?signup-loading=1 in the URL — the DOMContentLoaded + popstate sync reads\n * that param and renders the overlay on its own.\n *\n * Encapsulation contract:\n * - Public API is config-free: startSignupLoading() / stopSignupLoading({error}).\n * - All timing/curve tuning lives in the CONFIG block below.\n * - All visual tuning lives in sass/components/_signup-loading.scss.\n * - DOM structure lives in templates/includes/_signup_loading.html (included\n *   once globally in master.html).\n *\n * The driver finds the overlay via [data-signup-loading] and is a no-op if the\n * node is missing — so calling start/stop from a page that doesn't include\n * master.html won't crash.\n */\n\nconst CONFIG = {\n    // Delay between startSignupLoading() and overlay actually rendering.\n    // If stopSignupLoading() arrives before this elapses (fast validation\n    // errors usually do), the overlay never opens — no flash, no awkward\n    // close. Slow legit POSTs still get the overlay after the delay.\n    openDelayMs: 750,\n    ceilingPct: 95,\n    initialJumpPct: 55,\n    burst: {\n        minPct: 2,\n        maxPct: 9,\n        intervalMs: {min: 280, max: 950}\n    },\n    stepIntervalMs: 3000,\n    hardTimeoutMs: 25000,\n    reducedMotion: {\n        fixedPct: 90\n    }\n};\n\nconst URL_PARAM = \"signup-loading\";\n\n// Entrance animation duration — must match @mixin fullscreen-overlay-slide-up\n// in sass/mixins/_fullscreen-overlay.scss. Bar fill + step rotation are\n// deferred this many ms so the entrance plays without competing motion.\nconst ENTRANCE_DURATION_MS = 340;\n\nconst state = {\n    active: false,\n    openTimer: null,\n    burstTimer: null,\n    stepTimer: null,\n    hardTimer: null,\n    progressPct: 0\n};\n\nconst prefersReducedMotion = () =>\n    typeof window !== \"undefined\" &&\n    typeof window.matchMedia === \"function\" &&\n    window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\n\nconst randomBetween = (min, max) => Math.random() * (max - min) + min;\n\nconst setBar = (rootEl, pct) => {\n    state.progressPct = pct;\n    const bar = rootEl.querySelector(\"[data-signup-bar]\");\n    if (bar) bar.style.width = `${pct}%`;\n};\n\nconst setStatus = (rootEl, text) => {\n    const statusEl = rootEl.querySelector(\"[data-signup-status]\");\n    if (!statusEl) return;\n    statusEl.textContent = text;\n    // EXTRACTION CANDIDATE — re-fire the CSS @keyframes text-rotator-rise\n    // animation on every text swap. Paired block lives in\n    // _signup-loading.scss. Browsers only re-fire a keyframe animation when\n    // the `animation` property transitions, hence the off/reflow/on dance.\n    // Skip under prefers-reduced-motion: the SCSS already neuters the keyframe,\n    // so the reflow churn would be wasted.\n    if (prefersReducedMotion()) return;\n    statusEl.style.animation = \"none\";\n    void statusEl.offsetWidth;\n    statusEl.style.animation = \"\";\n};\n\nconst getStepText = (rootEl, n) => {\n    const el = rootEl.querySelector(`[data-signup-step-${n}]`);\n    return el ? el.textContent.trim() : \"\";\n};\n\nconst getTimeoutText = rootEl => {\n    const el = rootEl.querySelector(\"[data-signup-timeout]\");\n    return el ? el.textContent.trim() : \"\";\n};\n\nconst scheduleBurst = rootEl => {\n    state.burstTimer = window.setTimeout(() => {\n        if (!state.active) return;\n        const delta = randomBetween(CONFIG.burst.minPct, CONFIG.burst.maxPct);\n        const next = Math.min(state.progressPct + delta, CONFIG.ceilingPct);\n        setBar(rootEl, next);\n        if (state.progressPct < CONFIG.ceilingPct) {\n            scheduleBurst(rootEl);\n        }\n    }, randomBetween(CONFIG.burst.intervalMs.min, CONFIG.burst.intervalMs.max));\n};\n\nconst rotateSteps = rootEl => {\n    const steps = [1, 2, 3].map(n => getStepText(rootEl, n)).filter(Boolean);\n    if (steps.length === 0) return;\n    let i = 0;\n    setStatus(rootEl, steps[i]);\n    state.stepTimer = window.setInterval(() => {\n        i = (i + 1) % steps.length;\n        setStatus(rootEl, steps[i]);\n    }, CONFIG.stepIntervalMs);\n};\n\nconst clearTimers = () => {\n    if (state.burstTimer) {\n        window.clearTimeout(state.burstTimer);\n        state.burstTimer = null;\n    }\n    if (state.stepTimer) {\n        window.clearInterval(state.stepTimer);\n        state.stepTimer = null;\n    }\n    if (state.hardTimer) {\n        window.clearTimeout(state.hardTimer);\n        state.hardTimer = null;\n    }\n};\n\n// --- URL trigger (QA only) --------------------------------------------------\n\nconst _urlHasParam = () =>\n    new URLSearchParams(window.location.search).get(URL_PARAM) === \"1\";\n\n// --- Internal render/hide ---------------------------------------------------\n\nconst _startProgressAndSteps = rootEl => {\n    setBar(rootEl, CONFIG.initialJumpPct);\n    rotateSteps(rootEl);\n    scheduleBurst(rootEl);\n\n    state.hardTimer = window.setTimeout(() => {\n        if (!state.active) return;\n        if (state.stepTimer) {\n            window.clearInterval(state.stepTimer);\n            state.stepTimer = null;\n        }\n        setStatus(rootEl, getTimeoutText(rootEl));\n        rootEl.dispatchEvent(\n            new CustomEvent(\"signup-loading:timeout\", {bubbles: true})\n        );\n    }, CONFIG.hardTimeoutMs);\n};\n\nconst _renderOverlay = () => {\n    if (state.active) return;\n    const rootEl = document.querySelector(\"[data-signup-loading]\");\n    if (!rootEl) return;\n\n    state.active = true;\n    rootEl.classList.add(\"is-active\");\n    // aria-busy goes on <body> (the region being loaded), not on the\n    // role=\"status\" live-region narrating progress (WCAG 4.1.2).\n    document.body.setAttribute(\"aria-busy\", \"true\");\n\n    if (prefersReducedMotion()) {\n        setBar(rootEl, CONFIG.reducedMotion.fixedPct);\n        const firstStep = getStepText(rootEl, 1);\n        if (firstStep) setStatus(rootEl, firstStep);\n        return;\n    }\n\n    // Bar fill + step rotation defer until entrance animation completes\n    // (Ward decision 2026-05-26 Q4 — bar shouldn't race the entrance).\n    window.setTimeout(() => {\n        if (!state.active) return;\n        _startProgressAndSteps(rootEl);\n    }, ENTRANCE_DURATION_MS);\n};\n\nconst _hideOverlay = ({error = false} = {}) => {\n    if (!state.active) return;\n    const rootEl = document.querySelector(\"[data-signup-loading]\");\n    state.active = false;\n    clearTimers();\n    if (rootEl) {\n        rootEl.classList.remove(\"is-active\");\n        document.body.setAttribute(\"aria-busy\", \"false\");\n        setBar(rootEl, 0);\n        setStatus(rootEl, \"\");\n        if (error) {\n            rootEl.dispatchEvent(\n                new CustomEvent(\"signup-loading:error\", {bubbles: true})\n            );\n        }\n    }\n};\n\n// --- Public API -------------------------------------------------------------\n\nexport function startSignupLoading() {\n    if (state.openTimer || state.active) return;\n    state.openTimer = window.setTimeout(() => {\n        state.openTimer = null;\n        _renderOverlay();\n    }, CONFIG.openDelayMs);\n}\n\nexport function stopSignupLoading({error = false} = {}) {\n    if (state.openTimer) {\n        window.clearTimeout(state.openTimer);\n        state.openTimer = null;\n    }\n    _hideOverlay({error});\n}\n\n// --- URL ↔ DOM reconciler ---------------------------------------------------\n\nconst _syncFromUrl = () => {\n    if (_urlHasParam()) {\n        _renderOverlay();\n    } else {\n        _hideOverlay({});\n    }\n};\n\nif (typeof window !== \"undefined\") {\n    if (document.readyState === \"loading\") {\n        document.addEventListener(\"DOMContentLoaded\", _syncFromUrl);\n    } else {\n        _syncFromUrl();\n    }\n    window.addEventListener(\"popstate\", _syncFromUrl);\n}\n","const clearFormErrors = () => {\n    // Clear all error messages\n    document.querySelectorAll(\"#contact .errorlist\").forEach(el => el.remove());\n    // Remove error classes from fields\n    document.querySelectorAll(\"#contact .error\").forEach(el => el.classList.remove(\"error\"));\n};\n\nconst displayFormErrors = errors => {\n    clearFormErrors();\n\n    Object.entries(errors).forEach(([fieldName, errorMessages]) => {\n        const field = document.getElementById(`id_${fieldName}`);\n        if (!field) return;\n\n        // Add error class to field\n        field.classList.add(\"error\");\n\n        // Create error list\n        const errorList = document.createElement(\"ul\");\n        errorList.className = \"errorlist\";\n        errorMessages.forEach(msg => {\n            const li = document.createElement(\"li\");\n            li.textContent = msg;\n            errorList.appendChild(li);\n        });\n\n        // Insert error list after field\n        field.parentNode.insertBefore(errorList, field.nextSibling);\n    });\n};\n\nconst handleContactFormSubmit = async (e, form, submitBtn) => {\n    e.preventDefault();\n    e.stopPropagation();\n    clearFormErrors();\n\n    // Add loading state to form\n    form.classList.add(\"is-loading\");\n\n    // Update button state\n    const originalText = submitBtn.innerHTML;\n    submitBtn.innerHTML = submitBtn.dataset.loadingText || originalText;\n    submitBtn.disabled = true;\n\n    try {\n        const formData = new FormData(form);\n        const response = await fetch(form.action, {\n            method: \"POST\",\n            body: formData,\n            headers: {\n                Accept: \"application/json\",\n            },\n        });\n\n        const data = await response.json();\n\n        if (data.success) {\n            // Keep loading state and redirect\n            window.location.href = data.redirect_url;\n        } else {\n            // Remove loading state to show errors\n            form.classList.remove(\"is-loading\");\n            // Display errors\n            displayFormErrors(data.errors);\n            // Re-enable submit button\n            submitBtn.innerHTML = originalText;\n            submitBtn.disabled = false;\n        }\n    } catch (error) {\n        console.error(\"Form submission error:\", error);\n        // Remove loading state\n        form.classList.remove(\"is-loading\");\n        // Display generic error\n        displayFormErrors({\n            __all__: [\"An error occurred. Please try again.\"],\n        });\n        // Re-enable submit button\n        submitBtn.innerHTML = originalText;\n        submitBtn.disabled = false;\n    }\n};\n\nconst setupFormAjax = (form) => {\n    if (!form || form.dataset.ajaxInitialized) return;\n\n    form.dataset.ajaxInitialized = \"true\";\n\n    // Remove any initial loading state\n    form.classList.remove(\"is-loading\");\n\n    const submitBtn = form.querySelector('button[type=\"submit\"]');\n\n    if (submitBtn) {\n        // Use capture phase to ensure we intercept before other handlers\n        form.addEventListener(\"submit\", e =>\n            handleContactFormSubmit(e, form, submitBtn),\n            true\n        );\n    }\n};\n\nexport const initFooterContactForm = () => {\n    const init = () => {\n        // Use querySelector to get the FORM element specifically, not the h4 with same ID\n        const form = document.querySelector('form#contact');\n        if (form) {\n            setupFormAjax(form);\n        }\n    };\n\n    // Run when DOM is ready\n    if (document.readyState === \"loading\") {\n        document.addEventListener(\"DOMContentLoaded\", init);\n    } else {\n        init();\n    }\n};\n","/**\n * Behaviour for the Tailwind chrome navbar (HEL-756).\n *\n * Everything here is keyed on `[data-component=\"_navbar\"]`, which only\n * includes/chrome/tailwind/navbar/_navbar.html emits, so this silently no-ops\n * on SCSS-mode pages — the same contract initFooterContactForm keeps.\n *\n * The bar used to be entirely CSS. It was written against\n * `@container scroll-state(stuck: top)`, which Firefox does not implement at\n * all: there the bar fell back to opaque at every scroll position, and in\n * Chrome it never turned solid either. One JS path replaces both, so the two\n * engines now run identical CSS off identical state.\n */\n\nconst NAV_SELECTOR = '[data-component=\"_navbar\"]';\n// The background wrapper inside the bar. The stuck state is set on THIS\n// element rather than on the <nav>, because reaching it from the <nav> needs a\n// Tailwind `group` there, and an outer `.group` hijacks the \"Meer\" dropdown's\n// own `group-hover:` — hovering anywhere in the bar would open the panel.\nconst SURFACE_SELECTOR = \"[data-navbar-surface]\";\nconst DRAWER_ID = \"navbar-drawer\";\nconst CONTACT_SELECTOR = \"[data-nav-contact]\";\nconst CONTACT_TARGET_ID = \"contact\";\nconst HIGHLIGHT_ATTR = \"data-contact-highlight\";\n\n/**\n * Mark the bar once it has stopped sitting at the top of the page.\n *\n * STUCK and not at-top, so the attribute-less state is the one the markup\n * already paints: transparent, which is correct at the top of the page and is\n * where every load starts. That means the bundle arriving changes nothing on a\n * normal load, and the bar's `transition-colors` has nothing to animate. The\n * inverse — solid in markup, cleared by script — makes the bundle's first act\n * a correction, which the transition renders as a white-to-transparent fade on\n * every load (HEL-756).\n *\n * The cost is accepted rather than unnoticed: with no bundle the bar never\n * turns solid. See the wrapper's comment in _navbar.html.\n */\nfunction initStuckState(surface) {\n    // Out of flow, and 1px rather than 0: a zero-height element can never\n    // intersect anything, and an in-flow one would push the page down by its\n    // own height.\n    const sentinel = document.createElement(\"div\");\n    sentinel.style.cssText =\n        \"position:absolute;top:0;left:0;width:1px;height:1px;pointer-events:none;\";\n    document.body.prepend(sentinel);\n\n    new IntersectionObserver(([entry]) => {\n        surface.toggleAttribute(\"data-stuck\", !entry.isIntersecting);\n    }).observe(sentinel);\n}\n\n/**\n * Drop the contact highlight once the form has been scrolled back out of view.\n *\n * Not a timeout: the point of the highlight is to answer \"what was I just\n * pointed at\", so it has to survive for as long as the visitor is still\n * looking at it, however long they read.\n */\nfunction clearHighlightOnScrollAway(form) {\n    // The first callback reports the state at observe() time, which is BEFORE\n    // the browser has jumped to the anchor — the form is still off-screen, and\n    // acting on it would clear the highlight before it was ever seen. Every\n    // callback after that one is a real change.\n    //\n    // Skipping that first report rather than waiting for an intersecting one:\n    // a visitor who jumps down and scrolls straight back up can cross the\n    // whole form inside a single observer notification, and \"wait until it has\n    // been seen\" would then leave the outline on for the rest of the visit.\n    let isFirstReport = true;\n\n    const observer = new IntersectionObserver(([entry]) => {\n        if (isFirstReport) {\n            isFirstReport = false;\n            return;\n        }\n        if (!entry.isIntersecting) {\n            form.removeAttribute(HIGHLIGHT_ATTR);\n            observer.disconnect();\n        }\n    });\n    observer.observe(form);\n}\n\nfunction highlightContact() {\n    const form = document.getElementById(CONTACT_TARGET_ID);\n    if (!form) {\n        // The footer only renders the form when contact_form_enabled is on, so\n        // a chrome page without it has a Contact link pointing at nothing.\n        // Pre-existing, and not this module's to fix.\n        return;\n    }\n    form.setAttribute(HIGHLIGHT_ATTR, \"\");\n    clearHighlightOnScrollAway(form);\n}\n\n/**\n * Close the drawer and make the destination visible.\n *\n * Both halves are the bug: the menu stayed open over the page, and the jump\n * landed on a form with nothing marking it as the thing you asked for.\n *\n * The close is done here rather than by wrapping the link in a\n * `<label for=\"navbar-drawer\">`, which would have kept it CSS-only. It cannot:\n * a label's activation behaviour is spec'd to do nothing for events targeted\n * at interactive content inside it, so a label wrapped around an <a> never\n * toggles its checkbox.\n *\n * No preventDefault — the browser's own jump to #contact is wanted, and the\n * link keeps working with this script absent.\n */\nfunction initContactLinks(nav) {\n    const drawer = document.getElementById(DRAWER_ID);\n\n    nav.querySelectorAll(CONTACT_SELECTOR).forEach((link) => {\n        link.addEventListener(\"click\", () => {\n            drawer.checked = false;\n            // On the click, not on hashchange: clicking Contact while the URL\n            // already ends in #contact fires no hashchange, and that is exactly\n            // the second click a visitor makes when they missed it the first\n            // time.\n            highlightContact();\n        });\n    });\n\n    if (window.location.hash === `#${CONTACT_TARGET_ID}`) {\n        highlightContact();\n    }\n}\n\nexport function initTailwindNavbar() {\n    const nav = document.querySelector(NAV_SELECTOR);\n    if (!nav) {\n        return;\n    }\n    initStuckState(nav.querySelector(SURFACE_SELECTOR));\n    initContactLinks(nav);\n}\n","import {StatsigClient} from '@statsig/js-client'\nimport {StatsigAutoCapturePlugin} from '@statsig/web-analytics';\nimport {StableID} from '@statsig/client-core';\n\nconst SDK_KEY = \"client-OyJfrZURdqRCqy6U23V1wV6hlp4iIKmxCYUeWLwUfI2\";\nlet _statsigClientInstance = null;\n\nexport const getStatsigClient = () => {\n    if (_statsigClientInstance) {\n        return _statsigClientInstance;\n    }\n\n    const statsigData = JSON.parse(document.getElementById(\"statsigData\").textContent);\n    if (!statsigData) {\n        return;\n    }\n\n    // Set the server-generated stableID before creating the client so\n    // StableID.get() returns it immediately during bootstrap evaluation.\n    // This prevents the BootstrapStableIDMismatch warning on first visit.\n    const serverStableID = statsigData?.user?.customIDs?.stableID;\n    if (serverStableID) {\n        StableID.setOverride(serverStableID, SDK_KEY);\n    }\n\n    _statsigClientInstance = new StatsigClient(\n        SDK_KEY,\n        statsigData?.user,\n        {\n            // No session replay: Clarity records sessions instead, and the plugin pulled\n            // @rrweb/record into every bundle that reads a gate (HEL-1209).\n            plugins: [new StatsigAutoCapturePlugin()],\n            environment: {tier: statsigData?.tier}\n        }\n    );\n\n    // Bootstrap with server-evaluated values so initializeSync has data\n    if (statsigData?.values) {\n        _statsigClientInstance.dataAdapter.setData(statsigData.values);\n    }\n\n    return _statsigClientInstance;\n}\n\nexport const initializeStatsig = () => {\n    const statsigClient = getStatsigClient();\n\n    statsigClient.initializeSync();\n    // pull the StableID out of the initialized client\n    const stableID = statsigClient.getContext().stableID;\n\n    // write it into a cookie so it'll be sent on every request\n    document.cookie = [\n        `statsig_stable_id=${stableID}`,\n        `Path=/`,\n        `Max-Age=${60 * 60 * 24 * 365}`, // one year\n    ].join('; ');\n    // pull the StableID out of the initialized client\n    const sessionID = statsigClient.getContext().user.customIDs[\"Session ID\"];\n\n    // write it into a cookie so it'll be sent on every request\n    document.cookie = [\n        `statsig_session_id=${sessionID}`,\n        `Path=/`,\n        `Max-Age=${60 * 60 * 24 * 365}`, // one year\n    ].join('; ');\n\n    return statsigClient;\n}\n","let e=-1;const t=t=>{addEventListener(\"pageshow\",(n=>{n.persisted&&(e=n.timeStamp,t(n))}),!0)},n=(e,t,n,i)=>{let o,s;return r=>{t.value>=0&&(r||i)&&(s=t.value-(o??0),(s||void 0===o)&&(o=t.value,t.delta=s,t.rating=((e,t)=>e>t[1]?\"poor\":e>t[0]?\"needs-improvement\":\"good\")(t.value,n),e(t)))}},i=e=>{requestAnimationFrame((()=>requestAnimationFrame((()=>e()))))},o=()=>{const e=performance.getEntriesByType(\"navigation\")[0];if(e&&e.responseStart>0&&e.responseStart<performance.now())return e},s=()=>{const e=o();return e?.activationStart??0},r=(t,n=-1)=>{const i=o();let r=\"navigate\";e>=0?r=\"back-forward-cache\":i&&(document.prerendering||s()>0?r=\"prerender\":document.wasDiscarded?r=\"restore\":i.type&&(r=i.type.replace(/_/g,\"-\")));return{name:t,value:n,rating:\"good\",delta:0,entries:[],id:`v5-${Date.now()}-${Math.floor(8999999999999*Math.random())+1e12}`,navigationType:r}},c=new WeakMap;function a(e,t){return c.get(e)||c.set(e,new t),c.get(e)}class d{t;i=0;o=[];h(e){if(e.hadRecentInput)return;const t=this.o[0],n=this.o.at(-1);this.i&&t&&n&&e.startTime-n.startTime<1e3&&e.startTime-t.startTime<5e3?(this.i+=e.value,this.o.push(e)):(this.i=e.value,this.o=[e]),this.t?.(e)}}const h=(e,t,n={})=>{try{if(PerformanceObserver.supportedEntryTypes.includes(e)){const i=new PerformanceObserver((e=>{Promise.resolve().then((()=>{t(e.getEntries())}))}));return i.observe({type:e,buffered:!0,...n}),i}}catch{}},f=e=>{let t=!1;return()=>{t||(e(),t=!0)}};let u=-1;const l=()=>\"hidden\"!==document.visibilityState||document.prerendering?1/0:0,m=e=>{\"hidden\"===document.visibilityState&&u>-1&&(u=\"visibilitychange\"===e.type?e.timeStamp:0,v())},g=()=>{addEventListener(\"visibilitychange\",m,!0),addEventListener(\"prerenderingchange\",m,!0)},v=()=>{removeEventListener(\"visibilitychange\",m,!0),removeEventListener(\"prerenderingchange\",m,!0)},p=()=>{if(u<0){const e=s(),n=document.prerendering?void 0:globalThis.performance.getEntriesByType(\"visibility-state\").filter((t=>\"hidden\"===t.name&&t.startTime>e))[0]?.startTime;u=n??l(),g(),t((()=>{setTimeout((()=>{u=l(),g()}))}))}return{get firstHiddenTime(){return u}}},y=e=>{document.prerendering?addEventListener(\"prerenderingchange\",(()=>e()),!0):e()},b=[1800,3e3],P=(e,o={})=>{y((()=>{const c=p();let a,d=r(\"FCP\");const f=h(\"paint\",(e=>{for(const t of e)\"first-contentful-paint\"===t.name&&(f.disconnect(),t.startTime<c.firstHiddenTime&&(d.value=Math.max(t.startTime-s(),0),d.entries.push(t),a(!0)))}));f&&(a=n(e,d,b,o.reportAllChanges),t((t=>{d=r(\"FCP\"),a=n(e,d,b,o.reportAllChanges),i((()=>{d.value=performance.now()-t.timeStamp,a(!0)}))})))}))},T=[.1,.25],E=(e,o={})=>{P(f((()=>{let s,c=r(\"CLS\",0);const f=a(o,d),u=e=>{for(const t of e)f.h(t);f.i>c.value&&(c.value=f.i,c.entries=f.o,s())},l=h(\"layout-shift\",u);l&&(s=n(e,c,T,o.reportAllChanges),document.addEventListener(\"visibilitychange\",(()=>{\"hidden\"===document.visibilityState&&(u(l.takeRecords()),s(!0))})),t((()=>{f.i=0,c=r(\"CLS\",0),s=n(e,c,T,o.reportAllChanges),i((()=>s()))})),setTimeout(s))})))};let _=0,L=1/0,M=0;const C=e=>{for(const t of e)t.interactionId&&(L=Math.min(L,t.interactionId),M=Math.max(M,t.interactionId),_=M?(M-L)/7+1:0)};let I;const w=()=>I?_:performance.interactionCount??0,F=()=>{\"interactionCount\"in performance||I||(I=h(\"event\",C,{type:\"event\",buffered:!0,durationThreshold:0}))};let k=0;class A{u=[];l=new Map;m;v;p(){k=w(),this.u.length=0,this.l.clear()}P(){const e=Math.min(this.u.length-1,Math.floor((w()-k)/50));return this.u[e]}h(e){if(this.m?.(e),!e.interactionId&&\"first-input\"!==e.entryType)return;const t=this.u.at(-1);let n=this.l.get(e.interactionId);if(n||this.u.length<10||e.duration>t.T){if(n?e.duration>n.T?(n.entries=[e],n.T=e.duration):e.duration===n.T&&e.startTime===n.entries[0].startTime&&n.entries.push(e):(n={id:e.interactionId,entries:[e],T:e.duration},this.l.set(n.id,n),this.u.push(n)),this.u.sort(((e,t)=>t.T-e.T)),this.u.length>10){const e=this.u.splice(10);for(const t of e)this.l.delete(t.id)}this.v?.(n)}}}const B=e=>{const t=globalThis.requestIdleCallback||setTimeout;\"hidden\"===document.visibilityState?e():(e=f(e),document.addEventListener(\"visibilitychange\",e,{once:!0}),t((()=>{e(),document.removeEventListener(\"visibilitychange\",e)})))},N=[200,500],S=(e,i={})=>{globalThis.PerformanceEventTiming&&\"interactionId\"in PerformanceEventTiming.prototype&&y((()=>{F();let o,s=r(\"INP\");const c=a(i,A),d=e=>{B((()=>{for(const t of e)c.h(t);const t=c.P();t&&t.T!==s.value&&(s.value=t.T,s.entries=t.entries,o())}))},f=h(\"event\",d,{durationThreshold:i.durationThreshold??40});o=n(e,s,N,i.reportAllChanges),f&&(f.observe({type:\"first-input\",buffered:!0}),document.addEventListener(\"visibilitychange\",(()=>{\"hidden\"===document.visibilityState&&(d(f.takeRecords()),o(!0))})),t((()=>{c.p(),s=r(\"INP\"),o=n(e,s,N,i.reportAllChanges)})))}))};class q{m;h(e){this.m?.(e)}}const x=[2500,4e3],O=(e,o={})=>{y((()=>{const c=p();let d,u=r(\"LCP\");const l=a(o,q),m=e=>{o.reportAllChanges||(e=e.slice(-1));for(const t of e)l.h(t),t.startTime<c.firstHiddenTime&&(u.value=Math.max(t.startTime-s(),0),u.entries=[t],d())},g=h(\"largest-contentful-paint\",m);if(g){d=n(e,u,x,o.reportAllChanges);const s=f((()=>{m(g.takeRecords()),g.disconnect(),d(!0)}));for(const e of[\"keydown\",\"click\",\"visibilitychange\"])addEventListener(e,(()=>B(s)),{capture:!0,once:!0});t((t=>{u=r(\"LCP\"),d=n(e,u,x,o.reportAllChanges),i((()=>{u.value=performance.now()-t.timeStamp,d(!0)}))}))}}))},$=[800,1800],D=e=>{document.prerendering?y((()=>D(e))):\"complete\"!==document.readyState?addEventListener(\"load\",(()=>D(e)),!0):setTimeout(e)},H=(e,i={})=>{let c=r(\"TTFB\"),a=n(e,c,$,i.reportAllChanges);D((()=>{const d=o();d&&(c.value=Math.max(d.responseStart-s(),0),c.entries=[d],a(!0),t((()=>{c=r(\"TTFB\",0),a=n(e,c,$,i.reportAllChanges),a(!0)})))}))};export{T as CLSThresholds,b as FCPThresholds,N as INPThresholds,x as LCPThresholds,$ as TTFBThresholds,E as onCLS,P as onFCP,S as onINP,O as onLCP,H as onTTFB};\n","import { onCLS, onFCP, onINP, onLCP, onTTFB } from 'web-vitals';\nimport { getStatsigClient } from '../../../../js/utils/statsig';\n\n// Bots and employees see the page like anyone else but are not counted. Production only: a staging check is employee traffic.\nexport const untracked = () => {\n    try {\n        const { user, tier } = JSON.parse(document.getElementById('statsigData').textContent);\n        return tier === 'production' && Boolean(user.custom.is_bot || user.custom.is_employee_traffic);\n    } catch (e) {\n        return false;\n    }\n};\n\nconst markMs = name => {\n    const mark = performance.getEntriesByName(name)[0];\n    return mark && Math.round(mark.startTime);\n};\nconst sumBytes = entries => entries.reduce((sum, entry) => sum + entry.transferSize, 0);\n\n// Sent on first hide: LCP, CLS and INP are only final then (HEL-1317).\nexport function trackHeroSignupVitals() {\n    const root = document.querySelector('[data-hero-signup]');\n    if (!root || untracked()) return;\n    const vitals = {};\n    [onCLS, onFCP, onINP, onLCP, onTTFB].forEach(on => on(({ name, value }) => {\n        vitals[`${name.toLowerCase()}${name === 'CLS' ? '' : '_ms'}`] = name === 'CLS' ? value.toFixed(3) : Math.round(value);\n    }));\n    let sent = false;\n    const send = event => {\n        if (sent || (event.type !== 'pagehide' && document.visibilityState !== 'hidden')) return;\n        sent = true;\n        // Same origin only: a third party hides its sizes (transferSize 0) unless it opts in.\n        const own = performance.getEntriesByType('resource').filter(entry => new URL(entry.name).origin === location.origin);\n        const scripts = own.filter(entry => entry.initiatorType === 'script');\n        const [navigation] = performance.getEntriesByType('navigation');\n        const metadata = {\n            page_id: root.dataset.pageId, hero_signup: root.dataset.heroSignup, signup_steps: root.dataset.flow,\n            mobile: window.matchMedia('(max-width: 767.98px)').matches,\n            ...vitals, ready_ms: markMs('hero_signup_ready'), tiles_ms: markMs('hero_signup_tiles'),\n            js_bytes: sumBytes(scripts), total_bytes: sumBytes(own) + (navigation?.transferSize || 0),\n            // A repeat visit loads the bundles from the browser cache: its byte counts say little.\n            cached: scripts.some(entry => entry.transferSize === 0 && entry.decodedBodySize > 0),\n        };\n        const strings = Object.fromEntries(Object.entries(metadata).filter(([, v]) => v !== undefined).map(([k, v]) => [k, String(v)]));\n        try {\n            const client = getStatsigClient();\n            client.logEvent('homepage_signup_vitals', null, strings);\n            // The SDK flushed its own queue on this same hide, before this listener ran.\n            client.flush();\n        } catch (e) {}\n    };\n    // After FCP: onCLS only starts listening for the hide then, and has to report before send reads it.\n    onFCP(() => {\n        document.addEventListener('visibilitychange', send);\n        window.addEventListener('pagehide', send);\n    });\n}\n","import AOS from 'aos';\nimport 'aos/dist/aos.css';\nimport '../../../js/components/signup-loading';\nimport { initFooterContactForm } from '../../../js/components/footer-contact-form';\nimport { initTailwindNavbar } from '../../../js/components/tailwind-navbar';\nimport { initCountryLanguagePicker } from '../../../js/components/country-language-picker';\nimport { initializeStatsig } from '../../../js/utils/statsig';\nimport { initCoupon } from './coupon';\nimport { trackHeroSignupVitals } from './hero_signup/vitals';\n\n// What bijleshuis.js did for a Tailwind GenericPage, without the SCSS chrome's jQuery, Bootstrap and React.\nexport function initTailwindGenericPageChrome() {\n    try {\n        initializeStatsig();\n    } catch (e) {\n        // No #statsigData on the page: run without Statsig, as bijleshuis.js did.\n    }\n    trackHeroSignupVitals();\n    initFooterContactForm();\n    initTailwindNavbar();\n    initCountryLanguagePicker();\n    initCoupon();\n    AOS.init({ easing: 'ease-in-sine', duration: 1000 });\n}\n","/**\n * Country + Language picker (HEL-1067, Swapfiets-style redesign), shared by\n * both chromes (Tailwind's _language_links.html and SCSS's\n * country_language_picker.html — same data attributes, same markup shape).\n *\n * Land: the selected country's own row is a <button> that toggles the list\n * of OTHER countries open/closed; picking one of those is a real <a href>\n * navigating to that country's default language, so the toggle only ever\n * needs to show/hide — there's no \"confirm\" step. Taal: plain crawlable\n * links, no JS needed there. No-ops when the picker markup isn't on the page\n * (hosts outside PICKER_HOSTS keep the plain flat list), same contract as\n * initTailwindNavbar.\n *\n * Toggles both chromes' class conventions (Tailwind's `flex`/`hidden`\n * utilities, SCSS's `is-visible`) unconditionally — harmless no-op for\n * whichever pair the current chrome's stylesheet doesn't use. Same for the\n * chevron's `rotate-180`, keyed off the shared `.country-picker__chevron`\n * class both chromes' triggers carry.\n */\nexport function initCountryLanguagePicker() {\n    document.querySelectorAll(\"[data-country-picker-toggle]\").forEach(toggle => {\n        // [data-country-picker-list] lives inside the toggle's own <li>'s\n        // next sibling <li>, not queried page-wide: the panel renders twice\n        // per page (desktop dropdown, mobile drawer), and each copy must\n        // only ever open its own list.\n        const list = toggle\n            .closest(\"li\")\n            .nextElementSibling.querySelector(\"[data-country-picker-list]\");\n        const chevron = toggle.querySelector(\".country-picker__chevron\");\n\n        toggle.addEventListener(\"click\", event => {\n            // Bootstrap 3's dropdown plugin (SCSS chrome) closes the outer\n            // .dropdown-menu on any document click it doesn't recognize as\n            // its own toggle — without this the country toggle closed the\n            // whole picker instead of revealing the country list.\n            event.stopPropagation();\n            const isOpen = list.classList.toggle(\"is-visible\");\n            list.classList.toggle(\"flex\", isOpen);\n            list.classList.toggle(\"hidden\", !isOpen);\n            if (chevron) {\n                chevron.classList.toggle(\"rotate-180\", isOpen);\n            }\n        });\n    });\n}\n","// ?coupon=CODE: remember the code for the signup (session cookie) and say so in the snackbar.\n// The message is server-rendered in [data-coupon-message] with a {coupon} placeholder.\nexport function initCoupon() {\n    const code = new URLSearchParams(window.location.search).get('coupon');\n    if (!code) return;\n    document.cookie = `coupon=${code}; path=/`;\n\n    const template = document.querySelector('[data-coupon-message]');\n    const snackbar = document.getElementById('snackbar');\n    if (!template || !snackbar) return;\n\n    const [before, after] = template.content.textContent.trim().split('{coupon}');\n    const bold = document.createElement('b');\n    bold.textContent = code;\n    setTimeout(() => {\n        snackbar.replaceChildren(before, bold, after ?? '');\n        snackbar.classList.add('show');\n        setTimeout(() => snackbar.classList.remove('show'), 5000);\n    }, 2000);\n}\n","import Alpine from 'alpinejs';\nimport { initTailwindGenericPageChrome } from './chrome';\n\n// The only Alpine.start() on a Tailwind GenericPage: every entry goes through here.\nexport function startTailwindGenericPage({ plugins = [], components = {} } = {}) {\n    initTailwindGenericPageChrome();\n    plugins.forEach(plugin => Alpine.plugin(plugin));\n    Object.entries(components).forEach(([name, component]) => Alpine.data(name, component));\n    window.Alpine = Alpine;\n    Alpine.start();\n}\n","import { startTailwindGenericPage } from './start';\n\nstartTailwindGenericPage();\n"],"names":["module","exports","e","t","o","n","i","id","loaded","call","m","c","p","__esModule","default","Object","assign","arguments","length","prototype","hasOwnProperty","a","u","s","d","b","y","h","w","k","x","offset","delay","easing","duration","disable","once","startEvent","throttleDelay","debounceDelay","disableMutationObserver","j","O","init","document","all","window","atob","mobile","phone","tablet","S","forEach","node","removeAttribute","isSupported","console","info","querySelector","setAttribute","indexOf","readyState","addEventListener","ready","refresh","refreshHard","v","g","apply","f","setTimeout","_","this","M","r","TypeError","leading","maxWait","trailing","cancel","clearTimeout","flush","valueOf","replace","l","test","slice","Symbol","iterator","constructor","NaN","parseInt","self","Function","toString","Math","max","min","Date","now","dataset","aos","children","MutationObserver","WebKitMutationObserver","MozMutationObserver","Array","addedNodes","removedNodes","concat","defineProperty","value","observe","documentElement","childList","subtree","navigator","userAgent","vendor","opera","enumerable","configurable","writable","key","substr","pageYOffset","innerHeight","getAttribute","position","classList","add","remove","anchor","anchorPlacement","isNaN","querySelectorAll","top","offsetHeight","offsetLeft","offsetTop","tagName","scrollLeft","scrollTop","offsetParent","left","map","element","parent","insertBefore","firstChild","___CSS_LOADER_EXPORT___","push","cssWithMappingToString","list","item","content","needLayer","join","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","_k","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","data","sourceMapping","stylesInDOM","getIndexByIdentifier","identifier","result","modulesToDom","options","idCountMap","identifiers","base","count","indexByIdentifier","obj","css","sourceMap","references","updater","addElementStyle","byIndex","splice","api","domAPI","update","newObj","lastIdentifiers","newList","index","newLastIdentifiers","_i","_index","createElement","setAttributes","attributes","insert","styleElement","nonce","insertStyleElement","styleTagTransform","parentNode","removeChild","removeStyleElement","styleSheet","cssText","appendChild","createTextNode","_a","_b","_c","_getInstance","_getStatsigGlobalFlag","_getStatsigGlobal","Log_1","__STATSIG__","statsigGlobal","flag","sdkKey","gbl","instances","keys","Log","warn","firstInstance","GLOBAL_KEY","_window","_global","_globalThis","globalThis","instance","BatchQueue","EventBatch_1","EventRetryConstants_1","batchSize","EventRetryConstants","DEFAULT_BATCH_SIZE","_batches","_batchSize","requeueBatch","batch","_enqueueBatch","hasFullBatch","some","events","takeNextBatch","shift","takeAllBatches","batches","createBatches","droppedCount","chunk","EventBatch","droppedEventCount","MAX_PENDING_BATCHES","dropped","_getStorageKey","_getUserStorageKey","Hashing_1","user","customKeyGenerator","cids","customIDs","parts","userID","sort","leftKey","rightKey","localeCompare","_DJB2","PrecomputedEvaluationsContextHandle","SafeJs_1","SessionID_1","StableID_1","getOptions","getErrorBoundary","getValues","getUser","getSdkInstanceID","_sdkKey","_getOptions","_getErrorBoundary","_getValues","_getUser","_getSdkInstanceID","errorBoundary","values","_cloneObject","error","getSession","bumpSession","StatsigSession","get","stableID","StableID","sdkInstanceID","toContext","session","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","rejected","done","then","_makeDataAdapterResult","DataAdapterCore","StatsigUser_1","StorageProvider_1","TypedJsonParse_1","source","receivedAt","fullUserHash","_getFullUserHash","_adapterName","_cacheSuffix","_options","_cacheLimit","_lastModifiedStoreKey","_inMemoryCache","InMemoryCache","attach","_network","getDataSync","normalized","_normalizeUser","cacheKey","_getCacheKey","inMem","_getIsCacheValueValid","cache","_loadFromCache","setData","current","_getSdkKey","_getDataAsyncImpl","Storage","isReady","isReadyResolver","ops","_fetchAndPrepFromNetwork","timeoutMs","debug","race","_prefetchDataImpl","cachedResult","cachedData","isCacheValidFor204","_isCachedResultValidFor204","latest","_fetchFromNetwork","response","_typedJsonParse","has_updates","_writeToCache","getItem","resultString","setItem","Error","includes","ceil","_runLocalStorageCacheEviction","cacheLimit","lastModifiedTimeMap","_getObjectFromStorage","evictableKeys","_getEvictableKeys","evictable","removeItem","_setObjectInStorage","_data","cached","provided","merge","limit","keyA","keyB","valueA","valueB","Diagnostics","MARKER_MAP","Map","ACT_START","ACT_END","_createMarker","action","timestamp","_addMarker","marker","markers","set","_safeGetField","field","_getMarkers","_markInitOverallStart","_markInitOverallEnd","success","evaluationDetails","name","message","_markInitNetworkReqStart","_markInitNetworkReqEnd","_markInitProcessStart","_markInitProcessEnd","_clearMarkers","delete","_formatError","code","_getDiagnosticsData","res","attempt","body","ok","statusCode","status","sdkRegion","headers","isDelta","_enqueueDiagnosticsEvent","logger","sdk","overallInitDuration","event","eventName","metadata","time","_makeDiagnosticsEvent","context","statsigOptions","enqueue","_fetchTxtRecords","FEATURE_ASSETS_DNS_QUERY","Uint8Array","DOMAIN_CHARS","networkFunc","method","Accept","err","arrayBuffer","input","start","findIndex","byte","String","fromCharCode","split","_parseDnsResponse","ErrorBoundary","EXCEPTION_ENDPOINT","SDKType_1","StatsigMetadata_1","UNKNOWN_ERROR","_resolveError","_getStatsigOptionLoggingCopy","loggingCopy","option","_emitter","_lastSeenError","_seen","Set","wrap","namePrefix","names","proto","getPrototypeOf","getOwnPropertyNames","filter","prop","from","_getAllInstanceMethodNames","original","args","_capture","$EB","_onError","logError","tag","logDroppedEvents","reason","extra","eventCount","logEventRequestFailure","flushType","retries","failurePath","failureErrorMessage","failureDiagnosticBucket","failureDiagnosticMetadata","getLastSeenErrorAndReset","tempError","attachErrorIfNoneExists","task","catch","bypassDedupe","_d","_e","_f","_g","unwrapped","isError","resolvedError","has","networkConfig","preventAllNetworkTraffic","sdkType","SDKType","_get","statsigMetadata","StatsigMetadataProvider","stack","_getDescription","exception","func","networkOverrideFunc","fetch","sdkExceptionUrl","sdkVersion","impl","_error","attempts","createdAt","incrementAttempts","EventLogger","BatchedEventsQueue_1","CacheKey_1","FlushCoordinator_1","NetworkConfig_1","PendingEvents_1","StatsigEvent_1","StatsigOptionsCommon_1","UrlConfiguration_1","VisibilityObserving_1","EVENT_LOGGER_MAP","_safeFlushAndForget","_errorBoundary","_pendingEvents","_batchQueue","_flushCoordinator","_lastExposureTimeMap","_nonExposedChecks","_isShuttingDown","_storageKey","_pendingCompressionMode","_loggingEnabled","loggingEnabled","disableLogging","LoggingEnabledOption","disabled","browserOnly","config","_logEventUrlConfig","UrlConfiguration","Endpoint","_rgstr","logEventUrl","logEventFallbackUrls","setLogEventCompressionMode","mode","setLoggingEnabled","wasDisabled","isNowEnabled","_loadStoredEvents","_initFlushCoordinator","addEvent","_shouldLogEvent","normalizedEvent","_normalizeEvent","checkQuickFlush","_storeEventToStorage","incrementNonExposureCount","reset","isServerEnv","_isServerEnv","flushCoordinator","_subscribeToVisiblityChanged","visibility","startScheduledFlushCycle","loadAndRetryShutdownFailedEvents","stop","processShutdown","processManualFlush","appendAndResetNonExposedChecks","checks","_isExposureEvent","statsigEnvironment","userKey","previous","_getCurrentPageUrl","includeCurrentPageUrlWithEvents","_getCurrentPageUrlSafe","loggingBufferMaxSize","PendingEvents","FlushCoordinator","storageKey","existingEvents","_getEventsFromStorage","MAX_LOCAL_STORAGE","isArray","privateAttributes","extras","currentPage","MAX_RETRY_ATTEMPTS","TICK_INTERVAL_MS","QUICK_FLUSH_WINDOW_MS","MAX_QUEUED_EVENTS","EventSender","network","emitter","logEventUrlConfig","sendBatch","transportFailure","shouldUseBeacon","_isUnloading","isBeaconSupported","_sendEventsViaBeacon","_sendEventsViaPost","path","errorMessage","diagnosticBucket","diagnosticMetadata","failureInfo","post","_getRequestData","beacon","urlConfig","preserveFailedStatusCode","isCompressable","params","NetworkParam","EventCount","SDK_VERSION","credentials","EventSender_1","FlushInterval_1","FlushTypes_1","NetworkCore_1","RETRYABLE_NO_RESPONSE_FAILURE_PATHS","batchQueue","pendingEvents","onPrepareFlush","_cooldownTimer","_maxIntervalTimer","_hasRunQuickFlush","_currentFlushPromise","_creationTime","_flushInterval","FlushInterval","_onPrepareFlush","_eventSender","_scheduleNextFlush","stopScheduledFlushCycle","_clearAllTimers","addToPendingEventsQueue","hasEventsForFullBatch","processLimitFlush","_executeFlush","FlushTypeValues","Manual","finally","Shutdown","_prepareQueueForFlush","_processOneBatch","_attemptScheduledFlush","shouldFlushBySize","containsAtLeastOneFullBatch","shouldFlushByTime","hasReachedMaxInterval","_scheduleNoopPollTick","markFlushAttempt","ScheduledFullBatch","ScheduledMaxTime","_processNextBatch","hasCompletelyRecoveredFromBackoff","_processLimitFlushInternal","Limit","cooldownDelay","getTimeUntilNextFlush","checkForIdleSession","maxIntervalDelay","getTimeTillMaxInterval","always","adjustForSuccess","adjustForFailure","_handleFailure","convertPendingEventsToBatches","loggingInterval","getCurrentIntervalMs","maxPendingBatches","isEmpty","allEvents","takeAll","_isRetryableBatch","RETRYABLE_CODES","_saveShutdownFailedEventsToStorage","_getShutdownFailedEventsFromStorage","MIN_FLUSH_INTERVAL_MS","MAX_FLUSH_INTERVAL_MS","_currentIntervalMs","_lastFlushAttemptTime","getTimeSinceLastAttempt","floor","_getSortedObject","_DJB2Object","TypingUtils_1","hash","charCodeAt","maxLevels","object","maxDepth","sortedObject","_typeOf","addTag","unshift","LogLevel","None","Warn","Info","Debug","level","createMemoKey","MemoPrefix","_gate","_dynamicConfig","_experiment","_configList","_layer","_paramStore","EXIST_KEYS","DO_NOT_MEMO_KEYS","prefix","NetworkDefault","_initialize","_download_config_specs","SdkKey","SdkType","SdkVersion","Time","SessionID","StatsigEncoded","IsGzipped","NetworkCore","__StatsigGlobal_1","Diagnostics_1","NetworkFallbackResolver_1","SDKFlags_1","StatsigClientEventEmitter_1","_timeout","_netConfig","_leakyBucket","_lastUsedInitUrl","networkTimeoutMs","_fallbackResolver","NetworkFallbackResolver","_getLogEventCompressionMode","logEventCompressionMode","setErrorBoundary","sendBeacon","getLastUsedInitUrlAndReset","tempUrl","_ensureValidSdkKey","argsInternal","_getInternalRequestArgs","url","_getPopulatedURL","nav","bind","_tryEncodeBody","_tryToCompressBody","_sendRequest","endpoint","_isRateLimited","currentAttempt","reqTimedOut","populatedUrl","startTime","keepalive","priority","_tryMarkInitStart","bucket","lastRequestTime","timeoutId","text","_tryMarkInitEnd","tryBumpExpiryTime","_getErrorMessage","timedOut","abortedByTimeout","tryFetchUpdatedFallbackInfo","fallbackUrl","getActiveFallbackUrl","ErrorTag","NetworkError","requestArgs","formattedErrorMsg","diagnostics","elapsedMs","win","_getWindowSafe","doc","isUnloading","online","onLine","visibilityState","hasCustomHeaders","crossOrigin","currentOrigin","location","origin","startsWith","hasCustomUrl","customUrl","hasFallbackUrl","elapsedMsBucket","_bucketNumber","bodySizeBucket","byteLength","Blob","size","_getBodySize","_getNoResponseDiagnostics","_exponentialBackoff","compressionMode","disableCompression","LogEventCompressionMode","Disabled","Enabled","elapsed","leakedRequests","RATE_LIMIT_MAX_REQ_COUNT","getUrl","query","isStatsigEncodable","disableStatsigEncoding","reverse","CompressionStream","TextEncoder","isProxy","fallbackUrls","flagEnabled","SDKFlags","Forced","_allowCompression","bytes","encode","stream","writer","getWriter","write","close","reader","readable","getReader","chunks","read","totalLength","reduce","acc","combined","_populateRequestBody","sessionID","thresholds","threshold","_isDomainFailure","DnsTxtQuery_1","DEFAULT_TTL_MS","errorMsg","lowerErrorMsg","toLowerCase","_getFallbackInfoStorageKey","_tryWriteFallbackInfoToCache","hashKey","_fallbackInfo","_dnsQueryCooldowns","_networkOverrideFunc","expiryTime","parse","_readFallbackInfoFromCache","entry","getChecksum","urlConfigChecksum","urls","_tryFetchFallbackUrlsFromNetwork","newUrl","_pickNewFallbackUrl","_updateFallbackInfoWithNewUrl","newFallbackInfo","previousInfo","previousUrl","cooldown","records","urlString","URL","pathname","_extractPathFromUrl","defaultUrl","record","endpointDnsKey","baseUrl","endsWith","currentFallbackInfo","previouslyUsed","currentFallbackUrl","found","loopUrl","FLAGMAP","setFlags","flags","flagKey","SDK_CLIENT","suffix","_setClientType","client","_setBindingType","binding","_getUnloadEvent","_addDocumentEventListenerSafe","_addWindowEventListenerSafe","_getDocumentSafe","isNode","process","versions","EdgeRuntime","listener","href","UUID_1","SESSION_MAP","_checkForExpiredSession","sessionExpired","lastUpdate","_isIdle","_hasRunTooLong","_newSessionData","$emt","_getSessionIDStorageKey","_persistNow","lastPersistedAt","getUUID","existing","_loadSessionFromStorage","_loadOrCreateSharedSession","allowSessionBump","_persistThrottled","_maybeBumpSession","overrideInitialSessionID","override","_fastApproxSizeOf","getCookieName","PROMISE_MAP","COOKIE_ENABLED_MAP","DISABLED_MAP","_getStableIDStorageKey","_persistToStorage","_persistToCookie","expiryDate","setFullYear","getFullYear","cookie","toUTCString","cookiesEnabled","randomID","random","cookies","trim","decodeURIComponent","_loadFromCookie","_loadFromStorage","setOverride","_setCookiesEnabled","_setDisabled","StatsigClientBase","ErrorBoundary_1","EventLogger_1","MemoKey_1","adapter","loadingStatus","_initializePromise","_listeners","logLevel","disableStorage","initialSessionID","storageProvider","_setProvider","enableCookies","disableStableID","_memoCache","overrideAdapter","_logger","dataAdapter","loadFromStorage","_primeReadyRipcord","inst","_assignGlobalInstance","updateRuntimeOptions","shutdown","_setStatus","on","off","$on","__isInternal","barrier","newStatus","_enqueueExposure","exposure","disableExposureLog","_memoize","fn","disableEvaluationMemoization","memoKey","DataAdapterCachePrefix","_createLayerParameterExposure","_createConfigExposure","_mapExposures","_createGateExposure","CONFIG_EXPOSURE_NAME","GATE_EXPOSURE_NAME","LAYER_EXPOSURE_NAME","_createExposure","details","secondaryExposures","bootstrapMetadata","_addEvaluationDetailsToMetadata","exposures","exposureMapping","gate","gateValue","ruleID","__evaluation","version","secondary_exposures","passed","parameterName","evaluation","isExplicit","explicit_parameters","allocatedExperiment","undelegated_secondary_exposures","allocated_experiment_name","parameterRuleIDs","parameter_rule_ids","isExplicitParameter","lcut","additions","_makeTypedGet","_mergeOverride","_makeLayer","_makeExperiment","_makeDynamicConfig","_makeFeatureGate","_makeEvaluation","rule_id","idType","id_type","exposeFunc","param","fallback","_isTypeMatch","groupName","group_name","__value","overridden","UPDATE_DETAIL_ERROR_MESSAGES","createUpdateDetails","initDuration","sourceUrl","warnings","NO_NETWORK_DATA","_getUnitIDFromUser","fallbackEnvironment","copy","environment","tier","lowered","inMemoryStore","_inMemoryProvider","getProviderName","getAllKeys","_localStorageProvider","localStorage","_main","_current","_inMemoryBreaker","newProvider","isDisabled","guard","typeName","typeOf","crypto","randomUUID","getTime","d2","performance","ENDPOINT_DNS_KEY_MAP","customApi","defaultApi","fallbacks","_notifyVisibilityChanged","_isCurrentlyVisible","FOREGROUND","BACKGROUND","LISTENERS","__createBinding","create","k2","desc","getOwnPropertyDescriptor","__exportStar","_resolveDeltasResponse","client_core_1","_deleteEntriesInRecord","deltasString","deltas","hadBadDeltaChecksum","resolved","deleted_gates","feature_gates","deleted_configs","dynamic_configs","deleted_layers","layer_configs","_handleDeletedEntries","_mergeDeltasIntoCache","actualChecksum","checksumV2","badChecksum","badMergedConfigs","badFullResponse","deltas_full_response","V1InitializeContainer_1","V2InitializeContainer_1","_valuesForExternalUse","_values","_source","_lcut","_receivedAt","_bootstrapMetadata","_warnings","clear","finalize","setValues","response_format","V2InitializeContainer","V1InitializeContainer","_extractBootstrapMetadata","_setWarningState","sdk_flags","getWarnings","getGate","_getDetailedStoreResult","getConfig","getConfigList","getLayer","getParamStore","getSource","getExposureMapping","sdkInfo","generatorSDKInfo","_getDetails","bootstrapUser","userForComparison","analyticsOnlyMetadata","getCurrentSourceDetails","sourceDetails","isUnrecognized","EvaluationResponseDeltas_1","StatsigNetwork","super","_option","_initializeUrlConfig","initializeUrl","initializeFallbackUrls","fetchEvaluations","initializeHashAlgorithm","deltasResponseRequested","full_checksum","hasHashChanged","hash_used","sinceTime","previousDerivedFields","derived_fields","partialUserMatchSinceTime","_fetchEvaluations","_makeParamStoreGetter","NO_EXPOSURE_OPT","_shouldLogExposure","_shouldReturnFallback","paramName","param_type","ref_type","_getMappedStaticValue","getFeatureGate","gate_name","pass_value","fail_value","_getMappedGateValue","getDynamicConfig","config_name","param_name","_getMappedDynamicConfigValue","getExperiment","experiment_name","_getMappedExperimentValue","layer_name","_getMappedLayerValue","EvaluationStore_1","Network_1","ParamStoreGetterFactory_1","StatsigEvaluationsDataAdapter_1","StatsigClient","StatsigEvaluationsDataAdapter","_possibleFirstTouchMetadata","_getFeatureGateImpl","_getDynamicConfigImpl","_getExperimentImpl","_getConfigListImpl","_getLayerImpl","getParameterStore","_getParameterStoreImpl","_store","_user","_configureUser","_sdkInstanceID","_contextHandle","plugins","plugin","initializeSync","updateUserSync","initializeAsync","_initializeAsyncImpl","_updateUserSyncImpl","_createErrorUpdateDetails","_resetForUser","_finalizeUpdate","disableBackgroundCacheRefresh","_runPostUpdate","updateUserAsync","_updateUserAsyncImpl","initiator","getDataAsync","isUsingNetworkValues","getContext","getContextHandle","checkGate","logEvent","eventOrName","updateUserWithAnalyticsOnlyMetadata","originalUser","stableIdOverride","readyPromise","_checkUserHasIdForEvaluation","_checkInitializationStatus","getGateOverride","getDynamicConfigOverride","dynamicConfig","experiment","getExperimentOverride","getLayerOverride","configuration","paramStore","__configuration","getParamStoreOverride","type","prefetchData","setDataLegacy","customUserCacheKeyFunc","_getResultFromLookup","param_stores","lookup","evalV2","is_user_in_experiment","ue","gn","is_experiment_active","ea","group","is_device_based","ae","ep","us","pr","StatsigClient_1","AutoCapture","runStatsigAutoCapture","StatsigAutoCapturePlugin","AutoCaptureEvent_1","ConsoleLogManager_1","DeadClickManager_1","EngagementManager_1","RageClickManager_1","WebVitalsManager_1","commonUtils_1","eventUtils_1","metadataUtils_1","AUTO_EVENT_MAPPING","submit","AutoCaptureEventName","FORM_SUBMIT","click","CLICK","COPY","cut","acInstances","__plugin","_client","_disabledEvents","_previousLoggedPageViewUrl","_hasLoggedPageViewEnd","_pageViewLogged","auto_capture_settings","disabled_events","_engagementManager","EngagementManager","_rageClickManager","_webVitalsManager","WebVitalsManager","_enqueueAutoCapture","_deadClickManager","_consoleLogManager","ConsoleLogManager","consoleLogAutoCaptureSettings","enabled","_eventFilterFunc","eventFilterFunc","_addEventHandlers","eventHandler","userAction","_autoLogEvent","bumpInactiveTimer","MouseEvent","isRageClick","clientX","clientY","_logRageClick","_registerEventHandler","_tryLogPageViewEnd","_addPageViewTracking","_tryLogPageView","history","Proxy","pushState","originalPushState","target","state","unused","replaceState","originalReplaceState","eventType","ErrorEvent","_logError","_getTargetNode","isCopyEvent","selectedText","getSelection","captureCopyText","_sanitizeString","clipType","eventMetadata","_gatherEventData","setMeaningfulEngagementOccurred","allMetadata","_gatherAllMetadata","_getSafeUrl","startTracking","startInactivityTracking","_logSessionStart","_logPerformance","errorStr","ERROR","filename","lineno","colno","error_str","_isNewSession","SESSION_START","_getSanitizedPageUrl","flushImmediately","navigationType","flushPendingMetrics","_flushImmediately","last","setLastPageViewTime","payload","_updateClientWithPossibleFirstTouchMetadata","PAGE_VIEW","addNewSessionMetadata","dueToInactivity","PAGE_VIEW_END","getPageViewEndMetadata","RAGE_CLICK","getEntriesByType","getEntriesByName","navEntries","PerformanceNavigationTiming","domInteractive","redirectCount","transferSize","fpEntries","PerformancePaintTiming","PERFORMANCE","_getNetworkInfo","subname","isUserAction","isUserActionAutoCaptureEvent","logMetadata","page_url","typedClient","_getPossibleFirstTouchMetadata","abs","getAllMetadata","WEB_VITALS","DEAD_CLICK","CONSOLE_LOG","USER_ACTION_EVENTS","consoleLogsUtils_1","ConsoleLogPriority","trace","log","_enqueueFn","_restoreFns","_isTracking","_logLevel","__source","_maxKeys","maxKeys","_maxDepth","_maxStringLength","maxStringLength","_patchConsole","stopTracking","restore","entries","inStack","wrapFunctionWithRestore","originalFn","_safeStringify","_getStackTrace","_enqueueConsoleLog","_shouldLog","log_level","sampleRate","DeadClickConfig","CLICK_CHECK_TIMEOUT","SCROLL_DELAY_MS","SELECTION_CHANGE_DELAY_MS","MUTATION_DELAY_MS","ABSOLUTE_DEAD_CLICK_TIMEOUT","_lastMutationTime","_lastSelectionChangeTime","_clicks","_deadClickConfig","_handleScroll","throttle","scrollTime","scrollDelayMs","_handleClick","capture","passive","_handleSelectionChange","_setupMutationObserver","eventTarget","interactiveElements","_clickCheckTimer","_checkForDeadClick","_observer","characterData","clicksToCheck","_updateClickDelayMs","hadScroll","hadSelectionChange","selectionChangeDelayMs","hadMutation","mutationDelayMs","scrollTimeout","selectionChangeTimeout","mutationTimeout","absoluteTimeout","absoluteDelayMs","_logDeadClick","extraMetadata","_gatherCommonMetadata","_lastScrollY","_maxScrollY","_lastScrollPercentage","_maxScrollPercentage","_lastPageViewTime","_inactiveTimer","_onInactivityCallback","_meaningfulEngagementOccurred","_lastBumpTime","_initializeScrollTracking","scrollHeight","scrollY","currentScrollPercentage","round","getScrollMetrics","lastScrollY","maxScrollY","lastScrollPercentage","maxScrollPercentage","scrollDepth","getPageViewLength","callback","occurred","pageviewEndMetadata","pageViewLength","meaningfulEngagementOccurred","dx","dy","isCloseEnough","web_vitals_1","VALID_METRIC_NAMES","_isInitialized","_metricEvent","_getSafeUrlString","sanitizedUrl","metrics","firstMetricTimestamp","protocol","onCLS","metric","_handleMetric","onFCP","onINP","onLCP","onTTFB","_enqueueWebVitalsAutoCaptureEvent","currentUrl","metricData","delta","rating","flattenedMetrics","first_metric_timestamp","AutoCapture_1","_getAnchorNodeInHierarchy","_getSafeTimezoneOffset","_getSafeTimezone","_getSafeNavigationType","_getSafeNetworkInformation","_stripEmptyValues","CC_REGEX","RegExp","SSN_REGEX","parentTagName","parentElement","fromEntries","srcElement","Element","nodeType","el","contains","compStyles","getComputedStyle","getPropertyValue","handler","connection","navEntry","Intl","DateTimeFormat","resolvedOptions","timeZone","getTimezoneOffset","maybeString","_shouldCaptureTextValue","substring","lastCall","targetObject","functionName","wrapperFactory","originalFunction","wrappedFunction","_truncateString","str","maxLength","_isObjectTooDeep","val","maxKeysCount","_shouldNotStringify","_simpleStringify","_getMetadataFromElement","_gatherCopyEventData","MAX_ATTRIBUTE_LENGTH","_getSafeMetadataAttributes","elem","safeAttributes","selector","className","classes","selectors","currentElement","depth","Node","ELEMENT_NODE","getElementSelector","_generateCssSelector","nthChild","nthOfType","sibling","previousElementSibling","nextElementSibling","hasNextSiblingWithSameTag","_isSensitiveElement","elementMetadata","_getFormMetadata","_getInputMetadata","_getAnchorMetadata","textContent","attr","_gatherDatasetProperties","_getButtonMetadata","linkUrl","host","_isOutboundLink","_h","safeDoc","safeWnd","title","current_url","user_agent","locale","language","hostname","screen_width","screen","width","screen_height","height","viewport_width","innerWidth","viewport_height","viewport","timezone","timezone_offset","navigation_type","networkInfo","effectiveType","rtt","downlink","saveData","getReferrerInfo","referrer","referrer_domain","referrer_path","searchEngine","searchQuery","find","searchParams","getCampaignParams","urlParams","campaignParams","referrerInfo","commonInfo","queryParams","prefixed","persisted","timeStamp","requestAnimationFrame","responseStart","activationStart","prerendering","wasDiscarded","WeakMap","hadRecentInput","at","PerformanceObserver","supportedEntryTypes","getEntries","buffered","removeEventListener","firstHiddenTime","T","disconnect","reportAllChanges","E","L","C","interactionId","I","interactionCount","entryType","A","requestIdleCallback","B","N","q","CLSThresholds","FCPThresholds","INPThresholds","LCPThresholds","TTFBThresholds","takeRecords","PerformanceEventTiming","durationThreshold","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","definition","nc","reactive","effect","release","raw","flushPending","flushing","queue","lastFlushedIndex","transactionActive","dequeueJob","job","queueFlush","queueMicrotask","flushJobs","shouldSchedule","overrideEffect","watch","oldValue","firstTime","effectReference","previousValue","async","transaction","onAttributeAddeds","onElRemoveds","onElAddeds","onElRemoved","_x_cleanups","onAttributesAdded","onAttributeRemoved","_x_attributeCleanups","cleanupAttributes","observer","onMutate","currentlyObserving","startObservingMutations","attributeOldValue","stopObservingMutations","queuedMutations","queueLengthWhenTriggered","flushObserver","mutateDom","isCollecting","deferredMutations","mutations","addedAttributes","removedAttributes","_x_ignoreMutationObserver","_x_marker","attributeName","add2","hasAttribute","attrs","isConnected","scope","mergeProxies","closestDataStack","addScopeToNode","data2","referenceNode","_x_dataStack","ShadowRoot","objects","mergeProxyTrap","ownKeys","flatMap","unscopables","Reflect","thisProxy","collapseProxies","descriptor","initInterceptors","recurse","basePath","getOwnPropertyDescriptors","__v_skip","_x_interceptor","initialize","interceptor","mutateObj","initialValue","carry","segment","innerValue","magics","magic","injectMagics","memoizedUtilities","utilities","cleanup2","getElementBoundUtilities","utils","getUtilities","tryCatch","expression","handleError","errorHandler","error2","shouldAutoEvaluateFunctions","dontAutoEvaluateFunctions","evaluate","evaluateLater","theEvaluatorFunction","theRawEvaluatorFunction","normalEvaluator","overriddenMagics","dataStack","evaluator","receiver","scope2","runIfTypeOfFunction","generateEvaluatorFromFunction","evaluatorMemo","AsyncFunction","rightSideSafeExpression","func2","safeAsyncFunction","generateFunctionFromString","finished","completeScope","promise","generateEvaluatorFromString","prefixAsString","subject","directiveHandlers","directive","before","directive2","pos","directiveOrder","directives","originalAttributeOverride","_x_virtualDirectives","vAttributes","staticAttributes","attributesOnly","attribute","transformedAttributeMap","directives2","toTransformedAttributes","newName","oldName","outNonAlpineAttributes","typeMatch","match","alpineAttributeRegex","valueMatch","modifiers","toParsedDirectives","byPriority","handler4","fullHandler","_x_ignore","_x_ignoreSelf","inline","isDeferringHandlers","directiveHandlerStacks","currentHandlerStackKey","runCleanups","getDirectiveHandler","cleanups","effect3","cleanupEffect","_x_effects","_x_runEffects","elementBoundEffect","Alpine","alpine_default","cleanup","startingWith","replacement","newValue","attributeTransformers","transform","mapAttributes","DEFAULT","typeA","typeB","dispatch","detail","dispatchEvent","CustomEvent","bubbles","composed","cancelable","walk","el2","skip","firstElementChild","started","rootSelectorCallbacks","initSelectorCallbacks","rootSelectors","allSelectors","addRootSelector","selectorCallback","addInitSelector","closestRoot","includeInitSelectors","findClosest","matches","_x_teleportBack","initInterceptors2","markerDispenser","initTree","walker","intercept","flushHandlers","handle","deferHandlingDirectives","destroyTree","root","pop","cleanupElement","tickStack","isHolding","nextTick","releaseNextTicks","setClasses","setClassesFromString","classObject","classString","Boolean","forAdd","bool","forRemove","added","removed","setClassesFromObject","setStyles","previousStyles","value2","style","setProperty","setStylesFromObject","setStylesFromString","called","registerTransitionObject","setFunction","defaultValue","_x_transition","enter","during","end","leave","after","transition","out","closestHide","_x_hidePromise","start2","_x_transitioning","undoStart","undoDuring","undoEnd","stages","interrupted","reachedBefore","reachedEnd","finish","beforeCancels","beforeCancel","Number","transitionDuration","transitionDelay","animationDuration","performTransition","modifierValue","rawValue","evaluate2","stage","registerTransitionsFromClassString","doesntSpecify","transitioningIn","transitioningOut","wantsAll","opacityValue","scaleValue","property","durationIn","durationOut","transformOrigin","transitionProperty","transitionTimingFunction","opacity","registerTransitionsFromHelper","_x_toggleAndCascadeWithTransitions","show","hide","nextTick2","clickAwayCompatibleShow","in","isFromCancelledTransition","closest","_x_hideChildren","hideAfterChildren","isCloning","skipDuringClone","interceptors","interceptClone","isCloningLegacy","dontRegisterReactiveSideEffects","callback2","storedEffect","_x_bindings","char","toUpperCase","isRadio","fromModel","checked","safeParseBoolean","checkedAttrLooseCompare","isCheckbox","isInteger","arrayWrappedValue","selected","updateSelect","bindInputValue","_x_undoAddedStyles","bindStyles","_x_undoAddedClasses","bindClasses","bindAttribute","propName","setPropertyIfChanged","bindAttributeAndProperty","attributeShouldntBePreservedIfFalsy","isBooleanAttr","attrName","setIfChanged","booleanAttributes","getAttributeBinding","localName","debounce","wait","timeout","inThrottle","entangle","outerGet","outerSet","innerGet","innerSet","outerHash","innerHash","firstRun","reference","outer","inner","cloneIfObject","outerHashLatest","innerHashLatest","stores","isReactive","binds","applyBindingsObject","cleanupRunners","datas","flushAndStopDeferringMutations","disableEffectScheduling","setReactivityEngine","engine","scheduler","onlyDuringClone","setErrorHandler","deferMutations","interceptInit","setEvaluator","newEvaluator","setRawEvaluator","extractProp","extract","_x_inlineBindings","evaluateRaw","newPrefix","store","plugin2","clone","oldEl","newEl","hasRunThroughFirstEl","el3","isRoot","cloneTree","cloneNode","to","bound","$data","bindings","getBindings","makeMap","expectsLowerCase","activeEffect","EMPTY_OBJ","freeze","hasOwn","isMap","toTypeString","isSymbol","isObject","objectToString","toRawType","isIntegerKey","cacheStringFunction","camelizeRE","hyphenateRE","capitalize","charAt","hasChanged","targetMap","effectStack","ITERATE_KEY","MAP_KEY_ITERATE_KEY","uid","deps","shouldTrack","trackStack","resetTracking","track","depsMap","dep","onTrack","trigger","oldTarget","effects","effectsToAdd","allowRecurse","key2","onTrigger","isNonTrackableKeys","builtInSymbols","get2","createGetter","readonlyGet","arrayInstrumentations","createArrayInstrumentations","instrumentations","arr","toRaw","isReadonly","shallow","shallowReadonlyMap","readonlyMap","shallowReactiveMap","reactiveMap","targetIsArray","isRef","readonly","reactive2","createSetter","hadKey","mutableHandlers","deleteProperty","readonlyHandlers","toReactive","toReadonly","toShallow","getProto","get$1","isShallow","rawTarget","rawKey","has2","has$1","set$1","get3","checkIdentityKeys","deleteEntry","hadItems","createForEach","observed","createIterableMethod","targetIsMap","isPair","isKeyOnly","innerIterator","createReadonlyMethod","createInstrumentations","mutableInstrumentations2","shallowInstrumentations2","readonlyInstrumentations2","shallowReadonlyInstrumentations2","mutableInstrumentations","readonlyInstrumentations","shallowInstrumentations","shallowReadonlyInstrumentations","createInstrumentationGetter","mutableCollectionHandlers","readonlyCollectionHandlers","createReactiveObject","baseHandlers","collectionHandlers","proxyMap","existingProxy","targetType","isExtensible","rawType","targetTypeMap","proxy","__v_isRef","evaluateLater2","unwatch","_x_refs_proxy","refObjects","_x_refs","getArrayOfRefObject","globalIdMemo","findAndIncrementId","warnMissingPluginMagic","magicName","slug","_x_id","output","cacheIdByNameOnElement","_x_ids","closestIdRoot","evaluateInnerSet","_x_model","_x_removeModelListeners","releaseEntanglement","getTarget","clone2","_x_teleport","_x_forwardEvents","stopPropagation","placeInDom","clone3","target2","modifiers2","nextSibling","_x_teleportPutBack","teleportContainerDuringClone","listenerTarget","wrapHandler","wrapper","nextModifier","isNumeric","preventDefault","offsetWidth","_x_isShown","_x_pendingModelUpdates","isKeyEvent","isClickEvent","keyModifiers","debounceIndex","keyToModifiers","selectedSystemKeyModifiers","modifier","isListeningForASpecificKeyThatHasntBeenPressed","modifierToKeyMap","getInputValue","currentValue","safeParseNumber","multiple","selectedOptions","number","parseFloat","isGetterSetter","scopeTarget","evaluateSet","evaluateGet","getValue","setValue","removeListener","hasChangeModifier","hasBlurModifier","hasEnterModifier","listeners","syncValue","form","syncCallback","removeResetListener","_x_forceModelUpdate","activeElement","isSameNode","innerHTML","handler2","bindingProviders","_x_keyExpression","storeKeyForXFor","getIterationScopeVariables","iteratorNames","items","scopeVariables","collection","handler3","warnMissingPluginDirective","directiveName","shouldSkipRegisteringDataDuringClone","magicContext","dataProviderContext","reactiveData","undo","_x_doHide","_x_doShow","display","removeProperty","toggle","forIteratorRE","inMatch","iteratorMatch","parseForExpression","evaluateItems","evaluateKey","_x_prevKeys","_x_lookup","templateEl","prevKeys","scopes","isObject2","adds","moves","removes","sames","lastKey","prevIndex","keyInSpot","keyForSpot","elInSpot","elForSpot","_x_currentIfEl","_x_refreshXForScope","lastKey2","lastEl","importNode","reactiveScope","newScope","loop","_x_undoIf","setIdRoot","_isEffect","isEffect","active","createReactiveEffect","lazy","onStop","module_default","locals","CONFIG","openTimer","burstTimer","stepTimer","hardTimer","progressPct","prefersReducedMotion","matchMedia","randomBetween","setBar","rootEl","pct","bar","setStatus","statusEl","animation","getStepText","scheduleBurst","_startProgressAndSteps","steps","setInterval","rotateSteps","clearInterval","getTimeoutText","_syncFromUrl","URLSearchParams","search","firstStep","_renderOverlay","_ref$error","_hideOverlay","_ref3","clearFormErrors","displayFormErrors","errors","_ref","_ref2","_slicedToArray","fieldName","errorMessages","getElementById","errorList","msg","li","handleContactFormSubmit","_regeneratorRuntime","mark","_callee","submitBtn","originalText","formData","_context","prev","loadingText","FormData","sent","json","redirect_url","t0","__all__","_x","_x2","_x3","NAV_SELECTOR","SURFACE_SELECTOR","DRAWER_ID","CONTACT_SELECTOR","CONTACT_TARGET_ID","HIGHLIGHT_ATTR","highlightContact","isFirstReport","IntersectionObserver","isIntersecting","clearHighlightOnScrollAway","SDK_KEY","_statsigClientInstance","getStatsigClient","_statsigData$user","statsigData","serverStableID","$","D","H","markMs","sumBytes","sum","initTailwindGenericPageChrome","statsigClient","initializeStatsig","surface","sentinel","_JSON$parse","custom","is_bot","is_employee_traffic","untracked","vitals","toFixed","send","own","scripts","initiatorType","navigation","_objectSpread","page_id","pageId","hero_signup","heroSignup","signup_steps","flow","ready_ms","tiles_ms","js_bytes","total_bytes","decodedBodySize","strings","_ref4","_ref5","trackHeroSignupVitals","ajaxInitialized","setupFormAjax","prepend","toggleAttribute","drawer","link","initContactLinks","chevron","isOpen","template","snackbar","_template$content$tex2","bold","replaceChildren","initCoupon","AOS","_ref$plugins","_ref$components","components","component","startTailwindGenericPage"],"sourceRoot":""}