1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6602],{94371:function(t,e,n){n.d(e,{D$:function(){return l},Jm:function(){return s},Kq:function(){return d},Rp:function(){return o},_s:function(){return f},lG:function(){return m},yV:function(){return c}});var r=n(46214),u=n(38225),i=n(13512);function a(t){if(r.ZP.__loaded)try{t()}catch(t){}}function c(t){a(()=>{let e=(0,u.TJ)();r.ZP.identify(t.id,{email:t.email,plan:t.plan,acquisition_channel:(0,u.Iw)(e),utm_source:null==e?void 0:e.utm_source,utm_campaign:null==e?void 0:e.utm_campaign,landing_page:null==e?void 0:e.landing_page})})}function l(){a(()=>r.ZP.reset())}function o(t,e){a(()=>r.ZP.capture("signup_completed",{acquisition_channel:(0,u.Iw)(t),utm_source:null==t?void 0:t.utm_source,utm_medium:null==t?void 0:t.utm_medium,utm_campaign:null==t?void 0:t.utm_campaign,landing_page:null==t?void 0:t.landing_page,referrer:null==t?void 0:t.referrer,...e}))}function m(t,e){a(()=>r.ZP.capture("cta_clicked",{location:t,...e}))}function s(t,e,n){a(()=>r.ZP.capture("checkout_started",{plan:t,period:e,source:n}))}function d(t,e,n){a(()=>{let i=(0,u.TJ)();r.ZP.capture("subscription_created",{plan:t,period:e,source:n,acquisition_channel:(0,u.Iw)(i),utm_source:null==i?void 0:i.utm_source,utm_campaign:null==i?void 0:i.utm_campaign})})}function f(t,e){a(()=>r.ZP.capture("feature_used",{feature:t,...e})),(0,i.R)()}},13512:function(t,e,n){n.d(e,{R:function(){return a}});var r=n(56689),u=n(34517);let i="mw_review_v1";function a(){if("ios"===r.dV.getPlatform())try{var t;let e=JSON.parse(localStorage.getItem(i)||"{}"),n=(null!==(t=e.uses)&&void 0!==t?t:0)+1,r=Date.now(),a=n>=3&&(!e.askedAt||r-e.askedAt>10368e6);localStorage.setItem(i,JSON.stringify({uses:n,askedAt:a?r:e.askedAt})),a&&setTimeout(()=>void u.O.requestReview().catch(()=>{}),1500)}catch(t){}}},38225:function(t,e,n){n.d(e,{C8:function(){return f},Iw:function(){return g},TJ:function(){return s},nI:function(){return d},u1:function(){return m}});var r=n(56689),u=n(71837);let i="mw_attr_v1",a={utm_source:120,utm_medium:120,utm_campaign:200,utm_term:200,utm_content:200,gclid:255,fbclid:255,referrer:500,landing_page:500,signup_locale:10,signup_platform:10};function c(t,e){if(!e)return;let n=e.trim();if(n)return n.slice(0,a[t])}function l(t){return!!(t.utm_source||t.gclid||t.fbclid||t.referrer)}function o(){try{let t=localStorage.getItem(i);return t?JSON.parse(t):null}catch(t){return null}}function m(){try{let t=o();if(t&&l(t))return;let e=function(){let t=new URLSearchParams(window.location.search),e=null;try{if(document.referrer){let t=new URL(document.referrer).hostname;t&&t!==window.location.hostname&&(e=document.referrer)}}catch(t){}return{utm_source:c("utm_source",t.get("utm_source")),utm_medium:c("utm_medium",t.get("utm_medium")),utm_campaign:c("utm_campaign",t.get("utm_campaign")),utm_term:c("utm_term",t.get("utm_term")),utm_content:c("utm_content",t.get("utm_content")),gclid:c("gclid",t.get("gclid")),fbclid:c("fbclid",t.get("fbclid")),referrer:c("referrer",e),landing_page:c("landing_page",window.location.pathname)}}();if(t&&!l(e))return;localStorage.setItem(i,JSON.stringify(e))}catch(t){}}function s(t){var e;let n={...null!==(e=o())&&void 0!==e?e:{}};t&&(n.signup_locale=c("signup_locale",t));let u=r.dV.getPlatform();return n.signup_platform="ios"===u||"android"===u?u:"web",Object.values(n).some(Boolean)?n:void 0}function d(){try{return localStorage.getItem("mw_locale")||void 0}catch(t){return}}function f(){let t=s(d());t&&u.h.post("/auth/attribution",t).catch(()=>{})}function g(t){if(!t)return"direct";if(t.gclid)return"google_ads";if(t.fbclid)return"meta_ads";if(t.utm_source)return"".concat(t.utm_source).concat(t.utm_medium?"/".concat(t.utm_medium):"");if(t.referrer)try{return"referral/".concat(new URL(t.referrer).hostname)}catch(t){return"referral"}return"direct"}},96602:function(t,e,n){n.r(e),n.d(e,{useAuthStore:function(){return c}});var r=n(3011),u=n(71837),i=n(94371),a=n(38225);let c=(0,r.U)(t=>({user:null,isLoading:!1,setUser:e=>t({user:e}),login:async(e,n)=>{t({isLoading:!0});try{await u.h.post("/auth/login",{email:e,password:n});let{data:r}=await u.h.get("/auth/me");t({user:r}),(0,i.yV)({id:r.id,email:r.email,plan:r.plan})}finally{t({isLoading:!1})}},register:async(e,n,r,c)=>{t({isLoading:!0});try{let l=(0,a.TJ)((0,a.nI)());await u.h.post("/auth/register",{email:e,password:n,full_name:r,referral_code:c,attribution:l});let{data:o}=await u.h.get("/auth/me");t({user:o}),(0,i.yV)({id:o.id,email:o.email,plan:o.plan}),(0,i.Rp)(l,{method:"email",referred:!!c})}finally{t({isLoading:!1})}},logout:async()=>{try{await u.h.post("/auth/logout")}catch(t){}(0,i.D$)(),t({user:null}),window.location.href="/login"},fetchMe:async()=>{let{data:e}=await u.h.get("/auth/me");t({user:e}),(0,i.yV)({id:e.id,email:e.email,plan:e.plan})}}))},3011:function(t,e,n){n.d(e,{U:function(){return l}});var r=n(2265);let u=t=>{let e;let n=new Set,r=(t,r)=>{let u="function"==typeof t?t(e):t;if(!Object.is(u,e)){let t=e;e=(null!=r?r:"object"!=typeof u||null===u)?u:Object.assign({}
1,e,u),n.forEach(n=>n(e,t))}},u=()=>e,i={setState:r,getState:u,getInitialState:()=>a,subscribe:t=>(n.add(t),()=>n.delete(t))},a=e=t(r,u,i);return i},i=t=>t?u(t):u,a=t=>t,c=t=>{let e=i(t),n=t=>(function(t,e=a){let n=r.useSyncExternalStore(t.subscribe,r.useCallback(()=>e(t.getState()),[t,e]),r.useCallback(()=>e(t.getInitialState()),[t,e]));return r.useDebugValue(n),n})(e,t);return Object.assign(n,e),n},l=t=>t?c(t):c}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.