PageSourceSearch

https://yomureader.com/assets/chunks/theme.Dbg9vg0-.js

js yomureader.com collected 2026-10-02 01:50:59 UTC 209,204 bytes, 3 lines download raw bytes

1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/chunks/VPLocalSearchBox.jd5cmRMR.js","assets/chunks/framework.jQDE8ktZ.js"])))=>i.map(i=>d[i]);
2var wi=Object.defineProperty;var Si=(e,t,n)=>t in e?wi(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var I=(e,t,n)=>Si(e,typeof t!="symbol"?t+"":t,n);import{d as b,c as f,r as d,n as N,o as c,a as de,t as $,b as S,w as g,T as pn,e as v,_ as E,u as yr,i as ki,f as Ei,g as hn,h as L,j as m,k as u,l as fe,m as Jt,p as P,q as Q,s as lt,v as te,x as vn,y as yn,z as Li,A as _i,F as M,B as D,C as ge,D as ut,E as w,G as br,H as K,I as wr,J as dt,K as se,L as ft,M as Ti,N as Sr,O as qt,P as kr,Q as Er,R as mt,S as Ai,U as Pi,V as Ri,W as Lr,X as bn,Y as Ni,Z as $i,$ as Ii,a0 as Vi,a1 as Mi,a2 as Oi}from"./framework.jQDE8ktZ.js";const Ci=b({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(e){return(t,n)=>(c(),f("span",{class:N(["VPBadge",e.type])},[d(t.$slots,"default",{},()=>[de($(e.text),1)])],2))}}),ji={key:0,class:"VPBackdrop"},xi=b({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(e){return(t,n)=>(c(),S(pn,{name:"fade"},{default:g(()=>[e.show?(c(),f("div",ji)):v("",!0)]),_:1}))}}),Di=E(xi,[["__scopeId","data-v-c79a1216"]]),T=yr;function Hi(e,t){let n,a=!1;return()=>{n&&clearTimeout(n),a?n=setTimeout(e,t):(e(),(a=!0)&&setTimeout(()=>a=!1,t))}}function Xt(e){return e.startsWith("/")?e:`/${e}`}function wn(e){const{pathname:t,search:n,hash:a,protocol:r}=new URL(e,"http://a.com");if(ki(e)||e.startsWith("#")||!r.startsWith("http")||!Ei(t))return e;const{site:o}=T(),i=t.endsWith("/")||t.endsWith(".html")?e:e.replace(/(?:(^\.+)\/)?.*$/,`$1${t.replace(/(\.md)?$/,o.value.cleanUrls?"":".html")}${n}${a}`);return hn(i)}function xe({correspondingLink:e=!1}={}){const{site:t,localeIndex:n,page:a,theme:r,hash:o}=T(),i=L(()=>{var l,p;return{label:(l=t.value.locales[n.value])==null?void 0:l.label,link:((p=t.value.locales[n.value])==null?void 0:p.link)||(n.value==="root"?"/":`/${n.value}/`)}});return{localeLinks:L(()=>Object.entries(t.value.locales).flatMap(([l,p])=>i.value.label===p.label?[]:{text:p.label,link:Bi(p.link||(l==="root"?"/":`/${l}/`),r.value.i18nRouting!==!1&&e,a.value.relativePath.slice(i.value.link.length-1),!t.value.cleanUrls)+o.value})),currentLang:i}}function Bi(e,t,n,a){return t?e.replace(/\/$/,"")+Xt(n.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,a?".html":"")):e}const Gi={class:"NotFound"},zi={class:"code"},Fi={class:"title"},Ui={class:"quote"},Wi={class:"action"},Ki=["href","aria-label"],Yi=b({__name:"NotFound",setup(e){const{theme:t}=T(),{currentLang:n}=xe();return(a,r)=>{var o,i,s,l,p;return c(),f("div",Gi,[m("p",zi,$(((o=u(t).notFound)==null?void 0:o.code)??"404"),1),m("h1",Fi,$(((i=u(t).notFound)==null?void 0:i.title)??"PAGE NOT FOUND"),1),r[0]||(r[0]=m("div",{class:"divider"},null,-1)),m("blockquote",Ui,$(((s=u(t).notFound)==null?void 0:s.quote)??"But if you don't change your direction, and if you keep looking, you may end up where you are heading."),1),m("div",Wi,[m("a",{class:"link",href:u(hn)(u(n).link),"aria-label":((l=u(t).notFound)==null?void 0:l.linkLabel)??"go to home"},$(((p=u(t).notFound)==null?void 0:p.linkText)??"Take me home"),9,Ki)])])}}}),Ji=E(Yi,[["__scopeId","data-v-d6be1790"]]);function _r(e,t){if(Array.isArray(e))return Ge(e);if(e==null)return[];t=Xt(t);const n=Object.keys(e).sort((r,o)=>o.split("/").length-r.split("/").length).find(r=>t.startsWith(Xt(r))),a=n?e[n]:[];return Array.isArray(a)?Ge(a):Ge(a.items,a.base)}function qi(e){const t=[];let n=0;for(const a in e){const r=e[a];if(r.items){n=t.push(r);continue}t[n]||t.push({items:[]}),t[n].items.push(r)}return t}function Xi(e){const t=[];function n(a){for(const r of a)r.text&&r.link&&t.push({text:r.text,link:r.link,docFooterText:r.docFooterText}),r.items&&n(r.items)}return n(e),t}function Qt(e,t){return Array.isArray(t)?t.some(n=>Qt(e,n)):fe(e,t.link)?!0:t.items?Qt(e,t.items):!1}function Ge(e,t){return[...e].map(n=>{const a={...n},r=a.base||t;return r&&a.link&&(a.link=r+a.link),a.items&&(a.items=Ge(a.items,r)),a})}function ne(){const{frontmatter:e,page:t,theme:n}=T(),a=Jt("(min-width: 960px)"),r=P(!1),o=L(()=>{const V=n.value.sidebar,j=t.value.relativePath;return V?_r(V,j):[]}),i=P(o.value);Q(o,(V,j)=>{JSON.stringify(V)!==JSON.stringify(j)&&(i.value=o.value)});const s=L(()=>e.value.sidebar!==!1&&i.value.length>0&&e.value.layout!=="home"),l=L(()=>p?e.value.aside==null?n.value.aside==="left":e.value.aside==="left":!1),p=L(()=>e.value.layout==="home"?!1:e.value.aside!=null?!!e.value.aside:n.value.aside!==!1),k=L(()=>s.value&&a.value),h=L(()=>s.value?qi(i.value):[]);function y(){r.value=!0}function _(){r.value=!1}function R(){r.value?_():y()}return{isOpen:r,sidebar:i,sidebarGroups:h,hasSidebar:s,hasAside:p,leftAside:l,isSidebarEnabled:k,open:y,close:_,toggle:R}}function Qi(e,t){let n;lt(()=>{n=e.value?document.activeElement:void 0}),te(()=>{window.addEventListener("keyup",a)}),vn(()=>{window.removeEventListener("keyup",a)});function a(r){r.key==="Escape"&&e.value&&(t(),n==null||n.focus())}}function Zi(e){const{page:t,hash:n}=T(),a=P(!1),r=L(()=>e.value.collapsed!=null),o=L(()=>!!e.value.link),i=P(!1),s=()=>{i.value=fe(t.value.relativePath,e.value.link)};Q([t,e,n],s),te(s);const l=L(()=>i.value?!0:e.value.items?Qt(t.value.relativePath,e.value.items):!1),p=L(()=>!!(e.value.items&&e.value.items.length));lt(()=>{a.value=!!(r.value&&e.value.collapsed)}),yn(()=>{(i.value||l.value)&&(a.value=!1)});
2function k(){r.value&&(a.value=!a.value)}return{collapsed:a,collapsible:r,isLink:o,isActiveLink:i,hasActiveLink:l,hasChildren:p,toggle:k}}function es(){const{hasSidebar:e}=ne(),t=Jt("(min-width: 960px)"),n=Jt("(min-width: 1280px)");return{isAsideEnabled:L(()=>!n.value&&!t.value?!1:e.value?n.value:t.value)}}const ts=/\b(?:VPBadge|header-anchor|footnote-ref|ignore-header)\b/,Zt=[];function Tr(e){return typeof e.outline=="object"&&!Array.isArray(e.outline)&&e.outline.label||e.outlineTitle||"On this page"}function Sn(e){const t=[...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")].filter(n=>n.id&&n.hasChildNodes()).map(n=>{const a=Number(n.tagName[1]);return{element:n,title:ns(n),link:"#"+n.id,level:a}});return as(t,e)}function ns(e){let t="";for(const n of e.childNodes)if(n.nodeType===1){if(ts.test(n.className))continue;t+=n.textContent}else n.nodeType===3&&(t+=n.textContent);return t.trim()}function as(e,t){if(t===!1)return[];const n=(typeof t=="object"&&!Array.isArray(t)?t.level:t)||2,[a,r]=typeof n=="number"?[n,n]:n==="deep"?[2,6]:n;return is(e,a,r)}function rs(e,t){const{isAsideEnabled:n}=es(),a=Hi(o,100);let r=null;te(()=>{requestAnimationFrame(o),window.addEventListener("scroll",a)}),Li(()=>{i(location.hash)}),vn(()=>{window.removeEventListener("scroll",a)});function o(){if(!n.value)return;const s=window.scrollY,l=window.innerHeight,p=document.body.offsetHeight,k=Math.abs(s+l-p)<1,h=Zt.map(({element:_,link:R})=>({link:R,top:os(_)})).filter(({top:_})=>!Number.isNaN(_)).sort((_,R)=>_.top-R.top);if(!h.length){i(null);return}if(s<1){i(null);return}if(k){i(h[h.length-1].link);return}let y=null;for(const{link:_,top:R}of h){if(R>s+_i()+4)break;y=_}i(y)}function i(s){r&&r.classList.remove("active"),s==null?r=null:r=e.value.querySelector(`a[href="${decodeURIComponent(s)}"]`);const l=r;l?(l.classList.add("active"),t.value.style.top=l.offsetTop+39+"px",t.value.style.opacity="1"):(t.value.style.top="33px",t.value.style.opacity="0")}}function os(e){let t=0;for(;e!==document.body;){if(e===null)return NaN;t+=e.offsetTop,e=e.offsetParent}return t}function is(e,t,n){Zt.length=0;const a=[],r=[];return e.forEach(o=>{const i={...o,children:[]};let s=r[r.length-1];for(;s&&s.level>=i.level;)r.pop(),s=r[r.length-1];if(i.element.classList.contains("ignore-header")||s&&"shouldIgnore"in s){r.push({level:i.level,shouldIgnore:!0});return}i.level>n||i.level<t||(Zt.push({element:i.element,link:i.link}),s?s.children.push(i):a.push(i),r.push(i))}),a}const ss=["href","title"],cs=b({__name:"VPDocOutlineItem",props:{headers:{},root:{type:Boolean}},setup(e){function t({target:n}){const a=n.href.split("#")[1],r=document.getElementById(decodeURIComponent(a));r==null||r.focus({preventScroll:!0})}return(n,a)=>{const r=ge("VPDocOutlineItem",!0);return c(),f("ul",{class:N(["VPDocOutlineItem",e.root?"root":"nested"])},[(c(!0),f(M,null,D(e.headers,({children:o,link:i,title:s})=>(c(),f("li",null,[m("a",{class:"outline-link",href:i,onClick:t,title:s},$(s),9,ss),o!=null&&o.length?(c(),S(r,{key:0,headers:o},null,8,["headers"])):v("",!0)]))),256))],2)}}}),Ar=E(cs,[["__scopeId","data-v-b933a997"]]),ls={class:"content"},us={"aria-level":"2",class:"outline-title",id:"doc-outline-aria-label",role:"heading"},ds=b({__name:"VPDocAsideOutline",setup(e){const{frontmatter:t,theme:n}=T(),a=br([]);ut(()=>{a.value=Sn(t.value.outline??n.value.outline)});const r=P(),o=P();return rs(r,o),(i,s)=>(c(),f("nav",{"aria-labelledby":"doc-outline-aria-label",class:N(["VPDocAsideOutline",{"has-outline":a.value.length>0}]),ref_key:"container",ref:r},[m("div",ls,[m("div",{class:"outline-marker",ref_key:"marker",ref:o},null,512),m("div",us,$(u(Tr)(u(n))),1),w(Ar,{headers:a.value,root:!0},null,8,["headers"])])],2))}}),fs=E(ds,[["__scopeId","data-v-a5bbad30"]]),ms={class:"VPDocAsideCarbonAds"},gs=b({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(e){const t=()=>null;return(n,a)=>(c(),f("div",ms,[w(u(t),{"carbon-ads":e.carbonAds},null,8,["carbon-ads"])]))}}),ps={class:"VPDocAside"},hs=b({__name:"VPDocAside",setup(e){const{theme:t}=T();return(n,a)=>(c(),f("div",ps,[d(n.$slots,"aside-top",{},void 0,!0),d(n.$slots,"aside-outline-before",{},void 0,!0),w(fs),d(n.$slots,"aside-outline-after",{},void 0,!0),a[0]||(a[0]=m("div",{class:"spacer"},null,-1)),d(n.$slots,"aside-ads-before",{},void 0,!0),u(t).carbonAds?(c(),S(gs,{key:0,"carbon-ads":u(t).carbonAds},null,8,["carbon-ads"])):v("",!0),d(n.$slots,"aside-ads-after",{},void 0,!0),d(n.$slots,"aside-bottom",{},void 0,!0)]))}}),vs=E(hs,[["__scopeId","data-v-3f215769"]]);function ys(){const{theme:e,page:t}=T();return L(()=>{const{text:n="Edit this page",pattern:a=""}=e.value.editLink||{};let r;return typeof a=="function"?r=a(t.value):r=a.replace(/:path/g,t.value.filePath),{url:r,text:n}})}function bs(){const{page:e,theme:t,frontmatter:n}=T();return L(()=>{var p,k,h,y,_,R,V,j;const a=_r(t.value.sidebar,e.value.relativePath),r=Xi(a),o=ws(r,G=>G.link.replace(/[?#].*$/,"")),i=o.findIndex(G=>fe(e.value.relativePath,G.link)),s=((p=t.value.docFooter)==null?void 0:p.prev)===!1&&!n.value.prev||n.value.prev===!1,l=((k=t.value.docFooter)==null?void 0:k.next)===!1&&!n.value.next||n.value.next===!1;return{prev:s?void 0:{text:(typeof n.value.prev=="string"?n.value.prev:typeof n.value.prev=="object"?n.value.prev.text:void 0)??((h=o[i-1])==null?void 0:h.docFooterText)??((y=o[i-1])==null?void 0:y.text),link:(typeof n.value.prev=="object"?n.value.prev.link:void 0)??((_
2=o[i-1])==null?void 0:_.link)},next:l?void 0:{text:(typeof n.value.next=="string"?n.value.next:typeof n.value.next=="object"?n.value.next.text:void 0)??((R=o[i+1])==null?void 0:R.docFooterText)??((V=o[i+1])==null?void 0:V.text),link:(typeof n.value.next=="object"?n.value.next.link:void 0)??((j=o[i+1])==null?void 0:j.link)}}})}function ws(e,t){const n=new Set;return e.filter(a=>{const r=t(a);return n.has(r)?!1:n.add(r)})}const Y=b({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(e){const t=e,n=L(()=>t.tag??(t.href?"a":"span")),a=L(()=>t.href&&wr.test(t.href)||t.target==="_blank");return(r,o)=>(c(),S(K(n.value),{class:N(["VPLink",{link:e.href,"vp-external-link-icon":a.value,"no-icon":e.noIcon}]),href:e.href?u(wn)(e.href):void 0,target:e.target??(a.value?"_blank":void 0),rel:e.rel??(a.value?"noreferrer":void 0)},{default:g(()=>[d(r.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),Ss={class:"VPLastUpdated"},ks=["datetime"],Es=b({__name:"VPDocFooterLastUpdated",setup(e){const{theme:t,page:n,lang:a}=T(),r=L(()=>new Date(n.value.lastUpdated)),o=L(()=>r.value.toISOString()),i=P("");return te(()=>{lt(()=>{var s,l,p;i.value=new Intl.DateTimeFormat((l=(s=t.value.lastUpdated)==null?void 0:s.formatOptions)!=null&&l.forceLocale?a.value:void 0,((p=t.value.lastUpdated)==null?void 0:p.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(r.value)})}),(s,l)=>{var p;return c(),f("p",Ss,[de($(((p=u(t).lastUpdated)==null?void 0:p.text)||u(t).lastUpdatedText||"Last updated")+": ",1),m("time",{datetime:o.value},$(i.value),9,ks)])}}}),Ls=E(Es,[["__scopeId","data-v-e98dd255"]]),_s={key:0,class:"VPDocFooter"},Ts={key:0,class:"edit-info"},As={key:0,class:"edit-link"},Ps={key:1,class:"last-updated"},Rs={key:1,class:"prev-next","aria-labelledby":"doc-footer-aria-label"},Ns={class:"pager"},$s=["innerHTML"],Is=["innerHTML"],Vs={class:"pager"},Ms=["innerHTML"],Os=["innerHTML"],Cs=b({__name:"VPDocFooter",setup(e){const{theme:t,page:n,frontmatter:a}=T(),r=ys(),o=bs(),i=L(()=>t.value.editLink&&a.value.editLink!==!1),s=L(()=>n.value.lastUpdated),l=L(()=>i.value||s.value||o.value.prev||o.value.next);return(p,k)=>{var h,y,_,R;return l.value?(c(),f("footer",_s,[d(p.$slots,"doc-footer-before",{},void 0,!0),i.value||s.value?(c(),f("div",Ts,[i.value?(c(),f("div",As,[w(Y,{class:"edit-link-button",href:u(r).url,"no-icon":!0},{default:g(()=>[k[0]||(k[0]=m("span",{class:"vpi-square-pen edit-link-icon"},null,-1)),de(" "+$(u(r).text),1)]),_:1},8,["href"])])):v("",!0),s.value?(c(),f("div",Ps,[w(Ls)])):v("",!0)])):v("",!0),(h=u(o).prev)!=null&&h.link||(y=u(o).next)!=null&&y.link?(c(),f("nav",Rs,[k[1]||(k[1]=m("span",{class:"visually-hidden",id:"doc-footer-aria-label"},"Pager",-1)),m("div",Ns,[(_=u(o).prev)!=null&&_.link?(c(),S(Y,{key:0,class:"pager-link prev",href:u(o).prev.link},{default:g(()=>{var V;return[m("span",{class:"desc",innerHTML:((V=u(t).docFooter)==null?void 0:V.prev)||"Previous page"},null,8,$s),m("span",{class:"title",innerHTML:u(o).prev.text},null,8,Is)]}),_:1},8,["href"])):v("",!0)]),m("div",Vs,[(R=u(o).next)!=null&&R.link?(c(),S(Y,{key:0,class:"pager-link next",href:u(o).next.link},{default:g(()=>{var V;return[m("span",{class:"desc",innerHTML:((V=u(t).docFooter)==null?void 0:V.next)||"Next page"},null,8,Ms),m("span",{class:"title",innerHTML:u(o).next.text},null,8,Os)]}),_:1},8,["href"])):v("",!0)])])):v("",!0)])):v("",!0)}}}),js=E(Cs,[["__scopeId","data-v-e257564d"]]),xs={class:"container"},Ds={class:"aside-container"},Hs={class:"aside-content"},Bs={class:"content"},Gs={class:"content-container"},zs={class:"main"},Fs=b({__name:"VPDoc",setup(e){const{theme:t}=T(),n=dt(),{hasSidebar:a,hasAside:r,leftAside:o}=ne(),i=L(()=>n.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(s,l)=>{const p=ge("Content");return c(),f("div",{class:N(["VPDoc",{"has-sidebar":u(a),"has-aside":u(r)}])},[d(s.$slots,"doc-top",{},void 0,!0),m("div",xs,[u(r)?(c(),f("div",{key:0,class:N(["aside",{"left-aside":u(o)}])},[l[0]||(l[0]=m("div",{class:"aside-curtain"},null,-1)),m("div",Ds,[m("div",Hs,[w(vs,null,{"aside-top":g(()=>[d(s.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":g(()=>[d(s.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":g(()=>[d(s.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":g(()=>[d(s.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":g(()=>[d(s.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":g(()=>[d(s.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):v("",!0),m("div",Bs,[m("div",Gs,[d(s.$slots,"doc-before",{},void 0,!0),m("main",zs,[w(p,{class:N(["vp-doc",[i.value,u(t).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),w(js,null,{"doc-footer-before":g(()=>[d(s.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),d(s.$slots,"doc-after",{},void 0,!0)])])]),d(s.$slots,"doc-bottom",{},void 0,!0)],2)}}}),Us=E(Fs,[["__scopeId","data-v-39a288b8"]]),Ws=b({__name:"VPButton",props:{tag:{},size:{default:"medium"},theme:{default:"brand"},text:{},href:{},target:{},rel:{}},setup(e){const t=e,n=L(()=>t.href&&wr.test(t.href)),a=L(()=>t.tag||(t.href?"a":"button"));return(r,o)=>(c(),S(K(a.value),{class:N(["VPButton",[e.size,e.theme]]),href:e.href?u(wn)(e.href):void 0,target:t.target??(n.value?"_blank":void 0),rel:t.rel??(n.value?"noreferrer":void 0)},{default:g(()=>[de($(e.text),1)]),_:1},8,["class","href","target","rel"]))}}),Ks=E(Ws,[["__scopeId","data-v-fa7799d5"]]),Ys=["src","alt"],Js=b({inheritAttrs:!1,__name:"VPImage",props:{image:{},alt:{}},setup(e){return(t,n)=>{const a=ge("VPImage",!0);return e.image?(c(),f(M,{key:0},[typeof e.image=="string"||"src"in e.image?(c(),f("img",se({key:0,class:"VPImage"},typeof e.image=="string"?t.$attrs:{...e.image,...t.$attrs},{src:u(hn)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,Ys)):(c(),f(M,{key:1},[w(a,se({class:"dark",image:e.image.dark,alt:e.image.alt},t.$attrs),null,16,["image","alt"]),w(a,se({class:"light",image:e.image.light,alt:e.image.alt},t.$attrs),null,16,["image","alt"])],64))],64)):v("",!0)}}}),Je=E(Js,[["__scopeId","data-v-8426fc1a"]]),qs={class:"container"},Xs={class:"main"},Qs={class:"heading"},Zs=["innerHTML"],ec=["innerHTML"],tc=["innerHTML"],nc={key:0,class:"actions"},ac={key:0,class:"image"},rc={class:"image-container"},oc=b({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(e){const t=ft("hero-image-slot-exists");return(n,a)=>(c(),f("div",{class:N(["VPHero",{"has-image":e.image||u(t)}])}
2,[m("div",qs,[m("div",Xs,[d(n.$slots,"home-hero-info-before",{},void 0,!0),d(n.$slots,"home-hero-info",{},()=>[m("h1",Qs,[e.name?(c(),f("span",{key:0,innerHTML:e.name,class:"name clip"},null,8,Zs)):v("",!0),e.text?(c(),f("span",{key:1,innerHTML:e.text,class:"text"},null,8,ec)):v("",!0)]),e.tagline?(c(),f("p",{key:0,innerHTML:e.tagline,class:"tagline"},null,8,tc)):v("",!0)],!0),d(n.$slots,"home-hero-info-after",{},void 0,!0),e.actions?(c(),f("div",nc,[(c(!0),f(M,null,D(e.actions,r=>(c(),f("div",{key:r.link,class:"action"},[w(Ks,{tag:"a",size:"medium",theme:r.theme,text:r.text,href:r.link,target:r.target,rel:r.rel},null,8,["theme","text","href","target","rel"])]))),128))])):v("",!0),d(n.$slots,"home-hero-actions-after",{},void 0,!0)]),e.image||u(t)?(c(),f("div",ac,[m("div",rc,[a[0]||(a[0]=m("div",{class:"image-bg"},null,-1)),d(n.$slots,"home-hero-image",{},()=>[e.image?(c(),S(Je,{key:0,class:"image-src",image:e.image},null,8,["image"])):v("",!0)],!0)])])):v("",!0)])],2))}}),ic=E(oc,[["__scopeId","data-v-4f9c455b"]]),sc=b({__name:"VPHomeHero",setup(e){const{frontmatter:t}=T();return(n,a)=>u(t).hero?(c(),S(ic,{key:0,class:"VPHomeHero",name:u(t).hero.name,text:u(t).hero.text,tagline:u(t).hero.tagline,image:u(t).hero.image,actions:u(t).hero.actions},{"home-hero-info-before":g(()=>[d(n.$slots,"home-hero-info-before")]),"home-hero-info":g(()=>[d(n.$slots,"home-hero-info")]),"home-hero-info-after":g(()=>[d(n.$slots,"home-hero-info-after")]),"home-hero-actions-after":g(()=>[d(n.$slots,"home-hero-actions-after")]),"home-hero-image":g(()=>[d(n.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):v("",!0)}}),cc={class:"box"},lc={key:0,class:"icon"},uc=["innerHTML"],dc=["innerHTML"],fc=["innerHTML"],mc={key:4,class:"link-text"},gc={class:"link-text-value"},pc=b({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{},rel:{},target:{}},setup(e){return(t,n)=>(c(),S(Y,{class:"VPFeature",href:e.link,rel:e.rel,target:e.target,"no-icon":!0,tag:e.link?"a":"div"},{default:g(()=>[m("article",cc,[typeof e.icon=="object"&&e.icon.wrap?(c(),f("div",lc,[w(Je,{image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])])):typeof e.icon=="object"?(c(),S(Je,{key:1,image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])):e.icon?(c(),f("div",{key:2,class:"icon",innerHTML:e.icon},null,8,uc)):v("",!0),m("h2",{class:"title",innerHTML:e.title},null,8,dc),e.details?(c(),f("p",{key:3,class:"details",innerHTML:e.details},null,8,fc)):v("",!0),e.linkText?(c(),f("div",mc,[m("p",gc,[de($(e.linkText)+" ",1),n[0]||(n[0]=m("span",{class:"vpi-arrow-right link-text-icon"},null,-1))])])):v("",!0)])]),_:1},8,["href","rel","target","tag"]))}}),hc=E(pc,[["__scopeId","data-v-a3976bdc"]]),vc={key:0,class:"VPFeatures"},yc={class:"container"},bc={class:"items"},wc=b({__name:"VPFeatures",props:{features:{}},setup(e){const t=e,n=L(()=>{const a=t.features.length;if(a){if(a===2)return"grid-2";if(a===3)return"grid-3";if(a%3===0)return"grid-6";if(a>3)return"grid-4"}else return});return(a,r)=>e.features?(c(),f("div",vc,[m("div",yc,[m("div",bc,[(c(!0),f(M,null,D(e.features,o=>(c(),f("div",{key:o.title,class:N(["item",[n.value]])},[w(hc,{icon:o.icon,title:o.title,details:o.details,link:o.link,"link-text":o.linkText,rel:o.rel,target:o.target},null,8,["icon","title","details","link","link-text","rel","target"])],2))),128))])])])):v("",!0)}}),Sc=E(wc,[["__scopeId","data-v-a6181336"]]),kc=b({__name:"VPHomeFeatures",setup(e){const{frontmatter:t}=T();return(n,a)=>u(t).features?(c(),S(Sc,{key:0,class:"VPHomeFeatures",features:u(t).features},null,8,["features"])):v("",!0)}}),Ec=b({__name:"VPHomeContent",setup(e){const{width:t}=Ti({initialWidth:0,includeScrollbar:!1});return(n,a)=>(c(),f("div",{class:"vp-doc container",style:Sr(u(t)?{"--vp-offset":`calc(50% - ${u(t)/2}px)`}:{})},[d(n.$slots,"default",{},void 0,!0)],4))}}),Lc=E(Ec,[["__scopeId","data-v-8e2d4988"]]),_c=b({__name:"VPHome",setup(e){const{frontmatter:t,theme:n}=T();return(a,r)=>{const o=ge("Content");return c(),f("div",{class:N(["VPHome",{"external-link-icon-enabled":u(n).externalLinkIcon}])},[d(a.$slots,"home-hero-before",{},void 0,!0),w(sc,null,{"home-hero-info-before":g(()=>[d(a.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":g(()=>[d(a.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":g(()=>[d(a.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":g(()=>[d(a.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":g(()=>[d(a.$slots,"home-hero-image",{},void 0,!0)]),_:3}),d(a.$slots,"home-hero-after",{},void 0,!0),d(a.$slots,"home-features-before",{},void 0,!0),w(kc),d(a.$slots,"home-features-after",{},void 0,!0),u(t).markdownStyles!==!1?(c(),S(Lc,{key:0},{default:g(()=>[w(o)]),_:1})):(c(),S(o,{key:1}))],2)}}}),Tc=E(_c,[["__scopeId","data-v-8b561e3d"]]),Ac={},Pc={class:"VPPage"};function Rc(e,t){const n=ge("Content");return c(),f("div",Pc,[d(e.$slots,"page-top"),w(n),d(e.$slots,"page-bottom")])}const Nc=E(Ac,[["render",Rc]]),$c=b({__name:"VPContent",setup(e){const{page:t,frontmatter:n}=T(),{hasSidebar:a}=ne();return(r,o)=>(c(),f("div",{class:N(["VPContent",{"has-sidebar":u(a),"is-home":u(n).layout==="home"}]),id:"VPContent"},[u(t).isNotFound?d(r.$slots,"not-found",{key:0}
2,()=>[w(Ji)],!0):u(n).layout==="page"?(c(),S(Nc,{key:1},{"page-top":g(()=>[d(r.$slots,"page-top",{},void 0,!0)]),"page-bottom":g(()=>[d(r.$slots,"page-bottom",{},void 0,!0)]),_:3})):u(n).layout==="home"?(c(),S(Tc,{key:2},{"home-hero-before":g(()=>[d(r.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":g(()=>[d(r.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":g(()=>[d(r.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":g(()=>[d(r.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":g(()=>[d(r.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":g(()=>[d(r.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":g(()=>[d(r.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":g(()=>[d(r.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":g(()=>[d(r.$slots,"home-features-after",{},void 0,!0)]),_:3})):u(n).layout&&u(n).layout!=="doc"?(c(),S(K(u(n).layout),{key:3})):(c(),S(Us,{key:4},{"doc-top":g(()=>[d(r.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":g(()=>[d(r.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":g(()=>[d(r.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":g(()=>[d(r.$slots,"doc-before",{},void 0,!0)]),"doc-after":g(()=>[d(r.$slots,"doc-after",{},void 0,!0)]),"aside-top":g(()=>[d(r.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":g(()=>[d(r.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":g(()=>[d(r.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":g(()=>[d(r.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":g(()=>[d(r.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":g(()=>[d(r.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}}),Ic=E($c,[["__scopeId","data-v-1428d186"]]),Vc={class:"container"},Mc=["innerHTML"],Oc=["innerHTML"],Cc=b({__name:"VPFooter",setup(e){const{theme:t,frontmatter:n}=T(),{hasSidebar:a}=ne();return(r,o)=>u(t).footer&&u(n).footer!==!1?(c(),f("footer",{key:0,class:N(["VPFooter",{"has-sidebar":u(a)}])},[m("div",Vc,[u(t).footer.message?(c(),f("p",{key:0,class:"message",innerHTML:u(t).footer.message},null,8,Mc)):v("",!0),u(t).footer.copyright?(c(),f("p",{key:1,class:"copyright",innerHTML:u(t).footer.copyright},null,8,Oc)):v("",!0)])],2)):v("",!0)}}),jc=E(Cc,[["__scopeId","data-v-e315a0ad"]]);function xc(){const{theme:e,frontmatter:t}=T(),n=br([]),a=L(()=>n.value.length>0);return ut(()=>{n.value=Sn(t.value.outline??e.value.outline)}),{headers:n,hasLocalNav:a}}const Dc={class:"menu-text"},Hc={class:"header"},Bc={class:"outline"},Gc=b({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(e){const t=e,{theme:n}=T(),a=P(!1),r=P(0),o=P(),i=P();function s(h){var y;(y=o.value)!=null&&y.contains(h.target)||(a.value=!1)}Q(a,h=>{if(h){document.addEventListener("click",s);return}document.removeEventListener("click",s)}),qt("Escape",()=>{a.value=!1}),ut(()=>{a.value=!1});function l(){a.value=!a.value,r.value=window.innerHeight+Math.min(window.scrollY-t.navHeight,0)}function p(h){h.target.classList.contains("outline-link")&&(i.value&&(i.value.style.transition="none"),kr(()=>{a.value=!1}))}function k(){a.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return(h,y)=>(c(),f("div",{class:"VPLocalNavOutlineDropdown",style:Sr({"--vp-vh":r.value+"px"}),ref_key:"main",ref:o},[e.headers.length>0?(c(),f("button",{key:0,onClick:l,class:N({open:a.value})},[m("span",Dc,$(u(Tr)(u(n))),1),y[0]||(y[0]=m("span",{class:"vpi-chevron-right icon"},null,-1))],2)):(c(),f("button",{key:1,onClick:k},$(u(n).returnToTopLabel||"Return to top"),1)),w(pn,{name:"flyout"},{default:g(()=>[a.value?(c(),f("div",{key:0,ref_key:"items",ref:i,class:"items",onClick:p},[m("div",Hc,[m("a",{class:"top-link",href:"#",onClick:k},$(u(n).returnToTopLabel||"Return to top"),1)]),m("div",Bc,[w(Ar,{headers:e.headers},null,8,["headers"])])],512)):v("",!0)]),_:1})],4))}}),zc=E(Gc,[["__scopeId","data-v-8a42e2b4"]]),Fc={class:"container"},Uc=["aria-expanded"],Wc={class:"menu-text"},Kc=b({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(e){const{theme:t,frontmatter:n}=T(),{hasSidebar:a}=ne(),{headers:r}=xc(),{y:o}=Er(),i=P(0);te(()=>{i.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),ut(()=>{r.value=Sn(n.value.outline??t.value.outline)});const s=L(()=>r.value.length===0),l=L(()=>s.value&&!a.value),p=L(()=>({VPLocalNav:!0,"has-sidebar":a.value,empty:s.value,fixed:l.value}));return(k,h)=>u(n).layout!=="home"&&(!l.value||u(o)>=i.value)?(c(),f("div",{key:0,class:N(p.value)},[m("div",Fc,[u(a)?(c(),f("button",{key:0,class:"menu","aria-expanded":e.open,"aria-controls":"VPSidebarNav",onClick:h[0]||(h[0]=y=>k.$emit("open-menu"))},[h[1]||(h[1]=m("span",{class:"vpi-align-left menu-icon"},null,-1)),m("span",Wc,$(u(t).sidebarMenuLabel||"Menu"),1)],8,Uc)):v("",!0),w(zc,{headers:u(r),navHe
2ight:i.value},null,8,["headers","navHeight"])])],2)):v("",!0)}}),Yc=E(Kc,[["__scopeId","data-v-a6f0e41e"]]);function Jc(){const e=P(!1);function t(){e.value=!0,window.addEventListener("resize",r)}function n(){e.value=!1,window.removeEventListener("resize",r)}function a(){e.value?n():t()}function r(){window.outerWidth>=768&&n()}const o=dt();return Q(()=>o.path,n),{isScreenOpen:e,openScreen:t,closeScreen:n,toggleScreen:a}}const qc={},Xc={class:"VPSwitch",type:"button",role:"switch"},Qc={class:"check"},Zc={key:0,class:"icon"};function el(e,t){return c(),f("button",Xc,[m("span",Qc,[e.$slots.default?(c(),f("span",Zc,[d(e.$slots,"default",{},void 0,!0)])):v("",!0)])])}const tl=E(qc,[["render",el],["__scopeId","data-v-1d5665e3"]]),nl=b({__name:"VPSwitchAppearance",setup(e){const{isDark:t,theme:n}=T(),a=ft("toggle-appearance",()=>{t.value=!t.value}),r=P("");return yn(()=>{r.value=t.value?n.value.lightModeSwitchTitle||"Switch to light theme":n.value.darkModeSwitchTitle||"Switch to dark theme"}),(o,i)=>(c(),S(tl,{title:r.value,class:"VPSwitchAppearance","aria-checked":u(t),onClick:u(a)},{default:g(()=>[...i[0]||(i[0]=[m("span",{class:"vpi-sun sun"},null,-1),m("span",{class:"vpi-moon moon"},null,-1)])]),_:1},8,["title","aria-checked","onClick"]))}}),kn=E(nl,[["__scopeId","data-v-5337faa4"]]),al={key:0,class:"VPNavBarAppearance"},rl=b({__name:"VPNavBarAppearance",setup(e){const{site:t}=T();return(n,a)=>u(t).appearance&&u(t).appearance!=="force-dark"&&u(t).appearance!=="force-auto"?(c(),f("div",al,[w(kn)])):v("",!0)}}),ol=E(rl,[["__scopeId","data-v-6c893767"]]),En=P();let Pr=!1,Pt=0;function il(e){const t=P(!1);if(mt){!Pr&&sl(),Pt++;const n=Q(En,a=>{var r,o,i;a===e.el.value||(r=e.el.value)!=null&&r.contains(a)?(t.value=!0,(o=e.onFocus)==null||o.call(e)):(t.value=!1,(i=e.onBlur)==null||i.call(e))});vn(()=>{n(),Pt--,Pt||cl()})}return Ai(t)}function sl(){document.addEventListener("focusin",Rr),Pr=!0,En.value=document.activeElement}function cl(){document.removeEventListener("focusin",Rr)}function Rr(){En.value=document.activeElement}const ll={class:"VPMenuLink"},ul=["innerHTML"],dl=b({__name:"VPMenuLink",props:{item:{}},setup(e){const{page:t}=T();return(n,a)=>(c(),f("div",ll,[w(Y,{class:N({active:u(fe)(u(t).relativePath,e.item.activeMatch||e.item.link,!!e.item.activeMatch)}),href:e.item.link,target:e.item.target,rel:e.item.rel,"no-icon":e.item.noIcon},{default:g(()=>[m("span",{innerHTML:e.item.text},null,8,ul)]),_:1},8,["class","href","target","rel","no-icon"])]))}}),gt=E(dl,[["__scopeId","data-v-35975db6"]]),fl={class:"VPMenuGroup"},ml={key:0,class:"title"},gl=b({__name:"VPMenuGroup",props:{text:{},items:{}},setup(e){return(t,n)=>(c(),f("div",fl,[e.text?(c(),f("p",ml,$(e.text),1)):v("",!0),(c(!0),f(M,null,D(e.items,a=>(c(),f(M,null,["link"in a?(c(),S(gt,{key:0,item:a},null,8,["item"])):v("",!0)],64))),256))]))}}),pl=E(gl,[["__scopeId","data-v-69e747b5"]]),hl={class:"VPMenu"},vl={key:0,class:"items"},yl=b({__name:"VPMenu",props:{items:{}},setup(e){return(t,n)=>(c(),f("div",hl,[e.items?(c(),f("div",vl,[(c(!0),f(M,null,D(e.items,a=>(c(),f(M,{key:JSON.stringify(a)},["link"in a?(c(),S(gt,{key:0,item:a},null,8,["item"])):"component"in a?(c(),S(K(a.component),se({key:1,ref_for:!0},a.props),null,16)):(c(),S(pl,{key:2,text:a.text,items:a.items},null,8,["text","items"]))],64))),128))])):v("",!0),d(t.$slots,"default",{},void 0,!0)]))}}),bl=E(yl,[["__scopeId","data-v-b98bc113"]]),wl=["aria-expanded","aria-label"],Sl={key:0,class:"text"},kl=["innerHTML"],El={key:1,class:"vpi-more-horizontal icon"},Ll={class:"menu"},_l=b({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(e){const t=P(!1),n=P();il({el:n,onBlur:a});function a(){t.value=!1}return(r,o)=>(c(),f("div",{class:"VPFlyout",ref_key:"el",ref:n,onMouseenter:o[1]||(o[1]=i=>t.value=!0),onMouseleave:o[2]||(o[2]=i=>t.value=!1)},[m("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":t.value,"aria-label":e.label,onClick:o[0]||(o[0]=i=>t.value=!t.value)},[e.button||e.icon?(c(),f("span",Sl,[e.icon?(c(),f("span",{key:0,class:N([e.icon,"option-icon"])},null,2)):v("",!0),e.button?(c(),f("span",{key:1,innerHTML:e.button},null,8,kl)):v("",!0),o[3]||(o[3]=m("span",{class:"vpi-chevron-down text-icon"},null,-1))])):(c(),f("span",El))],8,wl),m("div",Ll,[w(bl,{items:e.items},{default:g(()=>[d(r.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}}),Ln=E(_l,[["__scopeId","data-v-cf11d7a2"]]),Tl=["href","aria-label","innerHTML"],Al=b({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(e){const t=e,n=P();te(async()=>{var o;await kr();const r=(o=n.value)==null?void 0:o.children[0];r instanceof HTMLElement&&r.className.startsWith("vpi-social-")&&(getComputedStyle(r).maskImage||getComputedStyle(r).webkitMaskImage)==="none"&&r.style.setProperty("--icon",`url('https://api.iconify.design/simple-icons/${t.icon}.svg')`)});const a=L(()=>typeof t.icon=="object"?t.icon.svg:`<span class="vpi-social-${t.icon}"></span>`);return(r,o)=>(c(),f("a",{ref_key:"el",ref:n,class:"VPSocialLink no-icon",href:e.link,"aria-label":e.ariaLabel??(typeof e.icon=="str
2ing"?e.icon:""),target:"_blank",rel:"noopener",innerHTML:a.value},null,8,Tl))}}),Pl=E(Al,[["__scopeId","data-v-bd121fe5"]]),Rl={class:"VPSocialLinks"},Nl=b({__name:"VPSocialLinks",props:{links:{}},setup(e){return(t,n)=>(c(),f("div",Rl,[(c(!0),f(M,null,D(e.links,({link:a,icon:r,ariaLabel:o})=>(c(),S(Pl,{key:a,icon:r,link:a,ariaLabel:o},null,8,["icon","link","ariaLabel"]))),128))]))}}),_n=E(Nl,[["__scopeId","data-v-7bc22406"]]),$l={key:0,class:"group translations"},Il={class:"trans-title"},Vl={key:1,class:"group"},Ml={class:"item appearance"},Ol={class:"label"},Cl={class:"appearance-action"},jl={key:2,class:"group"},xl={class:"item social-links"},Dl=b({__name:"VPNavBarExtra",setup(e){const{site:t,theme:n}=T(),{localeLinks:a,currentLang:r}=xe({correspondingLink:!0}),o=L(()=>a.value.length&&r.value.label||t.value.appearance||n.value.socialLinks);return(i,s)=>o.value?(c(),S(Ln,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:g(()=>[u(a).length&&u(r).label?(c(),f("div",$l,[m("p",Il,$(u(r).label),1),(c(!0),f(M,null,D(u(a),l=>(c(),S(gt,{key:l.link,item:l},null,8,["item"]))),128))])):v("",!0),u(t).appearance&&u(t).appearance!=="force-dark"&&u(t).appearance!=="force-auto"?(c(),f("div",Vl,[m("div",Ml,[m("p",Ol,$(u(n).darkModeSwitchLabel||"Appearance"),1),m("div",Cl,[w(kn)])])])):v("",!0),u(n).socialLinks?(c(),f("div",jl,[m("div",xl,[w(_n,{class:"social-links-list",links:u(n).socialLinks},null,8,["links"])])])):v("",!0)]),_:1})):v("",!0)}}),Hl=E(Dl,[["__scopeId","data-v-bb2aa2f0"]]),Bl=["aria-expanded"],Gl=b({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(e){return(t,n)=>(c(),f("button",{type:"button",class:N(["VPNavBarHamburger",{active:e.active}]),"aria-label":"mobile navigation","aria-expanded":e.active,"aria-controls":"VPNavScreen",onClick:n[0]||(n[0]=a=>t.$emit("click"))},[...n[1]||(n[1]=[m("span",{class:"container"},[m("span",{class:"top"}),m("span",{class:"middle"}),m("span",{class:"bottom"})],-1)])],10,Bl))}}),zl=E(Gl,[["__scopeId","data-v-e5dd9c1c"]]),Fl=["innerHTML"],Ul=b({__name:"VPNavBarMenuLink",props:{item:{}},setup(e){const{page:t}=T();return(n,a)=>(c(),S(Y,{class:N({VPNavBarMenuLink:!0,active:u(fe)(u(t).relativePath,e.item.activeMatch||e.item.link,!!e.item.activeMatch)}),href:e.item.link,target:e.item.target,rel:e.item.rel,"no-icon":e.item.noIcon,tabindex:"0"},{default:g(()=>[m("span",{innerHTML:e.item.text},null,8,Fl)]),_:1},8,["class","href","target","rel","no-icon"]))}}),Wl=E(Ul,[["__scopeId","data-v-e56f3d57"]]),Kl=b({__name:"VPNavBarMenuGroup",props:{item:{}},setup(e){const t=e,{page:n}=T(),a=o=>"component"in o?!1:"link"in o?fe(n.value.relativePath,o.link,!!t.item.activeMatch):o.items.some(a),r=L(()=>a(t.item));return(o,i)=>(c(),S(Ln,{class:N({VPNavBarMenuGroup:!0,active:u(fe)(u(n).relativePath,e.item.activeMatch,!!e.item.activeMatch)||r.value}),button:e.item.text,items:e.item.items},null,8,["class","button","items"]))}}),Yl={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},Jl=b({__name:"VPNavBarMenu",setup(e){const{theme:t}=T();return(n,a)=>u(t).nav?(c(),f("nav",Yl,[a[0]||(a[0]=m("span",{id:"main-nav-aria-label",class:"visually-hidden"}," Main Navigation ",-1)),(c(!0),f(M,null,D(u(t).nav,r=>(c(),f(M,{key:JSON.stringify(r)},["link"in r?(c(),S(Wl,{key:0,item:r},null,8,["item"])):"component"in r?(c(),S(K(r.component),se({key:1,ref_for:!0},r.props),null,16)):(c(),S(Kl,{key:2,item:r},null,8,["item"]))],64))),128))])):v("",!0)}}),ql=E(Jl,[["__scopeId","data-v-dc692963"]]);function Xl(e){const{localeIndex:t,theme:n}=T();function a(r){var R,V,j;const o=r.split("."),i=(R=n.value.search)==null?void 0:R.options,s=i&&typeof i=="object",l=s&&((j=(V=i.locales)==null?void 0:V[t.value])==null?void 0:j.translations)||null,p=s&&i.translations||null;let k=l,h=p,y=e;const _=o.pop();for(const G of o){let re=null;const he=y==null?void 0:y[G];he&&(re=y=he);const Tt=h==null?void 0:h[G];Tt&&(re=h=Tt);const At=k==null?void 0:k[G];At&&(re=k=At),he||(y=re),Tt||(h=re),At||(k=re)}return(k==null?void 0:k[_])??(h==null?void 0:h[_])??(y==null?void 0:y[_])??""}return a}const Ql=["aria-label"],Zl={class:"DocSearch-Button-Container"},eu={class:"DocSearch-Button-Placeholder"},aa=b({__name:"VPNavBarSearchButton",setup(e){const n=Xl({button:{buttonText:"Search",buttonAriaLabel:"Search"}});return(a,r)=>(c(),f("button",{type:"button",class:"DocSearch DocSearch-Button","aria-label":u(n)("button.buttonAriaLabel")},[m("span",Zl,[r[0]||(r[0]=m("span",{class:"vp-icon DocSearch-Search-Icon"},null,-1)),m("span",eu,$(u(n)("button.buttonText")),1)]),r[1]||(r[1]=m("span",{class:"DocSearch-Button-Keys"},[m("kbd",{class:"DocSearch-Button-Key"}),m("kbd",{class:"DocSearch-Button-Key"},"K")],-1))],8,Ql))}}),tu={class:"VPNavBarSearch"},nu={id:"local-search"},au={key:1,id:"docsearch"},ru=b({__name:"VPNavBarSearch",setup(e){const t=Pi(()=>Ri(()=>import("./VPLocalSearchBox.jd5cmRMR.js"),__vite__mapDeps([0,1]))),n=()=>null,{theme:a}=T(),r=P(!1),o=P(!1);te(()=>{});function i(){r.value||(r.value=!0,setTimeout(s,16))}function s(){const h=new Event("keydown");h.key="k",h.metaKey=!0,window.dispatchEvent(h),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||s()},16)}function l(h){const y=h.target,_=y.tagName;return y.isContentEditable||_==="INPUT"||_==="SELECT"||_==="TEXTAREA"}const p=P(!1);qt("k",h=>{(h.ctrlKey||h.metaKey)&&(h.preventDefault(),p.value=!0)}),qt("/",h=>{l(h)||(h.preventDefault(),p.value=!0)});const k="local";return(h,y)=>{var _;return c(),f("div",tu,[u(k)==="local"?(c(),f(M,{key:0},[p.value?(c(),S(u(t),{key:0,onClose:y[0]||(y[0]=R=>p.value=!1)})):v("",!0),m("div",nu,[w(aa,{onClick:y[1]||(y[1]=R=>p.value=!0)})])],64)):u(k)==="algolia"?(c(),f(M,{key:1},[r.value?(c(),S(u(n),{key:0,algolia:((_=u(a).search)==null?void 0:_.options)??u(a).algolia,onVnodeBeforeMount:y[2]||(y[2]=R=>o.value=!0)},null,8,["algolia"])):v("",!0),o.value?v("",!0):(c(),f("div",au,[w(aa,{onClick:i})]))],64)):v("",!0)])}}}),ou=b({__name:"VPNavBarSocialLinks",setup(e){const{theme:t}=T();return(n,a)=>u(t).socialLinks?(c(),S(_n,{key:0,class:"VPNavBarSocialLinks",links:u(t).socialLinks},null,8,["links"])):v("",!0)}}),iu=E(ou,[["__scopeId","data-v-0394ad82"]]),su=["href","rel","target"],cu=["innerHTML"],lu={key:2},uu=b({__name:"VPNavBarTitle",setup(e){const{site:t,theme:n}=T(),{hasSidebar:a}=ne(),{currentLang:r}=xe(),o=L(()=>{var l;
2return typeof n.value.logoLink=="string"?n.value.logoLink:(l=n.value.logoLink)==null?void 0:l.link}),i=L(()=>{var l;return typeof n.value.logoLink=="string"||(l=n.value.logoLink)==null?void 0:l.rel}),s=L(()=>{var l;return typeof n.value.logoLink=="string"||(l=n.value.logoLink)==null?void 0:l.target});return(l,p)=>(c(),f("div",{class:N(["VPNavBarTitle",{"has-sidebar":u(a)}])},[m("a",{class:"title",href:o.value??u(wn)(u(r).link),rel:i.value,target:s.value},[d(l.$slots,"nav-bar-title-before",{},void 0,!0),u(n).logo?(c(),S(Je,{key:0,class:"logo",image:u(n).logo},null,8,["image"])):v("",!0),u(n).siteTitle?(c(),f("span",{key:1,innerHTML:u(n).siteTitle},null,8,cu)):u(n).siteTitle===void 0?(c(),f("span",lu,$(u(t).title),1)):v("",!0),d(l.$slots,"nav-bar-title-after",{},void 0,!0)],8,su)],2))}}),du=E(uu,[["__scopeId","data-v-1168a8e4"]]),fu={class:"items"},mu={class:"title"},gu=b({__name:"VPNavBarTranslations",setup(e){const{theme:t}=T(),{localeLinks:n,currentLang:a}=xe({correspondingLink:!0});return(r,o)=>u(n).length&&u(a).label?(c(),S(Ln,{key:0,class:"VPNavBarTranslations",icon:"vpi-languages",label:u(t).langMenuLabel||"Change language"},{default:g(()=>[m("div",fu,[m("p",mu,$(u(a).label),1),(c(!0),f(M,null,D(u(n),i=>(c(),S(gt,{key:i.link,item:i},null,8,["item"]))),128))])]),_:1},8,["label"])):v("",!0)}}),pu=E(gu,[["__scopeId","data-v-88af2de4"]]),hu={class:"wrapper"},vu={class:"container"},yu={class:"title"},bu={class:"content"},wu={class:"content-body"},Su=b({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(e){const t=e,{y:n}=Er(),{hasSidebar:a}=ne(),{frontmatter:r}=T(),o=P({});return yn(()=>{o.value={"has-sidebar":a.value,home:r.value.layout==="home",top:n.value===0,"screen-open":t.isScreenOpen}}),(i,s)=>(c(),f("div",{class:N(["VPNavBar",o.value])},[m("div",hu,[m("div",vu,[m("div",yu,[w(du,null,{"nav-bar-title-before":g(()=>[d(i.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":g(()=>[d(i.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),m("div",bu,[m("div",wu,[d(i.$slots,"nav-bar-content-before",{},void 0,!0),w(ru,{class:"search"}),w(ql,{class:"menu"}),w(pu,{class:"translations"}),w(ol,{class:"appearance"}),w(iu,{class:"social-links"}),w(Hl,{class:"extra"}),d(i.$slots,"nav-bar-content-after",{},void 0,!0),w(zl,{class:"hamburger",active:e.isScreenOpen,onClick:s[0]||(s[0]=l=>i.$emit("toggle-screen"))},null,8,["active"])])])])]),s[1]||(s[1]=m("div",{class:"divider"},[m("div",{class:"divider-line"})],-1))],2))}}),ku=E(Su,[["__scopeId","data-v-6aa21345"]]),Eu={key:0,class:"VPNavScreenAppearance"},Lu={class:"text"},_u=b({__name:"VPNavScreenAppearance",setup(e){const{site:t,theme:n}=T();return(a,r)=>u(t).appearance&&u(t).appearance!=="force-dark"&&u(t).appearance!=="force-auto"?(c(),f("div",Eu,[m("p",Lu,$(u(n).darkModeSwitchLabel||"Appearance"),1),w(kn)])):v("",!0)}}),Tu=E(_u,[["__scopeId","data-v-b44890b2"]]),Au=["innerHTML"],Pu=b({__name:"VPNavScreenMenuLink",props:{item:{}},setup(e){const t=ft("close-screen");return(n,a)=>(c(),S(Y,{class:"VPNavScreenMenuLink",href:e.item.link,target:e.item.target,rel:e.item.rel,"no-icon":e.item.noIcon,onClick:u(t)},{default:g(()=>[m("span",{innerHTML:e.item.text},null,8,Au)]),_:1},8,["href","target","rel","no-icon","onClick"]))}}),Ru=E(Pu,[["__scopeId","data-v-df37e6dd"]]),Nu=["innerHTML"],$u=b({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(e){const t=ft("close-screen");return(n,a)=>(c(),S(Y,{class:"VPNavScreenMenuGroupLink",href:e.item.link,target:e.item.target,rel:e.item.rel,"no-icon":e.item.noIcon,onClick:u(t)},{default:g(()=>[m("span",{innerHTML:e.item.text},null,8,Nu)]),_:1},8,["href","target","rel","no-icon","onClick"]))}}),Nr=E($u,[["__scopeId","data-v-3e9c20e4"]]),Iu={class:"VPNavScreenMenuGroupSection"},Vu={key:0,class:"title"},Mu=b({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(e){return(t,n)=>(c(),f("div",Iu,[e.text?(c(),f("p",Vu,$(e.text),1)):v("",!0),(c(!0),f(M,null,D(e.items,a=>(c(),S(Nr,{key:a.text,item:a},null,8,["item"]))),128))]))}}),Ou=E(Mu,[["__scopeId","data-v-8133b170"]]),Cu=["aria-controls","aria-expanded"],ju=["innerHTML"],xu=["id"],Du={key:0,class:"item"},Hu={key:1,class:"item"},Bu={key:2,class:"group"},Gu=b({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(e){const t=e,n=P(!1),a=L(()=>`NavScreenGroup-${t.text.replace(" ","-").toLowerCase()}`);function r(){n.value=!n.value}return(o,i)=>(c(),f("div",{class:N(["VPNavScreenMenuGroup",{open:n.value}])},[m("button",{class:"button","aria-controls":a.value,"aria-expanded":n.value,onClick:r},[m("span",{class:"button-text",innerHTML:e.text},null,8,ju),i[0]||(i[0]=m("span",{class:"vpi-plus button-icon"},null,-1))],8,Cu),m("div",{id:a.value,class:"items"},[(c(!0),f(M,null,D(e.items,s=>(c(),f(M,{key:JSON.stringify(s)},["link"in s?(c(),f("div",Du,[w(Nr,{item:s},null,8,["item"])])):"component"in s?(c(),f("div",Hu,[(c(),S(K(s.component),se({ref_for:!0},s.props,{"screen-menu":""}),null,16))])):(c(),f("div",Bu,[w(Ou,{text:s.text,items:s.items},null,8,["text","items"])]))],64))),128))],8,xu)],2))}}),zu=E(Gu,[["__scopeId","data-v-b9ab8c58"]]),Fu={key:0,class:"VPNavScreenMenu"},Uu=b({__name:"VPNavScreenMenu",setup(e){const{theme:t}=T();return(n,a)=>u(t).nav?(c(),f("nav",Fu,[(c(!0),f(M,null,D(u(t).nav,r=>(c(),f(M,{key:JSON.stringify(r)},["link"in r?(c(),S(Ru,{key:0,item:r},null,8,["item"])):"component"in r?(c(),S(K(r.component),se({key:1,ref_for:!0},r.props,{"screen-menu":""}),null,16)):(c(),S(zu,{key:2,text:r.text||"",items:r.items},null,8,["text","items"]))],64))),128))])):v("",!0)}}),Wu=b({__name:"VPNavScreenSocialLinks",setup(e){const{theme:t}=T();return(n,a)=>u(t).socialLinks?(c(),S(_n,{key:0,class:"VPNavScreenSocialLinks",links:u(t).socialLinks},null,8,["links"])):v("",!0)}}),Ku={class:"list"},Yu=b({__name:"VPNavScreenTranslations",setup(e){const{localeLinks:t,currentLang:n}=xe({correspondingLink:!0}),a=P(!1);function r(){a.value=!a.value}return(o,i)=>u(t).length&&u(n).label?(c(),f("div",{key:0,class:N(["VPNavScreenTranslations",{open:a.value}])},[m("button",{class:"title",onClick:r},[i[0]||(i[0]=m("span",{class:"vpi-languages icon lang"},null,-1)),de(" "+$(u(n).label)+" ",1),i[1]||(i[1]=m("span",{class:"vpi-chevron-down icon chevron"},null,-1))]),m("ul",Ku,[(c(!0),f(M,null,D(u(t),s=>(c(),f("li",{key:s.link,class:"item"},[w(Y,{class:"link",href:s.link},{default:g(()=>[de($(s.text),1)]),_:2},1032,["href"])]))),128))])],2)):v("",!0)}}),Ju=E(Yu,[["__scopeId","data-v-858fe1a4"]]),qu={class:"container"},Xu=b({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(e){const t=P(null),n=Lr(mt?document.body:null);return(a,r)=>(c(),S(pn,{name:"fade",onEnter:r[0]||(r[0]=o=>n.value=!0),onAfterLeave:r[1]||(r[1]=o=>n.value=!1)},{default:g(()=>[e.open?(c(),f("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:t,id:"VPNavScreen"},[m("div",qu,[d(a.$slots,"nav-screen-content-before",{},void 0,!0),w(Uu,{class:"menu"}),w(Ju,{class:"translations"}),w(Tu,{class:"appearance"}),w(Wu,{class:"social-links"}),d(a.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):v("",!0)]),_:3}))}}),Qu=E(Xu,[["__scopeId","data-v-f2779853"]]),Zu={key:0,class:"VPNav"},ed=b({__name:"VPNav",setup(e){const{isScreenOpen:t,closeScreen:n,toggleScreen:a}=Jc(),{frontmatter:r}=T(),o=L(()=>r.value.navbar!==!1);return bn("close-screen",n),lt(()=>{mt&&document.documentElement.classList.toggle("hide-nav",!o.value)}),(i,s)=>o.value?(c(),f("header",Zu,[w(ku,{"is-screen-open":u(t),onToggleScreen:u(a)},{"nav-bar-title-before":g(()=>[d(i.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":g(()=>[d(i.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":g(()=>[d(i.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":g(()=>[d(i.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),w(Qu,{open:u(t)},{"nav-screen-content-before":g(()=>[d(i.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":g(()=>[d(i.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])])):v("",!0)}}),td=E(ed,[["__scopeId","data-v-ae24b3ad"]]),nd=["role","tabindex"],ad={key:1,class:"items"},rd=b({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(e){const t=e,{collapsed:n,collapsible:a,isLink:r,isActiveLink:o,hasActiveLink:i,hasChildren:s,toggle:l}=Zi(L(()=>t.item)),p=L(()=>s.value?"section":"div"),k=L(()=>r.value?"a":"div"),h=L(()=>s.value?t.depth+2===7?"p":`h${t.depth+2}`:"p"),y=L(()=>r.value?void 0:"button"),_=L(()=>[[`level-${t.depth}`],{collapsible:a.value},{collapsed:n.value},{"is-link":r.value},{"is-active":o.value},{"has-active":i.value}]);function R(j){"key"in j&&j.key!=="Enter"||!t.item.link&&l()}function V(){t.item.link&&l()}return(j,G)=>{const re=ge("VPSidebarItem",!0);return c(),S(K(p.value),{class:N(["VPSidebarItem",_.value])},{default:g(()=>[e.item.text?(c(),f("div",se({key:0,class:"item",role:y.value},Ni(e.item.items?{click:R,keydown:R}:{},!0),{tabindex:e.item.items&&0}),[G[1]||(G[1]=m("div",{class:"indicator"},null,-1)),e.item.link?(c(),S(Y,{key:0,tag:k.value,class:"link",href:e.item.link,rel:e.item.rel,target:e.item.target},{default:g(()=>[(c(),S(K(h.value),{class:"text",innerHTML:e.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href","rel","target"])):(c(),S(K(h.value),{key:1,class:"text",innerHTML:e.item.text},null,8,["innerHTML"])),e.item.collapsed!=null&&e.item.items&&e.item.items.length?(c(),f("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:V,onKeydown:$i(V,["enter"]),tabindex:"0"},[...G[0]||(G[0]=[m("span",{class:"vpi-chevron-right caret-icon"},null,-1)])],32)):v("",!0)],16,nd)):v("",!0),e.item.items&&e.item.items.length?(c(),f("div",ad,[e.depth<5?(c(!0),f(M,{key:0},D(e.item.items,he=>(c(),S(re,{key:he.text,item:he,depth:e.depth+1},null,8,["item","depth"]))),128)):v("",!0)])):v("",!0)]),_:1},8,["class"])}}}),od=E(rd,[["__scopeId","data-v-b3fd67f8"]]),id=b({__name:"VPSidebarGroup",props:{items:{}},setup(e){const t=P(!0);let n=null;return te(()=>{n=setTimeout(()=>{n=null,t.value=!1},300)}),Ii(()=>{n!=null&&(clearTimeout(n),n=null)}),(a,r)=>(c(!0),f(M,null,D(e.items,o=>(c(),f("div",{key:o.text,class:N(["group",{"no-transition":t.value}])},[w(od,{item:o,depth:0},null,8,["item"])],2))),128))}}),sd=E(id,[["__scopeId","data-v-c40bc020"]]),cd={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},ld=b({__name:"VPSidebar",props:{open:{type:Boolean}},setup(e){const{sidebarGroups:t,hasSidebar:n}=ne(),a=e,r=P(null),o=Lr(mt?document.body:null);Q([a,r],()=>{var s;a.open?(o.value=!0,(s=r.value)==null||s.focus()):o.value=!1},{immediate:!0,flush:"post"});const i=P(0);return Q(t,()=>{i.value+=1},{deep:!0}),(s,l)=>u(n)?(c(),f("aside",{key:0,class:N(["VPSidebar",{open:e.open}]),ref_key:"navEl",ref:r,onClick:l[0]||(l[0]=Vi(()=>{},["stop"]))},[l[2]||(l[2]=m("div",{class:"curtain"},null,-1)),m("nav",cd,[l[1]||(l[1]=m("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),d(s.$slots,"sidebar-nav-before",{},void 0,!0),(c(),S(sd,{items:u(t),key:i.value},null,8,["items"])),d(s.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):v("",!0)}}),ud=E(ld,[["__scopeId","data-v-319d5ca6"]]),dd=b({__name:"VPSkipLink",setup(e){const{theme:t}=T(),n=dt(),a=P();Q(()=>n.path,()=>a.value.focus());function r({target:o}){const i=document.getElementById(decodeURIComponent(o.hash).slice(1));if(i){const s=()=>{i.removeAttribute("tabindex"),i.removeEventListener("blur",s)};i.setAttribute("tabindex","-1"),i.addEventListener("blur",s),i.focus(),window.scrollTo(0,0)}}return(o,i)=>(c(),f(M,null,[m("span",{ref_key:"backToTop",ref:a,tabindex:"-1"},null,512),m("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:r},$(u(t).skipToContentLabel||"Skip to content"),1)],64))}}),fd=E(dd,[["__scopeId","data-v-0b0ada53"]]),md=b({__name:"Layout",setup(e){const{isOpen:t,open:n,close:a}=ne(),r=dt();Q(()=>r.path,a),Qi(t,a);const{frontmatter:o}=T(),i=Mi(),s=L(()=>!!i["home-hero-image"]);return bn("hero-image-slot-exists",s),(l,p)=>
2{const k=ge("Content");return u(o).layout!==!1?(c(),f("div",{key:0,class:N(["Layout",u(o).pageClass])},[d(l.$slots,"layout-top",{},void 0,!0),w(fd),w(Di,{class:"backdrop",show:u(t),onClick:u(a)},null,8,["show","onClick"]),w(td,null,{"nav-bar-title-before":g(()=>[d(l.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":g(()=>[d(l.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":g(()=>[d(l.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":g(()=>[d(l.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":g(()=>[d(l.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":g(()=>[d(l.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),w(Yc,{open:u(t),onOpenMenu:u(n)},null,8,["open","onOpenMenu"]),w(ud,{open:u(t)},{"sidebar-nav-before":g(()=>[d(l.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":g(()=>[d(l.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),w(Ic,null,{"page-top":g(()=>[d(l.$slots,"page-top",{},void 0,!0)]),"page-bottom":g(()=>[d(l.$slots,"page-bottom",{},void 0,!0)]),"not-found":g(()=>[d(l.$slots,"not-found",{},void 0,!0)]),"home-hero-before":g(()=>[d(l.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":g(()=>[d(l.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":g(()=>[d(l.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":g(()=>[d(l.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":g(()=>[d(l.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":g(()=>[d(l.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":g(()=>[d(l.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":g(()=>[d(l.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":g(()=>[d(l.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":g(()=>[d(l.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":g(()=>[d(l.$slots,"doc-before",{},void 0,!0)]),"doc-after":g(()=>[d(l.$slots,"doc-after",{},void 0,!0)]),"doc-top":g(()=>[d(l.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":g(()=>[d(l.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":g(()=>[d(l.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":g(()=>[d(l.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":g(()=>[d(l.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":g(()=>[d(l.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":g(()=>[d(l.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":g(()=>[d(l.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),w(jc),d(l.$slots,"layout-bottom",{},void 0,!0)],2)):(c(),S(k,{key:1}))}}}),gd=E(md,[["__scopeId","data-v-5d98c3a5"]]),Pe={Layout:gd,enhanceApp:({app:e})=>{e.component("Badge",Ci)}},pd="2.0.7",hd={version:pd},vd="#000000";function ke(e){return/^#[0-9a-f]{6}$/i.test(e)?e.toLowerCase():vd}function yd(e,t,n=ke){const a=ra(e,n),r=ra(t,n),o=Math.max(a,r),i=Math.min(a,r);return(o+.05)/(i+.05)}function ra(e,t=ke){const[n,a,r]=qe(e,t).map(o=>{const i=o/255;return i<=.03928?i/12.92:((i+.055)/1.055)**2.4});return .2126*n+.7152*a+.0722*r}function bd(e,t,n,a=ke){const r=qe(e,a),o=qe(t,a);return`#${r.map((i,s)=>Math.round(i+(o[s]-i)*n).toString(16).padStart(2,"0")).join("")}`}function qe(e,t=ke){const n=ke(t(e));return[parseInt(n.slice(1,3),16),parseInt(n.slice(3,5),16),parseInt(n.slice(5,7),16)]}function wd(e,t,n=ke){const[a,r,o]=qe(e,n);return`rgba(${a}, ${r}, ${o}, ${Math.max(0,Math.min(1,t)).toFixed(2)})`}const C={accent:"#5ea780",black:"#000000",white:"#ffffff",readableInk:"#11161d",pageBgDark:"#181b20",pageBgLight:"#ffffff"},Sd=4.5,kd=4.5,oa=3.5;function Ee(e,t=C.accent){return $r(e)??t}function $r(e){if(typeof e!="string")return;const t=e.trim();if(/^#[0-9a-f]{6}$/i.test(t))return t.toLowerCase();const n=/^#([0-9a-f])([0-9a-f])([0-9a-f])$/i.exec(t);return n?`#${n[1]}${n[1]}${n[2]}${n[2]}${n[3]}${n[3]}`.toLowerCase():void 0}function Rt(e){const t=ue(e,C.readableInk),n=ue(e,C.white),a=t>=n?C.readableInk:C.white;return Math.max(t,n)>=Sd?a:ue(e,C.black)>=n?C.black:C.white}function Ed(e,t){const n=Ee(e),a=t?C.pageBgDark:C.pageBgLight,r=Nt(n,a,kd),o=t?C.white:C.black,i=Nt(en(n,o,.18),a,oa),s=Nt(en(n,C.black,.18),a,oa),l=wd(n,t?.22:.16,Ee),p=Rt(n),k=Rt(r),h=Rt(i);return{"--yomu-accent":n,"--yomu-accent-readable":r,"--yomu-accent-ink":p,"--yomu-brand-ink":k,"--yomu-brand-hover-ink":h,"--vp-c-brand-1":r,"--vp-c-brand-2":i,"--vp-c-brand-3":n,"--vp-c-brand-soft":l,"--vp-button-brand-border":r,"--vp-button-brand-bg":n,"--vp-button-brand-text":p,"--vp-button-brand-hover-border":i,"--vp-button-brand-hover-bg":i,"--vp-button-brand-hover-text":p,"--vp-button-brand-active-border":s,"--vp-button-brand-active-bg":s,"--vp-button-brand-active-text":p,"--vp-home-hero-name-color":r,"--accent":n,"--accent-ink":p,"--accent-soft":l,"--jpdb-reader-accent":n,"--jpdb-reader-accent-readable":r,"--jpdb-reader-accent-text":p,"--jpdb-reader-accent-soft":l}}function Nt(e,t,n){const a=Ee(e);if(ue(a,t)>=n)return a;const r=Ld(t);for(let o=.08;o<=1;o+=.08){const i=en(a,r,o);if(ue(i,t)>=n)return i}return r}function Ld(e){return ue(e,C.black)>ue(e,C.white)?C.black:C.white}function ue(e,t){return yd(e,t,Ee)}
2function en(e,t,n){return bd(e,t,n,Ee)}const _d=["yomu-","yomu:","yomu.","__yomu","jpdb-reader-","jpdb-popup-reader-"],Ir="yomu:state-slot:v1:",Vr="yomu:web-storage-slot:v1:",Mr=[Ir,Vr];function Tn(e){return _d.some(t=>e.startsWith(t))}function Td(e){var t;return((t=Ad(e))==null?void 0:t.startsWith("yomu:private:"))===!0}function Ad(e){const t=Mr.find(r=>e.startsWith(r));if(!t)return e;const n=e.slice(t.length),a=n.indexOf(":");if(a<1||a===n.length-1)return null;try{const r=decodeURIComponent(n.slice(a+1));return r&&!An(r)&&Tn(r)?r:null}catch{return null}}function An(e){return Mr.some(t=>e.startsWith(t))}function Pd(e){return!!(e&&typeof e.then=="function")}const Rd="yomu",Le=`${Rd}-reader`,Nd="HRussellZFAC023",$d=`https://${Nd.toLowerCase()}.github.io`,Or="https://yomureader.com",Id="yomu-userscript-storage-bridge-ready",Vd="yomureader.localhost",Md=new Set(["http:","https:"]),Od=new Set(["chrome-extension:","moz-extension:","safari-web-extension:"]),Cd=new Map([[Or,"docs"],[$d,"github-pages"]]),jd=new Map([[Vd,"docs-preview"],["127.0.0.1","loopback"],["localhost","loopback"],["[::1]","loopback"]]),xd=new Set([]);function Cr(e){return xd.has(e)}function Pn(e){let t;try{t=new URL(e)}catch{return null}if(t.username||t.password)return null;const n=jr(t.pathname),a=Hd(t,n);return a?{url:t,path:n,originKind:a}:null}function jr(e){const t=e.replace(/\/index\.html$/u,"/");return t.endsWith("/")?t:`${t}/`}function Dd(e){return e===`/${Le}/`||e.startsWith(`/${Le}/`)}function Hd(e,t){return Bd(e,t)??Gd(e)??zd(e)}function Bd(e,t){const n=Cd.get(e.origin);return n!=="github-pages"?n??null:Dd(t)?n:null}function Gd(e){return Md.has(e.protocol)?jd.get(e.hostname)??null:null}function zd(e){return Od.has(e.protocol)&&e.hostname?"extension":null}const Fd=["appearance","backup","api","dictionaries","media","mining","newTab","shortcuts","help"];new Set(Fd);const Ud={docs:ze,"docs-preview":ze,extension:ze,"github-pages":xr,loopback:Yd};function Wd(e){const t=Pn(e);return t?Kd(t):!1}function ze(e){const t=jr(e);return t==="/study/"||t==="/newtab/"}function Kd(e){const{originKind:t,path:n}=e;return Ud[t](n)}function Yd(e){return ze(e)||xr(e)}function xr(e){return e===`/${Le}/study/`||e===`/${Le}/newtab/`}const Jd={docs:tn,"github-pages":tn,extension:()=>!1,loopback:ia,"docs-preview":ia};function qd(e){const t=Pn(e);return t?Jd[t.originKind](e,t):!1}function Xd(e){const t=Pn(e);return t?t.originKind==="docs"||t.originKind==="github-pages"?!0:qd(e):!1}function tn(e,t){return Wd(e)||$t(t,"video-player")||$t(t,"pdf-reader")||$t(t,"academy")}function ia(e,t){return Cr(t.url.origin)&&tn(e,t)}function $t(e,t){return e.originKind==="github-pages"?e.path===`/${Le}/${t}/`:e.path===`/${t}/`||e.originKind==="loopback"&&e.path===`/${Le}/${t}/`}const Dr="jpdb-reader-installed-runtime";function Qd(e=globalThis){var t,n,a,r,o,i,s;return(n=(t=e.chrome)==null?void 0:t.runtime)!=null&&n.id||(r=(a=e.browser)==null?void 0:a.runtime)!=null&&r.id?"extension":e===globalThis&&typeof GM_getValue=="function"||typeof e.GM_getValue=="function"||typeof((o=e.GM)==null?void 0:o.getValue)=="function"||typeof((i=e.GM)==null?void 0:i.xmlHttpRequest)=="function"||typeof((s=e.GM)==null?void 0:s.xmlhttpRequest)=="function"||e.GM_info?"userscript":null}function Zd(e=document){var n,a;const t=(a=(n=e.getElementById(Dr))==null?void 0:n.dataset)==null?void 0:a.yomuInstalledRuntimeKind;return t==="extension"||t==="userscript"?t:null}function Hr(e=!1,t=document){return e||!t.getElementById(Dr)}function ef(e){if(Qd())return null;const t=Zd();return t&&e()?t:null}function Rn(e,t,n){if((e==null?void 0:e[t.ready])!=="true")return null;const a=e[t.kind];return a==="extension"||a==="userscript"?n&&a!==n&&a!=="extension"?null:{ownerId:e[t.owner],kind:a}:{ownerId:e[t.owner],kind:n??"userscript"}}function tf(e){return e===void 0?void 0:nf(e)??e}function nf(e){let t=!1;try{const n=JSON.stringify(e,(a,r)=>{if(rf(r)){t=!0;return}return r});return t||typeof n!="string"?void 0:n}catch{return}}function af(e){const t=uf(e);if(typeof t!="string")return t;try{return JSON.parse(t)}catch{return t}}function rf(e){return of(e)||sf(e)||cf(e)||lf(e)}function of(e){return typeof e=="function"||typeof e=="symbol"}function sf(e){return typeof ArrayBuffer>"u"?!1:e instanceof ArrayBuffer||ArrayBuffer.isView(e)}function cf(e){return typeof Blob<"u"&&e instanceof Blob}function lf(e){return typeof FormData<"u"&&e instanceof FormData}function uf(e){try{return e.detail}catch{return}}function Br(e,t,n){try{return e()}catch{return t}}function df(e,t){try{e()}catch{}}let sa=Nn("dispatchEvent"),ca=Nn("addEventListener"),la=Nn("removeEventListener");function ua(e,t,n={}){const a={...n,detail:ff(t)},r=bf(e,a);if(r)return r;const o=da(window,"CustomEvent")??da(globalThis,"CustomEvent");
2if(o)try{return new o(e,a)}catch{}throw new Error(`Unable to create window custom event: ${e}`)}function ff(e){if(e===void 0||typeof window>"u")return e;const t=z(globalThis,"cloneInto");if(!t)return e;try{return t(e,window,{cloneFunctions:!1,wrapReflectors:!0})}catch{try{return JSON.stringify(e)}catch{return}}}function mf(e){const t=window,n=z(t,"dispatchEvent"),a=Xe(n,t,e);if(a.called)return a.result;const r=sa===n?{called:!1}:Xe(sa,t,e);if(r.called)return r.result;const o=hf(t,n,e);if(o.called)return o.result;const i=Sf(e);return i.called?i.result:!1}function gf(e,t,n){const a=window,r=z(a,"addEventListener");return!!(Qe(r,a,e,t,n).called||(ca===r?{called:!1}:Qe(ca,a,e,t,n)).called||vf(a,r,e,t,n).called||kf(e,t,n).called)}function pf(e,t,n){const a=window,r=z(a,"removeEventListener");return!!(Ze(r,a,e,t,n).called||(la===r?{called:!1}:Ze(la,a,e,t,n)).called||yf(a,r,e,t,n).called||Ef(e,t,n).called)}function Nn(e){if(!(typeof window>"u"))return z(window,e)}function hf(e,t,n){for(const a of $n(e,"dispatchEvent")){if(a===t)continue;const r=Xe(a,e,n);if(r.called)return r}return{called:!1}}function vf(e,t,n,a,r){for(const o of $n(e,"addEventListener")){if(o===t)continue;const i=Qe(o,e,n,a,r);if(i.called)return i}return{called:!1}}function yf(e,t,n,a,r){for(const o of $n(e,"removeEventListener")){if(o===t)continue;const i=Ze(o,e,n,a,r);if(i.called)return i}return{called:!1}}function da(e,t){const n=In(e,t);return typeof n=="function"?n:void 0}function bf(e,t){if(!(typeof document>"u"||typeof document.createEvent!="function"))try{const n=document.createEvent("CustomEvent");return n.initCustomEvent(e,!!t.bubbles,!!t.cancelable,t.detail),n}catch{return}}function $n(e,t){const n=[],a=i=>{i&&!n.includes(i)&&n.push(i)};let r=Object.getPrototypeOf(e);for(;r;)a(wf(r,t)),r=Object.getPrototypeOf(r);const o=In(window,"EventTarget");return a(z(o==null?void 0:o.prototype,t)),typeof EventTarget<"u"&&a(z(EventTarget.prototype,t)),n}function z(e,t){const n=In(e,t);return typeof n=="function"?n:void 0}function wf(e,t){if(!(!e||typeof e!="object"&&typeof e!="function")&&Object.prototype.hasOwnProperty.call(e,t))return z(e,t)}function In(e,t){if(!(!e||typeof e!="object"&&typeof e!="function"))return Br(()=>e[t],void 0)}function Xe(e,t,n){if(!e)return{called:!1};try{return{called:!0,result:e.call(t,n)}}catch(a){return{called:!1,error:a}}}function Qe(e,t,n,a,r){if(!e)return{called:!1};try{return e.call(t,n,a,r),{called:!0}}catch(o){return{called:!1,error:o}}}function Ze(e,t,n,a,r){if(!e)return{called:!1};try{return e.call(t,n,a,r),{called:!0}}catch(o){return{called:!1,error:o}}}function Sf(e){const t=window.wrappedJSObject||window,n=Mn("dispatchEvent");if(!On(n))return{called:!1};try{return Reflect.deleteProperty(t,"dispatchEvent")?Xe(z(window,"dispatchEvent"),window,e):{called:!1}}catch(a){return{called:!1,error:a}}finally{Vn("dispatchEvent",n)}}function kf(e,t,n){const a=window.wrappedJSObject||window,r=Mn("addEventListener");if(!On(r))return{called:!1};try{return Reflect.deleteProperty(a,"addEventListener")?Qe(z(window,"addEventListener"),window,e,t,n):{called:!1}}catch(o){return{called:!1,error:o}}finally{Vn("addEventListener",r)}}function Ef(e,t,n){const a=window.wrappedJSObject||window,r=Mn("removeEventListener");if(!On(r))return{called:!1};try{return Reflect.deleteProperty(a,"removeEventListener")?Ze(z(window,"removeEventListener"),window,e,t,n):{called:!1}}catch(o){return{called:!1,error:o}}finally{Vn("removeEventListener",r)}}function Vn(e,t){df(()=>{const n=window.wrappedJSObject||window;Object.defineProperty(n,e,Lf(Tf(t),n))})}function Lf(e,t){return _f(e,{cloneFunctions:!0,wrapReflectors:!0})}function _f(e,t={}){const n=z(globalThis,"cloneInto");if(!n||typeof window>"u")return e;try{return n(e,window,t)}catch{return e}}function Mn(e){try{const t=window.wrappedJSObject||window;return Object.getOwnPropertyDescriptor(t,e)}catch{return}}function On(e){return e?Br(()=>typeof e.value!="function",!1):!1}function Tf(e){const t=Object.prototype.hasOwnProperty.call(e,"value")||Object.prototype.hasOwnProperty.call(e,"writable"),n=Object.prototype.hasOwnProperty.call(e,"get")||Object.prototype.hasOwnProperty.call(e,"set");if(!t||!n)return e;try{return{configurable:e.configurable,enumerable:e.enumerable,value:e.value,writable:e.writable}}catch{return{configurable:!0,value:void 0,writable:!0}}}const Af="yomu-userscript-storage-request",Pf="yomu-userscript-storage-response",Gr="yomuUserscriptStorageBridge",zr="yomuStorageBridgeOwner",Rf="yomuStorageBridgeKind",Cn={ready:Gr,owner:zr,kind:Rf},Nf="yomuExtensionStorageBridge",$f="extension-storage",If=1e4;let ve;function pt(){if(!Vf())return;ve??(ve=Fr(Rn(De(),Cn,jn())));const e=t=>Mf(t);return{getValue:(t,n)=>e({op:"get",key:t}).then(a=>a.found?a.value:n),setValue:(t,n)=>e({op:"set",key:t,value:n}).then(()=>{}),deleteValue:t=>
2e({op:"delete",key:t}).then(()=>{}),listValues:()=>e({op:"list"}).then(t=>t.keys??[]),clearPrivateManagedValues:()=>e({op:"clear-private-managed"}).then(()=>{}),clearLegacyExtensionManagedValues:()=>jf()?e({op:"clear-legacy-extension-managed",target:$f}).then(()=>{}):Promise.resolve()}}function Vf(){return typeof window>"u"||typeof document>"u"?!1:!!(ve||jn()||Rn(De(),Cn,null))}function jn(){return ef(Of)}function Mf(e){return new Promise((t,n)=>{const a=`yomu-store-${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`;let r,o=Gf;const i=()=>{window.clearTimeout(l),o()},s=y=>{i(),n(new Error(y))},l=window.setTimeout(()=>{r?It(r)?s("Storage bridge request timed out."):s("Storage bridge authority changed during the request."):s("Installed Yomu storage did not connect; reload to reconnect.")},If),p=y=>{const _=Cf(y);if(!(!_||_.id!==a)){if(!r||!It(r))return s("Storage bridge authority changed during the request.");i(),_.ok?t(_):n(new Error(_.message||"Storage bridge request failed."))}},k=y=>{r=y,o(),o=fa(Pf,p),xf(Af,{id:a,ownerId:y.ownerId,...e})},h=()=>{if(ve)return It(ve)?k(ve):s("Storage bridge authority changed; reload to reconnect."),!0;const y=Rn(De(),Cn,jn());return y?(ve=Fr(y),k(y),!0):!1};h()||(o=fa(Id,()=>{r||h()}))})}function Fr(e){return(e==null?void 0:e.ownerId)===void 0?void 0:e}function It(e){const t=De();return(t==null?void 0:t[Gr])==="true"&&t[zr]===e.ownerId}function Of(){try{return typeof location<"u"&&Xd(location.href)}catch{return!1}}function Cf(e){const t=af(e);if(!t||typeof t!="object")return;const n=t;if(!(typeof n.id!="string"||typeof n.ok!="boolean"))return{id:n.id,ok:n.ok,found:typeof n.found=="boolean"?n.found:void 0,value:n.value,keys:Array.isArray(n.keys)?n.keys.filter(a=>typeof a=="string"):void 0,message:typeof n.message=="string"?n.message:void 0}}function jf(){var e;return((e=De())==null?void 0:e[Nf])==="true"}function fa(e,t){const n=[];gf(e,t)&&n.push(()=>pf(e,t));const a=Ur();return a&&Df(a,e,t)&&n.push(()=>Hf(a,e,t)),()=>{for(const r of n)r()}}function xf(e,t){const n=tf(t);let a=mf(ua(e,n));const r=Ur();return r&&(a=Bf(r,ua(e,n))||a),a}function Ur(){if(!(typeof document>"u"))return document.documentElement instanceof HTMLElement?document.documentElement:void 0}function De(){if(typeof document>"u")return;const e=document.documentElement;return e==null?void 0:e.dataset}function Df(e,t,n){try{return e.addEventListener(t,n),!0}catch{return!1}}function Hf(e,t,n){try{e.removeEventListener(t,n)}catch{}}function Bf(e,t){try{return e.dispatchEvent(t)}catch{return!1}}function Gf(){}const Re=[],ma=new Map;let zf=!1;function Ff(e){const t=Wf(e),n=ma.get(t);if(n!==void 0){const a=Re[n];if(a.owner!==e.owner)throw new Error(`Managed state ${t} has conflicting owners: ${a.owner}, ${e.owner}.`);if(a.enumerate&&e.enumerate&&a.enumerate!==e.enumerate)throw new Error(`Managed state ${t} has conflicting enumerators.`);!a.enumerate&&e.enumerate&&(Re[n]={...a,enumerate:e.enumerate});return}ma.set(t,Re.length),Re.push(e)}function Uf(e){for(const t of e)Ff(t)}function Wf(e){return`${e.kind}:${e.key??""}:${e.prefix??""}`}function Kf(){return Re}function Yf(){return zf}let Jf={};function qf(){return Xf().localDictionaries}function Xf(){return ga(globalThis)??Jf??(typeof window>"u"?void 0:ga(window))??{}}function ga(e){if(!(!e||typeof e!="object"&&typeof e!="function"))try{return e.__yomuCompanions}catch{return}}async function Qf(){var t;const e=(t=qf())==null?void 0:t.enumerateDictionaryArchiveStorageKeys;if(!e)throw new Error("The local-dictionary companion cannot enumerate archive storage.");return e()}const Zf=[{owner:"settings",kind:"gm",key:"jpdb-popup-reader-settings"},{owner:"settings (legacy)",kind:"gm",key:"jpdb-reader-settings"},{owner:"settings (legacy)",kind:"gm",key:"yomu-reader-settings"},{owner:"settings (legacy)",kind:"gm",key:"yomu-settings"},{owner:"settings",kind:"gm",key:"yomu:prefer-japanese-site-language:v1"},{owner:"settings (pre-ledger pins)",kind:"gm",key:"yomu:explicit-user-settings:v1"},{owner:"settings/intent-ledger",kind:"gm",key:"yomu:settings-intent:v2"},{owner:"settings (retired promotion marker; purge only)",kind:"gm",key:"yomu:extension-study-legacy-promotion:v1"},{owner:"settings/dialog-controller",kind:"gm",key:"yomu:private:cloud-settings-sync-pending:v1"},{owner:"settings/dialog-controller (legacy)",kind:"gm",key:"__yomu_cloud_settings_sync_pending_action"},{owner:"app/storage",kind:"gm",key:"yomu:factory-reset-signal"},{owner:"app/storage epoch",kind:"gm",key:"yomu:state-epoch"},{owner:"app/storage epoch slots",kind:"gm",prefix:"yomu:state-slot:v1:"},{owner:"app/storage epoch lease",kind:"gm",prefix:"yomu:state-epoch-lease:v1:"},{owner:"app/managed-web-storage",kind:"local",key:"yomu:web-storage-epoch:v1:local"},{owner:"app/managed-web-storage",kind:"session",key:"yomu:web-storage-epoch:v1:session"},{owner:"app/managed-web-storage",kind:"local",prefix:"yomu:web-storage-slot:v1:"},{owner:"app/managed-web-storage",kind:"session",prefix:"yomu:web-storage-slot:v1:"},{owner:"app/managed-web-storage",kind:"local",prefix:"yomu:web-owner:v2:"},{owner:"app/managed-web-storage",kind:"session",prefix:"yomu:web-owner:v2:"},{owner:"app/storage local provenance",kind:"local",key:"yomu:local-storage-provenance:v1"},{owner:"app/card-state-signal",kind:"gm",key:"yomu:card-state-signal"},{owner:"app/storage leases",kind:"gm",prefix:"yomu:lease:"},{owner:"srs/account-sync",kind:"gm",key:"yomu:private:academy-device:v1"},{owner:"srs/account-sync",kind:"gm",key:"yomu:private:academy-device-pending:v1"},{owner:"app/logger",kind:"gm",key:"yomu:enable-logs"},{owner:"app/main",kind:"local",key:"yomu:jpdb-review-examples-visible:v1"},{owner:"core/hosted-appearance-boot",kind:"local",key:"yomu-page-theme"},{owner:"app/preferred-site-language",kind:"local",key:"yomu:prefer-japanese-site-language"},{owner:"app/preferred-site-language",kind:"session",key:"yomu:jps"},{owner:"app/preferred-site-language",kind:"session",key:"yomu:jps:hosts"},{owner:"srs/local-yomu-store (legacy)",kind:"gm",key:"yomu:srs-local:v1"},{owner:"srs/local-yomu-store",kind:"gm",prefix:"yomu:srs-local:v2:"},{owner:"anki/status-index",kind:"gm",key:"yomu:anki-status-index:v1"},{owner:"anki/status-index",kind:"gm",key:"yomu:anki-status-index-rebuild:v1"},{owner:"anki/status-index",kind:"idb",key:"yomu-anki-status-index"},{owner:"bunpro/word-states",kind:"gm",key:"yomu:bunpro-word-states:v1"},{owner:"jpdb/jpdb-public-cache",kind:"local",key:"yomu:jpdb-cache:v1"},{owner:"dictionaries/jiten-public-cache (legacy)",kind:"gm",key:"yomu:jiten-public-cache:v1"},{owner:"dictionaries/jiten-public-cache",kind:"local",key:"yomu:jiten-public-cache:v2"},{owner:"dictionaries/jiten-stats-cache",kind:"gm",key:"jpdb-reader-jiten-daily-stats"},{owner:"dictionaries/yomitan",kind:"idb",key:"jpdb-popup-reader-yomitan"},{owner:"dictionaries/archive-cache",kind:"gm",key:"yomu-dictionary-archives"},{owner:"dictionaries/archive-cache",kind:"gm",prefix:"yomu-dictionary-archive:",enumerate:Qf},{owner:"dictionaries/replication (legacy)",kind:"local",key:"yomu-dictionary-replication-state"},{owner:"dictionaries/replica-purge",kind:"gm",key:"yomu:dictionary-replica-purge:v1"},{owner:"dictionaries/replica-purge",kind:"local",key:"yomu:dictionary-replica-purged:v1"},{owner:"ocr/ocr-cache-store",kind:"local",key:"yomu-ocr-cache-v1"},{owner:"ocr/ocr-cache-store",kind:"local",key:"yomu-ocr-cache-v2"},{owner:"ocr/canvas-mirror",kind:"session",key:"yomu:bw:mirror-loadguard"},{owner:"ocr/reader-canvas-tap-hint",kind:"gm",prefix:"yomu:private:ocr-canvas-tap-hint-seen:v1:"},{owner:"styles/index",kind:"gm",key:"yomu:reader-css-cache:v3"},{owner:"styles/index (legacy)",kind:"gm",prefix:"yomu:reader-css-cache:v2:"},{owner:"study/grammar-knowledge",kind:"gm",key:"yomu.grammarPreferences.v1"},{owner:"study/grammar-knowledge",kind:"gm",prefix:"yomu.grammarPreferences.v1:"},{owner:"study/mining-context",kind:"gm",prefix:"yomu-mining-context:"},{owner:"dictionaries/uchisen-carousel (retired)",kind:"gm",prefix:"yomu-jpdb-uchisen-index:"},{owner:"popup/shell",kind:"gm",key:"jpdb-reader-sheet-height-ratio"},{owner:"popup/shell",kind:"gm",key:"jpdb-reader-settings-drawer-height-ratio"},{owner:"sources/state",kind:"gm",key:"jpdb-reader-source-open-state"},{owner:"subtitles/subtitle-layout",kind:"gm",key:"jpdb-reader-transcript-panel-size"},{owner:"subtitles/subtitle-layout",kind:"gm",key:"jpdb-reader-subtitle-drag-offset"},{owner:"subtitles/subtitle-layout",kind:"gm",key:"jpdb-reader-subtitle-control-rail-position"},{owner:"subtitles/youtube",kind:"gm",key:"yomu:youtube-all-subscribed:v1"},{owner:"subtitles/youtube",kind:"session",prefix:"yomu:youtube-oembed-title:v1:"},{owner:"subtitles/controller",kind:"session",prefix:"yomu:subtitle-parse:v"},{owner:"study/practice-session",kind:"idb",key:"yomu-practice-sessions-v1"},{owner:"study/practice-session",kind:"session",key:"yomu:practice-session-tab:v1"},{owner:"newtab/state",kind:"gm",key:"jpdb-reader-newtab-ui"},{owner:"newtab/cache",kind:"gm",key:"jpdb-reader-newtab-card-cache"},{owner:"newtab/controller-config",kind:"gm",key:"jpdb-reader-newtab-grade-queue"},{owner:"newtab/grade-queue",kind:"gm",key:"yomu:newtab-live-review:v1"},{owner:"newtab/review-queue-owner",kind:"gm",key:"yomu:private:review-delivery:v2"},{owner:"newtab/packaged-review-queue-client",kind:"session",key:"yomu:review-action-draft:v2"},{owner:"newtab/controller-config",kind:"gm",key:"jpdb-reader-newtab-current-word"},{owner:"newtab/controller-config",kind:"session",key:"jpdb-reader-newtab-current-word"},{owner:"newtab/controller-config",kind:"gm",key:"jpdb-reader-newtab-jpdb-stats-history"},{owner:"newtab/controller-config",kind:"gm",key:"jpdb-reader-newtab-disabled-anki-decks"},{owner:"newtab/session-progress",kind:"local",key:"jpdb-reader-newtab-daily-study-time"},{owner:"newtab/controller",kind:"local",key:"yomu-newtab-support-banner-dismissed"},{owner:"newtab/pitch-srs",kind:"gm",key:"yomu-pitch-items:v1"},{owner:"newtab/pitch-srs",kind:"gm",key:"yomu-pitch-history:v1"}];let pa=!1;function em(){pa||(pa=!0,Uf(Zf))}em();const Z="yomu:state-epoch",Wr=1,ha=Symbol.for("yomu.managed-state-epoch-session.v1"),Vt=Symbol.for("yomu.managed-state-epoch-canonical-session.v1"),tm=Object.freeze({version:1,generation:0,resetId:"legacy",committedAt:0});
2class nn extends Error{constructor(n,a){super(`Managed state belongs to epoch ${H(n)}, but the current epoch is ${H(a)}.`);I(this,"code","YOMU_STALE_MANAGED_STATE_EPOCH");this.expected=n,this.actual=a,this.name="StaleManagedStateEpochError"}}function nm(e){return!!(e&&typeof e=="object"&&e.code==="YOMU_STALE_MANAGED_STATE_EPOCH")}class am{constructor(){I(this,"captured");I(this,"captureInFlight")}current(){return this.captured}async capture(t){return this.captured?this.captured:(this.captureInFlight||(this.captureInFlight=t().then(oe).then(n=>(this.captured=n,n)).finally(()=>{this.captureInFlight=void 0})),this.captureInFlight)}captureSync(t){const n=oe(t);return this.captured??(this.captured=n),this.captured}async assertCurrent(t){const n=await this.capture(t),a=oe(await t());return va(n,a),n}assertCurrentSync(t){const n=this.captureSync(t),a=oe(t);return va(n,a),n}resetForTests(){this.captured=void 0,this.captureInFlight=void 0}}function rm(e=globalThis){const t=e,n=t[ha];if(om(n))return n;const a=new am;return t[ha]=a,t[Vt]??(t[Vt]=a),a}function oe(e){if(e==null)return tm;if(!Yr(e)||e.version!==1||!Number.isSafeInteger(e.generation)||e.generation<1||typeof e.resetId!="string"||!e.resetId.trim()||typeof e.committedAt!="number"||!Number.isFinite(e.committedAt)||e.committedAt<=0)throw new Error("The managed-state epoch is malformed.");return{version:1,generation:e.generation,resetId:e.resetId,committedAt:e.committedAt}}function xn(e,t){return t.generation===0?e:{__yomuManagedStateEnvelope:Wr,epoch:H(t),value:e}}function Kr(e,t,n){return t.generation===0?ya(e)?e.epoch===H(t)?e.value:n:e:ya(e)&&e.epoch===H(t)?e.value:n}function H(e){return`${e.generation}:${e.resetId}`}function an(e,t){return e.generation===t.generation&&e.resetId===t.resetId}function va(e,t){if(!an(e,t))throw new nn(e,t)}function ya(e){return Yr(e)&&e.__yomuManagedStateEnvelope===Wr&&typeof e.epoch=="string"&&Object.hasOwn(e,"value")}function om(e){return!!(e&&typeof e=="object"&&typeof e.current=="function"&&typeof e.capture=="function"&&typeof e.assertCurrent=="function"&&typeof e.resetForTests=="function")}function Yr(e){return!!(e&&typeof e=="object"&&!Array.isArray(e))}const x={__yomuStorageValueMissing:!0};function J(e){return e===x?!0:!!(e&&typeof e=="object"&&!Array.isArray(e)&&e.__yomuStorageValueMissing===!0)}async function im(e){const t=await e(Z,x);return J(t)?void 0:t}async function rn(e){return oe(await im(e))}function Dn(e,t){return t.generation===0?e:`${Ir}${encodeURIComponent(H(t))}:${encodeURIComponent(e)}`}async function we(e,t,n){const a=Dn(t,n),r=await e(a,x),o=!J(r),i=o||a===t?r:await e(t,x);if(J(i))return{kind:"missing"};const s=Symbol("unreadable-managed-state"),l=Kr(i,n,s);return l===s?o?{kind:"deleted"}:{kind:"missing"}:J(l)?{kind:"deleted"}:{kind:"found",value:l}}async function Jr(e,t,n,a){const r=await we(e,t,a);return r.kind==="found"?r.value:n}const sm="jpdb-popup-reader-settings";function cm(e){return e===sm}function lm(e,t,n){return e===Or||um(t,n)?!0:dm(e,n)}function pe(){try{return lm(location.origin,location.hostname,location.pathname)}catch{return!1}}function um(e,t){return e==="hrussellzfac023.github.io"&&t.startsWith("/yomu-reader/")}function dm(e,t){return Cr(e)?t.includes("/study/")||t.includes("/newtab/"):!1}let ba;const qr={local:"yomu:web-storage-epoch:v1:local",session:"yomu:web-storage-epoch:v1:session"},fm=mm("local");function mm(e){return{getItem(t){const{storage:n,epoch:a}=Mt(),r=Sa(_e(n,Ot(t,a),`${e}Storage key "${t}"`),a);if(r!==null)return r;const o=Xr(e,t,a);return o?Sa(_e(n,o,`localStorage key "${t}"`),a):null},setItem(t,n){on(t);const{storage:a,epoch:r}=Mt(),o=r.generation===0?n:JSON.stringify(xn(n,r));gm(a,Ot(t,r),o,`${e}Storage key "${t}"`),wa(e,t,r),ka(e,r)},removeItem(t){on(t);const{storage:n,epoch:a}=Mt();Qr(n,Ot(t,a),`${e}Storage key "${t}"`,`${e}Storage retained managed key "${t}".`),wa(e,t,a),ka(e,a)}}}function Xr(e,t,n){if(e!=="local"||!ba||ba==="standalone")return null;const a=Hn("local");return _e(a,qr.local,"localStorage earlier epoch marker")===H(n)?Zr(t,n):null}function wa(e,t,n){const a=pe()?null:Xr(e,t,n);a&&Qr(Hn("local"),a,`localStorage key "${t}"`,`localStorage retained earlier managed key "${t}".`)}function Qr(e,t,n,a){if(pm(e,t,n),_e(e,t,n)!==null)throw new Error(a)}function Sa(e,t){if(e===null||t.generation===0)return e;try{const n=Symbol("unreadable-managed-web-storage"),a=Kr(JSON.parse(e),t,n);
2return typeof a=="string"?a:null}catch{return null}}function Mt(e){throw new Error("Managed web storage has not passed its epoch barrier.")}function ka(e,t){if(_e(Hn(e),qr[e],`${e}Storage epoch marker`)!==H(t))throw new Error(`${e}Storage is not certified for the captured managed-state epoch.`)}function Ot(e,t){return Zr(e,t)}function Zr(e,t){return on(e),t.generation===0?e:`${Vr}${encodeURIComponent(H(t))}:${encodeURIComponent(e)}`}function on(e){if(!Tn(e)||An(e))throw new TypeError(`Managed web storage requires a logical Yomu key, received "${e}".`)}function Hn(e){try{const t=e==="local"?localStorage:sessionStorage;if(!t)throw new Error(`${e}Storage is unavailable.`);return t}catch(t){throw new Error(`${e}Storage is unavailable.`,{cause:t})}}function _e(e,t,n){try{return e.getItem(t)}catch(a){throw new Error(`${n} could not be read.`,{cause:a})}}function gm(e,t,n,a){try{e.setItem(t,n)}catch(r){throw new Error(`${a} could not be written.`,{cause:r})}if(_e(e,t,a)!==n)throw new Error(`${a} failed read-back verification.`)}function pm(e,t,n){try{e.removeItem(t)}catch(a){throw new Error(`${n} could not be removed.`,{cause:a})}}const hm="yomu:state-epoch-lease:v1:",eo="yomu:lease:",vm=5e3,Bn=6e4,ym=20,bm=1500;class Ct extends Error{constructor(n){super(`Storage lease lapsed before it was renewed: ${n}`);I(this,"name","StorageLeaseLapsedError")}}function wm(e){return e instanceof Error&&e.name==="StorageLeaseLapsedError"}const sn=new Set,jt=new Set,xt=new Map;function to(e){for(const t of sn)t.guards(e)&&t.fenceWrite()}async function Sm(e,t,n,a){const r=new km(n.onWait),i=!a.hostedOrigin&&no(a.backend)?n.leaseMs??Bn:void 0;try{return await Pm(e,()=>Em(e,()=>(r.end(),t()),n,a,r),r,i)}finally{r.end()}}class km{constructor(t){I(this,"state","running");I(this,"timer");this.onWait=t}blocked(){!this.onWait||this.state!=="running"||(this.state="blocked",this.timer=setTimeout(()=>{var t;this.state="told",(t=this.onWait)==null||t.call(this,!0)},bm))}passed(){this.state==="blocked"&&(clearTimeout(this.timer),this.state="running")}end(){var t;clearTimeout(this.timer),this.state==="told"&&((t=this.onWait)==null||t.call(this,!1)),this.state="ended"}}async function Em(e,t,n,a,r){const{getValue:o}=a.backend,i=await a.captureEpoch(o);await a.assertMutationFence(o,i);const s=no(a.backend);if(!s){const p=await t();return await a.assertMutationFence(o,i),p}const l=Dt(n.leaseMs,Bn,1e3,10*6e4);return new Lm({guards:n.guards,prefix:`${eo}${ro(e)}:`,epoch:a.epochToken(i),io:s,fence:()=>a.assertMutationFence(o,i),leaseMs:l,pollMs:Dt(n.pollMs,20,1,1e3),timeoutMs:Dt(n.timeoutMs,9e4,l,15*6e4),timeoutMessage:`Timed out waiting for storage lease: ${e}`,wait:r}).run(t)}function no(e){const{getValue:t,setValue:n,deleteValue:a,listValues:r}=e;return[t,n,a,r].every(Boolean)?e:null}class Lm{constructor(t){I(this,"key");I(this,"startedAt",Date.now());I(this,"promptLandingMs");I(this,"claim");I(this,"liveUntil",0);I(this,"roundTripMs",0);this.lease=t;const n=cn();this.key=`${t.prefix}${n}`,this.promptLandingMs=Math.min(1e3,Math.floor(t.leaseMs/5)),this.claim={version:1,claimId:cn(),owner:n,epoch:t.epoch,choosing:!0,ticket:0,leaseUntil:0}}async run(t){jt.add(this.claim.owner);try{return await this.waitForTurn(),await this.hold(t)}finally{const{getValue:n,deleteValue:a}=this.lease.io;try{await La(this.key,this.claim,n,a)}catch(r){Ht("GM storage lease release failed",this.key,r)}jt.delete(this.claim.owner)}}leaseMs(){const{leaseMs:t}=this.lease;return Math.min(t+ym*this.roundTripMs,Math.max(t,Bn))}live(){return Date.now()+Math.max(this.promptLandingMs,2*this.roundTripMs)<this.liveUntil}async waitForTurn(){var n;const{lease:t}=this;for(;;){if(await t.fence(),Date.now()-this.startedAt>=t.timeoutMs)throw new Error(t.timeoutMessage);try{this.live()?this.liveUntil-Date.now()<=this.leaseMs()/2&&await this.writeClaim():await this.queue()}catch(r){if(r instanceof Ct)continue;throw r}const a=await this.claimsAhead();if(!a.length&&this.live())return;a.some(r=>!jt.has(r.owner))&&((n=t.wait)==null||n.blocked()),await _m(t.pollMs)}}async queue(){const{prefix:t,epoch:n,io:{listValues:a,getValue:r}}=this.lease;await this.writeClaim({choosing:!0,ticket:0},!0);const i=(await Ea(t,a,r,n,Date.now())).reduce((s,l)=>Math.max(s,l.ticket),0);await this.writeClaim({choosing:!1,ticket:i+1})}async claimsAhead(){const{prefix:t,epoch:n,io:{listValues:a,getValue:r}}=this.lease,{owner:o,ticket:i}=this.claim;return(await Ea(t,a,r,n,Date.now())).filter(l=>l.owner!==o&&(l.choosing||l.ticket<i||l.ticket===i&&l.owner.localeCompare(o)<0))}async writeClaim(t={},n=!1){const{getValue:a,setValue:r}=this.lease.io;if(!n&&!this.live())throw new Ct(this.key);const o=Date.now(),i={...this.claim,...t,leaseUntil:o+this.leaseMs()};this.claim=i;try{await r(this.key,i);const s=Date.now();this.liveUntil=i.leaseUntil,await He(this.key,i,a),this.roundTripMs=Tm(s-o,Date.now()-s,this.lease.leaseMs)}catch(s){throw await this.rollBack(),s}}async rollBack(){const{getValue:t,deleteValue:n}=this.lease.io;await La(this.key,this.claim,t,n).catch(a=>{Ht("GM storage lease rollback failed",this.key,a)})}async renew(t,n){n||await He(this.key,this.claim,this.lease.io.getValue);do await this.writeClaim();while(t());await this.lease.fence().catch(async a=>{throw await this.rollBack(),a})}async hold(t){const{lease:n,key:a}=this,{getValue:r}=n.io,o=Math.max(250,Math.floor(n.leaseMs/3));let i=!0,s,l=!1,p;const k=()=>i&&this.liveUntil-Date.now()<=this.leaseMs()*5/6,h=(V=!1)=>
2{s||p||!k()||(p=this.renew(k,V).catch(j=>{s??(s={error:j}),Ht("GM storage lease renewal failed",a,j)}).finally(()=>{p=void 0}))},y=n.guards&&{guards:n.guards,fenceWrite:()=>{if(!s&&!this.live()&&(s={error:new Ct(a)}),s)throw l=!0,s.error;h()}};y&&sn.add(y);const _=setInterval(()=>h(),o);h(!0);let R;try{await n.fence(),await He(a,this.claim,r);const V=await t();await n.fence(),await He(a,this.claim,r),R={value:V}}catch(V){R={error:V}}finally{i=!1,y&&sn.delete(y),clearInterval(_),await p}if("error"in R)throw R.error;if(s&&(!y||l))throw s.error;return R.value}}async function Ea(e,t,n,a,r){const o=(await t()).filter(s=>s.startsWith(e));return(await Promise.all(o.map(s=>n(s,null)))).flatMap(s=>{const l=Gn(s);return l&&l.epoch===a&&l.leaseUntil>r?[l]:[]})}function Gn(e){return!Nm(e)||e.version!==1||typeof e.owner!="string"||e.claimId!==void 0&&typeof e.claimId!="string"||e.epoch!==void 0&&typeof e.epoch!="string"||typeof e.choosing!="boolean"||!Number.isSafeInteger(e.ticket)||e.ticket<0||!Number.isSafeInteger(e.leaseUntil)?null:{version:1,claimId:e.claimId||e.owner,owner:e.owner,epoch:e.epoch||"0:legacy",choosing:e.choosing,ticket:e.ticket,leaseUntil:e.leaseUntil}}async function He(e,t,n){const a=Gn(await n(e,null));if(!a||!ao(a,t))throw new Error(`Storage lease ownership was lost: ${e}`)}async function La(e,t,n,a){const r=Gn(await n(e,null));r&&ao(r,t)&&await a(e)}function ao(e,t){return e.claimId===t.claimId&&e.owner===t.owner&&e.epoch===t.epoch}function ro(e){const t=e.trim().replaceAll(/[^a-z0-9._-]+/giu,"-").slice(0,80);if(!t)throw new TypeError("Storage lease name is required.");return t}function Dt(e,t,n,a){if(e===void 0)return t;if(!Number.isSafeInteger(e)||e<n||e>a)throw new TypeError("Invalid storage lease option.");return e}function _m(e){return new Promise(t=>setTimeout(t,e))}function Tm(e,t,n){const a=Math.max(e,t);return a<=n/4?a:Math.min(e,t)}function Am(){return typeof navigator>"u"?void 0:navigator.locks}async function Pm(e,t,n,a){const r=Am();if(!r)return t();const o=`yomu:${ro(e)}`;_a(o,1)||n==null||n.blocked();try{return await Rm(r,o,()=>(n==null||n.passed(),t()),a)}finally{_a(o,-1)}}function _a(e,t){const n=xt.get(e)??0;return n+t>0?xt.set(e,n+t):xt.delete(e),n}async function Rm(e,t,n,a){if(a===void 0)return e.request(t,{},n);const r=new AbortController,o=setTimeout(()=>r.abort(),a);let i=!1;try{return await e.request(t,{signal:r.signal},()=>(i=!0,clearTimeout(o),n()))}catch(s){if(i)throw s;return n()}finally{clearTimeout(o)}}function Nm(e){return!!(e&&typeof e=="object"&&!Array.isArray(e))}function cn(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`}function Ht(e,t,n){typeof console<"u"&&console.debug("[Yomu] Storage",e,{key:t,error:n})}const $m=new Set(["yomu:factory-reset-signal",Z,"yomu:local-storage-provenance:v1","__yomu_cloud_settings_sync_pending_action"]);function Im(e){return Tn(e)&&!Td(e)&&!An(e)&&!e.startsWith(hm)&&!e.startsWith(eo)&&!$m.has(e)}function q(e,t){try{const n=localStorage.getItem(e);return n==null?t:JSON.parse(n)}catch{return t}}function Vm(e,t){try{localStorage.setItem(e,JSON.stringify(t))}catch{}}function oo(e){try{localStorage.removeItem(e)}catch{}}function Mm(e){try{sessionStorage.removeItem(e)}catch{}}function Om(e,t){try{return e.getItem(t)!==null}catch{return!1}}function io(e,t){try{const n=JSON.stringify(t);if(n===void 0)throw new Error("value is not JSON-serializable");if(localStorage.setItem(e,n),localStorage.getItem(e)!==n)throw new Error("read-back did not match");return n}catch(n){throw ee(e,"localStorage write failed",n)}}function ee(e,t,...n){const a=n.map(r=>r instanceof Error?r.message:String(r)).filter(Boolean).join("; ");return new Error(`${t} for "${e}"${a?`: ${a}`:""}`)}const et="jpdb-popup-reader-settings",so=["jpdb-reader-settings","yomu-reader-settings","yomu-settings","yomu:explicit-user-settings:v1"],Cm="yomu:settings-intent:v2",jm="yomu:prefer-japanese-site-language:v1",xm="yomu:prefer-japanese-site-language",Dm=new Set([et,...so,Cm,jm,xm]);function ht(e){return Dm.has(e)}const Ta=["showFurigana","furiganaMode","showPitchAccent","wordUnderlineColorSource","subtitlePlayerEnabled","subtitleAutoDetect","subtitleOverlayVisible","subtitleControlsMode","subtitleTranscriptVisible","ocrEnabled","ocrVideoPauseFrames","ocrProvider","ocrOverlayTheme","preferJapaneseSiteLanguage"],Hm={
2showFurigana:!0,furiganaMode:"all",showPitchAccent:!0,wordUnderlineColorSource:"pitch",subtitlePlayerEnabled:!0,subtitleAutoDetect:!0,subtitleOverlayVisible:!0,subtitleControlsMode:"always",subtitleTranscriptVisible:!1,ocrEnabled:!0,ocrVideoPauseFrames:!0,ocrProvider:"google-lens",ocrOverlayTheme:"auto",preferJapaneseSiteLanguage:!1},Bm={showFurigana:!0,furiganaMode:"all",showPitchAccent:!0},Aa={interfaceLanguage:new Set(["auto","en","ja"]),theme:new Set(["auto","dark","light"])},Gm=/^#[0-9a-f]{3}(?:[0-9a-f]{3})?$/iu;function zm(e){const t=Object.entries(e).filter(([n,a])=>n!=="learningTargetChosen"||a!==!1);return t.every(co)||Pa(e,t,Bm)||Pa(e,t,Hm)}function Fm(e){let t;try{t=JSON.parse(e)}catch{return!1}return typeof t=="object"&&t!==null&&!Array.isArray(t)&&zm(t)}function Pa(e,t,n){return Object.entries(n).every(([a,r])=>e[a]===r)&&t.every(a=>Object.hasOwn(n,a[0])||co(a))}function co([e,t]){return e==="accentColor"?typeof t=="string"&&Gm.test(t):Object.hasOwn(Aa,e)&&Aa[e].has(t)}function Te(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}const Fe="yomu:local-storage-provenance:v1",Um="yomu:prefer-japanese-site-language:v1";function tt(e){try{const t=localStorage.getItem(e),n=vt()[e];return{serializedValue:t,provenance:n?{...n}:null}}catch(t){throw ee(e,"Local fallback read failed",t)}}function ln(e,t){return!!(t&&e.serializedValue===t.serializedValue&&Wm(e.provenance,t.provenance))}function Wm(e,t){return e===null?t===null:t!==null&&e.epoch===t.epoch&&e.fingerprint===t.fingerprint}function lo(e,t){try{if(t.serializedValue===null?localStorage.removeItem(e):localStorage.setItem(e,t.serializedValue),localStorage.getItem(e)!==t.serializedValue)throw new Error("read-back did not match")}catch(n){throw ee(e,"Local fallback restore failed",n)}Fn(e,t.provenance,!0)}function uo(e,t,n){const a=tt(e);try{const r=io(e,t);Fn(e,{epoch:H(n),fingerprint:mo(r)},!0)}catch(r){try{lo(e,a)}catch(o){throw new AggregateError([r,o],`Local fallback publication and rollback failed for "${e}".`)}throw r}}function Km(e){oo(e),Mm(e),Fn(e,null)}function Ym(e,t,n,a){if(!n)return Km(e);if(!a)throw ee(e,"Managed storage cannot restore its localStorage fallback");uo(e,t,a)}function zn(e,t){const n=fo(e);if(n===null)return!1;const a=vt()[e];return a?a.epoch===H(t)&&a.fingerprint===mo(n):t.generation===0}function Jm(e,t,n){const a=fo(e);if(a===null)return!1;const r=vt()[e];return r?r.epoch===H(t):t.generation===0||n(a)}function Fn(e,t,n=!1){const a=vt();qm(a,e,t)&&Xm(a,n)}function qm(e,t,n){return n?(e[t]=n,!0):t in e?(delete e[t],!0):!1}function Xm(e,t){if(Object.keys(e).length){const n={version:1,values:e};t?io(Fe,n):Vm(Fe,n);return}oo(Fe)}function vt(){const e=q(Fe,null);if(!Qm(e))return{};const t={};for(const[n,a]of Object.entries(e.values)){const r=Zm(a);r&&(t[n]=r)}return t}function Qm(e){return!Te(e)||e.version!==1?!1:Te(e.values)}function Zm(e){return!Te(e)||typeof e.epoch!="string"||typeof e.fingerprint!="string"?null:{epoch:e.epoch,fingerprint:e.fingerprint}}function fo(e){if(e===Um)return null;try{return localStorage.getItem(e)}catch{return null}}function mo(e){let t=2166136261;for(let n=0;n<e.length;n++)t=Math.imul(t^e.charCodeAt(n),16777619);return`${e.length}:${(t>>>0).toString(16).padStart(8,"0")}`}const Un="jpdb-popup-reader-settings",Wn="yomu:settings-intent:v2",eg="yomu:srs-local:v2:index",tg=[eg,"yomu:prefer-japanese-site-language:v1",Wn,Un],ng=["__yomuSettingsPersistenceTransactionV1","__yomuSettingsPersistenceCommitV1"],ag="__yomuHostedPendingGmPatch",rg="yomu:web-owner:v2:";let X;function go(e,t){return pe()&&cg(e)&&zn(e,t)}function og(e,t,n){const a=H(t);if((X==null?void 0:X.token)===a)return X.done;const r=ig(e,t,n).finally(()=>{(X==null?void 0:X.done)===r&&(X=void 0)});return X={token:a,done:r},r}async function ig(e,t,n){if(!pe())return;const a=await we(e,Un,t);if(a.kind==="found"&&!ug(a.value))return;const r=a.kind==="missing"&&(await we(e,Wn,t)).kind==="missing";for(const o of sg(t)){if(ht(o)&&!r||(await we(e,o,t)).kind!=="missing")continue;const i=q(o,x);J(i)||await n(o,lg(o,i))}}function sg(e){const t=[];for(let a=0;a<localStorage.length;a++){const r=localStorage.key(a);r&&go(r,e)&&t.push(r)}const n=a=>tg.indexOf(a);return t.sort((a,r)=>n(a)-n(r)||a.localeCompare(r))}function cg(e){return Im(e)&&!e.startsWith(rg)&&!so.includes(e)&&Kf().some(t=>t.kind==="gm"&&(t.key===e||t.prefix!==void 0&&e.startsWith(t.prefix)))}function lg(e,t){if(!Te(t))return t;
2const n=Bt(t,ng);return e===Un?Bt(n,[ag,...Ta]):e===Wn&&Te(n.records)?{...n,records:Bt(n.records,Ta)}:n}function Bt(e,t){const n={...e};for(const a of t)delete n[a];return n}function ug(e){return Te(e)&&e.learningTargetChosen===!1}class dg{constructor(t,n){I(this,"receipts",new Map);I(this,"active",[]);I(this,"open",!0);this.storage=t,this.preserveLocalFallbackOnWriteFailure=n}async capture(t){const n=this.receipts.get(t);if(n)return n;const a=await this.storage.readAuthority(t),r=_g(t)?tt(t):void 0,o={key:t,previous:a,authorityTarget:a,localTarget:r?a:{existed:!1,value:null},localBefore:r,stagedAuthority:[],stagedLocal:[],interrupted:!1,restoreCapturedLocal:!0,active:!1};return this.receipts.set(t,o),o}adoptInterrupted(t,n,a=n){const r=t;r.authorityTarget=n,r.localTarget=a,r.interrupted=!0,r.restoreCapturedLocal=!!(r.localBefore&&r.localBefore.serializedValue!==(r.previous.existed?JSON.stringify(r.previous.value):null)),r.localBefore&&Na(r,r.localBefore,r.previous),this.activate(r)}async write(t,n){const a=t;this.activate(a);const r={existed:!0,value:n};a.stagedAuthority.push(n);try{await this.storage.writeAuthority(a.key,n,this.preserveLocalFallbackOnWriteFailure)}finally{a.localBefore&&Na(a,tt(a.key),r)}}async restore(t,n){const a=t;this.activate(a);const r=await po(this.storage,a,this.preserveLocalFallbackOnWriteFailure);if(r.length)throw new AggregateError(r,n)}commit(){this.open=!1}async rollback(t,n=!1){if(!this.open)return;this.open=!1;const a=await Ra(this.storage,this.active,n,this.preserveLocalFallbackOnWriteFailure);if(a.length)throw new AggregateError(a,`${t} for ${a.length} operation(s).`)}async reject(t,n,a=!1){if(!this.open)throw t;this.open=!1;const r=await Ra(this.storage,this.active,a,this.preserveLocalFallbackOnWriteFailure);throw r.length?new AggregateError([t,...r],`${n} and ${r.length} rollback operation(s) also failed.`):t}activate(t){if(!this.open)throw new Error("Managed storage write journal is already closed.");t.active||(t.active=!0,this.active.push(t))}}function fg(e,t=!1){return new dg(e,t)}async function Ra(e,t,n,a){const r=[];let o=!1;for(let i=t.length-1;i>=0;i--){if(o){const l=t[i];if(l.restoreCapturedLocal){const p=ho(l,r);vo(e,l,p,r)}continue}const s=await po(e,t[i],a);r.push(...s),n&&s.length&&(o=!0)}return r}async function po(e,t,n){const a=[];await mg(e,t,n,a);const r=ho(t,a);return vo(e,t,r,a),a}function ho(e,t){if(e.localBefore)try{return tt(e.key)}catch(n){t.push(n);return}}async function mg(e,t,n,a){const r=await hg(e,t.key,a);if(r&&gg(t,r,n)){if(!pg(t,r)){a.push(yo(t.key,"Managed storage value"));return}await vg(e,t,a)}}function gg(e,t,n){return n||!yt(t,e.authorityTarget)}function pg(e,t){return yt(t,e.authorityTarget)||Eg(e,t)}async function hg(e,t,n){try{return await e.readAuthority(t)}catch(a){n.push(a);return}}async function vg(e,t,n){try{await e.restoreAuthority(t.key,t.authorityTarget)}catch(a){n.push(a)}}function vo(e,t,n,a){try{yg(e,t,n)}catch(r){a.push(r)}}function yg(e,t,n){if(!t.localBefore)return bg(e,t);if(n){if(wg(e,t,n),t.restoreCapturedLocal)return lo(t.key,t.localBefore);e.restoreLocalTarget(t.key,t.localTarget)}}function bg(e,t){t.interrupted||e.restoreLocalTarget(t.key,t.localTarget)}function wg(e,t,n){if(!Sg(e,t,n))throw yo(t.key,"Local fallback value")}function Sg(e,t,n){return kg(t,n)?!0:t.interrupted&&yt(e.readLocalTarget(t.key),t.localTarget)}function kg(e,t){return!!(e.localBefore&&ln(t,e.localBefore))||e.stagedLocal.some(n=>ln(t,n))}function Eg(e,t){return yt(t,e.previous)?!0:t.existed&&e.stagedAuthority.some(n=>Kn(t.value,n))}function Na(e,t,n){Lg(t,n)&&(e.stagedLocal.some(a=>ln(a,t))||e.stagedLocal.push(t))}function Lg(e,t){if(!t.existed)return e.serializedValue===null;if(e.serializedValue===null)return!1;try{return Kn(JSON.parse(e.serializedValue),t.value)}catch{return!1}}function _g(e){return!ht(e)||pe()}function yt(e,t){return e.existed===t.existed&&(!e.existed||Kn(e.value,t.value))}function Kn(e,t){if(Object.is(e,t))return!0;try{return JSON.stringify(e)===JSON.stringify(t)}catch{return!1}}function yo(e,t){return new Error(`${t} "${e}" changed after staging; rollback left the newer value intact.`)}
2function ce(){if(ae())return null;const e=bt();if(e)return e;const t=pt();return t?(n,a)=>t.getValue(n,a):null}function bt(){return ae()?null:Ag()??Tg()??Wg()}function Tg(){return typeof GM_getValue=="function"?GM_getValue:null}function Ag(){var t;const e=(t=globalThis.GM)==null?void 0:t.getValue;return typeof e=="function"?e.bind(globalThis.GM):null}function nt(){if(ae())return null;const e=Pg();return e||(bt()?null:Ig())}function Pg(){return ae()?null:Rg()??Ng()??$g()}function Rg(){return typeof GM_setValue=="function"?GM_setValue:null}function Ng(){var t;const e=(t=globalThis.GM)==null?void 0:t.setValue;return typeof e=="function"?e.bind(globalThis.GM):null}function $g(){const e=wt();return e?(t,n)=>e.set({[t]:n}):null}function Ig(){const e=pt();return e?(t,n)=>e.setValue(t,n):null}function bo(){if(ae())return null;const e=Vg();return e||(bt()?null:jg())}function Vg(){return ae()?null:Mg()??Og()??Cg()}function Mg(){return typeof GM_deleteValue=="function"?GM_deleteValue:null}function Og(){var t;const e=(t=globalThis.GM)==null?void 0:t.deleteValue;return typeof e=="function"?e.bind(globalThis.GM):null}function Cg(){const e=wt();return e?t=>e.remove(t):null}function jg(){const e=pt();return e?t=>e.deleteValue(t):null}function xg(){if(ae())return null;const e=Dg();return e||(bt()?null:zg())}function Dg(){return Bg()??Hg()??Gg()}function Hg(){if(typeof GM_listValues=="function")return GM_listValues;const e=globalThis.GM_listValues;return typeof e=="function"?e:null}function Bg(){var t;const e=(t=globalThis.GM)==null?void 0:t.listValues;return typeof e=="function"?e.bind(globalThis.GM):null}function Gg(){const e=wt();return e?async()=>e.getKeys?e.getKeys():Object.keys(await e.get(null)):null}function zg(){const e=pt();return e?()=>e.listValues():null}function wt(){return Fg(e=>{var t;return(t=e.storage)==null?void 0:t.local})}function Fg(e){const t=globalThis;return $a(t.browser,e)??$a(t.chrome,e)??null}function $a(e,t){var n;return(n=e==null?void 0:e.runtime)!=null&&n.id?t(e):void 0}
2function ae(){return Ug()?!(globalThis.__YOMU_EXTENSION_STUDY_STORAGE_RUNTIME__===!0)||typeof GM_getValue!="function"||typeof GM_setValue!="function":!1}function Ug(){var e;try{const t=((e=globalThis.location)==null?void 0:e.protocol)??"";return/^(?:chrome|moz|safari-web)-extension:$/.test(t)}catch{return!1}}function Wg(){const e=wt();return e?Kg(e):null}function Kg(e){return async(t,n)=>{const a=(await e.get(t))[t];return a===void 0?n:a}}const Ia="yomu:factory-reset-signal",Me=rm();async function U(e){const t=e?async()=>{const a=await rn(e);return a.generation===0?void 0:a}:async()=>q(Z,void 0);return await Me.assertCurrent(t)}async function wo(e,t,n,a,r){await dn(a,n);const o=xn(t,n),i=Dn(e,n);to(e),await r(i,o),await dn(a,n)}async function Yg(e,t,n,a,r){const o=Dn(e,t);if(to(e),o===e){if(!r)throw new Error("Managed storage cannot delete its legacy value.");await r(e),await U(n);return}if(!a)throw new Error("Managed storage cannot persist a deletion tombstone.");if(await a(o,xn(x,t)),await U(n),r){try{await r(e)}catch(i){St("Managed GM logical-key delete mirror failed",e,i)}await U(n)}}function Jg(e){const t=e(Z,x);if(Pd(t))return Promise.resolve(t).catch(a=>St("Synchronous epoch probe could not read async storage",Z,a)),null;const n=oe(J(t)?void 0:t);return Me.assertCurrentSync(n.generation===0?void 0:n),n}function So(){try{const e=typeof GM_getValue=="function"?GM_getValue:null;if(e){const t=Jg(e);return t||(Me.current()??null)}return ce()?Me.current()??null:Me.assertCurrentSync(q(Z,void 0))}catch(e){return St("Managed state epoch sync read failed",Z,e),null}}function qg(){return ce()!==null}function Xg(e,t){const n=So();return!n||!zn(e,n)?t:q(e,t)}async function ko(e,t){const n=ce();if(!n)return ae()?t:Zg(e,t,await U(null));const a=await U(n);return Qg(n,e,t,a)}async function Eo(e,t){const n=ce();if(!n)return t;const a=await U(n);return Jr(n,e,t,a)}async function Qg(e,t,n,a){const r=await we(e,t,a);if(r.kind==="found")return r.value;if(r.kind==="deleted"||!go(t,a))return n;await og(e,a,_o).catch(i=>St("Website-only store adoption failed",t,i));const o=await we(e,t,a);return o.kind==="found"?o.value:n}function Lo(e,t,n){const a=zn(e,n)?q(e,x):x;return J(a)?t:a}function Zg(e,t,n){if(!ep(e))return Lo(e,t,n);if(!Jm(e,n,Fm))throw ee(e,"Hosted settings localStorage is present without matching provenance");return q(e,t)}function ep(e){return cm(e)&&pe()&&Om(localStorage,e)}async function tp(e,t,n={}){return Sm(e,t,n,{backend:np(),captureEpoch:U,assertMutationFence:dn,epochToken:H,hostedOrigin:pe()})}function np(){return{getValue:ce(),setValue:nt(),deleteValue:bo(),listValues:xg()}}async function _o(e,t){const n=ce(),a=nt();if(a)return ap(e,t,n,a);if(n)throw ee(e,"Installed storage has no writer");if(ae())throw ee(e,"Packaged Study storage adapter is unavailable");const r=await U(null);uo(e,t,r)}async function ap(e,t,n,a){let r;try{if(!n)throw new Error("Managed storage cannot validate its state epoch.");r=await U(n),await wo(e,t,r,n,a)}catch(o){throw nm(o)||wm(o)?o:ee(e,"GM storage write failed",o)}}const rp={readAuthority:ip,writeAuthority:(e,t)=>_o(e,t),restoreAuthority:(e,t)=>sp(e,t.value,t.existed),readLocalTarget:e=>un(Xg(e,x)),restoreLocalTarget:(e,t)=>cp(e,t.value,t.existed)};function op(e=!1){return fg(rp,e)}async function ip(e){if(ht(e)){const r=pe()?await ko(e,x):await Eo(e,x);return un(r)}const t=ce(),n=await U(t),a=t?await Jr(t,e,x,n):Lo(e,x,n);return un(a)}function un(e){return{existed:!J(e),value:J(e)?null:e}}
2async function sp(e,t,n){const a=ce();if(!a)return;const r=await U(a);if(n){const o=nt();if(!o)throw ee(e,"Managed storage cannot restore its authoritative value");await wo(e,t,r,a,o);return}await Yg(e,r,a,nt(),bo())}function cp(e,t,n){Ym(e,t,n,So())}function lp(e){const t=typeof e=="string"?gp(e):e;if(!fp(t))return null;const n=t;return mp(n.phase)?{id:n.id,phase:n.phase,at:up(n.at),href:dp(n.href)}:null}function up(e){return typeof e=="number"&&Number.isFinite(e)?e:Date.now()}function dp(e){return typeof e=="string"?e:""}function fp(e){var t;return!!(e&&typeof e=="object"&&!Array.isArray(e)&&typeof e.id=="string"&&((t=e.id)!=null&&t.trim()))}function mp(e){return e==="prepare"||e==="complete"}function gp(e){try{return JSON.parse(e)}catch{return null}}async function dn(e,t){const n=e?await rn(e):oe(q(Z,void 0));if(!an(t,n))throw new nn(t,n);const a=e?await e(Ia,x):q(Ia,x),r=J(a)?null:lp(a);if((r==null?void 0:r.phase)==="prepare"||Yf())throw new Error("Managed state writes are suppressed during factory reset.");const o=e?await rn(e):oe(q(Z,void 0));if(!an(t,o))throw new nn(t,o)}function St(e,t,n){typeof console<"u"&&console.debug("[Yomu] Storage",e,{key:t,error:n})}const To=24*60*60*1e3,pp=3,Ao=6,hp=14*To,vp=30*To,Ne=new Map;function yp(e){const t=Po(e.storage);if(!t)return!1;const n=Ro(e),a=Ne.get(n);if(a!==void 0)return a;const r=No(e),o=$o(t,e.storageKey,e.version);if(o.dismissedUntil>r)return Ne.set(n,!1),!1;o.visits+=1;const i=Math.max(0,Math.floor(e.firstQuietVisits??pp))+1;o.nextEligibleVisit=Math.max(o.nextEligibleVisit,i);const s=o.visits>=o.nextEligibleVisit&&o.hiddenUntil<=r;return s&&(o.lastShownAt=r,o.hiddenUntil=r+Math.max(0,e.impressionCooldownMs??hp),o.nextEligibleVisit=o.visits+Math.max(1,Math.floor(e.visitInterval??Ao))),Io(t,e.storageKey,o)?(Ne.set(n,s),s):(Ne.set(n,!1),!1)}function bp(e){const t=Po(e.storage),n=Ro(e);if(Ne.set(n,!1),!t)return;const a=No(e),r=$o(t,e.storageKey,e.version),o=Math.max(0,e.dismissMs??vp),i=Math.max(1,Math.floor(e.visitInterval??Ao));r.dismissedUntil=a+o,r.hiddenUntil=Math.max(r.hiddenUntil,r.dismissedUntil),r.nextEligibleVisit=Math.max(r.nextEligibleVisit,r.visits+i),Io(t,e.storageKey,r)}function Po(e){if(e!==void 0)return e;try{return typeof localStorage>"u"?null:fm}catch{return null}}function Ro(e){return`${e.storageKey}
3${e.version}`}function No(e){return typeof e.now=="number"&&Number.isFinite(e.now)?e.now:Date.now()}function $o(e,t,n){try{const a=e.getItem(t);if(!a)return Gt(n);const r=JSON.parse(a);return!r||r.version!==n?Gt(n):{version:n,visits:Va(r.visits),nextEligibleVisit:Va(r.nextEligibleVisit),hiddenUntil:zt(r.hiddenUntil),dismissedUntil:zt(r.dismissedUntil),lastShownAt:zt(r.lastShownAt)}}catch{return Gt(n)}}function Io(e,t,n){try{return e.setItem(t,JSON.stringify(n)),!0}catch{return!1}}function Gt(e){return{version:e,visits:0,nextEligibleVisit:0,hiddenUntil:0,dismissedUntil:0,lastShownAt:0}}function Va(e){return typeof e=="number"&&Number.isFinite(e)&&e>0?Math.floor(e):0}function zt(e){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:0}const wp="__yomuHostedRuntimeGraph",Sp=/^greasyfork\/[a-z\d][a-z\d.-]*\.([a-f\d]{12})\.user\.js$/u,Ma="yomu.user.js",Vo=/^sha256-([A-Za-z\d+/]{43}=)$/u,kp=new Set(["error","loaded","loading"]),Be=new WeakMap;function Ep(e=globalThis){const t=e[wp],n=Yn(t,"Hosted runtime graph is missing or unsupported.");if(n.schemaVersion!==1)throw new Error("Hosted runtime graph is missing or unsupported.");const a=Rp(n.dependencies),r=$p(n.core,n.revision),o=[...a.map(i=>i.path),r.path];if(new Set(o).size!==o.length)throw new Error("Hosted runtime graph paths must be unique.");return Object.freeze({revision:r.pathHash,scripts:Object.freeze([...a.map(({pathHash:i,...s})=>Object.freeze(s)),Object.freeze({integrity:r.integrity,path:r.path,role:"core"})])})}function Lp(e){const t=e.document??document,n=Be.get(t);if(n)return n;const a=Ep(e.realm),r=_p(a,t,e);return Be.set(t,r),r.catch(()=>{Be.get(t)===r&&Be.delete(t)}),r}async function _p(e,t,n){const a=[];for(const[o,i]of e.scripts.entries()){const s=`${n.scriptIdPrefix}-${i.role}-${o}`,l=n.resolveCandidates(i);a.push(await Tp(t,s,i,l))}const r=a.at(-1);if(!(r instanceof HTMLScriptElement)||r.dataset.yomuHostedRuntimeRole!=="core")throw new Error("Hosted runtime graph did not finish with core.");return Object.freeze({core:r,scripts:Object.freeze(a)})}async function Tp(e,t,n,a){for(const r of Ip(a,n.role))try{return await Ap(e,t,r,n)}catch{Vp(e,t,r,n)}throw new Error(`Hosted runtime ${n.role} failed integrity or network loading.`)}function Ap(e,t,n,a){const r=Pp(e,t,n,a);if(r)return r;const o=e.createElement("script");return o.id=t,o.async=!1,o.crossOrigin="anonymous",o.integrity=a.integrity,o.src=n,o.dataset.yomuHostedRuntimeRole=a.role,o.dataset.yomuHostedRuntimeState="loading",(e.head??e.documentElement).append(o),Mo(o)}function Pp(e,t,n,a){const r=e.getElementById(t);if(r){if(!(r instanceof HTMLScriptElement))throw new Error(`Hosted runtime script id ${t} is already owned by another element.`);if(!Oo(e,r,n,a))throw new Error(`Hosted runtime script id ${t} does not match the requested asset.`);return Mo(r)}}function Mo(e){return e.dataset.yomuHostedRuntimeState==="loaded"?Promise.resolve(e):e.dataset.yomuHostedRuntimeState==="error"?Promise.reject(new Error("Hosted runtime script failed.")):new Promise((t,n)=>{e.addEventListener("load",()=>{e.dataset.yomuHostedRuntimeState="loaded",t(e)},{once:!0}),e.addEventListener("error",()=>{e.dataset.yomuHostedRuntimeState="error",n(new Error("Hosted runtime script failed."))},{once:!0})})}function Rp(e){if(!Array.isArray(e)||e.length===0)throw new Error("Hosted runtime graph has no depen
3dencies.");return e.map((t,n)=>Np(t,n))}function Np(e,t){const n=Yn(e,`Hosted runtime dependency ${t} is invalid.`),a=at(n.path,`Hosted runtime dependency ${t} path is invalid.`),r=Sp.exec(a);if(!r)throw new Error(`Hosted runtime dependency ${t} path is unsafe.`);const o=r[1],i=Co(n.integrity,`Hosted runtime dependency ${t} integrity is invalid.`);if(jo(i)!==o)throw new Error(`Hosted runtime dependency ${t} filename and integrity disagree.`);return{integrity:i,path:a,pathHash:o,role:"dependency"}}function $p(e,t){const n=Yn(e,"Hosted runtime core is invalid.");if(at(n.path,"Hosted runtime core path is invalid.")!==Ma)throw new Error("Hosted runtime core path is invalid.");const r=Co(n.integrity,"Hosted runtime core integrity is invalid."),o=at(t,"Hosted runtime revision is invalid.");if(!/^[a-f\d]{12}$/u.test(o))throw new Error("Hosted runtime revision is invalid.");if(jo(r)!==o)throw new Error("Hosted runtime core revision and integrity disagree.");return{integrity:r,path:Ma,pathHash:o,role:"core"}}function Ip(e,t){const n=`Hosted runtime ${t} has no usable asset candidates.`;if(!Array.isArray(e))throw new Error(n);if(e.length===0)throw new Error(n);if(e.some(a=>!(a!=null&&a.trim())))throw new Error(n);return[...new Set(e)]}function Vp(e,t,n,a){const r=e.getElementById(t);r instanceof HTMLScriptElement&&Oo(e,r,n,a)&&r.dataset.yomuHostedRuntimeState==="error"&&r.remove()}function Oo(e,t,n,a){if(!kp.has(t.dataset.yomuHostedRuntimeState??""))return!1;const r=e.createElement("script");return r.src=n,r.integrity=a.integrity,r.crossOrigin="anonymous",r.dataset.yomuHostedRuntimeRole=a.role,Oa(t)===Oa(r)}function Oa(e){return[e.dataset.yomuHostedRuntimeRole,e.integrity,e.src,e.crossOrigin].join("\0")}function Co(e,t){const n=at(e,t);if(!Vo.test(n))throw new Error(t);return n}function jo(e){var n;const t=(n=e.match(Vo))==null?void 0:n[1];if(!t)return"";try{return Array.from(atob(t),a=>
3a.charCodeAt(0).toString(16).padStart(2,"0")).join("").slice(0,12)}catch{return""}}function at(e,t){if(typeof e!="string"||!e.trim())throw new Error(t);return e}function Yn(e,t){if(!Mp(e))throw new Error(t);return e}function Mp(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function rt(e,t){return!!e&&Object.prototype.hasOwnProperty.call(e,t)}function Oe(e){return e&&typeof e=="object"?e:null}const ot="yomu:settings-intent:v2";function Op(e){const t=Ft(e),n=t&&Ft(t.records);if(!n||!Ca(t.revision))return null;const a={};let r=t.revision;for(const[o,i]of Object.entries(n)){const s=Ft(i);if(!s||!Ca(s.seq))return null;const l=s.seq;a[o]=rt(s,"value")?{seq:l,value:s.value}:{seq:l},r=Math.max(r,l)}return{revision:r,records:a}}function Ca(e){return typeof e=="number"&&Number.isSafeInteger(e)&&e>=0}function Ft(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:null}function Cp(e,t,n){if(!t.length)return e;const a={...e.records};let r=e.revision;for(const o of t){if(!rt(n,o))continue;const i=n[o];a[o]=xp(i)?{seq:++r,value:i}:{seq:++r}}return r===e.revision?e:{revision:r,records:a}}function jp(e,t){const n=Object.keys(t.records);if(!n.length)return e;const a={...e};let r=!1;for(const o of n){const i=t.records[o];!rt(i,"value")||!rt(a,o)||Dp(a[o],i.value)||(a[o]=i.value,r=!0)}return r?a:e}function xp(e){return e==null||typeof e=="boolean"||typeof e=="number"||typeof e=="string"}function Dp(e,t){return e===t||JSON.stringify(e)===JSON.stringify(t)}const Hp="__yomuSettingsPersistenceTransactionV1",Ce="__yomuSettingsPersistenceCommitV1";function Bp(e,t){const n=xo(e),{settings:a,intentLedger:r}=n?{settings:Ba(n.settings),intentLedger:Ba(n.intentLedger)}:{settings:e,intentLedger:t};return Gp(a,r)}function Gp(e,t){const n=ja(e);return n!==null&&n===ja(t)?{settings:Da(e),intentLedger:Da(t)}:null}function ja(e){const t=Oe(e);if(t)return zp(t)}function zp(e){if(!Object.hasOwn(e,Ce))return;const t=e[Ce];return typeof t=="string"&&t?t:null}function xa(e,t){return{...e,[Ce]:t}}function Da(e){const t=Oe(e);if(!t||!Object.hasOwn(t,Ce))return e;const n={...t};return delete n[Ce],n}function xo(e){const t=Oe(e),n=t&&Oe(t[Hp]);return n?Fp(n):null}function Fp(e){if(e.version!==1)return null;const t=Ha(e.settings),n=Ha(e.intentLedger);return t&&n?{version:1,settings:t,intentLedger:n}:null}function Ha(e){const t=Oe(e);return t&&typeof t.existed=="boolean"&&typeof t.localFallbackExisted=="boolean"?{existed:t.existed,previousValue:t.previousValue,localFallbackExisted:t.localFallbackExisted,localFallbackValue:t.localFallbackValue}:null}function Ba(e){return e.existed?e.previousValue:null}const Up=new Set;let Ut=0;function Wp(e){Ut=Math.max(0,Ut+(e?1:-1));for(const t of Up)try{t(Ut>0)}catch{}}const Kp="reader-settings-persistence",Yp={leaseMs:vm,guards:ht,onWait:Wp},Jp="__yomuSettingsPersistenceTransactionV1";async function qp(e){const t=await Xp(e);if(t)return t;throw new Error("Settings storage did not provide a stable committed snapshot.")}async function Xp(e){for(let t=0;t<3;t++){const n=await Qp(e);if(n)return n}return null}async function Qp(e){const t=await e(et,null),n=await e(ot,null),a=await e(ot,null),r=await e(et,null);if(!Zp(t,n,r,a))return null;const o=Bp(r,a);if(!o)return null;const i=o.intentLedger==null?{revision:0,records:{}}:Op(o.intentLedger);return i?{settings:o.settings,intentLedger:i}:null}function Zp(e,t,n,a){return Ka(e,n)&&Ka(t,a)}async function eh(e,t){const n=op(!0),a=await th(n);try{const r=cn();await n.write(a.settings.receipt,nh(a.settings,a.intentLedger)),await n.write(a.intentLedger.receipt,xa(e,r)),await n.write(a.settings.receipt,xa(t,r)),n.commit()}catch(r){await n.reject(r,"Settings persistence failed",!0)}}async function th(e){const t=await e.capture(et),n=Ga(t),a=xo(n.previousValue);if(!a)return{settings:n,intentLedger:Ga(await e.capture(ot))};const r=await e.capture(ot),o=Wa(t,a.settings),i=Wa(r,a.intentLedger);return e.adoptInterrupted(t,za(o),Fa(o)),e.adoptInterrupted(r,za(i),Fa(i)),{settings:o,intentLedger:i}}function Ga(e){const{existed:t,value:n}=e.previous;return{receipt:e,existed:t,previousValue:n,localFallbackExisted:t,localFallbackValue:n}}function za(e){return{existed:e.existed,value:e.previousValue}}function Fa(e){return{existed:e.localFallbackExisted,value:e.localFallbackValue}}function nh(e,t){const n=ah(e.previousValue)??{};return{...n,learningTargetChosen:n.learningTargetChosen===!0,onboardingSeen:typeof n.onboardingSeen=="boolean"?n.onboardingSeen:!1,[Jp]:{version:1,settings:Ua(e),intentLedger:Ua(t)}}}function Ua(e){return{existed:e.existed,previousValue:e.previousValue,localFallbackExisted:e.existed,localFallbackValue:e.previousValue}}function Wa(e,t){return{receipt:e,...t}}function Ka(e,t){try{return JSON.stringify(e)===JSON.stringify(t)}catch{return!1}}function ah(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:null}async function rh(e,t){await tp(Kp,async()=>{const n=qg()?Eo:ko,a=await qp(n);if(a.settings==null&&!t)return;const r=a.settings??{learningTargetChosen:!1,onboardingSeen:!1};if(typeof r!="object"||Array.isArray(r))throw new Error("Invalid hosted settings authority.");const o={...r,...e},i=Cp(a.intentLedger,t?Object.keys(e):[],o),s=jp(o,i);i===a.intentLedger&&JSON.stringify(s)===JSON.stringify(r)||await eh(i,s)},Yp)}const oh=[["visibility","hidden"],["overflow","visible"],["position","relative"],["display","inline-block"]],ih=".jpdb-reader-text-mirror";function sh(e,t){ch(e,ih,lh)}function ch(e,t,n,a){e.querySelectorAll(t).forEach(o=>{if(n(o))return;const i=o.parentElement;o.remove(),i&&uh(i)});const r=new Set;e.querySelectorAll(".jpdb-reader-word").forEach(o=>{if(n(o))return;const i=o.parentNode;
3i&&(r.add(i),o.replaceWith(o.ownerDocument.createTextNode(dh(o))))}),r.forEach(o=>{o.normalize()})}function lh(e){return!!e.closest('[data-jpdb-reader-root], [data-yomu-localize="off"]')}function uh(e){for(const[t,n]of oh)e.style.getPropertyValue(t)===n&&e.style.removeProperty(t)}function dh(e){let t="";return e.childNodes.forEach(n=>{t+=Do(n)}),t||e.textContent||""}function Do(e){return fh(e)?e.textContent??"":mh(e)?ph(e):""}function fh(e){return e.nodeType===Node.TEXT_NODE}function mh(e){return e instanceof HTMLElement&&!gh(e)}function gh(e){return e.matches('rt, rp, .jpdb-reader-furigana, .jpdb-reader-furi, .jpdb-ocr-furi, [data-jpdb-reader-surface-ignore="true"]')}function ph(e){let t="";return e.childNodes.forEach(n=>{t+=Do(n)}),t}function hh(e){const t=e.normalize("NFKC").trim().replace(/\s+/gu," ");if(!t||[...t].length>32||/[#\p{Cc}\p{Cf}\p{Cs}]/u.test(t))throw new TypeError("Class display name is invalid.");return t}function vh(e,t){const n=hh(e);if(!/^\d{6}$/u.test(t))throw new TypeError("Class discriminator is invalid.");return{displayName:n,discriminator:t,label:`${n}#${t}`}}function yh(e){const t=Ho(e,"Academy account"),n=vh(fn(t.displayName,"displayName"),wh(fn(t.displayTag,"displayTag")));if(n.label!==t.displayTag)throw new TypeError("Academy displayTag is invalid.");return{accountId:kh(t.accountId,"accountId"),identity:n,nameChosen:$e(t.nameChosen,"nameChosen"),avatarKey:Th(t.avatarKey),boardVisible:$e(t.boardVisible,"boardVisible"),shareAvatar:$e(t.shareAvatar,"shareAvatar"),academyAccess:$e(t.academyAccess,"academyAccess"),classes:Sh(t.classes,"classes").map(bh)}}function bh(e){const t=Ho(e,"Academy class");return{classId:Lh(t.classId),name:fn(t.name,"name"),role:Eh(t.role),boardHidden:$e(t.boardHidden,"boardHidden")}}function wh(e){const t=/#(\d{6})$/u.exec(e);if(!t)throw new TypeError("displayTag is invalid.");return t[1]??""}function Ho(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new TypeError(`${t} must be an object.`);return e}function Sh(e,t){if(!Array.isArray(e))throw new TypeError(`${t} must be an array.`);return e}function fn(e,t){if(typeof e!="string"||!e.trim())throw new TypeError(`${t} must be text.`);return e}function $e(e,t){if(typeof e!="boolean")throw new TypeError(`${t} must be boolean.`);return e}function kh(e,t){if(typeof e!="string"||!/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/iu.test(e))throw new TypeError(`${t} must be a UUID.`);return e}function Eh(e){if(e!=="learner"&&e!=="sensei")throw new TypeError("Unknown Academy class role.");return e}function Lh(e){if(typeof e!="string"||!/^[a-z0-9][a-z0-9-]{2,63}$/u.test(e))throw new TypeError("classId is invalid.");return e}function _h(e){if(typeof e!="string"||!/^quality-[2-5]$/u.test(e))throw new TypeError("avatarKey is invalid.");return e}function Th(e){return e===null?null:_h(e)}const Ah="/academy/api/account",Bo="/academy/api/session/status",Ph="/academy/api/session/resume",Rh="/academy/api/auth/google/reader",Nh="/academy/api/auth/google/start",$h="/academy/api/logout",Ih="/academy/?view=profile-sync",Ya="yomu-hosted-account",Ja="yomu-hosted-mobile-account",Vh={en:{account:"Account",loading:"Checking account…",signedOut:"Signed out",signedIn:"Signed in",signedInAs:e=>`Signed in as ${e}`,unavailable:"Account status unavailable",signIn:"Sign in",createAccount:"Create account",profileSync:"Profile & sync",chooseName:"Choose your name",signOut:"Sign out"},ja:{account:"アカウント",loading:"アカウントを確認中…",signedOut:"サインインしていません",signedIn:"サインイン済み",signedInAs:e=>`${e} としてサインイン済み`,unavailable:"アカウント状態を確認できません",signIn:"サインイン",createAccount:"アカウントを作成",profileSync:"プロフィールと同期",chooseName:"名前を設定",signOut:"サインアウト"}},qa={phase:"loading",displayName:null,nameChosen:!1,busy:!1,error:!1};class Mh{constructor(t={}){I(this,"request");I(this,"navigate");I(this,"listeners",new Set);I(this,"currentState",qa);I(this,"loadPromise",null);I(this,"loaded",!1);this.request=t.request??Oh,this.navigate=t.navigate??(n=>window.location.assign(n))}get state(){return this.currentState}subscribe(t){return this.listeners.add(t),t(this.currentState),()=>this.listeners.delete(t)}ensureLoaded(){return this.loaded?Promise.resolve(this.currentState):this.loadPromise?this.loadPromise:(this.loadPromise=this.loadAccountStatus().finally(()=>{this.loaded=!0,this.loadPromise=null}),this.loadPromise)}async beginReaderAuth(){this.setState({...this.currentState,busy:!0,error:!1});try{const t=await this.request(Rh,Wt(!0));if(!t.ok)throw new Error("Reader account authorization failed.");const n=Xa(await t.json());if(n.state==="linked"){await this.loadAccountStatus();return}if(n.state!=="active-unlinked")throw new Error("Reader account authorization failed.");this.navigate(Nh)}catch{this.setState({...this.currentState,busy:!1,error:!0})}}async signOut(){this.setState({...this.currentState,busy:!0,error:!1});try{if(!(await this.request($h,Wt(!1))).ok)throw new Error("Reader account sign-out failed.");this.setState({phase:"signed-out",displayName:null,nameChosen:!1,busy:!1,error:!1})}catch{this.setState({...this.currentState,busy:!1,error:!0})}}async loadAccountStatus(){this.setState(qa);try{let t=await this.resolveSessionStatus();if(t.state!=="linked")return this.setState({phase:"signed-out",displayName:null,nameChosen:!1,busy:!1,error:!1});let n=await this.accountRequest();if(n.status===401){if(t=await this.resolveSessionStatus(),t.state!=="linked")return this.setState({phase:"signed-out",displayName:null,nameChosen:!1,busy:!1,error:!1});if(n=await this.accountRequest(),n.status===401)return this.setState({phase:"signed-out",displayName:null,nameChosen:!1,busy:!1,error:!1})}if(!n.ok)throw new Error("Reader account status failed.");const a=yh(await n.json());return this.setState({phase:"signed-in",displayName:a.identity.displayName,nameChosen:a.nameChosen,busy:!1,error:!1})}catch{return this.setState({phase:"error",displayName:null,nameChosen:!1,busy:!1,error:!0})}}accountRequest(){return this.request(Ah,Qa())}async readSessionStatus(){const t=await this.request(Bo,Qa());if(!t.ok)throw new Error("Reader session status failed.");return Xa(await t.json())}async resolveSessionStatus(){const t=await this.readSessionStatus();if(t.state!=="resumable")return t;const n=await this.request(Ph,Wt(!1));if(!n.ok&&n.status!==401)throw new Error("Reader account session resume failed.");return this.readSessionStatus()}
3setState(t){return this.currentState=t,this.listeners.forEach(n=>n(t)),t}}function Oh(e,t){return typeof location>"u"||location.origin!=="https://yomureader.com"?String(e)===Bo?Promise.resolve(new Response(JSON.stringify({state:"signed-out"}),{status:200,headers:{"content-type":"application/json"}})):Promise.resolve(new Response(null,{status:404})):fetch(e,t)}function Xa(e){if(typeof e!="object"||e===null||Array.isArray(e))throw new TypeError("Academy session status is invalid.");const t=e.state;if(t!=="signed-out"&&t!=="active-unlinked"&&t!=="resumable"&&t!=="linked")throw new TypeError("Academy session status is invalid.");return{state:t}}class Ch{constructor(t={}){I(this,"client");I(this,"document");I(this,"language","en");I(this,"unsubscribe");this.client=t.client??new Mh,this.document=t.document??document,this.unsubscribe=this.client.subscribe(()=>this.render())}sync(t){this.language=t,this.mountDesktopControl(),this.mountMobileControl(),this.render(),this.client.ensureLoaded()}destroy(){var t,n;this.unsubscribe(),(t=this.document.getElementById(Ya))==null||t.remove(),(n=this.document.getElementById(Ja))==null||n.remove()}mountDesktopControl(){const t=this.document.querySelector(".VPNavBar .content-body");if(!t)return;const n=this.control(Ya,!1);if(!t.contains(n)){const a=t.querySelector(".VPNavBarAppearance"),r=a?[...t.children].find(o=>o===a||o.contains(a))??null:null;t.insertBefore(n,r)}}mountMobileControl(){const t=this.document.querySelector("#NavScreenGroup-more");if(!t)return;const n=this.control(Ja,!0);t.contains(n)||t.prepend(n)}control(t,n){const a=this.document.getElementById(t);if(a)return a;const r=this.document.createElement("div");return r.id=t,r.className=n?"item yomu-hosted-account yomu-hosted-account-mobile":"yomu-hosted-account yomu-hosted-account-desktop",r.dataset.yomuHostedAccount=n?"mobile":"desktop",r.dataset.yomuLocalize="off",r}render(){for(const t of this.document.querySelectorAll("[data-yomu-hosted-account]"))this.renderControl(t)}renderControl(t){const n=this.client.state,a=Vh[this.language];t.setAttribute("aria-busy",String(n.phase==="loading"||n.busy));const r=t.querySelector("details"),o=(r==null?void 0:r.open)??!1,i=this.document.createElement("details");i.className="yomu-hosted-account-details",i.open=o;const s=this.document.createElement("summary");s.className="yomu-hosted-account-summary",s.setAttribute("aria-label",a.account);const l=this.document.createElement("span");l.className="yomu-hosted-account-summary-text",l.textContent=n.phase==="signed-in"&&n.nameChosen&&n.displayName?n.displayName:a.account;const p=this.document.createElement("span");p.className="yomu-hosted-account-state-mark",p.dataset.state=n.phase,p.setAttribute("aria-hidden","true"),s.append(p,l);const k=this.document.createElement("div");k.className="yomu-hosted-account-panel";const h=this.document.createElement("p");h.className="yomu-hosted-account-status",h.setAttribute("role",n.error?"alert":"status"),h.setAttribute("aria-live",n.error?"assertive":"polite"),h.textContent=jh(n,a),k.append(h);const y=this.document.createElement("div");y.className="yomu-hosted-account-actions";const _=n.phase==="loading"||n.busy;n.phase==="signed-in"?y.append(this.accountLink(n.nameChosen?a.profileSync:a.chooseName,Ih),this.actionButton(a.signOut,()=>this.client.signOut(),_)):y.append(this.actionButton(a.signIn,()=>this.client.beginReaderAuth(),_),this.actionButton(a.createAccount,()=>this.client.beginReaderAuth(),_)),k.append(y),i.append(s,k),t.replaceChildren(i)}actionButton(t,n,a){const r=this.document.createElement("button");return r.type="button",r.className="yomu-hosted-account-action",r.textContent=t,r.disabled=a,r.addEventListener("click",()=>void n()),r}accountLink(t,n){const a=this.document.createElement("a");return a.className="yomu-hosted-account-action",a.textContent=t,a.href=n,a.target="_self",a}}function jh(e,t){return e.error?t.unavailable:e.phase==="loading"?t.loading:e.phase==="signed-in"&&e.nameChosen&&e.displayName?t.signedInAs(e.displayName):e.phase==="signed-in"?t.signedIn:t.signedOut}function Qa(){return{method:"GET",credentials:"same-origin",cache:"no-store"}}function Wt(e){return{method:"POST",credentials:"same-origin",cache:"no-store",...e?{headers:{"content-type":"application/json"},body:"{}"}:{}}}let Za;function xh(e){Za??(Za=new Ch),Za.sync(e)}const Dh="Apps",Hh=Object.freeze([{text:"Read",ja:"読む",link:"/library/"},{text:"Watch",ja:"観る",link:"/video-player/",target:"_self"},{text:"Study",ja:"学習",link:"/study/",target:"_self"}]),Bh=Object.freeze([{text:"Learning path",ja:"学習の道筋",link:"/learn/"},{text:"Academy",ja:"アカデミー",link:"/academy/",target:"_self"},{text:Dh,ja:"アプリ",link:"/learn/reference#apps"},{text:"Help",ja:"ヘルプ",link:"/support"},{text:"PDF Reader",ja:"PDFリーダー",link:"/pdf-reader/",target:"_self"},{text:"Stats",ja:"統計",link:"/study/?mode=stats",target:"_self"},{text:"API",ja:"API",link:"/api/",target:"_self"},{text:"Local Audio",ja:"ローカル音声",link:"/local-audio"},{text:"Settings reference",ja:"設定リファレンス",link:"/reference/settings"},{text:"FAQ",ja:"よくある質問",link:"/faq"},{text:"Changelog",ja:"変更履歴",link:"/changelog"},{text:"Privacy",ja:"プライバシー",link:"/privacy"}]),Gh=Object.freeze({text:"Membership",ja:"メンバーシップ",link:"/membership",target:"_self"});function zh(){return[...Hh,...Bh,Gh]}function Fh(){return zh().filter(e=>e.text!=="Study").map(e=>({text:e.text,href:e.link,...e.target?{target:e.target}:{}}))}const Uh={setupTitle:"Set up Yomu in your language",learnerLanguageLabel:"Your language",targetLanguageLabel:"Language you are learning",targetJapanese:"Japanese",recommendedDictionariesTitle:"Recommended Japanese dictionaries",automaticTranslationLabel:"Translate automatically into {language}",dictionaryCountAndSize:"{count, plural, one {# dictionary} other {# dictionaries}} · {size}",setupProgress:"Language setup {current} of {total}",continueAction:"Continue",originalDefinitionLabel:"Original {language}",interfaceRtlVerificationPending:"Right-to-left layout checks are still running.",interfaceTranslationPending:"Translation is still in progress."};function A(e,t,n){return Object.freeze({locale:e,reviewStatus:t,sourceLocale:"en",messages:Object.freeze(n)})}A("ar","machine-draft",{setupTitle:"إعداد ⁨よむ⁩ بلغتك",learnerLanguageLabel:"لغتك",targetLanguageLabel:"اللغة التي تتعلمها",targetJapanese:"اليابانية",recommendedDictionariesTitle:"قواميس يابانية موصى بها",automaticTranslationLabel:"الترجمة تلقائيًا إلى ⁨{language}⁩",dictionaryCountAndSize:"{count, plural, one {عدد القواميس: #} other {عدد القواميس: #}} · ⁨{size}⁩",setupProgress:"إعداد اللغة: ⁨{current}⁩ من ⁨{total}⁩",continueAction:"متابعة",originalDefinitionLabel:"التعريف الأصلي باللغة ⁨{language}⁩",interfaceRtlVerificationPending:"لا يزال التحقق من التخطيط من اليمين إلى اليسار جاريًا.",interfaceTranslationPending:"الترجمة قيد التقدم."});A("da","machine-draft",{setupTitle:"Opsæt よむ på dit sprog",learnerLanguageLabel:"Dit sprog",targetLanguageLabel:"Det sprog, du lærer",targetJapanese:"Japansk",recommendedDictionariesTitle:"Anbefalede japanske ordbøger",automaticTranslationLabel:"Oversæt automatisk til {language}",dictionaryCountAndSize:"{count, plural, one {# ordbog} other {# ordbøger}} · {size}",setupProgress:"Sprogopsætning: {current} af {total}",continueAction:"Fortsæt",originalDefinitionLabel:"Original på {language}",interfaceRtlVerificationPending:"Kontrollen af højre-til-venstre-layout er stadig i gang.",interfaceTranslationPending:"Oversættelsen er stadig i gang."});A("de","machine-draft",{setupTitle:"よむ in deiner Sprache einrichten",learnerLanguageLabel:"Deine Sprache",targetLanguageLabel:"Sprache, die du lernst",targetJapanese:"Japanisch",recommendedDictionariesTitle:"Empfohlene Wörterbücher für Japanisch",automaticTranslationLabel:"Automatisch auf {language} übersetzen",dictionaryCountAndSize:"{count, plural, one {# Wörterbuch} other {# Wörterbücher}} · {size}",setupProgress:"Sprache einrichten: {current} von {total}",continueAction:"Weiter",originalDefinitionLabel:"Originaldefinition auf {language}",interfaceRtlVerificationPending:"Die Prüfungen für das Rechts-nach-links-Layout laufen noch.",interfaceTranslationPending:"Die Übersetzung läuft noch."});
3A("el","machine-draft",{setupTitle:"Ρυθμίστε το よむ στη γλώσσα σας",learnerLanguageLabel:"Η γλώσσα σας",targetLanguageLabel:"Γλώσσα που μαθαίνετε",targetJapanese:"Ιαπωνικά",recommendedDictionariesTitle:"Προτεινόμενα λεξικά για τα Ιαπωνικά",automaticTranslationLabel:"Αυτόματη μετάφραση στα {language}",dictionaryCountAndSize:"{count, plural, one {# λεξικό} other {# λεξικά}} · {size}",setupProgress:"Ρύθμιση γλώσσας: {current} από {total}",continueAction:"Συνέχεια",originalDefinitionLabel:"Πρωτότυπο κείμενο στα {language}",interfaceRtlVerificationPending:"Οι έλεγχοι διάταξης από δεξιά προς αριστερά είναι σε εξέλιξη.",interfaceTranslationPending:"Η μετάφραση είναι σε εξέλιξη."});A("en","source-approved",Uh);A("es","machine-draft",{setupTitle:"Configura Yomu en tu idioma",learnerLanguageLabel:"Tu idioma",targetLanguageLabel:"Idioma que estás aprendiendo",targetJapanese:"Japonés",recommendedDictionariesTitle:"Diccionarios de japonés recomendados",automaticTranslationLabel:"Traducir automáticamente al {language}",dictionaryCountAndSize:"{count, plural, one {# diccionario} other {# diccionarios}} · {size}",setupProgress:"Configuración del idioma: {current} de {total}",continueAction:"Continuar",originalDefinitionLabel:"Definición original ({language})",interfaceRtlVerificationPending:"Las comprobaciones del diseño de derecha a izquierda siguen en curso.",interfaceTranslationPending:"La traducción sigue en curs
3o."});A("fa","machine-draft",{setupTitle:"راه‌اندازی ⁨よむ⁩ به زبان شما",learnerLanguageLabel:"زبان شما",targetLanguageLabel:"زبانی که یاد می‌گیرید",targetJapanese:"ژاپنی",recommendedDictionariesTitle:"واژه‌نامه‌های پیشنهادی زبان ژاپنی",automaticTranslationLabel:"ترجمهٔ خودکار به ⁨{language}⁩",dictionaryCountAndSize:"{count, plural, one {# واژه‌نامه} other {# واژه‌نامه}} · ⁨{size}⁩",setupProgress:"راه‌اندازی زبان: ⁨{current}⁩ از ⁨{total}⁩",continueAction:"ادامه",originalDefinitionLabel:"تعریف اصلی به زبان ⁨{language}⁩",interfaceRtlVerificationPending:"بررسی چیدمان راست‌به‌چپ هنوز در حال انجام است.",interfaceTranslationPending:"ترجمه هنوز در حال انجام است."});A("fi","machine-draft",{setupTitle:"Ota よむ käyttöön omalla kielelläsi",learnerLanguageLabel:"Oma kielesi",targetLanguageLabel:"Opiskelemasi kieli",targetJapanese:"Japani",re
3commendedDictionariesTitle:"Suositellut japanin kielen sanakirjat",automaticTranslationLabel:"Käännä automaattisesti: {language}",dictionaryCountAndSize:"{count, plural, one {# sanakirja} other {# sanakirjaa}} · {size}",setupProgress:"Kieliasetukset: vaihe {current}/{total}",continueAction:"Jatka",originalDefinitionLabel:"Alkuperäinen määritelmä ({language})",interfaceRtlVerificationPending:"Oikealta vasemmalle -asettelun tarkistukset ovat vielä kesken.",interfaceTranslationPending:"Käännös on vielä kesken."});A("fr","machine-draft",{setupTitle:"Configurez よむ dans votre langue",learnerLanguageLabel:"Votre langue",targetLanguageLabel:"Langue que vous apprenez",targetJapanese:"Japonais",recommendedDictionariesTitle:"Dictionnaires de japonais recommandés",automaticTranslationLabel:"Traduire automatiquement en {language}",dictionaryCountAndSize:"{count, plural, one {# dictionnaire} other {# dictionnaires}} · {size}",setupProgress:"Configuration de la langue : {current} sur {total}",continueAction:"Continuer",originalDefinitionLabel:"Définition originale en {language}",interfaceRtlVerificationPending:"Les vérifications de la mise en page de droite à gauche sont en cours.",interfaceTranslationPending:"La traduction est en cours."});A("grc","machine-draft",{setupTitle:"Παρασκεύαζε τὸ よむ κατὰ τὴν σὴν γλῶτταν",learnerLanguageLabel:"Ἡ σὴ γλῶττα",targetLanguageLabel:"Ἡ γλῶττα ἣν μανθάνεις",targetJapanese:"Ἰαπωνική",recommendedDictionariesTitle:"Τὰ αἱρετὰ λεξικὰ τῆς Ἰαπωνικῆς",automaticTranslationLabel:"Μεθερμήνευε αὐτομάτως εἰς {language}",dictionaryCountAndSize:"{count, plural, one {# λεξικόν} other {# λεξικά}} · {size}",setupProgress:"Ἡ παρασκευὴ τῆς γλώττης· {current} ἐκ {total}",continueAction:"Πρόβαινε",originalDefinitionLabel:"Τὸ πρωτότυπον ({language})",interfaceRtlVerificationPending:"Οἱ ἔλεγχοι τῆς ἐκ δεξιῶν εἰς ἀριστερὰ διατάξεως ἔτι γίγνονται.",interfaceTranslationPending:"Ἡ μετάφρασις ἔτι γίγνεται."});A("hu","machine-draft",{setupTitle:"A よむ beállítása az Ön nyelvén",learnerLanguageLabel:"Az Ön nyelve",targetLanguageLabel:"A tanult nyelv",targetJapanese:"Japán",recommendedDictionariesTitle:"Ajánlott japán szótárak",automaticTranslationLabel:"Automatikus fordítás {language} nyelvre",dictionaryCountAndSize:"{count, plural, one {# szótár} other {# szótár}} · {size}",setupProgress:"Nyelvi beállítás: {current}/{total}",continueAction:"Folytatás",originalDefinitionLabel:"Eredeti meghatározás ({language})",interfaceRtlVerificationPending:"A jobbról balra elrendezés ellenőrzése még folyik.",interfaceTranslationPending:"A fordítás még folyamatban van."});A("id","machine-draft",{setupTitle:"Siapkan Yomu dalam bahasa Anda",learnerLanguageLabel:"Bahasa Anda",targetLanguageLabel:"Bahasa yang sedang Anda pelajari",targetJapanese:"Bahasa Jepang",recommendedDictionariesTitle:"Kamus bahasa Jepang yang direkomendasikan",automaticTranslationLabel:"Terjemahkan secara otomatis ke {language}",dictionaryCountAndSize:"{count, plural, one {# kamus} other {# kamus}} · {size}",setupProgress:"Penyiapan bahasa {current} dari {total}",continueAction:"Lanjutkan",originalDefinitionLabel:"Definisi asli dalam {language}",interfaceRtlVerificationPending:"Pemeriksaan tata letak kanan ke kiri masih berjalan.",interfaceTranslationPending:"Penerjemahan masih berlangsung."});A("it","machine-draft",{setupTitle:"Configura よむ nella tua lingua",learnerLanguageLabel:"La tua lingua",targetLanguageLabel:"Lingua che stai imparando",targetJapanese:"Giapponese",recommendedDictionariesTitle:"Dizionari di giapponese consigliati",automaticTranslationLabel:"Traduci automaticamente in {language}",dictionaryCountAndSize:"{count, plural, one {# dizionario} other {# dizionari}} · {size}",setupProgress:"Configurazione della lingua: {current} di {total}",continueAction:"Continua",originalDefinitionLabel:"Definizione originale in {language}",interfaceRtlVerificationPending:"I controlli del layout da destra a sinistra sono ancora in corso.",interfaceTranslationPending:"La traduzione è ancora in corso."});
3A("km","machine-draft",{setupTitle:"រៀបចំ よむ ជាភាសារបស់អ្នក",learnerLanguageLabel:"ភាសារបស់អ្នក",targetLanguageLabel:"ភាសាដែលអ្នកកំពុងរៀន",targetJapanese:"ភាសាជប៉ុន",recommendedDictionariesTitle:"វចនានុក្រមជប៉ុនដែលបានណែនាំ",automaticTranslationLabel:"បកប្រែដោយស្វ័យប្រវត្តិទៅជា {language}",dictionaryCountAndSize:"{count, plural, one {វចនានុក្រម #} other {វចនានុក្រម #}} · {size}",setupProgress:"ការកំណត់ភាសា៖ {current} នៃ {total}",continueAction:"បន្ត",originalDefinitionLabel:"និយមន័យដើម ({language})",interfaceRtlVerificationPending:"ការពិនិត្យប្លង់ពីស្ដាំទៅឆ្វេងកំពុងដំណើរការ។",interfaceTranslationPending:"ការបកប្រែកំពុងដំណើរការ។"});A("ko","machine-draft",{setupTitle:"내 언어로 よむ 설정하기",learnerLanguageLabel:"사용 언어",targetLanguageLabel:"학습할 언어",targetJapanese:"일본어",recommendedDictionariesTitle:"추천 일본어 사전",automaticTranslationLabel:"{language}로 자동 번역",dictionaryCountAndSize:"{count, plural, one {사전 #개} other {사전 #개}} · {size}",setupProgress:"언어 설정: {total}단계 중 {current}단계",continueAction:"계속",originalDefinitionLabel:"원문({language})",interfaceRtlVerificationPending:"오른쪽에서 왼쪽 레이아웃 검사가 아직 진행 중입니다.",interfaceTranslationPending:"번역이 아직 진행 중입니다."});A("la","machine-draft",{setupTitle:"Configura よむ in lingua tua",learnerLanguageLabel:"Lingua tua",targetLanguageLabel:"Lingua quam discis",targetJapanese:"Lingua Iaponica",recommendedDictionariesTitle:"Dictionaria linguae Iaponicae commendata",automaticTranslationLabel:"Automatice verte in {language}",dictionaryCountAndSize:"{count, plural, one {# dictionarium} other {# dictionaria}} · {size}",setupProgress:"Configuratio linguae: {current} ex {total}",continueAction:"Perge",originalDefinitionLabel:"Definitio originalis ({language})",interfaceRtlVerificationPending:"Probationes dispositionis a dextra ad sinistram adhuc geruntur.",interfaceTranslationPending:"Translatio adhuc geritur."});A("lo","machine-draft",{setupTitle:"ຕັ້ງຄ່າ よむ ໃນພາສາຂອງທ່ານ",learnerLanguageLabel:"ພາສາຂອງທ່ານ",targetLanguageLabel:"ພາສາທີ່ທ່ານກຳລັງຮຽນ",targetJapanese:"ພາສາຍີ່ປຸ່ນ",recommendedDictionariesTitle:"ວັດຈະນານຸກົມພາສາຍີ່ປຸ່ນທີ່ແນະນຳ",automaticTranslationLabel:"ແປເປັນ {language} ໂດຍອັດຕະໂນມັດ",dictionaryCountAndSize:"{count, plural, one {# ວັດຈະນານຸກົມ} other {# ວັດຈະນານຸກົມ}} · {size}",setupProgress:"ການຕັ້ງຄ່າພາສາ: ຂັ້ນຕອນ {current} ຂອງ {total}",continueAction:"ສືບຕໍ່",originalDefinitionLabel:"ຄຳນິຍາມຕົ້ນສະບັບ ({language})",interfaceRtlVerificationPending:"ການກວດສອບການຈັດວາງຈາກຂວາໄປຊ້າຍຍັງດຳເນີນຢູ່.",interfaceTranslationPending:"ການແປຍັງດຳເນີນຢູ່."});A("mn","machine-draft",{setupTitle:"よむ-г өөрийн хэлээр тохируулах",learnerLanguageLabel:"Таны хэл",targetLanguageLabel:"Таны сурч буй хэл",targetJapanese:"Япон хэл",recommendedDictionariesTitle:"Санал болгож буй япон хэлний толь бичгүүд",automaticTranslationLabel:"{language} хэл рүү автоматаар орчуулах",dictionaryCountAndSize:"{count, plural, one {# толь бичиг} other {# толь бичиг}} · {size}",setupProgress:"Хэлний тохиргоо: {current}/{total}
3",continueAction:"Үргэлжлүүлэх",originalDefinitionLabel:"Эх тайлбар ({language})",interfaceRtlVerificationPending:"Баруунаас зүүн тийш байрлалын шалгалт хийгдсээр байна.",interfaceTranslationPending:"Орчуулга хийгдсээр байна."});A("nl","machine-draft",{setupTitle:"Stel よむ in jouw taal in",learnerLanguageLabel:"Jouw taal",targetLanguageLabel:"Taal die je leert",targetJapanese:"Japans",recommendedDictionariesTitle:"Aanbevolen Japanse woordenboeken",automaticTranslationLabel:"Automatisch vertalen naar {language}",dictionaryCountAndSize:"{count, plural, one {# woordenboek} other {# woordenboeken}} · {size}",setupProgress:"Taal instellen: {current} van {total}",continueAction:"Doorgaan",originalDefinitionLabel:"Oorspronkelijke definitie ({language})",interfaceRtlVerificationPending:"De controles voor rechts-naar-links-opmaak lopen nog.",interfaceTranslationPending:"De vertaling is nog bezig."});A("pl","machine-draft",{setupTitle:"Skonfiguruj Yomu w swoim języku",learnerLanguageLabel:"Twój język",targetLanguageLabel:"Język, którego się uczysz",targetJapanese:"Japoński",recommendedDictionariesTitle:"Polecane słowniki języka japońskiego",automaticTranslationLabel:"Tłumacz automatycznie na język {language}",dictionaryCountAndSize:"{count, plural, one {# słownik} few {# słowniki} many {# słowników} other {# słownika}} · {size}",setupProgress:"Konfiguracja języka: {current} z {total}",continueAction:"Kontynuuj",originalDefinitionLabel:"Oryginalna definicja ({language})",interfaceRtlVerificationPending:"Testy układu od prawej do lewej wciąż trwają.",interfaceTranslationPending:"Tłumaczenie wciąż trwa."});
3A("pt","machine-draft",{setupTitle:"Configure o Yomu no seu idioma",learnerLanguageLabel:"O seu idioma",targetLanguageLabel:"Idioma que está a aprender",targetJapanese:"Japonês",recommendedDictionariesTitle:"Dicionários de japonês recomendados",automaticTranslationLabel:"Traduzir automaticamente para {language}",dictionaryCountAndSize:"{count, plural, one {# dicionário} other {# dicionários}} · {size}",setupProgress:"Configuração do idioma: {current} de {total}",continueAction:"Continuar",originalDefinitionLabel:"Definição original ({language})",interfaceRtlVerificationPending:"As verificações do layout da direita para a esquerda ainda estão em andamento.",interfaceTranslationPending:"A tradução ainda está em andamento."});A("ro","machine-draft",{setupTitle:"Configurează Yomu în limba ta",learnerLanguageLabel:"Limba ta",targetLanguageLabel:"Limba pe care o înveți",targetJapanese:"Japoneză",recommendedDictionariesTitle:"Dicționare recomandate pentru limba japoneză",automaticTranslationLabel:"Tradu automat în {language}",dictionaryCountAndSize:"{count, plural, one {# dicționar} few {# dicționare} other {# de dicționare}} · {size}",setupProgress:"Configurarea limbii: {current} din {total}",continueAction:"Continuă",originalDefinitionLabel:"Definiția originală în {language}",interfaceRtlVerificationPending:"Verificările aspectului de la dreapta la stânga sunt încă în curs.",interfaceTranslationPending:"Traducerea este încă în curs."});A("ru","machine-draft",{setupTitle:"Настройте Yomu на своём языке",learnerLanguageLabel:"Ваш язык",targetLanguageLabel:"Язык, который вы изучаете",targetJapanese:"Японский",recommendedDictionariesTitle:"Рекомендуемые словари японского языка",automaticTranslationLabel:"Автоматически переводить на {language}",dictionaryCountAndSize:"{count, plural, one {# словарь} few {# словаря} many {# словарей} other {# словаря}} · {size}",setupProgress:"Настройка языка: {current} из {total}",continueAction:"Продолжить",originalDefinitionLabel:"Оригинал определения ({language})",interfaceRtlVerificationPending:"Проверки вёрстки справа налево ещё идут.",interfaceTranslationPending:"Перевод ещё выполняется."});A("sh","machine-draft",{setupTitle:"Podesite Yomu na svom jeziku",learnerLanguageLabel:"Vaš jezik",targetLanguageLabel:"Jezik koji učite",targetJapanese:"Japanski",recommendedDictionariesTitle:"Preporučeni japanski rečnici",automaticTranslationLabel:"Automatski prevod na jezik {language}",dictionaryCountAndSize:"{count, plural, one {# rečnik} few {# rečnika} other {# rečnika}} · {size}",setupProgress:"Podešavanje jezika: {current} od {total}",continueAction:"Nastavi",originalDefinitionLabel:"Originalna definicija ({language})",interfaceRtlVerificationPending:"Provjere rasporeda s desna na lijevo još su u toku.",interfaceTranslationPending:"Prijevod je još u toku."});A("sq","machine-draft",{setupTitle:"Konfiguro よむ në gjuhën tënde",learnerLanguageLabel:"Gjuha jote",targetLanguageLabel:"Gjuha që po mëson",targetJapanese:"Japonisht",recommendedDictionariesTitle:"Fjalorë të rekomanduar për japonishten",automaticTranslationLabel:"Përkthe automatikisht në {language}",dictionaryCountAndSize:"{count, plural, one {# fjalor} other {# fjalorë}} · {size}",setupProgress:"Konfigurimi i gjuhës: {current} nga {total}",continueAction:"Vazhdo",originalDefinitionLabel:"Origjinali në {language}",interfaceRtlVerificationPending:"Kontrollet e faqosjes nga e djathta në të majtë janë në vazhdim.",interfaceTranslationPending:"Përkthimi është në vazhdim."});A("sv","machine-draft",{setupTitle:"Ställ in よむ på ditt språk",learnerLanguageLabel:"Ditt språk",targetLanguageLabel:"Språket du lär dig",targetJapanese:"Japanska",recommendedDictionariesTitle:"Rekommenderade japanska ordböcker",automaticTranslationLabel:"Översätt automatiskt till {language}",dictionaryCountAndSize:"{count, plural, one {# ordbok} other {# ordböcker}} · {size}",setupProgress:"Språkinställning: {current} av {total}",continueAction:"Fortsätt",originalDefinitionLabel:"Ursprunglig definition på {language}",interfaceRtlVerificationPending:"Kontrollerna av höger-till-vänster-layout pågår fortfarande.",interfaceTranslationPending:"Översättningen pågår fortfarande."});A("th","machine-draft",{setupTitle:"ตั้งค่า Yomu ในภาษาของคุณ",learnerLanguageLabel:"ภาษาของคุณ",targetLanguageLabel:"ภาษาที่คุณกำลังเรียน",targetJapanese:"ภาษาญี่ปุ่น",re
3commendedDictionariesTitle:"พจนานุกรมภาษาญี่ปุ่นที่แนะนำ",automaticTranslationLabel:"แปลเป็น{language}โดยอัตโนมัติ",dictionaryCountAndSize:"{count, plural, other {พจนานุกรม # รายการ}} · {size}",setupProgress:"ตั้งค่าภาษา {current} จาก {total}",continueAction:"ดำเนินการต่อ",originalDefinitionLabel:"คำจำกัดความต้นฉบับ ({language})",interfaceRtlVerificationPending:"การตรวจสอบเลย์เอาต์จากขวาไปซ้ายยังดำเนินอยู่",interfaceTranslationPending:"การแปลยังดำเนินอยู่"});A("tl","machine-draft",{setupTitle:"I-set up ang Yomu sa iyong wika",learnerLanguageLabel:"Iyong wika",targetLanguageLabel:"Wikang pinag-aaralan mo",targetJapanese:"Wikang Hapon",recommendedDictionariesTitle:"Mga inirerekomendang diksyunaryo ng wikang Hapon",automaticTranslationLabel:"Awtomatikong isalin sa {language}",dictionaryCountAndSize:"{count, plural, one {# diksyunaryo} other {# diksyunaryo}} · {size}",setupProgress:"Pag-set up ng wika: {current} sa {total}",continueAction:"Magpatuloy",originalDefinitionLabel:"Orihinal na depinisyon ({language})",interfaceRtlVerificationPending:"Tumatakbo pa ang mga pagsusuri sa layout mula kanan pakaliwa.",interfaceTranslationPending:"Isinasalin pa ito."});A("tr","machine-draft",{setupTitle:"Yomu'yu dilinizde ayarlayın",learnerLanguageLabel:"Diliniz",targetLanguageLabel:"Öğrendiğiniz dil",targetJapanese:"Japonca",recommendedDictionariesTitle:"Önerilen Japonca sözlükler",automaticTranslationLabel:"Otomatik olarak {language} diline çevir",dictionaryCountAndSize:"{count, plural, one {# sözlük} other {# sözlük}} · {size}",setupProgress:"Dil ayarı: {current}/{total}",continueAction:"Devam et",originalDefinitionLabel:"Orijinal tanım ({language})",interfaceRtlVerificationPending:"Sağdan sola yerleşim denetimleri hâlâ sürüyor.",interfaceTranslationPending:"Çeviri hâlâ sürüyor."});A("vi","machine-draft",{setupTitle:"Thiết lập Yomu bằng ngôn ngữ cá»§a bạn",learnerLanguageLabel:"Ngôn ngữ cá»§a bạn",targetLanguageLabel:"Ngôn ngữ bạn đang học",targetJapanese:"Tiếng Nhật",recommendedDictionariesTitle:"Từ điển tiếng Nhật được đề xuất",automaticTranslationLabel:"Tá»± động dịch sang {language}",dictionaryCountAndSize:"{count, plural, other {# từ điển}} · {size}",setupProgress:"Thiết lập ngôn ngữ: {current} trên {total}",continueAction:"Tiếp tục",originalDefinitionLabel:"Định nghÄ©a gốc ({language})",interfaceRtlVerificationPending:"Việc kiểm tra bố cục từ phải sang trái vẫn đang diễn ra.",interfaceTranslationPending:"Bản dịch vẫn đang được thá»±c hiện."});A("yue","machine-draft",{setupTitle:"用你嘅語言設定よむ",learnerLanguageLabel:"你嘅語言",targetLanguageLabel:"你學緊嘅語言",targetJapanese:"日文",recommendedDictionariesTitle:"推薦嘅日文字典",automaticTranslationLabel:"自動ç
3¿»è­¯åš{language}",dictionaryCountAndSize:"{count, plural, one {# 本字典} other {# 本字典}} · {size}",setupProgress:"語言設定:第{current}步,共{total}æ­¥",continueAction:"繼續",originalDefinitionLabel:"原文({language})",interfaceRtlVerificationPending:"由右至左排版檢查仲進行中。",interfaceTranslationPending:"翻譯仲進行中。"});A("zh","machine-draft",{setupTitle:"用您的语言设置よむ",learnerLanguageLabel:"您的语言",targetLanguageLabel:"您正在学习的语言",targetJapanese:"日语",recommendedDictionariesTitle:"推荐日语词典",automaticTranslationLabel:"自动翻译为{language}",dictionaryCountAndSize:"{count, plural, one {#部词典} other {#部词典}} · {size}",setupProgress:"语言设置:第{current}步,共{total}æ­¥",continueAction:"ç»§ç»­",originalDefinitionLabel:"{language}原文",interfaceRtlVerificationPending:"从右到左的版式检查仍在进行。",interfaceTranslationPending:"翻译仍在进行中。"});const Wh=["chrome","setup","errors","a11y","docs"];new Set(Wh);const Kh=[{tag:"en",reviewStatus:"source-approved",rtlVerified:!0,humanReview:{reviewer:"source locale",evidence:"English is the source of record for every message ID."},available:!0,blockers:[]},{tag:"ja",reviewStatus:"native-reviewed",rtlVerified:!0,humanReview:{reviewer:"owner",evidence:"Japanese is a shipped reference locale; tests/reader/i18n.test.ts enforces exact key parity with English and rejects the 未翻訳 placeholder."},available:!0,blockers:[]},{tag:"ar",reviewStatus:"machine-draft",rtlVerified:!1,humanReview:null,available:!1,blockers:["rtl-verification-pending","translation-incomplete","human-review-pending"]},{tag:"fa",reviewStatus:"machine-draft",rtlVerified:!1,humanReview:null,available:!1,blockers:["rtl-verification-pending","translation-incomplete","human-review-pending"]},{tag:"sq",reviewStatus:"machine-draft",rtlVerified:!0,humanReview:null,available:!1,blockers:["translation-incomplete","human-review-pending"]},{tag:"grc",reviewStatus:"machine-draft",rtlVerified:!0,humanReview:null,available:!1,blockers:["translation-incomplete","human-review-pending"]},{tag:"yue",reviewStatus:"machine-draft",rtlVerified:!0,humanReview:null,available:!1,blockers:["translation-incomplete","human-review-pending"]},{tag:"zh",reviewStatus:"machine-draft",rtlVerified:!0,humanReview:null,available:!1,blockers:["translation-incomplete","human-review-pending"]},{tag:"da",reviewStatus:"machine-draft",rtlVerified:!0,humanReview:null,available:!1,blockers:["translation-incomplete","human-review-pending"]},{tag:"nl",reviewStatus:"machine-draft",rtlVerified:!0,humanReview:null,available:!1,blockers:["translation-incomplete","human-review-pending"]},{tag:"fi",reviewStatus:"machine-draft",rtlVerified:!0,humanReview:null,available:!1,blockers:["translation-incomplete","human-review-pending"]},{tag:"fr",reviewStatus:"machine-draft",rtlVerified:!0,humanReview:null,available:!1,blockers:["translation-incomplete","human-review-pending"]},{tag:"de",reviewStatus:"machine-draft",rtlVerified:!0,humanReview:null,available:!1,blockers:["translation-incomplete","human-review-pending"]},{tag:"el",reviewStatus:"machine-draft",rtlVerified:!0,humanReview:null,available:!1,blockers:["translation-incomplete","human-review-pending"]},{tag:"hu",reviewStatus:"machine-draft",rtlVerified:!0,humanReview:null,available:!1,blockers:["translation-incomplete","human-review-pending"]},{tag:"id",reviewStatus:"machine-draft",rtlVerified:!0,humanReview:null,available:!1,blockers:["translation-incomplete","human-review-pending"]},{tag:"it",reviewStatus:"machine-draft",rtlVerified:!0,humanReview:null,available:!1,blockers:["translation-incomplete","human-review-pending"]},{tag:"km",reviewStatus:"machine-draft",rtlVerified:!0,humanReview:null,available:!1,blockers:["translation-incomplete","human-review-pending"]},{tag:"ko",reviewStatus:"machine-draft",rtlVerified:!0,humanReview:null,available:!1,blockers:["translation-incomplete","human-review-pending"]},{tag:"lo",reviewStatus:"machine-draft",rtlVerified:!0,humanReview:null,available:!1,blockers:["translation-incomplete","human-review-pending"]},{tag:"la",reviewStatus:"machine-draft",rtlVerified:!0,humanReview:null,available:!1,blockers:["translation-incomplete","human-review-pending"]},{tag:"mn",reviewStatus:"machine-draft",rtlVerified:!0,humanReview:null,available:!1,blockers:["translation-incomplete","human-review-pending"]},{tag:"pl",reviewStatus:"machine-draft",rtlVerified:!0,humanReview:null,available:!1,blockers:["translation-incomplete","human-review-pending"]},{tag:"pt",reviewStatus:"machine-draft",rtlVerified:!0,humanReview:null,available:!1,blockers:["translation-incomplete","human-review-pending"]},{tag:"ro",reviewStatus:"machine-draft",rtlVerified:!0,humanReview:null,available:!1,blockers:["translation-incomplete","human-review-pending"]},{tag:"ru",reviewStatus:"machine-draft",rtlVerified:!0,humanReview:null,available:!1,blockers:["translation-incomplete","human-review-pending"]},{tag:"sh",reviewStatus:"machine-draft",rtlVerified:!0,humanReview:null,available:!1,blockers:["translation-incomplete","human-review-pending"]},{tag:"es",reviewStatus:"machine-draft",rtlVerified:!0,humanReview:null,available:!1,blockers:["translation-incomplete","human-review-pending"]},{tag:"sv",reviewStatus:"machine-draft",rtlVerified:!0,humanReview:null,available:!1,blockers:["translation-incomplete","human-review-pending"]},{tag:"tl",reviewStatus:"machine-draft",rtlVerified:!0,humanReview:null,available:!1,blockers:["translation-incomplete","human-review-pending"]},{tag:"th",reviewStatus:"machine-draft",rtlVerified:!0,humanReview:null,available:!1,blockers:["translation-incomplete","human-review-pending"]},{tag:"tr",reviewStatus:"machine-draft",rtlVerified:!0,humanReview:null,available:!1,blockers:["translation-incomplete","human-review-pending"]},{tag:"vi",reviewStatus:"machine-draft",rtlVerified:!0,humanReview:null,available:!1,blockers:["translation-incomplete","human-review-pending"]}
3],Yh={items:[{id:"direction-propagation",done:!0,note:"lang/dir stamped on every reader-owned root, shadow host, overlay, popover, bottom sheet, backdrop, new-tab/study app and the hosted docs document. The host page's own documentElement is deliberately NOT touched: Yomu is injected into pages it does not own, and flipping their dir would rewrite the page a learner is reading."},{id:"logical-css-properties",done:!1,note:"Shared chrome CSS converted from margin/padding-left/right and text-align:left/right to inline logical properties. Deferred: subtitles-youtube.css and youtube-filter.css, whose offsets are computed against video frame geometry, and every `left`/`right`/`inset` used for positioning, which the plan requires to stay physical."},{id:"bidi-isolation",done:!1,note:"HALF DONE, and the half that is missing is the larger one. Substituted values ARE isolated: formatUiText routes through formatIsolated when the interface is RTL, so a term, count, version or source name interpolated into a message cannot reorder the sentence around it. NOT done: systematically wrapping the target terms, definitions, source names, URLs, codes and ke
3yboard shortcuts that chrome renders as their own elements with lang and dir=auto. Those are rendered in dozens of templates and each needs its own decision."},{id:"font-stacks",done:!0,note:"Per-script interface font stacks in the locale manifest."},{id:"geometry-verification",done:!1,note:"Popover collision/flip, selection anchor and arrow, resize/drag handles, pinned HUD, toast, bottom sheet, nested menus, vertical Japanese text and media controls under an RTL interface. Not verified."},{id:"viewport-and-zoom-matrix",done:!1,note:"Arabic, Farsi and a long pseudo-RTL locale at 320/768/1440px, 100%/200% zoom, four anchor edges, keyboard-only navigation and reduced motion. Not run."},{id:"real-app-screenshots",done:!1,note:"Approved real-app screenshots, not fixture-only proof. Only the disabled-with-reason picker state has been captured."},{id:"owner-acceptance",done:!1,note:"Explicit owner acceptance of Arabic/Farsi overlay and popover behaviour."}]},Go={locales:Kh,rtlGate:Yh},Jh=[{id:"sq",runtimeLocale:"sq",englishName:"Albanian",
3nativeName:"Shqip",defaultScript:"Latn",scripts:["Latn"],direction:"ltr"},{id:"grc",runtimeLocale:"grc",englishName:"Ancient Greek",nativeName:"Ἑλληνιστί",defaultScript:"Grek",scripts:["Grek"],direction:"ltr"},{id:"ar",runtimeLocale:"ar",englishName:"Arabic",nativeName:"العربية",defaultScript:"Arab",scripts:["Arab"],direction:"rtl"},{id:"yue",runtimeLocale:"yue-Hant",englishName:"Cantonese",nativeName:"粵語",defaultScript:"Hant",scripts:["Hant"],direction:"ltr"},{id:"zh",runtimeLocale:"zh-Hans",englishName:"Chinese",nativeName:"中文(简体)",defaultScript:"Hans",scripts:["Hans","Hant"],direction:"ltr"},{id:"da",runtimeLocale:"da",englishName:"Danish",nativeName:"Dansk",defaultScript:"Latn",scripts:["Latn"],direction:"ltr"},{id:"nl",runtimeLocale:"nl",englishName:"Dutch",nativeName:"Nederlands",defaultScript:"Latn",scripts:["Latn"],direction:"ltr"},{id:"en",runtimeLocale:"en",englishName:"English",nativeName:"English",defaultScript:"Latn",scripts:["Latn"],direction:"ltr"},{id:"fi",runtimeLocale:"fi",englishName:"Finnish",nativeName:"Suomi",defaultScript:"Latn",scripts:["Latn"],direction:"ltr"},{id:"fr",runtimeLocale:"fr",englishName:"French",nativeName:"Français",defaultScript:"Latn",scripts:["Latn"],direction:"ltr"},{id:"de",runtimeLocale:"de",englishName:"German",nativeName:"Deutsch",defaultScript:"Latn",scripts:["Latn"],direction:"ltr"},{id:"el",runtimeLocale:"el",englishName:"Greek",nativeName:"Ελληνικά",defaultScript:"Grek",scripts:["Grek"],direction:"ltr"},{id:"hu",runtimeLocale:"hu",englishName:"Hungarian",nativeName:"Magyar",defaultScript:"Latn",scripts:["Latn"],direction:"ltr"},{id:"id",runtimeLocale:"id",englishName:"Indonesian",nativeName:"Bahasa Indonesia",defaultScript:"Latn",scripts:["Latn"],direction:"ltr"},{id:"it",runtimeLocale:"it",englishName:"Italian",nativeName:"Italiano",defaultScript:"Latn",scripts:["Latn"],direction:"ltr"},{id:"km",runtimeLocale:"km",englishName:"Khmer",nativeName:"ខ្មែរ",defaultScript:"Khmr",scripts:["Khmr"],direction:"ltr"},{id:"ko",runtimeLocale:"ko",englishName:"Korean",nativeName:"한국어",defaultScript:"Kore",scripts:["Kore"],direction:"ltr"},{id:"lo",runtimeLocale:"lo",englishName:"Lao",nativeName:"ລາວ",defaultScript:"Laoo",scripts:["Laoo"],direction:"ltr"},{id:"la",runtimeLocale:"la",englishName:"Latin",nativeName:"Latina",defaultScript:"Latn",scripts:["Latn"],direction:"ltr"},{id:"mn",runtimeLocale:"mn-Cyrl",englishName:"Mongolian",nativeName:"Монгол",defaultScript:"Cyrl",scripts:["Cyrl","Mong"],direction:"ltr"},{id:"fa",runtimeLocale:"fa",englishName:"Persian",nativeName:"فارسی",defaultScript:"Arab",scripts:["Arab"],direction:"rtl"},{id:"pl",runtimeLocale:"pl",englishName:"Polish",nativeName:"Polski",defaultScript:"Latn",scripts:["Latn"],direction:"ltr"},{id:"pt",runtimeLocale:"pt",englishName:"Portuguese",nativeName:"Português",defaultScript:"Latn",scripts:["Latn"],direction:"ltr"},{id:"ro",runtimeLocale:"ro",englishName:"Romanian",nativeName:"Română",defaultScript:"Latn",scripts:["Latn"],direction:"ltr"},{id:"ru",runtimeLocale:"ru",englishName:"Russian",nativeName:"Русский",defaultScript:"Cyrl",scripts:["Cyrl"],direction:"ltr"},{id:"sh",runtimeLocale:"sr-Latn",englishName:"Serbo-Croatian",nativeName:"Srpskohrvatski",defaultScript:"Latn",scripts:["Latn","Cyrl"],direction:"ltr"},{id:"es",runtimeLocale:"es",englishName:"Spanish",nativeName:"Español",defaultScript:"Latn",scripts:["Latn"],direction:"ltr"},{id:"sv",runtimeLocale:"sv",englishName:"Swedish",nativeName:"Svenska",defaultScript:"Latn",scripts:["Latn"],direction:"ltr"},{id:"tl",runtimeLocale:"fil",englishName:"Tagalog",nativeName:"Tagalog",defaultScript:"Latn",scripts:["Latn"],direction:"ltr"},{id:"th",runtimeLocale:"th",englishName:"Thai",nativeName:"ไทย",defaultScript:"Thai",scripts:["Thai"],direction:"ltr"},{id:"tr",runtimeLocale:"tr",englishName:"Turkish",nativeName:"Türkçe",defaultScript:"Latn",scripts:["Latn"],direction:"ltr"},{id:"vi",runtimeLocale:"vi",englishName:"Vietnamese",nativeName:"Tiếng Việt",defaultScript:"Latn",scripts:["Latn"],direction:"ltr"}],qh={languages:Jh},Xh=qh.languages,zo=Object.freeze(Xh.map(e=>Object.freeze({...e,scripts:Object.freeze([...e.scripts])})));new Map(zo.map(e=>[e.id,e]));const Qh=Object.freeze({id:"ja",runtimeLocale:"ja",englishName:"Japanese",nativeName:"日本語",defaultScript:"Jpan",direction:"ltr"}
3),Zh=new Set(["Arab","Hebr","Thaa","Nkoo","Adlm","Syrc"]),Fo=Object.freeze({Latn:'system-ui, -apple-system, "Segoe UI", Roboto, sans-serif',Grek:'system-ui, -apple-system, "Segoe UI", Roboto, sans-serif',Cyrl:'system-ui, -apple-system, "Segoe UI", Roboto, sans-serif',Arab:'"SF Arabic", "Geeza Pro", "Segoe UI", Tahoma, "Noto Naskh Arabic", system-ui, sans-serif',Jpan:'system-ui, -apple-system, "Hiragino Sans", "Yu Gothic UI", "Noto Sans JP", sans-serif',Hans:'system-ui, -apple-system, "PingFang SC", "Microsoft YaHei", "Noto Sans SC", sans-serif',Hant:'system-ui, -apple-system, "PingFang TC", "Microsoft JhengHei", "Noto Sans TC", sans-serif',Kore:'system-ui, -apple-system, "Apple SD Gothic Neo", "Malgun Gothic", "Noto Sans KR", sans-serif',Thai:'system-ui, -apple-system, "Thonburi", "Leelawadee UI", "Noto Sans Thai", sans-serif',Laoo:'system-ui, -apple-system, "Lao Sangam MN", "Leelawadee UI", "Noto Sans Lao", sans-serif',Khmr:'system-ui, -apple-system, "Khmer Sangam MN", "Leelawadee UI", "Noto Sans Khmer", sans-serif',Mong:'system-ui, -apple-system, "Noto Sans Mongolian", sans-serif'}),ev=Fo.Latn;function tv(e){return Fo[e]??ev}function nv(e){return Zh.has(e)?"rtl":"ltr"}const av=new Map(Go.locales.map(e=>[e.tag,e]));function rv(e,t){const n=[],a=o=>{o!==e&&!n.includes(o)&&n.push(o)},r=e.split("-")[0];return a(r),a(t),t==="sh"&&(a("sr"),a("hr"),a("bs")),t==="tl"&&a("fil"),t!=="en"&&a("en"),Object.freeze(n)}function er(e){const t=av.get(e.id);if(!t)throw new Error(`Interface locale ${e.id} has no review-ledger row`);return Object.freeze({tag:e.runtimeLocale,id:e.id,fallbacks:rv(e.runtimeLocale,e.id),nativeName:e.nativeName,englishName:e.englishName,script:e.defaultScript,direction:nv(e.defaultScript),fontStack:tv(e.defaultScript),reviewStatus:t.reviewStatus,available:t.available,blockers:Object.freeze([...t.blockers])})}const it=Object.freeze([...zo.map(e=>er({...e,direction:e.direction})),er(Qh)].sort((e,t)=>{const n=a=>a==="en"?0:a==="ja"?1:2;return n(e.tag)-n(t.tag)||e.englishName.localeCompare(t.englishName,"en")})),ov=new Map([...it.map(e=>[e.id,e]),...it.map(e=>[e.tag,e])]);(()=>{const e=ov.get("en");if(!e)throw new Error("The interface manifest must always contain English");return e})();Object.freeze(it.filter(e=>e.direction==="rtl"));Object.freeze(Go.rtlGate.items.map(e=>Object.freeze({...e})));const Jn=Object.freeze([O("","index.md",["よむ | Read Japanese. Stay with the story.","よむ | 日本語を読む。物語の続きを楽しむ。"],["Read web pages, subtitles, manga and PDFs in any of 33 learning languages, save the words you meet, and review them with their original context. Japanese adds furigana, pitch accent and kanji study.","33の学習言語のどれでも、ウェブページ、字幕、漫画、PDFを読み、出会った単語を元の文脈と一緒に保存して復習できます。日本語では、ふりがな、ピッチアクセント、漢字学習も使えます。"]),Ae("api/","api/index.md","Yomu API reference","Interactive OpenAPI reference for Yomu Academy, audio, support, and public edge services.","api-reference-native-review-pending"),O("changelog","changelog.md",["Changelog","変更履歴"],["Release history for Yomu.","よむのリリース履歴です。"]),O("faq","faq.md",["FAQ","よくある質問"],["What Yomu is, what it costs, how reviews work, which languages and apps it supports, and where your data lives, in plain answers.","よむとは何か、費用、復習の仕組み、対応する言語とアプリ、データの保存場所を分かりやすく答えます。"]),O("learn/","learn/index.md",["Start here","ここから始める"],["An honest starting point for learning Japanese with Yomu, covering how long it takes, what to do each day, what runs without an install, and what Yomu leaves up to you.","よむで日本語を学び始めるための率直な案内です。必要な時間、毎日すること、インストールなしで使えるもの、そして自分で決めることを説明します。"]),O("learn/approach","learn/approach.md",["The approach","学び方"],["Why comprehensible input, frequent reading and a small amount of review work together when you are learning Japanese.","理解できるインプット、頻繁な読書、少量の復習が、日本語学習でどう一緒に働くかを説明します。"]),O("learn/building-a-core","learn/building-a-core.md",["Building a core","基礎語彙を作る"],["Build a useful base of frequent Japanese words without mistaking a vocabulary count for reading ability.","語彙数を読解力と取り違えず、頻出する日本語の役立つ土台を作ります。"]),O("learn/keeping-words","learn/keeping-words.md",["Keeping words","単語を残す"],["Save words with their original context, review them through active recall, and use Yomu Study with local or connected sources.","単語を元の文脈と一緒に保存し、能動的に思い出して復習し、端末内または接続した出典とよむStudyを使います。"]),O("learn/manga-and-games","learn/manga-and-games.md",["Manga and games","漫画とゲーム"],["Read Japanese trapped inside manga panels, screenshots and game frames with OCR, and choose which service sees your page images.","OCRで漫画のコマ、スクリーンショット、ゲーム画面の中にある日本語を読み、ページ画像を見せるサービスを自分で選べます。"]),O("learn/reading","learn/reading.md",["Reading","読む"],["Use tadoku, popup lookup, furigana, PDFs and kanji drilldown to read Japanese for the story instead of stopping at every word.","多読、ポップアップ検索、ふりがな、PDF、漢字の掘り下げを使い、すべての単語で止まらず物語のために日本語を読みます。"]),O("learn/reference","learn/reference.md",["Reference","リファレンス"],["Find every Yomu setting, feature, app, policy and troubleshooting page after you have learned the main reading and study loop.","読むことと復習の基本的な流れを覚えた後に、よむの全設定、機能、アプリ、方針、問題解決ページを探せます。"]),O("learn/staying-with-it","learn/staying-with-it.md",["Staying with it","続ける"],["Return after a break, handle a large review backlog, and use streaks as a record of effort instead of a punishment.","中断後に戻り、多い復習残を扱い、連続記録を罰ではなく努力の記録として使います。"]),O("learn/watching","learn/watching.md",["Watching","観る"],["Learn from Japanese video with lookup-ready subtitles, a transcript, shadowing, batch mining and a YouTube feed tuned toward useful input.","検索できる字幕、文字起こし、シャドーイング、一括採集、役立つインプットへ調整したYouTubeフィードで、日本語動画から学びます。"]),O("learn/week-one","learn/week-one.md",["Week one","最初の一週間"],["Learn kana, install Yomu, look up a first word, leave furigana on, and begin with Japanese you can nearly follow.","仮名を覚え、よむを入れ、最初の単語を調べ、ふりがなを表示したまま、ほとã
3‚“ど分かる日本語から始めます。"]),O("learn/your-own-setup","learn/your-own-setup.md",["Your own setup","自分の環境"],["Connect dictionaries, audio, Anki, Jiten, Bunpro, JPDB and WaniKani, sync devices, and see which planned integrations are still in development.","辞書、音声、Anki、Jiten、Bunpro、JPDB、WaniKaniを接続し、端末を同期し、予定されている連携のうち開発中のものを確認します。"]),Ae("local-audio","local-audio.md","Local Audio","Hear Japanese words read aloud in Yomu. Hosted audio is on by default; add your own source or play pronunciation files from your own computer if you want more.","local-audio-native-review-pending"),Ae("library/","library/index.md","Read","Browse free Japanese books by level and interest, or open your own PDF.","library-native-review-pending"),O("membership","membership.md",["Membership","メンバーシップ"],["Yomu is free and stays free. Chip in toward its small monthly bill through a verified support provider.","よむは無料で、これからも無料です。確認済みの支援サービスから、少額の月間運営費を支援できます。"]),Ae("privacy/","privacy/index.md","Privacy","What Yomu keeps on your device, which services it talks to and when, and what the browser extension asks for.","privacy-native-review-pending"),O("reference/grammar","reference/grammar.md",["Grammar coverage","文法対応状況"],["See which learning targets have local grammar detection and which open a checked grammar reference.","学習対象ごとの端末内文法検出の有無と、確認済み文法リファレンスへのリンクを確認できます。"]),Ae("reference/settings","reference/settings.md","Settings reference","Every Yomu setting, its default, and the part of the settings dialog that holds it.","generated-settings-native-review-pending"),O("support","support.md",["Support","サポート"],["Get help with Yomu, ask on Discord, report a bug, or open the apps used for reading and study.","よむのヘルプを探し、Discordで質問し、バグを報告し、読書と復習に使うアプリを開けます。"])]),iv=new Map(Jn.map(e=>[e.route,e]));new Map(Jn.map(e=>[e.source,e]));const sv=new Map(Jn.map(e=>[Uo(e.route),e]));function cv(e){return iv.get(e)??sv.get(Uo(e))}function lv(e,t){return e.locales[t]}function qn(e,t){const n=cv(e);return!!(n&&lv(n,t))}function O(e,t,n,a){return Object.freeze({route:e,source:t,locales:Object.freeze({en:mn("source-approved",n[0],a[0]),ja:mn("native-reviewed",n[1],a[1])}),blockers:Object.freeze({})})}function Ae(e,t,n,a,r){return Object.freeze({route:e,source:t,locales:Object.freeze({en:mn("source-approved",n,a),ja:void 0}),blockers:Object.freeze({ja:r})})}function mn(e,t,n){return Object.freeze({reviewStatus:e,title:t,description:n})}function Uo(e){return e.split(/[?#]/,1)[0].replace(/^\/+|\/+$/g,"")}const uv=Object.freeze({en:{reviewStatus:"source-approved",routePrefix:""},ja:{reviewStatus:"native-reviewed",routePrefix:"/ja"}}),dv=Object.freeze(it.map(e=>hv(e))),fv=new Map(dv.flatMap(e=>[[e.id,e],[e.tag,e]]));function mv(e){return fv.get(e)}function Xn(e){return e==="/ja"||e.startsWith("/ja/")?"ja":"en"}function Se(e,t){return Yo[e][t]}function Wo(e,t){return yv(e,t)}function Ko(e,t){return t==="en"||!bv(e)?e:wv(e,t)}function gv(e,t){if(t==="en")return Kt(e);if(!qn(e,t))throw new Error(`Website route ${Kt(e)} is not reviewed for ${t}`);const n=Kt(e);return n==="/"?"/ja/":`/ja${n}`}function pv(e,t){const n=e.replace(/^\/ja(?=\/|$)/,"")||"/";return qn(n,t)?gv(n,t):t==="ja"?"/ja/":"/"}function hv(e){const t=vv(e);return t?e.available?Object.freeze({id:e.id,tag:e.tag,label:e.nativeName,englishName:e.englishName,direction:e.direction,fontStack:e.fontStack,routePrefix:t.routePrefix,reviewStatus:t.reviewStatus,available:!0,blockers:Object.freeze([])}):tr(e,"interface-locale-unavailable"):tr(e,"website-native-review-pending")}function vv(e){if(!(e.id!=="en"&&e.id!=="ja"))return uv[e.id]}function tr(e,t){return Object.freeze({id:e.id,tag:e.tag,label:e.nativeName,englishName:e.englishName,direction:e.direction,fontStack:e.fontStack,routePrefix:"",reviewStatus:"unavailable",available:!1,blockers:Object.freeze([t,...e.blockers])})}function yv(e,t){const n=kv[e];return n?Se(n,t):e}function Kt(e){return e==="/"?"/":`/${e.replace(/^\/+/,"")}`}function bv(e){return e.startsWith("/")?!e.startsWith("//"):!1}
3function wv(e,t){const n=new URL(e,"https://yomu.invalid");return n.pathname==="/ja"||n.pathname.startsWith("/ja/")||!qn(n.pathname,t)?e:(n.pathname=Sv(n.pathname),`${n.pathname}${n.search}${n.hash}`)}function Sv(e){return e==="/"?"/ja/":`/ja${e}`}const Yo=Object.freeze({"docs.site.title":{en:"よむ - Read your learning language",ja:"よむ - 学習している言語を読む"},"docs.site.description":{en:"Yomu helps you read in any of 33 learning languages. Look up words on web pages, images, game text, PDFs, and subtitles, save useful sentences, and review them in context. Japanese adds furigana, pitch accent, kanji study, and deeper grammar.",ja:"よむは、33の学習言語のどれでも読むためのツールです。ウェブページ、画像、ゲーム、PDF、字幕の単語を調べ、役立つ文を保存し、文脈と一緒に復習できます。日本語では、ふりがな、ピッチアクセント、漢字学習、より深い文法も使えます。"},"docs.site.logoAlt":{en:"よむ app icon",ja:"よむのアプリアイコン"},"docs.site.imageAlt":{en:"よむ app icon and reader preview card with a Japanese example",ja:"よむのアプリアイコンと日本語例を使ったリーダーのプレビューカード"},"docs.nav.learningPath":{en:"Learning path",ja:"学習の道筋"},"docs.nav.read":{en:"Read",ja:"読む"},"docs.nav.watch":{en:"Watch",ja:"観る"},"docs.nav.apps":{en:"Apps",ja:"アプリ"},"docs.nav.study":{en:"Study",ja:"学習"},"docs.nav.academy":{en:"Academy",ja:"アカデミー"},"docs.nav.help":{en:"Help",ja:"ヘルプ"},"docs.nav.membership":{en:"Membership",ja:"メンバーシップ"},"docs.nav.more":{en:"More",ja:"その他"},"docs.nav.videoPlayer":{en:"Video Player",ja:"動画プレイヤー"},"docs.nav.pdfReader":{en:"PDF Reader",ja:"PDFリーダー"},"docs.nav.stats":{en:"Stats",ja:"統計"},"docs.nav.api":{en:"API",ja:"API"},"docs.nav.localAudio":{en:"Local Audio",ja:"ローカル音声"},"docs.nav.settingsReference":{en:"Settings reference",ja:"設定リファレンス"},"docs.nav.faq":{en:"FAQ",ja:"よくある質問"},"docs.nav.changelog":{en:"Changelog",ja:"変更履歴"},"docs.nav.privacy":{en:"Privacy",ja:"プライバシー"},"docs.sidebar.learnJapanese":{en:"Learn Japanese",ja:"日本語を学ぶ"},"docs.sidebar.start":{en:"0. Start here",ja:"0. ここから始める"},"docs.sidebar.approach":{en:"1. The approach",ja:"1. 学び方"},"docs.sidebar.weekOne":{en:"2. Week one",ja:"2. 最初の一週間"},"docs.sidebar.core":{en:"3. Building a core",ja:"3. 基礎語彙を作る"},"docs.sidebar.reading":{en:"4. Reading",ja:"4. 読む"},"docs.sidebar.watching":{en:"5. Watching",ja:"5. 観る"},"docs.sidebar.mangaGames":{en:"6. Manga and games",ja:"6. 漫画とゲーム"},"docs.sidebar.keepingWords":{en:"7. Keeping words",ja:"7. 単語を残す"},"docs.sidebar.staying":{en:"8. Staying with it",ja:"8. 続ける"},"docs.sidebar.setup":{en:"9. Your own setup",ja:"9. 自分の環境"},"docs.sidebar.reference":{en:"10. Reference",ja:"10. 参考資料"},"docs.sidebar.appsOverview":{en:"Apps overview",ja:"アプリ一覧"},"docs.sidebar.yomuGaming":{en:"Yomu Gaming",ja:"Yomu Gaming"},"docs.sidebar.referenceHelp":{en:"Reference and help",ja:"参考資料とヘルプ"},"docs.sidebar.homepage":{en:"Homepage",ja:"ホームページ"},"docs.sidebar.grammar":{en:"Grammar coverage",ja:"文法対応状況"},"docs.nav.support":{en:"Support",ja:"サポート"},"docs.footer.message":{en:"Free and open source. Install as a userscript, or as a Chrome or Firefox extension.",ja:"無料のオープンソースです。ユーザースクリプト、Chrome拡張機能、Firefox拡張機能としてインストールできます。"},"docs.footer.copyright":{en:"Released under the MIT license.",ja:"MITライセンスで公開しています。"},"docs.theme.menu":{en:"Menu",ja:"メニュー"},"docs.theme.languageMenu":{en:"Change language",ja:"言語を変更"},"docs.theme.mainNavigation":{en:"Main Navigation",ja:"メインナビゲーション"},"docs.theme.extraNavigation":{en:"extra navigation",ja:"メニュー"},"docs.theme.mobileNavigation":{en:"mobile navigation",ja:"モバイルナビゲーション"},"docs.theme.sidebarMenu":{en:"Menu",ja:"メニュー"},"docs.theme.returnTop":{en:"Return to top",ja:"ページ上部へ戻る"},"docs.theme.outline":{en:"On this page",ja:"このページの内容"},"docs.theme.lastUpdated":{en:"Last updated",ja:"最終更新"},"docs.theme.darkMode":{en:"Appearance",ja:"外観"},"docs.theme.lightMode":{en:"Switch to light theme",ja:"ライトテーマに切り替え"},"docs.theme.darkTheme":{en:"Switch to dark theme",ja:"ダークテーマに切り替え"},"docs.theme.previous":{en:"Previous page",ja:"前のページ"},"docs.theme.next":{en:"Next page",ja:"次のページ"},"docs.theme.skip":{en:"Skip to content",ja:"本文へスキップ"},"docs.search.open":{en:"Search",ja:"検索"},"docs.search.openLabel":{en:"Search documentation",ja:"ドキュメントを検索"},"docs.search.displayDetails":{en:"Display detailed list",ja:"詳細な一覧を表示"}
3,"docs.search.reset":{en:"Reset search",ja:"検索をリセット"},"docs.search.back":{en:"Close search",ja:"検索を閉じる"},"docs.search.noResults":{en:"No results found",ja:"検索結果がありません"},"docs.search.select":{en:"to select",ja:"で選択"},"docs.search.navigate":{en:"to navigate",ja:"で移動"},"docs.search.close":{en:"to close",ja:"で閉じる"},"docs.media.youtubeVideo":{en:"YouTube video",ja:"YouTube動画"}}),kv=Object.freeze(Object.fromEntries(Object.entries(Yo).filter(([e])=>e.startsWith("docs.nav.")||e.startsWith("docs.sidebar.")).map(([e,t])=>[t.en,e]))),st="/membership",Ue="yomu-membership-dialog",Jo='a[href], button:not([disabled]), [tabindex]:not([tabindex="-1"])',Ev=Object.freeze([{id:"kofi",name:"Ko-fi",href:"https://ko-fi.com/yomureader",detail:"One-off or monthly."},{id:"patreon",name:"Patreon",href:"https://www.patreon.com/yomureader",detail:"Monthly."},{id:"card",name:"Card",href:"https://support.yomureader.com/donate",detail:"One-off in GBP, USD, EUR, CAD, AUD or JPY."}]);let B,Ie,nr=!1;function Lv(){window.addEventListener("click",_v,{capture:!0})}function _v(e){if(e.button!==0||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey)return;const t=Tv(e.target);if(!t)return;const n=t.getAttribute("href")??st;e.preventDefault(),e.stopImmediatePropagation();try{Av(t)}catch{window.location.assign(n)}}function Tv(e){if(!(e instanceof Element))return;const t=e.closest("a[href]");if(t&&!t.closest(`#${Ue}`)&&ar(window.location.pathname)!==st)return ar(t.getAttribute("href")??"")===st?t:void 0}function ar(e){try{const t=new URL(e,window.location.origin);return t.origin!==window.location.origin?void 0:t.pathname.replace(/\.html$/,"").replace(/\/$/,"")||"/"}catch{return}}function Av(e){var t;Ie=e,B??(B=Rv()),B.isConnected||document.body.append(B),B.hidden=!1,document.documentElement.dataset.yomuMembershipOpen="true",qo(!0),nr||(document.addEventListener("keydown",Pv,!0),nr=!0),(t=B.querySelector(Jo))==null||t.focus()}function gn(){!B||B.hidden||(B.hidden=!0,delete document.documentElement.dataset.yomuMembershipOpen,qo(!1),Ie==null||Ie.focus(),Ie=void 0)}function qo(e){for(const t of document.body.children)if(!(!(t instanceof HTMLElement)||t===B)){if(e){t.inert||(t.dataset.yomuMembershipInerted="true"),t.inert=!0;continue}t.dataset.yomuMembershipInerted&&(t.inert=!1,delete t.dataset.yomuMembershipInerted)}}function Pv(e){if(!B||B.hidden)return;if(e.key==="Escape"){e.preventDefault(),gn();return}if(e.key!=="Tab")return;const t=[...B.querySelectorAll(Jo)].filter(o=>o.offsetParent!==null);if(!t.length)return;const n=t[0],a=t[t.length-1],r=document.activeElement;e.shiftKey&&(r===n||!B.contains(r))?(e.preventDefault(),a.focus()):!e.shiftKey&&r===a&&(e.preventDefault(),n.focus())}function Rv(){const e=document.createElement("div");e.className="yomu-membership-backdrop",e.hidden=!0,e.addEventListener("click",s=>{s.target===e&&gn()});const t=document.createElement("div");t.id=Ue,t.className="yomu-membership-panel",t.setAttribute("role","dialog"),t.setAttribute("aria-modal","true"),t.setAttribute("aria-labelledby",`${Ue}-title`);const n=document.createElement("h2");n.id=`${Ue}-title`,n.className="yomu-membership-title",n.textContent="Membership";const a=document.createElement("p");a.className="yomu-membership-lead",a.textContent="Yomu is free and the reader stays free. Membership pays for building it, and includes Academy when it opens.";const r=document.createElement("ul");r.className="yomu-membership-methods";for(const s of Ev){const l=document.createElement("li"),p=document.createElement("a");p.className="yomu-membership-method",p.href=s.href,p.dataset.yomuMembershipMethod=s.id,s.href.startsWith("http")&&(p.rel="noopener",p.target="_blank");const k=document.createElement("strong");k.textContent=s.name;const h=document.createElement("span");h.textContent=s.detail,p.append(k,h),l.append(p),r.append(l)}const o=document.createElement("a");o.className="yomu-membership-more",o.href=st,o.textContent="What members get";const i=document.createElement("button");return i.type="button",i.className="yomu-membership-close",i.textContent="Close",i.addEventListener("click",gn),t.append(i,n,a,r,o),e.append(t),e}const Nv={English:"en",日本語:"ja"};function $v(e){Iv(),Vv(),Mv(),Ov(e)}function Iv(){const e=Xn(window.location.pathname),t=mv(e);t&&(document.documentElement.lang=t.tag,document.documentElement.dir=t.direction)}function Vv(){const e=document.querySelectorAll(".VPNavBarTranslations, .VPNavBarExtra, .VPNavScreenTranslations"),t=new Set;e.forEach(n=>
3{n.querySelectorAll("a[href]").forEach(a=>t.add(a))}),t.forEach(n=>{var r;const a=Nv[((r=n.textContent)==null?void 0:r.trim())??""];a&&(n.setAttribute("href",pv(window.location.pathname,a)),n.setAttribute("target","_self"))})}function Mv(){const e=Xn(window.location.pathname),t=document.getElementById("main-nav-aria-label");t&&(t.textContent=Se("docs.theme.mainNavigation",e)),document.querySelectorAll(".VPNavBarHamburger").forEach(n=>{n.setAttribute("aria-label",Se("docs.theme.mobileNavigation",e))}),document.querySelectorAll(".VPNavBarExtra > button[aria-label]").forEach(n=>{n.setAttribute("aria-label",Se("docs.theme.extraNavigation",e))})}function Ov(e){const t=Cv(e);t&&(document.head.querySelectorAll("[data-yomu-route-head]").forEach(n=>n.remove()),t.forEach(([n,a,r])=>{const o=document.createElement(n);Object.entries(a).forEach(([i,s])=>{o.setAttribute(i,s)}),r!==void 0&&(o.textContent=r),document.head.append(o)}))}function Cv(e){return Array.isArray(e)?e:void 0}const Qn="jpdb-popup-reader-settings",rr="vitepress-theme-appearance",kt="yomu-settings-change",jv="yomu-open-settings",xv="yomu-hosted-runtime",Dv=hd.version,Hv="yomu-hosted-demo-runtime",Bv="https://support.yomureader.com/status",Gv="https://yomu-support.henry-robert-christopher-russell.workers.dev/status",Xo="yomu-support-banner",Qo="yomu-support-banner-dismissed-version",zv=new Set(["127.0.0.1","localhost","::1"]),Zo="[data-yomu-hosted-overflow]",ei="[data-yomu-hosted-mobile-settings]",or=160,ir=500,Fv=2500,Uv=15e3,Wv=/[\u3040-\u30ff\u3400-\u9fff]/u,Kv=["[data-yomu-runtime-surface]",".VPHero",".VPHomeHero",".VPFeatures",".yomu-install-panel",".yomu-hosted-overflow-group",".yomu-link-grid",".vp-doc"].join(",");let Yt,sr=!1,cr=!1,We,Ke,me={},lr=Promise.resolve(),ur,Ye,dr="",ye,W,ct,ie,le,fr=!1,mr=!1;const Yv=Fh(),Jv=new Set(["auto","dark","light"]);function qv(){const e=document.querySelector("#VPContent");if(Xv(),!!e){if(e.querySelector("main")){e.removeAttribute("role");return}e.setAttribute("role","main")}}function Xv(){const e=document.querySelector(".VPSkipLink");if(!e||e.closest("[data-yomu-skip-links]"))return;const t=document.createElement("nav");t.className="yomu-skip-links",t.dataset.yomuSkipLinks="true",t.setAttribute("aria-label","Skip links"),e.before(t),t.append(e)}function F(){return Xn(window.location.pathname)}function Qv(){Zv(),ny()}function Zv(){const e=document.querySelector(".VPNavBarExtra");e&&(e.classList.add("yomu-hosted-extra"),ey(e),ty(e))}function ey(e){const t=e.querySelector(":scope > button.button");t&&(t.setAttribute("aria-label",Se("docs.theme.menu",F())),t.removeAttribute("title"))}function ty(e){const t=e.querySelector(".VPMenu");t&&(t.querySelector(Zo)||t.prepend(ay()))}function ny(){const e=document.querySelector("#NavScreenGroup-more");!e||e.querySelector(ei)||e.prepend(oy())}function ay(){const e=document.createElement("div");e.className="group yomu-hosted-overflow-group",e.dataset.yomuHostedOverflow="true";const t=document.createElement("div");return t.className="yomu-hosted-overflow-list",t.append(ry(),...Yv.map(sy)),e.append(t),e}function ry(){const e=F(),t=document.createElement("button");return t.className="yomu-hosted-overflow-link",ti(t,e,ai),t}function oy(){const e=F(),t=document.createElement("div");t.className="item yomu-hosted-mobile-settings-item",t.dataset.yomuHostedMobileSettings="true";const n=document.createElement("button");return n.className="yomu-hosted-mobile-settings-button",ti(n,e,()=>{iy(),ai()}),t.append(n),t}function ti(e,t,n){e.type="button",e.textContent=Wo("Settings reference",t),e.setAttribute("aria-label",t==="ja"?"設定を開く":"Open settings"),cy(e),e.addEventListener("click",n)}function iy(){const e=document.querySelector('.VPNavBarHamburger[aria-expanded="true"]');e==null||e.click()}function sy(e){const t=F(),n=document.createElement("a");return n.className="yomu-hosted-overflow-link",n.href=Ko(e.href,t),n.textContent=Wo(e.text,t),e.target&&(n.target=e.target),n}function cy(e){const t=()=>ni(),n={passive:!0,once:!0};e.addEventListener("pointerenter",t,n),e.addEventListener("pointerdown",t,n),e.addEventListener("touchstart",t,n),e.addEventListener("focusin",t,{once:!0})}function ni(){return je()}function ai(){const e=ni(),t=()=>document.querySelector(".jpdb-reader-settings")?!0:(window.dispatchEvent(new CustomEvent(jv,{detail:{panel:"basics"}})),!!document.querySelector(".jpdb-reader-settings"));t()||(e==null||e.then(()=>window.requestAnimationFrame(t)).catch(()=>{}
3),[50,120,240,480,900,1500].forEach(n=>window.setTimeout(t,n)))}function ri(){return ly(localStorage.getItem(Qn)??"{}")}function oi(){return{...ri(),...me}}function ly(e){try{return uy(JSON.parse(e))}catch{return{}}}function uy(e){return ii(e)?e:{}}function ii(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function dy(e){var t;We=e,Ve(),!cr&&(cr=!0,window.addEventListener(kt,n=>{const a=Zn(n);if(!a)return;si(a.settings,!a.preview);const r=ea(a.settings.theme);r&&Ve(r)}),window.addEventListener("storage",n=>{(n.key===Qn||n.key===null)&&(me={},Ve())}),(t=window.matchMedia)==null||t.call(window,"(prefers-color-scheme: dark)").addEventListener("change",()=>{Et()==="auto"&&Ve()}))}function fy(){bn("toggle-appearance",()=>{const e=ui(Et());my(e==="dark"?"light":"dark")})}function my(e){gy(e),Ve(e),window.dispatchEvent(new CustomEvent(kt,{detail:{settings:{theme:e}}}))}function gy(e){ci({theme:e},{userChoice:!0})}function Ve(e=Et()){const t=li(e),n=ui(t);We&&We.value!==(n==="dark")&&(We.value=n==="dark"),document.documentElement.classList.toggle("dark",n==="dark"),py(t,n),be()}function py(e,t){var a;const n=e==="auto"?"auto":t;localStorage.setItem(rr,n),(a=window.requestAnimationFrame)==null||a.call(window,()=>{Et()===e&&localStorage.setItem(rr,n)})}function Zn(e){const t=hy(e);if(ii(t.settings))return{settings:t.settings,preview:t.preview===!0}}function hy(e){return e.detail??{}}function si(e,t){const n=vy(e);Object.keys(n).length&&(me={...me,...n},t&&ci(n))}function vy(e){const t={},n=ea(e.theme),a=$r(e.accentColor),r=by(e.interfaceLanguage);return n&&(t.theme=n),a&&(t.accentColor=a),r&&(t.interfaceLanguage=r),t}function ci(e,t={}){me={...me,...e},yy(e,t.userChoice===!0)}function yy(e,t=!1){lr=lr.then(async()=>{try{await rh(e,t)}catch{}})}function Et(){return li(oi().theme)}function li(e,t="auto"){return ea(e)??t??"auto"}function ea(e){return typeof e=="string"&&Jv.has(e)?e:void 0}function by(e){return e==="auto"||e==="en"||e==="ja"?e:void 0}function ui(e){var t;return e==="dark"||e==="light"?e:(t=window.matchMedia)!=null&&t.call(window,"(prefers-color-scheme: dark)").matches?"dark":"light"}function wy(){be(),!sr&&(sr=!0,window.addEventListener(kt,be),window.addEventListener("storage",e=>{(e.key===Qn||e.key===null)&&(me={},be())}),ur=new MutationObserver(be),ur.observe(document.documentElement,{attributes:!0,attributeFilter:["class"]}))}function be(e){var i;if(e instanceof Event){const s=Zn(e);s&&si(s.settings,!s.preview)}const t=Ee(oi().accentColor),n=document.documentElement,a=n.classList.contains("dark"),r=`${t}|${a?"dark":"light"}`;if(dr===r)return;dr=r;const o=Ed(t,a);for(const[s,l]of Object.entries(o))n.style.setProperty(s,l);(i=document.querySelector('meta[name="theme-color"]'))==null||i.setAttribute("content",t)}function Sy(){document.documentElement.setAttribute("data-yomu-annotation-scope","surface"),ky()}function ky(){const e=document.getElementById("VPContent");if(!e)return;const t=F()==="ja";gr(e,t);for(const n of[".VPNav",".VPLocalNav",".VPSidebar"])document.querySelectorAll(n).forEach(a=>gr(a,t))}function gr(e,t){t?e.setAttribute("data-yomu-runtime-surface",""):e.removeAttribute("data-yomu-runtime-surface")}function Ey(){di(),Ly(),wy(),!fr&&(fr=!0,Ye??(Ye=pi(ri())),window.addEventListener(kt,Yy))}function di(){var e,t,n;$v((e=Ke==null?void 0:Ke.value)==null?void 0:e.yomuWebsiteRouteHead),Sy(),qv(),xh(F()),(t=document.querySelector(Zo))==null||t.remove(),(n=document.querySelector(ei))==null||n.remove(),Qv(),_y(),hi(),Jy(),be()}function Ly(){"serviceWorker"in navigator&&navigator.serviceWorker.register("/sw.js",{scope:"/"}).catch(()=>{})}function _y(){const e=document.getElementById(Xo);if(e){Yt&&e.replaceWith(pr(Yt));return}Ty().then(t=>{if(!Py(t))return;Yt=t;const n=pr(t),a=document.querySelector(".VPContent");a?a.prepend(n):document.body.prepend(n)}).catch(()=>{})}async function Ty(){let e;for(const t of[Bv,Gv])try{return await Ay(t)}catch(n){e=n}throw e instanceof Error?e:new Error("Support status unavailable")}async function Ay(e){const t=new AbortController,n=window.setTimeout(()=>t.abort(),2400);try{const a=await fetch(e,{credentials:"omit",referrerPolicy:"no-referrer",signal:t.signal});if(!a.ok)throw new Error("Support status unavailable");return await a.json()}finally{window.clearTimeout(n)}}function Py(e){const t=e.banner;if((t==null?void 0:t.enabled)===!1||fi(e).length===0||!Fy(e))return!1;const n=mi(e);return Uy(n)}function pr(e){const t=F(),n=document.createElement("aside");return n.id=Xo,n.className="yomu-support-banner",n.setAttribute("aria-label",$y(t)),n.dataset.yomuSupportBanner="true",n.append(Ry(e,t),Ny(e,n,t)),n}function Ry(e,t){const n=document.createElement("div");n.className="yomu-support-banner-copy";const a=document.createElement("strong");a.textContent=Hy(e),n.append(a);const r=document.createElement("span");r.textContent=By(e),n.append(r);const o=document.createElement("a");o.className="yomu-support-banner-breakdown",o.href=Ko("/support#monthly-running-costs",t),o.textContent=t==="ja"?"内訳":"What this covers",n.append(o);const i=Vy(e);return i&&n.append(i),n}function Ny(e,t,n){const a=document.createElement("div");a.className="yomu-support-banner-actions";
3for(const o of Oy(e))a.append(o);const r=document.createElement("button");return r.className="yomu-support-banner-close",r.type="button",r.setAttribute("aria-label",Iy(n)),r.textContent="×",r.addEventListener("click",()=>{Wy(mi(e)),t.remove()}),a.append(r),a}function $y(e){return e==="ja"?"よむの運営支援":"Yomu running-cost support"}function Iy(e){return e==="ja"?"支援状況を閉じる":"Dismiss support status"}function Vy(e){const t=My(e);if(t===null)return null;const n=document.createElement("span");n.className="yomu-support-banner-progress",n.setAttribute("role","progressbar"),n.setAttribute("aria-label",F()==="ja"?"今月の運営費に対する支援額":"Support received toward this month’s running costs"),n.setAttribute("aria-valuemin","0"),n.setAttribute("aria-valuemax","100"),n.setAttribute("aria-valuenow",String(Math.round(t*100)));const a=document.createElement("span");return a.className="yomu-support-banner-progress-fill",a.style.width=`${Math.round(t*100)}%`,n.append(a),n}function My(e){if(typeof e.progressRatio=="number"&&Number.isFinite(e.progressRatio))return Math.min(1,Math.max(0,e.progressRatio));const t=e.donationGoalGbp,n=e.donationsThisMonthGbp??e.donationsTodayGbp;return typeof t=="number"&&t>0&&typeof n=="number"&&n>=0?Math.min(1,n/t):null}function Oy(e){return fi(e).map(Cy)}function Cy(e){const t=document.createElement("a");return t.className=e.id==="stripe"?"yomu-support-banner-donate":"yomu-support-banner-provider",t.dataset.provider=e.id??"",t.href=e.url,t.target="_blank",t.rel="noopener",t.textContent=jy(e,F()),t}function jy(e,t){return e.id==="stripe"?xy(t):[e.label,e.id,"Support"].find(Boolean)}function xy(e){return e==="ja"?"寄付する":"Donate"}function fi(e){return(e.providers??[]).flatMap(t=>{if(!(t!=null&&t.enabled))return[];const n=Dy(t.url);return n?[{...t,url:n}]:[]})}function Dy(e){if(!e)return null;try{const t=new URL(e);return t.protocol==="https:"?t.href:null}catch{return null}}function Hy(e){return F()==="ja"?e.goalMet?"今月分の高速音声の運営費が集まりました。ありがとうございます。":"今月のご支援で、単語・シャドーイング向けの高速音声を運営します。":e.goalMet?"This month's fast audio bill is covered. Thank you.":"This month's support keeps fast word and shadowing audio running."}function By(e){const t=Gy(e),n=zy(e),a=F()==="ja",r=a?`月の運営費:${t}`:`Monthly running costs: ${t}`,o=a?`今月のご支援:${n} / ${t}`:`Received this month: ${n} / ${t}`;return`${r} · ${o}`}function Gy(e){const t=e.display;if(t!=null&&t.goalText)return t.goalText;if(t!=null&&t.converted&&typeof t.goal=="number"&&t.currency)return ta(t.goal,t.currency);const n=e.donationGoalGbp??e.estimatedMonthlyCostGbp;return typeof n=="number"&&Number.isFinite(n)?gi(n):""}function zy(e){const t=e.display;return t!=null&&t.amountText?t.amountText:t!=null&&t.converted&&typeof t.amount=="number"&&t.currency?ta(t.amount,t.currency):gi(e.donationsThisMonthGbp??e.donationsTodayGbp??0)}function Fy(e){var t,n;return typeof((t=e.display)==null?void 0:t.goalText)=="string"&&e.display.goalText.trim()||typeof((n=e.display)==null?void 0:n.goal)=="number"&&Number.isFinite(e.display.goal)?!0:[e.donationGoalGbp,e.estimatedMonthlyCostGbp].some(a=>typeof a=="number"&&Number.isFinite(a))}function ta(e,t){const n=Math.round(e);try{const a=typeof navigator<"u"&&navigator.language||"en-GB";return new Intl.NumberFormat(a,{style:"currency",currency:t,minimumFractionDigits:0,maximumFractionDigits:0}).format(n)}catch{return`${n} ${t}`}}function mi(e){var t;return((t=e.banner)==null?void 0:t.dismissVersion)||"ultimate-audio-monthly-v1"}function Uy(e){return yp({storageKey:Qo,version:e})}function Wy(e){bp({storageKey:Qo,version:e})}function gi(e){return ta(e,"GBP")}const Ky=["furiganaMode","showFurigana","hideKnownFurigana","showPitchAccent","parserProvider","dictionaryPreferences"];function pi(e){return JSON.stringify(Ky.map(t=>e[t]??null))}function Yy(e){const t=Zn(e);if(!t)return;const n=pi(t.settings),a=Ye!==void 0&&Ye!==n;Ye=n,a&&(sh(document.body),hi())}function Jy(){tb(),eb(),qy()}function qy(){const e=document.querySelector("[data-yomu-fold-prompt]:not([data-yomu-fold-watched])");if(!e)return;e.dataset.yomuFoldWatched="true";let t=0;const n=window.setInterval(()=>{if(t+=ir,Xy()){e.dataset.yomuFoldFallbackShown||e.removeAttribute("data-yomu-runtime-missing"),window.clearInterval(n);return}t>=Fv&&(e.setAttribute("data-yomu-runtime-missing",""),e.dataset.yomuFoldFallbackShown="true"),t>=Uv&&window.clearInterval(n)},ir)}function Xy(){if(!Qy())return!1;const e=document.querySelector(".yomu-try-me-text");
3return!!e&&!(e!=null&&e.closest("[data-jpdb-reader-surface-ignore]"))&&!(e!=null&&e.querySelector("[data-jpdb-reader-surface-ignore]"))}function Qy(){if(_t().__yomuReaderAppInitialized)return!0;const e=document.getElementById(Zy);return!!(e!=null&&e.dataset.yomuRuntimeOwner)}const Zy="jpdb-reader-runtime-owner";function eb(){document.querySelectorAll(".yomu-demo-video:not([data-yomu-demo-video-bound])").forEach(e=>{var o;if(e.dataset.yomuDemoVideoBound="true",e.controls)return;const t=window.matchMedia("(prefers-reduced-motion: reduce)");let n=!1;const a=()=>{if(e.paused){n=!1,e.play().catch(()=>{});return}n=!0,e.pause()};e.addEventListener("click",a),e.addEventListener("keydown",i=>{i.key!==" "&&i.key!=="Enter"||(i.preventDefault(),a())});const r=()=>{if(!t.matches){n||e.play().catch(()=>{});return}e.pause(),e.removeAttribute("autoplay")};r(),(o=t.addEventListener)==null||o.call(t,"change",r)})}function tb(){document.querySelectorAll(".yomu-youtube-lite:not([data-yomu-youtube-bound])").forEach(e=>{e.dataset.yomuYoutubeBound="true",e.addEventListener("click",()=>ab(e))})}const nb=/^[A-Za-z0-9_-]{11}$/;function ab(e){const t=rb(e);if(!t)return;const n=ob(e),a=document.createElement("iframe");a.className="yomu-youtube-embed",a.src=`https://www.youtube-nocookie.com/embed/${encodeURIComponent(t)}?cc_load_policy=1&cc_lang_pref=ja&playsinline=1&rel=0&modestbranding=1`,a.title=n,a.allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",a.allowFullscreen=!0,a.referrerPolicy="strict-origin-when-cross-origin",e.replaceWith(a),a.focus()}function rb(e){const t=e.dataset.yomuYoutubeId;return!t||!nb.test(t)?null:t}function ob(e){const t=e.dataset.yomuYoutubeTitle;if(t)return t;const n=e.getAttribute("aria-label");return n||Se("docs.media.youtubeVideo",F())}function hi(){const e=bi(),t=sb(e);if(t!=="dormant"){lb(t);return}ib()}function ib(){const e=db();if(!e.length){Lt(),na();return}fb(e),e.some(t=>t.matches("[data-yomu-runtime-surface], .yomu-try-me-text"))&&ub(),window.requestAnimationFrame(()=>{W===e&&e.some(vi)&&je()})}function sb(e){const t=cb(e);return t!=="dormant"?t:le||yi()?"booting":"dormant"}function cb(e){return Hr(e)?e?"dormant":_t().__yomuReaderAppInitialized?"ready":"dormant":"disabled"}function lb(e){e!=="booting"&&(e==="disabled"&&Lt(),na())}function ub(){const e=()=>{W&&je()};typeof window.requestIdleCallback=="function"?window.requestIdleCallback(e,{timeout:2500}):window.setTimeout(e,350)}function db(){const e=Array.from(document.querySelectorAll("[data-yomu-runtime-surface], .yomu-try-me-text"));if(e.length)return e;if(document.documentElement.getAttribute("data-yomu-annotation-scope")==="surface")return[];const t=Array.from(document.querySelectorAll(Kv)).find(n=>!n.closest(".VPContent.is-home")&&Wv.test(n.textContent??""));return t?[t]:[]}function fb(e){if(W&&ye&&e.length===W.length&&e.every((r,o)=>(W==null?void 0:W[o])===r)){W=e;return}Lt();const t=new AbortController;ye=t,W=e;const n={passive:!0,once:!0,signal:t.signal},a=()=>je();for(const r of e)r.addEventListener("pointerenter",a,n),r.addEventListener("pointerdown",a,n),r.addEventListener("touchstart",a,n),r.addEventListener("focusin",a,{once:!0,signal:t.signal});window.addEventListener("scroll",()=>{e.some(vi)&&je()},{passive:!0,signal:t.signal}),mb(e)}function mb(e){ie==null||ie.abort();const t=new AbortController;ie=t,ct=void 0;const n=a=>{if(a.pointerType==="touch"||typeof a.clientX!="number"||typeof a.clientY!="number")return;const r=a.target instanceof Element?a.target:null,o=(r==null?void 0:r.closest(".jpdb-reader-word"))??null;ct=o&&e.some(i=>i.contains(o))?{x:a.clientX,y:a.clientY}:void 0};window.addEventListener("pointermove",n,{passive:!0,signal:t.signal}),window.addEventListener("pointerover",n,{passive:!0,signal:t.signal})}function na(){ie==null||ie.abort(),ie=void 0,ct=void 0}function vi(e){const t=e.getBoundingClientRect(),n=window.innerHeight||document.documentElement.clientHeight;return t.top<=n+or&&t.bottom>=-or}function je(){return Lt(),gb()??le}function Lt(){ye==null||ye.abort(),ye=void 0,W=void 0}function gb(){const e=_t(),t=bi(),n=yi();if(vb(t),yb(e,t,n))return;if(le)return le;wb(e,t);let a;
3try{a=Lp({resolveCandidates:r=>[Sb(r,t)],scriptIdPrefix:xv})}catch(r){hr(r);return}return le=a,a.catch(r=>{le===a&&(le=void 0),hr(r)}),pb(),a}function hr(e){document.documentElement.dataset.yomuHostedRuntimeGraphError="true",console.error("Hosted Yomu runtime graph failed closed.",e)}function pb(){const e=new AbortController;let t=!1;const n=()=>{t||(t=!0,e.abort(),window.clearInterval(r),window.clearTimeout(o))},a=()=>{t||!_t().__yomuReaderAppInitialized||(n(),window.setTimeout(()=>window.requestAnimationFrame(hb),250))};window.addEventListener("yomu-extension-loaded",()=>window.requestAnimationFrame(a),{once:!0,signal:e.signal});const r=window.setInterval(a,100),o=window.setTimeout(n,6e3);a()}function hb(){const e=ct;if(na(),!e)return;const t=document.elementFromPoint(e.x,e.y);if(!(t instanceof Element)||!t.closest(".jpdb-reader-word"))return;const n={bubbles:!0,cancelable:!0,view:window,clientX:e.x,clientY:e.y,pointerType:"mouse"};t.dispatchEvent(vr("pointerover",n)),t.dispatchEvent(vr("pointermove",n))}function vr(e,t){return typeof PointerEvent=="function"?new PointerEvent(e,t):new MouseEvent(e,t)}function _t(){return window}function yi(){const e=document.querySelector('script[data-yomu-hosted-runtime-role="core"]');return e instanceof HTMLScriptElement?e:null}function vb(e){var t;e&&(Eb(),(t=document.getElementById(Hv))==null||t.remove())}function yb(e,t,n){return!Hr(t)||n?!0:bb(e,t,n)}function bb(e,t,n){return e.__yomuReaderAppInitialized?t?!!n:!0:!1}function wb(e,t){t&&(e.__yomuDevRuntime=!0)}function Sb(e,t){return kb(`/${e.path}`,t)}function kb(e,t){const n=e.includes("?")?"&":"?";return t?`${e}${n}t=${Date.now()}`:`${e}${n}v=${encodeURIComponent(Dv)}`}function bi(){return zv.has(location.hostname)}function Eb(){mr||(mr=!0,"serviceWorker"in navigator&&navigator.serviceWorker.getRegistrations().then(e=>Promise.all(e.map(t=>t.unregister()))).catch(()=>{}),"caches"in window&&caches.keys().then(e=>Promise.all(e.filter(t=>t.startsWith("yomu-")||t.includes("yomu-reader")).map(t=>caches.delete(t)))).catch(()=>{}))}const Lb=b({name:"YomuLayout",setup(e,{slots:t}){const{frontmatter:n,isDark:a}=yr();return fy(),te(()=>{Ke=n,dy(a),Ey()}),()=>Oi(Pe.Layout,null,t)}}),Ab={...Pe,Layout:Lb,async enhanceApp(e){var t;if(await((t=Pe.enhanceApp)==null?void 0:t.call(Pe,e)),typeof document<"u"){Lv();const n=e.router.onAfterRouteChange;e.router.onAfterRouteChange=async a=>{await(n==null?void 0:n(a)),window.requestAnimationFrame(di)}}}};export{Ab as R,Xl as c,T as u};

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.