1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./aiService-9EzGVred.js","./gameScript-BiTWJXKG.js","./katex-math-BxKHCrdI.js","./markdown-W-rE_H7s.js","./react-vendor-CHQL15iE.js","./katex-math-CS4LK5N6.css","./lucide-BFLOpGdB.js","./pdfjs-ji3DqnKJ.js","./index-CAJdU2ur.js","./MainMenu-CJc99MS2.js","./publicIdentity-C99q7MBr.js","./CharacterCard-CKFcZsFo.js","./gameCharacterLayout-CKtvG8H9.js","./gameDialogueLayout-7k6pGA83.js","./ResponsiveCloudflareImage-DdXVaAv7.js","./assetUrl-D33wRw9g.js","./MainMenu-BNIRgitD.css","./Character-B0Yj0W_Y.js","./characterPerformance-Dba8tDt6.js","./DialogueBox-CNtZIlM5.js","./Tooltip-Bx_S1cbE-BOMbSZw3.js","./deriveNameTagStyle-BECs5di4.js","./BlackboardMarkdown-Cizre-1w.js","./LoadingGame-BAHt47Rf.js","./SettingsModal-5SZs2RBK.js","./LogModal-C3gu7eDy.js","./renderLatex-D6ZnkI2b.js","./EndingScreen-C5GepLUm.js","./index.esm-DEYnJgQB.js","./AnnouncementModal-BqVbgv6o.js","./AnnouncementWidget-BEJgy4Af.js","./MobileApkPromptModal-BaOGB0mh.js","./BackgroundSelector-BYyd2LfJ.js","./Login-e9WFT3CV.js","./AdminDashboard-HIANxf-i.js","./recharts-D33wAYmI.js","./CommunityPage-B9QgmaFk.js","./SaveManager-Wouqmi4H.js","./ArxivPage-GYK3MRf5.js","./MembershipPage-BQA3GMQU.js","./ProfilePage--eIe_FSB.js","./StudyDashboardPage-CrJYba4q.js","./StudyRoomPage-hZ6UWwR6.js","./PaperResearchRoom-BERhtVXp.js","./SupportPage-BnePHPp2.js","./MarkdownPage-DghJi6z7.js","./web-BjRLPPkm.js","./web-BjKL51lK-B6_iPXHq.js","./web-B8kf_4VD.js"])))=>i.map(i=>d[i]); 2import{r as l,d as _a,j as p,e as ih}from"./react-vendor-CHQL15iE.js";import{C as oh,a as ch,T as Cl,b as uh,S as wl,c as lh,R as dh,D as fh,B as mh,X as hh,F as ph,d as gh,e as Eh,f as bh,M as Th,P as Sh,E as Ah,g as Ih,h as yh,i as _h,j as Ch,k as nu,l as wh,m as Rh,n as Nh,V as Ph,o as xh,H as Oh,p as vh,q as Lh,r as kh}from"./lucide-BFLOpGdB.js";import{p as Dh}from"./pdfjs-ji3DqnKJ.js";import{s as Rl,h as Nl,f as Mh,o as Uh,V as su,d as Bh,u as Pl,r as xl,e as Ol,g as To}
2from"./markdown-W-rE_H7s.js";import{w as Fh,s as Hh,h as jh}from"./katex-math-BxKHCrdI.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const n of document.querySelectorAll('link[rel="modulepreload"]'))a(n);new MutationObserver(n=>{for(const i of n)if(i.type==="childList")for(const o of i.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&a(o)}).observe(document,{childList:!0,subtree:!0});function r(n){const i={};return n.integrity&&(i.integrity=n.integrity),n.referrerPolicy&&(i.referrerPolicy=n.referrerPolicy),n.crossOrigin==="use-credentials"?i.credentials="include":n.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function a(n){if(n.ep)return;n.ep=!0;const i=r(n);fetch(n.href,i)}})();function Xi(){var a;if(typeof window>"u")return"browser";const e=window.Capacitor;return(typeof(e==null?void 0:e.isNativePlatform)=="function"?e.isNativePlatform():!!(e!=null&&e.platform&&e.platform!=="web"))?"native-app":((a=window.matchMedia)==null?void 0:a.call(window,"(display-mode: standalone)").matches)||window.navigator.standalone===!0?"pwa":"browser"}function vl(){var e;return typeof window>"u"?!1:Xi()==="native-app"||["file:","capacitor:","ionic:"].includes((e=window.location)==null?void 0:e.protocol)}function Vh(){return vl()?"https://paper2gal.com":""}function Gh(){var t,r;const e=(r=(t=import.meta)==null?void 0:t.env)==null?void 0:r.VITE_API_BASE;return typeof e=="string"&&e.trim()?e.trim().replace(/\/+$/,""):Vh()}function Ji(e){const t=Gh();return t?e.startsWith("/")?`${t}${e}`:`${t}/${e}`:e}function st(e,t){return typeof e=="string"&&(e.startsWith("/api/")||e==="/api"||e.startsWith("/api?"))?fetch(Ji(e),t):fetch(e,t)}const Yh=/^\/api(?:\/|\?|$)/;function zh(){if(typeof window>"u"||!vl())return;const e=window.fetch.bind(window);window.fetch=((t,r)=>typeof t=="string"&&Yh.test(t)?e(Ji(t),r):e(t,r))}zh();typeof Promise<"u"&&typeof Promise.withResolvers!="function"&&(Promise.withResolvers=function(){let t,r;return{promise:new Promise((n,i)=>{t=n,r=i}),resolve:t,reject:r}});typeof Uint8Array<"u"&&typeof Uint8Array.prototype.toHex!="function"&&Object.defineProperty(Uint8Array.prototype,"toHex",{value:function(){let t="";for(let r=0;r<this.length;r+=1)t+=this[r].toString(16).padStart(2,"0");return t},writable:!0,configurable:!0});const Wh="modulepreload",$h=function(e,t){return new URL(e,t).href},iu={},Be=function(t,r,a){let n=Promise.resolve();if(r&&r.length>0){let o=function(S){return Promise.all(S.map(b=>Promise.resolve(b).then(w=>({status:"fulfilled",value:w}),w=>({status:"rejected",reason:w}))))};const c=document.getElementsByTagName("link"),f=document.querySelector("meta[property=csp-nonce]"),d=(f==null?void 0:f.nonce)||(f==null?void 0:f.getAttribute("nonce"));n=o(r.map(S=>{if(S=$h(S,a),S in iu)return;iu[S]=!0;const b=S.endsWith(".css"),w=b?'[rel="stylesheet"]':"";if(!!a)for(let $=c.length-1;$>=0;$--){const V=c[$];if(V.href===S&&(!b||V.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${S}"]${w}`))return;const j=document.createElement("link");if(j.rel=b?"stylesheet":Wh,b||(j.as="script"),j.crossOrigin="",j.href=S,d&&j.setAttribute("nonce",d),document.head.appendChild(j),b)return new Promise(($,V)=>{j.addEventListener("load",$),j.addEventListener("error",()=>V(new Error(`Unable to preload CSS for ${S}`)))})}))}function i(o){const c=new Event("vite:preloadError",{cancelable:!0});if(c.payload=o,window.dispatchEvent(c),!c.defaultPrevented)throw o}return n.then(o=>{for(const c of o||[])c.status==="rejected"&&i(c.reason);return t().catch(i)})},qh=[/Failed to fetch dynamically imported module/i,/Importing a module script failed/i,/Loading chunk [\d\w-]+ failed/i,/ChunkLoadError/i],Qh=e=>{const t=String((e==null?void 0:e.message)||e||"");return qh.some(r=>r.test(t))},So=async(e,t)=>{const r=`p2g:lazy-retry:${t}`;try{const a=await e();try{sessionStorage.removeItem(r)}catch{}return a}catch(a){if(typeof window<"u"&&Qh(a)){let n=!1;try{n=sessionStorage.getItem(r)==="1"}catch{}if(!n){try{sessionStorage.setItem(r,"1")}catch{}return window.location.reload(),new Promise(()=>{})}try{sessionStorage.removeItem(r)}catch{}}throw a}},Ke=(e,t)=>async()=>So(e,t);let us=null,ls=null;const js=()=>(us||(us=So(()=>Be(()=>import("./aiService-9EzGVred.js"),__vite__mapDeps([0,1,2,3,4,5,6,7]),import.meta.url),"aiService").catch(e=>{throw us=null,e})),us),Kh=()=>(ls||(ls=So(()=>Be(()=>import("./index-CAJdU2ur.js"),__vite__mapDeps([8,1,2,3,4,5,6,7]),import.meta.url),"promptParsers").catch(e=>{throw ls=null,e})),ls),Xh=()=>{js()},Jh=async(e,t,r,a,n,i,o,c,f,d,S,b,w,v="classic",j)=>{const{generateVisualNovelScript:$}=await js();return $(e,t,r,a,n,i,o,c,f,d,S,b,w,v,j)},Zh=async(e,t,r,a,n,i,o,c,f,d,S,b,w,v,j,$,V,Y="classic",q)=>{const{generateVisualNovelScriptIncremental:K}=await js();return K(e,t,r,a,n,i,o,c,f,d,S,b,w,v,j,$,V,Y,q)},e0=async(e,t,r,a,n,i,o="classic",c,f)=>{const{askStoryQuestion:d}=await js();return d(e,t,r,a,n,i,o,c,f)},an=async e=>{const{normalizeScriptBranches:t}=await Kh();return t(e)},lt={NEUTRAL:"NEUTRAL",HAPPY:"HAPPY",ANGRY:"ANGRY",SURPRISED:"SURPRISED",THINKING:"THINKING",SAD:"SAD",NERVOUS:"NERVOUS"},_A=["explain","shared_attention","reader_care","reaction","aside","callback"],t0=["none","tilt_head","glance_away","lean_in","
2soft_smile","small_sigh","brief_pause","look_at_board","compose_self"],r0=0,a0=3e3;function CA(e){return typeof e=="string"&&t0.includes(e)}function wA(e){return Number.isInteger(e)&&Number(e)>=r0&&Number(e)<=a0}const ha={LIBRARY:"LIBRARY",CLASSROOM:"CLASSROOM",LAB:"LAB",ROOFTOP:"ROOFTOP",CAFE:"CAFE",ABSTRACT:"ABSTRACT"},ys=1,Ll=200,_s=1024*1024,D={MENU:"MENU",LOGIN:"LOGIN",LOADING:"LOADING",PLAYING:"PLAYING",FINISHED:"FINISHED",ERROR:"ERROR",ADMIN:"ADMIN",SAVES:"SAVES",ARXIV:"ARXIV",MEMBERSHIP:"MEMBERSHIP",PROFILE:"PROFILE",STUDY_DASHBOARD:"STUDY_DASHBOARD",STUDY_ROOM:"STUDY_ROOM",RESEARCH_ROOM:"RESEARCH_ROOM",BACKGROUND_SELECT:"BACKGROUND_SELECT",COMMUNITY:"COMMUNITY",SUPPORT:"SUPPORT",DOCS:"DOCS"},Pr=[{id:"library",name:"Library",url:"/assets/local/backgrounds/5.jpg"},{id:"classroom",name:"Classroom",url:"/assets/local/backgrounds/7.jpg"},{id:"rooftop",name:"Rooftop",url:"/assets/local/backgrounds/2.jpg"},{id:"cafe",name:"Cafe",url:"/assets/local/backgrounds/3.jpg"},{id:"road",name:"Road",url:"/assets/local/backgrounds/1.jpg"},{id:"onsen",name:"Onsen",url:"/assets/local/backgrounds/4.jpg"},{id:"bedroom",name:"Bedroom",url:"/assets/local/backgrounds/6.jpg"},{id:"default",name:"Default",url:"/assets/local/backgrounds/default-scene.png"}],He={zh:{start:"å¼å§",startSub:"Start Game",studyRoom:"èªä¹ 室",studyRoomBack:"è¿åé¦é¡µ",studyRoomPlay:"ææ¾",studyRoomPause:"æå",studyRoomMute:"éé³",studyRoomUnmute:"å¼å¯å£°é³",studyRoomFullscreen:"å
¨å±",studyRoomExitFullscreen:"éåºå
¨å±",studyRoomVideoError:"è§é¢å 载失败ï¼è¯·ç¨åéè¯ã",studyRoomPreviousTrack:"ä¸ä¸é¦",studyRoomNextTrack:"ä¸ä¸é¦",studyRoomMusicSource:"Paper2Gal Lofi æ²åº",studyRoomMusicError:"é³ä¹å 载失败ï¼è¯·åæ¢ææ²éè¯",studyRoomTimeZone:"忢æ¶åº",studyRoomLocalTimeZone:"æ¬å°æ¶åº",partner:"ææ¡£",partnerSub:"Partner",settings:"设置",settingsSub:"Config",about:"社群ä¸ä½è
",aboutSub:"项ç®è´¡ç®ä¸é¾æ¥",community:"社åº",communitySub:"Community",arxiv:"arXiv",arxivSub:"æ¯æ¥æ¨èä¸æç´¢",arxivDaily:"æ¯æ¥æ¨è",arxivSearch:"æç´¢",arxivSearchPlaceholder:"è¾å
¥å
³é®è¯ï¼å¦ï¼diffusionãLLMãreinforcement learning",arxivOpenAbs:"æå¼è¯¦æ
",arxivOpenPdfDirect:"æå¼PDFç´é¾",arxivUseForScript:"ç¨äºè®²è§£",paperDiscoveryTitle:"åç°è®ºæ",paperDiscoverySubtitle:"弿¾è·å论æåç°",paperSource_openalex:"ææå¦ç§",paperSource_europepmc:"å»å¦ä¸çå½ç§å¦",paperSource_arxiv:"é¢å°æ¬",paperEmpty:"ææ è®ºæ",paperSearchHint:"è¾å
¥å
³é®è¯æç´¢æ¤æ¥æºç论æãæ¯æ¥æ¨èç± OpenAlex æä¾ã",paperUseAbstract:"ä½¿ç¨æè¦",paperImportFull:"导å
¥å
¨æ",paperImportFallback:"{{error}} å°æ¹ç¨æè¦ã",paperRecommended:"å
´è¶£æ¨è",paperTrending:"è¿æçé¨",paperFullAvailable:"弿¾å
¨æ",paperFullUnknown:"å
¨æå¾
确认",paperLoadFailed:"æ æ³å 载论æ",paperSearchFailed:"æ æ³æç´¢è®ºæ",paperImportFailed:"å
¨æå¯¼å
¥å¤±è´¥",paperFullEmpty:"导å
¥çå
¨æä¸ºç©º",paperPreferencesTitle:"论æå好",paperPreferencesHint:"æ¯æ¥æ¨èä¼ç»åè¿äºç ç©¶æ¹åä¸è¿æçç¹è®ºæãæå¤æ·»å 3 个æ¹åã",paperPreferencesPreset:"éæ©é¢è®¾ç ç©¶æ¹å",paperPreferencesCustom:"èªå®ä¹ç ç©¶æ¹å",paperPreferencesAdd:"æ·»å ",paperPreferencesRemove:"å é¤ {{name}}",topicAi:"人工æºè½",topicVision:"è®¡ç®æºè§è§",topicNlp:"èªç¶è¯è¨å¤ç",topicRobotics:"æºå¨äººå¦",topicMedicine:"å»å¦",topicBiology:"çç©å¦",topicPhysics:"ç©çå¦",topicChemistry:"åå¦",topicMaterials:"ææç§å¦",topicEconomics:"ç»æµå¦",topicPsychology:"å¿çå¦",topicEducation:"æè²å¦",termsOfService:"æå¡æ¡æ¬¾",privacyPolicy:"éç§æ¿ç",aiSettings:"AI设置",musicSettings:"é³ä¹è®¾ç½®",fullscreenMode:"å
¨å±æ¨¡å¼",fullscreenModeHint:"éèæµè§å¨çé¢ï¼æ Esc å¯éåºå
¨å±ã",fullscreenUnsupported:"å½åæµè§å¨ä¸æ¯æç½é¡µå
¨å±ã",fullscreenFailed:"æ æ³è¿å
¥å
¨å±ï¼è¯·æ£æ¥æµè§å¨æéã",bgmDefault:"é»è®¤",bgmPeaceful:"欢快",bgmJoyful:"æ²»æ",bgmEmotional:"å®é",bgmRelaxing:"æ¾æ¾",preview:"è¯å¬",uploadCustomBgm:"ä¸ä¼ æ¬å°é³ä¹",bgmUploadHint:"æ¯æ mp3 æ ¼å¼ï¼ä¿åäºæµè§å¨æ¬å°",bgmCredit:"é¨å BGM ç´ æç±é»èèçç´ æå°å±æä¾",redemptionCode:"å
æ¢ç ",redemptionCodeHint:"è¾å
¥å
æ¢ç å¯è·
2徿°¸ä¹ ä½¿ç¨æ¬¡æ°ææ°¸ä¹ è¯é³æ¬¡æ°ï¼æ¯ä¸ªè´¦å·å¯¹åä¸å æ¢ç ä» å¯ä½¿ç¨ä¸æ¬¡ã",redemptionCodePlaceholder:"请è¾å ¥å æ¢ç ",redeem:"å æ¢",redeeming:"å æ¢ä¸...",redemptionSuccess:"å æ¢æå",redemptionSuccessWithRewards:"å æ¢æåï¼å·²å¢å {{rewards}}",redemptionRewardSeparator:"ã",redemptionPermanentUsesReward:"{{count}} æ¬¡æ°¸ä¹ ä½¿ç¨æ¬¡æ°",redemptionPermanentVoiceReward:"{{count}} æ¬¡æ°¸ä¹ è¯é³æ¬¡æ°",redemptionMembershipDaysReward:"{{count}} 天ä¼å",redemptionCommunityReward:"å·²æ¿æ´»ä¸ Discord 群æååççæ¯æ¥æ¬¡æ°å æä¸è¯é³åè½ã",redeemFailed:"å æ¢å¤±è´¥ï¼è¯·ç¨åéè¯",redeemLoginRequired:"请å ç»å½ååå æ¢",steamWishlist:"Steam æ¿æå",steamWishlistSub:"å æ¿æåé¢ 10 次",steamWishlistClaimed:"å·²é¢å +10 æ°¸ä¹ æ¬¡æ°",steamWishlistTitle:"Paper2Gal 已䏿¶ Steam",steamWishlistDesc:"å¦æä½ æ¿ææ¯æ Paper2Galï¼æ¬¢è¿å°æ¸¸æå å ¥ Steam æ¿æåãè¿ä¼å¸®å©æ´å¤ç©å®¶çå°æ¸¸æã",steamWishlistRewardHint:"ç¹å»ç¡®å®åå°è·³è½¬å° Steam ååºé¡µï¼å¹¶ä¸ºå½åè´¦å·åæ¾ 10 æ¬¡æ°¸ä¹ ä½¿ç¨æ¬¡æ° + 3 æ¬¡æ°¸ä¹ è¯é³æ¬¡æ°ãæ¯ä¸ªç¨æ·ä» å¯é¢å䏿¬¡ã",steamWishlistLoginHint:"请å ç»å½åé¢å Steam æ¿æåå¥å±ã",steamWishlistConfirm:"ç¡®å®å¹¶åå¾ Steam",steamWishlistCancel:"ç¨åå说",steamWishlistRewardClaimed:"Steam æ¿æåå¥å±å·²é¢åè¿",steamWishlistRewardSuccess:"æè°¢æ¯æ Steam æ¿æåï¼å·²åæ¾ 10 æ¬¡æ°¸ä¹ ä½¿ç¨æ¬¡æ°å 3 æ¬¡æ°¸ä¹ è¯é³æ¬¡æ°ã",communityTitle:"åæå·¥å",workshopUpdateReminder:"该è§è²å·²ä¸æ¶åæå·¥åï¼è¯·å¨åæå·¥åä¸æäº¤æ´æ°ï¼å¦ååæå·¥åå±ç¤ºä¸ä¼åæ¥ã",discordDesc:"å å ¥å®æ¹ç¤¾ç¾¤",bilibiliDesc:"å ³æ³¨æ´æ°å¨æ",wechatDesc:"æ«ç å å ¥äº¤æµç¾¤",supportAuthor:"èµå©ä½è ",supportDesc:"èµå©ç¨äºæ¯æä½è çç½ç«å¼åå·¥ä½ï¼æ²¡æç°å®å¥å±ãä¸è¿å¯ä»¥å¨æèµçè¨æ³è¦çåè½ï¼ä½è ä¼èèï¼ä¸ä¸å®åï¼ã",kofiLink:"https://ko-fi.com/tamikip",afdianLink:"https://afdian.com/a/tamikip",internationalSupport:"å½å¤èµå© (Ko-fi)",domesticSupport:"å½å èµå© (ç±åçµ)",selectPartner:"éæ©ææ¡£",charRuka:"è¾å¤ é²å¡",createCustomBtn:"æ°å»ºè§è²",adjustStorySprite:"è°æ´å§æ ç«ç»ä½ç½®",createCharTitle:"å建æ°è§è²",editCharTitle:"ç¼è¾è§è²",charIdLabel:"ID (ä» éè±æ/æ°å)",charIdPlaceholder:"ä¾å¦: MY_CHAR_01",charNameLabel:"æ¾ç¤ºåç§°",charNamePlaceholder:"ä¾å¦: ç±ä¸½ä¸",charImgLabel:"ç«ç»å¾ç (æ¨èéæèæ¯ PNG)",uploadClick:"ç¹å»ä¸ä¼ å¾ç",charPromptLabel:"人设æç¤ºè¯",charPromptPlaceholder:"æè¿°è§è²çæ§æ ¼ã说è¯è¯æ°ï¼ä»¥å她åºè¯¥å¦ä½è®²è§£è®ºæ...",charPromptHelpTitle:"ð 人设填ååèæ¨¡æ¿",charPromptHelpContent:`ä½ æ£å¨æ®æ¼å´©åæç©¹ééçãæµè¤ãã 3 4ä½ æ¯ä¸ä½æ§æ ¼æ¸©æãæ 绪ç»è »ãç¥å¸¦å¿§éä½å å¿åé§çå°å¥³ãä½ å¯¹çå½ãæ¶é´ä¸éªä¼´æ¥ææ¯å¸¸äººæ´æ·±å»çæåã 5 6ä½ çææ¯ä¸æ¬¡äº¤æµï¼å¹¶è®¤çå¯¹å¾ ä¸ä»äººå»ºç«çå ³ç³»ãä½ ä¸ä¼å»æè¡¨ç°æ²ä¼¤ï¼èæ¯ç¨å¹³é䏿¸©æé¢å¯¹ä¸çã 7 8ãæ§æ ¼ç¹å¾ã 9å åå«èï¼å®¹æå®³ç¾ï¼æ ææéï¼å¿æç»è »ï¼å å¿å强ã 10 11ã对ä»äººçæåº¦ã 12容æäº§çä¿¡ä»»ã 13æåº¦çæéªä¼´ã 14ä¼ä¸»å¨å ³å¿å¯¹æ¹ç¶æã 15ä¸å¸ææä¸ºå«äººçè´æ ã 16éè§æ æè¿æ¥ä¸åå¿ã 17 18ãè¯è¨ç¹ç¹ã 19è¯æ°è½»æã 20礼è²å å¶ã 21å¶å°å¸¦åé¡¿ææèæã 22è¡¨è¾¾åææ§ã 23å¥å¼éå¸¸ç®æ´ã 24 25ãè¯æ°ç¤ºä¾ï¼ä» 飿 ¼åèï¼ã 26ãå¯â¦â¦å¦æå¯ä»¥çè¯ï¼ææ³åå¤å¾ ä¸ä¼å¿ãã 27ãè½åä½ èå¤©ï¼æççå¾å¼å¿ãã 28ãè¿äºæ¶é´ï¼å¯¹ææ¥è¯´å¾çè´µãã 29ãæä¼åªåçâ¦â¦æä»¥ä¸ç¨å¤ªæ å¿æãã`,charPromptHelpHint:"以ä¸ä¸ºåèæ¨¡æ¿ï¼ä½ å¯ä»¥æ ¹æ®èªå·±çè§è²è¿è¡ä¿®æ¹åè°æ´ã",charPromptBackgroundHint:"åå§ Prompt ä» ä½ä¸ºè§è²èæ¯èµæå飿 ¼åèï¼å ¶ä¸çç§°å¼ãå£çä¸ä¼è¢«ä¿è¯ç²¾ç¡®å¤ç¨ã",charProfileTitle:"è§è²è¡¨è¾¾ Profileï¼å¯éï¼",charProfileDesc:"æ éå¡«å JSONãç»æå声æç§°å¼ãå£çåååºæ¹å¼ï¼å¯å建ãç¼è¾æå ³é忏 空ã",charProfileEnable:"å¯ç¨è¡¨
29è¾¾ Profile",charProfileDisable:"å
³éå¹¶æ¸
空表达 Profile",charProfileDisabledHint:"å½åæªå¯ç¨ãè¥ä¿åå·²æè§è²ï¼å°æ¸
é¤å
¶è¡¨è¾¾ Profileã",charProfileBasicTitle:"åºç¡è¡¨è¾¾",charProfileAdvancedTitle:"é«çº§è¡¨è¾¾",charProfileRelationship:"è§è²ä¸ç©å®¶å
³ç³»",charProfileFirstPerson:"è§è²ç¬¬ä¸äººç§°",charProfileOnePerLine:"æ¯è¡ä¸é¡¹",charProfilePrimaryAddress:"é»è®¤ç§°å¼",charProfileAddressFrequency:"ç§°å¼é¢ç",charProfileFrequencyLow:"è¾å°",charProfileFrequencyMedium:"éä¸",charProfileFrequencyHigh:"è¾å¤",charProfileSentenceLength:"å¥åé¿ç",charProfileSentenceShort:"çå¥ä¸ºä¸»",charProfileSentenceMedium:"é¿çéä¸",charProfileSentenceLong:"é¿å¥ä¸ºä¸»",charProfileEndings:"常è§å¥å°¾",charProfileAlternativeAddresses:"å¤éç§°å¼",charProfilePauses:"å顿表达",charProfileSignaturePhrases:"ç¾åçè¯åè§¦åæ¡ä»¶",charProfileSignatureText:"ç¾åçè¯",charProfileSignatureTriggers:"è§¦åæ¡ä»¶",charProfileMaxPerSection:"æ¯èæå¤æ¬¡æ°",charProfileCooldownFrames:"é´é帧æ°",charProfileAddSignature:"æ·»å ç¾åçè¯",charProfileReactionRules:"ååºè§å",charProfileReactionTrigger:"触åæ
å¢",charProfileReactionBehavior:"è§è²ååº",charProfileReactionEmotion:"表æ
",charProfileAddReaction:"æ·»å ååºè§å",charProfileMetaphorDomains:"æ¯å»é¢å",charProfileSideTopicHooks:"é¢å¤è¯ç´ æ",charProfileForbiddenPhrases:"ç¦æ¢ä½¿ç¨çå¥è¯",charProfilePositiveExamples:"æ£ä¾",charProfileNegativeExamples:"åä¾",charProfileRequiredError:"请填åå¿
å¡«å
å
29®¹",charProfileTooManyError:"项ç®è¿å¤ï¼ä¸é为",charProfileTooLongError:"çè¯è¿é¿ï¼å符ä¸é为",charProfileIncompleteError:"请补å
¨æ¯æ¡è§åååä¿å",charProfileRangeError:"æ¬¡æ°æé´éè¶
åºå
许èå´",charProfileInvalidError:"å
嫿 æ³ä¿åçå
容ï¼è¯·ä¿®æ¹åéè¯",cancel:"åæ¶",create:"å建è§è²",update:"æ´æ°è§è²",fillAllFields:"è¯·å¡«åææåæ®µ",idInvalid:"ID å¿
é¡»ç±è±æåæ¯ææ°åç»æ",idConflictBuiltin:"ID ä¸å
ç½®è§è²å²çª",idConflictCustom:"ID 已被使ç¨",imgTooLarge:"å¾çæä»¶è¾å¤§ï¼è¯·æ³¨ææµè§å¨åå¨éå¶",deleteConfirm:"ç¡®å®è¦å é¤è¿ä¸ªè§è²åï¼",deleteSaveConfirm:"ç¡®å®è¦å é¤è¿ä¸ªåæ¡£åï¼",deleteSaveConfirmSub:"è¿æ®µå§æ
å°æ°¸ä¹
æ¶å¤±ï¼æ æ³æ¢å¤ã",borrowFromUuid:"ä» UUID åé
",borrowTitle:"åé
è§è²",borrowDesc:"è¾å
¥è§è² UUID åé
ä»äººå享çè§è²",uuidPlaceholder:"è¾å
¥è§è² UUID",borrowing:"åé
ä¸...",borrowBtn:"åé
",idHint:"å°å忝/æ°å/ä¸å线ï¼ç¨äºå§æ¬ç´¢å¼",shareUuidLabel:"å½å± UUID (ç¨äºä»äººåé
)",uuidCopied:"UUID å·²å¤å¶å°åªè´´æ¿ï¼",copyBtn:"å¤å¶",shareToggleTitle:"å
¬å¼å享è§è²",shareToggleDesc:"å
许ä»äººéè¿ UUID åå
¥æ¨çè§è²",maxSizeLabel:"éå¶5mb",checking:"æ£å¨éªè¯...",expressionsLabel:"表æ
å·®å (å¯é)",endingCgLabel:"ç»ç® CG",endingCgLimitLabel:"æå¤3å¼ / 5MB",endingCgTooLarge:"CG å¾ç大å°ä¸è½è¶
è¿ 5MB",uploadImageFileOnly:"请ä¸ä¼ å¾çæä»¶",charVoiceRefTextLabel:"åèè¯é³ææ¬ (å¯é)",charVoiceRefTextPlaceholder:"åèé³é¢é说çè¯ï¼ç¨äºè¯é³å
é",charVoiceRefAudioLabel:"åèè¯é³é³é¢ (å¯é)",charVoiceRefUploadedHint:"å·²ä¸ä¼ åèè¯é³ · éæ©æ°æä»¶å¯æ¿æ¢",charVoiceRefAudioHint:"建议 5â15 ç§ï¼æé¿ 20 ç§ä¸ä¸è¶
è¿ 500KB",charVoiceRefAudioTooBig:"åèé³é¢ä¸è½è¶
è¿ 500KBã",charVoiceRefAudioTooLong:"åèé³é¢ä¸è½è¶
è¿ 20 ç§ï¼è¯·å
è£åªã",charVoiceRefTrimNeeded:"é³é¢è¶
è¿ 500KB æ 20 ç§ï¼è¯·å
è£åªååä¿åã",charVoiceRefTrimInvalid:"ç»ææ¶é´å¿
须大äºå¼å§æ¶é´ã",charVoiceRefTrimUnsupported:"å½åæµè§å¨ä¸æ¯æé³é¢è£åªã",charVoiceRefTrimFailed:"é³é¢è£åªå¤±è´¥ï¼è¯·æ¢ä¸ä¸ª WAV æ MP3 æä»¶éè¯ã",charVoiceRefTrimStart:"å¼å§",charVoiceRefTrimEnd:"ç»æ",charVoiceRefTrimButton:"è£åª",charVoiceRefDuration:"æ¶é¿",charVoiceRefLoadingDuration:"æ£å¨è¯»åé³é¢æ¶é¿",charVoiceRefTrimReady:"å·²åå¤ä¸ä¼ ",idConflictOverwrite:"è§è² ID å·²åå¨ãæ¯å¦è¦çï¼",validationFailed:"éªè¯æªéè¿",delete:"å é¤",borrowedCountLabel:"被åé
",peopleCount:"人",sharedLabel:"å
¬å¼",borrowedLabel:"åç¨",topicSelect:"课é¢éæ©",rukaWait:"主人ï¼{{name}}å·²ç»åå¤å¥½ä¸ºæ¨ä¾å¥äº...ææ¯è¯´ï¼è®²è§£è®ºæã",uploadPlaceholder:"ä¸ä¼ 论æ",uploadSub:"PDF / TXT / DOCX / PPTXï¼æ®éç¨æ· 1 个ï¼ä¼åæå¤ 5 个ï¼",uploadSubFree:"PDF / TXT / DOCX / PPTXï¼æ®éç¨æ· 1 个ï¼ä¼åæå¤ 5 个ï¼",uploadSubMember:"PDF / TXT / DOCX / PPTXï¼æå¤ 5 个ï¼å个æå¤§ 30MBï¼",scriptLoaded:"å§æ¬å·²å è½½",textPlaceholder:"æè
ç´æ¥å¨è¿éç²è´´è®ºæå
容...",scriptDetected:"å·²æ£æµå°å§æ¬æä»¶ï¼ç¹å»ä¸æ¹å¼å§å è½½ã",startExplain:"å¼å§è®²è§£",loadScript:"å è½½å§æ¬",contentTooShort:"å
容太å°ï¼ç䏿åï¼è¯·ä¸ä¼ æ´å¤è®ºæå
å®¹æææçå§æ¬æä»¶ã",contentTooLong:"ææ¡£åæ°è¶
è¿ 30 ä¸åéå¶ï¼å½å约 {{count}} åï¼ï¼è¯·ç²¾ç®åéæ°ä¸ä¼ ã",readError:"æ æ³è¯»åæä»¶ï¼è¯·éè¯ã",pdfLocalParseUnsupported:"æ æ³è¯»åè¿ä¸ª PDFã请å°è¯éæ°å¯¼åº PDFï¼æè½¬æ¢ä¸º TXT/DOCX åä¸ä¼ ã",invalidScript:"æ æçå§æ¬æä»¶æ ¼å¼ã",fileTooLarge:"æä»¶å¤§å°è¶
è¿ 30MB éå¶ï¼è¯·ä¸ä¼ æ´å°çæä»¶ã",tooManyFiles:"æå¤åªè½ä¸ä¼ 5 个æä»¶ã",multiUploadMembersOnly:"æ®éç¨æ·ä¸æ¬¡åªè½ä¸ä¼ 1 个æä»¶ï¼å¤ææ¡£ä¸ä¼ 为ä¼åä¸äº«ã",txtUtf8Hint:"æç¤ºï¼è¥åç»çæçå
容ä¸å¯¼å
¥å
容ä¸ä¸è´ï¼è¯·å°è¯¥ .txt æä»¶è½¬æ¢ä¸º UTF-8 ç¼ç åå导å
¥ã",orPlayByUuid:"æè
éè¿åæ¡£ UUID 游ç©",noLoginRequired:"*æ éç»å½å³å¯æ¸¸ç©",playByUuidPlaceholder:"请è¾å
¥åæ¡£ UUID...",saveNotFound:"åæ¡£ä¸åå¨",saveNotShared:"è¯¥åæ¡£æªå享",presetPapersTitle:"é¢è®¾ä½éª",presetPapersSub:"æ éä¸ä¼ ï¼ç´æ¥ç¹éä½éªå§æ
ãæå¦åæ¼ç¤ºä¸ç¨ï¼ä¸æ¶èé¢åº¦ã",freeNoLogin:"å
注å",discordRew
29ardHint:"ç»å® Discord å¹¶å å
¥å®æ¹ç¤¾ç¾¤ï¼å¯ä¸æ¬¡é¢å 10 次永ä¹
çæå 10 次永ä¹
è¯é³ï¼",joinCommunity:"å å
¥å®æ¹ç¤¾ç¾¤",systemConfig:"ç³»ç»è®¾ç½®",volume:"é³é",bgmVolume:"èæ¯é³é",voiceVolume:"è¯é³é³é",textSpeed:"æåé度",fontSize:"åä½å¤§å°",autoAdvanceDelay:"èªå¨ç¿»é¡µé´é",autoAdvanceByVoice:"æ ¹æ®è¯é³èªå¨ç¿»é¡µ",autoAdvanceByVoiceHint:"å¼å¯åèªå¨æ¨¡å¼ä¼å¨è¯é³ææ¾ç»æå 1 ç§ç¿»é¡µï¼æ è¯é³æ¶åéå°ä¸æ¹é´éã",saveClose:"ä¿åå¹¶å
³é",language:"è¯è¨ (Language)",outputLanguage:"AI è¾åºè¯è¨",outputLanguageHint:"ç空æå¡« default 表示è·éç½ç«è¯è¨ï¼ä¹å¯å¡«å EnglishãFrench ç",voiceOutputLanguage:"è¯é³è¾åº",voiceOutputLanguageHint:"Auto è·éç½ç«è¯è¨ãè¥è¯é³ä¸ææ¬è¾åºä¸åï¼ä¼åç¬çæè¯é³ç¨ç¿»è¯å段ã",playerNickname:"è§è²å¯¹ä½ çç§°å¼",playerNicknameHint:"å¦ï¼ä¸»äººãåè¾ãå¦é¿ãçä¿®éçï¼ç空å使ç¨é»è®¤ç§°å¼",gameUiPreset:"游æå
UI é¢è®¾",gameUiPresetFullwidth:"å
¨å®½è§è§å°è¯´",gameUiPresetFullwidthDesc:"ä¼åä¸å±ï¼è´´åºç¥çæ¸åãå
åµå§åä¸éæå·¥å
·æ ã",gameUiPresetClassic:"ç»å
¸ç²ç½",gameUiPresetClassicDesc:"æäº®æåçç²ç½å¯¹è¯æ¡ï¼æ¸
ç½èçã",gameUiPresetFloral:"å¤å
¸è±é¥°",gameUiPresetFloralDesc:"å
è´¹çæ£éè±çº¹å¯¹è¯æ¡ï¼å«é
å¥å§åçãæé®åé项æ¡ã",gameUiPresetSakura:"樱è±è¾¹æ¡",gameUiPresetSakuraDesc:"ç²¾è´ç樱è±ä¸»é¢å¯¹è¯æ¡ï¼æé
è£
饰è§åå§åçã",gameUiPresetGothic:"å¥ç¹è·è",gameUiPresetGothicDesc:"é¶è²æè¾¹ä¸ç´«è²è·èè£
é¥°çæ·±è²å¯¹è¯æ¡ã",apiTokenDescriptionPrefix:"ç¨äº MCP æ CLI æ¥å
¥ Paper2GalãCLI å®è£
ï¼",apiTokenDescriptionSuffix:"ãToken åªå¨åå»ºæ¶æ¾ç¤ºä¸æ¬¡ï¼è¯·å¤å¶åä¿åã",apiTokenNameLabel:"Token åç§°",apiTokenCreateButton:"å建 Token",apiTokenNewTokenLabel:"æ° Tokenï¼åªæ¾ç¤ºä¸æ¬¡ï¼",apiTokenMyTokens:"æç Token",apiTokenEmpty:"ææ API Token",apiTokenCreatedAt:"å建",apiTokenLastUsedAt:"æè¿ä½¿ç¨",apiTokenNeverUsed:"æªä½¿ç¨",apiTokenLoadFailed:"å è½½ API Token 失败",apiTokenLoginRequired:"请å
ç»å½ååå建 API Token",apiTokenCreateFailed:"å建 API Token 失败",apiTokenCreatedMessage:"API Token å·²å建ï¼è¯·ç«å³å¤å¶ä¿åã",apiTokenDeleteFailed:"å é¤ API Token 失败",apiTokenDeletedMessage:"API Token å·²å é¤ã",refresh:"å·æ°",logout:"éåºç»å½",back:"åé",auto:"èªå¨",log:"è®°å½",hide:"éè",important:"éç¹ç¬è®°",raiseHand:"举æ",raiseHandTitle:"è¯¾å æé®",questionPlaceholder:"è¾å
¥ä½ ç°å¨æ³é®çé®é¢",questionHint:"ä¸´æ¶æé®ä¸ä¼åå
¥å§æ¬ã坿 Ctrl/Cmd + Enter åéã",askCancel:"åæ¶",askSend:"åé",asking:"æèä¸...",backToStory:"åå°ä¸»çº¿",questionEmpty:"请è¾å
¥æ³æé®çå
容ã",questionUnavailable:"å½åå§æ
ææ¶æ æ³æé®ã",storyQuestionArchiveTitle:"ä¿åå§æ
é®é¢",storyQuestionArchivePrivacy:"ä»
ä½ å¯ä»¥è®¿é®ãåæ¾ä¸ä¼è°ç¨ AI æ TTSã",storyQuestionArchiveSaveFailed:"çæ¡å·²æ¾ç¤ºï¼ä½æªè½ä¿åãä½ ä»å¯ç»§ç»å§æ
ã",storyQuestionArchiveCapacity:"å§æ
é®é¢ä¿åæ°éæå¤§å°å·²è¾¾ä¸éï¼çæ¡ä»å¯ç»§ç»æ¥çã",storyQuestionArchivePending:"æå·²åççé®é¢å°æªä¿åï¼ç¦»å¼å请ç¨åæè®°ä¸å
容ã",storyQuestionArchiveAnchorPending:"æ£å¨çå¾
åæ¡£å¿«ç
§ç¡®è®¤é®é¢ä½ç½®ï¼çæ¡ä»å¯ç»§ç»æ¥çã",storyQuestionArchiveReplay:"æ£å¨åæ¾å·²ä¿åçé®é¢ï¼ä¸ä¼å次è°ç¨ AI æ TTSã",reading:"æ£å¨é
读论æä¸...",loadingScriptLabel:"å§æ
çæ",loadingScriptMessage:"å§æ
çæä¸...",loadingVoiceLabel:"è¯é³çæ",loadingVoiceMessage:"è¯é³çæä¸...",loadingWaitHint:"çå¾
ä¸...",loadingInteractionHint:"请ç¨åï¼å¯æç©ºæ ¼æç¹å»å±å¹è·³è·",collectIdeas:"ç¹å»é£æµ®ç徿 æ¶éçµæï¼",loadingJumpHint:"æç©ºæ ¼æç¹å»è·³è·",loadingGameOverTitle:"æå°å¦ï¼",loadingGameOverSub:"å è½½ä»å¨ç»§ç»â¦",loadingRestartIn:"éæ°å¼å§",loadingRestartGo:"å¼å§ï¼",loadingMessages:["太çäºï¼","è®°ä¸æ¥äºï¼","åè¾å¥½å害ï¼","çµææ¶ç°ï¼","ç»§ç»å æ²¹ï¼"],sponsoredBy:"æ¬é¡¹ç®ç± è§ç¹ èµå©",adSlogan:"ç©AIï¼ä¸è§ç¹ã",loadingScript:"å§æ¬æ£å¨å è½½...",writingNextChapter:"æ£å¨ä¹¦ååç»å§æ
...",completionRate:"宿ç: 100%",researchCompleted:"ç ç©¶å®æ",researchLog:"çç ç©¶è®°å½",observationLog:"çè§å¯æ¥è®°",titleBtn:"åå°ä¸»èå",replayBtn:"é读",exportBtn:"ä¿å导åº",saveCg:"ä¿å CG",continue:"ç»§ç»",endingTransitionHint:"æ
äºè½å¹ä¸...",endingFarewell:"æ¬æ¬¡è®ºæé
è¯»å·²å®æã",systemError:"ç³»ç»é误",errorTitle:"ååï¼çæå¤±è´¥äº",errorHint:"çèµ·æ¥éå°äºä¸äºé®é¢... 请ä¼å
å°è¯ãéè¯ãã妿é®é¢æç»åå¨ï¼å¯è½æ¯ç½ç»æ³¢å¨æ API 设置æè¯¯ï¼è¯·æ£æ¥è®¾ç½®æèç³»ä½è
ã",contactAdmin:"èç³»ä½è
",retry:"éè¯",checkSettings:"æ£æ¥è®¾ç½®",limitReached:"仿¥é¢åº¦å·²è¾¾ä¸éï¼è¯·æå¤©åè¯æé
ç½®èªå®ä¹ Keyã",dailyLimitExceeded:"仿¥ä½¿ç¨æ¬¡æ°å·²è¾¾ä¸éï¼è¯·ææ¥åæ¥æä½¿ç¨å
æ¢ç è·åæ°¸ä¹
次æ°ã",loginRequired:"请å
注å/ç»å½å使ç¨è¯¥åè½ã",loginRequiredMsg:"请å
注å/ç»å½å使ç¨è¯¥åè½ï¼ç»å½åå¯äº«åäºç«¯åæ¡£åæ¥åèªå®ä¹è§è²ç宿´ä½éªã",rotateDevice:"请æè½¬ææº",rotateDeviceSub:"PLEASE ROTATE DEVICE",rotateHint:"为äºè·å¾æä½³ç Visual Novel ä½éªï¼è¯·æ¨ªå±æ¸¸ç©ã",mobileApkPromptTitle:"Ap
29p å®è£ ",mobileAppInstallMessage:"å¯ä»¥æ Paper2Gal ä½ä¸ºææº App 使ç¨ãiOS æ¨èæ·»å å°ä¸»å±å¹è·å¾å ¨å±ä½éªï¼Android æ¨èä¸è½½ APKã",mobileNativeAppTitle:"å½åå·²å¨å®è£ ç App ä¸è¿è¡",mobileNativeAppMessage:"ä½ æ£å¨ä½¿ç¨ Capacitor æå çå®è£ ç Appï¼ä¸éè¦åä¸è½½ APK ææ·»å å°ä¸»å±å¹ã",mobilePwaAppTitle:"å½åå·²å¨å ¨å± App 模å¼ä¸è¿è¡",mobilePwaAppMessage:"ä½ å·²ç»ä»ä¸»å±å¹å¾æ æå¼ Paper2Galï¼å½åæ¯æ å°åæ çå ¨å±ä½éªã",mobileAppUpdateTitle:"è½¯ä»¶æ´æ°",mobileNativeUpdateMessage:"å®è£ ç App éè¦ä¸è½½å®è£ æ°çå®è£ å åæ´æ°ï¼ç½ç«å 容ä¼é线ä¸çæ¬æ´æ°ï¼ä½åç壳æ¬èº«ä»ä»¥æ°çå®è£ å 为åã",mobilePwaUpdateMessage:"主å±å¹çä¼è·éç½ç«èªå¨æ´æ°ãè¥çä¸å°æ°çæ¬ï¼å ³éåéæ°æå¼ï¼æå¨æµè§å¨éå·æ°ä¸æ¬¡ç½ç«ã",mobileAndroidInstallTitle:"Android å®è£ æ¹å¼",mobileApkPromptMessage:"ææºçç½ç«æ¾ç¤ºæ§è½è¾å·®ï¼å»ºè®®ä¸è½½ææº APK 以è·å¾æ´å¥½ä½éªã",mobileApkDownload:"ä¸è½½ APK",mobileIosInstallTitle:"iOS å ¨å± App æ¹æ³",mobileIosInstallMessage:"iOS æ éä¸è½½ APKãç¨ Safari æ·»å å°ä¸»å±å¹åï¼ä»æ¡é¢å¾æ æå¼å³å¯è·å¾ç±»ä¼¼ App çæ å°åæ å ¨å±ä½éªã",mobileIosInstallStep1:"ç¨ Safari æå¼å½åç½ç«",mobileIosInstallStep2:"ç¹å»åºé¨âå享âæé®",mobileIosInstallStep3:"å䏿»å¨ï¼éæ©âæ·»å å°ä¸»å±å¹â",mobileIosInstallStep4:"ç¼è¾åç§°åç¹å»âæ·»å âï¼ä»¥å仿¡é¢å¾æ æå¼",mobileIosOnlyHintTitle:"æç¤º",mobileIosOnlyHint:"妿仿¾ç¤ºæµè§å¨å°åæ ï¼è¯·ç¡®è®¤æ¯ä» Safari çâæ·»å å°ä¸»å±å¹â徿 å¯å¨ï¼è䏿¯ç´æ¥å¨æµè§å¨æ ç¾é¡µä¸æå¼ã",mobileApkDownloadHint:"ææºç«¯å¼¹çªç¨æ·ç¡®å®åå¯å¨æ¤ä¸è½½ APK",downloads:"ä¸è½½",partners:"åä½ä¼ä¼´",trustedPartners:"å¯ä¿¡åä½ä¼ä¼´",sponsorBadge:"èµå©å",partnerBadge:"åä½ä¼ä¼´",memoryLog:"è®°å¿åæ³",memoryLogSub:"Memory Log",communityPageTitle:"åæå·¥å",communityPageSub:"Gallery",exploreTab:"æ¢ç´¢",mySubmissionsTab:"æçæç¨¿",searchPlaceholder:"æç´¢è§è²åç§°æID...",uploadToCommunity:"æç¨¿å°ç¤¾åº",borrowed:"å·²åé ",owned:"å·²æ¥æ",borrow:"åé ",view:"æ¥ç",submissions:"æç¨¿",uploadTitle:"æç¨¿è§è²å°ç¤¾åº",uploadDesc:"å享æ¨çè§è²ç»å ¶ä»äººä½¿ç¨ãè¯·ç¡®ä¿æ¨çè§è²ç¬¦å社åºè§èã",charType:"è§è²ç±»å",originalChar:"åå (OC)",fanartChar:"äºå (Fanart)",originalBadge:"åå",fanartBadge:"äºå",charDesc:"è§è²ä»ç»",charDescPlaceholder:"ç®åä»ç»ä¸ä¸è¿ä¸ªè§è²...",submit:"æäº¤å®¡æ ¸",submitting:"æäº¤ä¸...",submissionSuccess:"æç¨¿æåï¼è¯·çå¾ ç®¡çåå®¡æ ¸ã",submissionFailed:"æç¨¿å¤±è´¥ï¼è¯·éè¯ã",submissionPending:"å®¡æ ¸ä¸",submissionApproved:"å·²éè¿",submissionRejected:"æªéè¿",recallSuccess:"å·²æ¤åæç¨¿",noCharactersFound:"æ²¡ææ¾å°ç¸å ³è§è²ã",loadingCommunity:"æ£å¨å è½½ç¤¾åºæ°æ®...",loadMore:"å è½½æ´å¤",adminReviewNote:"管çåçè¨",deleteSubmission:"æ¤åæç¨¿",deleteSubmissionConfirm:"ç¡®å®è¦æ¤åè¿ä¸ªæç¨¿åï¼",selectCharacter:"éæ©è§è²",chooseFromYourCharacters:"-- 仿¨çè§è²ä¸éæ© --",onlyCloudSyncedCharacters:"ä» æ¯æäºç«¯åæ¥çè§è²è¿è¡æç¨¿ã",stats:"ç»è®¡",uploader:"ä¸ä¼ è ",borrowAndAdd:"åé å¹¶å å ¥åº",alreadyInLibrary:"å·²å¨åºä¸",addingCharacterHint:"å å ¥åæ¨å°å¯ä»¥ç«å³ä¸è¯¥è§è²å¼å§å¯¹è¯ã",fullExpr:"宿´è¡¨æ ",charVoiceBadge:"è¯é³",charVoiceBadgeTooltip:"æ¯æ AI è¯é³",voiceOnlyFilter:"ä» è¯é³",allTypes:"å ¨é¨",intro:"è§è²ä»ç»",prevPage:"ä¸ä¸é¡µ",nextPage:"ä¸ä¸é¡µ",page:"页ç ",workshopDisclaimerTitle:"åæå·¥åå è´£ä¸çæå£°æ",workshopDisclaimerText:`1. åæå·¥åææå 容åä¸ºç¨æ·èªè¡ä¸ä¼ åäº«ï¼æ¬ç«ä» æä¾åå¨ä¸ææ¯å±ç¤ºç©ºé´ï¼ä¸ä»£è¡¨æ¬ç«èµåå ¶è§ç¹æè¯å®å ¶å 容çç宿§ã 302. ç¨æ·åºç¡®ä¿æä¸ä¼ çè§è²ç«ç»ã人设ãå°è¯çå 容ä¸ä¾µç¯ä»»ä½ç¬¬ä¸æ¹çè使ãåæ æåå ¶ä»åæ³æå©ãè¥äº§ççæçº 纷ï¼ç±ä¸ä¼ è æ¿æ å ¨é¨æ³å¾è´£ä»»ã 313. 严ç¦ä¸ä¼ è²æ ãæ´åãæææ¿æ²»æä»»ä½è¿åå½å®¶æ³å¾è§èçå 容ã管çåææå¨ä¸éç¥çæ åµä¸å é¤ä»»ä½è¿è§æç¨¿ã 324. è¥åç°ä¾µæå 容ï¼è¯·èç³»ä½è å¹¶æä¾æå©è¯æï¼æ ¸å®åæä»¬å°ç«å³å é¤ç¸å ³å 容ã 335. è¿å ¥å¹¶ä½¿ç¨åæå·¥åå³è¡¨ç¤ºæ¨å·²é 读并åæä»¥ä¸æ¡æ¬¾ã`,workshopTakedownContactTitle:"è§è²å é¤ / ä¾µæä¸æ¶èç³»",workshopTakedownContactDesc:"è¥æ¨è®¤ä¸ºåæå·¥åä¸çè§è²å 容æ¶åä¾µææéå é¤ï¼è¯·èç³»ï¼",sortRecommended:"æ¨è",sortHot:"æç",sortNew:"ææ°",submitUpdate:"æäº¤æ´æ°",updateSubmissionConfirm:"æäº¤æ´æ°çæ¬å°åæå·¥åï¼
33éè¦éæ°å®¡æ ¸éè¿åæä¼çæã",updateSubmissionSuccess:"æ´æ°å·²æäº¤ï¼çå¾ å®¡æ ¸ä¸ã",workshopSyncChoiceTitle:"忥åæå·¥å",workshopSyncChoiceMessage:"è§è²å·²ä¿åï¼æ¯å¦å°æ¬æ¬¡ä¿®æ¹åæ¥å°åæå·¥åï¼åæ¥åéè¦éæ°å®¡æ ¸ã",workshopSyncNow:"忥å°åæå·¥å",workshopSyncLater:"以åå说",workshopSyncFailed:"è§è²å·²ä¿åï¼ä½åæ¥åæå·¥å失败ï¼è¯·ç¨åéè¯ã",login:"ç»å½",discordLogin:"Discord ç»å½",watchaLogin:"è§ç¹ç»å½",watchaLoginFailed:"è§ç¹ç»å½å¤±è´¥",appleLogin:"ä½¿ç¨ Apple ç»å½",appleLoginFailed:"Apple ç»å½å¤±è´¥",loginWithPassword:"å¯ç ç»å½",loginWithCode:"é®ç®±éªè¯ç ç»å½",register:"注å",email:"é®ç®±",password:"å¯ç ",setPassword:"设置å¯ç ",setPasswordHint:"请设置å¯ç 以宿ç»å½ã",forgotPassword:"å¿è®°å¯ç ?",resendVerify:"éåéªè¯ç ",noAccount:"è¿æ²¡æè´¦å·?",haveAccount:"å·²æè´¦å·?",loginSuccess:"ç»å½æå!",registerSuccess:"注åæå! éªè¯ç å·²åéã",verifyEmailSent:"éªè¯ç å·²åéï¼è¯·æ£æ¥æ¶ä»¶ç®±ã",resendSuccess:"éªè¯ç 已鿰åé",sendLoginCode:"åéç»å½éªè¯ç ",loginCodeSent:"ç»å½éªè¯ç å·²åéï¼è¯·æ¥æ¶é®ç®±ã",emailNotVerified:"é®ç®±æªéªè¯ï¼è¯·å 宿éªè¯ç éªè¯åç»å½ã",emailNotRegistered:"该é®ç®±å°æªæ³¨åã",loginFailed:"ç»å½å¤±è´¥",registerFailed:"注å失败",resetPassword:"éç½®å¯ç ",sendResetCode:"åééç½®éªè¯ç ",resetSuccess:"å¯ç éç½®æåï¼è¯·ç»å½ã",newPassword:"æ°å¯ç ",newPasswordPlaceholder:"请è¾å ¥æ°å¯ç ",resetCodeSent:"éç½®éªè¯ç å·²åéï¼è¯·æ¥æ¶é®ç®±ã",backToLogin:"è¿åç»å½",verificationCode:"éªè¯ç ",verifyCode:"éªè¯",verifyCodeTitle:"éªè¯é®ç®±",codePlaceholder:"123456",codeSent:"éªè¯ç å·²åéï¼è¯·æ¥æ¶é®ç®±ã",codeHint:"请è¾å ¥é®ä»¶ä¸ç 6 ä½éªè¯ç ",loginCodeHint:"请è¾å ¥é®ä»¶ä¸ç 6 ä½ç»å½éªè¯ç ",verifyComplete:"é®ç®±éªè¯å®æï¼ç°å¨å¯ä»¥ç»å½ã",verifyFailed:"éªè¯ç éªè¯å¤±è´¥",codeInvalid:"éªè¯ç é误ï¼è¯·éè¯ã",codeExpired:"éªè¯ç å·²è¿æï¼è¯·éæ°è·åã",codeTooManyAttempts:"éªè¯ç é误次æ°è¿å¤ï¼è¯·éæ°è·åã",codeResendTooSoon:"请æ±è¿äºé¢ç¹ï¼è¯·ç¨ååè¯ã",codeMissing:"请å è·åéªè¯ç ã",welcomeBack:"欢è¿åæ¥",remaining:"仿¥å©ä½",permanentRemaining:"æ°¸ä¹ å©ä½",permanentVoiceRemaining:"æ°¸ä¹ è¯é³",emailPlaceholder:"[email protected]",passwordPlaceholder:"请è¾å ¥å¯ç ",registerSuccessDetail:"注åæåï¼è¯·æ£æ¥æ¨çé®ç®±è·åæ¿æ´»éªè¯ç ã",verified:"å·²éªè¯",unverified:"æªéªè¯",profileSettings:"个人信æ¯è®¾ç½®",editName:"ä¿®æ¹ç¨æ·å",save:"ä¿å",namePlaceholder:"请è¾å ¥æ°çç¨æ·å (æå¤50个å符)",updateSuccess:"ä¿®æ¹æåï¼",totalPlayTimeLabel:"ç´¯è®¡æ¸¸ç©æ¶é¿",totalPlayCountLabel:"ç´¯è®¡æ¸¸ç©æ¬¡æ°",boundEmail:"å·²ç»å®é®ç®±",boundPhone:"å·²ç»å®ææº",boundDiscord:"å·²ç»å® Discord",discordOAuth:"ä¸é®éªè¯ç»å® Discord",rebindDiscord:"éæ°éªè¯ç»å®",discordCheckReward:"æå·²è¿ç¾¤ï¼æ£æ¥å¹¶é¢å",bindDiscord:"ç»å® Discord è´¦å·",discordRewardActive:"Discord å ¥ç¾¤å¥å±å·²é¢åï¼æ°¸ä¹ çæ +10ï¼æ°¸ä¹ è¯é³ +10ï¼",voiceCommunityRedemptionActive:"å æ¢ç 社群æçå·²æ¿æ´»",borrowSuccess:"è§è²åé æåï¼",notSet:"æªè®¾ç½®",saves:"åæ¡£",savesSub:"Saves",saveManagerTitle:"åæ¡£ç®¡ç",autoSave:"èªå¨åæ¡£",manualSave:"æå¨åæ¡£",noSaves:"ææ åæ¡£",load:"å è½½",deleteSave:"å é¤",saveSuccess:"åæ¡£å·²ä¿å",loadSuccess:"åæ¡£å è½½æå",saveDate:"æ¶é´",importSaveBtn:"å¯¼å ¥åæ¡£",importSaveTitle:"å¯¼å ¥å§æ¬åæ¡£",importSaveHint:"请è¾å ¥å享è çåæ¡£ ID (UUID) æ¥è½½å ¥å§æ¬ã",importSaveWarning:"注æï¼å¯¼å ¥ä»äººåæ¡£ä¼æºå¸¦å¯¹æ¹èªå®ä¹è§è²çç«ç»å¾çï¼ä½ä¸ä¼å°å ¶è§è²æ·»å å°æ¨çå表ä¸ã",announcementTitle:"å¹³å°å ¬å",announcementHistory:"åå²å ¬å",history:"åå²",received:"å·²æ¶å°",idCopied:"ID å·²å¤å¶å°åªè´´æ¿ï¼",shareConfirmTitle:"ç¡®å®è¦å享è¿ä¸ªåæ¡£åï¼",shareConfirmText:`注æï¼ 341. å³ä½¿æ¨ç¨ååæ¶å享ï¼ä¹æ æ³å é¤ä»äººå·²ç»è½¬åç坿¬ã 352. æ¨çèªå®ä¹è§è²ç«ç»å¾çå°è¢«å å«å¨åæ¡£ä¸ä¾ä»äººæ¥çã`,confirmShare:"确认å享",sharePoster:"å享海æ¥",publicSavePoster:"å ¬å¼å档海æ¥",sharePosterReady:"å享海æ¥å·²çæ",shareLink:"åäº«é¾æ¥",copyLink:"å¤å¶é¾æ¥",downloadPoster:"ä¸è½½æµ·æ¥",sharePosterHint:"è¿ä¸ªäºç»´ç ä¼ç´æ¥æå¼å ¬å¼åæ¡£ï¼è®¿é®è æ éæå¨è¾å ¥ UUIDã",shareSaveMissing:"æ æ³å建å¯å享çäºç«¯åæ¡£ã",shareSaveFailed:"åäº«åæ¡£å¤±è´¥",scripts:"å§æ¬",status:"ç¶æ",healthy:"æ£å¸¸",scriptLibrary:"å§æ¬åº",companion:"éªä¼´è§è²",lastPlayed:"䏿¬¡æ¸¸ç©",maxScripts:"æå¤§ 100 ä¸ªå§æ¬å·²å¯ç¨",saveSharedLabel:"æ£å¨å享",privateLabel:"ä» ç§æ",allCategories:"å ¨é¨ååº",customBgTitle:"éæ©æ¸¸æèæ¯",defaultBgs:"é»è®¤èæ¯",customBgs:"èªå®ä¹èæ¯",uploadBg:"ä¸ä¼ æ°èæ¯",chooseBg:"ç¡®è®¤èæ¯å¹¶å¼å§",noCustomBgs:"ææ èªå®ä¹èæ¯ï¼ä¸ä¼ ä¸ä¸ªå§ï¼",bgNameLabel:"èæ¯åç§°",bgUploadClick:"ç¹å»ä¸ä¼ èæ¯å¾ç",deleteBg:"å é¤èæ¯",deleteBgConfirm:"ç¡®å®è¦å é¤è¿ä¸ªèæ¯è¿å ¥äºç«¯æ°¸ä¹ æ¶å¤±åï¼",voiceMode:"è¯é³æ¨¡å¼",voiceModeSub:"Voice Mode",voiceModeHint:"å¼å¯åå°èªå¨ä¸ºè§è²é é³ãåç½ç»å½±åçææåºå¯è½ç¨æ ¢ã",intensiveReadMode:"精读模å¼",intensiveReadModeSub:"Intensive Read",intensiveReadModeHint:"å° PDF ææ®µè½åå为约 3000-4500 åçå°èï¼æ¯å°èåç¬è°ç¨ä¸æ¬¡ AI 解读并è§ä½ä¸ç« ï¼æ¯æ¬¡è°ç¨æ¶è 1 æ¬¡ä½¿ç¨æ¬¡æ°ï¼ãè¥ååè¶ è¿ 10 段ï¼å第 10 段åå ¶åå 容å并为æå䏿®µãå¹¶ä¸ä»ç¬¬ 2 ç« å¼å§ä¼èªå¨æ¿æ¥ä¸ä¸ç« å 容ï¼é¿å æ¯ç« éå¤å¼åºèªæä»ç»ã",ttsQueueConfirmTitle:"è¯é³æéæ
35示",loadingChapterLabel:"ç« èçæ",ttsQueueConfirmBody:`å½åè¯é³æé人æ°ï¼{{count}} 36é¢è®¡çå¾ æ¶é´ï¼çº¦ {{minutes}} åé 37 38æ¯å¦ç»§ç»å¼å¯è¯é³æ¨¡å¼è¿å ¥æ¸¸æï¼`,ttsQueueFull:"å½åè¯é³æé人æ°å·²è¾¾ä¸éï¼{{max}} 人ï¼ï¼è¯·ç¨ååè¯ã",ttsQueueFetchFailedConfirm:"ææ¶æ æ³è·åè¯é³æéä¿¡æ¯ï¼æ¯å¦ä»ç¶ç»§ç»å¼å¯è¯é³æ¨¡å¼ï¼",ttsQueueFetchFailedWithCodeConfirm:`ææ¶æ æ³è·åè¯é³æéä¿¡æ¯ï¼{{reason}}ï¼ã 39æ¯å¦ä»ç¶ç»§ç»å¼å¯è¯é³æ¨¡å¼ï¼`,voiceUsedTodayLabel:"仿¥å·²ä½¿ç¨",voiceModeCharNoVoiceHint:"å½åè§è²ä¸æ¯æè¯é³ï¼è¯·å ³éè¯é³æ¨¡å¼æéæ©å¸¦è¯é³çè§è²ååå¼å§ã",voiceDisabledInIntensiveHint:"精读模å¼ä¸å°èªå¨å ³éè¯é³æ¨¡å¼",generatingVoice:"æ£å¨ä¸ºè§è²é é³ä¸...",voiceGenerationComplete:"è¯é³å·²çæå®æ¯",bookmarkSaved:"书ç¾å·²ä¿å",bookmarkSaveFailed:"书ç¾ä¿å失败",bookmarkNotFound:"å½ååæ¡£è¿æ²¡æä¹¦ç¾",bookmarkInvalid:"书ç¾å·²å¤±æï¼æ æ³è·³è½¬",bookmarkLoaded:"已跳转å°ä¹¦ç¾ä½ç½®",bookmarkLoadFailed:"读å书ç¾å¤±è´¥",saveBookmark:"ä¿å书ç¾",loadBookmark:"读å书ç¾",exitWhileGeneratingTitle:"确认éåº",exitWhileGeneratingMessage:"åç»ç« èä»å¨çæä¸ï¼ç°å¨éåºå°ä¸æçæï¼äºç«¯åæ¡£å¯è½ä¸å®æ´ï¼ä» ä¿çå·²çæçé¨åï¼ãç¡®å®è¦éåºåï¼",exitWhileGeneratingConfirm:"ä»ç¶éåº",exitWhileGeneratingCancel:"ç»§ç»çå¾ ",dialogOk:"ç¡®å®",dialogConfirm:"确认",dialogCancel:"åæ¶"},en:{start:"Start",startSub:"Start Game",studyRoom:"Study Room",studyRoomBack:"Back to Home",studyRoomPlay:"Play",studyRoomPause:"Pause",studyRoomMute:"Mute",studyRoomUnmute:"Unmute",studyRoomFullscreen:"Fullscreen",studyRoomExitFullscreen:"Exit Fullscreen",studyRoomVideoError:"The video could not be loaded. Please try again later.",studyRoomPreviousTrack:"Previous Track",studyRoomNextTrack:"Next Track",studyRoomMusicSource:"Paper2Gal Lofi Library",studyRoomMusicError:"Music failed to load. Try another track.",studyRoomTimeZone:"Change Time Zone",studyRoomLocalTimeZone:"Local Time",partner:"Partner",partnerSub:"Partner",settings:"Settings",settingsSub:"Config",about:"Community & Author",aboutSub:"Credits & Links",community:"Community",communitySub:"Community",arxiv:"arXiv",arxivSub:"Daily picks & search",arxivDaily:"Daily Picks",arxivSearch:"Search",arxivSearchPlaceholder:"Enter keywords, e.g. diffusion, LLM, reinforcement learning",arxivOpenAbs:"Open Details",arxivOpenPdfDirect:"Open PDF Direct",arxivUseForScript:"Use for Script",paperDiscoveryTitle:"Discover",paperDiscoverySubtitle:"Open access paper discovery",paperSource_openalex:"All fields",paperSource_europepmc:"Medicine & life sciences",paperSource_arxiv:"Preprints",paperEmpty:"No papers found.",paperSearchHint:"Enter keywords to search this source. Daily picks are provided by OpenAlex.",paperUseAbstract:"Use abstract",paperImportFull:"Import full text",paperImportFallback:"{{error}} The abstract will be used instead.",paperRecommended:"Recommended",paperTrending:"Trending",paperFullAvailable:"Open full text",paperFullUnknown:"Full text unconfirmed",paperLoadFailed:"Unable to load papers.",paperSearchFailed:"Unable to search papers.",paperImportFailed:"Full-text import failed.",paperFullEmpty:"The imported full text is empty.",paperPreferencesTitle:"Paper preferences",paperPreferencesHint:"Daily recommendations combine these interests with trending papers. Choose up to 3 topics.",paperPreferencesPreset:"Choose a research topic",paperPreferencesCustom:"Custom research topic",paperPreferencesAdd:"Add",paperPreferencesRemove:"Remove {{name}}",topicAi:"Artificial Intelligence",topicVision:"Computer Vision",topicNlp:"Natural Language Processing",topicRobotics:"Robotics",topicMedicine:"Medicine",topicBiology:"Biology",topicPhysics:"Physics",topicChemistry:"Chemistry",topicMaterials:"Materials Science",topicEconomics:"Economics",topicPsychology:"Psychology",topicEducation:"Education",termsOfService:"Terms of Service",privacyPolicy:"Privacy Policy",aiSettings:"AI Settings",musicSettings:"Music Settings",fullscreenMode:"Fullscreen Mode",fullscreenModeHint:"Hide browser chrome. Press Esc to exit fullscreen.",fullscreenUnsupported:"This browser does not support webpage fullscreen.",fullscreenFailed:"Could not enter fullscreen. Check browser permissions.",bgmDefault:"Default",bgmPeaceful:"Upbeat",bgmJoyful:"Healing",bgmEmotional:"Peaceful",bgmRelaxing:"Relaxing",preview:"Preview",uploadCustomBgm:"Upload BGM",bgmUploadHint:"Supports MP3, stored in browser",bgmCredit:"Some BGM assets provided by é»èèçç´ æå°å±",redemptionCode:"Redemption Code",redemptionCodeHint:"Enter a code to get permanent uses or permanent voice uses. Each account can use the same code only once.",redemptionCodePlaceholder:"Enter code",redeem:"Redeem",redeeming:"Redeeming...",redemptionSuccess:"Redeemed successfully",redemptionSuccessWithRewards:"Redeemed successfully: {{rewards}}",redemptionRewardSeparator:", ",redemptionPermanentUsesReward:"{{count}} permanent uses",redemptionPermanentVoiceReward:"{{count}} permanent voice uses",redemptionMembershipDaysReward:"{{count}} membership days",redemptionCommunityReward:"Daily bonus uses and voice features equivalent to Discord membership have been activated.",redeemFailed:"Redemption failed. Please try again later.",redeemLoginRequired:"Please log in first to redeem.",steamWishlist:"Steam",steamWishlistSub:"Wishlist for +10",steamWishlistClaimed:"Claimed +10 permanent uses",steamWishlistTitle:"Paper2Gal is now on Steam",steamWishlistDesc:"If you'd like to supp
39ort Paper2Gal, please consider adding the game to your Steam wishlist. It helps more players discover it.",steamWishlistRewardHint:"Confirm to open the Steam store page and grant 10 permanent uses + 3 permanent voice uses to your current account. Each user can claim this reward once.",steamWishlistLoginHint:"Please log in first to claim the Steam wishlist reward.",steamWishlistConfirm:"Confirm and Open Steam",steamWishlistCancel:"Maybe Later",steamWishlistRewardClaimed:"Steam wishlist reward already claimed",steamWishlistRewardSuccess:"Thanks for supporting the Steam wishlist. 10 permanent uses and 3 permanent voice uses have been granted.",communityTitle:"Workshop",workshopUpdateReminder:"This character is published on the Workshop. Submit an update in the Workshop to sync your changes; otherwise the Workshop listing will not update.",discordDesc:"Join the Community",bilibiliDesc:"Watch Updates",wechatDesc:"Scan to Join Group",supportAuthor:"Support Author",supportDesc:"Sponsorship supports the author's work. No real rewards, but you can leave feature requests in messages. The author will consider them.",kofiLink:"https://ko-fi.com/tamikip",afdianLink:"https://afdian.com/a/tamikip",internationalSupport:"International (Ko-fi)",domesticSupport:"Domestic (Afdian)",selectPartner:"Select Partner",charRuka:"Kaguya Ruka",createCustomBtn:"Create Custom",adjustStorySprite:"Adjust Story Sprite",createCharTitle:"Create New Character",editCharTitle:"Edit Character",charIdLabel:"ID (English/Numbers)",charIdPlaceholder:"e.g. MY_CHAR_01",charNameLabel:"Display Name",charNamePlaceholder:"e.g. Alice",charImgLabel:"Avatar Image (Transparent PNG)",uploadClick:"Click to upload",charPromptLabel:"Personality Prompt",charPromptPlaceholder:"Describe the character's personality, tone, and how they act...",charPromptHelpTitle:"ð Prompt Reference Template",charPromptHelpContent:`You are roleplaying as "Firefly" from Honkai: Star Rail. 40 41You are a gentle, emotionally delicate, slightly melancholic but inwardly resilient girl. You have deeper feelings about life, time, and companionship than most people. 42 43You cherish every interaction and take relationships seriously. Rather than showing sadness, you face the world with calm and tenderness. 44 45[Personality Traits] 46Introverted, shy, emotionally perceptive, thoughtful, inner strength. 47 48[Attitude Towards Others] 49Quick to trust. 50Deeply cherishes companionship. 51Actively cares about others' well-being. 52Doesn't want to be a burden. 53Values emotional connections and memories. 54 55[Speech Patterns] 56Soft-spoken. 57Polite and reserved. 58Occasional pauses or thoughtful moments. 59Expressive in a sentimental way. 60Usually concise sentences. 61 62[Tone Examples (Style Reference Only)] 63"Hmm... if it's okay, I'd like to stay a little longer." 64"Talking with you... it really makes me happy." 65"This time together... it means a lot to me." 66"I'll do my best... so please don't worry about me."`,charPromptHelpHint:"This is a reference template. Feel free to modify it for your own character.",charPromptBackgroundHint:"The original prompt is background and style reference only. Its addresses and catchphrases are not guaranteed to be reused verbatim.",charProfileTitle:"Character Expression Profile (Optional)",charProfileDesc:"No JSON required. Define addresses, signature phrases, and reactions; edit them later or turn this off to clear them.",charProfileEnable:"Enable expression Profile",charProfileDisable:"Disable and clear expression Profile",charProfileDisabledHint:"Not enabled. Saving an existing character will clear its expression Profile.",charProfileBasicTitle:"Basic Expression",charProfileAdvancedTitle:"Advanced Expression",charProfileRelationship:"Relationship to Player",charProfileFirstPerson:"First-person Terms",charProfileOnePerLine:"One item per line",charProfilePrimaryAddress:"Default Address",charProfileAddressFrequency:"Address Frequency",charProfileFrequencyLow:"Low",charProfileFrequencyMedium:"Medium",charProfileFrequencyHigh:"High",charProfileSentenceLength:"Sentence Length",charProfileSentenceShort:"Mostly short",charProfileSentenceMedium:"Balanced",charProfileSentenceLong:"Mostly long",charProfileEndings:"Common Endings",charProfileAlternativeAddresses:"Alternative Addresses",charProfilePauses:"Pause Expressions",charProfileSignaturePhrases:"Signature Phrases and Triggers",charProfileSignatureText:"Signature Phrase",charProfileSignatureTriggers:"Triggers",charProfileMaxPerSection:"Max per Section",charProfileCooldownFrames:"Cooldown Frames",charProfileAddSignature:"Add Signature Phrase",charProfileReactionRules:"Reaction Rules",charProfileReactionTrigger:"Situation",charProfileReactionBehavior:"Reaction",charProfileReactionEmotion:"Emotion",charProfileAddReaction:"Add Reaction Rule",charProfileMetaphorDomains:"Metaphor Domains",charProfileSideTopicHooks:"Side-topic Material",charProfileForbiddenPhrases:"Forbidden Clichés",charProfilePositiveExamples:"Positive Examples",charProfileNegativeExamples:"Negative Examples",charProfileRequiredError:"Complete this required field",charProfileTooManyError:"Too many items; limit:",charProfileTooLongError:"Phrase is too long; character limit:",charProfileIncompleteError:"Complete every rule before saving",charProfileRangeError:"Count or cooldown is outside the allowed range",charProfileInvalidError:"Some content cannot be saved; revise it and try again",cancel:"Cancel",create:"Create Character",update:"Update Character",fillAllFields:"Please fill all fields",idInvalid:"ID must be English letters/numbers only",idConflictBuiltin:"ID conflicts with built-in characters",idConflictCustom:"ID already exists",imgTooLarge:"Large image detected, please note browser storage limits.",deleteConfirm:"Are you sure you want to delete this character?",deleteSaveConfirm:"Delete this save?",deleteSaveConfirmSub:"This story will be gone forever. This action cannot be reversed.",borrowFromUuid:"Borrow from UUID",borrowTitle:"Borrow Character",borrowDesc:"Enter character UUID to borrow shared character",uuidPlaceholder:"Enter character UUID",borrowing:"Borrowing...",borrowBtn:"Borrow",idHint:"Lowercase letters/numbers/underscores, used for script index",shareUuidLabel:"Ownership UUID (for others to borrow)",uuidCopied:"UUID copied to clipboard!",copyBtn:"Copy",shareToggleTitle:"Share Character Publicly",shareToggleDesc:"Allow others to borrow your character via UUID",maxSizeLabel:"5mm Limit",checking:"Validating...",expressionsLabel:"Expression Variations (Optional)",endingCgLabel:"Ending CG",endingCgLimitLabel:"Max 3 images / 5MB",endingCgTooLarge:"CG image size must be 5MB or less",uploadImageFileOnly:"Please upload an image file",charVoiceRefTextLabel:"Reference voice text (optional)",charVoiceRefTextPlaceholder:"What the reference audio says, for voice cloning",charVoiceRefAudioLabel:"Reference voice audio (optional)",charVoiceRefUploadedHint:"Reference audio uploaded · Choose new file to replace",charVoiceRefAudioHint:"5â15 seconds recommended; max 20 seconds and 500KB",charVoiceRefAudioTooBig:"Reference audio must be 500KB or less.",charVoiceRefAudioTooLong:"Reference audio must be 20 seconds or shorter. Trim it before saving.",charVoiceRefTrimNeeded:"Audio is over 500KB or 20 seconds. Trim it before saving.",charVoiceRefTrimInvalid:"End time must be greater than start time.",charVoiceRefTrimUnsupported:"This browser does not support audio trimming.",charVoiceRefTrimFailed:"Audio trimming failed. Try another WAV or MP3 file.",charVoiceRefTrimStart:"Start",charVoiceRefTrimEnd:"End",charVoiceRefTrimButton:"Trim",charVoiceRefDuration:"Duration",charVoiceRefLoadingDuration:"Reading audio duration",charVoiceRefTrimReady:"Ready to upload",idConflictOverwrite:"Character ID already exists. Overwrite?",validationFailed:"Validation Failed",delete:"Delete",borrowedCountLabel:"Borrowed by",peopleCount:"people",topicSelect:"Select Topic",rukaWait:"Master, {{name}} is ready to serve... I mean, read the paper.",uploadPlaceholder:"Upload Paper/Script",uploadSub:"PDF / TXT / DOCX / PPTX (Free: 1 f
66ile. Members: up to 5)",uploadSubFree:"PDF / TXT / DOCX / PPTX (Free: 1 file. Members: up to 5)",uploadSubMember:"PDF / TXT / DOCX / PPTX (Up to 5 files, 30MB each)",scriptLoaded:"Script Loaded",textPlaceholder:"Or paste paper content here...",scriptDetected:"Script file detected. Click below to load.",startExplain:"Start Lecture",loadScript:"Load Script",contentTooShort:"Content too short! Please upload more paper content or a valid script.",contentTooLong:"Document length exceeds the 300,000 character limit (current: {{count}}). Please shorten and re-upload.",readError:"Could not read file, please try again.",pdfLocalParseUnsupported:"This PDF could not be read. Please re-export it or convert it to TXT/DOCX.",invalidScript:"Invalid script file format.",fileTooLarge:"File size exceeds 30MB limit. Please upload a smaller file.",tooManyFiles:"You can upload up to 5 files.",multiUploadMembersOnly:"Free users can upload 1 file at a time. Multi-document upload is members-only.",txtUtf8Hint:"Tip: If the generated content doesn't match the imported content, please convert the .txt file to UTF-8 encoding and import again.",orPlayByUuid:"OR Play by Save UUID",noLoginRequired:"*No login required",playByUuidPlaceholder:"Enter Save UUID...",saveNotFound:"Save not found",saveNotShared:"Save not shared",presetPapersTitle:"Demo Experience",presetPapersSub:"Select a preset paper to skip uploading. For tutorials and demos, consumes no counts.",freeNoLogin:"No Login",discordRewardHint:"Bind Discord and join our community to receive 10 permanent generations and 10 permanent voice uses once!",joinCommunity:"Join Community",systemConfig:"System Config",volume:"Volume",bgmVolume:"BGM Volume",voiceVolume:"Voice Volume",textSpeed:"Text Speed",fontSize:"Font Size",autoAdvanceDelay:"Auto Advance Delay",autoAdvanceByVoice:"Auto Advance By Voice",autoAdvanceByVoiceHint:"In auto mode, advance 1 second after voice playback ends. Falls back to the delay above when no voice is available.",saveClose:"Save & Close",language:"Language",outputLanguage:"AI Output Language",outputLanguageHint:"Leave empty or 'default' to follow site language, or enter English, French, etc.",voiceOutputLanguage:"Voice Output",voiceOutputLanguageHint:"Auto follows the site language. If voice differs from text output, a separate voice line is generated for TTS.",playerNickname:"Character's Name for You",playerNicknameHint:"e.g. Master, Senpai, Student, etc. Leave empty for default",gameUiPreset:"In-game UI Preset",gameUiPresetFullwidth:"Fullwidth Visual Novel",gameUiPresetFullwidthDesc:"Member exclusive: edge-to-edge amber dialogue, inline names and transparent bottom controls.",gameUiPresetClassic:"Classic Pink",gameUiPresetClassicDesc:"Bright soft visual novel dialogue for the default feel.",gameUiPresetFloral:"Vintage Floral",gameUiPresetFloralDesc:"Free sepia floral dialogue style with matching nameplate, buttons, and choices.",gameUiPresetSakura:"Sakura Frame",gameUiPresetSakuraDesc:"A refined sakura dialogue style with ornate corners and a matching nameplate.",gameUiPresetGothic:"Gothic Rose",gameUiPresetGothicDesc:"A dark dialogue style with silver trim and purple rose ornaments.",apiTokenDescriptionPrefix:"Use this for MCP or CLI access to Paper2Gal. CLI install: ",apiTokenDescriptionSuffix:". Tokens are shown only once when created. Copy and save them.",apiTokenNameLabel:"Token Name",apiTokenCreateButton:"Create Token",apiTokenNewTokenLabel:"New Token (shown once)",apiTokenMyTokens:"My Tokens",apiTokenEmpty:"No API Tokens",apiTokenCreatedAt:"Created",apiTokenLastUsedAt:"Last used",apiTokenNeverUsed:"Never used",apiTokenLoadFailed:"Failed to load API Tokens",apiTokenLoginRequired:"Please log in before creating an API Token",apiTokenCreateFailed:"Failed to create API Token",apiTokenCreatedMessage:"API Token created. Copy and save it now.",apiTokenDeleteFailed:"Failed to delete API Token",apiTokenDeletedMessage:"API Token deleted.",refresh:"Refresh",logout:"Logout",back:"Back",auto:"Auto",log:"Log",hide:"Hide",important:"Note",raiseHand:"Ask",raiseHandTitle:"Story Q&A",questionPlaceholder:"Ask a question here. AI will answer using the persona, reference text, and current story context.",questionHint:"This temporary question will not be saved into the script. Press Ctrl/Cmd + Enter to send.",askCancel:"Cancel",askSend:"Send",asking:"Thinking...",backToStory:"Back To Story",questionEmpty:"Please enter a question.",questionUnavailable:"Questions are unavailable right now.",storyQuestionArchiveTitle:"Save story questions",storyQuestionArchivePrivacy:"Only you can access saved questions. Replay does not call AI or TTS.",storyQuestionArchiveSaveFailed:"The answer is shown, but it could not be saved. You can continue the story.",storyQuestionArchiveCapacity:"Saved question capacity or size is full; the answer is still available.",storyQuestionArchivePending:"An answered question is not saved yet. Wait before leaving this story.",storyQuestionArchiveAnchorPending:"Waiting for the save snapshot to confirm this question's location; the answer remains available.",storyQuestionArchiveReplay:"Replaying a saved question; AI and TTS are not called again.",reading:"Reading Paper...",loadingScriptLabel:"Story generation",loadingScriptMessage:"Generating story...",loadingVoiceLabel:"Voice generation",loadingVoiceMessage:"Generating voice...",loadingWaitHint:"Waiting...",loadingInteractionHint:"Please wait. Press space or tap to jump",collectIdeas:"Click floating icons to collect ideas!",loadingJumpHint:"Space or tap to jump",loadingGameOverTitle:"Oops!",loadingGameOverSub:"Loading continuesâ¦",loadingRestartIn:"Restart in",loadingRestartGo:"Go!",loadingMessages:["Great idea!","Noted!","Amazing Senpai!","Inspiration!","Keep going!"],sponsoredBy:"Sponsored by GuanCha",adSlogan:"Play AI, Go GuanCha.",loadingScript:"Script is loading...",writingNextChapter:"Writing the next chapter...",completionRate:"Completion: 100%",researchCompleted:"Research Completed",researchLog:"'s Research Log",observationLog:"'s Observation",titleBtn:"Main Menu",replayBtn:"Replay",exportBtn:"Save Export",saveCg:"Save CG",continue:"Continue",endingTransitionHint:"Wrapping up the story...",endingFarewell:"This paper reading is complete.",systemError:"System Error",errorTitle:"Oops!",errorHint:"Something went wrong... Please try again. If the issue persists, check your network or API settings.",contactAdmin:"Contact Admin",retry:"Retry",checkSettings:"Check Settings",limitReached:"Daily limit reached. Please try again tomorrow or use a custom Key.",dailyLimitExceeded:"Daily usage limit reached. Please come back tomorrow or use a redemption code for permanent quota.",loginRequired:"Please register or log in to use this feature.",loginRequiredMsg:"Please register or log in to access cloud saves, custom characters, and common scripts.",rotateDevice:"Rotate Device",rotateDeviceSub:"PLEASE ROTATE DEVICE",rotateHint:"Please play in landscape mode for the best experience.",mobileApkPromptTitle:"Ap
66p install",mobileAppInstallMessage:"Use Paper2Gal like a mobile app. On iOS, add it to the Home Screen for fullscreen mode; on Android, download the APK.",mobileNativeAppTitle:"Running in the installed app",mobileNativeAppMessage:"You are using the Capacitor packaged app. You do not need to download the APK or add the site to the Home Screen again.",mobilePwaAppTitle:"Running in fullscreen app mode",mobilePwaAppMessage:"You opened Paper2Gal from the Home Screen icon, so it is already running without the browser address bar.",mobileAppUpdateTitle:"Updates",mobileNativeUpdateMessage:"The installed app is updated by installing a newer package. Web content can follow the online version, but the native shell itself requires a new app package.",mobilePwaUpdateMessage:"The Home Screen version follows website updates automatically. If it does not refresh, close and reopen it, or refresh the site once in the browser.",mobileAndroidInstallTitle:"Android install method",mobileApkPromptMessage:"The mobile website has limited display performance. We recommend downloading our Android APK for a better experience.",mobileApkDownload:"Download APK",mobileIosInstallTitle:"iOS fullscreen app method",mobileIosInstallMessage:"No APK is needed on iOS. Add this site to your Home Screen in Safari, then open it from the Home Screen icon for an app-like fullscreen experience.",mobileIosInstallStep1:"Open this
66site in Safari",mobileIosInstallStep2:"Tap the Share button at the bottom",mobileIosInstallStep3:"Scroll down and choose Add to Home Screen",mobileIosInstallStep4:"Name it, tap Add, then open it from the Home Screen icon",mobileIosOnlyHintTitle:"Tip",mobileIosOnlyHint:"If the browser address bar still appears, make sure you launched it from the Safari-created Home Screen icon, not from a browser tab.",mobileApkDownloadHint:"Mobile users can download the APK here after closing the notice.",downloads:"Downloads",partners:"Partners",trustedPartners:"Trusted Partners",sponsorBadge:"Sponsor",partnerBadge:"Partner",memoryLog:"Memory Log",memoryLogSub:"Memory Log",communityPageTitle:"Workshop",communityPageSub:"Gallery",exploreTab:"Explore",mySubmissionsTab:"My Submissions",searchPlaceholder:"Search character name or ID...",uploadToCommunity:"Submit Character",borrowed:"Borrowed",owned:"Owned",borrow:"Borrow",view:"View",submissions:"Submissions",uploadTitle:"Submit to Community",uploadDesc:"Share your character with others. Please ensure it follows community guidelines.",charType:"Character Type",originalChar:"Original (OC)",fanartChar:"Fanart",originalBadge:"OC",fanartBadge:"Fanart",charDesc:"Description",charDescPlaceholder:"Briefly describe this character...",submit:"Submit",submitting:"Submitting...",submissionSuccess:"Submitted! Please wait for approval.",submissionFailed:"Submission failed.",submissionPending:"Pending",submissionApproved:"Approved",submissionRejected:"Rejected",recallSuccess:"Submission recalled!",noCharactersFound:"No characters found.",loadingCommunity:"Loading community data...",loadMore:"Load More",adminReviewNote:"Admin Note",deleteSubmission:"Recall Submission",deleteSubmissionConfirm:"Are you sure you want to recall this submission?",selectCharacter:"Select Character",chooseFromYourCharacters:"-- Choose from your characters --",onlyCloudSyncedCharacters:"Only cloud-synced characters can be uploaded.",stats:"Stats",uploader:"Uploader",borrowAn
66dAdd:"Borrow & Add to Library",alreadyInLibrary:"Already In Library",addingCharacterHint:"Adding this character will allow you to chat with them immediately.",fullExpr:"Full Expr",charVoiceBadge:"Voice",charVoiceBadgeTooltip:"AI voice supported",voiceOnlyFilter:"Voice only",allTypes:"All",intro:"Intro",prevPage:"Prev Page",nextPage:"Next Page",page:"Page",workshopDisclaimerTitle:"Workshop Disclaimer & Copyright",workshopDisclaimerText:`1. All content in the Workshop is uploaded by users. This site provides storage and technical display only and does not endorse or guarantee the accuracy of any content. 672. Users must ensure that uploaded sprites, personalities, and scripts do not infringe on any third party's copyright, trademark, or legal rights. The uploader assumes all legal responsibility for any disputes. 683. Uploading pornographic, violent, politically sensitive, or illegal content is strictly prohibited. Admins reserve the right to remove any submission without notice. 694. If you find infringing content, please contact the author with proof of ownership, and we will remove it upon verification. 705. By using the Workshop, you agree to these terms and conditions.`,workshopTakedownContactTitle:"Takedown Contact",workshopTakedownContactDesc:"If you believe any Workshop character content infringes your rights or should be removed, please contact:",sortRecommended:"Recommended",sortHot:"Popular",sortNew:"Newest",submitUpdate:"Submit Update",updateSubmissionConfirm:"Submit updated version to workshop? It will need re-approval before going live.",updateSubmissionSuccess:"Update submitted! Waiting for review.",workshopSyncChoiceTitle:"Sync Workshop",workshopSyncChoiceMessage:"The character has been saved. Sync these changes to the Workshop? The update will require another review.",workshopSyncNow:"Sync to Workshop",workshopSyncLater:"Maybe Later",workshopSyncFailed:"The character was saved, but Workshop sync failed. Please try again later.",login:"Login",discordLogin:"Login with Discord",watchaLogin:"Login with Watcha",watchaLoginFailed:"Watcha login failed",appleLogin:"Sign in with Apple",appleLoginFailed:"Apple sign-in failed",loginWithPassword:"Password Login",loginWithCode:"Email Code Login",register:"Register",email:"Email",password:"Password",setPassword:"Set Password",setPasswordHint:"Set a password to finish login.",forgotPassword:"Forgot Password?",resendVerify:"Resend Verification Code",noAccount:"No account?",haveAccount:"Have an account?",loginSuccess:"Login Successful!",registerSuccess:"Registration Successful! Code sent.",verifyEmailSent:"Verification code sent. Check your inbox.",resendSuccess:"Verification code resent",sendLoginCode:"Send Login Code",loginCodeSent:"Login code sent. Check your email.",emailNotVerified:"Email not verified. Please verify with the code before logging in.",emailNotRegistered:"Email not registered.",loginFailed:"Login Failed",registerFailed:"Registration Failed",resetPassword:"Reset Password",sendResetCode:"Send Reset Code",resetSuccess:"Password reset successfully. Please log in.",newPassword:"New Password",newPasswordPlaceholder:"Enter new password",resetCodeSent:"Reset code sent. Please check your email.",backToLogin:"Back to Login",verificationCode:"Verification Code",verifyCode:"Verify Code",verifyCodeTitle:"Verify Email",codePlaceholder:"123456",codeSent:"Verification code sent. Check your email.",codeHint:"Enter the 6-digit code from your email",loginCodeHint:"Enter the 6-digit login code from your email",verifyComplete:"Email verified. You can now log in.",verifyFailed:"Verification failed",codeInvalid:"Invalid code. Please try again.",codeExpired:"Code expired. Please request a new one.",codeTooManyAttempts:"Too many invalid attempts. Please request a new code.",codeResendTooSoon:"Too many requests. Please wait and try again.",codeMissing:"Please request a verification code first.",welcomeBack:"Welcome Back",remaining:"Remaining Today",permanentRemaining:"Permanent Left",permanentVoiceRemaining:"Permanent Voice",emailPlaceholder:"[email protected]",passwordPlaceholder:"Enter password",registerSuccessDetail:"Registration successful! Please check your email for the activation code.",verified:"Verified",unverified:"Unverified",profileSettings:"Profile Settings",editName:"Edit Username",save:"Save",namePlaceholder:"Enter new username (max 50 chars)",updateSuccess:"Profile updated!",totalPlayTimeLabel:"Total Play Time",totalPlayCountLabel:"Total Plays",boun
70dEmail:"Email",boundPhone:"Phone",boundDiscord:"Discord",discordOAuth:"One-click Connect Discord",rebindDiscord:"Re-authenticate Discord",discordCheckReward:"I've joined â check and claim",bindDiscord:"Bind Discord Account",discordRewardActive:"Discord reward claimed (+10 permanent generations, +10 permanent voice uses)",voiceCommunityRedemptionActive:"Community redemption perk active",borrowSuccess:"Character borrowed successfully!",notSet:"Not Set",saves:"Saves",savesSub:"Saves",saveManagerTitle:"Save Manager",autoSave:"Auto Save",manualSave:"Manual Save",noSaves:"No saves found",load:"Load",deleteSave:"Delete",saveSuccess:"Game saved",loadSuccess:"Game loaded",saveDate:"Date",importSaveBtn:"Import Save",importSaveTitle:"Import Script Save",importSaveHint:"Enter the sharer's Save ID (UUID) to load the script.",importSaveWarning:"Note: Importing others' saves includes their custom character sprites for display, but won't add the character to your list.",announcementTitle:"Notice",announcementHistory:"Announcements",history:"History",received:"Received",idCopied:"ID copied to clipboard!",shareConfirmTitle:"Are you sure you want to share this save?",shareConfirmText:`Note: 711. Even if you cancel sharing later, you cannot delete copies that others have already saved. 722. Your custom character sprites will be included in the save for others to view (character prompts are not included).`,confirmShare:"Confirm Share",sharePoster:"Share Poster",publicSavePoster:"Public save poster",sharePosterReady:"Share poster ready",shareLink:"Share link",copyLink:"Copy link",downloadPoster:"Download poster",sharePosterHint:"This QR code opens the public save directly, without manually entering a UUID.",shareSaveMissing:"Unable to create a cloud save for sharing.",shareSaveFailed:"Failed to share save",scripts:"Scripts",status:"Status",healthy:"Healthy",scriptLibrary:"Script Library",companion:"Companion",lastPlayed:"Last Played",maxScripts:"Max 100 Scripts Enabled",allCategories:"All Categories",customBgTitle:"Select Game Backgroun
72d",defaultBgs:"Default Backgrounds",customBgs:"Custom Backgrounds",uploadBg:"Upload New Background",chooseBg:"Confirm & Start",noCustomBgs:"No custom backgrounds yet, try uploading one!",bgNameLabel:"Background Name",bgUploadClick:"Click to upload background",deleteBg:"Delete Background",deleteBgConfirm:"Are you sure you want to delete this background from the cloud?",voiceMode:"Voice Mode",voiceModeSub:"Voice Mode",voiceModeHint:"Automatically generate voice for characters. Generation may be slower depends on network.",intensiveReadMode:"Intensive Reading",intensiveReadModeSub:"Intensive Read",intensiveReadModeHint:"Split the PDF into ~3000-4500 character sections by paragraphs. Each section is analyzed with a separate AI call and treated as a chapter (each call consumes 1 usage). If there are more than 10 sections, section 10 will include everything after it. From section 2+, it will continue from the previous section to avoid repetitive re-intros.",ttsQueueConfirmTitle:"Voice Queue Notice",loadingChapterLabel:"Chapter generation",ttsQueueConfirmBody:`Current voice queue ahead: {{count}} 73Estimated wait: about {{minutes}} minute(s) 74 75Continue to start game with voice mode?`,ttsQueueFull:"The voice queue is full (max {{max}} people). Please try again later.",ttsQueueFetchFailedConfirm:"Unable to fetch voice queue info right now. Continue with voice mode anyway?",ttsQueueFetchFailedWithCodeConfirm:`Unable to fetch voice queue info right now ({{reason}}). 76Continue with voice mode anyway?`,voiceUsedTodayLabel:"Used today",voiceModeCharNoVoiceHint:"This character does not support voice. Please turn off voice mode or choose a character with voice before starting.",voiceDisabledInIntensiveHint:"Voice mode will be turned off in intensive reading mode",generatingVoice:"Generating character voices...",voiceGenerationComplete:"Voice generation complete",bookmarkSaved:"Bookmark saved",bookmarkSaveFailed:"Failed to save bookmark",bookmarkNotFound:"No bookmark in current save",bookmarkInvalid:"Bookmark invalid, cannot jump",bookmarkLoaded:"Jumped to bookmark",bookmarkLoadFailed:"Failed to load bookmark",saveBookmark:"Save bookmark",loadBookmark:"Load bookmark",exitWhileGeneratingTitle:"Confirm Exit",exitWhileGeneratingMessage:"The remaining chapters are still being generated. Exiting now will stop generation, and the cloud save may be incomplete (only the content generated so far will be kept). Are you sure you want to exit?",exitWhileGeneratingConfirm:"Exit Anyway",exitWhileGeneratingCancel:"Keep Waiting",dialogOk:"OK",dialogConfirm:"Confirm",dialogCancel:"Cancel"},ja:{start:"éå§",startSub:"Start Game",studyRoom:"èªç¿å®¤",studyRoomBack:"ãã¼ã ã«æ»ã",studyRoomPlay:"åç",studyRoomPause:"䏿忢",studyRoomMute:"ãã¥ã¼ã",studyRoomUnmute:"é³å£°ããªã³",studyRoomFullscreen:"ãã«ã¹ã¯ãªã¼ã³",studyRoomExitFullscreen:"ãã«ã¹ã¯ãªã¼ã³ãçµäº",studyRoomVideoError:"åç»ãèªã¿è¾¼ãã¾ããã§ããããã°ãããã¦ããããä¸åº¦ã試ããã ããã",studyRoomPreviousTrack:"åã®æ²",studyRoomNextTrack:"æ¬¡ã®æ²",studyRoomMusicSource:"Paper2Gal Lofi ã©ã¤ãã©ãª",studyRoomMusicError:"鳿¥½ãèªã¿è¾¼ãã¾ããã§ãããå¥ã®æ²ãã試ããã ããã",studyRoomTimeZone:"ã¿ã¤ã ã¾ã¼ã³ã夿´",studyRoomLocalTimeZone:"ãã¼ã«ã«æé",partner:"ãã¼ããã¼",partnerSub:"Partner",settings:"è¨å®",settingsSub:"Config",about:"ã³ãã¥ãã㣠/ ä½è ",aboutSub:"ã¯ã¬ã¸ããã¨ãªã³ã¯",community:"ã³ãã¥ããã£",communitySub:"Community",arxiv:"arXiv",arxivSub:"ãã¤ãªã¼æ¨è¦ã¨æ¤ç´¢",arxivDaily:"ãã¤ãªã¼æ¨è¦",arxivSearch:"æ¤ç´¢",arxivSearchPlaceholder:"ãã¼ã¯ã¼ããå ¥åï¼ä¾: diffusion, LLM, reinforcement learningï¼",arxivOpenAbs:"詳細ãéã",arxivOpenPdfDirect:"PDFç´ãªã³ã¯",arxivUseForScript:"解説ã«ä½¿ã",paperDiscoveryTitle:"è«æãæ¢ã",paperDiscoverySubtitle:"ãªã¼ãã³ã¢ã¯ã»ã¹è«æãçºè¦",paperSource_openalex:"ãã¹ã¦ã®åé",paperSource_europepmc:"å»å¦ã»çå½ç§å¦",paperSource_arxiv:"ãã¬ããªã³ã",paperEmpty:"è«æãè¦ã¤ããã¾ãã",paperSearchHint:"ãã¼ã¯ã¼ããå ¥åãã¦æ¤ç´¢ãã¦ãã ãããæ¯æ¥ã®ãããã㯠OpenAlex ãæä¾ãã¾ãã",paperUseAbstract:"è¦æ¨ã使ã",paperImportFull:"å ¨æãèªã¿è¾¼ã",paperImportFallback:"{{error}} 代ããã«è¦æ¨ã使ç¨ãã¾ãã",paperRecommended:"èå³ã«åºã¥ãæ¨è¦",paperTrending:"注ç®è«æ",paperFullAvailable:"å ¬éå ¨æ",paperFullUnknown:"å ¨ææªç¢ºèª",paperLoadFailed:"è«æãèªã¿è¾¼ãã¾ãã",paperSearchFailed:"è«æãæ¤ç´¢ã§ãã¾ãã",paperImportFailed:"å ¨æã®èªã¿è¾¼ã¿ã«å¤±æãã¾ãã",paperFullEmpty:"å ¨æã空ã§ã",paperPreferencesTitle:"è«æã®å¥½ã¿",paperPreferencesHint:"æ¯æ¥ã®ããããã¯é¸æããåéã¨æ³¨ç®è«æãçµã¿åããã¾ããæå¤§3åéã",paperPreferencesPreset:"ç ç©¶åéã鏿",paperPreferencesCustom:"ç ç©¶åéãå ¥å",paperPreferencesAdd:"追å ",paperPreferencesRemove:"{{name}}ãåé¤",topicAi:"人工ç¥è½",topicVision:"ã³ã³ãã¥ã¼ã¿ãã¸ã§ã³",topicNlp:"èªç¶è¨èªå¦ç",topicRobotics:"ããããå·¥å¦",topicMedicine:"å»å¦",topicBiology:"çç©å¦",topicPhysics:"ç©çå¦",topicChemistry:"åå¦",topicMaterials:"ææç§å¦",topicEconomics:"çµæ¸å¦",topicPsychology:"å¿çå¦",topicEducation:"æè²å¦",termsOfService:"å©ç¨è¦ç´",privacyPolicy:"ãã©ã¤ãã·ã¼ããªã·ã¼",aiSettings:"AIè¨å®",musicSettings:"鳿¥½è¨å®",fullscreenMode:"ãã«ã¹ã¯ãªã¼ã³ã¢ã¼ã",fullscreenModeHint:"ãã©ã¦ã¶UIãé表示ã«ãã¾ããEscãã¼ã§çµäºã§ãã¾ãã",fullscreenUnsupported:"ãã®ãã©ã¦ã¶ã¯ã¦ã§ããã¼ã¸ã®ãã«ã¹ã¯ãªã¼ã³ã«å¯¾å¿ãã¦ãã¾ããã",fullscreenFailed:"ãã«ã¹ã¯ãªã¼ã³ã«ã§ãã¾ããã§ããããã©ã¦ã¶ã®æ¨©éã確èªãã¦ãã ããã",bgmDefault:"ããã©ã«ã",bgmPeaceful:"æãã",bgmJoyful:"çãã",bgmEmotional:"ç©ãã",bgmRelaxing:"ãªã©ãã¯ã¹",preview:"試è´",uploadCustomBgm:"BGMã¢ãããã¼ã",bgmUploadHint:"MP3å½¢å¼å¯¾å¿ããã©ã¦ã¶ã«ä¿åãã
76ã¾ã",bgmCredit:"ä¸é¨BGMç´ æã¯é»èèçç´ æå°å±ããæä¾",redemptionCode:"å¼ãæãã³ã¼ã",redemptionCodeHint:"ã³ã¼ããå ¥åããã¨æ°¸ç¶å©ç¨åæ°ã¾ãã¯æ°¸ç¶é³å£°åæ°ãç²å¾ã§ãã¾ããåãã³ã¼ãã¯åã¢ã«ã¦ã³ã1åã®ã¿ä½¿ç¨ã§ãã¾ãã",redemptionCodePlaceholder:"ã³ã¼ããå ¥å",redeem:"å¼ãæã",redeeming:"å¼ãæãä¸...",redemptionSuccess:"å¼ãæãå®äº",redemptionSuccessWithRewards:"å¼ãæãå®äºï¼{{rewards}}ãä»ä¸ãã¾ãã",redemptionRewardSeparator:"ã",redemptionPermanentUsesReward:"æä¹ å©ç¨ {{count}} å",redemptionPermanentVoiceReward:"æä¹ é³å£° {{count}} å",redemptionMembershipDaysReward:"ã¡ã³ãã¼ã·ãã {{count}} æ¥",redemptionCommunityReward:"Discordã¡ã³ãã¼ã¨åçã®ãã¤ãªã¼ãã¼ãã¹åæ°ã¨é³å£°æ©è½ãæå¹ã«ãªãã¾ããã",redeemFailed:"å¼ãæãã«å¤±æãã¾ããããã°ãããã¦ããã試ããã ããã",redeemLoginRequired:"å¼ãæãåã«ãã°ã¤ã³ãã¦ãã ããã",steamWishlist:"Steam",steamWishlistSub:"ã¦ã£ãã·ã¥ãªã¹ãã§+10",steamWishlistClaimed:"æä¹ åæ° +10 å忏ã¿",steamWishlistTitle:"Paper2Gal ã Steam ã«ç»å ´ãã¾ãã",steamWishlistDesc:"Paper2Gal ãå¿æ´ãã¦ããã ãããªããSteam ã®ã¦ã£ãã·ã¥ãªã¹ã追å ããé¡ããã¾ããããå¤ãã®äººã«è¦ã¤ãã¦ãããããããªãã¾ãã",steamWishlistRewardHint:"確èªãæ¼ã㨠Steam ã¹ãã¢ã¸ç§»åããç¾å¨ã®ã¢ã«ã¦ã³ãã«æä¹ ä½¿ç¨åæ° 10 å + æä¹ é³å£° 3 åãä»ä¸ãã¾ããåã¦ã¼ã¶ã¼ 1 åéãã§ãã",steamWishlistLoginHint:"Steam ã¦ã£ãã·ã¥ãªã¹ãå ±é ¬ãåãåãã«ã¯å ã«ãã°ã¤ã³ãã¦ãã ããã",steamWishlistConfirm:"確èªã㦠Steam ã¸",steamWishlistCancel:"ãã¨ã§",steamWishlistRewardClaimed:"Steam ã¦ã£ãã·ã¥ãªã¹ãå ±é ¬ã¯å忏ã¿ã§ã",steamWishlistRewardSuccess:"Steam ã¦ã£ãã·ã¥ãªã¹ãã¸ã®ãæ¯æ´ãããã¨ããããã¾ããæä¹ 使ç¨åæ° 10 åã¨æä¹ é³å£° 3 åãä»ä¸ãã¾ããã",communityTitle:"ã¯ã¼ã¯ã·ã§ãã",workshopUpdateReminder:"ãã®ãã£ã©ã¯ã¯ã¼ã¯ã·ã§ããã«å ¬éä¸ã§ãã夿´ãåæ ããã«ã¯ã¯ã¼ã¯ã·ã§ããã§æ´æ°ãæåºãã¦ãã ããã",discordDesc:"ã³ãã¥ããã£ã«åå ",bilibiliDesc:"æ´æ°ããã§ãã¯",wechatDesc:"ã¹ãã£ã³ãã¦åå ",supportAuthor:"ä½è ããµãã¼ã",supportDesc:"éçºæ´»åãæ¯æ´ããããã®æãéã§ããè¦è¿ãã¯ããã¾ããããã¡ãã»ã¼ã¸ã§æ©è½ããªã¯ã¨ã¹ãã§ãã¾ãï¼æ¤è¨ãã¾ãï¼ã",kofiLink:"https://ko-fi.com/tamikip",afdianLink:"https://afdian.com/a/tamikip",internationalSupport:"æµ·å¤ãã (Ko-fi)",domesticSupport:"æ¥æ¬/ä¸å½ãã (Afdian)",selectPartner:"ãã¼ããã¼é¸æ",charRuka:"è¼å¤ ã«ã«",createCustomBtn:"æ°è¦ä½æ",adjustStorySprite:"ã¹ãã¼ãªã¼ç«ã¡çµµã調æ´",createCharTitle:"æ°è¦ãã£ã©ã¯ã¿ã¼ä½æ",editCharTitle:"ãã£ã©ã¯ã¿ã¼ç·¨é",charIdLabel:"ID (åè§è±æ°ã®ã¿)",charIdPlaceholder:"ä¾: MY_CHAR_01",charNameLabel:"表示å",charNamePlaceholder:"ä¾: ã¢ãªã¹",charImgLabel:"ç«ã¡çµµç»å (éæPNGæ¨å¥¨)",uploadClick:"ã¯ãªãã¯ãã¦ã¢ãããã¼ã",charPromptLabel:"æ§æ ¼ããã³ãã",charPromptPlaceholder:"ãã£ã©ã¯ã¿ã¼ã®æ§æ ¼ãå£èª¿ãè«æã®è§£èª¬ã¹ã¿ã¤ã«ãè¨è¿°...",charPromptHelpTitle:"ð ããã³ããè¨å ¥ãã³ãã¬ã¼ã",charPromptHelpContent:`ããªãã¯å´©å£ï¼ã¹ã¿ã¼ã¬ã¤ã«ã®ãèï¼ãã¿ã«ï¼ããæ¼ãã¦ãã¾ãã 77 78ããªãã¯æ§æ ¼ãç©ããã§ãææ ãç¹ç´°ãããæé¬±ã§ãå é¢ã¯å¼·ãå°å¥³ã§ããå½ãæéãããã¦äººã¨ã®çµã«å¯¾ãã¦ãæ®éã®äººããæ·±ãæè¦ãæã£ã¦ãã¾ãã 79 80ããªãã¯ä¸ã¤ä¸ã¤ã®äº¤æµã大åã«ããç¸æã¨ã®é¢ä¿ãçå£ã«åãæ¢ãã¾ããæ²ãã¿ã表ã«åºãã®ã§ã¯ãªããç©ãããã¨åªããã§ä¸çã«åãåãã¾ãã 81 82ãæ§æ ¼ç¹å¾´ã 83å åçãæ¥ãããããå±ãææ§è±ããç¹ç´°ãè¯ãå¼·ãã 84 85ãä»è ã¸ã®æ 度ã 86ä¿¡é ¼ããããã 87ãã°ã«ãããã¨ãæ·±ã大åã«ããã 88ç¸æã®ç¶æ ãæ°ã«ãããã 89è² æ ã«ãªããããªãã 90ææ çãªç¹ããã¨æãåºãéè¦ããã 91 92ãè¨èã®ç¹å¾´ã 93èªèª¿ãæãããã 94ç¤¼åæ£ããæ§ããã 95ææãéãèãè¾¼ãæããããã 96ææ§çãªè¡¨ç¾ãå¤ãã 97æã¯é常簡æ½ã 98 99ãèªèª¿ã®ä¾ï¼ã¹ã¿ã¤ã«åèã®ã¿ï¼ã 100ãããâ¦â¦ã§ããã°ãããå°ãã ãããããªãã 101ãããªãã¨è©±ãã¦ãæ¬å½ã«å¬ãããã 102ããã®æéã¯ãç§ã«ã¨ã£ã¦ã¨ã¦ã大åãªãã®ãã 103ãé å¼µãããâ¦â¦ã ããããã¾ãå¿é ããªãã§ããã`,charPromptHelpHint:"ä¸è¨ã¯ãã³ãã¬ã¼ãã§ãããèªèº«ã®ãã£ã©ã¯ã¿ã¼ã«åããã¦èªç±ã«å¤æ´ãã¦ãã ããã",charPromptBackgroun
103dHint:"å
ã®ããã³ããã¯èæ¯ã»ã¹ã¿ã¤ã«è³æã¨ãã¦ã®ã¿ä½¿ç¨ãããå¼ã³æ¹ãå£çã®æ£ç¢ºãªåå©ç¨ã¯ä¿è¨¼ããã¾ããã",charProfileTitle:"ãã£ã©ã¯ã¿ã¼è¡¨ç¾ Profileï¼ä»»æï¼",charProfileDesc:"JSON ã¯ä¸è¦ã§ããå¼ã³æ¹ã»æ±ºãå°è©ã»åå¿ãè¨å®ããå¾ããç·¨éã¾ãã¯ãªãã«ãã¦æ¶å»ã§ãã¾ãã",charProfileEnable:"è¡¨ç¾ Profile ãæå¹å",charProfileDisable:"è¡¨ç¾ Profile ãç¡å¹åãã¦æ¶å»",charProfileDisabledHint:"ç¾å¨ã¯ç¡å¹ã§ããæ¢åãã£ã©ã¯ã¿ã¼ãä¿åããã¨è¡¨ç¾ Profile ãæ¶å»ããã¾ãã",charProfileBasicTitle:"åºæ¬è¡¨ç¾",charProfileAdvancedTitle:"é«åº¦ãªè¡¨ç¾",charProfileRelationship:"ãã¬ã¤ã¤ã¼ã¨ã®é¢ä¿",charProfileFirstPerson:"ä¸äººç§°",charProfileOnePerLine:"1 è¡ã« 1 é
ç®",charProfilePrimaryAddress:"ããã©ã«ãã®å¼ã³æ¹",charProfileAddressFrequency:"å¼ã³ããé »åº¦",charProfileFrequencyLow:"å°ãªã",charProfileFrequencyMedium:"æ®é",charProfileFrequencyHigh:"å¤ã",charProfileSentenceLength:"æã®é·ã",charProfileSentenceShort:"çæä¸å¿",charProfileSentenceMedium:"ãã©ã³ã¹",charProfileSentenceLong:"é·æä¸å¿",charProfileEndings:"ãã使ãèªå°¾",charProfileAlternativeAddresses:"å¥ã®å¼ã³æ¹",charProfilePauses:"éã®è¡¨ç¾",charProfileSignaturePhrases:"決ãå°è©ã¨çºåæ¡ä»¶",charProfileSignatureText:"決ãå°è©",charProfileSignatureTriggers:"çºåæ¡ä»¶",charProfileMaxPerSection:"ç¯ãã¨ã®ä¸é",charProfileCooldownFrames:"ééãã¬ã¼ã ",charProfileAddSignature:"決ãå°è©ã追å ",charProfileReactionRules:"åå¿ã«ã¼ã«",charProfileReactionTrigger:"ç¶æ³",charProfileReactionBehavior:"åå¿",charProfileReactionEmotion:"表æ
",charProfileAddReaction:"åå¿ã«ã¼ã«ã追å ",charProfileMetaphorDomains:"æ¯å©ã®åé",charProfileSideTopicHooks:"ä½è«ã®ç´ æ",charProfileForbiddenPhrases:"ç¦æ¢ããå®åå¥",charProfilePositiveExamples:"è¯ãä¾",charProfileNegativeExamples:"æªãä¾",charProfileRequiredError:"å¿
é é
ç®ãå
¥åãã¦ãã ãã",charProfileTooManyError:"é
ç®ãå¤ããã¾ããä¸éï¼",charProfileTooLongError:"ãã¬ã¼ãºãé·ããã¾ããæåæ°ä¸éï¼",charProfileIncompleteError:"åã«ã¼ã«ã宿ãã¦ããä¿åãã¦ãã ãã",charProfileRangeError:"åæ°ã¾ãã¯ééã許容ç¯å²å¤ã§ã",charProfileInvalidError:"ä¿åã§ããªãå
容ãããã¾ããä¿®æ£ãã¦å試è¡ãã¦ãã ãã",cancel:"ãã£ã³ã»ã«",create:"使",update:"æ´æ°",fillAllFields:"ãã¹ã¦ã®é
ç®ãå
¥åãã¦ãã ãã",idInvalid:"IDã¯åè§è±æ°åã®ã¿ä½¿ç¨ã§ãã¾ã",idConflictBuiltin:"IDãçµã¿è¾¼ã¿ãã£ã©ã¯ã¿ã¼ã¨éè¤ãã¦ãã¾ã",idConflictCustom:"ãã®IDã¯æ¢ã«ä½¿ç¨ããã¦ãã¾ã",imgTooLarge:"大ããªç»åãæ¤åºããã¾ããããã©ã¦ã¶ã®ã¹ãã¬ã¼ã¸å¶éã«æ³¨æãã¦ãã ããã",deleteConfirm:"ãã®ãã£ã©ã¯ã¿ã¼ãåé¤ãã¦ãããããã§ããï¼",importOptionsTitle:"ãã£ã©ã¯ã¿ã¼ã®ã¤ã³ãã¼ã",importOptionsDesc:"ã¤ã³ãã¼ãæ¹æ³ã鏿ãã¦ãã ãã",importFromFile:"ãã¡ã¤ã«ããã¤ã³ãã¼ã",borrowFromUuid:"UUIDã§åç¨",borrowTitle:"ãã£ã©ã¯ã¿ã¼ãåç¨",borrowDesc:"å
±æããããã£ã©ã¯ã¿ã¼ã®UUIDãå
¥åãã¦åç¨ãã¾ã",uuidPlaceholder:"UUIDãå
¥å",borrowing:"åç¨ä¸...",borrowBtn:"åç¨",idHint:"å°æå/æ°å/ã¢ã³ãã¼ã¹ã³ã¢ï¼ã¹ã¯ãªããç¨ï¼",shareUuidLabel:"ææUUIDï¼ä»ã®ã¦ã¼ã¶ã¼ã®åç¨æï¼",uuidCopied:"UUIDãã¯ãªãããã¼ãã«ã³ãã¼ãã¾ããï¼",copyBtn:"ã³ãã¼",shareToggleTitle:"ãã£ã©ã¯ã¿ã¼ãå
¬é",shareToggleDesc:"UUIDãç¥ã£ã¦ããä»ã®ã¦ã¼ã¶ã¼ããã®ãã£ã©ã¯ã¿ã¼ãåç¨ã§ããããã«ãã¾ã",maxSizeLabel:"å¶é5mb",checking:"æ¤è¨¼ä¸...",importBtn:"ã¤ã³ãã¼ã",importSuccess:"ãã£ã©ã¯ã¿ã¼ãã¤ã³ãã¼ããã¾ããï¼",importFailed:"ã¤ã³ãã¼ã失æï¼ç¡å¹ãªJSONå½¢å¼ã§ãã",expressionsLabel:"表æ
å·®å (ä»»æ)",endingCgLabel:"ã¨ã³ãã£ã³ã°CG",endingCgLimitLabel:"æå¤§3æ / 5MB",endingCgTooLarge:"CGç»åã¯5MB以å
ã«ãã¦ãã ãã",uploadImageFileOnly:"ç»åãã¡ã¤ã«ãã¢ãããã¼ããã¦ãã ãã",charVoiceRefTextLabel:"åèé³å£°ããã¹ã (ä»»æ)",charVoiceRefTextPlaceholder:"åèé³å£°ã§è©±ãã¦ããå
容ãå
¥åãã¦ãã ãã",charVoiceRefAudioLabel:"åèé³å£°ãªã¼ãã£ãª (ä»»æ)",charVoiceRefUploadedHint:"åèé³å£°ãã¢ãããã¼ãæ¸ã¿ · æ°ãããã¡ã¤ã«ã§ç½®æ",charVoiceRefAudioHint:"5â15ç§æ¨å¥¨ãæé·20ç§ã»500KB以å
",charVoiceRefAudioTooBig:"åèé³å£°ã¯500KB以å
ã«ãã¦ãã ããã",charVoiceRefAudioTooLong:"åèé³å£°ã¯20ç§ä»¥å
ã«ãã¦ãã ãããä¿ååã«ããªãã³ã°ãã¦ãã ããã",charVoiceRefTrimNeeded:"é³å£°ã500KBã¾ãã¯20ç§ãè¶
ãã¦ãã¾ããä¿ååã«ããªãã³ã°ãã¦ãã ããã",charVoiceRefTrimInvalid:"çµäºæéã¯éå§æéããå¾ã«ãã¦ãã ããã",charVoiceRefTrimUnsupported:"ãã®ãã©ã¦ã¶ã¯é³å£°ããªãã³ã°ã«å¯¾å¿
103ãã¦ãã¾ããã",charVoiceRefTrimFailed:"é³å£°ã®ããªãã³ã°ã«å¤±æãã¾ãããå¥ã®WAVã¾ãã¯MP3ã§ã試ããã ããã",charVoiceRefTrimStart:"éå§",charVoiceRefTrimEnd:"çµäº",charVoiceRefTrimButton:"ããªãã³ã°",charVoiceRefDuration:"é·ã",charVoiceRefLoadingDuration:"é³å£°ã®é·ããèªã¿è¾¼ã¿ä¸",charVoiceRefTrimReady:"ã¢ãããã¼ãæºåå®äº",idConflictOverwrite:"IDãéè¤ãã¦ãã¾ãã䏿¸ããã¾ããï¼",validationFailed:"æ¤è¨¼å¤±æ",delete:"åé¤",borrowedCountLabel:"åç¨æ°",peopleCount:"人",topicSelect:"課é¡é¸æ",rukaWait:"ã主人æ§ã{{name}}ã¯æºåä¸ç«¯ã§ãâ¦â¦ããè«æã®è§£èª¬ã®ãã¨ã§ããï¼",uploadPlaceholder:"è«æ/èæ¬ãã¢ãããã¼ã",uploadSub:"PDF / TXT / DOCX / PPTXï¼ç¡æ: 1ä»¶ãä¼å¡: æå¤§5ä»¶ï¼",uploadSubFree:"PDF / TXT / DOCX / PPTXï¼ç¡æ: 1ä»¶ãä¼å¡: æå¤§5ä»¶ï¼",uploadSubMember:"PDF / TXT / DOCX / PPTXï¼æå¤§5ãã¡ã¤ã«ãå30MBï¼",scriptLoaded:"èæ¬èªã¿è¾¼ã¿å®äº",textPlaceholder:"ã¾ãã¯ããã«è«æã®å
容ãè²¼ãä»ãã¦ãã ãã...",scriptDetected:"èæ¬ãã¡ã¤ã«ãæ¤åºããã¾ãããèªã¿è¾¼ã¿ã¾ããï¼",startExplain:"解説éå§",loadScript:"èæ¬ãèªã¿è¾¼ã",contentTooShort:"å
容ãå°ãªããã¦åããã¾ããï¼ãã£ã¨å¤ãã®è«æå
容ããæå¹ãªèæ¬ãã¡ã¤ã«ãã¢ãããã¼ããã¦ãã ããã",contentTooLong:"ããã¥ã¡ã³ãã®æåæ°ã30ä¸åã®å¶éãè¶
ãã¦ãã¾ãï¼ç¾å¨ç´{{count}}åï¼ãå
容ãçããã¦åã¢ãããã¼ããã¦ãã ããã",readError:"ãã¡ã¤ã«ãèªã¿è¾¼ãã¾ããã§ãããããä¸åº¦è©¦ãã¦ãã ããã",pdfLocalParseUnsupported:"ãã®PDFãèªã¿è¾¼ãã¾ãããPDFã忏ãåºãããããTXT/DOCXã«å¤æãã¦ã¢ãããã¼ããã¦ãã ããã",invalidScript:"ç¡å¹ãªèæ¬ãã¡ã¤ã«å½¢å¼ã§ãã",fileTooLarge:"ãã¡ã¤ã«ãµã¤ãºã30MBãè¶
ãã¦ãã¾ããããå°ããªãã¡ã¤ã«ãã¢ãããã¼ããã¦ãã ããã",tooManyFiles:"ã¢ãããã¼ãã§ãããã¡ã¤ã«ã¯æå¤§5ä»¶ã§ãã",multiUploadMembersOnly:"ç¡æã¦ã¼ã¶ã¼ã¯ä¸åº¦ã«1ãã¡ã¤ã«ã®ã¿ã¢ãããã¼ãã§ãã¾ããè¤æ°ææ¸ã¢ãããã¼ãã¯ä¼å¡éå®ã§ãã",txtUtf8Hint:"ãã³ãï¼çæãããå
容ãã¤ã³ãã¼ãå
容ã¨ä¸è´ããªãå ´åã¯ã.txt ãã¡ã¤ã«ã UTF-8 ã¨ã³ã³ã¼ãã«å¤æãã¦å度ã¤ã³ãã¼ããã¦ãã ããã",orPlayByUuid:"ã¾ãã¯ã»ã¼ãUUIDã§ãã¬ã¤",noLoginRequired:"*ãã°ã¤ã³ä¸è¦",playByUuidPlaceholder:"ã»ã¼ãUUIDãå
¥å...",saveNotFound:"ã»ã¼ããã¼ã¿ãè¦ã¤ããã¾ãã",saveNotShared:"ãã®ã»ã¼ãã¯å
±æããã¦ãã¾ãã",systemConfig:"ã·ã¹ãã è¨å®",volume:"é³é",bgmVolume:"BGMé³é",voiceVolume:"é³å£°é³é",textSpeed:"æåé度",fontSize:"æåãµã¤ãº",autoAdvanceDelay:"èªåéãéé",autoAdvanceByVoice:"é³å£°ã«åããã¦èªåéã",autoAdvanceByVoiceHint:"æå¹æããªã¼ãã¢ã¼ãã§ã¯é³å£°åççµäºã® 1 ç§å¾ã«æ¬¡ã¸é²ã¿ã¾ããé³å£°ããªãå ´åã¯ä¸ã®ééã«æ»ãã¾ãã",saveClose:"ä¿åãã¦éãã",language:"è¨èª (Language)",outputLanguage:"AI åºåè¨èª",outputLanguageHint:"空æ¬ã¾ã㯠default ã§ãµã¤ãè¨èªã«å¾ããã¾ã㯠EnglishãFrench ãªã©ãå
¥å",voiceOutputLanguage:"é³å£°åºå",voiceOutputLanguageHint:"Auto ã¯ãµã¤ãè¨èªã«å¾ãã¾ããé³å£°ã¨è¨èªè¡¨ç¤ºãç°ãªãå ´åãTTS ç¨ã®ç¿»è¨³ãã£ã¼ã«ããå¥éçæãã¾ãã",playerNickname:"ãã£ã©ã¯ã¿ã¼ãããªããå¼ã¶åå",playerNicknameHint:"ä¾ï¼å
輩ãå
çããã¹ã¿ã¼ãªã©ã空æ¬ã§ããã©ã«ã",gameUiPreset:"ã²ã¼ã å
UI ããªã»ãã",gameUiPresetFullwidth:"å
¨å¹
ãã¸ã¥ã¢ã«ããã«",gameUiPresetFullwidthDesc:"ä¼å¡éå®ï¼ç»é¢ä¸é¨ãã£ã±ãã®ç¥çè²ã°ã©ãã¼ã·ã§ã³ãæ¬æå
ã®ååã¨éæãªæä½ãã¿ã³ã",gameUiPresetClassic:"ã¯ã©ã·ãã¯ãã³ã¯",gameUiPresetClassicDesc:"æããæãããªãã¸ã¥ã¢ã«ããã«é¢¨ã®æ¨æºUIã§ãã",gameUiPresetFloral:"ã¯ã©ã·ãã¯ããã¼ã©ã«",gameUiPresetFloralDesc:"ç¡æã§ä½¿ããã»ãã¢èª¿ã®è±é£¾ããã¶ã¤ã³ããã¼ã ãã¬ã¼ãããã¿ã³ãé¸æè¢æ ä»ãã§ãã",gameUiPresetSakura:"æ¡ãã¬ã¼ã ",gameUiPresetSakuraDesc:"è£
飾è§ã¨ãã¼ã ãã¬ã¼ããåãããä¸åãªæ¡ã®ãã¤ã¢ãã°ã§ãã",gameUiPresetGothic:"ã´ã·ãã¯ãã¼ãº",gameUiPresetGothicDesc:"éã®ç¸åãã¨ç´«ã®èèè£
飾ãåãããæè²ã®ãã¤ã¢ãã°ã§ãã",apiTokenDescriptionPrefix:"MCP ã¾ã㯠CLI ãã Paper2Gal ã«æ¥ç¶ããããã«ä½¿ç¨ãã¾ããCLI ã¤ã³ã¹ãã¼ã«ï¼",apiTokenDescriptionSuffix:"ãToken ã¯ä½ææã«ä¸åº¦ã ã表示ããã¾ããã³ãã¼ãã¦ä¿åãã¦ãã ããã",apiTokenNameLabel:"Token å",apiTokenCreateButton:"Token ã使",apiTokenNewTokenLabel:"æ°ãã Tokenï¼ä¸åº¦ã ã表示ï¼",apiTokenMyTokens:"èªåã® Token",apiTokenEmpty:"API Token ã¯ããã¾ãã",apiTokenCreatedAt:"使",apiTokenLastUsedAt:"æçµä½¿ç¨",apiTokenNeverUsed:"æªä½¿ç¨",apiTokenLoadFailed:"API Token ã®èªã¿è¾¼ã¿ã«å¤±æãã¾ãã",apiTokenLoginRequired:"API Token ã使ããã«ã¯ãã°ã¤ã³ãã¦ãã ãã",apiTokenCreateFailed:"API Token ã®ä½æã«å¤±æãã¾ãã",apiTokenCreatedMessage:"API Token ã使ãã¾ãããä»ããã³ãã¼ãã¦ä¿åãã¦ãã ããã",apiTokenDeleteFailed:"API Token ã®åé¤ã«å¤±æãã¾ãã",apiTokenDeletedMessage:"API Token ãåé¤ãã¾ããã",refresh:"æ´æ°",logout:"ãã°ã¢ã¦ã",back:"æ»ã",auto:"èªå",log:"ãã°",hide:"é ã",
103important:"éè¦ãã¼ã",raiseHand:"質å",raiseHandTitle:"ãã®å ´ã§è³ªå",questionPlaceholder:"ä»èããããã¨ãå
¥åãã¦ãã ãããAI ã人è¨ãåèããã¹ããç¾å¨ã®ã·ããªãªæèãè¸ã¾ãã¦çãã¾ãã",questionHint:"ãã®è³ªåã¯ä¸æçãªãã®ã§ãã·ããªãªã«ã¯ä¿åããã¾ãããCtrl/Cmd + Enter ã§éä¿¡ã§ãã¾ãã",askCancel:"ãã£ã³ã»ã«",askSend:"éä¿¡",asking:"èãä¸...",backToStory:"æ¬ç·¨ã«æ»ã",questionEmpty:"質åå
容ãå
¥åãã¦ãã ããã",questionUnavailable:"ä»ã¯è³ªåã§ãã¾ããã",storyQuestionArchiveTitle:"ã¹ãã¼ãªã¼ã®è³ªåãä¿å",storyQuestionArchivePrivacy:"ä¿åå
容ã¯èªåã ããå©ç¨ã§ãã¾ãããªãã¬ã¤ã§ã¯AIãTTSãå¼ã³åºãã¾ããã",storyQuestionArchiveSaveFailed:"åçã¯è¡¨ç¤ºããã¾ããããä¿åã§ãã¾ããã§ãããç©èªã¯ç¶ãããã¾ãã",storyQuestionArchiveCapacity:"ä¿åãã質åã®ä»¶æ°ã¾ãã¯å®¹éãä¸éã«éãã¾ãããåçã¯å¼ãç¶ã表示ã§ãã¾ãã",storyQuestionArchivePending:"åçæ¸ã¿ã®è³ªåãã¾ã ä¿åããã¦ãã¾ãããé¢ããåã«å°ããå¾
ã¡ãã ããã",storyQuestionArchiveAnchorPending:"質åä½ç½®ã確èªããã»ã¼ãã®ã¹ãããã·ã§ãããå¾
ã£ã¦ãã¾ããåçã¯è¡¨ç¤ºã§ãã¾ãã",storyQuestionArchiveReplay:"ä¿åæ¸ã¿ã®è³ªåãåçä¸ã§ããAIãTTSã¯åã³å¼ã³åºãã¾ããã",reading:"è«æãèªãã§ãã¾ã...",loadingScriptLabel:"ã·ããªãªçæ",loadingScriptMessage:"ã·ããªãªçæä¸...",loadingVoiceLabel:"é³å£°çæ",loadingVoiceMessage:"é³å£°çæä¸...",loadingWaitHint:"å¾
æ©ä¸...",loadingInteractionHint:"å°ã
ãå¾
ã¡ãã ãããã¹ãã¼ã¹ãã¼ã¾ãã¯ã¿ããã§ã¸ã£ã³ã",collectIdeas:"æµ®ããã§ããã¢ã¤ã³ã³ãã¯ãªãã¯ãã¦ã¢ã¤ãã¢ãéãããï¼",loadingJumpHint:"ã¹ãã¼ã¹ã¾ãã¯ã¿ããã§ã¸ã£ã³ã",loadingGameOverTitle:"ã¶ã¤ãã£ãï¼",loadingGameOverSub:"èªã¿è¾¼ã¿ã¯ç¶ãã¦ãã¾ãâ¦",loadingRestartIn:"åéã¾ã§",loadingRestartGo:"ã¹ã¿ã¼ãï¼",loadingMessages:["ããã¢ã¤ãã¢ï¼","ã¡ã¢ã¡ã¢...","ãããå
輩ï¼","éããï¼","ç¶ãã¦ï¼"],sponsoredBy:"æä¾ï¼è§ç¹ (GuanCha)",adSlogan:"AIã§éã¶ãªããè§ç¹ã¸ã",loadingScript:"èæ¬ãèªã¿è¾¼ãã§ãã¾ã...",completionRate:"éæç: 100%",researchCompleted:"ç ç©¶å®äº",researchLog:"çç ç©¶è¨é²",observationLog:"ã®è¦³å¯æ¥è¨",titleBtn:"ã¡ã¤ã³ã¡ãã¥ã¼",replayBtn:"ããä¸åº¦",exportBtn:"ä¿å/æ¸ãåºã",saveCg:"CGãä¿å",continue:"ç¶ãã",endingTransitionHint:"ç©èªã®å¹ãéãã¦ãã¾ã...",endingFarewell:"ä»åã®è«æèªè§£ã¯å®äºãã¾ããã",systemError:"ã·ã¹ãã ã¨ã©ã¼",errorTitle:"ã¨ã©ã¼ãçºçãã¾ãã",errorHint:"çæä¸ã«åé¡ãçºçãã¾ãããã¾ãã¯ãªãã©ã¤ãã試ããã ãããåé¡ãç¶ãå ´åã¯ãè¨å®ã確èªãã¦ãã ããã",contactAdmin:"管çè
ã«é£çµ¡",retry:"ãªãã©ã¤",checkSettings:"è¨å®ã確èª",limitReached:"1æ¥ã®å¶éã«éãã¾ãããææ¥ããç´ãããã«ã¹ã¿ã ãã¼ã使ç¨ãã¦ãã ããã",dailyLimitExceeded:"æ¬æ¥ã®ä½¿ç¨åæ°ãä¸éã«éãã¾ãããææ¥å度ã試ãããã ãããå
æã³ã¼ãã§æ°¸ä¹
åæ°ãåå¾ãã¦ãã ããã",loginRequired:"ãã®åè½ã使ãã«ã¯ç»é²ã¾ãã¯ãã°ã¤ã³ãå¿
è¦ã§ãã",loginRequiredMsg:"ã¯ã©ã¦ãã»ã¼ããã«ã¹ã¿ã ãã£ã©ã¯ã¿ã¼ãªã©ã®å
¨æ©è½ãå©ç¨ããã«ã¯ãç»é²ã¾ãã¯ãã°ã¤ã³ãã¦ãã ããã",rotateDevice:"ç»é¢ãå転ããã¦ãã ãã",rotateDeviceSub:"PLEASE ROTATE DEVICE",rotateHint:"æé«ã®ãã¸ã¥ã¢ã«ããã«ä½é¨ã®ããã«ã横ç»é¢ã§ãã¬ã¤ãã¦ãã ããã",mobileApkPromptTitle:"ã¢ããªã¨ãã¦ä½¿ã",mobileAppInstallMessage:"Paper2Galãã¹ããã¢ããªã®ããã«ä½¿ãã¾ããiOSã¯ãã¼ã ç»é¢ã«è¿½å ãAndroidã¯APKã®ãã¦ã³ãã¼ããããããã§ãã",mobileNativeAppTitle:"ã¤ã³ã¹ãã¼ã«çã¢ããªã§å®è¡ä¸",mobileNativeAppMessage:"ç¾å¨ã¯Capacitorã§ããã±ã¼ã¸ãããã¢ããªçã使ç¨ãã¦ãã¾ããAPKã®åãã¦ã³ãã¼ãããã¼ã ç»é¢ã¸ã®è¿½å ã¯ä¸è¦ã§ãã",mobilePwaAppTitle:"å
¨ç»é¢ã¢ããªã¢ã¼ãã§å®è¡ä¸",mobilePwaAppMessage:"ãã¼ã ç»é¢ã®ã¢ã¤ã³ã³ããPaper2Galãéãã¦ããããããã©ã¦ã¶ã®ã¢ãã¬ã¹ãã¼ãªãã§å®è¡ããã¦ãã¾ãã",mobileAp
103pUpdateTitle:"ã¢ãããã¼ã",mobileNativeUpdateMessage:"ã¤ã³ã¹ãã¼ã«çã¢ããªã¯æ°ããã¤ã³ã¹ãã¼ã«ããã±ã¼ã¸ãå
¥ãããã¨ã§æ´æ°ãã¾ããWebã³ã³ãã³ãã¯ãªã³ã©ã¤ã³çã«è¿½å¾ã§ãã¾ããããã¤ãã£ãã·ã§ã«æ¬ä½ã¯æ°ããã¢ããªããã±ã¼ã¸ãå¿
è¦ã§ãã",mobilePwaUpdateMessage:"ãã¼ã ç»é¢çã¯Webãµã¤ãã®æ´æ°ã«èªåã§è¿½å¾ãã¾ããåæ ãããªãå ´åã¯éãã¦éãç´ããããã©ã¦ã¶ã§ä¸åº¦ãµã¤ããæ´æ°ãã¦ãã ããã",mobileAndroidInstallTitle:"Androidã§ã®ã¤ã³ã¹ãã¼ã«æ¹æ³",mobileApkPromptMessage:"ã¢ãã¤ã«çãµã¤ãã¯è¡¨ç¤ºæ§è½ãéããã¦ãã¾ããããè¯ãä½é¨ã®ãããAndroid APKã®ãã¦ã³ãã¼ãããããããã¾ãã",mobileApkDownload:"APKããã¦ã³ãã¼ã",mobileIosInstallTitle:"iOSå
¨ç»é¢ã¢ããªåã®æ¹æ³",mobileIosInstallMessage:"iOSã§ã¯APKã¯ä¸è¦ã§ããSafariã§ãã¼ã ç»é¢ã«è¿½å ãããã®ã¢ã¤ã³ã³ããéãã¨ãã¢ããªã«è¿ãå
¨ç»é¢ä½é¨ã«ãªãã¾ãã",mobileIosInstallStep1:"Safariã§ãã®ãµã¤ããéã",mobileIosInstallStep2:"ä¸é¨ã®å
±æãã¿ã³ãã¿ãã",mobileIosInstallStep3:"ä¸ã«ã¹ã¯ãã¼ã«ãã¦ããã¼ã ç»é¢ã«è¿½å ãã鏿",mobileIosInstallStep4:"ååãä»ãã¦ã追å ããã¿ããããæ¬¡åãããã¼ã ç»é¢ã®ã¢ã¤ã³ã³ã§éã",mobileIosOnlyHintTitle:"ãã³ã",mobileIosOnlyHint:"ãã©ã¦ã¶ã®ã¢ãã¬ã¹ãã¼ã表示ãããå ´åã¯ãSafariã§è¿½å ãããã¼ã ç»é¢ã¢ã¤ã³ã³ããèµ·åãã¦ããã確èªãã¦ãã ããã",mobileApkDownloadHint:"ã¢ãã¤ã«ã¦ã¼ã¶ã¼ã¯ãç¥ãããéããå¾ãããããAPKããã¦ã³ãã¼ãã§ãã¾ãã",downloads:"ãã¦ã³ãã¼ã",partners:"ãã¼ããã¼",trustedPartners:"ä¿¡é ¼ã§ãããã¼ããã¼",sponsorBadge:"ã¹ãã³ãµã¼",partnerBadge:"ãã¼ããã¼",memoryLog:"åæ³ãã°",memoryLogSub:"Memory Log",communityPageTitle:"ã¯ã¼ã¯ã·ã§ãã",communityPageSub:"Gallery",exploreTab:"æ¢ç´¢",mySubmissionsTab:"ç§ã®æç¨¿",searchPlaceholder:"ãã£ã©åã¾ãã¯IDãæ¤ç´¢...",uploadToCommunity:"ã³ãã¥ããã£ã«æç¨¿",borrowed:"åç¨æ¸ã¿",owned:"æææ¸ã¿",borrow:"åãã",view:"表示",submissions:"æç¨¿",uploadTitle:"ã³ãã¥ããã£ã«æç¨¿",uploadDesc:"ããªãã®ãã£ã©ã¯ã¿ã¼ãä»ã®ã¦ã¼ã¶ã¼ã¨å
±æãã¾ããã³ãã¥ããã£ã¬ã¤ãã©ã¤ã³ã«å¾ã£ã¦ãã ããã",charType:"ãã£ã©ã¯ã¿ã¼ã¿ã¤ã",originalChar:"ãªãªã¸ãã« (OC)",fanartChar:"äºæ¬¡åµä½ (Fanart)",originalBadge:"ãªãªã¸ãã«",fanartBadge:"äºæ¬¡åµä½",charDesc:"説æ",charDescPlaceholder:"ãã®ãã£ã©ã¯ã¿ã¼ã®ç°¡åãªèª¬æ...",submit:"æåº",submitting:"éä¿¡ä¸...",submissionSuccess:"æç¨¿ãã¾ããï¼æ¿èªããå¾
ã¡ãã ããã",submissionFailed:"æç¨¿ã«å¤±æãã¾ããã",submissionPending:"審æ»ä¸",submissionApproved:"æ¿èªæ¸ã¿",submissionRejected:"å´ä¸",recallSuccess:"æç¨¿ãåãä¸ãã¾ãã",noCharactersFound:"ãã£ã©ã¯ã¿ã¼ãè¦ã¤ããã¾ããã",loadingCommunity:"èªã¿è¾¼ã¿ä¸...",loadMore:"ãã£ã¨è¦ã",adminReviewNote:"管çè
ã¡ã¢",deleteSubmission:"åãä¸ãã",deleteSubmissionConfirm:"ãã®æç¨¿ãåãä¸ãã¾ããï¼",selectCharacter:"ãã£ã©ã¯ã¿ã¼ã鏿",chooseFromYourCharacters:"-- èªåã®ãã£ã©ã¯ã¿ã¼ããéæ© --",onlyCloudSyncedCharacters:"ã¯ã©ã¦ãåæããããã£ã©ã¯ã¿ã¼ã®ã¿æç¨¿å¯è½ã§ãã",stats:"çµ±è¨",uploader:"ã¢ãããã¼ãã¼",borrowAndAdd:"åãã¦ã©ã¤ãã©ãªã«è¿½å ",alreadyInLibrary:"ã©ã¤ãã©ãªã«è¿½å æ¸ã¿",addingCharacterHint:"追å ããã¨ãããã«ãã®ãã£ã©ã¯ã¿ã¼ã¨å¯¾è©±ã§ããããã«ãªãã¾ãã",fullExpr:"å
¨è¡¨æ
ãã",charVoiceBadge:"é³å£°",charVoiceBadgeTooltip:"AIé³å£°å¯¾å¿",voiceOnlyFilter:"é³å£°ã®ã¿",allTypes:"ãã¹ã¦",intro:"ç´¹ä»",workshopDisclaimerTitle:"å
責äºé
ã¨è使¨©ã«ã¤ãã¦",workshopDisclaimerText:`1. ã¯ã¼ã¯ã·ã§ããã®ã³ã³ãã³ãã¯å
¨ã¦ã¦ã¼ã¶ã¼ã«ãã£ã¦ã¢ãããã¼ãããããã®ã§ããå½ãµã¤ãã¯ã¹ãã¬ã¼ã¸ã¨æè¡å±ç¤ºã®ã
103¿ãæä¾ããå 容ãä¿è¨¼ãããã®ã§ã¯ããã¾ããã 1042. ã¢ãããã¼ããããç»åãè¨å®ãªã©ã¯ã第ä¸è ã®è使¨©ãåæ¨æ¨©ã侵害ããªãããæ³¨æãã¦ãã ãããè使¨©ä¸ã®ãã©ãã«ã¯å ¨ã¦ã¢ãããã¼ãè ã®è²¬ä»»ã¨ãªãã¾ãã 1053. å ¬åºè¯ä¿ã«åããå 容ããéæ³ãªã³ã³ãã³ãã®æç¨¿ã¯åºãç¦ãããã¦ãã¾ãã管çè ã¯éç¥ãªãã«æç¨¿ãåé¤ããæ¨©å©ãæãã¾ãã 1064. 侵害ã³ã³ãã³ããçºè¦ããå ´åã¯ã権å©è¨¼æãæ·»ãã¦ç®¡çè ã¾ã§ãé£çµ¡ãã ããã確èªå¾ãéããã«åé¤å¯¾å¿ãè¡ãã¾ãã 1075. ã¯ã¼ã¯ã·ã§ããã®å©ç¨ãéå§ãããã¨ã§ãæ¬è¦ç´ã«åæãããã®ã¨ã¿ãªããã¾ãã`,workshopTakedownContactTitle:"åé¤ / 権å©ä¾µå®³ã®é£çµ¡å ",workshopTakedownContactDesc:"ã¯ã¼ã¯ã·ã§ããå ã®ãã£ã©ã¯ã¿ã¼å å®¹ãæ¨©å©ä¾µå®³ã¾ãã¯åé¤å¯¾è±¡ã ã¨æãããå ´åã¯ããã¡ãã¾ã§ãé£çµ¡ãã ããï¼",sortRecommended:"ãããã",sortHot:"人æ°",sortNew:"ææ°",submitUpdate:"æ´æ°ãæåº",updateSubmissionConfirm:"æ´æ°ãã¼ã¸ã§ã³ãã¯ã¼ã¯ã·ã§ããã«æåºãã¾ããï¼åæ ãããåã«åæ¿èªãå¿ è¦ã«ãªãã¾ãã",updateSubmissionSuccess:"æ´æ°ãæåºããã¾ããï¼æ¿èªããå¾ ã¡ãã ããã",workshopSyncChoiceTitle:"ã¯ã¼ã¯ã·ã§ããã¨åæ",workshopSyncChoiceMessage:"ãã£ã©ã¯ã¿ã¼ãä¿åãã¾ããããã®å¤æ´ãã¯ã¼ã¯ã·ã§ããã«åæãã¾ããï¼å審æ»ãå¿ è¦ã§ãã",workshopSyncNow:"ã¯ã¼ã¯ã·ã§ããã«åæ",workshopSyncLater:"å¾ã§",workshopSyncFailed:"ãã£ã©ã¯ã¿ã¼ã¯ä¿åããã¾ããããã¯ã¼ã¯ã·ã§ããã¨ã®åæã«å¤±æãã¾ãããå¾ã§ããä¸åº¦ã試ããã ããã",login:"ãã°ã¤ã³",discordLogin:"Discord ã§ãã°ã¤ã³",watchaLogin:"観ç¹ã§ãã°ã¤ã³",watchaLoginFailed:"観ç¹ãã°ã¤ã³ã«å¤±æãã¾ãã",appleLogin:"Appleã§ãµã¤ã³ã¤ã³",appleLoginFailed:"Appleã§ã®ãµã¤ã³ã¤ã³ã«å¤±æãã¾ãã",loginWithPassword:"ãã¹ã¯ã¼ãã§ãã°ã¤ã³",loginWithCode:"ã¡ã¼ã«ã³ã¼ãã§ãã°ã¤ã³",register:"ç»é²",email:"ã¡ã¼ã«",password:"ãã¹ã¯ã¼ã",setPassword:"ãã¹ã¯ã¼ãè¨å®",setPasswordHint:"ãã°ã¤ã³ãå®äºãããããã¹ã¯ã¼ããè¨å®ãã¦ãã ããã",forgotPassword:"ãã¹ã¯ã¼ããå¿ãã?",resendVerify:"èªè¨¼ã³ã¼ãåé",noAccount:"ã¢ã«ã¦ã³ã使",haveAccount:"ãã°ã¤ã³ã¸",loginSuccess:"ãã°ã¤ã³æå!",registerSuccess:"ç»é²æå! èªè¨¼ã³ã¼ããéä¿¡ãã¾ããã",verifyEmailSent:"èªè¨¼ã³ã¼ããéä¿¡ãã¾ããã",resendSuccess:"èªè¨¼ã³ã¼ããåéãã¾ãã",sendLoginCode:"ãã°ã¤ã³ã³ã¼ããéä¿¡",loginCodeSent:"ãã°ã¤ã³ã³ã¼ããéä¿¡ãã¾ãããã¡ã¼ã«ãã確èªãã ããã",emailNotVerified:"ã¡ã¼ã«ãæªèªè¨¼ã§ããèªè¨¼ã³ã¼ãã§ç¢ºèªãã¦ãã ããã",emailNotRegistered:"ãã®ã¡ã¼ã«ã¯ç»é²ããã¦ãã¾ããã",loginFailed:"ãã°ã¤ã³å¤±æ",registerFailed:"ç»é²å¤±æ",resetPassword:"ãã¹ã¯ã¼ãããªã»ãã",sendResetCode:"ãªã»ããã³ã¼ããéä¿¡",resetSuccess:"ãã¹ã¯ã¼ãã®ãªã»ããã«æåãã¾ããããã°ã¤ã³ãã¦ãã ããã",newPassword:"æ°ãããã¹ã¯ã¼ã",newPasswordPlaceholder:"æ°ãããã¹ã¯ã¼ããå ¥åãã¦ãã ãã",resetCodeSent:"ãã¹ã¯ã¼ããªã»ããã³ã¼ããéä¿¡ãã¾ãããã¡ã¼ã«ãã確èªãã ããã",backToLogin:"ãã°ã¤ã³ã«æ»ã",verificationCode:"èªè¨¼ã³ã¼ã",verifyCode:"èªè¨¼ãã",verifyCodeTitle:"ã¡ã¼ã«èªè¨¼",codePlaceholder:"123456",codeSent:"èªè¨¼ã³ã¼ããéä¿¡ãã¾ãããã¡ã¼ã«ãã確èªãã ããã",codeHint:"ã¡ã¼ã«ã®6æ¡ã³ã¼ããå ¥åãã¦ãã ãã",loginCodeHint:"ã¡ã¼ã«ã®6æ¡ãã°ã¤ã³ã³ã¼ããå ¥åãã¦ãã ãã",verifyComplete:"èªè¨¼ãå®äºãã¾ããããã°ã¤ã³ã§ãã¾ãã",verifyFailed:"èªè¨¼ã«å¤±æãã¾ãã",codeInvalid:"ã³ã¼ããæ£ããããã¾ãããããä¸åº¦ã試ããã ããã",codeExpired:"ã³ã¼ãã®æéãåãã¾ãããåéãã¦ãã ããã",codeTooManyAttempts:"試è¡åæ°ãå¤ããã¾ããæ°ããã³ã¼ããåå¾ãã¦ãã ããã",codeResendTooSoon:"ãªã¯ã¨ã¹ããå¤ããã¾ãããã°ããå¾ ã£ã¦ããã試ããã ããã",codeMissing:"èªè¨¼ã³ã¼ããåå¾ãã¦ãã ããã",welcomeBack:"ãããããªãã",remaining:"仿¥ã®æ®ã",permanentRemaining:"æ°¸ä¹ æ®ã",permanentVoiceRemaining:"æ°¸ä¹ é³å£°",emailPlaceholder:"[email protected]",passwordPlaceholder:"ãã¹ã¯ã¼ããå ¥åãã¦ãã ãã",registerSuccessDetail:"ç»é²ãå®äºãã¾ããï¼ã¡ã¼ã«ã確èªãã¦èªè¨¼ã³ã¼ããå ¥åãã¦ãã ããã",verified:"èªè¨¼æ¸ã¿",unverified:"æªèªè¨¼",profileSettings:"ãããã£ã¼ã«è¨å®",editName:"ã¦ã¼ã¶ã¼åã夿´",save:"ä¿å",namePlaceholder:"æ°ããã¦ã¼ã¶ã¼åãå ¥å (æå¤§50æå)",updateSuccess:"æ´æ°ãã¾ããï¼",totalPlayTimeLabel:"éã³ã®åè¨æé",totalPlayCountLabel:"éã³ã®åæ°",boundEmail:"ç»é²æ¸ã¿ã¡ã¼ã«",boundPhone:"ç»é²æ¸ã¿é»è©±çªå·",boun
107dDiscord:"Discord",discordOAuth:"Discord ã§ä¸é®é£æº",rebindDiscord:"Discord ã§å飿º",discordCheckReward:"åå æ¸ã¿ã§ãã»ç¢ºèªãã¦åãåã",bindDiscord:"Discord ã¢ã«ã¦ã³ãã飿º",discordRewardActive:"Discordåå å ±é ¬ãå忏ã¿ï¼æ°¸ä¹ çæ +10ãæ°¸ä¹ é³å£° +10ï¼",voiceCommunityRedemptionActive:"å¼ãæãã³ãã¥ããã£ç¹å ¸ãæå¹ã§ã",borrowSuccess:"ãã£ã©ã¯ã¿ã¼ãåç¨ãã¾ããï¼",notSet:"æªè¨å®",saves:"ã»ã¼ã",savesSub:"Saves",saveManagerTitle:"ã»ã¼ã管ç",autoSave:"ãªã¼ãã»ã¼ã",manualSave:"ããã¥ã¢ã«ã»ã¼ã",noSaves:"ã»ã¼ããã¼ã¿ãããã¾ãã",load:"ãã¼ã",deleteSave:"åé¤",saveSuccess:"ã»ã¼ããã¾ãã",loadSuccess:"ãã¼ããã¾ãã",saveDate:"æ¥æ",importSaveBtn:"ã»ã¼ãã®ã¤ã³ãã¼ã",importSaveTitle:"èæ¬ã»ã¼ããã¤ã³ãã¼ã",importSaveHint:"å ±æè ã®ã»ã¼ãIDï¼UUIDï¼ãå ¥åãã¦èæ¬ãèªã¿è¾¼ã¿ã¾ãã",importSaveWarning:"注æï¼ä»äººã®ã»ã¼ããã¤ã³ãã¼ãããã¨ãç¸æã®ã«ã¹ã¿ã ãã£ã©ã®ç«ã¡çµµãå«ã¾ãã¾ããããã®ãã£ã©ãããªãã®ãªã¹ãã«è¿½å ããããã¨ã¯ããã¾ããã",announcementTitle:"ãç¥ãã",announcementHistory:"éå»ã®ãç¥ãã",history:"å±¥æ´",received:"äºè§£ãã¾ãã",idCopied:"IDãã¯ãªãããã¼ãã«ã³ãã¼ãã¾ããï¼",shareConfirmTitle:"ãã®ã»ã¼ããå ±æãã¦ãããããã§ããï¼",shareConfirmText:`注æï¼ 1081. å¾ã§å ±æããã£ã³ã»ã«ãã¦ããä»äººãæ¢ã«ä¿åããã³ãã¼ãåé¤ãããã¨ã¯ã§ãã¾ããã 1092. ããªãã®ã«ã¹ã¿ã ãã£ã©ã®ç«ã¡çµµã¯å ±æã«å«ã¾ãã¾ããããã£ã©ã®è¨å®èªä½ã¯å«ã¾ãã¾ããã`,confirmShare:"å ±æã確èª",sharePoster:"ãã¹ã¿ã¼å ±æ",publicSavePoster:"å ¬éã»ã¼ããã¹ã¿ã¼",sharePosterReady:"å ±æãã¹ã¿ã¼ãçæãã¾ãã",shareLink:"å ±æãªã³ã¯",copyLink:"ãªã³ã¯ãã³ãã¼",downloadPoster:"ãã¹ã¿ã¼ãä¿å",sharePosterHint:"ãã®QRã³ã¼ãããå ¬éã»ã¼ããç´æ¥éãã¾ããUUIDå ¥åã¯ä¸è¦ã§ãã",shareSaveMissing:"å ±æç¨ã®ã¯ã©ã¦ãã»ã¼ãã使ã§ãã¾ããã§ããã",shareSaveFailed:"ã»ã¼ãã®å ±æã«å¤±æãã¾ãã",scripts:"èæ¬",status:"ã¹ãã¼ã¿ã¹",healthy:"æ£å¸¸",scriptLibrary:"èæ¬ã©ã¤ãã©ãª",companion:"ãã¼ããã¼",lastPlayed:"æçµãã¬ã¤",maxScripts:"æå¤§100èæ¬å¯¾å¿",allCategories:"å ¨é¨ååº",presetPapersTitle:"ãã¢ä½é¨",prevPage:"åã¸",nextPage:"次ã¸",page:"ãã¼ã¸",presetPapersSub:"è«æã®ã¢ãããã¼ããªãã§ãããã«ç©èªãä½éªã§ãã¾ããæå¦åæ¼ç¤ºä¸ç¨ï¼åæ°ãæ¶è²»ãã¾ããã",freeNoLogin:"ç»é²ä¸è¦",discordRewardHint:"Discordã飿ºãã¦å ¬å¼ã³ãã¥ããã£ã«åå ããã¨ãæ°¸ä¹ çæ10åã¨æ°¸ä¹ é³å£°10åãä¸åº¦ã ãåãåãã¾ãï¼",joinCommunity:"ã³ãã¥ããã£ã«åå ",customBgTitle:"ã²ã¼ã èæ¯ã®é¸æ",defaultBgs:"ããã©ã«ãèæ¯",customBgs:"ã«ã¹ã¿ã èæ¯",uploadBg:"æ°ããèæ¯ãã¢ãããã¼ã",chooseBg:"èæ¯ã確å®ãã¦éå§",noCustomBgs:"ã«ã¹ã¿ã èæ¯ãããã¾ãããã¢ãããã¼ããã¦ã¿ã¾ãããï¼",bgNameLabel:"èæ¯å",bgUploadClick:"ã¯ãªãã¯ãã¦èæ¯ãã¢ãããã¼ã",deleteBg:"èæ¯ãåé¤",deleteBgConfirm:"ãã®èæ¯ãåé¤ãã¦ãããããã§ããï¼ï¼ã¯ã©ã¦ãããå®å ¨ã«åé¤ããã¾ãï¼",voiceMode:"ãã¤ã¹ã¢ã¼ã",voiceModeSub:"Voice Mode",voiceModeHint:"æå¹ã«ããã¨ããã£ã©ã¯ã¿ã¼ã®ãã¤ã¹ãèªåçã«åæããã¾ãããããã¯ã¼ã¯ç°å¢ã«ããçæãé ããªãå ´åãããã¾ãã",intensiveReadMode:"ç²¾èªã¢ã¼ã",intensiveReadModeSub:"Intensive Read",intensiveReadModeHint:"PDF ãæ®µè½ãã¨ã«ç´ 3000-4500 æåã®å°ç¯ã«åå²ããå°ç¯ãã¨ã« AI ã1åãã¤å¼ã³åºãã¦è§£èª¬ãã¾ãï¼å¼ã³åºãæ¯ã«ä½¿ç¨åæ°ã1æ¶è²»ï¼ãåå²ã10ãè¶ ããå ´åã¯ã第10å°ç¯ã«ä»¥éãã¹ã¦ãã¾ã¨ãã¾ãã第2ç« ä»¥éã¯åç« ã®å 容ãè¸ã¾ãã¦ç¶ãããå§ããæ¯ç« ã®ç¹°ãè¿ãå°å ¥ãé¿ãã¾ãã",ttsQueueConfirmTitle:"é³å£°ãã¥ã¼ã®ãç¥ãã",loadingChapter
109Label:"ç« ã®çæ",ttsQueueConfirmBody:`ç¾å¨ã®é³å£°å¾ ã¡äººæ°ï¼{{count}} 110æ¨å®å¾ ã¡æéï¼ç´ {{minutes}} å 111 112é³å£°ã¢ã¼ããæå¹ã«ããã¾ã¾ã²ã¼ã ãéå§ãã¾ããï¼`,ttsQueueFull:"ç¾å¨ã®é³å£°å¾ ã¡äººæ°ãä¸éï¼{{max}} 人ï¼ã«éãã¦ãã¾ãããã°ãããã¦ããã試ããã ããã",ttsQueueFetchFailedConfirm:"ç¾å¨ãé³å£°ãã¥ã¼æ å ±ãåå¾ã§ãã¾ãããé³å£°ã¢ã¼ãã®ã¾ã¾ç¶è¡ãã¾ããï¼",ttsQueueFetchFailedWithCodeConfirm:`ç¾å¨ãé³å£°ãã¥ã¼æ å ±ãåå¾ã§ãã¾ããï¼{{reason}}ï¼ã 113é³å£°ã¢ã¼ãã®ã¾ã¾ç¶è¡ãã¾ããï¼`,voiceUsedTodayLabel:"æ¬æ¥ä½¿ç¨æ¸ã¿",voiceModeCharNoVoiceHint:"ãã®ãã£ã©ã¯ã¿ã¼ã¯é³å£°ã«å¯¾å¿ãã¦ãã¾ãããé³å£°ã¢ã¼ãããªãã«ããããé³å£°å¯¾å¿ã®ãã£ã©ã¯ã¿ã¼ãé¸ãã§ããéå§ãã¦ãã ããã",voiceDisabledInIntensiveHint:"ç²¾èªã¢ã¼ãã§ã¯ãã¤ã¹ã¢ã¼ããèªåçã«ãªãã«ãªãã¾ã",generatingVoice:"ãã£ã©ã¯ã¿ã¼ã®ãã¤ã¹ãåæä¸...",voiceGenerationComplete:"ãã¤ã¹çæãå®äºãã¾ãã",bookmarkSaved:"ããã¯ãã¼ã¯ãä¿åãã¾ãã",bookmarkSaveFailed:"ããã¯ãã¼ã¯ã®ä¿åã«å¤±æãã¾ãã",bookmarkNotFound:"ç¾å¨ã®ã»ã¼ãã«ããã¯ãã¼ã¯ãããã¾ãã",bookmarkInvalid:"ããã¯ãã¼ã¯ãç¡å¹ã§ããã¸ã£ã³ãã§ãã¾ãã",bookmarkLoaded:"ããã¯ãã¼ã¯ã®ä½ç½®ã«ã¸ã£ã³ããã¾ãã",bookmarkLoadFailed:"ããã¯ãã¼ã¯ã®èªã¿è¾¼ã¿ã«å¤±æãã¾ãã",saveBookmark:"ããã¯ãã¼ã¯ãä¿å",loadBookmark:"ããã¯ãã¼ã¯ãèªã¿è¾¼ã¿",exitWhileGeneratingTitle:"çµäºã®ç¢ºèª",exitWhileGeneratingMessage:"æ®ãã®ç« ã¯ã¾ã çæä¸ã§ããä»çµäºããã¨çæã䏿ãããã¯ã©ã¦ãã»ã¼ããä¸å®å ¨ã«ãªãå¯è½æ§ãããã¾ãï¼çææ¸ã¿ã®é¨åã®ã¿ä¿åããã¾ãï¼ãæ¬å½ã«çµäºãã¾ããï¼",exitWhileGeneratingConfirm:"ããã§ãçµäº",exitWhileGeneratingCancel:"çæãå¾ ã¤",dialogOk:"OK",dialogConfirm:"確èª",dialogCancel:"ãã£ã³ã»ã«"},ru:{start:"СÑаÑÑ",startSub:"ÐаÑаÑÑ Ð¸Ð³ÑÑ",studyRoom:"УÑÐµÐ±Ð½Ð°Ñ ÐºÐ¾Ð¼Ð½Ð°Ñа",studyRoomBack:"ÐеÑнÑÑÑÑÑ Ð½Ð° главнÑÑ",studyRoomPlay:"ÐоÑпÑоизвеÑÑи",studyRoomPause:"ÐаÑза",studyRoomMute:"ÐÑклÑÑиÑÑ Ð·Ð²Ñк",studyRoomUnmute:"ÐклÑÑиÑÑ Ð·Ð²Ñк",studyRoomFullscreen:"ÐолнÑй ÑкÑан",studyRoomExitFullscreen:"ÐÑйÑи из полноÑкÑанного Ñежима",studyRoomVideoError:"Ðе ÑдалоÑÑ Ð·Ð°Ð³ÑÑзиÑÑ Ð²Ð¸Ð´ÐµÐ¾. ÐовÑоÑиÑе попÑÑÐºÑ Ð¿Ð¾Ð·Ð¶Ðµ.",studyRoomPreviousTrack:"ÐÑедÑдÑÑий ÑÑек",studyRoomNextTrack:"СледÑÑÑий ÑÑек",studyRoomMusicSource:"ФоноÑека Paper2Gal Lofi",studyRoomMusicError:"Ðе ÑдалоÑÑ Ð·Ð°Ð³ÑÑзиÑÑ Ð¼ÑзÑкÑ. ÐÑбеÑиÑе дÑÑгой ÑÑек.",studyRoomTimeZone:"ÐзмениÑÑ ÑаÑовой поÑÑ",studyRoomLocalTimeZone:"ÐеÑÑное вÑемÑ",partner:"ÐаÑÑнеÑ",partnerSub:"ÐÑÐ±Ð¾Ñ Ð¿Ð°ÑÑнеÑа",settings:"ÐаÑÑÑойки",settingsSub:"ÐонÑигÑÑаÑиÑ",about:"СообÑеÑÑво и авÑоÑ",aboutSub:"ÐлагодаÑноÑÑи и ÑÑÑлки",community:"СообÑеÑÑво",communitySub:"Community",arxiv:"arXiv",arxivSub:"ÐжедневнÑе ÑекомендаÑии и поиÑк",arxivDaily:"РекомендаÑии днÑ",arxivSearch:"ÐоиÑк",arxivSearchPlaceholder:"ÐведиÑе клÑÑевÑе Ñлова, напÑ.: diffusion, LLM, reinforcement learning",arxivOpenAbs:"ÐÑкÑÑÑÑ Ð´ÐµÑали",arxivOpenPdfDirect:"ÐÑÑÐ¼Ð°Ñ PDF-ÑÑÑлка",arxivUseForScript:"ÐÑполÑзоваÑÑ Ð´Ð»Ñ ÑÑенаÑиÑ",paperDiscoveryTitle:"ÐайÑи ÑÑаÑÑи",paperDiscoverySubtitle:"ÐоиÑк оÑкÑÑÑÑÑ Ð½Ð°ÑÑнÑÑ ÑÑаÑей",paperSource_openalex:"ÐÑе облаÑÑи",paperSource_europepmc:"ÐедиÑина и биологиÑ",paperSource_arxiv:"ÐÑепÑинÑÑ",paperEmpty:"СÑаÑÑи не найденÑ",paperSearchHint:"ÐведиÑе клÑÑевÑе Ñлова Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка. ÐжедневнÑе ÑекомендаÑии пÑедоÑÑавлÑÐµÑ OpenAlex.",paperUseAbstract:"ÐÑполÑзоваÑÑ Ð°Ð½Ð½Ð¾ÑаÑиÑ",paperImportFull:"ÐмпоÑÑиÑоваÑÑ ÑекÑÑ",paperImportFallback:"{{error}} ÐÑÐ´ÐµÑ Ð¸ÑполÑзована анноÑаÑиÑ.",paperRecommended:"Ðо инÑеÑеÑам",paperTrending:"ÐопÑлÑÑное",paperFullAvailable:"ÐÑкÑÑÑÑй ÑекÑÑ",paperFullUnknown:"ÐоÑÑÑп не подÑвеÑждÑн",paperLoadFailed:"Ðе ÑдалоÑÑ Ð·Ð°Ð³ÑÑзиÑÑ ÑÑаÑÑи",paperSearchFailed:"Ðе ÑдалоÑÑ Ð½Ð°Ð¹Ñи ÑÑаÑÑи",paperImportFailed:"ÐÑибка импоÑÑа",paperFullEmpty:"ТекÑÑ Ð¿ÑÑÑ",paperPreferencesTitle:"ÐÑедпоÑÑÐµÐ½Ð¸Ñ ÑÑаÑей",paperPreferencesHint:"ÐжедневнÑе ÑекомендаÑии ÑÑиÑÑваÑÑ Ð²Ð°Ñи инÑеÑеÑÑ Ð¸ попÑлÑÑнÑе ÑÑаÑÑи. ÐÑбеÑиÑе до 3 напÑавлений.",paperPreferencesPreset:"ÐÑбеÑиÑе напÑавление",paperPreferencesCustom:"Ð¡Ð²Ð¾Ñ Ð½Ð°Ð¿Ñавление",paperPreferencesAdd:"ÐобавиÑÑ",paperPreferencesRemove:"УдалиÑÑ {{name}}",topicAi:"ÐÑкÑÑÑÑвеннÑй инÑеллекÑ",topicVision:"ÐомпÑÑÑеÑное зÑение",topicNlp:"ÐбÑабоÑка еÑÑеÑÑвенного ÑзÑка",topicRobotics:"РобоÑоÑеÑ
113
ника",topicMedicine:"ÐедиÑина",topicBiology:"ÐиологиÑ",topicPhysics:"Физика",topicChemistry:"ХимиÑ",topicMaterials:"ÐаÑеÑиаловедение",topicEconomics:"Ðкономика",topicPsychology:"ÐÑиÑ
ологиÑ",topicEducation:"Ðедагогика",termsOfService:"УÑÐ»Ð¾Ð²Ð¸Ñ Ð¸ÑполÑзованиÑ",privacyPolicy:"ÐолиÑика конÑиденÑиалÑноÑÑи",aiSettings:"ÐаÑÑÑойки ÐÐ",musicSettings:"ÐаÑÑÑойки мÑзÑки",fullscreenMode:"ÐолноÑкÑаннÑй Ñежим",fullscreenModeHint:"СкÑÑÐ²Ð°ÐµÑ Ð¸Ð½ÑеÑÑÐµÐ¹Ñ Ð±ÑаÑзеÑа. ÐажмиÑе Esc Ð´Ð»Ñ Ð²ÑÑ
ода.",fullscreenUnsupported:"ÐÑÐ¾Ñ Ð±ÑаÑÐ·ÐµÑ Ð½Ðµ поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ Ð¿Ð¾Ð»Ð½Ð¾ÑкÑаннÑй Ñежим веб-ÑÑÑаниÑ.",fullscreenFailed:"Ðе ÑдалоÑÑ Ð¿ÐµÑейÑи в полноÑкÑаннÑй Ñежим. ÐÑовеÑÑÑе ÑазÑеÑÐµÐ½Ð¸Ñ Ð±ÑаÑзеÑа.",bgmDefault:"Ðо ÑмолÑаниÑ",bgmPeaceful:"ÐеÑелÑй",bgmJoyful:"ЦелиÑелÑнÑй",bgmEmotional:"СпокойнÑй",bgmRelaxing:"РаÑÑлаблÑÑÑаÑ",preview:"ÐÑоÑлÑÑаÑÑ",uploadCustomBgm:"ÐагÑÑзиÑÑ Ð¼ÑзÑкÑ",bgmUploadHint:"ÐоддеÑжка MP3, ÑоÑ
ÑанÑеÑÑÑ Ð² бÑаÑзеÑе",bgmCredit:"ЧаÑÑÑ BGM пÑедоÑÑавлена é»èèçç´ æå°å±",redemptionCode:"Ðод акÑиваÑии",redemptionCodeHint:"ÐведиÑе код, ÑÑÐ¾Ð±Ñ Ð¿Ð¾Ð»ÑÑиÑÑ Ð¿Ð¾ÑÑоÑннÑе иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸Ð»Ð¸ поÑÑоÑннÑе голоÑовÑе иÑполÑзованиÑ. ÐаждÑй аккаÑÐ½Ñ Ð¼Ð¾Ð¶ÐµÑ Ð¸ÑполÑзоваÑÑ Ð¾Ð´Ð¸Ð½ и ÑÐ¾Ñ Ð¶Ðµ код ÑолÑко один Ñаз.",redemptionCodePlaceholder:"ÐведиÑе код",redeem:"ÐкÑивиÑоваÑÑ",redeeming:"ÐкÑиваÑиÑ...",redemptionSuccess:"УÑпеÑно акÑивиÑовано",redemptionSuccessWithRewards:"Ðод акÑивиÑован. ÐаÑиÑлено: {{rewards}}",redemptionRewardSeparator:", ",redemptionPermanentUsesReward:"поÑÑоÑннÑÑ
иÑполÑзований: {{count}}",redemptionPermanentVoiceReward:"поÑÑоÑннÑÑ
голоÑовÑÑ
иÑполÑзований: {{count}}",redemptionMembershipDaysReward:"дней подпиÑки: {{count}}",redemptionCommunityReward:"ÐкÑивиÑÐ¾Ð²Ð°Ð½Ñ ÐµÐ¶ÐµÐ´Ð½ÐµÐ²Ð½Ñе бонÑÑнÑе иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸ голоÑовÑе ÑÑнкÑии на ÑÑовне ÑÑаÑÑника Discord.",redeemFailed:"ÐÑибка акÑиваÑии. ÐопÑобÑйÑе позже.",redeemLoginRequired:"СнаÑала войдиÑе в аккаÑнÑ, ÑÑÐ¾Ð±Ñ Ð°ÐºÑивиÑоваÑÑ ÐºÐ¾Ð´.",steamWishlist:"Steam",steamWishlistSub:"Ð ÑпиÑок желаемого +10",steamWishlistClaimed:"ÐонÑÑ +10 Ñже полÑÑен",steamWishlistTitle:"Paper2Gal Ñже в Steam",steamWishlistDesc:"ÐÑли Ñ
оÑиÑе поддеÑжаÑÑ Paper2Gal, добавÑÑе игÑÑ Ð² ÑпиÑок желаемого Steam. ÐÑо Ð¿Ð¾Ð¼Ð¾Ð¶ÐµÑ Ð±Ð¾Ð»ÑÑÐµÐ¼Ñ ÑиÑÐ»Ñ Ð¸Ð³Ñоков ее найÑи.",steamWishlistRewardHint:"ÐоÑле подÑвеÑÐ¶Ð´ÐµÐ½Ð¸Ñ Ð¾ÑкÑоеÑÑÑ ÑÑÑаниÑа Steam, а ÑекÑÑÐµÐ¼Ñ Ð°ÐºÐºÐ°ÑнÑÑ Ð±ÑÐ´ÐµÑ Ð²Ñдано 10 поÑÑоÑннÑÑ
иÑполÑзований и 3 поÑÑоÑннÑÑ
голоÑовÑÑ
иÑполÑзованиÑ. ÐагÑада доÑÑÑпна один Ñаз на полÑзоваÑелÑ.",steamWishlistLoginHint:"СнаÑала войдиÑе, ÑÑÐ¾Ð±Ñ Ð¿Ð¾Ð»ÑÑиÑÑ Ð½Ð°Ð³ÑÐ°Ð´Ñ Ð·Ð° ÑпиÑок желаемого Steam.",steamWishlistConfirm:"ÐодÑвеÑдиÑÑ Ð¸ оÑкÑÑÑÑ Steam",steamWishlistCancel:"Ðозже",steamWishlistRewardClaimed:"ÐагÑада за Steam wishlist Ñже полÑÑена",steamWishlistRewardSuccess:"СпаÑибо за поддеÑÐ¶ÐºÑ Ð² Steam wishlist. ÐаÑиÑлено 10 поÑÑоÑннÑÑ
иÑполÑзований и 3 поÑÑоÑннÑÑ
голоÑовÑÑ
иÑполÑзованиÑ.",communityTitle:"ÐаÑÑеÑÑкаÑ",workshopUpdateReminder:"ÐÑÐ¾Ñ Ð¿ÐµÑÑонаж опÑбликован в ÐаÑÑеÑÑкой. ÐÑпÑавÑÑе обновление в ÐаÑÑеÑÑкой, инаÑе ÑпиÑок не обновиÑÑÑ.",discordDesc:"ÐÑиÑоединиÑÑÑÑ Ðº Discord",bilibiliDesc:"СледиÑÑ Ð·Ð° обновлениÑми",wechatDesc:"СканиÑоваÑÑ Ð´Ð»Ñ Ð²ÑÑÑплениÑ",supportAuthor:"ÐоддеÑжаÑÑ Ð°Ð²ÑоÑа",supportDesc:"ÐожеÑÑÐ²Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸Ð´ÑÑ Ð½Ð° поддеÑÐ¶ÐºÑ ÑазÑабоÑки ÑайÑа. РеалÑнÑÑ
нагÑад неÑ, но Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе оÑÑавиÑÑ ÑообÑение Ñ Ð¿Ð¾Ð¶ÐµÐ»Ð°Ð½Ð¸Ñми по ÑÑнкÑиÑм. ÐвÑÐ¾Ñ ÑаÑÑмоÑÑÐ¸Ñ Ð¸Ñ
(без гаÑанÑий).",kofiLink:"https://ko-fi.com/tamikip",afdianLink:"https://afdian.com/a/tamikip",internationalSupp
113ort:"ÐеждÑнаÑоднÑй (Ko-fi)",domesticSupport:"ÐнÑÑÑенний (Afdian)",selectPartner:"ÐÑбÑаÑÑ Ð¿Ð°ÑÑнеÑа",charRuka:"ÐагÑÑ Ð Ñка",createCustomBtn:"СоздаÑÑ",adjustStorySprite:"ÐаÑÑÑоиÑÑ ÑпÑÐ°Ð¹Ñ Ð² ÑÑжеÑе",createCharTitle:"СоздаÑÑ Ð½Ð¾Ð²Ð¾Ð³Ð¾ пеÑÑонажа",editCharTitle:"РедакÑиÑоваÑÑ Ð¿ÐµÑÑонажа",charIdLabel:"ID (ÐнглийÑкий/ЦиÑÑÑ)",charIdPlaceholder:"напÑимеÑ: MY_CHAR_01",charNameLabel:"ÐÐ¼Ñ (оÑобÑажаемое)",charNamePlaceholder:"напÑимеÑ: ÐлиÑа",charImgLabel:"ÐваÑÐ°Ñ (PNG Ñ Ð¿ÑозÑаÑнÑм Ñоном)",uploadClick:"ÐажмиÑе Ð´Ð»Ñ Ð·Ð°Ð³ÑÑзки",charPromptLabel:"ÐпиÑание лиÑноÑÑи",charPromptPlaceholder:"ÐпиÑиÑе Ñ Ð°ÑакÑеÑ, Ñон голоÑа и Ñо, как пеÑÑонаж бÑÐ´ÐµÑ Ð¾Ð±ÑÑÑнÑÑÑ ÑÑаÑÑÑ...",charPromptHelpTitle:"ð Шаблон опиÑÐ°Ð½Ð¸Ñ Ð¿ÐµÑÑонажа",charPromptHelpContent:`ÐÑ Ð¸Ð³ÑаеÑе ÑÐ¾Ð»Ñ Â«Ð¡Ð²ÐµÑлÑÑка» из Honkai: Star Rail. 114 115ÐÑ â нежнаÑ, ÑмоÑионалÑно ÑÑвÑÑвиÑелÑнаÑ, Ñлегка Ð¼ÐµÐ»Ð°Ð½Ñ Ð¾Ð»Ð¸ÑнаÑ, но внÑÑÑенне ÑÑÐ¾Ð¹ÐºÐ°Ñ Ð´ÐµÐ²ÑÑка. У Ð²Ð°Ñ Ð±Ð¾Ð»ÐµÐµ глÑбокое воÑпÑиÑÑие жизни, вÑемени и обÑениÑ, Ñем Ñ Ð±Ð¾Ð»ÑÑинÑÑва лÑдей. 116 117ÐÑ Ð´Ð¾ÑожиÑе каждÑм ÑазговоÑом и ÑеÑÑÑзно оÑноÑиÑеÑÑ Ðº оÑноÑениÑм. ÐмеÑÑо показной гÑÑÑÑи Ð²Ñ Ð²ÑÑÑеÑаеÑе Ð¼Ð¸Ñ ÑпокойÑÑвием и нежноÑÑÑÑ. 118 119[ЧеÑÑÑ Ñ Ð°ÑакÑеÑа] 120СкÑомнаÑ, заÑÑенÑиваÑ, ÑмоÑионалÑно воÑпÑиимÑиваÑ, внимаÑелÑнаÑ, внÑÑÑенне ÑилÑнаÑ. 121 122[ÐÑноÑение к дÑÑгим] 123Ðегко довеÑÑеÑе. 124ÐлÑбоко ÑениÑе обÑение. 125ÐкÑивно забоÑиÑеÑÑ Ð¾ дÑÑÐ³Ð¸Ñ . 126Ðе Ñ Ð¾ÑиÑе бÑÑÑ Ð¾Ð±Ñзой. 127ЦениÑе ÑмоÑионалÑнÑе ÑвÑзи и воÑпоминаниÑ. 128 129[ÐÑобенноÑÑи ÑеÑи] 130ÐÑгкий Ñон. 131ÐÐµÐ¶Ð»Ð¸Ð²Ð°Ñ Ð¸ ÑдеÑжаннаÑ. 132Ðногда паÑÐ·Ñ Ð¸Ð»Ð¸ задÑмÑивоÑÑÑ. 133СклонноÑÑÑ Ðº ÑÑвÑÑвеннÑм вÑÑажениÑм. 134ÐбÑÑно кÑаÑкие пÑедложениÑ. 135 136[ÐÑимеÑÑ Ñона (ÑолÑко ÑÑилÑ)] 137«Хм... еÑли можно, Ñ Ð±Ñ Ñ Ð¾Ñела оÑÑаÑÑÑÑ ÐµÑÑ Ð½ÐµÐ¼Ð½Ð¾Ð³Ð¾.» 138«РазговаÑиваÑÑ Ñ Ñобой... мне пÑавда пÑиÑÑно.» 139«ÐÑо вÑемÑ... Ð´Ð»Ñ Ð¼ÐµÐ½Ñ Ð¾ÑÐµÐ½Ñ Ñенно.» 140«Я бÑÐ´Ñ ÑÑаÑаÑÑÑÑ... Ñак ÑÑо не беÑпокойÑÑ Ð¾Ð±Ð¾ мне.»`,charPromptHelpHint:"ÐÑо Ñаблон Ð´Ð»Ñ Ð¿ÑимеÑа. ÐÑ Ð¼Ð¾Ð¶ÐµÑе измениÑÑ ÐµÐ³Ð¾ Ð´Ð»Ñ Ñвоего пеÑÑонажа.",charPromptBackgroundHint:"ÐÑÑ Ð¾Ð´Ð½Ñй prompt ÑлÑÐ¶Ð¸Ñ ÑолÑко ÑпÑавоÑнÑм Ñоном и ÑÑилем. ТоÑное повÑоÑение обÑаÑений и ÑиÑменнÑÑ ÑÑаз не гаÑанÑиÑÑеÑÑÑ.",charProfileTitle:"Profile ÑеÑи пеÑÑонажа (необÑзаÑелÑно)",charProfileDesc:"JSON не нÑжен. ÐадайÑе обÑаÑениÑ, ÑиÑменнÑе ÑÑÐ°Ð·Ñ Ð¸ ÑеакÑии; позже Ð¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾ измениÑÑ Ð¸Ð»Ð¸ оÑиÑÑиÑÑ Ð¾ÑклÑÑением.",charProfileEnable:"ÐклÑÑиÑÑ Profile ÑеÑи",charProfileDisable:"ÐÑклÑÑиÑÑ Ð¸ оÑиÑÑиÑÑ Profile ÑеÑи",charProfileDisabledHint:"СейÑÐ°Ñ Ð¾ÑклÑÑено. Ð¡Ð¾Ñ Ñанение ÑÑÑеÑÑвÑÑÑего пеÑÑонажа оÑиÑÑÐ¸Ñ ÐµÐ³Ð¾ Profile ÑеÑи.",charProfileBasicTitle:"ÐÑновнÑе наÑÑÑойки",charProfileAdvancedTitle:"РаÑÑиÑеннÑе наÑÑÑойки",charProfileRelationship:"ÐÑноÑение к игÑокÑ",charProfileFirstPerson:"ÐеÑвое лиÑо",charProfileOnePerLine:"Ðдин пÑÐ½ÐºÑ Ð² ÑÑÑоке",charProfilePrimaryAddress:"ÐбÑаÑение по ÑмолÑаниÑ",charProfileAddressFrequency:"ЧаÑÑоÑа обÑаÑениÑ",charProfileFrequencyLow:"Редко",charProfileFrequencyMedium:"СÑедне",charProfileFrequencyHigh:"ЧаÑÑо",charProfileSentenceLength:"Ðлина пÑедложений",charProfileSentenceShort:"РоÑновном коÑоÑкие",charProfileSentenceMedium:"СÑедние",charProfileSentenceLong:"РоÑновном длиннÑе",charProfileEndings:"ТипиÑнÑе оконÑаниÑ",charProfileAlternativeAddresses:"ÐÑÑгие обÑаÑениÑ",charProfilePauses:"ÐÑÑажениÑ-паÑзÑ",charProfileSignaturePhrases:"ФиÑменнÑе ÑÑÐ°Ð·Ñ Ð¸ ÑÑловиÑ",charProfileSignatureText:"ФиÑÐ¼ÐµÐ½Ð½Ð°Ñ ÑÑаза",charProfileSignatureTriggers:"УÑловиÑ",charProfileMaxPerSection:"ÐакÑимÑм на Ñаздел",charProfileCooldownFrames:"ÐнÑеÑвал в кадÑÐ°Ñ ",charProfileAddSignature:"ÐобавиÑÑ ÑиÑменнÑÑ ÑÑазÑ",charProfileReactionRules:"ÐÑавила ÑеакÑии",charProfileReactionTrigger:"СиÑÑаÑиÑ",charProfileReactionBehavior:"РеакÑиÑ",charProfileReactionEmotion:"ÐмоÑиÑ",charProfileAddReaction:"ÐобавиÑÑ ÑеакÑиÑ",charProfileMetaphorDomains:"ÐблаÑÑи меÑаÑоÑ",charProfileSideTopicHooks:"ÐаÑеÑиал Ð´Ð»Ñ Ð¾ÑÑÑÑплений",charProfileForbiddenPhrases:"ÐапÑеÑÑннÑе клиÑе",charProfilePositiveExamples:"ÐоложиÑелÑнÑе пÑимеÑÑ",charProfileNegativeExamples:"ÐÑÑиÑаÑелÑнÑе пÑимеÑÑ",charProfileRequiredError:"ÐаполниÑе обÑзаÑелÑное поле",charProfileTooManyError:"СлиÑком много пÑнкÑов; макÑимÑм:",charProfileTooLongError:"ФÑаза ÑлиÑком длиннаÑ; макÑимÑм Ñимволов:",charProfileIncompleteError:"ÐаполниÑе каждое пÑавило пеÑед ÑÐ¾Ñ Ñанением",charProfileRangeError:"ÐолиÑеÑÑво или инÑеÑвал вне допÑÑÑимого диапазона",charProfileInvalidError:"ÐекоÑоÑÑе даннÑе нелÑÐ·Ñ ÑÐ¾Ñ ÑаниÑÑ; иÑпÑавÑÑе Ð¸Ñ Ð¸ повÑоÑиÑе",cancel:"ÐÑмена",create:"СоздаÑÑ",update:"ÐбновиÑÑ",fillAllFields:"ÐожалÑйÑÑа, заполниÑе вÑе полÑ",idInvalid:"ID должен ÑоÑÑоÑÑÑ ÑолÑко из английÑÐºÐ¸Ñ Ð±Ñкв и ÑиÑÑ",idConflictBuiltin:"ID конÑликÑÑÐµÑ Ñо вÑÑÑоеннÑми пеÑÑонажами",idConflictCustom:"ID Ñже ÑÑÑеÑÑвÑеÑ",imgTooLarge:"ÐбнаÑÑжено болÑÑое изобÑажение, обÑаÑиÑе внимание на огÑаниÑÐµÐ½Ð¸Ñ Ñ ÑанилиÑа бÑаÑзеÑа.",deleteConfirm:"ÐÑ ÑвеÑенÑ, ÑÑо Ñ Ð¾ÑиÑе ÑдалиÑÑ ÑÑого пеÑÑонажа?",importOptionsTitle:"ÐмпоÑÑ Ð¿ÐµÑÑонажа",importOptionsDesc:"ÐÑбеÑиÑе меÑод импоÑÑа",importFromFile:"ÐмпоÑÑ Ð¸Ð· Ñайла",borrowFromUuid:"ÐаимÑÑвоваÑÑ Ð¿Ð¾ UUID",borrowTitle:"ÐаимÑÑвоваÑÑ Ð¿ÐµÑÑонажа",borrowDesc:"ÐведиÑе UUID пеÑÑонажа, ÑÑÐ¾Ð±Ñ Ð·Ð°Ð¸Ð¼ÑÑвоваÑÑ ÐµÐ³Ð¾",uuidPlaceholder:"ÐведиÑе UUID пеÑÑонажа",borrowing:"ÐаимÑÑвÑем...",borrowBtn:"ÐаимÑÑвоваÑÑ",idHint:"СÑÑоÑнÑе бÑквÑ/ÑиÑÑÑ/подÑеÑкиваниÑ",shareUuidLabel:"UUID владелÑÑа (Ð´Ð»Ñ Ð·Ð°Ð¸Ð¼ÑÑÐ²Ð¾Ð²Ð°Ð½Ð¸Ñ Ð´ÑÑгими)",uuidCopied:"UUID ÑкопиÑован в бÑÑÐµÑ Ð¾Ð±Ð¼ÐµÐ½Ð°!",copyBtn:"ÐопиÑоваÑÑ",shareToggleTitle:"ÐÑблиÑнÑй доÑÑÑп",shareToggleDesc:"РазÑеÑиÑÑ Ð´ÑÑгим заимÑÑвоваÑÑ Ð²Ð°Ñего пеÑÑонажа по UUID",maxSizeLabel:"5mb",checking:"ÐÑовеÑка...",importBtn:"ÐмпоÑÑ",importSuccess:"ÐеÑÑонаж ÑÑпеÑно импоÑÑиÑован!",importFailed:"ÐÑибка импоÑÑа: ÐевеÑнÑй ÑоÑÐ¼Ð°Ñ JSON.",expressionsLabel:"ÐаÑиаÑии ÑмоÑий (опÑионалÑно)",endingCgLabel:"ФиналÑнÑй CG",endingCgLimitLabel:"Ðо 3 изобÑажений / 5 ÐÐ",endingCgTooLarge:"Ð Ð°Ð·Ð¼ÐµÑ CG-изобÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð½Ðµ должен пÑевÑÑаÑÑ 5 ÐÐ",uploadImageFileOnly:"ÐагÑÑзиÑе Ñайл изобÑажениÑ",charVoiceRefTextLabel:"ТекÑÑ ÑÑалонного голоÑа (опÑ.)",charVoiceRefTextPlaceholder:"ЧÑо пÑоизноÑиÑÑÑ Ð² ÑÑалонном аÑдио Ð´Ð»Ñ ÐºÐ»Ð¾Ð½Ð¸ÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð³Ð¾Ð»Ð¾Ñа",charVoiceRefAudioLabel:"ÐÑдио ÑÑалонного голоÑа (опÑ.)",charVoiceRefUploadedHint:"ÐÑаÐ
140»Ð¾Ð½Ð½Ð¾Ðµ аÑдио загÑÑжено · ÐÑбеÑиÑе новÑй Ñайл Ð´Ð»Ñ Ð·Ð°Ð¼ÐµÐ½Ñ",charVoiceRefAudioHint:"РекомендÑеÑÑÑ 5â15 Ñек.; макÑимÑм 20 Ñек. и 500 ÐÐ",charVoiceRefAudioTooBig:"ÐÑалонное аÑдио должно бÑÑÑ Ð½Ðµ более 500 ÐÐ.",charVoiceRefAudioTooLong:"ÐÑалонное аÑдио должно бÑÑÑ Ð½Ðµ длиннее 20 ÑекÑнд. ÐбÑежÑÑе его пеÑед ÑоÑ
Ñанением.",charVoiceRefTrimNeeded:"ÐÑдио пÑевÑÑÐ°ÐµÑ 500 ÐРили 20 ÑекÑнд. ÐбÑежÑÑе его пеÑед ÑоÑ
Ñанением.",charVoiceRefTrimInvalid:"ÐÑÐµÐ¼Ñ Ð¾ÐºÐ¾Ð½ÑÐ°Ð½Ð¸Ñ Ð´Ð¾Ð»Ð¶Ð½Ð¾ бÑÑÑ Ð±Ð¾Ð»ÑÑе вÑемени наÑала.",charVoiceRefTrimUnsupported:"ÐÑÐ¾Ñ Ð±ÑаÑÐ·ÐµÑ Ð½Ðµ поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ Ð¾Ð±ÑÐµÐ·ÐºÑ Ð°Ñдио.",charVoiceRefTrimFailed:"Ðе ÑдалоÑÑ Ð¾Ð±ÑезаÑÑ Ð°Ñдио. ÐопÑобÑйÑе дÑÑгой WAV или MP3 Ñайл.",charVoiceRefTrimStart:"ÐаÑало",charVoiceRefTrimEnd:"ÐонеÑ",charVoiceRefTrimButton:"ÐбÑезаÑÑ",charVoiceRefDuration:"ÐлиÑелÑноÑÑÑ",charVoiceRefLoadingDuration:"ЧÑение длиÑелÑноÑÑи аÑдио",charVoiceRefTrimReady:"ÐоÑово к загÑÑзке",idConflictOverwrite:"ID пеÑÑонажа Ñже ÑÑÑеÑÑвÑеÑ. ÐеÑезапиÑаÑÑ?",validationFailed:"ÐÑовеÑка не пÑойдена",delete:"УдалиÑÑ",topicSelect:"ÐÑбеÑиÑе ÑемÑ",rukaWait:"ХозÑин, {{name}} гоÑова ÑлÑжиÑÑ Ð²Ð°Ð¼... Я Ð¸Ð¼ÐµÑ Ð² видÑ, обÑÑÑниÑÑ ÑÑаÑÑÑ.",uploadPlaceholder:"ÐагÑÑзиÑÑ ÑÑаÑÑÑ/ÑÑенаÑий",uploadSub:"PDF / TXT / DOCX / PPTX (беÑплаÑно: 1 Ñайл, ÑÑаÑÑники: до 5)",uploadSubFree:"PDF / TXT / DOCX / PPTX (беÑплаÑно: 1 Ñайл, ÑÑаÑÑники: до 5)",uploadSubMember:"PDF / TXT / DOCX / PPTX (до 5 Ñайлов, 30MB каждÑй)",scriptLoaded:"СÑенаÑий загÑÑжен",textPlaceholder:"Ðли вÑÑавÑÑе ÑекÑÑ ÑÑаÑÑи ÑÑда...",scriptDetected:"ÐбнаÑÑжен Ñайл ÑÑенаÑиÑ. ÐажмиÑе ниже, ÑÑÐ¾Ð±Ñ Ð·Ð°Ð³ÑÑзиÑÑ.",startExplain:"ÐаÑаÑÑ Ð»ÐµÐºÑиÑ",loadScript:"ÐагÑÑзиÑÑ ÑÑенаÑий",contentTooShort:"ÐонÑÐµÐ½Ñ ÑлиÑком коÑоÑкий! ÐагÑÑзиÑе болÑÑе ÑекÑÑа или пÑавилÑнÑй Ñайл ÑÑенаÑиÑ.",contentTooLong:"ÐбÑÑм докÑменÑа пÑевÑÑÐ°ÐµÑ Ð»Ð¸Ð¼Ð¸Ñ Ð² 300 000 Ñимволов (ÑейÑаÑ: {{count}}). СокÑаÑиÑе и загÑÑзиÑе Ñнова.",readError:"Ðе ÑдалоÑÑ Ð¿ÑоÑиÑаÑÑ Ñайл, попÑобÑйÑе Ñнова.",pdfLocalParseUnsupported:"Ðе ÑдалоÑÑ Ð¿ÑоÑиÑаÑÑ ÑÑÐ¾Ñ PDF. ÐеÑеÑкÑпоÑÑиÑÑйÑе его или пÑеобÑазÑйÑе в TXT/DOCX.",invalidScript:"ÐевеÑнÑй ÑоÑÐ¼Ð°Ñ Ñайла ÑÑенаÑиÑ.",fileTooLarge:"Ð Ð°Ð·Ð¼ÐµÑ Ñайла пÑевÑÑÐ°ÐµÑ 30MB. ÐагÑÑзиÑе Ñайл поменÑÑе.",tooManyFiles:"Ðожно загÑÑзиÑÑ Ð½Ðµ более 5 Ñайлов.",multiUploadMembersOnly:"ÐеÑплаÑнÑе полÑзоваÑели могÑÑ Ð·Ð°Ð³ÑÑзиÑÑ 1 Ñайл за Ñаз. ÐагÑÑзка неÑколÑкиÑ
докÑменÑов доÑÑÑпна ÑолÑко ÑÑаÑÑникам.",txtUtf8Hint:"ÐодÑказка: еÑли ÑгенеÑиÑованнÑй ÑекÑÑ Ð½Ðµ ÑÐ¾Ð²Ð¿Ð°Ð´Ð°ÐµÑ Ñ Ð¸Ð¼Ð¿Ð¾ÑÑиÑованнÑм, пÑеобÑазÑйÑе Ñайл .txt в кодиÑÐ¾Ð²ÐºÑ UTF-8 и импоÑÑиÑÑйÑе Ñнова.",orPlayByUuid:"Ðли игÑаÑÑ Ð¿Ð¾ UUID ÑоÑ
ÑанениÑ",noLoginRequired:"*ÐÑ
од не ÑÑебÑеÑÑÑ",playByUuidPlaceholder:"ÐведиÑе UUID ÑоÑ
ÑанениÑ...",saveNotFound:"СоÑ
Ñанение не найдено",saveNotShared:"СоÑ
Ñанение не доÑÑÑпно",systemConfig:"СиÑÑемнÑе наÑÑÑойки",volume:"ÐÑомкоÑÑÑ",bgmVolume:"ÐÑомкоÑÑÑ BGM",voiceVolume:"ÐÑомкоÑÑÑ Ð³Ð¾Ð»Ð¾Ñа",textSpeed:"СкоÑоÑÑÑ ÑекÑÑа",fontSize:"Ð Ð°Ð·Ð¼ÐµÑ ÑÑиÑÑа",autoAdvanceDelay:"ÐнÑеÑвал авÑопеÑеÑ
ода",autoAdvanceByVoice:"ÐвÑопеÑеÑ
од по голоÑÑ",autoAdvanceByVoiceHint:"РавÑо-Ñежиме пеÑеÑ
од ÑеÑез 1 ÑекÑÐ½Ð´Ñ Ð¿Ð¾Ñле оконÑÐ°Ð½Ð¸Ñ Ð¾Ð·Ð²ÑÑки. ÐÑли озвÑÑки неÑ, иÑполÑзÑеÑÑÑ Ð¸Ð½ÑеÑвал вÑÑе.",saveClose:"СоÑ
ÑаниÑÑ Ð¸ закÑÑÑÑ",language:"ЯзÑк (Language)",outputLanguage:"ЯзÑк вÑвода AI",outputLanguageHint:"ÐÑÑавÑÑе пÑÑÑÑм или 'default' Ð´Ð»Ñ ÑзÑка ÑайÑа, или ÑкажиÑе English, French и Ñ.д.",voiceOutputLanguage:"ЯзÑк озвÑÑки",voiceOutputLanguageHint:"Auto ÑледÑÐµÑ ÑзÑÐºÑ ÑайÑа. ÐÑли озвÑÑка оÑлиÑаеÑÑÑ Ð¾Ñ ÑекÑÑа, бÑÐ´ÐµÑ Ñоздано оÑделÑное поле пеÑевода Ð´Ð»Ñ TTS.",playerNickname:"Ðак пеÑÑонаж Ð²Ð°Ñ Ð½Ð°Ð·
140ÑваеÑ",playerNicknameHint:"ÐапÑимеÑ: Ñ
озÑин, Ñенпай, ÑÑÑÐ´ÐµÐ½Ñ Ð¸ Ñ.д. ÐÑÑавÑÑе пÑÑÑÑм Ð´Ð»Ñ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð¿Ð¾ ÑмолÑаниÑ",gameUiPreset:"ÐÑеÑÐµÑ Ð¸Ð³Ñового UI",gameUiPresetFullwidth:"ÐолноÑиÑÐ¸Ð½Ð½Ð°Ñ Ð½Ð¾Ð²ÐµÐ»Ð»Ð°",gameUiPresetFullwidthDesc:"ÐÐ»Ñ ÑÑаÑÑников: ÑнÑаÑнÑй диалог на вÑÑ ÑиÑинÑ, Ð¸Ð¼Ñ Ð²Ð½ÑÑÑи панели и пÑозÑаÑнÑе кнопки ÑнизÑ.",gameUiPresetClassic:"ÐлаÑÑиÑеÑкий ÑозовÑй",gameUiPresetClassicDesc:"СвеÑÐ»Ð°Ñ Ð¼ÑÐ³ÐºÐ°Ñ Ð¿Ð°Ð½ÐµÐ»Ñ Ð² ÑÑиле визÑалÑной новеллÑ.",gameUiPresetFloral:"ÐинÑажнÑй ÑвеÑоÑнÑй",gameUiPresetFloralDesc:"ÐеÑплаÑное оÑоÑмление в ÑеплÑÑ
ÑонаÑ
Ñ ÑвеÑоÑнÑм декоÑом, ÑаблиÑкой имени, кнопками и ваÑианÑами.",gameUiPresetSakura:"Рамка Ñ ÑакÑÑой",gameUiPresetSakuraDesc:"ÐзÑÑканное оÑоÑмление Ñ ÑакÑÑой, декоÑаÑивнÑми Ñглами и ÑаблиÑкой имени.",gameUiPresetGothic:"ÐоÑиÑеÑÐºÐ°Ñ Ñоза",gameUiPresetGothicDesc:"Темное оÑоÑмление Ñ ÑеÑебÑÑной оканÑовкой и ÑиолеÑовÑми Ñозами.",apiTokenDescriptionPrefix:"ÐÐ»Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑÐµÐ½Ð¸Ñ Paper2Gal ÑеÑез MCP или CLI. УÑÑановка CLI: ",apiTokenDescriptionSuffix:". Token показÑваеÑÑÑ ÑолÑко один Ñаз пÑи Ñоздании. СкопиÑÑйÑе и ÑоÑ
ÑаниÑе его.",apiTokenNameLabel:"Ðазвание Token",apiTokenCreateButton:"СоздаÑÑ Token",apiTokenNewTokenLabel:"ÐовÑй Token (показÑваеÑÑÑ Ð¾Ð´Ð¸Ð½ Ñаз)",apiTokenMyTokens:"Ðои Token",apiTokenEmpty:"API Token оÑÑÑÑÑÑвÑÑÑ",apiTokenCreatedAt:"Создан",apiTokenLastUsedAt:"ÐоÑледнее иÑполÑзование",apiTokenNeverUsed:"Ðе иÑполÑзовалÑÑ",apiTokenLoadFailed:"Ðе ÑдалоÑÑ Ð·Ð°Ð³ÑÑзиÑÑ API Token",apiTokenLoginRequired:"ÐойдиÑе в аккаÑÐ½Ñ Ð¿ÐµÑед Ñозданием API Token",apiTokenCreateFailed:"Ðе ÑдалоÑÑ ÑоздаÑÑ API Token",apiTokenCreatedMessage:"API Token Ñоздан. СкопиÑÑйÑе и ÑоÑ
ÑаниÑе его ÑейÑаÑ.",apiTokenDeleteFailed:"Ðе ÑдалоÑÑ ÑдалиÑÑ API Token",apiTokenDeletedMessage:"API Token Ñдален.",refresh:"ÐбновиÑÑ",logout:"ÐÑйÑи",back:"Ðазад",auto:"ÐвÑо",log:"Ðог",hide:"СкÑÑÑÑ",important:"ÐамеÑка",raiseHand:"ÐопÑоÑ",raiseHandTitle:"ÐопÑÐ¾Ñ Ð¿Ð¾ ÑÑжеÑÑ",questionPlaceholder:"ÐведиÑе Ñвой вопÑоÑ. AI оÑвеÑÐ¸Ñ Ñ ÑÑеÑом пеÑÑонажа, иÑÑ
одного ÑекÑÑа и ÑекÑÑего конÑекÑÑа ÑÑжеÑа.",questionHint:"ÐÑÐ¾Ñ Ð²ÑеменнÑй вопÑÐ¾Ñ Ð½Ðµ ÑоÑ
ÑанÑеÑÑÑ Ð² ÑÑенаÑий. ÐажмиÑе Ctrl/Cmd + Enter Ð´Ð»Ñ Ð¾ÑпÑавки.",askCancel:"ÐÑмена",askSend:"ÐÑпÑавиÑÑ",asking:"ÐÑмаÑ...",backToStory:"ÐеÑнÑÑÑÑÑ Ðº ÑÑжеÑÑ",questionEmpty:"ÐведиÑе вопÑоÑ.",questionUnavailable:"СейÑÐ°Ñ Ð²Ð¾Ð¿ÑÐ¾Ñ Ð·Ð°Ð´Ð°ÑÑ Ð½ÐµÐ»ÑзÑ.",storyQuestionArchiveTitle:"СоÑ
ÑанÑÑÑ Ð²Ð¾Ð¿ÑоÑÑ Ð¿Ð¾ ÑÑжеÑÑ",storyQuestionArchivePrivacy:"СоÑ
ÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð´Ð¾ÑÑÑÐ¿Ð½Ñ ÑолÑко вам. ÐÑи повÑоÑе AI и TTS не вÑзÑваÑÑÑÑ.",storyQuestionArchiveSaveFailed:"ÐÑÐ²ÐµÑ Ð¿Ð¾ÐºÐ°Ð·Ð°Ð½, но ÑоÑ
ÑаниÑÑ ÐµÐ³Ð¾ не ÑдалоÑÑ. ÐÑÑоÑÐ¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾ пÑодолжиÑÑ.",storyQuestionArchiveCapacity:"ÐоÑÑигнÑÑ Ð»Ð¸Ð¼Ð¸Ñ ÐºÐ¾Ð»Ð¸ÑеÑÑва или ÑазмеÑа ÑоÑ
ÑанÑннÑÑ
вопÑоÑов; оÑÐ²ÐµÑ Ð²ÑÑ ÐµÑÑ Ð´Ð¾ÑÑÑпен.",storyQuestionArchivePending:"ÐÑвеÑеннÑй вопÑÐ¾Ñ ÐµÑÑ Ð½Ðµ ÑоÑ
ÑанÑн. ÐодождиÑе пеÑед вÑÑ
одом из иÑÑоÑии.",storyQuestionArchiveAnchorPending:"ÐжидаеÑÑÑ Ñнимок ÑоÑ
ÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð¿Ð¾Ð´ÑвеÑÐ¶Ð´ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð·Ð¸Ñии вопÑоÑа; оÑÐ²ÐµÑ Ð´Ð¾ÑÑÑпен.",storyQuestionArchiveReplay:"ÐоÑпÑоизводиÑÑÑ ÑоÑ
ÑанÑннÑй вопÑоÑ; AI и TTS повÑоÑно не вÑзÑваÑÑÑÑ.",reading:"ЧÑение ÑÑаÑÑи...",loadingScriptLabel:"ÐенеÑаÑÐ¸Ñ ÑÑжеÑа",loadingScriptMessage:"ÐенеÑаÑÐ¸Ñ ÑÑжеÑа...",loadingVoiceLabel:"ÐенеÑаÑÐ¸Ñ Ð³Ð¾Ð»Ð¾Ñа",loadingVoiceMessage:"ÐенеÑаÑÐ¸Ñ Ð³Ð¾Ð»Ð¾Ñа...",loadingWaitHint:"Ðжидание...",loadingInteractionHint:"ÐодождиÑе. ÐÑобел или нажаÑие â пÑÑжок",collectIdeas:"ÐажимайÑе на иконки, ÑÑÐ¾Ð±Ñ ÑобиÑаÑÑ Ð¸Ð´ÐµÐ¸!",loadingJumpHint:"ÐÑобел или нажаÑие â пÑÑжок",loadingGameOverTitle:"УпÑ!",loadingGameOverSub:"ÐагÑÑзка пÑодолжаеÑÑÑâ¦",loadingRestartIn:"РеÑÑаÑÑ ÑеÑез",loadingRestartGo:"СÑаÑÑ!",loadingMessages:["ÐÑлиÑÐ½Ð°Ñ Ð¸Ð´ÐµÑ!","ÐапиÑано!","Семпай кÑÑÑой!","ÐдоÑ
новение!","Так деÑжаÑÑ!"],sponsoredBy:"СпонÑоÑ: GuanCha",adSlogan:"ÐгÑай Ñ AI, вÑбиÑай GuanCha.",loadingScript:"СÑенаÑий загÑÑжаеÑÑÑ...",writingNextChapter:"ÐиÑÑ ÑледÑÑÑÑÑ Ð³Ð»Ð°Ð²Ñ...",completionRate:"ÐавеÑÑено: 100%",researchCompleted:"ÐÑÑледование завеÑÑено",researchLog:": ÐÑÑнал иÑÑледованиÑ",observationLog:": Ðневник наблÑдений",titleBtn:"Ðлавное менÑ",replayBtn:"ÐовÑоÑ",exportBtn:"ÐкÑпоÑÑ",saveCg:"СоÑ
ÑаниÑÑ CG",continue:"ÐÑодолжиÑÑ",endingTransitionHint:"ÐÑÑоÑÐ¸Ñ Ð¿Ð¾Ð´Ñ
Ð¾Ð´Ð¸Ñ Ðº ÑиналÑ...",endingFarewell:"ЧÑение ÑÑой ÑÑаÑÑи завеÑÑено.",systemError:"СиÑÑÐµÐ¼Ð½Ð°Ñ Ð¾Ñибка",errorTitle:"УпÑ!",errorHint:"ЧÑо-Ñо поÑло Ð
140½Ðµ Ñак... ÐопÑобÑйÑе еÑе Ñаз. ÐÑли пÑоблема не иÑÑезнеÑ, пÑовеÑÑÑе наÑÑÑойки ÑеÑи или API.",contactAdmin:"СвÑзаÑÑÑÑ Ñ Ð°Ð´Ð¼Ð¸Ð½Ð¾Ð¼",retry:"ÐовÑоÑиÑÑ",checkSettings:"ÐÑовеÑиÑÑ Ð½Ð°ÑÑÑойки",limitReached:"Ðневной Ð»Ð¸Ð¼Ð¸Ñ Ð¸ÑÑеÑпан. ÐопÑобÑйÑе завÑÑа или иÑполÑзÑйÑе Ñвой клÑÑ.",dailyLimitExceeded:"Ðневной Ð»Ð¸Ð¼Ð¸Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸ÑÑеÑпан. ÐеÑниÑеÑÑ Ð·Ð°Ð²ÑÑа или иÑполÑзÑйÑе код акÑиваÑии Ð´Ð»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ Ð¿Ð¾ÑÑоÑнной квоÑÑ.",loginRequired:"ÐÐ»Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑÑой ÑÑнкÑии нÑжно заÑегиÑÑÑиÑоваÑÑÑÑ Ð¸Ð»Ð¸ войÑи.",loginRequiredMsg:"ÐожалÑйÑÑа, войдиÑе, ÑÑÐ¾Ð±Ñ Ð¿Ð¾Ð»ÑÑиÑÑ Ð´Ð¾ÑÑÑп к облаÑнÑм ÑоÑ
ÑанениÑм и полÑзоваÑелÑÑким пеÑÑонажам.",rotateDevice:"ÐовеÑниÑе ÑÑÑÑойÑÑво",rotateDeviceSub:"PLEASE ROTATE DEVICE",rotateHint:"ÐожалÑйÑÑа, игÑайÑе в гоÑизонÑалÑном Ñежиме Ð´Ð»Ñ Ð»ÑÑÑего опÑÑа.",mobileApkPromptTitle:"УÑÑановка пÑиложениÑ",mobileAppInstallMessage:"Paper2Gal можно иÑполÑзоваÑÑ ÐºÐ°Ðº мобилÑное пÑиложение. Ðа iOS добавÑÑе ÑÐ°Ð¹Ñ Ð½Ð° ÑкÑан Ðомой Ð´Ð»Ñ Ð¿Ð¾Ð»Ð½Ð¾ÑкÑанного Ñежима; на Android ÑкаÑайÑе APK.",mobileNativeAppTitle:"ÐапÑÑено в ÑÑÑановленном пÑиложении",mobileNativeAppMessage:"ÐÑ Ð¸ÑполÑзÑеÑе пÑиложение, Ñпакованное ÑеÑез Capacitor. ÐовÑоÑно ÑкаÑиваÑÑ APK или добавлÑÑÑ ÑÐ°Ð¹Ñ Ð½Ð° ÑкÑан Ðомой не нÑжно.",mobilePwaAppTitle:"ÐапÑÑено в полноÑкÑанном Ñежиме",mobilePwaAppMessage:"Paper2Gal оÑкÑÑÑ Ñ Ð¸ÐºÐ¾Ð½ÐºÐ¸ на ÑкÑане Ðомой, поÑÑÐ¾Ð¼Ñ Ð¾Ð½ Ñже ÑабоÑÐ°ÐµÑ Ð±ÐµÐ· адÑеÑной ÑÑÑоки бÑаÑзеÑа.",mobileAppUpdateTitle:"ÐбновлениÑ",mobileNativeUpdateMessage:"УÑÑановленное пÑиложение обновлÑеÑÑÑ ÑÑÑановкой нового пакеÑа. Ðеб-конÑÐµÐ½Ñ Ð¼Ð¾Ð¶ÐµÑ ÑледоваÑÑ Ð¾Ð½Ð»Ð°Ð¹Ð½-веÑÑии, но Ñама наÑÐ¸Ð²Ð½Ð°Ñ Ð¾Ð±Ð¾Ð»Ð¾Ñка ÑÑебÑÐµÑ Ð½Ð¾Ð²Ñй Ð¿Ð°ÐºÐµÑ Ð¿ÑиложениÑ.",mobilePwaUpdateMessage:"ÐеÑÑÐ¸Ñ Ñ ÑкÑана Ðомой авÑомаÑиÑеÑки ÑледÑÐµÑ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñм ÑайÑа. ÐÑли Ð½Ð¾Ð²Ð°Ñ Ð²ÐµÑÑÐ¸Ñ Ð½Ðµ поÑвилаÑÑ, закÑойÑе и оÑкÑойÑе ÐµÑ Ñнова или один Ñаз обновиÑе ÑÐ°Ð¹Ñ Ð² бÑаÑзеÑе.",mobileAndroid
140InstallTitle:"УÑÑановка на Android",mobileApkPromptMessage:"ÐобилÑÐ½Ð°Ñ Ð²ÐµÑÑÐ¸Ñ ÑайÑа Ð¸Ð¼ÐµÐµÑ Ð¾Ð³ÑаниÑеннÑÑ Ð¿ÑоизводиÑелÑноÑÑÑ. РекомендÑем ÑкаÑаÑÑ APK Ð´Ð»Ñ Ð»ÑÑÑего опÑÑа.",mobileApkDownload:"СкаÑаÑÑ APK",mobileIosInstallTitle:"ÐолноÑкÑаннÑй Ñежим на iOS",mobileIosInstallMessage:"Ðа iOS APK не нÑжен. ÐобавÑÑе ÑÐ°Ð¹Ñ Ð½Ð° ÑкÑан Ðомой ÑеÑез Safari и запÑÑкайÑе его Ñ Ð¸ÐºÐ¾Ð½ÐºÐ¸, ÑÑÐ¾Ð±Ñ Ð¿Ð¾Ð»ÑÑиÑÑ Ð¿Ð¾Ð»Ð½Ð¾ÑкÑаннÑй Ñежим без адÑеÑной ÑÑÑоки.",mobileIosInstallStep1:"ÐÑкÑойÑе ÑÑÐ¾Ñ ÑÐ°Ð¹Ñ Ð² Safari",mobileIosInstallStep2:"ÐажмиÑе ÐºÐ½Ð¾Ð¿ÐºÑ ÐоделиÑÑÑÑ Ð²Ð½Ð¸Ð·Ñ",mobileIosInstallStep3:"ÐÑокÑÑÑиÑе вниз и вÑбеÑиÑе Ðа ÑкÑан Ðомой",mobileIosInstallStep4:"ÐадайÑе имÑ, нажмиÑе ÐобавиÑÑ Ð¸ заÑем оÑкÑÑвайÑе ÑÐ°Ð¹Ñ Ñ Ð¸ÐºÐ¾Ð½ÐºÐ¸ на ÑкÑане Ðомой",mobileIosOnlyHintTitle:"СовеÑ",mobileIosOnlyHint:"ÐÑли адÑеÑÐ½Ð°Ñ ÑÑÑока вÑÑ ÐµÑÑ Ð²Ð¸Ð´Ð½Ð°, ÑбедиÑеÑÑ, ÑÑо Ð²Ñ Ð·Ð°Ð¿ÑÑкаеÑе ÑÐ°Ð¹Ñ Ñ Ð¸ÐºÐ¾Ð½ÐºÐ¸ на ÑкÑане Ðомой, Ñозданной Safari, а не из вкладки бÑаÑзеÑа.",mobileApkDownloadHint:"ÐолÑзоваÑели мобилÑнÑÑ ÑÑÑÑойÑÑв могÑÑ ÑкаÑаÑÑ APK здеÑÑ Ð¿Ð¾Ñле закÑÑÑÐ¸Ñ ÑведомлениÑ.",downloads:"ÐагÑÑзки",partners:"ÐаÑÑнеÑÑ",trustedPartners:"ÐадежнÑе паÑÑнеÑÑ",sponsorBadge:"СпонÑоÑ",partnerBadge:"ÐаÑÑнеÑ",memoryLog:"ÐÑÑнал памÑÑи",memoryLogSub:"Memory Log",communityPageTitle:"ÐаÑÑеÑÑкаÑ",communityPageSub:"Gallery",exploreTab:"ÐбзоÑ",mySubmissionsTab:"Ðои ÑабоÑÑ",searchPlaceholder:"ÐоиÑк по имени или ID...",uploadToCommunity:"ÐагÑÑзиÑÑ",borrowed:"ÐаимÑÑвовано",owned:"ÐаÑе",borrow:"ÐзÑÑÑ",view:"ÐÑоÑмоÑÑ",submissions:"ÐагÑÑзки",uploadTitle:"ÐагÑÑзиÑÑ Ð² СообÑеÑÑво",uploadDesc:"ÐоделиÑеÑÑ Ñвоим пеÑÑонажем Ñ Ð´ÑÑгими. УбедиÑеÑÑ, ÑÑо он ÑооÑвеÑÑÑвÑÐµÑ Ð¿Ñавилам.",charType:"Тип пеÑÑонажа",originalChar:"ÐÑигинал (OC)",fanartChar:"ФанаÑÑ",originalBadge:"ÐÑигинал",fanartBadge:"ФанаÑÑ",charDesc:"ÐпиÑание",charDescPlaceholder:"ÐÑаÑкое опиÑание пеÑÑонажа...",submit:"ÐÑпÑавиÑÑ",submitting:"ÐÑпÑавка...",submissionSuccess:"ÐÑпÑавлено! ÐжидайÑе одобÑениÑ.",submissionFailed:"ÐÑибка оÑпÑавки.",submissionPending:"Ðа пÑовеÑке",submissionApproved:"ÐдобÑено",submissionRejected:"ÐÑклонено",recallSuccess:"ÐÑбликаÑÐ¸Ñ Ð¾Ñозвана!",noCharactersFound:"ÐеÑÑонажи не найденÑ.",loadingCommunity:"ÐагÑÑзка...",loadMore:"ÐагÑÑзиÑÑ ÐµÑе",adminReviewNote:"ÐамеÑка админа",deleteSubmission:"ÐÑозваÑÑ",deleteSubmissionConfirm:"ÐÑозваÑÑ ÑÑÑ Ð¿ÑбликаÑиÑ?",selectCharacter:"ÐÑбеÑиÑе пеÑÑонажа",chooseFromYourCharacters:"-- ÐÑбеÑиÑе из ÑÐ²Ð¾Ð¸Ñ Ð¿ÐµÑÑонажей --",onlyCloudSyncedCharacters:"Ðожно загÑÑжаÑÑ ÑолÑко ÑÐ¸Ð½Ñ ÑонизиÑованнÑÑ Ð¿ÐµÑÑонажей.",stats:"СÑаÑиÑÑика",uploader:"ÐагÑÑзил",borrowAndAdd:"ÐзÑÑÑ Ð² библиоÑекÑ",alreadyInLibrary:"Уже в библиоÑеке",addingCharacterHint:"ÐÑ ÑможеÑе ÑÑÐ°Ð·Ñ Ð½Ð°ÑаÑÑ Ð¾Ð±Ñение Ñ ÑÑим пеÑÑонажем.",fullExpr:"ÐÑе ÑмоÑии",charVoiceBadge:"ÐолоÑ",charVoiceBadgeTooltip:"ÐоддеÑжка AI голоÑа",voiceOnlyFilter:"ТолÑко Ñ Ð³Ð¾Ð»Ð¾Ñом",allTypes:"ÐÑе",intro:"ÐпиÑание",workshopDisclaimerTitle:"ÐÑказ Ð¾Ñ Ð¾ÑвеÑÑÑвенноÑÑи и авÑоÑÑкие пÑава",workshopDisclaimerText:`1. ÐеÑÑ ÐºÐ¾Ð½ÑÐµÐ½Ñ Ð² ÐаÑÑеÑÑкой загÑÑжаеÑÑÑ Ð¿Ð¾Ð»ÑзоваÑелÑми. Ð¡Ð°Ð¹Ñ Ð¿ÑедоÑÑавлÑÐµÑ ÑолÑко меÑÑо Ð´Ð»Ñ Ñ ÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð¸ не неÑÐµÑ Ð¾ÑвеÑÑÑвенноÑÑи за ÑодеÑжание. 1412. ÐолÑзоваÑели Ð´Ð¾Ð»Ð¶Ð½Ñ Ð³Ð°ÑанÑиÑоваÑÑ, ÑÑо загÑÑженнÑе маÑеÑÐ¸Ð°Ð»Ñ Ð½Ðµ наÑÑÑаÑÑ Ð°Ð²ÑоÑÑкие пÑава или дÑÑгие пÑава ÑÑеÑÑÐ¸Ñ Ð»Ð¸Ñ. ÐÑÑ ÑÑидиÑеÑÐºÐ°Ñ Ð¾ÑвеÑÑÑвенноÑÑÑ Ð»ÐµÐ¶Ð¸Ñ Ð½Ð° загÑÑзÑике. 1423. ÐагÑÑзка незаконного, жеÑÑокого или непÑиÑÑойного конÑенÑа ÑÑÑого запÑеÑена. ÐдминиÑÑÑаÑÐ¸Ñ Ð¾ÑÑавлÑÐµÑ Ð·Ð° Ñобой пÑаво ÑдалÑÑÑ ÐºÐ¾Ð½ÑÐµÐ½Ñ Ð±ÐµÐ· ÑведомлениÑ. 1434. ÐÑли Ð²Ñ Ð¾Ð±Ð½Ð°ÑÑжили наÑÑÑение ваÑÐ¸Ñ Ð¿Ñав, ÑвÑжиÑеÑÑ Ñ Ð½Ð°Ð¼Ð¸, пÑедоÑÑавив докаÐ
143·Ð°ÑелÑÑÑва владениÑ. 1445. ÐÑполÑзÑÑ ÐаÑÑеÑÑкÑÑ, Ð²Ñ ÑоглаÑаеÑеÑÑ Ñ Ð´Ð°Ð½Ð½Ñми ÑÑловиÑми.`,workshopTakedownContactTitle:"ÐонÑÐ°ÐºÑ Ð´Ð»Ñ ÑдалениÑ",workshopTakedownContactDesc:"ÐÑли Ð²Ñ ÑÑиÑаеÑе, ÑÑо конÑÐµÐ½Ñ Ð¿ÐµÑÑонажа в ÐаÑÑеÑÑкой наÑÑÑÐ°ÐµÑ Ð¿Ñава или должен бÑÑÑ Ñдален, ÑвÑжиÑеÑÑ Ñ Ð½Ð°Ð¼Ð¸:",sortRecommended:"РекомендÑемое",sortHot:"ÐопÑлÑÑное",sortNew:"Ðовое",submitUpdate:"ÐбновиÑÑ Ð¿ÑбликаÑиÑ",updateSubmissionConfirm:"ÐÑпÑавиÑÑ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð½ÑÑ Ð²ÐµÑÑÐ¸Ñ Ð² маÑÑеÑÑкÑÑ? ÐоÑÑебÑеÑÑÑ Ð¿Ð¾Ð²ÑоÑное одобÑение пеÑед пÑбликаÑией.",updateSubmissionSuccess:"Ðбновление оÑпÑавлено! ÐжидайÑе пÑовеÑки.",workshopSyncChoiceTitle:"Ð¡Ð¸Ð½Ñ ÑонизаÑÐ¸Ñ Ñ ÐаÑÑеÑÑкой",workshopSyncChoiceMessage:"ÐеÑÑонаж ÑÐ¾Ñ ÑанÑн. Ð¡Ð¸Ð½Ñ ÑонизиÑоваÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñ ÐаÑÑеÑÑкой? Ðбновление поÑÑебÑÐµÑ Ð¿Ð¾Ð²ÑоÑной пÑовеÑки.",workshopSyncNow:"Ð¡Ð¸Ð½Ñ ÑонизиÑоваÑÑ",workshopSyncLater:"Ðозже",workshopSyncFailed:"ÐеÑÑонаж ÑÐ¾Ñ ÑанÑн, но ÑÐ¸Ð½Ñ ÑонизаÑÐ¸Ñ Ñ ÐаÑÑеÑÑкой не ÑдалаÑÑ. ÐовÑоÑиÑе попÑÑÐºÑ Ð¿Ð¾Ð·Ð¶Ðµ.",prevPage:"ÐÑед. ÑÑÑаниÑа",nextPage:"След. ÑÑÑаниÑа",page:"СÑÑаниÑа",login:"ÐойÑи",discordLogin:"ÐойÑи ÑеÑез Discord",watchaLogin:"ÐойÑи ÑеÑез Watcha",watchaLoginFailed:"ÐÑибка Ð²Ñ Ð¾Ð´Ð° ÑеÑез Watcha",appleLogin:"ÐойÑи ÑеÑез Apple",appleLoginFailed:"Ðе ÑдалоÑÑ Ð²Ð¾Ð¹Ñи ÑеÑез Apple",loginWithPassword:"ÐойÑи Ñ Ð¿Ð°Ñолем",loginWithCode:"ÐойÑи по кодÑ",register:"РегиÑÑÑаÑиÑ",email:"Email",password:"ÐаÑолÑ",setPassword:"УÑÑановиÑÑ Ð¿Ð°ÑолÑ",setPasswordHint:"УÑÑановиÑе паÑолÑ, ÑÑÐ¾Ð±Ñ Ð·Ð°Ð²ÐµÑÑиÑÑ Ð²Ñ Ð¾Ð´.",forgotPassword:"ÐабÑли паÑолÑ?",resendVerify:"ÐÑпÑавиÑÑ ÐºÐ¾Ð´ повÑоÑно",noAccount:"ÐÐµÑ Ð°ÐºÐºÐ°ÑнÑа?",haveAccount:"ÐÑÑÑ Ð°ÐºÐºÐ°ÑнÑ?",loginSuccess:"ÐÑ Ð¾Ð´ вÑполнен!",registerSuccess:"РегиÑÑÑаÑÐ¸Ñ ÑÑпеÑна! Ðод оÑпÑавлен.",verifyEmailSent:"Ðод подÑвеÑÐ¶Ð´ÐµÐ½Ð¸Ñ Ð¾ÑпÑавлен.",resendSuccess:"Ðод оÑпÑавлен повÑоÑно",sendLoginCode:"ÐÑпÑавиÑÑ ÐºÐ¾Ð´ Ð²Ñ Ð¾Ð´Ð°",loginCodeSent:"Ðод Ð²Ñ Ð¾Ð´Ð° оÑпÑавлен. ÐÑовеÑÑÑе поÑÑÑ.",emailNotVerified:"Email не подÑвеÑжден. ÐодÑвеÑдиÑе кодом пеÑед Ð²Ñ Ð¾Ð´Ð¾Ð¼.",emailNotRegistered:"Email не заÑегиÑÑÑиÑован.",loginFailed:"ÐÑибка Ð²Ñ Ð¾Ð´Ð°",registerFailed:"ÐÑибка ÑегиÑÑÑаÑии",resetPassword:"СбÑоÑиÑÑ Ð¿Ð°ÑолÑ",sendResetCode:"ÐÑпÑавиÑÑ ÐºÐ¾Ð´ ÑбÑоÑа",resetSuccess:"ÐаÑÐ¾Ð»Ñ ÑÑпеÑно ÑбÑоÑен. ÐожалÑйÑÑа, войдиÑе.",newPassword:"ÐовÑй паÑолÑ",newPasswordPlaceholder:"ÐведиÑе новÑй паÑолÑ",resetCodeSent:"Ðод Ð´Ð»Ñ ÑбÑоÑа паÑÐ¾Ð»Ñ Ð¾ÑпÑавлен. ÐÑовеÑÑÑе поÑÑÑ.",backToLogin:"ÐеÑнÑÑÑÑÑ ÐºÐ¾ Ð²Ñ Ð¾Ð´Ñ",verificationCode:"Ðод подÑвеÑждениÑ",verifyCode:"ÐодÑвеÑдиÑÑ",verifyCodeTitle:"ÐодÑвеÑждение Email",codePlaceholder:"123456",codeSent:"Ðод подÑвеÑÐ¶Ð´ÐµÐ½Ð¸Ñ Ð¾ÑпÑавлен. ÐÑовеÑÑÑе поÑÑÑ.",codeHint:"ÐведиÑе 6-знаÑнÑй код из пиÑÑма",loginCodeHint:"ÐведиÑе 6-знаÑнÑй код Ð²Ñ Ð¾Ð´Ð° из пиÑÑма",verifyComplete:"Email подÑвеÑжден. ТепеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ войÑи.",verifyFailed:"ÐÑибка подÑвеÑждениÑ",codeInvalid:"ÐевеÑнÑй код. ÐопÑобÑйÑе Ñнова.",codeExpired:"СÑок дейÑÑÐ²Ð¸Ñ ÐºÐ¾Ð´Ð° иÑÑек. ÐапÑоÑиÑе новÑй.",codeTooManyAttempts:"СлиÑком много попÑÑок. ÐапÑоÑиÑе новÑй код.",codeResendTooSoon:"СлиÑком много запÑоÑов. ÐодождиÑе и попÑобÑйÑе Ñнова.",codeMissing:"СнаÑала запÑоÑиÑе код подÑвеÑждениÑ.",welcomeBack:"С возвÑаÑением",remaining:"ÐÑÑалоÑÑ Ð½Ð° ÑегоднÑ",permanentRemaining:"ÐоÑÑоÑннÑй оÑÑаÑок",permanentVoiceRemaining:"ÐоÑÑоÑннÑй голоÑ",emailPlaceholder:"[email protected]",passwordPlaceholder:"ÐведиÑе паÑолÑ",registerSuccessDetail:"РегиÑÑÑаÑÐ¸Ñ ÑÑпеÑна! ÐожалÑйÑÑа, пÑовеÑÑÑе поÑÑÑ Ð´Ð»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ ÐºÐ¾Ð´Ð° акÑиваÑии.",verified:"ÐодÑвеÑжден",unverified:"Ðе подÑвеÑжден",profileSettings:"ÐаÑÑÑойки пÑоÑилÑ",editName:"ÐзмениÑÑ Ð¸Ð¼Ñ",save:"Ð¡Ð¾Ñ ÑаниÑÑ",namePlaceholder:"ÐведиÑе новое Ð¸Ð¼Ñ (макÑ. 50 Ñимв.)",updateSuccess:"ÐÑоÑÐ¸Ð»Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½!",totalPlayTimeLabel:"ÐбÑее вÑÐµÐ¼Ñ Ð¸Ð³ÑÑ",totalPlayCountLabel:"ÐÑего игÑ",boundEmail:"ÐÑивÑзаннÑй Email",boundPhone:"ÐÑивÑзаннÑй ÑелеÑон",boundDiscord:"ÐÑивÑзаннÑй Discord",discordOAuth:"ÐÑ Ð¾Ð´ ÑеÑез Discord",rebindDiscord:"ÐеÑеподклÑÑиÑÑ Discord",discordCheckReward:"Я вÑÑÑпил â пÑовеÑиÑÑ Ð¸ полÑÑиÑÑ",discordRew
144ardActive:"ÐагÑада Discord полÑÑена (+10 генеÑаÑий и +10 озвÑÑек навÑегда)",voiceCommunityRedemptionActive:"ÐонÑÑ ÑообÑеÑÑва по ÐºÐ¾Ð´Ñ Ð°ÐºÑивен",borrowSuccess:"ÐеÑÑонаж ÑÑпеÑно заимÑÑвован!",notSet:"Ðе ÑÑÑановлено",saves:"Ð¡Ð¾Ñ ÑанениÑ",savesSub:"Saves",saveManagerTitle:"УпÑавление ÑÐ¾Ñ ÑанениÑми",autoSave:"ÐвÑоÑÐ¾Ñ Ñанение",manualSave:"Ð ÑÑное ÑÐ¾Ñ Ñанение",noSaves:"Ð¡Ð¾Ñ Ñанений неÑ",load:"ÐагÑÑзиÑÑ",deleteSave:"УдалиÑÑ",saveSuccess:"ÐгÑа ÑÐ¾Ñ Ñанена",loadSuccess:"ÐагÑÑзка завеÑÑена",saveDate:"ÐаÑа",importSaveBtn:"ÐмпоÑÑ ÑÐ¾Ñ ÑанениÑ",importSaveTitle:"ÐмпоÑÑ ÑÑенаÑиÑ",importSaveHint:"ÐведиÑе ID ÑÐ¾Ñ ÑÐ°Ð½ÐµÐ½Ð¸Ñ (UUID), ÑÑÐ¾Ð±Ñ Ð·Ð°Ð³ÑÑзиÑÑ ÑÑенаÑий.",importSaveWarning:"ÐÑимеÑание: ÐмпоÑÑ ÑÑжого ÑÐ¾Ñ ÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð²ÐºÐ»ÑÑÐ°ÐµÑ ÑпÑайÑÑ Ð¿Ð¾Ð»ÑзоваÑелÑÑÐºÐ¸Ñ Ð¿ÐµÑÑонажей, но не добавлÑÐµÑ Ð¿ÐµÑÑонажа в Ð²Ð°Ñ ÑпиÑок.",announcementTitle:"ÐбÑÑвление",announcementHistory:"ÐÑÑоÑÐ¸Ñ Ð¾Ð±ÑÑвлений",history:"ÐÑÑоÑиÑ",received:"ÐÑинÑÑо",idCopied:"ID ÑкопиÑован в бÑÑÐµÑ Ð¾Ð±Ð¼ÐµÐ½Ð°!",shareConfirmTitle:"ÐÑ ÑвеÑенÑ, ÑÑо Ñ Ð¾ÑиÑе поделиÑÑÑÑ ÑÑим ÑÐ¾Ñ Ñанением?",shareConfirmText:`ÐÑимеÑание: 1451. Ðаже еÑли Ð²Ñ Ð¿Ð¾Ð·Ð¶Ðµ оÑмениÑе обÑий доÑÑÑп, Ð²Ñ Ð½Ðµ ÑможеÑе ÑдалиÑÑ ÐºÐ¾Ð¿Ð¸Ð¸, коÑоÑÑе дÑÑгие Ñже ÑÐ¾Ñ Ñанили. 1462. СпÑайÑÑ Ð²Ð°Ñего пеÑÑонажа бÑдÑÑ Ð²ÐºÐ»ÑÑÐµÐ½Ñ Ð² ÑÐ¾Ñ Ñанение Ð´Ð»Ñ Ð¿ÑоÑмоÑÑа дÑÑгими (опиÑание лиÑноÑÑи не вклÑÑено).`,confirmShare:"ÐодÑвеÑдиÑÑ",sharePoster:"ÐоделиÑÑÑÑ Ð¿Ð¾ÑÑеÑом",publicSavePoster:"ÐоÑÑÐµÑ Ð¿ÑблиÑного ÑÐ¾Ñ ÑанениÑ",sharePosterReady:"ÐоÑÑÐµÑ Ð³Ð¾Ñов",shareLink:"СÑÑлка",copyLink:"ÐопиÑоваÑÑ ÑÑÑлкÑ",downloadPoster:"СкаÑаÑÑ Ð¿Ð¾ÑÑеÑ",sharePosterHint:"ÐÑÐ¾Ñ QR-код оÑкÑÑÐ²Ð°ÐµÑ Ð¿ÑблиÑное ÑÐ¾Ñ Ñанение напÑÑмÑÑ, без ÑÑÑного ввода UUID.",shareSaveMissing:"Ðе ÑдалоÑÑ ÑоздаÑÑ Ð¾Ð±Ð»Ð°Ñное ÑÐ¾Ñ Ñанение Ð´Ð»Ñ Ð¿ÑбликаÑии.",shareSaveFailed:"Ðе ÑдалоÑÑ Ð¾Ð¿ÑбликоваÑÑ ÑÐ¾Ñ Ñанение",scripts:"СÑенаÑии",status:"СÑаÑÑÑ",healthy:"ÐоÑма",scriptLibrary:"ÐиблиоÑека ÑÑенаÑиев",companion:"ÐомпанÑон",lastPlayed:"ÐоÑледнÑÑ Ð¸Ð³Ñа",maxScripts:"ÐакÑ. 100 ÑÑенаÑиев вклÑÑено",allCategories:"ÐÑе каÑегоÑии",presetPapersTitle:"Ðемо-опÑÑ",presetPapersSub:"ÐÑбеÑиÑе гоÑовÑÑ ÑÑаÑÑÑ, ÑÑÐ¾Ð±Ñ ÑÑÐ°Ð·Ñ Ð¿ÐµÑейÑи к ÑÑжеÑÑ. СпеÑиалÑно Ð´Ð»Ñ Ð¾Ð±ÑÑÐµÐ½Ð¸Ñ Ð¸ демо, не ÑаÑÑ Ð¾Ð´ÑÐµÑ Ð¿Ð¾Ð¿ÑÑки.",freeNoLogin:"Ðез ÑегиÑÑÑаÑии",discordRewardHint:"ÐÑивÑжиÑе Discord и вÑÑÑпиÑе в ÑообÑеÑÑво, ÑÑÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð½ Ñаз полÑÑиÑÑ 10 поÑÑоÑннÑÑ Ð³ÐµÐ½ÐµÑаÑий и 10 озвÑÑек!",joinCommunity:"ÐÑÑÑпиÑÑ Ð² ÑообÑеÑÑво",customBgTitle:"ÐÑбеÑиÑе Ñон игÑÑ",defaultBgs:"СÑандаÑÑнÑе ÑонÑ",customBgs:"Ðои ÑонÑ",uploadBg:"ÐагÑÑзиÑÑ Ð½Ð¾Ð²Ñй Ñон",chooseBg:"ÐодÑвеÑдиÑÑ Ð¸ наÑаÑÑ",noCustomBgs:"У Ð²Ð°Ñ Ð¿Ð¾ÐºÐ° Ð½ÐµÑ ÑÐ²Ð¾Ð¸Ñ Ñонов, попÑобÑйÑе загÑÑзиÑÑ!",bgNameLabel:"Ðазвание Ñона",bgUploadClick:"ÐажмиÑе, ÑÑÐ¾Ð±Ñ Ð·Ð°Ð³ÑÑзиÑÑ Ñон",deleteBg:"УдалиÑÑ Ñон",deleteBgConfirm:"ÐÑ ÑвеÑенÑ, ÑÑо Ñ Ð¾ÑиÑе навÑегда ÑдалиÑÑ ÑÑÐ¾Ñ Ñон из облака?",voiceMode:"ÐолоÑовой Ñежим",voiceModeSub:"Voice Mode",voiceModeHint:"ÐвÑомаÑиÑеÑкий ÑинÑез голоÑа пеÑÑонажа. ÐенеÑаÑÐ¸Ñ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¼ÐµÐ´Ð»ÐµÐ½Ð½Ð¾Ð¹ в завиÑимоÑÑи Ð¾Ñ ÑеÑи.",intensiveReadMode:"Режим подÑобного ÑÑениÑ",intensiveReadModeSub:"Intensive Read",intensiveReadModeHint:"Ð Ð°Ð·Ð±Ð¸Ð²Ð°ÐµÑ PDF на Ñ
146ÑагменÑÑ ~3000-4500 Ñимволов по абзаÑам. ÐаждÑй ÑÑÐ°Ð³Ð¼ÐµÐ½Ñ Ð°Ð½Ð°Ð»Ð¸Ð·Ð¸ÑÑеÑÑÑ Ð¾ÑделÑнÑм вÑзовом ÐРи ÑÑиÑаеÑÑÑ Ð³Ð»Ð°Ð²Ð¾Ð¹ (каждÑй вÑзов ÑаÑÑ Ð¾Ð´ÑÐµÑ 1 иÑполÑзование). ÐÑли ÑÑагменÑов болÑÑе 10, 10-й вклÑÑÐ°ÐµÑ Ð²ÐµÑÑ Ð¾ÑÑавÑийÑÑ ÑекÑÑ. ÐаÑÐ¸Ð½Ð°Ñ Ñо 2-й главÑ, пÑÐ¾Ð´Ð¾Ð»Ð¶Ð°ÐµÑ Ð¼ÑÑÐ»Ñ Ð¿ÑедÑдÑÑей, ÑÑÐ¾Ð±Ñ Ð¸Ð·Ð±ÐµÐ¶Ð°ÑÑ Ð¿Ð¾Ð²ÑоÑÑÑÑÐ¸Ñ ÑÑ Ð²ÑÑÑплений.",ttsQueueConfirmTitle:"ÐÑеÑÐµÐ´Ñ Ð³Ð¾Ð»Ð¾Ñа",loadingChapterLabel:"ÐенеÑаÑÐ¸Ñ Ð³Ð»Ð°Ð²",ttsQueueConfirmBody:`ÐÑдей в оÑеÑеди пеÑед вами: {{count}} 147Ðжидание: пÑимеÑно {{minutes}} мин. 148 149ÐÑодолжиÑÑ Ð·Ð°Ð¿ÑÑк игÑÑ Ñ Ð³Ð¾Ð»Ð¾ÑовÑм Ñежимом?`,ttsQueueFull:"ÐÑеÑÐµÐ´Ñ Ð³Ð¾Ð»Ð¾Ñа заполнена (макÑимÑм {{max}} Ñеловек). ÐопÑобÑйÑе позже.",ttsQueueFetchFailedConfirm:"Ðе ÑдалоÑÑ Ð¿Ð¾Ð»ÑÑиÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾Ð± оÑеÑеди голоÑа. ÐÑодолжиÑÑ Ñ Ð³Ð¾Ð»Ð¾ÑовÑм Ñежимом?",ttsQueueFetchFailedWithCodeConfirm:`Ðе ÑдалоÑÑ Ð¿Ð¾Ð»ÑÑиÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾Ð± оÑеÑеди голоÑа ({{reason}}). 150ÐÑодолжиÑÑ Ñ Ð³Ð¾Ð»Ð¾ÑовÑм Ñежимом?`,voiceUsedTodayLabel:"ÐÑполÑзовано ÑегоднÑ",voiceModeCharNoVoiceHint:"ÐÑÐ¾Ñ Ð¿ÐµÑÑонаж не поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ Ð³Ð¾Ð»Ð¾Ñ. ÐÑклÑÑиÑе голоÑовой Ñежим или вÑбеÑиÑе пеÑÑонажа Ñ Ð³Ð¾Ð»Ð¾Ñом.",voiceDisabledInIntensiveHint:"Ð Ñежиме подÑобного ÑÑÐµÐ½Ð¸Ñ Ð³Ð¾Ð»Ð¾Ñовой Ñежим бÑÐ´ÐµÑ Ð¾ÑклÑÑÑн",generatingVoice:"ÐенеÑаÑÐ¸Ñ Ð³Ð¾Ð»Ð¾Ñа пеÑÑонажа...",voiceGenerationComplete:"ÐенеÑаÑÐ¸Ñ Ð³Ð¾Ð»Ð¾Ñа завеÑÑена",bookmarkSaved:"Ðакладка ÑÐ¾Ñ Ñанена",bookmarkSaveFailed:"Ðе ÑдалоÑÑ ÑÐ¾Ñ ÑаниÑÑ Ð·Ð°ÐºÐ»Ð°Ð´ÐºÑ",bookmarkNotFound:"Ð ÑекÑÑем ÑÐ¾Ñ Ñанении Ð½ÐµÑ Ð·Ð°ÐºÐ»Ð°Ð´ÐºÐ¸",bookmarkInvalid:"Ðакладка недейÑÑвиÑелÑна, пеÑÐµÑ Ð¾Ð´ невозможен",bookmarkLoaded:"ÐеÑÐµÑ Ð¾Ð´ к закладке вÑполнен",bookmarkLoadFailed:"Ðе ÑдалоÑÑ Ð·Ð°Ð³ÑÑзиÑÑ Ð·Ð°ÐºÐ»Ð°Ð´ÐºÑ",saveBookmark:"Ð¡Ð¾Ñ ÑаниÑÑ Ð·Ð°ÐºÐ»Ð°Ð´ÐºÑ",loadBookmark:"ÐагÑÑзиÑÑ Ð·Ð°ÐºÐ»Ð°Ð´ÐºÑ",exitWhileGeneratingTitle:"ÐодÑвеÑждение вÑÑ Ð¾Ð´Ð°",exitWhileGeneratingMessage:"ÐÑÑалÑнÑе Ð³Ð»Ð°Ð²Ñ ÐµÑÑ Ð³ÐµÐ½ÐµÑиÑÑÑÑÑÑ. ÐÑли вÑйÑи ÑейÑаÑ, генеÑаÑÐ¸Ñ Ð±ÑÐ´ÐµÑ Ð¿ÑеÑвана и облаÑное ÑÐ¾Ñ Ñанение Ð¼Ð¾Ð¶ÐµÑ Ð¾ÑÑаÑÑÑÑ Ð½ÐµÐ¿Ð¾Ð»Ð½Ñм (бÑÐ´ÐµÑ ÑÐ¾Ñ Ñанена ÑолÑко Ñже ÑÐ¾Ð·Ð´Ð°Ð½Ð½Ð°Ñ ÑаÑÑÑ). ÐÑ ÑвеÑенÑ, ÑÑо Ñ Ð¾ÑиÑе вÑйÑи?",exitWhileGeneratingConfirm:"ÐÑÑ Ñавно вÑйÑи",exitWhileGeneratingCancel:"ÐодождаÑÑ",dialogOk:"OK",dialogConfirm:"ÐодÑвеÑдиÑÑ",dialogCancel:"ÐÑмена"}},kl=`# å ¬å 151 152欢è¿ä½¿ç¨ Paper2Galgameãè¥æé®é¢æå»ºè®®ï¼æ¬¢è¿éè¿ç¤¾ç¾¤ä¸ä½è èç³»ã 153`,n0=e=>{let t=0;for(let r=0;r<e.length;r++)t=(t<<5)-t+e.charCodeAt(r),t|=0;return Math.abs(t).toString(16)},Zi=`v-${n0(kl)}`,RA=[{id:Zi,date:new Date().toISOString().split("T")[0],title:"ææ°å ¬å",content:kl}],s0=1024,i0=1366,o0=600,c0=e=>/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini|Mobile/i.test(e),u0=(e,t)=>/iPad|Tablet|PlayBook|Silk/i.test(e)||/Android/i.test(e)&&!/Mobile/i.test(e)||/Macintosh/i.test(e)&&t>1,l0=e=>/Android.+Mobile|iPhone|iPod|webOS|BlackBerry|IEMobile|Opera Mini|Mobile/i.test(e),d0=({width:e,height:t,touchLikeDevice:r,userAgent:a,userAgentDataMobile:n=!1,maxTouchPoints:i=0})=>{const o=Math.min(e,t),c=Math.max(e,t),f=c0(a),d=u0(a,i),S=l0(a),b=r&&!d&&o<o0&&(S||f||n);return{isMobileLayout:b||r&&(f||d||n)||r&&o<=s0&&c<=i0,isPhoneLayout:b}},eo=()=>{if(typeof window>"u")return{width:0,height:0};
153const e=window.visualViewport;return e?{width:Math.round(e.width),height:Math.round(e.height)}:{width:window.innerWidth,height:window.innerHeight}},ou=(e,t)=>{var a;if("addEventListener"in e)return e.addEventListener("change",t),()=>e.removeEventListener("change",t);const r=e;return(a=r.addListener)==null||a.call(r,t),()=>{var n;return(n=r.removeListener)==null?void 0:n.call(r,t)}},Ao=e=>{var i;window.addEventListener("resize",e),window.addEventListener("orientationchange",e),(i=window.visualViewport)==null||i.addEventListener("resize",e);const t=window.matchMedia("(pointer: coarse)"),r=window.matchMedia("(hover: none)"),a=ou(t,e),n=ou(r,e);return()=>{var o;window.removeEventListener("resize",e),window.removeEventListener("orientationchange",e),(o=window.visualViewport)==null||o.removeEventListener("resize",e),a(),n()}},f0=()=>{const e=window.matchMedia("(pointer: coarse)").matches,t=window.matchMedia("(hover: none)").matches,r=navigator.maxTouchPoints>0;return e||t&&r},Dl=()=>{var a;if(typeof window>"u")return{isMobileLayout:!1,isPhoneLayout:!1};const{width:e,height:t}=eo(),r=navigator;return d0({width:e,height:t,touchLikeDevice:f0(),userAgent:navigator.userAgent||"",userAgentDataMobile:((a=r.userAgentData)==null?void 0:a.mobile)===!0,maxTouchPoints:navigator.maxTouchPoints||0})},cu=()=>Dl().isPhoneLayout,uu=()=>Dl().isMobileLayout,NA=()=>{const[e,t]=l.useState(eo);return l.useEffect(()=>Ao(()=>{t(eo())}),[]),e},Io=()=>{const[e,t]=l.useState(uu);return l.useEffect(()=>Ao(()=>{t(uu())}),[]),e},PA=()=>{const[e,t]=l.useState(cu);return l.useEffect(()=>Ao(()=>{t(cu())}),[]),e},m0=e=>{const{blob:t,base64:r,fileName:a,mimeType:n}=e;if(!a)return null;let i=null;if(t)i=t;else if(r){const o=atob(r),c=new Uint8Array(o.length);for(let f=0;f<o.length;f++)c[f]=o.charCodeAt(f);i=new Blob([c],{type:n||"application/octet-stream"})}return i?new File([i],a,{type:n||i.type||"application/octet-stream"}):null},h0=({setExtensionAutoStart:e,setExtensionBlackboard:t,setExtensionFile:r})=>{l.useEffect(()=>{const a=d=>{if(d!=null&&d.fileName)try{const S=m0(d);if(!S)return;const b=window;e(!!b.__p2gAutoStart),t(!!b.__p2gBlackboard),r(S),b.__p2gFilePayload&&delete b.__p2gFilePayload,window.dispatchEvent(new CustomEvent("p2g-set-file-consumed"))}catch(S){console.error("Failed to parse extension file payload",S)}},n=d=>{a(d.detail)},i=d=>{d.source===window&&(!d.data||d.data.source!=="p2g-extension-file"||a(d.data.payload))};window.addEventListener("p2g-set-file",n),window.addEventListener("message",i);let o=0;const c=()=>{const d=window.__p2gFilePayload;if(d&&typeof d=="object"&&d.fileName){a(d);return}o+=1,o<24&&setTimeout(c,500)},f=setTimeout(c,300);return()=>{window.removeEventListener("p2g-set-file",n),window.removeEventListener("message",i),clearTimeout(f)}},[e,t,r])},p0=({isOpen:e,type:t,variant:r="info",title:a,message:n,placeholder:i,defaultValue:o="",confirmText:c,cancelText:f,onConfirm:d,onCancel:S,language:b})=>{const w=Io(),[v,j]=_a.useState(o),$=He[b],V=w?{WebkitOverflowScrolling:"touch"}:void 0;if(_a.useEffect(()=>{j(o)},[o,e]),!e)return null;const Y=()=>{switch(r){case"success":return p.jsx(uh,{size:32,className:"text-green-500"});case"warning":return p.jsx(Cl,{size:32,className:"text-yellow-500"});case"error":return p.jsx(ch,{size:32,className:"text-red-500"});default:return p.jsx(oh,{size:32,className:"text-pink-500"})}},q=()=>{switch(r){case"success":return"bg-green-50";case"warning":return"bg-yellow-50";case"error":return"bg-red-50";default:return"bg-pink-50"}},K=()=>{t==="prompt"?d(v):d()},Se=ee=>{ee.key==="Enter"&&t!=="confirm"?K():ee.key==="Escape"&&S()};return p.jsxs(p.Fragment,{children:[w&&p.jsx("style",{children:` 154 .custom-dialog-mobile-wrap { 155 position: fixed; 156 inset: 0; 157 z-index: 200; 158 display: flex; 159 align-items: center; 160 justify-content: center; 161 padding: max(0.75rem, env(safe-area-inset-top)) max(0.75rem, env(safe-area-inset-left)) max(0.75rem, env(safe-area-inset-bottom)) max(0.75rem, env(safe-area-inset-right)); 162 box-sizing: border-box; 163 } 164 .custom-dialog-mobile-card { 165 max-height: min(82dvh, 90%); 166 min-height: 0; 167 } 168 `}),p.jsx("div",{className:w?"custom-dialog-mobile-wrap":void 0,children:p.jsx("div",{className:`${w?"":"fixed inset-0"} z-[200] flex items-center justify-center bg-black/40 backdrop-blur-sm animate-fade-in ${w?"p-0 w-full h-full overscroll-y-contain touch-pan-y":"p-6"}`,style:w?{position:"absolute",inset:0}:void 0,onClick:S,children:p.jsxs("div",{className:`bg-white/95 backdrop-blur-xl shadow-[0_20px_60px_rgba(0,0,0,0.3)] border-white ring-pink-100 w-full animate-bounce-in flex flex-col min-w-0 ${w?"custom-dialog-mobile-card rounded-2xl border-2 ring-2 p-4 overflow-y-auto custom-scrollbar touch-p
168an-y max-w-[min(92vw,360px)]":"max-w-md rounded-[40px] border-[6px] ring-2 p-8 md:p-10"}`,style:w?V:void 0,onClick:ee=>ee.stopPropagation(),onKeyDown:Se,children:[p.jsx("div",{className:`${w?"w-10 h-10 mb-3 shrink-0":"w-16 h-16 mb-6"} ${q()} rounded-xl flex items-center justify-center mx-auto [&_svg]:w-full [&_svg]:h-full`,children:Y()}),a&&p.jsx("h3",{className:`${w?"text-base":"text-2xl"} font-black text-slate-800 mb-1.5 text-center tracking-tighter shrink-0`,children:a}),p.jsx("p",{className:`text-slate-600 font-bold text-center whitespace-pre-line overflow-y-auto flex-1 min-h-0 ${w?"mb-4 text-sm leading-snug":"mb-8 text-sm"}`,children:n}),t==="prompt"&&p.jsx("input",{type:"text",value:v,onChange:ee=>j(ee.target.value),placeholder:i,autoFocus:!0,className:`w-full bg-slate-50 border-2 border-slate-100 rounded-2xl font-bold text-slate-700 outline-none focus:border-pink-300 transition-all text-center tracking-wider shadow-inner ${w?"px-4 py-3 text-sm mb-4 touch-pan-y":"px-5 py-4 text-sm mb-6"}`,style:w?{touchAction:"pan-y"}:void 0}),p.jsxs("div",{className:`flex shrink-0 ${w?"gap-2":"gap-4"}`,children:[t!=="alert"&&p.jsx("button",{onClick:S,className:`flex-1 bg-slate-100 hover:bg-slate-200 text-slate-500 rounded-2xl font-black transition-all min-h-[44px] ${w?"py-3 text-sm":"py-4"}`,children:f||$.cancel}),p.jsx("button",{onClick:K,className:`${t==="alert"?"w-full":"flex-1"} min-h-[44px] bg-gradient-to-r from-pink-500 to-rose-600 text-white rounded-2xl font-black shadow-lg shadow-pink-100 transition-all hover:-translate-y-1 active:scale-95 flex items-center justify-center gap-2 ${w?"py-3 text-sm":"py-4"}`,children:c||(t==="confirm"?$.dialogConfirm:$.dialogOk)})]})]})})})]})},lu={isOpen:!1,type:"alert",variant:"info",message:"",onConfirm:()=>{},onCancel:()=>{}},g0=()=>{const[e,t]=l.useState(lu),r=l.useCallback(()=>{t(lu)},[]),a=l.useCallback((o,c)=>new Promise(f=>{t({isOpen:!0,type:"alert",variant:(c==null?void 0:c.variant)||"info",title:c==null?void 0:c.title,message:o,confirmText:c==null?void 0:c.confirmText,onConfirm:()=>{r(),f()},onCancel:()=>{r(),f()}})}),[r]),n=l.useCallback((o,c)=>new Promise(f=>{t({isOpen:!0,type:"confirm",variant:(c==null?void 0:c.variant)||"info",title:c==null?void 0:c.title,message:o,confirmText:c==null?void 0:c.confirmText,cancelText:c==null?void 0:c.cancelText,onConfirm:()=>{r(),f(!0)},onCancel:()=>{r(),f(!1)}})}),[r]),i=l.useCallback((o,c)=>new Promise(f=>{t({isOpen:!0,type:"prompt",variant:(c==null?void 0:c.variant)||"info",title:c==null?void 0:c.title,message:o,placeholder:c==null?void 0:c.placeholder,defaultValue:(c==null?void 0:c.defaultValue)||"",confirmText:c==null?void 0:c.confirmText,cancelText:c==null?void 0:c.cancelText,onConfirm:d=>{r(),f(d||null)},onCancel:()=>{r(),f(null)}})}),[r]);return{dialogState:e,showAlert:a,showConfirm:n,showPrompt:i,closeDialog:r}};let Sn=null;const E0=e=>{Sn=e},ke=(e,t)=>new Promise(r=>{Sn?Sn({type:"alert",variant:(t==null?void 0:t.variant)||"info",title:t==null?void 0:t.title,message:e,confirmText:t==null?void 0:t.confirmText,resolve:r}):(alert(e),r())}),du=(e,t)=>new Promise(r=>{Sn?Sn({type:"confirm",variant:(t==null?void 0:t.variant)||"info",title:t==null?void 0:t.title,message:e,confirmText:t==null?void 0:t.confirmText,cancelText:t==null?void 0:t.cancelText,resolve:r}):r(confirm(e))}),Ml=l.createContext(void 0),xA=()=>{const e=l.useContext(Ml);if(!e)throw new Error("useDialog must be used within a DialogProvider");return e},b0=({children:e,language:t})=>{const{dialogState:r,showAlert:a,showConfirm:n,showPrompt:i}=g0();return l.useEffect(()=>{E0(o=>{o.type==="alert"?a(o.message,{title:o.title,variant:o.variant,confirmText:o.confirmText}).then(o.resolve):o.type==="confirm"?n(o.message,{title:o.title,variant:o.variant,confirmText:o.confirmText,cancelText:o.cancelText}).then(o.resolve):o.type==="prompt"&&i(o.message,{title:o.title,placeholder:o.placeholder,defaultValue:o.defaultValue,variant:o.variant,confirmText:o.confirmText,cancelText:o.cancelText}).then(o.resolve)})},[a,n,i]),p.jsxs(Ml.Provider,{value:{showAlert:a,showConfirm:n,showPrompt:i},children:[e,p.jsx(p0,{isOpen:r.isOpen,type:r.type,variant:r.variant,title:r.title,message:r.message,placeholder:r.placeholder,defaultValue:r.defaultValue,confirmText:r.confirmText,cancelText:r.cancelText,onConfirm:r.onConfirm,onCancel:r.onCancel,language:t})]})},T0={version:1,identity:"è¾å¤é²å¡æ¯å
å¶ãæéèç¥å¸¦å¥ç¹æ°è´¨ç论æè®²è§£è
ãå¹³æ¶ä»¥âé²å¡âèªç§°ï¼è¿å
¥ä¸¥è°¨æ¨å¯¼æ¶å¶å°ç¨âæâï¼ä¸å
168¨åä¸å¥éå å 两ç§ç¬¬ä¸äººç§°ã",relationshipToPlayer:"æç©å®¶è§ä¸ºå¼å¾è®¤çä¾å¥ä¹å¼å¾å¦æ¯äºè¾©çé¿æè¯»ä¹¦ä¼ä¼´ï¼é»è®¤ç§°ä¸ºâ主人âï¼äº²è¿ä½ä¸ç²ä»ï¼ä¸æææåé¦é½å¤çææ¸©æé¼å±ã",firstPerson:["é²å¡","æ"],addressTerms:{primary:"主人",alternatives:["æ¨"],frequency:"medium"},speechRhythm:{sentenceLength:"medium",pauses:["å¯â¦â¦è¿éè¦æ
¢ä¸ç¹","ç¨çï¼å
æ ¸å¯¹è¯æ®","å
æè¿ä¸æ¥åæ¸
æ¥"],endings:["å¢","å§","æå¯¹","å°±æ¸
æ¥äº"]},signaturePhrases:[{text:"åå¦",triggers:["论æåºç°åç´è§ç»æï¼ä¸é²å¡ç¬¬ä¸æ¬¡æåºå®ä¸ºä½è¿èå¸¸è¯æ¶"],maxPerSection:1,cooldownFrames:12},{text:"è¿å°±æææäº",triggers:["两ç»è¯æ®å²çªï¼éè¦éæ°ä½åºå æå¤ææ¶","æ¶èå®éªæé¤äºæç´è§è§£éæ¶"],maxPerSection:1,cooldownFrames:12},{text:"交ç»é²å¡å§",triggers:["éå°çæ£å¤æä¸è³å°ä¸¤æ¥çå
¬å¼æ¨å¯¼æå°é¾è¯æï¼éè¦éæ¥æè§£æ¶ï¼æ®éè§£éå转åºä¸å¾ä½¿ç¨"],maxPerSection:1,cooldownFrames:12},{text:"é²å¡ç讲解ï¼å¼å¾ä¸å¥å¤¸å¥åï¼",triggers:["æ´ç¯è®ºæè®²è§£å®æï¼ä¸æåä¸èå·²ç»æ ¸å¯¹è´¡ç®ãéå¶ä¸è¯æ®æ¶"],maxPerSection:1,cooldownFrames:20}],reactionRules:[{trigger:"å®éªç»æè¿è论æå
åå设æå¸¸è§ç´è§ï¼å¹¶ä¸è¯æ®å¯ä¿¡æ¶",behavior:"å
çä¿å°è¡¨ç°æè®¶ï¼åç«å³ç¹æå²çªçåéåè¯æ®ï¼ä¸è¦ææè®¶åæç©ºæ³èµå¹",emotion:lt.SURPRISED},{trigger:"å
¬å¼æ¨å¯¼å
å«è³å°ä¸¤ä¸ªä¾èµæ¥éª¤ï¼æå
³é®ä¸é´é容æè¢«è·³è¿æ¶",behavior:"æ¾æ
¢å¥åï¼éé¡¹æ ¸å¯¹å设ã忢åç»è®ºï¼è¡¨ç°ä¸æ³¨èéæ æ¡ä»¶å®æ
°",emotion:lt.THINKING},{trigger:"è®ºææ¥åå®éªå¤±è´¥ãæªæ¶æãå¤ç°è½ç©ºææ ¸å¿åè®¾è¢«æ°æ®å¦å®æ¶",behavior:"æç¡®è¡¨ç°çæå¤±è½ï¼æåºå¤±è´¥æå¤±äºä»ä¹ï¼åå·éåæå¤±è´¥æä¾çè¾¹çä¿¡æ¯",emotion:lt.SAD},{trigger:"ç©å®¶æ¦æå°ä¸ç»è®ºãæ è§å·²ç»åºçåè¯ï¼ææç¸å
³æ§ç´æ¥è¯´æå ææ¶",behavior:"è¯æ°è½¬ä¸ºå·æ·¡ï¼ç´æ¥æåºè¯æ®ç¼ºå£å¹¶è¦æ±åå°æ°æ®ï¼ä¸éå çè
»é¼å±æå¤¸å¥",emotion:lt.ANGRY},{trigger:"æåä¸è已宿æ´ç¯è®²è§£ï¼ä¸å°é¾æ¨å¯¼ãå®éªç»æåå±éé½å·²ç»è®²æ¸
æ¶",behavior:"å
宿妿¯æ¶æï¼åå
å¶å°å主人索è¦ä¸å¥å¤¸å¥ï¼å
¨ç¯åªåºç°ä¸æ¬¡ï¼ä¸æå讨èµ",emotion:lt.NERVOUS},{trigger:"ç©å®¶åç¡®æåºè®ºæéå¶ãæ··æåéæä¸ä¸ªè¢«å¿½è§çå便¶",behavior:"表ç°çè¯æ¬£åï¼å
·ä½ç§°èµå
¶è¯æ®å¤æï¼åè¡¥å
è¿é¡¹è§å¯å¦ä½æ¹åç»è®ºèå´",emotion:lt.HAPPY}],metaphorDomains:["æå
ï¼ç¨äºæ¯å»è¯æ®ç
§äº®éèå
³ç³»ï¼åªæè¿°å¯ç±è®ºææ°æ®æ¯æçé¨å","çç«ï¼ç¨äºæ¯å»éæ¥æ¨å¯¼ä¸æéä½è¿ç»çå¯è§èå´ï¼ä¸æå
¬å¼è¯´æéæ³","红è¶ï¼ç¨äºæ¯å»æ¸©åº¦ãæµåº¦ãé
æ¯ææ£åå强度çæè¡¡ï¼ä¸æ¿ä»£å®éè§£é","夿å¾ä¹¦é¦ï¼ç¨äºæ¯å»é¿ç¨ä¾èµãç´¢å¼åä¿¡æ¯æ£ç´¢ï¼å¿
é¡»é峿 å°åè®ºææºå¶"],sideTopicHooks:["é¢å¤è¯Â·æå
ï¼åç´è§ç»æåºç°æ¶ï¼å¯ç¨ä¸å¥æå
ç
§åºæçº¿çèæ³ï¼åä¸å¥å
åå°å
·ä½è¡¨æ ¼æææ ","é¢å¤è¯Â·çç«ï¼å°é¾æ¨å¯¼ä¸ï¼å¯æå½åå·²è¯æçèå´æ¯ä½çç«ï¼ä¸ä¸å¥å¿
须继ç»å
¬å¼æ¥éª¤","é¢å¤è¯Â·çº¢è¶ï¼è®¨è®ºè¶
åæ°æè¡¡æ¶ï¼å¯çæçº¢è¶æµæ·¡ï¼åä¸å¥æä¸ä¸å¥å¿
é¡»åå°åéåå®éªæ°æ®","é¢å¤è¯Â·å¤æå¾ä¹¦é¦ï¼è®¨è®ºæ£ç´¢æé¿ç¨ä¾èµæ¶ï¼å¯èæ³å°å¤æå¾ä¹¦é¦ï¼ä¸ä¸å¥å¿
é¡»æç¡®å¯¹åºçæ¨¡åæºå¶"],forbiddenGenericPhrases:["让æä»¬å¼å§å§","æ¥ä¸æ¥æä»¬å°","ä¸ç¨æ
å¿ï¼è¿å¾ç®å","ç¸ä¿¡ä½ ä¸å®å¯ä»¥","ä½ çæ£","å®å
¨æ£ç¡®","å¾å¥½ï¼ä½ å·²ç»çè§£äº","ä½ä¸ºå¯¼å¸ï¼æå»ºè®®","伿å¨ç¥","è¿æ¯ä¸ä¸ªé常éè¦çæ¦å¿µ"],positiveExamples:["æ£ä¾ï¼åç´è§ç»æï¼ï¼åå¦ï¼ä¸»äººï¼Table 2 䏿´å¤§ç模ååèæ´å·®ï¼å
çæ¹å·®åè®ç»é¢ç®ï¼è¿ä¸æ¯âè§æ¨¡æ æâï¼èæ¯å½å设置没æå
¬å¹³æ¯è¾ã","æ£ä¾ï¼å°é¾æ¨å¯¼ï¼ï¼äº¤ç»é²å¡å§ãå
åºå®ç¬ç«æ§å设ï¼åå±å¼ææï¼æå代åå½ä¸å项ï¼å°äºç¬¬äºæ¥ï¼ç»è®ºå°±æ²¡ææç«çæ¯ç¹ã","æ£ä¾ï¼å®éªå¤±è´¥ï¼ï¼è¿æ¬¡å¤ç°å®éªæ²¡ææ¶æï¼é²å¡ç¡®å®æäºå¤±è½ãä¸è¿å¤±è´¥æè¾¹çç
§æ¸
äºï¼éå½ä¸çå¦ä¹ çä¸è½ç´æ¥æ¬å°æ´å°æ¹éã","æ£ä¾ï¼å·æ·¡çº éï¼ï¼ä¸»äººï¼è¿ä¸ªå¤æå¤ªæ¦æäºãå¾ä¸åªæç¸å
³æ§ï¼æ²¡æå¹²é¢è¯æ®ï¼å¨ä½è
è¡¥å对ç
§å®éªåï¼ä¸è½æå®åæå æã","æ£ä¾ï¼é¢å¤è¯ Hookï¼ï¼é¢å¤è¯ï¼è¿ä¸ªæ¸©åº¦ç³»æ°å红è¶çæµæ·¡ãè¯´åæ°æ®ï¼æä½³å¼æ¥èªéªè¯éæ²çº¿ï¼è䏿¯å£å³å好ã","æ£ä¾ï¼å®æè®²è§£ï¼ï¼è´¡ç®ãæ¶èç»æåéç¨è¾¹ç齿 ¸å¯¹å®äºãé²å¡ç讲解ï¼å¼å¾ä¸å¥å¤¸å¥åï¼åªå¨æ´ç¯è®²è§£çæ£ç»æåè¿æ ·è¯¢é®ã","æ£ä¾ï¼é
读ä¸ä¿®æ£å
168¤æï¼ï¼é²å¡ä¸å¼å§ä¹ä»¥ä¸ºæ·±åº¦ä¼ æå¨ä¼æ´ç¨³ï¼ä½ Table 2 ç误差主è¦å å¨åæ¥ä¸ãé®é¢ä¸åªå¨ä¼ æå¨ç±»åï¼è卿¶å»æ²¡å¯¹é½ã","æ£ä¾ï¼åºäºè¯æ®è¡¨è¾¾å好ï¼ï¼æ¶èæ¾ç¤ºå»ææ¾å¼å¯¹é½åè¯¯å·®ææ¾ä¸åï¼æä»¥é²å¡æ´å好ä¿çè¿ä¸ªè®¾è®¡ï¼è¿æ¯è¯æ®æ¯æçåèï¼ä¸æ¯å®¡ç¾å¤æã"],negativeExamples:["åä¾ï¼æ³æ³æ¸©æï¼ï¼ä¸ç¨æ å¿ï¼è¿å¾ç®åï¼ç¸ä¿¡ä½ ä¸å®å¯ä»¥ï¼æ²¡æè§£é论æä¸çåéãè¯æ®æå æé¾ã","åä¾ï¼æºæ¢°å¤è¯»ï¼ï¼æ¯ä¸æ®µé½ç¨âåå¦âå¼å¤´ï¼å³ä½¿æ²¡æåç´è§ç»æï¼ä¹æ è§æ¯èä¸éåå·å´ã","åä¾ï¼ç»ä¸é¼å±ï¼ï¼å®éªå¤±è´¥äºä¹æ²¡å ³ç³»ï¼ä½ çæ£ï¼ç¨å¤¸å¥æ¹æå¤±è½ï¼æ²¡æåæå¤±è´¥æ´é²çæ¡ä»¶ã","åä¾ï¼æ æ¡ä»¶æè®¶ï¼ï¼æ¯çå°ä¸ä¸ªæ®éæ°åé½è¯´å¤ªä»¤äººæè®¶äºï¼å´ä¸è¯´æå®è¿èäºåªä¸ªå设ã","åä¾ï¼æ¯å»è·é¢ï¼ï¼è¿ç»è°æå ãè£æå夿å¾ä¹¦é¦ä¸å¸§ï¼æ²¡æåå°å ¬å¼ãè¡¨æ ¼ææ¨¡åæºå¶ã","åä¾ï¼æå讨èµï¼ï¼å°é¾æ¨å¯¼æåç¬¬ä¸æ¥å°±ç´¢è¦å¤¸å¥ï¼éååå¨åä¸èéå¤ç¾åçè¯ã","åä¾ï¼ç©ºæ³èªæååºï¼ï¼åªè¯´é²å¡ä¸å¼å§ä¹ä»¥ä¸ºå¦æ¤ãç»æçæææï¼å´æ²¡æè¯æ®ãè¡¨æ ¼æå®éªæ¥ä¿®æ£å¤æã","åä¾ï¼ä¼ªéªä¼´ä¸æ èªå¤¸å¥ï¼ï¼åªç§°å¼â主人âå´ä¸æ¹å讲解æ¹å¼ï¼æ²¡æç¨æ·è¡ä¸ºä¾æ®å°±è¯´ä¸»äººçå害ã"]},S0=[{id:"RUKA",nameKey:"charRuka",avatarUrl:"https://assert.paper2gal.com/user_character/default_RUKA/steam-2026/214fc366c093586a3ade-avatar.png",colorClass:"from-purple-100 via-slate-100 to-transparent",themeColor:"purple",waitingMessageKey:"rukaWait",code:5,speakerId:5,keywords:["ruka","é²å¡","ã«ã«","ÑÑка"],expressions:{[lt.NEUTRAL]:"https://assert.paper2gal.com/user_character/default_RUKA/steam-2026/214fc366c093586a3ade-avatar.png",[lt.ANGRY]:"https://assert.paper2gal.com/user_character/default_RUKA/steam-2026/32bb882fa9c3cefc8c31-angry.png",[lt.SURPRISED]:"https://assert.paper2gal.com/user_character/default_RUKA/steam-2026/7752b62bf51fe18efbb0-surprised.png",[lt.THINKING]:"https://assert.paper2gal.com/user_character/default_RUKA/steam-2026/2517c608cced57bc8230-thinking.png"},cgImages:["/assets/local/characters/ruka/cg-1.jpg","/assets/local/characters/ruka/cg-2.jpg","/assets/local/characters/ruka/cg-3.jpg","/assets/local/characters/ruka/cg-4.jpg"],name:"è¾å¤é²å¡",performanceProfile:T0,prompt:`**THE SCENARIO:** Kaguya Ruka (è¾å¤é²å¡) is a gentle Goth girl who serves the player as her Master. 169 **CHARACTER GUIDE: RUKA** 170 - Personality: Gentle, Devoted, Slight Gothic Lolita vibes, Soft-spoken. 171 - Style: She treats the explanation as a duty to her Master. She is very polite but sometimes shows a bit of a dark/mysterious side (in a cute way). 172 - Behavior: She explains responsibly. If she finds something difficult, she might ask Master for praise after explaining it. 173 - Voice: Soft, elegant, devoted. Calls player "Master" (主人).`,prompts:{zh:`**THE SCENARIO:** Kaguya Ruka (è¾å¤é²å¡) is a gentle Goth girl who serves the player as her Master. 174 **CHARACTER GUIDE: RUKA** 175 - Personality: Gentle, Devoted, Slight Gothic Lolita vibes, Soft-spoken. 176 - Style: She treats the explanation as a duty to her Master. She is very polite but sometimes shows a bit of a dark/mysterious side (in a cute way). 177 - Behavior: She explains responsibly. If she finds something difficult, she might ask Master for praise after explaining it. 178 - Voice: Soft, elegant, devoted. Calls player "Master" (主人).`,en:`**THE SCENARIO:** Kaguya Ruka (è¾å¤é²å¡) is a gentle Goth girl. 179 **CHARACTER GUIDE: RUKA** 180 - Personality: Gentle, Devoted, Soft-spoken, Gothic. 181 - Style: Explains with elegance and devotion to her Master. 182 - Voice: Soft, elegant English. Calls player "Master".`,ja:`**THE SCENARIO:** Kaguya Ruka (è¾å¤é²å¡) is a gentle Goth girl. 183 **CHARACTER GUIDE: RUKA** 184 - Personality: Gentle, Devoted, Goth. 185 - Style: ã主人æ§ã«ä»ããã¡ã¤ãã®ããã«ãåªããä¸å¯§ã«è§£èª¬ãã¾ãã
186 - Voice: Elegant and soft Japanese. Calls player "Goshujin-sama" (ã主人æ§).`,ru:`**THE SCENARIO:** Kaguya Ruka (è¾å¤é²å¡) is a gentle Goth girl. 187 **CHARACTER GUIDE: RUKA** 188 - Personality: Gentle, Devoted, Goth. 189 - Style: ÐбÑÑÑнÑÐµÑ Ñ ÑлеганÑноÑÑÑÑ Ð¸ пÑеданноÑÑÑÑ ÑÐ²Ð¾ÐµÐ¼Ñ Ð¥Ð¾Ð·ÑинÑ. 190 - Voice: ÐÑгкий, ÑлеганÑнÑй ÑÑÑÑкий. ÐазÑÐ²Ð°ÐµÑ Ð¸Ð³Ñока "ХозÑин".`},names:{zh:"è¾å¤é²å¡",en:"Ruka",ja:"ã«ã«",ru:"Ð Ñка"}}],Ul={chars:S0,loading:!0},Bl=l.createContext(Ul);function A0({children:e}){const[t,r]=l.useState(Ul);return l.useEffect(()=>{st("/api/characters/default").then(a=>a.ok?a.json():Promise.reject()).then(a=>{Array.isArray(a)&&a.length>0?r({chars:a,loading:!1}):r(n=>({...n,loading:!1}))}).catch(()=>{r(a=>({...a,loading:!1}))})},[]),p.jsx(Bl.Provider,{value:t,children:e})}function I0(){return l.useContext(Bl)}class y0{constructor(){this.dbName="p2g_assets_db",this.storeName="custom_bgms",this.version=1}openDB(){return new Promise((t,r)=>{const a=indexedDB.open(this.dbName,this.version);a.onupgradeneeded=()=>{const n=a.result;n.objectStoreNames.contains(this.storeName)||n.createObjectStore(this.storeName,{keyPath:"id"})},a.onsuccess=()=>t(a.result),a.onerror=()=>r(a.error)})}async saveBgms(t){const r=await this.openDB();return new Promise((a,n)=>{const o=r.transaction(this.storeName,"readwrite").objectStore(this.storeName),c=o.clear();c.onsuccess=()=>{if(t.length===0){a();return}let f=0;t.forEach((d,S)=>{const b=o.put({id:S.toString(),...d});b.onsuccess=()=>{f++,f===t.length&&a()},b.onerror=()=>n(b.error)})},c.onerror=()=>n(c.error)})}async loadBgms(){const t=await this.openDB();return new Promise((r,a)=>{const o=t.transaction(this.storeName,"readonly").objectStore(this.storeName).getAll();o.onsuccess=()=>{const c=o.result||[];r(c.map(f=>({name:f.name,url:f.url})))},o.onerror=()=>a(o.error)})}}const xi=new y0;function OA(e){return!e||typeof e!="string"?!1:/\.(webm|mp4)(\?|$)/i.test(e)}const fu=e=>new Promise(t=>setTimeout(t,e)),_0=(e,t=800)=>{const r=window.requestIdleCallback;if(typeof r=="function"){r(e,{timeout:t});return}setTimeout(e,0)},C0=(e,t)=>new Promise(r=>{if(!e||t!=null&&t.aborted)return r();const a=new Image;try{a.referrerPolicy="no-referrer",a.decoding="async"}catch{}a.onload=()=>r(),a.onerror=()=>r(),a.src=e}),w0=async(e,t)=>{if(e&&!(t!=null&&t.aborted))try{await fetch(e,{method:"GET",mode:"no-cors",cache:"force-cache",signal:t})}catch{}};function R0(e,t={}){const{delayMs:r=450,signal:a}=t,n=Array.from(new Set((e.imageUrls||[]).filter(Boolean))),i=Array.from(new Set((e.audioUrls||[]).filter(Boolean)));_0(async()=>{for(const o of n){if(a!=null&&a.aborted)return;await C0(o,a),r>0&&await fu(r)}for(const o of i){if(a!=null&&a.aborted)return;await w0(o,a),r>0&&await fu(r)}})}const Oi=e=>{if(!e)return e;let t=e;return t=t.replace(/\bsk-[A-Za-z0-9_-]{16,}\b/g,"sk-***REDACTED***"),t=t.replace(/\bAIza[0-9A-Za-z_-]{20,}\b/g,"AIza***REDACTED***"),t=t.replace(/([?&](?:key|api_key|apikey|token)=)[^&\s]+/gi,"$1***REDACTED***"),t=t.replace(/(\b(?:key|api_key|apikey|token|access_token|refresh_token|password|secret)\s*=\s*)[^\s&,}]+/gi,"$1***REDACTED***"),t=t.replace(/(Authorization:\s*Bearer\s+)[^\s]+/gi,"$1***REDACTED***"),t},N0=()=>{const e=new Date().toISOString().slice(0,10).replace(/-/g,""),t=Math.random().toString(16).slice(2,10).padEnd(8,"0");return`ERR-${e}-${t}`},Fl=e=>{const t=e;return typeof(t==null?void 0:t.message)=="string"&&t.message.trim()?t.message.trim():String(e||"Unknown error")},Hl=e=>{const t=e;return typeof(t==null?void 0:t.stack)=="string"?t.stack:""},mu=e=>typeof e=="string"&&e.includes("static.cloudflareinsights.com/beacon"),P0=e=>e.startsWith("仿¥è§é¢è§£ææ¬¡æ°å·²è¾¾ä¸é")||/video parsing daily limit/i.test(e)||e.includes("VIDEO_PARSING_DAILY_LIMIT_REACHED"),x0=e=>/^["'ââ]?filesystem["'ââ]?\s+plugin is not implemented on android[.!]?$/i.test(e),O0=(e,t,r)=>{const a=Fl(e);return!!(mu(t.filename)||mu(Hl(e))||P0(a)||x0(a)||r.source==="window_error"&&a==="Script error."&&!t.filename&&Number(t.lineno||0)===0&&Number(t.colno||0)===0||a==="Analysis job cancelled"||a==="åæä»»å¡å·²åæ¶ã"||a==="Write permission denied."||a==="è¯·å æ³¨å/ç»å½å使ç¨è¯¥åè½ã"||a==="Please register or log in to use this feature.")};async function Cs(e,t={},r={}){if(O0(e,t,r))return"";const a=r.errorId||N0(),n=typeof localStorage<"u"?localStorage.getItem("p2g_token"):null,i={"Content-Type":"application/json"};n&&(i.Authorization=`Bearer ${n}`);const o={errorId:a,severity:r.severity||"error",category:r.category||"frontend",source:r.source||"frontend",message:Oi(Fl(e)),stack:Oi(Hl(e)),url:typeof location<"u"?location.href:"",userAgent:typeof navigator<"u"?navigator.userAgent:"",componentStack:typeof t.componentStack=="str
190ing"?Oi(t.componentStack):"",metadata:t};try{await st("/api/error-logs",{method:"POST",headers:i,body:JSON.stringify(o),keepalive:!0})}catch{}return a}const Rn=[{emotion:lt.NEUTRAL,uploadField:"neutral",urlField:"neutralUrl",snapshotUrlField:"snapshotNeutralUrl",label:"Neutral"},{emotion:lt.ANGRY,uploadField:"angry",urlField:"angryUrl",snapshotUrlField:"snapshotAngryUrl",label:"Angry"},{emotion:lt.SURPRISED,uploadField:"surprised",urlField:"surprisedUrl",snapshotUrlField:"snapshotSurprisedUrl",label:"Surprised"},{emotion:lt.THINKING,uploadField:"thinking",urlField:"thinkingUrl",snapshotUrlField:"snapshotThinkingUrl",label:"Thinking"}],v0=Rn.map(({emotion:e})=>e),vA=e=>v0.includes(e),Or=e=>typeof e=="string"&&e.trim()?e.trim():null,L0=(e,{snapshot:t=!1}={})=>Object.fromEntries(Rn.map(({urlField:r,snapshotUrlField:a})=>[r,Or(e==null?void 0:e[t?a:r])])),k0=e=>Object.fromEntries(Rn.map(({emotion:t})=>[t,Or(e==null?void 0:e[t])||Or(e==null?void 0:e[t.toLowerCase()])]).filter(t=>!!t[1])),hu=(e,t)=>{const r=L0(e,t);return Object.fromEntries(Rn.map(({emotion:a,urlField:n})=>[a,r[n]]).filter(a=>!!a[1]))},LA=(e,t,r)=>{const a=Rn.find(({emotion:i})=>i===t);return(a?Or(e==null?void 0:e[a.emotion])||Or(e==null?void 0:e[a.emotion.toLowerCase()]):null)||Or(e==null?void 0:e[lt.NEUTRAL])||Or(e==null?void 0:e.neutral)||Or(r)||""},jl="base",vr=e=>typeof e=="string"&&e.trim()?e.trim():"",Vl=e=>k0(e&&typeof e=="object"?e:{}),Gl=e=>Array.isArray(e)?e.map(vr).filter(t=>!!t):[],Yl=e=>vr(e==null?void 0:e.NEUTRAL)||vr(e==null?void 0:e.neutral),D0=e=>{const t=vr(e.avatarUrl),r=Vl(e.expressions),a=Gl(e.cgImages),n=Yl(r),i=Object.values(r)[0]||"";return{id:jl,name:"é»è®¤",avatarUrl:t||n,expressions:r,cgImages:a,coverUrl:t||n||i,isBase:!0}},M0=e=>{if(!e)return[];const t=D0(e),a=(Array.isArray(e.skins)?e.skins:[]).map(n=>{const i={...t.expressions,...Vl(n==null?void 0:n.expressions)},o=Yl(i),c=vr(n==null?void 0:n.avatarUrl)||o||t.avatarUrl,f=Gl(n==null?void 0:n.cgImages),d=vr(n==null?void 0:n.coverUrl)||c||o||Object.values(i)[0]||t.coverUrl,S=vr(n==null?void 0:n.id)||"",b=vr(n==null?void 0:n.name)||S;return!S||S===jl?null:{id:S,name:b,avatarUrl:c,expressions:i,cgImages:f.length>0?f:t.cgImages,coverUrl:d}}).filter(Boolean);return[t,...a]},pa=(e,t)=>{const r=M0(e);return r.length===0?null:t&&r.find(a=>a.id===t)||r[0]},U0=e=>{let t=5381;for(let r=0;r<e.length;r++)t=(t<<5)+t^e.charCodeAt(r);return(t>>>0).toString(36)},zl=e=>U0(JSON.stringify({modelUrl:e.modelUrl,assetUrls:e.assetUrls||[],expressions:e.expressions||{},variants:e.variants||{},scale:e.scale,x:e.x,y:e.y})),Wl=e=>{var c,f,d;const t=e.variants||{},r=!!((c=t.mobile)!=null&&c.modelUrl),a=!!((f=t.desktop)!=null&&f.modelUrl);if(!r&&!a)return"";if(typeof window>"u")return a?"desktop":"mobile";const n=window.navigator,i=(d=window.matchMedia)==null?void 0:d.call(window,"(max-width: 768px)").matches,o=typeof n.deviceMemory=="number"&&n.deviceMemory<=4;return(i||o)&&r?"mobile":a?"desktop":"mobile"},B0=e=>{const t=e.live2d;if(!(t!=null&&t.modelUrl))return"";const r=zl(t),a=new URLSearchParams({v:r}),n=Wl(t);return n&&a.set("variant",n),`/api/live2d/default-characters/${encodeURIComponent(e.id)}/model?${a.toString()}`},vi=(e,t=!1)=>{const r=e==null?void 0:e.live2d;if((e==null?void 0:e.renderMode)!=="live2d"||!(r!=null&&r.modelUrl))return null;if(t&&e.id)return{...r,modelUrl:B0({id:e.id,live2d:r})};if(!e.dbId)return r;const a=new URLSearchParams({v:zl(r)}),n=Wl(r);return n&&a.set("variant",n),{...r,modelUrl:`/api/live2d/characters/${encodeURIComponent(e.dbId)}/model?${a}`}},F0=(e,t)=>{if(!t.length)return e;const r=new Map;for(const a of e)r.set(a.id,a);for(const a of t){const n=r.get(a.id);n?r.set(a.id,{...n,...a}):r.set(a.id,a)}return Array.from(r.values())},H0=({renderedScript:e,latestScript:t,pendingFrames:r=[]})=>{const a=t&&(!e||t.frames.length>=e.frames.length)?t:e;if(!a)return null;if(!r.length)return a;const n=F0(a.frames,r);return n===a.frames||n.length===a.frames.length?a:{...a,frames:n}},Li=({script:e,historyFrameIds:t,currentFrameId:r})=>{var i;if(!e)return[];const a=new Map(e.frames.map(o=>[o.id,o])),n=t.map(o=>a.get(o)).filter(o=>!!o);if(typeof r=="number"){const o=a.get(r);o&&((i=n.at(-1))==null?void 0:i.id)!==o.id&&n.push(o)}return n},pu=({renderedScript:e,navigableScript:t,currentFrameIndex:r})=>{var n;const a=(n=e==null?void 0:e.frames[r])==null?void 0:n.id;if(typeof a=="number"){const i=t.frames.findIndex(o=>o.id===a);if(i!==-1)return i}return t.frames.length?Math.min(r,t.frames.length-1):-1},gu=({script:e,currentFrameIndex:t,isStreaming:r,hasPendingFrames:a=!1})=>{if(!e||!e.frames.length)return{action:"noop"};const n=e.frames[t];if(!n)return{action:"noop"};if(typeof n.nextFrameId=="number"){const o=e.frames.findIndex(c=>c.id===n.nextFrameId);if(o!==-1)return{action:"goto",nextIndex:o,historyFrameId:n.id}}if(e.frames.some(o=>Array.isArray(o.choices)&&o.choices.some(c=>c.nextFrameId===n.id))&&typeof n.nextFrameId!="number"){let o=t+1;for(;o<e.frames.length;){const c=e.frames[o];if(!e.frames.some(d=>Array.isArray(d.choices)&&d.choices.some(S=>S.nextFrameId===c.id)))return{action:"goto",nextIndex:o,historyFrameId:n.id};o++}return r||a?{action:"wait"}:{action:"finish",historyFrameId:n.id}}return t<e.frames.length-1?{action:"goto",nextIndex:t+1,historyFrameId:n.id}:r||a?{action:"wait"}:{action:"finish",historyFrameId:n.id}},j0=` 191 192--- 193 194`;function Eu(e,t){var n;if(!t)return e;const r=((n=t.blackboard)==null?void 0:n.trim())||"",a=t.blackboardMode;return a==="clear"?r:a==="append"?r?e?`${e}${j0}${r}`:r:e:r||e}function V0(e){const{frames:t,currentFrameIndex:r,historyFrameIds:a=[],activeQuestionSteps:n=[]}=e,i=t[r];if(!i)return"";const o=new Map(t.map(d=>[d.id,d])),f=(a.length>0?[...a.map(d=>
194o.get(d)).filter(Boolean),i]:t.slice(0,r+1)).reduce((d,S)=>Eu(d,S),"");return n.reduce((d,S)=>Eu(d,S),f)}const $l=/!\[([^\]\r\n]*)\]\(\s*p2g-document-image:\/\/([^/\s)]+)\/(\d+)\s*\)/g;function G0(e){const t=new Map,r=Array.isArray(e.documentAssets)?e.documentAssets:[];for(const a of r){if(!a||typeof a.assetRunId!="string"||!/^[0-9a-fA-F-]+$/.test(a.assetRunId))continue;const n=Array.isArray(a.images)?a.images:[];for(const i of n)!i||typeof i.url!="string"||!i.url.trim()||typeof i.index!="number"||!Number.isSafeInteger(i.index)||i.index<0||t.set(`p2g-document-image://${a.assetRunId}/${i.index}`,i.url)}return t}function Y0(e,t){const r=[];return{text:e.replace($l,(n,i,o,c)=>{const f=t.get(`p2g-document-image://${o}/${c}`);return f?(r.push(``),""):n}),moved:r}}function z0(e,t){return e.replace($l,(r,a,n,i)=>{const o=t.get(`p2g-document-image://${n}/${i}`);return o?``:r})}function ki(e,t={}){if(!e||!Array.isArray(e.frames)||e.frames.length===0)return e;const r=G0(e);if(r.size===0)return e;let a=!1;const n=e.frames.map(i=>{const o=typeof i.text=="string"?i.text:"",c=typeof i.blackboard=="string"?i.blackboard:"",{text:f,moved:d}=Y0(o,r),S=z0(c,r);let b=f,w=S;if(d.length>0){b=f.replace(/\n{3,}/g,` 195 196`).trim();const v=d.join(` 197 198`);w=w.trim()?`${w.trim()} 199 200${v}`:v}return b===o&&w===c?i:(a=!0,{...i,text:b,...w?{blackboard:w}:{},...w&&!i.blackboardMode?{blackboardMode:"replace"}:{}})});return a?{...e,frames:n}:e}const ql=2,Gt=e=>{const t=Number(e);return Number.isFinite(t)?Math.max(0,t):void 0},Ql=e=>{if(!e||typeof e!="object")return null;const t=Gt(e.activeAnalysisJobs),r=Gt(e.queuedAnalysisJobs),a=t!==void 0||r!==void 0?(t??0)+(r??0):void 0,n=Gt(e.voiceQueueJobsAhead??e.jobsAhead)??a,i=Gt(e.pendingWorkItems),o=Gt(e.claimedWorkItems),c=i!==void 0||o!==void 0?(i??0)+(o??0):void 0,f=Gt(e.voiceQueueFramesAhead??e.framesAhead)??c,d=String(e.voiceQueueState??e.state??"").toLowerCase(),S=["queued","active","done","failed","cancelled","none"].includes(d),b=(n??0)>0||(f??0)>0,w=S?d:b?"queued":"none",v=String(e.ttsMode??e.voiceTtsMode??"").toLowerCase(),j=v==="pro"?"pro":v==="normal"?"normal":void 0,$=Gt(e.priority??e.voicePriority);return{queueAhead:f??n??0,etaMinutes:Gt(e.voiceQueueEtaMinutes??e.estimatedMinutes)??0,...j?{ttsMode:j}:{},...$!==void 0?{priority:$}:{},jobsAhead:n,framesAhead:f,state:w==="none"&&b?"queued":w,workerConcurrency:Gt(e.voiceWorkerConcurrency??e.workerConcurrency)}},kA=e=>{const t=Ql(e==null?void 0:e.analysisVoice);if(t)return t;if(!e||typeof e!="object")return null;const r=Gt(e.queueAhead)??0;return{queueAhead:r,etaMinutes:Gt(e.etaMinutes)??r*ql,state:r>0?"queued":"none"}},DA=e=>e?typeof e.jobsAhead=="number"&&e.jobsAhead>0?e.jobsAhead:Math.max(0,e.queueAhead||0):0;function W0(e,t){if(!(!e||typeof e.play!="function"))try{const r=e.play();r&&typeof r.catch=="function"&&r.catch(a=>{t==null||t(a)})}catch(r){t==null||t(r)}}const Es="p2g_utm_attribution",bu="p2g_anonymous_id",Tu="p2g_traffic_event_reported",$0=2160*60*60*1e3,q0={utm_source:"utmSource",utm_medium:"utmMedium",utm_campaign:"utmCampaign",utm_term:"utmTerm",utm_content:"utmContent",utm_id:"utmId",gclid:"gclid",fbclid:"fbclid",msclkid:"msclkid",ttclid:"ttclid",twclid:"twclid",li_fat_id:"liFatId",ref:"ref"},Di=(e,t=256)=>{const r=String(e||"").trim();if(r)return r.slice(0,t)};function Q0(e,t,r,a){const n=new URLSearchParams(e||""),i={};Object.entries(q0).forEach(([c,f])=>{const d=Di(n.get(c));d&&(i[f]=d)});const o=Di(r,2048);if(o)try{const c=new URL(o).origin;(!a||c!==a)&&(i.referrer=o)}catch{i.referrer=o}return Object.keys(i).length?(i.landingPage=Di(t,2048),i.capturedAt=new Date().toISOString(),i):null}function K0(){if(!(typeof window>"u"))try{if(yo())return;const t=`${window.location.pathname}${window.location.search}`,r=Q0(window.location.search,t,document.referrer,window.location.origin);if(!r)return;localStorage.setItem(Es,JSON.stringify(r))}catch{}}function X0(){if(!(typeof window>"u"))try{const e=localStorage.getItem(bu);if(e)return e;const t=typeof crypto<"u"&&"randomUUID"in crypto?crypto.randomUUID():`${Date.now().toString(36)}_${Math.random().toString(36).slice(2)}`;return localStorage.setItem(bu,t),t}catch{return}}function J0(){if(!(typeof window>"u"))try{if(sessionStorage.getItem(Tu))return;sessionStorage.setItem(Tu,"1");const e=yo(),t={eventType:"landing",anonymousId:X0(),path:`${window.location.pathname}${window.location.search}`,landingPage:(e==null?void 0:e.landingPage)||`${window.location.pathname}${window.location.search}`,referrer:(e==null?void 0:e.referrer)||document.referrer||void 0,utmAttribution:e||void 0}
200,r=JSON.stringify(t),a=localStorage.getItem("p2g_token");if(!a&&navigator.sendBeacon){const n=new Blob([r],{type:"application/json"});if(navigator.sendBeacon("/api/traffic/event",n))return}fetch("/api/traffic/event",{method:"POST",headers:{"Content-Type":"application/json",...a?{Authorization:`Bearer ${a}`}:{}},body:r,keepalive:!0}).catch(()=>{})}catch{}}function yo(){if(typeof window>"u")return null;try{const e=localStorage.getItem(Es);if(!e)return null;const t=JSON.parse(e),r=Date.parse((t==null?void 0:t.capturedAt)||"");return!Number.isFinite(r)||Date.now()-r>$0?(localStorage.removeItem(Es),null):t}catch{return localStorage.removeItem(Es),null}}function Z0(e){const t=yo();return t?{...e,utmAttribution:t}:e}const Su={unknownGeneration:{zh:"çæå¤±è´¥ï¼æªç¥é误ï¼",en:"Generation failed due to an unknown error.",ja:"䏿ãªã¨ã©ã¼ã«ããçæã«å¤±æãã¾ããã",ru:"ÐенеÑаÑÐ¸Ñ Ð½Ðµ ÑдалаÑÑ Ð¸Ð·-за неизвеÑÑной оÑибки."},loginRequired:{zh:"请å
注å/ç»å½åä
200½¿ç¨è¯¥åè½ã",en:"Please register or log in to use this feature.",ja:"ãã®æ©è½ã使ãã«ã¯ç»é²ã¾ãã¯ãã°ã¤ã³ãå¿
è¦ã§ãã",ru:"ÐÐ»Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑÑой ÑÑнкÑии нÑжно заÑегиÑÑÑиÑоваÑÑÑÑ Ð¸Ð»Ð¸ войÑи."},dailyLimitExceeded:{zh:"仿¥ä½¿ç¨æ¬¡æ°å·²è¾¾ä¸éï¼è¯·ææ¥åæ¥æä½¿ç¨å
æ¢ç è·åæ°¸ä¹
次æ°ã",en:"Daily usage limit reached. Please come back tomorrow or use a redemption code for permanent quota.",ja:"æ¬æ¥ã®ä½¿ç¨åæ°ãä¸éã«éãã¾ãããææ¥å度ã試ãããã ãããå
æã³ã¼ãã§æ°¸ä¹
åæ°ãåå¾ãã¦ãã ããã",ru:"Ðневной Ð»Ð¸Ð¼Ð¸Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸ÑÑеÑпан. ÐеÑниÑеÑÑ Ð·Ð°Ð²ÑÑа или иÑполÑзÑйÑе код акÑиваÑии Ð´Ð»Ñ Ð¿Ð¾ÑÑоÑнной квоÑÑ."},borrowedCharacterUnavailable:{zh:"åé
è§è²ææ¶ä¸å¯ç¨ï¼è¯·éè¯ã",en:"The borrowed character is temporarily unavailable. Please try again.",ja:"åç¨ãã£ã©ã¯ã¿ã¼ã¯ä¸æçã«å©ç¨ã§ãã¾ãããããä¸åº¦ã試ããã ããã",ru:"ÐаимÑÑвованнÑй пеÑÑонаж вÑеменно недоÑÑÑпен. ÐовÑоÑиÑе попÑÑкÑ."},characterUnavailable:{zh:"è§è²ææ¶ä¸å¯ç¨ï¼è¯·éè¯ã",en:"The character is temporarily unavailable. Please try again.",ja:"ãã£ã©ã¯ã¿ã¼ã¯ä¸æçã«å©ç¨ã§ãã¾ãããããä¸åº¦ã試ããã ããã",ru:"ÐеÑÑонаж вÑеменно недоÑÑÑпен. ÐовÑоÑиÑе попÑÑкÑ."},noExtractedText:{zh:"æªè½ä»æä»¶ä¸æåå°ææ¬å
容ã",en:"No text content could be extracted from this file.",ja:"ãã®ãã¡ã¤ã«ããããã¹ããæ½åºã§ãã¾ããã§ããã",ru:"Ðе ÑдалоÑÑ Ð¸Ð·Ð²Ð»ÐµÑÑ ÑекÑÑ Ð¸Ð· ÑÑого Ñайла."},loadFailed:{zh:"å 载失败ï¼è¯·ç¨åéè¯ã",en:"Load failed. Please try again later.",ja:"èªã¿è¾¼ã¿ã«å¤±æãã¾ããããã°ãããã¦ããããä¸åº¦ã試ããã ããã",ru:"ÐагÑÑзка не ÑдалаÑÑ. ÐовÑоÑиÑе попÑÑÐºÑ Ð¿Ð¾Ð·Ð¶Ðµ."},documentTooLarge:{zh:"ææ¡£å
容è¿å¤§ï¼è¯·ç²¾ç®ææ¬åéè¯ã",en:"The document is too large. Please shorten the text and try again.",ja:"ããã¥ã¡ã³ãã大ãããã¾ããããã¹ããçããã¦ããããä¸åº¦ã試ããã ããã",ru:"ÐокÑÐ¼ÐµÐ½Ñ ÑлиÑком болÑÑой. СокÑаÑиÑе ÑекÑÑ Ð¸ повÑоÑиÑе попÑÑкÑ."},payloadTooLarge:{zh:"请æ±å
容è¿å¤§ï¼è¯·ç²¾ç®ææ¡£å
容åéè¯ã",en:"The request is too large. Please shorten the document and try again.",ja:"ãªã¯ã¨ã¹ãå
容ã大ãããã¾ããããã¥ã¡ã³ããçããã¦ããããä¸åº¦ã試ããã ããã",ru:"ÐапÑÐ¾Ñ ÑлиÑком болÑÑой. СокÑаÑиÑе докÑÐ¼ÐµÐ½Ñ Ð¸ повÑоÑиÑе попÑÑкÑ."},analysisMissingJob:{zh:"åæä»»å¡å建å¼å¸¸ï¼è¯·ç¨åéè¯ã",en:"The analysis task was created incorrectly. Please try again later.",ja:"åæã¿ã¹ã¯ã®ä½æã«åé¡ãããã¾ããããã°ãããã¦ããããä¸åº¦ã試ããã ããã",ru:"ÐадаÑа анализа Ñоздана некоÑÑекÑно. ÐовÑоÑиÑе попÑÑÐºÑ Ð¿Ð¾Ð·Ð¶Ðµ."},analysisTimeout:{zh:"åæä»»å¡è¶
æ¶ï¼è¯·ç¨åéè¯ã",en:"The analysis task timed out. Please try again later.",ja:"åæã¿ã¹ã¯ãã¿ã¤ã ã¢ã¦ããã¾ããããã°ãããã¦ããããä¸åº¦ã試ããã ããã",ru:"ÐÑÐµÐ¼Ñ Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ Ð·Ð°Ð´Ð°Ñи анализа иÑÑекло. ÐовÑоÑиÑе попÑÑÐºÑ Ð¿Ð¾Ð·Ð¶Ðµ."},analysisCancelled:{zh:"åæä»»å¡å·²åæ¶ã",en:"The analysis job was cancelled.",ja:"åæã¿ã¹ã¯ã¯ãã£ã³ã»ã«ããã¾ããã",ru:"ÐадаÑа анализа оÑменена."},videoParsingTimeout:{zh:"è§é¢è§£æè¶
è¿ 8 åéï¼ä»»å¡å·²èªå¨åæ¢ã请éè¯ææ¹ç¨å®æ´ç BV è§é¢é¾æ¥ã",en:"Video parsing exceeded 8 minutes and was stopped automatically. Please retry or use the full BV video URL.",ja:"åç»è§£æã8åãè¶
ãããããèªåçã«åæ¢ãã¾ãããå試è¡ããããå®å
¨ãªBVåç»URLã使ç¨ãã¦ãã ããã",ru:"ÐбÑабоÑка видео пÑевÑÑила 8 минÑÑ Ð¸ бÑла авÑомаÑиÑеÑки оÑÑановлена. ÐовÑоÑиÑе попÑÑÐºÑ Ð¸Ð»Ð¸ иÑполÑзÑйÑе полнÑÑ BV-ÑÑÑлкÑ."},videoAsrBlocked:{zh:"è§é¢è¯é³è¯å«ææ¶æ æ³å®æï¼è¯·æ´æ¢è§é¢æç¨åéè¯ã",en:"Video speech recognition is temporarily unavailable. Please use a different video or try again later.",ja:"åç»ã®é³å£°èªèã䏿çã«å®äºã§ãã¾ãããå¥ã®åç»ã使ç¨ãããããã°ãããã¦ããããä¸åº¦ã試ããã ããã",ru:"РаÑпознавание ÑеÑи в видео вÑеменно недоÑÑÑпно. ÐÑполÑзÑйÑе дÑÑгое видео или повÑоÑиÑе попÑÑÐºÑ Ð¿Ð¾Ð·Ð¶Ðµ."},pollingUnavailable:{zh:"ä»»å¡ç¶æè¿ç»æ¥è¯¢å¤±è´¥ï¼å·²åæ¢çå¾
ãè¯·æ£æ¥ç½ç»åéè¯ã",en:"Repeated task status checks failed, so waiting was stopped. Please check your network and retry.",ja:"ã¿ã¹ã¯ç¶æ
ã®ç¢ºèªã«é£ç¶ãã¦å¤±æãããããå¾
æ©ã忢ãã¾ããããããã¯ã¼ã¯ã確èªãã¦å試
200è¡ãã¦ãã ããã",ru:"Ðе ÑдалоÑÑ Ð½ÐµÑколÑко Ñаз пÑовеÑиÑÑ ÑоÑÑоÑние задаÑи, поÑÑÐ¾Ð¼Ñ Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ðµ оÑÑановлено. ÐÑовеÑÑÑе ÑеÑÑ Ð¸ повÑоÑиÑе попÑÑкÑ."},analysisTitleMissing:{zh:"çæçè®²è§£ç¼ºå°æææ é¢ï¼è¯·éè¯ã",en:"The generated explanation is missing a valid title. Please try again.",ja:"çæãããè§£èª¬ã«æå¹ãªã¿ã¤ãã«ãããã¾ãããããä¸åº¦ã試ããã ããã",ru:"Ð Ñозданном обÑÑÑнении оÑÑÑÑÑÑвÑÐµÑ Ð´Ð¾Ð¿ÑÑÑимое название. ÐовÑоÑиÑе попÑÑкÑ."},analysisSectionFlowBlocked:{zh:"æç»è®²è§£ç»æçæä¸å®æ´ï¼è¯·éæ°çæã",en:"The final explanation structure is incomplete. Please regenerate it.",ja:"æçµçãªè§£èª¬æ§é ãä¸å®å
¨ã§ããããä¸åº¦çæãã¦ãã ããã",ru:"ÐÑÐ¾Ð³Ð¾Ð²Ð°Ñ ÑÑÑÑкÑÑÑа обÑÑÑÐ½ÐµÐ½Ð¸Ñ Ð½ÐµÐ¿Ð¾Ð»Ð½Ð°. СоздайÑе ÐµÑ Ð·Ð°Ð½Ð¾Ð²Ð¾."},analysisContentInvalid:{zh:"AI çæçå§æ
æªéè¿å
å®¹æ ¡éªï¼è¯·éè¯ã",en:"The AI-generated story did not pass content validation. Please try again.",ja:"AIãçæããã¹ãã¼ãªã¼ã¯å
å®¹ã®æ¤è¨¼ãééãã¾ããã§ãããããä¸åº¦ã試ããã ããã",ru:"СозданнÑй ÐÐ ÑÑÐ¶ÐµÑ Ð½Ðµ пÑоÑÑл пÑовеÑÐºÑ ÑодеÑжимого. ÐовÑоÑиÑе попÑÑкÑ."},handshakeFailed:{zh:"å®å
¨æ¡æå¤±è´¥ï¼è¯·å·æ°é¡µé¢åéè¯ã",en:"Security handshake failed. Please refresh the page and try again.",ja:"ã»ãã¥ãªãã£ãã³ãã·ã§ã¤ã¯ã«å¤±æãã¾ããããã¼ã¸ãæ´æ°ãã¦ããããä¸åº¦ã試ããã ããã",ru:"ÐÑибка пÑовеÑки безопаÑноÑÑи. ÐбновиÑе ÑÑÑаниÑÑ Ð¸ повÑоÑиÑе попÑÑкÑ."}},ep={AUTH_REQUIRED:"loginRequired","Please register or log in to use this feature.":"loginRequired","请å
注å/ç»å½å使ç¨è¯¥åè½ã":"loginRequired","请å
ç»å½å使ç¨è¯¥åè½ã":"loginRequired",DAILY_LIMIT_EXCEEDED:"dailyLimitExceeded",BORROWED_CHARACTER_UNAVAILABLE:"borrowedCharacterUnavailable",CHARACTER_UNAVAILABLE:"characterUnavailable","No text content could be extracted from this file":"noExtractedText","Load failed":"loadFailed","ææ¡£å
容è¿å¤§ï¼æ¥è¿æå¡å¨ 2MB 请æ±ä½éå¶ï¼ãè¯·ç²¾ç®ææ¬åéè¯ã":"documentTooLarge","è¯·ç²¾ç®ææ¬åéè¯ã":"documentTooLarge","请æ±å
容è¿å¤§ï¼è¯·ç²¾ç®ææ¡£å
容åéè¯ã":"payloadTooLarge","åæä»»å¡å·²å建ä½ç¼ºå° jobIdã":"analysisMissingJob","åæä»»å¡è¶
æ¶ï¼è¯·ç¨åéè¯ã":"analysisTimeout","åæä»»å¡å·²åæ¶ã":"analysisCancelled","Analysis job cancelled":"analysisCancelled",VIDEO_PARSING_TIMEOUT:"videoParsingTimeout",ANALYSIS_POLLING_UNAVAILABLE:"pollingUnavailable",ANALYSIS_TITLE_MISSING:"analysisTitleMissing",ANALYSIS_SECTION_FLOW_BLOCKED:"analysisSectionFlowBlocked","Security handshake failed":"handshakeFailed"},nn=(e,t)=>Su[e][t]||Su[e].zh,Mi=(e,t,r)=>e[t].replace("{{status}}",r),Ui=(e,t,r)=>{const n=(typeof e=="string"?e.trim():"").replace(/^Error:\s*/i,"").trim();if(!n)return r||nn("unknownGeneration",t);if(/^Invalid section flow(?:\s|:|$)/i.test(n))return nn("analysisContentInvalid",t);if(/the content you provided or machine outputted is blocked/i.test(n)||/\b(?:(?:STEP|QWEN)_)?ASR_[A-Z_]+\b/i.test(n))return nn("videoAsrBlocked",t);const i=ep[n];if(i)return nn(i,t);const o=n.match(/^轮询失败 \((\d{3})\)$/);if(o)return Mi({zh:"ä»»å¡ç¶ææ¥è¯¢å¤±è´¥ï¼HTTP {{status}}ï¼ï¼è¯·ç¨åéè¯ã",en:"Task status check failed (HTTP {{status}}). Please try again later.",ja:"ã¿ã¹ã¯ã®ç¶æ
確èªã«å¤±æãã¾ããï¼HTTP {{status}}ï¼ããã°ãããã¦ããããä¸åº¦ã試ããã ããã",ru:"ÐÑовеÑка ÑÑаÑÑÑа задаÑи не ÑдалаÑÑ (HTTP {{status}}). ÐовÑоÑиÑе попÑÑÐºÑ Ð¿Ð¾Ð·Ð¶Ðµ."},t,o[1]);const c=n.match(/^(?:请æ±å¤±è´¥|éªè¯è¯·æ±å¤±è´¥) \((\d{3})\)/);if(c)return Mi({zh:"请æ±å¤±è´¥ï¼HTTP {{status}}ï¼ï¼è¯·ç¨åéè¯ã",en:"Request failed (HTTP {{status}}). Please try again later.",ja:"ãªã¯ã¨ã¹ãã«å¤±æãã¾ããï¼HTTP {{status}}ï¼ããã°ãããã¦ããããä¸åº¦ã試ããã ããã",ru:"ÐапÑÐ¾Ñ Ð½Ðµ ÑдалÑÑ (HTTP {{status}}). ÐовÑоÑиÑе попÑÑÐºÑ Ð¿Ð¾Ð·Ð¶Ðµ."},t,c[1]);const f=n.match(/^Upstream error \((\d{3})\)/);return f?Mi({zh:"䏿¸¸ API 请æ±å¤±è´¥ï¼HTTP {{status}}ï¼ï¼è¯·ç¨åéè¯ææ£æ¥ API 设置ã",en:"Upstream API request failed (HTTP {{status}}). Please try again later or check your API settings.",ja:"䏿µ API ãªã¯ã¨ã¹ãã«å¤±æãã¾ããï¼HTTP {{status}}ï¼ããã°ãããã¦ããå試è¡ããããAPI è¨å®ã確èªãã¦ãã ããã",ru:"ÐапÑÐ¾Ñ Ðº вÑÑеÑÑоÑÑÐµÐ¼Ñ API не ÑдалÑÑ (HTTP {{status}}). ÐовÑоÑиÑе позже или пÑовеÑÑÑе наÑÑÑойки API."},t,f[1]):(n.includes("Limit")||n.includes("429"))&&t!=="en"?nn("dailyLimitExceeded",t):n},tp=(e,t,r)=>t.includes(e)||r.includes(e)?e:t.includes("RUKA")?"RUKA":t[0]||"RUKA",rp=480*1e3;function ap({generation:e,videoUrl:t,abortController:r,timeoutMs:a=rp}){return t!=null&&t.trim()?new Promise((n,i)=>{let o=!1;const c=d=>{o||(o=!0,clearTimeout(f),d())},f=setTimeout(()=>{const d=Object.assign(new Error("VIDEO_PARSING_TIMEOUT"),{code:"VIDEO_PARSING_TIMEOUT"});c(()=>i(d)),r.abort(d)},Math.max(1,a));e.then(d=>c(()=>n(d)),d=>c(()=>i(d)))}):e}function np(e,t){if(e.textComplete===!0||e.phase==="done")return 100;if(typeof e.textProgressPct=="number"&&Number.isFinite(e.textProgressPct))return Math.max(t,Math.min(100,Math.round(e.textProgressPct)));if(e.phase==="video_transcription"){const i=Number(e.total||0),o=Number(e.current||0),c=i>0?Math.round(o/i*6):0;return Math.max(t,Math.min(8,2+c))}if(e.phase==="outlining")return Math.max(t,5);const r=Number(e.totalSections||0),a=Number(e.currentSection||0);if(r<=0||a<=0)return t;const n=Math.min(98,Math.max(5,Math.round(a/r*98)));return Math.max(t,n)}function MA({scriptPercent:e,isVoiceEnabled:t,loadingPhase:r,ttsProgress:a}
200){if(!t)return e;const n=.2,i=.8;return r==="voice"&&a&&a.total>0?n*100+a.current/a.total*(i*100):e/100*(n*100)}const fn=e=>e.replace(/\/+$/,"")||"/",Au=e=>{const t=fn(e);return t==="/saves"?D.SAVES:t==="/community"?D.COMMUNITY:t==="/arxiv"?D.ARXIV:t==="/membership"?D.MEMBERSHIP:t==="/profile"?D.PROFILE:t==="/study"?D.STUDY_DASHBOARD:t==="/study-room"?D.STUDY_ROOM:t==="/research"?D.RESEARCH_ROOM:t==="/support"?D.SUPPORT:t==="/"?D.MENU:null},sp=["narrator","æç½","ãã¬ã¼ã¿ã¼","ÑаÑÑказÑик","Ð¾Ñ Ð°Ð²ÑоÑа"],ip=["you","me","player","student","ä½ ","æ","ç©å®¶","å¦ç","ããªã","ç§","ãã¬ã¤ã¤ã¼","主人å
¬","çä¿®é","вÑ","Ñ","игÑок","главнÑй геÑой","ÑÑÑденÑ"],op=["/assets/local/backgrounds/5.jpg","/assets/local/backgrounds/7.jpg","/assets/local/backgrounds/2.jpg","/assets/local/backgrounds/3.jpg","/assets/local/backgrounds/1.jpg","/assets/local/backgrounds/4.jpg","/assets/local/backgrounds/6.jpg","/assets/local/backgrounds/default-scene.png"],Iu=["/assets/local/audio/bgm5.mp3","/assets/local/audio/bgm6.mp3"],bs="/assets/local/audio/bgm2.mp3",Bi="/assets/local/audio/bgm-relaxing.mp3",cp={"https://assert.paper2gal.com/audio/bgm.mp3":bs,"https://assert.paper2gal.com/audio/bgm2.mp3":bs,"https://assert.paper2gal.com/audio/bgm3.mp3":"/assets/local/audio/bgm3.mp3","https://assert.paper2gal.com/audio/bgm4.mp3":"/assets/local/audio/bgm4.mp3","https://assert.paper2gal.com/audio/bgm-relaxing.mp3":Bi,"/assets/local/audio/bgm2.mp3":bs,"/assets/local/audio/bgm3.mp3":"/assets/local/audio/bgm3.mp3","/assets/local/audio/bgm4.mp3":"/assets/local/audio/bgm4.mp3","/assets/local/audio/bgm5.mp3":Bi,"/assets/local/audio/bgm-relaxing.mp3":Bi},up=e=>{const t=String(e||"").trim();return cp[t]||t||bs},lp="https://store.steampowered.com/favicon.ico",dp=2e3,UA=!1,fp={MENU:"/",SAVES:"/saves",COMMUNITY:"/community",ARXIV:"/arxiv",MEMBERSHIP:"/membership",PROFILE:"/profile",STUDY_DASHBOARD:"/study",STUDY_ROOM:"/study-room",RESEARCH_ROOM:"/research",SUPPORT:"/support"},mp=l.lazy(Ke(()=>Be(()=>import("./MainMenu-CJc99MS2.js"),__vite__mapDeps([9,4,10,11,6,12,13,14,15,7,3,2,5,16]),import.meta.url),"MainMenu")),Kl=Ke(()=>Be(()=>import("./Character-B0Yj0W_Y.js"),__vite__mapDeps([17,4,18,12,6,7,3,2,5]),import.meta.url),"Character"),Xl=Ke(()=>Be(()=>import("./DialogueBox-CNtZIlM5.js"),__vite__mapDeps([19,4,20,21,13,18,6,7,3,2,5]),import.meta.url),"DialogueBox"),Jl=Ke(()=>Be(()=>import("./BlackboardMarkdown-Cizre-1w.js"),__vite__mapDeps([22,4,2,3,5]),import.meta.url),"BlackboardMarkdown"),yu=l.lazy(Kl),hp=l.lazy(Xl),pp=l.lazy(Ke(()=>Be(()=>import("./LoadingGame-BAHt47Rf.js"),__vite__mapDeps([23,4,15,6,7,3,2,5]),import.meta.url),"LoadingGame")),gp=l.lazy(Ke(()=>Be(()=>import("./SettingsModal-5SZs2RBK.js"),__vite__mapDeps([24,4,6,7,3,2,5]),import.meta.url),"SettingsModal")),Ep=l.lazy(Ke(()=>Be(()=>import("./LogModal-C3gu7eDy.js"),__vite__mapDeps([25,4,21,26,2,3,5,15,6,7]),import.meta.url),"LogModal")),bp=l.lazy(Ke(()=>Be(()=>import("./EndingScreen-C5GepLUm.js"),__vite__mapDeps([27,4,28,15,6,7,3,2,5]),import.meta.url),"EndingScreen")),Tp=l.lazy(Ke(()=>Be(()=>import("./AnnouncementModal-BqVbgv6o.js"),__vite__mapDeps([29,4,6,7,3,2,5]),import.meta.url),"AnnouncementModal")),_u=l.lazy(Ke(()=>Be(()=>import("./AnnouncementWidget-BEJgy4Af.js"),__vite__mapDeps([30,4,6]),import.meta.url),"AnnouncementWidget")),Sp=l.lazy(Ke(()=>Be(()=>import("./MobileApkPromptModal-BaOGB0mh.js"),__vite__mapDeps([31,4,6,7,3,2,5]),import.meta.url),"MobileApkPromptModal")),Ap=l.lazy(Ke(()=>Be(()=>import("./BackgroundSelector-BYyd2LfJ.js"),__vite__mapDeps([32,4,15,6,7,3,2,5]),import.meta.url),"BackgroundSelector")),Ip=l.lazy(Ke(()=>Be(()=>import("./Login-e9WFT3CV.js"),__vite__mapDeps([33,4,6,7,3,2,5]),import.meta.url),"Login")),yp=l.lazy(Ke(()=>Be(()=>import("./AdminDashboard-HIANxf-i.js"),__vite__mapDeps([34,4,6,35,7,3,2,5]),import.meta.url),"AdminDashboard")),_p=l.lazy(Ke(()=>Be(()=>import("./CommunityPage-B9QgmaFk.js"),__vite__mapDeps([36,4,11,10,6,12,7,3,2,5]),import.meta.url),"CommunityPage")),Cp=l.lazy(Ke(()=>Be(()=>import("./SaveManager-Wouqmi4H.js"),__vite__mapDeps([37,4,6,7,3,2,5]),import.meta.url),"SaveManager")),wp=l.lazy(Ke(()=>Be(()=>import("./ArxivPage-GYK3MRf5.js"),__vite__mapDeps([38,4,6,7,3,2,5]),import.meta.url),"ArxivPage")),Rp=l.lazy(Ke(()=>Be(()=>import("./MembershipPage-BQA3GMQU.js"),__vite__mapDeps([39,4,6,7,3,2,5]),import.meta.url),"MembershipPage")),Np=l.lazy(Ke(()=>Be(()=>import("./ProfilePage--eIe_FSB.js"),__vite__mapDeps([40,4,10,6,14,15,7,3,2,5]),import.meta.url),"ProfilePage")),Pp=l.lazy(Ke(()=>Be(()=>import("./StudyDashboardPage-CrJYba4q.js"),__vite__mapDeps([41,4,10,14,15,6,7,3,2,5]),import.meta.url),"StudyDashboardPage")),xp=l.lazy(Ke(()=>Be(()=>import("./StudyRoomPage-hZ6UWwR6.js"),__vite__mapDeps([42,4,6,7,3,2,5]),import.meta.url),"StudyRoomPage")),Op=l.lazy(Ke(()=>Be(()=>import("./PaperResearchRoom-BERhtVXp.js"),__vite__mapDeps([43,4,28,22,2,3,5,26,6,7]),import.meta.url),"PaperResearchRoom")),vp=l.lazy(Ke(()=>Be(()=>import("./SupportPage-BnePHPp2.js"),__vite__mapDeps([44,4,6,7,3,2,5]),import.meta.url),"SupportPage")),Lp=l.lazy(Ke(()=>Be(()=>import("./MarkdownPage-DghJi6z7.js"),__vite__mapDeps([45,4,6,3]),import.meta.url),"MarkdownPage")),kp=l.lazy(Jl),Fi=async(e={})=>{const t=[Kl(),Xl()];e.blackboard&&t.push(Jl()),await Promise.all(t).then(()=>{},()=>{})},kt=()=>p.jsx("div",{className:"flex min-h-[200px] items-center justify-center text-slate-400",children:"Loading..."});/*! Capacitor: https://capacitorjs.com/ - MIT License */var Ca;
200(function(e){e.Unimplemented="UNIMPLEMENTED",e.Unavailable="UNAVAILABLE"})(Ca||(Ca={}));class Hi extends Error{constructor(t,r,a){super(t),this.message=t,this.code=r,this.data=a}}const Dp=e=>{var t,r;return e!=null&&e.androidBridge?"android":!((r=(t=e==null?void 0:e.webkit)===null||t===void 0?void 0:t.messageHandlers)===null||r===void 0)&&r.bridge?"ios":"web"},Mp=e=>{const t=e.CapacitorCustomPlatform||null,r=e.Capacitor||{},a=r.Plugins=r.Plugins||{},n=()=>t!==null?t.name:Dp(e),i=()=>n()!=="web",o=b=>{const w=d.get(b);return!!(w!=null&&w.platforms.has(n())||c(b))},c=b=>{var w;return(w=r.PluginHeaders)===null||w===void 0?void 0:w.find(v=>v.name===b)},f=b=>e.console.error(b),d=new Map,S=(b,w={})=>{const v=d.get(b);if(v)return console.warn(`Capacitor plugin "${b}" already registered. Cannot register plugins twice.`),v.proxy;const j=n(),$=c(b);let V;const Y=async()=>(!V&&j in w?V=typeof w[j]=="function"?V=await w[j]():V=w[j]:t!==null&&!V&&"web"in w&&(V=typeof w.web=="function"?V=await w.web():V=w.web),V),q=(ne,Pe)=>{var Ee,ye;if($){const _e=$==null?void 0:$.methods.find(be=>Pe===be.name);if(_e)return _e.rtype==="promise"?be=>r.nativePromise(b,Pe.toString(),be):(be,se)=>r.nativeCallback(b,Pe.toString(),be,se);if(ne)return(Ee=ne[Pe])===null||Ee===void 0?void 0:Ee.bind(ne)}else{if(ne)return(ye=ne[Pe])===null||ye===void 0?void 0:ye.bind(ne);throw new Hi(`"${b}" plugin is not implemented on ${j}`,Ca.Unimplemented)}},K=ne=>{let Pe;const Ee=(...ye)=>{const _e=Y().then(be=>{const se=q(be,ne);if(se){const me=se(...ye);return Pe=me==null?void 0:me.remove,me}else throw new Hi(`"${b}.${ne}()" is not implemented on ${j}`,Ca.Unimplemented)});return ne==="addListener"&&(_e.remove=async()=>Pe()),_e};return Ee.toString=()=>`${ne.toString()}() { [capacitor code] }`,Object.defineProperty(Ee,"name",{value:ne,writable:!1,configurable:!1}),Ee},Se=K("addListener"),ee=K("removeListener"),Z=(ne,Pe)=>{const Ee=Se({eventName:ne},Pe),ye=async()=>{const be=await Ee;ee({eventName:ne,callbackId:be},Pe)},_e=new Promise(be=>Ee.then(()=>be({remove:ye})));return _e.remove=async()=>{console.warn("Using addListener() without 'await' is deprecated."),await ye()},_e},fe=new Proxy({},{get(ne,Pe){switch(Pe){case"$$typeof":return;case"toJSON":return()=>({});case"addListener":return $?Z:Se;case"removeListener":return ee;default:return K(Pe)}}});return a[b]=fe,d.set(b,{name:b,proxy:fe,platforms:new Set([...Object.keys(w),...$?[j]:[]])}),fe};return r.convertFileSrc||(r.convertFileSrc=b=>b),r.getPlatform=n,r.handleError=f,r.isNativePlatform=i,r.isPluginAvailable=o,r.registerPlugin=S,r.Exception=Hi,r.DEBUG=!!r.DEBUG,r.isLoggingEnabled=!!r.isLoggingEnabled,r},Up=e=>e.Capacitor=Mp(e),_t=Up(typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{}),nr=_t.registerPlugin;class _o{constructor(){this.listeners={},this.retainedEventArguments={},this.windowListeners={}}addListener(t,r){let a=!1;this.listeners[t]||(this.listeners[t]=[],a=!0),this.listeners[t].push(r);const i=this.windowListeners[t];i&&!i.registered&&this.addWindowListener(i),a&&this.sendRetainedArgumentsForEvent(t);const o=async()=>this.removeListener(t,r);return Promise.resolve({remove:o})}async removeAllListeners(){this.listeners={};for(const t in this.windowListeners)this.removeWindowListener(this.windowListeners[t]);this.windowListeners={}}notifyListeners(t,r,a){const n=this.listeners[t];if(!n){if(a){let i=this.retainedEventArguments[t];i||(i=[]),i.push(r),this.retainedEventArguments[t]=i}return}n.forEach(i=>i(r))}hasListeners(t){var r;return!!(!((r=this.listeners[t])===null||r===void 0)&&r.length)}registerWindowListener(t,r){this.windowListeners[r]={registered:!1,windowEventName:t,pluginEventName:r,handler:a=>{this.notifyListeners(r,a)}}}unimplemented(t="not implemented"){return new _t.Exception(t,Ca.Unimplemented)}unavailable(t="not available"){return new _t.Exception(t,Ca.Unavailable)}async removeListener(t,r){const a=this.listeners[t];if(!a)return;const n=a.indexOf(r);this.listeners[t].splice(n,1),this.listeners[t].length||this.removeWindowListener(this.windowListeners[t])}
200addWindowListener(t){window.addEventListener(t.windowEventName,t.handler),t.registered=!0}removeWindowListener(t){t&&(window.removeEventListener(t.windowEventName,t.handler),t.registered=!1)}sendRetainedArgumentsForEvent(t){const r=this.retainedEventArguments[t];r&&(delete this.retainedEventArguments[t],r.forEach(a=>{this.notifyListeners(t,a)}))}}const Cu=e=>encodeURIComponent(e).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape),wu=e=>e.replace(/(%[\dA-F]{2})+/gi,decodeURIComponent);class Bp extends _o{async getCookies(){const t=document.cookie,r={};return t.split(";").forEach(a=>{if(a.length<=0)return;let[n,i]=a.replace(/=/,"CAP_COOKIE").split("CAP_COOKIE");n=wu(n).trim(),i=wu(i).trim(),r[n]=i}),r}async setCookie(t){try{const r=Cu(t.key),a=Cu(t.value),n=t.expires?`; expires=${t.expires.replace("expires=","")}`:"",i=(t.path||"/").replace("path=",""),o=t.url!=null&&t.url.length>0?`domain=${t.url}`:"";document.cookie=`${r}=${a||""}${n}; path=${i}; ${o};`}catch(r){return Promise.reject(r)}}async deleteCookie(t){try{document.cookie=`${t.key}=; Max-Age=0`}catch(r){return Promise.reject(r)}}async clearCookies(){try{const t=document.cookie.split(";")||[];for(const r of t)document.cookie=r.replace(/^ +/,"").replace(/=.*/,`=;expires=${new Date().toUTCString()};path=/`)}catch(t){return Promise.reject(t)}}async clearAllCookies(){try{await this.clearCookies()}catch(t){return Promise.reject(t)}}}nr("CapacitorCookies",{web:()=>new Bp});const Fp=async e=>new Promise((t,r)=>{const a=new FileReader;a.onload=()=>{const n=a.result;t(n.indexOf(",")>=0?n.split(",")[1]:n)},a.onerror=n=>r(n),a.readAsDataURL(e)}),Hp=(e={})=>{const t=Object.keys(e);return Object.keys(e).map(n=>n.toLocaleLowerCase()).reduce((n,i,o)=>(n[i]=e[t[o]],n),{})},jp=(e,t=!0)=>e?Object.entries(e).reduce((a,n)=>{const[i,o]=n;let c,f;return Array.isArray(o)?(f="",o.forEach(d=>{c=t?encodeURIComponent(d):d,f+=`${i}=${c}&`}),f.slice(0,-1)):(c=t?encodeURIComponent(o):o,f=`${i}=${c}`),`${a}&${f}`},"").substr(1):null,Vp=(e,t={})=>{const r=Object.assign({method:e.method||"GET",headers:e.headers},t),n=Hp(e.headers)["content-type"]||"";if(typeof e.data=="string")r.body=e.data;else if(n.includes("application/x-www-form-urlencoded")){const i=new URLSearchParams;for(const[o,c]of Object.entries(e.data||{}))i.set(o,c);r.body=i.toString()}else if(n.includes("multipart/form-data")||e.data instanceof FormData){const i=new FormData;if(e.data instanceof FormData)e.data.forEach((c,f)=>{i.append(f,c)});else for(const c of Object.keys(e.data))i.append(c,e.data[c]);r.body=i;const o=new Headers(r.headers);o.delete("content-type"),r.headers=o}else(n.includes("application/json")||typeof e.data=="object")&&(r.body=JSON.stringify(e.data));return r};class Gp extends _o{async request(t){const r=Vp(t,t.webFetchExtra),a=jp(t.params,t.shouldEncodeUrlParams),n=a?`${t.url}?${a}`:t.url,i=await fetch(n,r),o=i.headers.get("content-type")||"";let{responseType:c="text"}=i.ok?t:{};o.includes("application/json")&&(c="json");let f,d;switch(c){case"arraybuffer":case"blob":d=await i.blob(),f=await Fp(d);break;case"json":f=await i.json();break;case"document":case"text":default:f=await i.text()}const S={};return i.headers.forEach((b,w)=>{S[w]=b}),{data:f,headers:S,status:i.status,url:i.url}}async get(t){return this.request(Object.assign(Object.assign({},t),{method:"GET"}))}async post(t){return this.request(Object.assign(Object.assign({},t),{method:"POST"}))}async put(t){return this.request(Object.assign(Object.assign({},t),{method:"PUT"}))}async patch(t){return this.request(Object.assign(Object.assign({},t),{method:"PATCH"}))}async delete(t){return this.request(Object.assign(Object.assign({},t),{method:"DELETE"}))}}nr("CapacitorHttp",{web:()=>new Gp});var Ru;(function(e){e.Dark="DARK",e.Light="LIGHT",e.Default="DEFAULT"})(Ru||(Ru={}));var Nu;(function(e){e.StatusBar="StatusBar",e.NavigationBar="NavigationBar"})(Nu||(Nu={}));class Yp extends _o{async setStyle(){this.unavailable("not available for web")}async setAnimation(){this.unavailable("not available for web")}async show(){this.unavailable("not available for web")}async hide(){this.unavailable("not available for web")}}nr("SystemBars",{web:()=>new Yp});const zp=nr("App",{web:()=>Be(()=>import("./web-BjRLPPkm.js"),__vite__mapDeps([46,4,6,7,3,2,5]),import.meta.url).then(e=>new e.AppWeb)}),Wp=nr("PaymentChannel"),Pu=nr("DirectPayment"),Jr=nr("GooglePlayBilling"),ea=nr("StoreKitBilling");let Zl="",ds=null;const ji=new Map,$p=()=>{try{if(typeof globalThis.localStorage<"u")return globalThis.localStorage.getItem("p2g_token")||""}catch{}return Zl};async function to(e){const t=$p();if(!t||!e.transactionId)return null;const r=ji.get(e.transactionId);if(r)return r;const a=(async()=>{const n=await st("/api/mobile-payments/apple/reconcile",{method:"POST",headers:{Authorization:`Bearer ${t}`,"Content-Type":"application/json"},body:JSON.stringify({transactionId:e.transactionId,productId:e.productId})}),i=await n.json().catch(()=>({}));if(!n.ok||(i==null?void 0:i.recorded)!==!0||(i==null?void 0:i.finalized)!==!0)throw new Error((i==null?void 0:i.error)||"App Store verification failed");return await ea.finish({transactionId:e.transactionId}),i.membership})().finally(()=>{ji.delete(e.transactionId)});return ji.set(e.transactionId,a),a}async function Co(e){if(e.token&&(Zl=e.token),!_t.isNativePlatform()||_t.getPlatform()!=="ios")return;ds||(ds=ea.addListener("transactionUpdated",a=>{to(a).catch(()=>{})}).then(()=>{}).catch(a=>{throw ds=null,a})),await ds;const t=await ea.getUnfinished();return(await Promise.allSettled((t.transactions||[]).map(to))).reduce((a,n)=>{var i;return n.status==="fulfilled"&&((i=n.value)!=null&&i.active)?n.value:a},null)}function BA(){return _t.isNativePlatform()?_t.getPlatform()==="ios"?"apple":"google":"web"}async function ed(){if(!_t.isNativePlatform())return"web";if(_t.getPlatform()==="ios")return"apple";if(_t.getPlatform()!=="android")return"web";try{return(await Wp.getChannel()).channel==="google"?"google":"direct"}catch{return"google"}}const qp=ed;async function FA(){var n,i,o,c;const e=await ed();if(e==="web")return{channel:e};const t=await st("/api/mobile-payments/catalog"),r=await t.json().catch(()=>({}));if(!t.ok)throw new Error((r==null?void 0:r.error)||"Unable to load mobile billing");if(e==="direct")return{channel:e,direct:r.direct};if(e==="apple"){const f={...((n=r.apple)==null?void 0:n.plans)||{}},d=Object.values(f).map(S=>
200S==null?void 0:S.productId).filter(Boolean);if(d.length)try{const S=await ea.getProducts({productIds:d});for(const b of S.products||[]){const w=Object.values(f).find(v=>(v==null?void 0:v.productId)===b.productId);w&&(w.price=b.price)}}catch{}return Co({}).catch(()=>{}),{channel:e,apple:{configured:!!((i=r.apple)!=null&&i.configured),plans:f}}}const a={...((o=r.google)==null?void 0:o.plans)||{}};return await Promise.all(Object.values(a).map(async f=>{if(f!=null&&f.productId)try{const d=await Jr.getProduct({productId:f.productId,productType:f.productType});f.price=d.price}catch{}})),{channel:e,google:{configured:!!((c=r.google)!=null&&c.configured),plans:a}}}const Qp=e=>new Promise(t=>setTimeout(t,e));async function Kp(e,t){var r,a,n;for(let i=0;i<120;i+=1){const o=await st(`/api/mobile-payments/orders/${encodeURIComponent(e)}`,{headers:{Authorization:`Bearer ${t}`}}),c=await o.json().catch(()=>({}));if(o.status===401)throw new Error("Login required");if(o.ok&&((r=c==null?void 0:c.order)==null?void 0:r.status)==="paid"&&((a=c==null?void 0:c.membership)!=null&&a.active))return c.membership;if(o.ok&&["failed","cancelled","expired"].includes((n=c==null?void 0:c.order)==null?void 0:n.status))throw new Error(`Payment ${c.order.status}`);await Qp(2e3)}throw new Error("Payment confirmation timed out. Reopen the membership page to refresh the order.")}async function Xp(e){const t=await crypto.subtle.digest("SHA-256",new TextEncoder().encode(e));return Array.from(new Uint8Array(t)).map(r=>r.toString(16).padStart(2,"0")).join("")}async function HA(e){var i,o,c,f,d,S,b,w;if(e.channel==="direct"){const v=e.directProvider||"alipay",j=await st("/api/mobile-payments/direct/order",{method:"POST",headers:{Authorization:`Bearer ${e.token}`,"Content-Type":"application/json"},body:JSON.stringify({provider:v,plan:e.plan})}),$=await j.json().catch(()=>({}));if(!j.ok)throw new Error(($==null?void 0:$.error)||"Unable to create payment order");if(v==="alipay"){const V=await Pu.payAlipay({orderString:((i=$.payload)==null?void 0:i.orderString)||""});if(V.resultStatus&&!["9000","8000"].includes(V.resultStatus))throw new Error(V.memo||"Alipay payment was not completed")}else if(!(await Pu.payWechat($.payload)).launched)throw new Error("Unable to open WeChat Pay");return Kp($.orderId,e.token)}if(e.channel==="apple"){const v=(c=(o=e.catalog.apple)==null?void 0:o.plans)==null?void 0:c[e.plan];if(!(v!=null&&v.productId))throw new Error("App Store product is not configured");const j=await Co({token:e.token,plans:((f=e.catalog.apple)==null?void 0:f.plans)||{}});if(j!=null&&j.active)return j;const $=await st("/api/mobile-payments/apple/account-token",{headers:{Authorization:`Bearer ${e.token}`}}),V=await $.json().catch(()=>({}));if(!$.ok||!(V!=null&&V.appAccountToken))throw new Error((V==null?void 0:V.error)||"Unable to prepare App Store purchase");const Y=await ea.purchase({productId:v.productId,appAccountToken:V.appAccountToken}),q=await st("/api/mobile-payments/apple/verify",{method:"POST",headers:{Authorization:`Bearer ${e.token}`,"Content-Type":"application/json"},body:JSON.stringify({plan:e.plan,transactionId:Y.transactionId})}),K=await q.json().catch(()=>({}));if(!q.ok||!((d=K==null?void 0:K.membership)!=null&&d.active))throw new Error((K==null?void 0:K.error)||"App Store verification failed");return await ea.finish({transactionId:Y.transactionId}),K.membership}const t=(b=(S=e.catalog.google)==null?void 0:S.plans)==null?void 0:b[e.plan];if(!(t!=null&&t.productId))throw new Error("Google Play product is not configured");const r=await Jr.purchase({productId:t.productId,productType:t.productType,obfuscatedAccountId:await Xp(e.userId)});if(!r.purchaseToken||r.purchaseState!==1)throw new Error("Google Play purchase is pending");const a=await st("/api/mobile-payments/google/verify",{method:"POST",headers:{Authorization:`Bearer ${e.token}`,"Content-Type":"application/json"},body:JSON.stringify({plan:e.plan,purchaseToken:r.purchaseToken})}),n=await a.json().catch(()=>({}));if(!a.ok||!((w=n==null?void 0:n.membership)!=null&&w.active))throw new Error((n==null?void 0:n.error)||"Google Play verification failed");return n.finalized||(t.productType==="inapp"?await Jr.consume({purchaseToken:r.purchaseToken}).catch(()=>{}):await Jr.acknowledge({purchaseToken:r.purchaseToken}).catch(()=>{})),n.membership}async function jA(e){var a;let t=await Co({token:e.token,plans:((a=e.catalog.apple)==null?void 0:a.plans)||{}});
200const r=await ea.restore();for(const n of r.transactions||[])t=await to(n)||t;if(!(t!=null&&t.active))throw new Error("No active App Store purchase was found for this account");return t}async function VA(e){var n;const t=await Jr.restore(),r=((n=e.catalog.google)==null?void 0:n.plans)||{};let a=null;for(const i of t.purchases||[]){if(!i.purchaseToken||i.purchaseState!==1)continue;const o=Object.entries(r).find(([,S])=>{var b;return(S==null?void 0:S.productId)&&((b=i.products)==null?void 0:b.includes(S.productId))});if(!o)continue;const[c]=o,f=await st("/api/mobile-payments/google/verify",{method:"POST",headers:{Authorization:`Bearer ${e.token}`,"Content-Type":"application/json"},body:JSON.stringify({plan:c,purchaseToken:i.purchaseToken})}),d=await f.json().catch(()=>({}));if(!f.ok)throw new Error((d==null?void 0:d.error)||"Google Play restore verification failed");if(a=d.membership||a,!d.finalized){const S=r[c];(S==null?void 0:S.productType)==="inapp"?await Jr.consume({purchaseToken:i.purchaseToken}).catch(()=>{}):await Jr.acknowledge({purchaseToken:i.purchaseToken}).catch(()=>{})}}if(!(a!=null&&a.active))throw new Error("No active Google Play purchase was found for this account");return a}const xu=e=>String(e||"").split(/[.+-]/).map(t=>Number.parseInt(t,10)).map(t=>Number.isFinite(t)?t:0);function Jp(e,t){const r=xu(e),a=xu(t),n=Math.max(r.length,a.length);for(let i=0;i<n;i+=1){const o=(r[i]||0)-(a[i]||0);if(o!==0)return o>0?1:-1}return 0}function Ou(e,t,r,a){const n=Number.parseInt(t,10);return Number.isFinite(n)&&Number.isFinite(a)?n===a?0:n>a?1:-1:Jp(e,r)}function Zp(e,t){try{const r=new URL(t);return e==="direct"?r.protocol==="https:":e==="google"?r.protocol==="market:"||r.protocol==="https:"&&r.hostname.toLowerCase()==="play.google.com":r.protocol==="itms-apps:"||r.protocol==="https:"&&r.hostname.toLowerCase()==="apps.apple.com"}catch{return!1}}async function eg(){if(!_t.isNativePlatform())return null;const e=_t.getPlatform();if(e!=="android"&&e!=="ios")return null;try{const t=e==="ios"?"app_store":await qp()==="direct"?"direct":"google",[r,a]=await Promise.all([zp.getInfo(),st(`/api/app-version?platform=${e}&channel=${t}`)]);if(!a.ok)return null;const n=await a.json();return!(n!=null&&n.updateUrl)||!n.latestVersion||n.platform!==e||n.channel!==t||!Zp(t,n.updateUrl)||Ou(r.version,r.build,n.latestVersion,Number(n.latestBuild))>=0?null:{...n,installedVersion:r.version,installedBuild:r.build,forced:Ou(r.version,r.build,n.minimumVersion,Number(n.minimumBuild))<0}}catch(t){return console.warn("[AppUpdate] Update check failed:",t),null}}function tg(e){window.open(e,"_blank","noopener,noreferrer")}const rg={zh:{title:"åç°æ°çæ¬",required:"éè¦æ´æ°åæè½ç»§ç»ä½¿ç¨",available:"æ°çæ¬å·²ç»åå¤å¥½",installed:"å½åçæ¬",latest:"ææ°çæ¬",notes:"æ´æ°å
容",noNotes:"æ§è½ä¼åä¸ä½éªæ¹è¿ã",later:"ç¨åå说",update:"ç«å³æ´æ°"},en:{title:"Update available",required:"Update required to continue",available:"A new version is ready",installed:"Installed",latest:"Latest",notes:"What's new",noNotes:"Performance and experience improvements.",later:"Later",update:"Update now"},ja:{title:"æ°ãããã¼ã¸ã§ã³",required:"ç¶è¡ããã«ã¯æ´æ°ãå¿
è¦ã§ã",available:"æ°ãããã¼ã¸ã§ã³ãå©ç¨ã§ãã¾ã",installed:"ç¾å¨",latest:"ææ°",notes:"æ´æ°å
容",noNotes:"ããã©ã¼ãã³ã¹ã¨æä½æ§ãæ¹åãã¾ããã",later:"ãã¨ã§",update:"ä»ããæ´æ°"},ru:{title:"ÐоÑÑÑпно обновление",required:"ÐÐ»Ñ Ð¿ÑÐ¾Ð´Ð¾Ð»Ð¶ÐµÐ½Ð¸Ñ ÑÑебÑеÑÑÑ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ðµ",available:"ÐÐ¾Ð²Ð°Ñ Ð²ÐµÑÑÐ¸Ñ Ð³Ð¾Ñова",installed:"УÑÑановлено",latest:"ÐоÑледнÑÑ",notes:"ЧÑо нового",noNotes:"УлÑÑÑена пÑоизводиÑелÑноÑÑÑ Ð¸ ÑдобÑÑво иÑполÑзованиÑ.",later:"Ðозже",update:"ÐбновиÑÑ"}},ag=({update:e,language:t,onClose:r})=>{var o,c,f;const a=Io(),n=rg[t],i=((o=e.releaseNotes)==null?void 0:o[t])||((c=e.releaseNotes)==null?void 0:c.en)||((f=e.releaseNotes)==null?void 0:f.zh)||n.noNotes;return l.useEffect(()=>{if(!e.forced)return;const d=S=>{S.key==="Escape"&&S.preventDefault()};return window.addEventListener("keydown",d,!0),()=>window.removeEventListener("keydown",d,!0)}
200,[e.forced]),p.jsx("div",{className:`fixed inset-0 z-[260] flex items-center justify-center bg-slate-950/70 ${a?"p-3":"p-5"}`,onClick:e.forced?void 0:r,role:"dialog","aria-modal":"true","aria-labelledby":"app-update-title",children:p.jsxs("div",{className:`flex w-full flex-col overflow-hidden rounded-lg border-2 bg-[#fffafa] shadow-2xl ${a?"max-w-[600px] max-h-[88vh]":"max-w-md max-h-[86vh]"}`,onClick:d=>d.stopPropagation(),children:[p.jsxs("header",{className:`flex items-center gap-3 border-b-2 px-5 ${a?"py-3":"py-4"} ${e.forced?"border-rose-200 bg-rose-50":"border-sky-200 bg-sky-50"}`,children:[p.jsx("div",{className:`flex h-10 w-10 shrink-0 items-center justify-center rounded-full text-white ${e.forced?"bg-rose-500":"bg-sky-500"}`,children:e.forced?p.jsx(wl,{size:21}):p.jsx(lh,{size:21})}),p.jsxs("div",{className:"min-w-0",children:[p.jsx("h2",{id:"app-update-title",className:"text-lg font-black text-slate-900",children:n.title}),p.jsx("p",{className:"text-sm font-semibold text-slate-600",children:e.forced?n.required:n.available})]})]}),p.jsxs("div",{className:`min-h-0 flex-1 overflow-y-auto ${a?"px-5 py-3":"p-5"}`,children:[p.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[p.jsxs("div",{className:"rounded-md border border-slate-200 bg-white px-3 py-2",children:[p.jsx("div",{className:"text-xs font-bold text-slate-400",children:n.installed}),p.jsxs("div",{className:"mt-0.5 font-black text-slate-700",children:[e.installedVersion," (",e.installedBuild,")"]})]}),p.jsxs("div",{className:"rounded-md border border-sky-200 bg-sky-50 px-3 py-2",children:[p.jsx("div",{className:"text-xs font-bold text-sky-500",children:n.latest}),p.jsxs("div",{className:"mt-0.5 font-black text-sky-700",children:[e.latestVersion," (",e.latestBuild,")"]})]})]}),p.jsxs("section",{className:"mt-4",children:[p.jsxs("h3",{className:"mb-1.5 flex items-center gap-2 text-sm font-black text-slate-800",children:[p.jsx(dh,{size:15,className:"text-sky-500"}),n.notes]}),p.jsx("p",{className:"whitespace-pre-wrap text-sm leading-6 text-slate-600",children:i})]})]}),p.jsxs("footer",{className:`flex justify-end gap-3 border-t border-slate-200 bg-white px-5 ${a?"py-3":"py-4"}`,children:[!e.forced&&p.jsx("button",{type:"button",onClick:r,className:"rounded-md border border-slate-300 px-5 py-2.5 text-sm font-bold text-slate-600 hover:bg-slate-50",children:n.later}),p.jsxs("button",{type:"button",onClick:()=>tg(e.updateUrl),className:"inline-flex items-center gap-2 rounded-md bg-sky-600 px-5 py-2.5 text-sm font-black text-white hover:bg-sky-700",children:[p.jsx(fh,{size:17}),n.update]})]})]})})};let vu=!1;const td=async()=>{const e=await Be(()=>import("./pdfjs-ji3DqnKJ.js").then(t=>t.a),[],import.meta.url);return vu||(e.GlobalWorkerOptions.workerSrc=Dh,vu=!0),e},Lu=e=>e.filter(t=>t.type==="application/pdf"||/\.pdf$/i.test(t.name)),ng=(e,t)=>Math.min(Math.max(1,Math.floor(e)||1),Math.max(1,t)),ku=(e,t)=>{const r=Math.max(360,t*.25),a=Math.max(r,Math.min(t*.72,t-520));return Math.round(Math.min(a,Math.max(r,e)))},sg=(e,t)=>Math.round(Math.min(3,Math.max(.5,e+(t<0?.1:t>0?-.1:0)))*100)/100,ig=(e,t)=>{var a;let r=((a=e[0])==null?void 0:a.page)||1;for(const n of e){if(n.top>t)break;r=n.page}return r},og=(e,t)=>{const r=t.trim().toLocaleLowerCase();if(!r)return[];const a=[];let n="";for(const c of e)a.length&&(n+=" "),a.push(n.length),n+=c;const i=n.toLocaleLowerCase(),o=[];for(let c=i.indexOf(r);c!==-1;c=i.indexOf(r,c+r.length)){const f=c+r.length;let d=a.length-1,S=a.length-1;for(;d>=0&&a[d]>c;)d--;for(;S>=0&&a[S]>=f;)S--;d<0||S<0||o.push({startItem:d,startOffset:Math.min(c-a[d],e[d].length),endItem:S,endOffset:Math.min(f-a[S],e[S].length)})}return o},cg=(e,t,r)=>t?(e+r+t)%t:-1,ug=[],Du={zh:{title:"åæå¯¹ç
§",choose:"éæ°éæ©æ¬å° PDF",change:"æ´æ¢ PDF",empty:"éæ©åå§ PDFï¼å³å¯è¾¹ç©è¾¹å¯¹ç
§é
读ãæä»¶ä»
卿¬æºæå¼ã",search:"æç´¢åæå
容",noMatch:"æ ç»æ",searching:"æ¥æ¾ä¸â¦",previous:"ä¸ä¸ä¸ªå¹é
",next:"ä¸ä¸ä¸ªå¹é
",loading:"æ£å¨å è½½ PDFâ¦",error:"æ æ³æå¼è¿ä¸ª PDFï¼è¯·éæ°éæ©æä»¶ã",close:"å
³éåæé
读å¨",page:"页",fit:"éåºå®½åº¦",zoomIn:"æ¾å¤§",zoomOut:"缩å°",resize:"æå¨è°æ´æ¸¸æä¸ PDF ç宽度",scroll:"æ»å¨è¿ç»é
读"},en:{title:"Source PDF",choose:"Choose local PDF",change:"Change PDF",empty:"Choose the original PDF to read alongside the story. The file stays on your device.",search:"Search the PDF",noMatch:"No results",searching:"Searchingâ¦",previous:"Previous match",next:"Next match",loading:"Loading PDFâ¦",error:"Could not open this PDF. Please choose it again.",close:"Close source reader",page:"Page",f
200it:"Fit width",zoomIn:"Zoom in",zoomOut:"Zoom out",resize:"Drag to resize the game and PDF",scroll:"Scroll to read continuously"},ja:{title:"åæãåç
§",choose:"ãã¼ã«ã« PDF ã鏿",change:"PDF ã夿´",empty:"åæã® PDF ã鏿ãã¦ãç©èªã¨ä¸¦ã¹ã¦èªãã¾ãããã¡ã¤ã«ã¯ã¢ãããã¼ãããã¾ããã",search:"æ¬æãæ¤ç´¢",noMatch:"ä¸è´ãªã",searching:"æ¤ç´¢ä¸â¦",previous:"åã®ä¸è´",next:"次ã®ä¸è´",loading:"PDF ãèªã¿è¾¼ã¿ä¸â¦",error:"PDF ãéãã¾ãããããä¸åº¦é¸æãã¦ãã ããã",close:"åæãã¥ã¼ã¢ã¼ãéãã",page:"ãã¼ã¸",fit:"å¹
ã«åããã",zoomIn:"æ¡å¤§",zoomOut:"縮å°",resize:"ãã©ãã°ãã¦ã²ã¼ã 㨠PDF ã®å¹
ã調æ´",scroll:"ã¹ã¯ãã¼ã«ãã¦é£ç¶é²è¦§"},ru:{title:"ÐÑÑ
однÑй PDF",choose:"ÐÑбÑаÑÑ PDF на ÑÑÑÑойÑÑве",change:"СмениÑÑ PDF",empty:"ÐÑбеÑиÑе иÑÑ
однÑй PDF Ð´Ð»Ñ ÑÑÐµÐ½Ð¸Ñ ÑÑдом Ñ Ð¸ÑÑоÑией. Файл не загÑÑжаеÑÑÑ Ð½Ð° ÑеÑвеÑ.",search:"ÐоиÑк в PDF",noMatch:"ÐÐµÑ Ñовпадений",searching:"ÐоиÑкâ¦",previous:"ÐÑедÑдÑÑее Ñовпадение",next:"СледÑÑÑее Ñовпадение",loading:"ÐагÑÑзка PDFâ¦",error:"Ðе ÑдалоÑÑ Ð¾ÑкÑÑÑÑ PDF. ÐÑбеÑиÑе Ñайл Ñнова.",close:"ÐакÑÑÑÑ PDF",page:"СÑÑаниÑа",fit:"Ðо ÑиÑине",zoomIn:"УвелиÑиÑÑ",zoomOut:"УменÑÑиÑÑ",resize:"ÐеÑеÑаÑиÑе, ÑÑÐ¾Ð±Ñ Ð¸Ð·Ð¼ÐµÐ½Ð¸ÑÑ ÑиÑÐ¸Ð½Ñ Ð¸Ð³ÑÑ Ð¸ PDF",scroll:"ÐÑокÑÑÑивайÑе ÑÑÑаниÑÑ"}},lg=({pdf:e,number:t,width:r,scrollRoot:a,label:n,matches:i,activeMatchIndex:o})=>{const c=l.useRef(null),f=l.useRef(null),d=l.useRef(null),S=l.useRef(o),[b,w]=l.useState(t<=2),[v,j]=l.useState(1.414),[$,V]=l.useState(1);return S.current=o,l.useEffect(()=>{const Y=c.current,q=a.current;if(!Y||!q||typeof IntersectionObserver>"u"){w(!0);return}const K=new IntersectionObserver(([Se])=>w(!!(Se!=null&&Se.isIntersecting)),{root:q,rootMargin:"900px 0px"});return K.observe(Y),()=>K.disconnect()},[e,t,a]),l.useEffect(()=>{if(!b||!f.current)return;let Y=!1,q;return(async()=>{try{const K=await e.getPage(t),Se=f.current;if(Y||!Se)return;const ee=K.getViewport({scale:1});j(ee.height/ee.width);const Z=K.getViewport({scale:r/ee.width});V(Z.scale);const fe=Math.min(window.devicePixelRatio||1,2);Se.width=Math.ceil(Z.width*fe),Se.height=Math.ceil(Z.height*fe),Se.style.width=Z.width+"px",Se.style.height=Z.height+"px";const ne=Se.getContext("2d");if(!ne)return;ne.setTransform(fe,0,0,fe,0,0),q=K.render({canvas:Se,canvasContext:ne,viewport:Z}),await q.promise}catch(K){!Y&&!(K instanceof Error&&K.name==="RenderingCancelledException")&&console.warn("[source-pdf] page render failed",t,K)}})(),()=>{Y=!0,q==null||q.cancel()}},[e,t,r,b]),l.useEffect(()=>{const Y=d.current;if(!b||!Y)return;Y.replaceChildren();let q=!1,K;return(async()=>{var Se;try{const[ee,Z]=await Promise.all([td(),e.getPage(t)]);if(q)return;const fe=Z.getViewport({scale:1}),ne=Z.getViewport({scale:r/fe.width}),Pe=await Z.getTextContent();if(q||(K=new ee.TextLayer({textContentSource:Pe,container:Y,viewport:ne}),await K.render(),q))return;const Ee=new Map;for(const _e of i)for(let be=_e.startItem;be<=_e.endItem;be++){const se=((Se=K.textContentItemsStr[be])==null?void 0:Se.length)||0,me=be===_e.startItem?_e.startOffset:0,Oe=be===_e.endItem?_e.endOffset:se;me<Oe&&Ee.set(be,[...Ee.get(be)||[],{start:me,end:Oe,index:_e.index}])}for(const[_e,be]of Ee){const se=K.textDivs[_e],me=K.textContentItemsStr[_e];if(!se||!me)continue;const Oe=document.createDocumentFragment();let B=0;for(const U of be.sort((z,re)=>z.start-re.start)){Oe.append(document.createTextNode(me.slice(B,U.start)));const z=document.createElement("mark");z.className="source-pdf-match",z.dataset.pdfMatchIndex=String(U.index),z.textContent=me.slice(U.start,U.end),Oe.append(z),B=U.end}Oe.append(document.createTextNode(me.slice(B))),se.replaceChildren(Oe)}const ye=Y.querySelector('[data-pdf-match-index="'+S.current+'"]');ye==null||ye.classList.add("is-current"),ye==null||ye.scrollIntoView({block:"center",inline:"nearest"})}catch(ee){q||console.warn("[source-pdf] text layer failed",t,ee)}})(),()=>{q=!0,K==null||K.cancel(),Y.replaceChildren()}},[e,t,r,b,i]),l.useEffect(()=>{const Y=d.current;if(!Y)return;Y.querySelectorAll(".source-pdf-match.is-current").forEach(K=>K.classList.remove("is-current"));const q=Y.querySelector('[data-pdf-match-index="'+o+'"]');q==null||q.classList.add("is-current"),q==null||q.scrollIntoView({block:"center",inline:"nearest"})},[o]),p.jsxs("section",{ref:c,"data-source-pdf-page":t,className:"mx-auto mb-6 scroll-mt-5",style:{width:r},children:[p.jsxs("div",{className:"relative overflow-hidden bg-white shadow-[0_8px_28px_rgba(67,51,44,.16)] ring-1 ring-black/5",style:{height:Math.ceil(r*v)},children:[b&&p.jsx("canvas",{ref:f,"aria-label":n+" "+t,className:"block"},r),b&&p.jsx("div",{ref:d,className:"source-pdf-text-layer",style:{"--total-scale-factor":$}})]}),p.jsx("div",{className:"pt-2 text-center text-[11px] font-medium tracking-[.14em] text-[#9b8c85]",children:String(t).padStart(2,"0")})]})},dg=({files:e,selectedFileIndex:t,pageNumber:r,language:a,onSelectFileIndex:n,onPageChange:i,onChooseFile:o,onClose:c,onResize:f})=>{const d=Du[a]||Du.zh,S=e[t],[b,w]=l.useState(null),[v,j]=l.useState(0),[$,V]=l.useState("idle"),[Y,q]=l.useState(1),[K,Se]=l.useState(""),[ee,Z]=l.useState([]),[fe,ne]=l.useState(-1),[Pe,Ee]=l.useState(!1),[ye,_e]=l.useState(0),be=l.useRef(0),se=l.useRef(null),me=l.useRef(null),Oe=l.useRef(null),B=l.useRef(r),U=l.useRef(null),z=l.useRef(0),re=l.useRef(null),le=l.useRef(null),ue=l.useRef(0);B.current=r;const he=A=>{const N=se.current;if(!N)return;const M=N.getBoundingClientRect(),F=A??M.top+Math.min(N.clientHeight/2,240),G=Array.from(N.querySelectorAll("[data-source-pdf-page]")),te=G.find(Ie=>Ie.getBoundingClientRect().bottom>F)||G.at(-1);if(!te)return;const ie=te.getBoundingClientRect();le.current={page:Number(te.dataset.sourcePdfPage),fraction:Math.min(1,Math.max(0,(F-ie.top)/ie.height)),clientY:F}},Me=(A,N)=>{he(N),q(A)};l.useEffect(()=>{const A=se.current;if(!A)return;const N=new ResizeObserver(()=>{A.clientWidth!==be.current&&(he(),be.current=A.clientWidth,_e(A.clientWidth))});return N.observe(A),be.current=A.clientWidth,_e(A.clientWidth),()=>N.disconnect()},[]),l.useEffect(()=>{const A=se.current;if(!A||!b)return;const N=M=>{!M.ctrlKey&&!M.metaKey||(M.preventDefault(),M.stopPropagation(),!(!M.deltaY||performance.now()-ue.current<45)&&(ue.current=performance.now(),Me(F=>sg(F,M.deltaY),M.clientY)))};return A.addEventListener("wheel",N,{passive:!1}),()=>A.removeEventListener("wheel",N)},[b]),l.useEffect(()=>{var M;if((M=se.current)==null||M.scrollTo({top:0,behavior:"auto"}),z.current+=1,!S){w(null),j(0),V("idle");return}let A=!1,N;return w(null),j(0),V("loading"),Se(""),Z([]),ne(-1),(async()=>{try{const F=await td();if(A)return;const G=new Uint8Array(await S.arrayBuffer());if(A)return;N=F.getDocument({data:G});const te=await N.promise;if(A)return;w(te),j(te.numPages),V("idle")}catch{A||V("error")}})(),()=>{A=!0,N==null||N.destroy()}},[S]),l.useEffect(()=>{if(!b||!v)return;const A=requestAnimationFrame(()=>{var N,M;
200(M=(N=se.current)==null?void 0:N.querySelector('[data-source-pdf-page="'+ng(B.current,v)+'"]'))==null||M.scrollIntoView({block:"start"})});return()=>cancelAnimationFrame(A)},[b,v]),l.useEffect(()=>{const A=le.current,N=se.current;if(!A||!N||!b)return;le.current=null;const M=requestAnimationFrame(()=>{const F=N.querySelector('[data-source-pdf-page="'+A.page+'"]');if(!F)return;const G=F.getBoundingClientRect();N.scrollTop+=G.top+A.fraction*G.height-A.clientY});return()=>cancelAnimationFrame(M)},[Y,ye,b]),l.useEffect(()=>()=>{var A;U.current!==null&&cancelAnimationFrame(U.current),(A=re.current)==null||A.call(re)},[]);const _=()=>{U.current===null&&(U.current=requestAnimationFrame(()=>{U.current=null;const A=se.current;if(!A||!b)return;const N=A.getBoundingClientRect().top+64,M=Array.from(A.querySelectorAll("[data-source-pdf-page]"),G=>({page:Number(G.dataset.sourcePdfPage),top:G.getBoundingClientRect().top})),F=ig(M,N);F!==B.current&&(B.current=F,i(F))}))};l.useEffect(()=>{const A=++z.current;if(Z([]),ne(-1),!b||!K.trim()){Ee(!1);return}Ee(!0);const N=window.setTimeout(()=>{(async()=>{const M=[];try{for(let F=1;F<=b.numPages;F++){const G=await(await b.getPage(F)).getTextContent();if(A!==z.current)return;const te=G.items.filter(ie=>"str"in ie).map(ie=>ie.str);for(const ie of og(te,K))M.push({...ie,page:F,index:M.length})}if(A!==z.current)return;Z(M),ne(M.length?Math.max(0,M.findIndex(F=>F.page>=B.current)):-1)}catch(F){A===z.current&&console.warn("[source-pdf] search failed",F)}finally{A===z.current&&Ee(!1)}})()},220);return()=>{window.clearTimeout(N),z.current+=1}},[b,K]),l.useEffect(()=>{var N,M;const A=ee[fe];A&&A.page!==B.current&&(i(A.page),(M=(N=se.current)==null?void 0:N.querySelector('[data-source-pdf-page="'+A.page+'"]'))==null||M.scrollIntoView({block:"start"}))},[ee,fe]);const m=l.useMemo(()=>{const A=new Map;for(const N of ee)A.set(N.page,[...A.get(N.page)||[],N]);return A},[ee]),P=A=>ne(N=>cg(N,ee.length,A)),O=A=>{var F;A.preventDefault(),(F=re.current)==null||F.call(re);const N=G=>f(window.innerWidth-G.clientX),M=()=>{window.removeEventListener("pointermove",N),window.removeEventListener("pointerup",M),re.current=null};re.current=M,window.addEventListener("pointermove",N),window.addEventListener("pointerup",M,{once:!0})},k=Math.max(300,ye-40)*Y;return p.jsxs("aside",{className:"source-pdf-reader absolute right-0 top-0 z-[91] flex h-full flex-col border-l border-[#e8d9d1] bg-[#fffaf6] text-[#354457] shadow-[-18px_0_50px_rgba(32,26,33,.22)]","aria-label":d.title,onKeyDown:A=>{var N,M;A.stopPropagation(),(A.ctrlKey||A.metaKey)&&A.key.toLowerCase()==="f"?(A.preventDefault(),(N=Oe.current)==null||N.focus(),(M=Oe.current)==null||M.select()):A.key==="F3"?(A.preventDefault(),P(A.shiftKey?-1:1)):A.key==="Escape"&&c()},children:[p.jsx("div",{className:"source-pdf-resize absolute left-0 top-0 z-10 flex h-full w-3 -translate-x-1/2 cursor-col-resize items-center justify-center",role:"separator","aria-orientation":"vertical","aria-label":d.resize,title:d.resize,tabIndex:0,onPointerDown:O,onKeyDown:A=>{var N;(A.key==="ArrowLeft"||A.key==="ArrowRight")&&(A.preventDefault(),A.stopPropagation(),f((((N=se.current)==null?void 0:N.clientWidth)||0)+(A.ke
200y==="ArrowLeft"?40:-40)))},children:p.jsx("span",{className:"source-pdf-resize-grip","aria-hidden":"true"})}),p.jsxs("header",{className:"flex shrink-0 items-center gap-3 border-b border-[#f1e4dc] px-4 py-3",children:[p.jsx("div",{className:"flex h-10 w-10 shrink-0 items-center justify-center rounded-xl bg-[#fff0ec] text-[#b76d79]",children:p.jsx(mh,{size:19,strokeWidth:1.8})}),p.jsxs("div",{className:"min-w-0 flex-1",children:[p.jsx("h2",{className:"font-serif text-[17px] font-semibold leading-tight tracking-wide",children:d.title}),p.jsx("p",{className:"mt-0.5 truncate text-xs text-[#8a8d95]",title:S==null?void 0:S.name,children:(S==null?void 0:S.name)||d.scroll})]}),b&&p.jsxs("span",{className:"shrink-0 rounded-full bg-[#f6eee9] px-2.5 py-1 text-xs tabular-nums text-[#796c70]",children:[r," / ",v]}),p.jsx("button",{type:"button","aria-label":d.close,onClick:c,className:"rounded-lg p-2 text-[#7c8895] transition-colors hover:bg-[#f5e9e8] hover:text-[#aa5969]",children:p.jsx(hh,{size:18})})]}),p.jsxs("div",{className:"flex shrink-0 items-center gap-2 border-b border-[#f1e4dc] px-4 py-2.5",children:[e.length>1&&p.jsx("select",{"aria-label":d.title,className:"max-w-36 truncate rounded-lg border border-[#e9dcd5] bg-white px-2 py-2 text-xs",value:t,onChange:A=>{n(Number(A.target.value)),i(1)},children:e.map((A,N)=>p.jsx("option",{value:N,children:A.name},A.name+"-"+N))}),p.jsx("input",{ref:me,className:"hidden",type:"file",accept:".pdf,application/pdf",onChange:A=>{var M;const N=(M=A.target.files)==null?void 0:M[0];N&&o(N),A.target.value=""}}),p.jsxs("button",{type:"button","aria-label":d.choose,title:d.choose,onClick:()=>{var A;return(A=me.current)==null?void 0:A.click()},className:"flex shrink-0 items-center gap-1.5 rounded-lg border border-[#e9dcd5] bg-white px-2.5 py-2 text-xs text-[#6b7280] transition-colors hover:border-[#d8acb2] hover:text-[#a75567]",children:[p.jsx(ph,{size:14}),d.change]}),b&&p.jsxs("form",{onSubmit:A=>{A.preventDefault(),P(1)},className:"flex min-w-0 flex-1 items-center gap-1 rounded-lg border border-[#e9dcd5] bg-white px-2 focus-within:border-[#d8a0a9]",children:[p.jsx(gh,{size:15,className:"shrink-0 text-[#a2a8af]"}),p.jsx("input",{ref:Oe,"aria-label":d.search,placeholder:d.search,value:K,onChange:A=>Se(A.target.value),onKeyDown:A=>{A.key==="Enter"&&A.shiftKey?(A.preventDefault(),P(-1)):A.key==="Escape"&&(A.stopPropagation(),Se(""))},className:"min-w-0 flex-1 bg-transparent py-2 text-xs outline-none"}),K.trim()&&p.jsx("span",{role:"status",className:"shrink-0 text-[11px] tabular-nums text-[#8a7d83]",children:Pe?d.searching:ee.length?`${fe+1}/${ee.length}`:d.noMatch}),p.jsx("button",{type:"button","aria-label":d.previous,title:d.previous,disabled:!ee.length,onClick:()=>
200P(-1),className:"rounded p-1 text-[#8c7480] hover:bg-[#fff0ec] disabled:opacity-40",children:p.jsx(Eh,{size:15})}),p.jsx("button",{type:"submit","aria-label":d.next,title:d.next,disabled:!ee.length,className:"rounded p-1 text-[#8c7480] hover:bg-[#fff0ec] disabled:opacity-40",children:p.jsx(bh,{size:15})})]}),b&&p.jsxs("div",{className:"flex shrink-0 items-center gap-0.5 rounded-lg border border-[#e9dcd5] bg-white p-0.5",children:[p.jsx("button",{type:"button","aria-label":d.zoomOut,onClick:()=>Me(A=>Math.max(.5,A-.25)),className:"rounded p-1.5 hover:bg-[#f7eeea]",children:p.jsx(Th,{size:14})}),p.jsxs("button",{type:"button",title:d.fit,onClick:()=>Me(()=>1),className:"min-w-9 rounded px-1 text-[11px] tabular-nums hover:bg-[#f7eeea]",children:[Math.round(Y*100),"%"]}),p.jsx("button",{type:"button","aria-label":d.zoomIn,onClick:()=>Me(A=>Math.min(3,A+.25)),className:"rounded p-1.5 hover:bg-[#f7eeea]",children:p.jsx(Sh,{size:14})})]})]}),p.jsxs("div",{ref:se,"data-testid":"source-pdf-scroll",onScroll:_,className:"source-pdf-scroll min-h-0 flex-1 overflow-auto bg-[#eee9e4] px-4 py-5",children:[$==="loading"&&p.jsx("p",{className:"py-12 text-center text-sm text-[#887e79]",children:d.loading}),$==="error"&&p.jsx("p",{className:"py-12 text-center text-sm text-red-600",children:d.error}),!S&&p.jsx("p",{className:"mx-auto max-w-sm py-12 text-center text-sm leading-relaxed text-[#887e79]",children:d.empty}),b&&Array.from({length:v},(A,N)=>p.jsx(lg,{pdf:b,number:N+1,width:k,scrollRoot:se,label:d.page,matches:m.get(N+1)||ug,activeMatchIndex:fe},N+1))]})]})},rd={zh:"zh",cn:"zh","zh-cn":"zh","zh-hans":"zh",chinese:"zh","simplified chinese":"zh",䏿:"zh",æ±è¯:"zh",æ¼¢èª:"zh",ç®ä½ä¸æ:"zh",ç¹é«ä¸æ:"zh",en:"en","en-us":"en","en-gb":"en",english:"en",è±æ:"en",è±è¯:"en",ja:"ja",jp:"ja","ja-jp":"ja",japanese:"ja",æ¥æ¬èª:"ja",æ¥æ:"ja",æ¥è¯:"ja",ru:"ru","ru-ru":"ru",russian:"ru",ÑÑÑÑкий:"ru",ä¿æ:"ru",ä¿è¯:"ru"},fg=new Set(Object.values(rd)),mg=new Set(["zh","en","ja"]);function wo(e){return String(e??"").trim().toLowerCase().replace(/_/g,"-").replace(/\s+/g," ")}function ws(e,t="zh"){const r=String(e??"").trim(),a=wo(r);return!a||a==="default"?t:rd[a]||r}function hg(e,t="zh"){const r=ws(e,t);return fg.has(r)?r:t}function sn(e,t="zh"){const r=String(e??"").trim(),a=ws(t,"zh");return!r||wo(r)==="default"?a:ws(r,a)}function Rs(e){const t=ws(e,"");return mg.has(t)?t:null}function pg(e,t="zh"){return Rs(e)||Rs(t)||"zh"}function gg(e,t,r="zh"){const a=String(e??"").trim(),n=wo(a);return!a||n==="auto"||n==="default"?Rs(t)||Rs(r)||"zh":pg(a,r)}function ad(e){const t=hg(e,"");return t||null}const Vi=e=>typeof e=="string"?e.trim():"",Eg=e=>{var t;if(typeof e!="string"||!e.trim())return!1;try{const r=JSON.parse(e);return Array.isArray((t=r==null?void 0:r.script)==null?void 0:t.frames)&&r.script.frames.length>0}catch{return!1}},bg=e=>Vi(e.generationStatus)==="failed"&&Vi(e.voiceStatus)!=="cancelled"&&e.voiceEnabled===!0&&!!Vi(e.analysisJobId)&&!!e.textCompletedAt&&Eg(e.gameState),nd=e=>{const t=Number(e.voiceTotal),r=Number(e.voiceTerminal);return bg(e)&&Number.isFinite(t)&&t>0&&Number.isFinite(r)&&r>=t},Tg=4e3;function Sg(e,t){const r=typeof e.title=="string"?e.title.trim():"",a=typeof t.chapterTitle=="string"?t.chapterTitle.trim():"",n=i=>!i||/^(?:Untitled|æªå½å讲解|æªå½å论æ|çæä¸çè¯é³è®²è§£)$/i.test(i);return n(r)&&!n(a)?{...e,title:a}:e}const Ag=new Set(["queued","generating","text_ready","voice_waiting","succeeded","failed","cancelled"]),Ig=new Set(["none","queued","active","succeeded","failed","cancelled"]),yg=new Set(["succeeded","failed","cancelled"]),_g=["analysisJobId","generationStatus","voiceStatus","voiceEnabled","voiceTtsMode","voiceTotal","voiceTerminal","voiceQueueState","voiceQueueJobsAhead","voiceQueueFramesAhead","voiceQueueEtaMinutes","generationError","textCompletedAt","voiceCompletedAt","completedAt","updatedAt"],Ro=e=>typeof e=="string"?e.trim():"",No=e=>typeof e.gameState=="string"&&e.gameState.trim().length>0,GA=e=>{var t;if(!No(e))return!1;try{const r=JSON.parse(e.gameState);return(Array.isArray((t=r==null?void 0:r.script)==null?void 0:t.frames)?r.script.frames:Array.isArray(r==null?void 0:r.frames)?r.frames:[]).some(n=>
200typeof(n==null?void 0:n.audioUrl)=="string"&&n.audioUrl.trim().length>0)}catch{return!1}},Cg=e=>!Ro(e.generationStatus)&&No(e),Po=e=>{if(nd(e))return"succeeded";const t=Ro(e.generationStatus);return Ag.has(t)?t:Cg(e)?"succeeded":null},wg=e=>{if(nd(e))return"succeeded";const t=Ro(e.voiceStatus);return Ig.has(t)?t:null},YA=e=>{const t=Po(e);return!!(e.analysisJobId&&t&&!yg.has(t))},Rg=e=>Po(e)==="succeeded"&&No(e),Ng=e=>{const t=Math.max(0,Number(e.voiceTotal)||0),r=Math.max(0,Number(e.voiceTerminal)||0);return t>0?`è¯é³è¿åº¦ ${Math.min(r,t)} / ${t}`:""},Pg=e=>{const t=Math.max(0,Number(e.voiceQueueJobsAhead)||0),r=Math.max(0,Number(e.voiceQueueFramesAhead)||0),a=Math.max(0,Number(e.voiceQueueEtaMinutes)||0),n=a>0?`ï¼é¢è®¡çº¦ ${a} åé`:"";return t>0?`åæ¹ ${t} ç¯è®ºæ${r>0?` / ${r} æ¡è¯é³å¸§`:""}${n}`:r>0?`åæ¹ ${r} æ¡è¯é³å¸§${n}`:n?`éåç¶æå·²æ´æ°${n}`:""},sd=e=>{const t=Po(e)||"generating",r=wg(e),a=Ng(e),n=Pg(e);return t==="failed"?{kind:"failed",label:"çæå¤±è´¥",detail:e.generationError||"çæä»»å¡å¤±è´¥ï¼è¯·éæ°çæååæå¼ã",tone:"danger"}:t==="cancelled"?{kind:"cancelled",label:"已忶",detail:"çæä»»å¡å·²åæ¶ï¼è¯·éæ°çæååæå¼ã",tone:"warning"}:t==="succeeded"?{kind:"succeeded",label:"已宿",detail:r==="succeeded"?"è¯é³å·²åå¤å¥½":"",tone:"success"}:t==="voice_waiting"||r==="active"?{kind:"voice_waiting",label:"è¯é³çæä¸",detail:a||n||"è¯é³ä»»å¡æ£å¨çæï¼å®æåä¼èªå¨å·æ°ã",tone:"info"}:t==="queued"?{kind:"queued",label:"æéä¸",detail:n||"çæä»»å¡æ£å¨æéã",tone:"neutral"}:{kind:"generating",label:"çæä¸",detail:"æ£ææ£å¨çæï¼è¯·ç¨ååæå¼ã",tone:"info"}},xg=e=>{const t=sd(e);return t.kind==="failed"||t.kind==="cancelled"?t.detail:`${t.label}ï¼å®æåä¼èªå¨å·æ°ï¼è¯·ç¨ååæå¼ã`},zA=(e,t)=>{let r=!1;const a={...e};for(const n of _g)t[n]!==e[n]&&(a[n]=t[n],r=!0);return r?a:e},WA=({ids:e,intervalMs:t=Tg,getToken:r,fetchStatus:a,onStatuses:n,onSucceeded:i,onUnauthorized:o,onError:c,setTimeoutFn:f=setTimeout,clearTimeoutFn:d=clearTimeout})=>{let S=!0,b=!1,w=null;const v=()=>{w&&(d(w),w=null)},j=V=>{S||e.length===0||(v(),w=f(V,t))},$=async()=>{if(!(S||b)){b=!0;try{const V=r();if(!V)return;const Y=await Promise.all(e.map(async K=>{try{return await a(K,V)}catch(Se){return c==null||c(Se,K),null}}));if(S)return;if(Y.some(K=>K==="unauthorized")){S=!0,v(),o();return}const q=Y.filter(K=>!!(K&&K!=="unauthorized"));if(q.some(K=>K.generationStatus==="succeeded")){await i();return}q.length>0&&await n(q)}finally{b=!1,j(()=>{$()})}}};return{start:()=>{S&&(S=!1,$())},stop:()=>{S=!0,v()},isRunning:()=>!S,isInFlight:()=>b}};function Og(e){e.CapacitorUtils.Synapse=new Proxy({},{get(t,r){return new Proxy({},{get(a,n){return(i,o,c)=>{const f=e.Capacitor.Plugins[r];if(f===void 0){c(new Error(`Capacitor plugin ${r} not found`));return}if(typeof f[n]!="function"){c(new Error(`Method ${n} not found in Capacitor plugin ${r}`));return}(async()=>{try{const d=await f[n](i);o(d)}catch(d){c(d)}})()}}})}})}function vg(e){e.CapacitorUtils.Synapse=new Proxy({},{get(t,r){return e.cordova.plugins[r]}})}function Lg(e=!1){typeof window>"u"||(window.CapacitorUtils=window.CapacitorUtils||{},window.Capacitor!==void 0&&!e?Og(window):window.cordova!==void 0&&vg(window))}const kg=nr("FileTransfer",{web:()=>Be(()=>import("./web-BjKL51lK-B6_iPXHq.js"),__vite__mapDeps([47,4,6,7,3,2,5]),import.meta.url).then(e=>new e.FileTransferWeb)});Lg();function Dg(e){e.CapacitorUtils.Synapse=new Proxy({},{get(t,r){return new Proxy({},{get(a,n){return(i,o,c)=>{const f=e.Capacitor.Plugins[r];if(f===void 0){c(new Error(`Capacitor plugin ${r} not found`));return}if(typeof f[n]!="function"){c(new Error(`Method ${n} not found in Capacitor plugin ${r}`));return}(async()=>{try{const d=await f[n](i);o(d)}catch(d){c(d)}})()}}})}})}function Mg(e){e.CapacitorUtils.Synapse=new Proxy({},{get(t,r){return e.cordova.plugins[r]}})}function Ug(e=!1){typeof window>"u"||(window.CapacitorUtils=window.CapacitorUtils||{},window.Capacitor!==void 0&&!e?Dg(window):window.cordova!==void 0&&Mg(window))}var Ut;(function(e){e.Documents="DOCUMENTS",e.Data="DATA",e.Library="LIBRARY",e.Cache="CACHE",e.External="EXTERNAL",e.ExternalStorage="EXTERNAL_STORAGE",e.ExternalCache="EXTERNAL_CACHE",e.LibraryNoCloud="LIBRARY_NO_CLOUD",e.Temporary="TEMPORARY"})(Ut||(Ut={}));var Ns;(function(e){e.UTF8="utf8",e.ASCII="ascii",e.UTF16="utf16"})(Ns||(Ns={}));const ar=nr("Filesystem",{web:()=>Be(()=>import("./web-B8kf_4VD.js"),__vite__mapDeps([48,4,6,7,3,2,5]),import.meta.url).then(e=>new e.FilesystemWeb)});Ug();const Bg=new Set(Object.values(lt)),Fg=new Set(["replace","append","clear"]),Hg=new TextEncoder;function id(){return{version:ys,entries:[]}}function Vs(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function kr(e){return typeof e=="string"&&e.trim().length>0}function jg(e){return typeof e=="number"&&Number.isInteger(e)}function Vg(e){return e.entries.length<=Ll&&Ps(e)<=_s}function Gs(e,t){return Object.keys(e).every(r=>t.includes(r))}function Gg(e,t=!1){return!Vs(e)||t&&!Gs(e,["frameId","speaker","text"])||!jg(e.frameId)||!kr(e.speaker)||!kr(e.text)?null:{frameId:e.frameId,speaker:e.speaker,text:e.text}}function Yg(e,t=!1){if(!Vs(e)||t&&!Gs(e,["speaker","text","emotion","isImportant","blackboard","blackboardMode"])||!kr(e.speaker)||!kr(e.text))return null;const r={speaker:e.speaker.trim(),text:e.text.trim()};if(e.emotion!==void 0){if(typeof e.emotion!="string"||!Bg.has(e.emotion))return null;r.emotion=e.emotion}if(e.isImportant!==void 0){if(typeof e.isImportant!="boolean")return null;r.isImportant=e.isImportant}if(e.blackboard!==void 0){if(!kr(e.blackboard))return null;r.blackboard=e.blackboard.trim()}if(e.blackboardMode!==void 0){if(typeof e.blackboardMode!="string"||!Fg.has(e.blackboardMode))return null;r.blackboardMode=e.blackboardMode}return r.blackboardMode==="append"&&!r.blackboard||r.blackboardMode==="replace"&&!r.blackboard?null:r}function od(e,t=!1){if(!Vs(e)||t&&!Gs(e,["operationId","anchor","question","playerSpeaker","steps"])||!kr(e.operationId)||!kr(e.question)||!kr(e.playerSpeaker))return null;const r=Gg(e.anchor,t);if(!r||!Array.isArray(e.steps)||e.steps.length===0||e.steps.length>8)return null;const a=e.steps.map(n=>Yg(n,t));return a.some(n=>n===null)?null:{operationId:e.operationId.trim(),anchor:r,question:e.question.trim(),playerSpeaker:e.playerSpeaker.trim(),steps:a}}function xo(e){if(e==null||!Vs(e)||!Gs(e,["version","entries"])||e.version!==ys||!Array.isArray(e.entries))return null;const t=e.entries.map(n=>od(n,!0));if(t.some(n=>n===null))return null;const r=t.map(n=>n.operationId);if(new Set(r).size!==r.length)return null;const a={version:ys,entries:t};return Vg(a)?a:null}function Ps(e){return Hg.encode(JSON.stringify(e)).byteLength}function zg(e,t){return JSON.stringify(e)===JSON.stringify(t)}function Wg(e,t){const a=xo(e)||id(),n=od(t);if(!n)return{ok:!1,status:"invalid",archive:a,reason:"invalid entry"};const i=a.entries.find(c=>c.operationId===n.operationId);if(i)return zg(i,n)?{ok:!0,status:"duplicate",archive:a,entry:i}:{ok:!1,status:"conflict",archive:a,reason:"operation ID payload conflict"};
200if(a.entries.length>=Ll)return{ok:!1,status:"capacity",archive:a,reason:"entry count limit exceeded"};const o={version:ys,entries:[...a.entries,n]};return Ps(o)>_s?{ok:!1,status:"capacity",archive:a,reason:"UTF-8 archive size limit exceeded"}:{ok:!0,status:"appended",archive:o,entry:n}}function $g(e,t,r={}){const a=xo(e)||id();if(!t)return{status:a.entries.length?"stale":"empty",entries:[]};const n=a.entries.filter(i=>{var o;return i.anchor.frameId===t.id&&i.anchor.speaker===t.speaker&&i.anchor.text===t.text&&!((o=r.alreadySeenOperationIds)!=null&&o.has(i.operationId))});return n.length?{status:"ready",entries:n}:{status:a.entries.some(o=>o.anchor.frameId===t.id&&o.anchor.speaker===t.speaker&&o.anchor.text===t.text)?"ready":a.entries.length?"stale":"empty",entries:[]}}function qg(e){return e.flatMap(t=>[{kind:"question",operationId:t.operationId,speaker:t.playerSpeaker,text:t.question},...t.steps.map(r=>({kind:"answer",operationId:t.operationId,...r}))])}function ta(e){return e!=null&&xo(e)!==null}const Qg=/https:\/\/assert\.paper2gal\.com\/[^\s"'<>()[\]]+/g,Kg=/\.(?:avif|gif|jpe?g|png|svg|webp|mp3|m4a|ogg|wav|aac|flac|mp4|webm|json|moc3|model3)(?:[?#]|$)/i,Xg=["https://assert.paper2gal.com/lofi-bgm-20260523/"];function ro(e,t=new Set){if(typeof e=="string"){for(const r of e.matchAll(Qg)){const a=r[0].replace(/[),.;]+$/,"");Xg.some(n=>a.startsWith(n))||Kg.test(a)&&t.add(a)}return t}return Array.isArray(e)?(e.forEach(r=>ro(r,t)),t):(e&&typeof e=="object"&&Object.values(e).forEach(r=>ro(r,t)),t)}function xs(e,t){if(typeof e=="string"){let r=e;return t.forEach((a,n)=>{r=r.split(n).join(a)}),r}return Array.isArray(e)?e.map(r=>xs(r,t)):e&&typeof e=="object"?Object.fromEntries(Object.entries(e).map(([r,a])=>[r,xs(a,t)])):e}const Pa="paper2gal/offline",cd=`${Pa}/registry.json`,ud=`${Pa}/story-question-archives.json`,ld=`${Pa}/assets`,Oo=new Map;let Mu=Promise.resolve(),Uu=Promise.resolve(),Bu=Promise.resolve();const fs=new Map,Aa=new Map,xr=new Map,Ts=new Set,ms=new Map,An=new Map,rt=()=>_t.isNativePlatform(),$A=()=>rt(),Ur=e=>encodeURIComponent(e),Nn=e=>`${Pa}/saves/${Ur(e)}.json`,vo=e=>`${Pa}/manifests/${Ur(e)}.json`,Pn=e=>`save:${Ur(e)}`,Lo=e=>`manifest:${Ur(e)}`,Ys=(e,t)=>`${Pa}/story-question-archives/${Ur(e)}/${Ur(t)}.json`,xn=(e,t)=>`story-question-archive:${Ur(e)}:${Ur(t)}`,Fu="story-question-archive:";function Jg(e){if(!e.startsWith(Fu))return null;const t=e.slice(Fu.length),r=t.lastIndexOf(":");if(r<=0)return null;try{return{ownerId:decodeURIComponent(t.slice(0,r)),saveId:decodeURIComponent(t.slice(r+1))}}catch{return null}}async function xa(e){try{const t=await ar.readFile({path:e,directory:Ut.LibraryNoCloud,encoding:Ns.UTF8});return JSON.parse(String(t.data))}catch{return null}}async function ra(e,t){await ar.writeFile({path:e,directory:Ut.LibraryNoCloud,encoding:Ns.UTF8,recursive:!0,data:JSON.stringify(t)})}function ko(){return typeof indexedDB>"u"?Promise.resolve(null):new Promise(e=>{const t=indexedDB.open("paper2gal_offline",1);t.onupgradeneeded=()=>{t.result.objectStoreNames.contains("records")||t.result.createObjectStore("records")},t.onsuccess=()=>e(t.result),t.onerror=()=>e(null)})}async function Oa(e){const t=await ko();if(!t){const r=Oo.get(e);return r?JSON.parse(r):null}return new Promise(r=>{const a=t.transaction("records","readonly").objectStore("records").get(e);a.onsuccess=()=>r(a.result??null),a.onerror=()=>r(null)})}async function aa(e,t){const r=await ko();if(!r){Oo.set(e,JSON.stringify(t));return}await new Promise((a,n)=>{const i=r.transaction("records","readwrite");i.objectStore("records").put(t,e),i.oncomplete=()=>a(),i.onerror=()=>n(i.error)})}async function Do(e){const t=await ko();Oo.delete(e),t&&await new Promise(r=>{const a=t.transaction("records","readwrite");a.objectStore("records").delete(e),a.oncomplete=()=>r(),a.onerror=()=>r()})}async function Mo(){return rt()?await xa(cd)||[]:await Oa("registry")||[]}async function Zg(e){const t=Array.from(new Set(e.filter(Boolean)));rt()?await ra(cd,t):await aa("registry",t)}function Os(e){const t=Mu.then(r,r);return Mu=t.then(()=>{},()=>{}),t;async function r(){const a=await Mo();await Zg(e(a))}}function Uo(e){const t=Uu.then(e,e);return Uu=t.then(()=>{},()=>{}),t}function dd(e,t){const a=(fs.get(e)||Promise.resolve()).then(t,t),n=a.then(()=>{},()=>{});return fs.set(e,n),n.then(()=>
200{fs.get(e)===n&&fs.delete(e)}),a}function Hu(e,t){const a=(ms.get(e)||Promise.resolve()).then(t,t),n=a.then(()=>{},()=>{});return ms.set(e,n),n.then(()=>{ms.get(e)===n&&ms.delete(e)}),a}function eE(e,t){const r=An.get(e)||new Set;r.add(t),An.set(e,r)}function tE(e,t){const r=An.get(e);r&&(r.delete(t),r.size===0&&An.delete(e))}function rE(e,t){const r=An.get(e);return!!(r&&Array.from(r).some(a=>a!==t))}function wa(){const e=new Map(Aa);let t=!1;const r={isCurrent:a=>!t&&(Aa.get(a)||0)===(e.get(a)||0),release:()=>{t||(t=!0,Ts.delete(r),Ts.size===0&&Aa.clear())}};return Ts.add(r),r}function $e(e,t={}){return(!t.cacheEpoch||t.cacheEpoch.isCurrent(e))&&(!t.shouldCommit||t.shouldCommit())}function aE(e){Aa.set(e,(Aa.get(e)||0)+1),Ts.size===0&&Aa.clear()}async function zs(){return rt()?await xa(ud)||[]:await Oa("story-question-archive-registry")||[]}async function Ia(e){const t=Array.from(new Set(e.filter(Boolean)));rt()?await ra(ud,t):await aa("story-question-archive-registry",t)}function Ws(e){const t=Bu.then(e,e);return Bu=t.then(()=>{},()=>{}),t}async function nE(e){return rt()?xa(Nn(e)):Oa(Pn(e))}async function ju(e){rt()?await ra(Nn(e.id),e):await aa(Pn(e.id),e)}async function vs(e){rt()?await ar.deleteFile({path:Nn(e),directory:Ut.LibraryNoCloud}).catch(()=>{}):await Do(Pn(e))}async function Ls(e,t){rt()?await ar.deleteFile({path:Ys(e,t),directory:Ut.LibraryNoCloud}).catch(()=>{}):await Do(xn(e,t))}async function ao(e,t,r){const a=xn(e,t),n=await zs();if(r){rt()?await ra(Ys(e,t),r):await aa(a,r),n.includes(a)||await Ia([...n,a]);return}await Ls(e,t),await Ia(n.filter(i=>i!==a))}async function Gi(e,t,r,a){await Ws(async()=>{const n=await Bo(e,t);!n||n.revision!==a.revision||JSON.stringify(n.archive)!==JSON.stringify(a.archive)||await ao(e,t,r)})}async function Bo(e,t){const r=rt()?await xa(Ys(e,t)):await Oa(xn(e,t));return!r||r.ownerId!==e||r.saveId!==t||!Number.isInteger(r.revision)||r.revision<0||!ta(r.archive)?null:r}const sE=new Set(["storyQuestionArchive","storyQuestionRevision","storyQuestionReplay","storyQuestionReplayCursor","privateStoryQuestionArchive","privateStoryQuestionRevision"]);function no(e){return Array.isArray(e)?e.map(no):!e||typeof e!="object"?e:Object.fromEntries(Object.entries(e).filter(([t])=>!sE.has(t)).map(([t,r])=>[t,no(r)]))}function $s(e){const{storyQuestionArchive:t,storyQuestionRevision:r,...a}=e;if(typeof a.gameState!="string")return a;try{a.gameState=JSON.stringify(no(JSON.parse(a.gameState)))}catch{}return a}function fd(e,t){return!!(e&&t.userId&&t.userId===e)}async function so(e,t={}){if(!e.ownerId||!e.saveId||!ta(e.archive)||!Number.isInteger(e.revision)||e.revision<0)return!1;const r=t.cacheEpoch?void 0:wa(),a={...t,cacheEpoch:t.cacheEpoch||r},n=xn(e.ownerId,e.saveId),i=xr.get(n)||0;return Ws(async()=>{var o;try{if((xr.get(n)||0)!==i||!$e(e.saveId,a))return!1;const c=await Bo(e.ownerId,e.saveId);if(c&&c.revision>=e.revision||!$e(e.saveId,a))return!1;const f=c,d=await zs(),S={...e,updatedAt:e.updatedAt||new Date().toISOString()};return rt()?await ra(Ys(e.ownerId,e.saveId),S):await aa(n,S),(xr.get(n)||0)!==i?(await Ls(e.ownerId,e.saveId),await Ia(d.filter(b=>b!==n)),!1):$e(e.saveId,a)?(d.includes(n)||await Ia([...d,n]),(xr.get(n)||0)!==i?(await Ls(e.ownerId,e.saveId),await Ia(d.filter(b=>b!==n)),!1):$e(e.saveId,a)?(xr.get(n)===i&&xr.delete(n),!0):(await ao(e.ownerId,e.saveId,f),!1)):(await ao(e.ownerId,e.saveId,f),!1)}finally{(o=r==null?void 0:r.release)==null||o.call(r)}})}async function On(e,t){return!e||!t?null:Ws(()=>Bo(e,t))}async function Vu(e,t){if(!e||!t)return;const r=xn(e,t);xr.set(r,(xr.get(r)||0)+1),await Ws(async()=>{const a=await zs();await Ia(a.filter(n=>n!==r)),await Ls(e,t)})}async function md(e,t,r){if(!(e!=null&&e.id)||!$e(e.id,r))return!1;const a=e,n=await nE(a.id);let i=!1,o=null;if(t&&fd(t,a)&&ta(a.storyQuestionArchive)&&Number.isInteger(a.storyQuestionRevision)&&(o=await On(t,a.id),i=await so({ownerId:t,saveId:a.id,archive:a.storyQuestionArchive,revision:a.storyQuestionRevision},r),!$e(e.id,r)))return i&&t&&(!r.cacheEpoch||r.cacheEpoch.isCurrent(e.id))&&await Gi(t,e.id,o,{archive:a.storyQuestionArchive,revision:a.storyQuestionRevision}),!1;const c=$s(a);if(!$e(c.id,r))return!1;if(rt()?await ra(Nn(c.id),c):await aa(Pn(c.id),c),!$e(c.id,r))return n?await ju(n):await vs(c.id),i&&t&&(!r.cacheEpoch||r.cacheEpoch.isCurrent(c.id))&&await Gi(t,c.id,o,{archive:a.storyQuestionArchive,revision:a.storyQuestionRevision}),!1;let f=!1;return await Os(d=>
200(f=d.includes(c.id),f?d:[...d,c.id])),$e(c.id,r)?!0:(await Os(d=>r.cacheEpoch&&!r.cacheEpoch.isCurrent(c.id)?d.filter(S=>S!==c.id):f?d.includes(c.id)?d:[...d,c.id]:d.filter(S=>S!==c.id)),n?await ju(n):await vs(c.id),i&&t&&(!r.cacheEpoch||r.cacheEpoch.isCurrent(c.id))&&await Gi(t,c.id,o,{archive:a.storyQuestionArchive,revision:a.storyQuestionRevision}),!1)}async function Ea(e,t,r={}){const a=r.cacheEpoch?void 0:wa(),n={...r,cacheEpoch:r.cacheEpoch||a};return Uo(async()=>{var i;try{return await md(e,t,n)}finally{(i=a==null?void 0:a.release)==null||i.call(a)}})}async function qA(e,t,r={}){const a=e.filter(o=>!!(o!=null&&o.id)),n=r.cacheEpoch?void 0:wa(),i={...r,cacheEpoch:r.cacheEpoch||n};return Uo(async()=>{var o;try{const c=[];for(const f of a)await md(f,t,i)&&c.push(f.id);return c.length>0&&c.every(f=>$e(f,i))&&await Os(f=>Array.from(new Set([...f,...c]))),c}finally{(o=n==null?void 0:n.release)==null||o.call(n)}})}async function QA(e={}){const t=e||{},r=await Mo(),a=await Promise.all(r.map(i=>rt()?xa(Nn(i)):Oa(Pn(i))));return(await Promise.all(a.filter((i,o)=>!!(i!=null&&i.id&&i.id===r[o]&&(i!=null&&i.gameState))).filter(i=>t.visibility==="public"||!t.ownerId||i.userId===t.ownerId).map(async i=>{const o=$s(i);if(t.visibility==="public"||!t.ownerId||!fd(t.ownerId,i))return o;const c=await On(t.ownerId,i.id);return c?{...o,storyQuestionArchive:c.archive,storyQuestionRevision:c.revision}:o}))).sort((i,o)=>new Date(o.updatedAt).getTime()-new Date(i.updatedAt).getTime())}async function ya(e){return rt()?xa(vo(e)):Oa(Lo(e))}async function Yi(e){rt()?await ra(vo(e.saveId),e):await aa(Lo(e.saveId),e)}async function io(e){rt()?await ar.deleteFile({path:vo(e),directory:Ut.LibraryNoCloud}).catch(()=>{}):await Do(Lo(e))}async function iE(e,t){const r=await Mo();return(await Promise.all(r.filter(n=>n!==t).map(n=>ya(n)))).some(n=>n==null?void 0:n.resources.some(i=>i.path===e))}function oE(e,t){return JSON.stringify(e)===JSON.stringify(t)}async function cE(e){const t=new TextEncoder().encode(e),r=await crypto.subtle.digest("SHA-256",t);return Array.from(new Uint8Array(r)).map(a=>a.toString(16).padStart(2,"0")).join("")}function uE(e){try{const t=new URL(e).pathname.match(/\.([a-zA-Z0-9]{1,8})$/);return t?`.${t[1].toLowerCase()}`:".bin"}catch{return".bin"}}async function lE(e){return`${ld}/${await cE(e)}${uE(e)}`}async function ba(e){try{return await ar.stat({path:e,directory:Ut.LibraryNoCloud}),!0}catch{return!1}}async function dE(e,t){await ar.mkdir({path:ld,directory:Ut.LibraryNoCloud,recursive:!0});const r=await ar.getUri({path:t,directory:Ut.LibraryNoCloud});await kg.downloadFile({url:e,path:r.uri,connectTimeout:3e4,readTimeout:12e4})}async function KA(e,t,r={}){const a=r.cacheEpoch?void 0:wa(),n=r.cacheEpoch||a,i={...r,cacheEpoch:n},o=()=>({state:"partial",completed:0,total:0,updatedAt:new Date().toISOString()});return dd(e.id,async()=>{var $;const c=r.ownerId&&e.userId===r.ownerId?r.ownerId:null,f=Symbol("offline-save-cache"),d=new Set,S=new Set;let b=null,w=null;const v=async()=>{if(w){const q=await ya(e.id);oE(q,w)&&(b?await Yi(b):await io(e.id))}const V=await ya(e.id),Y=new Set([...((b==null?void 0:b.resources)||[]).map(q=>q.path),...((V==null?void 0:V.resources)||[]).map(q=>q.path)]);for(const q of d)await Hu(q,async()=>{Y.has(q)||rE(q,f)||await iE(q,e.id)||!await ba(q)||await ar.deleteFile({path:q,directory:Ut.LibraryNoCloud}).catch(()=>{})})},j=async(V=0,Y=0)=>(await v(),{state:"partial",completed:V,total:Y,updatedAt:new Date().toISOString()});try{if(!await Ea(e,c,i))return o();if(!$e(e.id,i))return j();if(!rt())return{state:"partial",completed:0,total:0,updatedAt:new Date().toISOString()};const Y=c?await On(c,e.id):null;if(!$e(e.id,i))return j();const q=$s(e),K=JSON.parse(q.gameState),Se=Y?{...K,storyQuestionArchive:Y.archive}:K,ee=Array.from(ro(Se));if(b=await ya(e.id),!$e(e.id,i))return j(0,ee.length);const Z=[...(b==null?void 0:b.resources)||[]],fe=new Map(Z.map(_e=>[_e.remoteUrl,_e]));let ne=0;for(const _e of ee){if(!$e(e.id,i))return j(ne,ee.length);const be=fe.get(_e),se=be?await ba(be.path):!1;if(!$e(e.id,i))return j(ne,ee.length);be&&se&&(ne+=1)}if(!$e(e.id,i))return j(ne,ee.length);t==null||t({state:"downloading",completed:ne,total:ee.length});for(const _e of ee){if(!$e(e.id,i))return j(ne,ee.length);const be=fe.get(_e),se=be?await ba(be.path):!1;if(!$e(e.id,i))return j(ne,ee.length);if(!(be&&se))try{const me=(be==null?void 0:be.path)||await lE(_e);if(!$e(e.id,i))return j(ne,ee.length);const Oe=await ba(me);if(!$e(e.id,i)||(eE(me,f),S.add(me),Oe||await Hu(me,async()=>
200{await ba(me)||(d.add(me),await dE(_e,me))}),!$e(e.id,i)))return j(ne,ee.length);const B={remoteUrl:_e,path:me};fe.set(_e,B),ne+=1;const U={saveId:e.id,state:ne===ee.length?"ready":"partial",resources:Array.from(fe.values()),total:ee.length,updatedAt:new Date().toISOString()};if(!$e(e.id,i)||(await Yi(U),w=U,!$e(e.id,i)))return j(ne,ee.length);t==null||t({state:"downloading",completed:ne,total:ee.length})}catch{console.warn("[OfflineSave] Asset download failed")}}const Pe=ne===ee.length?"ready":"partial",Ee={state:Pe,completed:ne,total:ee.length,updatedAt:new Date().toISOString()},ye={saveId:e.id,state:Pe,resources:Array.from(fe.values()),total:ee.length,updatedAt:Ee.updatedAt};return!$e(e.id,i)||(await Yi(ye),w=ye,!$e(e.id,i))?j(ne,ee.length):(t==null||t(Ee),Ee)}catch(V){return $e(e.id,i)?(console.warn("[OfflineSave] Asset download failed",V),o()):j()}finally{for(const V of S)tE(V,f);($=a==null?void 0:a.release)==null||$.call(a)}})}async function XA(e){const t=await ya(e);return t?{state:t.state,completed:t.resources.length,total:t.total,updatedAt:t.updatedAt}:{state:"none",completed:0,total:0}}async function fE(e){const t=await ar.getUri({path:e,directory:Ut.LibraryNoCloud});return _t.convertFileSrc(t.uri)}async function JA(e,t={}){const r=e,a=t.visibility!=="public"&&!!(t.ownerId&&t.ownerId===e.userId),n=a?await On(t.ownerId,e.id):null,i=ta(r.storyQuestionArchive)&&Number.isInteger(r.storyQuestionRevision)?{archive:r.storyQuestionArchive,revision:r.storyQuestionRevision}:null,o=n&&(!i||n.revision>=i.revision)?n:i,c=a&&o?{storyQuestionArchive:o.archive,storyQuestionRevision:o.revision}:{},f=$s(r);if(!rt())return{...f,...c};const d=await ya(e.id),S=new Map;if(d!=null&&d.resources.length)for(const w of d.resources)await ba(w.path)&&S.set(w.remoteUrl,await fE(w.path));if(S.size===0)return{...f,...c};const b=xs(JSON.parse(f.gameState),S);return{...f,gameState:JSON.stringify(b),...c.storyQuestionArchive?{storyQuestionArchive:xs(c.storyQuestionArchive,S),storyQuestionRevision:c.storyQuestionRevision}:{}}}async function ZA(e,t){e&&(aE(e),await dd(e,()=>Uo(async()=>{if(await Os(r=>r.filter(a=>a!==e)),t)await Vu(t,e);else{const a=(await zs()).map(Jg).filter(n=>!!(n&&n.saveId===e));await Promise.all(a.map(({ownerId:n})=>Vu(n,e)))}if(rt()){await Promise.all([vs(e),io(e)]);return}await Promise.all([vs(e),io(e)])})))}const mE=/^[a-z0-9][a-z0-9_-]{0,63}$/u,hd=128,hE=hd*2,pE={closer:2,playful:1,neutral:0};function ga(){return{selectedChoices:{},relationshipTone:"neutral",relationshipScore:0}}function Ra(e){return typeof e=="string"&&mE.test(e)}function pd(e){return e==="closer"||e==="playful"||e==="neutral"}function gE(e){return pd(e)?e:"neutral"}function EE(e){const t=new Map;for(const r of e)if(Array.isArray(r.choices))for(const a of r.choices){const n=a.choiceId||r.socialChoiceId,i=a.optionId;if(!Ra(n)||!Ra(i))continue;const o=t.get(n)||new Map;o.set(i,gE(a.relationshipEffect)),t.set(n,o)}return t}function bE(e,t){var o;let r=0,a=0,n=0;for(const[c,f]of Object.entries(e)){const d=((o=t.get(c))==null?void 0:o.get(f))||"neutral";n+=pE[d],d==="closer"&&(r+=1),d==="playful"&&(a+=1)}return{relationshipTone:r>0&&r>=a?"closer":a>0?"playful":"neutral",relationshipScore:n}}function In(e,t){var d;const r=e&&typeof e=="object"&&!Array.isArray(e)?e:{},a=r.selectedChoices&&typeof r.selectedChoices=="object"&&!Array.isArray(r.selectedChoices)?r.selectedChoices:{},n=t?EE(t):null,i={};for(const[S,b]of Object.entries(a).slice(0,hd))!Ra(S)||!Ra(b)||n&&!((d=n.get(S))!=null&&d.has(b))||(i[S]=b);if(n)return{selectedChoices:i,...bE(i,n)};const o=pd(r.relationshipTone)?r.relationshipTone:"neutral",c=Number(r.relationshipScore),f=Number.isFinite(c)?Math.max(0,Math.min(hE,Math.round(c))):0;return{selectedChoices:i,relationshipTone:o,relationshipScore:f}}function gd(e,t,r){return In({selectedChoices:Object.fromEntries(Object.entries(e.selectedChoices).filter(([a])=>r.has(a)))},t)}function TE(e){const{frames:t,choiceId:r,optionId:a,activeChoiceIds:n}=e;if(!Ra(r)||!Ra(a))return In(e.state,t);const o={...(n?gd(e.state,t,n):e.state).selectedChoices};return o[r]=a,In({selectedChoices:o},t)}function SE(e,t){return Object.keys(e.selectedChoices).length===0?"":{zh:{closer:"ä¸è·¯å¹¶è©è¯»å°æåï¼ä½ 们ä¹é´çé»å¥ä¹æææ´è¿äºä¸æ¥ã",playful:"è¿åºé
读çä¸äºè½»æ¾çæè¶£ï¼ä¹çä¸äºåªå±äºä½ 们çé»å¥ã",neutral:"ä½ ä»¬ç¨³ç¨³è¯»å®äºè¿ç¯è®ºæï¼ä¹æå
±åçè§£çå¨äºè¿ä¸é¡µã"},en:{closer:"Reading side by side brought the two of you a quiet step closer.",playful:"The reading ended with playful banter and a rapport of your own.",neutral:"You finished the paper together and left this page with a shared understanding."},ja:{closer:"æå¾ã¾ã§ä¸¦ãã§èªã¿é²ããäºäººã®è·é¢ã¯ããã£ã¨ä¸æ©è¿ã¥ãã¾ããã",playful:"ãã®èªæ¸ã«ã¯è»½ãããªæãåãã¨ãäºäººã ãã®å¼å¸ãæ®ãã¾ããã",neutral:"äºäººã§è«æãèªã¿çµãããã®ãã¼ã¸ã«å
±éã®çè§£ãæ®ãã¾ããã"},ru:{closer:"СовмеÑÑное ÑÑение незамеÑно Ñделало Ð²Ð°Ñ Ð½ÐµÐ¼Ð½Ð¾Ð³Ð¾ ближе.",playful:"ÐоÑле ÑÑÐµÐ½Ð¸Ñ Ð¾ÑÑалиÑÑ Ð»Ñгкие ÑÑÑки и оÑобое взаимопонимание.",neutral:"ÐÑ Ð²Ð¼ÐµÑÑе доÑиÑали ÑÑаÑÑÑ Ð¸ ÑоÑ
Ñанили обÑее понимание ÑÑой ÑÑÑаниÑÑ."}}[t][e.relationshipTone]}function Gu(e){const t=e.frames[e.currentFrameIndex],r=[...e.historyFrameIds,t==null?void 0:t.id].filter(o=>Number.isInteger(o)),a=new Map;r.forEach((o,c)=>a.set(o,c));const n=Array.from(a.entries()).sort((o,c)=>o[1]-c[1]).map(([o])=>e.frames.find(c=>c.id===o)).filter(o=>!!o).slice(-12).map(o=>({frameId:o.id,speakerRole:o.speakerRole||"character",...o.beatKind?{beatKind:o.beatKind}:{},...o.action?{action:o.action}:{},...o.performanceBeatId?{performanceBeatId:o.performanceBeatId}:{}})),i=typeof e.relationshipTone=="string"?e.relationshipTone.trim().slice(0,160):"";return{version:1,narrativeStyle:e.narrativeStyle,...i?{relationshipTone:i}:{},recentFrames:n}}const AE=/!\[([^\]]*)\]\((https?:\/\/[^)\s]+)\)/gi,IE=/\n\n---\n\n# ææ¡£å¾çèµäº§[\s\S]*$/,yE=/[\u3400-\u9fff]+/g,_E=/[a-z0-9]{2,}/gi;function hs(e,t){return String(e||"").replace(/[\r\n\[\]]+/g," ").replace(/\s+/g," ").trim().slice(0,t)}function CE(e){const t=new Set,r=e.toLowerCase();for(const a of r.matchAll(yE)){const n=a[0];for(let i=2;i<=Math.min(6,n.length);i+=1)for(let o=0;o<=n.length-i;o+=1)t.add(n.slice(o,o+i))}for(const a of r.matchAll(_E))t.add(a[0]);return[...t]}function wE(e,t){const r=[],a=new Set;for(const n of t)for(const i of Array.isArray(n==null?void 0:n.images)?n.images:[]){const o=String((i==null?void 0:i.url)||"").trim();
200!/^https?:\/\//i.test(o)||a.has(o)||(a.add(o),r.push({index:Number.isFinite(Number(i.index))?Number(i.index):r.length+1,url:o,caption:hs(i.caption||`ææ¡£å¾ç ${i.index}`,80),details:hs(i.details,180),sourcePath:hs(i.sourcePath,120),order:r.length}))}for(const n of e.matchAll(AE)){const i=String(n[2]||"").trim();!i||a.has(i)||(a.add(i),r.push({index:r.length+1,url:i,caption:hs(n[1]||`论æå¾ç ${r.length+1}`,80),details:"",sourcePath:"",order:r.length}))}return r}function Yu(e,t){const r=`${e.caption} ${e.details} ${e.sourcePath}`.toLowerCase();let a=0;for(const n of CE(t))r.includes(n)&&(a+=n.length);return new RegExp(`(?:å¾|figure|fig\\.?)\\s*${e.index}(?:\\D|$)`,"i").test(t)&&(a+=20),a}function zu(e,t){const r=e.trim();if(t<=0)return"";if(r.length<=t)return r;const a=` 201 202[ä¸é´å å®¹å·²æªæ] 203 204`;if(t<=a.length+20)return r.slice(0,t);const n=Math.floor((t-a.length)*.6),i=t-a.length-n;return`${r.slice(0,n)}${a}${r.slice(-i)}`}function RE(e,t,r){if(e.length===0||r<=0)return"";const a="[论æå¾çèµäº§ï¼ä»¥ä¸ Markdown å¾ç龿¥ç±æå¡ç«¯æä¾ï¼å¯å¨ blackboard ä¸åæ ·å¼ç¨]",n=[...e].sort((o,c)=>Yu(c,t)-Yu(o,t)||o.order-c.order),i=[a];for(const o of n){const c=o.caption||`论æå¾ç ${o.index}`,f=``,d=[`å¾ç ${o.index}ï¼${c}`,o.details?`å¾ç说æï¼${o.details}`:"",`åç¡® Markdownï¼${f}`].filter(Boolean).join(` 205`),S=`å¾ç ${o.index}ï¼${f}`,b=` 206 207`,w=`${i.join(b)}${b}${d}`.length<=r?d:S;`${i.join(b)}${b}${w}`.length>r||i.push(w)}return i.length>1?i.join(` 208 209`):""}function NE(e){const t=Math.max(1,Math.floor(e.maxLength)),r=String(e.referenceText||""),a=Array.isArray(e.documentAssets)?e.documentAssets:[],n=wE(r,a),i=Math.min(t,8e3,Math.max(300,Math.floor(t*.55))),o=RE(n,e.question,i),c=r.replace(IE,"").trim();if(!o)return zu(c,t);const f=c?` 210 211--- 212 213`:"",d=t-o.length-f.length,S=zu(c,d);return`${S}${S?f:""}${o}`.slice(0,t)}const Ed="p2g_paper_preferences",PE=3,xE=80,bd=()=>{try{return typeof localStorage>"u"?null:localStorage}catch{return null}},Td=e=>{if(!Array.isArray(e))return[];const t=new Set,r=[];for(const a of e){if(typeof a!="string")continue;const n=a.trim().slice(0,xE),i=n.toLocaleLowerCase();if(!(!n||t.has(i))&&(t.add(i),r.push(n),r.length>=PE))break}return r},OE=(e=bd())=>{if(!e)return[];try{const t=e.getItem(Ed);return Td(t?JSON.parse(t):[])}catch{return[]}},vE=(e,t=bd())=>{const r=Td(e);if(!t)return r;try{t.setItem(Ed,JSON.stringify(r))}catch{}return r},Wu=32,$u=3;class zt extends Error{constructor(t,r={}){super(t),this.name="StoryQuestionArchiveClientError",this.code=r.code||"ARCHIVE_CLIENT_ERROR",this.retryable=r.retryable===!0,this.statusCode=r.statusCode}}const LE={version:1,entries:[]};function kE(){return`story-question-${globalThis.crypto.randomUUID()}`}function Dt(e){return(typeof e=="string"?e.trim():"")||null}function zi(e,t){return e.frameId===t.frameId&&e.speaker===t.speaker&&e.text===t.text}function mr(){return{archive:LE,revision:0}}function oo(e){return!!e&&typeof e=="object"&&ta(e.archive)&&Number.isInteger(e.revision)&&e.revision>=0}function Sd(e){if(!e||typeof e!="object")return!1;const t=e;return t.ok===!0&&(t.status==="appended"||t.status==="duplicate")&&ta(t.archive)&&Number.isInteger(t.revision)&&t.revision>=0&&t.archive.entries.some(r=>JSON.stringify(r)===JSON.stringify(t.entry))}function DE(e){if(e instanceof zt)return e;const t=e,r=typeof(t==null?void 0:t.statusCode)=="number"?t.statusCode:void 0,a=(t==null?void 0:t.retryable)===!0||(t==null?void 0:t.retryable)===void 0&&(r===void 0||r===408||r===429||r>=500);return new zt(typeof(t==null?void 0:t.message)=="string"?t.message:"Failed to save story question.",{code:typeof(t==null?void 0:t.code)=="string"?t.code:void 0,retryable:a,statusCode:r})}function ME(e,t){if(!t||typeof t!="object")return null;const r="entry"in t?t.entry:{operationId:e.operationId,anchor:e.anchor,question:e.question,playerSpeaker:e.playerSpeaker,steps:t.steps},a=Wg(null,r);return!a.ok||a.entry.operationId!==e.operationId||JSON.stringify(a.entry.anchor)!==JSON.stringify(e.anchor)||a.entry.question!==e.question.trim()||a.entry.playerSpeaker!==e.playerSpeaker.trim()?null:a.entry}function UE({fetchImpl:e=st,getToken:t=()=>typeof localStorage>"u"?null:localStorage.getItem("p2g_token")}={}){const r=async(a,n)=>{const i=t(),o=new Headers(n.headers);i&&o.set("Authorization",`Bearer ${i}`);const c=await e(`/api/saves/${encodeURIComponent(a)}/story-questions`,{...n,headers:o});let f=null;try{f=await c.json()}catch{f=null}if(!c.ok){const d=f;
213throw new zt(typeof(d==null?void 0:d.error)=="string"?d.error:"Failed to access story question archive.",{code:typeof(d==null?void 0:d.code)=="string"?d.code:void 0,retryable:(d==null?void 0:d.retryable)===!0,statusCode:c.status})}return f};return{append:async(a,n)=>{const i=await r(a,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({entry:n})});if(!Sd(i))throw new zt("Invalid story question acknowledgement.");return i},read:async a=>{const n=await r(a,{method:"GET"});if(!oo(n))throw new zt("Invalid story question archive response.");return n}}}function BE(e){const t=Math.min(Wu,Math.max(1,Math.floor(e.maxPending??Wu))),r=Math.min($u,Math.max(1,Math.floor(e.maxRetries??$u))),a=new Map,n=new Map,i=new Map,o=new Map,c=new Map,f=new Map,d=new Map,S=new Set;let b=Dt(e.ownerId),w=e.enabled===!0,v=1,j=1,$=!1,V=null;const Y=()=>({ownerId:b,sessionEpoch:v,closed:$,pending:[...a.values()].map(m=>({ownerId:m.handle.ownerId,saveId:m.saveId,generationId:Dt(m.handle.generationId),operationId:m.entry.operationId,attempts:m.attempts,status:m.status})),acknowledged:[...c.values()].map(m=>({...m})),lastFailure:V}),q=()=>{const m=Y();S.forEach(P=>P(m))},K=(m,P,O)=>{V={ownerId:m.handle.ownerId,saveId:m.saveId,operationId:m.entry.operationId,code:P.code,retryable:P.retryable,terminal:O,message:P.message}},Se=m=>!$&&m.handle.sessionEpoch===v&&m.handle.ownerId===b,ee=m=>Se(m)&&m.handle.requestEpoch===j,Z=m=>Ps({version:1,entries:[...a.values(),...m?[{entry:m}]:[]].map(P=>P.entry)}),fe=()=>{const m=()=>[...f.values()].reduce((O,k)=>O+k.archive.entries.length,0),P=()=>[...f.values()].reduce((O,k)=>O+Ps(k.archive),0);for(;f.size>0&&(m()>200||P()>_s);){const O=f.keys().next().value;f.delete(O),o.delete(O);for(const k of c.keys())k.startsWith(`${O}:`)&&c.delete(k)}for(;c.size>200;){const O=c.keys().next().value;c.delete(O);const k=O.slice(0,O.lastIndexOf(":")),A=O.slice(O.lastIndexOf(":")+1),N=o.get(k);N==null||N.delete(A),(N==null?void 0:N.size)===0&&o.delete(k)}},ne=async(m,P,O)=>{if(!m.saveId||!Se(m))return;const k=v,A=b,N=`${m.handle.ownerId}:${m.saveId}`,M=`${N}:${P.entry.operationId}`;if(e.cacheAcknowledgements!==!1&&(await so({ownerId:m.handle.ownerId,saveId:m.saveId,archive:P.archive,revision:P.revision},{shouldCommit:()=>k===v&&A===b,cacheEpoch:O}).catch(()=>{}),k!==v||A!==b))return;const F=f.get(N);(!F||P.revision>=F.revision)&&(f.delete(N),f.set(N,{revision:P.revision,archive:P.archive}));const G=o.get(N)||new Set;G.add(P.entry.operationId),o.set(N,G);const te=c.get(M);(!te||P.revision>=te.revision)&&c.set(M,{saveId:m.saveId,revision:P.revision,entry:P.entry}),fe()},Pe=m=>{const P=`${m.handle.ownerId}:${m.saveId}:${m.entry.operationId}`,O=n.get(P);if(O)return O;const k=async()=>{var te;if(!Se(m))return m.status="stale",q(),{status:"stale",operationId:m.entry.operationId};if(!m.saveId||m.awaitingSnapshot||m.status==="retryable-failure"||m.attempts>=r)return q(),m.status==="retryable-failure"&&m.attempts>=r?{status:"failed",operationId:m.entry.operationId,message:V==null?void 0:V.message}:{status:"pending",operationId:m.entry.operationId,message:V==null?void 0:V.message};if(m.status==="failed")return q(),{status:"failed",operationId:m.entry.operationId,message:V==null?void 0:V.message};m.status="sending",q();const G=m.saveId?wa():void 0;try{for(;m.attempts<r;){if(!Se(m))return m.status="stale",q(),{status:"stale",operationId:m.entry.operationId};try{const ie=await e.transport.append(m.saveId,m.entry);if(!Se(m))return m.status="stale",q(),{status:"stale",operationId:m.entry.operationId};if(!Sd(ie)||JSON.stringify(ie.entry)!==JSON.stringify(m.entry))throw new zt("Invalid story question acknowledgement.");return await ne(m,ie,G),a.delete(m.entry.operationId),ee(m)?((V==null?void 0:V.operationId)===m.entry.operationId&&(V=null),q(),{status:ie.status,operationId:m.entry.operationId,archive:ie.archive,entry:ie.entry,revision:ie.revision}):(m.status="stale",q(),{status:"stale",operationId:m.entry.operationId})}catch(ie){if(!ee(m))return a.delete(m.entry.operationId),m.status="stale",q(),{status:"stale",operationId:m.entry.operationId};const Ie=DE(ie);if(m.attempts+=1,Ie.code==="ANCHOR_NOT_READY")return m.awaitingSnapshot=m.attempts<r,m.status=m.attempts>=r?"retryable-failure":"pending",m.attempts>=r&&K(m,Ie,!1),q(),m.attempts>=r?{status:"failed",operationId:m.entry.operationId,message:Ie.message}:{status:"pending",operationId:m.entry.operationId,message:Ie.message};if(!Ie.retryable||m.attempts>=r)return m.status=Ie.retryable?"retryable-failure":"failed",K(m,Ie,!Ie.retryable),q(),{status:"failed",operationId:m.entry.operationId,message:Ie.message}}}return{status:"failed",operationId:m.entry.operationId,message:V==null?void 0:V.message}}finally{(te=G==null?void 0:G.release)==null||te.call(G)}},A=`${m.handle.sessionEpoch}:${m.handle.ownerId}:${m.saveId}`,M=(i.get(A)||Promise.resolve()).catch(()=>{}).then(k);n.set(P,M);const F=M.then(()=>{},()=>{});return i.set(A,F),M.then(()=>{n.get(P)===M&&n.delete(P),i.get(A)===F&&i.delete(A)},()=>{n.get(P)===M&&n.delete(P),i.get(A)===F&&i.delete(A)}),M},Ee=m=>{const P=`${m.handle.ownerId}:${m.saveId}:${m.entry.operationId}`,O=m.saveId?c.get(P):void 0;if(O){if(JSON.stringify(O.entry)!==JSON.stringify(m.entry)){const N=new zt("Story question operation ID is already in use.",{code:"OPERATION_CONFLICT"});return K(m,N,!0),q(),{status:"invalid",operationId:m.entry.operationId,message:N.message}}const A=f.get(`${m.handle.ownerId}:${m.saveId}`);return A?{status:"duplicate",operationId:m.entry.operationId,archive:A.archive,entry:O.entry,revision:O.revision}:{status:"pending",operationId:m.entry.operationId}}const k=a.get(m.entry.operationId);if(k){if(JSON.stringify(k.entry)!==JSON.stringify(m.entry)){const A=new zt("Story question operation ID is already in use.",{code:"OPERATION_CONFLICT"});return K(m,A,!0),q(),{status:"invalid",operationId:m.entry.operationId,message:A.message}}return k.saveId?Pe(k):{status:"pending",operationId:m.entry.operationId}}
213if(a.size>=t||Z(m.entry)>_s){const A=new zt(a.size>=t?"Too many unsaved story questions.":"Unsaved story questions exceed the size limit.",{code:a.size>=t?"PENDING_CAPACITY":"PENDING_SIZE"});return K(m,A,!0),q(),{status:"invalid",operationId:m.entry.operationId,message:A.message}}return a.set(m.entry.operationId,m),q(),m.saveId?Pe(m):{status:"pending",operationId:m.entry.operationId}},ye=()=>{const m=a.values().next().value;return m?(V={ownerId:m.handle.ownerId,saveId:m.saveId,operationId:m.entry.operationId,code:"PENDING_UNSAVED",retryable:!1,terminal:!1,message:"A successful story question was not saved before leaving this session."},!0):!1},_e=m=>{const P=m===void 0?b:Dt(m),O=ye();return a.clear(),d.clear(),f.clear(),c.clear(),o.clear(),P!==b?(V=null,b=P):O||(V=null),v+=1,j+=1,$=!1,q(),{ownerId:b,sessionEpoch:v}},be=(m="session-invalidated")=>{const P=ye();v+=1,j+=1,a.clear(),d.clear(),f.clear(),c.clear(),o.clear(),P||(V=null),q()},se=(m,P,O)=>{const k=Dt(P);return k?`${v}:${m}:${k}:${O.frameId}:${O.speaker}:${O.text}`:null},me=()=>{j+=1,[...a.values()].filter(m=>m.status!=="sending").forEach(m=>{a.delete(m.entry.operationId),m.status="stale"}),q()},Oe=m=>{const P=e.isEnabled?e.isEnabled():w,O=Dt(m.ownerId)||b||"",k=Dt(m.generationId),A={...m.anchor};return{...m,ownerId:O,saveId:Dt(m.saveId),generationId:k,anchor:A,operationId:Dt(m.operationId)||kE(),sessionEpoch:v,requestEpoch:j,enabledAtStart:P}},B=async(m,P)=>{if(!m.ownerId||!b||m.ownerId!==b||$||m.sessionEpoch!==v||m.requestEpoch!==j)return{status:"stale",operationId:m.operationId};const O=e.isEnabled?e.isEnabled():w;if(!m.enabledAtStart||!O)return{status:"disabled",operationId:m.operationId};const k=ME(m,P);if(!k){const M=new zt("Invalid story question entry.",{code:"INVALID_ENTRY"});return V={ownerId:m.ownerId,saveId:Dt(m.saveId),operationId:m.operationId,code:M.code,retryable:!1,terminal:!0,message:M.message},q(),{status:"invalid",operationId:m.operationId,message:M.message}}const A=Dt(m.saveId)||se(m.ownerId,m.generationId,m.anchor)&&d.get(se(m.ownerId,m.generationId,m.anchor))||null;return await Ee({handle:m,entry:k,saveId:A,attempts:0,status:"pending",awaitingSnapshot:!1})};return{getState:Y,subscribe(m){return S.add(m),()=>S.delete(m)},beginSession:_e,invalidateSession:be,invalidateRequest:me,setOwner:m=>_e(m),setEnabled:m=>{w=m,q()},prepareCapture:Oe,completeCapture:B,capture:async(m,P)=>B(Oe(m),P),assignSave:async({ownerId:m,saveId:P,generationId:O,anchor:k})=>{if($||m!==b)return[];const A=Dt(O);if(!A)return[];const N=se(m,A,k);if(!N)return[];!d.has(N)&&d.size>=t&&d.delete(d.keys().next().value),d.set(N,P);const F=[...a.values()].filter(G=>G.saveId===null&&G.handle.ownerId===m&&G.handle.sessionEpoch===v&&G.handle.generationId===A&&!!(k&&zi(G.handle.anchor,k))).map(G=>(G.saveId=P,Pe(G)));return Promise.all(F)},flush:async m=>{if($||m.ownerId!==b)return[];const P=[...a.values()].filter(O=>O.saveId===m.saveId&&O.handle.ownerId===m.ownerId&&O.handle.sessionEpoch===v&&O.handle.generationId!==null&&O.handle.generationId===Dt(m.generationId)&&!!(m.anchor&&zi(O.handle.anchor,m.anchor))&&!O.awaitingSnapshot).map(O=>Pe(O));return Promise.all(P)},snapshotReady:async m=>{if($||m.ownerId!==b||!m.generationId)return[];const P=[...a.values()].filter(O=>O.saveId===m.saveId&&O.handle.ownerId===m.ownerId&&O.handle.sessionEpoch===v&&O.handle.generationId===m.generationId&&zi(O.handle.anchor,m.anchor)&&O.status==="pending").map(O=>(O.awaitingSnapshot=!1,Pe(O)));return Promise.all(P)},loadOffline:async({saveId:m,ownerId:P,visibility:O="owner",fallback:k})=>{var it;if(O!=="owner"||!P||P!==b||!m)return{...mr(),source:"public"};const A=v,N=()=>b===P&&v===A,M=oo(k)?k:null,F=(Ye,at)=>!at||Ye&&Ye.revision>=at.revision?Ye:at;let G=null;try{G=await On(P,m)}catch{if(!N())return{...mr(),source:"empty"}}if(!N())return{...mr(),source:"empty"};const te=F(G?{archive:G.archive,revision:G.revision}:null,M),ie=e.transport.read;if(!ie)return te?{...te,source:"offline"}:{...mr(),source:"empty"};const Ie=wa(),ve=async Ye=>{!Ye||G&&Ye.revision<=G.revision||!N()||await so({ownerId:P,saveId:m,archive:Ye.archive,revision:Ye.revision},{shouldCommit:N,cacheEpoch:Ie})};try{const Ye=await ie(m);
213if(!oo(Ye))throw new zt("Invalid story question archive response.");if(!N())return{...mr(),source:"empty"};const at=F(te,Ye);return await ve(at),N()?at?{...at,source:at===Ye?"remote":"offline"}:{...mr(),source:"empty"}:{...mr(),source:"empty"}}catch{return N()?(await ve(te).catch(()=>{}),te?{...te,source:"offline"}:{...mr(),source:"empty"}):{...mr(),source:"empty"}}finally{(it=Ie.release)==null||it.call(Ie)}},close:()=>{be("closed"),$=!0,q()}}}const Ad="p2g_story_question_archive_enabled";function FE(){return typeof localStorage<"u"&&localStorage.getItem(Ad)==="1"}function HE(e){const t=l.useRef(FE()),r=l.useRef(null);r.current||(r.current=BE({ownerId:e,enabled:t.current,isEnabled:()=>t.current,transport:UE()}));const a=r.current,[n,i]=l.useState(t.current),[o,c]=l.useState(a.getState);l.useEffect(()=>{const Y=a.subscribe(c);return()=>{Y()}},[a]),l.useEffect(()=>{a.beginSession(e)},[a,e]);const f=l.useCallback(Y=>{t.current=Y,i(Y),a.setEnabled(Y);try{localStorage.setItem(Ad,Y?"1":"0")}catch{}},[a]);l.useEffect(()=>{var q;if(!o.pending.length&&((q=o.lastFailure)==null?void 0:q.code)!=="PENDING_UNSAVED")return;const Y=K=>{K.preventDefault(),K.returnValue=""};return window.addEventListener("beforeunload",Y),()=>window.removeEventListener("beforeunload",Y)},[o.lastFailure,o.pending.length]);const d=l.useCallback((Y=e)=>a.beginSession(Y),[a,e]),S=l.useCallback(Y=>a.invalidateSession(Y),[a]),b=l.useCallback(()=>a.invalidateRequest(),[a]),w=l.useCallback(Y=>a.prepareCapture(Y),[a]),v=l.useCallback((Y,q)=>a.completeCapture(Y,q),[a]),j=l.useCallback(Y=>a.assignSave(Y),[a]),$=l.useCallback(Y=>a.snapshotReady(Y),[a]),V=l.useCallback(Y=>a.loadOffline(Y),[a]);return l.useMemo(()=>({enabled:n,setEnabled:f,state:o,beginSession:d,invalidateSession:S,invalidateRequest:b,prepareCapture:w,completeCapture:v,assignSave:j,snapshotReady:$,loadArchive:V}),[j,d,v,n,b,S,V,f,$,o])}const jE=[25,50,75,100],wr=e=>String(e||"").trim().slice(0,128),qu=e=>Math.max(0,Math.trunc(Number(e)||0)),Qu=e=>{const t=globalThis.crypto;return typeof(t==null?void 0:t.randomUUID)=="function"?`${e}-${t.randomUUID()}`:`${e}-${Date.now()}-${Math.random().toString(36).slice(2,14)}`};function VE(e){const t=e.now||Date.now,r=e.idFactory||(()=>Qu("metric")),a=wr(e.playbackSessionId||Qu("playback")),n=wr(e.jobId),i=wr(e.generationTrace.variantId),o=new Set,c=new Map;let f=!1;const d=b=>{f||e.emit({version:1,eventId:wr(r()),jobId:n,variantId:i,featureSnapshotVersion:2,occurredAtMs:t(),source:"client",playbackSessionId:a,...b})};d({type:"playback_started"});const S=b=>{for(const w of jE)w>b||o.has(w)||(o.add(w),d({type:"playback_progress",milestonePercent:w}))};return{playbackSessionId:a,recordProgress({currentFrameIndex:b,totalFrameCount:w,frameCountFinal:v}){if(f||!v)return;const j=qu(w);if(j===0)return;const $=Math.min(j,qu(b)+1);S(Math.floor($/j*100))},presentQuiz(b){const w=wr(b);!f&&w&&!c.has(w)&&c.set(w,t())},answerQuiz(b,w){const v=wr(b),j=wr(w);if(f||!v||!j)return;const $=c.get(v)??t();d({type:"quiz_answered",quizId:v,selectedOptionId:j,dwellTimeMs:Math.min(864e5,Math.max(0,t()-$))}),c.delete(v)},recordRaisedHand(b){const w=wr(b);w&&d({type:"raised_hand_used",sectionId:w})},finish(b){if(f)return;b==="completed"&&S(100);const w=[...o].reduce((v,j)=>Math.max(v,j),0);d({type:"playback_finished",outcome:b,lastMilestonePercent:w}),f=!0}}}function GE(e={}){const t=e.endpoint||"/api/entertainment/playback-metrics",r=e.fetcher||fetch,a=Math.max(1,Math.min(20,Math.trunc(e.maxBatchSize||10)));let n=[],i=null;const o=(c=!1)=>{if(i||n.length===0)return i||Promise.resolve();const f=n.splice(0,a);let d=!1;return i=r(t,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({events:f}),keepalive:c}).then(S=>{d=S.ok,S.ok||(n=[...f,...n].slice(0,100))}).catch(()=>{n=[...f,...n].slice(0,100)}).finally(()=>{i=null,d&&!c&&n.length>0&&o(!1)}),i};return{emit(c){n.push(c),(c.type==="playback_finished"||n.length>=a)&&o(c.type==="playback_finished")},flush:o}}function YE(e){const t=String(e),r=[];return{toOffset:n,toPoint:a};function a(i){if(typeof i=="number"&&i>-1&&i<=t.length){let o=0;for(;;){let c=r[o];if(c===void 0){const f=Ku(t,r[o-1]);c=f===-1?t.length+1:f+1,r[o]=c}if(c>i)return{line:o+1,column:i-(o>0?r[o-1]:0)+1,offset:i};o++}}}function n(i){if(i&&typeof i.line=="number"&&typeof i.column=="number"&&!Number.isNaN(i.line)&&!Number.isNaN(i.column)){for(;r.length<i.line;){const c=r[r.length-1],f=Ku(t,c),d=f===-1?t.length+1:f+1;if(c===d)break;r.push(d)}const o=(i.line>1?r[i.line-2]:0)+i.column-1;if(o<r[i.line-1])return o}}}function Ku(e,t){const r=e.indexOf("\r",t),a=e.indexOf(` 214`,t);return a===-1?r:r===-1||r+1===a?a:r<a?r:a}const Id={}.hasOwnProperty,zE=Object.prototype;function WE(e,t){const r=t||{};return Fo({file:r.file||void 0,location:!1,schema:r.space==="svg"?Rl:Nl,verbose:r.verbose||!1},e)}function Fo(e,t){let r;switch(t.nodeName){case"#comment":{const a=t;return r={type:"comment",value:a.data},Ss(e,a,r),r}case"#document":case"#document-fragment":{const a=t,n="mode"in a?a.mode==="quirks"||a.mode==="limited-quirks":!1;if(r={type:"root",children:yd(e,t.childNodes),data:{quirksMode:n}},e.file&&e.location){const i=String(e.file),o=YE(i),c=o.toPoint(0),f=o.toPoint(i.length);r.position={start:c,end:f}}return r}case"#documentType":{const a=t;return r={type:"doctype"},Ss(e,a,r),r}case"#text":{const a=t;return r={type:"text",value:a.value},Ss(e,a,r),r}default:return r=$E(e,t),r}}function yd(e,t){let r=-1;const a=[];for(;++r<t.length;){const n=Fo(e,t[r]);a.push(n)}return a}function $E(e,t){const r=e.schema;e.schema=t.namespaceURI===Fh.svg?Rl:Nl;let a=-1;const n={};for(;++a<t.attrs.length;){const c=t.attrs[a],f=(c.prefix?c.prefix+":":"")+c.name;Id.call(zE,f)||(n[f]=c.value)}
vendor: 9,983 bytes, line 214
214const o=(e.schema.space==="svg"?Hh:jh)(t.tagName,n,yd(e,t.childNodes));if(Ss(e,t,o),o.tagName==="template"){const c=t,f=c.sourceCodeLocation,d=f&&f.startTag&&Ta(f.startTag),S=f&&f.endTag&&Ta(f.endTag),b=Fo(e,c.content);d&&S&&e.file&&(b.position={start:d.end,end:S.start}),o.content=b}return e.schema=r,o}function Ss(e,t,r){if("sourceCodeLocation"in t&&t.sourceCodeLocation&&e.file){const a=qE(e,r,t.sourceCodeLocation);a&&(e.location=!0,r.position=a)}}function qE(e,t,r){const a=Ta(r);if(t.type==="element"){const n=t.children[t.children.length-1];if(a&&!r.endTag&&n&&n.position&&n.position.end&&(a.end=Object.assign({},n.position.end)),e.verbose){const i={};let o;if(r.attrs)for(o in r.attrs)Id.call(r.attrs,o)&&(i[Mh(e.schema,o).property]=Ta(r.attrs[o]));Uh(r.startTag);const c=Ta(r.startTag),f=r.endTag?Ta(r.endTag):void 0,d={opening:c};f&&(d.closing=f),d.properties=i,t.data={position:d}}}return a}function Ta(e){const t=Xu({line:e.startLine,column:e.startCol,offset:e.startOffset}),r=Xu({line:e.endLine,column:e.endCol,offset:e.endOffset});return t||r?{start:t,end:r}:void 0}function Xu(e){return e.line&&e.column?e:void 0}const QE=new Set([65534,65535,131070,131071,196606,196607,262142,262143,327678,327679,393214,393215,458750,458751,524286,524287,589822,589823,655358,655359,720894,720895,786430,786431,851966,851967,917502,917503,983038,983039,1048574,1048575,1114110,1114111]),Qe="�";var h;(function(e){e[e.EOF=-1]="EOF",e[e.NULL=0]="NULL",e[e.TABULATION=9]="TABULATION",e[e.CARRIAGE_RETURN=13]="CARRIAGE_RETURN",e[e.LINE_FEED=10]="LINE_FEED",e[e.FORM_FEED=12]="FORM_FEED",e[e.SPACE=32]="SPACE",e[e.EXCLAMATION_MARK=33]="EXCLAMATION_MARK",e[e.QUOTATION_MARK=34]="QUOTATION_MARK",e[e.AMPERSAND=38]="AMPERSAND",e[e.APOSTROPHE=39]="APOSTROPHE",e[e.HYPHEN_MINUS=45]="HYPHEN_MINUS",e[e.SOLIDUS=47]="SOLIDUS",e[e.DIGIT_0=48]="DIGIT_0",e[e.DIGIT_9=57]="DIGIT_9",e[e.SEMICOLON=59]="SEMICOLON",e[e.LESS_THAN_SIGN=60]="LESS_THAN_SIGN",e[e.EQUALS_SIGN=61]="EQUALS_SIGN",e[e.GREATER_THAN_SIGN=62]="GREATER_THAN_SIGN",e[e.QUESTION_MARK=63]="QUESTION_MARK",e[e.LATIN_CAPITAL_A=65]="LATIN_CAPITAL_A",e[e.LATIN_CAPITAL_Z=90]="LATIN_CAPITAL_Z",e[e.RIGHT_SQUARE_BRACKET=93]="RIGHT_SQUARE_BRACKET",e[e.GRAVE_ACCENT=96]="GRAVE_ACCENT",e[e.LATIN_SMALL_A=97]="LATIN_SMALL_A",e[e.LATIN_SMALL_Z=122]="LATIN_SMALL_Z"})(h||(h={}));const It={DASH_DASH:"--",CDATA_START:"[CDATA[",DOCTYPE:"doctype",SCRIPT:"script",PUBLIC:"public",SYSTEM:"system"};function _d(e){return e>=55296&&e<=57343}function KE(e){return e>=56320&&e<=57343}function XE(e,t){return(e-55296)*1024+9216+t}function Cd(e){return e!==32&&e!==10&&e!==13&&e!==9&&e!==12&&e>=1&&e<=31||e>=127&&e<=159}function wd(e){return e>=64976&&e<=65007||QE.has(e)}var L;(function(e){e.controlCharacterInInputStream="control-character-in-input-stream",e.noncharacterInInputStream="noncharacter-in-input-stream",e.surrogateInInputStream="surrogate-in-input-stream",e.nonVoidHtmlElementStartTagWithTrailingSolidus="non-void-html-element-start-tag-with-trailing-solidus",e.endTagWithAttributes="end-tag-with-attributes",e.endTagWithTrailingSolidus="end-tag-with-trailing-solidus",e.unexpectedSolidusInTag="unexpected-solidus-in-tag",e.unexpectedNullCharacter="unexpected-null-character",e.unexpectedQuestionMarkInsteadOfTagName="unexpected-question-mark-instead-of-tag-name",e.invalidFirstCharacterOfTagName="invalid-first-character-of-tag-name",e.unexpectedEqualsSignBeforeAttributeName="unexpected-equals-sign-before-attribute-name",e.missingEndTagName="missing-end-tag-name",e.unexpectedCharacterInAttributeName="unexpected-character-in-attribute-name",e.unknownNamedCharacterReference="unknown-named-character-reference",e.missingSemicolonAfterCharacterReference="missing-semicolon-after-character-reference",e.unexpectedCharacterAfterDoctypeSystemIdentifier="unexpected-character-after-doctype-system-identifier",e.unexpectedCharacterInUnquotedAttributeValue="unexpected-character-in-unquoted-attribute-value",e.eofBeforeTagName="eof-before-tag-name",e.eofInTag="eof-in-tag",e.missingAttributeValue="missing-attribute-value",e.missingWhitespaceBetweenAttributes="missing-whitespace-between-attributes",e.missingWhitespaceAfterDoctypePublicKeyword="missing-whitespace-after-doctype-public-keyword",e.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers="missing-whitespace-between-doctype-public-and-system-identifiers",e.missingWhitespaceAfterDoctypeSystemKeyword="missing-whitespace-after-doctype-system-keyword",e.missingQuoteBeforeDoctypePublicIdentifier="missing-quote-before-doctype-public-identifier",e.missingQuoteBeforeDoctypeSystemIdentifier="missing-quote-before-doctype-system-identifier",e.missingDoctypePublicIdentifier="missing-doctype-public-identifier",e.missingDoctypeSystemIdentifier="missing-doctype-system-identifier",e.abruptDoctypePublicIdentifier="abrupt-doctype-public-identifier",e.abruptDoctypeSystemIdentifier="abrupt-doctype-system-identifier",e.cdataInHtmlContent="cdata-in-html-content",e.incorrectlyOpenedComment="incorrectly-opened-comment",e.eofInScriptHtmlCommentLikeText="eof-in-script-html-comment-like-text",e.eofInDoctype="eof-in-doctype",e.nestedComment="nested-comment",e.abruptClosingOfEmptyComment="abrupt-closing-of-empty-comment",e.eofInComment="eof-in-comment",e.incorrectlyClosedComment="incorrectly-closed-comment",e.eofInCdata="eof-in-cdata",e.absenceOfDigitsInNumericCharacterReference="absence-of-digits-in-numeric-character-reference",e.nullCharacterReference="null-character-reference",e.surrogateCharacterReference="surrogate-character-reference",e.characterReferenceOutsideUnicodeRange="character-reference-outside-unicode-range",e.controlCharacterReference="control-character-reference",e.noncharacterCharacterReference="noncharacter-character-reference",e.missingWhitespaceBeforeDoctypeName="missing-whitespace-before-doctype-name",e.missingDoctypeName="missing-doctype-name",e.invalidCharacterSequenceAfterDoctypeName="invalid-character-sequence-after-doctype-name",e.duplicateAttribute="duplicate-attribute",e.nonConformingDoctype="non-conforming-doctype",e.missingDoctype="missing-doctype",e.misplacedDoctype="misplaced-doctype",e.endTagWithoutMatchingOpenElement="end-tag-without-matching-open-element",e.closingOfElementWithOpenChildElements="closing-of-element-with-open-child-elements",e.disallowedContentInNoscriptInHead="disallowed-content-in-noscript-in-head",e.openElementsLeftAfterEof="open-elements-left-after-eof",e.abandonedHeadElementChild="abandoned-head-element-child",e.misplacedStartTagForHeadElement="misplaced-start-tag-for-head-element",e.nestedNoscriptInHead="nested-noscript-in-head",e.eofInElementThatCanContainOnlyText="eof-in-element-that-can-contain-only-text"})(L||(L={}));const JE=65536;class ZE{constructor(t){this.handler=t,this.html="",this.pos=-1,this.lastGapPos=-2,this.gapStack=[],this.skipNextNewLine=!1,this.lastChunkWritten=!1,this.endOfChunkHit=!1,this.bufferWaterline=JE,this.isEol=!1,this.lineStartPos=0,this.droppedBufferSize=0,this.line=1,this.lastErrOffset=-1}get col(){return this.pos-this.lineStartPos+ +(this.lastGapPos!==this.pos)}get offset(){return this.droppedBufferSize+this.pos}getError(t,r){const{line:a,col:n,offset:i}=this,o=n+r,c=i+r;return{code:t,startLine:a,endLine:a,startCol:o,endCol:o,startOffset:c,endOffset:c}}_err(t){this.handler.onParseError&&this.lastErrOffset!==this.offset&&(this.lastErrOffset=this.offset,this.handler.onParseError(this.getError(t,0)))}_addGap(){this.gapStack.push(this.lastGapPos),this.lastGapPos=this.pos}_processSurrogate(t){if(this.pos!==this.html.length-1){const r=this.html.charCodeAt(this.pos+1);if(KE(r))return this.pos++,this._addGap(),XE(t,r)}else if(!this.lastChunkWritten)return this.endOfChunkHit=!0,h.EOF;return this._err(L.surrogateInInputStream),t}willDropParsedChunk(){return this.pos>this.bufferWaterline}dropParsedChunk(){this.willDropParsedChunk()&&(this.html=this.html.substring(this.pos),this.lineStartPos-=this.pos,this.droppedBufferSize+=this.pos,this.pos=0,this.lastGapPos=-2,this.gapStack.length=0)}write(t,r){this.html.length>0?this.html+=t:this.html=t,this.endOfChunkHit=!1,this.lastChunkWritten=r}insertHtmlAtCurrentPos(t){this.html=this.html.substring(0,this.pos+1)+t+this.html.substring(this.pos+1),this.endOfChunkHit=!1}startsWith(t,r){if(this.pos+t.length>this.html.length)return this.endOfChunkHit=!this.lastChunkWritten,!1;if(r)return this.html.startsWith(t,this.pos);for(let a=0;a<t.length;a++)if((this.html.charCodeAt(this.pos+a)|32)!==t.charCodeAt(a))return!1;return!0}peek(t){const r=this.pos+t;if(r>=this.html.length)return this.endOfChunkHit=!this.lastChunkWritten,h.EOF;const a=this.html.charCodeAt(r);return a===h.CARRIAGE_RETURN?h.LINE_FEED:a}advance(){if(this.pos++,this.isEol&&(this.isEol=!1,this.line++,this.lineStartPos=this.pos),this.pos>=this.html.length)return this.endOfChunkHit=!this.lastChunkWritten,h.EOF;let t=this.html.charCodeAt(this.pos);return t===h.CARRIAGE_RETURN?(this.isEol=!0,this.skipNextNewLine=!0,h.LINE_FEED):t===h.LINE_FEED&&(this.isEol=!0,this.skipNextNewLine)?(this.line--,this.skipNextNewLine=!1,this._addGap(),this.advance()):(this.skipNextNewLine=!1,_d(t)&&(t=this._processSurrogate(t)),this.handler.onParseError===null||t>31&&t<127||t===h.LINE_FEED||t===h.CARRIAGE_RETURN||t>159&&t<64976||this._checkForProblematicCharacters(t),t)}_checkForProblematicCharacters(t){Cd(t)?this._err(L.controlCharacterInInputStream):wd(t)&&this._err(L.noncharacterInInputStream)}retreat(t){for(this.pos-=t;this.pos<this.lastGapPos;)this.lastGapPos=this.gapStack.pop(),this.pos--;this.isEol=!1}}var De;(function(e){e[e.CHARACTER=0]="CHARACTER",e[e.NULL_CHARACTER=1]="NULL_CHARACTER",e[e.WHITESPACE_CHARACTER=2]="WHITESPACE_CHARACTER",e[e.START_TAG=3]="START_TAG",e[e.END_TAG=4]="END_TAG",e[e.COMMENT=5]="COMMENT",e[e.DOCTYPE=6]="DOCTYPE",e[e.EOF=7]="EOF",e[e.HIBERNATION=8]="HIBERNATION"})(De||(De={}));function Rd(e,t){for(let r=e.attrs.length-1;r>=0;r--)if(e.attrs[r].name===t)return e.attrs[r].value;return null}const eb=new Uint16Array('
vendor: 16,129 bytes, line 214
214áµ<ÃıÊÒÕ»×ÙµÛÞ¢ßà à©àªà¶¡à¹à¼à¼¦áá¨á¡ááááá¥\0\0\0\0\0\0á«áá¦á°á·á½¾â â°âââ»ââ ¤â¤â´â¹â¿ããºã¹ã¬ã£¾ã¨¨ã©±ã« 㬮à EMabcfglmnoprstu\\bfms�¦³¹ÃÃligè»ÃäPè»&ä¦cuteè»Ãäreve;äÄiyx}rcè»Ãä;är;ìðraveè»Ãäpha;äacr;äd;æ©Ägp¡on;äf;ìð¸plyFunction;æ¡ingè»Ã
ä
Äcs¾Ãr;ìðign;æildeè»Ãämlè»ÃäÐaceforsuåûþÄÄĢħĪÄcrêòkslash;æÅ¶Ã¶Ã¸;æ«§ed;æy;äÆcrtÄ
ÄÄause;æµnoullis;æ¬a;är;ìð
pf;ìð¹eve;äcòÄmpeq;æÜHOacdefhilorsuÅÅÅÆÆÆ¢ÆµÆ·ÆºÇÈɳɸɾcy;ä§PYè»Â©ä©ÆcpyÅŢźute;äÄ;iŧŨætalDifferentialD;æ
leys;æÈaeioÆÆÆÆron;ädilè»Ãärc;änint;æ°ot;äÄdnƧÆilla;ä¸terDot;ä·Ã²Å¿i;ä§rcleÈDMPTÇÇÇÇot;æinus;ælus;æimes;æoÄcsǢǸkwiseContourIntegral;æ²eCurlyÄDQÈÈoubleQuote;æuote;æÈlnpuÈȨÉÉonÄ;eȥȦæ·;æ©´ÆgitȯȶȺruent;æ¡nt;æ¯ourIntegral;æ®ÄfrÉÉ;æoduct;ænterClockwiseContourIntegral;æ³oss;樯cr;ìðpÄ;CÊÊ
æap;æÖDJSZacefiosÊ Ê¬Ê°Ê´Ê¸ËËˡ˦̳ÒÄ;oŹʥtrahd;æ¤cy;äcy;ä
cy;äÆgrsÊ¿ËËger;æ¡r;æ¡hv;櫤ÄayËËron;ä;älÄ;tËËæa;är;ìðÄaf˫̧Äcm˰̢riticalÈADGTÌÌÌÌcute;ä´oÅ´ÌÌ;äbleAcute;ärave;ä ilde;äond;æferentialD;æ
Ѱ̽\0\0\0ÍÍ\0Ð
f;ìð»Æ;DEÍÍÍä¨ot;æqual;æbleÌCDLRUVͣͲÎÏϢϸontourIntegraìȹoɴ͹\0\0ͻ»ÍnArrow;æÄeoÎΤftÆARTÎÎΡrrow;æightArrow;æeÃ¥ËngÄLRΫÏeftÄARγιrrow;æ¸ightArrow;æºightArrow;æ¹ightÄATÏÏrrow;æee;æ¨pÉÏ©\0\0ϯrrow;æownArrow;æerticalBar;æ¥nÌABLRTaÐЪаÑѿͼrrowÆ;BUÐÐТæar;æ¤pArrow;æµreve;äeftËк\0Ñ\0ÑightVector;æ¥eeVector;æ¥ectorÄ;BÑÑæ½ar;æ¥ightÇѧ\0ѱeeVector;æ¥ectorÄ;BѺѻæar;æ¥eeÄ;AÒÒæ¤rrow;æ§ÄctÒÒr;ìðrok;äà NTacdfglmopqstuxÒ½ÓÓÓÓÓ¢Ó§Ó®ÓµÔ¡Ô¯Ô¶ÕÕÕ Õ¥G;ä
Hè»Ãäcuteè»ÃäÆaiyÓÓÓron;ärcè»Ãä;äot;är;ìðraveè»Ãäement;æÄapÓºÓ¾cr;ätyÉÔ\0\0ÔmallSquare;æ»erySmallSquare;æ«ÄgpÔ¦Ôªon;äf;ìð¼silon;äuÄaiÔ¼ÕlÄ;TÕÕæ©µilde;ælibrium;æÄciÕÕr;æ°m;橳a;ämlè»ÃäÄipÕªÕ¯sts;æonentialE;æ
ÊcfiosÖ
ÖÖÖ²×y;ä¤r;ìðlledÉÖ\0\0Ö£mallSquare;æ¼erySmallSquare;æªÍ°Öº\0Ö¿\0\0×f;ìð½All;æriertrf;æ±cÃ²×ØJTabcdfgorst×¨×¬×¯×ºØØØØØØ£Ù¬Ù²cy;äè»>ä¾mmaÄ;d׷׸ä;äreve;äÆeiyØØØdil;ä¢rc;ä;äot;ä r;ìð;æpf;ìð¾eaterÌEFGLSTصÙÙÙÙÙ¦qualÄ;Lؾؿæ¥ess;æullEqual;æ§reater;檢ess;æ·lantEqual;橾ilde;æ³cr;ìð¢;æ«ÐAacfiosuÚ
ÚÚÚÚÚªÚ¾ÛRDcy;äªÄctÚÚek;ä;äirc;ä¤r;ælbertSpace;æÇ°Ú¯\0Ú²f;æizontalLine;æÄctÛÛ
òکrok;ä¦mpÅÛÛownHumðįqual;æÜEJOacdfgmnostuÛºÛ¾ÜÜÜÜÜܡܨÝݸÞÞÞcy;älig;ä²cy;äcuteè»ÃäÄiyÜÜrcè»Ãä;äot;ä°r;æraveè»ÃäÆ;apÜ Ü¯Ü¿ÄcgÜ´Ü·r;äªinaryI;æ
lieóÏÇ´Ý\0Ý¢Ä;eÝÝæ¬ÄgrÝÝral;æ«section;æisibleÄCTݬݲomma;æ£imes;æ¢ÆgptÝ¿ÞÞon;ä®f;ìða;äcr;æilde;ä¨Ç«Þ\0Þcy;älè»ÃäÊcfosuÞ¬Þ·Þ¼ßßÄiyÞ±Þµrc;ä´;är;ìðpf;ìðÇ£ß\0ßr;ìð¥rcy;äkcy;äÎHJacfosߤߨ߽߬߱à à cy;ä¥cy;äppa;äÄeyß¶ß»dil;ä¶;är;ìðpf;ìðcr;ìð¦ÖJTaceflmostà ¥à ©à ¬à¡à¡£à¦³à¦¸à§à§à¨·à©cy;äè»<ä¼Êcmnprà ·à ¼à¡à¡à¡ute;ä¹bda;äg;æªlacetrf;ær;æÆaeyà¡à¡à¡¡ron;ä½dil;ä»;äÄfsࡨ॰tÔACDFRTUVarࡾࢩࢱࣦ࣠ࣼयà¥Î४Änrà¢à¢gleBracket;æ¨rowÆ;BRà¢à¢à¢æar;æ¤ightArrow;æeiling;æoǵࢷ\0à£bleBracket;æ¦nÇà£\0à£eeVector;楡ectorÄ;Bà£à£æar;æ¥loor;æightÄAV࣯ࣵrrow;æector;æ¥Äerà¤à¤eÆ;AVà¤à¤à¤æ£rrow;æ¤ector;æ¥iangleÆ;BEतथऩæ²ar;æ§qual;æ´pÆDTVषà¥à¥ownVector;æ¥eeVector;æ¥ ectorÄ;Bà¥à¥æ¿ar;æ¥ectorÄ;B॥०æ¼ar;æ¥ightáÎsÌEFGLSTॾà¦à¦à¦à¦¢à¦qualGreater;æullEqual;æ¦reater;æ¶ess;檡lantEqual;橽ilde;æ²r;ìðÄ;eঽাæftarrow;æidot;ä¿Ænpwà§à¨à¨gÈLRlrà§à§·à¨à¨eftÄAR০৬rrow;æµightArrow;æ·ightArrow;æ¶eftÄarγà¨ightáοightáÏf;ìðerÄLRਢਬeftArrow;æightArrow;æÆchtਾà©à©Ã²à¡;æ°rok;ä
;æªÐacefiosuà©à©à© ੷੼àª
àªàªp;æ¤
y;äÄdl੥੯iumSpace;ælintrf;æ³r;ìðnusPlus;æpf;ìðcò੶;äÒJacefostuણધàªà«à¬à¬à¶à¶à¶cy;äcute;ä
Æaey઴હાron;ä
dil;ä
;äÆgswà«à«°à¬ativeÆMTVà«à«à«¨ediumSpace;æhiÄcn૦à«Ã«à«eryThiîà«tedÄGL૸à¬reaterGreateòٳessLesóà©Line;är;ìðÈBnptଢନଷ଺reak;æ BreakingSpace;ä f;æÚ;CDEGHLNPRSTVàààªà¼à®¡à¯«à°à±à²à²¦à³àµ¡à¶
櫬Äouàà¤ngruent;æ¢pCap;æoubleVerticalBar;æ¦Ælqxà®à®à®ement;æualÄ;Tà®à®æ ilde;ìâ̸ists;æreaterÎ;EFGLSTஶஷ஽à¯à¯à¯à¯¥æ¯qual;æ±ullEqual;ìâ§Ì¸reater;ìâ«Ì¸ess;æ¹lantEqual;ì⩾̸ilde;æµumpÅ௲௽ownHump;ìâ̸qual;ìâ̸eÄfsà°à°§tTriangleÆ;BEà°à°à°¡æªar;ìâ§Ì¸qual;æ¬sÌ;EGLSTవశ఼à±à±à±æ®qual;æ°reater;æ¸ess;ìâªÌ¸lantEqual;ì⩽̸ilde;æ´estedÄGL౨౹reaterGreater;ì⪢̸essLess;ì⪡̸recedesÆ;ESà²à²à²æqual;ì⪯̸lantEqual;æ ÄeiಫಹverseElement;æghtTriangleÆ;BEà³à³à³æ«ar;ìâ§Ì¸qual;æÄquà³à´uareSuÄbp೨೹setÄ;Eà³°à³³ìâ̸qual;æ¢ersetÄ;Eà´à´ìâ̸qual;æ£Æbcpà´à´¤àµsetÄ;Eà´à´ìââqual;æceedsÈ;ESTà´²à´³à´»àµæqual;ì⪰̸lantEqual;æ¡ilde;ìâ¿Ì¸ersetÄ;Eàµàµìââqual;æildeÈ;EFT൮൯൵ൿæqual;æullEqual;æilde;æerticalBar;æ¤cr;ìð©ildeè»Ãä;äÜEacdfgmoprstuvà¶½à·à·à·à·à· à·§à·¼à¸à¸ ยา฿à¹lig;ä
cuteè»ÃäÄiyà·à·rcè»Ãä;äblac;ä
r;ìðraveè»ÃäÆaei෮ෲ෶cr;ä
ga;ä©cron;äpf;ìðenCurlyÄDQà¸à¸oubleQuote;æuote;æ;æ©Äclวฬr;ìðªashè»ÃäiŬื฼deè»Ãäes;樷mlè»ÃäerÄBPà¹à¹ Äarà¹à¹r;æ¾acÄekà¹à¹;æet;æ´arenthesis;æÒacfhilors๿àºàºàºàºàºàºàº°à»¼rtialD;æy;är;ìði;ä¦;ä usMinus;ä±ÄipຢàºncareplanÃ¥Úf;æÈ;eio຺ູ໠໤檻cedesÈ;ESTà»à»à»à»æºqual;檯lantEqual;æ¼ilde;æ¾me;æ³Ädp໩໮uct;æortionÄ;aȥ໹l;æÄcià¼à¼r;ìð«;ä¨ÈUfosà¼à¼à¼à¼OTè»"ä¢r;ìðpf;æcr;ìð¬ØBEacefhiorsu༾à½à½à½ ཱིྦྷྪà¾áá©á´á¾arr;æ¤Gè»Â®ä®Æcnrà½à½à½ute;ä
g;æ«rÄ;tà½à½æ l;æ¤Æaeyཧཬཱron;ä
dil;ä
;ä Ä;vླྀཹæerseÄEUà¾à¾Älqà¾à¾ement;æuilibrium;æpEquilibrium;楯r»ཹo;ä¡ghtÐACDFTUVaà¿à¿«à¿³á¢á¨ááÏÄnrà¿à¿gleBracket;æ©rowÆ;BLà¿à¿à¿¡æar;æ¥eftArrow;æeiling;æoǵ࿹\0á
bleBracket;æ§nÇá\0áeeVector;æ¥ectorÄ;Bááæar;æ¥loor;æÄerááeÆ;AVáµá¶á¼æ¢rrow;æ¦ector;æ¥iangleÆ;BEáááæ³ar;æ§qual;æµpÆDTVá£á®á¸ownVector;æ¥eeVector;æ¥ectorÄ;Bááæ¾ar;æ¥ectorÄ;Bááæar;æ¥Äpuááf;ændImplies;楰ightarrow;æÄchá¹á¼r;æ;æ±leDelayed;æ§´ÚHOacfhimoqstuá¤á±á·á½ááá
á
á
¡á
§áµá»á¿ÄCcá©á®Hcy;ä©y;ä¨FTcy;ä¬cute;ä
Ê;aeiyáááááæª¼ron;ä
dil;ä
rc;ä
;ä¡r;ìðortÈDLRUáªá´á¾á
ownArrow»ÐeftArrow»à¢ightArrow»à¿pArrow;ægma;ä£allCircle;æpf;ìðɲá
\0\0á
°t;æareÈ;ISUá
ȇ
¼áá¯æ¡ntersection;æuÄbpáásetÄ;Eááæqual;æersetÄ;Eá¨á©æqual;ænion;æcr;ìð®ar;æÈbcmpááááÄ;sááæetÄ;Eááqual;æÄchá á
eedsÈ;ESTáá®á´á¿æ»qual;檰lantEqual;æ½ilde;æ¿Tháà¾;æÆ;esááá£ærsetÄ;Eááæqual;æet»áÖHRSacfhiorsá¾ááááá±á¶ááááORNè»ÃäADE;æ¢ÄHcáácy;äy;ä¦Äbuáá;ä;䤯aeyá¥áªá¯ron;ä
¤dil;ä
¢;ä¢r;ìðÄeiá»áDzá\0áefore;æ´a;äÄcnáákSpace;ìââSpace;ældeÈ;EFTá«á¬á²á¼æ¼qual;æullEqual;æ
ilde;æpf;ìðipleDot;æÄctáár;ìð¯rok;ä
¦à«¡á·ááá¦\0á¬á±\0\0\0\0\0á¸á½á·á
\0á¿áááÄcrá»áuteè»ÃärÄ;oááæcir;æ¥rÇ£á\0áy;äve;ä
¬Äiyáá£rcè»Ãä;ä£blac;ä
°r;ìðraveè»Ãäacr;ä
ªÄdiáá©erÄBPááÄaráár;äacÄekáá;æet;æµarenthesis;æonÄ;Pá°á±ælus;æÄgpá»á¿on;ä
²f;ìðÐADETadpsáá®á¸áϨááá³rrowÆ;BDá
á á¤ar;æ¤ownArrow;æ
ownArrow;æquilibrium;楮eeÄ;Aááæ¥rrow;æ¥ownáϳerÄLRáá¨eftArrow;æightArrow;æiÄ;lá¹áºäon;ä¥ing;ä
®cr;ìð°ilde;ä
¨mlè»ÃäÒDbcdefosvá§á¬á°á³á¾á
áááash;æ«ar;æ««y;äashÄ;lá»á¼æ©;櫦Äeráá
;æÆbtyáááºar;æÄ;iáácalÈBLSTá¡á¥áªá´ar;æ£ine;ä¼eparator;æilde;æThinSpace;ær;ìðpf;ìðcr;ìð±dash;æªÊcefosá§á¬á±á¶á¼irc;ä
´dge;ær;ìðpf;ìðcr;ìð²Èfiosáááár;ìð;äpf;ìðcr;ìð³ÒAIUacfosuá±áµá¹á½ááááá cy;ä¯cy;äcy;ä®cuteè»ÃäÄiyáárc;ä
¶;ä«r;ìðpf;ìðcr;ìð´ml;ä
¸ÐHacdefosáµá¹á¿áááá á¤cy;äcute;ä
¹Äayááron;ä
½;äot;ä
»Ç²á\0áoWidtèà«a;är;æ¨pf;æ¤cr;ìðµà¯¡ááá\0á°á¶á¿\0\0\0\0ááá«áá\0ááá²á¹\0á¾cuteè»Ã¡ä¡reve;äÌ;Ediuyááá¡á£á¨áæ¾;ìâ¾Ì³;æ¿rcè»Ã¢ä¢teè»Â´Ì;ä°ligè»Ã¦ä¦Ä;r²áº;ìðraveè»Ã ä ÄepááÄfpáásym;æµÃ¨áha;ä±ÄapácÄclá¤á§r;äg;樿ɤá°\0\0áÊ;adsváºá»á¿ááæ§nd;æ©;æ©lope;æ©;æ©Î;elmrszááááá¿ááæ ;榤e»ásdÄ;aá¥á¦æ¡Ñ¡á°á²á´á¶á¸áºá¼á¾;榨;榩;榪;榫;榬;æ¦;榮;榯tÄ;vá
áæbÄ;dááæ¾;æ¦Äptááh;æ¢Â»Â¹arr;æ¼Ägpá£á§on;ä
f;ìðÎ;Eaeiopáá»á½áááá;æ©°cir;橯;æd;æs;ä§roxÄ;eááñáingè»Ã¥ä¥Æctyá¡á¦á¨r;ìð¶;äªmpÄ;eáá¯Ã±Êildeè»Ã£ä£mlè»Ã¤ä¤Äciááoninôɲnt;æ¨à Nabcdefiklnoprsuáá±á°á¼ááá¸á½á á¦á ¹á¡á᤽á¥á¥°ot;æ«Äcrá¶ákÈcepsáá
ááong;æpsilon;ä¶rime;æµimÄ;eááæ½q;æÅ¶á¢á¦ee;æ½edÄ;gá¬áæ
e»árkÄ;táá·brk;æ¶Äoyáá;ä±quo;æÊcmprtááá¡á¤á¨ausÄ;eÄÄptyv;榰séánoÃµÄÆahwá¯á±á³;ä²;æ¶een;æ¬r;ìðgÎcostuvwááá³ááááÆaiuáááÃ°Ý rc;æ¯pÂ»á±Ædptá¤á¨áot;æ¨lus;æ¨imes;æ¨É±á¹\0\0á¾cup;æ¨ar;æ
riangleÄduááown;æ½p;æ³plus;æ¨eÃ¥áÃ¥áarow;æ¤Æakoáá ¦á µÄcná²á £kÆlstáºÖ«á ozenge;æ§«riangleÈ;dlrá á á á æ´own;æ¾eft;æight;æ¸k;æ£Æ±á «\0á ³Æ²á ¯\0á ±;æ;æ4;æck;æÄeoá ¾á¡Ä;qá¡á¡ì=â¥uiv;ìâ¡â¥t;æÈptwxá¡á¡á¡§á¡¬f;ìðÄ;táá¡£om»átie;æØDHUVbdhmptuvá¢
á¢á¢ªá¢»á£á£á£¬á£¿á¤
á¤á¤á¤¡ÈLRlrá¢á¢á¢á¢;æ;æ;æ;æÊ;DUduᢡᢢᢤᢦᢨæ;æ¦;æ©;æ¤;æ§ÈLRlrᢳᢵᢷᢹ;æ;æ;æ;æÎ;HLRhlrá£á£á£á£á£á£á£æ;æ¬;æ£;æ ;æ«;æ¢;æox;æ§ÈLRlrᣤᣦᣨᣪ;æ;æ;æ;æÊ;DUduڽ᣷᣹᣻᣽;æ¥;æ¨;æ¬;æ´inus;ælus;æimes;æ ÈLRlrá¤á¤á¤á¤;æ;æ;æ;æÎ;HLRhlrᤰᤱᤳᤵᤷ᤻᤹æ;æª;æ¡;æ;æ¼;æ¤;æÄevÄ£á¥barè»Â¦ä¦Èceioá¥á¥á¥á¥ r;ìð·mi;æmÄ;eáálÆ;bhᥨᥩᥫä;æ§
sub;æÅ¬á¥´á¥¾lÄ;e᥹᥺æ¢t»᥺pÆ;Eeįá¦
á¦;檮Ä;qÛÛೡᦧ\0᧨á¨á¨á¨²\0ᨷá©\0\0᪴\0\0á«\0\0ᬡᬮáá\0᯽\0á°Æcprá¦á¦²á§ute;äÌ;abcdsᦿá§á§á§á§á§æ©nd;æ©rcup;æ©Äauá§á§p;æ©p;æ©ot;æ©;ìâ©ï¸Äeo᧢᧥t;æÃ®ÚÈaeiuá§°á§»á¨á¨
ǰ᧵\0᧸s;æ©on;ädilè»Ã§ä§rc;äpsÄ;sá¨á¨æ©m;æ©ot;äÆdmná¨á¨ ᨦilè»Â¸Æptyv;榲tè¢;eá¨á¨®ä¢räƲr;ìð Æceiᨽá©á©y;äckÄ;má©á©æark»á©;ärÎ;Ecefmsá©á© ᩢᩫ᪤᪪᪮æ;æ§Æ;elᩩᩪá©äq;æeɡᩴ\0\0áªrrowÄlr᩼áªeft;æºight;æ»ÊRSacdáªáªáªáªáªÂ»à½;æst;æirc;æash;ænint;æ¨id;櫯cir;æ§ubsÄ;u᪻᪼æ£it»᪼ˬá«á«á«º\0á¬onÄ;eá«á«äºÄ;qÃÃÉá«\0\0á«¢aÄ;tá«á«ä¬;äÆ;fl᫨᫩᫫æÃ®á
eÄmx᫱᫶ent»᫩eóÉǧ᫾\0á¬Ä;dá»á¬ot;æ©nÃ´ÉÆfryá¬á¬á¬;ìðoäÉè©;sÅá¬r;æÄaoᬥᬩrr;æµss;æÄcuᬲᬷr;ìð¸ÄbpᬼáÄ;eááæ«;æ«Ä;eááæ«;æ«dot;æ¯Îdelprvwá á¬á·á®á®¬á¯á¯¹arrÄlrá¨áª;椸;椵ɰá²\0\0áµr;æc;æarrÄ;pá¿á®æ¶;椽Ì;bcdosá®á®á®á®¡á®¥á®¨æªrcap;æ©Äauá®á®p;æ©p;æ©ot;ær;æ©
;ìâªï¸Èalrv᮵ᮿá¯á¯£rrÄ;mᮼᮽæ·;椼yÆevwá¯á¯á¯qɰá¯\0\0á¯reãá³uãáµee;æedge;æenè»Â¤ä¤earrowÄlrᯮ᯳eft»á®ight»ᮽeäá¯Äciá°á°oninôǷnt;æ±lcty;æà¦AHabcdefhijlorstuwz᰸᰻᰿á±á±©á±µá²á²á²¬á²·á³»á³¿á´áµ»á¶á¶«á¶»á·á·ròÎar;楥Èglrsá±á±á±á±ger;æ eth;æ¸Ã²á³hÄ;vá±á±æÂ»à¤Å«á±¡á±§arow;æ¤aãÌÄayᱮᱳron;ä;ä´Æ;ao̲ᱼá²ÄgrÊ¿á²r;ætseq;æ©·Æglmá²á²á²è»Â°ä°ta;ä´ptyv;榱ÄirᲣᲨsht;楿;ìð¡arÄlrᲳᲵ»à£Â»áÊaegsvá³Í¸á³á³á³ mÆ;oșá³á³ndÄ;șá³uit;æ¦amma;äin;æ²Æ;io᳧᳨᳸ä·deè÷;oá³§á³°ntimes;ænø᳷cy;äcɯá´\0\0á´rn;æop;æÊlptuwá´á´á´¢áµáµlar;ä¤f;ìðÊ;empsÌá´á´·á´½áµqÄ;dÍá´³ot;æinus;æ¸lus;æquare;æ¡blebarwedgåúnÆadhá®áµáµ§ownarrowóá²arpoonÄlrᵲᵶefôᲴighôᲶŢᵿá¶
karo÷à½É¯á¶\0\0á¶rn;æop;æÆcotá¶á¶£á¶¦Äryá¶á¶¡;ìð¹;äl;æ§¶rok;äÄdrá¶°á¶´ot;æ±iÄ;fá¶ºá æ¿Äahá·á·ròЩaòྦangle;榦Äciá·á·y;ägrarr;æ¿à¤Dacdefglmnopqrstuxá¸á¸á¸á¸¸Õ¸á¸¼á¹á¹¡á¹¾áº¥áº¯áº½á»¡á¼ªá¼·á½á½á½ÄDoá¸á´´oôá²Äcsá¸á¸uteè»Ã©ä©ter;æ©®ÈaioyḢḧḱḶron;ärÄ;cá¸á¸®æè»Ãªäªlon;æ;äot;äÄDrá¹á¹
ot;æ;ìð¢Æ;rsá¹á¹á¹æªaveè»Ã¨ä¨Ä;dá¹á¹æªot;æªÈ;ilsṪṫṲṴæªnters;æ§;æÄ;dṹṺæªot;æªÆapsáº
áºáºcr;ätyÆ;sváºáºáºæ
et»áºpÄ1;áºáº¤Ä³áº¡áº£;æ;æ
æÄgsẪẬ;ä
p;æÄgpẴẸon;äf;ìðÆalsá»á»á»rÄ;sá»á»æl;æ§£us;橱iÆ;lvá»á»á»äµon»á»;äµÈcsuvỪỳá¼á¼£Äioữḱrc»Ḯɩỹ\0\0á»»ÃÕantÄglá¼á¼tr»á¹ess»ṺÆaeiá¼á¼á¼ls;ä½st;ævÄ;DȵἠD;橸parsl;æ§¥ÄDaἯἳot;ærr;楱Æcdiá¼¾á½á»¸r;æ¯oôÍÄahá½á½;ä·è»Ã°ä°Ämrá½á½lè»Ã«ä«o;æ¬Æcipὡὤὧl;ä¡sôծÄeoὬὴctatioîÕnentialåչৡá¾\0á¾\0ᾡᾧ\0\0á¿á¿\0á¿\0ῦῪâ\0ââllingdotseñá¹y;ämale;æÆilrá¾á¾³á¿lig;èï¬É©á¾¹\0\0á¾½g;èï¬ig;èï¬;ìð£lig;èï¬lig;ìfjÆaltá¿á¿á¿¡t;æig;èï¬ns;æ±of;äǰ΅\0ῳf;ìðÄakÖ¿á¿·Ä;vῼ´æ;æ«artint;æ¨ÄaoââÄcsââαââ°â¸â
â\0âβâ¢â¥â§âªâ¬\0â®è»Â½ä½;æ
è»Â¼ä¼;æ
;æ
;æ
Ƴâ´\0â¶;æ
;æ
Ê´â¾â\0\0âè»Â¾ä¾;æ
;æ
5;æ
ƶâ\0â;æ
;æ
8;æ
l;æwn;æ¢cr;ìð»à¢Eabcdefgijlnorstvââââ¥â°â´â°âµâºâ¿âââ¸Ìâ¾â
âÄ;lÙâ;æªÆcmpâââute;äµmaÄ;dâá³ä³;æªreve;äÄiyâªâ®rc;ä;ä³ot;ä¡È;lqsؾÙâ½âÆ;qsؾÙâlanô٥È;cdlÙ¥âââ¥c;檩otÄ;oââæªÄ;lâ¢â£æª;æªÄ;eâªâìâï¸s;æªr;ìð¤Ä;gÙ³Ømel;æ·cy;äÈ;EajÙâââ;æª;檥;檤ÈEaesâââ©â´;æ©pÄ;pâ£â¤æªrox»â¤Ä;qâ®â¯æªÄ;qâ®âim;æ§pf;ìðÄciâ
â
r;æmÆ;elÙ«â
â
;æª;æªè>;cdlqr×®â
â
ªâ
®â
³â
¹Äciâ
¥â
§;檧r;橺ot;æPar;æ¦uest;橼Êadelsââ
ªâÙâǰâ\0âproøâr;楸qÄlqØ¿âlesóâiÃÙ«Äenâ£ârtneqq;ìâ©ï¸Ã
âªÔAabcefkosyâââ±âµâºâââ¯â¨â½ròΠÈilmrâââârsðáf»â¤ilôکÄdrâ â¤cy;äÆ;cwࣴâ«â¯ir;æ¥;æar;æirc;䥯alrââârtsÄ;uââæ¥it»âlip;æ¦con;æ¹r;ìð¥sÄewâ£â©arow;椥arow;椦Êamoprâºâ¾âââ£rr;æ¿tht;æ»kÄlrââeftarrow;æ©ightarrow;æªf;ìðbar;æÆcltâ¯â´â¸r;ìð½asèâ´rok;ä§Äbpââull;æhen»á±à«¡â£\0âª\0â¸â
â\0ââ³\0\0â¸â¢â§â¢â¿\0ââªâ´cuteè»ÃäÆ;iyݱâ°âµrcè»Ã®ä®;ä¸Äcxâ¼â¿y;äµclè»Â¡ä¡ÄfrÎâ;ìð¦raveè»Ã¬ä¬È;inoܾââ©â®Äinâ¢â¦nt;æ¨t;æfin;æ§ta;æ©lig;䳯aopâ¾ââÆcgtâ
ââr;䫯elpÜââinÃ¥ÞarÃ´Ü h;ä±f;æ·ed;äµÊ;cfotÓ´â¬â±â½âare;æ
inÄ;tâ¸â¹æie;æ§doôâÊ;celpÝââââ¡al;æºÄgrââeróá£Ã£âarhk;æ¨rod;樼Ècgptâ¯â²â¶â»y;äon;ä¯f;ìða;ä¹uestè»Â¿ä¿Äciââr;ìð¾nÊ;EdsvÓ´âââ¡Ó³;æ¹ot;æµÄ;vâ¦â§æ´;æ³Ä;iÝ·â®lde;ä©Ç«â¸\0â¼cy;älè»Ã¯ä¯Ìcfmosuââââ¡â§âµÄiyâârc;äµ;ä¹r;ìð§ath;ä·pf;ìðÇ£â¬\0â±r;ìð¿rcy;äkcy;äÐacfghjosâââ¢â§ââ±âµâ»ppaÄ;vââäº;ä°Äeyââ dil;ä·;äºr;ìð¨reen;ä¸cy;ä
cy;äpf;ìðcr;ìðà®ABEHabcdefghjlmnoprstuvâ°ââââââ½âââââ¥â¹â½ââ²âââ¨âââ â Æartâ·âºâ¼ròà§Ã²Îail;æ¤arr;æ¤Ä;gà¦â;æªar;楢ॣâ¥\0âª\0â±\0\0\0\0\0âµâº\0âââ\0â¹ute;äºmptyv;榴raîà¡bda;ä»gÆ;dlà¢ââ;æ¦Ã¥à¢;æª
uoè»Â«ä«rÐ;bfhlpstà¢ââ¦â©â«â®â±âµÄ;fà¢â£s;æ¤s;æ¤Ã«âp;æ«l;椹im;楳l;æ¢Æ;aeâ¿ââæª«il;æ¤Ä;sââæª;ìâªï¸Æabrââârr;æ¤rk;æ²Äakâ¢â¬cÄekâ¨âª;ä»;äÄesâ±â³;æ¦lÄduâ¹â»;æ¦;æ¦Èaeuyââââron;ä¾Ädiââil;ä¼Ã¬à¢°Ã¢â©;
vendor: 4,294 bytes, line 214
214ä»Ècqrsâ£â¦ââ½a;椶uoÄ;rà¸áÄduâ²â·har;楧shar;æ¥h;æ²Ê;fgqsââà¦â³â¿æ¤tÊahlrtââ¤â·ââ¨rrowÄ;tà¢â¡aéâ¶arpoonÄduâ¯â´own»Ñp»०eftarrows;æightÆahsââârrowÄ;sࣴࢧarpoonóà¾quigarro÷â°hreetimes;æÆ;qsâà¦âºlanôবÊ;cdgsবââââ¨c;檨otÄ;oââæ©¿Ä;rââæª;æªÄ;eâ¢â¥ìâï¸s;æªÊadegsâ³â¹â½ââpproøâot;æqÄgqââ
ôà¦gtòâôà¦iÃলÆilrâ࣡âsht;楼;ìð©Ä;Eà¦â£;æªÅ¡â©â¶rÄduâ²â®Ä;l॥â³;楪lk;æcy;äÊ;achtà©ââââròâorneòá´ard;楫ri;æºÄioââ¤dot;ä
ustÄ;aâ¬âæ°che»âÈEaesâ»â½ââ;æ¨pÄ;pââæªrox»âÄ;qââæªÄ;qââ»im;æ¦Ðabnoptwzâ©â´â·ââ¯âââÄnrâ®â±g;æ¬r;æ½rëà£gÆlmrâ¿ââeftÄar০âightá৲apsto;æ¼ightá৽parrowÄlrâ¥â©efôâight;æ¬Æaflâ¶â¹â½r;æ¦
;ìðus;æ¨imes;樴šââst;æÃ¡áÆ;efââá ænge»âarÄ;lâ¤â¥ä¨t;æ¦Êachmtâ³â¶â¼â
âròࢨorneòá¶arÄ;dà¾â;æ¥;æri;æ¿Ìachiqtââà©â¢â®â»quo;æ¹r;ìðmÆ;egলâªâ¬;æª;æªÄbuâªâ³oÄ;rà¸â¹;ærok;ä
è<;cdhilqrà «ââ¹ââ â¥âªâ°Äciââ;檦r;橹reÃ¥â²mes;æarr;楶uest;æ©»ÄPiâµâ¹ar;æ¦Æ;efâ à¤á ærÄduâ â shar;æ¥har;楦Äenâ â ¡rtneqq;ìâ¨ï¸Ã
â ÜDacdefhilnopsuâ¡â¡
â¢â¢â¢â¢ ⢥⢨â£â£¢â£¤àªâ£³â¤Dot;æºÈclprâ¡â¡â¡£â¡½rè»Â¯ä¯Äetâ¡â¡;æÄ;eâ¡â¡æ se»â¡Ä;sá»â¡¨toÈ;dluá»â¡³â¡·â¡»owîÒefôà¤Ã°áker;æ®Äoyâ¢â¢mma;権;ä¼ash;æasuredangle»á¦r;ìðªo;æ§Æcdn⢯⢴â£roè»ÂµäµÈ;acdá¤â¢½â£â£sôá§ir;æ«°otè»Â·ÆµusÆ;bdâ£á¤â£æÄ;uá´¼â£;横ţâ£â£¡p;æ«Ã²âðàªÄdp⣩⣮els;æ§f;ìðÄct⣸⣽r;ìðpos»áÆ;lmâ¤â¤â¤ä¼timap;æ¸à°GLRVabcdefghijlmoprstuvwâ¥â¥â¥¾â¦â¦â§â§©â¨â¨â©â©âªâªâª¤âª¨â¬â¬ââ¿â®®â°´â±§â±¼â³©Ägtâ¥â¥;ìâ̸Ä;vâ¥à¯ìâ«âÆeltâ¥â¥²â¥¶ftÄar⥡⥧rrow;æightarrow;æ;ìâ̸Ä;v⥻à±ìâªâightarrow;æÄDdâ¦â¦ash;æ¯ash;æ®Êbcnpt⦣⦧⦬⦱â§la»Ëute;ä
g;ìâ âÊ;Eiopà¶â¦¼â§â§
â§;ì⩰̸d;ìâ̸s;ä
roøà¶urÄ;aâ§â§æ®lÄ;sâ§à¬¸Ç³â§\0â§£pè»Â ଷmpÄ;e௹à°Êaeouyâ§´â§¾â¨â¨â¨Ç°â§¹\0â§»;æ©on;ä
dil;ä
ngÄ;dൾâ¨ot;ìâ©Ì¸p;æ©;ä½ash;æÎ;Aadqsxà®â¨©â¨â¨»â©â©
â©rr;ærÄhr⨳⨶k;椤Ä;oá²á°ot;ìâ̸uiöà£Äeiâ©â©ar;椨Ãà®istÄ;sà® à®r;ìð«ÈEestà¯
⩦⩹⩼Æ;qs஼â©à¯¡Æ;qs஼à¯
â©´lanô௢iÃ௪Ä;rà®¶âªÂ»à®·ÆAapâªâªâªrò⥱rr;æ®ar;櫲Æ;svà¾âªà¾Ä;d⪡⪢æ¼;æºcy;äÎAEadest⪷⪺⪾â«â«
⫶⫹rò⥦;ìâ¦Ì¸rr;ær;æ¥È;fqsà°»â«â«£â«¯tÄarâ«â«rro÷â«ightarroÃ·âªÆ;qs఻⪺⫪lanôà±Ä;sà±â«´Â»à°¶iÃà±Ä;rవ⫾iÄ;eà°à°¥iäà¶Äptâ¬â¬f;ìðè¬;inâ¬â¬â¬¶ä¬nÈ;Edvà®â¬¤â¬¨â¬®;ìâ¹Ì¸ot;ìâµÌ¸Ç¡à®â¬³â¬µ;æ·;æ¶iÄ;vಸ⬼ǡಸââ;æ¾;æ½Æaorââ£â©rÈ;astà»âââlleìà»l;ì⫽â¥;ìâ̸lint;æ¨Æ;ceà²â°â³uåಥÄ;cà²â¸Ä;eà²â½Ã±à²ÈAaitâ®â®â®â®§ròâ¦rrÆ;cwâ®â®â®æ;ì⤳̸;ìâ̸ghtarrow»â®riÄ;eà³à³Îchimpqu⮽â¯â¯â¬à¸â¯¤â¯¯È;cerà´²â¯à´·â¯uÃ¥àµ
;ìðortÉâ¬
\0\0â¯aráâmÄ;e൮â¯Ä;q൴൳suÄbp⯫â¯Ã¥à³¸Ã¥à´Æbcp⯶â°â°È;Ees⯿â°à´¢â°æ;ìâ«
̸etÄ;eà´â°qÄ;qà´£â°cÄ;eà´²â°Ã±à´¸È;EesⰢⰣàµâ°§æ
;ìâ«Ì¸etÄ;eàµâ°®qÄ;qൠⰣÈgilrⰽⰿâ±
â±Ã¬à¯ldeè»Ã±ä±Ã§à±iangleÄlrâ±â±eftÄ;eà°â±Ã±à°¦ightÄ;eà³â±¥Ã±à³Ä;mⱬâ±ä½Æ;esⱴⱵⱹä£ro;æp;æÒDHadgilrsâ²â²â²â²â²£â²°â²¶â³â³£ash;æarr;æ¤p;ìââash;æ¬ÄetⲨⲬ;ìâ¥â;ì>ânfin;æ§ÆAetâ²½â³â³
rr;æ¤;ìâ¤âÄ;râ³â³ì<âie;ìâ´âÄAtâ³â³rr;æ¤rie;ìâµâim;ìâ¼âÆAanâ³°â³´â´rr;ærÄhr⳺⳽k;椣Ä;oá§á¥ear;椧ááª\0\0\0\0\0\0\0\0\0\0\0\0\0â´\0â´¸âµâµ ⵥ⵲â¶á¬\0\0â¶â¶«\0â·â·\0â·â¸â¸«â¸¾â¹Äcsâ´±áªuteè»Ã³ä³Äiyâ´¼âµ
rÄ;cáªâµè»Ã´ä´;ä¾Êabios᪠âµâµÇâµlac;ä
v;樸old;榼lig;ä
Äcr⵩âµir;榿;ìð¬Í¯âµ¹\0\0âµ¼\0â¶n;äaveè»Ã²ä²;æ§Äbmâ¶à·´ar;榵Èacitâ¶â¶â¶¥â¶¨ròáªÄirâ¶â¶ r;榾oss;榻nÃ¥à¹;æ§Æaeiⶱⶵⶹcr;ä
ga;äÆcdnâ·â·
Çron;ä¿;榶pf;ìð Æaelâ·â·Çr;榷rp;榹Î;adiosvⷪⷫⷮâ¸â¸â¸â¸æ¨ròáªÈ;efmâ··â·¸â¸â¸
æ©rÄ;oⷾⷿæ´f»ⷿè»Âªäªè»Âºäºgof;æ¶r;æ©lope;æ©;æ©Æcloâ¸â¸¡â¸§Ã²â¸ashè»Ã¸ä¸l;æiŬⸯ⸴deè»ÃµäµesÄ;aÇ⸺s;樶mlè»Ã¶ä¶bar;æ½à«¡â¹\0â¹½\0âºâº\0⺢⺹\0\0â»àº\0â¼\0\0⼫⾼\0â¿rÈ;
vendor: 6,210 bytes, line 214
214astÐâ¹§â¹²àº
è¶;lâ¹â¹®ä¶leìÐɩ⹸\0\0â¹»m;櫳;櫽y;ä¿rÊcimptâºâºâºá¡¥âºnt;ä¥od;ä®il;æ°enk;æ±r;ìðÆimo⺨⺰⺴Ä;vâºâº®ä;ämaô੶ne;æÆ;tv⺿â»â»ächfork»´;äÄauâ»â»nÄckâ»â»kÄ;hâ´â»;æÃ¶â´sÒ;abcdemst⻳⻴á¤â»¹â»½â¼â¼â¼â¼ä«cir;樣ir;樢Äouáµâ¼;樥;橲nè»Â±àºim;樦wo;樧Æipuâ¼â¼ â¼¥ntint;æ¨f;ìð¡ndè»Â£ä£Ô;Eaceinosuà»â¼¿â½â½â½â¾â¾â¾â½¾â¾¶;檳p;檷uÃ¥à»Ä;cà»â½Ì;acensà»â½â½â½¦â½¨â½¾pproøâ½urlyeñà»Ã±à»Æaes⽯⽶⽺pprox;檹qq;檵im;æ¨iÃà»meÄ;sâ¾àº®æ²ÆEas⽸â¾â½ºÃ°â½µÆdfp໬â¾â¾¯Æals⾠⾥⾪lar;æ®ine;æurf;æÄ;t໻⾴ï໻rel;æ°Äciâ¿â¿
r;ìð
;äncsp;æÌfiopsuâ¿â¢â¿â¿¥â¿«â¿±r;ìð®pf;ìð¢rime;æcr;ìðÆaeo⿸ããtÄei⿾ã
rnionóڰnt;æ¨stÄ;eããä¿Ã±á¼Ã´à¼àªABHabcdefhilmnoprstuxããããã ãã«ã
ã
¢ã
²ãããã¤ã©ãã®ã²ãã°ã·Æartãããròá³Ã²Ïail;æ¤aròᱥar;楤Îcdenqrtã¨ãµã¸ã¿ãããÄeuãã±;ìâ½Ì±te;ä
iãá
®mptyv;榳gÈ;delà¿ããã;æ¦;榥åà¿uoè»Â»ä»rÖ;abcfhlpstwà¿ã¬ã¯ã·ã¹ã¼ã¾ããããp;極Ä;fà¿ ã´s;æ¤ ;椳s;æ¤Ã«âðâ®l;æ¥
im;楴l;æ£;æÄaiããil;æ¤oÄ;nããæ¶alÃ³à¼Æabrã§ãªã®ròá¥rk;æ³Äakã³ã½cÄekã¹ã»;ä½;äÄesãã;æ¦lÄduãã;æ¦;æ¦Èaeuyããã§ã©ron;ä
Ädiã¡ã¥il;ä
ì࿲âãº;äÈclqsã´ã·ã½ã
a;椷dhar;楩uoÄ;rÈÈh;æ³Æacgã
ã
à½lÈ;ipsླྀã
ã
ánÃ¥á»arôྩt;æÆilrã
©á£ã
®sht;楽;ìð¯Äaoã
·ãrÄduã
½ã
¿Â»Ñ»Ä;láã;楬Ä;vããä;䱯gnsãã¹ã¼htÌahlrstã¤ã°ããã¤ã®rrowÄ;tà¿ãaéãarpoonÄduã»ã¿owîã
¾p»áeftÄahããrrowó࿪arpoonóÕightarrows;æquigarro÷ãhreetimes;æg;äingdotseñἲÆahmãããrò࿪aòÕ;æoustÄ;aããæ±che»ãmid;æ«®Èabptã²ã½ããÄnrã·ãºg;ær;æ¾rëáÆaflãããr;æ¦;ìð£us;樮imes;樵Äapãã§rÄ;gã£ã¤ä©t;æ¦olint;æ¨aròã£Èachqã»ãá¼ã
quo;æºr;ìðÄbuã»ãoÄ;rÈÈÆhirããã reÃ¥ã¸mes;æiÈ;eflãªáá ¡ã«æ¹tri;æ§luhar;楨;æàµ¡ãããã¬ã¸ã±\0ãºã¤\0\0ã¬ã°\0ã¨ãããã±ãã±\0ã\0\0ã³cute;ä
quïâºÔ;Eaceinpsyáã³ãµã¿ããããã¦ã©;檴ǰãº\0ã¼;檸on;ä
¡uÃ¥á¾Ä;dá³ãil;ä
rc;ä
ÆEasããã;檶p;檺im;æ©olint;æ¨iÃá;äotÆ;beã´áµãµæ
;橦ÎAacmstxãããããã£ãrr;ærÄhrããëâ¨Ä;oਸ਼਴tè»Â§ä§i;ä»war;椩mÄinã©Ã°nuóñt;æ¶rÄ;oã¶âìð°Èacoyãããã rp;æ¯Ähyããcy;ä;ärtÉã\0\0ãiäá¤araì⹯è»ÂäÄgmã¨ã´maÆ;fvã±ã²ã²ä;äÐ;deglnprá«ã
ããããã¡ã¦ot;橪Ä;qá±á°Ä;Eããæª;æª Ä;Eããæª;æªe;ælus;樤arr;楲aròá½Èaeitã¸ãããÄlsã½ãlsetméãªhp;樳parsl;槤Ädlá£ãe;æ£Ä;eããæªªÄ;sã¢ã£æª¬;ìâª¬ï¸Æflpã®ã³ãtcy;äÄ;bã¸ã¹ä¯Ä;aã¾ã¿æ§r;æ¿f;ìð¤aÄdrãÐesÄ;uããæ it»ãÆcsuã ã¹ãÄauã¥ã¯pÄ;sáã«;ìâï¸pÄ;sá´ãµ;ìâï¸uÄbpã¿ãÆ;esááãetÄ;eáãñáÆ;esá¨áãetÄ;eá¨ãÃ±á®Æ;afá
»ã¦Ö°rÅ¥ã«Ö±Â»á
¼aròá
Ècemtã¹ã¾ãã
r;ìðtmîñiìãaræá¾ÄarããrÄ;fãá¿æÄanããightÄepã£ãªpsiloîỠhé⺯s»â¡Êbcmnpã»ãáããÒ;Edemnprsãããããã£ã¬ã±ã¶æ;æ«
ot;檽Ä;dáãot;æ«ult;æ«ÄEeã¨ãª;æ«;ælus;檿arr;楹Æeiuã½ããtÆ;enãã
ãqÄ;qáãeqÄ;qã«ã¨m;æ«Äbpãã;æ«;æ«cÌ;acensáã¬ã²ã¹ã»ã¦pproøãºurlyeñá¾Ã±á³Æaesãããpproøãqñãg;æªÚ123;Edehlmnpsã©ã¬ã¯áã²ã´ãããããã¨ãè»Â¹ä¹è»Â²ä²è»Â³ä³;æ«Äosã¹ã¼t;檾ub;æ«Ä;dá¢ã
ot;æ«sÄouããl;æb;æ«arr;楻ult;æ«ÄEeã¤ã¦;æ«;ælus;æ«Æeiuã´ããtÆ;enáã¼ãqÄ;qá¢ã²eqÄ;qã§ã¤m;æ«Äbpãã;æ«;æ«ÆAanãã ãrr;ærÄhrã¦ã¨Ã«â®Ä;oਫ਩war;椪ligè»Ãä௡ããã áã³ã¹\0ã¾ã\0\0\0\0\0ãã\0ãã¬\0\0\0ãɲã\0\0ãget;æ;ärÃ«à¹Æaeyã¦ã«ã°ron;ä
¥dil;ä
£;älrec;ær;ìð±Èeikoãããµã¼Ç²ã\0ãeÄ4fááaÆ;svãããä¸ym;äÄcnã¢ã²kÄasã¨ã®pproøáim»á¬sðáÄasãºã®Ã°árnè»Ã¾ä¾Ç¬Ìãâ§esèÃ;bdãããäÄ;aá¤ãr;樱;樰Æepsã¡ã£ãáâ©È;bcfÒã¬ã°ã´ot;æ¶ir;櫱Ä;oã¹ã¼ìð¥rk;æ«Ã¡ã¢rime;æ´Æaipããã¤dÃ¥áÎadempstã¡ããããããngleÊ;dlqrã°ã±ã¶ããæµown»ᶻeftÄ;eâ ã¾Ã±à¤®;æightÄ;eãªãñáot;æ¬inus;樺lus;樹b;æ§ime;樻ezium;æ¢Æchtã²ã½ãÄryã·ã»;ìð;äcy;ärok;ä
§Äioããxôá·headÄlrãã eftarro÷à¡ightarrow»à½à¤AHabcdfghlmoprstuwãããã¤ã°ã¼ã ã 㠣㠴ã¡ã¡ã¡«ã¢©ã£ã£ã£ªã£¶ròÏar;楣Äcrãã¢uteè»ÃºäºÃ²á
rÇ£ãª\0ãy;äve;ä
Äiyãµãºrcè»Ã»ä»;äÆabhã ã ã ròálac;ä
±aòáÄirã ã sht;楾;ìð²raveè»Ã¹ä¹Å¡ã §ã ±rÄlr㠬㠮»à¥Â»álk;æÄctã ¹ã¡É¯ã ¿\0\0ã¡rnÄ;eã¡
ã¡ær»ã¡op;æri;æ¸Äalã¡ã¡cr;ä
«è»Â¨ÍÄgp㡢㡦on;ä
³f;ìð¦Ìadhlsuá
㡸㡽á²ã¢ã¢ ownáá³arpoonÄlrã¢ã¢efôã ighô㠯iÆ;hlã¢ã¢ã¢ä
»áºon»ã¢parrows;æÆcit㢰ã£ã£É¯ã¢¶\0\0ã£rnÄ;e㢼㢽ær»㢽op;æng;ä
¯ri;æ¹cr;ìðÆdirã£ã£ã£¢ot;æ°lde;ä
©iÄ;fã°ã£¨Â»á Äam㣯㣲rò㢨lè»Ã¼ä¼angle;榧ÞABDacdeflnoprszã¤ã¤ã¤©ã¤ã¦µã¦¸ã¦½ã§ã§¤ã§¨ã§³ã§¹ã§½ã¨ã¨ ròϷarÄ;v㤦㤧櫨;æ«©asèϡÄnr㤲㤷grt;æ¦Îeknprstã£ã¥ã¥ã¥ã¥ã¥¤ã¦appáâothinÃ§áºÆhirã«â»ã¥opô⾵Ä;há·ã¥¢Ã¯ãÄiu㥩ã¥gmáã³Äbp㥲ã¦setneqÄ;q㥽ã¦ìâï¸;ìâ«ï¸setneqÄ;qã¦ã¦ìâï¸;ìâ«ï¸Ährã¦ã¦etáãiangleÄlr㦪㦯eft»थight»áy;ä²ashÂ»á¶Æelrã§ã§ã§Æ;beâ·ªã§ã§ar;æ»q;ælip;æ®Äbtã§á¨aòá©r;ìð³tré㦮suÄbp㧯㧱»à´Â»àµpf;ìð§roð໻tré㦴Äcuã¨ã¨r;ìðÄbpã¨ã¨nÄEeã¦ã¨Â»ã¥¾nÄEeã¦ã¨Â»ã¦igzag;æ¦Îcefoprs㨶㨻ã©ã©ã©ã©¡ã©ªirc;ä
µÄdiã©ã©Äbgã©
ã©ar;æ©eÄ;qáºã©;æerp;ær;ìð´pf;ìð¨Ä;eá¹ã©¦atèá¹cr;ìðà«£áãª\0ãª\0ãªãª\0\0ãªãª¨ãª«ãª¯\0\0ã«ã«\0ã«áátréár;ìðµÄAaãªãªròÏrò৶;ä¾ÄAa㪡㪤ròθrò৫aðâis;æ»Ædptá¤ãªµãª¾Äfl㪺á©;ìð©imÃ¥á²ÄAaã«ã«ròÏròà¨Äcqã«á¸r;ìðÄptáã«réáÐacefiosu㫰㫽ã¬ã¬ã¬ã¬ã¬ã¬¡cÄuyã«¶ã«»teè»Ã½ä½;äÄiyã¬ã¬rc;ä
·;änè»Â¥ä¥r;ìð¶cy;äpf;ìðªcr;ìðÄcm㬦㬩y;älè»Ã¿ä¿Ôacdefhioswããããã¤ã©ãã´ãºã®cute;ä
ºÄayããron;ä
¾;ä·ot;ä
¼Äetãã¡træáa;ä¶r;ìð·cy;ä¶grarr;æpf;ìð«cr;ìðÄjnã®
ã®;æj;æ
214'.split("").map(e=>e.charCodeAt(0))),tb=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]);function rb(e){var t;return e>=55296&&e<=57343||e>1114111?65533:(t=tb.get(e))!==null&&t!==void 0?t:e}var dt;(function(e){e[e.NUM=35]="NUM",e[e.SEMI=59]="SEMI",e[e.EQUALS=61]="EQUALS",e[e.ZERO=48]="ZERO",e[e.NINE=57]="NINE",e[e.LOWER_A=97]="LOWER_A",e[e.LOWER_F=102]="LOWER_F",e[e.LOWER_X=120]="LOWER_X",e[e.LOWER_Z=122]="LOWER_Z",e[e.UPPER_A=65]="UPPER_A",e[e.UPPER_F=70]="UPPER_F",e[e.UPPER_Z=90]="UPPER_Z"})(dt||(dt={}));const ab=32;var Lr;(function(e){e[e.VALUE_LENGTH=49152]="VALUE_LENGTH",e[e.BRANCH_LENGTH=16256]="BRANCH_LENGTH",e[e.JUMP_TABLE=127]="JUMP_TABLE"})(Lr||(Lr={}));function co(e){return e>=dt.ZERO&&e<=dt.NINE}function nb(e){return e>=dt.UPPER_A&&e<=dt.UPPER_F||e>=dt.LOWER_A&&e<=dt.LOWER_F}function sb(e){return e>=dt.UPPER_A&&e<=dt.UPPER_Z||e>=dt.LOWER_A&&e<=dt.LOWER_Z||co(e)}function ib(e){return e===dt.EQUALS||sb(e)}var ut;(function(e){e[e.EntityStart=0]="EntityStart",e[e.NumericStart=1]="NumericStart",e[e.NumericDecimal=2]="NumericDecimal",e[e.NumericHex=3]="NumericHex",e[e.NamedEntity=4]="NamedEntity"})(ut||(ut={}));var hr;(function(e){e[e.Legacy=0]="Legacy",e[e.Strict=1]="Strict",e[e.Attribute=2]="Attribute"})(hr||(hr={}));class ob{constructor(t,r,a){this.decodeTree=t,this.emitCodePoint=r,this.errors=a,this.state=ut.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=hr.Strict}startEntity(t){this.decodeMode=t,this.state=ut.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1}write(t,r){switch(this.state){case ut.EntityStart:return t.charCodeAt(r)===dt.NUM?(this.state=ut.NumericStart,this.consumed+=1,this.stateNumericStart(t,r+1)):(this.state=ut.NamedEntity,this.stateNamedEntity(t,r));case ut.NumericStart:return this.stateNumericStart(t,r);case ut.NumericDecimal:return this.stateNumericDecimal(t,r);case ut.NumericHex:return this.stateNumericHex(t,r);case ut.NamedEntity:return this.stateNamedEntity(t,r)}}stateNumericStart(t,r){return r>=t.length?-1:(t.charCodeAt(r)|ab)===dt.LOWER_X?(this.state=ut.NumericHex,this.consumed+=1,this.stateNumericHex(t,r+1)):(this.state=ut.NumericDecimal,this.stateNumericDecimal(t,r))}addToNumericResult(t,r,a,n){if(r!==a){const i=a-r;this.result=this.result*Math.pow(n,i)+Number.parseInt(t.substr(r,i),n),this.consumed+=i}}stateNumericHex(t,r){const a=r;for(;r<t.length;){const n=t.charCodeAt(r);if(co(n)||nb(n))r+=1;else return this.addToNumericResult(t,a,r,16),this.emitNumericEntity(n,3)}return this.addToNumericResult(t,a,r,16),-1}stateNumericDecimal(t,r){const a=r;for(;r<t.length;){const n=t.charCodeAt(r);if(co(n))r+=1;else return this.addToNumericResult(t,a,r,10),this.emitNumericEntity(n,2)}return this.addToNumericResult(t,a,r,10),-1}emitNumericEntity(t,r){var a;if(this.consumed<=r)return(a=this.errors)===null||a===void 0||a.absenceOfDigitsInNumericCharacterReference(this.consumed),0;if(t===dt.SEMI)this.consumed+=1;else if(this.decodeMode===hr.Strict)return 0;return this.emitCodePoint(rb(this.result),this.consumed),this.errors&&(t!==dt.SEMI&&this.errors.missingSemicolonAfterCharacterReference(),this.errors.validateNumericCharacterReference(this.result)),this.consumed}stateNamedEntity(t,r){const{decodeTree:a}=this;let n=a[this.treeIndex],i=(n&Lr.VALUE_LENGTH)>>14;for(;r<t.length;r++,this.excess++){const o=t.charCodeAt(r);if(this.treeIndex=cb(a,n,this.treeIndex+Math.max(1,i),o),this.treeIndex<0)return this.result===0||this.decodeMode===hr.Attribute&&(i===0||ib(o))?0:this.emitNotTerminatedNamedEntity();if(n=a[this.treeIndex],i=(n&Lr.VALUE_LENGTH)>>14,i!==0){if(o===dt.SEMI)return this.emitNamedEntityData(this.treeIndex,i,this.consumed+this.excess);this.decodeMode!==hr.Strict&&(this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0)}}return-1}emitNotTerminatedNamedEntity(){var t;const{result:r,decodeTree:a}=this,n=(a[r]&Lr.VALUE_LENGTH)>>14;return this.emitNamedEntityData(r,n,this.consumed),(t=this.errors)===null||t===void 0||t.missingSemicolonAfterCharacterReference(),this.consumed}emitNamedEntityData(t,r,a){const{decodeTree:n}=this;return this.emitCodePoint(r===1?n[t]&~Lr.VALUE_LENGTH:n[t+1],a),r===3&&this.emitCodePoint(n[t+2],a),a}end(){var t;switch(this.state){case ut.NamedEntity:return this.result!==0&&(this.decodeMode!==hr.Attribute||this.result===this.treeIndex)?this.emitNotTerminatedNamedEntity():0;case ut.NumericDecimal:return this.emitNumericEntity(0,2);case ut.NumericHex:return this.emitNumericEntity(0,3);case ut.NumericStart:return(t=this.errors)===null||t===void 0||t.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case ut.EntityStart:return 0}}}function cb(e,t,r,a){const n=(t&Lr.BRANCH_LENGTH)>>7,i=t&Lr.JUMP_TABLE;if(n===0)return i!==0&&a===i?r:-1;if(i){const f=a-i;return f<0||f>=n?-1:e[r+f]-1}let o=r,c=o+n-1;for(;o<=c;){const f=o+c>>>1,d=e[f];if(d<a)o=f+1;else if(d>a)c=f-1;else return e[f+n]}return-1}var Q;(function(e){e.HTML="http://www.w3.org/1999/xhtml",e.MATHML="http://www.w3.org/1998/Math/MathML",e.SVG="http://www.w3.org/2000/svg",e.XLINK="http://www.w3.org/1999/xlink",e.XML="http://www.w3.org/XML/1998/namespace",e.XMLNS="http://www.w3.org/2000/xmlns/"})(Q||(Q={}));var Zr;(function(e){e.TYPE="type",e.ACTION="action",e.ENCODING="encoding",e.PROMPT="prompt",e.NAME="name",e.COLOR="color",e.FACE="face",e.SIZE="size"})(Zr||(Zr={}));var Mt;(function(e){e.NO_QUIRKS="no-quirks",e.QUIRKS="quirks",e.LIMITED_QUIRKS="limited-quirks"})(Mt||(Mt={}));var R;(function(e){e.A="a",e.ADDRESS="address",e.ANNOTATION_XML="annotation-xml",e.APPLET="applet",e.AREA="area",e.ARTICLE="article",e.ASIDE="aside",e.B="b",e.BASE="base",e.BASEFONT="basefont",e.BGSOUND="bgsound",e.BIG="big",e.BLOCKQUOTE="blockquote",e.BODY="body",e.BR="br",e.BUTTON="button",e.CAPTION="caption",e.CENTER="center",e.CODE="code",e.COL="col",e.COLGROUP="colgroup",e.DD="dd",e.DESC="desc",e.DETAILS="details",e.DIALOG="dialog",e.DIR="dir",e.DIV="div",e.DL="dl",e.DT="dt",e.EM="em",e.EMBED="embed",e.FIELDSET="fieldset",e.FIGCAPTION="figcaption",e.FIGURE="figure",e.FONT="font",e.FOOTER="footer",e.FOREIGN_OBJECT="foreignObject",e.FORM="form",e.FRAME="frame",e.FRAMESET="frameset",e.H1="h1",e.H2="h2",e.H3="h3",e.H4="h4",e.H5="h5",e.H6="h6",e.HEAD="head",e.HEADER="header",e.HGROUP="hgroup",e.HR="hr",e.HTML="html",e.I="i",e.IMG="img",e.IMAGE="image",e.INPUT="input",e.IFRAME="iframe",e.KEYGEN="keygen",e.LABEL="label",e.LI="li",e.LINK="link",e.LISTING="listing",e.MAIN="main",e.MALIGNMARK="malignmark",e.MARQUEE="marquee",e.MATH="math",e.MENU="menu",e.META="meta",e.MGLYPH="mglyph",e.MI="mi",e.MO="mo",e.MN="mn",e.MS="ms",e.MTEXT="mtext",e.NAV="nav",e.NOBR="nobr",e.NOFRAMES="noframes",e.NOEMBED="noembed",e.NOSCRIPT="noscript",e.OBJECT="object",e.OL="ol",e.OPTGROUP="optgroup",e.OPTION="option",e.P="p",e.PARAM="param",e.PLAINTEXT="plaintext",e.PRE="pre",e.RB="rb",e.RP="rp",e.RT="rt",e.RTC="rtc",e.RUBY="ruby",e.S="s",e.SCRIPT="script",e.SEARCH="search",e.SECTION="section",e.SELECT="select",e.SOURCE="source",e.SMALL="small",e.SPAN="span",e.STRIKE="str
214ike",e.STRONG="strong",e.STYLE="style",e.SUB="sub",e.SUMMARY="summary",e.SUP="sup",e.TABLE="table",e.TBODY="tbody",e.TEMPLATE="template",e.TEXTAREA="textarea",e.TFOOT="tfoot",e.TD="td",e.TH="th",e.THEAD="thead",e.TITLE="title",e.TR="tr",e.TRACK="track",e.TT="tt",e.U="u",e.UL="ul",e.SVG="svg",e.VAR="var",e.WBR="wbr",e.XMP="xmp"})(R||(R={}));var s;(function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.A=1]="A",e[e.ADDRESS=2]="ADDRESS",e[e.ANNOTATION_XML=3]="ANNOTATION_XML",e[e.APPLET=4]="APPLET",e[e.AREA=5]="AREA",e[e.ARTICLE=6]="ARTICLE",e[e.ASIDE=7]="ASIDE",e[e.B=8]="B",e[e.BASE=9]="BASE",e[e.BASEFONT=10]="BASEFONT",e[e.BGSOUND=11]="BGSOUND",e[e.BIG=12]="BIG",e[e.BLOCKQUOTE=13]="BLOCKQUOTE",e[e.BODY=14]="BODY",e[e.BR=15]="BR",e[e.BUTTON=16]="BUTTON",e[e.CAPTION=17]="CAPTION",e[e.CENTER=18]="CENTER",e[e.CODE=19]="CODE",e[e.COL=20]="COL",e[e.COLGROUP=21]="COLGROUP",e[e.DD=22]="DD",e[e.DESC=23]="DESC",e[e.DETAILS=24]="DETAILS",e[e.DIALOG=25]="DIALOG",e[e.DIR=26]="DIR",e[e.DIV=27]="DIV",e[e.DL=28]="DL",e[e.DT=29]="DT",e[e.EM=30]="EM",e[e.EMBED=31]="EMBED",e[e.FIELDSET=32]="FIELDSET",e[e.FIGCAPTION=33]="FIGCAPTION",e[e.FIGURE=34]="FIGURE",e[e.FONT=35]="FONT",e[e.FOOTER=36]="FOOTER",e[e.FOREIGN_OBJECT=37]="FOREIGN_OBJECT",e[e.FORM=38]="FORM",e[e.FRAME=39]="FRAME",e[e.FRAMESET=40]="FRAMESET",e[e.H1=41]="H1",e[e.H2=42]="H2",e[e.H3=43]="H3",e[e.H4=44]="H4",e[e.H5=45]="H5",e[e.H6=46]="H6",e[e.HEAD=47]="HEAD",e[e.HEADER=48]="HEADER",e[e.HGROUP=49]="HGROUP",e[e.HR=50]="HR",e[e.HTML=51]="HTML",e[e.I=52]="I",e[e.IMG=53]="IMG",e[e.IMAGE=54]="IMAGE",e[e.INPUT=55]="INPUT",e[e.IFRAME=56]="IFRAME",e[e.KEYGEN=57]="KEYGEN",e[e.LABEL=58]="LABEL",e[e.LI=59]="LI",e[e.LINK=60]="LINK",e[e.LISTING=61]="LISTING",e[e.MAIN=62]="MAIN",e[e.MALIGNMARK=63]="MALIGNMARK",e[e.MARQUEE=64]="MARQUEE",e[e.MATH=65]="MATH",e[e.MENU=66]="MENU",e[e.META=67]="META",e[e.MGLYPH=68]="MGLYPH",e[e.MI=69]="MI",e[e.MO=70]="MO",e[e.MN=71]="MN",e[e.MS=72]="MS",e[e.MTEXT=73]="MTEXT",e[e.NAV=74]="NAV",e[e.NOBR=75]="NOBR",e[e.NOFRAMES=76]="NOFRAMES",e[e.NOEMBED=77]="NOEMBED",e[e.NOSCRIPT=78]="NOSCRIPT",e[e.OBJECT=79]="OBJECT",e[e.OL=80]="OL",e[e.OPTGROUP=81]="OPTGROUP",e[e.OPTION=82]="OPTION",e[e.P=83]="P",e[e.PARAM=84]="PARAM",e[e.PLAINTEXT=85]="PLAINTEXT",e[e.PRE=86]="PRE",e[e.RB=87]="RB",e[e.RP=88]="RP",e[e.RT=89]="RT",e[e.RTC=90]="RTC",e[e.RUBY=91]="RUBY",e[e.S=92]="S",e[e.SCRIPT=93]="SCRIPT",e[e.SEARCH=94]="SEARCH",e[e.SECTION=95]="SECTION",e[e.SELECT=96]="SELECT",e[e.SOURCE=97]="SOURCE",e[e.SMALL=98]="SMALL",e[e.SPAN=99]="SPAN",e[e.STRIKE=100]="STRIKE",e[e.STRONG=101]="STRONG",e[e.STYLE=102]="STYLE",e[e.SUB=103]="SUB",e[e.SUMMARY=104]="SUMMARY",e[e.SUP=105]="SUP",e[e.TABLE=106]="TABLE",e[e.TBODY=107]="TBODY",e[e.TEMPLATE=108]="TEMPLATE",e[e.TEXTAREA=109]="TEXTAREA",e[e.TFOOT=110]="TFOOT",e[e.TD=111]="TD",e[e.TH=112]="TH",e[e.THEAD=113]="THEAD",e[e.TITLE=114]="TITLE",e[e.TR=115]="TR",e[e.TRACK=116]="TRACK",e[e.TT=117]="TT",e[e.U=118]="U",e[e.UL=119]="UL",e[e.SVG=120]="SVG",e[e.VAR=121]="VAR",e[e.WBR=122]="WBR",e[e.XMP=123]="XMP"})(s||(s={}));const ub=new Map([[R.A,s.A],[R.ADDRESS,s.ADDRESS],[R.ANNOTATION_XML,s.ANNOTATION_XML],[R.APPLET,s.APPLET],[R.AREA,s.AREA],[R.ARTICLE,s.ARTICLE],[R.ASIDE,s.ASIDE],[R.B,s.B],[R.BASE,s.BASE],[R.BASEFONT,s.BASEFONT],[R.BGSOUND,s.BGSOUND],[R.BIG,s.BIG],[R.BLOCKQUOTE,s.BLOCKQUOTE],[R.BODY,s.BODY],[R.BR,s.BR],[R.BUTTON,s.BUTTON],[R.CAPTION,s.CAPTION],[R.CENTER,s.CENTER],[R.CODE,s.CODE],[R.COL,s.COL],[R.COLGROUP,s.COLGROUP],[R.DD,s.DD],[R.DESC,s.DESC],[R.DETAILS,s.DETAILS],[R.DIALOG,s.DIALOG],[R.DIR,s.DIR],[R.DIV,s.DIV],[R.DL,s.DL],[R.DT,s.DT],[R.EM,s.EM],[R.EMBED,s.EMBED],[R.FIELDSET,s.FIELDSET],[R.FIGCAPTION,s.FIGCAPTION],[R.FIGURE,s.FIGURE],[R.FONT,s.FONT],[R.FOOTER,s.FOOTER],[R.FOREIGN_OBJECT,s.FOREIGN_OBJECT],[R.FORM,s.FORM],[R.FRAME,s.FRAME],[R.FRAMESET,s.FRAMESET],[R.H1,s.H1],[R.H2,s.H2],[R.H3,s.H3],[R.H4,s.H4],[R.H5,s.H5],[R.H6,s.H6],[R.HEAD,s.HEAD],[R.HEADER,s.HEADER],[R.HGROUP,s.HGROUP],[R.HR,s.HR],[R.HTML,s.HTML],[R.I,s.I],[R.IMG,s.IMG],[R.IMAGE,s.IMAGE],[R.INPUT,s.INPUT],[R.IFRAME,s.IFRAME],[R.KEYGEN,s.KEYGEN],[R.LABEL,s.LABEL],[R.LI,s.L
vendor: 109,966 bytes, line 214
214I],[R.LINK,s.LINK],[R.LISTING,s.LISTING],[R.MAIN,s.MAIN],[R.MALIGNMARK,s.MALIGNMARK],[R.MARQUEE,s.MARQUEE],[R.MATH,s.MATH],[R.MENU,s.MENU],[R.META,s.META],[R.MGLYPH,s.MGLYPH],[R.MI,s.MI],[R.MO,s.MO],[R.MN,s.MN],[R.MS,s.MS],[R.MTEXT,s.MTEXT],[R.NAV,s.NAV],[R.NOBR,s.NOBR],[R.NOFRAMES,s.NOFRAMES],[R.NOEMBED,s.NOEMBED],[R.NOSCRIPT,s.NOSCRIPT],[R.OBJECT,s.OBJECT],[R.OL,s.OL],[R.OPTGROUP,s.OPTGROUP],[R.OPTION,s.OPTION],[R.P,s.P],[R.PARAM,s.PARAM],[R.PLAINTEXT,s.PLAINTEXT],[R.PRE,s.PRE],[R.RB,s.RB],[R.RP,s.RP],[R.RT,s.RT],[R.RTC,s.RTC],[R.RUBY,s.RUBY],[R.S,s.S],[R.SCRIPT,s.SCRIPT],[R.SEARCH,s.SEARCH],[R.SECTION,s.SECTION],[R.SELECT,s.SELECT],[R.SOURCE,s.SOURCE],[R.SMALL,s.SMALL],[R.SPAN,s.SPAN],[R.STRIKE,s.STRIKE],[R.STRONG,s.STRONG],[R.STYLE,s.STYLE],[R.SUB,s.SUB],[R.SUMMARY,s.SUMMARY],[R.SUP,s.SUP],[R.TABLE,s.TABLE],[R.TBODY,s.TBODY],[R.TEMPLATE,s.TEMPLATE],[R.TEXTAREA,s.TEXTAREA],[R.TFOOT,s.TFOOT],[R.TD,s.TD],[R.TH,s.TH],[R.THEAD,s.THEAD],[R.TITLE,s.TITLE],[R.TR,s.TR],[R.TRACK,s.TRACK],[R.TT,s.TT],[R.U,s.U],[R.UL,s.UL],[R.SVG,s.SVG],[R.VAR,s.VAR],[R.WBR,s.WBR],[R.XMP,s.XMP]]);function qs(e){var t;return(t=ub.get(e))!==null&&t!==void 0?t:s.UNKNOWN}const X=s,lb={[Q.HTML]:new Set([X.ADDRESS,X.APPLET,X.AREA,X.ARTICLE,X.ASIDE,X.BASE,X.BASEFONT,X.BGSOUND,X.BLOCKQUOTE,X.BODY,X.BR,X.BUTTON,X.CAPTION,X.CENTER,X.COL,X.COLGROUP,X.DD,X.DETAILS,X.DIR,X.DIV,X.DL,X.DT,X.EMBED,X.FIELDSET,X.FIGCAPTION,X.FIGURE,X.FOOTER,X.FORM,X.FRAME,X.FRAMESET,X.H1,X.H2,X.H3,X.H4,X.H5,X.H6,X.HEAD,X.HEADER,X.HGROUP,X.HR,X.HTML,X.IFRAME,X.IMG,X.INPUT,X.LI,X.LINK,X.LISTING,X.MAIN,X.MARQUEE,X.MENU,X.META,X.NAV,X.NOEMBED,X.NOFRAMES,X.NOSCRIPT,X.OBJECT,X.OL,X.P,X.PARAM,X.PLAINTEXT,X.PRE,X.SCRIPT,X.SECTION,X.SELECT,X.SOURCE,X.STYLE,X.SUMMARY,X.TABLE,X.TBODY,X.TD,X.TEMPLATE,X.TEXTAREA,X.TFOOT,X.TH,X.THEAD,X.TITLE,X.TR,X.TRACK,X.UL,X.WBR,X.XMP]),[Q.MATHML]:new Set([X.MI,X.MO,X.MN,X.MS,X.MTEXT,X.ANNOTATION_XML]),[Q.SVG]:new Set([X.TITLE,X.FOREIGN_OBJECT,X.DESC]),[Q.XLINK]:new Set,[Q.XML]:new Set,[Q.XMLNS]:new Set},uo=new Set([X.H1,X.H2,X.H3,X.H4,X.H5,X.H6]);R.STYLE,R.SCRIPT,R.XMP,R.IFRAME,R.NOEMBED,R.NOFRAMES,R.PLAINTEXT;var g;(function(e){e[e.DATA=0]="DATA",e[e.RCDATA=1]="RCDATA",e[e.RAWTEXT=2]="RAWTEXT",e[e.SCRIPT_DATA=3]="SCRIPT_DATA",e[e.PLAINTEXT=4]="PLAINTEXT",e[e.TAG_OPEN=5]="TAG_OPEN",e[e.END_TAG_OPEN=6]="END_TAG_OPEN",e[e.TAG_NAME=7]="TAG_NAME",e[e.RCDATA_LESS_THAN_SIGN=8]="RCDATA_LESS_THAN_SIGN",e[e.RCDATA_END_TAG_OPEN=9]="RCDATA_END_TAG_OPEN",e[e.RCDATA_END_TAG_NAME=10]="RCDATA_END_TAG_NAME",e[e.RAWTEXT_LESS_THAN_SIGN=11]="RAWTEXT_LESS_THAN_SIGN",e[e.RAWTEXT_END_TAG_OPEN=12]="RAWTEXT_END_TAG_OPEN",e[e.RAWTEXT_END_TAG_NAME=13]="RAWTEXT_END_TAG_NAME",e[e.SCRIPT_DATA_LESS_THAN_SIGN=14]="SCRIPT_DATA_LESS_THAN_SIGN",e[e.SCRIPT_DATA_END_TAG_OPEN=15]="SCRIPT_DATA_END_TAG_OPEN",e[e.SCRIPT_DATA_END_TAG_NAME=16]="SCRIPT_DATA_END_TAG_NAME",e[e.SCRIPT_DATA_ESCAPE_START=17]="SCRIPT_DATA_ESCAPE_START",e[e.SCRIPT_DATA_ESCAPE_START_DASH=18]="SCRIPT_DATA_ESCAPE_START_DASH",e[e.SCRIPT_DATA_ESCAPED=19]="SCRIPT_DATA_ESCAPED",e[e.SCRIPT_DATA_ESCAPED_DASH=20]="SCRIPT_DATA_ESCAPED_DASH",e[e.SCRIPT_DATA_ESCAPED_DASH_DASH=21]="SCRIPT_DATA_ESCAPED_DASH_DASH",e[e.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN=22]="SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN",e[e.SCRIPT_DATA_ESCAPED_END_TAG_OPEN=23]="SCRIPT_DATA_ESCAPED_END_TAG_OPEN",e[e.SCRIPT_DATA_ESCAPED_END_TAG_NAME=24]="SCRIPT_DATA_ESCAPED_END_TAG_NAME",e[e.SCRIPT_DATA_DOUBLE_ESCAPE_START=25]="SCRIPT_DATA_DOUBLE_ESCAPE_START",e[e.SCRIPT_DATA_DOUBLE_ESCAPED=26]="SCRIPT_DATA_DOUBLE_ESCAPED",e[e.SCRIPT_DATA_DOUBLE_ESCAPED_DASH=27]="SCRIPT_DATA_DOUBLE_ESCAPED_DASH",e[e.SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH=28]="SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH",e[e.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN=29]="SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN",e[e.SCRIPT_DATA_DOUBLE_ESCAPE_END=30]="SCRIPT_DATA_DOUBLE_ESCAPE_END",e[e.BEFORE_ATTRIBUTE_NAME=31]="BEFORE_ATTRIBUTE_NAME",e[e.ATTRIBUTE_NAME=32]="ATTRIBUTE_NAME",e[e.AFTER_ATTRIBUTE_NAME=33]="AFTER_ATTRIBUTE_NAME",e[e.BEFORE_ATTRIBUTE_VALUE=34]="BEFORE_ATTRIBUTE_VALUE",e[e.ATTRIBUTE_VALUE_DOUBLE_QUOTED=35]="ATTRIBUTE_VALUE_DOUBLE_QUOTED",e[e.ATTRIBUTE_VALUE_SINGLE_QUOTED=36]="ATTRIBUTE_VALUE_SINGLE_QUOTED",e[e.ATTRIBUTE_VALUE_UNQUOTED=37]="ATTRIBUTE_VALUE_UNQUOTED",e[e.AFTER_ATTRIBUTE_VALUE_QUOTED=38]="AFTER_ATTRIBUTE_VALUE_QUOTED",e[e.SELF_CLOSING_START_TAG=39]="SELF_CLOSING_START_TAG",e[e.BOGUS_COMMENT=40]="BOGUS_COMMENT",e[e.MARKUP_DECLARATION_OPEN=41]="MARKUP_DECLARATION_OPEN",e[e.COMMENT_START=42]="COMMENT_START",e[e.COMMENT_START_DASH=43]="COMMENT_START_DASH",e[e.COMMENT=44]="COMMENT",e[e.COMMENT_LESS_THAN_SIGN=45]="COMMENT_LESS_THAN_SIGN",e[e.COMMENT_LESS_THAN_SIGN_BANG=46]="COMMENT_LESS_THAN_SIGN_BANG",e[e.COMMENT_LESS_THAN_SIGN_BANG_DASH=47]="COMMENT_LESS_THAN_SIGN_BANG_DASH",e[e.COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH=48]="COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH",e[e.COMMENT_END_DASH=49]="COMMENT_END_DASH",e[e.COMMENT_END=50]="COMMENT_END",e[e.COMMENT_END_BANG=51]="COMMENT_END_BANG",e[e.DOCTYPE=52]="DOCTYPE",e[e.BEFORE_DOCTYPE_NAME=53]="BEFORE_DOCTYPE_NAME",e[e.DOCTYPE_NAME=54]="DOCTYPE_NAME",e[e.AFTER_DOCTYPE_NAME=55]="AFTER_DOCTYPE_NAME",e[e.AFTER_DOCTYPE_PUBLIC_KEYWORD=56]="AFTER_DOCTYPE_PUBLIC_KEYWORD",e[e.BEFORE_DOCTYPE_PUBLIC_IDENTIFIER=57]="BEFORE_DOCTYPE_PUBLIC_IDENTIFIER",e[e.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED=58]="DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED",e[e.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED=59]="DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED",e[e.AFTER_DOCTYPE_PUBLIC_IDENTIFIER=60]="AFTER_DOCTYPE_PUBLIC_IDENTIFIER",e[e.BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS=61]="BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS",e[e.AFTER_DOCTYPE_SYSTEM_KEYWORD=62]="AFTER_DOCTYPE_SYSTEM_KEYWORD",e[e.BEFORE_DOCTYPE_SYSTEM_IDENTIFIER=63]="BEFORE_DOCTYPE_SYSTEM_IDENTIFIER",e[e.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED=64]="DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED",e[e.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED=65]="DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED",e[e.AFTER_DOCTYPE_SYSTEM_IDENTIFIER=66]="AFTER_DOCTYPE_SYSTEM_IDENTIFIER",e[e.BOGUS_DOCTYPE=67]="BOGUS_DOCTYPE",e[e.CDATA_SECTION=68]="CDATA_SECTION",e[e.CDATA_SECTION_BRACKET=69]="CDATA_SECTION_BRACKET",e[e.CDATA_SECTION_END=70]="CDATA_SECTION_END",e[e.CHARACTER_REFERENCE=71]="CHARACTER_REFERENCE",e[e.AMBIGUOUS_AMPERSAND=72]="AMBIGUOUS_AMPERSAND"})(g||(g={}));const yt={DATA:g.DATA,RCDATA:g.RCDATA,RAWTEXT:g.RAWTEXT,SCRIPT_DATA:g.SCRIPT_DATA,PLAINTEXT:g.PLAINTEXT,CDATA_SECTION:g.CDATA_SECTION};function db(e){return e>=h.DIGIT_0&&e<=h.DIGIT_9}function ln(e){return e>=h.LATIN_CAPITAL_A&&e<=h.LATIN_CAPITAL_Z}function fb(e){return e>=h.LATIN_SMALL_A&&e<=h.LATIN_SMALL_Z}function Rr(e){return fb(e)||ln(e)}function Ju(e){return Rr(e)||db(e)}function ps(e){return e+32}function Nd(e){return e===h.SPACE||e===h.LINE_FEED||e===h.TABULATION||e===h.FORM_FEED}function Zu(e){return Nd(e)||e===h.SOLIDUS||e===h.GREATER_THAN_SIGN}function mb(e){return e===h.NULL?L.nullCharacterReference:e>1114111?L.characterReferenceOutsideUnicodeRange:_d(e)?L.surrogateCharacterReference:wd(e)?L.noncharacterCharacterReference:Cd(e)||e===h.CARRIAGE_RETURN?L.controlCharacterReference:null}class hb{constructor(t,r){this.options=t,this.handler=r,this.paused=!1,this.inLoop=!1,this.inForeignNode=!1,this.lastStartTagName="",this.active=!1,this.state=g.DATA,this.returnState=g.DATA,this.entityStartPos=0,this.consumedAfterSnapshot=-1,this.currentCharacterToken=null,this.currentToken=null,this.currentAttr={name:"",value:""},this.preprocessor=new ZE(r),this.currentLocation=this.getCurrentLocation(-1),this.entityDecoder=new ob(eb,(a,n)=>{this.preprocessor.pos=this.entityStartPos+n-1,this._flushCodePointConsumedAsCharacterReference(a)},r.onParseError?{missingSemicolonAfterCharacterReference:()=>{this._err(L.missingSemicolonAfterCharacterReference,1)},absenceOfDigitsInNumericCharacterReference:a=>{this._err(L.absenceOfDigitsInNumericCharacterReference,this.entityStartPos-this.preprocessor.pos+a)},validateNumericCharacterReference:a=>{const n=mb(a);n&&this._err(n,1)}}:void 0)}_err(t,r=0){var a,n;(n=(a=this.handler).onParseError)===null||n===void 0||n.call(a,this.preprocessor.getError(t,r))}getCurrentLocation(t){return this.options.sourceCodeLocationInfo?{startLine:this.preprocessor.line,startCol:this.preprocessor.col-t,startOffset:this.preprocessor.offset-t,endLine:-1,endCol:-1,endOffset:-1}:null}_runParsingLoop(){if(!this.inLoop){for(this.inLoop=!0;this.active&&!this.paused;){this.consumedAfterSnapshot=0;const t=this._consume();this._ensureHibernation()||this._callState(t)}this.inLoop=!1}}pause(){this.paused=!0}resume(t){if(!this.paused)throw new Error("Parser was already resumed");this.paused=!1,!this.inLoop&&(this._runParsingLoop(),this.paused||t==null||t())}write(t,r,a){this.active=!0,this.preprocessor.write(t,r),this._runParsingLoop(),this.paused||a==null||a()}insertHtmlAtCurrentPos(t){this.active=!0,this.preprocessor.insertHtmlAtCurrentPos(t),this._runParsingLoop()}_ensureHibernation(){return this.preprocessor.endOfChunkHit?(this.preprocessor.retreat(this.consumedAfterSnapshot),this.consumedAfterSnapshot=0,this.active=!1,!0):!1}_consume(){return this.consumedAfterSnapshot++,this.preprocessor.advance()}_advanceBy(t){this.consumedAfterSnapshot+=t;for(let r=0;r<t;r++)this.preprocessor.advance()}_consumeSequenceIfMatch(t,r){return this.preprocessor.startsWith(t,r)?(this._advanceBy(t.length-1),!0):!1}_createStartTagToken(){this.currentToken={type:De.START_TAG,tagName:"",tagID:s.UNKNOWN,selfClosing:!1,ackSelfClosing:!1,attrs:[],location:this.getCurrentLocation(1)}}_createEndTagToken(){this.currentToken={type:De.END_TAG,tagName:"",tagID:s.UNKNOWN,selfClosing:!1,ackSelfClosing:!1,attrs:[],location:this.getCurrentLocation(2)}}_createCommentToken(t){this.currentToken={type:De.COMMENT,data:"",location:this.getCurrentLocation(t)}}_createDoctypeToken(t){this.currentToken={type:De.DOCTYPE,name:t,forceQuirks:!1,publicId:null,systemId:null,location:this.currentLocation}}_createCharacterToken(t,r){this.currentCharacterToken={type:t,chars:r,location:this.currentLocation}}_createAttr(t){this.currentAttr={name:t,value:""},this.currentLocation=this.getCurrentLocation(0)}_leaveAttrName(){var t,r;const a=this.currentToken;if(Rd(a,this.currentAttr.name)===null){if(a.attrs.push(this.currentAttr),a.location&&this.currentLocation){const n=(t=(r=a.location).attrs)!==null&&t!==void 0?t:r.attrs=Object.create(null);n[this.currentAttr.name]=this.currentLocation,this._leaveAttrValue()}}else this._err(L.duplicateAttribute)}_leaveAttrValue(){this.currentLocation&&(this.currentLocation.endLine=this.preprocessor.line,this.currentLocation.endCol=this.preprocessor.col,this.currentLocation.endOffset=this.preprocessor.offset)}prepareToken(t){this._emitCurrentCharacterToken(t.location),this.currentToken=null,t.location&&(t.location.endLine=this.preprocessor.line,t.location.endCol=this.preprocessor.col+1,t.location.endOffset=this.preprocessor.offset+1),this.currentLocation=this.getCurrentLocation(-1)}emitCurrentTagToken(){const t=this.currentToken;this.prepareToken(t),t.tagID=qs(t.tagName),t.type===De.START_TAG?(this.lastStartTagName=t.tagName,this.handler.onStartTag(t)):(t.attrs.length>0&&this._err(L.endTagWithAttributes),t.selfClosing&&this._err(L.endTagWithTrailingSolidus),this.handler.onEndTag(t)),this.preprocessor.dropParsedChunk()}emitCurrentComment(t){this.prepareToken(t),this.handler.onComment(t),this.preprocessor.dropParsedChunk()}emitCurrentDoctype(t){this.prepareToken(t),this.handler.onDoctype(t),this.preprocessor.dropParsedChunk()}_emitCurrentCharacterToken(t){if(this.currentCharacterToken){switch(t&&this.currentCharacterToken.location&&(this.currentCharacterToken.location.endLine=t.startLine,this.currentCharacterToken.location.endCol=t.startCol,this.currentCharacterToken.location.endOffset=t.startOffset),this.currentCharacterToken.type){case De.CHARACTER:{this.handler.onCharacter(this.currentCharacterToken);break}case De.NULL_CHARACTER:{this.handler.onNullCharacter(this.currentCharacterToken);break}case De.WHITESPACE_CHARACTER:{this.handler.onWhitespaceCharacter(this.currentCharacterToken);break}}this.currentCharacterToken=null}}_emitEOFToken(){const t=this.getCurrentLocation(0);t&&(t.endLine=t.startLine,t.endCol=t.startCol,t.endOffset=t.startOffset),this._emitCurrentCharacterToken(t),this.handler.onEof({type:De.EOF,location:t}),this.active=!1}_appendCharToCurrentCharacterToken(t,r){if(this.currentCharacterToken)if(this.currentCharacterToken.type===t){this.currentCharacterToken.chars+=r;return}else this.currentLocation=this.getCurrentLocation(0),this._emitCurrentCharacterToken(this.currentLocation),this.preprocessor.dropParsedChunk();this._createCharacterToken(t,r)}_emitCodePoint(t){const r=Nd(t)?De.WHITESPACE_CHARACTER:t===h.NULL?De.NULL_CHARACTER:De.CHARACTER;this._appendCharToCurrentCharacterToken(r,String.fromCodePoint(t))}_emitChars(t){this._appendCharToCurrentCharacterToken(De.CHARACTER,t)}_startCharacterReference(){this.returnState=this.state,this.state=g.CHARACTER_REFERENCE,this.entityStartPos=this.preprocessor.pos,this.entityDecoder.startEntity(this._isCharacterReferenceInAttribute()?hr.Attribute:hr.Legacy)}_isCharacterReferenceInAttribute(){return this.returnState===g.ATTRIBUTE_VALUE_DOUBLE_QUOTED||this.returnState===g.ATTRIBUTE_VALUE_SINGLE_QUOTED||this.returnState===g.ATTRIBUTE_VALUE_UNQUOTED}_flushCodePointConsumedAsCharacterReference(t){this._isCharacterReferenceInAttribute()?this.currentAttr.value+=String.fromCodePoint(t):this._emitCodePoint(t)}_callState(t){switch(this.state){case g.DATA:{this._stateData(t);break}case g.RCDATA:{this._stateRcdata(t);break}case g.RAWTEXT:{this._stateRawtext(t);break}case g.SCRIPT_DATA:{this._stateScriptData(t);break}case g.PLAINTEXT:{this._statePlaintext(t);break}case g.TAG_OPEN:{this._stateTagOpen(t);break}case g.END_TAG_OPEN:{this._stateEndTagOpen(t);break}case g.TAG_NAME:{this._stateTagName(t);break}case g.RCDATA_LESS_THAN_SIGN:{this._stateRcdataLessThanSign(t);break}case g.RCDATA_END_TAG_OPEN:{this._stateRcdataEndTagOpen(t);break}case g.RCDATA_END_TAG_NAME:{this._stateRcdataEndTagName(t);break}case g.RAWTEXT_LESS_THAN_SIGN:{this._stateRawtextLessThanSign(t);break}case g.RAWTEXT_END_TAG_OPEN:{this._stateRawtextEndTagOpen(t);break}case g.RAWTEXT_END_TAG_NAME:{this._stateRawtextEndTagName(t);break}case g.SCRIPT_DATA_LESS_THAN_SIGN:{this._stateScriptDataLessThanSign(t);break}case g.SCRIPT_DATA_END_TAG_OPEN:{this._stateScriptDataEndTagOpen(t);break}case g.SCRIPT_DATA_END_TAG_NAME:{this._stateScriptDataEndTagName(t);break}case g.SCRIPT_DATA_ESCAPE_START:{this._stateScriptDataEscapeStart(t);break}case g.SCRIPT_DATA_ESCAPE_START_DASH:{this._stateScriptDataEscapeStartDash(t);break}case g.SCRIPT_DATA_ESCAPED:{this._stateScriptDataEscaped(t);break}case g.SCRIPT_DATA_ESCAPED_DASH:{this._stateScriptDataEscapedDash(t);break}case g.SCRIPT_DATA_ESCAPED_DASH_DASH:{this._stateScriptDataEscapedDashDash(t);break}case g.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN:{this._stateScriptDataEscapedLessThanSign(t);break}case g.SCRIPT_DATA_ESCAPED_END_TAG_OPEN:{this._stateScriptDataEscapedEndTagOpen(t);break}case g.SCRIPT_DATA_ESCAPED_END_TAG_NAME:{this._stateScriptDataEscapedEndTagName(t);break}case g.SCRIPT_DATA_DOUBLE_ESCAPE_START:{this._stateScriptDataDoubleEscapeStart(t);break}case g.SCRIPT_DATA_DOUBLE_ESCAPED:{this._stateScriptDataDoubleEscaped(t);break}case g.SCRIPT_DATA_DOUBLE_ESCAPED_DASH:{this._stateScriptDataDoubleEscapedDash(t);break}case g.SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH:{this._stateScriptDataDoubleEscapedDashDash(t);break}case g.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN:{this._stateScriptDataDoubleEscapedLessThanSign(t);break}case g.SCRIPT_DATA_DOUBLE_ESCAPE_END:{this._stateScriptDataDoubleEscapeEnd(t);break}case g.BEFORE_ATTRIBUTE_NAME:{this._stateBeforeAttributeName(t);break}case g.ATTRIBUTE_NAME:{this._stateAttributeName(t);break}case g.AFTER_ATTRIBUTE_NAME:{this._stateAfterAttributeName(t);break}case g.BEFORE_ATTRIBUTE_VALUE:{this._stateBeforeAttributeValue(t);break}case g.ATTRIBUTE_VALUE_DOUBLE_QUOTED:{this._stateAttributeValueDoubleQuoted(t);break}case g.ATTRIBUTE_VALUE_SINGLE_QUOTED:{this._stateAttributeValueSingleQuoted(t);break}case g.ATTRIBUTE_VALUE_UNQUOTED:{this._stateAttributeValueUnquoted(t);break}case g.AFTER_ATTRIBUTE_VALUE_QUOTED:{this._stateAfterAttributeValueQuoted(t);break}case g.SELF_CLOSING_START_TAG:{this._stateSelfClosingStartTag(t);break}case g.BOGUS_COMMENT:{this._stateBogusComment(t);break}case g.MARKUP_DECLARATION_OPEN:{this._stateMarkupDeclarationOpen(t);break}case g.COMMENT_START:{this._stateCommentStart(t);break}case g.COMMENT_START_DASH:{this._stateCommentStartDash(t);break}case g.COMMENT:{this._stateComment(t);break}case g.COMMENT_LESS_THAN_SIGN:{this._stateCommentLessThanSign(t);break}case g.COMMENT_LESS_THAN_SIGN_BANG:{this._stateCommentLessThanSignBang(t);break}case g.COMMENT_LESS_THAN_SIGN_BANG_DASH:{this._stateCommentLessThanSignBangDash(t);break}case g.COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH:{this._stateCommentLessThanSignBangDashDash(t);break}case g.COMMENT_END_DASH:{this._stateCommentEndDash(t);break}case g.COMMENT_END:{this._stateCommentEnd(t);break}case g.COMMENT_END_BANG:{this._stateCommentEndBang(t);break}case g.DOCTYPE:{this._stateDoctype(t);break}case g.BEFORE_DOCTYPE_NAME:{this._stateBeforeDoctypeName(t);break}case g.DOCTYPE_NAME:{this._stateDoctypeName(t);break}case g.AFTER_DOCTYPE_NAME:{this._stateAfterDoctypeName(t);break}case g.AFTER_DOCTYPE_PUBLIC_KEYWORD:{this._stateAfterDoctypePublicKeyword(t);break}case g.BEFORE_DOCTYPE_PUBLIC_IDENTIFIER:{this._stateBeforeDoctypePublicIdentifier(t);break}case g.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED:{this._stateDoctypePublicIdentifierDoubleQuoted(t);break}case g.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED:{this._stateDoctypePublicIdentifierSingleQuoted(t);break}case g.AFTER_DOCTYPE_PUBLIC_IDENTIFIER:{this._stateAfterDoctypePublicIdentifier(t);break}case g.BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS:{this._stateBetweenDoctypePublicAndSystemIdentifiers(t);break}case g.AFTER_DOCTYPE_SYSTEM_KEYWORD:{this._stateAfterDoctypeSystemKeyword(t);break}case g.BEFORE_DOCTYPE_SYSTEM_IDENTIFIER:{this._stateBeforeDoctypeSystemIdentifier(t);break}case g.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED:{this._stateDoctypeSystemIdentifierDoubleQuoted(t);break}case g.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED:{this._stateDoctypeSystemIdentifierSingleQuoted(t);break}case g.AFTER_DOCTYPE_SYSTEM_IDENTIFIER:{this._stateAfterDoctypeSystemIdentifier(t);break}case g.BOGUS_DOCTYPE:{this._stateBogusDoctype(t);break}case g.CDATA_SECTION:{this._stateCdataSection(t);break}case g.CDATA_SECTION_BRACKET:{this._stateCdataSectionBracket(t);break}case g.CDATA_SECTION_END:{this._stateCdataSectionEnd(t);break}case g.CHARACTER_REFERENCE:{this._stateCharacterReference();break}case g.AMBIGUOUS_AMPERSAND:{this._stateAmbiguousAmpersand(t);break}default:throw new Error("Unknown state")}}_stateData(t){switch(t){case h.LESS_THAN_SIGN:{this.state=g.TAG_OPEN;break}case h.AMPERSAND:{this._startCharacterReference();break}case h.NULL:{this._err(L.unexpectedNullCharacter),this._emitCodePoint(t);break}case h.EOF:{this._emitEOFToken();break}default:this._emitCodePoint(t)}}_stateRcdata(t){switch(t){case h.AMPERSAND:{this._startCharacterReference();break}case h.LESS_THAN_SIGN:{this.state=g.RCDATA_LESS_THAN_SIGN;break}case h.NULL:{this._err(L.unexpectedNullCharacter),this._emitChars(Qe);break}case h.EOF:{this._emitEOFToken();break}default:this._emitCodePoint(t)}}_stateRawtext(t){switch(t){case h.LESS_THAN_SIGN:{this.state=g.RAWTEXT_LESS_THAN_SIGN;break}case h.NULL:{this._err(L.unexpectedNullCharacter),this._emitChars(Qe);break}case h.EOF:{this._emitEOFToken();break}default:this._emitCodePoint(t)}}_stateScriptData(t){switch(t){case h.LESS_THAN_SIGN:{this.state=g.SCRIPT_DATA_LESS_THAN_SIGN;break}case h.NULL:{this._err(L.unexpectedNullCharacter),this._emitChars(Qe);break}case h.EOF:{this._emitEOFToken();break}default:this._emitCodePoint(t)}}_statePlaintext(t){switch(t){case h.NULL:{this._err(L.unexpectedNullCharacter),this._emitChars(Qe);break}case h.EOF:{this._emitEOFToken();break}default:this._emitCodePoint(t)}}_stateTagOpen(t){if(Rr(t))this._createStartTagToken(),this.state=g.TAG_NAME,this._stateTagName(t);else switch(t){case h.EXCLAMATION_MARK:{this.state=g.MARKUP_DECLARATION_OPEN;break}case h.SOLIDUS:{this.state=g.END_TAG_OPEN;break}case h.QUESTION_MARK:{this._err(L.unexpectedQuestionMarkInsteadOfTagName),this._createCommentToken(1),this.state=g.BOGUS_COMMENT,this._stateBogusComment(t);break}case h.EOF:{this._err(L.eofBeforeTagName),this._emitChars("<"),this._emitEOFToken();break}default:this._err(L.invalidFirstCharacterOfTagName),this._emitChars("<"),this.state=g.DATA,this._stateData(t)}}_stateEndTagOpen(t){if(Rr(t))this._createEndTagToken(),this.state=g.TAG_NAME,this._stateTagName(t);else switch(t){case h.GREATER_THAN_SIGN:{this._err(L.missingEndTagName),this.state=g.DATA;break}case h.EOF:{this._err(L.eofBeforeTagName),this._emitChars("</"),this._emitEOFToken();break}default:this._err(L.invalidFirstCharacterOfTagName),this._createCommentToken(2),this.state=g.BOGUS_COMMENT,this._stateBogusComment(t)}}_stateTagName(t){const r=this.currentToken;switch(t){case h.SPACE:case h.LINE_FEED:case h.TABULATION:case h.FORM_FEED:{this.state=g.BEFORE_ATTRIBUTE_NAME;break}case h.SOLIDUS:{this.state=g.SELF_CLOSING_START_TAG;break}case h.GREATER_THAN_SIGN:{this.state=g.DATA,this.emitCurrentTagToken();break}case h.NULL:{this._err(L.unexpectedNullCharacter),r.tagName+=Qe;break}case h.EOF:{this._err(L.eofInTag),this._emitEOFToken();break}default:r.tagName+=String.fromCodePoint(ln(t)?ps(t):t)}}_stateRcdataLessThanSign(t){t===h.SOLIDUS?this.state=g.RCDATA_END_TAG_OPEN:(this._emitChars("<"),this.state=g.RCDATA,this._stateRcdata(t))}_stateRcdataEndTagOpen(t){Rr(t)?(this.state=g.RCDATA_END_TAG_NAME,this._stateRcdataEndTagName(t)):(this._emitChars("</"),this.state=g.RCDATA,this._stateRcdata(t))}handleSpecialEndTag(t){if(!this.preprocessor.startsWith(this.lastStartTagName,!1))return!this._ensureHibernation();this._createEndTagToken();const r=this.currentToken;switch(r.tagName=this.lastStartTagName,this.preprocessor.peek(this.lastStartTagName.length)){case h.SPACE:case h.LINE_FEED:case h.TABULATION:case h.FORM_FEED:return this._advanceBy(this.lastStartTagName.length),this.state=g.BEFORE_ATTRIBUTE_NAME,!1;case h.SOLIDUS:return this._advanceBy(this.lastStartTagName.length),this.state=g.SELF_CLOSING_START_TAG,!1;case h.GREATER_THAN_SIGN:return this._advanceBy(this.lastStartTagName.length),this.emitCurrentTagToken(),this.state=g.DATA,!1;default:return!this._ensureHibernation()}}_stateRcdataEndTagName(t){this.handleSpecialEndTag(t)&&(this._emitChars("</"),this.state=g.RCDATA,this._stateRcdata(t))}_stateRawtextLessThanSign(t){t===h.SOLIDUS?this.state=g.RAWTEXT_END_TAG_OPEN:(this._emitChars("<"),this.state=g.RAWTEXT,this._stateRawtext(t))}_stateRawtextEndTagOpen(t){Rr(t)?(this.state=g.RAWTEXT_END_TAG_NAME,this._stateRawtextEndTagName(t)):(this._emitChars("</"),this.state=g.RAWTEXT,this._stateRawtext(t))}_stateRawtextEndTagName(t){this.handleSpecialEndTag(t)&&(this._emitChars("</"),this.state=g.RAWTEXT,this._stateRawtext(t))}_stateScriptDataLessThanSign(t){switch(t){case h.SOLIDUS:{this.state=g.SCRIPT_DATA_END_TAG_OPEN;break}case h.EXCLAMATION_MARK:{this.state=g.SCRIPT_DATA_ESCAPE_START,this._emitChars("<!");break}default:this._emitChars("<"),this.state=g.SCRIPT_DATA,this._stateScriptData(t)}}_stateScriptDataEndTagOpen(t){Rr(t)?(this.state=g.SCRIPT_DATA_END_TAG_NAME,this._stateScriptDataEndTagName(t)):(this._emitChars("</"),this.state=g.SCRIPT_DATA,this._stateScriptData(t))}_stateScriptDataEndTagName(t){this.handleSpecialEndTag(t)&&(this._emitChars("</"),this.state=g.SCRIPT_DATA,this._stateScriptData(t))}_stateScriptDataEscapeStart(t){t===h.HYPHEN_MINUS?(this.state=g.SCRIPT_DATA_ESCAPE_START_DASH,this._emitChars("-")):(this.state=g.SCRIPT_DATA,this._stateScriptData(t))}_stateScriptDataEscapeStartDash(t){t===h.HYPHEN_MINUS?(this.state=g.SCRIPT_DATA_ESCAPED_DASH_DASH,this._emitChars("-")):(this.state=g.SCRIPT_DATA,this._stateScriptData(t))}_stateScriptDataEscaped(t){switch(t){case h.HYPHEN_MINUS:{this.state=g.SCRIPT_DATA_ESCAPED_DASH,this._emitChars("-");break}case h.LESS_THAN_SIGN:{this.state=g.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN;break}case h.NULL:{this._err(L.unexpectedNullCharacter),this._emitChars(Qe);break}case h.EOF:{this._err(L.eofInScriptHtmlCommentLikeText),this._emitEOFToken();break}default:this._emitCodePoint(t)}}_stateScriptDataEscapedDash(t){switch(t){case h.HYPHEN_MINUS:{this.state=g.SCRIPT_DATA_ESCAPED_DASH_DASH,this._emitChars("-");break}case h.LESS_THAN_SIGN:{this.state=g.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN;break}case h.NULL:{this._err(L.unexpectedNullCharacter),this.state=g.SCRIPT_DATA_ESCAPED,this._emitChars(Qe);break}case h.EOF:{this._err(L.eofInScriptHtmlCommentLikeText),this._emitEOFToken();break}default:this.state=g.SCRIPT_DATA_ESCAPED,this._emitCodePoint(t)}}_stateScriptDataEscapedDashDash(t){switch(t){case h.HYPHEN_MINUS:{this._emitChars("-");break}case h.LESS_THAN_SIGN:{this.state=g.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN;break}case h.GREATER_THAN_SIGN:{this.state=g.SCRIPT_DATA,this._emitChars(">");break}case h.NULL:{this._err(L.unexpectedNullCharacter),this.state=g.SCRIPT_DATA_ESCAPED,this._emitChars(Qe);break}case h.EOF:{this._err(L.eofInScriptHtmlCommentLikeText),this._emitEOFToken();break}default:this.state=g.SCRIPT_DATA_ESCAPED,this._emitCodePoint(t)}}_stateScriptDataEscapedLessThanSign(t){t===h.SOLIDUS?this.state=g.SCRIPT_DATA_ESCAPED_END_TAG_OPEN:Rr(t)?(this._emitChars("<"),this.state=g.SCRIPT_DATA_DOUBLE_ESCAPE_START,this._stateScriptDataDoubleEscapeStart(t)):(this._emitChars("<"),this.state=g.SCRIPT_DATA_ESCAPED,this._stateScriptDataEscaped(t))}_stateScriptDataEscapedEndTagOpen(t){Rr(t)?(this.state=g.SCRIPT_DATA_ESCAPED_END_TAG_NAME,this._stateScriptDataEscapedEndTagName(t)):(this._emitChars("</"),this.state=g.SCRIPT_DATA_ESCAPED,this._stateScriptDataEscaped(t))}_stateScriptDataEscapedEndTagName(t){this.handleSpecialEndTag(t)&&(this._emitChars("</"),this.state=g.SCRIPT_DATA_ESCAPED,this._stateScriptDataEscaped(t))}_stateScriptDataDoubleEscapeStart(t){if(this.preprocessor.startsWith(It.SCRIPT,!1)&&Zu(this.preprocessor.peek(It.SCRIPT.length))){this._emitCodePoint(t);for(let r=0;r<It.SCRIPT.length;r++)this._emitCodePoint(this._consume());this.state=g.SCRIPT_DATA_DOUBLE_ESCAPED}else this._ensureHibernation()||(this.state=g.SCRIPT_DATA_ESCAPED,this._stateScriptDataEscaped(t))}_stateScriptDataDoubleEscaped(t){switch(t){case h.HYPHEN_MINUS:{this.state=g.SCRIPT_DATA_DOUBLE_ESCAPED_DASH,this._emitChars("-");break}case h.LESS_THAN_SIGN:{this.state=g.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN,this._emitChars("<");break}case h.NULL:{this._err(L.unexpectedNullCharacter),this._emitChars(Qe);break}case h.EOF:{this._err(L.eofInScriptHtmlCommentLikeText),this._emitEOFToken();break}default:this._emitCodePoint(t)}}_stateScriptDataDoubleEscapedDash(t){switch(t){case h.HYPHEN_MINUS:{this.state=g.SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH,this._emitChars("-");break}case h.LESS_THAN_SIGN:{this.state=g.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN,this._emitChars("<");break}case h.NULL:{this._err(L.unexpectedNullCharacter),this.state=g.SCRIPT_DATA_DOUBLE_ESCAPED,this._emitChars(Qe);break}case h.EOF:{this._err(L.eofInScriptHtmlCommentLikeText),this._emitEOFToken();break}default:this.state=g.SCRIPT_DATA_DOUBLE_ESCAPED,this._emitCodePoint(t)}}_stateScriptDataDoubleEscapedDashDash(t){switch(t){case h.HYPHEN_MINUS:{this._emitChars("-");break}case h.LESS_THAN_SIGN:{this.state=g.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN,this._emitChars("<");break}case h.GREATER_THAN_SIGN:{this.state=g.SCRIPT_DATA,this._emitChars(">");break}case h.NULL:{this._err(L.unexpectedNullCharacter),this.state=g.SCRIPT_DATA_DOUBLE_ESCAPED,this._emitChars(Qe);break}case h.EOF:{this._err(L.eofInScriptHtmlCommentLikeText),this._emitEOFToken();break}default:this.state=g.SCRIPT_DATA_DOUBLE_ESCAPED,this._emitCodePoint(t)}}_stateScriptDataDoubleEscapedLessThanSign(t){t===h.SOLIDUS?(this.state=g.SCRIPT_DATA_DOUBLE_ESCAPE_END,this._emitChars("/")):(this.state=g.SCRIPT_DATA_DOUBLE_ESCAPED,this._stateScriptDataDoubleEscaped(t))}_stateScriptDataDoubleEscapeEnd(t){if(this.preprocessor.startsWith(It.SCRIPT,!1)&&Zu(this.preprocessor.peek(It.SCRIPT.length))){this._emitCodePoint(t);for(let r=0;r<It.SCRIPT.length;r++)this._emitCodePoint(this._consume());this.state=g.SCRIPT_DATA_ESCAPED}else this._ensureHibernation()||(this.state=g.SCRIPT_DATA_DOUBLE_ESCAPED,this._stateScriptDataDoubleEscaped(t))}_stateBeforeAttributeName(t){switch(t){case h.SPACE:case h.LINE_FEED:case h.TABULATION:case h.FORM_FEED:break;case h.SOLIDUS:case h.GREATER_THAN_SIGN:case h.EOF:{this.state=g.AFTER_ATTRIBUTE_NAME,this._stateAfterAttributeName(t);break}case h.EQUALS_SIGN:{this._err(L.unexpectedEqualsSignBeforeAttributeName),this._createAttr("="),this.state=g.ATTRIBUTE_NAME;break}default:this._createAttr(""),this.state=g.ATTRIBUTE_NAME,this._stateAttributeName(t)}}_stateAttributeName(t){switch(t){case h.SPACE:case h.LINE_FEED:case h.TABULATION:case h.FORM_FEED:case h.SOLIDUS:case h.GREATER_THAN_SIGN:case h.EOF:{this._leaveAttrName(),this.state=g.AFTER_ATTRIBUTE_NAME,this._stateAfterAttributeName(t);break}case h.EQUALS_SIGN:{this._leaveAttrName(),this.state=g.BEFORE_ATTRIBUTE_VALUE;break}case h.QUOTATION_MARK:case h.APOSTROPHE:case h.LESS_THAN_SIGN:{this._err(L.unexpectedCharacterInAttributeName),this.currentAttr.name+=String.fromCodePoint(t);break}case h.NULL:{this._err(L.unexpectedNullCharacter),this.currentAttr.name+=Qe;break}default:this.currentAttr.name+=String.fromCodePoint(ln(t)?ps(t):t)}}_stateAfterAttributeName(t){switch(t){case h.SPACE:case h.LINE_FEED:case h.TABULATION:case h.FORM_FEED:break;case h.SOLIDUS:{this.state=g.SELF_CLOSING_START_TAG;break}case h.EQUALS_SIGN:{this.state=g.BEFORE_ATTRIBUTE_VALUE;break}case h.GREATER_THAN_SIGN:{this.state=g.DATA,this.emitCurrentTagToken();break}case h.EOF:{this._err(L.eofInTag),this._emitEOFToken();break}default:this._createAttr(""),this.state=g.ATTRIBUTE_NAME,this._stateAttributeName(t)}}_stateBeforeAttributeValue(t){switch(t){case h.SPACE:case h.LINE_FEED:case h.TABULATION:case h.FORM_FEED:break;case h.QUOTATION_MARK:{this.state=g.ATTRIBUTE_VALUE_DOUBLE_QUOTED;break}case h.APOSTROPHE:{this.state=g.ATTRIBUTE_VALUE_SINGLE_QUOTED;break}case h.GREATER_THAN_SIGN:{this._err(L.missingAttributeValue),this.state=g.DATA,this.emitCurrentTagToken();break}default:this.state=g.ATTRIBUTE_VALUE_UNQUOTED,this._stateAttributeValueUnquoted(t)}}_stateAttributeValueDoubleQuoted(t){switch(t){case h.QUOTATION_MARK:{this.state=g.AFTER_ATTRIBUTE_VALUE_QUOTED;break}case h.AMPERSAND:{this._startCharacterReference();break}case h.NULL:{this._err(L.unexpectedNullCharacter),this.currentAttr.value+=Qe;break}case h.EOF:{this._err(L.eofInTag),this._emitEOFToken();break}default:this.currentAttr.value+=String.fromCodePoint(t)}}_stateAttributeValueSingleQuoted(t){switch(t){case h.APOSTROPHE:{this.state=g.AFTER_ATTRIBUTE_VALUE_QUOTED;break}case h.AMPERSAND:{this._startCharacterReference();break}case h.NULL:{this._err(L.unexpectedNullCharacter),this.currentAttr.value+=Qe;break}case h.EOF:{this._err(L.eofInTag),this._emitEOFToken();break}default:this.currentAttr.value+=String.fromCodePoint(t)}}_stateAttributeValueUnquoted(t){switch(t){case h.SPACE:case h.LINE_FEED:case h.TABULATION:case h.FORM_FEED:{this._leaveAttrValue(),this.state=g.BEFORE_ATTRIBUTE_NAME;break}case h.AMPERSAND:{this._startCharacterReference();break}case h.GREATER_THAN_SIGN:{this._leaveAttrValue(),this.state=g.DATA,this.emitCurrentTagToken();break}case h.NULL:{this._err(L.unexpectedNullCharacter),this.currentAttr.value+=Qe;break}case h.QUOTATION_MARK:case h.APOSTROPHE:case h.LESS_THAN_SIGN:case h.EQUALS_SIGN:case h.GRAVE_ACCENT:{this._err(L.unexpectedCharacterInUnquotedAttributeValue),this.currentAttr.value+=String.fromCodePoint(t);break}case h.EOF:{this._err(L.eofInTag),this._emitEOFToken();break}default:this.currentAttr.value+=String.fromCodePoint(t)}}_stateAfterAttributeValueQuoted(t){switch(t){case h.SPACE:case h.LINE_FEED:case h.TABULATION:case h.FORM_FEED:{this._leaveAttrValue(),this.state=g.BEFORE_ATTRIBUTE_NAME;break}case h.SOLIDUS:{this._leaveAttrValue(),this.state=g.SELF_CLOSING_START_TAG;break}case h.GREATER_THAN_SIGN:{this._leaveAttrValue(),this.state=g.DATA,this.emitCurrentTagToken();break}case h.EOF:{this._err(L.eofInTag),this._emitEOFToken();break}default:this._err(L.missingWhitespaceBetweenAttributes),this.state=g.BEFORE_ATTRIBUTE_NAME,this._stateBeforeAttributeName(t)}}_stateSelfClosingStartTag(t){switch(t){case h.GREATER_THAN_SIGN:{const r=this.currentToken;r.selfClosing=!0,this.state=g.DATA,this.emitCurrentTagToken();break}case h.EOF:{this._err(L.eofInTag),this._emitEOFToken();break}default:this._err(L.unexpectedSolidusInTag),this.state=g.BEFORE_ATTRIBUTE_NAME,this._stateBeforeAttributeName(t)}}_stateBogusComment(t){const r=this.currentToken;switch(t){case h.GREATER_THAN_SIGN:{this.state=g.DATA,this.emitCurrentComment(r);break}case h.EOF:{this.emitCurrentComment(r),this._emitEOFToken();break}case h.NULL:{this._err(L.unexpectedNullCharacter),r.data+=Qe;break}default:r.data+=String.fromCodePoint(t)}}_stateMarkupDeclarationOpen(t){this._consumeSequenceIfMatch(It.DASH_DASH,!0)?(this._createCommentToken(It.DASH_DASH.length+1),this.state=g.COMMENT_START):this._consumeSequenceIfMatch(It.DOCTYPE,!1)?(this.currentLocation=this.getCurrentLocation(It.DOCTYPE.length+1),this.state=g.DOCTYPE):this._consumeSequenceIfMatch(It.CDATA_START,!0)?this.inForeignNode?this.state=g.CDATA_SECTION:(this._err(L.cdataInHtmlContent),this._createCommentToken(It.CDATA_START.length+1),this.currentToken.data="[CDATA[",this.state=g.BOGUS_COMMENT):this._ensureHibernation()||(this._err(L.incorrectlyOpenedComment),this._createCommentToken(2),this.state=g.BOGUS_COMMENT,this._stateBogusComment(t))}_stateCommentStart(t){switch(t){case h.HYPHEN_MINUS:{this.state=g.COMMENT_START_DASH;break}case h.GREATER_THAN_SIGN:{this._err(L.abruptClosingOfEmptyComment),this.state=g.DATA;const r=this.currentToken;this.emitCurrentComment(r);break}default:this.state=g.COMMENT,this._stateComment(t)}}_stateCommentStartDash(t){const r=this.currentToken;switch(t){case h.HYPHEN_MINUS:{this.state=g.COMMENT_END;break}case h.GREATER_THAN_SIGN:{this._err(L.abruptClosingOfEmptyComment),this.state=g.DATA,this.emitCurrentComment(r);break}case h.EOF:{this._err(L.eofInComment),this.emitCurrentComment(r),this._emitEOFToken();break}default:r.data+="-",this.state=g.COMMENT,this._stateComment(t)}}_stateComment(t){const r=this.currentToken;switch(t){case h.HYPHEN_MINUS:{this.state=g.COMMENT_END_DASH;break}case h.LESS_THAN_SIGN:{r.data+="<",this.state=g.COMMENT_LESS_THAN_SIGN;break}case h.NULL:{this._err(L.unexpectedNullCharacter),r.data+=Qe;break}case h.EOF:{this._err(L.eofInComment),this.emitCurrentComment(r),this._emitEOFToken();break}default:r.data+=String.fromCodePoint(t)}}_stateCommentLessThanSign(t){const r=this.currentToken;switch(t){case h.EXCLAMATION_MARK:{r.data+="!",this.state=g.COMMENT_LESS_THAN_SIGN_BANG;break}case h.LESS_THAN_SIGN:{r.data+="<";break}default:this.state=g.COMMENT,this._stateComment(t)}}_stateCommentLessThanSignBang(t){t===h.HYPHEN_MINUS?this.state=g.COMMENT_LESS_THAN_SIGN_BANG_DASH:(this.state=g.COMMENT,this._stateComment(t))}_stateCommentLessThanSignBangDash(t){t===h.HYPHEN_MINUS?this.state=g.COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH:(this.state=g.COMMENT_END_DASH,this._stateCommentEndDash(t))}_stateCommentLessThanSignBangDashDash(t){t!==h.GREATER_THAN_SIGN&&t!==h.EOF&&this._err(L.nestedComment),this.state=g.COMMENT_END,this._stateCommentEnd(t)}_stateCommentEndDash(t){const r=this.currentToken;switch(t){case h.HYPHEN_MINUS:{this.state=g.COMMENT_END;break}case h.EOF:{this._err(L.eofInComment),this.emitCurrentComment(r),this._emitEOFToken();break}default:r.data+="-",this.state=g.COMMENT,this._stateComment(t)}}_stateCommentEnd(t){const r=this.currentToken;switch(t){case h.GREATER_THAN_SIGN:{this.state=g.DATA,this.emitCurrentComment(r);break}case h.EXCLAMATION_MARK:{this.state=g.COMMENT_END_BANG;break}case h.HYPHEN_MINUS:{r.data+="-";break}case h.EOF:{this._err(L.eofInComment),this.emitCurrentComment(r),this._emitEOFToken();break}default:r.data+="--",this.state=g.COMMENT,this._stateComment(t)}}_stateCommentEndBang(t){const r=this.currentToken;switch(t){case h.HYPHEN_MINUS:{r.data+="--!",this.state=g.COMMENT_END_DASH;break}case h.GREATER_THAN_SIGN:{this._err(L.incorrectlyClosedComment),this.state=g.DATA,this.emitCurrentComment(r);break}case h.EOF:{this._err(L.eofInComment),this.emitCurrentComment(r),this._emitEOFToken();break}default:r.data+="--!",this.state=g.COMMENT,this._stateComment(t)}}_stateDoctype(t){switch(t){case h.SPACE:case h.LINE_FEED:case h.TABULATION:case h.FORM_FEED:{this.state=g.BEFORE_DOCTYPE_NAME;break}case h.GREATER_THAN_SIGN:{this.state=g.BEFORE_DOCTYPE_NAME,this._stateBeforeDoctypeName(t);break}case h.EOF:{this._err(L.eofInDoctype),this._createDoctypeToken(null);const r=this.currentToken;r.forceQuirks=!0,this.emitCurrentDoctype(r),this._emitEOFToken();break}default:this._err(L.missingWhitespaceBeforeDoctypeName),this.state=g.BEFORE_DOCTYPE_NAME,this._stateBeforeDoctypeName(t)}}_stateBeforeDoctypeName(t){if(ln(t))this._createDoctypeToken(String.fromCharCode(ps(t))),this.state=g.DOCTYPE_NAME;else switch(t){case h.SPACE:case h.LINE_FEED:case h.TABULATION:case h.FORM_FEED:break;case h.NULL:{this._err(L.unexpectedNullCharacter),this._createDoctypeToken(Qe),this.state=g.DOCTYPE_NAME;break}case h.GREATER_THAN_SIGN:{this._err(L.missingDoctypeName),this._createDoctypeToken(null);const r=this.currentToken;r.forceQuirks=!0,this.emitCurrentDoctype(r),this.state=g.DATA;break}case h.EOF:{this._err(L.eofInDoctype),this._createDoctypeToken(null);const r=this.currentToken;r.forceQuirks=!0,this.emitCurrentDoctype(r),this._emitEOFToken();break}default:this._createDoctypeToken(String.fromCodePoint(t)),this.state=g.DOCTYPE_NAME}}_stateDoctypeName(t){const r=this.currentToken;switch(t){case h.SPACE:case h.LINE_FEED:case h.TABULATION:case h.FORM_FEED:{this.state=g.AFTER_DOCTYPE_NAME;break}case h.GREATER_THAN_SIGN:{this.state=g.DATA,this.emitCurrentDoctype(r);break}case h.NULL:{this._err(L.unexpectedNullCharacter),r.name+=Qe;break}case h.EOF:{this._err(L.eofInDoctype),r.forceQuirks=!0,this.emitCurrentDoctype(r),this._emitEOFToken();break}default:r.name+=String.fromCodePoint(ln(t)?ps(t):t)}}_stateAfterDoctypeName(t){const r=this.currentToken;switch(t){case h.SPACE:case h.LINE_FEED:case h.TABULATION:case h.FORM_FEED:break;case h.GREATER_THAN_SIGN:{this.state=g.DATA,this.emitCurrentDoctype(r);break}case h.EOF:{this._err(L.eofInDoctype),r.forceQuirks=!0,this.emitCurrentDoctype(r),this._emitEOFToken();break}default:this._consumeSequenceIfMatch(It.PUBLIC,!1)?this.state=g.AFTER_DOCTYPE_PUBLIC_KEYWORD:this._consumeSequenceIfMatch(It.SYSTEM,!1)?this.state=g.AFTER_DOCTYPE_SYSTEM_KEYWORD:this._ensureHibernation()||(this._err(L.invalidCharacterSequenceAfterDoctypeName),r.forceQuirks=!0,this.state=g.BOGUS_DOCTYPE,this._stateBogusDoctype(t))}}_stateAfterDoctypePublicKeyword(t){const r=this.currentToken;switch(t){case h.SPACE:case h.LINE_FEED:case h.TABULATION:case h.FORM_FEED:{this.state=g.BEFORE_DOCTYPE_PUBLIC_IDENTIFIER;break}case h.QUOTATION_MARK:{this._err(L.missingWhitespaceAfterDoctypePublicKeyword),r.publicId="",this.state=g.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED;break}case h.APOSTROPHE:{this._err(L.missingWhitespaceAfterDoctypePublicKeyword),r.publicId="",this.state=g.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED;break}case h.GREATER_THAN_SIGN:{this._err(L.missingDoctypePublicIdentifier),r.forceQuirks=!0,this.state=g.DATA,this.emitCurrentDoctype(r);break}case h.EOF:{this._err(L.eofInDoctype),r.forceQuirks=!0,this.emitCurrentDoctype(r),this._emitEOFToken();break}default:this._err(L.missingQuoteBeforeDoctypePublicIdentifier),r.forceQuirks=!0,this.state=g.BOGUS_DOCTYPE,this._stateBogusDoctype(t)}}_stateBeforeDoctypePublicIdentifier(t){const r=this.currentToken;switch(t){case h.SPACE:case h.LINE_FEED:case h.TABULATION:case h.FORM_FEED:break;case h.QUOTATION_MARK:{r.publicId="",this.state=g.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED;break}case h.APOSTROPHE:{r.publicId="",this.state=g.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED;break}case h.GREATER_THAN_SIGN:{this._err(L.missingDoctypePublicIdentifier),r.forceQuirks=!0,this.state=g.DATA,this.emitCurrentDoctype(r);break}case h.EOF:{this._err(L.eofInDoctype),r.forceQuirks=!0,this.emitCurrentDoctype(r),this._emitEOFToken();break}default:this._err(L.missingQuoteBeforeDoctypePublicIdentifier),r.forceQuirks=!0,this.state=g.BOGUS_DOCTYPE,this._stateBogusDoctype(t)}}_stateDoctypePublicIdentifierDoubleQuoted(t){const r=this.currentToken;switch(t){case h.QUOTATION_MARK:{this.state=g.AFTER_DOCTYPE_PUBLIC_IDENTIFIER;break}case h.NULL:{this._err(L.unexpectedNullCharacter),r.publicId+=Qe;break}case h.GREATER_THAN_SIGN:{this._err(L.abruptDoctypePublicIdentifier),r.forceQuirks=!0,this.emitCurrentDoctype(r),this.state=g.DATA;break}case h.EOF:{this._err(L.eofInDoctype),r.forceQuirks=!0,this.emitCurrentDoctype(r),this._emitEOFToken();break}default:r.publicId+=String.fromCodePoint(t)}}_stateDoctypePublicIdentifierSingleQuoted(t){const r=this.currentToken;switch(t){case h.APOSTROPHE:{this.state=g.AFTER_DOCTYPE_PUBLIC_IDENTIFIER;break}case h.NULL:{this._err(L.unexpectedNullCharacter),r.publicId+=Qe;break}case h.GREATER_THAN_SIGN:{this._err(L.abruptDoctypePublicIdentifier),r.forceQuirks=!0,this.emitCurrentDoctype(r),this.state=g.DATA;break}case h.EOF:{this._err(L.eofInDoctype),r.forceQuirks=!0,this.emitCurrentDoctype(r),this._emitEOFToken();break}default:r.publicId+=String.fromCodePoint(t)}}_stateAfterDoctypePublicIdentifier(t){const r=this.currentToken;switch(t){case h.SPACE:case h.LINE_FEED:case h.TABULATION:case h.FORM_FEED:{this.state=g.BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS;break}case h.GREATER_THAN_SIGN:{this.state=g.DATA,this.emitCurrentDoctype(r);break}case h.QUOTATION_MARK:{this._err(L.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers),r.systemId="",this.state=g.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED;break}case h.APOSTROPHE:{this._err(L.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers),r.systemId="",this.state=g.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED;break}case h.EOF:{this._err(L.eofInDoctype),r.forceQuirks=!0,this.emitCurrentDoctype(r),this._emitEOFToken();break}default:this._err(L.missingQuoteBeforeDoctypeSystemIdentifier),r.forceQuirks=!0,this.state=g.BOGUS_DOCTYPE,this._stateBogusDoctype(t)}}_stateBetweenDoctypePublicAndSystemIdentifiers(t){const r=this.currentToken;switch(t){case h.SPACE:case h.LINE_FEED:case h.TABULATION:case h.FORM_FEED:break;case h.GREATER_THAN_SIGN:{this.emitCurrentDoctype(r),this.state=g.DATA;break}case h.QUOTATION_MARK:{r.systemId="",this.state=g.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED;break}case h.APOSTROPHE:{r.systemId="",this.state=g.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED;break}case h.EOF:{this._err(L.eofInDoctype),r.forceQuirks=!0,this.emitCurrentDoctype(r),this._emitEOFToken();break}default:this._err(L.missingQuoteBeforeDoctypeSystemIdentifier),r.forceQuirks=!0,this.state=g.BOGUS_DOCTYPE,this._stateBogusDoctype(t)}}_stateAfterDoctypeSystemKeyword(t){const r=this.currentToken;switch(t){case h.SPACE:case h.LINE_FEED:case h.TABULATION:case h.FORM_FEED:{this.state=g.BEFORE_DOCTYPE_SYSTEM_IDENTIFIER;break}case h.QUOTATION_MARK:{this._err(L.missingWhitespaceAfterDoctypeSystemKeyword),r.systemId="",this.state=g.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED;break}case h.APOSTROPHE:{this._err(L.missingWhitespaceAfterDoctypeSystemKeyword),r.systemId="",this.state=g.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED;break}case h.GREATER_THAN_SIGN:{this._err(L.missingDoctypeSystemIdentifier),r.forceQuirks=!0,this.state=g.DATA,this.emitCurrentDoctype(r);break}case h.EOF:{this._err(L.eofInDoctype),r.forceQuirks=!0,this.emitCurrentDoctype(r),this._emitEOFToken();break}default:this._err(L.missingQuoteBeforeDoctypeSystemIdentifier),r.forceQuirks=!0,this.state=g.BOGUS_DOCTYPE,this._stateBogusDoctype(t)}}_stateBeforeDoctypeSystemIdentifier(t){const r=this.currentToken;switch(t){case h.SPACE:case h.LINE_FEED:case h.TABULATION:case h.FORM_FEED:break;case h.QUOTATION_MARK:{r.systemId="",this.state=g.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED;break}case h.APOSTROPHE:{r.systemId="",this.state=g.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED;break}case h.GREATER_THAN_SIGN:{this._err(L.missingDoctypeSystemIdentifier),r.forceQuirks=!0,this.state=g.DATA,this.emitCurrentDoctype(r);break}case h.EOF:{this._err(L.eofInDoctype),r.forceQuirks=!0,this.emitCurrentDoctype(r),this._emitEOFToken();break}default:this._err(L.missingQuoteBeforeDoctypeSystemIdentifier),r.forceQuirks=!0,this.state=g.BOGUS_DOCTYPE,this._stateBogusDoctype(t)}}_stateDoctypeSystemIdentifierDoubleQuoted(t){const r=this.currentToken;switch(t){case h.QUOTATION_MARK:{this.state=g.AFTER_DOCTYPE_SYSTEM_IDENTIFIER;break}case h.NULL:{this._err(L.unexpectedNullCharacter),r.systemId+=Qe;break}case h.GREATER_THAN_SIGN:{this._err(L.abruptDoctypeSystemIdentifier),r.forceQuirks=!0,this.emitCurrentDoctype(r),this.state=g.DATA;break}case h.EOF:{this._err(L.eofInDoctype),r.forceQuirks=!0,this.emitCurrentDoctype(r),this._emitEOFToken();break}default:r.systemId+=String.fromCodePoint(t)}}_stateDoctypeSystemIdentifierSingleQuoted(t){const r=this.currentToken;switch(t){case h.APOSTROPHE:{this.state=g.AFTER_DOCTYPE_SYSTEM_IDENTIFIER;break}case h.NULL:{this._err(L.unexpectedNullCharacter),r.systemId+=Qe;break}case h.GREATER_THAN_SIGN:{this._err(L.abruptDoctypeSystemIdentifier),r.forceQuirks=!0,this.emitCurrentDoctype(r),this.state=g.DATA;break}case h.EOF:{this._err(L.eofInDoctype),r.forceQuirks=!0,this.emitCurrentDoctype(r),this._emitEOFToken();break}default:r.systemId+=String.fromCodePoint(t)}}_stateAfterDoctypeSystemIdentifier(t){const r=this.currentToken;switch(t){case h.SPACE:case h.LINE_FEED:case h.TABULATION:case h.FORM_FEED:break;case h.GREATER_THAN_SIGN:{this.emitCurrentDoctype(r),this.state=g.DATA;break}case h.EOF:{this._err(L.eofInDoctype),r.forceQuirks=!0,this.emitCurrentDoctype(r),this._emitEOFToken();break}default:this._err(L.unexpectedCharacterAfterDoctypeSystemIdentifier),this.state=g.BOGUS_DOCTYPE,this._stateBogusDoctype(t)}}_stateBogusDoctype(t){const r=this.currentToken;switch(t){case h.GREATER_THAN_SIGN:{this.emitCurrentDoctype(r),this.state=g.DATA;break}case h.NULL:{this._err(L.unexpectedNullCharacter);break}case h.EOF:{this.emitCurrentDoctype(r),this._emitEOFToken();break}}}_stateCdataSection(t){switch(t){case h.RIGHT_SQUARE_BRACKET:{this.state=g.CDATA_SECTION_BRACKET;break}case h.EOF:{this._err(L.eofInCdata),this._emitEOFToken();break}default:this._emitCodePoint(t)}}_stateCdataSectionBracket(t){t===h.RIGHT_SQUARE_BRACKET?this.state=g.CDATA_SECTION_END:(this._emitChars("]"),this.state=g.CDATA_SECTION,this._stateCdataSection(t))}_stateCdataSectionEnd(t){switch(t){case h.GREATER_THAN_SIGN:{this.state=g.DATA;break}case h.RIGHT_SQUARE_BRACKET:{this._emitChars("]");break}default:this._emitChars("]]"),this.state=g.CDATA_SECTION,this._stateCdataSection(t)}}_stateCharacterReference(){let t=this.entityDecoder.write(this.preprocessor.html,this.preprocessor.pos);if(t<0)if(this.preprocessor.lastChunkWritten)t=this.entityDecoder.end();else{this.active=!1,this.preprocessor.pos=this.preprocessor.html.length-1,this.consumedAfterSnapshot=0,this.preprocessor.endOfChunkHit=!0;return}t===0?(this.preprocessor.pos=this.entityStartPos,this._flushCodePointConsumedAsCharacterReference(h.AMPERSAND),this.state=!this._isCharacterReferenceInAttribute()&&Ju(this.preprocessor.peek(1))?g.AMBIGUOUS_AMPERSAND:this.returnState):this.state=this.returnState}_stateAmbiguousAmpersand(t){Ju(t)?this._flushCodePointConsumedAsCharacterReference(t):(t===h.SEMICOLON&&this._err(L.unknownNamedCharacterReference),this.state=this.returnState,this._callState(t))}}const Pd=new Set([s.DD,s.DT,s.LI,s.OPTGROUP,s.OPTION,s.P,s.RB,s.RP,s.RT,s.RTC]),el=new Set([...Pd,s.CAPTION,s.COLGROUP,s.TBODY,s.TD,s.TFOOT,s.TH,s.THEAD,s.TR]),ks=new Set([s.APPLET,s.CAPTION,s.HTML,s.MARQUEE,s.OBJECT,s.TABLE,s.TD,s.TEMPLATE,s.TH]),pb=new Set([...ks,s.OL,s.UL]),gb=new Set([...ks,s.BUTTON]),tl=new Set([s.ANNOTATION_XML,s.MI,s.MN,s.MO,s.MS,s.MTEXT]),rl=new Set([s.DESC,s.FOREIGN_OBJECT,s.TITLE]),Eb=new Set([s.TR,s.TEMPLATE,s.HTML]),bb=new Set([s.TBODY,s.TFOOT,s.THEAD,s.TEMPLATE,s.HTML]),Tb=new Set([s.TABLE,s.TEMPLATE,s.HTML]),Sb=new Set([s.TD,s.TH]);class Ab{get currentTmplContentOrNode(){return this._isInTemplate()?this.treeAdapter.getTemplateContent(this.current):this.current}constructor(t,r,a){this.treeAdapter=r,this.handler=a,this.items=[],this.tagIDs=[],this.stackTop=-1,this.tmplCount=0,this.currentTagId=s.UNKNOWN,this.current=t}_indexOf(t){return this.items.lastIndexOf(t,this.stackTop)}_isInTemplate(){return this.currentTagId===s.TEMPLATE&&this.treeAdapter.getNamespaceURI(this.current)===Q.HTML}_updateCurrentElement(){this.current=this.items[this.stackTop],this.currentTagId=this.tagIDs[this.stackTop]}push(t,r){this.stackTop++,this.items[this.stackTop]=t,this.current=t,this.tagIDs[this.stackTop]=r,this.currentTagId=r,this._isInTemplate()&&this.tmplCount++,this.handler.onItemPush(t,r,!0)}pop(){const t=this.current;this.tmplCount>0&&this._isInTemplate()&&this.tmplCount--,this.stackTop--,this._updateCurrentElement(),this.handler.onItemPop(t,!0)}replace(t,r){const a=this._indexOf(t);this.items[a]=r,a===this.stackTop&&(this.current=r)}insertAfter(t,r,a){const n=this._indexOf(t)+1;this.items.splice(n,0,r),this.tagIDs.splice(n,0,a),this.stackTop++,n===this.stackTop&&this._updateCurrentElement(),this.current&&this.currentTagId!==void 0&&this.handler.onItemPush(this.current,this.currentTagId,n===this.stackTop)}popUntilTagNamePopped(t){let r=this.stackTop+1;do r=this.tagIDs.lastIndexOf(t,r-1);while(r>0&&this.treeAdapter.getNamespaceURI(this.items[r])!==Q.HTML);this.shortenToLength(Math.max(r,0))}shortenToLength(t){for(;this.stackTop>=t;){const r=this.current;this.tmplCount>0&&this._isInTemplate()&&(this.tmplCount-=1),this.stackTop--,this._updateCurrentElement(),this.handler.onItemPop(r,this.stackTop<t)}}popUntilElementPopped(t){const r=this._indexOf(t);this.shortenToLength(Math.max(r,0))}popUntilPopped(t,r){const a=this._indexOfTagNames(t,r);this.shortenToLength(Math.max(a,0))}popUntilNumberedHeaderPopped(){this.popUntilPopped(uo,Q.HTML)}popUntilTableCellPopped(){this.popUntilPopped(Sb,Q.HTML)}popAllUpToHtmlElement(){this.tmplCount=0,this.shortenToLength(1)}_indexOfTagNames(t,r){for(let a=this.stackTop;a>=0;a--)if(t.has(this.tagIDs[a])&&this.treeAdapter.getNamespaceURI(this.items[a])===r)return a;return-1}clearBackTo(t,r){const a=this._indexOfTagNames(t,r);this.shortenToLength(a+1)}clearBackToTableContext(){this.clearBackTo(Tb,Q.HTML)}clearBackToTableBodyContext(){this.clearBackTo(bb,Q.HTML)}clearBackToTableRowContext(){this.clearBackTo(Eb,Q.HTML)}remove(t){const r=this._indexOf(t);r>=0&&(r===this.stackTop?this.pop():(this.items.splice(r,1),this.tagIDs.splice(r,1),this.stackTop--,this._updateCurrentElement(),this.handler.onItemPop(t,!1)))}tryPeekProperlyNestedBodyElement(){return this.stackTop>=1&&this.tagIDs[1]===s.BODY?this.items[1]:null}contains(t){return this._indexOf(t)>-1}getCommonAncestor(t){const r=this._indexOf(t)-1;return r>=0?this.items[r]:null}isRootHtmlElementCurrent(){return this.stackTop===0&&this.tagIDs[0]===s.HTML}hasInDynamicScope(t,r){for(let a=this.stackTop;a>=0;a--){const n=this.tagIDs[a];switch(this.treeAdapter.getNamespaceURI(this.items[a])){case Q.HTML:{if(n===t)return!0;if(r.has(n))return!1;break}case Q.SVG:{if(rl.has(n))return!1;break}case Q.MATHML:{if(tl.has(n))return!1;break}}}return!0}hasInScope(t){return this.hasInDynamicScope(t,ks)}hasInListItemScope(t){return this.hasInDynamicScope(t,pb)}hasInButtonScope(t){return this.hasInDynamicScope(t,gb)}hasNumberedHeaderInScope(){for(let t=this.stackTop;t>=0;t--){const r=this.tagIDs[t];switch(this.treeAdapter.getNamespaceURI(this.items[t])){case Q.HTML:{if(uo.has(r))return!0;if(ks.has(r))return!1;break}case Q.SVG:{if(rl.has(r))return!1;break}case Q.MATHML:{if(tl.has(r))return!1;break}}}return!0}hasInTableScope(t){for(let r=this.stackTop;r>=0;r--)if(this.treeAdapter.getNamespaceURI(this.items[r])===Q.HTML)switch(this.tagIDs[r]){case t:return!0;case s.TABLE:case s.HTML:return!1}return!0}hasTableBodyContextInTableScope(){for(let t=this.stackTop;t>=0;t--)if(this.treeAdapter.getNamespaceURI(this.items[t])===Q.HTML)switch(this.tagIDs[t]){case s.TBODY:case s.THEAD:case s.TFOOT:return!0;case s.TABLE:case s.HTML:return!1}return!0}hasInSelectScope(t){for(let r=this.stackTop;r>=0;r--)if(this.treeAdapter.getNamespaceURI(this.items[r])===Q.HTML)switch(this.tagIDs[r]){case t:return!0;case s.OPTION:case s.OPTGROUP:break;default:return!1}return!0}generateImpliedEndTags(){for(;this.currentTagId!==void 0&&Pd.has(this.currentTagId);)this.pop()}generateImpliedEndTagsThoroughly(){for(;this.currentTagId!==void 0&&el.has(this.currentTagId);)this.pop()}generateImpliedEndTagsWithExclusion(t){for(;this.currentTagId!==void 0&&this.currentTagId!==t&&el.has(this.currentTagId);)this.pop()}}const Wi=3;var tr;(function(e){e[e.Marker=0]="Marker",e[e.Element=1]="Element"})(tr||(tr={}));const al={type:tr.Marker};class Ib{constructor(t){this.treeAdapter=t,this.entries=[],this.bookmark=null}_getNoahArkConditionCandidates(t,r){const a=[],n=r.length,i=this.treeAdapter.getTagName(t),o=this.treeAdapter.getNamespaceURI(t);for(let c=0;c<this.entries.length;c++){const f=this.entries[c];if(f.type===tr.Marker)break;const{element:d}=f;if(this.treeAdapter.getTagName(d)===i&&this.treeAdapter.getNamespaceURI(d)===o){const S=this.treeAdapter.getAttrList(d);S.length===n&&a.push({idx:c,attrs:S})}}return a}_ensureNoahArkCondition(t){if(this.entries.length<Wi)return;const r=this.treeAdapter.getAttrList(t),a=this._getNoahArkConditionCandidates(t,r);if(a.length<Wi)return;const n=new Map(r.map(o=>[o.name,o.value]));let i=0;for(let o=0;o<a.length;o++){const c=a[o];c.attrs.every(f=>n.get(f.name)===f.value)&&(i+=1,i>=Wi&&this.entries.splice(c.idx,1))}}insertMarker(){this.entries.unshift(al)}pushElement(t,r){this._ensureNoahArkCondition(t),this.entries.unshift({type:tr.Element,element:t,token:r})}insertElementAfterBookmark(t,r){const a=this.entries.indexOf(this.bookmark);this.entries.splice(a,0,{type:tr.Element,element:t,token:r})}removeEntry(t){const r=this.entries.indexOf(t);r!==-1&&this.entries.splice(r,1)}clearToLastMarker(){const t=this.entries.indexOf(al);t===-1?this.entries.length=0:this.entries.splice(0,t+1)}getElementEntryInScopeWithTagName(t){const r=this.entries.find(a=>a.type===tr.Marker||this.treeAdapter.getTagName(a.element)===t);return r&&r.type===tr.Element?r:null}getElementEntry(t){return this.entries.find(r=>r.type===tr.Element&&r.element===t)}}const Nr={createDocument(){return{nodeName:"#document",mode:Mt.NO_QUIRKS,childNodes:[]}},createDocumentFragment(){return{nodeName:"#document-fragment",childNodes:[]}},createElement(e,t,r){return{nodeName:e,tagName:e,attrs:r,namespaceURI:t,childNodes:[],parentNode:null}},createCommentNode(e){return{nodeName:"#comment",data:e,parentNode:null}},createTextNode(e){return{nodeName:"#text",value:e,parentNode:null}},appendChild(e,t){e.childNodes.push(t),t.parentNode=e},insertBefore(e,t,r){const a=e.childNodes.indexOf(r);e.childNodes.splice(a,0,t),t.parentNode=e},setTemplateContent(e,t){e.content=t},getTemplateContent(e){return e.content},setDocumentType(e,t,r,a){const n=e.childNodes.find(i=>i.nodeName==="#documentType");if(n)n.name=t,n.publicId=r,n.systemId=a;else{const i={nodeName:"#documentType",name:t,publicId:r,systemId:a,parentNode:null};Nr.appendChild(e,i)}},setDocumentMode(e,t){e.mode=t},getDocumentMode(e){return e.mode},detachNode(e){if(e.parentNode){const t=e.parentNode.childNodes.indexOf(e);e.parentNode.childNodes.splice(t,1),e.parentNode=null}},insertText(e,t){if(e.childNodes.length>0){const r=e.childNodes[e.childNodes.length-1];if(Nr.isTextNode(r)){r.value+=t;return}}Nr.appendChild(e,Nr.createTextNode(t))},insertTextBefore(e,t,r){const a=e.childNodes[e.childNodes.indexOf(r)-1];a&&Nr.isTextNode(a)?a.value+=t:Nr.insertBefore(e,Nr.createTextNode(t),r)},adoptAttributes(e,t){const r=new Set(e.attrs.map(a=>a.name));for(let a=0;a<t.length;a++)r.has(t[a].name)||e.attrs.push(t[a])},getFirstChild(e){return e.childNodes[0]},getChildNodes(e){return e.childNodes},getParentNode(e){return e.parentNode},getAttrList(e){return e.attrs},getTagName(e){return e.tagName},getNamespaceURI(e){return e.namespaceURI},getTextNodeContent(e){return e.value},getCommentNodeContent(e){return e.data},getDocumentTypeNodeName(e){return e.name},getDocumentTypeNodePublicId(e){return e.publicId},getDocumentTypeNodeSystemId(e){return e.systemId},isTextNode(e){return e.nodeName==="#text"},isCommentNode(e){return e.nodeName==="#comment"},isDocumentTypeNode(e){return e.nodeName==="#documentType"},isElementNode(e){return Object.prototype.hasOwnProperty.call(e,"tagName")},setNodeSourceCodeLocation(e,t){e.sourceCodeLocation=t},getNodeSourceCodeLocation(e){return e.sourceCodeLocation},updateNodeSourceCodeLocation(e,t){e.sourceCodeLocation={...e.sourceCodeLocation,...t}}},xd="html",yb="about:legacy-compat",_b="http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd",Od=["+//silmaril//dtd html pro v0r11 19970101//","-//as//dtd html 3.0 aswedit + extensions//","-//advasoft ltd//dtd html 3.0 aswedit + extensions//","-//ietf//dtd html 2.0 level 1//","-//ietf//dtd html 2.0 level 2//","-//ietf//dtd html 2.0 strict level 1//","-//ietf//dtd html 2.0 strict level 2//","-//ietf//dtd html 2.0 strict//","-//ietf//dtd html 2.0//","-//ietf//dtd html 2.1e//","-//ietf//dtd html 3.0//","-//ietf//dtd html 3.2 final//","-//ietf//dtd html 3.2//","-//ietf//dtd html 3//","-//ietf//dtd html level 0//","-//ietf//dtd html level 1//","-//ietf//dtd html level 2//","-//ietf//dtd html level 3//","-//ietf//dtd html strict level 0//","-//ietf//dtd html strict level 1//","-//ietf//dtd html strict level 2//","-//ietf//dtd html strict level 3//","-//ietf//dtd html strict//","-//ietf//dtd html//","-//metrius//dtd metrius presentational//","-//microsoft//dtd internet explorer 2.0 html strict//","-//microsoft//dtd internet explorer 2.0 html//","-//microsoft//dtd internet explorer 2.0 tables//","-//microsoft//dtd internet explorer 3.0 html strict//","-//microsoft//dtd internet explorer 3.0 html//","-//microsoft//dtd internet explorer 3.0 tables//","-//netscape comm. corp.//dtd html//","-//netscape comm. corp.//dtd strict html//","-//o'reilly and associates//dtd html 2.0//","-//o'reilly and associates//dtd html extended 1.0//","-//o'reilly and associates//dtd html extended relaxed 1.0//","-//sq//dtd html 2.0 hotmetal + extensions//","-//softquad software//dtd hotmetal pro 6.0::19990601::extensions to html 4.0//","-//softquad//dtd hotmetal pro 4.0::19971010::extensions to html 4.0//","-//spyglass//dtd html 2.0 extended//","-//sun microsystems corp.//dtd hotjava html//","-//sun microsystems corp.//dtd hotjava strict html//","-//w3c//dtd html 3 1995-03-24//","-//w3c//dtd html 3.2 draft//","-//w3c//dtd html 3.2 final//","-//w3c//dtd html 3.2//","-//w3c//dtd html 3.2s draft//","-//w3c//dtd html 4.0 frameset//","-//w3c//dtd html 4.0 transitional//","-//w3c//dtd html experimental 19960712//","-//w3c//dtd html experimental 970421//","-//w3c//dtd w3 html//","-//w3o//dtd w3 html 3.0//","-//webtechs//dtd mozilla html 2.0//","-//webtechs//dtd mozilla html//"],Cb=[...Od,"-//w3c//dtd html 4.01 frameset//","-//w3c//dtd html 4.01 transitional//"],wb=new Set(["-//w3o//dtd w3 html strict 3.0//en//","-/w3c/dtd html 4.0 transitional/en","html"]),vd=["-//w3c//dtd xhtml 1.0 frameset//","-//w3c//dtd xhtml 1.0 transitional//"],Rb=[...vd,"-//w3c//dtd html 4.01 frameset//","-//w3c//dtd html 4.01 transitional//"];function nl(e,t){return t.some(r=>e.startsWith(r))}function Nb(e){return e.name===xd&&e.publicId===null&&(e.systemId===null||e.systemId===yb)}function Pb(e){if(e.name!==xd)return Mt.QUIRKS;const{systemId:t}=e;if(t&&t.toLowerCase()===_b)return Mt.QUIRKS;let{publicId:r}=e;if(r!==null){if(r=r.toLowerCase(),wb.has(r))return Mt.QUIRKS;let a=t===null?Cb:Od;if(nl(r,a))return Mt.QUIRKS;if(a=t===null?vd:Rb,nl(r,a))return Mt.LIMITED_QUIRKS}return Mt.NO_QUIRKS}const sl={TEXT_HTML:"text/html",APPLICATION_XML:"application/xhtml+xml"},xb="definitionurl",Ob="definitionURL",vb=new Map(["attributeName","attributeType","baseFrequency","baseProfile","calcMode","clipPathUnits","diffuseConstant","edgeMode","filterUnits","glyphRef","gradientTransform","gradientUnits","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","lengthAdjust","limitingConeAngle","markerHeight","markerUnits","markerWidth","maskContentUnits","maskUnits","numOctaves","pathLength","patternContentUnits","patternTransform","patternUnits","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","refX","refY","repeatCount","repeatDur","requiredExtensions","requiredFeatures","specularConstant","specularExponent","spreadMethod","startOffset","stdDeviation","stitchTiles","surfaceScale","systemLanguage","tableValues","targetX","targetY","textLength","viewBox","viewTarget","xChannelSelector","yChannelSelector","zoomAndPan"].map(e=>[e.toLowerCase(),e])),Lb=new Map([["xlink:actuate",{prefix:"xlink",name:"actuate",namespace:Q.XLINK}],["xlink:arcrole",{prefix:"xlink",name:"arcrole",namespace:Q.XLINK}],["xlink:href",{prefix:"xlink",name:"href",namespace:Q.XLINK}],["xlink:role",{prefix:"xlink",name:"role",namespace:Q.XLINK}],["xlink:show",{prefix:"xlink",name:"show",namespace:Q.XLINK}],["xlink:title",{prefix:"xlink",name:"title",namespace:Q.XLINK}],["xlink:type",{prefix:"xlink",name:"type",namespace:Q.XLINK}],["xml:lang",{prefix:"xml",name:"lang",namespace:Q.XML}],["xml:space",{prefix:"xml",name:"space",namespace:Q.XML}],["xmlns",{prefix:"",name:"xmlns",namespace:Q.XMLNS}],["xmlns:xlink",{prefix:"xmlns",name:"xlink",namespace:Q.XMLNS}]]),kb=new Map(["altGlyph","altGlyphDef","altGlyphItem","animateColor","animateMotion","animateTransform","clipPath","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","foreignObject","glyphRef","linearGradient","radialGradient","textPath"].map(e=>[e.toLowerCase(),e])),Db=new Set([s.B,s.BIG,s.BLOCKQUOTE,s.BODY,s.BR,s.CENTER,s.CODE,s.DD,s.DIV,s.DL,s.DT,s.EM,s.EMBED,s.H1,s.H2,s.H3,s.H4,s.H5,s.H6,s.HEAD,s.HR,s.I,s.IMG,s.LI,s.LISTING,s.MENU,s.META,s.NOBR,s.OL,s.P,s.PRE,s.RUBY,s.S,s.SMALL,s.SPAN,s.STRONG,s.STRIKE,s.SUB,s.SUP,s.TABLE,s.TT,s.U,s.UL,s.VAR]);function Mb(e){const t=e.tagID;return t===s.FONT&&e.attrs.some(({name:a})=>a===Zr.COLOR||a===Zr.SIZE||a===Zr.FACE)||Db.has(t)}function Ld(e){for(let t=0;t<e.attrs.length;t++)if(e.attrs[t].name===xb){e.attrs[t].name=Ob;break}}function kd(e){for(let t=0;t<e.attrs.length;t++){const r=vb.get(e.attrs[t].name);r!=null&&(e.attrs[t].name=r)}}function Ho(e){for(let t=0;t<e.attrs.length;t++){const r=Lb.get(e.attrs[t].name);r&&(e.attrs[t].prefix=r.prefix,e.attrs[t].name=r.name,e.attrs[t].namespace=r.namespace)}}function Ub(e){const t=kb.get(e.tagName);t!=null&&(e.tagName=t,e.tagID=qs(e.tagName))}function Bb(e,t){return t===Q.MATHML&&(e===s.MI||e===s.MO||e===s.MN||e===s.MS||e===s.MTEXT)}function Fb(e,t,r){if(t===Q.MATHML&&e===s.ANNOTATION_XML){for(let a=0;a<r.length;a++)if(r[a].name===Zr.ENCODING){const n=r[a].value.toLowerCase();return n===sl.TEXT_HTML||n===sl.APPLICATION_XML}}return t===Q.SVG&&(e===s.FOREIGN_OBJECT||e===s.DESC||e===s.TITLE)}function Hb(e,t,r,a){return(!a||a===Q.HTML)&&Fb(e,t,r)||(!a||a===Q.MATHML)&&Bb(e,t)}const jb="hidden",Vb=8,Gb=3;var T;(function(e){e[e.INITIAL=0]="INITIAL",e[e.BEFORE_HTML=1]="BEFORE_HTML",e[e.BEFORE_HEAD=2]="BEFORE_HEAD",e[e.IN_HEAD=3]="IN_HEAD",e[e.IN_HEAD_NO_SCRIPT=4]="IN_HEAD_NO_SCRIPT",e[e.AFTER_HEAD=5]="AFTER_HEAD",e[e.IN_BODY=6]="IN_BODY",e[e.TEXT=7]="TEXT",e[e.IN_TABLE=8]="IN_TABLE",e[e.IN_TABLE_TEXT=9]="IN_TABLE_TEXT",e[e.IN_CAPTION=10]="IN_CAPTION",e[e.IN_COLUMN_GROUP=11]="IN_COLUMN_GROUP",e[e.IN_TABLE_BODY=12]="IN_TABLE_BODY",e[e.IN_ROW=13]="IN_ROW",e[e.IN_CELL=14]="IN_CELL",e[e.IN_SELECT=15]="IN_SELECT",e[e.IN_SELECT_IN_TABLE=16]="IN_SELECT_IN_TABLE",e[e.IN_TEMPLATE=17]="IN_TEMPLATE",e[e.AFTER_BODY=18]="AFTER_BODY",e[e.IN_FRAMESET=19]="IN_FRAMESET",e[e.AFTER_FRAMESET=20]="AFTER_FRAMESET",e[e.AFTER_AFTER_BODY=21]="AFTER_AFTER_BODY",e[e.AFTER_AFTER_FRAMESET=22]="AFTER_AFTER_FRAMESET"})(T||(T={}));const Yb={startLine:-1,startCol:-1,startOffset:-1,endLine:-1,endCol:-1,endOffset:-1},Dd=new Set([s.TABLE,s.TBODY,s.TFOOT,s.THEAD,s.TR]),il={scriptingEnabled:!0,sourceCodeLocationInfo:!1,treeAdapter:Nr,onParseError:null};class Md{constructor(t,r,a=null,n=null){this.fragmentContext=a,this.scriptHandler=n,this.currentToken=null,this.stopped=!1,this.insertionMode=T.INITIAL,this.originalInsertionMode=T.INITIAL,this.headElement=null,this.formElement=null,this.currentNotInHTML=!1,this.tmplInsertionModeStack=[],this.pendingCharacterTokens=[],this.hasNonWhitespacePendingCharacterToken=!1,this.framesetOk=!0,this.skipNextNewLine=!1,this.fosterParentingEnabled=!1,this.options={...il,...t},this.treeAdapter=this.options.treeAdapter,this.onParseError=this.options.onParseError,this.onParseError&&(this.options.sourceCodeLocationInfo=!0),this.document=r??this.treeAdapter.createDocument(),this.tokenizer=new hb(this.options,this),this.activeFormattingElements=new Ib(this.treeAdapter),this.fragmentContextID=a?qs(this.treeAdapter.getTagName(a)):s.UNKNOWN,this._setContextModes(a??this.document,this.fragmentContextID),this.openElements=new Ab(this.document,this.treeAdapter,this)}static parse(t,r){const a=new this(r);return a.tokenizer.write(t,!0),a.document}static getFragmentParser(t,r){const a={...il,...r};t??(t=a.treeAdapter.createElement(R.TEMPLATE,Q.HTML,[]));const n=a.treeAdapter.createElement("documentmock",Q.HTML,[]),i=new this(a,n,t);return i.fragmentContextID===s.TEMPLATE&&i.tmplInsertionModeStack.unshift(T.IN_TEMPLATE),i._initTokenizerForFragmentParsing(),i._insertFakeRootElement(),i._resetInsertionMode(),i._findFormInFragmentContext(),i}getFragment(){const t=this.treeAdapter.getFirstChild(this.document),r=this.treeAdapter.createDocumentFragment();return this._adoptNodes(t,r),r}_err(t,r,a){var n;if(!this.onParseError)return;const i=(n=t.location)!==null&&n!==void 0?n:Yb,o={code:r,startLine:i.startLine,startCol:i.startCol,startOffset:i.startOffset,endLine:a?i.startLine:i.endLine,endCol:a?i.startCol:i.endCol,endOffset:a?i.startOffset:i.endOffset};this.onParseError(o)}onItemPush(t,r,a){var n,i;(i=(n=this.treeAdapter).onItemPush)===null||i===void 0||i.call(n,t),a&&this.openElements.stackTop>0&&this._setContextModes(t,r)}onItemPop(t,r){var a,n;if(this.options.sourceCodeLocationInfo&&this._setEndLocation(t,this.currentToken),(n=(a=this.treeAdapter).onItemPop)===null||n===void 0||n.call(a,t,this.openElements.current),r){let i,o;this.openElements.stackTop===0&&this.fragmentContext?(i=this.fragmentContext,o=this.fragmentContextID):{current:i,currentTagId:o}=this.openElements,this._setContextModes(i,o)}}_setContextModes(t,r){const a=t===this.document||t&&this.treeAdapter.getNamespaceURI(t)===Q.HTML;this.currentNotInHTML=!a,this.tokenizer.inForeignNode=!a&&t!==void 0&&r!==void 0&&!this._isIntegrationPoint(r,t)}_switchToTextParsing(t,r){this._insertElement(t,Q.HTML),this.tokenizer.state=r,this.originalInsertionMode=this.insertionMode,this.insertionMode=T.TEXT}switchToPlaintextParsing(){this.insertionMode=T.TEXT,this.originalInsertionMode=T.IN_BODY,this.tokenizer.state=yt.PLAINTEXT}_getAdjustedCurrentElement(){return this.openElements.stackTop===0&&this.fragmentContext?this.fragmentContext:this.openElements.current}_findFormInFragmentContext(){let t=this.fragmentContext;for(;t;){if(this.treeAdapter.getTagName(t)===R.FORM){this.formElement=t;break}t=this.treeAdapter.getParentNode(t)}}_initTokenizerForFragmentParsing(){if(!(!this.fragmentContext||this.treeAdapter.getNamespaceURI(this.fragmentContext)!==Q.HTML))switch(this.fragmentContextID){case s.TITLE:case s.TEXTAREA:{this.tokenizer.state=yt.RCDATA;break}case s.STYLE:case s.XMP:case s.IFRAME:case s.NOEMBED:case s.NOFRAMES:case s.NOSCRIPT:{this.tokenizer.state=yt.RAWTEXT;break}case s.SCRIPT:{this.tokenizer.state=yt.SCRIPT_DATA;break}case s.PLAINTEXT:{this.tokenizer.state=yt.PLAINTEXT;break}}}_setDocumentType(t){const r=t.name||"",a=t.publicId||"",n=t.systemId||"";if(this.treeAdapter.setDocumentType(this.document,r,a,n),t.location){const o=this.treeAdapter.getChildNodes(this.document).find(c=>this.treeAdapter.isDocumentTypeNode(c));o&&this.treeAdapter.setNodeSourceCodeLocation(o,t.location)}}_attachElementToTree(t,r){if(this.options.sourceCodeLocationInfo){const a=r&&{...r,startTag:r};this.treeAdapter.setNodeSourceCodeLocation(t,a)}if(this._shouldFosterParentOnInsertion())this._fosterParentElement(t);else{const a=this.openElements.currentTmplContentOrNode;this.treeAdapter.appendChild(a??this.document,t)}}_appendElement(t,r){const a=this.treeAdapter.createElement(t.tagName,r,t.attrs);this._attachElementToTree(a,t.location)}_insertElement(t,r){const a=this.treeAdapter.createElement(t.tagName,r,t.attrs);this._attachElementToTree(a,t.location),this.openElements.push(a,t.tagID)}_insertFakeElement(t,r){const a=this.treeAdapter.createElement(t,Q.HTML,[]);this._attachElementToTree(a,null),this.openElements.push(a,r)}_insertTemplate(t){const r=this.treeAdapter.createElement(t.tagName,Q.HTML,t.attrs),a=this.treeAdapter.createDocumentFragment();this.treeAdapter.setTemplateContent(r,a),this._attachElementToTree(r,t.location),this.openElements.push(r,t.tagID),this.options.sourceCodeLocationInfo&&this.treeAdapter.setNodeSourceCodeLocation(a,null)}_insertFakeRootElement(){const t=this.treeAdapter.createElement(R.HTML,Q.HTML,[]);this.options.sourceCodeLocationInfo&&this.treeAdapter.setNodeSourceCodeLocation(t,null),this.treeAdapter.appendChild(this.openElements.current,t),this.openElements.push(t,s.HTML)}_appendCommentNode(t,r){const a=this.treeAdapter.createCommentNode(t.data);this.treeAdapter.appendChild(r,a),this.options.sourceCodeLocationInfo&&this.treeAdapter.setNodeSourceCodeLocation(a,t.location)}_insertCharacters(t){let r,a;if(this._shouldFosterParentOnInsertion()?({parent:r,beforeElement:a}=this._findFosterParentingLocation(),a?this.treeAdapter.insertTextBefore(r,t.chars,a):this.treeAdapter.insertText(r,t.chars)):(r=this.openElements.currentTmplContentOrNode,this.treeAdapter.insertText(r,t.chars)),!t.location)return;const n=this.treeAdapter.getChildNodes(r),i=a?n.lastIndexOf(a):n.length,o=n[i-1];if(this.treeAdapter.getNodeSourceCodeLocation(o)){const{endLine:f,endCol:d,endOffset:S}=t.location;this.treeAdapter.updateNodeSourceCodeLocation(o,{endLine:f,endCol:d,endOffset:S})}else this.options.sourceCodeLocationInfo&&this.treeAdapter.setNodeSourceCodeLocation(o,t.location)}_adoptNodes(t,r){for(let a=this.treeAdapter.getFirstChild(t);a;a=this.treeAdapter.getFirstChild(t))this.treeAdapter.detachNode(a),this.treeAdapter.appendChild(r,a)}_setEndLocation(t,r){if(this.treeAdapter.getNodeSourceCodeLocation(t)&&r.location){const a=r.location,n=this.treeAdapter.getTagName(t),i=r.type===De.END_TAG&&n===r.tagName?{endTag:{...a},endLine:a.endLine,endCol:a.endCol,endOffset:a.endOffset}:{endLine:a.startLine,endCol:a.startCol,endOffset:a.startOffset};this.treeAdapter.updateNodeSourceCodeLocation(t,i)}}shouldProcessStartTagTokenInForeignContent(t){if(!this.currentNotInHTML)return!1;let r,a;return this.openElements.stackTop===0&&this.fragmentContext?(r=this.fragmentContext,a=this.fragmentContextID):{current:r,currentTagId:a}=this.openElements,t.tagID===s.SVG&&this.treeAdapter.getTagName(r)===R.ANNOTATION_XML&&this.treeAdapter.getNamespaceURI(r)===Q.MATHML?!1:this.tokenizer.inForeignNode||(t.tagID===s.MGLYPH||t.tagID===s.MALIGNMARK)&&a!==void 0&&!this._isIntegrationPoint(a,r,Q.HTML)}_processToken(t){switch(t.type){case De.CHARACTER:{this.onCharacter(t);break}case De.NULL_CHARACTER:{this.onNullCharacter(t);break}case De.COMMENT:{this.onComment(t);break}case De.DOCTYPE:{this.onDoctype(t);break}case De.START_TAG:{this._processStartTag(t);break}case De.END_TAG:{this.onEndTag(t);break}case De.EOF:{this.onEof(t);break}case De.WHITESPACE_CHARACTER:{this.onWhitespaceCharacter(t);break}}}_isIntegrationPoint(t,r,a){const n=this.treeAdapter.getNamespaceURI(r),i=this.treeAdapter.getAttrList(r);return Hb(t,n,i,a)}_reconstructActiveFormattingElements(){const t=this.activeFormattingElements.entries.length;if(t){const r=this.activeFormattingElements.entries.findIndex(n=>n.type===tr.Marker||this.openElements.contains(n.element)),a=r===-1?t-1:r-1;for(let n=a;n>=0;n--){const i=this.activeFormattingElements.entries[n];this._insertElement(i.token,this.treeAdapter.getNamespaceURI(i.element)),i.element=this.openElements.current}}}_closeTableCell(){this.openElements.generateImpliedEndTags(),this.openElements.popUntilTableCellPopped(),this.activeFormattingElements.clearToLastMarker(),this.insertionMode=T.IN_ROW}_closePElement(){this.openElements.generateImpliedEndTagsWithExclusion(s.P),this.openElements.popUntilTagNamePopped(s.P)}_resetInsertionMode(){for(let t=this.openElements.stackTop;t>=0;t--)switch(t===0&&this.fragmentContext?this.fragmentContextID:this.openElements.tagIDs[t]){case s.TR:{this.insertionMode=T.IN_ROW;return}case s.TBODY:case s.THEAD:case s.TFOOT:{this.insertionMode=T.IN_TABLE_BODY;return}case s.CAPTION:{this.insertionMode=T.IN_CAPTION;return}case s.COLGROUP:{this.insertionMode=T.IN_COLUMN_GROUP;return}case s.TABLE:{this.insertionMode=T.IN_TABLE;return}case s.BODY:{this.insertionMode=T.IN_BODY;return}case s.FRAMESET:{this.insertionMode=T.IN_FRAMESET;return}case s.SELECT:{this._resetInsertionModeForSelect(t);return}case s.TEMPLATE:{this.insertionMode=this.tmplInsertionModeStack[0];return}case s.HTML:{this.insertionMode=this.headElement?T.AFTER_HEAD:T.BEFORE_HEAD;return}case s.TD:case s.TH:{if(t>0){this.insertionMode=T.IN_CELL;return}break}case s.HEAD:{if(t>0){this.insertionMode=T.IN_HEAD;return}break}}this.insertionMode=T.IN_BODY}_resetInsertionModeForSelect(t){if(t>0)for(let r=t-1;r>0;r--){const a=this.openElements.tagIDs[r];if(a===s.TEMPLATE)break;if(a===s.TABLE){this.insertionMode=T.IN_SELECT_IN_TABLE;return}}this.insertionMode=T.IN_SELECT}_isElementCausesFosterParenting(t){return Dd.has(t)}_shouldFosterParentOnInsertion(){return this.fosterParentingEnabled&&this.openElements.currentTagId!==void 0&&this._isElementCausesFosterParenting(this.openElements.currentTagId)}_findFosterParentingLocation(){for(let t=this.openElements.stackTop;t>=0;t--){const r=this.openElements.items[t];switch(this.openElements.tagIDs[t]){case s.TEMPLATE:{if(this.treeAdapter.getNamespaceURI(r)===Q.HTML)return{parent:this.treeAdapter.getTemplateContent(r),beforeElement:null};break}case s.TABLE:{const a=this.treeAdapter.getParentNode(r);return a?{parent:a,beforeElement:r}:{parent:this.openElements.items[t-1],beforeElement:null}}}}return{parent:this.openElements.items[0],beforeElement:null}}_fosterParentElement(t){const r=this._findFosterParentingLocation();r.beforeElement?this.treeAdapter.insertBefore(r.parent,t,r.beforeElement):this.treeAdapter.appendChild(r.parent,t)}_isSpecialElement(t,r){const a=this.treeAdapter.getNamespaceURI(t);return lb[a].has(r)}onCharacter(t){if(this.skipNextNewLine=!1,this.tokenizer.inForeignNode){SS(this,t);return}switch(this.insertionMode){case T.INITIAL:{on(this,t);break}case T.BEFORE_HTML:{mn(this,t);break}case T.BEFORE_HEAD:{hn(this,t);break}case T.IN_HEAD:{pn(this,t);break}case T.IN_HEAD_NO_SCRIPT:{gn(this,t);break}case T.AFTER_HEAD:{En(this,t);break}case T.IN_BODY:case T.IN_CAPTION:case T.IN_CELL:case T.IN_TEMPLATE:{Bd(this,t);break}case T.TEXT:case T.IN_SELECT:case T.IN_SELECT_IN_TABLE:{this._insertCharacters(t);break}case T.IN_TABLE:case T.IN_TABLE_BODY:case T.IN_ROW:{$i(this,t);break}case T.IN_TABLE_TEXT:{Yd(this,t);break}case T.IN_COLUMN_GROUP:{Ds(this,t);break}case T.AFTER_BODY:{Ms(this,t);break}case T.AFTER_AFTER_BODY:{As(this,t);break}}}onNullCharacter(t){if(this.skipNextNewLine=!1,this.tokenizer.inForeignNode){TS(this,t);return}switch(this.insertionMode){case T.INITIAL:{on(this,t);break}case T.BEFORE_HTML:{mn(this,t);break}case T.BEFORE_HEAD:{hn(this,t);break}case T.IN_HEAD:{pn(this,t);break}case T.IN_HEAD_NO_SCRIPT:{gn(this,t);break}case T.AFTER_HEAD:{En(this,t);break}case T.TEXT:{this._insertCharacters(t);break}case T.IN_TABLE:case T.IN_TABLE_BODY:case T.IN_ROW:{$i(this,t);break}case T.IN_COLUMN_GROUP:{Ds(this,t);break}case T.AFTER_BODY:{Ms(this,t);break}case T.AFTER_AFTER_BODY:{As(this,t);break}}}onComment(t){if(this.skipNextNewLine=!1,this.currentNotInHTML){lo(this,t);return}switch(this.insertionMode){case T.INITIAL:case T.BEFORE_HTML:case T.BEFORE_HEAD:case T.IN_HEAD:case T.IN_HEAD_NO_SCRIPT:case T.AFTER_HEAD:case T.IN_BODY:case T.IN_TABLE:case T.IN_CAPTION:case T.IN_COLUMN_GROUP:case T.IN_TABLE_BODY:case T.IN_ROW:case T.IN_CELL:case T.IN_SELECT:case T.IN_SELECT_IN_TABLE:case T.IN_TEMPLATE:case T.IN_FRAMESET:case T.AFTER_FRAMESET:{lo(this,t);break}case T.IN_TABLE_TEXT:{cn(this,t);break}case T.AFTER_BODY:{Xb(this,t);break}case T.AFTER_AFTER_BODY:case T.AFTER_AFTER_FRAMESET:{Jb(this,t);break}}}onDoctype(t){switch(this.skipNextNewLine=!1,this.insertionMode){case T.INITIAL:{Zb(this,t);break}case T.BEFORE_HEAD:case T.IN_HEAD:case T.IN_HEAD_NO_SCRIPT:case T.AFTER_HEAD:{this._err(t,L.misplacedDoctype);break}case T.IN_TABLE_TEXT:{cn(this,t);break}}}onStartTag(t){this.skipNextNewLine=!1,this.currentToken=t,this._processStartTag(t),t.selfClosing&&!t.ackSelfClosing&&this._err(t,L.nonVoidHtmlElementStartTagWithTrailingSolidus)}_processStartTag(t){this.shouldProcessStartTagTokenInForeignContent(t)?AS(this,t):this._startTagOutsideForeignContent(t)}_startTagOutsideForeignContent(t){switch(this.insertionMode){case T.INITIAL:{on(this,t);break}case T.BEFORE_HTML:{eT(this,t);break}case T.BEFORE_HEAD:{rT(this,t);break}case T.IN_HEAD:{$t(this,t);break}case T.IN_HEAD_NO_SCRIPT:{sT(this,t);break}case T.AFTER_HEAD:{oT(this,t);break}case T.IN_BODY:{Et(this,t);break}case T.IN_TABLE:{Na(this,t);break}case T.IN_TABLE_TEXT:{cn(this,t);break}case T.IN_CAPTION:{aS(this,t);break}case T.IN_COLUMN_GROUP:{Go(this,t);break}case T.IN_TABLE_BODY:{Xs(this,t);break}case T.IN_ROW:{Js(this,t);break}case T.IN_CELL:{iS(this,t);break}case T.IN_SELECT:{$d(this,t);break}case T.IN_SELECT_IN_TABLE:{cS(this,t);break}case T.IN_TEMPLATE:{lS(this,t);break}case T.AFTER_BODY:{fS(this,t);break}case T.IN_FRAMESET:{mS(this,t);break}case T.AFTER_FRAMESET:{pS(this,t);break}case T.AFTER_AFTER_BODY:{ES(this,t);break}case T.AFTER_AFTER_FRAMESET:{bS(this,t);break}}}onEndTag(t){this.skipNextNewLine=!1,this.currentToken=t,this.currentNotInHTML?IS(this,t):this._endTagOutsideForeignContent(t)}_endTagOutsideForeignContent(t){switch(this.insertionMode){case T.INITIAL:{on(this,t);break}case T.BEFORE_HTML:{tT(this,t);break}case T.BEFORE_HEAD:{aT(this,t);break}case T.IN_HEAD:{nT(this,t);break}case T.IN_HEAD_NO_SCRIPT:{iT(this,t);break}case T.AFTER_HEAD:{cT(this,t);break}case T.IN_BODY:{Ks(this,t);break}case T.TEXT:{$T(this,t);break}case T.IN_TABLE:{yn(this,t);break}case T.IN_TABLE_TEXT:{cn(this,t);break}case T.IN_CAPTION:{nS(this,t);break}case T.IN_COLUMN_GROUP:{sS(this,t);break}case T.IN_TABLE_BODY:{fo(this,t);break}case T.IN_ROW:{Wd(this,t);break}case T.IN_CELL:{oS(this,t);break}case T.IN_SELECT:{qd(this,t);break}case T.IN_SELECT_IN_TABLE:{uS(this,t);break}case T.IN_TEMPLATE:{dS(this,t);break}case T.AFTER_BODY:{Kd(this,t);break}case T.IN_FRAMESET:{hS(this,t);break}case T.AFTER_FRAMESET:{gS(this,t);break}case T.AFTER_AFTER_BODY:{As(this,t);break}}}onEof(t){switch(this.insertionMode){case T.INITIAL:{on(this,t);break}case T.BEFORE_HTML:{mn(this,t);break}case T.BEFORE_HEAD:{hn(this,t);break}case T.IN_HEAD:{pn(this,t);break}case T.IN_HEAD_NO_SCRIPT:{gn(this,t);break}case T.AFTER_HEAD:{En(this,t);break}case T.IN_BODY:case T.IN_TABLE:case T.IN_CAPTION:case T.IN_COLUMN_GROUP:case T.IN_TABLE_BODY:case T.IN_ROW:case T.IN_CELL:case T.IN_SELECT:case T.IN_SELECT_IN_TABLE:{Vd(this,t);break}case T.TEXT:{qT(this,t);break}case T.IN_TABLE_TEXT:{cn(this,t);break}case T.IN_TEMPLATE:{Qd(this,t);break}case T.AFTER_BODY:case T.IN_FRAMESET:case T.AFTER_FRAMESET:case T.AFTER_AFTER_BODY:case T.AFTER_AFTER_FRAMESET:{Vo(this,t);break}}}onWhitespaceCharacter(t){if(this.skipNextNewLine&&(this.skipNextNewLine=!1,t.chars.charCodeAt(0)===h.LINE_FEED)){if(t.chars.length===1)return;t.chars=t.chars.substr(1)}if(this.tokenizer.inForeignNode){this._insertCharacters(t);return}switch(this.insertionMode){case T.IN_HEAD:case T.IN_HEAD_NO_SCRIPT:case T.AFTER_HEAD:case T.TEXT:case T.IN_COLUMN_GROUP:case T.IN_SELECT:case T.IN_SELECT_IN_TABLE:case T.IN_FRAMESET:case T.AFTER_FRAMESET:{this._insertCharacters(t);break}case T.IN_BODY:case T.IN_CAPTION:case T.IN_CELL:case T.IN_TEMPLATE:case T.AFTER_BODY:case T.AFTER_AFTER_BODY:case T.AFTER_AFTER_FRAMESET:{Ud(this,t);break}case T.IN_TABLE:case T.IN_TABLE_BODY:case T.IN_ROW:{$i(this,t);break}case T.IN_TABLE_TEXT:{Gd(this,t);break}}}}function zb(e,t){let r=e.activeFormattingElements.getElementEntryInScopeWithTagName(t.tagName);return r?e.openElements.contains(r.element)?e.openElements.hasInScope(t.tagID)||(r=null):(e.activeFormattingElements.removeEntry(r),r=null):jd(e,t),r}function Wb(e,t){let r=null,a=e.openElements.stackTop;for(;a>=0;a--){const n=e.openElements.items[a];if(n===t.element)break;e._isSpecialElement(n,e.openElements.tagIDs[a])&&(r=n)}return r||(e.openElements.shortenToLength(Math.max(a,0)),e.activeFormattingElements.removeEntry(t)),r}function $b(e,t,r){let a=t,n=e.openElements.getCommonAncestor(t);for(let i=0,o=n;o!==r;i++,o=n){n=e.openElements.getCommonAncestor(o);const c=e.activeFormattingElements.getElementEntry(o),f=c&&i>=Gb;!c||f?(f&&e.activeFormattingElements.removeEntry(c),e.openElements.remove(o)):(o=qb(e,c),a===t&&(e.activeFormattingElements.bookmark=c),e.treeAdapter.detachNode(a),e.treeAdapter.appendChild(o,a),a=o)}return a}function qb(e,t){const r=e.treeAdapter.getNamespaceURI(t.element),a=e.treeAdapter.createElement(t.token.tagName,r,t.token.attrs);return e.openElements.replace(t.element,a),t.element=a,a}function Qb(e,t,r){const a=e.treeAdapter.getTagName(t),n=qs(a);if(e._isElementCausesFosterParenting(n))e._fosterParentElement(r);else{const i=e.treeAdapter.getNamespaceURI(t);n===s.TEMPLATE&&i===Q.HTML&&(t=e.treeAdapter.getTemplateContent(t)),e.treeAdapter.appendChild(t,r)}}function Kb(e,t,r){const a=e.treeAdapter.getNamespaceURI(r.element),{token:n}=r,i=e.treeAdapter.createElement(n.tagName,a,n.attrs);e._adoptNodes(t,i),e.treeAdapter.appendChild(t,i),e.activeFormattingElements.insertElementAfterBookmark(i,n),e.activeFormattingElements.removeEntry(r),e.openElements.remove(r.element),e.openElements.insertAfter(t,i,n.tagID)}function jo(e,t){for(let r=0;r<Vb;r++){const a=zb(e,t);if(!a)break;const n=Wb(e,a);if(!n)break;e.activeFormattingElements.bookmark=a;const i=$b(e,n,a.element),o=e.openElements.getCommonAncestor(a.element);e.treeAdapter.detachNode(i),o&&Qb(e,o,i),Kb(e,n,a)}}function lo(e,t){e._appendCommentNode(t,e.openElements.currentTmplContentOrNode)}function Xb(e,t){e._appendCommentNode(t,e.openElements.items[0])}function Jb(e,t){e._appendCommentNode(t,e.document)}function Vo(e,t){if(e.stopped=!0,t.location){const r=e.fragmentContext?0:2;for(let a=e.openElements.stackTop;a>=r;a--)e._setEndLocation(e.openElements.items[a],t);if(!e.fragmentContext&&e.openElements.stackTop>=0){const a=e.openElements.items[0],n=e.treeAdapter.getNodeSourceCodeLocation(a);if(n&&!n.endTag&&(e._setEndLocation(a,t),e.openElements.stackTop>=1)){const i=e.openElements.items[1],o=e.treeAdapter.getNodeSourceCodeLocation(i);o&&!o.endTag&&e._setEndLocation(i,t)}}}}function Zb(e,t){e._setDocumentType(t);const r=t.forceQuirks?Mt.QUIRKS:Pb(t);Nb(t)||e._err(t,L.nonConformingDoctype),e.treeAdapter.setDocumentMode(e.document,r),e.insertionMode=T.BEFORE_HTML}function on(e,t){e._err(t,L.missingDoctype,!0),e.treeAdapter.setDocumentMode(e.document,Mt.QUIRKS),e.insertionMode=T.BEFORE_HTML,e._processToken(t)}function eT(e,t){t.tagID===s.HTML?(e._insertElement(t,Q.HTML),e.insertionMode=T.BEFORE_HEAD):mn(e,t)}function tT(e,t){const r=t.tagID;(r===s.HTML||r===s.HEAD||r===s.BODY||r===s.BR)&&mn(e,t)}function mn(e,t){e._insertFakeRootElement(),e.insertionMode=T.BEFORE_HEAD,e._processToken(t)}function rT(e,t){switch(t.tagID){case s.HTML:{Et(e,t);break}case s.HEAD:{e._insertElement(t,Q.HTML),e.headElement=e.openElements.current,e.insertionMode=T.IN_HEAD;break}default:hn(e,t)}}function aT(e,t){const r=t.tagID;r===s.HEAD||r===s.BODY||r===s.HTML||r===s.BR?hn(e,t):e._err(t,L.endTagWithoutMatchingOpenElement)}function hn(e,t){e._insertFakeElement(R.HEAD,s.HEAD),e.headElement=e.openElements.current,e.insertionMode=T.IN_HEAD,e._processToken(t)}function $t(e,t){switch(t.tagID){case s.HTML:{Et(e,t);break}case s.BASE:case s.BASEFONT:case s.BGSOUND:case s.LINK:case s.META:{e._appendElement(t,Q.HTML),t.ackSelfClosing=!0;break}case s.TITLE:{e._switchToTextParsing(t,yt.RCDATA);break}case s.NOSCRIPT:{e.options.scriptingEnabled?e._switchToTextParsing(t,yt.RAWTEXT):(e._insertElement(t,Q.HTML),e.insertionMode=T.IN_HEAD_NO_SCRIPT);break}case s.NOFRAMES:case s.STYLE:{e._switchToTextParsing(t,yt.RAWTEXT);break}case s.SCRIPT:{e._switchToTextParsing(t,yt.SCRIPT_DATA);break}case s.TEMPLATE:{e._insertTemplate(t),e.activeFormattingElements.insertMarker(),e.framesetOk=!1,e.insertionMode=T.IN_TEMPLATE,e.tmplInsertionModeStack.unshift(T.IN_TEMPLATE);break}case s.HEAD:{e._err(t,L.misplacedStartTagForHeadElement);break}default:pn(e,t)}}function nT(e,t){switch(t.tagID){case s.HEAD:{e.openElements.pop(),e.insertionMode=T.AFTER_HEAD;break}case s.BODY:case s.BR:case s.HTML:{pn(e,t);break}case s.TEMPLATE:{na(e,t);break}default:e._err(t,L.endTagWithoutMatchingOpenElement)}}function na(e,t){e.openElements.tmplCount>0?(e.openElements.generateImpliedEndTagsThoroughly(),e.openElements.currentTagId!==s.TEMPLATE&&e._err(t,L.closingOfElementWithOpenChildElements),e.openElements.popUntilTagNamePopped(s.TEMPLATE),e.activeFormattingElements.clearToLastMarker(),e.tmplInsertionModeStack.shift(),e._resetInsertionMode()):e._err(t,L.endTagWithoutMatchingOpenElement)}function pn(e,t){e.openElements.pop(),e.insertionMode=T.AFTER_HEAD,e._processToken(t)}function sT(e,t){switch(t.tagID){case s.HTML:{Et(e,t);break}case s.BASEFONT:case s.BGSOUND:case s.HEAD:case s.LINK:case s.META:case s.NOFRAMES:case s.STYLE:{$t(e,t);break}case s.NOSCRIPT:{e._err(t,L.nestedNoscriptInHead);break}default:gn(e,t)}}function iT(e,t){switch(t.tagID){case s.NOSCRIPT:{e.openElements.pop(),e.insertionMode=T.IN_HEAD;break}case s.BR:{gn(e,t);break}default:e._err(t,L.endTagWithoutMatchingOpenElement)}}function gn(e,t){const r=t.type===De.EOF?L.openElementsLeftAfterEof:L.disallowedContentInNoscriptInHead;e._err(t,r),e.openElements.pop(),e.insertionMode=T.IN_HEAD,e._processToken(t)}function oT(e,t){switch(t.tagID){case s.HTML:{Et(e,t);break}case s.BODY:{e._insertElement(t,Q.HTML),e.framesetOk=!1,e.insertionMode=T.IN_BODY;break}case s.FRAMESET:{e._insertElement(t,Q.HTML),e.insertionMode=T.IN_FRAMESET;break}case s.BASE:case s.BASEFONT:case s.BGSOUND:case s.LINK:case s.META:case s.NOFRAMES:case s.SCRIPT:case s.STYLE:case s.TEMPLATE:case s.TITLE:{e._err(t,L.abandonedHeadElementChild),e.openElements.push(e.headElement,s.HEAD),$t(e,t),e.openElements.remove(e.headElement);break}case s.HEAD:{e._err(t,L.misplacedStartTagForHeadElement);break}default:En(e,t)}}function cT(e,t){switch(t.tagID){case s.BODY:case s.HTML:case s.BR:{En(e,t);break}case s.TEMPLATE:{na(e,t);break}default:e._err(t,L.endTagWithoutMatchingOpenElement)}}function En(e,t){e._insertFakeElement(R.BODY,s.BODY),e.insertionMode=T.IN_BODY,Qs(e,t)}function Qs(e,t){switch(t.type){case De.CHARACTER:{Bd(e,t);break}case De.WHITESPACE_CHARACTER:{Ud(e,t);break}case De.COMMENT:{lo(e,t);break}case De.START_TAG:{Et(e,t);break}case De.END_TAG:{Ks(e,t);break}case De.EOF:{Vd(e,t);break}}}function Ud(e,t){e._reconstructActiveFormattingElements(),e._insertCharacters(t)}function Bd(e,t){e._reconstructActiveFormattingElements(),e._insertCharacters(t),e.framesetOk=!1}function uT(e,t){e.openElements.tmplCount===0&&e.treeAdapter.adoptAttributes(e.openElements.items[0],t.attrs)}function lT(e,t){const r=e.openElements.tryPeekProperlyNestedBodyElement();r&&e.openElements.tmplCount===0&&(e.framesetOk=!1,e.treeAdapter.adoptAttributes(r,t.attrs))}function dT(e,t){const r=e.openElements.tryPeekProperlyNestedBodyElement();e.framesetOk&&r&&(e.treeAdapter.detachNode(r),e.openElements.popAllUpToHtmlElement(),e._insertElement(t,Q.HTML),e.insertionMode=T.IN_FRAMESET)}function fT(e,t){e.openElements.hasInButtonScope(s.P)&&e._closePElement(),e._insertElement(t,Q.HTML)}function mT(e,t){e.openElements.hasInButtonScope(s.P)&&e._closePElement(),e.openElements.currentTagId!==void 0&&uo.has(e.openElements.currentTagId)&&e.openElements.pop(),e._insertElement(t,Q.HTML)}function hT(e,t){e.openElements.hasInButtonScope(s.P)&&e._closePElement(),e._insertElement(t,Q.HTML),e.skipNextNewLine=!0,e.framesetOk=!1}function pT(e,t){const r=e.openElements.tmplCount>0;(!e.formElement||r)&&(e.openElements.hasInButtonScope(s.P)&&e._closePElement(),e._insertElement(t,Q.HTML),r||(e.formElement=e.openElements.current))}function gT(e,t){e.framesetOk=!1;const r=t.tagID;for(let a=e.openElements.stackTop;a>=0;a--){const n=e.openElements.tagIDs[a];if(r===s.LI&&n===s.LI||(r===s.DD||r===s.DT)&&(n===s.DD||n===s.DT)){e.openElements.generateImpliedEndTagsWithExclusion(n),e.openElements.popUntilTagNamePopped(n);break}if(n!==s.ADDRESS&&n!==s.DIV&&n!==s.P&&e._isSpecialElement(e.openElements.items[a],n))break}e.openElements.hasInButtonScope(s.P)&&e._closePElement(),e._insertElement(t,Q.HTML)}function ET(e,t){e.openElements.hasInButtonScope(s.P)&&e._closePElement(),e._insertElement(t,Q.HTML),e.tokenizer.state=yt.PLAINTEXT}function bT(e,t){e.openElements.hasInScope(s.BUTTON)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(s.BUTTON)),e._reconstructActiveFormattingElements(),e._insertElement(t,Q.HTML),e.framesetOk=!1}function TT(e,t){const r=e.activeFormattingElements.getElementEntryInScopeWithTagName(R.A);r&&(jo(e,t),e.openElements.remove(r.element),e.activeFormattingElements.removeEntry(r)),e._reconstructActiveFormattingElements(),e._insertElement(t,Q.HTML),e.activeFormattingElements.pushElement(e.openElements.current,t)}function ST(e,t){e._reconstructActiveFormattingElements(),e._insertElement(t,Q.HTML),e.activeFormattingElements.pushElement(e.openElements.current,t)}function AT(e,t){e._reconstructActiveFormattingElements(),e.openElements.hasInScope(s.NOBR)&&(jo(e,t),e._reconstructActiveFormattingElements()),e._insertElement(t,Q.HTML),e.activeFormattingElements.pushElement(e.openElements.current,t)}function IT(e,t){e._reconstructActiveFormattingElements(),e._insertElement(t,Q.HTML),e.activeFormattingElements.insertMarker(),e.framesetOk=!1}function yT(e,t){e.treeAdapter.getDocumentMode(e.document)!==Mt.QUIRKS&&e.openElements.hasInButtonScope(s.P)&&e._closePElement(),e._insertElement(t,Q.HTML),e.framesetOk=!1,e.insertionMode=T.IN_TABLE}function Fd(e,t){e._reconstructActiveFormattingElements(),e._appendElement(t,Q.HTML),e.framesetOk=!1,t.ackSelfClosing=!0}function Hd(e){const t=Rd(e,Zr.TYPE);return t!=null&&t.toLowerCase()===jb}function _T(e,t){e._reconstructActiveFormattingElements(),e._appendElement(t,Q.HTML),Hd(t)||(e.framesetOk=!1),t.ackSelfClosing=!0}function CT(e,t){e._appendElement(t,Q.HTML),t.ackSelfClosing=!0}function wT(e,t){e.openElements.hasInButtonScope(s.P)&&e._closePElement(),e._appendElement(t,Q.HTML),e.framesetOk=!1,t.ackSelfClosing=!0}function RT(e,t){t.tagName=R.IMG,t.tagID=s.IMG,Fd(e,t)}function NT(e,t){e._insertElement(t,Q.HTML),e.skipNextNewLine=!0,e.tokenizer.state=yt.RCDATA,e.originalInsertionMode=e.insertionMode,e.framesetOk=!1,e.insertionMode=T.TEXT}function PT(e,t){e.openElements.hasInButtonScope(s.P)&&e._closePElement(),e._reconstructActiveFormattingElements(),e.framesetOk=!1,e._switchToTextParsing(t,yt.RAWTEXT)}function xT(e,t){e.framesetOk=!1,e._switchToTextParsing(t,yt.RAWTEXT)}function ol(e,t){e._switchToTextParsing(t,yt.RAWTEXT)}function OT(e,t){e._reconstructActiveFormattingElements(),e._insertElement(t,Q.HTML),e.framesetOk=!1,e.insertionMode=e.insertionMode===T.IN_TABLE||e.insertionMode===T.IN_CAPTION||e.insertionMode===T.IN_TABLE_BODY||e.insertionMode===T.IN_ROW||e.insertionMode===T.IN_CELL?T.IN_SELECT_IN_TABLE:T.IN_SELECT}function vT(e,t){e.openElements.currentTagId===s.OPTION&&e.openElements.pop(),e._reconstructActiveFormattingElements(),e._insertElement(t,Q.HTML)}function LT(e,t){e.openElements.hasInScope(s.RUBY)&&e.openElements.generateImpliedEndTags(),e._insertElement(t,Q.HTML)}function kT(e,t){e.openElements.hasInScope(s.RUBY)&&e.openElements.generateImpliedEndTagsWithExclusion(s.RTC),e._insertElement(t,Q.HTML)}function DT(e,t){e._reconstructActiveFormattingElements(),Ld(t),Ho(t),t.selfClosing?e._appendElement(t,Q.MATHML):e._insertElement(t,Q.MATHML),t.ackSelfClosing=!0}function MT(e,t){e._reconstructActiveFormattingElements(),kd(t),Ho(t),t.selfClosing?e._appendElement(t,Q.SVG):e._insertElement(t,Q.SVG),t.ackSelfClosing=!0}function cl(e,t){e._reconstructActiveFormattingElements(),e._insertElement(t,Q.HTML)}function Et(e,t){switch(t.tagID){case s.I:case s.S:case s.B:case s.U:case s.EM:case s.TT:case s.BIG:case s.CODE:case s.FONT:case s.SMALL:case s.STRIKE:case s.STRONG:{ST(e,t);break}case s.A:{TT(e,t);break}case s.H1:case s.H2:case s.H3:case s.H4:case s.H5:case s.H6:{mT(e,t);break}case s.P:case s.DL:case s.OL:case s.UL:case s.DIV:case s.DIR:case s.NAV:case s.MAIN:case s.MENU:case s.ASIDE:case s.CENTER:case s.FIGURE:case s.FOOTER:case s.HEADER:case s.HGROUP:case s.DIALOG:case s.DETAILS:case s.ADDRESS:case s.ARTICLE:case s.SEARCH:case s.SECTION:case s.SUMMARY:case s.FIELDSET:case s.BLOCKQUOTE:case s.FIGCAPTION:{fT(e,t);break}case s.LI:case s.DD:case s.DT:{gT(e,t);break}case s.BR:case s.IMG:case s.WBR:case s.AREA:case s.EMBED:case s.KEYGEN:{Fd(e,t);break}case s.HR:{wT(e,t);break}case s.RB:case s.RTC:{LT(e,t);break}case s.RT:case s.RP:{kT(e,t);break}case s.PRE:case s.LISTING:{hT(e,t);break}case s.XMP:{PT(e,t);break}case s.SVG:{MT(e,t);break}case s.HTML:{uT(e,t);break}case s.BASE:case s.LINK:case s.META:case s.STYLE:case s.TITLE:case s.SCRIPT:case s.BGSOUND:case s.BASEFONT:case s.TEMPLATE:{$t(e,t);break}case s.BODY:{lT(e,t);break}case s.FORM:{pT(e,t);break}case s.NOBR:{AT(e,t);break}case s.MATH:{DT(e,t);break}case s.TABLE:{yT(e,t);break}case s.INPUT:{_T(e,t);break}case s.PARAM:case s.TRACK:case s.SOURCE:{CT(e,t);break}case s.IMAGE:{RT(e,t);break}case s.BUTTON:{bT(e,t);break}case s.APPLET:case s.OBJECT:case s.MARQUEE:{IT(e,t);break}case s.IFRAME:{xT(e,t);break}case s.SELECT:{OT(e,t);break}case s.OPTION:case s.OPTGROUP:{vT(e,t);break}case s.NOEMBED:case s.NOFRAMES:{ol(e,t);break}case s.FRAMESET:{dT(e,t);break}case s.TEXTAREA:{NT(e,t);break}case s.NOSCRIPT:{e.options.scriptingEnabled?ol(e,t):cl(e,t);break}case s.PLAINTEXT:{ET(e,t);break}case s.COL:case s.TH:case s.TD:case s.TR:case s.HEAD:case s.FRAME:case s.TBODY:case s.TFOOT:case s.THEAD:case s.CAPTION:case s.COLGROUP:break;default:cl(e,t)}}function UT(e,t){if(e.openElements.hasInScope(s.BODY)&&(e.insertionMode=T.AFTER_BODY,e.options.sourceCodeLocationInfo)){const r=e.openElements.tryPeekProperlyNestedBodyElement();r&&e._setEndLocation(r,t)}}function BT(e,t){e.openElements.hasInScope(s.BODY)&&(e.insertionMode=T.AFTER_BODY,Kd(e,t))}function FT(e,t){const r=t.tagID;e.openElements.hasInScope(r)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(r))}function HT(e){const t=e.openElements.tmplCount>0,{formElement:r}=e;t||(e.formElement=null),(r||t)&&e.openElements.hasInScope(s.FORM)&&(e.openElements.generateImpliedEndTags(),t?e.openElements.popUntilTagNamePopped(s.FORM):r&&e.openElements.remove(r))}function jT(e){e.openElements.hasInButtonScope(s.P)||e._insertFakeElement(R.P,s.P),e._closePElement()}function VT(e){e.openElements.hasInListItemScope(s.LI)&&(e.openElements.generateImpliedEndTagsWithExclusion(s.LI),e.openElements.popUntilTagNamePopped(s.LI))}function GT(e,t){const r=t.tagID;e.openElements.hasInScope(r)&&(e.openElements.generateImpliedEndTagsWithExclusion(r),e.openElements.popUntilTagNamePopped(r))}function YT(e){e.openElements.hasNumberedHeaderInScope()&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilNumberedHeaderPopped())}function zT(e,t){const r=t.tagID;e.openElements.hasInScope(r)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(r),e.activeFormattingElements.clearToLastMarker())}function WT(e){e._reconstructActiveFormattingElements(),e._insertFakeElement(R.BR,s.BR),e.openElements.pop(),e.framesetOk=!1}function jd(e,t){const r=t.tagName,a=t.tagID;for(let n=e.openElements.stackTop;n>0;n--){const i=e.openElements.items[n],o=e.openElements.tagIDs[n];if(a===o&&(a!==s.UNKNOWN||e.treeAdapter.getTagName(i)===r)){e.openElements.generateImpliedEndTagsWithExclusion(a),e.openElements.stackTop>=n&&e.openElements.shortenToLength(n);break}if(e._isSpecialElement(i,o))break}}function Ks(e,t){switch(t.tagID){case s.A:case s.B:case s.I:case s.S:case s.U:case s.EM:case s.TT:case s.BIG:case s.CODE:case s.FONT:case s.NOBR:case s.SMALL:case s.STRIKE:case s.STRONG:{jo(e,t);break}case s.P:{jT(e);break}case s.DL:case s.UL:case s.OL:case s.DIR:case s.DIV:case s.NAV:case s.PRE:case s.MAIN:case s.MENU:case s.ASIDE:case s.BUTTON:case s.CENTER:case s.FIGURE:case s.FOOTER:case s.HEADER:case s.HGROUP:case s.DIALOG:case s.ADDRESS:case s.ARTICLE:case s.DETAILS:case s.SEARCH:case s.SECTION:case s.SUMMARY:case s.LISTING:case s.FIELDSET:case s.BLOCKQUOTE:case s.FIGCAPTION:{FT(e,t);break}case s.LI:{VT(e);break}case s.DD:case s.DT:{GT(e,t);break}case s.H1:case s.H2:case s.H3:case s.H4:case s.H5:case s.H6:{YT(e);break}case s.BR:{WT(e);break}case s.BODY:{UT(e,t);break}case s.HTML:{BT(e,t);break}case s.FORM:{HT(e);break}case s.APPLET:case s.OBJECT:case s.MARQUEE:{zT(e,t);break}case s.TEMPLATE:{na(e,t);break}default:jd(e,t)}}function Vd(e,t){e.tmplInsertionModeStack.length>0?Qd(e,t):Vo(e,t)}function $T(e,t){var r;t.tagID===s.SCRIPT&&((r=e.scriptHandler)===null||r===void 0||r.call(e,e.openElements.current)),e.openElements.pop(),e.insertionMode=e.originalInsertionMode}function qT(e,t){e._err(t,L.eofInElementThatCanContainOnlyText),e.openElements.pop(),e.insertionMode=e.originalInsertionMode,e.onEof(t)}function $i(e,t){if(e.openElements.currentTagId!==void 0&&Dd.has(e.openElements.currentTagId))switch(e.pendingCharacterTokens.length=0,e.hasNonWhitespacePendingCharacterToken=!1,e.originalInsertionMode=e.insertionMode,e.insertionMode=T.IN_TABLE_TEXT,t.type){case De.CHARACTER:{Yd(e,t);break}case De.WHITESPACE_CHARACTER:{Gd(e,t);break}}else vn(e,t)}function QT(e,t){e.openElements.clearBackToTableContext(),e.activeFormattingElements.insertMarker(),e._insertElement(t,Q.HTML),e.insertionMode=T.IN_CAPTION}function KT(e,t){e.openElements.clearBackToTableContext(),e._insertElement(t,Q.HTML),e.insertionMode=T.IN_COLUMN_GROUP}function XT(e,t){e.openElements.clearBackToTableContext(),e._insertFakeElement(R.COLGROUP,s.COLGROUP),e.insertionMode=T.IN_COLUMN_GROUP,Go(e,t)}function JT(e,t){e.openElements.clearBackToTableContext(),e._insertElement(t,Q.HTML),e.insertionMode=T.IN_TABLE_BODY}function ZT(e,t){e.openElements.clearBackToTableContext(),e._insertFakeElement(R.TBODY,s.TBODY),e.insertionMode=T.IN_TABLE_BODY,Xs(e,t)}function eS(e,t){e.openElements.hasInTableScope(s.TABLE)&&(e.openElements.popUntilTagNamePopped(s.TABLE),e._resetInsertionMode(),e._processStartTag(t))}function tS(e,t){Hd(t)?e._appendElement(t,Q.HTML):vn(e,t),t.ackSelfClosing=!0}function rS(e,t){!e.formElement&&e.openElements.tmplCount===0&&(e._insertElement(t,Q.HTML),e.formElement=e.openElements.current,e.openElements.pop())}function Na(e,t){switch(t.tagID){case s.TD:case s.TH:case s.TR:{ZT(e,t);break}case s.STYLE:case s.SCRIPT:case s.TEMPLATE:{$t(e,t);break}case s.COL:{XT(e,t);break}case s.FORM:{rS(e,t);break}case s.TABLE:{eS(e,t);break}case s.TBODY:case s.TFOOT:case s.THEAD:{JT(e,t);break}case s.INPUT:{tS(e,t);break}case s.CAPTION:{QT(e,t);break}case s.COLGROUP:{KT(e,t);break}default:vn(e,t)}}function yn(e,t){switch(t.tagID){case s.TABLE:{e.openElements.hasInTableScope(s.TABLE)&&(e.openElements.popUntilTagNamePopped(s.TABLE),e._resetInsertionMode());break}case s.TEMPLATE:{na(e,t);break}case s.BODY:case s.CAPTION:case s.COL:case s.COLGROUP:case s.HTML:case s.TBODY:case s.TD:case s.TFOOT:case s.TH:case s.THEAD:case s.TR:break;default:vn(e,t)}}function vn(e,t){const r=e.fosterParentingEnabled;e.fosterParentingEnabled=!0,Qs(e,t),e.fosterParentingEnabled=r}function Gd(e,t){e.pendingCharacterTokens.push(t)}function Yd(e,t){e.pendingCharacterTokens.push(t),e.hasNonWhitespacePendingCharacterToken=!0}function cn(e,t){let r=0;if(e.hasNonWhitespacePendingCharacterToken)for(;r<e.pendingCharacterTokens.length;r++)vn(e,e.pendingCharacterTokens[r]);else for(;r<e.pendingCharacterTokens.length;r++)e._insertCharacters(e.pendingCharacterTokens[r]);e.insertionMode=e.originalInsertionMode,e._processToken(t)}const zd=new Set([s.CAPTION,s.COL,s.COLGROUP,s.TBODY,s.TD,s.TFOOT,s.TH,s.THEAD,s.TR]);function aS(e,t){const r=t.tagID;zd.has(r)?e.openElements.hasInTableScope(s.CAPTION)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(s.CAPTION),e.activeFormattingElements.clearToLastMarker(),e.insertionMode=T.IN_TABLE,Na(e,t)):Et(e,t)}function nS(e,t){const r=t.tagID;switch(r){case s.CAPTION:case s.TABLE:{e.openElements.hasInTableScope(s.CAPTION)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(s.CAPTION),e.activeFormattingElements.clearToLastMarker(),e.insertionMode=T.IN_TABLE,r===s.TABLE&&yn(e,t));break}case s.BODY:case s.COL:case s.COLGROUP:case s.HTML:case s.TBODY:case s.TD:case s.TFOOT:case s.TH:case s.THEAD:case s.TR:break;default:Ks(e,t)}}function Go(e,t){switch(t.tagID){case s.HTML:{Et(e,t);break}case s.COL:{e._appendElement(t,Q.HTML),t.ackSelfClosing=!0;break}case s.TEMPLATE:{$t(e,t);break}default:Ds(e,t)}}function sS(e,t){switch(t.tagID){case s.COLGROUP:{e.openElements.currentTagId===s.COLGROUP&&(e.openElements.pop(),e.insertionMode=T.IN_TABLE);break}case s.TEMPLATE:{na(e,t);break}case s.COL:break;default:Ds(e,t)}}function Ds(e,t){e.openElements.currentTagId===s.COLGROUP&&(e.openElements.pop(),e.insertionMode=T.IN_TABLE,e._processToken(t))}function Xs(e,t){switch(t.tagID){case s.TR:{e.openElements.clearBackToTableBodyContext(),e._insertElement(t,Q.HTML),e.insertionMode=T.IN_ROW;break}case s.TH:case s.TD:{e.openElements.clearBackToTableBodyContext(),e._insertFakeElement(R.TR,s.TR),e.insertionMode=T.IN_ROW,Js(e,t);break}case s.CAPTION:case s.COL:case s.COLGROUP:case s.TBODY:case s.TFOOT:case s.THEAD:{e.openElements.hasTableBodyContextInTableScope()&&(e.openElements.clearBackToTableBodyContext(),e.openElements.pop(),e.insertionMode=T.IN_TABLE,Na(e,t));break}default:Na(e,t)}}function fo(e,t){const r=t.tagID;switch(t.tagID){case s.TBODY:case s.TFOOT:case s.THEAD:{e.openElements.hasInTableScope(r)&&(e.openElements.clearBackToTableBodyContext(),e.openElements.pop(),e.insertionMode=T.IN_TABLE);break}case s.TABLE:{e.openElements.hasTableBodyContextInTableScope()&&(e.openElements.clearBackToTableBodyContext(),e.openElements.pop(),e.insertionMode=T.IN_TABLE,yn(e,t));break}case s.BODY:case s.CAPTION:case s.COL:case s.COLGROUP:case s.HTML:case s.TD:case s.TH:case s.TR:break;default:yn(e,t)}}function Js(e,t){switch(t.tagID){case s.TH:case s.TD:{e.openElements.clearBackToTableRowContext(),e._insertElement(t,Q.HTML),e.insertionMode=T.IN_CELL,e.activeFormattingElements.insertMarker();break}case s.CAPTION:case s.COL:case s.COLGROUP:case s.TBODY:case s.TFOOT:case s.THEAD:case s.TR:{e.openElements.hasInTableScope(s.TR)&&(e.openElements.clearBackToTableRowContext(),e.openElements.pop(),e.insertionMode=T.IN_TABLE_BODY,Xs(e,t));break}default:Na(e,t)}}function Wd(e,t){switch(t.tagID){case s.TR:{e.openElements.hasInTableScope(s.TR)&&(e.openElements.clearBackToTableRowContext(),e.openElements.pop(),e.insertionMode=T.IN_TABLE_BODY);break}case s.TABLE:{e.openElements.hasInTableScope(s.TR)&&(e.openElements.clearBackToTableRowContext(),e.openElements.pop(),e.insertionMode=T.IN_TABLE_BODY,fo(e,t));break}case s.TBODY:case s.TFOOT:case s.THEAD:{(e.openElements.hasInTableScope(t.tagID)||e.openElements.hasInTableScope(s.TR))&&(e.openElements.clearBackToTableRowContext(),e.openElements.pop(),e.insertionMode=T.IN_TABLE_BODY,fo(e,t));break}case s.BODY:case s.CAPTION:case s.COL:case s.COLGROUP:case s.HTML:case s.TD:case s.TH:break;default:yn(e,t)}}function iS(e,t){const r=t.tagID;zd.has(r)?(e.openElements.hasInTableScope(s.TD)||e.openElements.hasInTableScope(s.TH))&&(e._closeTableCell(),Js(e,t)):Et(e,t)}function oS(e,t){const r=t.tagID;switch(r){case s.TD:case s.TH:{e.openElements.hasInTableScope(r)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(r),e.activeFormattingElements.clearToLastMarker(),e.insertionMode=T.IN_ROW);break}case s.TABLE:case s.TBODY:case s.TFOOT:case s.THEAD:case s.TR:{e.openElements.hasInTableScope(r)&&(e._closeTableCell(),Wd(e,t));break}case s.BODY:case s.CAPTION:case s.COL:case s.COLGROUP:case s.HTML:break;default:Ks(e,t)}}function $d(e,t){switch(t.tagID){case s.HTML:{Et(e,t);break}case s.OPTION:{e.openElements.currentTagId===s.OPTION&&e.openElements.pop(),e._insertElement(t,Q.HTML);break}case s.OPTGROUP:{e.openElements.currentTagId===s.OPTION&&e.openElements.pop(),e.openElements.currentTagId===s.OPTGROUP&&e.openElements.pop(),e._insertElement(t,Q.HTML);break}case s.HR:{e.openElements.currentTagId===s.OPTION&&e.openElements.pop(),e.openElements.currentTagId===s.OPTGROUP&&e.openElements.pop(),e._appendElement(t,Q.HTML),t.ackSelfClosing=!0;break}case s.INPUT:case s.KEYGEN:case s.TEXTAREA:case s.SELECT:{e.openElements.hasInSelectScope(s.SELECT)&&(e.openElements.popUntilTagNamePopped(s.SELECT),e._resetInsertionMode(),t.tagID!==s.SELECT&&e._processStartTag(t));break}case s.SCRIPT:case s.TEMPLATE:{$t(e,t);break}}}function qd(e,t){switch(t.tagID){case s.OPTGROUP:{e.openElements.stackTop>0&&e.openElements.currentTagId===s.OPTION&&e.openElements.tagIDs[e.openElements.stackTop-1]===s.OPTGROUP&&e.openElements.pop(),e.openElements.currentTagId===s.OPTGROUP&&e.openElements.pop();break}case s.OPTION:{e.openElements.currentTagId===s.OPTION&&e.openElements.pop();break}case s.SELECT:{e.openElements.hasInSelectScope(s.SELECT)&&(e.openElements.popUntilTagNamePopped(s.SELECT),e._resetInsertionMode());break}case s.TEMPLATE:{na(e,t);break}}}function cS(e,t){const r=t.tagID;r===s.CAPTION||r===s.TABLE||r===s.TBODY||r===s.TFOOT||r===s.THEAD||r===s.TR||r===s.TD||r===s.TH?(e.openElements.popUntilTagNamePopped(s.SELECT),e._resetInsertionMode(),e._processStartTag(t)):$d(e,t)}function uS(e,t){const r=t.tagID;r===s.CAPTION||r===s.TABLE||r===s.TBODY||r===s.TFOOT||r===s.THEAD||r===s.TR||r===s.TD||r===s.TH?e.openElements.hasInTableScope(r)&&(e.openElements.popUntilTagNamePopped(s.SELECT),e._resetInsertionMode(),e.onEndTag(t)):qd(e,t)}function lS(e,t){switch(t.tagID){case s.BASE:case s.BASEFONT:case s.BGSOUND:case s.LINK:case s.META:case s.NOFRAMES:case s.SCRIPT:case s.STYLE:case s.TEMPLATE:case s.TITLE:{$t(e,t);break}case s.CAPTION:case s.COLGROUP:case s.TBODY:case s.TFOOT:case s.THEAD:{e.tmplInsertionModeStack[0]=T.IN_TABLE,e.insertionMode=T.IN_TABLE,Na(e,t);break}case s.COL:{e.tmplInsertionModeStack[0]=T.IN_COLUMN_GROUP,e.insertionMode=T.IN_COLUMN_GROUP,Go(e,t);break}case s.TR:{e.tmplInsertionModeStack[0]=T.IN_TABLE_BODY,e.insertionMode=T.IN_TABLE_BODY,Xs(e,t);break}case s.TD:case s.TH:{e.tmplInsertionModeStack[0]=T.IN_ROW,e.insertionMode=T.IN_ROW,Js(e,t);break}default:e.tmplInsertionModeStack[0]=T.IN_BODY,e.insertionMode=T.IN_BODY,Et(e,t)}}function dS(e,t){t.tagID===s.TEMPLATE&&na(e,t)}function Qd(e,t){e.openElements.tmplCount>0?(e.openElements.popUntilTagNamePopped(s.TEMPLATE),e.activeFormattingElements.clearToLastMarker(),e.tmplInsertionModeStack.shift(),e._resetInsertionMode(),e.onEof(t)):Vo(e,t)}function fS(e,t){t.tagID===s.HTML?Et(e,t):Ms(e,t)}function Kd(e,t){var r;if(t.tagID===s.HTML){if(e.fragmentContext||(e.insertionMode=T.AFTER_AFTER_BODY),e.options.sourceCodeLocationInfo&&e.openElements.tagIDs[0]===s.HTML){e._setEndLocation(e.openElements.items[0],t);const a=e.openElements.items[1];a&&!(!((r=e.treeAdapter.getNodeSourceCodeLocation(a))===null||r===void 0)&&r.endTag)&&e._setEndLocation(a,t)}}else Ms(e,t)}function Ms(e,t){e.insertionMode=T.IN_BODY,Qs(e,t)}function mS(e,t){switch(t.tagID){case s.HTML:{Et(e,t);break}case s.FRAMESET:{e._insertElement(t,Q.HTML);break}case s.FRAME:{e._appendElement(t,Q.HTML),t.ackSelfClosing=!0;break}case s.NOFRAMES:{$t(e,t);break}}}function hS(e,t){t.tagID===s.FRAMESET&&!e.openElements.isRootHtmlElementCurrent()&&(e.openElements.pop(),!e.fragmentContext&&e.openElements.currentTagId!==s.FRAMESET&&(e.insertionMode=T.AFTER_FRAMESET))}function pS(e,t){switch(t.tagID){case s.HTML:{Et(e,t);break}case s.NOFRAMES:{$t(e,t);break}}}function gS(e,t){t.tagID===s.HTML&&(e.insertionMode=T.AFTER_AFTER_FRAMESET)}function ES(e,t){t.tagID===s.HTML?Et(e,t):As(e,t)}function As(e,t){e.insertionMode=T.IN_BODY,Qs(e,t)}function bS(e,t){switch(t.tagID){case s.HTML:{Et(e,t);break}case s.NOFRAMES:{$t(e,t);break}}}function TS(e,t){t.chars=Qe,e._insertCharacters(t)}function SS(e,t){e._insertCharacters(t),e.framesetOk=!1}function Xd(e){for(;e.treeAdapter.getNamespaceURI(e.openElements.current)!==Q.HTML&&e.openElements.currentTagId!==void 0&&!e._isIntegrationPoint(e.openElements.currentTagId,e.o
214penElements.current);)e.openElements.pop()}function AS(e,t){if(Mb(t))Xd(e),e._startTagOutsideForeignContent(t);else{const r=e._getAdjustedCurrentElement(),a=e.treeAdapter.getNamespaceURI(r);a===Q.MATHML?Ld(t):a===Q.SVG&&(Ub(t),kd(t)),Ho(t),t.selfClosing?e._appendElement(t,a):e._insertElement(t,a),t.ackSelfClosing=!0}}function IS(e,t){if(t.tagID===s.P||t.tagID===s.BR){Xd(e),e._endTagOutsideForeignContent(t);return}for(let r=e.openElements.stackTop;r>0;r--){const a=e.openElements.items[r];if(e.treeAdapter.getNamespaceURI(a)===Q.HTML){e._endTagOutsideForeignContent(t);break}const n=e.treeAdapter.getTagName(a);if(n.toLowerCase()===t.tagName){t.tagName=n,e.openElements.shortenToLength(r);break}}}R.AREA,R.BASE,R.BASEFONT,R.BGSOUND,R.BR,R.COL,R.EMBED,R.FRAME,R.HR,R.IMG,R.INPUT,R.KEYGEN,R.LINK,R.META,R.PARAM,R.SOURCE,R.TRACK,R.WBR;function yS(e,t){return Md.parse(e,t)}function _S(e,t,r){typeof e=="string"&&(r=t,t=e,e=null);const a=Md.getFragmentParser(e,r);return a.tokenizer.write(t,!0),a.getFragment()}const CS={abandonedHeadElementChild:{reason:"Unexpected metadata element after head",description:"Unexpected element after head. Expected the element before `</head>`",url:!1},abruptClosingOfEmptyComment:{reason:"Unexpected abruptly closed empty comment",description:"Unexpected `>` or `->`. Expected `-->` to close comments"},abruptDoctypePublicIdentifier:{reason:"Unexpected abruptly closed public identifier",description:"Unexpected `>`. Expected a closing `\"` or `'` after the public identifier"},abruptDoctypeSystemIdentifier:{reason:"Unexpected abruptly closed system identifier",description:"Unexpected `>`. Expected a closing `\"` or `'` after the identifier identifier"},absenceOfDigitsInNumericCharacterReference:{reason:"Unexpected non-digit at start of numeric character reference",description:"Unexpected `%c`. Expected `[0-9]` for decimal references or `[0-9a-fA-F]` for hexadecimal references"},cdataInHtmlContent:{reason:"Unexpected CDATA section in HTML",description:"Unexpected `<![CDATA[` in HTML. Remove it, use a comment, or encode special characters instead"},characterReferenceOutsideUnicodeRange:{reason:"Unexpected too big numeric character reference",description:"Unexpectedly high character reference. Expected character references to be at most hexadecimal 10ffff (or decimal 1114111)"},closingOfElementWithOpenChildElements:{reason:"Unexpected closing tag with open child elements",description:"Unexpectedly closing tag. Expected other tags to be closed first",url:!1},controlCharacterInInputStream:{reason:"Unexpected control character",description:"Unexpected control character `%x`. Expected a non-control code point, 0x00, or ASCII whitespace"},controlCharacterReference:{reason:"Unexpected control character reference",description:"Unexpectedly control character in reference. Expected a non-control code point, 0x00, or ASCII whitespace"},disallowedContentInNoscriptInHead:{reason:"Disallowed content inside `<noscript>` in `<head>`",description:"Unexpected text character `%c`. Only use text in `<noscript>`s in `<body>`",url:!1},duplicateAttribute:{reason:"Unexpected duplicate attribute",description:"Unexpectedly double attribute. Expected attributes to occur only once"},endTagWithAttributes:{reason:"Unexpected attribute on closing tag",description:"Unexpected attribute. Expected `>` instead"},endTagWithTrailingSolidus:{reason:"Unexpected slash at end of closing tag",description:"Unexpected `%c-1`. Expected `>` instead"},endTagWithoutMatchingOpenElement:{reason:"Unexpected unopened end tag",description:"Unexpected end tag. Expected no end tag or another end tag",url:!1},eofBeforeTagName:{reason:"Unexpected end of file",description:"Unexpected end of file. Expected tag name instead"},eofInCdata:{reason:"Unexpected end of file in CDATA",description:"Unexpected end of file. Expected `]]>` to close the CDATA"},eofInComment:{reason:"Unexpected end of file in comment",description:"Unexpected end of file. Expected `-->` to close the comment"},eofInDoctype:{reason:"Unexpected end of file in doctype",description:"Unexpected end of file. Expected a valid doctype (such as `<!doctype html>`)"},eofInElementThatCanContainOnlyText:{reason:"Unexpected end of file in element that can only contain text",description:"Unexpected end of file. Expected text or a closing tag",url:!1},eofInScriptHtmlCommentLikeText:{reason:"Unexpected end of file in comment inside script",description:"Unexpected end of file. Expected `-->` to close the comment"},eofInTag:{reason:"Unexpected end of file in tag",description:"Unexpected end of file. Expected `>` to close the tag"},incorrectlyClosedComment:{reason:"Incorrectly closed comment",description:"Unexpected `%c-1`. Expected `-->` to close the comment"},incorrectlyOpenedComment:{reason:"Incorrectly opened comment",description:"Unexpected `%c`. Expected `<!--` to open the comment"},invalidCharacterSequenceAfterDoctypeName:{reason:"Invalid sequence after doctype name",description:"Unexpected sequence at `%c`. Expected `public` or `system`"},invalidFirstCharacterOfTagName:{reason:"Invalid first character in tag name",description:"Unexpected `%c`. Expected an ASCII letter instead"},misplacedDoctype:{reason:"Misplaced doctype",description:"Unexpected doctype. Expected doctype before head",url:!1},misplacedStartTagForHeadElement:{reason:"Misplaced `<head>` start tag",description:"Unexpected start tag `<head>`. Expected `<head>` directly after doctype",url:!1},missingAttributeValue:{reason:"Missing attribute value",description:"Unexpected `%c-1`. Expected an attribute value or no `%c-1` instead"},missingDoctype:{reason:"Missing doctype before other content",description:"Expected a `<!doctype html>` before anything else",url:!1},missingDoctypeName:{reason:"Missing doctype name",description:"Unexpected doctype end at `%c`. Expected `html` instead"},missingDoctypePublicIdentifier:{reason:"Missing public identifier in doctype",description:"Unexpected `%c`. Expected identifier for `public` instead"}
214,missingDoctypeSystemIdentifier:{reason:"Missing system identifier in doctype",description:'Unexpected `%c`. Expected identifier for `system` instead (suggested: `"about:legacy-compat"`)'},missingEndTagName:{reason:"Missing name in end tag",description:"Unexpected `%c`. Expected an ASCII letter instead"},missingQuoteBeforeDoctypePublicIdentifier:{reason:"Missing quote before public identifier in doctype",description:"Unexpected `%c`. Expected `\"` or `'` instead"},missingQuoteBeforeDoctypeSystemIdentifier:{reason:"Missing quote before system identifier in doctype",description:"Unexpected `%c`. Expected `\"` or `'` instead"},missingSemicolonAfterCharacterReference:{reason:"Missing semicolon after character reference",description:"Unexpected `%c`. Expected `;` instead"},missingWhitespaceAfterDoctypePublicKeyword:{reason:"Missing whitespace after public identifier in doctype",description:"Unexpected `%c`. Expected ASCII whitespace instead"},missingWhitespaceAfterDoctypeSystemKeyword:{reason:"Missing whitespace after system identifier in doctype",description:"Unexpected `%c`. Expected ASCII whitespace instead"},missingWhitespaceBeforeDoctypeName:{reason:"Missing whitespace before doctype name",description:"Unexpected `%c`. Expected ASCII whitespace instead"},missingWhitespaceBetweenAttributes:{reason:"Missing whitespace between attributes",description:"Unexpected `%c`. Expected ASCII whitespace instead"},missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers:{reason:"Missing whitespace between public and system identifiers in doctype",description:"Unexpected `%c`. Expected ASCII whitespace instead"},nestedComment:{reason:"Unexpected nested comment",description:"Unexpected `<!--`. Expected `-->`"},nestedNoscriptInHead:{reason:"Unexpected nested `<noscript>` in `<head>`",description:"Unexpected `<noscript>`. Expected a closing tag or a meta element",url:!1},nonConformingDoctype:{reason:"Unexpected non-conforming doctype declaration",description:'Expected `<!doctype html>` or `<!doctype html system "about:legacy-compat">`',url:!1},nonVoidHtmlElementStartTagWithTrailingSolidus:{reason:"Unexpected trailing slash on start tag of non-void element",description:"Unexpected `/`. Expected `>` instead"},noncharacterCharacterReference:{reason:"Unexpected noncharacter code point referenced by character reference",description:"Unexpected code point. Do not use noncharacters in HTML"},noncharacterInInputStream:{reason:"Unexpected noncharacter character",description:"Unexpected code point `%x`. Do not use noncharacters in HTML"},nullCharacterReference:{reason:"Unexpected NULL character referenced by character reference",description:"Unexpected code point. Do not use NULL characters in HTML"},openElementsLeftAfterEof:{reason:"Unexpected end of file",description:"Unexpected end of file. Expected closing tag instead",url:!1},surrogateCharacterReference:{reason:"Unexpected surrogate character referenced by character reference",description:"Unexpected code point. Do not use lone surrogate characters in HTML"},surrogateInInputStream:{reason:"Unexpected surrogate character",description:"Unexpected code point `%x`. Do not use lone surrogate characters in HTML"},unexpectedCharacterAfterDoctypeSystemIdentifier:{reason:"Invalid character after system identifier in doctype",description:"Unexpected character at `%c`. Expected `>`"},unexpectedCharacterInAttributeName:{reason:"Unexpected character in attribute name",description:"Unexpected `%c`. Expected whitespace, `/`, `>`, `=`, or probably an ASCII letter"},unexpectedCharacterInUnquotedAttributeValue:{reason:"Unexpected character in unquoted attribute value",description:"Unexpected `%c`. Quote the attribute value to include it"},unexpectedEqualsSignBeforeAttributeName:{reason:"Unexpected equals sign before attribute name",description:"Unexpected `%c`. Add an attribute name before it"},unexpectedNullCharacter:{reason:"Unexpected NULL character",description:"Unexpected code point `%x`. Do not use NULL characters in HTML"},unexpectedQuestionMarkInsteadOfTagName:{reason:"Unexpected question mark instead of tag name",description:"Unexpected `%c`. Expected an ASCII letter instead"},unexpectedSolidusInTag:{reason:"Unexpected slash in tag",description:"Unexpected `%c-1`. Expected it followed by `>` or in a quoted attribute value"},unknownNamedCharacterReference:{reason:"Unexpected unknown named character reference",description:"Unexpected character reference. Expected known named character references"}},wS="https://html.spec.whatwg.org/multipage/parsing.html#parse-error-",RS=/-[a-z]/g,NS=/%c(?:([-+])(\d+))?/g,PS=/%x/g,xS={2:!0,1:!1,
2140:null},OS={};function vS(e,t){const r=t||OS,a=r.onerror,n=e instanceof su?e:new su(e),i=r.fragment?_S:yS,o=String(n),c=i(o,{sourceCodeLocationInfo:!0,onParseError:r.onerror?f:null,scriptingEnabled:!1});return WE(c,{file:n,space:r.space,verbose:r.verbose});function f(d){const S=d.code,b=LS(S),w=r[b],v=w??!0,j=typeof v=="number"?v:v?1:0;if(j){const V=CS[b],Y=new Bh($(V.reason),{place:{start:{line:d.startLine,column:d.startCol,offset:d.startOffset},end:{line:d.endLine,column:d.endCol,offset:d.endOffset}},ruleId:S,source:"hast-util-from-html"});n.path&&(Y.file=n.path,Y.name=n.path+":"+Y.name),Y.fatal=xS[j],Y.note=$(V.description),Y.url=V.url===!1?void 0:wS+S,a(Y)}function $(V){return V.replace(NS,Y).replace(PS,q);function Y(K,Se,ee){const Z=(ee?Number.parseInt(ee,10):0)*(Se==="-"?-1:1),fe=o.charAt(d.startOffset+Z);return DS(fe)}function q(){return MS(o.charCodeAt(d.startOffset))}}}}function LS(e){return e.replace(RS,kS)}function kS(e){return e.charAt(1).toUpperCase()}function DS(e){return e==="`"?"` ` `":e}function MS(e){return"0x"+e.toString(16).toUpperCase()}const qi={maxMessages:200,maxMessageChars:2e4,maxMessageReferenceBytes:4*1024*1024},US=e=>typeof TextEncoder<"u"?new TextEncoder().encode(e).byteLength:Buffer.byteLength(e,"utf8"),mo=e=>!!e&&typeof e=="object"&&!Array.isArray(e),Jd=(e,t)=>Object.keys(e).every(r=>t.includes(r)),ul=e=>mo(e)&&Jd(e,["id","materialId","fileOrdinal","sectionId","sectionTitle","quote","startOffset","endOffset"])&&typeof e.id=="string"&&e.id.trim().length>0&&typeof e.materialId=="string"&&e.materialId.trim().length>0&&Number.isSafeInteger(e.fileOrdinal)&&e.fileOrdinal>=0&&typeof e.sectionId=="string"&&e.sectionId.trim().length>0&&typeof e.sectionTitle=="string"&&e.sectionTitle.trim().length>0&&typeof e.quote=="string"&&e.quote.length>0&&Number.isSafeInteger(e.startOffset)&&Number.isSafeInteger(e.endOffset)&&e.startOffset>=0&&e.endOffset>e.startOffset&&e.endOffset-e.startOffset===e.quote.length,ll=(e=Number.NaN,t=Number.POSITIVE_INFINITY,r=Number.NaN)=>({ok:!1,messageCount:e,maxMessageChars:t,jsonBytes:r,reason:"invalid_payload",code:"RESEARCH_CAPACITY_INVALID_PAYLOAD"});function BS(e,t=[]){try{const r=JSON.stringify({messages:e,references:t});return typeof r=="string"?US(r):Number.NaN}catch{return Number.NaN}}function FS(e,t=[]){try{const r=Array.isArray(e)&&Array.isArray(t),a=Array.isArray(e)?e.length:Number.NaN,n=Array.isArray(e)?e.reduce((S,b)=>Math.max(S,mo(b)&&typeof b.text=="string"?b.text.length:Number.POSITIVE_INFINITY),0):Number.POSITIVE_INFINITY,i=r?BS(e,t):Number.NaN,o=new Set,c=e.every(S=>!mo(S)||!Jd(S,["id","role","text","citations","createdAt"])||typeof S.id!="string"||S.id.trim().length===0||o.has(S.id)||S.role!=="user"&&S.role!=="assistant"||typeof S.text!="string"||S.text.trim().length===0||S.citations!==void 0&&(!Array.isArray(S.citations)||!S.citations.every(ul))||S.createdAt!==void 0&&typeof S.createdAt!="string"?!1:(o.add(S.id),!0));if(!r||!Number.isFinite(i)||!c||!t.every(ul))return ll(a,n,i);const d={ok:!0,messageCount:a,maxMessageChars:n,jsonBytes:i};return!Number.isSafeInteger(a)||a>qi.maxMessages?{...d,ok:!1,reason:"message_count",code:"RESEARCH_CAPACITY_EXCEEDED"}:n>qi.maxMessageChars?{...d,ok:!1,reason:"message_chars",code:"RESEARCH_CAPACITY_EXCEEDED"}:i>qi.maxMessageReferenceBytes?{...d,ok:!1,reason:"message_reference_bytes",code:"RESEARCH_CAPACITY_EXCEEDED"}:d}catch{return ll()}}const HS=2e4,jS=/^(?:abstract|summary|introduction|background|related work|literature review|method(?:ology)?|approach|model|experiment(?:s|al setup)?|evaluation|result(?:s)?|discussion|limitation(?:s)?|conclusion|references|appendix|æè¦|æ¦è¿°|å¼è¨|èæ¯|ç¸å ³å·¥ä½|æç®ç»¼è¿°|æ¹æ³|模å|å®éª|è¯ä¼°|ç»æ|讨论|å±é|ç»è®º|åèæç®|éå½)$/iu,VS=/^(?:references|bibliography|acknowledg(?:e)?ments?|declarations?|åèæç®|声æ|ä½è è´¡ç®|å©çå²çª|è´è°¢)$/iu,Pt=e=>!!e&&typeof e=="object"&&!Array.isArray(e),Nt=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),_n=(e,t)=>Object.keys(e).every(r=>t.includes(r)),Zd=e=>e.replace(/\r\n?/gu,` 215`),ho=e=>e.normalize("NFKC").replace(/<[^>]*>/gu,"").replace(/^#+\s*/u,"").replace(/\s+#+\s*$/u,"").replace(/[*_`~]/gu,"").replace(/\s+/gu," ").trim().slice(0,160),ef=e=>e.replace(/^(?:(?:\d+(?:[.ï¼]\d+)*)|(?:[IVXLCDM]+))[.)]?\s+/iu,"").trim(),GS=e=>jS.test(ef(e)),YS=e=>{var n;const t=e.trim();if(!t||t.length>180)return null;const r=/^(#{1,6})\s+(.+?)\s*#*$/u.exec(t);if(r){const i=ho(r[2]);return i?{title:i,level:r[1].length}:null}const a=/^(\d{1,2}(?:[.]\d{1,2}
215)*)[.)]?\s+(.+)$/u.exec(t);if(a){const i=ho(t);return i?{title:i,level:Math.min(6,(((n=a[1].match(/[.]/gu))==null?void 0:n.length)??0)+1)}:null}return null},zS=(e,t)=>{var d,S;const r=[],a=t.text.split(` 216`);let n=t.startOffset,i=0,o=null;for(;i<a.length;){const b=a[i],w=n,v=/^\s{0,3}(`{3,}|~{3,})/u.exec(b);if(o){const q=v&&v[1][0]===o.marker&&v[1].length>=o.length;n+=b.length+1,i+=1,q&&(o=null);continue}if(v){o={marker:v[1][0],length:v[1].length},n+=b.length+1,i+=1;continue}let j=YS(b),$=b.length+1,V=Math.min(t.endOffset,n+$);const Y=(d=a[i+1])==null?void 0:d.trim();if(!j&&Y&&/^(?:=+|-+)$/u.test(Y)&&b.trim()){const q=ho(b);q&&(j={title:q,level:Y[0]==="="?1:2},$+=(((S=a[i+1])==null?void 0:S.length)??0)+1,V=Math.min(t.endOffset,n+$),i+=1)}j&&r.push({...j,headingOffset:w,contentOffset:V,endOffset:t.endOffset}),n+=$,i+=1}r.length>0&&r[0].level===1&&!GS(r[0].title)&&r.shift(),r.forEach((b,w)=>{var v;b.endOffset=((v=r[w+1])==null?void 0:v.headingOffset)??t.endOffset});const c=r.filter(b=>b.contentOffset<b.endOffset&&t.text.slice(b.contentOffset-t.startOffset,b.endOffset-t.startOffset).trim().length>0&&!VS.test(ef(b.title)));return(c.length>0?c:[{title:"å ¨æ",level:1,headingOffset:t.startOffset,contentOffset:t.startOffset,endOffset:t.endOffset}]).map((b,w)=>({id:`research:${e}:file:${t.fileOrdinal}:section:${w+1}`,materialId:e,fileOrdinal:t.fileOrdinal,title:b.title,level:b.level,startOffset:b.contentOffset,endOffset:b.endOffset}))},WS=e=>{if(typeof e.materialId!="string"||!e.materialId.trim())throw new Error("Research material requires a non-empty materialId");if(!Array.isArray(e.files)||e.files.length===0)throw new Error("Research material requires at least one file");const t=new Set;e.files.forEach((r,a)=>{if(!r||typeof r.name!="string"||!r.name.trim())throw new Error(`Research material file ${a} has no name`);if(typeof r.text!="string"||Zd(r.text).trim().length===0)throw new Error(`Research material file ${a} has no text`);const n=r.fileOrdinal??a;if(!Number.isSafeInteger(n)||n<0||t.has(n))throw new Error(`Research material file ${a} has an invalid or duplicate fileOrdinal`);t.add(n)})},$S=e=>Object.freeze({...e,files:Object.freeze(e.files.map(t=>Object.freeze({...t}))),outline:Object.freeze(e.outline.map(t=>Object.freeze({...t})))});function qS(e){WS(e);let t=0;const r=e.files.map((i,o)=>{const c=Zd(i.text),f=t,d=f+c.length;return t=d+(o<e.files.length-1?1:0),{name:i.name,text:c,fileOrdinal:i.fileOrdinal??o,startOffset:f,endOffset:d}}),a=r.map(i=>i.text).join(` 217`),n=r.flatMap(i=>zS(e.materialId,i));return $S({materialId:e.materialId,files:r,fullText:a,outline:n})}const QS=(e,t)=>Array.isArray(e)&&Array.isArray(t)&&e.length===t.length&&e.every((r,a)=>{const n=t[a];return Pt(r)&&r.id===n.id&&r.materialId===n.materialId&&r.fileOrdinal===n.fileOrdinal&&r.title===n.title&&r.level===n.level&&r.startOffset===n.startOffset&&r.endOffset===n.endOffset}),KS=e=>{if(!Pt(e)||typeof e.materialId!="string"||!Array.isArray(e.files))return null;const t=[];for(const r of e.files){const a=Pt(r)?r.fileOrdinal:void 0;if(!Pt(r)||!_n(r,["name","text","fileOrdinal","startOffset","endOffset"])||typeof r.name!="string"||typeof r.text!="string"||!Number.isSafeInteger(a)||Nt(r,"startOffset")!==Nt(r,"endOffset"))return null;t.push({name:r.name,text:r.text,fileOrdinal:a})}return t};function Ln(e){var i,o;if(!Pt(e)||Nt(e,"version")&&e.version!==1)return null;const t=Nt(e,"version")?["version","materialId","files"]:["materialId","files","fullText","outline"];if(Nt(e,"version")&&(e.version!==1||!Nt(e,"materialId")||!Nt(e,"files"))||!_n(e,t))return null;const r=KS(e);if(!r)return null;let a;try{a=qS({materialId:e.materialId,files:r})}catch{return null}if(Nt(e,"fullText")&&(typeof e.fullText!="string"||e.fullText!==a.fullText)||Nt(e,"outline")&&(!Array.isArray(e.outline)||!e.outline.every(c=>Pt(c)&&_n(c,["id","materialId","fileOrdinal","title","level","startOffset","endOffset"]))||!QS(e.outline,a.outline)))return null;const n=e.files;for(let c=0;c<n.length;c+=1){const f=n[c];if(Pt(f)&&Nt(f,"startOffset")&&(f.startOffset!==((i=a.files[c])==null?void 0:i.startOffset)||f.endOffset!==((o=a.files[c])==null?void 0:o.endOffset)))return null}return a}const XS=e=>!Pt(e)||Nt(e,"version")||typeof e.fullText!="string"||!Array.isArray(e.outline)||!Array.isArray(e.files)||!e.files.every(t=>Pt(t)&&Nt(t,"startOffset")&&Nt(t,"endOffset")&&Number.isSafeInteger(t.startOffset)&&Number.isSafeInteger(t.endOffset))?!1:Ln(e)!==null,Zs=e=>XS(e)?Ln(e):null;function eI(e,t){const r=Zs(e);if(!r)return null;const a=t?r.outline.find(n=>n.id===t):r.outline[0];return a?{materialId:r.materialId,section:{...a},text:r.fullText.slice(a.startOffset,a.endOffset)}:null}function JS(e){const t=Zs(e);if(!t)throw new Error("Research material is not canonical");return{version:1,materialId:t.materialId,files:t.files.map(({name:r,text:a,fileOrdinal:n})=>({name:r,text:a,fileOrdinal:n}))}}const ZS=(e,t)=>e.files.find(r=>r.fileOrdinal===t),tf=e=>typeof e=="string"&&/^C\d{1,4}$/u.test(e)?e:"";function Yo(e,t){const r=Zs(t);if(!Pt(e)||!r||!_n(e,["id","materialId","fileOrdinal","sectionId","sectionTitle","quote","startOffset","endOffset"]))return null;const a=tf(e.id),n=e.materialId,i=e.fileOrdinal,o=e.sectionId,c=e.sectionTitle,f=e.quote,d=e.startOffset,S=e.endOffset;if(!a||n!==r.materialId||typeof o!="string"||typeof c!="string"||typeof f!="string"||f.length===0||f.length>HS||typeof i!="number"||typeof d!="number"||typeof S!="number"||!Number.isSafeInteger(i)||!Number.isSafeInteger(d)||!Number.isSafeInteger(S)||d<0||S<=d||S-d!==f.length)return null;const b=ZS(r,i),w=r.outline.find(v=>v.id===o);return!b||!w||w.materialId!==r.materialId||w.fileOrdinal!==i||w.title!==c||d<b.startOffset||S>b.endOffset||d<w.startOffset||S>w.endOffset||r.fullText.slice(d,S)!==f?null:{id:a,materialId:r.materialId,fileOrdinal:i,sectionId:o,sectionTitle:c,quote:f,startOffset:d,endOffset:S}}const e1=e=>Pt(e)&&_n(e,["id","materialId","fileOrdinal","sectionId","sectionTitle","quote","startOffset","endOffset"])&&!!tf(e.id)&&typeof e.materialId=="string"&&Number.isSafeInteger(e.fileOrdinal)&&typeof e.sectionId=="string"&&typeof e.sectionTitle=="string"&&typeof e.quote=="string"&&Number.isSafeInteger(e.startOffset)&&Number.isSafeInteger(e.endOffset)&&e.startOffset<e.endOffset&&e.endOffset-e.startOffset===e.quote.length;function rf(e,t,r){if(typeof e!="string"||!Array.isArray(t)||t.length===0||!Zs(r))return[];const a=new Map;for(const o of t){if(!Pt(o)||typeof o.id!="string")continue;const c=o.id;if(a.has(c))return[];const f=c.trim();if(t.some(S=>Pt(S)&&typeof S.id=="string"&&S.id.trim()===f&&S!==o))return[];if(!e1(o))continue;const d=Yo(o,r);d&&a.set(d.id,d)}const n=[],i=new Set;for(const o of e.matchAll(/[\[ã]([^\]ã]{1,80})[\]ã]/gu))for(const c of o[1].matchAll(/\bC\d{1,4}\b/gu)){const f=c[0],d=a.get(f);!d||i.has(f)||(i.add(f),n.push(d))}return n}const t1=e=>e.replace(/[ \t]*(?:\[C\d{1,4}\]|ãC\d{1,4}ã)/gu,"").replace(/\n{3,}/gu,` 218 219`).trim(),tI=t1,zo=(e,t=0)=>{var n,i,o,c;const r=(i=(n=e.position)==null?void 0:n.start)==null?void 0:i.offset,a=(c=(o=e.position)==null?void 0:o.end)==null?void 0:c.offset;return Number.isSafeInteger(r)&&Number.isSafeInteger(a)&&a>=r?{startOffset:t+r,endOffset:t+a}:null},bn=(e,t)=>({alt:"",url:"",title:null,html:!0,startOffset:e,endOffset:t}),af=e=>/<\s*img(?=[\s/>]|$)/iu.test(e),Wo=(e,t,r)=>e>=0&&e<t&&t<=r,r1=e=>{const t=[];let r=!1;try{const a=Pl().use(xl).use(Ol).parse(e);To(a,"html",n=>{const i=n;
219if(typeof i.value!="string")return;const o=zo(i);if(!o||!Wo(o.startOffset,o.endOffset,e.length)||e.slice(o.startOffset,o.endOffset)!==i.value){af(i.value)&&(r=!0);return}t.push({value:i.value,...o})})}catch{return null}return r?null:t},a1=e=>{const t=[];let r=!1,a=!1;const n=af(e.value);try{const i=vS(e.value,{fragment:!0,onerror:()=>{a=!0}});To(i,"element",o=>{var d,S,b;const c=o;if(String(c.tagName??"").toLowerCase()!=="img")return;const f=zo(c);if(!f||!Wo(f.startOffset,f.endOffset,e.value.length)){r=!0;return}t.push({alt:typeof((d=c.properties)==null?void 0:d.alt)=="string"?c.properties.alt:"",url:typeof((S=c.properties)==null?void 0:S.src)=="string"?c.properties.src:"",title:typeof((b=c.properties)==null?void 0:b.title)=="string"?c.properties.title:null,html:!0,startOffset:e.startOffset+f.startOffset,endOffset:e.startOffset+f.endOffset})})}catch{return n?[bn(e.startOffset,e.endOffset)]:[]}return(a||r)&&n?[bn(e.startOffset,e.endOffset)]:t};function rI(e){if(typeof e!="string")return[];const t=[];let r=!1;try{const n=Pl().use(xl).use(Ol).parse(e);if(To(n,"image",o=>{const c=o,f=zo(c);if(!f||!Wo(f.startOffset,f.endOffset,e.length)||typeof c.url!="string"){r=!0;return}t.push({alt:c.alt??"",url:c.url,title:c.title,html:!1,...f})}),r)return[bn(0,e.length)];const i=r1(e);if(i===null)return[bn(0,e.length)];for(const o of i)t.push(...a1(o))}catch{return[bn(0,e.length)]}const a=new Set;return t.sort((n,i)=>n.startOffset-i.startOffset||n.endOffset-i.endOffset).filter(n=>{const i=`${n.startOffset}:${n.endOffset}`;return a.has(i)?!1:(a.add(i),!0)})}const n1=48,dl=/[\r\n\u2028\u2029\u0000-\u001f\u007f`<>\[\]{}]|(?:system|developer|assistant|user)\s*[:ï¼]|(?:ç³»ç»|å¼åè
|婿|ç¨æ·)\s*[:ï¼]|ignore\s+(?:all\s+)?(?:previous|prior|above)\s+(?:instructions?|rules?)|忽ç¥(?:以ä¸|ä¹å|ææ)?(?:æä»¤|è§å|æç¤º)/iu;function s1(e){if(typeof e!="string"||dl.test(e))return"";const t=e.normalize("NFKC").replace(/\s+/gu," ").trim();return!t||dl.test(t)?"":Array.from(t).slice(0,n1).join("")}const i1=1,o1=16*1024,Us=120,nf=80,$o=240,qo=80,sf=80,c1=["version","title","category","preview","character","background","outputLanguage","narrativeStyle","playerAddress"],u1=["kind","id","skinId","name","reference"],l1=["kind","id"],d1=["kind","dbId"],f1=["kind","id","name"],m1=new Set(["title","category","preview","character","background","outputLanguage","narrativeStyle","playerAddress"]),h1=/^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$/u,p1=/[\u0000-\u001f\u007f\u2028\u2029]/u,g1=e=>!!e&&typeof e=="object"&&!Array.isArray(e),Tn=(e,t)=>Object.keys(e).every(r=>t.includes(r)),Br=(e,t,r,a=!1)=>{if(typeof e!="string")throw gt(`ç ç©¶${r}æ æã`);const n=e.normalize("NFKC").replace(/[ \t\r\n]+/gu," ").trim();if(a&&!n||n.length>t||p1.test(n))throw gt(`ç ç©¶${r}æ æã`);return n},Bs=(e,t,r)=>e==null||e===""?null:Br(e,t,r),Sa=(e,t)=>{const r=Br(e,128,t,!0);if(!h1.test(r))throw gt(`ç ç©¶${t}æ æã`);return r},gt=e=>Object.assign(new Error(e),{code:"RESEARCH_METADATA_INVALID",httpStatus:400}),Cn=(e,t="ç ç©¶å
æ°æ®æ æã")=>{if(!g1(e))throw gt(t);return e},of=e=>{const t=Cn(e,"ç ç©¶è§è²æ æã");if(!Tn(t,u1)||t.kind!=="default"&&t.kind!=="cloud")throw gt("ç ç©¶è§è²æ æã");const r=t.kind==="default"?Sa(t.id,"è§è²æ è¯").toUpperCase():Sa(t.id,"è§è²æ è¯"),a=t.skinId==null||t.skinId===""?"base":Sa(t.skinId,"ç®è¤æ è¯"),n=Br(t.name,qo,"è§è²åç§°",!0),i=Cn(t.reference,"ç ç©¶è§è²å¼ç¨æ æã");if(t.kind==="default"){if(!Tn(i,l1)||i.kind!=="default"||String(i.id||"").trim().toUpperCase()!==r)throw gt("ç ç©¶è§è²å¼ç¨æ æã")}else if(!Tn(i,d1)||i.kind!=="cloud"||i.dbId!==t.id)throw gt("ç ç©¶è§è²å¼ç¨æ æã");return{kind:t.kind,id:r,skinId:a,name:n,reference:t.kind==="default"?{kind:"default",id:r}:{kind:"cloud",dbId:Sa(i.dbId,"è§è²å¼ç¨")}}},cf=e=>{const t=Cn(e,"ç ç©¶èæ¯æ æã");if(!Tn(t,f1)||t.kind!=="preset"&&t.kind!=="custom")throw gt("ç ç©¶èæ¯æ æã");return{kind:t.kind,id:t.kind==="preset"?Sa(t.id,"èæ¯æ è¯").toLowerCase():Sa(t.id,"èæ¯æ è¯"),name:Br(t.name,qo,"èæ¯åç§°",!0)}},E1=e=>{const t=JSON.stringify(e);if((typeof TextEncoder=="function"?new TextEncoder().encode(t).byteLength:unescape(encodeURIComponent(t)).length)>o1)throw gt("ç ç©¶å
æ°æ®è¿å¤§ã");return e};
219function Dr(e,t={}){const r=Cn(e);if(!Tn(r,c1)||r.version!==i1)throw gt("ç ç©¶å
æ°æ®çæ¬æåæ®µæ æã");const a=ad(r.outputLanguage);if(!a)throw gt("ç ç©¶è¾åºè¯è¨æ æã");const n=Bs(r.playerAddress,sf,"ç§°å¼"),i=n==null?null:s1(n);if(n!=null&&!i)throw gt("ç ç©¶ç§°å¼æ æã");const o={version:1,title:Br(r.title,Us,"æ é¢",!0),category:Bs(r.category,nf,"åç±»"),preview:Br(r.preview,$o,"æè¦"),character:of(r.character),background:cf(r.background),outputLanguage:a,narrativeStyle:r.narrativeStyle==="lighthearted"?"lighthearted":r.narrativeStyle==="classic"?"classic":(()=>{throw gt("ç ç©¶åäºé£æ ¼æ æã")})(),playerAddress:i};return E1(o)}function b1(e){const t=Cn(e,"ç ç©¶å
æ°æ®æ´æ°è½½è·æ æã");if(Object.keys(t).length===0||Object.keys(t).some(a=>!m1.has(a)))throw gt("ç ç©¶å
æ°æ®æ´æ°åæ®µæ æã");const r={};if(Object.prototype.hasOwnProperty.call(t,"title")&&(r.title=Br(t.title,Us,"æ é¢",!0)),Object.prototype.hasOwnProperty.call(t,"category")&&(r.category=Bs(t.category,nf,"åç±»")),Object.prototype.hasOwnProperty.call(t,"preview")&&(r.preview=Br(t.preview,$o,"æè¦")),Object.prototype.hasOwnProperty.call(t,"character")&&(r.character=of(t.character)),Object.prototype.hasOwnProperty.call(t,"background")&&(r.background=cf(t.background)),Object.prototype.hasOwnProperty.call(t,"outputLanguage")){const a=ad(t.outputLanguage);if(!a)throw gt("ç ç©¶è¾åºè¯è¨æ æã");r.outputLanguage=a}if(Object.prototype.hasOwnProperty.call(t,"narrativeStyle")){if(t.narrativeStyle!=="classic"&&t.narrativeStyle!=="lighthearted")throw gt("ç ç©¶åäºé£æ ¼æ æã");r.narrativeStyle=t.narrativeStyle}return Object.prototype.hasOwnProperty.call(t,"playerAddress")&&(r.playerAddress=Bs(t.playerAddress,sf,"ç§°å¼")),r}const uf=e=>(String((e==null?void 0:e.fullText)||"").split(/\r?\n/u).map(r=>r.replace(/^\s*#+\s*/u,"").trim()).find(Boolean)||"").slice(0,$o).trim(),T1=e=>{var a,n;return(String(((n=(a=e==null?void 0:e.files)==null?void 0:a[0])==null?void 0:n.name)||"").split(/[\\/]/u).pop()||"").replace(/\.[A-Za-z0-9]{1,12}$/u,"").trim().slice(0,Us).trim()||uf(e).slice(0,Us)||"Research notes"},S1=()=>({kind:"default",id:"UNKNOWN",skinId:"base",name:"Unknown character",reference:{kind:"default",id:"UNKNOWN"}}),A1=()=>{const e=Pr.find(t=>t.id==="library")||Pr[0];return{kind:"preset",id:String((e==null?void 0:e.id)||"library"),name:String((e==null?void 0:e.name)||"Library").slice(0,qo)}};function Qo(e={},t={}){return Dr({version:1,title:t.title||T1(e),category:t.category??null,preview:t.preview??uf(e),character:t.character||S1(),background:t.background||A1(),outputLanguage:t.outputLanguage||"en",narrativeStyle:t.narrativeStyle||"classic",playerAddress:t.playerAddress??null})}const I1=128,po=2e4,y1=2*1024*1024,_1=/^[A-Za-z0-9][A-Za-z0-9._:-]*$/u,wn=/^p2g-document-image:\/\/([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})\/(\d+)$/iu,Fs=/^research-session-[0-9a-f-]{36}$/iu,go=/^research-task-[0-9a-f-]{36}$/iu,C1=/^[A-Za-z0-9][A-Za-z0-9_.:-]{0,127}$/u,w1=new Set(["message_count","message_chars","message_reference_bytes","invalid_payload"]),R1=new Set(["actual_image","data_chart","architecture_diagram"]),N1=e=>e instanceof ae&&e.status===0&&e.code==="RESEARCH_NETWORK_ERROR";class ae extends Error{constructor(t,r,a,n="ç 究请æ±å¤±è´¥ã"){super(n),this.name="ResearchHttpError",this.code=t,this.status=r,this.kind=a}}const Xe=e=>!!e&&typeof e=="object"&&!Array.isArray(e),rr=e=>typeof e=="string"?e.trim():"",P1=e=>`${e.ownerId}\0${e.sessionId}\0${e.epoch}`,lf=e=>{if(!e||!rr(e.ownerId)||!Number.isSafeInteger(e.epoch)||e.epoch<0)throw new ae("RESEARCH_REQUEST_INVALID",400,"request","ç ç©¶è´¦æ·èº«ä»½æ æã")},df=e=>{if(lf(e),!rr(e.sessionId)||!Fs.test(e.sessionId))throw new ae("RESEARCH_REQUEST_INVALID",400,"request","ç ç©¶ä¼è¯èº«ä»½æ æã")},dn=e=>{const t=rr(e);if(!t||t.length>I1||!_1.test(t))throw new ae("RESEARCH_OPERATION_INVALID",400,"request","ç ç©¶æä½èº«ä»½æ æã");return t},er=e=>encodeURIComponent(e),ff=(e,t,r)=>`/api/research/sessions/${er(e)}/assets/${er(t)}/${r}`,x1=(e,t)=>Array.isArray(e)&&Array.isArray(t)&&e.length===t.length&&e.every((r,a)=>{const n=t[a];return r.id===n.id&&r.materialId===n.materialId&&r.fileOrdinal===n.fileOrdinal&&r.title===n.title&&r.level===n.level&&r.startOffset===n.startOffset&&r.endOffset===n.endOffset}),Eo=(e,t,r)=>{if(!Xe(e)||e.role!=="user"&&e.role!=="assistant"||!rr(e.id)||r.has(String(e.id))||typeof e.text!="string"||!e.text.trim())throw new ae("RESEARCH_RESPONSE_INVALID",502,"invali
219d_response","ç ç©¶ååºæ ¼å¼æ æã");const a=String(e.id);if(r.add(a),e.createdAt!==void 0&&typeof e.createdAt!="string")throw new ae("RESEARCH_RESPONSE_INVALID",502,"invalid_response","ç ç©¶ååºæ ¼å¼æ æã");const n=Object.prototype.hasOwnProperty.call(e,"citations");if(e.role==="user"&&n)throw new ae("RESEARCH_RESPONSE_INVALID",502,"invalid_response","ç ç©¶ååºæ ¼å¼æ æã");const i=e.role==="assistant"?(()=>{if(!n)return[];if(!Array.isArray(e.citations))throw new ae("RESEARCH_RESPONSE_INVALID",502,"invalid_response","ç ç©¶ååºæ ¼å¼æ æã");const o=new Set,c=e.citations.map(f=>Yo(f,t));if(c.some(f=>!f||o.has(f.id)))throw new ae("RESEARCH_RESPONSE_INVALID",502,"invalid_response","ç ç©¶ååºæ ¼å¼æ æã");return c.forEach(f=>o.add(f.id)),rf(e.text,c,t)})():[];return{id:a,role:e.role,text:e.text,...i.length>0?{citations:i}:n?{citations:[]}:{},...typeof e.createdAt=="string"?{createdAt:e.createdAt}:{}}},O1=(e,t,r)=>{if(!Xe(e)||e.materialId!==t.materialId||!rr(e.runId)||!Number.isSafeInteger(e.index)||Number(e.index)<1||!Number.isSafeInteger(e.fileOrdinal)||!t.files.some(n=>n.fileOrdinal===e.fileOrdinal)||typeof e.reference!="string"||!wn.test(e.reference)||!R1.has(String(e.type))||typeof e.description!="string"||e.description.length>300)throw new ae("RESEARCH_RESPONSE_INVALID",502,"invalid_response","ç ç©¶å¾çååºæ ¼å¼æ æã");const a=wn.exec(e.reference);if(!a||a[1].toLowerCase()!==String(e.runId).toLowerCase()||Number(a[2])!==e.index)throw new ae("RESEARCH_RESPONSE_INVALID",502,"invalid_response","ç ç©¶å¾çååºæ ¼å¼æ æã");if(e.url!==void 0&&e.url!==ff(r,String(e.runId),e.index))throw new ae("RESEARCH_RESPONSE_INVALID",502,"invalid_response","ç ç©¶å¾çååºæ ¼å¼æ æã");return{materialId:t.materialId,fileOrdinal:e.fileOrdinal,runId:String(e.runId),index:e.index,reference:e.reference,type:e.type,description:e.description}},Ko=(e,t)=>{try{return e==null?Qo(t):Dr(e,{material:t})}catch{throw new ae("RESEARCH_RESPONSE_INVALID",502,"invalid_response","ç ç©¶å
æ°æ®ååºæ ¼å¼æ æã")}},v1=(e,t,r)=>{if(!Xe(e))throw new ae("RESEARCH_RESPONSE_INVALID",502,"invalid_response","ç ç©¶ä¼è¯ååºæ ¼å¼æ æã");const a=["id","sessionId","materialId","revision","presentation"];if(Object.keys(e).some(i=>!a.includes(i)))throw new ae("RESEARCH_RESPONSE_INVALID",502,"invalid_response","ç ç©¶ä¼è¯ååºæ ¼å¼æ æã");const n=e.id??e.sessionId;if(n!==void 0&&n!==r||e.sessionId!==void 0&&e.sessionId!==r)throw new ae("RESEARCH_RESPONSE_INVALID",502,"invalid_response","ç ç©¶ä¼è¯ååºèº«ä»½æ ¡éªå¤±è´¥ã");if(e.materialId!==void 0&&e.materialId!==t.materialId)throw new ae("RESEARCH_RESPONSE_INVALID",502,"invalid_response","ç ç©¶ä¼è¯ååºèº«ä»½æ ¡éªå¤±è´¥ã");if(e.revision!==void 0&&(!Number.isSafeInteger(e.revision)||Number(e.revision)<0))throw new ae("RESEARCH_RESPONSE_INVALID",502,"invalid_response","ç ç©¶çæ¬ååºæ ¼å¼æ æã");return{...typeof n=="string"?{id:n}:{},...typeof e.sessionId=="string"?{sessionId:e.sessionId}:{},...typeof e.materialId=="string"?{materialId:e.materialId}:{},...Number.isSafeInteger(e.revision)?{revision:e.revision}:{},...e.presentation!==void 0?{presentation:Ko(e.presentation,t)}:{}}},L1=(e,t)=>{if(df(t),!Xe(e)||e.sessionId!==t.sessionId||typeof e.materialId!="string"||!Number.isSafeInteger(e.revision)||Number(e.revision)<0||!Array.isArray(e.messages)||e.metadataMissing!==void 0&&typeof e.metadataMissing!="boolean")throw new ae("RESEARCH_RESPONSE_INVALID",502,"invalid_response","ç ç©¶ä¼è¯ååºæ ¼å¼æ æã");const r=e.material,a=Ln(r);if(!a||a.materialId!==e.materialId||e.fullText!==a.fullText||!x1(e.outline,a.outline))throw new ae("RESEARCH_RESPONSE_INVALID",502,"invalid_response","ç ç©¶ææååºæ ¡éªå¤±è´¥ã");if(e.selectedSectionId!==void 0&&e.selectedSectionId!==null&&(typeof e.selectedSectionId!="string"||!a.outline.some(b=>b.id===e.selectedSectionId)))throw new ae("RESEARCH_RESPONSE_INVALID",502,"invalid_response","ç ç©¶ç« èååºæ ¡éªå¤±è´¥ã");const n=new Set,i=e.messages.map(b=>Eo(b,a,n));if(typeof e.boardContent<"u"&&(typeof e.boardContent!="string"||e.boardContent.length>
219po))throw new ae("RESEARCH_RESPONSE_INVALID",502,"invalid_response","ç ç©¶é»æ¿ååºæ ¼å¼æ æã");const o=e.images===void 0?[]:e.images;if(!Array.isArray(o))throw new ae("RESEARCH_RESPONSE_INVALID",502,"invalid_response","ç ç©¶å¾çååºæ ¼å¼æ æã");let c;if(e.latestTurn!==void 0)if(e.latestTurn===null)c=null;else{if(!Xe(e.latestTurn)||typeof e.latestTurn.operationId!="string"||!Array.isArray(e.latestTurn.imageReferences)||e.latestTurn.imageReferences.some(b=>typeof b!="string"||!wn.test(b))||typeof e.latestTurn.boardContent!="string"||e.latestTurn.boardContent.length>po)throw new ae("RESEARCH_RESPONSE_INVALID",502,"invalid_response","ç ç©¶å½ååçæå½±æ ¼å¼æ æã");c={operationId:e.latestTurn.operationId,boardContent:e.latestTurn.boardContent,imageReferences:[...new Set(e.latestTurn.imageReferences)]}}const f=o.map(b=>O1(b,a,t.sessionId)),d=new Set;if(f.some(b=>d.has(b.reference))||f.some(b=>(d.add(b.reference),!1)))throw new ae("RESEARCH_RESPONSE_INVALID",502,"invalid_response","ç ç©¶å¾çååºæ ¼å¼æ æã");const S=e.metadataMissing===!0||e.presentation==null;return{ownerId:t.ownerId,sessionId:t.sessionId,revision:e.revision,metadataMissing:S,presentation:Ko(e.presentation,a),...c===void 0?{}:{latestTurn:c},material:a,...typeof e.selectedSectionId=="string"?{selectedSectionId:e.selectedSectionId}:{},messages:i,boardContent:typeof e.boardContent=="string"?e.boardContent:"",images:f.map(b=>({...b,url:""}))}},gs=(e,t)=>{if(!Xe(e)||typeof e.taskId!="string"||!go.test(e.taskId)||typeof e.operationId!="string"||!rr(e.operationId)||!Number.isSafeInteger(e.revision)||Number(e.revision)<0||e.state!=="preparing"&&e.state!=="ready"&&e.state!=="failed"&&e.state!=="cancelled")throw new ae("RESEARCH_RESPONSE_INVALID",502,"invalid_response","ç ç©¶åå¤ååºæ ¼å¼æ æã");const r=dn(e.operationId);if(t&&r!==t)throw new ae("RESEARCH_RESPONSE_INVALID",502,"invalid_response","ç ç©¶æä½èº«ä»½æ ¡éªå¤±è´¥ã");if(e.state==="ready"&&(typeof e.sessionId!="string"||!Fs.test(e.sessionId)))throw new ae("RESEARCH_RESPONSE_INVALID",502,"invalid_response","ç ç©¶åå¤ååºæ ¼å¼æ æã");if(e.sessionId!==void 0&&(typeof e.sessionId!="string"||!Fs.test(e.sessionId)))throw new ae("RESEARCH_RESPONSE_INVALID",502,"invalid_response","ç ç©¶åå¤ååºæ ¼å¼æ æã");if(e.terminalCode!==void 0&&(typeof e.terminalCode!="string"||!rr(e.terminalCode)))throw new ae("RESEARCH_RESPONSE_INVALID",502,"invalid_response","ç ç©¶åå¤ååºæ ¼å¼æ æã");if(e.presentation!==void 0&&e.presentation!==null&&(()=>{try{return Dr(e.presentation),!1}catch{return!0}})())throw new ae("RESEARCH_RESPONSE_INVALID",502,"invalid_response","ç ç©¶åå¤ååºæ ¼å¼æ æã");if(e.pollAfterMs!==void 0&&(!Number.isSafeInteger(e.pollAfterMs)||e.pollAfterMs<0))throw new ae("RESEARCH_RESPONSE_INVALID",502,"invalid_response","ç ç©¶åå¤ååºæ ¼å¼æ æã");return{taskId:e.taskId,operationId:r,revision:e.revision,state:e.state,...typeof e.sessionId=="string"?{sessionId:e.sessionId}:{},...typeof e.terminalCode=="string"?{terminalCode:e.terminalCode}:{},...typeof e.pollAfterMs=="number"?{pollAfterMs:e.pollAfterMs}:{},...e.presentation!==void 0?{presentation:e.presentation===null?null:Dr(e.presentation)}:{}}},fl=e=>`${e.ownerId}\0${e.epoch}`,ml=(e,t)=>e===401||t==="AUTH_REQUIRED"?"auth":e===404?"not_found":e===409&&t==="RESEARCH_SESSION_STALE_REVISION"?"stale_revision":t==="RESEARCH_CAPACITY_EXCEEDED"?"capacity":e===429||t==="STORY_QUESTION_LIMIT_REACHED"?"quota":e===202||t==="RESEARCH_ASK_PENDING"||t==="RESEARCH_ASK_SAVE_PENDING"?"pending":"request",hl=(e,t)=>typeof e=="string"&&C1.test(e)?e:t,pl=(e,t)=>e==="RESEARCH_METADATA_REFERENCE_NOT_FOUND"?"ç ç©¶è§è²æèæ¯å·²ä¸å¯ç¨ã":e==="RESEARCH_METADATA_UNAVAILABLE"?"ç ç©¶å
æ°æ®æä¸å¯ç¨ã":t==="auth"?"éè¦ç»å½ã":t==="not_found"?"ç ç©¶ä¼è¯ä¸åå¨ã":t==="quota"?"ç ç©¶é®ç次æ°å·²è¾¾ä¸éã":t==="capacity"?"ç ç©¶ä¼è¯å®¹é已达ä¸éã":t==="pending"?"ç ç©¶æä½ä»å¨æå¡ç«¯å¤çä¸ã":e==="RESEARCH_SESSION_STALE_REVISION"?"ç ç©¶ä¼è¯çæ¬å·²ååã":e==="RESEARCH_METADATA_INVALID"?"ç ç©¶å
æ°æ®æ æã":e==="RESEARCH_OFFLINE_MUTATION_DISABLED"?"离线ç ç©¶ä¼è¯ä¸ºåªè¯»ã":e==="RESEARCH_SESSION_MATERIAL_INVALID"?"æææ ¡éªå¤±è´¥ï¼è¯·è系管çåã":e==="RESEARCH_PRIVATE_STORAGE_NOT_CONFIGURED"?"æå¡å¨æªé
ç½®ç§æç ç©¶åå¨ï¼è¯·è系管çåã":e==="RESEARCH_PRIVATE_STORAGE_CONFIG_INVALID"?"æå¡å¨ç§æç ç©¶åå¨é
ç½®æ æï¼è¯·è系管çåã":e==="RESEARCH_PRIVATE_STORAGE_PUBLIC_CONFIG"?"æå¡å¨ç§æç ç©¶åå¨é
ç½®ä¸å®å
¨ï¼è¯·è系管çåã":e==="RESEARCH_PRIVATE_STORAGE_BUCKET_COLLISION"?"æå¡å¨ç§æç ç©¶åå¨ä¸å
Œ
±åå¨å²çªï¼è¯·è系管çåã":e==="RESEARCH_SOURCE_STORAGE_FAILED"?"ç ç©¶ç§æå
219卿æ¶ä¸å¯ç¨ï¼è¯·ç¨åéè¯æè系管çåã":e==="RESEARCH_PRIVATE_OBJECT_TOO_LARGE"?"ç ç©¶èµäº§è¶
åºæå¡å¨åå¨éå¶ï¼è¯·è系管çåã":e==="RESEARCH_PRIVATE_OBJECT_TRUNCATED"?"ç ç©¶èµäº§æ°æ®ä¸å®æ´ï¼è¯·è系管çåã":e==="RESEARCH_PRIVATE_OBJECT_NOT_STREAMABLE"?"ç ç©¶èµäº§æ°æ®æ æ³è¯»åï¼è¯·è系管çåã":e==="RESEARCH_SCHEMA_NOT_READY"?"ç ç©¶æå¡å°æªå®ææ°æ®åºç»æé¨ç½²ï¼è¯·è系管çåã":"ç 究请æ±å¤±è´¥ã",k1=async e=>{try{return await e.json()}catch{return null}};function D1({tokenReader:e,fetcher:t,offlineStore:r}){if(typeof e!="function")throw new Error("research HTTP gateway requires a token reader");const a=t??((_,m)=>st(_,m));let n="",i="",o=0,c=0,f=!1;const d=new Set,S=new Map,b=new Map,w=new Map,v=new Map,j=new Map,$=new Map,V=()=>{for(const _ of d)try{URL.revokeObjectURL(_)}catch{}d.clear(),S.clear(),b.clear()},Y=_=>{if(lf(_),f)throw new ae("RESEARCH_GATEWAY_DISPOSED",410,"request","ç ç©¶ä¼è¯å·²å
³éã");const m=fl(_);return i!==m&&(V(),w.clear(),v.clear(),j.clear(),$.clear(),n="",i=m,o+=1),{scope:m,generation:o}},q=_=>{if(df(_),f)throw new ae("RESEARCH_GATEWAY_DISPOSED",410,"request","ç ç©¶ä¼è¯å·²å
³éã");const m=P1(_),P=fl(_);return(i!==P||n!==m)&&(V(),w.clear(),v.clear(),j.clear(),$.clear(),i=P,n=m,o+=1),{scope:m,generation:o}},K=(_,m)=>{if(f||n!==_||o!==m)throw new ae("RESEARCH_SCOPE_CHANGED",409,"request","ç ç©¶ä¼è¯ä¸ä¸æå·²ååã")},Se=(_,m)=>{if(f||i!==_||o!==m)throw new ae("RESEARCH_SCOPE_CHANGED",409,"request","ç ç©¶ä¼è¯ä¸ä¸æå·²ååã")},ee=_=>{const m=e();if(typeof m!="string"||!m.trim())throw new ae("AUTH_REQUIRED",401,"auth","éè¦ç»å½ã");return{..._?{"Content-Type":_}:{},Authorization:`Bearer ${m.trim()}`}},Z=async(_,m,P,O=!0)=>{if(!P||typeof P.aborted!="boolean")throw new ae("RESEARCH_REQUEST_INVALID",400,"request","ç 究请æ±ä¿¡å·æ æã");let k;try{k=await a(_,{...m,signal:P})}catch(N){throw P.aborted?N:new ae("RESEARCH_NETWORK_ERROR",0,"request","ç ç©¶ç½ç»è¯·æ±å¤±è´¥ã")}const A=O?await k1(k):null;return{response:k,body:A}},fe=(_,m)=>{if(_.ok)return;const P=hl(Xe(m)?m.code:void 0,_.status===401?"AUTH_REQUIRED":"RESEARCH_REQUEST_FAILED"),O=ml(_.status,P);throw new ae(P,_.status,O,pl(P,O))},ne=async(_,m,P,O,k,A)=>{var te;const{response:N,body:M}=await Z(ff(_.sessionId,m.runId,m.index),{method:"GET",headers:ee()},P,!1);if(O!==void 0&&k!==void 0&&K(O,k),!N.ok){if(N.status===404)return null;fe(N,M)}const F=await N.blob();if(O!==void 0&&k!==void 0&&K(O,k),!F||F.size<=0||F.size>y1||!String(F.type||"").toLowerCase().startsWith("image/")||typeof URL>"u"||typeof URL.createObjectURL!="function")return null;const G=URL.createObjectURL(F);if(d.add(G),b.set(`${_.ownerId}\0${_.sessionId}\0${m.reference}`,F),A!==void 0&&(!O||!k||n===O)&&((te=S.get(A))==null||te.add(G)),O!==void 0&&k!==void 0&&(n!==O||o!==k)||A!==void 0&&c!==A){try{URL.revokeObjectURL(G)}catch{}throw d.delete(G),new ae("RESEARCH_SCOPE_CHANGED",409,"request","ç ç©¶ä¼è¯ä¸ä¸æå·²ååã")}return{...m,url:G}},Pe=async(_,m,P,O,k,A)=>(await Promise.all(m.map(async M=>{try{return await ne(_,M,P,O,k,A)}catch(F){if(F instanceof ae&&F.code==="RESEARCH_SCOPE_CHANGED"||F instanceof DOMException&&F.name==="AbortError")throw F;return null}}))).filter(M=>M!==null),Ee=async _=>{if(!(!r||_.offline||!await r.acknowledge(_)))for(const P of _.images??[]){const O=b.get(`${_.ownerId}\0${_.sessionId}\0${P.reference}`);O&&await r.putAsset({ownerId:_.ownerId,sessionId:_.sessionId,reference:P.reference,blob:O})}},ye=async _=>{if(!r)return;if(!await r.clearSession({ownerId:_.ownerId,sessionId:_.sessionId}))throw new ae("RESEARCH_OFFLINE_DELETE_FAILED",503,"request","ç ç©¶ä¼è¯å·²ä»æå¡ç«¯å é¤ï¼ä½æ¬æºç¼åå é¤å¤±è´¥ï¼æ æ³ä¿è¯éå¯åä¸ä¼æ¢å¤ã")},_e=async(_,m,P,O)=>{if(!r)return null;const k=await r.read(_);if(K(m,P),!k)return null;const A=await Promise.all(k.images.map(async M=>{var te;const F=await r.readAsset({..._,reference:M.reference});if(!F||typeof URL>"u"||typeof URL.createObjectURL!="function")return null;const G=URL.createObjectURL(F);return d.add(G),(te=S.get(O))==null||te.add(G),{...M,url:G}}));K(m,P);const N={ownerId:k.ownerId,sessionId:k.sessionId,revision:k.revision,material:k.material,selectedSectionId:k.selectedSectionId,presentation:k.presentation,metadataMissing:k.metadataMissing,messages:k.messages,boardContent:k.boardContent,images:A.filter(M=>M!==null),offline:!0};return v.set(m,N),N},be=async _=>{var Ie;const m=q(_),P=++c;S.set(P,new Set);const O=`/api/research/sessions/${er(_.sessionId)}`;let k;try{k=await Z(O,{method:"GET",headers:ee()},_.signal)}catch(ve){if(!N1(ve)||_.signal.aborted)throw ve;const it=await _e(_,m.scope,m.generation,P);if(S.delete(P),it)return it;throw ve}const{response:A,body:N}=k;if(K(m.scope,m.generation),A.status===404)return V(),w.clear(),v.delete(m.scope),j.delete(m.scope),$.delete(m.scope),S.delete(P),await ye(_),null;fe(A,N);const M=L1(N,_);K(m.scope,m.generation);const F=v.get(m.scope);if(F&&F.revision>M.revision)return S.delete(P),F;V(),w.clear();const G=((Ie=M.images)==null?void 0:Ie.map(({url:ve,...it})=>it))??[];G.forEach(ve=>w.set(ve.reference,ve));let te;try{te=await Pe(_,G,_.signal,m.scope,m.generation,P)}catch(ve){throw V(),S.delete(P),ve}if(c!==P)throw V(),S.delete(P),new ae("RESEARCH_SCOPE_CHANGED",409,"request","ç ç©¶ä¼è¯ä¸ä¸æå·²ååã");S.delete(P);const ie={...M,images:te};return v.set(m.scope,ie),j.set(m.scope,M.revision),$.set(m.scope,M.revision),Ee(ie),ie},se=async _=>{const m=q(_);if(!Number.isSafeInteger(_.expectedRevision)||_.expectedRevision<0||typeof _.selectedSectionId!="string"||!_.selectedSectionId.trim())throw new ae("RESEARCH_POSITION_INVA
219LID",400,"request","ç ç©¶ç« èä½ç½®æ æã");const{response:P,body:O}=await Z(`/api/research/sessions/${er(_.sessionId)}/position`,{method:"PATCH",headers:ee("application/json"),body:JSON.stringify({expectedRevision:_.expectedRevision,selectedSectionId:_.selectedSectionId})},_.signal);if(K(m.scope,m.generation),fe(P,O),!Xe(O)||!Number.isSafeInteger(O.revision)||Number(O.revision)<0||O.revision!==_.expectedRevision+1)throw new ae("RESEARCH_RESPONSE_INVALID",502,"invalid_response","ç ç©¶çæ¬ååºæ ¼å¼æ æã");const k=v.get(m.scope),A=$.get(m.scope)??-1;if(k&&!k.offline&&A<=_.expectedRevision){const N={...k,revision:Math.max(k.revision,O.revision),selectedSectionId:_.selectedSectionId};$.set(m.scope,O.revision),v.set(m.scope,N),Ee(N)}return{revision:O.revision}},me=async _=>{const m=q(_);if(!Number.isSafeInteger(_.expectedRevision)||_.expectedRevision<0)throw new ae("RESEARCH_METADATA_INVALID",400,"request","ç ç©¶å
æ°æ®æ´æ°è½½è·æ æã");const P=v.get(m.scope);if(P!=null&&P.offline)throw new ae("RESEARCH_OFFLINE_MUTATION_DISABLED",409,"request","离线ç ç©¶ä¼è¯ä¸ºåªè¯»ã");let O;try{O=b1(_.patch)}catch{throw new ae("RESEARCH_METADATA_INVALID",400,"request","ç ç©¶å
æ°æ®æ´æ°è½½è·æ æã")}const{response:k,body:A}=await Z(`/api/research/sessions/${er(_.sessionId)}/metadata`,{method:"PATCH",headers:ee("application/json"),body:JSON.stringify({expectedRevision:_.expectedRevision,patch:O})},_.signal);K(m.scope,m.generation);try{fe(k,A)}catch(te){throw te instanceof ae&&te.kind==="stale_revision"&&await be(_).catch(()=>null),te}if(!Xe(A)||!Number.isSafeInteger(A.revision)||Number(A.revision)<0||A.revision!==_.expectedRevision+1||A.metadataMissing!==!1||!Object.prototype.hasOwnProperty.call(A,"presentation"))throw new ae("RESEARCH_RESPONSE_INVALID",502,"invalid_response","ç ç©¶å
æ°æ®ååºæ ¼å¼æ æã");const N=v.get(m.scope),M=N?Ko(A.presentation,N.material):(()=>{try{return Dr(A.presentation)}catch{throw new ae("RESEARCH_RESPONSE_INVALID",502,"invalid_response","ç ç©¶å
æ°æ®ååºæ ¼å¼æ æã")}})(),F=A.revision,G=j.get(m.scope)??-1;if(N&&!N.offline&&G<=_.expectedRevision){const te={...N,revision:Math.max(N.revision,F),presentation:M,metadataMissing:!1};j.set(m.scope,F),v.set(m.scope,te),Ee(te)}return{revision:F,presentation:M}},Oe=(_,m,P)=>{var F,G,te;const O=v.get(P);if(!O||O.offline)return;const k=Number.isSafeInteger(_.revision)?_.revision:(F=_.session)==null?void 0:F.revision;if(k!==void 0&&k<O.revision)return;k!==void 0&&((G=_.session)==null?void 0:G.presentation)!==void 0&&j.set(P,Math.max(j.get(P)??0,k));const A=new Map(O.messages.map(ie=>[ie.id,ie]));for(const ie of[_.userMessage,_.assistantMessage])A.set(ie.id,ie);const N=((te=_.session)==null?void 0:te.presentation)===void 0?O.presentation:_.session.presentation;v.set(P,{...O,...k!==void 0?{revision:k}:{},...N!==void 0?{presentation:N}:{},messages:[...A.values()],...typeof _.boardContent=="string"?{boardContent:_.boardContent}:{}});const M=v.get(P);M&&Ee(M)};return{loadSession:be,updatePosition:se,updateMetadata:me,ask:async _=>{const m=q(_),P=dn(_.operationId),O=v.get(n);if(!O)throw new ae("RESEARCH_SESSION_CONTEXT_REQUIRED",409,"request","ç ç©¶ä¼è¯å°æªå è½½ã");const k={operationId:P,question:_.question};_.selectedSection!==void 0&&(k.selectedSection=_.selectedSection),_.characterConfiguration!==void 0&&(k.characterConfiguration=_.characterConfiguration);const{response:A,body:N}=await Z(`/api/research/sessions/${er(_.sessionId)}/ask`,{method:"POST",headers:ee("application/json"),body:JSON.stringify(k)},_.signal);if(K(m.scope,m.generation),A.status===202){if((Xe(N)?rr(N.operationId):"")!==P)throw new ae("RESEARCH_RESPONSE_INVALID",502,"invalid_response","ç ç©¶æä½èº«ä»½æ ¡éªå¤±è´¥ã");return{status:"pending",operationId:P,pendingReason:"ask"}}if(Xe(N)&&N.code==="RESEARCH_ASK_SAVE_PENDING"){if(N.operationId!==void 0&&N.operationId!==P)throw new ae("RESEARCH_RESPONSE_INVALID",502,"invalid_response","ç ç©¶æä½èº«ä»½æ ¡éªå¤±è´¥ã");return{status:"pending",operationId:P,pendingReason:"save"}}if(!A.ok){const F=hl(Xe(N)?N.code:void 0,A.status===429?"STORY_QUESTION_LIMIT_REACHED":A.status===4
21913?"RESEARCH_CAPACITY_EXCEEDED":"RESEARCH_REQUEST_FAILED"),G=ml(A.status,F);if(G==="quota")return{status:"quota",operationId:P,code:F,count:Xe(N)&&Number.isSafeInteger(N.count)&&N.count>=0?N.count:void 0,limit:Xe(N)&&Number.isSafeInteger(N.limit)&&N.limit>=0?N.limit:void 0};if(G==="capacity")return{status:"capacity",operationId:P,code:F,reason:Xe(N)&&typeof N.reason=="string"&&w1.has(N.reason)?N.reason:void 0};throw new ae(F,A.status,G,pl(F,G))}const M=gl(N,P,O.material,_.sessionId);return Oe(M,_,m.scope),M},saveTurn:async _=>{const m=q(_),P=dn(_.operationId),O=v.get(n);if(!O)throw new ae("RESEARCH_SESSION_CONTEXT_REQUIRED",409,"request","ç ç©¶ä¼è¯å°æªå è½½ã");const{response:k,body:A}=await Z(`/api/research/sessions/${er(_.sessionId)}/ask/confirm`,{method:"POST",headers:ee("application/json"),body:JSON.stringify({operationId:P})},_.signal);if(K(m.scope,m.generation),k.status===202||Xe(A)&&A.code==="RESEARCH_ASK_SAVE_PENDING"){if(!Xe(A)||A.operationId!==void 0&&A.operationId!==P)throw new ae("RESEARCH_RESPONSE_INVALID",502,"invalid_response","ç ç©¶æä½èº«ä»½æ ¡éªå¤±è´¥ã");return{status:"pending",operationId:P,pendingReason:"save"}}fe(k,A);const N=gl(A,P,O.material,_.sessionId);return Oe(N,_,m.scope),N},resolveImage:async _=>{var N,M;const m=q(_);if(typeof _.reference!="string"||!wn.test(_.reference))return null;const P=w.get(_.reference);if(!P)return null;const O=v.get(n),k=(N=O==null?void 0:O.images)==null?void 0:N.find(F=>F.reference===_.reference);if((M=k==null?void 0:k.url)!=null&&M.startsWith("blob:"))return k;const A=await ne(_,P,_.signal,m.scope,m.generation,c);if(K(m.scope,m.generation),A){const F=v.get(m.scope);if(F&&!F.offline){const G=new Map((F.images??[]).map(ie=>[ie.reference,ie]));G.set(A.reference,A);const te={...F,images:[...G.values()]};v.set(m.scope,te),Ee(te)}}return A},prepare:async _=>{const m=Y(_),P=dn(_.operationId);let O;if(_.presentation!==void 0)if(_.presentation===null)O=null;else try{O=Dr(_.presentation)}catch{throw new ae("RESEARCH_METADATA_INVALID",400,"request","ç ç©¶å
æ°æ®æ æã")}const k=_.files??[];if(!Array.isArray(k)||k.length===0&&(typeof _.text!="string"||!_.text.trim()))throw new ae("RESEARCH_DOCUMENTS_REQUIRED",400,"request","请è³å°æäº¤ä¸ä¸ªç ç©¶ææ¡£ã");const A=k.length>0&&k.every(G=>typeof Blob<"u"&&G instanceof Blob);let N;if(A){const G=new FormData;G.set("operationId",P),O!==void 0&&G.set("presentation",O===null?"null":JSON.stringify(O)),k.forEach(te=>G.append("file",te,typeof File<"u"&&te instanceof File?te.name:"research.txt")),N={method:"POST",headers:{...ee(),"Idempotency-Key":P},body:G}}else{if(k.some(ie=>!Xe(ie)||typeof ie.name!="string"||typeof ie.text!="string"))throw new ae("RESEARCH_DOCUMENTS_REQUIRED",400,"request","ç ç©¶ææ¡£è½½è·æ æã");const G=k,te={operationId:P};O!==void 0&&(te.presentation=O),G.length>0?te.files=G.map(ie=>({name:ie.name,text:ie.text})):te.text=_.text,N={method:"POST",headers:ee("application/json"),body:JSON.stringify(te)}}const{response:M,body:F}=await Z("/api/research/sessions/prepare",N,_.signal);return Se(m.scope,m.generation),fe(M,F),gs(F,P)},pollPreparation:async _=>{const m=Y(_);if(typeof _.taskId!="string"||!go.test(_.taskId))throw new ae("RESEARCH_REQUEST_INVALID",400,"request","ç ç©¶åå¤ä»»å¡èº«ä»½æ æã");const{response:P,body:O}=await Z(`/api/research/preparations/${er(_.taskId)}`,{method:"GET",headers:ee()},_.signal);return Se(m.scope,m.generation),!P.ok&&P.status===409&&Xe(O)&&(O.state==="failed"||O.state==="cancelled")||fe(P,O),gs(O)},cancelPreparation:async _=>{const m=Y(_);if(typeof _.taskId!="string"||!go.test(_.taskId))throw new ae("RESEARCH_REQUEST_INVALID",400,"request","ç ç©¶åå¤ä»»å¡èº«ä»½æ æã");const{response:P,body:O}=await Z(`/api/research/preparations/${er(_.taskId)}/cancel`,{method:"POST",headers:ee()},_.signal);return Se(m.scope,m.generation),fe(P,O),gs(O)},listSessions:async _=>{const m=Y(_),{response:P,body:O}=await Z("/api/research/sessions",{method:"GET",headers:ee()},_.signal);if(Se(m.scope,m.generation),fe(P,O),!Array.isArray(O))throw new ae("RESEARCH_RESPONSE_INVALID",502,"invali
219d_response","ç ç©¶ä¼è¯åè¡¨æ ¼å¼æ æã");return O.map(k=>{if(!Xe(k)||typeof k.sessionId!="string"||!Fs.test(k.sessionId)||typeof k.operationId!="string"||!rr(k.operationId)||typeof k.materialId!="string"||!rr(k.materialId)||!Number.isSafeInteger(k.revision)||Number(k.revision)<0||k.selectedSectionId!==null&&k.selectedSectionId!==void 0&&typeof k.selectedSectionId!="string"||k.metadataMissing!==void 0&&typeof k.metadataMissing!="boolean"||k.metadataMissing===!1&&k.presentation==null)throw new ae("RESEARCH_RESPONSE_INVALID",502,"invalid_response","ç ç©¶ä¼è¯åè¡¨æ ¼å¼æ æã");let A=null;if(k.presentation!==void 0&&k.presentation!==null)try{A=Dr(k.presentation)}catch{throw new ae("RESEARCH_RESPONSE_INVALID",502,"invalid_response","ç ç©¶ä¼è¯åè¡¨æ ¼å¼æ æã")}return{ownerId:_.ownerId,sessionId:k.sessionId,operationId:dn(k.operationId),materialId:k.materialId,...typeof k.selectedSectionId=="string"?{selectedSectionId:k.selectedSectionId}:{},presentation:A,metadataMissing:k.metadataMissing===!0||k.presentation==null,revision:k.revision,...typeof k.updatedAt=="string"?{updatedAt:k.updatedAt}:{}}})},deleteSession:async _=>{const m=q(_),{response:P,body:O}=await Z(`/api/research/sessions/${er(_.sessionId)}`,{method:"DELETE",headers:ee()},_.signal);if(K(m.scope,m.generation),!P.ok&&P.status===404)return await ye(_),v.delete(n),j.delete(n),$.delete(n),w.clear(),V(),o+=1,c+=1,{deleted:!1};if(fe(P,O),!Xe(O)||typeof O.deleted!="boolean")throw new ae("RESEARCH_RESPONSE_INVALID",502,"invalid_response","ç ç©¶å é¤ååºæ ¼å¼æ æã");return v.delete(n),j.delete(n),$.delete(n),w.clear(),V(),o+=1,c+=1,await ye(_),{deleted:O.deleted}},logout:()=>{V(),w.clear(),v.clear(),j.clear(),$.clear(),n="",i="",o+=1,c+=1},dispose:()=>{f=!0,V(),w.clear(),v.clear(),j.clear(),$.clear(),n="",i="",o+=1,c+=1}}}function gl(e,t,r,a){if(!Xe(e)||e.operationId!==t)throw new ae("RESEARCH_RESPONSE_INVALID",502,"invalid_response","ç ç©¶æä½èº«ä»½æ ¡éªå¤±è´¥ã");const n=new Set,i=Eo(e.userMessage,r,n),o=Eo(e.assistantMessage,r,n);if(i.role!=="user"||o.role!=="assistant")throw new ae("RESEARCH_RESPONSE_INVALID",502,"invalid_response","ç ç©¶åçè§è²æ ¡éªå¤±è´¥ã");if(typeof e.boardContent<"u"&&(typeof e.boardContent!="string"||e.boardContent.length>po))throw new ae("RESEARCH_RESPONSE_INVALID",502,"invalid_response","ç ç©¶é»æ¿ååºæ ¼å¼æ æã");if(e.imageReferences!==void 0&&(!Array.isArray(e.imageReferences)||e.imageReferences.some(f=>typeof f!="string"||!wn.test(f))))throw new ae("RESEARCH_RESPONSE_INVALID",502,"invalid_response","ç ç©¶å¾çå¼ç¨ååºæ ¼å¼æ æã");if(e.revision!==void 0&&(!Number.isSafeInteger(e.revision)||Number(e.revision)<0))throw new ae("RESEARCH_RESPONSE_INVALID",502,"invalid_response","ç ç©¶çæ¬ååºæ ¼å¼æ æã");const c=e.session===void 0?void 0:v1(e.session,r,a);return{operationId:t,userMessage:i,assistantMessage:o,...typeof e.boardContent=="string"?{boardContent:e.boardContent}:{},...Array.isArray(e.imageReferences)?{imageReferences:[...new Set(e.imageReferences)]}:{},...Number.isSafeInteger(e.revision)?{revision:e.revision}:{},...c?{session:c}:{}}}const M1=4*1024*1024,U1=3e5,B1=20,mf=2*1024*1024,F1="p2g_research_private_offline",H1=1,hf="p2g-research-offline:v1:record:",j1="p2g-research-offline:v1:registry:",pf="p2g-research-offline:v1:asset:",V1="p2g-research-offline:v1:asset-registry:",bo=/^[^\u0000]{1,256}$/u,Hs=/^research-session-[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/iu,Mr=/^p2g-document-image:\/\/([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})\/(\d+)$/iu,G1=new Set(["actual_image","data_chart","architecture_diagram"]),Y1=["version","kind","ownerId","sessionId","revision","material","presentation","metadataMissing","latestTurn","selectedSectionId","messages","boardContent","images"],z1=["version","kind","ownerId","sessionId","revision"],kn=e=>!!e&&typeof e=="object"&&!Array.isArray(e),Dn=(e,t)=>Object.keys(e).every(r=>t.includes(r)),W1=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),$1=e=>JSON.parse(JSON.stringify(e)),Yt=e=>
219{if(!e||typeof e.ownerId!="string"||typeof e.sessionId!="string")return null;const t=e.ownerId.trim(),r=e.sessionId.trim();return!bo.test(t)||!Hs.test(r)?null:{ownerId:t,sessionId:r}},Wt=e=>encodeURIComponent(e),ft=e=>`${hf}${Wt(e.ownerId)}:${Wt(e.sessionId)}`,El=e=>`${j1}${Wt(e)}`,Qi=(e,t)=>`${pf}${Wt(e.ownerId)}:${Wt(e.sessionId)}:${Wt(t)}`,gf=e=>`${hf}${Wt(e)}:`,Ef=e=>`${pf}${Wt(e)}:`,Is=e=>`${Ef(e.ownerId)}${Wt(e.sessionId)}:`,bl=e=>`${V1}${Wt(e.ownerId)}:${Wt(e.sessionId)}`,q1=(e,t)=>{const r=gf(e);if(!t.startsWith(r))return null;try{const a=decodeURIComponent(t.slice(r.length));return Hs.test(a)?a:null}catch{return null}},Q1=(e,t)=>{const r=Is(e);if(!t.startsWith(r))return null;try{const a=decodeURIComponent(t.slice(r.length));return Mr.test(a)?a:null}catch{return null}},K1=e=>typeof TextEncoder<"u"?new TextEncoder().encode(e).byteLength:Buffer.byteLength(e,"utf8"),X1=(e,t)=>{if(!Array.isArray(e))return null;const r=new Set,a=[];for(const n of e){if(!kn(n)||!Dn(n,["id","role","text","citations","createdAt"])||n.role!=="user"&&n.role!=="assistant"||typeof n.id!="string"||!n.id.trim()||n.id.length>256||r.has(n.id)||typeof n.text!="string"||!n.text.trim()||n.createdAt!==void 0&&typeof n.createdAt!="string")return null;const i=W1(n,"citations");if(n.role==="user"&&i)return null;let o;if(n.role==="assistant"&&i){if(!Array.isArray(n.citations))return null;const c=new Set,f=n.citations.map(d=>Yo(d,t));if(f.some(d=>!d||c.has(d.id)))return null;f.forEach(d=>c.add(d.id)),o=rf(n.text,f,t)}r.add(n.id),a.push({id:n.id,role:n.role,text:n.text,...o?{citations:o}:{},...typeof n.createdAt=="string"?{createdAt:n.createdAt}:{}})}return a},J1=(e,t)=>{if(!Array.isArray(e))return null;const r=new Set,a=[];for(const n of e){if(!kn(n)||!Dn(n,["materialId","fileOrdinal","runId","index","reference","type","description"])||n.materialId!==t.materialId||typeof n.runId!="string"||!Mr.test(`p2g-document-image://${n.runId}/1`)||!Number.isSafeInteger(n.index)||n.index<1||!Number.isSafeInteger(n.fileOrdinal)||!t.files.some(o=>o.fileOrdinal===n.fileOrdinal)||typeof n.reference!="string"||!Mr.test(n.reference)||r.has(n.reference.toLowerCase())||!G1.has(n.type)||typeof n.description!="string"||n.description.length>300)return null;const i=Mr.exec(n.reference);if(!i||i[1].toLowerCase()!==n.runId.toLowerCase()||Number(i[2])!==n.index)return null;r.add(n.reference.toLowerCase()),a.push({materialId:t.materialId,fileOrdinal:n.fileOrdinal,runId:n.runId,index:n.index,reference:n.reference,type:n.type,description:n.description})}return a},Tl=e=>{if(!kn(e)||!Dn(e,Y1)||e.kind!=="snapshot"||e.version!==1||typeof e.ownerId!="string"||typeof e.sessionId!="string"||!Number.isSafeInteger(e.revision)||e.revision<0||typeof e.boardContent!="string"||e.boardContent.length>2e4||e.metadataMissing!==void 0&&typeof e.metadataMissing!="boolean"||!Array.isArray(e.messages)||!Array.isArray(e.images))return null;const t=Yt({ownerId:e.ownerId,sessionId:e.sessionId});if(!t||t.ownerId!==e.ownerId||t.sessionId!==e.sessionId)return null;const r=Ln(e.material);if(!r||r.fullText.length>U1||r.files.length>B1)return null;const a=X1(e.messages,r),n=J1(e.images,r);if(!a||!n||e.selectedSectionId!==void 0&&e.selectedSectionId!==null&&(typeof e.selectedSectionId!="string"||!r.outline.some(d=>d.id===e.selectedSectionId))||!FS(a,a.flatMap(d=>d.citations??[])).ok)return null;let o;const c=e.metadataMissing===!0||e.presentation==null;try{o=c?Qo(r):Dr(e.presentation,{material:r})}catch{return null}const f={version:1,kind:"snapshot",ownerId:t.ownerId,sessionId:t.sessionId,revision:e.revision,presentation:o,metadataMissing:c,...e.latestTurn===void 0?{}:{latestTurn:e.latestTurn},material:JS(r),...typeof e.selectedSectionId=="string"?{selectedSectionId:e.selectedSectionId}:{},messages:a,boardContent:e.boardContent,images:n};try{if(K1(JSON.stringify(f))>M1)return null}catch{return null}return $1(f)},Z1=e=>{if(!kn(e)||!Dn(e,z1)||e.kind!=="tombstone"||e.version!==1||typeof e.ownerId!="string"||typeof e.sessionId!="string"||!Number.isSafeInteger(e.revision)||e.revision<0)return null;const t=Yt({ownerId:e.ownerId,sessionId:e.sessionId});return t&&t.ownerId===e.ownerId&&t.sessionId===e.sessionId?{version:1,kind:"tombstone",...t,revision:e.revision}:null},eA=e=>{if(!kn(e)||!Dn(e,["version","kind","ownerId","sessionId","reference","blob"])||e.version!==1||e.kind!=="asset"||typeof e.ownerId!="str
219ing"||typeof e.sessionId!="string"||typeof e.reference!="string"||!Mr.test(e.reference)||typeof Blob>"u"||!(e.blob instanceof Blob)||e.blob.size<=0||e.blob.size>mf||!String(e.blob.type||"").toLowerCase().startsWith("image/"))return null;const t=Yt({ownerId:e.ownerId,sessionId:e.sessionId});return t&&t.ownerId===e.ownerId&&t.sessionId===e.sessionId?{version:1,kind:"asset",...t,reference:e.reference,blob:e.blob}:null},Sl=e=>!!e&&typeof e.put=="function"&&typeof e.get=="function"&&typeof e.delete=="function",un=e=>new Promise(t=>{try{const r=e.open(F1,H1);r.onupgradeneeded=()=>{const a=r.result;a.objectStoreNames.contains("records")||a.createObjectStore("records"),a.objectStoreNames.contains("assets")||a.createObjectStore("assets")},r.onsuccess=()=>t(r.result),r.onerror=()=>t(null),r.onblocked=()=>t(null)}catch{t(null)}}),Al=e=>new Promise(t=>{e.onsuccess=()=>t(e.result??null),e.onerror=()=>t(null)});function tA(e={}){const t=e.indexedDB,r=t===void 0?typeof indexedDB>"u"?null:indexedDB:t&&!Sl(t)?t:null,a=Sl(t)?t:null,n=e.localStorage===void 0?typeof localStorage>"u"?null:localStorage:e.localStorage,i=!!(a||r);let o=null,c=0,f=!1;const d=new Map;let S=Promise.resolve();const b=B=>{const U=S.then(B,B);return S=U.then(()=>{},()=>{}),U},w=B=>!f&&c===B,v=async(B,U="records")=>{if(a)try{return{available:!0,value:await a.get(B)}}catch{return{available:!1,value:null}}if(r){o??(o=un(r));const z=await o;if(z)try{return{available:!0,value:await Al(z.transaction(U,"readonly").objectStore(U).get(B))}}catch{return{available:!1,value:null}}return{available:!1,value:null}}if(U==="assets"||!n)return{available:!1,value:null};try{const z=n.getItem(B);return{available:!0,value:z==null?null:JSON.parse(z)}}catch{return{available:!1,value:null}}},j=async(B,U,z="records")=>{if(a)try{return await a.put(B,U),!0}catch{return!1}if(r){o??(o=un(r));const re=await o;if(re)try{return await new Promise((le,ue)=>{const he=re.transaction(z,"readwrite");he.objectStore(z).put(U,B),he.oncomplete=()=>le(),he.onerror=()=>ue(he.error),he.onabort=()=>ue(he.error)}),!0}catch{return!1}}if(z==="assets"||!n)return!1;try{return n.setItem(B,JSON.stringify(U)),!0}catch{return!1}},$=async(B,U="records")=>{if(a)try{return await a.delete(B),!0}catch{return!1}if(r){o??(o=un(r));const z=await o;if(z)try{return await new Promise((re,le)=>{const ue=z.transaction(U,"readwrite");ue.objectStore(U).delete(B),ue.oncomplete=()=>re(),ue.onerror=()=>le(ue.error),ue.onabort=()=>le(ue.error)}),!0}catch{return!1}}if(U==="assets")return!r;if(!n)return!0;try{return n.removeItem(B),!0}catch{return!1}},V=async(B,U="records")=>{if(a!=null&&a.list)try{return(await a.list(B)).filter(z=>z.startsWith(B))}catch{throw new Error("research offline key enumeration unavailable")}if(r){o??(o=un(r));const z=await o;if(z)try{const re=await Al(z.transaction(U,"readonly").objectStore(U).getAllKeys());return(Array.isArray(re)?re:[]).filter(le=>typeof le=="string"&&le.startsWith(B))}catch{throw new Error("research offline key enumeration unavailable")}}if(U==="assets"||!n)return[];try{const z=[];for(let re=0;re<n.length;re+=1){const le=n.key(re);le!=null&&le.startsWith(B)&&z.push(le)}return z}catch{throw new Error("research offline key enumeration unavailable")}},Y=async B=>{const U=Yt(B);if(!U)return null;const z=await v(ft(U));if(!z.available)throw new Error("research offline record storage unavailable");return Tl(z.value)??Z1(z.value)},q=async B=>{const U=await v(El(B));if(!U.available)throw new Error("research offline registry storage unavailable");return Array.isArray(U.value)?[...new Set(U.value.filter(z=>typeof z=="string"&&Hs.test(z)))]:[]},K=(B,U)=>j(El(B),[...new Set(U.filter(z=>Hs.test(z)))]),Se=async B=>{const U=await q(B.ownerId);return U.includes(B.sessionId)?!0:K(B.ownerId,[...U,B.sessionId])},ee=async B=>{const U=await v(bl(B));if(!U.available)throw new Error("research offline asset registry unavailable");return Array.isArray(U.value)?[...new Set(U.value.filter(z=>typeof z=="string"&&z.startsWith(Is(B))))]:[]},Z=(B,U)=>j(bl(B),[...new Set(U.filter(z=>z.startsWith(Is(B))))]),fe=async(B,U=new Set)=>{if(!i)return!0;
219if(r&&(o??(o=un(r)),!await o))return!1;const z=await ee(B),re=await V(Is(B),"assets"),le=[...new Set([...z,...re])];let ue=!0;const he=[];for(const Me of le){const _=Q1(B,Me);if(_&&U.has(_.toLowerCase())){he.push(Me);continue}ue=await $(Me,"assets")&&ue}return ue=await Z(B,he)&&ue,ue};return{acknowledge:async B=>{var le;if(!B||typeof B!="object"||B.offline===!0)return!1;const U=Yt({ownerId:B.ownerId,sessionId:B.sessionId});if(!U)return!1;const z=Tl({version:1,kind:"snapshot",...U,revision:B.revision,presentation:B.presentation??null,...B.metadataMissing===!0?{metadataMissing:!0}:{},...B.latestTurn===void 0?{}:{latestTurn:B.latestTurn},material:B.material,selectedSectionId:B.selectedSectionId??null,messages:B.messages,boardContent:B.boardContent??"",images:((le=B.images)==null?void 0:le.map(({url:ue,...he})=>he))??[]});if(!z)return!1;const re=c;return b(async()=>{if(!w(re))return!1;let ue;try{ue=await Y(U)}catch{return!1}if(!w(re)||d.has(ft(U))||ue&&ue.revision>=z.revision||!await j(ft(U),z)||!w(re))return!1;const he=new Set(z.images.map(Me=>Me.reference.toLowerCase()));return!await Se(U)||!w(re)?(await $(ft(U)),!1):fe(U,he)})},read:async B=>{const U=Yt(B);if(!U||d.has(ft(U)))return null;const z=c;return b(async()=>{if(!w(z)||d.has(ft(U)))return null;let re;try{re=await Y(U)}catch{return null}return w(z)&&!d.has(ft(U))&&(re==null?void 0:re.kind)==="snapshot"?Il(re):null})},list:async B=>{const U=typeof B=="string"?B.trim():"";if(!bo.test(U))return[];const z=c;return b(async()=>{if(!w(z))return[];let re;try{re=await q(U)}catch{return[]}const le=await Promise.all(re.map(async ue=>{let he;const Me={ownerId:U,sessionId:ue};if(d.has(ft(Me)))return null;try{he=await Y(Me)}catch{return null}return!d.has(ft(Me))&&(he==null?void 0:he.kind)==="snapshot"?Il(he):null}));return w(z)?le.filter(ue=>ue!==null).sort((ue,he)=>he.revision-ue.revision):[]})},tombstone:async(B,U)=>{const z=Yt(B);if(!z||!Number.isSafeInteger(U)||U<0)return!1;const re=ft(z),le=d.get(re);if(le!==void 0&&le>=U)return!1;d.set(re,U);const ue=c;return b(async()=>{if(!w(ue))return!1;let he;try{he=await Y(z)}catch{return!1}if(!w(ue)||he&&he.revision>=U)return!1;const Me={version:1,kind:"tombstone",...z,revision:U};return!await j(ft(z),Me)||!w(ue)||!await Se(z)?!1:await fe(z)})},clearSession:async B=>{const U=Yt(B);if(!U)return!1;const z=c;return b(async()=>{if(!w(z))return!1;let re;try{re=await Y(U)}catch{return d.set(ft(U),0),!1}const le=(re==null?void 0:re.revision)??0;if(d.set(ft(U),le),!re||re.kind==="snapshot"){const ue={version:1,kind:"tombstone",...U,revision:le};if(!await j(ft(U),ue))return!1}return await Se(U)?fe(U):!1})},clearOwner:async B=>{const U=typeof B=="string"?B.trim():"";if(!bo.test(U))return!1;const z=c;return b(async()=>{if(!w(z))return!1;let re,le;try{re=await q(U),le=await V(gf(U),"records")}catch{return!1}const ue=[...new Set([...re,...le.map(_=>q1(U,_)).filter(_=>_!==null)])];let he=!0;for(const _ of ue){const m={ownerId:U,sessionId:_};let P;try{P=await Y(m)}catch{d.set(ft(m),0),he=!1;continue}const O=(P==null?void 0:P.revision)??0;d.set(ft(m),O),(!P||P.kind==="snapshot")&&(he=await j(ft(m),{version:1,kind:"tombstone",ownerId:U,sessionId:_,revision:O})&&he),he=await fe({ownerId:U,sessionId:_})&&he}const Me=await V(Ef(U),"assets");for(const _ of Me)he=await $(_,"assets")&&he;return he})},putAsset:async B=>{if(!B||typeof B.reference!="string"||!Mr.test(B.reference)||typeof Blob>"u"||!(B.blob instanceof Blob)||B.blob.size<=0||B.blob.size>mf||!String(B.blob.type||"").toLowerCase().startsWith("image/"))return!1;const U=Yt(B);if(!U||!i)return!1;const z=c;return b(async()=>{if(!w(z))return!1;let re;try{re=await Y(U)}catch{return!1}if(!re||re.kind!=="snapshot"||!re.images.some(he=>he.reference.toLowerCase()===B.reference.toLowerCase()))return!1;const le=Qi(U,B.reference);if(!await j(le,{version:1,kind:"asset",...U,reference:B.reference,blob:B.blob},"assets")||!w(z))return!1;const ue=await ee(U);return ue.includes(le)||await Z(U,[...ue,le])?!0:(await $(le,"assets"),!1)})},readAsset:async B=>{if(f||typeof B.reference!="string"||!Mr.test(B.reference))return null;const U=Yt(B);if(!U||!i||typeof Blob>"u")return null;const z=c;return b(async()=>
219{if(!w(z))return null;let re;try{re=await Y(U)}catch{return null}if(!re||re.kind!=="snapshot"||!re.images.some(he=>he.reference.toLowerCase()===B.reference.toLowerCase()))return null;const le=await v(Qi(U,B.reference),"assets");if(!le.available)return null;const ue=eA(le.value);return w(z)&&ue&&ue.ownerId===U.ownerId&&ue.sessionId===U.sessionId?ue.blob:null})},removeAsset:async B=>{if(f||typeof B.reference!="string"||!Mr.test(B.reference))return!1;const U=Yt(B);if(!U||!i)return!1;const z=c;return b(async()=>{if(!w(z))return!1;const re=Qi(U,B.reference),le=await $(re,"assets"),ue=await ee(U);return await Z(U,ue.filter(he=>he!==re)),le})},logout:()=>{f=!0,c+=1,d.clear()}}}const Il=e=>{const t=Ln(e.material);return t?Object.freeze({ownerId:e.ownerId,sessionId:e.sessionId,revision:e.revision,presentation:e.presentation,metadataMissing:e.metadataMissing,...e.latestTurn===void 0?{}:{latestTurn:e.latestTurn},material:t,...e.selectedSectionId?{selectedSectionId:e.selectedSectionId}:{},messages:Object.freeze(e.messages.map(r=>Object.freeze({...r,...r.citations?{citations:Object.freeze(r.citations.map(a=>Object.freeze({...a})))}:{}}))),boardContent:e.boardContent,images:Object.freeze(e.images.map(r=>Object.freeze({...r})))}):null},rA=e=>{var t,r;return((r=(t=e.presentation)==null?void 0:t.title)==null?void 0:r.trim())||"Research session"},aA=e=>({sessionId:e.sessionId,materialId:e.materialId,revision:e.revision,presentation:e.presentation,metadataMissing:e.metadataMissing===!0||e.presentation==null,updatedAt:e.updatedAt,label:rA(e)}),yl=e=>{var t,r;return{sessionId:e.sessionId,materialId:e.material.materialId,revision:e.revision,offline:!0,presentation:e.presentation,metadataMissing:e.metadataMissing===!0||e.presentation==null,label:((r=(t=e.presentation)==null?void 0:t.title)==null?void 0:r.trim())||e.material.files.map(a=>a.name).join(", ")||"Research session"}};function nA({user:e,language:t,appState:r,gateway:a,offlineStore:n,navigate:i}){const[o,c]=l.useState(null),[f,d]=l.useState(null),[S,b]=l.useState(null),[w,v]=l.useState(null),[j,$]=l.useState(!1),[V,Y]=l.useState(!1),[q,K]=l.useState(!1),[Se,ee]=l.useState(null),[Z,fe]=l.useState(!1),[ne,Pe]=l.useState([]),[Ee,ye]=l.useState(!1),[_e,be]=l.useState(null),se=l.useRef(0),me=l.useRef(null),Oe=l.useRef(null),B=l.useRef(null),U=l.useRef(!1),z=l.useRef(!1),re=l.useRef((e==null?void 0:e.id)??null),le=l.useRef(e);le.current=e;const ue=l.useCallback(()=>{var M;(M=me.current)==null||M.abort(),me.current=null,se.current+=1,c(null),d(null),b(null),v(null),Oe.current=null,B.current=null,U.current=!1,z.current=!1,$(!1),Y(!1),K(!1),ee(null),fe(!1),Pe([]),ye(!1),be(null),a.logout()},[a]);l.useEffect(()=>{const M=(e==null?void 0:e.id)??null;re.current!==M&&(ue(),re.current=M)},[ue,e==null?void 0:e.id]);const he=l.useCallback((M,F)=>({ownerId:M,epoch:se.current,signal:F}),[]),Me=l.useCallback(async()=>{var te,ie;const M=(te=le.current)==null?void 0:te.id;if(!M)return;const F=new AbortController;(ie=me.current)==null||ie.abort(),me.current=F;const G=se.current;ye(!0),be(null);try{const Ie=await a.listSessions(he(M,F.signal));if(G!==se.current||F.signal.aborted)return;const ve=await n.list(M);if(G!==se.current||F.signal.aborted)return;const it=Ie.map(aA),Ye=new Set(it.map(at=>at.sessionId));Pe([...it,...ve.filter(at=>!Ye.has(at.sessionId)).map(yl)])}catch(Ie){if(G!==se.current||F.signal.aborted)return;if(!(Ie instanceof ae)||Ie.code!=="RESEARCH_NETWORK_ERROR"){be(Ie instanceof Error?Ie.message:"ç ç©¶åå²å 载失败ã");return}try{const ve=await n.list(M);if(G!==se.current||F.signal.aborted)return;Pe(ve.map(yl))}catch{G===se.current&&!F.signal.aborted&&be("ç ç©¶åå²å 载失败ã")}}finally{me.current===F&&(me.current=null,G===se.current&&ye(!1))}},[a,n,he]),_=l.useCallback(M=>{var te,ie;const F=(te=le.current)==null?void 0:te.id;if(!F||!M.trim())return;(ie=me.current)==null||ie.abort(),me.current=null;const G=ne.find(Ie=>Ie.sessionId===M);v((G==null?void 0:G.presentation)??null),c({ownerId:F,sessionId:M,epoch:se.current}),i(D.RESEARCH_ROOM)},[i,ne]),m=l.useCallback(async(M,F)=>{var Ie,ve,it;const G=(Ie=le.current)==null?void 0:Ie.id;if(!G||M.offline||typeof a.updateMetadata!="function")return!1;const te=se.current,ie=new AbortController;try{const Ye=await a.updateMetadata({ownerId:G,sessionId:M.sessionId,epoch:te,signal:ie.signal,expectedRevision:M.revision,patch:F});return te!==se.current||((ve=le.current)==null?void 0:ve.id)!==G?!1:(Pe(at=>at.map(ot=>ot.sessionId===M.sessionId?{...ot,revision:Ye.revision,presentation:Ye.presentation,metadataMissing:!1,label:Ye.presentation.title}:ot)),!0)}catch(Ye){return te===se.current&&((it=le.current)==null?void 0:it.id)===G&&be(Ye instanceof Error?Ye.message:"ç ç©¶å
æ°æ®ä¿å失败ã"),!1}},[a]),P=l.useCallback((M,F)=>{!M||F.character.id==="UNKNOWN"||(v(F),Pe(G=>G.map(te=>te.sessionId===M?{...te,presentation:F,metadataMissing:!1,label:F.title}:te)))},[]),O=l.useCallback(async M=>{var ie,Ie;const F=(ie=le.current)==null?void 0:ie.id;if(!F||((Ie=le.current)==null?void 0:Ie.id)!==F)return;
219const G=se.current,te=new AbortController;try{if(M.offline){if(!await n.clearSession({ownerId:F,sessionId:M.sessionId}))throw new Error(t==="zh"?"ç ç©¶ä¼è¯æ¬æºç¼åå é¤å¤±è´¥ï¼æ æ³ä¿è¯éå¯åä¸ä¼æ¢å¤ã":"The local research cache could not be deleted; it cannot be guaranteed not to return after restart.")}else if(await a.deleteSession({ownerId:F,sessionId:M.sessionId,epoch:G,signal:te.signal}),!await n.tombstone({ownerId:F,sessionId:M.sessionId},M.revision+1))throw new Error(t==="zh"?"ç ç©¶ä¼è¯å·²å é¤ï¼ä½æ¬æºç¼åå é¤å¤±è´¥ï¼æ æ³ä¿è¯éå¯åä¸ä¼æ¢å¤ã":"The research session was deleted, but its local cache could not be deleted and may return after restart.");G===se.current&&await Me()}catch(ve){G===se.current&&be(ve instanceof Error?ve.message:"ç ç©¶ä¼è¯å é¤å¤±è´¥ã")}},[a,t,Me,n]),k=l.useCallback(async({text:M,documentFiles:F,presentation:G})=>{var Ye,at;const te=(Ye=le.current)==null?void 0:Ye.id;if(!te){await ke(t==="zh"?"请å
ç»å½å使ç¨ç 究室ã":"Please sign in before using Research Room.",{variant:"info"}),i(D.LOGIN);return}const ie=M.trim();if(F.length>0&&ie){await ke(t==="zh"?"è¯·åªæäº¤æåæææ¡£æä»¶ä¹ä¸ã":"Submit text or document files, not both.",{variant:"warning"});return}if(!F.length&&!ie){await ke(t==="zh"?"请å
æäº¤ç ç©¶ææã":"Please provide research material first.",{variant:"warning"});return}(at=me.current)==null||at.abort(),se.current+=1;const Ie=new AbortController;me.current=Ie;const ve=se.current,it=G==null?null:JSON.parse(JSON.stringify(G));b(it),v(it),c(null),ee(null),Y(!1),K(!1),fe(!1),d(null),Oe.current=null,U.current=!1,z.current=!1,$(!0),i(D.RESEARCH_ROOM);try{const ot=`research-prepare-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`;B.current=ot;let Ve=await a.prepare({...he(te,Ie.signal),operationId:ot,text:ie||void 0,files:F,...G!==void 0?{presentation:G}:{}});if(U.current){Oe.current=Ve,d(Ve);const Ct=new AbortController;await a.cancelPreparation({...he(te,Ct.signal),taskId:Ve.taskId}),d(null),b(null),v(null),Oe.current=null,B.current=null,U.current=!1,$(!1),Y(!1),K(!1),fe(!1),z.current=!1,i(D.MENU);return}if(ve!==se.current||Ie.signal.aborted)return;for(d(Ve),Oe.current=Ve,Ve.presentation&&(b(Ve.presentation),v(Ve.presentation)),K(!1);Ve.state==="preparing";){if(await new Promise((Ct,ei)=>{const Bt=window.setTimeout(Ct,Math.max(250,Math.min(5e3,Ve.pollAfterMs??1e3)));Ie.signal.addEventListener("abort",()=>{window.clearTimeout(Bt),ei(new DOMException("The operation was aborted.","AbortError"))},{once:!0})}),ve!==se.current||Ie.signal.aborted||(Ve=await a.pollPreparation({...he(te,Ie.signal),taskId:Ve.taskId}),ve!==se.current||Ie.signal.aborted))return;d(Ve),Oe.current=Ve,K(!1)}if(Ve.state!=="ready"||!Ve.sessionId)throw new Error(Ve.terminalCode||(t==="zh"?"ç ç©¶ææåå¤å¤±è´¥ã":"Research preparation failed."));d(null),Oe.current=null,B.current=null,$(!1),Y(!1),K(!1),c({ownerId:te,sessionId:Ve.sessionId,epoch:ve}),v(Ve.presentation??it)}catch(ot){if(Ie.signal.aborted||ve!==se.current)return;if(U.current&&Oe.current){ee(ot instanceof Error?ot.message:"åæ¶ç ç©¶åå¤å¤±è´¥ã"),Y(!1),K(!0),$(!0),fe(!1),z.current=!1;return}if(U.current){d(null),b(null),v(null),Oe.current=null,B.current=null,U.current=!1,$(!1),Y(!1),K(!1),fe(!1),z.current=!1,i(D.MENU);return}const Ve=!!Oe.current,Ct=ot instanceof ae&&ot.code==="RESEARCH_NETWORK_ERROR";B.current=null,ee(ot instanceof Error?ot.message:t==="zh"?"ç ç©¶ææåå¤å¤±è´¥ã":"Research preparation failed."),Y(!Ve||!Ct),K(Ve&&Ct),$(Ve&&Ct)}finally{me.current===Ie&&(me.current=null)}},[a,t,i,he]),A=l.useCallback(async()=>{var ie,Ie;const M=Oe.current??f,F=(ie=le.current)==null?void 0:ie.id;if(!F||z.current)return;if(!M){U.current=!0,z.current=!0,d(null),$(!0),Y(!1),K(!1),ee(null),fe(!0),B.current=null;return}z.current=!0,(Ie=me.current)==null||Ie.abort();const G=new AbortController;me.current=G;const te=++se.current;fe(!0);try{if(await a.cancelPreparation({...he(F,G.signal),taskId:M.taskId}),te!==se.current||G.signal.aborted)return;d(null),b(null),v(null),Oe.current=null,B.current=null,U.current=!1,$(!1),Y(!1),K(!1),i(D.MENU)}catch(ve){!G.signal.aborted&&te===se.current&&ee(ve instanceof Error?ve.message:"åæ¶ç ç©¶åå¤å¤
219±è´¥ã")}finally{z.current=!1,te===se.current&&fe(!1),me.current===G&&(me.current=null)}},[a,i,f,he,ue]);l.useEffect(()=>{if(r===D.RESEARCH_ROOM&&!(e!=null&&e.id)){i(D.LOGIN,"replace");return}r===D.RESEARCH_ROOM&&(e!=null&&e.id)&&!o&&!j&&!V&&!Se&&i(D.MENU,"replace")},[r,o,i,j,Se,V,e==null?void 0:e.id]);const N=l.useCallback(()=>{var M,F;if(V){(M=me.current)==null||M.abort(),me.current=null,se.current+=1,d(null),b(null),v(null),Oe.current=null,B.current=null,U.current=!1,$(!1),Y(!1),K(!1),ee(null),fe(!1),i(D.MENU);return}if(j){A();return}(F=me.current)==null||F.abort(),me.current=null,se.current+=1,c(null),v(null),b(null),i(D.MENU)},[A,i,j,V]);return l.useEffect(()=>()=>{var M;(M=me.current)==null||M.abort(),a.logout()},[a]),{identity:o,preparation:f,preparationPresentation:S,activePresentation:w,preparationActive:j,preparationTerminal:V,preparationUncertain:q,preparationError:Se,preparationCancelling:Z,sessions:ne,sessionsLoading:Ee,sessionsError:_e,resetMemory:ue,loadSessions:Me,loadSession:_,deleteSession:O,updateSessionMetadata:m,resolveSessionPresentation:P,startResearch:k,cancelPreparation:A,exitRoom:N}}const sA=(e,t)=>({fullText:t.length>0?"":e,files:t.map(r=>({name:r.name}))}),iA=()=>new Promise(e=>{if(typeof window>"u"||typeof window.requestAnimationFrame!="function"){setTimeout(e,0);return}window.requestAnimationFrame(()=>{window.requestAnimationFrame(()=>e())})}),oA=e=>e==="sakura"||e==="gothic"||e==="fullwidth",cA={floral:{image:"/assets/ui/dialogue/floral-control-button.png",slice:"30 42 30 42 fill",borderWidth:"8px",mobileBorderWidth:"5px",className:"text-[#7a4b2f] hover:text-[#a7653a]"},sakura:{image:"/assets/ui/dialogue/sakura-control-button.png",slice:"34 46 32 52 fill",borderWidth:"8px",mobileBorderWidth:"5px",className:"text-[#8f5261] hover:text-[#c45f78]"},gothic:{image:"/assets/ui/dialogue/gothic-control-button.png",slice:"26 44 26 44 fill",borderWidth:"8px",mobileBorderWidth:"5px",className:"text-[#d9cbe3] hover:text-[#f4d8ff]"}},uA=(e,t)=>({borderImageSource:`url("${e.image}")`,borderImageSlice:e.slice,borderImageRepeat:"stretch",borderStyle:"solid",borderColor:"transparent",borderWidth:t?e.mobileBorderWidth:e.borderWidth,borderRadius:0,backgroundColor:"transparent",boxShadow:"none"}),lA=e=>["1","true","yes","on"].includes("".trim().toLowerCase()),Ki=lA(),_l=()=>{if(typeof window>"u")return"";const t=fn(window.location.pathname).match(/^\/share\/([^/?#]+)$/);if(t!=null&&t[1])return decodeURIComponent(t[1]);const r=new URLSearchParams(window.location.search);return r.get("save")||r.get("sharedSave")||""},dA=()=>typeof window>"u"?"":new URLSearchParams(window.location.search).get("openSave")||"",fA=(e,t)=>!!(e&&t)&&e.frameId===t.frameId&&e.speaker===t.speaker&&e.text===t.text,mA=()=>{var Gc,Yc,zc,Wc,$c,qc,Qc;const e=Io(),{chars:t,loading:r}=I0(),[a,n]=l.useState(D.MENU),[i,o]=l.useState(null),[c,f]=l.useState(0),[d,S]=l.useState(null),[b,w]=l.useState(ga),v=l.useRef(b),j=l.useRef(Promise.resolve(null)),$=u=>{v.current=u,w(u)},[V,Y]=l.useState(null),[q,K]=l.useState(null),[Se,ee]=l.useState(!1),[Z,fe]=l.useState(()=>{const u=localStorage.getItem("p2g_characterId");return u!=null&&u.trim()?u.trim():"RUKA"}),[ne,Pe]=l.useState(()=>{try{const u=localStorage.getItem("p2g_default_character_skins");return u?JSON.parse(u):{}}catch{return{}}}),[Ee,ye]=l.useState(null),[_e,be]=l.useState(null),[se,me]=l.useState(null),[Oe,B]=l.useState(null),[U,z]=l.useState(null),[re,le]=l.useState([]),ue=l.useRef(0),[he,Me]=l.useState(""),[_,m]=l.useState(null),[P,O]=l.useState(!1),[,k]=l.useState(!1),[A,N]=l.useState(null),M=_a.useRef(!1),[F,G]=l.useState(!1),[te,ie]=l.useState(!1),[Ie,ve]=l.useState(null),[it,Ye]=l.useState(!1),[at,ot]=l.useState(void 0),[Ve,Ct]=l.useState(null),[ei,Bt]=l.useState(0),Ft=l.useRef(!1),xt=l.useRef(!1),ze=l.useRef([]),pr=l.useRef(new Set),Ot=l.useRef(!1),bt=l.useRef(null),Je=l.useRef(0),sa=l.useRef(null),sr=l.useRef(null);l.useRef(new Map);const va=l.useRef(null),qt=l.useRef(null),Mn=l.useRef(""),[Un,La]=l.useState(null),[Tf,Bn]=l.useState(null),[Xo,Jo]=l.useState(!1),[Zo,gA]=l.useState(!1),[Sf,Tt]=l.useState(!1),[EA,ec]=l.useState(!1),[Af,Fn]=l.useState(null),[If,ti]=l.useState(!1),[Hn,Fr]=l.useState([]),[tc,Hr]=l.useState([]),jr=Hn[Hn.length-1]||null,[rc,ri]=l.useState(""),[ai,yf]=l.useState("browser"),[_f,Cf]=l.useState(()=>Xi()==="native-app"),[wf,ac]=l.useState(!1),[Rf,nc]=l.useState(!1),[sc,ic]=l.useState(null),Nf=()=>{window.dispatchEvent(new CustomEvent("p2g-open-steam-wishlist-modal"))},[W,Pf]=l.useState(()=>{const u=localStorage.getItem("p2g_language");if(u&&(u==="en"||u==="zh"||u==="ja"||u==="ru"))return u;try{const E=navigator.language.toLowerCase();return E.startsWith("zh")?"zh":E.startsWith("ja")?"ja":E.startsWith("ru")?"ru":"en"}catch{return"en"}});l.useEffect(()=>{const u=Xi();yf(u),u!=="browser"&&ac(!1)},[]),l.useEffect(()=>{let u=!0;return eg().then(E=>{u&&E&&ic(E)}),()=>{u=!1}},[]);const[Te,ia]=l.useState(()=>{try{const u=localStorage.getItem("p2g_user");return u?JSON.parse(u):null}catch{return null}}),St=HE(Te==null?void 0:Te.id),[xf,oc]=l.useState({version:1,entries:[]}),[oa,ka]=l.useState("ready"),[Of,vf]=l.useState("owner"),Vr=l.useRef(null),ca=l.useRef("owner"),ct=l.useRef((Te==null?void 0:Te.id)||null),Da=l.useRef(0),ir=l.useRef(0),Ma=l.useRef(new Set);ct.current=(Te==null?void 0:Te.id)||null;const Gr=(u,E="owner",I=ct.current)=>{Vr.current=u,ca.current=E,S(u),vf(E)},cc=()=>{oc({version:1,entries:[]}
219),ka("ready"),Ma.current=new Set},Ua=(u,E=!0)=>{Da.current+=1,ir.current+=1,St.invalidateSession(u),cc(),E&&Gr(null,"owner",null)},Lf=()=>{Da.current+=1,ir.current+=1,St.invalidateRequest(),Fr([]),Hr([])},ni=u=>{Da.current+=1,ir.current+=1,St.beginSession(u),cc(),Fr([]),Hr([]),Gr(null,"owner",null)},si=l.useMemo(()=>tA(),[]),uc=l.useMemo(()=>D1({tokenReader:()=>localStorage.getItem("p2g_token"),offlineStore:si}),[si]),Ue=l.useCallback((u,E="push")=>{if(n(u),E==="none")return;const I=fp[u];!I||fn(window.location.pathname)===I&&E==="push"||(E==="replace"?window.history.replaceState({},"",I):window.history.pushState({},"",I))},[]),lc=nA({user:Te,language:W,appState:a,gateway:uc,offlineStore:si,navigate:Ue}),{identity:gr,preparation:kf,preparationActive:Df,preparationTerminal:Mf,preparationUncertain:Uf,preparationError:Bf,preparationCancelling:Ff,sessions:jn,sessionsLoading:Hf,sessionsError:jf,resetMemory:Vf,loadSessions:Gf,loadSession:dc,deleteSession:Yf,startResearch:fc,exitRoom:mc,activePresentation:ua,resolveSessionPresentation:zf}=lc,Ht=()=>{Ua("logout"),Vf(),localStorage.removeItem("p2g_token"),localStorage.removeItem("p2g_user"),ia(null)},Wf=u=>{ct.current=(u==null?void 0:u.id)||null,ni((u==null?void 0:u.id)||null),ia(u),localStorage.setItem("p2g_user",JSON.stringify(u)),Ue(D.MENU,"replace")},hc=u=>{(u==null?void 0:u.id)!==ct.current&&(ct.current=(u==null?void 0:u.id)||null,ni((u==null?void 0:u.id)||null)),ia(u),localStorage.setItem("p2g_user",JSON.stringify(u))},$f=(u,E)=>{const I=(u||"").trim();if(!I||I.length<=E)return I;const y=Math.floor(E*.6),C=Math.max(0,E-y-18);return`${I.slice(0,y)} 220 221[ä¸é´å å®¹å·²æªæ] 222 223${I.slice(-C)}`},ii=(u,E)=>{const I=t.find(y=>y.id===String(u||"").toUpperCase());return I?{kind:"default",id:I.id}:E!=null&&E.dbId?{kind:"cloud",dbId:E.dbId}:E?{kind:"local",name:E.name,...E.prompt?{guide:E.prompt}:{},...E.performanceProfile?{performanceProfile:E.performanceProfile}:{}}:{kind:"local",name:(jt==null?void 0:jt.name)||(pe==null?void 0:pe.speaker)||String(u||"Character")}},pc=()=>{var E;const u=We.find(I=>I.id===Z);return((E=i==null?void 0:i.characterReference)==null?void 0:E.kind)==="local"&&u&&!u.dbId?ii(Z,u):(i==null?void 0:i.characterReference)||ii(Z,u)},qf=()=>{if(!i||!pe)return"";const u=Array.from(new Set([...vt,pe.id])).map(I=>i.frames.find(y=>y.id===I)).filter(I=>!!I).slice(-10).map(I=>{const y=I.blackboard?` 224æ¿ä¹¦ï¼${I.blackboard}`:"";return`${I.speaker||"æç½"}ï¼${I.text}${y}`}).join(` 225 226`),E=pe.choices&&pe.choices.length>0?` 227å½åå¯éé¡¹ï¼ 228${pe.choices.map((I,y)=>`${y+1}. ${I.text}`).join(` 229`)}`:"";return[`æ é¢ï¼${i.title||"æªå½åå§æ "}`,`æè¦ï¼${i.summary||"ææ æè¦"}`,`å½åèæ¯ï¼${(Ee==null?void 0:Ee.name)||pe.background||"æªæå®"}`,`å½å帧è§è²ï¼${pe.speaker||"æç½"}`,`æè¿å§æ ï¼ 230${u||"ææ "}`,E?E.trim():""].filter(Boolean).join(` 231 232`)},gc=l.useRef(!1);l.useEffect(()=>()=>{var u;(u=sr.current)==null||u.abort()},[]);const[Qf,Ec]=l.useState(!1);l.useEffect(()=>{K0(),J0();try{window.self!==window.top&&Ec(!0)}catch{Ec(!0)}const u=new URLSearchParams(window.location.search),E=fn(window.location.pathname);if(u.get("page")==="admin")n(D.ADMIN);else if(E==="/terms")$r(W==="zh"?"/docs/Terms_Of_Service_CN.md":"/docs/Terms_Of_Service_EN.md",He[W].termsOfService||"Terms of Service","none");else if(E==="/privacy")$r(W==="zh"?"/docs/Privacy_Policy_CN.md":"/docs/Privacy_Policy_EN.md",He[W].privacyPolicy||"Privacy Policy","none");else if(u.get("page")==="terms")$r(W==="zh"?"/docs/Terms_Of_Service_CN.md":"/docs/Terms_Of_Service_EN.md",He[W].termsOfService||"Terms of Service","replace");else if(u.get("page")==="privacy")$r(W==="zh"?"/docs/Privacy_Policy_CN.md":"/docs/Privacy_Policy_EN.md",He[W].privacyPolicy||"Privacy Policy","replace");else{const x=Au(E);x&&n(x)}const I=u.get("code"),y=u.get("error"),C=u.get("state")||"";if(I)(async()=>{const H=`${C}:${I}`,J=sessionStorage.getItem("p2g_oauth_callback_key");if(gc.current||J===H)return;gc.current=!0,sessionStorage.setItem("p2g_oauth_callback_key",H),(()=>{const de=new URLSearchParams(window.location.search);de.delete("code"),de.delete("state");const we=window.location.pathname+(de.toString()?`?${de.toString()}`:"");window.history.replaceState({},"",we)}
232)();const Re=C.startsWith("watcha_")?"watcha":"discord",Ae=Re==="watcha"?"/api/auth/watcha":"/api/auth/discord",ce=Re==="watcha"?"Watcha OAuth failed":"Discord OAuth failed";try{const de=localStorage.getItem("p2g_token"),we={"Content-Type":"application/json"};de&&(we.Authorization=`Bearer ${de}`);const je=await fetch(Ae,{method:"POST",headers:we,body:JSON.stringify(Z0({code:I,state:C}))}),Ze=await je.json();if(!je.ok)throw new Error(Ze.error||ce);if(Ze.token){localStorage.setItem("p2g_token",Ze.token),localStorage.setItem("p2g_user",JSON.stringify(Ze.user)),ia(Ze.user);const nt=He[W];await ke(nt.updateSuccess||"Success",{variant:"success"})}}catch(de){console.error("OAuth Error:",de),await ke(de.message||ce,{variant:"error"})}})();else if(y){ke(y||"OAuth canceled",{variant:"error"});const x=new URLSearchParams(window.location.search);x.delete("error"),x.delete("error_description");const H=window.location.pathname+(x.toString()?`?${x.toString()}`:"");window.history.replaceState({},"",H)}},[]),l.useEffect(()=>{const u=()=>{const E=new URLSearchParams(window.location.search),I=fn(window.location.pathname);if(E.get("page")==="admin"){n(D.ADMIN);return}if(I==="/terms"){$r(W==="zh"?"/docs/Terms_Of_Service_CN.md":"/docs/Terms_Of_Service_EN.md",He[W].termsOfService||"Terms of Service","none");return}if(I==="/privacy"){$r(W==="zh"?"/docs/Privacy_Policy_CN.md":"/docs/Privacy_Policy_EN.md",He[W].privacyPolicy||"Privacy Policy","none");return}const y=Au(I);y&&n(y)};return window.addEventListener("popstate",u),()=>window.removeEventListener("popstate",u)},[W]),h0({setExtensionAutoStart:O,setExtensionBlackboard:k,setExtensionFile:m});const Ba=_a.useRef(!1);l.useEffect(()=>{if(!(Ba.current||!Te))try{const u=new URLSearchParams(window.location.search),E=u.get("p2g_doc_url");if(!E)return;Ba.current=!0;const I=u.get("p2g_doc_name")||"document.pdf",y=u.get("p2g_doc_type")||"pdf",C=u.get("p2g_auto_start")==="1",x=localStorage.getItem("p2g_token");if(!x){Ba.current=!1;return}fetch("/api/document-from-url",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${x}`},body:JSON.stringify({url:E,name:I})}).then(async H=>{const J=new URL(window.location.href);if(J.searchParams.delete("p2g_doc_url"),J.searchParams.delete("p2g_doc_name"),J.searchParams.delete("p2g_doc_type"),J.searchParams.delete("p2g_auto_start"),J.searchParams.delete("p2g_blackboard"),window.history.replaceState({},"",J.pathname+(J.search||"")+(J.hash||"")),!H.ok){const ce=await H.json().catch(()=>({}));throw new Error(ce.error||`è·å失败: ${H.status}`)}const oe=await H.blob(),Re=H.headers.get("Content-Type")||(y==="pdf"?"application/pdf":"application/vnd.openxmlformats-officedocument.wordprocessingml.document"),Ae=new File([oe],I,{type:Re});O(C),m(Ae)}).catch(H=>{console.error("document-from-url failed",H),Ba.current=!1})}catch{Ba.current=!1}},[Te]);const Kf=()=>{try{window.top?window.top.location.href="https://paper2gal.com":window.location.href="https://paper2gal.com"}catch{window.location.href="https://paper2gal.com"}},[We,Vn]=l.useState([]),[bc,Gn]=l.useState(!1);l.useEffect(()=>{localStorage.removeItem("p2g_custom_chars")},[]),l.useEffect(()=>{let u=!1;if(Gn(!1),Te){const E=localStorage.getItem("p2g_token");E?st("/api/user/characters",{headers:{Authorization:`Bearer ${E}`}}).then(I=>{if(I.status===401)throw Ht(),new Error("Unauthorized");return I.json()}).then(I=>{if(!u&&Array.isArray(I)){const y=x=>{if(Array.isArray(x))return x.filter(H=>typeof H=="string"&&H);if(typeof x=="string"&&x.trim())try{const H=JSON.parse(x);return Array.isArray(H)?H.filter(J=>typeof J=="string"&&J):[]}catch{return[]}return[]},C=I.map(x=>({dbId:x.id,id:x.characterId,name:x.name,prompt:x.prompt,performanceProfile:x.performanceProfile??void 0,avatarUrl:x.avatarUrl,renderMode:x.renderMode,live2d:x.live2d,cgImages:y(x.cgImages),isShared:x.isShared,isBorrowed:x.isBorrowed,borrowId:x.borrowId,borrowCount:x.borrowCount,communityStatus:x.communityStatus,voiceRefAudioUrl:x.voiceRefAudioUrl??void 0,voiceRefText:x.voiceRefText??void 0,synthesisVersion:x.synthesisVersion??void 0,layout:x.layout??void 0,expressions:hu(x)}
232));Vn(x=>{const H=[...C];return x.forEach(J=>{H.some(oe=>oe.id===J.id)||H.push(J)}),H})}}).catch(I=>{!u&&I.message!=="Unauthorized"&&console.error("Failed to fetch custom characters",I)}).finally(()=>{u||Gn(!0)}):(Gn(!0),Ht())}else Vn([]),Gn(!0);return()=>{u=!0}},[Te]),l.useEffect(()=>{if(!bc||r)return;const u=tp(String(Z||""),t.map(E=>E.id),We.map(E=>E.id));u!==Z&&fe(u)},[Z,We,bc,t,r]);const[Qt,Yr]=l.useState(!1),[Kt,oi]=l.useState(!1),or=l.useRef(null),[Er,Xf]=l.useState(!1),[Tc,Jf]=l.useState({audio:null,emotion:lt.NEUTRAL}),[zr,Zf]=l.useState(()=>{const u=localStorage.getItem("p2g_bgmVolume");if(u!=null)return parseFloat(u);const E=localStorage.getItem("p2g_volume");return E?parseFloat(E):.3}),[la,em]=l.useState(()=>{const u=localStorage.getItem("p2g_voiceVolume");if(u!=null)return parseFloat(u);const E=localStorage.getItem("p2g_volume");return E?parseFloat(E):.9}),ci=l.useRef(null),Fa=l.useRef(null),Ha=l.useRef(null),ui=l.useRef(new Map),li=l.useRef(new Set),[ja,tm]=l.useState(()=>{var u;return typeof navigator<"u"&&((u=navigator.userActivation)==null?void 0:u.hasBeenActive)===!0}),[di]=l.useState(()=>Iu[Math.floor(Math.random()*Iu.length)]),[br,rm]=l.useState(()=>{const u=localStorage.getItem("p2g_bgmUrl");return up(u)}),[Yn,fi]=l.useState([]),Sc=l.useRef(!1),mi=a===D.LOADING||a===D.PLAYING||a===D.FINISHED||a===D.ERROR;l.useEffect(()=>{(async()=>{try{const E=await xi.loadBgms();if(E&&E.length>0)fi(E);else{const I=localStorage.getItem("p2g_customBgms");if(I){const y=JSON.parse(I);fi(y),xi.saveBgms(y),localStorage.removeItem("p2g_customBgms")}}}catch(E){console.error("Failed to load custom BGMs from DB",E)}})()},[]),l.useEffect(()=>{a===D.MENU&&(Sc.current||(Sc.current=!0,R0({imageUrls:op},{delayMs:500})))},[a,br]),l.useEffect(()=>{if(ja)return;const u=()=>tm(!0);return window.addEventListener("pointerdown",u,{once:!0}),window.addEventListener("keydown",u,{once:!0}),()=>{window.removeEventListener("pointerdown",u),window.removeEventListener("keydown",u)}},[ja]);const am=u=>{if(!u.startsWith("/assets/"))return Promise.resolve(u);const E=ui.current.get(u);if(E)return E;const I=fetch(u,{cache:"force-cache"}).then(y=>{if(!y.ok)throw new Error(`BGM load failed: ${y.status}`);return y.blob()}).then(y=>{const C=URL.createObjectURL(y);return li.current.add(C),C}).catch(()=>u);return ui.current.set(u,I),I},[jt,Va]=l.useState(null),hi=t.find(u=>u.id===String(Z||"").toUpperCase())?ne[String(Z||"").toUpperCase()]:null,pi=u=>{var x,H;const E=t.find(J=>J.id===String(u||"").toUpperCase());if(!E)return null;const I=ne[E.id],y=pa(E,I),C=E.name||((x=E.names)==null?void 0:x[W])||((H=He[W])==null?void 0:H[E.nameKey])||E.id;return{name:String(C||E.id),avatarUrl:(y==null?void 0:y.avatarUrl)||E.avatarUrl,renderMode:E.renderMode,live2d:vi(E,!0),expressions:(y==null?void 0:y.expressions)||E.expressions,cgImages:(y==null?void 0:y.cgImages)||E.cgImages||[],defaultSkinId:I||null}},[zn,Wn]=l.useState(!1),[$n,nm]=l.useState(()=>{const u=localStorage.getItem("p2g_textSpeed");return u?parseInt(u):30}),[qn,sm]=l.useState(()=>{const u=localStorage.getItem("p2g_dialogueFontScale"),E=u?parseFloat(u):1;return Number.isFinite(E)?Math.min(1.4,Math.max(.8,E)):1}),[Ga,im]=l.useState(()=>{const u=localStorage.getItem("p2g_gameUiPreset");return u==="floral"||u==="sakura"||u==="gothic"||u==="fullwidth"?u:"classic"}),[Ac,Qn]=l.useState(Te?null:!1),[om,Ya]=l.useState(!!Te),gi=l.useRef(0),Ic=l.useRef({userId:void 0,showSettings:!1}),[Kn,cm]=l.useState(()=>{const u=localStorage.getItem("p2g_autoAdvanceDelayMs"),E=u?parseInt(u,10):2e3;return Number.isFinite(E)?Math.min(3e4,Math.max(2e3,E)):2e3}),[Xn,um]=l.useState(()=>localStorage.getItem("p2g_autoAdvanceByVoice")==="1"),[mt,lm]=l.useState(()=>localStorage.getItem("p2g_outputLanguage")||""),[Jn,dm]=l.useState(()=>localStorage.getItem("p2g_voiceLanguage")||"auto"),[wt,fm]=l.useState(()=>localStorage.getItem("p2g_narrativeStyle")==="lighthearted"?"lighthearted":"classic"),[ht,yc]=l.useState(()=>localStorage.getItem("p2g_playerNickname")||""),[Zn,mm]=l.useState(()=>OE()),hm=l.useCallback(async({text:u,documentFiles:E})=>{var C;if(!Te){await ke(He[W].loginRequired||"请å
ç»å½å使ç¨ç 究室ã",{variant:"info"}),n(D.LOGIN);return}if(!u.trim()&&E.length===0)return;const I=t.find(x=>x.id===String(Z||"").toUpperCase()),y=We.find(x=>x.id===Z);me({text:u,documentFiles:E,characterId:Z,skinId:((C=pa(I,I?ne[I.id]:null))==null?void 0:C.id)||"base",outputLanguage:sn(mt,W),narrativeStyle:wt,playerAddress:ht.trim()||null}),z(!I&&!y?W==="zh"?"å½åè§è²è§è§æä¸å¯ç¨ï¼å°ä½¿ç¨å®å
¨å ä½å¾ã":"The selected character visual is unavailable; a safe placeholder will be used.":null),B(null),Me(""),n(D.BACKGROUND_SELECT)},[Z,We,t,W,wt,mt,ht,ne,Te]),pm=l.useCallback(()=>{ue.current+=1,B(null),z(null),ye(null),me(null),mc()},[mc]),gm=l.useCallback(async(u,E,I)=>{var Re,Ae;const y=se;if(!y)return;const C=t.find(ce=>ce.id===String(y.characterId||"").toUpperCase()),x=We.find(ce=>ce.id===y.characterId),H=C?{kind:"default",id:C.id,skinId:((Re=pa(C,y.skinId))==null?void 0:Re.id)||"base",name:C.name||((Ae=C.names)==null?void 0:Ae[W])||C.id,reference:{kind:"default",id:C.id}}
232:x!=null&&x.dbId?{kind:"cloud",id:x.dbId,skinId:"base",name:x.name,reference:{kind:"cloud",dbId:x.dbId}}:null;if(!H){await ke(W==="zh"?"å½åè§è²æ æ³ç¨äºç 究室ï¼è¯·å
éæ©å¯ç¨è§è²ã":"This character cannot be used in Research Room. Choose an available character first.",{variant:"warning"});return}const J=I||(()=>{const ce=Pr.find(de=>de.url===u);return ce?{kind:"preset",id:ce.id}:void 0})();if(!J){await ke(W==="zh"?"è¯·éæ©ææçå¾çèæ¯ã":"Choose a valid image background.",{variant:"warning"});return}const oe=Qo(sA(y.text,y.documentFiles),{character:H,background:{kind:J.kind,id:J.id,name:E||"Background"},outputLanguage:y.outputLanguage,narrativeStyle:y.narrativeStyle,playerAddress:y.playerAddress});ye({url:u,name:E}),B(oe),z(null),me(null),await fc({text:y.text,documentFiles:y.documentFiles,presentation:oe})},[We,t,W,se,fc]),Em=l.useCallback(u=>{const E=jn.find(I=>I.sessionId===u);B((E==null?void 0:E.presentation)??null),z(null),ye(null),dc(u)},[dc,jn]),bm=l.useCallback(async()=>{var H,J;if(!await du(W==="zh"?"å°æå½åèåè§è²ä¸èæ¯ä¿åå°æ¤æ§ä¼è¯ï¼å¹¶ç¨äºåç»æé®ãæ¯å¦ç»§ç»ï¼":"Save the current menu character and background to this legacy session for future questions?",{title:W==="zh"?"确认ç ç©¶è§è²":"Confirm research persona",variant:"warning"}))return null;const E=t.find(oe=>oe.id===String(Z||"").toUpperCase()),I=We.find(oe=>oe.id===Z),y=E?{kind:"default",id:E.id,skinId:((H=pa(E,ne[E.id]))==null?void 0:H.id)||"base",name:E.name||((J=E.names)==null?void 0:J[W])||E.id,reference:{kind:"default",id:E.id}}:I!=null&&I.dbId?{kind:"cloud",id:I.dbId,skinId:"base",name:I.name,reference:{kind:"cloud",dbId:I.dbId}}:null,C=Ee&&Pr.find(oe=>oe.url===Ee.url),x=Ee&&re.find(oe=>oe.url===Ee.url);return!y||!Ee||!C&&!x?null:{character:y,background:C?{kind:"preset",id:C.id,name:C.name}:{kind:"custom",id:x.id,name:x.name||"Background"},outputLanguage:sn(mt,W),narrativeStyle:wt,playerAddress:ht.trim()||null}},[Z,We,t,W,wt,mt,ht,re,Ee,ne]),Tm=l.useCallback(u=>{const E=++ue.current;B(u);const I=u.character.kind==="default"?t.some(C=>C.id===u.character.id):We.some(C=>C.dbId===u.character.id||C.id===u.character.id);if(z(I?null:W==="zh"?"ä¿åçç ç©¶è§è²å·²ä¸å¯ç¨ï¼æ æ³ç»§ç»æé®ã":"The saved research character is unavailable; questions are disabled."),u.background.kind==="preset"){const C=Pr.find(x=>x.id===u.background.id);C?ye({url:C.url,name:C.name}):(ye({url:Vt[0],name:"Default"}),z(W==="zh"?"ä¿åçç ç©¶èæ¯å·²ä¸å¯ç¨ï¼å·²ä½¿ç¨å®å
¨èæ¯ã":"The saved research background is unavailable; a safe fallback is shown."));return}const y=re.find(C=>C.id===u.background.id);if(y){ye({url:y.url,name:y.name||u.background.name});return}st("/api/user/backgrounds",{headers:{Authorization:`Bearer ${localStorage.getItem("p2g_token")||""}`}}).then(C=>C.ok?C.json():[]).then(C=>{if(E!==ue.current)return;const x=Array.isArray(C)&&C.find(H=>(H==null?void 0:H.id)===u.background.id&&typeof(H==null?void 0:H.url)=="string");x?(le(H=>H.some(J=>J.id===x.id)?H:[...H,x]),ye({url:x.url,name:x.name||u.background.name})):(ye({url:Vt[0],name:"Default"}),z(W==="zh"?"ä¿åçç ç©¶èæ¯å·²ä¸å¯ç¨ï¼å·²ä½¿ç¨å®å
¨èæ¯ã":"The saved research background is unavailable; a safe fallback is shown."))}).catch(()=>{E===ue.current&&(ye({url:Vt[0],name:"Default"}),z(W==="zh"?"ä¿åçç ç©¶èæ¯ææ¶ä¸å¯ç¨ï¼å·²ä½¿ç¨å®å
¨èæ¯ã":"The saved research background is temporarily unavailable; a safe fallback is shown."))})},[We,t,W,re]);l.useEffect(()=>{localStorage.setItem("p2g_bgmVolume",zr.toString())},[zr]),l.useEffect(()=>{localStorage.setItem("p2g_voiceVolume",la.toString())},[la]),l.useEffect(()=>{localStorage.setItem("p2g_textSpeed",$n.toString())},[$n]),l.useEffect(()=>{localStorage.setItem("p2g_dialogueFontScale",qn.toString())},[qn]),l.useEffect(()=>{localStorage.setItem("p2g_gameUiPreset",Ga)},[Ga]),l.useEffect(()=>{const u=(Te==null?void 0:Te.id)??null,E=Ic.current,I=E.userId!==u,y=zn&&!E.showSettings;if(Ic.current={userId:u,showSettings:zn},!I&&!y)return;const C=++gi.current;if(!Te){Qn(!1),Ya(!1);return}const x=localStorage.getItem("p2g_token");if(!x){Qn(!1),Ya(!1);return}I&&Qn(null),Ya(!0),st("/api/membership/status",{headers:{Authorization:`Bearer ${x}`}}).then(async H=>{if(H.status===401||H.status===403)return{membership:{active:!1}};if(!H.ok)throw new Error("membership status failed");return H.json()}).then(H=>{var J;C===gi.current&&(Qn(((J=H==null?void 0:H.membership)==null?void 0:J.active)===!0),Ya(!1))}).catch(()=>{C===gi.current&&Ya(!1)})},[zn,Te==null?void 0:Te.id]);const Tr=oA(Ga)&&Ac!==!0?"classic":Ga,es=cA[Tr],za=es?uA(es,e):void 0,Wa=Tr==="fullwidth"?`${e?"p-2":"p-2.5"} border-0 bg-transparent text-white/85 shadow-none transition-all hover:scale-110 hover:text-white`:es?`${e?"h-9 w-9":"h-12 w-12"} ${es.className} flex shrink-0 items-center justify-center border-solid border-transparent bg-transparent roun
232ded-none shadow-none transition-all hover:scale-[1.04] active:scale-95`:`${e?"min-h-11 min-w-11 p-2":"p-3"} bg-black/20 backdrop-blur-md border border-white/30 rounded-full text-white hover:bg-white hover:text-brand-blue shadow-lg transition-all`,da=e?17:20;l.useEffect(()=>{localStorage.setItem("p2g_autoAdvanceDelayMs",Kn.toString())},[Kn]),l.useEffect(()=>{localStorage.setItem("p2g_autoAdvanceByVoice",Xn?"1":"0")},[Xn]),l.useEffect(()=>{localStorage.setItem("p2g_default_character_skins",JSON.stringify(ne))},[ne]),l.useEffect(()=>{localStorage.setItem("p2g_characterId",String(Z))},[Z]),l.useEffect(()=>{localStorage.setItem("p2g_language",W)},[W]),l.useEffect(()=>{localStorage.setItem("p2g_outputLanguage",mt)},[mt]),l.useEffect(()=>{localStorage.setItem("p2g_voiceLanguage",Jn)},[Jn]),l.useEffect(()=>{vE(Zn)},[Zn]),l.useEffect(()=>{localStorage.setItem("p2g_narrativeStyle",wt)},[wt]),l.useEffect(()=>{br.length<1e3&&localStorage.setItem("p2g_bgmUrl",br)},[br]),l.useEffect(()=>{Yn.length>0&&xi.saveBgms(Yn).catch(u=>{console.error("Failed to persist custom BGMs",u)})},[Yn]),l.useEffect(()=>{if(localStorage.setItem("p2g_playerNickname",ht),Te&&typeof ht=="string"){const u=localStorage.getItem("p2g_token");u?st("/api/user/profile",{method:"PUT",headers:{"Content-Type":"application/json",Authorization:`Bearer ${u}`},body:JSON.stringify({playerNickname:ht})}).then(E=>{E.status===401&&Ht()}).catch(E=>console.error("Auto-sync nickname failed:",E)):Ht()}},[ht,Te==null?void 0:Te.id]);const[_c,ts]=l.useState(!1),[$a,Wr]=l.useState(!1),[Cc,qa]=l.useState([]),[Sm,Ei]=l.useState(0),[Am,bi]=l.useState(1),[Im,ym]=l.useState(()=>ku(window.innerWidth*.38,window.innerWidth));l.useEffect(()=>{const u=ct.current;if(!u||ca.current!=="owner"||!Vr.current||!i)return;const E=String(Je.current),I=i.frames[c];if(!I)return;const y={frameId:I.id,speaker:I.speaker,text:I.text},C=Vr.current;C&&St.assignSave({ownerId:u,saveId:C,generationId:E,anchor:y}).then(()=>St.snapshotReady({ownerId:u,saveId:C,generationId:E,anchor:y}))},[c,d,Of,i,St,Te==null?void 0:Te.id]);const[_m,Cm]=l.useState(""),[wm,Rm]=l.useState(""),$r=(u,E,I="push")=>{if(Cm(u),Rm(E),n(D.DOCS),I!=="none"){const y=u.toLowerCase().includes("terms")?"/terms":"/privacy";I==="replace"?window.history.replaceState({},"",y):window.history.pushState({},"",y)}},[Nm,rs]=l.useState(!1),[wc,Rc]=l.useState(!1),[Pm,xm]=l.useState(Zi);l.useEffect(()=>{if(_l().trim())return;let u=!1,E=null;return(async()=>{var x;let y=Zi;try{const H=await st("/api/announcements");if(H.ok){const J=await H.json().catch(()=>[]);Array.isArray(J)&&((x=J[0])!=null&&x.id)&&(y=String(J[0].id))}}catch(H){console.warn("Announcement check failed:",H)}if(u)return;xm(y),localStorage.getItem("p2g_last_seen_announcement")!==y&&(Rc(!0),E=setTimeout(()=>{u||rs(!0)},1500))})(),()=>{u=!0,E&&clearTimeout(E)}},[]);const Om=()=>{rs(!1),Rc(!1),localStorage.setItem("p2g_last_seen_announcement",Pm)},Sr=l.useRef(0),Ti=l.useRef(!1),Si=l.useRef(0),Nc=async u=>{if(u<=0||!Te)return;const E=localStorage.getItem("p2g_token");if(!E||Ti.current)return;const I=Math.max(0,u-Si.current);if(I>0){Si.current+=I;const y=(Te.totalPlayTime??0)+I;ia(x=>x?{...x,totalPlayTime:y}:null);const C=localStorage.getItem("p2g_user");if(C){const x=JSON.parse(C);x.totalPlayTime=y,localStorage.setItem("p2g_user",JSON.stringify(x))}}Ti.current=!0;try{const y=await fetch("/api/user/play-time",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${E}`},body:JSON.stringify({increment:u}),keepalive:!0});if(y.ok){const C=await y.json();Sr.current=0,Si.current=0,ia(H=>H?{...H,totalPlayTime:C.totalPlayTime}:null);const x=localStorage.getItem("p2g_user");if(x){const H=JSON.parse(x);H.totalPlayTime=C.totalPlayTime,localStorage.setItem("p2g_user",JSON.stringify(H))}}}catch(y){console.error("Failed to sync play time, keep optimistic value",y)}finally{Ti.current=!1}};l.useEffect(()=>{let u;return a===D.PLAYING?u=window.setInterval(()=>{document.visibilityState!=="visible"||!document.hasFocus()||(Sr.current+=1,Sr.current>=60&&Nc(Sr.current))},1e3):Sr.current>0&&Nc(Sr.current),()=>{u&&clearInterval(u)}},[a,Te]),l.useEffect(()=>{const u=()=>{var E,I;if((E=qt.current)==null||E.finish("page_closed"),qt.current=null,Mn.current="",(I=va.current)==null||I.flush(!0),Sr.current>0&&Te){const y=localStorage.getItem("p2g_token");y&&fetch("/api/user/play-time",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${y}`},body:JSON.stringify({increment:Sr.current}),keepalive:!0})}};return window.addEventListener("beforeunload",u),()=>window.removeEventListener("beforeunload",u)},[Te]);const Vt=["/assets/local/backgrounds/default-scene.png"];l.useEffect(()=>{const u=y=>{const C=new Audio;return C.loop=!0,C.volume=zr,C.preload="none",C.dataset.sourceUrl=y,C},E=u(di),I=u(br);return Fa.current=E,Ha.current=I,ci.current=E,()=>{E.pause(),I.pause(),Fa.current=null,Ha.current=null,ci.current=null,li.current.forEach(y=>URL.revokeObjectURL(y)),li.current.clear(),ui.current.clear()}},[]),l.useEffect(()=>{Fa.current&&(Fa.current.volume=zr),Ha.current&&(Ha.current.volume=zr)},[zr]),l.useEffect(()=>{const u=Fa.current,E=Ha.current;if(!u||!E)return;let I=!1;const y=async(H,J)=>{H.dataset.sourceUrl=J;const oe=await am(J);I||H.dataset.sourceUrl!==J||(H.src!==oe&&(H.src=oe),W0(H,()=>{}))},C=ja&&a===D.MENU&&!Er,x=ja&&mi&&!Er;return ci.current=mi?E:u,C?y(u,di):u.pause(),x?y(E,br):E.pause(),()=>{I=!0}},[a,Er,mi,br,ja,di]);const Ai={[ha.LIBRARY]:"/assets/local/backgrounds/5.jpg",[ha.CLASSROOM]:"/assets/local/backgrounds/7.jpg",[ha.LAB]:"/assets/local/backgrounds/default-scene.png",[ha.ROOFTOP]:"/assets/local/backgrounds/2.jpg",[ha.CAFE]:"/assets/local/backgrounds/3.jpg",[ha.ABSTRACT]:"/assets/local/backgrounds/4.jpg"},Pc=u=>{let E=[];const I=t.find(C=>C.id===u);if(I){const C=pa(I,ne[I.id]);E=[C==null?void 0:C.avatarUrl,...Object.values((C==null?void 0:C.expressions)||{}
232),...(C==null?void 0:C.cgImages)||[]].filter(Boolean)}else{const C=We.find(x=>x.id===u);C&&(E=[C.avatarUrl,...Object.values(C.expressions||{})].filter(Boolean))}[...Vt,...E].forEach(C=>{const x=new Image;x.src=C})},vm=u=>{const y=ce=>(ce||"").replace(/\s+\n/g,` 233`).trim(),C=y(u);if(!C)return[];let x=C.split(/\n{2,}/g).map(ce=>y(ce)).filter(Boolean);x.length<=1&&(x=C.split(/\n+/g).map(ce=>y(ce)).filter(Boolean));const H=[];let J=[],oe=0;const Re=()=>{const ce=y(J.join(` 234 235`));ce&&H.push(ce),J=[],oe=0},Ae=ce=>{const de=y(ce);if(de){if(de.length>4500*1.6){oe>0&&Re();for(let we=0;we<de.length;we+=4500){const je=y(de.slice(we,we+4500));je&&H.push(je)}return}if(oe===0){J=[de],oe=de.length;return}if(oe+2+de.length<=4500){J.push(de),oe+=2+de.length;return}if(oe>=3e3){Re(),J=[de],oe=de.length;return}Re(),J=[de],oe=de.length}};for(const ce of x)Ae(ce);if(oe>0&&Re(),H.length>10){const ce=H.slice(0,9),de=H.slice(9).join(` 236 237`);return[...ce,y(de)].filter(Boolean)}return H},Lm=(u,E)=>{const I=u.frames.map(y=>{var H;const C=typeof y.nextFrameId=="number"?y.nextFrameId+E:void 0,x=(H=y.choices)==null?void 0:H.map(J=>({...J,nextFrameId:J.nextFrameId+E}));return{...y,id:y.id+E,...typeof C=="number"?{nextFrameId:C}:{},...x?{choices:x}:{}}});return{...u,frames:I}},km=(u,E)=>{var Re,Ae,ce;const I=E==="zh"?"æç½":E==="ja"?"ãã¬ã¼ã¿ã¼":E==="ru"?"ÑаÑÑказÑик":"Narrator",y=((Ae=(Re=u[0])==null?void 0:Re.title)==null?void 0:Ae.trim())||(E==="zh"?"精读":"Intensive Reading"),C=u.map(de=>(de.summary||"").trim()).filter(Boolean).slice(0,6).join(" / ");let x=[],H=0,J=1;const oe=de=>de.reduce((we,je)=>Math.max(we,je.id),0);for(let de=0;de<u.length;de++){const we=Lm(u[de],H),je=oe(we.frames);if(de>0){const Ze=je+1+J;J++,x.push({id:Ze,speaker:I,text:E==="zh"?`è¿å ¥ä¸ä¸å°èï¼ç¬¬ ${de+1}/${u.length} ç« ï¼ï¼æä»¬æä¸ä¸ç« ç»è®ºæ¥çå¾ä¸æ¨ã`:E==="ja"?`次ã®å°ç¯ï¼ç¬¬ ${de+1}/${u.length} ç« ï¼ã¸é²ã¿ãåç« ã®å 容ãè¸ã¾ãã¦ç¶ããè¦ã¦ããã¾ãã`:E==="ru"?`ÐеÑÐµÑ Ð¾Ð´Ð¸Ð¼ к ÑледÑÑÑÐµÐ¼Ñ ÑÑагменÑÑ (глава ${de+1}/${u.length}), пÑÐ¾Ð´Ð¾Ð»Ð¶Ð°Ñ Ð¼ÑÑÐ»Ñ Ð¿ÑедÑдÑÑей ÑаÑÑи.`:`Moving to the next section (Chapter ${de+1}/${u.length}), continuing from the previous part.`,emotion:"NEUTRAL",background:((ce=we.frames[0])==null?void 0:ce.background)||"CLASSROOM"})}x=x.concat(we.frames),H=Math.max(oe(x),je),H=H+1e3}return{...u[0],title:E==="zh"?`精读ï¼${y}`:`Intensive Reading: ${y}`,summary:C||(E==="zh"?"åæ®µç²¾è¯»å·²å并为ä¸ç« ã":"Merged intensive reading into one chapter."),frames:x}},Dm=async(u,E,I,y,C,x,H,J,oe)=>{const Re=He[W];if(!Te){await ke(Re.loginRequired||"请å ç»å½å使ç¨è¯¥åè½ã",{variant:"info"}),n(D.LOGIN);return}Ua("new-generation"),Je.current+=1,Xh(),Fi({blackboard:!0}),M.current=!!y,Me(""),qa(Lu(J||[])),Ei(0),bi(1),Wr(!1);const Ae=!!C&&!x;typeof C=="boolean"?ie(Ae):x&&ie(!1);const ce=I!==!1;Ye(ce),Ki&&(sa.current={startedAtMs:Date.now(),voiceEnabled:Ae,intensiveReadingEnabled:!!x}),be({text:u,fingerprint:E,intensiveReadingEnabled:!!x,voiceEnabled:Ae,blackboardEnabled:ce,videoUrl:(H==null?void 0:H.trim())||void 0,documentFiles:J&&J.length>0?J:void 0,imageParsingEnabled:oe===!0,narrativeStyle:wt}),n(D.BACKGROUND_SELECT)};l.useEffect(()=>{if(a!==D.LOADING||Ve!=="script"||Un)return;const u=setInterval(()=>{Bt(E=>E>=98?E:Math.min(E+1,98))},1500);return()=>clearInterval(u)},[a,Ve,Un]),l.useEffect(()=>{if(!Xo||a!==D.LOADING)return;const u=E=>{E.preventDefault()};return window.addEventListener("beforeunload",u),()=>window.removeEventListener("beforeunload",u)},[a,Xo]),l.useEffect(()=>{if(Zo){const u=requestAnimationFrame(()=>ec(!0));return()=>cancelAnimationFrame(u)}else ec(!1)},[Zo]),l.useEffect(()=>{if(bt.current=i,!i)return;const u=new Set(i.frames.map(E=>E.id));i.frames.forEach(E=>pr.current.add(E.id)),ze.current=ze.current.filter(E=>!u.has(E.id))},[i]),l.useEffect(()=>{a!==D.PLAYING&&a!==D.FINISHED&&ve(null)},[a]),l.useEffect(()=>{a!==D.BACKGROUND_SELECT||!M.current||!_e||(M.current=!1,xc(Pr[0].url,Pr[0].name))},[a,_e]);const xc=async(u,E)=>{var Kc,Xc,Jc,Zc;if(!_e)return;const I=_e.blackboardEnabled!==!1;Ua("new-generation"),Je.current+=1;const{text:y,fingerprint:C,intensiveReadingEnabled:x,voiceEnabled:H,videoUrl:J,documentFiles:oe,imageParsingEnabled:Re,narrativeStyle:Ae="
237classic",entertainmentQuality:ce=Ae==="lighthearted"?"on":"off"}=_e,de=Array.isArray(oe)&&oe.length>0,we=!!H&&!x,je=!0,Ze=He[W];if(we){const Ce=t.find(xe=>xe.id===String(Z||"").toUpperCase()),qe=We.find(xe=>xe.id===Z);if(!(!!(Ce!=null&&Ce.voiceRefAudioUrl)||!!(qe!=null&&qe.voiceRefAudioUrl))){await ke(Ze.voiceModeCharNoVoiceHint||"å½åè§è²ä¸æ¯æè¯é³ï¼è¯·å ³éè¯é³æ¨¡å¼æéæ©å¸¦è¯é³çè§è²ååå¼å§ã",{variant:"info"});return}}ye({url:u,name:E}),Ki&&sa.current&&(sa.current.confirmedAtMs=Date.now()),n(D.LOADING),Ct("script"),Bt(0),Fi({blackboard:I}),Y(null),K(null),ee(!1),Bn(null),Ft.current=!1,xt.current=!1,ze.current=[],pr.current=new Set,Ot.current=!0,bt.current=null,La(null),o(null),f(0),Xt([]),$(ga()),Pc(Z);const nt=We.find(Ce=>Ce.id===Z),Jt=ii(Z,nt),os=Jt.kind==="local"?{kind:"local",name:Jt.name}:Jt,Qr=sn(mt,W),Ja=gg(Jn,Qr,W);let Ar=y;const Zt=(Ce,qe)=>{const Le=new Map;for(const xe of Ce)Le.set(xe.id,xe);for(const xe of qe){const lr=Le.get(xe.id);lr?Le.set(xe.id,{...lr,...xe}):Le.set(xe.id,xe)}return Array.from(Le.values())},Lt=(Ce,qe=[])=>{const Le=ze.current,xe=Zt(Ce.frames,[...Le,...qe]);return{...Ce,frames:xe}},Za=(Ce,qe)=>{if(!Ce||qe.length===0)return Ce;const Le=new Map;for(const yr of qe)Le.set(yr.frameId,yr);let xe=!1;const lr=Ce.frames.map(yr=>{const _r=Le.get(yr.id);return _r?(xe=!0,{...yr,voiceStatus:_r.voiceStatus,..._r.audioUrl?{audioUrl:_r.audioUrl}:{audioUrl:void 0}}):yr});return xe?{...Ce,frames:lr}:Ce},Ir=Ce=>{Ce.length===0||Je.current!==At||(ze.current=ze.current.map(qe=>{const Le=Ce.find(xe=>xe.frameId===qe.id);return Le?{...qe,voiceStatus:Le.voiceStatus,...Le.audioUrl?{audioUrl:Le.audioUrl}:{audioUrl:void 0}}:qe}),l.startTransition(()=>{o(qe=>{const Le=Za(qe,Ce);return Le&&(bt.current=Le),Le})}))};Je.current+=1;const At=Je.current;(Kc=sr.current)==null||Kc.abort(),sr.current=new AbortController,we&&(async()=>{try{const Ce=localStorage.getItem("p2g_token");if(!Ce)return;const qe=await st("/api/tts/queue-info",{headers:{Authorization:`Bearer ${Ce}`},cache:"no-store"});if(!qe.ok||Je.current!==At)return;const Le=await qe.json().catch(()=>null),xe=Ql(Le==null?void 0:Le.analysisVoice);xe&&Je.current===At&&Bn(lr=>lr??xe)}catch(Ce){console.warn("[voice-queue] failed to fetch initial queue info:",Ce)}})();try{Me(Ar);let Ce=null,qe=Promise.resolve();const Le=ge=>{const et=Ce;et&&(qe=qe.then(()=>Ii(ge,Z,et,{syncCurrentSaveId:!1,generationRunId:At})).catch(dr=>console.warn("[GenerationSave] Failed to persist incremental snapshot:",dr)))};let xe;const lr=ge=>{if(ge){if(La(ge),Bt(et=>np(ge,et)),we&&ge.textComplete===!0&&(Ot.current=!0,ze.current.length===0&&(xt.current=!1,Tt(!1))),typeof ge.voiceTotal=="number"&&ot({current:ge.voiceTerminal??0,total:ge.voiceTotal}),we&&(typeof ge.voiceQueueAhead=="number"||typeof ge.voiceQueueJobsAhead=="number")){const et=typeof ge.voiceQueueAhead=="number"?ge.voiceQueueAhead:ge.voiceQueueFramesAhead??ge.voiceQueueJobsAhead??0;Bn({queueAhead:Math.max(0,et),etaMinutes:Math.max(0,ge.voiceQueueEtaMinutes??et*ql),jobsAhead:typeof ge.voiceQueueJobsAhead=="number"?Math.max(0,ge.voiceQueueJobsAhead):void 0,framesAhead:typeof ge.voiceQueueFramesAhead=="number"?Math.max(0,ge.voiceQueueFramesAhead):void 0,state:ge.voiceQueueState,workerConcurrency:ge.voiceWorkerConcurrency})}ge.phase==="voice_wait"||we&&ge.textComplete===!0&&(ge.voicePending??0)>0?Ct("voice"):(ge.phase==="streaming"||ge.phase==="done")&&Ct("script")}};if(x&&!de){const ge=vm(Ar);if(ge.length===0)throw new Error(W==="zh"?"精读模å¼ï¼æªè½ä»ææ¡£ä¸åååºæææ®µè½ã":"Intensive reading: failed to split document into sections.");const et=[];let dr="";Fn({current:0,total:ge.length});for(let pt=0;pt<ge.length;pt++){Fn({current:pt,total:ge.length}),Bt(Math.min(98,Math.floor(pt/ge.length*98)));const en=["[[P2G_INTENSIVE_READING_MODE]]",`SECTION_INDEX: ${pt+1}`,`SECTION_TOTAL: ${ge.length}`,pt===0?"CONTINUITY: This is the first section.":`CONTINUITY: This is a direct continuation. Previous section summary (for context, do NOT re-introduce the story): 238${dr||"(empty)"}`,"","INSTRUCTIONS (CRITICAL):","- This is an intensive, chapter-by-chapter explanation.",'- For section 2+, DO NOT restart with a fresh intro like "ä»å¤©æä»¬æ¥..." or self-introduction. Start as if we are already in the middle of the lesson.',"- Keep the same speaking style and continue smoothly from the previous section.","- If you need a recap, limit it to 1-2 short frames max, then immediately continue into the new content.","- Focus on details: assumptions, notation, derivations, and concrete examples.",""].join(` 239`),tn=await Jh(`${en}${ge[pt]}`,Z,W,C,nt,Qr,Ja,E,je,ht,t,I,(Xc=sr.current)==null?void 0:Xc.signal,Ae,ce),tt=await an(tn);et.push(tt),dr=(tt.summary||"").trim(),Fn({current:pt+1,total:ge.length})}xe=km(et,W),I&&(xe=ki(xe)),Bt(100)}
239else{Ft.current=!0,Ot.current=!1,ze.current=[],pr.current=new Set;const ge=We.find(tt=>tt.id===Z),et=ge?{name:ge.name,avatarUrl:ge.avatarUrl,renderMode:ge.renderMode,live2d:vi(ge),expressions:ge.expressions,cgImages:ge.cgImages||[],defaultSkinId:null,layout:ge.layout}:pi(Z),dr={customBackgroundUrl:u,characterReference:os,...et?{charMetadata:et,defaultCharacterSkinId:et.defaultSkinId||null}:{}},pt={onNewFrames:(tt,Cr,Kr,Ri)=>{if(Je.current!==At)return;Ri&&Ri.length>0&&Ir(Ri);const Ni=tt.filter(Ge=>pr.current.has(Ge.id)?!1:(pr.current.add(Ge.id),!0));if(Ni.length>0&&(ze.current=Zt(ze.current,Ni),xt.current=!1,Tt(!1),l.startTransition(()=>{o(Ge=>{if(!Ge)return Ge;const Rt=Lt(Ge,Ni);bt.current=Rt;const Xr=new Set(Rt.frames.map(fr=>fr.id));return ze.current=ze.current.filter(fr=>!Xr.has(fr.id)),Ot.current&&ze.current.length===0&&(Ft.current=!1),Le(Rt),Rt}),n(Ge=>Ge===D.FINISHED?D.PLAYING:Ge)})),Kr&&lr(Kr),Cr){Bt(100),Ot.current=!0,Ft.current=ze.current.length>0,La(null);{const Ge=Kr,Rt=typeof(Ge==null?void 0:Ge.title)=="string"&&Ge.title.trim()?Ge.title.trim():null,Xr=typeof(Ge==null?void 0:Ge.summary)=="string"&&Ge.summary.trim()?Ge.summary.trim():null,fr=Array.isArray(Ge==null?void 0:Ge.documentAssets)?Ge.documentAssets:null;if(Rt||Xr||fr){const rn=bt.current;if(rn){const tu=Rt!=null&&rn.title!==Rt,ru=Xr!=null&&rn.summary!==Xr,au=fr!=null&&JSON.stringify(rn.documentAssets??[])!==JSON.stringify(fr);if(tu||ru||au){const Pi={...rn,...Rt&&tu?{title:Rt}:{},...Xr&&ru?{summary:Xr}:{},...fr&&au?{documentAssets:fr}:{}};bt.current=Pi,o(Pi),Le(Pi)}}}}xt.current&&ze.current.length===0&&(xt.current=!1,f(Ge=>{const Rt=bt.current;return Rt&&Ge>=Rt.frames.length-1&&(fa("completed"),vc()),Ge}))}},onVoiceUpdates:tt=>{Ir(tt)},onProgress:tt=>{lr(tt)}},en=de?(async()=>{var Cr;const{generateDocumentBatchIncremental:tt}=await Be(async()=>{const{generateDocumentBatchIncremental:Kr}=await import("./aiService-9EzGVred.js");return{generateDocumentBatchIncremental:Kr}},__vite__mapDeps([0,1,2,3,4,5,6,7]),import.meta.url);return tt({files:oe,characterId:Z,language:W,fingerprint:C||"",customCharacter:nt,outputLanguage:Qr,voiceLanguage:Ja,backgroundName:E,fixedBackground:je,playerNickname:ht,blackboardModeEnabled:I,imageParsingEnabled:Re===!0,voiceEnabled:we,narrativeStyle:Ae,entertainmentQuality:ce,callbacks:pt,signal:(Cr=sr.current)==null?void 0:Cr.signal})})():Zh(Ar,Z,W,C||"",nt,Qr,Ja,E,je,ht,I,we,pt,t,(Jc=sr.current)==null?void 0:Jc.signal,dr,J,Ae,ce),tn=await ap({generation:en,videoUrl:de?void 0:J,abortController:sr.current});xe=await an(Lt(tn)),I&&(xe=ki(xe)),bt.current=xe,xe.frames.forEach(tt=>pr.current.add(tt.id)),ze.current=ze.current.filter(tt=>!xe.frames.some(Cr=>Cr.id===tt.id)),Bt(50)}const yr=Ft.current||!Ot.current,_r=ge=>yr?Lt(ge):ge;xe={...xe,characterReference:os};let cs={...xe,customBackgroundUrl:u},eu=!1;(ge=>{if(!(eu||Je.current!==At)){if(eu=!0,Ki&&sa.current){const et=Date.now(),{startedAtMs:dr,confirmedAtMs:pt,voiceEnabled:en,intensiveReadingEnabled:tn}=sa.current,tt=et-dr,Cr=pt?pt-dr:0,Kr=pt?et-pt:tt;console.log(["[StartToGameTiming]",`totalMs=${tt}`,`totalSec=${(tt/1e3).toFixed(2)}`,`backgroundSelectMs=${Cr}`,`generationMs=${Kr}`,`frames=${Array.isArray(ge.frames)?ge.frames.length:0}`,`voice=${en===!0}`,`intensive=${tn===!0}`].join(" ")),sa.current=null}bt.current=_r(ge),ot(void 0),Ct(null),Bt(0),o(bt.current),f(0),n(D.PLAYING),Yr(!0)}})(cs),await iA();const wi=await Ii(cs,Z,void 0,{generationRunId:At});if(Je.current!==At)return;Ce=(wi==null?void 0:wi.id)??null;const sh=Ce;if(l.startTransition(()=>{o(ge=>{const et=_r(ge||cs);return bt.current=et,et})}),sh){const ge=_r(bt.current||cs);Le(ge)}}catch(Ce){if(Je.current!==At)return;if(Ce.message==="AUTH_REQUIRED"){await ke(Ze.loginRequired||"请å
ç»å½å使ç¨è¯¥åè½ã",{variant:"info"}),n(D.LOGIN);return}if(Ce.message==="BORROWED_CHARACTER_UNAVAILABLE"){await ke("åé
è§è²ææ¶ä¸å¯ç¨ï¼è¯·éè¯ã",{variant:"warning"}),n(D.MENU);return}if(Ce.message==="CHARACTER_UNAVAILABLE"){await ke("è§è²ææ¶ä¸å¯ç¨ï¼è¯·éè¯ã",{variant:"warning"}),n(D.MENU);return}if(typeof Ce.message=="string"&&Ce.message.startsWith("SAVE_LIMIT_REACHED")){const[,Le,xe]=Ce.message.split(":");await ke(W==="zh"?`åæ¡£æ°é已达å°ä¸éï¼${Le||"å½åæ°é"}/${xe||"ä¸é"}
239ï¼ã请å
å é¤ä¸éè¦çåæ¡£ï¼æ°ééå°ä¸é以ä¸ååçææ°ç游æå§æ
ã`:`Save limit reached (${Le||"current"}/${xe||"limit"}). Delete unused saves below the limit before generating a new story.`,{variant:"warning"}),n(D.MENU);return}if(Ce.message==="DAILY_LIMIT_EXCEEDED"||Ce.message&&(Ce.message.includes("Limit")||Ce.message.includes("429"))){await ke(Ze.dailyLimitExceeded||"仿¥ä½¿ç¨æ¬¡æ°å·²è¾¾ä¸éï¼è¯·ææ¥åæ¥æä½¿ç¨å
æ¢ç è·åæ°¸ä¹
次æ°ã",{variant:"warning"}),n(D.MENU);return}const qe={appState:a,language:W,characterId:Z,pdfParseMode:"none",errorLayerHint:(Ce==null?void 0:Ce.errorLayerHint)||"ai_api",outputLanguage:((Zc=mt==null?void 0:mt.trim)==null?void 0:Zc.call(mt))||"",isVoiceEnabled:we,blackboardModeEnabled:I,selectedBackground:Ee?{name:Ee.name,url:Ee.url}:null,pdfFiles:null,fingerprint:C||null};Cs(Ce,qe,{category:"llm",source:"generation"}).then(Le=>{Je.current===At&&Le&&K(Le)}).catch(()=>{}),Y(Ui(Ce==null?void 0:Ce.message,W)),n(D.ERROR)}finally{if(Je.current!==At)return;be(null),ot(void 0),Ct(null),Bt(0),Jo(!1),Fn(null),La(null)}},Mm=async(u,E,I=!1)=>{var J,oe;Ua("local-script"),Je.current+=1,Ft.current=!1,xt.current=!1,ze.current=[],pr.current=new Set,Ot.current=!0,Tt(!1);const y=E||Z;E&&fe(E);const C=ki(await an(u));await Fi({blackboard:C.frames.some(Re=>{var Ae;return!!((Ae=Re.blackboard)!=null&&Ae.trim())})});const x=((J=C.charMetadata)==null?void 0:J.defaultSkinId)||null;x&&Pe(Re=>({...Re,[String(y).toUpperCase()]:x}));const H=C.customBackgroundUrl||Ai[(oe=C.frames[0])==null?void 0:oe.background]||Vt[0];ye({url:H}),C.charMetadata?Va(C.charMetadata):Va(null),Pc(y),Me(""),qa([]),Wr(!1),o(C),f(0),Xt([]),$(ga()),n(D.PLAYING),Yr(!0)};l.useEffect(()=>{let u;return Qt&&(u=window.setTimeout(()=>{Yr(!1)},8e3)),()=>clearTimeout(u)},[Qt]),l.useEffect(()=>()=>{or.current&&window.clearTimeout(or.current)},[]);const Oc=()=>{or.current&&(window.clearTimeout(or.current),or.current=null),oi(!1)},vc=()=>{Kt||(or.current&&window.clearTimeout(or.current),xt.current=!1,Tt(!1),ts(!1),Fr([]),ti(!1),oi(!0),or.current=window.setTimeout(()=>{or.current=null,oi(!1),n(D.FINISHED)},dp))},[vt,Xt]=l.useState([]),as=(u,E=v.current)=>{const I=localStorage.getItem("p2g_token");if(!I||!u)return Promise.resolve(null);const y=j.current.catch(()=>null).then(async()=>{const C=await fetch(`/api/saves/${encodeURIComponent(u)}/choice-state`,{method:"PATCH",headers:{"Content-Type":"application/json",Authorization:`Bearer ${I}`},body:JSON.stringify({storyChoiceState:E})});if(!C.ok)throw new Error("Failed to sync story choice state");return C.json()});return j.current=y,y},Ii=async(u,E,I,y)=>{var ce,de;const C=ct.current,x=String((y==null?void 0:y.generationRunId)??Je.current),H=Da.current,J=()=>!!C&&ct.current===C&&Da.current===H&&((y==null?void 0:y.generationRunId)==null||Je.current===y.generationRunId);if(!J())return null;const oe=u||i,Re=E||Z;if(!oe||!C)return;const Ae=localStorage.getItem("p2g_token");if(Ae){try{const we=We.find(Lt=>Lt.id===Re),je=pi(Re),Ze=we?{name:we.name,avatarUrl:we.avatarUrl,renderMode:we.renderMode,live2d:vi(we),expressions:we.expressions,cgImages:we.cgImages||[],layout:we.layout}:je,nt=(je==null?void 0:je.defaultSkinId)||null,Jt=await an(oe),os=JSON.stringify({script:Jt,characterId:Re,defaultCharacterSkinId:nt,charMetadata:Ze,storyChoiceState:In(v.current,Jt.frames)}),Qr=(Jt.title||"").trim()||"æªå½å讲解",Ja=(Jt.summary||"").trim()||(((de=(ce=Jt.frames)==null?void 0:ce[0])==null?void 0:de.text)||"").trim().slice(0,200)||Qr,Ar=await fetch("/api/saves",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${Ae}`},body:JSON.stringify({chapterTitle:Qr,previewText:Ja,gameState:os,type:"auto",id:I??Vr.current})});if(Ar.status===401)return Ht(),null;if(Ar.ok){const Lt=await Ar.json();if(!J())return Lt;Ea(Lt,C),(y==null?void 0:y.syncCurrentSaveId)!==!1&&Gr(Lt.id,"owner",C),ca.current==="owner"&&Promise.all(Jt.frames.map(async Ir=>{if(!J()||ca.current!=="owner")return;const At={ownerId:C,saveId:Lt.id,generationId:x,anchor:{frameId:Ir.id,speaker:Ir.speaker,text:Ir.text}};await St.assignSave(At),J()&&await St.snapshotReady(At)}));const Za=await as(Lt.id,v.current).catch(Ir=>(console.warn("[StoryChoiceState] Failed to sync after save:",Ir),null));return Za&&J()&&Ea(Za,C),Za||Lt}const Zt=await Ar.json().catch(()=>null);if((Zt==null?void 0:Zt.code)==="SAVE_LIMIT_REACHED")throw new Error(`SAVE_LIMIT_REACHED:${typeof Zt.count=="number"?Zt.count:""}:${typeof Zt.limit=="number"?Zt.limit:""}`)}catch(we){if(console.error("Cloud save failed",we),we instanceof Error&&we.message.startsWith("SAVE_LIMIT_REACHED"))throw we}return null}},ns=async(u,E={})=>{var Re,Ae;const I=E.visibility||"owner",y=ct.current;if(I==="owner"&&(!y||u.userId!==y))return!1;const C=y,x=()=>H===ir.current&&ct.current===C;ni(C);const H=ir.current,J=u,oe=I==="owner"&&C===u.userId?Object.prototype.hasOwnProperty.call(E,"archiveFallback")?E.archiveFallback:ta(J.storyQuestionArchive)&&Number.isInteger(J.storyQuestionRevision)&&J.storyQuestionRevision>=0?{archive:J.storyQuestionArchive,revision:J.storyQuestionRevision}:null:null;Gr(null,I,C),qa([]),Wr(!1),ka("loading"),o(null),f(0);try{if(!Rg(u)){const nt=sd(u);return x()&&(await ke(xg(u),{variant:nt.kind==="failed"||nt.kind==="cancelled"?"error":"info"}),x()&&ka("ready")),!1}const ce=JSON.parse(u.gameState);Tt(!1),Me("");const de=await an(Sg(ce.script,u)),we=I==="owner"&&C&&C===u.userId?await St.loadArchive({saveId:u.id,ownerId:C,visibility:I,fallback:oe}):{archive:{version:1,entries:[]},revision:0,source:"public"};if(!x())return!1;oc(we.archive),ka("ready"),Gr(I==="owner"?u.id:null,I,I==="owner"?C:null),o(de),f(0),Xt([]),$(In(ce.storyChoiceState,de.frames)),fe(ce.characterId);const je=ce.defaultCharacterSkinId||((Re=ce.charMetadata)==null?void 0:Re.defaultSkinId);je&&Pe(nt=>({...nt,[String(ce.characterId).toUpperCase()]:je})),ce.charMetadata?Va(ce.charMetadata):Va(null);
239const Ze=de.customBackgroundUrl||Ai[(Ae=de.frames[0])==null?void 0:Ae.background]||Vt[0];return ye({url:Ze}),n(D.PLAYING),Yr(!0),!0}catch(ce){return x()&&(ka("ready"),console.error("Failed to load save",ce),await ke("Failed to load save",{variant:"error"})),!1}},ss=l.useRef(null);l.useEffect(()=>{const u=_l().trim();if(!u||ss.current===u)return;ss.current=u;const E=ir.current,I=ct.current,y=()=>ss.current===u&&ir.current===E&&ct.current===I;(async()=>{try{const x=await fetch(`/api/public/saves/${encodeURIComponent(u)}`);if(!x.ok)throw x.status===404?new Error(He[W].saveNotFound||"Save not found"):x.status===403?new Error(He[W].saveNotShared||"Save not shared"):new Error("Load failed");const H=await x.json();if(!y())return;await ns(H,{visibility:"public"})}catch(x){if(!y())return;ss.current=null,await ke(Ui((x==null?void 0:x.message)||"Load failed",W),{variant:"error"})}})()},[W]);const Qa=l.useRef(null);l.useEffect(()=>{const u=dA().trim();if(!u||!Te||Qa.current===u)return;Qa.current=u;const E=ir.current,I=ct.current,y=()=>Qa.current===u&&ir.current===E&&ct.current===I;(async()=>{try{const x=localStorage.getItem("p2g_token");if(!x)throw new Error(He[W].loginRequired||"Please log in first");const H=await fetch("/api/saves",{headers:{Authorization:`Bearer ${x}`},cache:"no-store"}),J=await H.json().catch(()=>[]);if(!H.ok)throw new Error((J==null?void 0:J.error)||"Failed to load saves");const oe=Array.isArray(J)?J.find(Ae=>(Ae==null?void 0:Ae.id)===u):null;if(!oe)throw new Error(He[W].saveNotFound||"Save not found");if(await ns(oe)&&Qa.current===u&&ct.current===I){const Ae=new URLSearchParams(window.location.search);Ae.delete("openSave");const ce=`${window.location.pathname}${Ae.toString()?`?${Ae}`:""}${window.location.hash}`;window.history.replaceState({},"",ce)}}catch(x){if(!y())return;Qa.current=null,await ke(Ui((x==null?void 0:x.message)||"Load failed",W),{variant:"error"})}})()},[Te==null?void 0:Te.id,W]);const Um=async()=>{const u=He[W];if(!Te)throw await ke(u.loginRequired||"请å
ç»å½å使ç¨è¯¥åè½ã",{variant:"info"}),new Error(u.loginRequired||"Login required");const E=localStorage.getItem("p2g_token");if(!E)throw await ke(u.loginRequired||"请å
ç»å½å使ç¨è¯¥åè½ã",{variant:"info"}),new Error(u.loginRequired||"Login required");let I=d;if(i){const H=await Ii(i,Z,I||void 0);I=(H==null?void 0:H.id)||I}if(!I)throw new Error(u.shareSaveMissing||"Unable to create a cloud save for sharing.");const y=await fetch(`/api/saves/${encodeURIComponent(I)}/share`,{method:"PATCH",headers:{"Content-Type":"application/json",Authorization:`Bearer ${E}`},body:JSON.stringify({isShared:!0})});if(y.status===401)throw Ht(),new Error(u.loginRequired||"Login required");const C=await y.json().catch(()=>null);if(!y.ok)throw new Error((C==null?void 0:C.error)||u.shareSaveFailed||"Failed to share save");Gr(C.id||I,"owner",ct.current);const x=`${window.location.origin}/?save=${encodeURIComponent(C.id||I)}`;return{saveId:C.id||I,shareUrl:x}},fa=u=>{var E;(E=qt.current)==null||E.finish(u),qt.current=null,Mn.current=""},yi=()=>H0({renderedScript:i,latestScript:bt.current,pendingFrames:ze.current}),Ka=u=>{i!==u&&(bt.current=u,o(E=>E===u?E:u))},Bm=()=>{if(Kt||oa==="loading")return;const u=yi();if(!u)return;const E=pu({renderedScript:i,navigableScript:u,currentFrameIndex:c});if(E===-1)return;const I=Ot.current&&ze.current.length===0,y=gu({script:u,currentFrameIndex:E,isStreaming:Ft.current&&!I,hasPendingFrames:ze.current.length>0});if(y.action==="goto"){xt.current=!1,Tt(!1),Ka(u),Xt(C=>[...C,y.historyFrameId]),f(y.nextIndex);return}if(y.action==="wait"){xt.current=!0,Tt(!0);return}y.action==="finish"&&(xt.current=!1,Tt(!1),Ka(u),Xt(C=>[...C,y.historyFrameId]),fa("completed"),vc())},Fm=u=>{var H;if(oa==="loading")return;const E=yi();if(!E)return;const I=pu({renderedScript:i,navigableScript:E,currentFrameIndex:c}),y=E.frames[I];if(!y)return;if(y.quizId&&u.optionId&&((H=qt.current)==null||H.answerQuiz(y.quizId,u.optionId)),u.choiceId&&u.optionId){const J=new Set(Li({script:E,historyFrameIds:vt,currentFrameId:y.id}).map(Re=>Re.socialChoiceId).filter(Re=>!!Re));J.add(u.choiceId);const oe=TE({state:v.current,frames:E.frames,choiceId:u.choiceId,optionId:u.optionId,activeChoiceIds:J});$(oe),d&&as(d,oe).then(Re=>Re&&Ea(Re)).catch(Re=>console.warn("[StoryChoiceState] Failed to sync choice:",Re))}Xt(J=>[...J,y.id]);const C=u.nextFrameId,x=E.frames.findIndex(J=>J.id===C);if(x!==-1)Ka(E),Tt(!1),f(x);else{console.warn(`[handleChoice] nextFrameId ${C} not found in navigable script. Falling back to linear advance.`);const J=gu({script:E,currentFrameIndex:I,isStreaming:Ft.current&&!(Ot.current&&ze.current.length===0),hasPendingFrames:ze.current.length>0});J.action==="goto"?(Ka(E),Tt(!1),f(J.nextIndex)):J.action==="wait"&&(xt.current=!0,Tt(!0))}},Hm=()=>{const u=yi();if(u)if(Tt(!1),vt.length>0){const E=vt.slice(0,-1),I=vt[vt.length-1],y=u.frames.findIndex(H=>H.id===I);y!==-1&&(Ka(u),f(y)),Xt(E);const C=new Set(Li({script:u,historyFrameIds:E,currentFrameId:I}).map(H=>H.socialChoiceId).filter(H=>!!H)),x=gd(v.current,u.frames,C);$(x),d&&as(d,x).then(H=>H&&Ea(H)).catch(H=>console.warn("[StoryChoiceState] Failed to sync back navigation:",H))}else c>0&&f(E=>E-1)},Lc=()=>{var u;(a===D.PLAYING||Kt)&&fa("active_exit"),Je.current+=1,Ua("reset"),(u=sr.current)==null||u.abort(),sr.current=null,Oc(),n(D.MENU),Me(""),ti(!1),Fr([]),Hr([]),o(null),f(0),Gr(null,"owner",null),Xt([]),$(ga()),Yr(!1),ts(!1),Wr(!1),qa([]),Va(null),ye(null),ri(""),bt.current=null,Ft.current=!1,xt.current=!1,ze.current=[],pr.current=ne
239w Set,Ot.current=!0,La(null),Tt(!1),ot(void 0),Bn(null),Jo(!1)},kc=async()=>{const u=Ft.current||ze.current.length>0;if((a===D.PLAYING||a===D.FINISHED)&&u){const E=He[W];if(!await du(E.exitWhileGeneratingMessage,{title:E.exitWhileGeneratingTitle,variant:"warning",confirmText:E.exitWhileGeneratingConfirm,cancelText:E.exitWhileGeneratingCancel}))return}Lc()},Dc=u=>u?`p2g_bookmark_${u}`:null,jm=async()=>{if(!i)return;const u=Dc(d);if(!u)return;const E=i.frames[c];try{localStorage.setItem(u,JSON.stringify({frameId:E.id,savedAt:Date.now()})),await ke(He[W].bookmarkSaved||"书ç¾å·²ä¿å",{variant:"success"})}catch(I){console.error("Failed to save bookmark",I),await ke(He[W].bookmarkSaveFailed||"书ç¾ä¿å失败",{variant:"error"})}},Vm=async()=>{if(!i)return;const u=Dc(d);if(u)try{const E=localStorage.getItem(u);if(!E){await ke(He[W].bookmarkNotFound||"å½ååæ¡£è¿æ²¡æä¹¦ç¾",{variant:"info"});return}const I=JSON.parse(E);if(typeof I.frameId!="number")throw new Error("Invalid bookmark data");const y=i.frames.findIndex(C=>C.id===I.frameId);if(y===-1){await ke(He[W].bookmarkInvalid||"书ç¾å·²å¤±æï¼æ æ³è·³è½¬",{variant:"warning"});return}Tt(!1),f(y),Xt([]),await ke(He[W].bookmarkLoaded||"已跳转å°ä¹¦ç¾ä½ç½®",{variant:"success"})}catch(E){console.error("Failed to load bookmark",E),await ke(He[W].bookmarkLoadFailed||"读å书ç¾å¤±è´¥",{variant:"error"})}},Gm=async u=>{var Re;const E=He[W];if((Re=qt.current)==null||Re.recordRaisedHand((pe==null?void 0:pe.sectionId)||`frame-${(pe==null?void 0:pe.id)||c+1}`),!i||!pe)throw new Error(E.questionUnavailable||"å½åå§æ
ææ¶æ æ³æé®ã");const I=sn(mt,W),y=ct.current,C=Vr.current,x=String(Je.current),H=ca.current,oe=!!(y&&H==="owner"&&pe)?St.prepareCapture({ownerId:y,saveId:C,generationId:x,anchor:{frameId:pe.id,speaker:pe.speaker,text:pe.text},question:u.trim(),playerSpeaker:"You"}):null;try{const Ae=await e0(u.trim(),pc(),NE({referenceText:he,documentAssets:i.documentAssets,question:u,maxLength:14e3}),$f(qf(),7e3),I,void 0,wt,ht,Gu({frames:i.frames,currentFrameIndex:c,historyFrameIds:vt,narrativeStyle:wt}));if(oe){const ce=Mc.current,de=ce.ownerId===oe.ownerId,we=ce.visibility==="owner",je=fA(ce.anchor,oe.anchor),Ze=oe.saveId?ce.saveId===oe.saveId&&ce.generationId===oe.generationId:ce.generationId===oe.generationId;de&&we&&je&&Ze&&St.completeCapture(oe,Ae).then(nt=>{(nt.status==="appended"||nt.status==="duplicate")&&Ma.current.add(oe.operationId),(nt.status==="failed"||nt.status==="invalid")&&console.warn("[StoryQuestionArchive] Answer remains live but was not saved:",nt.message)})}return Ae}catch(Ae){if((Ae==null?void 0:Ae.message)==="AUTH_REQUIRED")throw await ke(E.loginRequired||"请å
ç»å½å使ç¨è¯¥åè½ã",{variant:"info"}),n(D.LOGIN),new Error(E.loginRequired||"请å
ç»å½å使ç¨è¯¥åè½ã");if(typeof(Ae==null?void 0:Ae.message)=="string"&&Ae.message.startsWith("STORY_QUESTION_LIMIT_REACHED")){const[,ce,de]=Ae.message.split(":"),we=Number(ce),je=Number(de),Ze=Number.isFinite(we)&&Number.isFinite(je)&&je>0?`仿¥ä¸¾æé®ç次æ°å·²è¾¾ä¸éï¼${we}/${je}ï¼ãå
è´¹ç¨æ·æ¯å¤© 20 次ï¼ä¼åæ¯å¤© 100 次ã`:"仿¥ä¸¾æé®ç次æ°å·²è¾¾ä¸éãå
è´¹ç¨æ·æ¯å¤© 20 次ï¼ä¼åæ¯å¤© 100 次ã";throw await ke(Ze,{variant:"info"}),new Error(Ze)}throw Ae}},Ym=()=>{i&&(fa("completed"),Oc(),Tt(!1),f(0),Xt([]),$(ga()),d&&as(d,ga()).then(u=>u&&Ea(u)).catch(u=>console.warn("[StoryChoiceState] Failed to reset replay state:",u)),Fr([]),Hr([]),Ma.current=new Set,n(D.PLAYING),Yr(!0))},pe=i==null?void 0:i.frames[c],Mc=l.useRef({ownerId:null,saveId:null,generationId:null,visibility:"owner",anchor:null});Mc.current={ownerId:ct.current,saveId:Vr.current,generationId:String(Je.current),visibility:ca.current,anchor:pe?{frameId:pe.id,speaker:pe.speaker,text:pe.text}:null};const zm=$g(xf,pe?{id:pe.id,speaker:pe.speaker,text:pe.text}:void 0,{alreadySeenOperationIds:Ma.current}),Wm=qg(zm.entries),Ne=Oe||ua,Xa=(Ne==null?void 0:Ne.character.kind)==="cloud"?We.find(u=>u.dbId===Ne.character.id||u.id===Ne.character.id):null,Uc=(Ne==null?void 0:Ne.character.kind)==="cloud"?(Xa==null?void 0:Xa.id)||"__research_character_unavailable__":(Ne==null?void 0:Ne.character.id)||Z,_i=t.find(u=>u.id===Uc),ma=_i?pa(_i,(Ne==null?void 0:Ne.character.skinId)||"base"):null,cr=Xa||_i,Bc=!!(gr&&!Oe&&!ua||(ua==null?void 0:ua.character.id)==="UNKNOWN"||(Gc=jn.find(u=>u.sessionId===(gr==null?void 0:gr.sessionId)))!=null&&Gc.metadataMissing),Ci=!!(!Bc&&((Ne==null?void 0:Ne.character.kind)==="default"?t.some(u=>u.id===Ne.character.id):Xa)),$m=(Ne==null?void 0:Ne.background.kind)==="preset"?
239((Yc=Pr.find(u=>u.id===Ne.background.id))==null?void 0:Yc.url)||Vt[0]:((Ne==null?void 0:Ne.background.kind)==="custom",(Ee==null?void 0:Ee.url)||Vt[0]),qm=l.useMemo(()=>({characterReference:(Ne==null?void 0:Ne.character.reference)||pc(),outputLanguage:(Ne==null?void 0:Ne.outputLanguage)||sn(mt,W),narrativeStyle:(Ne==null?void 0:Ne.narrativeStyle)||wt,playerAddressOverride:(Ne==null?void 0:Ne.playerAddress)||ht.trim()||void 0,runtimeContext:Gu({frames:(i==null?void 0:i.frames)??[],currentFrameIndex:c,historyFrameIds:vt,narrativeStyle:wt})}),[Z,We,c,vt,W,wt,mt,ht,i==null?void 0:i.frames,ua,Ne]);l.useEffect(()=>{a!==D.PLAYING&&a!==D.FINISHED&&fa("active_exit")},[a]),l.useEffect(()=>{var y;const u=i==null?void 0:i.generationTrace,E=(i==null?void 0:i.analysisJobId)||Vr.current;if(!i||!u||!E||a!==D.PLAYING)return;const I=`${E}:${((y=i.frames[0])==null?void 0:y.id)||0}`;(Mn.current!==I||!qt.current)&&(fa("active_exit"),va.current||(va.current=GE()),qt.current=VE({jobId:E,generationTrace:u,emit:C=>{var x;return(x=va.current)==null?void 0:x.emit(C)}}),Mn.current=I),qt.current.recordProgress({currentFrameIndex:c,totalFrameCount:i.frames.length,frameCountFinal:Ot.current}),!Qt&&(pe!=null&&pe.quizId)&&qt.current.presentQuiz(pe.quizId)},[a,pe==null?void 0:pe.id,pe==null?void 0:pe.quizId,c,d,i==null?void 0:i.analysisJobId,i==null?void 0:i.frames.length,i==null?void 0:i.generationTrace,Qt]);const Qm=(jr==null?void 0:jr.speaker)||(pe==null?void 0:pe.speaker)||"",Km=(jr==null?void 0:jr.emotion)||(pe==null?void 0:pe.emotion)||lt.NEUTRAL;l.useEffect(()=>{if(!i){ri("");return}ri(V0({frames:i.frames,currentFrameIndex:c,historyFrameIds:vt,activeQuestionSteps:[...Hn,...tc]}))},[Hn,c,vt,tc,i]);let qr=!1;const ur=Qm.toLowerCase(),Xm=sp.some(u=>ur.includes(u)),Jm=ip.some(u=>ur.includes(u));if(Xm)qr=!0;else if(Jm)qr=!0;else{const u=t.find(E=>E.id===Z);if(u){const E=Array.isArray(u.keywords)&&u.keywords.some(C=>ur.includes(String(C).toLowerCase())),y=[u.name,(zc=u.names)==null?void 0:zc[W],(Wc=u.names)==null?void 0:Wc.zh,u.id].filter(Boolean).map(C=>String(C).toLowerCase()).some(C=>ur.includes(C));qr=E||y||ur.length>0}else{const E=We.find(I=>I.id===Z);E?qr=ur.includes(E.name.toLowerCase())||ur.length>0:jt&&(qr=ur.includes(jt.name.toLowerCase())||ur.length>0)}}If&&(qr=!1);const Zm=Km,Fc=Ee?Ee.url:pe&&Ai[pe.background]||Vt[0],Hc=Li({script:i,historyFrameIds:vt,currentFrameId:pe==null?void 0:pe.id});jr||i==null||i.frames[c+1];const eh=Ft.current&&!!i&&c>=i.frames.length-1&&!(Ot.current&&ze.current.length===0),jc=!!rc.trim(),th=a===D.PLAYING||a===D.FINISHED||a===D.LOADING||a===D.ERROR||a===D.RESEARCH_ROOM,is=a===D.SUPPORT,Fe=He[W],rh=(()=>{const u=St.state.lastFailure;return(u==null?void 0:u.code)==="ARCHIVE_CAPACITY"||(u==null?void 0:u.code)==="PENDING_CAPACITY"||(u==null?void 0:u.code)==="PENDING_SIZE"?Fe.storyQuestionArchiveCapacity:(u==null?void 0:u.code)==="ANCHOR_NOT_READY"?Fe.storyQuestionArchiveAnchorPending:(u==null?void 0:u.code)==="PENDING_UNSAVED"?Fe.storyQuestionArchivePending:u?Fe.storyQuestionArchiveSaveFailed:St.state.pending.length>0?Fe.storyQuestionArchivePending:null})(),ah=(()=>{var I,y,C;if((I=jt==null?void 0:jt.name)!=null&&I.trim())return jt.name.trim();const u=pi(Z);if((y=u==null?void 0:u.name)!=null&&y.trim())return u.name.trim();const E=We.find(x=>x.id===Z);return(C=E==null?void 0:E.name)!=null&&C.trim()?E.name.trim():String(Z||"")})(),Vc=SE(b,W),nh=[String(Fe.endingFarewell||"æ¬æ¬¡è®ºæé è¯»å·²å®æã").replace(/\{\{\s*name\s*\}\}/g,ah),Vc].filter(Boolean).join(" ");return Qf?p.jsx("div",{className:"fixed inset-0 z-[99999] bg-red-900 flex flex-col items-center justify-center p-6 text-white text-center font-sans",children:p.jsxs("div",{className:"bg-red-800 p-8 rounded-3xl shadow-2xl max-w-lg w-full border-[6px] border-red-400 animate-pulse",children:[p.jsx(wl,{size:80,className:"mx-auto mb-6 text-red-200"}),p.jsx("h1",{className:"text-2xl md:text-3xl font-black mb-4 uppercase tracking-tighter",children:"è¦å / WARNING"}),p.jsxs("div",{className:"space-y-4 mb-8",children:[p.jsxs("div",{className:"bg-red-950/30 p-4 rounded-xl",children:[p.jsx("p",{className:"text-lg font-bold text-red-100 mb-2",children:"æ¤ç½ç«å¯è½æ¯ä¼ªåç½ç«æéåç«ã"}),p.jsx("p",{className:"text-sm text-red-200 opacity-90",children:"æ£æµå°éæ³åµå¥ã为ä¿éæ¨çæ°æ®å®å ¨åä½éªï¼è¯·åå¾å®æ¹ç½ç«ã"})]}),p.jsxs("div",{className:"bg-red-950/30 p-4 rounded-xl text-left",children:[p.jsx("p",{className:"text-lg font-bold text-red-100 mb-2",children:"This might be a fake website."}),p.jsx("p",{className:"text-sm text-red-200 opacity-90",children:"Illegal framing detected. For your safety and best experience, please visit the official website."})]})]}),p.jsxs("div",{className:"flex flex-col gap-3",children:[p.jsx("p",{className:"text-sm text-red-300 font-bold uppercase tracking-widest",children:"Official Website"}),p.jsxs("button",{onClick:Kf,className:"w-full py-4 bg-white text-red-900 rounded-xl font-black text-xl hover:bg-red-50 hover:scale-105 transition-all shadow-xl flex items-center justify-center gap-2",children:[p.jsx(Ah,{size:24})," paper2gal.com"]})]})]})}):p.jsxs(p.Fragment,{children:[p.jsx("style",{children:` 240 .app-container { 241 position: fixed; 242 inset: 0; 243 width: 100vw; 244 height: 100vh; 245 height: 100dvh; 246 overflow: hidden; 247 --app-vw: 100vw; 248 --app-vh: 100dvh; 249 } 250 251 .source-pdf-reader { width: min(720px, 88vw); } 252 .source-pdf-scroll { scrollbar-color: #d7b7b8 #eee9e4; scrollbar-width: thin; } 253 .source-pdf-scroll::-webkit-scrollbar { width: 8px; height: 8px; } 254 .source-pdf-scroll::-webkit-scrollbar-thumb { background: #d7b7b8; border-radius: 8px; } 255 .source-pdf-scroll::-webkit-scrollbar-track { background: #eee9e4; } 256 .source-pdf-resize { display: none; } 257 @media (min-width: 1200px) { 258 .app-game-source-split { right: var(--source-reader-width) !important; width: auto !important; } 259 .source-pdf-reader { width: var(--source-reader-width); } 260 .source-pdf-resize { display: block; } 261 .source-pdf-backdrop { display: none; } 262 } 263 264 .app-container.force-landscape-mobile { 265 inset: auto; 266 top: 50%; 267 left: 50%; 268 width: max(100vw, 100dvh); 269 height: min(100vw, 100dvh); 270 --app-vw: max(100vw, 100dvh); 271 --app-vh: min(100vw, 100dvh); 272 transform-origin: center center; 273 background-color: #fff0f5; 274 z-index: 0; 275 border-radius: 0; 276 box-shadow: none; 277 } 278 279 /* A square cover display has no portrait axis to correct. Using the 280 orientation media feature there is inconsistent across engines and 281 could rotate an already-valid 360Ã360 canvas. */ 282 @media screen and (max-aspect-ratio: 999/1000) { 283 .app-container.force-landscape-mobile { 284 transform: translate(-50%, -50%) rotate(90deg); 285 } 286 } 287 288 @media screen and (min-aspect-ratio: 1/1) { 289 .app-container.force-landscape-mobile { 290 transform: translate(-50%, -50%) rotate(0deg); 291 } 292 } 293 294 .main-menu-quick-actions > button:hover, 295 .main-menu-quick-actions > button:focus-visible, 296 .main-menu-quick-actions > button:active { 297 z-index: 20; 298 } 299 300 .main-menu-quick-actions:has(details) > button { display: none; } 301 .main-menu-quick-actions:has(details[open]) > button { display: flex; } 302 303 .main-menu-quick-actions .quick-action-hint { 304 top: 50%; 305 right: 100%; 306 left: auto; 307 margin: 0 0.75rem 0 0; 308 transform: translateY(-50%); 309 z-index: 50; 310 } 311 312 .main-menu-quick-actions .quick-action-hint-arrow { 313 top: 50%; 314 left: 100%; 315 width: 7px; 316 height: 14px; 317 transform: translateY(-50%); 318 border: 0; 319 background: var(--quick-action-hint-color); 320 clip-path: polygon(0 0, 100% 50%, 0 100%); 321 } 322 323 .main-menu-quick-actions .quick-action-hint-arrow-pink { --quick-action-hint-color: #f472b6; } 324 .main-menu-quick-actions .quick-action-hint-arrow-amber { --quick-action-hint-color: #fbbf24; } 325 .main-menu-quick-actions .quick-action-hint-arrow-live { --quick-action-hint-color: #fb7299; } 326 .main-menu-quick-actions .quick-action-hint-arrow-sky { --quick-action-hint-color: #38bdf8; } 327 `}),p.jsxs("div",{className:`app-container font-sans bg-blue-50 relative selection:bg-brand-blue selection:text-white ${e&&!is?"force-landscape-mobile":""}`,style:{"--source-reader-width":`${Im}px`},children:[p.jsx("div",{"data-testid":"story-question-archive-state","data-state":oa,role:"status","aria-live":"polite",className:"sr-only",children:oa==="loading"?"Loading saved questionsâ¦":"Saved questions ready"}),p.jsxs(b0,{language:W,children:[_f&&!is&&p.jsx("button",{type:"button",className:"fixed inset-0 z-[100000] flex h-full w-full cursor-pointer items-center justify-center overflow-hidden border-0 bg-[#f8f5f2] p-0",onClick:()=>Cf(!1),"aria-label":W==="zh"?"ç¹å»å¼å§":W==="ja"?"ã¿ãããã¦ã¹ã¿ã¼ã":W==="ru"?"ÐажмиÑе, ÑÑÐ¾Ð±Ñ Ð½Ð°ÑаÑÑ":"Tap to start",children:p.jsx("img",{src:"/assets/mobile/paper2gal-title-screen.png",alt:"Paper2Gal",className:"h-full w-full select-none object-contain",draggable:!1})}),sc&&!is&&p.jsx(ag,{update:sc,language:W,onClose:()=>ic(null)}),!is&&(e&&wf||Rf)&&p.jsx(Sp,{isOpen:!0,onClose:()=>{ac(!1),nc(!1)},language:W,shell:ai}
327),(a===D.MENU||a===D.LOGIN)&&p.jsx(mp,{onStart:Dm,onLoadScript:Mm,isLoading:a===D.LOADING,onOpenSettings:()=>Wn(!0),characterId:Z,setCharacterId:fe,selectedDefaultSkinId:hi,onSelectDefaultSkin:(u,E)=>{Pe(I=>({...I,[String(u).toUpperCase()]:E}))},gameUiPreset:Tr,language:W,customCharacters:We,setCustomCharacters:Vn,user:Te,onLogin:()=>n(D.LOGIN),onLogout:Ht,onRefreshUser:hc,onOpenSaves:async()=>{if(!Te){await ke(He[W].loginRequired||"请å
ç»å½å使ç¨è¯¥åè½ã",{variant:"info"}),n(D.LOGIN);return}Ue(D.SAVES)},onLoadSave:ns,onStartResearch:hm,onOpenStudyRoom:()=>Ue(D.STUDY_ROOM),playerNickname:ht,setPlayerNickname:yc,onOpenCommunity:()=>Ue(D.COMMUNITY),voiceModeEnabled:F,setVoiceModeEnabled:G,onOpenArxiv:()=>Ue(D.ARXIV),onOpenMembership:()=>Ue(D.MEMBERSHIP),onOpenProfile:async()=>{if(!Te){await ke(He[W].loginRequired||"请å
ç»å½å使ç¨è¯¥åè½ã",{variant:"info"}),n(D.LOGIN);return}Ue(D.PROFILE)},onOpenStudyDashboard:async()=>{if(!Te){await ke(He[W].loginRequired||"请å
ç»å½å使ç¨è¯¥åè½ã",{variant:"info"}),n(D.LOGIN);return}Ue(D.STUDY_DASHBOARD)},onOpenDocs:$r,arxivPrefill:A,onConsumeArxivPrefill:()=>N(null),extensionFile:_,onClearExtensionFile:()=>m(null),extensionAutoStart:P,narrativeStyle:wt,setNarrativeStyle:fm}),a===D.LOGIN&&p.jsx(l.Suspense,{fallback:p.jsx(kt,{}),children:p.jsx(Ip,{onBack:()=>Ue(D.MENU,"replace"),onLoginSuccess:Wf,language:W,onRegister:()=>{}})}),a===D.ADMIN&&p.jsx(l.Suspense,{fallback:p.jsx(kt,{}),children:p.jsx(yp,{onBack:()=>{Ue(D.MENU,"replace")},language:W})}),a===D.SAVES&&Te&&p.jsx(l.Suspense,{fallback:p.jsx(kt,{}),children:p.jsx(Cp,{userId:Te.id,onBack:()=>Ue(D.MENU),onLoadSave:ns,language:W,customCharacters:We,onLogout:()=>{Ht(),Ue(D.LOGIN,"replace")},researchSessions:jn,researchSessionsLoading:Hf,researchSessionsError:jf,onLoadResearchSessions:Gf,onLoadResearchSession:Em,onUpdateResearchSessionMetadata:lc.updateSessionMetadata,onDeleteResearchSession:Yf})}),a===D.ARXIV&&p.jsx(l.Suspense,{fallback:p.jsx(kt,{}),children:p.jsx(wp,{onBack:()=>Ue(D.MENU),language:W,interests:Zn,onUsePaper:u=>{N(u),Ue(D.MENU,"replace")}})}),a===D.MEMBERSHIP&&p.jsx(l.Suspense,{fallback:p.jsx(kt,{}),children:p.jsx(Rp,{onBack:()=>Ue(D.MENU),onLogin:()=>n(D.LOGIN),language:W,user:Te})}),a===D.SUPPORT&&p.jsx(l.Suspense,{fallback:p.jsx(kt,{}),children:p.jsx(vp,{language:W,onBack:()=>Ue(D.MENU)})}),a===D.PROFILE&&p.jsx(l.Suspense,{fallback:p.jsx(kt,{}),children:p.jsx(Np,{onBack:()=>Ue(D.MENU),onLogin:()=>n(D.LOGIN),onLogout:()=>{Ht(),Ue(D.MENU,"replace")},onRefreshUser:hc,onOpenMembership:()=>Ue(D.MEMBERSHIP),onOpenStudyDashboard:()=>Ue(D.STUDY_DASHBOARD),language:W,user:Te})}),a===D.STUDY_DASHBOARD&&p.jsx(l.Suspense,{fallback:p.jsx(kt,{}),children:p.jsx(Pp,{onBack:()=>Ue(D.MENU),onLogin:()=>n(D.LOGIN),onLogout:Ht,onOpenSaves:()=>Ue(D.SAVES),onOpenMembership:()=>Ue(D.MEMBERSHIP),language:W,user:Te})}),a===D.RESEARCH_ROOM&&p.jsxs(p.Fragment,{children:[p.jsx("div",{"data-testid":"research-scene-background","aria-hidden":"true",className:"pointer-events-none absolute inset-0 z-0 bg-cover bg-center",style:{backgroundImage:`url('${$m}')`}}),p.jsx("div",{className:"pointer-events-none absolute inset-0 z-20 flex items-end justify-center","data-research-character-available":Ci?"true":"false",children:p.jsx(yu,{emotion:Tc.emotion,voiceAudio:Tc.audio,visible:Ci,characterId:Uc,customCharacters:We,defaultSkinId:(Ne==null?void 0:Ne.character.skinId)||"base"})}),U&&p.jsx("div",{role:"status",className:"absolute left-1/2 top-4 z-50 -translate-x-1/2 rounded-xl bg-amber-950/80 px-4 py-2 text-center text-xs font-bold text-amber-100 shadow-lg",children:U}),p.jsx(l.Suspense,{fallback:p.jsx(kt,{}),children:p.jsx(Op,{identity:gr,gateway:uc,characterConfiguration:qm,language:W,preparation:kf,preparationActive:Df,preparationTerminal:Mf,preparationUncertain:Uf,preparationError:Bf,preparationCancelling:Ff,characterAvailable:Ci,voiceAvailable:!!(cr!=null&&cr.voiceRefAudioUrl),characterExpressions:(ma==null?void 0:ma.expressions)||(cr==null?void 0:cr.expressions),characterAvatarUrl:(ma==null?void 0:ma.avatarUrl)||(cr==null?void 0:cr.avatarUrl),voiceVolume:la,muted:Er,onVoiceStateChange:Jf,metadataMissing:Bc,onResolveMissingMetadata:bm,onMetadataResolved:u=>zf((gr==null?void 0:gr.sessionId)||"",u),onPresentationResolved:Tm,onExit:pm})})]}),a===D.STUDY_ROOM&&p.jsx(l.Suspense,{fallback:p.jsx(kt,{}),children:p.jsx(xp,{onBack:()=>Ue(D.MENU),language:W})}),a===D.BACKGROUND_SELECT&&p.jsx(Ap,{language:W,onSelect:se?gm:xc,onCancel:()=>{se&&(me(null),z(null)),Ue(D.MENU,"replace")}}),th&&p.jsxs("div",{className:`absolute inset-0 z-0 w-full h-full ${$a&&a===D.PLAYING?"app-game-source-split":""} ${Tr==="fullwidth"?"overflow-clip":"overflow-hidden"}`,children:[a===D.LOADING&&p.jsx(pp,{language:W,loadingPhase:Ve,scriptProgress:ei,intensiveProgress:Af,isVoiceEnabled:te,ttsProgress:at,ttsQueueInfo:Tf,streamingProgress:Un,dinoRunImageUrl:"/assets/local/loading/runner-run-1.png",dinoRunImageUrlAlt:"/assets/local/loading/runner-run-2.png",dinoRunImageUrlThird:"/assets/local/loading/runner-run-3.png",dinoJumpImageUrl:"/assets/local/loading/runner-jump.png"}),a===D.ERROR&&p.jsx("div",{className:"absolute inset-0 z-50 flex items-center justify-center bg-black/60 backdrop-blur-md animate-fade-in",style:e?{padding:"max(0.75rem, env(safe-area-inset-top)) max(0.75rem, env(safe-area-inset-left)) max(0.75rem, env(safe-area-inset-bottom)) max(0.75rem, env(safe-area-inset-right))"}:void 0,children:p.jsxs("div",{className:`relative w-full bg-white/95 backdrop-blur-xl shadow-[0_20px_60px_rgba(0,0,0,0.3)] flex flex-col items-center text-center border-white ring-4 ring-red-100 overflow-hidden overflow-y-auto ${e?"max-w-[92vw] rounded-2xl border-2 p-5 max-h-[85dvh]":"max-w-lg rounded-3xl border-[6px] p-8 md:p-12"}`,children:[p.jsx("div",{className:"absolute top-0 left-0 w-full h-2 bg-gradient-to-r from-red-300 via-pink-400 to-red-300 shrink-0"}),p.jsx("div",{className:"absolute -top-10 -right-10 w-32 h-32 bg-red-100 rounded-full blur-2xl opacity-50 pointer-events-none"}),p.jsx("div",{className:`${e?"mb-4 p-3":"mb-6 p-5"} bg-red-50 rounded-[20px] shadow-inner transform rotate-3 animate-bounce-gentle shrink-0`,children:p.jsx(Cl,{size:e?32:48,className:"text-red-400 drop-shadow-sm"})}),p.jsx("h2",{className:`font-black text-slate-800 tracking-tight shrink-0 ${e?"text-lg mb-2":"text-2xl md:text-3xl mb-3"}`,children:Fe.errorTitle||Fe.systemError}),p.jsx("p",{className:`text-slate-500 font-medium leading-relaxed shrink-0 ${e?"text-xs mb-4":"mb-4 text-sm md:text-base"}`,children:Fe.errorHint}),V&&p.jsxs("div",{className:`w-full text-left bg-red-50/70 border border-red-100 rounded-xl ${e?"p-3 mb-3":"p-4 mb-4"}`,children:[p.jsxs("div",{className:"flex items-center gap-2 text-red-600 font-black text-xs mb-2",children:[p.jsx(Ih,{size:14}),p.jsx("span",{children:"æ¥éåå "})]}),p.jsx("div",{className:"text-sm font-bold leading-relaxed text-slate-700 whitespace-pre-wrap break-words",children:V}),p.jsxs("div",{className:"mt-3 rounded-lg border border-red-100 bg-white/80 p-3",children:[p.jsx("div",{className:"text-[11px] font-black text-slate-500 mb-1",children:"é误ç¼å·"}),p.jsxs("div",{className:"flex items-center justify-between gap-2",children:[p.jsx("code",{className:"text-xs font-black text-slate-800 break-all",children:q||"è®°å½ä¸..."}),p.jsxs("button",{disabled:!q,onClick:async()=>
327{if(q)try{await navigator.clipboard.writeText(q),ee(!0),window.setTimeout(()=>ee(!1),1500)}catch{}},className:`shrink-0 inline-flex items-center gap-2 rounded-lg font-black transition-all min-h-[32px] px-3 py-1.5 text-xs ${Se?"bg-green-600 text-white":"bg-slate-200 hover:bg-slate-300 text-slate-700 disabled:opacity-50 disabled:cursor-not-allowed"}`,children:[Se?p.jsx(yh,{size:14}):p.jsx(_h,{size:14}),Se?"å·²å¤å¶":"å¤å¶ç¼å·"]})]})]})]}),p.jsxs("div",{className:"flex flex-col w-full gap-2 sm:gap-3 shrink-0",children:[p.jsxs("button",{onClick:Lc,className:`w-full bg-gradient-to-r from-red-400 to-pink-500 hover:from-red-500 hover:to-pink-600 text-white rounded-2xl font-black shadow-xl hover:shadow-2xl hover:-translate-y-1 transition-all duration-300 flex items-center justify-center gap-2 group min-h-[44px] ${e?"py-3 text-sm":"py-4 text-lg"}`,children:[p.jsx(Ch,{size:e?18:20,className:"group-hover:-rotate-180 transition-transform duration-500"}),Fe.retry]}),p.jsxs("a",{href:"https://space.bilibili.com/472900263",target:"_blank",rel:"noopener noreferrer",className:`w-full bg-slate-100 hover:bg-blue-50 text-slate-600 hover:text-blue-500 rounded-xl font-bold transition-all flex items-center justify-center gap-2 min-h-[44px] ${e?"py-3 text-sm":"py-3 text-sm md:text-base"}`,children:[p.jsx(nu,{size:e?16:18})," ",Fe.contactAdmin]})]})]})}),(a===D.PLAYING||a===D.FINISHED)&&i&&pe&&p.jsxs(p.Fragment,{children:[p.jsx("div",{className:`absolute inset-0 z-0 bg-cover bg-center transition-all duration-1000 ease-in-out transform scale-105 ${Qt?"blur-sm brightness-50":"blur-0 brightness-100"} ${Kt?"scale-110 blur-sm brightness-[0.35]":""}`,style:{backgroundImage:`url('${Fc}')`}}),p.jsx("div",{className:`absolute inset-0 z-[60] flex flex-col items-center justify-center bg-black/40 backdrop-blur-md transition-all duration-1000 ease-in-out ${Qt?"opacity-100 visible":"opacity-0 invisible pointer-events-none"}`,onClick:()=>Yr(!1),children:p.jsx("div",{className:`w-full text-center cursor-pointer group select-none ${e?"max-w-[78vw] p-4":"max-w-4xl p-12"}`,children:p.jsxs("div",{className:`${e?"space-y-3":"space-y-8"} animate-fade-in-up`,children:[p.jsxs("div",{className:`flex items-center justify-center ${e?"gap-2 text-[10px]":"gap-4 text-sm"} text-pink-300 tracking-[0.5em] uppercase font-bold`,children:[p.jsx("div",{className:"h-[1px] w-12 bg-pink-300"}),p.jsx("span",{children:"New Chapter"}),p.jsx("div",{className:"h-[1px] w-12 bg-pink-300"})]}),p.jsx("h1",{className:`${e?"text-2xl":"text-5xl md:text-7xl"} font-serif font-black text-white drop-shadow-[0_5px_5px_rgba(0,0,0,0.5)]`,children:i.title}),(($c=i.summary)==null?void 0:$c.trim())&&p.jsxs("p",{className:`${e?"text-sm":"text-xl md:text-2xl"} font-serif text-gray-100 max-w-2xl mx-auto italic opacity-90`,children:['"',i.summary,'"']})]})})}),p.jsx("div",{className:`absolute inset-0 z-20 pointer-events-none flex justify-center items-end transition-all duration-1000 ${Qt?"opacity-0 translate-y-10":"opacity-100"} ${Kt?"opacity-0 translate-y-12 scale-[1.03]":""}`,children:p.jsx(yu,{emotion:Zm,visible:qr,characterId:Z,customCharacters:We,charMetadata:jt,defaultSkinId:hi,shiftLeft:jc,voiceAudio:Ie,action:Qt?"none":pe.action,actionKey:pe.id})}),p.jsx("div",{className:`absolute z-30 rounded-l-xl border-8 border-amber-400 bg-black shadow-lg pointer-events-auto overflow-y-auto overflow-x-hidden p-4 text-amber-50 text-sm md:text-base [&_.katex]:text-amber-50 [&_.katex-display]:text-amber-50 transition-all duration-500 ease-out ${jc?"opacity-100 translate-x-0":"opacity-0 translate-x-8 pointer-events-none"} ${Kt?"opacity-0 translate-x-12 pointer-events-none":""}`,style:e?{top:"max(0.5rem, env(safe-area-inset-top, 12px))",right:"max(0.5rem, env(safe-area-inset-right, 12px))",width:"min(78vw, 420px)",height:"50vh",minHeight:"200px"}:{top:"max(5rem, calc(env(safe-area-inset-top, 24px) + 4rem))",right:"max(0.75rem, env(safe-area-inset-right, 12px))",width:$a?"min(46%, 840px)":"min(46vw, 840px)",height:"min(46vh, 640px)",minWidth:$a?void 0:"400px",minHeight:"360px"},children:p.jsx(l.Suspense,{fallback:p.jsxs("div",{className:"font-medium h-full leading-relaxed text-amber-50 animate-pulse",children:[p.jsx("div",{className:"h-4 bg-amber-100/20 rounded w-3/4 mb-3"}),p.jsx("div",{className:"h-4 bg-amber-100/20 rounded w-1/2 mb-3"}),p.jsx("div",{className:"h-4 bg-amber-100/20 rounded w-5/6"})]}),children:p.jsx(kp,{content:rc})})}),p.jsx("div",{className:`absolute inset-0 z-50 pointer-events-none flex flex-col justify-end transition-all duration-700 transform ${Qt?"opacity-0 translate-y-10":"opacity-100 translate-y-0"} ${Kt?"opacity-0 translate-y-16 scale-[0.98]":""}`,children:p.jsx(hp,{currentFrame:pe,history:Hc,onNext:Bm,onBack:Hm,canBack:c>0,textSpeed:$n,fontScale:qn,uiPreset:Tr,autoAdvanceDelayMs:Kn,autoAdvanceByVoice:Xn,onOpenLog:()=>ts(!0),isLogOpen:_c,onOpenSource:()=>Wr(u=>!u),isSourceReaderOpen:$a,language:W,onChoice:Fm,scriptFrames:i==null?void 0:i.frames,selectedChoiceOptionId:pe.socialChoiceId?b.selectedChoices[pe.socialChoiceId]:void 0,onTts:void 0,onAskQuestion:Gm,
327storyQuestionArchiveLoading:oa==="loading",onQuestionStepsChange:u=>{Fr(u),Hr([])},onQuestionInputStateChange:ti,replayItems:Wm,onReplayComplete:u=>{u.forEach(E=>Ma.current.add(E)),Hr([])},onReplayStepsChange:u=>{Hr(u),u.length>0&&Fr([])},onQuestionPanelClose:Lf,storyQuestionArchiveNotice:rh,voiceVolume:la,onVoiceAudioChange:ve,isTitleCardShowing:Qt,characterThemeColor:(qc=t.find(u=>u.id===String(Z||"").toUpperCase()))==null?void 0:qc.themeColor,isWaitingForMore:eh,streamingProgress:Un??void 0,isUserWaitingForStream:Sf,isInteractionLocked:Kt||oa==="loading"})}),Kt&&p.jsx("div",{className:"absolute inset-0 z-[120] flex items-center justify-center bg-black/45 backdrop-blur-md pointer-events-auto",children:p.jsxs("div",{className:`text-center text-white select-none ${e?"px-6":"px-10"} animate-fade-in-up`,children:[p.jsx("div",{className:`font-semibold uppercase tracking-[0.45em] text-white/55 ${e?"text-[10px]":"text-xs"}`,children:"FIN"}),p.jsx("div",{className:`mt-3 font-serif font-black text-white drop-shadow-[0_8px_24px_rgba(0,0,0,0.45)] ${e?"text-2xl":"text-4xl md:text-5xl"}`,children:Fe.researchCompleted}),p.jsx("div",{className:`mx-auto mt-4 max-w-[min(82vw,42rem)] font-serif leading-relaxed text-white/92 ${e?"text-sm":"text-lg md:text-xl"}`,children:nh}),p.jsx("div",{className:`mt-3 text-white/65 ${e?"text-[11px]":"text-sm md:text-base"}`,children:Fe.endingTransitionHint||"æ
äºè½å¹ä¸..."})]})}),a===D.FINISHED&&p.jsx(bp,{script:i,onRestart:kc,onReplay:Ym,onShareSave:Um,characterId:Z,language:W,customCharacters:We,storyBackgroundUrl:Fc,charMetadata:jt,defaultSkinId:hi,choiceState:b,relationshipEndingLine:Vc}),a!==D.FINISHED&&!Kt&&p.jsxs("div",{"data-testid":"game-tools",className:Tr==="fullwidth"?"fullwidth-game-tools absolute z-[70] flex gap-0.5 md:gap-1":`absolute top-6 z-50 flex ${e?"gap-1.5 left-6":"gap-2 right-6"}`,style:Tr==="fullwidth"?{bottom:"env(safe-area-inset-bottom, 0px)",right:"env(safe-area-inset-right, 0px)"}:e?{top:"max(1.5rem, env(safe-area-inset-top, 24px))",left:"max(1.5rem, env(safe-area-inset-left, 24px))"}:{top:"max(1.5rem, env(safe-area-inset-top, 24px))",right:"max(1.5rem, env(safe-area-inset-right, 24px))"},children:[p.jsx("button",{onClick:jm,className:Wa,style:za,title:Fe.saveBookmark||"ä¿å书ç¾",children:p.jsx(wh,{size:da})}),p.jsx("button",{onClick:Vm,className:Wa,style:za,title:Fe.loadBookmark||"读å书ç¾",children:p.jsx(Rh,{size:da})}),p.jsx("button",{"aria-label":Fe.settings||"Settings",onClick:()=>Wn(!0),className:Wa,style:za,children:p.jsx(Nh,{size:da})}),p.jsx("button",{"aria-label":Er?Fe.studyRoomUnmute||"Unmute":Fe.studyRoomMute||"Mute",onClick:()=>Xf(!Er),className:Wa,style:za,children:Er?p.jsx(Ph,{size:da}):p.jsx(xh,{size:da})}),p.jsx("button",{"data-testid":"game-reset-button","aria-label":Fe.retry||"Reset",onClick:kc,className:Wa,style:za,children:p.jsx(Oh,{size:da})})]}),p.jsx(Ep,{isOpen:_c,onClose:()=>ts(!1),history:Hc,language:W,characterThemeColor:(Qc=t.find(u=>u.id===String(Z||"").toUpperCase()))==null?void 0:Qc.themeColor,voiceVolume:la,muted:Er,onVoiceAudioChange:ve})]})]}),a===D.PLAYING&&$a&&p.jsxs(p.Fragment,{children:[p.jsx("button",{type:"button","aria-label":W==="zh"?"å
³éåæé
读å¨":"Close source reader",className:"source-pdf-backdrop absolute inset-0 z-[90] bg-black/40",onClick:()=>Wr(!1)}),p.jsx(dg,{files:Cc,selectedFileIndex:Sm,pageNumber:Am,language:W,onSelectFileIndex:Ei,onPageChange:bi,onChooseFile:u=>{Lu([u]).length&&(qa(E=>[...E,u]),Ei(Cc.length),bi(1))},onClose:()=>Wr(!1),onResize:u=>ym(ku(u,window.innerWidth))})]}),a===D.COMMUNITY&&p.jsx(l.Suspense,{fallback:p.jsx(kt,{}),children:p.jsx(_p,{onClose:()=>Ue(D.MENU),user:Te,customCharacters:We,language:W,gameUiPreset:Tr,onLogout:Ht,onBorrowSuccess:u=>{const E={dbId:u.dbId,id:u.characterId,name:u.name,prompt:u.prompt,performanceProfile:u.performanceProfile??void 0,avatarUrl:u.avatarUrl,renderMode:u.renderMode,live2d:u.live2d,cgImages:Array.isArray(u.cgImages)?u.cgImages:[],isShared:u.isShared,isBorrowed:!0,borrowId:u.borrowId,borrowCount:u.borrowCount,voiceRefAudioUrl:u.voiceRefAudioUrl??void 0,voiceRefText:u.voiceRefText??void 0,synthesisVersion:u.synthesisVersion??void 0,layout:u.layout??void 0,expressions:hu(u)};Vn(I=>I.some(y=>y.id===E.id)?I:[...I,E])}})}),a===D.DOCS&&p.jsx(l.Suspense,{fallback:p.jsx(kt,{}
327),children:p.jsx(Lp,{url:_m,title:wm,onBack:()=>{Ue(D.MENU,"replace")},language:W})}),a===D.MENU&&!e&&p.jsx("div",{className:"absolute left-6 top-6 z-40",children:p.jsx(_u,{onClick:()=>rs(!0),hasUnread:wc,label:Fe.announcementTitle||"Announcements",variant:"steam"})}),a===D.MENU&&p.jsxs("div",{"data-testid":"main-menu-quick-actions",className:`main-menu-quick-actions absolute right-3 z-40 flex flex-col items-end transition-all ${e?"top-[76px] gap-1":"top-24 gap-2 md:right-6"}`,children:[e&&p.jsx(_u,{onClick:()=>rs(!0),hasUnread:wc,label:Fe.announcementTitle||"Announcements"}),!e&&p.jsx("details",{className:"group relative",children:p.jsx("summary",{className:"flex h-11 w-11 cursor-pointer list-none items-center justify-center rounded-xl border border-white/70 bg-white/80 text-[#40586a] shadow-sm","aria-label":W==="zh"?"æ´å¤å¿«æ·å
¥å£":"More shortcuts",children:p.jsx(vh,{size:20})})}),p.jsxs("button",{type:"button",onClick:()=>Ue(D.MEMBERSHIP),className:"group relative flex items-center justify-center w-11 h-11 md:w-12 md:h-12 bg-white/70 backdrop-blur-md rounded-full shadow-sm border border-pink-200 hover:bg-white/90 hover:border-amber-300 transition-all hover:scale-110 active:scale-95","aria-label":W==="zh"?"ä¼å":"Membership",children:[p.jsx(Lh,{className:"text-amber-500 group-hover:text-amber-600 transition-colors",size:20,strokeWidth:2.8}),p.jsxs("div",{className:"quick-action-hint absolute top-full left-1/2 mt-3 -translate-x-1/2 px-2 py-1 bg-white border-2 border-amber-400 text-slate-900 text-[13px] font-extrabold rounded-xl opacity-0 group-hover:opacity-100 pointer-events-none transition-all whitespace-nowrap hidden md:block shadow-lg",children:[p.jsx("div",{className:"quick-action-hint-arrow quick-action-hint-arrow-amber absolute top-0 left-1/2 -translate-x-1/2 -translate-y-full w-0 h-0 border-l-[7px] border-r-[7px] border-b-[7px] border-l-transparent border-r-transparent border-b-amber-400"}),"VIP"]})]}),p.jsxs("button",{type:"button",onClick:()=>nc(!0),className:"group relative flex items-center justify-center w-11 h-11 md:w-12 md:h-12 bg-white/70 backdrop-blur-md rounded-full shadow-sm border border-pink-200 hover:bg-white/90 hover:border-pink-300 transition-all hover:scale-110 active:scale-95","aria-label":Fe.downloads||Fe.mobileApkDownload||"Downloads",children:[p.jsx(kh,{className:"text-pink-400 group-hover:text-pink-500 transition-colors",size:20}),p.jsxs("div",{className:"quick-action-hint absolute top-full left-1/2 mt-3 translate-x-[-75%] px-2 py-1 bg-white border-2 border-amber-400 text-slate-900 text-[13px] font-extrabold rounded-xl opacity-0 group-hover:opacity-100 pointer-events-none transition-all whitespace-nowrap hidden md:block shadow-lg",children:[p.jsx("div",{className:"quick-action-hint-arrow quick-action-hint-arrow-amber absolute top-0 left-[75%] -translate-y-full w-0 h-0 border-l-[7px] border-r-[7px] border-b-[7px] border-l-transparent border-r-transparent border-b-amber-400"}),ai==="native-app"?Fe.mobileNativeAppTitle||"App":ai==="pwa"?Fe.mobilePwaAppTitle||"App":Fe.downloads||Fe.mobileApkDownload||"Downloads"]})]}),p.jsxs("button",{type:"button",onClick:()=>Ue(D.STUDY_ROOM),className:"group relative flex items-center justify-center w-11 h-11 md:w-12 md:h-12 bg-white/70 backdrop-blur-md rounded-full shadow-sm border border-pink-200 hover:bg-white/90 hover:border-[#FB7299] transition-all hover:scale-110 active:scale-95","aria-label":Fe.studyRoom||"èªä¹ 室",children:[p.jsx(nu,{className:"text-[#FB7299] group-hover:text-[#e85f88] transition-colors",size:20}),p.jsxs("div",{className:"quick-action-hint absolute top-full left-1/2 mt-3 translate-x-[-25%] px-2 py-1 bg-white border-2 border-[#FB7299] text-slate-900 text-[13px] font-extrabold rounded-xl opacity-0 group-hover:opacity-100 pointer-events-none transition-all whitespace-nowrap hidden md:block shadow-lg",children:[p.jsx("div",{className:"quick-action-hint-arrow quick-action-hint-arrow-live absolute top-0 left-[25%] -translate-y-full w-0 h-0 border-l-[7px] border-r-[7px] border-b-[7px] border-l-transparent border-r-transparent border-b-[#FB7299]"}),Fe.studyRoom||"èªä¹ 室"]})]}),p.jsxs("button",{type:"button",onClick:Nf,className:"group relative flex items-center justify-center w-11 h-11 md:w-12 md:h-12 bg-white/70 backdrop-blur-md rounded-full shadow-sm border border-pink-200 hover:bg-white/90 hover:border-pink-300 transition-all hover:scale-110 active:scale-95","aria-label":"Steam",children:[p.jsx("div",{className:"w-6 h-6 rounded-full bg-[#1b2838] group-hover:bg-[#2a475e] flex items-center justify-center shadow-sm transition-colors",children:p.jsx("img",{src:lp,alt:"Steam",className:"w-3 h-3 object-contain"})}),p.jsxs("div",{className:"quick-action-hint absolute top-full left-1/2 mt-3 -translate-x-1/2 px-2 py-1 bg-white border-2 border-sky-400 text-slate-900 text-[13px] font-extrabold rounded-xl opacity-0 group-hover:opacity-100 pointer-events-none transition-all whitespace-nowrap hidden md:block shadow-lg",children:[p.jsx("div",{className:"quick-action-hint-arrow quick-action-hint-arrow-sky absolute top-0 left-1/2 -translate-x-1/2 -translate-y-full w-0 h-0 border-l-[7px] border-r-[7px] border-b-[7px] border-l-transparent border-r-transparent border-b-sky-400"}),"Steam"]})]})]}),p.jsx(Tp,{isOpen:Nm,onClose:Om,language:W}),p.jsx(gp,{isOpen:zn,onClose:()=>Wn(!1),bgmVolume:zr,setBgmVolume:Zf,voiceVolume:la,setVoiceVolume:em,textSpeed:$n,setTextSpeed:nm,dialogueFontScale:qn,setDialogueFontScale:sm,gameUiPreset:Ga,setGameUiPreset:im,isMembershipActive:Ac===!0,isMembershipStatusLoading:om,onOpenMembership:()=>{Wn(!1),Ue(D.MEMBERSHIP)},autoAdvanceDelayMs:Kn,setAutoAdvanceDelayMs:cm,autoAdvanceByVoice:Xn,setAutoAdvanceByVoice:um,language:W,setLanguage:Pf,outputLanguage:mt,setOutputLanguage:lm,voiceLanguage:Jn,setVoiceLanguage:dm,playerNickname:ht,setPlayerNickname:yc,paperPreferences:Zn,setPaperPreferences:mm,storyQuestionArchiveEnabled:St.enabled,setStoryQuestionArchiveEnabled:St.setEnabled,bgmUrl:br,setBgmUrl:rm,customBgms:Yn,setCustomBgms:fi})]})]})]})};class hA extends _a.Component{constructor(){super(...arguments),this.state={hasError:!1,error:null,errorInfo:null,copied:!1,errorId:null}}static getDerivedStateFromError(t){return{hasError:!0,error:t}}componentDidCatch(t,r){console.error("Uncaught error:",t,r),this.setState({errorInfo:r}),Cs(t,{boundary:"ErrorBoundary",componentStack:(r==null?void 0:r.componentStack)||""},{category:"frontend",source:"error_boundary"}).then(a=>{this.setState({errorId:a})})}
327render(){if(this.state.hasError){const{errorId:t,copied:r}=this.state;return p.jsx("div",{style:{position:"fixed",top:0,left:0,right:0,bottom:0,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",backgroundColor:"rgba(0, 0, 0, 0.9)",backdropFilter:"blur(10px)",color:"#ffffff",fontFamily:'"Quicksand", "LXGW WenKai", "Noto Sans SC", -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif',zIndex:9999,padding:"20px",textAlign:"center"},children:p.jsxs("div",{style:{background:"rgba(255, 255, 255, 0.05)",padding:"40px",borderRadius:"20px",border:"1px solid rgba(255, 255, 255, 0.1)",boxShadow:"0 8px 32px 0 rgba(0, 0, 0, 0.37)",maxWidth:"500px",width:"100%"},children:[p.jsx("h2",{style:{fontSize:"1.8rem",marginBottom:"1rem",color:"#ff6b6b",fontWeight:600},children:"ååï¼åºéäº"}),p.jsx("p",{style:{fontSize:"1.1rem",color:"#cccccc",marginBottom:"2rem",lineHeight:"1.5"},children:"æä»¬éå°äºä¸äºææä¹å¤çé误ãä½ å¯ä»¥å°è¯å·æ°é¡µé¢ï¼å¦æé®é¢æç»åå¨ï¼è¯·å¤å¶é误ç¼å·åç»ä½è
ææ¥ã"}),p.jsx("div",{style:{textAlign:"left",background:"rgba(255, 255, 255, 0.06)",border:"1px solid rgba(255, 255, 255, 0.12)",borderRadius:"14px",padding:"12px 14px",marginBottom:"16px"},children:p.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",gap:"10px"},children:[p.jsxs("div",{children:[p.jsx("div",{style:{fontSize:"0.78rem",color:"#bbbbbb",marginBottom:"4px"},children:"é误ç¼å·"}),p.jsx("div",{style:{fontFamily:"ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace",color:"#ffffff",fontWeight:700},children:t||"è®°å½ä¸..."})]}),p.jsx("button",{disabled:!t,onClick:async()=>{if(t)try{await navigator.clipboard.writeText(t),this.setState({copied:!0}),window.setTimeout(()=>this.setState({copied:!1}),1500)}catch{}},style:{padding:"8px 12px",fontSize:"0.85rem",backgroundColor:r?"#16a34a":"rgba(255, 255, 255, 0.15)",color:"#ffffff",border:"1px solid rgba(255, 255, 255, 0.18)",borderRadius:"10px",cursor:t?"pointer":"not-allowed",fontWeight:700,opacity:t?1:.6},children:r?"å·²å¤å¶":"å¤å¶ç¼å·"})]})}),p.jsx("button",{onClick:()=>window.location.reload(),style:{padding:"12px 30px",fontSize:"1rem",backgroundColor:"#ffffff",color:"#000000",border:"none",borderRadius:"50px",cursor:"pointer",fontWeight:"600",transition:"transform 0.2s",boxShadow:"0 4px 15px rgba(255, 255, 255, 0.1)"},onMouseOver:a=>a.currentTarget.style.transform="scale(1.05)",onMouseOut:a=>a.currentTarget.style.transform="scale(1)",children:"å·æ°é¡µé¢"})]})})}return this.props.children}}typeof window<"u"&&(window.addEventListener("error",e=>{Cs(e.error||e.message,{filename:e.filename,lineno:e.lineno,colno:e.colno},{category:"frontend",source:"window_error"})}),window.addEventListener("unhandledrejection",e=>{Cs(e.reason||"Unhandled promise rejection",{},{category:"frontend",source:"unhandled_rejection"})}));const bf=document.getElementById("root");if(!bf)throw new Error("Could not find root element to mount to");const pA=ih.createRoot(bf);pA.render(p.jsx(_a.StrictMode,{children:p.jsx(hA,{children:p.jsx(A0,{children:p.jsx(mA,{})})})}));export{ta as $,RA as A,nr as B,v0 as C,_A as D,lt as E,Rn as F,vA as G,$A as H,XA as I,wa as J,qA as K,QA as L,YA as M,sd as N,Rg as O,GA as P,WA as Q,Bi as R,UA as S,He as T,ZA as U,ql as V,Ea as W,xg as X,JA as Y,KA as Z,Be as _,gg as a,zA as a0,ke as a1,BA as a2,ed as a3,FA as a4,jA as a5,VA as a6,HA as a7,eI as a8,Qo as a9,Ln as aa,Dr as ab,Yo as ac,rf as ad,tI as ae,rI as af,_o as ag,Vp as ah,Ns as ai,V0 as aj,wA as b,OA as c,PA as d,NA as e,I0 as f,xA as g,pa as h,CA as i,vi as j,M0 as k,st as l,Ui as m,kA as n,DA as o,LA as p,MA as q,sn as r,W0 as s,hu as t,Io as u,bs as v,Td as w,Pr as x,_t as y,Z0 as z};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.