1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["js/subscription.storeD0D3zB45.js","js/chunkReloadRecoveryC4XyrbqR.js","js/vue-runtimeBcw72k-n.js","js/cjs-helpersC4iS2aBk.js","js/bootstrap-vue-nextD6HU9H8G.js","assets/bootstrap-vue-nexthA7rx8St.css","js/dexie2jmnBxhj.js","assets/chunkReloadRecoveryUbLNi8xK.css","js/OperationQueueDV3oPNrt.js","js/item-name.utilsCH3lkmjj.js","js/item.typesx7Q7rrX9.js","js/content.typesCQ2lHcy0.js","js/constantsDsHwd9pV.js","js/extraction.pure.utilsDQPW8yIh.js","js/url.utilsCetgXmY_.js","js/common.storeB-dDF-ne.js","js/adminsite.storeDQcNSYX0.js"])))=>i.map(i=>d[i]); 2import{b as bt,cC as C,d as Mr,e as Fr,U as b,cA as Ge,cD as At,ch as Re,ar as U,as as q,cE as Ve,t as A,aE as Lr,T as D,c as _,cF as kt,f as h,h as Or,W as S,cG as Et,ah as Te,cH as Hr,cI as Ct,cJ as xr,cK as Br,cL as Ut,cM as Qe,aJ as O,cN as z,cO as qr,n as Nr,aj as Wr,bW as jr,bX as Dt,$ as $r,N as Je,v as Ye,j as B,aA as v,cP as zr}from"./chunkReloadRecoveryC4XyrbqR.js";import{am as Gr,an as Vr,ao as Xe,ap as ge,aq as Qr,ar as Jr,as as Yr,X as Xr,at as Zr,B as Ze,r as ea,au as ta}from"./OperationQueueDV3oPNrt.js";import{a1 as H,q as ra,i as Be,c as g}from"./vue-runtimeBcw72k-n.js";import{t as _t,u as Kt,v as Mt,w as Ft}from"./file_utilsBz4gEirg.js";import{c as aa,h as na}from"./item-name.utilsCH3lkmjj.js";import{b as sa}from"./agentParentalGrantCz4Xs1Ac.js";const m=H({phase:"idle",total:0,current:0,currentLabel:"",currentPreview:"",added:0,failed:0,cancelRequested:!1,cancelled:!1,lastError:""});function Lt(){m.phase="idle",m.total=0,m.current=0,m.currentLabel="",m.currentPreview="",m.added=0,m.failed=0,m.cancelRequested=!1,m.cancelled=!1,m.lastError=""}function ia(e,t){Lt(),m.phase=e,m.total=Math.max(0,Number(t)||0)}function Ot(e,t,r){m.current=Math.max(0,Number(e)||0)+1,m.currentLabel=t||"",m.currentPreview=r||""}function ls(){m.added+=1}function us(e){m.failed+=1}function ds(){m.cancelRequested=!0}function fs(){return m.cancelRequested}function ps(){m.cancelled=m.cancelRequested,m.phase="done",m.currentLabel="",m.currentPreview=""}const ms=()=>m.phase==="preparing"||m.phase==="adding";function Ht(e){m.phase==="idle"&&(!Number.isFinite(e)||e<=1||ia("preparing",e))}function xt(){m.phase==="preparing"&&Lt()}const oa="localAtRestSettings",_e=e=>`localAtRestKeyset:${e}`,ca={enabled:!1,rememberDeviceMode:"sessionOnly",autoInitKeyset:!1};function la(e){if(!e||typeof e!="object")return{...ca};const t=e.enabled===!0,r=e.rememberDeviceMode==="notImplementedYet"?"notImplementedYet":"sessionOnly",a=e.autoInitKeyset===!0;return{enabled:t,rememberDeviceMode:r,autoInitKeyset:a}}const ua=new Vr,Bt={loadWrappedKeyset:async e=>await bt(_e(e)),saveWrappedKeyset:async(e,t)=>{await Fr(_e(e),t)},deleteWrappedKeyset:async e=>{await Mr(_e(e))}};async function et(e){var n;const t=await bt(oa),r=la((n=t==null?void 0:t.byAccount)==null?void 0:n[e]),a=await Bt.loadWrappedKeyset(e);return{settings:r,hasWrappedKeyset:!!a,keysetCreatedAtMs:(a==null?void 0:a.createdAtMs)||null}}async function Se(e){const t=await C.getUserId();if(!t)return null;const r=t,a=await Gr.instance.getKeyManager(r,t,e);if(!a||a.isEmpty())return null;try{const n=await a.getAcntSecretKey();return n?await ua.getOrCreateKeyset(e,n,Bt):null}catch{return null}}async function da(e){const t=await C.getUserId();if(!t)return null;const r=await b.get(t,e),a=await C.getAccountId();if(!a)return r;const{settings:n}=await et(a);if(!((n==null?void 0:n.enabled)===!0))return r;if(Qr(r)){const i=await Se(a);if(!i)return null;try{return await Jr(i.dataKey,r.envelope,ge(a,e,{recordType:"user_kv"}))}catch(o){return console.warn("[uiAtRestUserKv] decrypt failed",e,o),null}}try{const i=await Se(a);if(!i)return r;const c={format:"local-at-rest-kv-v1",v:1,envelope:await Xe(i.dataKey,r,ge(a,e,{recordType:"user_kv"}))};return await b.set(t,e,c),r}catch{return r}}async function fa(e,t){const r=await C.getUserId();if(!r)return;const a=await C.getAccountId();if(!a){await b.set(r,e,t);return}const{settings:n}=await et(a);if(!((n==null?void 0:n.enabled)===!0)){await b.set(r,e,t);return}const i=await Se(a);if(i)try{const c={format:"local-at-rest-kv-v1",v:1,envelope:await Xe(i.dataKey,t,ge(a,e,{recordType:"user_kv"}))};await b.set(r,e,c)}catch(o){console.warn("[uiAtRestUserKv] encrypt failed",e,o)}}async function pa(e,t,r){const a=await C.getUserId();if(!a)return;const n=await C.getAccountId();if(!n){await b.set(a,e,t);return}const{settings:s}=await et(n);if(!((s==null?void 0:s.enabled)===!0)){await b.set(a,e,t);return}const o=await Se(n);if(!o){await b.set(a,e,t);return}try{const f={format:"local-at-rest-kv-v1",v:1,envelope:await Xe(o.dataKey,t,ge(n,e,{recordType:"user_kv"}))};await b.set(a,e,f)}catch(c){console.warn("[uiAtRestUserKv] encrypt failed",e,c)}}async function ma(e){const t=await C.getUserId();t&&await b.clear(t,e)}function Ke(e,t){const r=e?String(e).trim():"";return r?`${r}.${t}`:t}function ha(e){let t=!1;const r=async o=>await da(Ke(e,o)),a=async(o,c)=>{const f=Ke(e,o);if(t){await pa(f,c);return}await fa(f,c)};return{getRaw:r,setRaw:a,clear:async o=>{await ma(Ke(e,o))},getJson:async o=>{const c=await r(o);if(c!=null&&typeof c!="string")return c;if(typeof c=="string"&&c.trim())try{return JSON.parse(c)}catch{return null}return null},setJson:async(o,c)=>{await a(o,c)},_setAllowPlaintextFallbackWhenLocked:o=>{t=o===!0}}}const L={userKv:(e,t)=>{const r=ha(e);return r._setAllowPlaintextFallbackWhenLocked((t==null?void 0:t.allowPlaintextFallbackWhenLocked)===!0),r}};async function hs(e){await Te.userKv().clear(e)}const ya=async(e,t=null)=>{if(!e&&!t)return null;if(e||(e=t),!e.startsWith("uf_")&&e.startsWith("http"))return e;try{let a=(await A("/userfile/getById",{fileId:e},{defaultPrefix:"image/jpeg",suppressError:!0})).result.data.trim();return a?Lr(e,a):a=t,a}catch{return console.warn(`Image file ${e} not found in local storage, using default if available`),t||null}};async function ys(e,t){const a={data:t,timestamp:new Date().getTime()};await Te.userKv().setRaw(e,a)}async function gs(e){return await Te.userKv().getRaw(e)}
2const u=H({localClientSettings:Re(),localSharedClientSettings:At(),listView:"row",backgroundOptions:Ge,imageRefreshToken:null,tempShareData:[],tempShareFiles:[],collectionIcon:"folder",taskBarItems:[],clientInfo:{}}),M=H({processing:!1,tooLargeCount:0});function Ss(){return u.imageRefreshToken}const ga=Object.fromEntries(Ge.filter(e=>e.value&&e.file).map(e=>[e.value,e.file]));let we=null;const be=ra(!0);function ws(){return be}let ae=null;const qt=()=>{ae!=null&&(window.cancelAnimationFrame(ae),ae=null)},qe=()=>{be.value=!0,qt(),ae=window.requestAnimationFrame(()=>{ae=null,document.body.classList.add("bg-ready")})},Sa=(e,t)=>{if(!e){qe();return}const r=new Image,a=()=>{we===t&&qe()};r.onload=a,r.onerror=a,r.src=e,typeof r.decode=="function"&&r.decode().then(a).catch(()=>{})};let de=0,yt=!1;const Ne=()=>{var r,a;if(typeof window>"u")return;const e=document.body;if(!e.classList.contains("withBackground"))return;if(!Or()){e.style.removeProperty("--wallpaper-stable-height");return}const t=Math.max(window.innerHeight||0,((r=window.screen)==null?void 0:r.height)||0,((a=document.documentElement)==null?void 0:a.clientHeight)||0);t>de&&(de=t),de>0&&e.style.setProperty("--wallpaper-stable-height",`${de}px`)},wa=()=>{yt||typeof window>"u"||(yt=!0,window.addEventListener("resize",Ne,{passive:!0}),window.addEventListener("orientationchange",Ne,{passive:!0}))},Ia=()=>{const e=document.body,t=u.localClientSettings;if(!t||!t.background){We();return}const r=t.background==="custom",a=r&&t.customBackground||"",n=r?`custom:${a}`:t.background;if(n===we&&e.classList.contains("withBackground")){e.classList.contains("bg-ready")||qe();return}We(),be.value=!1,we=n,e.classList.add("withBackground");let s=null;if(r)s=a||null;else{e.classList.add(t.background);const i=ga[t.background];s=i?`/bgs/${i}`:null}s?e.style.setProperty("--wallpaper-image",`url("${s}")`):e.style.removeProperty("--wallpaper-image"),e.style.setProperty("background-image","none","important"),wa(),Ne(),Sa(s,n)},We=()=>{const e=document.body;e.style.removeProperty("background-image"),e.style.removeProperty("--wallpaper-image"),e.style.removeProperty("--wallpaper-stable-height");for(const t of Ge)t.value&&e.classList.remove(t.value);e.classList.remove("withBackground"),e.classList.remove("bg-ready"),qt(),be.value=!0,we=null};async function Pa(){return await aa()}function Nt(){return`${Math.floor(Math.random()*1e3)}`}function va(){u.imageRefreshToken=Nt(),U.persistentSetString(q.clientSettings.imageRefreshToken,u.imageRefreshToken)}u.imageRefreshToken||(u.imageRefreshToken=Nt());(async()=>{const e=await U.persistentGetString(q.clientSettings.imageRefreshToken);if(e){u.imageRefreshToken=e;return}U.persistentSetString(q.clientSettings.imageRefreshToken,u.imageRefreshToken)})();function Wt(e=void 0){return u.localClientSettings.defaultViewType||"tile"}function jt(e,t=void 0){Vt("defaultViewType",e)}function $t(){var e;return((e=u==null?void 0:u.localClientSettings)==null?void 0:e.developerMode)||!1}Be(()=>{var e;return((e=u==null?void 0:u.localClientSettings)==null?void 0:e.developerMode)===!0},e=>Yr(e),{immediate:!0});function Ra(){var a;const e=xr();if(!((a=e==null?void 0:e.tokenData)!=null&&a.token))return!1;const t=Date.now()/1e3;if(typeof e.expiresAtSec=="number"&&e.expiresAtSec>0&&e.expiresAtSec<t)return!1;const r=e.tokenData.expAtSec;return!(typeof r=="number"&&r>0&&r<t)}function zt(){var n;const e=S.currentUser(),t=(e==null?void 0:e.type)==="admin",r=String(((n=_)==null?void 0:n.stage)||"").trim().toLowerCase();return t||(r==="dev"||r==="development")||Ra()}async function Gt(e){const t=await Et(e);u.localClientSettings={...Re(),...u.localClientSettings,...t}}function Ta(e){return e==="restricted"?"mountainvec1":"eclipse"}function ba(e){return!e||typeof e!="object"?!1:Object.keys(Ve(e)).length>0}async function Aa(){await U.persistentSetJson(q.clientSettings.sharedClientSettings,{...u.localSharedClientSettings})}const ka=async e=>{const t={...e},r=Object.keys(t).filter(kt);if(r.length>0)throw new Error(`Use userPrefs.updateWebsiteSetting for synced website keys: ${r.join(", ")}`);t.developerMode===!0&&!zt()&&(t.developerMode=!1),u.localClientSettings={...Re(),...u.localClientSettings,...t},await Gt(t)},Vt=async(e,t)=>{if(kt(e))throw new Error(`Use userPrefs.updateWebsiteSetting for synced website key: ${e}`);e==="developerMode"&&t===!0&&!zt()||(u.localClientSettings[e]=t,await Gt({[e]:t}))},Ea=async(e,t)=>
2{u.localSharedClientSettings[e]=t,await Aa()},Qt=async()=>{const e=await U.persistentGetJson(q.clientSettings.sharedClientSettings);return e&&(u.localSharedClientSettings={...At(),...u.localSharedClientSettings,...e}),h("[SETTINGS] Shared Client Settings",u.localSharedClientSettings),u.localSharedClientSettings},Ca=async()=>{const e=S.currentUser();if(!e)return;const t=await Te.userKv().getRaw(D.clientSettings),r=Ve(t||{}),a=await Hr(),s=Object.prototype.hasOwnProperty.call(r,"background")?a.background:Ta(e.type);return u.localClientSettings={...Re(),...u.localClientSettings,...a,background:s},ba(t)&&Object.keys(Ct(t||{})).length>0&&await Et(r),h("[SETTINGS] Client Settings",u.localClientSettings),u.localClientSettings},Ua=async()=>{await Qt(),await Ca()};async function oe(){const e=await L.userKv().getRaw(D.tempShareData);e?u.tempShareData=e:u.tempShareData=[]}async function Da(e){u.tempShareFiles.push(e)}async function Jt(){u.tempShareFiles=[]}async function ce(e){u.tempShareData=[...e];try{await L.userKv().setRaw(D.tempShareData,u.tempShareData)}catch(t){console.error("Error persisting queued shared attachments",t)}}function Is(){return Array.isArray(u.tempShareData)?u.tempShareData.length:0}async function Yt(e){await Xt([e])}async function Xt(e){const t=Array.isArray(e)?e.filter(Boolean):[];if(t.length===0)return;for(const a of t)await Ft(a);(!Array.isArray(u.tempShareData)||u.tempShareData.length===0)&&await oe();const r=Array.isArray(u.tempShareData)?u.tempShareData:[];await ce([...t].reverse().concat(r))}async function _a(){const e={queued:!1};if(_.browser_mode)return e;try{const t=await L.userKv().getRaw(D.attachSelection);if(!t)return e;const{info:r,tab:a}=t;await L.userKv().clear(D.attachSelection);const{loadedData:n,dataType:s,mimeType:i,errorMessage:o}=await Fa(r);if(o||!n||!i)return{queued:!1,errorMessage:o||"That selection couldn't be loaded."};if(s==="link"||s==="text"){const f=typeof n=="string"?n.trim():"";return{queued:!1,linkUrl:f||null,errorMessage:f?null:"That selection couldn't be loaded."}}let c=(a==null?void 0:a.title)||"default";return c=c.slice(0,20),c=`attachment:${c}`,await Yt({type:"base64",data:{dataType:s,mimeType:i,filename:c,data:n}}),{queued:!0}}catch(t){return h(t),{queued:!1,errorMessage:"That selection couldn't be loaded."}}}function Ka(e){return e!=null&&e.selectionText?"text":e.mediaType==="image"?"image":e.mediaType==="video"?"video":e!=null&&e.mediaType&&(e!=null&&e.srcUrl)?e.mediaType:e!=null&&e.linkURL?"link":"unknown"}function Ma(e){return e.split(":")[1].split(";")[0]}async function Fa(e){const t=Ka(e);let r=null,a=null,n=null;if(["image","video","audio"].includes(t)){const s=e.srcUrl;if(s.startsWith("data:"))a=s,n=Ma(s);else if(s.startsWith("blob:"))r="Unable to load blob";else{const i=await A("/data/raw",{url:e.srcUrl,mediaType:e.mediaType});i&&i.success?(a=i.result.base64Data,n=i.result.mimeType):r=i.message}}else t==="text"?(a=e.selectionText,n="text/plain"):t==="link"?(a=e.linkURL,n="text/plain"):(a=e,r="Unknown media type");return{loadedData:a,dataType:t,mimeType:n,errorMessage:r}}async function Zt(){var r,a,n;const e=u.tempShareData,t=[];M.processing=!0,Ht(e.filter(s=>!(s!=null&&s.preppedData)).length);try{for(const[s,i]of e.entries()){if(i!=null&&i.preppedData)continue;Ot(s,String(((r=i==null?void 0:i.data)==null?void 0:r.filename)||""));const o=String(((a=i==null?void 0:i.data)==null?void 0:a.mimeType)||"");if(!o){t.push(i);continue}o.includes("image")?await _t(i):o.includes("video")?await Kt(i):await Mt(i),(n=i==null?void 0:i.preppedData)!=null&&n.fileData||t.push(i)}}finally{M.processing=!1,xt()}return t.length>0&&await ce(e.filter(s=>!t.includes(s))),{droppedCount:t.length}}async function La(){await oe();const e=await _a(),t=await er(),r=await Zt();return{...t,droppedCount:r.droppedCount,selectionLinkUrl:e.linkUrl||null,selectionErrorMessage:e.errorMessage||null}}async function er(){var r,a,n,s;const e=u.tempShareFiles;let t=0;M.processing=!0,M.tooLargeCount=0,Ht(e.length);try{const i=[];for(const[o,c]of e.entries()){await Ft(c),Ot(o,String(((r=c==null?void 0:c.data)==null?void 0:r.filename)||""));const f=Number(((a=c.data)==null?void 0:a.size)||((s=(n=c.data)==null?void 0:n.file)==null?void 0:s.size)||0);if(f>0&&f>_.maxUploadSizeMB*1024*1024){t+=1,console.error(`File is too large. Files should be less than ${_.maxUploadSizeMB} MB.`);continue}if(!c.preppedData){if(!c.data.mimeType){console.error("Unknown file type not supported");continue}c.data.mimeType.includes("image")?await _t(c):c.data.mimeType.includes("video")?await Kt(c):await Mt(c)}i.push(c)}return await Xt(i),await Jt(),{tooLargeCount:t}}finally{M.processing=!1,M.tooLargeCount=t,xt()}}async function Oa(e){await ce(e)}async function tr(){u.tempShareData=[];try{await L.userKv().clear(D.tempShareData)}catch(e){console.error("Error clearing temp share data",e)}}async function tt(){try{await L.userKv().clear(D.tempShareHandoff)}catch(e){console.error("Error clearing temp share handoff",e)}}async function Ha(){const e=Array.isArray(u.tempShareData)?[...u.tempShareData]:[];e.some(a=>!!(a!=null&&a.preppedData))||await oe();const r=Array.isArray(u.tempShareData)?[...u.tempShareData]:e;return r.length?(await L.userKv().setRaw(D.tempShareHandoff,r),r.length):(await tt(),0)}async function rr(){const e=await L.userKv().getRaw(D.tempShareHandoff),t=Array.isArray(e)?e:[];return await tt(),t}async function xa(){const e=await rr(),t=Array.isArray(u.tempShareData)?[...u.tempShareData]:[];t.length===0&&await oe();const r=Array.isArray(u.tempShareData)?[...u.tempShareData]:t;await tr();const a=[...e];for(const n of r)a.some(s=>Ba(s,n))||a.push(n);return a}function Ba(e,t){var n,s,i,o,c,f,I,T,P,y,Y;if(e===t)return!0;
2if(!e||!t)return!1;const r=((n=e==null?void 0:e.preppedData)==null?void 0:n.fileData)||((s=e==null?void 0:e.data)==null?void 0:s.data),a=((i=t==null?void 0:t.preppedData)==null?void 0:i.fileData)||((o=t==null?void 0:t.data)==null?void 0:o.data);return typeof r=="string"&&typeof a=="string"&&r===a?!0:!!((c=e==null?void 0:e.data)!=null&&c.filename)&&((f=e==null?void 0:e.data)==null?void 0:f.filename)===((I=t==null?void 0:t.data)==null?void 0:I.filename)&&((T=e==null?void 0:e.data)==null?void 0:T.mimeType)===((P=t==null?void 0:t.data)==null?void 0:P.mimeType)&&Number(((y=e==null?void 0:e.data)==null?void 0:y.size)||0)===Number(((Y=t==null?void 0:t.data)==null?void 0:Y.size)||0)}async function qa(e){const t=Array.isArray(e)?e.filter(Boolean):[];t.length!==0&&await ce(t)}function Na(e){var a,n,s;const t=[],r=[];for(const i of Array.isArray(e)?e:[]){const o=((a=i==null?void 0:i.preppedData)==null?void 0:a.fileType)||((n=i==null?void 0:i.data)==null?void 0:n.mimeType);(s=i==null?void 0:i.preppedData)!=null&&s.fileData&&typeof o=="string"&&o?t.push(i):r.push(i)}return{usable:t,dropped:r}}async function Wa(e){u.tempShareData=u.tempShareData.filter((t,r)=>r!==e),await ce(u.tempShareData)}const Ps={clientSettings:()=>u.localClientSettings,listView:()=>u.listView,imageRefreshToken:()=>u.imageRefreshToken,developerMode:()=>$t(),tempShareData:()=>u.tempShareData,tempShareFiles:()=>u.tempShareFiles},vs={processingFiles:()=>M.processing},ja={getViewType:Wt,setViewType:jt},Rs=()=>({state:u,localClientSettings:g(()=>u.localClientSettings),localViewSettings:g(()=>Ve(u.localClientSettings)),...ja}),je={load:Ua,loadShared:Qt,updateSetting:Vt,updateSettingGroup:ka,updateSharedSetting:Ea,getViewType:Wt,setViewType:jt,refreshImageToken:va,loadTempShareData:oe,addTempShareData:Yt,addTempFile:Da,clearTempFiles:Jt,clearTempShareData:tr,clearTempShareHandoff:tt,handoffTempShareData:Ha,removeShareData:Wa,replaceTempShareData:Oa,refreshAllTempFiles:La,processSelectedFiles:er,processSharedData:Zt,takeTempShareHandoff:rr,claimSharedAttachments:xa,restoreSharedAttachments:qa,partitionUsableShares:Na,setBackground:Ia,removeBackground:We,isDeveloperMode:$t,getClientSysInfo:Pa,getImageURLByFilename:ya,state:u,filesState:M};Br((e,t,r)=>A(e,t,r));const Ae=[{name:"tasks",label:"Tasks",icon:"check2-square",showInTaskbar:!1,enabledPrefKey:"features.tasks.enabled"},{name:"audio",label:"Audio",icon:"play-circle",showInTaskbar:!1,enabledPrefKey:"features.audioPlayer.enabled"},{name:"app-editor",label:"App Builder",icon:"pencil-square",showInTaskbar:!1}];Ae.map(e=>e.name);function Ts(e){if(e)return Ae.find(t=>t.name===e)}const $a=Ae.map(e=>e.enabledPrefKey).filter(e=>!!e),za=new Set(["notes","ai"]),ar=Xr.filter(e=>e.appLike&&e.taskbarTarget&&e.taskbarTarget!=="search").map((e,t)=>({name:e.taskbarTarget,label:e.label,icon:e.icon||"app",enabled:!1,type:"items",builtin:!0,items:[],itemCache:[],tabs:[],order:t,showInTaskbar:!za.has(e.taskbarTarget)})),Ga=Ae.map((e,t)=>({name:e.name,label:e.label,icon:e.icon,enabled:!0,type:"builtin",builtin:!0,items:[],itemCache:[],tabs:[],order:ar.length+t,showInTaskbar:e.showInTaskbar})),gt=[...ar,...Ga];function J(e){return(e==null?void 0:e.type)==="builtin"}function $(e){return Array.isArray(e)?e.filter(t=>t!=null).map(t=>t&&typeof t=="object"?{...t}:t):[]}function ne(e){return{...e,items:$(e.items),itemCache:$(e.itemCache),tabs:$(e.tabs)}}function se(e){const t=$(e.items),r=$(e.itemCache),a=$(e.tabs);return{name:e.name||"",label:e.label||"",icon:e.icon||"square",enabled:J(e)||r.length>0,type:e.type||"items",builtin:e.builtin!==!1,items:t,itemCache:r,tabs:a,order:typeof e.order=="number"?e.order:0,showInTaskbar:e.showInTaskbar!==!1}}function Va(e){const t=Array.isArray(e)?e.filter(s=>s!=null).map(s=>se(s)):[],r=new Map(t.map(s=>[s.name,s])),a=gt.map(s=>{const i=r.get(s.name);return i?se({...ne(s),...i,type:s.type,items:i.items,itemCache:i.itemCache,tabs:i.tabs}):ne(s)}),n=t.filter(s=>!gt.some(i=>i.name===s.name)).map(s=>ne(s));return[...a,...n].sort((s,i)=>s.order-i.order)}const rt=()=>!1;function bs(e,t=rt){return Array.isArray(e)?e.filter(r=>r!=null).map(r=>se(r)).filter(r=>J(r)||r.itemCache.length>0||t(r.name)):[]}function nr(e,t=rt){return Array.isArray(e)?e.filter(r=>r!=null).map(r=>se(r)).filter(r=>J(r)||r.items.length>0||t(r.name)):[]}function As(e,t=rt){const r=[],a=[];return nr(e,t).forEach(n=>
2{n.showInTaskbar!==!1?r.push(n):J(n)&&a.push(n)}),{strip:r,builtins:a}}function ks(e){return nr(e).some(t=>!J(t))}const Qa="backup.library.lastDownloadedAt",Ja=["pinnedToHome","taskbar","notificationSettings","uiWelcome",...$a,"home.shortcuts.activity.visible","home.shortcuts.apps.visible","home.shortcuts.tasks.visible","home.shortcuts.layout","home.widgets.accessStatus.visible","home.sections.recent.visible","home.sections.quickbar.visible","ui.categoryGrid.density","ui.advancedMode.enabled","categoryExplorer","sidebar.nav.layout","today.cards.layout","today.widgets.tasks.visible","today.widgets.calendar.visible","today.widgets.waiting.visible","today.widgets.reading.visible","today.widgets.usage.visible","today.widgets.nextUp.visible","today.widgets.sources.visible","today.widgets.rediscover.visible","calendar.sources","calendar.view","tasks.listFilters","features.taskbar.enabled","features.flowMode.enabled","features.encryptionPassword.enabled","appearance.bigSimple.enabled","appearance.bigSimple.mobile.enabled","features.searchSidekick.enabled","features.monitorWidget.enabled","features.categoryExplorer.enabled","features.today.enabled","features.topicInsights.enabled","features.entityNotes.enabled","features.entityNotesAI.enabled","features.learnedClassifier.mode","features.imageImprovement.enabled","search.defaultEngine","search.disabledTargets","commandBar.hotkey","commandBar.inSearchBox","defaults.byKind","kinds.hiddenSlots","integrations.email.allowedSenders","integrations.email.windowDays","integrations.gmail.oauth",Qa,...Zr,...sa,...Ut],p=H({userPrefs:{loaded:!1,data:{}},prefsUserId:null}),Ya=24*60*60*1e3,at=3,Ie={};function sr(e){if(Array.isArray(e))return e;if(!e||typeof e!="object")return null;const t=Object.entries(e);return t.length===0?[]:t.every(([r])=>/^\d+$/.test(r))?t.sort((r,a)=>Number(r[0])-Number(a[0])).map(([,r])=>r):null}function Xa(e){if(e===void 0)return{malformed:!1};const t=sr(e);if(t==null)return{value:[],malformed:!0};const r=t.filter(a=>typeof a=="string"&&a.length>0);return{value:r,malformed:!Array.isArray(e)||r.length!==t.length}}function ir(e){if(e===void 0)return{malformed:!1};const t=sr(e);if(t==null)return{value:[],malformed:!0};const r=t.filter(a=>!!a&&typeof a=="object").map(a=>se(a));return{value:r,malformed:!Array.isArray(e)||r.length!==t.length}}function Pe(e){const t={...e};let r=!1,a=!1;const n=Xa(t.pinnedToHome);n.value!==void 0&&(t.pinnedToHome=n.value,r=r||n.malformed);const s=ir(t.taskbar);return s.value!==void 0&&(t.taskbar=s.value,r=r||s.malformed),{data:t,hasMalformedHomePrefs:r,hasIncompleteHomePrefs:a}}function or(e){const t=r=>{if(typeof r!="string")return r;const a=r.trim();if(!a||!(a.startsWith("{")||a.startsWith("[")||a.startsWith('"')||a==="true"||a==="false"||a==="null"||/^-?\d+(\.\d+)?$/.test(a)))return r;try{return JSON.parse(a)}catch{return r}};if(Array.isArray(e)){const r={};for(const a of e){const n=String((a==null?void 0:a.key)||"").trim();n&&(r[n]=t(a==null?void 0:a.value))}return Pe(r)}if(e&&typeof e=="object"){const r={};for(const[a,n]of Object.entries(e))r[a]=t(n);return Pe(r)}return{data:{},hasMalformedHomePrefs:!1,hasIncompleteHomePrefs:!1}}function cr(e){return or(e).data}function X(e){return e==="taskbar"}function lr(e,t){return Array.isArray(t)?t.map(r=>ne(r)):[]}function Za(e,t){Ie[e]=lr(e,t)}function pe(e){delete Ie[e]}function le(e){const t={...e};return Ie.taskbar!==void 0&&(t.taskbar=lr("taskbar",Ie.taskbar)),t}function en(e,t){return ir(t).value}function tn(e,t){return typeof e!="number"||e<=0?"missing":e<=Date.now()-t?"stale":"fresh"}function ke(e){if(!e||typeof e!="object")return null;const t=e.loaded===!0,r=e.data;if(!t||!r||typeof r!="object")return null;const a=e.meta,n=a&&typeof a=="object"?{version:typeof a.version=="number"?a.version:void 0,homeStartupReady:a.homeStartupReady===!0}:void 0,s=or(r);return{loaded:!0,data:s.data,meta:n,hasMalformedHomePrefs:s.hasMalformedHomePrefs,hasIncompleteHomePrefs:s.hasIncompleteHomePrefs}}function ur(e){const t={...e||{}};return Object.prototype.hasOwnProperty.call(t,"pinnedToHome")||(t.pinnedToHome=[]),Object.prototype.hasOwnProperty.call(t,"taskbar")||(t.taskbar=[]),t}function dr(e,t={}){const r=Pe(le(e.data||{})),a=t.homeStartupReady===!0,n=a?ur(r.data):r.data;return{loaded:e.loaded===!0,data:n,meta:{version:at,homeStartupReady:a}}}function fr(e){var t,r;
2return((t=e==null?void 0:e.meta)==null?void 0:t.version)===at&&((r=e==null?void 0:e.meta)==null?void 0:r.homeStartupReady)===!0}function nt(e){const t=e||{};return{taskbar:Object.prototype.hasOwnProperty.call(t,"taskbar"),pinnedToHome:Object.prototype.hasOwnProperty.call(t,"pinnedToHome"),taskbarEnabled:Object.prototype.hasOwnProperty.call(t,"features.taskbar.enabled")}}function rn(e){const t=nt(e);return t.taskbar&&t.pinnedToHome}function st(e){const t=p.userPrefs,r=t.data||(t.data={}),a=Pe((e==null?void 0:e.data)||{}).data,n=le(a);Object.keys(r).forEach(s=>{Object.prototype.hasOwnProperty.call(n,s)||delete r[s]}),Object.assign(r,n),t.loaded=e.loaded===!0,p.prefsUserId=S.currentUserId()??null}function pr(){const e=S.currentUserId()??null,t=p.prefsUserId;if(!e||!t||t===e)return e;const r=p.userPrefs.data||{};return Object.keys(r).forEach(a=>{delete r[a]}),p.userPrefs.loaded=!1,p.prefsUserId=null,pe("taskbar"),e}async function it(){if(pr(),p.userPrefs.loaded)return{state:"fresh",prefs:p.userPrefs};const e=await z.getUserCache("cache_userPrefs"),t=ke(e==null?void 0:e.data);if(!t)return{state:"missing",prefs:p.userPrefs};const r=tn(e==null?void 0:e.timestamp,Ya),a=nt(t.data);return t.meta,fr(t)?t.hasMalformedHomePrefs?(t.meta,{state:"incomplete",prefs:p.userPrefs}):t.hasIncompleteHomePrefs?(t.meta,{state:"incomplete",prefs:p.userPrefs}):rn(t.data)?(st(t),{state:r,prefs:p.userPrefs}):(t.meta,{state:"incomplete",prefs:p.userPrefs}):(t.meta,{state:"incomplete",prefs:p.userPrefs})}let Z=null,Me=null,ee=null;async function an(e){const t=dr(e,{homeStartupReady:!0});return await z.setUserCache("cache_userPrefs",t),t}async function mr(e,t){var s,i;const r=ke((s=await z.getUserCache("cache_userPrefs"))==null?void 0:s.data),a={loaded:e.loaded===!0,data:le({...(r==null?void 0:r.data)||{},...p.userPrefs.data||{},...e.data||{}})},n=dr(a,{homeStartupReady:fr(r)});return(i=n.meta)==null||i.homeStartupReady,Object.keys(n.data||{}).length,nt(n.data),await z.setUserCache("cache_userPrefs",n),n}async function nn(){var t;const e=ke((t=await z.getUserCache("cache_userPrefs"))==null?void 0:t.data);return le({...(e==null?void 0:e.data)||{},...p.userPrefs.data||{}})}async function sn(){var r,a;const e=ke((r=await z.getUserCache("cache_userPrefs"))==null?void 0:r.data),t=((a=e==null?void 0:e.meta)==null?void 0:a.version)===at?e.data:{};return le({...t,...p.userPrefs.data||{}})}function hr(e,t){if(!(e!=null&&e.success))throw new Error((e==null?void 0:e.message)||t);return e}async function ot(){if(ee)return await ee;ee=(async()=>{const e=await O("/user/prefs/get",{keys:[...Ut]},{forceRefresh:!0});hr(e,"Failed to refresh synced website settings");const t=cr(e==null?void 0:e.result),r=Ct(t),n={loaded:!0,data:{...await nn(),...r}};return st(n),await mr(n,"refresh-synced-website-settings"),r})();try{return await ee}finally{ee=null}}function on(e,t){return Array.isArray(e)?e.some(r=>String((r==null?void 0:r.key)||"").trim()===t):e&&typeof e=="object"?Object.prototype.hasOwnProperty.call(e,t):!1}async function Fe(e=!1){const t=pr();if(Z&&Me===t)return await Z;const r=(async()=>{const a=await O("/user/prefs/get",{keys:Ja},{forceRefresh:e});hr(a,"Failed to load user preferences");const n=cr(a.result);if((S.currentUserId()??null)!==t)return p.userPrefs;const s=await sn();for(const c of["pinnedToHome","taskbar"]){if(on(a.result,c))continue;const f=s==null?void 0:s[c];Array.isArray(f)&&f.length>0&&(n[c]=f,console.warn("[HOME_PREFS] preserved non-empty home pref absent from server response",{key:c,count:f.length}))}const o={loaded:!0,data:ur(n)};return st(o),await an(o),p.userPrefs})();Z=r,Me=t;try{return await r}finally{Z===r&&(Z=null,Me=null)}}async function Ee(e=!1,t=!1){if(t){const r=await it();return r.state==="missing"||r.state==="incomplete"?await Fe(!1):(r.state==="stale"&&Fe(!1).catch(a=>{console.warn("[PREFS] delayed background refresh failed",a)}),r.prefs)}return await Fe(e)}async function x(e,t){const r=X(e)?en(e,t):t;X(e)&&Za(e,r);const a=S.currentUserId()??null;p.userPrefs.loaded=!1;const n=await O("/user/prefs/update",{updates:{[e]:r}});if((S.currentUserId()??null)!==a){X(e)&&pe(e);return}if(n&&n.success)p.userPrefs.data||(p.userPrefs.data={}),p.userPrefs.data[e]=r,p.userPrefs.loaded=!0,await mr(p.userPrefs,`update-pref:${e}`),X(e)&&pe(e);else throw p.userPrefs.loaded=!0,X(e)&&pe(e),new Error("Failed to update pref")}async function yr(e,t,r=null){const a=S.currentUserId()||null,n=r||a;if(!n)return;if(n===a){await x(e,t);try{await ot()}catch(o){console.warn("[WebsiteSettings] failed to refresh synced website settings after save",{key:e,error:o})}return}const i=await O("/user/prefs/update",{userId:n,updates:{[e]:t}});if(!(i!=null&&i.success))throw new Error("Failed to update pref")}async function Es(e,t=null){var s,i;const r=S.currentUserId()||null,a=t||r;if(!a)return;if(a===r&&p.userPrefs.loaded)return(s=p.userPrefs.data)==null?void 0:s[e];const n=await O("/user/prefs/get",{userId:a,keys:[e]});if(!(n!=null&&n.success))throw new Error("Failed to read pref");return(i=n.result)==null?void 0:i[e]}async function Cs(e,t=null){const r=S.currentUserId()||null,a=t||r;if(!a||e.length===0)return{};const n=await O("/user/prefs/get",{userId:a,keys:e});if(!(n!=null&&n.success))throw new Error("Failed to read prefs");return n.result||{}}async function Us(e,t,r=null){const a=S.currentUserId()||null,n=r||a;if(!n)return;if(n===a){await x(e,t),await Ee(!0);return}const s=await O("/user/prefs/update",{userId:n,updates:{[e]:t}});if(!(s!=null&&s.success))throw new Error("Failed to update pref")}let St=Promise.resolve();async function Ce(e){const r=St.catch(()=>{}).then(async()=>await e());return St=r.catch(()=>{}),await r}async function gr(e){if(h("Getting taskbar items",e),e.length===0)return[];const r=(await A("/item/listByIds",{ids:e})).result;return Ze(r)}async function Sr(e=[]){await Ce(async()=>{let t=e;if(e.length===0)if(p.userPrefs.data.taskbar&&p.userPrefs.data.taskbar.length>0)t=p.userPrefs.data.taskbar;else return;t=Va(t);const r=t.map(s=>s.items.map(i=>i.id)).flat(),n=(await gr(r)).reduce((s,i)=>(s[i._id]=i,s),{});t.forEach(s=>{s.itemCache=s.items.map(i=>n[i.id]).filter(i=>i!=null),s.enabled=J(s)||s.itemCache.length>0}),await x("taskbar",t),p.userPrefs.data.taskbar=t.map(s=>ne(s))})}const Ds={userPrefs:()=>p.userPrefs,effectiveWebsiteSettings:()=>{var e,t,r;return Qe(p.userPrefs.data,((e=S.currentUser())==null?void 0:e.type)||null,((t=S.currentUser())==null?void 0:t.localUser)===!0&&((r=S.currentUser())==null?void 0:r.type)!=="admin")}},cn={hydratePrefsFromCache:it,RefreshPrefs:Ee,RefreshSyncedWebsiteSettings:ot,UpdatePref:x,updateWebsiteSetting:yr,getTaskBarItems:gr,UpdateTaskBar:Sr},_s=()=>({state:p,userPrefs:g(()=>p.userPrefs),effectiveWebsiteSettings:g(()=>{var e,t,r;return Qe(p.userPrefs.data,((e=S.currentUser())==null?void 0:e.type)||null,((t=S.currentUser())==null?void 0:t.localUser)===!0&&((r=S.currentUser())==null?void 0:r.type)!=="admin")}),...cn}),me={hydrateFromCache:it,refresh:Ee,refreshSyncedWebsiteSettings:ot,updatePref:x,updateWebsiteSetting:yr,effectiveWebsiteSettings:()=>{var e,t,r;return Qe(p.userPrefs.data,((e=S.currentUser())==null?void 0:e.type)||null,((t=S.currentUser())==null?void 0:t.localUser)===!0&&((r=S.currentUser())==null?void 0:r.type)!=="admin")},updateTaskBar:Sr,state:p},ln=1e3,un=30,w=H({indexRefreshRequested:!1,indexRebuilding:!1,searchRetries:0,searchIndexFirstLoad:!0});async function wr(){const e=await A("/search/status",{});if(e&&e.success){const{indexRebuilding:t}=e.result;w.indexRebuilding=t,w.indexRebuilding||(w.indexRefreshRequested=!1)}else w.indexRebuilding=!0}async function Ir(){w.indexRebuilding?(h("[SIndex] Checking status"),w.searchRetries>un?(h("[SIndex] retries exceeded, restarting"),w.searchRetries=0,await ct({quick:!0}
2)):(await wr(),w.searchRetries+=1,setTimeout(()=>{Ir()},ln))):h("[SIndex] Ready")}async function ct(e={}){const{quick:t=!1,requested:r=!1,overrideRebuild:a=!1}=e;w.indexRefreshRequested=r,w.indexRebuilding=!0,h("[UILOAD] index.refresh()",{quick:t,requested:r,overrideRebuild:a});const n=await A("/sync/updateClient",{quick:t,overrideIndexRebuild:a});return(n==null?void 0:n.result)==!0&&await qr("QUICKBAR"),Ir(),(n==null?void 0:n.result)==!0}async function dn(){return await ct({quick:!0})}function fn(e){w.searchIndexFirstLoad=e}const lt={refresh:ct,refreshQuick:dn,checkStatus:wr,setFirstLoad:fn,state:w},pn={indexRefreshRequested:()=>w.indexRefreshRequested,indexRebuilding:()=>w.indexRebuilding,searchRetries:()=>w.searchRetries,searchIndexFirstLoad:()=>w.searchIndexFirstLoad};function mn(){return{state:w}}const Ks=Object.freeze(Object.defineProperty({__proto__:null,getters:pn,index:lt,indexState:w,useIndexStore:mn},Symbol.toStringTag,{value:"Module"}));function G(e){const t=e;if(!t)return null;if(t._id)return t._id;if(t.url)return t.url;let r=0;try{r=t.createdAt?new Date(t.createdAt).getTime():0}catch{r=0}const a=Number.isFinite(r)&&r>0?String(r):"",n=t.title?String(t.title).trim().replace(/\s+/g," "):"",s=`noid:${a}:${n}`.trim();return s.length>0?s.slice(0,200):null}function hn(e,t){const r=G(e);if(!r)return null;const a=typeof t=="string"?t.trim():"";return a?`subitem:${a}:${r}`:r}function ut(e,t,r){const a=G(e);if(!a)return!1;const n=hn(e,r);return n!=null&&t.has(n)||t.has(a)}function yn(e){if(typeof e=="string")return e;if(e==null)return"";try{return String(e)}catch{return""}}function dt(e){return yn(e).trim().replace(/\s+/g," ")}function gn(e,t){return e.localeCompare(t,void 0,{sensitivity:"base"})===0}function Sn(e){var t;return dt(((t=e==null?void 0:e.data)==null?void 0:t.title)||"")}function wn(e){var r,a,n;if((e==null?void 0:e.refType)!=="shared_col")return null;const t=((r=e==null?void 0:e.item)==null?void 0:r.userId)||((n=(a=e==null?void 0:e.item)==null?void 0:a.details)==null?void 0:n.userId);return t?Nr(t):null}function In(e){var r,a,n,s,i;const t=((r=e==null?void 0:e.item)==null?void 0:r.name)||((n=(a=e==null?void 0:e.item)==null?void 0:a.details)==null?void 0:n.name)||(e==null?void 0:e.name)||(e==null?void 0:e.title)||((s=e
2==null?void 0:e.data)==null?void 0:s.title)||((i=e==null?void 0:e.data)==null?void 0:i.feedURL)||(e==null?void 0:e.feedURL)||"";return dt(t)}function Pn(e){const t=wn(e);return dt((t==null?void 0:t.displayedName)||(t==null?void 0:t.username)||"")}function $e(e){const t=In(e),r=Sn(e);let a=t||r;t&&r&&!gn(t,r)&&(a=`${t} (${r})`);const n=Pn(e);return n&&a?`${a} - ${n}`:a||"Subscription"}const vn=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"});function Ms(e,t){return vn.compare($e(e),$e(t))}function Fs(e){var a;const t=e==null?void 0:e.refType,r=(e==null?void 0:e.type)||((a=e==null?void 0:e.data)==null?void 0:a.type);return t==="rediscover"?"From your library":t==="pub_col"||r==="pub_col"?"Published collection":t==="shared_col"?"Shared collection":t==="col"?"Collection":r==="rss"||r==="rss_feed"?"RSS feed":"Feed"}function Ls(e){var a;const t=e==null?void 0:e.refType,r=(e==null?void 0:e.type)||((a=e==null?void 0:e.data)==null?void 0:a.type);return t==="rediscover"?"recycle":t==="pub_col"||r==="pub_col"?"collection":t==="shared_col"?"people":t==="col"?"folder":"rss"}function Os(e,t){const r=e==null?void 0:e.refId;return r?(e==null?void 0:e.refType)==="item_feed"?`/item/${r}`:(e==null?void 0:e.refType)==="shared_col"?`/collection/${r}`:(e==null?void 0:e.refType)==="pub_col"&&t.supportsPublished?`/v/${r}`:null:null}function Hs(e){return[...e].sort((t,r)=>{const a=t.createdAt?new Date(t.createdAt).getTime():0;return(r.createdAt?new Date(r.createdAt).getTime():0)-a})}function xs(e,t){if(t<=0)return e;const r=new Date(Date.now()-t*24*60*60*1e3);return e.filter(a=>{const n=a.createdAt?new Date(a.createdAt):null;return n?n>r:!0})}function Bs(e,t,r){return!t||t.size===0?e:e.filter(a=>!ut(a,t,r))}function Pr(e){return e==null?void 0:e.consumeSettings}function qs(e){var t;return((t=Pr(e))==null?void 0:t.mode)||"whats_new"}function fe(e){try{return e?new Date(e).getTime():0}catch{return 0}}function Ns(e,t){const r=(t==null?void 0:t.refType)==="pub_col"||(t==null?void 0:t.type)==="pub_col",a=[...e];return r?(a.sort((n,s)=>{var I,T,P,y;const i=(T=(I=n==null?void 0:n.data)==null?void 0:I.parentRelation)==null?void 0:T.order,o=(y=(P=s==null?void 0:s.data)==null?void 0:P.parentRelation)==null?void 0:y.order,c=typeof i=="number"?i:Number.MAX_SAFE_INTEGER,f=typeof o=="number"?o:Number.MAX_SAFE_INTEGER;return c!==f?c-f:fe(n==null?void 0:n.createdAt)-fe(s==null?void 0:s.createdAt)}),a):(a.sort((n,s)=>fe(n==null?void 0:n.createdAt)-fe(s==null?void 0:s.createdAt)),a)}function Rn(e,t,r,a=1,n){if(!Array.isArray(e)||e.length===0)return[];let s=0;if(t){const o=e.findIndex(c=>G(c)===t);o>=0&&(s=o+1)}const i=[];for(let o=s;o<e.length&&i.length<a;o++){const c=e[o];ut(c,r,n)||i.push(c)}return i}function Ws(e=new Date){const t=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,"0"),a=String(e.getDate()).padStart(2,"0");return`${t}-${r}-${a}`}function Tn(e,t){const r=s=>{const i=/^(\d{4})-(\d{2})-(\d{2})$/.exec(s||"");return i?Date.UTC(Number(i[1]),Number(i[2])-1,Number(i[3])):null},a=r(e),n=r(t);return a==null||n==null?Number.MAX_SAFE_INTEGER:Math.round((n-a)/864e5)}function js(e){var r;const t=(r=Pr(e))==null?void 0:r.paceIntervalDays;return typeof t=="number"&&t>0?Math.floor(t):0}function $s(e){var a,n,s;const t=((a=e==null?void 0:e.data)==null?void 0:a.defaultConsumeSettings)||((s=(n=e==null?void 0:e.details)==null?void 0:n.data)==null?void 0:s.defaultConsumeSettings)||null;if(!t||typeof t!="object")return null;const r={};return(t.mode==="whats_new"||t.mode==="work_through")&&(r.mode=t.mode),(t.completionMode==="open"||t.completionMode==="explicit")&&(r.completionMode=t.completionMode),typeof t.paceIntervalDays=="number"&&t.paceIntervalDays>0&&(r.paceIntervalDays=Math.floor(t.paceIntervalDays)),Object.keys(r).length>0?r:null}function zs(e){return!!(e!=null&&e.unlockedThroughKey)&&e.unlockedThroughKey===e.completedThroughKey}function vr(e){var n;const t=(e==null?void 0:e.meta)||((n=e==null?void 0:e.data)==null?void 0:n.meta)||{},r=typeof t.depth=="number"&&t.depth>0?t.depth:0,a=typeof t.parentKey=="string"&&t.parentKey?t.parentKey:null;return{depth:r,parentKey:a}}function bn(e){return vr(e).depth>0}function Gs(e){return Array.isArray(e)?e.filter(t=>!bn(t)):[]}function Vs(e,t){var a,n,s;if(!Array.isArray(e)||!t)return[];const r=new Set;for(const i of[t==null?void 0:t.easyId,(a=t==null?void 0:t.data)==null?void 0:a.easyId,t==null?void 0:t._id,(n=t==null?void 0:t.data)==null?void 0:n._id,t==null?void 0:t.sourceItemId,(s=t==null?void 0:t.data)==null?void 0:s.sourceItemId,G(t)])typeof i=="string"&&i&&r.add(i);return r.size===0?[]:e.filter(i=>{const{depth:o,parentKey:c}=vr(i);return o>0&&!!c&&r.has(c)})}function Qs(e,t,r,a,n,s){const i={items:[],newProgress:null};if(!Array.isArray(e)||e.length===0)return i;const o=a>0?Math.floor(a):1,c=(t==null?void 0:t.lastUnlockDate)||null,f=(t==null?void 0:t.unlockedThroughKey)||null,I=(t==null?void 0:t.completedThroughKey)||null;if(!(!c||Tn(c,n)>=o)){if(!f||f===I)return i;const W=e.find(Kr=>G(Kr)===f);return!W||ut(W,r,s)?i:{items:[W],newProgress:null}}const P=Rn(e,I,r,1,s);if(P.length===0)return i;const y=G(P[0]);return{items:P,newProgress:y&&y!==f?{unlockedThroughKey:y,lastUnlockDate:n}:null}}const ft="sub:";function An(e){return`${ft}${e}`}function wt(e){return e.startsWith(ft)}const l=H({status:"idle",resolvedIdsKey:null,items:[],pendingItemIds:[],lastError:null});function N(){var t,r;const e=(r=(t=p.userPrefs)==null?void 0:t.data)==null?void 0:r.pinnedToHome;return Array.isArray(e)?[...e]:[]}function kn(){return E(N())}function V(e){p.userPrefs.data||(p.userPrefs.data={}),p.userPrefs.data.pinnedToHome=[...e]}function It(e,t){const r=l.pendingItemIds.filter(a=>a!==e);l.pendingItemIds=t?[...r,e]:r}
2function E(e=[]){return e.join("||")}function En(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"&&t.length>0):[]}function Q(e,t=[]){const r=new Map;return t.forEach(a=>{a!=null&&a._id&&!r.has(a._id)&&r.set(a._id,a)}),e.map(a=>r.get(a)).filter(a=>a!=null)}function F(e){return Q(e,l.items)}function ie(e,t,r,a=null){l.items=Q(e,t),l.status=r,l.resolvedIdsKey=E(e),l.lastError=a}function Cn(){l.status="loading",l.lastError=null}function Un(){l.status="idle",l.resolvedIdsKey=null,l.lastError=null}function Dn(e,t,r){l.items=Q(t,r),l.status="error",l.lastError=e}function _n(e){const t=E(e);return l.status==="ready"&&l.resolvedIdsKey===t}let k=null,Le=0;async function Pt(e,t){const r=await A("/item/listByIds",{ids:e},{forceRefresh:t});if(!(r!=null&&r.success))throw new Error((r==null?void 0:r.message)||"Failed to refresh pinned items");const a=Array.isArray(r.result)?r.result:[];return Ze(a)}function Kn(e,t){const r=new Set(t.map(a=>a==null?void 0:a._id).filter(a=>!!a));return e.filter(a=>!r.has(a))}function Mn(e){return{...e!=null&&e.item&&typeof e.item=="object"?e.item:{},_id:An(String(e._id)),name:$e(e),type:"subscription",typeIcon:"newspaper"}}async function Fn(e,t){if(!e.length)return[];try{const{ListAllPreparedSubscriptions:r}=await Wr(async()=>{const{ListAllPreparedSubscriptions:s}=await import("./subscription.storeD0D3zB45.js").then(i=>i.K);return{ListAllPreparedSubscriptions:s}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16])),a=await r(void 0,t),n=new Set(e.map(s=>s.slice(ft.length)));return(a||[]).filter(s=>(s==null?void 0:s._id)&&n.has(String(s._id))).map(Mn)}catch(r){return console.warn("[PINNED] Failed to resolve pinned subscriptions",r),[]}}function Rr(){l.status="idle",l.resolvedIdsKey=null,l.items=[],l.lastError=null}async function Ue(e,t=!1){const r=En(e),a=E(r);if(!t&&_n(r))return F(r);if(!t&&r.length>0&&(k==null?void 0:k.itemIdsKey)===a)return await k.promise;if(r.length===0)return ie([],[],"ready"),[];const n=[...l.items],s=++Le;Cn();const i=(async()=>{try{const o=r.filter(P=>!wt(P)),c=r.filter(wt);let[f,I]=await Promise.all([o.length?Pt(o,t):Promise.resolve([]),Fn(c,t)]);if(!t){const P=Kn(o,f);if(P.length>0)try{const y=await Pt(P,!0);f=[...f,...y]}catch(y){console.warn("[PINNED] Failed to retry missing pinned items",y)}}const T=Q(r,[...f,...I]);return Le===s&&ie(r,T,"ready"),T}catch(o){const c=Q(r,n),f=o instanceof Error?o.message:"Failed to refresh pinned items";return console.warn("[PINNED] Failed to refresh pinned items",o),Le===s&&Dn(f,r,c),c}})();k={itemIdsKey:a,requestId:s,promise:i};try{return await i}finally{(k==null?void 0:k.requestId)===s&&(k=null)}}async function pt(e=!1){return await Ue(N(),e)}async function Tr(e=!1){return await Ee(e),await pt(e)}async function br(e,t){if(!e){console.error("No item id");return}return await Ce(async()=>{const r=N();let a=r;if(t){if(r.includes(e))return;a=[...r,e]}else{if(!r.includes(e))return;a=r.filter(f=>f!==e)}const n=[...r],s={status:l.status,resolvedIdsKey:l.resolvedIdsKey,items:[...l.items],lastError:l.lastError},i=[...l.items],o=E(n),c=E(a);It(e,!0),V(a),t?(l.status="idle",l.resolvedIdsKey=null,l.lastError=null):(l.items=l.items.filter(f=>(f==null?void 0:f._id)!==e),s.status==="ready"&&s.resolvedIdsKey===o?ie(a,l.items,"ready"):(l.status="idle",l.resolvedIdsKey=null,l.lastError=null));try{if(await x("pinnedToHome",[...a]),!t&&l.resolvedIdsKey===c)return F(a);await Ue(a,!0)}catch(f){throw V(n),l.status=s.status,l.resolvedIdsKey=s.resolvedIdsKey,l.items=i,l.lastError=s.lastError,f}finally{It(e,!1)}})}async function Ar(e){await Ce(async()=>{const t=e.map(n=>n._id),r=[...N()],a={status:l.status,resolvedIdsKey:l.resolvedIdsKey,items:[...l.items],lastError:l.lastError};V(t),ie(t,Ze(e),"ready"),await x("pinnedToHome",t);try{return F(t)}catch(n){throw V(r),l.status=a.status,l.resolvedIdsKey=a.resolvedIdsKey,l.items=a.items,l.lastError=a.lastError,n}})}async function kr(e,t){return!e||!t||e===t?F(N()):await Ce(async()=>{const r=N(),a=r.indexOf(e),n=r.indexOf(t);if(a<0||n<0)return F(r);const s=[...r];s.splice(a,1);const i=s.indexOf(t);if(s.splice(i,0,e),E(s)===E(r))return F(r);const o={status:l.status,resolvedIdsKey:l.resolvedIdsKey,items:[...l.items],lastError:l.lastError},c=[...r],f=E(c);V(s),l.items=Q(s,o.items),o.status==="ready"&&o.resolvedIdsKey===f?ie(s,l.items,"ready"):Un();try{return await x("pinnedToHome",s),F(s)}catch(I){throw V(c),l.status=o.status,l.resolvedIdsKey=o.resolvedIdsKey,l.items=o.items,l.lastError=o.lastError,I}})}const Js=()=>{const e=g(()=>N()),t=g(()=>kn()),r=g(()=>F(e.value)),a=g(()=>l.status==="ready"&&l.resolvedIdsKey===t.value);return{state:l,status:g(()=>l.status),resolvedIdsKey:g(()=>l.resolvedIdsKey),lastError:g(()=>l.lastError),currentIds:e,currentIdsKey:t,items:g(()=>l.items),visibleItems:r,hasPinnedIds:g(()=>e.value.length>0),hasResolvedCurrentIds:a,needsHydration:g(()=>!a.value&&l.status!=="loading"),isLoadingCurrentIds:g(()=>l.status==="loading"),isResolvedEmpty:g(()=>a.value&&r.value.length===0),hasResolvedVisibleItems:g(()=>a.value&&r.value.length>0),hasPinnedIdsButNoVisibleItems:g(()=>e.value.length>0&&a.value&&r.value.length===0),pendingItemIds:g(()=>l.pendingItemIds),isCurrentItemPending:n=>l.pendingItemIds.includes(n),refresh:Tr,syncToCurrentPrefs:pt,refreshFromIds:Ue,clear:Rr,updatePinToHome:br,moveItemBefore:kr,replaceAllPinnedToHome:Ar}},ze={state:l,refresh:Tr,syncToCurrentPrefs:pt,refreshFromIds:Ue,clear:Rr,updatePinToHome:br,moveItemBefore:kr,replaceAllPinnedToHome:Ar},mt="QUICKBAR",Er=new Set,Ln=1e3*60*60*24,d=H({items:void 0,collectionId:void 0,loading:!0,presenceState:"unknown"});function On(e,t){if(Array.isArray(e))return e;const r=Array.isArray(e==null?void 0:e.items)?e.items:null;return!r||e!=null&&e.collectionId&&t&&e.collectionId!==t?null:r}async function Cr(e){if(!e)return d.collectionId=void 0,d.items=void 0,d.loading=!1,d.presenceState="absent",{state:"missing",items:[]};
2d.collectionId=e,d.presenceState="present";const t=await jr(mt);if(!(t!=null&&t.data))return d.items=void 0,d.loading=!0,{state:"missing",items:[]};const r=On(t.data,e);return r?(d.items=r,d.loading=!1,{state:t.timestamp<=Date.now()-Ln?"stale":"fresh",items:r}):(d.items=void 0,d.loading=!0,{state:"missing",items:[]})}function vt(e){return typeof e=="string"&&/invalid collection|collection not found/i.test(e)}function Ur(e){Er.add(e),d.items=[],d.loading=!1,d.presenceState="absent",h("[quickbar] collection no longer exists; hiding quickbar",e)}async function Rt(e){Ur(e);try{await Dt(mt,{collectionId:e,items:[]})}catch{}}async function he(e=d.collectionId){if(!e)return d.loading=!1,d.presenceState="absent",d.items;if(Er.has(e))return Ur(e),d.items;d.collectionId=e,d.presenceState="present";try{const t=await A("/collection/items",{collectionId:e});if(t&&t.success){const r=ea(t.result);return await Dt(mt,{collectionId:e,items:r}),d.items=r,r}if(vt(t==null?void 0:t.message))return await Rt(e),d.items;console.error(t.message||":( sorry, something isn't working properly.")}catch(t){if(vt(t==null?void 0:t.message))return await Rt(e),d.items;console.error("Error loading quickbar:",t)}finally{d.loading=!1}return d.items}let Oe=null;function Hn(){const e=$r(),t=()=>{var i,o;return d.collectionId||((o=(i=e==null?void 0:e.state)==null?void 0:i.currentUser)==null?void 0:o.quickBarCollectionId)},r=i=>{i&&(d.items=i)},a=async(i=!1)=>{const o=t();if(!o){d.loading=!1,d.presenceState="absent";return}if(d.collectionId!==o&&(d.collectionId=o),d.presenceState="present",h("[UILOAD] LOADING QUICKBAR",d.collectionId),!i){const c=await Cr(o);if(c.state==="fresh")return c.items}return await he(o)};Be(()=>{var i,o,c,f;return[(o=(i=e==null?void 0:e.state)==null?void 0:i.currentUser)==null?void 0:o._id,(f=(c=e==null?void 0:e.state)==null?void 0:c.currentUser)==null?void 0:f.quickBarCollectionId]},async([i,o])=>{if(o&&(o!==d.collectionId||!d.items&&!d.loading)){d.collectionId=o,d.loading=!0,d.presenceState="present",await a(!1);return}i&&!o&&(d.collectionId=void 0,d.items=void 0,d.loading=!1,d.presenceState="absent")},{immediate:!0}),Be(()=>{var i;return(i=e==null?void 0:e.state)==null?void 0:i.loadingUser},i=>{var o;!i&&!((o=e==null?void 0:e.state)!=null&&o.currentUser)&&(d.loading=!1,d.presenceState="absent")},{immediate:!0});const n=()=>{var o,c;const i=(o=e==null?void 0:e.state)==null?void 0:o.currentUser;if(i){if(d.collectionId=i.quickBarCollectionId,d.presenceState=i.quickBarCollectionId?"present":"absent",i.quickBarCollectionId){a();return}d.loading=!1;return}(c=e==null?void 0:e.state)!=null&&c.loadingUser||(d.loading=!1,d.presenceState="absent")},s=async()=>{const i=t();i&&(d.collectionId!==i&&(d.collectionId=i),d.loading=!0,await he(i))};return{quickBarState:d,quickBarItems:g(()=>d.items),quickBarCollectionId:g(()=>d.collectionId),quickBarItemsLoading:g(()=>d.loading),quickBarPresenceState:g(()=>d.presenceState),updateQuickBar:r,loadQuickbar:a,refreshQuickbarFromServer:he,initializeQuickbar:n,refreshQuickbar:s}}function Ys(){return Oe||(Oe=Hn()),Oe}const ue=_.appType==="ios"||_.appType==="android",xn=typeof performance<"u"?performance.now():0,j=[];let Bn=0,ve=!1,te=null,He=null;function qn(){return typeof performance>"u"?0:Math.max(0,performance.now()-xn)}function Nn(){var t;return typeof window>"u"?void 0:((t=window.location.hash)==null?void 0:t.replace(/^#/,"").split("?")[0])||window.location.pathname||void 0}async function Wn(e){if(_.appType==="ios"){const r=await Je.sendAppRequest({action:"PERFORMANCE_MILESTONES",value:{milestones:e}});if((r==null?void 0:r.response)!==!0)throw new Error("iOS startup performance bridge rejected milestones");return}const t=await Ye("/nativeMessage",{type:"PERFORMANCE_MILESTONES",data:{milestones:e}});if((t==null?void 0:t.success)!==!0)throw new Error("Android startup performance bridge rejected milestones")}function jn(){He||!ve||(He=setTimeout(()=>{He=null,De()},500))}async function De(){if(te)return await te;if(!(!ue||!ve||j.length===0)){te=(async()=>{for(;ve&&j.length>0;){const e=j.splice(0,j.length);try{await Wn(e)}catch{j.unshift(...e),jn();return}}})();try{await te}finally{te=null}}}function Xs(){ue&&(ve=!0,De())}function re(e,t={}){const r={name:e,jsNowMs:Math.round(qn()*10)/10,jsSequence:++Bn,wallUnixMs:Date.now(),route:t.route||Nn(),reason:t.reason};h("[PERF][Startup]",e,r),ue&&(j.push(r),`${JSON.stringify(r)}`,De())}async function Zs(){if(!ue)return[];if(await De(),_.appType==="ios"){const t=await Je.sendAppRequest({action:"GET_STARTUP_PERFORMANCE"});return Array.isArray(t==null?void 0:t.launches)?t.launches:[]}const e=await Ye("/nativeMessage",{type:"getStartupPerformance"});return Array.isArray(e==null?void 0:e.launches)?e.launches:[]}async function ei(){if(ue){if(_.appType==="ios"){await Je.sendAppRequest({action:"CLEAR_STARTUP_PERFORMANCE"});return}await Ye("/nativeMessage",{type:"clearStartupPerformance"})}}const K=new Set;function $n(e,t){const r=typeof performance<"u"?performance.now():0,a=()=>Math.round((typeof performance<"u"?performance.now():0)-r);if(!K.has("app")){K.add("app");try{C.open().then(()=>h("[DB-WARM] app db open",{source:t,ms:a()})).catch(n=>{K.delete("app"),h("[DB-WARM] app db open failed",{source:t,error:String(n)})})}catch(n){K.delete("app"),h("[DB-WARM] app db open threw",{source:t,error:String(n)})}}if(e&&!K.has(e)){K.add(e);try{na(e).open().then(()=>h("[DB-WARM] account db open",{source:t,ms:a()})).catch(n=>{K.delete(e),h("[DB-WARM] account db open failed",{source:t,error:String(n)})})}catch(n){K.delete(e),h("[DB-WARM] account db open threw",{source:t,error:String(n)})}}}const zn=60*60*1e3,xe=1e3,Dr=q.refresh.lastFullRefreshTimestamp,Tt=q.refresh.tabRefreshTs,Gn=["/signin","/register","/forgotPassword","/forgotPasswordRecovery","/waitingList","/joinAccount"],R=
2H({lastFullRefreshTimestamp:0,isRefreshing:!1});async function Vn(){if(R.lastFullRefreshTimestamp>0)return R.lastFullRefreshTimestamp;const e=await U.persistentGetRaw(Dr);return e&&typeof e=="number"?(R.lastFullRefreshTimestamp=e,e):0}async function Qn(){const e=Date.now();R.lastFullRefreshTimestamp=e,await U.persistentSetRaw(Dr,e)}async function Jn(){const e=await Vn();return Date.now()-e>zn}async function Yn(){try{const e=Date.now(),t=await U.sessionGetString(Tt),r=t?parseInt(t,10):0;await U.sessionSetString(Tt,e.toString());const a=r>0?e-r:null;return a!==null&&a<xe,r>0&&a!==null&&a<xe?(console.warn("[REFRESH] ð RAPID REFRESH DETECTED! Forcing full data refresh.",{timeSinceLastRefresh:a}),!0):!1}catch(e){return console.error("[REFRESH] Error detecting rapid refresh",e),!1}}function Xn(){if(typeof window>"u")return{path:null,forceSignout:!1,isGuestOnlyRoute:!1};const e=window.location.hash||"";let t=null,r="";if(e.startsWith("#/")){const s=e.slice(1),[i="/",o=""]=s.split("?");t=i||"/",r=o}else t=window.location.pathname||null,r=window.location.search.startsWith("?")?window.location.search.slice(1):window.location.search||"";const a=!!t&&Gn.some(s=>t===s||t.startsWith(`${s}/`)),n=new URLSearchParams(r);return{path:t,forceSignout:n.get("forceSignout")==="true",isGuestOnlyRoute:a}}async function ye(e={}){const{force:t=!0,indexMode:r="quick",blocking:a="none",clearImages:n=!1}=e;try{R.isRefreshing=!0,B.loadingMap.refresh=!0,h("[UILOAD] refresh.all()",{force:t,indexMode:r,blocking:a});const s=await v.ensureCurrentUser(t?"critical-decision":"startup-cache-first");if(s){if(t){if(n){try{await zr()}catch(f){console.error("Error clearing image cache",f)}je.refreshImageToken()}try{await v.clearUserCacheWithKey("QUICKBAR")}catch(f){console.error("Error clearing quickbar cache",f)}}if(s.disabled||s.deleted)return await v.logout(),null;h("[UILOAD] Awaiting critical loads");const i=[me.refresh(t),je.load(),v.loadEncStatus(t),v.refreshServerSettings(t)];await Promise.all(i);const o=[ht(),v.loadVersionSummary(t),v.ensureAccountInfo(t?"critical-decision":"passive"),t&&r==="full"?A("/encryption/listKeysWithStatus",{}).catch(()=>null):Promise.resolve(null),t&&r==="full"?A("/collection/showcase/repairFriendEncryption",{}).catch(()=>null):Promise.resolve(null),lt.refresh({quick:r==="quick",overrideRebuild:r==="rebuild"}),v.ensureStats(t?"critical-decision":"passive"),v.ensureAccountUsers(t?"critical-decision":"passive"),_r(t)],c=[ze.refresh(t)];a==="all"?await Promise.all([...o,...c]):a==="critical"&&await Promise.all(c)}return h("[UILOAD] Done Refreshing..."),await Qn(),R.isRefreshing=!1,B.loadingMap.refresh=!1,s}catch(s){return console.error("refresh.all error:",s),R.isRefreshing=!1,B.loadingMap.refresh=!1,null}}async function _r(e=!0){try{e&&await O("/localstore/reset")}catch(t){console.error("Error resetting clientBGCache",t)}}async function ht(){try{await ta.instance.clearAll(),h("[OPQ] OperationQueue cleared")}catch(e){console.error("Error clearing OperationQueue",e)}}function Zn(e=[],t=[]){return e.length!==t.length?!1:e.every((r,a)=>r===t[a])}async function es(e=!1){var a,n;h("[UILOAD] refresh.initFromCache()",{delayedRefresh:e});const t=Xn();if(await Yn())return h("[UILOAD] User triggered rapid refresh - forcing full refresh"),await ye({force:!0,indexMode:"quick"});try{R.isRefreshing=!0,B.loadingMap.refresh=!0;let s=null;if(t.isGuestOnlyRoute){if(s=await v.resolveGuestOnlyStartupCurrentUser({forceSignout:t.forceSignout}),h("[UILOAD] Guest-route startup resolved",{routePath:t.path,forceSignout:t.forceSignout,hasCurrentUser:!!s}),!s)return R.isRefreshing=!1,B.loadingMap.refresh=!1,s}else s=await v.ensureCurrentUser("startup-cache-first");if(re("auth_ready"),$n(s==null?void 0:s._id,"auth-ready"),s){const[,,i]=await Promise.all([v.refreshServerSettings(!1).then(y=>(re("server_settings_ready"),y)),je.load().then(y=>(re("client_settings_ready"),y)),me.hydrateFromCache()]);let o=i.state,c=i.prefs;(o==="missing"||o==="incomplete")&&(c=await me.refresh(!0),o="fresh"),re("prefs_ready",{reason:o});const f=((a=c==null?void 0:c.data)==null?void 0:a.pinnedToHome)||[];Object.prototype.hasOwnProperty.call((c==null?void 0:c.data)||{},"taskbar"),Object.prototype.hasOwnProperty.call((c==null?void 0:c.data)||{},"pinnedToHome"),Array.isArray((n=c==null?void 0:c.data)==null?void 0:n.taskbar)&&c.data.taskbar.length,Array.isArray(f)&&f.length;const[I]=await Promise.all([Cr(s.quickBarCollectionId),ze.syncToCurrentPrefs(!1)]);re("home_cache_ready",{reason:I.state}),ht();const T=o!=="fresh";!!s.quickBarCollectionId&&I.state!=="fresh"&&he(s.quickBarCollectionId),T&&(async()=>{var W;const y=await me.refresh(!0),Y=((W=y==null?void 0:y.data)==null?void 0:W.pinnedToHome)||[];Zn(f,Y)||await ze.syncToCurrentPrefs(!1)})().catch(y=>
2{console.error("Background pinned-home refresh failed",y)}),v.ensureAccountUsers("passive"),v.ensureStats("passive"),v.ensureAccountInfo("passive")}else await ye();return R.isRefreshing=!1,B.loadingMap.refresh=!1,s}catch(s){return console.error("refresh.initFromCache error:",s),R.isRefreshing=!1,B.loadingMap.refresh=!1,await ye()}}async function ts(e={}){const{quick:t=!0,rebuild:r=!1}=e;await lt.refresh({quick:t,overrideRebuild:r})}const rs={all:ye,initFromCache:es,syncIndex:ts,clearOperationQueue:ht,clientBgCacheReset:_r,state:R,isStale:Jn},ti=Object.freeze(Object.defineProperty({__proto__:null,refresh:rs,refreshState:R},Symbol.toStringTag,{value:"Module"}));export{ps as $,Cs as A,rs as B,Ea as C,m as D,ds as E,qa as F,xa as G,Va as H,J as I,Ts as J,nr as K,gr as L,As as M,bs as N,Is as O,tt as P,tr as Q,Ee as R,Wa as S,rr as T,x as U,La as V,ia as W,fs as X,Ot as Y,ls as Z,us as _,p as a,Lt as a0,Oa as a1,Ha as a2,ms as a3,gs as a4,Da as a5,Ps as a6,Es as a7,Qa as a8,va as a9,Ia as aA,mn as aB,js as aC,Qs as aD,Bs as aE,xs as aF,Hs as aG,zs as aH,Ds as aI,Sr as aJ,se as aK,he as aL,Ce as aM,Ue as aN,ks as aO,ws as aP,w as aQ,Ks as aR,Xs as aS,Xt as aT,$n as aU,ti as aV,Ms as aa,Ws as ab,ze as ac,wn as ad,zt as ae,Vt as af,hs as ag,ys as ah,re as ai,Ss as aj,Tr as ak,Ja as al,Na as am,oe as an,ya as ao,pn as ap,kr as aq,Vs as ar,Gs as as,An as at,Ls as au,Fs as av,Os as aw,Wt as ax,jt as ay,We as az,$t as b,qs as c,Pr as d,u as e,vs as f,hn as g,$s as h,lt as i,Zs as j,ei as k,Rs as l,je as m,ut as n,G as o,Rn as p,br as q,_s as r,Ns as s,Js as t,L as u,Sn as v,$e as w,Ys as x,me as y,Us as z};
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.